From fae9470f266c8f201748cbb6d2a8719d72fd93c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 00:20:52 +0800 Subject: [PATCH 01/17] feat(execd): execd as sandbox init (OSEP-0018 phase 1) Make execd the sandbox init (PID 1): it becomes the parent of the user entrypoint, reaps every child through a single reaper, forwards application signals, and owns the container lifecycle (entrypoint exit code is propagated to the runtime). - --init flag + EXECD_INIT bootstrap.sh exec branch (default off, classic background-and-wait topology unchanged) - single reaper (only wait4-family caller) with pre-reap WNOWAIT barrier; managedProcess abstraction replaces Cmd.Wait across all launch paths (command, bash session, PTY, isolated session) - signal forwarding (HUP/USR1/USR2/WINCH) and SIGTERM graceful shutdown; subreaper fallback when not PID 1; PR_SET_DUMPABLE(0) - hardening.init_mode/signal_shield reported on the capabilities endpoint (spec + Go/Python SDKs aligned) - unit tests for the reaper and lifecycle; bootstrap contract test --- components/execd/bootstrap.sh | 26 +- components/execd/main.go | 17 +- components/execd/pkg/flag/flags.go | 6 + components/execd/pkg/flag/parser.go | 11 + components/execd/pkg/runtime/bash_session.go | 29 +- components/execd/pkg/runtime/command.go | 20 +- components/execd/pkg/runtime/exit_error.go | 22 + .../pkg/runtime/initmode_barrier_unix.go | 23 + .../pkg/runtime/initmode_barrier_windows.go | 25 + .../execd/pkg/runtime/initmode_linux.go | 546 ++++++++++++++++++ .../execd/pkg/runtime/initmode_linux_test.go | 322 +++++++++++ .../execd/pkg/runtime/initmode_other.go | 71 +++ .../execd/pkg/runtime/isolated_session.go | 27 +- .../isolated_session_lifecycle_test.go | 13 - components/execd/pkg/runtime/pty_session.go | 35 +- .../pkg/web/controller/isolated_session.go | 9 + components/execd/pkg/web/model/hardening.go | 24 + .../execd/pkg/web/model/isolated_session.go | 17 +- components/execd/tests/init_mode.sh | 125 ++++ docs/components/execd.md | 35 +- sdks/sandbox/go/isolated.go | 23 +- .../opensandbox/api/execd/models/__init__.py | 4 + .../api/execd/models/capabilities_response.py | 26 +- .../models/capabilities_response_hardening.py | 99 ++++ ...pabilities_response_hardening_init_mode.py | 26 + specs/execd-api.yaml | 21 + 26 files changed, 1517 insertions(+), 85 deletions(-) create mode 100644 components/execd/pkg/runtime/exit_error.go create mode 100644 components/execd/pkg/runtime/initmode_barrier_unix.go create mode 100644 components/execd/pkg/runtime/initmode_barrier_windows.go create mode 100644 components/execd/pkg/runtime/initmode_linux.go create mode 100644 components/execd/pkg/runtime/initmode_linux_test.go create mode 100644 components/execd/pkg/runtime/initmode_other.go create mode 100644 components/execd/pkg/web/model/hardening.go create mode 100644 components/execd/tests/init_mode.sh create mode 100644 sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening.py create mode 100644 sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening_init_mode.py diff --git a/components/execd/bootstrap.sh b/components/execd/bootstrap.sh index fecc217f0..363c162f9 100755 --- a/components/execd/bootstrap.sh +++ b/components/execd/bootstrap.sh @@ -310,8 +310,6 @@ if [ -n "${EXECD_BOOTSTRAP_PRE_SCRIPT:-}" ]; then fi echo "starting OpenSandbox Execd daemon at $EXECD." -$EXECD & -EXECD_PID=$! # Allow chained shell commands (e.g., /test1.sh && /test2.sh) # Usage: @@ -337,17 +335,27 @@ if [ -z "$SHELL_BIN" ]; then fi fi +# Resolve the user command into a concrete argv shared by both branches. if [ "$CMD" != "" ]; then - "$SHELL_BIN" -c "$CMD" & - CMD_PID=$! + set -- "$SHELL_BIN" -c "$CMD" elif [ $# -eq 0 ]; then - "$SHELL_BIN" & - CMD_PID=$! -else - "$@" & - CMD_PID=$! + set -- "$SHELL_BIN" +fi + +# Init mode (OSEP-0018): exec into execd so it becomes the sandbox init (PID 1 +# on the direct paths) and supervises the user command itself. The shell must +# exec, never background, or execd would run as a subreaper without the kernel +# signal shield. +if is_truthy "${EXECD_INIT:-}"; then + exec "$EXECD" --init -- "$@" fi +"$EXECD" & +EXECD_PID=$! + +"$@" & +CMD_PID=$! + set +e wait "$CMD_PID" 2>/dev/null CMD_STATUS=$? diff --git a/components/execd/main.go b/components/execd/main.go index 3792a66ea..cbf85b71d 100644 --- a/components/execd/main.go +++ b/components/execd/main.go @@ -79,6 +79,13 @@ func run() int { log.Init(flag.ServerLogLevel) + if flag.InitMode { + // OSEP-0018: execd is the sandbox init. Must start after the startup + // probes (which run short-lived children via cmd.Run) so the reaper is + // the only wait4 caller from here on. + runtime.StartInitMode(flag.Args()) + } + ctrl := controller.InitCodeRunner() // Always store probe result for capabilities endpoint. @@ -134,10 +141,16 @@ func run() int { return 1 } log.Info("execd listening on %s (IPv4)", addr) + // In init mode SIGTERM belongs to the init lifecycle (forward + graceful + // shutdown with the entrypoint's exit status); only SIGINT cancels the + // HTTP server there. + ctxSignals := []os.Signal{os.Interrupt} + if !flag.InitMode { + ctxSignals = append(ctxSignals, syscall.SIGTERM) + } serverCtx, stopSignals := signal.NotifyContext( context.Background(), - os.Interrupt, - syscall.SIGTERM, + ctxSignals..., ) defer stopSignals() if err := serveHTTPUntilShutdown(serverCtx, listener, engine); err != nil { diff --git a/components/execd/pkg/flag/flags.go b/components/execd/pkg/flag/flags.go index b55f0d530..af66dab13 100644 --- a/components/execd/pkg/flag/flags.go +++ b/components/execd/pkg/flag/flags.go @@ -42,4 +42,10 @@ var ( // IsolationConfigPath points to the TOML isolation config file. // Empty means use built-in defaults. IsolationConfigPath string + + // InitMode runs execd as the sandbox init: reap children, forward + // signals, and own the container lifecycle. Topology (PID 1 vs + // subreaper) is decided by bootstrap.sh via EXECD_INIT, which passes + // this flag when it execs into execd. + InitMode bool ) diff --git a/components/execd/pkg/flag/parser.go b/components/execd/pkg/flag/parser.go index f92f33a6d..685444d65 100644 --- a/components/execd/pkg/flag/parser.go +++ b/components/execd/pkg/flag/parser.go @@ -42,6 +42,7 @@ func InitFlags() { ApiGracefulShutdownTimeout = time.Second * 1 JupyterIdlePollInterval = 100 * time.Millisecond IsolationConfigPath = "" + InitMode = false // First, set default values from environment variables if jupyterFromEnv := os.Getenv(jupyterHostEnv); jupyterFromEnv != "" { @@ -95,6 +96,10 @@ func InitFlags() { } flag.StringVar(&IsolationConfigPath, "isolation-config", IsolationConfigPath, "Path to isolation TOML config file (default: built-in defaults)") + // Init mode must be enabled explicitly; bootstrap.sh passes it together + // with EXECD_INIT so the shell's exec/background decision stays in lockstep. + flag.BoolVar(&InitMode, "init", false, "Run as the sandbox init: reap children, forward signals, own the container lifecycle") + // Parse flags - these will override environment variables if provided flag.Parse() if JupyterIdlePollInterval <= 0 { @@ -106,3 +111,9 @@ func InitFlags() { log.Info("Jupyter server host is: %s", JupyterServerHost) log.Info("Jupyter server token is: %s", log.MaskToken(JupyterServerToken)) } + +// Args returns the non-flag arguments after flag.Parse — in init mode this is +// the user command passed after "--" (e.g. `execd --init -- sh -c "..."`). +func Args() []string { + return flag.Args() +} diff --git a/components/execd/pkg/runtime/bash_session.go b/components/execd/pkg/runtime/bash_session.go index 563eecbc6..b63564fd4 100644 --- a/components/execd/pkg/runtime/bash_session.go +++ b/components/execd/pkg/runtime/bash_session.go @@ -211,20 +211,29 @@ func (s *bashSession) run(ctx context.Context, request *ExecuteCodeRequest) erro // Do not pass envSnapshot via cmd.Env to avoid "argument list too long" when session env is large. // Child inherits parent env (nil => default in Go). The script file already has "export K=V" for // all session vars at the top, so the session environment is applied when the script runs. - stdout, err := cmd.StdoutPipe() + stdoutR, stdoutW, err := os.Pipe() if err != nil { return fmt.Errorf("stdout pipe: %w", err) } - cmd.Stderr = cmd.Stdout + cmd.Stdout = stdoutW + cmd.Stderr = stdoutW - if err := cmd.Start(); err != nil { + mp, err := launchManaged(cmd) + if err != nil { + _ = stdoutR.Close() + _ = stdoutW.Close() log.Error("start %s session failed: %v (command: %q)", shell, err, log.SanitizeCommand(request.Code)) return fmt.Errorf("start %s: %w", shell, err) } + // The child holds its own copy of the write end; closing ours lets the + // scanner below see EOF as soon as the child (and its descendants that + // inherited stdout) exit. + _ = stdoutW.Close() + defer stdoutR.Close() defer s.untrackCurrentProcess() s.trackCurrentProcess(cmd.Process.Pid) - scanner := bufio.NewScanner(stdout) + scanner := bufio.NewScanner(stdoutR) scanner.Buffer(make([]byte, 0, 64*1024), 16*1024*1024) var ( @@ -259,7 +268,7 @@ func (s *bashSession) run(ctx context.Context, request *ExecuteCodeRequest) erro } scanErr := scanner.Err() - waitErr := cmd.Wait() + waitErr := mp.Wait() if scanErr != nil { log.Error("read stdout failed: %v (command: %q)", scanErr, log.SanitizeCommand(request.Code)) @@ -271,9 +280,9 @@ func (s *bashSession) run(ctx context.Context, request *ExecuteCodeRequest) erro return fmt.Errorf("timeout after %s", wait) } - if exitCode == nil && cmd.ProcessState != nil { - code := cmd.ProcessState.ExitCode() //nolint:staticcheck - exitCode = &code //nolint:ineffassign + if exitCode == nil && mp.ExitCode() >= 0 { + code := mp.ExitCode() + exitCode = &code } updatedEnv := parseExportDump(envLines) @@ -286,8 +295,8 @@ func (s *bashSession) run(ctx context.Context, request *ExecuteCodeRequest) erro } s.mu.Unlock() - var exitErr *exec.ExitError - if waitErr != nil && !errors.As(waitErr, &exitErr) { + var exitCodeErr exitCoder + if waitErr != nil && !errors.As(waitErr, &exitCodeErr) { log.Error("command wait failed: %v (command: %q)", waitErr, log.SanitizeCommand(request.Code)) return waitErr } diff --git a/components/execd/pkg/runtime/command.go b/components/execd/pkg/runtime/command.go index 2fa819278..d763773af 100644 --- a/components/execd/pkg/runtime/command.go +++ b/components/execd/pkg/runtime/command.go @@ -177,7 +177,7 @@ func (c *Controller) runCommand(ctx context.Context, request *ExecuteCodeRequest c.tailStdPipe(stderrPath, request.Hooks.OnExecuteStderr, done) }) - err = cmd.Start() + mp, err := launchManaged(cmd) if err != nil { close(done) wg.Wait() @@ -245,7 +245,7 @@ func (c *Controller) runCommand(ctx context.Context, request *ExecuteCodeRequest } }) - err = cmd.Wait() + err = mp.Wait() close(done) wg.Wait() if err != nil { @@ -253,9 +253,9 @@ func (c *Controller) runCommand(ctx context.Context, request *ExecuteCodeRequest var eCode int var traceback []string - var exitError *exec.ExitError - if errors.As(err, &exitError) { - exitCode := exitError.ExitCode() + var exitCodeErr exitCoder + if errors.As(err, &exitCodeErr) { + exitCode := exitCodeErr.ExitCode() eName = "CommandExecError" eValue = strconv.Itoa(exitCode) eCode = exitCode @@ -334,7 +334,7 @@ func (c *Controller) runBackgroundCommand(ctx context.Context, cancel context.Ca defer devNull.Close() } - err = cmd.Start() + mp, err := launchManaged(cmd) kernel := &commandKernel{ pid: -1, stdoutPath: stdoutPath, @@ -363,14 +363,14 @@ func (c *Controller) runBackgroundCommand(ctx context.Context, cancel context.Ca safego.Go(func() { defer pipe.Close() - err = cmd.Wait() + err = mp.Wait() cancel() if err != nil { log.Error("CommandExecError: error running commands: %v", err) exitCode := 1 - var exitError *exec.ExitError - if errors.As(err, &exitError) { - exitCode = exitError.ExitCode() + var exitCodeErr exitCoder + if errors.As(err, &exitCodeErr) { + exitCode = exitCodeErr.ExitCode() } c.markCommandFinished(session, exitCode, err.Error()) return diff --git a/components/execd/pkg/runtime/exit_error.go b/components/execd/pkg/runtime/exit_error.go new file mode 100644 index 000000000..e550dcdab --- /dev/null +++ b/components/execd/pkg/runtime/exit_error.go @@ -0,0 +1,22 @@ +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package runtime + +// exitCoder is implemented by both os/exec.ExitError and the init-mode +// processExitError, so callers can read the exit code uniformly across init +// and non-init mode. +type exitCoder interface { + ExitCode() int +} diff --git a/components/execd/pkg/runtime/initmode_barrier_unix.go b/components/execd/pkg/runtime/initmode_barrier_unix.go new file mode 100644 index 000000000..a97745449 --- /dev/null +++ b/components/execd/pkg/runtime/initmode_barrier_unix.go @@ -0,0 +1,23 @@ +//go:build !linux && !windows + +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package runtime + +// waitManagedWithBarrier mirrors waitCommandWithExitBarrier, which exists on +// this platform set. +func waitManagedWithBarrier(mp *managedProcess, mark func(error)) error { + return waitCommandWithExitBarrier(mp.cmd, mark) +} diff --git a/components/execd/pkg/runtime/initmode_barrier_windows.go b/components/execd/pkg/runtime/initmode_barrier_windows.go new file mode 100644 index 000000000..aa3135b30 --- /dev/null +++ b/components/execd/pkg/runtime/initmode_barrier_windows.go @@ -0,0 +1,25 @@ +//go:build windows + +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package runtime + +// waitManagedWithBarrier mirrors waitCommandWithExitBarrier's semantics on +// platforms where that helper does not exist. +func waitManagedWithBarrier(mp *managedProcess, mark func(error)) error { + err := mp.Wait() + mark(nil) + return err +} diff --git a/components/execd/pkg/runtime/initmode_linux.go b/components/execd/pkg/runtime/initmode_linux.go new file mode 100644 index 000000000..a0d28d652 --- /dev/null +++ b/components/execd/pkg/runtime/initmode_linux.go @@ -0,0 +1,546 @@ +//go:build linux + +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Init mode (OSEP-0018, phase 1): execd is the sandbox init. It reaps every +// child through a single reaper, forwards application signals to the user +// entrypoint, and owns the container lifecycle (entrypoint exit code is +// propagated to the runtime). +// +// The reaper is the only wait4-family caller in init mode, so execd never +// calls os/exec.Cmd.Wait for its own children. Callers build the process with +// exec.Command as usual but launch and wait through the managedProcess +// abstraction, which reproduces the pipe teardown Cmd.Wait would otherwise +// perform. +// +// The reaper registry lock spans child start and registration: a child is +// added to the owned map before any concurrent drain can observe it, so the +// start/register race is closed structurally. Any child observed that is not +// owned is a reparented orphan and is reaped and logged. + +package runtime + +import ( + "errors" + "fmt" + "os" + "os/exec" + "os/signal" + "sync" + "syscall" + "time" + "unsafe" + + "github.com/alibaba/opensandbox/execd/pkg/log" + "github.com/alibaba/opensandbox/internal/safego" + "golang.org/x/sys/unix" +) + +var ( + initShutdownGrace = 10 * time.Second + initReaper *reaper + reaperSweepInterval = 200 * time.Millisecond + initForwardedSignals = []os.Signal{ + syscall.SIGTERM, + syscall.SIGHUP, + syscall.SIGUSR1, + syscall.SIGUSR2, + syscall.SIGWINCH, + } +) + +// siginfoWait mirrors the kernel siginfo_t fields waitid fills. The vendored +// x/sys Siginfo only exposes the first three fields, and the union member +// offsets are arch-specific, so this struct is the 64-bit Linux layout +// (verified on amd64 and arm64): the union is 8-byte aligned, so si_pid sits +// at offset 16, si_uid at 20, si_status at 24. waitid's si_status is the raw +// exit code or signal number, not the wait4 status encoding. +type siginfoWait struct { + signo int32 + errno int32 + code int32 + _ int32 + pid int32 + uid uint32 + status int32 + _ [104]byte +} + +// waitStatus converts waitid's si_status/si_code into the syscall.WaitStatus +// encoding the rest of the code base understands. si_code values are the +// stable UAPI CLD_* constants (linux/siginfo.h). +func (i *siginfoWait) waitStatus() syscall.WaitStatus { + switch i.code { + case 1: // CLD_EXITED + return syscall.WaitStatus(uint32(i.status&0xff) << 8) + case 2, 3: // CLD_KILLED, CLD_DUMPED + return syscall.WaitStatus(uint32(i.status & 0x7f)) + default: + return 0 + } +} + +func waitidObserve(info *siginfoWait) error { + _, _, errno := unix.Syscall6(unix.SYS_WAITID, + uintptr(unix.P_ALL), 0, + uintptr(unsafe.Pointer(info)), + uintptr(unix.WEXITED|unix.WNOHANG|unix.WNOWAIT), + 0, 0) + if errno == 0 { + return nil + } + if errno == unix.EINTR { + return unix.EINTR + } + return errno +} + +func waitidConsume(pid int) (syscall.WaitStatus, error) { + var info siginfoWait + _, _, errno := unix.Syscall6(unix.SYS_WAITID, + uintptr(unix.P_PID), uintptr(pid), + uintptr(unsafe.Pointer(&info)), + uintptr(unix.WEXITED|unix.WNOHANG), + 0, 0) + if errno == 0 { + return info.waitStatus(), nil + } + if errno == unix.EINTR { + return 0, unix.EINTR + } + return 0, errno +} + +// reaper is the single wait4-family caller while init mode is active. +type reaper struct { + mu sync.Mutex + owned map[int]*managedProcess + sigchld chan os.Signal + quit chan struct{} + quitOnce sync.Once + done chan struct{} +} + +func newReaper() *reaper { + return &reaper{ + owned: map[int]*managedProcess{}, + quit: make(chan struct{}), + done: make(chan struct{}), + } +} + +// start registers the SIGCHLD notification synchronously so no child can +// exit before the handler exists (a lost SIGCHLD would strand its status). +func (r *reaper) start() { + r.sigchld = make(chan os.Signal, 1) + signal.Notify(r.sigchld, syscall.SIGCHLD) +} + +// stop terminates the reaper and waits until its signal subscription is +// removed. Test-only in practice; execd runs one reaper for its lifetime. +func (r *reaper) stop() { + r.quitOnce.Do(func() { close(r.quit) }) + <-r.done +} + +func (r *reaper) run() { + defer func() { + signal.Stop(r.sigchld) + close(r.done) + }() + // The ticker is a backstop: SIGCHLD may be coalesced or (in edge cases) + // lost, so a periodic drain keeps the process table bounded regardless. + sweep := time.NewTicker(reaperSweepInterval) + defer sweep.Stop() + for { + select { + case <-r.quit: + return + case <-r.sigchld: + r.drain() + case <-sweep.C: + r.drain() + } + } +} + +func (r *reaper) drain() { + r.mu.Lock() + defer r.mu.Unlock() + for { + var info siginfoWait + if err := waitidObserve(&info); err != nil { + if errors.Is(err, unix.EINTR) { + continue + } + if !errors.Is(err, unix.ECHILD) { + log.Warn("init: reaper observe: %v", err) + } + return + } + if info.pid == 0 { + return + } + pid := int(info.pid) + if mp := r.owned[pid]; mp != nil { + // The pre-reap barrier runs between the WNOWAIT observe and the + // consuming wait, while the kernel still reserves the PID/PGID + // (isolated sessions rely on this to avoid signalling a recycled + // process group). + if mp.preReap != nil { + mp.preReap() + } + ws, err := waitidConsume(pid) + if err != nil { + if errors.Is(err, unix.EINTR) { + continue + } + log.Error("init: reaper consume pid %d: %v", pid, err) + return + } + mp.deliver(ws) + continue + } + // Unknown child: reparented orphan. Reap it so the process table + // stays bounded; its status is not delivered to anyone. + ws, err := waitidConsume(pid) + if err != nil { + if errors.Is(err, unix.EINTR) { + continue + } + log.Error("init: reaper consume orphan pid %d: %v", pid, err) + return + } + log.Info("init: reaped orphan pid=%d status=%s", pid, ws) + } +} + +// managedProcess wraps an exec.Cmd whose status is delivered by the reaper. +// In non-init mode it falls back to plain Cmd.Start/Cmd.Wait, so callers +// share one launch path regardless of mode. +type managedProcess struct { + cmd *exec.Cmd + preReap func() + done chan struct{} + once sync.Once + ws syscall.WaitStatus + exitErr error +} + +func newManagedProcess(cmd *exec.Cmd) *managedProcess { + return &managedProcess{cmd: cmd, done: make(chan struct{})} +} + +func (mp *managedProcess) pid() int { + return mp.cmd.Process.Pid +} + +func (mp *managedProcess) deliver(ws syscall.WaitStatus) { + mp.once.Do(func() { + mp.ws = ws + mp.exitErr = exitStatusError(ws) + close(mp.done) + }) +} + +func (mp *managedProcess) Wait() error { + if initReaper == nil { + return mp.cmd.Wait() + } + <-mp.done + return mp.exitErr +} + +// ExitCode returns the process exit code, or -1 if it has not exited (or was +// killed by a signal), matching os.ProcessState.ExitCode semantics. +func (mp *managedProcess) ExitCode() int { + if initReaper == nil { + return mp.cmd.ProcessState.ExitCode() + } + select { + case <-mp.done: + return mp.ws.ExitStatus() + default: + return -1 + } +} + +func (mp *managedProcess) exitStatus() syscall.WaitStatus { + return mp.ws +} + +type launchOption func(*managedProcess) + +func withPreReap(fn func()) launchOption { + return func(mp *managedProcess) { + mp.preReap = fn + } +} + +// launchManagedWith starts the command and registers it with the reaper. +// startFn is called under the reaper lock so the child cannot be observed +// (and misclassified as an orphan) before registration. +func launchManagedWith(cmd *exec.Cmd, startFn func() error, opts ...launchOption) (*managedProcess, error) { + if initReaper == nil { + if err := startFn(); err != nil { + return nil, err + } + return newManagedProcess(cmd), nil + } + initReaper.mu.Lock() + defer initReaper.mu.Unlock() + if err := startFn(); err != nil { + return nil, err + } + mp := newManagedProcess(cmd) + for _, o := range opts { + o(mp) + } + initReaper.owned[cmd.Process.Pid] = mp + return mp, nil +} + +func launchManaged(cmd *exec.Cmd, opts ...launchOption) (*managedProcess, error) { + return launchManagedWith(cmd, cmd.Start, opts...) +} + +// waitManagedWithBarrier mirrors waitCommandWithExitBarrier: in init mode the +// pre-reap barrier was registered at launch and runs inside the reaper, so +// this just waits; otherwise the original WNOWAIT barrier path applies. +func waitManagedWithBarrier(mp *managedProcess, mark func(error)) error { + if initReaper == nil { + return waitCommandWithExitBarrier(mp.cmd, mark) + } + return mp.Wait() +} + +// processExitError is the error returned by managedProcess.Wait in init mode +// when the child did not exit cleanly. It mirrors exec.ExitError's contract +// without needing a constructed os.ProcessState. +type processExitError struct { + code int + msg string +} + +func (e *processExitError) Error() string { + return e.msg +} + +func (e *processExitError) ExitCode() int { + return e.code +} + +func exitStatusError(ws syscall.WaitStatus) error { + if ws.Exited() { + if code := ws.ExitStatus(); code == 0 { + return nil + } else { + return &processExitError{code: code, msg: fmt.Sprintf("exit status %d", code)} + } + } + return &processExitError{code: -1, msg: fmt.Sprintf("signal: %v", ws.Signal())} +} + +// StartInitMode activates init duties: non-dumpable self, subreaper fallback +// when not PID 1, the reaper, the user entrypoint, signal forwarding, and the +// container lifecycle owner. It returns once the entrypoint is launched; the +// process is torn down via os.Exit when the entrypoint exits or SIGTERM +// arrives. +func StartInitMode(entryArgs []string) { + if err := unix.Prctl(unix.PR_SET_DUMPABLE, 0, 0, 0, 0); err != nil { + log.Warn("init: PR_SET_DUMPABLE(0) failed: %v", err) + } + if os.Getpid() != 1 { + // Pool path (or a misconfigured background launch): execd is not the + // kernel init, so orphaned descendants reparent to it only if it is a + // subreaper. The kernel signal shield is lost in this mode. + if err := unix.Prctl(unix.PR_SET_CHILD_SUBREAPER, 1, 0, 0, 0); err != nil { + log.Warn("init: PR_SET_CHILD_SUBREAPER failed: %v", err) + } + } + initReaper = newReaper() + initReaper.start() + safego.Go(initReaper.run) + log.Info("init: execd is the sandbox init (pid=%d mode=%s)", os.Getpid(), initModeName()) + + entry := launchEntrypoint(entryArgs) + if entry == nil { + return + } + safego.Go(func() { forwardInitSignals(entry) }) + safego.Go(func() { waitEntrypointExit(entry) }) +} + +func launchEntrypoint(args []string) *managedProcess { + if len(args) == 0 { + log.Warn("init: --init set but no user command provided; no entrypoint to supervise") + return nil + } + cmd := exec.Command(args[0], args[1:]...) + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + mp, err := launchManaged(cmd) + if err != nil { + log.Error("init: failed to start user entrypoint %q: %v", args[0], err) + os.Exit(1) + } + log.Info("init: user entrypoint started pid=%d argv=%v", mp.pid(), args) + return mp +} + +// waitEntrypointExit owns the container lifecycle: when the entrypoint exits, +// the other children are stopped gracefully and execd exits with the +// entrypoint's status so Docker/kubelet observe it. +func waitEntrypointExit(entry *managedProcess) { + entryErr := entry.Wait() + code := initExitCode(entry) + log.Info("init: user entrypoint exited: code=%d err=%v", code, entryErr) + stopChildrenExcept(entry) + log.Info("init: exiting with entrypoint status %d", code) + os.Exit(code) +} + +// initExitCode converts a delivered status into the container exit code, +// following the shell convention of 128+signal for signalled processes. +func initExitCode(mp *managedProcess) int { + ws := mp.exitStatus() + if ws.Signaled() { + return 128 + int(ws.Signal()) + } + if ws.Exited() { + return ws.ExitStatus() + } + return 1 +} + +// forwardInitSignals forwards application signals to the entrypoint process +// group. SIGTERM additionally starts the graceful shutdown sequence, matching +// the runtime-initiated container stop contract (Docker/K8s send SIGTERM to +// PID 1). +func forwardInitSignals(entry *managedProcess) { + ch := make(chan os.Signal, 8) + signal.Notify(ch, initForwardedSignals...) + defer signal.Stop(ch) + for sig := range ch { + s, ok := sig.(syscall.Signal) + if !ok { + continue + } + if s == syscall.SIGTERM { + log.Info("init: received SIGTERM; forwarding to workload and shutting down") + terminateInit(entry) + return + } + log.Info("init: forwarding %v to workload", s) + if err := killGroup(entry.pid(), s); err != nil { + log.Warn("init: forward %v to entrypoint group: %v", s, err) + } + } +} + +// terminateInit performs the SIGTERM shutdown: forward TERM to the entrypoint +// tree, stop the other children, then exit once the entrypoint is reaped +// (SIGKILL after a bounded grace). +func terminateInit(entry *managedProcess) { + if err := killGroup(entry.pid(), syscall.SIGTERM); err != nil && !errors.Is(err, syscall.ESRCH) { + log.Warn("init: SIGTERM entrypoint group: %v", err) + } + stopChildrenExcept(entry) + deadline := time.After(initShutdownGrace) + select { + case <-entry.done: + case <-deadline: + if err := killGroup(entry.pid(), syscall.SIGKILL); err != nil && !errors.Is(err, syscall.ESRCH) { + log.Warn("init: SIGKILL entrypoint group: %v", err) + } + select { + case <-entry.done: + case <-time.After(5 * time.Second): + } + } + log.Info("init: exiting after SIGTERM shutdown") + os.Exit(initExitCode(entry)) +} + +// stopChildrenExcept signals every other tracked child group with SIGTERM, +// waits up to the shutdown grace (total budget across all children), then +// SIGKILLs the survivors. Reaping is done by the reaper; the kernel reaps +// anything left when execd exits. +func stopChildrenExcept(keep *managedProcess) { + others := initReaper.snapshotOthers(keep) + if len(others) == 0 { + return + } + for _, mp := range others { + if err := killGroup(mp.pid(), syscall.SIGTERM); err != nil && !errors.Is(err, syscall.ESRCH) { + log.Warn("init: SIGTERM child group %d: %v", mp.pid(), err) + } + } + deadline := time.Now().Add(initShutdownGrace) + for _, mp := range others { + select { + case <-mp.done: + case <-time.After(time.Until(deadline)): + } + } + for _, mp := range others { + select { + case <-mp.done: + default: + if err := killGroup(mp.pid(), syscall.SIGKILL); err != nil && !errors.Is(err, syscall.ESRCH) { + log.Warn("init: SIGKILL child group %d: %v", mp.pid(), err) + } + } + } +} + +func (r *reaper) snapshotOthers(keep *managedProcess) []*managedProcess { + r.mu.Lock() + defer r.mu.Unlock() + others := make([]*managedProcess, 0, len(r.owned)) + for _, mp := range r.owned { + if mp != keep { + others = append(others, mp) + } + } + return others +} + +// killGroup sends sig to the child's process group; all managed children are +// launched with Setpgid, so the group id equals the child pid. +func killGroup(pid int, sig syscall.Signal) error { + return syscall.Kill(-pid, sig) +} + +func initModeName() string { + if os.Getpid() == 1 { + return "pid1" + } + return "subreaper" +} + +// InitModeReport reports the init mode actually in effect for the +// capabilities endpoint. +func InitModeReport() (mode string, signalShield bool) { + if initReaper == nil { + return "none", false + } + if os.Getpid() == 1 { + return "pid1", true + } + return "subreaper", false +} diff --git a/components/execd/pkg/runtime/initmode_linux_test.go b/components/execd/pkg/runtime/initmode_linux_test.go new file mode 100644 index 000000000..c2be02298 --- /dev/null +++ b/components/execd/pkg/runtime/initmode_linux_test.go @@ -0,0 +1,322 @@ +//go:build linux + +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package runtime + +import ( + "errors" + "os" + "os/exec" + "path/filepath" + "strconv" + "syscall" + "testing" + "time" + "unsafe" + + "golang.org/x/sys/unix" +) + +func startReaperForTest(t *testing.T) { + t.Helper() + if initReaper != nil { + t.Fatal("init reaper already running") + } + initReaper = newReaper() + initReaper.start() + go initReaper.run() + t.Cleanup(func() { + initReaper.stop() + initReaper = nil + }) +} + +func waitForFile(t *testing.T, path string, timeout time.Duration) { + t.Helper() + deadline := time.Now().Add(timeout) + for time.Now().Before(deadline) { + if _, err := os.Stat(path); err == nil { + return + } + time.Sleep(10 * time.Millisecond) + } + t.Fatalf("file %s did not appear within %s", path, timeout) +} + +// exitStatusByPid observes a child's status with WNOWAIT without consuming it. +func exitStatusByPid(t *testing.T, pid int) (syscall.WaitStatus, bool) { + t.Helper() + var info siginfoWait + _, _, errno := syscall.RawSyscall6(syscall.SYS_WAITID, + uintptr(unix.P_PID), uintptr(pid), + uintptr(unsafe.Pointer(&info)), + uintptr(unix.WEXITED|unix.WNOHANG|unix.WNOWAIT), + 0, 0) + if errno == syscall.ECHILD { + return 0, false + } + if errno != 0 { + t.Fatalf("waitid observe: %v", errno) + } + return info.waitStatus(), true +} + +func TestManagedProcessExitStatus(t *testing.T) { + startReaperForTest(t) + + cmd := exec.Command("sh", "-c", "exit 7") + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + mp, err := launchManaged(cmd) + if err != nil { + t.Fatal(err) + } + err = mp.Wait() + var exitCodeErr exitCoder + if !errors.As(err, &exitCodeErr) || exitCodeErr.ExitCode() != 7 { + t.Fatalf("Wait error = %v, want exit status 7", err) + } + if mp.ExitCode() != 7 { + t.Fatalf("ExitCode = %d, want 7", mp.ExitCode()) + } +} + +func TestManagedProcessExitZero(t *testing.T) { + startReaperForTest(t) + + cmd := exec.Command("sh", "-c", "exit 0") + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + mp, err := launchManaged(cmd) + if err != nil { + t.Fatal(err) + } + if err := mp.Wait(); err != nil { + t.Fatalf("Wait error = %v, want nil", err) + } +} + +func TestManagedProcessKilledBySignal(t *testing.T) { + startReaperForTest(t) + + cmd := exec.Command("sh", "-c", "kill -TERM $$") + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + mp, err := launchManaged(cmd) + if err != nil { + t.Fatal(err) + } + if err := mp.Wait(); err == nil { + t.Fatal("Wait error = nil, want signal error") + } + if mp.ExitCode() != -1 { + t.Fatalf("ExitCode = %d, want -1 for signalled process", mp.ExitCode()) + } +} + +func TestManagedProcessDispatchIsPerPid(t *testing.T) { + startReaperForTest(t) + + codes := []int{0, 1, 7, 42, 255} + var mps []*managedProcess + for _, code := range codes { + cmd := exec.Command("sh", "-c", exitScript(code)) + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + mp, err := launchManaged(cmd) + if err != nil { + t.Fatal(err) + } + mps = append(mps, mp) + } + // Wait in reverse order: a cross-delivered status would surface here. + for i := len(mps) - 1; i >= 0; i-- { + mp := mps[i] + if err := mp.Wait(); err != nil && i == 0 { + t.Fatalf("child %d (exit 0): Wait error = %v", i, err) + } + if got := mp.ExitCode(); got != codes[i] { + t.Fatalf("child %d exit code = %d, want %d", i, got, codes[i]) + } + } +} + +func exitScript(code int) string { + return "exit " + strconv.Itoa(code) +} + +func TestReaperReapsOrphan(t *testing.T) { + startReaperForTest(t) + + cmd := exec.Command("sh", "-c", "exit 3") + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + if err := cmd.Start(); err != nil { + t.Fatal(err) + } + pid := cmd.Process.Pid + + deadline := time.Now().Add(2 * time.Second) + for time.Now().Before(deadline) { + if _, ok := exitStatusByPid(t, pid); !ok { + return + } + time.Sleep(10 * time.Millisecond) + } + t.Fatalf("orphan pid %d was not reaped by the reaper", pid) +} + +func TestPreReapBarrierRunsBeforeWaitReturns(t *testing.T) { + startReaperForTest(t) + + barrierRan := make(chan struct{}) + cmd := exec.Command("sh", "-c", "exit 0") + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + mp, err := launchManaged(cmd, withPreReap(func() { close(barrierRan) })) + if err != nil { + t.Fatal(err) + } + if err := mp.Wait(); err != nil { + t.Fatal(err) + } + select { + case <-barrierRan: + default: + t.Fatal("pre-reap barrier did not run before Wait returned") + } +} + +func TestInitExitCode(t *testing.T) { + startReaperForTest(t) + + tests := []struct { + script string + want int + }{ + {"exit 7", 7}, + {"kill -TERM $$", 128 + 15}, + {"exit 0", 0}, + } + for _, tt := range tests { + cmd := exec.Command("sh", "-c", tt.script) + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + mp, err := launchManaged(cmd) + if err != nil { + t.Fatal(err) + } + _ = mp.Wait() + if got := initExitCode(mp); got != tt.want { + t.Fatalf("initExitCode(%q) = %d, want %d", tt.script, got, tt.want) + } + } +} + +func TestForwardSignalToWorkload(t *testing.T) { + startReaperForTest(t) + + dir := t.TempDir() + marker := filepath.Join(dir, "usr1") + installed := filepath.Join(dir, "installed") + cmd := exec.Command("sh", "-c", "trap 'touch \"$MARKER\"' USR1; touch \"$INSTALLED\"; while :; do sleep 0.05; done") + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + cmd.Env = append(os.Environ(), "MARKER="+marker, "INSTALLED="+installed) + mp, err := launchManaged(cmd) + if err != nil { + t.Fatal(err) + } + defer func() { + _ = killGroup(mp.pid(), syscall.SIGKILL) + _ = mp.Wait() + }() + + // Wait until the trap is installed; a signal sent earlier is dropped while + // the shell initializes (dash blocks signals during startup). + waitForFile(t, installed, 3*time.Second) + if err := killGroup(mp.pid(), syscall.SIGUSR1); err != nil { + t.Fatal(err) + } + waitForFile(t, marker, 3*time.Second) +} + +func TestStopChildrenGraceThenKill(t *testing.T) { + startReaperForTest(t) + oldGrace := initShutdownGrace + initShutdownGrace = 500 * time.Millisecond + defer func() { initShutdownGrace = oldGrace }() + + dir := t.TempDir() + termMarker := filepath.Join(dir, "term") + termInstalled := filepath.Join(dir, "term-installed") + termCmd := exec.Command("sh", "-c", + "trap 'touch \"$MARKER\"; exit 0' TERM; touch \"$INSTALLED\"; while :; do sleep 0.05; done") + termCmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + termCmd.Env = append(os.Environ(), "MARKER="+termMarker, "INSTALLED="+termInstalled) + termMp, err := launchManaged(termCmd) + if err != nil { + t.Fatal(err) + } + + // This child ignores SIGTERM and must be SIGKILLed after the grace period. + stubbornInstalled := filepath.Join(dir, "stubborn-installed") + stubbornCmd := exec.Command("sh", "-c", + "trap '' TERM; touch \"$INSTALLED\"; while :; do sleep 0.05; done") + stubbornCmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + stubbornCmd.Env = append(os.Environ(), "INSTALLED="+stubbornInstalled) + stubbornMp, err := launchManaged(stubbornCmd) + if err != nil { + t.Fatal(err) + } + + waitForFile(t, termInstalled, 3*time.Second) + waitForFile(t, stubbornInstalled, 3*time.Second) + + stopChildrenExcept(nil) + + waitForFile(t, termMarker, 2*time.Second) + for _, mp := range []*managedProcess{termMp, stubbornMp} { + select { + case <-mp.done: + case <-time.After(2 * time.Second): + t.Fatalf("child pid %d was not stopped", mp.pid()) + } + } + if ws := termMp.exitStatus(); !ws.Exited() || ws.ExitStatus() != 0 { + t.Fatalf("term-trapping child status = %#v, want clean exit", ws) + } +} + +func TestInitModeReport(t *testing.T) { + if mode, _ := InitModeReport(); mode != "none" { + t.Fatalf("InitModeReport before init = %q, want none", mode) + } + startReaperForTest(t) + if mode, shield := InitModeReport(); mode != "subreaper" || shield { + t.Fatalf("InitModeReport after init = %q/%v, want subreaper/false (test is not PID 1)", mode, shield) + } +} + +func TestManagedProcessWithoutReaperUsesCmdWait(t *testing.T) { + if initReaper != nil { + t.Fatal("reaper unexpectedly running") + } + cmd := exec.Command("sh", "-c", "exit 4") + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + mp, err := launchManaged(cmd) + if err != nil { + t.Fatal(err) + } + if err := mp.Wait(); err == nil { + t.Fatal("Wait error = nil, want exit status 4") + } + if mp.ExitCode() != 4 { + t.Fatalf("ExitCode = %d, want 4", mp.ExitCode()) + } +} diff --git a/components/execd/pkg/runtime/initmode_other.go b/components/execd/pkg/runtime/initmode_other.go new file mode 100644 index 000000000..4fdd41568 --- /dev/null +++ b/components/execd/pkg/runtime/initmode_other.go @@ -0,0 +1,71 @@ +//go:build !linux + +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Init mode is Linux-only (OSEP-0018). On other platforms the managedProcess +// abstraction degrades to plain Cmd.Start/Cmd.Wait so the shared launch paths +// keep compiling unchanged. + +package runtime + +import ( + "os/exec" + + "github.com/alibaba/opensandbox/execd/pkg/log" +) + +type managedProcess struct { + cmd *exec.Cmd +} + +func newManagedProcess(cmd *exec.Cmd) *managedProcess { + return &managedProcess{cmd: cmd} +} + +func (mp *managedProcess) Wait() error { + return mp.cmd.Wait() +} + +func (mp *managedProcess) ExitCode() int { + return mp.cmd.ProcessState.ExitCode() +} + +type launchOption func(*managedProcess) + +func withPreReap(fn func()) launchOption { + return func(*managedProcess) {} +} + +func launchManagedWith(cmd *exec.Cmd, startFn func() error, opts ...launchOption) (*managedProcess, error) { + if err := startFn(); err != nil { + return nil, err + } + return newManagedProcess(cmd), nil +} + +func launchManaged(cmd *exec.Cmd, opts ...launchOption) (*managedProcess, error) { + return launchManagedWith(cmd, cmd.Start, opts...) +} + +// StartInitMode is unsupported off Linux; execd keeps today's behavior. +func StartInitMode(entryArgs []string) { + log.Warn("init mode is unsupported on this platform; continuing without init duties") +} + +// InitModeReport reports the init mode actually in effect for the +// capabilities endpoint. +func InitModeReport() (mode string, signalShield bool) { + return "none", false +} diff --git a/components/execd/pkg/runtime/isolated_session.go b/components/execd/pkg/runtime/isolated_session.go index e4a6c1d12..394aa46aa 100644 --- a/components/execd/pkg/runtime/isolated_session.go +++ b/components/execd/pkg/runtime/isolated_session.go @@ -21,6 +21,7 @@ import ( "errors" "fmt" "io" + "os" "os/exec" "sync" "sync/atomic" @@ -191,29 +192,41 @@ func (s *isolatedSession) start() error { } s.lifecycle = lifecycle - stdin, err := cmd.StdinPipe() + stdinR, stdinW, err := os.Pipe() if err != nil { closeCommandExtraFiles(cmd) return s.failStartup(err) } - s.stdin = stdin - stdout, err := cmd.StdoutPipe() + s.stdin = stdinW + stdoutR, stdoutW, err := os.Pipe() if err != nil { + _ = stdinR.Close() + _ = stdinW.Close() closeCommandExtraFiles(cmd) return s.failStartup(err) } - s.stdout = stdout - cmd.Stderr = cmd.Stdout + s.stdout = stdoutR + cmd.Stdin = stdinR + cmd.Stdout = stdoutW + cmd.Stderr = stdoutW - if err := cmd.Start(); err != nil { + mp, err := launchManaged(cmd, withPreReap(func() { s.markProcessExitedBeforeReap(nil) })) + if err != nil { + _ = stdinR.Close() + _ = stdinW.Close() + _ = stdoutR.Close() + _ = stdoutW.Close() closeCommandExtraFiles(cmd) return s.failStartup(fmt.Errorf("start %s: %w", shell, err)) } + // Close the child-side ends in the parent — the child has its own copies. + _ = stdinR.Close() + _ = stdoutW.Close() closeCommandExtraFiles(cmd) go func() { - _ = waitCommandWithExitBarrier(cmd, s.markProcessExitedBeforeReap) + _ = waitManagedWithBarrier(mp, s.markProcessExitedBeforeReap) // Publish process reaping before waiting for lifecycle accounting. // Once Wait returns, the numeric PID/PGID may be reused and must never // be signalled again. diff --git a/components/execd/pkg/runtime/isolated_session_lifecycle_test.go b/components/execd/pkg/runtime/isolated_session_lifecycle_test.go index 32158f827..e708de1d9 100644 --- a/components/execd/pkg/runtime/isolated_session_lifecycle_test.go +++ b/components/execd/pkg/runtime/isolated_session_lifecycle_test.go @@ -19,7 +19,6 @@ package runtime import ( "context" "errors" - "io" "os" "os/exec" "strings" @@ -667,18 +666,6 @@ func TestIsolatedSessionPreStartFailuresCleanLifecycleAndDescriptors(t *testing. configure func(*exec.Cmd) }{ {name: "wrap", wrapErr: wrapErr}, - { - name: "stdin pipe", - configure: func(cmd *exec.Cmd) { - cmd.Stdin = strings.NewReader("") - }, - }, - { - name: "stdout pipe", - configure: func(cmd *exec.Cmd) { - cmd.Stdout = io.Discard - }, - }, { name: "command start", configure: func(cmd *exec.Cmd) { diff --git a/components/execd/pkg/runtime/pty_session.go b/components/execd/pkg/runtime/pty_session.go index 875cef41a..36496e887 100644 --- a/components/execd/pkg/runtime/pty_session.go +++ b/components/execd/pkg/runtime/pty_session.go @@ -86,6 +86,7 @@ type ptySession struct { lastExitCode int // exit code; -1 until process exits doneCh chan struct{} // closed when process exits (non-nil after Start*) outputDoneCh chan struct{} // closed after output broadcasters finish writing to replay + proc *managedProcess // Stdin (PTY master in PTY mode; write end of os.Pipe in pipe mode) stdin io.WriteCloser @@ -268,7 +269,12 @@ func (s *ptySession) StartPTY() error { // Do NOT set Setpgid: pty.StartWithSize sets Setsid+Setctty internally. // Combining Setsid+Setpgid causes EPERM (setpgid is illegal for a session leader). - ptmx, err := pty.StartWithSize(cmd, &pty.Winsize{Cols: 80, Rows: 24}) + var ptmx *os.File + mp, err := launchManagedWith(cmd, func() error { + var perr error + ptmx, perr = pty.StartWithSize(cmd, &pty.Winsize{Cols: 80, Rows: 24}) + return perr + }) if err != nil { return fmt.Errorf("pty.StartWithSize: %w", err) } @@ -276,6 +282,7 @@ func (s *ptySession) StartPTY() error { s.ptmx = ptmx s.isPTY = true s.pid = cmd.Process.Pid + s.proc = mp s.doneCh = make(chan struct{}) outputDoneCh := make(chan struct{}) s.outputDoneCh = outputDoneCh @@ -285,7 +292,7 @@ func (s *ptySession) StartPTY() error { defer close(outputDoneCh) s.broadcastPTY(ptmx) }) - safego.Go(func() { s.waitAndExit(cmd, ptmx) }) + safego.Go(func() { s.waitAndExit(mp, ptmx) }) return nil } @@ -332,7 +339,8 @@ func (s *ptySession) StartPipe() error { cmd.Stdout = stdoutW cmd.Stderr = stderrW - if err := cmd.Start(); err != nil { + mp, err := launchManagedWith(cmd, cmd.Start) + if err != nil { _ = stdinR.Close() _ = stdinW.Close() _ = stdoutR.Close() @@ -349,6 +357,7 @@ func (s *ptySession) StartPipe() error { s.isPTY = false s.pid = cmd.Process.Pid + s.proc = mp s.doneCh = make(chan struct{}) outputDoneCh := make(chan struct{}) s.outputDoneCh = outputDoneCh @@ -368,7 +377,7 @@ func (s *ptySession) StartPipe() error { outputWg.Wait() close(outputDoneCh) }) - safego.Go(func() { s.waitAndExitPipe(cmd, stdinW, stdoutR, stderrR) }) + safego.Go(func() { s.waitAndExitPipe(mp, stdinW, stdoutR, stderrR) }) return nil } @@ -429,17 +438,14 @@ func (s *ptySession) writeAndFanout(chunk []byte, isStdout bool) { } // waitAndExit waits for the PTY-mode process and updates session state on exit. -func (s *ptySession) waitAndExit(cmd *exec.Cmd, ptmx *os.File) { - _ = cmd.Wait() +func (s *ptySession) waitAndExit(mp *managedProcess, ptmx *os.File) { + _ = mp.Wait() // Close the PTY master to unblock the broadcast goroutine. _ = ptmx.Close() s.mu.Lock() - exitCode := 0 - if cmd.ProcessState != nil { - exitCode = cmd.ProcessState.ExitCode() - } + exitCode := mp.ExitCode() s.lastExitCode = exitCode s.pid = 0 doneCh := s.doneCh @@ -449,17 +455,14 @@ func (s *ptySession) waitAndExit(cmd *exec.Cmd, ptmx *os.File) { } // waitAndExitPipe waits for the pipe-mode process and updates session state on exit. -func (s *ptySession) waitAndExitPipe(cmd *exec.Cmd, stdinW, stdoutR, stderrR *os.File) { - _ = cmd.Wait() +func (s *ptySession) waitAndExitPipe(mp *managedProcess, stdinW, stdoutR, stderrR *os.File) { + _ = mp.Wait() // Close stdin write-end so the child (if still running) sees EOF. _ = stdinW.Close() s.mu.Lock() - exitCode := 0 - if cmd.ProcessState != nil { - exitCode = cmd.ProcessState.ExitCode() - } + exitCode := mp.ExitCode() s.lastExitCode = exitCode s.pid = 0 doneCh := s.doneCh diff --git a/components/execd/pkg/web/controller/isolated_session.go b/components/execd/pkg/web/controller/isolated_session.go index 7f78e8bc6..ba34c115b 100644 --- a/components/execd/pkg/web/controller/isolated_session.go +++ b/components/execd/pkg/web/controller/isolated_session.go @@ -443,11 +443,16 @@ func (c *IsolatedSessionController) Commit() { // Capabilities handles GET /v1/isolated/capabilities. func (c *IsolatedSessionController) Capabilities() { + initMode, signalShield := runtime.InitModeReport() if isolatedRunner == nil { resp := model.CapabilitiesResponse{ Available: false, CommitSupported: false, DiffSupported: false, + Hardening: &model.HardeningStatus{ + InitMode: initMode, + SignalShield: signalShield, + }, } if isolatedProbeResult != nil { resp.Isolator = isolatedProbeResult.Isolator @@ -468,6 +473,10 @@ func (c *IsolatedSessionController) Capabilities() { UsernsAvailable: caps.UsernsAvailable, CommitSupported: caps.CommitSupported, DiffSupported: caps.DiffSupported, + Hardening: &model.HardeningStatus{ + InitMode: initMode, + SignalShield: signalShield, + }, } // Probe results indicate overlay capability, not diff/commit implementation. // Diff and commit are Phase 2; do not advertise them as supported. diff --git a/components/execd/pkg/web/model/hardening.go b/components/execd/pkg/web/model/hardening.go new file mode 100644 index 000000000..64fee90d4 --- /dev/null +++ b/components/execd/pkg/web/model/hardening.go @@ -0,0 +1,24 @@ +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +// HardeningStatus reports which execd init-mode controls are in effect +// (OSEP-0018). This is execd-global state (execd as the sandbox init / PID 1), +// not an isolation/bwrap capability; it is reported on the capabilities +// endpoint so operators see what is actually enforced in one place. +type HardeningStatus struct { + InitMode string `json:"init_mode"` // "pid1" | "subreaper" | "none" + SignalShield bool `json:"signal_shield"` // kernel PID 1 signal shield active +} diff --git a/components/execd/pkg/web/model/isolated_session.go b/components/execd/pkg/web/model/isolated_session.go index 19a0a205e..b2208ee95 100644 --- a/components/execd/pkg/web/model/isolated_session.go +++ b/components/execd/pkg/web/model/isolated_session.go @@ -195,12 +195,13 @@ type ListIsolatedSessionsResponse struct { // CapabilitiesResponse is returned by GET /v1/isolated/capabilities. type CapabilitiesResponse struct { - Available bool `json:"available"` - Isolator string `json:"isolator,omitempty"` - Version string `json:"version,omitempty"` - Message string `json:"message,omitempty"` - SetprivAvailable bool `json:"setpriv_available"` - UsernsAvailable bool `json:"userns_available"` - CommitSupported bool `json:"commit_supported"` - DiffSupported bool `json:"diff_supported"` + Available bool `json:"available"` + Isolator string `json:"isolator,omitempty"` + Version string `json:"version,omitempty"` + Message string `json:"message,omitempty"` + SetprivAvailable bool `json:"setpriv_available"` + UsernsAvailable bool `json:"userns_available"` + CommitSupported bool `json:"commit_supported"` + DiffSupported bool `json:"diff_supported"` + Hardening *HardeningStatus `json:"hardening,omitempty"` } diff --git a/components/execd/tests/init_mode.sh b/components/execd/tests/init_mode.sh new file mode 100644 index 000000000..638eedecb --- /dev/null +++ b/components/execd/tests/init_mode.sh @@ -0,0 +1,125 @@ +#!/bin/bash +# Copyright 2026 Alibaba Group Holding Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Test: bootstrap.sh EXECD_INIT mode (OSEP-0018). +# +# With EXECD_INIT set, bootstrap.sh must exec into execd (--init -- ) +# instead of backgrounding it, so execd becomes the sandbox init. The user +# command is passed through the concrete argv forms bootstrap.sh supports: +# BOOTSTRAP_CMD, the "-c" form, plain positional args, and the default shell. +# +# Usage: +# cd components/execd +# bash tests/init_mode.sh + +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)" +BOOTSTRAP="$ROOT_DIR/bootstrap.sh" + +TESTDIR="$(mktemp -d)" +cleanup() { + rm -rf "$TESTDIR" +} +trap cleanup EXIT + +# Stub execd: records its argv and pid, then sleeps so the test can verify the +# process tree (bootstrap must have replaced itself, not spawned a child). +EXECD_STUB="$TESTDIR/execd_stub.sh" +cat > "$EXECD_STUB" << 'STUB' +#!/bin/sh +printf '%s\n' "$*" > "$EXECD_ARGV_FILE" +printf '%s\n' "$$" > "$EXECD_PID_FILE" +while true; do sleep 1; done +STUB +chmod +x "$EXECD_STUB" + +run_bootstrap() { + ARGV_FILE="$1" + PID_FILE="$2" + shift 2 + EXECD="$EXECD_STUB" \ + EXECD_ARGV_FILE="$ARGV_FILE" \ + EXECD_PID_FILE="$PID_FILE" \ + EXECD_INIT=1 \ + "$BOOTSTRAP" "$@" & + BOOTSTRAP_PID=$! + + for i in $(seq 1 50); do + [ -f "$PID_FILE" ] && break + sleep 0.1 + done + if [ ! -f "$PID_FILE" ]; then + echo "FAIL: execd stub did not start" + kill "$BOOTSTRAP_PID" 2>/dev/null || true + wait "$BOOTSTRAP_PID" 2>/dev/null || true + exit 1 + fi +} + +stop_stub() { + kill "$BOOTSTRAP_PID" 2>/dev/null || true + wait "$BOOTSTRAP_PID" 2>/dev/null || true +} + +# 1. BOOTSTRAP_CMD form: execd must receive --init -- bash -c '' +ARGV_FILE="$TESTDIR/argv1" +PID_FILE="$TESTDIR/pid1" +BOOTSTRAP_CMD="echo init-works" run_bootstrap "$ARGV_FILE" "$PID_FILE" -c "ignored" +STUB_PID="$(cat "$PID_FILE")" +if [ "$STUB_PID" != "$BOOTSTRAP_PID" ]; then + echo "FAIL: bootstrap did not exec execd (bootstrap pid $BOOTSTRAP_PID != stub pid $STUB_PID)" + stop_stub + exit 1 +fi +if ! grep -q '^--init -- /[^ ]* -c echo init-works$' "$ARGV_FILE"; then + echo "FAIL: BOOTSTRAP_CMD argv = $(cat "$ARGV_FILE"), want --init -- -c " + stop_stub + exit 1 +fi +stop_stub +echo "PASS: EXECD_INIT=1 + BOOTSTRAP_CMD execs execd --init -- -c " + +# 2. Positional form: execd must receive --init -- +ARGV_FILE="$TESTDIR/argv2" +PID_FILE="$TESTDIR/pid2" +run_bootstrap "$ARGV_FILE" "$PID_FILE" sh -c 'echo positional' +STUB_PID="$(cat "$PID_FILE")" +if [ "$STUB_PID" != "$BOOTSTRAP_PID" ]; then + echo "FAIL: bootstrap did not exec execd (bootstrap pid $BOOTSTRAP_PID != stub pid $STUB_PID)" + stop_stub + exit 1 +fi +if ! grep -q '^--init -- sh -c echo positional$' "$ARGV_FILE"; then + echo "FAIL: positional argv = $(cat "$ARGV_FILE"), want --init -- sh -c echo positional" + stop_stub + exit 1 +fi +stop_stub +echo "PASS: EXECD_INIT=1 + positional args pass through unchanged" + +# 3. No command: execd must receive --init -- +ARGV_FILE="$TESTDIR/argv3" +PID_FILE="$TESTDIR/pid3" +run_bootstrap "$ARGV_FILE" "$PID_FILE" +if ! grep -q '^--init -- /' "$ARGV_FILE"; then + echo "FAIL: default-shell argv = $(cat "$ARGV_FILE"), want --init -- " + stop_stub + exit 1 +fi +stop_stub +echo "PASS: EXECD_INIT=1 with no command passes the default shell" + +echo "=== all init-mode bootstrap contract tests passed ===" diff --git a/docs/components/execd.md b/docs/components/execd.md index 23ecc4479..c99532124 100644 --- a/docs/components/execd.md +++ b/docs/components/execd.md @@ -196,6 +196,7 @@ override it. | `--graceful-shutdown-timeout` | `1s` | SSE tail-drain wait window before closing. | | `--jupyter-idle-poll-interval` | `100ms` | Poll interval after Jupyter reports idle. | | `--isolation-config` | `""` | Path to the isolation TOML config (see below). | +| `--init` | `false` | Run as the sandbox init (OSEP-0018): reap children, forward signals, own the container lifecycle. Set together with `EXECD_INIT`; see [Init mode](#init-mode). | ### Environment Variables @@ -207,6 +208,7 @@ override it. | `EXECD_API_GRACE_SHUTDOWN` | Same as `--graceful-shutdown-timeout`. | | `EXECD_JUPYTER_IDLE_POLL_INTERVAL` | Same as `--jupyter-idle-poll-interval`. | | `EXECD_ISOLATION_CONFIG` | Same as `--isolation-config`. | +| `EXECD_INIT` | Init-mode switch read by `bootstrap.sh`: when truthy (`1`/`true`/`yes`/`on`), the script `exec`s `execd --init -- ` so execd becomes PID 1; see [Init mode](#init-mode). Unset preserves the classic background-and-wait topology. | | `EXECD_CLONE3_COMPAT` | Linux clone3 compatibility switch (see below). | | `EXECD_LOG_FILE` | Optional log output file path; default is stdout. | | `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | Preferred OTLP metrics endpoint. | @@ -244,8 +246,39 @@ OTLP metrics export is enabled when either endpoint is set: - `GET /metrics`: point-in-time host metrics snapshot - `GET /metrics/watch`: SSE stream (1s cadence) -## Linux clone3 Compatibility +## Init mode + +[OSEP-0018](../../oseps/0018-execd-as-sandbox-init.md) makes execd the sandbox +init: it becomes the parent of the user entrypoint, reaps every child through +a single reaper, forwards application signals, and propagates the entrypoint +exit code to the container runtime. + +Init mode is **off by default** and gated by two settings set in lockstep: + +- `EXECD_INIT` (read by `bootstrap.sh`): decides the process topology — the + script `exec`s into `execd --init -- ` so execd inherits PID 1 + (Docker / K8s Batch paths), instead of backgrounding execd and the user + command as siblings. +- `--init` (read by execd): activates the init duties (reaper, signal + forwarding, lifecycle). If execd is not PID 1 (e.g. the K8s Pool task path, + or a stray `&`), it degrades to subreaper mode: orphan reaping works, but + the kernel PID 1 signal shield does not. + +Behavioral contract in init mode: + +- The user entrypoint owns the container lifecycle: when it exits, execd + stops the remaining children (`SIGTERM` → grace → `SIGKILL`) and exits with + the entrypoint's status. +- `HUP`/`USR1`/`USR2`/`WINCH` are forwarded to the entrypoint process group. +- `SIGTERM` (runtime-initiated container stop) is forwarded to the workload + and starts the graceful shutdown sequence. +- In-namespace `kill -9 1` is inert (kernel signal shield). A workload + `kill 1` (SIGTERM) is treated like a runtime stop; the trusted out-of-band + stop channel is a follow-up (see the OSEP, §3). +- The actual mode is reported on `GET /v1/isolated/capabilities` under + `hardening.init_mode` (`pid1` | `subreaper` | `none`). +## Linux clone3 Compatibility Some sandbox environments fail on `clone3(2)`. Set `EXECD_CLONE3_COMPAT` in sandbox env to force fallback behavior: diff --git a/sdks/sandbox/go/isolated.go b/sdks/sandbox/go/isolated.go index a3b3125b3..cd84c0dee 100644 --- a/sdks/sandbox/go/isolated.go +++ b/sdks/sandbox/go/isolated.go @@ -182,16 +182,23 @@ type isolatedBackgroundRunRequest struct { Background bool `json:"background"` } +// HardeningStatus reports execd init-mode state (OSEP-0018). +type HardeningStatus struct { + InitMode string `json:"init_mode"` // "pid1" | "subreaper" | "none" + SignalShield bool `json:"signal_shield"` // kernel PID 1 signal shield active +} + // IsolatedCapabilities reports isolation capabilities. type IsolatedCapabilities struct { - Available bool `json:"available"` - Isolator string `json:"isolator,omitempty"` - Version string `json:"version,omitempty"` - Message string `json:"message,omitempty"` - SetprivAvailable bool `json:"setpriv_available"` - UsernsAvailable bool `json:"userns_available"` - CommitSupported bool `json:"commit_supported"` - DiffSupported bool `json:"diff_supported"` + Available bool `json:"available"` + Isolator string `json:"isolator,omitempty"` + Version string `json:"version,omitempty"` + Message string `json:"message,omitempty"` + SetprivAvailable bool `json:"setpriv_available"` + UsernsAvailable bool `json:"userns_available"` + CommitSupported bool `json:"commit_supported"` + DiffSupported bool `json:"diff_supported"` + Hardening *HardeningStatus `json:"hardening,omitempty"` } // IsolatedCreate creates an isolated bash session. diff --git a/sdks/sandbox/python/src/opensandbox/api/execd/models/__init__.py b/sdks/sandbox/python/src/opensandbox/api/execd/models/__init__.py index 69dc795bc..36b6d87f3 100644 --- a/sdks/sandbox/python/src/opensandbox/api/execd/models/__init__.py +++ b/sdks/sandbox/python/src/opensandbox/api/execd/models/__init__.py @@ -18,6 +18,8 @@ from .bind_mount import BindMount from .capabilities_response import CapabilitiesResponse +from .capabilities_response_hardening import CapabilitiesResponseHardening +from .capabilities_response_hardening_init_mode import CapabilitiesResponseHardeningInitMode from .chmod_files_body import ChmodFilesBody from .code_context import CodeContext from .code_context_request import CodeContextRequest @@ -75,6 +77,8 @@ __all__ = ( "BindMount", "CapabilitiesResponse", + "CapabilitiesResponseHardening", + "CapabilitiesResponseHardeningInitMode", "ChmodFilesBody", "CodeContext", "CodeContextRequest", diff --git a/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response.py b/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response.py index 0fac8c0bf..59ce5af67 100644 --- a/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response.py +++ b/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response.py @@ -17,13 +17,17 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import TYPE_CHECKING, Any, TypeVar from attrs import define as _attrs_define from attrs import field as _attrs_field from ..types import UNSET, Unset +if TYPE_CHECKING: + from ..models.capabilities_response_hardening import CapabilitiesResponseHardening + + T = TypeVar("T", bound="CapabilitiesResponse") @@ -41,6 +45,9 @@ class CapabilitiesResponse: userns_available (bool | Unset): Whether sessions using uid_mode userns can be created commit_supported (bool | Unset): diff_supported (bool | Unset): + hardening (CapabilitiesResponseHardening | Unset): execd init-mode state (OSEP-0018): whether execd is the + sandbox init and which of its controls are in effect. Not an isolation capability; reported here so operators + see enforcement state in one place. """ available: bool | Unset = UNSET @@ -51,6 +58,7 @@ class CapabilitiesResponse: userns_available: bool | Unset = UNSET commit_supported: bool | Unset = UNSET diff_supported: bool | Unset = UNSET + hardening: CapabilitiesResponseHardening | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -70,6 +78,10 @@ def to_dict(self) -> dict[str, Any]: diff_supported = self.diff_supported + hardening: dict[str, Any] | Unset = UNSET + if not isinstance(self.hardening, Unset): + hardening = self.hardening.to_dict() + field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) @@ -89,11 +101,15 @@ def to_dict(self) -> dict[str, Any]: field_dict["commit_supported"] = commit_supported if diff_supported is not UNSET: field_dict["diff_supported"] = diff_supported + if hardening is not UNSET: + field_dict["hardening"] = hardening return field_dict @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.capabilities_response_hardening import CapabilitiesResponseHardening + d = dict(src_dict) available = d.pop("available", UNSET) @@ -111,6 +127,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: diff_supported = d.pop("diff_supported", UNSET) + _hardening = d.pop("hardening", UNSET) + hardening: CapabilitiesResponseHardening | Unset + if isinstance(_hardening, Unset): + hardening = UNSET + else: + hardening = CapabilitiesResponseHardening.from_dict(_hardening) + capabilities_response = cls( available=available, isolator=isolator, @@ -120,6 +143,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: userns_available=userns_available, commit_supported=commit_supported, diff_supported=diff_supported, + hardening=hardening, ) capabilities_response.additional_properties = d diff --git a/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening.py b/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening.py new file mode 100644 index 000000000..172812792 --- /dev/null +++ b/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening.py @@ -0,0 +1,99 @@ +# +# Copyright 2026 Alibaba Group Holding Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +from ..models.capabilities_response_hardening_init_mode import CapabilitiesResponseHardeningInitMode +from ..types import UNSET, Unset + +T = TypeVar("T", bound="CapabilitiesResponseHardening") + + +@_attrs_define +class CapabilitiesResponseHardening: + """execd init-mode state (OSEP-0018): whether execd is the sandbox init and which of its controls are in effect. Not an + isolation capability; reported here so operators see enforcement state in one place. + + Attributes: + init_mode (CapabilitiesResponseHardeningInitMode | Unset): How execd supervises the sandbox process tree. pid1: + execd is the kernel init of the container. subreaper: execd reaps orphans but lacks the PID 1 kernel signal + shield. none: init mode is off (default). + signal_shield (bool | Unset): Whether the kernel PID 1 signal shield protects execd from in-namespace signals + (true only in init_mode pid1). + """ + + init_mode: CapabilitiesResponseHardeningInitMode | Unset = UNSET + signal_shield: bool | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + init_mode: str | Unset = UNSET + if not isinstance(self.init_mode, Unset): + init_mode = self.init_mode.value + + signal_shield = self.signal_shield + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if init_mode is not UNSET: + field_dict["init_mode"] = init_mode + if signal_shield is not UNSET: + field_dict["signal_shield"] = signal_shield + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + _init_mode = d.pop("init_mode", UNSET) + init_mode: CapabilitiesResponseHardeningInitMode | Unset + if isinstance(_init_mode, Unset): + init_mode = UNSET + else: + init_mode = CapabilitiesResponseHardeningInitMode(_init_mode) + + signal_shield = d.pop("signal_shield", UNSET) + + capabilities_response_hardening = cls( + init_mode=init_mode, + signal_shield=signal_shield, + ) + + capabilities_response_hardening.additional_properties = d + return capabilities_response_hardening + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening_init_mode.py b/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening_init_mode.py new file mode 100644 index 000000000..29ba4de5c --- /dev/null +++ b/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening_init_mode.py @@ -0,0 +1,26 @@ +# +# Copyright 2026 Alibaba Group Holding Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from enum import Enum + + +class CapabilitiesResponseHardeningInitMode(str, Enum): + NONE = "none" + PID1 = "pid1" + SUBREAPER = "subreaper" + + def __str__(self) -> str: + return str(self.value) diff --git a/specs/execd-api.yaml b/specs/execd-api.yaml index b62ea653f..fe3cf1e69 100644 --- a/specs/execd-api.yaml +++ b/specs/execd-api.yaml @@ -2526,6 +2526,27 @@ components: type: boolean diff_supported: type: boolean + hardening: + type: object + description: >- + execd init-mode state (OSEP-0018): whether execd is the sandbox + init and which of its controls are in effect. Not an isolation + capability; reported here so operators see enforcement state in + one place. + properties: + init_mode: + type: string + enum: [pid1, subreaper, none] + description: >- + How execd supervises the sandbox process tree. pid1: execd is + the kernel init of the container. subreaper: execd reaps + orphans but lacks the PID 1 kernel signal shield. none: init + mode is off (default). + signal_shield: + type: boolean + description: >- + Whether the kernel PID 1 signal shield protects execd from + in-namespace signals (true only in init_mode pid1). responses: ServiceUnavailable: From bbe5de016ec73afccf57641512fbae1543397f0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 00:40:08 +0800 Subject: [PATCH 02/17] feat(execd): pre-exec hardening floor (OSEP-0018 phase 2) Route every user-code launch (entrypoint, /command, /code, PTY) through a native launcher that applies the privilege floor between fork and exec: execd credential env stripped, bounding set trimmed to keep_capabilities (default none), no_new_privs, identity drop to the image user, ambient caps raised, and the seccomp filter installed last. - native/launcher.c: static prelude helper, fail-closed on malformed policy, fail-open per step; built/installed by the Makefile and image - [hardening] enabled + keep_capabilities in the isolation TOML; the launcher's execve is reserved and rejected at config time (execveat stays valid); [seccomp] deny is reused as the floor filter - isolated sessions exempt: the bwrap workload is already reduced inside the namespace, and flooring the bwrap process would deny unshare and strip the caps it needs to build the namespace - hardening.cap_drop/seccomp/landlock/ebpf layer states on the capabilities endpoint (spec + Go/Python SDKs aligned) - all layers fail open: missing launcher or CAP_SETPCAP degrades with a reason instead of blocking startup --- components/execd/Dockerfile | 4 + components/execd/Makefile | 48 ++- .../execd/configs/isolation.example.toml | 19 + components/execd/main.go | 8 + components/execd/native/launcher.c | 302 ++++++++++++++++ components/execd/pkg/isolation/bwrap.go | 7 + components/execd/pkg/isolation/config.go | 18 + components/execd/pkg/isolation/seccomp_gen.go | 6 + .../execd/pkg/runtime/hardening_common.go | 32 ++ .../execd/pkg/runtime/hardening_linux.go | 341 ++++++++++++++++++ .../execd/pkg/runtime/hardening_linux_test.go | 270 ++++++++++++++ .../execd/pkg/runtime/hardening_other.go | 39 ++ .../execd/pkg/runtime/initmode_linux.go | 38 +- .../execd/pkg/runtime/initmode_other.go | 5 + .../execd/pkg/runtime/isolated_session.go | 9 +- .../pkg/web/controller/isolated_session.go | 32 +- components/execd/pkg/web/model/hardening.go | 17 +- docs/components/execd.md | 39 ++ sdks/sandbox/go/isolated.go | 15 +- .../opensandbox/api/execd/models/__init__.py | 4 + .../api/execd/models/capabilities_response.py | 6 +- .../models/capabilities_response_hardening.py | 84 ++++- .../api/execd/models/hardening_layer_state.py | 97 +++++ .../models/hardening_layer_state_state.py | 27 ++ specs/execd-api.yaml | 34 +- 25 files changed, 1463 insertions(+), 38 deletions(-) create mode 100644 components/execd/native/launcher.c create mode 100644 components/execd/pkg/runtime/hardening_common.go create mode 100644 components/execd/pkg/runtime/hardening_linux.go create mode 100644 components/execd/pkg/runtime/hardening_linux_test.go create mode 100644 components/execd/pkg/runtime/hardening_other.go create mode 100644 sdks/sandbox/python/src/opensandbox/api/execd/models/hardening_layer_state.py create mode 100644 sdks/sandbox/python/src/opensandbox/api/execd/models/hardening_layer_state_state.py diff --git a/components/execd/Dockerfile b/components/execd/Dockerfile index 64a049347..fabbf4bfa 100644 --- a/components/execd/Dockerfile +++ b/components/execd/Dockerfile @@ -79,6 +79,9 @@ RUN apk add --no-cache git musl-dev meson ninja gcc libcap-dev libcap-static pkg COPY components/execd/native/session-gate.c /build/session-gate.c RUN gcc -Os -static -s -Wall -Wextra -Werror \ -o /build/opensandbox-session-gate /build/session-gate.c +COPY components/execd/native/launcher.c /build/launcher.c +RUN gcc -Os -static -s -Wall -Wextra -Werror \ + -o /build/opensandbox-launcher /build/launcher.c RUN git clone --depth 1 --branch v0.11.2 \ https://github.com/containers/bubblewrap /build/bwrap WORKDIR /build/bwrap @@ -98,6 +101,7 @@ FROM alpine:latest COPY --from=bwrap-builder /build/bwrap/bwrap /usr/local/bin/bwrap COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-session-gate /usr/local/libexec/opensandbox-session-gate COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-session-gate /opt/opensandbox/opensandbox-session-gate +COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-launcher /opt/opensandbox/opensandbox-launcher COPY --from=builder /build/execd . COPY --from=builder /build/execd.exe ./execd.exe COPY --from=builder /build/opensandbox-supervisor ./opensandbox-supervisor diff --git a/components/execd/Makefile b/components/execd/Makefile index a90b8ab1a..0c6f1825b 100644 --- a/components/execd/Makefile +++ b/components/execd/Makefile @@ -35,6 +35,9 @@ SESSION_GATE_SOURCE_INSTALL_DIR := /usr/local/libexec SESSION_GATE_RUNTIME_DIR := /opt/opensandbox SESSION_GATE_CFLAGS ?= $(CFLAGS) -O2 -Wall -Wextra -Werror SESSION_GATE_LDFLAGS ?= -static -s +LAUNCHER_BINARY := bin/opensandbox-launcher +LAUNCHER_SOURCE := native/launcher.c +LAUNCHER_RUNTIME_DIR := /opt/opensandbox INSTALL ?= install DESTDIR ?= ifeq ($(strip $(DESTDIR)),) @@ -49,7 +52,7 @@ PROJECT_LDFLAGS := -buildid= -B none -X 'github.com/alibaba/opensandbox/internal GO_BUILD_FLAGS := $(strip $(GOFLAGS) $(PROJECT_GOFLAGS)) GO_LDFLAGS := $(strip $(LDFLAGS) $(PROJECT_LDFLAGS)) -.PHONY: build-session-gate install-session-gate +.PHONY: build-session-gate install-session-gate build-launcher install-launcher build-session-gate: @set -eu; \ host_goos="$$(go env GOHOSTOS)"; \ @@ -99,8 +102,49 @@ install-session-gate: $(INSTALL) $(SESSION_GATE_INSTALL_OWNER_ARGS) -m 0555 "$(SESSION_GATE_BINARY)" \ "$(DESTDIR)$(SESSION_GATE_RUNTIME_DIR)/opensandbox-session-gate" +build-launcher: + @set -eu; \ + host_goos="$$(go env GOHOSTOS)"; \ + host_goarch="$$(go env GOHOSTARCH)"; \ + target_goos="$(if $(GOOS),$(GOOS),$$(go env GOOS))"; \ + target_goarch="$(if $(GOARCH),$(GOARCH),$$(go env GOARCH))"; \ + if [ "$$target_goos" != "linux" ]; then \ + echo "Skipping launcher: hardening requires Linux (target=$$target_goos/$$target_goarch)"; \ + exit 0; \ + fi; \ + if [ "$$host_goos/$$host_goarch" != "$$target_goos/$$target_goarch" ]; then \ + echo "launcher cross-build is unsupported (host=$$host_goos/$$host_goarch, target=$$target_goos/$$target_goarch)" >&2; \ + echo "use the execd Docker build for multi-architecture Linux artifacts" >&2; \ + exit 1; \ + fi; \ + mkdir -p bin; \ + $(CC) $(CPPFLAGS) $(SESSION_GATE_CFLAGS) "$(LAUNCHER_SOURCE)" \ + $(SESSION_GATE_LDFLAGS) -o "$(LAUNCHER_BINARY).tmp"; \ + mv -f "$(LAUNCHER_BINARY).tmp" "$(LAUNCHER_BINARY)" + +install-launcher: + @if [ "$$(uname -s)" != "Linux" ]; then \ + echo "install-launcher requires Linux" >&2; \ + exit 1; \ + fi + @if [ ! -x "$(LAUNCHER_BINARY)" ]; then \ + echo "$(LAUNCHER_BINARY) is missing; run make build-launcher first" >&2; \ + exit 1; \ + fi + @if [ -z "$(DESTDIR)" ] && [ "$$(id -u)" -ne 0 ]; then \ + echo "install-launcher requires root unless DESTDIR is set" >&2; \ + exit 1; \ + fi + @umask 022; mkdir -p "$(DESTDIR)$(LAUNCHER_RUNTIME_DIR)" + @if [ -z "$(DESTDIR)" ]; then \ + chown root:root "$(DESTDIR)$(LAUNCHER_RUNTIME_DIR)"; \ + fi + chmod go-w "$(DESTDIR)$(LAUNCHER_RUNTIME_DIR)" + $(INSTALL) $(SESSION_GATE_INSTALL_OWNER_ARGS) -m 0555 "$(LAUNCHER_BINARY)" \ + "$(DESTDIR)$(LAUNCHER_RUNTIME_DIR)/opensandbox-launcher" + .PHONY: build -build: vet build-session-gate ## Build execd and the Linux session gate. +build: vet build-session-gate build-launcher ## Build execd and the Linux native helpers. @mkdir -p bin go build $(GO_BUILD_FLAGS) -ldflags "$(GO_LDFLAGS)" -o bin/execd main.go diff --git a/components/execd/configs/isolation.example.toml b/components/execd/configs/isolation.example.toml index a56a67710..b5daee0fd 100644 --- a/components/execd/configs/isolation.example.toml +++ b/components/execd/configs/isolation.example.toml @@ -82,3 +82,22 @@ allowed_writable = ["/workspace", "/mnt", "/media", "/data"] # # Other potentially dangerous # "userfaultfd", "kexec_load", "kexec_file_load", "acct", # ] + +# Hardening floor (OSEP-0018 §4). Default OFF — omit the section for today's +# behavior. When enabled, every user-code process (entrypoint, /command, +# /code, PTY) is launched through the opensandbox-launcher native helper with +# reduced capabilities, no_new_privs, and the seccomp floor; combined with +# init mode via bootstrap.sh EXECD_INIT + --init. +# +# [hardening] +# enabled = true +# +# # Capabilities the workload retains (raised in the ambient set). +# # Default: drop all. Names use the CAP_ prefix. +# keep_capabilities = [] +# +# NOTE: with [hardening] enabled, [seccomp] deny must NOT list "execve" — +# it is reserved for the launcher's final exec (execveat stays allowed). +# Missing runtime support (no CAP_SETPCAP, launcher binary absent) is +# reported on GET /v1/isolated/capabilities under "hardening" and skipped, +# never fatal. diff --git a/components/execd/main.go b/components/execd/main.go index cbf85b71d..6f966fd60 100644 --- a/components/execd/main.go +++ b/components/execd/main.go @@ -69,6 +69,14 @@ func run() int { return 1 } + // Activate the pre-exec hardening floor ([hardening] enabled, OSEP-0018). + // Config errors (unknown capability, reserved execve) are fatal; missing + // runtime support degrades and is reported on the capabilities endpoint. + if err := runtime.InitHardening(isoCfg); err != nil { + log.Error("hardening: %v", err) + return 1 + } + // Probe isolation runtime capabilities. isolationProbe := isolation.Probe(isolation.ProbeConfig{ UpperRoot: isoCfg.UpperRoot, diff --git a/components/execd/native/launcher.c b/components/execd/native/launcher.c new file mode 100644 index 000000000..e31e83ab6 --- /dev/null +++ b/components/execd/native/launcher.c @@ -0,0 +1,302 @@ +/* + * Copyright 2026 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * opensandbox-launcher is the pre-exec hardening prelude (OSEP-0018 §4). + * + * execd execs it as the child's argv[0]; it applies the privilege floor in + * the child between fork and exec, then execve(2)s the real user command: + * + * 1. unset execd's credential env vars + * 2. prctl(PR_SET_KEEPCAPS) (keep caps across the uid change) + * 3. drop every bounding-set cap not kept (needs CAP_SETPCAP) + * 4. prctl(PR_SET_NO_NEW_PRIVS) + * 5. setgroups + setgid + setuid (identity drop) + * 6. capset permitted/effective to the kept caps; PR_CAP_AMBIENT_RAISE each + * 7. seccomp BPF filter (SECCOMP_MODE_FILTER) — LAST, so it never blocks + * the launcher's own setup syscalls above + * 8. execve(user argv) + * + * The order is pinned by Linux semantics (see the OSEP). Every step is + * best-effort and fail-open: a missing prerequisite is logged to stderr and + * skipped, never fatal — matching execd's degradation contract. The policy is + * read from an inherited descriptor; any malformed policy exits without + * executing the workload. + */ + +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define POLICY_MAGIC 0x4f534258u /* "OSBX" */ +#define POLICY_VERSION 1u + +#define FLAG_UID_DROP 0x1u +#define FLAG_CAP_DROP 0x2u + +#define LAUNCH_FAILURE 125 +#define EXEC_FAILURE 126 + +/* Keep in sync with policyHeader in hardening_linux.go. */ +struct policy_header { + uint32_t magic; + uint32_t version; + uint32_t flags; + uint32_t uid; + uint32_t gid; + uint32_t n_keepcaps; + uint32_t n_env; + uint32_t seccomp_len; +}; + +#define MAX_CAPS 64 + +static void log_err(const char *msg, int err) +{ + fprintf(stderr, "opensandbox-launcher: %s: %s\n", msg, strerror(err)); +} + +static void fail(int fd, const char *msg) +{ + if (fd >= 0) + (void)close(fd); + fprintf(stderr, "opensandbox-launcher: %s\n", msg); + _exit(LAUNCH_FAILURE); +} + +/* Read exactly n bytes from fd, retrying on EINTR and short reads. */ +static int read_exact(int fd, void *buf, size_t n) +{ + uint8_t *p = buf; + size_t left = n; + + while (left > 0) { + ssize_t got = read(fd, p, left); + if (got < 0) { + if (errno == EINTR) + continue; + return -1; + } + if (got == 0) + return -1; /* EOF before the expected length */ + p += got; + left -= (size_t)got; + } + return 0; +} + +/* Capability ABI v3: two data blocks covering caps 0..63. */ +struct cap_header { + uint32_t version; + int pid; +}; + +struct cap_data { + uint32_t effective; + uint32_t permitted; + uint32_t inheritable; +}; + +static int capset_all(uint32_t kept) +{ + struct cap_header header; + struct cap_data data[2]; + + memset(&header, 0, sizeof(header)); + memset(data, 0, sizeof(data)); + header.version = _LINUX_CAPABILITY_VERSION_3; + header.pid = 0; + data[0].effective = kept; + data[0].permitted = kept; + data[0].inheritable = kept; + data[1].effective = 0; + data[1].permitted = 0; + data[1].inheritable = 0; + return syscall(SYS_capset, &header, data); +} + +static int raise_ambient(uint32_t cap) +{ + return prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_RAISE, (unsigned long)cap, 0, 0); +} + +int main(int argc, char **argv) +{ + int policy_fd; + struct policy_header hdr; + uint32_t keepcaps[MAX_CAPS]; + char *env_names[MAX_CAPS]; + int n_env; + size_t env_budget; + struct sock_filter *filter = NULL; + struct sock_fprog prog; + + if (argc < 4 || strcmp(argv[2], "--") != 0) + fail(-1, "usage: opensandbox-launcher -- "); + + { + char *end = NULL; + long parsed; + + errno = 0; + parsed = strtol(argv[1], &end, 10); + if (errno != 0 || end == argv[1] || *end != '\0' || + parsed < 3 || parsed > INT32_MAX) + fail(-1, "invalid policy descriptor"); + policy_fd = (int)parsed; + } + + if (fcntl(policy_fd, F_GETFD) < 0) + fail(policy_fd, "policy descriptor is not open"); + + if (read_exact(policy_fd, &hdr, sizeof(hdr)) != 0) + fail(policy_fd, "truncated policy header"); + if (hdr.magic != POLICY_MAGIC || hdr.version != POLICY_VERSION) + fail(policy_fd, "invalid policy header"); + + if (hdr.n_keepcaps > MAX_CAPS) + fail(policy_fd, "too many kept capabilities"); + if (hdr.n_env > MAX_CAPS) + fail(policy_fd, "too many environment names"); + if (hdr.seccomp_len % sizeof(struct sock_filter) != 0) + fail(policy_fd, "seccomp filter length is not a multiple of sock_filter"); + + if (hdr.n_keepcaps > 0 && + read_exact(policy_fd, keepcaps, hdr.n_keepcaps * sizeof(uint32_t)) != 0) + fail(policy_fd, "truncated capability list"); + + /* Env names are NUL-terminated strings packed back to back. Bound the + * total budget so a malicious policy cannot exhaust the stack. */ + env_budget = hdr.n_env * 64u; + if (env_budget > 4096u) + fail(policy_fd, "environment names exceed the policy budget"); + n_env = 0; + while (n_env < (int)hdr.n_env) { + static char env_buf[4096]; + size_t off = 0; + + while (off + 1 < sizeof(env_buf)) { + if (read(policy_fd, &env_buf[off], 1) != 1) + fail(policy_fd, "truncated environment name"); + if (env_buf[off] == '\0') + break; + off++; + } + if (off + 1 >= sizeof(env_buf) && env_buf[off] != '\0') + fail(policy_fd, "environment name too long"); + env_buf[off] = '\0'; + env_names[n_env++] = strdup(env_buf); + if (env_names[n_env - 1] == NULL) + fail(policy_fd, "out of memory for environment name"); + } + + if (hdr.seccomp_len > 0) { + filter = (struct sock_filter *)malloc(hdr.seccomp_len); + if (filter == NULL) + fail(policy_fd, "out of memory for seccomp filter"); + if (read_exact(policy_fd, filter, hdr.seccomp_len) != 0) + fail(policy_fd, "truncated seccomp filter"); + } + + if (close(policy_fd) != 0) + _exit(LAUNCH_FAILURE); + + /* 1. Strip execd's credential/config env from the workload. */ + for (int i = 0; i < n_env; i++) { + unsetenv(env_names[i]); + free(env_names[i]); + } + + if (hdr.flags & FLAG_CAP_DROP) { + int caps_dropped = 0; + + /* 2. Keep caps across the identity change (step 5 clears them). */ + if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) != 0) + log_err("PR_SET_KEEPCAPS", errno); + + /* 3. Trim the bounding set while CAP_SETPCAP is still held. */ + for (int cap = 0; cap <= CAP_LAST_CAP; cap++) { + int keep = 0; + + for (uint32_t k = 0; k < hdr.n_keepcaps; k++) { + if ((uint32_t)cap == keepcaps[k]) { + keep = 1; + break; + } + } + if (!keep && prctl(PR_CAPBSET_DROP, (unsigned long)cap, 0, 0, 0) == 0) + caps_dropped++; + else if (!keep && errno != EPERM && errno != EINVAL) + log_err("PR_CAPBSET_DROP", errno); + } + (void)caps_dropped; + } + + /* 4. No new privileges: nothing below can regain what the launcher drops. */ + if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) != 0) + log_err("PR_SET_NO_NEW_PRIVS", errno); + + if (hdr.flags & FLAG_UID_DROP) { + /* 5. Identity change. Same-uid re-apply succeeds; a foreign target + * without privileges fails and is skipped (fail-open). */ + (void)setgroups(0, NULL); + if (setgid((gid_t)hdr.gid) != 0) + log_err("setgid", errno); + if (setuid((uid_t)hdr.uid) != 0) + log_err("setuid", errno); + } + + if (hdr.flags & FLAG_CAP_DROP) { + /* 6. Final cap sets + ambient raise so kept caps survive execve. */ + uint32_t kept = 0; + + for (uint32_t k = 0; k < hdr.n_keepcaps; k++) + kept |= (1u << keepcaps[k]); + if (capset_all(kept) != 0) + log_err("capset", errno); + for (uint32_t k = 0; k < hdr.n_keepcaps; k++) { + if (raise_ambient(keepcaps[k]) != 0) + log_err("PR_CAP_AMBIENT_RAISE", errno); + } + } + + /* 7. Seccomp LAST: it must never block the setup above, and execve + * (which the Go side reserves from the deny list) is still allowed. */ + if (filter != NULL) { + prog.len = (unsigned short)(hdr.seccomp_len / sizeof(struct sock_filter)); + prog.filter = filter; + if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &prog) != 0) + log_err("PR_SET_SECCOMP", errno); + free(filter); + } + + /* 8. Exec the real workload. */ + execvp(argv[3], &argv[3]); + fprintf(stderr, "opensandbox-launcher: exec %s: %s\n", argv[3], strerror(errno)); + _exit(EXEC_FAILURE); +} diff --git a/components/execd/pkg/isolation/bwrap.go b/components/execd/pkg/isolation/bwrap.go index 09c11b483..5c0f8f653 100644 --- a/components/execd/pkg/isolation/bwrap.go +++ b/components/execd/pkg/isolation/bwrap.go @@ -282,6 +282,13 @@ func bwrapWorkspaceSegment(opts WrapOptions) ([]string, error) { } } +// ExecdConfigEnvBlacklist enumerates execd's own configuration env vars. +// They are always stripped so execd's credentials never leak into the +// workload; the hardening launcher unsets the same set before execve. +func ExecdConfigEnvBlacklist() []string { + return append([]string(nil), execdConfigEnvBlacklist...) +} + // execdConfigEnvBlacklist enumerates execd's own configuration env vars. // They are always stripped so execd's credentials never leak into the sandbox. var execdConfigEnvBlacklist = []string{ diff --git a/components/execd/pkg/isolation/config.go b/components/execd/pkg/isolation/config.go index ddadf0d08..7c357eace 100644 --- a/components/execd/pkg/isolation/config.go +++ b/components/execd/pkg/isolation/config.go @@ -34,7 +34,14 @@ type Config struct { // Seccomp overrides the built-in syscall denylist. When nil (i.e. the // [seccomp] section is absent), the built-in denylist is used. When // present, Deny completely replaces the built-in list — no merging. + // With [hardening] enabled, the same list becomes the workload's seccomp + // floor (the launcher's exec syscall, execve, is reserved and rejected). Seccomp *SeccompOverride `toml:"seccomp"` + + // Hardening enables the pre-exec privilege floor (OSEP-0018 §4): every + // user-code process is launched through the native launcher with reduced + // capabilities, no_new_privs, and the seccomp floor. Defaults to off. + Hardening *HardeningConfig `toml:"hardening"` } // SeccompOverride specifies a custom syscall denylist that replaces the @@ -43,6 +50,16 @@ type SeccompOverride struct { Deny []string `toml:"deny"` } +// HardeningConfig controls the pre-exec hardening floor. +type HardeningConfig struct { + // Enabled turns the floor on: init + cap-drop + no_new_privs + seccomp + // for every user-code launch, via the opensandbox-launcher helper. + Enabled bool `toml:"enabled"` + // KeepCapabilities lists capabilities the workload retains (raised in + // the ambient set). Default: drop all. + KeepCapabilities []string `toml:"keep_capabilities"` +} + // DefaultConfig returns the built-in defaults used when no config file is // provided or when individual fields are missing from the file. func DefaultConfig() Config { @@ -52,6 +69,7 @@ func DefaultConfig() Config { DiffMaxBytes: 4 * 1024 * 1024 * 1024, // 4 GiB AllowedWritable: []string{"/workspace", "/mnt", "/media", "/data"}, Seccomp: nil, // use built-in denylist + Hardening: nil, // floor off } } diff --git a/components/execd/pkg/isolation/seccomp_gen.go b/components/execd/pkg/isolation/seccomp_gen.go index 099ba5e51..b4d4aa360 100644 --- a/components/execd/pkg/isolation/seccomp_gen.go +++ b/components/execd/pkg/isolation/seccomp_gen.go @@ -70,6 +70,12 @@ var denylistSyscalls = []string{ "acct", } +// GenerateSeccompDenyBPF returns BPF bytecode for a default-allow, +// deny-listed syscall filter (exported for the hardening floor launcher). +func GenerateSeccompDenyBPF(override *SeccompOverride) ([]byte, error) { + return generateSeccompDenyBPF(override) +} + // generateSeccompDenyBPF returns BPF bytecode for a default-allow, // deny-listed syscall filter. The returned bytes are in struct sock_filter // format (8 bytes per instruction, native endian). diff --git a/components/execd/pkg/runtime/hardening_common.go b/components/execd/pkg/runtime/hardening_common.go new file mode 100644 index 000000000..034822768 --- /dev/null +++ b/components/execd/pkg/runtime/hardening_common.go @@ -0,0 +1,32 @@ +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package runtime + +// LayerState reports whether a hardening layer is actually enforced. +type LayerState struct { + State string // "active" | "disabled" | "degraded" | "unsupported" + Message string +} + +// HardeningReport describes the hardening state for the capabilities +// endpoint (OSEP-0018 §6). +type HardeningReport struct { + InitMode string + SignalShield bool + CapDrop LayerState + Seccomp LayerState + Landlock LayerState + Ebpf LayerState +} diff --git a/components/execd/pkg/runtime/hardening_linux.go b/components/execd/pkg/runtime/hardening_linux.go new file mode 100644 index 000000000..39276fac3 --- /dev/null +++ b/components/execd/pkg/runtime/hardening_linux.go @@ -0,0 +1,341 @@ +//go:build linux + +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Hardening floor (OSEP-0018 §4): when [hardening] is enabled, every +// user-code launch is routed through the opensandbox-launcher native helper, +// which applies the privilege floor between fork and exec (env strip, +// bounding-set trim, no_new_privs, identity drop, ambient caps, seccomp +// last). The launcher's exec syscall (execve) is reserved and rejected at +// config time. Everything is fail-open: a missing prerequisite is reported +// on the capabilities endpoint and the launch proceeds without that layer. +// +// Isolated sessions are exempt from the launcher: their workload is already +// reduced inside the bwrap namespace (bwrap --seccomp + session-gate), and +// applying the floor to the bwrap process itself would deny the unshare/ +// setns syscalls and strip the capabilities bwrap needs to build the +// namespace. + +package runtime + +import ( + "bytes" + "encoding/binary" + "fmt" + "os" + "os/exec" + "strconv" + "strings" + "sync/atomic" + + "github.com/alibaba/opensandbox/execd/pkg/isolation" + "github.com/alibaba/opensandbox/execd/pkg/log" + "golang.org/x/sys/unix" +) + +const ( + launcherRuntimePath = "/opt/opensandbox/opensandbox-launcher" + + policyMagic = 0x4f534258 // "OSBX" + policyVersion = 1 + flagUIDDrop = 0x1 + flagCapDrop = 0x2 + + // capSetpcap is the capability number required to trim bounding sets. + capSetpcap = 8 +) + +// hardeningPolicy is the serialized policy handed to the launcher over a +// memfd. Field order must stay in sync with struct policy_header in +// native/launcher.c. +type hardeningPolicy struct { + flags uint32 + uid uint32 + gid uint32 + keepcaps []uint32 + stripEnv []string + seccomp []byte +} + +type policyHeader struct { + Magic uint32 + Version uint32 + Flags uint32 + UID uint32 + GID uint32 + NKeepCaps uint32 + NEnv uint32 + SeccompLen uint32 +} + +var hardening struct { + enabled atomic.Bool + launcherPath string + policy *hardeningPolicy + capDrop atomic.Pointer[LayerState] + seccomp atomic.Pointer[LayerState] +} + +// InitHardening activates the floor from the isolation config. It returns an +// error only for invalid configuration (unknown capability name, or the +// launcher's reserved execve in [seccomp] deny); missing runtime support +// degrades to a reported, non-fatal state. +func InitHardening(cfg isolation.Config) error { + setLayer := func(dst *atomic.Pointer[LayerState], s LayerState) { + dst.Store(&s) + } + disabled := func(msg string) LayerState { + return LayerState{State: "disabled", Message: msg} + } + degraded := func(msg string) LayerState { + return LayerState{State: "degraded", Message: msg} + } + active := LayerState{State: "active"} + + setLayer(&hardening.capDrop, disabled("hardening not enabled")) + setLayer(&hardening.seccomp, disabled("hardening not enabled")) + + if cfg.Hardening == nil || !cfg.Hardening.Enabled { + return nil + } + + if cfg.Seccomp != nil { + for _, name := range cfg.Seccomp.Deny { + if name == "execve" { + return fmt.Errorf( + "hardening: [seccomp] deny lists execve, which is reserved for the launcher's final exec; " + + "use execveat if you need to deny that syscall", + ) + } + } + } + + keepcaps, err := parseKeepCapabilities(cfg.Hardening.KeepCapabilities) + if err != nil { + return err + } + + path := findLauncher() + if path == "" { + msg := "opensandbox-launcher not found (searched: /opt/opensandbox/opensandbox-launcher, $PATH)" + log.Warn("hardening: %s", msg) + setLayer(&hardening.capDrop, degraded(msg)) + setLayer(&hardening.seccomp, degraded(msg)) + return nil + } + + seccompBPF, err := isolation.GenerateSeccompDenyBPF(cfg.Seccomp) + if err != nil { + return fmt.Errorf("hardening: generate seccomp floor: %w", err) + } + + hardening.launcherPath = path + hardening.policy = &hardeningPolicy{ + uid: uint32(os.Getuid()), + gid: uint32(os.Getgid()), + keepcaps: keepcaps, + stripEnv: isolation.ExecdConfigEnvBlacklist(), + seccomp: seccompBPF, + } + // The identity drop is only meaningful when execd is root (a non-root + // execd already runs as the image's user). + if os.Geteuid() == 0 { + hardening.policy.flags |= flagUIDDrop + } + hardening.policy.flags |= flagCapDrop + + hasSetpcap := effectiveCapsHave(capSetpcap) + if hasSetpcap { + setLayer(&hardening.capDrop, active) + } else { + msg := "cap_drop skipped: execd lacks CAP_SETPCAP (bounding-set trim impossible); seccomp/identity still apply" + log.Warn("hardening: %s", msg) + setLayer(&hardening.capDrop, degraded(msg)) + } + if len(seccompBPF) == 0 { + msg := "seccomp floor skipped: deny list is empty" + log.Warn("hardening: %s", msg) + setLayer(&hardening.seccomp, degraded(msg)) + } else { + setLayer(&hardening.seccomp, active) + } + + hardening.enabled.Store(true) + log.Info("hardening: enabled (launcher=%s uid=%d gid=%d keep_caps=%v seccomp=%d bytes)", + path, hardening.policy.uid, hardening.policy.gid, + cfg.Hardening.KeepCapabilities, len(seccompBPF)) + return nil +} + +var launcherSearchPaths = []string{launcherRuntimePath} + +func findLauncher() string { + if path, err := exec.LookPath("opensandbox-launcher"); err == nil { + return path + } + for _, p := range launcherSearchPaths { + if _, err := os.Stat(p); err == nil { + return p + } + } + return "" +} + +func effectiveCapsHave(cap uint32) bool { + data, err := os.ReadFile("/proc/self/status") + if err != nil { + return false + } + for _, line := range strings.Split(string(data), "\n") { + if !strings.HasPrefix(line, "CapEff:") { + continue + } + value, err := strconv.ParseUint(strings.TrimSpace(strings.TrimPrefix(line, "CapEff:")), 16, 64) + if err != nil { + return false + } + return value&(1<= 64 || strings.ContainsRune(name, '\x00') { + return nil, fmt.Errorf("invalid env-strip name %q", name) + } + } + buf := new(bytes.Buffer) + hdr := policyHeader{ + Magic: policyMagic, + Version: policyVersion, + Flags: p.flags, + UID: p.uid, + GID: p.gid, + NKeepCaps: uint32(len(p.keepcaps)), + NEnv: uint32(len(p.stripEnv)), + SeccompLen: uint32(len(p.seccomp)), + } + if err := binary.Write(buf, binary.LittleEndian, &hdr); err != nil { + return nil, err + } + for _, capNum := range p.keepcaps { + if err := binary.Write(buf, binary.LittleEndian, capNum); err != nil { + return nil, err + } + } + for _, name := range p.stripEnv { + buf.WriteString(name) + buf.WriteByte(0) + } + buf.Write(p.seccomp) + return buf.Bytes(), nil +} + +func createPolicyMemfd(policy []byte) (int, error) { + fd, err := unix.MemfdCreate("launcher-policy", 0) + if err != nil { + return -1, fmt.Errorf("memfd_create: %w", err) + } + if _, err := unix.Write(fd, policy); err != nil { + unix.Close(fd) + return -1, fmt.Errorf("write launcher policy: %w", err) + } + if _, err := unix.Seek(fd, 0, 0); err != nil { + unix.Close(fd) + return -1, fmt.Errorf("seek launcher policy: %w", err) + } + return fd, nil +} + +// HardeningReport returns the current hardening enforcement state for the +// capabilities endpoint. +func ReportHardening() HardeningReport { + mode, shield := InitModeReport() + report := HardeningReport{ + InitMode: mode, + SignalShield: shield, + CapDrop: LayerState{State: "disabled", Message: "hardening not enabled"}, + Seccomp: LayerState{State: "disabled", Message: "hardening not enabled"}, + Landlock: LayerState{ + State: "disabled", + Message: "landlock confinement is not enabled (phase 3)", + }, + Ebpf: LayerState{ + State: "disabled", + Message: "eBPF observation is not enabled (phase 4)", + }, + } + if cs := hardening.capDrop.Load(); cs != nil { + report.CapDrop = *cs + } + if ss := hardening.seccomp.Load(); ss != nil { + report.Seccomp = *ss + } + return report +} diff --git a/components/execd/pkg/runtime/hardening_linux_test.go b/components/execd/pkg/runtime/hardening_linux_test.go new file mode 100644 index 000000000..f2d4fd78f --- /dev/null +++ b/components/execd/pkg/runtime/hardening_linux_test.go @@ -0,0 +1,270 @@ +//go:build linux + +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package runtime + +import ( + "bytes" + "os" + "os/exec" + "path/filepath" + "strings" + "sync" + "testing" + + "github.com/alibaba/opensandbox/execd/pkg/isolation" +) + +var ( + launcherOnce sync.Once + launcherBuilt string + launcherErr error +) + +func buildLauncher(t *testing.T) string { + t.Helper() + launcherOnce.Do(func() { + cc, err := exec.LookPath("cc") + if err != nil { + launcherErr = err + return + } + dir, err := os.MkdirTemp("", "launcher-test-*") + if err != nil { + launcherErr = err + return + } + launcherBuilt = filepath.Join(dir, "opensandbox-launcher") + src := filepath.Join("..", "..", "native", "launcher.c") + cmd := exec.Command(cc, "-O2", "-Wall", "-Wextra", "-Werror", + "-o", launcherBuilt, src) + if out, err := cmd.CombinedOutput(); err != nil { + launcherErr = err + t.Logf("launcher build output: %s", out) + } + }) + if launcherErr != nil { + t.Skipf("cannot build opensandbox-launcher: %v", launcherErr) + } + return launcherBuilt +} + +func resetHardening() { + hardening.enabled.Store(false) + hardening.launcherPath = "" + hardening.policy = nil + hardening.capDrop.Store(nil) + hardening.seccomp.Store(nil) + launcherSearchPaths = []string{launcherRuntimePath} +} + +func initHardeningForTest(t *testing.T, cfg isolation.Config) { + t.Helper() + t.Cleanup(resetHardening) + if err := InitHardening(cfg); err != nil { + t.Fatalf("InitHardening: %v", err) + } +} + +func hardenedCfg(keepCaps ...string) isolation.Config { + return isolation.Config{ + Hardening: &isolation.HardeningConfig{ + Enabled: true, + KeepCapabilities: keepCaps, + }, + } +} + +// childStatus launches a command through the floor and returns its combined +// output. The command may exit non-zero (e.g. a seccomp-denied syscall); +// assertions run against the output. +func childStatus(t *testing.T, cfg isolation.Config, script string) string { + t.Helper() + initHardeningForTest(t, cfg) + var out bytes.Buffer + cmd := exec.Command("sh", "-c", script) + cmd.Stdout = &out + cmd.Stderr = &out + mp, err := launchManaged(cmd) + if err != nil { + t.Fatal(err) + } + if err := mp.Wait(); err != nil { + t.Logf("command exited with error: %v", err) + } + return out.String() +} + +func TestHardeningDisabledByDefault(t *testing.T) { + initHardeningForTest(t, isolation.Config{}) + report := ReportHardening() + if report.CapDrop.State != "disabled" || report.Seccomp.State != "disabled" { + t.Fatalf("hardening states = %q/%q, want disabled/disabled", + report.CapDrop.State, report.Seccomp.State) + } + out := childStatus(t, isolation.Config{}, "echo hi") + if out != "hi\n" { + t.Fatalf("output = %q, want hi (launch must be unmodified)", out) + } +} + +func TestHardeningAppliesFloor(t *testing.T) { + buildLauncher(t) + launcherSearchPaths = append(launcherSearchPaths, launcherBuilt) + out := childStatus(t, hardenedCfg(), `grep -E "^CapEff:|^CapPrm:|^NoNewPrivs:|^Uid:" /proc/self/status`) + if !strings.Contains(out, "NoNewPrivs: 1") { + t.Fatalf("NoNewPrivs not set: %q", out) + } + if strings.Contains(out, "CapEff: 0000000000000000") || os.Geteuid() != 0 { + return + } + t.Fatalf("CapEff not dropped to zero: %q", out) +} + +func TestHardeningKeepsExecdPrivileges(t *testing.T) { + buildLauncher(t) + launcherSearchPaths = append(launcherSearchPaths, launcherBuilt) + + before, err := os.ReadFile("/proc/self/status") + if err != nil { + t.Fatal(err) + } + out := childStatus(t, hardenedCfg(), "true") + after, err := os.ReadFile("/proc/self/status") + if err != nil { + t.Fatal(err) + } + capOf := func(status []byte) string { + for _, line := range strings.Split(string(status), "\n") { + if strings.HasPrefix(line, "CapEff:") { + return line + } + } + return "" + } + if capOf(before) != capOf(after) { + t.Fatalf("execd CapEff changed across a hardened launch:\n before=%s\n after =%s\n child=%q", + capOf(before), capOf(after), out) + } +} + +func TestHardeningSeccompBlocksDeniedSyscall(t *testing.T) { + buildLauncher(t) + launcherSearchPaths = append(launcherSearchPaths, launcherBuilt) + // The filter is installed (Seccomp: 2 = SECCOMP_MODE_FILTER) before the + // workload execs; a behavioral probe is unreliable because the container + // runtime's own seccomp profile already blocks syscalls like mount. + out := childStatus(t, hardenedCfg(), `grep "^Seccomp:" /proc/self/status`) + if !strings.Contains(out, "Seccomp: 2") { + t.Fatalf("seccomp filter not active in the child: %q", out) + } +} + +func TestHardeningEnvStrip(t *testing.T) { + buildLauncher(t) + launcherSearchPaths = append(launcherSearchPaths, launcherBuilt) + initHardeningForTest(t, hardenedCfg()) + + var out bytes.Buffer + cmd := exec.Command("sh", "-c", "env") + cmd.Stdout = &out + cmd.Stderr = &out + cmd.Env = append(os.Environ(), + "EXECD_ACCESS_TOKEN=supersecret", + "JUPYTER_TOKEN=anothersecret", + ) + mp, err := launchManaged(cmd) + if err != nil { + t.Fatal(err) + } + _ = mp.Wait() + for _, secret := range []string{"supersecret", "anothersecret"} { + if strings.Contains(out.String(), secret) { + t.Fatalf("execd credential env leaked into the workload: %q", out.String()) + } + } +} + +func TestHardeningKeepCapabilities(t *testing.T) { + if os.Geteuid() != 0 { + t.Skip("requires root to raise capabilities") + } + buildLauncher(t) + launcherSearchPaths = append(launcherSearchPaths, launcherBuilt) + out := childStatus(t, hardenedCfg("CAP_NET_RAW"), `grep "^CapEff:" /proc/self/status`) + // CAP_NET_RAW = 13 → 0x2000. + if !strings.Contains(out, "CapEff: 0000000000002000") { + t.Fatalf("kept capability not raised: %q", out) + } +} + +func TestHardeningRejectsReservedExecve(t *testing.T) { + cfg := isolation.Config{ + Seccomp: &isolation.SeccompOverride{Deny: []string{"execve", "mount"}}, + Hardening: &isolation.HardeningConfig{ + Enabled: true, + }, + } + if err := InitHardening(cfg); err == nil || !strings.Contains(err.Error(), "execve") { + t.Fatalf("InitHardening error = %v, want execve rejection", err) + } + resetHardening() +} + +func TestHardeningRejectsUnknownCapability(t *testing.T) { + cfg := isolation.Config{ + Hardening: &isolation.HardeningConfig{ + Enabled: true, + KeepCapabilities: []string{"CAP_DOES_NOT_EXIST"}, + }, + } + if err := InitHardening(cfg); err == nil { + t.Fatal("InitHardening error = nil, want unknown capability rejection") + } + resetHardening() +} + +func TestHardeningDegradesWhenLauncherMissing(t *testing.T) { + launcherSearchPaths = nil + initHardeningForTest(t, hardenedCfg()) + report := ReportHardening() + if report.CapDrop.State != "degraded" || report.Seccomp.State != "degraded" { + t.Fatalf("states = %q/%q, want degraded/degraded", + report.CapDrop.State, report.Seccomp.State) + } + // Fail-open: the launch still works without the floor. + out := childStatus(t, hardenedCfg(), "echo still-works") + if out != "still-works\n" { + t.Fatalf("output = %q, want still-works", out) + } +} + +func TestHardeningReportLayers(t *testing.T) { + buildLauncher(t) + launcherSearchPaths = append(launcherSearchPaths, launcherBuilt) + initHardeningForTest(t, hardenedCfg()) + report := ReportHardening() + if report.Landlock.State != "disabled" || report.Ebpf.State != "disabled" { + t.Fatalf("future layers = %q/%q, want disabled/disabled", + report.Landlock.State, report.Ebpf.State) + } + if report.CapDrop.State != "active" && report.CapDrop.State != "degraded" { + t.Fatalf("cap_drop state = %q, want active or degraded (root)", report.CapDrop.State) + } + if report.Seccomp.State != "active" { + t.Fatalf("seccomp state = %q, want active", report.Seccomp.State) + } +} diff --git a/components/execd/pkg/runtime/hardening_other.go b/components/execd/pkg/runtime/hardening_other.go new file mode 100644 index 000000000..8749260e5 --- /dev/null +++ b/components/execd/pkg/runtime/hardening_other.go @@ -0,0 +1,39 @@ +//go:build !linux + +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Hardening is Linux-only (OSEP-0018); on other platforms it is a no-op. + +package runtime + +import "github.com/alibaba/opensandbox/execd/pkg/isolation" + +// InitHardening is a no-op off Linux. +func InitHardening(cfg isolation.Config) error { + return nil +} + +// HardeningReport reports that no hardening layer is in effect. +func ReportHardening() HardeningReport { + initMode, shield := InitModeReport() + return HardeningReport{ + InitMode: initMode, + SignalShield: shield, + CapDrop: LayerState{State: "disabled", Message: "hardening is Linux-only"}, + Seccomp: LayerState{State: "disabled", Message: "hardening is Linux-only"}, + Landlock: LayerState{State: "disabled", Message: "hardening is Linux-only"}, + Ebpf: LayerState{State: "disabled", Message: "hardening is Linux-only"}, + } +} diff --git a/components/execd/pkg/runtime/initmode_linux.go b/components/execd/pkg/runtime/initmode_linux.go index a0d28d652..37b2c83b6 100644 --- a/components/execd/pkg/runtime/initmode_linux.go +++ b/components/execd/pkg/runtime/initmode_linux.go @@ -231,12 +231,13 @@ func (r *reaper) drain() { // In non-init mode it falls back to plain Cmd.Start/Cmd.Wait, so callers // share one launch path regardless of mode. type managedProcess struct { - cmd *exec.Cmd - preReap func() - done chan struct{} - once sync.Once - ws syscall.WaitStatus - exitErr error + cmd *exec.Cmd + preReap func() + noHardening bool + done chan struct{} + once sync.Once + ws syscall.WaitStatus + exitErr error } func newManagedProcess(cmd *exec.Cmd) *managedProcess { @@ -289,25 +290,38 @@ func withPreReap(fn func()) launchOption { } } +// withoutHardening exempts a launch from the hardening floor. Used for the +// bwrap process of isolated sessions, whose workload is already reduced +// inside the namespace and whose own syscalls (unshare) the floor would deny. +func withoutHardening() launchOption { + return func(mp *managedProcess) { + mp.noHardening = true + } +} + // launchManagedWith starts the command and registers it with the reaper. // startFn is called under the reaper lock so the child cannot be observed -// (and misclassified as an orphan) before registration. +// (and misclassified as an orphan) before registration. When the hardening +// floor is active, cmd is first rewritten to exec through the launcher. func launchManagedWith(cmd *exec.Cmd, startFn func() error, opts ...launchOption) (*managedProcess, error) { + mp := newManagedProcess(cmd) + for _, o := range opts { + o(mp) + } + if err := hardenCmd(cmd, mp.noHardening); err != nil { + return nil, err + } if initReaper == nil { if err := startFn(); err != nil { return nil, err } - return newManagedProcess(cmd), nil + return mp, nil } initReaper.mu.Lock() defer initReaper.mu.Unlock() if err := startFn(); err != nil { return nil, err } - mp := newManagedProcess(cmd) - for _, o := range opts { - o(mp) - } initReaper.owned[cmd.Process.Pid] = mp return mp, nil } diff --git a/components/execd/pkg/runtime/initmode_other.go b/components/execd/pkg/runtime/initmode_other.go index 4fdd41568..81d7346c5 100644 --- a/components/execd/pkg/runtime/initmode_other.go +++ b/components/execd/pkg/runtime/initmode_other.go @@ -48,6 +48,11 @@ func withPreReap(fn func()) launchOption { return func(*managedProcess) {} } +// withoutHardening is a no-op off Linux (the floor never applies there). +func withoutHardening() launchOption { + return func(*managedProcess) {} +} + func launchManagedWith(cmd *exec.Cmd, startFn func() error, opts ...launchOption) (*managedProcess, error) { if err := startFn(); err != nil { return nil, err diff --git a/components/execd/pkg/runtime/isolated_session.go b/components/execd/pkg/runtime/isolated_session.go index 394aa46aa..df7fd1b3a 100644 --- a/components/execd/pkg/runtime/isolated_session.go +++ b/components/execd/pkg/runtime/isolated_session.go @@ -210,7 +210,14 @@ func (s *isolatedSession) start() error { cmd.Stdout = stdoutW cmd.Stderr = stdoutW - mp, err := launchManaged(cmd, withPreReap(func() { s.markProcessExitedBeforeReap(nil) })) + mp, err := launchManaged( + cmd, + withPreReap(func() { s.markProcessExitedBeforeReap(nil) }), + // bwrap needs unshare/mount + capabilities to build the namespace; + // its workload is already reduced inside by bwrap's own seccomp and + // the session gate. + withoutHardening(), + ) if err != nil { _ = stdinR.Close() _ = stdinW.Close() diff --git a/components/execd/pkg/web/controller/isolated_session.go b/components/execd/pkg/web/controller/isolated_session.go index ba34c115b..dabe548af 100644 --- a/components/execd/pkg/web/controller/isolated_session.go +++ b/components/execd/pkg/web/controller/isolated_session.go @@ -443,16 +443,33 @@ func (c *IsolatedSessionController) Commit() { // Capabilities handles GET /v1/isolated/capabilities. func (c *IsolatedSessionController) Capabilities() { - initMode, signalShield := runtime.InitModeReport() + hardeningReport := runtime.ReportHardening() + hardening := &model.HardeningStatus{ + InitMode: hardeningReport.InitMode, + SignalShield: hardeningReport.SignalShield, + CapDrop: &model.HardeningLayerState{ + State: hardeningReport.CapDrop.State, + Message: hardeningReport.CapDrop.Message, + }, + Seccomp: &model.HardeningLayerState{ + State: hardeningReport.Seccomp.State, + Message: hardeningReport.Seccomp.Message, + }, + Landlock: &model.HardeningLayerState{ + State: hardeningReport.Landlock.State, + Message: hardeningReport.Landlock.Message, + }, + Ebpf: &model.HardeningLayerState{ + State: hardeningReport.Ebpf.State, + Message: hardeningReport.Ebpf.Message, + }, + } if isolatedRunner == nil { resp := model.CapabilitiesResponse{ Available: false, CommitSupported: false, DiffSupported: false, - Hardening: &model.HardeningStatus{ - InitMode: initMode, - SignalShield: signalShield, - }, + Hardening: hardening, } if isolatedProbeResult != nil { resp.Isolator = isolatedProbeResult.Isolator @@ -473,10 +490,7 @@ func (c *IsolatedSessionController) Capabilities() { UsernsAvailable: caps.UsernsAvailable, CommitSupported: caps.CommitSupported, DiffSupported: caps.DiffSupported, - Hardening: &model.HardeningStatus{ - InitMode: initMode, - SignalShield: signalShield, - }, + Hardening: hardening, } // Probe results indicate overlay capability, not diff/commit implementation. // Diff and commit are Phase 2; do not advertise them as supported. diff --git a/components/execd/pkg/web/model/hardening.go b/components/execd/pkg/web/model/hardening.go index 64fee90d4..8f131de8c 100644 --- a/components/execd/pkg/web/model/hardening.go +++ b/components/execd/pkg/web/model/hardening.go @@ -14,11 +14,24 @@ package model +// HardeningLayerState reports whether one hardening layer is actually +// enforced (OSEP-0018 §6). +type HardeningLayerState struct { + // State is "active" | "disabled" (not configured) | "degraded" + // (configured but a prerequisite is missing) | "unsupported". + State string `json:"state"` + Message string `json:"message,omitempty"` +} + // HardeningStatus reports which execd init-mode controls are in effect // (OSEP-0018). This is execd-global state (execd as the sandbox init / PID 1), // not an isolation/bwrap capability; it is reported on the capabilities // endpoint so operators see what is actually enforced in one place. type HardeningStatus struct { - InitMode string `json:"init_mode"` // "pid1" | "subreaper" | "none" - SignalShield bool `json:"signal_shield"` // kernel PID 1 signal shield active + InitMode string `json:"init_mode"` // "pid1" | "subreaper" | "none" + SignalShield bool `json:"signal_shield"` // kernel PID 1 signal shield active + CapDrop *HardeningLayerState `json:"cap_drop"` // bounding-set/capability reduction + Seccomp *HardeningLayerState `json:"seccomp"` // seccomp floor on user code + Landlock *HardeningLayerState `json:"landlock"` // filesystem confinement (phase 3) + Ebpf *HardeningLayerState `json:"ebpf"` // eBPF observation (phase 4) } diff --git a/docs/components/execd.md b/docs/components/execd.md index c99532124..109da6ba9 100644 --- a/docs/components/execd.md +++ b/docs/components/execd.md @@ -232,6 +232,45 @@ upper_root = "/var/lib/execd/isolation" allowed_writable = ["/workspace", "/mnt", "/media", "/data"] ``` +### Hardening Floor + +The pre-exec privilege floor (OSEP-0018 §4) is off by default. Enable it in +the same isolation TOML: + +```toml +[hardening] +enabled = true + +# Capabilities the workload keeps (raised in the ambient set). +# Default: drop all. Names use the CAP_ prefix. +keep_capabilities = [] + +# Optional: replace the built-in syscall denylist. With hardening enabled, +# "execve" is reserved for the launcher's final exec and is rejected at +# startup ("execveat" stays allowed). +[seccomp] +deny = ["mount", "ptrace", "bpf", "seccomp"] +``` + +When enabled, every user-code process (entrypoint, `/command`, `/code`, +PTY) is launched through the `opensandbox-launcher` native helper, which +applies the floor between fork and exec: execd credential env vars are +stripped, the bounding set is trimmed to `keep_capabilities` (none by +default), `no_new_privs` is set, the identity is dropped to the image's +user, kept caps are raised in the ambient set, and the seccomp filter is +installed last. Isolated-session workloads are already reduced inside the +bwrap namespace and are not additionally wrapped. + +Everything is fail-open and reported on `GET /v1/isolated/capabilities` +under `hardening.cap_drop` / `hardening.seccomp` (`active` | `degraded` | +`disabled` with a reason message). Missing `CAP_SETPCAP` degrades the cap +drop but keeps seccomp; a missing launcher binary disables the floor. + +Recommended container ceiling (operator side): keep `CAP_SETPCAP`, +`CAP_SETUID`, `CAP_SETGID` so execd can reduce children; drop the rest +(`NET_RAW`, `SYS_MODULE`, `SYS_TIME`, `SYS_TTY_CONFIG`, `AUDIT_WRITE`, +`MKNOD`). + ## Observability ### OpenTelemetry Metrics diff --git a/sdks/sandbox/go/isolated.go b/sdks/sandbox/go/isolated.go index cd84c0dee..0a0891ad5 100644 --- a/sdks/sandbox/go/isolated.go +++ b/sdks/sandbox/go/isolated.go @@ -182,10 +182,21 @@ type isolatedBackgroundRunRequest struct { Background bool `json:"background"` } +// HardeningLayerState reports whether one hardening layer is actually +// enforced: "active" | "disabled" | "degraded" | "unsupported". +type HardeningLayerState struct { + State string `json:"state"` + Message string `json:"message,omitempty"` +} + // HardeningStatus reports execd init-mode state (OSEP-0018). type HardeningStatus struct { - InitMode string `json:"init_mode"` // "pid1" | "subreaper" | "none" - SignalShield bool `json:"signal_shield"` // kernel PID 1 signal shield active + InitMode string `json:"init_mode"` // "pid1" | "subreaper" | "none" + SignalShield bool `json:"signal_shield"` // kernel PID 1 signal shield active + CapDrop *HardeningLayerState `json:"cap_drop"` + Seccomp *HardeningLayerState `json:"seccomp"` + Landlock *HardeningLayerState `json:"landlock"` + Ebpf *HardeningLayerState `json:"ebpf"` } // IsolatedCapabilities reports isolation capabilities. diff --git a/sdks/sandbox/python/src/opensandbox/api/execd/models/__init__.py b/sdks/sandbox/python/src/opensandbox/api/execd/models/__init__.py index 36b6d87f3..d08d9360f 100644 --- a/sdks/sandbox/python/src/opensandbox/api/execd/models/__init__.py +++ b/sdks/sandbox/python/src/opensandbox/api/execd/models/__init__.py @@ -36,6 +36,8 @@ from .file_info_type import FileInfoType from .file_metadata import FileMetadata from .get_files_info_response_200 import GetFilesInfoResponse200 +from .hardening_layer_state import HardeningLayerState +from .hardening_layer_state_state import HardeningLayerStateState from .isolated_background_run_response import IsolatedBackgroundRunResponse from .isolated_chmod_files_body import IsolatedChmodFilesBody from .isolated_create_session_response import IsolatedCreateSessionResponse @@ -95,6 +97,8 @@ "FileInfoType", "FileMetadata", "GetFilesInfoResponse200", + "HardeningLayerState", + "HardeningLayerStateState", "IsolatedBackgroundRunResponse", "IsolatedChmodFilesBody", "IsolatedCreateSessionResponse", diff --git a/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response.py b/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response.py index 59ce5af67..bc45b18a7 100644 --- a/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response.py +++ b/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response.py @@ -45,9 +45,9 @@ class CapabilitiesResponse: userns_available (bool | Unset): Whether sessions using uid_mode userns can be created commit_supported (bool | Unset): diff_supported (bool | Unset): - hardening (CapabilitiesResponseHardening | Unset): execd init-mode state (OSEP-0018): whether execd is the - sandbox init and which of its controls are in effect. Not an isolation capability; reported here so operators - see enforcement state in one place. + hardening (CapabilitiesResponseHardening | Unset): execd init-mode and workload-hardening state (OSEP-0018): + whether execd is the sandbox init and which of its controls are in effect. Not an isolation capability; reported + here so operators see enforcement state in one place. """ available: bool | Unset = UNSET diff --git a/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening.py b/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening.py index 172812792..53374623a 100644 --- a/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening.py +++ b/sdks/sandbox/python/src/opensandbox/api/execd/models/capabilities_response_hardening.py @@ -17,7 +17,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import TYPE_CHECKING, Any, TypeVar from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -25,13 +25,17 @@ from ..models.capabilities_response_hardening_init_mode import CapabilitiesResponseHardeningInitMode from ..types import UNSET, Unset +if TYPE_CHECKING: + from ..models.hardening_layer_state import HardeningLayerState + + T = TypeVar("T", bound="CapabilitiesResponseHardening") @_attrs_define class CapabilitiesResponseHardening: - """execd init-mode state (OSEP-0018): whether execd is the sandbox init and which of its controls are in effect. Not an - isolation capability; reported here so operators see enforcement state in one place. + """execd init-mode and workload-hardening state (OSEP-0018): whether execd is the sandbox init and which of its + controls are in effect. Not an isolation capability; reported here so operators see enforcement state in one place. Attributes: init_mode (CapabilitiesResponseHardeningInitMode | Unset): How execd supervises the sandbox process tree. pid1: @@ -39,10 +43,26 @@ class CapabilitiesResponseHardening: shield. none: init mode is off (default). signal_shield (bool | Unset): Whether the kernel PID 1 signal shield protects execd from in-namespace signals (true only in init_mode pid1). + cap_drop (HardeningLayerState | Unset): Whether one hardening layer is actually enforced. state is "active" | + "disabled" (not configured) | "degraded" (configured but a prerequisite is missing) | "unsupported" + (kernel/build cannot provide it). message gives the concrete reason whenever state is not active. + seccomp (HardeningLayerState | Unset): Whether one hardening layer is actually enforced. state is "active" | + "disabled" (not configured) | "degraded" (configured but a prerequisite is missing) | "unsupported" + (kernel/build cannot provide it). message gives the concrete reason whenever state is not active. + landlock (HardeningLayerState | Unset): Whether one hardening layer is actually enforced. state is "active" | + "disabled" (not configured) | "degraded" (configured but a prerequisite is missing) | "unsupported" + (kernel/build cannot provide it). message gives the concrete reason whenever state is not active. + ebpf (HardeningLayerState | Unset): Whether one hardening layer is actually enforced. state is "active" | + "disabled" (not configured) | "degraded" (configured but a prerequisite is missing) | "unsupported" + (kernel/build cannot provide it). message gives the concrete reason whenever state is not active. """ init_mode: CapabilitiesResponseHardeningInitMode | Unset = UNSET signal_shield: bool | Unset = UNSET + cap_drop: HardeningLayerState | Unset = UNSET + seccomp: HardeningLayerState | Unset = UNSET + landlock: HardeningLayerState | Unset = UNSET + ebpf: HardeningLayerState | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -52,6 +72,22 @@ def to_dict(self) -> dict[str, Any]: signal_shield = self.signal_shield + cap_drop: dict[str, Any] | Unset = UNSET + if not isinstance(self.cap_drop, Unset): + cap_drop = self.cap_drop.to_dict() + + seccomp: dict[str, Any] | Unset = UNSET + if not isinstance(self.seccomp, Unset): + seccomp = self.seccomp.to_dict() + + landlock: dict[str, Any] | Unset = UNSET + if not isinstance(self.landlock, Unset): + landlock = self.landlock.to_dict() + + ebpf: dict[str, Any] | Unset = UNSET + if not isinstance(self.ebpf, Unset): + ebpf = self.ebpf.to_dict() + field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) @@ -59,11 +95,21 @@ def to_dict(self) -> dict[str, Any]: field_dict["init_mode"] = init_mode if signal_shield is not UNSET: field_dict["signal_shield"] = signal_shield + if cap_drop is not UNSET: + field_dict["cap_drop"] = cap_drop + if seccomp is not UNSET: + field_dict["seccomp"] = seccomp + if landlock is not UNSET: + field_dict["landlock"] = landlock + if ebpf is not UNSET: + field_dict["ebpf"] = ebpf return field_dict @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.hardening_layer_state import HardeningLayerState + d = dict(src_dict) _init_mode = d.pop("init_mode", UNSET) init_mode: CapabilitiesResponseHardeningInitMode | Unset @@ -74,9 +120,41 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: signal_shield = d.pop("signal_shield", UNSET) + _cap_drop = d.pop("cap_drop", UNSET) + cap_drop: HardeningLayerState | Unset + if isinstance(_cap_drop, Unset): + cap_drop = UNSET + else: + cap_drop = HardeningLayerState.from_dict(_cap_drop) + + _seccomp = d.pop("seccomp", UNSET) + seccomp: HardeningLayerState | Unset + if isinstance(_seccomp, Unset): + seccomp = UNSET + else: + seccomp = HardeningLayerState.from_dict(_seccomp) + + _landlock = d.pop("landlock", UNSET) + landlock: HardeningLayerState | Unset + if isinstance(_landlock, Unset): + landlock = UNSET + else: + landlock = HardeningLayerState.from_dict(_landlock) + + _ebpf = d.pop("ebpf", UNSET) + ebpf: HardeningLayerState | Unset + if isinstance(_ebpf, Unset): + ebpf = UNSET + else: + ebpf = HardeningLayerState.from_dict(_ebpf) + capabilities_response_hardening = cls( init_mode=init_mode, signal_shield=signal_shield, + cap_drop=cap_drop, + seccomp=seccomp, + landlock=landlock, + ebpf=ebpf, ) capabilities_response_hardening.additional_properties = d diff --git a/sdks/sandbox/python/src/opensandbox/api/execd/models/hardening_layer_state.py b/sdks/sandbox/python/src/opensandbox/api/execd/models/hardening_layer_state.py new file mode 100644 index 000000000..24f4886d4 --- /dev/null +++ b/sdks/sandbox/python/src/opensandbox/api/execd/models/hardening_layer_state.py @@ -0,0 +1,97 @@ +# +# Copyright 2026 Alibaba Group Holding Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +from ..models.hardening_layer_state_state import HardeningLayerStateState +from ..types import UNSET, Unset + +T = TypeVar("T", bound="HardeningLayerState") + + +@_attrs_define +class HardeningLayerState: + """Whether one hardening layer is actually enforced. state is "active" | "disabled" (not configured) | "degraded" + (configured but a prerequisite is missing) | "unsupported" (kernel/build cannot provide it). message gives the + concrete reason whenever state is not active. + + Attributes: + state (HardeningLayerStateState | Unset): + message (str | Unset): + """ + + state: HardeningLayerStateState | Unset = UNSET + message: str | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + state: str | Unset = UNSET + if not isinstance(self.state, Unset): + state = self.state.value + + message = self.message + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if state is not UNSET: + field_dict["state"] = state + if message is not UNSET: + field_dict["message"] = message + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + _state = d.pop("state", UNSET) + state: HardeningLayerStateState | Unset + if isinstance(_state, Unset): + state = UNSET + else: + state = HardeningLayerStateState(_state) + + message = d.pop("message", UNSET) + + hardening_layer_state = cls( + state=state, + message=message, + ) + + hardening_layer_state.additional_properties = d + return hardening_layer_state + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/sdks/sandbox/python/src/opensandbox/api/execd/models/hardening_layer_state_state.py b/sdks/sandbox/python/src/opensandbox/api/execd/models/hardening_layer_state_state.py new file mode 100644 index 000000000..0611ccc0e --- /dev/null +++ b/sdks/sandbox/python/src/opensandbox/api/execd/models/hardening_layer_state_state.py @@ -0,0 +1,27 @@ +# +# Copyright 2026 Alibaba Group Holding Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from enum import Enum + + +class HardeningLayerStateState(str, Enum): + ACTIVE = "active" + DEGRADED = "degraded" + DISABLED = "disabled" + UNSUPPORTED = "unsupported" + + def __str__(self) -> str: + return str(self.value) diff --git a/specs/execd-api.yaml b/specs/execd-api.yaml index fe3cf1e69..4cbbc58dc 100644 --- a/specs/execd-api.yaml +++ b/specs/execd-api.yaml @@ -2529,10 +2529,10 @@ components: hardening: type: object description: >- - execd init-mode state (OSEP-0018): whether execd is the sandbox - init and which of its controls are in effect. Not an isolation - capability; reported here so operators see enforcement state in - one place. + execd init-mode and workload-hardening state (OSEP-0018): whether + execd is the sandbox init and which of its controls are in effect. + Not an isolation capability; reported here so operators see + enforcement state in one place. properties: init_mode: type: string @@ -2547,6 +2547,32 @@ components: description: >- Whether the kernel PID 1 signal shield protects execd from in-namespace signals (true only in init_mode pid1). + cap_drop: + $ref: "#/components/schemas/HardeningLayerState" + description: Capability/bounding-set reduction on user code. + seccomp: + $ref: "#/components/schemas/HardeningLayerState" + description: Seccomp floor installed on user code. + landlock: + $ref: "#/components/schemas/HardeningLayerState" + description: Landlock filesystem confinement (phase 3). + ebpf: + $ref: "#/components/schemas/HardeningLayerState" + description: eBPF observation (phase 4). + + HardeningLayerState: + type: object + description: >- + Whether one hardening layer is actually enforced. state is "active" | + "disabled" (not configured) | "degraded" (configured but a + prerequisite is missing) | "unsupported" (kernel/build cannot provide + it). message gives the concrete reason whenever state is not active. + properties: + state: + type: string + enum: [active, disabled, degraded, unsupported] + message: + type: string responses: ServiceUnavailable: From fb1e3fc53a6e0343517d1aa0af1707b9bcce3525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 09:43:11 +0800 Subject: [PATCH 03/17] feat(server): runtime.execd_run_as_init config injects EXECD_INIT Single server-side switch (default false) that sets EXECD_INIT=1 in the sandbox environment across all paths (Docker, K8s Batch/Agent, Pool taskTemplate). bootstrap.sh then execs execd --init, so topology and the --init flag stay in lockstep by construction (OSEP-0018 open question 1). Execd init mode and hardening remain independently controllable; the switch is intended to be flipped on by default in a later release. --- server/opensandbox_server/config.py | 11 +++++++ .../services/docker/container_ops.py | 2 ++ .../services/k8s/agent_sandbox_provider.py | 3 ++ .../services/k8s/batchsandbox_provider.py | 5 +++ .../tests/k8s/test_batchsandbox_provider.py | 15 +++++++++ server/tests/test_config.py | 28 +++++++++++++++++ server/tests/test_docker_service.py | 31 +++++++++++++++++++ 7 files changed, 95 insertions(+) diff --git a/server/opensandbox_server/config.py b/server/opensandbox_server/config.py index 717bc3e7e..20bcf6f71 100644 --- a/server/opensandbox_server/config.py +++ b/server/opensandbox_server/config.py @@ -765,6 +765,17 @@ class RuntimeConfig(BaseModel): description="Container image that contains the execd binary for sandbox initialization.", min_length=1, ) + execd_run_as_init: bool = Field( + default=False, + description=( + "Run execd as the sandbox init (OSEP-0018): sets EXECD_INIT in the " + "sandbox environment so bootstrap.sh execs into execd (--init) and " + "execd becomes PID 1, reaping children and owning the container " + "lifecycle. Defaults to false (classic background-and-wait " + "topology); intended to be flipped on after a few releases once " + "the init mode is validated in production." + ), + ) class SecureRuntimeConfig(BaseModel): diff --git a/server/opensandbox_server/services/docker/container_ops.py b/server/opensandbox_server/services/docker/container_ops.py index d8118cecb..40ab59247 100644 --- a/server/opensandbox_server/services/docker/container_ops.py +++ b/server/opensandbox_server/services/docker/container_ops.py @@ -313,6 +313,8 @@ def _build_labels_and_env( if value is None: continue environment.append(f"{key}={value}") + if self.app_config and self.app_config.runtime.execd_run_as_init: + environment.append("EXECD_INIT=1") return labels, environment def _resolve_image_auth( diff --git a/server/opensandbox_server/services/k8s/agent_sandbox_provider.py b/server/opensandbox_server/services/k8s/agent_sandbox_provider.py index 4dfd1d855..96bc50944 100644 --- a/server/opensandbox_server/services/k8s/agent_sandbox_provider.py +++ b/server/opensandbox_server/services/k8s/agent_sandbox_provider.py @@ -94,6 +94,7 @@ def __init__( ) self.ingress_config = app_config.ingress if app_config else None self.execd_init_resources = k8s_config.execd_init_resources if k8s_config else None + self.execd_run_as_init = bool(app_config and app_config.runtime.execd_run_as_init) self.resolver = SecureRuntimeResolver(app_config) if app_config else None self.runtime_class = ( @@ -273,6 +274,8 @@ def _build_pod_spec( disable_ipv6_for_egress=disable_ipv6_for_egress, ) main_env = dict(env) + if self.execd_run_as_init: + main_env["EXECD_INIT"] = "1" if credential_proxy_enabled: main_env[OPENSANDBOX_EGRESS_MITMPROXY_TRANSPARENT] = "true" diff --git a/server/opensandbox_server/services/k8s/batchsandbox_provider.py b/server/opensandbox_server/services/k8s/batchsandbox_provider.py index 8a5dd7d2f..6dcfe6ac1 100644 --- a/server/opensandbox_server/services/k8s/batchsandbox_provider.py +++ b/server/opensandbox_server/services/k8s/batchsandbox_provider.py @@ -78,6 +78,7 @@ def __init__( logger.info(f"Using BatchSandbox template file: {template_file_path}") self.execd_init_resources = k8s_config.execd_init_resources if k8s_config else None self.image_pull_policy = k8s_config.image_pull_policy if k8s_config else "IfNotPresent" + self.execd_run_as_init = bool(app_config and app_config.runtime.execd_run_as_init) self.resolver = SecureRuntimeResolver(app_config) if app_config else None self.runtime_class = ( @@ -179,6 +180,8 @@ def create_workload( ) main_env = dict(env) + if self.execd_run_as_init: + main_env["EXECD_INIT"] = "1" if credential_proxy_enabled: main_env[OPENSANDBOX_EGRESS_MITMPROXY_TRANSPARENT] = "true" @@ -484,6 +487,8 @@ def _build_task_template( wrapped_command = ["/bin/sh", "-c", user_process_cmd] + if self.execd_run_as_init: + env = {**env, "EXECD_INIT": "1"} env_list = [{"name": k, "value": v} for k, v in env.items()] if env else [] return { diff --git a/server/tests/k8s/test_batchsandbox_provider.py b/server/tests/k8s/test_batchsandbox_provider.py index 5b4e07345..40dacf934 100644 --- a/server/tests/k8s/test_batchsandbox_provider.py +++ b/server/tests/k8s/test_batchsandbox_provider.py @@ -1495,6 +1495,21 @@ def test_build_task_template_with_env(self, mock_k8s_client): {"name": "KEY2", "value": "value2"}, ] + def test_build_task_template_injects_execd_run_as_init_when_enabled(self, mock_k8s_client): + config = AppConfig( + runtime=RuntimeConfig(type="kubernetes", execd_image="execd:test", execd_run_as_init=True), + kubernetes=KubernetesRuntimeConfig(namespace="test-ns"), + ) + provider = BatchSandboxProvider(mock_k8s_client, config) + + result = provider._build_task_template( + entrypoint=["/usr/bin/python", "app.py"], env={"KEY1": "value1"} + ) + + env = result["spec"]["process"]["env"] + assert {"name": "EXECD_INIT", "value": "1"} in env + assert {"name": "KEY1", "value": "value1"} in env + def test_build_task_template_without_env(self, mock_k8s_client): """ Test _build_task_template without environment variables. diff --git a/server/tests/test_config.py b/server/tests/test_config.py index a450c0a1c..bf03e3721 100644 --- a/server/tests/test_config.py +++ b/server/tests/test_config.py @@ -76,6 +76,7 @@ def test_load_config_from_file(tmp_path, monkeypatch): assert loaded.server.max_sandbox_timeout_seconds == 172800 assert loaded.runtime.type == "kubernetes" assert loaded.runtime.execd_image == "opensandbox/execd:test" + assert loaded.runtime.execd_run_as_init is False assert loaded.ingress is not None assert loaded.ingress.mode == "gateway" assert loaded.ingress.gateway is not None @@ -151,6 +152,33 @@ def test_load_config_without_env_uses_toml_api_key(tmp_path, monkeypatch): assert loaded.server.api_key == "toml-secret-key" +def test_runtime_execd_run_as_init_parses_from_toml(tmp_path): + toml = """ + [runtime] + type = "docker" + execd_image = "opensandbox/execd:test" + execd_run_as_init = true + """ + config_path = tmp_path / "config.toml" + config_path.write_text(toml) + + loaded = config_module.load_config(config_path) + assert loaded.runtime.execd_run_as_init is True + + +def test_runtime_execd_run_as_init_defaults_false(tmp_path): + toml = """ + [runtime] + type = "docker" + execd_image = "opensandbox/execd:test" + """ + config_path = tmp_path / "config.toml" + config_path.write_text(toml) + + loaded = config_module.load_config(config_path) + assert loaded.runtime.execd_run_as_init is False + + def test_docker_runtime_disallows_kubernetes_block(): server_cfg = ServerConfig() runtime_cfg = RuntimeConfig(type="docker", execd_image="busybox:latest") diff --git a/server/tests/test_docker_service.py b/server/tests/test_docker_service.py index 3c9f79b96..55b473f8f 100644 --- a/server/tests/test_docker_service.py +++ b/server/tests/test_docker_service.py @@ -1517,6 +1517,37 @@ def test_build_labels_marks_manual_cleanup_without_expiration(): assert labels[SANDBOX_MANUAL_CLEANUP_LABEL] == "true" assert "opensandbox.io/expires-at" not in labels + +def test_build_env_omits_execd_run_as_init_by_default(): + service = DockerSandboxService(config=_app_config()) + request = CreateSandboxRequest( + image=ImageSpec(uri="python:3.11"), + resourceLimits=ResourceLimits(root={}), + env={"FOO": "bar"}, + entrypoint=["python"], + ) + + _, environment = service._build_labels_and_env("sandbox-manual", request, None) + + assert "FOO=bar" in environment + assert not any(e.startswith("EXECD_INIT=") for e in environment) + + +def test_build_env_injects_execd_run_as_init_when_enabled(): + config = _app_config() + config.runtime.execd_run_as_init = True + service = DockerSandboxService(config=config) + request = CreateSandboxRequest( + image=ImageSpec(uri="python:3.11"), + resourceLimits=ResourceLimits(root={}), + env={}, + entrypoint=["python"], + ) + + _, environment = service._build_labels_and_env("sandbox-manual", request, None) + + assert "EXECD_INIT=1" in environment + def test_build_labels_stores_extensions_json(): service = DockerSandboxService(config=_app_config()) request = CreateSandboxRequest( From 8818ba4e63b32f1c77de8c96ecff97e8cd46b73a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 10:07:13 +0800 Subject: [PATCH 04/17] test(execd): real-container init-mode regression (OSEP-0018) Runs the execd image with EXECD_INIT=1 in Docker and verifies the init contract end to end: execd is PID 1 with the workload as its direct child, orphans are reaped (no zombie accumulation), in-namespace kill -9 1 is inert (signal shield), entrypoint exit codes are propagated, runtime SIGTERM is forwarded with the workload status preserved, and with [hardening] enabled the floor applies (CapEff=0, no_new_privs, seccomp filter, env strip) while the capabilities endpoint reports pid1 + active layers. Also covers the Pool-style backgrounded topology reporting subreaper mode. Wired into execd-test.yml (ubuntu smoke job); EXECD_TEST_IMAGE allows local iteration against a prebuilt image. --- .github/workflows/execd-test.yml | 8 + components/execd/tests/init_container.sh | 305 +++++++++++++++++++++++ 2 files changed, 313 insertions(+) create mode 100755 components/execd/tests/init_container.sh diff --git a/.github/workflows/execd-test.yml b/.github/workflows/execd-test.yml index 73a881714..a9550af60 100644 --- a/.github/workflows/execd-test.yml +++ b/.github/workflows/execd-test.yml @@ -130,6 +130,14 @@ jobs: chmod +x components/execd/tests/smoke_bwrap.sh bash components/execd/tests/smoke_bwrap.sh + - name: Init-mode container regression (OSEP-0018) + if: matrix.os == 'ubuntu-latest' + shell: bash + timeout-minutes: 30 + run: | + chmod +x components/execd/tests/init_container.sh + bash components/execd/tests/init_container.sh + - name: Show logs if: always() run: | diff --git a/components/execd/tests/init_container.sh b/components/execd/tests/init_container.sh new file mode 100755 index 000000000..98eb75831 --- /dev/null +++ b/components/execd/tests/init_container.sh @@ -0,0 +1,305 @@ +#!/bin/bash +# Copyright 2026 Alibaba Group Holding Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Regression test: execd as the sandbox init (OSEP-0018) in a real container. +# +# Builds the execd image and runs it with EXECD_INIT=1 so bootstrap.sh execs +# into execd (PID 1), then verifies the init-mode contract end to end: +# - execd is PID 1 and the workload is its direct child +# - orphaned children are reaped (no zombie accumulation under PID 1) +# - in-namespace `kill -9 1` is inert (kernel signal shield) +# - the entrypoint exit code is propagated to the container exit code +# - runtime SIGTERM is forwarded and the workload's status is preserved +# - with [hardening] enabled, the floor applies (caps/no_new_privs/seccomp/ +# env strip) and the capabilities endpoint reports pid1 + active layers +# - on a non-PID-1 topology execd degrades to subreaper and says so +# +# Prerequisites: docker (root or in the docker group) +# +# Usage: +# bash components/execd/tests/init_container.sh +# +# Set EXECD_TEST_IMAGE to an existing image (with /bootstrap.sh, /execd and +# /opt/opensandbox/opensandbox-launcher) to skip the Dockerfile build — handy +# for local iteration; unset builds the full image in CI. +# +# Exit 0 on success, non-zero on failure. + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +REPO_ROOT="$(cd "${SCRIPT_DIR}/../../.." && pwd)" +IMAGE="${EXECD_TEST_IMAGE:-execd-init-container-test:test}" +PREFIX="execd-init-$$" +TESTDIR="$(mktemp -d)" +RUNNERS=() + +cleanup() { + echo ">> Cleaning up..." + for c in "${RUNNERS[@]:-}"; do + docker rm -f "${c}" >/dev/null 2>&1 || true + done + rm -rf "${TESTDIR}" + if [ -z "${EXECD_TEST_IMAGE:-}" ]; then + docker rmi -f "${IMAGE}" >/dev/null 2>&1 || true + fi +} +trap cleanup EXIT + +fail() { + echo "FAIL: $1" >&2 + exit 1 +} + +wait_file() { + local path="$1" + local i + for i in $(seq 1 60); do + [ -f "$path" ] && return 0 + sleep 0.5 + done + return 1 +} + +echo "=========================================" +echo " Init-mode container regression (OSEP-0018)" +echo "=========================================" + +# ------------------------------------------------------------------- +# Build the execd image (unless an existing image was provided). +# ------------------------------------------------------------------- +if [ -n "${EXECD_TEST_IMAGE:-}" ]; then + echo ">> Using prebuilt image ${IMAGE} (EXECD_TEST_IMAGE set)" +else + echo ">> Building image ${IMAGE}..." + cd "${REPO_ROOT}" + docker build \ + -f components/execd/Dockerfile \ + -t "${IMAGE}" \ + --build-arg VERSION=init-container-test \ + . >/dev/null + echo ">> Image built." +fi + +# ------------------------------------------------------------------- +# Test 1: execd is PID 1, workload is its child, orphans are reaped, +# and in-namespace kill -9 1 is inert. +# ------------------------------------------------------------------- +echo "" +echo ">> Test 1: PID 1 handoff, orphan reaping, signal shield" + +cat > "${TESTDIR}/verify_pid1.sh" <<'SCRIPT' +#!/bin/sh +out=/mnt/test/pid1.out +: > "$out" +comm=$(cat /proc/1/comm) +echo "pid1_comm=$comm" >> "$out" +[ "$comm" = "execd" ] || { echo "FAIL: pid1 is $comm" >> "$out"; exit 90; } +ppid=$(awk '{print $4}' /proc/$$/stat) +echo "workload_ppid=$ppid" >> "$out" +[ "$ppid" = "1" ] || { echo "FAIL: workload ppid=$ppid" >> "$out"; exit 91; } + +for i in $(seq 1 10); do ( sleep 0.1 ) & done +sleep 3 +zombies=0 +for p in /proc/[0-9]*; do + stat=$(cat "$p/stat" 2>/dev/null) || continue + stat=${stat#*)} # strip "pid (comm)" + set -- $stat + [ "$1" = "Z" ] && [ "$2" = "1" ] && zombies=$((zombies+1)) +done +echo "zombies_ppid1=$zombies" >> "$out" +[ "$zombies" = "0" ] || { echo "FAIL: $zombies zombies under pid 1" >> "$out"; exit 92; } + +kill -9 1 +echo "kill9_1_inert=yes" >> "$out" +exit 0 +SCRIPT +chmod +x "${TESTDIR}/verify_pid1.sh" + +C1="${PREFIX}-t1" +RUNNERS+=("$C1") +docker run -d --name "$C1" \ + --entrypoint /bootstrap.sh \ + -e EXECD=/execd \ + -e EXECD_INIT=1 \ + -v "${TESTDIR}:/mnt/test" \ + "${IMAGE}" \ + /mnt/test/verify_pid1.sh >/dev/null +wait_file "${TESTDIR}/pid1.out" || fail "test 1: container did not produce pid1.out" +RC=$(docker wait "$C1") +[ "$RC" = "0" ] || fail "test 1: container exited $RC: $(cat "${TESTDIR}/pid1.out")" +grep -q "kill9_1_inert=yes" "${TESTDIR}/pid1.out" || fail "test 1: kill -9 1 was not inert" +grep -q "zombies_ppid1=0" "${TESTDIR}/pid1.out" || fail "test 1: zombies accumulated" +docker rm -f "$C1" >/dev/null +echo "PASS: pid1 handoff, orphan reaping, signal shield" + +# ------------------------------------------------------------------- +# Test 2: entrypoint exit code propagation. +# ------------------------------------------------------------------- +echo "" +echo ">> Test 2: entrypoint exit code propagation" + +C2="${PREFIX}-t2" +RUNNERS+=("$C2") +set +e +docker run --rm --name "$C2" \ + --entrypoint /bootstrap.sh \ + -e EXECD=/execd \ + -e EXECD_INIT=1 \ + -v "${TESTDIR}:/mnt/test" \ + "${IMAGE}" \ + /bin/sh -c 'exit 7' +RC=$? +set -e +[ "$RC" = "7" ] || fail "test 2: container exit code = $RC, want 7" +echo "PASS: entrypoint exit code propagated ($RC)" + +# ------------------------------------------------------------------- +# Test 3: SIGTERM is forwarded; workload status is preserved. +# ------------------------------------------------------------------- +echo "" +echo ">> Test 3: SIGTERM graceful shutdown" + +cat > "${TESTDIR}/sigterm.sh" <<'SCRIPT' +#!/bin/sh +trap 'touch /mnt/test/sigterm_received; exit 7' TERM +while :; do sleep 0.5; done +SCRIPT +chmod +x "${TESTDIR}/sigterm.sh" + +C3="${PREFIX}-t3" +RUNNERS+=("$C3") +docker run -d --name "$C3" \ + --entrypoint /bootstrap.sh \ + -e EXECD=/execd \ + -e EXECD_INIT=1 \ + -v "${TESTDIR}:/mnt/test" \ + "${IMAGE}" \ + /mnt/test/sigterm.sh >/dev/null + +sleep 3 +docker stop -t 10 "$C3" >/dev/null +RC=$(docker wait "$C3") +[ "$RC" = "7" ] || fail "test 3: container exit code after SIGTERM = $RC, want 7" +[ -f "${TESTDIR}/sigterm_received" ] || fail "test 3: workload did not receive SIGTERM" +docker rm -f "$C3" >/dev/null +echo "PASS: SIGTERM forwarded, status preserved ($RC)" + +# ------------------------------------------------------------------- +# Test 4: hardening floor in a real PID-1 sandbox. +# ------------------------------------------------------------------- +echo "" +echo ">> Test 4: hardening floor ([hardening] enabled)" + +cat > "${TESTDIR}/isolation.toml" <<'TOML' +[hardening] +enabled = true +TOML + +cat > "${TESTDIR}/hardened.sh" <<'SCRIPT' +#!/bin/sh +out=/mnt/test/hardened.out +: > "$out" +grep -E "NoNewPrivs:|Seccomp:" /proc/self/status >> "$out" +capeff=$(awk '/CapEff:/{print $2}' /proc/self/status) +echo "capeff=$capeff" >> "$out" + +grep -q "NoNewPrivs: 1" "$out" || { echo "FAIL: no_new_privs not set" >> "$out"; exit 93; } +grep -q "Seccomp: 2" "$out" || { echo "FAIL: seccomp not in filter mode" >> "$out"; exit 94; } +[ "$capeff" = "0000000000000000" ] || { echo "FAIL: CapEff=$capeff, want zero" >> "$out"; exit 95; } +[ -z "${EXECD_ACCESS_TOKEN:-}" ] || { echo "FAIL: execd credential env leaked" >> "$out"; exit 96; } + +# The execd API is guarded by the token we injected via the container env +# (which the floor stripped from this workload's own environment). +for i in $(seq 1 30); do + wget -qO- --header="X-EXECD-ACCESS-TOKEN: supersecret" \ + http://127.0.0.1:44772/v1/isolated/capabilities > /mnt/test/caps.json 2>/dev/null && break + sleep 0.5 +done +grep -q '"init_mode":"pid1"' /mnt/test/caps.json || { echo "FAIL: init_mode != pid1" >> "$out"; exit 97; } +grep -q '"cap_drop":{"state":"active"' /mnt/test/caps.json || { echo "FAIL: cap_drop not active" >> "$out"; exit 98; } +grep -q '"seccomp":{"state":"active"' /mnt/test/caps.json || { echo "FAIL: seccomp not active" >> "$out"; exit 99; } +echo "hardened_ok=yes" >> "$out" +exit 0 +SCRIPT +chmod +x "${TESTDIR}/hardened.sh" + +C4="${PREFIX}-t4" +RUNNERS+=("$C4") +docker run -d --name "$C4" \ + --entrypoint /bootstrap.sh \ + -e EXECD=/execd \ + -e EXECD_INIT=1 \ + -e EXECD_ISOLATION_CONFIG=/mnt/test/isolation.toml \ + -e EXECD_ACCESS_TOKEN=supersecret \ + -v "${TESTDIR}:/mnt/test" \ + "${IMAGE}" \ + /mnt/test/hardened.sh >/dev/null +wait_file "${TESTDIR}/hardened.out" || fail "test 4: container did not produce hardened.out" +RC=$(docker wait "$C4") +[ "$RC" = "0" ] || fail "test 4: container exited $RC: $(cat "${TESTDIR}/hardened.out")" +grep -q "hardened_ok=yes" "${TESTDIR}/hardened.out" || fail "test 4: floor assertions failed: $(cat "${TESTDIR}/hardened.out")" +docker rm -f "$C4" >/dev/null +echo "PASS: hardening floor active in a PID-1 sandbox" + +# ------------------------------------------------------------------- +# Test 5: non-PID-1 topology degrades to subreaper. +# ------------------------------------------------------------------- +echo "" +echo ">> Test 5: subreaper mode on the Pool-style topology" + +cat > "${TESTDIR}/subreaper.sh" <<'SCRIPT' +#!/bin/sh +out=/mnt/test/subreaper.out +: > "$out" +for i in $(seq 1 30); do + wget -qO- http://127.0.0.1:44772/v1/isolated/capabilities > /mnt/test/subreaper.json 2>/dev/null && break + sleep 0.5 +done +grep -q '"init_mode":"subreaper"' /mnt/test/subreaper.json || { echo "FAIL: init_mode != subreaper" >> "$out"; exit 97; } +echo "subreaper_ok=yes" >> "$out" +exit 0 +SCRIPT +chmod +x "${TESTDIR}/subreaper.sh" + +C5="${PREFIX}-t5" +RUNNERS+=("$C5") +# Pool-style: bootstrap.sh is not the container entrypoint; a shell is PID 1 +# and bootstrap (with EXECD_INIT) runs backgrounded, so execd degrades to +# subreaper mode. The background "&" is essential: `sh -c 'cmd'` would exec +# the command and make execd PID 1. +docker run -d --name "$C5" \ + --entrypoint /bin/sh \ + -e EXECD=/execd \ + -e EXECD_INIT=1 \ + -v "${TESTDIR}:/mnt/test" \ + "${IMAGE}" \ + -c 'EXECD_INIT=1 /bootstrap.sh /mnt/test/subreaper.sh & wait' >/dev/null +wait_file "${TESTDIR}/subreaper.out" || fail "test 5: container did not produce subreaper.out" +RC=$(docker wait "$C5") +[ "$RC" = "0" ] || fail "test 5: container exited $RC: $(cat "${TESTDIR}/subreaper.out")" +grep -q "subreaper_ok=yes" "${TESTDIR}/subreaper.out" || fail "test 5: subreaper assertions failed" +docker rm -f "$C5" >/dev/null +echo "PASS: subreaper degradation reported" + +# ------------------------------------------------------------------- +echo "" +echo "=========================================" +echo " Init-mode container regression PASSED" +echo "=========================================" +echo " image: ${IMAGE}" +echo " cases: pid1 handoff / reaping / signal shield /" +echo " exit propagation / SIGTERM / hardening floor / subreaper" From 81924c378683b55e6dd484fb4d4f9c1b6e0df3e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 10:19:27 +0800 Subject: [PATCH 05/17] feat(execd): landlock confinement (OSEP-0018 phase 3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add [landlock] enabled/extra_writable/extra_readable on top of the hardening floor. The launcher applies the filesystem allowlist between the identity drop and seccomp: system paths and /proc/self read+exec, writable device files and the controlling tty, /tmp, /run, and allowed_writable — everything else denied. A root EXECUTE-only rule covers traversal and execve of any binary without granting reads, and all of /proc is never granted (would re-expose /proc/1). The kernel ABI is probed (v1-v4) and the launcher trims access bits (REFER/TRUNCATE) accordingly; ABI < 1 reports unsupported and skips. The container regression now enables landlock and asserts that /proc/1/environ is unreadable by the workload when the layer is active. --- .../execd/configs/isolation.example.toml | 16 ++ components/execd/native/launcher.c | 161 +++++++++++++++++ components/execd/pkg/isolation/config.go | 19 ++ .../execd/pkg/runtime/hardening_linux.go | 170 +++++++++++++++--- .../execd/pkg/runtime/hardening_linux_test.go | 65 ++++++- components/execd/tests/init_container.sh | 14 ++ 6 files changed, 420 insertions(+), 25 deletions(-) diff --git a/components/execd/configs/isolation.example.toml b/components/execd/configs/isolation.example.toml index b5daee0fd..8f2ebd60b 100644 --- a/components/execd/configs/isolation.example.toml +++ b/components/execd/configs/isolation.example.toml @@ -101,3 +101,19 @@ allowed_writable = ["/workspace", "/mnt", "/media", "/data"] # Missing runtime support (no CAP_SETPCAP, launcher binary absent) is # reported on GET /v1/isolated/capabilities under "hardening" and skipped, # never fatal. + +# Landlock filesystem confinement (OSEP-0018 §5) on top of [hardening]. +# Default OFF. When enabled, user-code processes are allowlisted: system +# paths read+exec, /proc/self and well-known read-only proc files, the +# needed /dev device files, /tmp, /run, and allowed_writable — everything +# else is denied. A kernel without Landlock (ABI < 1) degrades to +# "unsupported" and is skipped. +# +# [landlock] +# enabled = true +# +# # Extra writable paths beyond the built-in set (read+write+create). +# extra_writable = ["/var/cache"] +# +# # Extra read-only paths beyond the built-in set (read+exec). +# extra_readable = ["/opt/readonly"] diff --git a/components/execd/native/launcher.c b/components/execd/native/launcher.c index e31e83ab6..64a913afd 100644 --- a/components/execd/native/launcher.c +++ b/components/execd/native/launcher.c @@ -72,9 +72,51 @@ struct policy_header { uint32_t n_keepcaps; uint32_t n_env; uint32_t seccomp_len; + uint32_t landlock_len; }; #define MAX_CAPS 64 +#define MAX_LL_RULES 128 + +/* + * Landlock ABI (stable since Linux 5.13): syscalls 444-446 and the fs access + * bits below are part of the kernel UAPI and are defined here so the helper + * does not depend on a specific linux/landlock.h. + */ +#define LL_EXECUTE (1ULL << 0) +#define LL_WRITE_FILE (1ULL << 1) +#define LL_READ_FILE (1ULL << 2) +#define LL_READ_DIR (1ULL << 3) +#define LL_REMOVE_DIR (1ULL << 4) +#define LL_REMOVE_FILE (1ULL << 5) +#define LL_MAKE_CHAR (1ULL << 6) +#define LL_MAKE_DIR (1ULL << 7) +#define LL_MAKE_REG (1ULL << 8) +#define LL_MAKE_SOCK (1ULL << 9) +#define LL_MAKE_FIFO (1ULL << 10) +#define LL_MAKE_BLOCK (1ULL << 11) +#define LL_MAKE_SYM (1ULL << 12) +#define LL_REFER (1ULL << 13) /* ABI >= 2 */ +#define LL_TRUNCATE (1ULL << 14) /* ABI >= 3 */ + +#define LANDLOCK_CREATE_RULESET_VERSION 1 +#define LANDLOCK_CREATE_RULESET 0 +#define LANDLOCK_RULE_PATH_BENEATH 1 + +struct ll_ruleset_attr { + uint64_t handled_access_fs; +}; + +struct ll_path_beneath_attr { + uint64_t allowed_access; + int32_t parent_fd; +}; + +/* Landlock rule from the policy: a path plus the access bits to grant. */ +struct ll_rule { + uint64_t access; + const char *path; +}; static void log_err(const char *msg, int err) { @@ -145,6 +187,86 @@ static int raise_ambient(uint32_t cap) return prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_RAISE, (unsigned long)cap, 0, 0); } +/* Trim an access mask to what the detected Landlock ABI supports. */ +static uint64_t ll_trim_access(uint64_t access, long abi) +{ + if (abi < 2) + access &= ~(uint64_t)LL_REFER; + if (abi < 3) + access &= ~(uint64_t)LL_TRUNCATE; + return access; +} + +/* Apply the Landlock filesystem confinement from the policy (fail-open). */ +static void apply_landlock(const struct ll_rule *rules, size_t n_rules) +{ + long abi; + int ruleset = -1; + uint64_t handled; + + if (n_rules == 0) + return; + + abi = syscall(444, NULL, 0, + LANDLOCK_CREATE_RULESET_VERSION); + if (abi < 1) { + log_err("landlock unavailable (kernel ABI < 1)", ENOSYS); + return; + } + + handled = LL_EXECUTE | LL_WRITE_FILE | LL_READ_FILE | LL_READ_DIR | + LL_REMOVE_DIR | LL_REMOVE_FILE | LL_MAKE_CHAR | LL_MAKE_DIR | + LL_MAKE_REG | LL_MAKE_SOCK | LL_MAKE_FIFO | LL_MAKE_BLOCK | + LL_MAKE_SYM | LL_REFER | LL_TRUNCATE; + handled = ll_trim_access(handled, abi); + + { + struct ll_ruleset_attr attr = { .handled_access_fs = handled }; + + ruleset = (int)syscall(444, &attr, + sizeof(attr), LANDLOCK_CREATE_RULESET); + if (ruleset < 0) { + log_err("landlock_create_ruleset", errno); + return; + } + } + + for (size_t i = 0; i < n_rules; i++) { + int fd; + uint64_t access = ll_trim_access(rules[i].access, abi); + + if (access == 0) + continue; + /* O_PATH: no read/write rights needed to build the rule. */ + fd = open(rules[i].path, O_PATH | O_CLOEXEC); + if (fd < 0) { + fprintf(stderr, "opensandbox-launcher: landlock: skip %s: %s\n", + rules[i].path, strerror(errno)); + continue; + } + { + struct ll_path_beneath_attr path_attr = { + .allowed_access = access, + .parent_fd = fd, + }; + + if (syscall(445, ruleset, + LANDLOCK_RULE_PATH_BENEATH, &path_attr, 0) != 0) + fprintf(stderr, + "opensandbox-launcher: landlock: add_rule %s: %s\n", + rules[i].path, strerror(errno)); + } + close(fd); + } + + if (syscall(446, ruleset, 0) != 0) { + log_err("landlock_restrict_self", errno); + return; + } + close(ruleset); + /* Irrevocable: from here on the process is confined to the granted set. */ +} + int main(int argc, char **argv) { int policy_fd; @@ -155,6 +277,8 @@ int main(int argc, char **argv) size_t env_budget; struct sock_filter *filter = NULL; struct sock_fprog prog; + struct ll_rule ll_rules[MAX_LL_RULES]; + size_t n_ll_rules = 0; if (argc < 4 || strcmp(argv[2], "--") != 0) fail(-1, "usage: opensandbox-launcher -- "); @@ -223,6 +347,40 @@ int main(int argc, char **argv) fail(policy_fd, "truncated seccomp filter"); } + /* Landlock rules: repeated { u64 access; u16 pathlen; path bytes }. */ + if (hdr.landlock_len > 0) { + size_t left = hdr.landlock_len; + + while (left > 0 && n_ll_rules < MAX_LL_RULES) { + uint64_t access; + uint16_t pathlen; + char *path; + + if (left < sizeof(access) + sizeof(pathlen)) + fail(policy_fd, "truncated landlock rule header"); + if (read_exact(policy_fd, &access, sizeof(access)) != 0 || + read_exact(policy_fd, &pathlen, sizeof(pathlen)) != 0) + fail(policy_fd, "truncated landlock rule header"); + left -= sizeof(access) + sizeof(pathlen); + if (pathlen == 0 || pathlen > 4096) + fail(policy_fd, "invalid landlock path length"); + if (left < pathlen) + fail(policy_fd, "truncated landlock path"); + path = malloc((size_t)pathlen + 1); + if (path == NULL) + fail(policy_fd, "out of memory for landlock path"); + if (read_exact(policy_fd, path, pathlen) != 0) + fail(policy_fd, "truncated landlock path"); + path[pathlen] = '\0'; + left -= pathlen; + ll_rules[n_ll_rules].access = access; + ll_rules[n_ll_rules].path = path; + n_ll_rules++; + } + if (left > 0) + fail(policy_fd, "too many landlock rules"); + } + if (close(policy_fd) != 0) _exit(LAUNCH_FAILURE); @@ -285,6 +443,9 @@ int main(int argc, char **argv) } } + /* 6. Landlock filesystem confinement, before seccomp. */ + apply_landlock(ll_rules, n_ll_rules); + /* 7. Seccomp LAST: it must never block the setup above, and execve * (which the Go side reserves from the deny list) is still allowed. */ if (filter != NULL) { diff --git a/components/execd/pkg/isolation/config.go b/components/execd/pkg/isolation/config.go index 7c357eace..ea87ca973 100644 --- a/components/execd/pkg/isolation/config.go +++ b/components/execd/pkg/isolation/config.go @@ -42,6 +42,10 @@ type Config struct { // user-code process is launched through the native launcher with reduced // capabilities, no_new_privs, and the seccomp floor. Defaults to off. Hardening *HardeningConfig `toml:"hardening"` + + // Landlock adds filesystem confinement (OSEP-0018 §5) on top of the + // hardening floor. Defaults to off. + Landlock *LandlockConfig `toml:"landlock"` } // SeccompOverride specifies a custom syscall denylist that replaces the @@ -60,6 +64,20 @@ type HardeningConfig struct { KeepCapabilities []string `toml:"keep_capabilities"` } +// LandlockConfig controls Landlock filesystem confinement (OSEP-0018 §5). +type LandlockConfig struct { + // Enabled applies a Landlock allowlist to user-code processes, on top + // of the [hardening] floor. + Enabled bool `toml:"enabled"` + // ExtraWritable grants read+write (and file creation) beneath extra + // paths beyond the built-in set (system paths, /proc/self, /tmp, /run, + // allowed_writable). + ExtraWritable []string `toml:"extra_writable"` + // ExtraReadable grants read+exec beneath extra paths beyond the + // built-in read set. + ExtraReadable []string `toml:"extra_readable"` +} + // DefaultConfig returns the built-in defaults used when no config file is // provided or when individual fields are missing from the file. func DefaultConfig() Config { @@ -70,6 +88,7 @@ func DefaultConfig() Config { AllowedWritable: []string{"/workspace", "/mnt", "/media", "/data"}, Seccomp: nil, // use built-in denylist Hardening: nil, // floor off + Landlock: nil, // confinement off } } diff --git a/components/execd/pkg/runtime/hardening_linux.go b/components/execd/pkg/runtime/hardening_linux.go index 39276fac3..3cf65873a 100644 --- a/components/execd/pkg/runtime/hardening_linux.go +++ b/components/execd/pkg/runtime/hardening_linux.go @@ -55,29 +55,116 @@ const ( // capSetpcap is the capability number required to trim bounding sets. capSetpcap = 8 + + // Landlock fs access bits (stable kernel UAPI, linux/landlock.h). + llExecute uint64 = 1 << 0 + llWriteFile uint64 = 1 << 1 + llReadFile uint64 = 1 << 2 + llReadDir uint64 = 1 << 3 + llRemoveDir uint64 = 1 << 4 + llRemoveFile uint64 = 1 << 5 + llMakeChar uint64 = 1 << 6 + llMakeDir uint64 = 1 << 7 + llMakeReg uint64 = 1 << 8 + llMakeSock uint64 = 1 << 9 + llMakeFifo uint64 = 1 << 10 + llMakeBlock uint64 = 1 << 11 + llMakeSym uint64 = 1 << 12 + llRefer uint64 = 1 << 13 // ABI >= 2 + llTruncate uint64 = 1 << 14 // ABI >= 3 + + // llRwAccess is the full writable-subtree mask (creation, removal, + // rename, truncate); the launcher trims bits its kernel ABI lacks. + llRwAccess = llReadFile | llWriteFile | llReadDir | llMakeChar | + llMakeDir | llMakeReg | llMakeSock | llMakeFifo | llMakeBlock | + llMakeSym | llRemoveDir | llRemoveFile | llRefer | llTruncate ) +// landlockRule grants access beneath path (OSEP-0018 §5). Rules only grant +// access; everything else under the handled set is denied. +type landlockRule struct { + Access uint64 + Path string +} + +// buildLandlockRules assembles the default allowlist. The root rule grants +// EXECUTE only: it covers path traversal and execve of any binary without +// exposing any read access. /proc is deliberately limited to /proc/self and +// read-only well-known files — never all of /proc, which would re-expose +// /proc/1 (and execd's credentials) to a same-uid workload. +func buildLandlockRules(cfg isolation.Config) []landlockRule { + var rules []landlockRule + + rules = append(rules, landlockRule{Access: llExecute, Path: "/"}) + + readExec := llReadFile | llReadDir | llExecute + for _, p := range []string{"/usr", "/bin", "/lib", "/lib64", "/etc"} { + rules = append(rules, landlockRule{Access: readExec, Path: p}) + } + for _, p := range []string{ + "/proc/self", "/proc/sys", "/proc/cpuinfo", "/proc/meminfo", + "/proc/stat", "/proc/version", "/proc/uptime", "/proc/loadavg", + "/proc/filesystems", + } { + rules = append(rules, landlockRule{Access: readExec, Path: p}) + } + + deviceRW := llReadFile | llWriteFile + for _, p := range []string{ + "/dev/null", "/dev/zero", "/dev/full", "/dev/random", + "/dev/urandom", "/dev/tty", + } { + rules = append(rules, landlockRule{Access: deviceRW, Path: p}) + } + // The controlling terminal lives beneath /dev/pts. + rules = append(rules, landlockRule{Access: deviceRW, Path: "/dev/pts"}) + + for _, p := range append([]string{"/tmp", "/run"}, cfg.AllowedWritable...) { + rules = append(rules, landlockRule{Access: llRwAccess, Path: p}) + } + if cfg.Landlock != nil { + for _, p := range cfg.Landlock.ExtraWritable { + rules = append(rules, landlockRule{Access: llRwAccess, Path: p}) + } + for _, p := range cfg.Landlock.ExtraReadable { + rules = append(rules, landlockRule{Access: readExec, Path: p}) + } + } + return rules +} + +// landlockABI probes the kernel Landlock ABI version (0 = unavailable). +func landlockABI() int64 { + abi, _, errno := unix.Syscall(unix.SYS_LANDLOCK_CREATE_RULESET, 0, 0, 1) + if errno != 0 { + return 0 + } + return int64(abi) +} + // hardeningPolicy is the serialized policy handed to the launcher over a // memfd. Field order must stay in sync with struct policy_header in // native/launcher.c. type hardeningPolicy struct { - flags uint32 - uid uint32 - gid uint32 - keepcaps []uint32 - stripEnv []string - seccomp []byte + flags uint32 + uid uint32 + gid uint32 + keepcaps []uint32 + stripEnv []string + seccomp []byte + landlock []landlockRule } type policyHeader struct { - Magic uint32 - Version uint32 - Flags uint32 - UID uint32 - GID uint32 - NKeepCaps uint32 - NEnv uint32 - SeccompLen uint32 + Magic uint32 + Version uint32 + Flags uint32 + UID uint32 + GID uint32 + NKeepCaps uint32 + NEnv uint32 + SeccompLen uint32 + LandlockLen uint32 } var hardening struct { @@ -86,6 +173,7 @@ var hardening struct { policy *hardeningPolicy capDrop atomic.Pointer[LayerState] seccomp atomic.Pointer[LayerState] + landlock atomic.Pointer[LayerState] } // InitHardening activates the floor from the isolation config. It returns an @@ -106,6 +194,7 @@ func InitHardening(cfg isolation.Config) error { setLayer(&hardening.capDrop, disabled("hardening not enabled")) setLayer(&hardening.seccomp, disabled("hardening not enabled")) + setLayer(&hardening.landlock, disabled("landlock not enabled")) if cfg.Hardening == nil || !cfg.Hardening.Enabled { return nil @@ -133,6 +222,7 @@ func InitHardening(cfg isolation.Config) error { log.Warn("hardening: %s", msg) setLayer(&hardening.capDrop, degraded(msg)) setLayer(&hardening.seccomp, degraded(msg)) + setLayer(&hardening.landlock, degraded(msg)) return nil } @@ -141,6 +231,23 @@ func InitHardening(cfg isolation.Config) error { return fmt.Errorf("hardening: generate seccomp floor: %w", err) } + var landlockRules []landlockRule + if cfg.Landlock != nil && cfg.Landlock.Enabled { + if abi := landlockABI(); abi < 1 { + msg := fmt.Sprintf( + "landlock unavailable: kernel ABI < 1 (needs >= 5.13, detected %d); FS confinement skipped", + abi, + ) + log.Warn("hardening: %s", msg) + setLayer(&hardening.landlock, LayerState{State: "unsupported", Message: msg}) + } else { + landlockRules = buildLandlockRules(cfg) + msg := fmt.Sprintf("landlock active (kernel ABI %d, %d rules)", abi, len(landlockRules)) + log.Info("hardening: %s", msg) + setLayer(&hardening.landlock, LayerState{State: "active", Message: msg}) + } + } + hardening.launcherPath = path hardening.policy = &hardeningPolicy{ uid: uint32(os.Getuid()), @@ -148,6 +255,7 @@ func InitHardening(cfg isolation.Config) error { keepcaps: keepcaps, stripEnv: isolation.ExecdConfigEnvBlacklist(), seccomp: seccompBPF, + landlock: landlockRules, } // The identity drop is only meaningful when execd is root (a non-root // execd already runs as the image's user). @@ -270,16 +378,30 @@ func encodePolicy(p *hardeningPolicy) ([]byte, error) { return nil, fmt.Errorf("invalid env-strip name %q", name) } } + var landlockBuf bytes.Buffer + for _, rule := range p.landlock { + if len(rule.Path) == 0 || len(rule.Path) > 4096 { + return nil, fmt.Errorf("invalid landlock path %q", rule.Path) + } + if err := binary.Write(&landlockBuf, binary.LittleEndian, rule.Access); err != nil { + return nil, err + } + if err := binary.Write(&landlockBuf, binary.LittleEndian, uint16(len(rule.Path))); err != nil { + return nil, err + } + landlockBuf.WriteString(rule.Path) + } buf := new(bytes.Buffer) hdr := policyHeader{ - Magic: policyMagic, - Version: policyVersion, - Flags: p.flags, - UID: p.uid, - GID: p.gid, - NKeepCaps: uint32(len(p.keepcaps)), - NEnv: uint32(len(p.stripEnv)), - SeccompLen: uint32(len(p.seccomp)), + Magic: policyMagic, + Version: policyVersion, + Flags: p.flags, + UID: p.uid, + GID: p.gid, + NKeepCaps: uint32(len(p.keepcaps)), + NEnv: uint32(len(p.stripEnv)), + SeccompLen: uint32(len(p.seccomp)), + LandlockLen: uint32(landlockBuf.Len()), } if err := binary.Write(buf, binary.LittleEndian, &hdr); err != nil { return nil, err @@ -294,6 +416,7 @@ func encodePolicy(p *hardeningPolicy) ([]byte, error) { buf.WriteByte(0) } buf.Write(p.seccomp) + buf.Write(landlockBuf.Bytes()) return buf.Bytes(), nil } @@ -337,5 +460,8 @@ func ReportHardening() HardeningReport { if ss := hardening.seccomp.Load(); ss != nil { report.Seccomp = *ss } + if ls := hardening.landlock.Load(); ls != nil { + report.Landlock = *ls + } return report } diff --git a/components/execd/pkg/runtime/hardening_linux_test.go b/components/execd/pkg/runtime/hardening_linux_test.go index f2d4fd78f..c881f357d 100644 --- a/components/execd/pkg/runtime/hardening_linux_test.go +++ b/components/execd/pkg/runtime/hardening_linux_test.go @@ -68,6 +68,7 @@ func resetHardening() { hardening.policy = nil hardening.capDrop.Store(nil) hardening.seccomp.Store(nil) + hardening.landlock.Store(nil) launcherSearchPaths = []string{launcherRuntimePath} } @@ -257,9 +258,8 @@ func TestHardeningReportLayers(t *testing.T) { launcherSearchPaths = append(launcherSearchPaths, launcherBuilt) initHardeningForTest(t, hardenedCfg()) report := ReportHardening() - if report.Landlock.State != "disabled" || report.Ebpf.State != "disabled" { - t.Fatalf("future layers = %q/%q, want disabled/disabled", - report.Landlock.State, report.Ebpf.State) + if report.Ebpf.State != "disabled" { + t.Fatalf("ebpf layer = %q, want disabled", report.Ebpf.State) } if report.CapDrop.State != "active" && report.CapDrop.State != "degraded" { t.Fatalf("cap_drop state = %q, want active or degraded (root)", report.CapDrop.State) @@ -268,3 +268,62 @@ func TestHardeningReportLayers(t *testing.T) { t.Fatalf("seccomp state = %q, want active", report.Seccomp.State) } } + +func TestLandlockDisabledByDefault(t *testing.T) { + initHardeningForTest(t, isolation.Config{}) + if report := ReportHardening(); report.Landlock.State != "disabled" { + t.Fatalf("landlock state = %q, want disabled", report.Landlock.State) + } +} + +func TestLandlockActiveOrUnsupported(t *testing.T) { + buildLauncher(t) + launcherSearchPaths = append(launcherSearchPaths, launcherBuilt) + cfg := isolation.Config{ + Hardening: &isolation.HardeningConfig{Enabled: true}, + Landlock: &isolation.LandlockConfig{ + Enabled: true, + ExtraWritable: []string{"/cache"}, + ExtraReadable: []string{"/opt/data"}, + }, + } + initHardeningForTest(t, cfg) + + report := ReportHardening() + switch report.Landlock.State { + case "active": + if report.Landlock.Message == "" { + t.Fatalf("landlock active but no message") + } + rules := buildLandlockRules(cfg) + assertLandlockRule(t, rules, "/", llExecute) + assertLandlockRule(t, rules, "/usr", llReadFile|llReadDir|llExecute) + assertLandlockRule(t, rules, "/proc/self", llReadFile|llReadDir|llExecute) + assertLandlockRule(t, rules, "/tmp", llRwAccess) + assertLandlockRule(t, rules, "/workspace", llRwAccess) + assertLandlockRule(t, rules, "/cache", llRwAccess) + assertLandlockRule(t, rules, "/opt/data", llReadFile|llReadDir|llExecute) + for _, rule := range rules { + if rule.Path == "/proc" { + t.Fatalf("all of /proc must not be granted: %+v", rule) + } + } + case "unsupported": + t.Logf("landlock unsupported on this kernel; skipping rule assertions") + default: + t.Fatalf("landlock state = %q, want active or unsupported", report.Landlock.State) + } +} + +func assertLandlockRule(t *testing.T, rules []landlockRule, path string, access uint64) { + t.Helper() + for _, rule := range rules { + if rule.Path == path { + if rule.Access != access { + t.Fatalf("landlock rule %s access = %#x, want %#x", path, rule.Access, access) + } + return + } + } + t.Fatalf("landlock rule for %s missing", path) +} diff --git a/components/execd/tests/init_container.sh b/components/execd/tests/init_container.sh index 98eb75831..0c933603a 100755 --- a/components/execd/tests/init_container.sh +++ b/components/execd/tests/init_container.sh @@ -207,6 +207,9 @@ echo ">> Test 4: hardening floor ([hardening] enabled)" cat > "${TESTDIR}/isolation.toml" <<'TOML' [hardening] enabled = true + +[landlock] +enabled = true TOML cat > "${TESTDIR}/hardened.sh" <<'SCRIPT' @@ -232,6 +235,17 @@ done grep -q '"init_mode":"pid1"' /mnt/test/caps.json || { echo "FAIL: init_mode != pid1" >> "$out"; exit 97; } grep -q '"cap_drop":{"state":"active"' /mnt/test/caps.json || { echo "FAIL: cap_drop not active" >> "$out"; exit 98; } grep -q '"seccomp":{"state":"active"' /mnt/test/caps.json || { echo "FAIL: seccomp not active" >> "$out"; exit 99; } +if grep -q '"landlock":{"state":"active"' /mnt/test/caps.json; then + echo "landlock=active" >> "$out" + if cat /proc/1/environ >/dev/null 2>&1; then + echo "FAIL: /proc/1/environ readable despite landlock" >> "$out"; exit 90 + fi +else + # Kernel without Landlock (e.g. some CI VM kernels): the launcher fails + # open and the layer reports unsupported. + grep -q '"landlock":{"state":"unsupported"' /mnt/test/caps.json || { echo "FAIL: landlock neither active nor unsupported" >> "$out"; exit 91; } + echo "landlock=unsupported (skipped)" >> "$out" +fi echo "hardened_ok=yes" >> "$out" exit 0 SCRIPT From 21116544ba777e07940505062c7831da3e70537b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 11:47:30 +0800 Subject: [PATCH 06/17] feat(execd): eBPF observation variant (OSEP-0018 phase 4) Opt-in exec/connect/privilege audit, scoped to the sandbox cgroup and written as rotating JSONL (stable envelope: ts/event/sandbox_id/pid/comm plus per-kind fields). Ships as the execd-ebpf build variant (CGO + cilium/ebpf); the default image is unchanged and reports disabled. - BPF programs (CO-RE): sched_process_exec (filename+argv via __data_loc), inet_sock_set_state (dst ip:port), commit_creds kprobe (uid/gid deltas, cap_added) - kernel compatibility from 5.10: the exec trace event layout change in 5.16 is handled with a bpf_core_field_exists discriminator, the kernel_cap_t shape change in 6.3 with a layout-agnostic 8-byte read; Landlock (phase 3) still requires >= 5.13 and degrades to unsupported - [ebpf] enabled/observe/audit_file config; capabilities endpoint layer state (active/unsupported/degraded/disabled), all fail-open - Dockerfile ebpf target + make build-ebpf; generated bytecode committed; unit tests for event decoding; CI runs the ebpf-tagged tests --- .github/workflows/execd-test.yml | 5 + components/execd/Dockerfile | 24 + components/execd/Makefile | 10 + .../execd/configs/isolation.example.toml | 15 + components/execd/go.mod | 2 + components/execd/go.sum | 4 + components/execd/main.go | 9 + components/execd/pkg/ebpf/audit.go | 394 + components/execd/pkg/ebpf/audit_bpfeb.go | 126 + components/execd/pkg/ebpf/audit_bpfeb.o | Bin 0 -> 72920 bytes components/execd/pkg/ebpf/audit_bpfel.go | 126 + components/execd/pkg/ebpf/audit_bpfel.o | Bin 0 -> 72920 bytes components/execd/pkg/ebpf/audit_stub.go | 28 + components/execd/pkg/ebpf/audit_test.go | 121 + components/execd/pkg/ebpf/prog/audit.bpf.c | 196 + components/execd/pkg/ebpf/prog/vmlinux.h | 7 + .../execd/pkg/ebpf/prog/vmlinux_6_14_0.h | 158494 ++++++++++++ .../execd/pkg/ebpf/prog/vmlinux_6_14_0_arm.h | 194638 +++++++++++++++ components/execd/pkg/isolation/config.go | 19 + .../execd/pkg/runtime/hardening_linux.go | 26 +- .../execd/pkg/runtime/hardening_linux_test.go | 6 +- .../execd/pkg/runtime/hardening_other.go | 3 + components/execd/tests/init_container.sh | 2 + docs/components/execd.md | 51 +- 24 files changed, 354292 insertions(+), 14 deletions(-) create mode 100644 components/execd/pkg/ebpf/audit.go create mode 100644 components/execd/pkg/ebpf/audit_bpfeb.go create mode 100644 components/execd/pkg/ebpf/audit_bpfeb.o create mode 100644 components/execd/pkg/ebpf/audit_bpfel.go create mode 100644 components/execd/pkg/ebpf/audit_bpfel.o create mode 100644 components/execd/pkg/ebpf/audit_stub.go create mode 100644 components/execd/pkg/ebpf/audit_test.go create mode 100644 components/execd/pkg/ebpf/prog/audit.bpf.c create mode 100644 components/execd/pkg/ebpf/prog/vmlinux.h create mode 100644 components/execd/pkg/ebpf/prog/vmlinux_6_14_0.h create mode 100644 components/execd/pkg/ebpf/prog/vmlinux_6_14_0_arm.h diff --git a/.github/workflows/execd-test.yml b/.github/workflows/execd-test.yml index a9550af60..e0eb61c83 100644 --- a/.github/workflows/execd-test.yml +++ b/.github/workflows/execd-test.yml @@ -55,6 +55,11 @@ jobs: run: | go test -v -coverpkg=./... -coverprofile=coverage.out -covermode=atomic ./pkg/... + - name: Run execd-ebpf variant tests + working-directory: components/execd + run: | + CGO_ENABLED=1 go test -tags ebpf -count=1 ./pkg/ebpf/ + - name: Calculate coverage and generate summary working-directory: components/execd id: coverage diff --git a/components/execd/Dockerfile b/components/execd/Dockerfile index fabbf4bfa..895eb08f3 100644 --- a/components/execd/Dockerfile +++ b/components/execd/Dockerfile @@ -109,3 +109,27 @@ COPY components/execd/bootstrap.sh ./bootstrap.sh COPY components/execd/install.bat ./install.bat ENTRYPOINT ["./execd"] + +# execd-ebpf: observation variant (OSEP-0018 §5). The default image above +# never contains eBPF code; this stage builds a CGO variant with the +# exec/connect/privilege audit hooks attached. +FROM golang:1.25.9 AS ebpf-builder +RUN apt-get update && apt-get install -y --no-install-recommends clang +WORKDIR /build +COPY components/internal/go.mod components/internal/go.sum ./components/internal/ +COPY components/execd/go.mod components/execd/go.sum ./components/execd/ +RUN cd components/internal && go mod download +RUN cd components/execd && go mod download +COPY components/internal ./components/internal +COPY components/execd ./components/execd +WORKDIR /build/components/execd +RUN CGO_ENABLED=1 go build -tags ebpf -trimpath -buildvcs=false \ + -ldflags "-buildid= -B none \ + -X 'github.com/alibaba/opensandbox/internal/version.Version=${VERSION}' \ + -X 'github.com/alibaba/opensandbox/internal/version.BuildTime=${BUILD_TIME}' \ + -X 'github.com/alibaba/opensandbox/internal/version.GitCommit=${GIT_COMMIT}'" \ + -o /build/execd-ebpf ./main.go + +FROM alpine:latest AS ebpf +COPY --from=ebpf-builder /build/execd-ebpf ./execd-ebpf +ENTRYPOINT ["./execd-ebpf"] diff --git a/components/execd/Makefile b/components/execd/Makefile index 0c6f1825b..ebbcf3dac 100644 --- a/components/execd/Makefile +++ b/components/execd/Makefile @@ -148,6 +148,16 @@ build: vet build-session-gate build-launcher ## Build execd and the Linux native @mkdir -p bin go build $(GO_BUILD_FLAGS) -ldflags "$(GO_LDFLAGS)" -o bin/execd main.go +.PHONY: build-ebpf +build-ebpf: ## Build the execd-ebpf observation variant (CGO + cilium/ebpf). + @if [ "$$(uname -s 2>/dev/null || echo non-linux)" != "Linux" ]; then \ + echo "execd-ebpf requires Linux (BPF attachable host)" >&2; \ + exit 1; \ + fi + @mkdir -p bin + CGO_ENABLED=1 go build -tags ebpf $(GO_BUILD_FLAGS) -ldflags "$(GO_LDFLAGS)" -o bin/execd-ebpf main.go + @echo "built bin/execd-ebpf" + .PHONY: test-integration test-integration: ## Run integration tests (Linux + bwrap required). go test -v -tags="linux,bwrap" -run Integration ./pkg/runtime/bwrap_test/ diff --git a/components/execd/configs/isolation.example.toml b/components/execd/configs/isolation.example.toml index 8f2ebd60b..1397bcbb1 100644 --- a/components/execd/configs/isolation.example.toml +++ b/components/execd/configs/isolation.example.toml @@ -117,3 +117,18 @@ allowed_writable = ["/workspace", "/mnt", "/media", "/data"] # # # Extra read-only paths beyond the built-in set (read+exec). # extra_readable = ["/opt/readonly"] + +# eBPF observation (OSEP-0018 §5). Default OFF. Requires the execd-ebpf +# build variant (CGO + cilium/ebpf), CAP_BPF + CAP_PERFMON, and a +# BTF-capable kernel (5.10+ with CONFIG_DEBUG_INFO_BTF). Observation is +# scoped to the sandbox cgroup and written as JSONL to a rotating audit +# file. Missing prerequisites degrade to "unsupported" and are skipped. +# +# [ebpf] +# enabled = true +# +# # Event kinds to record. Default: all three. +# observe = ["exec", "connect", "privilege"] +# +# # Append-only JSONL audit sink (rotated). Default below. +# audit_file = "/var/log/opensandbox/ebpf-audit.jsonl" diff --git a/components/execd/go.mod b/components/execd/go.mod index 14e4e8b5b..1929127b5 100644 --- a/components/execd/go.mod +++ b/components/execd/go.mod @@ -30,6 +30,7 @@ require ( github.com/bytedance/sonic/loader v0.1.1 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/cilium/ebpf v0.16.0 github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect @@ -68,6 +69,7 @@ require ( go.yaml.in/yaml/v2 v2.4.3 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.52.0 // indirect + golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 golang.org/x/text v0.37.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 // indirect diff --git a/components/execd/go.sum b/components/execd/go.sum index cfcf6cab5..48e48da7d 100644 --- a/components/execd/go.sum +++ b/components/execd/go.sum @@ -10,6 +10,8 @@ github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1x github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cilium/ebpf v0.16.0 h1:+BiEnHL6Z7lXnlGUsXQPPAE7+kenAd4ES8MQ5min0Ok= +github.com/cilium/ebpf v0.16.0/go.mod h1:L7u2Blt2jMM/vLAVgjxluxtBKlz3/GWjB0dMOEngfwE= github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= @@ -156,6 +158,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= +golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 h1:Jvc7gsqn21cJHCmAWx0LiimpP18LZmUxkT5Mp7EZ1mI= +golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= diff --git a/components/execd/main.go b/components/execd/main.go index 6f966fd60..310718589 100644 --- a/components/execd/main.go +++ b/components/execd/main.go @@ -31,6 +31,7 @@ import ( _ "go.uber.org/automaxprocs/maxprocs" "github.com/alibaba/opensandbox/execd/pkg/clone3compat" + "github.com/alibaba/opensandbox/execd/pkg/ebpf" "github.com/alibaba/opensandbox/execd/pkg/flag" "github.com/alibaba/opensandbox/execd/pkg/isolation" "github.com/alibaba/opensandbox/execd/pkg/log" @@ -77,6 +78,14 @@ func run() int { return 1 } + // Start the eBPF observation layer ([ebpf] enabled, OSEP-0018 §5). + // The stub build reports disabled; the execd-ebpf variant attaches the + // exec/connect/privilege hooks. + { + ebpfState, ebpfMessage := ebpf.Init(isoCfg.Ebpf, os.Getenv("OPENSANDBOX_ID")) + runtime.SetEbpfState(runtime.LayerState{State: ebpfState, Message: ebpfMessage}) + } + // Probe isolation runtime capabilities. isolationProbe := isolation.Probe(isolation.ProbeConfig{ UpperRoot: isoCfg.UpperRoot, diff --git a/components/execd/pkg/ebpf/audit.go b/components/execd/pkg/ebpf/audit.go new file mode 100644 index 000000000..6821d2bd8 --- /dev/null +++ b/components/execd/pkg/ebpf/audit.go @@ -0,0 +1,394 @@ +//go:build ebpf + +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// OSEP-0018 §5: opt-in eBPF observation of exec / connect / privilege +// events, scoped to the sandbox cgroup, written as JSONL to a rotating +// audit file. Compiled only into the execd-ebpf build variant (CGO + +// cilium/ebpf); the default static image never contains this code. + +package ebpf + +import ( + "encoding/binary" + "encoding/json" + "fmt" + "net" + "os" + "strconv" + "strings" + "sync" + "syscall" + "time" + + "github.com/cilium/ebpf/link" + "github.com/cilium/ebpf/ringbuf" + "github.com/cilium/ebpf/rlimit" + "gopkg.in/natefinch/lumberjack.v2" + + "github.com/alibaba/opensandbox/execd/pkg/isolation" + "github.com/alibaba/opensandbox/execd/pkg/log" +) + +const ( + defaultAuditFile = "/var/log/opensandbox/ebpf-audit.jsonl" + + // Capability numbers (linux/capability.h). + capBpf = 39 + capPerfmon = 38 +) + +// Event is the JSONL record: a stable common envelope plus per-kind fields +// (OSEP-0018 §5). +type Event struct { + TS string `json:"ts"` + Event string `json:"event"` // exec | connect | privilege + SandboxID string `json:"sandbox_id"` + PID uint32 `json:"pid"` + Comm string `json:"comm"` + + // exec + Filename string `json:"filename,omitempty"` + Argv []string `json:"argv,omitempty"` + PPID uint32 `json:"ppid,omitempty"` + + // connect + DstIP string `json:"dst_ip,omitempty"` + DstPort uint16 `json:"dst_port,omitempty"` + Proto string `json:"proto,omitempty"` + + // privilege + OldUID uint32 `json:"old_uid,omitempty"` + NewUID uint32 `json:"new_uid,omitempty"` + OldGID uint32 `json:"old_gid,omitempty"` + NewGID uint32 `json:"new_gid,omitempty"` + CapAdded []string `json:"cap_added,omitempty"` +} + +// Packed BPF event sizes (must match audit.bpf.c). +const ( + sizeEventExec = 4 + 4 + 16 + 64 + 4*32 + sizeEventConnect = 4 + 16 + 16 + 2 + sizeEventPrivilege = 4 + 16 + 4*4 + 8 +) + +// Observer consumes ringbuf events and appends them to the audit file. +type Observer struct { + mu sync.Mutex + logger *lumberjack.Logger + sandboxID string + kinds map[string]bool + reader *ringbuf.Reader + links []link.Link + closed chan struct{} + closeOnce sync.Once +} + +// Init activates the observer from the isolation config. The returned state +// and message describe what is actually enforced (for the capabilities +// endpoint). +func Init(cfg *isolation.EbpfConfig, sandboxID string) (state, message string) { + disabled := func(msg string) (string, string) { + return "disabled", msg + } + if cfg == nil || !cfg.Enabled { + return disabled("eBPF observation is not enabled ([ebpf] enabled = false)") + } + if !effectiveCapsHave(capBpf) || !effectiveCapsHave(capPerfmon) { + return "unsupported", + "eBPF observation requires CAP_BPF + CAP_PERFMON (execd-ebpf build with a privileged container)" + } + if _, err := os.Stat("/sys/kernel/btf/vmlinux"); err != nil { + return "unsupported", + "eBPF observation requires a BTF-capable kernel (no /sys/kernel/btf/vmlinux); under gVisor/Kata the host kernel is not attachable" + } + cgroupID, err := currentCgroupID() + if err != nil { + return "degraded", fmt.Sprintf("eBPF observation cannot scope to the sandbox cgroup: %v", err) + } + + observer, err := newObserver(cfg, sandboxID, cgroupID) + if err != nil { + return "degraded", fmt.Sprintf("eBPF observation failed to start: %v", err) + } + observer.start() + return "active", fmt.Sprintf("eBPF observation active (cgroup %d, audit file %s)", cgroupID, observer.logger.Filename) +} + +func newObserver(cfg *isolation.EbpfConfig, sandboxID string, cgroupID uint64) (*Observer, error) { + _ = rlimit.RemoveMemlock() + + spec, err := loadAudit() + if err != nil { + return nil, fmt.Errorf("load audit programs: %w", err) + } + // Pin the cgroup filter; events outside the sandbox are dropped. + if err := spec.RewriteConstants(map[string]interface{}{ + "target_cgroup": cgroupID, + }); err != nil { + return nil, fmt.Errorf("set audit cgroup filter: %w", err) + } + + var objs auditObjects + if err := spec.LoadAndAssign(&objs, nil); err != nil { + return nil, fmt.Errorf("assign audit programs: %w", err) + } + + auditFile := cfg.AuditFile + if auditFile == "" { + auditFile = defaultAuditFile + } + if err := os.MkdirAll(dirOf(auditFile), 0o755); err != nil { + objs.Close() + return nil, fmt.Errorf("create audit dir: %w", err) + } + logger := &lumberjack.Logger{ + Filename: auditFile, + MaxSize: 100, // MB + MaxBackups: 3, + MaxAge: 7, // days + } + + var links []link.Link + if objs.OnExec != nil { + if l, err := link.Tracepoint("sched", "sched_process_exec", objs.OnExec, nil); err != nil { + log.Warn("ebpf: attach sched_process_exec: %v", err) + } else { + links = append(links, l) + } + } + if objs.OnConnect != nil { + if l, err := link.Tracepoint("sock", "inet_sock_set_state", objs.OnConnect, nil); err != nil { + log.Warn("ebpf: attach inet_sock_set_state: %v", err) + } else { + links = append(links, l) + } + } + if objs.OnCommitCreds != nil { + if l, err := link.Kprobe("commit_creds", objs.OnCommitCreds, nil); err != nil { + log.Warn("ebpf: attach commit_creds: %v", err) + } else { + links = append(links, l) + } + } + + reader, err := ringbuf.NewReader(objs.Events) + if err != nil { + objs.Close() + return nil, fmt.Errorf("ringbuf reader: %w", err) + } + + kinds := map[string]bool{} + for _, kind := range cfg.Observe { + kinds[kind] = true + } + if len(kinds) == 0 { + for _, kind := range []string{"exec", "connect", "privilege"} { + kinds[kind] = true + } + } + + return &Observer{ + logger: logger, + sandboxID: sandboxID, + kinds: kinds, + reader: reader, + links: links, + closed: make(chan struct{}), + }, nil +} + +func (o *Observer) start() { + go func() { + defer o.Close() + for { + record, err := o.reader.Read() + if err != nil { + if err == ringbuf.ErrClosed { + return + } + log.Warn("ebpf: ringbuf read: %v", err) + continue + } + o.handleRecord(record.RawSample) + } + }() +} + +// Close stops the observer and releases all BPF resources. +func (o *Observer) Close() { + o.closeOnce.Do(func() { + close(o.closed) + _ = o.reader.Close() + for _, l := range o.links { + _ = l.Close() + } + _ = o.logger.Close() + }) +} + +func (o *Observer) handleRecord(raw []byte) { + event, ok := decodeEvent(raw) + if !ok { + log.Warn("ebpf: unknown event size %d", len(raw)) + return + } + if !o.kinds[event.Event] { + return + } + line, err := json.Marshal(event) + if err != nil { + log.Warn("ebpf: marshal event: %v", err) + return + } + o.mu.Lock() + _, _ = o.logger.Write(append(line, '\n')) + o.mu.Unlock() +} + +func decodeEvent(raw []byte) (Event, bool) { + now := time.Now().UTC().Format(time.RFC3339) + switch len(raw) { + case sizeEventExec: + ev := Event{TS: now, Event: "exec", PID: binary.LittleEndian.Uint32(raw[0:4])} + ev.PPID = binary.LittleEndian.Uint32(raw[4:8]) + ev.Comm = cstring(raw[8:24]) + ev.Filename = cstring(raw[24:88]) + argv := raw[88:] + for i := 0; i < 4; i++ { + arg := cstring(argv[i*32 : (i+1)*32]) + if arg == "" { + break + } + ev.Argv = append(ev.Argv, arg) + } + return ev, true + case sizeEventConnect: + ev := Event{TS: now, Event: "connect", PID: binary.LittleEndian.Uint32(raw[0:4])} + ev.Comm = cstring(raw[4:20]) + ip := raw[20:36] + ev.DstIP = formatIP(ip) + ev.DstPort = binary.BigEndian.Uint16(raw[36:38]) + ev.Proto = "tcp" + return ev, true + case sizeEventPrivilege: + ev := Event{TS: now, Event: "privilege", PID: binary.LittleEndian.Uint32(raw[0:4])} + ev.Comm = cstring(raw[4:20]) + ev.OldUID = binary.LittleEndian.Uint32(raw[20:24]) + ev.NewUID = binary.LittleEndian.Uint32(raw[24:28]) + ev.OldGID = binary.LittleEndian.Uint32(raw[28:32]) + ev.NewGID = binary.LittleEndian.Uint32(raw[32:36]) + ev.CapAdded = capsFromBits(binary.LittleEndian.Uint64(raw[36:44])) + return ev, true + default: + return Event{}, false + } +} + +func cstring(b []byte) string { + if i := strings.IndexByte(string(b), 0); i >= 0 { + return string(b[:i]) + } + return string(b) +} + +func formatIP(raw []byte) string { + // IPv4 is stored in the last 4 bytes of the 16-byte field. + if raw[0] == 0 && raw[1] == 0 && raw[2] == 0 && raw[3] == 0 && + raw[4] == 0 && raw[5] == 0 && raw[6] == 0 && raw[7] == 0 && + raw[8] == 0 && raw[9] == 0 && raw[10] == 0xff && raw[11] == 0xff { + return net.IPv4(raw[12], raw[13], raw[14], raw[15]).String() + } + return net.IP(raw).String() +} + +var capNames = []string{ + "CAP_CHOWN", "CAP_DAC_OVERRIDE", "CAP_DAC_READ_SEARCH", "CAP_FOWNER", + "CAP_FSETID", "CAP_KILL", "CAP_SETGID", "CAP_SETUID", "CAP_SETPCAP", + "CAP_LINUX_IMMUTABLE", "CAP_NET_BIND_SERVICE", "CAP_NET_BROADCAST", + "CAP_NET_ADMIN", "CAP_NET_RAW", "CAP_IPC_LOCK", "CAP_IPC_OWNER", + "CAP_SYS_MODULE", "CAP_SYS_RAWIO", "CAP_SYS_CHROOT", "CAP_SYS_PTRACE", + "CAP_SYS_PACCT", "CAP_SYS_ADMIN", "CAP_SYS_BOOT", "CAP_SYS_NICE", + "CAP_SYS_RESOURCE", "CAP_SYS_TIME", "CAP_SYS_TTY_CONFIG", "CAP_MKNOD", + "CAP_LEASE", "CAP_AUDIT_WRITE", "CAP_AUDIT_CONTROL", "CAP_SETFCAP", + "CAP_MAC_OVERRIDE", "CAP_MAC_ADMIN", "CAP_SYSLOG", "CAP_WAKE_ALARM", + "CAP_BLOCK_SUSPEND", "CAP_AUDIT_READ", "CAP_PERFMON", "CAP_BPF", + "CAP_CHECKPOINT_RESTORE", +} + +func capsFromBits(bits uint64) []string { + var caps []string + for i, name := range capNames { + if bits&(1< 0 { + return path[:i] + } + return "." +} diff --git a/components/execd/pkg/ebpf/audit_bpfeb.go b/components/execd/pkg/ebpf/audit_bpfeb.go new file mode 100644 index 000000000..2782bbd57 --- /dev/null +++ b/components/execd/pkg/ebpf/audit_bpfeb.go @@ -0,0 +1,126 @@ +//go:build ebpf && (mips || mips64 || ppc64 || s390x) + +// Code generated by bpf2go; DO NOT EDIT. + +package ebpf + +import ( + "bytes" + _ "embed" + "fmt" + "io" + + "github.com/cilium/ebpf" +) + +// loadAudit returns the embedded CollectionSpec for audit. +func loadAudit() (*ebpf.CollectionSpec, error) { + reader := bytes.NewReader(_AuditBytes) + spec, err := ebpf.LoadCollectionSpecFromReader(reader) + if err != nil { + return nil, fmt.Errorf("can't load audit: %w", err) + } + + return spec, err +} + +// loadAuditObjects loads audit and converts it into a struct. +// +// The following types are suitable as obj argument: +// +// *auditObjects +// *auditPrograms +// *auditMaps +// +// See ebpf.CollectionSpec.LoadAndAssign documentation for details. +func loadAuditObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := loadAudit() + if err != nil { + return err + } + + return spec.LoadAndAssign(obj, opts) +} + +// auditSpecs contains maps and programs before they are loaded into the kernel. +// +// It can be passed ebpf.CollectionSpec.Assign. +type auditSpecs struct { + auditProgramSpecs + auditMapSpecs +} + +// auditSpecs contains programs before they are loaded into the kernel. +// +// It can be passed ebpf.CollectionSpec.Assign. +type auditProgramSpecs struct { + OnCommitCreds *ebpf.ProgramSpec `ebpf:"on_commit_creds"` + OnConnect *ebpf.ProgramSpec `ebpf:"on_connect"` + OnExec *ebpf.ProgramSpec `ebpf:"on_exec"` +} + +// auditMapSpecs contains maps before they are loaded into the kernel. +// +// It can be passed ebpf.CollectionSpec.Assign. +type auditMapSpecs struct { + Events *ebpf.MapSpec `ebpf:"events"` +} + +// auditObjects contains all objects after they have been loaded into the kernel. +// +// It can be passed to loadAuditObjects or ebpf.CollectionSpec.LoadAndAssign. +type auditObjects struct { + auditPrograms + auditMaps +} + +func (o *auditObjects) Close() error { + return _AuditClose( + &o.auditPrograms, + &o.auditMaps, + ) +} + +// auditMaps contains all maps after they have been loaded into the kernel. +// +// It can be passed to loadAuditObjects or ebpf.CollectionSpec.LoadAndAssign. +type auditMaps struct { + Events *ebpf.Map `ebpf:"events"` +} + +func (m *auditMaps) Close() error { + return _AuditClose( + m.Events, + ) +} + +// auditPrograms contains all programs after they have been loaded into the kernel. +// +// It can be passed to loadAuditObjects or ebpf.CollectionSpec.LoadAndAssign. +type auditPrograms struct { + OnCommitCreds *ebpf.Program `ebpf:"on_commit_creds"` + OnConnect *ebpf.Program `ebpf:"on_connect"` + OnExec *ebpf.Program `ebpf:"on_exec"` +} + +func (p *auditPrograms) Close() error { + return _AuditClose( + p.OnCommitCreds, + p.OnConnect, + p.OnExec, + ) +} + +func _AuditClose(closers ...io.Closer) error { + for _, closer := range closers { + if err := closer.Close(); err != nil { + return err + } + } + return nil +} + +// Do not access this directly. +// +//go:embed audit_bpfeb.o +var _AuditBytes []byte diff --git a/components/execd/pkg/ebpf/audit_bpfeb.o b/components/execd/pkg/ebpf/audit_bpfeb.o new file mode 100644 index 0000000000000000000000000000000000000000..40d5181e180f6cec9cbf90ff04af86fb5c595b9b GIT binary patch literal 72920 zcmeFa378yJ*~eSmon#W0?E6M%AtYf-2x|yX*%L@0B!MI>_Vo1hOoq(H^h_31EZIas z0TmV3VHLy$+`yGW7Ew`AQE>rB5Cs(lKUDYxbASJH-s-Ll$>VqL{hs^W`#kqNRGnYF z^`7lL?^&vCa8u?@J~1;sNO+3ezUs@?L0Eb+*kDX?-}mn(v7=c5fQ&^ z@rxG!+2ZFc{+-2r7XRAfCoF#4;>Rq0)Z#}he$e9B;;&nLuf<=q_%4e-ZSn0E-(qpE z#UHi!Ll(c^;%hCw+TtrMzRcpt;&dkf}uNnoGxKux z?%lid_vGF6;QL(e)pQqHx^=r2?sgi(=KFO0(jR8&2UvL*_PamN?hm*7!_B`kV}=J~ zm7`q`zVBF{|31nY-oKpUMZ0N15NztydH3#W`r~vR1pVp}TKdrHad_Fr#yws=80PW` zf;u19DPQdKO6ilkCrf1@HddUJQ#Vgn!SMf7&Yt=M`s+{b*RBDy%axb3D~X3SyYl+C zE3r$}e%8JLXSpf|0sS{zDaXtUa*D@uMZ0#370#a@xclSl-DUN(Yph55$)&S=*Cq1v zGeMm+?wjlN>hdn%*~&j1?wRMVp13FUQp@L(#O~Ldaz8spW|zF_AHJs@gTejut9Gch zfA_P>y4L>P&*-{;`=`v`-6wg!{CfXG`ThHGZ{`0~`KHSMiLUoj{$rB&D?jdEeqFt^ zg7N+Is^up3NwxnWB}kS3fXjgXN%uePk0tMyZ(slN2L`*p=JfuT*NJU6?soH-%>$#8 zcI;ywc+Bcmoo|X0cRTx?H9QEZU)I{6o)4dJ_1<&d`?clMe_k3q%-Yw_9!a_V$C=HO z*!coqk0iadXZU|;&!bk4q}~^{Ox*pb>Pvg}Q+q6*>b$cLyCnIf?c(xD*71Q%ZOYg3 zJN`e^>(Bk{leF`Iq<#JD^IFo5Bwy=?3;&nql_&Nwugv;S^UAI_`m6J|#4i7L_czu~ zTW5!C-p4xoh}q{2>+D|q^>Ou6Kl?t>uRn(0(D#Z#sQ z(-m9$!)iPB-u`4B9h~^%KGxBDtv+uU-@7LI`SFuBZ|<7A`(Bk_n5HxP8ad2$4~6uNcb1VD&x5%KVm0N*;0L_ z^e#|QsVdD2978x>q9KxvA$sXD*OfCO_;qAz2O%px>XV6J*-6|BPk|4DV|WIfCnj<> zK_{#0Ib4fFj(IQ&*?JC*#F@kq#}XJF)jE4RC+wRG;RcwUV=jW*VAAGdqPH6N!B==z z6SG$v=VA2)`U66uj~Um)cfgc2AcDUH9~uO5zwEu7sFPeGt3AvKbVme#6FxNv#)a@B zF!dWJ`J?dWz`0@e3HWe0ME*2P{V_|B{R=0`I!N+=!{@*eZBRcmjt+`p?Kt2(QEnQi z^8+_^!Tu=pT(}U>&CmV9CeA^y4uxJR9B?1jkA)Ly9Fo25xn(5)51m zlmBrca(uyYJ=|a%!Pc(hdf~Sq$3Dl!@TKtZAUK|A;5Fh*aC{zCUx@LAf!{Em4nJx< z16CWQ6T*KrUJT2}BwvD04>n#3Yrc>i+YgdsikHI+j90)5jaR}PPKW*)w83~aj6XU# z<6#i?P+N|V;GJ+A91~+3&7}(?DqkF#U331b@-< zBBDWG=Y;+u$-iUr82*vxlS23@_~IZqNpkf&K6EnCp#S1To}qX*r%T|7rD8vrJ_uuY zyk|@p)T!UG(c%!+9L4xt9Kk0U$1paP95V-X*d@3O4&k%mtAjwd>(1jeJqVUX@C7h! zUlzlio-uz=w}TV;EDzyJj3f9u82#lje1m7YD5$%U)3rgcB82aTKM(|~V)$YBV@y*K z{1aozpY(hhQQgy=J{1I~h44S&yWj|Z4JNNOM1u!$`aB%MLt*-0O$2LPP#?MbVA)3; z!Y9CAf+JWR^<_AQm%xnA(}@PF@O$A9mM?t;j^K0Pufj3h0DmnA&LA2rTZuzh_7O+$ zwVvG82K1sNjy zd=CzhuY;+>#t7a5<9i!pxCwrgCp@Ad9h|-ohj2Ii12}>&fqw|cux#>J5S&dk1YeMS z&JN*E!#{!}7~2Owfnyk3s@%-fwnXsjFnU|!AlOfS zl7;)=S@08XnG5zi0zMKBksk~H0*+y|{g**-F42B!96INQa0&hu9K&7kN8GX)>~|?l zJQLx|5Aj@2wErSb=+x)oGvEnu2sgmkvp#~`jAQr;&qbpB zKgtQ;Er#%I@NeN5z8ikpEz`mN-+;-pAw;gWJOf9t{1bUe@>gK4OOn41(;uan<$REF zA3O|3zme#GgE&#=#t@!mTn`^*9KlPCd*L%->e(2>=fKYfK{(P;q>2d2)Drh zf+P5?Fy;L|hPe)QyKW7JzK4B1mw!N(d3^wjCl|8iRUFt#Vd(Xo=%XOyP?*9IAy@yZ zt}%RzXXQ2YPMydvB>J2r1dX$h>u(4Mli>S}>BFJl-cyfVj)0x3VT1RE7EW)r^ zB;r5$z_1gD50=!zA;cl_Q;27C)Wb`SJK>d9F2xL6k9-z~3zoUd%i6BGZQ`ctM;KP% zG~Hn^tl8>02l+PR19Z>w8HfBrG9Xqnhh5C+Fx`hQn1Tzn<`kny$fkBvVB{{|-iYz#ABh;u~4@Jq)b%^P7H!Q9toKNrLD zEv{)rF#KTS5MBV&%mESZdJB9s93xj>9OFDE7#EbJ|FCgH>@p<6zQb>-p6(-;J;fnM zqK|!t-);SP6#OM)+B*De>OsO_;!u#)$v^lR>-lo{LzFiJc?kcIShge#@8cv6;pdGb z_#d#^8N<7c``Fe?MmtsN2>i!!2+uT*VEGSr%f#@plv~F&Z5pwHn6@a4ID?by6~UW~ zW4H-cS|aC92f%sc7a|ZVpIz|ra7diA_c-JiU*_LeF!v4L!7bH;FycL&)W#UT!LzIX zt;Qkp&lyMXmyBbWLp~>~CgUL+a-lhpdS)YZ9ua4PY%ly%;~U{VjMGE%lxKDWW+j6Vs_GQJ(Aoxwu#h~d!l0I}@34Br*6hw*EfePoH#X>bT@-*_q< z!50mv&buQoL4G0!VdOhFv6jd_Bj3;IByZ=DAA=Xe5pvq2{Zb}|sgq-DFj6*@{4w|* z<0s(zC@af#9=?Rw`eoz~VXa#+@}Ca|2-w;y6P+wRkPL}V5fegme>2FdknPC7I%zOU zIyw@6z(xt@*t?AyVfinGM;nuMRR>=jHNoU7YVu&E*y^xKOu&Ytjx^oX@X@Yd$~T)P zbvS{03r%m063PgKwK`dzbHxPZc^c`dtM>4t&LdWz5=PZ?TE`K>EyRcWrjF`@@fr2Q zsEdsIh~=BeRhpZ-#CdcsLvSV>!q*tr!&gM4Pe#$t4|7aXj2b-%0A{zComk$hit(t?e>A(nPYzLd*7}g$wvgl=kw^@!k zcJypYR2ta%5jrkddxHoa^*e0|df`*d_Kb(oOO0K2%EW@~uZAEWz1nnG2S#r)K3jSy zsEZK|n@a3_RC22u_DVR|BHmA@Aa{q(rgJ-aHeBY*BD>M8+#0^W6oS#}$Klk8%h7KU zQy6U+eW~#+`!nMZ z`EQLQ_yyw_{wHj6;g}&_o(*|zJjOVJ)z{LAVcCg8)*hpNq1;>uFEfr{`rOH5xZ;@> z1!Jx?4q@4mv;!hobEi0lt^V?>F~9I~`PG;|8%OZ##xX-nb|kI*YV0)Q5Y`+dc?6$f z9K!|Abwp#ksFe(b4~%^)vF^Fx`!{%-E{uy}?*l;t`j?t7HKueVf4Ais!q;=JtosTn z|74uGzE-&(rll%^WMgk5Zss72#kZW#yDM(;pAPpq zKX)0)|3L;a)I4+^AXYsHW53I3GDiqMZXCf+8^`dAo@K7FvOoHnknN^ko~UWFDd}qB zEC*rSXigf-A*}HwjyX&rH?zjsPf)F$me29%lUGu=aYw=J93h8-##JP+f;z-D?{j$cMB(G^CU(V}?~!breC8q!!nl~zn?(w~p1IGa z_)akylU#Kh_b9Q(4`JMoI4Ma8YyJ_}!%q{dJrVr8aZH@#|LGLJADx%TUup4Yx0klD zIqo%N5l6^jY5llWV=ZXhlH47pla=igee$haje?S3^W=T7G?Mqh%747dznmk2>&&)S zz+*|PP9z#XgZLdBgz<-&&Xw?@nvT2qPIu;n(Nr$Co&QWvFN#Bb==2`WqDgfM|AB6u%H2#>b+ou+kg%_EFYO1H!3!kL=-c%ai+Ma?@#56(riE<9xO?=$iMcpPo$*nKwzJk>O zJ5KzA>8Pw1xg~#g!E`h)Ci-`!SnFaUKRv~+3`~K^GRZ z?x`(|%}I5DvKkMMB(}P_Z)jSBBjn>O{}`TXd_R1IvGPmm`9+q1Uz4YbqrH<(son}E zErX|XSo2jG5%52bM^Il zey_b3e{~|u3mZ;8nt~-mGZI+_>7 z5pmk4$Xq@L^ppR|#sX;Fj@1Aij!R9VwK7NMl9dT>pJB}uW?BdS4LvL2S}^$PNR9Gx|Y`*tiQ?6 z45y5P$zT05g>jjw<5{2NQ>Jqw|1o*^aF}&=Ob8!m9Knmxr(R=Xc$w$1+@2!e#KvPo zSo6L(f}7D90>^M0OtlY^{O#ya);yvq??c`Khw#VXZT!wChVS4e^;;nM=Zzy+V@mQE z#=hdCiKcwtIE447?FVwb6_#z)|AZ;O;3N*=CygWcx5hF2tmh2T6pb15Ga>wfaRk3) z9K(P2j7ftjuNsH2`jfQT$Ud!!V_01WD{>u&8|b%vQwMpuq*FCM(NR68DyEG=1Z!;S zI)Kfxb%sQ2!yx}2yo^l{aDH8aaiS$}l z`38B8l-$i9lGErZ6Uj(PxSrZBJ>s`OTB0PT~k3#D~Rdx%&=xI4t>S z1lT$o!ui1IWFzAz*p9RP8%`kPQ7lMOiH*pAm z$2fvzw~@$WSmR-~du19N^jl-fIOs*=JpAA2<7fMa$mI8ol@ahk_;ltlIHGIhV;kWZ zre3NKMFjanj6;}1&tD@WSpJ92N5T5OC_Bj9`AwX#;pmVy-f3Kq{CpVw(Gf1+0nhdG zR9^NZ&oLo7-SBij@8s#94E;DZLVgKy(vFSct6w_EexqV*X@}EjHtqb`=d|Wy`2=IZa zG0d8+emRI}+U4k+2!}8>$(#g7@JG3c!a*_oCFEz*4n)(w%87jPA^Z^XO>jheGS2$&euhL)!$=8iUWLi6?Uylr%D@^~O>5R}7g`{+n z=jZ94xXgc3yAqWN94XB9CW`vj9RK_-NM zZoC-&jqws#Hj&O!_(kJoFl~48@b{UC9nOa}c}V^yc&c#$PTF1%&og-u zUTE9^V{4bT1k)bJv~?zWj>~Y1cw&%gA|_-gFB2i(&IP`a=_Mv)#&EV z8h^-!=wD|X!8gIA&Bn|-tuSS0`;dPTMn6Y1^C3>?#YhX)87P!55|YiWI-E#(UK5Bgm`uq3z?jcHuJLSk?bF1oqFw4!*}2 z+Z=qqaTb15JOyLHzaWu(E9M|%Ci?i`KM>D#DsHaUJgI(3=4aX8z0V~-XY;?1cBrq0 zvorY&Kwlw4KMsf}>s2n0(<8ww?C3azM;S-(4C9zsnsr3=V)CI+laQhMNyumnSjbS% zBxLdlk#<^&XD3YCNiCO8Yh9BfWHwJRd-ou)dTMk)A zyhJkiTux&0Ii!ggd$@A7UZ}kx@``aptW1<9FAbkK`Y=GmTyrHHAlbw$*h8< z|33IsSo$C3CiTh1a4+&T&I^OtpE8!t7ro9vqS+4`hqwvzztRqjkpI9qhJWID5Yg-> zjYIg)#u5B4qrcw{mDa5M)}%d0o|XlHUzWI!9@wpXacCasPfT;agJjTWhR( z&ly3BtlT*>xySsIgpAe%7bsT-q?|cw?=UZ&gKujeqjKjQZ#)k^rIx4r29nP6H1u4! z%s;FuPx{-1;A znmhD?VK#i5F>}(K&xzSM9Rc4<9tZO*qO=OD~^7$1O+`n2Xp5chs3UP6%*8M^3i(ZAf4w1 z$t+LmR?QQx<|z)PrNS&AOY)q192v@t^yA#s)R$)p7m_(4LcY#)Xp4K_ru2ll=W`N= z9M%^(m)`eFPUAR{e+-xS0r|*RpRjrS9No8dQF(E&wa-0L`z&wvP4J;X8Q#J#lM;Kjk*Pa8)t``1j#KOWDGVd^s| zME(dmq#Y!k$7NOSovU+JC-=PM=4YB#4XVF_#mY-T&rsELTT)ygZ>>od=Kcj%Bk+m2 z|0Z40-#B!Cw+N7)S6^p4F#^ zK4UETbDmYop)Zh+KzY7OY&JdgHRBNZZgiB1bW&v{4a`vgd3T{hv)y}s#=5yDfA zW76#87){Y3u{Us#=@4t?NkYxe?jLW`oIpp){#7}4aE+Bs)E?@eVGWyq$N>QVb@A?h z=4I~R3+Hf=qo{YLM`_?=;P;bt2%m>wy0QF*xoto_a<$=lID$FE14EcGm-(@ zl+U0T`TZ&W1N;$_zZAIo)e$XF^O%q8@-VhgU)F`N#=p28o(s>0Blu)^34ATAIamB4 zn6acb*Y(0Jltn%2Vq}C2bC5>F0?i+v@blt=wM7}^i>dB*-cdE=-&3xVD_1vWGa>=8qi|Vj{ z9#-8X58tobhw_rb&(PX`bwWWEW9 z$Pb6<(*q)S5jUvAfs$`9u7?}p=a5HmE6lh+EjXr!6L}5`VO&i085Y6sHtvN#;Ojpu zhOv`u;`q1dD6Ql#!`Nat(XkxLe0T_}vf_GpG->gr;SoFyz7LLJ*_n7m059V-8xG-h z#>B_g!(={!_}EU&a}ylF7b7SC5xwx0@DezN@h#0ABOZb8@O2*X82o+dWCF)e8vh9S zAB}$ut1qPU6aHQOU@`eT0aJfhw?25X@r&?m7(1w|j-&CJOW+V*0p9{g@Fs3%;TSH# z)Olnd+~s)`(Q%h^>Seo@hp&bohC}!Un6#tn;ag$aJSu|kh8ZKHVi;f0zkN^@kNY+! z^hbyA&)_9+J^ZxsR`>;RCK%nxPZkCmUkFbT4|2aDKmG{#Aks$2Pc)9;yZ!7rmvtbg}@{J)709N_+4 z_X*S`I56XWk9LA8F2=qm%rK_DCmaQ1+n|?&ka;_&82M885{?jFLwqSm1j{~Ga7d@< zIV&CY`&nd#Tp{x=+DUxETVcjtE|e60kLMGptLmSN(Ye+5F=9dno96nEf0c_o^E}ZB z5BYosaIKJeAM(6tpszn|Jptdy?2ycd%uXMl@Qe&Wn4}ZAslC$w3;MexgXt^Bd0rb0 zGW}t?WBHS8;elKZmkh?9nKyf;wh8$4SQS9jM^#}-M*T;%E|*Nf zH6qB-{|l4fBq{&v(0PZ~aOJA`lH=prUnnf>g|BoNEc_JwPS0sux%N@C%H2b*K9O99 z+NJzew=WViFDWeiCV5_E{5|+;&q~iL%Y_?_50}zwg^I9`?7o*W2a~Jr@V##uBrtm%D09p9sjgUera57FZw6Wt;tV3 zCdKlHs(#A%mLj)yop=_YTjMzhnGg8*#0FxO9i`rb^>UrEgRV04rGlPUGMcYlAWt<7 zTRA&?$V>HaGBe^(*VguLQUB)ui9R~~r+S{KKAWyQct#;+5urd^;rDu{c%Iy0Cw7A$xl^Y?R_D-+$D$?qB}J{dC~ z4}XMYm-<8}-b5@v3X$J#9K)Z5--I4=z0=cLnu(C#hdd9*@WU{Do9TnU3;&ld@x;gA z>68^BXP%Qzt{(o4aRfhW+zYc8%iM`h48I7|M>6w?ufm_hLXy7@-{tqGi@2G&n_-50 z5z|WM^M3!hh;p>=*dMtYdrRO)&{6-0RWFT0@e{~r8u!`r$!z45uW!YfFZd;E(P8kH z;Sg&-i9WtI9$tixXYPSx*ezaM-^zW}TzxW_do#e>BtvHj0z&4KaPp48i-OGU?pEM_ zo2|Jjuj_%{m}IwTGnd#i37I<*;${|>&iTZ&OJPx&a+t^Z&sFX|x*BVX+AS@0ShN$F z#u;Ie)^BkhehWGW!1#=NHv0@raL;Vw$Uoz0Zd8*Oy^B~p9Qg~zdF0m{&oevE;W|X# zOQNOlI+#9pOj{S-Yg`Y16Q+%sh}S12_-42l`NL+<&mxnpazvE7hAbMprL zAnZDY^uI;_Rv8-B{?AoFv4T3qhs;gHsvF5qzQ^>xp?e6WmPh^&@xvU1lfTCaT_^t$ zc^?6X9P)F?$>QY4kz-edlc`7Weuu%yfA#shca2UNz58|VKv!0hCfSc9wvqf4ZLnA) z^sK6odBDe~41v}D*k5O;X9he)e(`ON(BzL$y%@RX5Bx2M+^vm_%Upzf403TVJQZdh z$i?t1#CxI^>i~fCpVr^`9pZX?2S>D`dXo<5Qj`wmIq)*|b^~3FWuw zhl))eY7Wr8A>?ohT&s@#_cb4q%<60P%zR%ml9E?OdkhyY<7EzjPB;y@jfrppvZcN) zq0-|=s(-k`nCgY+h^ZXKgpDSrSBksJmGQG%Gn*1(!vvCYJ8$U*z z_~!uRU8Mb?WIpI`Xecb%f#WEs4H`_UtMuhpvI$|yJ2{Dm>&kpyI@fcF?<67fa*_9=XdK9j#f$>9VvR_jN?)p&D0psP_{3)IAe(d&%!PE#+|Gvj2Y! z{(pH4YOL1(pBRI`K);WJkogq{@f*hAuaSq+Abygg9-aTE$KVsLcuuMD@_%LA{c_pBZF&t3VXgI&NASOmd-+pO$TF;Rbumm^^bJ5gyZlh(m%<@@6xrwC2tENh zb{HJP>M!a!MEV_^?lSI1e}I2SvK*h!VyGd~zXBa>qM^9_J;oud{fy)hd=pH&_KV>= zJ?|gFUow`QLple9u-V}N$ysl+81O*JpMvXH!o+`qY1GgN#vWNJFcke2v|W8MjA#XO zsAFU+4xwH2%dik$U>w0qjbr#s&&py&(OCK&2oMgB;2p-j#I#TO508<*4L%Tl43-_l z%oi&@0n?Ae``9i{1JNIWXvMAYO#kg<#a#%d`)?;J?l;b(^Ef&O`|l_#eh<@zaS`&r z!E^j~loj-ImVO;ivX$5-dpI1zqhRbg9{rV5xk>%U$M9^Jx{dFH@d3xr!HikQFTy92 zc0M|tt=HA?Tm^Nw5&W&JftiPR&D+a4KqP`ps;SvIL99LlKb7+kG ztuSd0eFT07`V8DdAA>(=@;>+uh-t6>X8%g`Po+WG-@)jg zitl8956AFQ6tOc+2u>wGtxc=)@cHOG2ZwMojICEiu-cA3)ecVOI{PO$gs+7E3?n=B zz3>Zg4Br6%g*f225&kQ&^uK^$6>-GzO=I#n_1o}-OmOP8Fl};t9ZVlOCht>s8^4b~ z0XP^w5?KsSB>xwQLym*tzY#|qC%`WgONTPE|KM+b2QVkc(wA@l)BjEI)9T^>hNXW2 zjD1g+&PDhz{db0#`c?VX6n`E4*Gxx!`Z^q;|10?4u=1oIG-lTkorXQKv}auizlwl1 ztcxgnw12IzE{5~SC%B&=25XLjhr%Ipbu#Tavz|E)zt-=%&Ww;_>|DnGUGFson0xDE zBm;VzT z6-2)HpI>dM$7y1dKbMl@cZodLM*Xkz70lpsYp%D-_Q4;aAxci<{@wd*rQ`M8HJrr5 zbw$H1Wd01G>*ZE1{jetaH|pbALKuVkzM-(@%bb))#Qy4b>i$Q#7x_0}`DM(J)c+;q z50km_C!ge*CgMrTvwS%Y-A&Y#i{>`%5&9U|{Cl1zz#JabESo$iJJd%U3ma*+Pf+JrSjk6@5>=5yOIt961I{UJ+`-@FZ9&7b&aU7z1B}a>+ zw|v-BRr6W74;`gT%3{6PYd*~BRh^!F=v+ zoihg2@;L+l-CMiPn3d8wZXY_QrgYBRhmPhvv*8)C!(RI0j1Q!AZrz8D)_^3R@9smV zFQvmeu(z`GxjV^c9pihiI@41+^U^wUO2(%8IhlWCr)2(lb4ortC4WmwJ~t(QYfA3s z+5IF4au=uMM~F@Swv=4;O5~9^nN>i|d1_}~`x-#E;Pf{gw@#}$5jyIV_jAM?)~=l9 z(1hQfV)bDnzqH2LGuZJFvwRA(K=^$V%Z`i1z+#%DzRTPMGE?kweHST+WWkG-J`n6 zy(hS*VwCUmc28?B_s*1U$@)yqO|ILloHgv(pM0YovZo{e!yD!L{mhvwFLUp>bF}MB z^s;CAvIgA(Z}BZSlQlbg4o8U2S;Xr(qQH%V?747^yg+=uug;kznCqPMFF@}gID&T? z$0Vh$+V9f5;7qEJt#_+NaOS(<2Hriz$ghRFF?j@k7-rlIm%JC=?%!XW$#~E1fJ5YW zz^vgTq;of>TFGx?1Nf_)Cc@H@eZ>*{OY|9ABV+hEnEqp#4$k}=Cu}<^gkMAcHvik$ z^;A~v9?k9bbZ7SM{w5fB`};9@${qyG;79%ub~;dlCN z%=#N(?v0bqjqrP5(yjjtd<`7KUx2ao_yB$gz7CfD4-u@&1mo-BKI0;ct(=^GTK`XD z`h0^rQ~HfC^>s{}HcT>Zg69}F!wYEm0bGZ?J5zht!vy#DrD&Jr&JQ=jG5RN>v%n33 zU<3EEXTii9R=}I!2wn|uhNX``>u*+P`rvxw-@=sT8(!olVWX5d zHV!AIiW_GV=ZN(K|KqqtIU5&qtAw1e5g%8d2YHx2a6AoeGM)~18Dpo7j5nu4z8kMH zJ{VR%D4$vIUB-vNUp8h8ZM@$Yf7+-v$=^c!mU?P@1obIDiqLtAdX{}xYEyfZ21>+c|UD;0m zE#U0O;S1pq`5)m5Ed9SIH?AAue_@ym7et$|h00af_!I(h9=YZq+M=*&1mY$jg!MO) zr8D0A>T;N{=@3pDPa%g>U|1Z6d_Ma0iSpEMYLdNSdOp*?W6#p}L5%)MR!?L}KG|(z z46Hg^$hHbp5zbrP*>Uc0@>ory)OTth^P$3~22P~kL_a9mCe|<2Yt#FPrFYX6wKSjc zfA?q8SGY&m^dKjt)tFM+-w>-!NjufF5I5M!I|#LVQyZEk4Q0NBuSiO zZr}75DyO{Yi%tImcj~^kWp)=3>dF_ETa;qPRU*&6S&S1Ca;tRq`q{UNO+Kq8ny zJZGnPPKxL9|DV%Gr)sb|Xv`;RPex~$^(W@tJjSz|my$YMDSfNM>RMX8?@jW_UM2QA z+4rX8?-uv-3-)J8x}4^Oq%K=ijIV8;iI1rI9Gj2PJz~}-_4DR7Vw$u0B4YY^^HnIJ zuHUqz*W}F~K~4S>qH`Opu^Pc&f`19e@HgRK*IYOIBph-tY5)7hw1IN6*Ncf&55=zj z0`hs#Y^QOVr2QcBN2!}kkAI}=rr&S6{KAwz`<{K4^aS&{wY{^xH zEwnTH07uAol$pd2aYO;ZRWQhYT#Vfmm=wE#)#)~?(nSdykI;kwGdiZAetKK(A>Hfdg17hU%x4pBUla#ir!kEVWTMgBfaLyOZR@9r6ItAI! z>uh~@Fgjl&t!|-nP7Hog_u&WOF9D&heA?WU6i*fp^tbZpe~(KyH^4uGCvp(ZF+a?z zUw&uxS)esyh_lPbxd&v}{H=96>5fch$&OE%fB8{=ZxZy1jw;UGAVj&vD= z3T`fv4MOCH5{v8MV~r#D6ysi)HOKj446pZf&VG~oDLcD=KVkVNZOMLAI@T8XqH*?H zVk%1A_Bj@u9k?G$mpC;Rs`=0-E+3iQ?!RG7CHW-jU3Gk&vJYE&+1IMM&-CAxuBCef zJLq@%Hon}Q@92zt8z&tREdQ4u#2kd|54>BRE1zElhv>Wm#{QXl_0lkuzT^V%$}D_aS% ziF`S!Tb|+YHZBjB41MMzSI<~irXSWg`%|&a4~uK^+_DreCm-$ktu6Zd3E5xhzJles zqQ==@iShp&(S2gHHd<`{>XZ4jevgx~!+)8i zKDhlO)pm|z^~^q_d)8j{TOxlpCBGmg|3gYHzfbg^Psz2GxW+0bEa6bO_(`Il(>SoS zIoem{rW9YEVmAR=8()&#>Reyb$^KVL{?3&A?|gGVp-ut|KA+sXbZLAQecDSUbxA#w zzriYv^H^iDuL7a2O#fN#8qv z8shJbKyQCvuI7>AXiGE9rzuVcRJMYt$p*#QHF<8NzpeYlc`3Qi%Gc%injdXAvBt&I zYCQ6c8V^tTUGbcn{G11CT&%D0FSb6gQ-}HN`zCzBtA2NO7v|r>5(3XG-U*DgJhf zf1Ki{QvBx{pL=(W8~$G7(tb7GFZE5OG^Qpm%}DWr6sK%b+EA0Pzq-bY?yYgDP~(M{ z)wtAN8&++>8cvfoKxe{`%?Ug8lU!q8kcTQamu!(hg0&$QvB-_ z|0%_3d%jweHx8-sX%lPQI4;FUrZ_d$8ds#`>r$K=YfG1>7@K;MXC-fQgvAI zdQE?2U5ZE5xSaC0RRdD;l#i9)UX!1CLygO+`K_Gtv2xnS4o>N(#$EZol>G4&|F*`b z{i??0mukG`)Ebv}*SKj!jTfZm+aNXnG)<`KtiQ3wO|xq}q$$Oh)VOJ0iWjB$tQ4ox z9&}MkUP*DvZcQIc$?r&UoZ_FR_}LWyv&PLSe`_9DlV=~Tar2ZEAC}_O+EkT4hn_E>(?*dQrNKioaKd$Th=Wv6oT$uo#mjd zxU*1h@9t_TSAz0(s1kH{6-(uUyC`%OcN8k6t>wl-XIDq5T&WbwJIkd2J+f>pb{7k+ z9i>83OKZ8k*j5fYTN;CoR+NeT{UkSv*cCLj7Mm+UXIHu0*4bSsb@Y%;PkW`MxxL(& zuWaq;N?n$=7Q2F;1xJyO&Q&$FhU^Qfz_xN%d%0Dmap@A2x_1U0?Y@$(9i1H{IMOx2 zpZ9DCt!h59*wfh3eMCcN(-EZr?Yw0$yVBj&Q|iwDXM5!5Qtq4}Pp~xJda_l%ygh$X z{>^Va(cLa@KZ4pKptM4B86)&`bzx24hUS*W*>mzIpPXNClvnRAR<@yBtqGR}D`D=O z{#i(Q_M8&~#ikW>Z|y1<8w)M%O&!>)(p~H>2bJP>`qQ|(SlSl!REo`Xo@=PgSL*Bu zb`-ba1g_hJglAAj&@7oOw!!d(bF09kh-n2&{e+B(AB5rmF*qfEln-uu1e70 zJHCQuXGd#GX_p%;#n#r29jZjJvshA9+q=}#O2KXf?gCq4)w12vl@qtoH9=cTbC;`J zp|jlH*wWsdk~FqdiVdyh#+1kpnyyk0b*3vBZ`%s(3;fXW?UVm`A+s2k?`$j= zySElJr*U;bM?MGgP%ds)X}vqaqAAv!wo&%<%*2Z+EHw@JKkgP z3g0T#7ejR0Wmmbaqr2<|ApY%D7)xzrw3GSFO@`acqLz*w#g=YSYgbRfwUH56D7leQ zsQP8l)YWlOxm^xiXe+lhmRpOvlnAEjt*tIotrbm;LgtuaWvi@H?Cxk|WSht0qebfB z953i*ZqrD^c}vCiB8vgu%)l>d_6sa3ZEb07L=aS38d{a1uUIR7&jjG-r$&p-wQYja zf}>@CRNGj={H*6(eY-4NXzXZb;?sPqA`0E8m&lg!S-swY9`48#v|Y1gPj?Fo8pDip zvpchHZI^4hi|y{rJVxH-PW*#`?Z;AkiyKnD@lMO^(9zNDF59qKQ)@S~$ptR%?5MQt zOfqKP>33aF#jMfPw+lCLrgP*^Mf0f(d$2iUd|P=JlOk@cMY%=GbWqt<** zNH28D5W@gDo!}Ofu8!^wmM1sVSXG;C9`9)AVO4icl8K9yof2UZyqa0Zw>h~g$rFPn z%{-W!`QJ}MUf>dFE^K1zXWyef^p}3O#2%_MeeKgaeXrolQhHR~?o*AmwYf#Ri1PM; zct;t>WK!uWH@W4`PqOVjZAJF7#dc?h+7$(~bTkJ21q|t(UZ{M^?9y0fa3!Z_6Ef}4 zw$`n*v<^pf9q2sR>2*wp-DpBty6)`xd#TU2X9Zm8)++)XqKyAo9Co;ECUEwOuf9|m&X8g zKPPp!HZT-QL8X)3QJF0)&l9fgO)OAgY}#U{%=BJ3#)WVx+Y=#(Bwvw zAAw5kyU+xc)-syvB(KoH9+Yl#SImV4_HdnBtsP#Y=G1s4Y6LR(!I$!O;Dn zqu~P1tW~TF>`R!t*on)2OmNKPc!(w!_RHz3LUDU@u#N2qW1!1z^xXbRdrc-SJir?x z*|-E9bRokWC-*}&b?pphYcewlD>2K2TcL4yZ~2PGsdg=T)~GN~Xp$1^IZJW7mQ83`&`^0a_wPpOA?oundw%aM9-M=aUPc{{ihdAh=n&utL1K| z0fEm2U#)KcG^8{}N=+3#v$gFiFpu=Kx4Yf5&8_l6H7%KIP2AGHJ&|-Z_$C($kl)|o zDXlCuTz9z%8fYyyVOky>3R`KNrtIxO#r3()>Sf>6-Wsk{J#6-LvZ-M!ui@#cK_hE* z)CIdVdK2)|yI*iy8oajhskTTLPP+8g?l zI<*^i6PUIK@rqls-nXA47=9YQ;gS}gy5^t;y*EqGg*XA5QmG!^p( zsL{{%Oou%-Dw8a>Ig58Eg=plvL9lB5#?@<=uP>Z_#`@(OHZESjF-RoIbStvxIdJ-lh?R*h`O;NFDbUd(*SGpt&P(OOD+rNl-QQ*;`=?hN zU9-JiXoS0!I++5sYP+o)cNmYlN(PYI!<(LGl_WiXmFT${)!lO28n+KjPmh|$+-9b! z$m3CCYT_&uo76^abl!MReW-!8*PD8p*Nu*@(jGZVsE3mtUcJ?@P}$X9N?+TKEiH0; z!?eJ^CP+(awY4Iw{)J+9w-(ktitOZ_8!t!F>026G?S-4Gw=Uh3yVbdno6wtDx)>Sw zy7roSN$V+SXd!pK7)svlGz65U75qZpL+|WlyOb>HZ4E)E?{h53Udj`-EB5C1BiJpds#M_KifryVYRL*q9DI}WpCrABAeaL)*M|}efr|1 zuEln_Y|Zk(|WNo3xxsJ6Iz8mDY$3JyN)N56{PKT^$0w)Nt>|+}jONSyUD^RfJ6ycVFA_vKu?R zNMM`2m1oy(EfdtFQ#**Z7KX0s)mbPvHI==2bk)GiFDEXxHMFo72`*sLN7%#x4XQ}!sprMwKv*8_9EVFRkrfb>K0@kclF8-ALO~0 zBY6pBH!orXSsR}fUPPs@du*L+)7r>;Fy0E;(&I0x@0|SNmb`dM28>FzaTIhpNAT~M z{90=tuBemjgRYi;p7n5HXFaVGOh?ef&OI&u=?|CR|G2K%02U*5$hy#nyh6}M zU%H3-3f~O6{Qb&y`n{Vs+g(Q$%B}NQg1TJ1bN&gz&ZFjW%;z|YV*$s}9LI1R%W)jX z@iYxLWc?(Mg5R8VcOGTb)Y-;Mb)LHRsI7D7JtW(^%6zp&)WwPF@I=Sg3%w%L_}-TEBkz=^JZ;73(&vUc0Pzy@9398O^^yt@N-aw(~%P)yti{ zT&R7033j9}wl?6941#Te$UTOo-WvLk*!FS2J|o!r?mzCh!SBB-v{2km`_h(tD)Wn{ z_dk2?@fYmAEIa#9t}lSeESJLOGV{Ox_So6h6L3^NDX^_#T`{lnA0GU|>EH5cQKI4+ zPCWLw7k^HaY#h6BC!RFPr7O^&&`U6lB4*F@rJEnzjjcOe@p@O2yaeGZx%>W6%RMRZ z4L6cv{SCkJd3Gl3XqP9u)y}Nlrm4c~IrMGoYS60cZKw^On@jX&2u>zst&bNnnB2D3 zgvs};ft zUGP(gcHXb*1u7F#)=hh6jt|hZ^*^=d8|6cR`~!<((x~COx1yVpH$t*W|*c z*yM8S_NtnDh>^eY)sts-%hs8WpSie4a5f!o?styEgu^zgs84dd@NMA}X-g+B$Z>uD zoz2&qG0E1jTF6%IAd|wIwRx&uX$#33&t9-!9cwpSOH>387<|?9l|jfhhh-dBvp28> z|Mf1}7O=SP&>Iwe1mv@rUdL{$>}qS^&4ymxdViAl@;ZyJn)V4O(6_ciXU8@@$7`-2 z|HLSMHDxm46+&5Gubo-g#juEXrq+eRd`j?r*TAsRoR{iOW34K-$oZR0Z){3jW78@u zEM0Dp)hutf^%Uq5rHkf01x+#yHw{uh-#6a179_r9FWgMk^}c@&_NMW_b?I?SjP*E; zax={~|C-zF_j^3^fs8k%&Uano_07f9{N&_bjN9hN>-m~$kzps}D($|PyH6v$I-wQ* zD~X5|w}i1q~-TS?hUH#Q!$)AS@0asR#~2%Tslv8Z}((AmK3$! zCo+M3#$qewTI8Rh{G8(6*wwJm)!5m_&!+g1h)bkJ0SD?TQe|c^-}}NnYK!Bbf+O*p z0ey{it@UNq8qOlv=_j|&9bMWP^R=|1Uuf}dl%85QSPTa zYJ{`ed~XkPG9UTZ-TupX8=nqa_;%)hjMdt~`w;h-SbHjEa_lE@%YMLG=D)uIQqWTB zV&@I1C5tzxda17WO0=)Ks5!O%OHnct+h|D7W&RbWHKcJD-zv20;3pKes%uy6*LP;Z z>a3-g3iQ7X&;-1(lzTxRR=RicWwJUCIC8_iHWm27SXax%HupwRZ(lmMvTJt3%H`yq zFkGdy6L%lod@?tvtg@72n^xC;Yo~p;XzF3I-d^mQUufK+_^5)577#gYeJ-z7S{EJ6 z`9!Te8z`={cO(*KWG8CmVJOkj2VBSY4z8Mn-6yH}36qPrYE_q@tFoQfRT|qeNl8OWqv)yhqd|sGak=e?(;}#n|`69m+3f+-mdZF zuZL*Ov_3yaN#>mxpWnZ@)ZBL8VR2TCR`DJ;f>t`ielX)b+0BW5ZP$=-Z~7@4((ghY zF!J3;dtQ{*(E7Qjp~FVDUWL2N+W5IpGb=o`=Y59zOc&TLNcVAEyK=Uw?T>t6{G8AI zoYhyxKgK&on;$7?0Zq~;CDwA3q}0|Jtk}4I@zUjmGuCY=EM2>-u>ADJOV%teY*@8; zJuk7=tvzGe>J|L7cKMnW|1-^X%Xz2OFVAJGH|#A_r>Y-`@R~*MTWrNFcD57)P7RzI zMUA57qWe9Gsj|Zgwzi}t)hEq)3r|?!evaxs{%ocq_fcV z99Qamm$0QNKf79cey@ph;nKTe)AC;w)bROR+C&FJ+~UNfUMNb&@J zX}e_Iio#O992M5HM^;vc<@c7Aue>t)&tdlV4u0`FcMh5556#csqrh4Dc{`g3YFUy~ zO`+UwKNR*`47UwtCUo{mw9+<8WOELyW+pQwV*L)}|0wO;Lha7(I{x1~$ut8~jcuU; zMNexP6U`(iGcgVAOg+;kHDNL*r@4%gHnY!l=j@)_&e{81Qd>=-v?HkGK_taW^B@wi z4-w`e4@L6OhddMsDl&**P{9!kMyWCnf_}cg-*5f*+H0TFB5sni*LU6T>$iTFwZ~o_ z8+S!z6$i<%84b^3(GhjMRO8fFhx3dE_02P>-M=*U@x$cun;+lsh+i37Sne%k1E8_{ zKR0V^xG#^N%(`tj!$Z%fs?;5nJeY`OHnj5i_=_hZH${}v_3*f*MiXKYm(*fNLwApMuiX}X|(T;0@W*et_?+A+Qe0!6QPmG+*6WTLBBAa*dgU^wgQpUz+7Pb6TU}lpm*4oQj={!FMkHM+pkY@22Eb}@zemA zq}X@%-csG?y(P^=+a2q~2mkW5%+Gn|rNF4?dh;&uZbV6^wHH$Q2l_(kr=P<7$ zJVpC;T~rH>?!v-Siwln2+&f@Yx^M%?!Mz~G>e@q$U(`8wCvNl|7kRToa>|n(O7wjY2>{~qn^~HAg!fVssiEFi1T1tsMf>%o?jwH zGapnT%X&20XdS!;o+!9|Dtb-yv)?H}z18^`nJxL-{IhX3SV!v*6gAT1uBR$9D)A|` z+7W156J`8?9)xzC4Vwfe;h;zpEn2U840yrFLzh}#Vpwc0^m}rQHnHr9A3GK{`rZxV zghY)}c{E*Bu_*_M9%eO5=tjukfC);wTwNEy3YYLf3~dmC0x69zw60W5fQ29@#d68~@a4iyahvz^oz{>saUgs4mIcs*2QHKr#{A z%x1lElr_WRf@E8^CTi##L~n7UKM%`VF;iOx#{+u;L%Lu}ONyZo>D!~}Vk=8mTNC!C zY0rwIU~h_8S7}!xt$L^Mk{DOHF0hxR9A?>{THQrkBNhNU;L+fq)p1H# zulKjt7gEnAP9U-R+a@(gs%6N@q})^cuP^9u^c^~~vG^OSjD{7iy)BrTI&(taY9+7=YRXW59Y=9y^_DO_@iSk}AP8_-0VE8U5eGt@?&it0RY(K@Q5lkwz{eMy zMayWOYHo6fn1^OVifG@PC+Q?n6p9X@Ww0HSM}5%D$@Zi_x7NMsN2oEyvx4I>AtDTlx z-CyEjC?Dy#lE5afshOnYs)Y-<(ZP_k44pj_!1EWr-AU)!$N~4k(W&Gh)9{LFhUOdv ziPI;knw8q$g5)q)UGys4n^0m4-Isxfs@7R$hG@4Ib5b7amaXVS@)KM|By2%xvzlvd zu{e>{n7v>snq4)bLJzdt&S1MCE+X^Ne2guLN@aEmZJ{#B0=Xe;+G@MKzLHL4^qkZ) zvo}Sy%-$3eHI|i#FXwQ^oTNitKwcqpVw0%1bf<7SZ4ofOw=XP1k+Nkivoo=H^|dtv ziwQE|hL^=eM@5^R&J^?@_pDN@>;An7RkS^iJ?56SDYzlVJgw0UcU7zuSeA;yw$W-W z`+BpStR9=yis#o$6*97%DK8CoO)7Vayy|Szg)P(n4Yv$3q1&rO!dbqWU$Aynr4!Z6 zNlhs)V!6{^uw87f4aLKjY)TPypd@!JMPwo$sNG7-f>ec6gOh$<|LK!@upNjOljMtpknNy`qw8!RwOC5)3J6^GTuEq zF(qwA=fsv%PxO-UxBGMGc%~gSa%#0Xw$YW+T#1#*cf|qIT5WUe72X1-wTYaMK2(AH7bXKj;F#5?WHwcBz>OSJ?T9J2>B#3B(8)-04c)Q`+Ne zYiq5wB@{DTQp>VP)=n|u7GY>|v)kgK$rhjh(10%`c zd@*Pys3b4WQ=(VjgG7LmGO`iEp{K%O(W9WhiuShd{q?+VZ=n<{GCNK5<(FEupA88c zG`(i_RjE73#kym`dk5qC^_yMAV(M?{4(|1VpKTlwRBuERo9-1o>8F5Ax;W)#TOBAD zKkFCftUBIl)D=5UZNEMNqAyv2(uElI)ar;>Bgu*cSyb!2R%@&7M5ZZcjSXKcBur0M zO+s!C-|EfTpX(s7j{7((gi+S1UEeUJaf+%Y+TcSoAYiBKS*63+mbpxW`r3G8VKaKk zh^yrw4oiil%mo53tvK;Fyc5i+5ZyswW}Agp+G(gG`x`V85q!%>Q1b&{kPDywg3|(h~=x+3iv=nT^KXrD)=A&!gKag_y2wQl>KA zMs`|vc%q!y%ZSce$+{RY-04J4>Nf+Y-*-gZL65DXQ-X|HU7A+sXmxjN8l~GiC?-*` zExXg^GCkvBJ(8Gs&zFM)=^?~qk{Q`(6W?4~-C>E#DMLi__4ezypPB!nd#P{gfe?_W z&ZfPl?KTU6**N5P-3jZMWA%DMh+gNjHG{4Ir&*k#s6Vn=YeY$ z_$b-sCa<}9Xd!HLi3RnbgNe<$cCX3~nVH*Rc!{PWp_TMy*_%#U3iQml=s0g+gN*>Y zL!v66=VS@;JE_jH6i^|b+mLY>b76&-DmrLgYl+Ce;!M?QY6*jw$IpG|}eHE)xDg`K6bxDMZX3K7Mmi=IBy`du+1%kLUtAhd8 zm)B<5g^gNN1!gyvmu^%RH;95{w&#?vsgKHvPY^M>?i^g$nP_Y-yxD;sW>PTkTBZCt z?w7KfR<)^PS^1*W+Vx3AC6Qla-pg|~tJF(#%tN&PST>ljYR{n$b*0;^86(hVE3#dU^4t+S^0_8h(3>4udD= zyN%pn7{XpyWDp(2Y;P@Y1xYC#bQI~>FpLMK=^taKgBy+!S#f`{y7-~mhl2CReSDZ8 zS-93&?Kh}w9|J93lUn5k6I&|7ewf3e4%NP%sNl5Y*gTKHj^*0o3dJ0<7W=Hw5=j@E zddlUVax-hh=+Hw0DQ+Slw^aZwdP$4TI?^|&E*-*QWt#O&gSBOr8QMW&`7wV6OyQId z_kzxsnALXB7&qJASiwqBTK%>LPz1D4w+6K{-_%BUT83^_)3n(wvO|k40QIX)4sIEn z)Z!Ln5cAj$87`KrXU)d2gIrz~U)C(8_17o9ZVQRFQ9n3+v(8@0trKNuc_hNe)x`!k zH6EX`uBkLBm-uTRGmmGb=9rwnr{54_Zc4_&II?PfwQGU zJVhdk^9d}rJGFR>cVIEyNjzi1>Vh|L6SMXmxCxgWugf~K$O#Z5IW6Y|?98#vnhT%K zA9HgPgG{lzE%ed=kUQJ+bu?J&qDQ>&kV@K6jNF6pIbM6pGsrNZuCJ7b5BVrY2UDA& z2$=`r9G-f%ERQklMQ_Z^`W?HDH0p;>qFC}+g&(no>r;3Dp_(1!(|6LQubT?KPqSnby$cejA2WkGx{N zx_Ei=eCzzV$=9&$D`mv`|$?f$-It0i9Ts6>|_88cE}C)hkY z9G$>xFMX-0`(?sC-K{N~BT}>>s(KI@D=2(d@Q8V@hy9!DL9bImZrWL-Z)1|qtzq8> zi?3DtP?!N{Tguz45^RSQ;!e6kb>y#xDE@9 zN_dc#EEMPSfaK;5q19=`w9OW$L3;Qv+iQfJ*6>rruk(}Hs;q1^|BSC1gyre;EiHq| z3$4?v8&0e6n7Vl3(^_N!J+SrZ3s)vjC%-F`#5k=;3}B0iYIKlI+sIrU=}PjIS?j<6 zG_x%hL<>c5r>l6nfyPML57PmZ&y!`B!0MU^lp!xY@00n!n(MB>XI@{vN%`>alj3J^ z0%NrWMWKxf{-D@*QLoV9H-&sD$a1q3yN}8x0WM^PdXL;iG&;X+MXz0nGJwr4J)^KJ zUg3pHn;|L4+hU{=hI!(qCx(BftZh}%_0AsFWWMRef|#)El6qXljOCpiol8^P=-HaS zv|$!87)8g0K`#U(FHE#l1sUNYDREw{nP}+^J=#2Iuyy)On`iCBbRc>fH*Z4bW2_2i zBr;ZOM#Q28YfT7}J3UEabAst-ivKYcQB{#?)q1nQ zH7<*>LD5)~c-q{Fge1Gv0~e=WM@95=e#9hjP6q4=T)J{;>I_RO;a9I*zEJw{A_*jB zwNA#-eTsc<@(qqjPZ@?&o(Yk)HU%Ol9i;=57A}X0uiQ9iw3tP#Th|F>X3q}!D}r>e z%d&%z7#q&b>ZS=3LOc)GWpu%gL140wD2{&9`;j*1J?#o82OP@KFiw}c9NC}HHp zNNbXb2v*Nx+naG#hqF`WeY{|lv|sE1yv`-n4&x5bf+8xDnuDD~jxnzAbf*4b+9AP; zx1)Ru%SY6*$lPz_&X~v`7d}EQ=k+Zav=72;w6#v$ql2t>_lQynnD^f@vTd6(b+3b_}=WvtpK&Cg`** zQw{C8xn)lOyorJRJsr1_p-Hx^Y2Xai5ywSbD=!W+6rIdEpCt{qW5MPf224J%Ha5Bk z&=EQm)h5q^a^u-FGO^u4?=h~((=1ZNkl-Md%`XQbzUo@K<3@73s1;K$J!`Nj!bEm} zHB>ZlR+Qg$+9`((l|1r6vGhiava3nr2m@HN!#4rN_UDU5q|HWy@s+gE%-P%6zH=|f zOS(3Ed2iql$GUr64WY5_fC<0A67k0SWNhgnN_Qp)!C3vWW$UKER?Rd|E0%|qW9>o> zuqLJMBUT+`l0BFPsT^uOMiTml??OUnCP__#OG%~^H2w*?krpMj1z zs?L(3cDkQ`=^B-^U>Q*ye~EHl9Maq#lu{?E3#xrk@+Vzg!$RLTqKQjXCY9fCP0i<% z)mK~xdPPcqTF97-GV-$v$DpwWe(IKSw#mNPO1vhj^2{OAgdRkqNPjwA*^K=nqrAi8 z=$gVT`Rfb0%JXsFGT5QB(PF5Zfm_wjOj1+|O3Z`d8tn|JL7;$FXF~skm-52-!lwv6 z%EY#eUW{?yIU}AXDKo;W&Ios8v_nfMnC>X+5?;yzXI_`xvnXnzETR^c#c(Y&`v+~7 z>i(c27!C-jKS-2?DLeJ*ZnIPUW=f-VZzPYpFQi>kKSV>bh153mHA|K9$IGd(itA0S?!zo`H%rbb(EvCR~=nnvm;KAexV#y zKP+dem2LrRPo%|5FFcCqN8x6>x8el86H&1>>k1{BDtH6Bx!XljnqmIfu3a<3Q+uu* zA$BZDC}o!d_R6^Ni#g04CuPcE!Tk!mCHTdD;ZK)ZyVrBy=UP3u=6hAF{J0+V;MhX@ z2-)KZq5~mAgJKjxnvvTPDEhjVyy0itGyqn6}oi&s99$b<|C zNd;Ub9l*LApjIk|h^!tnx)tt-A7i?~4E)uzPKX%)A>@FZT|p>u4h=dn^)0NM)b;g| zYsaRN<%eT=GK!$4?lzoKe-)=d#Gp>+jGrs0q{bL>+7f-<49)53YdTCS%Lrzy0a^*V zh1xj?g}~98lwZS^(R4UyP|Of3A>2k$*x4xKKwgPTk%UAbIl1ON=B~ zP#=RmyN=L8hm@<8nR1r|Bq9zJ9fem$G$eNxNxvF`G$%U8xCYL_iQbZ-?l2=KxQRCC z(S4c~g}}+hN+vQZBUPU>!JoPfh9;6budK<%LKfgMvMtHgR1Q_tEDX^=Q~-{sm6?xU zCWIyyL{q%&9Z5`dZDXbyC&7NFe$9hkXwy%1XGqe@S!*wySTYl^S{Le}T-GOZ$hyxY zIueax6C;U=shxy)CJDB~R}Jzfc(tIE&}DeBko0QmJP(g+wYU_hmY304n;pr8qz#6S znG;#H^0o9z=~=8{CH;)~C62Ge>^7OR6*Xj}B`$;Cuao_YEn??>>HQm8Vh^}y-a}r} zn-ybJOW%0RY=Z1-&f9cvm0{Fz8g4U=#yTvFk}Yj|YeMfxL^9_pYP})Zi|4ldu`Lh5 zODY7Zy*e_qCZuA58nUJUzj08%NtS}(5J5iIPmgKOu2&wzYLDgnL#UW`x9mlDDLmNH zwq2f8CB{|iFR8-Xo9SAM^hEa3x?l4YnO$_kFk5hjL+gLKHjFVcT2QjV9wZL zuKxAg_Va^d@f(9D_~!rq^ZdWXPZR3*g!Q|G`kl%2JB9onD}+Fe8$Et6@sk6*ho4Tg z-_)#so06#fMsee4)p(g8g&F>0)j0iO-24Wy;oq(r)BL7k<6(vm<9?K3{Ve0-zz?d% z{6}%~8<$FdEDIls_)%W-R1to*2)`QP->e#4rSAs*%c}7;e%7&h z*YOMQuNrTC1bn~14+6hYHSTZ&atH!tZElK^_q}p@z zgH_`@N5J&I;j2~S{?CFBWccU7U!kMtOV5v&PJqz0}$8530t;6dvt6CX9RUcotvb(Z2DI zR*fUfpS@iVA8%F7z4XuC+kscA#t#+$ZlqUzndf^SW|;c!E!wlUXwTj!5kJ~P5mw)E znIQnnjbcX4_eYYIfznqde8Ck|EQX0!Ht8Czwpmh z^St(*DaY6LRLv>s*O)HwVu7Q+*Cwjw7ZgA0ckQ>T=CtyT`Wa?VP5a={uU5@@mH!U^ znJ?G=q-rjbzPUf}KUB>=;mvW!X`M9BW|(!-jQZNTQ2MJ89_yqT^{>-!dw5zWX`g%Z zaMk=;Blh@Tpr81tUTeJ6FBzgG>_8$+>HLH(?9h1^}Ku6aX!C{{@`HHny4t_h<=Be zPxAnOgsHPW%|-t3`_4!HLV$nNwZ=GYFM1yi;x|^n4{+=Aj$=y)Y>;oG&u>QmqlNk$ z*%-ucbO{GvI~Cy%1OHLr_X7W|W228WH~DBEdGmt1E7h0!zxk(usYmr~@V_`#J%n5A z)B0HZ!PCFu_(%WU!{NG93_PPQ!=d=AZ_3Z34~*pV%poFO=Etq=_p!4C`*Hsq{{A!Q zg8;STL*!GG+q{qe5&VmCoAh7x@8rY$9r`c_^sz7HrNzxhXMAM`kwM!Vt*i*Qd60*1 z6E92Od^nu`>pGwmKg#?15!{L&{rUCNxK+0ZuN1Db5*DG${HyVK+)A6mr*Y@;y9K^g z;M)bhTVVBLp5Ma)KQ8c-0zVzb)@@mSHV<<=R>U7K@I-;93OrrlZh>zV_;!Ks7WjUF z9~Ss=fu9uk=`hyN<^5^R$0zWD6 z(_w7WJZtZs14Z~)fyWCxQQ)ZpPZzjb;9CX0UEsR~zF**n1%6!MCk1{wjBS}_?caN# z2p=o(c!4JhJXK)r``P}mSNl5XmF7R6gzEj|P1%6QAM+JVT!0#6Ly zz_$u~yTEq~e80dC3;ejiPYV2W7~Aoi)%Se|itw=lj~95Nz*7aDE^xQNw+ei_z;_FL zzrYU*{J6kR3jA~!Yq<0A+JB(HV+9^B@I-;93OrrlZh>zV_;!K61J3rN{ogI{_Y3@Y z1^yv8+h3m52A5;eJ30PXfln0pbb&7ycp03{r)R%h;NL0mw+gKGTKb>(sSkYcz)x03 zjct4sMbV?5zWmvvVpv+69=#glTji&FR7$V%@9;mBU(AE&6s}J`UcxE9+|OsY zOds_Z4`}F<%9rO8{-^x3$7G-94h6{L%PYq}0H^d3J$*el?ymp(M)Ha8ygl#Yw_E=` ziulS${r6npRKD7!JMPZqH<}MT{+~) zL1;iGQ3Mr1Q7L5*1r-z!2Q&gAs3<5Ze1g2+f1iD-PNvWAz4xuR-dpRP#jW$Z`|dOE zGv3?b%o#__EVZ;`(Y0j%%$j#mnq|koqbbczoM#)NdEcf%=Wc)8x%umFOVYXdYwo|| z{-4}`(f#M$U+Vs^+<)5rC)|I`{YTw@*!>6Gue<+E_wRB4tM1?7{ukW8#r@B@KkEL~ z?qA{lrS4zk{sr!z=l(hF7w(_t{$lrs-5+$n*ZukKce&r@{)z4%@BUo(XSsib`-ixH zko&p&`?$|F$hYQR?b)_QmaVrwH@N$*3;r6& z%WuE^_T8l{Yn6PpAXj{+a4Fm@!Y#R>Z1JtPQFxw)-@(I=;ZY2iKA-B(m9(DASG@d} zZPF49PWP66CqmrH(pi5c>9pUxzUAvU^7uA%UkqOh@ud04J$%k1N<(({ux3Wo8H)pgf&OWFf((h|Zc-dS8x ze$x7(!tT31=&gYrO(Nc8c(Dg}6Z~oDZe^wnNzJz9CM zLx__dr}ZHHQ2yUp8Jp#Q&hD2l{}vl9HF=u;=zmCm`F3A<`cE#G{!dqt{$neoUtdZ3 zYtTOLploSA({y9~G|T_sa_Qf{iuCI%q`!0}>5t9s4SN5}^TdM9!#JjKU}Kf9lONp5 z#(~E?Uus{KQ{zZ_4wi=OgA@@%3EysO9(AmT^`d#UuCM)k}e$xEDvXXGIU00S)w3jrUhW<+8e{Ci4w_o=sD@XhFFPeYS zhM}U`uY1kqub98Zh7&BqcT@g6EyqgAAIDMEQ>^cm&7=2teyn{uE&7K3lIz0wcr)#b z+S^O6zsK@X*)ZsJZuh#~FQR?Qh&s0m_VvGE_fL@C%Itmz()mwzfAFj$LIzjyd+i@v zY(CNB6F(WQjpjF$OR9YzdRo-3<;HDh4MTBlo_!boST0=D3wK#oN|qGMgb9|60#V4O z->JYJYD;{@mve2$g3syPg)+B)PQy|;Gc@*9P-U@jg-Wo2$DzxfE`ek@BmpI3t%Ef`Q;bpE3-1jUG|0E%!{B_gEPEI}N^Ylh)=^>d*<-7u=1~p`7>-~hyM+~ zA8`S%N4`&l>+t5zs=V>=NyxJaS+*_wK`|AuH*E312RXOFhr>#%fZJe_$m;MQ+y<*~ zOW;m0hd&B;zy*9UO!8Sl#&3XS&vp1~&X2(l!HRP!{42N{&UVVO*Wf8&4zET%YB;FF z8^cz19&Q6qlMcLx^C9p-u;OfkkAv~Df}ehuXH&E6!!FO^%UoWEZ*g7|_Yq`OBJp3)^3Gk!NTf@I} z&f&i}9|-^3c^ce`O)LKC@P^I@!CN`cfOmDC3Gd^4FnqA{A@CgML*WlP9|kXg&GyLu zVz^J`f>k#ga25N|H<61+;qzU;4qpLdrdhUcmVM4Shi`+;9^kJ!XZtZex=sOq-{p1q zap!#hEc-Ql22s}Gm*5X8{sXe?Z?2Q&%**guhzocelf~I^9e#&%b|CEzt6${sp77>y z0q^fzho?Kszz>Dbkv{xB_yRbaPXC4{DC|Ml7i{eg4?1TvIE#T5e-5AJT)-DcefY|# zKQqg&gD;Xkd?);AxPA!z6#lHzIxNe6>RgAPan25BT!KHZu<$?OJERZ43Ev54M=%UB z8GTtg@Vf9%kVbv_u(Ag z9=-%F;5}fo`MJ~&{D^emS+Me4z$d`6y*k_tKMHd|lMTQ>1ao*8{t;ZjXTd*)>+mPw z$KdRJ*aEEj$>A@+kHZE0b@-=n9sV|K=^oF#23xt{r<}7Bvg|qM9DW6ULh- z;a?#x!`Hyiz&U)o>lg5Su+lAAKlP@Ea~4gbhzt1nDDUL#5q@5B_$_!{xDKzrcHpJ(da&Zjy09;}1m^HW=Qem3 z=K`MYJPIEJE1z}v{qXM;wo3Nk-@^sm55FiKcrpA3>2$MZhLu(Uf82Q#z6w@;>hKp` zp3S3=!Y?Z<{5Y&S%zs0@I~VXjUB3>mzK+`-yb1g)`fAv%;CCx5Jk_~?4}>Qmufs<> zFNHf{s~;Mn2CJ=e_yYLPZ~I{EV5uMLvb%lQ!I@U(8 z+!kB~*Hy@spE}p)oE6t?F#lya{3QV?FuZ0t*SErb>$~9ZII9i6x11iLjCvZYa2Ina zeYsztw`D;4MaTAP&ms>|V583Erk<)i`+HDm9j}}9tk`45fa}8(B*Se2<65^iuc@;o za*G7{M3`{4SKS+akL$|YmMiCaFY-zFZCulx2jPQZs>Sj=8=i*2(-VaHh*dSK16Z1v&m0C3ptBgFihR-VrXiE`Y6V(YegIfUkG1!(V`> zC@h)MJ`A(9{oLKi#pfY=(D@?xC(c*EzkwBh9sYxJwigr-;pZ;r zUEzBJ$38@hm@94XfLGG~@EvfDCz3UcvOcnQ20 zoWt%)dje-5r!CIW*r&EpJ{1@KWdN;lDcH0P8$K`k#Z}a`}z$x*G=hP4H&UH^UR1Z-MuO_aSVZ zIP%EY_tEe{l4HBG;Tfdt z*WoQ-8z-=3ccpib?j+=RHr~pP;#d;PTcErTIx6od*Lz`H>ui3eJ5#Lah$^hH$YLh> zp{~PLDm%`ZZIU^v)#hc*^@)w@S!s^NWNM`o%(I_ywt#g!KFRU>Dx7LvJ zS`_azXUfoWwlhhRyg7^U17OVaMd+~RvU&VESZyKq1?L>T%ejE-&UN_vQJ>hKiu&+x zqdxp{)QA5GTiL0sH8=5ghc|I9;H_Zk)Zv|-)oA-fefXfL4LI_kL!TXMjzMOWuE<%B>#lRnZuXCReRLwWV_%c30ZQYQpYH*HQsGYg9a1 z1583c=4}_aA6agyv>ATkj8__PCM)XEp7%ko<}$qt7;!!f zKFwL4>P`AbBOiA8v9Q`G=ZfQ18+?Mx3%CuIeb%|EF)W#NSBh<{_EmfJqO;H+sty)& zmHmDRe$J&iR&f?w!|3B$7x8n3Gu4@03{#&rpI#f}+0FP$`c8c5$l=?b>t1B122oar zKjiFQ>Gq_(ZgZyljVYt>DEgTs+dRX{v1&*5R>!L@#pAH^T*=S*1f$ejmcGiH;Q2L0@Ypqt%}uQJ|)uSUEdU**x+ zxY}tJ{9|O7;mbVrD7+{5Gz$ z;VJk9*C$|=Rb`PaO~6lF>6+%vxNBj(m!Q7K+yie-A!1rL5YH&Goa<)zbNFpsx4FE4 z?{N7je3#4X@Hbq(6u!^p%G84{FT;<(W()9B@Ga=7E?;o2!>>83a!X`VIytmmNV5lR{4CC2w`*a+|+O7nKoOBjB09(9boB;Jb8k!G^h2y zXW*~!AaSKHq4Rs!QChFSvggE=PW1dBE8UUsoe3Y6@K+N4Jp5n8iEI6)dCmN+_Absl zUFM#J#PqBz-Hdc0*Ym>W8eqyb1rwKy9jiAh*MRa^#^YK9=rrrJ=+8BAC`hU z#&pa^KkeM+&+tlH63AUif3KkTN<=&_*pcb~9zMk7e}z@wWxvO>l->kX0i+RK>3*KPh5p7ox@dLg-z|9V3Y)qdxris86H45%uA>qCTvbYsy0%Ud=hQo-Iwr z=-a;4qa3~UoOAe{ug%fPBb>|dG4Sf> z}PI(!3cb1-p#%{hm^?_9u-!5bhg}8u^fK}(kM(j<c2!X&9a$ zW_&pl-cfmj&w>?Jw_sBHJn&ZPhv|v56DXchk2(UG*JeT1q@E$GXAKnk%6V{>h(Xho2 zx4~vJ@X7FA=+t5DVJ}yl*!2+deUKOM2rPT3!;4{S7uxMycwcmK_+pA- zm60Ds{g$ldXU+%0zj2-hzu-I_e#QA9_$}ud@Y-94bZ5ewIUfvf<9rCL?-G@_L*dCT zKMdZ<`EYn&=Of_5oR5T$c0LL|!TIQxtkmUv4Dx>G+3;!3bKs9T&xJ2{J{G>i8GCB^ zo-;Po@ihw?Wt&j06XCU;Pl7jg{vf=ia|NF4+y+l|Zin}A z?trH|cfzxsyWn=`D%|7T-4ce^jn&p%3z5qCM*j?{NR9_@dhgr&oCi|6np?3{!v2`@-E4O>g(rzZT7gfB^0VPoE|LLT!b z`8&Ms#pLZA<^QIpPRrfSsI`2@nYdaWb*8Ge_&Ka?PF<1UHupGxkKE=Rlr&aroXp`k zKCAvUUlX5wTk~i1*Hu_Dp?bFQQyIcdMqa>gxI7!nI%J~jz#BOi@Yc?CSdOkew#|t4 z^}OkJi-fmKc&miV36D>BQo`fNvEtYGraa5-7V`%04{J;;xDIu$!*gMkJtMBFv(oEv z&f)WUES)xZ2>HA53$D|ga~^&arfTfGCe6cD$Te@~T-U-D4;<4fU^(Qr&%F_ynEyMH zu+kyPF*&}z-`Gb2cakfOd(oc~h4?Yf`;#~yan4;&I-1HJLq36sE<-QwMeW*VB zVU;)MsyP?19C@=dO7V6{y4xp=jcJDujI;x!Sah;4Exu8-K2M2fGko!Tm4L z*&VL?GrZES+{@vu6NoPYQ|q}@N4@Qn#8-y0B?IBo9V2G&|LI@X*GM=;CVWONu-%(z#18+wk)dkp%nGxm6As&L&lXU4~|Cp*(uN;PNlzs70KO_C4=J z9@CVZb-TH(kz=NI=At~awhxZ^Ms-_Xg91A%<5SU>Jcr$xWk^OmwkDE1jgx&raKxj$ z#W=+=PRsLhaY`2B+>>-w&l>X%h1pY>i(^8;-7MEpTj;#a;)hQ{Zt=tJO2;Ple09Q~ zg?}{OY<0}jC~F*N4`NR9B6|&MQ>|l^cEQy~{I+L?=fkFtUJY)OKGzvAdkq^~&U3jY zj*DT7hk{=1T!$OuItKj(14m|8(3-}2b*UEk=x)S>(b41-3 zpOvm$^c9yJd#LD2wx17oCH7O3U)a@;i4YCY#Nya{}Y(&F0ExehNzmE$*?H}T|31IXQti-2$SJRMLy>vFe@ ze0>)ZMdR=2d%4+`H1XCR;%A#(>~Dw9X(i-jcm$c;?(n5>PUI)T6Of6k@NBpZJ_WuE zodVY1DvNU(`(pSriif^(HLQ5*@OKjaJ$#kRUxiiQnZ`oiGuWI7Zw#vpIlPr~8@wGn z33&k@08fK2f@eEl0aswfISTi{S1T=8?z74pV_^;XwXnw855t3q3-}WrwhmtjEB{O3 zZzcRY*OB~B@O6rFO}xDHQ&>u|OK>rr?TsB`sM&a>b)7}cx|9)z!_ z(hK+uSmhms&x5DIb@&SS5LkapaVxC+KL-EMb>Nm~oF9k(;QSN#4d6f=lnC_&%rw9KMp3#Ssm_#mFK1Kkh3+9XYQ?Tkp?+%`Io)5q5Jh*YzGIp<^ za|*nLGvAP}z7wqZyg+|n=Q_;a^JilMsi+TM z18Y3f`-t1&*NHOQjQ$H>4(9L!@S4(re+*woMTnn)sq=HrQyAPr@(|srs(-&Z4Q_*9 zLSNmc;Cc-%kY5D<8`eVL3Wn#_y#rs(u)C=<_1m(w^EL1;u-amjOYXzOQ^%i<+}fS{ zBjB^~mBw87Bhuk&cg~4m2tJl@bw!5zIL|Z6c{=h>z&R}UN#~1@EB|%mH#$G&I-f#k zDf|uOWd&lKf6(J8!*Z9P6PYA!zw#71i;zdR*!el+IQzRv0s6Lg`7`n*uJgKcndhtT zBdzdn%?K2~l3fS6`mEfh@Q0GL5Lxau2TRwhp%Hc)^iNOp&v4#(#kA}jm;I2R={hrE z#jCWBa(&&qTT|^Vr+iB1ScNqSeKTPfl@24PBOcE=o(7)P$vMc+by?Iu0{!!lOGoiv z41YAy;jyKAIdZKpiRYarVSIqk z_c$McFIYDI(s1*>)NZj_KqIwHj9b!JZ%-0WthZmo7kV5o!{}JqwO6>v<@$d5VmMbM z!IfedZc9;5`B!@X4)K`gdi#bkQ#bEQSocwXyF|Ww!ZQ<=KF-QD9f;*R79E7Puad&2 zJ0C);@+g;FtOxPsuCM*dmCmlysD~?DuD{6?=TZo+^j+@fkycu7tI{XW zmd|1ICwK%p3ngq;=F%Bmj9=f*iVNiKN*z{uyDMGdOjxs-Gl}yW^ySV?I7m3JOTv!2 z9$xHH4I4whv`eCU14`^M z@;dwwY;!661Nd*qRS}QD6TqCbo^qWw_&3f4{5$7S_>b^y#8HP|fxiIDINpH2BsuHl zx8OU(tWU=<+1@Fpqpb;l8P@u7UHA}!YVD@JH;wCIcnjp>$Kdl_{xrOe%eB7K{$vu* zUV-&Z?^lRZgZ>Wad=1uGFMhL{Qy;q{zgu~L_l9w;H!2Jc&&H>%d3KY_rn%0|+|Pok zCexArEv}<)vp>pxSwb8-))$XQe?k!1@2#%yIyMHMgpSH6SA{>1j>aK()NFW8wPw2M zPx7!BRzH(F)wv9x22*VNu2OrmFM7J#vxy6Iw8yitpZkxaFJ7NZ`#^D->oS*5h2uUj zhewf5CyrV07o3lW?{RK}zYS9lHlOSJ>Kouux;9ToNAc~KuOqCR{jOr4J@6ZSTj zgV~+VIsA3!0{*UZ9exC+>^9y!3r|5N_X4c8F1Y>(Q+C^{zXfYABG-CA=#O_r{h7cq($S=FmNyFOrV4 z#=wI;tlI7<=Q@0>^HTUkSY@Hx*jYfdw=U#r(*k+4jZxSgL6~oOPCaLwnAjRo*i42a!L7FZT#6-7?qX@J{IFupDxmE1p2EdX@Vvd}+Y! zFEFl^t`c48JI%D#iDBY;B-V}OE$_8C;+z*fMf7wRaVpAQz7!-xAikuntdj)|z@J=cVv|u=b9xz(>H-(T7{+IKK*? z;QZIsvQnEf|DIjTJmm2JyCAUW=v=sr^4foNAZoqK>}HV;D5|GjtN$k<4m`ZLad)__r+(+ITC4 z?|WH(N7y(m=)$)F4n!MEIOtZE0!HP$7=@~AEOCNXUNUG%uXU5W& zTb&s*TfXj0L0W#`%=lS)(ixj+dC8fhjFwlOIhtsB!*UZ7CLuDIb4r&D)Nyi zho6L3C#@Vq{58CWm`Uu9aI5kIzX^|1e&F?IhPKe)v6-{}&Ax46wM!1~>RiCno$K&1 z&Z_M8s1Faos{ewYMb4wJ%B^;kfDVV!b>0j&m7)0)7uVIs5{=EnL8Vh4pW!*WtI|?ct1t+8PJ550E~*5j;iu@Rl&i z+d0!DSovIvd>7{z;eDK6fe(OpChY6*AufNN!k*x)#eIjfHi`Yt>%*tQs*^JOG3Tl9 zMb0^VC9EvB!Jmb-CMn>X;D_K*_%3)ClVbS?GtTJXSI-hYa z!!N*xAkN`e;oZ0X<+*?tJCDNW!8T69pN2JF$v|#~)h;=F zCw!oIYu>lPXDS}}`>@r+HmtAUY0`n8ad`p%0k(RE-+-s1Q-@bOl=ru=HjV4Tb{0FC z{WmOez8z;1^h?pz~{k#k`DYS_+_{bUkU5~6`+3z?mDi&NFVmP7- z1phhb@bU0Jr4P5k|0R9+WcXijeiUN@Y-eUilfQ&-O!%Ado6<+;NAO#U6aFRqZ^a2e z53A4WAHVwx{I>MrH(-W|tbjKr?Tm4@4wqq@n~tHM!m`^OJ{VRVw!wNYah1Zthaqnv zY%!bfTHuo6flr24gZ1xs>)(?b1IK@$ge=%u8j|ce^;6s_=s)kQdvwle#s4sJ%MV$* zz`1NIp#PbUqI#hj@3_O2kKjr#Ch~cSybr#Zv~aC|MCUT+r3kKq$(yZX^>>()q=nPp z(u>!(JNvO1|3vsP%gRfCL3S(gAh)xn_wzj~V z!<5gyCEOv%vm9SR=in z{mflyO(h!KxFt!PYbEkikzYtymNWM6|47|Fr1OC5qMJLf2N%xk!*%BkU@IuzhH&on zwUP9lHbk0h2E?I@n zO^ME3tI&BU(RpGOI?pFMudPC7b>_fWhnv7FtLKS{&Yr8#IV{mRaTPj)iOyN8(D`(t zbK@#>zLx0xU==z`6P;IAp`#C*W7#)^S6223iO$sJbm$zV5$~JgiF6cq<35zgCnfUJ z68UzC{PaY=Ln1#Tk?)kq&rIY~6L}mr$cJgH186uXb7@_J(8k-wH}uFgPb-RoYc4vM z;@7#{l{QP#`f$Q$C46?mdlA_Q#DiPI`P`NE zNObxW-m}R@TJNb&*5~REY59n0^}MIxSp-^^xKIs&2g9=K)d@F?Wkhb%AG_cI3*$8M|(*N2aS zk5R<9&#g{-h`Ht1^f&6H0i@H!e=N>UQ+!Po+5qtP54adz++~Ia%UUUkno3*=kU8>>FfK} z9pQ&yebc%>d-4G{4qtuLgq^N0yu}SgFguu@E73=r4N4vzDWA)K^}xJmOlJr zSov>zN7k~`nSTSUYI*n2t&z3d;yebv$9XLLu=DEh zFP+zbUvzGTUw2*;9{au!=Qwy>=e6K1o!5qUc3ua5FRc8OnQ0D(`^kR}&w&TvHn_vN zfcs&@_V+obIoFYY5?1}_ql7D*^f+Q>L zK*!h_IiAI-Z)!-wT(rZSJN^A*5AoOG{n5v@p3J?w(gJ7l+*m90CeLL*QFliYJCryu zAzLRL8{*44@Cly{;7k2Xd{nbb@G-sYdVIosMEpfq|L)J%@#P-CSJ=n#74|py3hS;k zrFl~t^1R?R@@i`al$kc8D@{$p?3D063GWO4IizXd*8B@z?D4BEm%w?9k*w{PggrRn z4|y0=#~qT$Pfz3%6Zy6YPfB=l!rQ^6<1KMjS#+iS6P*L#^@2|8M@VZEXN^nlO6Mhc zI5Y`s=e<)`O4JgXJp<=TB)HP0dWIvNbuM$( z+%ETN_vJl6Jh)cY2GNx+=fR`M@ytHbyy^Q*#g|8I)UM=SZe?kG#-F(-wbE71n{ije zPm$I*(o$CR@4G2|IsJQ8_u&^@diTI1EBo^(epWh^_s{Unu*&{7_&aa`zv=QiTsk4h zRiL%u`=!sd&DN~Jq|fE9bWM}j=|#8^`s);&uPVfz|bPj;8mk!s# z@C2|79|vCo=kN#NcfxhJ+gX*j5dIvp96q1t(kbB6kl%#74xbG_gnTLdDcIH>7~FNR z@=(CH!&X-eJnl;GLjPOH@vKcBfEAD2qpi@Eyq8 z;C+0r)OBx0vjwv<3R^O7C_?Wo#MY zBk1eBjNDW3<^i*3U|j1xC_eAJt3SgleI|+1-W4IFcoyet=wBXnKVYvp?XDI6Ch^Iw z1AohTGZ=dtQ%3$C7&A7fu}F20b8U}Y+{U$sa{<5Cc@#brR(sXq*)Xp4+nz?OXZ`&| zjNddUi^jvq*kW|0@4B44t+Fq~v9|8IXZnK zas8^of3F#^^e}uP^$`1)^7DOvz5w|G?hCF{;75?xVYwekhYC9b`5|Bqe-yU*hcAI2 zN2h?Vf`6j0@b$39M%Bfg@K5n`?BpBp6Vivj1FQb)@DE@s2L<~Htp1h5&%#ehAN~`p zajy>R|4I8BJPnHD;GZdecvJXk>BDkh<9p{Ha3ePvorX&Nb=~)Q*qAoYO7Epk+$Lirc()zV4dV6o`09f zPfp~&Pvi>{`Adnsw<$N8Mq)}c9fv>K)G3{paCgGzCj5bfUro|#OXPn`%_JXP>Eh*dVjiUMRm#F+E2I7`EVfVP9z-6`Mt%ru zt<)AC>9@3o$4NSku~UB^BbUCDy$ro436EIxjc%OIqTQ{z0lZewv%dq{*u$*nVJ2`-SeC9d#Khe?pBFftmx&9vkQQnit7bpCYgfC3^ zGYNk#;oB4bcEUeQ__>5%OZfGKSL9p0A6zmf3w68=fTzfSm132PpXasEA#kLzs8_5Wv&I-4Z&trOlg;pqv_ zNmys}F&_QxU*t-nqkjh=%KH=f;la4gJ_o~uYOMbUPt-p>(LX<7jR#TZl0<%O!ur-J z>fDmZzmf1m2|t$buM+-a!hcWrjfB_iYNn-czGAwYCGsf=@15|>gl8q(mhg<}%{Uh% z@{xo;nea6Ue>LIz6MigV`?kx+il-9!3km-<;nk|m{H&MoRtfK(@U(>IB&=_Zan|no z);Mw{(b4z0QLgWEBkTLz$of7vvcAua+@Hi_e}wC4El%VgPFUXt#;_kxGVP8$;`c^K=-%jKkbT{St_n@MV_QR3inds=pnTBrf z7Kwa^g!fJOP16kaHZ76QO}HcBfrL*__#+A5n~YssLVO^{WB_aPnb2M zQptvw3|6zg_QjQI|L{;xwU$*ELbYsosJ*jVv75?J`=Uy%bAGj}GB`BQS*_J7)y37$ z3_YUkY9DT|^bT}Zx_f%7{q23#Y_O**8|XzDKRl1Ik;Ia$ySIH_EgKxFR{I8rE1d%) zL^IM~>zUVI?JC#i4-6%@o%7p=vXNbPAs+oU)KnUxuP6fxszd$NUZuvZ1?U`JoDKAc zOjG`~t7mwpj=}DoI#pR^k6==5cxa?^xcr~%qr4sIPR`0W z4-;xnbycn|Ebm|b(CPcyN}lgkGjP~LTypg!DQ zTYz#SC)`#%h3zIUABB`BP2M+??^@aL{Gn=lSEZ-Fdw}|?4Yvme} zQfr?_<5@vfeVv0N*`oFZ7=bmLuv+Qv?HR0@IB=z_+S$IOg2D8**M=*mlnqroRhp3+ zDKugc5bMw>G=0xNrj&a+X$QD}V5qO178DOr3;07l!%MPSmD{YVm;WlY>d?aKP*&?) z%q3IoB*9wNIWSbM^bd4Z19c7zEa-6_=n!cPy#tGsiT1(vPGz-!NF}XR{6S_n)FriA z^+&ohaUV^S_4UjfvdmQmtNmR){qqt@S5K|Iqqo|Xh(f0s>Kq}@G$s9QL8ZT18&<%E zbfn+pwZUpFCuWNO1homL!bD3(Q{p242V@PLI%G-9bFS|%|GI(ip) zp&EBeG+2t+y%j8@iRP&x0ZhkF)QD^Pd)Nbhj15}Tva*FHF?3bzu3 zt`o{9`wK!wF=~FWtJ*$1zoIdXyORexI)@QrP6OPVWt#~PRcmy9Iz{)u(1K{z0~&`r zMuw|3RYLDTdzU{67K2rUQYpVw#IWBERr>~ptJVRr@1R0o>La4XjAu3&F06`r1{SsV z42yb)Mk-cDdSIo~dPb#Tms$7Fz^T=K8E~bq+SgU>ZC|25Fh%d}wMaErbax3EW7=!; zRXgp&1AX*tw^(enoqU+#Wy6eZ>S-8nXM2A;lL6LD$8Xo@m$}zDzo)kgL00SO=v9Ov zW4+it13(y`y4-iu_5n^4j-~-ZEno%$Ur=4bpokf3 zQtr_-oz<4q7S^hL!Jpq3#_Zanp5e~ho>Mg=nKamqS+~ku%WPsMd;M7Q zaMn98ucv=RX2d##vE8VXauV5+S|^67{>r%DIo}P+Ouu4!z1@u)4b+`Bj$$&wx5F8`%bXM;Mo@%rZTFKFRVZ zmVsGgc!YUN_d^4W3}KGxqePm5LmTu^PUh>Lf%eX9u-4=KslBsvxH3fL(G7QIsN!y6 zUvi^1TRh0jK`(7gM(GU`=_xi1(G8H(2sWV%4Ga%3Jy};{R-NbL_&~=9v$_>YRoqV6 ziHIt}su^`cnd4ojEHUfW$U}8A{)a&*2rPic!fu9s);(&&a2r-jtf2h_DcO=j=(3LGOpi3_f zLd8>MmBuuKDVd%R$dp6NTAOJp9foKPXclaGgS{-J`!vFZmL2H}Ryf4UR|AVFS^qW) zD-^>p0cFDj47in4lCW$yOe!WE#DcI6TU}_7P;=|2!s0vt9X3Fy&#)Tlt8`K<%U@sM zSURQw1WcwuUJ272c3Y}SPkkwI@B`o_1D|`1)`@GDijhdE6T|Gm?J>;l~ zjQdP3nI0?&OqBDBvGBCs<%eDy13NzK*P^CuIvJk3~j@1=o_%dQGtkpiU zQfDv@#!?Y%DPJJR9gZnP28A<^|Rzj9sk6Reua{jO18|1{c=L>0PCL;k;}C%Mtp( zkS+9VeWkS~gBBJLDkCmjvH_ZqZjO1Mo{gIvbP)_*`D=@Vm z6=$nB>?VX{aoEKYg>5&p$ig@Z=%%JFQd?>o!vF<+4`1L7)M6>`)&2?W2>xCMT=vti+lPP zM#)e|C~~C&h4mel(#urC{g4gNKyS61s%7I)nNR67WG~EW*5>+ED~F~IwPC4hvpF)z zqK2isx~FA>LN@cL8&+wwCJ=`AFyZ!e1Z~CBD3NYVy8#RY&1JN=qngm{L1}7(v`FiW zu7P=~dj@`qy+v5nn`Vc`9dE{7Emvg^Y&T-FgN-JIeI9~37D=tE%E<^J67@J%bm{q$ zo@#FwrUCYA&#qn=wv$NWXa$Dta~!-8FkoWv5$N}QAr_M>cl}!H@jMI=J^j8d3b$B< z$2gx=n}(}e6bx!LYy+5<2i0so!#-oO&5v27HqgzoV6cZS$_k;MtrpXN=>2vq(Sx;B z*;_CYpedgdpsq05GaQb1uZ&SFuo@qZiKypWCpcvG+(VC?F}rfq(X(gFnS0>uxmlFN z`;ooWQTI{_moG`BJL?!=Syq{*-=>0vAI+mSj`_A>lSo}jRStD$bmshZ?&OjunuQ~LF2AnBNppN?++x}RU51*A?9%7 zYJW^r(y&d@Y@lNct@7Bb3@lUzG`rh$%^`qxv7E11MAjQkqOB1B3j!U%>DR|hbxMZS zaJR>9pdYEw;tSh*N0=Z+IB6JGj(o*nCn1;@BVXLZs+3e(Pp6KQSSW_ZGt|P%AdKtb zF+Dl#UNLly_I{%tZZmZp0yS&f(v2tdN8QB^WNUcW3#^o+7w)2-ji~m>mNm8xOovAe zW44&-ZfAScl?Rcv93AH&H;pnZ2mD&>Cv?cex zVoOD~HcSQKm>`ujbL&ZX{wwXn!^UZ{8K=1Au zqGw?1T5IZ%Hc-~lL+m;jif20=8L4RoKZSGX#e*!D;*{Rkkqw46rv@3kbQnRKs9ED3 z^JnwURWWvz`KOfJhd6}P%S=e+rl2Yf4~e$r+~fL zNPAb;kPO|*P#v}bDoA(XOo2l-?B0C}+&H9eiZpPk*cCf~pF5YK>Zlo+`~&A6`aYxS zM;|$hzf&3N8)i}DyD#xbcNf*99~*pqDjH^z=TIK6Uw)|m(1UG4Ri-jK$>$79H{>h5 zwHs5iI;b_ZPKiu~==9LN#=+$l8Cf3mzsFyVsJ0;~86;;IkGCtH`iG=^Ma?ZI>3dq&E1D=#*A#Mosf!^`coV8(7rO zlxKsMRp|gzM7Yx&F`zAljeA%=W@~xKbf{tHV|KbBs*0+j?wYW>X3w=8uUg;XAc1A} zeD*!%ElAX+;%Q=yq>-d36<37IY ziO>B!E#7i=u7f72SK3EdDQbKV>wNZOBW4UWU(4D_#sZ3fDTLofkKlIKT@WvzXn5hb z@s!)}G`!AP;MYMj^nS+haYOm&_RH{+H zhu+vt&G3{XWzoBCLq_fCEgU=h?p_YeDy^(1o@_V(rr3qvNWscAi-jNNV4+Vv+kG8Z;eT{bpL*aRC zA?-fQ$@b7Lm1^%)rl2A77w^1xws@DRTsw2^!nG^cZd|)_?ZLGt*IpD2Gi3fGj!IaZ z4G-?()IHe8p*p*+WpZogyo_YwP?fi~h=%wfJM8Fqd%-)ouI8q^!eBJKGYQU|RbkaV zcSdFUv9o8-IBITFFmu+NLytVDc|V7#&MGY&pw>p16Z_fFQ0vt}4i}nlU$RB%&HN4w zl1{K76WKN_IW-I~vHj(Mzee!+J-pnp&L7?@^pMkVKWDJ} zJ56F4%G4=z2&P`d=$YQy_+Ss_FS6uyRud0FcuQ{YJDRb_1Xp+vlMN5T%oo_IaG+n7 zY_px$cAtidpl2A$Hq@b6HPoRNd^VQoWC)G}vgXHA=uEb(bzyv;6>k^xu=t8Me!SJV zw>4RO*rONCVJjS8;8jvt*rB?DP3!S^nb|W_RQjO7-U1{yd==P~QF_u7`RT`NhBH#wzmX4fp6bBu0H*H&?%L}t-! zG5Xm3HV!s@@x#lRe(fr&i#wT_v_UaqQE%gGyzwD6-p*gxP_s>p?3K5k?Abk9t2#b& zu`M`@4jcQ;a2Rk{X0_{;90$HVydv!xIr6xGZ3DU8EBfy#(a7n2uu?)Ry#h zaI&GJ+h9+!UXHVPtLd+RGQDf73=S;NK3-!5@yALDvnhiKM+jBDy|!v$6~iPxn9K{6 zok=0IT?gGpV_wpn&YD$xk_!(R-dL1aVN(?*mLcn8&6@Ye+67vmG-=K$D3WW~Fi8GF z+XU0vHQJURxVfsee%J?xstMn^jMx<8El#0qq*)M-xoy2a5||fcoS2&JTH*E1#nr;# zWC!EE_z8L;rRn4iF|9j;8MOyL4h9oTC6WIx> zuT!Zwy|Q2*&r(^I9dFIj?Q~Do$CRS7hd?gy*H|p2tVCfC6~+`hv1?*wsB5r~&!+fD z!~$tjz<`F@$uc8YXno-_xy5i$!I1c7KyPEMv>~l#!I=aH!{9c!Xh$%g%;kY}z8SmrOVGr-l!pB&>1DuE0 zHnF)YWpG?hV$*)cTo&HH0aDOZYQ9-RGG%dsszY^FE_#pOnAA*d`Kc(5#NHdyu`C>6 zdO^CD@UB9u4nCpqSzW8@FuyYrHbyNSD$xGkK_i69QtTDISQ%c-o5{vFU}W9BITVD% zm{+UqeRiU#)0e^dteUM`SxmOWuuN$sZZF+JFzZyFS<>-EtCio&>F+JNM;NRZwh!%G z=~^Uzmx_72;+eKymp3x4n*qjryk7PO@@xGAQNoC9qAoT=QAaOujr|O+5rowzq4|W# z{P~*IB^atLAO$^dcM81=b*HS-p(T(1KzWB6mF6A@ww1EW_WVXd4|2F%X}52 z=NPWvSzR^PMJrUsx9>?@l@(StzbBP6cA8W7*?U*}9MxXs>V1NiSd%7( z*K|9S)t3gkCxzR|JCrAC<+I}fD8(zhdv2_i_N(EVgfb!Q9M(_Nm_$UWa{Vq6$@ZMZgx?aqz|tmNb5$&C5A17840a^qE=c*Q8sypMr5j{DAso%<^9T2!-vXB zjwQoFFL}tGsMo z?z~4*ZOcYDX=2Puqk^IULtH)@O1bmYU3T->q^OUsmuyJ7T?ilIzZGo(f*}b*{AF|_zBJDu#mD#DG z4m_~m$+DJh4Hf~xYQ6l8dZDAoD%rtGOcR9hI;=4DmVy^*>|}Lbsl(hbIn@@}?9Y@E z?)$5Y`~e4KY!dCayS=ZccM01GFAqW141Ef1; zWjSE{(BBEL+*6Ro2l~tX>BLGxuIg_EJf`NK3ryW7jL~Z7l?+R<$kw29r*rIf!cojY zN6iiGsRpn&#bIQxEojtvZGkM&M#)f()VZpc%>`%B8fV##=yMoef#_QmzI5Wd`AP?G zBl=NMLxdCNAzq&H_3MyUEx=&4x}d@aN6fy1gUax7gIgx|p`UM`X;TT3dpA^vDNkyyt_u zw4Xx8KA#UJnvW#Yib-n+EBR38Li&rujF4=yM7CN~-uPOU{B+veFTUk6<_L(Rj1|k( zEPO20iaKdKxEAMo#7mvaQv-#3vy$ZdGDQA`^6Vp!IXuQ*u}9@A8&eB)Qq2 zwX@we)P|cMYDD91m?{<(&nea0d7*7Z)E|HF9fU@m5iAm(^+*`%^-``Lpi*3P; zJXYHL9zO8lo?aAQ>saOecU6*E7!`BcX2XsGL8p6Ax8M(K6L(mZqsIeru}7Y*qXD(u}E*j1N|%!bfZ;<-jZ;RuiFm3GU_6m3zfBH=jvb?*G0}ADZ%>9h2L_jfDb&>YeBA~Z>?HhMk>X&|T8XfkrA9oA z6c&pT8*J~<8@UE5qGq<5d8&{)-*D-%+f1iERuywDEU~J^V{4$r)~GL?VkjPc<4OQC zUi-`>23Ib^3vRx_(AzS;*|Qh${Bmx$M>w+)aQYDL_KHBHF7j;pmvbbflRmvwvs8x{ zvE(pnB;C*Hjeo@E-@Y^j%34o97NXHwhm#VhS{8XF5}$7Sc_nO*;$YQTSw!dLU5)*{ zU`(1()m2#!ba#gXwo`P9h+Ue*jwSh|GMR-I@yR3|wa(6Vym)NiS-xp$wi*HIt&&buW}?S_Y@%ltgtM zPvQhiLpi>l_)L!N6Z<4~2M|UYF+l>9hY<>5(BuJ)BGHE+%|jk4l!tl9!w5xyP=t_( z0Er?h5l}%vLW19at+l_i&-MvC@JaUh{`-Did+oK?+Fy)G8q^QSE6$uC5;aM84yV-= z1LL%Pr42_4$!bHHn7sPgUO>bI8*st%VxXg<4W%;$J=i@f)cU6XUV0RR&&Lu*isXY2a;?`5j3Dq^d$MpvH7zUNk=gY z(dS}e$PS@`X{?G4ZmgT$mH3(g9u@=2G&sf}535qI55AB7T28v2D zS(JQ!p)DaK{~3dbfb_#!s2|HvaXKx37r|r?U|R3IQ!ErWf^xHxO8NMbR6tB=+fP9y z*hBTNi;t{GQfTL6ZKb5Yw`|4KX)`(}Hl4P_FPVJ1yM&HsqNtHlqsg+3u9U_~%uIeO z7MR9*lV!))b4}Z|1?UUEt57ce_ETV364ZduNk|7bhEPKyc-1sN|J{g56SdfgkG5sQr5YKocpiixkaut`8$2iaUSBFA>be$|>N0+}`r zY*|C*nAkFtmfE1Z#hjw7I&fq9Yd43Aj+O_7WtNG`q=lCNDzWlwG&<+el7hEO)l9g; z&QH?8<)%y^_OQXNj?_J+J-)HA(bzbTVrD~XIWUS#DJfT4aBd4%%*Y_bn#2^Da*>2t zbGMo@2whu}Hf|a}2B6#=pu>w|rECsuBm=TQWj!zsOe3`w=QB}q%%053>pc_$+PpA=+$q*BEU%*+X&;ZrOXl0qoBWz_O|x@ z^|)?sqZBMQI}P;qYmM5?xEtC@XOY7SDd=2-F8!MJ|&gN{Nm^tZJK_wpdmHi-zT zH{yv+_llPERlo*ata6Ku7MzQ(^(#wO9B(wriXErOuMdD|OJ<;SA^IIPJ0jGcXhno9 zsI^|Bv0XPJ!<4ngx-TXYrYGxmLT)ck>g~0=)Z)N8_T$VDdReP>y~C8oDXN-igZGVq zfUS-vl@?>0<}wZHitxz7X745=wwApxOckaw8wi{<<0RkkMzB};Xb*xg+bpyarJ;<_ zH+UohILSpjh;X)1(#A-Dk@I@LOTCY>m`iAZ!S136&8StTR#!S0gYfRog=&Wr33x^+ z0b>EafdPMvmoD1-@w&H)B9+F81&vJ=+#B+tjll-W*3oDPk;=N_tJDN`A5a&}rbc;cL)WdvugWK9g{Z*&4D^_$+S?{~!9!H=z@ zQ^Faunl#PMy~Q0^HFCFmQ0zp(NOr5qW_rPo^@w7}dp;d>kRFGa3^HRIZQ$FRW_MWP zvdR$9T)qBU?iZH7;ZACsx+4U1RA<9p!*+*>z-a7qJLimbjInw?afn{0v%P?>0ION7 zp{PGHTWdr}C}j^rpgF2bVP(vwF|2WIzu;`pSj)(i;2akRNSt8OMNZ6R)PgWYtOdIJ zOnYRGu0fU@v~v%qZO#HwtCES3DN;enyQ^Jnc5H^WU*paKpSMo9ttsHUlWVulS*ZsQ z4OhO{k#Ti^ZVT^?}ZmMXZb*(8P z_lh-Dv$5I20xxtHtOIROFK;cFZ@1MUhBRw1Fh(k&Hum*JTS7fUFR7HWX0A7}j6DY9Hk4#rF9Nm4ywaAerqsCv57Yvf>lu z7+re~HtY;Ehzoaipof_h%sW;n-;VpHtmaj1=vY!dDK&R}P*F(EuQBiCI-7OMr7`9{ zntx0iOjt#8XhUu3F4ck&__H-xv}1u4zdl{86iOjx&jJQrHk#Jb%QD+bqM6w7gDq@0 zZHBSOH;_oByJn>_DZbLxOK`#G)*QlF_9$u%)Tzr$i&RTd$kX^f^%}OfFpV_-4&z-O zaIbUt7W&u7+oN~rJPF^e=X%``_QGO=XedT|V|6=NO6j1ZNC&|%8I*>9 z^qm%NBt|5~{>94Ti)t4R&M)`zZh~cDTW6)eNMXAeXmOj=IyacuROxra92Rw`=DEZL zCyHa^JUTn3YlAHmW5{akqe4?8ZEWfxmpkg6Q6oWzE*eN-69c)U45-m-nrzmPPM|t8 z2#b|z)-wz?+DtRFgCz1}{PcvvDIN9&t#2}_ZJ{w~w%xIUm7=uzZ4RIaXufU@YHPl! zjc~OL&8n)2*sVgLB^H4D6_G<)29a9brVnBq+aklplKHIB7e= zyp7ty`I}8>CA&_Po#l`iA6FOa?bNt@%9^IqpkOSpP0>%bu!oLF<^nGX$z)@=$E`Xw z*EoK38at#@XaP*0KJ(tO$=vPe^vT)d$4=!=$L7#&%^hZro<8j>g0BTOKGNz)rfNiL zsjY5Z*0keCz0c(MNG8}H^Q68$qp=}zY@-bu-f4D-U(T|_TKT= zIbMf(W`PqRM0&N96RToT8Uhbr6% z)nA^%0SMQ$*J@2_D{djF%(LrvQtPpi*1kJ+afV4DL)Ot5j!6pFSMw;GkgrGs z5Eg>+ZHm^22V_{ollyKMQ9b7so7Jh=>8ZxliRpK-_B%0q;^-6?5HhFsx}KQ+g+vef z7QFYS8Z)O(oOL6~1ipH7ItA7w^0jdK*zDx7vyGXr&YUqtcaO5ibxQUrr>i~gvk!5f zba$V#)p>61sKl3WGG?s4RM*oNM#`d_9BFXt;7nCRB9_CnJCy~RvUh`PSxDDZ4Rv8LM@|`lnJ9DTY=A~ zckKZ%gV4==!H|fB*X19sMeF+jdpG?~NQ&`sE}Aiwa}#!GDU((LoRwS3gag7BD*($V z1%_W>TtH$mlm_V5AFKzkUsHuryBaW|iy5AH+n~{Foh(HVW4F)SHf3wM;(im3f-G5e zKew~6t4|rR%P|Hk0x(q?7hQ)1K_xOsix!IWxkq|u524v<%(RUb=Rvk`Z`*Bztk%d= zB(L+8*@~=WHU3Pl8jR)SR72BX`eb90dBbWI4l}1tzO6|X&^;S(pFA@?ncU7y6Jk<< z=)eX8)%YMAwvo6R(v{>Zv(`ZXXl7eXhz5$_&R21D1C^1oAEpB+pC`*Mf%OeBD1A=4 z-Y0WGG}l=}&b-@tpnr^!iXMmVpdPZScyv7ZeHbRn@*Tq;R4D%#SPXhl;S=)-D?VVk$$#~O^ z1uCrq?d1R3FSQsS~&Gttr=depgB zVQch-CfC|Y=s@t)Z(fDW#Y7b@NTjbejEO}H)~XOJce;|q#stI96#ru=rXtx|gf4%b z6ZMwmzJ(Q|p9JD60GBW%<3EEvD_Co2lGXt@x2~c8YSc$Plx~IUZeU3zt4$J)=2Pes(`Q*GJ!TkAc_IYX+!TnEw3PNxnz$?` zK67K8(PS30ZcQhUnLRt?zZlXUm4$+wK;!w;vG-1%HN9jwUoxGUIeBW9O!s)7nSOWr z*m_5{&^Jx`+YiYB}0{LT2sLViX(}Oq*k6C zW++;jwLa@K+?E9!cNj2v$6DWLA3#HBQB<8g3G$6=(@4aqh3;cqlcQOrNFc#NDw|&x zLR{6fG{=SX?nkYddg)q&OJYo92UtS|lVnBdoui(5v96Ls-YFK}m{F*jP8<;cYjijf zP-wrtSWMbtR2WyCHkvtm6We$8*ZoKr=ptiK?HUtx-P<$W+VbP=V$ zrWd@i`h{d`rvRyDn5P-b#mX^v;RcwKQumRl4mQayOoLSpwH{*$o#6W+p$n6wCc&m8 z(+L{?vRfjcz=7iS7iFuEDYLqc@?JGsLZcLmI*1>Cn?m!^cObvVW@RcsqF;U`5>6`3 znMSQC+0;t4hNM?ZdM|xNiMmTqM;ujWouRfmUw`d=3TfUlqIl&s@_DsSbGw&I9jVT! zc0tLXcy$R2ecuQsDNz|!Zv7=Smp7|la~U1SD`qT9CfXmS}gqiZ^R&tf+SGdbyKx3oDP*;O@6+bgcQ7$Mk z_quCuV@M4G1-v>D+9#Zp7OyXT1@AEiwk7mx^!wn1xSFI)2&XzB-Xoy_H6de~qby4} zDG6TlvOGMAq7+IZN?}R#mqMezS7)j2_X>jHfRNgQNSU9KQ>#8~bgJDx7a+-69W5h=R+D{T3tb=SEXJ*`B1ryje}b%S@j>#sxI% zT{A!LGk~bZSUR_=vCR!z;&ka3%2D;ja;9487O-|jTHN%)rHH;1UTSWwIfL&^RFGzE zp~O>#Y(P7A+ek_?%rD!uZDu%%=Gqcs%aRVIY*PTOj2*v(!|ZWVqAV8dudrJ}UhEtG zw5hdyJ^OvO)xB-L7sc|A?a>wzTX-KKyBtA$AZ%!GjABSLb~`-9U)LvZxEYz|Kq^#q z(97BGus@WK9S-TGKFJY@S2{Y8i8CNhDv&B^0oLXKwNeR0Wc8Twtw=|F8Pg7?=dPA@ zM#SU~aSq7Z6^s(=P_GeF+akJ2O1 zYJwr>Ez#%A(2}mcrop7L%)yLRKr=zRP+JG#5LjB1@@v>KnhpmQiVN* zkXxcsAR#eG&aQb2`u!Rygqfyjw`Ch4)W;CdZgOa$MatF6Ou0)3Bw`K}9EDeUG*0d; zkiHtiX-+hbNex_r6Rjmf-F`t%NE5Boqxm!{iUTJPr(pcR_5 zQ{5OkX=Saon@%j69k5yx>Y`lcCu7K(&rWo7G=@!#PE<_oB#vj&!FIT+LVg9WCX^!j z8D2~z-I}`0#p9YSehO5dm(f_4S~?e!HW)f)&Scff*U~GcWwD0U>1T{DNqlw8Zi6|S zQGG^Qk}~-II@!P2BzEbS?!TcXc7c25+~*{{SqVlp^-abM5rnR}Y}1{UhjGWLyUjQn z>##6Nwz%o83Ed+R(Ojyi`Nqj!T({+yZMhFlQXxq7)smq(Ar%wUkTnGO#zB22S@J?c z1p8cHJtmr6&pf)-F3b0eP%-Up*p2W~c(AE$RGwKS!BuK6slwWw>6(kQM0V4Nv3tc#&f+sZ?xwJNOEh5+&e&wGzW2{V)u??sh;K3TtG_9}bF|CfvqSz} z!vDmLS9_l3KQ~R)cngm={d5>Bf5-pP?-G#qQ}`#xs_MlLhpI;c&w)R8gZ9ht7r-MKegZri_%{f@{|D4R z@b7}({ozn`B*UZN;~72xo(uf9gnx&|-^uU+@a4cS@iE|^_{*W{YKBL^Hv@ki|409U z`WN_a;6IT6C$vX~KMU5!HC6w=!2iG~^~>-x;L*UJ$p3ljm*K*C)ePpZ#7RrT>$pe<;JsZ!~bq zZz99WZ>GR=fm43-8CHI~fm420GHmq=obtPwVXI$(?*>l!-OI4m@5hSzWmx%%R`};b zJ=|Gv_0(`p2YwIy*=L8VU7XeLAAt{y(=P?STHtGejc&X(TwTxb3*Z|WJ_yz~=#{?a z_2(vrtJ@jg4}K8%-^hPIL}7%m3jdFMH}>Gva5WQn-}{trX1IbBnSa8No<7XfH$0*6 zzeM>0|2lYNp7Le*Y4FX!HgA`QtGj`}ulTFO)gwVC{tmpqJ6zF3mVTNiiH-?to=`;d zPxB$trPq(&20we1b_svg=eg^{ z)#bo{qVOLMSJwhtzx|--H*jCSfm6Sw^!xe^VtX&r`xmAE(QtJ?a0*{VJ0|~;z(*Q{ zzcpMP4xGXtDg5UO|J2XFqWC|geue+lz<( zd^^L3!FMuz0DLd-B=HY?N`0c=en+k9YdfVM;dom1E+D9#!(t~42e3t=rdhlIE}lH1LxyQyaZ&`=EO7nKFJ)` zbBM6QbAeaE`h?=2fqAvECJZ!Mq>m!b@wZ01-4re2xyzrh;^{fWdzZhzXYT9K7`ez_ z3f~EQgt@3keJ1}u4E!MQUk4U{1lhD_2EUVFJ*)hw{C^x+<@g?d{}fo|5Pp@hq~~tn zpPx7QfBxGiW@5mzuP#l$=e|m<)Bk9`J&~nz82YYfmcPd<|1hQSBl^elQ~W({y2Ffz^@KTi z!n=lg_)3AV60&?-$rQEvv6+OkV!c0;lno+GnEhpDFNsfjb4>E%22BUn}s9 z0^cg|odVx0@cja(sh;Yi{YGE?3p`%ni2~0Qc)q}$0`C_1N`bEx_(p+m75Gkp?-lrd zfo-5u;ky2M$?#}_wcp77Cki}M;MEMP>30fzxxiNoe7(Ro3w*o4+MlHIDZh^k{Gh;( z#6l%!g&!&K;Q}8i@bLoA6?nD4I|aU6;Hw3`Uf`PrzFpwE1^&3e4+{Kv9)tHHm$50d15BpejJtYfW#cYmc5LgkT%m!8L=865~AWcL-)ril4Cd6NB=6JmP=*Kk`)f*5_lq2eserXut7@uJNNJ zQ~s%5+Tjk$|K_l}eiZ!}$?R!Q^~s?8A4LB15nuT~#$TELB5wPp{(FO;UH %d", ev.OldUID, ev.NewUID) + } + if len(ev.CapAdded) != 1 || ev.CapAdded[0] != "CAP_SETUID" { + t.Fatalf("cap_added = %v", ev.CapAdded) + } +} + +func TestDecodeUnknownSize(t *testing.T) { + if _, ok := decodeEvent(make([]byte, 3)); ok { + t.Fatal("unknown size decoded") + } +} diff --git a/components/execd/pkg/ebpf/prog/audit.bpf.c b/components/execd/pkg/ebpf/prog/audit.bpf.c new file mode 100644 index 000000000..b768a5bb4 --- /dev/null +++ b/components/execd/pkg/ebpf/prog/audit.bpf.c @@ -0,0 +1,196 @@ +// Copyright 2026 Alibaba Group Holding Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// OSEP-0018 §5: opt-in, observation-only audit of exec / connect / +// privilege events, scoped to the sandbox cgroup. Compiles with bpf2go +// (CO-RE); the generated bytecode is embedded in the execd-ebpf build +// variant only. + +// vmlinux.h provides every kernel type used below (including __u32/__u64), +// so it must be included before the libbpf helper headers. +#include "vmlinux.h" +#include +#include +#include + +char LICENSE[] SEC("license") = "GPL"; + +#define MAX_ARGV 4 +#define ARG_LEN 32 + +#define AF_INET 2 +#define TCP_SYN_SENT 2 + +// Events ring buffer, consumed by the execd-ebpf process. +struct { + __uint(type, BPF_MAP_TYPE_RINGBUF); + __uint(max_entries, 1 << 20); +} events SEC(".maps"); + +// Set from userspace to the sandbox cgroup id; events outside it are +// dropped (execd shares the sandbox cgroup with every workload process). +const volatile uint64_t target_cgroup; + +struct event_exec { + uint32_t pid; + uint32_t ppid; + char comm[16]; + char filename[64]; + char argv[MAX_ARGV][ARG_LEN]; +} __attribute__((packed)); + +struct event_connect { + uint32_t pid; + char comm[16]; + uint32_t dst_ip[4]; // big-endian; IPv4 is stored in dst_ip[3] + uint16_t dst_port; // network byte order +} __attribute__((packed)); + +struct event_privilege { + uint32_t pid; + char comm[16]; + uint32_t old_uid; + uint32_t new_uid; + uint32_t old_gid; + uint32_t new_gid; + uint64_t cap_added; // caps in new_cred not in old_cred +} __attribute__((packed)); + +static __always_inline int emit(void *event, uint32_t size) +{ + if (target_cgroup && + bpf_get_current_cgroup_id() != target_cgroup) + return 0; + return bpf_ringbuf_output(&events, event, size, 0) == 0; +} + +SEC("tracepoint/sched/sched_process_exec") +int on_exec(struct trace_event_raw_sched_process_exec *ctx) +{ + struct event_exec ev = {}; + struct task_struct *task; + struct task_struct *parent; + uint32_t argv_loc; + char **argv; + int i; + + ev.pid = bpf_get_current_pid_tgid() >> 32; + task = (struct task_struct *)bpf_get_current_task(); + bpf_core_read(&parent, sizeof(parent), &task->real_parent); + bpf_core_read(&ev.ppid, sizeof(ev.ppid), &parent->pid); + bpf_get_current_comm(&ev.comm, sizeof(ev.comm)); + + // The raw trace event layout changed in 5.16: filename moved from an + // inline 1024-byte array to a __data_loc string. The argv data (a + // pointer array behind a __data_loc) is laid out identically in both. + if (bpf_core_field_exists(ctx->__data_loc_filename)) { + uint32_t filename_loc = BPF_CORE_READ(ctx, __data_loc_filename); + long filename_len; + + filename_len = bpf_probe_read_str(&ev.filename, sizeof(ev.filename), + (void *)ctx + (filename_loc & 0xffff)); + if (filename_len < 0) + filename_len = 0; + // The argv pointer array is the next 8-byte-aligned slot after the + // filename string in the data area. + argv_loc = (filename_loc & 0xffff) + (uint32_t)filename_len; + argv_loc = (argv_loc + 7) & ~7u; + } else { + // 5.10-5.15: filename is inline at a fixed offset after + // trace_entry(8) + pid(4) + old_pid(4); the argv data_loc u32 + // follows the 1024-byte filename array. + bpf_probe_read_str(&ev.filename, sizeof(ev.filename), (void *)ctx + 16); + bpf_probe_read(&argv_loc, sizeof(argv_loc), (void *)ctx + 16 + 1024); + } + + argv = (void *)ctx + (argv_loc & 0xffff); + for (i = 0; i < MAX_ARGV; i++) { + char *argp; + + if (bpf_probe_read(&argp, sizeof(argp), &argv[i]) != 0) + break; + if (argp == NULL || argp == (char *)0xffffffff) + break; + bpf_probe_read_str(&ev.argv[i], sizeof(ev.argv[i]), argp); + } + + emit(&ev, sizeof(ev)); + return 0; +} + +SEC("tracepoint/sock/inet_sock_set_state") +int on_connect(struct trace_event_raw_inet_sock_set_state *ctx) +{ + struct event_connect ev = {}; + struct sock *sk; + struct sock_common *skc; + + // Emit connect attempts (TCP_SYN_SENT) only. + if (BPF_CORE_READ(ctx, newstate) != TCP_SYN_SENT) + return 0; + + ev.pid = bpf_get_current_pid_tgid() >> 32; + bpf_get_current_comm(&ev.comm, sizeof(ev.comm)); + + bpf_core_read(&sk, sizeof(sk), &ctx->skaddr); + skc = &sk->__sk_common; + if (BPF_CORE_READ(skc, skc_family) == AF_INET) { + __be32 daddr; + + bpf_core_read(&daddr, sizeof(daddr), &skc->skc_daddr); + ev.dst_ip[3] = daddr; + } else { + bpf_core_read(ev.dst_ip, sizeof(ev.dst_ip), + &skc->skc_v6_daddr.in6_u.u6_addr32); + } + bpf_core_read(&ev.dst_port, sizeof(ev.dst_port), &skc->skc_dport); + + emit(&ev, sizeof(ev)); + return 0; +} + +SEC("kprobe/commit_creds") +int BPF_KPROBE(on_commit_creds, struct cred *new) +{ + struct event_privilege ev = {}; + struct task_struct *task; + struct cred *old; + + task = (struct task_struct *)bpf_get_current_task(); + bpf_core_read(&old, sizeof(old), &task->real_cred); + + ev.pid = bpf_get_current_pid_tgid() >> 32; + bpf_get_current_comm(&ev.comm, sizeof(ev.comm)); + bpf_core_read(&ev.old_uid, sizeof(ev.old_uid), &old->uid.val); + bpf_core_read(&ev.old_gid, sizeof(ev.old_gid), &old->gid.val); + bpf_core_read(&ev.new_uid, sizeof(ev.new_uid), &new->uid.val); + bpf_core_read(&ev.new_gid, sizeof(ev.new_gid), &new->gid.val); + if (ev.old_uid == ev.new_uid && ev.old_gid == ev.new_gid) + return 0; + + { + // kernel_cap_t is 8 bytes in every kernel but its shape changed in + // 6.3 ({u32 cap[2]} -> {u64 val}); reading the field as raw 8 bytes + // is layout-agnostic and works on both. + uint64_t old_caps; + uint64_t new_caps; + + bpf_core_read(&old_caps, sizeof(old_caps), &old->cap_effective); + bpf_core_read(&new_caps, sizeof(new_caps), &new->cap_effective); + ev.cap_added = new_caps & ~old_caps; + } + + emit(&ev, sizeof(ev)); + return 0; +} diff --git a/components/execd/pkg/ebpf/prog/vmlinux.h b/components/execd/pkg/ebpf/prog/vmlinux.h new file mode 100644 index 000000000..b211da58b --- /dev/null +++ b/components/execd/pkg/ebpf/prog/vmlinux.h @@ -0,0 +1,7 @@ +#if defined(__TARGET_ARCH_arm64) +#include "vmlinux_6_14_0_arm.h" +#elif defined(__TARGET_ARCH_x86) +#include "vmlinux_6_14_0.h" +#else +#error "opensandbox ebpf audit: unsupported architecture" +#endif diff --git a/components/execd/pkg/ebpf/prog/vmlinux_6_14_0.h b/components/execd/pkg/ebpf/prog/vmlinux_6_14_0.h new file mode 100644 index 000000000..4ef955e2c --- /dev/null +++ b/components/execd/pkg/ebpf/prog/vmlinux_6_14_0.h @@ -0,0 +1,158494 @@ +#ifndef __VMLINUX_H__ +#define __VMLINUX_H__ + +#ifndef BPF_NO_PRESERVE_ACCESS_INDEX +#pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record) +#endif + +#ifndef __ksym +#define __ksym __attribute__((section(".ksyms"))) +#endif + +#ifndef __weak +#define __weak __attribute__((weak)) +#endif + +#ifndef __bpf_fastcall +#if __has_attribute(bpf_fastcall) +#define __bpf_fastcall __attribute__((bpf_fastcall)) +#else +#define __bpf_fastcall +#endif +#endif + +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 { + ACPI_BUTTON_LID_INIT_IGNORE = 0, + ACPI_BUTTON_LID_INIT_OPEN = 1, + ACPI_BUTTON_LID_INIT_METHOD = 2, + ACPI_BUTTON_LID_INIT_DISABLED = 3, +}; + +enum { + ACPI_GENL_ATTR_UNSPEC = 0, + ACPI_GENL_ATTR_EVENT = 1, + __ACPI_GENL_ATTR_MAX = 2, +}; + +enum { + ACPI_GENL_CMD_UNSPEC = 0, + ACPI_GENL_CMD_EVENT = 1, + __ACPI_GENL_CMD_MAX = 2, +}; + +enum { + ACPI_REFCLASS_LOCAL = 0, + ACPI_REFCLASS_ARG = 1, + ACPI_REFCLASS_REFOF = 2, + ACPI_REFCLASS_INDEX = 3, + ACPI_REFCLASS_TABLE = 4, + ACPI_REFCLASS_NAME = 5, + ACPI_REFCLASS_DEBUG = 6, + ACPI_REFCLASS_MAX = 6, +}; + +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, +}; + +enum { + ACPI_RSD_TITLE = 0, + ACPI_RSD_1BITFLAG = 1, + ACPI_RSD_2BITFLAG = 2, + ACPI_RSD_3BITFLAG = 3, + ACPI_RSD_6BITFLAG = 4, + ACPI_RSD_ADDRESS = 5, + ACPI_RSD_DWORDLIST = 6, + ACPI_RSD_LITERAL = 7, + ACPI_RSD_LONGLIST = 8, + ACPI_RSD_SHORTLIST = 9, + ACPI_RSD_SHORTLISTX = 10, + ACPI_RSD_SOURCE = 11, + ACPI_RSD_STRING = 12, + ACPI_RSD_UINT8 = 13, + ACPI_RSD_UINT16 = 14, + ACPI_RSD_UINT32 = 15, + ACPI_RSD_UINT64 = 16, + ACPI_RSD_WORDLIST = 17, + ACPI_RSD_LABEL = 18, + ACPI_RSD_SOURCE_LABEL = 19, +}; + +enum { + ACTION_FAIL = 0, + ACTION_REPREP = 1, + ACTION_DELAYED_REPREP = 2, + ACTION_RETRY = 3, + ACTION_DELAYED_RETRY = 4, +}; + +enum { + AFFINITY = 0, + AFFINITY_LIST = 1, + EFFECTIVE = 2, + EFFECTIVE_LIST = 3, +}; + +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, +}; + +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, +}; + +enum { + AML_FIELD_UPDATE_PRESERVE = 0, + AML_FIELD_UPDATE_WRITE_AS_ONES = 32, + AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64, +}; + +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, +}; + +enum { + AS3711_REGULATOR = 0, + AS3711_BACKLIGHT = 1, +}; + +enum { + ASCII_NULL = 0, + ASCII_BELL = 7, + ASCII_BACKSPACE = 8, + ASCII_IGNORE_FIRST = 8, + ASCII_HTAB = 9, + ASCII_LINEFEED = 10, + ASCII_VTAB = 11, + ASCII_FORMFEED = 12, + ASCII_CAR_RET = 13, + ASCII_IGNORE_LAST = 13, + ASCII_SHIFTOUT = 14, + ASCII_SHIFTIN = 15, + ASCII_CANCEL = 24, + ASCII_SUBSTITUTE = 26, + ASCII_ESCAPE = 27, + ASCII_CSI_IGNORE_FIRST = 32, + ASCII_CSI_IGNORE_LAST = 63, + ASCII_DEL = 127, + ASCII_EXT_CSI = 155, +}; + +enum { + ATA_EH_SPDN_NCQ_OFF = 1, + ATA_EH_SPDN_SPEED_DOWN = 2, + ATA_EH_SPDN_FALLBACK_TO_PIO = 4, + ATA_EH_SPDN_KEEP_ERRORS = 8, + ATA_EFLAG_IS_IO = 1, + ATA_EFLAG_DUBIOUS_XFER = 2, + ATA_EFLAG_OLD_ER = -2147483648, + ATA_ECAT_NONE = 0, + ATA_ECAT_ATA_BUS = 1, + ATA_ECAT_TOUT_HSM = 2, + ATA_ECAT_UNK_DEV = 3, + ATA_ECAT_DUBIOUS_NONE = 4, + ATA_ECAT_DUBIOUS_ATA_BUS = 5, + ATA_ECAT_DUBIOUS_TOUT_HSM = 6, + ATA_ECAT_DUBIOUS_UNK_DEV = 7, + ATA_ECAT_NR = 8, + ATA_EH_CMD_DFL_TIMEOUT = 5000, + ATA_EH_RESET_COOL_DOWN = 5000, + ATA_EH_PRERESET_TIMEOUT = 10000, + ATA_EH_FASTDRAIN_INTERVAL = 3000, + ATA_EH_UA_TRIES = 5, + ATA_EH_PROBE_TRIAL_INTERVAL = 60000, + ATA_EH_PROBE_TRIALS = 2, +}; + +enum { + ATA_GEN_CLASS_MATCH = 1, + ATA_GEN_FORCE_DMA = 2, + ATA_GEN_INTEL_IDER = 4, +}; + +enum { + ATA_MAX_DEVICES = 2, + ATA_MAX_PRD = 256, + ATA_SECT_SIZE = 512, + ATA_MAX_SECTORS_128 = 128, + ATA_MAX_SECTORS = 256, + ATA_MAX_SECTORS_1024 = 1024, + ATA_MAX_SECTORS_LBA48 = 65535, + ATA_MAX_SECTORS_TAPE = 65535, + ATA_MAX_TRIM_RNUM = 64, + ATA_ID_WORDS = 256, + ATA_ID_CONFIG = 0, + ATA_ID_CYLS = 1, + ATA_ID_HEADS = 3, + ATA_ID_SECTORS = 6, + ATA_ID_SERNO = 10, + ATA_ID_BUF_SIZE = 21, + ATA_ID_FW_REV = 23, + ATA_ID_PROD = 27, + ATA_ID_MAX_MULTSECT = 47, + ATA_ID_DWORD_IO = 48, + ATA_ID_TRUSTED = 48, + ATA_ID_CAPABILITY = 49, + ATA_ID_OLD_PIO_MODES = 51, + ATA_ID_OLD_DMA_MODES = 52, + ATA_ID_FIELD_VALID = 53, + ATA_ID_CUR_CYLS = 54, + ATA_ID_CUR_HEADS = 55, + ATA_ID_CUR_SECTORS = 56, + ATA_ID_MULTSECT = 59, + ATA_ID_LBA_CAPACITY = 60, + ATA_ID_SWDMA_MODES = 62, + ATA_ID_MWDMA_MODES = 63, + ATA_ID_PIO_MODES = 64, + ATA_ID_EIDE_DMA_MIN = 65, + ATA_ID_EIDE_DMA_TIME = 66, + ATA_ID_EIDE_PIO = 67, + ATA_ID_EIDE_PIO_IORDY = 68, + ATA_ID_ADDITIONAL_SUPP = 69, + ATA_ID_QUEUE_DEPTH = 75, + ATA_ID_SATA_CAPABILITY = 76, + ATA_ID_SATA_CAPABILITY_2 = 77, + ATA_ID_FEATURE_SUPP = 78, + ATA_ID_MAJOR_VER = 80, + ATA_ID_COMMAND_SET_1 = 82, + ATA_ID_COMMAND_SET_2 = 83, + ATA_ID_CFSSE = 84, + ATA_ID_CFS_ENABLE_1 = 85, + ATA_ID_CFS_ENABLE_2 = 86, + ATA_ID_CSF_DEFAULT = 87, + ATA_ID_UDMA_MODES = 88, + ATA_ID_HW_CONFIG = 93, + ATA_ID_SPG = 98, + ATA_ID_LBA_CAPACITY_2 = 100, + ATA_ID_SECTOR_SIZE = 106, + ATA_ID_WWN = 108, + ATA_ID_LOGICAL_SECTOR_SIZE = 117, + ATA_ID_COMMAND_SET_3 = 119, + ATA_ID_COMMAND_SET_4 = 120, + ATA_ID_LAST_LUN = 126, + ATA_ID_DLF = 128, + ATA_ID_CSFO = 129, + ATA_ID_CFA_POWER = 160, + ATA_ID_CFA_KEY_MGMT = 162, + ATA_ID_CFA_MODES = 163, + ATA_ID_DATA_SET_MGMT = 169, + ATA_ID_SCT_CMD_XPORT = 206, + ATA_ID_ROT_SPEED = 217, + ATA_ID_PIO4 = 2, + ATA_ID_SERNO_LEN = 20, + ATA_ID_FW_REV_LEN = 8, + ATA_ID_PROD_LEN = 40, + ATA_ID_WWN_LEN = 8, + ATA_PCI_CTL_OFS = 2, + ATA_PIO0 = 1, + ATA_PIO1 = 3, + ATA_PIO2 = 7, + ATA_PIO3 = 15, + ATA_PIO4 = 31, + ATA_PIO5 = 63, + ATA_PIO6 = 127, + ATA_PIO4_ONLY = 16, + ATA_SWDMA0 = 1, + ATA_SWDMA1 = 3, + ATA_SWDMA2 = 7, + ATA_SWDMA2_ONLY = 4, + ATA_MWDMA0 = 1, + ATA_MWDMA1 = 3, + ATA_MWDMA2 = 7, + ATA_MWDMA3 = 15, + ATA_MWDMA4 = 31, + ATA_MWDMA12_ONLY = 6, + ATA_MWDMA2_ONLY = 4, + ATA_UDMA0 = 1, + ATA_UDMA1 = 3, + ATA_UDMA2 = 7, + ATA_UDMA3 = 15, + ATA_UDMA4 = 31, + ATA_UDMA5 = 63, + ATA_UDMA6 = 127, + ATA_UDMA7 = 255, + ATA_UDMA24_ONLY = 20, + ATA_UDMA_MASK_40C = 7, + ATA_PRD_SZ = 8, + ATA_PRD_TBL_SZ = 2048, + ATA_PRD_EOT = -2147483648, + ATA_DMA_TABLE_OFS = 4, + ATA_DMA_STATUS = 2, + ATA_DMA_CMD = 0, + ATA_DMA_WR = 8, + ATA_DMA_START = 1, + ATA_DMA_INTR = 4, + ATA_DMA_ERR = 2, + ATA_DMA_ACTIVE = 1, + ATA_HOB = 128, + ATA_NIEN = 2, + ATA_LBA = 64, + ATA_DEV1 = 16, + ATA_DEVICE_OBS = 160, + ATA_DEVCTL_OBS = 8, + ATA_BUSY = 128, + ATA_DRDY = 64, + ATA_DF = 32, + ATA_DSC = 16, + ATA_DRQ = 8, + ATA_CORR = 4, + ATA_SENSE = 2, + ATA_ERR = 1, + ATA_SRST = 4, + ATA_ICRC = 128, + ATA_BBK = 128, + ATA_UNC = 64, + ATA_MC = 32, + ATA_IDNF = 16, + ATA_MCR = 8, + ATA_ABORTED = 4, + ATA_TRK0NF = 2, + ATA_AMNF = 1, + ATAPI_LFS = 240, + ATAPI_EOM = 2, + ATAPI_ILI = 1, + ATAPI_IO = 2, + ATAPI_COD = 1, + ATA_REG_DATA = 0, + ATA_REG_ERR = 1, + ATA_REG_NSECT = 2, + ATA_REG_LBAL = 3, + ATA_REG_LBAM = 4, + ATA_REG_LBAH = 5, + ATA_REG_DEVICE = 6, + ATA_REG_STATUS = 7, + ATA_REG_FEATURE = 1, + ATA_REG_CMD = 7, + ATA_REG_BYTEL = 4, + ATA_REG_BYTEH = 5, + ATA_REG_DEVSEL = 6, + ATA_REG_IRQ = 2, + ATA_CMD_DEV_RESET = 8, + ATA_CMD_CHK_POWER = 229, + ATA_CMD_STANDBY = 226, + ATA_CMD_IDLE = 227, + ATA_CMD_EDD = 144, + ATA_CMD_DOWNLOAD_MICRO = 146, + ATA_CMD_DOWNLOAD_MICRO_DMA = 147, + ATA_CMD_NOP = 0, + ATA_CMD_FLUSH = 231, + ATA_CMD_FLUSH_EXT = 234, + ATA_CMD_ID_ATA = 236, + ATA_CMD_ID_ATAPI = 161, + ATA_CMD_SERVICE = 162, + ATA_CMD_READ = 200, + ATA_CMD_READ_EXT = 37, + ATA_CMD_READ_QUEUED = 38, + ATA_CMD_READ_STREAM_EXT = 43, + ATA_CMD_READ_STREAM_DMA_EXT = 42, + ATA_CMD_WRITE = 202, + ATA_CMD_WRITE_EXT = 53, + ATA_CMD_WRITE_QUEUED = 54, + ATA_CMD_WRITE_STREAM_EXT = 59, + ATA_CMD_WRITE_STREAM_DMA_EXT = 58, + ATA_CMD_WRITE_FUA_EXT = 61, + ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, + ATA_CMD_FPDMA_READ = 96, + ATA_CMD_FPDMA_WRITE = 97, + ATA_CMD_NCQ_NON_DATA = 99, + ATA_CMD_FPDMA_SEND = 100, + ATA_CMD_FPDMA_RECV = 101, + ATA_CMD_PIO_READ = 32, + ATA_CMD_PIO_READ_EXT = 36, + ATA_CMD_PIO_WRITE = 48, + ATA_CMD_PIO_WRITE_EXT = 52, + ATA_CMD_READ_MULTI = 196, + ATA_CMD_READ_MULTI_EXT = 41, + ATA_CMD_WRITE_MULTI = 197, + ATA_CMD_WRITE_MULTI_EXT = 57, + ATA_CMD_WRITE_MULTI_FUA_EXT = 206, + ATA_CMD_SET_FEATURES = 239, + ATA_CMD_SET_MULTI = 198, + ATA_CMD_PACKET = 160, + ATA_CMD_VERIFY = 64, + ATA_CMD_VERIFY_EXT = 66, + ATA_CMD_WRITE_UNCORR_EXT = 69, + ATA_CMD_STANDBYNOW1 = 224, + ATA_CMD_IDLEIMMEDIATE = 225, + ATA_CMD_SLEEP = 230, + ATA_CMD_INIT_DEV_PARAMS = 145, + ATA_CMD_READ_NATIVE_MAX = 248, + ATA_CMD_READ_NATIVE_MAX_EXT = 39, + ATA_CMD_SET_MAX = 249, + ATA_CMD_SET_MAX_EXT = 55, + ATA_CMD_READ_LOG_EXT = 47, + ATA_CMD_WRITE_LOG_EXT = 63, + ATA_CMD_READ_LOG_DMA_EXT = 71, + ATA_CMD_WRITE_LOG_DMA_EXT = 87, + ATA_CMD_TRUSTED_NONDATA = 91, + ATA_CMD_TRUSTED_RCV = 92, + ATA_CMD_TRUSTED_RCV_DMA = 93, + ATA_CMD_TRUSTED_SND = 94, + ATA_CMD_TRUSTED_SND_DMA = 95, + ATA_CMD_PMP_READ = 228, + ATA_CMD_PMP_READ_DMA = 233, + ATA_CMD_PMP_WRITE = 232, + ATA_CMD_PMP_WRITE_DMA = 235, + ATA_CMD_CONF_OVERLAY = 177, + ATA_CMD_SEC_SET_PASS = 241, + ATA_CMD_SEC_UNLOCK = 242, + ATA_CMD_SEC_ERASE_PREP = 243, + ATA_CMD_SEC_ERASE_UNIT = 244, + ATA_CMD_SEC_FREEZE_LOCK = 245, + ATA_CMD_SEC_DISABLE_PASS = 246, + ATA_CMD_CONFIG_STREAM = 81, + ATA_CMD_SMART = 176, + ATA_CMD_MEDIA_LOCK = 222, + ATA_CMD_MEDIA_UNLOCK = 223, + ATA_CMD_DSM = 6, + ATA_CMD_CHK_MED_CRD_TYP = 209, + ATA_CMD_CFA_REQ_EXT_ERR = 3, + ATA_CMD_CFA_WRITE_NE = 56, + ATA_CMD_CFA_TRANS_SECT = 135, + ATA_CMD_CFA_ERASE = 192, + ATA_CMD_CFA_WRITE_MULT_NE = 205, + ATA_CMD_REQ_SENSE_DATA = 11, + ATA_CMD_SANITIZE_DEVICE = 180, + ATA_CMD_ZAC_MGMT_IN = 74, + ATA_CMD_ZAC_MGMT_OUT = 159, + ATA_CMD_RESTORE = 16, + ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, + ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, + ATA_SUBCMD_FPDMA_SEND_DSM = 0, + ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, + ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, + ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, + ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, + ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, + ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, + ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, + ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, + ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, + ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, + ATA_LOG_DIRECTORY = 0, + ATA_LOG_SATA_NCQ = 16, + ATA_LOG_NCQ_NON_DATA = 18, + ATA_LOG_NCQ_SEND_RECV = 19, + ATA_LOG_CDL = 24, + ATA_LOG_CDL_SIZE = 512, + ATA_LOG_IDENTIFY_DEVICE = 48, + ATA_LOG_SENSE_NCQ = 15, + ATA_LOG_SENSE_NCQ_SIZE = 1024, + ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, + ATA_LOG_SUPPORTED_CAPABILITIES = 3, + ATA_LOG_CURRENT_SETTINGS = 4, + ATA_LOG_SECURITY = 6, + ATA_LOG_SATA_SETTINGS = 8, + ATA_LOG_ZONED_INFORMATION = 9, + ATA_LOG_DEVSLP_OFFSET = 48, + ATA_LOG_DEVSLP_SIZE = 8, + ATA_LOG_DEVSLP_MDAT = 0, + ATA_LOG_DEVSLP_MDAT_MASK = 31, + ATA_LOG_DEVSLP_DETO = 1, + ATA_LOG_DEVSLP_VALID = 7, + ATA_LOG_DEVSLP_VALID_MASK = 128, + ATA_LOG_NCQ_PRIO_OFFSET = 9, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, + ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, + ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, + ATA_LOG_NCQ_SEND_RECV_SIZE = 20, + ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, + ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, + ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, + ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, + ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, + ATA_LOG_NCQ_NON_DATA_SIZE = 64, + ATA_CMD_READ_LONG = 34, + ATA_CMD_READ_LONG_ONCE = 35, + ATA_CMD_WRITE_LONG = 50, + ATA_CMD_WRITE_LONG_ONCE = 51, + SETFEATURES_XFER = 3, + XFER_UDMA_7 = 71, + XFER_UDMA_6 = 70, + XFER_UDMA_5 = 69, + XFER_UDMA_4 = 68, + XFER_UDMA_3 = 67, + XFER_UDMA_2 = 66, + XFER_UDMA_1 = 65, + XFER_UDMA_0 = 64, + XFER_MW_DMA_4 = 36, + XFER_MW_DMA_3 = 35, + XFER_MW_DMA_2 = 34, + XFER_MW_DMA_1 = 33, + XFER_MW_DMA_0 = 32, + XFER_SW_DMA_2 = 18, + XFER_SW_DMA_1 = 17, + XFER_SW_DMA_0 = 16, + XFER_PIO_6 = 14, + XFER_PIO_5 = 13, + XFER_PIO_4 = 12, + XFER_PIO_3 = 11, + XFER_PIO_2 = 10, + XFER_PIO_1 = 9, + XFER_PIO_0 = 8, + XFER_PIO_SLOW = 0, + SETFEATURES_WC_ON = 2, + SETFEATURES_WC_OFF = 130, + SETFEATURES_RA_ON = 170, + SETFEATURES_RA_OFF = 85, + SETFEATURES_AAM_ON = 66, + SETFEATURES_AAM_OFF = 194, + SETFEATURES_SPINUP = 7, + SETFEATURES_SPINUP_TIMEOUT = 30000, + SETFEATURES_SATA_ENABLE = 16, + SETFEATURES_SATA_DISABLE = 144, + SETFEATURES_CDL = 13, + SATA_FPDMA_OFFSET = 1, + SATA_FPDMA_AA = 2, + SATA_DIPM = 3, + SATA_FPDMA_IN_ORDER = 4, + SATA_AN = 5, + SATA_SSP = 6, + SATA_DEVSLP = 9, + SETFEATURE_SENSE_DATA = 195, + SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, + ATA_SET_MAX_ADDR = 0, + ATA_SET_MAX_PASSWD = 1, + ATA_SET_MAX_LOCK = 2, + ATA_SET_MAX_UNLOCK = 3, + ATA_SET_MAX_FREEZE_LOCK = 4, + ATA_SET_MAX_PASSWD_DMA = 5, + ATA_SET_MAX_UNLOCK_DMA = 6, + ATA_DCO_RESTORE = 192, + ATA_DCO_FREEZE_LOCK = 193, + ATA_DCO_IDENTIFY = 194, + ATA_DCO_SET = 195, + ATA_SMART_ENABLE = 216, + ATA_SMART_READ_VALUES = 208, + ATA_SMART_READ_THRESHOLDS = 209, + ATA_DSM_TRIM = 1, + ATA_SMART_LBAM_PASS = 79, + ATA_SMART_LBAH_PASS = 194, + ATAPI_PKT_DMA = 1, + ATAPI_DMADIR = 4, + ATAPI_CDB_LEN = 16, + SATA_PMP_MAX_PORTS = 15, + SATA_PMP_CTRL_PORT = 15, + SATA_PMP_GSCR_DWORDS = 128, + SATA_PMP_GSCR_PROD_ID = 0, + SATA_PMP_GSCR_REV = 1, + SATA_PMP_GSCR_PORT_INFO = 2, + SATA_PMP_GSCR_ERROR = 32, + SATA_PMP_GSCR_ERROR_EN = 33, + SATA_PMP_GSCR_FEAT = 64, + SATA_PMP_GSCR_FEAT_EN = 96, + SATA_PMP_PSCR_STATUS = 0, + SATA_PMP_PSCR_ERROR = 1, + SATA_PMP_PSCR_CONTROL = 2, + SATA_PMP_FEAT_BIST = 1, + SATA_PMP_FEAT_PMREQ = 2, + SATA_PMP_FEAT_DYNSSC = 4, + SATA_PMP_FEAT_NOTIFY = 8, + ATA_CBL_NONE = 0, + ATA_CBL_PATA40 = 1, + ATA_CBL_PATA80 = 2, + ATA_CBL_PATA40_SHORT = 3, + ATA_CBL_PATA_UNK = 4, + ATA_CBL_PATA_IGN = 5, + ATA_CBL_SATA = 6, + SCR_STATUS = 0, + SCR_ERROR = 1, + SCR_CONTROL = 2, + SCR_ACTIVE = 3, + SCR_NOTIFICATION = 4, + SERR_DATA_RECOVERED = 1, + SERR_COMM_RECOVERED = 2, + SERR_DATA = 256, + SERR_PERSISTENT = 512, + SERR_PROTOCOL = 1024, + SERR_INTERNAL = 2048, + SERR_PHYRDY_CHG = 65536, + SERR_PHY_INT_ERR = 131072, + SERR_COMM_WAKE = 262144, + SERR_10B_8B_ERR = 524288, + SERR_DISPARITY = 1048576, + SERR_CRC = 2097152, + SERR_HANDSHAKE = 4194304, + SERR_LINK_SEQ_ERR = 8388608, + SERR_TRANS_ST_ERROR = 16777216, + SERR_UNRECOG_FIS = 33554432, + SERR_DEV_XCHG = 67108864, +}; + +enum { + ATA_READID_POSTRESET = 1, + ATA_DNXFER_PIO = 0, + ATA_DNXFER_DMA = 1, + ATA_DNXFER_40C = 2, + ATA_DNXFER_FORCE_PIO = 3, + ATA_DNXFER_FORCE_PIO0 = 4, + ATA_DNXFER_QUIET = -2147483648, +}; + +enum { + AT_PKT_END = -1, + BEYOND_PKT_END = -2, +}; + +enum { + AUTOP_INVALID = 0, + AUTOP_HDD = 1, + AUTOP_SSD_QD1 = 2, + AUTOP_SSD_DFL = 3, + AUTOP_SSD_FAST = 4, +}; + +enum { + AX25_VALUES_IPDEFMODE = 0, + AX25_VALUES_AXDEFMODE = 1, + AX25_VALUES_BACKOFF = 2, + AX25_VALUES_CONMODE = 3, + AX25_VALUES_WINDOW = 4, + AX25_VALUES_EWINDOW = 5, + AX25_VALUES_T1 = 6, + AX25_VALUES_T2 = 7, + AX25_VALUES_T3 = 8, + AX25_VALUES_IDLE = 9, + AX25_VALUES_N2 = 10, + AX25_VALUES_PACLEN = 11, + AX25_VALUES_PROTOCOL = 12, + AX25_VALUES_DS_TIMEOUT = 13, + AX25_MAX_VALUES = 14, +}; + +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 { + BAD_STACK = -1, + NOT_STACK = 0, + GOOD_FRAME = 1, + GOOD_STACK = 2, +}; + +enum { + BDX_PCI_UNCORE_HA = 0, + BDX_PCI_UNCORE_IMC = 1, + BDX_PCI_UNCORE_IRP = 2, + BDX_PCI_UNCORE_QPI = 3, + BDX_PCI_UNCORE_R2PCIE = 4, + BDX_PCI_UNCORE_R3QPI = 5, +}; + +enum { + BIAS = 2147483648, +}; + +enum { + BIOSET_NEED_BVECS = 1, + BIOSET_NEED_RESCUER = 2, + BIOSET_PERCPU_CACHE = 4, +}; + +enum { + BIOS_FREQ_BASE_PLATFORM = 0, + BIOS_FREQ_BASE_INTERVAL_TIMER = 1, + BIOS_FREQ_BASE_REALTIME_CLOCK = 2, +}; + +enum { + BIOS_STATUS_MORE_PASSES = 1, + BIOS_STATUS_SUCCESS = 0, + BIOS_STATUS_UNIMPLEMENTED = -38, + BIOS_STATUS_EINVAL = -22, + BIOS_STATUS_UNAVAIL = -16, + BIOS_STATUS_ABORT = -4, +}; + +enum { + BIO_PAGE_PINNED = 0, + BIO_CLONED = 1, + BIO_BOUNCED = 2, + BIO_QUIET = 3, + BIO_CHAIN = 4, + BIO_REFFED = 5, + BIO_BPS_THROTTLED = 6, + BIO_TRACE_COMPLETION = 7, + BIO_CGROUP_ACCT = 8, + BIO_QOS_THROTTLED = 9, + BIO_QOS_MERGED = 10, + BIO_REMAPPED = 11, + BIO_ZONE_WRITE_PLUGGING = 12, + BIO_EMULATES_ZONE_APPEND = 13, + BIO_FLAG_LAST = 14, +}; + +enum { + BLK_MQ_F_TAG_QUEUE_SHARED = 2, + BLK_MQ_F_STACKING = 4, + BLK_MQ_F_TAG_HCTX_SHARED = 8, + BLK_MQ_F_BLOCKING = 16, + BLK_MQ_F_TAG_RR = 32, + BLK_MQ_F_NO_SCHED_BY_DEFAULT = 64, + BLK_MQ_F_MAX = 128, +}; + +enum { + BLK_MQ_NO_TAG = 4294967295, + BLK_MQ_TAG_MIN = 1, + BLK_MQ_TAG_MAX = 4294967294, +}; + +enum { + BLK_MQ_REQ_NOWAIT = 1, + BLK_MQ_REQ_RESERVED = 2, + BLK_MQ_REQ_PM = 4, +}; + +enum { + BLK_MQ_S_STOPPED = 0, + BLK_MQ_S_TAG_ACTIVE = 1, + BLK_MQ_S_SCHED_RESTART = 2, + BLK_MQ_S_INACTIVE = 3, + BLK_MQ_S_MAX = 4, +}; + +enum { + BLK_MQ_UNIQUE_TAG_BITS = 16, + BLK_MQ_UNIQUE_TAG_MASK = 65535, +}; + +enum { + BLOCK_BITMAP = 0, + INODE_BITMAP = 1, + INODE_TABLE = 2, + GROUP_TABLE_COUNT = 3, +}; + +enum { + BPF_ADJ_ROOM_ENCAP_L2_MASK = 255, + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, +}; + +enum { + BPF_ANY = 0, + BPF_NOEXIST = 1, + BPF_EXIST = 2, + BPF_F_LOCK = 4, +}; + +enum { + BPF_CSUM_LEVEL_QUERY = 0, + BPF_CSUM_LEVEL_INC = 1, + BPF_CSUM_LEVEL_DEC = 2, + BPF_CSUM_LEVEL_RESET = 3, +}; + +enum { + BPF_FIB_LKUP_RET_SUCCESS = 0, + BPF_FIB_LKUP_RET_BLACKHOLE = 1, + BPF_FIB_LKUP_RET_UNREACHABLE = 2, + BPF_FIB_LKUP_RET_PROHIBIT = 3, + BPF_FIB_LKUP_RET_NOT_FWDED = 4, + BPF_FIB_LKUP_RET_FWD_DISABLED = 5, + BPF_FIB_LKUP_RET_UNSUPP_LWT = 6, + BPF_FIB_LKUP_RET_NO_NEIGH = 7, + BPF_FIB_LKUP_RET_FRAG_NEEDED = 8, + BPF_FIB_LKUP_RET_NO_SRC_ADDR = 9, +}; + +enum { + BPF_FIB_LOOKUP_DIRECT = 1, + BPF_FIB_LOOKUP_OUTPUT = 2, + BPF_FIB_LOOKUP_SKIP_NEIGH = 4, + BPF_FIB_LOOKUP_TBID = 8, + BPF_FIB_LOOKUP_SRC = 16, + BPF_FIB_LOOKUP_MARK = 32, +}; + +enum { + BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 1, + BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 2, + BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 4, +}; + +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_F_BPRM_SECUREEXEC = 1, +}; + +enum { + BPF_F_CURRENT_NETNS = -1, +}; + +enum { + BPF_F_GET_BRANCH_RECORDS_SIZE = 1, +}; + +enum { + BPF_F_HDR_FIELD_MASK = 15, +}; + +enum { + BPF_F_INDEX_MASK = 4294967295ULL, + BPF_F_CURRENT_CPU = 4294967295ULL, + BPF_F_CTXLEN_MASK = 4503595332403200ULL, +}; + +enum { + BPF_F_INGRESS = 1, + BPF_F_BROADCAST = 8, + BPF_F_EXCLUDE_INGRESS = 16, +}; + +enum { + BPF_F_KPROBE_MULTI_RETURN = 1, +}; + +enum { + BPF_F_NEIGH = 65536, + BPF_F_PEER = 131072, + BPF_F_NEXTHOP = 262144, +}; + +enum { + BPF_F_NO_PREALLOC = 1, + BPF_F_NO_COMMON_LRU = 2, + BPF_F_NUMA_NODE = 4, + BPF_F_RDONLY = 8, + BPF_F_WRONLY = 16, + BPF_F_STACK_BUILD_ID = 32, + BPF_F_ZERO_SEED = 64, + BPF_F_RDONLY_PROG = 128, + BPF_F_WRONLY_PROG = 256, + BPF_F_CLONE = 512, + BPF_F_MMAPABLE = 1024, + BPF_F_PRESERVE_ELEMS = 2048, + BPF_F_INNER_MAP = 4096, + BPF_F_LINK = 8192, + BPF_F_PATH_FD = 16384, + BPF_F_VTYPE_BTF_OBJ_FD = 32768, + BPF_F_TOKEN_FD = 65536, + BPF_F_SEGV_ON_FAULT = 131072, + BPF_F_NO_USER_CONV = 262144, +}; + +enum { + BPF_F_PSEUDO_HDR = 16, + BPF_F_MARK_MANGLED_0 = 32, + BPF_F_MARK_ENFORCE = 64, + BPF_F_IPV6 = 128, +}; + +enum { + BPF_F_RECOMPUTE_CSUM = 1, + BPF_F_INVALIDATE_HASH = 2, +}; + +enum { + BPF_F_SKIP_FIELD_MASK = 255, + BPF_F_USER_STACK = 256, + BPF_F_FAST_STACK_CMP = 512, + BPF_F_REUSE_STACKID = 1024, + BPF_F_USER_BUILD_ID = 2048, +}; + +enum { + BPF_F_SYSCTL_BASE_NAME = 1, +}; + +enum { + BPF_F_TIMER_ABS = 1, + BPF_F_TIMER_CPU_PIN = 2, +}; + +enum { + BPF_F_TUNINFO_FLAGS = 16, +}; + +enum { + BPF_F_TUNINFO_IPV6 = 1, +}; + +enum { + BPF_F_UPROBE_MULTI_RETURN = 1, +}; + +enum { + BPF_F_ZERO_CSUM_TX = 2, + BPF_F_DONT_FRAGMENT = 4, + BPF_F_SEQ_NUMBER = 8, + BPF_F_NO_TUNNEL_KEY = 16, +}; + +enum { + BPF_LOAD_HDR_OPT_TCP_SYN = 1, +}; + +enum { + BPF_LOCAL_STORAGE_GET_F_CREATE = 1, + BPF_SK_STORAGE_GET_F_CREATE = 1, +}; + +enum { + BPF_MAX_LOOPS = 8388608, +}; + +enum { + BPF_MAX_TRAMP_LINKS = 38, +}; + +enum { + BPF_RB_AVAIL_DATA = 0, + BPF_RB_RING_SIZE = 1, + BPF_RB_CONS_POS = 2, + BPF_RB_PROD_POS = 3, +}; + +enum { + BPF_RB_NO_WAKEUP = 1, + BPF_RB_FORCE_WAKEUP = 2, +}; + +enum { + BPF_REG_0 = 0, + BPF_REG_1 = 1, + BPF_REG_2 = 2, + BPF_REG_3 = 3, + BPF_REG_4 = 4, + BPF_REG_5 = 5, + BPF_REG_6 = 6, + BPF_REG_7 = 7, + BPF_REG_8 = 8, + BPF_REG_9 = 9, + BPF_REG_10 = 10, + __MAX_BPF_REG = 11, +}; + +enum { + BPF_RINGBUF_BUSY_BIT = 2147483648, + BPF_RINGBUF_DISCARD_BIT = 1073741824, + BPF_RINGBUF_HDR_SZ = 8, +}; + +enum { + BPF_SKB_TSTAMP_UNSPEC = 0, + BPF_SKB_TSTAMP_DELIVERY_MONO = 1, + BPF_SKB_CLOCK_REALTIME = 0, + BPF_SKB_CLOCK_MONOTONIC = 1, + BPF_SKB_CLOCK_TAI = 2, +}; + +enum { + BPF_SK_LOOKUP_F_REPLACE = 1, + BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, +}; + +enum { + BPF_SOCK_OPS_RTO_CB_FLAG = 1, + BPF_SOCK_OPS_RETRANS_CB_FLAG = 2, + BPF_SOCK_OPS_STATE_CB_FLAG = 4, + BPF_SOCK_OPS_RTT_CB_FLAG = 8, + BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 16, + BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 32, + BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 64, + BPF_SOCK_OPS_ALL_CB_FLAGS = 127, +}; + +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_TASK_ITER_ALL_PROCS = 0, + BPF_TASK_ITER_ALL_THREADS = 1, + BPF_TASK_ITER_PROC_THREADS = 2, +}; + +enum { + BPF_TCP_ESTABLISHED = 1, + BPF_TCP_SYN_SENT = 2, + BPF_TCP_SYN_RECV = 3, + BPF_TCP_FIN_WAIT1 = 4, + BPF_TCP_FIN_WAIT2 = 5, + BPF_TCP_TIME_WAIT = 6, + BPF_TCP_CLOSE = 7, + BPF_TCP_CLOSE_WAIT = 8, + BPF_TCP_LAST_ACK = 9, + BPF_TCP_LISTEN = 10, + BPF_TCP_CLOSING = 11, + BPF_TCP_NEW_SYN_RECV = 12, + BPF_TCP_BOUND_INACTIVE = 13, + BPF_TCP_MAX_STATES = 14, +}; + +enum { + BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, + BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, +}; + +enum { + BPF_XFRM_STATE_OPTS_SZ = 36, +}; + +enum { + BR_MCAST_DIR_RX = 0, + BR_MCAST_DIR_TX = 1, + BR_MCAST_DIR_SIZE = 2, +}; + +enum { + BTF_FIELDS_MAX = 11, +}; + +enum { + BTF_FIELD_IGNORE = 0, + BTF_FIELD_FOUND = 1, +}; + +enum { + BTF_F_COMPACT = 1, + BTF_F_NONAME = 2, + BTF_F_PTR_RAW = 4, + BTF_F_ZERO = 8, +}; + +enum { + BTF_KFUNC_SET_MAX_CNT = 256, + BTF_DTOR_KFUNC_MAX_CNT = 256, + BTF_KFUNC_FILTER_MAX_CNT = 16, +}; + +enum { + BTF_KIND_UNKN = 0, + BTF_KIND_INT = 1, + BTF_KIND_PTR = 2, + BTF_KIND_ARRAY = 3, + BTF_KIND_STRUCT = 4, + BTF_KIND_UNION = 5, + BTF_KIND_ENUM = 6, + BTF_KIND_FWD = 7, + BTF_KIND_TYPEDEF = 8, + BTF_KIND_VOLATILE = 9, + BTF_KIND_CONST = 10, + BTF_KIND_RESTRICT = 11, + BTF_KIND_FUNC = 12, + BTF_KIND_FUNC_PROTO = 13, + BTF_KIND_VAR = 14, + BTF_KIND_DATASEC = 15, + BTF_KIND_FLOAT = 16, + BTF_KIND_DECL_TAG = 17, + BTF_KIND_TYPE_TAG = 18, + BTF_KIND_ENUM64 = 19, + NR_BTF_KINDS = 20, + BTF_KIND_MAX = 19, +}; + +enum { + BTF_MODULE_F_LIVE = 1, +}; + +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, +}; + +enum { + BTF_TRACING_TYPE_TASK = 0, + BTF_TRACING_TYPE_FILE = 1, + BTF_TRACING_TYPE_VMA = 2, + MAX_BTF_TRACING_TYPE = 3, +}; + +enum { + BTF_VAR_STATIC = 0, + BTF_VAR_GLOBAL_ALLOCATED = 1, + BTF_VAR_GLOBAL_EXTERN = 2, +}; + +enum { + BTS_STATE_STOPPED = 0, + BTS_STATE_INACTIVE = 1, + BTS_STATE_ACTIVE = 2, +}; + +enum { + Blktrace_setup = 1, + Blktrace_running = 2, + Blktrace_stopped = 3, +}; + +enum { + C1E_PROMOTION_PRESERVE = 0, + C1E_PROMOTION_ENABLE = 1, + C1E_PROMOTION_DISABLE = 2, +}; + +enum { + CACHE_RH_CNT = 14, +}; + +enum { + CACHE_WH_CNT = 15, +}; + +enum { + CFTYPE_ONLY_ON_ROOT = 1, + CFTYPE_NOT_ON_ROOT = 2, + CFTYPE_NS_DELEGATABLE = 4, + CFTYPE_NO_PREFIX = 8, + CFTYPE_WORLD_WRITABLE = 16, + CFTYPE_DEBUG = 32, + __CFTYPE_ONLY_ON_DFL = 65536, + __CFTYPE_NOT_ON_DFL = 131072, + __CFTYPE_ADDED = 262144, +}; + +enum { + 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, +}; + +enum { + CGRP_NOTIFY_ON_RELEASE = 0, + CGRP_CPUSET_CLONE_CHILDREN = 1, + CGRP_FREEZE = 2, + CGRP_FROZEN = 3, +}; + +enum { + CGRP_ROOT_NOPREFIX = 2, + CGRP_ROOT_XATTR = 4, + CGRP_ROOT_NS_DELEGATE = 8, + CGRP_ROOT_FAVOR_DYNMODS = 16, + CGRP_ROOT_CPUSET_V2_MODE = 65536, + CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072, + CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144, + CGRP_ROOT_MEMORY_HUGETLB_ACCOUNTING = 524288, + CGRP_ROOT_PIDS_LOCAL_EVENTS = 1048576, +}; + +enum { + CHIP_INVALID = 0, + CHIP_PM8606 = 1, + CHIP_PM8607 = 2, + CHIP_MAX = 3, +}; + +enum { + CHT_WC_PWRSRC_IRQ = 0, + CHT_WC_THRM_IRQ = 1, + CHT_WC_BCU_IRQ = 2, + CHT_WC_ADC_IRQ = 3, + CHT_WC_EXT_CHGR_IRQ = 4, + CHT_WC_GPIO_IRQ = 5, + CHT_WC_CRIT_IRQ = 7, +}; + +enum { + CLKCTL = 2, + SYNCCTL = 3, + HSYNCPOS = 4, + PWRMNGMT = 5, + DACOP = 6, + PALETCTL = 7, + SYSCLKCTL = 8, + PIXFMT = 10, + BPP8 = 11, + BPP16 = 12, + BPP24 = 13, + BPP32 = 14, + PIXCTL1 = 16, + PIXCTL2 = 17, + SYSCLKN = 21, + SYSCLKM = 22, + SYSCLKP = 23, + SYSCLKC = 24, + PIXM0 = 32, + PIXN0 = 33, + PIXP0 = 34, + PIXC0 = 35, + CURSCTL = 48, + CURSXLO = 49, + CURSXHI = 50, + CURSYLO = 51, + CURSYHI = 52, + CURSHOTX = 53, + CURSHOTY = 54, + CURSACCTL = 55, + CURSACATTR = 56, + CURS1R = 64, + CURS1G = 65, + CURS1B = 66, + CURS2R = 67, + CURS2G = 68, + CURS2B = 69, + CURS3R = 70, + CURS3G = 71, + CURS3B = 72, + BORDR = 96, + BORDG = 97, + BORDB = 98, + MISCTL1 = 112, + MISCTL2 = 113, + MISCTL3 = 114, + KEYCTL = 120, +}; + +enum { + CMIS_MODULE_LOW_PWR = 1, + CMIS_MODULE_READY = 3, +}; + +enum { + COST_CTRL = 0, + COST_MODEL = 1, + NR_COST_CTRL_PARAMS = 2, +}; + +enum { + CPER_SEV_RECOVERABLE = 0, + CPER_SEV_FATAL = 1, + CPER_SEV_CORRECTED = 2, + CPER_SEV_INFORMATIONAL = 3, +}; + +enum { + CPU_BANIAS = 0, + CPU_DOTHAN_A1 = 1, + CPU_DOTHAN_A2 = 2, + CPU_DOTHAN_B0 = 3, + CPU_MP4HT_D0 = 4, + CPU_MP4HT_E0 = 5, +}; + +enum { + CRI_RES_UTIL = 5, +}; + +enum { + CRNG_EMPTY = 0, + CRNG_EARLY = 1, + CRNG_READY = 2, +}; + +enum { + CRNG_RESEED_START_INTERVAL = 1000, + CRNG_RESEED_INTERVAL = 60000, +}; + +enum { + CRYPTOA_UNSPEC = 0, + CRYPTOA_ALG = 1, + CRYPTOA_TYPE = 2, + __CRYPTOA_MAX = 3, +}; + +enum { + CRYPTO_KPP_SECRET_TYPE_UNKNOWN = 0, + CRYPTO_KPP_SECRET_TYPE_DH = 1, + CRYPTO_KPP_SECRET_TYPE_ECDH = 2, +}; + +enum { + CRYPTO_MSG_ALG_REQUEST = 0, + CRYPTO_MSG_ALG_REGISTER = 1, + CRYPTO_MSG_ALG_LOADED = 2, +}; + +enum { + CSD_FLAG_LOCK = 1, + IRQ_WORK_PENDING = 1, + IRQ_WORK_BUSY = 2, + IRQ_WORK_LAZY = 4, + IRQ_WORK_HARD_IRQ = 8, + IRQ_WORK_CLAIMED = 3, + CSD_TYPE_ASYNC = 0, + CSD_TYPE_SYNC = 16, + CSD_TYPE_IRQ_WORK = 32, + CSD_TYPE_TTWU = 48, + CSD_FLAG_TYPE_MASK = 240, +}; + +enum { + CSI_DEC_hl_CURSOR_KEYS = 1, + CSI_DEC_hl_132_COLUMNS = 3, + CSI_DEC_hl_REVERSE_VIDEO = 5, + CSI_DEC_hl_ORIGIN_MODE = 6, + CSI_DEC_hl_AUTOWRAP = 7, + CSI_DEC_hl_AUTOREPEAT = 8, + CSI_DEC_hl_MOUSE_X10 = 9, + CSI_DEC_hl_SHOW_CURSOR = 25, + CSI_DEC_hl_MOUSE_VT200 = 1000, +}; + +enum { + CSI_K_CURSOR_TO_LINEEND = 0, + CSI_K_LINESTART_TO_CURSOR = 1, + CSI_K_LINE = 2, +}; + +enum { + CSI_hl_DISPLAY_CTRL = 3, + CSI_hl_INSERT = 4, + CSI_hl_AUTO_NL = 20, +}; + +enum { + CSI_m_DEFAULT = 0, + CSI_m_BOLD = 1, + CSI_m_HALF_BRIGHT = 2, + CSI_m_ITALIC = 3, + CSI_m_UNDERLINE = 4, + CSI_m_BLINK = 5, + CSI_m_REVERSE = 7, + CSI_m_PRI_FONT = 10, + CSI_m_ALT_FONT1 = 11, + CSI_m_ALT_FONT2 = 12, + CSI_m_DOUBLE_UNDERLINE = 21, + CSI_m_NORMAL_INTENSITY = 22, + CSI_m_NO_ITALIC = 23, + CSI_m_NO_UNDERLINE = 24, + CSI_m_NO_BLINK = 25, + CSI_m_NO_REVERSE = 27, + CSI_m_FG_COLOR_BEG = 30, + CSI_m_FG_COLOR_END = 37, + CSI_m_FG_COLOR = 38, + CSI_m_DEFAULT_FG_COLOR = 39, + CSI_m_BG_COLOR_BEG = 40, + CSI_m_BG_COLOR_END = 47, + CSI_m_BG_COLOR = 48, + CSI_m_DEFAULT_BG_COLOR = 49, + CSI_m_BRIGHT_FG_COLOR_BEG = 90, + CSI_m_BRIGHT_FG_COLOR_END = 97, + CSI_m_BRIGHT_FG_COLOR_OFF = 60, + CSI_m_BRIGHT_BG_COLOR_BEG = 100, + CSI_m_BRIGHT_BG_COLOR_END = 107, + CSI_m_BRIGHT_BG_COLOR_OFF = 60, +}; + +enum { + CSS_NO_REF = 1, + CSS_ONLINE = 2, + CSS_RELEASED = 4, + CSS_VISIBLE = 8, + CSS_DYING = 16, +}; + +enum { + CSS_TASK_ITER_PROCS = 1, + CSS_TASK_ITER_THREADED = 2, + CSS_TASK_ITER_SKIPPED = 65536, +}; + +enum { + CTL_RES_CNT = 1, +}; + +enum { + CTL_RES_TM = 2, +}; + +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_OP_UNSPEC = 0, + CTRL_ATTR_OP_ID = 1, + CTRL_ATTR_OP_FLAGS = 2, + __CTRL_ATTR_OP_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, +}; + +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_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 { + CXL_MEM_COMMAND_ID_INVALID = 0, + CXL_MEM_COMMAND_ID_IDENTIFY = 1, + CXL_MEM_COMMAND_ID_RAW = 2, + CXL_MEM_COMMAND_ID_GET_SUPPORTED_LOGS = 3, + CXL_MEM_COMMAND_ID_GET_FW_INFO = 4, + CXL_MEM_COMMAND_ID_GET_PARTITION_INFO = 5, + CXL_MEM_COMMAND_ID_GET_LSA = 6, + CXL_MEM_COMMAND_ID_GET_HEALTH_INFO = 7, + CXL_MEM_COMMAND_ID_GET_LOG = 8, + CXL_MEM_COMMAND_ID_SET_PARTITION_INFO = 9, + CXL_MEM_COMMAND_ID_SET_LSA = 10, + CXL_MEM_COMMAND_ID_GET_ALERT_CONFIG = 11, + CXL_MEM_COMMAND_ID_SET_ALERT_CONFIG = 12, + CXL_MEM_COMMAND_ID_GET_SHUTDOWN_STATE = 13, + CXL_MEM_COMMAND_ID_SET_SHUTDOWN_STATE = 14, + CXL_MEM_DEPRECATED_ID_GET_POISON = 15, + CXL_MEM_DEPRECATED_ID_INJECT_POISON = 16, + CXL_MEM_DEPRECATED_ID_CLEAR_POISON = 17, + CXL_MEM_COMMAND_ID_GET_SCAN_MEDIA_CAPS = 18, + CXL_MEM_DEPRECATED_ID_SCAN_MEDIA = 19, + CXL_MEM_DEPRECATED_ID_GET_SCAN_MEDIA = 20, + CXL_MEM_COMMAND_ID_GET_TIMESTAMP = 21, + CXL_MEM_COMMAND_ID_GET_LOG_CAPS = 22, + CXL_MEM_COMMAND_ID_CLEAR_LOG = 23, + CXL_MEM_COMMAND_ID_GET_SUP_LOG_SUBLIST = 24, + CXL_MEM_COMMAND_ID_MAX = 25, +}; + +enum { + DA9063_DEV_ID_REG = 0, + DA9063_VAR_ID_REG = 1, + DA9063_CHIP_ID_REGS = 2, +}; + +enum { + DAD_PROCESS = 0, + DAD_BEGIN = 1, + DAD_ABORT = 2, +}; + +enum { + DD_DIR_COUNT = 2, +}; + +enum { + DD_PRIO_COUNT = 3, +}; + +enum { + DELL_INSPIRON_7375 = 0, + DELL_LATITUDE_5495 = 1, + LENOVO_IDEAPAD_330S_15ARR = 2, +}; + +enum { + DESC_TSS = 9, + DESC_LDT = 2, + DESCTYPE_S = 16, +}; + +enum { + DEVCONF_FORWARDING = 0, + DEVCONF_HOPLIMIT = 1, + DEVCONF_MTU6 = 2, + DEVCONF_ACCEPT_RA = 3, + DEVCONF_ACCEPT_REDIRECTS = 4, + DEVCONF_AUTOCONF = 5, + DEVCONF_DAD_TRANSMITS = 6, + DEVCONF_RTR_SOLICITS = 7, + DEVCONF_RTR_SOLICIT_INTERVAL = 8, + DEVCONF_RTR_SOLICIT_DELAY = 9, + DEVCONF_USE_TEMPADDR = 10, + DEVCONF_TEMP_VALID_LFT = 11, + DEVCONF_TEMP_PREFERED_LFT = 12, + DEVCONF_REGEN_MAX_RETRY = 13, + DEVCONF_MAX_DESYNC_FACTOR = 14, + DEVCONF_MAX_ADDRESSES = 15, + DEVCONF_FORCE_MLD_VERSION = 16, + DEVCONF_ACCEPT_RA_DEFRTR = 17, + DEVCONF_ACCEPT_RA_PINFO = 18, + DEVCONF_ACCEPT_RA_RTR_PREF = 19, + DEVCONF_RTR_PROBE_INTERVAL = 20, + DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21, + DEVCONF_PROXY_NDP = 22, + DEVCONF_OPTIMISTIC_DAD = 23, + DEVCONF_ACCEPT_SOURCE_ROUTE = 24, + DEVCONF_MC_FORWARDING = 25, + DEVCONF_DISABLE_IPV6 = 26, + DEVCONF_ACCEPT_DAD = 27, + DEVCONF_FORCE_TLLAO = 28, + DEVCONF_NDISC_NOTIFY = 29, + DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30, + DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31, + DEVCONF_SUPPRESS_FRAG_NDISC = 32, + DEVCONF_ACCEPT_RA_FROM_LOCAL = 33, + DEVCONF_USE_OPTIMISTIC = 34, + DEVCONF_ACCEPT_RA_MTU = 35, + DEVCONF_STABLE_SECRET = 36, + DEVCONF_USE_OIF_ADDRS_ONLY = 37, + DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38, + DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39, + DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40, + DEVCONF_DROP_UNSOLICITED_NA = 41, + DEVCONF_KEEP_ADDR_ON_DOWN = 42, + DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43, + DEVCONF_SEG6_ENABLED = 44, + DEVCONF_SEG6_REQUIRE_HMAC = 45, + DEVCONF_ENHANCED_DAD = 46, + DEVCONF_ADDR_GEN_MODE = 47, + DEVCONF_DISABLE_POLICY = 48, + DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49, + DEVCONF_NDISC_TCLASS = 50, + DEVCONF_RPL_SEG_ENABLED = 51, + DEVCONF_RA_DEFRTR_METRIC = 52, + DEVCONF_IOAM6_ENABLED = 53, + DEVCONF_IOAM6_ID = 54, + DEVCONF_IOAM6_ID_WIDE = 55, + DEVCONF_NDISC_EVICT_NOCARRIER = 56, + DEVCONF_ACCEPT_UNTRACKED_NA = 57, + DEVCONF_ACCEPT_RA_MIN_LFT = 58, + DEVCONF_MAX = 59, +}; + +enum { + 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_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0, + DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 1, +}; + +enum { + DIO_LOCKING = 1, + DIO_SKIP_HOLES = 2, +}; + +enum { + DIO_SHOULD_DIRTY = 1, + DIO_IS_SYNC = 2, +}; + +enum { + DIR_OFFSET_FIRST = 2, + DIR_OFFSET_EOD = 2147483647, +}; + +enum { + DIR_OFFSET_MIN = 3, + DIR_OFFSET_MAX = 2147483646, +}; + +enum { + DISCOVERED = 16, + EXPLORED = 32, + FALLTHROUGH = 1, + BRANCH = 2, +}; + +enum { + DISK_EVENT_FLAG_POLL = 1, + DISK_EVENT_FLAG_UEVENT = 2, + DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, +}; + +enum { + DISK_EVENT_MEDIA_CHANGE = 1, + DISK_EVENT_EJECT_REQUEST = 2, +}; + +enum { + DMA_TYPE_TX = 0, + DMA_TYPE_RX = 1, + DMA_TYPE_MCPY = 2, +}; + +enum { + DM_IO_ACCOUNTED = 0, + DM_IO_WAS_SPLIT = 1, + DM_IO_BLK_STAT = 2, +}; + +enum { + DM_TIO_INSIDE_DM_IO = 0, + DM_TIO_IS_DUPLICATE_BIO = 1, +}; + +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, +}; + +enum { + DONE_EXPLORING = 0, + KEEP_EXPLORING = 1, +}; + +enum { + DPLL_NLGRP_MONITOR = 0, +}; + +enum { + DQF_INFO_DIRTY_B = 17, +}; + +enum { + DQF_ROOT_SQUASH_B = 0, + DQF_SYS_FILE_B = 16, + DQF_PRIVATE = 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 { + DUMP_PREFIX_NONE = 0, + DUMP_PREFIX_ADDRESS = 1, + DUMP_PREFIX_OFFSET = 2, +}; + +enum { + EC_FLAGS_QUERY_ENABLED = 0, + EC_FLAGS_EVENT_HANDLER_INSTALLED = 1, + EC_FLAGS_EC_HANDLER_INSTALLED = 2, + EC_FLAGS_EC_REG_CALLED = 3, + EC_FLAGS_QUERY_METHODS_INSTALLED = 4, + EC_FLAGS_STARTED = 5, + EC_FLAGS_STOPPED = 6, + EC_FLAGS_EVENTS_MASKED = 7, +}; + +enum { + EC_MSG_TX_HEADER_BYTES = 3, + EC_MSG_TX_TRAILER_BYTES = 1, + EC_MSG_TX_PROTO_BYTES = 4, + EC_MSG_RX_PROTO_BYTES = 3, + EC_PROTO2_MSG_BYTES = 256, + EC_MAX_MSG_BYTES = 65536, +}; + +enum { + EI_ETYPE_NULL = 0, + EI_ETYPE_ERRNO = 1, + EI_ETYPE_ERRNO_NULL = 2, + EI_ETYPE_TRUE = 3, +}; + +enum { + EMULATE = 0, + XONLY = 1, + NONE = 2, +}; + +enum { + EPecma = 0, + EPdec = 1, + EPeq = 2, + EPgt = 3, + EPlt = 4, +}; + +enum { + ERASE = 0, + WERASE = 1, + KILL = 2, +}; + +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 { + 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_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_C33_PSE_PW_LIMIT_UNSPEC = 0, + ETHTOOL_A_C33_PSE_PW_LIMIT_MIN = 1, + ETHTOOL_A_C33_PSE_PW_LIMIT_MAX = 2, + __ETHTOOL_A_C33_PSE_PW_LIMIT_CNT = 3, + __ETHTOOL_A_C33_PSE_PW_LIMIT_MAX = 2, +}; + +enum { + ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0, + ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 1, + ETHTOOL_A_CABLE_AMPLITUDE_mV = 2, + __ETHTOOL_A_CABLE_AMPLITUDE_CNT = 3, + ETHTOOL_A_CABLE_AMPLITUDE_MAX = 2, +}; + +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_SRC = 3, + __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT = 4, + ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 3, +}; + +enum { + ETHTOOL_A_CABLE_INF_SRC_UNSPEC = 0, + ETHTOOL_A_CABLE_INF_SRC_TDR = 1, + ETHTOOL_A_CABLE_INF_SRC_ALCD = 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_PAIR_A = 0, + ETHTOOL_A_CABLE_PAIR_B = 1, + ETHTOOL_A_CABLE_PAIR_C = 2, + ETHTOOL_A_CABLE_PAIR_D = 3, +}; + +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_RESULT_CODE_UNSPEC = 0, + ETHTOOL_A_CABLE_RESULT_CODE_OK = 1, + ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 2, + ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 3, + ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 4, + ETHTOOL_A_CABLE_RESULT_CODE_IMPEDANCE_MISMATCH = 5, + ETHTOOL_A_CABLE_RESULT_CODE_NOISE = 6, + ETHTOOL_A_CABLE_RESULT_CODE_RESOLUTION_NOT_POSSIBLE = 7, +}; + +enum { + ETHTOOL_A_CABLE_RESULT_UNSPEC = 0, + ETHTOOL_A_CABLE_RESULT_PAIR = 1, + ETHTOOL_A_CABLE_RESULT_CODE = 2, + ETHTOOL_A_CABLE_RESULT_SRC = 3, + __ETHTOOL_A_CABLE_RESULT_CNT = 4, + ETHTOOL_A_CABLE_RESULT_MAX = 3, +}; + +enum { + ETHTOOL_A_CABLE_STEP_UNSPEC = 0, + ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 1, + ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 2, + ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 3, + __ETHTOOL_A_CABLE_STEP_CNT = 4, + ETHTOOL_A_CABLE_STEP_MAX = 3, +}; + +enum { + ETHTOOL_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_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_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_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_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_TEST_UNSPEC = 0, + ETHTOOL_A_CABLE_TEST_HEADER = 1, + __ETHTOOL_A_CABLE_TEST_CNT = 2, + ETHTOOL_A_CABLE_TEST_MAX = 1, +}; + +enum { + ETHTOOL_A_CHANNELS_UNSPEC = 0, + ETHTOOL_A_CHANNELS_HEADER = 1, + ETHTOOL_A_CHANNELS_RX_MAX = 2, + ETHTOOL_A_CHANNELS_TX_MAX = 3, + ETHTOOL_A_CHANNELS_OTHER_MAX = 4, + ETHTOOL_A_CHANNELS_COMBINED_MAX = 5, + ETHTOOL_A_CHANNELS_RX_COUNT = 6, + ETHTOOL_A_CHANNELS_TX_COUNT = 7, + ETHTOOL_A_CHANNELS_OTHER_COUNT = 8, + ETHTOOL_A_CHANNELS_COMBINED_COUNT = 9, + __ETHTOOL_A_CHANNELS_CNT = 10, + ETHTOOL_A_CHANNELS_MAX = 9, +}; + +enum { + 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_RX_PROFILE = 29, + ETHTOOL_A_COALESCE_TX_PROFILE = 30, + __ETHTOOL_A_COALESCE_CNT = 31, + ETHTOOL_A_COALESCE_MAX = 30, +}; + +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, +}; + +enum { + ETHTOOL_A_EEE_UNSPEC = 0, + ETHTOOL_A_EEE_HEADER = 1, + ETHTOOL_A_EEE_MODES_OURS = 2, + ETHTOOL_A_EEE_MODES_PEER = 3, + ETHTOOL_A_EEE_ACTIVE = 4, + ETHTOOL_A_EEE_ENABLED = 5, + ETHTOOL_A_EEE_TX_LPI_ENABLED = 6, + ETHTOOL_A_EEE_TX_LPI_TIMER = 7, + __ETHTOOL_A_EEE_CNT = 8, + ETHTOOL_A_EEE_MAX = 7, +}; + +enum { + ETHTOOL_A_FEATURES_UNSPEC = 0, + ETHTOOL_A_FEATURES_HEADER = 1, + ETHTOOL_A_FEATURES_HW = 2, + ETHTOOL_A_FEATURES_WANTED = 3, + ETHTOOL_A_FEATURES_ACTIVE = 4, + ETHTOOL_A_FEATURES_NOCHANGE = 5, + __ETHTOOL_A_FEATURES_CNT = 6, + ETHTOOL_A_FEATURES_MAX = 5, +}; + +enum { + ETHTOOL_A_FEC_STAT_UNSPEC = 0, + ETHTOOL_A_FEC_STAT_PAD = 1, + ETHTOOL_A_FEC_STAT_CORRECTED = 2, + ETHTOOL_A_FEC_STAT_UNCORR = 3, + ETHTOOL_A_FEC_STAT_CORR_BITS = 4, + __ETHTOOL_A_FEC_STAT_CNT = 5, + ETHTOOL_A_FEC_STAT_MAX = 4, +}; + +enum { + ETHTOOL_A_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_HEADER_UNSPEC = 0, + ETHTOOL_A_HEADER_DEV_INDEX = 1, + ETHTOOL_A_HEADER_DEV_NAME = 2, + ETHTOOL_A_HEADER_FLAGS = 3, + ETHTOOL_A_HEADER_PHY_INDEX = 4, + __ETHTOOL_A_HEADER_CNT = 5, + ETHTOOL_A_HEADER_MAX = 4, +}; + +enum { + ETHTOOL_A_IRQ_MODERATION_UNSPEC = 0, + ETHTOOL_A_IRQ_MODERATION_USEC = 1, + ETHTOOL_A_IRQ_MODERATION_PKTS = 2, + ETHTOOL_A_IRQ_MODERATION_COMPS = 3, + __ETHTOOL_A_IRQ_MODERATION_CNT = 4, + ETHTOOL_A_IRQ_MODERATION_MAX = 3, +}; + +enum { + ETHTOOL_A_LINKINFO_UNSPEC = 0, + ETHTOOL_A_LINKINFO_HEADER = 1, + ETHTOOL_A_LINKINFO_PORT = 2, + ETHTOOL_A_LINKINFO_PHYADDR = 3, + ETHTOOL_A_LINKINFO_TP_MDIX = 4, + ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 5, + ETHTOOL_A_LINKINFO_TRANSCEIVER = 6, + __ETHTOOL_A_LINKINFO_CNT = 7, + ETHTOOL_A_LINKINFO_MAX = 6, +}; + +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, +}; + +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, +}; + +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, +}; + +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, +}; + +enum { + ETHTOOL_A_MODULE_FW_FLASH_UNSPEC = 0, + ETHTOOL_A_MODULE_FW_FLASH_HEADER = 1, + ETHTOOL_A_MODULE_FW_FLASH_FILE_NAME = 2, + ETHTOOL_A_MODULE_FW_FLASH_PASSWORD = 3, + ETHTOOL_A_MODULE_FW_FLASH_STATUS = 4, + ETHTOOL_A_MODULE_FW_FLASH_STATUS_MSG = 5, + ETHTOOL_A_MODULE_FW_FLASH_DONE = 6, + ETHTOOL_A_MODULE_FW_FLASH_TOTAL = 7, + __ETHTOOL_A_MODULE_FW_FLASH_CNT = 8, + ETHTOOL_A_MODULE_FW_FLASH_MAX = 7, +}; + +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, +}; + +enum { + ETHTOOL_A_PAUSE_STAT_UNSPEC = 0, + ETHTOOL_A_PAUSE_STAT_PAD = 1, + ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 2, + ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 3, + __ETHTOOL_A_PAUSE_STAT_CNT = 4, + ETHTOOL_A_PAUSE_STAT_MAX = 3, +}; + +enum { + 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_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, +}; + +enum { + ETHTOOL_A_PHY_UNSPEC = 0, + ETHTOOL_A_PHY_HEADER = 1, + ETHTOOL_A_PHY_INDEX = 2, + ETHTOOL_A_PHY_DRVNAME = 3, + ETHTOOL_A_PHY_NAME = 4, + ETHTOOL_A_PHY_UPSTREAM_TYPE = 5, + ETHTOOL_A_PHY_UPSTREAM_INDEX = 6, + ETHTOOL_A_PHY_UPSTREAM_SFP_NAME = 7, + ETHTOOL_A_PHY_DOWNSTREAM_SFP_NAME = 8, + __ETHTOOL_A_PHY_CNT = 9, + ETHTOOL_A_PHY_MAX = 8, +}; + +enum { + ETHTOOL_A_PLCA_UNSPEC = 0, + ETHTOOL_A_PLCA_HEADER = 1, + ETHTOOL_A_PLCA_VERSION = 2, + ETHTOOL_A_PLCA_ENABLED = 3, + ETHTOOL_A_PLCA_STATUS = 4, + ETHTOOL_A_PLCA_NODE_CNT = 5, + ETHTOOL_A_PLCA_NODE_ID = 6, + ETHTOOL_A_PLCA_TO_TMR = 7, + ETHTOOL_A_PLCA_BURST_CNT = 8, + ETHTOOL_A_PLCA_BURST_TMR = 9, + __ETHTOOL_A_PLCA_CNT = 10, + ETHTOOL_A_PLCA_MAX = 9, +}; + +enum { + 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, +}; + +enum { + ETHTOOL_A_PROFILE_UNSPEC = 0, + ETHTOOL_A_PROFILE_IRQ_MODERATION = 1, + __ETHTOOL_A_PROFILE_CNT = 2, + ETHTOOL_A_PROFILE_MAX = 1, +}; + +enum { + ETHTOOL_A_PSE_UNSPEC = 0, + ETHTOOL_A_PSE_HEADER = 1, + ETHTOOL_A_PODL_PSE_ADMIN_STATE = 2, + ETHTOOL_A_PODL_PSE_ADMIN_CONTROL = 3, + ETHTOOL_A_PODL_PSE_PW_D_STATUS = 4, + ETHTOOL_A_C33_PSE_ADMIN_STATE = 5, + ETHTOOL_A_C33_PSE_ADMIN_CONTROL = 6, + ETHTOOL_A_C33_PSE_PW_D_STATUS = 7, + ETHTOOL_A_C33_PSE_PW_CLASS = 8, + ETHTOOL_A_C33_PSE_ACTUAL_PW = 9, + ETHTOOL_A_C33_PSE_EXT_STATE = 10, + ETHTOOL_A_C33_PSE_EXT_SUBSTATE = 11, + ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT = 12, + ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES = 13, + __ETHTOOL_A_PSE_CNT = 14, + ETHTOOL_A_PSE_MAX = 13, +}; + +enum { + ETHTOOL_A_RINGS_UNSPEC = 0, + ETHTOOL_A_RINGS_HEADER = 1, + ETHTOOL_A_RINGS_RX_MAX = 2, + ETHTOOL_A_RINGS_RX_MINI_MAX = 3, + ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, + ETHTOOL_A_RINGS_TX_MAX = 5, + ETHTOOL_A_RINGS_RX = 6, + ETHTOOL_A_RINGS_RX_MINI = 7, + ETHTOOL_A_RINGS_RX_JUMBO = 8, + ETHTOOL_A_RINGS_TX = 9, + ETHTOOL_A_RINGS_RX_BUF_LEN = 10, + ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, + ETHTOOL_A_RINGS_CQE_SIZE = 12, + ETHTOOL_A_RINGS_TX_PUSH = 13, + ETHTOOL_A_RINGS_RX_PUSH = 14, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, + ETHTOOL_A_RINGS_HDS_THRESH = 17, + ETHTOOL_A_RINGS_HDS_THRESH_MAX = 18, + __ETHTOOL_A_RINGS_CNT = 19, + ETHTOOL_A_RINGS_MAX = 18, +}; + +enum { + ETHTOOL_A_RSS_UNSPEC = 0, + ETHTOOL_A_RSS_HEADER = 1, + ETHTOOL_A_RSS_CONTEXT = 2, + ETHTOOL_A_RSS_HFUNC = 3, + ETHTOOL_A_RSS_INDIR = 4, + ETHTOOL_A_RSS_HKEY = 5, + ETHTOOL_A_RSS_INPUT_XFRM = 6, + ETHTOOL_A_RSS_START_CONTEXT = 7, + __ETHTOOL_A_RSS_CNT = 8, + ETHTOOL_A_RSS_MAX = 7, +}; + +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_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_PHY_5_SYM_ERR = 0, + __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, + ETHTOOL_A_STATS_ETH_PHY_MAX = 0, +}; + +enum { + ETHTOOL_A_STATS_GRP_UNSPEC = 0, + ETHTOOL_A_STATS_GRP_PAD = 1, + ETHTOOL_A_STATS_GRP_ID = 2, + ETHTOOL_A_STATS_GRP_SS_ID = 3, + ETHTOOL_A_STATS_GRP_STAT = 4, + ETHTOOL_A_STATS_GRP_HIST_RX = 5, + ETHTOOL_A_STATS_GRP_HIST_TX = 6, + ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, + ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, + ETHTOOL_A_STATS_GRP_HIST_VAL = 9, + __ETHTOOL_A_STATS_GRP_CNT = 10, + ETHTOOL_A_STATS_GRP_MAX = 9, +}; + +enum { + ETHTOOL_A_STATS_PHY_RX_PKTS = 0, + ETHTOOL_A_STATS_PHY_RX_BYTES = 1, + ETHTOOL_A_STATS_PHY_RX_ERRORS = 2, + ETHTOOL_A_STATS_PHY_TX_PKTS = 3, + ETHTOOL_A_STATS_PHY_TX_BYTES = 4, + ETHTOOL_A_STATS_PHY_TX_ERRORS = 5, + __ETHTOOL_A_STATS_PHY_CNT = 6, + ETHTOOL_A_STATS_PHY_MAX = 5, +}; + +enum { + ETHTOOL_A_STATS_RMON_UNDERSIZE = 0, + ETHTOOL_A_STATS_RMON_OVERSIZE = 1, + ETHTOOL_A_STATS_RMON_FRAG = 2, + ETHTOOL_A_STATS_RMON_JABBER = 3, + __ETHTOOL_A_STATS_RMON_CNT = 4, + ETHTOOL_A_STATS_RMON_MAX = 3, +}; + +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_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, +}; + +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_TSCONFIG_UNSPEC = 0, + ETHTOOL_A_TSCONFIG_HEADER = 1, + ETHTOOL_A_TSCONFIG_HWTSTAMP_PROVIDER = 2, + ETHTOOL_A_TSCONFIG_TX_TYPES = 3, + ETHTOOL_A_TSCONFIG_RX_FILTERS = 4, + ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS = 5, + __ETHTOOL_A_TSCONFIG_CNT = 6, + ETHTOOL_A_TSCONFIG_MAX = 5, +}; + +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_STATS = 6, + ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER = 7, + __ETHTOOL_A_TSINFO_CNT = 8, + ETHTOOL_A_TSINFO_MAX = 7, +}; + +enum { + ETHTOOL_A_TS_HWTSTAMP_PROVIDER_UNSPEC = 0, + ETHTOOL_A_TS_HWTSTAMP_PROVIDER_INDEX = 1, + ETHTOOL_A_TS_HWTSTAMP_PROVIDER_QUALIFIER = 2, + __ETHTOOL_A_TS_HWTSTAMP_PROVIDER_CNT = 3, + ETHTOOL_A_TS_HWTSTAMP_PROVIDER_MAX = 2, +}; + +enum { + ETHTOOL_A_TS_STAT_UNSPEC = 0, + ETHTOOL_A_TS_STAT_TX_PKTS = 1, + ETHTOOL_A_TS_STAT_TX_LOST = 2, + ETHTOOL_A_TS_STAT_TX_ERR = 3, + ETHTOOL_A_TS_STAT_TX_ONESTEP_PKTS_UNCONFIRMED = 4, + __ETHTOOL_A_TS_STAT_CNT = 5, + ETHTOOL_A_TS_STAT_MAX = 4, +}; + +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_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, +}; + +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_UNSPEC = 0, + ETHTOOL_A_TUNNEL_UDP_TABLE = 1, + __ETHTOOL_A_TUNNEL_UDP_CNT = 2, + ETHTOOL_A_TUNNEL_UDP_MAX = 1, +}; + +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, +}; + +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_MODULE_FW_FLASH_NTF = 44, + ETHTOOL_MSG_PHY_GET_REPLY = 45, + ETHTOOL_MSG_PHY_NTF = 46, + ETHTOOL_MSG_TSCONFIG_GET_REPLY = 47, + ETHTOOL_MSG_TSCONFIG_SET_REPLY = 48, + __ETHTOOL_MSG_KERNEL_CNT = 49, + ETHTOOL_MSG_KERNEL_MAX = 48, +}; + +enum { + ETHTOOL_MSG_USER_NONE = 0, + ETHTOOL_MSG_STRSET_GET = 1, + ETHTOOL_MSG_LINKINFO_GET = 2, + ETHTOOL_MSG_LINKINFO_SET = 3, + ETHTOOL_MSG_LINKMODES_GET = 4, + ETHTOOL_MSG_LINKMODES_SET = 5, + ETHTOOL_MSG_LINKSTATE_GET = 6, + ETHTOOL_MSG_DEBUG_GET = 7, + ETHTOOL_MSG_DEBUG_SET = 8, + ETHTOOL_MSG_WOL_GET = 9, + ETHTOOL_MSG_WOL_SET = 10, + ETHTOOL_MSG_FEATURES_GET = 11, + ETHTOOL_MSG_FEATURES_SET = 12, + ETHTOOL_MSG_PRIVFLAGS_GET = 13, + ETHTOOL_MSG_PRIVFLAGS_SET = 14, + ETHTOOL_MSG_RINGS_GET = 15, + ETHTOOL_MSG_RINGS_SET = 16, + ETHTOOL_MSG_CHANNELS_GET = 17, + ETHTOOL_MSG_CHANNELS_SET = 18, + ETHTOOL_MSG_COALESCE_GET = 19, + ETHTOOL_MSG_COALESCE_SET = 20, + ETHTOOL_MSG_PAUSE_GET = 21, + ETHTOOL_MSG_PAUSE_SET = 22, + ETHTOOL_MSG_EEE_GET = 23, + ETHTOOL_MSG_EEE_SET = 24, + ETHTOOL_MSG_TSINFO_GET = 25, + ETHTOOL_MSG_CABLE_TEST_ACT = 26, + ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 27, + ETHTOOL_MSG_TUNNEL_INFO_GET = 28, + ETHTOOL_MSG_FEC_GET = 29, + ETHTOOL_MSG_FEC_SET = 30, + ETHTOOL_MSG_MODULE_EEPROM_GET = 31, + ETHTOOL_MSG_STATS_GET = 32, + ETHTOOL_MSG_PHC_VCLOCKS_GET = 33, + ETHTOOL_MSG_MODULE_GET = 34, + ETHTOOL_MSG_MODULE_SET = 35, + ETHTOOL_MSG_PSE_GET = 36, + ETHTOOL_MSG_PSE_SET = 37, + ETHTOOL_MSG_RSS_GET = 38, + ETHTOOL_MSG_PLCA_GET_CFG = 39, + ETHTOOL_MSG_PLCA_SET_CFG = 40, + ETHTOOL_MSG_PLCA_GET_STATUS = 41, + ETHTOOL_MSG_MM_GET = 42, + ETHTOOL_MSG_MM_SET = 43, + ETHTOOL_MSG_MODULE_FW_FLASH_ACT = 44, + ETHTOOL_MSG_PHY_GET = 45, + ETHTOOL_MSG_TSCONFIG_GET = 46, + ETHTOOL_MSG_TSCONFIG_SET = 47, + __ETHTOOL_MSG_USER_CNT = 48, + ETHTOOL_MSG_USER_MAX = 47, +}; + +enum { + ETHTOOL_STATS_ETH_PHY = 0, + ETHTOOL_STATS_ETH_MAC = 1, + ETHTOOL_STATS_ETH_CTRL = 2, + ETHTOOL_STATS_RMON = 3, + ETHTOOL_STATS_PHY = 4, + __ETHTOOL_STATS_CNT = 5, +}; + +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, + ETHTOOL_UDP_TUNNEL_TYPE_MAX = 2, +}; + +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, +}; + +enum { + EVENTFS_SAVE_MODE = 65536, + EVENTFS_SAVE_UID = 131072, + EVENTFS_SAVE_GID = 262144, +}; + +enum { + EVENT_FILE_FL_ENABLED = 1, + EVENT_FILE_FL_RECORDED_CMD = 2, + EVENT_FILE_FL_RECORDED_TGID = 4, + EVENT_FILE_FL_FILTERED = 8, + EVENT_FILE_FL_NO_SET_FILTER = 16, + EVENT_FILE_FL_SOFT_MODE = 32, + EVENT_FILE_FL_SOFT_DISABLED = 64, + EVENT_FILE_FL_TRIGGER_MODE = 128, + EVENT_FILE_FL_TRIGGER_COND = 256, + EVENT_FILE_FL_PID_FILTER = 512, + EVENT_FILE_FL_WAS_ENABLED = 1024, + EVENT_FILE_FL_FREED = 2048, +}; + +enum { + EVENT_FILE_FL_ENABLED_BIT = 0, + EVENT_FILE_FL_RECORDED_CMD_BIT = 1, + EVENT_FILE_FL_RECORDED_TGID_BIT = 2, + EVENT_FILE_FL_FILTERED_BIT = 3, + EVENT_FILE_FL_NO_SET_FILTER_BIT = 4, + EVENT_FILE_FL_SOFT_MODE_BIT = 5, + EVENT_FILE_FL_SOFT_DISABLED_BIT = 6, + EVENT_FILE_FL_TRIGGER_MODE_BIT = 7, + EVENT_FILE_FL_TRIGGER_COND_BIT = 8, + EVENT_FILE_FL_PID_FILTER_BIT = 9, + EVENT_FILE_FL_WAS_ENABLED_BIT = 10, + EVENT_FILE_FL_FREED_BIT = 11, +}; + +enum { + EVENT_TRIGGER_FL_PROBE = 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, +}; + +enum { + EXT4_FC_STATUS_OK = 0, + EXT4_FC_STATUS_INELIGIBLE = 1, + EXT4_FC_STATUS_SKIPPED = 2, + EXT4_FC_STATUS_FAILED = 3, +}; + +enum { + EXT4_FLAGS_RESIZING = 0, + EXT4_FLAGS_SHUTDOWN = 1, + EXT4_FLAGS_BDEV_IS_DAX = 2, + EXT4_FLAGS_EMERGENCY_RO = 3, +}; + +enum { + EXT4_INODE_SECRM = 0, + EXT4_INODE_UNRM = 1, + EXT4_INODE_COMPR = 2, + EXT4_INODE_SYNC = 3, + EXT4_INODE_IMMUTABLE = 4, + EXT4_INODE_APPEND = 5, + EXT4_INODE_NODUMP = 6, + EXT4_INODE_NOATIME = 7, + EXT4_INODE_DIRTY = 8, + EXT4_INODE_COMPRBLK = 9, + EXT4_INODE_NOCOMPR = 10, + EXT4_INODE_ENCRYPT = 11, + EXT4_INODE_INDEX = 12, + EXT4_INODE_IMAGIC = 13, + EXT4_INODE_JOURNAL_DATA = 14, + EXT4_INODE_NOTAIL = 15, + EXT4_INODE_DIRSYNC = 16, + EXT4_INODE_TOPDIR = 17, + EXT4_INODE_HUGE_FILE = 18, + EXT4_INODE_EXTENTS = 19, + EXT4_INODE_VERITY = 20, + EXT4_INODE_EA_INODE = 21, + EXT4_INODE_DAX = 25, + EXT4_INODE_INLINE_DATA = 28, + EXT4_INODE_PROJINHERIT = 29, + EXT4_INODE_CASEFOLD = 30, + EXT4_INODE_RESERVED = 31, +}; + +enum { + EXT4_MF_MNTDIR_SAMPLED = 0, + EXT4_MF_FC_INELIGIBLE = 1, + EXT4_MF_JOURNAL_DESTROY = 2, +}; + +enum { + EXT4_STATE_NEW = 0, + EXT4_STATE_XATTR = 1, + EXT4_STATE_NO_EXPAND = 2, + EXT4_STATE_DA_ALLOC_CLOSE = 3, + EXT4_STATE_EXT_MIGRATE = 4, + EXT4_STATE_NEWENTRY = 5, + EXT4_STATE_MAY_INLINE_DATA = 6, + EXT4_STATE_EXT_PRECACHED = 7, + EXT4_STATE_LUSTRE_EA_INODE = 8, + EXT4_STATE_VERITY_IN_PROGRESS = 9, + EXT4_STATE_FC_COMMITTING = 10, + EXT4_STATE_ORPHAN_FILE = 11, +}; + +enum { + 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 { + FAN_EVENT_INIT = 0, + FAN_EVENT_REPORTED = 1, + FAN_EVENT_ANSWERED = 2, + FAN_EVENT_CANCELED = 3, +}; + +enum { + FAST_W_CNT = 16, +}; + +enum { + FBCON_LOGO_CANSHOW = -1, + FBCON_LOGO_DRAW = -2, + FBCON_LOGO_DONTSHOW = -3, +}; + +enum { + FB_BLANK_UNBLANK = 0, + FB_BLANK_NORMAL = 1, + FB_BLANK_VSYNC_SUSPEND = 2, + FB_BLANK_HSYNC_SUSPEND = 3, + FB_BLANK_POWERDOWN = 4, +}; + +enum { + FGRAPH_TYPE_RESERVED = 0, + FGRAPH_TYPE_BITMAP = 1, + FGRAPH_TYPE_DATA = 2, +}; + +enum { + FIB6_NO_SERNUM_CHANGE = 0, +}; + +enum { + FILTER_OTHER = 0, + FILTER_STATIC_STRING = 1, + FILTER_DYN_STRING = 2, + FILTER_RDYN_STRING = 3, + FILTER_PTR_STRING = 4, + FILTER_TRACE_FN = 5, + FILTER_CPUMASK = 6, + FILTER_COMM = 7, + FILTER_CPU = 8, + FILTER_STACKTRACE = 9, +}; + +enum { + FILT_ERR_NONE = 0, + FILT_ERR_INVALID_OP = 1, + FILT_ERR_TOO_MANY_OPEN = 2, + FILT_ERR_TOO_MANY_CLOSE = 3, + FILT_ERR_MISSING_QUOTE = 4, + FILT_ERR_MISSING_BRACE_OPEN = 5, + FILT_ERR_MISSING_BRACE_CLOSE = 6, + FILT_ERR_OPERAND_TOO_LONG = 7, + FILT_ERR_EXPECT_STRING = 8, + FILT_ERR_EXPECT_DIGIT = 9, + FILT_ERR_ILLEGAL_FIELD_OP = 10, + FILT_ERR_FIELD_NOT_FOUND = 11, + FILT_ERR_ILLEGAL_INTVAL = 12, + FILT_ERR_BAD_SUBSYS_FILTER = 13, + FILT_ERR_TOO_MANY_PREDS = 14, + FILT_ERR_INVALID_FILTER = 15, + FILT_ERR_INVALID_CPULIST = 16, + FILT_ERR_IP_FIELD_ONLY = 17, + FILT_ERR_INVALID_VALUE = 18, + FILT_ERR_NO_FUNCTION = 19, + FILT_ERR_ERRNO = 20, + FILT_ERR_NO_FILTER = 21, +}; + +enum { + FLAGS_ADC = 1, + FLAGS_RTC = 2, +}; + +enum { + FLAGS_FILL_FULL = 268435456, + FLAGS_FILL_START = 536870912, + FLAGS_FILL_END = 805306368, +}; + +enum { + FOLL_TOUCH = 65536, + FOLL_TRIED = 131072, + FOLL_REMOTE = 262144, + FOLL_PIN = 524288, + FOLL_FAST_ONLY = 1048576, + FOLL_UNLOCKABLE = 2097152, + FOLL_MADV_POPULATE = 4194304, +}; + +enum { + FOLL_WRITE = 1, + FOLL_GET = 2, + FOLL_DUMP = 4, + FOLL_FORCE = 8, + FOLL_NOWAIT = 16, + FOLL_NOFAULT = 32, + FOLL_HWPOISON = 64, + FOLL_ANON = 128, + FOLL_LONGTERM = 256, + FOLL_SPLIT_PMD = 512, + FOLL_PCI_P2PDMA = 1024, + FOLL_INTERRUPTIBLE = 2048, + FOLL_HONOR_NUMA_FAULT = 4096, +}; + +enum { + FORMAT_HEADER = 1, + FORMAT_FIELD_SEPERATOR = 2, + FORMAT_PRINTFMT = 3, +}; + +enum { + FRACTION_DENOM = 128, +}; + +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_DSCP = 25, + FRA_FLOWLABEL = 26, + FRA_FLOWLABEL_MASK = 27, + __FRA_MAX = 28, +}; + +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 { + FTRACE_FL_ENABLED = 2147483648, + FTRACE_FL_REGS = 1073741824, + FTRACE_FL_REGS_EN = 536870912, + FTRACE_FL_TRAMP = 268435456, + FTRACE_FL_TRAMP_EN = 134217728, + FTRACE_FL_IPMODIFY = 67108864, + FTRACE_FL_DISABLED = 33554432, + FTRACE_FL_DIRECT = 16777216, + FTRACE_FL_DIRECT_EN = 8388608, + FTRACE_FL_CALL_OPS = 4194304, + FTRACE_FL_CALL_OPS_EN = 2097152, + FTRACE_FL_TOUCHED = 1048576, + FTRACE_FL_MODIFIED = 524288, +}; + +enum { + FTRACE_HASH_FL_MOD = 1, +}; + +enum { + FTRACE_ITER_FILTER = 1, + FTRACE_ITER_NOTRACE = 2, + FTRACE_ITER_PRINTALL = 4, + FTRACE_ITER_DO_PROBES = 8, + FTRACE_ITER_PROBE = 16, + FTRACE_ITER_MOD = 32, + FTRACE_ITER_ENABLED = 64, + FTRACE_ITER_TOUCHED = 128, + FTRACE_ITER_ADDRS = 256, +}; + +enum { + FTRACE_MODIFY_ENABLE_FL = 1, + FTRACE_MODIFY_MAY_SLEEP_FL = 2, +}; + +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, + FTRACE_OPS_FL_SUBOP = 262144, +}; + +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_UPDATE_IGNORE = 0, + FTRACE_UPDATE_MAKE_CALL = 1, + FTRACE_UPDATE_MODIFY_CALL = 2, + FTRACE_UPDATE_MAKE_NOP = 3, +}; + +enum { + FUSE_I_ADVISE_RDPLUS = 0, + FUSE_I_INIT_RDPLUS = 1, + FUSE_I_SIZE_UNSTABLE = 2, + FUSE_I_BAD = 3, + FUSE_I_BTIME = 4, + FUSE_I_CACHE_IO_MODE = 5, +}; + +enum { + FUTEX_STATE_OK = 0, + FUTEX_STATE_EXITING = 1, + FUTEX_STATE_DEAD = 2, +}; + +enum { + GATE_INTERRUPT = 14, + GATE_TRAP = 15, + GATE_CALL = 12, + GATE_TASK = 5, +}; + +enum { + GENHD_FL_REMOVABLE = 1, + GENHD_FL_HIDDEN = 2, + GENHD_FL_NO_PART = 4, +}; + +enum { + GHES_SEV_NO = 0, + GHES_SEV_CORRECTED = 1, + GHES_SEV_RECOVERABLE = 2, + GHES_SEV_PANIC = 3, +}; + +enum { + GI2C_PORT = 0, + PI2C_PORT = 1, +}; + +enum { + GP_IDLE = 0, + GP_ENTER = 1, + GP_PASSED = 2, + GP_EXIT = 3, + GP_REPLAY = 4, +}; + +enum { + HANDSHAKE_A_ACCEPT_SOCKFD = 1, + HANDSHAKE_A_ACCEPT_HANDLER_CLASS = 2, + HANDSHAKE_A_ACCEPT_MESSAGE_TYPE = 3, + HANDSHAKE_A_ACCEPT_TIMEOUT = 4, + HANDSHAKE_A_ACCEPT_AUTH_MODE = 5, + HANDSHAKE_A_ACCEPT_PEER_IDENTITY = 6, + HANDSHAKE_A_ACCEPT_CERTIFICATE = 7, + HANDSHAKE_A_ACCEPT_PEERNAME = 8, + __HANDSHAKE_A_ACCEPT_MAX = 9, + HANDSHAKE_A_ACCEPT_MAX = 8, +}; + +enum { + HANDSHAKE_A_DONE_STATUS = 1, + HANDSHAKE_A_DONE_SOCKFD = 2, + HANDSHAKE_A_DONE_REMOTE_AUTH = 3, + __HANDSHAKE_A_DONE_MAX = 4, + HANDSHAKE_A_DONE_MAX = 3, +}; + +enum { + HANDSHAKE_A_X509_CERT = 1, + HANDSHAKE_A_X509_PRIVKEY = 2, + __HANDSHAKE_A_X509_MAX = 3, + HANDSHAKE_A_X509_MAX = 2, +}; + +enum { + HANDSHAKE_CMD_READY = 1, + HANDSHAKE_CMD_ACCEPT = 2, + HANDSHAKE_CMD_DONE = 3, + __HANDSHAKE_CMD_MAX = 4, + HANDSHAKE_CMD_MAX = 3, +}; + +enum { + HANDSHAKE_NLGRP_NONE = 0, + HANDSHAKE_NLGRP_TLSHD = 1, +}; + +enum { + HASH_SIZE = 128, +}; + +enum { + HAS_READ = 1, + HAS_WRITE = 2, + HAS_LSEEK = 4, + HAS_POLL = 8, + HAS_IOCTL = 16, +}; + +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 { + HIST_ERR_NONE = 0, + HIST_ERR_DUPLICATE_VAR = 1, + HIST_ERR_VAR_NOT_UNIQUE = 2, + HIST_ERR_TOO_MANY_VARS = 3, + HIST_ERR_MALFORMED_ASSIGNMENT = 4, + HIST_ERR_NAMED_MISMATCH = 5, + HIST_ERR_TRIGGER_EEXIST = 6, + HIST_ERR_TRIGGER_ENOENT_CLEAR = 7, + HIST_ERR_SET_CLOCK_FAIL = 8, + HIST_ERR_BAD_FIELD_MODIFIER = 9, + HIST_ERR_TOO_MANY_SUBEXPR = 10, + HIST_ERR_TIMESTAMP_MISMATCH = 11, + HIST_ERR_TOO_MANY_FIELD_VARS = 12, + HIST_ERR_EVENT_FILE_NOT_FOUND = 13, + HIST_ERR_HIST_NOT_FOUND = 14, + HIST_ERR_HIST_CREATE_FAIL = 15, + HIST_ERR_SYNTH_VAR_NOT_FOUND = 16, + HIST_ERR_SYNTH_EVENT_NOT_FOUND = 17, + HIST_ERR_SYNTH_TYPE_MISMATCH = 18, + HIST_ERR_SYNTH_COUNT_MISMATCH = 19, + HIST_ERR_FIELD_VAR_PARSE_FAIL = 20, + HIST_ERR_VAR_CREATE_FIND_FAIL = 21, + HIST_ERR_ONX_NOT_VAR = 22, + HIST_ERR_ONX_VAR_NOT_FOUND = 23, + HIST_ERR_ONX_VAR_CREATE_FAIL = 24, + HIST_ERR_FIELD_VAR_CREATE_FAIL = 25, + HIST_ERR_TOO_MANY_PARAMS = 26, + HIST_ERR_PARAM_NOT_FOUND = 27, + HIST_ERR_INVALID_PARAM = 28, + HIST_ERR_ACTION_NOT_FOUND = 29, + HIST_ERR_NO_SAVE_PARAMS = 30, + HIST_ERR_TOO_MANY_SAVE_ACTIONS = 31, + HIST_ERR_ACTION_MISMATCH = 32, + HIST_ERR_NO_CLOSING_PAREN = 33, + HIST_ERR_SUBSYS_NOT_FOUND = 34, + HIST_ERR_INVALID_SUBSYS_EVENT = 35, + HIST_ERR_INVALID_REF_KEY = 36, + HIST_ERR_VAR_NOT_FOUND = 37, + HIST_ERR_FIELD_NOT_FOUND = 38, + HIST_ERR_EMPTY_ASSIGNMENT = 39, + HIST_ERR_INVALID_SORT_MODIFIER = 40, + HIST_ERR_EMPTY_SORT_FIELD = 41, + HIST_ERR_TOO_MANY_SORT_FIELDS = 42, + HIST_ERR_INVALID_SORT_FIELD = 43, + HIST_ERR_INVALID_STR_OPERAND = 44, + HIST_ERR_EXPECT_NUMBER = 45, + HIST_ERR_UNARY_MINUS_SUBEXPR = 46, + HIST_ERR_DIVISION_BY_ZERO = 47, + HIST_ERR_NEED_NOHC_VAL = 48, +}; + +enum { + HI_SOFTIRQ = 0, + TIMER_SOFTIRQ = 1, + NET_TX_SOFTIRQ = 2, + NET_RX_SOFTIRQ = 3, + BLOCK_SOFTIRQ = 4, + IRQ_POLL_SOFTIRQ = 5, + TASKLET_SOFTIRQ = 6, + SCHED_SOFTIRQ = 7, + HRTIMER_SOFTIRQ = 8, + RCU_SOFTIRQ = 9, + NR_SOFTIRQS = 10, +}; + +enum { + HMM_NEED_FAULT = 1, + HMM_NEED_WRITE_FAULT = 2, + HMM_NEED_ALL_BITS = 3, +}; + +enum { + HOST_L_CNT = 6, +}; + +enum { + HOST_L_DUR = 9, +}; + +enum { + HOST_S_CNT = 7, +}; + +enum { + HOST_S_DUR = 8, +}; + +enum { + HP_THREAD_NONE = 0, + HP_THREAD_ACTIVE = 1, + HP_THREAD_PARKED = 2, +}; + +enum { + HSWEP_PCI_UNCORE_HA = 0, + HSWEP_PCI_UNCORE_IMC = 1, + HSWEP_PCI_UNCORE_IRP = 2, + HSWEP_PCI_UNCORE_QPI = 3, + HSWEP_PCI_UNCORE_R2PCIE = 4, + HSWEP_PCI_UNCORE_R3QPI = 5, +}; + +enum { + HTE_TS_REGISTERED = 0, + HTE_TS_REQ = 1, + HTE_TS_DISABLE = 2, + HTE_TS_QUEUE_WK = 3, +}; + +enum { + HUGETLB_SHMFS_INODE = 1, + HUGETLB_ANONHUGE_INODE = 2, +}; + +enum { + HV_SUBNODE_ANY = 0, + HV_SUBNODE_SOCKET = 1, + HV_SUBNODE_CLUSTER = 2, + HV_SUBNODE_L3 = 3, + HV_SUBNODE_COUNT = 4, + HV_SUBNODE_INVALID = -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, +}; + +enum { + HW_BREAKPOINT_LEN_1 = 1, + HW_BREAKPOINT_LEN_2 = 2, + HW_BREAKPOINT_LEN_3 = 3, + HW_BREAKPOINT_LEN_4 = 4, + HW_BREAKPOINT_LEN_5 = 5, + HW_BREAKPOINT_LEN_6 = 6, + HW_BREAKPOINT_LEN_7 = 7, + HW_BREAKPOINT_LEN_8 = 8, +}; + +enum { + IBM = 0, + TVP = 1, +}; + +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 { + 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 { + ICQ_EXITED = 4, + ICQ_DESTROYED = 8, +}; + +enum { + ICX_PCIE1_PMON_ID = 0, + ICX_PCIE2_PMON_ID = 1, + ICX_PCIE3_PMON_ID = 2, + ICX_PCIE4_PMON_ID = 3, + ICX_PCIE5_PMON_ID = 4, + ICX_CBDMA_DMI_PMON_ID = 5, +}; + +enum { + ICX_PCI_UNCORE_M2M = 0, + ICX_PCI_UNCORE_UPI = 1, + ICX_PCI_UNCORE_M3UPI = 2, +}; + +enum { + IDX_MODULE_ID = 0, + IDX_ST_OPS_COMMON_VALUE_ID = 1, +}; + +enum { + IFAL_ADDRESS = 1, + IFAL_LABEL = 2, + __IFAL_MAX = 3, +}; + +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 { + IFLA_BRIDGE_FLAGS = 0, + IFLA_BRIDGE_MODE = 1, + IFLA_BRIDGE_VLAN_INFO = 2, + IFLA_BRIDGE_VLAN_TUNNEL_INFO = 3, + IFLA_BRIDGE_MRP = 4, + IFLA_BRIDGE_CFM = 5, + IFLA_BRIDGE_MST = 6, + __IFLA_BRIDGE_MAX = 7, +}; + +enum { + IFLA_BRPORT_UNSPEC = 0, + IFLA_BRPORT_STATE = 1, + IFLA_BRPORT_PRIORITY = 2, + IFLA_BRPORT_COST = 3, + IFLA_BRPORT_MODE = 4, + IFLA_BRPORT_GUARD = 5, + IFLA_BRPORT_PROTECT = 6, + IFLA_BRPORT_FAST_LEAVE = 7, + IFLA_BRPORT_LEARNING = 8, + IFLA_BRPORT_UNICAST_FLOOD = 9, + IFLA_BRPORT_PROXYARP = 10, + IFLA_BRPORT_LEARNING_SYNC = 11, + IFLA_BRPORT_PROXYARP_WIFI = 12, + IFLA_BRPORT_ROOT_ID = 13, + IFLA_BRPORT_BRIDGE_ID = 14, + IFLA_BRPORT_DESIGNATED_PORT = 15, + IFLA_BRPORT_DESIGNATED_COST = 16, + IFLA_BRPORT_ID = 17, + IFLA_BRPORT_NO = 18, + IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19, + IFLA_BRPORT_CONFIG_PENDING = 20, + IFLA_BRPORT_MESSAGE_AGE_TIMER = 21, + IFLA_BRPORT_FORWARD_DELAY_TIMER = 22, + IFLA_BRPORT_HOLD_TIMER = 23, + IFLA_BRPORT_FLUSH = 24, + IFLA_BRPORT_MULTICAST_ROUTER = 25, + IFLA_BRPORT_PAD = 26, + IFLA_BRPORT_MCAST_FLOOD = 27, + IFLA_BRPORT_MCAST_TO_UCAST = 28, + IFLA_BRPORT_VLAN_TUNNEL = 29, + IFLA_BRPORT_BCAST_FLOOD = 30, + IFLA_BRPORT_GROUP_FWD_MASK = 31, + IFLA_BRPORT_NEIGH_SUPPRESS = 32, + IFLA_BRPORT_ISOLATED = 33, + IFLA_BRPORT_BACKUP_PORT = 34, + IFLA_BRPORT_MRP_RING_OPEN = 35, + IFLA_BRPORT_MRP_IN_OPEN = 36, + IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37, + IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38, + IFLA_BRPORT_LOCKED = 39, + IFLA_BRPORT_MAB = 40, + IFLA_BRPORT_MCAST_N_GROUPS = 41, + IFLA_BRPORT_MCAST_MAX_GROUPS = 42, + IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43, + IFLA_BRPORT_BACKUP_NHID = 44, + __IFLA_BRPORT_MAX = 45, +}; + +enum { + IFLA_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_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 { + IFLA_INET_UNSPEC = 0, + IFLA_INET_CONF = 1, + __IFLA_INET_MAX = 2, +}; + +enum { + IFLA_INFO_UNSPEC = 0, + IFLA_INFO_KIND = 1, + IFLA_INFO_DATA = 2, + IFLA_INFO_XSTATS = 3, + IFLA_INFO_SLAVE_KIND = 4, + IFLA_INFO_SLAVE_DATA = 5, + __IFLA_INFO_MAX = 6, +}; + +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_VENDOR_BREAK = 21, + IFLA_IPTUN_FAN_MAP = 33, + __IFLA_IPTUN_MAX = 34, +}; + +enum { + IFLA_MCTP_UNSPEC = 0, + IFLA_MCTP_NET = 1, + IFLA_MCTP_PHYS_BINDING = 2, + __IFLA_MCTP_MAX = 3, +}; + +enum { + IFLA_NETKIT_UNSPEC = 0, + IFLA_NETKIT_PEER_INFO = 1, + IFLA_NETKIT_PRIMARY = 2, + IFLA_NETKIT_POLICY = 3, + IFLA_NETKIT_PEER_POLICY = 4, + IFLA_NETKIT_MODE = 5, + IFLA_NETKIT_SCRUB = 6, + IFLA_NETKIT_PEER_SCRUB = 7, + IFLA_NETKIT_HEADROOM = 8, + IFLA_NETKIT_TAILROOM = 9, + __IFLA_NETKIT_MAX = 10, +}; + +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_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 { + 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 { + IFLA_PPP_UNSPEC = 0, + IFLA_PPP_DEV_FD = 1, + __IFLA_PPP_MAX = 2, +}; + +enum { + IFLA_PROTO_DOWN_REASON_UNSPEC = 0, + IFLA_PROTO_DOWN_REASON_MASK = 1, + IFLA_PROTO_DOWN_REASON_VALUE = 2, + __IFLA_PROTO_DOWN_REASON_CNT = 3, + IFLA_PROTO_DOWN_REASON_MAX = 2, +}; + +enum { + IFLA_STATS_GETSET_UNSPEC = 0, + IFLA_STATS_GET_FILTERS = 1, + IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 2, + __IFLA_STATS_GETSET_MAX = 3, +}; + +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_TUN_UNSPEC = 0, + IFLA_TUN_OWNER = 1, + IFLA_TUN_GROUP = 2, + IFLA_TUN_TYPE = 3, + IFLA_TUN_PI = 4, + IFLA_TUN_VNET_HDR = 5, + IFLA_TUN_PERSIST = 6, + IFLA_TUN_MULTI_QUEUE = 7, + IFLA_TUN_NUM_QUEUES = 8, + IFLA_TUN_NUM_DISABLED_QUEUES = 9, + __IFLA_TUN_MAX = 10, +}; + +enum { + IFLA_UNSPEC = 0, + IFLA_ADDRESS = 1, + IFLA_BROADCAST = 2, + IFLA_IFNAME = 3, + IFLA_MTU = 4, + IFLA_LINK = 5, + IFLA_QDISC = 6, + IFLA_STATS = 7, + IFLA_COST = 8, + IFLA_PRIORITY = 9, + IFLA_MASTER = 10, + IFLA_WIRELESS = 11, + IFLA_PROTINFO = 12, + IFLA_TXQLEN = 13, + IFLA_MAP = 14, + IFLA_WEIGHT = 15, + IFLA_OPERSTATE = 16, + IFLA_LINKMODE = 17, + IFLA_LINKINFO = 18, + IFLA_NET_NS_PID = 19, + IFLA_IFALIAS = 20, + IFLA_NUM_VF = 21, + IFLA_VFINFO_LIST = 22, + IFLA_STATS64 = 23, + IFLA_VF_PORTS = 24, + IFLA_PORT_SELF = 25, + IFLA_AF_SPEC = 26, + IFLA_GROUP = 27, + IFLA_NET_NS_FD = 28, + IFLA_EXT_MASK = 29, + IFLA_PROMISCUITY = 30, + IFLA_NUM_TX_QUEUES = 31, + IFLA_NUM_RX_QUEUES = 32, + IFLA_CARRIER = 33, + IFLA_PHYS_PORT_ID = 34, + IFLA_CARRIER_CHANGES = 35, + IFLA_PHYS_SWITCH_ID = 36, + IFLA_LINK_NETNSID = 37, + IFLA_PHYS_PORT_NAME = 38, + IFLA_PROTO_DOWN = 39, + IFLA_GSO_MAX_SEGS = 40, + IFLA_GSO_MAX_SIZE = 41, + IFLA_PAD = 42, + IFLA_XDP = 43, + IFLA_EVENT = 44, + IFLA_NEW_NETNSID = 45, + IFLA_IF_NETNSID = 46, + IFLA_TARGET_NETNSID = 46, + IFLA_CARRIER_UP_COUNT = 47, + IFLA_CARRIER_DOWN_COUNT = 48, + IFLA_NEW_IFINDEX = 49, + IFLA_MIN_MTU = 50, + IFLA_MAX_MTU = 51, + IFLA_PROP_LIST = 52, + IFLA_ALT_IFNAME = 53, + IFLA_PERM_ADDRESS = 54, + IFLA_PROTO_DOWN_REASON = 55, + IFLA_PARENT_DEV_NAME = 56, + IFLA_PARENT_DEV_BUS_NAME = 57, + IFLA_GRO_MAX_SIZE = 58, + IFLA_TSO_MAX_SIZE = 59, + IFLA_TSO_MAX_SEGS = 60, + IFLA_ALLMULTI = 61, + IFLA_DEVLINK_PORT = 62, + IFLA_GSO_IPV4_MAX_SIZE = 63, + IFLA_GRO_IPV4_MAX_SIZE = 64, + IFLA_DPLL_PIN = 65, + IFLA_MAX_PACING_OFFLOAD_HORIZON = 66, + __IFLA_MAX = 67, +}; + +enum { + IFLA_VF_INFO_UNSPEC = 0, + IFLA_VF_INFO = 1, + __IFLA_VF_INFO_MAX = 2, +}; + +enum { + IFLA_VF_PORT_UNSPEC = 0, + IFLA_VF_PORT = 1, + __IFLA_VF_PORT_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_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_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 { + 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, +}; + +enum { + IF_LINK_MODE_DEFAULT = 0, + IF_LINK_MODE_DORMANT = 1, + IF_LINK_MODE_TESTING = 2, +}; + +enum { + IF_OPER_UNKNOWN = 0, + IF_OPER_NOTPRESENT = 1, + IF_OPER_DOWN = 2, + IF_OPER_LOWERLAYERDOWN = 3, + IF_OPER_TESTING = 4, + IF_OPER_DORMANT = 5, + IF_OPER_UP = 6, +}; + +enum { + IF_STATE_ACTION = 0, + IF_STATE_SOURCE = 1, + IF_STATE_END = 2, +}; + +enum { + IIO_TOPOLOGY_TYPE = 0, + UPI_TOPOLOGY_TYPE = 1, + TOPOLOGY_MAX = 2, +}; + +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 { + INET_DIAG_REQ_NONE = 0, + INET_DIAG_REQ_BYTECODE = 1, + INET_DIAG_REQ_SK_BPF_STORAGES = 2, + INET_DIAG_REQ_PROTOCOL = 3, + __INET_DIAG_REQ_MAX = 4, +}; + +enum { + INET_ECN_NOT_ECT = 0, + INET_ECN_ECT_1 = 1, + INET_ECN_ECT_0 = 2, + INET_ECN_CE = 3, + INET_ECN_MASK = 3, +}; + +enum { + INET_FLAGS_PKTINFO = 0, + INET_FLAGS_TTL = 1, + INET_FLAGS_TOS = 2, + INET_FLAGS_RECVOPTS = 3, + INET_FLAGS_RETOPTS = 4, + INET_FLAGS_PASSSEC = 5, + INET_FLAGS_ORIGDSTADDR = 6, + INET_FLAGS_CHECKSUM = 7, + INET_FLAGS_RECVFRAGSIZE = 8, + INET_FLAGS_RECVERR = 9, + INET_FLAGS_RECVERR_RFC4884 = 10, + INET_FLAGS_FREEBIND = 11, + INET_FLAGS_HDRINCL = 12, + INET_FLAGS_MC_LOOP = 13, + INET_FLAGS_MC_ALL = 14, + INET_FLAGS_TRANSPARENT = 15, + INET_FLAGS_IS_ICSK = 16, + INET_FLAGS_NODEFRAG = 17, + INET_FLAGS_BIND_ADDRESS_NO_PORT = 18, + INET_FLAGS_DEFER_CONNECT = 19, + INET_FLAGS_MC6_LOOP = 20, + INET_FLAGS_RECVERR6_RFC4884 = 21, + INET_FLAGS_MC6_ALL = 22, + INET_FLAGS_AUTOFLOWLABEL_SET = 23, + INET_FLAGS_AUTOFLOWLABEL = 24, + INET_FLAGS_DONTFRAG = 25, + INET_FLAGS_RECVERR6 = 26, + INET_FLAGS_REPFLOW = 27, + INET_FLAGS_RTALERT_ISOLATE = 28, + INET_FLAGS_SNDFLOW = 29, + INET_FLAGS_RTALERT = 30, +}; + +enum { + INET_FRAG_FIRST_IN = 1, + INET_FRAG_LAST_IN = 2, + INET_FRAG_COMPLETE = 4, + INET_FRAG_HASH_DEAD = 8, + INET_FRAG_DROP = 16, +}; + +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 { + INSN_F_FRAMENO_MASK = 7, + INSN_F_SPI_MASK = 63, + INSN_F_SPI_SHIFT = 3, + INSN_F_STACK_ACCESS = 512, + INSN_F_DST_REG_STACK = 1024, + INSN_F_SRC_REG_STACK = 2048, +}; + +enum { + INTEL_GPIO_BASE_ZERO = -2, + INTEL_GPIO_BASE_NOMAP = -1, + INTEL_GPIO_BASE_MATCH = 0, +}; + +enum { + INVERT = 1, + PROCESS_AND = 2, + PROCESS_OR = 4, +}; + +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, +}; + +enum { + IOAM6_IPTUNNEL_UNSPEC = 0, + IOAM6_IPTUNNEL_MODE = 1, + IOAM6_IPTUNNEL_DST = 2, + IOAM6_IPTUNNEL_TRACE = 3, + IOAM6_IPTUNNEL_FREQ_K = 4, + IOAM6_IPTUNNEL_FREQ_N = 5, + IOAM6_IPTUNNEL_SRC = 6, + __IOAM6_IPTUNNEL_MAX = 7, +}; + +enum { + IOBL_BUF_RING = 1, + IOBL_INC = 2, +}; + +enum { + IOCB_CMD_PREAD = 0, + IOCB_CMD_PWRITE = 1, + IOCB_CMD_FSYNC = 2, + IOCB_CMD_FDSYNC = 3, + IOCB_CMD_POLL = 5, + IOCB_CMD_NOOP = 6, + IOCB_CMD_PREADV = 7, + IOCB_CMD_PWRITEV = 8, +}; + +enum { + IOMMU_SET_DOMAIN_MUST_SUCCEED = 1, +}; + +enum { + IOPRIO_CLASS_NONE = 0, + IOPRIO_CLASS_RT = 1, + IOPRIO_CLASS_BE = 2, + IOPRIO_CLASS_IDLE = 3, + IOPRIO_CLASS_INVALID = 7, +}; + +enum { + IOPRIO_HINT_NONE = 0, + IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, + IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, + IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, + IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, + IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, + IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, + IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, +}; + +enum { + IOPRIO_WHO_PROCESS = 1, + IOPRIO_WHO_PGRP = 2, + IOPRIO_WHO_USER = 3, +}; + +enum { + IORES_DESC_NONE = 0, + IORES_DESC_CRASH_KERNEL = 1, + IORES_DESC_ACPI_TABLES = 2, + IORES_DESC_ACPI_NV_STORAGE = 3, + IORES_DESC_PERSISTENT_MEMORY = 4, + IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5, + IORES_DESC_DEVICE_PRIVATE_MEMORY = 6, + IORES_DESC_RESERVED = 7, + IORES_DESC_SOFT_RESERVED = 8, + IORES_DESC_CXL = 9, +}; + +enum { + IORES_MAP_SYSTEM_RAM = 1, + IORES_MAP_ENCRYPTED = 2, +}; + +enum { + IORING_MEM_REGION_REG_WAIT_ARG = 1, +}; + +enum { + IORING_MEM_REGION_TYPE_USER = 1, +}; + +enum { + IORING_REGISTER_SRC_REGISTERED = 1, + IORING_REGISTER_DST_REPLACE = 2, +}; + +enum { + IORING_REG_WAIT_TS = 1, +}; + +enum { + IORING_RSRC_FILE = 0, + IORING_RSRC_BUFFER = 1, +}; + +enum { + IOU_F_TWQ_LAZY_WAKE = 1, +}; + +enum { + IOU_OK = 0, + IOU_ISSUE_SKIP_COMPLETE = -529, + IOU_REQUEUE = -3072, + IOU_STOP_MULTISHOT = -125, +}; + +enum { + IOU_POLL_DONE = 0, + IOU_POLL_NO_ACTION = 1, + IOU_POLL_REMOVE_POLL_USE_RES = 2, + IOU_POLL_REISSUE = 3, + IOU_POLL_REQUEUE = 4, +}; + +enum { + IO_ACCT_STALLED_BIT = 0, +}; + +enum { + IO_APOLL_OK = 0, + IO_APOLL_ABORTED = 1, + IO_APOLL_READY = 2, +}; + +enum { + IO_CHECK_CQ_OVERFLOW_BIT = 0, + IO_CHECK_CQ_DROPPED_BIT = 1, +}; + +enum { + IO_EVENTFD_OP_SIGNAL_BIT = 0, +}; + +enum { + IO_REGION_F_VMAP = 1, + IO_REGION_F_USER_PROVIDED = 2, + IO_REGION_F_SINGLE_REF = 4, +}; + +enum { + IO_SQ_THREAD_SHOULD_STOP = 0, + IO_SQ_THREAD_SHOULD_PARK = 1, +}; + +enum { + IO_WORKER_F_UP = 0, + IO_WORKER_F_RUNNING = 1, + IO_WORKER_F_FREE = 2, + IO_WORKER_F_BOUND = 3, +}; + +enum { + IO_WQ_ACCT_BOUND = 0, + IO_WQ_ACCT_UNBOUND = 1, + IO_WQ_ACCT_NR = 2, +}; + +enum { + IO_WQ_BIT_EXIT = 0, +}; + +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 { + IP6MRA_CREPORT_UNSPEC = 0, + IP6MRA_CREPORT_MSGTYPE = 1, + IP6MRA_CREPORT_MIF_ID = 2, + IP6MRA_CREPORT_SRC_ADDR = 3, + IP6MRA_CREPORT_DST_ADDR = 4, + IP6MRA_CREPORT_PKT = 5, + __IP6MRA_CREPORT_MAX = 6, +}; + +enum { + IP6_FH_F_FRAG = 1, + IP6_FH_F_AUTH = 2, + IP6_FH_F_SKIP_RH = 4, +}; + +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 { + 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_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, +}; + +enum { + IPMRA_VIF_UNSPEC = 0, + IPMRA_VIF = 1, + __IPMRA_VIF_MAX = 2, +}; + +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_AGGFRAG = 144, + IPPROTO_RAW = 255, + IPPROTO_SMC = 256, + IPPROTO_MPTCP = 262, + IPPROTO_MAX = 263, +}; + +enum { + IPSTATS_MIB_NUM = 0, + IPSTATS_MIB_INPKTS = 1, + IPSTATS_MIB_INOCTETS = 2, + IPSTATS_MIB_INDELIVERS = 3, + IPSTATS_MIB_OUTFORWDATAGRAMS = 4, + IPSTATS_MIB_OUTREQUESTS = 5, + IPSTATS_MIB_OUTOCTETS = 6, + IPSTATS_MIB_INHDRERRORS = 7, + IPSTATS_MIB_INTOOBIGERRORS = 8, + IPSTATS_MIB_INNOROUTES = 9, + IPSTATS_MIB_INADDRERRORS = 10, + IPSTATS_MIB_INUNKNOWNPROTOS = 11, + IPSTATS_MIB_INTRUNCATEDPKTS = 12, + IPSTATS_MIB_INDISCARDS = 13, + IPSTATS_MIB_OUTDISCARDS = 14, + IPSTATS_MIB_OUTNOROUTES = 15, + IPSTATS_MIB_REASMTIMEOUT = 16, + IPSTATS_MIB_REASMREQDS = 17, + IPSTATS_MIB_REASMOKS = 18, + IPSTATS_MIB_REASMFAILS = 19, + IPSTATS_MIB_FRAGOKS = 20, + IPSTATS_MIB_FRAGFAILS = 21, + IPSTATS_MIB_FRAGCREATES = 22, + IPSTATS_MIB_INMCASTPKTS = 23, + IPSTATS_MIB_OUTMCASTPKTS = 24, + IPSTATS_MIB_INBCASTPKTS = 25, + IPSTATS_MIB_OUTBCASTPKTS = 26, + IPSTATS_MIB_INMCASTOCTETS = 27, + IPSTATS_MIB_OUTMCASTOCTETS = 28, + IPSTATS_MIB_INBCASTOCTETS = 29, + IPSTATS_MIB_OUTBCASTOCTETS = 30, + IPSTATS_MIB_CSUMERRORS = 31, + IPSTATS_MIB_NOECTPKTS = 32, + IPSTATS_MIB_ECT1PKTS = 33, + IPSTATS_MIB_ECT0PKTS = 34, + IPSTATS_MIB_CEPKTS = 35, + IPSTATS_MIB_REASM_OVERLAPS = 36, + IPSTATS_MIB_OUTPKTS = 37, + __IPSTATS_MIB_MAX = 38, +}; + +enum { + 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 { + 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 { + IP_TUNNEL_CSUM_BIT = 0, + IP_TUNNEL_ROUTING_BIT = 1, + IP_TUNNEL_KEY_BIT = 2, + IP_TUNNEL_SEQ_BIT = 3, + IP_TUNNEL_STRICT_BIT = 4, + IP_TUNNEL_REC_BIT = 5, + IP_TUNNEL_VERSION_BIT = 6, + IP_TUNNEL_NO_KEY_BIT = 7, + IP_TUNNEL_DONT_FRAGMENT_BIT = 8, + IP_TUNNEL_OAM_BIT = 9, + IP_TUNNEL_CRIT_OPT_BIT = 10, + IP_TUNNEL_GENEVE_OPT_BIT = 11, + IP_TUNNEL_VXLAN_OPT_BIT = 12, + IP_TUNNEL_NOCACHE_BIT = 13, + IP_TUNNEL_ERSPAN_OPT_BIT = 14, + IP_TUNNEL_GTP_OPT_BIT = 15, + IP_TUNNEL_VTI_BIT = 16, + IP_TUNNEL_SIT_ISATAP_BIT = 16, + IP_TUNNEL_PFCP_OPT_BIT = 17, + __IP_TUNNEL_FLAG_NUM = 18, +}; + +enum { + IRQCHIP_FWNODE_REAL = 0, + IRQCHIP_FWNODE_NAMED = 1, + IRQCHIP_FWNODE_NAMED_ID = 2, +}; + +enum { + IRQCHIP_SET_TYPE_MASKED = 1, + IRQCHIP_EOI_IF_HANDLED = 2, + IRQCHIP_MASK_ON_SUSPEND = 4, + IRQCHIP_ONOFFLINE_ENABLED = 8, + IRQCHIP_SKIP_SET_WAKE = 16, + IRQCHIP_ONESHOT_SAFE = 32, + IRQCHIP_EOI_THREADED = 64, + IRQCHIP_SUPPORTS_LEVEL_MSI = 128, + IRQCHIP_SUPPORTS_NMI = 256, + IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, + IRQCHIP_AFFINITY_PRE_STARTUP = 1024, + IRQCHIP_IMMUTABLE = 2048, + IRQCHIP_MOVE_DEFERRED = 4096, +}; + +enum { + IRQC_IS_HARDIRQ = 0, + IRQC_IS_NESTED = 1, +}; + +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_IRQ_DISABLED = 65536, + IRQD_IRQ_MASKED = 131072, + IRQD_IRQ_INPROGRESS = 262144, + IRQD_WAKEUP_ARMED = 524288, + IRQD_FORWARDED_TO_VCPU = 1048576, + IRQD_AFFINITY_MANAGED = 2097152, + IRQD_IRQ_STARTED = 4194304, + IRQD_MANAGED_SHUTDOWN = 8388608, + IRQD_SINGLE_TARGET = 16777216, + IRQD_DEFAULT_TRIGGER_SET = 33554432, + IRQD_CAN_RESERVE = 67108864, + IRQD_HANDLE_ENFORCE_IRQCTX = 134217728, + IRQD_AFFINITY_ON_ACTIVATE = 268435456, + IRQD_IRQ_ENABLED_ON_SUSPEND = 536870912, + IRQD_RESEND_WHEN_IN_PROGRESS = 1073741824, +}; + +enum { + IRQS_AUTODETECT = 1, + IRQS_SPURIOUS_DISABLED = 2, + IRQS_POLL_INPROGRESS = 8, + IRQS_ONESHOT = 32, + IRQS_REPLAY = 64, + IRQS_WAITING = 128, + IRQS_PENDING = 512, + IRQS_SUSPENDED = 2048, + IRQS_TIMINGS = 4096, + IRQS_NMI = 8192, + IRQS_SYSFS = 16384, +}; + +enum { + IRQTF_RUNTHREAD = 0, + IRQTF_WARNED = 1, + IRQTF_AFFINITY = 2, + IRQTF_FORCED_THREAD = 3, + IRQTF_READY = 4, +}; + +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_DESTROY_GC = 1024, + IRQ_DOMAIN_FLAG_NONCORE = 65536, +}; + +enum { + IRQ_POLL_F_SCHED = 0, + IRQ_POLL_F_DISABLE = 1, +}; + +enum { + IRQ_REMAP_XAPIC_MODE = 0, + IRQ_REMAP_X2APIC_MODE = 1, +}; + +enum { + IRQ_SET_MASK_OK = 0, + IRQ_SET_MASK_OK_NOCOPY = 1, + IRQ_SET_MASK_OK_DONE = 2, +}; + +enum { + IRQ_STARTUP_NORMAL = 0, + IRQ_STARTUP_MANAGED = 1, + IRQ_STARTUP_ABORT = 2, +}; + +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_NESTED_THREAD = 32768, + IRQ_NOTHREAD = 65536, + IRQ_PER_CPU_DEVID = 131072, + IRQ_IS_POLLED = 262144, + IRQ_DISABLE_UNLAZY = 524288, + IRQ_HIDDEN = 1048576, + IRQ_NO_DEBUG = 2097152, +}; + +enum { + IVBEP_PCI_UNCORE_HA = 0, + IVBEP_PCI_UNCORE_IMC = 1, + IVBEP_PCI_UNCORE_IRP = 2, + IVBEP_PCI_UNCORE_QPI = 3, + IVBEP_PCI_UNCORE_R2PCIE = 4, + IVBEP_PCI_UNCORE_R3QPI = 5, +}; + +enum { + I_DATA_SEM_NORMAL = 0, + I_DATA_SEM_OTHER = 1, + I_DATA_SEM_QUOTA = 2, + I_DATA_SEM_EA = 3, +}; + +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 { + KBUF_MODE_EXPAND = 1, + KBUF_MODE_FREE = 2, +}; + +enum { + KDB_NOT_INITIALIZED = 0, + KDB_INIT_EARLY = 1, + KDB_INIT_FULL = 2, +}; + +enum { + KERNEL_PARAM_FL_UNSAFE = 1, + KERNEL_PARAM_FL_HWPARAM = 2, +}; + +enum { + KERNEL_PARAM_OPS_FL_NOARG = 1, +}; + +enum { + KF_ARG_DYNPTR_ID = 0, + KF_ARG_LIST_HEAD_ID = 1, + KF_ARG_LIST_NODE_ID = 2, + KF_ARG_RB_ROOT_ID = 3, + KF_ARG_RB_NODE_ID = 4, + KF_ARG_WORKQUEUE_ID = 5, +}; + +enum { + KNL_PCI_UNCORE_MC_UCLK = 0, + KNL_PCI_UNCORE_MC_DCLK = 1, + KNL_PCI_UNCORE_EDC_UCLK = 2, + KNL_PCI_UNCORE_EDC_ECLK = 3, + KNL_PCI_UNCORE_M2PCIE = 4, + KNL_PCI_UNCORE_IRP = 5, +}; + +enum { + KTW_FREEZABLE = 1, +}; + +enum { + LAST_NORM = 0, + LAST_ROOT = 1, + LAST_DOT = 2, + LAST_DOTDOT = 3, +}; + +enum { + LAT_OK = 1, + LAT_UNKNOWN = 2, + LAT_UNKNOWN_WRITES = 3, + LAT_EXCEEDED = 4, +}; + +enum { + LBR_FORMAT_32 = 0, + LBR_FORMAT_LIP = 1, + LBR_FORMAT_EIP = 2, + LBR_FORMAT_EIP_FLAGS = 3, + LBR_FORMAT_EIP_FLAGS2 = 4, + LBR_FORMAT_INFO = 5, + LBR_FORMAT_TIME = 6, + LBR_FORMAT_INFO2 = 7, + LBR_FORMAT_MAX_KNOWN = 7, +}; + +enum { + LBR_NONE = 0, + LBR_VALID = 1, +}; + +enum { + LCOEF_RPAGE = 0, + LCOEF_RSEQIO = 1, + LCOEF_RRANDIO = 2, + LCOEF_WPAGE = 3, + LCOEF_WSEQIO = 4, + LCOEF_WRANDIO = 5, + NR_LCOEFS = 6, +}; + +enum { + LIBATA_MAX_PRD = 128, + LIBATA_DUMB_MAX_PRD = 64, + ATA_DEF_QUEUE = 1, + ATA_MAX_QUEUE = 32, + ATA_TAG_INTERNAL = 32, + ATA_SHORT_PAUSE = 16, + ATAPI_MAX_DRAIN = 16384, + ATA_ALL_DEVICES = 3, + ATA_SHT_EMULATED = 1, + ATA_SHT_THIS_ID = -1, + ATA_TFLAG_LBA48 = 1, + ATA_TFLAG_ISADDR = 2, + ATA_TFLAG_DEVICE = 4, + ATA_TFLAG_WRITE = 8, + ATA_TFLAG_LBA = 16, + ATA_TFLAG_FUA = 32, + ATA_TFLAG_POLLING = 64, + ATA_DFLAG_LBA = 1, + ATA_DFLAG_LBA48 = 2, + ATA_DFLAG_CDB_INTR = 4, + ATA_DFLAG_NCQ = 8, + ATA_DFLAG_FLUSH_EXT = 16, + ATA_DFLAG_ACPI_PENDING = 32, + ATA_DFLAG_ACPI_FAILED = 64, + ATA_DFLAG_AN = 128, + ATA_DFLAG_TRUSTED = 256, + ATA_DFLAG_FUA = 512, + ATA_DFLAG_DMADIR = 1024, + ATA_DFLAG_NCQ_SEND_RECV = 2048, + ATA_DFLAG_NCQ_PRIO = 4096, + ATA_DFLAG_CDL = 8192, + ATA_DFLAG_CFG_MASK = 16383, + ATA_DFLAG_PIO = 16384, + ATA_DFLAG_NCQ_OFF = 32768, + ATA_DFLAG_SLEEPING = 65536, + ATA_DFLAG_DUBIOUS_XFER = 131072, + ATA_DFLAG_NO_UNLOAD = 262144, + ATA_DFLAG_UNLOCK_HPA = 524288, + ATA_DFLAG_INIT_MASK = 1048575, + ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, + ATA_DFLAG_CDL_ENABLED = 2097152, + ATA_DFLAG_RESUMING = 4194304, + ATA_DFLAG_DETACH = 16777216, + ATA_DFLAG_DETACHED = 33554432, + ATA_DFLAG_DA = 67108864, + ATA_DFLAG_DEVSLP = 134217728, + ATA_DFLAG_ACPI_DISABLED = 268435456, + ATA_DFLAG_D_SENSE = 536870912, + ATA_DFLAG_ZAC = 1073741824, + ATA_DFLAG_FEATURES_MASK = 201341696, + ATA_DEV_UNKNOWN = 0, + ATA_DEV_ATA = 1, + ATA_DEV_ATA_UNSUP = 2, + ATA_DEV_ATAPI = 3, + ATA_DEV_ATAPI_UNSUP = 4, + ATA_DEV_PMP = 5, + ATA_DEV_PMP_UNSUP = 6, + ATA_DEV_SEMB = 7, + ATA_DEV_SEMB_UNSUP = 8, + ATA_DEV_ZAC = 9, + ATA_DEV_ZAC_UNSUP = 10, + ATA_DEV_NONE = 11, + ATA_LFLAG_NO_HRST = 2, + ATA_LFLAG_NO_SRST = 4, + ATA_LFLAG_ASSUME_ATA = 8, + ATA_LFLAG_ASSUME_SEMB = 16, + ATA_LFLAG_ASSUME_CLASS = 24, + ATA_LFLAG_NO_RETRY = 32, + ATA_LFLAG_DISABLED = 64, + ATA_LFLAG_SW_ACTIVITY = 128, + ATA_LFLAG_NO_LPM = 256, + ATA_LFLAG_RST_ONCE = 512, + ATA_LFLAG_CHANGED = 1024, + ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, + ATA_FLAG_SLAVE_POSS = 1, + ATA_FLAG_SATA = 2, + ATA_FLAG_NO_LPM = 4, + ATA_FLAG_NO_LOG_PAGE = 32, + ATA_FLAG_NO_ATAPI = 64, + ATA_FLAG_PIO_DMA = 128, + ATA_FLAG_PIO_LBA48 = 256, + ATA_FLAG_PIO_POLLING = 512, + ATA_FLAG_NCQ = 1024, + ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, + ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, + ATA_FLAG_DEBUGMSG = 8192, + ATA_FLAG_FPDMA_AA = 16384, + ATA_FLAG_IGN_SIMPLEX = 32768, + ATA_FLAG_NO_IORDY = 65536, + ATA_FLAG_ACPI_SATA = 131072, + ATA_FLAG_AN = 262144, + ATA_FLAG_PMP = 524288, + ATA_FLAG_FPDMA_AUX = 1048576, + ATA_FLAG_EM = 2097152, + ATA_FLAG_SW_ACTIVITY = 4194304, + ATA_FLAG_NO_DIPM = 8388608, + ATA_FLAG_SAS_HOST = 16777216, + ATA_PFLAG_EH_PENDING = 1, + ATA_PFLAG_EH_IN_PROGRESS = 2, + ATA_PFLAG_FROZEN = 4, + ATA_PFLAG_RECOVERED = 8, + ATA_PFLAG_LOADING = 16, + ATA_PFLAG_SCSI_HOTPLUG = 64, + ATA_PFLAG_INITIALIZING = 128, + ATA_PFLAG_RESETTING = 256, + ATA_PFLAG_UNLOADING = 512, + ATA_PFLAG_UNLOADED = 1024, + ATA_PFLAG_RESUMING = 65536, + ATA_PFLAG_SUSPENDED = 131072, + ATA_PFLAG_PM_PENDING = 262144, + ATA_PFLAG_INIT_GTM_VALID = 524288, + ATA_PFLAG_PIO32 = 1048576, + ATA_PFLAG_PIO32CHANGE = 2097152, + ATA_PFLAG_EXTERNAL = 4194304, + ATA_QCFLAG_ACTIVE = 1, + ATA_QCFLAG_DMAMAP = 2, + ATA_QCFLAG_RTF_FILLED = 4, + ATA_QCFLAG_IO = 8, + ATA_QCFLAG_RESULT_TF = 16, + ATA_QCFLAG_CLEAR_EXCL = 32, + ATA_QCFLAG_QUIET = 64, + ATA_QCFLAG_RETRY = 128, + ATA_QCFLAG_HAS_CDL = 256, + ATA_QCFLAG_EH = 65536, + ATA_QCFLAG_SENSE_VALID = 131072, + ATA_QCFLAG_EH_SCHEDULED = 262144, + ATA_QCFLAG_EH_SUCCESS_CMD = 524288, + ATA_HOST_SIMPLEX = 1, + ATA_HOST_STARTED = 2, + ATA_HOST_PARALLEL_SCAN = 4, + ATA_HOST_IGNORE_ATA = 8, + ATA_HOST_NO_PART = 16, + ATA_HOST_NO_SSC = 32, + ATA_HOST_NO_DEVSLP = 64, + ATA_TMOUT_INTERNAL_QUICK = 5000, + ATA_TMOUT_MAX_PARK = 30000, + ATA_TMOUT_FF_WAIT_LONG = 2000, + ATA_TMOUT_FF_WAIT = 800, + ATA_WAIT_AFTER_RESET = 150, + ATA_TMOUT_PMP_SRST_WAIT = 10000, + ATA_TMOUT_SPURIOUS_PHY = 10000, + BUS_UNKNOWN = 0, + BUS_DMA = 1, + BUS_IDLE = 2, + BUS_NOINTR = 3, + BUS_NODATA = 4, + BUS_TIMER = 5, + BUS_PIO = 6, + BUS_EDD = 7, + BUS_IDENTIFY = 8, + BUS_PACKET = 9, + PORT_UNKNOWN = 0, + PORT_ENABLED = 1, + PORT_DISABLED = 2, + ATA_NR_PIO_MODES = 7, + ATA_NR_MWDMA_MODES = 5, + ATA_NR_UDMA_MODES = 8, + ATA_SHIFT_PIO = 0, + ATA_SHIFT_MWDMA = 7, + ATA_SHIFT_UDMA = 12, + ATA_SHIFT_PRIO = 6, + ATA_PRIO_HIGH = 2, + ATA_DMA_PAD_SZ = 4, + ATA_ERING_SIZE = 32, + ATA_DEFER_LINK = 1, + ATA_DEFER_PORT = 2, + ATA_EH_DESC_LEN = 80, + ATA_EH_REVALIDATE = 1, + ATA_EH_SOFTRESET = 2, + ATA_EH_HARDRESET = 4, + ATA_EH_RESET = 6, + ATA_EH_ENABLE_LINK = 8, + ATA_EH_PARK = 32, + ATA_EH_GET_SUCCESS_SENSE = 64, + ATA_EH_SET_ACTIVE = 128, + ATA_EH_PERDEV_MASK = 225, + ATA_EH_ALL_ACTIONS = 15, + ATA_EHI_HOTPLUGGED = 1, + ATA_EHI_NO_AUTOPSY = 4, + ATA_EHI_QUIET = 8, + ATA_EHI_NO_RECOVERY = 16, + ATA_EHI_DID_SOFTRESET = 65536, + ATA_EHI_DID_HARDRESET = 131072, + ATA_EHI_PRINTINFO = 262144, + ATA_EHI_SETMODE = 524288, + ATA_EHI_POST_SETMODE = 1048576, + ATA_EHI_DID_PRINT_QUIRKS = 2097152, + ATA_EHI_DID_RESET = 196608, + ATA_EHI_TO_SLAVE_MASK = 12, + ATA_EH_MAX_TRIES = 5, + ATA_LINK_RESUME_TRIES = 5, + ATA_EH_DEV_TRIES = 3, + ATA_EH_PMP_TRIES = 5, + ATA_EH_PMP_LINK_TRIES = 3, + SATA_PMP_RW_TIMEOUT = 3000, + ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 8, + ATA_QUIRK_DIAGNOSTIC = 1, + ATA_QUIRK_NODMA = 2, + ATA_QUIRK_NONCQ = 4, + ATA_QUIRK_MAX_SEC_128 = 8, + ATA_QUIRK_BROKEN_HPA = 16, + ATA_QUIRK_DISABLE = 32, + ATA_QUIRK_HPA_SIZE = 64, + ATA_QUIRK_IVB = 128, + ATA_QUIRK_STUCK_ERR = 256, + ATA_QUIRK_BRIDGE_OK = 512, + ATA_QUIRK_ATAPI_MOD16_DMA = 1024, + ATA_QUIRK_FIRMWARE_WARN = 2048, + ATA_QUIRK_1_5_GBPS = 4096, + ATA_QUIRK_NOSETXFER = 8192, + ATA_QUIRK_BROKEN_FPDMA_AA = 16384, + ATA_QUIRK_DUMP_ID = 32768, + ATA_QUIRK_MAX_SEC_LBA48 = 65536, + ATA_QUIRK_ATAPI_DMADIR = 131072, + ATA_QUIRK_NO_NCQ_TRIM = 262144, + ATA_QUIRK_NOLPM = 524288, + ATA_QUIRK_WD_BROKEN_LPM = 1048576, + ATA_QUIRK_ZERO_AFTER_TRIM = 2097152, + ATA_QUIRK_NO_DMA_LOG = 4194304, + ATA_QUIRK_NOTRIM = 8388608, + ATA_QUIRK_MAX_SEC_1024 = 16777216, + ATA_QUIRK_MAX_TRIM_128M = 33554432, + ATA_QUIRK_NO_NCQ_ON_ATI = 67108864, + ATA_QUIRK_NO_LPM_ON_ATI = 134217728, + ATA_QUIRK_NO_ID_DEV_LOG = 268435456, + ATA_QUIRK_NO_LOG_DIR = 536870912, + ATA_QUIRK_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 { + 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_TSECRREJECTED = 16, + LINUX_MIB_PAWS_OLD_ACK = 17, + LINUX_MIB_DELAYEDACKS = 18, + LINUX_MIB_DELAYEDACKLOCKED = 19, + LINUX_MIB_DELAYEDACKLOST = 20, + LINUX_MIB_LISTENOVERFLOWS = 21, + LINUX_MIB_LISTENDROPS = 22, + LINUX_MIB_TCPHPHITS = 23, + LINUX_MIB_TCPPUREACKS = 24, + LINUX_MIB_TCPHPACKS = 25, + LINUX_MIB_TCPRENORECOVERY = 26, + LINUX_MIB_TCPSACKRECOVERY = 27, + LINUX_MIB_TCPSACKRENEGING = 28, + LINUX_MIB_TCPSACKREORDER = 29, + LINUX_MIB_TCPRENOREORDER = 30, + LINUX_MIB_TCPTSREORDER = 31, + LINUX_MIB_TCPFULLUNDO = 32, + LINUX_MIB_TCPPARTIALUNDO = 33, + LINUX_MIB_TCPDSACKUNDO = 34, + LINUX_MIB_TCPLOSSUNDO = 35, + LINUX_MIB_TCPLOSTRETRANSMIT = 36, + LINUX_MIB_TCPRENOFAILURES = 37, + LINUX_MIB_TCPSACKFAILURES = 38, + LINUX_MIB_TCPLOSSFAILURES = 39, + LINUX_MIB_TCPFASTRETRANS = 40, + LINUX_MIB_TCPSLOWSTARTRETRANS = 41, + LINUX_MIB_TCPTIMEOUTS = 42, + LINUX_MIB_TCPLOSSPROBES = 43, + LINUX_MIB_TCPLOSSPROBERECOVERY = 44, + LINUX_MIB_TCPRENORECOVERYFAIL = 45, + LINUX_MIB_TCPSACKRECOVERYFAIL = 46, + LINUX_MIB_TCPRCVCOLLAPSED = 47, + LINUX_MIB_TCPDSACKOLDSENT = 48, + LINUX_MIB_TCPDSACKOFOSENT = 49, + LINUX_MIB_TCPDSACKRECV = 50, + LINUX_MIB_TCPDSACKOFORECV = 51, + LINUX_MIB_TCPABORTONDATA = 52, + LINUX_MIB_TCPABORTONCLOSE = 53, + LINUX_MIB_TCPABORTONMEMORY = 54, + LINUX_MIB_TCPABORTONTIMEOUT = 55, + LINUX_MIB_TCPABORTONLINGER = 56, + LINUX_MIB_TCPABORTFAILED = 57, + LINUX_MIB_TCPMEMORYPRESSURES = 58, + LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 59, + LINUX_MIB_TCPSACKDISCARD = 60, + LINUX_MIB_TCPDSACKIGNOREDOLD = 61, + LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 62, + LINUX_MIB_TCPSPURIOUSRTOS = 63, + LINUX_MIB_TCPMD5NOTFOUND = 64, + LINUX_MIB_TCPMD5UNEXPECTED = 65, + LINUX_MIB_TCPMD5FAILURE = 66, + LINUX_MIB_SACKSHIFTED = 67, + LINUX_MIB_SACKMERGED = 68, + LINUX_MIB_SACKSHIFTFALLBACK = 69, + LINUX_MIB_TCPBACKLOGDROP = 70, + LINUX_MIB_PFMEMALLOCDROP = 71, + LINUX_MIB_TCPMINTTLDROP = 72, + LINUX_MIB_TCPDEFERACCEPTDROP = 73, + LINUX_MIB_IPRPFILTER = 74, + LINUX_MIB_TCPTIMEWAITOVERFLOW = 75, + LINUX_MIB_TCPREQQFULLDOCOOKIES = 76, + LINUX_MIB_TCPREQQFULLDROP = 77, + LINUX_MIB_TCPRETRANSFAIL = 78, + LINUX_MIB_TCPRCVCOALESCE = 79, + LINUX_MIB_TCPBACKLOGCOALESCE = 80, + LINUX_MIB_TCPOFOQUEUE = 81, + LINUX_MIB_TCPOFODROP = 82, + LINUX_MIB_TCPOFOMERGE = 83, + LINUX_MIB_TCPCHALLENGEACK = 84, + LINUX_MIB_TCPSYNCHALLENGE = 85, + LINUX_MIB_TCPFASTOPENACTIVE = 86, + LINUX_MIB_TCPFASTOPENACTIVEFAIL = 87, + LINUX_MIB_TCPFASTOPENPASSIVE = 88, + LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 89, + LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 90, + LINUX_MIB_TCPFASTOPENCOOKIEREQD = 91, + LINUX_MIB_TCPFASTOPENBLACKHOLE = 92, + LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 93, + LINUX_MIB_BUSYPOLLRXPACKETS = 94, + LINUX_MIB_TCPAUTOCORKING = 95, + LINUX_MIB_TCPFROMZEROWINDOWADV = 96, + LINUX_MIB_TCPTOZEROWINDOWADV = 97, + LINUX_MIB_TCPWANTZEROWINDOWADV = 98, + LINUX_MIB_TCPSYNRETRANS = 99, + LINUX_MIB_TCPORIGDATASENT = 100, + LINUX_MIB_TCPHYSTARTTRAINDETECT = 101, + LINUX_MIB_TCPHYSTARTTRAINCWND = 102, + LINUX_MIB_TCPHYSTARTDELAYDETECT = 103, + LINUX_MIB_TCPHYSTARTDELAYCWND = 104, + LINUX_MIB_TCPACKSKIPPEDSYNRECV = 105, + LINUX_MIB_TCPACKSKIPPEDPAWS = 106, + LINUX_MIB_TCPACKSKIPPEDSEQ = 107, + LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 108, + LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 109, + LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 110, + LINUX_MIB_TCPWINPROBE = 111, + LINUX_MIB_TCPKEEPALIVE = 112, + LINUX_MIB_TCPMTUPFAIL = 113, + LINUX_MIB_TCPMTUPSUCCESS = 114, + LINUX_MIB_TCPDELIVERED = 115, + LINUX_MIB_TCPDELIVEREDCE = 116, + LINUX_MIB_TCPACKCOMPRESSED = 117, + LINUX_MIB_TCPZEROWINDOWDROP = 118, + LINUX_MIB_TCPRCVQDROP = 119, + LINUX_MIB_TCPWQUEUETOOBIG = 120, + LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 121, + LINUX_MIB_TCPTIMEOUTREHASH = 122, + LINUX_MIB_TCPDUPLICATEDATAREHASH = 123, + LINUX_MIB_TCPDSACKRECVSEGS = 124, + LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 125, + LINUX_MIB_TCPMIGRATEREQSUCCESS = 126, + LINUX_MIB_TCPMIGRATEREQFAILURE = 127, + LINUX_MIB_TCPPLBREHASH = 128, + LINUX_MIB_TCPAOREQUIRED = 129, + LINUX_MIB_TCPAOBAD = 130, + LINUX_MIB_TCPAOKEYNOTFOUND = 131, + LINUX_MIB_TCPAOGOOD = 132, + LINUX_MIB_TCPAODROPPEDICMPS = 133, + __LINUX_MIB_MAX = 134, +}; + +enum { + LINUX_MIB_TLSNUM = 0, + LINUX_MIB_TLSCURRTXSW = 1, + LINUX_MIB_TLSCURRRXSW = 2, + LINUX_MIB_TLSCURRTXDEVICE = 3, + LINUX_MIB_TLSCURRRXDEVICE = 4, + LINUX_MIB_TLSTXSW = 5, + LINUX_MIB_TLSRXSW = 6, + LINUX_MIB_TLSTXDEVICE = 7, + LINUX_MIB_TLSRXDEVICE = 8, + LINUX_MIB_TLSDECRYPTERROR = 9, + LINUX_MIB_TLSRXDEVICERESYNC = 10, + LINUX_MIB_TLSDECRYPTRETRY = 11, + LINUX_MIB_TLSRXNOPADVIOL = 12, + LINUX_MIB_TLSRXREKEYOK = 13, + LINUX_MIB_TLSRXREKEYERROR = 14, + LINUX_MIB_TLSTXREKEYOK = 15, + LINUX_MIB_TLSTXREKEYERROR = 16, + LINUX_MIB_TLSRXREKEYRECEIVED = 17, + __LINUX_MIB_TLSMAX = 18, +}; + +enum { + LINUX_MIB_XFRMNUM = 0, + LINUX_MIB_XFRMINERROR = 1, + LINUX_MIB_XFRMINBUFFERERROR = 2, + LINUX_MIB_XFRMINHDRERROR = 3, + LINUX_MIB_XFRMINNOSTATES = 4, + LINUX_MIB_XFRMINSTATEPROTOERROR = 5, + LINUX_MIB_XFRMINSTATEMODEERROR = 6, + LINUX_MIB_XFRMINSTATESEQERROR = 7, + LINUX_MIB_XFRMINSTATEEXPIRED = 8, + LINUX_MIB_XFRMINSTATEMISMATCH = 9, + LINUX_MIB_XFRMINSTATEINVALID = 10, + LINUX_MIB_XFRMINTMPLMISMATCH = 11, + LINUX_MIB_XFRMINNOPOLS = 12, + LINUX_MIB_XFRMINPOLBLOCK = 13, + LINUX_MIB_XFRMINPOLERROR = 14, + LINUX_MIB_XFRMOUTERROR = 15, + LINUX_MIB_XFRMOUTBUNDLEGENERROR = 16, + LINUX_MIB_XFRMOUTBUNDLECHECKERROR = 17, + LINUX_MIB_XFRMOUTNOSTATES = 18, + LINUX_MIB_XFRMOUTSTATEPROTOERROR = 19, + LINUX_MIB_XFRMOUTSTATEMODEERROR = 20, + LINUX_MIB_XFRMOUTSTATESEQERROR = 21, + LINUX_MIB_XFRMOUTSTATEEXPIRED = 22, + LINUX_MIB_XFRMOUTPOLBLOCK = 23, + LINUX_MIB_XFRMOUTPOLDEAD = 24, + LINUX_MIB_XFRMOUTPOLERROR = 25, + LINUX_MIB_XFRMFWDHDRERROR = 26, + LINUX_MIB_XFRMOUTSTATEINVALID = 27, + LINUX_MIB_XFRMACQUIREERROR = 28, + LINUX_MIB_XFRMOUTSTATEDIRERROR = 29, + LINUX_MIB_XFRMINSTATEDIRERROR = 30, + LINUX_MIB_XFRMINIPTFSERROR = 31, + LINUX_MIB_XFRMOUTNOQSPACE = 32, + __LINUX_MIB_XFRMMAX = 33, +}; + +enum { + LINUX_RAID_PARTITION = 253, +}; + +enum { + LOGIC_PIO_INDIRECT = 0, + LOGIC_PIO_CPU_MMIO = 1, +}; + +enum { + LO_FLAGS_READ_ONLY = 1, + LO_FLAGS_AUTOCLEAR = 4, + LO_FLAGS_PARTSCAN = 8, + LO_FLAGS_DIRECT_IO = 16, +}; + +enum { + LRU_GEN_ANON = 0, + LRU_GEN_FILE = 1, +}; + +enum { + LRU_GEN_CORE = 0, + LRU_GEN_MM_WALK = 1, + LRU_GEN_NONLEAF_YOUNG = 2, + NR_LRU_GEN_CAPS = 3, +}; + +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_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_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_XMIT_DONE = 0, + LWTUNNEL_XMIT_CONTINUE = 256, +}; + +enum { + LWT_BPF_PROG_UNSPEC = 0, + LWT_BPF_PROG_FD = 1, + LWT_BPF_PROG_NAME = 2, + __LWT_BPF_PROG_MAX = 3, +}; + +enum { + LWT_BPF_UNSPEC = 0, + LWT_BPF_IN = 1, + LWT_BPF_OUT = 2, + LWT_BPF_XMIT = 3, + LWT_BPF_XMIT_HEADROOM = 4, + __LWT_BPF_MAX = 5, +}; + +enum { + Lo_unbound = 0, + Lo_bound = 1, + Lo_rundown = 2, + Lo_deleting = 3, +}; + +enum { + MATCH_MTR = 0, + MATCH_MEQ = 1, + MATCH_MLE = 2, + MATCH_MLT = 3, + MATCH_MGE = 4, + MATCH_MGT = 5, +}; + +enum { + MAX8925_IRQ_VCHG_DC_OVP = 0, + MAX8925_IRQ_VCHG_DC_F = 1, + MAX8925_IRQ_VCHG_DC_R = 2, + MAX8925_IRQ_VCHG_THM_OK_R = 3, + MAX8925_IRQ_VCHG_THM_OK_F = 4, + MAX8925_IRQ_VCHG_SYSLOW_F = 5, + MAX8925_IRQ_VCHG_SYSLOW_R = 6, + MAX8925_IRQ_VCHG_RST = 7, + MAX8925_IRQ_VCHG_DONE = 8, + MAX8925_IRQ_VCHG_TOPOFF = 9, + MAX8925_IRQ_VCHG_TMR_FAULT = 10, + MAX8925_IRQ_GPM_RSTIN = 11, + MAX8925_IRQ_GPM_MPL = 12, + MAX8925_IRQ_GPM_SW_3SEC = 13, + MAX8925_IRQ_GPM_EXTON_F = 14, + MAX8925_IRQ_GPM_EXTON_R = 15, + MAX8925_IRQ_GPM_SW_1SEC = 16, + MAX8925_IRQ_GPM_SW_F = 17, + MAX8925_IRQ_GPM_SW_R = 18, + MAX8925_IRQ_GPM_SYSCKEN_F = 19, + MAX8925_IRQ_GPM_SYSCKEN_R = 20, + MAX8925_IRQ_RTC_ALARM1 = 21, + MAX8925_IRQ_RTC_ALARM0 = 22, + MAX8925_IRQ_TSC_STICK = 23, + MAX8925_IRQ_TSC_NSTICK = 24, + MAX8925_NR_IRQS = 25, +}; + +enum { + MAX8998_IRQ_DCINF = 0, + MAX8998_IRQ_DCINR = 1, + MAX8998_IRQ_JIGF = 2, + MAX8998_IRQ_JIGR = 3, + MAX8998_IRQ_PWRONF = 4, + MAX8998_IRQ_PWRONR = 5, + MAX8998_IRQ_WTSREVNT = 6, + MAX8998_IRQ_SMPLEVNT = 7, + MAX8998_IRQ_ALARM1 = 8, + MAX8998_IRQ_ALARM0 = 9, + MAX8998_IRQ_ONKEY1S = 10, + MAX8998_IRQ_TOPOFFR = 11, + MAX8998_IRQ_DCINOVPR = 12, + MAX8998_IRQ_CHGRSTF = 13, + MAX8998_IRQ_DONER = 14, + MAX8998_IRQ_CHGFAULT = 15, + MAX8998_IRQ_LOBAT1 = 16, + MAX8998_IRQ_LOBAT2 = 17, + MAX8998_IRQ_NR = 18, +}; + +enum { + MAX8998_REG_IRQ1 = 0, + MAX8998_REG_IRQ2 = 1, + MAX8998_REG_IRQ3 = 2, + MAX8998_REG_IRQ4 = 3, + MAX8998_REG_IRQM1 = 4, + MAX8998_REG_IRQM2 = 5, + MAX8998_REG_IRQM3 = 6, + MAX8998_REG_IRQM4 = 7, + MAX8998_REG_STATUS1 = 8, + MAX8998_REG_STATUS2 = 9, + MAX8998_REG_STATUSM1 = 10, + MAX8998_REG_STATUSM2 = 11, + MAX8998_REG_CHGR1 = 12, + MAX8998_REG_CHGR2 = 13, + MAX8998_REG_LDO_ACTIVE_DISCHARGE1 = 14, + MAX8998_REG_LDO_ACTIVE_DISCHARGE2 = 15, + MAX8998_REG_BUCK_ACTIVE_DISCHARGE3 = 16, + MAX8998_REG_ONOFF1 = 17, + MAX8998_REG_ONOFF2 = 18, + MAX8998_REG_ONOFF3 = 19, + MAX8998_REG_ONOFF4 = 20, + MAX8998_REG_BUCK1_VOLTAGE1 = 21, + MAX8998_REG_BUCK1_VOLTAGE2 = 22, + MAX8998_REG_BUCK1_VOLTAGE3 = 23, + MAX8998_REG_BUCK1_VOLTAGE4 = 24, + MAX8998_REG_BUCK2_VOLTAGE1 = 25, + MAX8998_REG_BUCK2_VOLTAGE2 = 26, + MAX8998_REG_BUCK3 = 27, + MAX8998_REG_BUCK4 = 28, + MAX8998_REG_LDO2_LDO3 = 29, + MAX8998_REG_LDO4 = 30, + MAX8998_REG_LDO5 = 31, + MAX8998_REG_LDO6 = 32, + MAX8998_REG_LDO7 = 33, + MAX8998_REG_LDO8_LDO9 = 34, + MAX8998_REG_LDO10_LDO11 = 35, + MAX8998_REG_LDO12 = 36, + MAX8998_REG_LDO13 = 37, + MAX8998_REG_LDO14 = 38, + MAX8998_REG_LDO15 = 39, + MAX8998_REG_LDO16 = 40, + MAX8998_REG_LDO17 = 41, + MAX8998_REG_BKCHR = 42, + MAX8998_REG_LBCNFG1 = 43, + MAX8998_REG_LBCNFG2 = 44, +}; + +enum { + MAX_IORES_LEVEL = 5, +}; + +enum { + MAX_OPT_ARGS = 3, +}; + +enum { + MBE_REFERENCED_B = 0, + MBE_REUSABLE_B = 1, +}; + +enum { + MB_INODE_PA = 0, + MB_GROUP_PA = 1, +}; + +enum { + MCTP_TRACE_KEY_TIMEOUT = 0, + MCTP_TRACE_KEY_REPLIED = 1, + MCTP_TRACE_KEY_INVALIDATED = 2, + MCTP_TRACE_KEY_CLOSED = 3, + MCTP_TRACE_KEY_DROPPED = 4, +}; + +enum { + MDBA_GET_ENTRY_UNSPEC = 0, + MDBA_GET_ENTRY = 1, + MDBA_GET_ENTRY_ATTRS = 2, + __MDBA_GET_ENTRY_MAX = 3, +}; + +enum { + MDBA_SET_ENTRY_UNSPEC = 0, + MDBA_SET_ENTRY = 1, + MDBA_SET_ENTRY_ATTRS = 2, + __MDBA_SET_ENTRY_MAX = 3, +}; + +enum { + MDIO_AN_C22 = 65504, +}; + +enum { + MD_RESYNC_NONE = 0, + MD_RESYNC_YIELDED = 1, + MD_RESYNC_DELAYED = 2, + MD_RESYNC_ACTIVE = 3, +}; + +enum { + MED_R_CNT = 10, +}; + +enum { + MED_R_DUR = 12, +}; + +enum { + MED_W_CNT = 11, +}; + +enum { + MED_W_DUR = 13, +}; + +enum { + MEMBARRIER_FLAG_SYNC_CORE = 1, + MEMBARRIER_FLAG_RSEQ = 2, +}; + +enum { + MEMBARRIER_STATE_PRIVATE_EXPEDITED_READY = 1, + MEMBARRIER_STATE_PRIVATE_EXPEDITED = 2, + MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY = 4, + MEMBARRIER_STATE_GLOBAL_EXPEDITED = 8, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE_READY = 16, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE = 32, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ_READY = 64, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128, +}; + +enum { + MEMCG_LRU_NOP = 0, + MEMCG_LRU_HEAD = 1, + MEMCG_LRU_TAIL = 2, + MEMCG_LRU_OLD = 3, + MEMCG_LRU_YOUNG = 4, +}; + +enum { + MEMMAP_ON_MEMORY_DISABLE = 0, + MEMMAP_ON_MEMORY_ENABLE = 1, + MEMMAP_ON_MEMORY_FORCE = 2, +}; + +enum { + MEMORY_RECLAIM_SWAPPINESS = 0, + MEMORY_RECLAIM_NULL = 1, +}; + +enum { + MEMREMAP_WB = 1, + MEMREMAP_WT = 2, + MEMREMAP_WC = 4, + MEMREMAP_ENC = 8, + MEMREMAP_DEC = 16, +}; + +enum { + MEMTYPE_EXACT_MATCH = 0, + MEMTYPE_END_MATCH = 1, +}; + +enum { + MEM_LIFE = 4, +}; + +enum { + MFC_STATIC = 1, + MFC_OFFLOAD = 2, +}; + +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 { + 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_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 { + MIX_INFLIGHT = 2147483648, +}; + +enum { + MLX_MC_RBT_SUPPORT = 1, + MLX_MC_RBT_AVL = 8, +}; + +enum { + MMOP_OFFLINE = 0, + MMOP_ONLINE = 1, + MMOP_ONLINE_KERNEL = 2, + MMOP_ONLINE_MOVABLE = 3, +}; + +enum { + MM_FILEPAGES = 0, + MM_ANONPAGES = 1, + MM_SWAPENTS = 2, + MM_SHMEMPAGES = 3, + NR_MM_COUNTERS = 4, +}; + +enum { + MM_LEAF_TOTAL = 0, + MM_LEAF_YOUNG = 1, + MM_NONLEAF_FOUND = 2, + MM_NONLEAF_ADDED = 3, + NR_MM_STATS = 4, +}; + +enum { + MODE_NONE = 0, + MODE_ROUND_ROBIN = 1, + MODE_PER_CPU = 2, + MODE_MAX = 3, +}; + +enum { + MOXA_SUPP_RS232 = 1, + MOXA_SUPP_RS422 = 2, + MOXA_SUPP_RS485 = 4, +}; + +enum { + MPOL_DEFAULT = 0, + MPOL_PREFERRED = 1, + MPOL_BIND = 2, + MPOL_INTERLEAVE = 3, + MPOL_LOCAL = 4, + MPOL_PREFERRED_MANY = 5, + MPOL_WEIGHTED_INTERLEAVE = 6, + MPOL_MAX = 7, +}; + +enum { + MPTCP_CMSG_TS = 1, + MPTCP_CMSG_INQ = 2, +}; + +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_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_ATTR_AFTER_LAST = 7, +}; + +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, +}; + +enum { + MPTCP_PM_ENDPOINT_ADDR = 1, + __MPTCP_PM_ENDPOINT_MAX = 2, +}; + +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 { + MSI_FLAG_USE_DEF_DOM_OPS = 1, + MSI_FLAG_USE_DEF_CHIP_OPS = 2, + MSI_FLAG_ACTIVATE_EARLY = 4, + MSI_FLAG_MUST_REACTIVATE = 8, + MSI_FLAG_DEV_SYSFS = 16, + MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS = 32, + MSI_FLAG_FREE_MSI_DESCS = 64, + MSI_FLAG_USE_DEV_FWNODE = 128, + MSI_FLAG_PARENT_PM_DEV = 256, + MSI_FLAG_PCI_MSI_MASK_PARENT = 512, + 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_NO_AFFINITY = 2097152, + MSI_FLAG_NO_MASK = 4194304, +}; + +enum { + M_I17 = 0, + M_I20 = 1, + M_I20_SR = 2, + M_I24 = 3, + M_I24_8_1 = 4, + M_I24_10_1 = 5, + M_I27_11_1 = 6, + M_MINI = 7, + M_MINI_3_1 = 8, + M_MINI_4_1 = 9, + M_MB = 10, + M_MB_2 = 11, + M_MB_3 = 12, + M_MB_5_1 = 13, + M_MB_6_1 = 14, + M_MB_7_1 = 15, + M_MB_SR = 16, + M_MBA = 17, + M_MBA_3 = 18, + M_MBP = 19, + M_MBP_2 = 20, + M_MBP_2_2 = 21, + M_MBP_SR = 22, + M_MBP_4 = 23, + M_MBP_5_1 = 24, + M_MBP_5_2 = 25, + M_MBP_5_3 = 26, + M_MBP_6_1 = 27, + M_MBP_6_2 = 28, + M_MBP_7_1 = 29, + M_MBP_8_2 = 30, + M_UNKNOWN = 31, +}; + +enum { + NAPIF_STATE_SCHED = 1, + NAPIF_STATE_MISSED = 2, + NAPIF_STATE_DISABLE = 4, + NAPIF_STATE_NPSVC = 8, + NAPIF_STATE_LISTED = 16, + NAPIF_STATE_NO_BUSY_POLL = 32, + NAPIF_STATE_IN_BUSY_POLL = 64, + NAPIF_STATE_PREFER_BUSY_POLL = 128, + NAPIF_STATE_THREADED = 256, + NAPIF_STATE_SCHED_THREADED = 512, +}; + +enum { + NAPI_F_PREFER_BUSY_POLL = 1, + NAPI_F_END_ON_RESCHED = 2, +}; + +enum { + 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 { + NCSI_CAP_BASE = 0, + NCSI_CAP_GENERIC = 0, + NCSI_CAP_BC = 1, + NCSI_CAP_MC = 2, + NCSI_CAP_BUFFER = 3, + NCSI_CAP_AEN = 4, + NCSI_CAP_VLAN = 5, + NCSI_CAP_MAX = 6, +}; + +enum { + NCSI_CAP_GENERIC_HWA = 1, + NCSI_CAP_GENERIC_HDS = 2, + NCSI_CAP_GENERIC_FC = 4, + NCSI_CAP_GENERIC_FC1 = 8, + NCSI_CAP_GENERIC_MC = 16, + NCSI_CAP_GENERIC_HWA_UNKNOWN = 0, + NCSI_CAP_GENERIC_HWA_SUPPORT = 32, + NCSI_CAP_GENERIC_HWA_NOT_SUPPORT = 64, + NCSI_CAP_GENERIC_HWA_RESERVED = 96, + NCSI_CAP_GENERIC_HWA_MASK = 96, + NCSI_CAP_GENERIC_MASK = 127, + NCSI_CAP_BC_ARP = 1, + NCSI_CAP_BC_DHCPC = 2, + NCSI_CAP_BC_DHCPS = 4, + NCSI_CAP_BC_NETBIOS = 8, + NCSI_CAP_BC_MASK = 15, + NCSI_CAP_MC_IPV6_NEIGHBOR = 1, + NCSI_CAP_MC_IPV6_ROUTER = 2, + NCSI_CAP_MC_DHCPV6_RELAY = 4, + NCSI_CAP_MC_DHCPV6_WELL_KNOWN = 8, + NCSI_CAP_MC_IPV6_MLD = 16, + NCSI_CAP_MC_IPV6_NEIGHBOR_S = 32, + NCSI_CAP_MC_MASK = 63, + NCSI_CAP_AEN_LSC = 1, + NCSI_CAP_AEN_CR = 2, + NCSI_CAP_AEN_HDS = 4, + NCSI_CAP_AEN_MASK = 7, + NCSI_CAP_VLAN_ONLY = 1, + NCSI_CAP_VLAN_NO = 2, + NCSI_CAP_VLAN_ANY = 4, + NCSI_CAP_VLAN_MASK = 7, +}; + +enum { + NCSI_MODE_BASE = 0, + NCSI_MODE_ENABLE = 0, + NCSI_MODE_TX_ENABLE = 1, + NCSI_MODE_LINK = 2, + NCSI_MODE_VLAN = 3, + NCSI_MODE_BC = 4, + NCSI_MODE_MC = 5, + NCSI_MODE_AEN = 6, + NCSI_MODE_FC = 7, + NCSI_MODE_MAX = 8, +}; + +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 { + NDD_UNARMED = 1, + NDD_LOCKED = 2, + NDD_SECURITY_OVERWRITE = 3, + NDD_WORK_PENDING = 4, + NDD_LABELING = 6, + NDD_INCOHERENT = 7, + NDD_REGISTER_SYNC = 8, + ND_IOCTL_MAX_BUFLEN = 4194304, + ND_CMD_MAX_ELEM = 5, + ND_CMD_MAX_ENVELOPE = 256, + ND_MAX_MAPPINGS = 32, + ND_REGION_PAGEMAP = 0, + ND_REGION_PERSIST_CACHE = 1, + ND_REGION_PERSIST_MEMCTRL = 2, + ND_REGION_ASYNC = 3, + ND_REGION_CXL = 4, + DPA_RESOURCE_ADJUSTED = 1, +}; + +enum { + 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, +}; + +enum { + NDUSEROPT_UNSPEC = 0, + NDUSEROPT_SRCADDR = 1, + __NDUSEROPT_MAX = 2, +}; + +enum { + ND_CMD_IMPLEMENTED = 0, + ND_CMD_ARS_CAP = 1, + ND_CMD_ARS_START = 2, + ND_CMD_ARS_STATUS = 3, + ND_CMD_CLEAR_ERROR = 4, + ND_CMD_SMART = 1, + ND_CMD_SMART_THRESHOLD = 2, + ND_CMD_DIMM_FLAGS = 3, + ND_CMD_GET_CONFIG_SIZE = 4, + ND_CMD_GET_CONFIG_DATA = 5, + ND_CMD_SET_CONFIG_DATA = 6, + ND_CMD_VENDOR_EFFECT_LOG_SIZE = 7, + ND_CMD_VENDOR_EFFECT_LOG = 8, + ND_CMD_VENDOR = 9, + ND_CMD_CALL = 10, +}; + +enum { + ND_MAX_LANES = 256, + INT_LBASIZE_ALIGNMENT = 64, + NVDIMM_IO_ATOMIC = 1, +}; + +enum { + ND_MIN_NAMESPACE_SIZE = 4096, +}; + +enum { + NEIGH_ARP_TABLE = 0, + NEIGH_ND_TABLE = 1, + NEIGH_NR_TABLES = 2, + NEIGH_LINK_TABLE = 2, +}; + +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 { + NESTED_SYNC_IMM_BIT = 0, + NESTED_SYNC_TODO_BIT = 1, +}; + +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 { + NETDEV_A_DEV_IFINDEX = 1, + NETDEV_A_DEV_PAD = 2, + NETDEV_A_DEV_XDP_FEATURES = 3, + NETDEV_A_DEV_XDP_ZC_MAX_SEGS = 4, + NETDEV_A_DEV_XDP_RX_METADATA_FEATURES = 5, + NETDEV_A_DEV_XSK_FEATURES = 6, + __NETDEV_A_DEV_MAX = 7, + NETDEV_A_DEV_MAX = 6, +}; + +enum { + NETDEV_A_DMABUF_IFINDEX = 1, + NETDEV_A_DMABUF_QUEUES = 2, + NETDEV_A_DMABUF_FD = 3, + NETDEV_A_DMABUF_ID = 4, + __NETDEV_A_DMABUF_MAX = 5, + NETDEV_A_DMABUF_MAX = 4, +}; + +enum { + NETDEV_A_NAPI_IFINDEX = 1, + NETDEV_A_NAPI_ID = 2, + NETDEV_A_NAPI_IRQ = 3, + NETDEV_A_NAPI_PID = 4, + NETDEV_A_NAPI_DEFER_HARD_IRQS = 5, + NETDEV_A_NAPI_GRO_FLUSH_TIMEOUT = 6, + NETDEV_A_NAPI_IRQ_SUSPEND_TIMEOUT = 7, + __NETDEV_A_NAPI_MAX = 8, + NETDEV_A_NAPI_MAX = 7, +}; + +enum { + NETDEV_A_PAGE_POOL_ID = 1, + NETDEV_A_PAGE_POOL_IFINDEX = 2, + NETDEV_A_PAGE_POOL_NAPI_ID = 3, + NETDEV_A_PAGE_POOL_INFLIGHT = 4, + NETDEV_A_PAGE_POOL_INFLIGHT_MEM = 5, + NETDEV_A_PAGE_POOL_DETACH_TIME = 6, + NETDEV_A_PAGE_POOL_DMABUF = 7, + __NETDEV_A_PAGE_POOL_MAX = 8, + NETDEV_A_PAGE_POOL_MAX = 7, +}; + +enum { + NETDEV_A_PAGE_POOL_STATS_INFO = 1, + NETDEV_A_PAGE_POOL_STATS_ALLOC_FAST = 8, + NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW = 9, + NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW_HIGH_ORDER = 10, + NETDEV_A_PAGE_POOL_STATS_ALLOC_EMPTY = 11, + NETDEV_A_PAGE_POOL_STATS_ALLOC_REFILL = 12, + NETDEV_A_PAGE_POOL_STATS_ALLOC_WAIVE = 13, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHED = 14, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE_FULL = 15, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING = 16, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING_FULL = 17, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_RELEASED_REFCNT = 18, + __NETDEV_A_PAGE_POOL_STATS_MAX = 19, + NETDEV_A_PAGE_POOL_STATS_MAX = 18, +}; + +enum { + NETDEV_A_QSTATS_IFINDEX = 1, + NETDEV_A_QSTATS_QUEUE_TYPE = 2, + NETDEV_A_QSTATS_QUEUE_ID = 3, + NETDEV_A_QSTATS_SCOPE = 4, + NETDEV_A_QSTATS_RX_PACKETS = 8, + NETDEV_A_QSTATS_RX_BYTES = 9, + NETDEV_A_QSTATS_TX_PACKETS = 10, + NETDEV_A_QSTATS_TX_BYTES = 11, + NETDEV_A_QSTATS_RX_ALLOC_FAIL = 12, + NETDEV_A_QSTATS_RX_HW_DROPS = 13, + NETDEV_A_QSTATS_RX_HW_DROP_OVERRUNS = 14, + NETDEV_A_QSTATS_RX_CSUM_COMPLETE = 15, + NETDEV_A_QSTATS_RX_CSUM_UNNECESSARY = 16, + NETDEV_A_QSTATS_RX_CSUM_NONE = 17, + NETDEV_A_QSTATS_RX_CSUM_BAD = 18, + NETDEV_A_QSTATS_RX_HW_GRO_PACKETS = 19, + NETDEV_A_QSTATS_RX_HW_GRO_BYTES = 20, + NETDEV_A_QSTATS_RX_HW_GRO_WIRE_PACKETS = 21, + NETDEV_A_QSTATS_RX_HW_GRO_WIRE_BYTES = 22, + NETDEV_A_QSTATS_RX_HW_DROP_RATELIMITS = 23, + NETDEV_A_QSTATS_TX_HW_DROPS = 24, + NETDEV_A_QSTATS_TX_HW_DROP_ERRORS = 25, + NETDEV_A_QSTATS_TX_CSUM_NONE = 26, + NETDEV_A_QSTATS_TX_NEEDS_CSUM = 27, + NETDEV_A_QSTATS_TX_HW_GSO_PACKETS = 28, + NETDEV_A_QSTATS_TX_HW_GSO_BYTES = 29, + NETDEV_A_QSTATS_TX_HW_GSO_WIRE_PACKETS = 30, + NETDEV_A_QSTATS_TX_HW_GSO_WIRE_BYTES = 31, + NETDEV_A_QSTATS_TX_HW_DROP_RATELIMITS = 32, + NETDEV_A_QSTATS_TX_STOP = 33, + NETDEV_A_QSTATS_TX_WAKE = 34, + __NETDEV_A_QSTATS_MAX = 35, + NETDEV_A_QSTATS_MAX = 34, +}; + +enum { + NETDEV_A_QUEUE_ID = 1, + NETDEV_A_QUEUE_IFINDEX = 2, + NETDEV_A_QUEUE_TYPE = 3, + NETDEV_A_QUEUE_NAPI_ID = 4, + NETDEV_A_QUEUE_DMABUF = 5, + __NETDEV_A_QUEUE_MAX = 6, + NETDEV_A_QUEUE_MAX = 5, +}; + +enum { + NETDEV_CMD_DEV_GET = 1, + NETDEV_CMD_DEV_ADD_NTF = 2, + NETDEV_CMD_DEV_DEL_NTF = 3, + NETDEV_CMD_DEV_CHANGE_NTF = 4, + NETDEV_CMD_PAGE_POOL_GET = 5, + NETDEV_CMD_PAGE_POOL_ADD_NTF = 6, + NETDEV_CMD_PAGE_POOL_DEL_NTF = 7, + NETDEV_CMD_PAGE_POOL_CHANGE_NTF = 8, + NETDEV_CMD_PAGE_POOL_STATS_GET = 9, + NETDEV_CMD_QUEUE_GET = 10, + NETDEV_CMD_NAPI_GET = 11, + NETDEV_CMD_QSTATS_GET = 12, + NETDEV_CMD_BIND_RX = 13, + NETDEV_CMD_NAPI_SET = 14, + __NETDEV_CMD_MAX = 15, + NETDEV_CMD_MAX = 14, +}; + +enum { + NETDEV_NLGRP_MGMT = 0, + NETDEV_NLGRP_PAGE_POOL = 1, +}; + +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, + __UNUSED_NETIF_F_12 = 12, + __UNUSED_NETIF_F_13 = 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, + __UNUSED_NETIF_F_37 = 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 { + 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 { + NETLINK_F_KERNEL_SOCKET = 0, + NETLINK_F_RECV_PKTINFO = 1, + NETLINK_F_BROADCAST_SEND_ERROR = 2, + NETLINK_F_RECV_NO_ENOBUFS = 3, + NETLINK_F_LISTEN_ALL_NSID = 4, + NETLINK_F_CAP_ACK = 5, + NETLINK_F_EXT_ACK = 6, + NETLINK_F_STRICT_CHK = 7, +}; + +enum { + NETLINK_UNCONNECTED = 0, + NETLINK_CONNECTED = 1, +}; + +enum { + NETNSA_NONE = 0, + NETNSA_NSID = 1, + NETNSA_PID = 2, + NETNSA_FD = 3, + NETNSA_TARGET_NSID = 4, + NETNSA_CURRENT_NSID = 5, + __NETNSA_MAX = 6, +}; + +enum { + NET_DM_ATTR_PORT_NETDEV_IFINDEX = 0, + NET_DM_ATTR_PORT_NETDEV_NAME = 1, + __NET_DM_ATTR_PORT_MAX = 2, + NET_DM_ATTR_PORT_MAX = 1, +}; + +enum { + NET_DM_ATTR_STATS_DROPPED = 0, + __NET_DM_ATTR_STATS_MAX = 1, + NET_DM_ATTR_STATS_MAX = 0, +}; + +enum { + NET_DM_CMD_UNSPEC = 0, + NET_DM_CMD_ALERT = 1, + NET_DM_CMD_CONFIG = 2, + NET_DM_CMD_START = 3, + NET_DM_CMD_STOP = 4, + NET_DM_CMD_PACKET_ALERT = 5, + NET_DM_CMD_CONFIG_GET = 6, + NET_DM_CMD_CONFIG_NEW = 7, + NET_DM_CMD_STATS_GET = 8, + NET_DM_CMD_STATS_NEW = 9, + _NET_DM_CMD_MAX = 10, +}; + +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 { + NET_SHAPER_A_CAPS_IFINDEX = 1, + NET_SHAPER_A_CAPS_SCOPE = 2, + NET_SHAPER_A_CAPS_SUPPORT_METRIC_BPS = 3, + NET_SHAPER_A_CAPS_SUPPORT_METRIC_PPS = 4, + NET_SHAPER_A_CAPS_SUPPORT_NESTING = 5, + NET_SHAPER_A_CAPS_SUPPORT_BW_MIN = 6, + NET_SHAPER_A_CAPS_SUPPORT_BW_MAX = 7, + NET_SHAPER_A_CAPS_SUPPORT_BURST = 8, + NET_SHAPER_A_CAPS_SUPPORT_PRIORITY = 9, + NET_SHAPER_A_CAPS_SUPPORT_WEIGHT = 10, + __NET_SHAPER_A_CAPS_MAX = 11, + NET_SHAPER_A_CAPS_MAX = 10, +}; + +enum { + NET_SHAPER_A_HANDLE = 1, + NET_SHAPER_A_METRIC = 2, + NET_SHAPER_A_BW_MIN = 3, + NET_SHAPER_A_BW_MAX = 4, + NET_SHAPER_A_BURST = 5, + NET_SHAPER_A_PRIORITY = 6, + NET_SHAPER_A_WEIGHT = 7, + NET_SHAPER_A_IFINDEX = 8, + NET_SHAPER_A_PARENT = 9, + NET_SHAPER_A_LEAVES = 10, + __NET_SHAPER_A_MAX = 11, + NET_SHAPER_A_MAX = 10, +}; + +enum { + NET_SHAPER_A_HANDLE_SCOPE = 1, + NET_SHAPER_A_HANDLE_ID = 2, + __NET_SHAPER_A_HANDLE_MAX = 3, + NET_SHAPER_A_HANDLE_MAX = 2, +}; + +enum { + NET_SHAPER_CMD_GET = 1, + NET_SHAPER_CMD_SET = 2, + NET_SHAPER_CMD_DELETE = 3, + NET_SHAPER_CMD_GROUP = 4, + NET_SHAPER_CMD_CAP_GET = 5, + __NET_SHAPER_CMD_MAX = 6, + NET_SHAPER_CMD_MAX = 5, +}; + +enum { + NEXTHOP_GRP_TYPE_MPATH = 0, + NEXTHOP_GRP_TYPE_RES = 1, + __NEXTHOP_GRP_TYPE_MAX = 2, +}; + +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 { + NHA_GROUP_STATS_ENTRY_UNSPEC = 0, + NHA_GROUP_STATS_ENTRY_ID = 1, + NHA_GROUP_STATS_ENTRY_PACKETS = 2, + NHA_GROUP_STATS_ENTRY_PACKETS_HW = 3, + __NHA_GROUP_STATS_ENTRY_MAX = 4, +}; + +enum { + NHA_GROUP_STATS_UNSPEC = 0, + NHA_GROUP_STATS_ENTRY = 1, + __NHA_GROUP_STATS_MAX = 2, +}; + +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 { + 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_UNSPEC = 0, + NHA_ID = 1, + NHA_GROUP = 2, + NHA_GROUP_TYPE = 3, + NHA_BLACKHOLE = 4, + NHA_OIF = 5, + NHA_GATEWAY = 6, + NHA_ENCAP_TYPE = 7, + NHA_ENCAP = 8, + NHA_GROUPS = 9, + NHA_MASTER = 10, + NHA_FDB = 11, + NHA_RES_GROUP = 12, + NHA_RES_BUCKET = 13, + NHA_OP_FLAGS = 14, + NHA_GROUP_STATS = 15, + NHA_HW_STATS_ENABLE = 16, + NHA_HW_STATS_USED = 17, + __NHA_MAX = 18, +}; + +enum { + NLA_UNSPEC = 0, + NLA_U8 = 1, + NLA_U16 = 2, + NLA_U32 = 3, + NLA_U64 = 4, + NLA_STRING = 5, + NLA_FLAG = 6, + NLA_MSECS = 7, + NLA_NESTED = 8, + NLA_NESTED_ARRAY = 9, + NLA_NUL_STRING = 10, + NLA_BINARY = 11, + NLA_S8 = 12, + NLA_S16 = 13, + NLA_S32 = 14, + NLA_S64 = 15, + NLA_BITFIELD32 = 16, + NLA_REJECT = 17, + NLA_BE16 = 18, + NLA_BE32 = 19, + NLA_SINT = 20, + NLA_UINT = 21, + __NLA_TYPE_MAX = 22, +}; + +enum { + 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, +}; + +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, +}; + +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, +}; + +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, +}; + +enum { + NMI_LOCAL = 0, + NMI_UNKNOWN = 1, + NMI_SERR = 2, + NMI_IO_CHECK = 3, + NMI_MAX = 4, +}; + +enum { + NODE_ACCESS_CLASS_GENPORT_SINK_LOCAL = 2, + NODE_ACCESS_CLASS_GENPORT_SINK_CPU = 3, + NODE_ACCESS_CLASS_MAX = 4, +}; + +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 { + NSINDEX_SIG_LEN = 16, + NSINDEX_ALIGN = 256, + NSINDEX_SEQ_MASK = 3, + NSLABEL_UUID_LEN = 16, + NSLABEL_NAME_LEN = 64, + NSLABEL_FLAG_ROLABEL = 1, + NSLABEL_FLAG_LOCAL = 2, + NSLABEL_FLAG_BTT = 4, + NSLABEL_FLAG_UPDATING = 8, + BTT_ALIGN = 4096, + BTTINFO_SIG_LEN = 16, + BTTINFO_UUID_LEN = 16, + BTTINFO_FLAG_ERROR = 1, + BTTINFO_MAJOR_VERSION = 1, + ND_LABEL_MIN_SIZE = 1024, + ND_LABEL_ID_SIZE = 50, + ND_NSINDEX_INIT = 1, +}; + +enum { + NUM_TRIAL_SAMPLES = 8192, + MAX_SAMPLES_PER_BIT = 66, +}; + +enum { + NVMEM_ADD = 1, + NVMEM_REMOVE = 2, + NVMEM_CELL_ADD = 3, + NVMEM_CELL_REMOVE = 4, + NVMEM_LAYOUT_ADD = 5, + NVMEM_LAYOUT_REMOVE = 6, +}; + +enum { + NVME_AEN_BIT_NS_ATTR = 8, + NVME_AEN_BIT_FW_ACT = 9, + NVME_AEN_BIT_ANA_CHANGE = 11, + NVME_AEN_BIT_DISC_CHANGE = 31, +}; + +enum { + NVME_CC_ENABLE = 1, + NVME_CC_EN_SHIFT = 0, + NVME_CC_CSS_SHIFT = 4, + NVME_CC_CSS_MASK = 112, + NVME_CC_CSS_NVM = 0, + NVME_CC_CSS_CSI = 96, + NVME_CC_MPS_SHIFT = 7, + NVME_CC_MPS_MASK = 1920, + NVME_CC_AMS_SHIFT = 11, + NVME_CC_AMS_MASK = 14336, + NVME_CC_AMS_RR = 0, + NVME_CC_AMS_WRRU = 2048, + NVME_CC_AMS_VS = 14336, + NVME_CC_SHN_SHIFT = 14, + NVME_CC_SHN_MASK = 49152, + NVME_CC_SHN_NONE = 0, + NVME_CC_SHN_NORMAL = 16384, + NVME_CC_SHN_ABRUPT = 32768, + NVME_CC_IOSQES_SHIFT = 16, + NVME_CC_IOSQES_MASK = 983040, + NVME_CC_IOSQES = 393216, + NVME_CC_IOCQES_SHIFT = 20, + NVME_CC_IOCQES_MASK = 15728640, + 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 { + 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 { + OD_NORMAL_SAMPLE = 0, + OD_SUB_SAMPLE = 1, +}; + +enum { + ONLINE_POLICY_CONTIG_ZONES = 0, + ONLINE_POLICY_AUTO_MOVABLE = 1, +}; + +enum { + OPT_SOURCE = 0, + OPT_SUBTYPE = 1, + OPT_FD = 2, + OPT_ROOTMODE = 3, + OPT_USER_ID = 4, + OPT_GROUP_ID = 5, + OPT_DEFAULT_PERMISSIONS = 6, + OPT_ALLOW_OTHER = 7, + OPT_MAX_READ = 8, + OPT_BLKSIZE = 9, + OPT_ERR = 10, +}; + +enum { + OPT_UID = 0, + OPT_GID = 1, + OPT_MODE = 2, + OPT_DELEGATE_CMDS = 3, + OPT_DELEGATE_MAPS = 4, + OPT_DELEGATE_PROGS = 5, + OPT_DELEGATE_ATTACHS = 6, +}; + +enum { + OVERRIDE_NONE = 0, + OVERRIDE_BASE = 1, + OVERRIDE_STRIDE = 2, + OVERRIDE_HEIGHT = 4, + OVERRIDE_WIDTH = 8, +}; + +enum { + Opt_bsd_df = 0, + Opt_minix_df = 1, + Opt_grpid = 2, + Opt_nogrpid = 3, + Opt_resgid = 4, + Opt_resuid = 5, + Opt_sb = 6, + Opt_nouid32 = 7, + Opt_debug = 8, + Opt_removed = 9, + Opt_user_xattr = 10, + Opt_acl = 11, + Opt_auto_da_alloc = 12, + Opt_noauto_da_alloc = 13, + Opt_noload = 14, + Opt_commit = 15, + Opt_min_batch_time = 16, + Opt_max_batch_time = 17, + Opt_journal_dev = 18, + Opt_journal_path = 19, + Opt_journal_checksum = 20, + Opt_journal_async_commit = 21, + Opt_abort = 22, + Opt_data_journal = 23, + Opt_data_ordered = 24, + Opt_data_writeback = 25, + Opt_data_err_abort = 26, + Opt_data_err_ignore = 27, + Opt_test_dummy_encryption = 28, + Opt_inlinecrypt = 29, + Opt_usrjquota = 30, + Opt_grpjquota = 31, + Opt_quota = 32, + Opt_noquota = 33, + Opt_barrier = 34, + Opt_nobarrier = 35, + Opt_err = 36, + Opt_usrquota = 37, + Opt_grpquota = 38, + Opt_prjquota = 39, + Opt_dax = 40, + Opt_dax_always = 41, + Opt_dax_inode = 42, + Opt_dax_never = 43, + Opt_stripe = 44, + Opt_delalloc = 45, + Opt_nodelalloc = 46, + Opt_warn_on_error = 47, + Opt_nowarn_on_error = 48, + Opt_mblk_io_submit = 49, + Opt_debug_want_extra_isize = 50, + Opt_nomblk_io_submit = 51, + Opt_block_validity = 52, + Opt_noblock_validity = 53, + Opt_inode_readahead_blks = 54, + Opt_journal_ioprio = 55, + Opt_dioread_nolock = 56, + Opt_dioread_lock = 57, + Opt_discard = 58, + Opt_nodiscard = 59, + Opt_init_itable = 60, + Opt_noinit_itable = 61, + Opt_max_dir_size_kb = 62, + Opt_nojournal_checksum = 63, + Opt_nombcache = 64, + Opt_no_prefetch_block_bitmaps = 65, + Opt_mb_optimize_scan = 66, + Opt_errors = 67, + Opt_data = 68, + Opt_data_err = 69, + Opt_jqfmt = 70, + Opt_dax_type = 71, +}; + +enum { + Opt_check = 0, + Opt_uid = 1, + Opt_gid = 2, + Opt_umask = 3, + Opt_dmask = 4, + Opt_fmask = 5, + Opt_allow_utime = 6, + Opt_codepage = 7, + Opt_usefree = 8, + Opt_nocase = 9, + Opt_quiet = 10, + Opt_showexec = 11, + Opt_debug___2 = 12, + Opt_immutable = 13, + Opt_dots = 14, + Opt_dotsOK = 15, + Opt_charset = 16, + Opt_shortname = 17, + Opt_utf8 = 18, + Opt_utf8_bool = 19, + Opt_uni_xl = 20, + Opt_uni_xl_bool = 21, + Opt_nonumtail = 22, + Opt_nonumtail_bool = 23, + Opt_obsolete = 24, + Opt_flush = 25, + Opt_tz = 26, + Opt_rodir = 27, + Opt_errors___2 = 28, + Opt_discard___2 = 29, + Opt_nfs = 30, + Opt_nfs_enum = 31, + Opt_time_offset = 32, + Opt_dos1xfloppy = 33, +}; + +enum { + Opt_default = 0, + Opt_ecryptfs = 1, + Opt_enc32 = 2, + Opt_error = 3, +}; + +enum { + Opt_err___2 = 0, + Opt_enc = 1, + Opt_hash = 2, +}; + +enum { + Opt_err___3 = 0, + Opt_new = 1, + Opt_load = 2, + Opt_update = 3, +}; + +enum { + Opt_err___4 = 0, + Opt_keyhandle = 1, + Opt_keyauth = 2, + Opt_blobauth = 3, + Opt_pcrinfo = 4, + Opt_pcrlock = 5, + Opt_migratable = 6, + Opt_hash___2 = 7, + Opt_policydigest = 8, + Opt_policyhandle = 9, +}; + +enum { + Opt_error___2 = -1, + Opt_fsdefault = 0, + Opt_fsfloor = 1, + Opt_fshat = 2, + Opt_fsroot = 3, + Opt_fstransmute = 4, +}; + +enum { + Opt_error___3 = -1, + Opt_context = 0, + Opt_defcontext = 1, + Opt_fscontext = 2, + Opt_rootcontext = 3, + Opt_seclabel = 4, +}; + +enum { + Opt_kmsg_bytes = 0, + Opt_err___5 = 1, +}; + +enum { + Opt_new___2 = 0, + Opt_load___2 = 1, + Opt_update___2 = 2, + Opt_err___6 = 3, +}; + +enum { + Opt_sig = 0, + Opt_ecryptfs_sig = 1, + Opt_cipher = 2, + Opt_ecryptfs_cipher = 3, + Opt_ecryptfs_key_bytes = 4, + Opt_passthrough = 5, + Opt_xattr_metadata = 6, + Opt_encrypted_view = 7, + Opt_fnek_sig = 8, + Opt_fn_cipher = 9, + Opt_fn_cipher_key_bytes = 10, + Opt_unlink_sigs = 11, + Opt_mount_auth_tok_only = 12, + Opt_check_dev_ruid = 13, +}; + +enum { + Opt_uid___2 = 0, + Opt_gid___2 = 1, +}; + +enum { + Opt_uid___3 = 0, + Opt_gid___3 = 1, + Opt_mode = 2, +}; + +enum { + Opt_uid___4 = 0, + Opt_gid___4 = 1, + Opt_mode___2 = 2, + Opt_source = 3, +}; + +enum { + Opt_uid___5 = 0, + Opt_gid___5 = 1, + Opt_mode___3 = 2, + Opt_ptmxmode = 3, + Opt_newinstance = 4, + Opt_max = 5, + Opt_err___7 = 6, +}; + +enum { + PADDRW = 0, + PDATA = 4, + PPMASK = 8, + PADDRR = 12, + PIDXLO = 16, + PIDXHI = 20, + PIDXDATA = 24, + PIDXCTL = 28, +}; + +enum { + PAD_CONNECT_NONE = 0, + PAD_CONNECT_INPUT = 1, + PAD_CONNECT_OUTPUT = 2, + PAD_CONNECT_FULL = 3, +}; + +enum { + PAD_UNLOCKED = 0, + PAD_LOCKED = 1, + PAD_LOCKED_TX = 2, + PAD_LOCKED_FULL = 3, +}; + +enum { + PAGE_REPORTING_IDLE = 0, + PAGE_REPORTING_REQUESTED = 1, + PAGE_REPORTING_ACTIVE = 2, +}; + +enum { + PAGE_WAS_MAPPED = 1, + PAGE_WAS_MLOCKED = 2, + PAGE_OLD_STATES = 3, +}; + +enum { + PALMAS_EXT_CONTROL_ENABLE1 = 1, + PALMAS_EXT_CONTROL_ENABLE2 = 2, + PALMAS_EXT_CONTROL_NSLEEP = 4, +}; + +enum { + PARSE_INVALID = 1, + PARSE_NOT_LONGNAME = 2, + PARSE_EOF = 3, +}; + +enum { + PCI_REASSIGN_ALL_RSRC = 1, + PCI_REASSIGN_ALL_BUS = 2, + PCI_PROBE_ONLY = 4, + PCI_CAN_SKIP_ISA_ALIGN = 8, + PCI_ENABLE_PROC_DOMAINS = 16, + PCI_COMPAT_DOMAIN_0 = 32, + PCI_SCAN_ALL_PCIE_DEVS = 64, +}; + +enum { + PCI_STD_RESOURCES = 0, + PCI_STD_RESOURCE_END = 5, + PCI_ROM_RESOURCE = 6, + PCI_IOV_RESOURCES = 7, + PCI_IOV_RESOURCE_END = 12, + PCI_BRIDGE_RESOURCES = 13, + PCI_BRIDGE_RESOURCE_END = 16, + PCI_NUM_RESOURCES = 17, + DEVICE_COUNT_RESOURCE = 17, +}; + +enum { + PERCPU_REF_INIT_ATOMIC = 1, + PERCPU_REF_INIT_DEAD = 2, + PERCPU_REF_ALLOW_REINIT = 4, +}; + +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_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 { + PERF_TXN_ELISION = 1ULL, + PERF_TXN_TRANSACTION = 2ULL, + PERF_TXN_SYNC = 4ULL, + PERF_TXN_ASYNC = 8ULL, + PERF_TXN_RETRY = 16ULL, + PERF_TXN_CONFLICT = 32ULL, + PERF_TXN_CAPACITY_WRITE = 64ULL, + PERF_TXN_CAPACITY_READ = 128ULL, + PERF_TXN_MAX = 256ULL, + PERF_TXN_ABORT_MASK = 18446744069414584320ULL, + PERF_TXN_ABORT_SHIFT = 32ULL, +}; + +enum { + PERF_X86_EVENT_PEBS_LDLAT = 1, + PERF_X86_EVENT_PEBS_ST = 2, + PERF_X86_EVENT_PEBS_ST_HSW = 4, + PERF_X86_EVENT_PEBS_LD_HSW = 8, + PERF_X86_EVENT_PEBS_NA_HSW = 16, + PERF_X86_EVENT_EXCL = 32, + PERF_X86_EVENT_DYNAMIC = 64, + PERF_X86_EVENT_EXCL_ACCT = 256, + PERF_X86_EVENT_AUTO_RELOAD = 512, + PERF_X86_EVENT_LARGE_PEBS = 1024, + PERF_X86_EVENT_PEBS_VIA_PT = 2048, + PERF_X86_EVENT_PAIR = 4096, + PERF_X86_EVENT_LBR_SELECT = 8192, + PERF_X86_EVENT_TOPDOWN = 16384, + PERF_X86_EVENT_PEBS_STLAT = 32768, + PERF_X86_EVENT_AMD_BRS = 65536, + PERF_X86_EVENT_PEBS_LAT_HYBRID = 131072, + PERF_X86_EVENT_NEEDS_BRANCH_STACK = 262144, + PERF_X86_EVENT_BRANCH_COUNTERS = 524288, +}; + +enum { + 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 { + 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, +}; + +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 { + 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, +}; + +enum { + PM8607_IRQ_ONKEY = 0, + PM8607_IRQ_EXTON = 1, + PM8607_IRQ_CHG = 2, + PM8607_IRQ_BAT = 3, + PM8607_IRQ_RTC = 4, + PM8607_IRQ_CC = 5, + PM8607_IRQ_VBAT = 6, + PM8607_IRQ_VCHG = 7, + PM8607_IRQ_VSYS = 8, + PM8607_IRQ_TINT = 9, + PM8607_IRQ_GPADC0 = 10, + PM8607_IRQ_GPADC1 = 11, + PM8607_IRQ_GPADC2 = 12, + PM8607_IRQ_GPADC3 = 13, + PM8607_IRQ_AUDIO_SHORT = 14, + PM8607_IRQ_PEN = 15, + PM8607_IRQ_HEADSET = 16, + PM8607_IRQ_HOOK = 17, + PM8607_IRQ_MICIN = 18, + PM8607_IRQ_CHG_FAIL = 19, + PM8607_IRQ_CHG_DONE = 20, + PM8607_IRQ_CHG_FAULT = 21, +}; + +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_USERSPACE_INITIAL_CONTEXT = 8, + POLICYDB_CAP_NETLINK_XPERM = 9, + __POLICYDB_CAP_MAX = 10, +}; + +enum { + POOL_BITS = 256, + POOL_READY_BITS = 256, + POOL_EARLY_BITS = 128, +}; + +enum { + POWERON_SECS = 3, +}; + +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_HEALTH_UNKNOWN = 0, + POWER_SUPPLY_HEALTH_GOOD = 1, + POWER_SUPPLY_HEALTH_OVERHEAT = 2, + POWER_SUPPLY_HEALTH_DEAD = 3, + POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4, + POWER_SUPPLY_HEALTH_UNDERVOLTAGE = 5, + POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 6, + POWER_SUPPLY_HEALTH_COLD = 7, + POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 8, + POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 9, + POWER_SUPPLY_HEALTH_OVERCURRENT = 10, + POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED = 11, + POWER_SUPPLY_HEALTH_WARM = 12, + POWER_SUPPLY_HEALTH_COOL = 13, + POWER_SUPPLY_HEALTH_HOT = 14, + POWER_SUPPLY_HEALTH_NO_BATTERY = 15, +}; + +enum { + POWER_SUPPLY_SCOPE_UNKNOWN = 0, + POWER_SUPPLY_SCOPE_SYSTEM = 1, + POWER_SUPPLY_SCOPE_DEVICE = 2, +}; + +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_TECHNOLOGY_UNKNOWN = 0, + POWER_SUPPLY_TECHNOLOGY_NiMH = 1, + POWER_SUPPLY_TECHNOLOGY_LION = 2, + POWER_SUPPLY_TECHNOLOGY_LIPO = 3, + POWER_SUPPLY_TECHNOLOGY_LiFe = 4, + POWER_SUPPLY_TECHNOLOGY_NiCd = 5, + POWER_SUPPLY_TECHNOLOGY_LiMn = 6, +}; + +enum { + PREFIX_UNSPEC = 0, + PREFIX_ADDRESS = 1, + PREFIX_CACHEINFO = 2, + __PREFIX_MAX = 3, +}; + +enum { + PROC_ENTRY_PERMANENT = 1, + PROC_ENTRY_proc_read_iter = 2, + PROC_ENTRY_proc_compat_ioctl = 4, +}; + +enum { + PROC_ROOT_INO = 1, + PROC_IPC_INIT_INO = 4026531839, + PROC_UTS_INIT_INO = 4026531838, + PROC_USER_INIT_INO = 4026531837, + PROC_PID_INIT_INO = 4026531836, + PROC_CGROUP_INIT_INO = 4026531835, + PROC_TIME_INIT_INO = 4026531834, +}; + +enum { + PSS = 0, + PPC = 1, +}; + +enum { + PWMF_REQUESTED = 0, + PWMF_EXPORTED = 1, +}; + +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, +}; + +enum { + QI_FREE = 0, + QI_IN_USE = 1, + QI_DONE = 2, + QI_ABORT = 3, +}; + +enum { + QOS_ENABLE = 0, + QOS_CTRL = 1, + NR_QOS_CTRL_PARAMS = 2, +}; + +enum { + QOS_RPPM = 0, + QOS_RLAT = 1, + QOS_WPPM = 2, + QOS_WLAT = 3, + QOS_MIN = 4, + QOS_MAX = 5, + NR_QOS_PARAMS = 6, +}; + +enum { + QUEUE_FLAG_DYING = 0, + QUEUE_FLAG_NOMERGES = 1, + QUEUE_FLAG_SAME_COMP = 2, + QUEUE_FLAG_FAIL_IO = 3, + QUEUE_FLAG_NOXMERGES = 4, + QUEUE_FLAG_SAME_FORCE = 5, + QUEUE_FLAG_INIT_DONE = 6, + QUEUE_FLAG_STATS = 7, + QUEUE_FLAG_REGISTERED = 8, + QUEUE_FLAG_QUIESCED = 9, + QUEUE_FLAG_RQ_ALLOC_TIME = 10, + QUEUE_FLAG_HCTX_ACTIVE = 11, + QUEUE_FLAG_SQ_SCHED = 12, + QUEUE_FLAG_MAX = 13, +}; + +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 { + QUOTA_NL_C_UNSPEC = 0, + QUOTA_NL_C_WARNING = 1, + __QUOTA_NL_C_MAX = 2, +}; + +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, +}; + +enum { + RADIX_TREE_ITER_TAG_MASK = 15, + RADIX_TREE_ITER_TAGGED = 16, + RADIX_TREE_ITER_CONTIG = 32, +}; + +enum { + RB_ADD_STAMP_NONE = 0, + RB_ADD_STAMP_EXTEND = 2, + RB_ADD_STAMP_ABSOLUTE = 4, + RB_ADD_STAMP_FORCE = 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_LEN_TIME_EXTEND = 8, + RB_LEN_TIME_STAMP = 8, +}; + +enum { + RC5T583_DS_NONE = 0, + RC5T583_DS_DC0 = 1, + RC5T583_DS_DC1 = 2, + RC5T583_DS_DC2 = 3, + RC5T583_DS_DC3 = 4, + RC5T583_DS_LDO0 = 5, + RC5T583_DS_LDO1 = 6, + RC5T583_DS_LDO2 = 7, + RC5T583_DS_LDO3 = 8, + RC5T583_DS_LDO4 = 9, + RC5T583_DS_LDO5 = 10, + RC5T583_DS_LDO6 = 11, + RC5T583_DS_LDO7 = 12, + RC5T583_DS_LDO8 = 13, + RC5T583_DS_LDO9 = 14, + RC5T583_DS_PSO0 = 15, + RC5T583_DS_PSO1 = 16, + RC5T583_DS_PSO2 = 17, + RC5T583_DS_PSO3 = 18, + RC5T583_DS_PSO4 = 19, + RC5T583_DS_PSO5 = 20, + RC5T583_DS_PSO6 = 21, + RC5T583_DS_PSO7 = 22, + RC5T583_DS_MAX = 23, +}; + +enum { + RC5T583_EXT_PWRREQ1_CONTROL = 1, + RC5T583_EXT_PWRREQ2_CONTROL = 2, +}; + +enum { + RC5T583_GPIO0 = 0, + RC5T583_GPIO1 = 1, + RC5T583_GPIO2 = 2, + RC5T583_GPIO3 = 3, + RC5T583_GPIO4 = 4, + RC5T583_GPIO5 = 5, + RC5T583_GPIO6 = 6, + RC5T583_GPIO7 = 7, + RC5T583_MAX_GPIO = 8, +}; + +enum { + RC5T583_IRQ_ONKEY = 0, + RC5T583_IRQ_ACOK = 1, + RC5T583_IRQ_LIDOPEN = 2, + RC5T583_IRQ_PREOT = 3, + RC5T583_IRQ_CLKSTP = 4, + RC5T583_IRQ_ONKEY_OFF = 5, + RC5T583_IRQ_WD = 6, + RC5T583_IRQ_EN_PWRREQ1 = 7, + RC5T583_IRQ_EN_PWRREQ2 = 8, + RC5T583_IRQ_PRE_VINDET = 9, + RC5T583_IRQ_DC0LIM = 10, + RC5T583_IRQ_DC1LIM = 11, + RC5T583_IRQ_DC2LIM = 12, + RC5T583_IRQ_DC3LIM = 13, + RC5T583_IRQ_CTC = 14, + RC5T583_IRQ_YALE = 15, + RC5T583_IRQ_DALE = 16, + RC5T583_IRQ_WALE = 17, + RC5T583_IRQ_AIN1L = 18, + RC5T583_IRQ_AIN2L = 19, + RC5T583_IRQ_AIN3L = 20, + RC5T583_IRQ_VBATL = 21, + RC5T583_IRQ_VIN3L = 22, + RC5T583_IRQ_VIN8L = 23, + RC5T583_IRQ_AIN1H = 24, + RC5T583_IRQ_AIN2H = 25, + RC5T583_IRQ_AIN3H = 26, + RC5T583_IRQ_VBATH = 27, + RC5T583_IRQ_VIN3H = 28, + RC5T583_IRQ_VIN8H = 29, + RC5T583_IRQ_ADCEND = 30, + RC5T583_IRQ_GPIO0 = 31, + RC5T583_IRQ_GPIO1 = 32, + RC5T583_IRQ_GPIO2 = 33, + RC5T583_IRQ_GPIO3 = 34, + RC5T583_IRQ_GPIO4 = 35, + RC5T583_IRQ_GPIO5 = 36, + RC5T583_IRQ_GPIO6 = 37, + RC5T583_IRQ_GPIO7 = 38, + RC5T583_MAX_IRQS = 39, +}; + +enum { + RC5T583_REGULATOR_DC0 = 0, + RC5T583_REGULATOR_DC1 = 1, + RC5T583_REGULATOR_DC2 = 2, + RC5T583_REGULATOR_DC3 = 3, + RC5T583_REGULATOR_LDO0 = 4, + RC5T583_REGULATOR_LDO1 = 5, + RC5T583_REGULATOR_LDO2 = 6, + RC5T583_REGULATOR_LDO3 = 7, + RC5T583_REGULATOR_LDO4 = 8, + RC5T583_REGULATOR_LDO5 = 9, + RC5T583_REGULATOR_LDO6 = 10, + RC5T583_REGULATOR_LDO7 = 11, + RC5T583_REGULATOR_LDO8 = 12, + RC5T583_REGULATOR_LDO9 = 13, + RC5T583_REGULATOR_MAX = 14, +}; + +enum { + RCD = 0, + RCH_DP = 1, + DEVICE = 2, + LD = 3, + FMLD = 4, + RP = 5, + DSP = 6, + USP = 7, +}; + +enum { + RDT_FLAG_CMT = 0, + RDT_FLAG_MBM_TOTAL = 1, + RDT_FLAG_MBM_LOCAL = 2, + RDT_FLAG_L3_CAT = 3, + RDT_FLAG_L3_CDP = 4, + RDT_FLAG_L2_CAT = 5, + RDT_FLAG_L2_CDP = 6, + RDT_FLAG_MBA = 7, + RDT_FLAG_SMBA = 8, + RDT_FLAG_BMEC = 9, +}; + +enum { + REASON_BOUNDS = -1, + REASON_TYPE = -2, + REASON_PATHS = -3, + REASON_LIMIT = -4, + REASON_STACK = -5, +}; + +enum { + REGION_INTERSECTS = 0, + REGION_DISJOINT = 1, + REGION_MIXED = 2, +}; + +enum { + REGULATOR_ERROR_CLEARED = 0, + REGULATOR_FAILED_RETRY = 1, + REGULATOR_ERROR_ON = 2, +}; + +enum { + REG_GENL_ATTR_UNSPEC = 0, + REG_GENL_ATTR_EVENT = 1, + __REG_GENL_ATTR_MAX = 2, +}; + +enum { + REG_GENL_CMD_UNSPEC = 0, + REG_GENL_CMD_EVENT = 1, + __REG_GENL_CMD_MAX = 2, +}; + +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 { + REQ_F_FIXED_FILE = 1ULL, + REQ_F_IO_DRAIN = 2ULL, + REQ_F_LINK = 4ULL, + REQ_F_HARDLINK = 8ULL, + REQ_F_FORCE_ASYNC = 16ULL, + REQ_F_BUFFER_SELECT = 32ULL, + REQ_F_CQE_SKIP = 64ULL, + REQ_F_FAIL = 256ULL, + REQ_F_INFLIGHT = 512ULL, + REQ_F_CUR_POS = 1024ULL, + REQ_F_NOWAIT = 2048ULL, + REQ_F_LINK_TIMEOUT = 4096ULL, + REQ_F_NEED_CLEANUP = 8192ULL, + REQ_F_POLLED = 16384ULL, + REQ_F_IOPOLL_STATE = 32768ULL, + REQ_F_BUFFER_SELECTED = 65536ULL, + REQ_F_BUFFER_RING = 131072ULL, + REQ_F_REISSUE = 262144ULL, + REQ_F_SUPPORT_NOWAIT = 536870912ULL, + REQ_F_ISREG = 1073741824ULL, + REQ_F_CREDS = 524288ULL, + REQ_F_REFCOUNT = 1048576ULL, + REQ_F_ARM_LTIMEOUT = 2097152ULL, + REQ_F_ASYNC_DATA = 4194304ULL, + REQ_F_SKIP_LINK_CQES = 8388608ULL, + REQ_F_SINGLE_POLL = 16777216ULL, + REQ_F_DOUBLE_POLL = 33554432ULL, + REQ_F_MULTISHOT = 67108864ULL, + REQ_F_APOLL_MULTISHOT = 134217728ULL, + REQ_F_CLEAR_POLLIN = 268435456ULL, + REQ_F_POLL_NO_LAZY = 2147483648ULL, + REQ_F_CAN_POLL = 4294967296ULL, + REQ_F_BL_EMPTY = 8589934592ULL, + REQ_F_BL_NO_RECYCLE = 17179869184ULL, + REQ_F_BUFFERS_COMMIT = 34359738368ULL, + REQ_F_BUF_NODE = 68719476736ULL, + REQ_F_HAS_METADATA = 137438953472ULL, +}; + +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_HYBRID_IOPOLL_STATE_BIT = 15, + REQ_F_BUFFER_SELECTED_BIT = 16, + REQ_F_BUFFER_RING_BIT = 17, + REQ_F_REISSUE_BIT = 18, + REQ_F_CREDS_BIT = 19, + REQ_F_REFCOUNT_BIT = 20, + REQ_F_ARM_LTIMEOUT_BIT = 21, + REQ_F_ASYNC_DATA_BIT = 22, + REQ_F_SKIP_LINK_CQES_BIT = 23, + REQ_F_SINGLE_POLL_BIT = 24, + REQ_F_DOUBLE_POLL_BIT = 25, + REQ_F_MULTISHOT_BIT = 26, + REQ_F_APOLL_MULTISHOT_BIT = 27, + REQ_F_CLEAR_POLLIN_BIT = 28, + REQ_F_SUPPORT_NOWAIT_BIT = 29, + REQ_F_ISREG_BIT = 30, + REQ_F_POLL_NO_LAZY_BIT = 31, + REQ_F_CAN_POLL_BIT = 32, + REQ_F_BL_EMPTY_BIT = 33, + REQ_F_BL_NO_RECYCLE_BIT = 34, + REQ_F_BUFFERS_COMMIT_BIT = 35, + REQ_F_BUF_NODE_BIT = 36, + REQ_F_HAS_METADATA_BIT = 37, + __REQ_F_LAST_BIT = 38, +}; + +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 { + RNG_SEED_LENGTH = 32, +}; + +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 { + 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 { + 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_NEWMULTICAST = 56, + RTM_DELMULTICAST = 57, + RTM_GETMULTICAST = 58, + RTM_NEWANYCAST = 60, + RTM_DELANYCAST = 61, + 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 { + 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 { + RWB_DEF_DEPTH = 16, + RWB_WINDOW_NSEC = 100000000, + RWB_MIN_WRITE_SAMPLES = 3, + RWB_UNKNOWN_BUMP = 5, +}; + +enum { + Root_NFS = 255, + Root_CIFS = 254, + Root_Generic = 253, + Root_RAM0 = 1048576, +}; + +enum { + S1SA = 0, + S2SA = 1, + SP = 2, + DSA = 3, + CNT = 4, + DP_OCTL = 5, + CLR = 6, + BI = 8, + MBC = 9, + BLTCTL = 10, + HES = 12, + HEB = 13, + HSB = 14, + HT = 15, + VES = 16, + VEB = 17, + VSB = 18, + VT = 19, + HCIV = 20, + VCIV = 21, + TCDR = 22, + VIL = 23, + STGCTL = 24, + SSR = 25, + HRIR = 26, + SPR = 27, + CMR = 28, + SRGCTL = 29, + RRCIV = 30, + RRSC = 31, + RRCR = 34, + GIOE = 32, + GIO = 33, + SCR = 35, + SSTATUS = 36, + PRC = 37, +}; + +enum { + SAMPLES = 8, + MIN_CHANGE = 5, +}; + +enum { + SB_UNFROZEN = 0, + SB_FREEZE_WRITE = 1, + SB_FREEZE_PAGEFAULT = 2, + SB_FREEZE_FS = 3, + SB_FREEZE_COMPLETE = 4, +}; + +enum { + SCM_TSTAMP_SND = 0, + SCM_TSTAMP_SCHED = 1, + SCM_TSTAMP_ACK = 2, +}; + +enum { + SCSI_DH_OK = 0, + SCSI_DH_DEV_FAILED = 1, + SCSI_DH_DEV_TEMP_BUSY = 2, + SCSI_DH_DEV_UNSUPP = 3, + SCSI_DH_DEVICE_MAX = 4, + SCSI_DH_NOTCONN = 5, + SCSI_DH_CONN_FAILURE = 6, + SCSI_DH_TRANSPORT_MAX = 7, + SCSI_DH_IO = 8, + SCSI_DH_INVALID_IO = 9, + SCSI_DH_RETRY = 10, + SCSI_DH_IMM_RETRY = 11, + SCSI_DH_TIMED_OUT = 12, + SCSI_DH_RES_TEMP_UNAVAIL = 13, + SCSI_DH_DEV_OFFLINED = 14, + SCSI_DH_NOMEM = 15, + SCSI_DH_NOSYS = 16, + SCSI_DH_DRIVER_MAX = 17, +}; + +enum { + SCTP_AUTH_HMAC_ID_RESERVED_0 = 0, + SCTP_AUTH_HMAC_ID_SHA1 = 1, + SCTP_AUTH_HMAC_ID_RESERVED_2 = 2, + SCTP_AUTH_HMAC_ID_SHA256 = 3, + __SCTP_AUTH_HMAC_MAX = 4, +}; + +enum { + SCTP_MAX_DUP_TSNS = 16, +}; + +enum { + SCTP_MAX_STREAM = 65535, +}; + +enum { + SD_BALANCE_NEWIDLE = 1, + SD_BALANCE_EXEC = 2, + SD_BALANCE_FORK = 4, + SD_BALANCE_WAKE = 8, + SD_WAKE_AFFINE = 16, + SD_ASYM_CPUCAPACITY = 32, + SD_ASYM_CPUCAPACITY_FULL = 64, + SD_SHARE_CPUCAPACITY = 128, + SD_CLUSTER = 256, + SD_SHARE_LLC = 512, + SD_SERIALIZE = 1024, + SD_ASYM_PACKING = 2048, + SD_PREFER_SIBLING = 4096, + SD_OVERLAP = 8192, + SD_NUMA = 16384, +}; + +enum { + SD_DEF_XFER_BLOCKS = 65535, + SD_MAX_XFER_BLOCKS = 4294967295, + SD_MAX_WS10_BLOCKS = 65535, + SD_MAX_WS16_BLOCKS = 8388607, +}; + +enum { + SD_EXT_CDB_SIZE = 32, + SD_MEMPOOL_SIZE = 2, +}; + +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 { + SD_ZERO_WRITE = 0, + SD_ZERO_WS = 1, + SD_ZERO_WS16_UNMAP = 2, + SD_ZERO_WS10_UNMAP = 3, +}; + +enum { + SEAL_keytype = 1, + SRK_keytype = 4, +}; + +enum { + SECTION_MARKED_PRESENT_BIT = 0, + SECTION_HAS_MEM_MAP_BIT = 1, + SECTION_IS_ONLINE_BIT = 2, + SECTION_IS_EARLY_BIT = 3, + SECTION_TAINT_ZONE_DEVICE_BIT = 4, + SECTION_MAP_LAST_BIT = 5, +}; + +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, +}; + +enum { + SEG6_HMAC_ALGO_SHA1 = 1, + SEG6_HMAC_ALGO_SHA256 = 2, +}; + +enum { + SEG6_IPTUNNEL_UNSPEC = 0, + SEG6_IPTUNNEL_SRH = 1, + __SEG6_IPTUNNEL_MAX = 2, +}; + +enum { + SEG6_IPTUN_MODE_INLINE = 0, + SEG6_IPTUN_MODE_ENCAP = 1, + SEG6_IPTUN_MODE_L2ENCAP = 2, + SEG6_IPTUN_MODE_ENCAP_RED = 3, + SEG6_IPTUN_MODE_L2ENCAP_RED = 4, +}; + +enum { + SEG6_LOCAL_ACTION_UNSPEC = 0, + SEG6_LOCAL_ACTION_END = 1, + SEG6_LOCAL_ACTION_END_X = 2, + SEG6_LOCAL_ACTION_END_T = 3, + SEG6_LOCAL_ACTION_END_DX2 = 4, + SEG6_LOCAL_ACTION_END_DX6 = 5, + SEG6_LOCAL_ACTION_END_DX4 = 6, + SEG6_LOCAL_ACTION_END_DT6 = 7, + SEG6_LOCAL_ACTION_END_DT4 = 8, + SEG6_LOCAL_ACTION_END_B6 = 9, + SEG6_LOCAL_ACTION_END_B6_ENCAP = 10, + SEG6_LOCAL_ACTION_END_BM = 11, + SEG6_LOCAL_ACTION_END_S = 12, + SEG6_LOCAL_ACTION_END_AS = 13, + SEG6_LOCAL_ACTION_END_AM = 14, + SEG6_LOCAL_ACTION_END_BPF = 15, + SEG6_LOCAL_ACTION_END_DT46 = 16, + __SEG6_LOCAL_ACTION_MAX = 17, +}; + +enum { + SEG6_LOCAL_BPF_PROG_UNSPEC = 0, + SEG6_LOCAL_BPF_PROG = 1, + SEG6_LOCAL_BPF_PROG_NAME = 2, + __SEG6_LOCAL_BPF_PROG_MAX = 3, +}; + +enum { + SEG6_LOCAL_CNT_UNSPEC = 0, + SEG6_LOCAL_CNT_PAD = 1, + SEG6_LOCAL_CNT_PACKETS = 2, + SEG6_LOCAL_CNT_BYTES = 3, + SEG6_LOCAL_CNT_ERRORS = 4, + __SEG6_LOCAL_CNT_MAX = 5, +}; + +enum { + SEG6_LOCAL_FLV_OP_UNSPEC = 0, + SEG6_LOCAL_FLV_OP_PSP = 1, + SEG6_LOCAL_FLV_OP_USP = 2, + SEG6_LOCAL_FLV_OP_USD = 3, + SEG6_LOCAL_FLV_OP_NEXT_CSID = 4, + __SEG6_LOCAL_FLV_OP_MAX = 5, +}; + +enum { + SEG6_LOCAL_FLV_UNSPEC = 0, + SEG6_LOCAL_FLV_OPERATION = 1, + SEG6_LOCAL_FLV_LCBLOCK_BITS = 2, + SEG6_LOCAL_FLV_LCNODE_FN_BITS = 3, + __SEG6_LOCAL_FLV_MAX = 4, +}; + +enum { + SEG6_LOCAL_UNSPEC = 0, + SEG6_LOCAL_ACTION = 1, + SEG6_LOCAL_SRH = 2, + SEG6_LOCAL_TABLE = 3, + SEG6_LOCAL_NH4 = 4, + SEG6_LOCAL_NH6 = 5, + SEG6_LOCAL_IIF = 6, + SEG6_LOCAL_OIF = 7, + SEG6_LOCAL_BPF = 8, + SEG6_LOCAL_VRFTABLE = 9, + SEG6_LOCAL_COUNTERS = 10, + SEG6_LOCAL_FLAVORS = 11, + __SEG6_LOCAL_MAX = 12, +}; + +enum { + SELNL_MSG_SETENFORCE = 16, + SELNL_MSG_POLICYLOAD = 17, + SELNL_MSG_MAX = 18, +}; + +enum { + SEV_RET_NO_FW_CALL = -1, + SEV_RET_SUCCESS = 0, + SEV_RET_INVALID_PLATFORM_STATE = 1, + SEV_RET_INVALID_GUEST_STATE = 2, + SEV_RET_INAVLID_CONFIG = 3, + SEV_RET_INVALID_CONFIG = 3, + SEV_RET_INVALID_LEN = 4, + SEV_RET_ALREADY_OWNED = 5, + SEV_RET_INVALID_CERTIFICATE = 6, + SEV_RET_POLICY_FAILURE = 7, + SEV_RET_INACTIVE = 8, + SEV_RET_INVALID_ADDRESS = 9, + SEV_RET_BAD_SIGNATURE = 10, + SEV_RET_BAD_MEASUREMENT = 11, + SEV_RET_ASID_OWNED = 12, + SEV_RET_INVALID_ASID = 13, + SEV_RET_WBINVD_REQUIRED = 14, + SEV_RET_DFFLUSH_REQUIRED = 15, + SEV_RET_INVALID_GUEST = 16, + SEV_RET_INVALID_COMMAND = 17, + SEV_RET_ACTIVE = 18, + SEV_RET_HWSEV_RET_PLATFORM = 19, + SEV_RET_HWSEV_RET_UNSAFE = 20, + SEV_RET_UNSUPPORTED = 21, + SEV_RET_INVALID_PARAM = 22, + SEV_RET_RESOURCE_LIMIT = 23, + SEV_RET_SECURE_DATA_INVALID = 24, + SEV_RET_INVALID_PAGE_SIZE = 25, + SEV_RET_INVALID_PAGE_STATE = 26, + SEV_RET_INVALID_MDATA_ENTRY = 27, + SEV_RET_INVALID_PAGE_OWNER = 28, + SEV_RET_AEAD_OFLOW = 29, + SEV_RET_EXIT_RING_BUFFER = 31, + SEV_RET_RMP_INIT_REQUIRED = 32, + SEV_RET_BAD_SVN = 33, + SEV_RET_BAD_VERSION = 34, + SEV_RET_SHUTDOWN_REQUIRED = 35, + SEV_RET_UPDATE_FAILED = 36, + SEV_RET_RESTORE_REQUIRED = 37, + SEV_RET_RMP_INITIALIZATION_FAILED = 38, + SEV_RET_INVALID_KEY = 39, + SEV_RET_MAX = 40, +}; + +enum { + SFF8024_ID_UNK = 0, + SFF8024_ID_SFF_8472 = 2, + SFF8024_ID_SFP = 3, + SFF8024_ID_DWDM_SFP = 11, + SFF8024_ID_QSFP_8438 = 12, + SFF8024_ID_QSFP_8436_8636 = 13, + SFF8024_ID_QSFP28_8636 = 17, + SFF8024_ID_QSFP_DD = 24, + SFF8024_ID_OSFP = 25, + SFF8024_ID_DSFP = 27, + SFF8024_ID_QSFP_PLUS_CMIS = 30, + SFF8024_ID_SFP_DD_CMIS = 31, + SFF8024_ID_SFP_PLUS_CMIS = 32, + SFF8024_ENCODING_UNSPEC = 0, + SFF8024_ENCODING_8B10B = 1, + SFF8024_ENCODING_4B5B = 2, + SFF8024_ENCODING_NRZ = 3, + SFF8024_ENCODING_8472_MANCHESTER = 4, + SFF8024_ENCODING_8472_SONET = 5, + SFF8024_ENCODING_8472_64B66B = 6, + SFF8024_ENCODING_8436_MANCHESTER = 6, + SFF8024_ENCODING_8436_SONET = 4, + SFF8024_ENCODING_8436_64B66B = 5, + SFF8024_ENCODING_256B257B = 7, + SFF8024_ENCODING_PAM4 = 8, + SFF8024_CONNECTOR_UNSPEC = 0, + SFF8024_CONNECTOR_SC = 1, + SFF8024_CONNECTOR_FIBERJACK = 6, + SFF8024_CONNECTOR_LC = 7, + SFF8024_CONNECTOR_MT_RJ = 8, + SFF8024_CONNECTOR_MU = 9, + SFF8024_CONNECTOR_SG = 10, + SFF8024_CONNECTOR_OPTICAL_PIGTAIL = 11, + SFF8024_CONNECTOR_MPO_1X12 = 12, + SFF8024_CONNECTOR_MPO_2X16 = 13, + SFF8024_CONNECTOR_HSSDC_II = 32, + SFF8024_CONNECTOR_COPPER_PIGTAIL = 33, + SFF8024_CONNECTOR_RJ45 = 34, + SFF8024_CONNECTOR_NOSEPARATE = 35, + SFF8024_CONNECTOR_MXC_2X16 = 36, + SFF8024_ECC_UNSPEC = 0, + SFF8024_ECC_100G_25GAUI_C2M_AOC = 1, + SFF8024_ECC_100GBASE_SR4_25GBASE_SR = 2, + SFF8024_ECC_100GBASE_LR4_25GBASE_LR = 3, + SFF8024_ECC_100GBASE_ER4_25GBASE_ER = 4, + SFF8024_ECC_100GBASE_SR10 = 5, + SFF8024_ECC_100GBASE_CR4 = 11, + SFF8024_ECC_25GBASE_CR_S = 12, + SFF8024_ECC_25GBASE_CR_N = 13, + SFF8024_ECC_10GBASE_T_SFI = 22, + SFF8024_ECC_10GBASE_T_SR = 28, + SFF8024_ECC_5GBASE_T = 29, + SFF8024_ECC_2_5GBASE_T = 30, +}; + +enum { + SFP_PHYS_ID = 0, + SFP_PHYS_EXT_ID = 1, + SFP_PHYS_EXT_ID_SFP = 4, + SFP_CONNECTOR = 2, + SFP_COMPLIANCE = 3, + SFP_ENCODING = 11, + SFP_BR_NOMINAL = 12, + SFP_RATE_ID = 13, + SFF_RID_8079 = 1, + SFF_RID_8431_RX_ONLY = 2, + SFF_RID_8431_TX_ONLY = 4, + SFF_RID_8431 = 6, + SFF_RID_10G8G = 14, + SFP_LINK_LEN_SM_KM = 14, + SFP_LINK_LEN_SM_100M = 15, + SFP_LINK_LEN_50UM_OM2_10M = 16, + SFP_LINK_LEN_62_5UM_OM1_10M = 17, + SFP_LINK_LEN_COPPER_1M = 18, + SFP_LINK_LEN_50UM_OM4_10M = 18, + SFP_LINK_LEN_50UM_OM3_10M = 19, + SFP_VENDOR_NAME = 20, + SFP_VENDOR_OUI = 37, + SFP_VENDOR_PN = 40, + SFP_VENDOR_REV = 56, + SFP_OPTICAL_WAVELENGTH_MSB = 60, + SFP_OPTICAL_WAVELENGTH_LSB = 61, + SFP_CABLE_SPEC = 60, + SFP_CC_BASE = 63, + SFP_OPTIONS = 64, + SFP_OPTIONS_HIGH_POWER_LEVEL = 8192, + SFP_OPTIONS_PAGING_A2 = 4096, + SFP_OPTIONS_RETIMER = 2048, + SFP_OPTIONS_COOLED_XCVR = 1024, + SFP_OPTIONS_POWER_DECL = 512, + SFP_OPTIONS_RX_LINEAR_OUT = 256, + SFP_OPTIONS_RX_DECISION_THRESH = 128, + SFP_OPTIONS_TUNABLE_TX = 64, + SFP_OPTIONS_RATE_SELECT = 32, + SFP_OPTIONS_TX_DISABLE = 16, + SFP_OPTIONS_TX_FAULT = 8, + SFP_OPTIONS_LOS_INVERTED = 4, + SFP_OPTIONS_LOS_NORMAL = 2, + SFP_BR_MAX = 66, + SFP_BR_MIN = 67, + SFP_VENDOR_SN = 68, + SFP_DATECODE = 84, + SFP_DIAGMON = 92, + SFP_DIAGMON_DDM = 64, + SFP_DIAGMON_INT_CAL = 32, + SFP_DIAGMON_EXT_CAL = 16, + SFP_DIAGMON_RXPWR_AVG = 8, + SFP_DIAGMON_ADDRMODE = 4, + SFP_ENHOPTS = 93, + SFP_ENHOPTS_ALARMWARN = 128, + SFP_ENHOPTS_SOFT_TX_DISABLE = 64, + SFP_ENHOPTS_SOFT_TX_FAULT = 32, + SFP_ENHOPTS_SOFT_RX_LOS = 16, + SFP_ENHOPTS_SOFT_RATE_SELECT = 8, + SFP_ENHOPTS_APP_SELECT_SFF8079 = 4, + SFP_ENHOPTS_SOFT_RATE_SFF8431 = 2, + SFP_SFF8472_COMPLIANCE = 94, + SFP_SFF8472_COMPLIANCE_NONE = 0, + SFP_SFF8472_COMPLIANCE_REV9_3 = 1, + SFP_SFF8472_COMPLIANCE_REV9_5 = 2, + SFP_SFF8472_COMPLIANCE_REV10_2 = 3, + SFP_SFF8472_COMPLIANCE_REV10_4 = 4, + SFP_SFF8472_COMPLIANCE_REV11_0 = 5, + SFP_SFF8472_COMPLIANCE_REV11_3 = 6, + SFP_SFF8472_COMPLIANCE_REV11_4 = 7, + SFP_SFF8472_COMPLIANCE_REV12_0 = 8, + SFP_CC_EXT = 95, +}; + +enum { + SKBFL_ZEROCOPY_ENABLE = 1, + SKBFL_SHARED_FRAG = 2, + SKBFL_PURE_ZEROCOPY = 4, + SKBFL_DONT_ORPHAN = 8, + SKBFL_MANAGED_FRAG_REFS = 16, +}; + +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 { + SKB_FCLONE_UNAVAILABLE = 0, + SKB_FCLONE_ORIG = 1, + SKB_FCLONE_CLONE = 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 { + SKCIPHER_WALK_SLOW = 1, + SKCIPHER_WALK_COPY = 2, + SKCIPHER_WALK_DIFF = 4, + SKCIPHER_WALK_SLEEP = 8, +}; + +enum { + SKX_PCI_UNCORE_IMC = 0, + SKX_PCI_UNCORE_M2M = 1, + SKX_PCI_UNCORE_UPI = 2, + SKX_PCI_UNCORE_M2PCIE = 3, + SKX_PCI_UNCORE_M3UPI = 4, +}; + +enum { + SK_DIAG_BPF_STORAGE_NONE = 0, + SK_DIAG_BPF_STORAGE_PAD = 1, + SK_DIAG_BPF_STORAGE_MAP_ID = 2, + SK_DIAG_BPF_STORAGE_MAP_VALUE = 3, + __SK_DIAG_BPF_STORAGE_MAX = 4, +}; + +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_REQ_NONE = 0, + SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, + __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, +}; + +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 { + SNBEP_PCI_QPI_PORT0_FILTER = 0, + SNBEP_PCI_QPI_PORT1_FILTER = 1, + BDX_PCI_QPI_PORT2_FILTER = 2, +}; + +enum { + SNBEP_PCI_UNCORE_HA = 0, + SNBEP_PCI_UNCORE_IMC = 1, + SNBEP_PCI_UNCORE_QPI = 2, + SNBEP_PCI_UNCORE_R2PCIE = 3, + SNBEP_PCI_UNCORE_R3QPI = 4, +}; + +enum { + SNB_PCI_UNCORE_IMC = 0, +}; + +enum { + SNR_PCI_UNCORE_M2M = 0, + SNR_PCI_UNCORE_PCIE3 = 1, +}; + +enum { + SNR_QAT_PMON_ID = 0, + SNR_CBDMA_DMI_PMON_ID = 1, + SNR_NIS_PMON_ID = 2, + SNR_DLB_PMON_ID = 3, + SNR_PCIE_GEN3_PMON_ID = 4, +}; + +enum { + SOCK_WAKE_IO = 0, + SOCK_WAKE_WAITD = 1, + SOCK_WAKE_SPACE = 2, + SOCK_WAKE_URG = 3, +}; + +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_OPT_RX_FILTER = 131072, + SOF_TIMESTAMPING_LAST = 131072, + SOF_TIMESTAMPING_MASK = 262143, +}; + +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 { + SUN_WHOLE_DISK = 5, + LINUX_RAID_PARTITION___2 = 253, +}; + +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, +}; + +enum { + SWMII_SPEED_10 = 0, + SWMII_SPEED_100 = 1, + SWMII_SPEED_1000 = 2, + SWMII_DUPLEX_HALF = 0, + SWMII_DUPLEX_FULL = 1, +}; + +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, +}; + +enum { + SX150X_123 = 0, + SX150X_456 = 1, + SX150X_789 = 2, +}; + +enum { + SX150X_789_REG_MISC_AUTOCLEAR_OFF = 1, + SX150X_MAX_REGISTER = 173, + SX150X_IRQ_TYPE_EDGE_RISING = 1, + SX150X_IRQ_TYPE_EDGE_FALLING = 2, + SX150X_789_RESET_KEY1 = 18, + SX150X_789_RESET_KEY2 = 52, +}; + +enum { + SYNTH_ERR_BAD_NAME = 0, + SYNTH_ERR_INVALID_CMD = 1, + SYNTH_ERR_INVALID_DYN_CMD = 2, + SYNTH_ERR_EVENT_EXISTS = 3, + SYNTH_ERR_TOO_MANY_FIELDS = 4, + SYNTH_ERR_INCOMPLETE_TYPE = 5, + SYNTH_ERR_INVALID_TYPE = 6, + SYNTH_ERR_INVALID_FIELD = 7, + SYNTH_ERR_INVALID_ARRAY_SPEC = 8, +}; + +enum { + TASKLET_STATE_SCHED = 0, + TASKLET_STATE_RUN = 1, +}; + +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 { + 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 { + TASK_COMM_LEN = 16, +}; + +enum { + TB_SHUTDOWN_REBOOT = 0, + TB_SHUTDOWN_S5 = 1, + TB_SHUTDOWN_S4 = 2, + TB_SHUTDOWN_S3 = 3, + TB_SHUTDOWN_HALT = 4, + TB_SHUTDOWN_WFS = 5, +}; + +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 { + TCA_EMATCH_TREE_UNSPEC = 0, + TCA_EMATCH_TREE_HDR = 1, + TCA_EMATCH_TREE_LIST = 2, + __TCA_EMATCH_TREE_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, + TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM = 4, + TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT = 8, + TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM = 16, + TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT = 32, + __TCA_FLOWER_KEY_FLAGS_MAX = 33, +}; + +enum { + TCA_ROOT_UNSPEC = 0, + TCA_ROOT_TAB = 1, + TCA_ROOT_FLAGS = 2, + TCA_ROOT_COUNT = 3, + TCA_ROOT_TIME_DELTA = 4, + TCA_ROOT_EXT_WARN_MSG = 5, + __TCA_ROOT_MAX = 6, +}; + +enum { + TCA_STAB_UNSPEC = 0, + TCA_STAB_BASE = 1, + TCA_STAB_DATA = 2, + __TCA_STAB_MAX = 3, +}; + +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, +}; + +enum { + TCA_UNSPEC = 0, + TCA_KIND = 1, + TCA_OPTIONS = 2, + TCA_STATS = 3, + TCA_XSTATS = 4, + TCA_RATE = 5, + TCA_FCNT = 6, + TCA_STATS2 = 7, + TCA_STAB = 8, + TCA_PAD = 9, + TCA_DUMP_INVISIBLE = 10, + TCA_CHAIN = 11, + TCA_HW_OFFLOAD = 12, + TCA_INGRESS_BLOCK = 13, + TCA_EGRESS_BLOCK = 14, + TCA_DUMP_FLAGS = 15, + TCA_EXT_WARN_MSG = 16, + __TCA_MAX = 17, +}; + +enum { + TCG_SECP_00 = 0, + TCG_SECP_01 = 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, + TCPF_BOUND_INACTIVE = 8192, +}; + +enum { + TCP_BPF_BASE = 0, + TCP_BPF_TX = 1, + TCP_BPF_RX = 2, + TCP_BPF_TXRX = 3, + TCP_BPF_NUM_CFGS = 4, +}; + +enum { + TCP_BPF_IPV4 = 0, + TCP_BPF_IPV6 = 1, + TCP_BPF_NUM_PROTS = 2, +}; + +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, + TCP_BPF_SOCK_OPS_CB_FLAGS = 1008, +}; + +enum { + TCP_CMSG_INQ = 1, + TCP_CMSG_TS = 2, +}; + +enum { + TCP_ESTABLISHED = 1, + TCP_SYN_SENT = 2, + TCP_SYN_RECV = 3, + TCP_FIN_WAIT1 = 4, + TCP_FIN_WAIT2 = 5, + TCP_TIME_WAIT = 6, + TCP_CLOSE = 7, + TCP_CLOSE_WAIT = 8, + TCP_LAST_ACK = 9, + TCP_LISTEN = 10, + TCP_CLOSING = 11, + TCP_NEW_SYN_RECV = 12, + TCP_BOUND_INACTIVE = 13, + TCP_MAX_STATES = 14, +}; + +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_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, +}; + +enum { + TCP_MIB_NUM = 0, + TCP_MIB_RTOALGORITHM = 1, + TCP_MIB_RTOMIN = 2, + TCP_MIB_RTOMAX = 3, + TCP_MIB_MAXCONN = 4, + TCP_MIB_ACTIVEOPENS = 5, + TCP_MIB_PASSIVEOPENS = 6, + TCP_MIB_ATTEMPTFAILS = 7, + TCP_MIB_ESTABRESETS = 8, + TCP_MIB_CURRESTAB = 9, + TCP_MIB_INSEGS = 10, + TCP_MIB_OUTSEGS = 11, + TCP_MIB_RETRANSSEGS = 12, + TCP_MIB_INERRS = 13, + TCP_MIB_OUTRSTS = 14, + TCP_MIB_CSUMERRORS = 15, + __TCP_MIB_MAX = 16, +}; + +enum { + TCP_NLA_PAD = 0, + TCP_NLA_BUSY = 1, + TCP_NLA_RWND_LIMITED = 2, + TCP_NLA_SNDBUF_LIMITED = 3, + TCP_NLA_DATA_SEGS_OUT = 4, + TCP_NLA_TOTAL_RETRANS = 5, + TCP_NLA_PACING_RATE = 6, + TCP_NLA_DELIVERY_RATE = 7, + TCP_NLA_SND_CWND = 8, + TCP_NLA_REORDERING = 9, + TCP_NLA_MIN_RTT = 10, + TCP_NLA_RECUR_RETRANS = 11, + TCP_NLA_DELIVERY_RATE_APP_LMT = 12, + TCP_NLA_SNDQ_SIZE = 13, + TCP_NLA_CA_STATE = 14, + TCP_NLA_SND_SSTHRESH = 15, + TCP_NLA_DELIVERED = 16, + TCP_NLA_DELIVERED_CE = 17, + TCP_NLA_BYTES_SENT = 18, + TCP_NLA_BYTES_RETRANS = 19, + TCP_NLA_DSACK_DUPS = 20, + TCP_NLA_REORD_SEEN = 21, + TCP_NLA_SRTT = 22, + TCP_NLA_TIMEOUT_REHASH = 23, + TCP_NLA_BYTES_NOTSENT = 24, + TCP_NLA_EDT = 25, + TCP_NLA_TTL = 26, + TCP_NLA_REHASH = 27, +}; + +enum { + TCP_NO_QUEUE = 0, + TCP_RECV_QUEUE = 1, + TCP_SEND_QUEUE = 2, + TCP_QUEUES_NR = 3, +}; + +enum { + TEST_NONE = 0, + TEST_CORE = 1, + TEST_CPUS = 2, + TEST_PLATFORM = 3, + TEST_DEVICES = 4, + TEST_FREEZER = 5, + __TEST_AFTER_LAST = 6, +}; + +enum { + TLS_ALERT_DESC_CLOSE_NOTIFY = 0, + TLS_ALERT_DESC_UNEXPECTED_MESSAGE = 10, + TLS_ALERT_DESC_BAD_RECORD_MAC = 20, + TLS_ALERT_DESC_RECORD_OVERFLOW = 22, + TLS_ALERT_DESC_HANDSHAKE_FAILURE = 40, + TLS_ALERT_DESC_BAD_CERTIFICATE = 42, + TLS_ALERT_DESC_UNSUPPORTED_CERTIFICATE = 43, + TLS_ALERT_DESC_CERTIFICATE_REVOKED = 44, + TLS_ALERT_DESC_CERTIFICATE_EXPIRED = 45, + TLS_ALERT_DESC_CERTIFICATE_UNKNOWN = 46, + TLS_ALERT_DESC_ILLEGAL_PARAMETER = 47, + TLS_ALERT_DESC_UNKNOWN_CA = 48, + TLS_ALERT_DESC_ACCESS_DENIED = 49, + TLS_ALERT_DESC_DECODE_ERROR = 50, + TLS_ALERT_DESC_DECRYPT_ERROR = 51, + TLS_ALERT_DESC_TOO_MANY_CIDS_REQUESTED = 52, + TLS_ALERT_DESC_PROTOCOL_VERSION = 70, + TLS_ALERT_DESC_INSUFFICIENT_SECURITY = 71, + TLS_ALERT_DESC_INTERNAL_ERROR = 80, + TLS_ALERT_DESC_INAPPROPRIATE_FALLBACK = 86, + TLS_ALERT_DESC_USER_CANCELED = 90, + TLS_ALERT_DESC_MISSING_EXTENSION = 109, + TLS_ALERT_DESC_UNSUPPORTED_EXTENSION = 110, + TLS_ALERT_DESC_UNRECOGNIZED_NAME = 112, + TLS_ALERT_DESC_BAD_CERTIFICATE_STATUS_RESPONSE = 113, + TLS_ALERT_DESC_UNKNOWN_PSK_IDENTITY = 115, + TLS_ALERT_DESC_CERTIFICATE_REQUIRED = 116, + TLS_ALERT_DESC_NO_APPLICATION_PROTOCOL = 120, +}; + +enum { + TLS_ALERT_LEVEL_WARNING = 1, + TLS_ALERT_LEVEL_FATAL = 2, +}; + +enum { + TLS_NO_KEYRING = 0, + TLS_NO_PEERID = 0, + TLS_NO_CERT = 0, + TLS_NO_PRIVKEY = 0, +}; + +enum { + TLS_RECORD_TYPE_CHANGE_CIPHER_SPEC = 20, + TLS_RECORD_TYPE_ALERT = 21, + TLS_RECORD_TYPE_HANDSHAKE = 22, + TLS_RECORD_TYPE_DATA = 23, + TLS_RECORD_TYPE_HEARTBEAT = 24, + TLS_RECORD_TYPE_TLS12_CID = 25, + TLS_RECORD_TYPE_ACK = 26, +}; + +enum { + TOO_MANY_CLOSE = -1, + TOO_MANY_OPEN = -2, + MISSING_QUOTE = -3, +}; + +enum { + TPS65090_IRQ_INTERRUPT = 0, + TPS65090_IRQ_VAC_STATUS_CHANGE = 1, + TPS65090_IRQ_VSYS_STATUS_CHANGE = 2, + TPS65090_IRQ_BAT_STATUS_CHANGE = 3, + TPS65090_IRQ_CHARGING_STATUS_CHANGE = 4, + TPS65090_IRQ_CHARGING_COMPLETE = 5, + TPS65090_IRQ_OVERLOAD_DCDC1 = 6, + TPS65090_IRQ_OVERLOAD_DCDC2 = 7, + TPS65090_IRQ_OVERLOAD_DCDC3 = 8, + TPS65090_IRQ_OVERLOAD_FET1 = 9, + TPS65090_IRQ_OVERLOAD_FET2 = 10, + TPS65090_IRQ_OVERLOAD_FET3 = 11, + TPS65090_IRQ_OVERLOAD_FET4 = 12, + TPS65090_IRQ_OVERLOAD_FET5 = 13, + TPS65090_IRQ_OVERLOAD_FET6 = 14, + TPS65090_IRQ_OVERLOAD_FET7 = 15, +}; + +enum { + TPS65090_REGULATOR_DCDC1 = 0, + TPS65090_REGULATOR_DCDC2 = 1, + TPS65090_REGULATOR_DCDC3 = 2, + TPS65090_REGULATOR_FET1 = 3, + TPS65090_REGULATOR_FET2 = 4, + TPS65090_REGULATOR_FET3 = 5, + TPS65090_REGULATOR_FET4 = 6, + TPS65090_REGULATOR_FET5 = 7, + TPS65090_REGULATOR_FET6 = 8, + TPS65090_REGULATOR_FET7 = 9, + TPS65090_REGULATOR_LDO1 = 10, + TPS65090_REGULATOR_LDO2 = 11, + TPS65090_REGULATOR_MAX = 12, +}; + +enum { + TPS6586X_ID_SYS = 0, + TPS6586X_ID_SM_0 = 1, + TPS6586X_ID_SM_1 = 2, + TPS6586X_ID_SM_2 = 3, + TPS6586X_ID_LDO_0 = 4, + TPS6586X_ID_LDO_1 = 5, + TPS6586X_ID_LDO_2 = 6, + TPS6586X_ID_LDO_3 = 7, + TPS6586X_ID_LDO_4 = 8, + TPS6586X_ID_LDO_5 = 9, + TPS6586X_ID_LDO_6 = 10, + TPS6586X_ID_LDO_7 = 11, + TPS6586X_ID_LDO_8 = 12, + TPS6586X_ID_LDO_9 = 13, + TPS6586X_ID_LDO_RTC = 14, + TPS6586X_ID_MAX_REGULATOR = 15, +}; + +enum { + TPS6586X_INT_PLDO_0 = 0, + TPS6586X_INT_PLDO_1 = 1, + TPS6586X_INT_PLDO_2 = 2, + TPS6586X_INT_PLDO_3 = 3, + TPS6586X_INT_PLDO_4 = 4, + TPS6586X_INT_PLDO_5 = 5, + TPS6586X_INT_PLDO_6 = 6, + TPS6586X_INT_PLDO_7 = 7, + TPS6586X_INT_COMP_DET = 8, + TPS6586X_INT_ADC = 9, + TPS6586X_INT_PLDO_8 = 10, + TPS6586X_INT_PLDO_9 = 11, + TPS6586X_INT_PSM_0 = 12, + TPS6586X_INT_PSM_1 = 13, + TPS6586X_INT_PSM_2 = 14, + TPS6586X_INT_PSM_3 = 15, + TPS6586X_INT_RTC_ALM1 = 16, + TPS6586X_INT_ACUSB_OVP = 17, + TPS6586X_INT_USB_DET = 18, + TPS6586X_INT_AC_DET = 19, + TPS6586X_INT_BAT_DET = 20, + TPS6586X_INT_CHG_STAT = 21, + TPS6586X_INT_CHG_TEMP = 22, + TPS6586X_INT_PP = 23, + TPS6586X_INT_RESUME = 24, + TPS6586X_INT_LOW_SYS = 25, + TPS6586X_INT_RTC_ALM2 = 26, +}; + +enum { + TP_ERR_FILE_NOT_FOUND = 0, + TP_ERR_NO_REGULAR_FILE = 1, + TP_ERR_BAD_REFCNT = 2, + TP_ERR_REFCNT_OPEN_BRACE = 3, + TP_ERR_BAD_REFCNT_SUFFIX = 4, + TP_ERR_BAD_UPROBE_OFFS = 5, + TP_ERR_BAD_MAXACT_TYPE = 6, + TP_ERR_BAD_MAXACT = 7, + TP_ERR_MAXACT_TOO_BIG = 8, + TP_ERR_BAD_PROBE_ADDR = 9, + TP_ERR_NON_UNIQ_SYMBOL = 10, + TP_ERR_BAD_RETPROBE = 11, + TP_ERR_NO_TRACEPOINT = 12, + TP_ERR_BAD_TP_NAME = 13, + TP_ERR_BAD_ADDR_SUFFIX = 14, + TP_ERR_NO_GROUP_NAME = 15, + TP_ERR_GROUP_TOO_LONG = 16, + TP_ERR_BAD_GROUP_NAME = 17, + TP_ERR_NO_EVENT_NAME = 18, + TP_ERR_EVENT_TOO_LONG = 19, + TP_ERR_BAD_EVENT_NAME = 20, + TP_ERR_EVENT_EXIST = 21, + TP_ERR_RETVAL_ON_PROBE = 22, + TP_ERR_NO_RETVAL = 23, + TP_ERR_BAD_STACK_NUM = 24, + TP_ERR_BAD_ARG_NUM = 25, + TP_ERR_BAD_VAR = 26, + TP_ERR_BAD_REG_NAME = 27, + TP_ERR_BAD_MEM_ADDR = 28, + TP_ERR_BAD_IMM = 29, + TP_ERR_IMMSTR_NO_CLOSE = 30, + TP_ERR_FILE_ON_KPROBE = 31, + TP_ERR_BAD_FILE_OFFS = 32, + TP_ERR_SYM_ON_UPROBE = 33, + TP_ERR_TOO_MANY_OPS = 34, + TP_ERR_DEREF_NEED_BRACE = 35, + TP_ERR_BAD_DEREF_OFFS = 36, + TP_ERR_DEREF_OPEN_BRACE = 37, + TP_ERR_COMM_CANT_DEREF = 38, + TP_ERR_BAD_FETCH_ARG = 39, + TP_ERR_ARRAY_NO_CLOSE = 40, + TP_ERR_BAD_ARRAY_SUFFIX = 41, + TP_ERR_BAD_ARRAY_NUM = 42, + TP_ERR_ARRAY_TOO_BIG = 43, + TP_ERR_BAD_TYPE = 44, + TP_ERR_BAD_STRING = 45, + TP_ERR_BAD_SYMSTRING = 46, + TP_ERR_BAD_BITFIELD = 47, + TP_ERR_ARG_NAME_TOO_LONG = 48, + TP_ERR_NO_ARG_NAME = 49, + TP_ERR_BAD_ARG_NAME = 50, + TP_ERR_USED_ARG_NAME = 51, + TP_ERR_ARG_TOO_LONG = 52, + TP_ERR_NO_ARG_BODY = 53, + TP_ERR_BAD_INSN_BNDRY = 54, + TP_ERR_FAIL_REG_PROBE = 55, + TP_ERR_DIFF_PROBE_TYPE = 56, + TP_ERR_DIFF_ARG_TYPE = 57, + TP_ERR_SAME_PROBE = 58, + TP_ERR_NO_EVENT_INFO = 59, + TP_ERR_BAD_ATTACH_EVENT = 60, + TP_ERR_BAD_ATTACH_ARG = 61, + TP_ERR_NO_EP_FILTER = 62, + TP_ERR_NOSUP_BTFARG = 63, + TP_ERR_NO_BTFARG = 64, + TP_ERR_NO_BTF_ENTRY = 65, + TP_ERR_BAD_VAR_ARGS = 66, + TP_ERR_NOFENTRY_ARGS = 67, + TP_ERR_DOUBLE_ARGS = 68, + TP_ERR_ARGS_2LONG = 69, + TP_ERR_ARGIDX_2BIG = 70, + TP_ERR_NO_PTR_STRCT = 71, + TP_ERR_NOSUP_DAT_ARG = 72, + TP_ERR_BAD_HYPHEN = 73, + TP_ERR_NO_BTF_FIELD = 74, + TP_ERR_BAD_BTF_TID = 75, + TP_ERR_BAD_TYPE4STR = 76, + TP_ERR_NEED_STRING_TYPE = 77, + TP_ERR_TOO_MANY_ARGS = 78, + TP_ERR_TOO_MANY_EARGS = 79, +}; + +enum { + TRACEFS_EVENT_INODE = 2, + TRACEFS_GID_PERM_SET = 4, + TRACEFS_UID_PERM_SET = 8, + TRACEFS_INSTANCE_INODE = 16, +}; + +enum { + TRACE_ARRAY_FL_GLOBAL = 1, + TRACE_ARRAY_FL_BOOT = 2, + TRACE_ARRAY_FL_LAST_BOOT = 4, + TRACE_ARRAY_FL_MOD_INIT = 8, +}; + +enum { + TRACE_CTX_NMI = 0, + TRACE_CTX_IRQ = 1, + TRACE_CTX_SOFTIRQ = 2, + TRACE_CTX_NORMAL = 3, + TRACE_CTX_TRANSITION = 4, +}; + +enum { + TRACE_EVENT_FL_CAP_ANY = 1, + TRACE_EVENT_FL_NO_SET_FILTER = 2, + TRACE_EVENT_FL_IGNORE_ENABLE = 4, + TRACE_EVENT_FL_TRACEPOINT = 8, + TRACE_EVENT_FL_DYNAMIC = 16, + TRACE_EVENT_FL_KPROBE = 32, + TRACE_EVENT_FL_UPROBE = 64, + TRACE_EVENT_FL_EPROBE = 128, + TRACE_EVENT_FL_FPROBE = 256, + TRACE_EVENT_FL_CUSTOM = 512, + TRACE_EVENT_FL_TEST_STR = 1024, +}; + +enum { + TRACE_EVENT_FL_CAP_ANY_BIT = 0, + TRACE_EVENT_FL_NO_SET_FILTER_BIT = 1, + TRACE_EVENT_FL_IGNORE_ENABLE_BIT = 2, + TRACE_EVENT_FL_TRACEPOINT_BIT = 3, + TRACE_EVENT_FL_DYNAMIC_BIT = 4, + TRACE_EVENT_FL_KPROBE_BIT = 5, + TRACE_EVENT_FL_UPROBE_BIT = 6, + TRACE_EVENT_FL_EPROBE_BIT = 7, + TRACE_EVENT_FL_FPROBE_BIT = 8, + TRACE_EVENT_FL_CUSTOM_BIT = 9, + TRACE_EVENT_FL_TEST_STR_BIT = 10, +}; + +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_RECORD_RECURSION_BIT = 12, +}; + +enum { + TRACE_FUNC_NO_OPTS = 0, + TRACE_FUNC_OPT_STACK = 1, + TRACE_FUNC_OPT_NO_REPEATS = 2, + TRACE_FUNC_OPT_HIGHEST_BIT = 4, +}; + +enum { + TRACE_GRAPH_FL = 1, + TRACE_GRAPH_DEPTH_START_BIT = 2, + TRACE_GRAPH_DEPTH_END_BIT = 3, + TRACE_GRAPH_NOTRACE_BIT = 4, +}; + +enum { + TRACE_NOP_OPT_ACCEPT = 1, + TRACE_NOP_OPT_REFUSE = 2, +}; + +enum { + TRACE_PIDS = 1, + TRACE_NO_PIDS = 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 { + TVPADDRW = 0, + TVPPDATA = 4, + TVPPMASK = 8, + TVPPADRR = 12, + TVPCADRW = 16, + TVPCDATA = 20, + TVPCADRR = 28, + TVPDCCTL = 36, + TVPIDATA = 40, + TVPCRDAT = 44, + TVPCXPOL = 48, + TVPCXPOH = 52, + TVPCYPOL = 56, + TVPCYPOH = 60, +}; + +enum { + TVPIRREV = 1, + TVPIRICC = 6, + TVPIRBRC = 7, + TVPIRLAC = 15, + TVPIRTCC = 24, + TVPIRMXC = 25, + TVPIRCLS = 26, + TVPIRPPG = 28, + TVPIRGEC = 29, + TVPIRMIC = 30, + TVPIRPLA = 44, + TVPIRPPD = 45, + TVPIRMPD = 46, + TVPIRLPD = 47, + TVPIRCKL = 48, + TVPIRCKH = 49, + TVPIRCRL = 50, + TVPIRCRH = 51, + TVPIRCGL = 52, + TVPIRCGH = 53, + TVPIRCBL = 54, + TVPIRCBH = 55, + TVPIRCKC = 56, + TVPIRMLC = 57, + TVPIRSEN = 58, + TVPIRTMD = 59, + TVPIRRML = 60, + TVPIRRMM = 61, + TVPIRRMS = 62, + TVPIRDID = 63, + TVPIRRES = 255, +}; + +enum { + TYPE_MAX8998 = 0, + TYPE_LP3974 = 1, + TYPE_LP3979 = 2, +}; + +enum { + UDP_BPF_IPV4 = 0, + UDP_BPF_IPV6 = 1, + UDP_BPF_NUM_PROTS = 2, +}; + +enum { + UDP_FLAGS_CORK = 0, + UDP_FLAGS_NO_CHECK6_TX = 1, + UDP_FLAGS_NO_CHECK6_RX = 2, + UDP_FLAGS_GRO_ENABLED = 3, + UDP_FLAGS_ACCEPT_FRAGLIST = 4, + UDP_FLAGS_ACCEPT_L4 = 5, + UDP_FLAGS_ENCAP_ENABLED = 6, + UDP_FLAGS_UDPLITE_SEND_CC = 7, + UDP_FLAGS_UDPLITE_RECV_CC = 8, +}; + +enum { + UDP_MIB_NUM = 0, + UDP_MIB_INDATAGRAMS = 1, + UDP_MIB_NOPORTS = 2, + UDP_MIB_INERRORS = 3, + UDP_MIB_OUTDATAGRAMS = 4, + UDP_MIB_RCVBUFERRORS = 5, + UDP_MIB_SNDBUFERRORS = 6, + UDP_MIB_CSUMERRORS = 7, + UDP_MIB_IGNOREDMULTI = 8, + UDP_MIB_MEMERRORS = 9, + __UDP_MIB_MAX = 10, +}; + +enum { + 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 { + UNDEFINED_CAPABLE = 0, + SYSTEM_INTEL_MSR_CAPABLE = 1, + SYSTEM_AMD_MSR_CAPABLE = 2, + SYSTEM_IO_CAPABLE = 3, +}; + +enum { + UV_AFFINITY_ALL = 0, + UV_AFFINITY_NODE = 1, + UV_AFFINITY_CPU = 2, +}; + +enum { + VP_MSIX_CONFIG_VECTOR = 0, + VP_MSIX_VQ_VECTOR = 1, +}; + +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 { + WALK_TRAILING = 1, + WALK_MORE = 2, + WALK_NOFOLLOW = 4, +}; + +enum { + WBT_RWQ_BG = 0, + WBT_RWQ_SWAP = 1, + WBT_RWQ_DISCARD = 2, + WBT_NUM_RWQ = 3, +}; + +enum { + WBT_STATE_ON_DEFAULT = 1, + WBT_STATE_ON_MANUAL = 2, + WBT_STATE_OFF_DEFAULT = 3, + WBT_STATE_OFF_MANUAL = 4, +}; + +enum { + X2APIC_OFF = 0, + X2APIC_DISABLED = 1, + X2APIC_ON = 2, + X2APIC_ON_LOCKED = 3, +}; + +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 { + X86_IRQ_ALLOC_LEGACY = 1, +}; + +enum { + X86_PERF_KFREE_SHARED = 0, + X86_PERF_KFREE_EXCL = 1, + X86_PERF_KFREE_MAX = 2, +}; + +enum { + XA_CHECK_SCHED = 4096, +}; + +enum { + XDP_ATTACHED_NONE = 0, + XDP_ATTACHED_DRV = 1, + XDP_ATTACHED_SKB = 2, + XDP_ATTACHED_HW = 3, + XDP_ATTACHED_MULTI = 4, +}; + +enum { + XFRM_DEV_OFFLOAD_FLAG_ACQ = 1, +}; + +enum { + XFRM_DEV_OFFLOAD_IN = 1, + XFRM_DEV_OFFLOAD_OUT = 2, + XFRM_DEV_OFFLOAD_FWD = 3, +}; + +enum { + XFRM_DEV_OFFLOAD_UNSPECIFIED = 0, + XFRM_DEV_OFFLOAD_CRYPTO = 1, + XFRM_DEV_OFFLOAD_PACKET = 2, +}; + +enum { + XFRM_LOOKUP_ICMP = 1, + XFRM_LOOKUP_QUEUE = 2, + XFRM_LOOKUP_KEEP_DST_REF = 4, +}; + +enum { + XFRM_MODE_FLAG_TUNNEL = 1, +}; + +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_POLICY_IN = 0, + XFRM_POLICY_OUT = 1, + XFRM_POLICY_FWD = 2, + XFRM_POLICY_MASK = 3, + XFRM_POLICY_MAX = 3, +}; + +enum { + XFRM_POLICY_TYPE_MAIN = 0, + XFRM_POLICY_TYPE_SUB = 1, + XFRM_POLICY_TYPE_MAX = 2, + XFRM_POLICY_TYPE_ANY = 255, +}; + +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 { + ZONELIST_FALLBACK = 0, + ZONELIST_NOFALLBACK = 1, + MAX_ZONELISTS = 2, +}; + +enum { + ZSTDbss_compress = 0, + ZSTDbss_noCompress = 1, +}; + +enum { + _DQUOT_USAGE_ENABLED = 0, + _DQUOT_LIMITS_ENABLED = 1, + _DQUOT_SUSPENDED = 2, + _DQUOT_STATE_FLAGS = 3, +}; + +enum { + _IRQ_DEFAULT_INIT_FLAGS = 0, + _IRQ_PER_CPU = 512, + _IRQ_LEVEL = 256, + _IRQ_NOPROBE = 1024, + _IRQ_NOREQUEST = 2048, + _IRQ_NOTHREAD = 65536, + _IRQ_NOAUTOEN = 4096, + _IRQ_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 = 2080527, +}; + +enum { + __IOAM6_IPTUNNEL_MODE_MIN = 0, + IOAM6_IPTUNNEL_MODE_INLINE = 1, + IOAM6_IPTUNNEL_MODE_ENCAP = 2, + IOAM6_IPTUNNEL_MODE_AUTO = 3, + __IOAM6_IPTUNNEL_MODE_MAX = 4, +}; + +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 { + __PERCPU_REF_ATOMIC = 1, + __PERCPU_REF_DEAD = 2, + __PERCPU_REF_ATOMIC_DEAD = 3, + __PERCPU_REF_FLAG_BITS = 2, +}; + +enum { + __SCHED_FEAT_PLACE_LAG = 0, + __SCHED_FEAT_PLACE_DEADLINE_INITIAL = 1, + __SCHED_FEAT_PLACE_REL_DEADLINE = 2, + __SCHED_FEAT_RUN_TO_PARITY = 3, + __SCHED_FEAT_PREEMPT_SHORT = 4, + __SCHED_FEAT_NEXT_BUDDY = 5, + __SCHED_FEAT_PICK_BUDDY = 6, + __SCHED_FEAT_CACHE_HOT_BUDDY = 7, + __SCHED_FEAT_DELAY_DEQUEUE = 8, + __SCHED_FEAT_DELAY_ZERO = 9, + __SCHED_FEAT_WAKEUP_PREEMPTION = 10, + __SCHED_FEAT_HRTICK = 11, + __SCHED_FEAT_HRTICK_DL = 12, + __SCHED_FEAT_NONTASK_CAPACITY = 13, + __SCHED_FEAT_TTWU_QUEUE = 14, + __SCHED_FEAT_SIS_UTIL = 15, + __SCHED_FEAT_WARN_DOUBLE_CLOCK = 16, + __SCHED_FEAT_RT_PUSH_IPI = 17, + __SCHED_FEAT_RT_RUNTIME_SHARE = 18, + __SCHED_FEAT_LB_MIN = 19, + __SCHED_FEAT_ATTACH_AGE_LOAD = 20, + __SCHED_FEAT_WA_IDLE = 21, + __SCHED_FEAT_WA_WEIGHT = 22, + __SCHED_FEAT_WA_BIAS = 23, + __SCHED_FEAT_UTIL_EST = 24, + __SCHED_FEAT_LATENCY_WARN = 25, + __SCHED_FEAT_NR = 26, +}; + +enum { + __SD_BALANCE_NEWIDLE = 0, + __SD_BALANCE_EXEC = 1, + __SD_BALANCE_FORK = 2, + __SD_BALANCE_WAKE = 3, + __SD_WAKE_AFFINE = 4, + __SD_ASYM_CPUCAPACITY = 5, + __SD_ASYM_CPUCAPACITY_FULL = 6, + __SD_SHARE_CPUCAPACITY = 7, + __SD_CLUSTER = 8, + __SD_SHARE_LLC = 9, + __SD_SERIALIZE = 10, + __SD_ASYM_PACKING = 11, + __SD_PREFER_SIBLING = 12, + __SD_OVERLAP = 13, + __SD_NUMA = 14, + __SD_FLAG_CNT = 15, +}; + +enum { + ___GFP_DMA_BIT = 0, + ___GFP_HIGHMEM_BIT = 1, + ___GFP_DMA32_BIT = 2, + ___GFP_MOVABLE_BIT = 3, + ___GFP_RECLAIMABLE_BIT = 4, + ___GFP_HIGH_BIT = 5, + ___GFP_IO_BIT = 6, + ___GFP_FS_BIT = 7, + ___GFP_ZERO_BIT = 8, + ___GFP_UNUSED_BIT = 9, + ___GFP_DIRECT_RECLAIM_BIT = 10, + ___GFP_KSWAPD_RECLAIM_BIT = 11, + ___GFP_WRITE_BIT = 12, + ___GFP_NOWARN_BIT = 13, + ___GFP_RETRY_MAYFAIL_BIT = 14, + ___GFP_NOFAIL_BIT = 15, + ___GFP_NORETRY_BIT = 16, + ___GFP_MEMALLOC_BIT = 17, + ___GFP_COMP_BIT = 18, + ___GFP_NOMEMALLOC_BIT = 19, + ___GFP_HARDWALL_BIT = 20, + ___GFP_THISNODE_BIT = 21, + ___GFP_ACCOUNT_BIT = 22, + ___GFP_ZEROTAGS_BIT = 23, + ___GFP_NO_OBJ_EXT_BIT = 24, + ___GFP_LAST_BIT = 25, +}; + +enum { + __ctx_convertBPF_PROG_TYPE_SOCKET_FILTER = 0, + __ctx_convertBPF_PROG_TYPE_SCHED_CLS = 1, + __ctx_convertBPF_PROG_TYPE_SCHED_ACT = 2, + __ctx_convertBPF_PROG_TYPE_XDP = 3, + __ctx_convertBPF_PROG_TYPE_CGROUP_SKB = 4, + __ctx_convertBPF_PROG_TYPE_CGROUP_SOCK = 5, + __ctx_convertBPF_PROG_TYPE_CGROUP_SOCK_ADDR = 6, + __ctx_convertBPF_PROG_TYPE_LWT_IN = 7, + __ctx_convertBPF_PROG_TYPE_LWT_OUT = 8, + __ctx_convertBPF_PROG_TYPE_LWT_XMIT = 9, + __ctx_convertBPF_PROG_TYPE_LWT_SEG6LOCAL = 10, + __ctx_convertBPF_PROG_TYPE_SOCK_OPS = 11, + __ctx_convertBPF_PROG_TYPE_SK_SKB = 12, + __ctx_convertBPF_PROG_TYPE_SK_MSG = 13, + __ctx_convertBPF_PROG_TYPE_FLOW_DISSECTOR = 14, + __ctx_convertBPF_PROG_TYPE_KPROBE = 15, + __ctx_convertBPF_PROG_TYPE_TRACEPOINT = 16, + __ctx_convertBPF_PROG_TYPE_PERF_EVENT = 17, + __ctx_convertBPF_PROG_TYPE_RAW_TRACEPOINT = 18, + __ctx_convertBPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 19, + __ctx_convertBPF_PROG_TYPE_TRACING = 20, + __ctx_convertBPF_PROG_TYPE_CGROUP_DEVICE = 21, + __ctx_convertBPF_PROG_TYPE_CGROUP_SYSCTL = 22, + __ctx_convertBPF_PROG_TYPE_CGROUP_SOCKOPT = 23, + __ctx_convertBPF_PROG_TYPE_SK_REUSEPORT = 24, + __ctx_convertBPF_PROG_TYPE_SK_LOOKUP = 25, + __ctx_convertBPF_PROG_TYPE_STRUCT_OPS = 26, + __ctx_convertBPF_PROG_TYPE_EXT = 27, + __ctx_convertBPF_PROG_TYPE_LSM = 28, + __ctx_convertBPF_PROG_TYPE_SYSCALL = 29, + __ctx_convertBPF_PROG_TYPE_NETFILTER = 30, + __ctx_convert_unused = 31, +}; + +enum { + arg_AL = 0, + arg_CL = 1, + arg_DL = 2, + arg_BL = 3, + arg_AH = 4, + arg_CH = 5, + arg_DH = 6, + arg_BH = 7, + arg_AX = 0, + arg_CX = 1, + arg_DX = 2, + arg_BX = 3, + arg_SP = 4, + arg_BP = 5, + arg_SI = 6, + arg_DI = 7, + arg_R8 = 8, + arg_R9 = 9, + arg_R10 = 10, + arg_R11 = 11, + arg_R12 = 12, + arg_R13 = 13, + arg_R14 = 14, + arg_R15 = 15, +}; + +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_clusters_in_group = 10, + attr_mb_order = 11, + attr_feature = 12, + attr_pointer_pi = 13, + attr_pointer_ui = 14, + attr_pointer_ul = 15, + attr_pointer_u64 = 16, + attr_pointer_u8 = 17, + attr_pointer_string = 18, + attr_pointer_atomic = 19, + attr_journal_task = 20, +}; + +enum { + blank_off = 0, + blank_normal_wait = 1, + blank_vesa_wait = 2, +}; + +enum { + cpuset = 0, + possible = 1, + fail = 2, +}; + +enum { + dns_key_data = 0, + dns_key_error = 1, +}; + +enum { + false = 0, + true = 1, +}; + +enum { + mechtype_caddy = 0, + mechtype_tray = 1, + mechtype_popup = 2, + mechtype_individual_changer = 4, + mechtype_cartridge_changer = 5, +}; + +enum { + ncsi_dev_state_major = 65280, + ncsi_dev_state_minor = 255, + ncsi_dev_state_probe_deselect = 513, + ncsi_dev_state_probe_package = 514, + ncsi_dev_state_probe_channel = 515, + ncsi_dev_state_probe_mlx_gma = 516, + ncsi_dev_state_probe_mlx_smaf = 517, + ncsi_dev_state_probe_cis = 518, + ncsi_dev_state_probe_keep_phy = 519, + ncsi_dev_state_probe_gvi = 520, + ncsi_dev_state_probe_gc = 521, + ncsi_dev_state_probe_gls = 522, + ncsi_dev_state_probe_dp = 523, + ncsi_dev_state_config_sp = 769, + ncsi_dev_state_config_cis = 770, + ncsi_dev_state_config_oem_gma = 771, + ncsi_dev_state_config_apply_mac = 772, + ncsi_dev_state_config_clear_vids = 773, + ncsi_dev_state_config_svf = 774, + ncsi_dev_state_config_ev = 775, + ncsi_dev_state_config_sma = 776, + ncsi_dev_state_config_ebf = 777, + ncsi_dev_state_config_dgmf = 778, + ncsi_dev_state_config_ecnt = 779, + ncsi_dev_state_config_ec = 780, + ncsi_dev_state_config_ae = 781, + ncsi_dev_state_config_gls = 782, + ncsi_dev_state_config_done = 783, + ncsi_dev_state_suspend_select = 1025, + ncsi_dev_state_suspend_gls = 1026, + ncsi_dev_state_suspend_dcnt = 1027, + ncsi_dev_state_suspend_dc = 1028, + ncsi_dev_state_suspend_deselect = 1029, + ncsi_dev_state_suspend_done = 1030, +}; + +enum { + ncsi_dev_state_registered = 0, + ncsi_dev_state_functional = 256, + ncsi_dev_state_probe = 512, + ncsi_dev_state_config = 768, + ncsi_dev_state_suspend = 1024, +}; + +enum { + none = 0, + day = 1, + month = 2, + year = 3, +}; + +enum { + pci_channel_io_normal = 1, + pci_channel_io_frozen = 2, + pci_channel_io_perm_failure = 3, +}; + +enum { + preempt_dynamic_undefined = -1, + preempt_dynamic_none = 0, + preempt_dynamic_voluntary = 1, + preempt_dynamic_full = 2, + preempt_dynamic_lazy = 3, +}; + +enum { + ptr_explicit = 0, + ptr_ext4_sb_info_offset = 1, + ptr_ext4_super_block_offset = 2, +}; + +enum { + st_wordstart = 0, + st_wordcmp = 1, + st_wordskip = 2, + st_bufcpy = 3, +}; + +enum { + st_wordstart___2 = 0, + st_wordcmp___2 = 1, + st_wordskip___2 = 2, +}; + +enum { + type_kind_int = 0, + type_kind_float = 1, + type_unknown = 65535, +}; + +enum { + x86_lbr_exclusive_lbr = 0, + x86_lbr_exclusive_bts = 1, + x86_lbr_exclusive_pt = 2, + x86_lbr_exclusive_max = 3, +}; + +typedef enum { + BIT_DStream_unfinished = 0, + BIT_DStream_endOfBuffer = 1, + BIT_DStream_completed = 2, + BIT_DStream_overflow = 3, +} BIT_DStream_status; + +typedef enum { + ZSTD_error_no_error = 0, + ZSTD_error_GENERIC = 1, + ZSTD_error_prefix_unknown = 10, + ZSTD_error_version_unsupported = 12, + ZSTD_error_frameParameter_unsupported = 14, + ZSTD_error_frameParameter_windowTooLarge = 16, + ZSTD_error_corruption_detected = 20, + ZSTD_error_checksum_wrong = 22, + ZSTD_error_dictionary_corrupted = 30, + ZSTD_error_dictionary_wrong = 32, + ZSTD_error_dictionaryCreation_failed = 34, + ZSTD_error_parameter_unsupported = 40, + ZSTD_error_parameter_outOfBound = 42, + ZSTD_error_tableLog_tooLarge = 44, + ZSTD_error_maxSymbolValue_tooLarge = 46, + ZSTD_error_maxSymbolValue_tooSmall = 48, + ZSTD_error_stage_wrong = 60, + ZSTD_error_init_missing = 62, + ZSTD_error_memory_allocation = 64, + ZSTD_error_workSpace_tooSmall = 66, + ZSTD_error_dstSize_tooSmall = 70, + ZSTD_error_srcSize_wrong = 72, + ZSTD_error_dstBuffer_null = 74, + ZSTD_error_frameIndex_tooLarge = 100, + ZSTD_error_seekableIO = 102, + ZSTD_error_dstBuffer_wrong = 104, + ZSTD_error_srcBuffer_wrong = 105, + ZSTD_error_maxCode = 120, +} ZSTD_ErrorCode; + +typedef ZSTD_ErrorCode ERR_enum; + +typedef enum { + FSE_repeat_none = 0, + FSE_repeat_check = 1, + FSE_repeat_valid = 2, +} FSE_repeat; + +typedef enum { + trustInput = 0, + checkMaxSymbolValue = 1, +} HIST_checkInput_e; + +typedef enum { + HUF_singleStream = 0, + HUF_fourStreams = 1, +} HUF_nbStreams_e; + +typedef enum { + HUF_repeat_none = 0, + HUF_repeat_check = 1, + HUF_repeat_valid = 2, +} HUF_repeat; + +typedef enum { + ZSTD_e_continue = 0, + ZSTD_e_flush = 1, + ZSTD_e_end = 2, +} ZSTD_EndDirective; + +typedef enum { + zop_dynamic = 0, + zop_predef = 1, +} ZSTD_OptPrice_e; + +typedef enum { + ZSTD_reset_session_only = 1, + ZSTD_reset_parameters = 2, + ZSTD_reset_session_and_parameters = 3, +} ZSTD_ResetDirective; + +typedef enum { + ZSTD_bm_buffered = 0, + ZSTD_bm_stable = 1, +} ZSTD_bufferMode_e; + +typedef enum { + ZSTDb_not_buffered = 0, + ZSTDb_buffered = 1, +} ZSTD_buffered_policy_e; + +typedef enum { + ZSTD_cpm_noAttachDict = 0, + ZSTD_cpm_attachDict = 1, + ZSTD_cpm_createCDict = 2, + ZSTD_cpm_unknown = 3, +} ZSTD_cParamMode_e; + +typedef enum { + ZSTD_c_compressionLevel = 100, + ZSTD_c_windowLog = 101, + ZSTD_c_hashLog = 102, + ZSTD_c_chainLog = 103, + ZSTD_c_searchLog = 104, + ZSTD_c_minMatch = 105, + ZSTD_c_targetLength = 106, + ZSTD_c_strategy = 107, + ZSTD_c_enableLongDistanceMatching = 160, + ZSTD_c_ldmHashLog = 161, + ZSTD_c_ldmMinMatch = 162, + ZSTD_c_ldmBucketSizeLog = 163, + ZSTD_c_ldmHashRateLog = 164, + ZSTD_c_contentSizeFlag = 200, + ZSTD_c_checksumFlag = 201, + ZSTD_c_dictIDFlag = 202, + ZSTD_c_nbWorkers = 400, + ZSTD_c_jobSize = 401, + ZSTD_c_overlapLog = 402, + ZSTD_c_experimentalParam1 = 500, + ZSTD_c_experimentalParam2 = 10, + ZSTD_c_experimentalParam3 = 1000, + ZSTD_c_experimentalParam4 = 1001, + ZSTD_c_experimentalParam5 = 1002, + ZSTD_c_experimentalParam6 = 1003, + ZSTD_c_experimentalParam7 = 1004, + ZSTD_c_experimentalParam8 = 1005, + ZSTD_c_experimentalParam9 = 1006, + ZSTD_c_experimentalParam10 = 1007, + ZSTD_c_experimentalParam11 = 1008, + ZSTD_c_experimentalParam12 = 1009, + ZSTD_c_experimentalParam13 = 1010, + ZSTD_c_experimentalParam14 = 1011, + ZSTD_c_experimentalParam15 = 1012, +} ZSTD_cParameter; + +typedef enum { + zcss_init = 0, + zcss_load = 1, + zcss_flush = 2, +} ZSTD_cStreamStage; + +typedef enum { + ZSTDcrp_makeClean = 0, + ZSTDcrp_leaveDirty = 1, +} ZSTD_compResetPolicy_e; + +typedef enum { + ZSTDcs_created = 0, + ZSTDcs_init = 1, + ZSTDcs_ongoing = 2, + ZSTDcs_ending = 3, +} ZSTD_compressionStage_e; + +typedef enum { + ZSTD_cwksp_alloc_objects = 0, + ZSTD_cwksp_alloc_buffers = 1, + ZSTD_cwksp_alloc_aligned = 2, +} ZSTD_cwksp_alloc_phase_e; + +typedef enum { + ZSTD_cwksp_dynamic_alloc = 0, + ZSTD_cwksp_static_alloc = 1, +} ZSTD_cwksp_static_alloc_e; + +typedef enum { + ZSTD_d_windowLogMax = 100, + ZSTD_d_experimentalParam1 = 1000, + ZSTD_d_experimentalParam2 = 1001, + ZSTD_d_experimentalParam3 = 1002, + ZSTD_d_experimentalParam4 = 1003, +} ZSTD_dParameter; + +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 { + zdss_init = 0, + zdss_loadHeader = 1, + zdss_read = 2, + zdss_load = 3, + zdss_flush = 4, +} ZSTD_dStreamStage; + +typedef enum { + ZSTD_defaultDisallowed = 0, + ZSTD_defaultAllowed = 1, +} ZSTD_defaultPolicy_e; + +typedef enum { + ZSTD_dictDefaultAttach = 0, + ZSTD_dictForceAttach = 1, + ZSTD_dictForceCopy = 2, + ZSTD_dictForceLoad = 3, +} ZSTD_dictAttachPref_e; + +typedef enum { + ZSTD_dct_auto = 0, + ZSTD_dct_rawContent = 1, + ZSTD_dct_fullDict = 2, +} ZSTD_dictContentType_e; + +typedef enum { + ZSTD_dlm_byCopy = 0, + ZSTD_dlm_byRef = 1, +} ZSTD_dictLoadMethod_e; + +typedef enum { + ZSTD_noDict = 0, + ZSTD_extDict = 1, + ZSTD_dictMatchState = 2, + ZSTD_dedicatedDictSearch = 3, +} ZSTD_dictMode_e; + +typedef enum { + ZSTD_dtlm_fast = 0, + ZSTD_dtlm_full = 1, +} ZSTD_dictTableLoadMethod_e; + +typedef enum { + ZSTD_use_indefinitely = -1, + ZSTD_dont_use = 0, + ZSTD_use_once = 1, +} ZSTD_dictUses_e; + +typedef enum { + ZSTD_d_validateChecksum = 0, + ZSTD_d_ignoreChecksum = 1, +} ZSTD_forceIgnoreChecksum_e; + +typedef enum { + ZSTD_f_zstd1 = 0, + ZSTD_f_zstd1_magicless = 1, +} ZSTD_format_e; + +typedef enum { + ZSTD_frame = 0, + ZSTD_skippableFrame = 1, +} ZSTD_frameType_e; + +typedef enum { + ZSTDirp_continue = 0, + ZSTDirp_reset = 1, +} ZSTD_indexResetPolicy_e; + +typedef enum { + ZSTD_not_in_dst = 0, + ZSTD_in_dst = 1, + ZSTD_split = 2, +} ZSTD_litLocation_e; + +typedef enum { + ZSTD_llt_none = 0, + ZSTD_llt_literalLength = 1, + ZSTD_llt_matchLength = 2, +} ZSTD_longLengthType_e; + +typedef enum { + ZSTD_lo_isRegularOffset = 0, + ZSTD_lo_isLongOffset = 1, +} ZSTD_longOffset_e; + +typedef enum { + ZSTDnit_frameHeader = 0, + ZSTDnit_blockHeader = 1, + ZSTDnit_block = 2, + ZSTDnit_lastBlock = 3, + ZSTDnit_checksum = 4, + ZSTDnit_skippableFrame = 5, +} ZSTD_nextInputType_e; + +typedef enum { + ZSTD_no_overlap = 0, + ZSTD_overlap_src_before_dst = 1, +} ZSTD_overlap_e; + +typedef enum { + ZSTD_ps_auto = 0, + ZSTD_ps_enable = 1, + ZSTD_ps_disable = 2, +} ZSTD_paramSwitch_e; + +typedef enum { + ZSTD_rmd_refSingleDDict = 0, + ZSTD_rmd_refMultipleDDicts = 1, +} ZSTD_refMultipleDDicts_e; + +typedef enum { + ZSTD_resetTarget_CDict = 0, + ZSTD_resetTarget_CCtx = 1, +} ZSTD_resetTarget_e; + +typedef enum { + ZSTD_sf_noBlockDelimiters = 0, + ZSTD_sf_explicitBlockDelimiters = 1, +} ZSTD_sequenceFormat_e; + +typedef enum { + ZSTD_fast = 1, + ZSTD_dfast = 2, + ZSTD_greedy = 3, + ZSTD_lazy = 4, + ZSTD_lazy2 = 5, + ZSTD_btlazy2 = 6, + ZSTD_btopt = 7, + ZSTD_btultra = 8, + ZSTD_btultra2 = 9, +} ZSTD_strategy; + +typedef 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 enum { + ACPI_IMODE_LOAD_PASS1 = 1, + ACPI_IMODE_LOAD_PASS2 = 2, + ACPI_IMODE_EXECUTE = 3, +} acpi_interpreter_mode; + +typedef enum { + ACPI_TRACE_AML_METHOD = 0, + ACPI_TRACE_AML_OPCODE = 1, + ACPI_TRACE_AML_REGION = 2, +} acpi_trace_event_type; + +typedef enum { + bt_raw = 0, + bt_rle = 1, + bt_compressed = 2, + bt_reserved = 3, +} blockType_e; + +typedef enum { + need_more = 0, + block_done = 1, + finish_started = 2, + finish_done = 3, +} block_state; + +typedef enum { + CODES = 0, + LENS = 1, + DISTS = 2, +} codetype; + +typedef enum { + FILE_MEMORY_MIGRATE = 0, + FILE_CPULIST = 1, + FILE_MEMLIST = 2, + FILE_EFFECTIVE_CPULIST = 3, + FILE_EFFECTIVE_MEMLIST = 4, + FILE_SUBPARTS_CPULIST = 5, + FILE_EXCLUSIVE_CPULIST = 6, + FILE_EFFECTIVE_XCPULIST = 7, + FILE_ISOLATED_CPULIST = 8, + FILE_CPU_EXCLUSIVE = 9, + FILE_MEM_EXCLUSIVE = 10, + FILE_MEM_HARDWALL = 11, + FILE_SCHED_LOAD_BALANCE = 12, + FILE_PARTITION_ROOT = 13, + FILE_SCHED_RELAX_DOMAIN_LEVEL = 14, + FILE_MEMORY_PRESSURE_ENABLED = 15, + FILE_MEMORY_PRESSURE = 16, + FILE_SPREAD_PAGE = 17, + FILE_SPREAD_SLAB = 18, +} cpuset_filetype_t; + +typedef enum { + CS_ONLINE = 0, + CS_CPU_EXCLUSIVE = 1, + CS_MEM_EXCLUSIVE = 2, + CS_MEM_HARDWALL = 3, + CS_MEMORY_MIGRATE = 4, + CS_SCHED_LOAD_BALANCE = 5, + CS_SPREAD_PAGE = 6, + CS_SPREAD_SLAB = 7, +} cpuset_flagbits_t; + +typedef enum { + noDict = 0, + withPrefix64k = 1, + usingExtDict = 2, +} dict_directive; + +typedef enum { + EITHER = 0, + INDEX = 1, + DIRENT = 2, + DIRENT_HTREE = 3, +} dirblock_type_t; + +typedef enum { + decode_full_block = 0, + partial_decode = 1, +} earlyEnd_directive; + +typedef enum { + endOnOutputSize = 0, + endOnInputSize = 1, +} endCondition_directive; + +typedef enum { + EXT4_IGET_NORMAL = 0, + EXT4_IGET_SPECIAL = 1, + EXT4_IGET_HANDLE = 2, + EXT4_IGET_BAD = 4, + EXT4_IGET_EA_INODE = 8, +} ext4_iget_flags; + +typedef enum { + FS_DECRYPT = 0, + FS_ENCRYPT = 1, +} fscrypt_direction_t; + +typedef enum { + HEAD = 0, + FLAGS = 1, + TIME = 2, + OS = 3, + EXLEN = 4, + EXTRA = 5, + NAME = 6, + COMMENT = 7, + HCRC = 8, + DICTID = 9, + DICT = 10, + TYPE = 11, + TYPEDO = 12, + STORED = 13, + COPY = 14, + TABLE = 15, + LENLENS = 16, + CODELENS = 17, + LEN = 18, + LENEXT = 19, + DIST = 20, + DISTEXT = 21, + MATCH = 22, + LIT = 23, + CHECK = 24, + LENGTH = 25, + DONE = 26, + BAD = 27, + MEM = 28, + SYNC = 29, +} inflate_mode; + +typedef enum { + ISOLATE_ABORT = 0, + ISOLATE_NONE = 1, + ISOLATE_SUCCESS = 2, +} isolate_migrate_t; + +typedef enum { + KDB_ENABLE_ALL = 1, + KDB_ENABLE_MEM_READ = 2, + KDB_ENABLE_MEM_WRITE = 4, + KDB_ENABLE_REG_READ = 8, + KDB_ENABLE_REG_WRITE = 16, + KDB_ENABLE_INSPECT = 32, + KDB_ENABLE_FLOW_CTRL = 64, + KDB_ENABLE_SIGNAL = 128, + KDB_ENABLE_REBOOT = 256, + KDB_ENABLE_ALWAYS_SAFE = 512, + KDB_ENABLE_MASK = 1023, + KDB_ENABLE_ALL_NO_ARGS = 1024, + KDB_ENABLE_MEM_READ_NO_ARGS = 2048, + KDB_ENABLE_MEM_WRITE_NO_ARGS = 4096, + KDB_ENABLE_REG_READ_NO_ARGS = 8192, + KDB_ENABLE_REG_WRITE_NO_ARGS = 16384, + KDB_ENABLE_INSPECT_NO_ARGS = 32768, + KDB_ENABLE_FLOW_CTRL_NO_ARGS = 65536, + KDB_ENABLE_SIGNAL_NO_ARGS = 131072, + KDB_ENABLE_REBOOT_NO_ARGS = 262144, + KDB_ENABLE_ALWAYS_SAFE_NO_ARGS = 524288, + KDB_ENABLE_MASK_NO_ARGS = 1047552, + KDB_REPEAT_NO_ARGS = 1073741824, + KDB_REPEAT_WITH_ARGS = 2147483648, +} kdb_cmdflags_t; + +typedef enum { + KDB_DB_BPT = 0, + KDB_DB_SS = 1, + KDB_DB_SSBPT = 2, + KDB_DB_NOBPT = 3, +} kdb_dbtrap_t; + +typedef enum { + KDB_REASON_ENTER = 1, + KDB_REASON_ENTER_SLAVE = 2, + KDB_REASON_BREAK = 3, + KDB_REASON_DEBUG = 4, + KDB_REASON_OOPS = 5, + KDB_REASON_SWITCH = 6, + KDB_REASON_KEYBOARD = 7, + KDB_REASON_NMI = 8, + KDB_REASON_RECURSE = 9, + KDB_REASON_SSTEP = 10, + KDB_REASON_SYSTEM_NMI = 11, +} kdb_reason_t; + +typedef enum { + MAP_CHG_REUSE = 0, + MAP_CHG_NEEDED = 1, + MAP_CHG_ENFORCED = 2, +} map_chg_state; + +typedef enum { + PAGE_KEEP = 0, + PAGE_ACTIVATE = 1, + PAGE_SUCCESS = 2, + PAGE_CLEAN = 3, +} pageout_t; + +typedef enum { + PHY_INTERFACE_MODE_NA = 0, + PHY_INTERFACE_MODE_INTERNAL = 1, + PHY_INTERFACE_MODE_MII = 2, + PHY_INTERFACE_MODE_GMII = 3, + PHY_INTERFACE_MODE_SGMII = 4, + PHY_INTERFACE_MODE_TBI = 5, + PHY_INTERFACE_MODE_REVMII = 6, + PHY_INTERFACE_MODE_RMII = 7, + PHY_INTERFACE_MODE_REVRMII = 8, + PHY_INTERFACE_MODE_RGMII = 9, + PHY_INTERFACE_MODE_RGMII_ID = 10, + PHY_INTERFACE_MODE_RGMII_RXID = 11, + PHY_INTERFACE_MODE_RGMII_TXID = 12, + PHY_INTERFACE_MODE_RTBI = 13, + PHY_INTERFACE_MODE_SMII = 14, + PHY_INTERFACE_MODE_XGMII = 15, + PHY_INTERFACE_MODE_XLGMII = 16, + PHY_INTERFACE_MODE_MOCA = 17, + PHY_INTERFACE_MODE_PSGMII = 18, + PHY_INTERFACE_MODE_QSGMII = 19, + PHY_INTERFACE_MODE_TRGMII = 20, + PHY_INTERFACE_MODE_100BASEX = 21, + PHY_INTERFACE_MODE_1000BASEX = 22, + PHY_INTERFACE_MODE_2500BASEX = 23, + PHY_INTERFACE_MODE_5GBASER = 24, + PHY_INTERFACE_MODE_RXAUI = 25, + PHY_INTERFACE_MODE_XAUI = 26, + PHY_INTERFACE_MODE_10GBASER = 27, + PHY_INTERFACE_MODE_25GBASER = 28, + PHY_INTERFACE_MODE_USXGMII = 29, + PHY_INTERFACE_MODE_10GKR = 30, + PHY_INTERFACE_MODE_QUSGMII = 31, + PHY_INTERFACE_MODE_1000BASEKX = 32, + PHY_INTERFACE_MODE_10G_QXGMII = 33, + PHY_INTERFACE_MODE_MAX = 34, +} phy_interface_t; + +typedef enum { + search_hashChain = 0, + search_binaryTree = 1, + search_rowHash = 2, +} searchMethod_e; + +typedef enum { + SS_FREE = 0, + SS_UNCONNECTED = 1, + SS_CONNECTING = 2, + SS_CONNECTED = 3, + SS_DISCONNECTING = 4, +} socket_state; + +typedef enum { + STATUSTYPE_INFO = 0, + STATUSTYPE_TABLE = 1, + STATUSTYPE_IMA = 2, +} status_type_t; + +typedef enum { + not_streaming = 0, + is_streaming = 1, +} streaming_operation; + +typedef enum { + set_basic = 0, + set_rle = 1, + set_compressed = 2, + set_repeat = 3, +} symbolEncodingType_e; + +typedef ZSTD_ErrorCode zstd_error_code; + +enum CSI_J { + CSI_J_CURSOR_TO_END = 0, + CSI_J_START_TO_CURSOR = 1, + CSI_J_VISIBLE = 2, + CSI_J_FULL = 3, +}; + +enum CSI_right_square_bracket { + CSI_RSB_COLOR_FOR_UNDERLINE = 1, + CSI_RSB_COLOR_FOR_HALF_BRIGHT = 2, + CSI_RSB_MAKE_CUR_COLOR_DEFAULT = 8, + CSI_RSB_BLANKING_INTERVAL = 9, + CSI_RSB_BELL_FREQUENCY = 10, + CSI_RSB_BELL_DURATION = 11, + CSI_RSB_BRING_CONSOLE_TO_FRONT = 12, + CSI_RSB_UNBLANK = 13, + CSI_RSB_VESA_OFF_INTERVAL = 14, + CSI_RSB_BRING_PREV_CONSOLE_TO_FRONT = 15, + CSI_RSB_CURSOR_BLINK_INTERVAL = 16, +}; + +enum KTHREAD_BITS { + KTHREAD_IS_PER_CPU = 0, + KTHREAD_SHOULD_STOP = 1, + KTHREAD_SHOULD_PARK = 2, +}; + +enum NPmode { + NPMODE_PASS = 0, + NPMODE_DROP = 1, + NPMODE_ERROR = 2, + NPMODE_QUEUE = 3, +}; + +enum OID { + OID_id_dsa_with_sha1 = 0, + OID_id_dsa = 1, + OID_id_ecPublicKey = 2, + OID_id_prime192v1 = 3, + OID_id_prime256v1 = 4, + OID_id_ecdsa_with_sha1 = 5, + OID_id_ecdsa_with_sha224 = 6, + OID_id_ecdsa_with_sha256 = 7, + OID_id_ecdsa_with_sha384 = 8, + OID_id_ecdsa_with_sha512 = 9, + OID_rsaEncryption = 10, + OID_sha1WithRSAEncryption = 11, + OID_sha256WithRSAEncryption = 12, + OID_sha384WithRSAEncryption = 13, + OID_sha512WithRSAEncryption = 14, + OID_sha224WithRSAEncryption = 15, + OID_data = 16, + OID_signed_data = 17, + OID_email_address = 18, + OID_contentType = 19, + OID_messageDigest = 20, + OID_signingTime = 21, + OID_smimeCapabilites = 22, + OID_smimeAuthenticatedAttrs = 23, + OID_mskrb5 = 24, + OID_krb5 = 25, + OID_krb5u2u = 26, + OID_msIndirectData = 27, + OID_msStatementType = 28, + OID_msSpOpusInfo = 29, + OID_msPeImageDataObjId = 30, + OID_msIndividualSPKeyPurpose = 31, + OID_msOutlookExpress = 32, + OID_ntlmssp = 33, + OID_negoex = 34, + OID_spnego = 35, + OID_IAKerb = 36, + OID_PKU2U = 37, + OID_Scram = 38, + OID_certAuthInfoAccess = 39, + OID_sha1 = 40, + OID_id_ansip384r1 = 41, + OID_id_ansip521r1 = 42, + OID_sha256 = 43, + OID_sha384 = 44, + OID_sha512 = 45, + OID_sha224 = 46, + OID_commonName = 47, + OID_surname = 48, + OID_countryName = 49, + OID_locality = 50, + OID_stateOrProvinceName = 51, + OID_organizationName = 52, + OID_organizationUnitName = 53, + OID_title = 54, + OID_description = 55, + OID_name = 56, + OID_givenName = 57, + OID_initials = 58, + OID_generationalQualifier = 59, + OID_subjectKeyIdentifier = 60, + OID_keyUsage = 61, + OID_subjectAltName = 62, + OID_issuerAltName = 63, + OID_basicConstraints = 64, + OID_crlDistributionPoints = 65, + OID_certPolicies = 66, + OID_authorityKeyIdentifier = 67, + OID_extKeyUsage = 68, + OID_NetlogonMechanism = 69, + OID_appleLocalKdcSupported = 70, + OID_gostCPSignA = 71, + OID_gostCPSignB = 72, + OID_gostCPSignC = 73, + OID_gost2012PKey256 = 74, + OID_gost2012PKey512 = 75, + OID_gost2012Digest256 = 76, + OID_gost2012Digest512 = 77, + OID_gost2012Signature256 = 78, + OID_gost2012Signature512 = 79, + OID_gostTC26Sign256A = 80, + OID_gostTC26Sign256B = 81, + OID_gostTC26Sign256C = 82, + OID_gostTC26Sign256D = 83, + OID_gostTC26Sign512A = 84, + OID_gostTC26Sign512B = 85, + OID_gostTC26Sign512C = 86, + OID_sm2 = 87, + OID_sm3 = 88, + OID_SM2_with_SM3 = 89, + OID_sm3WithRSAEncryption = 90, + OID_TPMLoadableKey = 91, + OID_TPMImportableKey = 92, + OID_TPMSealedData = 93, + OID_sha3_256 = 94, + OID_sha3_384 = 95, + OID_sha3_512 = 96, + OID_id_ecdsa_with_sha3_256 = 97, + OID_id_ecdsa_with_sha3_384 = 98, + OID_id_ecdsa_with_sha3_512 = 99, + OID_id_rsassa_pkcs1_v1_5_with_sha3_256 = 100, + OID_id_rsassa_pkcs1_v1_5_with_sha3_384 = 101, + OID_id_rsassa_pkcs1_v1_5_with_sha3_512 = 102, + OID__NR = 103, +}; + +enum Opt_errors { + Opt_errors_continue = 0, + Opt_errors_panic = 1, +}; + +enum P4_ESCR_EMASKS { + P4_EVENT_TC_DELIVER_MODE__DD = 512, + P4_EVENT_TC_DELIVER_MODE__DB = 1024, + P4_EVENT_TC_DELIVER_MODE__DI = 2048, + P4_EVENT_TC_DELIVER_MODE__BD = 4096, + P4_EVENT_TC_DELIVER_MODE__BB = 8192, + P4_EVENT_TC_DELIVER_MODE__BI = 16384, + P4_EVENT_TC_DELIVER_MODE__ID = 32768, + P4_EVENT_BPU_FETCH_REQUEST__TCMISS = 512, + P4_EVENT_ITLB_REFERENCE__HIT = 512, + P4_EVENT_ITLB_REFERENCE__MISS = 1024, + P4_EVENT_ITLB_REFERENCE__HIT_UK = 2048, + P4_EVENT_MEMORY_CANCEL__ST_RB_FULL = 2048, + P4_EVENT_MEMORY_CANCEL__64K_CONF = 4096, + P4_EVENT_MEMORY_COMPLETE__LSC = 512, + P4_EVENT_MEMORY_COMPLETE__SSC = 1024, + P4_EVENT_LOAD_PORT_REPLAY__SPLIT_LD = 1024, + P4_EVENT_STORE_PORT_REPLAY__SPLIT_ST = 1024, + P4_EVENT_MOB_LOAD_REPLAY__NO_STA = 1024, + P4_EVENT_MOB_LOAD_REPLAY__NO_STD = 4096, + P4_EVENT_MOB_LOAD_REPLAY__PARTIAL_DATA = 8192, + P4_EVENT_MOB_LOAD_REPLAY__UNALGN_ADDR = 16384, + P4_EVENT_PAGE_WALK_TYPE__DTMISS = 512, + P4_EVENT_PAGE_WALK_TYPE__ITMISS = 1024, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITS = 512, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITE = 1024, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITM = 2048, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITS = 4096, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITE = 8192, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITM = 16384, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_MISS = 131072, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_MISS = 262144, + P4_EVENT_BSQ_CACHE_REFERENCE__WR_2ndL_MISS = 524288, + P4_EVENT_IOQ_ALLOCATION__DEFAULT = 512, + P4_EVENT_IOQ_ALLOCATION__ALL_READ = 16384, + P4_EVENT_IOQ_ALLOCATION__ALL_WRITE = 32768, + P4_EVENT_IOQ_ALLOCATION__MEM_UC = 65536, + P4_EVENT_IOQ_ALLOCATION__MEM_WC = 131072, + P4_EVENT_IOQ_ALLOCATION__MEM_WT = 262144, + P4_EVENT_IOQ_ALLOCATION__MEM_WP = 524288, + P4_EVENT_IOQ_ALLOCATION__MEM_WB = 1048576, + P4_EVENT_IOQ_ALLOCATION__OWN = 4194304, + P4_EVENT_IOQ_ALLOCATION__OTHER = 8388608, + P4_EVENT_IOQ_ALLOCATION__PREFETCH = 16777216, + P4_EVENT_IOQ_ACTIVE_ENTRIES__DEFAULT = 512, + P4_EVENT_IOQ_ACTIVE_ENTRIES__ALL_READ = 16384, + P4_EVENT_IOQ_ACTIVE_ENTRIES__ALL_WRITE = 32768, + P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_UC = 65536, + P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WC = 131072, + P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WT = 262144, + P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WP = 524288, + P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WB = 1048576, + P4_EVENT_IOQ_ACTIVE_ENTRIES__OWN = 4194304, + P4_EVENT_IOQ_ACTIVE_ENTRIES__OTHER = 8388608, + P4_EVENT_IOQ_ACTIVE_ENTRIES__PREFETCH = 16777216, + P4_EVENT_FSB_DATA_ACTIVITY__DRDY_DRV = 512, + P4_EVENT_FSB_DATA_ACTIVITY__DRDY_OWN = 1024, + P4_EVENT_FSB_DATA_ACTIVITY__DRDY_OTHER = 2048, + P4_EVENT_FSB_DATA_ACTIVITY__DBSY_DRV = 4096, + P4_EVENT_FSB_DATA_ACTIVITY__DBSY_OWN = 8192, + P4_EVENT_FSB_DATA_ACTIVITY__DBSY_OTHER = 16384, + P4_EVENT_BSQ_ALLOCATION__REQ_TYPE0 = 512, + P4_EVENT_BSQ_ALLOCATION__REQ_TYPE1 = 1024, + P4_EVENT_BSQ_ALLOCATION__REQ_LEN0 = 2048, + P4_EVENT_BSQ_ALLOCATION__REQ_LEN1 = 4096, + P4_EVENT_BSQ_ALLOCATION__REQ_IO_TYPE = 16384, + P4_EVENT_BSQ_ALLOCATION__REQ_LOCK_TYPE = 32768, + P4_EVENT_BSQ_ALLOCATION__REQ_CACHE_TYPE = 65536, + P4_EVENT_BSQ_ALLOCATION__REQ_SPLIT_TYPE = 131072, + P4_EVENT_BSQ_ALLOCATION__REQ_DEM_TYPE = 262144, + P4_EVENT_BSQ_ALLOCATION__REQ_ORD_TYPE = 524288, + P4_EVENT_BSQ_ALLOCATION__MEM_TYPE0 = 1048576, + P4_EVENT_BSQ_ALLOCATION__MEM_TYPE1 = 2097152, + P4_EVENT_BSQ_ALLOCATION__MEM_TYPE2 = 4194304, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_TYPE0 = 512, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_TYPE1 = 1024, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LEN0 = 2048, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LEN1 = 4096, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_IO_TYPE = 16384, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LOCK_TYPE = 32768, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_CACHE_TYPE = 65536, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_SPLIT_TYPE = 131072, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_DEM_TYPE = 262144, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_ORD_TYPE = 524288, + P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE0 = 1048576, + P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE1 = 2097152, + P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE2 = 4194304, + P4_EVENT_SSE_INPUT_ASSIST__ALL = 16777216, + P4_EVENT_PACKED_SP_UOP__ALL = 16777216, + P4_EVENT_PACKED_DP_UOP__ALL = 16777216, + P4_EVENT_SCALAR_SP_UOP__ALL = 16777216, + P4_EVENT_SCALAR_DP_UOP__ALL = 16777216, + P4_EVENT_64BIT_MMX_UOP__ALL = 16777216, + P4_EVENT_128BIT_MMX_UOP__ALL = 16777216, + P4_EVENT_X87_FP_UOP__ALL = 16777216, + P4_EVENT_TC_MISC__FLUSH = 8192, + P4_EVENT_GLOBAL_POWER_EVENTS__RUNNING = 512, + P4_EVENT_TC_MS_XFER__CISC = 512, + P4_EVENT_UOP_QUEUE_WRITES__FROM_TC_BUILD = 512, + P4_EVENT_UOP_QUEUE_WRITES__FROM_TC_DELIVER = 1024, + P4_EVENT_UOP_QUEUE_WRITES__FROM_ROM = 2048, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__CONDITIONAL = 1024, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__CALL = 2048, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__RETURN = 4096, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__INDIRECT = 8192, + P4_EVENT_RETIRED_BRANCH_TYPE__CONDITIONAL = 1024, + P4_EVENT_RETIRED_BRANCH_TYPE__CALL = 2048, + P4_EVENT_RETIRED_BRANCH_TYPE__RETURN = 4096, + P4_EVENT_RETIRED_BRANCH_TYPE__INDIRECT = 8192, + P4_EVENT_RESOURCE_STALL__SBFULL = 16384, + P4_EVENT_WC_BUFFER__WCB_EVICTS = 512, + P4_EVENT_WC_BUFFER__WCB_FULL_EVICTS = 1024, + P4_EVENT_FRONT_END_EVENT__NBOGUS = 512, + P4_EVENT_FRONT_END_EVENT__BOGUS = 1024, + P4_EVENT_EXECUTION_EVENT__NBOGUS0 = 512, + P4_EVENT_EXECUTION_EVENT__NBOGUS1 = 1024, + P4_EVENT_EXECUTION_EVENT__NBOGUS2 = 2048, + P4_EVENT_EXECUTION_EVENT__NBOGUS3 = 4096, + P4_EVENT_EXECUTION_EVENT__BOGUS0 = 8192, + P4_EVENT_EXECUTION_EVENT__BOGUS1 = 16384, + P4_EVENT_EXECUTION_EVENT__BOGUS2 = 32768, + P4_EVENT_EXECUTION_EVENT__BOGUS3 = 65536, + P4_EVENT_REPLAY_EVENT__NBOGUS = 512, + P4_EVENT_REPLAY_EVENT__BOGUS = 1024, + P4_EVENT_INSTR_RETIRED__NBOGUSNTAG = 512, + P4_EVENT_INSTR_RETIRED__NBOGUSTAG = 1024, + P4_EVENT_INSTR_RETIRED__BOGUSNTAG = 2048, + P4_EVENT_INSTR_RETIRED__BOGUSTAG = 4096, + P4_EVENT_UOPS_RETIRED__NBOGUS = 512, + P4_EVENT_UOPS_RETIRED__BOGUS = 1024, + P4_EVENT_UOP_TYPE__TAGLOADS = 1024, + P4_EVENT_UOP_TYPE__TAGSTORES = 2048, + P4_EVENT_BRANCH_RETIRED__MMNP = 512, + P4_EVENT_BRANCH_RETIRED__MMNM = 1024, + P4_EVENT_BRANCH_RETIRED__MMTP = 2048, + P4_EVENT_BRANCH_RETIRED__MMTM = 4096, + P4_EVENT_MISPRED_BRANCH_RETIRED__NBOGUS = 512, + P4_EVENT_X87_ASSIST__FPSU = 512, + P4_EVENT_X87_ASSIST__FPSO = 1024, + P4_EVENT_X87_ASSIST__POAO = 2048, + P4_EVENT_X87_ASSIST__POAU = 4096, + P4_EVENT_X87_ASSIST__PREA = 8192, + P4_EVENT_MACHINE_CLEAR__CLEAR = 512, + P4_EVENT_MACHINE_CLEAR__MOCLEAR = 1024, + P4_EVENT_MACHINE_CLEAR__SMCLEAR = 2048, + P4_EVENT_INSTR_COMPLETED__NBOGUS = 512, + P4_EVENT_INSTR_COMPLETED__BOGUS = 1024, +}; + +enum P4_EVENTS { + P4_EVENT_TC_DELIVER_MODE = 0, + P4_EVENT_BPU_FETCH_REQUEST = 1, + P4_EVENT_ITLB_REFERENCE = 2, + P4_EVENT_MEMORY_CANCEL = 3, + P4_EVENT_MEMORY_COMPLETE = 4, + P4_EVENT_LOAD_PORT_REPLAY = 5, + P4_EVENT_STORE_PORT_REPLAY = 6, + P4_EVENT_MOB_LOAD_REPLAY = 7, + P4_EVENT_PAGE_WALK_TYPE = 8, + P4_EVENT_BSQ_CACHE_REFERENCE = 9, + P4_EVENT_IOQ_ALLOCATION = 10, + P4_EVENT_IOQ_ACTIVE_ENTRIES = 11, + P4_EVENT_FSB_DATA_ACTIVITY = 12, + P4_EVENT_BSQ_ALLOCATION = 13, + P4_EVENT_BSQ_ACTIVE_ENTRIES = 14, + P4_EVENT_SSE_INPUT_ASSIST = 15, + P4_EVENT_PACKED_SP_UOP = 16, + P4_EVENT_PACKED_DP_UOP = 17, + P4_EVENT_SCALAR_SP_UOP = 18, + P4_EVENT_SCALAR_DP_UOP = 19, + P4_EVENT_64BIT_MMX_UOP = 20, + P4_EVENT_128BIT_MMX_UOP = 21, + P4_EVENT_X87_FP_UOP = 22, + P4_EVENT_TC_MISC = 23, + P4_EVENT_GLOBAL_POWER_EVENTS = 24, + P4_EVENT_TC_MS_XFER = 25, + P4_EVENT_UOP_QUEUE_WRITES = 26, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE = 27, + P4_EVENT_RETIRED_BRANCH_TYPE = 28, + P4_EVENT_RESOURCE_STALL = 29, + P4_EVENT_WC_BUFFER = 30, + P4_EVENT_B2B_CYCLES = 31, + P4_EVENT_BNR = 32, + P4_EVENT_SNOOP = 33, + P4_EVENT_RESPONSE = 34, + P4_EVENT_FRONT_END_EVENT = 35, + P4_EVENT_EXECUTION_EVENT = 36, + P4_EVENT_REPLAY_EVENT = 37, + P4_EVENT_INSTR_RETIRED = 38, + P4_EVENT_UOPS_RETIRED = 39, + P4_EVENT_UOP_TYPE = 40, + P4_EVENT_BRANCH_RETIRED = 41, + P4_EVENT_MISPRED_BRANCH_RETIRED = 42, + P4_EVENT_X87_ASSIST = 43, + P4_EVENT_MACHINE_CLEAR = 44, + P4_EVENT_INSTR_COMPLETED = 45, +}; + +enum P4_EVENT_OPCODES { + P4_EVENT_TC_DELIVER_MODE_OPCODE = 257, + P4_EVENT_BPU_FETCH_REQUEST_OPCODE = 768, + P4_EVENT_ITLB_REFERENCE_OPCODE = 6147, + P4_EVENT_MEMORY_CANCEL_OPCODE = 517, + P4_EVENT_MEMORY_COMPLETE_OPCODE = 2050, + P4_EVENT_LOAD_PORT_REPLAY_OPCODE = 1026, + P4_EVENT_STORE_PORT_REPLAY_OPCODE = 1282, + P4_EVENT_MOB_LOAD_REPLAY_OPCODE = 770, + P4_EVENT_PAGE_WALK_TYPE_OPCODE = 260, + P4_EVENT_BSQ_CACHE_REFERENCE_OPCODE = 3079, + P4_EVENT_IOQ_ALLOCATION_OPCODE = 774, + P4_EVENT_IOQ_ACTIVE_ENTRIES_OPCODE = 6662, + P4_EVENT_FSB_DATA_ACTIVITY_OPCODE = 5894, + P4_EVENT_BSQ_ALLOCATION_OPCODE = 1287, + P4_EVENT_BSQ_ACTIVE_ENTRIES_OPCODE = 1543, + P4_EVENT_SSE_INPUT_ASSIST_OPCODE = 13313, + P4_EVENT_PACKED_SP_UOP_OPCODE = 2049, + P4_EVENT_PACKED_DP_UOP_OPCODE = 3073, + P4_EVENT_SCALAR_SP_UOP_OPCODE = 2561, + P4_EVENT_SCALAR_DP_UOP_OPCODE = 3585, + P4_EVENT_64BIT_MMX_UOP_OPCODE = 513, + P4_EVENT_128BIT_MMX_UOP_OPCODE = 6657, + P4_EVENT_X87_FP_UOP_OPCODE = 1025, + P4_EVENT_TC_MISC_OPCODE = 1537, + P4_EVENT_GLOBAL_POWER_EVENTS_OPCODE = 4870, + P4_EVENT_TC_MS_XFER_OPCODE = 1280, + P4_EVENT_UOP_QUEUE_WRITES_OPCODE = 2304, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE_OPCODE = 1282, + P4_EVENT_RETIRED_BRANCH_TYPE_OPCODE = 1026, + P4_EVENT_RESOURCE_STALL_OPCODE = 257, + P4_EVENT_WC_BUFFER_OPCODE = 1285, + P4_EVENT_B2B_CYCLES_OPCODE = 5635, + P4_EVENT_BNR_OPCODE = 2051, + P4_EVENT_SNOOP_OPCODE = 1539, + P4_EVENT_RESPONSE_OPCODE = 1027, + P4_EVENT_FRONT_END_EVENT_OPCODE = 2053, + P4_EVENT_EXECUTION_EVENT_OPCODE = 3077, + P4_EVENT_REPLAY_EVENT_OPCODE = 2309, + P4_EVENT_INSTR_RETIRED_OPCODE = 516, + P4_EVENT_UOPS_RETIRED_OPCODE = 260, + P4_EVENT_UOP_TYPE_OPCODE = 514, + P4_EVENT_BRANCH_RETIRED_OPCODE = 1541, + P4_EVENT_MISPRED_BRANCH_RETIRED_OPCODE = 772, + P4_EVENT_X87_ASSIST_OPCODE = 773, + P4_EVENT_MACHINE_CLEAR_OPCODE = 517, + P4_EVENT_INSTR_COMPLETED_OPCODE = 1796, +}; + +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 SHIFT_DIRECTION { + SHIFT_LEFT = 0, + SHIFT_RIGHT = 1, +}; + +enum TPM_OPS_FLAGS { + TPM_OPS_AUTO_STARTUP = 1, +}; + +enum __sk_action { + __SK_DROP = 0, + __SK_PASS = 1, + __SK_REDIRECT = 2, + __SK_NONE = 3, +}; + +enum _cache_type { + CTYPE_NULL = 0, + CTYPE_DATA = 1, + CTYPE_INST = 2, + CTYPE_UNIFIED = 3, +}; + +enum _slab_flag_bits { + _SLAB_CONSISTENCY_CHECKS = 0, + _SLAB_RED_ZONE = 1, + _SLAB_POISON = 2, + _SLAB_KMALLOC = 3, + _SLAB_HWCACHE_ALIGN = 4, + _SLAB_CACHE_DMA = 5, + _SLAB_CACHE_DMA32 = 6, + _SLAB_STORE_USER = 7, + _SLAB_PANIC = 8, + _SLAB_TYPESAFE_BY_RCU = 9, + _SLAB_TRACE = 10, + _SLAB_NOLEAKTRACE = 11, + _SLAB_NO_MERGE = 12, + _SLAB_ACCOUNT = 13, + _SLAB_NO_USER_FLAGS = 14, + _SLAB_SKIP_KFENCE = 15, + _SLAB_RECLAIM_ACCOUNT = 16, + _SLAB_OBJECT_POISON = 17, + _SLAB_CMPXCHG_DOUBLE = 18, + _SLAB_NO_OBJ_EXT = 19, + _SLAB_FLAGS_LAST_BIT = 20, +}; + +enum aa_code { + AA_U8 = 0, + AA_U16 = 1, + AA_U32 = 2, + AA_U64 = 3, + AA_NAME = 4, + AA_STRING = 5, + AA_BLOB = 6, + AA_STRUCT = 7, + AA_STRUCTEND = 8, + AA_LIST = 9, + AA_LISTEND = 10, + AA_ARRAY = 11, + AA_ARRAYEND = 12, +}; + +enum aa_sfs_type { + AA_SFS_TYPE_BOOLEAN = 0, + AA_SFS_TYPE_BOOLEAN_INTPRINT = 1, + AA_SFS_TYPE_STRING = 2, + AA_SFS_TYPE_U64 = 3, + AA_SFS_TYPE_FOPS = 4, + AA_SFS_TYPE_DIR = 5, +}; + +enum aafs_ns_type { + AAFS_NS_DIR = 0, + AAFS_NS_PROFS = 1, + AAFS_NS_NS = 2, + AAFS_NS_RAW_DATA = 3, + AAFS_NS_LOAD = 4, + AAFS_NS_REPLACE = 5, + AAFS_NS_REMOVE = 6, + AAFS_NS_REVISION = 7, + AAFS_NS_COUNT = 8, + AAFS_NS_MAX_COUNT = 9, + AAFS_NS_SIZE = 10, + AAFS_NS_MAX_SIZE = 11, + AAFS_NS_OWNER = 12, + AAFS_NS_SIZEOF = 13, +}; + +enum aafs_prof_type { + AAFS_PROF_DIR = 0, + AAFS_PROF_PROFS = 1, + AAFS_PROF_NAME = 2, + AAFS_PROF_MODE = 3, + AAFS_PROF_ATTACH = 4, + AAFS_PROF_HASH = 5, + AAFS_PROF_RAW_DATA = 6, + AAFS_PROF_RAW_HASH = 7, + AAFS_PROF_RAW_ABI = 8, + AAFS_PROF_LEARNING_COUNT = 9, + AAFS_PROF_SIZEOF = 10, +}; + +enum aat2870_id { + AAT2870_ID_BL = 0, + AAT2870_ID_LDOA = 1, + AAT2870_ID_LDOB = 2, + AAT2870_ID_LDOC = 3, + AAT2870_ID_LDOD = 4, +}; + +enum access_coordinate_class { + ACCESS_COORDINATE_LOCAL = 0, + ACCESS_COORDINATE_CPU = 1, + ACCESS_COORDINATE_MAX = 2, +}; + +enum acpi_attr_enum { + ACPI_ATTR_LABEL_SHOW = 0, + ACPI_ATTR_INDEX_SHOW = 1, +}; + +enum acpi_bridge_type { + ACPI_BRIDGE_TYPE_PCIE = 1, + ACPI_BRIDGE_TYPE_CXL = 2, +}; + +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_cdat_type { + ACPI_CDAT_TYPE_DSMAS = 0, + ACPI_CDAT_TYPE_DSLBIS = 1, + ACPI_CDAT_TYPE_DSMSCIS = 2, + ACPI_CDAT_TYPE_DSIS = 3, + ACPI_CDAT_TYPE_DSEMTS = 4, + ACPI_CDAT_TYPE_SSLBIS = 5, + ACPI_CDAT_TYPE_RESERVED = 6, +}; + +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_device_swnode_dev_props { + ACPI_DEVICE_SWNODE_DEV_ROTATION = 0, + ACPI_DEVICE_SWNODE_DEV_CLOCK_FREQUENCY = 1, + ACPI_DEVICE_SWNODE_DEV_LED_MAX_MICROAMP = 2, + ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_MICROAMP = 3, + ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_TIMEOUT_US = 4, + ACPI_DEVICE_SWNODE_DEV_NUM_OF = 5, + ACPI_DEVICE_SWNODE_DEV_NUM_ENTRIES = 6, +}; + +enum acpi_device_swnode_ep_props { + ACPI_DEVICE_SWNODE_EP_REMOTE_EP = 0, + ACPI_DEVICE_SWNODE_EP_BUS_TYPE = 1, + ACPI_DEVICE_SWNODE_EP_REG = 2, + ACPI_DEVICE_SWNODE_EP_CLOCK_LANES = 3, + ACPI_DEVICE_SWNODE_EP_DATA_LANES = 4, + ACPI_DEVICE_SWNODE_EP_LANE_POLARITIES = 5, + ACPI_DEVICE_SWNODE_EP_LINK_FREQUENCIES = 6, + ACPI_DEVICE_SWNODE_EP_NUM_OF = 7, + ACPI_DEVICE_SWNODE_EP_NUM_ENTRIES = 8, +}; + +enum acpi_device_swnode_port_props { + ACPI_DEVICE_SWNODE_PORT_REG = 0, + ACPI_DEVICE_SWNODE_PORT_NUM_OF = 1, + ACPI_DEVICE_SWNODE_PORT_NUM_ENTRIES = 2, +}; + +enum acpi_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 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 acpi_ec_event_state { + EC_EVENT_READY = 0, + EC_EVENT_IN_PROGRESS = 1, + EC_EVENT_COMPLETE = 2, +}; + +enum acpi_erst_actions { + ACPI_ERST_BEGIN_WRITE = 0, + ACPI_ERST_BEGIN_READ = 1, + ACPI_ERST_BEGIN_CLEAR = 2, + ACPI_ERST_END = 3, + ACPI_ERST_SET_RECORD_OFFSET = 4, + ACPI_ERST_EXECUTE_OPERATION = 5, + ACPI_ERST_CHECK_BUSY_STATUS = 6, + ACPI_ERST_GET_COMMAND_STATUS = 7, + ACPI_ERST_GET_RECORD_ID = 8, + ACPI_ERST_SET_RECORD_ID = 9, + ACPI_ERST_GET_RECORD_COUNT = 10, + ACPI_ERST_BEGIN_DUMMY_WRIITE = 11, + ACPI_ERST_NOT_USED = 12, + ACPI_ERST_GET_ERROR_RANGE = 13, + ACPI_ERST_GET_ERROR_LENGTH = 14, + ACPI_ERST_GET_ERROR_ATTRIBUTES = 15, + ACPI_ERST_EXECUTE_TIMINGS = 16, + ACPI_ERST_ACTION_RESERVED = 17, +}; + +enum acpi_erst_instructions { + ACPI_ERST_READ_REGISTER = 0, + ACPI_ERST_READ_REGISTER_VALUE = 1, + ACPI_ERST_WRITE_REGISTER = 2, + ACPI_ERST_WRITE_REGISTER_VALUE = 3, + ACPI_ERST_NOOP = 4, + ACPI_ERST_LOAD_VAR1 = 5, + ACPI_ERST_LOAD_VAR2 = 6, + ACPI_ERST_STORE_VAR1 = 7, + ACPI_ERST_ADD = 8, + ACPI_ERST_SUBTRACT = 9, + ACPI_ERST_ADD_VALUE = 10, + ACPI_ERST_SUBTRACT_VALUE = 11, + ACPI_ERST_STALL = 12, + ACPI_ERST_STALL_WHILE_TRUE = 13, + ACPI_ERST_SKIP_NEXT_IF_TRUE = 14, + ACPI_ERST_GOTO = 15, + ACPI_ERST_SET_SRC_ADDRESS_BASE = 16, + ACPI_ERST_SET_DST_ADDRESS_BASE = 17, + ACPI_ERST_MOVE_DATA = 18, + ACPI_ERST_INSTRUCTION_RESERVED = 19, +}; + +enum acpi_ex_debugger_commands { + CMD_NOT_FOUND = 0, + CMD_NULL = 1, + CMD_ALL = 2, + CMD_ALLOCATIONS = 3, + CMD_ARGS = 4, + CMD_ARGUMENTS = 5, + CMD_BREAKPOINT = 6, + CMD_BUSINFO = 7, + CMD_CALL = 8, + CMD_DEBUG = 9, + CMD_DISASSEMBLE = 10, + CMD_DISASM = 11, + CMD_DUMP = 12, + CMD_EVALUATE = 13, + CMD_EXECUTE = 14, + CMD_EXIT = 15, + CMD_FIELDS = 16, + CMD_FIND = 17, + CMD_GO = 18, + CMD_HANDLERS = 19, + CMD_HELP = 20, + CMD_HELP2 = 21, + CMD_HISTORY = 22, + CMD_HISTORY_EXE = 23, + CMD_HISTORY_LAST = 24, + CMD_INFORMATION = 25, + CMD_INTEGRITY = 26, + CMD_INTO = 27, + CMD_LEVEL = 28, + CMD_LIST = 29, + CMD_LOCALS = 30, + CMD_LOCKS = 31, + CMD_METHODS = 32, + CMD_NAMESPACE = 33, + CMD_NOTIFY = 34, + CMD_OBJECTS = 35, + CMD_OSI = 36, + CMD_OWNER = 37, + CMD_PATHS = 38, + CMD_PREDEFINED = 39, + CMD_PREFIX = 40, + CMD_QUIT = 41, + CMD_REFERENCES = 42, + CMD_RESOURCES = 43, + CMD_RESULTS = 44, + CMD_SET = 45, + CMD_STATS = 46, + CMD_STOP = 47, + CMD_TABLES = 48, + CMD_TEMPLATE = 49, + CMD_TRACE = 50, + CMD_TREE = 51, + CMD_TYPE = 52, +}; + +enum acpi_hest_notify_types { + ACPI_HEST_NOTIFY_POLLED = 0, + ACPI_HEST_NOTIFY_EXTERNAL = 1, + ACPI_HEST_NOTIFY_LOCAL = 2, + ACPI_HEST_NOTIFY_SCI = 3, + ACPI_HEST_NOTIFY_NMI = 4, + ACPI_HEST_NOTIFY_CMCI = 5, + ACPI_HEST_NOTIFY_MCE = 6, + ACPI_HEST_NOTIFY_GPIO = 7, + ACPI_HEST_NOTIFY_SEA = 8, + ACPI_HEST_NOTIFY_SEI = 9, + ACPI_HEST_NOTIFY_GSIV = 10, + ACPI_HEST_NOTIFY_SOFTWARE_DELEGATED = 11, + ACPI_HEST_NOTIFY_RESERVED = 12, +}; + +enum acpi_hest_types { + ACPI_HEST_TYPE_IA32_CHECK = 0, + ACPI_HEST_TYPE_IA32_CORRECTED_CHECK = 1, + ACPI_HEST_TYPE_IA32_NMI = 2, + ACPI_HEST_TYPE_NOT_USED3 = 3, + ACPI_HEST_TYPE_NOT_USED4 = 4, + ACPI_HEST_TYPE_NOT_USED5 = 5, + ACPI_HEST_TYPE_AER_ROOT_PORT = 6, + ACPI_HEST_TYPE_AER_ENDPOINT = 7, + ACPI_HEST_TYPE_AER_BRIDGE = 8, + ACPI_HEST_TYPE_GENERIC_ERROR = 9, + ACPI_HEST_TYPE_GENERIC_ERROR_V2 = 10, + ACPI_HEST_TYPE_IA32_DEFERRED_CHECK = 11, + ACPI_HEST_TYPE_RESERVED = 12, +}; + +enum acpi_hmat_type { + ACPI_HMAT_TYPE_PROXIMITY = 0, + ACPI_HMAT_TYPE_LOCALITY = 1, + ACPI_HMAT_TYPE_CACHE = 2, + ACPI_HMAT_TYPE_RESERVED = 3, +}; + +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_RINTC = 6, + ACPI_IRQ_MODEL_COUNT = 7, +}; + +enum acpi_madt_multiproc_wakeup_version { + ACPI_MADT_MP_WAKEUP_VERSION_NONE = 0, + ACPI_MADT_MP_WAKEUP_VERSION_V1 = 1, + ACPI_MADT_MP_WAKEUP_VERSION_RESERVED = 2, +}; + +enum acpi_madt_type { + ACPI_MADT_TYPE_LOCAL_APIC = 0, + ACPI_MADT_TYPE_IO_APIC = 1, + ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2, + ACPI_MADT_TYPE_NMI_SOURCE = 3, + ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4, + ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5, + ACPI_MADT_TYPE_IO_SAPIC = 6, + ACPI_MADT_TYPE_LOCAL_SAPIC = 7, + ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, + ACPI_MADT_TYPE_LOCAL_X2APIC = 9, + ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, + ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, + ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, + ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, + ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, + ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, + ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, + ACPI_MADT_TYPE_CORE_PIC = 17, + ACPI_MADT_TYPE_LIO_PIC = 18, + ACPI_MADT_TYPE_HT_PIC = 19, + ACPI_MADT_TYPE_EIO_PIC = 20, + ACPI_MADT_TYPE_MSI_PIC = 21, + ACPI_MADT_TYPE_BIO_PIC = 22, + ACPI_MADT_TYPE_LPC_PIC = 23, + ACPI_MADT_TYPE_RINTC = 24, + ACPI_MADT_TYPE_IMSIC = 25, + ACPI_MADT_TYPE_APLIC = 26, + ACPI_MADT_TYPE_PLIC = 27, + ACPI_MADT_TYPE_RESERVED = 28, + ACPI_MADT_TYPE_OEM_RESERVED = 128, +}; + +enum 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, +}; + +enum acpi_predicate { + all_versions = 0, + less_than_or_equal = 1, + equal = 2, + greater_than_or_equal = 3, +}; + +enum acpi_preferred_pm_profiles { + PM_UNSPECIFIED = 0, + PM_DESKTOP = 1, + PM_MOBILE = 2, + PM_WORKSTATION = 3, + PM_ENTERPRISE_SERVER = 4, + PM_SOHO_SERVER = 5, + PM_APPLIANCE_PC = 6, + PM_PERFORMANCE_SERVER = 7, + PM_TABLET = 8, + NR_PM_PROFILES = 9, +}; + +enum acpi_reconfig_event { + ACPI_RECONFIG_DEVICE_ADD = 0, + ACPI_RECONFIG_DEVICE_REMOVE = 1, +}; + +enum acpi_return_package_types { + ACPI_PTYPE1_FIXED = 1, + ACPI_PTYPE1_VAR = 2, + ACPI_PTYPE1_OPTION = 3, + ACPI_PTYPE2 = 4, + ACPI_PTYPE2_COUNT = 5, + ACPI_PTYPE2_PKG_COUNT = 6, + ACPI_PTYPE2_FIXED = 7, + ACPI_PTYPE2_MIN = 8, + ACPI_PTYPE2_REV_FIXED = 9, + ACPI_PTYPE2_FIX_VAR = 10, + ACPI_PTYPE2_VAR_VAR = 11, + ACPI_PTYPE2_UUID_PAIR = 12, + ACPI_PTYPE_CUSTOM = 13, +}; + +enum acpi_srat_type { + ACPI_SRAT_TYPE_CPU_AFFINITY = 0, + ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, + ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, + ACPI_SRAT_TYPE_GICC_AFFINITY = 3, + ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, + ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, + ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, + ACPI_SRAT_TYPE_RINTC_AFFINITY = 7, + ACPI_SRAT_TYPE_RESERVED = 8, +}; + +enum acpi_subtable_type { + ACPI_SUBTABLE_COMMON = 0, + ACPI_SUBTABLE_HMAT = 1, + ACPI_SUBTABLE_PRMT = 2, + ACPI_SUBTABLE_CEDT = 3, + CDAT_SUBTABLE = 4, +}; + +enum acpi_viot_node_type { + ACPI_VIOT_NODE_PCI_RANGE = 1, + ACPI_VIOT_NODE_MMIO = 2, + ACPI_VIOT_NODE_VIRTIO_IOMMU_PCI = 3, + ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO = 4, + ACPI_VIOT_RESERVED = 5, +}; + +enum action_id { + ACTION_SAVE = 1, + ACTION_TRACE = 2, + ACTION_SNAPSHOT = 3, +}; + +enum action_t { + nmi_act_kdump = 0, + nmi_act_dump = 1, + nmi_act_ips = 2, + nmi_act_kdb = 3, + nmi_act_kgdb = 4, + nmi_act_health = 5, + nmi_act_max = 6, +}; + +enum actions { + REGISTER = 0, + DEREGISTER = 1, + CPU_DONT_CARE = 2, +}; + +enum addr_type { + ADDR_LOCAL = 0, + ADDR_LOCAL_PRIV = 1, + ADDR_REMOTE = 2, +}; + +enum addr_type_t { + UNICAST_ADDR = 0, + MULTICAST_ADDR = 1, + ANYCAST_ADDR = 2, +}; + +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, +}; + +enum aead_algo { + SNP_AEAD_INVALID = 0, + SNP_AEAD_AES_256_GCM = 1, +}; + +enum alarmtimer_type { + ALARM_REALTIME = 0, + ALARM_BOOTTIME = 1, + ALARM_NUMTYPE = 2, + ALARM_REALTIME_FREEZER = 3, + ALARM_BOOTTIME_FREEZER = 4, +}; + +enum align_flags { + ALIGN_VA_32 = 1, + ALIGN_VA_64 = 2, +}; + +enum alloc_loc { + ALLOC_ERR = 0, + ALLOC_BEFORE = 1, + ALLOC_MID = 2, + ALLOC_AFTER = 3, +}; + +enum amd_chipset_gen { + NOT_AMD_CHIPSET = 0, + AMD_CHIPSET_SB600 = 1, + AMD_CHIPSET_SB700 = 2, + AMD_CHIPSET_SB800 = 3, + AMD_CHIPSET_HUDSON2 = 4, + AMD_CHIPSET_BOLTON = 5, + AMD_CHIPSET_YANGTZE = 6, + AMD_CHIPSET_TAISHAN = 7, + AMD_CHIPSET_UNKNOWN = 8, +}; + +enum amd_functions { + IMX_F0_GPIO0 = 0, + IMX_F1_GPIO0 = 1, + IMX_F2_GPIO0 = 2, + IMX_F3_GPIO0 = 3, + IMX_F0_GPIO1 = 4, + IMX_F1_GPIO1 = 5, + IMX_F2_GPIO1 = 6, + IMX_F3_GPIO1 = 7, + IMX_F0_GPIO2 = 8, + IMX_F1_GPIO2 = 9, + IMX_F2_GPIO2 = 10, + IMX_F3_GPIO2 = 11, + IMX_F0_GPIO3 = 12, + IMX_F1_GPIO3 = 13, + IMX_F2_GPIO3 = 14, + IMX_F3_GPIO3 = 15, + IMX_F0_GPIO4 = 16, + IMX_F1_GPIO4 = 17, + IMX_F2_GPIO4 = 18, + IMX_F3_GPIO4 = 19, + IMX_F0_GPIO5 = 20, + IMX_F1_GPIO5 = 21, + IMX_F2_GPIO5 = 22, + IMX_F3_GPIO5 = 23, + IMX_F0_GPIO6 = 24, + IMX_F1_GPIO6 = 25, + IMX_F2_GPIO6 = 26, + IMX_F3_GPIO6 = 27, + IMX_F0_GPIO7 = 28, + IMX_F1_GPIO7 = 29, + IMX_F2_GPIO7 = 30, + IMX_F3_GPIO7 = 31, + IMX_F0_GPIO8 = 32, + IMX_F1_GPIO8 = 33, + IMX_F2_GPIO8 = 34, + IMX_F3_GPIO8 = 35, + IMX_F0_GPIO9 = 36, + IMX_F1_GPIO9 = 37, + IMX_F2_GPIO9 = 38, + IMX_F3_GPIO9 = 39, + IMX_F0_GPIO10 = 40, + IMX_F1_GPIO10 = 41, + IMX_F2_GPIO10 = 42, + IMX_F3_GPIO10 = 43, + IMX_F0_GPIO11 = 44, + IMX_F1_GPIO11 = 45, + IMX_F2_GPIO11 = 46, + IMX_F3_GPIO11 = 47, + IMX_F0_GPIO12 = 48, + IMX_F1_GPIO12 = 49, + IMX_F2_GPIO12 = 50, + IMX_F3_GPIO12 = 51, + IMX_F0_GPIO13 = 52, + IMX_F1_GPIO13 = 53, + IMX_F2_GPIO13 = 54, + IMX_F3_GPIO13 = 55, + IMX_F0_GPIO14 = 56, + IMX_F1_GPIO14 = 57, + IMX_F2_GPIO14 = 58, + IMX_F3_GPIO14 = 59, + IMX_F0_GPIO15 = 60, + IMX_F1_GPIO15 = 61, + IMX_F2_GPIO15 = 62, + IMX_F3_GPIO15 = 63, + IMX_F0_GPIO16 = 64, + IMX_F1_GPIO16 = 65, + IMX_F2_GPIO16 = 66, + IMX_F3_GPIO16 = 67, + IMX_F0_GPIO17 = 68, + IMX_F1_GPIO17 = 69, + IMX_F2_GPIO17 = 70, + IMX_F3_GPIO17 = 71, + IMX_F0_GPIO18 = 72, + IMX_F1_GPIO18 = 73, + IMX_F2_GPIO18 = 74, + IMX_F3_GPIO18 = 75, + IMX_F0_GPIO19 = 76, + IMX_F1_GPIO19 = 77, + IMX_F2_GPIO19 = 78, + IMX_F3_GPIO19 = 79, + IMX_F0_GPIO20 = 80, + IMX_F1_GPIO20 = 81, + IMX_F2_GPIO20 = 82, + IMX_F3_GPIO20 = 83, + IMX_F0_GPIO21 = 84, + IMX_F1_GPIO21 = 85, + IMX_F2_GPIO21 = 86, + IMX_F3_GPIO21 = 87, + IMX_F0_GPIO22 = 88, + IMX_F1_GPIO22 = 89, + IMX_F2_GPIO22 = 90, + IMX_F3_GPIO22 = 91, + IMX_F0_GPIO23 = 92, + IMX_F1_GPIO23 = 93, + IMX_F2_GPIO23 = 94, + IMX_F3_GPIO23 = 95, + IMX_F0_GPIO24 = 96, + IMX_F1_GPIO24 = 97, + IMX_F2_GPIO24 = 98, + IMX_F3_GPIO24 = 99, + IMX_F0_GPIO25 = 100, + IMX_F1_GPIO25 = 101, + IMX_F2_GPIO25 = 102, + IMX_F3_GPIO25 = 103, + IMX_F0_GPIO26 = 104, + IMX_F1_GPIO26 = 105, + IMX_F2_GPIO26 = 106, + IMX_F3_GPIO26 = 107, + IMX_F0_GPIO27 = 108, + IMX_F1_GPIO27 = 109, + IMX_F2_GPIO27 = 110, + IMX_F3_GPIO27 = 111, + IMX_F0_GPIO28 = 112, + IMX_F1_GPIO28 = 113, + IMX_F2_GPIO28 = 114, + IMX_F3_GPIO28 = 115, + IMX_F0_GPIO29 = 116, + IMX_F1_GPIO29 = 117, + IMX_F2_GPIO29 = 118, + IMX_F3_GPIO29 = 119, + IMX_F0_GPIO30 = 120, + IMX_F1_GPIO30 = 121, + IMX_F2_GPIO30 = 122, + IMX_F3_GPIO30 = 123, + IMX_F0_GPIO31 = 124, + IMX_F1_GPIO31 = 125, + IMX_F2_GPIO31 = 126, + IMX_F3_GPIO31 = 127, + IMX_F0_GPIO32 = 128, + IMX_F1_GPIO32 = 129, + IMX_F2_GPIO32 = 130, + IMX_F3_GPIO32 = 131, + IMX_F0_GPIO33 = 132, + IMX_F1_GPIO33 = 133, + IMX_F2_GPIO33 = 134, + IMX_F3_GPIO33 = 135, + IMX_F0_GPIO34 = 136, + IMX_F1_GPIO34 = 137, + IMX_F2_GPIO34 = 138, + IMX_F3_GPIO34 = 139, + IMX_F0_GPIO35 = 140, + IMX_F1_GPIO35 = 141, + IMX_F2_GPIO35 = 142, + IMX_F3_GPIO35 = 143, + IMX_F0_GPIO36 = 144, + IMX_F1_GPIO36 = 145, + IMX_F2_GPIO36 = 146, + IMX_F3_GPIO36 = 147, + IMX_F0_GPIO37 = 148, + IMX_F1_GPIO37 = 149, + IMX_F2_GPIO37 = 150, + IMX_F3_GPIO37 = 151, + IMX_F0_GPIO38 = 152, + IMX_F1_GPIO38 = 153, + IMX_F2_GPIO38 = 154, + IMX_F3_GPIO38 = 155, + IMX_F0_GPIO39 = 156, + IMX_F1_GPIO39 = 157, + IMX_F2_GPIO39 = 158, + IMX_F3_GPIO39 = 159, + IMX_F0_GPIO40 = 160, + IMX_F1_GPIO40 = 161, + IMX_F2_GPIO40 = 162, + IMX_F3_GPIO40 = 163, + IMX_F0_GPIO41 = 164, + IMX_F1_GPIO41 = 165, + IMX_F2_GPIO41 = 166, + IMX_F3_GPIO41 = 167, + IMX_F0_GPIO42 = 168, + IMX_F1_GPIO42 = 169, + IMX_F2_GPIO42 = 170, + IMX_F3_GPIO42 = 171, + IMX_F0_GPIO43 = 172, + IMX_F1_GPIO43 = 173, + IMX_F2_GPIO43 = 174, + IMX_F3_GPIO43 = 175, + IMX_F0_GPIO44 = 176, + IMX_F1_GPIO44 = 177, + IMX_F2_GPIO44 = 178, + IMX_F3_GPIO44 = 179, + IMX_F0_GPIO45 = 180, + IMX_F1_GPIO45 = 181, + IMX_F2_GPIO45 = 182, + IMX_F3_GPIO45 = 183, + IMX_F0_GPIO46 = 184, + IMX_F1_GPIO46 = 185, + IMX_F2_GPIO46 = 186, + IMX_F3_GPIO46 = 187, + IMX_F0_GPIO47 = 188, + IMX_F1_GPIO47 = 189, + IMX_F2_GPIO47 = 190, + IMX_F3_GPIO47 = 191, + IMX_F0_GPIO48 = 192, + IMX_F1_GPIO48 = 193, + IMX_F2_GPIO48 = 194, + IMX_F3_GPIO48 = 195, + IMX_F0_GPIO49 = 196, + IMX_F1_GPIO49 = 197, + IMX_F2_GPIO49 = 198, + IMX_F3_GPIO49 = 199, + IMX_F0_GPIO50 = 200, + IMX_F1_GPIO50 = 201, + IMX_F2_GPIO50 = 202, + IMX_F3_GPIO50 = 203, + IMX_F0_GPIO51 = 204, + IMX_F1_GPIO51 = 205, + IMX_F2_GPIO51 = 206, + IMX_F3_GPIO51 = 207, + IMX_F0_GPIO52 = 208, + IMX_F1_GPIO52 = 209, + IMX_F2_GPIO52 = 210, + IMX_F3_GPIO52 = 211, + IMX_F0_GPIO53 = 212, + IMX_F1_GPIO53 = 213, + IMX_F2_GPIO53 = 214, + IMX_F3_GPIO53 = 215, + IMX_F0_GPIO54 = 216, + IMX_F1_GPIO54 = 217, + IMX_F2_GPIO54 = 218, + IMX_F3_GPIO54 = 219, + IMX_F0_GPIO55 = 220, + IMX_F1_GPIO55 = 221, + IMX_F2_GPIO55 = 222, + IMX_F3_GPIO55 = 223, + IMX_F0_GPIO56 = 224, + IMX_F1_GPIO56 = 225, + IMX_F2_GPIO56 = 226, + IMX_F3_GPIO56 = 227, + IMX_F0_GPIO57 = 228, + IMX_F1_GPIO57 = 229, + IMX_F2_GPIO57 = 230, + IMX_F3_GPIO57 = 231, + IMX_F0_GPIO58 = 232, + IMX_F1_GPIO58 = 233, + IMX_F2_GPIO58 = 234, + IMX_F3_GPIO58 = 235, + IMX_F0_GPIO59 = 236, + IMX_F1_GPIO59 = 237, + IMX_F2_GPIO59 = 238, + IMX_F3_GPIO59 = 239, + IMX_F0_GPIO60 = 240, + IMX_F1_GPIO60 = 241, + IMX_F2_GPIO60 = 242, + IMX_F3_GPIO60 = 243, + IMX_F0_GPIO61 = 244, + IMX_F1_GPIO61 = 245, + IMX_F2_GPIO61 = 246, + IMX_F3_GPIO61 = 247, + IMX_F0_GPIO62 = 248, + IMX_F1_GPIO62 = 249, + IMX_F2_GPIO62 = 250, + IMX_F3_GPIO62 = 251, + IMX_F0_GPIO64 = 252, + IMX_F1_GPIO64 = 253, + IMX_F2_GPIO64 = 254, + IMX_F3_GPIO64 = 255, + IMX_F0_GPIO65 = 256, + IMX_F1_GPIO65 = 257, + IMX_F2_GPIO65 = 258, + IMX_F3_GPIO65 = 259, + IMX_F0_GPIO66 = 260, + IMX_F1_GPIO66 = 261, + IMX_F2_GPIO66 = 262, + IMX_F3_GPIO66 = 263, + IMX_F0_GPIO67 = 264, + IMX_F1_GPIO67 = 265, + IMX_F2_GPIO67 = 266, + IMX_F3_GPIO67 = 267, + IMX_F0_GPIO68 = 268, + IMX_F1_GPIO68 = 269, + IMX_F2_GPIO68 = 270, + IMX_F3_GPIO68 = 271, + IMX_F0_GPIO69 = 272, + IMX_F1_GPIO69 = 273, + IMX_F2_GPIO69 = 274, + IMX_F3_GPIO69 = 275, + IMX_F0_GPIO70 = 276, + IMX_F1_GPIO70 = 277, + IMX_F2_GPIO70 = 278, + IMX_F3_GPIO70 = 279, + IMX_F0_GPIO71 = 280, + IMX_F1_GPIO71 = 281, + IMX_F2_GPIO71 = 282, + IMX_F3_GPIO71 = 283, + IMX_F0_GPIO72 = 284, + IMX_F1_GPIO72 = 285, + IMX_F2_GPIO72 = 286, + IMX_F3_GPIO72 = 287, + IMX_F0_GPIO73 = 288, + IMX_F1_GPIO73 = 289, + IMX_F2_GPIO73 = 290, + IMX_F3_GPIO73 = 291, + IMX_F0_GPIO74 = 292, + IMX_F1_GPIO74 = 293, + IMX_F2_GPIO74 = 294, + IMX_F3_GPIO74 = 295, + IMX_F0_GPIO75 = 296, + IMX_F1_GPIO75 = 297, + IMX_F2_GPIO75 = 298, + IMX_F3_GPIO75 = 299, + IMX_F0_GPIO76 = 300, + IMX_F1_GPIO76 = 301, + IMX_F2_GPIO76 = 302, + IMX_F3_GPIO76 = 303, + IMX_F0_GPIO77 = 304, + IMX_F1_GPIO77 = 305, + IMX_F2_GPIO77 = 306, + IMX_F3_GPIO77 = 307, + IMX_F0_GPIO78 = 308, + IMX_F1_GPIO78 = 309, + IMX_F2_GPIO78 = 310, + IMX_F3_GPIO78 = 311, + IMX_F0_GPIO79 = 312, + IMX_F1_GPIO79 = 313, + IMX_F2_GPIO79 = 314, + IMX_F3_GPIO79 = 315, + IMX_F0_GPIO80 = 316, + IMX_F1_GPIO80 = 317, + IMX_F2_GPIO80 = 318, + IMX_F3_GPIO80 = 319, + IMX_F0_GPIO81 = 320, + IMX_F1_GPIO81 = 321, + IMX_F2_GPIO81 = 322, + IMX_F3_GPIO81 = 323, + IMX_F0_GPIO82 = 324, + IMX_F1_GPIO82 = 325, + IMX_F2_GPIO82 = 326, + IMX_F3_GPIO82 = 327, + IMX_F0_GPIO83 = 328, + IMX_F1_GPIO83 = 329, + IMX_F2_GPIO83 = 330, + IMX_F3_GPIO83 = 331, + IMX_F0_GPIO84 = 332, + IMX_F1_GPIO84 = 333, + IMX_F2_GPIO84 = 334, + IMX_F3_GPIO84 = 335, + IMX_F0_GPIO85 = 336, + IMX_F1_GPIO85 = 337, + IMX_F2_GPIO85 = 338, + IMX_F3_GPIO85 = 339, + IMX_F0_GPIO86 = 340, + IMX_F1_GPIO86 = 341, + IMX_F2_GPIO86 = 342, + IMX_F3_GPIO86 = 343, + IMX_F0_GPIO87 = 344, + IMX_F1_GPIO87 = 345, + IMX_F2_GPIO87 = 346, + IMX_F3_GPIO87 = 347, + IMX_F0_GPIO88 = 348, + IMX_F1_GPIO88 = 349, + IMX_F2_GPIO88 = 350, + IMX_F3_GPIO88 = 351, + IMX_F0_GPIO89 = 352, + IMX_F1_GPIO89 = 353, + IMX_F2_GPIO89 = 354, + IMX_F3_GPIO89 = 355, + IMX_F0_GPIO90 = 356, + IMX_F1_GPIO90 = 357, + IMX_F2_GPIO90 = 358, + IMX_F3_GPIO90 = 359, + IMX_F0_GPIO91 = 360, + IMX_F1_GPIO91 = 361, + IMX_F2_GPIO91 = 362, + IMX_F3_GPIO91 = 363, + IMX_F0_GPIO92 = 364, + IMX_F1_GPIO92 = 365, + IMX_F2_GPIO92 = 366, + IMX_F3_GPIO92 = 367, + IMX_F0_GPIO93 = 368, + IMX_F1_GPIO93 = 369, + IMX_F2_GPIO93 = 370, + IMX_F3_GPIO93 = 371, + IMX_F0_GPIO94 = 372, + IMX_F1_GPIO94 = 373, + IMX_F2_GPIO94 = 374, + IMX_F3_GPIO94 = 375, + IMX_F0_GPIO95 = 376, + IMX_F1_GPIO95 = 377, + IMX_F2_GPIO95 = 378, + IMX_F3_GPIO95 = 379, + IMX_F0_GPIO96 = 380, + IMX_F1_GPIO96 = 381, + IMX_F2_GPIO96 = 382, + IMX_F3_GPIO96 = 383, + IMX_F0_GPIO97 = 384, + IMX_F1_GPIO97 = 385, + IMX_F2_GPIO97 = 386, + IMX_F3_GPIO97 = 387, + IMX_F0_GPIO98 = 388, + IMX_F1_GPIO98 = 389, + IMX_F2_GPIO98 = 390, + IMX_F3_GPIO98 = 391, + IMX_F0_GPIO99 = 392, + IMX_F1_GPIO99 = 393, + IMX_F2_GPIO99 = 394, + IMX_F3_GPIO99 = 395, + IMX_F0_GPIO100 = 396, + IMX_F1_GPIO100 = 397, + IMX_F2_GPIO100 = 398, + IMX_F3_GPIO100 = 399, + IMX_F0_GPIO101 = 400, + IMX_F1_GPIO101 = 401, + IMX_F2_GPIO101 = 402, + IMX_F3_GPIO101 = 403, + IMX_F0_GPIO102 = 404, + IMX_F1_GPIO102 = 405, + IMX_F2_GPIO102 = 406, + IMX_F3_GPIO102 = 407, + IMX_F0_GPIO103 = 408, + IMX_F1_GPIO103 = 409, + IMX_F2_GPIO103 = 410, + IMX_F3_GPIO103 = 411, + IMX_F0_GPIO104 = 412, + IMX_F1_GPIO104 = 413, + IMX_F2_GPIO104 = 414, + IMX_F3_GPIO104 = 415, + IMX_F0_GPIO105 = 416, + IMX_F1_GPIO105 = 417, + IMX_F2_GPIO105 = 418, + IMX_F3_GPIO105 = 419, + IMX_F0_GPIO106 = 420, + IMX_F1_GPIO106 = 421, + IMX_F2_GPIO106 = 422, + IMX_F3_GPIO106 = 423, + IMX_F0_GPIO107 = 424, + IMX_F1_GPIO107 = 425, + IMX_F2_GPIO107 = 426, + IMX_F3_GPIO107 = 427, + IMX_F0_GPIO108 = 428, + IMX_F1_GPIO108 = 429, + IMX_F2_GPIO108 = 430, + IMX_F3_GPIO108 = 431, + IMX_F0_GPIO109 = 432, + IMX_F1_GPIO109 = 433, + IMX_F2_GPIO109 = 434, + IMX_F3_GPIO109 = 435, + IMX_F0_GPIO110 = 436, + IMX_F1_GPIO110 = 437, + IMX_F2_GPIO110 = 438, + IMX_F3_GPIO110 = 439, + IMX_F0_GPIO111 = 440, + IMX_F1_GPIO111 = 441, + IMX_F2_GPIO111 = 442, + IMX_F3_GPIO111 = 443, + IMX_F0_GPIO112 = 444, + IMX_F1_GPIO112 = 445, + IMX_F2_GPIO112 = 446, + IMX_F3_GPIO112 = 447, + IMX_F0_GPIO113 = 448, + IMX_F1_GPIO113 = 449, + IMX_F2_GPIO113 = 450, + IMX_F3_GPIO113 = 451, + IMX_F0_GPIO114 = 452, + IMX_F1_GPIO114 = 453, + IMX_F2_GPIO114 = 454, + IMX_F3_GPIO114 = 455, + IMX_F0_GPIO115 = 456, + IMX_F1_GPIO115 = 457, + IMX_F2_GPIO115 = 458, + IMX_F3_GPIO115 = 459, + IMX_F0_GPIO116 = 460, + IMX_F1_GPIO116 = 461, + IMX_F2_GPIO116 = 462, + IMX_F3_GPIO116 = 463, + IMX_F0_GPIO117 = 464, + IMX_F1_GPIO117 = 465, + IMX_F2_GPIO117 = 466, + IMX_F3_GPIO117 = 467, + IMX_F0_GPIO118 = 468, + IMX_F1_GPIO118 = 469, + IMX_F2_GPIO118 = 470, + IMX_F3_GPIO118 = 471, + IMX_F0_GPIO119 = 472, + IMX_F1_GPIO119 = 473, + IMX_F2_GPIO119 = 474, + IMX_F3_GPIO119 = 475, + IMX_F0_GPIO120 = 476, + IMX_F1_GPIO120 = 477, + IMX_F2_GPIO120 = 478, + IMX_F3_GPIO120 = 479, + IMX_F0_GPIO121 = 480, + IMX_F1_GPIO121 = 481, + IMX_F2_GPIO121 = 482, + IMX_F3_GPIO121 = 483, + IMX_F0_GPIO122 = 484, + IMX_F1_GPIO122 = 485, + IMX_F2_GPIO122 = 486, + IMX_F3_GPIO122 = 487, + IMX_F0_GPIO123 = 488, + IMX_F1_GPIO123 = 489, + IMX_F2_GPIO123 = 490, + IMX_F3_GPIO123 = 491, + IMX_F0_GPIO124 = 492, + IMX_F1_GPIO124 = 493, + IMX_F2_GPIO124 = 494, + IMX_F3_GPIO124 = 495, + IMX_F0_GPIO125 = 496, + IMX_F1_GPIO125 = 497, + IMX_F2_GPIO125 = 498, + IMX_F3_GPIO125 = 499, + IMX_F0_GPIO126 = 500, + IMX_F1_GPIO126 = 501, + IMX_F2_GPIO126 = 502, + IMX_F3_GPIO126 = 503, + IMX_F0_GPIO127 = 504, + IMX_F1_GPIO127 = 505, + IMX_F2_GPIO127 = 506, + IMX_F3_GPIO127 = 507, + IMX_F0_GPIO128 = 508, + IMX_F1_GPIO128 = 509, + IMX_F2_GPIO128 = 510, + IMX_F3_GPIO128 = 511, + IMX_F0_GPIO129 = 512, + IMX_F1_GPIO129 = 513, + IMX_F2_GPIO129 = 514, + IMX_F3_GPIO129 = 515, + IMX_F0_GPIO130 = 516, + IMX_F1_GPIO130 = 517, + IMX_F2_GPIO130 = 518, + IMX_F3_GPIO130 = 519, + IMX_F0_GPIO131 = 520, + IMX_F1_GPIO131 = 521, + IMX_F2_GPIO131 = 522, + IMX_F3_GPIO131 = 523, + IMX_F0_GPIO132 = 524, + IMX_F1_GPIO132 = 525, + IMX_F2_GPIO132 = 526, + IMX_F3_GPIO132 = 527, + IMX_F0_GPIO133 = 528, + IMX_F1_GPIO133 = 529, + IMX_F2_GPIO133 = 530, + IMX_F3_GPIO133 = 531, + IMX_F0_GPIO134 = 532, + IMX_F1_GPIO134 = 533, + IMX_F2_GPIO134 = 534, + IMX_F3_GPIO134 = 535, + IMX_F0_GPIO135 = 536, + IMX_F1_GPIO135 = 537, + IMX_F2_GPIO135 = 538, + IMX_F3_GPIO135 = 539, + IMX_F0_GPIO136 = 540, + IMX_F1_GPIO136 = 541, + IMX_F2_GPIO136 = 542, + IMX_F3_GPIO136 = 543, + IMX_F0_GPIO137 = 544, + IMX_F1_GPIO137 = 545, + IMX_F2_GPIO137 = 546, + IMX_F3_GPIO137 = 547, + IMX_F0_GPIO138 = 548, + IMX_F1_GPIO138 = 549, + IMX_F2_GPIO138 = 550, + IMX_F3_GPIO138 = 551, + IMX_F0_GPIO139 = 552, + IMX_F1_GPIO139 = 553, + IMX_F2_GPIO139 = 554, + IMX_F3_GPIO139 = 555, + IMX_F0_GPIO140 = 556, + IMX_F1_GPIO140 = 557, + IMX_F2_GPIO140 = 558, + IMX_F3_GPIO140 = 559, + IMX_F0_GPIO141 = 560, + IMX_F1_GPIO141 = 561, + IMX_F2_GPIO141 = 562, + IMX_F3_GPIO141 = 563, + IMX_F0_GPIO142 = 564, + IMX_F1_GPIO142 = 565, + IMX_F2_GPIO142 = 566, + IMX_F3_GPIO142 = 567, + IMX_F0_GPIO143 = 568, + IMX_F1_GPIO143 = 569, + IMX_F2_GPIO143 = 570, + IMX_F3_GPIO143 = 571, + IMX_F0_GPIO144 = 572, + IMX_F1_GPIO144 = 573, + IMX_F2_GPIO144 = 574, + IMX_F3_GPIO144 = 575, +}; + +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 amd_pref_core { + AMD_PREF_CORE_UNKNOWN = 0, + AMD_PREF_CORE_SUPPORTED = 1, + AMD_PREF_CORE_UNSUPPORTED = 2, +}; + +enum amd_pstate_mode { + AMD_PSTATE_UNDEFINED = 0, + AMD_PSTATE_DISABLE = 1, + AMD_PSTATE_PASSIVE = 2, + AMD_PSTATE_ACTIVE = 3, + AMD_PSTATE_GUIDED = 4, + AMD_PSTATE_MAX = 5, +}; + +enum aper_size_type { + U8_APER_SIZE = 0, + U16_APER_SIZE = 1, + U32_APER_SIZE = 2, + LVL2_APER_SIZE = 3, + FIXED_APER_SIZE = 4, +}; + +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 apparmor_notif_type { + APPARMOR_NOTIF_RESP_PERM = 0, + APPARMOR_NOTIF_CANCEL = 1, + APPARMOR_NOTIF_INTERUPT = 2, + APPARMOR_NOTIF_ALIVE = 3, + APPARMOR_NOTIF_OP = 4, + APPARMOR_NOTIF_RESP_NAME = 5, +}; + +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, +}; + +enum as3711_su2_fbprot { + AS3711_SU2_LX_SD4 = 0, + AS3711_SU2_GPIO2 = 1, + AS3711_SU2_GPIO3 = 2, + AS3711_SU2_GPIO4 = 3, +}; + +enum as3711_su2_feedback { + AS3711_SU2_VOLTAGE = 0, + AS3711_SU2_CURR1 = 1, + AS3711_SU2_CURR2 = 2, + AS3711_SU2_CURR3 = 3, + AS3711_SU2_CURR_AUTO = 4, +}; + +enum asn1_class { + ASN1_UNIV = 0, + ASN1_APPL = 1, + ASN1_CONT = 2, + ASN1_PRIV = 3, +}; + +enum asn1_method { + ASN1_PRIM = 0, + ASN1_CONS = 1, +}; + +enum asn1_opcode { + ASN1_OP_MATCH = 0, + ASN1_OP_MATCH_OR_SKIP = 1, + ASN1_OP_MATCH_ACT = 2, + ASN1_OP_MATCH_ACT_OR_SKIP = 3, + ASN1_OP_MATCH_JUMP = 4, + ASN1_OP_MATCH_JUMP_OR_SKIP = 5, + ASN1_OP_MATCH_ANY = 8, + ASN1_OP_MATCH_ANY_OR_SKIP = 9, + ASN1_OP_MATCH_ANY_ACT = 10, + ASN1_OP_MATCH_ANY_ACT_OR_SKIP = 11, + ASN1_OP_COND_MATCH_OR_SKIP = 17, + ASN1_OP_COND_MATCH_ACT_OR_SKIP = 19, + ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 21, + ASN1_OP_COND_MATCH_ANY = 24, + ASN1_OP_COND_MATCH_ANY_OR_SKIP = 25, + ASN1_OP_COND_MATCH_ANY_ACT = 26, + ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP = 27, + ASN1_OP_COND_FAIL = 28, + ASN1_OP_COMPLETE = 29, + ASN1_OP_ACT = 30, + ASN1_OP_MAYBE_ACT = 31, + ASN1_OP_END_SEQ = 32, + ASN1_OP_END_SET = 33, + ASN1_OP_END_SEQ_OF = 34, + ASN1_OP_END_SET_OF = 35, + ASN1_OP_END_SEQ_ACT = 36, + ASN1_OP_END_SET_ACT = 37, + ASN1_OP_END_SEQ_OF_ACT = 38, + ASN1_OP_END_SET_OF_ACT = 39, + ASN1_OP_RETURN = 40, + ASN1_OP__NR = 41, +}; + +enum asn1_tag { + ASN1_EOC = 0, + ASN1_BOOL = 1, + ASN1_INT = 2, + ASN1_BTS = 3, + ASN1_OTS = 4, + ASN1_NULL = 5, + ASN1_OID = 6, + ASN1_ODE = 7, + ASN1_EXT = 8, + ASN1_REAL = 9, + ASN1_ENUM = 10, + ASN1_EPDV = 11, + ASN1_UTF8STR = 12, + ASN1_RELOID = 13, + ASN1_SEQ = 16, + ASN1_SET = 17, + ASN1_NUMSTR = 18, + ASN1_PRNSTR = 19, + ASN1_TEXSTR = 20, + ASN1_VIDSTR = 21, + ASN1_IA5STR = 22, + ASN1_UNITIM = 23, + ASN1_GENTIM = 24, + ASN1_GRASTR = 25, + ASN1_VISSTR = 26, + ASN1_GENSTR = 27, + ASN1_UNISTR = 28, + ASN1_CHRSTR = 29, + ASN1_BMPSTR = 30, + ASN1_LONG_TAG = 31, +}; + +enum assoc_array_walk_status { + assoc_array_walk_tree_empty = 0, + assoc_array_walk_found_terminal_node = 1, + assoc_array_walk_found_wrong_shortcut = 2, +}; + +enum asymmetric_payload_bits { + asym_crypto = 0, + asym_subtype = 1, + asym_key_ids = 2, + asym_auth = 3, +}; + +enum ata_completion_errors { + AC_ERR_OK = 0, + AC_ERR_DEV = 1, + AC_ERR_HSM = 2, + AC_ERR_TIMEOUT = 4, + AC_ERR_MEDIA = 8, + AC_ERR_ATA_BUS = 16, + AC_ERR_HOST_BUS = 32, + AC_ERR_SYSTEM = 64, + AC_ERR_INVALID = 128, + AC_ERR_OTHER = 256, + AC_ERR_NODEV_HINT = 512, + AC_ERR_NCQ = 1024, +}; + +enum ata_dev_iter_mode { + ATA_DITER_ENABLED = 0, + ATA_DITER_ENABLED_REVERSE = 1, + ATA_DITER_ALL = 2, + ATA_DITER_ALL_REVERSE = 3, +}; + +enum ata_link_iter_mode { + ATA_LITER_EDGE = 0, + ATA_LITER_HOST_FIRST = 1, + ATA_LITER_PMP_FIRST = 2, +}; + +enum ata_lpm_hints { + ATA_LPM_EMPTY = 1, + ATA_LPM_HIPM = 2, + ATA_LPM_WAKE_ONLY = 4, +}; + +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 ata_prot_flags { + ATA_PROT_FLAG_PIO = 1, + ATA_PROT_FLAG_DMA = 2, + ATA_PROT_FLAG_NCQ = 4, + ATA_PROT_FLAG_ATAPI = 8, + ATA_PROT_UNKNOWN = 255, + ATA_PROT_NODATA = 0, + ATA_PROT_PIO = 1, + ATA_PROT_DMA = 2, + ATA_PROT_NCQ_NODATA = 4, + ATA_PROT_NCQ = 6, + ATAPI_PROT_NODATA = 8, + ATAPI_PROT_PIO = 9, + ATAPI_PROT_DMA = 10, +}; + +enum ata_quirks { + __ATA_QUIRK_DIAGNOSTIC = 0, + __ATA_QUIRK_NODMA = 1, + __ATA_QUIRK_NONCQ = 2, + __ATA_QUIRK_MAX_SEC_128 = 3, + __ATA_QUIRK_BROKEN_HPA = 4, + __ATA_QUIRK_DISABLE = 5, + __ATA_QUIRK_HPA_SIZE = 6, + __ATA_QUIRK_IVB = 7, + __ATA_QUIRK_STUCK_ERR = 8, + __ATA_QUIRK_BRIDGE_OK = 9, + __ATA_QUIRK_ATAPI_MOD16_DMA = 10, + __ATA_QUIRK_FIRMWARE_WARN = 11, + __ATA_QUIRK_1_5_GBPS = 12, + __ATA_QUIRK_NOSETXFER = 13, + __ATA_QUIRK_BROKEN_FPDMA_AA = 14, + __ATA_QUIRK_DUMP_ID = 15, + __ATA_QUIRK_MAX_SEC_LBA48 = 16, + __ATA_QUIRK_ATAPI_DMADIR = 17, + __ATA_QUIRK_NO_NCQ_TRIM = 18, + __ATA_QUIRK_NOLPM = 19, + __ATA_QUIRK_WD_BROKEN_LPM = 20, + __ATA_QUIRK_ZERO_AFTER_TRIM = 21, + __ATA_QUIRK_NO_DMA_LOG = 22, + __ATA_QUIRK_NOTRIM = 23, + __ATA_QUIRK_MAX_SEC_1024 = 24, + __ATA_QUIRK_MAX_TRIM_128M = 25, + __ATA_QUIRK_NO_NCQ_ON_ATI = 26, + __ATA_QUIRK_NO_LPM_ON_ATI = 27, + __ATA_QUIRK_NO_ID_DEV_LOG = 28, + __ATA_QUIRK_NO_LOG_DIR = 29, + __ATA_QUIRK_NO_FUA = 30, + __ATA_QUIRK_MAX = 31, +}; + +enum ata_xfer_mask { + ATA_MASK_PIO = 127, + ATA_MASK_MWDMA = 3968, + ATA_MASK_UDMA = 1044480, +}; + +enum atom_native_id { + cmt_native_id = 2, + skt_native_id = 3, +}; + +enum audit_mode { + AUDIT_NORMAL = 0, + AUDIT_QUIET_DENIED = 1, + AUDIT_QUIET = 2, + AUDIT_NOQUIET = 3, + AUDIT_ALL = 4, +}; + +enum audit_nfcfgop { + AUDIT_XT_OP_REGISTER = 0, + AUDIT_XT_OP_REPLACE = 1, + AUDIT_XT_OP_UNREGISTER = 2, + AUDIT_NFT_OP_TABLE_REGISTER = 3, + AUDIT_NFT_OP_TABLE_UNREGISTER = 4, + AUDIT_NFT_OP_CHAIN_REGISTER = 5, + AUDIT_NFT_OP_CHAIN_UNREGISTER = 6, + AUDIT_NFT_OP_RULE_REGISTER = 7, + AUDIT_NFT_OP_RULE_UNREGISTER = 8, + AUDIT_NFT_OP_SET_REGISTER = 9, + AUDIT_NFT_OP_SET_UNREGISTER = 10, + AUDIT_NFT_OP_SETELEM_REGISTER = 11, + AUDIT_NFT_OP_SETELEM_UNREGISTER = 12, + AUDIT_NFT_OP_GEN_REGISTER = 13, + AUDIT_NFT_OP_OBJ_REGISTER = 14, + AUDIT_NFT_OP_OBJ_UNREGISTER = 15, + AUDIT_NFT_OP_OBJ_RESET = 16, + AUDIT_NFT_OP_FLOWTABLE_REGISTER = 17, + AUDIT_NFT_OP_FLOWTABLE_UNREGISTER = 18, + AUDIT_NFT_OP_SETELEM_RESET = 19, + AUDIT_NFT_OP_RULE_RESET = 20, + AUDIT_NFT_OP_INVALID = 21, +}; + +enum audit_nlgrps { + AUDIT_NLGRP_NONE = 0, + AUDIT_NLGRP_READLOG = 1, + __AUDIT_NLGRP_MAX = 2, +}; + +enum audit_ntp_type { + AUDIT_NTP_OFFSET = 0, + AUDIT_NTP_FREQ = 1, + AUDIT_NTP_STATUS = 2, + AUDIT_NTP_TAI = 3, + AUDIT_NTP_TICK = 4, + AUDIT_NTP_ADJUST = 5, + AUDIT_NTP_NVALS = 6, +}; + +enum audit_state { + AUDIT_STATE_DISABLED = 0, + AUDIT_STATE_BUILD = 1, + AUDIT_STATE_RECORD = 2, +}; + +enum audit_type { + AUDIT_APPARMOR_AUDIT = 0, + AUDIT_APPARMOR_ALLOWED = 1, + AUDIT_APPARMOR_DENIED = 2, + AUDIT_APPARMOR_HINT = 3, + AUDIT_APPARMOR_STATUS = 4, + AUDIT_APPARMOR_ERROR = 5, + AUDIT_APPARMOR_KILL = 6, + AUDIT_APPARMOR_USER = 7, + AUDIT_APPARMOR_AUTO = 8, +}; + +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, +}; + +enum axp20x_variants { + AXP152_ID = 0, + AXP192_ID = 1, + AXP202_ID = 2, + AXP209_ID = 3, + AXP221_ID = 4, + AXP223_ID = 5, + AXP288_ID = 6, + AXP313A_ID = 7, + AXP323_ID = 8, + AXP717_ID = 9, + AXP803_ID = 10, + AXP806_ID = 11, + AXP809_ID = 12, + AXP813_ID = 13, + AXP15060_ID = 14, + NR_AXP20X_VARIANTS = 15, +}; + +enum backlight_scale { + BACKLIGHT_SCALE_UNKNOWN = 0, + BACKLIGHT_SCALE_LINEAR = 1, + BACKLIGHT_SCALE_NON_LINEAR = 2, +}; + +enum backlight_type { + BACKLIGHT_RAW = 1, + BACKLIGHT_PLATFORM = 2, + BACKLIGHT_FIRMWARE = 3, + BACKLIGHT_TYPE_MAX = 4, +}; + +enum backlight_update_reason { + BACKLIGHT_UPDATE_HOTKEY = 0, + BACKLIGHT_UPDATE_SYSFS = 1, +}; + +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, +}; + +enum behavior { + EXCLUSIVE = 0, + SHARED = 1, + DROP = 2, +}; + +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 bhi_mitigations { + BHI_MITIGATION_OFF = 0, + BHI_MITIGATION_ON = 1, + BHI_MITIGATION_VMEXIT_ONLY = 2, +}; + +enum bio_merge_status { + BIO_MERGE_OK = 0, + BIO_MERGE_NONE = 1, + BIO_MERGE_FAILED = 2, +}; + +enum bio_post_read_step { + STEP_INITIAL = 0, + STEP_DECRYPT = 1, + STEP_VERITY = 2, + STEP_MAX = 3, +}; + +enum bios_platform_class { + BIOS_CLIENT = 0, + BIOS_SERVER = 1, +}; + +enum bip_flags { + BIP_BLOCK_INTEGRITY = 1, + BIP_MAPPED_INTEGRITY = 2, + BIP_DISK_NOCHECK = 4, + BIP_IP_CHECKSUM = 8, + BIP_COPY_USER = 16, + BIP_CHECK_GUARD = 32, + BIP_CHECK_REFTAG = 64, + BIP_CHECK_APPTAG = 128, +}; + +enum bitmap_page_attr { + BITMAP_PAGE_DIRTY = 0, + BITMAP_PAGE_PENDING = 1, + BITMAP_PAGE_NEEDWRITE = 2, +}; + +enum bitmap_state { + BITMAP_STALE = 1, + BITMAP_WRITE_ERROR = 2, + BITMAP_HOSTENDIAN = 15, +}; + +enum blacklist_hash_type { + BLACKLIST_HASH_X509_TBS = 1, + BLACKLIST_HASH_BINARY = 2, +}; + +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 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 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 blk_default_limits { + BLK_MAX_SEGMENTS = 128, + BLK_SAFE_MAX_SECTORS = 255, + BLK_MAX_SEGMENT_SIZE = 65536, + BLK_SEG_BOUNDARY_MASK = 4294967295, +}; + +enum blk_eh_timer_return { + BLK_EH_DONE = 0, + BLK_EH_RESET_TIMER = 1, +}; + +enum blk_integrity_checksum { + BLK_INTEGRITY_CSUM_NONE = 0, + BLK_INTEGRITY_CSUM_IP = 1, + BLK_INTEGRITY_CSUM_CRC = 2, + BLK_INTEGRITY_CSUM_CRC64 = 3, +} __attribute__((mode(byte))); + +enum blk_integrity_flags { + BLK_INTEGRITY_NOVERIFY = 1, + BLK_INTEGRITY_NOGENERATE = 2, + BLK_INTEGRITY_DEVICE_CAPABLE = 4, + BLK_INTEGRITY_REF_TAG = 8, + BLK_INTEGRITY_STACKED = 16, +}; + +enum blk_req_status { + REQ_PROCESSING = 0, + REQ_WAITING = 1, + REQ_DONE = 2, + REQ_ERROR = 3, + REQ_EOPNOTSUPP = 4, +}; + +enum blk_unique_id { + BLK_UID_T10 = 1, + BLK_UID_EUI64 = 2, + BLK_UID_NAA = 3, +}; + +enum blk_zone_cond { + BLK_ZONE_COND_NOT_WP = 0, + BLK_ZONE_COND_EMPTY = 1, + BLK_ZONE_COND_IMP_OPEN = 2, + BLK_ZONE_COND_EXP_OPEN = 3, + BLK_ZONE_COND_CLOSED = 4, + BLK_ZONE_COND_READONLY = 13, + BLK_ZONE_COND_FULL = 14, + BLK_ZONE_COND_OFFLINE = 15, +}; + +enum blk_zone_report_flags { + BLK_ZONE_REP_CAPACITY = 1, +}; + +enum blk_zone_type { + BLK_ZONE_TYPE_CONVENTIONAL = 1, + BLK_ZONE_TYPE_SEQWRITE_REQ = 2, + BLK_ZONE_TYPE_SEQWRITE_PREF = 3, +}; + +enum blkg_iostat_type { + BLKG_IOSTAT_READ = 0, + BLKG_IOSTAT_WRITE = 1, + BLKG_IOSTAT_DISCARD = 2, + BLKG_IOSTAT_NR = 3, +}; + +enum blkg_rwstat_type { + BLKG_RWSTAT_READ = 0, + BLKG_RWSTAT_WRITE = 1, + BLKG_RWSTAT_SYNC = 2, + BLKG_RWSTAT_ASYNC = 3, + BLKG_RWSTAT_DISCARD = 4, + BLKG_RWSTAT_NR = 5, + BLKG_RWSTAT_TOTAL = 5, +}; + +enum blkif_state { + BLKIF_STATE_DISCONNECTED = 0, + BLKIF_STATE_CONNECTED = 1, + BLKIF_STATE_SUSPENDED = 2, + BLKIF_STATE_ERROR = 3, +}; + +enum blktrace_act { + __BLK_TA_QUEUE = 1, + __BLK_TA_BACKMERGE = 2, + __BLK_TA_FRONTMERGE = 3, + __BLK_TA_GETRQ = 4, + __BLK_TA_SLEEPRQ = 5, + __BLK_TA_REQUEUE = 6, + __BLK_TA_ISSUE = 7, + __BLK_TA_COMPLETE = 8, + __BLK_TA_PLUG = 9, + __BLK_TA_UNPLUG_IO = 10, + __BLK_TA_UNPLUG_TIMER = 11, + __BLK_TA_INSERT = 12, + __BLK_TA_SPLIT = 13, + __BLK_TA_BOUNCE = 14, + __BLK_TA_REMAP = 15, + __BLK_TA_ABORT = 16, + __BLK_TA_DRV_DATA = 17, + __BLK_TA_CGROUP = 256, +}; + +enum 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 bootmem_type { + MEMORY_HOTPLUG_MIN_BOOTMEM_TYPE = 1, + SECTION_INFO = 1, + MIX_SECTION_INFO = 2, + NODE_INFO = 3, + MEMORY_HOTPLUG_MAX_BOOTMEM_TYPE = 3, +}; + +enum bp_state { + BP_DONE = 0, + BP_WAIT = 1, + BP_EAGAIN = 2, + BP_ECANCELED = 3, +}; + +enum bp_type_idx { + TYPE_INST = 0, + TYPE_DATA = 0, + TYPE_MAX = 1, +}; + +enum bpf_access_src { + ACCESS_DIRECT = 1, + ACCESS_HELPER = 2, +}; + +enum bpf_access_type { + BPF_READ = 1, + BPF_WRITE = 2, +}; + +enum bpf_addr_space_cast { + BPF_ADDR_SPACE_CAST = 1, +}; + +enum bpf_adj_room_mode { + BPF_ADJ_ROOM_NET = 0, + BPF_ADJ_ROOM_MAC = 1, +}; + +enum bpf_arg_type { + ARG_DONTCARE = 0, + ARG_CONST_MAP_PTR = 1, + ARG_PTR_TO_MAP_KEY = 2, + ARG_PTR_TO_MAP_VALUE = 3, + ARG_PTR_TO_MEM = 4, + ARG_PTR_TO_ARENA = 5, + ARG_CONST_SIZE = 6, + ARG_CONST_SIZE_OR_ZERO = 7, + ARG_PTR_TO_CTX = 8, + ARG_ANYTHING = 9, + ARG_PTR_TO_SPIN_LOCK = 10, + ARG_PTR_TO_SOCK_COMMON = 11, + ARG_PTR_TO_SOCKET = 12, + ARG_PTR_TO_BTF_ID = 13, + ARG_PTR_TO_RINGBUF_MEM = 14, + ARG_CONST_ALLOC_SIZE_OR_ZERO = 15, + ARG_PTR_TO_BTF_ID_SOCK_COMMON = 16, + ARG_PTR_TO_PERCPU_BTF_ID = 17, + ARG_PTR_TO_FUNC = 18, + ARG_PTR_TO_STACK = 19, + ARG_PTR_TO_CONST_STR = 20, + ARG_PTR_TO_TIMER = 21, + ARG_KPTR_XCHG_DEST = 22, + ARG_PTR_TO_DYNPTR = 23, + __BPF_ARG_TYPE_MAX = 24, + ARG_PTR_TO_MAP_VALUE_OR_NULL = 259, + ARG_PTR_TO_MEM_OR_NULL = 260, + ARG_PTR_TO_CTX_OR_NULL = 264, + ARG_PTR_TO_SOCKET_OR_NULL = 268, + ARG_PTR_TO_STACK_OR_NULL = 275, + ARG_PTR_TO_BTF_ID_OR_NULL = 269, + ARG_PTR_TO_UNINIT_MEM = 67141636, + ARG_PTR_TO_FIXED_SIZE_MEM = 262148, + __BPF_ARG_TYPE_LIMIT = 134217727, +}; + +enum bpf_async_type { + BPF_ASYNC_TYPE_TIMER = 0, + BPF_ASYNC_TYPE_WQ = 1, +}; + +enum bpf_attach_type { + BPF_CGROUP_INET_INGRESS = 0, + BPF_CGROUP_INET_EGRESS = 1, + BPF_CGROUP_INET_SOCK_CREATE = 2, + BPF_CGROUP_SOCK_OPS = 3, + BPF_SK_SKB_STREAM_PARSER = 4, + BPF_SK_SKB_STREAM_VERDICT = 5, + BPF_CGROUP_DEVICE = 6, + BPF_SK_MSG_VERDICT = 7, + BPF_CGROUP_INET4_BIND = 8, + BPF_CGROUP_INET6_BIND = 9, + BPF_CGROUP_INET4_CONNECT = 10, + BPF_CGROUP_INET6_CONNECT = 11, + BPF_CGROUP_INET4_POST_BIND = 12, + BPF_CGROUP_INET6_POST_BIND = 13, + BPF_CGROUP_UDP4_SENDMSG = 14, + BPF_CGROUP_UDP6_SENDMSG = 15, + BPF_LIRC_MODE2 = 16, + BPF_FLOW_DISSECTOR = 17, + BPF_CGROUP_SYSCTL = 18, + BPF_CGROUP_UDP4_RECVMSG = 19, + BPF_CGROUP_UDP6_RECVMSG = 20, + BPF_CGROUP_GETSOCKOPT = 21, + BPF_CGROUP_SETSOCKOPT = 22, + BPF_TRACE_RAW_TP = 23, + BPF_TRACE_FENTRY = 24, + BPF_TRACE_FEXIT = 25, + BPF_MODIFY_RETURN = 26, + BPF_LSM_MAC = 27, + BPF_TRACE_ITER = 28, + BPF_CGROUP_INET4_GETPEERNAME = 29, + BPF_CGROUP_INET6_GETPEERNAME = 30, + BPF_CGROUP_INET4_GETSOCKNAME = 31, + BPF_CGROUP_INET6_GETSOCKNAME = 32, + BPF_XDP_DEVMAP = 33, + BPF_CGROUP_INET_SOCK_RELEASE = 34, + BPF_XDP_CPUMAP = 35, + BPF_SK_LOOKUP = 36, + BPF_XDP = 37, + BPF_SK_SKB_VERDICT = 38, + BPF_SK_REUSEPORT_SELECT = 39, + BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, + BPF_PERF_EVENT = 41, + BPF_TRACE_KPROBE_MULTI = 42, + BPF_LSM_CGROUP = 43, + BPF_STRUCT_OPS = 44, + BPF_NETFILTER = 45, + BPF_TCX_INGRESS = 46, + BPF_TCX_EGRESS = 47, + BPF_TRACE_UPROBE_MULTI = 48, + BPF_CGROUP_UNIX_CONNECT = 49, + BPF_CGROUP_UNIX_SENDMSG = 50, + BPF_CGROUP_UNIX_RECVMSG = 51, + BPF_CGROUP_UNIX_GETPEERNAME = 52, + BPF_CGROUP_UNIX_GETSOCKNAME = 53, + BPF_NETKIT_PRIMARY = 54, + BPF_NETKIT_PEER = 55, + BPF_TRACE_KPROBE_SESSION = 56, + BPF_TRACE_UPROBE_SESSION = 57, + __MAX_BPF_ATTACH_TYPE = 58, +}; + +enum bpf_audit { + BPF_AUDIT_LOAD = 0, + BPF_AUDIT_UNLOAD = 1, + BPF_AUDIT_MAX = 2, +}; + +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_cgroup_storage_type { + BPF_CGROUP_STORAGE_SHARED = 0, + BPF_CGROUP_STORAGE_PERCPU = 1, + __BPF_CGROUP_STORAGE_MAX = 2, +}; + +enum bpf_check_mtu_flags { + BPF_MTU_CHK_SEGS = 1, +}; + +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_cmd { + BPF_MAP_CREATE = 0, + BPF_MAP_LOOKUP_ELEM = 1, + BPF_MAP_UPDATE_ELEM = 2, + BPF_MAP_DELETE_ELEM = 3, + BPF_MAP_GET_NEXT_KEY = 4, + BPF_PROG_LOAD = 5, + BPF_OBJ_PIN = 6, + BPF_OBJ_GET = 7, + BPF_PROG_ATTACH = 8, + BPF_PROG_DETACH = 9, + BPF_PROG_TEST_RUN = 10, + BPF_PROG_RUN = 10, + BPF_PROG_GET_NEXT_ID = 11, + BPF_MAP_GET_NEXT_ID = 12, + BPF_PROG_GET_FD_BY_ID = 13, + BPF_MAP_GET_FD_BY_ID = 14, + BPF_OBJ_GET_INFO_BY_FD = 15, + BPF_PROG_QUERY = 16, + BPF_RAW_TRACEPOINT_OPEN = 17, + BPF_BTF_LOAD = 18, + BPF_BTF_GET_FD_BY_ID = 19, + BPF_TASK_FD_QUERY = 20, + BPF_MAP_LOOKUP_AND_DELETE_ELEM = 21, + BPF_MAP_FREEZE = 22, + BPF_BTF_GET_NEXT_ID = 23, + BPF_MAP_LOOKUP_BATCH = 24, + BPF_MAP_LOOKUP_AND_DELETE_BATCH = 25, + BPF_MAP_UPDATE_BATCH = 26, + BPF_MAP_DELETE_BATCH = 27, + BPF_LINK_CREATE = 28, + BPF_LINK_UPDATE = 29, + BPF_LINK_GET_FD_BY_ID = 30, + BPF_LINK_GET_NEXT_ID = 31, + BPF_ENABLE_STATS = 32, + BPF_ITER_CREATE = 33, + BPF_LINK_DETACH = 34, + BPF_PROG_BIND_MAP = 35, + BPF_TOKEN_CREATE = 36, + __MAX_BPF_CMD = 37, +}; + +enum bpf_cond_pseudo_jmp { + BPF_MAY_GOTO = 0, +}; + +enum bpf_core_relo_kind { + BPF_CORE_FIELD_BYTE_OFFSET = 0, + BPF_CORE_FIELD_BYTE_SIZE = 1, + BPF_CORE_FIELD_EXISTS = 2, + BPF_CORE_FIELD_SIGNED = 3, + BPF_CORE_FIELD_LSHIFT_U64 = 4, + BPF_CORE_FIELD_RSHIFT_U64 = 5, + BPF_CORE_TYPE_ID_LOCAL = 6, + BPF_CORE_TYPE_ID_TARGET = 7, + BPF_CORE_TYPE_EXISTS = 8, + BPF_CORE_TYPE_SIZE = 9, + BPF_CORE_ENUMVAL_EXISTS = 10, + BPF_CORE_ENUMVAL_VALUE = 11, + BPF_CORE_TYPE_MATCHES = 12, +}; + +enum bpf_dynptr_type { + BPF_DYNPTR_TYPE_INVALID = 0, + BPF_DYNPTR_TYPE_LOCAL = 1, + BPF_DYNPTR_TYPE_RINGBUF = 2, + BPF_DYNPTR_TYPE_SKB = 3, + BPF_DYNPTR_TYPE_XDP = 4, +}; + +enum bpf_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_hdr_start_off { + BPF_HDR_START_MAC = 0, + BPF_HDR_START_NET = 1, +}; + +enum bpf_iter_feature { + BPF_ITER_RESCHED = 1, +}; + +enum bpf_iter_state { + BPF_ITER_STATE_INVALID = 0, + BPF_ITER_STATE_ACTIVE = 1, + BPF_ITER_STATE_DRAINED = 2, +}; + +enum bpf_iter_task_type { + BPF_TASK_ITER_ALL = 0, + BPF_TASK_ITER_TID = 1, + BPF_TASK_ITER_TGID = 2, +}; + +enum bpf_jit_poke_reason { + BPF_POKE_REASON_TAIL_CALL = 0, +}; + +enum bpf_kfunc_flags { + BPF_F_PAD_ZEROS = 1, +}; + +enum bpf_link_type { + BPF_LINK_TYPE_UNSPEC = 0, + BPF_LINK_TYPE_RAW_TRACEPOINT = 1, + BPF_LINK_TYPE_TRACING = 2, + BPF_LINK_TYPE_CGROUP = 3, + BPF_LINK_TYPE_ITER = 4, + BPF_LINK_TYPE_NETNS = 5, + BPF_LINK_TYPE_XDP = 6, + BPF_LINK_TYPE_PERF_EVENT = 7, + BPF_LINK_TYPE_KPROBE_MULTI = 8, + BPF_LINK_TYPE_STRUCT_OPS = 9, + BPF_LINK_TYPE_NETFILTER = 10, + BPF_LINK_TYPE_TCX = 11, + BPF_LINK_TYPE_UPROBE_MULTI = 12, + BPF_LINK_TYPE_NETKIT = 13, + BPF_LINK_TYPE_SOCKMAP = 14, + __MAX_BPF_LINK_TYPE = 15, +}; + +enum bpf_lru_list_type { + BPF_LRU_LIST_T_ACTIVE = 0, + BPF_LRU_LIST_T_INACTIVE = 1, + BPF_LRU_LIST_T_FREE = 2, + BPF_LRU_LOCAL_LIST_T_FREE = 3, + BPF_LRU_LOCAL_LIST_T_PENDING = 4, +}; + +enum bpf_lwt_encap_mode { + BPF_LWT_ENCAP_SEG6 = 0, + BPF_LWT_ENCAP_SEG6_INLINE = 1, + BPF_LWT_ENCAP_IP = 2, +}; + +enum bpf_map_type { + BPF_MAP_TYPE_UNSPEC = 0, + BPF_MAP_TYPE_HASH = 1, + BPF_MAP_TYPE_ARRAY = 2, + BPF_MAP_TYPE_PROG_ARRAY = 3, + BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4, + BPF_MAP_TYPE_PERCPU_HASH = 5, + BPF_MAP_TYPE_PERCPU_ARRAY = 6, + BPF_MAP_TYPE_STACK_TRACE = 7, + BPF_MAP_TYPE_CGROUP_ARRAY = 8, + BPF_MAP_TYPE_LRU_HASH = 9, + BPF_MAP_TYPE_LRU_PERCPU_HASH = 10, + BPF_MAP_TYPE_LPM_TRIE = 11, + BPF_MAP_TYPE_ARRAY_OF_MAPS = 12, + BPF_MAP_TYPE_HASH_OF_MAPS = 13, + BPF_MAP_TYPE_DEVMAP = 14, + BPF_MAP_TYPE_SOCKMAP = 15, + BPF_MAP_TYPE_CPUMAP = 16, + BPF_MAP_TYPE_XSKMAP = 17, + BPF_MAP_TYPE_SOCKHASH = 18, + BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19, + BPF_MAP_TYPE_CGROUP_STORAGE = 19, + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21, + BPF_MAP_TYPE_QUEUE = 22, + BPF_MAP_TYPE_STACK = 23, + BPF_MAP_TYPE_SK_STORAGE = 24, + BPF_MAP_TYPE_DEVMAP_HASH = 25, + BPF_MAP_TYPE_STRUCT_OPS = 26, + BPF_MAP_TYPE_RINGBUF = 27, + BPF_MAP_TYPE_INODE_STORAGE = 28, + BPF_MAP_TYPE_TASK_STORAGE = 29, + BPF_MAP_TYPE_BLOOM_FILTER = 30, + BPF_MAP_TYPE_USER_RINGBUF = 31, + BPF_MAP_TYPE_CGRP_STORAGE = 32, + BPF_MAP_TYPE_ARENA = 33, + __MAX_BPF_MAP_TYPE = 34, +}; + +enum bpf_netdev_command { + XDP_SETUP_PROG = 0, + XDP_SETUP_PROG_HW = 1, + BPF_OFFLOAD_MAP_ALLOC = 2, + BPF_OFFLOAD_MAP_FREE = 3, + XDP_SETUP_XSK_POOL = 4, +}; + +enum bpf_perf_event_type { + BPF_PERF_EVENT_UNSPEC = 0, + BPF_PERF_EVENT_UPROBE = 1, + BPF_PERF_EVENT_URETPROBE = 2, + BPF_PERF_EVENT_KPROBE = 3, + BPF_PERF_EVENT_KRETPROBE = 4, + BPF_PERF_EVENT_TRACEPOINT = 5, + BPF_PERF_EVENT_EVENT = 6, +}; + +enum bpf_prog_type { + BPF_PROG_TYPE_UNSPEC = 0, + BPF_PROG_TYPE_SOCKET_FILTER = 1, + BPF_PROG_TYPE_KPROBE = 2, + BPF_PROG_TYPE_SCHED_CLS = 3, + BPF_PROG_TYPE_SCHED_ACT = 4, + BPF_PROG_TYPE_TRACEPOINT = 5, + BPF_PROG_TYPE_XDP = 6, + BPF_PROG_TYPE_PERF_EVENT = 7, + BPF_PROG_TYPE_CGROUP_SKB = 8, + BPF_PROG_TYPE_CGROUP_SOCK = 9, + BPF_PROG_TYPE_LWT_IN = 10, + BPF_PROG_TYPE_LWT_OUT = 11, + BPF_PROG_TYPE_LWT_XMIT = 12, + BPF_PROG_TYPE_SOCK_OPS = 13, + BPF_PROG_TYPE_SK_SKB = 14, + BPF_PROG_TYPE_CGROUP_DEVICE = 15, + BPF_PROG_TYPE_SK_MSG = 16, + BPF_PROG_TYPE_RAW_TRACEPOINT = 17, + BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18, + BPF_PROG_TYPE_LWT_SEG6LOCAL = 19, + BPF_PROG_TYPE_LIRC_MODE2 = 20, + BPF_PROG_TYPE_SK_REUSEPORT = 21, + BPF_PROG_TYPE_FLOW_DISSECTOR = 22, + BPF_PROG_TYPE_CGROUP_SYSCTL = 23, + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24, + BPF_PROG_TYPE_CGROUP_SOCKOPT = 25, + BPF_PROG_TYPE_TRACING = 26, + BPF_PROG_TYPE_STRUCT_OPS = 27, + BPF_PROG_TYPE_EXT = 28, + BPF_PROG_TYPE_LSM = 29, + BPF_PROG_TYPE_SK_LOOKUP = 30, + BPF_PROG_TYPE_SYSCALL = 31, + BPF_PROG_TYPE_NETFILTER = 32, + __MAX_BPF_PROG_TYPE = 33, +}; + +enum bpf_reg_liveness { + REG_LIVE_NONE = 0, + REG_LIVE_READ32 = 1, + REG_LIVE_READ64 = 2, + REG_LIVE_READ = 3, + REG_LIVE_WRITTEN = 4, + REG_LIVE_DONE = 8, +}; + +enum bpf_reg_type { + NOT_INIT = 0, + SCALAR_VALUE = 1, + PTR_TO_CTX = 2, + CONST_PTR_TO_MAP = 3, + PTR_TO_MAP_VALUE = 4, + PTR_TO_MAP_KEY = 5, + PTR_TO_STACK = 6, + PTR_TO_PACKET_META = 7, + PTR_TO_PACKET = 8, + PTR_TO_PACKET_END = 9, + PTR_TO_FLOW_KEYS = 10, + PTR_TO_SOCKET = 11, + PTR_TO_SOCK_COMMON = 12, + PTR_TO_TCP_SOCK = 13, + PTR_TO_TP_BUFFER = 14, + PTR_TO_XDP_SOCK = 15, + PTR_TO_BTF_ID = 16, + PTR_TO_MEM = 17, + PTR_TO_ARENA = 18, + PTR_TO_BUF = 19, + PTR_TO_FUNC = 20, + CONST_PTR_TO_DYNPTR = 21, + __BPF_REG_TYPE_MAX = 22, + PTR_TO_MAP_VALUE_OR_NULL = 260, + PTR_TO_SOCKET_OR_NULL = 267, + PTR_TO_SOCK_COMMON_OR_NULL = 268, + PTR_TO_TCP_SOCK_OR_NULL = 269, + PTR_TO_BTF_ID_OR_NULL = 272, + __BPF_REG_TYPE_LIMIT = 134217727, +}; + +enum bpf_ret_code { + BPF_OK = 0, + BPF_DROP = 2, + BPF_REDIRECT = 7, + BPF_LWT_REROUTE = 128, + BPF_FLOW_DISSECTOR_CONTINUE = 129, +}; + +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 = 134217727, +}; + +enum bpf_stack_build_id_status { + BPF_STACK_BUILD_ID_EMPTY = 0, + BPF_STACK_BUILD_ID_VALID = 1, + BPF_STACK_BUILD_ID_IP = 2, +}; + +enum bpf_stack_slot_type { + STACK_INVALID = 0, + STACK_SPILL = 1, + STACK_MISC = 2, + STACK_ZERO = 3, + STACK_DYNPTR = 4, + STACK_ITER = 5, + STACK_IRQ_FLAG = 6, +}; + +enum bpf_stats_type { + BPF_STATS_RUN_TIME = 0, +}; + +enum bpf_struct_ops_state { + BPF_STRUCT_OPS_STATE_INIT = 0, + BPF_STRUCT_OPS_STATE_INUSE = 1, + BPF_STRUCT_OPS_STATE_TOBEFREE = 2, + BPF_STRUCT_OPS_STATE_READY = 3, +}; + +enum bpf_struct_walk_result { + WALK_SCALAR = 0, + WALK_PTR = 1, + WALK_STRUCT = 2, +}; + +enum bpf_task_fd_type { + BPF_FD_TYPE_RAW_TRACEPOINT = 0, + BPF_FD_TYPE_TRACEPOINT = 1, + BPF_FD_TYPE_KPROBE = 2, + BPF_FD_TYPE_KRETPROBE = 3, + BPF_FD_TYPE_UPROBE = 4, + BPF_FD_TYPE_URETPROBE = 5, +}; + +enum bpf_task_vma_iter_find_op { + task_vma_iter_first_vma = 0, + task_vma_iter_next_vma = 1, + task_vma_iter_find_vma = 2, +}; + +enum bpf_text_poke_type { + BPF_MOD_CALL = 0, + BPF_MOD_JUMP = 1, +}; + +enum bpf_tramp_prog_type { + BPF_TRAMP_FENTRY = 0, + BPF_TRAMP_FEXIT = 1, + BPF_TRAMP_MODIFY_RETURN = 2, + BPF_TRAMP_MAX = 3, + BPF_TRAMP_REPLACE = 4, +}; + +enum bpf_type { + BPF_TYPE_UNSPEC = 0, + BPF_TYPE_PROG = 1, + BPF_TYPE_MAP = 2, + BPF_TYPE_LINK = 3, +}; + +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, + MEM_ALIGNED = 33554432, + MEM_WRITE = 67108864, + __BPF_TYPE_FLAG_MAX = 67108865, + __BPF_TYPE_LAST_FLAG = 67108864, +}; + +enum bpf_xdp_mode { + XDP_MODE_SKB = 0, + XDP_MODE_DRV = 1, + XDP_MODE_HW = 2, + __MAX_XDP_MODE = 3, +}; + +enum btf_arg_tag { + ARG_TAG_CTX = 1, + ARG_TAG_NONNULL = 2, + ARG_TAG_TRUSTED = 4, + ARG_TAG_NULLABLE = 8, + ARG_TAG_ARENA = 16, +}; + +enum btf_field_iter_kind { + BTF_FIELD_ITER_IDS = 0, + BTF_FIELD_ITER_STRS = 1, +}; + +enum btf_field_type { + BPF_SPIN_LOCK = 1, + BPF_TIMER = 2, + BPF_KPTR_UNREF = 4, + BPF_KPTR_REF = 8, + BPF_KPTR_PERCPU = 16, + BPF_KPTR = 28, + BPF_LIST_HEAD = 32, + BPF_LIST_NODE = 64, + BPF_RB_ROOT = 128, + BPF_RB_NODE = 256, + BPF_GRAPH_NODE = 320, + BPF_GRAPH_ROOT = 160, + BPF_REFCOUNT = 512, + BPF_WORKQUEUE = 1024, + BPF_UPTR = 2048, +}; + +enum btf_func_linkage { + BTF_FUNC_STATIC = 0, + BTF_FUNC_GLOBAL = 1, + BTF_FUNC_EXTERN = 2, +}; + +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 = 7, + BTF_KFUNC_HOOK_SCHED_ACT = 8, + BTF_KFUNC_HOOK_SK_SKB = 9, + BTF_KFUNC_HOOK_SOCKET_FILTER = 10, + BTF_KFUNC_HOOK_LWT = 11, + BTF_KFUNC_HOOK_NETFILTER = 12, + BTF_KFUNC_HOOK_KPROBE = 13, + BTF_KFUNC_HOOK_MAX = 14, +}; + +enum buddy { + FIRST = 0, + LAST = 1, +}; + +enum bug_trap_type { + BUG_TRAP_TYPE_NONE = 0, + BUG_TRAP_TYPE_WARN = 1, + BUG_TRAP_TYPE_BUG = 2, +}; + +enum bus_notifier_event { + BUS_NOTIFY_ADD_DEVICE = 0, + BUS_NOTIFY_DEL_DEVICE = 1, + BUS_NOTIFY_REMOVED_DEVICE = 2, + BUS_NOTIFY_BIND_DRIVER = 3, + BUS_NOTIFY_BOUND_DRIVER = 4, + BUS_NOTIFY_UNBIND_DRIVER = 5, + BUS_NOTIFY_UNBOUND_DRIVER = 6, + BUS_NOTIFY_DRIVER_NOT_BOUND = 7, +}; + +enum cache_indexing { + NODE_CACHE_DIRECT_MAP = 0, + NODE_CACHE_INDEXED = 1, + NODE_CACHE_OTHER = 2, +}; + +enum cache_tag_type { + CACHE_TAG_IOTLB = 0, + CACHE_TAG_DEVTLB = 1, + CACHE_TAG_NESTING_IOTLB = 2, + CACHE_TAG_NESTING_DEVTLB = 3, +}; + +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_write_policy { + NODE_CACHE_WRITE_BACK = 0, + NODE_CACHE_WRITE_THROUGH = 1, + NODE_CACHE_WRITE_OTHER = 2, +}; + +enum cc_attr { + CC_ATTR_MEM_ENCRYPT = 0, + CC_ATTR_HOST_MEM_ENCRYPT = 1, + CC_ATTR_GUEST_MEM_ENCRYPT = 2, + CC_ATTR_GUEST_STATE_ENCRYPT = 3, + CC_ATTR_GUEST_UNROLL_STRING_IO = 4, + CC_ATTR_GUEST_SEV_SNP = 5, + CC_ATTR_GUEST_SNP_SECURE_TSC = 6, + CC_ATTR_HOST_SEV_SNP = 7, +}; + +enum cc_vendor { + CC_VENDOR_NONE = 0, + CC_VENDOR_AMD = 1, + CC_VENDOR_INTEL = 2, +}; + +enum cdrom_print_option { + CTL_NAME = 0, + CTL_SPEED = 1, + CTL_SLOTS = 2, + CTL_CAPABILITY = 3, +}; + +enum cee_attrs { + DCB_ATTR_CEE_UNSPEC = 0, + DCB_ATTR_CEE_PEER_PG = 1, + DCB_ATTR_CEE_PEER_PFC = 2, + DCB_ATTR_CEE_PEER_APP_TABLE = 3, + DCB_ATTR_CEE_TX_PG = 4, + DCB_ATTR_CEE_RX_PG = 5, + DCB_ATTR_CEE_PFC = 6, + DCB_ATTR_CEE_APP_TABLE = 7, + DCB_ATTR_CEE_FEAT = 8, + __DCB_ATTR_CEE_MAX = 9, +}; + +enum cfg80211_signal_type { + CFG80211_SIGNAL_TYPE_NONE = 0, + CFG80211_SIGNAL_TYPE_MBM = 1, + CFG80211_SIGNAL_TYPE_UNSPEC = 2, +}; + +enum cfi_mode { + CFI_AUTO = 0, + CFI_OFF = 1, + CFI_KCFI = 2, + CFI_FINEIBT = 3, +}; + +enum cgroup1_param { + Opt_all = 0, + Opt_clone_children = 1, + Opt_cpuset_v2_mode = 2, + Opt_name = 3, + Opt_none = 4, + Opt_noprefix = 5, + Opt_release_agent = 6, + Opt_xattr = 7, + Opt_favordynmods = 8, + Opt_nofavordynmods = 9, +}; + +enum cgroup2_param { + Opt_nsdelegate = 0, + Opt_favordynmods___2 = 1, + Opt_memory_localevents = 2, + Opt_memory_recursiveprot = 3, + Opt_memory_hugetlb_accounting = 4, + Opt_pids_localevents = 5, + nr__cgroup2_params = 6, +}; + +enum cgroup_bpf_attach_type { + CGROUP_BPF_ATTACH_TYPE_INVALID = -1, + CGROUP_INET_INGRESS = 0, + CGROUP_INET_EGRESS = 1, + CGROUP_INET_SOCK_CREATE = 2, + CGROUP_SOCK_OPS = 3, + CGROUP_DEVICE = 4, + CGROUP_INET4_BIND = 5, + CGROUP_INET6_BIND = 6, + CGROUP_INET4_CONNECT = 7, + CGROUP_INET6_CONNECT = 8, + CGROUP_UNIX_CONNECT = 9, + CGROUP_INET4_POST_BIND = 10, + CGROUP_INET6_POST_BIND = 11, + CGROUP_UDP4_SENDMSG = 12, + CGROUP_UDP6_SENDMSG = 13, + CGROUP_UNIX_SENDMSG = 14, + CGROUP_SYSCTL = 15, + CGROUP_UDP4_RECVMSG = 16, + CGROUP_UDP6_RECVMSG = 17, + CGROUP_UNIX_RECVMSG = 18, + CGROUP_GETSOCKOPT = 19, + CGROUP_SETSOCKOPT = 20, + CGROUP_INET4_GETPEERNAME = 21, + CGROUP_INET6_GETPEERNAME = 22, + CGROUP_UNIX_GETPEERNAME = 23, + CGROUP_INET4_GETSOCKNAME = 24, + CGROUP_INET6_GETSOCKNAME = 25, + CGROUP_UNIX_GETSOCKNAME = 26, + CGROUP_INET_SOCK_RELEASE = 27, + CGROUP_LSM_START = 28, + CGROUP_LSM_END = 37, + MAX_CGROUP_BPF_ATTACH_TYPE = 38, +}; + +enum cgroup_filetype { + CGROUP_FILE_PROCS = 0, + CGROUP_FILE_TASKS = 1, +}; + +enum cgroup_opt_features { + OPT_FEATURE_PRESSURE = 0, + OPT_FEATURE_COUNT = 1, +}; + +enum cgroup_subsys_id { + cpuset_cgrp_id = 0, + cpu_cgrp_id = 1, + cpuacct_cgrp_id = 2, + io_cgrp_id = 3, + memory_cgrp_id = 4, + devices_cgrp_id = 5, + freezer_cgrp_id = 6, + net_cls_cgrp_id = 7, + perf_event_cgrp_id = 8, + net_prio_cgrp_id = 9, + hugetlb_cgrp_id = 10, + pids_cgrp_id = 11, + rdma_cgrp_id = 12, + misc_cgrp_id = 13, + dmem_cgrp_id = 14, + CGROUP_SUBSYS_COUNT = 15, +}; + +enum chacha_constants { + CHACHA_CONSTANT_EXPA = 1634760805, + CHACHA_CONSTANT_ND_3 = 857760878, + CHACHA_CONSTANT_2_BY = 2036477234, + CHACHA_CONSTANT_TE_K = 1797285236, +}; + +enum chipset_type { + NOT_SUPPORTED = 0, + SUPPORTED = 1, +}; + +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 class_stat_type { + ZS_OBJS_ALLOCATED = 12, + ZS_OBJS_INUSE = 13, + NR_CLASS_STAT_TYPES = 14, +}; + +enum cleanup_prefix_rt_t { + CLEANUP_PREFIX_RT_NOP = 0, + CLEANUP_PREFIX_RT_DEL = 1, + CLEANUP_PREFIX_RT_EXPIRE = 2, +}; + +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, +}; + +enum clock_event_state { + CLOCK_EVT_STATE_DETACHED = 0, + CLOCK_EVT_STATE_SHUTDOWN = 1, + CLOCK_EVT_STATE_PERIODIC = 2, + CLOCK_EVT_STATE_ONESHOT = 3, + CLOCK_EVT_STATE_ONESHOT_STOPPED = 4, +}; + +enum clocksource_ids { + CSID_GENERIC = 0, + CSID_ARM_ARCH_COUNTER = 1, + CSID_S390_TOD = 2, + CSID_X86_TSC_EARLY = 3, + CSID_X86_TSC = 4, + CSID_X86_KVM_CLK = 5, + CSID_X86_ART = 6, + CSID_MAX = 7, +}; + +enum closure_state { + CLOSURE_BITS_START = 67108864, + CLOSURE_DESTRUCTOR = 67108864, + CLOSURE_WAITING = 268435456, + CLOSURE_RUNNING = 1073741824, +}; + +enum cm_batt_temp { + CM_BATT_OK = 0, + CM_BATT_OVERHEAT = 1, + CM_BATT_COLD = 2, +}; + +enum cmd_type { + CMD_ADDR = 1, + CMD_LISTEN = 2, + CMD_OPT = 4, +}; + +enum cmis_cdb_fw_write_mechanism { + CMIS_CDB_FW_WRITE_MECHANISM_NONE = 0, + CMIS_CDB_FW_WRITE_MECHANISM_LPL = 1, + CMIS_CDB_FW_WRITE_MECHANISM_EPL = 16, + CMIS_CDB_FW_WRITE_MECHANISM_BOTH = 17, +}; + +enum compact_priority { + COMPACT_PRIO_SYNC_FULL = 0, + MIN_COMPACT_PRIORITY = 0, + COMPACT_PRIO_SYNC_LIGHT = 1, + MIN_COMPACT_COSTLY_PRIORITY = 1, + DEF_COMPACT_PRIORITY = 1, + COMPACT_PRIO_ASYNC = 2, + INIT_COMPACT_PRIORITY = 2, +}; + +enum compact_result { + COMPACT_NOT_SUITABLE_ZONE = 0, + COMPACT_SKIPPED = 1, + COMPACT_DEFERRED = 2, + COMPACT_NO_SUITABLE_PAGE = 3, + COMPACT_CONTINUE = 4, + COMPACT_COMPLETE = 5, + COMPACT_PARTIAL_SKIPPED = 6, + COMPACT_CONTENDED = 7, + COMPACT_SUCCESS = 8, +}; + +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, +}; + +enum con_scroll { + SM_UP = 0, + SM_DOWN = 1, +}; + +enum cons_flags { + CON_PRINTBUFFER = 1, + CON_CONSDEV = 2, + CON_ENABLED = 4, + CON_BOOT = 8, + CON_ANYTIME = 16, + CON_BRL = 32, + CON_EXTENDED = 64, + CON_SUSPENDED = 128, + CON_NBCON = 256, +}; + +enum context { + IN_KERNEL = 1, + IN_USER = 2, + IN_KERNEL_RECOV = 3, +}; + +enum cp_error_code { + CP_EC = 32767, + CP_RET = 1, + CP_IRET = 2, + CP_ENDBR = 3, + CP_RSTRORSSP = 4, + CP_SETSSBSY = 5, + CP_ENCL = 32768, +}; + +enum cpa_warn { + CPA_CONFLICT = 0, + CPA_PROTECT = 1, + CPA_DETECT = 2, +}; + +enum cpio_fields { + C_MAGIC = 0, + C_INO = 1, + C_MODE = 2, + C_UID = 3, + C_GID = 4, + C_NLINK = 5, + C_MTIME = 6, + C_FILESIZE = 7, + C_MAJ = 8, + C_MIN = 9, + C_RMAJ = 10, + C_RMIN = 11, + C_NAMESIZE = 12, + C_CHKSUM = 13, + C_NFIELDS = 14, +}; + +enum 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, +}; + +enum cpu_idle_type { + __CPU_NOT_IDLE = 0, + CPU_IDLE = 1, + CPU_NEWLY_IDLE = 2, + CPU_MAX_IDLE_TYPES = 3, +}; + +enum cpu_led_event { + CPU_LED_IDLE_START = 0, + CPU_LED_IDLE_END = 1, + CPU_LED_START = 2, + CPU_LED_STOP = 3, + CPU_LED_HALTED = 4, +}; + +enum cpu_mitigations { + CPU_MITIGATIONS_OFF = 0, + CPU_MITIGATIONS_AUTO = 1, + CPU_MITIGATIONS_AUTO_NOSMT = 2, +}; + +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, + CPUTIME_FORCEIDLE = 10, + NR_STATS = 11, +}; + +enum cpuacct_stat_index { + CPUACCT_STAT_USER = 0, + CPUACCT_STAT_SYSTEM = 1, + CPUACCT_STAT_NSTATS = 2, +}; + +enum cpufreq_table_sorting { + CPUFREQ_TABLE_UNSORTED = 0, + CPUFREQ_TABLE_SORTED_ASCENDING = 1, + CPUFREQ_TABLE_SORTED_DESCENDING = 2, +}; + +enum cpuhp_smt_control { + CPU_SMT_ENABLED = 0, + CPU_SMT_DISABLED = 1, + CPU_SMT_FORCE_DISABLED = 2, + CPU_SMT_NOT_SUPPORTED = 3, + CPU_SMT_NOT_IMPLEMENTED = 4, +}; + +enum cpuhp_state { + CPUHP_INVALID = -1, + CPUHP_OFFLINE = 0, + CPUHP_CREATE_THREADS = 1, + CPUHP_PERF_PREPARE = 2, + CPUHP_PERF_X86_PREPARE = 3, + CPUHP_PERF_X86_AMD_UNCORE_PREP = 4, + CPUHP_PERF_POWER = 5, + CPUHP_PERF_SUPERH = 6, + CPUHP_X86_HPET_DEAD = 7, + CPUHP_X86_MCE_DEAD = 8, + CPUHP_VIRT_NET_DEAD = 9, + CPUHP_IBMVNIC_DEAD = 10, + CPUHP_SLUB_DEAD = 11, + CPUHP_DEBUG_OBJ_DEAD = 12, + CPUHP_MM_WRITEBACK_DEAD = 13, + CPUHP_MM_VMSTAT_DEAD = 14, + CPUHP_SOFTIRQ_DEAD = 15, + CPUHP_NET_MVNETA_DEAD = 16, + CPUHP_CPUIDLE_DEAD = 17, + CPUHP_ARM64_FPSIMD_DEAD = 18, + CPUHP_ARM_OMAP_WAKE_DEAD = 19, + CPUHP_IRQ_POLL_DEAD = 20, + CPUHP_BLOCK_SOFTIRQ_DEAD = 21, + CPUHP_BIO_DEAD = 22, + CPUHP_ACPI_CPUDRV_DEAD = 23, + CPUHP_S390_PFAULT_DEAD = 24, + CPUHP_BLK_MQ_DEAD = 25, + CPUHP_FS_BUFF_DEAD = 26, + CPUHP_PRINTK_DEAD = 27, + CPUHP_MM_MEMCQ_DEAD = 28, + CPUHP_PERCPU_CNT_DEAD = 29, + CPUHP_RADIX_DEAD = 30, + CPUHP_PAGE_ALLOC = 31, + CPUHP_NET_DEV_DEAD = 32, + CPUHP_PCI_XGENE_DEAD = 33, + CPUHP_IOMMU_IOVA_DEAD = 34, + CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 35, + CPUHP_PADATA_DEAD = 36, + CPUHP_AP_DTPM_CPU_DEAD = 37, + CPUHP_RANDOM_PREPARE = 38, + CPUHP_WORKQUEUE_PREP = 39, + CPUHP_POWER_NUMA_PREPARE = 40, + CPUHP_HRTIMERS_PREPARE = 41, + CPUHP_X2APIC_PREPARE = 42, + CPUHP_SMPCFD_PREPARE = 43, + CPUHP_RELAY_PREPARE = 44, + CPUHP_MD_RAID5_PREPARE = 45, + CPUHP_RCUTREE_PREP = 46, + CPUHP_CPUIDLE_COUPLED_PREPARE = 47, + CPUHP_POWERPC_PMAC_PREPARE = 48, + CPUHP_POWERPC_MMU_CTX_PREPARE = 49, + CPUHP_XEN_PREPARE = 50, + CPUHP_XEN_EVTCHN_PREPARE = 51, + CPUHP_ARM_SHMOBILE_SCU_PREPARE = 52, + CPUHP_SH_SH3X_PREPARE = 53, + CPUHP_TOPOLOGY_PREPARE = 54, + CPUHP_NET_IUCV_PREPARE = 55, + CPUHP_ARM_BL_PREPARE = 56, + CPUHP_TRACE_RB_PREPARE = 57, + CPUHP_MM_ZS_PREPARE = 58, + CPUHP_MM_ZSWP_POOL_PREPARE = 59, + CPUHP_KVM_PPC_BOOK3S_PREPARE = 60, + CPUHP_ZCOMP_PREPARE = 61, + CPUHP_TIMERS_PREPARE = 62, + CPUHP_TMIGR_PREPARE = 63, + CPUHP_MIPS_SOC_PREPARE = 64, + CPUHP_BP_PREPARE_DYN = 65, + CPUHP_BP_PREPARE_DYN_END = 85, + CPUHP_BP_KICK_AP = 86, + CPUHP_BRINGUP_CPU = 87, + CPUHP_AP_IDLE_DEAD = 88, + CPUHP_AP_OFFLINE = 89, + CPUHP_AP_CACHECTRL_STARTING = 90, + CPUHP_AP_SCHED_STARTING = 91, + CPUHP_AP_RCUTREE_DYING = 92, + CPUHP_AP_CPU_PM_STARTING = 93, + CPUHP_AP_IRQ_GIC_STARTING = 94, + CPUHP_AP_IRQ_HIP04_STARTING = 95, + CPUHP_AP_IRQ_APPLE_AIC_STARTING = 96, + CPUHP_AP_IRQ_ARMADA_XP_STARTING = 97, + CPUHP_AP_IRQ_BCM2836_STARTING = 98, + CPUHP_AP_IRQ_MIPS_GIC_STARTING = 99, + CPUHP_AP_IRQ_EIOINTC_STARTING = 100, + CPUHP_AP_IRQ_AVECINTC_STARTING = 101, + CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 102, + CPUHP_AP_IRQ_THEAD_ACLINT_SSWI_STARTING = 103, + CPUHP_AP_IRQ_RISCV_IMSIC_STARTING = 104, + CPUHP_AP_IRQ_RISCV_SBI_IPI_STARTING = 105, + CPUHP_AP_ARM_MVEBU_COHERENCY = 106, + CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 107, + CPUHP_AP_PERF_X86_STARTING = 108, + CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 109, + CPUHP_AP_PERF_XTENSA_STARTING = 110, + CPUHP_AP_ARM_VFP_STARTING = 111, + CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 112, + CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 113, + CPUHP_AP_PERF_ARM_ACPI_STARTING = 114, + CPUHP_AP_PERF_ARM_STARTING = 115, + CPUHP_AP_PERF_RISCV_STARTING = 116, + CPUHP_AP_ARM_L2X0_STARTING = 117, + CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 118, + CPUHP_AP_ARM_ARCH_TIMER_STARTING = 119, + CPUHP_AP_ARM_ARCH_TIMER_EVTSTRM_STARTING = 120, + CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 121, + CPUHP_AP_JCORE_TIMER_STARTING = 122, + CPUHP_AP_ARM_TWD_STARTING = 123, + CPUHP_AP_QCOM_TIMER_STARTING = 124, + CPUHP_AP_TEGRA_TIMER_STARTING = 125, + CPUHP_AP_ARMADA_TIMER_STARTING = 126, + CPUHP_AP_MIPS_GIC_TIMER_STARTING = 127, + CPUHP_AP_ARC_TIMER_STARTING = 128, + CPUHP_AP_REALTEK_TIMER_STARTING = 129, + CPUHP_AP_RISCV_TIMER_STARTING = 130, + CPUHP_AP_CLINT_TIMER_STARTING = 131, + CPUHP_AP_CSKY_TIMER_STARTING = 132, + CPUHP_AP_TI_GP_TIMER_STARTING = 133, + CPUHP_AP_HYPERV_TIMER_STARTING = 134, + CPUHP_AP_DUMMY_TIMER_STARTING = 135, + CPUHP_AP_ARM_XEN_STARTING = 136, + CPUHP_AP_ARM_XEN_RUNSTATE_STARTING = 137, + CPUHP_AP_ARM_CORESIGHT_STARTING = 138, + CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 139, + CPUHP_AP_ARM64_ISNDEP_STARTING = 140, + CPUHP_AP_SMPCFD_DYING = 141, + CPUHP_AP_HRTIMERS_DYING = 142, + CPUHP_AP_TICK_DYING = 143, + CPUHP_AP_X86_TBOOT_DYING = 144, + CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 145, + CPUHP_AP_ONLINE = 146, + CPUHP_TEARDOWN_CPU = 147, + CPUHP_AP_ONLINE_IDLE = 148, + CPUHP_AP_HYPERV_ONLINE = 149, + CPUHP_AP_KVM_ONLINE = 150, + CPUHP_AP_SCHED_WAIT_EMPTY = 151, + CPUHP_AP_SMPBOOT_THREADS = 152, + CPUHP_AP_IRQ_AFFINITY_ONLINE = 153, + CPUHP_AP_BLK_MQ_ONLINE = 154, + CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 155, + CPUHP_AP_X86_INTEL_EPB_ONLINE = 156, + CPUHP_AP_PERF_ONLINE = 157, + CPUHP_AP_PERF_X86_ONLINE = 158, + CPUHP_AP_PERF_X86_UNCORE_ONLINE = 159, + CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 160, + CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 161, + CPUHP_AP_PERF_S390_CF_ONLINE = 162, + CPUHP_AP_PERF_S390_SF_ONLINE = 163, + CPUHP_AP_PERF_ARM_CCI_ONLINE = 164, + CPUHP_AP_PERF_ARM_CCN_ONLINE = 165, + CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 166, + CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 167, + CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 168, + CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 169, + CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 170, + CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 171, + CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 172, + CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 173, + CPUHP_AP_PERF_ARM_L2X0_ONLINE = 174, + CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 175, + CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 176, + CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 177, + CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 178, + CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 179, + CPUHP_AP_PERF_ARM_MRVL_PEM_ONLINE = 180, + CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 181, + CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 182, + CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 183, + CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 184, + CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 185, + CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 186, + CPUHP_AP_PERF_CSKY_ONLINE = 187, + CPUHP_AP_TMIGR_ONLINE = 188, + CPUHP_AP_WATCHDOG_ONLINE = 189, + CPUHP_AP_WORKQUEUE_ONLINE = 190, + CPUHP_AP_RANDOM_ONLINE = 191, + CPUHP_AP_RCUTREE_ONLINE = 192, + CPUHP_AP_KTHREADS_ONLINE = 193, + CPUHP_AP_BASE_CACHEINFO_ONLINE = 194, + CPUHP_AP_ONLINE_DYN = 195, + CPUHP_AP_ONLINE_DYN_END = 235, + CPUHP_AP_X86_HPET_ONLINE = 236, + CPUHP_AP_X86_KVM_CLK_ONLINE = 237, + CPUHP_AP_ACTIVE = 238, + CPUHP_ONLINE = 239, +}; + +enum cpuhp_sync_state { + SYNC_STATE_DEAD = 0, + SYNC_STATE_KICKED = 1, + SYNC_STATE_SHOULD_DIE = 2, + SYNC_STATE_ALIVE = 3, + SYNC_STATE_SHOULD_ONLINE = 4, + SYNC_STATE_ONLINE = 5, +}; + +enum 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, + CPUID_LNX_5 = 21, + NR_CPUID_WORDS = 22, +}; + +enum cpuid_regs_idx { + CPUID_EAX = 0, + CPUID_EBX = 1, + CPUID_ECX = 2, + CPUID_EDX = 3, +}; + +enum crb_cancel { + CRB_CANCEL_INVOKE = 1, +}; + +enum crb_ctrl_req { + CRB_CTRL_REQ_CMD_READY = 1, + CRB_CTRL_REQ_GO_IDLE = 2, +}; + +enum crb_ctrl_sts { + CRB_CTRL_STS_ERROR = 1, + CRB_CTRL_STS_TPM_IDLE = 2, +}; + +enum crb_defaults { + CRB_ACPI_START_REVISION_ID = 1, + CRB_ACPI_START_INDEX = 1, +}; + +enum crb_loc_ctrl { + CRB_LOC_CTRL_REQUEST_ACCESS = 1, + CRB_LOC_CTRL_RELINQUISH = 2, +}; + +enum crb_loc_state { + CRB_LOC_STATE_LOC_ASSIGNED = 2, + CRB_LOC_STATE_TPM_REG_VALID_STS = 128, +}; + +enum crb_start { + CRB_START_INVOKE = 1, +}; + +enum crb_status { + CRB_DRV_STS_COMPLETE = 1, +}; + +enum criteria { + CR_POWER2_ALIGNED = 0, + CR_GOAL_LEN_FAST = 1, + CR_BEST_AVAIL_LEN = 2, + CR_GOAL_LEN_SLOW = 3, + CR_ANY_FREE = 4, + EXT4_MB_NUM_CRS = 5, +}; + +enum 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_REPORT_SIG = 22, + __CRYPTOCFGA_MAX = 23, +}; + +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, +}; + +enum ctrl_offsets { + BASE_OFFSET = 0, + SLOT_AVAIL1 = 4, + SLOT_AVAIL2 = 8, + SLOT_CONFIG = 12, + SEC_BUS_CONFIG = 16, + MSI_CTRL = 18, + PROG_INTERFACE = 19, + CMD = 20, + CMD_STATUS = 22, + INTR_LOC = 24, + SERR_LOC = 28, + SERR_INTR_ENABLE = 32, + SLOT1 = 36, +}; + +enum ctrl_register { + CTRL_IN = 0, + CTRL_OUT = 1, +}; + +enum ctx_state { + CT_STATE_DISABLED = -1, + CT_STATE_KERNEL = 0, + CT_STATE_IDLE = 1, + CT_STATE_USER = 2, + CT_STATE_GUEST = 3, + CT_STATE_MAX = 4, +}; + +enum cxl_event_type { + CXL_CPER_EVENT_GENERIC = 0, + CXL_CPER_EVENT_GEN_MEDIA = 1, + CXL_CPER_EVENT_DRAM = 2, + CXL_CPER_EVENT_MEM_MODULE = 3, +}; + +enum d_real_type { + D_REAL_DATA = 0, + D_REAL_METADATA = 1, +}; + +enum d_walk_ret { + D_WALK_CONTINUE = 0, + D_WALK_QUIT = 1, + D_WALK_NORETRY = 2, + D_WALK_SKIP = 3, +}; + +enum da9052_chip_id { + DA9052 = 0, + DA9053_AA = 1, + DA9053_BA = 2, + DA9053_BB = 3, + DA9053_BC = 4, +}; + +enum da9063_irqs { + DA9063_IRQ_ONKEY = 0, + DA9063_IRQ_ALARM = 1, + DA9063_IRQ_TICK = 2, + DA9063_IRQ_ADC_RDY = 3, + DA9063_IRQ_SEQ_RDY = 4, + DA9063_IRQ_WAKE = 5, + DA9063_IRQ_TEMP = 6, + DA9063_IRQ_COMP_1V2 = 7, + DA9063_IRQ_LDO_LIM = 8, + DA9063_IRQ_REG_UVOV = 9, + DA9063_IRQ_DVC_RDY = 10, + DA9063_IRQ_VDD_MON = 11, + DA9063_IRQ_WARN = 12, + DA9063_IRQ_GPI0 = 13, + DA9063_IRQ_GPI1 = 14, + DA9063_IRQ_GPI2 = 15, + DA9063_IRQ_GPI3 = 16, + DA9063_IRQ_GPI4 = 17, + DA9063_IRQ_GPI5 = 18, + DA9063_IRQ_GPI6 = 19, + DA9063_IRQ_GPI7 = 20, + DA9063_IRQ_GPI8 = 21, + DA9063_IRQ_GPI9 = 22, + DA9063_IRQ_GPI10 = 23, + DA9063_IRQ_GPI11 = 24, + DA9063_IRQ_GPI12 = 25, + DA9063_IRQ_GPI13 = 26, + DA9063_IRQ_GPI14 = 27, + DA9063_IRQ_GPI15 = 28, +}; + +enum da9063_page_sel_buf_fmt { + DA9063_PAGE_SEL_BUF_PAGE_REG = 0, + DA9063_PAGE_SEL_BUF_PAGE_VAL = 1, + DA9063_PAGE_SEL_BUF_SIZE = 2, +}; + +enum da9063_paged_read_msgs { + DA9063_PAGED_READ_MSG_PAGE_SEL = 0, + DA9063_PAGED_READ_MSG_REG_SEL = 1, + DA9063_PAGED_READ_MSG_DATA = 2, + DA9063_PAGED_READ_MSG_CNT = 3, +}; + +enum da9063_type { + PMIC_TYPE_DA9063 = 0, + PMIC_TYPE_DA9063L = 1, +}; + +enum da9063_variant_codes { + PMIC_DA9063_AD = 3, + PMIC_DA9063_BB = 5, + PMIC_DA9063_CA = 6, + PMIC_DA9063_DA = 7, + PMIC_DA9063_EA = 8, +}; + +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 data_source { + CM_BATTERY_PRESENT = 0, + CM_NO_BATTERY = 1, + CM_FUEL_GAUGE = 2, + CM_CHARGER_STAT = 3, +}; + +enum dax_access_mode { + DAX_ACCESS = 0, + DAX_RECOVERY_WRITE = 1, +}; + +enum dax_device_flags { + DAXDEV_ALIVE = 0, + DAXDEV_WRITE_CACHE = 1, + DAXDEV_SYNC = 2, + DAXDEV_NOCACHE = 3, + DAXDEV_NOMC = 4, +}; + +enum dax_driver_type { + DAXDRV_KMEM_TYPE = 0, + DAXDRV_DEVICE_TYPE = 1, +}; + +enum dax_wake_mode { + WAKE_ALL = 0, + WAKE_NEXT = 1, +}; + +enum dbc_state { + DS_DISABLED = 0, + DS_INITIALIZED = 1, + DS_ENABLED = 2, + DS_CONNECTED = 3, + DS_CONFIGURED = 4, + DS_MAX = 5, +}; + +enum dbgfs_get_mode { + DBGFS_GET_ALREADY = 0, + DBGFS_GET_REGULAR = 1, + DBGFS_GET_SHORT = 2, +}; + +enum dcb_general_attr_values { + DCB_ATTR_VALUE_UNDEFINED = 255, +}; + +enum dcbevent_notif_type { + DCB_APP_EVENT = 1, +}; + +enum dcbnl_app_attrs { + DCB_APP_ATTR_UNDEFINED = 0, + DCB_APP_ATTR_IDTYPE = 1, + DCB_APP_ATTR_ID = 2, + DCB_APP_ATTR_PRIORITY = 3, + __DCB_APP_ATTR_ENUM_MAX = 4, + DCB_APP_ATTR_MAX = 3, +}; + +enum dcbnl_attrs { + DCB_ATTR_UNDEFINED = 0, + DCB_ATTR_IFNAME = 1, + DCB_ATTR_STATE = 2, + DCB_ATTR_PFC_STATE = 3, + DCB_ATTR_PFC_CFG = 4, + DCB_ATTR_NUM_TC = 5, + DCB_ATTR_PG_CFG = 6, + DCB_ATTR_SET_ALL = 7, + DCB_ATTR_PERM_HWADDR = 8, + DCB_ATTR_CAP = 9, + DCB_ATTR_NUMTCS = 10, + DCB_ATTR_BCN = 11, + DCB_ATTR_APP = 12, + DCB_ATTR_IEEE = 13, + DCB_ATTR_DCBX = 14, + DCB_ATTR_FEATCFG = 15, + DCB_ATTR_CEE = 16, + __DCB_ATTR_ENUM_MAX = 17, + DCB_ATTR_MAX = 16, +}; + +enum dcbnl_bcn_attrs { + DCB_BCN_ATTR_UNDEFINED = 0, + DCB_BCN_ATTR_RP_0 = 1, + DCB_BCN_ATTR_RP_1 = 2, + DCB_BCN_ATTR_RP_2 = 3, + DCB_BCN_ATTR_RP_3 = 4, + DCB_BCN_ATTR_RP_4 = 5, + DCB_BCN_ATTR_RP_5 = 6, + DCB_BCN_ATTR_RP_6 = 7, + DCB_BCN_ATTR_RP_7 = 8, + DCB_BCN_ATTR_RP_ALL = 9, + DCB_BCN_ATTR_BCNA_0 = 10, + DCB_BCN_ATTR_BCNA_1 = 11, + DCB_BCN_ATTR_ALPHA = 12, + DCB_BCN_ATTR_BETA = 13, + DCB_BCN_ATTR_GD = 14, + DCB_BCN_ATTR_GI = 15, + DCB_BCN_ATTR_TMAX = 16, + DCB_BCN_ATTR_TD = 17, + DCB_BCN_ATTR_RMIN = 18, + DCB_BCN_ATTR_W = 19, + DCB_BCN_ATTR_RD = 20, + DCB_BCN_ATTR_RU = 21, + DCB_BCN_ATTR_WRTT = 22, + DCB_BCN_ATTR_RI = 23, + DCB_BCN_ATTR_C = 24, + DCB_BCN_ATTR_ALL = 25, + __DCB_BCN_ATTR_ENUM_MAX = 26, + DCB_BCN_ATTR_MAX = 25, +}; + +enum dcbnl_cap_attrs { + DCB_CAP_ATTR_UNDEFINED = 0, + DCB_CAP_ATTR_ALL = 1, + DCB_CAP_ATTR_PG = 2, + DCB_CAP_ATTR_PFC = 3, + DCB_CAP_ATTR_UP2TC = 4, + DCB_CAP_ATTR_PG_TCS = 5, + DCB_CAP_ATTR_PFC_TCS = 6, + DCB_CAP_ATTR_GSP = 7, + DCB_CAP_ATTR_BCN = 8, + DCB_CAP_ATTR_DCBX = 9, + __DCB_CAP_ATTR_ENUM_MAX = 10, + DCB_CAP_ATTR_MAX = 9, +}; + +enum dcbnl_commands { + DCB_CMD_UNDEFINED = 0, + DCB_CMD_GSTATE = 1, + DCB_CMD_SSTATE = 2, + DCB_CMD_PGTX_GCFG = 3, + DCB_CMD_PGTX_SCFG = 4, + DCB_CMD_PGRX_GCFG = 5, + DCB_CMD_PGRX_SCFG = 6, + DCB_CMD_PFC_GCFG = 7, + DCB_CMD_PFC_SCFG = 8, + DCB_CMD_SET_ALL = 9, + DCB_CMD_GPERM_HWADDR = 10, + DCB_CMD_GCAP = 11, + DCB_CMD_GNUMTCS = 12, + DCB_CMD_SNUMTCS = 13, + DCB_CMD_PFC_GSTATE = 14, + DCB_CMD_PFC_SSTATE = 15, + DCB_CMD_BCN_GCFG = 16, + DCB_CMD_BCN_SCFG = 17, + DCB_CMD_GAPP = 18, + DCB_CMD_SAPP = 19, + DCB_CMD_IEEE_SET = 20, + DCB_CMD_IEEE_GET = 21, + DCB_CMD_GDCBX = 22, + DCB_CMD_SDCBX = 23, + DCB_CMD_GFEATCFG = 24, + DCB_CMD_SFEATCFG = 25, + DCB_CMD_CEE_GET = 26, + DCB_CMD_IEEE_DEL = 27, + __DCB_CMD_ENUM_MAX = 28, + DCB_CMD_MAX = 27, +}; + +enum dcbnl_featcfg_attrs { + DCB_FEATCFG_ATTR_UNDEFINED = 0, + DCB_FEATCFG_ATTR_ALL = 1, + DCB_FEATCFG_ATTR_PG = 2, + DCB_FEATCFG_ATTR_PFC = 3, + DCB_FEATCFG_ATTR_APP = 4, + __DCB_FEATCFG_ATTR_ENUM_MAX = 5, + DCB_FEATCFG_ATTR_MAX = 4, +}; + +enum dcbnl_numtcs_attrs { + DCB_NUMTCS_ATTR_UNDEFINED = 0, + DCB_NUMTCS_ATTR_ALL = 1, + DCB_NUMTCS_ATTR_PG = 2, + DCB_NUMTCS_ATTR_PFC = 3, + __DCB_NUMTCS_ATTR_ENUM_MAX = 4, + DCB_NUMTCS_ATTR_MAX = 3, +}; + +enum dcbnl_pfc_up_attrs { + DCB_PFC_UP_ATTR_UNDEFINED = 0, + DCB_PFC_UP_ATTR_0 = 1, + DCB_PFC_UP_ATTR_1 = 2, + DCB_PFC_UP_ATTR_2 = 3, + DCB_PFC_UP_ATTR_3 = 4, + DCB_PFC_UP_ATTR_4 = 5, + DCB_PFC_UP_ATTR_5 = 6, + DCB_PFC_UP_ATTR_6 = 7, + DCB_PFC_UP_ATTR_7 = 8, + DCB_PFC_UP_ATTR_ALL = 9, + __DCB_PFC_UP_ATTR_ENUM_MAX = 10, + DCB_PFC_UP_ATTR_MAX = 9, +}; + +enum dcbnl_pg_attrs { + DCB_PG_ATTR_UNDEFINED = 0, + DCB_PG_ATTR_TC_0 = 1, + DCB_PG_ATTR_TC_1 = 2, + DCB_PG_ATTR_TC_2 = 3, + DCB_PG_ATTR_TC_3 = 4, + DCB_PG_ATTR_TC_4 = 5, + DCB_PG_ATTR_TC_5 = 6, + DCB_PG_ATTR_TC_6 = 7, + DCB_PG_ATTR_TC_7 = 8, + DCB_PG_ATTR_TC_MAX = 9, + DCB_PG_ATTR_TC_ALL = 10, + DCB_PG_ATTR_BW_ID_0 = 11, + DCB_PG_ATTR_BW_ID_1 = 12, + DCB_PG_ATTR_BW_ID_2 = 13, + DCB_PG_ATTR_BW_ID_3 = 14, + DCB_PG_ATTR_BW_ID_4 = 15, + DCB_PG_ATTR_BW_ID_5 = 16, + DCB_PG_ATTR_BW_ID_6 = 17, + DCB_PG_ATTR_BW_ID_7 = 18, + DCB_PG_ATTR_BW_ID_MAX = 19, + DCB_PG_ATTR_BW_ID_ALL = 20, + __DCB_PG_ATTR_ENUM_MAX = 21, + DCB_PG_ATTR_MAX = 20, +}; + +enum dcbnl_tc_attrs { + DCB_TC_ATTR_PARAM_UNDEFINED = 0, + DCB_TC_ATTR_PARAM_PGID = 1, + DCB_TC_ATTR_PARAM_UP_MAPPING = 2, + DCB_TC_ATTR_PARAM_STRICT_PRIO = 3, + DCB_TC_ATTR_PARAM_BW_PCT = 4, + DCB_TC_ATTR_PARAM_ALL = 5, + __DCB_TC_ATTR_PARAM_ENUM_MAX = 6, + DCB_TC_ATTR_PARAM_MAX = 5, +}; + +enum dccp_state { + DCCP_OPEN = 1, + DCCP_REQUESTING = 2, + DCCP_LISTEN = 10, + DCCP_RESPOND = 3, + DCCP_ACTIVE_CLOSEREQ = 4, + DCCP_PASSIVE_CLOSE = 8, + DCCP_CLOSING = 11, + DCCP_TIME_WAIT = 6, + DCCP_CLOSED = 7, + DCCP_NEW_SYN_RECV = 12, + DCCP_PARTOPEN = 14, + DCCP_PASSIVE_CLOSEREQ = 15, + DCCP_MAX_STATES = 16, +}; + +enum dd_data_dir { + DD_READ = 0, + DD_WRITE = 1, +}; + +enum dd_prio { + DD_RT_PRIO = 0, + DD_BE_PRIO = 1, + DD_IDLE_PRIO = 2, + DD_PRIO_MAX = 2, +}; + +enum dentry_d_lock_class { + DENTRY_D_LOCK_NORMAL = 0, + DENTRY_D_LOCK_NESTED = 1, +}; + +enum depot_counter_id { + DEPOT_COUNTER_REFD_ALLOCS = 0, + DEPOT_COUNTER_REFD_FREES = 1, + DEPOT_COUNTER_REFD_INUSE = 2, + DEPOT_COUNTER_FREELIST_SIZE = 3, + DEPOT_COUNTER_PERSIST_COUNT = 4, + DEPOT_COUNTER_PERSIST_BYTES = 5, + DEPOT_COUNTER_COUNT = 6, +}; + +enum derived_key_type { + ENC_KEY = 0, + AUTH_KEY = 1, +}; + +enum desc_state { + desc_miss = -1, + desc_reserved = 0, + desc_committed = 1, + desc_finalized = 2, + desc_reusable = 3, +}; + +enum dev_dma_attr { + DEV_DMA_NOT_SUPPORTED = 0, + DEV_DMA_NON_COHERENT = 1, + DEV_DMA_COHERENT = 2, +}; + +enum dev_pm_opp_event { + OPP_EVENT_ADD = 0, + OPP_EVENT_REMOVE = 1, + OPP_EVENT_ENABLE = 2, + OPP_EVENT_DISABLE = 3, + OPP_EVENT_ADJUST_VOLTAGE = 4, +}; + +enum dev_pm_qos_req_type { + DEV_PM_QOS_RESUME_LATENCY = 1, + DEV_PM_QOS_LATENCY_TOLERANCE = 2, + DEV_PM_QOS_MIN_FREQUENCY = 3, + DEV_PM_QOS_MAX_FREQUENCY = 4, + DEV_PM_QOS_FLAGS = 5, +}; + +enum 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 dev_type { + DEV_UNKNOWN = 0, + DEV_X1 = 1, + DEV_X2 = 2, + DEV_X4 = 3, + DEV_X8 = 4, + DEV_X16 = 5, + DEV_X32 = 6, + DEV_X64 = 7, +}; + +enum devcg_behavior { + DEVCG_DEFAULT_NONE = 0, + DEVCG_DEFAULT_ALLOW = 1, + DEVCG_DEFAULT_DENY = 2, +}; + +enum devfreq_parent_dev_type { + DEVFREQ_PARENT_DEV = 0, + CPUFREQ_PARENT_DEV = 1, +}; + +enum devfreq_timer { + DEVFREQ_TIMER_DEFERRABLE = 0, + DEVFREQ_TIMER_DELAYED = 1, + DEVFREQ_TIMER_NUM = 2, +}; + +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 device_physical_location_horizontal_position { + DEVICE_HORI_POS_LEFT = 0, + DEVICE_HORI_POS_CENTER = 1, + DEVICE_HORI_POS_RIGHT = 2, +}; + +enum device_physical_location_panel { + DEVICE_PANEL_TOP = 0, + DEVICE_PANEL_BOTTOM = 1, + DEVICE_PANEL_LEFT = 2, + DEVICE_PANEL_RIGHT = 3, + DEVICE_PANEL_FRONT = 4, + DEVICE_PANEL_BACK = 5, + DEVICE_PANEL_UNKNOWN = 6, +}; + +enum device_physical_location_vertical_position { + DEVICE_VERT_POS_UPPER = 0, + DEVICE_VERT_POS_CENTER = 1, + DEVICE_VERT_POS_LOWER = 2, +}; + +enum device_removable { + DEVICE_REMOVABLE_NOT_SUPPORTED = 0, + DEVICE_REMOVABLE_UNKNOWN = 1, + DEVICE_FIXED = 2, + DEVICE_REMOVABLE = 3, +}; + +enum devkmsg_log_bits { + __DEVKMSG_LOG_BIT_ON = 0, + __DEVKMSG_LOG_BIT_OFF = 1, + __DEVKMSG_LOG_BIT_LOCK = 2, +}; + +enum devkmsg_log_masks { + DEVKMSG_LOG_MASK_ON = 1, + DEVKMSG_LOG_MASK_OFF = 2, + DEVKMSG_LOG_MASK_LOCK = 4, +}; + +enum devlink_attr { + DEVLINK_ATTR_UNSPEC = 0, + DEVLINK_ATTR_BUS_NAME = 1, + DEVLINK_ATTR_DEV_NAME = 2, + DEVLINK_ATTR_PORT_INDEX = 3, + DEVLINK_ATTR_PORT_TYPE = 4, + DEVLINK_ATTR_PORT_DESIRED_TYPE = 5, + DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 6, + DEVLINK_ATTR_PORT_NETDEV_NAME = 7, + DEVLINK_ATTR_PORT_IBDEV_NAME = 8, + DEVLINK_ATTR_PORT_SPLIT_COUNT = 9, + DEVLINK_ATTR_PORT_SPLIT_GROUP = 10, + DEVLINK_ATTR_SB_INDEX = 11, + DEVLINK_ATTR_SB_SIZE = 12, + DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 13, + DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 14, + DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 15, + DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 16, + DEVLINK_ATTR_SB_POOL_INDEX = 17, + DEVLINK_ATTR_SB_POOL_TYPE = 18, + DEVLINK_ATTR_SB_POOL_SIZE = 19, + DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 20, + DEVLINK_ATTR_SB_THRESHOLD = 21, + DEVLINK_ATTR_SB_TC_INDEX = 22, + DEVLINK_ATTR_SB_OCC_CUR = 23, + DEVLINK_ATTR_SB_OCC_MAX = 24, + DEVLINK_ATTR_ESWITCH_MODE = 25, + DEVLINK_ATTR_ESWITCH_INLINE_MODE = 26, + DEVLINK_ATTR_DPIPE_TABLES = 27, + DEVLINK_ATTR_DPIPE_TABLE = 28, + DEVLINK_ATTR_DPIPE_TABLE_NAME = 29, + DEVLINK_ATTR_DPIPE_TABLE_SIZE = 30, + DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 31, + DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 32, + DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 33, + DEVLINK_ATTR_DPIPE_ENTRIES = 34, + DEVLINK_ATTR_DPIPE_ENTRY = 35, + DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 36, + DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 37, + DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 38, + DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 39, + DEVLINK_ATTR_DPIPE_MATCH = 40, + DEVLINK_ATTR_DPIPE_MATCH_VALUE = 41, + DEVLINK_ATTR_DPIPE_MATCH_TYPE = 42, + DEVLINK_ATTR_DPIPE_ACTION = 43, + DEVLINK_ATTR_DPIPE_ACTION_VALUE = 44, + DEVLINK_ATTR_DPIPE_ACTION_TYPE = 45, + DEVLINK_ATTR_DPIPE_VALUE = 46, + DEVLINK_ATTR_DPIPE_VALUE_MASK = 47, + DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 48, + DEVLINK_ATTR_DPIPE_HEADERS = 49, + DEVLINK_ATTR_DPIPE_HEADER = 50, + DEVLINK_ATTR_DPIPE_HEADER_NAME = 51, + DEVLINK_ATTR_DPIPE_HEADER_ID = 52, + DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 53, + DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 54, + DEVLINK_ATTR_DPIPE_HEADER_INDEX = 55, + DEVLINK_ATTR_DPIPE_FIELD = 56, + DEVLINK_ATTR_DPIPE_FIELD_NAME = 57, + DEVLINK_ATTR_DPIPE_FIELD_ID = 58, + DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 59, + DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 60, + DEVLINK_ATTR_PAD = 61, + DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 62, + DEVLINK_ATTR_RESOURCE_LIST = 63, + DEVLINK_ATTR_RESOURCE = 64, + DEVLINK_ATTR_RESOURCE_NAME = 65, + DEVLINK_ATTR_RESOURCE_ID = 66, + DEVLINK_ATTR_RESOURCE_SIZE = 67, + DEVLINK_ATTR_RESOURCE_SIZE_NEW = 68, + DEVLINK_ATTR_RESOURCE_SIZE_VALID = 69, + DEVLINK_ATTR_RESOURCE_SIZE_MIN = 70, + DEVLINK_ATTR_RESOURCE_SIZE_MAX = 71, + DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 72, + DEVLINK_ATTR_RESOURCE_UNIT = 73, + DEVLINK_ATTR_RESOURCE_OCC = 74, + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 75, + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 76, + DEVLINK_ATTR_PORT_FLAVOUR = 77, + DEVLINK_ATTR_PORT_NUMBER = 78, + DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 79, + DEVLINK_ATTR_PARAM = 80, + DEVLINK_ATTR_PARAM_NAME = 81, + DEVLINK_ATTR_PARAM_GENERIC = 82, + DEVLINK_ATTR_PARAM_TYPE = 83, + DEVLINK_ATTR_PARAM_VALUES_LIST = 84, + DEVLINK_ATTR_PARAM_VALUE = 85, + DEVLINK_ATTR_PARAM_VALUE_DATA = 86, + DEVLINK_ATTR_PARAM_VALUE_CMODE = 87, + DEVLINK_ATTR_REGION_NAME = 88, + DEVLINK_ATTR_REGION_SIZE = 89, + DEVLINK_ATTR_REGION_SNAPSHOTS = 90, + DEVLINK_ATTR_REGION_SNAPSHOT = 91, + DEVLINK_ATTR_REGION_SNAPSHOT_ID = 92, + DEVLINK_ATTR_REGION_CHUNKS = 93, + DEVLINK_ATTR_REGION_CHUNK = 94, + DEVLINK_ATTR_REGION_CHUNK_DATA = 95, + DEVLINK_ATTR_REGION_CHUNK_ADDR = 96, + DEVLINK_ATTR_REGION_CHUNK_LEN = 97, + DEVLINK_ATTR_INFO_DRIVER_NAME = 98, + DEVLINK_ATTR_INFO_SERIAL_NUMBER = 99, + DEVLINK_ATTR_INFO_VERSION_FIXED = 100, + DEVLINK_ATTR_INFO_VERSION_RUNNING = 101, + DEVLINK_ATTR_INFO_VERSION_STORED = 102, + DEVLINK_ATTR_INFO_VERSION_NAME = 103, + DEVLINK_ATTR_INFO_VERSION_VALUE = 104, + DEVLINK_ATTR_SB_POOL_CELL_SIZE = 105, + DEVLINK_ATTR_FMSG = 106, + DEVLINK_ATTR_FMSG_OBJ_NEST_START = 107, + DEVLINK_ATTR_FMSG_PAIR_NEST_START = 108, + DEVLINK_ATTR_FMSG_ARR_NEST_START = 109, + DEVLINK_ATTR_FMSG_NEST_END = 110, + DEVLINK_ATTR_FMSG_OBJ_NAME = 111, + DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 112, + DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 113, + DEVLINK_ATTR_HEALTH_REPORTER = 114, + DEVLINK_ATTR_HEALTH_REPORTER_NAME = 115, + DEVLINK_ATTR_HEALTH_REPORTER_STATE = 116, + DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 117, + DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 118, + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 119, + DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 120, + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 121, + DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 122, + DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 123, + DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 124, + DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 125, + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 126, + DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 127, + DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 128, + DEVLINK_ATTR_STATS = 129, + DEVLINK_ATTR_TRAP_NAME = 130, + DEVLINK_ATTR_TRAP_ACTION = 131, + DEVLINK_ATTR_TRAP_TYPE = 132, + DEVLINK_ATTR_TRAP_GENERIC = 133, + DEVLINK_ATTR_TRAP_METADATA = 134, + DEVLINK_ATTR_TRAP_GROUP_NAME = 135, + DEVLINK_ATTR_RELOAD_FAILED = 136, + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 137, + DEVLINK_ATTR_NETNS_FD = 138, + DEVLINK_ATTR_NETNS_PID = 139, + DEVLINK_ATTR_NETNS_ID = 140, + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 141, + DEVLINK_ATTR_TRAP_POLICER_ID = 142, + DEVLINK_ATTR_TRAP_POLICER_RATE = 143, + DEVLINK_ATTR_TRAP_POLICER_BURST = 144, + DEVLINK_ATTR_PORT_FUNCTION = 145, + DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 146, + DEVLINK_ATTR_PORT_LANES = 147, + DEVLINK_ATTR_PORT_SPLITTABLE = 148, + DEVLINK_ATTR_PORT_EXTERNAL = 149, + DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 150, + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 151, + DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 152, + DEVLINK_ATTR_RELOAD_ACTION = 153, + DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 154, + DEVLINK_ATTR_RELOAD_LIMITS = 155, + DEVLINK_ATTR_DEV_STATS = 156, + DEVLINK_ATTR_RELOAD_STATS = 157, + DEVLINK_ATTR_RELOAD_STATS_ENTRY = 158, + DEVLINK_ATTR_RELOAD_STATS_LIMIT = 159, + DEVLINK_ATTR_RELOAD_STATS_VALUE = 160, + DEVLINK_ATTR_REMOTE_RELOAD_STATS = 161, + DEVLINK_ATTR_RELOAD_ACTION_INFO = 162, + DEVLINK_ATTR_RELOAD_ACTION_STATS = 163, + DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 164, + DEVLINK_ATTR_RATE_TYPE = 165, + DEVLINK_ATTR_RATE_TX_SHARE = 166, + DEVLINK_ATTR_RATE_TX_MAX = 167, + DEVLINK_ATTR_RATE_NODE_NAME = 168, + DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 169, + DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 170, + DEVLINK_ATTR_LINECARD_INDEX = 171, + DEVLINK_ATTR_LINECARD_STATE = 172, + DEVLINK_ATTR_LINECARD_TYPE = 173, + DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 174, + DEVLINK_ATTR_NESTED_DEVLINK = 175, + DEVLINK_ATTR_SELFTESTS = 176, + DEVLINK_ATTR_RATE_TX_PRIORITY = 177, + DEVLINK_ATTR_RATE_TX_WEIGHT = 178, + DEVLINK_ATTR_REGION_DIRECT = 179, + __DEVLINK_ATTR_MAX = 180, + DEVLINK_ATTR_MAX = 179, +}; + +enum 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, +}; + +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_NOTIFY_FILTER_SET = 84, + __DEVLINK_CMD_MAX = 85, + DEVLINK_CMD_MAX = 84, +}; + +enum devlink_dpipe_action_type { + DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0, +}; + +enum devlink_dpipe_field_ethernet_id { + DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0, +}; + +enum devlink_dpipe_field_ipv4_id { + DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0, +}; + +enum devlink_dpipe_field_ipv6_id { + DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0, +}; + +enum devlink_dpipe_field_mapping_type { + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0, + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 1, +}; + +enum devlink_dpipe_header_id { + DEVLINK_DPIPE_HEADER_ETHERNET = 0, + DEVLINK_DPIPE_HEADER_IPV4 = 1, + DEVLINK_DPIPE_HEADER_IPV6 = 2, +}; + +enum devlink_dpipe_match_type { + DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0, +}; + +enum devlink_eswitch_encap_mode { + DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0, + DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1, +}; + +enum devlink_health_reporter_state { + DEVLINK_HEALTH_REPORTER_STATE_HEALTHY = 0, + DEVLINK_HEALTH_REPORTER_STATE_ERROR = 1, +}; + +enum devlink_info_version_type { + DEVLINK_INFO_VERSION_TYPE_NONE = 0, + DEVLINK_INFO_VERSION_TYPE_COMPONENT = 1, +}; + +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, +}; + +enum devlink_multicast_groups { + DEVLINK_MCGRP_CONFIG = 0, +}; + +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, +}; + +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 devlink_param_type { + DEVLINK_PARAM_TYPE_U8 = 0, + DEVLINK_PARAM_TYPE_U16 = 1, + DEVLINK_PARAM_TYPE_U32 = 2, + DEVLINK_PARAM_TYPE_STRING = 3, + DEVLINK_PARAM_TYPE_BOOL = 4, +}; + +enum devlink_port_flavour { + DEVLINK_PORT_FLAVOUR_PHYSICAL = 0, + DEVLINK_PORT_FLAVOUR_CPU = 1, + DEVLINK_PORT_FLAVOUR_DSA = 2, + DEVLINK_PORT_FLAVOUR_PCI_PF = 3, + DEVLINK_PORT_FLAVOUR_PCI_VF = 4, + DEVLINK_PORT_FLAVOUR_VIRTUAL = 5, + DEVLINK_PORT_FLAVOUR_UNUSED = 6, + DEVLINK_PORT_FLAVOUR_PCI_SF = 7, +}; + +enum devlink_port_fn_attr_cap { + DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT = 0, + DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT = 1, + DEVLINK_PORT_FN_ATTR_CAP_IPSEC_CRYPTO_BIT = 2, + DEVLINK_PORT_FN_ATTR_CAP_IPSEC_PACKET_BIT = 3, + __DEVLINK_PORT_FN_ATTR_CAPS_MAX = 4, +}; + +enum devlink_port_fn_opstate { + DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, + DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, +}; + +enum devlink_port_fn_state { + DEVLINK_PORT_FN_STATE_INACTIVE = 0, + DEVLINK_PORT_FN_STATE_ACTIVE = 1, +}; + +enum devlink_port_function_attr { + DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0, + DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 1, + DEVLINK_PORT_FN_ATTR_STATE = 2, + DEVLINK_PORT_FN_ATTR_OPSTATE = 3, + DEVLINK_PORT_FN_ATTR_CAPS = 4, + DEVLINK_PORT_FN_ATTR_DEVLINK = 5, + DEVLINK_PORT_FN_ATTR_MAX_IO_EQS = 6, + __DEVLINK_PORT_FUNCTION_ATTR_MAX = 7, + DEVLINK_PORT_FUNCTION_ATTR_MAX = 6, +}; + +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_rate_type { + DEVLINK_RATE_TYPE_LEAF = 0, + DEVLINK_RATE_TYPE_NODE = 1, +}; + +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_resource_unit { + DEVLINK_RESOURCE_UNIT_ENTRY = 0, +}; + +enum devlink_sb_pool_type { + DEVLINK_SB_POOL_TYPE_INGRESS = 0, + DEVLINK_SB_POOL_TYPE_EGRESS = 1, +}; + +enum devlink_sb_threshold_type { + DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0, + DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 1, +}; + +enum devlink_selftest_status { + DEVLINK_SELFTEST_STATUS_SKIP = 0, + DEVLINK_SELFTEST_STATUS_PASS = 1, + DEVLINK_SELFTEST_STATUS_FAIL = 2, +}; + +enum devlink_trap_action { + DEVLINK_TRAP_ACTION_DROP = 0, + DEVLINK_TRAP_ACTION_TRAP = 1, + DEVLINK_TRAP_ACTION_MIRROR = 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, +}; + +enum devlink_trap_type { + DEVLINK_TRAP_TYPE_DROP = 0, + DEVLINK_TRAP_TYPE_EXCEPTION = 1, + DEVLINK_TRAP_TYPE_CONTROL = 2, +}; + +enum devm_ioremap_type { + DEVM_IOREMAP = 0, + DEVM_IOREMAP_UC = 1, + DEVM_IOREMAP_WC = 2, + DEVM_IOREMAP_NP = 3, +}; + +enum dfa_accept_flags { + ACCEPT_FLAG_OWNER = 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, +}; + +enum digest_type { + DIGEST_TYPE_IMA = 0, + DIGEST_TYPE_VERITY = 1, + DIGEST_TYPE__LAST = 2, +}; + +enum dim_cq_period_mode { + DIM_CQ_PERIOD_MODE_START_FROM_EQE = 0, + DIM_CQ_PERIOD_MODE_START_FROM_CQE = 1, + DIM_CQ_PERIOD_NUM_MODES = 2, +}; + +enum dim_state { + DIM_START_MEASURE = 0, + DIM_MEASURE_IN_PROGRESS = 1, + DIM_APPLY_NEW_PROFILE = 2, +}; + +enum dim_stats_state { + DIM_STATS_WORSE = 0, + DIM_STATS_SAME = 1, + DIM_STATS_BETTER = 2, +}; + +enum dim_step_result { + DIM_STEPPED = 0, + DIM_TOO_TIRED = 1, + DIM_ON_EDGE = 2, +}; + +enum dim_tune_state { + DIM_PARKING_ON_TOP = 0, + DIM_PARKING_TIRED = 1, + DIM_GOING_RIGHT = 2, + DIM_GOING_LEFT = 3, +}; + +enum display_flags { + DISPLAY_FLAGS_HSYNC_LOW = 1, + DISPLAY_FLAGS_HSYNC_HIGH = 2, + DISPLAY_FLAGS_VSYNC_LOW = 4, + DISPLAY_FLAGS_VSYNC_HIGH = 8, + DISPLAY_FLAGS_DE_LOW = 16, + DISPLAY_FLAGS_DE_HIGH = 32, + DISPLAY_FLAGS_PIXDATA_POSEDGE = 64, + DISPLAY_FLAGS_PIXDATA_NEGEDGE = 128, + DISPLAY_FLAGS_INTERLACED = 256, + DISPLAY_FLAGS_DOUBLESCAN = 512, + DISPLAY_FLAGS_DOUBLECLK = 1024, + DISPLAY_FLAGS_SYNC_POSEDGE = 2048, + DISPLAY_FLAGS_SYNC_NEGEDGE = 4096, +}; + +enum dl_bw_request { + dl_bw_req_deactivate = 0, + dl_bw_req_alloc = 1, + dl_bw_req_free = 2, +}; + +enum dl_dev_state { + DL_DEV_NO_DRIVER = 0, + DL_DEV_PROBING = 1, + DL_DEV_DRIVER_BOUND = 2, + DL_DEV_UNBINDING = 3, +}; + +enum dl_param { + DL_RUNTIME = 0, + DL_PERIOD = 1, +}; + +enum dm_io_mem_type { + DM_IO_PAGE_LIST = 0, + DM_IO_BIO = 1, + DM_IO_VMA = 2, + DM_IO_KMEM = 3, +}; + +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 dm_uevent_type { + DM_UEVENT_PATH_FAILED = 0, + DM_UEVENT_PATH_REINSTATED = 1, +}; + +enum dma_ctrl_flags { + DMA_PREP_INTERRUPT = 1, + DMA_CTRL_ACK = 2, + DMA_PREP_PQ_DISABLE_P = 4, + DMA_PREP_PQ_DISABLE_Q = 8, + DMA_PREP_CONTINUE = 16, + DMA_PREP_FENCE = 32, + DMA_CTRL_REUSE = 64, + DMA_PREP_CMD = 128, + DMA_PREP_REPEAT = 256, + DMA_PREP_LOAD_EOT = 512, +}; + +enum dma_data_direction { + DMA_BIDIRECTIONAL = 0, + DMA_TO_DEVICE = 1, + DMA_FROM_DEVICE = 2, + DMA_NONE = 3, +}; + +enum dma_desc_metadata_mode { + DESC_METADATA_NONE = 0, + DESC_METADATA_CLIENT = 1, + DESC_METADATA_ENGINE = 2, +}; + +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 dma_residue_granularity { + DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, + DMA_RESIDUE_GRANULARITY_SEGMENT = 1, + DMA_RESIDUE_GRANULARITY_BURST = 2, +}; + +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 dma_slave_buswidth { + DMA_SLAVE_BUSWIDTH_UNDEFINED = 0, + DMA_SLAVE_BUSWIDTH_1_BYTE = 1, + DMA_SLAVE_BUSWIDTH_2_BYTES = 2, + DMA_SLAVE_BUSWIDTH_3_BYTES = 3, + DMA_SLAVE_BUSWIDTH_4_BYTES = 4, + DMA_SLAVE_BUSWIDTH_8_BYTES = 8, + DMA_SLAVE_BUSWIDTH_16_BYTES = 16, + DMA_SLAVE_BUSWIDTH_32_BYTES = 32, + DMA_SLAVE_BUSWIDTH_64_BYTES = 64, + DMA_SLAVE_BUSWIDTH_128_BYTES = 128, +}; + +enum dma_status { + DMA_COMPLETE = 0, + DMA_IN_PROGRESS = 1, + DMA_PAUSED = 2, + DMA_ERROR = 3, + DMA_OUT_OF_ORDER = 4, +}; + +enum 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 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 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 dmaengine_tx_result { + DMA_TRANS_NOERROR = 0, + DMA_TRANS_READ_FAILED = 1, + DMA_TRANS_WRITE_FAILED = 2, + DMA_TRANS_ABORTED = 3, +}; + +enum dmi_device_type { + DMI_DEV_TYPE_ANY = 0, + DMI_DEV_TYPE_OTHER = 1, + DMI_DEV_TYPE_UNKNOWN = 2, + DMI_DEV_TYPE_VIDEO = 3, + DMI_DEV_TYPE_SCSI = 4, + DMI_DEV_TYPE_ETHERNET = 5, + DMI_DEV_TYPE_TOKENRING = 6, + DMI_DEV_TYPE_SOUND = 7, + DMI_DEV_TYPE_PATA = 8, + DMI_DEV_TYPE_SATA = 9, + DMI_DEV_TYPE_SAS = 10, + DMI_DEV_TYPE_IPMI = -1, + DMI_DEV_TYPE_OEM_STRING = -2, + DMI_DEV_TYPE_DEV_ONBOARD = -3, + DMI_DEV_TYPE_DEV_SLOT = -4, +}; + +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 dmi_field { + DMI_NONE = 0, + DMI_BIOS_VENDOR = 1, + DMI_BIOS_VERSION = 2, + DMI_BIOS_DATE = 3, + DMI_BIOS_RELEASE = 4, + DMI_EC_FIRMWARE_RELEASE = 5, + DMI_SYS_VENDOR = 6, + DMI_PRODUCT_NAME = 7, + DMI_PRODUCT_VERSION = 8, + DMI_PRODUCT_SERIAL = 9, + DMI_PRODUCT_UUID = 10, + DMI_PRODUCT_SKU = 11, + DMI_PRODUCT_FAMILY = 12, + DMI_BOARD_VENDOR = 13, + DMI_BOARD_NAME = 14, + DMI_BOARD_VERSION = 15, + DMI_BOARD_SERIAL = 16, + DMI_BOARD_ASSET_TAG = 17, + DMI_CHASSIS_VENDOR = 18, + DMI_CHASSIS_TYPE = 19, + DMI_CHASSIS_VERSION = 20, + DMI_CHASSIS_SERIAL = 21, + DMI_CHASSIS_ASSET_TAG = 22, + DMI_STRING_MAX = 23, + DMI_OEM_STRING = 24, +}; + +enum dns_lookup_status { + DNS_LOOKUP_NOT_DONE = 0, + DNS_LOOKUP_GOOD = 1, + DNS_LOOKUP_GOOD_WITH_BAD = 2, + DNS_LOOKUP_BAD = 3, + DNS_LOOKUP_GOT_NOT_FOUND = 4, + DNS_LOOKUP_GOT_LOCAL_FAILURE = 5, + DNS_LOOKUP_GOT_TEMP_FAILURE = 6, + DNS_LOOKUP_GOT_NS_FAILURE = 7, + NR__dns_lookup_status = 8, +}; + +enum dns_payload_content_type { + DNS_PAYLOAD_IS_SERVER_LIST = 0, +}; + +enum dock_callback_type { + DOCK_CALL_HANDLER = 0, + DOCK_CALL_FIXUP = 1, + DOCK_CALL_UEVENT = 2, +}; + +enum dpll_a { + DPLL_A_ID = 1, + DPLL_A_MODULE_NAME = 2, + DPLL_A_PAD = 3, + DPLL_A_CLOCK_ID = 4, + DPLL_A_MODE = 5, + DPLL_A_MODE_SUPPORTED = 6, + DPLL_A_LOCK_STATUS = 7, + DPLL_A_TEMP = 8, + DPLL_A_TYPE = 9, + DPLL_A_LOCK_STATUS_ERROR = 10, + DPLL_A_CLOCK_QUALITY_LEVEL = 11, + __DPLL_A_MAX = 12, + DPLL_A_MAX = 11, +}; + +enum dpll_a_pin { + DPLL_A_PIN_ID = 1, + DPLL_A_PIN_PARENT_ID = 2, + DPLL_A_PIN_MODULE_NAME = 3, + DPLL_A_PIN_PAD = 4, + DPLL_A_PIN_CLOCK_ID = 5, + DPLL_A_PIN_BOARD_LABEL = 6, + DPLL_A_PIN_PANEL_LABEL = 7, + DPLL_A_PIN_PACKAGE_LABEL = 8, + DPLL_A_PIN_TYPE = 9, + DPLL_A_PIN_DIRECTION = 10, + DPLL_A_PIN_FREQUENCY = 11, + DPLL_A_PIN_FREQUENCY_SUPPORTED = 12, + DPLL_A_PIN_FREQUENCY_MIN = 13, + DPLL_A_PIN_FREQUENCY_MAX = 14, + DPLL_A_PIN_PRIO = 15, + DPLL_A_PIN_STATE = 16, + DPLL_A_PIN_CAPABILITIES = 17, + DPLL_A_PIN_PARENT_DEVICE = 18, + DPLL_A_PIN_PARENT_PIN = 19, + DPLL_A_PIN_PHASE_ADJUST_MIN = 20, + DPLL_A_PIN_PHASE_ADJUST_MAX = 21, + DPLL_A_PIN_PHASE_ADJUST = 22, + DPLL_A_PIN_PHASE_OFFSET = 23, + DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET = 24, + DPLL_A_PIN_ESYNC_FREQUENCY = 25, + DPLL_A_PIN_ESYNC_FREQUENCY_SUPPORTED = 26, + DPLL_A_PIN_ESYNC_PULSE = 27, + __DPLL_A_PIN_MAX = 28, + DPLL_A_PIN_MAX = 27, +}; + +enum dpll_clock_quality_level { + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_PRC = 1, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_SSU_A = 2, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_SSU_B = 3, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EEC1 = 4, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_PRTC = 5, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EPRTC = 6, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EEEC = 7, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EPRC = 8, + __DPLL_CLOCK_QUALITY_LEVEL_MAX = 9, + DPLL_CLOCK_QUALITY_LEVEL_MAX = 8, +}; + +enum dpll_cmd { + DPLL_CMD_DEVICE_ID_GET = 1, + DPLL_CMD_DEVICE_GET = 2, + DPLL_CMD_DEVICE_SET = 3, + DPLL_CMD_DEVICE_CREATE_NTF = 4, + DPLL_CMD_DEVICE_DELETE_NTF = 5, + DPLL_CMD_DEVICE_CHANGE_NTF = 6, + DPLL_CMD_PIN_ID_GET = 7, + DPLL_CMD_PIN_GET = 8, + DPLL_CMD_PIN_SET = 9, + DPLL_CMD_PIN_CREATE_NTF = 10, + DPLL_CMD_PIN_DELETE_NTF = 11, + DPLL_CMD_PIN_CHANGE_NTF = 12, + __DPLL_CMD_MAX = 13, + DPLL_CMD_MAX = 12, +}; + +enum dpll_lock_status { + DPLL_LOCK_STATUS_UNLOCKED = 1, + DPLL_LOCK_STATUS_LOCKED = 2, + DPLL_LOCK_STATUS_LOCKED_HO_ACQ = 3, + DPLL_LOCK_STATUS_HOLDOVER = 4, + __DPLL_LOCK_STATUS_MAX = 5, + DPLL_LOCK_STATUS_MAX = 4, +}; + +enum dpll_lock_status_error { + DPLL_LOCK_STATUS_ERROR_NONE = 1, + DPLL_LOCK_STATUS_ERROR_UNDEFINED = 2, + DPLL_LOCK_STATUS_ERROR_MEDIA_DOWN = 3, + DPLL_LOCK_STATUS_ERROR_FRACTIONAL_FREQUENCY_OFFSET_TOO_HIGH = 4, + __DPLL_LOCK_STATUS_ERROR_MAX = 5, + DPLL_LOCK_STATUS_ERROR_MAX = 4, +}; + +enum dpll_mode { + DPLL_MODE_MANUAL = 1, + DPLL_MODE_AUTOMATIC = 2, + __DPLL_MODE_MAX = 3, + DPLL_MODE_MAX = 2, +}; + +enum dpll_pin_capabilities { + DPLL_PIN_CAPABILITIES_DIRECTION_CAN_CHANGE = 1, + DPLL_PIN_CAPABILITIES_PRIORITY_CAN_CHANGE = 2, + DPLL_PIN_CAPABILITIES_STATE_CAN_CHANGE = 4, +}; + +enum dpll_pin_direction { + DPLL_PIN_DIRECTION_INPUT = 1, + DPLL_PIN_DIRECTION_OUTPUT = 2, + __DPLL_PIN_DIRECTION_MAX = 3, + DPLL_PIN_DIRECTION_MAX = 2, +}; + +enum dpll_pin_state { + DPLL_PIN_STATE_CONNECTED = 1, + DPLL_PIN_STATE_DISCONNECTED = 2, + DPLL_PIN_STATE_SELECTABLE = 3, + __DPLL_PIN_STATE_MAX = 4, + DPLL_PIN_STATE_MAX = 3, +}; + +enum dpll_pin_type { + DPLL_PIN_TYPE_MUX = 1, + DPLL_PIN_TYPE_EXT = 2, + DPLL_PIN_TYPE_SYNCE_ETH_PORT = 3, + DPLL_PIN_TYPE_INT_OSCILLATOR = 4, + DPLL_PIN_TYPE_GNSS = 5, + __DPLL_PIN_TYPE_MAX = 6, + DPLL_PIN_TYPE_MAX = 5, +}; + +enum dpll_type { + DPLL_TYPE_PPS = 1, + DPLL_TYPE_EEC = 2, + __DPLL_TYPE_MAX = 3, + DPLL_TYPE_MAX = 2, +}; + +enum dpm_order { + DPM_ORDER_NONE = 0, + DPM_ORDER_DEV_AFTER_PARENT = 1, + DPM_ORDER_PARENT_BEFORE_DEV = 2, + DPM_ORDER_DEV_LAST = 3, +}; + +enum drbg_prefixes { + DRBG_PREFIX0 = 0, + DRBG_PREFIX1 = 1, + DRBG_PREFIX2 = 2, + DRBG_PREFIX3 = 3, +}; + +enum drbg_seed_state { + DRBG_SEED_STATE_UNSEEDED = 0, + DRBG_SEED_STATE_PARTIAL = 1, + DRBG_SEED_STATE_FULL = 2, +}; + +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, + DRM_BRIDGE_OP_HDMI = 16, +}; + +enum drm_bus_flags { + DRM_BUS_FLAG_DE_LOW = 1, + DRM_BUS_FLAG_DE_HIGH = 2, + DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE = 4, + DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE = 8, + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE = 8, + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE = 4, + DRM_BUS_FLAG_DATA_MSB_TO_LSB = 16, + DRM_BUS_FLAG_DATA_LSB_TO_MSB = 32, + DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE = 64, + DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE = 128, + DRM_BUS_FLAG_SYNC_SAMPLE_POSEDGE = 128, + DRM_BUS_FLAG_SYNC_SAMPLE_NEGEDGE = 64, + DRM_BUS_FLAG_SHARP_SIGNALS = 256, +}; + +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_lut_tests { + DRM_COLOR_LUT_EQUAL_CHANNELS = 1, + DRM_COLOR_LUT_NON_DECREASING = 2, +}; + +enum drm_color_range { + DRM_COLOR_YCBCR_LIMITED_RANGE = 0, + DRM_COLOR_YCBCR_FULL_RANGE = 1, + DRM_COLOR_RANGE_MAX = 2, +}; + +enum drm_colorspace { + DRM_MODE_COLORIMETRY_DEFAULT = 0, + DRM_MODE_COLORIMETRY_NO_DATA = 0, + DRM_MODE_COLORIMETRY_SMPTE_170M_YCC = 1, + DRM_MODE_COLORIMETRY_BT709_YCC = 2, + DRM_MODE_COLORIMETRY_XVYCC_601 = 3, + DRM_MODE_COLORIMETRY_XVYCC_709 = 4, + DRM_MODE_COLORIMETRY_SYCC_601 = 5, + DRM_MODE_COLORIMETRY_OPYCC_601 = 6, + DRM_MODE_COLORIMETRY_OPRGB = 7, + DRM_MODE_COLORIMETRY_BT2020_CYCC = 8, + DRM_MODE_COLORIMETRY_BT2020_RGB = 9, + DRM_MODE_COLORIMETRY_BT2020_YCC = 10, + DRM_MODE_COLORIMETRY_DCI_P3_RGB_D65 = 11, + DRM_MODE_COLORIMETRY_DCI_P3_RGB_THEATER = 12, + DRM_MODE_COLORIMETRY_RGB_WIDE_FIXED = 13, + DRM_MODE_COLORIMETRY_RGB_WIDE_FLOAT = 14, + DRM_MODE_COLORIMETRY_BT601_YCC = 15, + DRM_MODE_COLORIMETRY_COUNT = 16, +}; + +enum drm_connector_force { + DRM_FORCE_UNSPECIFIED = 0, + DRM_FORCE_OFF = 1, + DRM_FORCE_ON = 2, + DRM_FORCE_ON_DIGITAL = 3, +}; + +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 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_MONOCHROME = 7, + DRM_MODE_TV_MODE_MAX = 8, +}; + +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_driver_feature { + DRIVER_GEM = 1, + DRIVER_MODESET = 2, + DRIVER_RENDER = 8, + DRIVER_ATOMIC = 16, + DRIVER_SYNCOBJ = 32, + DRIVER_SYNCOBJ_TIMELINE = 64, + DRIVER_COMPUTE_ACCEL = 128, + DRIVER_GEM_GPUVA = 256, + DRIVER_CURSOR_HOTSPOT = 512, + DRIVER_USE_AGP = 33554432, + DRIVER_LEGACY = 67108864, + DRIVER_PCI_DMA = 134217728, + DRIVER_SG = 268435456, + DRIVER_HAVE_DMA = 536870912, + DRIVER_HAVE_IRQ = 1073741824, +}; + +enum drm_gem_object_status { + DRM_GEM_OBJECT_RESIDENT = 1, + DRM_GEM_OBJECT_PURGEABLE = 2, + DRM_GEM_OBJECT_ACTIVE = 4, +}; + +enum drm_gpuva_flags { + DRM_GPUVA_INVALIDATED = 1, + DRM_GPUVA_SPARSE = 2, + DRM_GPUVA_USERBITS = 4, +}; + +enum drm_gpuva_op_type { + DRM_GPUVA_OP_MAP = 0, + DRM_GPUVA_OP_REMAP = 1, + DRM_GPUVA_OP_UNMAP = 2, + DRM_GPUVA_OP_PREFETCH = 3, +}; + +enum drm_gpuvm_flags { + DRM_GPUVM_RESV_PROTECTED = 1, + DRM_GPUVM_USERBITS = 2, +}; + +enum drm_hdmi_broadcast_rgb { + DRM_HDMI_BROADCAST_RGB_AUTO = 0, + DRM_HDMI_BROADCAST_RGB_FULL = 1, + DRM_HDMI_BROADCAST_RGB_LIMITED = 2, +}; + +enum drm_ioctl_flags { + DRM_AUTH = 1, + DRM_MASTER = 2, + DRM_ROOT_ONLY = 4, + DRM_RENDER_ALLOW = 32, +}; + +enum drm_link_status { + DRM_LINK_STATUS_GOOD = 0, + DRM_LINK_STATUS_BAD = 1, +}; + +enum drm_minor_type { + DRM_MINOR_PRIMARY = 0, + DRM_MINOR_CONTROL = 1, + DRM_MINOR_RENDER = 2, + DRM_MINOR_ACCEL = 32, +}; + +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 drm_mode_analog { + DRM_MODE_ANALOG_NTSC = 0, + DRM_MODE_ANALOG_PAL = 1, +}; + +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 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_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_plane_type { + DRM_PLANE_TYPE_OVERLAY = 0, + DRM_PLANE_TYPE_PRIMARY = 1, + DRM_PLANE_TYPE_CURSOR = 2, +}; + +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_scaling_filter { + DRM_SCALING_FILTER_DEFAULT = 0, + DRM_SCALING_FILTER_NEAREST_NEIGHBOR = 1, +}; + +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, +}; + +enum dsa_db_type { + DSA_DB_PORT = 0, + DSA_DB_LAG = 1, + DSA_DB_BRIDGE = 2, +}; + +enum dsa_tag_protocol { + DSA_TAG_PROTO_NONE = 0, + DSA_TAG_PROTO_BRCM = 1, + DSA_TAG_PROTO_BRCM_LEGACY = 22, + DSA_TAG_PROTO_BRCM_PREPEND = 2, + DSA_TAG_PROTO_DSA = 3, + DSA_TAG_PROTO_EDSA = 4, + DSA_TAG_PROTO_GSWIP = 5, + DSA_TAG_PROTO_KSZ9477 = 6, + DSA_TAG_PROTO_KSZ9893 = 7, + DSA_TAG_PROTO_LAN9303 = 8, + DSA_TAG_PROTO_MTK = 9, + DSA_TAG_PROTO_QCA = 10, + DSA_TAG_PROTO_TRAILER = 11, + DSA_TAG_PROTO_8021Q = 12, + DSA_TAG_PROTO_SJA1105 = 13, + DSA_TAG_PROTO_KSZ8795 = 14, + DSA_TAG_PROTO_OCELOT = 15, + DSA_TAG_PROTO_AR9331 = 16, + DSA_TAG_PROTO_RTL4_A = 17, + DSA_TAG_PROTO_HELLCREEK = 18, + DSA_TAG_PROTO_XRS700X = 19, + DSA_TAG_PROTO_OCELOT_8021Q = 20, + DSA_TAG_PROTO_SEVILLE = 21, + DSA_TAG_PROTO_SJA1110 = 23, + DSA_TAG_PROTO_RTL8_4 = 24, + DSA_TAG_PROTO_RTL8_4T = 25, + DSA_TAG_PROTO_RZN1_A5PSW = 26, + DSA_TAG_PROTO_LAN937X = 27, + DSA_TAG_PROTO_VSC73XX_8021Q = 28, +}; + +enum dw_edma_chip_flags { + DW_EDMA_CHIP_LOCAL = 1, +}; + +enum dw_edma_map_format { + EDMA_MF_EDMA_LEGACY = 0, + EDMA_MF_EDMA_UNROLL = 1, + EDMA_MF_HDMA_COMPAT = 5, + EDMA_MF_HDMA_NATIVE = 7, +}; + +enum dw_pcie_app_clk { + DW_PCIE_DBI_CLK = 0, + DW_PCIE_MSTR_CLK = 1, + DW_PCIE_SLV_CLK = 2, + DW_PCIE_NUM_APP_CLKS = 3, +}; + +enum dw_pcie_app_rst { + DW_PCIE_DBI_RST = 0, + DW_PCIE_MSTR_RST = 1, + DW_PCIE_SLV_RST = 2, + DW_PCIE_NUM_APP_RSTS = 3, +}; + +enum dw_pcie_core_clk { + DW_PCIE_PIPE_CLK = 0, + DW_PCIE_CORE_CLK = 1, + DW_PCIE_AUX_CLK = 2, + DW_PCIE_REF_CLK = 3, + DW_PCIE_NUM_CORE_CLKS = 4, +}; + +enum dw_pcie_core_rst { + DW_PCIE_NON_STICKY_RST = 0, + DW_PCIE_STICKY_RST = 1, + DW_PCIE_CORE_RST = 2, + DW_PCIE_PIPE_RST = 3, + DW_PCIE_PHY_RST = 4, + DW_PCIE_HOT_RST = 5, + DW_PCIE_PWR_RST = 6, + DW_PCIE_NUM_CORE_RSTS = 7, +}; + +enum dw_pcie_device_mode { + DW_PCIE_UNKNOWN_TYPE = 0, + DW_PCIE_EP_TYPE = 1, + DW_PCIE_LEG_EP_TYPE = 2, + DW_PCIE_RC_TYPE = 3, +}; + +enum dw_pcie_ltssm { + DW_PCIE_LTSSM_DETECT_QUIET = 0, + DW_PCIE_LTSSM_DETECT_ACT = 1, + DW_PCIE_LTSSM_DETECT_WAIT = 6, + DW_PCIE_LTSSM_L0 = 17, + DW_PCIE_LTSSM_L2_IDLE = 21, + DW_PCIE_LTSSM_UNKNOWN = 4294967295, +}; + +enum dwc2_control_phase { + DWC2_CONTROL_SETUP = 0, + DWC2_CONTROL_DATA = 1, + DWC2_CONTROL_STATUS = 2, +}; + +enum dwc2_halt_status { + DWC2_HC_XFER_NO_HALT_STATUS = 0, + DWC2_HC_XFER_COMPLETE = 1, + DWC2_HC_XFER_URB_COMPLETE = 2, + DWC2_HC_XFER_ACK = 3, + DWC2_HC_XFER_NAK = 4, + DWC2_HC_XFER_NYET = 5, + DWC2_HC_XFER_STALL = 6, + DWC2_HC_XFER_XACT_ERR = 7, + DWC2_HC_XFER_FRAME_OVERRUN = 8, + DWC2_HC_XFER_BABBLE_ERR = 9, + DWC2_HC_XFER_DATA_TOGGLE_ERR = 10, + DWC2_HC_XFER_AHB_ERR = 11, + DWC2_HC_XFER_PERIODIC_INCOMPLETE = 12, + DWC2_HC_XFER_URB_DEQUEUE = 13, +}; + +enum dwc2_hsotg_dmamode { + S3C_HSOTG_DMA_NONE = 0, + S3C_HSOTG_DMA_ONLY = 1, + S3C_HSOTG_DMA_DRV = 2, +}; + +enum dwc2_lx_state { + DWC2_L0 = 0, + DWC2_L1 = 1, + DWC2_L2 = 2, + DWC2_L3 = 3, +}; + +enum dwc2_transaction_type { + DWC2_TRANSACTION_NONE = 0, + DWC2_TRANSACTION_PERIODIC = 1, + DWC2_TRANSACTION_NON_PERIODIC = 2, + DWC2_TRANSACTION_ALL = 3, +}; + +enum dynevent_type { + DYNEVENT_TYPE_SYNTH = 1, + DYNEVENT_TYPE_KPROBE = 2, + DYNEVENT_TYPE_NONE = 3, +}; + +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 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_comms_status { + EC_COMMS_STATUS_PROCESSING = 1, +}; + +enum ec_led_colors { + EC_LED_COLOR_RED = 0, + EC_LED_COLOR_GREEN = 1, + EC_LED_COLOR_BLUE = 2, + EC_LED_COLOR_YELLOW = 3, + EC_LED_COLOR_WHITE = 4, + EC_LED_COLOR_AMBER = 5, + EC_LED_COLOR_COUNT = 6, +}; + +enum ec_mkbp_event { + EC_MKBP_EVENT_KEY_MATRIX = 0, + EC_MKBP_EVENT_HOST_EVENT = 1, + EC_MKBP_EVENT_SENSOR_FIFO = 2, + EC_MKBP_EVENT_BUTTON = 3, + EC_MKBP_EVENT_SWITCH = 4, + EC_MKBP_EVENT_FINGERPRINT = 5, + EC_MKBP_EVENT_SYSRQ = 6, + EC_MKBP_EVENT_HOST_EVENT64 = 7, + EC_MKBP_EVENT_CEC_EVENT = 8, + EC_MKBP_EVENT_CEC_MESSAGE = 9, + EC_MKBP_EVENT_PCHG = 12, + EC_MKBP_EVENT_COUNT = 13, +}; + +enum ec_status { + EC_RES_SUCCESS = 0, + EC_RES_INVALID_COMMAND = 1, + EC_RES_ERROR = 2, + EC_RES_INVALID_PARAM = 3, + EC_RES_ACCESS_DENIED = 4, + EC_RES_INVALID_RESPONSE = 5, + EC_RES_INVALID_VERSION = 6, + EC_RES_INVALID_CHECKSUM = 7, + EC_RES_IN_PROGRESS = 8, + EC_RES_UNAVAILABLE = 9, + EC_RES_TIMEOUT = 10, + EC_RES_OVERFLOW = 11, + EC_RES_INVALID_HEADER = 12, + EC_RES_REQUEST_TRUNCATED = 13, + EC_RES_RESPONSE_TOO_BIG = 14, + EC_RES_BUS_ERROR = 15, + EC_RES_BUSY = 16, + EC_RES_INVALID_HEADER_VERSION = 17, + EC_RES_INVALID_HEADER_CRC = 18, + EC_RES_INVALID_DATA_CRC = 19, + EC_RES_DUP_UNAVAILABLE = 20, +}; + +enum ec_temp_thresholds { + EC_TEMP_THRESH_WARN = 0, + EC_TEMP_THRESH_HIGH = 1, + EC_TEMP_THRESH_HALT = 2, + EC_TEMP_THRESH_COUNT = 3, +}; + +enum ecryptfs_token_types { + ECRYPTFS_PASSWORD = 0, + ECRYPTFS_PRIVATE_KEY = 1, +}; + +enum edac_mc_layer_type { + EDAC_MC_LAYER_BRANCH = 0, + EDAC_MC_LAYER_CHANNEL = 1, + EDAC_MC_LAYER_SLOT = 2, + EDAC_MC_LAYER_CHIP_SELECT = 3, + EDAC_MC_LAYER_ALL_MEM = 4, +}; + +enum edac_type { + EDAC_UNKNOWN = 0, + EDAC_NONE = 1, + EDAC_RESERVED = 2, + EDAC_PARITY = 3, + EDAC_EC = 4, + EDAC_SECDED = 5, + EDAC_S2ECD2ED = 6, + EDAC_S4ECD4ED = 7, + EDAC_S8ECD8ED = 8, + EDAC_S16ECD16ED = 9, +}; + +enum 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, +}; + +enum efi_rts_ids { + EFI_NONE = 0, + EFI_GET_TIME = 1, + EFI_SET_TIME = 2, + EFI_GET_WAKEUP_TIME = 3, + EFI_SET_WAKEUP_TIME = 4, + EFI_GET_VARIABLE = 5, + EFI_GET_NEXT_VARIABLE = 6, + EFI_SET_VARIABLE = 7, + EFI_QUERY_VARIABLE_INFO = 8, + EFI_GET_NEXT_HIGH_MONO_COUNT = 9, + EFI_RESET_SYSTEM = 10, + EFI_UPDATE_CAPSULE = 11, + EFI_QUERY_CAPSULE_CAPS = 12, + EFI_ACPI_PRM_HANDLER = 13, +}; + +enum efi_secureboot_mode { + efi_secureboot_mode_unset = 0, + efi_secureboot_mode_unknown = 1, + efi_secureboot_mode_disabled = 2, + efi_secureboot_mode_enabled = 3, +}; + +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, +}; + +enum elants_chip_id { + EKTH3500 = 0, + EKTF3624 = 1, +}; + +enum elants_iap_mode { + ELAN_IAP_OPERATIONAL = 0, + ELAN_IAP_RECOVERY = 1, +}; + +enum elants_state { + ELAN_STATE_NORMAL = 0, + ELAN_WAIT_QUEUE_HEADER = 1, + ELAN_WAIT_RECALIBRATION = 2, +}; + +enum elv_merge { + ELEVATOR_NO_MERGE = 0, + ELEVATOR_FRONT_MERGE = 1, + ELEVATOR_BACK_MERGE = 2, + ELEVATOR_DISCARD_MERGE = 3, +}; + +enum enable_type { + undefined = -1, + user_disabled = 0, + auto_disabled = 1, + user_enabled = 2, + auto_enabled = 3, +}; + +enum energy_perf_value_index { + EPB_INDEX_PERFORMANCE = 0, + EPB_INDEX_BALANCE_PERFORMANCE = 1, + EPB_INDEX_NORMAL = 2, + EPB_INDEX_BALANCE_POWERSAVE = 3, + EPB_INDEX_POWERSAVE = 4, +}; + +enum energy_perf_value_index___2 { + EPP_INDEX_DEFAULT = 0, + EPP_INDEX_PERFORMANCE = 1, + EPP_INDEX_BALANCE_PERFORMANCE = 2, + EPP_INDEX_BALANCE_POWERSAVE = 3, + EPP_INDEX_POWERSAVE = 4, +}; + +enum environment_cap { + ENVIRON_ANY = 0, + ENVIRON_INDOOR = 1, + ENVIRON_OUTDOOR = 2, +}; + +enum err_types { + ERR_TYPE_CACHE = 0, + ERR_TYPE_TLB = 1, + ERR_TYPE_BUS = 2, + ERR_TYPE_MS = 3, + N_ERR_TYPES = 4, +}; + +enum error_detector { + ERROR_DETECTOR_KFENCE = 0, + ERROR_DETECTOR_KASAN = 1, + ERROR_DETECTOR_WARN = 2, +}; + +enum es_result { + ES_OK = 0, + ES_UNSUPPORTED = 1, + ES_VMM_ERROR = 2, + ES_DECODE_FAILED = 3, + ES_EXCEPTION = 4, + ES_RETRY = 5, +}; + +enum ethnl_sock_type { + ETHTOOL_SOCK_TYPE_MODULE_FW_FLASH = 0, +}; + +enum ethtool_c33_pse_admin_state { + ETHTOOL_C33_PSE_ADMIN_STATE_UNKNOWN = 1, + ETHTOOL_C33_PSE_ADMIN_STATE_DISABLED = 2, + ETHTOOL_C33_PSE_ADMIN_STATE_ENABLED = 3, +}; + +enum ethtool_c33_pse_ext_state { + ETHTOOL_C33_PSE_EXT_STATE_ERROR_CONDITION = 1, + ETHTOOL_C33_PSE_EXT_STATE_MR_MPS_VALID = 2, + ETHTOOL_C33_PSE_EXT_STATE_MR_PSE_ENABLE = 3, + ETHTOOL_C33_PSE_EXT_STATE_OPTION_DETECT_TED = 4, + ETHTOOL_C33_PSE_EXT_STATE_OPTION_VPORT_LIM = 5, + ETHTOOL_C33_PSE_EXT_STATE_OVLD_DETECTED = 6, + ETHTOOL_C33_PSE_EXT_STATE_PD_DLL_POWER_TYPE = 7, + ETHTOOL_C33_PSE_EXT_STATE_POWER_NOT_AVAILABLE = 8, + ETHTOOL_C33_PSE_EXT_STATE_SHORT_DETECTED = 9, +}; + +enum ethtool_c33_pse_ext_substate_error_condition { + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_NON_EXISTING_PORT = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNDEFINED_PORT = 2, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_INTERNAL_HW_FAULT = 3, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_COMM_ERROR_AFTER_FORCE_ON = 4, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNKNOWN_PORT_STATUS = 5, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_TURN_OFF = 6, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_FORCE_SHUTDOWN = 7, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_CONFIG_CHANGE = 8, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_DETECTED_OVER_TEMP = 9, +}; + +enum ethtool_c33_pse_ext_substate_mr_pse_enable { + ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_PSE_ENABLE_DISABLE_PIN_ACTIVE = 1, +}; + +enum ethtool_c33_pse_ext_substate_option_detect_ted { + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_DET_IN_PROCESS = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_CONNECTION_CHECK_ERROR = 2, +}; + +enum ethtool_c33_pse_ext_substate_option_vport_lim { + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_HIGH_VOLTAGE = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_LOW_VOLTAGE = 2, + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_VOLTAGE_INJECTION = 3, +}; + +enum ethtool_c33_pse_ext_substate_ovld_detected { + ETHTOOL_C33_PSE_EXT_SUBSTATE_OVLD_DETECTED_OVERLOAD = 1, +}; + +enum ethtool_c33_pse_ext_substate_power_not_available { + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_BUDGET_EXCEEDED = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PORT_PW_LIMIT_EXCEEDS_CONTROLLER_BUDGET = 2, + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PD_REQUEST_EXCEEDS_PORT_LIMIT = 3, + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_HW_PW_LIMIT = 4, +}; + +enum ethtool_c33_pse_ext_substate_short_detected { + ETHTOOL_C33_PSE_EXT_SUBSTATE_SHORT_DETECTED_SHORT_CONDITION = 1, +}; + +enum ethtool_c33_pse_pw_d_status { + ETHTOOL_C33_PSE_PW_D_STATUS_UNKNOWN = 1, + ETHTOOL_C33_PSE_PW_D_STATUS_DISABLED = 2, + ETHTOOL_C33_PSE_PW_D_STATUS_SEARCHING = 3, + ETHTOOL_C33_PSE_PW_D_STATUS_DELIVERING = 4, + ETHTOOL_C33_PSE_PW_D_STATUS_TEST = 5, + ETHTOOL_C33_PSE_PW_D_STATUS_FAULT = 6, + ETHTOOL_C33_PSE_PW_D_STATUS_OTHERFAULT = 7, +}; + +enum ethtool_cmis_cdb_cmd_id { + ETHTOOL_CMIS_CDB_CMD_QUERY_STATUS = 0, + ETHTOOL_CMIS_CDB_CMD_MODULE_FEATURES = 64, + ETHTOOL_CMIS_CDB_CMD_FW_MANAGMENT_FEATURES = 65, + ETHTOOL_CMIS_CDB_CMD_START_FW_DOWNLOAD = 257, + ETHTOOL_CMIS_CDB_CMD_WRITE_FW_BLOCK_LPL = 259, + ETHTOOL_CMIS_CDB_CMD_WRITE_FW_BLOCK_EPL = 260, + ETHTOOL_CMIS_CDB_CMD_COMPLETE_FW_DOWNLOAD = 263, + ETHTOOL_CMIS_CDB_CMD_RUN_FW_IMAGE = 265, + ETHTOOL_CMIS_CDB_CMD_COMMIT_FW_IMAGE = 266, +}; + +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_flags { + ETH_FLAG_TXVLAN = 128, + ETH_FLAG_RXVLAN = 256, + ETH_FLAG_LRO = 32768, + ETH_FLAG_NTUPLE = 134217728, + ETH_FLAG_RXHASH = 268435456, +}; + +enum ethtool_header_flags { + ETHTOOL_FLAG_COMPACT_BITSETS = 1, + ETHTOOL_FLAG_OMIT_REPLY = 2, + ETHTOOL_FLAG_STATS = 4, +}; + +enum ethtool_link_ext_state { + ETHTOOL_LINK_EXT_STATE_AUTONEG = 0, + ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 1, + ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 2, + ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 3, + ETHTOOL_LINK_EXT_STATE_NO_CABLE = 4, + ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 5, + ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 6, + ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 7, + ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 8, + ETHTOOL_LINK_EXT_STATE_OVERHEAT = 9, + ETHTOOL_LINK_EXT_STATE_MODULE = 10, +}; + +enum 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_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_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_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_module { + ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1, +}; + +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_10baseT1BRR_Full_BIT = 102, + __ETHTOOL_LINK_MODE_MASK_NBITS = 103, +}; + +enum ethtool_mac_stats_src { + ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0, + ETHTOOL_MAC_STATS_SRC_EMAC = 1, + ETHTOOL_MAC_STATS_SRC_PMAC = 2, +}; + +enum ethtool_mm_verify_status { + ETHTOOL_MM_VERIFY_STATUS_UNKNOWN = 0, + ETHTOOL_MM_VERIFY_STATUS_INITIAL = 1, + ETHTOOL_MM_VERIFY_STATUS_VERIFYING = 2, + ETHTOOL_MM_VERIFY_STATUS_SUCCEEDED = 3, + ETHTOOL_MM_VERIFY_STATUS_FAILED = 4, + ETHTOOL_MM_VERIFY_STATUS_DISABLED = 5, +}; + +enum ethtool_module_fw_flash_status { + ETHTOOL_MODULE_FW_FLASH_STATUS_STARTED = 1, + ETHTOOL_MODULE_FW_FLASH_STATUS_IN_PROGRESS = 2, + ETHTOOL_MODULE_FW_FLASH_STATUS_COMPLETED = 3, + ETHTOOL_MODULE_FW_FLASH_STATUS_ERROR = 4, +}; + +enum ethtool_module_power_mode { + ETHTOOL_MODULE_POWER_MODE_LOW = 1, + ETHTOOL_MODULE_POWER_MODE_HIGH = 2, +}; + +enum ethtool_module_power_mode_policy { + ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1, + ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2, +}; + +enum ethtool_multicast_groups { + ETHNL_MCGRP_MONITOR = 0, +}; + +enum ethtool_phys_id_state { + ETHTOOL_ID_INACTIVE = 0, + ETHTOOL_ID_ACTIVE = 1, + ETHTOOL_ID_ON = 2, + ETHTOOL_ID_OFF = 3, +}; + +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_pse_types { + ETHTOOL_PSE_UNKNOWN = 1, + ETHTOOL_PSE_PODL = 2, + ETHTOOL_PSE_C33 = 4, +}; + +enum ethtool_reset_flags { + ETH_RESET_MGMT = 1, + ETH_RESET_IRQ = 2, + ETH_RESET_DMA = 4, + ETH_RESET_FILTER = 8, + ETH_RESET_OFFLOAD = 16, + ETH_RESET_MAC = 32, + ETH_RESET_PHY = 64, + ETH_RESET_RAM = 128, + ETH_RESET_AP = 256, + ETH_RESET_DEDICATED = 65535, + ETH_RESET_ALL = 4294967295, +}; + +enum ethtool_sfeatures_retval_bits { + ETHTOOL_F_UNSUPPORTED__BIT = 0, + ETHTOOL_F_WISH__BIT = 1, + ETHTOOL_F_COMPAT__BIT = 2, +}; + +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_STATS_PHY = 21, + ETH_SS_TS_FLAGS = 22, + ETH_SS_COUNT = 23, +}; + +enum ethtool_supported_ring_param { + ETHTOOL_RING_USE_RX_BUF_LEN = 1, + ETHTOOL_RING_USE_CQE_SIZE = 2, + ETHTOOL_RING_USE_TX_PUSH = 4, + ETHTOOL_RING_USE_RX_PUSH = 8, + ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, + ETHTOOL_RING_USE_TCP_DATA_SPLIT = 32, + ETHTOOL_RING_USE_HDS_THRS = 64, +}; + +enum ethtool_tcp_data_split { + ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, + ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, + ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, +}; + +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 event_command_flags { + EVENT_CMD_FL_POST_TRIGGER = 1, + EVENT_CMD_FL_NEEDS_REC = 2, +}; + +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 event_type_t { + EVENT_FLEXIBLE = 1, + EVENT_PINNED = 2, + EVENT_TIME = 4, + EVENT_FROZEN = 8, + EVENT_CPU = 16, + EVENT_CGROUP = 32, + EVENT_ALL = 3, + EVENT_TIME_FROZEN = 12, +}; + +enum events_wwnr { + switch_in_wwnr = 0, + switch_out_wwnr = 1, + wakeup_wwnr = 2, + event_max_wwnr = 3, +}; + +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, +}; + +enum evtreturn { + EVT_ERR = -1, + EVT_DONE = 0, + EVT_XFER_DONE = 1, + EVT_GSER = 2, + EVT_DISC = 3, +}; + +enum exact_level { + NOT_EXACT = 0, + EXACT = 1, + RANGE_WITHIN = 2, +}; + +enum exception { + EXCP_CONTEXT = 1, + NO_EXCP = 2, +}; + +enum exception_stack_ordering { + ESTACK_DF = 0, + ESTACK_NMI = 1, + ESTACK_DB = 2, + ESTACK_MCE = 3, + ESTACK_VC = 4, + ESTACK_VC2 = 5, + N_EXCEPTION_STACKS = 6, +}; + +enum execmem_range_flags { + EXECMEM_KASAN_SHADOW = 1, + EXECMEM_ROX_CACHE = 2, +}; + +enum execmem_type { + EXECMEM_DEFAULT = 0, + EXECMEM_MODULE_TEXT = 0, + EXECMEM_KPROBES = 1, + EXECMEM_FTRACE = 2, + EXECMEM_BPF = 3, + EXECMEM_MODULE_DATA = 4, + EXECMEM_TYPE_MAX = 5, +}; + +enum exit_fastpath_completion { + EXIT_FASTPATH_NONE = 0, + EXIT_FASTPATH_REENTER_GUEST = 1, + EXIT_FASTPATH_EXIT_HANDLED = 2, + EXIT_FASTPATH_EXIT_USERSPACE = 3, +}; + +enum ext4_journal_trigger_type { + EXT4_JTR_ORPHAN_FILE = 0, + EXT4_JTR_NONE = 1, +}; + +enum ext4_li_mode { + EXT4_LI_MODE_PREFETCH_BBITMAP = 0, + EXT4_LI_MODE_ITABLE = 1, +}; + +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 fail_dup_mod_reason { + FAIL_DUP_MOD_BECOMING = 0, + FAIL_DUP_MOD_LOAD = 1, +}; + +enum fanotify_event_type { + FANOTIFY_EVENT_TYPE_FID = 0, + FANOTIFY_EVENT_TYPE_FID_NAME = 1, + FANOTIFY_EVENT_TYPE_PATH = 2, + FANOTIFY_EVENT_TYPE_PATH_PERM = 3, + FANOTIFY_EVENT_TYPE_OVERFLOW = 4, + FANOTIFY_EVENT_TYPE_FS_ERROR = 5, + __FANOTIFY_EVENT_TYPE_NUM = 6, +}; + +enum fault_flag { + FAULT_FLAG_WRITE = 1, + FAULT_FLAG_MKWRITE = 2, + FAULT_FLAG_ALLOW_RETRY = 4, + FAULT_FLAG_RETRY_NOWAIT = 8, + FAULT_FLAG_KILLABLE = 16, + FAULT_FLAG_TRIED = 32, + FAULT_FLAG_USER = 64, + FAULT_FLAG_REMOTE = 128, + FAULT_FLAG_INSTRUCTION = 256, + FAULT_FLAG_INTERRUPTIBLE = 512, + FAULT_FLAG_UNSHARE = 1024, + FAULT_FLAG_ORIG_PTE_VALID = 2048, + FAULT_FLAG_VMA_LOCK = 4096, +}; + +enum faulttype { + DMA_REMAP = 0, + INTR_REMAP = 1, + UNKNOWN = 2, +}; + +enum fbq_type { + regular = 0, + remote = 1, + all = 2, +}; + +enum fetch_op { + FETCH_OP_NOP = 0, + FETCH_OP_REG = 1, + FETCH_OP_STACK = 2, + FETCH_OP_STACKP = 3, + FETCH_OP_RETVAL = 4, + FETCH_OP_IMM = 5, + FETCH_OP_COMM = 6, + FETCH_OP_ARG = 7, + FETCH_OP_FOFFS = 8, + FETCH_OP_DATA = 9, + FETCH_OP_EDATA = 10, + FETCH_OP_DEREF = 11, + FETCH_OP_UDEREF = 12, + FETCH_OP_ST_RAW = 13, + FETCH_OP_ST_MEM = 14, + FETCH_OP_ST_UMEM = 15, + FETCH_OP_ST_STRING = 16, + FETCH_OP_ST_USTRING = 17, + FETCH_OP_ST_SYMSTR = 18, + FETCH_OP_ST_EDATA = 19, + FETCH_OP_MOD_BF = 20, + FETCH_OP_LP_ARRAY = 21, + FETCH_OP_TP_ARG = 22, + FETCH_OP_END = 23, + FETCH_NOP_SYMBOL = 24, +}; + +enum fib6_walk_state { + FWS_S = 0, + FWS_L = 1, + FWS_R = 2, + FWS_C = 3, + FWS_U = 4, +}; + +enum fib_event_type { + FIB_EVENT_ENTRY_REPLACE = 0, + FIB_EVENT_ENTRY_APPEND = 1, + FIB_EVENT_ENTRY_ADD = 2, + FIB_EVENT_ENTRY_DEL = 3, + FIB_EVENT_RULE_ADD = 4, + FIB_EVENT_RULE_DEL = 5, + FIB_EVENT_NH_ADD = 6, + FIB_EVENT_NH_DEL = 7, + FIB_EVENT_VIF_ADD = 8, + FIB_EVENT_VIF_DEL = 9, +}; + +enum fid_type { + FILEID_ROOT = 0, + FILEID_INO32_GEN = 1, + FILEID_INO32_GEN_PARENT = 2, + FILEID_BTRFS_WITHOUT_PARENT = 77, + FILEID_BTRFS_WITH_PARENT = 78, + FILEID_BTRFS_WITH_PARENT_ROOT = 79, + FILEID_UDF_WITHOUT_PARENT = 81, + FILEID_UDF_WITH_PARENT = 82, + FILEID_NILFS_WITHOUT_PARENT = 97, + FILEID_NILFS_WITH_PARENT = 98, + FILEID_FAT_WITHOUT_PARENT = 113, + FILEID_FAT_WITH_PARENT = 114, + FILEID_INO64_GEN = 129, + FILEID_INO64_GEN_PARENT = 130, + FILEID_LUSTRE = 151, + FILEID_BCACHEFS_WITHOUT_PARENT = 177, + FILEID_BCACHEFS_WITH_PARENT = 178, + FILEID_KERNFS = 254, + FILEID_INVALID = 255, +}; + +enum field_op_id { + FIELD_OP_NONE = 0, + FIELD_OP_PLUS = 1, + FIELD_OP_MINUS = 2, + FIELD_OP_UNARY_MINUS = 3, + FIELD_OP_DIV = 4, + FIELD_OP_MULT = 5, +}; + +enum file_time_flags { + S_ATIME = 1, + S_MTIME = 2, + S_CTIME = 4, + S_VERSION = 8, +}; + +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 filter_pred_fn { + FILTER_PRED_FN_NOP = 0, + FILTER_PRED_FN_64 = 1, + FILTER_PRED_FN_64_CPUMASK = 2, + FILTER_PRED_FN_S64 = 3, + FILTER_PRED_FN_U64 = 4, + FILTER_PRED_FN_32 = 5, + FILTER_PRED_FN_32_CPUMASK = 6, + FILTER_PRED_FN_S32 = 7, + FILTER_PRED_FN_U32 = 8, + FILTER_PRED_FN_16 = 9, + FILTER_PRED_FN_16_CPUMASK = 10, + FILTER_PRED_FN_S16 = 11, + FILTER_PRED_FN_U16 = 12, + FILTER_PRED_FN_8 = 13, + FILTER_PRED_FN_8_CPUMASK = 14, + FILTER_PRED_FN_S8 = 15, + FILTER_PRED_FN_U8 = 16, + FILTER_PRED_FN_COMM = 17, + FILTER_PRED_FN_STRING = 18, + FILTER_PRED_FN_STRLOC = 19, + FILTER_PRED_FN_STRRELLOC = 20, + FILTER_PRED_FN_PCHAR_USER = 21, + FILTER_PRED_FN_PCHAR = 22, + FILTER_PRED_FN_CPU = 23, + FILTER_PRED_FN_CPU_CPUMASK = 24, + FILTER_PRED_FN_CPUMASK = 25, + FILTER_PRED_FN_CPUMASK_CPU = 26, + FILTER_PRED_FN_FUNCTION = 27, + FILTER_PRED_FN_ = 28, + FILTER_PRED_TEST_VISITED = 29, +}; + +enum fit_type { + NOTHING_FIT = 0, + FL_FIT_TYPE = 1, + LE_FIT_TYPE = 2, + RE_FIT_TYPE = 3, + NE_FIT_TYPE = 4, +}; + +enum fixed_addresses { + VSYSCALL_PAGE = 511, + FIX_DBGP_BASE = 512, + FIX_EARLYCON_MEM_BASE = 513, + FIX_APIC_BASE = 514, + FIX_IO_APIC_BASE_0 = 515, + FIX_IO_APIC_BASE_END = 642, + FIX_PARAVIRT_BOOTMAP = 643, + FIX_APEI_GHES_IRQ = 644, + FIX_APEI_GHES_NMI = 645, + __end_of_permanent_fixed_addresses = 646, + FIX_BTMAP_END = 1024, + FIX_BTMAP_BEGIN = 1535, + FIX_TBOOT_BASE = 1536, + __end_of_fixed_addresses = 1537, +}; + +enum flag_bits { + Faulty = 0, + In_sync = 1, + Bitmap_sync = 2, + WriteMostly = 3, + AutoDetected = 4, + Blocked = 5, + WriteErrorSeen = 6, + FaultRecorded = 7, + BlockedBadBlocks = 8, + WantReplacement = 9, + Replacement = 10, + Candidate = 11, + Journal = 12, + ClusterRemove = 13, + ExternalBbl = 14, + FailFast = 15, + LastDev = 16, + CollisionCheck = 17, + Nonrot = 18, +}; + +enum 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_hw_stats_bit { + FLOW_ACTION_HW_STATS_IMMEDIATE_BIT = 0, + FLOW_ACTION_HW_STATS_DELAYED_BIT = 1, + FLOW_ACTION_HW_STATS_DISABLED_BIT = 2, + FLOW_ACTION_HW_STATS_NUM_BITS = 3, +}; + +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_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 flow_block_binder_type { + FLOW_BLOCK_BINDER_TYPE_UNSPEC = 0, + FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS = 1, + FLOW_BLOCK_BINDER_TYPE_CLSACT_EGRESS = 2, + FLOW_BLOCK_BINDER_TYPE_RED_EARLY_DROP = 3, + FLOW_BLOCK_BINDER_TYPE_RED_MARK = 4, +}; + +enum flow_block_command { + FLOW_BLOCK_BIND = 0, + FLOW_BLOCK_UNBIND = 1, +}; + +enum flow_cls_command { + FLOW_CLS_REPLACE = 0, + FLOW_CLS_DESTROY = 1, + FLOW_CLS_STATS = 2, + FLOW_CLS_TMPLT_CREATE = 3, + FLOW_CLS_TMPLT_DESTROY = 4, +}; + +enum flow_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 flow_dissector_ctrl_flags { + FLOW_DIS_IS_FRAGMENT = 1, + FLOW_DIS_FIRST_FRAG = 2, + FLOW_DIS_F_TUNNEL_CSUM = 4, + FLOW_DIS_F_TUNNEL_DONT_FRAGMENT = 8, + FLOW_DIS_F_TUNNEL_OAM = 16, + FLOW_DIS_F_TUNNEL_CRIT_OPT = 32, + FLOW_DIS_ENCAPSULATION = 64, +}; + +enum flow_dissector_key_id { + FLOW_DISSECTOR_KEY_CONTROL = 0, + FLOW_DISSECTOR_KEY_BASIC = 1, + FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, + FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, + FLOW_DISSECTOR_KEY_PORTS = 4, + FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, + FLOW_DISSECTOR_KEY_ICMP = 6, + FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, + FLOW_DISSECTOR_KEY_TIPC = 8, + FLOW_DISSECTOR_KEY_ARP = 9, + FLOW_DISSECTOR_KEY_VLAN = 10, + FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, + FLOW_DISSECTOR_KEY_GRE_KEYID = 12, + FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, + FLOW_DISSECTOR_KEY_ENC_KEYID = 14, + FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, + FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, + FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, + FLOW_DISSECTOR_KEY_ENC_PORTS = 18, + FLOW_DISSECTOR_KEY_MPLS = 19, + FLOW_DISSECTOR_KEY_TCP = 20, + FLOW_DISSECTOR_KEY_IP = 21, + FLOW_DISSECTOR_KEY_CVLAN = 22, + FLOW_DISSECTOR_KEY_ENC_IP = 23, + FLOW_DISSECTOR_KEY_ENC_OPTS = 24, + FLOW_DISSECTOR_KEY_META = 25, + FLOW_DISSECTOR_KEY_CT = 26, + FLOW_DISSECTOR_KEY_HASH = 27, + FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, + FLOW_DISSECTOR_KEY_PPPOE = 29, + FLOW_DISSECTOR_KEY_L2TPV3 = 30, + FLOW_DISSECTOR_KEY_CFM = 31, + FLOW_DISSECTOR_KEY_IPSEC = 32, + FLOW_DISSECTOR_KEY_MAX = 33, +}; + +enum flowlabel_reflect { + FLOWLABEL_REFLECT_ESTABLISHED = 1, + FLOWLABEL_REFLECT_TCP_RESET = 2, + FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4, +}; + +enum folio_references { + FOLIOREF_RECLAIM = 0, + FOLIOREF_RECLAIM_CLEAN = 1, + FOLIOREF_KEEP = 2, + FOLIOREF_ACTIVATE = 3, +}; + +enum folio_walk_level { + FW_LEVEL_PTE = 0, + FW_LEVEL_PMD = 1, + FW_LEVEL_PUD = 2, +}; + +enum format_state { + FORMAT_STATE_NONE = 0, + FORMAT_STATE_NUM = 1, + FORMAT_STATE_WIDTH = 2, + FORMAT_STATE_PRECISION = 3, + FORMAT_STATE_CHAR = 4, + FORMAT_STATE_STR = 5, + FORMAT_STATE_PTR = 6, + FORMAT_STATE_PERCENT_CHAR = 7, + FORMAT_STATE_INVALID = 8, +}; + +enum fortify_func { + FORTIFY_FUNC_strncpy = 0, + FORTIFY_FUNC_strnlen = 1, + FORTIFY_FUNC_strlen = 2, + FORTIFY_FUNC_strscpy = 3, + FORTIFY_FUNC_strlcat = 4, + FORTIFY_FUNC_strcat = 5, + FORTIFY_FUNC_strncat = 6, + FORTIFY_FUNC_memset = 7, + FORTIFY_FUNC_memcpy = 8, + FORTIFY_FUNC_memmove = 9, + FORTIFY_FUNC_memscan = 10, + FORTIFY_FUNC_memcmp = 11, + FORTIFY_FUNC_memchr = 12, + FORTIFY_FUNC_memchr_inv = 13, + FORTIFY_FUNC_kmemdup = 14, + FORTIFY_FUNC_strcpy = 15, + FORTIFY_FUNC_UNKNOWN = 16, +}; + +enum fpdt_record_type { + RECORD_S3_RESUME = 0, + RECORD_S3_SUSPEND = 1, + RECORD_BOOT = 2, +}; + +enum fpdt_subtable_type { + SUBTABLE_FBPT = 0, + SUBTABLE_S3PT = 1, +}; + +enum freeze_holder { + FREEZE_HOLDER_KERNEL = 1, + FREEZE_HOLDER_USERSPACE = 2, + FREEZE_MAY_NEST = 4, +}; + +enum freezer_state_flags { + CGROUP_FREEZER_ONLINE = 1, + CGROUP_FREEZING_SELF = 2, + CGROUP_FREEZING_PARENT = 4, + CGROUP_FROZEN = 8, + CGROUP_FREEZING = 6, +}; + +enum freq_qos_req_type { + FREQ_QOS_MIN = 1, + FREQ_QOS_MAX = 2, +}; + +enum fs_context_phase { + FS_CONTEXT_CREATE_PARAMS = 0, + FS_CONTEXT_CREATING = 1, + FS_CONTEXT_AWAITING_MOUNT = 2, + FS_CONTEXT_AWAITING_RECONF = 3, + FS_CONTEXT_RECONF_PARAMS = 4, + FS_CONTEXT_RECONFIGURING = 5, + FS_CONTEXT_FAILED = 6, +}; + +enum fs_context_purpose { + FS_CONTEXT_FOR_MOUNT = 0, + FS_CONTEXT_FOR_SUBMOUNT = 1, + FS_CONTEXT_FOR_RECONFIGURE = 2, +}; + +enum fs_value_type { + fs_value_is_undefined = 0, + fs_value_is_flag = 1, + fs_value_is_string = 2, + fs_value_is_blob = 3, + fs_value_is_filename = 4, + fs_value_is_file = 5, +}; + +enum fsconfig_command { + FSCONFIG_SET_FLAG = 0, + FSCONFIG_SET_STRING = 1, + FSCONFIG_SET_BINARY = 2, + FSCONFIG_SET_PATH = 3, + FSCONFIG_SET_PATH_EMPTY = 4, + FSCONFIG_SET_FD = 5, + FSCONFIG_CMD_CREATE = 6, + FSCONFIG_CMD_RECONFIGURE = 7, + FSCONFIG_CMD_CREATE_EXCL = 8, +}; + +enum fsl_mc_pool_type { + FSL_MC_POOL_DPMCP = 0, + FSL_MC_POOL_DPBP = 1, + FSL_MC_POOL_DPCON = 2, + FSL_MC_POOL_IRQ = 3, + FSL_MC_NUM_POOL_TYPES = 4, +}; + +enum fsnotify_data_type { + FSNOTIFY_EVENT_NONE = 0, + FSNOTIFY_EVENT_FILE_RANGE = 1, + FSNOTIFY_EVENT_PATH = 2, + FSNOTIFY_EVENT_INODE = 3, + FSNOTIFY_EVENT_DENTRY = 4, + FSNOTIFY_EVENT_ERROR = 5, +}; + +enum fsnotify_group_prio { + FSNOTIFY_PRIO_NORMAL = 0, + FSNOTIFY_PRIO_CONTENT = 1, + FSNOTIFY_PRIO_PRE_CONTENT = 2, + __FSNOTIFY_PRIO_NUM = 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 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 ftrace_bug_type { + FTRACE_BUG_UNKNOWN = 0, + FTRACE_BUG_INIT = 1, + FTRACE_BUG_NOP = 2, + FTRACE_BUG_CALL = 3, + FTRACE_BUG_UPDATE = 4, +}; + +enum ftrace_dump_mode { + DUMP_NONE = 0, + DUMP_ALL = 1, + DUMP_ORIG = 2, + DUMP_PARAM = 3, +}; + +enum ftrace_ops_cmd { + FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_SELF = 0, + FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_PEER = 1, + FTRACE_OPS_CMD_DISABLE_SHARE_IPMODIFY_PEER = 2, +}; + +enum fullness_group { + ZS_INUSE_RATIO_0 = 0, + ZS_INUSE_RATIO_10 = 1, + ZS_INUSE_RATIO_99 = 10, + ZS_INUSE_RATIO_100 = 11, + NR_FULLNESS_GROUPS = 12, +}; + +enum fuse_dax_mode { + FUSE_DAX_INODE_DEFAULT = 0, + FUSE_DAX_ALWAYS = 1, + FUSE_DAX_NEVER = 2, + FUSE_DAX_INODE_USER = 3, +}; + +enum fuse_ext_type { + FUSE_MAX_NR_SECCTX = 31, + FUSE_EXT_GROUPS = 32, +}; + +enum fuse_notify_code { + FUSE_NOTIFY_POLL = 1, + FUSE_NOTIFY_INVAL_INODE = 2, + FUSE_NOTIFY_INVAL_ENTRY = 3, + FUSE_NOTIFY_STORE = 4, + FUSE_NOTIFY_RETRIEVE = 5, + FUSE_NOTIFY_DELETE = 6, + FUSE_NOTIFY_RESEND = 7, + FUSE_NOTIFY_CODE_MAX = 8, +}; + +enum fuse_opcode { + FUSE_LOOKUP = 1, + FUSE_FORGET = 2, + FUSE_GETATTR = 3, + FUSE_SETATTR = 4, + FUSE_READLINK = 5, + FUSE_SYMLINK = 6, + FUSE_MKNOD = 8, + FUSE_MKDIR = 9, + FUSE_UNLINK = 10, + FUSE_RMDIR = 11, + FUSE_RENAME = 12, + FUSE_LINK = 13, + FUSE_OPEN = 14, + FUSE_READ = 15, + FUSE_WRITE = 16, + FUSE_STATFS = 17, + FUSE_RELEASE = 18, + FUSE_FSYNC = 20, + FUSE_SETXATTR = 21, + FUSE_GETXATTR = 22, + FUSE_LISTXATTR = 23, + FUSE_REMOVEXATTR = 24, + FUSE_FLUSH = 25, + FUSE_INIT = 26, + FUSE_OPENDIR = 27, + FUSE_READDIR = 28, + FUSE_RELEASEDIR = 29, + FUSE_FSYNCDIR = 30, + FUSE_GETLK = 31, + FUSE_SETLK = 32, + FUSE_SETLKW = 33, + FUSE_ACCESS = 34, + FUSE_CREATE = 35, + FUSE_INTERRUPT = 36, + FUSE_BMAP = 37, + FUSE_DESTROY = 38, + FUSE_IOCTL = 39, + FUSE_POLL = 40, + FUSE_NOTIFY_REPLY = 41, + FUSE_BATCH_FORGET = 42, + FUSE_FALLOCATE = 43, + FUSE_READDIRPLUS = 44, + FUSE_RENAME2 = 45, + FUSE_LSEEK = 46, + FUSE_COPY_FILE_RANGE = 47, + FUSE_SETUPMAPPING = 48, + FUSE_REMOVEMAPPING = 49, + FUSE_SYNCFS = 50, + FUSE_TMPFILE = 51, + FUSE_STATX = 52, + CUSE_INIT = 4096, + CUSE_INIT_BSWAP_RESERVED = 1048576, + FUSE_INIT_BSWAP_RESERVED = 436207616, +}; + +enum fuse_parse_result { + FOUND_ERR = -1, + FOUND_NONE = 0, + FOUND_SOME = 1, + FOUND_ALL = 2, +}; + +enum fuse_req_flag { + FR_ISREPLY = 0, + FR_FORCE = 1, + FR_BACKGROUND = 2, + FR_WAITING = 3, + FR_ABORTED = 4, + FR_INTERRUPTED = 5, + FR_LOCKED = 6, + FR_PENDING = 7, + FR_SENT = 8, + FR_FINISHED = 9, + FR_PRIVATE = 10, + FR_ASYNC = 11, + FR_URING = 12, +}; + +enum fuse_ring_req_state { + FRRS_INVALID = 0, + FRRS_COMMIT = 1, + FRRS_AVAILABLE = 2, + FRRS_FUSE_REQ = 3, + FRRS_USERSPACE = 4, + FRRS_TEARDOWN = 5, + FRRS_RELEASED = 6, +}; + +enum fuse_uring_cmd { + FUSE_IO_URING_CMD_INVALID = 0, + FUSE_IO_URING_CMD_REGISTER = 1, + FUSE_IO_URING_CMD_COMMIT_AND_FETCH = 2, +}; + +enum futex_access { + FUTEX_READ = 0, + FUTEX_WRITE = 1, +}; + +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, +}; + +enum fw_resource_type { + RSC_CARVEOUT = 0, + RSC_DEVMEM = 1, + RSC_TRACE = 2, + RSC_VDEV = 3, + RSC_LAST = 4, + RSC_VENDOR_START = 128, + RSC_VENDOR_END = 512, +}; + +enum fw_status { + FW_STATUS_UNKNOWN = 0, + FW_STATUS_LOADING = 1, + FW_STATUS_DONE = 2, + FW_STATUS_ABORTED = 3, +}; + +enum fw_upload_err { + FW_UPLOAD_ERR_NONE = 0, + FW_UPLOAD_ERR_HW_ERROR = 1, + FW_UPLOAD_ERR_TIMEOUT = 2, + FW_UPLOAD_ERR_CANCELED = 3, + FW_UPLOAD_ERR_BUSY = 4, + FW_UPLOAD_ERR_INVALID_SIZE = 5, + FW_UPLOAD_ERR_RW_ERROR = 6, + FW_UPLOAD_ERR_WEAROUT = 7, + FW_UPLOAD_ERR_FW_INVALID = 8, + FW_UPLOAD_ERR_MAX = 9, +}; + +enum fw_upload_prog { + FW_UPLOAD_PROG_IDLE = 0, + FW_UPLOAD_PROG_RECEIVING = 1, + FW_UPLOAD_PROG_PREPARING = 2, + FW_UPLOAD_PROG_TRANSFERRING = 3, + FW_UPLOAD_PROG_PROGRAMMING = 4, + FW_UPLOAD_PROG_MAX = 5, +}; + +enum gds_mitigations { + GDS_MITIGATION_OFF = 0, + GDS_MITIGATION_UCODE_NEEDED = 1, + GDS_MITIGATION_FORCE = 2, + GDS_MITIGATION_FULL = 3, + GDS_MITIGATION_FULL_LOCKED = 4, + GDS_MITIGATION_HYPERVISOR = 5, +}; + +enum genl_validate_flags { + GENL_DONT_VALIDATE_STRICT = 1, + GENL_DONT_VALIDATE_DUMP = 2, + GENL_DONT_VALIDATE_DUMP_STRICT = 4, +}; + +enum genpd_notication { + GENPD_NOTIFY_PRE_OFF = 0, + GENPD_NOTIFY_OFF = 1, + GENPD_NOTIFY_PRE_ON = 2, + GENPD_NOTIFY_ON = 3, +}; + +enum gpd_status { + GENPD_STATE_ON = 0, + GENPD_STATE_OFF = 1, +}; + +enum gpio_lookup_flags { + GPIO_ACTIVE_HIGH = 0, + GPIO_ACTIVE_LOW = 1, + GPIO_OPEN_DRAIN = 2, + GPIO_OPEN_SOURCE = 4, + GPIO_PERSISTENT = 0, + GPIO_TRANSITORY = 8, + GPIO_PULL_UP = 16, + GPIO_PULL_DOWN = 32, + GPIO_PULL_DISABLE = 64, + GPIO_LOOKUP_FLAGS_DEFAULT = 0, +}; + +enum gpio_select { + NO_GPIO = 0, + GPIO_1 = 1, + GPIO_2 = 2, +}; + +enum gpio_v2_line_attr_id { + GPIO_V2_LINE_ATTR_ID_FLAGS = 1, + GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 2, + GPIO_V2_LINE_ATTR_ID_DEBOUNCE = 3, +}; + +enum gpio_v2_line_changed_type { + GPIO_V2_LINE_CHANGED_REQUESTED = 1, + GPIO_V2_LINE_CHANGED_RELEASED = 2, + GPIO_V2_LINE_CHANGED_CONFIG = 3, +}; + +enum gpio_v2_line_event_id { + GPIO_V2_LINE_EVENT_RISING_EDGE = 1, + GPIO_V2_LINE_EVENT_FALLING_EDGE = 2, +}; + +enum gpio_v2_line_flag { + GPIO_V2_LINE_FLAG_USED = 1, + GPIO_V2_LINE_FLAG_ACTIVE_LOW = 2, + GPIO_V2_LINE_FLAG_INPUT = 4, + GPIO_V2_LINE_FLAG_OUTPUT = 8, + GPIO_V2_LINE_FLAG_EDGE_RISING = 16, + GPIO_V2_LINE_FLAG_EDGE_FALLING = 32, + GPIO_V2_LINE_FLAG_OPEN_DRAIN = 64, + GPIO_V2_LINE_FLAG_OPEN_SOURCE = 128, + GPIO_V2_LINE_FLAG_BIAS_PULL_UP = 256, + GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = 512, + GPIO_V2_LINE_FLAG_BIAS_DISABLED = 1024, + GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = 2048, + GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE = 4096, +}; + +enum gpiod_flags { + GPIOD_ASIS = 0, + GPIOD_IN = 1, + GPIOD_OUT_LOW = 3, + GPIOD_OUT_HIGH = 7, + GPIOD_OUT_LOW_OPEN_DRAIN = 11, + GPIOD_OUT_HIGH_OPEN_DRAIN = 15, +}; + +enum graph_filter_type { + GRAPH_FILTER_NOTRACE = 0, + GRAPH_FILTER_FUNCTION = 1, +}; + +enum gre_conntrack { + GRE_CT_UNREPLIED = 0, + GRE_CT_REPLIED = 1, + GRE_CT_MAX = 2, +}; + +enum gro_result { + GRO_MERGED = 0, + GRO_MERGED_FREE = 1, + GRO_HELD = 2, + GRO_NORMAL = 3, + GRO_CONSUMED = 4, +}; + +typedef enum gro_result gro_result_t; + +enum group_type { + group_has_spare = 0, + group_fully_busy = 1, + group_misfit_task = 2, + group_smt_balance = 3, + group_asym_packing = 4, + group_imbalanced = 5, + group_overloaded = 6, +}; + +enum handle_to_path_flags { + HANDLE_CHECK_PERMS = 1, + HANDLE_CHECK_SUBTREE = 2, +}; + +enum handler_id { + HANDLER_ONMATCH = 1, + HANDLER_ONMAX = 2, + HANDLER_ONCHANGE = 3, +}; + +enum handshake_auth { + HANDSHAKE_AUTH_UNSPEC = 0, + HANDSHAKE_AUTH_UNAUTH = 1, + HANDSHAKE_AUTH_PSK = 2, + HANDSHAKE_AUTH_X509 = 3, +}; + +enum handshake_handler_class { + HANDSHAKE_HANDLER_CLASS_NONE = 0, + HANDSHAKE_HANDLER_CLASS_TLSHD = 1, + HANDSHAKE_HANDLER_CLASS_MAX = 2, +}; + +enum handshake_msg_type { + HANDSHAKE_MSG_TYPE_UNSPEC = 0, + HANDSHAKE_MSG_TYPE_CLIENTHELLO = 1, + HANDSHAKE_MSG_TYPE_SERVERHELLO = 2, +}; + +enum hash_algo { + HASH_ALGO_MD4 = 0, + HASH_ALGO_MD5 = 1, + HASH_ALGO_SHA1 = 2, + HASH_ALGO_RIPE_MD_160 = 3, + HASH_ALGO_SHA256 = 4, + HASH_ALGO_SHA384 = 5, + HASH_ALGO_SHA512 = 6, + HASH_ALGO_SHA224 = 7, + HASH_ALGO_RIPE_MD_128 = 8, + HASH_ALGO_RIPE_MD_256 = 9, + HASH_ALGO_RIPE_MD_320 = 10, + HASH_ALGO_WP_256 = 11, + HASH_ALGO_WP_384 = 12, + HASH_ALGO_WP_512 = 13, + HASH_ALGO_TGR_128 = 14, + HASH_ALGO_TGR_160 = 15, + HASH_ALGO_TGR_192 = 16, + HASH_ALGO_SM3_256 = 17, + HASH_ALGO_STREEBOG_256 = 18, + HASH_ALGO_STREEBOG_512 = 19, + HASH_ALGO_SHA3_256 = 20, + HASH_ALGO_SHA3_384 = 21, + HASH_ALGO_SHA3_512 = 22, + HASH_ALGO__LAST = 23, +}; + +enum hctx_type { + HCTX_TYPE_DEFAULT = 0, + HCTX_TYPE_READ = 1, + HCTX_TYPE_POLL = 2, + HCTX_MAX_TYPES = 3, +}; + +enum hdmi_3d_structure { + HDMI_3D_STRUCTURE_INVALID = -1, + HDMI_3D_STRUCTURE_FRAME_PACKING = 0, + HDMI_3D_STRUCTURE_FIELD_ALTERNATIVE = 1, + HDMI_3D_STRUCTURE_LINE_ALTERNATIVE = 2, + HDMI_3D_STRUCTURE_SIDE_BY_SIDE_FULL = 3, + HDMI_3D_STRUCTURE_L_DEPTH = 4, + HDMI_3D_STRUCTURE_L_DEPTH_GFX_GFX_DEPTH = 5, + HDMI_3D_STRUCTURE_TOP_AND_BOTTOM = 6, + HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF = 8, +}; + +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_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_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_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_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_colorimetry { + HDMI_COLORIMETRY_NONE = 0, + HDMI_COLORIMETRY_ITU_601 = 1, + HDMI_COLORIMETRY_ITU_709 = 2, + HDMI_COLORIMETRY_EXTENDED = 3, +}; + +enum hdmi_colorspace { + HDMI_COLORSPACE_RGB = 0, + HDMI_COLORSPACE_YUV422 = 1, + HDMI_COLORSPACE_YUV444 = 2, + HDMI_COLORSPACE_YUV420 = 3, + HDMI_COLORSPACE_RESERVED4 = 4, + HDMI_COLORSPACE_RESERVED5 = 5, + HDMI_COLORSPACE_RESERVED6 = 6, + HDMI_COLORSPACE_IDO_DEFINED = 7, +}; + +enum 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_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_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_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_metadata_type { + HDMI_STATIC_METADATA_TYPE1 = 0, +}; + +enum hdmi_nups { + HDMI_NUPS_UNKNOWN = 0, + HDMI_NUPS_HORIZONTAL = 1, + HDMI_NUPS_VERTICAL = 2, + HDMI_NUPS_BOTH = 3, +}; + +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 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_scan_mode { + HDMI_SCAN_MODE_NONE = 0, + HDMI_SCAN_MODE_OVERSCAN = 1, + HDMI_SCAN_MODE_UNDERSCAN = 2, + HDMI_SCAN_MODE_RESERVED = 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_ycc_quantization_range { + HDMI_YCC_QUANTIZATION_RANGE_LIMITED = 0, + HDMI_YCC_QUANTIZATION_RANGE_FULL = 1, +}; + +enum header_fields { + HDR_PCR = 0, + HDR_DIGEST = 1, + HDR_TEMPLATE_NAME = 2, + HDR_TEMPLATE_DATA = 3, + HDR__LAST = 4, +}; + +enum header_opt { + IPE_HEADER_POLICY_NAME = 0, + IPE_HEADER_POLICY_VERSION = 1, + __IPE_HEADER_MAX = 2, +}; + +enum hest_status { + HEST_ENABLED = 0, + HEST_DISABLED = 1, + HEST_NOT_FOUND = 2, +}; + +enum hid_battery_status { + HID_BATTERY_UNKNOWN = 0, + HID_BATTERY_QUERIED = 1, + HID_BATTERY_REPORTED = 2, +}; + +enum hid_class_request { + HID_REQ_GET_REPORT = 1, + HID_REQ_GET_IDLE = 2, + HID_REQ_GET_PROTOCOL = 3, + HID_REQ_SET_REPORT = 9, + HID_REQ_SET_IDLE = 10, + HID_REQ_SET_PROTOCOL = 11, +}; + +enum hid_report_type { + HID_INPUT_REPORT = 0, + HID_OUTPUT_REPORT = 1, + HID_FEATURE_REPORT = 2, + HID_REPORT_TYPES = 3, +}; + +enum hid_type { + HID_TYPE_OTHER = 0, + HID_TYPE_USBMOUSE = 1, + HID_TYPE_USBNONE = 2, +}; + +enum hist_field_flags { + HIST_FIELD_FL_HITCOUNT = 1, + HIST_FIELD_FL_KEY = 2, + HIST_FIELD_FL_STRING = 4, + HIST_FIELD_FL_HEX = 8, + HIST_FIELD_FL_SYM = 16, + HIST_FIELD_FL_SYM_OFFSET = 32, + HIST_FIELD_FL_EXECNAME = 64, + HIST_FIELD_FL_SYSCALL = 128, + HIST_FIELD_FL_STACKTRACE = 256, + HIST_FIELD_FL_LOG2 = 512, + HIST_FIELD_FL_TIMESTAMP = 1024, + HIST_FIELD_FL_TIMESTAMP_USECS = 2048, + HIST_FIELD_FL_VAR = 4096, + HIST_FIELD_FL_EXPR = 8192, + HIST_FIELD_FL_VAR_REF = 16384, + HIST_FIELD_FL_CPU = 32768, + HIST_FIELD_FL_ALIAS = 65536, + HIST_FIELD_FL_BUCKET = 131072, + HIST_FIELD_FL_CONST = 262144, + HIST_FIELD_FL_PERCENT = 524288, + HIST_FIELD_FL_GRAPH = 1048576, +}; + +enum hist_field_fn { + HIST_FIELD_FN_NOP = 0, + HIST_FIELD_FN_VAR_REF = 1, + HIST_FIELD_FN_COUNTER = 2, + HIST_FIELD_FN_CONST = 3, + HIST_FIELD_FN_LOG2 = 4, + HIST_FIELD_FN_BUCKET = 5, + HIST_FIELD_FN_TIMESTAMP = 6, + HIST_FIELD_FN_CPU = 7, + HIST_FIELD_FN_STRING = 8, + HIST_FIELD_FN_DYNSTRING = 9, + HIST_FIELD_FN_RELDYNSTRING = 10, + HIST_FIELD_FN_PSTRING = 11, + HIST_FIELD_FN_S64 = 12, + HIST_FIELD_FN_U64 = 13, + HIST_FIELD_FN_S32 = 14, + HIST_FIELD_FN_U32 = 15, + HIST_FIELD_FN_S16 = 16, + HIST_FIELD_FN_U16 = 17, + HIST_FIELD_FN_S8 = 18, + HIST_FIELD_FN_U8 = 19, + HIST_FIELD_FN_UMINUS = 20, + HIST_FIELD_FN_MINUS = 21, + HIST_FIELD_FN_PLUS = 22, + HIST_FIELD_FN_DIV = 23, + HIST_FIELD_FN_MULT = 24, + HIST_FIELD_FN_DIV_POWER2 = 25, + HIST_FIELD_FN_DIV_NOT_POWER2 = 26, + HIST_FIELD_FN_DIV_MULT_SHIFT = 27, + HIST_FIELD_FN_EXECNAME = 28, + HIST_FIELD_FN_STACK = 29, +}; + +enum hk_flags { + HK_FLAG_DOMAIN = 1, + HK_FLAG_MANAGED_IRQ = 2, + HK_FLAG_KERNEL_NOISE = 4, +}; + +enum hk_type { + HK_TYPE_DOMAIN = 0, + HK_TYPE_MANAGED_IRQ = 1, + HK_TYPE_KERNEL_NOISE = 2, + HK_TYPE_MAX = 3, + HK_TYPE_TICK = 2, + HK_TYPE_TIMER = 2, + HK_TYPE_RCU = 2, + HK_TYPE_MISC = 2, + HK_TYPE_WQ = 2, + HK_TYPE_KTHREAD = 2, +}; + +enum hmm_pfn_flags { + HMM_PFN_VALID = 9223372036854775808ULL, + HMM_PFN_WRITE = 4611686018427387904ULL, + HMM_PFN_ERROR = 2305843009213693952ULL, + HMM_PFN_ORDER_SHIFT = 56ULL, + HMM_PFN_REQ_FAULT = 9223372036854775808ULL, + HMM_PFN_REQ_WRITE = 4611686018427387904ULL, + HMM_PFN_FLAGS = 18374686479671623680ULL, +}; + +enum hn_flags_bits { + HANDSHAKE_F_NET_DRAINING = 0, +}; + +enum host_event_code { + EC_HOST_EVENT_LID_CLOSED = 1, + EC_HOST_EVENT_LID_OPEN = 2, + EC_HOST_EVENT_POWER_BUTTON = 3, + EC_HOST_EVENT_AC_CONNECTED = 4, + EC_HOST_EVENT_AC_DISCONNECTED = 5, + EC_HOST_EVENT_BATTERY_LOW = 6, + EC_HOST_EVENT_BATTERY_CRITICAL = 7, + EC_HOST_EVENT_BATTERY = 8, + EC_HOST_EVENT_THERMAL_THRESHOLD = 9, + EC_HOST_EVENT_DEVICE = 10, + EC_HOST_EVENT_THERMAL = 11, + EC_HOST_EVENT_USB_CHARGER = 12, + EC_HOST_EVENT_KEY_PRESSED = 13, + EC_HOST_EVENT_INTERFACE_READY = 14, + EC_HOST_EVENT_KEYBOARD_RECOVERY = 15, + EC_HOST_EVENT_THERMAL_SHUTDOWN = 16, + EC_HOST_EVENT_BATTERY_SHUTDOWN = 17, + EC_HOST_EVENT_THROTTLE_START = 18, + EC_HOST_EVENT_THROTTLE_STOP = 19, + EC_HOST_EVENT_HANG_DETECT = 20, + EC_HOST_EVENT_HANG_REBOOT = 21, + EC_HOST_EVENT_PD_MCU = 22, + EC_HOST_EVENT_BATTERY_STATUS = 23, + EC_HOST_EVENT_PANIC = 24, + EC_HOST_EVENT_KEYBOARD_FASTBOOT = 25, + EC_HOST_EVENT_RTC = 26, + EC_HOST_EVENT_MKBP = 27, + EC_HOST_EVENT_USB_MUX = 28, + EC_HOST_EVENT_MODE_CHANGE = 29, + EC_HOST_EVENT_KEYBOARD_RECOVERY_HW_REINIT = 30, + EC_HOST_EVENT_WOV = 31, + EC_HOST_EVENT_INVALID = 32, +}; + +enum hp_flags_bits { + HANDSHAKE_F_PROTO_NOTIFY = 0, +}; + +enum hpet_mode { + HPET_MODE_UNUSED = 0, + HPET_MODE_LEGACY = 1, + HPET_MODE_CLOCKEVT = 2, + HPET_MODE_DEVICE = 3, +}; + +enum hprobe_state { + HPROBE_LEASED = 0, + HPROBE_STABLE = 1, + HPROBE_GONE = 2, + HPROBE_CONSUMED = 3, +}; + +enum hpx_type3_cfg_loc { + HPX_CFG_PCICFG = 0, + HPX_CFG_PCIE_CAP = 1, + HPX_CFG_PCIE_CAP_EXT = 2, + HPX_CFG_VEND_CAP = 3, + HPX_CFG_DVSEC = 4, + HPX_CFG_MAX = 5, +}; + +enum hpx_type3_dev_type { + HPX_TYPE_ENDPOINT = 1, + HPX_TYPE_LEG_END = 2, + HPX_TYPE_RC_END = 4, + HPX_TYPE_RC_EC = 8, + HPX_TYPE_ROOT_PORT = 16, + HPX_TYPE_UPSTREAM = 32, + HPX_TYPE_DOWNSTREAM = 64, + HPX_TYPE_PCI_BRIDGE = 128, + HPX_TYPE_PCIE_BRIDGE = 256, +}; + +enum hpx_type3_fn_type { + HPX_FN_NORMAL = 1, + HPX_FN_SRIOV_PHYS = 2, + HPX_FN_SRIOV_VIRT = 4, +}; + +enum hr_flags_bits { + HANDSHAKE_F_REQ_COMPLETED = 0, + HANDSHAKE_F_REQ_SESSION = 1, +}; + +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 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, +}; + +enum hrtimer_restart { + HRTIMER_NORESTART = 0, + HRTIMER_RESTART = 1, +}; + +enum hsm_task_states { + HSM_ST_IDLE = 0, + HSM_ST_FIRST = 1, + HSM_ST = 2, + HSM_ST_LAST = 3, + HSM_ST_ERR = 4, +}; + +enum hte_edge { + HTE_EDGE_NO_SETUP = 1, + HTE_RISING_EDGE_TS = 2, + HTE_FALLING_EDGE_TS = 4, +}; + +enum hte_return { + HTE_CB_HANDLED = 0, + HTE_RUN_SECOND_CB = 1, +}; + +enum hub_activation_type { + HUB_INIT = 0, + HUB_INIT2 = 1, + HUB_INIT3 = 2, + HUB_POST_RESET = 3, + HUB_RESUME = 4, + HUB_RESET_RESUME = 5, +}; + +enum hub_led_mode { + INDICATOR_AUTO = 0, + INDICATOR_CYCLE = 1, + INDICATOR_GREEN_BLINK = 2, + INDICATOR_GREEN_BLINK_OFF = 3, + INDICATOR_AMBER_BLINK = 4, + INDICATOR_AMBER_BLINK_OFF = 5, + INDICATOR_ALT_BLINK = 6, + INDICATOR_ALT_BLINK_OFF = 7, +} __attribute__((mode(byte))); + +enum hub_quiescing_type { + HUB_DISCONNECT = 0, + HUB_PRE_RESET = 1, + HUB_SUSPEND = 2, +}; + +enum hugetlb_memory_event { + HUGETLB_MAX = 0, + HUGETLB_NR_MEMORY_EVENTS = 1, +}; + +enum hugetlb_page_flags { + HPG_restore_reserve = 0, + HPG_migratable = 1, + HPG_temporary = 2, + HPG_freed = 3, + HPG_vmemmap_optimized = 4, + HPG_raw_hwp_unreliable = 5, + __NR_HPAGEFLAGS = 6, +}; + +enum hugetlb_param { + Opt_gid___6 = 0, + Opt_min_size = 1, + Opt_mode___4 = 2, + Opt_nr_inodes = 3, + Opt_pagesize = 4, + Opt_size = 5, + Opt_uid___6 = 6, +}; + +enum hugetlbfs_size_type { + NO_SIZE = 0, + SIZE_STD = 1, + SIZE_PERCENT = 2, +}; + +enum hv_device_type { + HV_DEVICE_TYPE_LOGICAL = 0, + HV_DEVICE_TYPE_PCI = 1, + HV_DEVICE_TYPE_IOAPIC = 2, + HV_DEVICE_TYPE_ACPI = 3, +}; + +enum hv_generic_set_format { + HV_GENERIC_SET_SPARSE_4K = 0, + HV_GENERIC_SET_ALL = 1, +}; + +enum hv_interrupt_trigger_mode { + HV_INTERRUPT_TRIGGER_MODE_EDGE = 0, + HV_INTERRUPT_TRIGGER_MODE_LEVEL = 1, +}; + +enum hv_interrupt_type { + HV_X64_INTERRUPT_TYPE_FIXED = 0, + HV_X64_INTERRUPT_TYPE_LOWESTPRIORITY = 1, + HV_X64_INTERRUPT_TYPE_SMI = 2, + HV_X64_INTERRUPT_TYPE_REMOTEREAD = 3, + HV_X64_INTERRUPT_TYPE_NMI = 4, + HV_X64_INTERRUPT_TYPE_INIT = 5, + HV_X64_INTERRUPT_TYPE_SIPI = 6, + HV_X64_INTERRUPT_TYPE_EXTINT = 7, + HV_X64_INTERRUPT_TYPE_LOCALINT0 = 8, + HV_X64_INTERRUPT_TYPE_LOCALINT1 = 9, + HV_X64_INTERRUPT_TYPE_MAXIMUM = 10, +}; + +enum hv_isolation_type { + HV_ISOLATION_TYPE_NONE = 0, + HV_ISOLATION_TYPE_VBS = 1, + HV_ISOLATION_TYPE_SNP = 2, + HV_ISOLATION_TYPE_TDX = 3, +}; + +enum hv_mem_host_visibility { + VMBUS_PAGE_NOT_VISIBLE = 0, + VMBUS_PAGE_VISIBLE_READ_ONLY = 1, + VMBUS_PAGE_VISIBLE_READ_WRITE = 3, +}; + +enum hv_tlb_flush_fifos { + HV_L1_TLB_FLUSH_FIFO = 0, + HV_L2_TLB_FLUSH_FIFO = 1, + HV_NR_TLB_FLUSH_FIFOS = 2, +}; + +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 hvmmem_type_t { + HVMMEM_ram_rw = 0, + HVMMEM_ram_ro = 1, + HVMMEM_mmio_dm = 2, +}; + +enum hw_event_mc_err_type { + HW_EVENT_ERR_CORRECTED = 0, + HW_EVENT_ERR_UNCORRECTED = 1, + HW_EVENT_ERR_DEFERRED = 2, + HW_EVENT_ERR_FATAL = 3, + HW_EVENT_ERR_INFO = 4, +}; + +enum hw_protection_action { + HWPROT_ACT_SHUTDOWN = 0, + HWPROT_ACT_REBOOT = 1, +}; + +enum hwmon_chip_attributes { + hwmon_chip_temp_reset_history = 0, + hwmon_chip_in_reset_history = 1, + hwmon_chip_curr_reset_history = 2, + hwmon_chip_power_reset_history = 3, + hwmon_chip_register_tz = 4, + hwmon_chip_update_interval = 5, + hwmon_chip_alarms = 6, + hwmon_chip_samples = 7, + hwmon_chip_curr_samples = 8, + hwmon_chip_in_samples = 9, + hwmon_chip_power_samples = 10, + hwmon_chip_temp_samples = 11, + hwmon_chip_beep_enable = 12, + hwmon_chip_pec = 13, +}; + +enum hwmon_curr_attributes { + hwmon_curr_enable = 0, + hwmon_curr_input = 1, + hwmon_curr_min = 2, + hwmon_curr_max = 3, + hwmon_curr_lcrit = 4, + hwmon_curr_crit = 5, + hwmon_curr_average = 6, + hwmon_curr_lowest = 7, + hwmon_curr_highest = 8, + hwmon_curr_reset_history = 9, + hwmon_curr_label = 10, + hwmon_curr_alarm = 11, + hwmon_curr_min_alarm = 12, + hwmon_curr_max_alarm = 13, + hwmon_curr_lcrit_alarm = 14, + hwmon_curr_crit_alarm = 15, + hwmon_curr_rated_min = 16, + hwmon_curr_rated_max = 17, + hwmon_curr_beep = 18, +}; + +enum hwmon_energy_attributes { + hwmon_energy_enable = 0, + hwmon_energy_input = 1, + hwmon_energy_label = 2, +}; + +enum hwmon_fan_attributes { + hwmon_fan_enable = 0, + hwmon_fan_input = 1, + hwmon_fan_label = 2, + hwmon_fan_min = 3, + hwmon_fan_max = 4, + hwmon_fan_div = 5, + hwmon_fan_pulses = 6, + hwmon_fan_target = 7, + hwmon_fan_alarm = 8, + hwmon_fan_min_alarm = 9, + hwmon_fan_max_alarm = 10, + hwmon_fan_fault = 11, + hwmon_fan_beep = 12, +}; + +enum hwmon_humidity_attributes { + hwmon_humidity_enable = 0, + hwmon_humidity_input = 1, + hwmon_humidity_label = 2, + hwmon_humidity_min = 3, + hwmon_humidity_min_hyst = 4, + hwmon_humidity_max = 5, + hwmon_humidity_max_hyst = 6, + hwmon_humidity_alarm = 7, + hwmon_humidity_fault = 8, + hwmon_humidity_rated_min = 9, + hwmon_humidity_rated_max = 10, + hwmon_humidity_min_alarm = 11, + hwmon_humidity_max_alarm = 12, +}; + +enum hwmon_in_attributes { + hwmon_in_enable = 0, + hwmon_in_input = 1, + hwmon_in_min = 2, + hwmon_in_max = 3, + hwmon_in_lcrit = 4, + hwmon_in_crit = 5, + hwmon_in_average = 6, + hwmon_in_lowest = 7, + hwmon_in_highest = 8, + hwmon_in_reset_history = 9, + hwmon_in_label = 10, + hwmon_in_alarm = 11, + hwmon_in_min_alarm = 12, + hwmon_in_max_alarm = 13, + hwmon_in_lcrit_alarm = 14, + hwmon_in_crit_alarm = 15, + hwmon_in_rated_min = 16, + hwmon_in_rated_max = 17, + hwmon_in_beep = 18, + hwmon_in_fault = 19, +}; + +enum hwmon_intrusion_attributes { + hwmon_intrusion_alarm = 0, + hwmon_intrusion_beep = 1, +}; + +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_pwm_attributes { + hwmon_pwm_input = 0, + hwmon_pwm_enable = 1, + hwmon_pwm_mode = 2, + hwmon_pwm_freq = 3, + hwmon_pwm_auto_channels_temp = 4, +}; + +enum hwmon_sensor_types { + hwmon_chip = 0, + hwmon_temp = 1, + hwmon_in = 2, + hwmon_curr = 3, + hwmon_power = 4, + hwmon_energy = 5, + hwmon_humidity = 6, + hwmon_fan = 7, + hwmon_pwm = 8, + hwmon_intrusion = 9, + hwmon_max = 10, +}; + +enum hwmon_temp_attributes { + hwmon_temp_enable = 0, + hwmon_temp_input = 1, + hwmon_temp_type = 2, + hwmon_temp_lcrit = 3, + hwmon_temp_lcrit_hyst = 4, + hwmon_temp_min = 5, + hwmon_temp_min_hyst = 6, + hwmon_temp_max = 7, + hwmon_temp_max_hyst = 8, + hwmon_temp_crit = 9, + hwmon_temp_crit_hyst = 10, + hwmon_temp_emergency = 11, + hwmon_temp_emergency_hyst = 12, + hwmon_temp_alarm = 13, + hwmon_temp_lcrit_alarm = 14, + hwmon_temp_min_alarm = 15, + hwmon_temp_max_alarm = 16, + hwmon_temp_crit_alarm = 17, + hwmon_temp_emergency_alarm = 18, + hwmon_temp_fault = 19, + hwmon_temp_offset = 20, + hwmon_temp_label = 21, + hwmon_temp_lowest = 22, + hwmon_temp_highest = 23, + hwmon_temp_reset_history = 24, + hwmon_temp_rated_min = 25, + hwmon_temp_rated_max = 26, + hwmon_temp_beep = 27, +}; + +enum hwparam_type { + hwparam_ioport = 0, + hwparam_iomem = 1, + hwparam_ioport_or_iomem = 2, + hwparam_irq = 3, + hwparam_dma = 4, + hwparam_dma_addr = 5, + hwparam_other = 6, +}; + +enum hwtstamp_flags { + HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, + HWTSTAMP_FLAG_LAST = 1, + HWTSTAMP_FLAG_MASK = 1, +}; + +enum hwtstamp_provider_qualifier { + HWTSTAMP_PROVIDER_QUALIFIER_PRECISE = 0, + HWTSTAMP_PROVIDER_QUALIFIER_APPROX = 1, + HWTSTAMP_PROVIDER_QUALIFIER_CNT = 2, +}; + +enum hwtstamp_rx_filters { + HWTSTAMP_FILTER_NONE = 0, + HWTSTAMP_FILTER_ALL = 1, + HWTSTAMP_FILTER_SOME = 2, + HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3, + HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4, + HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5, + HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6, + HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7, + HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8, + HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9, + HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10, + HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11, + HWTSTAMP_FILTER_PTP_V2_EVENT = 12, + HWTSTAMP_FILTER_PTP_V2_SYNC = 13, + HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14, + HWTSTAMP_FILTER_NTP_ALL = 15, + __HWTSTAMP_FILTER_CNT = 16, +}; + +enum hwtstamp_source { + HWTSTAMP_SOURCE_UNSPEC = 0, + HWTSTAMP_SOURCE_NETDEV = 1, + HWTSTAMP_SOURCE_PHYLIB = 2, +}; + +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 hybrid_cpu_type { + HYBRID_INTEL_NONE = 0, + HYBRID_INTEL_ATOM = 32, + HYBRID_INTEL_CORE = 64, +}; + +enum hybrid_pmu_type { + not_hybrid = 0, + hybrid_small = 1, + hybrid_big = 2, + hybrid_tiny = 4, + hybrid_big_small = 3, + hybrid_small_tiny = 5, + hybrid_big_small_tiny = 7, +}; + +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 i2c_slave_event { + I2C_SLAVE_READ_REQUESTED = 0, + I2C_SLAVE_WRITE_REQUESTED = 1, + I2C_SLAVE_READ_PROCESSED = 2, + I2C_SLAVE_WRITE_RECEIVED = 3, + I2C_SLAVE_STOP = 4, +}; + +enum i8042_controller_reset_mode { + I8042_RESET_NEVER = 0, + I8042_RESET_ALWAYS = 1, + I8042_RESET_ON_S2RAM = 2, +}; + +enum ib_atomic_cap { + IB_ATOMIC_NONE = 0, + IB_ATOMIC_HCA = 1, + IB_ATOMIC_GLOB = 2, +}; + +enum ib_cq_notify_flags { + IB_CQ_SOLICITED = 1, + IB_CQ_NEXT_COMP = 2, + IB_CQ_SOLICITED_MASK = 3, + IB_CQ_REPORT_MISSED_EVENTS = 4, +}; + +enum 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, +}; + +enum ib_flow_action_type { + IB_FLOW_ACTION_UNSPECIFIED = 0, + IB_FLOW_ACTION_ESP = 1, +}; + +enum ib_flow_attr_type { + IB_FLOW_ATTR_NORMAL = 0, + IB_FLOW_ATTR_ALL_DEFAULT = 1, + IB_FLOW_ATTR_MC_DEFAULT = 2, + IB_FLOW_ATTR_SNIFFER = 3, +}; + +enum ib_flow_spec_type { + IB_FLOW_SPEC_ETH = 32, + IB_FLOW_SPEC_IB = 34, + IB_FLOW_SPEC_IPV4 = 48, + IB_FLOW_SPEC_IPV6 = 49, + IB_FLOW_SPEC_ESP = 52, + IB_FLOW_SPEC_TCP = 64, + IB_FLOW_SPEC_UDP = 65, + IB_FLOW_SPEC_VXLAN_TUNNEL = 80, + IB_FLOW_SPEC_GRE = 81, + IB_FLOW_SPEC_MPLS = 96, + IB_FLOW_SPEC_INNER = 256, + IB_FLOW_SPEC_ACTION_TAG = 4096, + IB_FLOW_SPEC_ACTION_DROP = 4097, + IB_FLOW_SPEC_ACTION_HANDLE = 4098, + IB_FLOW_SPEC_ACTION_COUNT = 4099, +}; + +enum 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, +}; + +enum ib_mig_state { + IB_MIG_MIGRATED = 0, + IB_MIG_REARM = 1, + IB_MIG_ARMED = 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_mtu { + IB_MTU_256 = 1, + IB_MTU_512 = 2, + IB_MTU_1024 = 3, + IB_MTU_2048 = 4, + IB_MTU_4096 = 5, +}; + +enum ib_mw_type { + IB_MW_TYPE_1 = 1, + IB_MW_TYPE_2 = 2, +}; + +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, +}; + +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_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_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 ib_sig_err_type { + IB_SIG_BAD_GUARD = 0, + IB_SIG_BAD_REFTAG = 1, + IB_SIG_BAD_APPTAG = 2, +}; + +enum ib_sig_type { + IB_SIGNAL_ALL_WR = 0, + IB_SIGNAL_REQ_WR = 1, +}; + +enum ib_signature_type { + IB_SIG_TYPE_NONE = 0, + IB_SIG_TYPE_T10_DIF = 1, +}; + +enum ib_srq_attr_mask { + IB_SRQ_MAX_WR = 1, + IB_SRQ_LIMIT = 2, +}; + +enum ib_srq_type { + IB_SRQT_BASIC = 0, + IB_SRQT_XRC = 1, + IB_SRQT_TM = 2, +}; + +enum ib_t10_dif_bg_type { + IB_T10DIF_CRC = 0, + IB_T10DIF_CSUM = 1, +}; + +enum ib_uverbs_access_flags { + IB_UVERBS_ACCESS_LOCAL_WRITE = 1, + IB_UVERBS_ACCESS_REMOTE_WRITE = 2, + IB_UVERBS_ACCESS_REMOTE_READ = 4, + IB_UVERBS_ACCESS_REMOTE_ATOMIC = 8, + IB_UVERBS_ACCESS_MW_BIND = 16, + IB_UVERBS_ACCESS_ZERO_BASED = 32, + IB_UVERBS_ACCESS_ON_DEMAND = 64, + IB_UVERBS_ACCESS_HUGETLB = 128, + IB_UVERBS_ACCESS_FLUSH_GLOBAL = 256, + IB_UVERBS_ACCESS_FLUSH_PERSISTENT = 512, + IB_UVERBS_ACCESS_RELAXED_ORDERING = 1048576, + IB_UVERBS_ACCESS_OPTIONAL_RANGE = 1072693248, +}; + +enum ib_uverbs_advise_mr_advice { + IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH = 0, + IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE = 1, + IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_NO_FAULT = 2, +}; + +enum ib_uverbs_create_qp_mask { + IB_UVERBS_CREATE_QP_MASK_IND_TABLE = 1, +}; + +enum ib_uverbs_device_cap_flags { + IB_UVERBS_DEVICE_RESIZE_MAX_WR = 1ULL, + IB_UVERBS_DEVICE_BAD_PKEY_CNTR = 2ULL, + IB_UVERBS_DEVICE_BAD_QKEY_CNTR = 4ULL, + IB_UVERBS_DEVICE_RAW_MULTI = 8ULL, + IB_UVERBS_DEVICE_AUTO_PATH_MIG = 16ULL, + IB_UVERBS_DEVICE_CHANGE_PHY_PORT = 32ULL, + IB_UVERBS_DEVICE_UD_AV_PORT_ENFORCE = 64ULL, + IB_UVERBS_DEVICE_CURR_QP_STATE_MOD = 128ULL, + IB_UVERBS_DEVICE_SHUTDOWN_PORT = 256ULL, + IB_UVERBS_DEVICE_PORT_ACTIVE_EVENT = 1024ULL, + IB_UVERBS_DEVICE_SYS_IMAGE_GUID = 2048ULL, + IB_UVERBS_DEVICE_RC_RNR_NAK_GEN = 4096ULL, + IB_UVERBS_DEVICE_SRQ_RESIZE = 8192ULL, + IB_UVERBS_DEVICE_N_NOTIFY_CQ = 16384ULL, + IB_UVERBS_DEVICE_MEM_WINDOW = 131072ULL, + IB_UVERBS_DEVICE_UD_IP_CSUM = 262144ULL, + IB_UVERBS_DEVICE_XRC = 1048576ULL, + IB_UVERBS_DEVICE_MEM_MGT_EXTENSIONS = 2097152ULL, + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2A = 8388608ULL, + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2B = 16777216ULL, + IB_UVERBS_DEVICE_RC_IP_CSUM = 33554432ULL, + IB_UVERBS_DEVICE_RAW_IP_CSUM = 67108864ULL, + IB_UVERBS_DEVICE_MANAGED_FLOW_STEERING = 536870912ULL, + IB_UVERBS_DEVICE_RAW_SCATTER_FCS = 17179869184ULL, + IB_UVERBS_DEVICE_PCI_WRITE_END_PADDING = 68719476736ULL, + IB_UVERBS_DEVICE_FLUSH_GLOBAL = 274877906944ULL, + IB_UVERBS_DEVICE_FLUSH_PERSISTENT = 549755813888ULL, + IB_UVERBS_DEVICE_ATOMIC_WRITE = 1099511627776ULL, +}; + +enum ib_uverbs_gid_type { + IB_UVERBS_GID_TYPE_IB = 0, + IB_UVERBS_GID_TYPE_ROCE_V1 = 1, + IB_UVERBS_GID_TYPE_ROCE_V2 = 2, +}; + +enum ib_uverbs_qp_create_flags { + IB_UVERBS_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 2, + IB_UVERBS_QP_CREATE_SCATTER_FCS = 256, + IB_UVERBS_QP_CREATE_CVLAN_STRIPPING = 512, + IB_UVERBS_QP_CREATE_PCI_WRITE_END_PADDING = 2048, + IB_UVERBS_QP_CREATE_SQ_SIG_ALL = 4096, +}; + +enum ib_uverbs_qp_type { + IB_UVERBS_QPT_RC = 2, + IB_UVERBS_QPT_UC = 3, + IB_UVERBS_QPT_UD = 4, + IB_UVERBS_QPT_RAW_PACKET = 8, + IB_UVERBS_QPT_XRC_INI = 9, + IB_UVERBS_QPT_XRC_TGT = 10, + IB_UVERBS_QPT_DRIVER = 255, +}; + +enum ib_uverbs_raw_packet_caps { + IB_UVERBS_RAW_PACKET_CAP_CVLAN_STRIPPING = 1, + IB_UVERBS_RAW_PACKET_CAP_SCATTER_FCS = 2, + IB_UVERBS_RAW_PACKET_CAP_IP_CSUM = 4, + IB_UVERBS_RAW_PACKET_CAP_DELAY_DROP = 8, +}; + +enum ib_uverbs_srq_type { + IB_UVERBS_SRQT_BASIC = 0, + IB_UVERBS_SRQT_XRC = 1, + IB_UVERBS_SRQT_TM = 2, +}; + +enum ib_uverbs_wc_opcode { + IB_UVERBS_WC_SEND = 0, + IB_UVERBS_WC_RDMA_WRITE = 1, + IB_UVERBS_WC_RDMA_READ = 2, + IB_UVERBS_WC_COMP_SWAP = 3, + IB_UVERBS_WC_FETCH_ADD = 4, + IB_UVERBS_WC_BIND_MW = 5, + IB_UVERBS_WC_LOCAL_INV = 6, + IB_UVERBS_WC_TSO = 7, + IB_UVERBS_WC_FLUSH = 8, + IB_UVERBS_WC_ATOMIC_WRITE = 9, +}; + +enum ib_uverbs_wq_flags { + IB_UVERBS_WQ_FLAGS_CVLAN_STRIPPING = 1, + IB_UVERBS_WQ_FLAGS_SCATTER_FCS = 2, + IB_UVERBS_WQ_FLAGS_DELAY_DROP = 4, + IB_UVERBS_WQ_FLAGS_PCI_WRITE_END_PADDING = 8, +}; + +enum ib_uverbs_wq_type { + IB_UVERBS_WQT_RQ = 0, +}; + +enum ib_uverbs_wr_opcode { + IB_UVERBS_WR_RDMA_WRITE = 0, + IB_UVERBS_WR_RDMA_WRITE_WITH_IMM = 1, + IB_UVERBS_WR_SEND = 2, + IB_UVERBS_WR_SEND_WITH_IMM = 3, + IB_UVERBS_WR_RDMA_READ = 4, + IB_UVERBS_WR_ATOMIC_CMP_AND_SWP = 5, + IB_UVERBS_WR_ATOMIC_FETCH_AND_ADD = 6, + IB_UVERBS_WR_LOCAL_INV = 7, + IB_UVERBS_WR_BIND_MW = 8, + IB_UVERBS_WR_SEND_WITH_INV = 9, + IB_UVERBS_WR_TSO = 10, + IB_UVERBS_WR_RDMA_READ_WITH_INV = 11, + IB_UVERBS_WR_MASKED_ATOMIC_CMP_AND_SWP = 12, + IB_UVERBS_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13, + IB_UVERBS_WR_FLUSH = 14, + IB_UVERBS_WR_ATOMIC_WRITE = 15, +}; + +enum ib_uverbs_write_cmds { + IB_USER_VERBS_CMD_GET_CONTEXT = 0, + IB_USER_VERBS_CMD_QUERY_DEVICE = 1, + IB_USER_VERBS_CMD_QUERY_PORT = 2, + IB_USER_VERBS_CMD_ALLOC_PD = 3, + IB_USER_VERBS_CMD_DEALLOC_PD = 4, + IB_USER_VERBS_CMD_CREATE_AH = 5, + IB_USER_VERBS_CMD_MODIFY_AH = 6, + IB_USER_VERBS_CMD_QUERY_AH = 7, + IB_USER_VERBS_CMD_DESTROY_AH = 8, + IB_USER_VERBS_CMD_REG_MR = 9, + IB_USER_VERBS_CMD_REG_SMR = 10, + IB_USER_VERBS_CMD_REREG_MR = 11, + IB_USER_VERBS_CMD_QUERY_MR = 12, + IB_USER_VERBS_CMD_DEREG_MR = 13, + IB_USER_VERBS_CMD_ALLOC_MW = 14, + IB_USER_VERBS_CMD_BIND_MW = 15, + IB_USER_VERBS_CMD_DEALLOC_MW = 16, + IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL = 17, + IB_USER_VERBS_CMD_CREATE_CQ = 18, + IB_USER_VERBS_CMD_RESIZE_CQ = 19, + IB_USER_VERBS_CMD_DESTROY_CQ = 20, + IB_USER_VERBS_CMD_POLL_CQ = 21, + IB_USER_VERBS_CMD_PEEK_CQ = 22, + IB_USER_VERBS_CMD_REQ_NOTIFY_CQ = 23, + IB_USER_VERBS_CMD_CREATE_QP = 24, + IB_USER_VERBS_CMD_QUERY_QP = 25, + IB_USER_VERBS_CMD_MODIFY_QP = 26, + IB_USER_VERBS_CMD_DESTROY_QP = 27, + IB_USER_VERBS_CMD_POST_SEND = 28, + IB_USER_VERBS_CMD_POST_RECV = 29, + IB_USER_VERBS_CMD_ATTACH_MCAST = 30, + IB_USER_VERBS_CMD_DETACH_MCAST = 31, + IB_USER_VERBS_CMD_CREATE_SRQ = 32, + IB_USER_VERBS_CMD_MODIFY_SRQ = 33, + IB_USER_VERBS_CMD_QUERY_SRQ = 34, + IB_USER_VERBS_CMD_DESTROY_SRQ = 35, + IB_USER_VERBS_CMD_POST_SRQ_RECV = 36, + IB_USER_VERBS_CMD_OPEN_XRCD = 37, + IB_USER_VERBS_CMD_CLOSE_XRCD = 38, + IB_USER_VERBS_CMD_CREATE_XSRQ = 39, + IB_USER_VERBS_CMD_OPEN_QP = 40, +}; + +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, +}; + +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_wq_state { + IB_WQS_RESET = 0, + IB_WQS_RDY = 1, + IB_WQS_ERR = 2, +}; + +enum ib_wq_type { + IB_WQT_RQ = 0, +}; + +enum ib_wr_opcode { + IB_WR_RDMA_WRITE = 0, + IB_WR_RDMA_WRITE_WITH_IMM = 1, + IB_WR_SEND = 2, + IB_WR_SEND_WITH_IMM = 3, + IB_WR_RDMA_READ = 4, + IB_WR_ATOMIC_CMP_AND_SWP = 5, + IB_WR_ATOMIC_FETCH_AND_ADD = 6, + IB_WR_BIND_MW = 8, + IB_WR_LSO = 10, + IB_WR_SEND_WITH_INV = 9, + IB_WR_RDMA_READ_WITH_INV = 11, + IB_WR_LOCAL_INV = 7, + IB_WR_MASKED_ATOMIC_CMP_AND_SWP = 12, + IB_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13, + IB_WR_FLUSH = 14, + IB_WR_ATOMIC_WRITE = 15, + IB_WR_REG_MR = 32, + IB_WR_REG_MR_INTEGRITY = 33, + IB_WR_RESERVED1 = 240, + IB_WR_RESERVED2 = 241, + IB_WR_RESERVED3 = 242, + IB_WR_RESERVED4 = 243, + IB_WR_RESERVED5 = 244, + IB_WR_RESERVED6 = 245, + IB_WR_RESERVED7 = 246, + IB_WR_RESERVED8 = 247, + IB_WR_RESERVED9 = 248, + IB_WR_RESERVED10 = 249, +}; + +enum ibs_states { + IBS_ENABLED = 0, + IBS_STARTED = 1, + IBS_STOPPING = 2, + IBS_STOPPED = 3, + IBS_MAX_STATES = 4, +}; + +enum id_action { + ID_REMOVE = 0, + ID_ADD = 1, +}; + +enum idle_boot_override { + IDLE_NO_OVERRIDE = 0, + IDLE_HALT = 1, + IDLE_NOMWAIT = 2, + IDLE_POLL = 3, +}; + +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, +}; + +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, +}; + +enum ieee802154_filtering_level { + IEEE802154_FILTERING_NONE = 0, + IEEE802154_FILTERING_1_FCS = 1, + IEEE802154_FILTERING_2_PROMISCUOUS = 2, + IEEE802154_FILTERING_3_SCAN = 3, + IEEE802154_FILTERING_4_FRAME_FIELDS = 4, +}; + +enum ieee8021q_traffic_type { + IEEE8021Q_TT_BK = 0, + IEEE8021Q_TT_BE = 1, + IEEE8021Q_TT_EE = 2, + IEEE8021Q_TT_CA = 3, + IEEE8021Q_TT_VI = 4, + IEEE8021Q_TT_VO = 5, + IEEE8021Q_TT_IC = 6, + IEEE8021Q_TT_NC = 7, + IEEE8021Q_TT_MAX = 8, +}; + +enum ieee_attrs { + DCB_ATTR_IEEE_UNSPEC = 0, + DCB_ATTR_IEEE_ETS = 1, + DCB_ATTR_IEEE_PFC = 2, + DCB_ATTR_IEEE_APP_TABLE = 3, + DCB_ATTR_IEEE_PEER_ETS = 4, + DCB_ATTR_IEEE_PEER_PFC = 5, + DCB_ATTR_IEEE_PEER_APP = 6, + DCB_ATTR_IEEE_MAXRATE = 7, + DCB_ATTR_IEEE_QCN = 8, + DCB_ATTR_IEEE_QCN_STATS = 9, + DCB_ATTR_DCB_BUFFER = 10, + DCB_ATTR_DCB_APP_TRUST_TABLE = 11, + DCB_ATTR_DCB_REWR_TABLE = 12, + __DCB_ATTR_IEEE_MAX = 13, +}; + +enum ieee_attrs_app { + DCB_ATTR_IEEE_APP_UNSPEC = 0, + DCB_ATTR_IEEE_APP = 1, + DCB_ATTR_DCB_APP = 2, + __DCB_ATTR_IEEE_APP_MAX = 3, +}; + +enum ima_fs_flags { + IMA_FS_BUSY = 0, +}; + +enum ima_hooks { + NONE___2 = 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, +}; + +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, +}; + +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 inet_csk_ack_state_t { + ICSK_ACK_SCHED = 1, + ICSK_ACK_TIMER = 2, + ICSK_ACK_PUSHED = 4, + ICSK_ACK_PUSHED2 = 8, + ICSK_ACK_NOW = 16, + ICSK_ACK_NOMEM = 32, +}; + +enum 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 input_clock_type { + INPUT_CLK_REAL = 0, + INPUT_CLK_MONO = 1, + INPUT_CLK_BOOT = 2, + INPUT_CLK_MAX = 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, +}; + +enum insn_mode { + INSN_MODE_32 = 0, + INSN_MODE_64 = 1, + INSN_MODE_KERN = 2, + INSN_NUM_MODES = 3, +}; + +enum insn_type { + CALL = 0, + NOP = 1, + JMP = 2, + RET = 3, + JCC = 4, +}; + +enum int_type { + SYS_INT = 1, + DCDC_INT = 2, + RTC_INT = 4, + ADC_INT = 8, + GPIO_INT = 16, +}; + +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, +}; + +enum intel_cht_wc_models { + INTEL_CHT_WC_UNKNOWN = 0, + INTEL_CHT_WC_GPD_WIN_POCKET = 1, + INTEL_CHT_WC_XIAOMI_MIPAD2 = 2, + INTEL_CHT_WC_LENOVO_YOGABOOK1 = 3, + INTEL_CHT_WC_LENOVO_YT3_X90 = 4, +}; + +enum intel_cpu_type { + INTEL_CPU_TYPE_ATOM = 32, + INTEL_CPU_TYPE_CORE = 64, +}; + +enum intel_excl_state_type { + INTEL_EXCL_UNUSED = 0, + INTEL_EXCL_SHARED = 1, + INTEL_EXCL_EXCLUSIVE = 2, +}; + +enum intercept_words { + INTERCEPT_CR = 0, + INTERCEPT_DR = 1, + INTERCEPT_EXCEPTION = 2, + INTERCEPT_WORD3 = 3, + INTERCEPT_WORD4 = 4, + INTERCEPT_WORD5 = 5, + MAX_INTERCEPT = 6, +}; + +enum io_pgtable_caps { + IO_PGTABLE_CAP_CUSTOM_ALLOCATOR = 1, +}; + +enum io_pgtable_fmt { + ARM_32_LPAE_S1 = 0, + ARM_32_LPAE_S2 = 1, + ARM_64_LPAE_S1 = 2, + ARM_64_LPAE_S2 = 3, + ARM_V7S = 4, + ARM_MALI_LPAE = 5, + AMD_IOMMU_V1 = 6, + AMD_IOMMU_V2 = 7, + APPLE_DART = 8, + APPLE_DART2 = 9, + IO_PGTABLE_NUM_FMTS = 10, +}; + +enum io_uring_cmd_flags { + IO_URING_F_COMPLETE_DEFER = 1, + IO_URING_F_UNLOCKED = 2, + IO_URING_F_MULTISHOT = 4, + IO_URING_F_IOWQ = 8, + IO_URING_F_NONBLOCK = -2147483648, + IO_URING_F_SQE128 = 256, + IO_URING_F_CQE32 = 512, + IO_URING_F_IOPOLL = 1024, + IO_URING_F_CANCEL = 2048, + IO_URING_F_COMPAT = 4096, + IO_URING_F_TASK_DEAD = 8192, +}; + +enum io_uring_msg_ring_flags { + IORING_MSG_DATA = 0, + IORING_MSG_SEND_FD = 1, +}; + +enum io_uring_napi_op { + IO_URING_NAPI_REGISTER_OP = 0, + IO_URING_NAPI_STATIC_ADD_ID = 1, + IO_URING_NAPI_STATIC_DEL_ID = 2, +}; + +enum io_uring_napi_tracking_strategy { + IO_URING_NAPI_TRACKING_DYNAMIC = 0, + IO_URING_NAPI_TRACKING_STATIC = 1, + IO_URING_NAPI_TRACKING_INACTIVE = 255, +}; + +enum io_uring_op { + IORING_OP_NOP = 0, + IORING_OP_READV = 1, + IORING_OP_WRITEV = 2, + IORING_OP_FSYNC = 3, + IORING_OP_READ_FIXED = 4, + IORING_OP_WRITE_FIXED = 5, + IORING_OP_POLL_ADD = 6, + IORING_OP_POLL_REMOVE = 7, + IORING_OP_SYNC_FILE_RANGE = 8, + IORING_OP_SENDMSG = 9, + IORING_OP_RECVMSG = 10, + IORING_OP_TIMEOUT = 11, + IORING_OP_TIMEOUT_REMOVE = 12, + IORING_OP_ACCEPT = 13, + IORING_OP_ASYNC_CANCEL = 14, + IORING_OP_LINK_TIMEOUT = 15, + IORING_OP_CONNECT = 16, + IORING_OP_FALLOCATE = 17, + IORING_OP_OPENAT = 18, + IORING_OP_CLOSE = 19, + IORING_OP_FILES_UPDATE = 20, + IORING_OP_STATX = 21, + IORING_OP_READ = 22, + IORING_OP_WRITE = 23, + IORING_OP_FADVISE = 24, + IORING_OP_MADVISE = 25, + IORING_OP_SEND = 26, + IORING_OP_RECV = 27, + IORING_OP_OPENAT2 = 28, + IORING_OP_EPOLL_CTL = 29, + IORING_OP_SPLICE = 30, + IORING_OP_PROVIDE_BUFFERS = 31, + IORING_OP_REMOVE_BUFFERS = 32, + IORING_OP_TEE = 33, + IORING_OP_SHUTDOWN = 34, + IORING_OP_RENAMEAT = 35, + IORING_OP_UNLINKAT = 36, + IORING_OP_MKDIRAT = 37, + IORING_OP_SYMLINKAT = 38, + IORING_OP_LINKAT = 39, + IORING_OP_MSG_RING = 40, + IORING_OP_FSETXATTR = 41, + IORING_OP_SETXATTR = 42, + IORING_OP_FGETXATTR = 43, + IORING_OP_GETXATTR = 44, + IORING_OP_SOCKET = 45, + IORING_OP_URING_CMD = 46, + IORING_OP_SEND_ZC = 47, + IORING_OP_SENDMSG_ZC = 48, + IORING_OP_READ_MULTISHOT = 49, + IORING_OP_WAITID = 50, + IORING_OP_FUTEX_WAIT = 51, + IORING_OP_FUTEX_WAKE = 52, + IORING_OP_FUTEX_WAITV = 53, + IORING_OP_FIXED_FD_INSTALL = 54, + IORING_OP_FTRUNCATE = 55, + IORING_OP_BIND = 56, + IORING_OP_LISTEN = 57, + IORING_OP_LAST = 58, +}; + +enum io_uring_register_op { + IORING_REGISTER_BUFFERS = 0, + IORING_UNREGISTER_BUFFERS = 1, + IORING_REGISTER_FILES = 2, + IORING_UNREGISTER_FILES = 3, + IORING_REGISTER_EVENTFD = 4, + IORING_UNREGISTER_EVENTFD = 5, + IORING_REGISTER_FILES_UPDATE = 6, + IORING_REGISTER_EVENTFD_ASYNC = 7, + IORING_REGISTER_PROBE = 8, + IORING_REGISTER_PERSONALITY = 9, + IORING_UNREGISTER_PERSONALITY = 10, + IORING_REGISTER_RESTRICTIONS = 11, + IORING_REGISTER_ENABLE_RINGS = 12, + IORING_REGISTER_FILES2 = 13, + IORING_REGISTER_FILES_UPDATE2 = 14, + IORING_REGISTER_BUFFERS2 = 15, + IORING_REGISTER_BUFFERS_UPDATE = 16, + IORING_REGISTER_IOWQ_AFF = 17, + IORING_UNREGISTER_IOWQ_AFF = 18, + IORING_REGISTER_IOWQ_MAX_WORKERS = 19, + IORING_REGISTER_RING_FDS = 20, + IORING_UNREGISTER_RING_FDS = 21, + IORING_REGISTER_PBUF_RING = 22, + IORING_UNREGISTER_PBUF_RING = 23, + IORING_REGISTER_SYNC_CANCEL = 24, + IORING_REGISTER_FILE_ALLOC_RANGE = 25, + IORING_REGISTER_PBUF_STATUS = 26, + IORING_REGISTER_NAPI = 27, + IORING_UNREGISTER_NAPI = 28, + IORING_REGISTER_CLOCK = 29, + IORING_REGISTER_CLONE_BUFFERS = 30, + IORING_REGISTER_SEND_MSG_RING = 31, + IORING_REGISTER_RESIZE_RINGS = 33, + IORING_REGISTER_MEM_REGION = 34, + IORING_REGISTER_LAST = 35, + IORING_REGISTER_USE_REGISTERED_RING = 2147483648, +}; + +enum io_uring_register_pbuf_ring_flags { + IOU_PBUF_RING_MMAP = 1, + IOU_PBUF_RING_INC = 2, +}; + +enum io_uring_register_restriction_op { + IORING_RESTRICTION_REGISTER_OP = 0, + IORING_RESTRICTION_SQE_OP = 1, + IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, + IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, + IORING_RESTRICTION_LAST = 4, +}; + +enum io_uring_socket_op { + SOCKET_URING_OP_SIOCINQ = 0, + SOCKET_URING_OP_SIOCOUTQ = 1, + SOCKET_URING_OP_GETSOCKOPT = 2, + SOCKET_URING_OP_SETSOCKOPT = 3, +}; + +enum io_uring_sqe_flags_bit { + 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 io_wq_cancel { + IO_WQ_CANCEL_OK = 0, + IO_WQ_CANCEL_RUNNING = 1, + IO_WQ_CANCEL_NOTFOUND = 2, +}; + +enum io_wq_type { + IO_WQ_BOUND = 0, + IO_WQ_UNBOUND = 1, +}; + +enum ioam6_event_attr { + IOAM6_EVENT_ATTR_UNSPEC = 0, + IOAM6_EVENT_ATTR_TRACE_NAMESPACE = 1, + IOAM6_EVENT_ATTR_TRACE_NODELEN = 2, + IOAM6_EVENT_ATTR_TRACE_TYPE = 3, + IOAM6_EVENT_ATTR_TRACE_DATA = 4, + __IOAM6_EVENT_ATTR_MAX = 5, +}; + +enum ioam6_event_type { + IOAM6_EVENT_UNSPEC = 0, + IOAM6_EVENT_TRACE = 1, +}; + +enum ioapic_domain_type { + IOAPIC_DOMAIN_INVALID = 0, + IOAPIC_DOMAIN_LEGACY = 1, + IOAPIC_DOMAIN_STRICT = 2, + IOAPIC_DOMAIN_DYNAMIC = 3, +}; + +enum ioc_running { + IOC_IDLE = 0, + IOC_RUNNING = 1, + IOC_STOP = 2, +}; + +enum iommu_cap { + IOMMU_CAP_CACHE_COHERENCY = 0, + IOMMU_CAP_NOEXEC = 1, + IOMMU_CAP_PRE_BOOT_PROTECTION = 2, + IOMMU_CAP_ENFORCE_CACHE_COHERENCY = 3, + IOMMU_CAP_DEFERRED_FLUSH = 4, + IOMMU_CAP_DIRTY_TRACKING = 5, +}; + +enum iommu_dev_features { + IOMMU_DEV_FEAT_SVA = 0, + IOMMU_DEV_FEAT_IOPF = 1, +}; + +enum iommu_dma_cookie_type { + IOMMU_DMA_IOVA_COOKIE = 0, + IOMMU_DMA_MSI_COOKIE = 1, +}; + +enum iommu_dma_queue_type { + IOMMU_DMA_OPTS_PER_CPU_QUEUE = 0, + IOMMU_DMA_OPTS_SINGLE_QUEUE = 1, +}; + +enum iommu_fault_type { + IOMMU_FAULT_PAGE_REQ = 1, +}; + +enum iommu_hw_info_type { + IOMMU_HW_INFO_TYPE_NONE = 0, + IOMMU_HW_INFO_TYPE_INTEL_VTD = 1, + IOMMU_HW_INFO_TYPE_ARM_SMMUV3 = 2, +}; + +enum iommu_hw_info_vtd_flags { + IOMMU_HW_INFO_VTD_ERRATA_772415_SPR17 = 1, +}; + +enum iommu_hwpt_data_type { + IOMMU_HWPT_DATA_NONE = 0, + IOMMU_HWPT_DATA_VTD_S1 = 1, + IOMMU_HWPT_DATA_ARM_SMMUV3 = 2, +}; + +enum iommu_hwpt_invalidate_data_type { + IOMMU_HWPT_INVALIDATE_DATA_VTD_S1 = 0, + IOMMU_VIOMMU_INVALIDATE_DATA_ARM_SMMUV3 = 1, +}; + +enum iommu_hwpt_vtd_s1_flags { + IOMMU_VTD_S1_SRE = 1, + IOMMU_VTD_S1_EAFE = 2, + IOMMU_VTD_S1_WPE = 4, +}; + +enum iommu_hwpt_vtd_s1_invalidate_flags { + IOMMU_VTD_INV_FLAGS_LEAF = 1, +}; + +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, +}; + +enum iommu_page_response_code { + IOMMU_PAGE_RESP_SUCCESS = 0, + IOMMU_PAGE_RESP_INVALID = 1, + IOMMU_PAGE_RESP_FAILURE = 2, +}; + +enum iommu_resv_type { + IOMMU_RESV_DIRECT = 0, + IOMMU_RESV_DIRECT_RELAXABLE = 1, + IOMMU_RESV_RESERVED = 2, + IOMMU_RESV_MSI = 3, + IOMMU_RESV_SW_MSI = 4, +}; + +enum iommufd_hwpt_alloc_flags { + IOMMU_HWPT_ALLOC_NEST_PARENT = 1, + IOMMU_HWPT_ALLOC_DIRTY_TRACKING = 2, + IOMMU_HWPT_FAULT_ID_VALID = 4, + IOMMU_HWPT_ALLOC_PASID = 8, +}; + +enum iommufd_object_type { + IOMMUFD_OBJ_NONE = 0, + IOMMUFD_OBJ_ANY = 0, + IOMMUFD_OBJ_DEVICE = 1, + IOMMUFD_OBJ_HWPT_PAGING = 2, + IOMMUFD_OBJ_HWPT_NESTED = 3, + IOMMUFD_OBJ_IOAS = 4, + IOMMUFD_OBJ_ACCESS = 5, + IOMMUFD_OBJ_FAULT = 6, + IOMMUFD_OBJ_VIOMMU = 7, + IOMMUFD_OBJ_VDEVICE = 8, + IOMMUFD_OBJ_MAX = 9, +}; + +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, +}; + +enum ip_conntrack_dir { + IP_CT_DIR_ORIGINAL = 0, + IP_CT_DIR_REPLY = 1, + IP_CT_DIR_MAX = 2, +}; + +enum ip_conntrack_info { + IP_CT_ESTABLISHED = 0, + IP_CT_RELATED = 1, + IP_CT_NEW = 2, + IP_CT_IS_REPLY = 3, + IP_CT_ESTABLISHED_REPLY = 3, + IP_CT_RELATED_REPLY = 4, + IP_CT_NUMBER = 5, + IP_CT_UNTRACKED = 7, +}; + +enum 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 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 ipe_action_type { + IPE_ACTION_ALLOW = 0, + IPE_ACTION_DENY = 1, + __IPE_ACTION_MAX = 2, +}; + +enum ipe_hook_type { + IPE_HOOK_BPRM_CHECK = 0, + IPE_HOOK_MMAP = 1, + IPE_HOOK_MPROTECT = 2, + IPE_HOOK_KERNEL_READ = 3, + IPE_HOOK_KERNEL_LOAD = 4, + __IPE_HOOK_MAX = 5, +}; + +enum ipe_match { + IPE_MATCH_RULE = 0, + IPE_MATCH_TABLE = 1, + IPE_MATCH_GLOBAL = 2, + __IPE_MATCH_MAX = 3, +}; + +enum ipe_op_type { + IPE_OP_EXEC = 0, + IPE_OP_FIRMWARE = 1, + IPE_OP_KERNEL_MODULE = 2, + IPE_OP_KEXEC_IMAGE = 3, + IPE_OP_KEXEC_INITRAMFS = 4, + IPE_OP_POLICY = 5, + IPE_OP_X509 = 6, + __IPE_OP_MAX = 7, +}; + +enum ipe_prop_type { + IPE_PROP_BOOT_VERIFIED_FALSE = 0, + IPE_PROP_BOOT_VERIFIED_TRUE = 1, + IPE_PROP_DMV_ROOTHASH = 2, + IPE_PROP_DMV_SIG_FALSE = 3, + IPE_PROP_DMV_SIG_TRUE = 4, + IPE_PROP_FSV_DIGEST = 5, + IPE_PROP_FSV_SIG_FALSE = 6, + IPE_PROP_FSV_SIG_TRUE = 7, + __IPE_PROP_MAX = 8, +}; + +enum ipi_vector { + XEN_RESCHEDULE_VECTOR = 0, + XEN_CALL_FUNCTION_VECTOR = 1, + XEN_CALL_FUNCTION_SINGLE_VECTOR = 2, + XEN_SPIN_UNLOCK_VECTOR = 3, + XEN_IRQ_WORK_VECTOR = 4, + XEN_NMI_VECTOR = 5, + XEN_NR_IPIS = 6, +}; + +enum ipmi_addr_space { + IPMI_IO_ADDR_SPACE = 0, + IPMI_MEM_ADDR_SPACE = 1, +}; + +enum ipmi_addr_src { + SI_INVALID = 0, + SI_HOTMOD = 1, + SI_HARDCODED = 2, + SI_SPMI = 3, + SI_ACPI = 4, + SI_SMBIOS = 5, + SI_PCI = 6, + SI_DEVICETREE = 7, + SI_PLATFORM = 8, + SI_LAST = 9, +}; + +enum ipmi_plat_interface_type { + IPMI_PLAT_IF_SI = 0, + IPMI_PLAT_IF_SSIF = 1, +}; + +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 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_DEVICE_MSI = 15, + DOMAIN_BUS_WIRED_TO_MSI = 16, +}; + +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 irq_remap_cap { + IRQ_POSTING_CAP = 0, +}; + +enum irqchip_irq_state { + IRQCHIP_STATE_PENDING = 0, + IRQCHIP_STATE_ACTIVE = 1, + IRQCHIP_STATE_MASKED = 2, + IRQCHIP_STATE_LINE_LEVEL = 3, +}; + +enum irqreturn { + IRQ_NONE = 0, + IRQ_HANDLED = 1, + IRQ_WAKE_THREAD = 2, +}; + +typedef enum irqreturn irqreturn_t; + +enum iter_type { + ITER_UBUF = 0, + ITER_IOVEC = 1, + ITER_BVEC = 2, + ITER_KVEC = 3, + ITER_FOLIOQ = 4, + ITER_XARRAY = 5, + ITER_DISCARD = 6, +}; + +enum its_mitigation { + ITS_MITIGATION_OFF = 0, + ITS_MITIGATION_VMEXIT_ONLY = 1, + ITS_MITIGATION_ALIGNED_THUNKS = 2, + ITS_MITIGATION_RETPOLINE_STUFF = 3, +}; + +enum its_mitigation_cmd { + ITS_CMD_OFF = 0, + ITS_CMD_ON = 1, + ITS_CMD_VMEXIT = 2, + ITS_CMD_RSB_STUFF = 3, +}; + +enum jbd2_shrink_type { + JBD2_SHRINK_DESTROY = 0, + JBD2_SHRINK_BUSY_STOP = 1, + JBD2_SHRINK_BUSY_SKIP = 2, +}; + +enum jbd_state_bits { + BH_JBD = 16, + BH_JWrite = 17, + BH_Freed = 18, + BH_Revoked = 19, + BH_RevokeValid = 20, + BH_JBDDirty = 21, + BH_JournalHead = 22, + BH_Shadow = 23, + BH_Verified = 24, + BH_JBDPrivateStart = 25, +}; + +enum jump_label_type { + JUMP_LABEL_NOP = 0, + JUMP_LABEL_JMP = 1, +}; + +enum kcmp_type { + KCMP_FILE = 0, + KCMP_VM = 1, + KCMP_FILES = 2, + KCMP_FS = 3, + KCMP_SIGHAND = 4, + KCMP_IO = 5, + KCMP_SYSVSEM = 6, + KCMP_EPOLL_TFD = 7, + KCMP_TYPES = 8, +}; + +enum kcore_type { + KCORE_TEXT = 0, + KCORE_VMALLOC = 1, + KCORE_RAM = 2, + KCORE_VMEMMAP = 3, + KCORE_USER = 4, +}; + +enum kdb_msgsrc { + KDB_MSGSRC_INTERNAL = 0, + KDB_MSGSRC_PRINTK = 1, +}; + +enum kernel_gp_hint { + GP_NO_HINT = 0, + GP_NON_CANONICAL = 1, + GP_CANONICAL = 2, +}; + +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 kernel_pkey_operation { + kernel_pkey_encrypt = 0, + kernel_pkey_decrypt = 1, + kernel_pkey_sign = 2, + kernel_pkey_verify = 3, +}; + +enum kernel_read_file_id { + READING_UNKNOWN = 0, + READING_FIRMWARE = 1, + READING_MODULE = 2, + READING_KEXEC_IMAGE = 3, + READING_KEXEC_INITRAMFS = 4, + READING_POLICY = 5, + READING_X509_CERTIFICATE = 6, + READING_MAX_ID = 7, +}; + +enum 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, +}; + +enum kernfs_root_flag { + KERNFS_ROOT_CREATE_DEACTIVATED = 1, + KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK = 2, + KERNFS_ROOT_SUPPORT_EXPORTOP = 4, + KERNFS_ROOT_SUPPORT_USER_XATTR = 8, +}; + +enum 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 key_lookup_flag { + KEY_LOOKUP_CREATE = 1, + KEY_LOOKUP_PARTIAL = 2, + KEY_LOOKUP_ALL = 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_notification_subtype { + NOTIFY_KEY_INSTANTIATED = 0, + NOTIFY_KEY_UPDATED = 1, + NOTIFY_KEY_LINKED = 2, + NOTIFY_KEY_UNLINKED = 3, + NOTIFY_KEY_CLEARED = 4, + NOTIFY_KEY_REVOKED = 5, + NOTIFY_KEY_INVALIDATED = 6, + NOTIFY_KEY_SETATTR = 7, +}; + +enum key_state { + KEY_IS_UNINSTANTIATED = 0, + KEY_IS_POSITIVE = 1, +}; + +enum kfence_counter_id { + KFENCE_COUNTER_ALLOCATED = 0, + KFENCE_COUNTER_ALLOCS = 1, + KFENCE_COUNTER_FREES = 2, + KFENCE_COUNTER_ZOMBIES = 3, + KFENCE_COUNTER_BUGS = 4, + KFENCE_COUNTER_SKIP_INCOMPAT = 5, + KFENCE_COUNTER_SKIP_CAPACITY = 6, + KFENCE_COUNTER_SKIP_COVERED = 7, + KFENCE_COUNTER_COUNT = 8, +}; + +enum kfence_error_type { + KFENCE_ERROR_OOB = 0, + KFENCE_ERROR_UAF = 1, + KFENCE_ERROR_CORRUPTION = 2, + KFENCE_ERROR_INVALID = 3, + KFENCE_ERROR_INVALID_FREE = 4, +}; + +enum kfence_object_state { + KFENCE_OBJECT_UNUSED = 0, + KFENCE_OBJECT_ALLOCATED = 1, + KFENCE_OBJECT_RCU_FREEING = 2, + KFENCE_OBJECT_FREED = 3, +}; + +enum kfunc_ptr_arg_type { + KF_ARG_PTR_TO_CTX = 0, + KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, + KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, + KF_ARG_PTR_TO_DYNPTR = 3, + KF_ARG_PTR_TO_ITER = 4, + KF_ARG_PTR_TO_LIST_HEAD = 5, + KF_ARG_PTR_TO_LIST_NODE = 6, + KF_ARG_PTR_TO_BTF_ID = 7, + KF_ARG_PTR_TO_MEM = 8, + KF_ARG_PTR_TO_MEM_SIZE = 9, + KF_ARG_PTR_TO_CALLBACK = 10, + KF_ARG_PTR_TO_RB_ROOT = 11, + KF_ARG_PTR_TO_RB_NODE = 12, + KF_ARG_PTR_TO_NULL = 13, + KF_ARG_PTR_TO_CONST_STR = 14, + KF_ARG_PTR_TO_MAP = 15, + KF_ARG_PTR_TO_WORKQUEUE = 16, + KF_ARG_PTR_TO_IRQ_FLAG = 17, +}; + +enum kgdb_bpstate { + BP_UNDEFINED = 0, + BP_REMOVED = 1, + BP_SET = 2, + BP_ACTIVE = 3, +}; + +enum kgdb_bptype { + BP_BREAKPOINT = 0, + BP_HARDWARE_BREAKPOINT = 1, + BP_WRITE_WATCHPOINT = 2, + BP_READ_WATCHPOINT = 3, + BP_ACCESS_WATCHPOINT = 4, + BP_POKE_BREAKPOINT = 5, +}; + +enum kmalloc_cache_type { + KMALLOC_NORMAL = 0, + KMALLOC_RANDOM_START = 0, + KMALLOC_RANDOM_END = 15, + KMALLOC_RECLAIM = 16, + KMALLOC_DMA = 17, + KMALLOC_CGROUP = 18, + NR_KMALLOC_TYPES = 19, +}; + +enum kmsg_dump_reason { + KMSG_DUMP_UNDEF = 0, + KMSG_DUMP_PANIC = 1, + KMSG_DUMP_OOPS = 2, + KMSG_DUMP_EMERG = 3, + KMSG_DUMP_SHUTDOWN = 4, + KMSG_DUMP_MAX = 5, +}; + +enum kobj_ns_type { + KOBJ_NS_TYPE_NONE = 0, + KOBJ_NS_TYPE_NET = 1, + KOBJ_NS_TYPES = 2, +}; + +enum kobject_action { + KOBJ_ADD = 0, + KOBJ_REMOVE = 1, + KOBJ_CHANGE = 2, + KOBJ_MOVE = 3, + KOBJ_ONLINE = 4, + KOBJ_OFFLINE = 5, + KOBJ_BIND = 6, + KOBJ_UNBIND = 7, +}; + +enum kprobe_slot_state { + SLOT_CLEAN = 0, + SLOT_DIRTY = 1, + SLOT_USED = 2, +}; + +enum ksm_advisor_type { + KSM_ADVISOR_NONE = 0, + KSM_ADVISOR_SCAN_TIME = 1, +}; + +enum ksm_get_folio_flags { + KSM_GET_FOLIO_NOLOCK = 0, + KSM_GET_FOLIO_LOCK = 1, + KSM_GET_FOLIO_TRYLOCK = 2, +}; + +enum kvm_apic_logical_mode { + KVM_APIC_MODE_SW_DISABLED = 0, + KVM_APIC_MODE_XAPIC_CLUSTER = 1, + KVM_APIC_MODE_XAPIC_FLAT = 2, + KVM_APIC_MODE_X2APIC = 3, + KVM_APIC_MODE_MAP_DISABLED = 4, +}; + +enum kvm_bus { + KVM_MMIO_BUS = 0, + KVM_PIO_BUS = 1, + KVM_VIRTIO_CCW_NOTIFY_BUS = 2, + KVM_FAST_MMIO_BUS = 3, + KVM_IOCSR_BUS = 4, + KVM_NR_BUSES = 5, +}; + +enum kvm_irqchip_mode { + KVM_IRQCHIP_NONE = 0, + KVM_IRQCHIP_KERNEL = 1, + KVM_IRQCHIP_SPLIT = 2, +}; + +enum kvm_only_cpuid_leafs { + CPUID_12_EAX = 22, + CPUID_7_1_EDX = 23, + CPUID_8000_0007_EDX = 24, + CPUID_8000_0022_EAX = 25, + CPUID_7_2_EDX = 26, + CPUID_24_0_EBX = 27, + NR_KVM_CPU_CAPS = 28, + NKVMCAPINTS = 6, +}; + +enum kvm_reg { + VCPU_REGS_RAX = 0, + VCPU_REGS_RCX = 1, + VCPU_REGS_RDX = 2, + VCPU_REGS_RBX = 3, + VCPU_REGS_RSP = 4, + VCPU_REGS_RBP = 5, + VCPU_REGS_RSI = 6, + VCPU_REGS_RDI = 7, + VCPU_REGS_R8 = 8, + VCPU_REGS_R9 = 9, + VCPU_REGS_R10 = 10, + VCPU_REGS_R11 = 11, + VCPU_REGS_R12 = 12, + VCPU_REGS_R13 = 13, + VCPU_REGS_R14 = 14, + VCPU_REGS_R15 = 15, + VCPU_REGS_RIP = 16, + NR_VCPU_REGS = 17, + VCPU_EXREG_PDPTR = 17, + VCPU_EXREG_CR0 = 18, + VCPU_EXREG_CR3 = 19, + VCPU_EXREG_CR4 = 20, + VCPU_EXREG_RFLAGS = 21, + VCPU_EXREG_SEGMENTS = 22, + VCPU_EXREG_EXIT_INFO_1 = 23, + VCPU_EXREG_EXIT_INFO_2 = 24, +}; + +enum kvm_stat_kind { + KVM_STAT_VM = 0, + KVM_STAT_VCPU = 1, +}; + +enum l1d_flush_mitigations { + L1D_FLUSH_OFF = 0, + L1D_FLUSH_ON = 1, +}; + +enum l1tf_mitigations { + L1TF_MITIGATION_OFF = 0, + L1TF_MITIGATION_FLUSH_NOWARN = 1, + L1TF_MITIGATION_FLUSH = 2, + L1TF_MITIGATION_FLUSH_NOSMT = 3, + L1TF_MITIGATION_FULL = 4, + L1TF_MITIGATION_FULL_FORCE = 5, +}; + +enum l2tp_debug_flags { + L2TP_MSG_DEBUG = 1, + L2TP_MSG_CONTROL = 2, + L2TP_MSG_SEQ = 4, + L2TP_MSG_DATA = 8, +}; + +enum l3mdev_type { + L3MDEV_TYPE_UNSPEC = 0, + L3MDEV_TYPE_VRF = 1, + __L3MDEV_TYPE_MAX = 2, +}; + +enum label_flags { + FLAG_HAT = 1, + FLAG_UNCONFINED = 2, + FLAG_NULL = 4, + FLAG_IX_ON_NAME_ERROR = 8, + FLAG_IMMUTIBLE = 16, + FLAG_USER_DEFINED = 32, + FLAG_NO_LIST_REF = 64, + FLAG_NS_COUNT = 128, + FLAG_IN_TREE = 256, + FLAG_PROFILE = 512, + FLAG_EXPLICIT = 1024, + FLAG_STALE = 2048, + FLAG_INTERRUPTIBLE = 4096, + FLAG_REVOKED = 8192, + FLAG_DEBUG1 = 16384, + FLAG_DEBUG2 = 32768, +}; + +enum label_initialized { + LABEL_INVALID = 0, + LABEL_INITIALIZED = 1, + LABEL_PENDING = 2, +}; + +enum landlock_key_type { + LANDLOCK_KEY_INODE = 1, + LANDLOCK_KEY_NET_PORT = 2, +}; + +enum landlock_rule_type { + LANDLOCK_RULE_PATH_BENEATH = 1, + LANDLOCK_RULE_NET_PORT = 2, +}; + +enum latency_count { + COUNTS_10e2 = 0, + COUNTS_10e3 = 1, + COUNTS_10e4 = 2, + COUNTS_10e5 = 3, + COUNTS_10e6 = 4, + COUNTS_10e7 = 5, + COUNTS_10e8_plus = 6, + COUNTS_MIN = 7, + COUNTS_MAX = 8, + COUNTS_SUM = 9, + COUNTS_NUM = 10, +}; + +enum latency_type { + DMAR_LATENCY_INV_IOTLB = 0, + DMAR_LATENCY_INV_DEVTLB = 1, + DMAR_LATENCY_INV_IEC = 2, + DMAR_LATENCY_NUM = 3, +}; + +enum ldma_chan_on_off { + DMA_CH_OFF = 0, + DMA_CH_ON = 1, +}; + +enum led_brightness { + LED_OFF = 0, + LED_ON = 1, + LED_HALF = 127, + LED_FULL = 255, +}; + +enum led_default_state { + LEDS_DEFSTATE_OFF = 0, + LEDS_DEFSTATE_ON = 1, + LEDS_DEFSTATE_KEEP = 2, +}; + +enum legacy_fs_param { + LEGACY_FS_UNSET_PARAMS = 0, + LEGACY_FS_MONOLITHIC_PARAMS = 1, + LEGACY_FS_INDIVIDUAL_PARAMS = 2, +}; + +enum link_inband_signalling { + LINK_INBAND_DISABLE = 1, + LINK_INBAND_ENABLE = 2, + LINK_INBAND_BYPASS = 4, +}; + +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_MPCAPABLEACTIVEDROP = 7, + MPTCP_MIB_MPCAPABLEACTIVEDISABLED = 8, + MPTCP_MIB_MPCAPABLEENDPATTEMPT = 9, + MPTCP_MIB_TOKENFALLBACKINIT = 10, + MPTCP_MIB_RETRANSSEGS = 11, + MPTCP_MIB_JOINNOTOKEN = 12, + MPTCP_MIB_JOINSYNRX = 13, + MPTCP_MIB_JOINSYNBACKUPRX = 14, + MPTCP_MIB_JOINSYNACKRX = 15, + MPTCP_MIB_JOINSYNACKBACKUPRX = 16, + MPTCP_MIB_JOINSYNACKMAC = 17, + MPTCP_MIB_JOINACKRX = 18, + MPTCP_MIB_JOINACKMAC = 19, + MPTCP_MIB_JOINSYNTX = 20, + MPTCP_MIB_JOINSYNTXCREATSKERR = 21, + MPTCP_MIB_JOINSYNTXBINDERR = 22, + MPTCP_MIB_JOINSYNTXCONNECTERR = 23, + MPTCP_MIB_DSSNOMATCH = 24, + MPTCP_MIB_DSSCORRUPTIONFALLBACK = 25, + MPTCP_MIB_DSSCORRUPTIONRESET = 26, + MPTCP_MIB_INFINITEMAPTX = 27, + MPTCP_MIB_INFINITEMAPRX = 28, + MPTCP_MIB_DSSTCPMISMATCH = 29, + MPTCP_MIB_DATACSUMERR = 30, + MPTCP_MIB_OFOQUEUETAIL = 31, + MPTCP_MIB_OFOQUEUE = 32, + MPTCP_MIB_OFOMERGE = 33, + MPTCP_MIB_NODSSWINDOW = 34, + MPTCP_MIB_DUPDATA = 35, + MPTCP_MIB_ADDADDR = 36, + MPTCP_MIB_ADDADDRTX = 37, + MPTCP_MIB_ADDADDRTXDROP = 38, + MPTCP_MIB_ECHOADD = 39, + MPTCP_MIB_ECHOADDTX = 40, + MPTCP_MIB_ECHOADDTXDROP = 41, + MPTCP_MIB_PORTADD = 42, + MPTCP_MIB_ADDADDRDROP = 43, + MPTCP_MIB_JOINPORTSYNRX = 44, + MPTCP_MIB_JOINPORTSYNACKRX = 45, + MPTCP_MIB_JOINPORTACKRX = 46, + MPTCP_MIB_MISMATCHPORTSYNRX = 47, + MPTCP_MIB_MISMATCHPORTACKRX = 48, + MPTCP_MIB_RMADDR = 49, + MPTCP_MIB_RMADDRDROP = 50, + MPTCP_MIB_RMADDRTX = 51, + MPTCP_MIB_RMADDRTXDROP = 52, + MPTCP_MIB_RMSUBFLOW = 53, + MPTCP_MIB_MPPRIOTX = 54, + MPTCP_MIB_MPPRIORX = 55, + MPTCP_MIB_MPFAILTX = 56, + MPTCP_MIB_MPFAILRX = 57, + MPTCP_MIB_MPFASTCLOSETX = 58, + MPTCP_MIB_MPFASTCLOSERX = 59, + MPTCP_MIB_MPRSTTX = 60, + MPTCP_MIB_MPRSTRX = 61, + MPTCP_MIB_RCVPRUNED = 62, + MPTCP_MIB_SUBFLOWSTALE = 63, + MPTCP_MIB_SUBFLOWRECOVER = 64, + MPTCP_MIB_SNDWNDSHARED = 65, + MPTCP_MIB_RCVWNDSHARED = 66, + MPTCP_MIB_RCVWNDCONFLICTUPDATE = 67, + MPTCP_MIB_RCVWNDCONFLICT = 68, + MPTCP_MIB_CURRESTAB = 69, + MPTCP_MIB_BLACKHOLE = 70, + __MPTCP_MIB_MAX = 71, +}; + +enum locality_types { + WRITE_LATENCY = 0, + READ_LATENCY = 1, + WRITE_BANDWIDTH = 2, + READ_BANDWIDTH = 3, +}; + +enum lockdep_ok { + LOCKDEP_STILL_OK = 0, + LOCKDEP_NOW_UNRELIABLE = 1, +}; + +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 lp8788_alarm_sel { + LP8788_ALARM_1 = 0, + LP8788_ALARM_2 = 1, + LP8788_ALARM_MAX = 2, +}; + +enum lp8788_charger_event { + NO_CHARGER = 0, + CHARGER_DETECTED = 1, +}; + +enum lp8788_dvs_sel { + DVS_SEL_V0 = 0, + DVS_SEL_V1 = 1, + DVS_SEL_V2 = 2, + DVS_SEL_V3 = 3, +}; + +enum lp8788_int_id { + LP8788_INT_TSDL = 0, + LP8788_INT_TSDH = 1, + LP8788_INT_UVLO = 2, + LP8788_INT_FLAGMON = 3, + LP8788_INT_PWRON_TIME = 4, + LP8788_INT_PWRON = 5, + LP8788_INT_COMP1 = 6, + LP8788_INT_COMP2 = 7, + LP8788_INT_CHG_INPUT_STATE = 8, + LP8788_INT_CHG_STATE = 9, + LP8788_INT_EOC = 10, + LP8788_INT_CHG_RESTART = 11, + LP8788_INT_RESTART_TIMEOUT = 12, + LP8788_INT_FULLCHG_TIMEOUT = 13, + LP8788_INT_PRECHG_TIMEOUT = 14, + LP8788_INT_RTC_ALARM1 = 17, + LP8788_INT_RTC_ALARM2 = 18, + LP8788_INT_ENTER_SYS_SUPPORT = 19, + LP8788_INT_EXIT_SYS_SUPPORT = 20, + LP8788_INT_BATT_LOW = 21, + LP8788_INT_NO_BATT = 22, + LP8788_INT_MAX = 24, +}; + +enum lp8788_isink_number { + LP8788_ISINK_1 = 0, + LP8788_ISINK_2 = 1, + LP8788_ISINK_3 = 2, +}; + +enum lp8788_isink_scale { + LP8788_ISINK_SCALE_100mA = 0, + LP8788_ISINK_SCALE_120mA = 1, +}; + +enum lru_list { + LRU_INACTIVE_ANON = 0, + LRU_ACTIVE_ANON = 1, + LRU_INACTIVE_FILE = 2, + LRU_ACTIVE_FILE = 3, + LRU_UNEVICTABLE = 4, + NR_LRU_LISTS = 5, +}; + +enum lru_status { + LRU_REMOVED = 0, + LRU_REMOVED_RETRY = 1, + LRU_ROTATE = 2, + LRU_SKIP = 3, + LRU_RETRY = 4, + LRU_STOP = 5, +}; + +enum lruvec_flags { + LRUVEC_CGROUP_CONGESTED = 0, + LRUVEC_NODE_CONGESTED = 1, +}; + +enum lsm_event { + LSM_POLICY_CHANGE = 0, +}; + +enum lsm_integrity_type { + LSM_INT_DMVERITY_SIG_VALID = 0, + LSM_INT_DMVERITY_ROOTHASH = 1, + LSM_INT_FSVERITY_BUILTINSIG_VALID = 2, +}; + +enum lsm_order { + LSM_ORDER_FIRST = -1, + LSM_ORDER_MUTABLE = 0, + LSM_ORDER_LAST = 1, +}; + +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, +}; + +enum lw_bits { + LW_URGENT = 0, +}; + +enum lwtunnel_encap_types { + LWTUNNEL_ENCAP_NONE = 0, + LWTUNNEL_ENCAP_MPLS = 1, + LWTUNNEL_ENCAP_IP = 2, + LWTUNNEL_ENCAP_ILA = 3, + LWTUNNEL_ENCAP_IP6 = 4, + LWTUNNEL_ENCAP_SEG6 = 5, + LWTUNNEL_ENCAP_BPF = 6, + LWTUNNEL_ENCAP_SEG6_LOCAL = 7, + LWTUNNEL_ENCAP_RPL = 8, + LWTUNNEL_ENCAP_IOAM6 = 9, + LWTUNNEL_ENCAP_XFRM = 10, + __LWTUNNEL_ENCAP_MAX = 11, +}; + +enum lwtunnel_ip6_t { + LWTUNNEL_IP6_UNSPEC = 0, + LWTUNNEL_IP6_ID = 1, + LWTUNNEL_IP6_DST = 2, + LWTUNNEL_IP6_SRC = 3, + LWTUNNEL_IP6_HOPLIMIT = 4, + LWTUNNEL_IP6_TC = 5, + LWTUNNEL_IP6_FLAGS = 6, + LWTUNNEL_IP6_PAD = 7, + LWTUNNEL_IP6_OPTS = 8, + __LWTUNNEL_IP6_MAX = 9, +}; + +enum 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 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, +}; + +enum macsec_offload { + MACSEC_OFFLOAD_OFF = 0, + MACSEC_OFFLOAD_PHY = 1, + MACSEC_OFFLOAD_MAC = 2, + __MACSEC_OFFLOAD_END = 3, + MACSEC_OFFLOAD_MAX = 2, +}; + +enum macsec_validation_type { + MACSEC_VALIDATE_DISABLED = 0, + MACSEC_VALIDATE_CHECK = 1, + MACSEC_VALIDATE_STRICT = 2, + __MACSEC_VALIDATE_END = 3, + MACSEC_VALIDATE_MAX = 2, +}; + +enum map_type { + map_wb = 0, + map_uc = 1, +}; + +enum maple_status { + ma_active = 0, + ma_start = 1, + ma_root = 2, + ma_none = 3, + ma_pause = 4, + ma_overflow = 5, + ma_underflow = 6, + ma_error = 7, +}; + +enum maple_type { + maple_dense = 0, + maple_leaf_64 = 1, + maple_range_64 = 2, + maple_arange_64 = 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_RELEASE_ALWAYS = 6, + AS_STABLE_WRITES = 7, + AS_INACCESSIBLE = 8, + AS_FOLIO_ORDER_BITS = 5, + AS_FOLIO_ORDER_MIN = 16, + AS_FOLIO_ORDER_MAX = 21, +}; + +enum mapping_status { + MAPPING_OK = 0, + MAPPING_INVALID = 1, + MAPPING_EMPTY = 2, + MAPPING_DATA_FIN = 3, + MAPPING_DUMMY = 4, + MAPPING_BAD_CSUM = 5, + MAPPING_NODSS = 6, +}; + +enum max14577_reg { + MAX14577_REG_DEVICEID = 0, + MAX14577_REG_INT1 = 1, + MAX14577_REG_INT2 = 2, + MAX14577_REG_INT3 = 3, + MAX14577_REG_STATUS1 = 4, + MAX14577_REG_STATUS2 = 5, + MAX14577_REG_STATUS3 = 6, + MAX14577_REG_INTMASK1 = 7, + MAX14577_REG_INTMASK2 = 8, + MAX14577_REG_INTMASK3 = 9, + MAX14577_REG_CDETCTRL1 = 10, + MAX14577_REG_RFU = 11, + MAX14577_REG_CONTROL1 = 12, + MAX14577_REG_CONTROL2 = 13, + MAX14577_REG_CONTROL3 = 14, + MAX14577_REG_CHGCTRL1 = 15, + MAX14577_REG_CHGCTRL2 = 16, + MAX14577_REG_CHGCTRL3 = 17, + MAX14577_REG_CHGCTRL4 = 18, + MAX14577_REG_CHGCTRL5 = 19, + MAX14577_REG_CHGCTRL6 = 20, + MAX14577_REG_CHGCTRL7 = 21, + MAX14577_REG_END = 22, +}; + +enum max77693_haptic_reg { + MAX77693_HAPTIC_REG_STATUS = 0, + MAX77693_HAPTIC_REG_CONFIG1 = 1, + MAX77693_HAPTIC_REG_CONFIG2 = 2, + MAX77693_HAPTIC_REG_CONFIG_CHNL = 3, + MAX77693_HAPTIC_REG_CONFG_CYC1 = 4, + MAX77693_HAPTIC_REG_CONFG_CYC2 = 5, + MAX77693_HAPTIC_REG_CONFIG_PER1 = 6, + MAX77693_HAPTIC_REG_CONFIG_PER2 = 7, + MAX77693_HAPTIC_REG_CONFIG_PER3 = 8, + MAX77693_HAPTIC_REG_CONFIG_PER4 = 9, + MAX77693_HAPTIC_REG_CONFIG_DUTY1 = 10, + MAX77693_HAPTIC_REG_CONFIG_DUTY2 = 11, + MAX77693_HAPTIC_REG_CONFIG_PWM1 = 12, + MAX77693_HAPTIC_REG_CONFIG_PWM2 = 13, + MAX77693_HAPTIC_REG_CONFIG_PWM3 = 14, + MAX77693_HAPTIC_REG_CONFIG_PWM4 = 15, + MAX77693_HAPTIC_REG_REV = 16, + MAX77693_HAPTIC_REG_END = 17, +}; + +enum max77693_muic_reg { + MAX77693_MUIC_REG_ID = 0, + MAX77693_MUIC_REG_INT1 = 1, + MAX77693_MUIC_REG_INT2 = 2, + MAX77693_MUIC_REG_INT3 = 3, + MAX77693_MUIC_REG_STATUS1 = 4, + MAX77693_MUIC_REG_STATUS2 = 5, + MAX77693_MUIC_REG_STATUS3 = 6, + MAX77693_MUIC_REG_INTMASK1 = 7, + MAX77693_MUIC_REG_INTMASK2 = 8, + MAX77693_MUIC_REG_INTMASK3 = 9, + MAX77693_MUIC_REG_CDETCTRL1 = 10, + MAX77693_MUIC_REG_CDETCTRL2 = 11, + MAX77693_MUIC_REG_CTRL1 = 12, + MAX77693_MUIC_REG_CTRL2 = 13, + MAX77693_MUIC_REG_CTRL3 = 14, + MAX77693_MUIC_REG_END = 15, +}; + +enum max77693_pmic_reg { + MAX77693_LED_REG_IFLASH1 = 0, + MAX77693_LED_REG_IFLASH2 = 1, + MAX77693_LED_REG_ITORCH = 2, + MAX77693_LED_REG_ITORCHTIMER = 3, + MAX77693_LED_REG_FLASH_TIMER = 4, + MAX77693_LED_REG_FLASH_EN = 5, + MAX77693_LED_REG_MAX_FLASH1 = 6, + MAX77693_LED_REG_MAX_FLASH2 = 7, + MAX77693_LED_REG_MAX_FLASH3 = 8, + MAX77693_LED_REG_MAX_FLASH4 = 9, + MAX77693_LED_REG_VOUT_CNTL = 10, + MAX77693_LED_REG_VOUT_FLASH1 = 11, + MAX77693_LED_REG_VOUT_FLASH2 = 12, + MAX77693_LED_REG_FLASH_INT = 14, + MAX77693_LED_REG_FLASH_INT_MASK = 15, + MAX77693_LED_REG_FLASH_STATUS = 16, + MAX77693_PMIC_REG_PMIC_ID1 = 32, + MAX77693_PMIC_REG_PMIC_ID2 = 33, + MAX77693_PMIC_REG_INTSRC = 34, + MAX77693_PMIC_REG_INTSRC_MASK = 35, + MAX77693_PMIC_REG_TOPSYS_INT = 36, + MAX77693_PMIC_REG_TOPSYS_INT_MASK = 38, + MAX77693_PMIC_REG_TOPSYS_STAT = 40, + MAX77693_PMIC_REG_MAINCTRL1 = 42, + MAX77693_PMIC_REG_LSCNFG = 43, + MAX77693_CHG_REG_CHG_INT = 176, + MAX77693_CHG_REG_CHG_INT_MASK = 177, + MAX77693_CHG_REG_CHG_INT_OK = 178, + MAX77693_CHG_REG_CHG_DETAILS_00 = 179, + MAX77693_CHG_REG_CHG_DETAILS_01 = 180, + MAX77693_CHG_REG_CHG_DETAILS_02 = 181, + MAX77693_CHG_REG_CHG_DETAILS_03 = 182, + MAX77693_CHG_REG_CHG_CNFG_00 = 183, + MAX77693_CHG_REG_CHG_CNFG_01 = 184, + MAX77693_CHG_REG_CHG_CNFG_02 = 185, + MAX77693_CHG_REG_CHG_CNFG_03 = 186, + MAX77693_CHG_REG_CHG_CNFG_04 = 187, + MAX77693_CHG_REG_CHG_CNFG_05 = 188, + MAX77693_CHG_REG_CHG_CNFG_06 = 189, + MAX77693_CHG_REG_CHG_CNFG_07 = 190, + MAX77693_CHG_REG_CHG_CNFG_08 = 191, + MAX77693_CHG_REG_CHG_CNFG_09 = 192, + MAX77693_CHG_REG_CHG_CNFG_10 = 193, + MAX77693_CHG_REG_CHG_CNFG_11 = 194, + MAX77693_CHG_REG_CHG_CNFG_12 = 195, + MAX77693_CHG_REG_CHG_CNFG_13 = 196, + MAX77693_CHG_REG_CHG_CNFG_14 = 197, + MAX77693_CHG_REG_SAFEOUT_CTRL = 198, + MAX77693_PMIC_REG_END = 199, +}; + +enum max77693_types { + TYPE_MAX77693_UNKNOWN = 0, + TYPE_MAX77693 = 1, + TYPE_MAX77843 = 2, + TYPE_MAX77693_NUM = 3, +}; + +enum max77836_fg_reg { + MAX77836_FG_REG_VCELL_MSB = 2, + MAX77836_FG_REG_VCELL_LSB = 3, + MAX77836_FG_REG_SOC_MSB = 4, + MAX77836_FG_REG_SOC_LSB = 5, + MAX77836_FG_REG_MODE_H = 6, + MAX77836_FG_REG_MODE_L = 7, + MAX77836_FG_REG_VERSION_MSB = 8, + MAX77836_FG_REG_VERSION_LSB = 9, + MAX77836_FG_REG_HIBRT_H = 10, + MAX77836_FG_REG_HIBRT_L = 11, + MAX77836_FG_REG_CONFIG_H = 12, + MAX77836_FG_REG_CONFIG_L = 13, + MAX77836_FG_REG_VALRT_MIN = 20, + MAX77836_FG_REG_VALRT_MAX = 21, + MAX77836_FG_REG_CRATE_MSB = 22, + MAX77836_FG_REG_CRATE_LSB = 23, + MAX77836_FG_REG_VRESET = 24, + MAX77836_FG_REG_FGID = 25, + MAX77836_FG_REG_STATUS_H = 26, + MAX77836_FG_REG_STATUS_L = 27, + MAX77836_FG_REG_END = 28, +}; + +enum max77836_pmic_reg { + MAX77836_PMIC_REG_PMIC_ID = 32, + MAX77836_PMIC_REG_PMIC_REV = 33, + MAX77836_PMIC_REG_INTSRC = 34, + MAX77836_PMIC_REG_INTSRC_MASK = 35, + MAX77836_PMIC_REG_TOPSYS_INT = 36, + MAX77836_PMIC_REG_TOPSYS_INT_MASK = 38, + MAX77836_PMIC_REG_TOPSYS_STAT = 40, + MAX77836_PMIC_REG_MRSTB_CNTL = 42, + MAX77836_PMIC_REG_LSCNFG = 43, + MAX77836_LDO_REG_CNFG1_LDO1 = 81, + MAX77836_LDO_REG_CNFG2_LDO1 = 82, + MAX77836_LDO_REG_CNFG1_LDO2 = 83, + MAX77836_LDO_REG_CNFG2_LDO2 = 84, + MAX77836_LDO_REG_CNFG_LDO_BIAS = 85, + MAX77836_COMP_REG_COMP1 = 96, + MAX77836_PMIC_REG_END = 97, +}; + +enum max77843_charger_reg { + MAX77843_CHG_REG_CHG_INT = 176, + MAX77843_CHG_REG_CHG_INT_MASK = 177, + MAX77843_CHG_REG_CHG_INT_OK = 178, + MAX77843_CHG_REG_CHG_DTLS_00 = 179, + MAX77843_CHG_REG_CHG_DTLS_01 = 180, + MAX77843_CHG_REG_CHG_DTLS_02 = 181, + MAX77843_CHG_REG_CHG_CNFG_00 = 183, + MAX77843_CHG_REG_CHG_CNFG_01 = 184, + MAX77843_CHG_REG_CHG_CNFG_02 = 185, + MAX77843_CHG_REG_CHG_CNFG_03 = 186, + MAX77843_CHG_REG_CHG_CNFG_04 = 187, + MAX77843_CHG_REG_CHG_CNFG_06 = 189, + MAX77843_CHG_REG_CHG_CNFG_07 = 190, + MAX77843_CHG_REG_CHG_CNFG_09 = 192, + MAX77843_CHG_REG_CHG_CNFG_10 = 193, + MAX77843_CHG_REG_CHG_CNFG_11 = 194, + MAX77843_CHG_REG_CHG_CNFG_12 = 195, + MAX77843_CHG_REG_END = 196, +}; + +enum max77843_sys_reg { + MAX77843_SYS_REG_PMICID = 0, + MAX77843_SYS_REG_PMICREV = 1, + MAX77843_SYS_REG_MAINCTRL1 = 2, + MAX77843_SYS_REG_INTSRC = 34, + MAX77843_SYS_REG_INTSRCMASK = 35, + MAX77843_SYS_REG_SYSINTSRC = 36, + MAX77843_SYS_REG_SYSINTMASK = 38, + MAX77843_SYS_REG_TOPSYS_STAT = 40, + MAX77843_SYS_REG_SAFEOUTCTRL = 198, + MAX77843_SYS_REG_END = 199, +}; + +enum max8997_haptic_motor_type { + MAX8997_HAPTIC_ERM = 0, + MAX8997_HAPTIC_LRA = 1, +}; + +enum max8997_haptic_pulse_mode { + MAX8997_EXTERNAL_MODE = 0, + MAX8997_INTERNAL_MODE = 1, +}; + +enum max8997_haptic_pwm_divisor { + MAX8997_PWM_DIVISOR_32 = 0, + MAX8997_PWM_DIVISOR_64 = 1, + MAX8997_PWM_DIVISOR_128 = 2, + MAX8997_PWM_DIVISOR_256 = 3, +}; + +enum max8997_haptic_reg { + MAX8997_HAPTIC_REG_GENERAL = 0, + MAX8997_HAPTIC_REG_CONF1 = 1, + MAX8997_HAPTIC_REG_CONF2 = 2, + MAX8997_HAPTIC_REG_DRVCONF = 3, + MAX8997_HAPTIC_REG_CYCLECONF1 = 4, + MAX8997_HAPTIC_REG_CYCLECONF2 = 5, + MAX8997_HAPTIC_REG_SIGCONF1 = 6, + MAX8997_HAPTIC_REG_SIGCONF2 = 7, + MAX8997_HAPTIC_REG_SIGCONF3 = 8, + MAX8997_HAPTIC_REG_SIGCONF4 = 9, + MAX8997_HAPTIC_REG_SIGDC1 = 10, + MAX8997_HAPTIC_REG_SIGDC2 = 11, + MAX8997_HAPTIC_REG_SIGPWMDC1 = 12, + MAX8997_HAPTIC_REG_SIGPWMDC2 = 13, + MAX8997_HAPTIC_REG_SIGPWMDC3 = 14, + MAX8997_HAPTIC_REG_SIGPWMDC4 = 15, + MAX8997_HAPTIC_REG_MTR_REV = 16, + MAX8997_HAPTIC_REG_END = 17, +}; + +enum max8997_irq { + MAX8997_PMICIRQ_PWRONR = 0, + MAX8997_PMICIRQ_PWRONF = 1, + MAX8997_PMICIRQ_PWRON1SEC = 2, + MAX8997_PMICIRQ_JIGONR = 3, + MAX8997_PMICIRQ_JIGONF = 4, + MAX8997_PMICIRQ_LOWBAT2 = 5, + MAX8997_PMICIRQ_LOWBAT1 = 6, + MAX8997_PMICIRQ_JIGR = 7, + MAX8997_PMICIRQ_JIGF = 8, + MAX8997_PMICIRQ_MR = 9, + MAX8997_PMICIRQ_DVS1OK = 10, + MAX8997_PMICIRQ_DVS2OK = 11, + MAX8997_PMICIRQ_DVS3OK = 12, + MAX8997_PMICIRQ_DVS4OK = 13, + MAX8997_PMICIRQ_CHGINS = 14, + MAX8997_PMICIRQ_CHGRM = 15, + MAX8997_PMICIRQ_DCINOVP = 16, + MAX8997_PMICIRQ_TOPOFFR = 17, + MAX8997_PMICIRQ_CHGRSTF = 18, + MAX8997_PMICIRQ_MBCHGTMEXPD = 19, + MAX8997_PMICIRQ_RTC60S = 20, + MAX8997_PMICIRQ_RTCA1 = 21, + MAX8997_PMICIRQ_RTCA2 = 22, + MAX8997_PMICIRQ_SMPL_INT = 23, + MAX8997_PMICIRQ_RTC1S = 24, + MAX8997_PMICIRQ_WTSR = 25, + MAX8997_MUICIRQ_ADCError = 26, + MAX8997_MUICIRQ_ADCLow = 27, + MAX8997_MUICIRQ_ADC = 28, + MAX8997_MUICIRQ_VBVolt = 29, + MAX8997_MUICIRQ_DBChg = 30, + MAX8997_MUICIRQ_DCDTmr = 31, + MAX8997_MUICIRQ_ChgDetRun = 32, + MAX8997_MUICIRQ_ChgTyp = 33, + MAX8997_MUICIRQ_OVP = 34, + MAX8997_IRQ_NR = 35, +}; + +enum max8997_irq_source { + PMIC_INT1 = 0, + PMIC_INT2 = 1, + PMIC_INT3 = 2, + PMIC_INT4 = 3, + FUEL_GAUGE = 4, + MUIC_INT1 = 5, + MUIC_INT2 = 6, + MUIC_INT3 = 7, + GPIO_LOW = 8, + GPIO_HI = 9, + FLASH_STATUS = 10, + MAX8997_IRQ_GROUP_NR = 11, +}; + +enum max8997_led_mode { + MAX8997_NONE = 0, + MAX8997_FLASH_MODE = 1, + MAX8997_MOVIE_MODE = 2, + MAX8997_FLASH_PIN_CONTROL_MODE = 3, + MAX8997_MOVIE_PIN_CONTROL_MODE = 4, +}; + +enum max8997_muic_reg { + MAX8997_MUIC_REG_ID = 0, + MAX8997_MUIC_REG_INT1 = 1, + MAX8997_MUIC_REG_INT2 = 2, + MAX8997_MUIC_REG_INT3 = 3, + MAX8997_MUIC_REG_STATUS1 = 4, + MAX8997_MUIC_REG_STATUS2 = 5, + MAX8997_MUIC_REG_STATUS3 = 6, + MAX8997_MUIC_REG_INTMASK1 = 7, + MAX8997_MUIC_REG_INTMASK2 = 8, + MAX8997_MUIC_REG_INTMASK3 = 9, + MAX8997_MUIC_REG_CDETCTRL = 10, + MAX8997_MUIC_REG_CONTROL1 = 12, + MAX8997_MUIC_REG_CONTROL2 = 13, + MAX8997_MUIC_REG_CONTROL3 = 14, + MAX8997_MUIC_REG_END = 15, +}; + +enum max8997_pmic_reg { + MAX8997_REG_PMIC_ID0 = 0, + MAX8997_REG_PMIC_ID1 = 1, + MAX8997_REG_INTSRC = 2, + MAX8997_REG_INT1 = 3, + MAX8997_REG_INT2 = 4, + MAX8997_REG_INT3 = 5, + MAX8997_REG_INT4 = 6, + MAX8997_REG_INT1MSK = 8, + MAX8997_REG_INT2MSK = 9, + MAX8997_REG_INT3MSK = 10, + MAX8997_REG_INT4MSK = 11, + MAX8997_REG_STATUS1 = 13, + MAX8997_REG_STATUS2 = 14, + MAX8997_REG_STATUS3 = 15, + MAX8997_REG_STATUS4 = 16, + MAX8997_REG_MAINCON1 = 19, + MAX8997_REG_MAINCON2 = 20, + MAX8997_REG_BUCKRAMP = 21, + MAX8997_REG_BUCK1CTRL = 24, + MAX8997_REG_BUCK1DVS1 = 25, + MAX8997_REG_BUCK1DVS2 = 26, + MAX8997_REG_BUCK1DVS3 = 27, + MAX8997_REG_BUCK1DVS4 = 28, + MAX8997_REG_BUCK1DVS5 = 29, + MAX8997_REG_BUCK1DVS6 = 30, + MAX8997_REG_BUCK1DVS7 = 31, + MAX8997_REG_BUCK1DVS8 = 32, + MAX8997_REG_BUCK2CTRL = 33, + MAX8997_REG_BUCK2DVS1 = 34, + MAX8997_REG_BUCK2DVS2 = 35, + MAX8997_REG_BUCK2DVS3 = 36, + MAX8997_REG_BUCK2DVS4 = 37, + MAX8997_REG_BUCK2DVS5 = 38, + MAX8997_REG_BUCK2DVS6 = 39, + MAX8997_REG_BUCK2DVS7 = 40, + MAX8997_REG_BUCK2DVS8 = 41, + MAX8997_REG_BUCK3CTRL = 42, + MAX8997_REG_BUCK3DVS = 43, + MAX8997_REG_BUCK4CTRL = 44, + MAX8997_REG_BUCK4DVS = 45, + MAX8997_REG_BUCK5CTRL = 46, + MAX8997_REG_BUCK5DVS1 = 47, + MAX8997_REG_BUCK5DVS2 = 48, + MAX8997_REG_BUCK5DVS3 = 49, + MAX8997_REG_BUCK5DVS4 = 50, + MAX8997_REG_BUCK5DVS5 = 51, + MAX8997_REG_BUCK5DVS6 = 52, + MAX8997_REG_BUCK5DVS7 = 53, + MAX8997_REG_BUCK5DVS8 = 54, + MAX8997_REG_BUCK6CTRL = 55, + MAX8997_REG_BUCK6BPSKIPCTRL = 56, + MAX8997_REG_BUCK7CTRL = 57, + MAX8997_REG_BUCK7DVS = 58, + MAX8997_REG_LDO1CTRL = 59, + MAX8997_REG_LDO2CTRL = 60, + MAX8997_REG_LDO3CTRL = 61, + MAX8997_REG_LDO4CTRL = 62, + MAX8997_REG_LDO5CTRL = 63, + MAX8997_REG_LDO6CTRL = 64, + MAX8997_REG_LDO7CTRL = 65, + MAX8997_REG_LDO8CTRL = 66, + MAX8997_REG_LDO9CTRL = 67, + MAX8997_REG_LDO10CTRL = 68, + MAX8997_REG_LDO11CTRL = 69, + MAX8997_REG_LDO12CTRL = 70, + MAX8997_REG_LDO13CTRL = 71, + MAX8997_REG_LDO14CTRL = 72, + MAX8997_REG_LDO15CTRL = 73, + MAX8997_REG_LDO16CTRL = 74, + MAX8997_REG_LDO17CTRL = 75, + MAX8997_REG_LDO18CTRL = 76, + MAX8997_REG_LDO21CTRL = 77, + MAX8997_REG_MBCCTRL1 = 80, + MAX8997_REG_MBCCTRL2 = 81, + MAX8997_REG_MBCCTRL3 = 82, + MAX8997_REG_MBCCTRL4 = 83, + MAX8997_REG_MBCCTRL5 = 84, + MAX8997_REG_MBCCTRL6 = 85, + MAX8997_REG_OTPCGHCVS = 86, + MAX8997_REG_SAFEOUTCTRL = 90, + MAX8997_REG_LBCNFG1 = 94, + MAX8997_REG_LBCNFG2 = 95, + MAX8997_REG_BBCCTRL = 96, + MAX8997_REG_FLASH1_CUR = 99, + MAX8997_REG_FLASH2_CUR = 100, + MAX8997_REG_MOVIE_CUR = 101, + MAX8997_REG_GSMB_CUR = 102, + MAX8997_REG_BOOST_CNTL = 103, + MAX8997_REG_LEN_CNTL = 104, + MAX8997_REG_FLASH_CNTL = 105, + MAX8997_REG_WDT_CNTL = 106, + MAX8997_REG_MAXFLASH1 = 107, + MAX8997_REG_MAXFLASH2 = 108, + MAX8997_REG_FLASHSTATUS = 109, + MAX8997_REG_FLASHSTATUSMASK = 110, + MAX8997_REG_GPIOCNTL1 = 112, + MAX8997_REG_GPIOCNTL2 = 113, + MAX8997_REG_GPIOCNTL3 = 114, + MAX8997_REG_GPIOCNTL4 = 115, + MAX8997_REG_GPIOCNTL5 = 116, + MAX8997_REG_GPIOCNTL6 = 117, + MAX8997_REG_GPIOCNTL7 = 118, + MAX8997_REG_GPIOCNTL8 = 119, + MAX8997_REG_GPIOCNTL9 = 120, + MAX8997_REG_GPIOCNTL10 = 121, + MAX8997_REG_GPIOCNTL11 = 122, + MAX8997_REG_GPIOCNTL12 = 123, + MAX8997_REG_LDO1CONFIG = 128, + MAX8997_REG_LDO2CONFIG = 129, + MAX8997_REG_LDO3CONFIG = 130, + MAX8997_REG_LDO4CONFIG = 131, + MAX8997_REG_LDO5CONFIG = 132, + MAX8997_REG_LDO6CONFIG = 133, + MAX8997_REG_LDO7CONFIG = 134, + MAX8997_REG_LDO8CONFIG = 135, + MAX8997_REG_LDO9CONFIG = 136, + MAX8997_REG_LDO10CONFIG = 137, + MAX8997_REG_LDO11CONFIG = 138, + MAX8997_REG_LDO12CONFIG = 139, + MAX8997_REG_LDO13CONFIG = 140, + MAX8997_REG_LDO14CONFIG = 141, + MAX8997_REG_LDO15CONFIG = 142, + MAX8997_REG_LDO16CONFIG = 143, + MAX8997_REG_LDO17CONFIG = 144, + MAX8997_REG_LDO18CONFIG = 145, + MAX8997_REG_LDO21CONFIG = 146, + MAX8997_REG_DVSOKTIMER1 = 151, + MAX8997_REG_DVSOKTIMER2 = 152, + MAX8997_REG_DVSOKTIMER4 = 153, + MAX8997_REG_DVSOKTIMER5 = 154, + MAX8997_REG_PMIC_END = 155, +}; + +enum max8997_types { + TYPE_MAX8997 = 0, + TYPE_MAX8966 = 1, +}; + +enum maxim_device_type { + MAXIM_DEVICE_TYPE_UNKNOWN = 0, + MAXIM_DEVICE_TYPE_MAX14577 = 1, + MAXIM_DEVICE_TYPE_MAX77836 = 2, + MAXIM_DEVICE_TYPE_NUM = 3, +}; + +enum mca_msr { + MCA_CTL = 0, + MCA_STATUS = 1, + MCA_ADDR = 2, + MCA_MISC = 3, +}; + +enum mce_notifier_prios { + MCE_PRIO_LOWEST = 0, + MCE_PRIO_MCELOG = 1, + MCE_PRIO_EDAC = 2, + MCE_PRIO_NFIT = 3, + MCE_PRIO_EXTLOG = 4, + MCE_PRIO_UC = 5, + MCE_PRIO_EARLY = 6, + MCE_PRIO_CEC = 7, + MCE_PRIO_HIGHEST = 7, +}; + +enum mcp_flags { + MCP_TIMESTAMP = 1, + MCP_UC = 2, + MCP_DONTLOG = 4, + MCP_QUEUE_LOG = 8, +}; + +enum mctp_neigh_source { + MCTP_NEIGH_STATIC = 0, + MCTP_NEIGH_DISCOVER = 1, +}; + +enum mctp_phys_binding { + MCTP_PHYS_BINDING_UNSPEC = 0, + MCTP_PHYS_BINDING_SMBUS = 1, + MCTP_PHYS_BINDING_PCIE_VDM = 2, + MCTP_PHYS_BINDING_USB = 3, + MCTP_PHYS_BINDING_KCS = 4, + MCTP_PHYS_BINDING_SERIAL = 5, + MCTP_PHYS_BINDING_I3C = 6, + MCTP_PHYS_BINDING_MMBI = 7, + MCTP_PHYS_BINDING_PCC = 8, + MCTP_PHYS_BINDING_UCIE = 9, + MCTP_PHYS_BINDING_VENDOR = 255, +}; + +enum mctrl_gpio_idx { + UART_GPIO_CTS = 0, + UART_GPIO_DSR = 1, + UART_GPIO_DCD = 2, + UART_GPIO_RNG = 3, + UART_GPIO_RI = 3, + UART_GPIO_RTS = 4, + UART_GPIO_DTR = 5, + UART_GPIO_MAX = 6, +}; + +enum md_ro_state { + MD_RDWR = 0, + MD_RDONLY = 1, + MD_AUTO_READ = 2, + MD_MAX_STATE = 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_NOT_READY = 8, + MD_BROKEN = 9, + MD_DELETED = 10, +}; + +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 mds_mitigations { + MDS_MITIGATION_OFF = 0, + MDS_MITIGATION_FULL = 1, + MDS_MITIGATION_VMWERV = 2, +}; + +enum mem_type { + MEM_EMPTY = 0, + MEM_RESERVED = 1, + MEM_UNKNOWN = 2, + MEM_FPM = 3, + MEM_EDO = 4, + MEM_BEDO = 5, + MEM_SDR = 6, + MEM_RDR = 7, + MEM_DDR = 8, + MEM_RDDR = 9, + MEM_RMBS = 10, + MEM_DDR2 = 11, + MEM_FB_DDR2 = 12, + MEM_RDDR2 = 13, + MEM_XDR = 14, + MEM_DDR3 = 15, + MEM_RDDR3 = 16, + MEM_LRDDR3 = 17, + MEM_LPDDR3 = 18, + MEM_DDR4 = 19, + MEM_RDDR4 = 20, + MEM_LRDDR4 = 21, + MEM_LPDDR4 = 22, + MEM_DDR5 = 23, + MEM_RDDR5 = 24, + MEM_LRDDR5 = 25, + MEM_NVDIMM = 26, + MEM_WIO2 = 27, + MEM_HBM2 = 28, + MEM_HBM3 = 29, +}; + +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 memblock_flags { + MEMBLOCK_NONE = 0, + MEMBLOCK_HOTPLUG = 1, + MEMBLOCK_MIRROR = 2, + MEMBLOCK_NOMAP = 4, + MEMBLOCK_DRIVER_MANAGED = 8, + MEMBLOCK_RSRV_NOINIT = 16, +}; + +enum membw_throttle_mode { + THREAD_THROTTLE_UNDEFINED = 0, + THREAD_THROTTLE_MAX = 1, + THREAD_THROTTLE_PER_THREAD = 2, +}; + +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 memcg_stat_item { + MEMCG_SWAP = 48, + MEMCG_SOCK = 49, + MEMCG_PERCPU_B = 50, + MEMCG_VMALLOC = 51, + MEMCG_KMEM = 52, + MEMCG_ZSWAP_B = 53, + MEMCG_ZSWAPPED = 54, + MEMCG_NR_STAT = 55, +}; + +enum meminit_context { + MEMINIT_EARLY = 0, + MEMINIT_HOTPLUG = 1, +}; + +enum memory_type { + MEMORY_DEVICE_PRIVATE = 1, + MEMORY_DEVICE_COHERENT = 2, + MEMORY_DEVICE_FS_DAX = 3, + MEMORY_DEVICE_GENERIC = 4, + MEMORY_DEVICE_PCI_P2PDMA = 5, +}; + +enum metadata_type { + METADATA_IP_TUNNEL = 0, + METADATA_HW_PORT_MUX = 1, + METADATA_MACSEC = 2, + METADATA_XFRM = 3, +}; + +enum mf_action_page_type { + MF_MSG_KERNEL = 0, + MF_MSG_KERNEL_HIGH_ORDER = 1, + MF_MSG_DIFFERENT_COMPOUND = 2, + MF_MSG_HUGE = 3, + MF_MSG_FREE_HUGE = 4, + MF_MSG_GET_HWPOISON = 5, + MF_MSG_UNMAP_FAILED = 6, + MF_MSG_DIRTY_SWAPCACHE = 7, + MF_MSG_CLEAN_SWAPCACHE = 8, + MF_MSG_DIRTY_MLOCKED_LRU = 9, + MF_MSG_CLEAN_MLOCKED_LRU = 10, + MF_MSG_DIRTY_UNEVICTABLE_LRU = 11, + MF_MSG_CLEAN_UNEVICTABLE_LRU = 12, + MF_MSG_DIRTY_LRU = 13, + MF_MSG_CLEAN_LRU = 14, + MF_MSG_TRUNCATED_LRU = 15, + MF_MSG_BUDDY = 16, + MF_MSG_DAX = 17, + MF_MSG_UNSPLIT_THP = 18, + MF_MSG_ALREADY_POISONED = 19, + MF_MSG_UNKNOWN = 20, +}; + +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, + MF_MEM_PRE_REMOVE = 128, +}; + +enum mf_result { + MF_IGNORED = 0, + MF_FAILED = 1, + MF_DELAYED = 2, + MF_RECOVERED = 3, +}; + +enum mfill_atomic_mode { + MFILL_ATOMIC_COPY = 0, + MFILL_ATOMIC_ZEROPAGE = 1, + MFILL_ATOMIC_CONTINUE = 2, + MFILL_ATOMIC_POISON = 3, + NR_MFILL_ATOMIC_MODES = 4, +}; + +enum migrate_mode { + MIGRATE_ASYNC = 0, + MIGRATE_SYNC_LIGHT = 1, + MIGRATE_SYNC = 2, +}; + +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_DAMON = 9, + MR_TYPES = 10, +}; + +enum migrate_vma_direction { + MIGRATE_VMA_SELECT_SYSTEM = 1, + MIGRATE_VMA_SELECT_DEVICE_PRIVATE = 2, + MIGRATE_VMA_SELECT_DEVICE_COHERENT = 4, +}; + +enum migratetype { + MIGRATE_UNMOVABLE = 0, + MIGRATE_MOVABLE = 1, + MIGRATE_RECLAIMABLE = 2, + MIGRATE_PCPTYPES = 3, + MIGRATE_HIGHATOMIC = 3, + MIGRATE_ISOLATE = 4, + MIGRATE_TYPES = 5, +}; + +enum migration_type { + migrate_load = 0, + migrate_util = 1, + migrate_task = 2, + migrate_misfit = 3, +}; + +enum mipi_dsi_compression_algo { + MIPI_DSI_COMPRESSION_DSC = 0, + MIPI_DSI_COMPRESSION_VENDOR = 3, +}; + +enum mipi_dsi_dcs_tear_mode { + MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0, + MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1, +}; + +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 misc_res_type { + MISC_CG_RES_SEV = 0, + MISC_CG_RES_SEV_ES = 1, + MISC_CG_RES_TYPES = 2, +}; + +enum mm_cid_state { + MM_CID_UNSET = 4294967295, + MM_CID_LAZY_PUT = 2147483648, +}; + +enum mm_io_opcode { + MMIO_READ = 1, + MMIO_WRITE = 2, + MMIO_PROBE = 3, + MMIO_UNPROBE = 4, + MMIO_UNKNOWN_OP = 5, +}; + +enum mmc_busy_cmd { + MMC_BUSY_CMD6 = 0, + MMC_BUSY_ERASE = 1, + MMC_BUSY_HPI = 2, + MMC_BUSY_EXTR_SINGLE = 3, + MMC_BUSY_IO = 4, +}; + +enum mmc_drv_op { + MMC_DRV_OP_IOCTL = 0, + MMC_DRV_OP_IOCTL_RPMB = 1, + MMC_DRV_OP_BOOT_WP = 2, + MMC_DRV_OP_GET_CARD_STATUS = 3, + MMC_DRV_OP_GET_EXT_CSD = 4, +}; + +enum mmc_err_stat { + MMC_ERR_CMD_TIMEOUT = 0, + MMC_ERR_CMD_CRC = 1, + MMC_ERR_DAT_TIMEOUT = 2, + MMC_ERR_DAT_CRC = 3, + MMC_ERR_AUTO_CMD = 4, + MMC_ERR_ADMA = 5, + MMC_ERR_TUNING = 6, + MMC_ERR_CMDQ_RED = 7, + MMC_ERR_CMDQ_GCE = 8, + MMC_ERR_CMDQ_ICCE = 9, + MMC_ERR_REQ_TIMEOUT = 10, + MMC_ERR_CMDQ_REQ_TIMEOUT = 11, + MMC_ERR_ICE_CFG = 12, + MMC_ERR_CTRL_TIMEOUT = 13, + MMC_ERR_UNEXPECTED_IRQ = 14, + MMC_ERR_MAX = 15, +}; + +enum mmc_issue_type { + MMC_ISSUE_SYNC = 0, + MMC_ISSUE_DCMD = 1, + MMC_ISSUE_ASYNC = 2, + MMC_ISSUE_MAX = 3, +}; + +enum mminit_level { + MMINIT_WARNING = 0, + MMINIT_VERIFY = 1, + MMINIT_TRACE = 2, +}; + +enum mmio_mitigations { + MMIO_MITIGATION_OFF = 0, + MMIO_MITIGATION_UCODE_NEEDED = 1, + MMIO_MITIGATION_VERW = 2, +}; + +enum mmioh_arch { + UV2_MMIOH = -1, + UVY_MMIOH0 = 0, + UVY_MMIOH1 = 1, + UVX_MMIOH0 = 2, + UVX_MMIOH1 = 3, +}; + +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, +}; + +enum mnt_tree_flags_t { + MNT_TREE_MOVE = 1, + MNT_TREE_BENEATH = 2, +}; + +enum mod_license { + NOT_GPL_ONLY = 0, + GPL_ONLY = 1, +}; + +enum mod_mem_type { + MOD_TEXT = 0, + MOD_DATA = 1, + MOD_RODATA = 2, + MOD_RO_AFTER_INIT = 3, + MOD_INIT_TEXT = 4, + MOD_INIT_DATA = 5, + MOD_INIT_RODATA = 6, + MOD_MEM_NUM_TYPES = 7, + MOD_INVALID = -1, +}; + +enum mode_set_atomic { + LEAVE_ATOMIC_MODE_SET = 0, + ENTER_ATOMIC_MODE_SET = 1, +}; + +enum module_state { + MODULE_STATE_LIVE = 0, + MODULE_STATE_COMING = 1, + MODULE_STATE_GOING = 2, + MODULE_STATE_UNFORMED = 3, +}; + +enum motionsense_command { + MOTIONSENSE_CMD_DUMP = 0, + MOTIONSENSE_CMD_INFO = 1, + MOTIONSENSE_CMD_EC_RATE = 2, + MOTIONSENSE_CMD_SENSOR_ODR = 3, + MOTIONSENSE_CMD_SENSOR_RANGE = 4, + MOTIONSENSE_CMD_KB_WAKE_ANGLE = 5, + MOTIONSENSE_CMD_DATA = 6, + MOTIONSENSE_CMD_FIFO_INFO = 7, + MOTIONSENSE_CMD_FIFO_FLUSH = 8, + MOTIONSENSE_CMD_FIFO_READ = 9, + MOTIONSENSE_CMD_PERFORM_CALIB = 10, + MOTIONSENSE_CMD_SENSOR_OFFSET = 11, + MOTIONSENSE_CMD_LIST_ACTIVITIES = 12, + MOTIONSENSE_CMD_SET_ACTIVITY = 13, + MOTIONSENSE_CMD_LID_ANGLE = 14, + MOTIONSENSE_CMD_FIFO_INT_ENABLE = 15, + MOTIONSENSE_CMD_SPOOF = 16, + MOTIONSENSE_CMD_TABLET_MODE_LID_ANGLE = 17, + MOTIONSENSE_CMD_SENSOR_SCALE = 18, + MOTIONSENSE_NUM_CMDS = 19, +}; + +enum mount_flags { + MNT_NOSUID = 1, + MNT_NODEV = 2, + MNT_NOEXEC = 4, + MNT_NOATIME = 8, + MNT_NODIRATIME = 16, + MNT_RELATIME = 32, + MNT_READONLY = 64, + MNT_NOSYMFOLLOW = 128, + MNT_SHRINKABLE = 256, + MNT_WRITE_HOLD = 512, + MNT_SHARED = 4096, + MNT_UNBINDABLE = 8192, + MNT_INTERNAL = 16384, + MNT_LOCK_ATIME = 262144, + MNT_LOCK_NOEXEC = 524288, + MNT_LOCK_NOSUID = 1048576, + MNT_LOCK_NODEV = 2097152, + MNT_LOCK_READONLY = 4194304, + MNT_LOCKED = 8388608, + MNT_DOOMED = 16777216, + MNT_SYNC_UMOUNT = 33554432, + MNT_MARKED = 67108864, + MNT_UMOUNT = 134217728, + MNT_SHARED_MASK = 8192, + MNT_USER_SETTABLE_MASK = 255, + MNT_ATIME_MASK = 56, + MNT_INTERNAL_FLAGS = 125850112, +}; + +enum mousedev_emul { + MOUSEDEV_EMUL_PS2 = 0, + MOUSEDEV_EMUL_IMPS = 1, + MOUSEDEV_EMUL_EXPS = 2, +}; + +enum mp_irq_source_types { + mp_INT = 0, + mp_NMI = 1, + mp_SMI = 2, + mp_ExtINT = 3, +}; + +enum mptcp_addr_signal_status { + MPTCP_ADD_ADDR_SIGNAL = 0, + MPTCP_ADD_ADDR_ECHO = 1, + MPTCP_RM_ADDR_SIGNAL = 2, +}; + +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_MAX = 19, +}; + +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_pm_type { + MPTCP_PM_TYPE_KERNEL = 0, + MPTCP_PM_TYPE_USERSPACE = 1, + __MPTCP_PM_TYPE_NR = 2, + __MPTCP_PM_TYPE_MAX = 1, +}; + +enum mq_rq_state { + MQ_RQ_IDLE = 0, + MQ_RQ_IN_FLIGHT = 1, + MQ_RQ_COMPLETE = 2, +}; + +enum mscode_actions { + ACT_mscode_note_content_type = 0, + ACT_mscode_note_digest = 1, + ACT_mscode_note_digest_algo = 2, + NR__mscode_actions = 3, +}; + +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___3 = 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, +}; + +enum msg_type { + SNP_MSG_TYPE_INVALID = 0, + SNP_MSG_CPUID_REQ = 1, + SNP_MSG_CPUID_RSP = 2, + SNP_MSG_KEY_REQ = 3, + SNP_MSG_KEY_RSP = 4, + SNP_MSG_REPORT_REQ = 5, + SNP_MSG_REPORT_RSP = 6, + SNP_MSG_EXPORT_REQ = 7, + SNP_MSG_EXPORT_RSP = 8, + SNP_MSG_IMPORT_REQ = 9, + SNP_MSG_IMPORT_RSP = 10, + SNP_MSG_ABSORB_REQ = 11, + SNP_MSG_ABSORB_RSP = 12, + SNP_MSG_VMRK_REQ = 13, + SNP_MSG_VMRK_RSP = 14, + SNP_MSG_TSC_INFO_REQ = 17, + SNP_MSG_TSC_INFO_RSP = 18, + SNP_MSG_TYPE_MAX = 19, +}; + +enum msi_desc_filter { + MSI_DESC_ALL = 0, + MSI_DESC_NOTASSOCIATED = 1, + MSI_DESC_ASSOCIATED = 2, +}; + +enum msi_domain_ids { + MSI_DEFAULT_DOMAIN = 0, + MSI_MAX_DEVICE_IRQDOMAINS = 1, +}; + +enum mthp_stat_item { + MTHP_STAT_ANON_FAULT_ALLOC = 0, + MTHP_STAT_ANON_FAULT_FALLBACK = 1, + MTHP_STAT_ANON_FAULT_FALLBACK_CHARGE = 2, + MTHP_STAT_ZSWPOUT = 3, + MTHP_STAT_SWPIN = 4, + MTHP_STAT_SWPIN_FALLBACK = 5, + MTHP_STAT_SWPIN_FALLBACK_CHARGE = 6, + MTHP_STAT_SWPOUT = 7, + MTHP_STAT_SWPOUT_FALLBACK = 8, + MTHP_STAT_SHMEM_ALLOC = 9, + MTHP_STAT_SHMEM_FALLBACK = 10, + MTHP_STAT_SHMEM_FALLBACK_CHARGE = 11, + MTHP_STAT_SPLIT = 12, + MTHP_STAT_SPLIT_FAILED = 13, + MTHP_STAT_SPLIT_DEFERRED = 14, + MTHP_STAT_NR_ANON = 15, + MTHP_STAT_NR_ANON_PARTIALLY_MAPPED = 16, + __MTHP_STAT_COUNT = 17, +}; + +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, +}; + +enum nbcon_prio { + NBCON_PRIO_NONE = 0, + NBCON_PRIO_NORMAL = 1, + NBCON_PRIO_EMERGENCY = 2, + NBCON_PRIO_PANIC = 3, + NBCON_PRIO_MAX = 4, +}; + +enum ncsi_nl_attrs { + NCSI_ATTR_UNSPEC = 0, + NCSI_ATTR_IFINDEX = 1, + NCSI_ATTR_PACKAGE_LIST = 2, + NCSI_ATTR_PACKAGE_ID = 3, + NCSI_ATTR_CHANNEL_ID = 4, + NCSI_ATTR_DATA = 5, + NCSI_ATTR_MULTI_FLAG = 6, + NCSI_ATTR_PACKAGE_MASK = 7, + NCSI_ATTR_CHANNEL_MASK = 8, + __NCSI_ATTR_AFTER_LAST = 9, + NCSI_ATTR_MAX = 8, +}; + +enum ncsi_nl_channel_attrs { + NCSI_CHANNEL_ATTR_UNSPEC = 0, + NCSI_CHANNEL_ATTR = 1, + NCSI_CHANNEL_ATTR_ID = 2, + NCSI_CHANNEL_ATTR_VERSION_MAJOR = 3, + NCSI_CHANNEL_ATTR_VERSION_MINOR = 4, + NCSI_CHANNEL_ATTR_VERSION_STR = 5, + NCSI_CHANNEL_ATTR_LINK_STATE = 6, + NCSI_CHANNEL_ATTR_ACTIVE = 7, + NCSI_CHANNEL_ATTR_FORCED = 8, + NCSI_CHANNEL_ATTR_VLAN_LIST = 9, + NCSI_CHANNEL_ATTR_VLAN_ID = 10, + __NCSI_CHANNEL_ATTR_AFTER_LAST = 11, + NCSI_CHANNEL_ATTR_MAX = 10, +}; + +enum ncsi_nl_commands { + NCSI_CMD_UNSPEC = 0, + NCSI_CMD_PKG_INFO = 1, + NCSI_CMD_SET_INTERFACE = 2, + NCSI_CMD_CLEAR_INTERFACE = 3, + NCSI_CMD_SEND_CMD = 4, + NCSI_CMD_SET_PACKAGE_MASK = 5, + NCSI_CMD_SET_CHANNEL_MASK = 6, + __NCSI_CMD_AFTER_LAST = 7, + NCSI_CMD_MAX = 6, +}; + +enum ncsi_nl_pkg_attrs { + NCSI_PKG_ATTR_UNSPEC = 0, + NCSI_PKG_ATTR = 1, + NCSI_PKG_ATTR_ID = 2, + NCSI_PKG_ATTR_FORCED = 3, + NCSI_PKG_ATTR_CHANNEL_LIST = 4, + __NCSI_PKG_ATTR_AFTER_LAST = 5, + NCSI_PKG_ATTR_MAX = 4, +}; + +enum nd_async_mode { + ND_SYNC = 0, + ND_ASYNC = 1, +}; + +enum nd_driver_flags { + ND_DRIVER_DIMM = 2, + ND_DRIVER_REGION_PMEM = 4, + ND_DRIVER_REGION_BLK = 8, + ND_DRIVER_NAMESPACE_IO = 16, + ND_DRIVER_NAMESPACE_PMEM = 32, + ND_DRIVER_DAX_PMEM = 128, +}; + +enum nd_ioctl_mode { + BUS_IOCTL = 0, + DIMM_IOCTL = 1, +}; + +enum nd_label_flags { + ND_LABEL_REAP = 0, +}; + +enum nd_pfn_mode { + PFN_MODE_NONE = 0, + PFN_MODE_RAM = 1, + PFN_MODE_PMEM = 2, +}; + +enum net_device_flags { + IFF_UP = 1, + IFF_BROADCAST = 2, + IFF_DEBUG = 4, + IFF_LOOPBACK = 8, + IFF_POINTOPOINT = 16, + IFF_NOTRAILERS = 32, + IFF_RUNNING = 64, + IFF_NOARP = 128, + IFF_PROMISC = 256, + IFF_ALLMULTI = 512, + IFF_MASTER = 1024, + IFF_SLAVE = 2048, + IFF_MULTICAST = 4096, + IFF_PORTSEL = 8192, + IFF_AUTOMEDIA = 16384, + IFF_DYNAMIC = 32768, + IFF_LOWER_UP = 65536, + IFF_DORMANT = 131072, + IFF_ECHO = 262144, +}; + +enum net_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, +}; + +enum net_dm_alert_mode { + NET_DM_ALERT_MODE_SUMMARY = 0, + NET_DM_ALERT_MODE_PACKET = 1, +}; + +enum net_dm_attr { + NET_DM_ATTR_UNSPEC = 0, + NET_DM_ATTR_ALERT_MODE = 1, + NET_DM_ATTR_PC = 2, + NET_DM_ATTR_SYMBOL = 3, + NET_DM_ATTR_IN_PORT = 4, + NET_DM_ATTR_TIMESTAMP = 5, + NET_DM_ATTR_PROTO = 6, + NET_DM_ATTR_PAYLOAD = 7, + NET_DM_ATTR_PAD = 8, + NET_DM_ATTR_TRUNC_LEN = 9, + NET_DM_ATTR_ORIG_LEN = 10, + NET_DM_ATTR_QUEUE_LEN = 11, + NET_DM_ATTR_STATS = 12, + NET_DM_ATTR_HW_STATS = 13, + NET_DM_ATTR_ORIGIN = 14, + NET_DM_ATTR_HW_TRAP_GROUP_NAME = 15, + NET_DM_ATTR_HW_TRAP_NAME = 16, + NET_DM_ATTR_HW_ENTRIES = 17, + NET_DM_ATTR_HW_ENTRY = 18, + NET_DM_ATTR_HW_TRAP_COUNT = 19, + NET_DM_ATTR_SW_DROPS = 20, + NET_DM_ATTR_HW_DROPS = 21, + NET_DM_ATTR_FLOW_ACTION_COOKIE = 22, + NET_DM_ATTR_REASON = 23, + __NET_DM_ATTR_MAX = 24, + NET_DM_ATTR_MAX = 23, +}; + +enum net_dm_origin { + NET_DM_ORIGIN_SW = 0, + NET_DM_ORIGIN_HW = 1, +}; + +enum net_shaper_binding_type { + NET_SHAPER_BINDING_TYPE_NETDEV = 0, +}; + +enum net_shaper_metric { + NET_SHAPER_METRIC_BPS = 0, + NET_SHAPER_METRIC_PPS = 1, +}; + +enum net_shaper_scope { + NET_SHAPER_SCOPE_UNSPEC = 0, + NET_SHAPER_SCOPE_NETDEV = 1, + NET_SHAPER_SCOPE_QUEUE = 2, + NET_SHAPER_SCOPE_NODE = 3, + __NET_SHAPER_SCOPE_MAX = 4, + NET_SHAPER_SCOPE_MAX = 3, +}; + +enum net_xmit_qdisc_t { + __NET_XMIT_STOLEN = 65536, + __NET_XMIT_BYPASS = 131072, +}; + +enum netdev_cmd { + NETDEV_UP = 1, + NETDEV_DOWN = 2, + NETDEV_REBOOT = 3, + NETDEV_CHANGE = 4, + NETDEV_REGISTER = 5, + NETDEV_UNREGISTER = 6, + NETDEV_CHANGEMTU = 7, + NETDEV_CHANGEADDR = 8, + NETDEV_PRE_CHANGEADDR = 9, + NETDEV_GOING_DOWN = 10, + NETDEV_CHANGENAME = 11, + NETDEV_FEAT_CHANGE = 12, + NETDEV_BONDING_FAILOVER = 13, + NETDEV_PRE_UP = 14, + NETDEV_PRE_TYPE_CHANGE = 15, + NETDEV_POST_TYPE_CHANGE = 16, + NETDEV_POST_INIT = 17, + NETDEV_PRE_UNINIT = 18, + NETDEV_RELEASE = 19, + NETDEV_NOTIFY_PEERS = 20, + NETDEV_JOIN = 21, + NETDEV_CHANGEUPPER = 22, + NETDEV_RESEND_IGMP = 23, + NETDEV_PRECHANGEMTU = 24, + NETDEV_CHANGEINFODATA = 25, + NETDEV_BONDING_INFO = 26, + NETDEV_PRECHANGEUPPER = 27, + NETDEV_CHANGELOWERSTATE = 28, + NETDEV_UDP_TUNNEL_PUSH_INFO = 29, + NETDEV_UDP_TUNNEL_DROP_INFO = 30, + NETDEV_CHANGE_TX_QUEUE_LEN = 31, + NETDEV_CVLAN_FILTER_PUSH_INFO = 32, + NETDEV_CVLAN_FILTER_DROP_INFO = 33, + NETDEV_SVLAN_FILTER_PUSH_INFO = 34, + NETDEV_SVLAN_FILTER_DROP_INFO = 35, + NETDEV_OFFLOAD_XSTATS_ENABLE = 36, + NETDEV_OFFLOAD_XSTATS_DISABLE = 37, + NETDEV_OFFLOAD_XSTATS_REPORT_USED = 38, + NETDEV_OFFLOAD_XSTATS_REPORT_DELTA = 39, + NETDEV_XDP_FEAT_CHANGE = 40, +}; + +enum netdev_lag_hash { + NETDEV_LAG_HASH_NONE = 0, + NETDEV_LAG_HASH_L2 = 1, + NETDEV_LAG_HASH_L34 = 2, + NETDEV_LAG_HASH_L23 = 3, + NETDEV_LAG_HASH_E23 = 4, + NETDEV_LAG_HASH_E34 = 5, + NETDEV_LAG_HASH_VLAN_SRCMAC = 6, + NETDEV_LAG_HASH_UNKNOWN = 7, +}; + +enum 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_ml_priv_type { + ML_PRIV_NONE = 0, + ML_PRIV_CAN = 1, +}; + +enum netdev_offload_xstats_type { + NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, +}; + +enum netdev_priv_flags { + IFF_802_1Q_VLAN = 1, + IFF_EBRIDGE = 2, + IFF_BONDING = 4, + IFF_ISATAP = 8, + IFF_WAN_HDLC = 16, + IFF_XMIT_DST_RELEASE = 32, + IFF_DONT_BRIDGE = 64, + IFF_DISABLE_NETPOLL = 128, + IFF_MACVLAN_PORT = 256, + IFF_BRIDGE_PORT = 512, + IFF_OVS_DATAPATH = 1024, + IFF_TX_SKB_SHARING = 2048, + IFF_UNICAST_FLT = 4096, + IFF_TEAM_PORT = 8192, + IFF_SUPP_NOFCS = 16384, + IFF_LIVE_ADDR_CHANGE = 32768, + IFF_MACVLAN = 65536, + IFF_XMIT_DST_RELEASE_PERM = 131072, + IFF_L3MDEV_MASTER = 262144, + IFF_NO_QUEUE = 524288, + IFF_OPENVSWITCH = 1048576, + IFF_L3MDEV_SLAVE = 2097152, + IFF_TEAM = 4194304, + IFF_RXFH_CONFIGURED = 8388608, + IFF_PHONY_HEADROOM = 16777216, + IFF_MACSEC = 33554432, + IFF_NO_RX_HANDLER = 67108864, + IFF_FAILOVER = 134217728, + IFF_FAILOVER_SLAVE = 268435456, + IFF_L3MDEV_RX_HANDLER = 536870912, + IFF_NO_ADDRCONF = 1073741824, + IFF_TX_SKB_NO_LINEAR = 2147483648, +}; + +enum netdev_qstats_scope { + NETDEV_QSTATS_SCOPE_QUEUE = 1, +}; + +enum netdev_queue_state_t { + __QUEUE_STATE_DRV_XOFF = 0, + __QUEUE_STATE_STACK_XOFF = 1, + __QUEUE_STATE_FROZEN = 2, +}; + +enum netdev_queue_type { + NETDEV_QUEUE_TYPE_RX = 0, + NETDEV_QUEUE_TYPE_TX = 1, +}; + +enum netdev_reg_state { + NETREG_UNINITIALIZED = 0, + NETREG_REGISTERED = 1, + NETREG_UNREGISTERING = 2, + NETREG_UNREGISTERED = 3, + NETREG_RELEASED = 4, + NETREG_DUMMY = 5, +}; + +enum netdev_stat_type { + NETDEV_PCPU_STAT_NONE = 0, + NETDEV_PCPU_STAT_LSTATS = 1, + NETDEV_PCPU_STAT_TSTATS = 2, + NETDEV_PCPU_STAT_DSTATS = 3, +}; + +enum netdev_state_t { + __LINK_STATE_START = 0, + __LINK_STATE_PRESENT = 1, + __LINK_STATE_NOCARRIER = 2, + __LINK_STATE_LINKWATCH_PENDING = 3, + __LINK_STATE_DORMANT = 4, + __LINK_STATE_TESTING = 5, +}; + +enum netdev_tx { + __NETDEV_TX_MIN = -2147483648, + NETDEV_TX_OK = 0, + NETDEV_TX_BUSY = 16, +}; + +typedef enum netdev_tx netdev_tx_t; + +enum netdev_xdp_act { + NETDEV_XDP_ACT_BASIC = 1, + NETDEV_XDP_ACT_REDIRECT = 2, + NETDEV_XDP_ACT_NDO_XMIT = 4, + NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, + NETDEV_XDP_ACT_HW_OFFLOAD = 16, + NETDEV_XDP_ACT_RX_SG = 32, + NETDEV_XDP_ACT_NDO_XMIT_SG = 64, + NETDEV_XDP_ACT_MASK = 127, +}; + +enum netdev_xdp_rx_metadata { + NETDEV_XDP_RX_METADATA_TIMESTAMP = 1, + NETDEV_XDP_RX_METADATA_HASH = 2, + NETDEV_XDP_RX_METADATA_VLAN_TAG = 4, +}; + +enum netdev_xsk_flags { + NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1, + NETDEV_XSK_FLAGS_TX_CHECKSUM = 2, + NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO = 4, +}; + +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 netkit_action { + NETKIT_NEXT = -1, + NETKIT_PASS = 0, + NETKIT_DROP = 2, + NETKIT_REDIRECT = 7, +}; + +enum netkit_mode { + NETKIT_L2 = 0, + NETKIT_L3 = 1, +}; + +enum netkit_scrub { + NETKIT_SCRUB_NONE = 0, + NETKIT_SCRUB_DEFAULT = 1, +}; + +enum netlink_attribute_type { + NL_ATTR_TYPE_INVALID = 0, + NL_ATTR_TYPE_FLAG = 1, + NL_ATTR_TYPE_U8 = 2, + NL_ATTR_TYPE_U16 = 3, + NL_ATTR_TYPE_U32 = 4, + NL_ATTR_TYPE_U64 = 5, + NL_ATTR_TYPE_S8 = 6, + NL_ATTR_TYPE_S16 = 7, + NL_ATTR_TYPE_S32 = 8, + NL_ATTR_TYPE_S64 = 9, + NL_ATTR_TYPE_BINARY = 10, + NL_ATTR_TYPE_STRING = 11, + NL_ATTR_TYPE_NUL_STRING = 12, + NL_ATTR_TYPE_NESTED = 13, + NL_ATTR_TYPE_NESTED_ARRAY = 14, + NL_ATTR_TYPE_BITFIELD32 = 15, + NL_ATTR_TYPE_SINT = 16, + NL_ATTR_TYPE_UINT = 17, +}; + +enum netlink_policy_type_attr { + NL_POLICY_TYPE_ATTR_UNSPEC = 0, + NL_POLICY_TYPE_ATTR_TYPE = 1, + NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2, + NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3, + NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4, + NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5, + NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6, + NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7, + NL_POLICY_TYPE_ATTR_POLICY_IDX = 8, + NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9, + NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10, + NL_POLICY_TYPE_ATTR_PAD = 11, + NL_POLICY_TYPE_ATTR_MASK = 12, + __NL_POLICY_TYPE_ATTR_MAX = 13, + NL_POLICY_TYPE_ATTR_MAX = 12, +}; + +enum netlink_skb_flags { + NETLINK_SKB_DST = 8, +}; + +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 netns_bpf_attach_type { + NETNS_BPF_INVALID = -1, + NETNS_BPF_FLOW_DISSECTOR = 0, + NETNS_BPF_SK_LOOKUP = 1, + MAX_NETNS_BPF_ATTACH_TYPE = 2, +}; + +enum nexthop_event_type { + NEXTHOP_EVENT_DEL = 0, + NEXTHOP_EVENT_REPLACE = 1, + NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, + NEXTHOP_EVENT_BUCKET_REPLACE = 3, + NEXTHOP_EVENT_HW_STATS_REPORT_DELTA = 4, +}; + +enum 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_SYNPROXY = 8, + NF_CT_EXT_ACT_CT = 9, + NF_CT_EXT_NUM = 10, +}; + +enum nf_dev_hooks { + NF_NETDEV_INGRESS = 0, + NF_NETDEV_EGRESS = 1, + NF_NETDEV_NUMHOOKS = 2, +}; + +enum nf_hook_ops_type { + NF_HOOK_OP_UNDEFINED = 0, + NF_HOOK_OP_NF_TABLES = 1, + NF_HOOK_OP_BPF = 2, +}; + +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_ip6_hook_priorities { + NF_IP6_PRI_FIRST = -2147483648, + NF_IP6_PRI_RAW_BEFORE_DEFRAG = -450, + NF_IP6_PRI_CONNTRACK_DEFRAG = -400, + NF_IP6_PRI_RAW = -300, + NF_IP6_PRI_SELINUX_FIRST = -225, + NF_IP6_PRI_CONNTRACK = -200, + NF_IP6_PRI_MANGLE = -150, + NF_IP6_PRI_NAT_DST = -100, + NF_IP6_PRI_FILTER = 0, + NF_IP6_PRI_SECURITY = 50, + NF_IP6_PRI_NAT_SRC = 100, + NF_IP6_PRI_SELINUX_LAST = 225, + NF_IP6_PRI_CONNTRACK_HELPER = 300, + NF_IP6_PRI_LAST = 2147483647, +}; + +enum nf_ip_hook_priorities { + NF_IP_PRI_FIRST = -2147483648, + NF_IP_PRI_RAW_BEFORE_DEFRAG = -450, + NF_IP_PRI_CONNTRACK_DEFRAG = -400, + NF_IP_PRI_RAW = -300, + NF_IP_PRI_SELINUX_FIRST = -225, + NF_IP_PRI_CONNTRACK = -200, + NF_IP_PRI_MANGLE = -150, + NF_IP_PRI_NAT_DST = -100, + NF_IP_PRI_FILTER = 0, + NF_IP_PRI_SECURITY = 50, + NF_IP_PRI_NAT_SRC = 100, + NF_IP_PRI_SELINUX_LAST = 225, + NF_IP_PRI_CONNTRACK_HELPER = 300, + NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647, + NF_IP_PRI_LAST = 2147483647, +}; + +enum nf_log_type { + NF_LOG_TYPE_LOG = 0, + NF_LOG_TYPE_ULOG = 1, + NF_LOG_TYPE_MAX = 2, +}; + +enum nf_nat_manip_type; + +enum nfs3_stable_how { + NFS_UNSTABLE = 0, + NFS_DATA_SYNC = 1, + NFS_FILE_SYNC = 2, + NFS_INVALID_STABLE_HOW = -1, +}; + +enum nfs4_change_attr_type { + NFS4_CHANGE_TYPE_IS_MONOTONIC_INCR = 0, + NFS4_CHANGE_TYPE_IS_VERSION_COUNTER = 1, + NFS4_CHANGE_TYPE_IS_VERSION_COUNTER_NOPNFS = 2, + NFS4_CHANGE_TYPE_IS_TIME_METADATA = 3, + NFS4_CHANGE_TYPE_IS_UNDEFINED = 4, +}; + +enum 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 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_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 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, + NFS4ERR_FIRST_FREE = 10097, +}; + +enum nh_notifier_info_type { + NH_NOTIFIER_INFO_TYPE_SINGLE = 0, + NH_NOTIFIER_INFO_TYPE_GRP = 1, + NH_NOTIFIER_INFO_TYPE_RES_TABLE = 2, + NH_NOTIFIER_INFO_TYPE_RES_BUCKET = 3, + NH_NOTIFIER_INFO_TYPE_GRP_HW_STATS = 4, +}; + +enum 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_band { + NL80211_BAND_2GHZ = 0, + NL80211_BAND_5GHZ = 1, + NL80211_BAND_60GHZ = 2, + NL80211_BAND_6GHZ = 3, + NL80211_BAND_S1GHZ = 4, + NL80211_BAND_LC = 5, + NUM_NL80211_BANDS = 6, +}; + +enum nl80211_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_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 nl80211_dfs_regions { + NL80211_DFS_UNSET = 0, + NL80211_DFS_FCC = 1, + NL80211_DFS_ETSI = 2, + NL80211_DFS_JP = 3, +}; + +enum nl80211_dfs_state { + NL80211_DFS_USABLE = 0, + NL80211_DFS_UNAVAILABLE = 1, + NL80211_DFS_AVAILABLE = 2, +}; + +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 nl80211_key_mode { + NL80211_KEY_RX_TX = 0, + NL80211_KEY_NO_TX = 1, + NL80211_KEY_SET_TX = 2, +}; + +enum nl80211_mfp { + NL80211_MFP_NO = 0, + NL80211_MFP_REQUIRED = 1, + NL80211_MFP_OPTIONAL = 2, +}; + +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_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_sar_type { + NL80211_SAR_TYPE_POWER = 0, + NUM_NL80211_SAR_TYPE = 1, +}; + +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 nl802154_cca_modes { + __NL802154_CCA_INVALID = 0, + NL802154_CCA_ENERGY = 1, + NL802154_CCA_CARRIER = 2, + NL802154_CCA_ENERGY_CARRIER = 3, + NL802154_CCA_ALOHA = 4, + NL802154_CCA_UWB_SHR = 5, + NL802154_CCA_UWB_MULTIPLEXED = 6, + __NL802154_CCA_ATTR_AFTER_LAST = 7, + NL802154_CCA_ATTR_MAX = 6, +}; + +enum nl802154_cca_opts { + NL802154_CCA_OPT_ENERGY_CARRIER_AND = 0, + NL802154_CCA_OPT_ENERGY_CARRIER_OR = 1, + __NL802154_CCA_OPT_ATTR_AFTER_LAST = 2, + NL802154_CCA_OPT_ATTR_MAX = 1, +}; + +enum nl802154_supported_bool_states { + NL802154_SUPPORTED_BOOL_FALSE = 0, + NL802154_SUPPORTED_BOOL_TRUE = 1, + __NL802154_SUPPORTED_BOOL_INVALD = 2, + NL802154_SUPPORTED_BOOL_BOTH = 3, + __NL802154_SUPPORTED_BOOL_AFTER_LAST = 4, + NL802154_SUPPORTED_BOOL_MAX = 3, +}; + +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 nlmsgerr_attrs { + NLMSGERR_ATTR_UNUSED = 0, + NLMSGERR_ATTR_MSG = 1, + NLMSGERR_ATTR_OFFS = 2, + NLMSGERR_ATTR_COOKIE = 3, + NLMSGERR_ATTR_POLICY = 4, + NLMSGERR_ATTR_MISS_TYPE = 5, + NLMSGERR_ATTR_MISS_NEST = 6, + __NLMSGERR_ATTR_MAX = 7, + NLMSGERR_ATTR_MAX = 6, +}; + +enum nmi_states { + NMI_NOT_RUNNING = 0, + NMI_EXECUTING = 1, + NMI_LATCHED = 2, +}; + +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_IOMMU_PAGES = 40, + NR_SWAPCACHE = 41, + PGPROMOTE_SUCCESS = 42, + PGPROMOTE_CANDIDATE = 43, + PGDEMOTE_KSWAPD = 44, + PGDEMOTE_DIRECT = 45, + PGDEMOTE_KHUGEPAGED = 46, + NR_HUGETLB = 47, + NR_VM_NODE_STAT_ITEMS = 48, +}; + +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 notify_state { + SECCOMP_NOTIFY_INIT = 0, + SECCOMP_NOTIFY_SENT = 1, + SECCOMP_NOTIFY_REPLIED = 2, +}; + +enum numa_faults_stats { + NUMA_MEM = 0, + NUMA_CPU = 1, + NUMA_MEMBUF = 2, + NUMA_CPUBUF = 3, +}; + +enum numa_stat_item { + NUMA_HIT = 0, + NUMA_MISS = 1, + NUMA_FOREIGN = 2, + NUMA_INTERLEAVE_HIT = 3, + NUMA_LOCAL = 4, + NUMA_OTHER = 5, + NR_VM_NUMA_EVENT_ITEMS = 6, +}; + +enum numa_topology_type { + NUMA_DIRECT = 0, + NUMA_GLUELESS_MESH = 1, + NUMA_BACKPLANE = 2, +}; + +enum numa_type { + node_has_spare = 0, + node_fully_busy = 1, + node_overloaded = 2, +}; + +enum numa_vmaskip_reason { + NUMAB_SKIP_UNSUITABLE = 0, + NUMAB_SKIP_SHARED_RO = 1, + NUMAB_SKIP_INACCESSIBLE = 2, + NUMAB_SKIP_SCAN_DELAY = 3, + NUMAB_SKIP_PID_INACTIVE = 4, + NUMAB_SKIP_IGNORE_PID = 5, + NUMAB_SKIP_SEQ_COMPLETED = 6, +}; + +enum nvdimm_claim_class { + NVDIMM_CCLASS_NONE = 0, + NVDIMM_CCLASS_BTT = 1, + NVDIMM_CCLASS_BTT2 = 2, + NVDIMM_CCLASS_PFN = 3, + NVDIMM_CCLASS_DAX = 4, + NVDIMM_CCLASS_UNKNOWN = 5, +}; + +enum nvdimm_event { + NVDIMM_REVALIDATE_POISON = 0, + NVDIMM_REVALIDATE_REGION = 1, +}; + +enum nvdimm_fwa_capability { + NVDIMM_FWA_CAP_INVALID = 0, + NVDIMM_FWA_CAP_NONE = 1, + NVDIMM_FWA_CAP_QUIESCE = 2, + NVDIMM_FWA_CAP_LIVE = 3, +}; + +enum nvdimm_fwa_result { + NVDIMM_FWA_RESULT_INVALID = 0, + NVDIMM_FWA_RESULT_NONE = 1, + NVDIMM_FWA_RESULT_SUCCESS = 2, + NVDIMM_FWA_RESULT_NOTSTAGED = 3, + NVDIMM_FWA_RESULT_NEEDRESET = 4, + NVDIMM_FWA_RESULT_FAIL = 5, +}; + +enum nvdimm_fwa_state { + NVDIMM_FWA_INVALID = 0, + NVDIMM_FWA_IDLE = 1, + NVDIMM_FWA_ARMED = 2, + NVDIMM_FWA_BUSY = 3, + NVDIMM_FWA_ARM_OVERFLOW = 4, +}; + +enum nvdimm_fwa_trigger { + NVDIMM_FWA_ARM = 0, + NVDIMM_FWA_DISARM = 1, +}; + +enum nvdimm_passphrase_type { + NVDIMM_USER = 0, + NVDIMM_MASTER = 1, +}; + +enum nvdimm_security_bits { + NVDIMM_SECURITY_DISABLED = 0, + NVDIMM_SECURITY_UNLOCKED = 1, + NVDIMM_SECURITY_LOCKED = 2, + NVDIMM_SECURITY_FROZEN = 3, + NVDIMM_SECURITY_OVERWRITE = 4, +}; + +enum nvdimmsec_op_ids { + OP_FREEZE = 0, + OP_DISABLE = 1, + OP_DISABLE_MASTER = 2, + OP_UPDATE = 3, + OP_ERASE = 4, + OP_OVERWRITE = 5, + OP_MASTER_UPDATE = 6, + OP_MASTER_ERASE = 7, +}; + +enum nvmem_type { + NVMEM_TYPE_UNKNOWN = 0, + NVMEM_TYPE_EEPROM = 1, + NVMEM_TYPE_OTP = 2, + NVMEM_TYPE_BATTERY_BACKED = 3, + NVMEM_TYPE_FRAM = 4, +}; + +enum objext_flags { + OBJEXTS_ALLOC_FAIL = 4, + __NR_OBJEXTS_FLAGS = 8, +}; + +enum octep_hp_intr_type { + OCTEP_HP_INTR_INVALID = -1, + OCTEP_HP_INTR_ENA = 0, + OCTEP_HP_INTR_DIS = 1, + OCTEP_HP_INTR_MAX = 2, +}; + +enum odd_mech_type { + ODD_MECH_TYPE_SLOT = 0, + ODD_MECH_TYPE_DRAWER = 1, + ODD_MECH_TYPE_UNSUPPORTED = 2, +}; + +enum offload_act_command { + FLOW_ACT_REPLACE = 0, + FLOW_ACT_DESTROY = 1, + FLOW_ACT_STATS = 2, +}; + +enum ohci_rh_state { + OHCI_RH_HALTED = 0, + OHCI_RH_SUSPENDED = 1, + OHCI_RH_RUNNING = 2, +}; + +enum oom_constraint { + CONSTRAINT_NONE = 0, + CONSTRAINT_CPUSET = 1, + CONSTRAINT_MEMORY_POLICY = 2, + CONSTRAINT_MEMCG = 3, +}; + +enum opal_atom_width { + OPAL_WIDTH_TINY = 0, + OPAL_WIDTH_SHORT = 1, + OPAL_WIDTH_MEDIUM = 2, + OPAL_WIDTH_LONG = 3, + OPAL_WIDTH_TOKEN = 4, +}; + +enum opal_key_type { + OPAL_INCLUDED = 0, + OPAL_KEYRING = 1, +}; + +enum opal_lock_flags { + OPAL_SAVE_FOR_LOCK = 1, +}; + +enum opal_lock_state { + OPAL_RO = 1, + OPAL_RW = 2, + OPAL_LK = 4, +}; + +enum opal_mbr { + OPAL_MBR_ENABLE = 0, + OPAL_MBR_DISABLE = 1, +}; + +enum opal_mbr_done_flag { + OPAL_MBR_NOT_DONE = 0, + OPAL_MBR_DONE = 1, +}; + +enum opal_method { + OPAL_PROPERTIES = 0, + OPAL_STARTSESSION = 1, + OPAL_REVERT = 2, + OPAL_ACTIVATE = 3, + OPAL_EGET = 4, + OPAL_ESET = 5, + OPAL_NEXT = 6, + OPAL_EAUTHENTICATE = 7, + OPAL_GETACL = 8, + OPAL_GENKEY = 9, + OPAL_REVERTSP = 10, + OPAL_GET = 11, + OPAL_SET = 12, + OPAL_AUTHENTICATE = 13, + OPAL_RANDOM = 14, + OPAL_ERASE = 15, +}; + +enum opal_parameter { + OPAL_SUM_SET_LIST = 393216, +}; + +enum opal_response_token { + OPAL_DTA_TOKENID_BYTESTRING = 224, + OPAL_DTA_TOKENID_SINT = 225, + OPAL_DTA_TOKENID_UINT = 226, + OPAL_DTA_TOKENID_TOKEN = 227, + OPAL_DTA_TOKENID_INVALID = 0, +}; + +enum opal_revert_lsp_opts { + OPAL_PRESERVE = 1, +}; + +enum opal_revertlsp { + OPAL_KEEP_GLOBAL_RANGE_KEY = 393216, +}; + +enum opal_table_ops { + OPAL_READ_TABLE = 0, + OPAL_WRITE_TABLE = 1, +}; + +enum opal_token { + OPAL_TRUE = 1, + OPAL_FALSE = 0, + OPAL_BOOLEAN_EXPR = 3, + OPAL_TABLE = 0, + OPAL_STARTROW = 1, + OPAL_ENDROW = 2, + OPAL_STARTCOLUMN = 3, + OPAL_ENDCOLUMN = 4, + OPAL_VALUES = 1, + OPAL_TABLE_UID = 0, + OPAL_TABLE_NAME = 1, + OPAL_TABLE_COMMON = 2, + OPAL_TABLE_TEMPLATE = 3, + OPAL_TABLE_KIND = 4, + OPAL_TABLE_COLUMN = 5, + OPAL_TABLE_COLUMNS = 6, + OPAL_TABLE_ROWS = 7, + OPAL_TABLE_ROWS_FREE = 8, + OPAL_TABLE_ROW_BYTES = 9, + OPAL_TABLE_LASTID = 10, + OPAL_TABLE_MIN = 11, + OPAL_TABLE_MAX = 12, + OPAL_PIN = 3, + OPAL_RANGESTART = 3, + OPAL_RANGELENGTH = 4, + OPAL_READLOCKENABLED = 5, + OPAL_WRITELOCKENABLED = 6, + OPAL_READLOCKED = 7, + OPAL_WRITELOCKED = 8, + OPAL_ACTIVEKEY = 10, + OPAL_LIFECYCLE = 6, + OPAL_MAXRANGES = 4, + OPAL_MBRENABLE = 1, + OPAL_MBRDONE = 2, + OPAL_HOSTPROPERTIES = 0, + OPAL_STARTLIST = 240, + OPAL_ENDLIST = 241, + OPAL_STARTNAME = 242, + OPAL_ENDNAME = 243, + OPAL_CALL = 248, + OPAL_ENDOFDATA = 249, + OPAL_ENDOFSESSION = 250, + OPAL_STARTTRANSACTON = 251, + OPAL_ENDTRANSACTON = 252, + OPAL_EMPTYATOM = 255, + OPAL_WHERE = 0, +}; + +enum opal_uid { + OPAL_SMUID_UID = 0, + OPAL_THISSP_UID = 1, + OPAL_ADMINSP_UID = 2, + OPAL_LOCKINGSP_UID = 3, + OPAL_ENTERPRISE_LOCKINGSP_UID = 4, + OPAL_ANYBODY_UID = 5, + OPAL_SID_UID = 6, + OPAL_ADMIN1_UID = 7, + OPAL_USER1_UID = 8, + OPAL_USER2_UID = 9, + OPAL_PSID_UID = 10, + OPAL_ENTERPRISE_BANDMASTER0_UID = 11, + OPAL_ENTERPRISE_ERASEMASTER_UID = 12, + OPAL_TABLE_TABLE = 13, + OPAL_LOCKINGRANGE_GLOBAL = 14, + OPAL_LOCKINGRANGE_ACE_START_TO_KEY = 15, + OPAL_LOCKINGRANGE_ACE_RDLOCKED = 16, + OPAL_LOCKINGRANGE_ACE_WRLOCKED = 17, + OPAL_MBRCONTROL = 18, + OPAL_MBR = 19, + OPAL_AUTHORITY_TABLE = 20, + OPAL_C_PIN_TABLE = 21, + OPAL_LOCKING_INFO_TABLE = 22, + OPAL_ENTERPRISE_LOCKING_INFO_TABLE = 23, + OPAL_DATASTORE = 24, + OPAL_C_PIN_MSID = 25, + OPAL_C_PIN_SID = 26, + OPAL_C_PIN_ADMIN1 = 27, + OPAL_HALF_UID_AUTHORITY_OBJ_REF = 28, + OPAL_HALF_UID_BOOLEAN_ACE = 29, + OPAL_UID_HEXFF = 30, +}; + +enum opal_user { + OPAL_ADMIN1 = 0, + OPAL_USER1 = 1, + OPAL_USER2 = 2, + OPAL_USER3 = 3, + OPAL_USER4 = 4, + OPAL_USER5 = 5, + OPAL_USER6 = 6, + OPAL_USER7 = 7, + OPAL_USER8 = 8, + OPAL_USER9 = 9, +}; + +enum opp_table_access { + OPP_TABLE_ACCESS_UNKNOWN = 0, + OPP_TABLE_ACCESS_EXCLUSIVE = 1, + OPP_TABLE_ACCESS_SHARED = 2, +}; + +enum osnoise_options_index { + OSN_DEFAULTS = 0, + OSN_WORKLOAD = 1, + OSN_PANIC_ON_STOP = 2, + OSN_PREEMPT_DISABLE = 3, + OSN_IRQ_DISABLE = 4, + OSN_MAX = 5, +}; + +enum owner_state { + OWNER_NULL = 1, + OWNER_WRITER = 2, + OWNER_READER = 4, + OWNER_NONSPINNABLE = 8, +}; + +enum packet_sock_flags { + PACKET_SOCK_ORIGDEV = 0, + PACKET_SOCK_AUXDATA = 1, + PACKET_SOCK_TX_HAS_OFF = 2, + PACKET_SOCK_TP_LOSS = 3, + PACKET_SOCK_RUNNING = 4, + PACKET_SOCK_PRESSURE = 5, + PACKET_SOCK_QDISC_BYPASS = 6, +}; + +enum packing_op { + PACK = 0, + UNPACK = 1, +}; + +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 page_memcg_data_flags { + MEMCG_DATA_OBJEXTS = 1, + MEMCG_DATA_KMEM = 2, + __NR_MEMCG_DATA_FLAGS = 4, +}; + +enum page_size_enum { + __PAGE_SIZE = 4096, +}; + +enum page_walk_action { + ACTION_SUBTREE = 0, + ACTION_CONTINUE = 1, + ACTION_AGAIN = 2, +}; + +enum page_walk_lock { + PGWALK_RDLOCK = 0, + PGWALK_WRLOCK = 1, + PGWALK_WRLOCK_VERIFY = 2, +}; + +enum pageblock_bits { + PB_migrate = 0, + PB_migrate_end = 2, + PB_migrate_skip = 3, + NR_PAGEBLOCK_BITS = 4, +}; + +enum pageflags { + PG_locked = 0, + PG_writeback = 1, + PG_referenced = 2, + PG_uptodate = 3, + PG_dirty = 4, + PG_lru = 5, + PG_head = 6, + PG_waiters = 7, + PG_active = 8, + PG_workingset = 9, + PG_owner_priv_1 = 10, + PG_owner_2 = 11, + PG_arch_1 = 12, + PG_reserved = 13, + PG_private = 14, + PG_private_2 = 15, + PG_reclaim = 16, + PG_swapbacked = 17, + PG_unevictable = 18, + PG_dropbehind = 19, + PG_mlocked = 20, + PG_hwpoison = 21, + PG_young = 22, + PG_idle = 23, + PG_arch_2 = 24, + __NR_PAGEFLAGS = 25, + PG_readahead = 16, + PG_swapcache = 10, + PG_checked = 10, + PG_anon_exclusive = 11, + PG_mappedtodisk = 11, + PG_fscache = 15, + PG_pinned = 10, + PG_savepinned = 4, + PG_foreign = 10, + PG_xen_remapped = 10, + PG_isolated = 16, + PG_reported = 3, + PG_vmemmap_self_hosted = 10, + PG_has_hwpoisoned = 8, + PG_large_rmappable = 9, + PG_partially_mapped = 16, +}; + +enum pagetype { + PGTY_buddy = 240, + PGTY_offline = 241, + PGTY_table = 242, + PGTY_guard = 243, + PGTY_hugetlb = 244, + PGTY_slab = 245, + PGTY_zsmalloc = 246, + PGTY_unaccepted = 247, + PGTY_mapcount_underflow = 255, +}; + +enum palmas_external_requestor_id { + PALMAS_EXTERNAL_REQSTR_ID_REGEN1 = 0, + PALMAS_EXTERNAL_REQSTR_ID_REGEN2 = 1, + PALMAS_EXTERNAL_REQSTR_ID_SYSEN1 = 2, + PALMAS_EXTERNAL_REQSTR_ID_SYSEN2 = 3, + PALMAS_EXTERNAL_REQSTR_ID_CLK32KG = 4, + PALMAS_EXTERNAL_REQSTR_ID_CLK32KGAUDIO = 5, + PALMAS_EXTERNAL_REQSTR_ID_REGEN3 = 6, + PALMAS_EXTERNAL_REQSTR_ID_SMPS12 = 7, + PALMAS_EXTERNAL_REQSTR_ID_SMPS3 = 8, + PALMAS_EXTERNAL_REQSTR_ID_SMPS45 = 9, + PALMAS_EXTERNAL_REQSTR_ID_SMPS6 = 10, + PALMAS_EXTERNAL_REQSTR_ID_SMPS7 = 11, + PALMAS_EXTERNAL_REQSTR_ID_SMPS8 = 12, + PALMAS_EXTERNAL_REQSTR_ID_SMPS9 = 13, + PALMAS_EXTERNAL_REQSTR_ID_SMPS10 = 14, + PALMAS_EXTERNAL_REQSTR_ID_LDO1 = 15, + PALMAS_EXTERNAL_REQSTR_ID_LDO2 = 16, + PALMAS_EXTERNAL_REQSTR_ID_LDO3 = 17, + PALMAS_EXTERNAL_REQSTR_ID_LDO4 = 18, + PALMAS_EXTERNAL_REQSTR_ID_LDO5 = 19, + PALMAS_EXTERNAL_REQSTR_ID_LDO6 = 20, + PALMAS_EXTERNAL_REQSTR_ID_LDO7 = 21, + PALMAS_EXTERNAL_REQSTR_ID_LDO8 = 22, + PALMAS_EXTERNAL_REQSTR_ID_LDO9 = 23, + PALMAS_EXTERNAL_REQSTR_ID_LDOLN = 24, + PALMAS_EXTERNAL_REQSTR_ID_LDOUSB = 25, + PALMAS_EXTERNAL_REQSTR_ID_MAX = 26, +}; + +enum palmas_irqs { + PALMAS_CHARG_DET_N_VBUS_OVV_IRQ = 0, + PALMAS_PWRON_IRQ = 1, + PALMAS_LONG_PRESS_KEY_IRQ = 2, + PALMAS_RPWRON_IRQ = 3, + PALMAS_PWRDOWN_IRQ = 4, + PALMAS_HOTDIE_IRQ = 5, + PALMAS_VSYS_MON_IRQ = 6, + PALMAS_VBAT_MON_IRQ = 7, + PALMAS_RTC_ALARM_IRQ = 8, + PALMAS_RTC_TIMER_IRQ = 9, + PALMAS_WDT_IRQ = 10, + PALMAS_BATREMOVAL_IRQ = 11, + PALMAS_RESET_IN_IRQ = 12, + PALMAS_FBI_BB_IRQ = 13, + PALMAS_SHORT_IRQ = 14, + PALMAS_VAC_ACOK_IRQ = 15, + PALMAS_GPADC_AUTO_0_IRQ = 16, + PALMAS_GPADC_AUTO_1_IRQ = 17, + PALMAS_GPADC_EOC_SW_IRQ = 18, + PALMAS_GPADC_EOC_RT_IRQ = 19, + PALMAS_ID_OTG_IRQ = 20, + PALMAS_ID_IRQ = 21, + PALMAS_VBUS_OTG_IRQ = 22, + PALMAS_VBUS_IRQ = 23, + PALMAS_GPIO_0_IRQ = 24, + PALMAS_GPIO_1_IRQ = 25, + PALMAS_GPIO_2_IRQ = 26, + PALMAS_GPIO_3_IRQ = 27, + PALMAS_GPIO_4_IRQ = 28, + PALMAS_GPIO_5_IRQ = 29, + PALMAS_GPIO_6_IRQ = 30, + PALMAS_GPIO_7_IRQ = 31, + PALMAS_NUM_IRQ = 32, +}; + +enum palmas_regulators { + PALMAS_REG_SMPS12 = 0, + PALMAS_REG_SMPS123 = 1, + PALMAS_REG_SMPS3 = 2, + PALMAS_REG_SMPS45 = 3, + PALMAS_REG_SMPS457 = 4, + PALMAS_REG_SMPS6 = 5, + PALMAS_REG_SMPS7 = 6, + PALMAS_REG_SMPS8 = 7, + PALMAS_REG_SMPS9 = 8, + PALMAS_REG_SMPS10_OUT2 = 9, + PALMAS_REG_SMPS10_OUT1 = 10, + PALMAS_REG_LDO1 = 11, + PALMAS_REG_LDO2 = 12, + PALMAS_REG_LDO3 = 13, + PALMAS_REG_LDO4 = 14, + PALMAS_REG_LDO5 = 15, + PALMAS_REG_LDO6 = 16, + PALMAS_REG_LDO7 = 17, + PALMAS_REG_LDO8 = 18, + PALMAS_REG_LDO9 = 19, + PALMAS_REG_LDOLN = 20, + PALMAS_REG_LDOUSB = 21, + PALMAS_REG_REGEN1 = 22, + PALMAS_REG_REGEN2 = 23, + PALMAS_REG_REGEN3 = 24, + PALMAS_REG_SYSEN1 = 25, + PALMAS_REG_SYSEN2 = 26, + PALMAS_NUM_REGS = 27, +}; + +enum palmas_usb_state { + PALMAS_USB_STATE_DISCONNECT = 0, + PALMAS_USB_STATE_VBUS = 1, + PALMAS_USB_STATE_ID = 2, +}; + +enum partition_cmd { + partcmd_enable = 0, + partcmd_enablei = 1, + partcmd_disable = 2, + partcmd_update = 3, + partcmd_invalidate = 4, +}; + +enum passtype { + PASS_SCAN = 0, + PASS_REVOKE = 1, + PASS_REPLAY = 2, +}; + +enum path_flags { + PATH_IS_DIR = 1, + PATH_SOCK_COND = 2, + PATH_CONNECT_PATH = 4, + PATH_CHROOT_REL = 8, + PATH_CHROOT_NSCONNECT = 16, + PATH_CONNECT_IPC_PATH = 32, + PATH_DELEGATE_DELETED = 65536, + PATH_MEDIATE_DELETED = 131072, +}; + +enum pce_status { + PCE_STATUS_NONE = 0, + PCE_STATUS_ACQUIRED = 1, + PCE_STATUS_PREPARED = 2, + PCE_STATUS_ENABLED = 3, + PCE_STATUS_ERROR = 4, +}; + +enum pci_bar_type { + pci_bar_unknown = 0, + pci_bar_io = 1, + pci_bar_mem32 = 2, + pci_bar_mem64 = 3, +}; + +enum pci_barno { + NO_BAR = -1, + BAR_0 = 0, + BAR_1 = 1, + BAR_2 = 2, + BAR_3 = 3, + BAR_4 = 4, + BAR_5 = 5, +}; + +enum pci_bf_sort_state { + pci_bf_sort_default = 0, + pci_force_nobf = 1, + pci_force_bf = 2, + pci_dmi_bf = 3, +}; + +enum pci_board_num_t { + pbn_default = 0, + pbn_b0_1_115200 = 1, + pbn_b0_2_115200 = 2, + pbn_b0_4_115200 = 3, + pbn_b0_5_115200 = 4, + pbn_b0_8_115200 = 5, + pbn_b0_1_921600 = 6, + pbn_b0_2_921600 = 7, + pbn_b0_4_921600 = 8, + pbn_b0_2_1130000 = 9, + pbn_b0_4_1152000 = 10, + pbn_b0_4_1250000 = 11, + pbn_b0_2_1843200 = 12, + pbn_b0_4_1843200 = 13, + pbn_b0_1_15625000 = 14, + pbn_b0_bt_1_115200 = 15, + pbn_b0_bt_2_115200 = 16, + pbn_b0_bt_4_115200 = 17, + pbn_b0_bt_8_115200 = 18, + pbn_b0_bt_1_460800 = 19, + pbn_b0_bt_2_460800 = 20, + pbn_b0_bt_4_460800 = 21, + pbn_b0_bt_1_921600 = 22, + pbn_b0_bt_2_921600 = 23, + pbn_b0_bt_4_921600 = 24, + pbn_b0_bt_8_921600 = 25, + pbn_b1_1_115200 = 26, + pbn_b1_2_115200 = 27, + pbn_b1_4_115200 = 28, + pbn_b1_8_115200 = 29, + pbn_b1_16_115200 = 30, + pbn_b1_1_921600 = 31, + pbn_b1_2_921600 = 32, + pbn_b1_4_921600 = 33, + pbn_b1_8_921600 = 34, + pbn_b1_2_1250000 = 35, + pbn_b1_bt_1_115200 = 36, + pbn_b1_bt_2_115200 = 37, + pbn_b1_bt_4_115200 = 38, + pbn_b1_bt_2_921600 = 39, + pbn_b1_1_1382400 = 40, + pbn_b1_2_1382400 = 41, + pbn_b1_4_1382400 = 42, + pbn_b1_8_1382400 = 43, + pbn_b2_1_115200 = 44, + pbn_b2_2_115200 = 45, + pbn_b2_4_115200 = 46, + pbn_b2_8_115200 = 47, + pbn_b2_1_460800 = 48, + pbn_b2_4_460800 = 49, + pbn_b2_8_460800 = 50, + pbn_b2_16_460800 = 51, + pbn_b2_1_921600 = 52, + pbn_b2_4_921600 = 53, + pbn_b2_8_921600 = 54, + pbn_b2_8_1152000 = 55, + pbn_b2_bt_1_115200 = 56, + pbn_b2_bt_2_115200 = 57, + pbn_b2_bt_4_115200 = 58, + pbn_b2_bt_2_921600 = 59, + pbn_b2_bt_4_921600 = 60, + pbn_b3_2_115200 = 61, + pbn_b3_4_115200 = 62, + pbn_b3_8_115200 = 63, + pbn_b4_bt_2_921600 = 64, + pbn_b4_bt_4_921600 = 65, + pbn_b4_bt_8_921600 = 66, + pbn_panacom = 67, + pbn_panacom2 = 68, + pbn_panacom4 = 69, + pbn_plx_romulus = 70, + pbn_oxsemi = 71, + pbn_oxsemi_1_15625000 = 72, + pbn_oxsemi_2_15625000 = 73, + pbn_oxsemi_4_15625000 = 74, + pbn_oxsemi_8_15625000 = 75, + pbn_intel_i960 = 76, + pbn_sgi_ioc3 = 77, + pbn_computone_4 = 78, + pbn_computone_6 = 79, + pbn_computone_8 = 80, + pbn_sbsxrsio = 81, + pbn_pasemi_1682M = 82, + pbn_ni8430_2 = 83, + pbn_ni8430_4 = 84, + pbn_ni8430_8 = 85, + pbn_ni8430_16 = 86, + pbn_ADDIDATA_PCIe_1_3906250 = 87, + pbn_ADDIDATA_PCIe_2_3906250 = 88, + pbn_ADDIDATA_PCIe_4_3906250 = 89, + pbn_ADDIDATA_PCIe_8_3906250 = 90, + pbn_ce4100_1_115200 = 91, + pbn_omegapci = 92, + pbn_NETMOS9900_2s_115200 = 93, + pbn_brcm_trumanage = 94, + pbn_fintek_4 = 95, + pbn_fintek_8 = 96, + pbn_fintek_12 = 97, + pbn_fintek_F81504A = 98, + pbn_fintek_F81508A = 99, + pbn_fintek_F81512A = 100, + pbn_wch382_2 = 101, + pbn_wch384_4 = 102, + pbn_wch384_8 = 103, + pbn_sunix_pci_1s = 104, + pbn_sunix_pci_2s = 105, + pbn_sunix_pci_4s = 106, + pbn_sunix_pci_8s = 107, + pbn_sunix_pci_16s = 108, + pbn_titan_1_4000000 = 109, + pbn_titan_2_4000000 = 110, + pbn_titan_4_4000000 = 111, + pbn_titan_8_4000000 = 112, + pbn_moxa_2 = 113, + pbn_moxa_4 = 114, + pbn_moxa_8 = 115, +}; + +enum pci_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 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, + PCI_DEV_FLAGS_MSIX_TOUCH_ENTRY_DATA_FIRST = 8192, + PCI_DEV_FLAGS_NO_RRS_SV = 16384, +}; + +enum pci_epc_bar_type { + BAR_PROGRAMMABLE = 0, + BAR_FIXED = 1, + BAR_RESERVED = 2, +}; + +enum pci_epc_interface_type { + UNKNOWN_INTERFACE = -1, + PRIMARY_INTERFACE = 0, + SECONDARY_INTERFACE = 1, +}; + +enum pci_ers_result { + PCI_ERS_RESULT_NONE = 1, + PCI_ERS_RESULT_CAN_RECOVER = 2, + PCI_ERS_RESULT_NEED_RESET = 3, + PCI_ERS_RESULT_DISCONNECT = 4, + PCI_ERS_RESULT_RECOVERED = 5, + PCI_ERS_RESULT_NO_AER_DRIVER = 6, +}; + +enum pci_fixup_pass { + pci_fixup_early = 0, + pci_fixup_header = 1, + pci_fixup_final = 2, + pci_fixup_enable = 3, + pci_fixup_resume = 4, + pci_fixup_suspend = 5, + pci_fixup_resume_early = 6, + pci_fixup_suspend_late = 7, +}; + +enum pci_interrupt_pin { + PCI_INTERRUPT_UNKNOWN = 0, + PCI_INTERRUPT_INTA = 1, + PCI_INTERRUPT_INTB = 2, + PCI_INTERRUPT_INTC = 3, + PCI_INTERRUPT_INTD = 4, +}; + +enum pci_irq_reroute_variant { + INTEL_IRQ_REROUTE_VARIANT = 1, + MAX_IRQ_REROUTE_VARIANTS = 3, +}; + +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_p2pdma_map_type { + PCI_P2PDMA_MAP_UNKNOWN = 0, + PCI_P2PDMA_MAP_NOT_SUPPORTED = 1, + PCI_P2PDMA_MAP_BUS_ADDR = 2, + PCI_P2PDMA_MAP_THRU_HOST_BRIDGE = 3, +}; + +enum 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, +}; + +enum pcie_link_width { + PCIE_LNK_WIDTH_RESRV = 0, + PCIE_LNK_X1 = 1, + PCIE_LNK_X2 = 2, + PCIE_LNK_X4 = 4, + PCIE_LNK_X8 = 8, + PCIE_LNK_X12 = 12, + PCIE_LNK_X16 = 16, + PCIE_LNK_X32 = 32, + PCIE_LNK_WIDTH_UNKNOWN = 255, +}; + +enum pcie_reset_state { + pcie_deassert_reset = 1, + pcie_warm_reset = 2, + pcie_hot_reset = 3, +}; + +enum pcim_addr_devres_type { + PCIM_ADDR_DEVRES_TYPE_INVALID = 0, + PCIM_ADDR_DEVRES_TYPE_REGION = 1, + PCIM_ADDR_DEVRES_TYPE_REGION_MAPPING = 2, + PCIM_ADDR_DEVRES_TYPE_MAPPING = 3, +}; + +enum pcpu_fc { + PCPU_FC_AUTO = 0, + PCPU_FC_EMBED = 1, + PCPU_FC_PAGE = 2, + PCPU_FC_NR = 3, +}; + +enum pedit_cmd { + TCA_PEDIT_KEY_EX_CMD_SET = 0, + TCA_PEDIT_KEY_EX_CMD_ADD = 1, + __PEDIT_CMD_MAX = 2, +}; + +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 peer_app_attr { + DCB_ATTR_CEE_PEER_APP_UNSPEC = 0, + DCB_ATTR_CEE_PEER_APP_INFO = 1, + DCB_ATTR_CEE_PEER_APP = 2, + __DCB_ATTR_CEE_PEER_APP_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, +}; + +enum perf_adl_uncore_imc_freerunning_types { + ADL_MMIO_UNCORE_IMC_DATA_TOTAL = 0, + ADL_MMIO_UNCORE_IMC_DATA_READ = 1, + ADL_MMIO_UNCORE_IMC_DATA_WRITE = 2, + ADL_MMIO_UNCORE_IMC_FREERUNNING_TYPE_MAX = 3, +}; + +enum perf_bpf_event_type { + PERF_BPF_EVENT_UNKNOWN = 0, + PERF_BPF_EVENT_PROG_LOAD = 1, + PERF_BPF_EVENT_PROG_UNLOAD = 2, + PERF_BPF_EVENT_MAX = 3, +}; + +enum perf_branch_sample_type { + PERF_SAMPLE_BRANCH_USER = 1, + PERF_SAMPLE_BRANCH_KERNEL = 2, + PERF_SAMPLE_BRANCH_HV = 4, + PERF_SAMPLE_BRANCH_ANY = 8, + PERF_SAMPLE_BRANCH_ANY_CALL = 16, + PERF_SAMPLE_BRANCH_ANY_RETURN = 32, + PERF_SAMPLE_BRANCH_IND_CALL = 64, + PERF_SAMPLE_BRANCH_ABORT_TX = 128, + PERF_SAMPLE_BRANCH_IN_TX = 256, + PERF_SAMPLE_BRANCH_NO_TX = 512, + PERF_SAMPLE_BRANCH_COND = 1024, + PERF_SAMPLE_BRANCH_CALL_STACK = 2048, + PERF_SAMPLE_BRANCH_IND_JUMP = 4096, + PERF_SAMPLE_BRANCH_CALL = 8192, + PERF_SAMPLE_BRANCH_NO_FLAGS = 16384, + PERF_SAMPLE_BRANCH_NO_CYCLES = 32768, + PERF_SAMPLE_BRANCH_TYPE_SAVE = 65536, + PERF_SAMPLE_BRANCH_HW_INDEX = 131072, + PERF_SAMPLE_BRANCH_PRIV_SAVE = 262144, + PERF_SAMPLE_BRANCH_COUNTERS = 524288, + PERF_SAMPLE_BRANCH_MAX = 1048576, +}; + +enum perf_branch_sample_type_shift { + PERF_SAMPLE_BRANCH_USER_SHIFT = 0, + PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 1, + PERF_SAMPLE_BRANCH_HV_SHIFT = 2, + PERF_SAMPLE_BRANCH_ANY_SHIFT = 3, + PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 4, + PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 5, + PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 6, + PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 7, + PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 8, + PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 9, + PERF_SAMPLE_BRANCH_COND_SHIFT = 10, + PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 11, + PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 12, + PERF_SAMPLE_BRANCH_CALL_SHIFT = 13, + PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14, + PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15, + PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16, + PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17, + PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 18, + PERF_SAMPLE_BRANCH_COUNTERS_SHIFT = 19, + PERF_SAMPLE_BRANCH_MAX_SHIFT = 20, +}; + +enum perf_callchain_context { + PERF_CONTEXT_HV = 18446744073709551584ULL, + PERF_CONTEXT_KERNEL = 18446744073709551488ULL, + PERF_CONTEXT_USER = 18446744073709551104ULL, + PERF_CONTEXT_GUEST = 18446744073709549568ULL, + PERF_CONTEXT_GUEST_KERNEL = 18446744073709549440ULL, + PERF_CONTEXT_GUEST_USER = 18446744073709549056ULL, + PERF_CONTEXT_MAX = 18446744073709547521ULL, +}; + +enum perf_event_ioc_flags { + PERF_IOC_FLAG_GROUP = 1, +}; + +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_event_sample_format { + PERF_SAMPLE_IP = 1, + PERF_SAMPLE_TID = 2, + PERF_SAMPLE_TIME = 4, + PERF_SAMPLE_ADDR = 8, + PERF_SAMPLE_READ = 16, + PERF_SAMPLE_CALLCHAIN = 32, + PERF_SAMPLE_ID = 64, + PERF_SAMPLE_CPU = 128, + PERF_SAMPLE_PERIOD = 256, + PERF_SAMPLE_STREAM_ID = 512, + PERF_SAMPLE_RAW = 1024, + PERF_SAMPLE_BRANCH_STACK = 2048, + PERF_SAMPLE_REGS_USER = 4096, + PERF_SAMPLE_STACK_USER = 8192, + PERF_SAMPLE_WEIGHT = 16384, + PERF_SAMPLE_DATA_SRC = 32768, + PERF_SAMPLE_IDENTIFIER = 65536, + PERF_SAMPLE_TRANSACTION = 131072, + PERF_SAMPLE_REGS_INTR = 262144, + PERF_SAMPLE_PHYS_ADDR = 524288, + PERF_SAMPLE_AUX = 1048576, + PERF_SAMPLE_CGROUP = 2097152, + PERF_SAMPLE_DATA_PAGE_SIZE = 4194304, + PERF_SAMPLE_CODE_PAGE_SIZE = 8388608, + PERF_SAMPLE_WEIGHT_STRUCT = 16777216, + PERF_SAMPLE_MAX = 33554432, +}; + +enum perf_event_state { + PERF_EVENT_STATE_DEAD = -4, + PERF_EVENT_STATE_EXIT = -3, + PERF_EVENT_STATE_ERROR = -2, + PERF_EVENT_STATE_OFF = -1, + PERF_EVENT_STATE_INACTIVE = 0, + PERF_EVENT_STATE_ACTIVE = 1, +}; + +enum perf_event_task_context { + perf_invalid_context = -1, + perf_hw_context = 0, + perf_sw_context = 1, + perf_nr_task_contexts = 2, +}; + +enum perf_event_type { + PERF_RECORD_MMAP = 1, + PERF_RECORD_LOST = 2, + PERF_RECORD_COMM = 3, + PERF_RECORD_EXIT = 4, + PERF_RECORD_THROTTLE = 5, + PERF_RECORD_UNTHROTTLE = 6, + PERF_RECORD_FORK = 7, + PERF_RECORD_READ = 8, + PERF_RECORD_SAMPLE = 9, + PERF_RECORD_MMAP2 = 10, + PERF_RECORD_AUX = 11, + PERF_RECORD_ITRACE_START = 12, + PERF_RECORD_LOST_SAMPLES = 13, + PERF_RECORD_SWITCH = 14, + PERF_RECORD_SWITCH_CPU_WIDE = 15, + PERF_RECORD_NAMESPACES = 16, + PERF_RECORD_KSYMBOL = 17, + PERF_RECORD_BPF_EVENT = 18, + PERF_RECORD_CGROUP = 19, + PERF_RECORD_TEXT_POKE = 20, + PERF_RECORD_AUX_OUTPUT_HW_ID = 21, + PERF_RECORD_MAX = 22, +}; + +enum 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_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 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_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 perf_pmu_scope { + PERF_PMU_SCOPE_NONE = 0, + PERF_PMU_SCOPE_CORE = 1, + PERF_PMU_SCOPE_DIE = 2, + PERF_PMU_SCOPE_CLUSTER = 3, + PERF_PMU_SCOPE_PKG = 4, + PERF_PMU_SCOPE_SYS_WIDE = 5, + PERF_PMU_MAX_SCOPE = 6, +}; + +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_record_ksymbol_type { + PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, + PERF_RECORD_KSYMBOL_TYPE_BPF = 1, + PERF_RECORD_KSYMBOL_TYPE_OOL = 2, + PERF_RECORD_KSYMBOL_TYPE_MAX = 3, +}; + +enum perf_sample_regs_abi { + PERF_SAMPLE_REGS_ABI_NONE = 0, + PERF_SAMPLE_REGS_ABI_32 = 1, + PERF_SAMPLE_REGS_ABI_64 = 2, +}; + +enum perf_snb_uncore_imc_freerunning_types { + SNB_PCI_UNCORE_IMC_DATA_READS = 0, + SNB_PCI_UNCORE_IMC_DATA_WRITES = 1, + SNB_PCI_UNCORE_IMC_GT_REQUESTS = 2, + SNB_PCI_UNCORE_IMC_IA_REQUESTS = 3, + SNB_PCI_UNCORE_IMC_IO_REQUESTS = 4, + SNB_PCI_UNCORE_IMC_FREERUNNING_TYPE_MAX = 5, +}; + +enum perf_sw_ids { + PERF_COUNT_SW_CPU_CLOCK = 0, + PERF_COUNT_SW_TASK_CLOCK = 1, + PERF_COUNT_SW_PAGE_FAULTS = 2, + PERF_COUNT_SW_CONTEXT_SWITCHES = 3, + PERF_COUNT_SW_CPU_MIGRATIONS = 4, + PERF_COUNT_SW_PAGE_FAULTS_MIN = 5, + PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6, + PERF_COUNT_SW_ALIGNMENT_FAULTS = 7, + PERF_COUNT_SW_EMULATION_FAULTS = 8, + PERF_COUNT_SW_DUMMY = 9, + PERF_COUNT_SW_BPF_OUTPUT = 10, + PERF_COUNT_SW_CGROUP_SWITCHES = 11, + PERF_COUNT_SW_MAX = 12, +}; + +enum perf_tgl_uncore_imc_freerunning_types { + TGL_MMIO_UNCORE_IMC_DATA_TOTAL = 0, + TGL_MMIO_UNCORE_IMC_DATA_READ = 1, + TGL_MMIO_UNCORE_IMC_DATA_WRITE = 2, + TGL_MMIO_UNCORE_IMC_FREERUNNING_TYPE_MAX = 3, +}; + +enum perf_type_id { + PERF_TYPE_HARDWARE = 0, + PERF_TYPE_SOFTWARE = 1, + PERF_TYPE_TRACEPOINT = 2, + PERF_TYPE_HW_CACHE = 3, + PERF_TYPE_RAW = 4, + PERF_TYPE_BREAKPOINT = 5, + PERF_TYPE_MAX = 6, +}; + +enum perf_uncore_icx_iio_freerunning_type_id { + ICX_IIO_MSR_IOCLK = 0, + ICX_IIO_MSR_BW_IN = 1, + ICX_IIO_FREERUNNING_TYPE_MAX = 2, +}; + +enum perf_uncore_icx_imc_freerunning_type_id { + ICX_IMC_DCLK = 0, + ICX_IMC_DDR = 1, + ICX_IMC_DDRT = 2, + ICX_IMC_FREERUNNING_TYPE_MAX = 3, +}; + +enum perf_uncore_iio_freerunning_type_id { + SKX_IIO_MSR_IOCLK = 0, + SKX_IIO_MSR_BW = 1, + SKX_IIO_MSR_UTIL = 2, + SKX_IIO_FREERUNNING_TYPE_MAX = 3, +}; + +enum perf_uncore_snr_iio_freerunning_type_id { + SNR_IIO_MSR_IOCLK = 0, + SNR_IIO_MSR_BW_IN = 1, + SNR_IIO_FREERUNNING_TYPE_MAX = 2, +}; + +enum perf_uncore_snr_imc_freerunning_type_id { + SNR_IMC_DCLK = 0, + SNR_IMC_DDR = 1, + SNR_IMC_FREERUNNING_TYPE_MAX = 2, +}; + +enum perf_uncore_spr_iio_freerunning_type_id { + SPR_IIO_MSR_IOCLK = 0, + SPR_IIO_MSR_BW_IN = 1, + SPR_IIO_MSR_BW_OUT = 2, + SPR_IIO_FREERUNNING_TYPE_MAX = 3, +}; + +enum perf_uncore_spr_imc_freerunning_type_id { + SPR_IMC_DCLK = 0, + SPR_IMC_PQ_CYCLES = 1, + SPR_IMC_FREERUNNING_TYPE_MAX = 2, +}; + +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_256T = 5, + PG_LEVEL_NUM = 6, +}; + +enum pgdat_flags { + PGDAT_DIRTY = 0, + PGDAT_WRITEBACK = 1, + PGDAT_RECLAIM_LOCKED = 2, +}; + +enum pgt_entry { + NORMAL_PMD = 0, + HPAGE_PMD = 1, + NORMAL_PUD = 2, + HPAGE_PUD = 3, +}; + +enum phy_media { + PHY_MEDIA_DEFAULT = 0, + PHY_MEDIA_SR = 1, + PHY_MEDIA_DAC = 2, +}; + +enum phy_mode { + PHY_MODE_INVALID = 0, + PHY_MODE_USB_HOST = 1, + PHY_MODE_USB_HOST_LS = 2, + PHY_MODE_USB_HOST_FS = 3, + PHY_MODE_USB_HOST_HS = 4, + PHY_MODE_USB_HOST_SS = 5, + PHY_MODE_USB_DEVICE = 6, + PHY_MODE_USB_DEVICE_LS = 7, + PHY_MODE_USB_DEVICE_FS = 8, + PHY_MODE_USB_DEVICE_HS = 9, + PHY_MODE_USB_DEVICE_SS = 10, + PHY_MODE_USB_OTG = 11, + PHY_MODE_UFS_HS_A = 12, + PHY_MODE_UFS_HS_B = 13, + PHY_MODE_PCIE = 14, + PHY_MODE_ETHERNET = 15, + PHY_MODE_MIPI_DPHY = 16, + PHY_MODE_SATA = 17, + PHY_MODE_LVDS = 18, + PHY_MODE_DP = 19, +}; + +enum phy_state { + PHY_DOWN = 0, + PHY_READY = 1, + PHY_HALTED = 2, + PHY_ERROR = 3, + PHY_UP = 4, + PHY_RUNNING = 5, + PHY_NOLINK = 6, + PHY_CABLETEST = 7, +}; + +enum phy_state_work { + PHY_STATE_WORK_NONE = 0, + PHY_STATE_WORK_ANEG = 1, + PHY_STATE_WORK_SUSPEND = 2, +}; + +enum phy_tunable_id { + ETHTOOL_PHY_ID_UNSPEC = 0, + ETHTOOL_PHY_DOWNSHIFT = 1, + ETHTOOL_PHY_FAST_LINK_DOWN = 2, + ETHTOOL_PHY_EDPD = 3, + __ETHTOOL_PHY_TUNABLE_COUNT = 4, +}; + +enum phy_upstream { + PHY_UPSTREAM_MAC = 0, + PHY_UPSTREAM_PHY = 1, +}; + +enum phylink_op_type { + PHYLINK_NETDEV = 0, + PHYLINK_DEV = 1, +}; + +enum pid_type { + PIDTYPE_PID = 0, + PIDTYPE_TGID = 1, + PIDTYPE_PGID = 2, + PIDTYPE_SID = 3, + PIDTYPE_MAX = 4, +}; + +enum pidcg_event { + PIDCG_MAX = 0, + PIDCG_FORKFAIL = 1, + NR_PIDCG_EVENTS = 2, +}; + +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 pin_config_param { + PIN_CONFIG_BIAS_BUS_HOLD = 0, + PIN_CONFIG_BIAS_DISABLE = 1, + PIN_CONFIG_BIAS_HIGH_IMPEDANCE = 2, + PIN_CONFIG_BIAS_PULL_DOWN = 3, + PIN_CONFIG_BIAS_PULL_PIN_DEFAULT = 4, + PIN_CONFIG_BIAS_PULL_UP = 5, + PIN_CONFIG_DRIVE_OPEN_DRAIN = 6, + PIN_CONFIG_DRIVE_OPEN_SOURCE = 7, + PIN_CONFIG_DRIVE_PUSH_PULL = 8, + PIN_CONFIG_DRIVE_STRENGTH = 9, + PIN_CONFIG_DRIVE_STRENGTH_UA = 10, + PIN_CONFIG_INPUT_DEBOUNCE = 11, + PIN_CONFIG_INPUT_ENABLE = 12, + PIN_CONFIG_INPUT_SCHMITT = 13, + PIN_CONFIG_INPUT_SCHMITT_ENABLE = 14, + PIN_CONFIG_INPUT_SCHMITT_UV = 15, + PIN_CONFIG_MODE_LOW_POWER = 16, + PIN_CONFIG_MODE_PWM = 17, + PIN_CONFIG_OUTPUT = 18, + PIN_CONFIG_OUTPUT_ENABLE = 19, + PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS = 20, + PIN_CONFIG_PERSIST_STATE = 21, + PIN_CONFIG_POWER_SOURCE = 22, + PIN_CONFIG_SKEW_DELAY = 23, + PIN_CONFIG_SLEEP_HARDWARE_STATE = 24, + PIN_CONFIG_SLEW_RATE = 25, + PIN_CONFIG_END = 127, + PIN_CONFIG_MAX = 255, +}; + +enum pinctrl_map_type { + PIN_MAP_TYPE_INVALID = 0, + PIN_MAP_TYPE_DUMMY_STATE = 1, + PIN_MAP_TYPE_MUX_GROUP = 2, + PIN_MAP_TYPE_CONFIGS_PIN = 3, + PIN_MAP_TYPE_CONFIGS_GROUP = 4, +}; + +enum pkcs7_actions { + ACT_pkcs7_check_content_type = 0, + ACT_pkcs7_extract_cert = 1, + ACT_pkcs7_note_OID = 2, + ACT_pkcs7_note_certificate_list = 3, + ACT_pkcs7_note_content = 4, + ACT_pkcs7_note_data = 5, + ACT_pkcs7_note_signed_info = 6, + ACT_pkcs7_note_signeddata_version = 7, + ACT_pkcs7_note_signerinfo_version = 8, + ACT_pkcs7_sig_note_authenticated_attr = 9, + ACT_pkcs7_sig_note_digest_algo = 10, + ACT_pkcs7_sig_note_issuer = 11, + ACT_pkcs7_sig_note_pkey_algo = 12, + ACT_pkcs7_sig_note_serial = 13, + ACT_pkcs7_sig_note_set_of_authattrs = 14, + ACT_pkcs7_sig_note_signature = 15, + ACT_pkcs7_sig_note_skid = 16, + NR__pkcs7_actions = 17, +}; + +enum pkey_id_type { + PKEY_ID_PGP = 0, + PKEY_ID_X509 = 1, + PKEY_ID_PKCS7 = 2, +}; + +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 pldmfw_update_mode { + PLDMFW_UPDATE_MODE_FULL = 0, + PLDMFW_UPDATE_MODE_SINGLE_COMPONENT = 1, +}; + +enum pm8606_ref_gp_and_osc_clients { + REF_GP_NO_CLIENTS = 0, + WLED1_DUTY = 1, + WLED2_DUTY = 2, + WLED3_DUTY = 4, + RGB1_ENABLE = 8, + RGB2_ENABLE = 16, + LDO_VBR_EN = 32, + REF_GP_MAX_CLIENT = 65535, +}; + +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, +}; + +enum pm_qos_req_action { + PM_QOS_ADD_REQ = 0, + PM_QOS_UPDATE_REQ = 1, + PM_QOS_REMOVE_REQ = 2, +}; + +enum pm_qos_type { + PM_QOS_UNITIALIZED = 0, + PM_QOS_MAX = 1, + PM_QOS_MIN = 2, +}; + +enum pmc_type { + KVM_PMC_GP = 0, + KVM_PMC_FIXED = 1, +}; + +enum poison_cmd_enabled_bits { + CXL_POISON_ENABLED_LIST = 0, + CXL_POISON_ENABLED_INJECT = 1, + CXL_POISON_ENABLED_CLEAR = 2, + CXL_POISON_ENABLED_SCAN_CAPS = 3, + CXL_POISON_ENABLED_SCAN_MEDIA = 4, + CXL_POISON_ENABLED_SCAN_RESULTS = 5, + CXL_POISON_ENABLED_MAX = 6, +}; + +enum policy_opt { + Opt_measure = 0, + Opt_dont_measure = 1, + Opt_appraise = 2, + Opt_dont_appraise = 3, + Opt_audit = 4, + Opt_hash___3 = 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___8 = 45, +}; + +enum policy_rule_list { + IMA_DEFAULT_POLICY = 1, + IMA_CUSTOM_POLICY = 2, +}; + +enum policy_types { + ORIGINAL_TCB = 1, + DEFAULT_TCB = 2, +}; + +enum poll_time_type { + PT_TIMEVAL = 0, + PT_OLD_TIMEVAL = 1, + PT_TIMESPEC = 2, + PT_OLD_TIMESPEC = 3, +}; + +enum polling_modes { + CM_POLL_DISABLE = 0, + CM_POLL_ALWAYS = 1, + CM_POLL_EXTERNAL_POWER_ONLY = 2, + CM_POLL_CHARGING_ONLY = 3, +}; + +enum pool_workqueue_stats { + PWQ_STAT_STARTED = 0, + PWQ_STAT_COMPLETED = 1, + PWQ_STAT_CPU_TIME = 2, + PWQ_STAT_CPU_INTENSIVE = 3, + PWQ_STAT_CM_WAKEUP = 4, + PWQ_STAT_REPATRIATED = 5, + PWQ_STAT_MAYDAY = 6, + PWQ_STAT_RESCUED = 7, + PWQ_NR_STATS = 8, +}; + +enum port_pkey_state { + IB_PORT_PKEY_NOT_VALID = 0, + IB_PORT_PKEY_VALID = 1, + IB_PORT_PKEY_LISTED = 2, +}; + +enum positive_aop_returns { + AOP_WRITEPAGE_ACTIVATE = 524288, + AOP_TRUNCATED_PAGE = 524289, +}; + +enum posix_timer_state { + POSIX_TIMER_DISARMED = 0, + POSIX_TIMER_ARMED = 1, + POSIX_TIMER_REQUEUE_PENDING = 2, +}; + +enum power_supply_charge_behaviour { + POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, + POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, + POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, +}; + +enum power_supply_charge_type { + POWER_SUPPLY_CHARGE_TYPE_UNKNOWN = 0, + POWER_SUPPLY_CHARGE_TYPE_NONE = 1, + POWER_SUPPLY_CHARGE_TYPE_TRICKLE = 2, + POWER_SUPPLY_CHARGE_TYPE_FAST = 3, + POWER_SUPPLY_CHARGE_TYPE_STANDARD = 4, + POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE = 5, + POWER_SUPPLY_CHARGE_TYPE_CUSTOM = 6, + POWER_SUPPLY_CHARGE_TYPE_LONGLIFE = 7, + POWER_SUPPLY_CHARGE_TYPE_BYPASS = 8, +}; + +enum power_supply_notifier_events { + PSY_EVENT_PROP_CHANGED = 0, +}; + +enum power_supply_property { + POWER_SUPPLY_PROP_STATUS = 0, + POWER_SUPPLY_PROP_CHARGE_TYPE = 1, + POWER_SUPPLY_PROP_CHARGE_TYPES = 2, + POWER_SUPPLY_PROP_HEALTH = 3, + POWER_SUPPLY_PROP_PRESENT = 4, + POWER_SUPPLY_PROP_ONLINE = 5, + POWER_SUPPLY_PROP_AUTHENTIC = 6, + POWER_SUPPLY_PROP_TECHNOLOGY = 7, + POWER_SUPPLY_PROP_CYCLE_COUNT = 8, + POWER_SUPPLY_PROP_VOLTAGE_MAX = 9, + POWER_SUPPLY_PROP_VOLTAGE_MIN = 10, + POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 11, + POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 12, + POWER_SUPPLY_PROP_VOLTAGE_NOW = 13, + POWER_SUPPLY_PROP_VOLTAGE_AVG = 14, + POWER_SUPPLY_PROP_VOLTAGE_OCV = 15, + POWER_SUPPLY_PROP_VOLTAGE_BOOT = 16, + POWER_SUPPLY_PROP_CURRENT_MAX = 17, + POWER_SUPPLY_PROP_CURRENT_NOW = 18, + POWER_SUPPLY_PROP_CURRENT_AVG = 19, + POWER_SUPPLY_PROP_CURRENT_BOOT = 20, + POWER_SUPPLY_PROP_POWER_NOW = 21, + POWER_SUPPLY_PROP_POWER_AVG = 22, + POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 23, + POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 24, + POWER_SUPPLY_PROP_CHARGE_FULL = 25, + POWER_SUPPLY_PROP_CHARGE_EMPTY = 26, + POWER_SUPPLY_PROP_CHARGE_NOW = 27, + POWER_SUPPLY_PROP_CHARGE_AVG = 28, + POWER_SUPPLY_PROP_CHARGE_COUNTER = 29, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT = 30, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX = 31, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE = 32, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX = 33, + POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT = 34, + POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX = 35, + POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD = 36, + POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD = 37, + POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR = 38, + POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT = 39, + POWER_SUPPLY_PROP_INPUT_VOLTAGE_LIMIT = 40, + POWER_SUPPLY_PROP_INPUT_POWER_LIMIT = 41, + POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 42, + POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 43, + POWER_SUPPLY_PROP_ENERGY_FULL = 44, + POWER_SUPPLY_PROP_ENERGY_EMPTY = 45, + POWER_SUPPLY_PROP_ENERGY_NOW = 46, + POWER_SUPPLY_PROP_ENERGY_AVG = 47, + POWER_SUPPLY_PROP_CAPACITY = 48, + POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN = 49, + POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX = 50, + POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN = 51, + POWER_SUPPLY_PROP_CAPACITY_LEVEL = 52, + POWER_SUPPLY_PROP_TEMP = 53, + POWER_SUPPLY_PROP_TEMP_MAX = 54, + POWER_SUPPLY_PROP_TEMP_MIN = 55, + POWER_SUPPLY_PROP_TEMP_ALERT_MIN = 56, + POWER_SUPPLY_PROP_TEMP_ALERT_MAX = 57, + POWER_SUPPLY_PROP_TEMP_AMBIENT = 58, + POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN = 59, + POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX = 60, + POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 61, + POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 62, + POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 63, + POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 64, + POWER_SUPPLY_PROP_TYPE = 65, + POWER_SUPPLY_PROP_USB_TYPE = 66, + POWER_SUPPLY_PROP_SCOPE = 67, + POWER_SUPPLY_PROP_PRECHARGE_CURRENT = 68, + POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT = 69, + POWER_SUPPLY_PROP_CALIBRATE = 70, + POWER_SUPPLY_PROP_MANUFACTURE_YEAR = 71, + POWER_SUPPLY_PROP_MANUFACTURE_MONTH = 72, + POWER_SUPPLY_PROP_MANUFACTURE_DAY = 73, + POWER_SUPPLY_PROP_MODEL_NAME = 74, + POWER_SUPPLY_PROP_MANUFACTURER = 75, + POWER_SUPPLY_PROP_SERIAL_NUMBER = 76, +}; + +enum power_supply_type { + POWER_SUPPLY_TYPE_UNKNOWN = 0, + POWER_SUPPLY_TYPE_BATTERY = 1, + POWER_SUPPLY_TYPE_UPS = 2, + POWER_SUPPLY_TYPE_MAINS = 3, + POWER_SUPPLY_TYPE_USB = 4, + POWER_SUPPLY_TYPE_USB_DCP = 5, + POWER_SUPPLY_TYPE_USB_CDP = 6, + POWER_SUPPLY_TYPE_USB_ACA = 7, + POWER_SUPPLY_TYPE_USB_TYPE_C = 8, + POWER_SUPPLY_TYPE_USB_PD = 9, + POWER_SUPPLY_TYPE_USB_PD_DRP = 10, + POWER_SUPPLY_TYPE_APPLE_BRICK_ID = 11, + POWER_SUPPLY_TYPE_WIRELESS = 12, +}; + +enum power_supply_usb_type { + POWER_SUPPLY_USB_TYPE_UNKNOWN = 0, + POWER_SUPPLY_USB_TYPE_SDP = 1, + POWER_SUPPLY_USB_TYPE_DCP = 2, + POWER_SUPPLY_USB_TYPE_CDP = 3, + POWER_SUPPLY_USB_TYPE_ACA = 4, + POWER_SUPPLY_USB_TYPE_C = 5, + POWER_SUPPLY_USB_TYPE_PD = 6, + POWER_SUPPLY_USB_TYPE_PD_DRP = 7, + POWER_SUPPLY_USB_TYPE_PD_PPS = 8, + POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9, +}; + +enum 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 pr_type { + PR_WRITE_EXCLUSIVE = 1, + PR_EXCLUSIVE_ACCESS = 2, + PR_WRITE_EXCLUSIVE_REG_ONLY = 3, + PR_EXCLUSIVE_ACCESS_REG_ONLY = 4, + PR_WRITE_EXCLUSIVE_ALL_REGS = 5, + PR_EXCLUSIVE_ACCESS_ALL_REGS = 6, +}; + +enum prep_dispatch { + PREP_DISPATCH_OK = 0, + PREP_DISPATCH_NO_TAG = 1, + PREP_DISPATCH_NO_BUDGET = 2, +}; + +enum print_line_t { + TRACE_TYPE_PARTIAL_LINE = 0, + TRACE_TYPE_HANDLED = 1, + TRACE_TYPE_UNHANDLED = 2, + TRACE_TYPE_NO_CONSUME = 3, +}; + +enum printk_info_flags { + LOG_FORCE_CON = 1, + LOG_NEWLINE = 2, + LOG_CONT = 8, +}; + +enum prio_policy { + POLICY_NO_CHANGE = 0, + POLICY_PROMOTE_TO_RT = 1, + POLICY_RESTRICT_TO_BE = 2, + POLICY_ALL_TO_IDLE = 3, + POLICY_NONE_TO_RT = 4, +}; + +enum priv_stack_mode { + PRIV_STACK_UNKNOWN = 0, + NO_PRIV_STACK = 1, + PRIV_STACK_ADAPTIVE = 2, +}; + +enum probe_print_type { + PROBE_PRINT_NORMAL = 0, + PROBE_PRINT_RETURN = 1, + PROBE_PRINT_EVENT = 2, +}; + +enum probe_type { + PROBE_DEFAULT_STRATEGY = 0, + PROBE_PREFER_ASYNCHRONOUS = 1, + PROBE_FORCE_SYNCHRONOUS = 2, +}; + +enum proc_cn_event { + PROC_EVENT_NONE = 0, + PROC_EVENT_FORK = 1, + PROC_EVENT_EXEC = 2, + PROC_EVENT_UID = 4, + PROC_EVENT_GID = 64, + PROC_EVENT_SID = 128, + PROC_EVENT_PTRACE = 256, + PROC_EVENT_COMM = 512, + PROC_EVENT_NONZERO_EXIT = 536870912, + PROC_EVENT_COREDUMP = 1073741824, + PROC_EVENT_EXIT = 2147483648, +}; + +enum proc_cn_mcast_op { + PROC_CN_MCAST_LISTEN = 1, + PROC_CN_MCAST_IGNORE = 2, +}; + +enum proc_hidepid { + HIDEPID_OFF = 0, + HIDEPID_NO_ACCESS = 1, + HIDEPID_INVISIBLE = 2, + HIDEPID_NOT_PTRACEABLE = 4, +}; + +enum proc_mem_force { + PROC_MEM_FORCE_ALWAYS = 0, + PROC_MEM_FORCE_PTRACE = 1, + PROC_MEM_FORCE_NEVER = 2, +}; + +enum proc_param { + Opt_gid___7 = 0, + Opt_hidepid = 1, + Opt_subset = 2, +}; + +enum proc_pidonly { + PROC_PIDONLY_OFF = 0, + PROC_PIDONLY_ON = 1, +}; + +enum procmap_query_flags { + PROCMAP_QUERY_VMA_READABLE = 1, + PROCMAP_QUERY_VMA_WRITABLE = 2, + PROCMAP_QUERY_VMA_EXECUTABLE = 4, + PROCMAP_QUERY_VMA_SHARED = 8, + PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16, + PROCMAP_QUERY_FILE_BACKED_VMA = 32, +}; + +enum profile_mode { + APPARMOR_ENFORCE = 0, + APPARMOR_COMPLAIN = 1, + APPARMOR_KILL = 2, + APPARMOR_UNCONFINED = 3, + APPARMOR_USER = 4, +}; + +enum protection_domain_mode { + PD_MODE_V1 = 1, + PD_MODE_V2 = 2, +}; + +enum prs_errcode { + PERR_NONE = 0, + PERR_INVCPUS = 1, + PERR_INVPARENT = 2, + PERR_NOTPART = 3, + PERR_NOTEXCL = 4, + PERR_NOCPUS = 5, + PERR_HOTPLUG = 6, + PERR_CPUSEMPTY = 7, + PERR_HKEEPING = 8, + PERR_ACCESS = 9, + PERR_REMOTE = 10, +}; + +enum ps2_disposition { + PS2_PROCESS = 0, + PS2_IGNORE = 1, + PS2_ERROR = 2, +}; + +enum psc_op { + SNP_PAGE_STATE_PRIVATE = 1, + SNP_PAGE_STATE_SHARED = 2, +}; + +enum pse_pi_pairset_pinout { + ALTERNATIVE_A = 0, + ALTERNATIVE_B = 1, +}; + +enum psi_aggregators { + PSI_AVGS = 0, + PSI_POLL = 1, + NR_PSI_AGGREGATORS = 2, +}; + +enum psi_res { + PSI_IO = 0, + PSI_MEM = 1, + PSI_CPU = 2, + NR_PSI_RESOURCES = 3, +}; + +enum psi_states { + PSI_IO_SOME = 0, + PSI_IO_FULL = 1, + PSI_MEM_SOME = 2, + PSI_MEM_FULL = 3, + PSI_CPU_SOME = 4, + PSI_CPU_FULL = 5, + PSI_NONIDLE = 6, + NR_PSI_STATES = 7, +}; + +enum psi_task_count { + NR_IOWAIT = 0, + NR_MEMSTALL = 1, + NR_RUNNING = 2, + NR_MEMSTALL_RUNNING = 3, + NR_PSI_TASK_COUNTS = 4, +}; + +enum pstore_type_id { + PSTORE_TYPE_DMESG = 0, + PSTORE_TYPE_MCE = 1, + PSTORE_TYPE_CONSOLE = 2, + PSTORE_TYPE_FTRACE = 3, + PSTORE_TYPE_PPC_RTAS = 4, + PSTORE_TYPE_PPC_OF = 5, + PSTORE_TYPE_PPC_COMMON = 6, + PSTORE_TYPE_PMSG = 7, + PSTORE_TYPE_PPC_OPAL = 8, + PSTORE_TYPE_MAX = 9, +}; + +enum 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 pt_level { + PT_PGD = 0, + PT_P4D = 1, + PT_PUD = 2, + PT_PMD = 3, + PT_PTE = 4, +}; + +enum pti_clone_level { + PTI_CLONE_PMD = 0, + PTI_CLONE_PTE = 1, +}; + +enum pti_mode { + PTI_AUTO = 0, + PTI_FORCE_OFF = 1, + PTI_FORCE_ON = 2, +}; + +enum ptp_clock_events { + PTP_CLOCK_ALARM = 0, + PTP_CLOCK_EXTTS = 1, + PTP_CLOCK_EXTOFF = 2, + PTP_CLOCK_PPS = 3, + PTP_CLOCK_PPSUSR = 4, +}; + +enum ptp_pin_function { + PTP_PF_NONE = 0, + PTP_PF_EXTTS = 1, + PTP_PF_PEROUT = 2, + PTP_PF_PHYSYNC = 3, +}; + +enum pubkey_algo { + PUBKEY_ALGO_RSA = 0, + PUBKEY_ALGO_MAX = 1, +}; + +enum pwm_polarity { + PWM_POLARITY_NORMAL = 0, + PWM_POLARITY_INVERSED = 1, +}; + +enum pxa_ssp_type { + SSP_UNDEFINED = 0, + PXA25x_SSP = 1, + PXA25x_NSSP = 2, + PXA27x_SSP = 3, + PXA3xx_SSP = 4, + PXA168_SSP = 5, + PXA910_SSP = 6, + CE4100_SSP = 7, + MMP2_SSP = 8, + MRFLD_SSP = 9, + QUARK_X1000_SSP = 10, + LPSS_LPT_SSP = 11, + LPSS_BYT_SSP = 12, + LPSS_BSW_SSP = 13, + LPSS_SPT_SSP = 14, + LPSS_BXT_SSP = 15, + LPSS_CNL_SSP = 16, + SSP_MAX = 17, +}; + +enum qdisc_class_ops_flags { + QDISC_CLASS_OPS_DOIT_UNLOCKED = 1, +}; + +enum qdisc_state2_t { + __QDISC_STATE2_RUNNING = 0, +}; + +enum qdisc_state_t { + __QDISC_STATE_SCHED = 0, + __QDISC_STATE_DEACTIVATED = 1, + __QDISC_STATE_MISSED = 2, + __QDISC_STATE_DRAINING = 3, +}; + +enum quota_type { + USRQUOTA = 0, + GRPQUOTA = 1, + PRJQUOTA = 2, +}; + +enum ramfs_param { + Opt_mode___5 = 0, +}; + +enum rdma_ah_attr_type { + RDMA_AH_ATTR_TYPE_UNDEFINED = 0, + RDMA_AH_ATTR_TYPE_IB = 1, + RDMA_AH_ATTR_TYPE_ROCE = 2, + RDMA_AH_ATTR_TYPE_OPA = 3, +}; + +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 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 rdma_nl_counter_mask { + RDMA_COUNTER_MASK_QP_TYPE = 1, + RDMA_COUNTER_MASK_PID = 2, +}; + +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_dev_type { + RDMA_DEVICE_TYPE_SMI = 1, +}; + +enum rdma_nl_name_assign_type { + RDMA_NAME_ASSIGN_TYPE_UNKNOWN = 0, + RDMA_NAME_ASSIGN_TYPE_USER = 1, +}; + +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, +}; + +enum rdmacg_file_type { + RDMACG_RESOURCE_TYPE_MAX = 0, + RDMACG_RESOURCE_TYPE_STAT = 1, +}; + +enum rdmacg_resource_type { + RDMACG_RESOURCE_HCA_HANDLE = 0, + RDMACG_RESOURCE_HCA_OBJECT = 1, + RDMACG_RESOURCE_MAX = 2, +}; + +enum rdt_group_type { + RDTCTRL_GROUP = 0, + RDTMON_GROUP = 1, + RDT_NUM_GROUP = 2, +}; + +enum rdt_param { + Opt_cdp = 0, + Opt_cdpl2 = 1, + Opt_mba_mbps = 2, + Opt_debug___3 = 3, + nr__rdt_params = 4, +}; + +enum rdtgrp_mode { + RDT_MODE_SHAREABLE = 0, + RDT_MODE_EXCLUSIVE = 1, + RDT_MODE_PSEUDO_LOCKSETUP = 2, + RDT_MODE_PSEUDO_LOCKED = 3, + RDT_NUM_MODES = 4, +}; + +enum reason_type { + NOT_ME = 0, + NOTHING = 1, + REG_READ = 2, + REG_WRITE = 3, + IMM_WRITE = 4, + OTHERS = 5, +}; + +enum reboot_mode { + REBOOT_UNDEFINED = -1, + REBOOT_COLD = 0, + REBOOT_WARM = 1, + REBOOT_HARD = 2, + REBOOT_SOFT = 3, + REBOOT_GPIO = 4, +}; + +enum reboot_type { + BOOT_TRIPLE = 116, + BOOT_KBD = 107, + BOOT_BIOS = 98, + BOOT_ACPI = 97, + BOOT_EFI = 101, + BOOT_CF9_FORCE = 112, + BOOT_CF9_SAFE = 113, +}; + +enum recovery_flags { + MD_RECOVERY_NEEDED = 0, + MD_RECOVERY_RUNNING = 1, + MD_RECOVERY_INTR = 2, + MD_RECOVERY_DONE = 3, + MD_RECOVERY_FROZEN = 4, + MD_RECOVERY_WAIT = 5, + MD_RECOVERY_ERROR = 6, + MD_RECOVERY_SYNC = 7, + MD_RECOVERY_REQUESTED = 8, + MD_RECOVERY_CHECK = 9, + MD_RECOVERY_RECOVER = 10, + MD_RECOVERY_RESHAPE = 11, + MD_RESYNCING_REMOTE = 12, +}; + +enum ref_state_type { + REF_TYPE_PTR = 1, + REF_TYPE_IRQ = 2, + REF_TYPE_LOCK = 3, +}; + +enum refcount_saturation_type { + REFCOUNT_ADD_NOT_ZERO_OVF = 0, + REFCOUNT_ADD_OVF = 1, + REFCOUNT_ADD_UAF = 2, + REFCOUNT_SUB_UAF = 3, + REFCOUNT_DEC_LEAK = 4, +}; + +enum reg_arg_type { + SRC_OP = 0, + DST_OP = 1, + DST_OP_NO_MARK = 2, +}; + +enum reg_type { + REG_TYPE_RM = 0, + REG_TYPE_REG = 1, + REG_TYPE_INDEX = 2, + REG_TYPE_BASE = 3, +}; + +enum regcache_type { + REGCACHE_NONE = 0, + REGCACHE_RBTREE = 1, + REGCACHE_FLAT = 2, + REGCACHE_MAPLE = 3, +}; + +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 regmap_endian { + REGMAP_ENDIAN_DEFAULT = 0, + REGMAP_ENDIAN_BIG = 1, + REGMAP_ENDIAN_LITTLE = 2, + REGMAP_ENDIAN_NATIVE = 3, +}; + +enum regnames { + GDB_AX = 0, + GDB_BX = 1, + GDB_CX = 2, + GDB_DX = 3, + GDB_SI = 4, + GDB_DI = 5, + GDB_BP = 6, + GDB_SP = 7, + GDB_R8 = 8, + GDB_R9 = 9, + GDB_R10 = 10, + GDB_R11 = 11, + GDB_R12 = 12, + GDB_R13 = 13, + GDB_R14 = 14, + GDB_R15 = 15, + GDB_PC = 16, + GDB_PS = 17, + GDB_CS = 18, + GDB_SS = 19, + GDB_DS = 20, + GDB_ES = 21, + GDB_FS = 22, + GDB_GS = 23, +}; + +enum regulator_active_discharge { + REGULATOR_ACTIVE_DISCHARGE_DEFAULT = 0, + REGULATOR_ACTIVE_DISCHARGE_DISABLE = 1, + REGULATOR_ACTIVE_DISCHARGE_ENABLE = 2, +}; + +enum regulator_detection_severity { + REGULATOR_SEVERITY_PROT = 0, + REGULATOR_SEVERITY_ERR = 1, + REGULATOR_SEVERITY_WARN = 2, +}; + +enum regulator_get_type { + NORMAL_GET = 0, + EXCLUSIVE_GET = 1, + OPTIONAL_GET = 2, + MAX_GET_TYPE = 3, +}; + +enum regulator_status { + REGULATOR_STATUS_OFF = 0, + REGULATOR_STATUS_ON = 1, + REGULATOR_STATUS_ERROR = 2, + REGULATOR_STATUS_FAST = 3, + REGULATOR_STATUS_NORMAL = 4, + REGULATOR_STATUS_IDLE = 5, + REGULATOR_STATUS_STANDBY = 6, + REGULATOR_STATUS_BYPASS = 7, + REGULATOR_STATUS_UNDEFINED = 8, +}; + +enum regulator_type { + REGULATOR_VOLTAGE = 0, + REGULATOR_CURRENT = 1, +}; + +enum release_type { + leaf_only = 0, + whole_subtree = 1, +}; + +enum req_flag_bits { + __REQ_FAILFAST_DEV = 8, + __REQ_FAILFAST_TRANSPORT = 9, + __REQ_FAILFAST_DRIVER = 10, + __REQ_SYNC = 11, + __REQ_META = 12, + __REQ_PRIO = 13, + __REQ_NOMERGE = 14, + __REQ_IDLE = 15, + __REQ_INTEGRITY = 16, + __REQ_FUA = 17, + __REQ_PREFLUSH = 18, + __REQ_RAHEAD = 19, + __REQ_BACKGROUND = 20, + __REQ_NOWAIT = 21, + __REQ_POLLED = 22, + __REQ_ALLOC_CACHE = 23, + __REQ_SWAP = 24, + __REQ_DRV = 25, + __REQ_FS_PRIVATE = 26, + __REQ_ATOMIC = 27, + __REQ_NOUNMAP = 28, + __REQ_NR_BITS = 29, +}; + +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_ZONE_APPEND = 7, + REQ_OP_WRITE_ZEROES = 9, + REQ_OP_ZONE_OPEN = 10, + REQ_OP_ZONE_CLOSE = 11, + REQ_OP_ZONE_FINISH = 12, + REQ_OP_ZONE_RESET = 13, + REQ_OP_ZONE_RESET_ALL = 15, + REQ_OP_DRV_IN = 34, + REQ_OP_DRV_OUT = 35, + REQ_OP_LAST = 36, +}; + +enum resctrl_conf_type { + CDP_NONE = 0, + CDP_CODE = 1, + CDP_DATA = 2, +}; + +enum resctrl_domain_type { + RESCTRL_CTRL_DOMAIN = 0, + RESCTRL_MON_DOMAIN = 1, +}; + +enum resctrl_event_id { + QOS_L3_OCCUP_EVENT_ID = 1, + QOS_L3_MBM_TOTAL_EVENT_ID = 2, + QOS_L3_MBM_LOCAL_EVENT_ID = 3, +}; + +enum resctrl_res_level { + RDT_RESOURCE_L3 = 0, + RDT_RESOURCE_L2 = 1, + RDT_RESOURCE_MBA = 2, + RDT_RESOURCE_SMBA = 3, + RDT_NUM_RESOURCES = 4, +}; + +enum resctrl_scope { + RESCTRL_L2_CACHE = 2, + RESCTRL_L3_CACHE = 3, + RESCTRL_L3_NODE = 4, +}; + +enum reset_control_flags { + RESET_CONTROL_EXCLUSIVE = 4, + RESET_CONTROL_EXCLUSIVE_DEASSERTED = 12, + RESET_CONTROL_EXCLUSIVE_RELEASED = 0, + RESET_CONTROL_SHARED = 1, + RESET_CONTROL_SHARED_DEASSERTED = 9, + RESET_CONTROL_OPTIONAL_EXCLUSIVE = 6, + RESET_CONTROL_OPTIONAL_EXCLUSIVE_DEASSERTED = 14, + RESET_CONTROL_OPTIONAL_EXCLUSIVE_RELEASED = 2, + RESET_CONTROL_OPTIONAL_SHARED = 3, + RESET_CONTROL_OPTIONAL_SHARED_DEASSERTED = 11, +}; + +enum resolve_mode { + RESOLVE_TBD = 0, + RESOLVE_PTR = 1, + RESOLVE_STRUCT_OR_ARRAY = 2, +}; + +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 retbleed_mitigation_cmd { + RETBLEED_CMD_OFF = 0, + RETBLEED_CMD_AUTO = 1, + RETBLEED_CMD_UNRET = 2, + RETBLEED_CMD_IBPB = 3, + RETBLEED_CMD_STUFF = 4, +}; + +enum rfds_mitigations { + RFDS_MITIGATION_OFF = 0, + RFDS_MITIGATION_VERW = 1, + RFDS_MITIGATION_UCODE_NEEDED = 2, +}; + +enum rfkill_hard_block_reasons { + RFKILL_HARD_BLOCK_SIGNAL = 1, + RFKILL_HARD_BLOCK_NOT_OWNER = 2, +}; + +enum rfkill_input_master_mode { + RFKILL_INPUT_MASTER_UNLOCK = 0, + RFKILL_INPUT_MASTER_RESTORE = 1, + RFKILL_INPUT_MASTER_UNBLOCKALL = 2, + NUM_RFKILL_INPUT_MASTER_MODES = 3, +}; + +enum rfkill_operation { + RFKILL_OP_ADD = 0, + RFKILL_OP_DEL = 1, + RFKILL_OP_CHANGE = 2, + RFKILL_OP_CHANGE_ALL = 3, +}; + +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_type { + RFKILL_TYPE_ALL = 0, + RFKILL_TYPE_WLAN = 1, + RFKILL_TYPE_BLUETOOTH = 2, + RFKILL_TYPE_UWB = 3, + RFKILL_TYPE_WIMAX = 4, + RFKILL_TYPE_WWAN = 5, + RFKILL_TYPE_GPS = 6, + RFKILL_TYPE_FM = 7, + RFKILL_TYPE_NFC = 8, + NUM_RFKILL_TYPES = 9, +}; + +enum rfkill_user_states { + RFKILL_USER_STATE_SOFT_BLOCKED = 0, + RFKILL_USER_STATE_UNBLOCKED = 1, + RFKILL_USER_STATE_HARD_BLOCKED = 2, +}; + +enum ring_buffer_flags { + RB_FL_OVERWRITE = 1, +}; + +enum ring_buffer_type { + RINGBUF_TYPE_DATA_TYPE_LEN_MAX = 28, + RINGBUF_TYPE_PADDING = 29, + RINGBUF_TYPE_TIME_EXTEND = 30, + RINGBUF_TYPE_TIME_STAMP = 31, +}; + +enum rio_device_state { + RIO_DEVICE_INITIALIZING = 0, + RIO_DEVICE_RUNNING = 1, + RIO_DEVICE_GONE = 2, + RIO_DEVICE_SHUTDOWN = 3, +}; + +enum rio_write_type { + RDW_DEFAULT = 0, + RDW_ALL_NWRITE = 1, + RDW_ALL_NWRITE_R = 2, + RDW_LAST_NWRITE_R = 3, +}; + +enum rlimit_type { + UCOUNT_RLIMIT_NPROC = 0, + UCOUNT_RLIMIT_MSGQUEUE = 1, + UCOUNT_RLIMIT_SIGPENDING = 2, + UCOUNT_RLIMIT_MEMLOCK = 3, + UCOUNT_RLIMIT_COUNTS = 4, +}; + +enum rmap_level { + RMAP_LEVEL_PTE = 0, + RMAP_LEVEL_PMD = 1, +}; + +enum rmp_flags { + RMP_LOCKED = 1, + RMP_USE_SHARED_ZEROPAGE = 2, +}; + +enum rmqueue_mode { + RMQUEUE_NORMAL = 0, + RMQUEUE_CMA = 1, + RMQUEUE_CLAIM = 2, + RMQUEUE_STEAL = 3, +}; + +enum rp_check { + RP_CHECK_CALL = 0, + RP_CHECK_CHAIN_CALL = 1, + RP_CHECK_RET = 2, +}; + +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, +}; + +enum rpm_request { + RPM_REQ_NONE = 0, + RPM_REQ_IDLE = 1, + RPM_REQ_SUSPEND = 2, + RPM_REQ_AUTOSUSPEND = 3, + RPM_REQ_RESUME = 4, +}; + +enum rpm_status { + RPM_INVALID = -1, + RPM_ACTIVE = 0, + RPM_RESUMING = 1, + RPM_SUSPENDED = 2, + RPM_SUSPENDING = 3, +}; + +enum rproc_crash_type { + RPROC_MMUFAULT = 0, + RPROC_WATCHDOG = 1, + RPROC_FATAL_ERROR = 2, +}; + +enum rproc_dump_mechanism { + RPROC_COREDUMP_DISABLED = 0, + RPROC_COREDUMP_ENABLED = 1, + RPROC_COREDUMP_INLINE = 2, +}; + +enum rproc_features { + RPROC_FEAT_ATTACH_ON_RECOVERY = 0, + RPROC_MAX_FEATURES = 1, +}; + +enum rproc_state { + RPROC_OFFLINE = 0, + RPROC_SUSPENDED = 1, + RPROC_RUNNING = 2, + RPROC_CRASHED = 3, + RPROC_DELETED = 4, + RPROC_ATTACHED = 5, + RPROC_DETACHED = 6, + RPROC_LAST = 7, +}; + +enum rq_end_io_ret { + RQ_END_IO_NONE = 0, + RQ_END_IO_FREE = 1, +}; + +enum rq_qos_id { + RQ_QOS_WBT = 0, + RQ_QOS_LATENCY = 1, + RQ_QOS_COST = 2, +}; + +enum rqf_flags { + __RQF_STARTED = 0, + __RQF_FLUSH_SEQ = 1, + __RQF_MIXED_MERGE = 2, + __RQF_DONTPREP = 3, + __RQF_SCHED_TAGS = 4, + __RQF_USE_SCHED = 5, + __RQF_FAILED = 6, + __RQF_QUIET = 7, + __RQF_IO_STAT = 8, + __RQF_PM = 9, + __RQF_HASHED = 10, + __RQF_STATS = 11, + __RQF_SPECIAL_PAYLOAD = 12, + __RQF_ZONE_WRITE_PLUGGING = 13, + __RQF_TIMED_OUT = 14, + __RQF_RESV = 15, + __RQF_BITS = 16, +}; + +enum rsaprivkey_actions { + ACT_rsa_get_d = 0, + ACT_rsa_get_dp = 1, + ACT_rsa_get_dq = 2, + ACT_rsa_get_e = 3, + ACT_rsa_get_n = 4, + ACT_rsa_get_p = 5, + ACT_rsa_get_q = 6, + ACT_rsa_get_qinv = 7, + NR__rsaprivkey_actions = 8, +}; + +enum rsapubkey_actions { + ACT_rsa_get_e___2 = 0, + ACT_rsa_get_n___2 = 1, + NR__rsapubkey_actions = 2, +}; + +enum rsc_handling_status { + RSC_HANDLED = 0, + RSC_IGNORED = 1, +}; + +enum rseq_cpu_id_state { + RSEQ_CPU_ID_UNINITIALIZED = -1, + RSEQ_CPU_ID_REGISTRATION_FAILED = -2, +}; + +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_cs_flags_bit { + RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT_BIT = 0, + RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL_BIT = 1, + RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE_BIT = 2, +}; + +enum rseq_event_mask_bits { + RSEQ_EVENT_PREEMPT_BIT = 0, + RSEQ_EVENT_SIGNAL_BIT = 1, + RSEQ_EVENT_MIGRATE_BIT = 2, +}; + +enum rseq_flags { + RSEQ_FLAG_UNREGISTER = 1, +}; + +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 rt_class_t { + RT_TABLE_UNSPEC = 0, + RT_TABLE_COMPAT = 252, + RT_TABLE_DEFAULT = 253, + RT_TABLE_MAIN = 254, + RT_TABLE_LOCAL = 255, + RT_TABLE_MAX = 4294967295, +}; + +enum rt_scope_t { + RT_SCOPE_UNIVERSE = 0, + RT_SCOPE_SITE = 200, + RT_SCOPE_LINK = 253, + RT_SCOPE_HOST = 254, + RT_SCOPE_NOWHERE = 255, +}; + +enum rtattr_type_t { + RTA_UNSPEC = 0, + RTA_DST = 1, + RTA_SRC = 2, + RTA_IIF = 3, + RTA_OIF = 4, + RTA_GATEWAY = 5, + RTA_PRIORITY = 6, + RTA_PREFSRC = 7, + RTA_METRICS = 8, + RTA_MULTIPATH = 9, + RTA_PROTOINFO = 10, + RTA_FLOW = 11, + RTA_CACHEINFO = 12, + RTA_SESSION = 13, + RTA_MP_ALGO = 14, + RTA_TABLE = 15, + RTA_MARK = 16, + RTA_MFC_STATS = 17, + RTA_VIA = 18, + RTA_NEWDST = 19, + RTA_PREF = 20, + RTA_ENCAP_TYPE = 21, + RTA_ENCAP = 22, + RTA_EXPIRES = 23, + RTA_PAD = 24, + RTA_UID = 25, + RTA_TTL_PROPAGATE = 26, + RTA_IP_PROTO = 27, + RTA_SPORT = 28, + RTA_DPORT = 29, + RTA_NH_ID = 30, + RTA_FLOWLABEL = 31, + __RTA_MAX = 32, +}; + +enum rtmutex_chainwalk { + RT_MUTEX_MIN_CHAINWALK = 0, + RT_MUTEX_FULL_CHAINWALK = 1, +}; + +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_IPV4_MCADDR = 37, + RTNLGRP_IPV6_MCADDR = 38, + RTNLGRP_IPV6_ACADDR = 39, + __RTNLGRP_MAX = 40, +}; + +enum rtnl_kinds { + RTNL_KIND_NEW = 0, + RTNL_KIND_DEL = 1, + RTNL_KIND_GET = 2, + RTNL_KIND_SET = 3, +}; + +enum rtnl_link_flags { + RTNL_FLAG_DOIT_UNLOCKED = 1, + RTNL_FLAG_BULK_DEL_SUPPORTED = 2, + RTNL_FLAG_DUMP_UNLOCKED = 4, + RTNL_FLAG_DUMP_SPLIT_NLM_DONE = 8, +}; + +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, +} __attribute__((mode(byte))); + +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 rwsig_action { + RWSIG_ACTION_ABORT = 0, + RWSIG_ACTION_CONTINUE = 1, +}; + +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; + +enum s2idle_states { + S2IDLE_STATE_NONE = 0, + S2IDLE_STATE_ENTER = 1, + S2IDLE_STATE_WAKE = 2, +}; + +enum s_alloc { + sa_rootdomain = 0, + sa_sd = 1, + sa_sd_storage = 2, + sa_none = 3, +}; + +enum sam_status { + SAM_STAT_GOOD = 0, + SAM_STAT_CHECK_CONDITION = 2, + SAM_STAT_CONDITION_MET = 4, + SAM_STAT_BUSY = 8, + SAM_STAT_INTERMEDIATE = 16, + SAM_STAT_INTERMEDIATE_CONDITION_MET = 20, + SAM_STAT_RESERVATION_CONFLICT = 24, + SAM_STAT_COMMAND_TERMINATED = 34, + SAM_STAT_TASK_SET_FULL = 40, + SAM_STAT_ACA_ACTIVE = 48, + SAM_STAT_TASK_ABORTED = 64, +}; + +enum scan_balance { + SCAN_EQUAL = 0, + SCAN_FRACT = 1, + SCAN_ANON = 2, + SCAN_FILE = 3, +}; + +enum scan_result { + SCAN_FAIL = 0, + SCAN_SUCCEED = 1, + SCAN_PMD_NULL = 2, + SCAN_PMD_NONE = 3, + SCAN_PMD_MAPPED = 4, + SCAN_EXCEED_NONE_PTE = 5, + SCAN_EXCEED_SWAP_PTE = 6, + SCAN_EXCEED_SHARED_PTE = 7, + SCAN_PTE_NON_PRESENT = 8, + SCAN_PTE_UFFD_WP = 9, + SCAN_PTE_MAPPED_HUGEPAGE = 10, + SCAN_PAGE_RO = 11, + SCAN_LACK_REFERENCED_PAGE = 12, + SCAN_PAGE_NULL = 13, + SCAN_SCAN_ABORT = 14, + SCAN_PAGE_COUNT = 15, + SCAN_PAGE_LRU = 16, + SCAN_PAGE_LOCK = 17, + SCAN_PAGE_ANON = 18, + SCAN_PAGE_COMPOUND = 19, + SCAN_ANY_PROCESS = 20, + SCAN_VMA_NULL = 21, + SCAN_VMA_CHECK = 22, + SCAN_ADDRESS_RANGE = 23, + SCAN_DEL_PAGE_LRU = 24, + SCAN_ALLOC_HUGE_PAGE_FAIL = 25, + SCAN_CGROUP_CHARGE_FAIL = 26, + SCAN_TRUNCATED = 27, + SCAN_PAGE_HAS_PRIVATE = 28, + SCAN_STORE_FAILED = 29, + SCAN_COPY_MC = 30, + SCAN_PAGE_FILLED = 31, +}; + +enum sched_tunable_scaling { + SCHED_TUNABLESCALING_NONE = 0, + SCHED_TUNABLESCALING_LOG = 1, + SCHED_TUNABLESCALING_LINEAR = 2, + SCHED_TUNABLESCALING_END = 3, +}; + +enum scrub_type { + SCRUB_UNKNOWN = 0, + SCRUB_NONE = 1, + SCRUB_SW_PROG = 2, + SCRUB_SW_SRC = 3, + SCRUB_SW_PROG_SRC = 4, + SCRUB_SW_TUNABLE = 5, + SCRUB_HW_PROG = 6, + SCRUB_HW_SRC = 7, + SCRUB_HW_PROG_SRC = 8, + SCRUB_HW_TUNABLE = 9, +}; + +enum scsi_cmnd_submitter { + SUBMITTED_BY_BLOCK_LAYER = 0, + SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, + SUBMITTED_BY_SCSI_RESET_IOCTL = 2, +} __attribute__((mode(byte))); + +enum scsi_device_event { + SDEV_EVT_MEDIA_CHANGE = 1, + SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2, + SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3, + SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4, + SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5, + SDEV_EVT_LUN_CHANGE_REPORTED = 6, + SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7, + SDEV_EVT_POWER_ON_RESET_OCCURRED = 8, + SDEV_EVT_FIRST = 1, + SDEV_EVT_LAST = 8, + SDEV_EVT_MAXBITS = 9, +}; + +enum scsi_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_devinfo_key { + SCSI_DEVINFO_GLOBAL = 0, + SCSI_DEVINFO_SPI = 1, +}; + +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_host_guard_type { + SHOST_DIX_GUARD_CRC = 1, + SHOST_DIX_GUARD_IP = 2, +}; + +enum scsi_host_prot_capabilities { + SHOST_DIF_TYPE1_PROTECTION = 1, + SHOST_DIF_TYPE2_PROTECTION = 2, + SHOST_DIF_TYPE3_PROTECTION = 4, + SHOST_DIX_TYPE0_PROTECTION = 8, + SHOST_DIX_TYPE1_PROTECTION = 16, + SHOST_DIX_TYPE2_PROTECTION = 32, + SHOST_DIX_TYPE3_PROTECTION = 64, +}; + +enum scsi_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, + SCSIML_STAT_DL_TIMEOUT = 5, +}; + +enum scsi_msg_byte { + COMMAND_COMPLETE = 0, + EXTENDED_MESSAGE = 1, + SAVE_POINTERS = 2, + RESTORE_POINTERS = 3, + DISCONNECT = 4, + INITIATOR_ERROR = 5, + ABORT_TASK_SET = 6, + MESSAGE_REJECT = 7, + NOP___2 = 8, + MSG_PARITY_ERROR = 9, + LINKED_CMD_COMPLETE = 10, + LINKED_FLG_CMD_COMPLETE = 11, + TARGET_RESET = 12, + ABORT_TASK = 13, + CLEAR_TASK_SET = 14, + INITIATE_RECOVERY = 15, + RELEASE_RECOVERY = 16, + TERMINATE_IO_PROC = 17, + CLEAR_ACA = 22, + LOGICAL_UNIT_RESET = 23, + SIMPLE_QUEUE_TAG = 32, + HEAD_OF_QUEUE_TAG = 33, + ORDERED_QUEUE_TAG = 34, + IGNORE_WIDE_RESIDUE = 35, + ACA = 36, + QAS_REQUEST = 85, + BUS_DEVICE_RESET = 12, + ABORT = 6, +}; + +enum scsi_pr_type { + SCSI_PR_WRITE_EXCLUSIVE = 1, + SCSI_PR_EXCLUSIVE_ACCESS = 3, + SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, + SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, + SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, + SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, +}; + +enum 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 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 scsi_scan_mode { + SCSI_SCAN_INITIAL = 0, + SCSI_SCAN_RESCAN = 1, + SCSI_SCAN_MANUAL = 2, +}; + +enum scsi_target_state { + STARGET_CREATED = 1, + STARGET_RUNNING = 2, + STARGET_REMOVE = 3, + STARGET_CREATED_REMOVE = 4, + STARGET_DEL = 5, +}; + +enum scsi_timeout_action { + SCSI_EH_DONE = 0, + SCSI_EH_RESET_TIMER = 1, + SCSI_EH_NOT_HANDLED = 2, +}; + +enum scsi_timeouts { + SCSI_DEFAULT_EH_TIMEOUT = 10000, +}; + +enum scsi_vpd_parameters { + SCSI_VPD_HEADER_SIZE = 4, + SCSI_VPD_LIST_SIZE = 36, +}; + +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_conntrack { + SCTP_CONNTRACK_NONE = 0, + SCTP_CONNTRACK_CLOSED = 1, + SCTP_CONNTRACK_COOKIE_WAIT = 2, + SCTP_CONNTRACK_COOKIE_ECHOED = 3, + SCTP_CONNTRACK_ESTABLISHED = 4, + SCTP_CONNTRACK_SHUTDOWN_SENT = 5, + SCTP_CONNTRACK_SHUTDOWN_RECD = 6, + SCTP_CONNTRACK_SHUTDOWN_ACK_SENT = 7, + SCTP_CONNTRACK_HEARTBEAT_SENT = 8, + SCTP_CONNTRACK_HEARTBEAT_ACKED = 9, + SCTP_CONNTRACK_MAX = 10, +}; + +enum sctp_endpoint_type { + SCTP_EP_TYPE_SOCKET = 0, + SCTP_EP_TYPE_ASSOCIATION = 1, +}; + +enum sctp_event_timeout { + SCTP_EVENT_TIMEOUT_NONE = 0, + SCTP_EVENT_TIMEOUT_T1_COOKIE = 1, + SCTP_EVENT_TIMEOUT_T1_INIT = 2, + SCTP_EVENT_TIMEOUT_T2_SHUTDOWN = 3, + SCTP_EVENT_TIMEOUT_T3_RTX = 4, + SCTP_EVENT_TIMEOUT_T4_RTO = 5, + SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD = 6, + SCTP_EVENT_TIMEOUT_HEARTBEAT = 7, + SCTP_EVENT_TIMEOUT_RECONF = 8, + SCTP_EVENT_TIMEOUT_PROBE = 9, + SCTP_EVENT_TIMEOUT_SACK = 10, + SCTP_EVENT_TIMEOUT_AUTOCLOSE = 11, +}; + +enum sctp_msg_flags { + MSG_NOTIFICATION = 32768, +}; + +enum sctp_param { + SCTP_PARAM_HEARTBEAT_INFO = 256, + SCTP_PARAM_IPV4_ADDRESS = 1280, + SCTP_PARAM_IPV6_ADDRESS = 1536, + SCTP_PARAM_STATE_COOKIE = 1792, + SCTP_PARAM_UNRECOGNIZED_PARAMETERS = 2048, + SCTP_PARAM_COOKIE_PRESERVATIVE = 2304, + SCTP_PARAM_HOST_NAME_ADDRESS = 2816, + SCTP_PARAM_SUPPORTED_ADDRESS_TYPES = 3072, + SCTP_PARAM_ECN_CAPABLE = 128, + SCTP_PARAM_RANDOM = 640, + SCTP_PARAM_CHUNKS = 896, + SCTP_PARAM_HMAC_ALGO = 1152, + SCTP_PARAM_SUPPORTED_EXT = 2176, + SCTP_PARAM_FWD_TSN_SUPPORT = 192, + SCTP_PARAM_ADD_IP = 448, + SCTP_PARAM_DEL_IP = 704, + SCTP_PARAM_ERR_CAUSE = 960, + SCTP_PARAM_SET_PRIMARY = 1216, + SCTP_PARAM_SUCCESS_REPORT = 1472, + SCTP_PARAM_ADAPTATION_LAYER_IND = 1728, + SCTP_PARAM_RESET_OUT_REQUEST = 3328, + SCTP_PARAM_RESET_IN_REQUEST = 3584, + SCTP_PARAM_RESET_TSN_REQUEST = 3840, + SCTP_PARAM_RESET_RESPONSE = 4096, + SCTP_PARAM_RESET_ADD_OUT_STREAMS = 4352, + SCTP_PARAM_RESET_ADD_IN_STREAMS = 4608, +}; + +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_socket_type { + SCTP_SOCKET_UDP = 0, + SCTP_SOCKET_UDP_HIGH_BANDWIDTH = 1, + SCTP_SOCKET_TCP = 2, +}; + +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, +}; + +enum scx_consts { + SCX_DSP_DFL_MAX_BATCH = 32, + SCX_DSP_MAX_LOOPS = 32, + SCX_WATCHDOG_MAX_TIMEOUT = 30000, + SCX_EXIT_BT_LEN = 64, + SCX_EXIT_MSG_LEN = 1024, + SCX_EXIT_DUMP_DFL_LEN = 32768, + SCX_CPUPERF_ONE = 1024, + SCX_OPS_TASK_ITER_BATCH = 32, +}; + +enum scx_cpu_preempt_reason { + SCX_CPU_PREEMPT_RT = 0, + SCX_CPU_PREEMPT_DL = 1, + SCX_CPU_PREEMPT_STOP = 2, + SCX_CPU_PREEMPT_UNKNOWN = 3, +}; + +enum scx_deq_flags { + SCX_DEQ_SLEEP = 1ULL, + SCX_DEQ_CORE_SCHED_EXEC = 4294967296ULL, +}; + +enum scx_dsq_id_flags { + SCX_DSQ_FLAG_BUILTIN = 9223372036854775808ULL, + SCX_DSQ_FLAG_LOCAL_ON = 4611686018427387904ULL, + SCX_DSQ_INVALID = 9223372036854775808ULL, + SCX_DSQ_GLOBAL = 9223372036854775809ULL, + SCX_DSQ_LOCAL = 9223372036854775810ULL, + SCX_DSQ_LOCAL_ON = 13835058055282163712ULL, + SCX_DSQ_LOCAL_CPU_MASK = 4294967295ULL, +}; + +enum scx_dsq_iter_flags { + SCX_DSQ_ITER_REV = 65536, + __SCX_DSQ_ITER_HAS_SLICE = 1073741824, + __SCX_DSQ_ITER_HAS_VTIME = 2147483648, + __SCX_DSQ_ITER_USER_FLAGS = 65536, + __SCX_DSQ_ITER_ALL_FLAGS = 3221291008, +}; + +enum scx_dsq_lnode_flags { + SCX_DSQ_LNODE_ITER_CURSOR = 1, + __SCX_DSQ_LNODE_PRIV_SHIFT = 16, +}; + +enum scx_enq_flags { + SCX_ENQ_WAKEUP = 1ULL, + SCX_ENQ_HEAD = 16ULL, + SCX_ENQ_CPU_SELECTED = 1024ULL, + SCX_ENQ_PREEMPT = 4294967296ULL, + SCX_ENQ_REENQ = 1099511627776ULL, + SCX_ENQ_LAST = 2199023255552ULL, + __SCX_ENQ_INTERNAL_MASK = 18374686479671623680ULL, + SCX_ENQ_CLEAR_OPSS = 72057594037927936ULL, + SCX_ENQ_DSQ_PRIQ = 144115188075855872ULL, +}; + +enum scx_ent_dsq_flags { + SCX_TASK_DSQ_ON_PRIQ = 1, +}; + +enum scx_ent_flags { + SCX_TASK_QUEUED = 1, + SCX_TASK_RESET_RUNNABLE_AT = 4, + SCX_TASK_DEQD_FOR_SLEEP = 8, + SCX_TASK_STATE_SHIFT = 8, + SCX_TASK_STATE_BITS = 2, + SCX_TASK_STATE_MASK = 768, + SCX_TASK_CURSOR = -2147483648, +}; + +enum scx_exit_code { + SCX_ECODE_RSN_HOTPLUG = 4294967296ULL, + SCX_ECODE_ACT_RESTART = 281474976710656ULL, +}; + +enum scx_exit_kind { + SCX_EXIT_NONE = 0, + SCX_EXIT_DONE = 1, + SCX_EXIT_UNREG = 64, + SCX_EXIT_UNREG_BPF = 65, + SCX_EXIT_UNREG_KERN = 66, + SCX_EXIT_SYSRQ = 67, + SCX_EXIT_ERROR = 1024, + SCX_EXIT_ERROR_BPF = 1025, + SCX_EXIT_ERROR_STALL = 1026, +}; + +enum scx_kf_mask { + SCX_KF_UNLOCKED = 0, + SCX_KF_CPU_RELEASE = 1, + SCX_KF_DISPATCH = 2, + SCX_KF_ENQUEUE = 4, + SCX_KF_SELECT_CPU = 8, + SCX_KF_REST = 16, + __SCX_KF_RQ_LOCKED = 31, + __SCX_KF_TERMINAL = 28, +}; + +enum scx_kick_flags { + SCX_KICK_IDLE = 1, + SCX_KICK_PREEMPT = 2, + SCX_KICK_WAIT = 4, +}; + +enum scx_opi { + SCX_OPI_BEGIN = 0, + SCX_OPI_NORMAL_BEGIN = 0, + SCX_OPI_NORMAL_END = 29, + SCX_OPI_CPU_HOTPLUG_BEGIN = 29, + SCX_OPI_CPU_HOTPLUG_END = 31, + SCX_OPI_END = 31, +}; + +enum scx_ops_enable_state { + SCX_OPS_ENABLING = 0, + SCX_OPS_ENABLED = 1, + SCX_OPS_DISABLING = 2, + SCX_OPS_DISABLED = 3, +}; + +enum scx_ops_flags { + SCX_OPS_KEEP_BUILTIN_IDLE = 1, + SCX_OPS_ENQ_LAST = 2, + SCX_OPS_ENQ_EXITING = 4, + SCX_OPS_SWITCH_PARTIAL = 8, + SCX_OPS_ENQ_MIGRATION_DISABLED = 16, + SCX_OPS_HAS_CGROUP_WEIGHT = 65536, + SCX_OPS_ALL_FLAGS = 65567, +}; + +enum scx_ops_state { + SCX_OPSS_NONE = 0, + SCX_OPSS_QUEUEING = 1, + SCX_OPSS_QUEUED = 2, + SCX_OPSS_DISPATCHING = 3, + SCX_OPSS_QSEQ_SHIFT = 2, +}; + +enum scx_pick_idle_cpu_flags { + SCX_PICK_IDLE_CORE = 1, +}; + +enum scx_public_consts { + SCX_OPS_NAME_LEN = 128ULL, + SCX_SLICE_DFL = 20000000ULL, + SCX_SLICE_INF = 18446744073709551615ULL, +}; + +enum scx_rq_flags { + SCX_RQ_ONLINE = 1, + SCX_RQ_CAN_STOP_TICK = 2, + SCX_RQ_BAL_PENDING = 4, + SCX_RQ_BAL_KEEP = 8, + SCX_RQ_BYPASSING = 16, + SCX_RQ_CLK_VALID = 32, + SCX_RQ_IN_WAKEUP = 65536, + SCX_RQ_IN_BALANCE = 131072, +}; + +enum scx_task_state { + SCX_TASK_NONE = 0, + SCX_TASK_INIT = 1, + SCX_TASK_READY = 2, + SCX_TASK_ENABLED = 3, + SCX_TASK_NR_STATES = 4, +}; + +enum scx_tg_flags { + SCX_TG_ONLINE = 1, + SCX_TG_INITED = 2, +}; + +enum scx_wake_flags { + SCX_WAKE_FORK = 4, + SCX_WAKE_TTWU = 8, + SCX_WAKE_SYNC = 16, +}; + +enum sd_uhs2_operation { + UHS2_PHY_INIT = 0, + UHS2_SET_CONFIG = 1, + UHS2_ENABLE_INT = 2, + UHS2_DISABLE_INT = 3, + UHS2_ENABLE_CLK = 4, + UHS2_DISABLE_CLK = 5, + UHS2_CHECK_DORMANT = 6, + UHS2_SET_IOS = 7, +}; + +enum security_cmd_enabled_bits { + CXL_SEC_ENABLED_SANITIZE = 0, + CXL_SEC_ENABLED_SECURE_ERASE = 1, + CXL_SEC_ENABLED_GET_SECURITY_STATE = 2, + CXL_SEC_ENABLED_SET_PASSPHRASE = 3, + CXL_SEC_ENABLED_DISABLE_PASSPHRASE = 4, + CXL_SEC_ENABLED_UNLOCK = 5, + CXL_SEC_ENABLED_FREEZE_SECURITY = 6, + CXL_SEC_ENABLED_PASSPHRASE_SECURE_ERASE = 7, + CXL_SEC_ENABLED_MAX = 8, +}; + +enum seg6_end_dt_mode { + DT_INVALID_MODE = -22, + DT_LEGACY_MODE = 0, + DT_VRF_MODE = 1, +}; + +enum seg6_local_flv_action { + SEG6_LOCAL_FLV_ACT_UNSPEC = 0, + SEG6_LOCAL_FLV_ACT_END = 1, + SEG6_LOCAL_FLV_ACT_PSP = 2, + SEG6_LOCAL_FLV_ACT_USP = 3, + SEG6_LOCAL_FLV_ACT_USD = 4, + __SEG6_LOCAL_FLV_ACT_MAX = 5, +}; + +enum seg6_local_pktinfo { + SEG6_LOCAL_PKTINFO_NOHDR = 0, + SEG6_LOCAL_PKTINFO_SL_ZERO = 1, + SEG6_LOCAL_PKTINFO_SL_ONE = 2, + SEG6_LOCAL_PKTINFO_SL_MORE = 3, + __SEG6_LOCAL_PKTINFO_MAX = 4, +}; + +enum sel_inos { + SEL_ROOT_INO = 2, + SEL_LOAD = 3, + SEL_ENFORCE = 4, + SEL_CONTEXT = 5, + SEL_ACCESS = 6, + SEL_CREATE = 7, + SEL_RELABEL = 8, + SEL_USER = 9, + SEL_POLICYVERS = 10, + SEL_COMMIT_BOOLS = 11, + SEL_MLS = 12, + SEL_DISABLE = 13, + SEL_MEMBER = 14, + SEL_CHECKREQPROT = 15, + SEL_COMPAT_NET = 16, + SEL_REJECT_UNKNOWN = 17, + SEL_DENY_UNKNOWN = 18, + SEL_STATUS = 19, + SEL_POLICY = 20, + SEL_VALIDATE_TRANS = 21, + SEL_INO_NEXT = 22, +}; + +enum selinux_nlgroups { + SELNLGRP_NONE = 0, + SELNLGRP_AVC = 1, + __SELNLGRP_MAX = 2, +}; + +enum ser { + SER_REQUIRED = 1, + NO_SER = 2, +}; + +enum serdev_parity { + SERDEV_PARITY_NONE = 0, + SERDEV_PARITY_EVEN = 1, + SERDEV_PARITY_ODD = 2, +}; + +enum serio_event_type { + SERIO_RESCAN_PORT = 0, + SERIO_RECONNECT_PORT = 1, + SERIO_RECONNECT_SUBTREE = 2, + SERIO_REGISTER_PORT = 3, + SERIO_ATTACH_DRIVER = 4, +}; + +enum set_event_iter_type { + SET_EVENT_FILE = 0, + SET_EVENT_MOD = 1, +}; + +enum setid_type { + UID = 0, + GID = 1, +}; + +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 sgp_type { + SGP_READ = 0, + SGP_NOALLOC = 1, + SGP_CACHE = 2, + SGP_WRITE = 3, + SGP_FALLOC = 4, +}; + +enum sgx_attribute { + SGX_ATTR_INIT = 1, + SGX_ATTR_DEBUG = 2, + SGX_ATTR_MODE64BIT = 4, + SGX_ATTR_PROVISIONKEY = 16, + SGX_ATTR_EINITTOKENKEY = 32, + SGX_ATTR_KSS = 128, + SGX_ATTR_ASYNC_EXIT_NOTIFY = 1024, +}; + +enum sgx_encl_flags { + SGX_ENCL_IOCTL = 1, + SGX_ENCL_DEBUG = 2, + SGX_ENCL_CREATED = 4, + SGX_ENCL_INITIALIZED = 8, +}; + +enum sgx_encls_function { + ECREATE = 0, + EADD = 1, + EINIT = 2, + EREMOVE = 3, + EDGBRD = 4, + EDGBWR = 5, + EEXTEND = 6, + ELDU = 8, + EBLOCK = 9, + EPA = 10, + EWB = 11, + ETRACK = 12, + EAUG = 13, + EMODPR = 14, + EMODT = 15, +}; + +enum sgx_page_flags { + SGX_PAGE_MEASURE = 1, +}; + +enum sgx_page_type { + SGX_PAGE_TYPE_SECS = 0, + SGX_PAGE_TYPE_TCS = 1, + SGX_PAGE_TYPE_REG = 2, + SGX_PAGE_TYPE_VA = 3, + SGX_PAGE_TYPE_TRIM = 4, +}; + +enum sgx_return_code { + SGX_EPC_PAGE_CONFLICT = 7, + SGX_NOT_TRACKED = 11, + SGX_CHILD_PRESENT = 13, + SGX_INVALID_EINITTOKEN = 16, + SGX_PAGE_NOT_MODIFIABLE = 20, + SGX_UNMASKED_EVENT = 128, +}; + +enum sgx_secinfo_flags { + SGX_SECINFO_R = 1, + SGX_SECINFO_W = 2, + SGX_SECINFO_X = 4, + SGX_SECINFO_SECS = 0, + SGX_SECINFO_TCS = 256, + SGX_SECINFO_REG = 512, + SGX_SECINFO_VA = 768, + SGX_SECINFO_TRIM = 1024, +}; + +enum shmem_param { + Opt_gid___8 = 0, + Opt_huge = 1, + Opt_mode___6 = 2, + Opt_mpol = 3, + Opt_nr_blocks = 4, + Opt_nr_inodes___2 = 5, + Opt_size___2 = 6, + Opt_uid___7 = 7, + Opt_inode32 = 8, + Opt_inode64 = 9, + Opt_noswap = 10, + Opt_quota___2 = 11, + Opt_usrquota___2 = 12, + Opt_grpquota___2 = 13, + Opt_usrquota_block_hardlimit = 14, + Opt_usrquota_inode_hardlimit = 15, + Opt_grpquota_block_hardlimit = 16, + Opt_grpquota_inode_hardlimit = 17, + Opt_casefold_version = 18, + Opt_casefold = 19, + Opt_strict_encoding = 20, +}; + +enum show_regs_mode { + SHOW_REGS_SHORT = 0, + SHOW_REGS_USER = 1, + SHOW_REGS_ALL = 2, +}; + +enum shutdown_state { + SHUTDOWN_INVALID = -1, + SHUTDOWN_POWEROFF = 0, + SHUTDOWN_SUSPEND = 2, + SHUTDOWN_HALT = 4, +}; + +enum si_type { + SI_TYPE_INVALID = 0, + SI_KCS = 1, + SI_SMIC = 2, + SI_BT = 3, + SI_TYPE_MAX = 4, +}; + +enum sid_policy_type { + SIDPOL_DEFAULT = 0, + SIDPOL_CONSTRAINED = 1, + SIDPOL_ALLOWED = 2, +}; + +enum sig_handler { + HANDLER_CURRENT = 0, + HANDLER_SIG_DFL = 1, + HANDLER_EXIT = 2, +}; + +enum siginfo_layout { + SIL_KILL = 0, + SIL_TIMER = 1, + SIL_POLL = 2, + SIL_FAULT = 3, + SIL_FAULT_TRAPNO = 4, + SIL_FAULT_MCEERR = 5, + SIL_FAULT_BNDERR = 6, + SIL_FAULT_PKUERR = 7, + SIL_FAULT_PERF_EVENT = 8, + SIL_CHLD = 9, + SIL_RT = 10, + SIL_SYS = 11, +}; + +enum simatic_ipc_station_ids { + SIMATIC_IPC_INVALID_STATION_ID = 0, + SIMATIC_IPC_IPC227D = 1281, + SIMATIC_IPC_IPC427D = 1793, + SIMATIC_IPC_IPC227E = 2305, + SIMATIC_IPC_IPC277E = 2306, + SIMATIC_IPC_IPC427E = 2561, + SIMATIC_IPC_IPC477E = 2562, + SIMATIC_IPC_IPC127E = 3329, + SIMATIC_IPC_IPC227G = 3841, + SIMATIC_IPC_IPC277G = 3842, + SIMATIC_IPC_IPCBX_39A = 4097, + SIMATIC_IPC_IPCPX_39A = 4098, + SIMATIC_IPC_IPCBX_21A = 4353, + SIMATIC_IPC_IPCBX_56A = 4609, + SIMATIC_IPC_IPCBX_59A = 4610, +}; + +enum sk_action { + SK_DROP = 0, + SK_PASS = 1, +}; + +enum sk_pacing { + SK_PACING_NONE = 0, + SK_PACING_NEEDED = 1, + SK_PACING_FQ = 2, +}; + +enum sk_psock_state_bits { + SK_PSOCK_TX_ENABLED = 0, + SK_PSOCK_RX_STRP_ENABLED = 1, +}; + +enum sk_rst_reason { + SK_RST_REASON_NOT_SPECIFIED = 0, + SK_RST_REASON_NO_SOCKET = 1, + SK_RST_REASON_TCP_INVALID_ACK_SEQUENCE = 2, + SK_RST_REASON_TCP_RFC7323_PAWS = 3, + SK_RST_REASON_TCP_TOO_OLD_ACK = 4, + SK_RST_REASON_TCP_ACK_UNSENT_DATA = 5, + SK_RST_REASON_TCP_FLAGS = 6, + SK_RST_REASON_TCP_OLD_ACK = 7, + SK_RST_REASON_TCP_ABORT_ON_DATA = 8, + SK_RST_REASON_TCP_TIMEWAIT_SOCKET = 9, + SK_RST_REASON_INVALID_SYN = 10, + SK_RST_REASON_TCP_ABORT_ON_CLOSE = 11, + SK_RST_REASON_TCP_ABORT_ON_LINGER = 12, + SK_RST_REASON_TCP_ABORT_ON_MEMORY = 13, + SK_RST_REASON_TCP_STATE = 14, + SK_RST_REASON_TCP_KEEPALIVE_TIMEOUT = 15, + SK_RST_REASON_TCP_DISCONNECT_WITH_DATA = 16, + SK_RST_REASON_MPTCP_RST_EUNSPEC = 17, + SK_RST_REASON_MPTCP_RST_EMPTCP = 18, + SK_RST_REASON_MPTCP_RST_ERESOURCE = 19, + SK_RST_REASON_MPTCP_RST_EPROHIBIT = 20, + SK_RST_REASON_MPTCP_RST_EWQ2BIG = 21, + SK_RST_REASON_MPTCP_RST_EBADPERF = 22, + SK_RST_REASON_MPTCP_RST_EMIDDLEBOX = 23, + SK_RST_REASON_ERROR = 24, + SK_RST_REASON_MAX = 25, +}; + +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_SOCKET_CLOSE = 4, + SKB_DROP_REASON_SOCKET_FILTER = 5, + SKB_DROP_REASON_SOCKET_RCVBUFF = 6, + SKB_DROP_REASON_UNIX_DISCONNECT = 7, + SKB_DROP_REASON_UNIX_SKIP_OOB = 8, + SKB_DROP_REASON_PKT_TOO_SMALL = 9, + SKB_DROP_REASON_TCP_CSUM = 10, + SKB_DROP_REASON_UDP_CSUM = 11, + SKB_DROP_REASON_NETFILTER_DROP = 12, + SKB_DROP_REASON_OTHERHOST = 13, + SKB_DROP_REASON_IP_CSUM = 14, + SKB_DROP_REASON_IP_INHDR = 15, + SKB_DROP_REASON_IP_RPFILTER = 16, + SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 17, + SKB_DROP_REASON_XFRM_POLICY = 18, + SKB_DROP_REASON_IP_NOPROTO = 19, + SKB_DROP_REASON_PROTO_MEM = 20, + SKB_DROP_REASON_TCP_AUTH_HDR = 21, + SKB_DROP_REASON_TCP_MD5NOTFOUND = 22, + SKB_DROP_REASON_TCP_MD5UNEXPECTED = 23, + SKB_DROP_REASON_TCP_MD5FAILURE = 24, + SKB_DROP_REASON_TCP_AONOTFOUND = 25, + SKB_DROP_REASON_TCP_AOUNEXPECTED = 26, + SKB_DROP_REASON_TCP_AOKEYNOTFOUND = 27, + SKB_DROP_REASON_TCP_AOFAILURE = 28, + SKB_DROP_REASON_SOCKET_BACKLOG = 29, + SKB_DROP_REASON_TCP_FLAGS = 30, + SKB_DROP_REASON_TCP_ABORT_ON_DATA = 31, + SKB_DROP_REASON_TCP_ZEROWINDOW = 32, + SKB_DROP_REASON_TCP_OLD_DATA = 33, + SKB_DROP_REASON_TCP_OVERWINDOW = 34, + SKB_DROP_REASON_TCP_OFOMERGE = 35, + SKB_DROP_REASON_TCP_RFC7323_PAWS = 36, + SKB_DROP_REASON_TCP_RFC7323_PAWS_ACK = 37, + SKB_DROP_REASON_TCP_OLD_SEQUENCE = 38, + SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 39, + SKB_DROP_REASON_TCP_INVALID_ACK_SEQUENCE = 40, + SKB_DROP_REASON_TCP_RESET = 41, + SKB_DROP_REASON_TCP_INVALID_SYN = 42, + SKB_DROP_REASON_TCP_CLOSE = 43, + SKB_DROP_REASON_TCP_FASTOPEN = 44, + SKB_DROP_REASON_TCP_OLD_ACK = 45, + SKB_DROP_REASON_TCP_TOO_OLD_ACK = 46, + SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 47, + SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 48, + SKB_DROP_REASON_TCP_OFO_DROP = 49, + SKB_DROP_REASON_IP_OUTNOROUTES = 50, + SKB_DROP_REASON_BPF_CGROUP_EGRESS = 51, + SKB_DROP_REASON_IPV6DISABLED = 52, + SKB_DROP_REASON_NEIGH_CREATEFAIL = 53, + SKB_DROP_REASON_NEIGH_FAILED = 54, + SKB_DROP_REASON_NEIGH_QUEUEFULL = 55, + SKB_DROP_REASON_NEIGH_DEAD = 56, + SKB_DROP_REASON_TC_EGRESS = 57, + SKB_DROP_REASON_SECURITY_HOOK = 58, + SKB_DROP_REASON_QDISC_DROP = 59, + SKB_DROP_REASON_QDISC_OVERLIMIT = 60, + SKB_DROP_REASON_QDISC_CONGESTED = 61, + SKB_DROP_REASON_CAKE_FLOOD = 62, + SKB_DROP_REASON_FQ_BAND_LIMIT = 63, + SKB_DROP_REASON_FQ_HORIZON_LIMIT = 64, + SKB_DROP_REASON_FQ_FLOW_LIMIT = 65, + SKB_DROP_REASON_CPU_BACKLOG = 66, + SKB_DROP_REASON_XDP = 67, + SKB_DROP_REASON_TC_INGRESS = 68, + SKB_DROP_REASON_UNHANDLED_PROTO = 69, + SKB_DROP_REASON_SKB_CSUM = 70, + SKB_DROP_REASON_SKB_GSO_SEG = 71, + SKB_DROP_REASON_SKB_UCOPY_FAULT = 72, + SKB_DROP_REASON_DEV_HDR = 73, + SKB_DROP_REASON_DEV_READY = 74, + SKB_DROP_REASON_FULL_RING = 75, + SKB_DROP_REASON_NOMEM = 76, + SKB_DROP_REASON_HDR_TRUNC = 77, + SKB_DROP_REASON_TAP_FILTER = 78, + SKB_DROP_REASON_TAP_TXFILTER = 79, + SKB_DROP_REASON_ICMP_CSUM = 80, + SKB_DROP_REASON_INVALID_PROTO = 81, + SKB_DROP_REASON_IP_INADDRERRORS = 82, + SKB_DROP_REASON_IP_INNOROUTES = 83, + SKB_DROP_REASON_IP_LOCAL_SOURCE = 84, + SKB_DROP_REASON_IP_INVALID_SOURCE = 85, + SKB_DROP_REASON_IP_LOCALNET = 86, + SKB_DROP_REASON_IP_INVALID_DEST = 87, + SKB_DROP_REASON_PKT_TOO_BIG = 88, + SKB_DROP_REASON_DUP_FRAG = 89, + SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 90, + SKB_DROP_REASON_FRAG_TOO_FAR = 91, + SKB_DROP_REASON_TCP_MINTTL = 92, + SKB_DROP_REASON_IPV6_BAD_EXTHDR = 93, + SKB_DROP_REASON_IPV6_NDISC_FRAG = 94, + SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT = 95, + SKB_DROP_REASON_IPV6_NDISC_BAD_CODE = 96, + SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS = 97, + SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST = 98, + SKB_DROP_REASON_QUEUE_PURGE = 99, + SKB_DROP_REASON_TC_COOKIE_ERROR = 100, + SKB_DROP_REASON_PACKET_SOCK_ERROR = 101, + SKB_DROP_REASON_TC_CHAIN_NOTFOUND = 102, + SKB_DROP_REASON_TC_RECLASSIFY_LOOP = 103, + SKB_DROP_REASON_VXLAN_INVALID_HDR = 104, + SKB_DROP_REASON_VXLAN_VNI_NOT_FOUND = 105, + SKB_DROP_REASON_MAC_INVALID_SOURCE = 106, + SKB_DROP_REASON_VXLAN_ENTRY_EXISTS = 107, + SKB_DROP_REASON_NO_TX_TARGET = 108, + SKB_DROP_REASON_IP_TUNNEL_ECN = 109, + SKB_DROP_REASON_TUNNEL_TXINFO = 110, + SKB_DROP_REASON_LOCAL_MAC = 111, + SKB_DROP_REASON_ARP_PVLAN_DISABLE = 112, + SKB_DROP_REASON_MAC_IEEE_MAC_CONTROL = 113, + SKB_DROP_REASON_BRIDGE_INGRESS_STP_STATE = 114, + SKB_DROP_REASON_MAX = 115, + SKB_DROP_REASON_SUBSYS_MASK = 4294901760, +}; + +enum skb_drop_reason_subsys { + SKB_DROP_REASON_SUBSYS_CORE = 0, + SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, + SKB_DROP_REASON_SUBSYS_OPENVSWITCH = 2, + SKB_DROP_REASON_SUBSYS_NUM = 3, +}; + +enum skb_ext_id { + SKB_EXT_BRIDGE_NF = 0, + SKB_EXT_SEC_PATH = 1, + TC_SKB_EXT = 2, + SKB_EXT_MPTCP = 3, + SKB_EXT_MCTP = 4, + SKB_EXT_NUM = 5, +}; + +enum skb_tstamp_type { + SKB_CLOCK_REALTIME = 0, + SKB_CLOCK_MONOTONIC = 1, + SKB_CLOCK_TAI = 2, + __SKB_CLOCK_MAX = 2, +}; + +enum sknetlink_groups { + SKNLGRP_NONE = 0, + SKNLGRP_INET_TCP_DESTROY = 1, + SKNLGRP_INET_UDP_DESTROY = 2, + SKNLGRP_INET6_TCP_DESTROY = 3, + SKNLGRP_INET6_UDP_DESTROY = 4, + __SKNLGRP_MAX = 5, +}; + +enum slab_stat_type { + SL_ALL = 0, + SL_PARTIAL = 1, + SL_CPU = 2, + SL_OBJECTS = 3, + SL_TOTAL = 4, +}; + +enum slab_state { + DOWN = 0, + PARTIAL = 1, + UP = 2, + FULL = 3, +}; + +enum smbios_attr_enum { + SMBIOS_ATTR_NONE = 0, + SMBIOS_ATTR_LABEL_SHOW = 1, + SMBIOS_ATTR_INSTANCE_SHOW = 2, +}; + +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_MA_LLC = 14, + SMCA_PB = 15, + SMCA_PSP = 16, + SMCA_PSP_V2 = 17, + SMCA_SMU = 18, + SMCA_SMU_V2 = 19, + SMCA_MP5 = 20, + SMCA_MPDMA = 21, + SMCA_NBIO = 22, + SMCA_PCIE = 23, + SMCA_PCIE_V2 = 24, + SMCA_XGMI_PCS = 25, + SMCA_NBIF = 26, + SMCA_SHUB = 27, + SMCA_SATA = 28, + SMCA_USB = 29, + SMCA_USR_DP = 30, + SMCA_USR_CP = 31, + SMCA_GMI_PCS = 32, + SMCA_XGMI_PHY = 33, + SMCA_WAFL_PHY = 34, + SMCA_GMI_PHY = 35, + N_SMCA_BANK_TYPES = 36, +}; + +enum smk_inos { + SMK_ROOT_INO = 2, + SMK_LOAD = 3, + SMK_CIPSO = 4, + SMK_DOI = 5, + SMK_DIRECT = 6, + SMK_AMBIENT = 7, + SMK_NET4ADDR = 8, + SMK_ONLYCAP = 9, + SMK_LOGGING = 10, + SMK_LOAD_SELF = 11, + SMK_ACCESSES = 12, + SMK_MAPPED = 13, + SMK_LOAD2 = 14, + SMK_LOAD_SELF2 = 15, + SMK_ACCESS2 = 16, + SMK_CIPSO2 = 17, + SMK_REVOKE_SUBJ = 18, + SMK_CHANGE_RULE = 19, + SMK_SYSLOG = 20, + SMK_PTRACE = 21, + SMK_NET6ADDR = 23, + SMK_RELABEL_SELF = 24, +}; + +enum snoop_when { + SUBMIT = 0, + COMPLETE = 1, +}; + +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, + SOCK_RCVPRIORITY = 28, +}; + +enum sock_shutdown_cmd { + SHUT_RD = 0, + SHUT_WR = 1, + SHUT_RDWR = 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 special_kfunc_type { + KF_bpf_obj_new_impl = 0, + KF_bpf_obj_drop_impl = 1, + KF_bpf_refcount_acquire_impl = 2, + KF_bpf_list_push_front_impl = 3, + KF_bpf_list_push_back_impl = 4, + KF_bpf_list_pop_front = 5, + KF_bpf_list_pop_back = 6, + KF_bpf_cast_to_kern_ctx = 7, + KF_bpf_rdonly_cast = 8, + KF_bpf_rcu_read_lock = 9, + KF_bpf_rcu_read_unlock = 10, + KF_bpf_rbtree_remove = 11, + KF_bpf_rbtree_add_impl = 12, + KF_bpf_rbtree_first = 13, + KF_bpf_dynptr_from_skb = 14, + KF_bpf_dynptr_from_xdp = 15, + KF_bpf_dynptr_slice = 16, + KF_bpf_dynptr_slice_rdwr = 17, + KF_bpf_dynptr_clone = 18, + KF_bpf_percpu_obj_new_impl = 19, + KF_bpf_percpu_obj_drop_impl = 20, + KF_bpf_throw = 21, + KF_bpf_wq_set_callback_impl = 22, + KF_bpf_preempt_disable = 23, + KF_bpf_preempt_enable = 24, + KF_bpf_iter_css_task_new = 25, + KF_bpf_session_cookie = 26, + KF_bpf_get_kmem_cache = 27, + KF_bpf_local_irq_save = 28, + KF_bpf_local_irq_restore = 29, + KF_bpf_iter_num_new = 30, + KF_bpf_iter_num_next = 31, + KF_bpf_iter_num_destroy = 32, +}; + +enum spectre_v1_mitigation { + SPECTRE_V1_MITIGATION_NONE = 0, + SPECTRE_V1_MITIGATION_AUTO = 1, +}; + +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 spi_mem_data_dir { + SPI_MEM_NO_DATA = 0, + SPI_MEM_DATA_IN = 1, + SPI_MEM_DATA_OUT = 2, +}; + +enum split_lock_detect_state { + sld_off = 0, + sld_warn = 1, + sld_fatal = 2, + sld_ratelimit = 3, +}; + +enum squashfs_param { + Opt_errors___3 = 0, + Opt_threads = 1, +}; + +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 srso_mitigation { + SRSO_MITIGATION_NONE = 0, + SRSO_MITIGATION_UCODE_NEEDED = 1, + SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED = 2, + SRSO_MITIGATION_MICROCODE = 3, + SRSO_MITIGATION_SAFE_RET = 4, + SRSO_MITIGATION_IBPB = 5, + SRSO_MITIGATION_IBPB_ON_VMEXIT = 6, +}; + +enum srso_mitigation_cmd { + SRSO_CMD_OFF = 0, + SRSO_CMD_MICROCODE = 1, + SRSO_CMD_SAFE_RET = 2, + SRSO_CMD_IBPB = 3, + SRSO_CMD_IBPB_ON_VMEXIT = 4, +}; + +enum ssb_mitigation { + SPEC_STORE_BYPASS_NONE = 0, + SPEC_STORE_BYPASS_DISABLE = 1, + SPEC_STORE_BYPASS_PRCTL = 2, + SPEC_STORE_BYPASS_SECCOMP = 3, +}; + +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 stack_type { + STACK_TYPE_UNKNOWN = 0, + STACK_TYPE_TASK = 1, + STACK_TYPE_IRQ = 2, + STACK_TYPE_SOFTIRQ = 3, + STACK_TYPE_ENTRY = 4, + STACK_TYPE_EXCEPTION = 5, + STACK_TYPE_EXCEPTION_LAST = 10, +}; + +enum stat_group { + STAT_READ = 0, + STAT_WRITE = 1, + STAT_DISCARD = 2, + STAT_FLUSH = 3, + NR_STAT_GROUPS = 4, +}; + +enum stat_item { + ALLOC_FASTPATH = 0, + ALLOC_SLOWPATH = 1, + FREE_FASTPATH = 2, + FREE_SLOWPATH = 3, + FREE_FROZEN = 4, + FREE_ADD_PARTIAL = 5, + FREE_REMOVE_PARTIAL = 6, + ALLOC_FROM_PARTIAL = 7, + ALLOC_SLAB = 8, + ALLOC_REFILL = 9, + ALLOC_NODE_MISMATCH = 10, + FREE_SLAB = 11, + CPUSLAB_FLUSH = 12, + DEACTIVATE_FULL = 13, + DEACTIVATE_EMPTY = 14, + DEACTIVATE_TO_HEAD = 15, + DEACTIVATE_TO_TAIL = 16, + DEACTIVATE_REMOTE_FREES = 17, + DEACTIVATE_BYPASS = 18, + ORDER_FALLBACK = 19, + CMPXCHG_DOUBLE_CPU_FAIL = 20, + CMPXCHG_DOUBLE_FAIL = 21, + CPU_PARTIAL_ALLOC = 22, + CPU_PARTIAL_FREE = 23, + CPU_PARTIAL_NODE = 24, + CPU_PARTIAL_DRAIN = 25, + NR_SLUB_STAT_ITEMS = 26, +}; + +enum state { + Start = 0, + Collect = 1, + GotHeader = 2, + SkipIt = 3, + GotName = 4, + CopyFile = 5, + GotSymlink = 6, + Reset = 7, +}; + +enum states_wwnr { + not_running_wwnr = 0, + running_wwnr = 1, + state_max_wwnr = 2, +}; + +enum store_type { + wr_invalid = 0, + wr_new_root = 1, + wr_store_root = 2, + wr_exact_fit = 3, + wr_spanning_store = 4, + wr_split_store = 5, + wr_rebalance = 6, + wr_append = 7, + wr_node_store = 8, + wr_slot_store = 9, +}; + +enum string_size_units { + STRING_UNITS_10 = 0, + STRING_UNITS_2 = 1, + STRING_UNITS_MASK = 1, + STRING_UNITS_NO_SPACE = 1073741824, + STRING_UNITS_NO_BYTES = 2147483648, +}; + +enum subpixel_order { + SubPixelUnknown = 0, + SubPixelHorizontalRGB = 1, + SubPixelHorizontalBGR = 2, + SubPixelVerticalRGB = 3, + SubPixelVerticalBGR = 4, + SubPixelNone = 5, +}; + +enum sum_check_bits { + SUM_CHECK_P = 0, + SUM_CHECK_Q = 1, +}; + +enum sum_check_flags { + SUM_CHECK_P_RESULT = 1, + SUM_CHECK_Q_RESULT = 2, +}; + +enum support_mode { + ALLOW_LEGACY = 0, + DENY_LEGACY = 1, +}; + +enum suspend_mode { + PRESUSPEND = 0, + PRESUSPEND_UNDO = 1, + POSTSUSPEND = 2, +}; + +enum suspend_stat_step { + SUSPEND_WORKING = 0, + SUSPEND_FREEZE = 1, + SUSPEND_PREPARE = 2, + SUSPEND_SUSPEND = 3, + SUSPEND_SUSPEND_LATE = 4, + SUSPEND_SUSPEND_NOIRQ = 5, + SUSPEND_RESUME_NOIRQ = 6, + SUSPEND_RESUME_EARLY = 7, + SUSPEND_RESUME = 8, +}; + +enum svc_auth_status { + SVC_GARBAGE = 1, + SVC_SYSERR = 2, + SVC_VALID = 3, + SVC_NEGATIVE = 4, + SVC_OK = 5, + SVC_DROP = 6, + SVC_CLOSE = 7, + SVC_DENIED = 8, + SVC_PENDING = 9, + SVC_COMPLETE = 10, +}; + +enum sw_activity { + OFF = 0, + BLINK_ON = 1, + BLINK_OFF = 2, +}; + +enum swap_cluster_flags { + CLUSTER_FLAG_NONE = 0, + CLUSTER_FLAG_FREE = 1, + CLUSTER_FLAG_NONFULL = 2, + CLUSTER_FLAG_FRAG = 3, + CLUSTER_FLAG_USABLE = 3, + CLUSTER_FLAG_FULL = 4, + CLUSTER_FLAG_DISCARD = 5, + CLUSTER_FLAG_MAX = 6, +}; + +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 switchdev_attr_id { + SWITCHDEV_ATTR_ID_UNDEFINED = 0, + SWITCHDEV_ATTR_ID_PORT_STP_STATE = 1, + SWITCHDEV_ATTR_ID_PORT_MST_STATE = 2, + SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS = 3, + SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS = 4, + SWITCHDEV_ATTR_ID_PORT_MROUTER = 5, + SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME = 6, + SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING = 7, + SWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL = 8, + SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED = 9, + SWITCHDEV_ATTR_ID_BRIDGE_MROUTER = 10, + SWITCHDEV_ATTR_ID_BRIDGE_MST = 11, + SWITCHDEV_ATTR_ID_MRP_PORT_ROLE = 12, + SWITCHDEV_ATTR_ID_VLAN_MSTI = 13, +}; + +enum switchdev_notifier_type { + SWITCHDEV_FDB_ADD_TO_BRIDGE = 1, + SWITCHDEV_FDB_DEL_TO_BRIDGE = 2, + SWITCHDEV_FDB_ADD_TO_DEVICE = 3, + SWITCHDEV_FDB_DEL_TO_DEVICE = 4, + SWITCHDEV_FDB_OFFLOADED = 5, + SWITCHDEV_FDB_FLUSH_TO_BRIDGE = 6, + SWITCHDEV_PORT_OBJ_ADD = 7, + SWITCHDEV_PORT_OBJ_DEL = 8, + SWITCHDEV_PORT_ATTR_SET = 9, + SWITCHDEV_VXLAN_FDB_ADD_TO_BRIDGE = 10, + SWITCHDEV_VXLAN_FDB_DEL_TO_BRIDGE = 11, + SWITCHDEV_VXLAN_FDB_ADD_TO_DEVICE = 12, + SWITCHDEV_VXLAN_FDB_DEL_TO_DEVICE = 13, + SWITCHDEV_VXLAN_FDB_OFFLOADED = 14, + SWITCHDEV_BRPORT_OFFLOADED = 15, + SWITCHDEV_BRPORT_UNOFFLOADED = 16, + SWITCHDEV_BRPORT_REPLAY = 17, +}; + +enum switchdev_obj_id { + SWITCHDEV_OBJ_ID_UNDEFINED = 0, + SWITCHDEV_OBJ_ID_PORT_VLAN = 1, + SWITCHDEV_OBJ_ID_PORT_MDB = 2, + SWITCHDEV_OBJ_ID_HOST_MDB = 3, + SWITCHDEV_OBJ_ID_MRP = 4, + SWITCHDEV_OBJ_ID_RING_TEST_MRP = 5, + SWITCHDEV_OBJ_ID_RING_ROLE_MRP = 6, + SWITCHDEV_OBJ_ID_RING_STATE_MRP = 7, + SWITCHDEV_OBJ_ID_IN_TEST_MRP = 8, + SWITCHDEV_OBJ_ID_IN_ROLE_MRP = 9, + SWITCHDEV_OBJ_ID_IN_STATE_MRP = 10, +}; + +enum sync_action { + ACTION_RESYNC = 0, + ACTION_RECOVER = 1, + ACTION_CHECK = 2, + ACTION_REPAIR = 3, + ACTION_RESHAPE = 4, + ACTION_FROZEN = 5, + ACTION_IDLE = 6, + NR_SYNC_ACTIONS = 7, +}; + +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, +}; + +enum syscall_work_bit { + SYSCALL_WORK_BIT_SECCOMP = 0, + SYSCALL_WORK_BIT_SYSCALL_TRACEPOINT = 1, + SYSCALL_WORK_BIT_SYSCALL_TRACE = 2, + SYSCALL_WORK_BIT_SYSCALL_EMU = 3, + SYSCALL_WORK_BIT_SYSCALL_AUDIT = 4, + SYSCALL_WORK_BIT_SYSCALL_USER_DISPATCH = 5, + SYSCALL_WORK_BIT_SYSCALL_EXIT_TRAP = 6, +}; + +enum sysctl_writes_mode { + SYSCTL_WRITES_LEGACY = -1, + SYSCTL_WRITES_WARN = 0, + SYSCTL_WRITES_STRICT = 1, +}; + +enum system_states { + SYSTEM_BOOTING = 0, + SYSTEM_SCHEDULING = 1, + SYSTEM_FREEING_INITMEM = 2, + SYSTEM_RUNNING = 3, + SYSTEM_HALT = 4, + SYSTEM_POWER_OFF = 5, + SYSTEM_RESTART = 6, + SYSTEM_SUSPEND = 7, +}; + +enum t10_dif_type { + T10_PI_TYPE0_PROTECTION = 0, + T10_PI_TYPE1_PROTECTION = 1, + T10_PI_TYPE2_PROTECTION = 2, + T10_PI_TYPE3_PROTECTION = 3, +}; + +enum taa_mitigations { + TAA_MITIGATION_OFF = 0, + TAA_MITIGATION_UCODE_NEEDED = 1, + TAA_MITIGATION_VERW = 2, + TAA_MITIGATION_TSX_DISABLED = 3, +}; + +enum task_work_notify_mode { + TWA_NONE = 0, + TWA_RESUME = 1, + TWA_SIGNAL = 2, + TWA_SIGNAL_NO_IPI = 3, + TWA_NMI_CURRENT = 4, +}; + +enum tc_fifo_command { + TC_FIFO_REPLACE = 0, + TC_FIFO_DESTROY = 1, + TC_FIFO_STATS = 2, +}; + +enum tc_link_layer { + TC_LINKLAYER_UNAWARE = 0, + TC_LINKLAYER_ETHERNET = 1, + TC_LINKLAYER_ATM = 2, +}; + +enum tc_mq_command { + TC_MQ_CREATE = 0, + TC_MQ_DESTROY = 1, + TC_MQ_STATS = 2, + TC_MQ_GRAFT = 3, +}; + +enum tc_root_command { + TC_ROOT_GRAFT = 0, +}; + +enum tc_setup_type { + TC_QUERY_CAPS = 0, + TC_SETUP_QDISC_MQPRIO = 1, + TC_SETUP_CLSU32 = 2, + TC_SETUP_CLSFLOWER = 3, + TC_SETUP_CLSMATCHALL = 4, + TC_SETUP_CLSBPF = 5, + TC_SETUP_BLOCK = 6, + TC_SETUP_QDISC_CBS = 7, + TC_SETUP_QDISC_RED = 8, + TC_SETUP_QDISC_PRIO = 9, + TC_SETUP_QDISC_MQ = 10, + TC_SETUP_QDISC_ETF = 11, + TC_SETUP_ROOT_QDISC = 12, + TC_SETUP_QDISC_GRED = 13, + TC_SETUP_QDISC_TAPRIO = 14, + TC_SETUP_FT = 15, + TC_SETUP_QDISC_ETS = 16, + TC_SETUP_QDISC_TBF = 17, + TC_SETUP_QDISC_FIFO = 18, + TC_SETUP_QDISC_HTB = 19, + TC_SETUP_ACT = 20, +}; + +enum tca_id { + TCA_ID_UNSPEC = 0, + TCA_ID_POLICE = 1, + TCA_ID_GACT = 5, + TCA_ID_IPT = 6, + TCA_ID_PEDIT = 7, + TCA_ID_MIRRED = 8, + TCA_ID_NAT = 9, + TCA_ID_XT = 10, + TCA_ID_SKBEDIT = 11, + TCA_ID_VLAN = 12, + TCA_ID_BPF = 13, + TCA_ID_CONNMARK = 14, + TCA_ID_SKBMOD = 15, + TCA_ID_CSUM = 16, + TCA_ID_TUNNEL_KEY = 17, + TCA_ID_SIMP = 22, + TCA_ID_IFE = 25, + TCA_ID_SAMPLE = 26, + TCA_ID_CTINFO = 27, + TCA_ID_MPLS = 28, + TCA_ID_CT = 29, + TCA_ID_GATE = 30, + __TCA_ID_MAX = 255, +}; + +enum tcf_proto_ops_flags { + TCF_PROTO_OPS_DOIT_UNLOCKED = 1, +}; + +enum tcp_ca_ack_event_flags { + CA_ACK_SLOWPATH = 1, + CA_ACK_WIN_UPDATE = 2, + CA_ACK_ECE = 4, +}; + +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, +}; + +enum tcp_ca_state { + TCP_CA_Open = 0, + TCP_CA_Disorder = 1, + TCP_CA_CWR = 2, + TCP_CA_Recovery = 3, + TCP_CA_Loss = 4, +}; + +enum tcp_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_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 tcp_fastopen_client_fail { + TFO_STATUS_UNSPEC = 0, + TFO_COOKIE_UNAVAILABLE = 1, + TFO_DATA_NOT_ACKED = 2, + TFO_SYN_RETRANSMITTED = 3, +}; + +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_queue { + TCP_FRAG_IN_WRITE_QUEUE = 0, + TCP_FRAG_IN_RTX_QUEUE = 1, +}; + +enum tcp_seq_states { + TCP_SEQ_STATE_LISTENING = 0, + TCP_SEQ_STATE_ESTABLISHED = 1, +}; + +enum tcp_skb_cb_sacked_flags { + TCPCB_SACKED_ACKED = 1, + TCPCB_SACKED_RETRANS = 2, + TCPCB_LOST = 4, + TCPCB_TAGBITS = 7, + TCPCB_REPAIRED = 16, + TCPCB_EVER_RETRANS = 128, + TCPCB_RETRANS = 146, +}; + +enum tcp_synack_type { + TCP_SYNACK_NORMAL = 0, + TCP_SYNACK_FASTOPEN = 1, + TCP_SYNACK_COOKIE = 2, +}; + +enum tcp_tw_status { + TCP_TW_SUCCESS = 0, + TCP_TW_RST = 1, + TCP_TW_ACK = 2, + TCP_TW_SYN = 3, +}; + +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, +}; + +enum tcx_action_base { + TCX_NEXT = -1, + TCX_PASS = 0, + TCX_DROP = 2, + TCX_REDIRECT = 7, +}; + +enum tg_state_flags { + THROTL_TG_PENDING = 1, + THROTL_TG_WAS_EMPTY = 2, + THROTL_TG_CANCELING = 4, +}; + +enum thermal_device_mode { + THERMAL_DEVICE_DISABLED = 0, + THERMAL_DEVICE_ENABLED = 1, +}; + +enum thermal_genl_attr { + THERMAL_GENL_ATTR_UNSPEC = 0, + THERMAL_GENL_ATTR_TZ = 1, + THERMAL_GENL_ATTR_TZ_ID = 2, + THERMAL_GENL_ATTR_TZ_TEMP = 3, + THERMAL_GENL_ATTR_TZ_TRIP = 4, + THERMAL_GENL_ATTR_TZ_TRIP_ID = 5, + THERMAL_GENL_ATTR_TZ_TRIP_TYPE = 6, + THERMAL_GENL_ATTR_TZ_TRIP_TEMP = 7, + THERMAL_GENL_ATTR_TZ_TRIP_HYST = 8, + THERMAL_GENL_ATTR_TZ_MODE = 9, + THERMAL_GENL_ATTR_TZ_NAME = 10, + THERMAL_GENL_ATTR_TZ_CDEV_WEIGHT = 11, + THERMAL_GENL_ATTR_TZ_GOV = 12, + THERMAL_GENL_ATTR_TZ_GOV_NAME = 13, + THERMAL_GENL_ATTR_CDEV = 14, + THERMAL_GENL_ATTR_CDEV_ID = 15, + THERMAL_GENL_ATTR_CDEV_CUR_STATE = 16, + THERMAL_GENL_ATTR_CDEV_MAX_STATE = 17, + THERMAL_GENL_ATTR_CDEV_NAME = 18, + THERMAL_GENL_ATTR_GOV_NAME = 19, + THERMAL_GENL_ATTR_CPU_CAPABILITY = 20, + THERMAL_GENL_ATTR_CPU_CAPABILITY_ID = 21, + THERMAL_GENL_ATTR_CPU_CAPABILITY_PERFORMANCE = 22, + THERMAL_GENL_ATTR_CPU_CAPABILITY_EFFICIENCY = 23, + THERMAL_GENL_ATTR_THRESHOLD = 24, + THERMAL_GENL_ATTR_THRESHOLD_TEMP = 25, + THERMAL_GENL_ATTR_THRESHOLD_DIRECTION = 26, + THERMAL_GENL_ATTR_TZ_PREV_TEMP = 27, + __THERMAL_GENL_ATTR_MAX = 28, +}; + +enum thermal_genl_cmd { + THERMAL_GENL_CMD_UNSPEC = 0, + THERMAL_GENL_CMD_TZ_GET_ID = 1, + THERMAL_GENL_CMD_TZ_GET_TRIP = 2, + THERMAL_GENL_CMD_TZ_GET_TEMP = 3, + THERMAL_GENL_CMD_TZ_GET_GOV = 4, + THERMAL_GENL_CMD_TZ_GET_MODE = 5, + THERMAL_GENL_CMD_CDEV_GET = 6, + THERMAL_GENL_CMD_THRESHOLD_GET = 7, + THERMAL_GENL_CMD_THRESHOLD_ADD = 8, + THERMAL_GENL_CMD_THRESHOLD_DELETE = 9, + THERMAL_GENL_CMD_THRESHOLD_FLUSH = 10, + __THERMAL_GENL_CMD_MAX = 11, +}; + +enum thermal_genl_event { + THERMAL_GENL_EVENT_UNSPEC = 0, + THERMAL_GENL_EVENT_TZ_CREATE = 1, + THERMAL_GENL_EVENT_TZ_DELETE = 2, + THERMAL_GENL_EVENT_TZ_DISABLE = 3, + THERMAL_GENL_EVENT_TZ_ENABLE = 4, + THERMAL_GENL_EVENT_TZ_TRIP_UP = 5, + THERMAL_GENL_EVENT_TZ_TRIP_DOWN = 6, + THERMAL_GENL_EVENT_TZ_TRIP_CHANGE = 7, + THERMAL_GENL_EVENT_TZ_TRIP_ADD = 8, + THERMAL_GENL_EVENT_TZ_TRIP_DELETE = 9, + THERMAL_GENL_EVENT_CDEV_ADD = 10, + THERMAL_GENL_EVENT_CDEV_DELETE = 11, + THERMAL_GENL_EVENT_CDEV_STATE_UPDATE = 12, + THERMAL_GENL_EVENT_TZ_GOV_CHANGE = 13, + THERMAL_GENL_EVENT_CPU_CAPABILITY_CHANGE = 14, + THERMAL_GENL_EVENT_THRESHOLD_ADD = 15, + THERMAL_GENL_EVENT_THRESHOLD_DELETE = 16, + THERMAL_GENL_EVENT_THRESHOLD_FLUSH = 17, + THERMAL_GENL_EVENT_THRESHOLD_UP = 18, + THERMAL_GENL_EVENT_THRESHOLD_DOWN = 19, + __THERMAL_GENL_EVENT_MAX = 20, +}; + +enum thermal_genl_multicast_groups { + THERMAL_GENL_SAMPLING_GROUP = 0, + THERMAL_GENL_EVENT_GROUP = 1, + THERMAL_GENL_MAX_GROUP = 1, +}; + +enum thermal_genl_sampling { + THERMAL_GENL_SAMPLING_TEMP = 0, + __THERMAL_GENL_SAMPLING_MAX = 1, +}; + +enum thermal_notify_event { + THERMAL_EVENT_UNSPECIFIED = 0, + THERMAL_EVENT_TEMP_SAMPLE = 1, + THERMAL_TRIP_VIOLATED = 2, + THERMAL_TRIP_CHANGED = 3, + THERMAL_DEVICE_DOWN = 4, + THERMAL_DEVICE_UP = 5, + THERMAL_DEVICE_POWER_CAPABILITY_CHANGED = 6, + THERMAL_TABLE_CHANGED = 7, + THERMAL_EVENT_KEEP_ALIVE = 8, + THERMAL_TZ_BIND_CDEV = 9, + THERMAL_TZ_UNBIND_CDEV = 10, + THERMAL_INSTANCE_WEIGHT_CHANGED = 11, + THERMAL_TZ_RESUME = 12, + THERMAL_TZ_ADD_THRESHOLD = 13, + THERMAL_TZ_DEL_THRESHOLD = 14, + THERMAL_TZ_FLUSH_THRESHOLDS = 15, +}; + +enum thermal_trend { + THERMAL_TREND_STABLE = 0, + THERMAL_TREND_RAISING = 1, + THERMAL_TREND_DROPPING = 2, +}; + +enum thermal_trip_type { + THERMAL_TRIP_ACTIVE = 0, + THERMAL_TRIP_PASSIVE = 1, + THERMAL_TRIP_HOT = 2, + THERMAL_TRIP_CRITICAL = 3, +}; + +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, +}; + +enum tick_dep_bits { + TICK_DEP_BIT_POSIX_TIMER = 0, + TICK_DEP_BIT_PERF_EVENTS = 1, + TICK_DEP_BIT_SCHED = 2, + TICK_DEP_BIT_CLOCK_UNSTABLE = 3, + TICK_DEP_BIT_RCU = 4, + TICK_DEP_BIT_RCU_EXP = 5, +}; + +enum tick_device_mode { + TICKDEV_MODE_PERIODIC = 0, + TICKDEV_MODE_ONESHOT = 1, +}; + +enum timekeeping_adv_mode { + TK_ADV_TICK = 0, + TK_ADV_FREQ = 1, +}; + +enum timespec_type { + TT_NONE = 0, + TT_NATIVE = 1, + TT_COMPAT = 2, +}; + +enum tis_access { + TPM_ACCESS_VALID = 128, + TPM_ACCESS_ACTIVE_LOCALITY = 32, + TPM_ACCESS_REQUEST_PENDING = 4, + TPM_ACCESS_REQUEST_USE = 2, +}; + +enum tis_defaults { + TIS_MEM_LEN = 20480, + TIS_SHORT_TIMEOUT = 750, + TIS_LONG_TIMEOUT = 4000, + TIS_TIMEOUT_MIN_ATML = 14700, + TIS_TIMEOUT_MAX_ATML = 15000, +}; + +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_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_RESPONSE_RETRY = 2, + TPM_STS_READ_ZERO = 35, +}; + +enum tk_offsets { + TK_OFFS_REAL = 0, + TK_OFFS_BOOT = 1, + TK_OFFS_TAI = 2, + TK_OFFS_MAX = 3, +}; + +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, + TLB_REMOTE_WRONG_CPU = 5, + NR_TLB_FLUSH_REASONS = 6, +}; + +enum tlb_infos { + ENTRIES = 0, + NR_INFO = 1, +}; + +enum tls_offload_ctx_dir { + TLS_OFFLOAD_CTX_DIR_RX = 0, + TLS_OFFLOAD_CTX_DIR_TX = 1, +}; + +enum tomoyo_acl_entry_type_index { + TOMOYO_TYPE_PATH_ACL = 0, + TOMOYO_TYPE_PATH2_ACL = 1, + TOMOYO_TYPE_PATH_NUMBER_ACL = 2, + TOMOYO_TYPE_MKDEV_ACL = 3, + TOMOYO_TYPE_MOUNT_ACL = 4, + TOMOYO_TYPE_INET_ACL = 5, + TOMOYO_TYPE_UNIX_ACL = 6, + TOMOYO_TYPE_ENV_ACL = 7, + TOMOYO_TYPE_MANUAL_TASK_ACL = 8, +}; + +enum tomoyo_conditions_index { + TOMOYO_TASK_UID = 0, + TOMOYO_TASK_EUID = 1, + TOMOYO_TASK_SUID = 2, + TOMOYO_TASK_FSUID = 3, + TOMOYO_TASK_GID = 4, + TOMOYO_TASK_EGID = 5, + TOMOYO_TASK_SGID = 6, + TOMOYO_TASK_FSGID = 7, + TOMOYO_TASK_PID = 8, + TOMOYO_TASK_PPID = 9, + TOMOYO_EXEC_ARGC = 10, + TOMOYO_EXEC_ENVC = 11, + TOMOYO_TYPE_IS_SOCKET = 12, + TOMOYO_TYPE_IS_SYMLINK = 13, + TOMOYO_TYPE_IS_FILE = 14, + TOMOYO_TYPE_IS_BLOCK_DEV = 15, + TOMOYO_TYPE_IS_DIRECTORY = 16, + TOMOYO_TYPE_IS_CHAR_DEV = 17, + TOMOYO_TYPE_IS_FIFO = 18, + TOMOYO_MODE_SETUID = 19, + TOMOYO_MODE_SETGID = 20, + TOMOYO_MODE_STICKY = 21, + TOMOYO_MODE_OWNER_READ = 22, + TOMOYO_MODE_OWNER_WRITE = 23, + TOMOYO_MODE_OWNER_EXECUTE = 24, + TOMOYO_MODE_GROUP_READ = 25, + TOMOYO_MODE_GROUP_WRITE = 26, + TOMOYO_MODE_GROUP_EXECUTE = 27, + TOMOYO_MODE_OTHERS_READ = 28, + TOMOYO_MODE_OTHERS_WRITE = 29, + TOMOYO_MODE_OTHERS_EXECUTE = 30, + TOMOYO_EXEC_REALPATH = 31, + TOMOYO_SYMLINK_TARGET = 32, + TOMOYO_PATH1_UID = 33, + TOMOYO_PATH1_GID = 34, + TOMOYO_PATH1_INO = 35, + TOMOYO_PATH1_MAJOR = 36, + TOMOYO_PATH1_MINOR = 37, + TOMOYO_PATH1_PERM = 38, + TOMOYO_PATH1_TYPE = 39, + TOMOYO_PATH1_DEV_MAJOR = 40, + TOMOYO_PATH1_DEV_MINOR = 41, + TOMOYO_PATH2_UID = 42, + TOMOYO_PATH2_GID = 43, + TOMOYO_PATH2_INO = 44, + TOMOYO_PATH2_MAJOR = 45, + TOMOYO_PATH2_MINOR = 46, + TOMOYO_PATH2_PERM = 47, + TOMOYO_PATH2_TYPE = 48, + TOMOYO_PATH2_DEV_MAJOR = 49, + TOMOYO_PATH2_DEV_MINOR = 50, + TOMOYO_PATH1_PARENT_UID = 51, + TOMOYO_PATH1_PARENT_GID = 52, + TOMOYO_PATH1_PARENT_INO = 53, + TOMOYO_PATH1_PARENT_PERM = 54, + TOMOYO_PATH2_PARENT_UID = 55, + TOMOYO_PATH2_PARENT_GID = 56, + TOMOYO_PATH2_PARENT_INO = 57, + TOMOYO_PATH2_PARENT_PERM = 58, + TOMOYO_MAX_CONDITION_KEYWORD = 59, + TOMOYO_NUMBER_UNION = 60, + TOMOYO_NAME_UNION = 61, + TOMOYO_ARGV_ENTRY = 62, + TOMOYO_ENVP_ENTRY = 63, +}; + +enum tomoyo_domain_info_flags_index { + TOMOYO_DIF_QUOTA_WARNED = 0, + TOMOYO_DIF_TRANSITION_FAILED = 1, + TOMOYO_MAX_DOMAIN_INFO_FLAGS = 2, +}; + +enum tomoyo_grant_log { + TOMOYO_GRANTLOG_AUTO = 0, + TOMOYO_GRANTLOG_NO = 1, + TOMOYO_GRANTLOG_YES = 2, +}; + +enum tomoyo_group_id { + TOMOYO_PATH_GROUP = 0, + TOMOYO_NUMBER_GROUP = 1, + TOMOYO_ADDRESS_GROUP = 2, + TOMOYO_MAX_GROUP = 3, +}; + +enum tomoyo_mac_category_index { + TOMOYO_MAC_CATEGORY_FILE = 0, + TOMOYO_MAC_CATEGORY_NETWORK = 1, + TOMOYO_MAC_CATEGORY_MISC = 2, + TOMOYO_MAX_MAC_CATEGORY_INDEX = 3, +}; + +enum tomoyo_mac_index { + TOMOYO_MAC_FILE_EXECUTE = 0, + TOMOYO_MAC_FILE_OPEN = 1, + TOMOYO_MAC_FILE_CREATE = 2, + TOMOYO_MAC_FILE_UNLINK = 3, + TOMOYO_MAC_FILE_GETATTR = 4, + TOMOYO_MAC_FILE_MKDIR = 5, + TOMOYO_MAC_FILE_RMDIR = 6, + TOMOYO_MAC_FILE_MKFIFO = 7, + TOMOYO_MAC_FILE_MKSOCK = 8, + TOMOYO_MAC_FILE_TRUNCATE = 9, + TOMOYO_MAC_FILE_SYMLINK = 10, + TOMOYO_MAC_FILE_MKBLOCK = 11, + TOMOYO_MAC_FILE_MKCHAR = 12, + TOMOYO_MAC_FILE_LINK = 13, + TOMOYO_MAC_FILE_RENAME = 14, + TOMOYO_MAC_FILE_CHMOD = 15, + TOMOYO_MAC_FILE_CHOWN = 16, + TOMOYO_MAC_FILE_CHGRP = 17, + TOMOYO_MAC_FILE_IOCTL = 18, + TOMOYO_MAC_FILE_CHROOT = 19, + TOMOYO_MAC_FILE_MOUNT = 20, + TOMOYO_MAC_FILE_UMOUNT = 21, + TOMOYO_MAC_FILE_PIVOT_ROOT = 22, + TOMOYO_MAC_NETWORK_INET_STREAM_BIND = 23, + TOMOYO_MAC_NETWORK_INET_STREAM_LISTEN = 24, + TOMOYO_MAC_NETWORK_INET_STREAM_CONNECT = 25, + TOMOYO_MAC_NETWORK_INET_DGRAM_BIND = 26, + TOMOYO_MAC_NETWORK_INET_DGRAM_SEND = 27, + TOMOYO_MAC_NETWORK_INET_RAW_BIND = 28, + TOMOYO_MAC_NETWORK_INET_RAW_SEND = 29, + TOMOYO_MAC_NETWORK_UNIX_STREAM_BIND = 30, + TOMOYO_MAC_NETWORK_UNIX_STREAM_LISTEN = 31, + TOMOYO_MAC_NETWORK_UNIX_STREAM_CONNECT = 32, + TOMOYO_MAC_NETWORK_UNIX_DGRAM_BIND = 33, + TOMOYO_MAC_NETWORK_UNIX_DGRAM_SEND = 34, + TOMOYO_MAC_NETWORK_UNIX_SEQPACKET_BIND = 35, + TOMOYO_MAC_NETWORK_UNIX_SEQPACKET_LISTEN = 36, + TOMOYO_MAC_NETWORK_UNIX_SEQPACKET_CONNECT = 37, + TOMOYO_MAC_ENVIRON = 38, + TOMOYO_MAX_MAC_INDEX = 39, +}; + +enum tomoyo_memory_stat_type { + TOMOYO_MEMORY_POLICY = 0, + TOMOYO_MEMORY_AUDIT = 1, + TOMOYO_MEMORY_QUERY = 2, + TOMOYO_MAX_MEMORY_STAT = 3, +}; + +enum tomoyo_mkdev_acl_index { + TOMOYO_TYPE_MKBLOCK = 0, + TOMOYO_TYPE_MKCHAR = 1, + TOMOYO_MAX_MKDEV_OPERATION = 2, +}; + +enum tomoyo_mode_index { + TOMOYO_CONFIG_DISABLED = 0, + TOMOYO_CONFIG_LEARNING = 1, + TOMOYO_CONFIG_PERMISSIVE = 2, + TOMOYO_CONFIG_ENFORCING = 3, + TOMOYO_CONFIG_MAX_MODE = 4, + TOMOYO_CONFIG_WANT_REJECT_LOG = 64, + TOMOYO_CONFIG_WANT_GRANT_LOG = 128, + TOMOYO_CONFIG_USE_DEFAULT = 255, +}; + +enum tomoyo_network_acl_index { + TOMOYO_NETWORK_BIND = 0, + TOMOYO_NETWORK_LISTEN = 1, + TOMOYO_NETWORK_CONNECT = 2, + TOMOYO_NETWORK_SEND = 3, + TOMOYO_MAX_NETWORK_OPERATION = 4, +}; + +enum tomoyo_path2_acl_index { + TOMOYO_TYPE_LINK = 0, + TOMOYO_TYPE_RENAME = 1, + TOMOYO_TYPE_PIVOT_ROOT = 2, + TOMOYO_MAX_PATH2_OPERATION = 3, +}; + +enum tomoyo_path_acl_index { + TOMOYO_TYPE_EXECUTE = 0, + TOMOYO_TYPE_READ = 1, + TOMOYO_TYPE_WRITE = 2, + TOMOYO_TYPE_APPEND = 3, + TOMOYO_TYPE_UNLINK = 4, + TOMOYO_TYPE_GETATTR = 5, + TOMOYO_TYPE_RMDIR = 6, + TOMOYO_TYPE_TRUNCATE = 7, + TOMOYO_TYPE_SYMLINK = 8, + TOMOYO_TYPE_CHROOT = 9, + TOMOYO_TYPE_UMOUNT = 10, + TOMOYO_MAX_PATH_OPERATION = 11, +}; + +enum tomoyo_path_number_acl_index { + TOMOYO_TYPE_CREATE = 0, + TOMOYO_TYPE_MKDIR = 1, + TOMOYO_TYPE_MKFIFO = 2, + TOMOYO_TYPE_MKSOCK = 3, + TOMOYO_TYPE_IOCTL = 4, + TOMOYO_TYPE_CHMOD = 5, + TOMOYO_TYPE_CHOWN = 6, + TOMOYO_TYPE_CHGRP = 7, + TOMOYO_MAX_PATH_NUMBER_OPERATION = 8, +}; + +enum tomoyo_path_stat_index { + TOMOYO_PATH1 = 0, + TOMOYO_PATH1_PARENT = 1, + TOMOYO_PATH2 = 2, + TOMOYO_PATH2_PARENT = 3, + TOMOYO_MAX_PATH_STAT = 4, +}; + +enum tomoyo_policy_id { + TOMOYO_ID_GROUP = 0, + TOMOYO_ID_ADDRESS_GROUP = 1, + TOMOYO_ID_PATH_GROUP = 2, + TOMOYO_ID_NUMBER_GROUP = 3, + TOMOYO_ID_TRANSITION_CONTROL = 4, + TOMOYO_ID_AGGREGATOR = 5, + TOMOYO_ID_MANAGER = 6, + TOMOYO_ID_CONDITION = 7, + TOMOYO_ID_NAME = 8, + TOMOYO_ID_ACL = 9, + TOMOYO_ID_DOMAIN = 10, + TOMOYO_MAX_POLICY = 11, +}; + +enum tomoyo_policy_stat_type { + TOMOYO_STAT_POLICY_UPDATES = 0, + TOMOYO_STAT_POLICY_LEARNING = 1, + TOMOYO_STAT_POLICY_PERMISSIVE = 2, + TOMOYO_STAT_POLICY_ENFORCING = 3, + TOMOYO_MAX_POLICY_STAT = 4, +}; + +enum tomoyo_pref_index { + TOMOYO_PREF_MAX_AUDIT_LOG = 0, + TOMOYO_PREF_MAX_LEARNING_ENTRY = 1, + TOMOYO_MAX_PREF = 2, +}; + +enum tomoyo_securityfs_interface_index { + TOMOYO_DOMAINPOLICY = 0, + TOMOYO_EXCEPTIONPOLICY = 1, + TOMOYO_PROCESS_STATUS = 2, + TOMOYO_STAT = 3, + TOMOYO_AUDIT = 4, + TOMOYO_VERSION = 5, + TOMOYO_PROFILE = 6, + TOMOYO_QUERY = 7, + TOMOYO_MANAGER = 8, +}; + +enum tomoyo_special_mount { + TOMOYO_MOUNT_BIND = 0, + TOMOYO_MOUNT_MOVE = 1, + TOMOYO_MOUNT_REMOUNT = 2, + TOMOYO_MOUNT_MAKE_UNBINDABLE = 3, + TOMOYO_MOUNT_MAKE_PRIVATE = 4, + TOMOYO_MOUNT_MAKE_SLAVE = 5, + TOMOYO_MOUNT_MAKE_SHARED = 6, + TOMOYO_MAX_SPECIAL_MOUNT = 7, +}; + +enum tomoyo_transition_type { + TOMOYO_TRANSITION_CONTROL_NO_RESET = 0, + TOMOYO_TRANSITION_CONTROL_RESET = 1, + TOMOYO_TRANSITION_CONTROL_NO_INITIALIZE = 2, + TOMOYO_TRANSITION_CONTROL_INITIALIZE = 3, + TOMOYO_TRANSITION_CONTROL_NO_KEEP = 4, + TOMOYO_TRANSITION_CONTROL_KEEP = 5, + TOMOYO_MAX_TRANSITION_TYPE = 6, +}; + +enum tomoyo_value_type { + TOMOYO_VALUE_TYPE_INVALID = 0, + TOMOYO_VALUE_TYPE_DECIMAL = 1, + TOMOYO_VALUE_TYPE_OCTAL = 2, + TOMOYO_VALUE_TYPE_HEXADECIMAL = 3, +}; + +enum topo_types { + INVALID_TYPE = 0, + SMT_TYPE = 1, + CORE_TYPE = 2, + MAX_TYPE_0B = 3, + MODULE_TYPE = 3, + AMD_CCD_TYPE = 3, + TILE_TYPE = 4, + AMD_SOCKET_TYPE = 4, + MAX_TYPE_80000026 = 5, + DIE_TYPE = 5, + DIEGRP_TYPE = 6, + MAX_TYPE_1F = 7, +}; + +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, +}; + +enum tpacket_versions { + TPACKET_V1 = 0, + TPACKET_V2 = 1, + TPACKET_V3 = 2, +}; + +enum tph_mem_type { + TPH_MEM_TYPE_VM = 0, + TPH_MEM_TYPE_PM = 1, +}; + +enum tpm2_capabilities { + TPM2_CAP_HANDLES = 1, + TPM2_CAP_COMMANDS = 2, + TPM2_CAP_PCRS = 5, + TPM2_CAP_TPM_PROPERTIES = 6, +}; + +enum tpm2_cc_attrs { + TPM2_CC_ATTR_CHANDLES = 25, + TPM2_CC_ATTR_RHANDLE = 28, + TPM2_CC_ATTR_VENDOR = 29, +}; + +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_READ_PUBLIC = 371, + TPM2_CC_START_AUTH_SESS = 374, + 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 tpm2_const { + TPM2_PLATFORM_PCR = 24, + TPM2_PCR_SELECT_MIN = 3, +}; + +enum tpm2_handle_types { + TPM2_HT_HMAC_SESSION = 33554432, + TPM2_HT_POLICY_SESSION = 50331648, + TPM2_HT_TRANSIENT = 2147483648, +}; + +enum tpm2_object_attributes { + TPM2_OA_FIXED_TPM = 2, + TPM2_OA_ST_CLEAR = 4, + TPM2_OA_FIXED_PARENT = 16, + TPM2_OA_SENSITIVE_DATA_ORIGIN = 32, + TPM2_OA_USER_WITH_AUTH = 64, + TPM2_OA_ADMIN_WITH_POLICY = 128, + TPM2_OA_NO_DA = 1024, + TPM2_OA_ENCRYPTED_DUPLICATION = 2048, + TPM2_OA_RESTRICTED = 65536, + TPM2_OA_DECRYPT = 131072, + TPM2_OA_SIGN = 262144, +}; + +enum tpm2_permanent_handles { + TPM2_RH_NULL = 1073741831, + TPM2_RS_PW = 1073741833, +}; + +enum tpm2_properties { + TPM_PT_TOTAL_COMMANDS = 297, +}; + +enum tpm2_return_codes { + TPM2_RC_SUCCESS = 0, + TPM2_RC_HASH = 131, + TPM2_RC_HANDLE = 139, + TPM2_RC_INTEGRITY = 159, + 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, + TPM2_RC_SESSION_MEMORY = 2307, +}; + +enum tpm2_session_attributes { + TPM2_SA_CONTINUE_SESSION = 1, + TPM2_SA_AUDIT_EXCLUSIVE = 2, + TPM2_SA_AUDIT_RESET = 8, + TPM2_SA_DECRYPT = 32, + TPM2_SA_ENCRYPT = 64, + TPM2_SA_AUDIT = 128, +}; + +enum tpm2_startup_types { + TPM2_SU_CLEAR = 0, + TPM2_SU_STATE = 1, +}; + +enum tpm2_structures { + TPM2_ST_NO_SESSIONS = 32769, + TPM2_ST_SESSIONS = 32770, + TPM2_ST_CREATION = 32801, +}; + +enum tpm2_timeouts { + TPM2_TIMEOUT_A = 750, + TPM2_TIMEOUT_B = 4000, + 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 tpm2key_actions { + ACT_tpm2_key_parent = 0, + ACT_tpm2_key_priv = 1, + ACT_tpm2_key_pub = 2, + ACT_tpm2_key_type = 3, + NR__tpm2key_actions = 4, +}; + +enum tpm_algorithms { + TPM_ALG_ERROR = 0, + TPM_ALG_SHA1 = 4, + TPM_ALG_AES = 6, + 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, + TPM_ALG_ECC = 35, + TPM_ALG_CFB = 67, +}; + +enum tpm_buf_flags { + TPM_BUF_OVERFLOW = 1, + TPM_BUF_TPM2B = 2, + TPM_BUF_BOUNDARY_ERROR = 4, +}; + +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_chip_flags { + TPM_CHIP_FLAG_BOOTSTRAPPED = 1, + TPM_CHIP_FLAG_TPM2 = 2, + TPM_CHIP_FLAG_IRQ = 4, + TPM_CHIP_FLAG_VIRTUAL = 8, + TPM_CHIP_FLAG_HAVE_TIMEOUTS = 16, + TPM_CHIP_FLAG_ALWAYS_POWERED = 32, + TPM_CHIP_FLAG_FIRMWARE_POWER_MANAGED = 64, + TPM_CHIP_FLAG_FIRMWARE_UPGRADE = 128, + TPM_CHIP_FLAG_SUSPENDED = 256, + TPM_CHIP_FLAG_HWRNG_DISABLED = 512, + TPM_CHIP_FLAG_DISABLE = 1024, +}; + +enum tpm_duration { + TPM_SHORT = 0, + TPM_MEDIUM = 1, + TPM_LONG = 2, + TPM_LONG_LONG = 3, + TPM_UNDEFINED = 4, + TPM_NUM_DURATIONS = 4, +}; + +enum tpm_pcrs { + TPM_PCR0 = 0, + TPM_PCR8 = 8, + TPM_PCR10 = 10, +}; + +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_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, +}; + +enum tpm_tis_flags { + TPM_TIS_ITPM_WORKAROUND = 0, + TPM_TIS_INVALID_STATUS = 1, + TPM_TIS_DEFAULT_CANCELLATION = 2, + TPM_TIS_IRQ_TESTED = 3, + TPM_TIS_STATUS_VALID_RETRY = 4, +}; + +enum tpm_tis_io_mode { + TPM_TIS_PHYS_8 = 0, + TPM_TIS_PHYS_16 = 1, + TPM_TIS_PHYS_32 = 2, +}; + +enum tps65090_cells { + PMIC = 0, + CHARGER = 1, +}; + +enum tps65912_irqs { + TPS65912_IRQ_PWRHOLD_F = 0, + TPS65912_IRQ_VMON = 1, + TPS65912_IRQ_PWRON = 2, + TPS65912_IRQ_PWRON_LP = 3, + TPS65912_IRQ_PWRHOLD_R = 4, + TPS65912_IRQ_HOTDIE = 5, + TPS65912_IRQ_GPIO1_R = 6, + TPS65912_IRQ_GPIO1_F = 7, + TPS65912_IRQ_GPIO2_R = 8, + TPS65912_IRQ_GPIO2_F = 9, + TPS65912_IRQ_GPIO3_R = 10, + TPS65912_IRQ_GPIO3_F = 11, + TPS65912_IRQ_GPIO4_R = 12, + TPS65912_IRQ_GPIO4_F = 13, + TPS65912_IRQ_GPIO5_R = 14, + TPS65912_IRQ_GPIO5_F = 15, + TPS65912_IRQ_PGOOD_DCDC1 = 16, + TPS65912_IRQ_PGOOD_DCDC2 = 17, + TPS65912_IRQ_PGOOD_DCDC3 = 18, + TPS65912_IRQ_PGOOD_DCDC4 = 19, + TPS65912_IRQ_PGOOD_LDO1 = 20, + TPS65912_IRQ_PGOOD_LDO2 = 21, + TPS65912_IRQ_PGOOD_LDO3 = 22, + TPS65912_IRQ_PGOOD_LDO4 = 23, + TPS65912_IRQ_PGOOD_LDO5 = 24, + TPS65912_IRQ_PGOOD_LDO6 = 25, + TPS65912_IRQ_PGOOD_LDO7 = 26, + TPS65912_IRQ_PGOOD_LDO8 = 27, + TPS65912_IRQ_PGOOD_LDO9 = 28, + TPS65912_IRQ_PGOOD_LDO10 = 29, +}; + +enum tps65917_irqs { + TPS65917_RESERVED1 = 0, + TPS65917_PWRON_IRQ = 1, + TPS65917_LONG_PRESS_KEY_IRQ = 2, + TPS65917_RESERVED2 = 3, + TPS65917_PWRDOWN_IRQ = 4, + TPS65917_HOTDIE_IRQ = 5, + TPS65917_VSYS_MON_IRQ = 6, + TPS65917_RESERVED3 = 7, + TPS65917_RESERVED4 = 8, + TPS65917_OTP_ERROR_IRQ = 9, + TPS65917_WDT_IRQ = 10, + TPS65917_RESERVED5 = 11, + TPS65917_RESET_IN_IRQ = 12, + TPS65917_FSD_IRQ = 13, + TPS65917_SHORT_IRQ = 14, + TPS65917_RESERVED6 = 15, + TPS65917_GPADC_AUTO_0_IRQ = 16, + TPS65917_GPADC_AUTO_1_IRQ = 17, + TPS65917_GPADC_EOC_SW_IRQ = 18, + TPS65917_RESREVED6 = 19, + TPS65917_RESERVED7 = 20, + TPS65917_RESERVED8 = 21, + TPS65917_RESERVED9 = 22, + TPS65917_VBUS_IRQ = 23, + TPS65917_GPIO_0_IRQ = 24, + TPS65917_GPIO_1_IRQ = 25, + TPS65917_GPIO_2_IRQ = 26, + TPS65917_GPIO_3_IRQ = 27, + TPS65917_GPIO_4_IRQ = 28, + TPS65917_GPIO_5_IRQ = 29, + TPS65917_GPIO_6_IRQ = 30, + TPS65917_RESERVED10 = 31, + TPS65917_NUM_IRQ = 32, +}; + +enum trace_flag_type { + TRACE_FLAG_IRQS_OFF = 1, + TRACE_FLAG_NEED_RESCHED_LAZY = 2, + TRACE_FLAG_NEED_RESCHED = 4, + TRACE_FLAG_HARDIRQ = 8, + TRACE_FLAG_SOFTIRQ = 16, + TRACE_FLAG_PREEMPT_RESCHED = 32, + TRACE_FLAG_NMI = 64, + TRACE_FLAG_BH_OFF = 128, +}; + +enum trace_iter_flags { + TRACE_FILE_LAT_FMT = 1, + TRACE_FILE_ANNOTATE = 2, + TRACE_FILE_TIME_IN_NS = 4, +}; + +enum trace_iterator_bits { + TRACE_ITER_PRINT_PARENT_BIT = 0, + TRACE_ITER_SYM_OFFSET_BIT = 1, + TRACE_ITER_SYM_ADDR_BIT = 2, + TRACE_ITER_VERBOSE_BIT = 3, + TRACE_ITER_RAW_BIT = 4, + TRACE_ITER_HEX_BIT = 5, + TRACE_ITER_BIN_BIT = 6, + TRACE_ITER_BLOCK_BIT = 7, + TRACE_ITER_FIELDS_BIT = 8, + TRACE_ITER_PRINTK_BIT = 9, + TRACE_ITER_ANNOTATE_BIT = 10, + TRACE_ITER_USERSTACKTRACE_BIT = 11, + TRACE_ITER_SYM_USEROBJ_BIT = 12, + TRACE_ITER_PRINTK_MSGONLY_BIT = 13, + TRACE_ITER_CONTEXT_INFO_BIT = 14, + TRACE_ITER_LATENCY_FMT_BIT = 15, + TRACE_ITER_RECORD_CMD_BIT = 16, + TRACE_ITER_RECORD_TGID_BIT = 17, + TRACE_ITER_OVERWRITE_BIT = 18, + TRACE_ITER_STOP_ON_FREE_BIT = 19, + TRACE_ITER_IRQ_INFO_BIT = 20, + TRACE_ITER_MARKERS_BIT = 21, + TRACE_ITER_EVENT_FORK_BIT = 22, + TRACE_ITER_TRACE_PRINTK_BIT = 23, + TRACE_ITER_PAUSE_ON_TRACE_BIT = 24, + TRACE_ITER_HASH_PTR_BIT = 25, + TRACE_ITER_FUNCTION_BIT = 26, + TRACE_ITER_FUNC_FORK_BIT = 27, + TRACE_ITER_DISPLAY_GRAPH_BIT = 28, + TRACE_ITER_STACKTRACE_BIT = 29, + TRACE_ITER_LAST_BIT = 30, +}; + +enum trace_iterator_flags { + TRACE_ITER_PRINT_PARENT = 1, + TRACE_ITER_SYM_OFFSET = 2, + TRACE_ITER_SYM_ADDR = 4, + TRACE_ITER_VERBOSE = 8, + TRACE_ITER_RAW = 16, + TRACE_ITER_HEX = 32, + TRACE_ITER_BIN = 64, + TRACE_ITER_BLOCK = 128, + TRACE_ITER_FIELDS = 256, + TRACE_ITER_PRINTK = 512, + TRACE_ITER_ANNOTATE = 1024, + TRACE_ITER_USERSTACKTRACE = 2048, + TRACE_ITER_SYM_USEROBJ = 4096, + TRACE_ITER_PRINTK_MSGONLY = 8192, + TRACE_ITER_CONTEXT_INFO = 16384, + TRACE_ITER_LATENCY_FMT = 32768, + TRACE_ITER_RECORD_CMD = 65536, + TRACE_ITER_RECORD_TGID = 131072, + TRACE_ITER_OVERWRITE = 262144, + TRACE_ITER_STOP_ON_FREE = 524288, + TRACE_ITER_IRQ_INFO = 1048576, + TRACE_ITER_MARKERS = 2097152, + TRACE_ITER_EVENT_FORK = 4194304, + TRACE_ITER_TRACE_PRINTK = 8388608, + TRACE_ITER_PAUSE_ON_TRACE = 16777216, + TRACE_ITER_HASH_PTR = 33554432, + TRACE_ITER_FUNCTION = 67108864, + TRACE_ITER_FUNC_FORK = 134217728, + TRACE_ITER_DISPLAY_GRAPH = 268435456, + TRACE_ITER_STACKTRACE = 536870912, +}; + +enum trace_reg { + TRACE_REG_REGISTER = 0, + TRACE_REG_UNREGISTER = 1, + TRACE_REG_PERF_REGISTER = 2, + TRACE_REG_PERF_UNREGISTER = 3, + TRACE_REG_PERF_OPEN = 4, + TRACE_REG_PERF_CLOSE = 5, + TRACE_REG_PERF_ADD = 6, + TRACE_REG_PERF_DEL = 7, +}; + +enum 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_GRAPH_RETADDR_ENT = 12, + TRACE_USER_STACK = 13, + TRACE_BLK = 14, + TRACE_BPUTS = 15, + TRACE_HWLAT = 16, + TRACE_OSNOISE = 17, + TRACE_TIMERLAT = 18, + TRACE_RAW_DATA = 19, + TRACE_FUNC_REPEATS = 20, + __TRACE_LAST_TYPE = 21, +}; + +enum track_item { + TRACK_ALLOC = 0, + TRACK_FREE = 1, +}; + +enum translation_map { + LAT1_MAP = 0, + GRAF_MAP = 1, + IBMPC_MAP = 2, + USER_MAP = 3, + FIRST_MAP = 0, + LAST_MAP = 3, +}; + +enum transparent_hugepage_flag { + TRANSPARENT_HUGEPAGE_UNSUPPORTED = 0, + TRANSPARENT_HUGEPAGE_FLAG = 1, + TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG = 2, + TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG = 3, + TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG = 4, + TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG = 5, + TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG = 6, + TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG = 7, + TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG = 8, +}; + +enum tsq_enum { + TSQ_THROTTLED = 0, + TSQ_QUEUED = 1, + TCP_TSQ_DEFERRED = 2, + TCP_WRITE_TIMER_DEFERRED = 3, + TCP_DELACK_TIMER_DEFERRED = 4, + TCP_MTU_REDUCED_DEFERRED = 5, + TCP_ACK_DEFERRED = 6, +}; + +enum tsq_flags { + TSQF_THROTTLED = 1, + TSQF_QUEUED = 2, + TCPF_TSQ_DEFERRED = 4, + TCPF_WRITE_TIMER_DEFERRED = 8, + TCPF_DELACK_TIMER_DEFERRED = 16, + TCPF_MTU_REDUCED_DEFERRED = 32, + TCPF_ACK_DEFERRED = 64, +}; + +enum tsx_ctrl_states { + TSX_CTRL_ENABLE = 0, + TSX_CTRL_DISABLE = 1, + TSX_CTRL_RTM_ALWAYS_ABORT = 2, + TSX_CTRL_NOT_SUPPORTED = 3, +}; + +enum ttu_flags { + TTU_SPLIT_HUGE_PMD = 4, + TTU_IGNORE_MLOCK = 8, + TTU_SYNC = 16, + TTU_HWPOISON = 32, + TTU_BATCH_FLUSH = 64, + TTU_RMAP_LOCKED = 128, +}; + +enum tty_flow_change { + TTY_FLOW_NO_CHANGE = 0, + TTY_THROTTLE_SAFE = 1, + TTY_UNTHROTTLE_SAFE = 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 twl4030_audio_res { + TWL4030_AUDIO_RES_POWER = 0, + TWL4030_AUDIO_RES_APLL = 1, + TWL4030_AUDIO_RES_MAX = 2, +}; + +enum twl4030_module_ids { + TWL4030_MODULE_AUDIO_VOICE = 9, + TWL4030_MODULE_GPIO = 10, + TWL4030_MODULE_INTBR = 11, + TWL4030_MODULE_TEST = 12, + TWL4030_MODULE_KEYPAD = 13, + TWL4030_MODULE_MADC = 14, + TWL4030_MODULE_INTERRUPTS = 15, + TWL4030_MODULE_PRECHARGE = 16, + TWL4030_MODULE_BACKUP = 17, + TWL4030_MODULE_INT = 18, + TWL5031_MODULE_ACCESSORY = 19, + TWL5031_MODULE_INTERRUPTS = 20, + TWL4030_MODULE_LAST = 21, +}; + +enum twl6030_module_ids { + TWL6030_MODULE_ID0 = 9, + TWL6030_MODULE_ID1 = 10, + TWL6030_MODULE_ID2 = 11, + TWL6030_MODULE_GPADC = 12, + TWL6030_MODULE_GASGAUGE = 13, + TWL6032_MODULE_CHARGE = 14, + TWL6030_MODULE_LAST = 15, +}; + +enum twl_module_ids { + TWL_MODULE_USB = 0, + TWL_MODULE_PIH = 1, + TWL_MODULE_MAIN_CHARGE = 2, + TWL_MODULE_PM_MASTER = 3, + TWL_MODULE_PM_RECEIVER = 4, + TWL_MODULE_RTC = 5, + TWL_MODULE_PWM = 6, + TWL_MODULE_LED = 7, + TWL_MODULE_SECURED_REG = 8, + TWL_MODULE_LAST = 9, +}; + +enum txtime_flags { + SOF_TXTIME_DEADLINE_MODE = 1, + SOF_TXTIME_REPORT_ERRORS = 2, + SOF_TXTIME_FLAGS_LAST = 2, + SOF_TXTIME_FLAGS_MASK = 3, +}; + +enum uart_pm_state { + UART_PM_STATE_ON = 0, + UART_PM_STATE_OFF = 3, + UART_PM_STATE_UNDEFINED = 4, +}; + +enum uclamp_id { + UCLAMP_MIN = 0, + UCLAMP_MAX = 1, + UCLAMP_CNT = 2, +}; + +enum ucode_state { + UCODE_OK = 0, + UCODE_NEW = 1, + UCODE_NEW_SAFE = 2, + UCODE_UPDATED = 3, + UCODE_NFOUND = 4, + UCODE_ERROR = 5, + UCODE_TIMEOUT = 6, + UCODE_OFFLINE = 7, +}; + +enum ucount_type { + UCOUNT_USER_NAMESPACES = 0, + UCOUNT_PID_NAMESPACES = 1, + UCOUNT_UTS_NAMESPACES = 2, + UCOUNT_IPC_NAMESPACES = 3, + UCOUNT_NET_NAMESPACES = 4, + UCOUNT_MNT_NAMESPACES = 5, + UCOUNT_CGROUP_NAMESPACES = 6, + UCOUNT_TIME_NAMESPACES = 7, + UCOUNT_INOTIFY_INSTANCES = 8, + UCOUNT_INOTIFY_WATCHES = 9, + UCOUNT_FANOTIFY_GROUPS = 10, + UCOUNT_FANOTIFY_MARKS = 11, + UCOUNT_COUNTS = 12, +}; + +enum udp_conntrack { + UDP_CT_UNREPLIED = 0, + UDP_CT_REPLIED = 1, + UDP_CT_MAX = 2, +}; + +enum udp_parsable_tunnel_type { + UDP_TUNNEL_TYPE_VXLAN = 1, + UDP_TUNNEL_TYPE_GENEVE = 2, + UDP_TUNNEL_TYPE_VXLAN_GPE = 4, +}; + +enum udp_tunnel_nic_info_flags { + UDP_TUNNEL_NIC_INFO_MAY_SLEEP = 1, + UDP_TUNNEL_NIC_INFO_OPEN_ONLY = 2, + UDP_TUNNEL_NIC_INFO_IPV4_ONLY = 4, + UDP_TUNNEL_NIC_INFO_STATIC_IANA_VXLAN = 8, +}; + +enum 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 uinput_state { + UIST_NEW_DEVICE = 0, + UIST_SETUP_COMPLETE = 1, + UIST_CREATED = 2, +}; + +enum umh_disable_depth { + UMH_ENABLED = 0, + UMH_FREEZING = 1, + UMH_DISABLED = 2, +}; + +enum umount_tree_flags { + UMOUNT_SYNC = 1, + UMOUNT_PROPAGATE = 2, + UMOUNT_CONNECTED = 4, +}; + +enum uncore_access_type { + UNCORE_ACCESS_MSR = 0, + UNCORE_ACCESS_MMIO = 1, + UNCORE_ACCESS_PCI = 2, + UNCORE_ACCESS_MAX = 3, +}; + +enum unix_vertex_index { + UNIX_VERTEX_INDEX_MARK1 = 0, + UNIX_VERTEX_INDEX_MARK2 = 1, + UNIX_VERTEX_INDEX_START = 2, +}; + +enum uprobe_task_state { + UTASK_RUNNING = 0, + UTASK_SSTEP = 1, + UTASK_SSTEP_ACK = 2, + UTASK_SSTEP_TRAPPED = 3, +}; + +enum usb3_link_state { + USB3_LPM_U0 = 0, + USB3_LPM_U1 = 1, + USB3_LPM_U2 = 2, + USB3_LPM_U3 = 3, +}; + +enum usb_charger_state { + USB_CHARGER_DEFAULT = 0, + USB_CHARGER_PRESENT = 1, + USB_CHARGER_ABSENT = 2, +}; + +enum usb_charger_type { + UNKNOWN_TYPE = 0, + SDP_TYPE = 1, + DCP_TYPE = 2, + CDP_TYPE = 3, + ACA_TYPE = 4, +}; + +enum usb_dev_authorize_policy { + USB_DEVICE_AUTHORIZE_NONE = 0, + USB_DEVICE_AUTHORIZE_ALL = 1, + USB_DEVICE_AUTHORIZE_INTERNAL = 2, +}; + +enum usb_device_speed { + USB_SPEED_UNKNOWN = 0, + USB_SPEED_LOW = 1, + USB_SPEED_FULL = 2, + USB_SPEED_HIGH = 3, + USB_SPEED_WIRELESS = 4, + USB_SPEED_SUPER = 5, + USB_SPEED_SUPER_PLUS = 6, +}; + +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_dr_mode { + USB_DR_MODE_UNKNOWN = 0, + USB_DR_MODE_HOST = 1, + USB_DR_MODE_PERIPHERAL = 2, + USB_DR_MODE_OTG = 3, +}; + +enum usb_interface_condition { + USB_INTERFACE_UNBOUND = 0, + USB_INTERFACE_BINDING = 1, + USB_INTERFACE_BOUND = 2, + USB_INTERFACE_UNBINDING = 3, +}; + +enum usb_led_event { + USB_LED_EVENT_HOST = 0, + USB_LED_EVENT_GADGET = 1, +}; + +enum usb_link_tunnel_mode { + USB_LINK_UNKNOWN = 0, + USB_LINK_NATIVE = 1, + USB_LINK_TUNNELED = 2, +}; + +enum usb_otg_state { + OTG_STATE_UNDEFINED = 0, + OTG_STATE_B_IDLE = 1, + OTG_STATE_B_SRP_INIT = 2, + OTG_STATE_B_PERIPHERAL = 3, + OTG_STATE_B_WAIT_ACON = 4, + OTG_STATE_B_HOST = 5, + OTG_STATE_A_IDLE = 6, + OTG_STATE_A_WAIT_VRISE = 7, + OTG_STATE_A_WAIT_BCON = 8, + OTG_STATE_A_HOST = 9, + OTG_STATE_A_SUSPEND = 10, + OTG_STATE_A_PERIPHERAL = 11, + OTG_STATE_A_WAIT_VFALL = 12, + OTG_STATE_A_VBUS_ERR = 13, +}; + +enum usb_phy_events { + USB_EVENT_NONE = 0, + USB_EVENT_VBUS = 1, + USB_EVENT_ID = 2, + USB_EVENT_CHARGER = 3, + USB_EVENT_ENUMERATED = 4, +}; + +enum usb_phy_type { + USB_PHY_TYPE_UNDEFINED = 0, + USB_PHY_TYPE_USB2 = 1, + USB_PHY_TYPE_USB3 = 2, +}; + +enum usb_port_connect_type { + USB_PORT_CONNECT_TYPE_UNKNOWN = 0, + USB_PORT_CONNECT_TYPE_HOT_PLUG = 1, + USB_PORT_CONNECT_TYPE_HARD_WIRED = 2, + USB_PORT_NOT_USED = 3, +}; + +enum usb_role { + USB_ROLE_NONE = 0, + USB_ROLE_HOST = 1, + USB_ROLE_DEVICE = 2, +}; + +enum usb_ssp_rate { + USB_SSP_GEN_UNKNOWN = 0, + USB_SSP_GEN_2x1 = 1, + USB_SSP_GEN_1x2 = 2, + USB_SSP_GEN_2x2 = 3, +}; + +enum usb_wireless_status { + USB_WIRELESS_STATUS_NA = 0, + USB_WIRELESS_STATUS_DISCONNECTED = 1, + USB_WIRELESS_STATUS_CONNECTED = 2, +}; + +enum user_reg_flag { + USER_EVENT_REG_PERSIST = 1, + USER_EVENT_REG_MULTI_FORMAT = 2, + USER_EVENT_REG_MAX = 4, +}; + +enum utf16_endian { + UTF16_HOST_ENDIAN = 0, + UTF16_LITTLE_ENDIAN = 1, + UTF16_BIG_ENDIAN = 2, +}; + +enum utf8_normalization { + UTF8_NFDI = 0, + UTF8_NFDICF = 1, + UTF8_NMAX = 2, +}; + +enum uts_proc { + UTS_PROC_ARCH = 0, + UTS_PROC_OSTYPE = 1, + UTS_PROC_OSRELEASE = 2, + UTS_PROC_VERSION = 3, + UTS_PROC_HOSTNAME = 4, + UTS_PROC_DOMAINNAME = 5, +}; + +enum uv_bios_cmd { + UV_BIOS_COMMON = 0, + UV_BIOS_GET_SN_INFO = 1, + UV_BIOS_FREQ_BASE = 2, + UV_BIOS_WATCHLIST_ALLOC = 3, + UV_BIOS_WATCHLIST_FREE = 4, + UV_BIOS_MEMPROTECT = 5, + UV_BIOS_GET_PARTITION_ADDR = 6, + UV_BIOS_SET_LEGACY_VGA_TARGET = 7, +}; + +enum uv_memprotect { + UV_MEMPROT_RESTRICT_ACCESS = 0, + UV_MEMPROT_ALLOW_AMO = 1, + UV_MEMPROT_ALLOW_RW = 2, +}; + +enum uv_system_type { + UV_NONE = 0, + UV_LEGACY_APIC = 1, + UV_X2APIC = 2, +}; + +enum v4l2_av1_segment_feature { + V4L2_AV1_SEG_LVL_ALT_Q = 0, + V4L2_AV1_SEG_LVL_ALT_LF_Y_V = 1, + V4L2_AV1_SEG_LVL_REF_FRAME = 5, + V4L2_AV1_SEG_LVL_REF_SKIP = 6, + V4L2_AV1_SEG_LVL_REF_GLOBALMV = 7, + V4L2_AV1_SEG_LVL_MAX = 8, +}; + +enum v4l2_fwnode_bus_type { + V4L2_FWNODE_BUS_TYPE_GUESS = 0, + V4L2_FWNODE_BUS_TYPE_CSI2_CPHY = 1, + V4L2_FWNODE_BUS_TYPE_CSI1 = 2, + V4L2_FWNODE_BUS_TYPE_CCP2 = 3, + V4L2_FWNODE_BUS_TYPE_CSI2_DPHY = 4, + V4L2_FWNODE_BUS_TYPE_PARALLEL = 5, + V4L2_FWNODE_BUS_TYPE_BT656 = 6, + V4L2_FWNODE_BUS_TYPE_DPI = 7, + NR_OF_V4L2_FWNODE_BUS_TYPE = 8, +}; + +enum v4l2_preemphasis { + V4L2_PREEMPHASIS_DISABLED = 0, + V4L2_PREEMPHASIS_50_uS = 1, + V4L2_PREEMPHASIS_75_uS = 2, +}; + +enum vc_ctl_state { + ESnormal = 0, + ESesc = 1, + ESsquare = 2, + ESgetpars = 3, + ESfunckey = 4, + EShash = 5, + ESsetG0 = 6, + ESsetG1 = 7, + ESpercent = 8, + EScsiignore = 9, + ESnonstd = 10, + ESpalette = 11, + ESosc = 12, + ESANSI_first = 12, + ESapc = 13, + ESpm = 14, + ESdcs = 15, + ESANSI_last = 15, +}; + +enum vc_intensity { + VCI_HALF_BRIGHT = 0, + VCI_NORMAL = 1, + VCI_BOLD = 2, + VCI_MASK = 3, +}; + +enum vcap_action_field { + VCAP_AF_NO_VALUE = 0, + VCAP_AF_ACL_ID = 1, + VCAP_AF_CLS_VID_SEL = 2, + VCAP_AF_CNT_ID = 3, + VCAP_AF_COPY_PORT_NUM = 4, + VCAP_AF_COPY_QUEUE_NUM = 5, + VCAP_AF_CPU_COPY_ENA = 6, + VCAP_AF_CPU_QU = 7, + VCAP_AF_CPU_QUEUE_NUM = 8, + VCAP_AF_CUSTOM_ACE_TYPE_ENA = 9, + VCAP_AF_DEI_A_VAL = 10, + VCAP_AF_DEI_B_VAL = 11, + VCAP_AF_DEI_C_VAL = 12, + VCAP_AF_DEI_ENA = 13, + VCAP_AF_DEI_VAL = 14, + VCAP_AF_DLR_SEL = 15, + VCAP_AF_DP_ENA = 16, + VCAP_AF_DP_VAL = 17, + VCAP_AF_DSCP_ENA = 18, + VCAP_AF_DSCP_SEL = 19, + VCAP_AF_DSCP_VAL = 20, + VCAP_AF_ES2_REW_CMD = 21, + VCAP_AF_ESDX = 22, + VCAP_AF_FWD_KILL_ENA = 23, + VCAP_AF_FWD_MODE = 24, + VCAP_AF_FWD_SEL = 25, + VCAP_AF_HIT_ME_ONCE = 26, + VCAP_AF_HOST_MATCH = 27, + VCAP_AF_IGNORE_PIPELINE_CTRL = 28, + VCAP_AF_INTR_ENA = 29, + VCAP_AF_ISDX_ADD_REPLACE_SEL = 30, + VCAP_AF_ISDX_ADD_VAL = 31, + VCAP_AF_ISDX_ENA = 32, + VCAP_AF_ISDX_REPLACE_ENA = 33, + VCAP_AF_ISDX_VAL = 34, + VCAP_AF_LOOP_ENA = 35, + VCAP_AF_LRN_DIS = 36, + VCAP_AF_MAP_IDX = 37, + VCAP_AF_MAP_KEY = 38, + VCAP_AF_MAP_LOOKUP_SEL = 39, + VCAP_AF_MASK_MODE = 40, + VCAP_AF_MATCH_ID = 41, + VCAP_AF_MATCH_ID_MASK = 42, + VCAP_AF_MIRROR_ENA = 43, + VCAP_AF_MIRROR_PROBE = 44, + VCAP_AF_MIRROR_PROBE_ID = 45, + VCAP_AF_MRP_SEL = 46, + VCAP_AF_NXT_IDX = 47, + VCAP_AF_NXT_IDX_CTRL = 48, + VCAP_AF_OAM_SEL = 49, + VCAP_AF_PAG_OVERRIDE_MASK = 50, + VCAP_AF_PAG_VAL = 51, + VCAP_AF_PCP_A_VAL = 52, + VCAP_AF_PCP_B_VAL = 53, + VCAP_AF_PCP_C_VAL = 54, + VCAP_AF_PCP_ENA = 55, + VCAP_AF_PCP_VAL = 56, + VCAP_AF_PIPELINE_ACT = 57, + VCAP_AF_PIPELINE_FORCE_ENA = 58, + VCAP_AF_PIPELINE_PT = 59, + VCAP_AF_POLICE_ENA = 60, + VCAP_AF_POLICE_IDX = 61, + VCAP_AF_POLICE_REMARK = 62, + VCAP_AF_POLICE_VCAP_ONLY = 63, + VCAP_AF_POP_VAL = 64, + VCAP_AF_PORT_MASK = 65, + VCAP_AF_PUSH_CUSTOMER_TAG = 66, + VCAP_AF_PUSH_INNER_TAG = 67, + VCAP_AF_PUSH_OUTER_TAG = 68, + VCAP_AF_QOS_ENA = 69, + VCAP_AF_QOS_VAL = 70, + VCAP_AF_REW_OP = 71, + VCAP_AF_RT_DIS = 72, + VCAP_AF_SFID_ENA = 73, + VCAP_AF_SFID_VAL = 74, + VCAP_AF_SGID_ENA = 75, + VCAP_AF_SGID_VAL = 76, + VCAP_AF_SWAP_MACS_ENA = 77, + VCAP_AF_TAG_A_DEI_SEL = 78, + VCAP_AF_TAG_A_PCP_SEL = 79, + VCAP_AF_TAG_A_TPID_SEL = 80, + VCAP_AF_TAG_A_VID_SEL = 81, + VCAP_AF_TAG_B_DEI_SEL = 82, + VCAP_AF_TAG_B_PCP_SEL = 83, + VCAP_AF_TAG_B_TPID_SEL = 84, + VCAP_AF_TAG_B_VID_SEL = 85, + VCAP_AF_TAG_C_DEI_SEL = 86, + VCAP_AF_TAG_C_PCP_SEL = 87, + VCAP_AF_TAG_C_TPID_SEL = 88, + VCAP_AF_TAG_C_VID_SEL = 89, + VCAP_AF_TYPE = 90, + VCAP_AF_UNTAG_VID_ENA = 91, + VCAP_AF_VID_A_VAL = 92, + VCAP_AF_VID_B_VAL = 93, + VCAP_AF_VID_C_VAL = 94, + VCAP_AF_VID_REPLACE_ENA = 95, + VCAP_AF_VID_VAL = 96, + VCAP_AF_VLAN_POP_CNT = 97, + VCAP_AF_VLAN_POP_CNT_ENA = 98, +}; + +enum vcap_actionfield_set { + VCAP_AFS_NO_VALUE = 0, + VCAP_AFS_BASE_TYPE = 1, + VCAP_AFS_CLASSIFICATION = 2, + VCAP_AFS_CLASS_REDUCED = 3, + VCAP_AFS_ES0 = 4, + VCAP_AFS_FULL = 5, + VCAP_AFS_S1 = 6, + VCAP_AFS_SMAC_SIP = 7, + VCAP_AFS_VID = 8, +}; + +enum vcap_arp_opcode { + VCAP_ARP_OP_RESERVED = 0, + VCAP_ARP_OP_REQUEST = 1, + VCAP_ARP_OP_REPLY = 2, +}; + +enum vcap_bit { + VCAP_BIT_ANY = 0, + VCAP_BIT_0 = 1, + VCAP_BIT_1 = 2, +}; + +enum vcap_command { + VCAP_CMD_WRITE = 0, + VCAP_CMD_READ = 1, + VCAP_CMD_MOVE_DOWN = 2, + VCAP_CMD_MOVE_UP = 3, + VCAP_CMD_INITIALIZE = 4, +}; + +enum vcap_field_type { + VCAP_FIELD_BIT = 0, + VCAP_FIELD_U32 = 1, + VCAP_FIELD_U48 = 2, + VCAP_FIELD_U56 = 3, + VCAP_FIELD_U64 = 4, + VCAP_FIELD_U72 = 5, + VCAP_FIELD_U112 = 6, + VCAP_FIELD_U128 = 7, +}; + +enum vcap_is2_arp_opcode { + VCAP_IS2_ARP_REQUEST = 0, + VCAP_IS2_ARP_REPLY = 1, + VCAP_IS2_RARP_REQUEST = 2, + VCAP_IS2_RARP_REPLY = 3, +}; + +enum vcap_key_field { + VCAP_KF_NO_VALUE = 0, + VCAP_KF_8021BR_ECID_BASE = 1, + VCAP_KF_8021BR_ECID_EXT = 2, + VCAP_KF_8021BR_E_TAGGED = 3, + VCAP_KF_8021BR_GRP = 4, + VCAP_KF_8021BR_IGR_ECID_BASE = 5, + VCAP_KF_8021BR_IGR_ECID_EXT = 6, + VCAP_KF_8021CB_R_TAGGED_IS = 7, + VCAP_KF_8021Q_DEI0 = 8, + VCAP_KF_8021Q_DEI1 = 9, + VCAP_KF_8021Q_DEI2 = 10, + VCAP_KF_8021Q_DEI_CLS = 11, + VCAP_KF_8021Q_PCP0 = 12, + VCAP_KF_8021Q_PCP1 = 13, + VCAP_KF_8021Q_PCP2 = 14, + VCAP_KF_8021Q_PCP_CLS = 15, + VCAP_KF_8021Q_TPID = 16, + VCAP_KF_8021Q_TPID0 = 17, + VCAP_KF_8021Q_TPID1 = 18, + VCAP_KF_8021Q_TPID2 = 19, + VCAP_KF_8021Q_VID0 = 20, + VCAP_KF_8021Q_VID1 = 21, + VCAP_KF_8021Q_VID2 = 22, + VCAP_KF_8021Q_VID_CLS = 23, + VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS = 24, + VCAP_KF_8021Q_VLAN_TAGGED_IS = 25, + VCAP_KF_8021Q_VLAN_TAGS = 26, + VCAP_KF_ACL_GRP_ID = 27, + VCAP_KF_ARP_ADDR_SPACE_OK_IS = 28, + VCAP_KF_ARP_LEN_OK_IS = 29, + VCAP_KF_ARP_OPCODE = 30, + VCAP_KF_ARP_OPCODE_UNKNOWN_IS = 31, + VCAP_KF_ARP_PROTO_SPACE_OK_IS = 32, + VCAP_KF_ARP_SENDER_MATCH_IS = 33, + VCAP_KF_ARP_TGT_MATCH_IS = 34, + VCAP_KF_COSID_CLS = 35, + VCAP_KF_ES0_ISDX_KEY_ENA = 36, + VCAP_KF_ETYPE = 37, + VCAP_KF_ETYPE_LEN_IS = 38, + VCAP_KF_HOST_MATCH = 39, + VCAP_KF_IF_EGR_PORT_MASK = 40, + VCAP_KF_IF_EGR_PORT_MASK_RNG = 41, + VCAP_KF_IF_EGR_PORT_NO = 42, + VCAP_KF_IF_IGR_PORT = 43, + VCAP_KF_IF_IGR_PORT_MASK = 44, + VCAP_KF_IF_IGR_PORT_MASK_L3 = 45, + VCAP_KF_IF_IGR_PORT_MASK_RNG = 46, + VCAP_KF_IF_IGR_PORT_MASK_SEL = 47, + VCAP_KF_IF_IGR_PORT_SEL = 48, + VCAP_KF_IP4_IS = 49, + VCAP_KF_IP_MC_IS = 50, + VCAP_KF_IP_PAYLOAD_5TUPLE = 51, + VCAP_KF_IP_PAYLOAD_S1_IP6 = 52, + VCAP_KF_IP_SNAP_IS = 53, + VCAP_KF_ISDX_CLS = 54, + VCAP_KF_ISDX_GT0_IS = 55, + VCAP_KF_L2_BC_IS = 56, + VCAP_KF_L2_DMAC = 57, + VCAP_KF_L2_FRM_TYPE = 58, + VCAP_KF_L2_FWD_IS = 59, + VCAP_KF_L2_LLC = 60, + VCAP_KF_L2_MAC = 61, + VCAP_KF_L2_MC_IS = 62, + VCAP_KF_L2_PAYLOAD0 = 63, + VCAP_KF_L2_PAYLOAD1 = 64, + VCAP_KF_L2_PAYLOAD2 = 65, + VCAP_KF_L2_PAYLOAD_ETYPE = 66, + VCAP_KF_L2_SMAC = 67, + VCAP_KF_L2_SNAP = 68, + VCAP_KF_L3_DIP_EQ_SIP_IS = 69, + VCAP_KF_L3_DPL_CLS = 70, + VCAP_KF_L3_DSCP = 71, + VCAP_KF_L3_DST_IS = 72, + VCAP_KF_L3_FRAGMENT = 73, + VCAP_KF_L3_FRAGMENT_TYPE = 74, + VCAP_KF_L3_FRAG_INVLD_L4_LEN = 75, + VCAP_KF_L3_FRAG_OFS_GT0 = 76, + VCAP_KF_L3_IP4_DIP = 77, + VCAP_KF_L3_IP4_SIP = 78, + VCAP_KF_L3_IP6_DIP = 79, + VCAP_KF_L3_IP6_DIP_MSB = 80, + VCAP_KF_L3_IP6_SIP = 81, + VCAP_KF_L3_IP6_SIP_MSB = 82, + VCAP_KF_L3_IP_PROTO = 83, + VCAP_KF_L3_OPTIONS_IS = 84, + VCAP_KF_L3_PAYLOAD = 85, + VCAP_KF_L3_RT_IS = 86, + VCAP_KF_L3_TOS = 87, + VCAP_KF_L3_TTL_GT0 = 88, + VCAP_KF_L4_1588_DOM = 89, + VCAP_KF_L4_1588_VER = 90, + VCAP_KF_L4_ACK = 91, + VCAP_KF_L4_DPORT = 92, + VCAP_KF_L4_FIN = 93, + VCAP_KF_L4_PAYLOAD = 94, + VCAP_KF_L4_PSH = 95, + VCAP_KF_L4_RNG = 96, + VCAP_KF_L4_RST = 97, + VCAP_KF_L4_SEQUENCE_EQ0_IS = 98, + VCAP_KF_L4_SPORT = 99, + VCAP_KF_L4_SPORT_EQ_DPORT_IS = 100, + VCAP_KF_L4_SYN = 101, + VCAP_KF_L4_URG = 102, + VCAP_KF_LOOKUP_FIRST_IS = 103, + VCAP_KF_LOOKUP_GEN_IDX = 104, + VCAP_KF_LOOKUP_GEN_IDX_SEL = 105, + VCAP_KF_LOOKUP_INDEX = 106, + VCAP_KF_LOOKUP_PAG = 107, + VCAP_KF_MIRROR_PROBE = 108, + VCAP_KF_OAM_CCM_CNTS_EQ0 = 109, + VCAP_KF_OAM_DETECTED = 110, + VCAP_KF_OAM_FLAGS = 111, + VCAP_KF_OAM_MEL_FLAGS = 112, + VCAP_KF_OAM_MEPID = 113, + VCAP_KF_OAM_OPCODE = 114, + VCAP_KF_OAM_VER = 115, + VCAP_KF_OAM_Y1731_IS = 116, + VCAP_KF_PDU_TYPE = 117, + VCAP_KF_PROT_ACTIVE = 118, + VCAP_KF_RTP_ID = 119, + VCAP_KF_RT_FRMID = 120, + VCAP_KF_RT_TYPE = 121, + VCAP_KF_RT_VLAN_IDX = 122, + VCAP_KF_TCP_IS = 123, + VCAP_KF_TCP_UDP_IS = 124, + VCAP_KF_TYPE = 125, +}; + +enum vcap_keyfield_set { + VCAP_KFS_NO_VALUE = 0, + VCAP_KFS_5TUPLE_IP4 = 1, + VCAP_KFS_5TUPLE_IP6 = 2, + VCAP_KFS_7TUPLE = 3, + VCAP_KFS_ARP = 4, + VCAP_KFS_DBL_VID = 5, + VCAP_KFS_DMAC_VID = 6, + VCAP_KFS_ETAG = 7, + VCAP_KFS_IP4_OTHER = 8, + VCAP_KFS_IP4_TCP_UDP = 9, + VCAP_KFS_IP4_VID = 10, + VCAP_KFS_IP6_OTHER = 11, + VCAP_KFS_IP6_STD = 12, + VCAP_KFS_IP6_TCP_UDP = 13, + VCAP_KFS_IP6_VID = 14, + VCAP_KFS_IP_7TUPLE = 15, + VCAP_KFS_ISDX = 16, + VCAP_KFS_LL_FULL = 17, + VCAP_KFS_MAC_ETYPE = 18, + VCAP_KFS_MAC_LLC = 19, + VCAP_KFS_MAC_SNAP = 20, + VCAP_KFS_NORMAL = 21, + VCAP_KFS_NORMAL_5TUPLE_IP4 = 22, + VCAP_KFS_NORMAL_7TUPLE = 23, + VCAP_KFS_NORMAL_IP6 = 24, + VCAP_KFS_OAM = 25, + VCAP_KFS_PURE_5TUPLE_IP4 = 26, + VCAP_KFS_RT = 27, + VCAP_KFS_SMAC_SIP4 = 28, + VCAP_KFS_SMAC_SIP6 = 29, + VCAP_KFS_VID = 30, +}; + +enum vcap_rule_error { + VCAP_ERR_NONE = 0, + VCAP_ERR_NO_ADMIN = 1, + VCAP_ERR_NO_NETDEV = 2, + VCAP_ERR_NO_KEYSET_MATCH = 3, + VCAP_ERR_NO_ACTIONSET_MATCH = 4, + VCAP_ERR_NO_PORT_KEYSET_MATCH = 5, +}; + +enum vcap_rule_state { + VCAP_RS_PERMANENT = 0, + VCAP_RS_ENABLED = 1, + VCAP_RS_DISABLED = 2, +}; + +enum vcap_selection { + VCAP_SEL_ENTRY = 1, + VCAP_SEL_ACTION = 2, + VCAP_SEL_COUNTER = 4, + VCAP_SEL_ALL = 255, +}; + +enum vcap_type { + VCAP_TYPE_ES0 = 0, + VCAP_TYPE_ES2 = 1, + VCAP_TYPE_IS0 = 2, + VCAP_TYPE_IS1 = 3, + VCAP_TYPE_IS2 = 4, + VCAP_TYPE_MAX = 5, +}; + +enum vcap_user { + VCAP_USER_PTP = 0, + VCAP_USER_MRP = 1, + VCAP_USER_CFM = 2, + VCAP_USER_VLAN = 3, + VCAP_USER_QOS = 4, + VCAP_USER_VCAP_UTIL = 5, + VCAP_USER_TC = 6, + VCAP_USER_TC_EXTRA = 7, + __VCAP_USER_AFTER_LAST = 8, + VCAP_USER_MAX = 7, +}; + +enum vcpu_state { + VCPU_RUNNING = 0, + VCPU_HALTED = 1, + VCPU_HASHED = 2, +}; + +enum vdso_clock_mode { + VDSO_CLOCKMODE_NONE = 0, + VDSO_CLOCKMODE_TSC = 1, + VDSO_CLOCKMODE_PVCLOCK = 2, + VDSO_CLOCKMODE_HVCLOCK = 3, + VDSO_CLOCKMODE_MAX = 4, + VDSO_CLOCKMODE_TIMENS = 2147483647, +}; + +enum verifier_phase { + CHECK_META = 0, + CHECK_TYPE = 1, +}; + +enum vesa_blank_mode { + VESA_NO_BLANKING = 0, + VESA_VSYNC_SUSPEND = 1, + VESA_HSYNC_SUSPEND = 2, + VESA_POWERDOWN = 3, + VESA_BLANK_MAX = 3, +}; + +enum vga_switcheroo_client_id { + VGA_SWITCHEROO_UNKNOWN_ID = 4096, + VGA_SWITCHEROO_IGD = 0, + VGA_SWITCHEROO_DIS = 1, + VGA_SWITCHEROO_MAX_CLIENTS = 2, +}; + +enum vga_switcheroo_handler_flags_t { + VGA_SWITCHEROO_CAN_SWITCH_DDC = 1, + VGA_SWITCHEROO_NEEDS_EDP_CONFIG = 2, +}; + +enum vga_switcheroo_state { + VGA_SWITCHEROO_OFF = 0, + VGA_SWITCHEROO_ON = 1, + VGA_SWITCHEROO_NOT_FOUND = 2, +}; + +enum vhost_task_flags { + VHOST_TASK_FLAGS_STOP = 0, + VHOST_TASK_FLAGS_KILLED = 1, +}; + +enum virtio_balloon_config_read { + VIRTIO_BALLOON_CONFIG_READ_CMD_ID = 0, +}; + +enum virtio_balloon_vq { + VIRTIO_BALLOON_VQ_INFLATE = 0, + VIRTIO_BALLOON_VQ_DEFLATE = 1, + VIRTIO_BALLOON_VQ_STATS = 2, + VIRTIO_BALLOON_VQ_FREE_PAGE = 3, + VIRTIO_BALLOON_VQ_REPORTING = 4, + VIRTIO_BALLOON_VQ_MAX = 5, +}; + +enum virtnet_xmit_type { + VIRTNET_XMIT_TYPE_SKB = 0, + VIRTNET_XMIT_TYPE_SKB_ORPHAN = 1, + VIRTNET_XMIT_TYPE_XDP = 2, + VIRTNET_XMIT_TYPE_XSK = 3, +}; + +enum visit_state { + NOT_VISITED = 0, + VISITED = 1, + RESOLVED = 2, +}; + +enum vlan_flags { + VLAN_FLAG_REORDER_HDR = 1, + VLAN_FLAG_GVRP = 2, + VLAN_FLAG_LOOSE_BINDING = 4, + VLAN_FLAG_MVRP = 8, + VLAN_FLAG_BRIDGE_BINDING = 16, +}; + +enum vlan_protos { + VLAN_PROTO_8021Q = 0, + VLAN_PROTO_8021AD = 1, + VLAN_PROTO_NUM = 2, +}; + +enum vm_event_item { + PGPGIN = 0, + PGPGOUT = 1, + PSWPIN = 2, + PSWPOUT = 3, + PGALLOC_DMA = 4, + PGALLOC_DMA32 = 5, + PGALLOC_NORMAL = 6, + PGALLOC_MOVABLE = 7, + PGALLOC_DEVICE = 8, + ALLOCSTALL_DMA = 9, + ALLOCSTALL_DMA32 = 10, + ALLOCSTALL_NORMAL = 11, + ALLOCSTALL_MOVABLE = 12, + ALLOCSTALL_DEVICE = 13, + PGSCAN_SKIP_DMA = 14, + PGSCAN_SKIP_DMA32 = 15, + PGSCAN_SKIP_NORMAL = 16, + PGSCAN_SKIP_MOVABLE = 17, + PGSCAN_SKIP_DEVICE = 18, + PGFREE = 19, + PGACTIVATE = 20, + PGDEACTIVATE = 21, + PGLAZYFREE = 22, + PGFAULT = 23, + PGMAJFAULT = 24, + PGLAZYFREED = 25, + PGREFILL = 26, + PGREUSE = 27, + PGSTEAL_KSWAPD = 28, + PGSTEAL_DIRECT = 29, + PGSTEAL_KHUGEPAGED = 30, + PGSCAN_KSWAPD = 31, + PGSCAN_DIRECT = 32, + PGSCAN_KHUGEPAGED = 33, + PGSCAN_DIRECT_THROTTLE = 34, + PGSCAN_ANON = 35, + PGSCAN_FILE = 36, + PGSTEAL_ANON = 37, + PGSTEAL_FILE = 38, + PGSCAN_ZONE_RECLAIM_SUCCESS = 39, + PGSCAN_ZONE_RECLAIM_FAILED = 40, + PGINODESTEAL = 41, + SLABS_SCANNED = 42, + KSWAPD_INODESTEAL = 43, + KSWAPD_LOW_WMARK_HIT_QUICKLY = 44, + KSWAPD_HIGH_WMARK_HIT_QUICKLY = 45, + PAGEOUTRUN = 46, + PGROTATED = 47, + DROP_PAGECACHE = 48, + DROP_SLAB = 49, + OOM_KILL = 50, + NUMA_PTE_UPDATES = 51, + NUMA_HUGE_PTE_UPDATES = 52, + NUMA_HINT_FAULTS = 53, + NUMA_HINT_FAULTS_LOCAL = 54, + NUMA_PAGE_MIGRATE = 55, + PGMIGRATE_SUCCESS = 56, + PGMIGRATE_FAIL = 57, + THP_MIGRATION_SUCCESS = 58, + THP_MIGRATION_FAIL = 59, + THP_MIGRATION_SPLIT = 60, + COMPACTMIGRATE_SCANNED = 61, + COMPACTFREE_SCANNED = 62, + COMPACTISOLATED = 63, + COMPACTSTALL = 64, + COMPACTFAIL = 65, + COMPACTSUCCESS = 66, + KCOMPACTD_WAKE = 67, + KCOMPACTD_MIGRATE_SCANNED = 68, + KCOMPACTD_FREE_SCANNED = 69, + HTLB_BUDDY_PGALLOC = 70, + HTLB_BUDDY_PGALLOC_FAIL = 71, + UNEVICTABLE_PGCULLED = 72, + UNEVICTABLE_PGSCANNED = 73, + UNEVICTABLE_PGRESCUED = 74, + UNEVICTABLE_PGMLOCKED = 75, + UNEVICTABLE_PGMUNLOCKED = 76, + UNEVICTABLE_PGCLEARED = 77, + UNEVICTABLE_PGSTRANDED = 78, + THP_FAULT_ALLOC = 79, + THP_FAULT_FALLBACK = 80, + THP_FAULT_FALLBACK_CHARGE = 81, + THP_COLLAPSE_ALLOC = 82, + THP_COLLAPSE_ALLOC_FAILED = 83, + THP_FILE_ALLOC = 84, + THP_FILE_FALLBACK = 85, + THP_FILE_FALLBACK_CHARGE = 86, + THP_FILE_MAPPED = 87, + THP_SPLIT_PAGE = 88, + THP_SPLIT_PAGE_FAILED = 89, + THP_DEFERRED_SPLIT_PAGE = 90, + THP_UNDERUSED_SPLIT_PAGE = 91, + THP_SPLIT_PMD = 92, + THP_SCAN_EXCEED_NONE_PTE = 93, + THP_SCAN_EXCEED_SWAP_PTE = 94, + THP_SCAN_EXCEED_SHARED_PTE = 95, + THP_SPLIT_PUD = 96, + THP_ZERO_PAGE_ALLOC = 97, + THP_ZERO_PAGE_ALLOC_FAILED = 98, + THP_SWPOUT = 99, + THP_SWPOUT_FALLBACK = 100, + BALLOON_INFLATE = 101, + BALLOON_DEFLATE = 102, + BALLOON_MIGRATE = 103, + SWAP_RA = 104, + SWAP_RA_HIT = 105, + SWPIN_ZERO = 106, + SWPOUT_ZERO = 107, + KSM_SWPIN_COPY = 108, + COW_KSM = 109, + ZSWPIN = 110, + ZSWPOUT = 111, + ZSWPWB = 112, + DIRECT_MAP_LEVEL2_SPLIT = 113, + DIRECT_MAP_LEVEL3_SPLIT = 114, + NR_VM_EVENT_ITEMS = 115, +}; + +enum vm_fault_reason { + VM_FAULT_OOM = 1, + VM_FAULT_SIGBUS = 2, + VM_FAULT_MAJOR = 4, + VM_FAULT_HWPOISON = 16, + VM_FAULT_HWPOISON_LARGE = 32, + VM_FAULT_SIGSEGV = 64, + VM_FAULT_NOPAGE = 256, + VM_FAULT_LOCKED = 512, + VM_FAULT_RETRY = 1024, + VM_FAULT_FALLBACK = 2048, + VM_FAULT_DONE_COW = 4096, + VM_FAULT_NEEDDSYNC = 8192, + VM_FAULT_COMPLETED = 16384, + VM_FAULT_HINDEX_MASK = 983040, +}; + +enum vm_stat_item { + NR_DIRTY_THRESHOLD = 0, + NR_DIRTY_BG_THRESHOLD = 1, + NR_MEMMAP_PAGES = 2, + NR_MEMMAP_BOOT_PAGES = 3, + NR_VM_STAT_ITEMS = 4, +}; + +enum vma_merge_flags { + VMG_FLAG_DEFAULT = 0, + VMG_FLAG_JUST_EXPAND = 1, +}; + +enum vma_merge_state { + VMA_MERGE_START = 0, + VMA_MERGE_ERROR_NOMEM = 1, + VMA_MERGE_NOMERGE = 2, + VMA_MERGE_SUCCESS = 3, +}; + +enum vma_resv_mode { + VMA_NEEDS_RESV = 0, + VMA_COMMIT_RESV = 1, + VMA_END_RESV = 2, + VMA_ADD_RESV = 3, + VMA_DEL_RESV = 4, +}; + +enum vme_resource_type { + VME_MASTER = 0, + VME_SLAVE = 1, + VME_DMA = 2, + VME_LM = 3, +}; + +enum vmpressure_levels { + VMPRESSURE_LOW = 0, + VMPRESSURE_MEDIUM = 1, + VMPRESSURE_CRITICAL = 2, + VMPRESSURE_NUM_LEVELS = 3, +}; + +enum vmpressure_modes { + VMPRESSURE_NO_PASSTHROUGH = 0, + VMPRESSURE_HIERARCHY = 1, + VMPRESSURE_LOCAL = 2, + VMPRESSURE_NUM_MODES = 3, +}; + +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 vmx_feature_leafs { + MISC_FEATURES = 0, + PRIMARY_CTLS = 1, + SECONDARY_CTLS = 2, + TERTIARY_CTLS_LOW = 3, + TERTIARY_CTLS_HIGH = 4, + NR_VMX_FEATURE_WORDS = 5, +}; + +enum 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 vp_vq_vector_policy { + VP_VQ_VECTOR_POLICY_EACH = 0, + VP_VQ_VECTOR_POLICY_SHARED_SLOW = 1, + VP_VQ_VECTOR_POLICY_SHARED = 2, +}; + +enum vtime_state { + VTIME_INACTIVE = 0, + VTIME_IDLE = 1, + VTIME_SYS = 2, + VTIME_USER = 3, + VTIME_GUEST = 4, +}; + +enum watch_meta_notification_subtype { + WATCH_META_REMOVAL_NOTIFICATION = 0, + WATCH_META_LOSS_NOTIFICATION = 1, +}; + +enum watch_notification_type { + WATCH_TYPE_META = 0, + WATCH_TYPE_KEY_NOTIFY = 1, + WATCH_TYPE__NR = 2, +}; + +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, +}; + +enum wb_stat_item { + WB_RECLAIMABLE = 0, + WB_WRITEBACK = 1, + WB_DIRTIED = 2, + WB_WRITTEN = 3, + NR_WB_STAT_ITEMS = 4, +}; + +enum wb_state { + WB_registered = 0, + WB_writeback_running = 1, + WB_has_dirty_io = 2, + WB_start_all = 3, +}; + +enum wbrf_notifier_actions { + WBRF_CHANGED = 0, +}; + +enum wbt_flags { + WBT_TRACKED = 1, + WBT_READ = 2, + WBT_SWAP = 4, + WBT_DISCARD = 8, + WBT_NR_BITS = 4, +}; + +enum wd_read_status { + WD_READ_SUCCESS = 0, + WD_READ_UNSTABLE = 1, + WD_READ_SKIP = 2, +}; + +enum which_selector { + FS = 0, + GS = 1, +}; + +enum wiphy_flags { + WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK = 1, + WIPHY_FLAG_SUPPORTS_MLO = 2, + WIPHY_FLAG_SPLIT_SCAN_6GHZ = 4, + WIPHY_FLAG_NETNS_OK = 8, + WIPHY_FLAG_PS_ON_BY_DEFAULT = 16, + WIPHY_FLAG_4ADDR_AP = 32, + WIPHY_FLAG_4ADDR_STATION = 64, + WIPHY_FLAG_CONTROL_PORT_PROTOCOL = 128, + WIPHY_FLAG_IBSS_RSN = 256, + WIPHY_FLAG_DISABLE_WEXT = 512, + WIPHY_FLAG_MESH_AUTH = 1024, + WIPHY_FLAG_SUPPORTS_EXT_KCK_32 = 2048, + WIPHY_FLAG_SUPPORTS_NSTR_NONPRIMARY = 4096, + WIPHY_FLAG_SUPPORTS_FW_ROAM = 8192, + WIPHY_FLAG_AP_UAPSD = 16384, + WIPHY_FLAG_SUPPORTS_TDLS = 32768, + WIPHY_FLAG_TDLS_EXTERNAL_SETUP = 65536, + WIPHY_FLAG_HAVE_AP_SME = 131072, + WIPHY_FLAG_REPORTS_OBSS = 262144, + WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = 524288, + WIPHY_FLAG_OFFCHAN_TX = 1048576, + WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = 2097152, + WIPHY_FLAG_SUPPORTS_5_10_MHZ = 4194304, + WIPHY_FLAG_HAS_CHANNEL_SWITCH = 8388608, + WIPHY_FLAG_NOTIFY_REGDOM_BY_DRIVER = 16777216, + WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON = 33554432, +}; + +enum wm831x_auxadc { + WM831X_AUX_CAL = 15, + WM831X_AUX_BKUP_BATT = 10, + WM831X_AUX_WALL = 9, + WM831X_AUX_BATT = 8, + WM831X_AUX_USB = 7, + WM831X_AUX_SYSVDD = 6, + WM831X_AUX_BATT_TEMP = 5, + WM831X_AUX_CHIP_TEMP = 4, + WM831X_AUX_AUX4 = 3, + WM831X_AUX_AUX3 = 2, + WM831X_AUX_AUX2 = 1, + WM831X_AUX_AUX1 = 0, +}; + +enum wm831x_parent { + WM8310 = 33552, + WM8311 = 33553, + WM8312 = 33554, + WM8320 = 33568, + WM8321 = 33569, + WM8325 = 33573, + WM8326 = 33574, +}; + +enum wm831x_status_src { + WM831X_STATUS_PRESERVE = 0, + WM831X_STATUS_OTP = 1, + WM831X_STATUS_POWER = 2, + WM831X_STATUS_CHARGER = 3, + WM831X_STATUS_MANUAL = 4, +}; + +enum wm831x_watchdog_action { + WM831X_WDOG_NONE = 0, + WM831X_WDOG_INTERRUPT = 1, + WM831X_WDOG_RESET = 2, + WM831X_WDOG_WAKE = 3, +}; + +enum work_bits { + WORK_STRUCT_PENDING_BIT = 0, + WORK_STRUCT_INACTIVE_BIT = 1, + WORK_STRUCT_PWQ_BIT = 2, + WORK_STRUCT_LINKED_BIT = 3, + WORK_STRUCT_FLAG_BITS = 4, + WORK_STRUCT_COLOR_SHIFT = 4, + WORK_STRUCT_COLOR_BITS = 4, + WORK_STRUCT_PWQ_SHIFT = 8, + WORK_OFFQ_FLAG_SHIFT = 4, + WORK_OFFQ_BH_BIT = 4, + WORK_OFFQ_FLAG_END = 5, + WORK_OFFQ_FLAG_BITS = 1, + WORK_OFFQ_DISABLE_SHIFT = 5, + WORK_OFFQ_DISABLE_BITS = 16, + WORK_OFFQ_POOL_SHIFT = 21, + WORK_OFFQ_LEFT = 43, + WORK_OFFQ_POOL_BITS = 31, +}; + +enum work_cancel_flags { + WORK_CANCEL_DELAYED = 1, + WORK_CANCEL_DISABLE = 2, +}; + +enum work_flags { + WORK_STRUCT_PENDING = 1, + WORK_STRUCT_INACTIVE = 2, + WORK_STRUCT_PWQ = 4, + WORK_STRUCT_LINKED = 8, + WORK_STRUCT_STATIC = 0, +}; + +enum worker_flags { + WORKER_DIE = 2, + WORKER_IDLE = 4, + WORKER_PREP = 8, + WORKER_CPU_INTENSIVE = 64, + WORKER_UNBOUND = 128, + WORKER_REBOUND = 256, + WORKER_NOT_RUNNING = 456, +}; + +enum worker_pool_flags { + POOL_BH = 1, + POOL_MANAGER_ACTIVE = 2, + POOL_DISASSOCIATED = 4, + POOL_BH_DRAINING = 8, +}; + +enum wq_affn_scope { + WQ_AFFN_DFL = 0, + WQ_AFFN_CPU = 1, + WQ_AFFN_SMT = 2, + WQ_AFFN_CACHE = 3, + WQ_AFFN_NUMA = 4, + WQ_AFFN_SYSTEM = 5, + WQ_AFFN_NR_TYPES = 6, +}; + +enum wq_consts { + WQ_MAX_ACTIVE = 2048, + WQ_UNBOUND_MAX_ACTIVE = 2048, + WQ_DFL_ACTIVE = 1024, + WQ_DFL_MIN_ACTIVE = 8, +}; + +enum wq_flags { + WQ_BH = 1, + 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_BH_ALLOWS = 17, +}; + +enum wq_internal_consts { + NR_STD_WORKER_POOLS = 2, + UNBOUND_POOL_HASH_ORDER = 6, + BUSY_WORKER_HASH_ORDER = 6, + MAX_IDLE_WORKERS_RATIO = 4, + IDLE_WORKER_TIMEOUT = 300000, + MAYDAY_INITIAL_TIMEOUT = 10, + MAYDAY_INTERVAL = 100, + CREATE_COOLDOWN = 1000, + RESCUER_NICE_LEVEL = -20, + HIGHPRI_NICE_LEVEL = -20, + WQ_NAME_LEN = 32, + WORKER_ID_LEN = 42, +}; + +enum wq_misc_consts { + WORK_NR_COLORS = 16, + WORK_CPU_UNBOUND = 8192, + WORK_BUSY_PENDING = 1, + WORK_BUSY_RUNNING = 2, + WORKER_DESC_LEN = 32, +}; + +enum writeback_sync_modes { + WB_SYNC_NONE = 0, + WB_SYNC_ALL = 1, +}; + +enum x509_actions { + ACT_x509_extract_key_data = 0, + ACT_x509_extract_name_segment = 1, + ACT_x509_note_OID = 2, + ACT_x509_note_issuer = 3, + ACT_x509_note_not_after = 4, + ACT_x509_note_not_before = 5, + ACT_x509_note_params = 6, + ACT_x509_note_serial = 7, + ACT_x509_note_sig_algo = 8, + ACT_x509_note_signature = 9, + ACT_x509_note_subject = 10, + ACT_x509_note_tbs_certificate = 11, + ACT_x509_process_extension = 12, + NR__x509_actions = 13, +}; + +enum x509_akid_actions { + ACT_x509_akid_note_kid = 0, + ACT_x509_akid_note_name = 1, + ACT_x509_akid_note_serial = 2, + ACT_x509_extract_name_segment___2 = 3, + ACT_x509_note_OID___2 = 4, + NR__x509_akid_actions = 5, +}; + +enum x86_hardware_subarch { + X86_SUBARCH_PC = 0, + X86_SUBARCH_LGUEST = 1, + X86_SUBARCH_XEN = 2, + X86_SUBARCH_INTEL_MID = 3, + X86_SUBARCH_CE4100 = 4, + X86_NR_SUBARCHS = 5, +}; + +enum 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 x86_intercept_stage; + +enum x86_legacy_i8042_state { + X86_LEGACY_I8042_PLATFORM_ABSENT = 0, + X86_LEGACY_I8042_FIRMWARE_ABSENT = 1, + X86_LEGACY_I8042_EXPECTED_PRESENT = 2, +}; + +enum x86_pf_error_code { + X86_PF_PROT = 1, + X86_PF_WRITE = 2, + X86_PF_USER = 4, + X86_PF_RSVD = 8, + X86_PF_INSTR = 16, + X86_PF_PK = 32, + X86_PF_SHSTK = 64, + X86_PF_SGX = 32768, + X86_PF_RMP = 2147483648, +}; + +enum x86_regset_32 { + REGSET32_GENERAL = 0, + REGSET32_FP = 1, + REGSET32_XFP = 2, + REGSET32_XSTATE = 3, + REGSET32_TLS = 4, + REGSET32_IOPERM = 5, +}; + +enum x86_regset_64 { + REGSET64_GENERAL = 0, + REGSET64_FP = 1, + REGSET64_IOPERM = 2, + REGSET64_XSTATE = 3, + REGSET64_SSP = 4, +}; + +enum x86_topology_cpu_type { + TOPO_CPU_TYPE_PERFORMANCE = 0, + TOPO_CPU_TYPE_EFFICIENCY = 1, + TOPO_CPU_TYPE_UNKNOWN = 2, +}; + +enum x86_topology_domains { + TOPO_SMT_DOMAIN = 0, + TOPO_CORE_DOMAIN = 1, + TOPO_MODULE_DOMAIN = 2, + TOPO_TILE_DOMAIN = 3, + TOPO_DIE_DOMAIN = 4, + TOPO_DIEGRP_DOMAIN = 5, + TOPO_PKG_DOMAIN = 6, + TOPO_MAX_DOMAIN = 7, +}; + +enum xa_lock_type { + XA_LOCK_IRQ = 1, + XA_LOCK_BH = 2, +}; + +enum xb_req_state { + xb_req_state_queued = 0, + xb_req_state_wait_reply = 1, + xb_req_state_got_reply = 2, + xb_req_state_aborted = 3, +}; + +enum xdp_action { + XDP_ABORTED = 0, + XDP_DROP = 1, + XDP_PASS = 2, + XDP_TX = 3, + XDP_REDIRECT = 4, +}; + +enum xdp_buff_flags { + XDP_FLAGS_HAS_FRAGS = 1, + XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, +}; + +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_rss_hash_type { + XDP_RSS_L3_IPV4 = 1, + XDP_RSS_L3_IPV6 = 2, + XDP_RSS_L3_DYNHDR = 4, + XDP_RSS_L4 = 8, + XDP_RSS_L4_TCP = 16, + XDP_RSS_L4_UDP = 32, + XDP_RSS_L4_SCTP = 64, + XDP_RSS_L4_IPSEC = 128, + XDP_RSS_L4_ICMP = 256, + XDP_RSS_TYPE_NONE = 0, + XDP_RSS_TYPE_L2 = 0, + XDP_RSS_TYPE_L3_IPV4 = 1, + XDP_RSS_TYPE_L3_IPV6 = 2, + XDP_RSS_TYPE_L3_IPV4_OPT = 5, + XDP_RSS_TYPE_L3_IPV6_EX = 6, + XDP_RSS_TYPE_L4_ANY = 8, + XDP_RSS_TYPE_L4_IPV4_TCP = 25, + XDP_RSS_TYPE_L4_IPV4_UDP = 41, + XDP_RSS_TYPE_L4_IPV4_SCTP = 73, + XDP_RSS_TYPE_L4_IPV4_IPSEC = 137, + XDP_RSS_TYPE_L4_IPV4_ICMP = 265, + XDP_RSS_TYPE_L4_IPV6_TCP = 26, + XDP_RSS_TYPE_L4_IPV6_UDP = 42, + XDP_RSS_TYPE_L4_IPV6_SCTP = 74, + XDP_RSS_TYPE_L4_IPV6_IPSEC = 138, + XDP_RSS_TYPE_L4_IPV6_ICMP = 266, + XDP_RSS_TYPE_L4_IPV6_TCP_EX = 30, + XDP_RSS_TYPE_L4_IPV6_UDP_EX = 46, + XDP_RSS_TYPE_L4_IPV6_SCTP_EX = 78, +}; + +enum xdp_rx_metadata { + XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, + XDP_METADATA_KFUNC_RX_HASH = 1, + XDP_METADATA_KFUNC_RX_VLAN_TAG = 2, + MAX_XDP_METADATA_KFUNC = 3, +}; + +enum xen_domain_type { + XEN_NATIVE = 0, + XEN_PV_DOMAIN = 1, + XEN_HVM_DOMAIN = 2, +}; + +enum xen_irq_type { + IRQT_UNBOUND = 0, + IRQT_PIRQ = 1, + IRQT_VIRQ = 2, + IRQT_IPI = 3, + IRQT_EVTCHN = 4, +}; + +enum xen_lazy_mode { + XEN_LAZY_NONE = 0, + XEN_LAZY_MMU = 1, + XEN_LAZY_CPU = 2, +}; + +enum xen_mc_extend_args { + XEN_MC_XE_OK = 0, + XEN_MC_XE_BAD_OP = 1, + XEN_MC_XE_NO_SPACE = 2, +}; + +enum xen_mc_flush_reason { + XEN_MC_FL_NONE = 0, + XEN_MC_FL_BATCH = 1, + XEN_MC_FL_ARGS = 2, + XEN_MC_FL_CALLBACK = 3, +}; + +enum xenbus_state { + XenbusStateUnknown = 0, + XenbusStateInitialising = 1, + XenbusStateInitWait = 2, + XenbusStateInitialised = 3, + XenbusStateConnected = 4, + XenbusStateClosing = 5, + XenbusStateClosed = 6, + XenbusStateReconfiguring = 7, + XenbusStateReconfigured = 8, +}; + +enum xenstore_init { + XS_UNKNOWN = 0, + XS_PV = 1, + XS_HVM = 2, + XS_LOCAL = 3, +}; + +enum xfeature { + XFEATURE_FP = 0, + XFEATURE_SSE = 1, + XFEATURE_YMM = 2, + XFEATURE_BNDREGS = 3, + XFEATURE_BNDCSR = 4, + XFEATURE_OPMASK = 5, + XFEATURE_ZMM_Hi256 = 6, + XFEATURE_Hi16_ZMM = 7, + XFEATURE_PT_UNIMPLEMENTED_SO_FAR = 8, + XFEATURE_PKRU = 9, + XFEATURE_PASID = 10, + XFEATURE_CET_USER = 11, + XFEATURE_CET_KERNEL_UNUSED = 12, + XFEATURE_RSRVD_COMP_13 = 13, + XFEATURE_RSRVD_COMP_14 = 14, + XFEATURE_LBR = 15, + XFEATURE_RSRVD_COMP_16 = 16, + XFEATURE_XTILE_CFG = 17, + XFEATURE_XTILE_DATA = 18, + XFEATURE_MAX = 19, +}; + +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_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_SA_DIR = 33, + XFRMA_NAT_KEEPALIVE_INTERVAL = 34, + XFRMA_SA_PCPU = 35, + XFRMA_IPTFS_DROP_TIME = 36, + XFRMA_IPTFS_REORDER_WINDOW = 37, + XFRMA_IPTFS_DONT_FRAG = 38, + XFRMA_IPTFS_INIT_DELAY = 39, + XFRMA_IPTFS_MAX_QSIZE = 40, + XFRMA_IPTFS_PKT_SIZE = 41, + __XFRMA_MAX = 42, +}; + +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, +}; + +enum xfrm_pol_inexact_candidate_type { + XFRM_POL_CAND_BOTH = 0, + XFRM_POL_CAND_SADDR = 1, + XFRM_POL_CAND_DADDR = 2, + XFRM_POL_CAND_ANY = 3, + XFRM_POL_CAND_MAX = 4, +}; + +enum xfrm_replay_mode { + XFRM_REPLAY_MODE_LEGACY = 0, + XFRM_REPLAY_MODE_BMP = 1, + XFRM_REPLAY_MODE_ESN = 2, +}; + +enum xfrm_sa_dir { + XFRM_SA_DIR_IN = 1, + XFRM_SA_DIR_OUT = 2, +}; + +enum xhci_cancelled_td_status { + TD_DIRTY = 0, + TD_HALTED = 1, + TD_CLEARING_CACHE = 2, + TD_CLEARING_CACHE_DEFERRED = 3, + TD_CLEARED = 4, +}; + +enum xhci_ep_reset_type { + EP_HARD_RESET = 0, + EP_SOFT_RESET = 1, +}; + +enum xhci_overhead_type { + LS_OVERHEAD_TYPE = 0, + FS_OVERHEAD_TYPE = 1, + HS_OVERHEAD_TYPE = 2, +}; + +enum xhci_ring_type { + TYPE_CTRL = 0, + TYPE_ISOC = 1, + TYPE_BULK = 2, + TYPE_INTR = 3, + TYPE_STREAM = 4, + TYPE_COMMAND = 5, + TYPE_EVENT = 6, +}; + +enum xhci_setup_dev { + SETUP_CONTEXT_ONLY = 0, + SETUP_CONTEXT_ADDRESS = 1, +}; + +enum xprtsec_policies { + RPC_XPRTSEC_NONE = 0, + RPC_XPRTSEC_TLS_ANON = 1, + RPC_XPRTSEC_TLS_X509 = 2, +}; + +enum xps_map_type { + XPS_CPUS = 0, + XPS_RXQS = 1, + XPS_MAPS_MAX = 2, +}; + +enum xsd_sockmsg_type { + XS_CONTROL = 0, + XS_DIRECTORY = 1, + XS_READ = 2, + XS_GET_PERMS = 3, + XS_WATCH = 4, + XS_UNWATCH = 5, + XS_TRANSACTION_START = 6, + XS_TRANSACTION_END = 7, + XS_INTRODUCE = 8, + XS_RELEASE = 9, + XS_GET_DOMAIN_PATH = 10, + XS_WRITE = 11, + XS_MKDIR = 12, + XS_RM = 13, + XS_SET_PERMS = 14, + XS_WATCH_EVENT = 15, + XS_ERROR = 16, + XS_IS_DOMAIN_INTRODUCED = 17, + XS_RESUME = 18, + XS_SET_TARGET = 19, + XS_RESET_WATCHES = 21, + XS_DIRECTORY_PART = 22, + XS_TYPE_COUNT = 23, + XS_INVALID = 65535, +}; + +enum xstate_copy_mode { + XSTATE_COPY_FP = 0, + XSTATE_COPY_FX = 1, + XSTATE_COPY_XSAVE = 2, +}; + +enum xz_check { + XZ_CHECK_NONE = 0, + XZ_CHECK_CRC32 = 1, + XZ_CHECK_CRC64 = 4, + XZ_CHECK_SHA256 = 10, +}; + +enum xz_mode { + XZ_SINGLE = 0, + XZ_PREALLOC = 1, + XZ_DYNALLOC = 2, +}; + +enum xz_ret { + XZ_OK = 0, + XZ_STREAM_END = 1, + XZ_UNSUPPORTED_CHECK = 2, + XZ_MEM_ERROR = 3, + XZ_MEMLIMIT_ERROR = 4, + XZ_FORMAT_ERROR = 5, + XZ_OPTIONS_ERROR = 6, + XZ_DATA_ERROR = 7, + XZ_BUF_ERROR = 8, +}; + +enum zbc_zone_alignment_method { + ZBC_CONSTANT_ZONE_LENGTH = 1, + ZBC_CONSTANT_ZONE_START_OFFSET = 8, +}; + +enum zbc_zone_cond { + ZBC_ZONE_COND_NO_WP = 0, + ZBC_ZONE_COND_EMPTY = 1, + ZBC_ZONE_COND_IMP_OPEN = 2, + ZBC_ZONE_COND_EXP_OPEN = 3, + ZBC_ZONE_COND_CLOSED = 4, + ZBC_ZONE_COND_READONLY = 13, + ZBC_ZONE_COND_FULL = 14, + ZBC_ZONE_COND_OFFLINE = 15, +}; + +enum zbc_zone_type { + ZBC_ZONE_TYPE_CONV = 1, + ZBC_ZONE_TYPE_SEQWRITE_REQ = 2, + ZBC_ZONE_TYPE_SEQWRITE_PREF = 3, + ZBC_ZONE_TYPE_SEQ_OR_BEFORE_REQ = 4, + ZBC_ZONE_TYPE_GAP = 5, +}; + +enum zone_flags { + ZONE_BOOSTED_WATERMARK = 0, + ZONE_RECLAIM_ACTIVE = 1, + ZONE_BELOW_HIGH = 2, +}; + +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_ZSPAGES = 9, + NR_FREE_CMA_PAGES = 10, + NR_UNACCEPTED = 11, + NR_VM_ZONE_STAT_ITEMS = 12, +}; + +enum zone_type { + ZONE_DMA = 0, + ZONE_DMA32 = 1, + ZONE_NORMAL = 2, + ZONE_MOVABLE = 3, + ZONE_DEVICE = 4, + __MAX_NR_ZONES = 5, +}; + +enum zone_watermarks { + WMARK_MIN = 0, + WMARK_LOW = 1, + WMARK_HIGH = 2, + WMARK_PROMO = 3, + NR_WMARK = 4, +}; + +enum zpool_mapmode { + ZPOOL_MM_RW = 0, + ZPOOL_MM_RO = 1, + ZPOOL_MM_WO = 2, + ZPOOL_MM_DEFAULT = 0, +}; + +enum zs_mapmode { + ZS_MM_RW = 0, + ZS_MM_RO = 1, + ZS_MM_WO = 2, +}; + +enum zswap_init_type { + ZSWAP_UNINIT = 0, + ZSWAP_INIT_SUCCEED = 1, + ZSWAP_INIT_FAILED = 2, +}; + +typedef _Bool bool; + +typedef __int128 s_max; + +typedef __int128 unsigned __u128; + +typedef __u128 u128; + +typedef u128 freelist_full_t; + +typedef __int128 unsigned u_max; + +typedef char *__guest_handle_char; + +typedef char acpi_bus_id[8]; + +typedef char acpi_device_class[20]; + +typedef char acpi_device_name[40]; + +typedef char *acpi_string; + +typedef const char (* const ethnl_string_array_t)[32]; + +typedef int *__guest_handle_int; + +typedef int __kernel_clockid_t; + +typedef int __kernel_daddr_t; + +typedef int __kernel_ipc_pid_t; + +typedef int __kernel_key_t; + +typedef int __kernel_mqd_t; + +typedef int __kernel_pid_t; + +typedef int __kernel_rwf_t; + +typedef int __kernel_timer_t; + +typedef int __s32; + +typedef int class_get_unused_fd_t; + +typedef __kernel_clockid_t clockid_t; + +typedef __s32 s32; + +typedef s32 compat_clock_t; + +typedef s32 compat_daddr_t; + +typedef s32 compat_int_t; + +typedef s32 compat_key_t; + +typedef s32 compat_long_t; + +typedef s32 compat_off_t; + +typedef s32 compat_pid_t; + +typedef s32 compat_ssize_t; + +typedef s32 compat_timer_t; + +typedef int cydp_t; + +typedef s32 dma_cookie_t; + +typedef int ext4_grpblk_t; + +typedef int folio_walk_flags_t; + +typedef int fpb_t; + +typedef int fpi_t; + +typedef int initcall_entry_t; + +typedef int insn_value_t; + +typedef s32 int32_t; + +typedef int32_t key_serial_t; + +typedef __kernel_key_t key_t; + +typedef int mhp_t; + +typedef int mpi_size_t; + +typedef __kernel_mqd_t mqd_t; + +typedef s32 old_time32_t; + +typedef int pci_power_t; + +typedef __kernel_pid_t pid_t; + +typedef int rmap_t; + +typedef __kernel_rwf_t rwf_t; + +typedef __s32 sctp_assoc_t; + +typedef int suspend_state_t; + +typedef __kernel_timer_t timer_t; + +typedef const int tracepoint_ptr_t; + +typedef long int __kernel_long_t; + +typedef __kernel_long_t __kernel_clock_t; + +typedef __kernel_long_t __kernel_off_t; + +typedef __kernel_long_t __kernel_old_time_t; + +typedef __kernel_long_t __kernel_ptrdiff_t; + +typedef __kernel_long_t __kernel_ssize_t; + +typedef __kernel_long_t __kernel_suseconds_t; + +typedef __kernel_clock_t clock_t; + +typedef long int intptr_t; + +typedef long int mpi_limb_signed_t; + +typedef __kernel_off_t off_t; + +typedef __kernel_ptrdiff_t ptrdiff_t; + +typedef __kernel_ssize_t ssize_t; + +typedef __kernel_suseconds_t suseconds_t; + +typedef long int xen_long_t; + +typedef long long int __s64; + +typedef __s64 Elf64_Sxword; + +typedef long long int __kernel_loff_t; + +typedef long long int __kernel_time64_t; + +typedef __s64 s64; + +typedef s64 compat_loff_t; + +typedef s64 int64_t; + +typedef s64 ktime_t; + +typedef __kernel_loff_t loff_t; + +typedef long long int qsize_t; + +typedef __s64 time64_t; + +typedef long long unsigned int __u64; + +typedef __u64 Elf64_Addr; + +typedef __u64 Elf64_Off; + +typedef __u64 Elf64_Xword; + +typedef __u64 u64; + +typedef u64 uint64_t; + +typedef uint64_t U64; + +typedef U64 ZSTD_VecMask; + +typedef __u64 __addrpair; + +typedef __u64 __be64; + +typedef uint64_t *__guest_handle_uint64_t; + +typedef __u64 __le64; + +typedef __u64 __virtio64; + +typedef u64 acpi_bus_address; + +typedef u64 acpi_integer; + +typedef u64 acpi_io_address; + +typedef u64 acpi_physical_address; + +typedef u64 acpi_size; + +typedef u64 async_cookie_t; + +typedef __u64 blist_flags_t; + +typedef u64 blkcnt_t; + +typedef uint64_t blkif_sector_t; + +typedef u64 compat_u64; + +typedef long long unsigned int cycles_t; + +typedef u64 dma_addr_t; + +typedef u64 efi_physical_addr_t; + +typedef long long unsigned int ext4_fsblk_t; + +typedef u64 gfn_t; + +typedef u64 gpa_t; + +typedef u64 hfn_t; + +typedef u64 hpa_t; + +typedef u64 io_req_flags_t; + +typedef hfn_t kvm_pfn_t; + +typedef long long unsigned int llu; + +typedef u64 netdev_features_t; + +typedef u64 pci_bus_addr_t; + +typedef u64 phys_addr_t; + +typedef phys_addr_t resource_size_t; + +typedef u64 sci_t; + +typedef u64 sector_t; + +typedef __u64 timeu64_t; + +typedef u64 u_int64_t; + +typedef u64 upf_t; + +typedef uint64_t vli_type; + +typedef long unsigned int __kernel_ulong_t; + +typedef __kernel_ulong_t __kernel_size_t; + +typedef __kernel_size_t size_t; + +typedef size_t HUF_CElt; + +typedef long unsigned int mpi_limb_t; + +typedef mpi_limb_t UWtype; + +typedef long unsigned int xen_pfn_t; + +typedef xen_pfn_t *__guest_handle_xen_pfn_t; + +typedef long unsigned int xen_ulong_t; + +typedef xen_ulong_t *__guest_handle_xen_ulong_t; + +typedef long unsigned int __kernel_old_dev_t; + +typedef __kernel_ulong_t aio_context_t; + +typedef long unsigned int dax_entry_t; + +typedef long unsigned int efi_status_t; + +typedef long unsigned int elf_greg_t; + +typedef elf_greg_t elf_gregset_t[27]; + +typedef long unsigned int gva_t; + +typedef __kernel_ulong_t ino_t; + +typedef long unsigned int irq_hw_number_t; + +typedef long unsigned int kernel_ulong_t; + +typedef long unsigned int kimage_entry_t; + +typedef long unsigned int mce_banks_t[1]; + +typedef mpi_limb_t *mpi_ptr_t; + +typedef long unsigned int netmem_ref; + +typedef long unsigned int old_sigset_t; + +typedef long unsigned int p4dval_t; + +typedef long unsigned int perf_trace_t[1024]; + +typedef long unsigned int pgdval_t; + +typedef long unsigned int pgprotval_t; + +typedef long unsigned int pmdval_t; + +typedef long unsigned int pte_marker; + +typedef long unsigned int pteval_t; + +typedef long unsigned int pudval_t; + +typedef long unsigned int uLong; + +typedef long unsigned int u_long; + +typedef long unsigned int uintptr_t; + +typedef long unsigned int ulg; + +typedef long unsigned int ulong; + +typedef uintptr_t uptrval; + +typedef long unsigned int vm_flags_t; + +typedef long unsigned int xen_callback_t; + +typedef short int __s16; + +typedef __s16 s16; + +typedef s16 int16_t; + +typedef int16_t S16; + +typedef short unsigned int __u16; + +typedef __u16 Elf32_Half; + +typedef __u16 Elf64_Half; + +typedef short unsigned int ush; + +typedef ush Pos; + +typedef __u16 u16; + +typedef u16 uint16_t; + +typedef uint16_t U16; + +typedef __u16 __be16; + +typedef u16 __compat_gid_t; + +typedef u16 __compat_uid_t; + +typedef __u16 __hc16; + +typedef short unsigned int __kernel_gid16_t; + +typedef short unsigned int __kernel_old_gid_t; + +typedef short unsigned int __kernel_old_uid_t; + +typedef short unsigned int __kernel_sa_family_t; + +typedef short unsigned int __kernel_uid16_t; + +typedef __u16 __le16; + +typedef __u16 __sum16; + +typedef __u16 __virtio16; + +typedef u16 access_mask_t; + +typedef u16 acpi_owner_id; + +typedef u16 acpi_rs_length; + +typedef __u16 bitmap_counter_t; + +typedef u16 blk_short_t; + +typedef uint16_t blkif_vdev_t; + +typedef __u16 comp_t; + +typedef u16 compat_dev_t; + +typedef u16 compat_ipc_pid_t; + +typedef u16 compat_mode_t; + +typedef u16 compat_nlink_t; + +typedef u16 compat_ushort_t; + +typedef uint16_t domid_t; + +typedef u16 efi_char16_t; + +typedef __kernel_gid16_t gid16_t; + +typedef uint16_t grant_status_t; + +typedef u16 hv_pci_rid; + +typedef u16 hv_pci_segment; + +typedef u16 layer_mask_t; + +typedef short unsigned int mifi_t; + +typedef __kernel_old_gid_t old_gid_t; + +typedef __kernel_old_uid_t old_uid_t; + +typedef short unsigned int pci_bus_flags_t; + +typedef short unsigned int pci_dev_flags_t; + +typedef __u16 port_id; + +typedef __kernel_sa_family_t sa_family_t; + +typedef u16 u_int16_t; + +typedef short unsigned int u_short; + +typedef u16 ucs2_char_t; + +typedef __kernel_uid16_t uid16_t; + +typedef __u16 uio_meta_flags_t; + +typedef short unsigned int umode_t; + +typedef short unsigned int ushort; + +typedef short unsigned int vifi_t; + +typedef u16 wchar_t; + +typedef signed char __s8; + +typedef __s8 s8; + +typedef s8 int8_t; + +typedef unsigned char __u8; + +typedef __u8 u8; + +typedef u8 uint8_t; + +typedef uint8_t BYTE; + +typedef unsigned char Byte; + +typedef uint8_t U8; + +typedef unsigned char *__guest_handle_uchar; + +typedef u8 acpi_adr_space_type; + +typedef u8 blk_status_t; + +typedef __u8 byte_t; + +typedef unsigned char cc_t; + +typedef u8 dscp_t; + +typedef __u8 dvd_challenge[10]; + +typedef __u8 dvd_key[5]; + +typedef u8 efi_bool_t; + +typedef unsigned char insn_byte_t; + +typedef u8 kprobe_opcode_t; + +typedef __u8 mctp_eid_t; + +typedef __u8 mtrr_type; + +typedef u8 retpoline_thunk_t[32]; + +typedef u8 rmap_age_t; + +typedef unsigned char u8___2; + +typedef unsigned char u_char; + +typedef u8 u_int8_t; + +typedef unsigned char uch; + +typedef u8 uprobe_opcode_t; + +typedef const unsigned char utf8leaf_t; + +typedef const unsigned char utf8trie_t; + +typedef __u8 virtio_net_ctrl_ack; + +typedef uint8_t xen_domain_handle_t[16]; + +typedef unsigned int __u32; + +typedef __u32 Elf32_Addr; + +typedef __u32 Elf32_Off; + +typedef __u32 Elf32_Word; + +typedef __u32 Elf64_Word; + +typedef unsigned int FSE_CTable; + +typedef unsigned int FSE_DTable; + +typedef __u32 u32; + +typedef u32 uint32_t; + +typedef uint32_t U32; + +typedef U32 HUF_DTable; + +typedef unsigned int IPos; + +typedef unsigned int RING_IDX; + +typedef unsigned int UHWtype; + +typedef uint32_t XENCONS_RING_IDX; + +typedef uint32_t XENSTORE_RING_IDX; + +typedef __u32 __be32; + +typedef u32 __compat_gid32_t; + +typedef u32 __compat_uid32_t; + +typedef uint32_t evtchn_port_t; + +typedef evtchn_port_t *__guest_handle_evtchn_port_t; + +typedef uint32_t *__guest_handle_uint32_t; + +typedef __u32 __hc32; + +typedef u32 __kernel_dev_t; + +typedef unsigned int __kernel_gid32_t; + +typedef unsigned int __kernel_gid_t; + +typedef unsigned int __kernel_mode_t; + +typedef unsigned int __kernel_uid32_t; + +typedef unsigned int __kernel_uid_t; + +typedef __u32 __le32; + +typedef unsigned int __poll_t; + +typedef __u32 __portpair; + +typedef __u32 __virtio32; + +typedef __u32 __wsum; + +typedef u32 acpi_event_status; + +typedef u32 acpi_mutex_handle; + +typedef u32 acpi_name; + +typedef u32 acpi_object_type; + +typedef u32 acpi_rsdesc_size; + +typedef u32 acpi_status; + +typedef unsigned int blk_features_t; + +typedef unsigned int blk_flags_t; + +typedef unsigned int blk_insert_t; + +typedef unsigned int blk_mode_t; + +typedef __u32 blk_mq_req_flags_t; + +typedef __u32 blk_opf_t; + +typedef unsigned int blk_qc_t; + +typedef u32 compat_aio_context_t; + +typedef u32 compat_caddr_t; + +typedef u32 compat_ino_t; + +typedef u32 compat_old_sigset_t; + +typedef u32 compat_sigset_word; + +typedef u32 compat_size_t; + +typedef u32 compat_uint_t; + +typedef u32 compat_ulong_t; + +typedef u32 compat_uptr_t; + +typedef u32 depot_flags_t; + +typedef u32 depot_stack_handle_t; + +typedef __kernel_dev_t dev_t; + +typedef uint32_t drbg_flag_t; + +typedef unsigned int drm_magic_t; + +typedef u32 errseq_t; + +typedef uint32_t event_word_t; + +typedef unsigned int ext4_group_t; + +typedef __u32 ext4_lblk_t; + +typedef unsigned int fgf_t; + +typedef unsigned int fmode_t; + +typedef unsigned int fop_flags_t; + +typedef unsigned int gfp_t; + +typedef __kernel_gid32_t gid_t; + +typedef uint32_t grant_handle_t; + +typedef uint32_t grant_ref_t; + +typedef __u32 if_mask; + +typedef unsigned int insn_attr_t; + +typedef __u32 int32; + +typedef unsigned int ioasid_t; + +typedef unsigned int iov_iter_extraction_t; + +typedef unsigned int isolate_mode_t; + +typedef unsigned int kasan_vmalloc_flags_t; + +typedef uint32_t key_perm_t; + +typedef unsigned int mmc_pm_flag_t; + +typedef __kernel_mode_t mode_t; + +typedef u32 nlink_t; + +typedef u32 note_buf_t[92]; + +typedef unsigned int pci_channel_state_t; + +typedef unsigned int pci_ers_result_t; + +typedef unsigned int pgtbl_mod_mask; + +typedef u32 phandle; + +typedef u32 phys_cpuid_t; + +typedef unsigned int pipe_index_t; + +typedef __kernel_uid32_t projid_t; + +typedef __kernel_uid32_t qid_t; + +typedef U32 rankValCol_t[13]; + +typedef __u32 req_flags_t; + +typedef u32 rpc_authflavor_t; + +typedef unsigned int sk_buff_data_t; + +typedef unsigned int slab_flags_t; + +typedef unsigned int speed_t; + +typedef u32 ssci_t; + +typedef unsigned int t_key; + +typedef unsigned int tcflag_t; + +typedef unsigned int tid_t; + +typedef unsigned int uInt; + +typedef unsigned int u_int; + +typedef u32 u_int32_t; + +typedef unsigned int uffd_flags_t; + +typedef __kernel_uid32_t uid_t; + +typedef unsigned int uint; + +typedef u32 unicode_t; + +typedef unsigned int upstat_t; + +typedef u32 usb_port_location_t; + +typedef unsigned int vm_fault_t; + +typedef unsigned int xa_mark_t; + +typedef u32 xdp_features_t; + +typedef unsigned int zap_flags_t; + +typedef struct { + size_t bitContainer; + unsigned int bitPos; + char *startPtr; + char *ptr; + char *endPtr; +} BIT_CStream_t; + +typedef struct { + size_t bitContainer; + unsigned int bitsConsumed; + const char *ptr; + const char *start; + const char *limitPtr; +} BIT_DStream_t; + +typedef struct { + BYTE maxTableLog; + BYTE tableType; + BYTE tableLog; + BYTE reserved; +} DTableDesc; + +typedef struct { + ptrdiff_t value; + const void *stateTable; + const void *symbolTT; + unsigned int stateLog; +} FSE_CState_t; + +typedef struct { + size_t state; + const void *table; +} FSE_DState_t; + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; + +typedef struct { + short int ncount[256]; + FSE_DTable dtable[0]; +} FSE_DecompressWksp; + +typedef struct { + short unsigned int newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; + +typedef struct { + int deltaFindState; + U32 deltaNbBits; +} FSE_symbolCompressionTransform; + +typedef struct { + size_t bitContainer[2]; + size_t bitPos[2]; + BYTE *startPtr; + BYTE *ptr; + BYTE *endPtr; +} HUF_CStream_t; + +typedef struct { + FSE_CTable CTable[59]; + U32 scratchBuffer[41]; + unsigned int count[13]; + S16 norm[13]; +} HUF_CompressWeightsWksp; + +typedef struct { + BYTE nbBits; + BYTE byte; +} HUF_DEltX1; + +typedef struct { + U16 sequence; + BYTE nbBits; + BYTE length; +} HUF_DEltX2; + +typedef struct { + U32 rankVal[13]; + U32 rankStart[13]; + U32 statsWksp[218]; + BYTE symbols[256]; + BYTE huffWeight[256]; +} HUF_ReadDTableX1_Workspace; + +typedef struct { + BYTE symbol; +} sortedSymbol_t; + +typedef struct { + U32 rankVal[156]; + U32 rankStats[13]; + U32 rankStart0[15]; + sortedSymbol_t sortedSymbol[256]; + BYTE weightList[256]; + U32 calleeWksp[218]; +} HUF_ReadDTableX2_Workspace; + +typedef struct { + HUF_CompressWeightsWksp wksp; + BYTE bitsToWeight[13]; + BYTE huffWeight[255]; +} HUF_WriteCTableWksp; + +struct nodeElt_s { + U32 count; + U16 parent; + BYTE byte; + BYTE nbBits; +}; + +typedef struct nodeElt_s nodeElt; + +typedef nodeElt huffNodeTable[512]; + +typedef struct { + U16 base; + U16 curr; +} rankPos; + +typedef struct { + huffNodeTable huffNodeTbl; + rankPos rankPosition[192]; +} HUF_buildCTable_wksp_tables; + +typedef struct { + unsigned int count[256]; + HUF_CElt CTable[257]; + union { + HUF_buildCTable_wksp_tables buildCTable_wksp; + HUF_WriteCTableWksp writeCTable_wksp; + U32 hist_wksp[1024]; + } wksps; +} HUF_compress_tables_t; + +struct buffer_head; + +typedef struct { + __le32 *p; + __le32 key; + struct buffer_head *bh; +} Indirect; + +typedef struct { + const uint8_t *externalDict; + size_t extDictSize; + const uint8_t *prefixEnd; + size_t prefixSize; +} LZ4_streamDecode_t_internal; + +typedef union { + long long unsigned int table[4]; + LZ4_streamDecode_t_internal internal_donotuse; +} LZ4_streamDecode_t; + +struct folio; + +typedef struct { + struct folio *v; +} Sector; + +typedef struct { + unsigned int offset; + unsigned int litLength; + unsigned int matchLength; + unsigned int rep; +} ZSTD_Sequence; + +typedef struct { + int collectSequences; + ZSTD_Sequence *seqStart; + size_t seqIndex; + size_t maxSequences; +} SeqCollector; + +typedef struct { + S16 norm[53]; + U32 wksp[285]; +} ZSTD_BuildCTableWksp; + +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; + +struct seqDef_s; + +typedef struct seqDef_s seqDef; + +typedef struct { + seqDef *sequencesStart; + seqDef *sequences; + BYTE *litStart; + BYTE *lit; + BYTE *llCode; + BYTE *mlCode; + BYTE *ofCode; + size_t maxNbSeq; + size_t maxNbLit; + ZSTD_longLengthType_e longLengthType; + U32 longLengthPos; +} seqStore_t; + +typedef struct { + symbolEncodingType_e hType; + BYTE hufDesBuffer[128]; + size_t hufDesSize; +} ZSTD_hufCTablesMetadata_t; + +typedef struct { + symbolEncodingType_e llType; + symbolEncodingType_e ofType; + symbolEncodingType_e mlType; + BYTE fseTablesBuffer[133]; + size_t fseTablesSize; + size_t lastCountSize; +} ZSTD_fseCTablesMetadata_t; + +typedef struct { + ZSTD_hufCTablesMetadata_t hufMetadata; + ZSTD_fseCTablesMetadata_t fseMetadata; +} ZSTD_entropyCTablesMetadata_t; + +typedef struct { + seqStore_t fullSeqStoreChunk; + seqStore_t firstHalfSeqStore; + seqStore_t secondHalfSeqStore; + seqStore_t currSeqStore; + seqStore_t nextSeqStore; + U32 partitions[196]; + ZSTD_entropyCTablesMetadata_t entropyMetadata; +} ZSTD_blockSplitCtx; + +typedef struct { + HUF_CElt CTable[257]; + HUF_repeat repeatMode; +} ZSTD_hufCTables_t; + +typedef struct { + FSE_CTable offcodeCTable[193]; + FSE_CTable matchlengthCTable[363]; + FSE_CTable litlengthCTable[329]; + FSE_repeat offcode_repeatMode; + FSE_repeat matchlength_repeatMode; + FSE_repeat litlength_repeatMode; +} ZSTD_fseCTables_t; + +typedef struct { + ZSTD_hufCTables_t huf; + ZSTD_fseCTables_t fse; +} ZSTD_entropyCTables_t; + +typedef struct { + ZSTD_entropyCTables_t entropy; + U32 rep[3]; +} ZSTD_compressedBlockState_t; + +typedef struct { + const BYTE *nextSrc; + const BYTE *base; + const BYTE *dictBase; + U32 dictLimit; + U32 lowLimit; + U32 nbOverflowCorrections; +} ZSTD_window_t; + +typedef struct { + U32 off; + U32 len; +} ZSTD_match_t; + +typedef struct { + int price; + U32 off; + U32 mlen; + U32 litlen; + U32 rep[3]; +} ZSTD_optimal_t; + +typedef struct { + unsigned int *litFreq; + unsigned int *litLengthFreq; + unsigned int *matchLengthFreq; + unsigned int *offCodeFreq; + ZSTD_match_t *matchTable; + ZSTD_optimal_t *priceTable; + U32 litSum; + U32 litLengthSum; + U32 matchLengthSum; + U32 offCodeSum; + U32 litSumBasePrice; + U32 litLengthSumBasePrice; + U32 matchLengthSumBasePrice; + U32 offCodeSumBasePrice; + ZSTD_OptPrice_e priceType; + const ZSTD_entropyCTables_t *symbolCosts; + ZSTD_paramSwitch_e literalCompressionMode; +} optState_t; + +typedef struct { + unsigned int windowLog; + unsigned int chainLog; + unsigned int hashLog; + unsigned int searchLog; + unsigned int minMatch; + unsigned int targetLength; + ZSTD_strategy strategy; +} ZSTD_compressionParameters; + +typedef struct { + U32 offset; + U32 litLength; + U32 matchLength; +} rawSeq; + +typedef struct { + rawSeq *seq; + size_t pos; + size_t posInSequence; + size_t size; + size_t capacity; +} rawSeqStore_t; + +struct ZSTD_matchState_t; + +typedef struct ZSTD_matchState_t ZSTD_matchState_t; + +struct ZSTD_matchState_t { + ZSTD_window_t window; + U32 loadedDictEnd; + U32 nextToUpdate; + U32 hashLog3; + U32 rowHashLog; + U16 *tagTable; + U32 hashCache[8]; + U32 *hashTable; + U32 *hashTable3; + U32 *chainTable; + U32 forceNonContiguous; + int dedicatedDictSearch; + optState_t opt; + const ZSTD_matchState_t *dictMatchState; + ZSTD_compressionParameters cParams; + const rawSeqStore_t *ldmSeqStore; +}; + +typedef struct { + ZSTD_compressedBlockState_t *prevCBlock; + ZSTD_compressedBlockState_t *nextCBlock; + ZSTD_matchState_t matchState; +} ZSTD_blockState_t; + +typedef struct { + size_t error; + int lowerBound; + int upperBound; +} ZSTD_bounds; + +typedef struct { + U32 f1c; + U32 f1d; + U32 f7b; + U32 f7c; +} ZSTD_cpuid_t; + +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 struct { + void *workspace; + void *workspaceEnd; + void *objectEnd; + void *tableEnd; + void *tableValidEnd; + void *allocStart; + BYTE allocFailed; + int workspaceOversizedDuration; + ZSTD_cwksp_alloc_phase_e phase; + ZSTD_cwksp_static_alloc_e isStatic; +} ZSTD_cwksp; + +typedef struct { + U16 nextState; + BYTE nbAdditionalBits; + BYTE nbBits; + U32 baseValue; +} ZSTD_seqSymbol; + +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 struct { + long long unsigned int frameContentSize; + long long unsigned int windowSize; + unsigned int blockSizeMax; + ZSTD_frameType_e frameType; + unsigned int headerSize; + unsigned int dictID; + unsigned int checksumFlag; +} ZSTD_frameHeader; + +typedef struct { + int contentSizeFlag; + int checksumFlag; + int noDictIDFlag; +} ZSTD_frameParameters; + +typedef struct { + long long unsigned int ingested; + long long unsigned int consumed; + long long unsigned int produced; + long long unsigned int flushed; + unsigned int currentJobID; + unsigned int nbActiveWorkers; +} ZSTD_frameProgression; + +typedef struct { + size_t compressedSize; + long long unsigned int decompressedBound; +} ZSTD_frameSizeInfo; + +typedef struct { + size_t state; + const ZSTD_seqSymbol *table; +} ZSTD_fseState; + +struct ZSTD_CDict_s; + +typedef struct ZSTD_CDict_s ZSTD_CDict; + +typedef struct { + void *dictBuffer; + const void *dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; + ZSTD_CDict *cdict; +} ZSTD_localDict; + +typedef struct { + rawSeqStore_t seqStore; + U32 startPosInBlock; + U32 endPosInBlock; + U32 offset; +} ZSTD_optLdm_t; + +typedef struct { + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; +} ZSTD_parameters; + +typedef struct { + U32 fastMode; + U32 tableLog; +} ZSTD_seqSymbol_header; + +typedef struct { + U32 litLength; + U32 matchLength; +} ZSTD_sequenceLength; + +typedef struct { + U32 idx; + U32 posInSequence; + size_t posInSrc; +} ZSTD_sequencePosition; + +typedef struct { + U32 LLtype; + U32 Offtype; + U32 MLtype; + size_t size; + size_t lastCountSize; +} ZSTD_symbolEncodingTypeStats_t; + +typedef struct { + long unsigned int fds_bits[16]; +} __kernel_fd_set; + +typedef struct { + int val[2]; +} __kernel_fsid_t; + +typedef struct { + U32 tableTime; + U32 decode256Time; +} algo_time_t; + +typedef struct { + s64 counter; +} atomic64_t; + +typedef atomic64_t atomic_long_t; + +typedef struct { + int counter; +} atomic_t; + +typedef struct { + char ax25_call[7]; +} ax25_address; + +struct hlist_node { + struct hlist_node *next; + struct hlist_node **pprev; +}; + +struct timer_list { + struct hlist_node entry; + long unsigned int expires; + void (*function)(struct timer_list *); + u32 flags; +}; + +typedef struct { + char slave; + struct timer_list slave_timer; + short unsigned int slave_timeout; +} ax25_dama_info; + +typedef struct { + __be64 a; + __be64 b; +} be128; + +typedef struct { + blockType_e blockType; + U32 lastBlock; + U32 origSize; +} blockProperties_t; + +typedef struct { + union { + void *kernel; + void *user; + }; + bool is_kernel: 1; +} sockptr_t; + +typedef sockptr_t bpfptr_t; + +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; + +typedef struct { + unsigned int interval; + unsigned int timeout; +} cisco_proto; + +typedef struct { + int *lock; + long unsigned int flags; +} class_core_lock_t; + +typedef struct { + void *lock; +} class_cpus_read_lock_t; + +struct raw_spinlock; + +typedef struct raw_spinlock raw_spinlock_t; + +typedef struct { + raw_spinlock_t *lock; + raw_spinlock_t *lock2; +} class_double_raw_spinlock_t; + +struct rq; + +typedef struct { + struct rq *lock; + struct rq *lock2; +} class_double_rq_lock_t; + +typedef struct { + void *lock; +} class_irq_t; + +typedef struct { + void *lock; + long unsigned int flags; +} class_irqsave_t; + +typedef struct { + void *lock; +} class_jump_label_lock_t; + +typedef struct { + void *lock; +} class_preempt_notrace_t; + +typedef struct { + void *lock; +} class_preempt_t; + +typedef struct { + raw_spinlock_t *lock; +} class_raw_spinlock_irq_t; + +typedef struct { + raw_spinlock_t *lock; + long unsigned int flags; +} class_raw_spinlock_irqsave_t; + +typedef struct { + raw_spinlock_t *lock; +} class_raw_spinlock_t; + +typedef struct { + void *lock; +} class_rcu_t; + +typedef struct { + void *lock; +} class_rcu_tasks_trace_t; + +struct qspinlock { + union { + atomic_t val; + struct { + u8 locked; + u8 pending; + }; + struct { + u16 locked_pending; + u16 tail; + }; + }; +}; + +typedef struct qspinlock arch_spinlock_t; + +struct qrwlock { + union { + atomic_t cnts; + struct { + u8 wlocked; + u8 __lstate[3]; + }; + }; + arch_spinlock_t wait_lock; +}; + +typedef struct qrwlock arch_rwlock_t; + +typedef struct { + arch_rwlock_t raw_lock; +} rwlock_t; + +typedef struct { + rwlock_t *lock; + long unsigned int flags; +} class_read_lock_irqsave_t; + +struct pin_cookie {}; + +struct rq_flags { + long unsigned int flags; + struct pin_cookie cookie; + unsigned int clock_update_flags; +}; + +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irq_t; + +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irqsave_t; + +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_t; + +struct spinlock; + +typedef struct spinlock spinlock_t; + +typedef struct { + spinlock_t *lock; +} class_spinlock_irq_t; + +typedef struct { + spinlock_t *lock; + long unsigned int flags; +} class_spinlock_irqsave_t; + +typedef struct { + spinlock_t *lock; +} class_spinlock_t; + +struct srcu_struct; + +typedef struct { + struct srcu_struct *lock; + int idx; +} class_srcu_t; + +struct task_struct; + +typedef struct { + struct task_struct *lock; + struct rq *rq; + struct rq_flags rf; +} class_task_rq_lock_t; + +typedef struct { + rwlock_t *lock; +} class_write_lock_irq_t; + +typedef struct { + rwlock_t *lock; + long unsigned int flags; +} class_write_lock_irqsave_t; + +typedef struct { + unsigned char op; + unsigned char bits; + short unsigned int val; +} code; + +typedef __kernel_fsid_t compat_fsid_t; + +typedef struct { + compat_sigset_word sig[2]; +} compat_sigset_t; + +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 { + long unsigned int bits[1]; +} dma_cap_mask_t; + +struct dvd_lu_send_agid { + __u8 type; + unsigned int agid: 2; +}; + +struct dvd_host_send_challenge { + __u8 type; + unsigned int agid: 2; + dvd_challenge chal; +}; + +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; + +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 { + u64 length; + u64 data; +} efi_capsule_block_desc_t; + +typedef struct { + __u8 b[16]; +} guid_t; + +typedef guid_t efi_guid_t; + +typedef struct { + efi_guid_t guid; + u32 headersize; + u32 flags; + u32 imagesize; +} efi_capsule_header_t; + +typedef struct { + efi_guid_t guid; + u32 table; +} efi_config_table_32_t; + +typedef struct { + efi_guid_t guid; + u64 table; +} efi_config_table_64_t; + +typedef union { + struct { + efi_guid_t guid; + void *table; + }; + efi_config_table_32_t mixed_mode; +} efi_config_table_t; + +typedef struct { + efi_guid_t guid; + long unsigned int *ptr; + const char name[16]; +} efi_config_table_type_t; + +typedef struct { + u32 type; + u32 pad; + u64 phys_addr; + u64 virt_addr; + u64 num_pages; + u64 attribute; +} efi_memory_desc_t; + +typedef struct { + u32 version; + u32 num_entries; + u32 desc_size; + u32 flags; + efi_memory_desc_t entry[0]; +} efi_memory_attributes_table_t; + +typedef struct { + u16 version; + u16 length; + u32 runtime_services_supported; +} efi_rt_properties_table_t; + +typedef struct { + u64 signature; + u32 revision; + u32 headersize; + u32 crc32; + u32 reserved; +} efi_table_hdr_t; + +typedef struct { + efi_table_hdr_t hdr; + u32 get_time; + u32 set_time; + u32 get_wakeup_time; + u32 set_wakeup_time; + u32 set_virtual_address_map; + u32 convert_pointer; + u32 get_variable; + u32 get_next_variable; + u32 set_variable; + u32 get_next_high_mono_count; + u32 reset_system; + u32 update_capsule; + u32 query_capsule_caps; + u32 query_variable_info; +} efi_runtime_services_32_t; + +typedef 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 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)(long unsigned int, long unsigned int, u32, efi_memory_desc_t *); + void *convert_pointer; + efi_status_t (*get_variable)(efi_char16_t *, efi_guid_t *, u32 *, long unsigned int *, void *); + efi_status_t (*get_next_variable)(long unsigned int *, efi_char16_t *, efi_guid_t *); + efi_status_t (*set_variable)(efi_char16_t *, efi_guid_t *, u32, long unsigned int, void *); + efi_status_t (*get_next_high_mono_count)(u32 *); + void (*reset_system)(int, efi_status_t, long unsigned int, efi_char16_t *); + efi_status_t (*update_capsule)(efi_capsule_header_t **, long unsigned int, long unsigned int); + efi_status_t (*query_capsule_caps)(efi_capsule_header_t **, long unsigned int, u64 *, int *); + efi_status_t (*query_variable_info)(u32, u64 *, u64 *, u64 *); + }; + efi_runtime_services_32_t mixed_mode; +} efi_runtime_services_t; + +typedef struct { + efi_guid_t signature_owner; + u8 signature_data[0]; +} efi_signature_data_t; + +typedef struct { + efi_guid_t signature_type; + u32 signature_list_size; + u32 signature_header_size; + u32 signature_size; + u8 signature_header[0]; +} efi_signature_list_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; + +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; + long unsigned int fw_vendor; + u32 fw_revision; + long unsigned int con_in_handle; + efi_simple_text_input_protocol_t *con_in; + long unsigned int con_out_handle; + efi_simple_text_output_protocol_t *con_out; + long unsigned int stderr_handle; + long unsigned int stderr; + efi_runtime_services_t *runtime; + efi_boot_services_t *boottime; + long unsigned int nr_tables; + long unsigned int tables; + }; + efi_system_table_32_t mixed_mode; +} efi_system_table_t; + +typedef struct { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; +} ext4_acl_entry; + +typedef struct { + __le32 a_version; +} ext4_acl_header; + +typedef __kernel_fd_set fd_set; + +typedef struct { + long unsigned int *in; + long unsigned int *out; + long unsigned int *ex; + long unsigned int *res_in; + long unsigned int *res_out; + long unsigned int *res_ex; +} fd_set_bits; + +typedef struct { + atomic64_t refcnt; +} file_ref_t; + +typedef struct { + unsigned int t391; + unsigned int t392; + unsigned int n391; + unsigned int n392; + unsigned int n393; + short unsigned int lmi; + short unsigned int dce; +} fr_proto; + +typedef struct { + unsigned int dlci; +} fr_proto_pvc; + +typedef struct { + unsigned int dlci; + char master[16]; +} fr_proto_pvc_info; + +typedef union { + struct { + void *freelist; + long unsigned int counter; + }; + freelist_full_t full; +} freelist_aba_t; + +typedef struct { + long unsigned int v; +} freeptr_t; + +typedef struct { + long unsigned int key[2]; +} hsiphash_key_t; + +typedef struct { + u8 kvm_cpu_l1tf_flush_l1d; + 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; + unsigned int irq_hv_reenlightenment_count; + unsigned int hyperv_stimer0_count; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +} irq_cpustat_t; + +typedef struct { + u64 val; +} kernel_cap_t; + +typedef struct { + gid_t val; +} kgid_t; + +typedef struct { + uid_t val; +} kuid_t; + +typedef union { + kuid_t uid; + kgid_t gid; +} kid_t; + +typedef struct { + projid_t val; +} kprojid_t; + +typedef struct { + U32 offset; + U32 checksum; +} ldmEntry_t; + +typedef struct { + const BYTE *split; + U32 hash; + U32 checksum; + ldmEntry_t *bucket; +} ldmMatchCandidate_t; + +typedef struct { + ZSTD_paramSwitch_e enableLdm; + U32 hashLog; + U32 bucketSizeLog; + U32 minMatchLength; + U32 hashRateLog; + U32 windowLog; +} ldmParams_t; + +typedef struct { + U64 rolling; + U64 stopMask; +} ldmRollingHashState_t; + +typedef struct { + ZSTD_window_t window; + ldmEntry_t *hashTable; + U32 loadedDictEnd; + BYTE *bucketOffsets; + size_t splitIndices[64]; + ldmMatchCandidate_t matchCandidates[64]; +} ldmState_t; + +typedef struct { + __le64 b; + __le64 a; +} le128; + +typedef struct { + atomic_long_t a; +} local_t; + +typedef struct { + local_t a; +} local64_t; + +typedef struct {} local_lock_t; + +typedef struct {} lockdep_map_p; + +struct optimistic_spin_queue { + atomic_t tail; +}; + +struct raw_spinlock { + arch_spinlock_t raw_lock; +}; + +struct list_head { + struct list_head *next; + struct list_head *prev; +}; + +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 mutex { + atomic_long_t owner; + raw_spinlock_t wait_lock; + struct optimistic_spin_queue osq; + struct list_head wait_list; +}; + +struct ldt_struct; + +struct vdso_image; + +typedef struct { + u64 ctx_id; + atomic64_t tlb_gen; + long unsigned int next_trim_cpumask; + struct rw_semaphore ldt_usr_sem; + struct ldt_struct *ldt; + long unsigned int flags; + struct mutex lock; + void *vdso; + const struct vdso_image *vdso_image; + atomic_t perf_rdpmc_allowed; + u16 pkey_allocation_map; + s16 execute_only_pkey; +} mm_context_t; + +typedef struct {} netdevice_tracker; + +typedef struct {} netns_tracker; + +typedef struct { + char data[8]; +} nfs4_verifier; + +typedef struct { + long unsigned int bits[16]; +} nodemask_t; + +typedef struct { + p4dval_t p4d; +} p4d_t; + +typedef struct { + u64 pme; +} pagemap_entry_t; + +typedef struct { + u64 val; +} pfn_t; + +typedef struct { + pgdval_t pgd; +} pgd_t; + +typedef struct { + pmdval_t pmd; +} pmd_t; + +typedef struct { + long unsigned int bits[4]; +} pnp_irq_mask_t; + +struct net; + +typedef struct { + struct net *net; +} possible_net_t; + +typedef struct { + pteval_t pte; +} pte_t; + +typedef struct { + pudval_t pud; +} pud_t; + +typedef struct { + short unsigned int encoding; + short unsigned int parity; +} raw_hdlc_proto; + +typedef struct { + atomic_t refcnt; +} rcuref_t; + +typedef struct { + size_t written; + size_t count; + union { + char *buf; + void *data; + } arg; + int error; +} read_descriptor_t; + +typedef union { +} release_pages_arg; + +typedef struct { + __u16 report_key_length; + __u8 reserved1; + __u8 reserved2; + __u8 ucca: 3; + __u8 vra: 3; + __u8 type_code: 2; + __u8 region_mask; + __u8 rpc_scheme; + __u8 reserved3; +} rpc_state_t; + +typedef struct { + BIT_DStream_t DStream; + ZSTD_fseState stateLL; + ZSTD_fseState stateOffb; + ZSTD_fseState stateML; + size_t prevOffset[3]; +} seqState_t; + +typedef struct { + U32 *splitLocations; + size_t idx; +} seqStoreSplits; + +typedef struct { + size_t litLength; + size_t matchLength; + size_t offset; +} seq_t; + +struct seqcount { + unsigned int sequence; +}; + +typedef struct seqcount seqcount_t; + +typedef struct { + seqcount_t seqcount; +} seqcount_latch_t; + +struct seqcount_spinlock { + seqcount_t seqcount; +}; + +typedef struct seqcount_spinlock seqcount_spinlock_t; + +struct spinlock { + union { + struct raw_spinlock rlock; + }; +}; + +typedef struct { + seqcount_spinlock_t seqcount; + spinlock_t lock; +} seqlock_t; + +typedef struct { + long unsigned int sig[1]; +} sigset_t; + +typedef struct { + u64 key[2]; +} siphash_key_t; + +struct wait_queue_head { + spinlock_t lock; + struct list_head head; +}; + +typedef struct wait_queue_head wait_queue_head_t; + +typedef struct { + spinlock_t slock; + int owned; + wait_queue_head_t wq; +} socket_lock_t; + +typedef struct { + char *from; + char *to; +} substring_t; + +typedef struct { + long unsigned int val; +} swp_entry_t; + +typedef struct { + unsigned int clock_rate; + unsigned int clock_type; + short unsigned int loopback; +} sync_serial_settings; + +typedef struct { + unsigned int clock_rate; + unsigned int clock_type; + short unsigned int loopback; + unsigned int slot_map; +} te1_settings; + +struct mm_struct; + +typedef struct { + struct mm_struct *mm; +} temp_mm_state_t; + +typedef struct { + __be16 track_information_length; + __u8 track_lsb; + __u8 session_lsb; + __u8 reserved1; + __u8 track_mode: 4; + __u8 copy: 1; + __u8 damage: 1; + __u8 reserved2: 2; + __u8 data_mode: 4; + __u8 fp: 1; + __u8 packet: 1; + __u8 blank: 1; + __u8 rt: 1; + __u8 nwa_v: 1; + __u8 lra_v: 1; + __u8 reserved3: 6; + __be32 track_start; + __be32 next_writable; + __be32 free_blocks; + __be32 fixed_packet_size; + __be32 track_size; + __be32 last_rec_address; +} track_information; + +typedef struct { + int data; + int audio; + int cdi; + int xa; + long int error; +} tracktype; + +typedef struct { + local64_t v; +} u64_stats_t; + +typedef struct { + u64 m_low; + u64 m_high; +} uint128_t; + +typedef struct { + __u8 b[16]; +} uuid_t; + +typedef struct { + gid_t val; +} vfsgid_t; + +typedef struct { + uid_t val; +} vfsuid_t; + +typedef struct { + short unsigned int dce; + unsigned int modulo; + unsigned int window; + unsigned int t1; + unsigned int t2; + unsigned int n2; +} x25_hdlc_proto; + +struct in6_addr { + union { + __u8 u6_addr8[16]; + __be16 u6_addr16[8]; + __be32 u6_addr32[4]; + } in6_u; +}; + +typedef union { + __be32 a4; + __be32 a6[4]; + struct in6_addr in6; +} xfrm_address_t; + +typedef ZSTD_compressionParameters zstd_compression_parameters; + +typedef ZSTD_customMem zstd_custom_mem; + +typedef ZSTD_frameHeader zstd_frame_header; + +typedef ZSTD_parameters zstd_parameters; + +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; +}; + +union IO_APIC_reg_03 { + u32 raw; + struct { + u32 boot_DT: 1; + u32 __reserved_1: 31; + } bits; +}; + +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 PartitionBlock { + __be32 pb_ID; + __be32 pb_SummedLongs; + __be32 pb_ChkSum; + __be32 pb_HostID; + __be32 pb_Next; + __be32 pb_Flags; + __be32 pb_Reserved1[2]; + __be32 pb_DevFlags; + __u8 pb_DriveName[32]; + __be32 pb_Reserved2[15]; + __be32 pb_Environment[17]; + __be32 pb_EReserved[15]; +}; + +struct refcount_struct { + atomic_t refs; +}; + +typedef struct refcount_struct refcount_t; + +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 qdisc_skb_head { + struct sk_buff *head; + struct sk_buff *tail; + __u32 qlen; + spinlock_t lock; +}; + +struct u64_stats_sync {}; + +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 callback_head { + struct callback_head *next; + void (*func)(struct callback_head *); +}; + +struct lock_class_key {}; + +struct Qdisc_ops; + +struct qdisc_size_table; + +struct netdev_queue; + +struct net_rate_estimator; + +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 *stab; + struct hlist_node hash; + u32 handle; + u32 parent; + struct netdev_queue *dev_queue; + struct net_rate_estimator *rate_est; + struct gnet_stats_basic_sync *cpu_bstats; + struct gnet_stats_queue *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; + int owner; + long unsigned int state; + long unsigned int 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; + struct lock_class_key root_lock_key; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long int privdata[0]; +}; + +struct Qdisc_class_common { + u32 classid; + unsigned int filter_cnt; + struct hlist_node hnode; +}; + +struct hlist_head; + +struct Qdisc_class_hash { + struct hlist_head *hash; + unsigned int hashsize; + unsigned int hashmask; + unsigned int hashelems; +}; + +struct tcmsg; + +struct netlink_ext_ack; + +struct nlattr; + +struct qdisc_walker; + +struct tcf_block; + +struct gnet_dump; + +struct Qdisc_class_ops { + unsigned int flags; + struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *); + int (*graft)(struct Qdisc *, long unsigned int, struct Qdisc *, struct Qdisc **, struct netlink_ext_ack *); + struct Qdisc * (*leaf)(struct Qdisc *, long unsigned int); + void (*qlen_notify)(struct Qdisc *, long unsigned int); + long unsigned int (*find)(struct Qdisc *, u32); + int (*change)(struct Qdisc *, u32, u32, struct nlattr **, long unsigned int *, struct netlink_ext_ack *); + int (*delete)(struct Qdisc *, long unsigned int, struct netlink_ext_ack *); + void (*walk)(struct Qdisc *, struct qdisc_walker *); + struct tcf_block * (*tcf_block)(struct Qdisc *, long unsigned int, struct netlink_ext_ack *); + long unsigned int (*bind_tcf)(struct Qdisc *, long unsigned int, u32); + void (*unbind_tcf)(struct Qdisc *, long unsigned int); + int (*dump)(struct Qdisc *, long unsigned int, struct sk_buff *, struct tcmsg *); + int (*dump_stats)(struct Qdisc *, long unsigned int, struct gnet_dump *); +}; + +struct module; + +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 RigidDiskBlock { + __be32 rdb_ID; + __be32 rdb_SummedLongs; + __be32 rdb_ChkSum; + __be32 rdb_HostID; + __be32 rdb_BlockBytes; + __be32 rdb_Flags; + __be32 rdb_BadBlockList; + __be32 rdb_PartitionList; + __be32 rdb_FileSysHeaderList; + __be32 rdb_DriveInit; + __be32 rdb_Reserved1[6]; + __be32 rdb_Cylinders; + __be32 rdb_Sectors; + __be32 rdb_Heads; + __be32 rdb_Interleave; + __be32 rdb_Park; + __be32 rdb_Reserved2[3]; + __be32 rdb_WritePreComp; + __be32 rdb_ReducedWrite; + __be32 rdb_StepRate; + __be32 rdb_Reserved3[5]; + __be32 rdb_RDBBlocksLo; + __be32 rdb_RDBBlocksHi; + __be32 rdb_LoCylinder; + __be32 rdb_HiCylinder; + __be32 rdb_CylBlocks; + __be32 rdb_AutoParkSeconds; + __be32 rdb_HighRDSKBlock; + __be32 rdb_Reserved4; + char rdb_DiskVendor[8]; + char rdb_DiskProduct[16]; + char rdb_DiskRevision[4]; + char rdb_ControllerVendor[8]; + char rdb_ControllerProduct[16]; + char rdb_ControllerRevision[4]; + __be32 rdb_Reserved5[10]; +}; + +struct kref { + refcount_t refcount; +}; + +struct swait_queue_head { + raw_spinlock_t lock; + struct list_head task_list; +}; + +struct completion { + unsigned int done; + struct swait_queue_head wait; +}; + +struct blk_mq_queue_map { + unsigned int *mq_map; + unsigned int nr_queues; + unsigned int queue_offset; +}; + +struct blk_mq_ops; + +struct blk_mq_tags; + +struct blk_mq_tag_set { + const struct blk_mq_ops *ops; + struct blk_mq_queue_map map[3]; + unsigned int nr_maps; + unsigned int nr_hw_queues; + unsigned int queue_depth; + unsigned int reserved_tags; + unsigned int cmd_size; + int numa_node; + unsigned int timeout; + unsigned int flags; + void *driver_data; + struct blk_mq_tags **tags; + struct blk_mq_tags *shared_tags; + struct mutex tag_list_lock; + struct list_head tag_list; + struct srcu_struct *srcu; +}; + +struct 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 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; + +struct rb_node { + long unsigned int __rb_parent_color; + struct rb_node *rb_right; + struct rb_node *rb_left; +}; + +struct timerqueue_node { + struct rb_node node; + ktime_t expires; +}; + +struct hrtimer_clock_base; + +struct hrtimer { + struct timerqueue_node node; + ktime_t _softexpires; + enum hrtimer_restart (*function)(struct hrtimer *); + struct hrtimer_clock_base *base; + u8 state; + u8 is_rel; + u8 is_soft; + u8 is_hard; +}; + +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 wakeup_source; + +struct wake_irq; + +struct pm_subsys_data; + +struct device; + +struct dev_pm_qos; + +struct dev_pm_info { + pm_message_t power_state; + bool can_wakeup: 1; + bool 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; + bool async_in_progress: 1; + bool must_resume: 1; + bool set_active: 1; + bool 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; + bool idle_notification: 1; + bool request_pending: 1; + bool deferred_resume: 1; + bool needs_force_resume: 1; + bool runtime_auto: 1; + bool ignore_children: 1; + bool no_callbacks: 1; + bool irq_safe: 1; + bool use_autosuspend: 1; + bool timer_autosuspends: 1; + bool memalloc_noio: 1; + unsigned int links_count; + enum rpm_request request; + enum rpm_status runtime_status; + enum rpm_status last_status; + int runtime_error; + int autosuspend_delay; + u64 last_busy; + u64 active_time; + u64 suspended_time; + u64 accounting_timestamp; + struct pm_subsys_data *subsys_data; + void (*set_latency_tolerance)(struct device *, s32); + struct dev_pm_qos *qos; +}; + +struct irq_domain; + +struct msi_device_data; + +struct dev_msi_info { + struct irq_domain *domain; + struct msi_device_data *data; +}; + +struct dev_archdata {}; + +struct device_private; + +struct device_type; + +struct bus_type; + +struct device_driver; + +struct dev_pm_domain; + +struct em_perf_domain; + +struct dev_pin_info; + +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 attribute_group; + +struct iommu_group; + +struct dev_iommu; + +struct device_physical_location; + +struct device { + struct kobject kobj; + struct device *parent; + struct device_private *p; + const char *init_name; + const struct device_type *type; + const struct bus_type *bus; + struct device_driver *driver; + void *platform_data; + void *driver_data; + struct mutex mutex; + struct dev_links_info links; + struct dev_pm_info power; + struct dev_pm_domain *pm_domain; + struct em_perf_domain *em_pd; + struct dev_pin_info *pins; + 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 list_head dma_io_tlb_pools; + spinlock_t dma_io_tlb_lock; + bool dma_uses_io_tlb; + struct dev_archdata archdata; + struct device_node *of_node; + struct fwnode_handle *fwnode; + int numa_node; + dev_t devt; + u32 id; + spinlock_t devres_lock; + struct list_head devres_head; + const struct class *class; + const struct attribute_group **groups; + void (*release)(struct device *); + struct iommu_group *iommu_group; + struct dev_iommu *iommu; + struct device_physical_location *physical_location; + enum device_removable removable; + bool offline_disabled: 1; + bool offline: 1; + bool of_node_reused: 1; + bool state_synced: 1; + bool can_match: 1; + bool dma_skip_sync: 1; + bool dma_iommu: 1; +}; + +struct scsi_host_template; + +struct scsi_transport_template; + +struct workqueue_struct; + +struct Scsi_Host { + struct list_head __devices; + struct list_head __targets; + struct list_head starved_list; + spinlock_t default_lock; + spinlock_t *host_lock; + struct mutex scan_mutex; + struct list_head eh_abort_list; + struct list_head eh_cmd_q; + struct task_struct *ehandler; + struct completion *eh_action; + wait_queue_head_t host_wait; + const struct scsi_host_template *hostt; + struct scsi_transport_template *transportt; + struct kref tagset_refcnt; + struct completion tagset_freed; + struct blk_mq_tag_set tag_set; + atomic_t host_blocked; + unsigned int host_failed; + unsigned int host_eh_scheduled; + unsigned int host_no; + int eh_deadline; + long unsigned int last_reset; + unsigned int max_channel; + unsigned int max_id; + u64 max_lun; + unsigned int unique_id; + short unsigned int max_cmd_len; + int this_id; + int can_queue; + short int cmd_per_lun; + short unsigned int sg_tablesize; + short unsigned int sg_prot_tablesize; + unsigned int max_sectors; + unsigned int opt_sectors; + unsigned int max_segment_size; + unsigned int dma_alignment; + long unsigned int dma_boundary; + long unsigned int virt_boundary_mask; + unsigned int nr_hw_queues; + unsigned int nr_maps; + unsigned int active_mode: 2; + unsigned int host_self_blocked: 1; + unsigned int reverse_ordering: 1; + unsigned int tmf_in_progress: 1; + unsigned int async_scan: 1; + unsigned int eh_noresume: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int queuecommand_may_block: 1; + unsigned int short_inquiry: 1; + unsigned int no_scsi2_lun_in_cdb: 1; + unsigned int no_highmem: 1; + 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; + long unsigned int base; + long unsigned int io_port; + unsigned char n_io_port; + unsigned char dma_channel; + unsigned int irq; + enum scsi_host_state shost_state; + struct device shost_gendev; + struct device shost_dev; + void *shost_data; + struct device *dma_dev; + int rpm_autosuspend_delay; + long unsigned int hostdata[0]; +}; + +struct ZSTD_CCtx_params_s { + ZSTD_format_e format; + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; + int compressionLevel; + int forceWindow; + size_t targetCBlockSize; + int srcSizeHint; + ZSTD_dictAttachPref_e attachDictPref; + ZSTD_paramSwitch_e literalCompressionMode; + int nbWorkers; + size_t jobSize; + int overlapLog; + int rsyncable; + ldmParams_t ldmParams; + int enableDedicatedDictSearch; + ZSTD_bufferMode_e inBufferMode; + ZSTD_bufferMode_e outBufferMode; + ZSTD_sequenceFormat_e blockDelimiters; + int validateSequences; + ZSTD_paramSwitch_e useBlockSplitter; + ZSTD_paramSwitch_e useRowMatchFinder; + int deterministicRefPrefix; + ZSTD_customMem customMem; +}; + +typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params; + +struct xxh64_state { + uint64_t total_len; + uint64_t v1; + uint64_t v2; + uint64_t v3; + uint64_t v4; + uint64_t mem64[4]; + uint32_t memsize; +}; + +struct POOL_ctx_s; + +typedef struct POOL_ctx_s ZSTD_threadPool; + +struct ZSTD_inBuffer_s { + const void *src; + size_t size; + size_t pos; +}; + +typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; + +struct ZSTD_prefixDict_s { + const void *dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; +}; + +typedef struct ZSTD_prefixDict_s ZSTD_prefixDict; + +struct ZSTD_CCtx_s { + ZSTD_compressionStage_e stage; + int cParamsChanged; + int bmi2; + ZSTD_CCtx_params requestedParams; + ZSTD_CCtx_params appliedParams; + ZSTD_CCtx_params simpleApiParams; + U32 dictID; + size_t dictContentSize; + ZSTD_cwksp workspace; + size_t blockSize; + long long unsigned int pledgedSrcSizePlusOne; + long long unsigned int consumedSrcSize; + long long unsigned int producedCSize; + struct xxh64_state xxhState; + ZSTD_customMem customMem; + ZSTD_threadPool *pool; + size_t staticSize; + SeqCollector seqCollector; + int isFirstBlock; + int initialized; + seqStore_t seqStore; + ldmState_t ldmState; + rawSeq *ldmSequences; + size_t maxNbLdmSequences; + rawSeqStore_t externSeqStore; + ZSTD_blockState_t blockState; + U32 *entropyWorkspace; + ZSTD_buffered_policy_e bufferedPolicy; + char *inBuff; + size_t inBuffSize; + size_t inToCompress; + size_t inBuffPos; + size_t inBuffTarget; + char *outBuff; + size_t outBuffSize; + size_t outBuffContentSize; + size_t outBuffFlushedSize; + ZSTD_cStreamStage streamStage; + U32 frameEnded; + ZSTD_inBuffer expectedInBuffer; + size_t expectedOutBufferSize; + ZSTD_localDict localDict; + const ZSTD_CDict *cdict; + ZSTD_prefixDict prefixDict; + ZSTD_blockSplitCtx blockSplitCtx; +}; + +typedef struct ZSTD_CCtx_s ZSTD_CCtx; + +typedef ZSTD_CCtx ZSTD_CStream; + +typedef ZSTD_CCtx zstd_cctx; + +typedef ZSTD_CStream zstd_cstream; + +struct ZSTD_CDict_s { + const void *dictContent; + size_t dictContentSize; + ZSTD_dictContentType_e dictContentType; + U32 *entropyWorkspace; + ZSTD_cwksp workspace; + ZSTD_matchState_t matchState; + ZSTD_compressedBlockState_t cBlockState; + ZSTD_customMem customMem; + U32 dictID; + int compressionLevel; + ZSTD_paramSwitch_e useRowMatchFinder; +}; + +typedef ZSTD_CDict zstd_cdict; + +struct ZSTD_outBuffer_s { + void *dst; + size_t size; + size_t pos; +}; + +typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; + +struct ZSTD_DCtx_s { + const ZSTD_seqSymbol *LLTptr; + const ZSTD_seqSymbol *MLTptr; + const ZSTD_seqSymbol *OFTptr; + const HUF_DTable *HUFptr; + ZSTD_entropyDTables_t entropy; + U32 workspace[640]; + const void *previousDstEnd; + const void *prefixStart; + const void *virtualStart; + const void *dictEnd; + size_t expected; + ZSTD_frameHeader fParams; + U64 processedCSize; + U64 decodedSize; + blockType_e bType; + ZSTD_dStage stage; + U32 litEntropy; + U32 fseEntropy; + struct xxh64_state xxhState; + size_t headerSize; + ZSTD_format_e format; + ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum; + U32 validateChecksum; + const BYTE *litPtr; + ZSTD_customMem customMem; + size_t litSize; + size_t rleSize; + size_t staticSize; + int bmi2; + ZSTD_DDict *ddictLocal; + const ZSTD_DDict *ddict; + U32 dictID; + int ddictIsCold; + ZSTD_dictUses_e dictUses; + ZSTD_DDictHashSet *ddictSet; + ZSTD_refMultipleDDicts_e refMultipleDDicts; + ZSTD_dStreamStage streamStage; + char *inBuff; + size_t inBuffSize; + size_t inPos; + size_t maxWindowSize; + char *outBuff; + size_t outBuffSize; + size_t outStart; + size_t outEnd; + size_t lhSize; + U32 hostageByte; + int noForwardProgress; + ZSTD_bufferMode_e outBufferMode; + ZSTD_outBuffer expectedOutBuffer; + BYTE *litBuffer; + const BYTE *litBufferEnd; + ZSTD_litLocation_e litBufferLocation; + BYTE litExtraBuffer[65568]; + BYTE headerBuffer[18]; + size_t oversizedDuration; +}; + +typedef struct ZSTD_DCtx_s ZSTD_DCtx; + +typedef ZSTD_DCtx ZSTD_DStream; + +typedef ZSTD_DCtx zstd_dctx; + +typedef ZSTD_DStream zstd_dstream; + +struct ZSTD_DDict_s { + void *dictBuffer; + const void *dictContent; + size_t dictSize; + ZSTD_entropyDTables_t entropy; + U32 dictID; + U32 entropyPresent; + ZSTD_customMem cMem; +}; + +typedef ZSTD_DDict zstd_ddict; + +typedef ZSTD_inBuffer zstd_in_buffer; + +typedef ZSTD_outBuffer zstd_out_buffer; + +struct __aio_sigset { + const sigset_t *sigmask; + size_t sigsetsize; +}; + +struct fred_cs { + u64 cs: 16; + u64 sl: 2; + u64 wfe: 1; +}; + +struct fred_ss { + u64 ss: 16; + u64 sti: 1; + u64 swevent: 1; + u64 nmi: 1; + int: 13; + u64 vector: 8; + short: 8; + u64 type: 4; + char: 4; + u64 enclave: 1; + u64 lm: 1; + u64 nested: 1; + char: 1; + u64 insnlen: 4; +}; + +struct pt_regs { + long unsigned int r15; + long unsigned int r14; + long unsigned int r13; + long unsigned int r12; + long unsigned int bp; + long unsigned int bx; + long unsigned int r11; + long unsigned int r10; + long unsigned int r9; + long unsigned int r8; + long unsigned int ax; + long unsigned int cx; + long unsigned int dx; + long unsigned int si; + long unsigned int di; + long unsigned int orig_ax; + long unsigned int ip; + union { + u16 cs; + u64 csx; + struct fred_cs fred_cs; + }; + long unsigned int flags; + long unsigned int sp; + union { + u16 ss; + u64 ssx; + struct fred_ss fred_ss; + }; +}; + +struct __arch_ftrace_regs { + struct pt_regs regs; +}; + +struct __arch_relative_insn { + u8 op; + s32 raddr; +} __attribute__((packed)); + +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; +}; + +typedef void (*smp_call_func_t)(void *); + +struct __call_single_data { + struct __call_single_node node; + smp_call_func_t func; + void *info; +}; + +typedef struct __call_single_data call_single_data_t; + +struct cpumask; + +struct __cmp_key { + const struct cpumask *cpus; + struct cpumask ***masks; + int node; + int cpu; + int w; +}; + +struct __compat_aio_sigset { + compat_uptr_t sigmask; + compat_size_t sigsetsize; +}; + +struct __compat_iw_event { + __u16 len; + __u16 cmd; + union { + compat_caddr_t pointer; + struct { + struct {} __empty_ptr_bytes; + __u8 ptr_bytes[0]; + }; + }; +}; + +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 *out_fence_ptr; +}; + +struct drm_crtc; + +struct drm_crtc_state; + +struct drm_crtc_commit; + +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 *out_fence_ptr; + u64 last_vblank_count; +}; + +struct drm_plane; + +struct drm_plane_state; + +struct __drm_planes_state { + struct drm_plane *ptr; + struct drm_plane_state *state; + struct drm_plane_state *old_state; + struct drm_plane_state *new_state; +}; + +struct drm_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 __extcon_info { + unsigned int type; + unsigned int id; + const char *name; +}; + +struct __fat_dirent { + long int d_ino; + __kernel_off_t d_off; + short unsigned int d_reclen; + char d_name[256]; +}; + +struct __fb_timings { + u32 dclk; + u32 hfreq; + u32 vfreq; + u32 hactive; + u32 vactive; + u32 hblank; + u32 vblank; + u32 htotal; + u32 vtotal; +}; + +struct tracepoint; + +struct __find_tracepoint_cb_data { + const char *tp_name; + struct tracepoint *tpoint; + struct module *mod; +}; + +struct genradix_root; + +struct __genradix { + struct genradix_root *root; +}; + +struct pmu; + +struct cgroup; + +struct __group_key { + int cpu; + struct pmu *pmu; + struct cgroup *cgroup; +}; + +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; + long unsigned int i_flags[1]; + long unsigned int o_flags[1]; + __be32 i_key; + __be32 o_key; + __u32 fwmark; + __u32 index; + __u8 erspan_ver; + __u8 dir; + __u16 hwid; +}; + +struct __kernel_timespec { + __kernel_time64_t tv_sec; + long long int tv_nsec; +}; + +struct __kernel_itimerspec { + struct __kernel_timespec it_interval; + struct __kernel_timespec it_value; +}; + +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 __kernel_old_timespec { + __kernel_old_time_t tv_sec; + long int tv_nsec; +}; + +struct __kernel_sock_timeval { + __s64 tv_sec; + __s64 tv_usec; +}; + +struct __kernel_sockaddr_storage { + union { + struct { + __kernel_sa_family_t ss_family; + char __data[126]; + }; + void *__align; + }; +}; + +struct __kernel_timex_timeval { + __kernel_time64_t tv_sec; + long long int tv_usec; +}; + +struct __kernel_timex { + unsigned int modes; + long long int offset; + long long int freq; + long long int maxerror; + long long int esterror; + int status; + long long int constant; + long long int precision; + long long int tolerance; + struct __kernel_timex_timeval time; + long long int tick; + long long int ppsfreq; + long long int jitter; + int shift; + long long int stabil; + long long int jitcnt; + long long int calcnt; + long long int errcnt; + long long int stbcnt; + int tai; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct __kfifo { + unsigned int in; + unsigned int out; + unsigned int mask; + unsigned int esize; + void *data; +}; + +struct __ksymtab { + long unsigned int value; + const char *mod_name; + long unsigned int mod_start; + long unsigned int mod_end; + const char *sec_name; + long unsigned int sec_start; + long unsigned int sec_end; + const char *sym_name; + long unsigned int sym_start; + long unsigned int sym_end; +}; + +typedef struct __ksymtab kdb_symtab_t; + +struct __large_struct { + long unsigned int buf[100]; +}; + +struct __old_kernel_stat { + short unsigned int st_dev; + short unsigned int st_ino; + short unsigned int st_mode; + short unsigned int st_nlink; + short unsigned int st_uid; + short unsigned int st_gid; + short unsigned int st_rdev; + unsigned int st_size; + unsigned int st_atime; + unsigned int st_mtime; + unsigned int st_ctime; +}; + +struct __pldm_timestamp { + u8 b[13]; +}; + +struct __pldm_header { + uuid_t id; + u8 revision; + __le16 size; + struct __pldm_timestamp release_date; + __le16 component_bitmap_len; + u8 version_type; + u8 version_len; + u8 version_string[0]; +} __attribute__((packed)); + +struct __pldmfw_component_area { + __le16 component_image_count; + u8 components[0]; +}; + +struct __pldmfw_component_info { + __le16 classification; + __le16 identifier; + __le32 comparison_stamp; + __le16 options; + __le16 activation_method; + __le32 location_offset; + __le32 size; + u8 version_type; + u8 version_len; + u8 version_string[0]; +} __attribute__((packed)); + +struct __pldmfw_desc_tlv { + __le16 type; + __le16 size; + u8 data[0]; +}; + +struct __pldmfw_record_area { + u8 record_count; + u8 records[0]; +}; + +struct __pldmfw_record_info { + __le16 record_len; + u8 descriptor_count; + __le32 device_update_flags; + u8 version_type; + u8 version_len; + __le16 package_data_len; + u8 variable_record_data[0]; +} __attribute__((packed)); + +struct net_device; + +struct __rt6_probe_work { + struct work_struct work; + struct in6_addr target; + struct net_device *dev; + netdevice_tracker dev_tracker; +}; + +union sigval { + int sival_int; + void *sival_ptr; +}; + +typedef union sigval sigval_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 *_addr; + union { + int _trapno; + short int _addr_lsb; + struct { + char _dummy_bnd[8]; + void *_lower; + void *_upper; + } _addr_bnd; + struct { + char _dummy_pkey[8]; + __u32 _pkey; + } _addr_pkey; + struct { + long unsigned int _data; + __u32 _type; + __u32 _flags; + } _perf; + }; + } _sigfault; + struct { + long int _band; + int _fd; + } _sigpoll; + struct { + void *_call_addr; + int _syscall; + unsigned int _arch; + } _sigsys; +}; + +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 dentry; + +struct __track_dentry_update_args { + struct dentry *dentry; + int op; +}; + +struct __track_range_args { + ext4_lblk_t start; + ext4_lblk_t end; +}; + +union __u128_halves { + u128 full; + struct { + u64 low; + u64 high; + }; +}; + +struct __una_u32 { + u32 x; +}; + +struct inode; + +struct __uprobe_key { + struct inode *inode; + loff_t offset; +}; + +struct __user_cap_data_struct { + __u32 effective; + __u32 permitted; + __u32 inheritable; +}; + +typedef struct __user_cap_data_struct *cap_user_data_t; + +struct __user_cap_header_struct { + __u32 version; + int pid; +}; + +typedef struct __user_cap_header_struct *cap_user_header_t; + +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 _bpf_dtab_netdev { + struct net_device *dev; +}; + +struct _cache_table { + unsigned char descriptor; + char cache_type; + short int size; +}; + +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; +}; + +struct amd_northbridge; + +struct _cpuid4_info_regs { + union _cpuid4_leaf_eax eax; + union _cpuid4_leaf_ebx ebx; + union _cpuid4_leaf_ecx ecx; + unsigned int id; + long unsigned int size; + struct amd_northbridge *nb; +}; + +struct jump_entry; + +struct static_key_mod; + +struct static_key { + atomic_t enabled; + union { + long unsigned int type; + struct jump_entry *entries; + struct static_key_mod *next; + }; +}; + +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 ddebug_class_map; + +struct _ddebug_info { + struct _ddebug *descs; + struct ddebug_class_map *classes; + unsigned int num_descs; + unsigned int num_classes; +}; + +struct _flow_keys_digest_data { + __be16 n_proto; + u8 ip_proto; + u8 padding; + __be32 ports; + __be32 src; + __be32 dst; +}; + +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 _gpiochip_for_each_data { + const char **label; + unsigned int *i; +}; + +typedef struct _gpiochip_for_each_data class__gpiochip_for_each_data_t; + +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_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_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 resource { + resource_size_t start; + resource_size_t end; + const char *name; + long unsigned int flags; + long unsigned int desc; + struct resource *parent; + struct resource *sibling; + struct resource *child; +}; + +struct intel_gtt_driver; + +struct pci_dev; + +struct page; + +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 _kdb_bp { + long unsigned int bp_addr; + unsigned int bp_free: 1; + unsigned int bp_enabled: 1; + unsigned int bp_type: 4; + unsigned int bp_installed: 1; + unsigned int bp_delay: 1; + unsigned int bp_delayed: 1; + unsigned int bph_length; +}; + +typedef struct _kdb_bp kdb_bp_t; + +struct _kdbmsg { + int km_diag; + char *km_msg; +}; + +typedef struct _kdbmsg kdbmsg_t; + +typedef int (*kdb_func_t)(int, const char **); + +struct _kdbtab { + char *name; + kdb_func_t func; + char *usage; + char *help; + short int minlen; + kdb_cmdflags_t flags; + struct list_head list_node; +}; + +typedef struct _kdbtab kdbtab_t; + +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 _legacy_mbr { + u8 boot_code[440]; + __le32 unique_mbr_signature; + __le16 unknown; + gpt_mbr_record partition_record[4]; + __le16 signature; +} __attribute__((packed)); + +typedef struct _legacy_mbr legacy_mbr; + +struct strp_msg { + int full_len; + int offset; +}; + +struct _strp_msg { + struct strp_msg strp; + int accum_len; +}; + +struct delayed_work { + struct work_struct work; + struct timer_list timer; + struct workqueue_struct *wq; + int cpu; +}; + +struct _thermal_state { + u64 next_check; + u64 last_interrupt_time; + struct delayed_work therm_work; + long unsigned int count; + long unsigned int last_count; + long unsigned int max_time_ms; + long unsigned int 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 _tlb_table { + unsigned char descriptor; + char tlb_type; + unsigned int entries; + char info[128]; +}; + +struct aa_policydb; + +struct aa_attachment { + const char *xmatch_str; + struct aa_policydb *xmatch; + unsigned int xmatch_len; + int xattr_count; + char **xattrs; +}; + +struct aa_audit_cache { + spinlock_t lock; + int size; + struct list_head head; +}; + +struct vfsmount; + +struct path { + struct vfsmount *mnt; + struct dentry *dentry; +}; + +struct lsm_network_audit; + +struct lsm_ioctlop_audit; + +struct file; + +struct lsm_ibpkey_audit; + +struct lsm_ibendport_audit; + +struct smack_audit_data; + +struct selinux_audit_data; + +struct apparmor_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; + u16 nlmsg_type; + } u; + union { + struct smack_audit_data *smack_audit_data; + struct selinux_audit_data *selinux_audit_data; + struct apparmor_audit_data *apparmor_audit_data; + }; +}; + +struct cred; + +struct aa_label; + +struct sock; + +struct aa_profile; + +struct apparmor_audit_data { + u32 flags; + int error; + int type; + u16 class; + const char *op; + const struct cred *subj_cred; + struct aa_label *subj_label; + const char *name; + const char *info; + u32 request; + u32 denied; + struct task_struct *subjtsk; + union { + struct { + struct aa_label *peer; + union { + struct { + const char *target; + kuid_t ouid; + } fs; + struct { + int rlim; + long unsigned int max; + } rlim; + struct { + int signal; + int unmappedsig; + }; + struct { + int type; + int protocol; + struct sock *peer_sk; + void *addr; + int addrlen; + } net; + struct { + const char *target; + } ns; + struct { + kuid_t fsuid; + kuid_t ouid; + } mq; + }; + }; + struct { + struct aa_profile *profile; + const char *ns; + long int pos; + } iface; + struct { + const char *src_name; + const char *type; + const char *trans; + const char *data; + long unsigned int flags; + } mnt; + struct { + struct aa_label *target; + } uring; + }; + struct common_audit_data common; +}; + +struct aa_knotif { + struct apparmor_audit_data *ad; + struct list_head list; + struct completion ready; + u64 id; + u16 ntype; + u16 flags; +}; + +struct aa_audit_node { + struct kref count; + struct apparmor_audit_data data; + struct list_head list; + struct aa_knotif knotif; +}; + +struct aa_audit_rule { + struct aa_label *label; +}; + +union aa_buffer { + struct list_head list; + struct { + struct {} __empty_buffer; + char buffer[0]; + }; +}; + +struct aa_caps { + kernel_cap_t allow; + kernel_cap_t audit; + kernel_cap_t denied; + kernel_cap_t quiet; + kernel_cap_t kill; + kernel_cap_t extended; +}; + +struct rhash_head { + struct rhash_head *next; +}; + +struct aa_data { + char *key; + u32 size; + char *data; + struct rhash_head head; +}; + +struct table_header; + +struct aa_dfa { + struct kref count; + u16 flags; + u32 max_oob; + struct table_header *tables[8]; +}; + +struct aa_ext { + void *start; + void *end; + void *pos; + u32 version; +}; + +struct aa_file_ctx { + spinlock_t lock; + struct aa_label *label; + u32 allow; +}; + +struct aa_inode_sec { + struct inode *inode; + struct aa_label *label; + u16 sclass; + bool initialized; + spinlock_t lock; +}; + +struct aa_proxy; + +struct aa_ruleset; + +struct aa_label { + struct kref count; + struct rb_node node; + struct callback_head rcu; + struct aa_proxy *proxy; + char *hname; + long int flags; + u32 secid; + int size; + u64 mediates; + union { + struct { + struct aa_profile *profile[2]; + struct { + struct {} __empty_rules; + struct aa_ruleset *rules[0]; + }; + }; + struct { + struct {} __empty_vec; + struct aa_profile *vec[0]; + }; + }; +}; + +struct rb_root { + struct rb_node *rb_node; +}; + +struct aa_labelset { + rwlock_t lock; + struct rb_root root; +}; + +struct aa_ns; + +struct aa_listener { + struct kref count; + spinlock_t lock; + wait_queue_head_t wait; + struct list_head ns_proxies; + struct list_head notifications; + struct list_head pending; + struct aa_ns *ns; + struct aa_dfa *filter; + u64 last_id; + u32 mask; + u32 flags; +}; + +struct aa_listener_proxy { + struct aa_ns *ns; + struct aa_listener *listener; + struct list_head llist; + struct list_head nslist; +}; + +struct aa_load_ent { + struct list_head list; + struct aa_profile *new; + struct aa_profile *old; + struct aa_profile *rename; + const char *ns_name; +}; + +struct aa_loaddata { + struct kref count; + struct list_head list; + struct work_struct work; + struct dentry *dents[6]; + struct aa_ns *ns; + char *name; + size_t size; + size_t compressed_size; + long int revision; + int abi; + unsigned char *hash; + char *data; +}; + +struct aa_local_cache { + unsigned int hold; + unsigned int count; + struct list_head head; +}; + +struct aa_net_compat { + u16 allow[46]; + u16 audit[46]; + u16 quiet[46]; +}; + +struct aa_policy { + const char *name; + char *hname; + struct list_head list; + struct list_head profiles; +}; + +struct aa_ns_acct { + int max_size; + int max_count; + int size; + int count; +}; + +struct aa_ns { + struct aa_policy base; + struct aa_ns *parent; + struct mutex lock; + struct aa_ns_acct acct; + struct aa_profile *unconfined; + struct list_head sub_ns; + atomic_t uniq_null; + long int uniq_id; + int level; + long int revision; + wait_queue_head_t wait; + spinlock_t listener_lock; + struct list_head listeners; + struct aa_labelset labels; + struct list_head rawdata_list; + struct dentry *dents[13]; +}; + +struct aa_perms { + u32 allow; + u32 deny; + u32 subtree; + u32 cond; + u32 kill; + u32 complain; + u32 prompt; + u32 audit; + u32 quiet; + u32 hide; + u32 xindex; + u32 tag; + u32 label; +}; + +struct aa_str_table { + int size; + char **table; +}; + +struct aa_policydb { + struct kref count; + struct aa_dfa *dfa; + struct { + struct aa_perms *perms; + u32 size; + }; + struct aa_str_table trans; + unsigned int start[33]; +}; + +struct rhashtable; + +struct aa_profile { + struct aa_policy base; + struct aa_profile *parent; + struct aa_ns *ns; + const char *rename; + enum audit_mode audit; + long int mode; + u32 path_flags; + int signal; + const char *disconnected; + const char *disconnected_ipc; + struct aa_attachment attach; + struct aa_net_compat *net_compat; + struct aa_audit_cache learning_cache; + struct aa_loaddata *rawdata; + unsigned char *hash; + char *dirname; + struct dentry *dents[10]; + struct rhashtable *data; + int n_rules; + struct aa_label label; +}; + +struct aa_proxy { + struct kref count; + struct aa_label *label; +}; + +struct aa_revision { + struct aa_ns *ns; + long int last_read; +}; + +struct rlimit { + __kernel_ulong_t rlim_cur; + __kernel_ulong_t rlim_max; +}; + +struct aa_rlimit { + unsigned int mask; + struct rlimit limits[16]; +}; + +struct aa_secmark; + +struct aa_ruleset { + int size; + struct aa_policydb *policy; + struct aa_policydb *file; + struct aa_caps caps; + struct aa_rlimit rlimits; + int secmark_count; + struct aa_secmark *secmark; +}; + +struct aa_secmark { + u8 audit; + u8 deny; + u32 secid; + char *label; +}; + +struct file_operations; + +struct aa_sfs_entry { + const char *name; + struct dentry *dentry; + umode_t mode; + enum aa_sfs_type v_type; + union { + bool boolean; + char *string; + long unsigned int u64; + struct aa_sfs_entry *files; + } v; + const struct file_operations *file_ops; +}; + +struct aa_sk_ctx { + struct aa_label *label; + struct aa_label *peer; +}; + +struct aa_task_ctx { + struct aa_label *nnp; + struct aa_label *onexec; + struct aa_label *previous; + u64 token; +}; + +struct i2c_client; + +struct aat2870_register; + +struct aat2870_data { + struct device *dev; + struct i2c_client *client; + struct mutex io_lock; + struct aat2870_register *reg_cache; + int en_pin; + bool is_enable; + int (*init)(struct aat2870_data *); + void (*uninit)(struct aat2870_data *); + int (*read)(struct aat2870_data *, u8, u8 *); + int (*write)(struct aat2870_data *, u8, u8); + int (*update)(struct aat2870_data *, u8, u8, u8); + struct dentry *dentry_root; +}; + +struct aat2870_subdev_info; + +struct aat2870_platform_data { + int en_pin; + struct aat2870_subdev_info *subdevs; + int num_subdevs; + int (*init)(struct aat2870_data *); + void (*uninit)(struct aat2870_data *); +}; + +struct aat2870_register { + bool readable; + bool writeable; + u8 value; +}; + +struct aat2870_subdev_info { + int id; + const char *name; + void *platform_data; +}; + +struct seq_net_private { + struct net *net; + netns_tracker ns_tracker; +}; + +struct ac6_iter_state { + struct seq_net_private p; + struct net_device *dev; +}; + +struct accept_range { + struct list_head list; + long unsigned int start; + long unsigned int end; +}; + +struct access_coordinate { + unsigned int read_bandwidth; + unsigned int write_bandwidth; + unsigned int read_latency; + unsigned int write_latency; +}; + +struct access_masks { + access_mask_t fs: 16; + access_mask_t net: 2; + access_mask_t scope: 2; +}; + +union access_masks_all { + struct access_masks masks; + u32 all; +}; + +struct access_report_info { + struct callback_head work; + const char *access; + struct task_struct *target; + struct task_struct *agent; +}; + +struct acct_v3 { + char ac_flag; + char ac_version; + __u16 ac_tty; + __u32 ac_exitcode; + __u32 ac_uid; + __u32 ac_gid; + __u32 ac_pid; + __u32 ac_ppid; + __u32 ac_btime; + __u32 ac_etime; + comp_t ac_utime; + comp_t ac_stime; + comp_t ac_mem; + comp_t ac_io; + comp_t ac_rw; + comp_t ac_minflt; + comp_t ac_majflt; + comp_t ac_swaps; + char ac_comm[16]; +}; + +typedef struct acct_v3 acct_t; + +struct ack_sample { + u32 pkts_acked; + s32 rtt_us; + u32 in_flight; +}; + +struct crypto_tfm; + +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 comp_alg_common { + struct crypto_alg base; +}; + +struct acomp_req; + +struct scatterlist; + +struct crypto_acomp; + +struct acomp_alg { + int (*compress)(struct acomp_req *); + int (*decompress)(struct acomp_req *); + void (*dst_free)(struct scatterlist *); + int (*init)(struct crypto_acomp *); + void (*exit)(struct crypto_acomp *); + unsigned int reqsize; + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; +}; + +typedef 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 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 power_supply; + +union power_supply_propval; + +struct power_supply_desc { + const char *name; + enum power_supply_type type; + u8 charge_behaviours; + u32 charge_types; + u32 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 notifier_block; + +typedef int (*notifier_fn_t)(struct notifier_block *, long unsigned int, void *); + +struct notifier_block { + notifier_fn_t notifier_call; + struct notifier_block *next; + int priority; +}; + +struct acpi_device; + +struct acpi_ac { + struct power_supply *charger; + struct power_supply_desc charger_desc; + struct acpi_device *device; + long long unsigned int state; + struct notifier_block battery_nb; +}; + +struct acpi_address16_attribute { + u16 granularity; + u16 minimum; + u16 maximum; + u16 translation_offset; + u16 address_length; +}; + +struct acpi_address32_attribute { + u32 granularity; + u32 minimum; + u32 maximum; + u32 translation_offset; + u32 address_length; +}; + +struct acpi_address64_attribute { + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; +}; + +struct acpi_namespace_node; + +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 circ_buf { + char *buf; + int head; + int tail; +}; + +typedef void (*acpi_osd_exec_callback)(void *); + +struct acpi_aml_io { + wait_queue_head_t wait; + long unsigned int flags; + long unsigned int users; + struct mutex lock; + struct task_struct *thread; + char out_buf[4096]; + struct circ_buf out_crc; + char in_buf[4096]; + struct circ_buf in_crc; + acpi_osd_exec_callback function; + void *context; + long unsigned int usages; +}; + +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; + long unsigned int 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; + long unsigned int 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; +}; + +struct acpi_bert_region { + u32 block_status; + u32 raw_data_offset; + u32 raw_data_length; + u32 data_length; + u32 error_severity; +}; + +struct acpi_bit_register_info { + u8 parent_register; + u8 bit_position; + u16 access_bit_mask; +}; + +struct acpi_buffer { + acpi_size length; + void *pointer; +}; + +struct acpi_bus_event { + struct list_head node; + acpi_device_class device_class; + acpi_bus_id bus_id; + u32 type; + u32 data; +}; + +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 input_dev; + +struct acpi_button { + unsigned int type; + struct input_dev *input; + char phys[32]; + long unsigned int pushed; + int last_state; + ktime_t last_time; + bool suspended; + bool lid_state_initialized; +}; + +struct acpi_cdat_header { + u8 type; + u8 reserved; + u16 length; +}; + +struct acpi_cedt_header { + u8 type; + u8 reserved; + u16 length; +}; + +struct acpi_cedt_cfmws { + struct acpi_cedt_header header; + u32 reserved1; + u64 base_hpa; + u64 window_size; + u8 interleave_ways; + u8 interleave_arithmetic; + u16 reserved2; + u32 granularity; + u16 restrictions; + u16 qtg_id; + u32 interleave_targets[0]; +} __attribute__((packed)); + +struct acpi_comment_node { + char *comment; + struct acpi_comment_node *next; +}; + +struct acpi_common_descriptor { + void *common_pointer; + u8 descriptor_type; +}; + +struct acpi_common_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; +}; + +struct acpi_connection_info { + u8 *connection; + u16 length; + u8 access_length; +}; + +union acpi_parse_object; + +struct acpi_control_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u16 opcode; + union acpi_parse_object *predicate_op; + u8 *aml_predicate_start; + u8 *package_end; + u64 loop_timeout; +}; + +typedef struct cpumask *cpumask_var_t; + +struct acpi_pct_register; + +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 acpi_create_field_info { + struct acpi_namespace_node *region_node; + struct acpi_namespace_node *field_node; + struct acpi_namespace_node *register_node; + struct acpi_namespace_node *data_register_node; + struct acpi_namespace_node *connection_node; + u8 *resource_buffer; + u32 bank_value; + u32 field_bit_position; + u32 field_bit_length; + u16 resource_length; + u16 pin_number_index; + u8 field_flags; + u8 attribute; + u8 field_type; + u8 access_length; +}; + +struct acpi_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 attribute { + const char *name; + umode_t mode; +}; + +struct address_space; + +struct vm_area_struct; + +struct bin_attribute { + struct attribute attr; + size_t size; + void *private; + struct address_space * (*f_mapping)(void); + ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); + ssize_t (*read_new)(struct file *, struct kobject *, const struct bin_attribute *, char *, loff_t, size_t); + ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); + ssize_t (*write_new)(struct file *, struct kobject *, const struct bin_attribute *, char *, loff_t, size_t); + loff_t (*llseek)(struct file *, struct kobject *, const struct bin_attribute *, loff_t, int); + int (*mmap)(struct file *, struct kobject *, const struct bin_attribute *, struct vm_area_struct *); +}; + +struct acpi_data_attr { + struct bin_attribute attr; + u64 addr; +}; + +typedef void *acpi_handle; + +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; +}; + +union acpi_object; + +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_data_node { + struct list_head sibling; + const char *name; + acpi_handle handle; + struct fwnode_handle fwnode; + struct fwnode_handle *parent; + struct acpi_device_data data; + struct kobject kobj; + struct completion kobj_done; +}; + +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_obj { + char *name; + int (*fn)(void *, struct acpi_data_attr *); +}; + +struct acpi_data_table_mapping { + void *pointer; +}; + +struct acpi_db_argument_info { + const char *name; +}; + +struct acpi_db_command_help { + u8 line_count; + char *invocation; + char *description; +}; + +struct acpi_db_command_info { + const char *name; + u8 min_args; +}; + +struct acpi_db_execute_walk { + u32 count; + u32 max_count; + char name_seg[5]; +}; + +struct acpi_db_method_info { + acpi_handle method; + acpi_handle main_thread_gate; + acpi_handle thread_complete_gate; + acpi_handle info_gate; + u64 *threads; + u32 num_threads; + u32 num_created; + u32 num_completed; + char *name; + u32 flags; + u32 num_loops; + char pathname[512]; + char **args; + acpi_object_type *types; + char init_args; + acpi_object_type arg_types[7]; + char *arguments[7]; + char num_threads_str[11]; + char id_of_thread_str[11]; + char index_of_thread_str[11]; +}; + +struct acpi_debugger_ops; + +struct acpi_debugger { + const struct acpi_debugger_ops *ops; + struct module *owner; + struct mutex lock; +}; + +struct acpi_debugger_ops { + int (*create_thread)(acpi_osd_exec_callback, void *); + ssize_t (*write_log)(const char *); + ssize_t (*read_cmd)(char *, size_t); + int (*wait_command_ready)(bool, char *, size_t); + int (*notify_command_complete)(void); +}; + +struct acpi_dep_data { + struct list_head node; + acpi_handle supplier; + acpi_handle consumer; + bool honor_dep; + bool met; + bool free_when_met; +}; + +union acpi_operand_object; + +struct acpi_object_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; +}; + +struct acpi_object_integer { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 fill[3]; + u64 value; +}; + +struct acpi_object_string { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + char *pointer; + u32 length; +}; + +struct acpi_object_buffer { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 *pointer; + u32 length; + u32 aml_length; + u8 *aml_start; + struct acpi_namespace_node *node; +}; + +struct acpi_object_package { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + struct acpi_namespace_node *node; + union acpi_operand_object **elements; + u8 *aml_start; + u32 aml_length; + u32 count; +}; + +struct acpi_object_event { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + void *os_semaphore; +}; + +struct acpi_walk_state; + +typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *); + +struct acpi_object_method { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 info_flags; + u8 param_count; + u8 sync_level; + union acpi_operand_object *mutex; + union acpi_operand_object *node; + u8 *aml_start; + union { + acpi_internal_method implementation; + union acpi_operand_object *handler; + } dispatch; + u32 aml_length; + acpi_owner_id owner_id; + u8 thread_count; +}; + +struct acpi_thread_state; + +struct acpi_object_mutex { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 sync_level; + u16 acquisition_depth; + void *os_mutex; + u64 thread_id; + struct acpi_thread_state *owner_thread; + union acpi_operand_object *prev; + union acpi_operand_object *next; + struct acpi_namespace_node *node; + u8 original_sync_level; +}; + +struct acpi_object_region { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 space_id; + struct acpi_namespace_node *node; + union acpi_operand_object *handler; + union acpi_operand_object *next; + acpi_physical_address address; + u32 length; + void *pointer; +}; + +struct acpi_object_notify_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; +}; + +struct acpi_gpe_block_info; + +struct acpi_object_device { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + struct acpi_gpe_block_info *gpe_block; +}; + +struct acpi_object_power_resource { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + u32 system_level; + u32 resource_order; +}; + +struct acpi_object_processor { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 proc_id; + u8 length; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + acpi_io_address address; +}; + +struct acpi_object_thermal_zone { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; +}; + +struct acpi_object_field_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + union acpi_operand_object *region_obj; +}; + +struct acpi_object_region_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + u16 resource_length; + union acpi_operand_object *region_obj; + u8 *resource_buffer; + u16 pin_number_index; + u8 *internal_pcc_buffer; +}; + +struct acpi_object_buffer_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + u8 is_create_field; + union acpi_operand_object *buffer_obj; +}; + +struct acpi_object_bank_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + union acpi_operand_object *region_obj; + union acpi_operand_object *bank_obj; +}; + +struct acpi_object_index_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + union acpi_operand_object *index_obj; + union acpi_operand_object *data_obj; +}; + +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_name_union { + u32 integer; + char ascii[4]; +}; + +struct acpi_namespace_node { + union acpi_operand_object *object; + u8 descriptor_type; + u8 type; + u16 flags; + union acpi_name_union name; + struct acpi_namespace_node *parent; + struct acpi_namespace_node *child; + struct acpi_namespace_node *peer; + acpi_owner_id owner_id; +}; + +union acpi_operand_object { + struct acpi_object_common common; + struct acpi_object_integer integer; + struct acpi_object_string string; + struct acpi_object_buffer buffer; + struct acpi_object_package package; + struct acpi_object_event event; + struct acpi_object_method method; + struct acpi_object_mutex mutex; + struct acpi_object_region region; + struct acpi_object_notify_common common_notify; + struct acpi_object_device device; + struct acpi_object_power_resource power_resource; + struct acpi_object_processor processor; + struct acpi_object_thermal_zone thermal_zone; + struct acpi_object_field_common common_field; + struct acpi_object_region_field field; + struct acpi_object_buffer_field buffer_field; + struct acpi_object_bank_field bank_field; + struct acpi_object_index_field index_field; + struct acpi_object_notify_handler notify; + struct acpi_object_addr_handler address_space; + struct acpi_object_reference reference; + struct acpi_object_extra extra; + struct acpi_object_data data; + struct acpi_object_cache_list cache; + struct acpi_namespace_node node; +}; + +union acpi_parse_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; + u16 disasm_flags; + u8 disasm_opcode; + char *operator_symbol; + char aml_op_name[16]; +}; + +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; + u16 disasm_flags; + u8 disasm_opcode; + char *operator_symbol; + char aml_op_name[16]; + 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; + u16 disasm_flags; + u8 disasm_opcode; + char *operator_symbol; + char aml_op_name[16]; + union acpi_parse_object *child; + union acpi_parse_object *parent_method; + char *filename; + u8 file_changed; + char *parent_filename; + char *external_name; + char *namepath; + char name_seg[4]; + u32 extra_value; + u32 column; + u32 line_number; + u32 logical_line_number; + u32 logical_byte_offset; + u32 end_line; + u32 end_logical_line; + u32 acpi_btype; + u32 aml_length; + u32 aml_subtree_length; + u32 final_aml_length; + u32 final_aml_offset; + u32 compile_flags; + u16 parse_opcode; + u8 aml_opcode_length; + u8 aml_pkg_len_bytes; + u8 extra; + char parse_op_name[20]; +}; + +union acpi_parse_object { + struct acpi_parse_obj_common common; + struct acpi_parse_obj_named named; + struct acpi_parse_obj_asl asl; +}; + +union acpi_descriptor { + struct acpi_common_descriptor common; + union acpi_operand_object object; + struct acpi_namespace_node node; + union acpi_parse_object op; +}; + +struct acpi_device_id { + __u8 id[16]; + kernel_ulong_t driver_data; + __u32 cls; + __u32 cls_msk; +}; + +struct acpi_dev_match_info { + struct acpi_device_id hid[2]; + const char *uid; + s64 hrv; +}; + +struct acpi_dev_walk_context { + int (*fn)(struct acpi_device *, void *); + void *data; +}; + +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; +}; + +struct acpi_pnp_type { + u32 hardware_id: 1; + u32 bus_address: 1; + u32 platform_id: 1; + u32 backlight: 1; + u32 reserved: 28; +}; + +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; +}; + +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 list_head resources; + struct { + u8 valid: 1; + u8 explicit_set: 1; + u8 reserved: 6; + } flags; + int power; + int latency; +}; + +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 proc_dir_entry; + +struct acpi_device_dir { + struct proc_dir_entry *entry; +}; + +struct acpi_scan_handler; + +struct acpi_hotplug_context; + +struct acpi_device_software_nodes; + +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; + struct acpi_device_software_nodes *swnodes; + const struct acpi_gpio_mapping *driver_gpios; + void *driver_data; + struct device dev; + unsigned int physical_node_count; + unsigned int dep_unmet; + struct list_head physical_node_list; + struct mutex physical_node_lock; + void (*remove)(struct acpi_device *); +}; + +struct xarray { + spinlock_t xa_lock; + gfp_t xa_flags; + void *xa_head; +}; + +struct ida { + struct xarray xa; +}; + +struct acpi_device_bus_id { + const char *bus_id; + struct ida instance_ida; + struct list_head node; +}; + +struct acpi_pnp_device_id { + u32 length; + char *string; +}; + +struct acpi_pnp_device_id_list { + u32 count; + u32 list_size; + struct acpi_pnp_device_id ids[0]; +}; + +struct acpi_device_info { + u32 info_size; + u32 name; + acpi_object_type type; + u8 param_count; + u16 valid; + u8 flags; + u8 highest_dstates[4]; + u8 lowest_dstates[5]; + u64 address; + struct acpi_pnp_device_id hardware_id; + struct acpi_pnp_device_id unique_id; + struct acpi_pnp_device_id class_code; + struct acpi_pnp_device_id_list compatible_id_list; +}; + +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_device_perf_state { + struct { + u8 valid: 1; + u8 reserved: 7; + } flags; + u8 power; + u8 performance; + int latency; +}; + +struct acpi_device_physical_node { + struct list_head node; + struct device *dev; + unsigned int node_id; + bool put_online: 1; +}; + +struct acpi_device_properties { + struct list_head list; + const guid_t *guid; + union acpi_object *properties; + void **bufs; +}; + +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; + +struct software_node_ref_args { + const struct software_node *node; + unsigned int nargs; + u64 args[16]; +}; + +struct acpi_device_software_node_port { + char port_name[9]; + u32 data_lanes[8]; + u32 lane_polarities[9]; + u64 link_frequencies[8]; + unsigned int port_nr; + bool crs_csi2_local; + struct property_entry port_props[2]; + struct property_entry ep_props[8]; + struct software_node_ref_args remote_ep[1]; +}; + +struct acpi_device_software_nodes { + struct property_entry dev_props[6]; + struct software_node *nodes; + const struct software_node **nodeptrs; + struct acpi_device_software_node_port *ports; + unsigned int num_ports; +}; + +struct acpi_table_desc; + +struct acpi_evaluate_info; + +struct acpi_device_walk_info { + struct acpi_table_desc *table_desc; + struct acpi_evaluate_info *evaluate_info; + u32 device_count; + u32 num_STA; + u32 num_INI; +}; + +struct acpi_dlayer { + const char *name; + long unsigned int value; +}; + +struct acpi_dlevel { + const char *name; + long unsigned int value; +}; + +struct dma_chan; + +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; + short unsigned int base_request_line; + short unsigned int end_request_line; +}; + +typedef bool (*dma_filter_fn)(struct dma_chan *, void *); + +struct acpi_dma_filter_info { + dma_cap_mask_t dma_cap; + dma_filter_fn filter_fn; +}; + +struct acpi_dma_spec { + int chan_id; + int slave_id; + struct device *dev; +}; + +struct acpi_dma_parser_data { + struct acpi_dma_spec dma_spec; + size_t index; + size_t n; +}; + +struct acpi_dmar_header { + u16 type; + u16 length; +}; + +struct acpi_dmar_andd { + struct acpi_dmar_header header; + u8 reserved[3]; + u8 device_number; + union { + char __pad; + struct { + struct {} __Empty_device_name; + char device_name[0]; + }; + }; +} __attribute__((packed)); + +struct acpi_dmar_atsr { + struct acpi_dmar_header header; + u8 flags; + u8 reserved; + u16 segment; +}; + +struct acpi_dmar_device_scope { + u8 entry_type; + u8 length; + u16 reserved; + u8 enumeration_id; + u8 bus; +}; + +struct acpi_dmar_hardware_unit { + struct acpi_dmar_header header; + u8 flags; + u8 size; + u16 segment; + u64 address; +}; + +struct acpi_dmar_pci_path { + u8 device; + u8 function; +}; + +struct acpi_dmar_reserved_memory { + struct acpi_dmar_header header; + u16 reserved; + u16 segment; + u64 base_address; + u64 end_address; +}; + +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; +}; + +struct of_device_id; + +struct dev_pm_ops; + +struct driver_private; + +struct device_driver { + const char *name; + const 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 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 transaction; + +struct acpi_ec { + acpi_handle handle; + int gpe; + int irq; + long unsigned int command_addr; + long unsigned int data_addr; + bool global_lock; + long unsigned int flags; + long unsigned int reference_count; + struct mutex mutex; + wait_queue_head_t wait; + struct list_head list; + struct transaction *curr; + spinlock_t lock; + struct work_struct work; + long unsigned int 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; + short unsigned int irq_count; + u8 command; + u8 wi; + u8 ri; + u8 wlen; + u8 rlen; + u8 flags; +}; + +struct acpi_ec_query_handler; + +struct acpi_ec_query { + struct transaction transaction; + struct work_struct work; + struct acpi_ec_query_handler *handler; + struct acpi_ec *ec; +}; + +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; +}; + +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_exception_info { + char *name; +}; + +struct acpi_exdump_info { + u8 opcode; + u8 offset; + const char *name; +} __attribute__((packed)); + +struct acpi_fadt_info { + const char *name; + u16 address64; + u16 address32; + u16 length; + u8 default_length; + u8 flags; +}; + +struct acpi_generic_address; + +struct acpi_fadt_pm_info { + struct acpi_generic_address *target; + u16 source; + u8 register_num; +}; + +struct acpi_fan_fif { + u8 revision; + u8 fine_grain_ctrl; + u8 step_size; + u8 low_speed_notification; +}; + +struct device_attribute { + struct attribute attr; + ssize_t (*show)(struct device *, struct device_attribute *, char *); + ssize_t (*store)(struct device *, struct device_attribute *, const char *, size_t); +}; + +struct acpi_fan_fps; + +struct thermal_cooling_device; + +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 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_ffh_info { + u64 offset; + u64 length; +}; + +typedef u32 (*acpi_event_handler)(void *); + +struct acpi_fixed_event_handler { + acpi_event_handler handler; + void *context; +}; + +struct acpi_fixed_event_info { + u8 status_register_id; + u8 enable_register_id; + u16 status_bit_mask; + u16 enable_bit_mask; +}; + +struct acpi_ged_device { + struct device *dev; + struct list_head event_list; +}; + +struct acpi_ged_event { + struct list_head node; + struct device *dev; + unsigned int gsi; + unsigned int irq; + acpi_handle handle; +}; + +struct acpi_ged_handler_info { + struct acpi_ged_handler_info *next; + u32 int_id; + struct acpi_namespace_node *evt_method; +}; + +struct acpi_generic_address { + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_width; + u64 address; +} __attribute__((packed)); + +struct acpi_update_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *object; +}; + +struct acpi_scope_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + struct acpi_namespace_node *node; +}; + +struct acpi_pscope_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u32 arg_count; + union acpi_parse_object *op; + u8 *arg_end; + u8 *pkg_end; + u32 arg_list; +}; + +struct acpi_pkg_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u32 index; + union acpi_operand_object *source_object; + union acpi_operand_object *dest_object; + struct acpi_walk_state *walk_state; + void *this_target_obj; + u32 num_packages; +}; + +struct acpi_thread_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u8 current_sync_level; + struct acpi_walk_state *walk_state_list; + union acpi_operand_object *acquired_mutex_list; + u64 thread_id; +}; + +struct acpi_result_values { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *obj_desc[8]; +}; + +struct acpi_global_notify_handler; + +struct acpi_notify_info { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u8 handler_list_id; + struct acpi_namespace_node *node; + union acpi_operand_object *handler_list_head; + struct acpi_global_notify_handler *global; +}; + +union acpi_generic_state { + struct acpi_common_state common; + struct acpi_control_state control; + struct acpi_update_state update; + struct acpi_scope_state scope; + struct acpi_pscope_state parse_scope; + struct acpi_pkg_state pkg; + struct acpi_thread_state thread; + struct acpi_result_values results; + struct acpi_notify_info notify; +}; + +struct acpi_genl_event { + acpi_device_class device_class; + char bus_id[15]; + u32 type; + u32 data; +}; + +typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); + +struct acpi_get_devices_info { + acpi_walk_callback user_function; + void *context; + const char *hid; +}; + +struct acpi_global_notify_handler { + acpi_notify_handler handler; + void *context; +}; + +struct acpi_gpe_address { + u8 space_id; + u64 address; +}; + +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_block_status_context { + struct acpi_gpe_register_info *gpe_skip_register_info; + u8 gpe_skip_mask; + u8 retval; +}; + +struct acpi_gpe_device_info { + u32 index; + u32 next_block_base_index; + acpi_status status; + struct acpi_namespace_node *gpe_device; +}; + +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_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_walk_info { + struct acpi_namespace_node *gpe_device; + struct acpi_gpe_block_info *gpe_block; + u16 count; + acpi_owner_id owner_id; + u8 execute_by_owner_id; +}; + +struct acpi_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 gpio_chip; + +struct acpi_gpio_chip { + struct acpi_connection_info conn_info; + struct list_head conns; + struct mutex conn_lock; + struct gpio_chip *chip; + struct list_head events; + struct list_head deferred_req_irqs_list_entry; +}; + +struct gpio_desc; + +struct acpi_gpio_connection { + struct list_head node; + unsigned int pin; + struct gpio_desc *desc; +}; + +typedef irqreturn_t (*irq_handler_t)(int, void *); + +struct acpi_gpio_event { + struct list_head node; + acpi_handle handle; + irq_handler_t handler; + unsigned int pin; + unsigned int irq; + long unsigned int irqflags; + bool irq_is_wake; + bool irq_requested; + struct gpio_desc *desc; +}; + +struct acpi_gpio_info { + struct acpi_device *adev; + enum gpiod_flags flags; + bool gpioint; + int pin_config; + int polarity; + int triggering; + bool wake_capable; + unsigned int debounce; + unsigned int quirks; +}; + +struct acpi_gpio_lookup { + struct acpi_gpio_info info; + int index; + u16 pin_index; + bool active_low; + struct gpio_desc *desc; + int n; +}; + +struct acpi_gpio_params; + +struct acpi_gpio_mapping { + const char *name; + const struct acpi_gpio_params *data; + unsigned int size; + unsigned int quirks; +}; + +struct acpi_gpio_params { + unsigned int crs_entry_index; + unsigned int line_index; + bool active_low; +}; + +struct acpi_gpiolib_dmi_quirk { + bool no_edge_events_on_boot; + char *ignore_wake; + char *ignore_interrupt; +}; + +struct acpi_handle_list { + u32 count; + acpi_handle *handles; +}; + +struct acpi_handler_info { + void *handler; + char *name; +}; + +struct acpi_hardware_id { + struct list_head list; + const char *id; +}; + +struct acpi_hest_header { + u16 type; + u16 source_id; +}; + +struct acpi_hest_notify { + u8 type; + u8 length; + u16 config_write_enable; + u32 poll_interval; + u32 vector; + u32 polling_threshold_value; + u32 polling_threshold_window; + u32 error_threshold_value; + u32 error_threshold_window; +}; + +struct acpi_hest_generic { + struct acpi_hest_header header; + u16 related_source_id; + u8 reserved; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + u32 max_raw_data_length; + struct acpi_generic_address error_status_address; + struct acpi_hest_notify notify; + u32 error_block_length; +}; + +struct acpi_hest_generic_data { + u8 section_type[16]; + u32 error_severity; + u16 revision; + u8 validation_bits; + u8 flags; + u32 error_data_length; + u8 fru_id[16]; + u8 fru_text[20]; +}; + +struct acpi_hest_generic_data_v300 { + u8 section_type[16]; + u32 error_severity; + u16 revision; + u8 validation_bits; + u8 flags; + u32 error_data_length; + u8 fru_id[16]; + u8 fru_text[20]; + u64 time_stamp; +}; + +struct acpi_hest_generic_status { + u32 block_status; + u32 raw_data_offset; + u32 raw_data_length; + u32 data_length; + u32 error_severity; +}; + +struct acpi_hest_generic_v2 { + struct acpi_hest_header header; + u16 related_source_id; + u8 reserved; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + u32 max_raw_data_length; + struct acpi_generic_address error_status_address; + struct acpi_hest_notify notify; + u32 error_block_length; + struct acpi_generic_address read_ack_register; + u64 read_ack_preserve; + u64 read_ack_write; +} __attribute__((packed)); + +struct acpi_hest_ia_corrected { + struct acpi_hest_header header; + u16 reserved1; + u8 flags; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + struct acpi_hest_notify notify; + u8 num_hardware_banks; + u8 reserved2[3]; +}; + +struct acpi_hest_ia_deferred_check { + struct acpi_hest_header header; + u16 reserved1; + u8 flags; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + struct acpi_hest_notify notify; + u8 num_hardware_banks; + u8 reserved2[3]; +}; + +struct acpi_hest_ia_error_bank { + u8 bank_number; + u8 clear_status_on_init; + u8 status_format; + u8 reserved; + u32 control_register; + u64 control_data; + u32 status_register; + u32 address_register; + u32 misc_register; +} __attribute__((packed)); + +struct acpi_hest_ia_machine_check { + struct acpi_hest_header header; + u16 reserved1; + u8 flags; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + u64 global_capability_data; + u64 global_control_data; + u8 num_hardware_banks; + u8 reserved3[7]; +}; + +struct acpi_hmat_structure { + u16 type; + u16 reserved; + u32 length; +}; + +struct acpi_hmat_cache { + struct acpi_hmat_structure header; + u32 memory_PD; + u32 reserved1; + u64 cache_size; + u32 cache_attributes; + u16 address_mode; + u16 number_of_SMBIOShandles; +}; + +struct acpi_hmat_locality { + struct acpi_hmat_structure header; + u8 flags; + u8 data_type; + u8 min_transfer_size; + u8 reserved1; + u32 number_of_initiator_Pds; + u32 number_of_target_Pds; + u32 reserved2; + u64 entry_base_unit; +}; + +struct acpi_hmat_proximity_domain { + struct acpi_hmat_structure header; + u16 flags; + u16 reserved1; + u32 processor_PD; + u32 memory_PD; + u32 reserved2; + u64 reserved3; + u64 reserved4; +}; + +typedef int (*acpi_hp_notify)(struct acpi_device *, u32); + +typedef void (*acpi_hp_uevent)(struct acpi_device *, u32); + +typedef void (*acpi_hp_fixup)(struct acpi_device *); + +struct acpi_hotplug_context { + struct acpi_device *self; + acpi_hp_notify notify; + acpi_hp_uevent uevent; + acpi_hp_fixup fixup; +}; + +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_hp_work { + struct work_struct work; + struct acpi_device *adev; + u32 src; +}; + +struct acpi_init_walk_info { + u32 table_index; + u32 object_count; + u32 method_count; + u32 serial_method_count; + u32 non_serial_method_count; + u32 serialized_method_count; + u32 device_count; + u32 op_region_count; + u32 field_count; + u32 buffer_count; + u32 package_count; + u32 op_region_init; + u32 field_init; + u32 buffer_init; + u32 package_init; + acpi_owner_id owner_id; +}; + +struct acpi_integrity_info { + u32 nodes; + u32 objects; +}; + +struct acpi_interface_info { + char *name; + struct acpi_interface_info *next; + u8 flags; + u8 value; +}; + +struct acpi_io_attribute { + u8 range_type; + u8 translation; + u8 translation_type; + u8 reserved1; +}; + +struct rcu_work { + struct work_struct work; + struct callback_head rcu; + struct workqueue_struct *wq; +}; + +struct acpi_ioremap { + struct list_head list; + void *virt; + acpi_physical_address phys; + acpi_size size; + union { + long unsigned int refcount; + struct rcu_work rwork; + } track; +}; + +struct acpi_lpat { + int temp; + int raw; +}; + +struct acpi_lpat_conversion_table { + struct acpi_lpat *lpat; + int lpat_count; +}; + +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_lpi_states_array { + unsigned int size; + unsigned int composite_states_size; + struct acpi_lpi_state *entries; + struct acpi_lpi_state *composite_states[8]; +}; + +struct acpi_lpit_header { + u32 type; + u32 length; + u16 unique_id; + u16 reserved; + u32 flags; +}; + +struct acpi_lpit_native { + struct acpi_lpit_header header; + struct acpi_generic_address entry_trigger; + u32 residency; + u32 latency; + struct acpi_generic_address residency_counter; + u64 counter_frequency; +}; + +struct acpi_subtable_header { + u8 type; + u8 length; +}; + +struct acpi_madt_core_pic { + struct acpi_subtable_header header; + u8 version; + u32 processor_id; + u32 core_id; + u32 flags; +} __attribute__((packed)); + +struct acpi_madt_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_generic_interrupt { + struct acpi_subtable_header header; + u16 reserved; + u32 cpu_interface_number; + u32 uid; + u32 flags; + u32 parking_version; + u32 performance_interrupt; + u64 parked_address; + u64 base_address; + u64 gicv_base_address; + u64 gich_base_address; + u32 vgic_interrupt; + u64 gicr_base_address; + u64 arm_mpidr; + u8 efficiency_class; + u8 reserved2[1]; + u16 spe_interrupt; + u16 trbe_interrupt; +} __attribute__((packed)); + +struct acpi_madt_interrupt_override { + struct acpi_subtable_header header; + u8 bus; + u8 source_irq; + u32 global_irq; + u16 inti_flags; +} __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_io_apic { + struct acpi_subtable_header header; + u8 id; + u8 reserved; + u32 address; + u32 global_irq_base; +}; + +struct acpi_madt_io_sapic { + struct acpi_subtable_header header; + u8 id; + u8 reserved; + u32 global_irq_base; + u64 address; +}; + +struct acpi_madt_local_apic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u32 lapic_flags; +}; + +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_apic_override { + struct acpi_subtable_header header; + u16 reserved; + u64 address; +} __attribute__((packed)); + +struct acpi_madt_local_sapic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u8 eid; + u8 reserved[3]; + u32 lapic_flags; + u32 uid; + char uid_string[0]; +}; + +struct acpi_madt_local_x2apic { + struct acpi_subtable_header header; + u16 reserved; + u32 local_apic_id; + u32 lapic_flags; + u32 uid; +}; + +struct acpi_madt_local_x2apic_nmi { + struct acpi_subtable_header header; + u16 inti_flags; + u32 uid; + u8 lint; + u8 reserved[3]; +}; + +struct acpi_madt_multiproc_wakeup { + struct acpi_subtable_header header; + u16 version; + u32 reserved; + u64 mailbox_address; + u64 reset_vector; +}; + +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_madt_nmi_source { + struct acpi_subtable_header header; + u16 inti_flags; + u32 global_irq; +}; + +struct acpi_madt_rintc { + struct acpi_subtable_header header; + u8 version; + u8 reserved; + u32 flags; + u64 hart_id; + u32 uid; + u32 ext_intc_id; + u64 imsic_addr; + u32 imsic_size; +} __attribute__((packed)); + +struct acpi_mcfg_allocation { + u64 address; + u16 pci_segment; + u8 start_bus_number; + u8 end_bus_number; + u32 reserved; +}; + +struct acpi_mem_mapping { + acpi_physical_address physical_address; + u8 *logical_address; + acpi_size length; + struct acpi_mem_mapping *next_mm; +}; + +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_memory_attribute { + u8 write_protect; + u8 caching; + u8 range_type; + u8 translation; +}; + +struct acpi_memory_device { + struct acpi_device *device; + struct list_head res_list; + int mgid; +}; + +struct acpi_memory_info { + struct list_head list; + u64 start_addr; + u64 length; + short unsigned int caching; + short unsigned int write_protect; + unsigned int enabled: 1; +}; + +struct acpi_mutex_info { + void *mutex; + u32 use_count; + u64 thread_id; +}; + +struct acpi_name_info { + char name[4]; + u16 argument_list; + u8 expected_btypes; +} __attribute__((packed)); + +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 acpi_nhlt_config { + u32 capabilities_size; + u8 capabilities[0]; +}; + +struct acpi_nhlt_gendevice_config { + u8 virtual_slot; + u8 config_type; +}; + +struct acpi_nhlt_micdevice_config { + u8 virtual_slot; + u8 config_type; + u8 array_type; +}; + +struct acpi_nhlt_vendor_mic_config { + u8 type; + u8 panel; + u16 speaker_position_distance; + u16 horizontal_offset; + u16 vertical_offset; + u8 frequency_low_band; + u8 frequency_high_band; + u16 direction_angle; + u16 elevation_angle; + u16 work_vertical_angle_begin; + u16 work_vertical_angle_end; + u16 work_horizontal_angle_begin; + u16 work_horizontal_angle_end; +}; + +struct acpi_nhlt_vendor_micdevice_config { + u8 virtual_slot; + u8 config_type; + u8 array_type; + u8 mics_count; + struct acpi_nhlt_vendor_mic_config mics[0]; +}; + +union acpi_nhlt_device_config { + u8 virtual_slot; + struct acpi_nhlt_gendevice_config gen; + struct acpi_nhlt_micdevice_config mic; + struct acpi_nhlt_vendor_micdevice_config vendor_mic; +}; + +struct acpi_nhlt_endpoint { + u32 length; + u8 link_type; + u8 instance_id; + u16 vendor_id; + u16 device_id; + u16 revision_id; + u32 subsystem_id; + u8 device_type; + u8 direction; + u8 virtual_bus_id; +} __attribute__((packed)); + +struct acpi_nhlt_wave_formatext { + u16 format_tag; + u16 channel_count; + u32 samples_per_sec; + u32 avg_bytes_per_sec; + u16 block_align; + u16 bits_per_sample; + u16 extra_format_size; + u16 valid_bits_per_sample; + u32 channel_mask; + u8 subformat[16]; +}; + +struct acpi_nhlt_format_config { + struct acpi_nhlt_wave_formatext format; + struct acpi_nhlt_config config; +}; + +struct acpi_nhlt_formats_config { + u8 formats_count; + struct acpi_nhlt_format_config formats[0]; +} __attribute__((packed)); + +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_object_info { + u32 types[28]; +}; + +struct acpi_object_list { + u32 count; + union acpi_object *pointer; +}; + +struct acpi_offsets { + size_t offset; + u8 mode; +}; + +struct acpi_opcode_info { + char *name; + u32 parse_args; + u32 runtime_args; + u16 flags; + u8 object_type; + u8 class; + u8 type; +}; + +struct acpi_os_dpc { + acpi_osd_exec_callback function; + void *context; + struct work_struct work; +}; + +struct acpi_osc_context { + char *uuid_str; + int rev; + struct acpi_buffer cap; + struct acpi_buffer ret; +}; + +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_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)); + +struct acpi_parse_state { + u8 *aml_start; + u8 *aml; + u8 *aml_end; + u8 *pkg_start; + u8 *pkg_end; + union acpi_parse_object *start_op; + struct acpi_namespace_node *start_node; + union acpi_generic_state *scope; + union acpi_parse_object *start_scope; + u32 aml_size; +}; + +struct acpi_pcc_info { + u8 subspace_id; + u16 length; + u8 *internal_buffer; +}; + +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_ext_pcc_shared_memory { + u32 signature; + u32 flags; + u32 length; + u32 command; +}; + +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_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 acpi_pcct_shared_memory { + u32 signature; + u16 command; + u16 status; +}; + +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_pci_device { + acpi_handle device; + struct acpi_pci_device *next; +}; + +struct acpi_pci_id { + u16 segment; + u16 bus; + u16 device; + u16 function; +}; + +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_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 pci_bus; + +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 acpi_pci_root_ops; + +struct acpi_pci_root_info { + struct acpi_pci_root *root; + struct acpi_device *bridge; + struct acpi_pci_root_ops *ops; + struct list_head resources; + char name[16]; +}; + +struct pci_ops; + +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_routing_table { + u32 length; + u32 pin; + u64 address; + u32 source_index; + union { + char pad[4]; + struct { + struct {} __Empty_source; + char source[0]; + }; + }; +}; + +struct pci_slot; + +struct acpi_pci_slot { + struct pci_slot *pci_slot; + struct list_head list; +}; + +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_pkg_info { + u8 *free_space; + acpi_size length; + u32 object_space; + u32 num_packages; +}; + +struct acpi_platform_list { + char oem_id[7]; + char oem_table_id[9]; + u32 oem_revision; + char *table; + enum acpi_predicate pred; + char *reason; + u32 data; +}; + +struct acpi_pld_info { + u8 revision; + u8 ignore_color; + u8 red; + u8 green; + u8 blue; + u16 width; + u16 height; + u8 user_visible; + u8 dock; + u8 lid; + u8 panel; + u8 vertical_position; + u8 horizontal_position; + u8 shape; + u8 group_orientation; + u8 group_token; + u8 group_position; + u8 bay; + u8 ejectable; + u8 ospm_eject_required; + u8 cabinet_number; + u8 card_cage_number; + u8 reference; + u8 rotation; + u8 order; + u8 reserved; + u16 vertical_offset; + u16 horizontal_offset; +}; + +struct acpi_port_info { + char *name; + u16 start; + u16 end; + u8 osi_dependency; +}; + +struct acpi_power_dependent_device { + struct device *dev; + struct list_head node; +}; + +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_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_resource_entry { + struct list_head node; + struct acpi_power_resource *resource; +}; + +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_predefined_names { + const char *name; + u8 type; + char *val; +}; + +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 acpi_prmt_module_header { + u16 revision; + u16 length; +}; + +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_probe_entry; + +typedef bool (*acpi_probe_entry_validate_subtbl)(struct acpi_subtable_header *, struct acpi_probe_entry *); + +struct acpi_table_header; + +typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); + +union acpi_subtable_headers; + +typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const long unsigned int); + +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_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 previously_online: 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_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_tsd_package { + u64 num_entries; + u64 revision; + u64 domain; + u64 coord_type; + u64 num_processors; +}; + +struct acpi_processor_tx { + u16 power; + u16 performance; +}; + +struct acpi_processor_tx_tss; + +struct acpi_processor; + +struct acpi_processor_throttling { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_tx_tss *states_tss; + struct acpi_tsd_package domain_info; + cpumask_var_t shared_cpu_map; + int (*acpi_processor_get_throttling)(struct acpi_processor *); + int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool); + u32 address; + u8 duty_offset; + u8 duty_width; + u8 tsd_valid_flag; + unsigned int shared_type; + struct acpi_processor_tx states[16]; +}; + +struct acpi_processor_lx { + int px; + int tx; +}; + +struct acpi_processor_limit { + struct acpi_processor_lx state; + struct acpi_processor_lx thermal; + struct acpi_processor_lx user; +}; + +struct plist_node { + int prio; + struct list_head prio_list; + struct list_head node_list; +}; + +struct freq_constraints; + +struct freq_qos_request { + enum freq_qos_req_type type; + struct plist_node pnode; + struct freq_constraints *qos; +}; + +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_processor_errata { + u8 smp; + struct { + u8 throttle: 1; + u8 fdma: 1; + u8 reserved: 6; + u32 bmisx; + } piix4; +}; + +struct acpi_psd_package { + u64 num_entries; + u64 revision; + u64 domain; + u64 coord_type; + u64 num_processors; +}; + +struct acpi_processor_px; + +struct acpi_processor_performance { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_px *states; + struct acpi_psd_package domain_info; + cpumask_var_t shared_cpu_map; + unsigned int shared_type; +}; + +struct acpi_processor_px { + u64 core_frequency; + u64 power; + u64 transition_latency; + u64 bus_master_latency; + u64 control; + u64 status; +}; + +struct acpi_processor_throttling_arg { + struct acpi_processor *pr; + int target_state; + bool force; +}; + +struct acpi_processor_tx_tss { + u64 freqpercentage; + u64 power; + u64 transition_latency; + u64 control; + u64 status; +}; + +struct acpi_prt_entry { + struct acpi_pci_id id; + u8 pin; + acpi_handle link; + u32 index; +}; + +struct acpi_reg_walk_info { + u32 function; + u32 reg_run_count; + acpi_adr_space_type space_id; +}; + +struct acpi_region_walk_info { + u32 debug_level; + u32 count; + acpi_owner_id owner_id; + u8 display_type; + u32 address_space_id; +}; + +typedef acpi_status (*acpi_repair_function)(struct acpi_evaluate_info *, union acpi_operand_object **); + +struct acpi_repair_info { + char name[4]; + acpi_repair_function repair_function; +}; + +struct acpi_resource_irq { + u8 descriptor_length; + u8 triggering; + u8 polarity; + u8 shareable; + u8 wake_capable; + u8 interrupt_count; + union { + u8 interrupt; + struct { + struct {} __Empty_interrupts; + u8 interrupts[0]; + }; + }; +}; + +struct acpi_resource_dma { + u8 type; + u8 bus_master; + u8 transfer; + u8 channel_count; + union { + u8 channel; + struct { + struct {} __Empty_channels; + u8 channels[0]; + }; + }; +}; + +struct acpi_resource_start_dependent { + u8 descriptor_length; + u8 compatibility_priority; + u8 performance_robustness; +}; + +struct acpi_resource_io { + u8 io_decode; + u8 alignment; + u8 address_length; + u16 minimum; + u16 maximum; +} __attribute__((packed)); + +struct acpi_resource_fixed_io { + u16 address; + u8 address_length; +} __attribute__((packed)); + +struct acpi_resource_fixed_dma { + u16 request_lines; + u16 channels; + u8 width; +} __attribute__((packed)); + +struct acpi_resource_vendor { + u16 byte_length; + u8 byte_data[0]; +}; + +struct acpi_resource_vendor_typed { + u16 byte_length; + u8 uuid_subtype; + u8 uuid[16]; + u8 byte_data[0]; +} __attribute__((packed)); + +struct acpi_resource_end_tag { + u8 checksum; +}; + +struct acpi_resource_memory24 { + u8 write_protect; + u16 minimum; + u16 maximum; + u16 alignment; + u16 address_length; +} __attribute__((packed)); + +struct acpi_resource_memory32 { + u8 write_protect; + u32 minimum; + u32 maximum; + u32 alignment; + u32 address_length; +} __attribute__((packed)); + +struct acpi_resource_fixed_memory32 { + u8 write_protect; + u32 address; + u32 address_length; +} __attribute__((packed)); + +union acpi_resource_attribute { + struct acpi_memory_attribute mem; + struct acpi_io_attribute io; + u8 type_specific; +}; + +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_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_resource_address64 { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; + struct acpi_address64_attribute address; + struct acpi_resource_source resource_source; +} __attribute__((packed)); + +struct acpi_resource_extended_address64 { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; + u8 revision_ID; + struct acpi_address64_attribute address; + u64 type_specific; +} __attribute__((packed)); + +struct acpi_resource_extended_irq { + u8 producer_consumer; + u8 triggering; + u8 polarity; + u8 shareable; + u8 wake_capable; + u8 interrupt_count; + struct acpi_resource_source resource_source; + union { + u32 interrupt; + struct { + struct {} __Empty_interrupts; + u32 interrupts[0]; + }; + }; +} __attribute__((packed)); + +struct acpi_resource_generic_register { + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +struct acpi_resource_gpio { + u8 revision_id; + u8 connection_type; + u8 producer_consumer; + u8 pin_config; + u8 shareable; + u8 wake_capable; + u8 io_restriction; + u8 triggering; + u8 polarity; + u16 drive_strength; + u16 debounce_timeout; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_i2c_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 access_mode; + u16 slave_address; + u32 connection_speed; +} __attribute__((packed)); + +struct acpi_resource_spi_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 wire_mode; + u8 device_polarity; + u8 data_bit_length; + u8 clock_phase; + u8 clock_polarity; + u16 device_selection; + u32 connection_speed; +} __attribute__((packed)); + +struct acpi_resource_uart_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 endian; + u8 data_bits; + u8 stop_bits; + u8 flow_control; + u8 parity; + u8 lines_enabled; + u16 rx_fifo_size; + u16 tx_fifo_size; + u32 default_baud_rate; +} __attribute__((packed)); + +struct acpi_resource_csi2_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 local_port_instance; + u8 phy_type; +} __attribute__((packed)); + +struct acpi_resource_common_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_function { + u8 revision_id; + u8 pin_config; + u8 shareable; + u16 function_number; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_config { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u8 pin_config_type; + u32 pin_config_value; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_label { + u16 string_length; + char *string_ptr; +} __attribute__((packed)); + +struct acpi_resource_pin_group { + u8 revision_id; + u8 producer_consumer; + u16 pin_table_length; + u16 vendor_length; + u16 *pin_table; + struct acpi_resource_label resource_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_group_function { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u16 function_number; + u16 vendor_length; + struct acpi_resource_source resource_source; + struct acpi_resource_label resource_source_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_group_config { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u8 pin_config_type; + u32 pin_config_value; + u16 vendor_length; + struct acpi_resource_source resource_source; + struct acpi_resource_label resource_source_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_clock_input { + u8 revision_id; + u8 mode; + u8 scale; + u16 frequency_divisor; + u32 frequency_numerator; + struct acpi_resource_source resource_source; +} __attribute__((packed)); + +struct acpi_resource_address { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; +}; + +union acpi_resource_data { + struct acpi_resource_irq irq; + struct acpi_resource_dma dma; + struct acpi_resource_start_dependent start_dpf; + struct acpi_resource_io io; + struct acpi_resource_fixed_io fixed_io; + struct acpi_resource_fixed_dma fixed_dma; + struct acpi_resource_vendor vendor; + struct acpi_resource_vendor_typed vendor_typed; + struct acpi_resource_end_tag end_tag; + struct acpi_resource_memory24 memory24; + struct acpi_resource_memory32 memory32; + struct acpi_resource_fixed_memory32 fixed_memory32; + struct acpi_resource_address16 address16; + struct acpi_resource_address32 address32; + struct acpi_resource_address64 address64; + struct acpi_resource_extended_address64 ext_address64; + struct acpi_resource_extended_irq extended_irq; + struct acpi_resource_generic_register generic_reg; + struct acpi_resource_gpio gpio; + struct acpi_resource_i2c_serialbus i2c_serial_bus; + struct acpi_resource_spi_serialbus spi_serial_bus; + struct acpi_resource_uart_serialbus uart_serial_bus; + struct acpi_resource_csi2_serialbus csi2_serial_bus; + struct acpi_resource_common_serialbus common_serial_bus; + struct acpi_resource_pin_function pin_function; + struct acpi_resource_pin_config pin_config; + struct acpi_resource_pin_group pin_group; + struct acpi_resource_pin_group_function pin_group_function; + struct acpi_resource_pin_group_config pin_group_config; + struct acpi_resource_clock_input clock_input; + struct acpi_resource_address address; +}; + +struct acpi_resource { + u32 type; + u32 length; + union acpi_resource_data data; +}; + +struct acpi_rsconvert_info { + u8 opcode; + u8 resource_offset; + u8 aml_offset; + u8 value; +}; + +struct acpi_rsdump_info { + u8 opcode; + u8 offset; + const char *name; + const char **pointer; +} __attribute__((packed)); + +struct acpi_rw_lock { + void *writer_mutex; + void *reader_mutex; + u32 num_readers; +}; + +struct acpi_s2idle_dev_ops { + struct list_head list_node; + void (*prepare)(void); + void (*check)(void); + void (*restore)(void); +}; + +struct acpi_scan_clear_dep_work { + struct work_struct work; + struct acpi_device *adev; +}; + +struct acpi_scan_handler { + struct list_head list_node; + const struct acpi_device_id *ids; + 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 (*post_eject)(struct acpi_device *); + void (*bind)(struct device *); + void (*unbind)(struct device *); + struct acpi_hotplug_profile hotplug; +}; + +typedef u32 (*acpi_sci_handler)(void *); + +struct acpi_sci_handler_info { + struct acpi_sci_handler_info *next; + acpi_sci_handler address; + void *context; +}; + +struct acpi_serdev_lookup { + acpi_handle device_handle; + acpi_handle controller_handle; + int n; + int index; +}; + +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; +}; + +struct spi_controller; + +struct acpi_spi_lookup { + struct spi_controller *ctlr; + u32 max_speed_hz; + u32 mode; + int irq; + u8 bits_per_word; + u8 chip_select; + int n; + int index; +}; + +struct acpi_srat_cpu_affinity { + struct acpi_subtable_header header; + u8 proximity_domain_lo; + u8 apic_id; + u32 flags; + u8 local_sapic_eid; + u8 proximity_domain_hi[3]; + u32 clock_domain; +}; + +struct acpi_srat_generic_affinity { + struct acpi_subtable_header header; + u8 reserved; + u8 device_handle_type; + u32 proximity_domain; + u8 device_handle[16]; + u32 flags; + u32 reserved1; +}; + +struct acpi_srat_gicc_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u32 acpi_processor_uid; + u32 flags; + u32 clock_domain; +} __attribute__((packed)); + +struct acpi_srat_mem_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u16 reserved; + u64 base_address; + u64 length; + u32 reserved1; + u32 flags; + u64 reserved2; +} __attribute__((packed)); + +struct acpi_srat_rintc_affinity { + struct acpi_subtable_header header; + u16 reserved; + u32 proximity_domain; + u32 acpi_processor_uid; + u32 flags; + u32 clock_domain; +}; + +struct acpi_srat_x2apic_cpu_affinity { + struct acpi_subtable_header header; + u16 reserved; + u32 proximity_domain; + u32 apic_id; + u32 flags; + u32 clock_domain; + u32 reserved2; +}; + +struct acpi_subtable_entry { + union acpi_subtable_headers *hdr; + enum acpi_subtable_type type; +}; + +union acpi_subtable_headers { + struct acpi_subtable_header common; + struct acpi_hmat_structure hmat; + struct acpi_prmt_module_header prmt; + struct acpi_cedt_header cedt; + struct acpi_cdat_header cdat; +}; + +typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const long unsigned int); + +struct acpi_subtable_proc { + int id; + acpi_tbl_entry_handler handler; + acpi_tbl_entry_handler_arg handler_arg; + void *arg; + int count; +}; + +struct acpi_table_attr { + struct bin_attribute attr; + char name[4]; + int instance; + char filename[8]; + struct list_head node; +}; + +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_bert { + struct acpi_table_header header; + u32 region_length; + u64 address; +}; + +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 acpi_table_boot { + struct acpi_table_header header; + u8 cmos_index; + u8 reserved[3]; +}; + +struct acpi_table_ccel { + struct acpi_table_header header; + u8 CCtype; + u8 Ccsub_type; + u16 reserved; + u64 log_area_minimum_length; + u64 log_area_start_address; +}; + +struct acpi_table_cdat { + u32 length; + u8 revision; + u8 checksum; + u8 reserved[6]; + u32 sequence; +}; + +struct acpi_table_csrt { + struct acpi_table_header header; +}; + +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_dmar { + struct acpi_table_header header; + u8 width; + u8 flags; + u8 reserved[10]; +}; + +struct acpi_table_ecdt { + struct acpi_table_header header; + struct acpi_generic_address control; + struct acpi_generic_address data; + u32 uid; + u8 gpe; + u8 id[0]; +} __attribute__((packed)); + +struct acpi_table_erst { + struct acpi_table_header header; + u32 header_length; + u32 reserved; + u32 entries; +}; + +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_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_hest { + struct acpi_table_header header; + u32 error_source_count; +}; + +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 acpi_table_list { + struct acpi_table_desc *tables; + u32 current_table_count; + u32 max_table_count; + u8 flags; +}; + +struct acpi_table_lpit { + struct acpi_table_header header; +}; + +struct acpi_table_madt { + struct acpi_table_header header; + u32 address; + u32 flags; +}; + +struct acpi_table_mcfg { + struct acpi_table_header header; + u8 reserved[8]; +}; + +struct acpi_table_nhlt { + struct acpi_table_header header; + u8 endpoints_count; +} __attribute__((packed)); + +struct acpi_table_pcct { + struct acpi_table_header header; + u32 flags; + u64 reserved; +}; + +struct acpi_table_rsdp { + char signature[8]; + u8 checksum; + char oem_id[6]; + u8 revision; + u32 rsdt_physical_address; + u32 length; + u64 xsdt_physical_address; + u8 extended_checksum; + u8 reserved[3]; +} __attribute__((packed)); + +struct acpi_table_slit { + struct acpi_table_header header; + u64 locality_count; + u8 entry[0]; +} __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 language; + u16 pci_device_id; + u16 pci_vendor_id; + u8 pci_bus; + u8 pci_device; + u8 pci_function; + u32 pci_flags; + u8 pci_segment; + u32 uart_clk_freq; + u32 precise_baudrate; + u16 name_space_string_length; + u16 name_space_string_offset; + char name_space_string[0]; +} __attribute__((packed)); + +struct acpi_table_srat { + struct acpi_table_header header; + u32 table_revision; + u64 reserved; +}; + +struct acpi_table_stao { + struct acpi_table_header header; + u8 ignore_uart; +} __attribute__((packed)); + +struct acpi_table_tpm2 { + struct acpi_table_header header; + u16 platform_class; + u16 reserved; + u64 control_address; + u32 start_method; +} __attribute__((packed)); + +struct acpi_table_viot { + struct acpi_table_header header; + u16 node_count; + u16 node_offset; + u8 reserved[8]; +}; + +struct acpi_table_wdat { + struct acpi_table_header header; + u32 header_length; + u16 pci_segment; + u8 pci_bus; + u8 pci_device; + u8 pci_function; + u8 reserved[3]; + u32 timer_period; + u32 max_count; + u32 min_count; + u8 flags; + u8 reserved2[3]; + u32 entries; +}; + +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; + }; +}; + +struct acpi_thermal_trip { + long unsigned int temp_dk; + struct acpi_handle_list devices; +}; + +struct acpi_thermal_passive { + struct acpi_thermal_trip trip; + long unsigned int tc1; + long unsigned int tc2; + long unsigned int delay; +}; + +struct acpi_thermal_active { + struct acpi_thermal_trip trip; +}; + +struct acpi_thermal_trips { + struct acpi_thermal_passive passive; + struct acpi_thermal_active active[10]; +}; + +struct thermal_zone_device; + +struct acpi_thermal { + struct acpi_device *device; + acpi_bus_id name; + long unsigned int temp_dk; + long unsigned int last_temp_dk; + long unsigned int polling_frequency; + volatile u8 zombie; + struct acpi_thermal_trips trips; + struct thermal_zone_device *thermal_zone; + int kelvin_offset; + struct work_struct thermal_check_work; + struct mutex thermal_check_lock; + refcount_t thermal_check_count; +}; + +struct acpi_tpm2_phy { + u8 start_method_specific[12]; + u32 log_area_minimum_length; + u64 log_area_start_address; +}; + +struct acpi_vendor_uuid { + u8 subtype; + u8 data[16]; +}; + +struct acpi_vendor_walk_info { + struct acpi_vendor_uuid *uuid; + struct acpi_buffer *buffer; + acpi_status status; +}; + +struct acpi_viot_header { + u8 type; + u8 reserved; + u16 length; +}; + +struct acpi_viot_mmio { + struct acpi_viot_header header; + u32 endpoint; + u64 base_address; + u16 output_node; + u8 reserved[6]; +}; + +struct acpi_viot_pci_range { + struct acpi_viot_header header; + u32 endpoint_start; + u16 segment_start; + u16 segment_end; + u16 bdf_start; + u16 bdf_end; + u16 output_node; + u8 reserved[6]; +}; + +struct acpi_viot_virtio_iommu_mmio { + struct acpi_viot_header header; + u8 reserved[4]; + u64 base_address; +}; + +struct acpi_viot_virtio_iommu_pci { + struct acpi_viot_header header; + u16 segment; + u16 bdf; + u8 reserved[8]; +}; + +struct acpi_wakeup_handler { + struct list_head list_node; + bool (*wakeup)(void *); + void *context; +}; + +struct acpi_walk_info { + u32 debug_level; + u32 count; + acpi_owner_id owner_id; + u8 display_type; +}; + +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_walk_state { + struct acpi_walk_state *next; + u8 descriptor_type; + u8 walk_type; + u16 opcode; + u8 next_op_info; + u8 num_operands; + u8 operand_index; + acpi_owner_id owner_id; + u8 last_predicate; + u8 current_result; + u8 return_used; + u8 scope_depth; + u8 pass_number; + u8 namespace_override; + u8 result_size; + u8 result_count; + u8 *aml; + u32 arg_types; + u32 method_breakpoint; + u32 user_breakpoint; + u32 parse_flags; + struct acpi_parse_state parser_state; + u32 prev_arg_types; + u32 arg_count; + u16 method_nesting_depth; + u8 method_is_nested; + struct acpi_namespace_node arguments[7]; + struct acpi_namespace_node local_variables[8]; + union acpi_operand_object *operands[9]; + union acpi_operand_object **params; + u8 *aml_last_while; + union acpi_operand_object **caller_return_desc; + union acpi_generic_state *control_state; + struct acpi_namespace_node *deferred_node; + union acpi_operand_object *implicit_return_obj; + struct acpi_namespace_node *method_call_node; + union acpi_parse_object *method_call_op; + union acpi_operand_object *method_desc; + struct acpi_namespace_node *method_node; + char *method_pathname; + union acpi_parse_object *op; + const struct acpi_opcode_info *op_info; + union acpi_parse_object *origin; + union acpi_operand_object *result_obj; + union acpi_generic_state *results; + union acpi_operand_object *return_desc; + union acpi_generic_state *scope_info; + union acpi_parse_object *prev_op; + union acpi_parse_object *next_op; + struct acpi_thread_state *thread; + acpi_parse_downwards descending_callback; + acpi_parse_upwards ascending_callback; +}; + +struct acpi_wdat_entry { + u8 action; + u8 instruction; + u16 reserved; + struct acpi_generic_address register_region; + u32 value; + u32 mask; +}; + +struct acpi_whea_header { + u8 action; + u8 instruction; + u8 flags; + u8 reserved; + struct acpi_generic_address register_region; + u64 value; + u64 mask; +}; + +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 hotplug_slot; + +struct acpiphp_attention_info { + int (*set_attn)(struct hotplug_slot *, u8); + int (*get_attn)(struct hotplug_slot *, u8 *); + struct module *owner; +}; + +struct acpiphp_context; + +struct acpiphp_bridge { + struct list_head list; + struct list_head slots; + struct kref ref; + struct acpiphp_context *context; + int nr_slots; + struct pci_bus *pci_bus; + struct pci_dev *pci_dev; + bool is_going_away; +}; + +struct acpiphp_slot; + +struct acpiphp_func { + struct acpiphp_bridge *parent; + struct acpiphp_slot *slot; + struct list_head sibling; + u8 function; + u32 flags; +}; + +struct acpiphp_context { + struct acpi_hotplug_context hp; + struct acpiphp_func func; + struct acpiphp_bridge *bridge; + unsigned int refcount; +}; + +struct acpiphp_root_context { + struct acpi_hotplug_context hp; + struct acpiphp_bridge *root_bridge; +}; + +struct slot; + +struct acpiphp_slot { + struct list_head node; + struct pci_bus *bus; + struct list_head funcs; + struct slot *slot; + u8 device; + u32 flags; +}; + +struct pnp_dev; + +struct acpipnp_parse_option_s { + struct pnp_dev *dev; + unsigned int option_flags; +}; + +struct action_cache { + long unsigned int allow_native[8]; + long unsigned int allow_compat[8]; +}; + +struct hist_trigger_data; + +struct tracing_map_elt; + +struct trace_buffer; + +struct ring_buffer_event; + +struct action_data; + +typedef void (*action_fn_t)(struct hist_trigger_data *, struct tracing_map_elt *, struct trace_buffer *, void *, struct ring_buffer_event *, void *, struct action_data *, u64 *); + +typedef bool (*check_track_val_fn_t)(u64, u64); + +struct synth_event; + +struct hist_field; + +struct action_data { + enum handler_id handler; + enum action_id action; + char *action_name; + action_fn_t fn; + unsigned int n_params; + char *params[64]; + unsigned int var_ref_idx[64]; + struct synth_event *synth_event; + bool use_trace_keyword; + char *synth_event_name; + union { + struct { + char *event; + char *event_system; + } match_data; + struct { + char *var_str; + struct hist_field *var_ref; + struct hist_field *track_var; + check_track_val_fn_t check_val; + action_fn_t save_data; + } track_data; + }; +}; + +struct action_devres { + void *data; + void (*action)(void *); +}; + +struct action_gate_entry { + u8 gate_state; + u32 interval; + s32 ipv; + s32 maxoctets; +}; + +struct addr_marker { + long unsigned int start_address; + const char *name; + long unsigned int max_lines; +}; + +struct rb_root_cached { + struct rb_root rb_root; + struct rb_node *rb_leftmost; +}; + +struct address_space_operations; + +struct address_space { + struct inode *host; + struct xarray i_pages; + struct rw_semaphore invalidate_lock; + gfp_t gfp_mask; + atomic_t i_mmap_writable; + struct rb_root_cached i_mmap; + long unsigned int nrpages; + long unsigned int writeback_index; + const struct address_space_operations *a_ops; + long unsigned int flags; + errseq_t wb_err; + spinlock_t i_private_lock; + struct list_head i_private_list; + struct rw_semaphore i_mmap_rwsem; + void *i_private_data; +}; + +struct writeback_control; + +struct readahead_control; + +struct kiocb; + +struct iov_iter; + +struct swap_info_struct; + +struct address_space_operations { + int (*writepage)(struct page *, struct writeback_control *); + int (*read_folio)(struct file *, struct folio *); + int (*writepages)(struct address_space *, struct writeback_control *); + bool (*dirty_folio)(struct address_space *, struct folio *); + void (*readahead)(struct readahead_control *); + int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, struct folio **, void **); + int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct folio *, 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_folio)(struct address_space *, struct folio *); + 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 adjust_trip_data { + struct acpi_thermal *tz; + u32 event; +}; + +struct adp5520_backlight_platform_data { + u8 fade_in; + u8 fade_out; + u8 fade_led_law; + u8 en_ambl_sens; + u8 abml_filt; + u8 l1_daylight_max; + u8 l1_daylight_dim; + u8 l2_office_max; + u8 l2_office_dim; + u8 l3_dark_max; + u8 l3_dark_dim; + u8 l2_trip; + u8 l2_hyst; + u8 l3_trip; + u8 l3_hyst; +}; + +struct blocking_notifier_head { + struct rw_semaphore rwsem; + struct notifier_block *head; +}; + +struct adp5520_chip { + struct i2c_client *client; + struct device *dev; + struct mutex lock; + struct blocking_notifier_head notifier_list; + int irq; + long unsigned int id; + uint8_t mode; +}; + +struct adp5520_gpio_platform_data { + unsigned int gpio_start; + u8 gpio_en_mask; + u8 gpio_pullup_mask; +}; + +struct adp5520_keys_platform_data { + int rows_en_mask; + int cols_en_mask; + const short unsigned int *keymap; + short unsigned int keymapsize; + unsigned int repeat: 1; +}; + +struct led_info; + +struct adp5520_leds_platform_data { + int num_leds; + struct led_info *leds; + u8 fade_in; + u8 fade_out; + u8 led_on_time; +}; + +struct adp5520_platform_data { + struct adp5520_keys_platform_data *keys; + struct adp5520_gpio_platform_data *gpio; + struct adp5520_leds_platform_data *leds; + struct adp5520_backlight_platform_data *backlight; +}; + +struct advisor_ctx { + ktime_t start_scan; + long unsigned int scan_time; + long unsigned int change; + long long unsigned int cpu_time; +}; + +struct crypto_aead; + +struct aead_request; + +struct aead_alg { + int (*setkey)(struct crypto_aead *, const u8 *, unsigned int); + int (*setauthsize)(struct crypto_aead *, unsigned int); + int (*encrypt)(struct aead_request *); + int (*decrypt)(struct aead_request *); + int (*init)(struct crypto_aead *); + void (*exit)(struct crypto_aead *); + unsigned int ivsize; + unsigned int maxauthsize; + unsigned int chunksize; + struct crypto_alg base; +}; + +struct crypto_sync_skcipher; + +struct aead_geniv_ctx { + spinlock_t lock; + struct crypto_aead *child; + struct crypto_sync_skcipher *sknull; + u8 salt[0]; +}; + +struct crypto_template; + +struct crypto_spawn; + +struct crypto_instance { + struct crypto_alg alg; + struct crypto_template *tmpl; + union { + struct hlist_node list; + struct crypto_spawn *spawns; + }; + struct work_struct free_work; + void *__ctx[0]; +}; + +struct aead_instance { + void (*free)(struct aead_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct aead_alg alg; + }; +}; + +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 pcie_tlp_log { + u32 dw[4]; + u32 prefix[4]; +}; + +struct aer_capability_regs { + u32 header; + u32 uncor_status; + u32 uncor_mask; + u32 uncor_severity; + u32 cor_status; + u32 cor_mask; + u32 cap_control; + struct pcie_tlp_log header_log; + u32 root_command; + u32 root_status; + u16 cor_err_source; + u16 uncor_err_source; +}; + +struct aer_err_info { + struct pci_dev *dev[5]; + int error_dev_num; + unsigned int id: 16; + unsigned int severity: 2; + unsigned int __pad1: 5; + unsigned int multi_error_valid: 1; + unsigned int first_error: 5; + unsigned int __pad2: 2; + unsigned int tlp_header_valid: 1; + unsigned int status; + unsigned int mask; + struct pcie_tlp_log tlp; +}; + +struct aer_err_source { + u32 status; + u32 id; +}; + +struct aer_recover_entry { + u8 bus; + u8 devfn; + u16 domain; + int severity; + struct aer_capability_regs *regs; +}; + +struct aer_rpc { + struct pci_dev *rpd; + struct { + union { + struct __kfifo kfifo; + struct aer_err_source *type; + const struct aer_err_source *const_type; + char (*rectype)[0]; + struct aer_err_source *ptr; + const struct aer_err_source *ptr_const; + }; + struct aer_err_source buf[128]; + } aer_fifo; +}; + +struct aer_stats { + u64 dev_cor_errs[16]; + u64 dev_fatal_errs[27]; + u64 dev_nonfatal_errs[27]; + u64 dev_total_cor_errs; + u64 dev_total_fatal_errs; + u64 dev_total_nonfatal_errs; + u64 rootport_total_cor_errs; + u64 rootport_total_fatal_errs; + u64 rootport_total_nonfatal_errs; +}; + +struct crypto_aes_ctx { + u32 key_enc[60]; + u32 key_dec[60]; + u32 key_length; +}; + +struct aesgcm_ctx { + be128 ghash_key; + struct crypto_aes_ctx aes_ctx; + unsigned int authsize; +}; + +struct affinity_context { + const struct cpumask *new_mask; + struct cpumask *user_mask; + unsigned int flags; +}; + +struct aggregate_control { + long int *aggregate; + long int *local; + long int *pending; + long int *ppending; + long int *cstat; + long int *cstat_prev; + int size; +}; + +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 agp_3_5_dev { + struct list_head list; + u8 capndx; + u32 maxbw; + struct pci_dev *dev; +}; + +struct agp_version; + +struct agp_bridge_driver; + +struct vm_operations_struct; + +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; + long unsigned int scratch_page; + struct page *scratch_page_page; + dma_addr_t scratch_page_dma; + long unsigned int gart_bus_addr; + long unsigned int gatt_bus_addr; + u32 mode; + long unsigned int *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 gatt_mask; + +struct agp_memory; + +struct agp_bridge_driver { + struct module *owner; + const void *aperture_sizes; + int num_aperture_sizes; + enum aper_size_type size_type; + bool cant_use_aperture; + bool needs_scratch_page; + const struct gatt_mask *masks; + int (*fetch_size)(void); + int (*configure)(void); + void (*agp_enable)(struct agp_bridge_data *, u32); + void (*cleanup)(void); + void (*tlb_flush)(struct agp_memory *); + long unsigned int (*mask_memory)(struct agp_bridge_data *, dma_addr_t, int); + void (*cache_flush)(void); + 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 agp_device_ids { + short unsigned int device_id; + enum chipset_type chipset; + const char *chipset_name; + int (*chipset_setup)(struct pci_dev *); +}; + +struct agp_version { + u16 major; + u16 minor; +}; + +struct agp_kern_info { + struct agp_version version; + struct pci_dev *device; + enum chipset_type chipset; + long unsigned int mode; + long unsigned int aper_base; + size_t aper_size; + int max_memory; + int current_memory; + bool cant_use_aperture; + long unsigned int page_mask; + const struct vm_operations_struct *vm_ops; +}; + +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 hash_alg_common { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; +}; + +struct ahash_request; + +struct crypto_ahash; + +struct ahash_alg { + int (*init)(struct ahash_request *); + int (*update)(struct ahash_request *); + int (*final)(struct ahash_request *); + int (*finup)(struct ahash_request *); + int (*digest)(struct ahash_request *); + int (*export)(struct ahash_request *, void *); + int (*import)(struct ahash_request *, const void *); + int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_ahash *); + void (*exit_tfm)(struct crypto_ahash *); + int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); + unsigned int reqsize; + struct hash_alg_common halg; +}; + +struct ahash_instance { + void (*free)(struct ahash_instance *); + union { + struct { + char head[104]; + struct crypto_instance base; + } s; + struct ahash_alg alg; + }; +}; + +struct ahash_request { + struct crypto_async_request base; + unsigned int nbytes; + struct scatterlist *src; + u8 *result; + void *priv; + void *__ctx[0]; +}; + +struct wait_page_queue; + +struct kiocb { + struct file *ki_filp; + loff_t ki_pos; + void (*ki_complete)(struct kiocb *, long int); + void *private; + int ki_flags; + u16 ki_ioprio; + union { + struct wait_page_queue *ki_waitq; + ssize_t (*dio_complete)(void *); + }; +}; + +struct fsync_iocb { + struct file *file; + struct work_struct work; + bool datasync; + struct cred *creds; +}; + +struct wait_queue_entry; + +typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *); + +struct wait_queue_entry { + unsigned int flags; + void *private; + wait_queue_func_t func; + struct list_head entry; +}; + +struct 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 kioctx; + +struct eventfd_ctx; + +struct aio_kiocb { + union { + struct file *ki_filp; + struct kiocb rw; + struct fsync_iocb fsync; + struct poll_iocb poll; + }; + struct kioctx *ki_ctx; + kiocb_cancel_fn *ki_cancel; + struct io_event ki_res; + struct list_head ki_list; + refcount_t ki_refcnt; + struct eventfd_ctx *ki_eventfd; +}; + +struct poll_table_struct; + +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 aio_poll_table { + struct poll_table_struct pt; + struct aio_kiocb *iocb; + bool queued; + int error; +}; + +struct aio_ring { + unsigned int id; + unsigned int nr; + unsigned int head; + unsigned int tail; + unsigned int magic; + unsigned int compat_features; + unsigned int incompat_features; + unsigned int header_length; + struct io_event io_events[0]; +}; + +struct aio_waiter { + struct wait_queue_entry w; + size_t min_nr; +}; + +struct akcipher_request; + +struct crypto_akcipher; + +struct akcipher_alg { + int (*encrypt)(struct akcipher_request *); + int (*decrypt)(struct akcipher_request *); + int (*set_pub_key)(struct crypto_akcipher *, const void *, unsigned int); + int (*set_priv_key)(struct crypto_akcipher *, const void *, unsigned int); + unsigned int (*max_size)(struct crypto_akcipher *); + int (*init)(struct crypto_akcipher *); + void (*exit)(struct crypto_akcipher *); + struct crypto_alg base; +}; + +struct akcipher_instance { + void (*free)(struct akcipher_instance *); + union { + struct { + char head[56]; + struct crypto_instance base; + } s; + struct akcipher_alg alg; + }; +}; + +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 alarm { + struct timerqueue_node node; + struct hrtimer timer; + void (*function)(struct alarm *, ktime_t); + enum alarmtimer_type type; + int state; + void *data; +}; + +struct timerqueue_head { + struct rb_root_cached rb_root; +}; + +struct timespec64; + +struct alarm_base { + spinlock_t lock; + struct timerqueue_head timerqueue; + ktime_t (*get_ktime)(void); + void (*get_timespec)(struct timespec64 *); + clockid_t base_clockid; +}; + +struct source_location { + const char *file_name; + union { + long unsigned int reported; + struct { + u32 line; + u32 column; + }; + }; +}; + +struct type_descriptor; + +struct alignment_assumption_data { + struct source_location location; + struct source_location assumption_location; + struct type_descriptor *type; +}; + +struct zonelist; + +struct zoneref; + +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 codetag { + unsigned int flags; + unsigned int lineno; + const char *modname; + const char *function; + const char *filename; +}; + +struct alloc_tag_counters; + +struct alloc_tag { + struct codetag ct; + struct alloc_tag_counters *counters; +}; + +struct alloc_tag_counters { + u64 bytes; + u64 calls; +}; + +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 amd_aperf_mperf { + u64 aperf; + u64 mperf; + u64 tsc; +}; + +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 amd_cpudata { + int cpu; + struct freq_qos_request req[2]; + u64 cppc_req_cached; + u8 highest_perf; + u8 nominal_perf; + u8 lowest_nonlinear_perf; + u8 lowest_perf; + u8 prefcore_ranking; + u8 min_limit_perf; + u8 max_limit_perf; + u32 min_limit_freq; + u32 max_limit_freq; + u32 max_freq; + u32 min_freq; + u32 nominal_freq; + u32 lowest_nonlinear_freq; + struct amd_aperf_mperf cur; + struct amd_aperf_mperf prev; + u64 freq; + bool boost_supported; + bool hw_prefcore; + u8 epp_cached; + u32 policy; + u64 cppc_cap1_cached; + bool suspended; + u8 epp_default; +}; + +union amd_debug_extn_cfg { + __u64 val; + struct { + __u64 rsvd0: 2; + __u64 brsmen: 1; + __u64 rsvd4_3: 2; + __u64 vb: 1; + __u64 rsvd2: 10; + __u64 msroff: 4; + __u64 rsvd3: 4; + __u64 pmc: 3; + __u64 rsvd4: 37; + }; +}; + +struct amd_function { + const char *name; + const char * const groups[4]; + unsigned int ngroups; + int index; +}; + +struct irq_fwspec; + +struct irq_data; + +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, long unsigned int *, 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 *, long unsigned int *, unsigned int *); +}; + +struct irq_desc; + +typedef void (*irq_flow_handler_t)(struct irq_desc *); + +struct irq_chip; + +union gpio_irq_fwspec; + +struct gpio_irq_chip { + struct irq_chip *chip; + struct irq_domain *domain; + struct fwnode_handle *fwnode; + struct irq_domain *parent_domain; + int (*child_to_parent_hwirq)(struct gpio_chip *, unsigned int, unsigned int, unsigned int *, unsigned int *); + int (*populate_parent_alloc_arg)(struct gpio_chip *, union gpio_irq_fwspec *, unsigned int, unsigned int); + unsigned int (*child_offset_to_irq)(struct gpio_chip *, unsigned int); + struct irq_domain_ops child_irq_domain_ops; + irq_flow_handler_t handler; + unsigned int default_type; + struct lock_class_key *lock_key; + struct lock_class_key *request_key; + irq_flow_handler_t parent_handler; + union { + void *parent_handler_data; + void **parent_handler_data_array; + }; + unsigned int num_parents; + unsigned int *parents; + unsigned int *map; + bool threaded; + bool per_parent_data; + bool initialized; + bool domain_is_allocated_externally; + int (*init_hw)(struct gpio_chip *); + void (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int); + long unsigned int *valid_mask; + unsigned int first; + void (*irq_enable)(struct irq_data *); + void (*irq_disable)(struct irq_data *); + void (*irq_unmask)(struct irq_data *); + void (*irq_mask)(struct irq_data *); +}; + +struct gpio_device; + +struct seq_file; + +struct gpio_chip { + const char *label; + struct gpio_device *gpiodev; + struct device *parent; + struct fwnode_handle *fwnode; + struct module *owner; + int (*request)(struct gpio_chip *, unsigned int); + void (*free)(struct gpio_chip *, unsigned int); + int (*get_direction)(struct gpio_chip *, unsigned int); + int (*direction_input)(struct gpio_chip *, unsigned int); + int (*direction_output)(struct gpio_chip *, unsigned int, int); + int (*get)(struct gpio_chip *, unsigned int); + int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *); + void (*set)(struct gpio_chip *, unsigned int, int); + void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *); + int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int); + int (*to_irq)(struct gpio_chip *, unsigned int); + void (*dbg_show)(struct seq_file *, struct gpio_chip *); + int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int); + int (*add_pin_ranges)(struct gpio_chip *); + int (*en_hw_timestamp)(struct gpio_chip *, u32, long unsigned int); + int (*dis_hw_timestamp)(struct gpio_chip *, u32, long unsigned int); + int base; + u16 ngpio; + u16 offset; + const char * const *names; + bool can_sleep; + long unsigned int (*read_reg)(void *); + void (*write_reg)(void *, long unsigned int); + bool be_bits; + void *reg_dat; + void *reg_set; + void *reg_clr; + void *reg_dir_out; + void *reg_dir_in; + bool bgpio_dir_unreadable; + int bgpio_bits; + raw_spinlock_t bgpio_lock; + long unsigned int bgpio_data; + long unsigned int bgpio_dir; + struct gpio_irq_chip irq; + long unsigned int *valid_mask; +}; + +struct pingroup; + +struct pinctrl_dev; + +struct platform_device; + +struct amd_gpio { + raw_spinlock_t lock; + void *base; + void *iomux_base; + const struct pingroup *groups; + u32 ngroups; + struct pinctrl_dev *pctrl; + struct gpio_chip gc; + unsigned int hwbank_num; + struct resource *res; + struct platform_device *pdev; + u32 *saved_regs; + int irq; +}; + +struct amd_hostbridge { + u32 bus; + u32 slot; + u32 device; +}; + +struct iommu_flush_ops; + +struct io_pgtable_cfg { + long unsigned int quirks; + long unsigned int pgsize_bitmap; + unsigned int ias; + unsigned int oas; + bool coherent_walk; + const struct iommu_flush_ops *tlb; + struct device *iommu_dev; + void * (*alloc)(void *, size_t, gfp_t); + void (*free)(void *, void *, size_t); + 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 { + int nid; + } amd; + }; +}; + +struct iommu_iotlb_gather; + +struct iommu_dirty_bitmap; + +struct io_pgtable_ops { + int (*map_pages)(struct io_pgtable_ops *, long unsigned int, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); + size_t (*unmap_pages)(struct io_pgtable_ops *, long unsigned int, size_t, size_t, struct iommu_iotlb_gather *); + phys_addr_t (*iova_to_phys)(struct io_pgtable_ops *, long unsigned int); + int (*pgtable_walk)(struct io_pgtable_ops *, long unsigned int, void *); + int (*read_and_clear_dirty)(struct io_pgtable_ops *, long unsigned int, size_t, long unsigned int, struct iommu_dirty_bitmap *); +}; + +struct io_pgtable { + enum io_pgtable_fmt fmt; + void *cookie; + struct io_pgtable_cfg cfg; + struct io_pgtable_ops ops; +}; + +struct amd_io_pgtable { + struct io_pgtable pgtbl; + int mode; + u64 *root; + u64 *pgd; +}; + +struct iommu_ops; + +struct iommu_device { + struct list_head list; + const struct iommu_ops *ops; + struct fwnode_handle *fwnode; + struct device *dev; + struct iommu_group *singleton_group; + u32 max_pasids; + bool ready; +}; + +struct amd_iommu_pci_seg; + +struct amd_irte_ops; + +struct iopf_queue; + +struct amd_iommu { + struct list_head list; + int index; + raw_spinlock_t lock; + struct pci_dev *dev; + struct pci_dev *root_pdev; + u64 mmio_phys; + u64 mmio_phys_end; + u8 *mmio_base; + u32 cap; + u8 acpi_flags; + u64 features; + u64 features2; + u16 devid; + u16 cap_ptr; + struct amd_iommu_pci_seg *pci_seg; + u64 exclusion_start; + u64 exclusion_length; + u8 *cmd_buf; + u32 cmd_buf_head; + u32 cmd_buf_tail; + u8 *evt_buf; + unsigned char evt_irq_name[16]; + u8 *ppr_log; + unsigned char ppr_irq_name[16]; + u8 *ga_log; + unsigned char ga_irq_name[16]; + u8 *ga_log_tail; + bool int_enabled; + bool need_sync; + bool irtcachedis_enabled; + struct iommu_device iommu; + u32 stored_addr_lo; + u32 stored_addr_hi; + u32 stored_l1[108]; + u32 stored_l2[131]; + u8 max_banks; + u8 max_counters; + struct irq_domain *ir_domain; + struct amd_irte_ops *irte_ops; + u32 flags; + volatile u64 *cmd_sem; + atomic64_t cmd_sem_val; + struct iopf_queue *iopf_queue; + unsigned char iopfq_name[32]; +}; + +struct amd_iommu_event_desc { + struct device_attribute attr; + const char *event; +}; + +struct llist_head { + struct llist_node *first; +}; + +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 vcpu_data; + +struct amd_iommu_pi_data { + u32 ga_tag; + u32 prev_ga_tag; + u64 base; + bool is_guest_mode; + struct vcpu_data *vcpu_data; + void *ir_data; +}; + +struct irq_2_irte { + u16 devid; + u16 index; +}; + +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_cfg; + +struct amd_ir_data { + u32 cached_ga_tag; + struct amd_iommu *iommu; + struct irq_2_irte irq_2_irte; + struct msi_msg msi_entry; + void *entry; + struct irq_cfg *cfg; + int ga_vector; + u64 ga_root_ptr; + u32 ga_tag; +}; + +struct amd_irte_ops { + void (*prepare)(void *, u32, bool, u8, u32, int); + void (*activate)(struct amd_iommu *, void *, u16, u16); + void (*deactivate)(struct amd_iommu *, void *, u16, u16); + void (*set_affinity)(struct amd_iommu *, void *, u16, u16, u8, u32); + void * (*get)(struct irq_remap_table *, int); + void (*set_allocated)(struct irq_remap_table *, int); + bool (*is_allocated)(struct irq_remap_table *, int); + void (*clear_allocated)(struct irq_remap_table *, int); +}; + +struct amd_l3_cache { + unsigned int indices; + u8 subcaches[4]; +}; + +struct amd_lps0_hid_device_data { + const bool check_off_by_one; +}; + +struct event_constraint { + union { + long unsigned int idxmsk[1]; + u64 idxmsk64; + }; + u64 code; + u64 cmask; + int weight; + int overlap; + int flags; + unsigned int size; +}; + +struct perf_event; + +struct amd_nb { + int nb_id; + int refcnt; + struct perf_event *owners[64]; + struct event_constraint event_constraints[64]; +}; + +struct amd_nb_bus_dev_range { + u8 bus; + u8 dev_base; + u8 dev_limit; +}; + +struct amd_northbridge { + struct pci_dev *misc; + struct pci_dev *link; + struct amd_l3_cache l3_cache; +}; + +struct amd_northbridge_info { + u16 num; + u64 flags; + struct amd_northbridge *nb; +}; + +struct freq_band_range { + u64 start; + u64 end; +}; + +struct amd_wbrf_ranges_out { + u32 num_of_ranges; + struct freq_band_range band_list[11]; +} __attribute__((packed)); + +struct aml_resource_small_header { + u8 descriptor_type; +}; + +struct aml_resource_large_header { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); + +struct aml_resource_irq { + u8 descriptor_type; + u16 irq_mask; + u8 flags; +} __attribute__((packed)); + +struct aml_resource_dma { + u8 descriptor_type; + u8 dma_channel_mask; + u8 flags; +}; + +struct aml_resource_start_dependent { + u8 descriptor_type; + u8 flags; +}; + +struct aml_resource_end_dependent { + u8 descriptor_type; +}; + +struct aml_resource_io { + u8 descriptor_type; + u8 flags; + u16 minimum; + u16 maximum; + u8 alignment; + u8 address_length; +}; + +struct aml_resource_fixed_io { + u8 descriptor_type; + u16 address; + u8 address_length; +} __attribute__((packed)); + +struct aml_resource_fixed_dma { + u8 descriptor_type; + u16 request_lines; + u16 channels; + u8 width; +} __attribute__((packed)); + +struct aml_resource_vendor_small { + u8 descriptor_type; +}; + +struct aml_resource_end_tag { + u8 descriptor_type; + u8 checksum; +}; + +struct aml_resource_memory24 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u16 minimum; + u16 maximum; + u16 alignment; + u16 address_length; +} __attribute__((packed)); + +struct aml_resource_generic_register { + u8 descriptor_type; + u16 resource_length; + u8 address_space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +struct aml_resource_vendor_large { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); + +struct aml_resource_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 minimum; + u32 maximum; + u32 alignment; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_fixed_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 address; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_address16 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u16 granularity; + u16 minimum; + u16 maximum; + u16 translation_offset; + u16 address_length; +} __attribute__((packed)); + +struct aml_resource_address32 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u32 granularity; + u32 minimum; + u32 maximum; + u32 translation_offset; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_address64 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; +} __attribute__((packed)); + +struct aml_resource_extended_address64 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u8 revision_ID; + u8 reserved; + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; + u64 type_specific; +} __attribute__((packed)); + +struct aml_resource_extended_irq { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u8 interrupt_count; + union { + u32 interrupt; + struct { + struct {} __Empty_interrupts; + u32 interrupts[0]; + }; + }; +} __attribute__((packed)); + +struct aml_resource_gpio { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 connection_type; + u16 flags; + u16 int_flags; + u8 pin_config; + u16 drive_strength; + u16 debounce_timeout; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_i2c_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 connection_speed; + u16 slave_address; +} __attribute__((packed)); + +struct aml_resource_spi_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 connection_speed; + u8 data_bit_length; + u8 clock_phase; + u8 clock_polarity; + u16 device_selection; +} __attribute__((packed)); + +struct aml_resource_uart_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 default_baud_rate; + u16 rx_fifo_size; + u16 tx_fifo_size; + u8 parity; + u8 lines_enabled; +} __attribute__((packed)); + +struct aml_resource_csi2_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; +} __attribute__((packed)); + +struct aml_resource_common_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; +} __attribute__((packed)); + +struct aml_resource_pin_function { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config; + u16 function_number; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_config { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config_type; + u32 pin_config_value; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 pin_table_offset; + u16 label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group_function { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 function_number; + u8 res_source_index; + u16 res_source_offset; + u16 res_source_label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group_config { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config_type; + u32 pin_config_value; + u8 res_source_index; + u16 res_source_offset; + u16 res_source_label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_clock_input { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 frequency_divisor; + u32 frequency_numerator; +} __attribute__((packed)); + +struct aml_resource_address { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; +} __attribute__((packed)); + +union aml_resource { + u8 descriptor_type; + struct aml_resource_small_header small_header; + struct aml_resource_large_header large_header; + struct aml_resource_irq irq; + struct aml_resource_dma dma; + struct aml_resource_start_dependent start_dpf; + struct aml_resource_end_dependent end_dpf; + struct aml_resource_io io; + struct aml_resource_fixed_io fixed_io; + struct aml_resource_fixed_dma fixed_dma; + struct aml_resource_vendor_small vendor_small; + struct aml_resource_end_tag end_tag; + struct aml_resource_memory24 memory24; + struct aml_resource_generic_register generic_reg; + struct aml_resource_vendor_large vendor_large; + struct aml_resource_memory32 memory32; + struct aml_resource_fixed_memory32 fixed_memory32; + struct aml_resource_address16 address16; + struct aml_resource_address32 address32; + struct aml_resource_address64 address64; + struct aml_resource_extended_address64 ext_address64; + struct aml_resource_extended_irq extended_irq; + struct aml_resource_gpio gpio; + struct aml_resource_i2c_serialbus i2c_serial_bus; + struct aml_resource_spi_serialbus spi_serial_bus; + struct aml_resource_uart_serialbus uart_serial_bus; + struct aml_resource_csi2_serialbus csi2_serial_bus; + struct aml_resource_common_serialbus common_serial_bus; + struct aml_resource_pin_function pin_function; + struct aml_resource_pin_config pin_config; + struct aml_resource_pin_group pin_group; + struct aml_resource_pin_group_function pin_group_function; + struct aml_resource_pin_group_config pin_group_config; + struct aml_resource_clock_input clock_input; + struct aml_resource_address address; + u32 dword_item; + u16 word_item; + u8 byte_item; +}; + +struct analog_param_field { + unsigned int even; + unsigned int odd; +}; + +struct analog_param_range { + unsigned int min; + unsigned int typ; + unsigned int max; +}; + +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 kobj_uevent_env; + +struct kobj_ns_type_operations; + +struct class { + const char *name; + const struct attribute_group **class_groups; + const struct attribute_group **dev_groups; + int (*dev_uevent)(const struct device *, struct kobj_uevent_env *); + char * (*devnode)(const struct device *, umode_t *); + void (*class_release)(const 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 transport_container; + +struct transport_class { + struct class class; + int (*setup)(struct transport_container *, struct device *, struct device *); + int (*configure)(struct transport_container *, struct device *, struct device *); + int (*remove)(struct transport_container *, struct device *, struct device *); +}; + +struct klist_node; + +struct klist { + spinlock_t k_lock; + struct list_head k_list; + void (*get)(struct klist_node *); + void (*put)(struct klist_node *); +}; + +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 *); + long unsigned int flags; +}; + +struct anon_transport_class { + struct transport_class tclass; + struct attribute_container container; +}; + +struct anon_vma { + struct anon_vma *root; + struct rw_semaphore rwsem; + atomic_t refcount; + long unsigned int num_children; + long unsigned int num_active_vmas; + struct anon_vma *parent; + struct rb_root_cached rb_root; +}; + +struct anon_vma_chain { + struct vm_area_struct *vma; + struct anon_vma *anon_vma; + struct list_head same_vma; + struct rb_node rb; + long unsigned int rb_subtree_last; +}; + +struct anon_vma_name { + struct kref kref; + char name[0]; +}; + +struct apd_private_data; + +struct apd_device_desc { + unsigned int fixed_clk_rate; + struct property_entry *properties; + int (*setup)(struct apd_private_data *); +}; + +struct clk; + +struct apd_private_data { + struct clk *clk; + struct acpi_device *adev; + const struct apd_device_desc *dev_desc; +}; + +struct apei_exec_ins_type; + +struct apei_exec_context { + u32 ip; + u64 value; + u64 var1; + u64 var2; + u64 src_base; + u64 dst_base; + struct apei_exec_ins_type *ins_table; + u32 instructions; + struct acpi_whea_header *action_table; + u32 entries; +}; + +typedef int (*apei_exec_ins_func_t)(struct apei_exec_context *, struct acpi_whea_header *); + +struct apei_exec_ins_type { + u32 flags; + apei_exec_ins_func_t run; +}; + +struct apei_res { + struct list_head list; + long unsigned int start; + long unsigned int end; +}; + +struct apei_resources { + struct list_head iomem; + struct list_head ioport; +}; + +struct aper_size_info_16 { + int size; + int num_entries; + int page_order; + u16 size_value; +}; + +struct aper_size_info_32 { + int size; + int num_entries; + int page_order; + u32 size_value; +}; + +struct aper_size_info_8 { + int size; + int num_entries; + int page_order; + u8 size_value; +}; + +struct aper_size_info_fixed { + int size; + int num_entries; + int page_order; +}; + +struct aper_size_info_lvl2 { + int size; + int num_entries; + u32 size_value; +}; + +struct aperfmperf { + seqcount_t seq; + long unsigned int last_update; + u64 acnt; + u64 mcnt; + u64 aperf; + u64 mperf; +}; + +struct aperture_range { + struct device *dev; + resource_size_t base; + resource_size_t size; + struct list_head lh; + void (*detach)(struct device *); +}; + +struct api_context { + struct completion done; + int status; +}; + +struct apic { + void (*eoi)(void); + void (*native_eoi)(void); + void (*write)(u32, u32); + u32 (*read)(u32); + void (*wait_icr_idle)(void); + u32 (*safe_wait_icr_idle)(void); + void (*send_IPI)(int, int); + void (*send_IPI_mask)(const struct cpumask *, int); + void (*send_IPI_mask_allbutself)(const struct cpumask *, int); + void (*send_IPI_allbutself)(int); + void (*send_IPI_all)(int); + void (*send_IPI_self)(int); + u32 disable_esr: 1; + u32 dest_mode_logical: 1; + u32 x2apic_set_max_apicid: 1; + u32 nmi_to_offline_cpu: 1; + u32 (*calc_dest_apicid)(unsigned int); + u64 (*icr_read)(void); + void (*icr_write)(u32, u32); + u32 max_apic_id; + int (*probe)(void); + int (*acpi_madt_oem_check)(char *, char *); + void (*init_apic_ldr)(void); + u32 (*cpu_present_to_apicid)(int); + u32 (*get_apic_id)(u32); + int (*wakeup_secondary_cpu)(u32, long unsigned int); + int (*wakeup_secondary_cpu_64)(u32, long unsigned int); + char *name; +}; + +struct irq_cfg { + unsigned int dest_apicid; + unsigned int vector; +}; + +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; +}; + +union apic_ir { + long unsigned int map[4]; + u32 regs[8]; +}; + +struct apic_override { + void (*eoi)(void); + void (*native_eoi)(void); + void (*write)(u32, u32); + u32 (*read)(u32); + void (*send_IPI)(int, int); + void (*send_IPI_mask)(const struct cpumask *, int); + void (*send_IPI_mask_allbutself)(const struct cpumask *, int); + void (*send_IPI_allbutself)(int); + void (*send_IPI_all)(int); + void (*send_IPI_self)(int); + u64 (*icr_read)(void); + void (*icr_write)(u32, u32); + int (*wakeup_secondary_cpu)(u32, long unsigned int); + int (*wakeup_secondary_cpu_64)(u32, long unsigned int); +}; + +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 apparmor_notif_common { + __u16 len; + __u16 version; +}; + +struct apparmor_notif { + struct apparmor_notif_common base; + __u16 ntype; + __u8 signalled; + __u8 flags; + __u64 id; + __s32 error; +} __attribute__((packed)); + +struct apparmor_notif_filter { + struct apparmor_notif_common base; + __u32 modeset; + __u32 ns; + __u32 filter; + __u8 data[0]; +}; + +struct apparmor_notif_op { + struct apparmor_notif base; + __u32 allow; + __u32 deny; + pid_t pid; + __u32 label; + __u16 class; + __u16 op; +}; + +struct apparmor_notif_file { + struct apparmor_notif_op base; + uid_t subj_uid; + uid_t obj_uid; + __u32 name; + __u8 data[0]; +}; + +struct apparmor_notif_resp_perm { + struct apparmor_notif base; + __s32 error; + __u32 allow; + __u32 deny; +}; + +struct apparmor_notif_resp_name { + union { + struct apparmor_notif base; + struct apparmor_notif_resp_perm perm; + }; + __u32 name; + __u8 data[0]; +}; + +union apparmor_notif_resp { + struct apparmor_notif base; + struct apparmor_notif_resp_perm perm; + struct apparmor_notif_resp_name name; +}; + +union apparmor_notif_all { + struct apparmor_notif_common common; + struct apparmor_notif_filter filter; + struct apparmor_notif base; + struct apparmor_notif_op op; + struct apparmor_notif_file file; + union apparmor_notif_resp respnse; +}; + +struct workqueue_attrs; + +struct pool_workqueue; + +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 arch_elf_state {}; + +struct arch_hw_breakpoint { + long unsigned int address; + long unsigned int mask; + u8 len; + u8 type; +}; + +struct arch_hybrid_cpu_scale { + long unsigned int capacity; + long unsigned int freq_ratio; +}; + +struct drm_privacy_screen_lookup { + struct list_head list; + const char *dev_id; + const char *con_id; + const char *provider; +}; + +struct arch_init_data { + struct drm_privacy_screen_lookup lookup; + bool (*detect)(void); +}; + +struct arch_io_reserve_memtype_wc_devres { + resource_size_t start; + resource_size_t size; +}; + +struct lbr_entry { + u64 from; + u64 to; + u64 info; +}; + +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 arch_mbm_state { + u64 chunks; + u64 prev_msr; +}; + +struct arch_optimized_insn { + kprobe_opcode_t copied_insn[4]; + kprobe_opcode_t *insn; + size_t size; +}; + +struct arch_shared_info { + long unsigned int max_pfn; + xen_pfn_t pfn_to_mfn_frame_list_list; + long unsigned int nmi_reason; + long unsigned int p2m_cr3; + long unsigned int p2m_vaddr; + long unsigned int p2m_generation; +}; + +struct kprobe; + +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 cpumask { + long unsigned int bits[128]; +}; + +struct arch_tlbflush_unmap_batch { + struct cpumask cpumask; +}; + +struct uprobe_xol_ops; + +struct arch_uprobe { + union { + u8 insn[16]; + u8 ixol[16]; + }; + const struct uprobe_xol_ops *ops; + union { + struct { + s32 offs; + u8 ilen; + u8 opc1; + } branch; + struct { + u8 fixups; + u8 ilen; + } defparam; + struct { + u8 reg_offset; + u8 ilen; + } push; + }; +}; + +struct arch_uprobe_task { + long unsigned int saved_scratch_register; + unsigned int saved_trap_nr; + unsigned int saved_tf; +}; + +struct arch_vcpu_info { + long unsigned int cr2; + long unsigned int pad; +}; + +struct arch_vdso_time_data {}; + +struct arg_dev_net_ip { + struct net *net; + struct in6_addr *addr; +}; + +struct arg_netdev_event { + const struct net_device *dev; + union { + unsigned char nh_flags; + long unsigned int event; + }; +}; + +struct arphdr { + __be16 ar_hrd; + __be16 ar_pro; + unsigned char ar_hln; + unsigned char ar_pln; + __be16 ar_op; +}; + +struct sockaddr { + sa_family_t sa_family; + union { + char sa_data_min[14]; + struct { + struct {} __empty_sa_data; + char sa_data[0]; + }; + }; +}; + +struct arpreq { + struct sockaddr arp_pa; + struct sockaddr arp_ha; + int arp_flags; + struct sockaddr arp_netmask; + char arp_dev[16]; +}; + +struct trace_array; + +struct trace_array_cpu; + +struct array_buffer { + struct trace_array *tr; + struct trace_buffer *buffer; + struct trace_array_cpu *data; + u64 time_start; + int cpu; +}; + +struct regmap; + +struct as3711 { + struct device *dev; + struct regmap *regmap; +}; + +struct as3711_bl_pdata { + bool su1_fb; + int su1_max_uA; + bool su2_fb; + int su2_max_uA; + enum as3711_su2_feedback su2_feedback; + enum as3711_su2_fbprot su2_fbprot; + bool su2_auto_curr1; + bool su2_auto_curr2; + bool su2_auto_curr3; +}; + +struct regulator_init_data; + +struct as3711_regulator_pdata { + struct regulator_init_data *init_data[12]; +}; + +struct as3711_platform_data { + struct as3711_regulator_pdata regulator; + struct as3711_bl_pdata backlight; +}; + +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 assoc_array_ptr; + +struct assoc_array { + struct assoc_array_ptr *root; + long unsigned int nr_leaves_on_tree; +}; + +struct assoc_array_node; + +struct assoc_array_delete_collapse_context { + struct assoc_array_node *node; + const void *skip_leaf; + int slot; +}; + +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 int 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_node { + struct assoc_array_ptr *back_pointer; + u8 parent_slot; + struct assoc_array_ptr *slots[16]; + long unsigned int nr_leaves_on_branch; +}; + +struct assoc_array_ops { + long unsigned int (*get_key_chunk)(const void *, int); + long unsigned int (*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_shortcut { + struct assoc_array_ptr *back_pointer; + int parent_slot; + int skip_to_level; + struct assoc_array_ptr *next_node; + long unsigned int index_key[0]; +}; + +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; + long unsigned int sc_segments; + long unsigned int dissimilarity; + } wrong_shortcut; +}; + +struct asym_cap_data { + struct list_head link; + struct callback_head rcu; + long unsigned int capacity; + long unsigned int cpus[0]; +}; + +struct asymmetric_key_id { + short unsigned int len; + unsigned char data[0]; +}; + +struct asymmetric_key_ids { + void *id[3]; +}; + +struct key_preparsed_payload; + +struct asymmetric_key_parser { + struct list_head link; + struct module *owner; + const char *name; + int (*parse)(struct key_preparsed_payload *); +}; + +struct key; + +struct kernel_pkey_params; + +struct kernel_pkey_query; + +struct public_key_signature; + +struct asymmetric_key_subtype { + struct module *owner; + const char *name; + short unsigned int name_len; + void (*describe)(const struct key *, struct seq_file *); + void (*destroy)(void *, void *); + int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *); + int (*eds_op)(struct kernel_pkey_params *, const void *, void *); + int (*verify_signature)(const struct key *, const struct public_key_signature *); +}; + +struct usb_dev_state; + +struct pid; + +struct urb; + +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 *userbuffer; + void *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 async_domain { + struct list_head pending; + unsigned int registered: 1; +}; + +typedef void (*async_func_t)(void *, async_cookie_t); + +struct async_entry { + struct list_head domain_list; + struct list_head global_list; + struct work_struct work; + async_cookie_t cookie; + async_func_t func; + void *data; + struct async_domain *domain; +}; + +struct io_poll { + struct file *file; + struct wait_queue_head *head; + __poll_t events; + int retries; + struct wait_queue_entry wait; +}; + +struct async_poll { + struct io_poll poll; + struct io_poll *double_poll; +}; + +struct async_scan_data { + struct list_head list; + struct Scsi_Host *shost; + struct completion prev_finished; +}; + +struct ata_acpi_drive { + u32 pio; + u32 dma; +}; + +struct ata_acpi_gtf { + u8 tf[7]; +}; + +struct ata_acpi_gtm { + struct ata_acpi_drive drive[2]; + u32 flags; +}; + +struct ata_port; + +struct ata_device; + +struct ata_acpi_hotplug_context { + struct acpi_hotplug_context hp; + union { + struct ata_port *ap; + struct ata_device *dev; + } data; +}; + +struct ata_bmdma_prd { + __le32 addr; + __le32 flags_len; +}; + +struct ata_cdl { + u8 desc_log_buf[512]; + u8 ncq_sense_log_buf[1024]; +}; + +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_dev_quirks_entry { + const char *model_num; + const char *model_rev; + unsigned int quirks; +}; + +struct ata_ering_entry { + unsigned int eflags; + unsigned int err_mask; + u64 timestamp; +}; + +struct ata_ering { + int cursor; + struct ata_ering_entry ring[32]; +}; + +struct ata_link; + +struct scsi_device; + +struct ata_device { + struct ata_link *link; + unsigned int devno; + unsigned int quirks; + long unsigned int flags; + struct scsi_device *sdev; + void *private_data; + union acpi_object *gtf_cache; + unsigned int gtf_filter; + void *zpodd; + struct device tdev; + u64 n_sectors; + u64 n_native_sectors; + unsigned int class; + long unsigned int unpark_deadline; + u8 pio_mode; + u8 dma_mode; + u8 xfer_mode; + unsigned int xfer_shift; + unsigned int multi_count; + unsigned int max_sectors; + unsigned int cdb_len; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + u16 cylinders; + u16 heads; + u16 sectors; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + union { + u16 id[256]; + u32 gscr[128]; + }; + u8 devslp_timing[8]; + u8 ncq_send_recv_cmds[20]; + u8 ncq_non_data_cmds[64]; + u32 zac_zoned_cap; + u32 zac_zones_optimal_open; + u32 zac_zones_optimal_nonseq; + u32 zac_zones_max_open; + struct ata_cpr_log *cpr_log; + struct ata_cdl *cdl; + int spdn_cnt; + struct ata_ering ering; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u8 sector_buf[512]; +}; + +struct ata_eh_cmd_timeout_ent { + const u8 *commands; + const unsigned int *timeouts; +}; + +struct ata_eh_info { + struct ata_device *dev; + u32 serror; + unsigned int err_mask; + unsigned int action; + unsigned int dev_action[2]; + unsigned int flags; + unsigned int probe_mask; + char desc[80]; + int desc_len; +}; + +struct ata_eh_context { + struct ata_eh_info i; + int tries[2]; + int cmd_timeout_idx[16]; + unsigned int classes[2]; + unsigned int did_probe_mask; + unsigned int unloaded_mask; + unsigned int saved_ncq_enabled; + u8 saved_xfer_mode[2]; + long unsigned int last_reset; +}; + +struct ata_force_param { + const char *name; + u8 cbl; + u8 spd_limit; + unsigned int xfer_mask; + unsigned int quirk_on; + unsigned int quirk_off; + unsigned int pflags_on; + u16 lflags_on; + u16 lflags_off; +}; + +struct ata_force_ent { + int port; + int device; + struct ata_force_param param; +}; + +struct ata_port_operations; + +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; + long unsigned int flags; + struct kref kref; + struct mutex eh_mutex; + struct task_struct *eh_owner; + struct ata_port *simplex_claimed; + struct ata_port *ports[0]; +}; + +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 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_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_link { + struct ata_port *ap; + int pmp; + struct device tdev; + unsigned int active_tag; + u32 sactive; + unsigned int flags; + u32 saved_scontrol; + unsigned int hw_sata_spd_limit; + unsigned int sata_spd_limit; + unsigned int sata_spd; + enum ata_lpm_policy lpm_policy; + struct ata_eh_info eh_info; + struct ata_eh_context eh_context; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct ata_device device[2]; + long unsigned int last_lpm_change; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct ata_taskfile { + long unsigned int flags; + u8 protocol; + u8 ctl; + u8 hob_feature; + u8 hob_nsect; + u8 hob_lbal; + u8 hob_lbam; + u8 hob_lbah; + union { + u8 error; + u8 feature; + }; + u8 nsect; + u8 lbal; + u8 lbam; + u8 lbah; + u8 device; + union { + u8 status; + u8 command; + }; + u32 auxiliary; +}; + +struct scatterlist { + long unsigned int page_link; + unsigned int offset; + unsigned int length; + dma_addr_t dma_address; + unsigned int dma_length; + unsigned int dma_flags; +}; + +struct ata_queued_cmd; + +typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *); + +struct scsi_cmnd; + +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]; + long unsigned int 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_port_stats { + long unsigned int unhandled_irq; + long unsigned int idle_irq; + long unsigned int rw_reqbuf; +}; + +struct ata_port { + struct Scsi_Host *scsi_host; + struct ata_port_operations *ops; + spinlock_t *lock; + long unsigned int flags; + unsigned int pflags; + unsigned int print_id; + unsigned int port_no; + struct ata_ioports ioaddr; + u8 ctl; + u8 last_ctl; + struct ata_link *sff_pio_task_link; + struct delayed_work sff_pio_task; + struct ata_bmdma_prd *bmdma_prd; + dma_addr_t bmdma_prd_dma; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + unsigned int cbl; + struct ata_queued_cmd qcmd[33]; + u64 qc_active; + int nr_active_links; + long: 64; + long: 64; + struct ata_link link; + struct ata_link *slave_link; + int nr_pmp_links; + struct ata_link *pmp_link; + struct ata_link *excl_link; + struct ata_port_stats stats; + struct ata_host *host; + struct device *dev; + struct device tdev; + struct mutex scsi_scan_mutex; + struct delayed_work hotplug_task; + struct delayed_work scsi_rescan_task; + unsigned int hsm_task_state; + struct list_head eh_done_q; + wait_queue_head_t eh_wait_q; + int eh_tries; + struct completion park_req_pending; + pm_message_t pm_mesg; + enum ata_lpm_policy target_lpm_policy; + struct timer_list fastdrain_timer; + unsigned int fastdrain_cnt; + async_cookie_t cookie; + int em_message_type; + void *private_data; + struct ata_acpi_gtm __acpi_init_gtm; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct ata_port_info { + long unsigned int flags; + long unsigned int link_flags; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + struct ata_port_operations *port_ops; + void *private_data; +}; + +typedef int (*ata_prereset_fn_t)(struct ata_link *, long unsigned int); + +typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, long unsigned int); + +typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); + +struct ata_port_operations { + int (*qc_defer)(struct ata_queued_cmd *); + int (*check_atapi_dma)(struct ata_queued_cmd *); + enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *); + unsigned int (*qc_issue)(struct ata_queued_cmd *); + void (*qc_fill_rtf)(struct ata_queued_cmd *); + void (*qc_ncq_fill_rtf)(struct ata_port *, u64); + int (*cable_detect)(struct ata_port *); + unsigned int (*mode_filter)(struct ata_device *, unsigned int); + void (*set_piomode)(struct ata_port *, struct ata_device *); + void (*set_dmamode)(struct ata_port *, struct ata_device *); + int (*set_mode)(struct ata_link *, struct ata_device **); + unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, __le16 *); + void (*dev_config)(struct ata_device *); + void (*freeze)(struct ata_port *); + void (*thaw)(struct ata_port *); + ata_prereset_fn_t prereset; + ata_reset_fn_t softreset; + ata_reset_fn_t hardreset; + ata_postreset_fn_t postreset; + ata_prereset_fn_t pmp_prereset; + ata_reset_fn_t pmp_softreset; + ata_reset_fn_t pmp_hardreset; + ata_postreset_fn_t pmp_postreset; + void (*error_handler)(struct ata_port *); + void (*lost_interrupt)(struct ata_port *); + void (*post_internal_cmd)(struct ata_queued_cmd *); + void (*sched_eh)(struct ata_port *); + void (*end_eh)(struct ata_port *); + int (*scr_read)(struct ata_link *, unsigned int, u32 *); + int (*scr_write)(struct ata_link *, unsigned int, u32); + void (*pmp_attach)(struct ata_port *); + void (*pmp_detach)(struct ata_port *); + int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int); + int (*port_suspend)(struct ata_port *, pm_message_t); + int (*port_resume)(struct ata_port *); + int (*port_start)(struct ata_port *); + void (*port_stop)(struct ata_port *); + void (*host_stop)(struct ata_host *); + void (*sff_dev_select)(struct ata_port *, unsigned int); + void (*sff_set_devctl)(struct ata_port *, u8); + u8 (*sff_check_status)(struct ata_port *); + u8 (*sff_check_altstatus)(struct ata_port *); + void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *); + void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *); + void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *); + unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int); + void (*sff_irq_on)(struct ata_port *); + bool (*sff_irq_check)(struct ata_port *); + void (*sff_irq_clear)(struct ata_port *); + void (*sff_drain_fifo)(struct ata_queued_cmd *); + void (*bmdma_setup)(struct ata_queued_cmd *); + void (*bmdma_start)(struct ata_queued_cmd *); + void (*bmdma_stop)(struct ata_queued_cmd *); + u8 (*bmdma_status)(struct ata_port *); + ssize_t (*em_show)(struct ata_port *, char *); + ssize_t (*em_store)(struct ata_port *, const char *, size_t); + ssize_t (*sw_activity_show)(struct ata_device *, char *); + ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity); + ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t); + const struct ata_port_operations *inherits; +}; + +struct ata_show_ering_arg { + char *buf; + int written; +}; + +struct ata_timing { + short unsigned int mode; + short unsigned int setup; + short unsigned int act8b; + short unsigned int rec8b; + short unsigned int cyc8b; + short unsigned int active; + short unsigned int recover; + short unsigned int dmack_hold; + short unsigned int cycle; + short unsigned int udma; +}; + +struct ata_xfer_ent { + int shift; + int bits; + u8 base; +}; + +struct ps2dev; + +typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); + +typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); + +struct serio; + +struct ps2dev { + struct serio *serio; + struct mutex cmd_mutex; + wait_queue_head_t wait; + long unsigned int flags; + u8 cmdbuf[8]; + u8 cmdcnt; + u8 nak; + ps2_pre_receive_handler_t pre_receive_handler; + ps2_receive_handler_t receive_handler; +}; + +struct vivaldi_data { + u32 function_row_physmap[24]; + unsigned int num_function_row_keys; +}; + +struct atkbd { + struct ps2dev ps2dev; + struct input_dev *dev; + char name[64]; + char phys[32]; + short unsigned int id; + short unsigned int keycode[512]; + long unsigned int 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; + long unsigned int xl_bit; + unsigned int last; + long unsigned int time; + long unsigned int err_count; + struct delayed_work event_work; + long unsigned int event_jiffies; + long unsigned int event_mask; + struct mutex mutex; + struct vivaldi_data vdata; +}; + +struct atl_err { + u64 addr; + u64 ipid; + u32 cpu; +}; + +struct atomic_notifier_head { + spinlock_t lock; + struct notifier_block *head; +}; + +struct attribute_group { + const char *name; + umode_t (*is_visible)(struct kobject *, struct attribute *, int); + umode_t (*is_bin_visible)(struct kobject *, const struct bin_attribute *, int); + size_t (*bin_size)(struct kobject *, const struct bin_attribute *, int); + struct attribute **attrs; + union { + struct bin_attribute **bin_attrs; + const struct bin_attribute * const *bin_attrs_new; + }; +}; + +struct audit_aux_data { + struct audit_aux_data *next; + int type; +}; + +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_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 lsm_prop_selinux { + u32 secid; +}; + +struct smack_known; + +struct lsm_prop_smack { + struct smack_known *skp; +}; + +struct lsm_prop_apparmor { + struct aa_label *label; +}; + +struct lsm_prop_bpf { + u32 secid; +}; + +struct lsm_prop { + struct lsm_prop_selinux selinux; + struct lsm_prop_smack smack; + struct lsm_prop_apparmor apparmor; + struct lsm_prop_bpf bpf; +}; + +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]; + struct lsm_prop target_ref[16]; + char target_comm[256]; + int pid_count; +}; + +struct timespec64 { + time64_t tv_sec; + long int tv_nsec; +}; + +struct audit_stamp { + struct timespec64 ctime; + unsigned int serial; +}; + +struct audit_context; + +struct audit_buffer { + struct sk_buff *skb; + struct sk_buff_head skb_list; + struct audit_context *ctx; + struct audit_stamp stamp; + gfp_t gfp_mask; +}; + +struct audit_cache { + const struct cred *ad_subj_cred; + u64 ktime_ns_expiration[41]; +}; + +struct audit_tree; + +struct audit_node { + struct list_head list; + struct audit_tree *owner; + unsigned int index; +}; + +struct fsnotify_mark; + +struct audit_chunk { + struct list_head hash; + long unsigned int 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 filename; + +struct audit_names { + struct list_head list; + struct filename *name; + int name_len; + bool hidden; + long unsigned int ino; + dev_t dev; + umode_t mode; + kuid_t uid; + kgid_t gid; + dev_t rdev; + struct lsm_prop oprop; + struct audit_cap_data fcap; + unsigned int fcap_ver; + unsigned char type; + bool should_free; +}; + +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 open_how { + __u64 flags; + __u64 mode; + __u64 resolve; +}; + +struct audit_ntp_val { + long long int oldval; + long long int newval; +}; + +struct audit_ntp_data { + struct audit_ntp_val vals[6]; +}; + +struct audit_proctitle { + int len; + char *value; +}; + +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; + struct audit_stamp stamp; + int major; + int uring_op; + long unsigned int argv[4]; + long int 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; + long unsigned int personality; + int arch; + pid_t target_pid; + kuid_t target_auid; + kuid_t target_uid; + unsigned int target_sessionid; + struct lsm_prop target_ref; + 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 int args[6]; + } socketcall; + struct { + kuid_t uid; + kgid_t gid; + umode_t mode; + struct lsm_prop oprop; + int has_perm; + uid_t perm_uid; + gid_t perm_gid; + umode_t perm_mode; + long unsigned int qbytes; + } ipc; + struct { + mqd_t mqdes; + struct mq_attr mqstat; + } mq_getsetattr; + struct { + mqd_t mqdes; + int sigev_signo; + } mq_notify; + struct { + mqd_t mqdes; + size_t msg_len; + unsigned int msg_prio; + struct timespec64 abs_timeout; + } mq_sendrecv; + struct { + int oflag; + umode_t mode; + struct mq_attr attr; + } mq_open; + struct { + pid_t pid; + struct audit_cap_data cap; + } capset; + struct { + int fd; + int flags; + } mmap; + struct open_how openat2; + struct { + int argc; + } execve; + struct { + char *name; + } module; + struct { + struct audit_ntp_data ntp_data; + struct timespec64 tk_injoffset; + } time; + }; + int fds[2]; + struct audit_proctitle proctitle; +}; + +struct audit_ctl_mutex { + struct mutex lock; + void *owner; +}; + +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_entry { + struct list_head list; + struct callback_head rcu; + struct audit_krule rule; +}; + +struct audit_features { + __u32 vers; + __u32 mask; + __u32 features; + __u32 lock; +}; + +struct audit_field { + u32 type; + union { + u32 val; + kuid_t uid; + kgid_t gid; + struct { + char *lsm_str; + void *lsm_rule; + }; + }; + u32 op; +}; + +struct fsnotify_group; + +struct fsnotify_mark_connector; + +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 audit_fsnotify_mark { + dev_t dev; + long unsigned int ino; + char *path; + struct fsnotify_mark mark; + struct audit_krule *rule; +}; + +struct audit_net { + struct sock *sk; +}; + +struct audit_netlink_list { + __u32 portid; + struct net *net; + struct sk_buff_head q; +}; + +struct audit_nfcfgop_tab { + enum audit_nfcfgop op; + const char *s; +}; + +struct audit_parent { + struct list_head watches; + struct fsnotify_mark mark; +}; + +struct audit_reply { + __u32 portid; + struct net *net; + struct sk_buff *skb; +}; + +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_sig_info { + uid_t uid; + pid_t pid; + char ctx[0]; +}; + +struct audit_status { + __u32 mask; + __u32 enabled; + __u32 failure; + __u32 pid; + __u32 rate_limit; + __u32 backlog_limit; + __u32 lost; + __u32 backlog; + union { + __u32 version; + __u32 feature_bitmap; + }; + __u32 backlog_wait_time; + __u32 backlog_wait_time_actual; +}; + +struct 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_tree_refs { + struct audit_tree_refs *next; + struct audit_chunk *c[31]; +}; + +struct audit_tty_status { + __u32 enabled; + __u32 log_passwd; +}; + +struct audit_watch { + refcount_t count; + dev_t dev; + char *path; + long unsigned int ino; + struct audit_parent *parent; + struct list_head wlist; + struct list_head rules; +}; + +struct auditd_connection { + struct pid *pid; + u32 portid; + struct net *net; + struct callback_head rcu; +}; + +struct auth_cred { + const struct cred *cred; + const char *principal; +}; + +struct auth_ops; + +struct auth_domain { + struct kref ref; + struct hlist_node hash; + char *name; + struct auth_ops *flavour; + struct callback_head callback_head; +}; + +struct svc_rqst; + +struct auth_ops { + char *name; + struct module *owner; + int flavour; + enum svc_auth_status (*accept)(struct svc_rqst *); + int (*release)(struct svc_rqst *); + void (*domain_release)(struct auth_domain *); + enum svc_auth_status (*set_client)(struct svc_rqst *); + rpc_authflavor_t (*pseudoflavor)(struct svc_rqst *); +}; + +struct auto_mode_param { + int qp_type; +}; + +struct auto_movable_group_stats { + long unsigned int movable_pages; + long unsigned int req_kernel_early_pages; +}; + +struct auto_movable_stats { + long unsigned int kernel_early_pages; + long unsigned int movable_pages; +}; + +struct task_group; + +struct autogroup { + struct kref kref; + struct task_group *tg; + struct rw_semaphore lock; + long unsigned int id; + int nice; +}; + +struct automaton_wwnr { + char *state_names[2]; + char *event_names[3]; + unsigned char function[6]; + unsigned char initial_state; + bool final_states[2]; +}; + +struct auxiliary_device { + struct device dev; + const char *name; + u32 id; + struct { + struct xarray irqs; + struct mutex lock; + bool irq_dir_exists; + } sysfs; +}; + +struct auxiliary_device_id { + char name[32]; + kernel_ulong_t driver_data; +}; + +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_irq_info { + struct device_attribute sysfs_attr; + char name[11]; +}; + +struct av_decision { + u32 allowed; + u32 auditallow; + u32 auditdeny; + u32 seqno; + u32 flags; +}; + +struct hlist_head { + struct hlist_node *first; +}; + +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 avc_cache_stats { + unsigned int lookups; + unsigned int misses; + unsigned int allocations; + unsigned int reclaims; + unsigned int frees; +}; + +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 extended_perms_data; + +struct extended_perms_decision { + u8 used; + u8 driver; + u8 base_perm; + struct extended_perms_data *allowed; + struct extended_perms_data *auditallow; + struct extended_perms_data *dontaudit; +}; + +struct avc_xperms_decision_node { + struct extended_perms_decision xpd; + struct list_head xpd_list; +}; + +struct extended_perms_data { + u32 p[8]; +}; + +struct extended_perms { + u16 len; + u8 base_perms; + struct extended_perms_data drivers; +}; + +struct avc_xperms_node { + struct extended_perms xp; + struct list_head xpd_head; +}; + +struct avtab_node; + +struct avtab { + struct avtab_node **htable; + u32 nel; + u32 nslot; + u32 mask; +}; + +struct avtab_extended_perms; + +struct avtab_datum { + union { + u32 data; + struct avtab_extended_perms *xperms; + } u; +}; + +struct avtab_extended_perms { + u8 specified; + u8 driver; + struct extended_perms_data perms; +}; + +struct avtab_key { + u16 source_type; + u16 target_type; + u16 target_class; + u16 specified; +}; + +struct avtab_node { + struct avtab_key key; + struct avtab_datum datum; + struct avtab_node *next; +}; + +struct ctl_table_header; + +struct ax25_dev { + struct list_head list; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct net_device *forward; + struct ctl_table_header *sysheader; + int values[14]; + ax25_dama_info dama; + refcount_t refcount; + bool device_up; + struct callback_head rcu; +}; + +struct regmap_irq_chip_data; + +struct mfd_cell; + +struct regmap_config; + +struct regmap_irq_chip; + +struct axp20x_dev { + struct device *dev; + int irq; + long unsigned int irq_flags; + struct regmap *regmap; + struct regmap_irq_chip_data *regmap_irqc; + enum axp20x_variants variant; + int nr_cells; + const struct mfd_cell *cells; + const struct regmap_config *regmap_cfg; + const struct regmap_irq_chip *regmap_irq_chip; +}; + +struct backing_aio { + struct kiocb iocb; + refcount_t ref; + struct kiocb *orig_iocb; + void (*end_write)(struct kiocb *, ssize_t); + struct work_struct work; + long int res; +}; + +struct percpu_counter { + raw_spinlock_t lock; + s64 count; + struct list_head list; + s32 *counters; +}; + +struct fprop_local_percpu { + struct percpu_counter events; + unsigned int period; + raw_spinlock_t lock; +}; + +struct percpu_ref_data; + +struct percpu_ref { + long unsigned int percpu_count_ptr; + struct percpu_ref_data *data; +}; + +struct backing_dev_info; + +struct cgroup_subsys_state; + +struct bdi_writeback { + struct backing_dev_info *bdi; + long unsigned int state; + long unsigned int 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]; + long unsigned int bw_time_stamp; + long unsigned int dirtied_stamp; + long unsigned int written_stamp; + long unsigned int write_bandwidth; + long unsigned int avg_write_bandwidth; + long unsigned int dirty_ratelimit; + long unsigned int balanced_dirty_ratelimit; + struct fprop_local_percpu completions; + int dirty_exceeded; + enum wb_reason start_all_reason; + spinlock_t work_lock; + struct list_head work_list; + struct delayed_work dwork; + struct delayed_work bw_dwork; + struct list_head bdi_node; + struct percpu_ref refcnt; + struct fprop_local_percpu memcg_completions; + struct cgroup_subsys_state *memcg_css; + struct cgroup_subsys_state *blkcg_css; + struct list_head memcg_node; + struct list_head blkcg_node; + struct list_head b_attached; + struct list_head offline_node; + union { + struct work_struct release_work; + struct callback_head rcu; + }; +}; + +struct backing_dev_info { + u64 id; + struct rb_node rb_node; + struct list_head bdi_list; + long unsigned int ra_pages; + long unsigned int io_pages; + struct kref refcnt; + unsigned int capabilities; + unsigned int min_ratio; + unsigned int max_ratio; + unsigned int max_prop_frac; + atomic_long_t tot_write_bandwidth; + long unsigned int last_bdp_sleep; + struct bdi_writeback wb; + struct list_head wb_list; + struct xarray cgwb_tree; + struct mutex cgwb_release_mutex; + struct rw_semaphore wb_switch_rwsem; + wait_queue_head_t wb_waitq; + struct device *dev; + char dev_name[64]; + struct device *owner; + struct timer_list laptop_mode_wb_timer; + struct dentry *debug_dir; +}; + +struct file_ra_state { + long unsigned int start; + unsigned int size; + unsigned int async_size; + unsigned int ra_pages; + unsigned int mmap_miss; + loff_t prev_pos; +}; + +struct fown_struct; + +struct file { + file_ref_t f_ref; + spinlock_t f_lock; + fmode_t f_mode; + const struct file_operations *f_op; + struct address_space *f_mapping; + void *private_data; + struct inode *f_inode; + unsigned int f_flags; + unsigned int f_iocb_flags; + const struct cred *f_cred; + struct path f_path; + union { + struct mutex f_pos_lock; + u64 f_pipe; + }; + loff_t f_pos; + void *f_security; + struct fown_struct *f_owner; + errseq_t f_wb_err; + errseq_t f_sb_err; + struct hlist_head *f_ep; + union { + struct callback_head f_task_work; + struct llist_node f_llist; + struct file_ra_state f_ra; + freeptr_t f_freeptr; + }; +}; + +struct backing_file { + struct file file; + union { + struct path user_path; + freeptr_t bf_freeptr; + }; +}; + +struct backing_file_ctx { + const struct cred *cred; + void (*accessed)(struct file *); + void (*end_write)(struct kiocb *, ssize_t); +}; + +struct backlight_properties { + int brightness; + int max_brightness; + int power; + enum backlight_type type; + unsigned int state; + enum backlight_scale scale; +}; + +struct backlight_ops; + +struct backlight_device { + struct backlight_properties props; + struct mutex update_lock; + struct mutex ops_lock; + const struct backlight_ops *ops; + struct notifier_block fb_notif; + struct list_head entry; + struct device dev; + bool fb_bl_on[32]; + int use_count; +}; + +struct backlight_ops { + unsigned int options; + int (*update_status)(struct backlight_device *); + int (*get_brightness)(struct backlight_device *); + bool (*controls_device)(struct backlight_device *, struct device *); +}; + +struct bpf_verifier_env; + +struct backtrack_state { + struct bpf_verifier_env *env; + u32 frame; + u32 reg_masks[8]; + u64 stack_masks[8]; +}; + +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 badblocks_context { + sector_t start; + sector_t len; + int ack; +}; + +struct badrange { + struct list_head list; + spinlock_t lock; +}; + +struct badrange_entry { + u64 start; + u64 length; + struct list_head list; +}; + +struct balance_callback { + struct balance_callback *next; + void (*func)(struct rq *); +}; + +struct balloon_dev_info { + long unsigned int isolated_pages; + spinlock_t pages_lock; + struct list_head pages; + int (*migratepage)(struct balloon_dev_info *, struct page *, struct page *, enum migrate_mode); +}; + +struct balloon_stats { + long unsigned int current_pages; + long unsigned int target_pages; + long unsigned int target_unpopulated; + long unsigned int balloon_low; + long unsigned int balloon_high; + long unsigned int total_pages; + long unsigned int schedule_delay; + long unsigned int max_schedule_delay; + long unsigned int retry_count; + long unsigned int max_retry_count; +}; + +struct batadv_unicast_packet { + __u8 packet_type; + __u8 version; + __u8 ttl; + __u8 ttvn; + __u8 dest[6]; +}; + +struct batch_u16 { + u16 entropy[48]; + local_lock_t lock; + long unsigned int generation; + unsigned int position; +}; + +struct batch_u32 { + u32 entropy[24]; + local_lock_t lock; + long unsigned int generation; + unsigned int position; +}; + +struct batch_u64 { + u64 entropy[12]; + local_lock_t lock; + long unsigned int generation; + unsigned int position; +}; + +struct batch_u8 { + u8 entropy[96]; + local_lock_t lock; + long unsigned int generation; + unsigned int position; +}; + +struct bd_holder_disk { + struct list_head list; + struct kobject *holder_dir; + int refcnt; +}; + +struct gendisk; + +struct request_queue; + +struct disk_stats; + +struct blk_holder_ops; + +struct partition_meta_info; + +struct block_device { + sector_t bd_start_sect; + sector_t bd_nr_sectors; + struct gendisk *bd_disk; + struct request_queue *bd_queue; + struct disk_stats *bd_stats; + long unsigned int bd_stamp; + atomic_t __bd_flags; + dev_t bd_dev; + struct address_space *bd_mapping; + atomic_t bd_openers; + spinlock_t bd_size_lock; + void *bd_claiming; + void *bd_holder; + const struct blk_holder_ops *bd_holder_ops; + struct mutex bd_holder_lock; + int bd_holders; + struct kobject *bd_holder_dir; + atomic_t bd_fsfreeze_count; + struct mutex bd_fsfreeze_mutex; + struct partition_meta_info *bd_meta_info; + int bd_writers; + void *bd_security; + struct device bd_device; +}; + +struct posix_acl; + +struct inode_operations; + +struct super_block; + +struct file_lock_context; + +struct pipe_inode_info; + +struct cdev; + +struct fscrypt_inode_info; + +struct fsverity_info; + +struct inode { + umode_t i_mode; + short unsigned int 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; + long unsigned int i_ino; + union { + const unsigned int i_nlink; + unsigned int __i_nlink; + }; + dev_t i_rdev; + loff_t i_size; + time64_t i_atime_sec; + time64_t i_mtime_sec; + time64_t i_ctime_sec; + u32 i_atime_nsec; + u32 i_mtime_nsec; + u32 i_ctime_nsec; + u32 i_generation; + spinlock_t i_lock; + short unsigned int i_bytes; + u8 i_blkbits; + enum rw_hint i_write_hint; + blkcnt_t i_blocks; + u32 i_state; + struct rw_semaphore i_rwsem; + long unsigned int dirtied_when; + long unsigned int dirtied_time_when; + struct hlist_node i_hash; + struct list_head i_io_list; + struct bdi_writeback *i_wb; + int i_wb_frn_winner; + u16 i_wb_frn_avg_time; + u16 i_wb_frn_history; + struct list_head i_lru; + struct list_head i_sb_list; + struct list_head i_wb_list; + union { + 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; + union { + struct list_head i_devices; + int i_linklen; + }; + union { + struct pipe_inode_info *i_pipe; + struct cdev *i_cdev; + char *i_link; + unsigned int i_dir_seq; + }; + __u32 i_fsnotify_mask; + struct fsnotify_mark_connector *i_fsnotify_marks; + struct fscrypt_inode_info *i_crypt_info; + struct fsverity_info *i_verity_info; + void *i_private; +}; + +struct bdev_inode { + struct block_device bdev; + struct inode vfs_inode; +}; + +struct bgl_lock { + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bgpio_pdata { + const char *label; + int base; + int ngpio; +}; + +struct bh_accounting { + int nr; + int ratelimit; +}; + +struct bh_lru { + struct buffer_head *bhs[16]; +}; + +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 binfmt_misc { + struct list_head entries; + rwlock_t entries_lock; + bool enabled; +}; + +struct bvec_iter { + sector_t bi_sector; + unsigned int bi_size; + unsigned int bi_idx; + unsigned int bi_bvec_done; +} __attribute__((packed)); + +struct bio; + +typedef void bio_end_io_t(struct bio *); + +struct bio_issue { + u64 value; +}; + +struct bio_vec { + struct page *bv_page; + unsigned int bv_len; + unsigned int bv_offset; +}; + +struct blkcg_gq; + +struct bio_crypt_ctx; + +struct bio_integrity_payload; + +struct bio_set; + +struct bio { + struct bio *bi_next; + struct block_device *bi_bdev; + blk_opf_t bi_opf; + short unsigned int bi_flags; + short unsigned int bi_ioprio; + enum rw_hint bi_write_hint; + blk_status_t bi_status; + atomic_t __bi_remaining; + struct bvec_iter bi_iter; + union { + blk_qc_t bi_cookie; + unsigned int __bi_nr_segments; + }; + bio_end_io_t *bi_end_io; + void *bi_private; + struct blkcg_gq *bi_blkg; + struct bio_issue bi_issue; + u64 bi_iocost_cost; + struct bio_crypt_ctx *bi_crypt_context; + struct bio_integrity_payload *bi_integrity; + short unsigned int bi_vcnt; + short unsigned int 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_crypto_key; + +struct bio_crypt_ctx { + const struct blk_crypto_key *bc_key; + u64 bc_dun[4]; +}; + +struct bio_fallback_crypt_ctx { + struct bio_crypt_ctx crypt_ctx; + struct bvec_iter crypt_iter; + union { + struct { + struct work_struct work; + struct bio *bio; + }; + struct { + void *bi_private_orig; + bio_end_io_t *bi_end_io_orig; + }; + }; +}; + +struct bio_integrity_payload { + struct bio *bip_bio; + struct bvec_iter bip_iter; + short unsigned int bip_vcnt; + short unsigned int bip_max_vcnt; + short unsigned int bip_flags; + u16 app_tag; + struct bvec_iter bio_iter; + struct work_struct bip_work; + struct bio_vec *bip_vec; + struct bio_vec bip_inline_vecs[0]; +}; + +struct bio_list { + struct bio *head; + struct bio *tail; +}; + +struct iovec { + void *iov_base; + __kernel_size_t iov_len; +}; + +struct kvec; + +struct folio_queue; + +struct iov_iter { + u8 iter_type; + bool nofault; + bool data_source; + size_t iov_offset; + union { + struct iovec __ubuf_iovec; + struct { + union { + const struct iovec *__iov; + const struct kvec *kvec; + const struct bio_vec *bvec; + const struct folio_queue *folioq; + struct xarray *xarray; + void *ubuf; + }; + size_t count; + }; + }; + union { + long unsigned int nr_segs; + u8 folioq_slot; + loff_t xarray_start; + }; +}; + +struct bio_map_data { + bool is_our_pages: 1; + bool is_null_mapped: 1; + struct iov_iter iter; + struct iovec iov[0]; +}; + +struct bio_post_read_ctx { + struct bio *bio; + struct work_struct work; + unsigned int cur_step; + unsigned int enabled_steps; +}; + +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 kmem_cache; + +struct bio_set { + struct kmem_cache *bio_slab; + unsigned int front_pad; + struct bio_alloc_cache *cache; + mempool_t bio_pool; + mempool_t bvec_pool; + mempool_t bio_integrity_pool; + mempool_t bvec_integrity_pool; + unsigned int back_pad; + spinlock_t rescue_lock; + struct bio_list rescue_list; + struct work_struct rescue_work; + struct workqueue_struct *rescue_workqueue; + struct hlist_node cpuhp_dead; +}; + +struct bio_slab { + struct kmem_cache *slab; + unsigned int slab_ref; + unsigned int slab_size; + char name[12]; +}; + +struct biovec_slab { + int nr_vecs; + char *name; + struct kmem_cache *slab; +}; + +struct bitmap_page; + +struct bitmap_counts { + spinlock_t lock; + struct bitmap_page *bp; + long unsigned int pages; + long unsigned int missing_pages; + long unsigned int chunkshift; + long unsigned int chunks; +}; + +struct bitmap_storage { + struct file *file; + struct page *sb_page; + long unsigned int sb_index; + struct page **filemap; + long unsigned int *filemap_attr; + long unsigned int file_pages; + long unsigned int bytes; +}; + +struct mddev; + +struct bitmap { + struct bitmap_counts counts; + struct mddev *mddev; + __u64 events_cleared; + int need_sync; + struct bitmap_storage storage; + long unsigned int flags; + int allclean; + atomic_t behind_writes; + long unsigned int behind_writes_used; + long unsigned int daemon_lastrun; + long unsigned int 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 md_bitmap_stats; + +struct bitmap_operations { + bool (*enabled)(struct mddev *); + int (*create)(struct mddev *, int); + int (*resize)(struct mddev *, sector_t, int, bool); + int (*load)(struct mddev *); + void (*destroy)(struct mddev *); + void (*flush)(struct mddev *); + void (*write_all)(struct mddev *); + void (*dirty_bits)(struct mddev *, long unsigned int, long unsigned int); + void (*unplug)(struct mddev *, bool); + void (*daemon_work)(struct mddev *); + void (*start_behind_write)(struct mddev *); + void (*end_behind_write)(struct mddev *); + void (*wait_behind_writes)(struct mddev *); + int (*startwrite)(struct mddev *, sector_t, long unsigned int); + void (*endwrite)(struct mddev *, sector_t, long unsigned int); + bool (*start_sync)(struct mddev *, sector_t, sector_t *, bool); + void (*end_sync)(struct mddev *, sector_t, sector_t *); + void (*cond_end_sync)(struct mddev *, sector_t, bool); + void (*close_sync)(struct mddev *); + void (*update_sb)(void *); + int (*get_stats)(void *, struct md_bitmap_stats *); + void (*sync_with_cluster)(struct mddev *, sector_t, sector_t, sector_t, sector_t); + void * (*get_from_slot)(struct mddev *, int); + int (*copy_from_slot)(struct mddev *, int, sector_t *, sector_t *, bool); + void (*set_pages)(void *, long unsigned int); + void (*free)(void *); +}; + +struct bitmap_page { + char *map; + unsigned int hijacked: 1; + unsigned int pending: 1; + unsigned int count: 30; +}; + +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 bitmap_unplug_work { + struct work_struct work; + struct bitmap *bitmap; + struct completion *done; +}; + +struct blacklist_entry { + struct list_head next; + char *buf; +}; + +struct blake2s_state { + u32 h[8]; + u32 t[2]; + u32 f[2]; + u8 buf[64]; + unsigned int buflen; + unsigned int outlen; +}; + +struct blk_crypto_profile; + +struct blk_crypto_attr { + struct attribute attr; + ssize_t (*show)(struct blk_crypto_profile *, struct blk_crypto_attr *, char *); +}; + +struct blk_crypto_config { + enum blk_crypto_mode_num crypto_mode; + unsigned int data_unit_size; + unsigned int dun_bytes; +}; + +struct crypto_skcipher; + +struct blk_crypto_fallback_keyslot { + enum blk_crypto_mode_num crypto_mode; + struct crypto_skcipher *tfms[5]; +}; + +union blk_crypto_iv { + __le64 dun[4]; + u8 bytes[32]; +}; + +struct blk_crypto_key { + struct blk_crypto_config crypto_cfg; + unsigned int data_unit_size_bits; + unsigned int size; + u8 raw[64]; +}; + +struct blk_crypto_keyslot { + atomic_t slot_refs; + struct list_head idle_slot_node; + struct hlist_node hash_node; + const struct blk_crypto_key *key; + struct blk_crypto_profile *profile; +}; + +struct blk_crypto_kobj { + struct kobject kobj; + struct blk_crypto_profile *profile; +}; + +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_mode { + const char *name; + const char *cipher_str; + unsigned int keysize; + unsigned int ivsize; +}; + +struct blk_crypto_profile { + struct blk_crypto_ll_ops ll_ops; + unsigned int max_dun_bytes_supported; + unsigned int modes_supported[5]; + struct device *dev; + unsigned int num_slots; + struct rw_semaphore lock; + struct lock_class_key lockdep_key; + wait_queue_head_t idle_slots_wait_queue; + struct list_head idle_slots; + spinlock_t idle_slots_lock; + struct hlist_head *slot_hashtable; + unsigned int log_slot_ht_size; + struct blk_crypto_keyslot *slots; +}; + +struct blk_expired_data { + bool has_timedout_rq; + long unsigned int next; + long unsigned int timeout_start; +}; + +struct request; + +struct blk_flush_queue { + spinlock_t mq_flush_lock; + unsigned int flush_pending_idx: 1; + unsigned int flush_running_idx: 1; + blk_status_t rq_status; + long unsigned int flush_pending_since; + struct list_head flush_queue[2]; + long unsigned int flush_data_in_flight; + struct request *flush_rq; +}; + +struct blk_holder_ops { + void (*mark_dead)(struct block_device *, bool); + void (*sync)(struct block_device *); + int (*freeze)(struct block_device *); + int (*thaw)(struct block_device *); +}; + +struct blk_independent_access_range; + +struct blk_ia_range_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_independent_access_range *, char *); +}; + +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 blk_integrity { + unsigned char flags; + enum blk_integrity_checksum csum_type; + unsigned char tuple_size; + unsigned char pi_offset; + unsigned char interval_exp; + unsigned char tag_size; +}; + +struct blk_integrity_iter { + void *prot_buf; + void *data_buf; + sector_t seed; + unsigned int data_size; + short unsigned int interval; + const char *disk_name; +}; + +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_io_trace_remap { + __be32 device_from; + __be32 device_to; + __be64 sector_from; +}; + +struct blk_iou_cmd { + int res; + bool nowait; +}; + +struct blk_major_name { + struct blk_major_name *next; + int major; + char name[16]; + void (*probe)(dev_t); +}; + +struct rq_list; + +struct blk_mq_ctx; + +struct blk_mq_hw_ctx; + +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 rq_list *cached_rqs; + struct blk_mq_ctx *ctx; + struct blk_mq_hw_ctx *hctx; +}; + +struct blk_mq_ctxs; + +struct blk_mq_ctx { + struct { + spinlock_t lock; + struct list_head rq_lists[3]; + long: 64; + }; + unsigned int cpu; + short unsigned int 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_mq_ctxs { + struct kobject kobj; + struct blk_mq_ctx *queue_ctx; +}; + +struct seq_operations; + +struct blk_mq_debugfs_attr { + const char *name; + umode_t mode; + int (*show)(void *, struct seq_file *); + ssize_t (*write)(void *, const char *, size_t, loff_t *); + const struct seq_operations *seq_ops; +}; + +struct sbitmap_word; + +struct sbitmap { + unsigned int depth; + unsigned int shift; + unsigned int map_nr; + bool round_robin; + struct sbitmap_word *map; + unsigned int *alloc_hint; +}; + +typedef struct wait_queue_entry wait_queue_entry_t; + +struct blk_mq_hw_ctx { + struct { + spinlock_t lock; + struct list_head dispatch; + long unsigned int 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; + long unsigned int 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; + short unsigned int type; + short unsigned int 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 int numa_node; + unsigned int queue_num; + atomic_t nr_active; + struct hlist_node cpuhp_online; + struct hlist_node cpuhp_dead; + struct kobject kobj; + struct dentry *debugfs_dir; + struct dentry *sched_debugfs_dir; + struct list_head hctx_list; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct blk_mq_hw_ctx_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_mq_hw_ctx *, char *); +}; + +struct blk_mq_queue_data; + +struct io_comp_batch; + +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 rq_list *); + 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 elevator_type; + +struct blk_mq_qe_pair { + struct list_head node; + struct request_queue *q; + struct elevator_type *type; +}; + +struct blk_mq_queue_data { + struct request *rq; + bool last; +}; + +struct sbq_wait_state; + +struct sbitmap_queue { + struct sbitmap sb; + unsigned int wake_batch; + atomic_t wake_index; + struct sbq_wait_state *ws; + atomic_t ws_active; + unsigned int min_shallow_depth; + atomic_t completion_cnt; + atomic_t wakeup_cnt; +}; + +struct blk_mq_tags { + unsigned int nr_tags; + unsigned int nr_reserved_tags; + unsigned int active_queues; + struct sbitmap_queue bitmap_tags; + struct sbitmap_queue breserved_tags; + struct request **rqs; + struct request **static_rqs; + struct list_head page_list; + spinlock_t lock; +}; + +struct rq_list { + struct request *head; + struct request *tail; +}; + +struct blk_plug { + struct rq_list mq_list; + struct rq_list cached_rqs; + u64 cur_ktime; + short unsigned int nr_ios; + short unsigned int rq_count; + bool multiple_queues; + bool has_elevator; + struct list_head cb_list; +}; + +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 blk_queue_stats { + struct list_head callbacks; + spinlock_t lock; + int accounting; +}; + +struct blk_revalidate_zone_args { + struct gendisk *disk; + long unsigned int *conv_zones_bitmap; + unsigned int nr_zones; + unsigned int zone_capacity; + unsigned int last_zone_capacity; + sector_t sector; +}; + +struct blk_rq_stat { + u64 mean; + u64 min; + u64 max; + u32 nr_samples; + u64 batch; +}; + +struct blk_rq_wait { + struct completion done; + blk_status_t ret; +}; + +struct blkif_request_segment { + grant_ref_t gref; + uint8_t first_sect; + uint8_t last_sect; +}; + +struct blkif_request_rw { + uint8_t nr_segments; + blkif_vdev_t handle; + uint32_t _pad1; + uint64_t id; + blkif_sector_t sector_number; + struct blkif_request_segment seg[11]; +} __attribute__((packed)); + +struct blkif_request_discard { + uint8_t flag; + blkif_vdev_t _pad1; + uint32_t _pad2; + uint64_t id; + blkif_sector_t sector_number; + uint64_t nr_sectors; + uint8_t _pad3; +} __attribute__((packed)); + +struct blkif_request_other { + uint8_t _pad1; + blkif_vdev_t _pad2; + uint32_t _pad3; + uint64_t id; +} __attribute__((packed)); + +struct blkif_request_indirect { + uint8_t indirect_op; + uint16_t nr_segments; + uint32_t _pad1; + uint64_t id; + blkif_sector_t sector_number; + blkif_vdev_t handle; + uint16_t _pad2; + grant_ref_t indirect_grefs[8]; + uint32_t _pad3; +} __attribute__((packed)); + +struct blkif_request { + uint8_t operation; + union { + struct blkif_request_rw rw; + struct blkif_request_discard discard; + struct blkif_request_other other; + struct blkif_request_indirect indirect; + } u; +}; + +struct grant; + +struct blk_shadow { + struct blkif_request req; + struct request *request; + struct grant **grants_used; + struct grant **indirect_grants; + struct scatterlist *sg; + unsigned int num_sg; + enum blk_req_status status; + long unsigned int associated_id; +}; + +struct blk_stat_callback { + struct list_head list; + struct timer_list timer; + struct blk_rq_stat *cpu_stat; + int (*bucket_fn)(const struct request *); + unsigned int buckets; + struct blk_rq_stat *stat; + void (*timer_fn)(struct blk_stat_callback *); + void *data; + struct callback_head rcu; +}; + +struct rchan; + +struct blk_trace { + int trace_state; + struct rchan *rchan; + long unsigned int *sequence; + unsigned char *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_user_trace_setup { + char name[32]; + __u16 act_mask; + __u32 buf_size; + __u32 buf_nr; + __u64 start_lba; + __u64 end_lba; + __u32 pid; +}; + +struct blk_zone { + __u64 start; + __u64 len; + __u64 wp; + __u8 type; + __u8 cond; + __u8 non_seq; + __u8 reset; + __u8 resv[4]; + __u64 capacity; + __u8 reserved[24]; +}; + +struct blk_zone_range { + __u64 sector; + __u64 nr_sectors; +}; + +struct blk_zone_report { + __u64 sector; + __u32 nr_zones; + __u32 flags; + struct blk_zone zones[0]; +}; + +struct blk_zone_wplug { + struct hlist_node node; + refcount_t ref; + spinlock_t lock; + unsigned int flags; + unsigned int zone_no; + unsigned int wp_offset; + struct bio_list bio_list; + struct work_struct bio_work; + struct callback_head callback_head; + struct gendisk *disk; +}; + +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; + int nr_descendants; +}; + +struct blkcg_policy_data; + +struct blkcg { + struct cgroup_subsys_state css; + spinlock_t lock; + refcount_t online_pin; + atomic_t congestion_count; + struct xarray blkg_tree; + struct blkcg_gq *blkg_hint; + struct hlist_head blkg_list; + struct blkcg_policy_data *cpd[6]; + struct list_head all_blkcgs_node; + struct llist_head *lhead; + char fc_app_id[129]; + struct list_head cgwb_list; +}; + +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 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 *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; +}; + +typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); + +typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); + +typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t); + +typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); + +struct cftype; + +struct blkcg_policy { + int plid; + struct cftype *dfl_cftypes; + struct cftype *legacy_cftypes; + blkcg_pol_alloc_cpd_fn *cpd_alloc_fn; + blkcg_pol_free_cpd_fn *cpd_free_fn; + blkcg_pol_alloc_pd_fn *pd_alloc_fn; + blkcg_pol_init_pd_fn *pd_init_fn; + blkcg_pol_online_pd_fn *pd_online_fn; + blkcg_pol_offline_pd_fn *pd_offline_fn; + blkcg_pol_free_pd_fn *pd_free_fn; + blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; + blkcg_pol_stat_pd_fn *pd_stat_fn; +}; + +struct blkcg_policy_data { + struct blkcg *blkcg; + int plid; +}; + +struct blkdev_dio { + union { + struct kiocb *iocb; + struct task_struct *waiter; + }; + size_t size; + atomic_t ref; + unsigned int flags; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct bio bio; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct xenbus_device; + +struct blkfront_ring_info; + +struct blkfront_info { + struct mutex mutex; + struct xenbus_device *xbdev; + struct gendisk *gd; + u16 sector_size; + unsigned int physical_sector_size; + long unsigned int vdisk_info; + int vdevice; + blkif_vdev_t handle; + enum blkif_state connected; + unsigned int nr_ring_pages; + struct request_queue *rq; + unsigned int feature_flush: 1; + unsigned int feature_fua: 1; + unsigned int feature_discard: 1; + unsigned int feature_secdiscard: 1; + unsigned int feature_persistent_parm: 1; + unsigned int feature_persistent: 1; + unsigned int bounce: 1; + unsigned int discard_granularity; + unsigned int discard_alignment; + unsigned int max_indirect_segments; + int is_ready; + struct blk_mq_tag_set tag_set; + struct blkfront_ring_info *rinfo; + unsigned int nr_rings; + unsigned int rinfo_size; + struct list_head requests; + struct bio_list bio_list; + struct list_head info_list; +}; + +struct blkif_sring; + +struct blkif_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct blkif_sring *sring; +}; + +struct gnttab_free_callback { + struct gnttab_free_callback *next; + void (*fn)(void *); + void *arg; + u16 count; +}; + +struct blkfront_ring_info { + spinlock_t ring_lock; + struct blkif_front_ring ring; + unsigned int ring_ref[16]; + unsigned int evtchn; + unsigned int irq; + struct work_struct work; + struct gnttab_free_callback callback; + struct list_head indirect_pages; + struct list_head grants; + unsigned int persistent_gnts_c; + long unsigned int shadow_free; + struct blkfront_info *dev_info; + struct blk_shadow shadow[0]; +}; + +struct blkg_conf_ctx { + char *input; + char *body; + struct block_device *bdev; + struct blkcg_gq *blkg; +}; + +struct blkg_policy_data { + struct blkcg_gq *blkg; + int plid; + bool online; +}; + +struct blkg_rwstat { + struct percpu_counter cpu_cnt[5]; + atomic64_t aux_cnt[5]; +}; + +struct blkg_rwstat_sample { + u64 cnt[5]; +}; + +struct blkif_req { + blk_status_t error; +}; + +struct blkif_response { + uint64_t id; + uint8_t operation; + int16_t status; +}; + +union blkif_sring_entry { + struct blkif_request req; + struct blkif_response rsp; +}; + +struct blkif_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union blkif_sring_entry ring[0]; +}; + +struct blkpg_ioctl_arg { + int op; + int flags; + int datalen; + void *data; +}; + +struct blkpg_partition { + long long int start; + long long int length; + int pno; + char devname[64]; + char volname[64]; +}; + +struct block_buffer { + u32 filled; + bool is_root_hash; + u8 *data; +}; + +typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); + +struct hd_geometry; + +struct pr_ops; + +struct block_device_operations { + void (*submit_bio)(struct bio *); + int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int); + int (*open)(struct gendisk *, blk_mode_t); + void (*release)(struct gendisk *); + int (*ioctl)(struct block_device *, blk_mode_t, unsigned int, long unsigned int); + int (*compat_ioctl)(struct block_device *, blk_mode_t, unsigned int, long unsigned int); + 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 *, long unsigned int); + int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *); + char * (*devnode)(struct gendisk *, umode_t *); + int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id); + struct module *owner; + const struct pr_ops *pr_ops; + int (*alternative_gpt_sector)(struct gendisk *, sector_t *); +}; + +struct blockgroup_lock { + struct bgl_lock locks[128]; +}; + +struct mem_zone_bm_rtree; + +struct rtree_node; + +struct bm_position { + struct mem_zone_bm_rtree *zone; + struct rtree_node *node; + long unsigned int node_pfn; + long unsigned int cur_pfn; + int node_bit; +}; + +struct bmp_header { + u16 id; + u32 size; +} __attribute__((packed)); + +struct spi_board_info { + char modalias[32]; + const void *platform_data; + const struct software_node *swnode; + void *controller_data; + int irq; + u32 max_speed_hz; + u16 bus_num; + u16 chip_select; + u32 mode; +}; + +struct boardinfo { + struct list_head list; + struct spi_board_info board_info; +}; + +struct boot_e820_entry { + __u64 addr; + __u64 size; + __u32 type; +} __attribute__((packed)); + +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 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 edd_device_params { + __u16 length; + __u16 info_flags; + __u32 num_default_cylinders; + __u32 num_default_heads; + __u32 sectors_per_track; + __u64 number_of_sectors; + __u16 bytes_per_sector; + __u32 dpte_ptr; + __u16 key; + __u8 device_path_info_length; + __u8 reserved2; + __u16 reserved3; + __u8 host_bus_type[4]; + __u8 interface_type[8]; + union { + struct { + __u16 base_address; + __u16 reserved1; + __u32 reserved2; + } isa; + struct { + __u8 bus; + __u8 slot; + __u8 function; + __u8 channel; + __u32 reserved; + } pci; + struct { + __u64 reserved; + } ibnd; + struct { + __u64 reserved; + } xprs; + struct { + __u64 reserved; + } htpt; + struct { + __u64 reserved; + } unknown; + } interface_path; + union { + struct { + __u8 device; + __u8 reserved1; + __u16 reserved2; + __u32 reserved3; + __u64 reserved4; + } ata; + struct { + __u8 device; + __u8 lun; + __u8 reserved1; + __u8 reserved2; + __u32 reserved3; + __u64 reserved4; + } atapi; + struct { + __u16 id; + __u64 lun; + __u16 reserved1; + __u32 reserved2; + } __attribute__((packed)) scsi; + struct { + __u64 serial_number; + __u64 reserved; + } usb; + struct { + __u64 eui; + __u64 reserved; + } i1394; + struct { + __u64 wwid; + __u64 lun; + } fibre; + struct { + __u64 identity_tag; + __u64 reserved; + } i2o; + struct { + __u32 array_number; + __u32 reserved1; + __u64 reserved2; + } raid; + struct { + __u8 device; + __u8 reserved1; + __u16 reserved2; + __u32 reserved3; + __u64 reserved4; + } sata; + struct { + __u64 reserved1; + __u64 reserved2; + } unknown; + } device_path; + __u8 reserved4; + __u8 checksum; +} __attribute__((packed)); + +struct edd_info { + __u8 device; + __u8 version; + __u16 interface_support; + __u16 legacy_max_cylinder; + __u8 legacy_max_head; + __u8 legacy_sectors_per_track; + struct edd_device_params params; +}; + +struct boot_params { + struct screen_info screen_info; + struct apm_bios_info apm_bios_info; + __u8 _pad2[4]; + __u64 tboot_addr; + struct ist_info ist_info; + __u64 acpi_rsdp_addr; + __u8 _pad3[8]; + __u8 hd0_info[16]; + __u8 hd1_info[16]; + struct sys_desc_table sys_desc_table; + struct olpc_ofw_header olpc_ofw_header; + __u32 ext_ramdisk_image; + __u32 ext_ramdisk_size; + __u32 ext_cmd_line_ptr; + __u8 _pad4[112]; + __u32 cc_blob_address; + struct edid_info edid_info; + struct efi_info efi_info; + __u32 alt_mem_k; + __u32 scratch; + __u8 e820_entries; + __u8 eddbuf_entries; + __u8 edd_mbr_sig_buf_entries; + __u8 kbd_status; + __u8 secure_boot; + __u8 _pad5[2]; + __u8 sentinel; + __u8 _pad6[1]; + struct setup_header hdr; + __u8 _pad7[36]; + __u32 edd_mbr_sig_buffer[16]; + struct boot_e820_entry e820_table[128]; + __u8 _pad8[48]; + struct edd_info eddbuf[6]; + __u8 _pad9[276]; +}; + +struct boot_params_to_save { + unsigned int start; + unsigned int len; +}; + +struct fpdt_record_header { + u16 type; + u8 length; + u8 revision; +}; + +struct boot_performance_record { + struct fpdt_record_header header; + u32 reserved; + u64 firmware_start; + u64 bootloader_load; + u64 bootloader_launch; + u64 exitbootservice_start; + u64 exitbootservice_end; +}; + +struct boot_triggers { + const char *event; + char *trigger; +}; + +struct bp_slots_histogram { + atomic_t count[4]; +}; + +struct bp_cpuinfo { + unsigned int cpu_pinned; + struct bp_slots_histogram tsk_pinned; +}; + +struct text_poke_loc; + +struct bp_patching_desc { + struct text_poke_loc *vec; + int nr_entries; + atomic_t refs; +}; + +struct bpf_map_ops; + +struct btf_record; + +struct btf; + +struct obj_cgroup; + +struct btf_type; + +struct bpf_map { + const struct bpf_map_ops *ops; + struct bpf_map *inner_map_meta; + void *security; + enum bpf_map_type map_type; + u32 key_size; + u32 value_size; + u32 max_entries; + u64 map_extra; + u32 map_flags; + u32 id; + struct btf_record *record; + int numa_node; + u32 btf_key_type_id; + u32 btf_value_type_id; + u32 btf_vmlinux_value_type_id; + struct btf *btf; + struct obj_cgroup *objcg; + char name[16]; + struct mutex freeze_mutex; + atomic64_t refcnt; + atomic64_t usercnt; + union { + struct work_struct work; + struct callback_head rcu; + }; + atomic64_t writecnt; + struct { + const struct btf_type *attach_func_proto; + spinlock_t lock; + enum bpf_prog_type type; + bool jited; + bool xdp_has_frags; + } owner; + bool bypass_spec_v1; + bool frozen; + bool free_after_mult_rcu_gp; + bool free_after_rcu_gp; + atomic64_t sleepable_refcnt; + s64 *elem_count; +}; + +struct range_tree { + struct rb_root_cached it_root; + struct rb_root_cached range_size_root; +}; + +struct vm_struct; + +struct bpf_arena { + struct bpf_map map; + u64 user_vm_start; + u64 user_vm_end; + struct vm_struct *kern_vm; + struct range_tree rt; + struct list_head vma_list; + struct mutex lock; +}; + +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 *pptrs[0]; + }; + }; +}; + +struct bpf_array_aux { + struct list_head poke_progs; + struct bpf_map *map; + struct mutex poke_mutex; + struct work_struct work; +}; + +struct bpf_prog; + +struct bpf_async_cb { + struct bpf_map *map; + struct bpf_prog *prog; + void *callback_fn; + void *value; + union { + struct callback_head rcu; + struct work_struct delete_work; + }; + u64 flags; +}; + +struct bpf_spin_lock { + __u32 val; +}; + +struct bpf_hrtimer; + +struct bpf_work; + +struct bpf_async_kern { + union { + struct bpf_async_cb *cb; + struct bpf_hrtimer *timer; + struct bpf_work *work; + }; + struct bpf_spin_lock lock; +}; + +struct btf_func_model { + u8 ret_size; + u8 ret_flags; + u8 nr_args; + u8 arg_size[12]; + u8 arg_flags[12]; +}; + +struct bpf_attach_target_info { + struct btf_func_model fmodel; + long int tgt_addr; + struct module *tgt_mod; + const char *tgt_name; + const struct btf_type *tgt_type; +}; + +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; + __s32 value_type_btf_obj_fd; + __s32 map_token_fd; + }; + struct { + __u32 map_fd; + __u64 key; + union { + __u64 value; + __u64 next_key; + }; + __u64 flags; + }; + struct { + __u64 in_batch; + __u64 out_batch; + __u64 keys; + __u64 values; + __u32 count; + __u32 map_fd; + __u64 elem_flags; + __u64 flags; + } batch; + struct { + __u32 prog_type; + __u32 insn_cnt; + __u64 insns; + __u64 license; + __u32 log_level; + __u32 log_size; + __u64 log_buf; + __u32 kern_version; + __u32 prog_flags; + char prog_name[16]; + __u32 prog_ifindex; + __u32 expected_attach_type; + __u32 prog_btf_fd; + __u32 func_info_rec_size; + __u64 func_info; + __u32 func_info_cnt; + __u32 line_info_rec_size; + __u64 line_info; + __u32 line_info_cnt; + __u32 attach_btf_id; + union { + __u32 attach_prog_fd; + __u32 attach_btf_obj_fd; + }; + __u32 core_relo_cnt; + __u64 fd_array; + __u64 core_relos; + __u32 core_relo_rec_size; + __u32 log_true_size; + __s32 prog_token_fd; + __u32 fd_array_cnt; + }; + struct { + __u64 pathname; + __u32 bpf_fd; + __u32 file_flags; + __s32 path_fd; + }; + struct { + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_bpf_fd; + __u32 attach_type; + __u32 attach_flags; + __u32 replace_bpf_fd; + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + }; + struct { + __u32 prog_fd; + __u32 retval; + __u32 data_size_in; + __u32 data_size_out; + __u64 data_in; + __u64 data_out; + __u32 repeat; + __u32 duration; + __u32 ctx_size_in; + __u32 ctx_size_out; + __u64 ctx_in; + __u64 ctx_out; + __u32 flags; + __u32 cpu; + __u32 batch_size; + } test; + struct { + union { + __u32 start_id; + __u32 prog_id; + __u32 map_id; + __u32 btf_id; + __u32 link_id; + }; + __u32 next_id; + __u32 open_flags; + }; + struct { + __u32 bpf_fd; + __u32 info_len; + __u64 info; + } info; + struct { + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_type; + __u32 query_flags; + __u32 attach_flags; + __u64 prog_ids; + union { + __u32 prog_cnt; + __u32 count; + }; + __u64 prog_attach_flags; + __u64 link_ids; + __u64 link_attach_flags; + __u64 revision; + } query; + struct { + __u64 name; + __u32 prog_fd; + __u64 cookie; + } raw_tracepoint; + struct { + __u64 btf; + __u64 btf_log_buf; + __u32 btf_size; + __u32 btf_log_size; + __u32 btf_log_level; + __u32 btf_log_true_size; + __u32 btf_flags; + __s32 btf_token_fd; + }; + struct { + __u32 pid; + __u32 fd; + __u32 flags; + __u32 buf_len; + __u64 buf; + __u32 prog_id; + __u32 fd_type; + __u64 probe_offset; + __u64 probe_addr; + } task_fd_query; + struct { + union { + __u32 prog_fd; + __u32 map_fd; + }; + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_type; + __u32 flags; + union { + __u32 target_btf_id; + struct { + __u64 iter_info; + __u32 iter_info_len; + }; + struct { + __u64 bpf_cookie; + } perf_event; + struct { + __u32 flags; + __u32 cnt; + __u64 syms; + __u64 addrs; + __u64 cookies; + } kprobe_multi; + struct { + __u32 target_btf_id; + __u64 cookie; + } tracing; + struct { + __u32 pf; + __u32 hooknum; + __s32 priority; + __u32 flags; + } netfilter; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + } tcx; + struct { + __u64 path; + __u64 offsets; + __u64 ref_ctr_offsets; + __u64 cookies; + __u32 cnt; + __u32 flags; + __u32 pid; + } uprobe_multi; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + } netkit; + }; + } link_create; + struct { + __u32 link_fd; + union { + __u32 new_prog_fd; + __u32 new_map_fd; + }; + __u32 flags; + union { + __u32 old_prog_fd; + __u32 old_map_fd; + }; + } link_update; + struct { + __u32 link_fd; + } link_detach; + struct { + __u32 type; + } enable_stats; + struct { + __u32 link_fd; + __u32 flags; + } iter_create; + struct { + __u32 prog_fd; + __u32 map_fd; + __u32 flags; + } prog_bind_map; + struct { + __u32 flags; + __u32 bpffs_fd; + } token_create; +}; + +struct bpf_binary_header { + u32 size; + long: 0; + u8 image[0]; +}; + +struct bpf_bloom_filter { + struct bpf_map map; + u32 bitset_mask; + u32 hash_seed; + u32 nr_hash_funcs; + long unsigned int bitset[0]; +}; + +struct bpf_bprintf_buffers { + char bin_args[512]; + char buf[1024]; +}; + +struct bpf_bprintf_data { + u32 *bin_args; + char *buf; + bool get_bin_args; + bool get_buf; +}; + +struct bpf_btf_info { + __u64 btf; + __u32 btf_size; + __u32 id; + __u64 name; + __u32 name_len; + __u32 kernel_btf; +}; + +struct btf_field; + +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; + s64 const_map_key; +}; + +struct bpf_cand_cache { + const char *name; + u32 name_len; + u16 kind; + u16 cnt; + struct { + const struct btf *btf; + u32 id; + } cands[0]; +}; + +struct bpf_run_ctx {}; + +struct bpf_prog_array_item; + +struct bpf_cg_run_ctx { + struct bpf_run_ctx run_ctx; + const struct bpf_prog_array_item *prog_item; + int retval; +}; + +struct bpf_cgroup_dev_ctx { + __u32 access_type; + __u32 major; + __u32 minor; +}; + +struct bpf_link_ops; + +struct bpf_link { + atomic64_t refcnt; + u32 id; + enum bpf_link_type type; + const struct bpf_link_ops *ops; + struct bpf_prog *prog; + bool sleepable; + union { + struct callback_head rcu; + struct work_struct work; + }; +}; + +struct bpf_cgroup_link { + struct bpf_link link; + struct cgroup *cgroup; + enum bpf_attach_type type; +}; + +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 *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_cgroup_storage_map { + struct bpf_map map; + spinlock_t lock; + struct rb_root root; + struct list_head list; +}; + +struct bpf_lru_list { + struct list_head lists[3]; + unsigned int counts[2]; + struct list_head *next_inactive_rotation; + raw_spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_lru_locallist; + +struct bpf_common_lru { + struct bpf_lru_list lru_list; + struct bpf_lru_locallist *local_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_core_accessor { + __u32 type_id; + __u32 idx; + const char *name; +}; + +struct bpf_core_cand { + const struct btf *btf; + __u32 id; +}; + +struct bpf_core_cand_list { + struct bpf_core_cand *cands; + int len; +}; + +struct bpf_verifier_log; + +struct bpf_core_ctx { + struct bpf_verifier_log *log; + const struct btf *btf; +}; + +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_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_cpu_map_entry; + +struct bpf_cpu_map { + struct bpf_map map; + struct bpf_cpu_map_entry **cpu_map; +}; + +struct bpf_cpumap_val { + __u32 qsize; + union { + int fd; + __u32 id; + } bpf_prog; +}; + +struct xdp_bulk_queue; + +struct ptr_ring; + +struct bpf_cpu_map_entry { + u32 cpu; + int map_id; + struct xdp_bulk_queue *bulkq; + struct ptr_ring *queue; + struct task_struct *kthread; + struct bpf_cpumap_val value; + struct bpf_prog *prog; + struct completion kthread_running; + struct rcu_work free_work; +}; + +typedef struct cpumask cpumask_t; + +struct bpf_cpumask { + cpumask_t cpumask; + refcount_t usage; +}; + +struct bpf_crypto_type; + +struct bpf_crypto_ctx { + const struct bpf_crypto_type *type; + void *tfm; + u32 siv_len; + struct callback_head rcu; + refcount_t usage; +}; + +struct bpf_crypto_params { + char type[14]; + u8 reserved[2]; + char algo[128]; + u8 key[256]; + u32 key_len; + u32 authsize; +}; + +struct bpf_crypto_type { + void * (*alloc_tfm)(const char *); + void (*free_tfm)(void *); + int (*has_algo)(const char *); + int (*setkey)(void *, const u8 *, unsigned int); + int (*setauthsize)(void *, unsigned int); + int (*encrypt)(void *, const u8 *, u8 *, unsigned int, u8 *); + int (*decrypt)(void *, const u8 *, u8 *, unsigned int, u8 *); + unsigned int (*ivsize)(void *); + unsigned int (*statesize)(void *); + u32 (*get_flags)(void *); + struct module *owner; + char name[14]; +}; + +struct bpf_crypto_type_list { + const struct bpf_crypto_type *type; + struct list_head list; +}; + +struct bpf_ctx_arg_aux { + u32 offset; + enum bpf_reg_type reg_type; + struct btf *btf; + u32 btf_id; +}; + +struct skb_ext; + +struct sk_buff { + union { + struct { + struct sk_buff *next; + struct sk_buff *prev; + union { + struct net_device *dev; + long unsigned int dev_scratch; + }; + }; + struct rb_node rbnode; + struct list_head list; + struct llist_node ll_node; + }; + struct sock *sk; + union { + ktime_t tstamp; + u64 skb_mstamp_ns; + }; + char cb[48]; + union { + struct { + long unsigned int _skb_refdst; + void (*destructor)(struct sk_buff *); + }; + struct list_head tcp_tsorted_anchor; + long unsigned int _sk_redir; + }; + long unsigned int _nfct; + unsigned int len; + unsigned int data_len; + __u16 mac_len; + __u16 hdr_len; + __u16 queue_mapping; + __u8 __cloned_offset[0]; + __u8 cloned: 1; + __u8 nohdr: 1; + __u8 fclone: 2; + __u8 peeked: 1; + __u8 head_frag: 1; + __u8 pfmemalloc: 1; + __u8 pp_recycle: 1; + __u8 active_extensions; + union { + struct { + __u8 __pkt_type_offset[0]; + __u8 pkt_type: 3; + __u8 ignore_df: 1; + __u8 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 tstamp_type: 2; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 ipvs_property: 1; + __u8 nf_trace: 1; + __u8 offload_fwd_mark: 1; + __u8 offload_l3_fwd_mark: 1; + __u8 redirected: 1; + __u8 from_ingress: 1; + __u8 nf_skip_egress: 1; + __u8 decrypted: 1; + __u8 slow_gro: 1; + __u8 csum_not_inet: 1; + __u8 unreadable: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + __u32 secmark; + union { + __u32 mark; + __u32 reserved_tailroom; + }; + union { + __be16 inner_protocol; + __u8 inner_ipproto; + }; + __u16 inner_transport_header; + __u16 inner_network_header; + __u16 inner_mac_header; + __be16 protocol; + __u16 transport_header; + __u16 network_header; + __u16 mac_header; + }; + struct { + __u8 __pkt_type_offset[0]; + __u8 pkt_type: 3; + __u8 ignore_df: 1; + __u8 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 tstamp_type: 2; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 ipvs_property: 1; + __u8 nf_trace: 1; + __u8 offload_fwd_mark: 1; + __u8 offload_l3_fwd_mark: 1; + __u8 redirected: 1; + __u8 from_ingress: 1; + __u8 nf_skip_egress: 1; + __u8 decrypted: 1; + __u8 slow_gro: 1; + __u8 csum_not_inet: 1; + __u8 unreadable: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + __u32 secmark; + union { + __u32 mark; + __u32 reserved_tailroom; + }; + union { + __be16 inner_protocol; + __u8 inner_ipproto; + }; + __u16 inner_transport_header; + __u16 inner_network_header; + __u16 inner_mac_header; + __be16 protocol; + __u16 transport_header; + __u16 network_header; + __u16 mac_header; + } headers; + }; + sk_buff_data_t tail; + sk_buff_data_t end; + unsigned char *head; + unsigned char *data; + unsigned int truesize; + refcount_t users; + struct skb_ext *extensions; +}; + +struct xdp_md { + __u32 data; + __u32 data_end; + __u32 data_meta; + __u32 ingress_ifindex; + __u32 rx_queue_index; + __u32 egress_ifindex; +}; + +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 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 hlist_nulls_node { + struct hlist_nulls_node *next; + struct hlist_nulls_node **pprev; +}; + +struct proto; + +struct inet_timewait_death_row; + +struct sock_common { + union { + __addrpair skc_addrpair; + struct { + __be32 skc_daddr; + __be32 skc_rcv_saddr; + }; + }; + union { + unsigned int skc_hash; + __u16 skc_u16hashes[2]; + }; + union { + __portpair skc_portpair; + struct { + __be16 skc_dport; + __u16 skc_num; + }; + }; + short unsigned int 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 { + long unsigned int 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; + }; + short unsigned int skc_tx_queue_mapping; + short unsigned int skc_rx_queue_mapping; + union { + int skc_incoming_cpu; + u32 skc_rcv_wnd; + u32 skc_tw_rcv_nxt; + }; + refcount_t skc_refcnt; + int skc_dontcopy_end[0]; + union { + u32 skc_rxhash; + u32 skc_window_clamp; + u32 skc_tw_snd_nxt; + }; +}; + +struct page_frag { + struct page *page; + __u32 offset; + __u32 size; +}; + +struct sock_cgroup_data { + struct cgroup *cgroup; + u32 classid; + u16 prioidx; +}; + +struct dst_entry; + +struct sk_filter; + +struct socket_wq; + +struct socket; + +struct mem_cgroup; + +struct xfrm_policy; + +struct sock_reuseport; + +struct bpf_local_storage; + +struct sock { + struct sock_common __sk_common; + __u8 __cacheline_group_begin__sock_write_rx[0]; + atomic_t sk_drops; + __s32 sk_peek_off; + struct sk_buff_head sk_error_queue; + struct sk_buff_head sk_receive_queue; + struct { + atomic_t rmem_alloc; + int len; + struct sk_buff *head; + struct sk_buff *tail; + } sk_backlog; + __u8 __cacheline_group_end__sock_write_rx[0]; + __u8 __cacheline_group_begin__sock_read_rx[0]; + struct dst_entry *sk_rx_dst; + int sk_rx_dst_ifindex; + u32 sk_rx_dst_cookie; + unsigned int sk_ll_usec; + unsigned int sk_napi_id; + u16 sk_busy_poll_budget; + u8 sk_prefer_busy_poll; + u8 sk_userlocks; + int sk_rcvbuf; + struct sk_filter *sk_filter; + union { + struct socket_wq *sk_wq; + struct socket_wq *sk_wq_raw; + }; + void (*sk_data_ready)(struct sock *); + long int sk_rcvtimeo; + int sk_rcvlowat; + __u8 __cacheline_group_end__sock_read_rx[0]; + __u8 __cacheline_group_begin__sock_read_rxtx[0]; + int sk_err; + struct socket *sk_socket; + struct mem_cgroup *sk_memcg; + struct xfrm_policy *sk_policy[2]; + __u8 __cacheline_group_end__sock_read_rxtx[0]; + __u8 __cacheline_group_begin__sock_write_rxtx[0]; + socket_lock_t sk_lock; + u32 sk_reserved_mem; + int sk_forward_alloc; + u32 sk_tsflags; + __u8 __cacheline_group_end__sock_write_rxtx[0]; + __u8 __cacheline_group_begin__sock_write_tx[0]; + int sk_write_pending; + atomic_t sk_omem_alloc; + int sk_sndbuf; + int sk_wmem_queued; + refcount_t sk_wmem_alloc; + long unsigned int sk_tsq_flags; + union { + struct sk_buff *sk_send_head; + struct rb_root tcp_rtx_queue; + }; + struct sk_buff_head sk_write_queue; + u32 sk_dst_pending_confirm; + u32 sk_pacing_status; + struct page_frag sk_frag; + struct timer_list sk_timer; + long unsigned int sk_pacing_rate; + atomic_t sk_zckey; + atomic_t sk_tskey; + __u8 __cacheline_group_end__sock_write_tx[0]; + __u8 __cacheline_group_begin__sock_read_tx[0]; + long unsigned int sk_max_pacing_rate; + long int sk_sndtimeo; + u32 sk_priority; + u32 sk_mark; + struct dst_entry *sk_dst_cache; + netdev_features_t sk_route_caps; + struct sk_buff * (*sk_validate_xmit_skb)(struct sock *, struct net_device *, struct sk_buff *); + u16 sk_gso_type; + u16 sk_gso_max_segs; + unsigned int sk_gso_max_size; + gfp_t sk_allocation; + u32 sk_txhash; + u8 sk_pacing_shift; + bool sk_use_task_frag; + __u8 __cacheline_group_end__sock_read_tx[0]; + u8 sk_gso_disabled: 1; + u8 sk_kern_sock: 1; + u8 sk_no_check_tx: 1; + u8 sk_no_check_rx: 1; + u8 sk_shutdown; + u16 sk_type; + u16 sk_protocol; + long unsigned int sk_lingertime; + struct proto *sk_prot_creator; + rwlock_t sk_callback_lock; + int sk_err_soft; + u32 sk_ack_backlog; + u32 sk_max_ack_backlog; + kuid_t sk_uid; + spinlock_t sk_peer_lock; + int sk_bind_phc; + struct pid *sk_peer_pid; + const struct cred *sk_peer_cred; + ktime_t sk_stamp; + int sk_disconnects; + u8 sk_txrehash; + u8 sk_clockid; + u8 sk_txtime_deadline_mode: 1; + u8 sk_txtime_report_errors: 1; + u8 sk_txtime_unused: 6; + void *sk_user_data; + void *sk_security; + struct sock_cgroup_data sk_cgrp_data; + void (*sk_state_change)(struct sock *); + void (*sk_write_space)(struct sock *); + void (*sk_error_report)(struct sock *); + int (*sk_backlog_rcv)(struct sock *, struct sk_buff *); + void (*sk_destruct)(struct sock *); + struct sock_reuseport *sk_reuseport_cb; + struct bpf_local_storage *sk_bpf_storage; + struct callback_head sk_rcu; + netns_tracker ns_tracker; + struct xarray sk_user_frags; +}; + +struct bpf_sock_addr { + __u32 user_family; + __u32 user_ip4; + __u32 user_ip6[4]; + __u32 user_port; + __u32 family; + __u32 type; + __u32 protocol; + __u32 msg_src_ip4; + __u32 msg_src_ip6[4]; + union { + struct bpf_sock *sk; + }; +}; + +struct bpf_sock_addr_kern { + struct sock *sk; + struct sockaddr *uaddr; + u64 tmp_reg; + void *t_ctx; + u32 uaddrlen; +}; + +struct bpf_sock_ops { + __u32 op; + union { + __u32 args[4]; + __u32 reply; + __u32 replylong[4]; + }; + __u32 family; + __u32 remote_ip4; + __u32 local_ip4; + __u32 remote_ip6[4]; + __u32 local_ip6[4]; + __u32 remote_port; + __u32 local_port; + __u32 is_fullsock; + __u32 snd_cwnd; + __u32 srtt_us; + __u32 bpf_sock_ops_cb_flags; + __u32 state; + __u32 rtt_min; + __u32 snd_ssthresh; + __u32 rcv_nxt; + __u32 snd_nxt; + __u32 snd_una; + __u32 mss_cache; + __u32 ecn_flags; + __u32 rate_delivered; + __u32 rate_interval_us; + __u32 packets_out; + __u32 retrans_out; + __u32 total_retrans; + __u32 segs_in; + __u32 data_segs_in; + __u32 segs_out; + __u32 data_segs_out; + __u32 lost_out; + __u32 sacked_out; + __u32 sk_txhash; + __u64 bytes_received; + __u64 bytes_acked; + union { + struct bpf_sock *sk; + }; + union { + void *skb_data; + }; + union { + void *skb_data_end; + }; + __u32 skb_len; + __u32 skb_tcp_flags; + __u64 skb_hwtstamp; +}; + +struct bpf_sock_ops_kern { + struct sock *sk; + union { + u32 args[4]; + u32 reply; + u32 replylong[4]; + }; + struct sk_buff *syn_skb; + struct sk_buff *skb; + void *skb_data_end; + u8 op; + u8 is_fullsock; + u8 remaining_opt_len; + u64 temp; +}; + +struct sk_msg_md { + union { + void *data; + }; + union { + void *data_end; + }; + __u32 family; + __u32 remote_ip4; + __u32 local_ip4; + __u32 remote_ip6[4]; + __u32 local_ip6[4]; + __u32 remote_port; + __u32 local_port; + __u32 size; + union { + struct bpf_sock *sk; + }; +}; + +struct sk_msg_sg { + u32 start; + u32 curr; + u32 end; + u32 size; + u32 copybreak; + long unsigned int 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; +}; + +struct bpf_flow_dissector { + struct bpf_flow_keys *flow_keys; + const struct sk_buff *skb; + const void *data; + const void *data_end; +}; + +typedef struct pt_regs bpf_user_pt_regs_t; + +struct bpf_perf_event_data { + bpf_user_pt_regs_t regs; + __u64 sample_period; + __u64 addr; +}; + +struct perf_sample_data; + +struct bpf_perf_event_data_kern { + bpf_user_pt_regs_t *regs; + struct perf_sample_data *data; + struct perf_event *event; +}; + +struct bpf_raw_tracepoint_args { + __u64 args[0]; +}; + +struct bpf_sysctl { + __u32 write; + __u32 file_pos; +}; + +struct ctl_table; + +struct bpf_sysctl_kern { + struct ctl_table_header *head; + const struct ctl_table *table; + void *cur_val; + size_t cur_len; + void *new_val; + size_t new_len; + int new_updated; + int write; + loff_t *ppos; + u64 tmp_reg; +}; + +struct bpf_sockopt { + union { + struct bpf_sock *sk; + }; + union { + void *optval; + }; + union { + void *optval_end; + }; + __s32 level; + __s32 optname; + __s32 optlen; + __s32 retval; +}; + +struct bpf_sockopt_kern { + struct sock *sk; + u8 *optval; + u8 *optval_end; + s32 level; + s32 optname; + s32 optlen; + struct task_struct *current_task; + u64 tmp_reg; +}; + +struct sk_reuseport_md { + union { + void *data; + }; + union { + void *data_end; + }; + __u32 len; + __u32 eth_protocol; + __u32 ip_protocol; + __u32 bind_inany; + __u32 hash; + union { + struct bpf_sock *sk; + }; + union { + struct bpf_sock *migrating_sk; + }; +}; + +struct sk_reuseport_kern { + struct sk_buff *skb; + struct sock *sk; + struct sock *selected_sk; + struct sock *migrating_sk; + void *data_end; + u32 hash; + u32 reuseport_id; + bool bind_inany; +}; + +struct bpf_sk_lookup { + union { + union { + struct bpf_sock *sk; + }; + __u64 cookie; + }; + __u32 family; + __u32 protocol; + __u32 remote_ip4; + __u32 remote_ip6[4]; + __be16 remote_port; + __u32 local_ip4; + __u32 local_ip6[4]; + __u32 local_port; + __u32 ingress_ifindex; +}; + +struct bpf_sk_lookup_kern { + u16 family; + u16 protocol; + __be16 sport; + u16 dport; + struct { + __be32 saddr; + __be32 daddr; + } v4; + struct { + const struct in6_addr *saddr; + const struct in6_addr *daddr; + } v6; + struct sock *selected_sk; + u32 ingress_ifindex; + bool no_reuseport; +}; + +struct nf_hook_state; + +struct bpf_nf_ctx { + const struct nf_hook_state *state; + struct sk_buff *skb; +}; + +struct bpf_ctx_convert { + struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog; + struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern; + struct xdp_md BPF_PROG_TYPE_XDP_prog; + struct xdp_buff BPF_PROG_TYPE_XDP_kern; + struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog; + struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern; + struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog; + struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern; + struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog; + struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog; + struct sk_buff BPF_PROG_TYPE_LWT_IN_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog; + struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern; + struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog; + struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern; + struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog; + struct sk_buff BPF_PROG_TYPE_SK_SKB_kern; + struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog; + struct sk_msg BPF_PROG_TYPE_SK_MSG_kern; + struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog; + struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern; + bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog; + struct pt_regs BPF_PROG_TYPE_KPROBE_kern; + __u64 BPF_PROG_TYPE_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_TRACEPOINT_kern; + struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog; + struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; + void *BPF_PROG_TYPE_TRACING_prog; + void *BPF_PROG_TYPE_TRACING_kern; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; + struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; + struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; + struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; + struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; + struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; + struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; + struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; + struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; + void *BPF_PROG_TYPE_STRUCT_OPS_prog; + void *BPF_PROG_TYPE_STRUCT_OPS_kern; + void *BPF_PROG_TYPE_EXT_prog; + void *BPF_PROG_TYPE_EXT_kern; + void *BPF_PROG_TYPE_LSM_prog; + void *BPF_PROG_TYPE_LSM_kern; + void *BPF_PROG_TYPE_SYSCALL_prog; + void *BPF_PROG_TYPE_SYSCALL_kern; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_prog; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_kern; +}; + +struct bpf_devmap_val { + __u32 ifindex; + union { + int fd; + __u32 id; + } bpf_prog; +}; + +struct bpf_dispatcher_prog { + struct bpf_prog *prog; + refcount_t users; +}; + +struct latch_tree_node { + struct rb_node node[2]; +}; + +struct bpf_ksym { + long unsigned int start; + long unsigned int end; + char name[512]; + struct list_head lnode; + struct latch_tree_node tnode; + bool prog; +}; + +struct static_call_key; + +struct bpf_dispatcher { + struct mutex mutex; + void *func; + struct bpf_dispatcher_prog progs[48]; + int num_progs; + void *image; + void *rw_image; + u32 image_off; + struct bpf_ksym ksym; + struct static_call_key *sc_key; + void *sc_tramp; +}; + +struct bpf_dtab_netdev; + +struct bpf_dtab { + struct bpf_map map; + struct bpf_dtab_netdev **netdev_map; + struct list_head list; + struct hlist_head *dev_index_head; + spinlock_t index_lock; + unsigned int items; + u32 n_buckets; +}; + +struct bpf_dtab_netdev { + struct net_device *dev; + struct hlist_node index_hlist; + struct bpf_prog *xdp_prog; + struct callback_head rcu; + unsigned int idx; + struct bpf_devmap_val val; +}; + +struct bpf_dummy_ops_state; + +struct bpf_dummy_ops { + int (*test_1)(struct bpf_dummy_ops_state *); + int (*test_2)(struct bpf_dummy_ops_state *, int, short unsigned int, char, long unsigned int); + int (*test_sleepable)(struct bpf_dummy_ops_state *); +}; + +struct bpf_dummy_ops_state { + int val; +}; + +struct bpf_dummy_ops_test_args { + u64 args[12]; + struct bpf_dummy_ops_state state; +}; + +struct bpf_dynptr { + __u64 __opaque[2]; +}; + +struct bpf_dynptr_kern { + void *data; + u32 size; + u32 offset; +}; + +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_empty_prog_array { + struct bpf_prog_array hdr; + struct bpf_prog *null_prog; +}; + +struct bpf_event_entry { + struct perf_event *event; + struct file *perf_file; + struct file *map_file; + struct callback_head rcu; +}; + +struct bpf_fentry_test_t { + struct bpf_fentry_test_t *a; +}; + +struct bpf_fib_lookup { + __u8 family; + __u8 l4_protocol; + __be16 sport; + __be16 dport; + union { + __u16 tot_len; + __u16 mtu_result; + }; + __u32 ifindex; + union { + __u8 tos; + __be32 flowinfo; + __u32 rt_metric; + }; + union { + __be32 ipv4_src; + __u32 ipv6_src[4]; + }; + union { + __be32 ipv4_dst; + __u32 ipv6_dst[4]; + }; + union { + struct { + __be16 h_vlan_proto; + __be16 h_vlan_TCI; + }; + __u32 tbid; + }; + union { + struct { + __u32 mark; + }; + struct { + __u8 smac[6]; + __u8 dmac[6]; + }; + }; +}; + +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_func_info { + __u32 insn_off; + __u32 type_id; +}; + +struct bpf_func_info_aux { + u16 linkage; + bool unreliable; + bool called: 1; + bool verified: 1; +}; + +struct bpf_func_proto { + u64 (*func)(u64, u64, u64, u64, u64); + bool gpl_only; + bool pkt_access; + bool might_sleep; + bool allow_fastcall; + enum bpf_return_type ret_type; + union { + struct { + enum bpf_arg_type arg1_type; + enum bpf_arg_type arg2_type; + enum bpf_arg_type arg3_type; + enum bpf_arg_type arg4_type; + enum bpf_arg_type arg5_type; + }; + enum bpf_arg_type arg_type[5]; + }; + union { + struct { + u32 *arg1_btf_id; + u32 *arg2_btf_id; + u32 *arg3_btf_id; + u32 *arg4_btf_id; + u32 *arg5_btf_id; + }; + u32 *arg_btf_id[5]; + struct { + size_t arg1_size; + size_t arg2_size; + size_t arg3_size; + size_t arg4_size; + size_t arg5_size; + }; + size_t arg_size[5]; + }; + int *ret_btf_id; + bool (*allowed)(const struct bpf_prog *); +}; + +struct tnum { + u64 value; + u64 mask; +}; + +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 { + long unsigned int raw1; + long unsigned int 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_retval_range { + s32 minval; + s32 maxval; +}; + +struct bpf_stack_state; + +struct bpf_func_state { + struct bpf_reg_state regs[11]; + int callsite; + u32 frameno; + u32 subprogno; + u32 async_entry_cnt; + struct bpf_retval_range callback_ret_range; + bool in_callback_fn; + bool in_async_callback_fn; + bool in_exception_callback_fn; + u32 callback_depth; + struct bpf_stack_state *stack; + int allocated_stack; +}; + +struct bpf_hrtimer { + struct bpf_async_cb cb; + struct hrtimer timer; + atomic_t cancelling; +}; + +struct bpf_mem_caches; + +struct bpf_mem_cache; + +struct bpf_mem_alloc { + struct bpf_mem_caches *caches; + struct bpf_mem_cache *cache; + struct obj_cgroup *objcg; + bool percpu; + struct work_struct work; +}; + +struct pcpu_freelist_node; + +struct pcpu_freelist_head { + struct pcpu_freelist_node *first; + raw_spinlock_t lock; +}; + +struct pcpu_freelist { + struct pcpu_freelist_head *freelist; + struct pcpu_freelist_head extralist; +}; + +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 *percpu_lru; + }; + del_from_htab_func del_from_htab; + void *del_arg; + unsigned int hash_offset; + unsigned int nr_scans; + bool percpu; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bucket; + +struct htab_elem; + +struct bpf_htab { + struct bpf_map map; + struct bpf_mem_alloc ma; + struct bpf_mem_alloc pcpu_ma; + struct bucket *buckets; + void *elems; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + union { + struct pcpu_freelist freelist; + struct bpf_lru lru; + }; + struct htab_elem **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 *map_locked[8]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_id_pair { + u32 old; + u32 cur; +}; + +struct bpf_idmap { + u32 tmp_id_gen; + struct bpf_id_pair map[600]; +}; + +struct bpf_idset { + u32 count; + u32 ids[600]; +}; + +struct bpf_insn { + __u8 code; + __u8 dst_reg: 4; + __u8 src_reg: 4; + __s16 off; + __s32 imm; +}; + +struct bpf_insn_access_aux { + enum bpf_reg_type reg_type; + bool is_ldsx; + union { + int ctx_field_size; + struct { + struct btf *btf; + u32 btf_id; + }; + }; + struct bpf_verifier_log *log; + bool is_retval; +}; + +struct bpf_map_ptr_state { + struct bpf_map *map_ptr; + bool poison; + bool unpriv; +}; + +struct bpf_loop_inline_state { + unsigned int initialized: 1; + unsigned int fit_for_inline: 1; + u32 callback_subprogno; +}; + +struct btf_struct_meta; + +struct bpf_insn_aux_data { + union { + enum bpf_reg_type ptr_type; + struct bpf_map_ptr_state map_ptr_state; + s32 call_imm; + u32 alu_limit; + struct { + u32 map_index; + u32 map_off; + }; + struct { + enum bpf_reg_type reg_type; + union { + struct { + struct btf *btf; + u32 btf_id; + }; + u32 mem_size; + }; + } btf_var; + struct bpf_loop_inline_state loop_inline_state; + }; + union { + u64 obj_new_size; + u64 insert_off; + }; + struct btf_struct_meta *kptr_struct_meta; + u64 map_key_state; + int ctx_field_size; + u32 seen; + bool sanitize_stack_spill; + bool zext_dst; + bool needs_zext; + bool storage_get_func_atomic; + bool is_iter_next; + bool call_with_percpu_alloc_ptr; + u8 alu_state; + u8 fastcall_pattern: 1; + u8 fastcall_spills_num: 3; + unsigned int orig_idx; + bool jmp_point; + bool prune_point; + bool force_checkpoint; + bool calls_callback; +}; + +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 bpf_insn_hist_entry { + u32 idx; + u32 prev_idx: 20; + u32 flags: 12; + u64 linked_regs; +}; + +struct bpf_iter_meta; + +struct bpf_iter__bpf_link { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_link *link; + }; +}; + +struct bpf_iter__bpf_map { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; +}; + +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__bpf_prog { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_prog *prog; + }; +}; + +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__cgroup { + union { + struct bpf_iter_meta *meta; + }; + union { + struct cgroup *cgroup; + }; +}; + +struct fib6_info; + +struct bpf_iter__ipv6_route { + union { + struct bpf_iter_meta *meta; + }; + union { + struct fib6_info *rt; + }; +}; + +struct bpf_iter__kmem_cache { + union { + struct bpf_iter_meta *meta; + }; + union { + struct kmem_cache *s; + }; +}; + +struct kallsym_iter; + +struct bpf_iter__ksym { + union { + struct bpf_iter_meta *meta; + }; + union { + struct kallsym_iter *ksym; + }; +}; + +struct netlink_sock; + +struct bpf_iter__netlink { + union { + struct bpf_iter_meta *meta; + }; + union { + struct netlink_sock *sk; + }; +}; + +struct bpf_iter__sockmap { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + struct sock *sk; + }; +}; + +struct bpf_iter__task { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; +}; + +struct bpf_iter__task__safe_trusted { + struct bpf_iter_meta *meta; + struct task_struct *task; +}; + +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__task_vma { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; + union { + struct vm_area_struct *vma; + }; +}; + +struct bpf_iter__tcp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct sock_common *sk_common; + }; + uid_t uid; +}; + +struct udp_sock; + +struct bpf_iter__udp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct udp_sock *udp_sk; + }; + uid_t uid; + long: 0; + int bucket; +}; + +struct unix_sock; + +struct bpf_iter__unix { + union { + struct bpf_iter_meta *meta; + }; + union { + struct unix_sock *unix_sk; + }; + uid_t uid; +}; + +struct bpf_iter_aux_info { + struct bpf_map *map; + struct { + struct cgroup *start; + enum bpf_cgroup_iter_order order; + } cgroup; + struct { + enum bpf_iter_task_type type; + u32 pid; + } task; +}; + +struct bpf_iter_bits { + __u64 __opaque[2]; +}; + +struct bpf_iter_bits_kern { + union { + __u64 *bits; + __u64 bits_copy; + }; + int nr_bits; + int bit; +}; + +struct bpf_iter_css { + __u64 __opaque[3]; +}; + +struct bpf_iter_css_kern { + struct cgroup_subsys_state *start; + struct cgroup_subsys_state *pos; + unsigned int flags; +}; + +struct bpf_iter_css_task { + __u64 __opaque[1]; +}; + +struct css_task_iter; + +struct bpf_iter_css_task_kern { + struct css_task_iter *css_it; +}; + +struct bpf_iter_kmem_cache { + __u64 __opaque[1]; +}; + +struct bpf_iter_kmem_cache_kern { + struct kmem_cache *pos; +}; + +struct bpf_iter_target_info; + +struct bpf_iter_link { + struct bpf_link link; + struct bpf_iter_aux_info aux; + struct bpf_iter_target_info *tinfo; +}; + +union bpf_iter_link_info { + struct { + __u32 map_fd; + } map; + struct { + enum bpf_cgroup_iter_order order; + __u32 cgroup_fd; + __u64 cgroup_id; + } cgroup; + struct { + __u32 tid; + __u32 pid; + __u32 pid_fd; + } task; +}; + +struct bpf_iter_meta { + union { + struct seq_file *seq; + }; + u64 session_id; + u64 seq_num; +}; + +struct bpf_iter_meta__safe_trusted { + struct seq_file *seq; +}; + +struct bpf_iter_num { + __u64 __opaque[1]; +}; + +struct bpf_iter_num_kern { + int cur; + int end; +}; + +struct bpf_iter_seq_info; + +struct bpf_iter_priv_data { + struct bpf_iter_target_info *tinfo; + const struct bpf_iter_seq_info *seq_info; + struct bpf_prog *prog; + u64 session_id; + u64 seq_num; + bool done_stop; + long: 0; + u8 target_private[0]; +}; + +typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *); + +typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *); + +typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *); + +struct bpf_link_info; + +typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *); + +typedef const struct bpf_func_proto * (*bpf_iter_get_func_proto_t)(enum bpf_func_id, const struct bpf_prog *); + +struct bpf_iter_reg { + const char *target; + bpf_iter_attach_target_t attach_target; + bpf_iter_detach_target_t detach_target; + bpf_iter_show_fdinfo_t show_fdinfo; + bpf_iter_fill_link_info_t fill_link_info; + bpf_iter_get_func_proto_t get_func_proto; + u32 ctx_arg_info_size; + u32 feature; + struct bpf_ctx_arg_aux ctx_arg_info[2]; + const struct bpf_iter_seq_info *seq_info; +}; + +struct bpf_iter_scx_dsq { + u64 __opaque[6]; +}; + +struct scx_dsq_list_node { + struct list_head node; + u32 flags; + u32 priv; +}; + +struct scx_dispatch_q; + +struct bpf_iter_scx_dsq_kern { + struct scx_dsq_list_node cursor; + struct scx_dispatch_q *dsq; + u64 slice; + u64 vtime; +}; + +struct bpf_iter_seq_array_map_info { + struct bpf_map *map; + void *percpu_value_buf; + u32 index; +}; + +struct bpf_iter_seq_hash_map_info { + struct bpf_map *map; + struct bpf_htab *htab; + void *percpu_value_buf; + u32 bucket_id; + u32 skip_elems; +}; + +typedef int (*bpf_iter_init_seq_priv_t)(void *, struct bpf_iter_aux_info *); + +typedef void (*bpf_iter_fini_seq_priv_t)(void *); + +struct bpf_iter_seq_info { + const struct seq_operations *seq_ops; + bpf_iter_init_seq_priv_t init_seq_private; + bpf_iter_fini_seq_priv_t fini_seq_private; + u32 seq_priv_size; +}; + +struct bpf_iter_seq_link_info { + u32 link_id; +}; + +struct bpf_iter_seq_map_info { + u32 map_id; +}; + +struct bpf_iter_seq_prog_info { + u32 prog_id; +}; + +struct bpf_iter_seq_sk_storage_map_info { + struct bpf_map *map; + unsigned int bucket_id; + unsigned int skip_elems; +}; + +struct pid_namespace; + +struct bpf_iter_seq_task_common { + struct pid_namespace *ns; + enum bpf_iter_task_type type; + u32 pid; + u32 pid_visiting; +}; + +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_seq_task_info { + struct bpf_iter_seq_task_common common; + u32 tid; +}; + +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; + long unsigned int prev_vm_start; + long unsigned int prev_vm_end; +}; + +struct bpf_iter_target_info { + struct list_head list; + const struct bpf_iter_reg *reg_info; + u32 btf_id; +}; + +struct bpf_iter_task { + __u64 __opaque[3]; +}; + +struct bpf_iter_task_kern { + struct task_struct *task; + struct task_struct *pos; + unsigned int flags; +}; + +struct bpf_iter_task_vma { + __u64 __opaque[1]; +}; + +struct bpf_iter_task_vma_kern_data; + +struct bpf_iter_task_vma_kern { + struct bpf_iter_task_vma_kern_data *data; +}; + +struct maple_enode; + +struct maple_tree; + +struct maple_alloc; + +struct ma_state { + struct maple_tree *tree; + long unsigned int index; + long unsigned int last; + struct maple_enode *node; + long unsigned int min; + long unsigned int max; + struct maple_alloc *alloc; + enum maple_status status; + unsigned char depth; + unsigned char offset; + unsigned char mas_flags; + unsigned char end; + enum store_type store_type; +}; + +struct vma_iterator { + struct ma_state mas; +}; + +struct mmap_unlock_irq_work; + +struct bpf_iter_task_vma_kern_data { + struct task_struct *task; + struct mm_struct *mm; + struct mmap_unlock_irq_work *work; + struct vma_iterator vmi; +}; + +struct bpf_jit_poke_descriptor { + void *tailcall_target; + void *tailcall_bypass; + void *bypass_addr; + void *aux; + union { + struct { + struct bpf_map *map; + u32 key; + } tail_call; + }; + bool tailcall_target_stable; + u8 adj_off; + u16 reason; + u32 insn_idx; +}; + +struct bpf_key { + struct key *key; + bool has_ref; +}; + +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_kfunc_call_arg_meta { + struct btf *btf; + u32 func_id; + u32 kfunc_flags; + const struct btf_type *func_proto; + const char *func_name; + u32 ref_obj_id; + u8 release_regno; + bool r0_rdonly; + u32 ret_btf_id; + u64 r0_size; + u32 subprogno; + struct { + u64 value; + bool found; + } arg_constant; + struct btf *arg_btf; + u32 arg_btf_id; + bool arg_owning_ref; + struct { + struct btf_field *field; + } arg_list_head; + struct { + struct btf_field *field; + } arg_rbtree_root; + struct { + enum bpf_dynptr_type type; + u32 id; + u32 ref_obj_id; + } initialized_dynptr; + struct { + u8 spi; + u8 frameno; + } iter; + struct { + struct bpf_map *ptr; + int uid; + } map; + u64 mem_size; +}; + +struct bpf_kfunc_desc { + struct btf_func_model func_model; + u32 func_id; + s32 imm; + u16 offset; + long unsigned int addr; +}; + +struct bpf_kfunc_desc_tab { + struct bpf_kfunc_desc descs[256]; + u32 nr_descs; +}; + +struct fprobe; + +struct ftrace_regs; + +typedef int (*fprobe_entry_cb)(struct fprobe *, long unsigned int, long unsigned int, struct ftrace_regs *, void *); + +typedef void (*fprobe_exit_cb)(struct fprobe *, long unsigned int, long unsigned int, struct ftrace_regs *, void *); + +struct fprobe_hlist; + +struct fprobe { + long unsigned int nmissed; + unsigned int flags; + size_t entry_data_size; + fprobe_entry_cb entry_handler; + fprobe_exit_cb exit_handler; + struct fprobe_hlist *hlist_array; +}; + +struct bpf_kprobe_multi_link { + struct bpf_link link; + struct fprobe fp; + long unsigned int *addrs; + u64 *cookies; + u32 cnt; + u32 mods_cnt; + struct module **mods; + u32 flags; +}; + +struct bpf_session_run_ctx { + struct bpf_run_ctx run_ctx; + bool is_return; + void *data; +}; + +struct bpf_kprobe_multi_run_ctx { + struct bpf_session_run_ctx session_ctx; + struct bpf_kprobe_multi_link *link; + long unsigned int entry_ip; +}; + +struct bpf_line_info { + __u32 insn_off; + __u32 file_name_off; + __u32 line_off; + __u32 line_col; +}; + +struct bpf_link_info { + __u32 type; + __u32 id; + __u32 prog_id; + union { + struct { + __u64 tp_name; + __u32 tp_name_len; + } raw_tracepoint; + struct { + __u32 attach_type; + __u32 target_obj_id; + __u32 target_btf_id; + } tracing; + struct { + __u64 cgroup_id; + __u32 attach_type; + } cgroup; + struct { + __u64 target_name; + __u32 target_name_len; + union { + struct { + __u32 map_id; + } map; + }; + union { + struct { + __u64 cgroup_id; + __u32 order; + } cgroup; + struct { + __u32 tid; + __u32 pid; + } task; + }; + } iter; + struct { + __u32 netns_ino; + __u32 attach_type; + } netns; + struct { + __u32 ifindex; + } xdp; + struct { + __u32 map_id; + } struct_ops; + struct { + __u32 pf; + __u32 hooknum; + __s32 priority; + __u32 flags; + } netfilter; + struct { + __u64 addrs; + __u32 count; + __u32 flags; + __u64 missed; + __u64 cookies; + } kprobe_multi; + struct { + __u64 path; + __u64 offsets; + __u64 ref_ctr_offsets; + __u64 cookies; + __u32 path_size; + __u32 count; + __u32 flags; + __u32 pid; + } uprobe_multi; + struct { + __u32 type; + union { + struct { + __u64 file_name; + __u32 name_len; + __u32 offset; + __u64 cookie; + } uprobe; + struct { + __u64 func_name; + __u32 name_len; + __u32 offset; + __u64 addr; + __u64 missed; + __u64 cookie; + } kprobe; + struct { + __u64 tp_name; + __u32 name_len; + __u64 cookie; + } tracepoint; + struct { + __u64 config; + __u32 type; + __u64 cookie; + } event; + }; + } perf_event; + struct { + __u32 ifindex; + __u32 attach_type; + } tcx; + struct { + __u32 ifindex; + __u32 attach_type; + } netkit; + struct { + __u32 map_id; + __u32 attach_type; + } sockmap; + }; +}; + +struct bpf_link_ops { + void (*release)(struct bpf_link *); + void (*dealloc)(struct bpf_link *); + void (*dealloc_deferred)(struct bpf_link *); + int (*detach)(struct bpf_link *); + int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); + void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); + int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); + int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); + __poll_t (*poll)(struct file *, struct poll_table_struct *); +}; + +struct bpf_link_primer { + struct bpf_link *link; + struct file *file; + int fd; + u32 id; +}; + +struct bpf_list_head { + __u64 __opaque[2]; +}; + +struct bpf_list_node { + __u64 __opaque[3]; +}; + +struct bpf_list_node_kern { + struct list_head list_head; + void *owner; +}; + +struct bpf_local_storage_data; + +struct bpf_local_storage_map; + +struct bpf_local_storage { + struct bpf_local_storage_data *cache[16]; + struct bpf_local_storage_map *smap; + struct hlist_head list; + void *owner; + struct callback_head rcu; + raw_spinlock_t lock; +}; + +struct bpf_local_storage_cache { + spinlock_t idx_lock; + u64 idx_usage_counts[16]; +}; + +struct bpf_local_storage_data { + struct bpf_local_storage_map *smap; + u8 data[0]; +}; + +struct bpf_local_storage_elem { + struct hlist_node map_node; + struct hlist_node snode; + struct bpf_local_storage *local_storage; + union { + struct callback_head rcu; + struct hlist_node free_node; + }; + long: 64; + struct bpf_local_storage_data sdata; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_local_storage_map_bucket; + +struct bpf_local_storage_map { + struct bpf_map map; + struct bpf_local_storage_map_bucket *buckets; + u32 bucket_log; + u16 elem_size; + u16 cache_idx; + struct bpf_mem_alloc selem_ma; + struct bpf_mem_alloc storage_ma; + bool bpf_ma; +}; + +struct bpf_local_storage_map_bucket { + struct hlist_head list; + raw_spinlock_t lock; +}; + +struct bpf_lpm_trie_key_hdr { + __u32 prefixlen; +}; + +struct bpf_lpm_trie_key_u8 { + union { + struct bpf_lpm_trie_key_hdr hdr; + __u32 prefixlen; + }; + __u8 data[0]; +}; + +struct bpf_lru_locallist { + struct list_head lists[2]; + u16 next_steal; + raw_spinlock_t lock; +}; + +struct bpf_lru_node { + struct list_head list; + u16 cpu; + u8 type; + u8 ref; +}; + +struct bpf_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; +}; + +struct bpf_offloaded_map; + +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 bpf_map_info { + __u32 type; + __u32 id; + __u32 key_size; + __u32 value_size; + __u32 max_entries; + __u32 map_flags; + char name[16]; + __u32 ifindex; + __u32 btf_vmlinux_value_type_id; + __u64 netns_dev; + __u64 netns_ino; + __u32 btf_id; + __u32 btf_key_type_id; + __u32 btf_value_type_id; + __u32 btf_vmlinux_id; + __u64 map_extra; +}; + +typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64); + +struct bpf_prog_aux; + +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 *); + 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 *); + int (*map_update_batch)(struct bpf_map *, struct file *, const union bpf_attr *, union bpf_attr *); + int (*map_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *); + void * (*map_lookup_elem)(struct bpf_map *, void *); + long int (*map_update_elem)(struct bpf_map *, void *, void *, u64); + long int (*map_delete_elem)(struct bpf_map *, void *); + long int (*map_push_elem)(struct bpf_map *, void *, u64); + long int (*map_pop_elem)(struct bpf_map *, void *); + long 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)(struct bpf_map *, void *, bool); + int (*map_gen_lookup)(struct bpf_map *, struct bpf_insn *); + u32 (*map_fd_sys_lookup_elem)(void *); + void (*map_seq_show_elem)(struct bpf_map *, void *, struct seq_file *); + int (*map_check_btf)(const struct bpf_map *, const struct btf *, const struct btf_type *, const struct btf_type *); + int (*map_poke_track)(struct bpf_map *, struct bpf_prog_aux *); + void (*map_poke_untrack)(struct bpf_map *, struct bpf_prog_aux *); + void (*map_poke_run)(struct bpf_map *, u32, struct bpf_prog *, struct bpf_prog *); + int (*map_direct_value_addr)(const struct bpf_map *, u64 *, u32); + int (*map_direct_value_meta)(const struct bpf_map *, u64, u32 *); + int (*map_mmap)(struct bpf_map *, struct vm_area_struct *); + __poll_t (*map_poll)(struct bpf_map *, struct file *, struct poll_table_struct *); + long unsigned int (*map_get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + 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 ** (*map_owner_storage_ptr)(void *); + long 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 *); + long 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; +}; + +struct rcuwait { + struct task_struct *task; +}; + +struct irq_work { + struct __call_single_node node; + void (*func)(struct irq_work *); + struct rcuwait irqwait; +}; + +struct bpf_mem_cache { + struct llist_head free_llist; + local_t active; + struct llist_head free_llist_extra; + struct irq_work refill_work; + struct obj_cgroup *objcg; + int unit_size; + int free_cnt; + int low_watermark; + int high_watermark; + int batch; + int percpu_size; + bool draining; + struct bpf_mem_cache *tgt; + struct llist_head free_by_rcu; + struct llist_node *free_by_rcu_tail; + struct llist_head waiting_for_gp; + struct llist_node *waiting_for_gp_tail; + struct callback_head rcu; + atomic_t call_rcu_in_progress; + struct llist_head free_llist_extra_rcu; + struct llist_head free_by_rcu_ttrace; + struct llist_head waiting_for_gp_ttrace; + struct callback_head rcu_ttrace; + atomic_t call_rcu_ttrace_in_progress; +}; + +struct bpf_mem_caches { + struct bpf_mem_cache cache[11]; +}; + +struct bpf_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + u64 delegate_cmds; + u64 delegate_maps; + u64 delegate_progs; + u64 delegate_attachs; +}; + +struct bpf_mprog_fp { + struct bpf_prog *prog; +}; + +struct bpf_mprog_bundle; + +struct bpf_mprog_entry { + struct bpf_mprog_fp fp_items[64]; + struct bpf_mprog_bundle *parent; +}; + +struct bpf_mprog_cp { + struct bpf_link *link; +}; + +struct bpf_mprog_bundle { + struct bpf_mprog_entry a; + struct bpf_mprog_entry b; + struct bpf_mprog_cp cp_items[64]; + struct bpf_prog *ref; + atomic64_t revision; + u32 count; +}; + +struct bpf_nested_pt_regs { + struct pt_regs regs[3]; +}; + +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 map_id; + enum bpf_map_type map_type; + struct bpf_nh_params nh; + u32 kern_flags; +}; + +struct bpf_net_context { + struct bpf_redirect_info ri; + struct list_head cpu_map_flush_list; + struct list_head dev_map_flush_list; + struct list_head xskmap_map_flush_list; +}; + +struct bpf_netns_link { + struct bpf_link link; + enum bpf_attach_type type; + enum netns_bpf_attach_type netns_type; + struct net *net; + struct list_head node; +}; + +typedef unsigned int nf_hookfn(void *, struct sk_buff *, const struct nf_hook_state *); + +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_defrag_hook; + +struct bpf_nf_link { + struct bpf_link link; + struct nf_hook_ops hook_ops; + netns_tracker ns_tracker; + struct net *net; + u32 dead; + const struct nf_defrag_hook *defrag_hook; +}; + +struct bpf_prog_offload_ops; + +struct bpf_offload_dev { + const struct bpf_prog_offload_ops *ops; + struct list_head netdevs; + void *priv; +}; + +struct bpf_offload_netdev { + struct rhash_head l; + struct net_device *netdev; + struct bpf_offload_dev *offdev; + struct list_head progs; + struct list_head maps; + struct list_head offdev_netdevs; +}; + +struct 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; +}; + +struct bpf_perf_event_value { + __u64 counter; + __u64 enabled; + __u64 running; +}; + +struct bpf_perf_link { + struct bpf_link link; + struct file *perf_file; +}; + +struct bpf_pidns_info { + __u32 pid; + __u32 tgid; +}; + +struct bpf_preload_info { + char link_name[16]; + struct bpf_link *link; +}; + +struct bpf_preload_ops { + int (*preload)(struct bpf_preload_info *); + struct module *owner; +}; + +struct sock_filter { + __u16 code; + __u8 jt; + __u8 jf; + __u32 k; +}; + +struct bpf_prog_stats; + +struct sock_fprog_kern; + +struct bpf_prog { + u16 pages; + u16 jited: 1; + u16 jit_requested: 1; + u16 gpl_compatible: 1; + u16 cb_access: 1; + u16 dst_needed: 1; + u16 blinding_requested: 1; + u16 blinded: 1; + u16 is_func: 1; + u16 kprobe_override: 1; + u16 has_callchain_buf: 1; + u16 enforce_expected_attach_type: 1; + u16 call_get_stack: 1; + u16 call_get_func_ip: 1; + u16 tstamp_type_access: 1; + u16 sleepable: 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 *stats; + int *active; + unsigned int (*bpf_func)(const void *, const struct bpf_insn *); + struct bpf_prog_aux *aux; + struct sock_fprog_kern *orig_prog; + union { + struct { + struct {} __empty_insns; + struct sock_filter insns[0]; + }; + struct { + struct {} __empty_insnsi; + struct bpf_insn insnsi[0]; + }; + }; +}; + +struct bpf_trampoline; + +struct bpf_prog_ops; + +struct btf_mod_pair; + +struct user_struct; + +struct bpf_token; + +struct bpf_prog_offload; + +struct exception_table_entry; + +struct bpf_prog_aux { + atomic64_t refcnt; + u32 used_map_cnt; + u32 used_btf_cnt; + u32 max_ctx_offset; + u32 max_pkt_offset; + u32 max_tp_access; + u32 stack_depth; + u32 id; + u32 func_cnt; + u32 real_func_cnt; + u32 func_idx; + u32 attach_btf_id; + u32 ctx_arg_info_size; + u32 max_rdonly_access; + u32 max_rdwr_access; + struct btf *attach_btf; + struct bpf_ctx_arg_aux *ctx_arg_info; + void *priv_stack_ptr; + 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 attach_tracing_prog; + bool func_proto_unreliable; + bool tail_call_reachable; + bool xdp_has_frags; + bool exception_cb; + bool exception_boundary; + bool is_extended; + bool jits_use_priv_stack; + bool priv_stack_requested; + bool changes_pkt_data; + u64 prog_array_member_cnt; + struct mutex ext_mutex; + struct bpf_arena *arena; + void (*recursion_detected)(struct bpf_prog *); + 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]; + u64 (*bpf_exception_cb)(u64, u64, u64, u64, u64); + void *security; + struct bpf_token *token; + struct bpf_prog_offload *offload; + struct btf *btf; + struct bpf_func_info *func_info; + struct bpf_func_info_aux *func_info_aux; + struct bpf_line_info *linfo; + void **jited_linfo; + u32 func_info_cnt; + u32 nr_linfo; + u32 linfo_idx; + struct module *mod; + u32 num_exentries; + struct exception_table_entry *extable; + union { + struct work_struct work; + struct callback_head rcu; + }; +}; + +struct bpf_prog_dummy { + struct bpf_prog prog; +}; + +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_prog_kstats { + u64 nsecs; + u64 cnt; + u64 misses; +}; + +struct bpf_prog_list { + struct hlist_node node; + struct bpf_prog *prog; + struct bpf_cgroup_link *link; + struct bpf_cgroup_storage *storage[2]; + u32 flags; +}; + +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_prog_offload_ops { + int (*insn_hook)(struct bpf_verifier_env *, int, int); + int (*finalize)(struct bpf_verifier_env *); + int (*replace_insn)(struct bpf_verifier_env *, u32, struct bpf_insn *); + int (*remove_insns)(struct bpf_verifier_env *, u32, u32); + int (*prepare)(struct bpf_prog *); + int (*translate)(struct bpf_prog *); + void (*destroy)(struct bpf_prog *); +}; + +struct bpf_prog_ops { + int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr *); +}; + +struct bpf_prog_pack { + struct list_head list; + void *ptr; + long unsigned int bitmap[0]; +}; + +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_queue_stack { + struct bpf_map map; + raw_spinlock_t lock; + u32 head; + u32 tail; + u32 size; + char elements[0]; +}; + +struct bpf_raw_event_map { + struct tracepoint *tp; + void *bpf_func; + u32 num_args; + u32 writable_size; + long: 64; +}; + +struct bpf_raw_tp_link { + struct bpf_link link; + struct bpf_raw_event_map *btp; + u64 cookie; +}; + +struct bpf_raw_tp_null_args { + const char *func; + u64 mask; +}; + +struct bpf_raw_tp_regs { + struct pt_regs regs[3]; +}; + +struct bpf_raw_tp_test_run_info { + struct bpf_prog *prog; + void *ctx; + u32 retval; +}; + +struct bpf_rb_node { + __u64 __opaque[4]; +}; + +struct bpf_rb_node_kern { + struct rb_node rb_node; + void *owner; +}; + +struct bpf_rb_root { + __u64 __opaque[2]; +}; + +struct bpf_redir_neigh { + __u32 nh_family; + union { + __be32 ipv4_nh; + __u32 ipv6_nh[4]; + }; +}; + +struct bpf_refcount { + __u32 __opaque[1]; +}; + +struct bpf_reference_state { + enum ref_state_type type; + int id; + int insn_idx; + void *ptr; +}; + +struct bpf_reg_types { + const enum bpf_reg_type types[10]; + u32 *btf_id; +}; + +struct bpf_ringbuf { + wait_queue_head_t waitq; + struct irq_work work; + u64 mask; + struct page **pages; + int nr_pages; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + raw_spinlock_t spinlock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_t busy; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long unsigned int 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; + long unsigned int producer_pos; + long unsigned int pending_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; + char data[0]; +}; + +struct bpf_ringbuf_hdr { + u32 len; + u32 pg_off; +}; + +struct bpf_ringbuf_map { + struct bpf_map map; + struct bpf_ringbuf *rb; +}; + +struct bpf_sanitize_info { + struct bpf_insn_aux_data aux; + bool mask_to_left; +}; + +struct bpf_security_struct { + u32 sid; +}; + +struct bpf_tramp_link { + struct bpf_link link; + struct hlist_node tramp_hlist; + u64 cookie; +}; + +struct bpf_shim_tramp_link { + struct bpf_tramp_link link; + struct bpf_trampoline *trampoline; +}; + +struct sk_psock_progs { + struct bpf_prog *msg_parser; + struct bpf_prog *stream_parser; + struct bpf_prog *stream_verdict; + struct bpf_prog *skb_verdict; + struct bpf_link *msg_parser_link; + struct bpf_link *stream_parser_link; + struct bpf_link *stream_verdict_link; + struct bpf_link *skb_verdict_link; +}; + +struct bpf_shtab_bucket; + +struct bpf_shtab { + struct bpf_map map; + struct bpf_shtab_bucket *buckets; + u32 buckets_num; + u32 elem_size; + struct sk_psock_progs progs; + atomic_t count; +}; + +struct bpf_shtab_bucket { + struct hlist_head head; + spinlock_t lock; +}; + +struct bpf_shtab_elem { + struct callback_head rcu; + u32 hash; + struct sock *sk; + struct hlist_node node; + u8 key[0]; +}; + +struct bpf_sk_storage_diag { + u32 nr_maps; + struct bpf_map *maps[0]; +}; + +struct qdisc_skb_cb { + struct { + unsigned int pkt_len; + u16 slave_dev_queue_mapping; + u16 tc_classid; + }; + unsigned char data[20]; +}; + +struct bpf_skb_data_end { + struct qdisc_skb_cb qdisc_cb; + void *data_meta; + void *data_end; +}; + +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_sockopt_buf { + u8 data[32]; +}; + +struct bpf_stab { + struct bpf_map map; + struct sock **sks; + struct sk_psock_progs progs; + spinlock_t lock; +}; + +struct bpf_stack_build_id { + __s32 status; + unsigned char build_id[20]; + union { + __u64 offset; + __u64 ip; + }; +}; + +struct stack_map_bucket; + +struct bpf_stack_map { + struct bpf_map map; + void *elems; + struct pcpu_freelist freelist; + u32 n_buckets; + struct stack_map_bucket *buckets[0]; +}; + +struct bpf_stack_state { + struct bpf_reg_state spilled_ptr; + u8 slot_type[8]; +}; + +struct bpf_storage_blob { + struct bpf_local_storage *storage; +}; + +struct bpf_storage_buffer { + struct callback_head rcu; + char data[0]; +}; + +struct bpf_verifier_ops; + +struct btf_member; + +struct bpf_struct_ops { + const struct bpf_verifier_ops *verifier_ops; + int (*init)(struct btf *); + int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); + int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); + int (*reg)(void *, struct bpf_link *); + void (*unreg)(void *, struct bpf_link *); + int (*update)(void *, void *, struct bpf_link *); + int (*validate)(void *); + void *cfi_stubs; + struct module *owner; + const char *name; + struct btf_func_model func_models[64]; +}; + +struct bpf_struct_ops_arg_info { + struct bpf_ctx_arg_aux *info; + u32 cnt; +}; + +struct bpf_struct_ops_common_value { + refcount_t refcnt; + enum bpf_struct_ops_state state; +}; + +struct bpf_struct_ops_bpf_dummy_ops { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct bpf_dummy_ops data; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_struct_ops_desc { + struct bpf_struct_ops *st_ops; + const struct btf_type *type; + const struct btf_type *value_type; + u32 type_id; + u32 value_id; + struct bpf_struct_ops_arg_info *arg_info; +}; + +struct hid_bpf_ctx; + +struct hid_device; + +struct hid_bpf_ops { + int hid_id; + u32 flags; + struct list_head list; + int (*hid_device_event)(struct hid_bpf_ctx *, enum hid_report_type, u64); + int (*hid_rdesc_fixup)(struct hid_bpf_ctx *); + int (*hid_hw_request)(struct hid_bpf_ctx *, unsigned char, enum hid_report_type, enum hid_class_request, u64); + int (*hid_hw_output_report)(struct hid_bpf_ctx *, u64); + struct hid_device *hdev; +}; + +struct bpf_struct_ops_hid_bpf_ops { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct hid_bpf_ops data; +}; + +struct bpf_struct_ops_link { + struct bpf_link link; + struct bpf_map *map; + wait_queue_head_t wait_hup; +}; + +struct bpf_struct_ops_value { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + char data[0]; +}; + +struct bpf_struct_ops_map { + struct bpf_map map; + const struct bpf_struct_ops_desc *st_ops_desc; + struct mutex lock; + struct bpf_link **links; + struct bpf_ksym **ksyms; + u32 funcs_cnt; + u32 image_pages_cnt; + void *image_pages[8]; + struct btf *btf; + struct bpf_struct_ops_value *uvalue; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct bpf_struct_ops_value kvalue; +}; + +struct scx_cpu_acquire_args; + +struct scx_cpu_release_args; + +struct scx_init_task_args; + +struct scx_exit_task_args; + +struct scx_dump_ctx; + +struct scx_cgroup_init_args; + +struct scx_exit_info; + +struct sched_ext_ops { + s32 (*select_cpu)(struct task_struct *, s32, u64); + void (*enqueue)(struct task_struct *, u64); + void (*dequeue)(struct task_struct *, u64); + void (*dispatch)(s32, struct task_struct *); + void (*tick)(struct task_struct *); + void (*runnable)(struct task_struct *, u64); + void (*running)(struct task_struct *); + void (*stopping)(struct task_struct *, bool); + void (*quiescent)(struct task_struct *, u64); + bool (*yield)(struct task_struct *, struct task_struct *); + bool (*core_sched_before)(struct task_struct *, struct task_struct *); + void (*set_weight)(struct task_struct *, u32); + void (*set_cpumask)(struct task_struct *, const struct cpumask *); + void (*update_idle)(s32, bool); + void (*cpu_acquire)(s32, struct scx_cpu_acquire_args *); + void (*cpu_release)(s32, struct scx_cpu_release_args *); + s32 (*init_task)(struct task_struct *, struct scx_init_task_args *); + void (*exit_task)(struct task_struct *, struct scx_exit_task_args *); + void (*enable)(struct task_struct *); + void (*disable)(struct task_struct *); + void (*dump)(struct scx_dump_ctx *); + void (*dump_cpu)(struct scx_dump_ctx *, s32, bool); + void (*dump_task)(struct scx_dump_ctx *, struct task_struct *); + s32 (*cgroup_init)(struct cgroup *, struct scx_cgroup_init_args *); + void (*cgroup_exit)(struct cgroup *); + s32 (*cgroup_prep_move)(struct task_struct *, struct cgroup *, struct cgroup *); + void (*cgroup_move)(struct task_struct *, struct cgroup *, struct cgroup *); + void (*cgroup_cancel_move)(struct task_struct *, struct cgroup *, struct cgroup *); + void (*cgroup_set_weight)(struct cgroup *, u32); + void (*cpu_online)(s32); + void (*cpu_offline)(s32); + s32 (*init)(void); + void (*exit)(struct scx_exit_info *); + u32 dispatch_max_batch; + u64 flags; + u32 timeout_ms; + u32 exit_dump_len; + u64 hotplug_seq; + char name[128]; +}; + +struct bpf_struct_ops_sched_ext_ops { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sched_ext_ops data; + long: 64; + long: 64; + long: 64; +}; + +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 *, u32, int, 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 bpf_struct_ops_tcp_congestion_ops { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct tcp_congestion_ops data; +}; + +struct bpf_subprog_arg_info { + enum bpf_arg_type arg_type; + union { + u32 mem_size; + u32 btf_id; + }; +}; + +struct bpf_subprog_info { + u32 start; + u32 linfo_idx; + u16 stack_depth; + u16 stack_extra; + s16 fastcall_stack_off; + bool has_tail_call: 1; + bool tail_call_reachable: 1; + bool has_ld_abs: 1; + bool is_cb: 1; + bool is_async_cb: 1; + bool is_exception_cb: 1; + bool args_cached: 1; + bool keep_fastcall_stack: 1; + bool changes_pkt_data: 1; + enum priv_stack_mode priv_stack_mode; + u8 arg_cnt; + struct bpf_subprog_arg_info args[5]; +}; + +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_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 bpf_tcp_req_attrs { + u32 rcv_tsval; + u32 rcv_tsecr; + u16 mss; + u8 rcv_wscale; + u8 snd_wscale; + u8 ecn_ok; + u8 wscale_ok; + u8 sack_ok; + u8 tstamp_ok; + u8 usec_ts_ok; + u8 reserved[3]; +}; + +struct bpf_tcp_sock { + __u32 snd_cwnd; + __u32 srtt_us; + __u32 rtt_min; + __u32 snd_ssthresh; + __u32 rcv_nxt; + __u32 snd_nxt; + __u32 snd_una; + __u32 mss_cache; + __u32 ecn_flags; + __u32 rate_delivered; + __u32 rate_interval_us; + __u32 packets_out; + __u32 retrans_out; + __u32 total_retrans; + __u32 segs_in; + __u32 data_segs_in; + __u32 segs_out; + __u32 data_segs_out; + __u32 lost_out; + __u32 sacked_out; + __u64 bytes_received; + __u64 bytes_acked; + __u32 dsack_dups; + __u32 delivered; + __u32 delivered_ce; + __u32 icsk_retransmits; +}; + +struct bpf_test_timer { + enum { + NO_PREEMPT = 0, + NO_MIGRATE = 1, + } mode; + u32 i; + u64 time_start; + u64 time_spent; +}; + +struct bpf_throw_ctx { + struct bpf_prog_aux *aux; + u64 sp; + u64 bp; + int cnt; +}; + +struct bpf_timer { + __u64 __opaque[2]; +}; + +struct user_namespace; + +struct bpf_token { + struct work_struct work; + atomic64_t refcnt; + struct user_namespace *userns; + u64 allowed_cmds; + u64 allowed_maps; + u64 allowed_progs; + u64 allowed_attachs; + void *security; +}; + +struct bpf_trace_module { + struct module *module; + struct list_head list; +}; + +struct bpf_trace_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + bool is_uprobe; +}; + +union perf_sample_weight { + __u64 full; + struct { + __u32 var1_dw; + __u16 var2_w; + __u16 var3_w; + }; +}; + +union perf_mem_data_src { + __u64 val; + struct { + __u64 mem_op: 5; + __u64 mem_lvl: 14; + __u64 mem_snoop: 5; + __u64 mem_lock: 2; + __u64 mem_dtlb: 7; + __u64 mem_lvl_num: 4; + __u64 mem_remote: 1; + __u64 mem_snoopx: 2; + __u64 mem_blk: 3; + __u64 mem_hops: 3; + __u64 mem_rsvd: 18; + }; +}; + +struct perf_regs { + __u64 abi; + struct pt_regs *regs; +}; + +struct perf_callchain_entry; + +struct perf_raw_record; + +struct perf_branch_stack; + +struct perf_sample_data { + u64 sample_flags; + u64 period; + u64 dyn_size; + u64 type; + struct { + u32 pid; + u32 tid; + } tid_entry; + u64 time; + u64 id; + struct { + u32 cpu; + u32 reserved; + } cpu_entry; + u64 ip; + struct perf_callchain_entry *callchain; + struct perf_raw_record *raw; + struct perf_branch_stack *br_stack; + u64 *br_stack_cntr; + union perf_sample_weight weight; + union perf_mem_data_src data_src; + u64 txn; + struct perf_regs regs_user; + struct perf_regs regs_intr; + u64 stack_user_size; + u64 stream_id; + u64 cgroup; + u64 addr; + u64 phys_addr; + u64 data_page_size; + u64 code_page_size; + u64 aux_size; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_trace_sample_data { + struct perf_sample_data sds[3]; +}; + +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_tramp_image { + void *image; + int size; + 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 bpf_tramp_links { + struct bpf_tramp_link *links[38]; + int nr_links; +}; + +struct bpf_tramp_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + struct bpf_run_ctx *saved_run_ctx; +}; + +struct ftrace_ops; + +struct bpf_trampoline { + struct hlist_node hlist; + struct ftrace_ops *fops; + struct mutex mutex; + refcount_t refcnt; + u32 flags; + u64 key; + struct { + struct btf_func_model model; + void *addr; + bool ftrace_managed; + } func; + struct bpf_prog *extension_prog; + struct hlist_head progs_hlist[3]; + int progs_cnt[3]; + struct bpf_tramp_image *cur_image; +}; + +struct bpf_tunnel_key { + __u32 tunnel_id; + union { + __u32 remote_ipv4; + __u32 remote_ipv6[4]; + }; + __u8 tunnel_tos; + __u8 tunnel_ttl; + union { + __u16 tunnel_ext; + __be16 tunnel_flags; + }; + __u32 tunnel_label; + union { + __u32 local_ipv4; + __u32 local_ipv6[4]; + }; +}; + +struct bpf_tuple { + struct bpf_prog *prog; + struct bpf_link *link; +}; + +struct udp_iter_state { + struct seq_net_private p; + int bucket; +}; + +struct bpf_udp_iter_state { + struct udp_iter_state state; + unsigned int cur_sk; + unsigned int end_sk; + unsigned int max_sk; + int offset; + struct sock **batch; + bool st_bucket_done; +}; + +struct 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 uprobe_consumer { + int (*handler)(struct uprobe_consumer *, struct pt_regs *, __u64 *); + int (*ret_handler)(struct uprobe_consumer *, long unsigned int, struct pt_regs *, __u64 *); + bool (*filter)(struct uprobe_consumer *, struct mm_struct *); + struct list_head cons_node; + __u64 id; +}; + +struct bpf_uprobe_multi_link; + +struct uprobe; + +struct bpf_uprobe { + struct bpf_uprobe_multi_link *link; + loff_t offset; + long unsigned int ref_ctr_offset; + u64 cookie; + struct uprobe *uprobe; + struct uprobe_consumer consumer; + bool session; +}; + +struct bpf_uprobe_multi_link { + struct path path; + struct bpf_link link; + u32 cnt; + u32 flags; + struct bpf_uprobe *uprobes; + struct task_struct *task; +}; + +struct bpf_uprobe_multi_run_ctx { + struct bpf_session_run_ctx session_ctx; + long unsigned int entry_ip; + struct bpf_uprobe *uprobe; +}; + +struct btf_mod_pair { + struct btf *btf; + struct module *module; +}; + +struct bpf_verifier_log { + u64 start_pos; + u64 end_pos; + char *ubuf; + u32 level; + u32 len_total; + u32 len_max; + char kbuf[1024]; +}; + +struct bpf_verifier_stack_elem; + +struct bpf_verifier_state; + +struct bpf_verifier_state_list; + +struct bpf_verifier_env { + u32 insn_idx; + u32 prev_insn_idx; + struct bpf_prog *prog; + const struct bpf_verifier_ops *ops; + struct module *attach_btf_mod; + struct bpf_verifier_stack_elem *head; + int stack_size; + bool strict_alignment; + bool test_state_freq; + bool test_reg_invariants; + struct bpf_verifier_state *cur_state; + struct bpf_verifier_state_list **explored_states; + struct bpf_verifier_state_list *free_list; + struct bpf_map *used_maps[64]; + struct btf_mod_pair used_btfs[64]; + u32 used_map_cnt; + u32 used_btf_cnt; + u32 id_gen; + u32 hidden_subprog_cnt; + int exception_callback_subprog; + bool explore_alu_limits; + bool allow_ptr_leaks; + bool allow_uninit_stack; + bool bpf_capable; + bool bypass_spec_v1; + bool bypass_spec_v4; + bool seen_direct_write; + bool seen_exception; + struct bpf_insn_aux_data *insn_aux_data; + const struct bpf_line_info *prev_linfo; + struct bpf_verifier_log log; + struct bpf_subprog_info subprog_info[258]; + union { + struct bpf_idmap idmap_scratch; + struct bpf_idset idset_scratch; + }; + struct { + int *insn_state; + int *insn_stack; + int cur_stack; + } cfg; + struct backtrack_state bt; + struct bpf_insn_hist_entry *insn_hist; + struct bpf_insn_hist_entry *cur_hist_ent; + u32 insn_hist_cap; + u32 pass_cnt; + u32 subprog_cnt; + u32 prev_insn_processed; + u32 insn_processed; + u32 prev_jmps_processed; + u32 jmps_processed; + u64 verification_time; + u32 max_states_per_insn; + u32 total_states; + u32 peak_states; + u32 longest_mark_read_walk; + bpfptr_t fd_array; + u32 scratched_regs; + u64 scratched_stack_slots; + u64 prev_log_pos; + u64 prev_insn_print_pos; + struct bpf_reg_state fake_reg[2]; + char tmp_str_buf[320]; + struct bpf_insn insn_buf[32]; + struct bpf_insn epilogue_buf[32]; +}; + +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_epilogue)(struct bpf_insn *, const struct bpf_prog *, s16); + int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); + u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int); +}; + +struct bpf_verifier_state { + struct bpf_func_state *frame[8]; + struct bpf_verifier_state *parent; + struct bpf_reference_state *refs; + u32 branches; + u32 insn_idx; + u32 curframe; + u32 acquired_refs; + u32 active_locks; + u32 active_preempt_locks; + u32 active_irq_id; + bool active_rcu_lock; + bool speculative; + bool used_as_loop_entry; + bool in_sleepable; + u32 first_insn_idx; + u32 last_insn_idx; + struct bpf_verifier_state *loop_entry; + u32 insn_hist_start; + u32 insn_hist_end; + u32 dfs_depth; + u32 callback_unroll_depth; + u32 may_goto_depth; +}; + +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_verifier_state_list { + struct bpf_verifier_state state; + struct bpf_verifier_state_list *next; + int miss_cnt; + int hit_cnt; +}; + +struct bpf_work { + struct bpf_async_cb cb; + struct work_struct work; + struct work_struct delete_work; +}; + +struct bpf_wq { + __u64 __opaque[2]; +}; + +struct bpf_xdp_link; + +struct bpf_xdp_entity { + struct bpf_prog *prog; + struct bpf_xdp_link *link; +}; + +struct bpf_xdp_link { + struct bpf_link link; + struct net_device *dev; + int flags; +}; + +struct bpf_xdp_sock { + __u32 queue_id; +}; + +struct bpf_xfrm_state { + __u32 reqid; + __u32 spi; + __u16 family; + __u16 ext; + union { + __u32 remote_ipv4; + __u32 remote_ipv6[4]; + }; +}; + +struct bpf_xfrm_state_opts { + s32 error; + s32 netns_id; + u32 mark; + xfrm_address_t daddr; + __be32 spi; + u8 proto; + u16 family; +}; + +struct bpffs_btf_enums { + const struct btf *btf; + const struct btf_type *cmd_t; + const struct btf_type *map_t; + const struct btf_type *prog_t; + const struct btf_type *attach_t; +}; + +struct trace_entry { + short unsigned int type; + unsigned char flags; + unsigned char preempt_count; + int pid; +}; + +struct bprint_entry { + struct trace_entry ent; + long unsigned int ip; + const char *fmt; + u32 buf[0]; +}; + +struct bputs_entry { + struct trace_entry ent; + long unsigned int ip; + const char *str; +}; + +struct br_input_skb_cb { + struct net_device *brdev; + u16 frag_max_size; + u8 igmp; + u8 mrouters_only: 1; + u8 proxyarp_replied: 1; + u8 src_port_isolated: 1; + u8 promisc: 1; + u8 vlan_filtered: 1; + u8 br_netfilter_broute: 1; + u8 tx_fwd_offload: 1; + int src_hwdom; + long unsigned int fwd_hwdoms; + u32 backup_nhid; +}; + +struct br_ip { + union { + __be32 ip4; + struct in6_addr ip6; + } src; + union { + __be32 ip4; + struct in6_addr ip6; + unsigned char mac_addr[6]; + } dst; + __be16 proto; + __u16 vid; +}; + +struct br_mcast_stats { + __u64 igmp_v1queries[2]; + __u64 igmp_v2queries[2]; + __u64 igmp_v3queries[2]; + __u64 igmp_leaves[2]; + __u64 igmp_v1reports[2]; + __u64 igmp_v2reports[2]; + __u64 igmp_v3reports[2]; + __u64 igmp_parse_errors; + __u64 mld_v1queries[2]; + __u64 mld_v2queries[2]; + __u64 mld_leaves[2]; + __u64 mld_v1reports[2]; + __u64 mld_v2reports[2]; + __u64 mld_parse_errors; + __u64 mcast_bytes[2]; + __u64 mcast_packets[2]; +}; + +struct br_mdb_entry { + __u32 ifindex; + __u8 state; + __u8 flags; + __u16 vid; + struct { + union { + __be32 ip4; + struct in6_addr ip6; + unsigned char mac_addr[6]; + } u; + __be16 proto; + } addr; +}; + +struct br_port_msg { + __u8 family; + __u32 ifindex; +}; + +struct metadata_dst; + +struct br_tunnel_info { + __be64 tunnel_id; + struct metadata_dst *tunnel_dst; +}; + +struct branch_entry { + union { + struct { + u64 ip: 58; + u64 ip_sign_ext: 5; + u64 mispredict: 1; + } split; + u64 full; + } from; + union { + struct { + u64 ip: 58; + u64 ip_sign_ext: 3; + u64 reserved: 1; + u64 spec: 1; + u64 valid: 1; + } split; + u64 full; + } to; +}; + +struct bridge_id { + unsigned char prio[2]; + unsigned char addr[6]; +}; + +typedef struct bridge_id bridge_id; + +struct bridge_mcast_other_query { + struct timer_list timer; + struct timer_list delay_timer; +}; + +struct bridge_mcast_own_query { + struct timer_list timer; + u32 startup_sent; +}; + +struct bridge_mcast_querier { + struct br_ip addr; + int port_ifidx; + seqcount_spinlock_t seq; +}; + +struct bridge_mcast_stats { + struct br_mcast_stats mstats; + struct u64_stats_sync syncp; +}; + +struct bridge_stp_xstats { + __u64 transition_blk; + __u64 transition_fwd; + __u64 rx_bpdu; + __u64 tx_bpdu; + __u64 rx_tcn; + __u64 tx_tcn; +}; + +struct broadcast_sk { + struct sock *sk; + struct work_struct work; +}; + +struct broken_edid { + u8 manufacturer[4]; + u32 model; + u32 fix; +}; + +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 bsd_acct_struct { + struct fs_pin pin; + atomic_long_t count; + struct callback_head rcu; + struct mutex lock; + bool active; + bool check_space; + long unsigned int needcheck; + struct file *file; + struct pid_namespace *ns; + struct work_struct work; + struct completion done; + acct_t ac; +}; + +struct bsd_partition { + __le32 p_size; + __le32 p_offset; + __le32 p_fsize; + __u8 p_fstype; + __u8 p_frag; + __le16 p_cpg; +}; + +struct bsd_disklabel { + __le32 d_magic; + __s16 d_type; + __s16 d_subtype; + char d_typename[16]; + char d_packname[16]; + __u32 d_secsize; + __u32 d_nsectors; + __u32 d_ntracks; + __u32 d_ncylinders; + __u32 d_secpercyl; + __u32 d_secperunit; + __u16 d_sparespertrack; + __u16 d_sparespercyl; + __u32 d_acylinders; + __u16 d_rpm; + __u16 d_interleave; + __u16 d_trackskew; + __u16 d_cylskew; + __u32 d_headswitch; + __u32 d_trkseek; + __u32 d_flags; + __u32 d_drivedata[5]; + __u32 d_spare[5]; + __le32 d_magic2; + __le16 d_checksum; + __le16 d_npartitions; + __le32 d_bbsize; + __le32 d_sbsize; + struct bsd_partition d_partitions[16]; +}; + +struct bsg_buffer { + unsigned int payload_len; + int sg_cnt; + struct scatterlist *sg_list; +}; + +struct cdev { + struct kobject kobj; + struct module *owner; + const struct file_operations *ops; + struct list_head list; + dev_t dev; + unsigned int count; +}; + +struct sg_io_v4; + +typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int); + +struct bsg_device { + struct request_queue *queue; + struct device device; + struct cdev cdev; + int max_queue; + unsigned int timeout; + unsigned int reserved_size; + bsg_sg_io_fn *sg_io_fn; +}; + +struct bsg_job { + struct device *dev; + struct kref kref; + unsigned int timeout; + void *request; + void *reply; + unsigned int request_len; + unsigned int reply_len; + struct bsg_buffer request_payload; + struct bsg_buffer reply_payload; + int result; + unsigned int reply_payload_rcv_len; + struct request *bidi_rq; + struct bio *bidi_bio; + void *dd_data; +}; + +typedef int bsg_job_fn(struct bsg_job *); + +typedef enum blk_eh_timer_return bsg_timeout_fn(struct request *); + +struct bsg_set { + struct blk_mq_tag_set tag_set; + struct bsg_device *bd; + bsg_job_fn *job_fn; + bsg_timeout_fn *timeout_fn; +}; + +typedef bool busy_tag_iter_fn(struct request *, 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 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_struct_ops_tab; + +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_struct_ops_tab *struct_ops_tab; + struct btf *base_btf; + u32 start_id; + u32 start_str_off; + char name[56]; + bool kernel_btf; + __u32 *base_id_map; +}; + +struct btf_anon_stack { + u32 tid; + u32 offset; +}; + +struct btf_array { + __u32 type; + __u32 index_type; + __u32 nelems; +}; + +struct btf_decl_tag { + __s32 component_idx; +}; + +struct btf_enum { + __u32 name_off; + __s32 val; +}; + +struct btf_enum64 { + __u32 name_off; + __u32 val_lo32; + __u32 val_hi32; +}; + +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; + u32 size; + enum btf_field_type type; + union { + struct btf_field_kptr kptr; + struct btf_field_graph_root graph_root; + }; +}; + +struct btf_field_desc { + int t_off_cnt; + int t_offs[2]; + int m_sz; + int m_off_cnt; + int m_offs[1]; +}; + +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 btf_field_iter { + struct btf_field_desc desc; + void *p; + int m_idx; + int off_idx; + int vlen; +}; + +struct btf_id_dtor_kfunc { + u32 btf_id; + u32 kfunc_btf_id; +}; + +struct btf_id_dtor_kfunc_tab { + u32 cnt; + struct btf_id_dtor_kfunc dtors[0]; +}; + +struct btf_id_set { + u32 cnt; + u32 ids[0]; +}; + +struct btf_id_set8 { + u32 cnt; + u32 flags; + struct { + u32 id; + u32 flags; + } pairs[0]; +}; + +typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); + +struct btf_kfunc_hook_filter { + btf_kfunc_filter_t filters[16]; + u32 nr_filters; +}; + +struct btf_kfunc_id_set { + struct module *owner; + struct btf_id_set8 *set; + btf_kfunc_filter_t filter; +}; + +struct btf_kfunc_set_tab { + struct btf_id_set8 *sets[14]; + struct btf_kfunc_hook_filter hook_filters[14]; +}; + +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 btf_member { + __u32 name_off; + __u32 type; + __u32 offset; +}; + +struct btf_module { + struct list_head list; + struct module *module; + struct btf *btf; + struct bin_attribute *sysfs_attr; + int flags; +}; + +struct btf_name_info { + const char *name; + bool needs_size: 1; + unsigned int size: 31; + __u32 id; +}; + +struct btf_param { + __u32 name_off; + __u32 type; +}; + +struct btf_ptr { + void *ptr; + __u32 type_id; + __u32 flags; +}; + +struct btf_record { + u32 cnt; + u32 field_mask; + int spin_lock_off; + int timer_off; + int wq_off; + int refcount_off; + struct btf_field fields[0]; +}; + +struct btf_relocate { + struct btf *btf; + const struct btf *base_btf; + const struct btf *dist_base_btf; + unsigned int nr_base_types; + unsigned int nr_split_types; + unsigned int nr_dist_base_types; + int dist_str_len; + int base_str_len; + __u32 *id_map; + __u32 *str_map; +}; + +struct btf_sec_info { + u32 off; + u32 len; +}; + +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 btf_show_snprintf { + struct btf_show show; + int len_left; + int len; +}; + +struct btf_struct_meta { + u32 btf_id; + struct btf_record *record; +}; + +struct btf_struct_metas { + u32 cnt; + struct btf_struct_meta types[0]; +}; + +struct btf_struct_ops_tab { + u32 cnt; + u32 capacity; + struct bpf_struct_ops_desc ops[0]; +}; + +struct btf_type { + __u32 name_off; + __u32 info; + union { + __u32 size; + __u32 type; + }; +}; + +struct btf_var { + __u32 linkage; +}; + +struct btf_var_secinfo { + __u32 type; + __u32 offset; + __u32 size; +}; + +struct resolve_vertex { + const struct btf_type *t; + u32 type_id; + u16 next_member; +}; + +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 btree_geo { + int keylen; + int no_pairs; + int no_longs; +}; + +struct btree_head { + long unsigned int *node; + mempool_t *mempool; + int height; +}; + +struct bts_phys { + struct page *page; + long unsigned int size; + long unsigned int offset; + long unsigned int 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; + long unsigned int end; + void **data_pages; + struct bts_phys buf[0]; +}; + +struct perf_buffer; + +struct perf_output_handle { + struct perf_event *event; + struct perf_buffer *rb; + long unsigned int wakeup; + long unsigned int size; + union { + u64 flags; + u64 aux_flags; + struct { + u64 skip_read: 1; + }; + }; + union { + void *addr; + long unsigned int head; + }; + int page; +}; + +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 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: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + 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 bts_record { + u64 from; + u64 to; + u64 flags; +}; + +struct nd_btt; + +struct nd_region; + +struct btt { + struct gendisk *btt_disk; + struct list_head arena_list; + struct dentry *debugfs_dir; + struct nd_btt *nd_btt; + u64 nlba; + long long unsigned int rawsize; + u32 lbasize; + u32 sector_size; + struct nd_region *nd_region; + struct mutex init_lock; + int init_state; + int num_arenas; + struct badblocks *phys_bb; +}; + +struct btt_sb { + u8 signature[16]; + u8 uuid[16]; + u8 parent_uuid[16]; + __le32 flags; + __le16 version_major; + __le16 version_minor; + __le32 external_lbasize; + __le32 external_nlba; + __le32 internal_lbasize; + __le32 internal_nlba; + __le32 nfree; + __le32 infosize; + __le64 nextoff; + __le64 dataoff; + __le64 mapoff; + __le64 logoff; + __le64 info2off; + u8 padding[3968]; + __le64 checksum; +}; + +struct hlist_nulls_head { + struct hlist_nulls_node *first; +}; + +struct bucket { + struct hlist_nulls_head head; + raw_spinlock_t raw_lock; +}; + +struct lockdep_map {}; + +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 *future_tbl; + struct lockdep_map dep_map; + long: 64; + struct rhash_lock_head *buckets[0]; +}; + +struct buf_sel_arg { + struct iovec *iovs; + size_t out_len; + size_t max_len; + short unsigned int nr_iovs; + short unsigned int mode; +}; + +struct buffer_data_page { + u64 time_stamp; + local_t commit; + unsigned char data[0]; +}; + +struct buffer_data_read_page { + unsigned int order; + struct buffer_data_page *data; +}; + +typedef void bh_end_io_t(struct buffer_head *, int); + +struct buffer_head { + long unsigned int 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 buffer_page { + struct list_head list; + local_t write; + unsigned int read; + local_t entries; + long unsigned int real_end; + unsigned int order; + u32 id: 30; + u32 range: 1; + struct buffer_data_page *page; +}; + +struct buffer_ref { + struct trace_buffer *buffer; + void *page; + int cpu; + refcount_t refcount; +}; + +struct bug_entry { + int bug_addr_disp; + int file_disp; + short unsigned int line; + short unsigned int flags; +}; + +struct builtin_fw { + char *name; + void *data; + long unsigned int size; +}; + +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 int (*fill)(void *, long unsigned int); + long int inbufCount; + long int 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 bus_attribute { + struct attribute attr; + ssize_t (*show)(const struct bus_type *, char *); + ssize_t (*store)(const struct bus_type *, const char *, size_t); +}; + +struct bus_dma_region { + phys_addr_t cpu_start; + dma_addr_t dma_start; + u64 size; +}; + +struct bus_type { + const char *name; + const char *dev_name; + const struct attribute_group **bus_groups; + const struct attribute_group **dev_groups; + const struct attribute_group **drv_groups; + int (*match)(struct device *, const 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 *); + const struct cpumask * (*irq_get_affinity)(struct device *, unsigned int); + 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; + bool need_parent_lock; +}; + +struct bvec_iter_all { + struct bio_vec bv; + int idx; + unsigned int done; +}; + +struct bzimage64_data { + void *bootparams_buf; +}; + +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 cache_head { + struct hlist_node cache_list; + time64_t expiry_time; + time64_t last_refresh; + struct kref ref; + long unsigned int flags; +}; + +struct cache_map { + u64 start; + u64 end; + u64 flags; + u64 type: 8; + u64 fixed: 1; +}; + +struct cache_req { + struct cache_deferred_req * (*defer)(struct cache_req *); + long unsigned int thread_wait; +}; + +struct intel_iommu; + +struct cache_tag { + struct list_head node; + enum cache_tag_type type; + struct intel_iommu *iommu; + struct device *dev; + u16 domain_id; + ioasid_t pasid; + unsigned int users; +}; + +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 cacheline_padding { + char x[0]; +}; + +struct cachestat { + __u64 nr_cache; + __u64 nr_dirty; + __u64 nr_writeback; + __u64 nr_evicted; + __u64 nr_recently_evicted; +}; + +struct cachestat_range { + __u64 off; + __u64 len; +}; + +struct calipso_doi { + u32 doi; + u32 type; + refcount_t refcount; + struct list_head list; + struct callback_head rcu; +}; + +struct calipso_map_cache_bkt { + spinlock_t lock; + u32 size; + struct list_head list; +}; + +struct netlbl_lsm_cache; + +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; +}; + +struct call_function_data { + call_single_data_t *csd; + cpumask_var_t cpumask; + cpumask_var_t cpumask_ipi; +}; + +struct callback { + void (*fn)(void *); + void *data; +}; + +struct callback_register { + uint16_t type; + uint16_t flags; + xen_callback_t address; +}; + +struct callchain_cpus_entries { + struct callback_head callback_head; + struct perf_callchain_entry *cpu_entries[0]; +}; + +struct callthunk_sites { + s32 *call_start; + s32 *call_end; + struct alt_instr *alt_start; + struct alt_instr *alt_end; +}; + +struct compact_control; + +struct capture_control { + struct compact_control *cc; + struct page *page; +}; + +struct cat_datum { + u32 value; + unsigned char isalias; +}; + +struct cb_id { + __u32 idx; + __u32 val; +}; + +struct cc_attr_flags { + __u64 host_sev_snp: 1; + __u64 __resv: 63; +}; + +struct cc_blob_sev_info { + u32 magic; + u16 version; + u16 reserved; + u64 secrets_phys; + u32 secrets_len; + u32 rsvd1; + u64 cpuid_phys; + u32 cpuid_len; + u32 rsvd2; +}; + +struct setup_data { + __u64 next; + __u32 type; + __u32 len; + __u8 data[0]; +}; + +struct cc_setup_data { + struct setup_data header; + u32 cc_blob_address; +}; + +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 cdrom_msf0 { + __u8 minute; + __u8 second; + __u8 frame; +}; + +union cdrom_addr { + struct cdrom_msf0 msf; + int lba; +}; + +struct cdrom_blk { + unsigned int from; + short unsigned int len; +}; + +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]; +}; + +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; + short unsigned int mmc3_profile; + int (*exit)(struct cdrom_device_info *); + int mrw_mode_page; + bool opened_for_data; + __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 *, long unsigned 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 *, u32, u32, u8 *); + const int capability; +}; + +struct request_sense; + +struct cdrom_generic_command { + unsigned char cmd[12]; + unsigned char *buffer; + unsigned int buflen; + int stat; + struct request_sense *sense; + unsigned char data_direction; + int quiet; + int timeout; + union { + void *reserved[1]; + void *unused; + }; +}; + +struct cdrom_mcn { + __u8 medium_catalog_number[14]; +}; + +struct cdrom_msf { + __u8 cdmsf_min0; + __u8 cdmsf_sec0; + __u8 cdmsf_frame0; + __u8 cdmsf_min1; + __u8 cdmsf_sec1; + __u8 cdmsf_frame1; +}; + +struct cdrom_multisession { + union cdrom_addr addr; + __u8 xa_flag; + __u8 addr_format; +}; + +struct cdrom_read_audio { + union cdrom_addr addr; + __u8 addr_format; + int nframes; + __u8 *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_sysctl_settings { + char info[1000]; + int autoclose; + int autoeject; + int debug; + int lock; + int check; +}; + +struct cdrom_ti { + __u8 cdti_trk0; + __u8 cdti_ind0; + __u8 cdti_trk1; + __u8 cdti_ind1; +}; + +struct cdrom_timed_media_change_info { + __s64 last_media_change; + __u64 media_flags; +}; + +struct cdrom_tocentry { + __u8 cdte_track; + __u8 cdte_adr: 4; + __u8 cdte_ctrl: 4; + __u8 cdte_format; + union cdrom_addr cdte_addr; + __u8 cdte_datamode; +}; + +struct cdrom_tochdr { + __u8 cdth_trk0; + __u8 cdth_trk1; +}; + +struct cdrom_volctrl { + __u8 channel0; + __u8 channel1; + __u8 channel2; + __u8 channel3; +}; + +struct ce_array { + u64 *array; + unsigned int n; + unsigned int decay_count; + u64 pfns_poisoned; + u64 ces_entered; + u64 decays_done; + union { + struct { + __u32 disabled: 1; + __u32 __resv: 31; + }; + __u32 flags; + }; +}; + +struct clock_event_device; + +struct ce_unbind { + struct clock_event_device *ce; + int res; +}; + +struct cea_db { + u8 tag_length; + u8 data[0]; +}; + +struct drm_edid; + +struct drm_edid_iter { + const struct drm_edid *drm_edid; + int index; +}; + +struct displayid_iter { + const struct drm_edid *drm_edid; + const u8 *section; + int length; + int idx; + int ext_index; + u8 version; + u8 primary_use; +}; + +struct cea_db_iter { + struct drm_edid_iter edid_iter; + struct displayid_iter displayid_iter; + const u8 *collection; + int index; + int end; +}; + +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 cea_sad { + u8 format; + u8 channels; + u8 freq; + u8 byte2; +}; + +struct cee_pfc { + __u8 willing; + __u8 error; + __u8 pfc_en; + __u8 tcs_supported; +}; + +struct cee_pg { + __u8 willing; + __u8 error; + __u8 pg_en; + __u8 tcs_supported; + __u8 pg_bw[8]; + __u8 prio_pg[8]; +}; + +struct cet_user_state { + u64 user_cet; + u64 user_ssp; +}; + +struct cfg80211_bss_select_adjust { + enum nl80211_band band; + s8 delta; +}; + +struct cfg80211_bss_selection { + enum nl80211_bss_select_attr behaviour; + union { + enum nl80211_band band_pref; + struct cfg80211_bss_select_adjust adjust; + } param; +}; + +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; + u16 punctured; +}; + +struct cfg80211_crypto_settings { + u32 wpa_versions; + u32 cipher_group; + int n_ciphers_pairwise; + u32 ciphers_pairwise[5]; + int n_akm_suites; + u32 akm_suites[10]; + bool control_port; + __be16 control_port_ethertype; + bool control_port_no_encrypt; + bool control_port_over_nl80211; + bool control_port_no_preauth; + const u8 *psk; + const u8 *sae_pwd; + u8 sae_pwd_len; + enum nl80211_sae_pwe_mechanism sae_pwe; +}; + +struct ieee80211_mcs_info { + u8 rx_mask[10]; + __le16 rx_highest; + u8 tx_params; + u8 reserved[3]; +}; + +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_mcs_info { + __le16 rx_mcs_map; + __le16 rx_highest; + __le16 tx_mcs_map; + __le16 tx_highest; +}; + +struct ieee80211_vht_cap { + __le32 vht_cap_info; + struct ieee80211_vht_mcs_info supp_mcs; +}; + +struct cfg80211_connect_params { + struct ieee80211_channel *channel; + struct ieee80211_channel *channel_hint; + const u8 *bssid; + const u8 *bssid_hint; + const u8 *ssid; + size_t ssid_len; + enum nl80211_auth_type auth_type; + const u8 *ie; + size_t ie_len; + bool privacy; + enum nl80211_mfp mfp; + struct cfg80211_crypto_settings crypto; + const u8 *key; + u8 key_len; + u8 key_idx; + u32 flags; + int bg_scan_period; + struct ieee80211_ht_cap ht_capa; + struct ieee80211_ht_cap ht_capa_mask; + struct ieee80211_vht_cap vht_capa; + struct ieee80211_vht_cap vht_capa_mask; + bool pbss; + struct cfg80211_bss_selection bss_select; + const u8 *prev_bssid; + const u8 *fils_erp_username; + size_t fils_erp_username_len; + const u8 *fils_erp_realm; + size_t fils_erp_realm_len; + u16 fils_erp_next_seq_num; + const u8 *fils_erp_rrk; + size_t fils_erp_rrk_len; + bool want_1x; + struct ieee80211_edmg edmg; +}; + +struct key_params; + +struct cfg80211_ibss_params { + const u8 *ssid; + const u8 *bssid; + struct cfg80211_chan_def chandef; + const u8 *ie; + u8 ssid_len; + u8 ie_len; + u16 beacon_interval; + u32 basic_rates; + bool channel_fixed; + bool privacy; + bool control_port; + bool control_port_over_nl80211; + bool userspace_handles_dfs; + int mcast_rate[6]; + struct ieee80211_ht_cap ht_capa; + struct ieee80211_ht_cap ht_capa_mask; + struct key_params *wep_keys; + int wep_tx_key; +}; + +struct cfg80211_ssid { + u8 ssid[32]; + u8 ssid_len; +}; + +struct cfg80211_match_set { + struct cfg80211_ssid ssid; + u8 bssid[6]; + s32 rssi_thold; +}; + +struct cfg80211_pkt_pattern { + const u8 *mask; + const u8 *pattern; + int pattern_len; + int pkt_offset; +}; + +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; +}; + +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; +}; + +struct cfg80211_sched_scan_plan { + u32 interval; + u32 iterations; +}; + +struct wiphy; + +struct cfg80211_sched_scan_request { + u64 reqid; + struct cfg80211_ssid *ssids; + int n_ssids; + u32 n_channels; + 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; + long unsigned int 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_wowlan_tcp; + +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 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; +}; + +struct cfs_bandwidth { + raw_spinlock_t lock; + ktime_t period; + u64 quota; + u64 runtime; + u64 burst; + u64 runtime_snap; + s64 hierarchical_quota; + u8 idle; + u8 period_active; + u8 slack_started; + struct hrtimer period_timer; + struct hrtimer slack_timer; + struct list_head throttled_cfs_rq; + int nr_periods; + int nr_throttled; + int nr_burst; + u64 throttled_time; + u64 burst_time; +}; + +struct load_weight { + long unsigned int weight; + u32 inv_weight; +}; + +struct sched_avg { + u64 last_update_time; + u64 load_sum; + u64 runnable_sum; + u32 util_sum; + u32 period_contrib; + long unsigned int load_avg; + long unsigned int runnable_avg; + long unsigned int util_avg; + unsigned int util_est; +}; + +struct sched_entity; + +struct cfs_rq { + struct load_weight load; + unsigned int nr_queued; + unsigned int h_nr_queued; + unsigned int h_nr_runnable; + unsigned int h_nr_idle; + s64 avg_vruntime; + u64 avg_load; + u64 min_vruntime; + unsigned int forceidle_seq; + u64 min_vruntime_fi; + struct rb_root_cached tasks_timeline; + struct sched_entity *curr; + struct sched_entity *next; + long: 64; + long: 64; + long: 64; + struct sched_avg avg; + struct { + raw_spinlock_t lock; + int nr; + long unsigned int load_avg; + long unsigned int util_avg; + long unsigned int runnable_avg; + long: 64; + long: 64; + long: 64; + long: 64; + } removed; + u64 last_update_tg_load_avg; + long unsigned int tg_load_avg_contrib; + long int propagate; + long int prop_runnable_sum; + long unsigned int h_load; + u64 last_h_load_update; + struct sched_entity *h_load_next; + struct rq *rq; + int on_list; + struct list_head leaf_cfs_rq_list; + struct task_group *tg; + int idle; + int runtime_enabled; + s64 runtime_remaining; + u64 throttled_pelt_idle; + u64 throttled_clock; + u64 throttled_clock_pelt; + u64 throttled_clock_pelt_time; + u64 throttled_clock_self; + u64 throttled_clock_self_time; + int throttled; + int throttle_count; + struct list_head throttled_list; + struct list_head throttled_csd_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct cfs_schedulable_data { + struct task_group *tg; + u64 period; + u64 quota; +}; + +struct kernfs_ops; + +struct kernfs_open_file; + +struct cftype { + char name[64]; + long unsigned int 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 lock_class_key lockdep_key; +}; + +struct cgroup_file { + struct kernfs_node *kn; + long unsigned int notified_at; + struct timer_list notify_timer; +}; + +struct task_cputime { + u64 stime; + u64 utime; + long long unsigned int sum_exec_runtime; +}; + +struct cgroup_base_stat { + struct task_cputime cputime; + u64 forceidle_sum; + u64 ntime; +}; + +struct prev_cputime { + u64 utime; + u64 stime; + raw_spinlock_t lock; +}; + +struct cgroup_bpf { + struct bpf_prog_array *effective[38]; + struct hlist_head progs[38]; + u8 flags[38]; + struct list_head storages; + struct bpf_prog_array *inactive; + struct percpu_ref refcnt; + struct work_struct release_work; +}; + +struct cgroup_freezer_state { + bool freeze; + bool 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; + long unsigned int 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; + unsigned int kill_seq; + struct kernfs_node *kn; + struct cgroup_file procs_file; + struct cgroup_file events_file; + struct cgroup_file psi_files[3]; + u16 subtree_control; + u16 subtree_ss_mask; + u16 old_subtree_control; + u16 old_subtree_ss_mask; + struct cgroup_subsys_state *subsys[15]; + int nr_dying_subsys[15]; + struct cgroup_root *root; + struct list_head cset_links; + struct list_head e_csets[15]; + struct cgroup *dom_cgrp; + struct cgroup *old_dom_cgrp; + struct cgroup_rstat_cpu *rstat_cpu; + struct list_head rstat_css_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad_; + struct cgroup *rstat_flush_next; + 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; + struct cgroup_freezer_state freezer; + struct bpf_local_storage *bpf_cgrp_storage; + struct cgroup *ancestors[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct cgroup__safe_rcu { + struct kernfs_node *kn; +}; + +struct cgroup_cls_state { + struct cgroup_subsys_state css; + u32 classid; +}; + +struct css_set; + +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 cgroup_of_peak { + long unsigned int value; + struct list_head list; +}; + +struct cgroup_namespace; + +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; + struct cgroup_of_peak peak; +}; + +struct kernfs_root; + +struct kernfs_fs_context { + struct kernfs_root *root; + void *ns_tag; + long unsigned int magic; + bool new_sb_created; +}; + +struct cgroup_fs_context { + struct kernfs_fs_context kfc; + struct cgroup_root *root; + struct cgroup_namespace *ns; + unsigned int flags; + bool cpuset_clone_children; + bool none; + bool all_ss; + u16 subsys_mask; + char *name; + char *release_agent; +}; + +struct cgroup_iter_priv { + struct cgroup_subsys_state *start_css; + bool visited_all; + bool terminate; + int order; +}; + +struct cgroup_lsm_atype { + u32 attach_btf_id; + int refcnt; +}; + +struct cgroup_taskset { + struct list_head src_csets; + struct list_head dst_csets; + int nr_tasks; + int ssid; + struct list_head *csets; + struct css_set *cur_cset; + struct task_struct *cur_task; +}; + +struct cgroup_mgctx { + struct list_head preloaded_src_csets; + struct list_head preloaded_dst_csets; + struct cgroup_taskset tset; + u16 ss_mask; +}; + +struct proc_ns_operations; + +struct ns_common { + struct dentry *stashed; + const struct proc_ns_operations *ops; + unsigned int inum; + refcount_t count; +}; + +struct ucounts; + +struct cgroup_namespace { + struct ns_common ns; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct css_set *root_cset; +}; + +struct cgroup_pidlist { + struct { + enum cgroup_filetype type; + struct pid_namespace *ns; + } key; + pid_t *list; + int length; + struct list_head links; + struct cgroup *owner; + struct delayed_work destroy_dwork; +}; + +struct cgroup_root { + struct kernfs_root *kf_root; + unsigned int subsys_mask; + int hierarchy_id; + struct list_head root_list; + struct callback_head rcu; + long: 64; + long: 64; + struct cgroup cgrp; + struct cgroup *cgrp_ancestor_storage; + atomic_t nr_cgrps; + unsigned int flags; + char release_agent_path[4096]; + char name[64]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct cgroup_rstat_cpu { + struct u64_stats_sync bsync; + struct cgroup_base_stat bstat; + struct cgroup_base_stat last_bstat; + struct cgroup_base_stat subtree_bstat; + struct cgroup_base_stat last_subtree_bstat; + struct cgroup *updated_children; + struct cgroup *updated_next; +}; + +struct idr { + struct xarray idr_rt; + unsigned int idr_base; + unsigned int idr_next; +}; + +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_killed)(struct cgroup_subsys_state *); + void (*css_rstat_flush)(struct cgroup_subsys_state *, int); + int (*css_extra_stat_show)(struct seq_file *, struct cgroup_subsys_state *); + int (*css_local_stat_show)(struct seq_file *, struct cgroup_subsys_state *); + int (*can_attach)(struct cgroup_taskset *); + void (*cancel_attach)(struct cgroup_taskset *); + void (*attach)(struct cgroup_taskset *); + void (*post_attach)(void); + 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 cgroupstats { + __u64 nr_sleeping; + __u64 nr_running; + __u64 nr_stopped; + __u64 nr_uninterruptible; + __u64 nr_io_wait; +}; + +struct cgrp_cset_link { + struct cgroup *cgrp; + struct css_set *cset; + struct list_head cset_link; + struct list_head cgrp_link; +}; + +struct linked_page; + +struct chain_allocator { + struct linked_page *chain; + unsigned int used_space; + gfp_t gfp_mask; + int safe_needed; +}; + +struct e820_entry; + +struct change_member { + struct e820_entry *entry; + long long unsigned int addr; +}; + +struct ppp_file { + enum { + INTERFACE = 1, + CHANNEL = 2, + } kind; + struct sk_buff_head xq; + struct sk_buff_head rq; + wait_queue_head_t rwait; + refcount_t refcnt; + int hdrlen; + int index; + int dead; +}; + +struct ppp_channel; + +struct ppp; + +struct channel { + struct ppp_file file; + struct list_head list; + struct ppp_channel *chan; + struct rw_semaphore chan_sem; + spinlock_t downl; + struct ppp *ppp; + struct net *chan_net; + netns_tracker ns_tracker; + struct list_head clist; + rwlock_t upl; + struct channel *bridge; + u8 avail; + u8 had_frag; + u32 lastseq; + int speed; +}; + +struct ethnl_reply_data { + struct net_device *dev; +}; + +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 channels_reply_data { + struct ethnl_reply_data base; + struct ethtool_channels channels; +}; + +struct char_device_struct { + struct char_device_struct *next; + unsigned int major; + unsigned int baseminor; + int minorct; + char name[64]; + struct cdev *cdev; +}; + +struct extcon_dev; + +struct charger_regulator; + +struct charger_manager; + +struct charger_cable { + const char *extcon_name; + const char *name; + struct extcon_dev *extcon_dev; + u64 extcon_type; + struct work_struct wq; + struct notifier_block nb; + bool attached; + struct charger_regulator *charger; + int min_uA; + int max_uA; + struct charger_manager *cm; +}; + +struct charger_desc { + const char *psy_name; + enum polling_modes polling_mode; + unsigned int polling_interval_ms; + unsigned int fullbatt_vchkdrop_uV; + unsigned int fullbatt_uV; + unsigned int fullbatt_soc; + unsigned int fullbatt_full_capacity; + enum data_source battery_present; + const char **psy_charger_stat; + int num_charger_regulators; + struct charger_regulator *charger_regulators; + const struct attribute_group **sysfs_groups; + const char *psy_fuel_gauge; + const char *thermal_zone; + int temp_min; + int temp_max; + int temp_diff; + bool measure_battery_temp; + u32 charging_max_duration_ms; + u32 discharging_max_duration_ms; +}; + +struct charger_manager { + struct list_head entry; + struct device *dev; + struct charger_desc *desc; + struct thermal_zone_device *tzd_batt; + bool charger_enabled; + int emergency_stop; + char psy_name_buf[31]; + struct power_supply_desc charger_psy_desc; + struct power_supply *charger_psy; + u64 charging_start_time; + u64 charging_end_time; + int battery_status; +}; + +struct regulator; + +struct charger_regulator { + const char *regulator_name; + struct regulator *consumer; + int externally_control; + struct charger_cable *cables; + int num_cables; + struct attribute_group attr_grp; + struct device_attribute attr_name; + struct device_attribute attr_state; + struct device_attribute attr_externally_control; + struct attribute *attrs[4]; + struct charger_manager *cm; +}; + +struct qdisc_walker { + int stop; + int skip; + int count; + int (*fn)(struct Qdisc *, long unsigned int, struct qdisc_walker *); +}; + +struct check_loop_arg { + struct qdisc_walker w; + struct Qdisc *p; + int depth; +}; + +struct check_mount { + struct vfsmount *mnt; + unsigned int mounted; +}; + +struct chips_init_reg { + unsigned char addr; + unsigned char data; +}; + +struct chipset { + u32 vendor; + u32 device; + u32 class; + u32 class_mask; + u32 flags; + void (*f)(int, int, int); +}; + +struct chksum_ctx { + u32 key; +}; + +struct chksum_desc_ctx { + __u16 crc; +}; + +struct chksum_desc_ctx___2 { + u32 crc; +}; + +struct cipher_context { + char iv[20]; + char rec_seq[8]; +}; + +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_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 { + u32 *cipso; + u32 *local; + u32 cipso_size; + u32 local_size; + } lvl; + struct { + u32 *cipso; + u32 *local; + u32 cipso_size; + u32 local_size; + } cat; +}; + +struct mmc_card; + +struct sdio_func; + +typedef int tpl_parse_t(struct mmc_card *, struct sdio_func *, const unsigned char *, unsigned int); + +struct cis_tpl { + unsigned char code; + unsigned char min_size; + tpl_parse_t *parse; +}; + +struct class_attribute { + struct attribute attr; + ssize_t (*show)(const struct class *, const struct class_attribute *, char *); + ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); +}; + +struct class_attribute_string { + struct class_attribute attr; + char *str; +}; + +struct class_compat { + struct kobject *kobj; +}; + +struct hashtab_node; + +struct hashtab { + struct hashtab_node **htable; + u32 size; + u32 nel; +}; + +struct symtab { + struct hashtab table; + u32 nprim; +}; + +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 klist_iter { + struct klist *i_klist; + struct klist_node *i_cur; +}; + +struct subsys_private; + +struct class_dev_iter { + struct klist_iter ki; + const struct device_type *type; + struct subsys_private *sp; +}; + +struct class_dir { + struct kobject kobj; + const struct class *class; +}; + +struct class_info { + int class; + char *class_name; +}; + +struct class_interface { + struct list_head node; + const struct class *class; + int (*add_dev)(struct device *); + void (*remove_dev)(struct device *); +}; + +struct mmu_notifier_range { + struct mm_struct *mm; + long unsigned int start; + long unsigned int end; + unsigned int flags; + enum mmu_notifier_event event; + void *owner; +}; + +struct wp_walk { + struct mmu_notifier_range range; + long unsigned int tlbflush_start; + long unsigned int tlbflush_end; + long unsigned int total; +}; + +struct clean_walk { + struct wp_walk base; + long unsigned int bitmap_pgoff; + long unsigned int *bitmap; + long unsigned int start; + long unsigned int end; +}; + +struct clear_badblocks_context { + resource_size_t phys; + resource_size_t cleared; +}; + +struct clear_refs_private { + enum clear_refs_types type; +}; + +struct clk_core; + +struct clk { + struct clk_core *core; + struct device *dev; + const char *dev_id; + const char *con_id; + long unsigned int min_rate; + long unsigned int max_rate; + unsigned int exclusive_count; + struct hlist_node clks_node; +}; + +struct clk_bulk_data { + const char *id; + struct clk *clk; +}; + +struct clk_bulk_devres { + struct clk_bulk_data *clks; + int num_clks; +}; + +struct clk_init_data; + +struct clk_hw { + struct clk_core *core; + struct clk *clk; + const struct clk_init_data *init; +}; + +struct clk_rate_request; + +struct clk_duty; + +struct clk_ops { + int (*prepare)(struct clk_hw *); + void (*unprepare)(struct clk_hw *); + int (*is_prepared)(struct clk_hw *); + void (*unprepare_unused)(struct clk_hw *); + int (*enable)(struct clk_hw *); + void (*disable)(struct clk_hw *); + int (*is_enabled)(struct clk_hw *); + void (*disable_unused)(struct clk_hw *); + int (*save_context)(struct clk_hw *); + void (*restore_context)(struct clk_hw *); + long unsigned int (*recalc_rate)(struct clk_hw *, long unsigned int); + long int (*round_rate)(struct clk_hw *, long unsigned int, long unsigned int *); + int (*determine_rate)(struct clk_hw *, struct clk_rate_request *); + int (*set_parent)(struct clk_hw *, u8); + u8 (*get_parent)(struct clk_hw *); + int (*set_rate)(struct clk_hw *, long unsigned int, long unsigned int); + int (*set_rate_and_parent)(struct clk_hw *, long unsigned int, long unsigned int, u8); + long unsigned int (*recalc_accuracy)(struct clk_hw *, long unsigned int); + int (*get_phase)(struct clk_hw *); + int (*set_phase)(struct clk_hw *, int); + int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*init)(struct clk_hw *); + void (*terminate)(struct clk_hw *); + void (*debug_init)(struct clk_hw *, struct dentry *); +}; + +struct clk_composite { + struct clk_hw hw; + struct clk_ops ops; + struct clk_hw *mux_hw; + struct clk_hw *rate_hw; + struct clk_hw *gate_hw; + const struct clk_ops *mux_ops; + const struct clk_ops *rate_ops; + const struct clk_ops *gate_ops; +}; + +struct clk_duty { + unsigned int num; + unsigned int den; +}; + +struct clk_parent_map; + +struct clk_core { + const char *name; + const struct clk_ops *ops; + struct clk_hw *hw; + struct module *owner; + struct device *dev; + struct hlist_node rpm_node; + struct device_node *of_node; + struct clk_core *parent; + struct clk_parent_map *parents; + u8 num_parents; + u8 new_parent_index; + long unsigned int rate; + long unsigned int req_rate; + long unsigned int new_rate; + struct clk_core *new_parent; + struct clk_core *new_child; + long unsigned int flags; + bool orphan; + bool rpm_enabled; + unsigned int enable_count; + unsigned int prepare_count; + unsigned int protect_count; + long unsigned int min_rate; + long unsigned int max_rate; + long unsigned int accuracy; + int phase; + struct clk_duty duty; + struct hlist_head children; + struct hlist_node child_node; + struct hlist_head clks; + unsigned int notifier_count; + struct dentry *dentry; + struct hlist_node debug_node; + struct kref ref; +}; + +struct clk_div_table { + unsigned int val; + unsigned int div; +}; + +struct clk_divider { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u16 flags; + const struct clk_div_table *table; + spinlock_t *lock; +}; + +struct clk_fixed_factor { + struct clk_hw hw; + unsigned int mult; + unsigned int div; + long unsigned int acc; + unsigned int flags; +}; + +struct clk_fixed_rate { + struct clk_hw hw; + long unsigned int fixed_rate; + long unsigned int fixed_accuracy; + long unsigned int flags; +}; + +struct clk_fractional_divider { + struct clk_hw hw; + void *reg; + u8 mshift; + u8 mwidth; + u8 nshift; + u8 nwidth; + u8 flags; + void (*approximation)(struct clk_hw *, long unsigned int, long unsigned int *, long unsigned int *, long unsigned int *); + spinlock_t *lock; +}; + +struct clk_gate { + struct clk_hw hw; + void *reg; + u8 bit_idx; + u8 flags; + spinlock_t *lock; +}; + +struct clk_gpio { + struct clk_hw hw; + struct gpio_desc *gpiod; +}; + +struct clk_gated_fixed { + struct clk_gpio clk_gpio; + struct regulator *supply; + long unsigned int rate; +}; + +struct clk_parent_data; + +struct clk_init_data { + const char *name; + const struct clk_ops *ops; + const char * const *parent_names; + const struct clk_parent_data *parent_data; + const struct clk_hw **parent_hws; + u8 num_parents; + long unsigned int flags; +}; + +struct clk_lookup { + struct list_head node; + const char *dev_id; + const char *con_id; + struct clk *clk; + struct clk_hw *clk_hw; +}; + +struct clk_lookup_alloc { + struct clk_lookup cl; + char dev_id[24]; + char con_id[16]; +}; + +struct clk_multiplier { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u8 flags; + spinlock_t *lock; +}; + +struct clk_mux { + struct clk_hw hw; + void *reg; + const u32 *table; + u32 mask; + u8 shift; + u8 flags; + spinlock_t *lock; +}; + +struct srcu_node; + +struct srcu_usage { + struct srcu_node *node; + struct srcu_node *level[4]; + int srcu_size_state; + struct mutex srcu_cb_mutex; + spinlock_t lock; + struct mutex srcu_gp_mutex; + long unsigned int srcu_gp_seq; + long unsigned int srcu_gp_seq_needed; + long unsigned int srcu_gp_seq_needed_exp; + long unsigned int srcu_gp_start; + long unsigned int srcu_last_gp_end; + long unsigned int srcu_size_jiffies; + long unsigned int srcu_n_lock_retries; + long unsigned int srcu_n_exp_nodelay; + bool sda_is_static; + long unsigned int srcu_barrier_seq; + struct mutex srcu_barrier_mutex; + struct completion srcu_barrier_completion; + atomic_t srcu_barrier_cpu_cnt; + long unsigned int reschedule_jiffies; + long unsigned int reschedule_count; + struct delayed_work work; + struct srcu_struct *srcu_ssp; +}; + +struct srcu_data; + +struct srcu_struct { + unsigned int srcu_idx; + struct srcu_data *sda; + struct lockdep_map dep_map; + struct srcu_usage *srcu_sup; +}; + +struct srcu_notifier_head { + struct mutex mutex; + struct srcu_usage srcuu; + struct srcu_struct srcu; + struct notifier_block *head; +}; + +struct clk_notifier { + struct clk *clk; + struct srcu_notifier_head notifier_head; + struct list_head node; +}; + +struct clk_notifier_data { + struct clk *clk; + long unsigned int old_rate; + long unsigned int new_rate; +}; + +struct clk_notifier_devres { + struct clk *clk; + struct notifier_block *nb; +}; + +struct clk_parent_data { + const struct clk_hw *hw; + const char *fw_name; + const char *name; + int index; +}; + +struct clk_parent_map { + const struct clk_hw *hw; + struct clk_core *core; + const char *fw_name; + const char *name; + int index; +}; + +struct clk_plt { + struct clk_hw hw; + void *reg; + struct clk_lookup *lookup; + spinlock_t lock; +}; + +struct clk_plt_fixed; + +struct clk_plt_data { + struct clk_plt_fixed **parents; + u8 nparents; + struct clk_plt *clks[6]; + struct clk_lookup *mclk_lookup; + struct clk_lookup *ether_clk_lookup; +}; + +struct clk_plt_fixed { + struct clk_hw *clk; + struct clk_lookup *lookup; +}; + +struct clk_rate_request { + struct clk_core *core; + long unsigned int rate; + long unsigned int min_rate; + long unsigned int max_rate; + long unsigned int best_parent_rate; + struct clk_hw *best_parent_hw; +}; + +struct clock_event_device { + void (*event_handler)(struct clock_event_device *); + int (*set_next_event)(long unsigned int, 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; + long unsigned int 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 *); + long unsigned int min_delta_ticks; + long unsigned int max_delta_ticks; + const char *name; + int rating; + int irq; + int bound_on; + const struct cpumask *cpumask; + struct list_head list; + struct module *owner; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct clock_identity { + u8 id[8]; +}; + +struct clocksource_base; + +struct clocksource { + u64 (*read)(struct clocksource *); + u64 mask; + u32 mult; + u32 shift; + u64 max_idle_ns; + u32 maxadj; + u32 uncertainty_margin; + u64 max_cycles; + u64 max_raw_delta; + const char *name; + struct list_head list; + u32 freq_khz; + int rating; + enum clocksource_ids id; + enum vdso_clock_mode vdso_clock_mode; + long unsigned int flags; + struct clocksource_base *base; + 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 clocksource_base { + enum clocksource_ids id; + u32 freq_khz; + u64 offset; + u32 numerator; + u32 denominator; +}; + +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 dm_table; + +struct dm_io; + +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; +}; + +typedef void closure_fn(struct work_struct *); + +struct closure_syncer; + +struct closure { + union { + struct { + struct workqueue_struct *wq; + struct closure_syncer *s; + struct llist_node list; + closure_fn *fn; + }; + struct work_struct work; + }; + struct closure *parent; + atomic_t remaining; + bool closure_get_happened; +}; + +struct closure_syncer { + struct task_struct *task; + int done; +}; + +struct closure_waitlist { + struct llist_head list; +}; + +struct cmdline_subpart; + +struct cmdline_parts { + char name[32]; + unsigned int nr_subparts; + struct cmdline_subpart *subpart; + struct cmdline_parts *next_parts; +}; + +struct cmdline_subpart { + char name[32]; + sector_t from; + sector_t size; + int flags; + struct cmdline_subpart *next_subpart; +}; + +struct cmis_cdb_advert_rpl { + u8 inst_supported; + u8 read_write_len_ext; + u8 resv1; + u8 resv2; +}; + +struct cmis_cdb_fw_mng_features_rpl { + u8 resv1; + u8 resv2; + u8 start_cmd_payload_size; + u8 resv3; + u8 read_write_len_ext; + u8 write_mechanism; + u8 resv4; + u8 resv5; + __be16 max_duration_start; + __be16 resv6; + __be16 max_duration_write; + __be16 max_duration_complete; + __be16 resv7; +}; + +struct cmis_cdb_module_features_rpl { + u8 resv1[34]; + __be16 max_completion_time; +}; + +struct cmis_cdb_query_status_pl { + u16 response_delay; +}; + +struct cmis_cdb_query_status_rpl { + u8 length; + u8 status; +}; + +struct cmis_cdb_run_fw_image_pl { + u8 resv1; + u8 image_to_run; + u16 delay_to_reset; +}; + +struct cmis_cdb_start_fw_download_pl_h { + __be32 image_size; + __be32 resv1; +}; + +struct cmis_cdb_start_fw_download_pl { + union { + struct { + __be32 image_size; + __be32 resv1; + }; + struct cmis_cdb_start_fw_download_pl_h head; + }; + u8 vendor_data[112]; +}; + +struct cmis_cdb_write_fw_block_epl_pl { + u8 fw_block[2048]; +}; + +struct cmis_cdb_write_fw_block_lpl_pl { + __be32 block_address; + u8 fw_block[116]; +}; + +struct cmis_fw_update_fw_mng_features { + u8 start_cmd_payload_size; + u8 write_mechanism; + u16 max_duration_start; + u16 max_duration_write; + u16 max_duration_complete; +}; + +struct cmis_password_entry_pl { + __be32 password; +}; + +struct cmis_rev_rpl { + u8 rev; +}; + +struct cmis_wait_for_cond_rpl { + u8 state; +}; + +struct cmos_rtc; + +struct rtc_time; + +struct cmos_read_alarm_callback_param { + struct cmos_rtc *cmos; + struct rtc_time *time; + unsigned char rtc_control; +}; + +struct rtc_time { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; + +struct rtc_wkalrm { + unsigned char enabled; + unsigned char pending; + struct rtc_time time; +}; + +struct rtc_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 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 cmos_set_alarm_callback_param { + struct cmos_rtc *cmos; + unsigned char mon; + unsigned char mday; + unsigned char hrs; + unsigned char min; + unsigned char sec; + struct rtc_wkalrm *t; +}; + +struct crypto_comp; + +struct cmp_data { + struct task_struct *thr; + struct crypto_comp *cc; + atomic_t ready; + atomic_t stop; + int ret; + wait_queue_head_t go; + wait_queue_head_t done; + size_t unc_len; + size_t cmp_len; + unsigned char unc[131072]; + unsigned char cmp[143360]; +}; + +struct cmsghdr { + __kernel_size_t cmsg_len; + int cmsg_level; + int cmsg_type; +}; + +struct cn_callback_id { + unsigned char name[32]; + struct cb_id id; +}; + +struct cn_queue_dev; + +struct cn_msg; + +struct netlink_skb_parms; + +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_dev { + struct cb_id id; + u32 seq; + u32 groups; + struct sock *nls; + struct cn_queue_dev *cbdev; +}; + +struct cn_msg { + struct cb_id id; + __u32 seq; + __u32 ack; + __u16 len; + __u16 flags; + __u8 data[0]; +}; + +struct cn_queue_dev { + atomic_t refcnt; + unsigned char name[32]; + struct list_head queue_list; + spinlock_t queue_lock; + struct sock *nls; +}; + +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 coalesce_reply_data { + struct ethnl_reply_data base; + struct ethtool_coalesce coalesce; + struct kernel_ethtool_coalesce kernel_coalesce; + u32 supported_params; +}; + +struct collapse_control { + bool is_khugepaged; + u32 node_load[1024]; + nodemask_t alloc_nmask; +}; + +struct comm_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + char comm[16]; +}; + +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 common_datum { + u32 value; + struct symtab permissions; +}; + +struct comp_opts { + int dict_size; +}; + +struct zone; + +struct compact_control { + struct list_head freepages[11]; + struct list_head migratepages; + unsigned int nr_freepages; + unsigned int nr_migratepages; + long unsigned int free_pfn; + long unsigned int migrate_pfn; + long unsigned int fast_start_pfn; + struct zone *zone; + long unsigned int total_migrate_scanned; + long unsigned int total_free_scanned; + short unsigned int fast_search_fail; + short int 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 compat_blk_user_trace_setup { + char name[32]; + u16 act_mask; + int: 0; + u32 buf_size; + u32 buf_nr; + compat_u64 start_lba; + compat_u64 end_lba; + u32 pid; +} __attribute__((packed)); + +struct compat_blkpg_ioctl_arg { + compat_int_t op; + compat_int_t flags; + compat_int_t datalen; + compat_caddr_t data; +}; + +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 compat_cdrom_read_audio { + union cdrom_addr addr; + u8 addr_format; + compat_int_t nframes; + compat_caddr_t buf; +}; + +struct compat_cmsghdr { + compat_size_t cmsg_len; + compat_int_t cmsg_level; + compat_int_t cmsg_type; +}; + +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 compat_dirent { + u32 d_ino; + compat_off_t d_off; + u16 d_reclen; + char d_name[256]; +}; + +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 compat_elf_siginfo { + compat_int_t si_signo; + compat_int_t si_code; + compat_int_t si_errno; +}; + +struct old_timeval32 { + old_time32_t tv_sec; + s32 tv_usec; +}; + +struct compat_elf_prstatus_common { + struct compat_elf_siginfo pr_info; + short int 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_struct { + long unsigned int r15; + long unsigned int r14; + long unsigned int r13; + long unsigned int r12; + long unsigned int bp; + long unsigned int bx; + long unsigned int r11; + long unsigned int r10; + long unsigned int r9; + long unsigned int r8; + long unsigned int ax; + long unsigned int cx; + long unsigned int dx; + long unsigned int si; + long unsigned int di; + long unsigned int orig_ax; + long unsigned int ip; + long unsigned int cs; + long unsigned int flags; + long unsigned int sp; + long unsigned int ss; + long unsigned int fs_base; + long unsigned int gs_base; + long unsigned int ds; + long unsigned int es; + long unsigned int fs; + long unsigned int 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 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 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 compat_ext4_new_group_input { + u32 group; + compat_u64 block_bitmap; + compat_u64 inode_bitmap; + compat_u64 inode_table; + u32 blocks_count; + u16 reserved_blocks; + u16 unused; +} __attribute__((packed)); + +struct compat_flock { + short int l_type; + short int l_whence; + compat_off_t l_start; + compat_off_t l_len; + compat_pid_t l_pid; +}; + +struct compat_flock64 { + short int l_type; + short int l_whence; + compat_loff_t l_start; + compat_loff_t l_len; + compat_pid_t l_pid; +} __attribute__((packed)); + +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; + __u16 qs_flags; + __s8 qs_pad; + long: 0; + struct compat_fs_qfilestat qs_uquota; + struct compat_fs_qfilestat qs_gquota; + compat_uint_t qs_incoredqs; + compat_int_t qs_btimelimit; + compat_int_t qs_itimelimit; + compat_int_t qs_rtbtimelimit; + __u16 qs_bwarnlimit; + __u16 qs_iwarnlimit; +}; + +struct dir_context; + +typedef bool (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int); + +struct dir_context { + filldir_t actor; + loff_t pos; +}; + +struct compat_linux_dirent; + +struct compat_getdents_callback { + struct dir_context ctx; + struct compat_linux_dirent *current_dir; + int prev_reclen; + int count; + int error; +}; + +struct compat_group_filter { + union { + struct { + __u32 gf_interface_aux; + struct __kernel_sockaddr_storage gf_group_aux; + __u32 gf_fmode_aux; + __u32 gf_numsrc_aux; + struct __kernel_sockaddr_storage gf_slist[1]; + } __attribute__((packed)); + struct { + __u32 gf_interface; + struct __kernel_sockaddr_storage gf_group; + __u32 gf_fmode; + __u32 gf_numsrc; + struct __kernel_sockaddr_storage gf_slist_flex[0]; + } __attribute__((packed)); + }; +}; + +struct compat_group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; +} __attribute__((packed)); + +struct compat_group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; +} __attribute__((packed)); + +struct compat_hd_geometry { + unsigned char heads; + unsigned char sectors; + short unsigned int cylinders; + u32 start; +}; + +struct compat_hpet_info { + compat_ulong_t hi_ireqfreq; + compat_ulong_t hi_flags; + short unsigned int hi_hpet; + short unsigned int hi_timer; +}; + +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 compat_if_settings { + unsigned int type; + unsigned int size; + compat_uptr_t ifs_ifsu; +}; + +struct compat_ifconf { + compat_int_t ifc_len; + compat_caddr_t ifcbuf; +}; + +struct compat_ifmap { + compat_ulong_t mem_start; + compat_ulong_t mem_end; + short unsigned int base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; +}; + +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 int 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 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 compat_iovec { + compat_uptr_t iov_base; + compat_size_t iov_len; +}; + +struct compat_ipc64_perm { + compat_key_t key; + __compat_uid32_t uid; + __compat_gid32_t gid; + __compat_uid32_t cuid; + __compat_gid32_t cgid; + compat_mode_t mode; + unsigned char __pad1[2]; + compat_ushort_t seq; + compat_ushort_t __pad2; + compat_ulong_t unused1; + compat_ulong_t unused2; +}; + +struct compat_ipc_kludge { + compat_uptr_t msgp; + compat_long_t msgtyp; +}; + +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; + short unsigned int seq; +}; + +struct compat_iw_point { + compat_caddr_t pointer; + __u16 length; + __u16 flags; +}; + +struct compat_kexec_segment { + compat_uptr_t buf; + compat_size_t bufsz; + compat_ulong_t mem; + compat_size_t memsz; +}; + +struct compat_keyctl_kdf_params { + compat_uptr_t hashname; + compat_uptr_t otherinfo; + __u32 otherinfolen; + __u32 __spare[8]; +}; + +struct compat_linux_dirent { + compat_ulong_t d_ino; + compat_ulong_t d_off; + short unsigned int d_reclen; + char d_name[0]; +}; + +struct compat_loop_info { + compat_int_t lo_number; + compat_dev_t lo_device; + compat_ulong_t lo_inode; + compat_dev_t lo_rdevice; + compat_int_t lo_offset; + compat_int_t lo_encrypt_type; + compat_int_t lo_encrypt_key_size; + compat_int_t lo_flags; + char lo_name[64]; + unsigned char lo_encrypt_key[32]; + compat_ulong_t lo_init[2]; + char reserved[4]; +}; + +struct compat_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 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 compat_msgbuf { + compat_long_t mtype; + char mtext[0]; +}; + +struct compat_msqid64_ds { + struct compat_ipc64_perm msg_perm; + compat_ulong_t msg_stime; + compat_ulong_t msg_stime_high; + compat_ulong_t msg_rtime; + compat_ulong_t msg_rtime_high; + compat_ulong_t msg_ctime; + compat_ulong_t msg_ctime_high; + compat_ulong_t msg_cbytes; + compat_ulong_t msg_qnum; + compat_ulong_t msg_qbytes; + compat_pid_t msg_lspid; + compat_pid_t msg_lrpid; + compat_ulong_t __unused4; + compat_ulong_t __unused5; +}; + +struct 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; + short unsigned int msg_cbytes; + short unsigned int msg_qnum; + short unsigned int msg_qbytes; + compat_ipc_pid_t msg_lspid; + compat_ipc_pid_t msg_lrpid; +}; + +struct compat_old_linux_dirent { + compat_ulong_t d_ino; + compat_ulong_t d_offset; + short unsigned int d_namlen; + char d_name[0]; +}; + +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 compat_readdir_callback { + struct dir_context ctx; + struct compat_old_linux_dirent *dirent; + int result; +}; + +struct compat_resume_swap_area { + compat_loff_t offset; + u32 dev; +} __attribute__((packed)); + +struct compat_rlimit { + compat_ulong_t rlim_cur; + compat_ulong_t rlim_max; +}; + +struct compat_robust_list { + compat_uptr_t next; +}; + +struct compat_robust_list_head { + struct compat_robust_list list; + compat_long_t futex_offset; + compat_uptr_t list_op_pending; +}; + +struct compat_rtentry { + u32 rt_pad1; + struct sockaddr rt_dst; + struct sockaddr rt_gateway; + struct sockaddr rt_genmask; + short unsigned int rt_flags; + short int rt_pad2; + u32 rt_pad3; + unsigned char rt_tos; + unsigned char rt_class; + short int rt_pad4; + short int rt_metric; + compat_uptr_t rt_dev; + u32 rt_mtu; + u32 rt_window; + short unsigned int rt_irtt; +}; + +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 compat_sel_arg_struct { + compat_ulong_t n; + compat_uptr_t inp; + compat_uptr_t outp; + compat_uptr_t exp; + compat_uptr_t tvp; +}; + +struct 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; + short unsigned int sem_nsems; +}; + +struct compat_sg_io_hdr { + compat_int_t interface_id; + compat_int_t dxfer_direction; + unsigned char cmd_len; + unsigned char mx_sb_len; + short unsigned int 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; + short unsigned int host_status; + short unsigned int driver_status; + compat_int_t resid; + compat_uint_t duration; + compat_uint_t info; +}; + +struct compat_sg_req_info { + char req_state; + char orphan; + char sg_io_owned; + char problem; + int pack_id; + compat_uptr_t usr_ptr; + unsigned int duration; + int unused; +}; + +struct 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 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_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; + short unsigned int shm_nattch; + short unsigned int shm_unused; + compat_uptr_t shm_unused2; + compat_uptr_t shm_unused3; +}; + +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_sigaction { + compat_uptr_t sa_handler; + compat_ulong_t sa_flags; + compat_uptr_t sa_restorer; + compat_sigset_t sa_mask; +}; + +struct compat_sigaltstack { + compat_uptr_t ss_sp; + int ss_flags; + compat_size_t ss_size; +}; + +typedef struct compat_sigaltstack compat_stack_t; + +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 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 int _addr_lsb; + struct { + char _dummy_bnd[4]; + compat_uptr_t _lower; + compat_uptr_t _upper; + } _addr_bnd; + struct { + char _dummy_pkey[4]; + u32 _pkey; + } _addr_pkey; + struct { + compat_ulong_t _data; + u32 _type; + u32 _flags; + } _perf; + }; + } _sigfault; + struct { + compat_long_t _band; + int _fd; + } _sigpoll; + struct { + compat_uptr_t _call_addr; + int _syscall; + unsigned int _arch; + } _sigsys; + } _sifields; +}; + +typedef struct compat_siginfo compat_siginfo_t; + +struct compat_sigset_argpack { + compat_uptr_t p; + compat_size_t size; +}; + +struct compat_sioc_mif_req6 { + mifi_t mifi; + compat_ulong_t icount; + compat_ulong_t ocount; + compat_ulong_t ibytes; + compat_ulong_t obytes; +}; + +struct in_addr { + __be32 s_addr; +}; + +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 sockaddr_in6 { + short unsigned int sin6_family; + __be16 sin6_port; + __be32 sin6_flowinfo; + struct in6_addr sin6_addr; + __u32 sin6_scope_id; +}; + +struct compat_sioc_sg_req6 { + struct sockaddr_in6 src; + struct sockaddr_in6 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 compat_sock_fprog { + u16 len; + compat_uptr_t filter; +}; + +struct compat_stat { + u32 st_dev; + compat_ino_t st_ino; + compat_mode_t st_mode; + compat_nlink_t st_nlink; + __compat_uid_t st_uid; + __compat_gid_t st_gid; + u32 st_rdev; + u32 st_size; + u32 st_blksize; + u32 st_blocks; + u32 st_atime; + u32 st_atime_nsec; + u32 st_mtime; + u32 st_mtime_nsec; + u32 st_ctime; + u32 st_ctime_nsec; + u32 __unused4; + u32 __unused5; +}; + +struct compat_statfs { + int f_type; + int f_bsize; + int f_blocks; + int f_bfree; + int f_bavail; + int f_files; + int f_ffree; + compat_fsid_t f_fsid; + int f_namelen; + int f_frsize; + int f_flags; + int f_spare[4]; +}; + +struct compat_statfs64 { + __u32 f_type; + __u32 f_bsize; + __u64 f_blocks; + __u64 f_bfree; + __u64 f_bavail; + __u64 f_files; + __u64 f_ffree; + __kernel_fsid_t f_fsid; + __u32 f_namelen; + __u32 f_frsize; + __u32 f_flags; + __u32 f_spare[4]; +} __attribute__((packed)); + +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 compat_tms { + compat_clock_t tms_utime; + compat_clock_t tms_stime; + compat_clock_t tms_cutime; + compat_clock_t tms_cstime; +}; + +struct compat_unimapdesc { + short unsigned int entry_ct; + compat_caddr_t entries; +}; + +struct compat_ustat { + compat_daddr_t f_tfree; + compat_ino_t f_tinode; + char f_fname[6]; + char f_fpack[6]; +}; + +struct component_ops; + +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 { + 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 component_ops { + int (*bind)(struct device *, struct device *, void *); + void (*unbind)(struct device *, struct device *, void *); +}; + +typedef int (*decompress_fn)(unsigned char *, long int, long int (*)(void *, long unsigned int), long int (*)(void *, long unsigned int), unsigned char *, long int *, void (*)(char *)); + +struct compress_format { + unsigned char magic[2]; + const char *name; + decompress_fn decompressor; +}; + +struct compstat; + +struct compressor { + int compress_proto; + void * (*comp_alloc)(unsigned char *, int); + void (*comp_free)(void *); + int (*comp_init)(void *, unsigned char *, int, int, int, int); + void (*comp_reset)(void *); + int (*compress)(void *, unsigned char *, unsigned char *, int, int); + void (*comp_stat)(void *, struct compstat *); + void * (*decomp_alloc)(unsigned char *, int); + void (*decomp_free)(void *); + int (*decomp_init)(void *, unsigned char *, int, int, int, int, int); + void (*decomp_reset)(void *); + int (*decompress)(void *, unsigned char *, int, unsigned char *, int); + void (*incomp)(void *, unsigned char *, int); + void (*decomp_stat)(void *, struct compstat *); + struct module *owner; + unsigned int comp_extra; +}; + +struct compressor_entry { + struct list_head list; + struct compressor *comp; +}; + +struct compstat { + __u32 unc_bytes; + __u32 unc_packets; + __u32 comp_bytes; + __u32 comp_packets; + __u32 inc_bytes; + __u32 inc_packets; + __u32 in_count; + __u32 bytes_out; + double ratio; +}; + +struct consw; + +struct con_driver { + const struct consw *con; + const char *desc; + struct device *dev; + int node; + int first; + int last; + int flag; +}; + +struct cond_av_list { + struct avtab_node **nodes; + u32 len; +}; + +struct cond_bool_datum { + u32 value; + int state; +}; + +struct cond_expr_node; + +struct cond_expr { + struct cond_expr_node *nodes; + u32 len; +}; + +struct cond_expr_node { + u32 expr_type; + u32 boolean; +}; + +struct policydb; + +struct cond_insertf_data { + struct policydb *p; + struct avtab_node **dst; + struct cond_av_list *other; +}; + +struct cond_node { + int cur_state; + struct cond_expr expr; + struct cond_av_list true_list; + struct cond_av_list false_list; +}; + +typedef bool (*cond_update_fn_t)(struct trace_array *, void *); + +struct cond_snapshot { + void *cond_data; + cond_update_fn_t update; +}; + +struct config_group; + +struct config_item_type; + +struct config_item { + char *ci_name; + char ci_namebuf[20]; + struct kref ci_kref; + struct list_head ci_entry; + struct config_item *ci_parent; + struct config_group *ci_group; + const struct config_item_type *ci_type; + struct dentry *ci_dentry; +}; + +struct configfs_subsystem; + +struct config_group { + struct config_item cg_item; + struct list_head cg_children; + struct configfs_subsystem *cg_subsys; + struct list_head default_groups; + struct list_head group_entry; +}; + +struct configfs_item_operations; + +struct configfs_group_operations; + +struct configfs_attribute; + +struct configfs_bin_attribute; + +struct config_item_type { + struct module *ct_owner; + struct configfs_item_operations *ct_item_ops; + struct configfs_group_operations *ct_group_ops; + struct configfs_attribute **ct_attrs; + struct configfs_bin_attribute **ct_bin_attrs; +}; + +struct 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; + +struct configfs_attribute { + const char *ca_name; + struct module *ca_owner; + umode_t ca_mode; + ssize_t (*show)(struct config_item *, char *); + ssize_t (*store)(struct config_item *, const char *, size_t); +}; + +struct configfs_bin_attribute { + struct configfs_attribute cb_attr; + void *cb_private; + size_t cb_max_size; + ssize_t (*read)(struct config_item *, void *, size_t); + ssize_t (*write)(struct config_item *, const void *, size_t); +}; + +struct configfs_buffer { + size_t count; + loff_t pos; + char *page; + struct configfs_item_operations *ops; + struct mutex mutex; + int needs_read_fill; + bool read_in_progress; + bool write_in_progress; + char *bin_buffer; + int bin_buffer_size; + int cb_max_size; + struct config_item *item; + struct module *owner; + union { + struct configfs_attribute *attr; + struct configfs_bin_attribute *bin_attr; + }; +}; + +struct iattr; + +struct configfs_fragment; + +struct configfs_dirent { + atomic_t s_count; + int s_dependent_count; + struct list_head s_sibling; + struct list_head s_children; + int s_links; + void *s_element; + int s_type; + umode_t s_mode; + struct dentry *s_dentry; + struct iattr *s_iattr; + struct configfs_fragment *s_frag; +}; + +struct configfs_fragment { + atomic_t frag_count; + struct rw_semaphore frag_sem; + bool frag_dead; +}; + +struct configfs_group_operations { + struct config_item * (*make_item)(struct config_group *, const char *); + struct config_group * (*make_group)(struct config_group *, const char *); + void (*disconnect_notify)(struct config_group *, struct config_item *); + void (*drop_item)(struct config_group *, struct config_item *); + bool (*is_visible)(struct config_item *, struct configfs_attribute *, int); + bool (*is_bin_visible)(struct config_item *, struct configfs_bin_attribute *, int); +}; + +struct configfs_item_operations { + void (*release)(struct config_item *); + int (*allow_link)(struct config_item *, struct config_item *); + void (*drop_link)(struct config_item *, struct config_item *); +}; + +struct configfs_subsystem { + struct config_group su_group; + struct mutex su_mutex; +}; + +struct conflict_context { + struct nd_region *nd_region; + resource_size_t start; + resource_size_t size; +}; + +struct console; + +struct printk_buffers; + +struct nbcon_context { + struct console *console; + unsigned int spinwait_max_us; + enum nbcon_prio prio; + unsigned int allow_unsafe_takeover: 1; + unsigned int backlog: 1; + struct printk_buffers *pbufs; + u64 seq; +}; + +struct tty_driver; + +struct nbcon_write_context; + +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)(void); + int (*setup)(struct console *, char *); + int (*exit)(struct console *); + int (*match)(struct console *, char *, int, char *); + short int flags; + short int index; + int cflag; + uint ispeed; + uint ospeed; + u64 seq; + long unsigned int dropped; + void *data; + struct hlist_node node; + void (*write_atomic)(struct console *, struct nbcon_write_context *); + void (*write_thread)(struct console *, struct nbcon_write_context *); + void (*device_lock)(struct console *, long unsigned int *); + void (*device_unlock)(struct console *, long unsigned int); + atomic_t nbcon_state; + atomic_long_t nbcon_seq; + struct nbcon_context nbcon_device_ctxt; + atomic_long_t nbcon_prev_seq; + struct printk_buffers *pbufs; + struct task_struct *kthread; + struct rcuwait rcuwait; + struct irq_work irq_work; +}; + +struct winsize { + short unsigned int ws_row; + short unsigned int ws_col; + short unsigned int ws_xpixel; + short unsigned int ws_ypixel; +}; + +struct hvc_struct; + +struct console___2 { + struct list_head list; + struct hvc_struct *hvc; + struct winsize ws; + u32 vtermno; +}; + +struct console_cmdline { + char name[16]; + int index; + char devname[32]; + bool user_specified; + char *options; +}; + +struct console_flush_type { + bool nbcon_atomic; + bool nbcon_offload; + bool legacy_direct; + bool legacy_offload; +}; + +struct console_font { + unsigned int width; + unsigned int height; + unsigned int charcount; + unsigned char *data; +}; + +struct console_font_op { + unsigned int op; + unsigned int flags; + unsigned int width; + unsigned int height; + unsigned int charcount; + unsigned char *data; +}; + +struct constant_table { + const char *name; + int value; +}; + +struct ebitmap_node; + +struct ebitmap { + struct ebitmap_node *node; + u32 highbit; +}; + +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 constraint_node { + u32 permissions; + struct constraint_expr *expr; + struct constraint_node *next; +}; + +struct vc_data; + +struct consw { + struct module *owner; + const char * (*con_startup)(void); + void (*con_init)(struct vc_data *, bool); + void (*con_deinit)(struct vc_data *); + void (*con_clear)(struct vc_data *, unsigned int, unsigned int, unsigned int); + void (*con_putc)(struct vc_data *, u16, unsigned int, unsigned int); + void (*con_putcs)(struct vc_data *, const u16 *, unsigned int, unsigned int, unsigned int); + void (*con_cursor)(struct vc_data *, bool); + bool (*con_scroll)(struct vc_data *, unsigned int, unsigned int, enum con_scroll, unsigned int); + bool (*con_switch)(struct vc_data *); + bool (*con_blank)(struct vc_data *, enum vesa_blank_mode, bool); + int (*con_font_set)(struct vc_data *, const struct console_font *, unsigned int, unsigned int); + int (*con_font_get)(struct vc_data *, struct console_font *, unsigned int); + int (*con_font_default)(struct vc_data *, struct console_font *, const char *); + int (*con_resize)(struct vc_data *, unsigned int, unsigned int, bool); + void (*con_set_palette)(struct vc_data *, const unsigned char *); + void (*con_scrolldelta)(struct vc_data *, int); + bool (*con_set_origin)(struct vc_data *); + void (*con_save_screen)(struct vc_data *); + u8 (*con_build_attr)(struct vc_data *, u8, enum vc_intensity, bool, bool, bool, bool); + void (*con_invert_region)(struct vc_data *, u16 *, int); + void (*con_debug_enter)(struct vc_data *); + void (*con_debug_leave)(struct vc_data *); +}; + +struct microcode_amd; + +struct cont_desc { + struct microcode_amd *mc; + u32 psize; + u8 *data; + size_t size; +}; + +struct container_dev { + struct device dev; + int (*offline)(struct container_dev *); +}; + +struct mls_level { + u32 sens; + struct ebitmap cat; +}; + +struct mls_range { + struct mls_level level[2]; +}; + +struct context___2 { + u32 user; + u32 role; + u32 type; + u32 len; + struct mls_range range; + char *str; +}; + +struct context_entry { + u64 lo; + u64 hi; +}; + +struct context_tracking { + bool active; + int recursion; + atomic_t state; + long int nesting; + long int nmi_nesting; +}; + +struct contig_page_info { + long unsigned int free_pages; + long unsigned int free_blocks_total; + long unsigned int free_blocks_suitable; +}; + +struct virtio_net_ctrl_hdr { + __u8 class; + __u8 cmd; +}; + +struct control_buf { + struct virtio_net_ctrl_hdr hdr; + virtio_net_ctrl_ack status; +}; + +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 pcie_device; + +struct controller { + struct pcie_device *pcie; + u64 dsn; + u32 slot_cap; + unsigned int inband_presence_disabled: 1; + u16 slot_ctrl; + struct mutex ctrl_lock; + long unsigned int cmd_started; + unsigned int cmd_busy: 1; + wait_queue_head_t queue; + atomic_t pending_events; + unsigned int notification_enabled: 1; + unsigned int power_fault_detected; + struct task_struct *poll_thread; + u8 state; + struct mutex state_lock; + struct delayed_work button_work; + struct hotplug_slot hotplug_slot; + struct rw_semaphore reset_lock; + unsigned int depth; + unsigned int ist_running; + int request_result; + wait_queue_head_t requester; +}; + +struct controller___2 { + struct mutex crit_sect; + struct mutex cmd_lock; + int num_slots; + int slot_num_inc; + struct pci_dev *pci_dev; + struct list_head slot_list; + wait_queue_head_t queue; + u8 slot_device_offset; + u32 pcix_misc2_reg; + u32 first_slot; + u32 cap_offset; + long unsigned int mmio_base; + long unsigned int mmio_size; + void *creg; + struct timer_list poll_timer; +}; + +struct convert_context_args { + struct policydb *oldp; + struct policydb *newp; +}; + +struct cooling_dev_stats { + spinlock_t lock; + unsigned int total_trans; + long unsigned int state; + ktime_t last_time; + ktime_t *time_in_state; + unsigned int *trans_table; +}; + +struct cooling_spec { + long unsigned int upper; + long unsigned int lower; + unsigned int weight; +}; + +struct copy_from_grant { + const struct blk_shadow *s; + unsigned int grant_idx; + unsigned int bvec_offset; + char *bvec_data; +}; + +struct copy_subpage_arg { + struct folio *dst; + struct folio *src; + struct vm_area_struct *vma; +}; + +struct core_name { + char *corename; + int used; + int size; +}; + +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 core_text { + long unsigned int base; + long unsigned int end; + const char *name; +}; + +struct core_vma_metadata { + long unsigned int start; + long unsigned int end; + long unsigned int flags; + long unsigned int dump_size; + long unsigned int pgoff; + struct file *file; +}; + +struct kernel_siginfo; + +typedef struct kernel_siginfo kernel_siginfo_t; + +struct coredump_params { + const kernel_siginfo_t *siginfo; + struct file *file; + long unsigned int limit; + long unsigned int 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 pid *pid; +}; + +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 counted_str { + struct kref count; + char name[0]; +}; + +struct regulator_dev; + +struct regulator_coupler; + +struct coupling_desc { + struct regulator_dev **coupled_rdevs; + struct regulator_coupler *coupler; + int n_resolved; + int n_coupled; +}; + +struct pgprot { + pgprotval_t pgprot; +}; + +typedef struct pgprot pgprot_t; + +struct cpa_data { + long unsigned int *vaddr; + pgd_t *pgd; + pgprot_t mask_set; + pgprot_t mask_clr; + long unsigned int numpages; + long unsigned int curpage; + long unsigned int pfn; + unsigned int flags; + unsigned int force_split: 1; + unsigned int force_static_prot: 1; + unsigned int force_flush_all: 1; + struct page **pages; +}; + +struct 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; + raw_spinlock_t rmw_lock; + struct cpc_register_resource cpc_regs[21]; + struct acpi_psd_package domain_info; + struct kobject kobj; +}; + +struct cpci_hp_controller_ops; + +struct cpci_hp_controller { + unsigned int irq; + long unsigned int irq_flags; + char *devname; + void *dev_id; + char *name; + struct cpci_hp_controller_ops *ops; +}; + +struct slot___2; + +struct cpci_hp_controller_ops { + int (*query_enum)(void); + int (*enable_irq)(void); + int (*disable_irq)(void); + int (*check_irq)(void *); + u8 (*get_power)(struct slot___2 *); + int (*set_power)(struct slot___2 *, int); +}; + +struct cper_arm_err_info { + u8 version; + u8 length; + u16 validation_bits; + u8 type; + u16 multiple_error; + u8 flags; + u64 error_info; + u64 virt_fault_addr; + u64 physical_fault_addr; +} __attribute__((packed)); + +struct cper_cxl_event_devid { + u16 vendor_id; + u16 device_id; + u8 func_num; + u8 device_num; + u8 bus_num; + u16 segment_num; + u16 slot_num; + u8 reserved; +} __attribute__((packed)); + +struct cper_cxl_event_sn { + u32 lower_dw; + u32 upper_dw; +}; + +struct cper_ia_err_info { + guid_t err_type; + u64 validation_bits; + u64 check_info; + u64 target_id; + u64 requestor_id; + u64 responder_id; + u64 ip; +}; + +struct cper_ia_proc_ctx { + u16 reg_ctx_type; + u16 reg_arr_size; + u32 msr_addr; + u64 mm_reg_addr; +}; + +struct cper_record_header { + char signature[4]; + u16 revision; + u32 signature_end; + u16 section_count; + u32 error_severity; + u32 validation_bits; + u32 record_length; + u64 timestamp; + guid_t platform_id; + guid_t partition_id; + guid_t creator_id; + guid_t notification_type; + u64 record_id; + u32 flags; + u64 persistence_information; + u8 reserved[12]; +} __attribute__((packed)); + +struct cper_section_descriptor { + u32 section_offset; + u32 section_length; + u16 revision; + u8 validation_bits; + u8 reserved; + u32 flags; + guid_t section_type; + guid_t fru_id; + u32 section_severity; + u8 fru_text[20]; +}; + +struct 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 cper_mce_record { + struct cper_record_header hdr; + struct cper_section_descriptor sec_hdr; + struct mce mce; +}; + +struct cper_mem_err_compact { + u64 validation_bits; + u16 node; + u16 card; + u16 module; + u16 bank; + u16 device; + u16 row; + u16 column; + u16 bit_pos; + u64 requestor_id; + u64 responder_id; + u64 target_id; + u16 rank; + u16 mem_array_handle; + u16 mem_dev_handle; + u8 extended; +} __attribute__((packed)); + +struct cper_pstore_record { + struct cper_record_header hdr; + struct cper_section_descriptor sec_hdr; + char data[0]; +}; + +struct cper_sec_fw_err_rec_ref { + u8 record_type; + u8 revision; + u8 reserved[6]; + u64 record_identifier; + guid_t record_identifier_guid; +}; + +struct cper_sec_mem_err { + u64 validation_bits; + u64 error_status; + u64 physical_addr; + u64 physical_addr_mask; + u16 node; + u16 card; + u16 module; + u16 bank; + u16 device; + u16 row; + u16 column; + u16 bit_pos; + u64 requestor_id; + u64 responder_id; + u64 target_id; + u8 error_type; + u8 extended; + u16 rank; + u16 mem_array_handle; + u16 mem_dev_handle; +}; + +struct cper_sec_pcie { + u64 validation_bits; + u32 port_type; + struct { + u8 minor; + u8 major; + u8 reserved[2]; + } version; + u16 command; + u16 status; + u32 reserved; + struct { + u16 vendor_id; + u16 device_id; + u8 class_code[3]; + u8 function; + u8 device; + u16 segment; + u8 bus; + u8 secondary_bus; + u16 slot; + u8 reserved; + } __attribute__((packed)) device_id; + struct { + u32 lower; + u32 upper; + } serial_number; + struct { + u16 secondary_status; + u16 control; + } bridge; + u8 capability[60]; + u8 aer_info[96]; +}; + +struct cper_sec_proc_arm { + u32 validation_bits; + u16 err_info_num; + u16 context_info_num; + u32 section_length; + u8 affinity_level; + u8 reserved[3]; + u64 mpidr; + u64 midr; + u32 running_state; + u32 psci_state; +}; + +struct cper_sec_proc_generic { + u64 validation_bits; + u8 proc_type; + u8 proc_isa; + u8 proc_error_type; + u8 operation; + u8 flags; + u8 level; + u16 reserved; + u64 cpu_version; + char cpu_brand[128]; + u64 proc_id; + u64 target_addr; + u64 requestor_id; + u64 responder_id; + u64 ip; +}; + +struct cper_sec_proc_ia { + u64 validation_bits; + u64 lapic_id; + u8 cpuid[48]; +}; + +struct cper_sec_prot_err { + u64 valid_bits; + u8 agent_type; + u8 reserved[7]; + union { + u64 rcrb_base_addr; + struct { + u8 function; + u8 device; + u8 bus; + u16 segment; + u8 reserved_1[3]; + } __attribute__((packed)); + } agent_addr; + struct { + u16 vendor_id; + u16 device_id; + u16 subsystem_vendor_id; + u16 subsystem_id; + u8 class_code[2]; + u16 slot; + u8 reserved_1[4]; + } device_id; + struct { + u32 lower_dw; + u32 upper_dw; + } dev_serial_num; + u8 capability[60]; + u16 dvsec_len; + u16 err_len; + u8 reserved_2[4]; +} __attribute__((packed)); + +struct cpio_data { + void *data; + size_t size; + char name[18]; +}; + +struct cppc_perf_caps { + u32 guaranteed_perf; + u32 highest_perf; + u32 nominal_perf; + u32 lowest_perf; + u32 lowest_nonlinear_perf; + u32 lowest_freq; + u32 nominal_freq; + u32 energy_perf; + bool auto_sel; +}; + +struct 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 pcc_mbox_chan; + +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 cpu { + int node_id; + int hotpluggable; + struct device dev; +}; + +struct cpu_attr { + struct device_attribute attr; + const struct cpumask * const map; +}; + +struct cpu_cacheinfo { + struct cacheinfo *info_list; + unsigned int per_cpu_data_slice_size; + unsigned int num_levels; + unsigned int num_leaves; + bool cpu_map_populated; + bool early_ci_levels; +}; + +struct update_util_data { + void (*func)(struct update_util_data *, u64, unsigned int); +}; + +struct policy_dbs_info; + +struct cpu_dbs_info { + u64 prev_cpu_idle; + u64 prev_update_time; + u64 prev_cpu_nice; + unsigned int prev_load; + struct update_util_data update_util; + struct policy_dbs_info *policy_dbs; +}; + +struct cpuinfo_x86; + +struct cpu_dev { + const char *c_vendor; + const char *c_ident[2]; + void (*c_early_init)(struct cpuinfo_x86 *); + void (*c_bsp_init)(struct cpuinfo_x86 *); + void (*c_init)(struct cpuinfo_x86 *); + void (*c_identify)(struct cpuinfo_x86 *); + void (*c_detect_tlb)(struct cpuinfo_x86 *); + int c_x86_vendor; +}; + +struct cpu_down_work { + unsigned int cpu; + enum cpuhp_state target; +}; + +struct entry_stack { + char stack[4096]; +}; + +struct entry_stack_page { + struct entry_stack stack; +}; + +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; + long unsigned int bitmap[1025]; + long unsigned int 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 folio_batch { + unsigned char nr; + unsigned char i; + bool percpu_pvec_drained; + struct folio *folios[31]; +}; + +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 lru_activate; + local_lock_t lock_irq; + struct folio_batch lru_move_tail; +}; + +struct perf_branch_entry { + __u64 from; + __u64 to; + __u64 mispred: 1; + __u64 predicted: 1; + __u64 in_tx: 1; + __u64 abort: 1; + __u64 cycles: 16; + __u64 type: 4; + __u64 spec: 2; + __u64 new_type: 4; + __u64 priv: 3; + __u64 reserved: 31; +}; + +struct perf_branch_stack { + __u64 nr; + __u64 hw_idx; + struct perf_branch_entry entries[0]; +}; + +struct perf_guest_switch_msr { + unsigned int msr; + u64 host; + u64 guest; +}; + +struct er_account; + +struct intel_shared_regs; + +struct intel_excl_cntrs; + +struct cpu_hw_events { + struct perf_event *events[64]; + long unsigned int active_mask[1]; + long unsigned int dirty[1]; + int enabled; + int n_events; + int n_added; + int n_txn; + int n_txn_pair; + int n_txn_metric; + int assign[64]; + u64 tags[64]; + struct perf_event *event_list[64]; + struct event_constraint *event_constraint[64]; + int n_excl; + unsigned int txn_flags; + int is_fake; + struct debug_store *ds; + void *ds_pebs_vaddr; + void *ds_bts_vaddr; + u64 pebs_enabled; + int n_pebs; + int n_large_pebs; + int n_pebs_via_pt; + int pebs_output; + u64 pebs_data_cfg; + u64 active_pebs_data_cfg; + int pebs_record_size; + u64 fixed_ctrl_val; + u64 active_fixed_ctrl_val; + int lbr_users; + int lbr_pebs_users; + struct perf_branch_stack lbr_stack; + struct perf_branch_entry lbr_entries[32]; + u64 lbr_counters[32]; + union { + struct er_account *lbr_sel; + struct er_account *lbr_ctl; + }; + u64 br_sel; + void *last_task_ctx; + int last_log_id; + int lbr_select; + void *lbr_xsave; + u64 intel_ctrl_guest_mask; + u64 intel_ctrl_host_mask; + struct perf_guest_switch_msr guest_switch_msrs[64]; + u64 intel_cp_status; + struct intel_shared_regs *shared_regs; + struct event_constraint *constraint_list; + struct intel_excl_cntrs *excl_cntrs; + int excl_thread_id; + u64 tfa_shadow; + int n_metric; + struct amd_nb *amd_nb; + int brs_active; + u64 perf_ctr_virt_mask; + int n_pair; + void *kfree_on_online[2]; + struct pmu *pmu; +}; + +struct cpu_id { + __u8 x86; + __u8 x86_model; + __u8 x86_stepping; +}; + +struct cpu_itimer { + u64 expires; + u64 incr; +}; + +struct cpufreq_frequency_table; + +struct cpu_model { + const struct cpu_id *cpu_id; + const char *model_name; + unsigned int max_freq; + struct cpufreq_frequency_table *op_points; +}; + +struct cpu_perf_ibs { + struct perf_event *event; + long unsigned int state[1]; +}; + +struct cpu_rmap { + struct kref refcount; + u16 size; + void **obj; + struct { + u16 index; + u16 dist; + } near[0]; +}; + +struct cpu_signature { + unsigned int sig; + unsigned int pf; + unsigned int rev; +}; + +struct cpu_stop_done { + atomic_t nr_todo; + int ret; + struct completion completion; +}; + +typedef int (*cpu_stop_fn_t)(void *); + +struct cpu_stop_work { + struct list_head list; + cpu_stop_fn_t fn; + long unsigned int 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; + long unsigned int caller; + cpu_stop_fn_t fn; +}; + +struct cpu_timer { + struct timerqueue_node node; + struct timerqueue_head *head; + struct pid *pid; + struct list_head elist; + bool firing; + bool nanosleep; + struct task_struct *handling; +}; + +struct cpu_user_regs { + uint64_t r15; + uint64_t r14; + uint64_t r13; + uint64_t r12; + union { + uint64_t rbp; + uint64_t ebp; + uint32_t _ebp; + }; + union { + uint64_t rbx; + uint64_t ebx; + uint32_t _ebx; + }; + uint64_t r11; + uint64_t r10; + uint64_t r9; + uint64_t r8; + union { + uint64_t rax; + uint64_t eax; + uint32_t _eax; + }; + union { + uint64_t rcx; + uint64_t ecx; + uint32_t _ecx; + }; + union { + uint64_t rdx; + uint64_t edx; + uint32_t _edx; + }; + union { + uint64_t rsi; + uint64_t esi; + uint32_t _esi; + }; + union { + uint64_t rdi; + uint64_t edi; + uint32_t _edi; + }; + uint32_t error_code; + uint32_t entry_vector; + union { + uint64_t rip; + uint64_t eip; + uint32_t _eip; + }; + uint16_t cs; + uint16_t _pad0[1]; + uint8_t saved_upcall_mask; + uint8_t _pad1[3]; + union { + uint64_t rflags; + uint64_t eflags; + uint32_t _eflags; + }; + union { + uint64_t rsp; + uint64_t esp; + uint32_t _esp; + }; + uint16_t ss; + uint16_t _pad2[3]; + uint16_t es; + uint16_t _pad3[3]; + uint16_t ds; + uint16_t _pad4[3]; + uint16_t fs; + uint16_t _pad5[3]; + uint16_t gs; + uint16_t _pad6[3]; +}; + +struct cpu_vfs_cap_data { + __u32 magic_etc; + kuid_t rootid; + kernel_cap_t permitted; + kernel_cap_t inheritable; +}; + +struct kernel_cpustat; + +struct cpuacct { + struct cgroup_subsys_state css; + u64 *cpuusage; + struct kernel_cpustat *cpustat; +}; + +struct pstate_data { + int current_pstate; + int min_pstate; + int max_pstate; + int max_pstate_physical; + int perf_ctl_scaling; + int scaling; + int turbo_pstate; + unsigned int min_freq; + unsigned int max_freq; + unsigned int turbo_freq; +}; + +struct vid_data { + int min; + int max; + int turbo; + int32_t ratio; +}; + +struct sample { + int32_t core_avg_perf; + int32_t busy_scaled; + u64 aperf; + u64 mperf; + u64 tsc; + u64 time; +}; + +struct cpudata { + int cpu; + unsigned int policy; + struct update_util_data update_util; + bool update_util_set; + struct pstate_data pstate; + struct vid_data vid; + u64 last_update; + u64 last_sample_time; + u64 aperf_mperf_shift; + u64 prev_aperf; + u64 prev_mperf; + u64 prev_tsc; + struct sample sample; + int32_t min_perf_ratio; + int32_t max_perf_ratio; + struct acpi_processor_performance acpi_perf_data; + bool valid_pss_table; + unsigned int iowait_boost; + s16 epp_powersave; + s16 epp_policy; + s16 epp_default; + s16 epp_cached; + u64 hwp_req_cached; + u64 hwp_cap_cached; + u64 last_io_update; + unsigned int capacity_perf; + unsigned int sched_flags; + u32 hwp_boost_min; + bool suspended; + struct delayed_work hwp_notify_work; +}; + +struct cpudl_item; + +struct cpudl { + raw_spinlock_t lock; + int size; + cpumask_var_t free_cpus; + struct cpudl_item *elements; +}; + +struct cpudl_item { + u64 dl; + int cpu; + int idx; +}; + +struct cpufreq_cpuinfo { + unsigned int max_freq; + unsigned int min_freq; + unsigned int transition_latency; +}; + +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, long unsigned int, long unsigned int, long unsigned int); + 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 *); + void (*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_freqs { + struct cpufreq_policy *policy; + unsigned int old; + unsigned int new; + u8 flags; +}; + +struct cpufreq_frequency_table { + unsigned int flags; + unsigned int driver_data; + unsigned int frequency; +}; + +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 plist_head { + struct list_head node_list; +}; + +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 cpufreq_stats; + +struct cpufreq_policy { + cpumask_var_t cpus; + cpumask_var_t related_cpus; + cpumask_var_t real_cpus; + unsigned int shared_type; + unsigned int cpu; + struct clk *clk; + struct cpufreq_cpuinfo cpuinfo; + unsigned int min; + unsigned int max; + unsigned int cur; + unsigned int suspend_freq; + unsigned int policy; + unsigned int last_policy; + struct cpufreq_governor *governor; + void *governor_data; + char last_governor[16]; + struct work_struct update; + struct freq_constraints constraints; + struct freq_qos_request *min_freq_req; + struct freq_qos_request *max_freq_req; + struct cpufreq_frequency_table *freq_table; + enum cpufreq_table_sorting freq_table_sorted; + struct list_head policy_list; + struct kobject kobj; + struct completion kobj_unregister; + struct rw_semaphore rwsem; + bool fast_switch_possible; + bool fast_switch_enabled; + bool strict_target; + bool efficiencies_available; + unsigned int transition_delay_us; + bool dvfs_possible_from_any_cpu; + bool boost_enabled; + bool boost_supported; + 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_policy_data { + struct cpufreq_cpuinfo cpuinfo; + struct cpufreq_frequency_table *freq_table; + unsigned int cpu; + unsigned int min; + unsigned int max; +}; + +struct cpufreq_stats { + unsigned int total_trans; + long long unsigned int last_time; + unsigned int max_state; + unsigned int state_num; + unsigned int last_index; + u64 *time_in_state; + unsigned int *freq_table; + unsigned int *trans_table; + unsigned int reset_pending; + long long unsigned int reset_time; +}; + +struct cpuhp_cpu_state { + enum cpuhp_state state; + enum cpuhp_state target; + enum cpuhp_state fail; + struct task_struct *thread; + bool should_run; + bool rollback; + bool single; + bool bringup; + struct hlist_node *node; + struct hlist_node *last; + enum cpuhp_state cb_state; + int result; + atomic_t ap_sync_state; + struct completion done_up; + struct completion done_down; +}; + +struct cpuhp_step { + const char *name; + union { + int (*single)(unsigned int); + int (*multi)(unsigned int, struct hlist_node *); + } startup; + union { + int (*single)(unsigned int); + int (*multi)(unsigned int, struct hlist_node *); + } teardown; + struct hlist_head list; + bool cant_stop; + bool multi_instance; +}; + +union cpuid10_eax { + struct { + unsigned int version_id: 8; + unsigned int num_counters: 8; + unsigned int bit_width: 8; + unsigned int mask_length: 8; + } split; + unsigned int full; +}; + +union cpuid10_ebx { + struct { + unsigned int no_unhalted_core_cycles: 1; + unsigned int no_instructions_retired: 1; + unsigned int no_unhalted_reference_cycles: 1; + unsigned int no_llc_reference: 1; + unsigned int no_llc_misses: 1; + unsigned int no_branch_instruction_retired: 1; + unsigned int no_branch_misses_retired: 1; + } split; + unsigned int full; +}; + +union cpuid10_edx { + struct { + unsigned int num_counters_fixed: 5; + unsigned int bit_width_fixed: 8; + unsigned int reserved1: 2; + unsigned int anythread_deprecated: 1; + unsigned int reserved2: 16; + } split; + unsigned int full; +}; + +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; + unsigned int reserved: 13; + unsigned int lbr_counters: 4; + } split; + unsigned int full; +}; + +union cpuid35_eax { + struct { + unsigned int leaf0: 1; + unsigned int cntr_subleaf: 1; + unsigned int acr_subleaf: 1; + unsigned int events_subleaf: 1; + unsigned int reserved: 28; + } split; + unsigned int full; +}; + +union cpuid35_ebx { + struct { + unsigned int umask2: 1; + unsigned int eq: 1; + unsigned int reserved: 30; + } split; + unsigned int full; +}; + +union hfi_capabilities { + struct { + u8 performance: 1; + u8 energy_efficiency: 1; + u8 __reserved: 6; + } split; + u8 bits; +}; + +union cpuid6_edx { + struct { + union hfi_capabilities capabilities; + u32 table_pages: 4; + u32 __reserved: 4; + s32 index: 16; + } split; + u32 full; +}; + +union cpuid_0x10_1_eax { + struct { + unsigned int cbm_len: 5; + } split; + unsigned int full; +}; + +union cpuid_0x10_3_eax { + struct { + unsigned int max_delay: 12; + } split; + unsigned int full; +}; + +union cpuid_0x10_x_ecx { + struct { + unsigned int reserved: 3; + unsigned int noncont: 1; + } split; + unsigned int full; +}; + +union cpuid_0x10_x_edx { + struct { + unsigned int cos_max: 16; + } split; + unsigned int full; +}; + +union cpuid_0x80000022_ebx { + struct { + unsigned int num_core_pmc: 4; + unsigned int lbr_v2_stack_sz: 6; + unsigned int num_df_pmc: 6; + unsigned int num_umc_pmc: 6; + } split; + unsigned int full; +}; + +union cpuid_1_eax { + struct { + __u32 stepping: 4; + __u32 model: 4; + __u32 family: 4; + __u32 __reserved0: 4; + __u32 ext_model: 4; + __u32 ext_fam: 8; + __u32 __reserved1: 4; + }; + __u32 full; +}; + +struct cpuid_bit { + u16 feature; + u8 reg; + u8 bit; + u32 level; + u32 sub_leaf; +}; + +struct cpuid_dep { + unsigned int feature; + unsigned int depends; +}; + +struct cpuid_dependent_feature { + u32 feature; + u32 level; +}; + +struct cpuid_leaf { + u32 fn; + u32 subfn; + u32 eax; + u32 ebx; + u32 ecx; + u32 edx; +}; + +struct cpuidle_device; + +struct cpuidle_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_device *, char *); + ssize_t (*store)(struct cpuidle_device *, const char *, size_t); +}; + +struct cpuidle_state_usage { + long long unsigned int disable; + long long unsigned int usage; + u64 time_ns; + long long unsigned int above; + long long unsigned int below; + long long unsigned int rejected; + long long unsigned int s2idle_usage; + long long unsigned int s2idle_time; +}; + +struct cpuidle_driver_kobj; + +struct cpuidle_state_kobj; + +struct cpuidle_device_kobj; + +struct cpuidle_device { + unsigned int registered: 1; + unsigned int enabled: 1; + unsigned int poll_time_limit: 1; + unsigned int cpu; + ktime_t next_hrtimer; + int last_state_idx; + u64 last_residency_ns; + u64 poll_limit_ns; + u64 forced_idle_latency_limit_ns; + struct cpuidle_state_usage states_usage[10]; + struct cpuidle_state_kobj *kobjs[10]; + struct cpuidle_driver_kobj *kobj_driver; + struct cpuidle_device_kobj *kobj_dev; + struct list_head device_list; +}; + +struct cpuidle_device_kobj { + struct cpuidle_device *dev; + struct completion kobj_unregister; + struct kobject kobj; +}; + +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); + void (*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_governor { + char name[16]; + struct list_head governor_list; + unsigned int rating; + int (*enable)(struct cpuidle_driver *, struct cpuidle_device *); + void (*disable)(struct cpuidle_driver *, struct cpuidle_device *); + int (*select)(struct cpuidle_driver *, struct cpuidle_device *, bool *); + void (*reflect)(struct cpuidle_device *, int); +}; + +struct cpuidle_state_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 cpuinfo_topology { + u32 apicid; + u32 initial_apicid; + u32 pkg_id; + u32 die_id; + u32 cu_id; + u32 core_id; + u32 logical_pkg_id; + u32 logical_die_id; + u32 logical_core_id; + u32 amd_node_id; + u32 llc_id; + u32 l2c_id; + union { + u32 cpu_type; + struct { + u32 intel_native_model_id: 24; + u32 intel_type: 8; + }; + struct { + u32 amd_num_processors: 16; + u32 amd_power_eff_ranking: 8; + u32 amd_native_model_id: 4; + u32 amd_type: 4; + }; + }; +}; + +struct cpuinfo_x86 { + union { + struct { + __u8 x86_model; + __u8 x86; + __u8 x86_vendor; + __u8 x86_reserved; + }; + __u32 x86_vfm; + }; + __u8 x86_stepping; + int x86_tlbsize; + __u32 vmx_capability[5]; + __u8 x86_virt_bits; + __u8 x86_phys_bits; + __u32 extended_cpuid_level; + int cpuid_level; + union { + __u32 x86_capability[24]; + long unsigned int x86_capability_alignment; + }; + char x86_vendor_id[16]; + char x86_model_id[64]; + struct cpuinfo_topology topo; + unsigned int x86_cache_size; + int x86_cache_alignment; + int x86_cache_max_rmid; + int x86_cache_occ_scale; + int x86_cache_mbm_width_offset; + int x86_power; + long unsigned int loops_per_jiffy; + u64 ppin; + u16 x86_clflush_size; + u16 booted_cores; + u16 cpu_index; + bool smt_active; + u32 microcode; + u8 x86_cache_bits; + unsigned int initialized: 1; +}; + +struct cpumap { + unsigned int available; + unsigned int allocated; + unsigned int managed; + unsigned int managed_allocated; + bool initialized; + bool online; + long unsigned int *managed_map; + long unsigned int alloc_map[0]; +}; + +union cpumask_rcuhead { + cpumask_t cpumask; + struct callback_head rcu; +}; + +struct cpupri_vec { + atomic_t count; + cpumask_var_t mask; +}; + +struct cpupri { + struct cpupri_vec pri_to_cpu[101]; + int *cpu_to_pri; +}; + +struct fmeter { + int cnt; + int val; + time64_t time; + spinlock_t lock; +}; + +struct uf_node { + struct uf_node *parent; + unsigned int rank; +}; + +struct cpuset { + struct cgroup_subsys_state css; + long unsigned int flags; + cpumask_var_t cpus_allowed; + nodemask_t mems_allowed; + cpumask_var_t effective_cpus; + nodemask_t effective_mems; + cpumask_var_t effective_xcpus; + cpumask_var_t exclusive_cpus; + nodemask_t old_mems_allowed; + struct fmeter fmeter; + int attach_in_progress; + int relax_domain_level; + int nr_subparts; + int partition_root_state; + int nr_deadline_tasks; + int nr_migrate_dl_tasks; + u64 sum_migrate_dl_bw; + enum prs_errcode prs_err; + struct cgroup_file partition_file; + struct list_head remote_sibling; + struct uf_node node; +}; + +struct cpuset_migrate_mm_work { + struct work_struct work; + struct mm_struct *mm; + nodemask_t from; + nodemask_t to; +}; + +struct range { + u64 start; + u64 end; +}; + +struct crash_mem { + unsigned int max_nr_ranges; + unsigned int nr_ranges; + struct range ranges[0]; +}; + +struct crash_memmap_data { + struct boot_params *params; + unsigned int type; +}; + +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 crc64_pi_tuple { + __be64 guard_tag; + __be16 app_tag; + __u8 ref_tag[6]; +}; + +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 group_info; + +struct cred { + atomic_long_t usage; + kuid_t uid; + kgid_t gid; + kuid_t suid; + kgid_t sgid; + kuid_t euid; + kgid_t egid; + kuid_t fsuid; + kgid_t fsgid; + unsigned int securebits; + kernel_cap_t cap_inheritable; + kernel_cap_t cap_permitted; + kernel_cap_t cap_effective; + kernel_cap_t cap_bset; + kernel_cap_t cap_ambient; + unsigned char jit_keyring; + struct key *session_keyring; + struct key *process_keyring; + struct key *thread_keyring; + struct key *request_key_auth; + void *security; + struct user_struct *user; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct group_info *group_info; + union { + int non_rcu; + struct callback_head rcu; + }; +}; + +struct cred_label { + const struct cred *cred; + struct aa_label *label; +}; + +struct crng { + u8 key[32]; + long unsigned int generation; + local_lock_t lock; +}; + +struct cros_ec_command { + uint32_t version; + uint32_t command; + uint32_t outsize; + uint32_t insize; + uint32_t result; + uint8_t data[0]; +}; + +struct cros_ec_debugfs; + +struct ec_response_get_features { + uint32_t flags[2]; +}; + +struct cros_ec_device; + +struct cros_ec_dev { + struct device class_dev; + struct cros_ec_device *ec_dev; + struct device *dev; + struct cros_ec_debugfs *debug_info; + bool has_kb_wake_angle; + u16 cmd_offset; + struct ec_response_get_features features; +}; + +struct ec_response_motion_sense_fifo_info { + uint16_t size; + uint16_t count; + uint32_t timestamp; + uint16_t total_lost; + uint16_t lost[0]; +} __attribute__((packed)); + +union ec_response_get_next_data_v3 { + uint8_t key_matrix[18]; + uint32_t host_event; + uint64_t host_event64; + struct { + uint8_t reserved[3]; + struct ec_response_motion_sense_fifo_info info; + } sensor_fifo; + uint32_t buttons; + uint32_t switches; + uint32_t fp_events; + uint32_t sysrq; + uint32_t cec_events; + uint8_t cec_message[16]; +}; + +struct ec_response_get_next_event_v3 { + uint8_t event_type; + union ec_response_get_next_data_v3 data; +}; + +struct cros_ec_device { + const char *phys_name; + struct device *dev; + struct class *cros_class; + int (*cmd_readmem)(struct cros_ec_device *, unsigned int, unsigned int, void *); + u16 max_request; + u16 max_response; + u16 max_passthru; + u16 proto_version; + void *priv; + int irq; + u8 *din; + u8 *dout; + int din_size; + int dout_size; + bool wake_enabled; + bool suspended; + int (*cmd_xfer)(struct cros_ec_device *, struct cros_ec_command *); + int (*pkt_xfer)(struct cros_ec_device *, struct cros_ec_command *); + struct lock_class_key lockdep_key; + struct mutex lock; + u8 mkbp_event_supported; + bool host_sleep_v1; + struct blocking_notifier_head event_notifier; + struct ec_response_get_next_event_v3 event_data; + int event_size; + u32 host_event_wake_mask; + u32 last_resume_result; + u16 suspend_timeout_ms; + ktime_t last_event_time; + struct notifier_block notifier_ready; + struct platform_device *ec; + struct platform_device *pd; + struct blocking_notifier_head panic_notifier; +}; + +struct crs_csi2 { + struct list_head entry; + acpi_handle handle; + struct acpi_device_software_nodes *swnodes; + struct list_head connections; + u32 port_count; +}; + +struct crs_csi2_connection { + struct list_head entry; + struct acpi_resource_csi2_serialbus csi2_data; + acpi_handle remote_handle; + char remote_name[0]; +}; + +struct crypto_tfm { + refcount_t refcnt; + u32 crt_flags; + int node; + void (*exit)(struct crypto_tfm *); + struct crypto_alg *__crt_alg; + void *__crt_ctx[0]; +}; + +struct 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 crypto_wait { + struct completion completion; + int err; +}; + +struct crypto_acomp_ctx { + struct crypto_acomp *acomp; + struct acomp_req *req; + struct crypto_wait wait; + u8 *buffer; + struct mutex mutex; + bool is_sleepable; +}; + +struct crypto_aead { + unsigned int authsize; + unsigned int reqsize; + struct crypto_tfm base; +}; + +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 crypto_aead_spawn { + struct crypto_spawn base; +}; + +struct crypto_ahash { + bool using_shash; + unsigned int statesize; + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_ahash_spawn { + struct crypto_spawn base; +}; + +struct crypto_akcipher { + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_akcipher_spawn { + struct crypto_spawn base; +}; + +struct crypto_akcipher_sync_data { + struct crypto_akcipher *tfm; + const void *src; + void *dst; + unsigned int slen; + unsigned int dlen; + struct akcipher_request *req; + struct crypto_wait cwait; + struct scatterlist sg; + u8 *buf; +}; + +struct crypto_attr_alg { + char name[128]; +}; + +struct crypto_attr_type { + u32 type; + u32 mask; +}; + +struct crypto_cipher { + struct crypto_tfm base; +}; + +struct crypto_cipher_spawn { + struct crypto_spawn base; +}; + +struct crypto_comp { + struct crypto_tfm base; +}; + +struct crypto_cts_ctx { + struct crypto_skcipher *child; +}; + +struct skcipher_request { + unsigned int cryptlen; + u8 *iv; + struct scatterlist *src; + struct scatterlist *dst; + struct crypto_async_request base; + void *__ctx[0]; +}; + +struct crypto_cts_reqctx { + struct scatterlist sg[2]; + unsigned int offset; + struct skcipher_request subreq; +}; + +struct crypto_gcm_ctx { + struct crypto_skcipher *ctr; + struct crypto_ahash *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_hash_walk { + char *data; + unsigned int offset; + unsigned int flags; + struct page *pg; + unsigned int entrylen; + unsigned int total; + struct scatterlist *sg; +}; + +struct crypto_kpp { + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_kpp_spawn { + struct crypto_spawn base; +}; + +struct crypto_larval { + struct crypto_alg alg; + struct crypto_alg *adult; + struct completion completion; + u32 mask; + bool test_started; +}; + +struct crypto_lskcipher { + struct crypto_tfm base; +}; + +struct crypto_lskcipher_spawn { + struct crypto_spawn base; +}; + +struct crypto_queue { + struct list_head list; + struct list_head *backlog; + unsigned int qlen; + unsigned int max_qlen; +}; + +struct crypto_report_acomp { + char type[64]; +}; + +struct crypto_report_aead { + char type[64]; + char geniv[64]; + unsigned int blocksize; + unsigned int maxauthsize; + unsigned int ivsize; +}; + +struct crypto_report_akcipher { + char type[64]; +}; + +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 crypto_report_comp { + char type[64]; +}; + +struct crypto_report_hash { + char type[64]; + unsigned int blocksize; + unsigned int digestsize; +}; + +struct crypto_report_kpp { + char type[64]; +}; + +struct crypto_report_rng { + char type[64]; + unsigned int seedsize; +}; + +struct crypto_report_sig { + char type[64]; +}; + +struct crypto_rfc3686_ctx { + struct crypto_skcipher *child; + u8 nonce[4]; +}; + +struct crypto_rfc3686_req_ctx { + u8 iv[16]; + struct skcipher_request subreq; +}; + +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_ctx { + struct crypto_aead *child; + struct crypto_sync_skcipher *null; + u8 nonce[4]; +}; + +struct crypto_rfc4543_instance_ctx { + struct crypto_aead_spawn aead; +}; + +struct crypto_rfc4543_req_ctx { + struct aead_request subreq; +}; + +struct crypto_rng { + struct crypto_tfm base; +}; + +struct crypto_scomp { + struct crypto_tfm base; +}; + +struct crypto_shash { + unsigned int descsize; + struct crypto_tfm base; +}; + +struct crypto_shash_spawn { + struct crypto_spawn base; +}; + +struct crypto_sig { + struct crypto_tfm base; +}; + +struct crypto_sig_spawn { + struct crypto_spawn base; +}; + +struct crypto_skcipher { + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_skcipher_spawn { + struct crypto_spawn base; +}; + +struct crypto_sync_skcipher { + struct crypto_skcipher base; +}; + +struct rtattr; + +struct crypto_template { + struct list_head list; + struct hlist_head instances; + struct module *module; + int (*create)(struct crypto_template *, struct rtattr **); + char name[128]; +}; + +struct crypto_test_param { + char driver[128]; + char alg[128]; + u32 type; +}; + +struct crypto_type { + unsigned int (*ctxsize)(struct crypto_alg *, u32, u32); + unsigned int (*extsize)(struct crypto_alg *); + int (*init_tfm)(struct crypto_tfm *); + void (*show)(struct seq_file *, struct crypto_alg *); + int (*report)(struct sk_buff *, struct crypto_alg *); + void (*free)(struct crypto_instance *); + unsigned int type; + unsigned int maskclear; + unsigned int maskset; + unsigned int tfmsize; +}; + +struct rtattr { + short unsigned int rta_len; + short unsigned int rta_type; +}; + +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 crystal_cove_config { + long unsigned int irq_flags; + struct mfd_cell *cell_dev; + int n_cell_devs; + const struct regmap_config *regmap_config; + const struct regmap_irq_chip *irq_chip; +}; + +struct crystalcove_gpio { + struct mutex buslock; + struct gpio_chip chip; + struct regmap *regmap; + int update; + int intcnt_value; + bool set_irq_mask; +}; + +struct crystalcove_pwm { + struct regmap *regmap; +}; + +struct cs_dbs_tuners { + unsigned int down_threshold; + unsigned int freq_step; +}; + +struct dbs_data; + +struct policy_dbs_info { + struct cpufreq_policy *policy; + struct mutex update_mutex; + u64 last_sample_time; + s64 sample_delay_ns; + atomic_t work_count; + struct irq_work irq_work; + struct work_struct work; + struct dbs_data *dbs_data; + struct list_head list; + unsigned int rate_mult; + unsigned int idle_periods; + bool is_shared; + bool work_in_progress; +}; + +struct cs_policy_dbs_info { + struct policy_dbs_info policy_dbs; + unsigned int down_skip; + unsigned int requested_freq; +}; + +struct csi2_resources_walk_data { + acpi_handle handle; + struct list_head connections; +}; + +struct mem_ctl_info; + +struct rank_info; + +struct csrow_info { + struct device dev; + long unsigned int first_page; + long unsigned int last_page; + long unsigned int page_mask; + int csrow_idx; + u32 ue_count; + u32 ce_count; + struct mem_ctl_info *mci; + u32 nr_channels; + struct rank_info **channels; +}; + +struct css_set { + struct cgroup_subsys_state *subsys[15]; + 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[15]; + 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 css_set__safe_rcu { + struct cgroup *dfl_cgrp; +}; + +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 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 cstate { + byte_t cs_this; + bool initialized; + struct cstate *next; + struct iphdr cs_ip; + struct tcphdr cs_tcp; + unsigned char cs_ipopt[64]; + unsigned char cs_tcpopt[64]; + int cs_hsize; +}; + +struct cstate___2 { + int state; + uint32_t rep0; + uint32_t rep1; + uint32_t rep2; + uint32_t rep3; +}; + +struct cstate_entry { + struct { + unsigned int eax; + unsigned int ecx; + } states[8]; +}; + +struct csum_pseudo_header { + __be64 data_seq; + __be32 subflow_seq; + __be16 data_len; + __sum16 csum; +}; + +struct csum_state { + __wsum csum; + size_t off; +}; + +struct ct_data_s { + union { + ush freq; + ush code; + } fc; + union { + ush dad; + ush len; + } dl; +}; + +typedef struct ct_data_s ct_data; + +struct ctl_table_root; + +struct ctl_table_set; + +struct ctl_dir; + +struct ctl_node; + +struct ctl_table_header { + union { + struct { + const struct ctl_table *ctl_table; + int ctl_table_size; + int used; + int count; + int nreg; + }; + struct callback_head rcu; + }; + struct completion *unregistering; + const 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; + enum { + SYSCTL_TABLE_TYPE_DEFAULT = 0, + SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY = 1, + } type; +}; + +struct ctl_dir { + struct ctl_table_header header; + struct rb_root root; +}; + +struct edac_device_ctl_info; + +struct ctl_info_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_device_ctl_info *, char *); + ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); +}; + +struct ctl_node { + struct rb_node node; + struct ctl_table_header *header; +}; + +typedef int proc_handler(const 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; + proc_handler *proc_handler; + struct ctl_table_poll *poll; + void *extra1; + void *extra2; +}; + +struct ctl_table_poll { + atomic_t event; + wait_queue_head_t wait; +}; + +struct ctl_table_set { + int (*is_seen)(struct ctl_table_set *); + struct ctl_dir dir; +}; + +struct ctl_table_root { + struct ctl_table_set default_set; + struct ctl_table_set * (*lookup)(struct ctl_table_root *); + void (*set_ownership)(struct ctl_table_header *, kuid_t *, kgid_t *); + int (*permissions)(struct ctl_table_header *, const struct ctl_table *); +}; + +struct netlink_policy_dump_state; + +struct genl_family; + +struct genl_op_iter; + +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 ctrl_pos { + long unsigned int refaulted; + long unsigned int total; + int gain; +}; + +struct ctx_rq_wait { + struct completion comp; + atomic_t count; +}; + +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 cvt_timing { + u8 code[3]; +}; + +struct cxl_event_record_hdr { + u8 length; + u8 flags[3]; + __le16 handle; + __le16 related_handle; + __le64 timestamp; + u8 maint_op_class; + u8 maint_op_sub_class; + u8 reserved[14]; +}; + +struct cxl_event_generic { + struct cxl_event_record_hdr hdr; + u8 data[80]; +}; + +struct cxl_event_media_hdr { + struct cxl_event_record_hdr hdr; + __le64 phys_addr; + u8 descriptor; + u8 type; + u8 transaction_type; + u8 validity_flags[2]; + u8 channel; + u8 rank; +} __attribute__((packed)); + +struct cxl_event_gen_media { + struct cxl_event_media_hdr media_hdr; + u8 device[3]; + u8 component_id[16]; + u8 cme_threshold_ev_flags; + u8 cme_count[3]; + u8 sub_type; + u8 reserved[41]; +}; + +struct cxl_event_dram { + struct cxl_event_media_hdr media_hdr; + u8 nibble_mask[3]; + u8 bank_group; + u8 bank; + u8 row[3]; + u8 column[2]; + u8 correction_mask[32]; + u8 component_id[16]; + u8 sub_channel; + u8 cme_threshold_ev_flags; + u8 cvme_count[3]; + u8 sub_type; + u8 reserved; +}; + +struct cxl_get_health_info { + u8 health_status; + u8 media_status; + u8 add_status; + u8 life_used; + u8 device_temp[2]; + u8 dirty_shutdown_cnt[4]; + u8 cor_vol_err_cnt[4]; + u8 cor_per_err_cnt[4]; +}; + +struct cxl_event_mem_module { + struct cxl_event_record_hdr hdr; + u8 event_type; + struct cxl_get_health_info info; + u8 validity_flags[2]; + u8 component_id[16]; + u8 event_sub_type; + u8 reserved[42]; +}; + +union cxl_event { + struct cxl_event_generic generic; + struct cxl_event_gen_media gen_media; + struct cxl_event_dram dram; + struct cxl_event_mem_module mem_module; + struct cxl_event_media_hdr media_hdr; +}; + +struct cxl_cper_event_rec { + struct { + u32 length; + u64 validation_bits; + struct cper_cxl_event_devid device_id; + struct cper_cxl_event_sn dev_serial_num; + } __attribute__((packed)) hdr; + union cxl_event event; +}; + +struct cxl_cper_work_data { + enum cxl_event_type event_type; + struct cxl_cper_event_rec rec; +} __attribute__((packed)); + +struct cxl_mbox_cmd_rc { + int err; + const char *desc; +}; + +struct cxl_ras_capability_regs { + u32 uncor_status; + u32 uncor_mask; + u32 uncor_severity; + u32 cor_status; + u32 cor_mask; + u32 cap_control; + u32 header_log[16]; +}; + +struct cyc2ns_data { + u32 cyc2ns_mul; + u32 cyc2ns_shift; + u64 cyc2ns_offset; +}; + +struct cyc2ns { + struct cyc2ns_data data[2]; + seqcount_latch_t seq; +}; + +struct cyclecounter { + u64 (*read)(const struct cyclecounter *); + u64 mask; + u32 mult; + u32 shift; +}; + +struct d0_features { + __be16 code; + u8 r_version; + u8 length; + u8 features[0]; +}; + +struct d0_geometry_features { + u8 header[4]; + u8 reserved01; + u8 reserved02[7]; + __be32 logical_block_size; + __be64 alignment_granularity; + __be64 lowest_aligned_lba; +}; + +struct d0_header { + __be32 length; + __be32 revision; + __be32 reserved01; + __be32 reserved02; + u8 ignored[32]; +}; + +struct d0_locking_features { + u8 supported_features; + u8 reserved01[3]; + __be32 reserved02; + __be32 reserved03; +}; + +struct d0_opal_v100 { + __be16 baseComID; + __be16 numComIDs; +}; + +struct d0_opal_v200 { + __be16 baseComID; + __be16 numComIDs; + u8 range_crossing; + u8 num_locking_admin_auth[2]; + u8 num_locking_user_auth[2]; + u8 initialPIN; + u8 revertedPIN; + u8 reserved01; + __be32 reserved02; +}; + +struct d0_single_user_mode { + __be32 num_locking_objects; + u8 reserved01; + u8 reserved02; + __be16 reserved03; + __be32 reserved04; +}; + +struct d0_tper_features { + u8 supported_features; + u8 reserved01[3]; + __be32 reserved02; + __be32 reserved03; +}; + +struct d_partition { + __le32 p_size; + __le32 p_offset; + __le32 p_fsize; + u8 p_fstype; + u8 p_frag; + __le16 p_cpg; +}; + +struct d_partition___2 { + __le32 p_res; + u8 p_fstype; + u8 p_res2[3]; + __le32 p_offset; + __le32 p_size; +}; + +struct da903x_chip_ops; + +struct da903x_chip { + struct i2c_client *client; + struct device *dev; + const struct da903x_chip_ops *ops; + int type; + uint32_t events_mask; + struct mutex lock; + struct work_struct irq_work; + struct blocking_notifier_head notifier_list; +}; + +struct da903x_chip_ops { + int (*init_chip)(struct da903x_chip *); + int (*unmask_events)(struct da903x_chip *, unsigned int); + int (*mask_events)(struct da903x_chip *, unsigned int); + int (*read_events)(struct da903x_chip *, unsigned int *); + int (*read_status)(struct da903x_chip *, unsigned int *); +}; + +struct da903x_subdev_info; + +struct da903x_platform_data { + int num_subdevs; + struct da903x_subdev_info *subdevs; +}; + +struct da903x_subdev_info { + int id; + const char *name; + void *platform_data; +}; + +struct da9052 { + struct device *dev; + struct regmap *regmap; + struct mutex auxadc_lock; + struct completion done; + int irq_base; + struct regmap_irq_chip_data *irq_data; + u8 chip_id; + int chip_irq; + int fault_log; + int (*fix_io)(struct da9052 *, unsigned char); +}; + +struct led_platform_data; + +struct da9052_pdata { + struct led_platform_data *pled; + int (*init)(struct da9052 *); + int irq_base; + int gpio_base; + int use_for_apm; + struct regulator_init_data *regulators[14]; +}; + +struct da9055 { + struct regmap *regmap; + struct regmap_irq_chip_data *irq_data; + struct device *dev; + struct i2c_client *i2c_client; + int irq_base; + int chip_irq; +}; + +struct da9055_pdata { + int (*init)(struct da9055 *); + int irq_base; + int gpio_base; + struct regulator_init_data *regulators[8]; + bool reset_enable; + enum gpio_select *reg_ren; + enum gpio_select *reg_rsel; +}; + +struct da9063 { + struct device *dev; + enum da9063_type type; + unsigned char variant_code; + unsigned int flags; + bool use_sw_pm; + struct regmap *regmap; + int chip_irq; + unsigned int irq_base; + struct regmap_irq_chip_data *regmap_irq; +}; + +struct da_monitor { + bool monitoring; + unsigned int curr_state; +}; + +struct data_chunk { + size_t size; + size_t icg; + size_t dst_icg; + size_t src_icg; +}; + +struct data_dirent { + uint32_t virtual_address; + uint32_t size; +}; + +struct data_directory { + struct data_dirent exports; + struct data_dirent imports; + struct data_dirent resources; + struct data_dirent exceptions; + struct data_dirent certs; + struct data_dirent base_relocations; + struct data_dirent debug; + struct data_dirent arch; + struct data_dirent global_ptr; + struct data_dirent tls; + struct data_dirent load_config; + struct data_dirent bound_imports; + struct data_dirent import_addrs; + struct data_dirent delay_imports; + struct data_dirent clr_runtime_hdr; + struct data_dirent reserved; +}; + +struct dax_operations; + +struct dax_holder_operations; + +struct dax_device { + struct inode inode; + struct cdev cdev; + void *private; + long unsigned int flags; + const struct dax_operations *ops; + void *holder_data; + const struct dax_holder_operations *holder_ops; +}; + +struct dev_dax; + +struct dax_device_driver { + struct device_driver drv; + struct list_head ids; + enum dax_driver_type type; + int (*probe)(struct dev_dax *); + void (*remove)(struct dev_dax *); +}; + +struct dax_holder_operations { + int (*notify_failure)(struct dax_device *, u64, u64, int); +}; + +struct dax_id { + struct list_head list; + char dev_name[30]; +}; + +struct dax_mapping { + struct device dev; + int range_id; + int id; +}; + +struct dax_operations { + long int (*direct_access)(struct dax_device *, long unsigned int, long int, enum dax_access_mode, void **, pfn_t *); + int (*zero_page_range)(struct dax_device *, long unsigned int, size_t); + size_t (*recovery_write)(struct dax_device *, long unsigned int, void *, size_t, struct iov_iter *); +}; + +struct dax_region { + int id; + int target_node; + struct kref kref; + struct device *dev; + unsigned int align; + struct ida ida; + struct resource res; + struct device *seed; + struct device *youngest; +}; + +struct xhci_dbc; + +struct dbc_driver { + int (*configure)(struct xhci_dbc *); + void (*disconnect)(struct xhci_dbc *); +}; + +struct xhci_ring; + +struct dbc_ep { + struct xhci_dbc *dbc; + struct list_head list_pending; + struct xhci_ring *ring; + unsigned int direction: 1; + unsigned int halted: 1; +}; + +struct dbc_info_context { + __le64 string0; + __le64 manufacturer; + __le64 product; + __le64 serial; + __le32 length; + __le32 __reserved_0[7]; +}; + +struct tty_buffer { + union { + struct tty_buffer *next; + struct llist_node free; + }; + unsigned int used; + unsigned int size; + unsigned int commit; + unsigned int lookahead; + unsigned int read; + bool flags; + long: 0; + u8 data[0]; +}; + +struct tty_bufhead { + struct tty_buffer *head; + struct work_struct work; + struct mutex lock; + atomic_t priority; + struct tty_buffer sentinel; + struct llist_head free; + atomic_t mem_used; + int mem_limit; + struct tty_buffer *tail; +}; + +struct tty_struct; + +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; + long unsigned int flags; + long unsigned int iflags; + unsigned char console: 1; + struct mutex mutex; + struct mutex buf_mutex; + u8 *xmit_buf; + struct { + union { + struct __kfifo kfifo; + u8 *type; + const u8 *const_type; + char (*rectype)[0]; + u8 *ptr; + const u8 *ptr_const; + }; + u8 buf[0]; + } xmit_fifo; + unsigned int close_delay; + unsigned int closing_wait; + int drain_delay; + struct kref kref; + void *client_data; +}; + +struct tasklet_struct { + struct tasklet_struct *next; + long unsigned int state; + atomic_t count; + bool use_callback; + union { + void (*func)(long unsigned int); + void (*callback)(struct tasklet_struct *); + }; + long unsigned int data; +}; + +struct dbc_port { + struct tty_port port; + spinlock_t port_lock; + int minor; + struct list_head read_pool; + struct list_head read_queue; + unsigned int n_read; + struct tasklet_struct push; + struct list_head write_pool; + unsigned int tx_boundary; + bool registered; +}; + +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; +}; + +union xhci_trb; + +struct dbc_request { + void *buf; + unsigned int length; + dma_addr_t dma; + void (*complete)(struct xhci_dbc *, struct dbc_request *); + struct list_head list_pool; + int status; + unsigned int actual; + struct xhci_dbc *dbc; + struct list_head list_pending; + dma_addr_t trb_dma; + union xhci_trb *trb; + unsigned int direction: 1; +}; + +struct dbc_str_descs { + char string0[64]; + char manufacturer[64]; + char product[64]; + char serial[64]; +}; + +struct dbg_reg_def_t { + char *name; + int size; + int offset; +}; + +struct gov_attr_set { + struct kobject kobj; + struct list_head policy_list; + struct mutex update_lock; + int usage_count; +}; + +struct dbs_governor; + +struct dbs_data { + struct gov_attr_set attr_set; + struct dbs_governor *gov; + void *tuners; + unsigned int ignore_nice_load; + unsigned int sampling_rate; + unsigned int sampling_down_factor; + unsigned int up_threshold; + unsigned int io_is_busy; +}; + +struct sysfs_ops; + +struct kobj_type { + void (*release)(struct kobject *); + const struct sysfs_ops *sysfs_ops; + const struct attribute_group **default_groups; + const struct kobj_ns_type_operations * (*child_ns_type)(const struct kobject *); + const void * (*namespace)(const struct kobject *); + void (*get_ownership)(const struct kobject *, kuid_t *, kgid_t *); +}; + +struct 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); + void (*free)(struct policy_dbs_info *); + int (*init)(struct dbs_data *); + void (*exit)(struct dbs_data *); + void (*start)(struct cpufreq_policy *); +}; + +struct dcb_app { + __u8 selector; + __u8 priority; + __u16 protocol; +}; + +struct dcb_app_type { + int ifindex; + struct dcb_app app; + struct list_head list; + u8 dcbx; +}; + +struct dcb_ieee_app_dscp_map { + u8 map[64]; +}; + +struct dcb_ieee_app_prio_map { + u64 map[8]; +}; + +struct dcb_peer_app_info { + __u8 willing; + __u8 error; +}; + +struct dcb_rewr_prio_pcp_map { + u16 map[8]; +}; + +struct dcbmsg { + __u8 dcb_family; + __u8 cmd; + __u16 dcb_pad; +}; + +struct dcbnl_buffer { + __u8 prio2buffer[8]; + __u32 buffer_size[8]; + __u32 total_size; +}; + +struct ieee_ets; + +struct ieee_maxrate; + +struct ieee_qcn; + +struct ieee_qcn_stats; + +struct ieee_pfc; + +struct dcbnl_rtnl_ops { + int (*ieee_getets)(struct net_device *, struct ieee_ets *); + int (*ieee_setets)(struct net_device *, struct ieee_ets *); + int (*ieee_getmaxrate)(struct net_device *, struct ieee_maxrate *); + int (*ieee_setmaxrate)(struct net_device *, struct ieee_maxrate *); + int (*ieee_getqcn)(struct net_device *, struct ieee_qcn *); + int (*ieee_setqcn)(struct net_device *, struct ieee_qcn *); + int (*ieee_getqcnstats)(struct net_device *, struct ieee_qcn_stats *); + int (*ieee_getpfc)(struct net_device *, struct ieee_pfc *); + int (*ieee_setpfc)(struct net_device *, struct ieee_pfc *); + int (*ieee_getapp)(struct net_device *, struct dcb_app *); + int (*ieee_setapp)(struct net_device *, struct dcb_app *); + int (*ieee_delapp)(struct net_device *, struct dcb_app *); + int (*ieee_peer_getets)(struct net_device *, struct ieee_ets *); + int (*ieee_peer_getpfc)(struct net_device *, struct ieee_pfc *); + u8 (*getstate)(struct net_device *); + u8 (*setstate)(struct net_device *, u8); + void (*getpermhwaddr)(struct net_device *, u8 *); + void (*setpgtccfgtx)(struct net_device *, int, u8, u8, u8, u8); + void (*setpgbwgcfgtx)(struct net_device *, int, u8); + void (*setpgtccfgrx)(struct net_device *, int, u8, u8, u8, u8); + void (*setpgbwgcfgrx)(struct net_device *, int, u8); + void (*getpgtccfgtx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *); + void (*getpgbwgcfgtx)(struct net_device *, int, u8 *); + void (*getpgtccfgrx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *); + void (*getpgbwgcfgrx)(struct net_device *, int, u8 *); + void (*setpfccfg)(struct net_device *, int, u8); + void (*getpfccfg)(struct net_device *, int, u8 *); + u8 (*setall)(struct net_device *); + u8 (*getcap)(struct net_device *, int, u8 *); + int (*getnumtcs)(struct net_device *, int, u8 *); + int (*setnumtcs)(struct net_device *, int, u8); + u8 (*getpfcstate)(struct net_device *); + void (*setpfcstate)(struct net_device *, u8); + void (*getbcncfg)(struct net_device *, int, u32 *); + void (*setbcncfg)(struct net_device *, int, u32); + void (*getbcnrp)(struct net_device *, int, u8 *); + void (*setbcnrp)(struct net_device *, int, u8); + int (*setapp)(struct net_device *, u8, u16, u8); + int (*getapp)(struct net_device *, u8, u16); + u8 (*getfeatcfg)(struct net_device *, int, u8 *); + u8 (*setfeatcfg)(struct net_device *, int, u8); + u8 (*getdcbx)(struct net_device *); + u8 (*setdcbx)(struct net_device *, u8); + int (*peer_getappinfo)(struct net_device *, struct dcb_peer_app_info *, u16 *); + int (*peer_getapptable)(struct net_device *, struct dcb_app *); + int (*cee_peer_getpg)(struct net_device *, struct cee_pg *); + int (*cee_peer_getpfc)(struct net_device *, struct cee_pfc *); + int (*dcbnl_getbuffer)(struct net_device *, struct dcbnl_buffer *); + int (*dcbnl_setbuffer)(struct net_device *, struct dcbnl_buffer *); + int (*dcbnl_setapptrust)(struct net_device *, u8 *, int); + int (*dcbnl_getapptrust)(struct net_device *, u8 *, int *); + int (*dcbnl_setrewr)(struct net_device *, struct dcb_app *); + int (*dcbnl_delrewr)(struct net_device *, struct dcb_app *); +}; + +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 io_stats_per_prio { + uint32_t inserted; + uint32_t merged; + uint32_t dispatched; + atomic_t completed; +}; + +struct dd_per_prio { + struct list_head dispatch; + struct rb_root sort_list[2]; + struct list_head fifo_list[2]; + sector_t latest_pos[2]; + struct io_stats_per_prio stats; +}; + +struct 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 ddebug_class_param { + union { + long unsigned int *bits; + unsigned int *lvl; + }; + char flags[8]; + const struct ddebug_class_map *map; +}; + +struct ddebug_table; + +struct ddebug_iter { + struct ddebug_table *table; + int idx; +}; + +struct ddebug_query { + const char *filename; + const char *module; + const char *function; + const char *format; + const char *class_string; + unsigned int first_lineno; + unsigned int last_lineno; +}; + +struct ddebug_table { + struct list_head link; + struct list_head maps; + const char *mod_name; + unsigned int num_ddebugs; + struct _ddebug *ddebugs; +}; + +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; +}; + +struct ohci_hcd; + +struct debug_buffer { + ssize_t (*fill_func)(struct debug_buffer *); + struct ohci_hcd *ohci; + struct mutex mutex; + size_t count; + char *page; +}; + +struct usb_bus; + +struct debug_buffer___2 { + ssize_t (*fill_func)(struct debug_buffer___2 *); + struct usb_bus *bus; + struct mutex mutex; + size_t count; + char *output_buf; + size_t alloc_size; +}; + +struct debug_reply_data { + struct ethnl_reply_data base; + u32 msg_mask; +}; + +struct debugfs_blob_wrapper { + void *data; + long unsigned int size; +}; + +struct debugfs_cancellation { + struct list_head list; + void (*cancel)(struct dentry *, void *); + void *cancel_data; +}; + +struct debugfs_devm_entry { + int (*read)(struct seq_file *, void *); + struct device *dev; +}; + +struct debugfs_fs_info { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; +}; + +struct debugfs_short_fops; + +struct debugfs_fsdata { + const struct file_operations *real_fops; + const struct debugfs_short_fops *short_fops; + struct { + refcount_t active_users; + struct completion active_users_drained; + struct mutex cancellations_mtx; + struct list_head cancellations; + unsigned int methods; + }; +}; + +typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); + +struct debugfs_inode_info { + struct inode vfs_inode; + union { + const void *raw; + const struct file_operations *real_fops; + const struct debugfs_short_fops *short_fops; + debugfs_automount_t automount; + }; + const void *aux; +}; + +struct debugfs_reg32 { + char *name; + long unsigned int offset; +}; + +struct debugfs_regset32 { + const struct debugfs_reg32 *regs; + int nregs; + void *base; + struct device *dev; +}; + +struct debugfs_short_fops { + ssize_t (*read)(struct file *, char *, size_t, loff_t *); + ssize_t (*write)(struct file *, const char *, size_t, loff_t *); + loff_t (*llseek)(struct file *, loff_t, int); +}; + +struct debugfs_u32_array { + u32 *array; + u32 n_elements; +}; + +struct debuggerinfo_struct { + void *debuggerinfo; + struct task_struct *task; + int exception_state; + int ret_state; + int irq_depth; + int enter_kgdb; + bool rounding_up; +}; + +struct dec_data { + struct task_struct *thr; + struct crypto_comp *cc; + atomic_t ready; + atomic_t stop; + int ret; + wait_queue_head_t go; + wait_queue_head_t done; + size_t unc_len; + size_t cmp_len; + unsigned char unc[131072]; + unsigned char cmp[143360]; +}; + +struct decomp_stream { + void *stream; + struct list_head list; +}; + +struct deepsleep_control_data { + u8 reg_add; + u8 ds_pos_bit; +}; + +struct dma_fence; + +struct dma_fence_cb; + +typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *); + +struct dma_fence_cb { + struct list_head node; + dma_fence_func_t func; +}; + +struct default_wait_cb { + struct dma_fence_cb base; + struct task_struct *task; +}; + +struct deferred_entry { + struct list_head list; + grant_ref_t ref; + uint16_t warn_delay; + struct page *page; +}; + +struct deferred_split { + spinlock_t split_queue_lock; + struct list_head split_queue; + long unsigned int split_queue_len; +}; + +struct internal_state; + +struct z_stream_s { + const Byte *next_in; + uLong avail_in; + uLong total_in; + Byte *next_out; + uLong avail_out; + uLong total_out; + char *msg; + struct internal_state *state; + void *workspace; + int data_type; + uLong adler; + uLong reserved; +}; + +struct deflate_ctx { + struct z_stream_s comp_stream; + struct z_stream_s decomp_stream; +}; + +typedef struct z_stream_s z_stream; + +typedef z_stream *z_streamp; + +struct static_tree_desc_s; + +typedef struct static_tree_desc_s static_tree_desc; + +struct tree_desc_s { + ct_data *dyn_tree; + int max_code; + static_tree_desc *stat_desc; +}; + +struct 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 int 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 deflate_workspace { + deflate_state deflate_memory; + Byte *window_memory; + Pos *prev_memory; + Pos *head_memory; + char *overlay_memory; +}; + +typedef struct deflate_workspace deflate_workspace; + +struct delayed_call { + void (*fn)(void *); + void *arg; +}; + +struct delayed_uprobe { + struct list_head list; + struct uprobe *uprobe; + struct mm_struct *mm; +}; + +struct demotion_nodes { + nodemask_t preferred; +}; + +struct hlist_bl_node { + struct hlist_bl_node *next; + struct hlist_bl_node **pprev; +}; + +struct qstr { + union { + struct { + u32 hash; + u32 len; + }; + u64 hash_len; + }; + const unsigned char *name; +}; + +union shortname_store { + unsigned char string[40]; + long unsigned int words[5]; +}; + +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; + union shortname_store d_shortname; + const struct dentry_operations *d_op; + struct super_block *d_sb; + long unsigned int d_time; + void *d_fsdata; + struct lockref d_lockref; + union { + struct list_head d_lru; + wait_queue_head_t *d_wait; + }; + struct hlist_node d_sib; + struct hlist_head d_children; + union { + struct hlist_node d_alias; + struct hlist_bl_node d_in_lookup_hash; + struct callback_head d_rcu; + } d_u; +}; + +struct dentry__safe_trusted { + struct inode *d_inode; +}; + +struct dentry_info_args { + int parent_ino; + int dname_len; + int ino; + int inode_len; + char *dname; +}; + +struct dentry_operations { + int (*d_revalidate)(struct inode *, const struct qstr *, 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 *, enum d_real_type); + bool (*d_unalias_trylock)(const struct dentry *); + void (*d_unalias_unlock)(const struct dentry *); + long: 64; +}; + +struct dentry_stat_t { + long int nr_dentry; + long int nr_unused; + long int age_limit; + long int want_pages; + long int nr_negative; + long int dummy; +}; + +struct desc_ptr { + short unsigned int size; + long unsigned int address; +} __attribute__((packed)); + +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 slab; + +struct detached_freelist { + struct slab *slab; + void *tail; + void *freelist; + int cnt; + struct kmem_cache *s; +}; + +struct detailed_data_monitor_range { + u8 min_vfreq; + u8 max_vfreq; + u8 min_hfreq_khz; + u8 max_hfreq_khz; + u8 pixel_clock_mhz; + u8 flags; + union { + struct { + u8 reserved; + u8 hfreq_start_khz; + u8 c; + __le16 m; + u8 k; + u8 j; + } __attribute__((packed)) gtf2; + struct { + u8 version; + u8 data1; + u8 data2; + u8 supported_aspects; + u8 flags; + u8 supported_scalings; + u8 preferred_refresh; + } cvt; + } formula; +}; + +struct detailed_data_string { + u8 str[13]; +}; + +struct detailed_data_wpindex { + u8 white_yx_lo; + u8 white_x_hi; + u8 white_y_hi; + u8 gamma; +}; + +struct detailed_mode_closure { + struct drm_connector *connector; + const struct drm_edid *drm_edid; + bool preferred; + int modes; +}; + +struct std_timing { + u8 hsize; + u8 vfreq_aspect; +}; + +struct detailed_non_pixel { + u8 pad1; + u8 type; + u8 pad2; + union { + struct detailed_data_string str; + struct detailed_data_monitor_range range; + struct detailed_data_wpindex color; + struct std_timing timings[6]; + struct cvt_timing cvt[4]; + } data; +}; + +struct 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_timing { + __le16 pixel_clock; + union { + struct detailed_pixel_timing pixel_data; + struct detailed_non_pixel other_data; + } data; +}; + +struct detected_devices_node { + struct list_head list; + dev_t dev; +}; + +struct dev_cgroup { + struct cgroup_subsys_state css; + struct list_head exceptions; + enum devcg_behavior behavior; +}; + +struct dev_pagemap; + +struct dev_dax_range; + +struct dev_dax { + struct dax_region *region; + struct dax_device *dax_dev; + unsigned int align; + int target_node; + bool dyn_id; + int id; + struct ida ida; + struct device dev; + struct dev_pagemap *pgmap; + bool memmap_on_memory; + int nr_range; + struct dev_dax_range *ranges; +}; + +struct dev_dax_data { + struct dax_region *dax_region; + struct dev_pagemap *pgmap; + resource_size_t size; + int id; + bool memmap_on_memory; +}; + +struct dev_dax_range { + long unsigned int pgoff; + struct range range; + struct dax_mapping *mapping; +}; + +struct dev_exception_item { + u32 major; + u32 minor; + short int type; + short int access; + struct list_head list; + struct callback_head rcu; +}; + +struct dev_ext_attribute { + struct device_attribute attr; + void *var; +}; + +struct efi_generic_dev_path { + u8 type; + u8 sub_type; + u16 length; +}; + +struct efi_acpi_dev_path { + struct efi_generic_dev_path header; + u32 hid; + u32 uid; +}; + +struct efi_pci_dev_path { + struct efi_generic_dev_path header; + u8 fn; + u8 dev; +}; + +struct efi_vendor_dev_path { + struct efi_generic_dev_path header; + efi_guid_t vendorguid; + u8 vendordata[0]; +}; + +struct efi_rel_offset_dev_path { + struct efi_generic_dev_path header; + u32 reserved; + u64 starting_offset; + u64 ending_offset; +}; + +struct efi_dev_path { + union { + struct efi_generic_dev_path header; + struct efi_acpi_dev_path acpi; + struct efi_pci_dev_path pci; + struct efi_vendor_dev_path vendor; + struct efi_rel_offset_dev_path rel_offset; + }; +}; + +struct dev_header { + u32 len; + u32 prop_count; + struct efi_dev_path path[0]; +}; + +struct dev_ifalias { + struct callback_head rcuhead; + char ifalias[0]; +}; + +struct iommu_fault_param; + +struct iommu_fwspec; + +struct dev_iommu { + struct mutex lock; + struct iommu_fault_param *fault_param; + struct iommu_fwspec *fwspec; + struct iommu_device *iommu_dev; + void *priv; + u32 max_pasids; + u32 attach_deferred: 1; + u32 pci_32bit_workaround: 1; + u32 require_direct: 1; + u32 shadow_on_flush: 1; +}; + +struct dev_kfree_skb_cb { + enum skb_drop_reason reason; +}; + +struct vmem_altmap { + long unsigned int base_pfn; + const long unsigned int end_pfn; + const long unsigned int reserve; + long unsigned int free; + long unsigned int align; + long unsigned int alloc; + bool inaccessible; +}; + +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; + long unsigned int vmemmap_shift; + const struct dev_pagemap_ops *ops; + void *owner; + int nr_range; + union { + struct range range; + struct { + struct {} __empty_ranges; + struct range ranges[0]; + }; + }; +}; + +struct vm_fault; + +struct dev_pagemap_ops { + void (*page_free)(struct page *); + vm_fault_t (*migrate_to_ram)(struct vm_fault *); + int (*memory_failure)(struct dev_pagemap *, long unsigned int, long unsigned int, int); +}; + +struct dev_pasid_info { + struct list_head link_domain; + struct device *dev; + ioasid_t pasid; +}; + +struct pinctrl; + +struct pinctrl_state; + +struct dev_pin_info { + struct pinctrl *p; + struct pinctrl_state *default_state; + struct pinctrl_state *init_state; + struct pinctrl_state *sleep_state; + struct pinctrl_state *idle_state; +}; + +struct 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 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 *); + int (*set_performance_state)(struct device *, unsigned int); +}; + +struct dev_pm_domain_attach_data { + const char * const *pd_names; + const u32 num_pd_names; + const u32 pd_flags; +}; + +struct device_link; + +struct dev_pm_domain_list { + struct device **pd_devs; + struct device_link **pd_links; + u32 *opp_tokens; + u32 num_pds; +}; + +struct dev_pm_opp_supply; + +struct dev_pm_opp_icc_bw; + +struct opp_table; + +struct dev_pm_opp { + struct list_head node; + struct kref kref; + bool available; + bool dynamic; + bool turbo; + bool suspend; + bool removed; + long unsigned int *rates; + unsigned int level; + struct dev_pm_opp_supply *supplies; + struct dev_pm_opp_icc_bw *bandwidth; + long unsigned int clock_latency_ns; + struct dev_pm_opp **required_opps; + struct opp_table *opp_table; + struct device_node *np; + struct dentry *dentry; + const char *of_name; +}; + +typedef int (*config_clks_t)(struct device *, struct opp_table *, struct dev_pm_opp *, void *, bool); + +typedef int (*config_regulators_t)(struct device *, struct dev_pm_opp *, struct dev_pm_opp *, struct regulator **, unsigned int); + +struct dev_pm_opp_config { + const char * const *clk_names; + config_clks_t config_clks; + const char *prop_name; + config_regulators_t config_regulators; + const unsigned int *supported_hw; + unsigned int supported_hw_count; + const char * const *regulator_names; + struct device *required_dev; + unsigned int required_dev_index; +}; + +struct dev_pm_opp_data { + bool turbo; + unsigned int level; + long unsigned int freq; + long unsigned int u_volt; +}; + +struct dev_pm_opp_icc_bw { + u32 avg; + u32 peak; +}; + +struct dev_pm_opp_supply { + long unsigned int u_volt; + long unsigned int u_volt_min; + long unsigned int u_volt_max; + long unsigned int u_amp; + long unsigned int u_watt; +}; + +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; +}; + +struct dev_pm_qos_request { + enum dev_pm_qos_req_type type; + union { + struct plist_node pnode; + struct pm_qos_flags_request flr; + struct freq_qos_request freq; + } data; + struct device *dev; +}; + +struct dev_power_governor { + bool (*power_down_ok)(struct dev_pm_domain *); + bool (*suspend_ok)(struct device *); +}; + +struct dev_printk_info { + char subsystem[16]; + char device[48]; +}; + +struct dev_table_entry { + union { + u64 data[4]; + u128 data128[2]; + }; +}; + +struct devcd_entry { + struct device devcd_dev; + void *data; + size_t datalen; + struct mutex mutex; + bool delete_work; + struct module *owner; + ssize_t (*read)(char *, loff_t, size_t, void *, size_t); + void (*free)(void *); + struct delayed_work del_wk; + struct device *failing_dev; +}; + +struct devfreq_dev_status { + long unsigned int total_time; + long unsigned int busy_time; + long unsigned int current_frequency; + void *private_data; +}; + +struct devfreq_stats { + unsigned int total_trans; + unsigned int *trans_table; + u64 *time_in_state; + u64 last_update; +}; + +struct devfreq_dev_profile; + +struct devfreq_governor; + +struct devfreq { + struct list_head node; + struct mutex lock; + struct device dev; + struct devfreq_dev_profile *profile; + const struct devfreq_governor *governor; + struct opp_table *opp_table; + struct notifier_block nb; + struct delayed_work work; + long unsigned int *freq_table; + unsigned int max_state; + long unsigned int previous_freq; + struct devfreq_dev_status last_status; + void *data; + void *governor_data; + struct dev_pm_qos_request user_min_freq_req; + struct dev_pm_qos_request user_max_freq_req; + long unsigned int scaling_min_freq; + long unsigned int scaling_max_freq; + bool stop_polling; + long unsigned int suspend_freq; + long unsigned int resume_freq; + atomic_t suspend_count; + struct devfreq_stats stats; + struct srcu_notifier_head transition_notifier_list; + struct thermal_cooling_device *cdev; + struct notifier_block nb_min; + struct notifier_block nb_max; +}; + +struct thermal_cooling_device_ops { + int (*get_max_state)(struct thermal_cooling_device *, long unsigned int *); + int (*get_cur_state)(struct thermal_cooling_device *, long unsigned int *); + int (*set_cur_state)(struct thermal_cooling_device *, long unsigned int); + int (*get_requested_power)(struct thermal_cooling_device *, u32 *); + int (*state2power)(struct thermal_cooling_device *, long unsigned int, u32 *); + int (*power2state)(struct thermal_cooling_device *, u32, long unsigned int *); +}; + +struct devfreq_cooling_power; + +struct devfreq_cooling_device { + struct thermal_cooling_device *cdev; + struct thermal_cooling_device_ops cooling_ops; + struct devfreq *devfreq; + long unsigned int cooling_state; + u32 *freq_table; + size_t max_state; + struct devfreq_cooling_power *power_ops; + u32 res_util; + int capped_state; + struct dev_pm_qos_request req_max_freq; + struct em_perf_domain *em_pd; +}; + +struct devfreq_cooling_power { + int (*get_real_power)(struct devfreq *, u32 *, long unsigned int, long unsigned int); +}; + +struct devfreq_cpu_data { + struct list_head node; + struct device *dev; + unsigned int first_cpu; + struct opp_table *opp_table; + unsigned int cur_freq; + unsigned int min_freq; + unsigned int max_freq; +}; + +struct devfreq_dev_profile { + long unsigned int initial_freq; + unsigned int polling_ms; + enum devfreq_timer timer; + int (*target)(struct device *, long unsigned int *, u32); + int (*get_dev_status)(struct device *, struct devfreq_dev_status *); + int (*get_cur_freq)(struct device *, long unsigned int *); + void (*exit)(struct device *); + long unsigned int *freq_table; + unsigned int max_state; + bool is_cooling_device; +}; + +struct devfreq_event_data { + long unsigned int load_count; + long unsigned int total_count; +}; + +struct devfreq_event_ops; + +struct devfreq_event_desc { + const char *name; + u32 event_type; + void *driver_data; + const struct devfreq_event_ops *ops; +}; + +struct devfreq_event_dev { + struct list_head node; + struct device dev; + struct mutex lock; + u32 enable_count; + const struct devfreq_event_desc *desc; +}; + +struct devfreq_event_ops { + int (*enable)(struct devfreq_event_dev *); + int (*disable)(struct devfreq_event_dev *); + int (*reset)(struct devfreq_event_dev *); + int (*set_event)(struct devfreq_event_dev *); + int (*get_event)(struct devfreq_event_dev *, struct devfreq_event_data *); +}; + +struct devfreq_freqs { + long unsigned int old; + long unsigned int new; +}; + +struct devfreq_governor { + struct list_head node; + const char name[16]; + const u64 attrs; + const u64 flags; + int (*get_target_freq)(struct devfreq *, long unsigned int *); + int (*event_handler)(struct devfreq *, unsigned int, void *); +}; + +struct devfreq_notifier_devres { + struct devfreq *devfreq; + struct notifier_block *nb; + unsigned int list; +}; + +struct devfreq_passive_data { + struct devfreq *parent; + int (*get_target_freq)(struct devfreq *, long unsigned int *); + enum devfreq_parent_dev_type parent_type; + struct devfreq *this; + struct notifier_block nb; + struct list_head cpu_data_list; +}; + +struct devfreq_simple_ondemand_data { + unsigned int upthreshold; + unsigned int downdifferential; +}; + +struct device_attach_data { + struct device *dev; + bool check_async; + bool want_async; + bool have_async; +}; + +union device_attr_group_devres { + const struct attribute_group *group; + const struct attribute_group **groups; +}; + +struct device_dma_parameters { + unsigned int max_segment_size; + unsigned int min_align_mask; + long unsigned int segment_boundary_mask; +}; + +struct dmar_domain; + +struct pasid_table; + +struct device_domain_info { + struct list_head link; + u32 segment; + u8 bus; + u8 devfn; + u16 pfsid; + u8 pasid_supported: 3; + u8 pasid_enabled: 1; + u8 pri_supported: 1; + u8 pri_enabled: 1; + u8 ats_supported: 1; + u8 ats_enabled: 1; + u8 dtlb_extra_inval: 1; + u8 domain_attached: 1; + u8 ats_qdep; + struct device *dev; + struct intel_iommu *iommu; + struct dmar_domain *domain; + struct pasid_table *pasid_table; + struct rb_node node; +}; + +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 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; + long unsigned int _flags; + void *data; +}; + +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 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; + const struct device_driver *async_driver; + char *deferred_probe_reason; + struct device *device; + u8 dead: 1; +}; + +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 devid_map { + struct list_head list; + u8 id; + u32 devid; + bool cmd_line; +}; + +struct devinet_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table devinet_vars[33]; +}; + +struct ratelimit_state { + raw_spinlock_t lock; + int interval; + int burst; + int printed; + int missed; + unsigned int flags; + long unsigned int begin; +}; + +struct printk_buffers { + char outbuf[2048]; + char scratchbuf[1024]; +}; + +struct devkmsg_user { + atomic64_t seq; + struct ratelimit_state rs; + struct mutex lock; + struct printk_buffers pbufs; +}; + +struct devlink_dev_stats { + u32 reload_stats[6]; + u32 remote_reload_stats[6]; +}; + +struct devlink_dpipe_headers; + +struct devlink_ops; + +struct devlink_rel; + +struct devlink { + u32 index; + struct xarray ports; + struct list_head rate_list; + struct list_head sb_list; + struct list_head dpipe_table_list; + struct list_head resource_list; + struct xarray params; + struct list_head region_list; + struct list_head reporter_list; + struct devlink_dpipe_headers *dpipe_headers; + struct list_head trap_list; + struct list_head trap_group_list; + struct list_head trap_policer_list; + struct list_head linecard_list; + const struct devlink_ops *ops; + struct xarray snapshot_ids; + struct devlink_dev_stats stats; + struct device *dev; + possible_net_t _net; + struct mutex lock; + struct lock_class_key lock_key; + u8 reload_failed: 1; + refcount_t refcount; + struct rcu_work rwork; + struct devlink_rel *rel; + struct xarray nested_rels; + char priv[0]; +}; + +struct devlink_dpipe_header; + +struct devlink_dpipe_action { + enum devlink_dpipe_action_type type; + unsigned int header_index; + struct devlink_dpipe_header *header; + unsigned int field_id; +}; + +struct genl_info; + +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_field { + const char *name; + unsigned int id; + unsigned int bitwidth; + enum devlink_dpipe_field_mapping_type mapping_type; +}; + +struct devlink_dpipe_header { + const char *name; + unsigned int id; + struct devlink_dpipe_field *fields; + unsigned int fields_count; + bool global; +}; + +struct devlink_dpipe_headers { + struct devlink_dpipe_header **headers; + unsigned int headers_count; +}; + +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_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; + const struct devlink_dpipe_table_ops *table_ops; + struct callback_head rcu; +}; + +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_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_flash_component_lookup_ctx { + const char *lookup_name; + bool lookup_name_found; +}; + +struct devlink_flash_notify { + const char *status_msg; + const char *component; + long unsigned int done; + long unsigned int total; + long unsigned int timeout; +}; + +struct firmware; + +struct devlink_flash_update_params { + const struct firmware *fw; + const char *component; + u32 overwrite_mask; +}; + +struct devlink_fmsg { + struct list_head item_list; + int err; + bool putting_binary; +}; + +struct devlink_fmsg_item { + struct list_head list; + int attrtype; + u8 nla_type; + u16 len; + int value[0]; +}; + +struct devlink_health_reporter_ops; + +struct devlink_port; + +struct devlink_health_reporter { + struct list_head list; + void *priv; + const struct devlink_health_reporter_ops *ops; + struct devlink *devlink; + struct devlink_port *devlink_port; + struct devlink_fmsg *dump_fmsg; + u64 graceful_period; + bool auto_recover; + bool auto_dump; + u8 health_state; + u64 dump_ts; + u64 dump_real_ts; + u64 error_count; + u64 recovery_count; + u64 last_recovery_ts; +}; + +struct devlink_health_reporter_ops { + char *name; + int (*recover)(struct devlink_health_reporter *, void *, struct netlink_ext_ack *); + int (*dump)(struct devlink_health_reporter *, struct devlink_fmsg *, void *, struct netlink_ext_ack *); + int (*diagnose)(struct devlink_health_reporter *, struct devlink_fmsg *, struct netlink_ext_ack *); + int (*test)(struct devlink_health_reporter *, struct netlink_ext_ack *); +}; + +struct devlink_info_req { + struct sk_buff *msg; + void (*version_cb)(const char *, enum devlink_info_version_type, void *); + void *version_cb_priv; +}; + +struct devlink_linecard_ops; + +struct devlink_linecard_type; + +struct devlink_linecard { + struct list_head list; + struct devlink *devlink; + unsigned int index; + const struct devlink_linecard_ops *ops; + void *priv; + enum devlink_linecard_state state; + struct mutex state_lock; + const char *type; + struct devlink_linecard_type *types; + unsigned int types_count; + u32 rel_index; +}; + +struct 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; +}; + +struct devlink_nl_dump_state { + long unsigned int instance; + int idx; + union { + struct { + u64 start_offset; + }; + struct { + u64 dump_ts; + }; + }; +}; + +struct devlink_obj_desc; + +struct devlink_nl_sock_priv { + struct devlink_obj_desc *flt; + spinlock_t flt_lock; +}; + +struct devlink_obj_desc { + struct callback_head rcu; + const char *bus_name; + const char *dev_name; + unsigned int port_index; + bool port_index_valid; + long int data[0]; +}; + +struct devlink_sb_pool_info; + +struct devlink_trap; + +struct devlink_trap_group; + +struct devlink_trap_policer; + +struct devlink_port_new_attrs; + +struct devlink_rate; + +struct devlink_ops { + u32 supported_flash_update_params; + long unsigned int reload_actions; + long unsigned int reload_limits; + int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *); + int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *); + int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *); + int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *); + int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *); + int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *); + int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *); + int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *); + int (*sb_occ_snapshot)(struct devlink *, unsigned int); + int (*sb_occ_max_clear)(struct devlink *, unsigned int); + int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *); + int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *); + int (*eswitch_mode_get)(struct devlink *, u16 *); + int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *); + int (*eswitch_inline_mode_get)(struct devlink *, u8 *); + int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *); + int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *); + int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *); + int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *); + int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *); + int (*trap_init)(struct devlink *, const struct devlink_trap *, void *); + void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *); + int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *); + int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *); + int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *); + int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *); + int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *); + int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *); + void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *); + int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *); + int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *); + int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, struct devlink_port **); + int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_leaf_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); + int (*rate_leaf_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); + int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_node_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); + int (*rate_node_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); + int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *); + int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *); + int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *); + int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *); + bool (*selftest_check)(struct devlink *, unsigned int, struct netlink_ext_ack *); + enum devlink_selftest_status (*selftest_run)(struct devlink *, unsigned int, struct netlink_ext_ack *); +}; + +struct devlink_param_gset_ctx; + +union devlink_param_value; + +struct devlink_param { + u32 id; + const char *name; + bool generic; + enum devlink_param_type type; + long unsigned int supported_cmodes; + int (*get)(struct devlink *, u32, struct devlink_param_gset_ctx *); + int (*set)(struct devlink *, u32, struct devlink_param_gset_ctx *, struct netlink_ext_ack *); + 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; +}; + +struct devlink_param_gset_ctx { + union devlink_param_value val; + enum devlink_param_cmode cmode; +}; + +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 netdev_phys_item_id { + unsigned char id[32]; + unsigned char id_len; +}; + +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_port_ops; + +struct ib_device; + +struct devlink_port { + struct list_head list; + struct list_head region_list; + struct devlink *devlink; + const struct devlink_port_ops *ops; + unsigned int index; + spinlock_t type_lock; + enum devlink_port_type type; + enum devlink_port_type desired_type; + union { + struct { + struct net_device *netdev; + int ifindex; + char ifname[16]; + } type_eth; + struct { + struct ib_device *ibdev; + } type_ib; + }; + struct devlink_port_attrs attrs; + u8 attrs_set: 1; + u8 switch_port: 1; + u8 registered: 1; + u8 initialized: 1; + struct delayed_work type_warn_dw; + struct list_head reporter_list; + struct devlink_rate *devlink_rate; + struct devlink_linecard *linecard; + u32 rel_index; +}; + +struct 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 devlink_port_ops { + int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); + int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_type_set)(struct devlink_port *, enum devlink_port_type); + int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); + int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); + int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_max_io_eqs_get)(struct devlink_port *, u32 *, struct netlink_ext_ack *); + int (*port_fn_max_io_eqs_set)(struct devlink_port *, u32, struct netlink_ext_ack *); +}; + +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_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 devlink_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_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; +}; + +typedef void devlink_rel_notify_cb_t(struct devlink *, u32); + +typedef void devlink_rel_cleanup_cb_t(struct devlink *, u32, u32); + +struct devlink_rel { + u32 index; + refcount_t refcount; + u32 devlink_index; + struct { + u32 devlink_index; + u32 obj_index; + devlink_rel_notify_cb_t *notify_cb; + devlink_rel_cleanup_cb_t *cleanup_cb; + struct delayed_work notify_work; + } nested_in; +}; + +struct devlink_reload_combination { + enum devlink_reload_action action; + enum devlink_reload_limit limit; +}; + +struct devlink_resource_size_params { + u64 size_min; + u64 size_max; + u64 size_granularity; + enum devlink_resource_unit unit; +}; + +typedef u64 devlink_resource_occ_get_t(void *); + +struct 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_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_sb_pool_info { + enum devlink_sb_pool_type pool_type; + u32 size; + enum devlink_sb_threshold_type threshold_type; + u32 cell_size; +}; + +struct devlink_snapshot { + struct list_head list; + struct devlink_region *region; + u8 *data; + u32 id; +}; + +struct devlink_stats { + u64_stats_t rx_bytes; + u64_stats_t rx_packets; + struct u64_stats_sync syncp; +}; + +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_item; + +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 *stats; +}; + +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 *stats; + void *priv; +}; + +struct flow_action_cookie; + +struct devlink_trap_metadata { + const char *trap_name; + const char *trap_group_name; + struct net_device *input_dev; + netdevice_tracker dev_tracker; + const struct flow_action_cookie *fa_cookie; + enum devlink_trap_type trap_type; +}; + +struct 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_trap_policer_item { + const struct devlink_trap_policer *policer; + u64 rate; + u64 burst; + struct list_head list; +}; + +struct devm_clk_state { + struct clk *clk; + void (*exit)(struct clk *); +}; + +typedef void (*dr_release_t)(struct device *, void *); + +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 dh { + const void *key; + const void *p; + const void *g; + unsigned int key_size; + unsigned int p_size; + unsigned int g_size; +}; + +struct gcry_mpi; + +typedef struct gcry_mpi *MPI; + +struct dh_ctx { + MPI p; + MPI g; + MPI xa; +}; + +struct dh_safe_prime { + unsigned int max_strength; + unsigned int p_size; + const char *p; +}; + +struct dh_safe_prime_instance_ctx { + struct crypto_kpp_spawn dh_spawn; + const struct dh_safe_prime *safe_prime; +}; + +struct dh_safe_prime_tfm_ctx { + struct crypto_kpp *dh_tfm; +}; + +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 die_args { + struct pt_regs *regs; + const char *str; + long int err; + int trapnr; + int signr; +}; + +struct digest_info { + const char *alg; + const u8 *digest; + size_t digest_len; +}; + +struct dim_stats { + int ppms; + int bpms; + int epms; + int cpms; + int cpe_ratio; +}; + +struct dim_sample { + ktime_t time; + u32 pkt_ctr; + u32 byte_ctr; + u16 event_ctr; + u32 comp_ctr; +}; + +struct dim { + u8 state; + struct dim_stats prev_stats; + struct dim_sample start_sample; + struct dim_sample measuring_sample; + struct work_struct work; + void *priv; + u8 profile_ix; + u8 mode; + u8 tune_state; + u8 steps_right; + u8 steps_left; + u8 tired; +}; + +struct dim_cq_moder { + u16 usec; + u16 pkts; + u16 comps; + u8 cq_period_mode; + struct callback_head rcu; +}; + +struct dim_irq_moder { + u8 profile_flags; + u8 coal_flags; + u8 dim_rx_mode; + u8 dim_tx_mode; + struct dim_cq_moder *rx_profile; + struct dim_cq_moder *tx_profile; + void (*rx_dim_work)(struct work_struct *); + void (*tx_dim_work)(struct work_struct *); +}; + +struct dimm_info { + struct device dev; + char label[32]; + unsigned int location[3]; + struct mem_ctl_info *mci; + unsigned int idx; + u32 grain; + enum dev_type dtype; + enum mem_type mtype; + enum edac_type edac_mode; + u32 nr_pages; + unsigned int csrow; + unsigned int cschannel; + u16 smbios_handle; + u32 ce_count; + u32 ue_count; +}; + +typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); + +struct dio { + int flags; + blk_opf_t opf; + struct gendisk *bio_disk; + struct inode *inode; + loff_t i_size; + dio_iodone_t *end_io; + bool is_pinned; + void *private; + spinlock_t bio_lock; + int page_errors; + int is_async; + bool defer_completion; + bool should_dirty; + int io_error; + long unsigned int 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; +}; + +typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); + +struct dio_submit { + struct bio *bio; + unsigned int blkbits; + unsigned int blkfactor; + unsigned int start_zero_done; + int pages_in_io; + sector_t block_in_file; + unsigned int blocks_available; + int reap_counter; + sector_t final_block_in_request; + int boundary; + get_block_t *get_block; + loff_t logical_offset_in_bio; + sector_t final_block_in_bio; + sector_t next_block_for_io; + struct page *cur_page; + unsigned int cur_page_offset; + unsigned int cur_page_len; + sector_t cur_page_block; + loff_t cur_page_fs_offset; + struct iov_iter *iter; + unsigned int head; + unsigned int tail; + size_t from; + size_t to; +}; + +struct dir_entry { + struct list_head list; + time64_t mtime; + char name[0]; +}; + +struct fname; + +struct dir_private_info { + struct rb_root root; + struct rb_node *curr_node; + struct fname *extra_fname; + loff_t last_pos; + __u32 curr_hash; + __u32 curr_minor_hash; + __u32 next_hash; + u64 cookie; + bool initialized; +}; + +struct wb_domain; + +struct dirty_throttle_control { + struct wb_domain *dom; + struct dirty_throttle_control *gdtc; + struct bdi_writeback *wb; + struct fprop_local_percpu *wb_completions; + long unsigned int avail; + long unsigned int dirty; + long unsigned int thresh; + long unsigned int bg_thresh; + long unsigned int limit; + long unsigned int wb_dirty; + long unsigned int wb_thresh; + long unsigned int wb_bg_thresh; + long unsigned int pos_ratio; + bool freerun; + bool dirty_exceeded; +}; + +struct disk_comp_opts { + __le32 dictionary_size; + __le32 flags; +}; + +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 int poll_msecs; + struct delayed_work dwork; +}; + +struct disk_report_zones_cb_args { + struct gendisk *disk; + report_zones_cb user_cb; + void *user_data; +}; + +struct disk_stats { + u64 nsecs[4]; + long unsigned int sectors[4]; + long unsigned int ios[4]; + long unsigned int merges[4]; + long unsigned int io_ticks; + local_t in_flight[2]; +}; + +struct disklabel { + __le32 d_magic; + __le16 d_type; + __le16 d_subtype; + u8 d_typename[16]; + u8 d_packname[16]; + __le32 d_secsize; + __le32 d_nsectors; + __le32 d_ntracks; + __le32 d_ncylinders; + __le32 d_secpercyl; + __le32 d_secprtunit; + __le16 d_sparespertrack; + __le16 d_sparespercyl; + __le32 d_acylinders; + __le16 d_rpm; + __le16 d_interleave; + __le16 d_trackskew; + __le16 d_cylskew; + __le32 d_headswitch; + __le32 d_trkseek; + __le32 d_flags; + __le32 d_drivedata[5]; + __le32 d_spare[5]; + __le32 d_magic2; + __le16 d_checksum; + __le16 d_npartitions; + __le32 d_bbsize; + __le32 d_sbsize; + struct d_partition d_partitions[18]; +}; + +struct disklabel___2 { + u8 d_reserved[270]; + struct d_partition___2 d_partitions[2]; + u8 d_blank[208]; + __le16 d_magic; +} __attribute__((packed)); + +struct dispatch_rq_data { + struct blk_mq_hw_ctx *hctx; + struct request *rq; +}; + +struct timing_entry { + u32 min; + u32 typ; + u32 max; +}; + +struct display_timing { + struct timing_entry pixelclock; + struct timing_entry hactive; + struct timing_entry hfront_porch; + struct timing_entry hback_porch; + struct timing_entry hsync_len; + struct timing_entry vactive; + struct timing_entry vfront_porch; + struct timing_entry vback_porch; + struct timing_entry vsync_len; + enum display_flags flags; +}; + +struct display_timings { + unsigned int num_timings; + unsigned int native_mode; + struct display_timing **timings; +}; + +struct displayid_block { + u8 tag; + u8 rev; + u8 num_bytes; +}; + +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_header { + u8 rev; + u8 bytes; + u8 prod_id; + u8 ext_count; +}; + +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_vesa_vendor_specific_block { + struct displayid_block base; + u8 oui[3]; + u8 data_structure_type; + u8 mso; +}; + +struct volumeid { + u8 vid_unused[248]; + u8 vid_mac[8]; +}; + +struct dkconfig { + u8 ios_unused0[128]; + __be32 ios_slcblk; + __be16 ios_slccnt; + u8 ios_unused1[122]; +}; + +struct dkblk0 { + struct volumeid dk_vid; + struct dkconfig dk_ios; +}; + +struct dl_bw { + raw_spinlock_t lock; + u64 bw; + u64 total_bw; +}; + +struct dl_rq { + struct rb_root_cached root; + unsigned int dl_nr_running; + struct { + u64 curr; + u64 next; + } earliest_dl; + bool overloaded; + struct rb_root_cached pushable_dl_tasks_root; + u64 running_bw; + u64 this_bw; + u64 extra_bw; + u64 max_bw; + u64 bw_ratio; +}; + +struct dm_arg { + unsigned int min; + unsigned int max; + char *error; +}; + +struct dm_arg_set { + unsigned int argc; + char **argv; +}; + +struct dm_blkdev_id { + u8 *id; + enum blk_unique_id type; +}; + +struct mapped_device; + +struct dm_crypto_profile { + struct blk_crypto_profile profile; + struct mapped_device *md; +}; + +struct dm_dev { + struct block_device *bdev; + struct file *bdev_file; + struct dax_device *dax_dev; + blk_mode_t mode; + char name[16]; +}; + +struct dm_dev_internal { + struct list_head list; + refcount_t count; + struct dm_dev *dm_dev; +}; + +struct dm_ioctl { + __u32 version[3]; + __u32 data_size; + __u32 data_start; + __u32 target_count; + __s32 open_count; + __u32 flags; + __u32 event_nr; + __u32 padding; + __u64 dev; + char name[128]; + char uuid[129]; + char data[7]; +}; + +struct dm_target_spec; + +struct dm_device { + struct dm_ioctl dmi; + struct dm_target_spec *table[256]; + char *target_args_array[256]; + struct list_head list; +}; + +struct dm_device_zone_count { + sector_t start; + sector_t len; + unsigned int total_nr_seq_zones; + unsigned int target_nr_seq_zones; +}; + +struct dm_file { + volatile unsigned int global_event_nr; +}; + +struct dm_hw_stat_delta { + long unsigned int last_rx; + long unsigned int last_drop_val; + struct callback_head rcu; +}; + +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 dm_stats_aux { + bool merged; + long long unsigned int duration_ns; +}; + +struct dm_target; + +struct dm_target_io { + short unsigned int 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 dm_io { + short unsigned int magic; + blk_short_t flags; + spinlock_t lock; + long unsigned int 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 dm_io_client { + mempool_t pool; + struct bio_set bios; +}; + +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)(long unsigned int, void *); + +struct dm_io_notify { + io_notify_fn fn; + void *context; +}; + +struct dm_io_region { + struct block_device *bdev; + sector_t sector; + sector_t count; +}; + +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 dm_kcopyd_throttle; + +struct dm_kcopyd_client { + struct page_list *pages; + unsigned int nr_reserved_pages; + unsigned int nr_free_pages; + unsigned int sub_job_size; + struct dm_io_client *io_client; + wait_queue_head_t destroyq; + mempool_t job_pool; + struct workqueue_struct *kcopyd_wq; + struct work_struct kcopyd_work; + struct dm_kcopyd_throttle *throttle; + atomic_t nr_jobs; + spinlock_t job_lock; + struct list_head callback_jobs; + struct list_head complete_jobs; + struct list_head io_jobs; + struct list_head pages_jobs; +}; + +struct dm_kcopyd_throttle { + unsigned int throttle; + unsigned int num_io_jobs; + unsigned int io_period; + unsigned int total_period; + unsigned int last_jiffies; +}; + +struct dm_kobject_holder { + struct kobject kobj; + struct completion completion; +}; + +struct dm_md_mempools { + struct bio_set bs; + struct bio_set io_bs; +}; + +struct dm_name_list { + __u64 dev; + __u32 next; + char name[0]; +}; + +struct pr_keys; + +struct pr_held_reservation; + +struct dm_pr { + u64 old_key; + u64 new_key; + u32 flags; + bool abort; + bool fail_early; + int ret; + enum pr_type type; + struct pr_keys *read_keys; + struct pr_held_reservation *rsv; +}; + +struct dm_report_zones_args { + struct dm_target *tgt; + sector_t next_sector; + void *orig_data; + report_zones_cb orig_cb; + unsigned int zone_idx; + sector_t start; +}; + +struct dm_rq_target_io; + +struct dm_rq_clone_bio_info { + struct bio *orig; + struct dm_rq_target_io *tio; + struct bio clone; +}; + +struct kthread_work; + +typedef void (*kthread_work_func_t)(struct kthread_work *); + +struct kthread_worker; + +struct kthread_work { + struct list_head node; + kthread_work_func_t func; + struct kthread_worker *worker; + int canceling; +}; + +union map_info { + void *ptr; +}; + +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; + long unsigned int duration_jiffies; + unsigned int n_sectors; + unsigned int completed; +}; + +struct dm_stat_percpu { + long long unsigned int sectors[2]; + long long unsigned int ios[2]; + long long unsigned int merges[2]; + long long unsigned int ticks[2]; + long long unsigned int io_ticks[2]; + long long unsigned int io_ticks_total; + long long unsigned int time_in_queue; + long long unsigned int *histogram; +}; + +struct dm_stat_shared { + atomic_t in_flight[2]; + long long unsigned int 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; + long long unsigned int *histogram_boundaries; + const char *program_id; + const char *aux_data; + struct callback_head callback_head; + size_t shared_alloc_size; + size_t percpu_alloc_size; + size_t histogram_alloc_size; + struct dm_stat_percpu *stat_percpu[8192]; + struct dm_stat_shared stat_shared[0]; +}; + +struct dm_stats_last_position; + +struct dm_stats { + struct mutex mutex; + struct list_head list; + struct dm_stats_last_position *last; + bool precise_timestamps; +}; + +struct dm_stats_last_position { + sector_t last_sector; + unsigned int last_rw; +}; + +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 target_type; + +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; + bool flush_bypasses_map: 1; + blk_mode_t mode; + struct list_head devices; + struct rw_semaphore devices_lock; + void (*event_fn)(void *); + void *event_context; + struct dm_md_mempools *mempools; + struct blk_crypto_profile *crypto_profile; +}; + +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 zone_reset_all_supported: 1; + bool max_discard_granularity: 1; + bool limit_swap_bios: 1; + bool emulate_zone_append: 1; + bool accounts_remapped_io: 1; + bool needs_bio_set_dev: 1; + bool flush_bypasses_map: 1; + bool mempool_needs_integrity: 1; +}; + +struct dm_target_deps { + __u32 count; + __u32 padding; + __u64 dev[0]; +}; + +struct dm_target_msg { + __u64 sector; + char message[0]; +}; + +struct dm_target_spec { + __u64 sector_start; + __u64 length; + __s32 status; + __u32 next; + char target_type[16]; +}; + +struct dm_target_versions { + __u32 next; + __u32 version[3]; + char name[0]; +}; + +struct kobj_uevent_env { + char *argv[3]; + char *envp[64]; + int envp_idx; + char buf[2048]; + int buflen; +}; + +struct dm_uevent { + struct mapped_device *md; + enum kobject_action action; + struct kobj_uevent_env ku_env; + struct list_head elist; + char name[128]; + char uuid[129]; +}; + +struct dm_verity_digest { + const char *alg; + const u8 *digest; + size_t digest_len; +}; + +struct queue_limits; + +struct dm_zone_resource_limits { + unsigned int mapped_nr_seq_zones; + struct queue_limits *lim; + bool reliable_limits; +}; + +typedef void (*dma_async_tx_callback)(void *); + +struct dmaengine_result; + +typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); + +struct dmaengine_unmap_data; + +struct dma_descriptor_metadata_ops; + +struct dma_async_tx_descriptor { + dma_cookie_t cookie; + enum dma_ctrl_flags flags; + dma_addr_t phys; + struct dma_chan *chan; + dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *); + int (*desc_free)(struct dma_async_tx_descriptor *); + dma_async_tx_callback callback; + dma_async_tx_callback_result callback_result; + void *callback_param; + struct dmaengine_unmap_data *unmap; + enum dma_desc_metadata_mode desc_metadata_mode; + struct dma_descriptor_metadata_ops *metadata_ops; +}; + +struct dma_block { + struct dma_block *next_block; + dma_addr_t dma; +}; + +struct iosys_map { + union { + void *vaddr_iomem; + void *vaddr; + }; + bool is_iomem; +}; + +struct dma_buf_poll_cb_t { + struct dma_fence_cb cb; + wait_queue_head_t *poll; + __poll_t active; +}; + +struct dma_buf_ops; + +struct dma_resv; + +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_attachment; + +struct dma_buf_attach_ops { + bool allow_peer2peer; + void (*move_notify)(struct dma_buf_attachment *); +}; + +struct sg_table; + +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_export_info { + const char *exp_name; + struct module *owner; + const struct dma_buf_ops *ops; + size_t size; + int flags; + struct dma_resv *resv; + void *priv; +}; + +struct dma_buf_export_sync_file { + __u32 flags; + __s32 fd; +}; + +struct dma_buf_import_sync_file { + __u32 flags; + __s32 fd; +}; + +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_sync { + __u64 flags; +}; + +struct dma_chan___2 { + int lock; + const char *device_id; +}; + +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 *local; + int client_count; + int table_count; + struct dma_router *router; + void *route_data; + void *private; +}; + +struct dma_chan_dev { + struct dma_chan *chan; + struct device device; + int dev_id; + bool chan_dma_dev; +}; + +struct dma_chan_percpu { + long unsigned int memcpy_count; + long unsigned int bytes_transferred; +}; + +struct dma_chan_tbl_ent { + struct dma_chan *chan; +}; + +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 dma_slave_map; + +struct dma_filter { + dma_filter_fn fn; + int mapcnt; + const struct dma_slave_map *map; +}; + +struct dma_vec; + +struct dma_interleaved_template; + +struct dma_slave_caps; + +struct dma_slave_config; + +struct dma_tx_state; + +struct dma_device { + struct kref ref; + unsigned int chancnt; + unsigned int privatecnt; + struct list_head channels; + struct list_head global_node; + struct dma_filter filter; + dma_cap_mask_t cap_mask; + enum dma_desc_metadata_mode desc_metadata_modes; + short unsigned int max_xor; + short unsigned int 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, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_xor)(struct dma_chan *, dma_addr_t, dma_addr_t *, unsigned int, size_t, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_xor_val)(struct dma_chan *, dma_addr_t *, unsigned int, size_t, enum sum_check_flags *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_pq)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_pq_val)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, enum sum_check_flags *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_memset)(struct dma_chan *, dma_addr_t, int, size_t, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_memset_sg)(struct dma_chan *, struct scatterlist *, unsigned int, int, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_interrupt)(struct dma_chan *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_peripheral_dma_vec)(struct dma_chan *, const struct dma_vec *, size_t, enum dma_transfer_direction, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_slave_sg)(struct dma_chan *, struct scatterlist *, unsigned int, enum dma_transfer_direction, long unsigned int, void *); + struct dma_async_tx_descriptor * (*device_prep_dma_cyclic)(struct dma_chan *, dma_addr_t, size_t, size_t, enum dma_transfer_direction, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_interleaved_dma)(struct dma_chan *, struct dma_interleaved_template *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_imm_data)(struct dma_chan *, dma_addr_t, u64, long unsigned int); + 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_devres { + size_t size; + void *vaddr; + dma_addr_t dma_handle; + long unsigned int attrs; +}; + +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; + long unsigned int flags; + struct kref refcount; + int error; +}; + +struct dma_fence_array; + +struct dma_fence_array_cb { + struct dma_fence_cb cb; + struct dma_fence_array *array; +}; + +struct dma_fence_array { + struct dma_fence base; + spinlock_t lock; + unsigned int num_fences; + atomic_t num_pending; + struct dma_fence **fences; + struct irq_work work; + struct dma_fence_array_cb callbacks[0]; +}; + +struct dma_fence_chain { + struct dma_fence base; + struct dma_fence *prev; + u64 prev_seqno; + struct dma_fence *fence; + union { + struct dma_fence_cb cb; + struct irq_work work; + }; + spinlock_t lock; +}; + +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 int (*wait)(struct dma_fence *, bool, long int); + void (*release)(struct dma_fence *); + void (*fence_value_str)(struct dma_fence *, char *, int); + void (*timeline_value_str)(struct dma_fence *, char *, int); + void (*set_deadline)(struct dma_fence *, ktime_t); +}; + +struct dma_fence_unwrap { + struct dma_fence *chain; + struct dma_fence *array; + unsigned int index; +}; + +struct dma_heap_ops; + +struct dma_heap { + const char *name; + const struct dma_heap_ops *ops; + void *priv; + dev_t heap_devt; + struct list_head list; + struct cdev heap_cdev; +}; + +struct dma_heap_allocation_data { + __u64 len; + __u32 fd; + __u32 fd_flags; + __u64 heap_flags; +}; + +struct dma_heap_attachment { + struct device *dev; + struct sg_table *table; + struct list_head list; + bool mapped; +}; + +struct dma_heap_export_info { + const char *name; + const struct dma_heap_ops *ops; + void *priv; +}; + +struct dma_heap_ops { + struct dma_buf * (*allocate)(struct dma_heap *, long unsigned int, u32, u64); +}; + +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_map_ops { + void * (*alloc)(struct device *, size_t, dma_addr_t *, gfp_t, long unsigned int); + void (*free)(struct device *, size_t, void *, dma_addr_t, long unsigned int); + struct page * (*alloc_pages_op)(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); + int (*mmap)(struct device *, struct vm_area_struct *, void *, dma_addr_t, size_t, long unsigned int); + int (*get_sgtable)(struct device *, struct sg_table *, void *, dma_addr_t, size_t, long unsigned int); + dma_addr_t (*map_page)(struct device *, struct page *, long unsigned int, size_t, enum dma_data_direction, long unsigned int); + void (*unmap_page)(struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + int (*map_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, long unsigned int); + void (*unmap_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, long unsigned int); + dma_addr_t (*map_resource)(struct device *, phys_addr_t, size_t, enum dma_data_direction, long unsigned int); + void (*unmap_resource)(struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + 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)(void); + long unsigned int (*get_merge_boundary)(struct device *); +}; + +struct dma_page { + struct list_head page_list; + void *vaddr; + dma_addr_t dma; +}; + +struct dma_pool { + struct list_head page_list; + spinlock_t lock; + struct dma_block *next_block; + size_t nr_blocks; + size_t nr_active; + size_t nr_pages; + struct device *dev; + unsigned int size; + unsigned int allocation; + unsigned int boundary; + char name[32]; + struct list_head pools; +}; + +struct dma_pte { + u64 val; +}; + +struct ww_acquire_ctx; + +struct ww_mutex { + struct mutex base; + struct ww_acquire_ctx *ctx; +}; + +struct dma_resv_list; + +struct dma_resv { + struct ww_mutex lock; + struct dma_resv_list *fences; +}; + +struct dma_resv_iter { + struct dma_resv *obj; + enum dma_resv_usage usage; + struct dma_fence *fence; + enum dma_resv_usage fence_usage; + unsigned int index; + struct dma_resv_list *fences; + unsigned int num_fences; + bool is_restarted; +}; + +struct dma_resv_list { + struct callback_head rcu; + u32 num_fences; + u32 max_fences; + struct dma_fence *table[0]; +}; + +struct dma_router { + struct device *dev; + void (*route_free)(struct device *, void *); +}; + +struct sg_table { + struct scatterlist *sgl; + unsigned int nents; + unsigned int orig_nents; +}; + +struct dma_sgt_handle { + struct sg_table sgt; + struct page **pages; +}; + +struct dma_slave_caps { + u32 src_addr_widths; + u32 dst_addr_widths; + u32 directions; + u32 min_burst; + u32 max_burst; + u32 max_sg_burst; + bool cmd_pause; + bool cmd_resume; + bool cmd_terminate; + enum dma_residue_granularity residue_granularity; + bool descriptor_reuse; +}; + +struct dma_slave_config { + enum dma_transfer_direction direction; + phys_addr_t src_addr; + phys_addr_t dst_addr; + enum dma_slave_buswidth src_addr_width; + enum dma_slave_buswidth dst_addr_width; + u32 src_maxburst; + u32 dst_maxburst; + u32 src_port_window_size; + u32 dst_port_window_size; + bool device_fc; + void *peripheral_config; + size_t peripheral_size; +}; + +struct dma_slave_map { + const char *devname; + const char *slave; + void *param; +}; + +struct dma_tx_state { + dma_cookie_t last; + dma_cookie_t used; + u32 residue; + u32 in_flight_bytes; +}; + +struct dma_vec { + dma_addr_t addr; + size_t len; +}; + +struct dmabuf_cmsg { + __u64 frag_offset; + __u32 frag_size; + __u32 frag_token; + __u32 dmabuf_id; + __u32 flags; +}; + +struct net_iov; + +struct net_devmem_dmabuf_binding; + +struct dmabuf_genpool_chunk_owner { + long unsigned int base_virtual; + dma_addr_t base_dma_addr; + struct net_iov *niovs; + size_t num_niovs; + struct net_devmem_dmabuf_binding *binding; +}; + +struct dmabuf_token { + __u32 token_start; + __u32 token_count; +}; + +struct dmaengine_desc_callback { + dma_async_tx_callback callback; + dma_async_tx_callback_result callback_result; + void *callback_param; +}; + +struct dmaengine_result { + enum dmaengine_tx_result result; + u32 residue; +}; + +struct dmaengine_unmap_data { + u16 map_cnt; + u8 to_cnt; + u8 from_cnt; + u8 bidi_cnt; + struct device *dev; + struct kref kref; + size_t len; + dma_addr_t addr[0]; +}; + +struct dmaengine_unmap_pool { + struct kmem_cache *cache; + const char *name; + mempool_t *pool; + size_t size; +}; + +struct dmar_dev_scope; + +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_dev_scope { + struct device *dev; + u8 bus; + u8 devfn; +}; + +struct iommu_hwpt_vtd_s1 { + __u64 flags; + __u64 pgtbl_addr; + __u32 addr_width; + __u32 __reserved; +}; + +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 iommu_domain_geometry { + dma_addr_t aperture_start; + dma_addr_t aperture_end; + bool force_aperture; +}; + +struct iommu_domain; + +typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, long unsigned int, int, void *); + +struct iommu_domain_ops; + +struct iommu_dirty_ops; + +struct iommu_dma_cookie; + +struct iopf_group; + +struct iommu_domain { + unsigned int type; + const struct iommu_domain_ops *ops; + const struct iommu_dirty_ops *dirty_ops; + const struct iommu_ops *owner; + long unsigned int pgsize_bitmap; + struct iommu_domain_geometry geometry; + struct iommu_dma_cookie *iova_cookie; + int (*iopf_handler)(struct iopf_group *); + void *fault_data; + union { + struct { + iommu_fault_handler_t handler; + void *handler_token; + }; + struct { + struct mm_struct *mm; + int users; + struct list_head next; + }; + }; +}; + +struct qi_batch; + +struct dmar_domain { + int nid; + struct xarray iommu_array; + u8 iommu_coherency: 1; + u8 force_snooping: 1; + u8 set_pte_snp: 1; + u8 use_first_level: 1; + u8 dirty_tracking: 1; + u8 nested_parent: 1; + u8 has_mappings: 1; + u8 iotlb_sync_map: 1; + spinlock_t lock; + struct list_head devices; + struct list_head dev_pasids; + spinlock_t cache_lock; + struct list_head cache_tags; + struct qi_batch *qi_batch; + int iommu_superpage; + union { + struct { + struct dma_pte *pgd; + int gaw; + int agaw; + u64 max_addr; + spinlock_t s1_lock; + struct list_head s1_domains; + }; + struct { + struct dmar_domain *s2_domain; + struct iommu_hwpt_vtd_s1 s1_cfg; + struct list_head s2_link; + }; + struct { + struct mmu_notifier notifier; + }; + }; + struct iommu_domain domain; +}; + +struct dmar_drhd_unit { + struct list_head list; + struct acpi_dmar_header *hdr; + u64 reg_base_addr; + long unsigned int 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 dmar_pci_path { + u8 bus; + u8 device; + u8 function; +}; + +struct dmar_pci_notify_info { + struct pci_dev *dev; + long unsigned int event; + int bus; + u16 seg; + u16 level; + struct dmar_pci_path path[0]; +}; + +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 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_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 page_counter { + atomic_long_t usage; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + long unsigned int emin; + atomic_long_t min_usage; + atomic_long_t children_min_usage; + long unsigned int elow; + atomic_long_t low_usage; + atomic_long_t children_low_usage; + long unsigned int watermark; + long unsigned int local_watermark; + long unsigned int failcnt; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad2_; + bool protection_support; + long unsigned int min; + long unsigned int low; + long unsigned int high; + long unsigned int max; + struct page_counter *parent; + long: 64; + long: 64; +}; + +struct dmem_cgroup_region; + +struct dmemcg_state; + +struct dmem_cgroup_pool_state { + struct dmem_cgroup_region *region; + struct dmemcg_state *cs; + struct list_head css_node; + struct list_head region_node; + struct callback_head rcu; + struct page_counter cnt; + bool inited; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct dmem_cgroup_region { + struct kref ref; + struct callback_head rcu; + struct list_head region_node; + struct list_head pools; + u64 size; + char *name; + bool unregistered; +}; + +struct dmemcg_state { + struct cgroup_subsys_state css; + struct list_head pools; +}; + +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; +}; + +struct dmi_device_attribute { + struct device_attribute dev_attr; + int field; +}; + +struct dmi_header { + u8 type; + u8 length; + u16 handle; +}; + +struct dmi_memdev_info { + const char *device; + const char *bank; + u64 size; + u16 handle; + u8 type; +}; + +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 fb_videomode; + +struct dmt_videomode { + u32 dmt_id; + u32 std_2byte_code; + u32 cvt_3byte_code; + const struct fb_videomode *mode; +}; + +struct dnotify_struct; + +struct dnotify_mark { + struct fsnotify_mark fsn_mark; + struct dnotify_struct *dn; +}; + +typedef void *fl_owner_t; + +struct dnotify_struct { + struct dnotify_struct *dn_next; + __u32 dn_mask; + int dn_fd; + struct file *dn_filp; + fl_owner_t dn_owner; +}; + +struct dns_payload_header { + __u8 zero; + __u8 content; + __u8 version; +}; + +struct dns_server_list_v1_header { + struct dns_payload_header hdr; + __u8 source; + __u8 status; + __u8 nr_servers; +}; + +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 dock_dependent_device { + struct list_head list; + struct acpi_device *adev; +}; + +struct dock_station { + acpi_handle handle; + long unsigned int last_dock_time; + u32 flags; + struct list_head dependent_devices; + struct list_head sibling; + struct platform_device *dock_device; +}; + +struct dom0_vga_console_info { + uint8_t video_type; + union { + struct { + uint16_t font_height; + uint16_t cursor_x; + uint16_t cursor_y; + uint16_t rows; + uint16_t columns; + } text_mode_3; + struct { + uint16_t width; + uint16_t height; + uint16_t bytes_per_line; + uint16_t bits_per_pixel; + uint32_t lfb_base; + uint32_t lfb_size; + uint8_t red_pos; + uint8_t red_size; + uint8_t green_pos; + uint8_t green_size; + uint8_t blue_pos; + uint8_t blue_size; + uint8_t rsvd_pos; + uint8_t rsvd_size; + uint32_t gbl_caps; + uint16_t mode_attrs; + uint16_t pad; + uint32_t ext_lfb_base; + } vesa_lfb; + } u; +}; + +struct double_list { + struct list_head *top; + struct list_head *bottom; +}; + +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 dpages { + void (*get_page)(struct dpages *, struct page **, long unsigned int *, unsigned int *); + void (*next_page)(struct dpages *); + union { + unsigned int context_u; + struct bvec_iter context_bi; + }; + void *context_ptr; + void *vma_invalidate_address; + long unsigned int vma_invalidate_size; +}; + +struct dpll_device { + u32 id; + u32 device_idx; + u64 clock_id; + struct module *module; + enum dpll_type type; + struct xarray pin_refs; + refcount_t refcount; + struct list_head registration_list; +}; + +struct dpll_device_ops { + int (*mode_get)(const struct dpll_device *, void *, enum dpll_mode *, struct netlink_ext_ack *); + int (*lock_status_get)(const struct dpll_device *, void *, enum dpll_lock_status *, enum dpll_lock_status_error *, struct netlink_ext_ack *); + int (*temp_get)(const struct dpll_device *, void *, s32 *, struct netlink_ext_ack *); + int (*clock_quality_level_get)(const struct dpll_device *, void *, long unsigned int *, struct netlink_ext_ack *); +}; + +struct dpll_device_registration { + struct list_head list; + const struct dpll_device_ops *ops; + void *priv; +}; + +struct dpll_dump_ctx { + long unsigned int idx; +}; + +struct dpll_pin_phase_adjust_range { + s32 min; + s32 max; +}; + +struct dpll_pin_frequency; + +struct dpll_pin_properties { + const char *board_label; + const char *panel_label; + const char *package_label; + enum dpll_pin_type type; + long unsigned int capabilities; + u32 freq_supported_num; + struct dpll_pin_frequency *freq_supported; + struct dpll_pin_phase_adjust_range phase_range; +}; + +struct dpll_pin { + u32 id; + u32 pin_idx; + u64 clock_id; + struct module *module; + struct xarray dpll_refs; + struct xarray parent_refs; + struct dpll_pin_properties prop; + refcount_t refcount; + struct callback_head rcu; +}; + +struct dpll_pin_esync { + u64 freq; + const struct dpll_pin_frequency *range; + u8 range_num; + u8 pulse; +}; + +struct dpll_pin_frequency { + u64 min; + u64 max; +}; + +struct dpll_pin_ops { + int (*frequency_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, const u64, struct netlink_ext_ack *); + int (*frequency_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, u64 *, struct netlink_ext_ack *); + int (*direction_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, const enum dpll_pin_direction, struct netlink_ext_ack *); + int (*direction_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, enum dpll_pin_direction *, struct netlink_ext_ack *); + int (*state_on_pin_get)(const struct dpll_pin *, void *, const struct dpll_pin *, void *, enum dpll_pin_state *, struct netlink_ext_ack *); + int (*state_on_dpll_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, enum dpll_pin_state *, struct netlink_ext_ack *); + int (*state_on_pin_set)(const struct dpll_pin *, void *, const struct dpll_pin *, void *, const enum dpll_pin_state, struct netlink_ext_ack *); + int (*state_on_dpll_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, const enum dpll_pin_state, struct netlink_ext_ack *); + int (*prio_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, u32 *, struct netlink_ext_ack *); + int (*prio_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, const u32, struct netlink_ext_ack *); + int (*phase_offset_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, s64 *, struct netlink_ext_ack *); + int (*phase_adjust_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, s32 *, struct netlink_ext_ack *); + int (*phase_adjust_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, const s32, struct netlink_ext_ack *); + int (*ffo_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, s64 *, struct netlink_ext_ack *); + int (*esync_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, u64, struct netlink_ext_ack *); + int (*esync_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, struct dpll_pin_esync *, struct netlink_ext_ack *); +}; + +struct dpll_pin_ref { + union { + struct dpll_device *dpll; + struct dpll_pin *pin; + }; + struct list_head registration_list; + refcount_t refcount; +}; + +struct dpll_pin_registration { + struct list_head list; + const struct dpll_pin_ops *ops; + void *priv; + void *cookie; +}; + +struct dql { + unsigned int num_queued; + unsigned int adj_limit; + unsigned int last_obj_cnt; + short unsigned int stall_thrs; + long unsigned int history_head; + long unsigned int history[4]; + 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; + long unsigned int slack_start_time; + unsigned int max_limit; + unsigned int min_limit; + unsigned int slack_hold_time; + short unsigned int stall_max; + long unsigned int last_reap; + long unsigned int stall_cnt; +}; + +struct dqstats { + long unsigned int stat[8]; + struct percpu_counter counter[8]; +}; + +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; + long unsigned int dq_flags; + struct mem_dqblk dq_dqb; +}; + +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 dquot_warn { + struct super_block *w_sb; + struct kqid w_dq_id; + short int w_type; +}; + +struct drbg_core { + drbg_flag_t flags; + __u8 statelen; + __u8 blocklen_bytes; + char cra_name[128]; + char backend_cra_name[128]; +}; + +struct drbg_string { + const unsigned char *buf; + size_t len; + struct list_head list; +}; + +struct drbg_state_ops; + +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; + long unsigned int last_seed_time; + bool pr; + bool fips_primed; + unsigned char *prev; + struct crypto_rng *jent; + const struct drbg_state_ops *d_ops; + const struct drbg_core *core; + struct drbg_string test_data; +}; + +struct drbg_state_ops { + int (*update)(struct drbg_state *, struct list_head *, int); + int (*generate)(struct drbg_state *, unsigned char *, unsigned int, struct list_head *); + int (*crypto_init)(struct drbg_state *); + int (*crypto_fini)(struct drbg_state *); +}; + +struct driver_attribute { + struct attribute attr; + ssize_t (*show)(struct device_driver *, char *); + ssize_t (*store)(struct device_driver *, const char *, size_t); +}; + +struct module_kobject; + +struct driver_private { + struct kobject kobj; + struct klist klist_devices; + struct klist_node knode_bus; + struct module_kobject *mkobj; + struct device_driver *driver; +}; + +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_device; + +struct drm_format_info; + +struct drm_framebuffer_funcs; + +struct drm_gem_object; + +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; + struct list_head filp_head; + struct drm_gem_object *obj[4]; +}; + +struct drm_afbc_framebuffer { + struct drm_framebuffer base; + u32 block_width; + u32 block_height; + u32 aligned_width; + u32 aligned_height; + u32 offset; + u32 afbc_size; +}; + +struct drm_rect { + int x1; + int y1; + int x2; + int y2; +}; + +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 drm_modeset_acquire_ctx; + +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_auth { + drm_magic_t magic; +}; + +struct drm_modeset_lock { + struct ww_mutex mutex; + struct list_head head; +}; + +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_encoder; + +struct drm_bridge_timings; + +struct drm_bridge_funcs; + +struct i2c_adapter; + +struct drm_bridge { + struct drm_private_obj base; + struct drm_device *dev; + struct drm_encoder *encoder; + struct list_head chain_node; + struct device_node *of_node; + struct list_head list; + const struct drm_bridge_timings *timings; + const struct drm_bridge_funcs *funcs; + void *driver_private; + enum drm_bridge_ops ops; + int type; + bool interlace_allowed; + bool ycbcr_420_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; + const char *vendor; + const char *product; + unsigned int supported_formats; + unsigned int max_bpc; + struct device *hdmi_audio_dev; + int hdmi_audio_max_i2s_playback_channels; + unsigned int hdmi_audio_spdif_playback: 1; + int hdmi_audio_dai_port; +}; + +struct hdmi_codec_daifmt; + +struct hdmi_codec_params; + +struct drm_display_info; + +struct drm_display_mode; + +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 *); + const struct drm_edid * (*edid_read)(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 *); + enum drm_mode_status (*hdmi_tmds_char_rate_valid)(const struct drm_bridge *, const struct drm_display_mode *, long long unsigned int); + int (*hdmi_clear_infoframe)(struct drm_bridge *, enum hdmi_infoframe_type); + int (*hdmi_write_infoframe)(struct drm_bridge *, enum hdmi_infoframe_type, const u8 *, size_t); + int (*hdmi_audio_startup)(struct drm_connector *, struct drm_bridge *); + int (*hdmi_audio_prepare)(struct drm_connector *, struct drm_bridge *, struct hdmi_codec_daifmt *, struct hdmi_codec_params *); + void (*hdmi_audio_shutdown)(struct drm_connector *, struct drm_bridge *); + int (*hdmi_audio_mute_stream)(struct drm_connector *, struct drm_bridge *, bool, int); + void (*debugfs_init)(struct drm_bridge *, struct dentry *); +}; + +struct drm_private_state { + struct drm_atomic_state *state; + struct drm_private_obj *obj; +}; + +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 drm_bridge_timings { + u32 input_bus_flags; + u32 setup_time_ps; + u32 hold_time_ps; + bool dual_link; +}; + +struct drm_client { + int idx; + int auth; + long unsigned int pid; + long unsigned int uid; + long unsigned int magic; + long unsigned int iocs; +}; + +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_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 drm_client_funcs; + +struct drm_file; + +struct drm_mode_set; + +struct drm_client_dev { + struct drm_device *dev; + const char *name; + struct list_head list; + const struct drm_client_funcs *funcs; + struct drm_file *file; + struct mutex modeset_mutex; + struct drm_mode_set *modesets; + bool suspended; + 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 *); + int (*suspend)(struct drm_client_dev *, bool); + int (*resume)(struct drm_client_dev *, bool); +}; + +struct drm_client_offset { + int x; + int y; +}; + +struct drm_clip_rect { + short unsigned int x1; + short unsigned int y1; + short unsigned int x2; + short unsigned int y2; +}; + +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 drm_color_lut { + __u16 red; + __u16 green; + __u16 blue; + __u16 reserved; +}; + +struct drm_conn_prop_enum_list { + int type; + const char *name; + struct ida ida; +}; + +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; + long unsigned int y420_vdb_modes[4]; + long unsigned int 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_audio; + bool has_hdmi_infoframe; + bool rgb_quant_range_selectable; + u8 edid_hdmi_rgb444_dc_modes; + u8 edid_hdmi_ycbcr444_dc_modes; + u8 cea_rev; + struct drm_hdmi_info hdmi; + bool non_desktop; + struct drm_monitor_range_info monitor_range; + struct drm_luminance_range_info luminance_range; + u8 mso_stream_count; + u8 mso_pixel_overlap; + u32 max_dsc_bpp; + u8 *vics; + int vics_len; + u32 quirks; + u16 source_physical_address; +}; + +struct drm_property; + +struct drm_object_properties { + int count; + struct drm_property *properties[64]; + uint64_t values[64]; +}; + +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 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; + bool itc; + unsigned char pixel_repeat; + enum hdmi_colorspace colorspace; + enum hdmi_scan_mode scan_mode; + enum hdmi_colorimetry colorimetry; + enum hdmi_picture_aspect picture_aspect; + enum hdmi_active_aspect active_aspect; + enum hdmi_extended_colorimetry extended_colorimetry; + enum hdmi_quantization_range quantization_range; + enum hdmi_nups nups; + unsigned char video_code; + enum hdmi_ycc_quantization_range ycc_quantization_range; + enum hdmi_content_type content_type; + short unsigned int top_bar; + short unsigned int bottom_bar; + short unsigned int left_bar; + short unsigned int 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_connector_hdmi_infoframe { + union hdmi_infoframe data; + bool set; +}; + +struct drm_connector_hdmi_funcs; + +struct drm_connector_hdmi { + unsigned char vendor[8]; + unsigned char product[16]; + long unsigned int supported_formats; + const struct drm_connector_hdmi_funcs *funcs; + struct { + struct mutex lock; + struct drm_connector_hdmi_infoframe audio; + } infoframes; +}; + +struct drm_connector_hdmi_audio_funcs; + +struct drm_connector_hdmi_audio { + const struct drm_connector_hdmi_audio_funcs *funcs; + struct platform_device *codec_pdev; + struct mutex lock; + void (*plugged_cb)(struct device *, bool); + struct device *plugged_cb_dev; + bool last_state; + int dai_port; +}; + +struct drm_connector_funcs; + +struct drm_property_blob; + +struct drm_privacy_screen; + +struct drm_connector_helper_funcs; + +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; + unsigned int max_bpc; + 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; + struct drm_property *broadcast_rgb_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]; + struct mutex eld_mutex; + 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_hdmi hdmi; + struct drm_connector_hdmi_audio hdmi_audio; +}; + +struct drm_printer; + +struct drm_connector_funcs { + int (*dpms)(struct drm_connector *, int); + void (*reset)(struct drm_connector *); + enum drm_connector_status (*detect)(struct drm_connector *, bool); + void (*force)(struct drm_connector *); + int (*fill_modes)(struct drm_connector *, uint32_t, uint32_t); + int (*set_property)(struct drm_connector *, struct drm_property *, uint64_t); + int (*late_register)(struct drm_connector *); + void (*early_unregister)(struct drm_connector *); + void (*destroy)(struct drm_connector *); + struct drm_connector_state * (*atomic_duplicate_state)(struct drm_connector *); + void (*atomic_destroy_state)(struct drm_connector *, struct drm_connector_state *); + int (*atomic_set_property)(struct drm_connector *, struct drm_connector_state *, struct drm_property *, uint64_t); + int (*atomic_get_property)(struct drm_connector *, const struct drm_connector_state *, struct drm_property *, uint64_t *); + void (*atomic_print_state)(struct drm_printer *, const struct drm_connector_state *); + void (*oob_hotplug_event)(struct drm_connector *, enum drm_connector_status); + void (*debugfs_init)(struct drm_connector *, struct dentry *); +}; + +struct drm_connector_hdmi_audio_funcs { + int (*startup)(struct drm_connector *); + int (*prepare)(struct drm_connector *, struct hdmi_codec_daifmt *, struct hdmi_codec_params *); + void (*shutdown)(struct drm_connector *); + int (*mute_stream)(struct drm_connector *, bool, int); +}; + +struct drm_connector_hdmi_funcs { + enum drm_mode_status (*tmds_char_rate_valid)(const struct drm_connector *, const struct drm_display_mode *, long long unsigned int); + int (*clear_infoframe)(struct drm_connector *, enum hdmi_infoframe_type); + int (*write_infoframe)(struct drm_connector *, enum hdmi_infoframe_type, const u8 *, size_t); + const struct drm_edid * (*read_edid)(struct drm_connector *); +}; + +struct drm_connector_hdmi_state { + enum drm_hdmi_broadcast_rgb broadcast_rgb; + struct { + struct drm_connector_hdmi_infoframe avi; + struct drm_connector_hdmi_infoframe hdr_drm; + struct drm_connector_hdmi_infoframe spd; + struct drm_connector_hdmi_infoframe hdmi; + } infoframes; + bool is_limited_range; + unsigned int output_bpc; + enum hdmi_colorspace output_format; + long long unsigned int tmds_char_rate; +}; + +struct drm_writeback_connector; + +struct drm_writeback_job; + +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 drm_connector_list_iter { + struct drm_device *dev; + struct drm_connector *conn; +}; + +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_connector_state { + struct drm_connector *connector; + struct drm_crtc *crtc; + struct drm_encoder *best_encoder; + enum drm_link_status link_status; + struct drm_atomic_state *state; + struct drm_crtc_commit *commit; + struct drm_tv_connector_state tv; + bool self_refresh_aware; + enum hdmi_picture_aspect picture_aspect_ratio; + unsigned int content_type; + unsigned int hdcp_content_type; + unsigned int scaling_mode; + unsigned int content_protection; + enum drm_colorspace colorspace; + struct drm_writeback_job *writeback_job; + u8 max_requested_bpc; + u8 max_bpc; + enum drm_privacy_screen_status privacy_screen_sw_state; + struct drm_property_blob *hdr_output_metadata; + struct drm_connector_hdmi_state hdmi; +}; + +struct drm_display_mode { + int clock; + u16 hdisplay; + u16 hsync_start; + u16 hsync_end; + u16 htotal; + u16 hskew; + u16 vdisplay; + u16 vsync_start; + u16 vsync_end; + u16 vtotal; + u16 vscan; + u32 flags; + int crtc_clock; + u16 crtc_hdisplay; + u16 crtc_hblank_start; + u16 crtc_hblank_end; + u16 crtc_hsync_start; + u16 crtc_hsync_end; + u16 crtc_htotal; + u16 crtc_hskew; + u16 crtc_vdisplay; + u16 crtc_vblank_start; + u16 crtc_vblank_end; + u16 crtc_vsync_start; + u16 crtc_vsync_end; + u16 crtc_vtotal; + u16 width_mm; + u16 height_mm; + u8 type; + bool expose_to_userspace; + struct list_head head; + char name[32]; + enum drm_mode_status status; + enum hdmi_picture_aspect picture_aspect_ratio; +}; + +struct 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_crtc_funcs; + +struct drm_crtc_helper_funcs; + +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; + long unsigned int fence_seqno; + char timeline_name[32]; + struct drm_self_refresh_data *self_refresh_data; +}; + +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 drm_crtc_crc_entry { + bool has_frame_counter; + uint32_t frame; + uint32_t crcs[10]; +}; + +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_crtc_get_sequence { + __u32 crtc_id; + __u32 active; + __u64 sequence; + __s64 sequence_ns; +}; + +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_queue_sequence { + __u32 crtc_id; + __u32 flags; + __u64 sequence; + __u64 user_data; +}; + +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_debugfs_info { + const char *name; + int (*show)(struct seq_file *, void *); + u32 driver_features; + void *data; +}; + +struct drm_debugfs_entry { + struct drm_device *dev; + struct drm_debugfs_info file; + struct list_head list; +}; + +struct drm_mode_config_funcs; + +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; + struct raw_spinlock panic_lock; + int num_crtc; + struct list_head crtc_list; + struct list_head property_list; + struct list_head privobj_list; + int min_width; + int min_height; + int max_width; + int max_height; + const struct drm_mode_config_funcs *funcs; + bool poll_enabled; + bool poll_running; + bool delayed_event; + struct delayed_work output_poll_work; + struct mutex blob_lock; + struct list_head property_blob_list; + struct drm_property *edid_property; + struct drm_property *dpms_property; + struct drm_property *path_property; + struct drm_property *tile_property; + struct drm_property *link_status_property; + struct drm_property *plane_type_property; + struct drm_property *prop_src_x; + struct drm_property *prop_src_y; + struct drm_property *prop_src_w; + struct drm_property *prop_src_h; + struct drm_property *prop_crtc_x; + struct drm_property *prop_crtc_y; + struct drm_property *prop_crtc_w; + struct drm_property *prop_crtc_h; + struct drm_property *prop_fb_id; + struct drm_property *prop_in_fence_fd; + struct drm_property *prop_out_fence_ptr; + struct drm_property *prop_crtc_id; + struct drm_property *prop_fb_damage_clips; + struct drm_property *prop_active; + struct drm_property *prop_mode_id; + struct drm_property *prop_vrr_enabled; + struct drm_property *dvi_i_subconnector_property; + struct drm_property *dvi_i_select_subconnector_property; + struct drm_property *dp_subconnector_property; + struct drm_property *tv_subconnector_property; + struct drm_property *tv_select_subconnector_property; + struct drm_property *legacy_tv_mode_property; + struct drm_property *tv_mode_property; + struct drm_property *tv_left_margin_property; + struct drm_property *tv_right_margin_property; + struct drm_property *tv_top_margin_property; + struct drm_property *tv_bottom_margin_property; + struct drm_property *tv_brightness_property; + struct drm_property *tv_contrast_property; + struct drm_property *tv_flicker_reduction_property; + struct drm_property *tv_overscan_property; + struct drm_property *tv_saturation_property; + struct drm_property *tv_hue_property; + struct drm_property *scaling_mode_property; + struct drm_property *aspect_ratio_property; + struct drm_property *content_type_property; + struct drm_property *degamma_lut_property; + struct drm_property *degamma_lut_size_property; + struct drm_property *ctm_property; + struct drm_property *gamma_lut_property; + struct drm_property *gamma_lut_size_property; + struct drm_property *suggested_x_property; + struct drm_property *suggested_y_property; + struct drm_property *non_desktop_property; + struct drm_property *panel_orientation_property; + struct drm_property *writeback_fb_id_property; + struct drm_property *writeback_pixel_formats_property; + struct drm_property *writeback_out_fence_ptr_property; + struct drm_property *hdr_output_metadata_property; + struct drm_property *content_protection_property; + struct drm_property *hdcp_content_type_property; + uint32_t preferred_depth; + uint32_t prefer_shadow; + bool quirk_addfb_prefer_xbgr_30bpp; + bool quirk_addfb_prefer_host_byte_order; + bool async_page_flip; + bool fb_modifiers_not_supported; + bool normalize_zpos; + struct drm_property *modifiers_property; + struct drm_property *size_hints_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 dentry *debugfs_root; +}; + +struct drm_dmi_panel_orientation_data { + int width; + int height; + const char * const *bios_dates; + int orientation; +}; + +struct drm_mode_create_dumb; + +struct drm_fb_helper_surface_size; + +struct drm_ioctl_desc; + +struct drm_driver { + int (*load)(struct drm_device *, long unsigned int); + int (*open)(struct drm_device *, struct drm_file *); + void (*postclose)(struct drm_device *, struct drm_file *); + void (*unload)(struct drm_device *); + void (*release)(struct drm_device *); + void (*master_set)(struct drm_device *, struct drm_file *, bool); + void (*master_drop)(struct drm_device *, struct drm_file *); + void (*debugfs_init)(struct drm_minor *); + struct drm_gem_object * (*gem_create_object)(struct drm_device *, size_t); + int (*prime_handle_to_fd)(struct drm_device *, struct drm_file *, uint32_t, uint32_t, int *); + int (*prime_fd_to_handle)(struct drm_device *, struct drm_file *, int, uint32_t *); + struct drm_gem_object * (*gem_prime_import)(struct drm_device *, struct dma_buf *); + struct drm_gem_object * (*gem_prime_import_sg_table)(struct drm_device *, struct dma_buf_attachment *, struct sg_table *); + int (*dumb_create)(struct drm_file *, struct drm_device *, struct drm_mode_create_dumb *); + int (*dumb_map_offset)(struct drm_file *, struct drm_device *, uint32_t, uint64_t *); + int (*fbdev_probe)(struct drm_fb_helper *, struct drm_fb_helper_surface_size *); + void (*show_fdinfo)(struct drm_printer *, struct drm_file *); + int major; + int minor; + int patchlevel; + char *name; + char *desc; + u32 driver_features; + const struct drm_ioctl_desc *ioctls; + int num_ioctls; + const struct file_operations *fops; +}; + +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 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 edid; + +struct drm_edid { + size_t size; + const struct edid *edid; +}; + +struct drm_edid_ident { + u32 panel_id; + const char *name; +}; + +struct drm_edid_match_closure { + const struct drm_edid_ident *ident; + bool matched; +}; + +struct drm_edid_product_id { + __be16 manufacturer_name; + __le16 product_code; + __le32 serial_number; + u8 week_of_manufacture; + u8 year_of_manufacture; +} __attribute__((packed)); + +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 dentry *debugfs_entry; +}; + +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 *); + void (*debugfs_init)(struct drm_encoder *, struct dentry *); +}; + +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_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); +}; + +struct drm_event { + __u32 type; + __u32 length; +}; + +struct drm_event_crtc_sequence { + struct drm_event base; + __u64 user_data; + __s64 time_ns; + __u64 sequence; +}; + +struct drm_event_vblank { + struct drm_event base; + __u64 user_data; + __u32 tv_sec; + __u32 tv_usec; + __u32 sequence; + __u32 crtc_id; +}; + +struct ww_acquire_ctx { + struct task_struct *task; + long unsigned int stamp; + unsigned int acquired; + short unsigned int wounded; + short unsigned int is_wait_die; +}; + +struct drm_exec { + u32 flags; + struct ww_acquire_ctx ticket; + unsigned int num_objects; + unsigned int max_objects; + struct drm_gem_object **objects; + struct drm_gem_object *contended; + struct drm_gem_object *prelocked; +}; + +struct fb_info; + +struct fb_deferred_io { + long unsigned int delay; + bool sort_pagereflist; + int open_count; + struct mutex lock; + struct list_head pagereflist; + struct page * (*get_page)(struct fb_info *, long unsigned int); + void (*deferred_io)(struct fb_info *, struct list_head *); +}; + +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; + struct fb_deferred_io fbdefio; +}; + +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; +}; + +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; + bool supports_virtualized_cursor_plane; + struct drm_master *master; + spinlock_t master_lookup_lock; + struct pid *pid; + u64 client_id; + drm_magic_t magic; + struct list_head lhead; + struct drm_minor *minor; + struct idr object_idr; + spinlock_t table_lock; + struct idr syncobj_idr; + spinlock_t syncobj_table_lock; + struct file *filp; + void *driver_priv; + struct list_head fbs; + struct mutex fbs_lock; + struct list_head blobs; + wait_queue_head_t event_wait; + struct list_head pending_event_list; + struct list_head event_list; + int event_space; + struct mutex event_read_lock; + struct drm_prime_file_private prime; + const char *client_name; + struct mutex client_name_lock; +}; + +struct drm_flip_task { + struct list_head node; + void *data; +}; + +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_format_conv_state { + struct { + void *mem; + size_t size; + bool preallocated; + } tmp; +}; + +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_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_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_gem_close { + __u32 handle; + __u32 pad; +}; + +struct drm_gem_flink { + __u32 handle; + __u32 name; +}; + +struct drm_gem_lru { + struct mutex *lock; + long int count; + struct list_head list; +}; + +struct drm_mm; + +struct drm_mm_node { + long unsigned int 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; + long unsigned int flags; +}; + +struct drm_vma_offset_node { + rwlock_t vm_lock; + struct drm_mm_node vm_node; + struct rb_root vm_files; + void *driver_private; +}; + +struct drm_gem_object_funcs; + +struct drm_gem_object { + struct kref refcount; + unsigned int handle_count; + struct drm_device *dev; + struct file *filp; + struct drm_vma_offset_node vma_node; + size_t size; + int name; + struct dma_buf *dma_buf; + struct dma_buf_attachment *import_attach; + struct dma_resv *resv; + struct dma_resv _resv; + struct { + struct list_head list; + } gpuva; + const struct drm_gem_object_funcs *funcs; + struct list_head lru_node; + struct drm_gem_lru *lru; +}; + +struct drm_gem_object_funcs { + void (*free)(struct drm_gem_object *); + int (*open)(struct drm_gem_object *, struct drm_file *); + void (*close)(struct drm_gem_object *, struct drm_file *); + void (*print_info)(struct drm_printer *, unsigned int, const struct drm_gem_object *); + struct dma_buf * (*export)(struct drm_gem_object *, int); + int (*pin)(struct drm_gem_object *); + void (*unpin)(struct drm_gem_object *); + struct sg_table * (*get_sg_table)(struct drm_gem_object *); + int (*vmap)(struct drm_gem_object *, struct iosys_map *); + void (*vunmap)(struct drm_gem_object *, struct iosys_map *); + int (*mmap)(struct drm_gem_object *, struct vm_area_struct *); + int (*evict)(struct drm_gem_object *); + enum drm_gem_object_status (*status)(struct drm_gem_object *); + size_t (*rss)(struct drm_gem_object *); + const struct vm_operations_struct *vm_ops; +}; + +struct drm_gem_open { + __u32 name; + __u32 handle; + __u64 size; +}; + +struct drm_gem_shmem_object { + struct drm_gem_object base; + struct page **pages; + unsigned int pages_use_count; + int madv; + struct list_head madv_list; + struct sg_table *sgt; + void *vaddr; + unsigned int vmap_use_count; + bool pages_mark_dirty_on_put: 1; + bool pages_mark_accessed_on_put: 1; + bool map_wc: 1; +}; + +struct drm_get_cap { + __u64 capability; + __u64 value; +}; + +struct drm_gpuvm; + +struct drm_gpuvm_bo; + +struct drm_gpuva { + struct drm_gpuvm *vm; + struct drm_gpuvm_bo *vm_bo; + enum drm_gpuva_flags flags; + struct { + u64 addr; + u64 range; + } va; + struct { + u64 offset; + struct drm_gem_object *obj; + struct list_head entry; + } gem; + struct { + struct rb_node node; + struct list_head entry; + u64 __subtree_last; + } rb; +}; + +struct drm_gpuva_op_map { + struct { + u64 addr; + u64 range; + } va; + struct { + u64 offset; + struct drm_gem_object *obj; + } gem; +}; + +struct drm_gpuva_op_unmap; + +struct drm_gpuva_op_remap { + struct drm_gpuva_op_map *prev; + struct drm_gpuva_op_map *next; + struct drm_gpuva_op_unmap *unmap; +}; + +struct drm_gpuva_op_unmap { + struct drm_gpuva *va; + bool keep; +}; + +struct drm_gpuva_op_prefetch { + struct drm_gpuva *va; +}; + +struct drm_gpuva_op { + struct list_head entry; + enum drm_gpuva_op_type op; + union { + struct drm_gpuva_op_map map; + struct drm_gpuva_op_remap remap; + struct drm_gpuva_op_unmap unmap; + struct drm_gpuva_op_prefetch prefetch; + }; +}; + +struct drm_gpuvm_ops; + +struct drm_gpuvm { + const char *name; + enum drm_gpuvm_flags flags; + struct drm_device *drm; + u64 mm_start; + u64 mm_range; + struct { + struct rb_root_cached tree; + struct list_head list; + } rb; + struct kref kref; + struct drm_gpuva kernel_alloc_node; + const struct drm_gpuvm_ops *ops; + struct drm_gem_object *r_obj; + struct { + struct list_head list; + struct list_head *local_list; + spinlock_t lock; + } extobj; + struct { + struct list_head list; + struct list_head *local_list; + spinlock_t lock; + } evict; +}; + +struct drm_gpuvm_bo { + struct drm_gpuvm *vm; + struct drm_gem_object *obj; + bool evicted; + struct kref kref; + struct { + struct list_head gpuva; + struct { + struct list_head gem; + struct list_head extobj; + struct list_head evict; + } entry; + } list; +}; + +struct drm_gpuvm_ops { + void (*vm_free)(struct drm_gpuvm *); + struct drm_gpuva_op * (*op_alloc)(void); + void (*op_free)(struct drm_gpuva_op *); + struct drm_gpuvm_bo * (*vm_bo_alloc)(void); + void (*vm_bo_free)(struct drm_gpuvm_bo *); + int (*vm_bo_validate)(struct drm_gpuvm_bo *, struct drm_exec *); + int (*sm_step_map)(struct drm_gpuva_op *, void *); + int (*sm_step_remap)(struct drm_gpuva_op *, void *); + int (*sm_step_unmap)(struct drm_gpuva_op *, void *); +}; + +struct i2c_device_id; + +struct i2c_board_info; + +struct i2c_driver { + unsigned int class; + int (*probe)(struct i2c_client *); + void (*remove)(struct i2c_client *); + void (*shutdown)(struct i2c_client *); + void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); + int (*command)(struct i2c_client *, unsigned int, void *); + struct device_driver driver; + const struct i2c_device_id *id_table; + int (*detect)(struct i2c_client *, struct i2c_board_info *); + const short unsigned int *address_list; + struct list_head clients; + u32 flags; +}; + +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_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; +}; + +typedef int drm_ioctl_t(struct drm_device *, void *, struct drm_file *); + +struct drm_ioctl_desc { + unsigned int cmd; + enum drm_ioctl_flags flags; + drm_ioctl_t *func; + const char *name; +}; + +struct drm_log_scanout; + +struct drm_log { + struct mutex lock; + struct drm_client_dev client; + struct console con; + bool probed; + u32 n_scanout; + struct drm_log_scanout *scanout; +}; + +struct font_desc; + +struct drm_log_scanout { + struct drm_client_buffer *buffer; + const struct font_desc *font; + u32 rows; + u32 columns; + u32 scaled_font_h; + u32 scaled_font_w; + u32 line; + u32 format; + u32 px_width; + u32 front_color; + u32 prefix_color; +}; + +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_memory_stats { + u64 shared; + u64 private; + u64 resident; + u64 purgeable; + u64 active; +}; + +struct drm_minor { + int index; + int type; + struct device *kdev; + struct drm_device *dev; + struct dentry *debugfs_symlink; + struct dentry *debugfs_root; +}; + +struct drm_mm { + void (*color_adjust)(const struct drm_mm_node *, long unsigned int, 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; + long unsigned int scan_active; +}; + +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; + long unsigned int color; + enum drm_mm_insert_mode mode; +}; + +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_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_mode_closefb { + __u32 fb_id; + __u32 pad; +}; + +struct drm_mode_fb_cmd2; + +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 *); + enum drm_mode_status (*mode_valid)(struct drm_device *, const struct drm_display_mode *); + int (*atomic_check)(struct drm_device *, struct drm_atomic_state *); + int (*atomic_commit)(struct drm_device *, struct drm_atomic_state *, bool); + struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device *); + void (*atomic_state_clear)(struct drm_atomic_state *); + void (*atomic_state_free)(struct drm_atomic_state *); +}; + +struct drm_mode_config_helper_funcs { + void (*atomic_commit_tail)(struct drm_atomic_state *); + int (*atomic_commit_setup)(struct drm_atomic_state *); +}; + +struct drm_mode_connector_set_property { + __u64 value; + __u32 prop_id; + __u32 connector_id; +}; + +struct drm_mode_create_blob { + __u64 data; + __u32 length; + __u32 blob_id; +}; + +struct drm_mode_create_dumb { + __u32 height; + __u32 width; + __u32 bpp; + __u32 flags; + __u32 handle; + __u32 pitch; + __u64 size; +}; + +struct drm_mode_create_lease { + __u64 object_ids; + __u32 object_count; + __u32 flags; + __u32 lessee_id; + __u32 fd; +}; + +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_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_mode_crtc_lut { + __u32 crtc_id; + __u32 gamma_size; + __u64 red; + __u64 green; + __u64 blue; +}; + +struct drm_mode_crtc_page_flip_target { + __u32 crtc_id; + __u32 fb_id; + __u32 flags; + __u32 sequence; + __u64 user_data; +}; + +struct drm_mode_cursor { + __u32 flags; + __u32 crtc_id; + __s32 x; + __s32 y; + __u32 width; + __u32 height; + __u32 handle; +}; + +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_destroy_blob { + __u32 blob_id; +}; + +struct drm_mode_destroy_dumb { + __u32 handle; +}; + +struct drm_mode_fb_cmd { + __u32 fb_id; + __u32 width; + __u32 height; + __u32 pitch; + __u32 bpp; + __u32 depth; + __u32 handle; +}; + +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_mode_fb_cmd232 { + u32 fb_id; + u32 width; + u32 height; + u32 pixel_format; + u32 flags; + u32 handles[4]; + u32 pitches[4]; + u32 offsets[4]; + u64 modifier[4]; +} __attribute__((packed)); + +struct drm_mode_fb_dirty_cmd { + __u32 fb_id; + __u32 flags; + __u32 color; + __u32 num_clips; + __u64 clips_ptr; +}; + +struct drm_mode_get_blob { + __u32 blob_id; + __u32 length; + __u64 data; +}; + +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 drm_mode_get_encoder { + __u32 encoder_id; + __u32 encoder_type; + __u32 crtc_id; + __u32 possible_crtcs; + __u32 possible_clones; +}; + +struct drm_mode_get_lease { + __u32 count_objects; + __u32 pad; + __u64 objects_ptr; +}; + +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_get_plane_res { + __u64 plane_id_ptr; + __u32 count_planes; +}; + +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_list_lessees { + __u32 count_lessees; + __u32 pad; + __u64 lessees_ptr; +}; + +struct drm_mode_map_dumb { + __u32 handle; + __u32 pad; + __u64 offset; +}; + +struct drm_mode_obj_get_properties { + __u64 props_ptr; + __u64 prop_values_ptr; + __u32 count_props; + __u32 obj_id; + __u32 obj_type; +}; + +struct drm_mode_obj_set_property { + __u64 value; + __u32 prop_id; + __u32 obj_id; + __u32 obj_type; +}; + +struct drm_mode_property_enum { + __u64 value; + char name[32]; +}; + +struct drm_mode_rect { + __s32 x1; + __s32 y1; + __s32 x2; + __s32 y2; +}; + +struct drm_mode_revoke_lease { + __u32 lessee_id; +}; + +struct drm_mode_rmfb_work { + struct work_struct work; + struct list_head fbs; +}; + +struct drm_mode_set { + struct drm_framebuffer *fb; + struct drm_crtc *crtc; + struct drm_display_mode *mode; + uint32_t x; + uint32_t y; + struct drm_connector **connectors; + size_t num_connectors; +}; + +struct drm_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_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_named_mode { + const char *name; + unsigned int pixel_clock_khz; + unsigned int xres; + unsigned int yres; + unsigned int flags; + unsigned int tv_mode; +}; + +struct sync_file; + +struct drm_out_fence_state { + s32 *out_fence_ptr; + struct sync_file *sync_file; + int fd; +}; + +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; + struct list_head followers; + struct mutex follower_lock; + bool prepare_prev_first; + bool prepared; + bool enabled; +}; + +struct drm_panel_follower_funcs; + +struct drm_panel_follower { + const struct drm_panel_follower_funcs *funcs; + struct list_head list; + struct drm_panel *panel; +}; + +struct drm_panel_follower_funcs { + int (*panel_prepared)(struct drm_panel_follower *); + int (*panel_unpreparing)(struct drm_panel_follower *); +}; + +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 drm_panic_line { + u32 len; + const char *txt; +}; + +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 kmsg_dump_detail; + +struct kmsg_dumper { + struct list_head list; + void (*dump)(struct kmsg_dumper *, struct kmsg_dump_detail *); + enum kmsg_dump_reason max_reason; + bool registered; +}; + +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_property *hotspot_x_property; + struct drm_property *hotspot_y_property; + struct kmsg_dumper kmsg_panic; +}; + +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_scanout_buffer; + +struct drm_plane_helper_funcs { + int (*prepare_fb)(struct drm_plane *, struct drm_plane_state *); + void (*cleanup_fb)(struct drm_plane *, struct drm_plane_state *); + int (*begin_fb_access)(struct drm_plane *, struct drm_plane_state *); + void (*end_fb_access)(struct drm_plane *, struct drm_plane_state *); + int (*atomic_check)(struct drm_plane *, struct drm_atomic_state *); + void (*atomic_update)(struct drm_plane *, struct drm_atomic_state *); + void (*atomic_enable)(struct drm_plane *, struct drm_atomic_state *); + void (*atomic_disable)(struct drm_plane *, struct drm_atomic_state *); + int (*atomic_async_check)(struct drm_plane *, struct drm_atomic_state *); + void (*atomic_async_update)(struct drm_plane *, struct drm_atomic_state *); + int (*get_scanout_buffer)(struct drm_plane *, struct drm_scanout_buffer *); + void (*panic_flush)(struct drm_plane *); +}; + +struct drm_plane_size_hint { + __u16 width; + __u16 height; +}; + +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; + int32_t hotspot_x; + int32_t hotspot_y; + 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; + bool ignore_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; + bool color_mgmt_changed: 1; +}; + +struct drm_prime_handle { + __u32 handle; + __u32 flags; + __s32 fd; +}; + +struct drm_prime_member { + struct dma_buf *dma_buf; + uint32_t handle; + struct rb_node dmabuf_rb; + struct rb_node handle_rb; +}; + +struct drm_print_iterator { + void *data; + ssize_t start; + ssize_t remain; + ssize_t offset; +}; + +struct va_format; + +struct drm_printer { + void (*printfn)(struct drm_printer *, struct va_format *); + void (*puts)(struct drm_printer *, const char *); + void *arg; + const void *origin; + const char *prefix; + struct { + unsigned int series; + unsigned int counter; + } line; + enum drm_debug_category category; +}; + +struct drm_privacy_screen_ops; + +struct drm_privacy_screen { + struct device dev; + struct mutex lock; + struct list_head list; + struct blocking_notifier_head notifier_head; + const struct drm_privacy_screen_ops *ops; + enum drm_privacy_screen_status sw_state; + enum drm_privacy_screen_status hw_state; + void *drvdata; +}; + +struct drm_privacy_screen_ops { + int (*set_sw_state)(struct drm_privacy_screen *, enum drm_privacy_screen_status); + void (*get_hw_state)(struct drm_privacy_screen *); +}; + +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_prop_enum_list { + int type; + const char *name; +}; + +struct drm_property { + struct list_head head; + struct drm_mode_object base; + uint32_t flags; + char name[32]; + uint32_t num_values; + uint64_t *values; + struct drm_device *dev; + struct list_head enum_list; +}; + +struct 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_property_enum { + uint64_t value; + struct list_head head; + char name[32]; +}; + +struct drm_scanout_buffer { + const struct drm_format_info *format; + struct iosys_map map[4]; + unsigned int width; + unsigned int height; + unsigned int pitch[4]; + void (*set_pixel)(struct drm_scanout_buffer *, unsigned int, unsigned int, u32); +}; + +struct ewma_psr_time { + long unsigned int internal; +}; + +struct drm_self_refresh_data { + struct drm_crtc *crtc; + struct delayed_work entry_work; + struct mutex avg_mutex; + struct ewma_psr_time entry_avg_ms; + struct ewma_psr_time exit_avg_ms; +}; + +struct drm_set_client_cap { + __u64 capability; + __u64 value; +}; + +struct drm_set_client_name { + __u64 name_len; + __u64 name; +}; + +struct drm_set_version { + int drm_di_major; + int drm_di_minor; + int drm_dd_major; + int drm_dd_minor; +}; + +struct drm_shadow_plane_state { + struct drm_plane_state base; + struct drm_format_conv_state fmtcnv_state; + 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 drm_stats { + long unsigned int count; + struct { + long unsigned int value; + enum drm_stat_type type; + } data[15]; +}; + +struct drm_stats32 { + u32 count; + struct { + u32 value; + enum drm_stat_type type; + } data[15]; +}; + +typedef struct drm_stats32 drm_stats32_t; + +struct drm_syncobj { + struct kref refcount; + struct dma_fence *fence; + struct list_head cb_list; + struct list_head ev_fd_list; + spinlock_t lock; + struct file *file; +}; + +struct drm_syncobj_array { + __u64 handles; + __u32 count_handles; + __u32 pad; +}; + +struct drm_syncobj_create { + __u32 handle; + __u32 flags; +}; + +struct drm_syncobj_destroy { + __u32 handle; + __u32 pad; +}; + +struct drm_syncobj_eventfd { + __u32 handle; + __u32 flags; + __u64 point; + __s32 fd; + __u32 pad; +}; + +struct drm_syncobj_handle { + __u32 handle; + __u32 flags; + __s32 fd; + __u32 pad; +}; + +struct drm_syncobj_timeline_array { + __u64 handles; + __u64 points; + __u32 count_handles; + __u32 flags; +}; + +struct drm_syncobj_timeline_wait { + __u64 handles; + __u64 points; + __s64 timeout_nsec; + __u32 count_handles; + __u32 flags; + __u32 first_signaled; + __u32 pad; + __u64 deadline_nsec; +}; + +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; + __u64 deadline_nsec; +}; + +struct drm_tile_group { + struct kref refcount; + struct drm_device *dev; + int id; + u8 group_data[8]; +}; + +struct drm_unique { + __kernel_size_t unique_len; + char *unique; +}; + +struct drm_unique32 { + u32 unique_len; + u32 unique; +}; + +typedef struct drm_unique32 drm_unique32_t; + +struct drm_vblank_crtc_config { + int offdelay_ms; + bool disable_immediate; +}; + +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; + struct drm_vblank_crtc_config config; + bool enabled; + struct kthread_worker *worker; + struct list_head pending_work; + wait_queue_head_t work_wait_queue; +}; + +struct drm_vblank_work { + struct kthread_work base; + struct drm_vblank_crtc *vblank; + u64 count; + int cancelling; + struct list_head node; +}; + +struct drm_version { + int version_major; + int version_minor; + int version_patchlevel; + __kernel_size_t name_len; + char *name; + __kernel_size_t date_len; + char *date; + __kernel_size_t desc_len; + char *desc; +}; + +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_vma_offset_file { + struct rb_node vm_rb; + struct drm_file *vm_tag; + long unsigned int vm_count; +}; + +struct drm_vma_offset_manager { + rwlock_t vm_lock; + struct drm_mm vm_addr_space_mm; +}; + +struct drm_wait_vblank_request { + enum drm_vblank_seq_type type; + unsigned int sequence; + long unsigned int signal; +}; + +struct drm_wait_vblank_reply { + enum drm_vblank_seq_type type; + unsigned int sequence; + long int tval_sec; + long int tval_usec; +}; + +union drm_wait_vblank { + struct drm_wait_vblank_request request; + struct drm_wait_vblank_reply reply; +}; + +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_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; + long unsigned int fence_seqno; + char timeline_name[32]; +}; + +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; +}; + +typedef void (*drmres_release_t)(struct drm_device *, void *); + +struct drmres_node { + struct list_head entry; + drmres_release_t release; + const char *name; + size_t size; +}; + +struct drmres { + struct drmres_node node; + u8 data[0]; +}; + +struct drop_reason_list { + const char * const *reasons; + size_t n_reasons; +}; + +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 pci_driver; + +struct pci_device_id; + +struct drv_dev_and_id { + struct pci_driver *drv; + struct pci_dev *dev; + const struct pci_device_id *id; +}; + +struct dsa_bridge { + struct net_device *dev; + unsigned int num; + bool tx_fwd_offload; + refcount_t refcount; +}; + +struct dsa_chip_data { + struct device *host_dev; + int sw_addr; + struct device *netdev[12]; + int eeprom_len; + struct device_node *of_node; + char *port_names[12]; + struct device_node *port_dn[12]; + s8 rtable[4]; +}; + +struct dsa_lag { + struct net_device *dev; + unsigned int id; + struct mutex fdb_lock; + struct list_head fdbs; + refcount_t refcount; +}; + +struct dsa_port; + +struct dsa_db { + enum dsa_db_type type; + union { + const struct dsa_port *dp; + struct dsa_lag lag; + struct dsa_bridge bridge; + }; +}; + +struct dsa_switch; + +struct dsa_device_ops { + struct sk_buff * (*xmit)(struct sk_buff *, struct net_device *); + struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); + void (*flow_dissect)(const struct sk_buff *, __be16 *, int *); + int (*connect)(struct dsa_switch *); + void (*disconnect)(struct dsa_switch *); + unsigned int needed_headroom; + unsigned int needed_tailroom; + const char *name; + enum dsa_tag_protocol proto; + bool promisc_on_conduit; +}; + +struct dsa_mall_mirror_tc_entry { + u8 to_local_port; + bool ingress; +}; + +struct dsa_mall_policer_tc_entry { + u32 burst; + u64 rate_bytes_per_sec; +}; + +struct dsa_platform_data { + struct device *netdev; + struct net_device *of_netdev; + int nr_chips; + struct dsa_chip_data *chip; +}; + +struct phylink; + +struct phylink_link_state; + +struct phylink_config { + struct device *dev; + enum phylink_op_type type; + bool poll_fixed_state; + bool mac_managed_pm; + bool mac_requires_rxc; + bool default_an_inband; + bool eee_rx_clk_stop_enable; + void (*get_fixed_state)(struct phylink_config *, struct phylink_link_state *); + long unsigned int supported_interfaces[1]; + long unsigned int lpi_interfaces[1]; + long unsigned int mac_capabilities; + long unsigned int lpi_capabilities; + u32 lpi_timer_default; + bool eee_enabled_default; +}; + +struct dsa_switch_tree; + +struct ethtool_ops; + +struct dsa_port { + union { + struct net_device *conduit; + struct net_device *user; + }; + const struct dsa_device_ops *tag_ops; + struct dsa_switch_tree *dst; + struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); + struct dsa_switch *ds; + unsigned int index; + enum { + DSA_PORT_TYPE_UNUSED = 0, + DSA_PORT_TYPE_CPU = 1, + DSA_PORT_TYPE_DSA = 2, + DSA_PORT_TYPE_USER = 3, + } type; + const char *name; + struct dsa_port *cpu_dp; + u8 mac[6]; + u8 stp_state; + u8 vlan_filtering: 1; + u8 learning: 1; + u8 lag_tx_enabled: 1; + u8 conduit_admin_up: 1; + u8 conduit_oper_up: 1; + u8 cpu_port_in_lag: 1; + u8 setup: 1; + struct device_node *dn; + unsigned int ageing_time; + struct dsa_bridge *bridge; + struct devlink_port devlink_port; + struct phylink *pl; + struct phylink_config pl_config; + struct dsa_lag *lag; + struct net_device *hsr_dev; + struct list_head list; + const struct ethtool_ops *orig_ethtool_ops; + struct mutex addr_lists_lock; + struct list_head fdbs; + struct list_head mdbs; + struct mutex vlans_lock; + union { + struct list_head vlans; + struct list_head user_vlans; + }; +}; + +struct kernel_hwtstamp_config; + +struct dsa_stubs { + int (*conduit_hwtstamp_validate)(struct net_device *, const struct kernel_hwtstamp_config *, struct netlink_ext_ack *); +}; + +struct dsa_8021q_context; + +struct dsa_switch_ops; + +struct phylink_mac_ops; + +struct mii_bus; + +struct dsa_switch { + struct device *dev; + struct dsa_switch_tree *dst; + unsigned int index; + u32 setup: 1; + u32 vlan_filtering_is_global: 1; + u32 needs_standalone_vlan_filtering: 1; + u32 configure_vlan_while_not_filtering: 1; + u32 untag_bridge_pvid: 1; + u32 untag_vlan_aware_bridge_pvid: 1; + u32 assisted_learning_on_cpu_port: 1; + u32 vlan_filtering: 1; + u32 mtu_enforcement_ingress: 1; + u32 fdb_isolation: 1; + u32 dscp_prio_mapping_is_global: 1; + struct notifier_block nb; + void *priv; + void *tagger_data; + struct dsa_chip_data *cd; + const struct dsa_switch_ops *ops; + const struct phylink_mac_ops *phylink_mac_ops; + u32 phys_mii_mask; + struct mii_bus *user_mii_bus; + unsigned int ageing_time_min; + unsigned int ageing_time_max; + struct dsa_8021q_context *tag_8021q_ctx; + struct devlink *devlink; + unsigned int num_tx_queues; + unsigned int num_lag_ids; + unsigned int max_num_bridges; + unsigned int num_ports; +}; + +typedef int dsa_fdb_dump_cb_t(const unsigned char *, u16, bool, void *); + +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_ts_stats; + +struct rtnl_link_stats64; + +struct ethtool_pause_stats; + +struct ethtool_test; + +struct ethtool_wolinfo; + +struct kernel_ethtool_ts_info; + +struct ethtool_mm_state; + +struct ethtool_mm_cfg; + +struct ethtool_mm_stats; + +struct phy_device; + +struct ethtool_keee; + +struct ethtool_eeprom; + +struct ethtool_regs; + +struct netdev_notifier_changeupper_info; + +struct switchdev_mst_state; + +struct switchdev_brport_flags; + +struct switchdev_obj_port_vlan; + +struct switchdev_vlan_msti; + +struct switchdev_obj_port_mdb; + +struct ethtool_rxnfc; + +struct flow_cls_offload; + +struct netdev_lag_upper_info; + +struct ifreq; + +struct switchdev_obj_mrp; + +struct switchdev_obj_ring_role_mrp; + +struct dsa_switch_ops { + enum dsa_tag_protocol (*get_tag_protocol)(struct dsa_switch *, int, enum dsa_tag_protocol); + int (*change_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); + int (*connect_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); + int (*port_change_conduit)(struct dsa_switch *, int, struct net_device *, struct netlink_ext_ack *); + int (*setup)(struct dsa_switch *); + void (*teardown)(struct dsa_switch *); + int (*port_setup)(struct dsa_switch *, int); + void (*port_teardown)(struct dsa_switch *, int); + u32 (*get_phy_flags)(struct dsa_switch *, int); + int (*phy_read)(struct dsa_switch *, int, int); + int (*phy_write)(struct dsa_switch *, int, int, u16); + void (*phylink_get_caps)(struct dsa_switch *, int, struct phylink_config *); + void (*phylink_fixed_state)(struct dsa_switch *, int, struct phylink_link_state *); + void (*get_strings)(struct dsa_switch *, int, u32, uint8_t *); + void (*get_ethtool_stats)(struct dsa_switch *, int, uint64_t *); + int (*get_sset_count)(struct dsa_switch *, int, int); + void (*get_ethtool_phy_stats)(struct dsa_switch *, int, uint64_t *); + void (*get_eth_phy_stats)(struct dsa_switch *, int, struct ethtool_eth_phy_stats *); + void (*get_eth_mac_stats)(struct dsa_switch *, int, struct ethtool_eth_mac_stats *); + void (*get_eth_ctrl_stats)(struct dsa_switch *, int, struct ethtool_eth_ctrl_stats *); + void (*get_rmon_stats)(struct dsa_switch *, int, struct ethtool_rmon_stats *, const struct ethtool_rmon_hist_range **); + void (*get_ts_stats)(struct dsa_switch *, int, struct ethtool_ts_stats *); + void (*get_stats64)(struct dsa_switch *, int, struct rtnl_link_stats64 *); + void (*get_pause_stats)(struct dsa_switch *, int, struct ethtool_pause_stats *); + void (*self_test)(struct dsa_switch *, int, struct ethtool_test *, u64 *); + void (*get_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); + int (*set_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); + int (*get_ts_info)(struct dsa_switch *, int, struct kernel_ethtool_ts_info *); + int (*get_mm)(struct dsa_switch *, int, struct ethtool_mm_state *); + int (*set_mm)(struct dsa_switch *, int, struct ethtool_mm_cfg *, struct netlink_ext_ack *); + void (*get_mm_stats)(struct dsa_switch *, int, struct ethtool_mm_stats *); + int (*port_get_default_prio)(struct dsa_switch *, int); + int (*port_set_default_prio)(struct dsa_switch *, int, u8); + int (*port_get_dscp_prio)(struct dsa_switch *, int, u8); + int (*port_add_dscp_prio)(struct dsa_switch *, int, u8, u8); + int (*port_del_dscp_prio)(struct dsa_switch *, int, u8, u8); + int (*port_set_apptrust)(struct dsa_switch *, int, const u8 *, int); + int (*port_get_apptrust)(struct dsa_switch *, int, u8 *, int *); + int (*suspend)(struct dsa_switch *); + int (*resume)(struct dsa_switch *); + int (*port_enable)(struct dsa_switch *, int, struct phy_device *); + void (*port_disable)(struct dsa_switch *, int); + int (*port_set_mac_address)(struct dsa_switch *, int, const unsigned char *); + struct dsa_port * (*preferred_default_local_cpu_port)(struct dsa_switch *); + bool (*support_eee)(struct dsa_switch *, int); + int (*set_mac_eee)(struct dsa_switch *, int, struct ethtool_keee *); + int (*get_eeprom_len)(struct dsa_switch *); + int (*get_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); + int (*set_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); + int (*get_regs_len)(struct dsa_switch *, int); + void (*get_regs)(struct dsa_switch *, int, struct ethtool_regs *, void *); + int (*port_prechangeupper)(struct dsa_switch *, int, struct netdev_notifier_changeupper_info *); + int (*set_ageing_time)(struct dsa_switch *, unsigned int); + int (*port_bridge_join)(struct dsa_switch *, int, struct dsa_bridge, bool *, struct netlink_ext_ack *); + void (*port_bridge_leave)(struct dsa_switch *, int, struct dsa_bridge); + void (*port_stp_state_set)(struct dsa_switch *, int, u8); + int (*port_mst_state_set)(struct dsa_switch *, int, const struct switchdev_mst_state *); + void (*port_fast_age)(struct dsa_switch *, int); + int (*port_vlan_fast_age)(struct dsa_switch *, int, u16); + int (*port_pre_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); + int (*port_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); + void (*port_set_host_flood)(struct dsa_switch *, int, bool, bool); + int (*port_vlan_filtering)(struct dsa_switch *, int, bool, struct netlink_ext_ack *); + int (*port_vlan_add)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *, struct netlink_ext_ack *); + int (*port_vlan_del)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *); + int (*vlan_msti_set)(struct dsa_switch *, struct dsa_bridge, const struct switchdev_vlan_msti *); + int (*port_fdb_add)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); + int (*port_fdb_del)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); + int (*port_fdb_dump)(struct dsa_switch *, int, dsa_fdb_dump_cb_t *, void *); + int (*lag_fdb_add)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); + int (*lag_fdb_del)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); + int (*port_mdb_add)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); + int (*port_mdb_del)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); + int (*get_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *, u32 *); + int (*set_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *); + int (*cls_flower_add)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*cls_flower_del)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*cls_flower_stats)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*port_mirror_add)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *, bool, struct netlink_ext_ack *); + void (*port_mirror_del)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *); + int (*port_policer_add)(struct dsa_switch *, int, struct dsa_mall_policer_tc_entry *); + void (*port_policer_del)(struct dsa_switch *, int); + int (*port_setup_tc)(struct dsa_switch *, int, enum tc_setup_type, void *); + int (*crosschip_bridge_join)(struct dsa_switch *, int, int, int, struct dsa_bridge, struct netlink_ext_ack *); + void (*crosschip_bridge_leave)(struct dsa_switch *, int, int, int, struct dsa_bridge); + int (*crosschip_lag_change)(struct dsa_switch *, int, int); + int (*crosschip_lag_join)(struct dsa_switch *, int, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); + int (*crosschip_lag_leave)(struct dsa_switch *, int, int, struct dsa_lag); + int (*port_hwtstamp_get)(struct dsa_switch *, int, struct ifreq *); + int (*port_hwtstamp_set)(struct dsa_switch *, int, struct ifreq *); + void (*port_txtstamp)(struct dsa_switch *, int, struct sk_buff *); + bool (*port_rxtstamp)(struct dsa_switch *, int, struct sk_buff *, unsigned int); + int (*devlink_param_get)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); + int (*devlink_param_set)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); + int (*devlink_info_get)(struct dsa_switch *, struct devlink_info_req *, struct netlink_ext_ack *); + int (*devlink_sb_pool_get)(struct dsa_switch *, unsigned int, u16, struct devlink_sb_pool_info *); + int (*devlink_sb_pool_set)(struct dsa_switch *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *); + int (*devlink_sb_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *); + int (*devlink_sb_port_pool_set)(struct dsa_switch *, int, unsigned int, u16, u32, struct netlink_ext_ack *); + int (*devlink_sb_tc_pool_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *); + int (*devlink_sb_tc_pool_bind_set)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *); + int (*devlink_sb_occ_snapshot)(struct dsa_switch *, unsigned int); + int (*devlink_sb_occ_max_clear)(struct dsa_switch *, unsigned int); + int (*devlink_sb_occ_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *, u32 *); + int (*devlink_sb_occ_tc_port_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *); + int (*port_change_mtu)(struct dsa_switch *, int, int); + int (*port_max_mtu)(struct dsa_switch *, int); + int (*port_lag_change)(struct dsa_switch *, int); + int (*port_lag_join)(struct dsa_switch *, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); + int (*port_lag_leave)(struct dsa_switch *, int, struct dsa_lag); + int (*port_hsr_join)(struct dsa_switch *, int, struct net_device *, struct netlink_ext_ack *); + int (*port_hsr_leave)(struct dsa_switch *, int, struct net_device *); + int (*port_mrp_add)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); + int (*port_mrp_del)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); + int (*port_mrp_add_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); + int (*port_mrp_del_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); + int (*tag_8021q_vlan_add)(struct dsa_switch *, int, u16, u16); + int (*tag_8021q_vlan_del)(struct dsa_switch *, int, u16); + void (*conduit_state_change)(struct dsa_switch *, const struct net_device *, bool); +}; + +struct raw_notifier_head { + struct notifier_block *head; +}; + +struct dsa_switch_tree { + struct list_head list; + struct list_head ports; + struct raw_notifier_head nh; + unsigned int index; + struct kref refcount; + struct dsa_lag **lags; + const struct dsa_device_ops *tag_ops; + enum dsa_tag_protocol default_proto; + bool setup; + struct dsa_platform_data *pd; + struct list_head rtable; + unsigned int lags_len; + unsigned int last_switch; +}; + +struct dsm_output { + u16 status; + u8 function_specific_err; + u8 vendor_specific_err; + u32 state; +}; + +struct dst_cache_pcpu; + +struct dst_cache { + struct dst_cache_pcpu *cache; + long unsigned int reset_ts; +}; + +struct dst_cache_pcpu { + long unsigned int refresh_ts; + struct dst_entry *dst; + u32 cookie; + union { + struct in_addr in_saddr; + struct in6_addr in6_saddr; + }; +}; + +struct dst_ops; + +struct xfrm_state; + +struct uncached_list; + +struct lwtunnel_state; + +struct dst_entry { + struct net_device *dev; + struct dst_ops *ops; + long unsigned int _metrics; + long unsigned int expires; + struct xfrm_state *xfrm; + int (*input)(struct sk_buff *); + int (*output)(struct net *, struct sock *, struct sk_buff *); + short unsigned int flags; + short int obsolete; + short unsigned int header_len; + short unsigned int trailer_len; + rcuref_t __rcuref; + int __use; + long unsigned int lastuse; + struct callback_head callback_head; + short int error; + short int __pad; + __u32 tclassid; + netdevice_tracker dev_tracker; + struct list_head rt_uncached; + struct uncached_list *rt_uncached_list; + struct lwtunnel_state *lwtstate; +}; + +struct dst_metrics { + u32 metrics[17]; + refcount_t refcnt; +}; + +struct neighbour; + +struct dst_ops { + short unsigned int 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 *, long unsigned int); + void (*destroy)(struct dst_entry *); + void (*ifdown)(struct dst_entry *, struct net_device *); + void (*negative_advice)(struct sock *, 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 dw2_desc { + u32 field; + u32 addr; +}; + +struct virt_dma_desc { + struct dma_async_tx_descriptor tx; + struct dmaengine_result tx_result; + struct list_head node; +}; + +struct ldma_chan; + +struct dw2_desc_sw { + struct virt_dma_desc vdesc; + struct ldma_chan *chan; + dma_addr_t desc_phys; + size_t desc_cnt; + size_t size; + struct dw2_desc *desc_hw; +}; + +struct uart_8250_port; + +struct uart_8250_dma { + int (*tx_dma)(struct uart_8250_port *); + int (*rx_dma)(struct uart_8250_port *); + void (*prepare_tx_dma)(struct uart_8250_port *); + void (*prepare_rx_dma)(struct uart_8250_port *); + dma_filter_fn fn; + void *rx_param; + void *tx_param; + struct dma_slave_config rxconf; + struct dma_slave_config txconf; + struct dma_chan *rxchan; + struct dma_chan *txchan; + phys_addr_t rx_dma_addr; + phys_addr_t tx_dma_addr; + dma_addr_t rx_addr; + dma_addr_t tx_addr; + dma_cookie_t rx_cookie; + dma_cookie_t tx_cookie; + void *rx_buf; + size_t rx_size; + size_t tx_size; + unsigned char tx_running; + unsigned char tx_err; + unsigned char rx_running; +}; + +struct dw8250_port_data { + int line; + struct uart_8250_dma dma; + u32 cpr_value; + u8 dlf_size; + bool hw_rs485_support; +}; + +struct dw_edma_region { + u64 paddr; + union { + void *mem; + void *io; + } vaddr; + size_t sz; +}; + +struct dw_edma; + +struct dw_edma_plat_ops; + +struct dw_edma_chip { + struct device *dev; + int nr_irqs; + const struct dw_edma_plat_ops *ops; + u32 flags; + void *reg_base; + u16 ll_wr_cnt; + u16 ll_rd_cnt; + struct dw_edma_region ll_region_wr[8]; + struct dw_edma_region ll_region_rd[8]; + struct dw_edma_region dt_region_wr[8]; + struct dw_edma_region dt_region_rd[8]; + enum dw_edma_map_format mf; + struct dw_edma *dw; +}; + +struct dw_edma_plat_ops { + int (*irq_vector)(struct device *, unsigned int); + u64 (*pci_address)(struct device *, phys_addr_t); +}; + +struct rt_mutex_base { + raw_spinlock_t wait_lock; + struct rb_root_cached waiters; + struct task_struct *owner; +}; + +struct rt_mutex { + struct rt_mutex_base rtmutex; +}; + +struct i2c_algorithm; + +struct i2c_lock_operations; + +struct i2c_bus_recovery_info; + +struct i2c_adapter_quirks; + +struct i2c_adapter { + struct module *owner; + unsigned int class; + const struct i2c_algorithm *algo; + void *algo_data; + const struct i2c_lock_operations *lock_ops; + struct rt_mutex bus_lock; + struct rt_mutex mux_lock; + int timeout; + int retries; + struct device dev; + long unsigned int locked_flags; + int nr; + char name[48]; + struct completion dev_released; + struct mutex userspace_clients_lock; + struct list_head userspace_clients; + struct i2c_bus_recovery_info *bus_recovery_info; + const struct i2c_adapter_quirks *quirks; + struct irq_domain *host_notify_domain; + struct regulator *bus_regulator; + struct dentry *debugfs; + long unsigned int addrs_in_instantiation[2]; +}; + +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_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 reset_control; + +struct i2c_msg; + +struct dw_i2c_dev { + struct device *dev; + struct regmap *map; + struct regmap *sysmap; + void *base; + void *ext; + struct completion cmd_complete; + struct clk *clk; + struct clk *pclk; + struct reset_control *rst; + struct i2c_client *slave; + u32 (*get_clk_rate_khz)(struct dw_i2c_dev *); + int cmd_err; + struct i2c_msg *msgs; + int msgs_num; + int msg_write_idx; + u32 tx_buf_len; + u8 *tx_buf; + int msg_read_idx; + u32 rx_buf_len; + u8 *rx_buf; + int msg_err; + unsigned int status; + unsigned int abort_source; + unsigned int sw_mask; + int irq; + u32 flags; + struct i2c_adapter adapter; + u32 functionality; + u32 master_cfg; + u32 slave_cfg; + unsigned int tx_fifo_depth; + unsigned int rx_fifo_depth; + int rx_outstanding; + struct i2c_timings timings; + u32 sda_hold_time; + u16 ss_hcnt; + u16 ss_lcnt; + u16 fs_hcnt; + u16 fs_lcnt; + u16 fp_hcnt; + u16 fp_lcnt; + u16 hs_hcnt; + u16 hs_lcnt; + int (*acquire_lock)(void); + void (*release_lock)(void); + int semaphore_idx; + bool shared_with_punit; + int (*init)(struct dw_i2c_dev *); + int (*set_sda_hold_time)(struct dw_i2c_dev *); + int mode; + struct i2c_bus_recovery_info rinfo; + u32 bus_capacitance_pF; + bool clk_freq_optimized; +}; + +struct dw_pcie_host_ops; + +struct pci_host_bridge; + +struct dw_pcie_rp { + bool has_msi_ctrl: 1; + bool cfg0_io_shared: 1; + u64 cfg0_base; + void *va_cfg0_base; + u32 cfg0_size; + resource_size_t io_base; + phys_addr_t io_bus_addr; + u32 io_size; + int irq; + const struct dw_pcie_host_ops *ops; + int msi_irq[8]; + struct irq_domain *irq_domain; + struct irq_domain *msi_domain; + dma_addr_t msi_data; + struct irq_chip *msi_irq_chip; + u32 num_vectors; + u32 irq_mask[8]; + struct pci_host_bridge *bridge; + raw_spinlock_t lock; + long unsigned int msi_irq_in_use[4]; + bool use_atu_msg; + int msg_atu_index; + struct resource *msg_res; + bool use_linkup_irq; +}; + +struct pci_epc; + +struct dw_pcie_ep_ops; + +struct pci_epf_bar; + +struct dw_pcie_ep { + struct pci_epc *epc; + struct list_head func_list; + const struct dw_pcie_ep_ops *ops; + phys_addr_t phys_base; + size_t addr_size; + size_t page_size; + u8 bar_to_atu[6]; + phys_addr_t *outbound_addr; + long unsigned int *ib_window_map; + long unsigned int *ob_window_map; + void *msi_mem; + phys_addr_t msi_mem_phys; + struct pci_epf_bar *epf_bar[6]; +}; + +struct reset_control_bulk_data { + const char *id; + struct reset_control *rstc; +}; + +struct dw_pcie_ops; + +struct dw_pcie { + struct device *dev; + void *dbi_base; + resource_size_t dbi_phys_addr; + void *dbi_base2; + void *atu_base; + resource_size_t atu_phys_addr; + size_t atu_size; + u32 num_ib_windows; + u32 num_ob_windows; + u32 region_align; + u64 region_limit; + struct dw_pcie_rp pp; + struct dw_pcie_ep ep; + const struct dw_pcie_ops *ops; + u32 version; + u32 type; + long unsigned int caps; + int num_lanes; + int max_link_speed; + u8 n_fts[2]; + struct dw_edma_chip edma; + struct clk_bulk_data app_clks[3]; + struct clk_bulk_data core_clks[4]; + struct reset_control_bulk_data app_rsts[3]; + struct reset_control_bulk_data core_rsts[7]; + struct gpio_desc *pe_rst; + bool suspended; +}; + +struct dw_pcie_ep_func { + struct list_head list; + u8 func_no; + u8 msi_cap; + u8 msix_cap; +}; + +struct pci_epc_features; + +struct dw_pcie_ep_ops { + void (*pre_init)(struct dw_pcie_ep *); + void (*init)(struct dw_pcie_ep *); + int (*raise_irq)(struct dw_pcie_ep *, u8, unsigned int, u16); + const struct pci_epc_features * (*get_features)(struct dw_pcie_ep *); + unsigned int (*get_dbi_offset)(struct dw_pcie_ep *, u8); + unsigned int (*get_dbi2_offset)(struct dw_pcie_ep *, u8); +}; + +struct dw_pcie_host_ops { + int (*init)(struct dw_pcie_rp *); + void (*deinit)(struct dw_pcie_rp *); + void (*post_init)(struct dw_pcie_rp *); + int (*msi_init)(struct dw_pcie_rp *); + void (*pme_turn_off)(struct dw_pcie_rp *); +}; + +struct dw_pcie_ob_atu_cfg { + int index; + int type; + u8 func_no; + u8 code; + u8 routing; + u64 cpu_addr; + u64 pci_addr; + u64 size; +}; + +struct dw_pcie_ops { + u64 (*cpu_addr_fixup)(struct dw_pcie *, u64); + u32 (*read_dbi)(struct dw_pcie *, void *, u32, size_t); + void (*write_dbi)(struct dw_pcie *, void *, u32, size_t, u32); + void (*write_dbi2)(struct dw_pcie *, void *, u32, size_t, u32); + int (*link_up)(struct dw_pcie *); + enum dw_pcie_ltssm (*get_ltssm)(struct dw_pcie *); + int (*start_link)(struct dw_pcie *); + void (*stop_link)(struct dw_pcie *); +}; + +struct dw_plat_pcie { + struct dw_pcie *pci; + enum dw_pcie_device_mode mode; +}; + +struct dw_plat_pcie_of_data { + enum dw_pcie_device_mode mode; +}; + +struct usb_otg_caps { + u16 otg_rev; + bool hnp_support; + bool srp_support; + bool adp_support; +}; + +struct dwc2_core_params { + struct usb_otg_caps otg_caps; + u8 phy_type; + u8 speed; + u8 phy_utmi_width; + bool eusb2_disc; + bool phy_ulpi_ddr; + bool phy_ulpi_ext_vbus; + bool enable_dynamic_fifo; + bool en_multiple_tx_fifo; + bool i2c_enable; + bool acg_enable; + bool ulpi_fs_ls; + bool ts_dline; + bool reload_ctl; + bool uframe_sched; + bool external_id_pin_ctl; + int power_down; + bool no_clock_gating; + bool lpm; + bool lpm_clock_gating; + bool besl; + bool hird_threshold_en; + bool service_interval; + u8 hird_threshold; + bool activate_stm_fs_transceiver; + bool activate_stm_id_vb_detection; + bool activate_ingenic_overcurrent_detection; + bool ipg_isoc_en; + u16 max_packet_count; + u32 max_transfer_size; + u32 ahbcfg; + u32 ref_clk_per; + u16 sof_cnt_wkup_alert; + bool host_dma; + bool dma_desc_enable; + bool dma_desc_fs_enable; + bool host_support_fs_ls_low_power; + bool host_ls_low_power_phy_clk; + bool oc_disable; + u8 host_channels; + u16 host_rx_fifo_size; + u16 host_nperio_tx_fifo_size; + u16 host_perio_tx_fifo_size; + bool g_dma; + bool g_dma_desc; + u32 g_rx_fifo_size; + u32 g_np_tx_fifo_size; + u32 g_tx_fifo_size[16]; + bool change_speed_quirk; +}; + +struct dwc2_dma_desc { + u32 status; + u32 buf; +}; + +struct dwc2_dregs_backup { + u32 dcfg; + u32 dctl; + u32 daintmsk; + u32 diepmsk; + u32 doepmsk; + u32 diepctl[16]; + u32 dieptsiz[16]; + u32 diepdma[16]; + u32 doepctl[16]; + u32 doeptsiz[16]; + u32 doepdma[16]; + u32 dtxfsiz[16]; + bool valid; +}; + +struct dwc2_gregs_backup { + u32 gotgctl; + u32 gintmsk; + u32 gahbcfg; + u32 gusbcfg; + u32 grxfsiz; + u32 gnptxfsiz; + u32 gi2cctl; + u32 glpmcfg; + u32 pcgcctl; + u32 pcgcctl1; + u32 gdfifocfg; + u32 gpwrdn; + bool valid; +}; + +union dwc2_hcd_internal_flags { + u32 d32; + struct { + unsigned int port_connect_status_change: 1; + unsigned int port_connect_status: 1; + unsigned int port_reset_change: 1; + unsigned int port_enable_change: 1; + unsigned int port_suspend_change: 1; + unsigned int port_over_current_change: 1; + unsigned int port_l1_change: 1; + unsigned int reserved: 25; + } b; +}; + +struct dwc2_hcd_iso_packet_desc { + u32 offset; + u32 length; + u32 actual_length; + u32 status; +}; + +struct dwc2_hcd_pipe_info { + u8 dev_addr; + u8 ep_num; + u8 pipe_type; + u8 pipe_dir; + u16 maxp; + u16 maxp_mult; +}; + +struct dwc2_qtd; + +struct dwc2_hcd_urb { + void *priv; + struct dwc2_qtd *qtd; + void *buf; + dma_addr_t dma; + void *setup_packet; + dma_addr_t setup_dma; + u32 length; + u32 actual_length; + u32 status; + u32 error_count; + u32 packet_count; + u32 flags; + u16 interval; + struct dwc2_hcd_pipe_info pipe_info; + struct dwc2_hcd_iso_packet_desc iso_descs[0]; +}; + +struct dwc2_qh; + +struct dwc2_host_chan { + u8 hc_num; + unsigned int dev_addr: 7; + unsigned int ep_num: 4; + unsigned int ep_is_in: 1; + unsigned int speed: 4; + unsigned int ep_type: 2; + int: 6; + unsigned int max_packet: 11; + unsigned int data_pid_start: 2; + unsigned int multi_count: 2; + u8 *xfer_buf; + dma_addr_t xfer_dma; + dma_addr_t align_buf; + u32 xfer_len; + u32 xfer_count; + u16 start_pkt_count; + u8 xfer_started; + u8 do_ping; + u8 error_state; + u8 halt_on_queue; + u8 halt_pending; + u8 do_split; + u8 complete_split; + u8 hub_addr; + u8 hub_port; + u8 xact_pos; + u8 requests; + u8 schinfo; + u16 ntd; + enum dwc2_halt_status halt_status; + u32 hcint; + struct dwc2_qh *qh; + struct list_head hc_list_entry; + dma_addr_t desc_list_addr; + u32 desc_list_sz; + struct list_head split_order_list_entry; +}; + +struct dwc2_hregs_backup { + u32 hcfg; + u32 hflbaddr; + u32 haintmsk; + u32 hcchar[16]; + u32 hcsplt[16]; + u32 hcintmsk[16]; + u32 hctsiz[16]; + u32 hcidma[16]; + u32 hcidmab[16]; + u32 hprt0; + u32 hfir; + u32 hptxfsiz; + bool valid; +}; + +struct dwc2_hs_transfer_time { + u32 start_schedule_us; + u16 duration_us; +}; + +struct dwc2_hw_params { + unsigned int op_mode: 3; + unsigned int arch: 2; + unsigned int dma_desc_enable: 1; + unsigned int enable_dynamic_fifo: 1; + unsigned int en_multiple_tx_fifo: 1; + unsigned int rx_fifo_size: 16; + int: 8; + unsigned int host_nperio_tx_fifo_size: 16; + unsigned int dev_nperio_tx_fifo_size: 16; + unsigned int host_perio_tx_fifo_size: 16; + unsigned int nperio_tx_q_depth: 3; + unsigned int host_perio_tx_q_depth: 3; + unsigned int dev_token_q_depth: 5; + int: 5; + unsigned int max_transfer_size: 26; + long: 6; + unsigned int max_packet_count: 11; + unsigned int host_channels: 5; + unsigned int hs_phy_type: 2; + unsigned int fs_phy_type: 2; + unsigned int i2c_enable: 1; + unsigned int acg_enable: 1; + unsigned int num_dev_ep: 4; + unsigned int num_dev_in_eps: 4; + int: 2; + unsigned int num_dev_perio_in_ep: 4; + unsigned int total_fifo_size: 16; + unsigned int power_optimized: 1; + unsigned int hibernation: 1; + unsigned int utmi_phy_data_width: 2; + unsigned int lpm_mode: 1; + unsigned int ipg_isoc_en: 1; + unsigned int service_interval_mode: 1; + u32 snpsid; + u32 dev_ep_dirs; + u32 g_tx_fifo_size[16]; +}; + +struct regulator_bulk_data { + const char *supply; + struct regulator *consumer; + int init_load_uA; + int ret; +}; + +struct usb_role_switch; + +struct phy; + +struct usb_phy; + +struct dwc2_hsotg_plat; + +struct dwc2_hsotg { + struct device *dev; + void *regs; + struct dwc2_hw_params hw_params; + struct dwc2_core_params params; + enum usb_otg_state op_state; + enum usb_dr_mode dr_mode; + struct usb_role_switch *role_sw; + enum usb_dr_mode role_sw_default_mode; + unsigned int hcd_enabled: 1; + unsigned int gadget_enabled: 1; + unsigned int ll_hw_enabled: 1; + unsigned int hibernated: 1; + unsigned int in_ppd: 1; + bool bus_suspended; + unsigned int reset_phy_on_wake: 1; + unsigned int need_phy_for_wake: 1; + unsigned int phy_off_for_suspend: 1; + u16 frame_number; + struct phy *phy; + struct usb_phy *uphy; + struct dwc2_hsotg_plat *plat; + struct regulator_bulk_data supplies[2]; + struct regulator *vbus_supply; + struct regulator *usb33d; + spinlock_t lock; + void *priv; + int irq; + struct clk *clk; + struct clk *utmi_clk; + struct reset_control *reset; + struct reset_control *reset_ecc; + unsigned int queuing_high_bandwidth: 1; + unsigned int srp_success: 1; + struct workqueue_struct *wq_otg; + struct work_struct wf_otg; + struct timer_list wkp_timer; + enum dwc2_lx_state lx_state; + struct dwc2_gregs_backup gr_backup; + struct dwc2_dregs_backup dr_backup; + struct dwc2_hregs_backup hr_backup; + struct dentry *debug_root; + struct debugfs_regset32 *regset; + bool needs_byte_swap; + union dwc2_hcd_internal_flags flags; + struct list_head non_periodic_sched_inactive; + struct list_head non_periodic_sched_waiting; + struct list_head non_periodic_sched_active; + struct list_head *non_periodic_qh_ptr; + struct list_head periodic_sched_inactive; + struct list_head periodic_sched_ready; + struct list_head periodic_sched_assigned; + struct list_head periodic_sched_queued; + struct list_head split_order; + u16 periodic_usecs; + long unsigned int hs_periodic_bitmap[13]; + u16 periodic_qh_count; + bool new_connection; + u16 last_frame_num; + struct list_head free_hc_list; + int periodic_channels; + int non_periodic_channels; + int available_host_channels; + struct dwc2_host_chan *hc_ptr_array[16]; + u8 *status_buf; + dma_addr_t status_buf_dma; + struct delayed_work start_work; + struct delayed_work reset_work; + struct work_struct phy_reset_work; + u8 otg_port; + u32 *frame_list; + dma_addr_t frame_list_dma; + u32 frame_list_sz; + struct kmem_cache *desc_gen_cache; + struct kmem_cache *desc_hsisoc_cache; + struct kmem_cache *unaligned_cache; +}; + +struct dwc2_hsotg_plat { + enum dwc2_hsotg_dmamode dma; + unsigned int is_osc: 1; + int phy_type; + int (*phy_init)(struct platform_device *, int); + int (*phy_exit)(struct platform_device *, int); +}; + +struct dwc2_tt; + +struct dwc2_qh { + struct dwc2_hsotg *hsotg; + u8 ep_type; + u8 ep_is_in; + u16 maxp; + u16 maxp_mult; + u8 dev_speed; + u8 data_toggle; + u8 ping_state; + u8 do_split; + u8 td_first; + u8 td_last; + u16 host_us; + u16 device_us; + u16 host_interval; + u16 device_interval; + u16 next_active_frame; + u16 start_active_frame; + s16 num_hs_transfers; + struct dwc2_hs_transfer_time hs_transfers[8]; + u32 ls_start_schedule_slice; + u16 ntd; + u8 *dw_align_buf; + dma_addr_t dw_align_buf_dma; + struct list_head qtd_list; + struct dwc2_host_chan *channel; + struct list_head qh_list_entry; + struct dwc2_dma_desc *desc_list; + dma_addr_t desc_list_dma; + u32 desc_list_sz; + u32 *n_bytes; + struct timer_list unreserve_timer; + struct hrtimer wait_timer; + struct dwc2_tt *dwc_tt; + int ttport; + unsigned int tt_buffer_dirty: 1; + unsigned int unreserve_pending: 1; + unsigned int schedule_low_speed: 1; + unsigned int want_wait: 1; + unsigned int wait_timer_cancel: 1; +}; + +struct dwc2_qtd { + enum dwc2_control_phase control_phase; + u8 in_process; + u8 data_toggle; + u8 complete_split; + u8 isoc_split_pos; + u16 isoc_frame_index; + u16 isoc_split_offset; + u16 isoc_td_last; + u16 isoc_td_first; + u32 ssplit_out_xfer_count; + u8 error_count; + u8 n_desc; + u16 isoc_frame_index_last; + u16 num_naks; + struct dwc2_hcd_urb *urb; + struct dwc2_qh *qh; + struct list_head qtd_list_entry; +}; + +struct usb_tt; + +struct dwc2_tt { + int refcount; + struct usb_tt *usb_tt; + long unsigned int periodic_bitmaps[0]; +}; + +struct dx_countlimit { + __le16 limit; + __le16 count; +}; + +struct dx_entry { + __le32 hash; + __le32 block; +}; + +struct dx_frame { + struct buffer_head *bh; + struct dx_entry *entries; + struct dx_entry *at; +}; + +struct dx_hash_info { + u32 hash; + u32 minor_hash; + int hash_version; + u32 *seed; +}; + +struct dx_map_entry { + u32 hash; + u16 offs; + u16 size; +}; + +struct fake_dirent { + __le32 inode; + __le16 rec_len; + u8 name_len; + u8 file_type; +}; + +struct dx_node { + struct fake_dirent fake; + struct dx_entry entries[0]; +}; + +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_tail { + u32 dt_reserved; + __le32 dt_checksum; +}; + +struct dyn_arch_ftrace {}; + +struct dyn_event_operations; + +struct dyn_event { + struct list_head list; + struct dyn_event_operations *ops; +}; + +struct dyn_event_operations { + struct list_head list; + int (*create)(const char *); + int (*show)(struct seq_file *, struct dyn_event *); + bool (*is_busy)(struct dyn_event *); + int (*free)(struct dyn_event *); + bool (*match)(const char *, const char *, int, const char **, struct dyn_event *); +}; + +struct dyn_ftrace { + long unsigned int ip; + long unsigned int flags; + struct dyn_arch_ftrace arch; +}; + +struct dynevent_arg { + const char *str; + char separator; +}; + +struct dynevent_arg_pair { + const char *lhs; + const char *rhs; + char operator; + char separator; +}; + +struct seq_buf { + char *buffer; + size_t size; + size_t len; +}; + +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 e820_entry { + u64 addr; + u64 size; + enum e820_type type; +} __attribute__((packed)); + +struct e820_table { + __u32 nr_entries; + struct e820_entry entries[3200]; +}; + +struct usb_device; + +struct each_dev_arg { + void *data; + int (*fn)(struct usb_device *, void *); +}; + +struct early_load_data { + u32 old_rev; + u32 new_rev; +}; + +struct uart_icount { + __u32 cts; + __u32 dsr; + __u32 rng; + __u32 dcd; + __u32 rx; + __u32 tx; + __u32 frame; + __u32 overrun; + __u32 parity; + __u32 brk; + __u32 buf_overrun; +}; + +struct 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 serial_iso7816 { + __u32 flags; + __u32 tg; + __u32 sc_fi; + __u32 sc_di; + __u32 clk; + __u32 reserved[5]; +}; + +struct ktermios; + +struct uart_state; + +struct uart_ops; + +struct serial_port_device; + +struct uart_port { + spinlock_t lock; + long unsigned int iobase; + unsigned char *membase; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + void (*set_mctrl)(struct uart_port *, unsigned int); + unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); + void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); + int (*startup)(struct uart_port *); + void (*shutdown)(struct uart_port *); + void (*throttle)(struct uart_port *); + void (*unthrottle)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); + int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); + int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); + unsigned int ctrl_id; + unsigned int port_id; + unsigned int irq; + long unsigned int irqflags; + unsigned int uartclk; + unsigned int fifosize; + unsigned char x_char; + unsigned char regshift; + unsigned char iotype; + unsigned char quirks; + unsigned int read_status_mask; + unsigned int ignore_status_mask; + struct uart_state *state; + struct uart_icount icount; + struct console *cons; + upf_t flags; + upstat_t status; + bool hw_stopped; + unsigned int mctrl; + unsigned int frame_time; + unsigned int type; + const struct uart_ops *ops; + unsigned int custom_divisor; + unsigned int line; + unsigned int minor; + resource_size_t mapbase; + resource_size_t mapsize; + struct device *dev; + struct serial_port_device *port_dev; + long unsigned int sysrq; + u8 sysrq_ch; + unsigned char has_sysrq; + unsigned char sysrq_seq; + unsigned char hub6; + unsigned char suspended; + unsigned char console_reinit; + const char *name; + struct attribute_group *attr_group; + const struct attribute_group **tty_groups; + struct serial_rs485 rs485; + struct serial_rs485 rs485_supported; + struct gpio_desc *rs485_term_gpio; + struct gpio_desc *rs485_rx_during_tx_gpio; + struct serial_iso7816 iso7816; + void *private_data; +}; + +struct earlycon_device { + struct console *con; + 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 ebitmap_node { + struct ebitmap_node *next; + long unsigned int maps[6]; + u32 startbit; +}; + +struct ec_host_request { + uint8_t struct_version; + uint8_t checksum; + uint16_t command; + uint8_t command_version; + uint8_t reserved; + uint16_t data_len; +}; + +struct ec_motion_sense_activity { + uint8_t sensor_num; + uint8_t activity; + uint8_t enable; + uint8_t reserved; + uint16_t parameters[3]; +}; + +struct ec_params_get_cmd_versions { + uint8_t cmd; +}; + +struct ec_params_get_cmd_versions_v1 { + uint16_t cmd; +}; + +struct ec_params_hello { + uint32_t in_data; +}; + +struct ec_params_motion_sense { + uint8_t cmd; + union { + struct { + uint8_t max_sensor_count; + } dump; + struct { + int16_t data; + } kb_wake_angle; + struct { + uint8_t sensor_num; + } info; + struct { + uint8_t sensor_num; + } info_3; + struct { + uint8_t sensor_num; + } data; + struct { + uint8_t sensor_num; + } fifo_flush; + struct { + uint8_t sensor_num; + } perform_calib; + struct { + uint8_t sensor_num; + } list_activities; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } ec_rate; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } sensor_odr; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } sensor_range; + struct { + uint8_t sensor_num; + uint16_t flags; + int16_t temp; + int16_t offset[3]; + } __attribute__((packed)) sensor_offset; + struct { + uint8_t sensor_num; + uint16_t flags; + int16_t temp; + uint16_t scale[3]; + } __attribute__((packed)) sensor_scale; + struct { + uint32_t max_data_vector; + } fifo_read; + struct ec_motion_sense_activity set_activity; + struct { + int8_t enable; + } fifo_int_enable; + struct { + uint8_t sensor_id; + uint8_t spoof_enable; + uint8_t reserved; + int16_t components[3]; + } __attribute__((packed)) spoof; + struct { + int16_t lid_angle; + int16_t hys_degree; + } tablet_mode_threshold; + }; +} __attribute__((packed)); + +struct ec_params_read_memmap { + uint8_t offset; + uint8_t size; +}; + +struct ec_params_rwsig_action { + uint32_t action; +}; + +struct ec_response_get_cmd_versions { + uint32_t version_mask; +}; + +struct ec_response_get_comms_status { + uint32_t flags; +}; + +struct ec_response_get_protocol_info { + uint32_t protocol_versions; + uint16_t max_request_packet_size; + uint16_t max_response_packet_size; + uint32_t flags; +}; + +struct ec_response_hello { + uint32_t out_data; +}; + +struct ec_response_host_event_mask { + uint32_t mask; +}; + +struct ec_response_motion_sensor_data { + uint8_t flags; + uint8_t sensor_num; + union { + int16_t data[3]; + struct { + uint16_t reserved; + uint32_t timestamp; + } __attribute__((packed)); + struct { + uint8_t activity; + uint8_t state; + int16_t add_info[2]; + }; + }; +}; + +struct ec_response_motion_sense_fifo_data { + uint32_t number_data; + struct ec_response_motion_sensor_data data[0]; +}; + +struct ec_response_motion_sense { + union { + struct { + uint8_t module_flags; + uint8_t sensor_count; + struct { + struct {} __empty_sensor; + struct ec_response_motion_sensor_data sensor[0]; + }; + } dump; + struct { + uint8_t type; + uint8_t location; + uint8_t chip; + } info; + struct { + uint8_t type; + uint8_t location; + uint8_t chip; + uint32_t min_frequency; + uint32_t max_frequency; + uint32_t fifo_max_event_count; + } info_3; + struct ec_response_motion_sensor_data data; + struct { + int32_t ret; + } ec_rate; + struct { + int32_t ret; + } sensor_odr; + struct { + int32_t ret; + } sensor_range; + struct { + int32_t ret; + } kb_wake_angle; + struct { + int32_t ret; + } fifo_int_enable; + struct { + int32_t ret; + } spoof; + struct { + int16_t temp; + int16_t offset[3]; + } sensor_offset; + struct { + int16_t temp; + int16_t offset[3]; + } perform_calib; + struct { + int16_t temp; + uint16_t scale[3]; + } sensor_scale; + struct ec_response_motion_sense_fifo_info fifo_info; + struct ec_response_motion_sense_fifo_info fifo_flush; + struct ec_response_motion_sense_fifo_data fifo_read; + struct { + uint16_t reserved; + uint32_t enabled; + uint32_t disabled; + } __attribute__((packed)) list_activities; + struct { + uint16_t value; + } lid_angle; + struct { + uint16_t lid_angle; + uint16_t hys_degree; + } tablet_mode_threshold; + }; +}; + +struct ecc_point { + u64 *x; + u64 *y; + u8 ndigits; +}; + +struct ecc_curve { + char *name; + u32 nbits; + struct ecc_point g; + u64 *p; + u64 *n; + u64 *a; + u64 *b; +}; + +struct ecdh { + char *key; + short unsigned int key_size; +}; + +struct ecdh_ctx { + unsigned int curve_id; + unsigned int ndigits; + u64 private_key[9]; +}; + +struct ecryptfs_session_key { + u32 flags; + u32 encrypted_key_size; + u32 decrypted_key_size; + u8 encrypted_key[512]; + u8 decrypted_key[64]; +}; + +struct ecryptfs_password { + u32 password_bytes; + s32 hash_algo; + u32 hash_iterations; + u32 session_key_encryption_key_bytes; + u32 flags; + u8 session_key_encryption_key[64]; + u8 signature[17]; + u8 salt[8]; +}; + +struct ecryptfs_private_key { + u32 key_size; + u32 data_len; + u8 signature[17]; + char pki_type[17]; + u8 data[0]; +}; + +struct ecryptfs_auth_tok { + u16 version; + u16 token_type; + u32 flags; + struct ecryptfs_session_key session_key; + u8 reserved[32]; + union { + struct ecryptfs_password password; + struct ecryptfs_private_key private_key; + } token; +}; + +struct ecryptfs_auth_tok_list_item { + unsigned char encrypted_session_key[64]; + struct list_head list; + struct ecryptfs_auth_tok auth_tok; +}; + +struct ecryptfs_cache_info { + struct kmem_cache **cache; + const char *name; + size_t size; + slab_flags_t flags; + void (*ctor)(void *); +}; + +struct ecryptfs_cipher_code_str_map_elem { + char cipher_str[16]; + u8 cipher_code; +}; + +struct ecryptfs_mount_crypt_stat; + +struct ecryptfs_crypt_stat { + u32 flags; + unsigned int file_version; + size_t iv_bytes; + size_t metadata_size; + size_t extent_size; + size_t key_size; + size_t extent_shift; + unsigned int extent_mask; + struct ecryptfs_mount_crypt_stat *mount_crypt_stat; + struct crypto_skcipher *tfm; + struct crypto_shash *hash_tfm; + unsigned char cipher[32]; + unsigned char key[64]; + unsigned char root_iv[16]; + struct list_head keysig_list; + struct mutex keysig_list_mutex; + struct mutex cs_tfm_mutex; + struct mutex cs_mutex; +}; + +struct ecryptfs_daemon { + u32 flags; + u32 num_queued_msg_ctx; + struct file *file; + struct mutex mux; + struct list_head msg_ctx_out_queue; + wait_queue_head_t wait; + struct hlist_node euid_chain; +}; + +struct ecryptfs_dentry_info { + struct path lower_path; + struct callback_head rcu; +}; + +struct ecryptfs_file_info { + struct file *wfi_file; + struct ecryptfs_crypt_stat *crypt_stat; +}; + +struct ecryptfs_filename { + struct list_head crypt_stat_list; + u32 flags; + u32 seq_no; + char *filename; + char *encrypted_filename; + size_t filename_size; + size_t encrypted_filename_size; + char fnek_sig[16]; + char dentry_name[57]; +}; + +struct ecryptfs_flag_map_elem { + u32 file_flag; + u32 local_flag; +}; + +struct ecryptfs_fs_context { + bool check_ruid; + bool sig_set; + bool cipher_name_set; + bool cipher_key_bytes_set; + bool fn_cipher_name_set; + bool fn_cipher_key_bytes_set; +}; + +struct ecryptfs_getdents_callback { + struct dir_context ctx; + struct dir_context *caller; + struct super_block *sb; + int filldir_called; + int entries_written; +}; + +struct ecryptfs_global_auth_tok { + u32 flags; + struct list_head mount_crypt_stat_list; + struct key *global_auth_tok_key; + unsigned char sig[17]; +}; + +struct ecryptfs_inode_info { + struct inode vfs_inode; + struct inode *wii_inode; + struct mutex lower_file_mutex; + atomic_t lower_file_count; + struct file *lower_file; + struct ecryptfs_crypt_stat crypt_stat; +}; + +struct ecryptfs_key_record { + unsigned char type; + size_t enc_key_size; + unsigned char sig[8]; + unsigned char enc_key[512]; +}; + +struct ecryptfs_key_sig { + struct list_head crypt_stat_list; + char keysig[17]; +}; + +struct ecryptfs_key_tfm { + struct crypto_skcipher *key_tfm; + size_t key_size; + struct mutex key_tfm_mutex; + struct list_head key_tfm_list; + unsigned char cipher_name[32]; +}; + +struct ecryptfs_kthread_ctl { + u32 flags; + struct mutex mux; + struct list_head req_list; + wait_queue_head_t wait; +}; + +struct ecryptfs_message { + u32 index; + u32 data_len; + u8 data[0]; +}; + +struct ecryptfs_mount_crypt_stat { + u32 flags; + struct list_head global_auth_tok_list; + struct mutex global_auth_tok_list_mutex; + size_t global_default_cipher_key_size; + size_t global_default_fn_cipher_key_bytes; + unsigned char global_default_cipher_name[32]; + unsigned char global_default_fn_cipher_name[32]; + char global_default_fnek_sig[17]; +}; + +struct ecryptfs_msg_ctx { + u8 state; + u8 type; + u32 index; + u32 counter; + size_t msg_size; + struct ecryptfs_message *msg; + struct task_struct *task; + struct list_head node; + struct list_head daemon_out_list; + struct mutex mux; +}; + +struct ecryptfs_open_req { + struct file **lower_file; + struct path path; + struct completion done; + struct list_head kthread_ctl_list; +}; + +struct ecryptfs_parse_tag_70_packet_silly_stack { + u8 cipher_code; + size_t max_packet_size; + size_t packet_size_len; + size_t parsed_tag_70_packet_size; + size_t block_aligned_filename_size; + size_t block_size; + size_t i; + struct mutex *tfm_mutex; + char *decrypted_filename; + struct ecryptfs_auth_tok *auth_tok; + struct scatterlist src_sg[2]; + struct scatterlist dst_sg[2]; + struct crypto_skcipher *skcipher_tfm; + struct skcipher_request *skcipher_req; + char fnek_sig_hex[17]; + char iv[16]; + char cipher_string[32]; +}; + +struct ecryptfs_sb_info { + struct super_block *wsi_sb; + struct ecryptfs_mount_crypt_stat mount_crypt_stat; +}; + +struct shash_desc; + +struct ecryptfs_write_tag_70_packet_silly_stack { + u8 cipher_code; + size_t max_packet_size; + size_t packet_size_len; + size_t block_aligned_filename_size; + size_t block_size; + size_t i; + size_t j; + size_t num_rand_bytes; + struct mutex *tfm_mutex; + char *block_aligned_filename; + struct ecryptfs_auth_tok *auth_tok; + struct scatterlist src_sg[2]; + struct scatterlist dst_sg[2]; + struct crypto_skcipher *skcipher_tfm; + struct skcipher_request *skcipher_req; + char iv[16]; + char hash[16]; + char tmp_hash[16]; + struct crypto_shash *hash_tfm; + struct shash_desc *hash_desc; +}; + +struct td; + +struct ed { + __hc32 hwINFO; + __hc32 hwTailP; + __hc32 hwHeadP; + __hc32 hwNextED; + dma_addr_t dma; + struct td *dummy; + struct ed *ed_next; + struct ed *ed_prev; + struct list_head td_list; + struct list_head in_use_list; + u8 state; + u8 type; + u8 branch; + u16 interval; + u16 load; + u16 last_iso; + u16 tick; + unsigned int takeback_wdh_cnt; + struct td *pending_td; + long: 64; +}; + +struct edac_dev_sysfs_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_device_ctl_info *, char *); + ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); +}; + +struct edac_dev_sysfs_block_attribute { + struct attribute attr; + ssize_t (*show)(struct kobject *, struct attribute *, char *); +}; + +struct edac_device_counter { + u32 ue_count; + u32 ce_count; +}; + +struct edac_device_instance; + +struct edac_device_block { + struct edac_device_instance *instance; + char name[32]; + struct edac_device_counter counters; + int nr_attribs; + struct edac_dev_sysfs_block_attribute *block_attributes; + struct kobject kobj; +}; + +struct edac_device_ctl_info { + struct list_head link; + struct module *owner; + int dev_idx; + int log_ue; + int log_ce; + int panic_on_ue; + unsigned int poll_msec; + long unsigned int delay; + struct edac_dev_sysfs_attribute *sysfs_attributes; + const struct bus_type *edac_subsys; + int op_state; + struct delayed_work work; + void (*edac_check)(struct edac_device_ctl_info *); + struct device *dev; + const char *mod_name; + const char *ctl_name; + const char *dev_name; + void *pvt_info; + long unsigned int start_time; + char name[32]; + u32 nr_instances; + struct edac_device_instance *instances; + struct edac_device_block *blocks; + struct edac_device_counter counters; + struct kobject kobj; +}; + +struct edac_device_instance { + struct edac_device_ctl_info *ctl; + char name[35]; + struct edac_device_counter counters; + u32 nr_blocks; + struct edac_device_block *blocks; + struct kobject kobj; +}; + +struct edac_mc_layer { + enum edac_mc_layer_type type; + unsigned int size; + bool is_virt_csrow; +}; + +struct edac_pci_counter { + atomic_t pe_count; + atomic_t npe_count; +}; + +struct edac_pci_ctl_info { + struct list_head link; + int pci_idx; + int op_state; + struct delayed_work work; + void (*edac_check)(struct edac_pci_ctl_info *); + struct device *dev; + const char *mod_name; + const char *ctl_name; + const char *dev_name; + void *pvt_info; + long unsigned int start_time; + char name[32]; + struct edac_pci_counter counters; + struct kobject kobj; +}; + +struct edac_pci_dev_attribute { + struct attribute attr; + void *value; + ssize_t (*show)(void *, char *); + ssize_t (*store)(void *, const char *, size_t); +}; + +struct edac_pci_gen_data { + int edac_idx; +}; + +struct edac_raw_error_desc { + char location[256]; + char label[296]; + long int grain; + u16 error_count; + enum hw_event_mc_err_type type; + int top_layer; + int mid_layer; + int low_layer; + long unsigned int page_frame_number; + long unsigned int offset_in_page; + long unsigned int syndrome; + const char *msg; + const char *other_detail; +}; + +struct edd { + unsigned int mbr_signature[16]; + struct edd_info edd_info[6]; + unsigned char mbr_signature_nr; + unsigned char edd_info_nr; +}; + +struct edd_device; + +struct edd_attribute { + struct attribute attr; + ssize_t (*show)(struct edd_device *, char *); + int (*test)(struct edd_device *); +}; + +struct edd_device { + unsigned int index; + unsigned int mbr_signature; + struct edd_info *info; + struct kobject kobj; +}; + +struct est_timings { + u8 t1; + u8 t2; + u8 mfg_rsvd; +}; + +struct edid { + u8 header[8]; + union { + struct drm_edid_product_id product_id; + struct { + u8 mfg_id[2]; + u8 prod_code[2]; + u32 serial; + u8 mfg_week; + u8 mfg_year; + } __attribute__((packed)); + }; + 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 edid_quirk { + const struct drm_edid_ident ident; + u32 quirks; +}; + +struct eee_config { + u32 tx_lpi_timer; + bool tx_lpi_enabled; + bool eee_enabled; +}; + +struct ethtool_keee { + long unsigned int supported[2]; + long unsigned int advertised[2]; + long unsigned int lp_advertised[2]; + u32 tx_lpi_timer; + bool tx_lpi_enabled; + bool eee_active; + bool eee_enabled; +}; + +struct eee_reply_data { + struct ethnl_reply_data base; + struct ethtool_keee eee; +}; + +struct eeprom_reply_data { + struct ethnl_reply_data base; + u32 length; + u8 *data; +}; + +struct ethnl_req_info { + struct net_device *dev; + netdevice_tracker dev_tracker; + u32 flags; + u32 phy_index; +}; + +struct eeprom_req_info { + struct ethnl_req_info base; + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; +}; + +typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *); + +typedef efi_status_t efi_set_time_t(efi_time_t *); + +typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *); + +typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *); + +typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, long unsigned int *, void *); + +typedef efi_status_t efi_get_next_variable_t(long unsigned int *, efi_char16_t *, efi_guid_t *); + +typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, long unsigned int, void *); + +typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *); + +typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, long unsigned int, long unsigned int); + +typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, long unsigned int, u64 *, int *); + +typedef efi_status_t efi_get_next_high_mono_count_t(u32 *); + +typedef void efi_reset_system_t(int, efi_status_t, long unsigned int, efi_char16_t *); + +struct efi_memory_map { + phys_addr_t phys_map; + void *map; + void *map_end; + int nr_map; + long unsigned int desc_version; + long unsigned int desc_size; + long unsigned int flags; +}; + +struct efi { + const efi_runtime_services_t *runtime; + unsigned int runtime_version; + unsigned int runtime_supported_mask; + long unsigned int acpi; + long unsigned int acpi20; + long unsigned int smbios; + long unsigned int smbios3; + long unsigned int esrt; + long unsigned int tpm_log; + long unsigned int tpm_final_log; + long unsigned int mokvar_table; + long unsigned int coco_secret; + long unsigned int unaccepted; + efi_get_time_t *get_time; + efi_set_time_t *set_time; + efi_get_wakeup_time_t *get_wakeup_time; + efi_set_wakeup_time_t *set_wakeup_time; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_info_t *query_variable_info; + efi_query_variable_info_t *query_variable_info_nonblocking; + efi_update_capsule_t *update_capsule; + efi_query_capsule_caps_t *query_capsule_caps; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; + struct efi_memory_map memmap; + long unsigned int flags; +}; + +struct efi_embedded_fw { + struct list_head list; + const char *name; + const u8 *data; + size_t length; +}; + +struct efi_embedded_fw_desc { + const char *name; + u8 prefix[8]; + u32 length; + u8 sha256[32]; +}; + +struct efi_error_code { + efi_status_t status; + int errno; + const char *description; +}; + +struct efi_mem_range { + struct range range; + u64 attribute; +}; + +struct efi_memory_map_data { + phys_addr_t phys_map; + long unsigned int size; + long unsigned int desc_version; + long unsigned int desc_size; + long unsigned int flags; +}; + +struct efi_mokvar_sysfs_attr { + struct bin_attribute bin_attr; + struct list_head node; +}; + +struct efi_mokvar_table_entry { + char name[256]; + u64 data_size; + u8 data[0]; +}; + +union efi_rts_args { + struct { + efi_time_t *time; + efi_time_cap_t *capabilities; + } GET_TIME; + struct { + efi_time_t *time; + } SET_TIME; + struct { + efi_bool_t *enabled; + efi_bool_t *pending; + efi_time_t *time; + } GET_WAKEUP_TIME; + struct { + efi_bool_t enable; + efi_time_t *time; + } SET_WAKEUP_TIME; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 *attr; + long unsigned int *data_size; + void *data; + } GET_VARIABLE; + struct { + long unsigned int *name_size; + efi_char16_t *name; + efi_guid_t *vendor; + } GET_NEXT_VARIABLE; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 attr; + long unsigned int data_size; + void *data; + } SET_VARIABLE; + struct { + u32 attr; + u64 *storage_space; + u64 *remaining_space; + u64 *max_variable_size; + } QUERY_VARIABLE_INFO; + struct { + u32 *high_count; + } GET_NEXT_HIGH_MONO_COUNT; + struct { + efi_capsule_header_t **capsules; + long unsigned int count; + long unsigned int sg_list; + } UPDATE_CAPSULE; + struct { + efi_capsule_header_t **capsules; + long unsigned int count; + u64 *max_size; + int *reset_type; + } QUERY_CAPSULE_CAPS; + struct { + efi_status_t (*acpi_prm_handler)(u64, void *); + u64 param_buffer_addr; + void *context; + } ACPI_PRM_HANDLER; +}; + +struct efi_runtime_map_entry { + efi_memory_desc_t md; + struct kobject kobj; +}; + +struct efi_runtime_work { + union efi_rts_args *args; + efi_status_t status; + struct work_struct work; + enum efi_rts_ids efi_rts_id; + struct completion efi_rts_comp; + const void *caller; +}; + +struct efi_setup_data { + u64 fw_vendor; + u64 __unused; + u64 tables; + u64 smbios; + u64 reserved[8]; +}; + +struct efi_system_resource_entry_v1 { + efi_guid_t fw_class; + u32 fw_type; + u32 fw_version; + u32 lowest_supported_fw_version; + u32 capsule_flags; + u32 last_attempt_version; + u32 last_attempt_status; +}; + +struct efi_system_resource_table { + u32 fw_resource_count; + u32 fw_resource_count_max; + u64 fw_resource_version; + u8 entries[0]; +}; + +struct efi_tcg2_final_events_table { + u64 version; + u64 nr_events; + u8 events[0]; +}; + +struct efi_unaccepted_memory { + u32 version; + u32 unit_size; + u64 phys_base; + u64 size; + long unsigned int bitmap[0]; +}; + +struct efi_variable { + efi_char16_t VariableName[512]; + efi_guid_t VendorGuid; +}; + +struct efifb_dmi_info { + char *optname; + long unsigned int base; + int stride; + int width; + int height; + int flags; +}; + +struct efivar_entry { + struct efi_variable var; + struct inode vfs_inode; + long unsigned int open_count; + bool removed; +}; + +typedef efi_status_t efi_query_variable_store_t(u32, long unsigned int, bool); + +struct efivar_operations { + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_store_t *query_variable_store; + efi_query_variable_info_t *query_variable_info; +}; + +struct efivarfs_mount_opts { + kuid_t uid; + kgid_t gid; +}; + +struct efivarfs_fs_info { + struct efivarfs_mount_opts mount_opts; + struct super_block *sb; + struct notifier_block nb; +}; + +struct efivars { + struct kset *kset; + const struct efivar_operations *ops; +}; + +struct ehci_caps { + u32 hc_capbase; + u32 hcs_params; + u32 hcc_params; + u8 portroute[8]; +}; + +struct ehci_dbg_port { + u32 control; + u32 pids; + u32 data03; + u32 data47; + u32 address; +}; + +struct ehci_dev { + u32 bus; + u32 slot; + u32 func; +}; + +struct usb_hcd; + +struct ehci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*port_power)(struct usb_hcd *, int, bool); +}; + +struct ehci_qh; + +struct ehci_itd; + +struct ehci_sitd; + +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_fstn { + __le32 hw_next; + __le32 hw_prev; + dma_addr_t fstn_dma; + union ehci_shadow fstn_next; + long: 64; +}; + +struct ehci_stats { + long unsigned int normal; + long unsigned int error; + long unsigned int iaa; + long unsigned int lost_iaa; + long unsigned int complete; + long unsigned int unlink; +}; + +struct ehci_regs; + +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; + long unsigned int reset_done[15]; + long unsigned int bus_suspended; + long unsigned int companion_ports; + long unsigned int owned_ports; + long unsigned int port_c_suspend; + long unsigned int suspended_ports; + long unsigned int 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; + long unsigned int next_statechange; + ktime_t last_periodic_enable; + u32 command; + unsigned int no_selective_suspend: 1; + unsigned int has_fsl_port_bug: 1; + unsigned int has_fsl_hs_errata: 1; + unsigned int has_fsl_susp_errata: 1; + unsigned int has_ci_pec_bug: 1; + unsigned int big_endian_mmio: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_capbase: 1; + unsigned int has_amcc_usb23: 1; + unsigned int need_io_watchdog: 1; + unsigned int amd_pll_fix: 1; + unsigned int use_dummy_qh: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int frame_index_bug: 1; + unsigned int need_oc_pp_cycle: 1; + unsigned int imx28_write_fix: 1; + unsigned int spurious_oc: 1; + unsigned int is_aspeed: 1; + unsigned int zx_wakeup_clear_needed: 1; + __le32 *ohci_hcctrl_reg; + unsigned int has_hostpc: 1; + unsigned int has_tdi_phy_lpm: 1; + unsigned int has_ppcd: 1; + u8 sbrn; + struct ehci_stats stats; + struct dentry *debug_dir; + u8 bandwidth[64]; + u8 tt_budget[64]; + struct list_head tt_list; + long unsigned int priv[0]; +}; + +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 usb_host_endpoint; + +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_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_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_platform_priv { + struct clk *clks[4]; + struct reset_control *rsts; + bool reset_on_resume; + bool quirk_poll; + struct timer_list poll_timer; + struct delayed_work poll_work; +}; + +struct ehci_qtd; + +struct ehci_qh { + struct ehci_qh_hw *hw; + dma_addr_t qh_dma; + union ehci_shadow qh_next; + struct list_head qtd_list; + struct list_head intr_node; + struct ehci_qtd *dummy; + struct list_head unlink_node; + struct ehci_per_sched ps; + unsigned int unlink_cycle; + u8 qh_state; + u8 xacterrs; + u8 unlink_reason; + u8 gap_uf; + unsigned int is_out: 1; + unsigned int clearing_tt: 1; + unsigned int dequeue_during_giveback: 1; + unsigned int should_be_inactive: 1; +}; + +struct ehci_qh_hw { + __le32 hw_next; + __le32 hw_info1; + __le32 hw_info2; + __le32 hw_current; + __le32 hw_qtd_next; + __le32 hw_alt_next; + __le32 hw_token; + __le32 hw_buf[5]; + __le32 hw_buf_hi[5]; + long: 64; + long: 64; + long: 64; +}; + +struct ehci_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 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_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_tt { + u16 bandwidth[8]; + struct list_head tt_list; + struct list_head ps_list; + struct usb_tt *usb_tt; + int tt_port; +}; + +struct ei_entry { + struct list_head list; + long unsigned int start_addr; + long unsigned int end_addr; + int etype; + void *priv; +}; + +struct touchscreen_properties { + unsigned int max_x; + unsigned int max_y; + bool invert_x; + bool invert_y; + bool swap_x_y; +}; + +struct elants_data { + struct i2c_client *client; + struct input_dev *input; + struct regulator *vcc33; + struct regulator *vccio; + struct gpio_desc *reset_gpio; + u16 fw_version; + u8 test_version; + u8 solution_version; + u8 bc_version; + u8 iap_version; + u16 hw_version; + u8 major_res; + unsigned int x_res; + unsigned int y_res; + unsigned int x_max; + unsigned int y_max; + unsigned int phy_x; + unsigned int phy_y; + struct touchscreen_properties prop; + enum elants_state state; + enum elants_chip_id chip_id; + enum elants_iap_mode iap_mode; + struct mutex sysfs_mutex; + u8 cmd_resp[4]; + struct completion cmd_done; + bool keep_power_in_suspend; + long: 64; + u8 buf[169]; + long: 64; + long: 64; +}; + +struct elants_version_attribute { + struct device_attribute dattr; + size_t field_offset; + size_t field_size; +}; + +struct elevator_queue; + +struct io_cq; + +struct elevator_mq_ops { + int (*init_sched)(struct request_queue *, struct elevator_type *); + void (*exit_sched)(struct elevator_queue *); + int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*depth_updated)(struct blk_mq_hw_ctx *); + bool (*allow_merge)(struct request_queue *, struct request *, struct bio *); + bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int); + int (*request_merge)(struct request_queue *, struct request **, struct bio *); + void (*request_merged)(struct request_queue *, struct request *, enum elv_merge); + void (*requests_merged)(struct request_queue *, struct request *, struct request *); + void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *); + void (*prepare_request)(struct request *); + void (*finish_request)(struct request *); + void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, blk_insert_t); + struct request * (*dispatch_request)(struct blk_mq_hw_ctx *); + bool (*has_work)(struct blk_mq_hw_ctx *); + void (*completed_request)(struct request *, u64); + void (*requeue_request)(struct request *); + struct request * (*former_request)(struct request_queue *, struct request *); + struct request * (*next_request)(struct request_queue *, struct request *); + void (*init_icq)(struct io_cq *); + void (*exit_icq)(struct io_cq *); +}; + +struct elevator_queue { + struct elevator_type *type; + void *elevator_data; + struct kobject kobj; + struct mutex sysfs_lock; + long unsigned int flags; + struct hlist_head hash[64]; +}; + +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; + const struct elv_fs_entry *elevator_attrs; + const char *elevator_name; + const char *elevator_alias; + 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 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_note { + Elf32_Word n_namesz; + Elf32_Word n_descsz; + Elf32_Word n_type; +}; + +typedef struct elf32_note Elf32_Nhdr; + +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; + +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 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_note { + Elf64_Word n_namesz; + Elf64_Word n_descsz; + Elf64_Word n_type; +}; + +typedef struct elf64_note Elf64_Nhdr; + +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; + +struct elf64_rela { + Elf64_Addr r_offset; + Elf64_Xword r_info; + Elf64_Sxword r_addend; +}; + +typedef struct elf64_rela Elf64_Rela; + +struct elf64_shdr { + Elf64_Word sh_name; + Elf64_Word sh_type; + Elf64_Xword sh_flags; + Elf64_Addr sh_addr; + Elf64_Off sh_offset; + Elf64_Xword sh_size; + Elf64_Word sh_link; + Elf64_Word sh_info; + Elf64_Xword sh_addralign; + Elf64_Xword sh_entsize; +}; + +typedef struct elf64_shdr Elf64_Shdr; + +struct 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; +}; + +typedef struct elf64_sym Elf64_Sym; + +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 siginfo { + union { + struct { + int si_signo; + int si_errno; + int si_code; + union __sifields _sifields; + }; + int _si_pad[32]; + }; +}; + +typedef struct siginfo siginfo_t; + +struct 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_prpsinfo { + char pr_state; + char pr_sname; + char pr_zomb; + char pr_nice; + long unsigned int 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 int pr_cursig; + long unsigned int pr_sigpend; + long unsigned int pr_sighold; + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct __kernel_old_timeval pr_utime; + struct __kernel_old_timeval pr_stime; + struct __kernel_old_timeval pr_cutime; + struct __kernel_old_timeval pr_cstime; +}; + +struct elf_prstatus { + struct elf_prstatus_common common; + elf_gregset_t pr_reg; + int pr_fpvalid; +}; + +struct elf_thread_core_info___2 { + struct elf_thread_core_info___2 *next; + struct task_struct *task; + struct elf_prstatus prstatus; + struct memelfnote notes[0]; +}; + +struct elf_thread_core_info { + struct elf_thread_core_info *next; + struct task_struct *task; + struct compat_elf_prstatus prstatus; + struct memelfnote notes[0]; +}; + +struct elv_fs_entry { + struct attribute attr; + ssize_t (*show)(struct elevator_queue *, char *); + ssize_t (*store)(struct elevator_queue *, const char *, size_t); +}; + +struct em_data_callback { + int (*active_power)(struct device *, long unsigned int *, long unsigned int *); + int (*get_cost)(struct device *, long unsigned int, long unsigned int *); +}; + +struct em_dbg_info { + struct em_perf_domain *pd; + int ps_id; +}; + +struct em_perf_table; + +struct em_perf_domain { + struct em_perf_table *em_table; + int nr_perf_states; + int min_perf_state; + int max_perf_state; + long unsigned int flags; + long unsigned int cpus[0]; +}; + +struct em_perf_state { + long unsigned int performance; + long unsigned int frequency; + long unsigned int power; + long unsigned int cost; + long unsigned int flags; +}; + +struct em_perf_table { + struct callback_head rcu; + struct kref kref; + struct em_perf_state state[0]; +}; + +struct trace_event_file; + +struct enable_trigger_data { + struct trace_event_file *file; + bool enable; + bool hist; +}; + +struct encrypted_key_payload { + struct callback_head rcu; + char *format; + char *master_desc; + char *datalen; + u8 *iv; + u8 *encrypted_data; + short unsigned int datablob_len; + short unsigned int decrypted_datalen; + short unsigned int payload_datalen; + short unsigned int encrypted_key_format; + u8 *decrypted_data; + u8 payload_data[0]; +}; + +struct energy_env { + long unsigned int task_busy_time; + long unsigned int pd_busy_time; + long unsigned int cpu_cap; + long unsigned int pd_cap; +}; + +struct entropy_timer_state { + long unsigned int entropy; + struct timer_list timer; + atomic_t samples; + unsigned int samples_per_bit; +}; + +struct usb_endpoint_descriptor; + +struct ep_device { + struct usb_endpoint_descriptor *desc; + struct usb_device *udev; + struct device dev; +}; + +typedef struct poll_table_struct poll_table; + +struct epitem; + +struct ep_pqueue { + poll_table pt; + struct epitem *epi; +}; + +struct epoll_filefd { + struct file *file; + int fd; +} __attribute__((packed)); + +struct epoll_event { + __poll_t events; + __u64 data; +} __attribute__((packed)); + +struct eppoll_entry; + +struct eventpoll; + +struct epitem { + union { + struct rb_node rbn; + struct callback_head rcu; + }; + struct list_head rdllink; + struct epitem *next; + struct epoll_filefd ffd; + bool dying; + struct eppoll_entry *pwqlist; + struct eventpoll *ep; + struct hlist_node fllink; + struct wakeup_source *ws; + struct epoll_event event; +}; + +struct epitems_head { + struct hlist_head epitems; + struct epitems_head *next; +}; + +struct epoll_params { + __u32 busy_poll_usecs; + __u16 busy_poll_budget; + __u8 prefer_busy_poll; + __u8 __pad; +}; + +struct eppoll_entry { + struct eppoll_entry *next; + struct epitem *base; + wait_queue_entry_t wait; + wait_queue_head_t *whead; +}; + +struct trace_eprobe; + +struct eprobe_data { + struct trace_event_file *file; + struct trace_eprobe *ep; +}; + +struct eprobe_trace_entry_head { + struct trace_entry ent; +}; + +struct equiv_cpu_entry { + u32 installed_cpu; + u32 fixed_errata_mask; + u32 fixed_errata_compare; + u16 equiv_cpu; + u16 res; +}; + +struct equiv_cpu_table { + unsigned int num_entries; + struct equiv_cpu_entry *entry; +}; + +struct er_account { + raw_spinlock_t lock; + u64 config; + u64 reg; + atomic_t ref; +}; + +struct err_info { + const char **errs; + u8 type; + u16 pos; + u64 ts; +}; + +struct error_info { + short unsigned int code12; + short unsigned int size; +}; + +struct error_info2 { + unsigned char code1; + unsigned char code2_min; + unsigned char code2_max; + const char *str; + const char *fmt; +}; + +struct error_injection_entry { + long unsigned int addr; + int etype; +}; + +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 erst_erange { + u64 base; + u64 size; + void *vaddr; + u32 attr; + u64 timings; +}; + +struct erst_record_id_cache { + struct mutex lock; + u64 *entries; + int len; + int size; + int refcount; +}; + +struct insn_field { + union { + insn_value_t value; + insn_byte_t bytes[4]; + }; + unsigned char got; + unsigned char nbytes; +}; + +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 es_fault_info { + long unsigned int vector; + long unsigned int error_code; + long unsigned int cr2; +}; + +struct es_em_ctxt { + struct pt_regs *regs; + struct insn insn; + struct es_fault_info fi; +}; + +struct strp_stats { + long long unsigned int msgs; + long long unsigned int bytes; + unsigned int mem_fail; + unsigned int need_more_hdr; + unsigned int msg_too_big; + unsigned int msg_timeouts; + unsigned int bad_hdr_len; +}; + +typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); + +struct strparser; + +struct strp_callbacks { + int (*parse_msg)(struct strparser *, struct sk_buff *); + void (*rcv_msg)(struct strparser *, struct sk_buff *); + int (*read_sock)(struct strparser *, read_descriptor_t *, sk_read_actor_t); + 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 espintcp_msg { + struct sk_buff *skb; + struct sk_msg skmsg; + int offset; + int len; +}; + +struct espintcp_ctx { + struct strparser strp; + struct sk_buff_head ike_queue; + struct sk_buff_head out_queue; + struct espintcp_msg partial; + void (*saved_data_ready)(struct sock *); + void (*saved_write_space)(struct sock *); + void (*saved_destruct)(struct sock *); + struct work_struct work; + bool tx_running; +}; + +struct esre_entry; + +struct esre_attribute { + struct attribute attr; + ssize_t (*show)(struct esre_entry *, char *); +}; + +struct esre_entry { + union { + struct efi_system_resource_entry_v1 *esre1; + } esre; + struct kobject kobj; + struct list_head list; +}; + +struct estack_pages { + u32 offs; + u16 size; + u16 type; +}; + +struct ethnl_request_ops; + +struct ethnl_dump_ctx { + const struct ethnl_request_ops *ops; + struct ethnl_req_info *req_info; + struct ethnl_reply_data *reply_data; + long unsigned int pos_ifindex; +}; + +struct ethnl_module_fw_flash_ntf_params { + u32 portid; + u32 seq; + bool closed_sock; +}; + +struct phy_req_info; + +struct ethnl_phy_dump_ctx { + struct phy_req_info *phy_req_info; + long unsigned int ifindex; + long unsigned int phy_index; +}; + +struct ethnl_request_ops { + u8 request_cmd; + u8 reply_cmd; + u16 hdr_attr; + unsigned int req_info_size; + unsigned int reply_data_size; + bool allow_nodev_do; + u8 set_ntf_cmd; + int (*parse_request)(struct ethnl_req_info *, struct nlattr **, struct netlink_ext_ack *); + int (*prepare_data)(const struct ethnl_req_info *, struct ethnl_reply_data *, const struct genl_info *); + int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *); + int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *); + void (*cleanup_data)(struct ethnl_reply_data *); + int (*set_validate)(struct ethnl_req_info *, struct genl_info *); + int (*set)(struct ethnl_req_info *, struct genl_info *); +}; + +struct ethnl_sock_priv { + struct net_device *dev; + u32 portid; + enum ethnl_sock_type type; +}; + +struct tsinfo_req_info; + +struct tsinfo_reply_data; + +struct ethnl_tsinfo_dump_ctx { + struct tsinfo_req_info *req_info; + struct tsinfo_reply_data *reply_data; + long unsigned int pos_ifindex; + bool netdev_dump_done; + long unsigned int pos_phyindex; + enum hwtstamp_provider_qualifier pos_phcqualifier; +}; + +struct ethnl_tunnel_info_dump_ctx { + struct ethnl_req_info req_info; + long unsigned int ifindex; +}; + +struct ethtool_c33_pse_ext_state_info { + enum ethtool_c33_pse_ext_state c33_pse_ext_state; + union { + enum ethtool_c33_pse_ext_substate_error_condition error_condition; + enum ethtool_c33_pse_ext_substate_mr_pse_enable mr_pse_enable; + enum ethtool_c33_pse_ext_substate_option_detect_ted option_detect_ted; + enum ethtool_c33_pse_ext_substate_option_vport_lim option_vport_lim; + enum ethtool_c33_pse_ext_substate_ovld_detected ovld_detected; + enum ethtool_c33_pse_ext_substate_power_not_available power_not_available; + enum ethtool_c33_pse_ext_substate_short_detected short_detected; + u32 __c33_pse_ext_substate; + }; +}; + +struct ethtool_c33_pse_pw_limit_range { + u32 min; + u32 max; +}; + +struct ethtool_cmd { + __u32 cmd; + __u32 supported; + __u32 advertising; + __u16 speed; + __u8 duplex; + __u8 port; + __u8 phy_address; + __u8 transceiver; + __u8 autoneg; + __u8 mdio_support; + __u32 maxtxpkt; + __u32 maxrxpkt; + __u16 speed_hi; + __u8 eth_tp_mdix; + __u8 eth_tp_mdix_ctrl; + __u32 lp_advertising; + __u32 reserved[2]; +}; + +struct ethtool_cmis_cdb { + u8 cmis_rev; + u8 read_write_len_ext; + u16 max_completion_time; +}; + +struct ethtool_cmis_cdb_request { + __be16 id; + union { + struct { + __be16 epl_len; + u8 lpl_len; + u8 chk_code; + u8 resv1; + u8 resv2; + u8 payload[120]; + }; + struct { + __be16 epl_len; + u8 lpl_len; + u8 chk_code; + u8 resv1; + u8 resv2; + u8 payload[120]; + } body; + }; + u8 *epl; +}; + +struct ethtool_cmis_cdb_cmd_args { + struct ethtool_cmis_cdb_request req; + u16 max_duration; + u8 read_write_len_ext; + u8 msleep_pre_rpl; + u8 rpl_exp_len; + u8 flags; + char *err_msg; +}; + +struct ethtool_cmis_cdb_rpl_hdr { + u8 rpl_len; + u8 rpl_chk_code; +}; + +struct ethtool_cmis_cdb_rpl { + struct ethtool_cmis_cdb_rpl_hdr hdr; + u8 payload[120]; +}; + +struct ethtool_module_fw_flash_params { + __be32 password; + u8 password_valid: 1; +}; + +struct ethtool_cmis_fw_update_params { + struct net_device *dev; + struct ethtool_module_fw_flash_params params; + struct ethnl_module_fw_flash_ntf_params ntf_params; + const struct firmware *fw; +}; + +struct ethtool_flash { + __u32 cmd; + __u32 region; + char data[128]; +}; + +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_devlink_compat { + struct devlink *devlink; + union { + struct ethtool_flash efl; + struct ethtool_drvinfo info; + }; +}; + +struct ethtool_dump { + __u32 cmd; + __u32 version; + __u32 flag; + __u32 len; + __u8 data[0]; +}; + +struct ethtool_eee { + __u32 cmd; + __u32 supported; + __u32 advertised; + __u32 lp_advertised; + __u32 eee_active; + __u32 eee_enabled; + __u32 tx_lpi_enabled; + __u32 tx_lpi_timer; + __u32 reserved[2]; +}; + +struct ethtool_eeprom { + __u32 cmd; + __u32 magic; + __u32 offset; + __u32 len; + __u8 data[0]; +}; + +struct ethtool_eth_ctrl_stats { + enum ethtool_mac_stats_src src; + union { + struct { + u64 MACControlFramesTransmitted; + u64 MACControlFramesReceived; + u64 UnsupportedOpcodesReceived; + }; + struct { + u64 MACControlFramesTransmitted; + u64 MACControlFramesReceived; + u64 UnsupportedOpcodesReceived; + } stats; + }; +}; + +struct 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_phy_stats { + enum ethtool_mac_stats_src src; + union { + struct { + u64 SymbolErrorDuringCarrier; + }; + struct { + u64 SymbolErrorDuringCarrier; + } stats; + }; +}; + +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_forced_speed_map { + u32 speed; + long unsigned int caps[2]; + const u32 *cap_arr; + u32 arr_size; +}; + +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_gstrings { + __u32 cmd; + __u32 string_set; + __u32 len; + __u8 data[0]; +}; + +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_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]; +}; + +struct ethtool_link_ksettings { + struct ethtool_link_settings base; + struct { + long unsigned int supported[2]; + long unsigned int advertising[2]; + long unsigned int lp_advertising[2]; + } link_modes; + u32 lanes; +}; + +struct ethtool_link_usettings { + struct ethtool_link_settings base; + struct { + __u32 supported[4]; + __u32 advertising[4]; + __u32 lp_advertising[4]; + } link_modes; +}; + +struct ethtool_mm_cfg { + u32 verify_time; + bool verify_enabled; + bool tx_enabled; + bool pmac_enabled; + u32 tx_min_frag_size; +}; + +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_stats { + u64 MACMergeFrameAssErrorCount; + u64 MACMergeFrameSmdErrorCount; + u64 MACMergeFrameAssOkCount; + u64 MACMergeFragCountRx; + u64 MACMergeFragCountTx; + u64 MACMergeHoldCount; +}; + +struct ethtool_modinfo { + __u32 cmd; + __u32 type; + __u32 eeprom_len; + __u32 reserved[8]; +}; + +struct ethtool_module_eeprom { + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; + u8 *data; +}; + +struct ethtool_module_fw_flash { + struct list_head list; + netdevice_tracker dev_tracker; + struct work_struct work; + struct ethtool_cmis_fw_update_params fw_update; +}; + +struct ethtool_module_power_mode_params { + enum ethtool_module_power_mode_policy policy; + enum ethtool_module_power_mode mode; +}; + +struct ethtool_netdev_state { + struct xarray rss_ctx; + struct mutex rss_lock; + unsigned int wol_enabled: 1; + unsigned int module_fw_flash_in_progress: 1; +}; + +struct ethtool_ringparam; + +struct kernel_ethtool_ringparam; + +struct ethtool_pauseparam; + +struct ethtool_stats; + +struct ethtool_rxfh_param; + +struct ethtool_rxfh_context; + +struct ethtool_tunable; + +struct ethtool_ops { + u32 cap_link_lanes_supported: 1; + u32 cap_rss_ctx_supported: 1; + u32 cap_rss_sym_xor_supported: 1; + u32 rxfh_per_ctx_key: 1; + u32 cap_rss_rxnfc_adds: 1; + u32 rxfh_indir_space; + u16 rxfh_key_space; + u16 rxfh_priv_size; + u32 rxfh_max_num_contexts; + u32 supported_coalesce_params; + u32 supported_ring_params; + u32 supported_hwtstamp_qualifiers; + 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 *, struct ethtool_rxfh_param *); + int (*set_rxfh)(struct net_device *, struct ethtool_rxfh_param *, struct netlink_ext_ack *); + int (*create_rxfh_context)(struct net_device *, struct ethtool_rxfh_context *, const struct ethtool_rxfh_param *, struct netlink_ext_ack *); + int (*modify_rxfh_context)(struct net_device *, struct ethtool_rxfh_context *, const struct ethtool_rxfh_param *, struct netlink_ext_ack *); + int (*remove_rxfh_context)(struct net_device *, struct ethtool_rxfh_context *, u32, struct netlink_ext_ack *); + 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 kernel_ethtool_ts_info *); + void (*get_ts_stats)(struct net_device *, struct ethtool_ts_stats *); + 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_keee *); + int (*set_eee)(struct net_device *, struct ethtool_keee *); + 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 *); + int (*set_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 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_per_queue_op { + __u32 cmd; + __u32 sub_command; + __u32 queue_mask[128]; + char data[0]; +}; + +struct ethtool_perm_addr { + __u32 cmd; + __u32 size; + __u8 data[0]; +}; + +struct phy_plca_cfg; + +struct phy_plca_status; + +struct phy_tdr_config; + +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 ethtool_phy_stats { + u64 rx_packets; + u64 rx_bytes; + u64 rx_errors; + u64 tx_packets; + u64 tx_bytes; + u64 tx_errors; +}; + +struct ethtool_pse_control_status { + enum ethtool_podl_pse_admin_state podl_admin_state; + enum ethtool_podl_pse_pw_d_status podl_pw_status; + enum ethtool_c33_pse_admin_state c33_admin_state; + enum ethtool_c33_pse_pw_d_status c33_pw_status; + u32 c33_pw_class; + u32 c33_actual_pw; + struct ethtool_c33_pse_ext_state_info c33_ext_state_info; + u32 c33_avail_pw_limit; + struct ethtool_c33_pse_pw_limit_range *c33_pw_limit_ranges; + u32 c33_pw_limit_nb_ranges; +}; + +struct ethtool_regs { + __u32 cmd; + __u32 version; + __u32 len; + __u8 data[0]; +}; + +struct ethtool_ringparam { + __u32 cmd; + __u32 rx_max_pending; + __u32 rx_mini_max_pending; + __u32 rx_jumbo_max_pending; + __u32 tx_max_pending; + __u32 rx_pending; + __u32 rx_mini_pending; + __u32 rx_jumbo_pending; + __u32 tx_pending; +}; + +struct ethtool_rmon_hist_range { + u16 low; + u16 high; +}; + +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 flow_dissector_key_basic { + __be16 n_proto; + u8 ip_proto; + u8 padding; +}; + +struct flow_dissector_key_ipv4_addrs { + __be32 src; + __be32 dst; +}; + +struct flow_dissector_key_ipv6_addrs { + struct in6_addr src; + struct in6_addr dst; +}; + +struct flow_dissector_key_ports { + union { + __be32 ports; + struct { + __be16 src; + __be16 dst; + }; + }; +}; + +struct flow_dissector_key_ip { + __u8 tos; + __u8 ttl; +}; + +struct flow_dissector_key_vlan { + union { + struct { + u16 vlan_id: 12; + u16 vlan_dei: 1; + u16 vlan_priority: 3; + }; + __be16 vlan_tci; + }; + __be16 vlan_tpid; + __be16 vlan_eth_type; + u16 padding; +}; + +struct flow_dissector_key_eth_addrs { + unsigned char dst[6]; + unsigned char src[6]; +}; + +struct 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 flow_dissector { + long long unsigned int used_keys; + short unsigned int offset[33]; +}; + +struct ethtool_rx_flow_match { + struct flow_dissector dissector; + struct ethtool_rx_flow_key key; + struct ethtool_rx_flow_key mask; +}; + +struct flow_rule; + +struct ethtool_rx_flow_rule { + struct flow_rule *rule; + long unsigned int priv[0]; +}; + +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_rx_flow_spec_input { + const struct ethtool_rx_flow_spec *fs; + u32 rss_ctx; +}; + +struct ethtool_rxfh { + __u32 cmd; + __u32 rss_context; + __u32 indir_size; + __u32 key_size; + __u8 hfunc; + __u8 input_xfrm; + __u8 rsvd8[2]; + __u32 rsvd32; + __u32 rss_config[0]; +}; + +struct ethtool_rxfh_context { + u32 indir_size; + u32 key_size; + u16 priv_size; + u8 hfunc; + u8 input_xfrm; + u8 indir_configured: 1; + u8 key_configured: 1; + u32 key_off; + long: 0; + u8 data[0]; +}; + +struct ethtool_rxfh_param { + u8 hfunc; + u32 indir_size; + u32 *indir; + u32 key_size; + u8 *key; + u32 rss_context; + u8 rss_delete; + u8 input_xfrm; +}; + +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_set_features_block { + __u32 valid; + __u32 requested; +}; + +struct ethtool_sfeatures { + __u32 cmd; + __u32 size; + struct ethtool_set_features_block features[0]; +}; + +struct ethtool_sset_info { + __u32 cmd; + __u32 reserved; + __u64 sset_mask; + __u32 data[0]; +}; + +struct ethtool_stats { + __u32 cmd; + __u32 n_stats; + __u64 data[0]; +}; + +struct ethtool_test { + __u32 cmd; + __u32 flags; + __u32 reserved; + __u32 len; + __u64 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_ts_stats { + union { + struct { + u64 pkts; + u64 onestep_pkts_unconfirmed; + u64 lost; + u64 err; + }; + struct { + u64 pkts; + u64 onestep_pkts_unconfirmed; + u64 lost; + u64 err; + } tx_stats; + }; +}; + +struct ethtool_tunable { + __u32 cmd; + __u32 id; + __u32 type_id; + __u32 len; + void *data[0]; +}; + +struct ethtool_value { + __u32 cmd; + __u32 data; +}; + +struct ethtool_wolinfo { + __u32 cmd; + __u32 supported; + __u32 wolopts; + __u8 sopass[6]; +}; + +struct input_handler; + +struct input_value; + +struct input_handle { + void *private; + int open; + const char *name; + struct input_dev *dev; + struct input_handler *handler; + unsigned int (*handle_events)(struct input_handle *, struct input_value *, unsigned int); + struct list_head d_node; + struct list_head h_node; +}; + +struct evdev_client; + +struct evdev { + int open; + struct input_handle handle; + struct evdev_client *grab; + struct list_head client_list; + spinlock_t client_lock; + struct mutex mutex; + struct device dev; + struct cdev cdev; + bool exist; +}; + +struct input_event { + __kernel_ulong_t __sec; + __kernel_ulong_t __usec; + __u16 type; + __u16 code; + __s32 value; +}; + +struct fasync_struct; + +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; + long unsigned int *evmasks[32]; + unsigned int bufsize; + struct input_event buffer[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_counter { + u32 count; + u32 flags; +}; + +struct event_file_link { + struct trace_event_file *file; + struct list_head list; +}; + +struct prog_entry; + +struct event_filter { + struct prog_entry *prog; + char *filter_string; +}; + +struct perf_cpu_context; + +struct perf_event_context; + +typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *); + +struct event_function_struct { + struct perf_event *event; + event_f func; + void *data; +}; + +struct event_header { + __be16 data_len; + __u8 notification_class: 3; + __u8 reserved1: 4; + __u8 nea: 1; + __u8 supp_event_class; +}; + +struct slot___3; + +struct event_info { + u32 event_type; + struct slot___3 *p_slot; + struct work_struct work; +}; + +struct event_mod_load { + struct list_head list; + char *module; + char *match; + char *system; + char *event; +}; + +struct event_probe_data { + struct trace_event_file *file; + long unsigned int count; + int ref; + bool enable; +}; + +struct event_subsystem { + struct list_head list; + const char *name; + struct event_filter *filter; + int ref_count; +}; + +struct event_trigger_data { + long unsigned int count; + int ref; + int flags; + struct event_trigger_ops *ops; + struct event_command *cmd_ops; + struct event_filter *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 *); +}; + +struct eventfd_ctx { + struct kref kref; + wait_queue_head_t wqh; + __u64 count; + unsigned int flags; + int id; +}; + +struct eventfs_attr { + int mode; + kuid_t uid; + kgid_t gid; +}; + +typedef int (*eventfs_callback)(const char *, umode_t *, void **, const struct file_operations **); + +typedef void (*eventfs_release)(const char *, void *); + +struct eventfs_entry { + const char *name; + eventfs_callback callback; + eventfs_release release; +}; + +struct eventfs_inode { + union { + struct list_head list; + struct callback_head rcu; + }; + struct list_head children; + const struct eventfs_entry *entries; + const char *name; + struct eventfs_attr *entry_attrs; + void *data; + struct eventfs_attr attr; + struct kref kref; + unsigned int is_freed: 1; + unsigned int is_events: 1; + unsigned int nr_entries: 30; + unsigned int ino; +}; + +struct eventfs_root_inode { + struct eventfs_inode ei; + struct dentry *events_dir; +}; + +struct eventpoll { + struct mutex mtx; + wait_queue_head_t wq; + wait_queue_head_t poll_wait; + struct list_head rdllist; + rwlock_t lock; + struct rb_root_cached rbr; + struct epitem *ovflist; + struct wakeup_source *ws; + struct user_struct *user; + struct file *file; + u64 gen; + struct hlist_head refs; + refcount_t refcount; + unsigned int napi_id; + u32 busy_poll_usecs; + u16 busy_poll_budget; + bool prefer_busy_poll; +}; + +struct ima_digest_data_hdr { + u8 algo; + u8 length; + union { + struct { + u8 unused; + u8 type; + } sha1; + struct { + u8 type; + u8 algo; + } ng; + u8 data[2]; + } xattr; +}; + +struct evm_digest { + struct ima_digest_data_hdr hdr; + char digest[64]; +}; + +struct integrity_inode_attributes { + u64 version; + long unsigned int ino; + dev_t dev; +}; + +struct evm_iint_cache { + long unsigned int flags; + enum integrity_status evm_status: 4; + struct integrity_inode_attributes metadata_inode; +}; + +struct evm_ima_xattr_data_hdr { + u8 type; +}; + +struct evm_ima_xattr_data { + union { + struct { + u8 type; + }; + struct evm_ima_xattr_data_hdr hdr; + }; + u8 data[0]; +}; + +struct evm_xattr { + struct evm_ima_xattr_data_hdr data; + u8 digest[20]; +}; + +struct evtchn_alloc_unbound { + domid_t dom; + domid_t remote_dom; + evtchn_port_t port; +}; + +struct evtchn_bind_interdomain { + domid_t remote_dom; + evtchn_port_t remote_port; + evtchn_port_t local_port; +}; + +struct evtchn_bind_ipi { + uint32_t vcpu; + evtchn_port_t port; +}; + +struct evtchn_bind_pirq { + uint32_t pirq; + uint32_t flags; + evtchn_port_t port; +}; + +struct evtchn_bind_vcpu { + evtchn_port_t port; + uint32_t vcpu; +}; + +struct evtchn_bind_virq { + uint32_t virq; + uint32_t vcpu; + evtchn_port_t port; +}; + +struct evtchn_close { + evtchn_port_t port; +}; + +struct evtchn_expand_array { + uint64_t array_gfn; +}; + +struct evtchn_fifo_control_block { + uint32_t ready; + uint32_t _rsvd; + event_word_t head[16]; +}; + +struct evtchn_fifo_queue { + uint32_t head[16]; +}; + +struct evtchn_init_control { + uint64_t control_gfn; + uint32_t offset; + uint32_t vcpu; + uint8_t link_bits; + uint8_t _pad[7]; +}; + +struct evtchn_loop_ctrl { + ktime_t timeout; + unsigned int count; + bool defer_eoi; +}; + +struct evtchn_ops { + unsigned int (*max_channels)(void); + unsigned int (*nr_channels)(void); + int (*setup)(evtchn_port_t); + void (*remove)(evtchn_port_t, unsigned int); + void (*bind_to_cpu)(evtchn_port_t, unsigned int, unsigned int); + void (*clear_pending)(evtchn_port_t); + void (*set_pending)(evtchn_port_t); + bool (*is_pending)(evtchn_port_t); + void (*mask)(evtchn_port_t); + void (*unmask)(evtchn_port_t); + void (*handle_events)(unsigned int, struct evtchn_loop_ctrl *); + void (*resume)(void); + int (*percpu_init)(unsigned int); + int (*percpu_deinit)(unsigned int); +}; + +struct evtchn_send { + evtchn_port_t port; +}; + +struct evtchn_set_priority { + evtchn_port_t port; + uint32_t priority; +}; + +struct evtchn_status { + domid_t dom; + evtchn_port_t port; + uint32_t status; + uint32_t vcpu; + union { + struct { + domid_t dom; + } unbound; + struct { + domid_t dom; + evtchn_port_t port; + } interdomain; + uint32_t pirq; + uint32_t virq; + } u; +}; + +struct evtchn_unmask { + evtchn_port_t port; +}; + +struct ewma_pkt_len { + long unsigned int internal; +}; + +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[8192]; + char VC2_stack_guard[0]; + char VC2_stack[8192]; + char IST_top_guard[0]; +}; + +struct exception_table_entry { + int insn; + int fixup; + int data; +}; + +struct exceptional_entry_key { + struct xarray *xa; + long unsigned int entry_start; +}; + +struct exec_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; +}; + +struct execmem_range { + long unsigned int start; + long unsigned int end; + long unsigned int fallback_start; + long unsigned int fallback_end; + pgprot_t pgprot; + unsigned int alignment; + enum execmem_range_flags flags; +}; + +struct execmem_info { + struct execmem_range ranges[5]; +}; + +struct execute_work { + struct work_struct work; +}; + +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 fid; + +struct iomap; + +struct handle_to_path_ctx; + +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 *); + int (*permission)(struct handle_to_path_ctx *, unsigned int); + struct file * (*open)(struct path *, unsigned int); + long unsigned int flags; +}; + +struct expresswire_timing { + long unsigned int poweroff_us; + long unsigned int detect_delay_us; + long unsigned int detect_us; + long unsigned int data_start_us; + long unsigned int end_of_data_low_us; + long unsigned int end_of_data_high_us; + long unsigned int short_bitset_us; + long unsigned int long_bitset_us; +}; + +struct expresswire_common_props { + struct gpio_desc *ctrl_gpio; + struct expresswire_timing timing; +}; + +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_prealloc_space; + +struct ext4_locality_group; + +struct ext4_allocation_context { + struct inode *ac_inode; + struct super_block *ac_sb; + struct ext4_free_extent ac_o_ex; + struct ext4_free_extent ac_g_ex; + struct ext4_free_extent ac_b_ex; + struct ext4_free_extent ac_f_ex; + ext4_grpblk_t ac_orig_goal_len; + __u32 ac_flags; + __u32 ac_groups_linear_remaining; + __u16 ac_groups_scanned; + __u16 ac_found; + __u16 ac_cX_found[5]; + __u16 ac_tail; + __u16 ac_buddy; + __u8 ac_status; + __u8 ac_criteria; + __u8 ac_2order; + __u8 ac_op; + struct folio *ac_bitmap_folio; + struct folio *ac_buddy_folio; + struct ext4_prealloc_space *ac_pa; + struct ext4_locality_group *ac_lg; +}; + +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_attr { + struct attribute attr; + short int attr_id; + short int attr_ptr; + short unsigned int attr_size; + union { + int offset; + void *explicit_ptr; + } u; +}; + +struct ext4_group_info; + +struct ext4_buddy { + struct folio *bd_buddy_folio; + void *bd_buddy; + struct folio *bd_bitmap_folio; + void *bd_bitmap; + struct ext4_group_info *bd_info; + struct super_block *bd_sb; + __u16 bd_blkbits; + ext4_group_t bd_group; +}; + +struct ext4_dir_entry { + __le32 inode; + __le16 rec_len; + __le16 name_len; + char name[255]; +}; + +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 ext4_dir_entry_tail { + __le32 det_reserved_zero1; + __le16 det_rec_len; + __u8 det_reserved_zero2; + __u8 det_reserved_ft; + __le32 det_checksum; +}; + +struct ext4_err_translation { + int code; + int errno; +}; + +struct ext4_es_stats { + long unsigned int 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 extent_status; + +struct ext4_es_tree { + struct rb_root root; + struct extent_status *cache_es; +}; + +struct ext4_extent; + +struct ext4_extent_idx; + +struct ext4_extent_header; + +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 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_extent_tail { + __le32 et_checksum; +}; + +struct ext4_fc_add_range { + __le32 fc_ino; + __u8 fc_ex[12]; +}; + +struct ext4_fc_alloc_region { + ext4_lblk_t lblk; + ext4_fsblk_t pblk; + int ino; + int len; +}; + +struct ext4_fc_del_range { + __le32 fc_ino; + __le32 fc_lblk; + __le32 fc_len; +}; + +struct ext4_fc_dentry_info { + __le32 fc_parent_ino; + __le32 fc_ino; + __u8 fc_dname[0]; +}; + +struct name_snapshot { + struct qstr name; + union shortname_store inline_name; +}; + +struct ext4_fc_dentry_update { + int fcd_op; + int fcd_parent; + int fcd_ino; + struct name_snapshot fcd_name; + struct list_head fcd_list; + struct list_head fcd_dilist; +}; + +struct ext4_fc_head { + __le32 fc_features; + __le32 fc_tid; +}; + +struct ext4_fc_inode { + __le32 fc_ino; + __u8 fc_raw_inode[0]; +}; + +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_fc_stats { + unsigned int fc_ineligible_reason_count[10]; + long unsigned int fc_num_commits; + long unsigned int fc_ineligible_commits; + long unsigned int fc_failed_commits; + long unsigned int fc_skipped_commits; + long unsigned int fc_numblks; + u64 s_fc_avg_commit_time; +}; + +struct ext4_fc_tail { + __le32 fc_tid; + __le32 fc_crc; +}; + +struct ext4_fc_tl { + __le16 fc_tag; + __le16 fc_len; +}; + +struct ext4_fc_tl_mem { + u16 fc_tag; + u16 fc_len; +}; + +struct fscrypt_str { + unsigned char *name; + u32 len; +}; + +struct ext4_filename { + const struct qstr *usr_fname; + struct fscrypt_str disk_name; + struct dx_hash_info hinfo; + struct fscrypt_str crypto_buf; + struct qstr cf_name; +}; + +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; +}; + +union fscrypt_policy; + +struct fscrypt_dummy_policy { + const union fscrypt_policy *policy; +}; + +struct ext4_fs_context { + char *s_qf_names[3]; + struct fscrypt_dummy_policy dummy_enc_policy; + int s_jquota_fmt; + short unsigned int qname_spec; + long unsigned int vals_s_flags; + long unsigned int mask_s_flags; + long unsigned int journal_devnum; + long unsigned int s_commit_interval; + long unsigned int s_stripe; + unsigned int s_inode_readahead_blks; + unsigned int s_want_extra_isize; + unsigned int s_li_wait_mult; + unsigned int s_max_dir_size_kb; + unsigned int journal_ioprio; + unsigned int vals_s_mount_opt; + unsigned int mask_s_mount_opt; + unsigned int vals_s_mount_opt2; + unsigned int mask_s_mount_opt2; + unsigned int opt_flags; + unsigned int spec; + u32 s_max_batch_time; + u32 s_min_batch_time; + kuid_t s_resuid; + kgid_t s_resgid; + ext4_fsblk_t s_sb_block; +}; + +struct ext4_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 ext4_getfsmap_info; + +struct ext4_getfsmap_dev { + int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); + u32 gfd_dev; +}; + +typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); + +struct ext4_getfsmap_info { + struct ext4_fsmap_head *gfi_head; + ext4_fsmap_format_t gfi_formatter; + void *gfi_format_arg; + ext4_fsblk_t gfi_next_fsblk; + u32 gfi_dev; + ext4_group_t gfi_agno; + struct ext4_fsmap gfi_low; + struct ext4_fsmap gfi_high; + struct ext4_fsmap gfi_lastfree; + struct list_head gfi_meta_list; + bool gfi_last; +}; + +struct 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_group_info { + long unsigned int 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_iloc { + struct buffer_head *bh; + long unsigned int offset; + ext4_group_t block_group; +}; + +struct ext4_inode { + __le16 i_mode; + __le16 i_uid; + __le32 i_size_lo; + __le32 i_atime; + __le32 i_ctime; + __le32 i_mtime; + __le32 i_dtime; + __le16 i_gid; + __le16 i_links_count; + __le32 i_blocks_lo; + __le32 i_flags; + union { + struct { + __le32 l_i_version; + } linux1; + struct { + __u32 h_i_translator; + } hurd1; + struct { + __u32 m_i_reserved1; + } masix1; + } osd1; + __le32 i_block[15]; + __le32 i_generation; + __le32 i_file_acl_lo; + __le32 i_size_high; + __le32 i_obso_faddr; + union { + struct { + __le16 l_i_blocks_high; + __le16 l_i_file_acl_high; + __le16 l_i_uid_high; + __le16 l_i_gid_high; + __le16 l_i_checksum_lo; + __le16 l_i_reserved; + } linux2; + struct { + __le16 h_i_reserved1; + __u16 h_i_mode_high; + __u16 h_i_uid_high; + __u16 h_i_gid_high; + __u32 h_i_author; + } hurd2; + struct { + __le16 h_i_reserved1; + __le16 m_i_file_acl_high; + __u32 m_i_reserved2[2]; + } masix2; + } osd2; + __le16 i_extra_isize; + __le16 i_checksum_hi; + __le32 i_ctime_extra; + __le32 i_mtime_extra; + __le32 i_atime_extra; + __le32 i_crtime; + __le32 i_crtime_extra; + __le32 i_version_hi; + __le32 i_projid; +}; + +struct ext4_pending_tree { + struct rb_root root; +}; + +struct jbd2_inode; + +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; + long unsigned int 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; + atomic_t i_unwritten; + 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; + unsigned int i_reserved_data_blocks; + struct rb_root i_prealloc_node; + rwlock_t i_prealloc_lock; + struct ext4_es_tree i_es_tree; + rwlock_t i_es_lock; + struct list_head i_es_list; + unsigned int i_es_all_nr; + unsigned int i_es_shk_nr; + ext4_lblk_t i_es_shrink_lblk; + ext4_group_t i_last_alloc_group; + 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; + 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 jbd2_journal_handle; + +typedef struct jbd2_journal_handle handle_t; + +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 ext4_io_end_vec { + struct list_head list; + loff_t offset; + ssize_t size; +}; + +struct ext4_io_submit { + struct writeback_control *io_wbc; + struct bio *io_bio; + ext4_io_end_t *io_end; + sector_t io_next_block; +}; + +struct ext4_journal_cb_entry { + struct list_head jce_list; + void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); +}; + +struct jbd2_buffer_trigger_type { + void (*t_frozen)(struct jbd2_buffer_trigger_type *, struct buffer_head *, void *, size_t); + void (*t_abort)(struct jbd2_buffer_trigger_type *, struct buffer_head *); +}; + +struct ext4_journal_trigger { + struct jbd2_buffer_trigger_type tr_triggers; + struct super_block *sb; +}; + +struct ext4_lazy_init { + long unsigned int li_state; + struct list_head li_request_list; + struct mutex li_list_mtx; +}; + +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; + long unsigned int lr_next_sched; + long unsigned int lr_timeout; +}; + +struct ext4_locality_group { + struct mutex lg_mutex; + struct list_head lg_prealloc_list[10]; + spinlock_t lg_prealloc_lock; +}; + +struct ext4_map_blocks { + ext4_fsblk_t m_pblk; + ext4_lblk_t m_lblk; + unsigned int m_len; + unsigned int m_flags; +}; + +struct ext4_mount_options { + long unsigned int s_mount_opt; + long unsigned int s_mount_opt2; + kuid_t s_resuid; + kgid_t s_resgid; + long unsigned int s_commit_interval; + u32 s_min_batch_time; + u32 s_max_batch_time; + int s_jquota_fmt; + char *s_qf_names[3]; +}; + +struct ext4_new_group_data; + +struct ext4_new_flex_group_data { + struct ext4_new_group_data *groups; + __u16 *bg_flags; + ext4_group_t resize_bg; + ext4_group_t count; +}; + +struct ext4_new_group_data { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 mdata_blocks; + __u32 free_clusters_count; +}; + +struct ext4_new_group_input { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 unused; +}; + +struct ext4_orphan_block { + atomic_t ob_free_entries; + struct buffer_head *ob_bh; +}; + +struct ext4_orphan_block_tail { + __le32 ob_magic; + __le32 ob_checksum; +}; + +struct ext4_orphan_info { + int of_blocks; + __u32 of_csum_seed; + struct ext4_orphan_block *of_binfo; +}; + +struct ext4_prealloc_space { + union { + struct rb_node inode_node; + struct list_head lg_list; + } pa_node; + struct list_head pa_group_list; + union { + struct list_head pa_tmp_list; + struct callback_head pa_rcu; + } u; + spinlock_t pa_lock; + atomic_t pa_count; + unsigned int pa_deleted; + ext4_fsblk_t pa_pstart; + ext4_lblk_t pa_lstart; + ext4_grpblk_t pa_len; + ext4_grpblk_t pa_free; + short unsigned int pa_type; + union { + rwlock_t *inode_lock; + spinlock_t *lg_lock; + } pa_node_lock; + struct inode *pa_inode; +}; + +struct ext4_rcu_ptr { + struct callback_head rcu; + void *ptr; +}; + +struct ext4_renament { + struct inode *dir; + struct dentry *dentry; + struct inode *inode; + bool is_dir; + int dir_nlink_delta; + struct buffer_head *bh; + struct ext4_dir_entry_2 *de; + int inlined; + struct buffer_head *dir_bh; + struct ext4_dir_entry_2 *parent_de; + int dir_inlined; +}; + +struct ext4_sb_encodings { + __u16 magic; + char *name; + unsigned int version; +}; + +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 *read_count; + struct rcuwait writer; + wait_queue_head_t waiters; + atomic_t block; +}; + +struct ext4_super_block; + +struct journal_s; + +struct ext4_system_blocks; + +struct flex_groups; + +struct shrinker; + +struct mb_cache; + +struct ext4_sb_info { + long unsigned int s_desc_size; + long unsigned int s_inodes_per_block; + long unsigned int s_blocks_per_group; + long unsigned int s_clusters_per_group; + long unsigned int s_inodes_per_group; + long unsigned int s_itb_per_group; + long unsigned int s_gdb_count; + long unsigned int s_desc_per_block; + ext4_group_t s_groups_count; + ext4_group_t s_blockfile_groups; + long unsigned int 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 **s_group_desc; + unsigned int s_mount_opt; + unsigned int s_mount_opt2; + long unsigned int s_mount_flags; + unsigned int s_def_mount_opt; + unsigned int s_def_mount_opt2; + ext4_fsblk_t s_sb_block; + atomic64_t s_resv_clusters; + kuid_t s_resuid; + kgid_t s_resgid; + short unsigned int s_mount_state; + short unsigned int 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; + long unsigned int s_ext4_flags; + struct mutex s_orphan_lock; + struct list_head s_orphan; + struct ext4_orphan_info s_orphan_info; + long unsigned int s_commit_interval; + u32 s_max_batch_time; + u32 s_min_batch_time; + struct file *s_journal_bdev_file; + char *s_qf_names[3]; + int s_jquota_fmt; + unsigned int s_want_extra_isize; + struct ext4_system_blocks *s_system_blks; + struct ext4_group_info ***s_group_info; + struct inode *s_buddy_cache; + spinlock_t s_md_lock; + short unsigned int *s_mb_offsets; + unsigned int *s_mb_maxs; + unsigned int s_group_info_size; + unsigned int s_mb_free_pending; + struct list_head s_freed_data_list[2]; + struct list_head s_discard_list; + struct work_struct s_discard_work; + atomic_t s_retry_alloc_pending; + struct list_head *s_mb_avg_fragment_size; + rwlock_t *s_mb_avg_fragment_size_locks; + struct list_head *s_mb_largest_free_orders; + rwlock_t *s_mb_largest_free_orders_locks; + long unsigned int s_stripe; + unsigned int s_mb_max_linear_groups; + unsigned int s_mb_stream_request; + unsigned int s_mb_max_to_scan; + unsigned int s_mb_min_to_scan; + unsigned int s_mb_stats; + unsigned int s_mb_order2_reqs; + unsigned int s_mb_group_prealloc; + unsigned int s_max_dir_size_kb; + long unsigned int s_mb_last_group; + long unsigned int s_mb_last_start; + unsigned int s_mb_prefetch; + unsigned int s_mb_prefetch_limit; + unsigned int s_mb_best_avail_max_trim_order; + atomic_t s_bal_reqs; + atomic_t s_bal_success; + atomic_t s_bal_allocated; + atomic_t s_bal_ex_scanned; + atomic_t s_bal_cX_ex_scanned[5]; + atomic_t s_bal_groups_scanned; + atomic_t s_bal_goals; + atomic_t s_bal_len_goals; + atomic_t s_bal_breaks; + atomic_t s_bal_2orders; + atomic_t s_bal_p2_aligned_bad_suggestions; + atomic_t s_bal_goal_fast_bad_suggestions; + atomic_t s_bal_best_avail_bad_suggestions; + atomic64_t s_bal_cX_groups_considered[5]; + atomic64_t s_bal_cX_hits[5]; + atomic64_t s_bal_cX_failed[5]; + atomic_t s_mb_buddies_generated; + atomic64_t s_mb_generation_time; + atomic_t s_mb_lost_chunks; + atomic_t s_mb_preallocated; + atomic_t s_mb_discarded; + atomic_t s_lock_busy; + struct ext4_locality_group *s_locality_groups; + long unsigned int 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 **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; + long unsigned int s_last_trim_minblks; + __u32 s_csum_seed; + struct shrinker *s_es_shrinker; + struct list_head s_es_list; + long int s_es_nr_inode; + struct ext4_es_stats s_es_stats; + struct mb_cache *s_ea_block_cache; + struct mb_cache *s_ea_inode_cache; + long: 64; + long: 64; + spinlock_t s_es_lock; + struct ext4_journal_trigger s_journal_triggers[1]; + struct ratelimit_state s_err_ratelimit_state; + struct ratelimit_state s_warning_ratelimit_state; + struct ratelimit_state s_msg_ratelimit_state; + atomic_t s_warning_count; + atomic_t s_msg_count; + struct fscrypt_dummy_policy s_dummy_enc_policy; + struct percpu_rw_semaphore s_writepages_rwsem; + struct dax_device *s_daxdev; + u64 s_dax_part_off; + errseq_t s_bdev_wb_err; + spinlock_t s_bdev_wb_lock; + spinlock_t s_error_lock; + int s_add_error_count; + int s_first_error_code; + __u32 s_first_error_line; + __u32 s_first_error_ino; + __u64 s_first_error_block; + const char *s_first_error_func; + time64_t s_first_error_time; + int s_last_error_code; + __u32 s_last_error_line; + __u32 s_last_error_ino; + __u64 s_last_error_block; + const char *s_last_error_func; + time64_t s_last_error_time; + struct work_struct s_sb_upd_work; + unsigned int s_awu_min; + unsigned int s_awu_max; + 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; +}; + +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 ext4_system_blocks { + struct rb_root root; + struct callback_head rcu; +}; + +struct ext4_system_zone { + struct rb_node node; + ext4_fsblk_t start_blk; + unsigned int count; + u32 ino; +}; + +struct ext4_xattr_entry; + +struct ext4_xattr_search { + struct ext4_xattr_entry *first; + void *base; + void *end; + struct ext4_xattr_entry *here; + int not_found; +}; + +struct ext4_xattr_block_find { + struct ext4_xattr_search s; + struct buffer_head *bh; +}; + +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 ext4_xattr_ibody_find { + struct ext4_xattr_search s; + struct ext4_iloc iloc; +}; + +struct ext4_xattr_ibody_header { + __le32 h_magic; +}; + +struct ext4_xattr_info { + const char *name; + const void *value; + size_t value_len; + int name_index; + int in_inode; +}; + +struct ext4_xattr_inode_array { + unsigned int count; + struct inode *inodes[0]; +}; + +struct ext_arg { + size_t argsz; + struct timespec64 ts; + const sigset_t *sig; + ktime_t min_time; + bool ts_set; +}; + +struct msg_msg; + +struct ext_wait_queue { + struct task_struct *task; + struct list_head list; + struct msg_msg *msg; + int state; +}; + +union extcon_property_value { + int intval; +}; + +struct extcon_cable { + struct extcon_dev *edev; + int cable_index; + struct attribute_group attr_g; + struct device_attribute attr_name; + struct device_attribute attr_state; + struct attribute *attrs[3]; + union extcon_property_value usb_propval[3]; + union extcon_property_value chg_propval[1]; + union extcon_property_value jack_propval[1]; + union extcon_property_value disp_propval[2]; + long unsigned int usb_bits[1]; + long unsigned int chg_bits[1]; + long unsigned int jack_bits[1]; + long unsigned int disp_bits[1]; +}; + +struct extcon_dev { + const char *name; + const unsigned int *supported_cable; + const u32 *mutually_exclusive; + struct device dev; + unsigned int id; + struct raw_notifier_head nh_all; + struct raw_notifier_head *nh; + struct list_head entry; + int max_supported; + spinlock_t lock; + u32 state; + struct device_type extcon_dev_type; + struct extcon_cable *cables; + struct attribute_group attr_g_muex; + struct attribute **attrs_muex; + struct device_attribute *d_attrs_muex; +}; + +struct extcon_dev_notifier_devres { + struct extcon_dev *edev; + unsigned int id; + struct notifier_block *nb; +}; + +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 extent_status { + struct rb_node rb_node; + ext4_lblk_t es_lblk; + ext4_lblk_t es_len; + ext4_fsblk_t es_pblk; +}; + +struct external_name { + atomic_t count; + struct callback_head head; + unsigned char name[0]; +}; + +struct extra_reg { + unsigned int event; + unsigned int msr; + u64 config_mask; + u64 valid_mask; + int idx; + bool extra_msr_access; +}; + +struct f815xxa_data { + spinlock_t lock; + int idx; +}; + +struct f_owner_ex { + int type; + __kernel_pid_t pid; +}; + +struct failover_ops; + +struct failover { + struct list_head list; + struct net_device *failover_dev; + netdevice_tracker dev_tracker; + struct failover_ops *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 fan_fsid { + struct super_block *sb; + __kernel_fsid_t id; + bool weak; +}; + +struct fsnotify_event { + struct list_head list; +}; + +struct fanotify_event { + struct fsnotify_event fse; + struct hlist_node merge_list; + u32 mask; + struct { + unsigned int type: 3; + unsigned int hash: 29; + }; + struct pid *pid; +}; + +struct fanotify_fh { + u8 type; + u8 len; + u8 flags; + u8 pad; + unsigned char buf[0]; +}; + +struct fanotify_error_event { + struct fanotify_event fae; + s32 error; + u32 err_count; + __kernel_fsid_t fsid; + struct { + struct fanotify_fh object_fh; + unsigned char _inline_fh_buf[128]; + }; +}; + +struct fanotify_event_info_header { + __u8 info_type; + __u8 pad; + __u16 len; +}; + +struct fanotify_event_info_error { + struct fanotify_event_info_header hdr; + __s32 error; + __u32 error_count; +}; + +struct fanotify_event_info_fid { + struct fanotify_event_info_header hdr; + __kernel_fsid_t fsid; + unsigned char handle[0]; +}; + +struct fanotify_event_info_pidfd { + struct fanotify_event_info_header hdr; + __s32 pidfd; +}; + +struct fanotify_event_info_range { + struct fanotify_event_info_header hdr; + __u32 pad; + __u64 offset; + __u64 count; +}; + +struct fanotify_event_metadata { + __u32 event_len; + __u8 vers; + __u8 reserved; + __u16 metadata_len; + __u64 mask; + __s32 fd; + __s32 pid; +}; + +struct fanotify_fid_event { + struct fanotify_event fae; + __kernel_fsid_t fsid; + struct { + struct fanotify_fh object_fh; + unsigned char _inline_fh_buf[12]; + }; +}; + +struct fanotify_group_private_data { + struct hlist_head *merge_hash; + struct list_head access_list; + wait_queue_head_t access_waitq; + int flags; + int f_flags; + struct ucounts *ucounts; + mempool_t error_events_pool; +}; + +struct fanotify_info { + u8 dir_fh_totlen; + u8 dir2_fh_totlen; + u8 file_fh_totlen; + u8 name_len; + u8 name2_len; + u8 pad[3]; + unsigned char buf[0]; +}; + +struct fanotify_mark { + struct fsnotify_mark fsn_mark; + __kernel_fsid_t fsid; +}; + +struct fanotify_name_event { + struct fanotify_event fae; + __kernel_fsid_t fsid; + struct fanotify_info info; +}; + +struct fanotify_path_event { + struct fanotify_event fae; + struct path path; +}; + +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 fanotify_perm_event { + struct fanotify_event fae; + struct path path; + const loff_t *ppos; + size_t count; + u32 response; + short unsigned int state; + int fd; + union { + struct fanotify_response_info_header hdr; + struct fanotify_response_info_audit_rule audit_rule; + }; +}; + +struct fanotify_response { + __s32 fd; + __u32 response; +}; + +struct fanout_args { + __u16 id; + __u16 type_flags; + __u32 max_num_members; +}; + +struct fast_pool { + long unsigned int pool[4]; + long unsigned int last; + unsigned int count; + struct timer_list mix; +}; + +struct request_sock; + +struct tcp_fastopen_context; + +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 *ctx; +}; + +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 fat_bios_param_block { + u16 fat_sector_size; + u8 fat_sec_per_clus; + u16 fat_reserved; + u8 fat_fats; + u16 fat_dir_entries; + u16 fat_sectors; + u16 fat_fat_length; + u32 fat_total_sect; + u8 fat16_state; + u32 fat16_vol_id; + u32 fat32_length; + u32 fat32_root_cluster; + u16 fat32_info_sector; + u8 fat32_state; + u32 fat32_vol_id; +}; + +struct fat_boot_fsinfo { + __le32 signature1; + __le32 reserved1[120]; + __le32 signature2; + __le32 free_clusters; + __le32 next_cluster; + __le32 reserved2[4]; +}; + +struct fat_boot_sector { + __u8 ignored[3]; + __u8 system_id[8]; + __u8 sector_size[2]; + __u8 sec_per_clus; + __le16 reserved; + __u8 fats; + __u8 dir_entries[2]; + __u8 sectors[2]; + __u8 media; + __le16 fat_length; + __le16 secs_track; + __le16 heads; + __le32 hidden; + __le32 total_sect; + union { + struct { + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat16; + struct { + __le32 length; + __le16 flags; + __u8 version[2]; + __le32 root_cluster; + __le16 info_sector; + __le16 backup_boot; + __le16 reserved2[6]; + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat32; + }; +}; + +struct 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 fat_entry { + int entry; + union { + u8 *ent12_p[2]; + __le16 *ent16_p; + __le32 *ent32_p; + } u; + int nr_bhs; + struct buffer_head *bhs[2]; + struct inode *fat_inode; +}; + +struct fat_fid { + u32 i_gen; + u32 i_pos_low; + u16 i_pos_hi; + u16 parent_i_pos_hi; + u32 parent_i_pos_low; + u32 parent_i_gen; +}; + +struct fat_floppy_defaults { + unsigned int nr_sectors; + unsigned int sec_per_clus; + unsigned int dir_entries; + unsigned int media; + unsigned int fat_length; +}; + +struct fat_ioctl_filldir_callback { + struct dir_context ctx; + void *dirent; + int result; + const char *longname; + int long_len; + const char *shortname; + int short_len; +}; + +struct fat_mount_options { + kuid_t fs_uid; + kgid_t fs_gid; + short unsigned int fs_fmask; + short unsigned int fs_dmask; + short unsigned int codepage; + int time_offset; + char *iocharset; + short unsigned int shortname; + unsigned char name_check; + unsigned char errors; + unsigned char nfs; + short unsigned int 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; + unsigned int debug: 1; +}; + +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 fatent_operations { + void (*ent_blocknr)(struct super_block *, int, int *, sector_t *); + void (*ent_set_ptr)(struct fat_entry *, int); + int (*ent_bread)(struct super_block *, struct fat_entry *, int, sector_t); + int (*ent_get)(struct fat_entry *); + void (*ent_put)(struct fat_entry *, int); + int (*ent_next)(struct fat_entry *); +}; + +struct 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 faux_device { + struct device dev; +}; + +struct faux_device_ops { + int (*probe)(struct faux_device *); + void (*remove)(struct faux_device *); +}; + +struct faux_object { + struct faux_device faux_dev; + const struct faux_device_ops *faux_ops; +}; + +struct fb_bitfield { + __u32 offset; + __u32 length; + __u32 msb_right; +}; + +struct fb_blit_caps { + long unsigned int x[1]; + long unsigned int y[2]; + u32 len; + u32 flags; +}; + +struct fb_chroma { + __u32 redx; + __u32 greenx; + __u32 bluex; + __u32 whitex; + __u32 redy; + __u32 greeny; + __u32 bluey; + __u32 whitey; +}; + +struct fb_cmap { + __u32 start; + __u32 len; + __u16 *red; + __u16 *green; + __u16 *blue; + __u16 *transp; +}; + +struct fb_cmap32 { + u32 start; + u32 len; + compat_caddr_t red; + compat_caddr_t green; + compat_caddr_t blue; + compat_caddr_t transp; +}; + +struct fb_cmap_user { + __u32 start; + __u32 len; + __u16 *red; + __u16 *green; + __u16 *blue; + __u16 *transp; +}; + +struct fb_con2fbmap { + __u32 console; + __u32 framebuffer; +}; + +struct fb_copyarea { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 sx; + __u32 sy; +}; + +struct fbcurpos { + __u16 x; + __u16 y; +}; + +struct fb_image { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 fg_color; + __u32 bg_color; + __u8 depth; + const char *data; + struct fb_cmap cmap; +}; + +struct fb_cursor { + __u16 set; + __u16 enable; + __u16 rop; + const char *mask; + struct fbcurpos hot; + struct fb_image image; +}; + +struct fb_cvt_data { + u32 xres; + u32 yres; + u32 refresh; + u32 f_refresh; + u32 pixclock; + u32 hperiod; + u32 hblank; + u32 hfreq; + u32 htotal; + u32 vtotal; + u32 vsync; + u32 hsync; + u32 h_front_porch; + u32 h_back_porch; + u32 v_front_porch; + u32 v_back_porch; + u32 h_margin; + u32 v_margin; + u32 interlace; + u32 aspect_ratio; + u32 active_pixels; + u32 flags; + u32 status; +}; + +struct fb_deferred_io_pageref { + struct page *page; + long unsigned int offset; + struct list_head list; +}; + +struct fb_event { + struct fb_info *info; + void *data; +}; + +struct fb_fillrect { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 color; + __u32 rop; +}; + +struct fb_fix_screeninfo { + char id[16]; + long unsigned int smem_start; + __u32 smem_len; + __u32 type; + __u32 type_aux; + __u32 visual; + __u16 xpanstep; + __u16 ypanstep; + __u16 ywrapstep; + __u32 line_length; + long unsigned int mmio_start; + __u32 mmio_len; + __u32 accel; + __u16 capabilities; + __u16 reserved[2]; +}; + +struct fb_fix_screeninfo32 { + char id[16]; + compat_caddr_t smem_start; + u32 smem_len; + u32 type; + u32 type_aux; + u32 visual; + u16 xpanstep; + u16 ypanstep; + u16 ywrapstep; + u32 line_length; + compat_caddr_t mmio_start; + u32 mmio_len; + u32 accel; + u16 reserved[3]; +}; + +struct 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_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; + long unsigned int blit_x[1]; + long unsigned int blit_y[2]; + void (*writeio)(struct fb_info *, void *, void *, unsigned int); + void (*readio)(struct fb_info *, void *, void *, unsigned int); +}; + +struct lcd_device; + +struct fb_ops; + +struct fb_tile_ops; + +struct fb_info { + refcount_t count; + int node; + int flags; + int fbcon_rotate_hint; + struct mutex lock; + struct mutex mm_lock; + struct fb_var_screeninfo var; + struct fb_fix_screeninfo fix; + struct fb_monspecs monspecs; + struct fb_pixmap pixmap; + struct fb_pixmap sprite; + struct fb_cmap cmap; + struct list_head modelist; + struct fb_videomode *mode; + struct backlight_device *bl_dev; + struct mutex bl_curve_mutex; + u8 bl_curve[128]; + struct lcd_device *lcd_dev; + struct delayed_work deferred_work; + long unsigned int npagerefs; + struct fb_deferred_io_pageref *pagerefs; + struct fb_deferred_io *fbdefio; + const struct fb_ops *fbops; + struct device *device; + struct device *dev; + int class_flag; + struct fb_tile_ops *tileops; + union { + char *screen_base; + char *screen_buffer; + }; + long unsigned int screen_size; + void *pseudo_palette; + u32 state; + void *fbcon_par; + void *par; + bool skip_vt_switch; + bool skip_panic; +}; + +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_modelist { + struct list_head list; + struct fb_videomode mode; +}; + +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 *, size_t, loff_t *); + ssize_t (*fb_write)(struct fb_info *, const char *, 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, long unsigned int); + int (*fb_compat_ioctl)(struct fb_info *, unsigned int, long unsigned int); + 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_tilemap; + +struct fb_tilearea; + +struct fb_tilerect; + +struct fb_tileblit; + +struct fb_tilecursor; + +struct fb_tile_ops { + void (*fb_settile)(struct fb_info *, struct fb_tilemap *); + void (*fb_tilecopy)(struct fb_info *, struct fb_tilearea *); + void (*fb_tilefill)(struct fb_info *, struct fb_tilerect *); + void (*fb_tileblit)(struct fb_info *, struct fb_tileblit *); + void (*fb_tilecursor)(struct fb_info *, struct fb_tilecursor *); + int (*fb_get_tilemax)(struct fb_info *); +}; + +struct fb_tilearea { + __u32 sx; + __u32 sy; + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; +}; + +struct fb_tileblit { + __u32 sx; + __u32 sy; + __u32 width; + __u32 height; + __u32 fg; + __u32 bg; + __u32 length; + __u32 *indices; +}; + +struct fb_tilecursor { + __u32 sx; + __u32 sy; + __u32 mode; + __u32 shape; + __u32 fg; + __u32 bg; +}; + +struct fb_tilemap { + __u32 width; + __u32 height; + __u32 depth; + __u32 length; + const __u8 *data; +}; + +struct fb_tilerect { + __u32 sx; + __u32 sy; + __u32 width; + __u32 height; + __u32 index; + __u32 fg; + __u32 bg; + __u32 rop; +}; + +struct fbcon_display { + const u_char *fontdata; + int userfont; + u_short inverse; + short int yscroll; + int vrows; + int cursor_shape; + int con_rotate; + u32 xres_virtual; + u32 yres_virtual; + u32 height; + u32 width; + u32 bits_per_pixel; + u32 grayscale; + u32 nonstd; + u32 accel_flags; + u32 rotate; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + const struct fb_videomode *mode; +}; + +struct fbcon_ops { + void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); + void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); + void (*putcs)(struct vc_data *, struct fb_info *, const short unsigned int *, int, int, int, int, int); + void (*clear_margins)(struct vc_data *, struct fb_info *, int, int); + void (*cursor)(struct vc_data *, struct fb_info *, bool, int, int); + int (*update_start)(struct fb_info *); + int (*rotate_font)(struct fb_info *, struct vc_data *); + struct fb_var_screeninfo var; + struct delayed_work cursor_work; + struct fb_cursor cursor_state; + struct fbcon_display *p; + struct fb_info *info; + int currcon; + int cur_blink_jiffies; + int cursor_flash; + int cursor_reset; + int blank_state; + int graphics; + int save_graphics; + bool initialized; + int rotate; + int cur_rotate; + char *cursor_data; + u8 *fontbuffer; + u8 *fontdata; + u8 *cursor_src; + u32 cursor_size; + u32 fd_size; +}; + +struct fc_log { + refcount_t usage; + u8 head; + u8 tail; + u8 need_free; + struct module *owner; + char *buffer[8]; +}; + +struct fch_clk_data { + void *base; + char *name; +}; + +struct fch_hdr { + __u8 daddr[6]; + __u8 saddr[6]; +}; + +struct fcllc { + __u8 dsap; + __u8 ssap; + __u8 llc; + __u8 protid[3]; + __be16 ethertype; +}; + +struct fd { + long unsigned int word; +}; + +typedef struct fd class_fd_pos_t; + +typedef struct fd class_fd_raw_t; + +typedef struct fd class_fd_t; + +struct fd_data { + fmode_t mode; + unsigned int fd; +}; + +struct fd_range { + unsigned int from; + unsigned int to; +}; + +struct fddi_8022_1_hdr { + __u8 dsap; + __u8 ssap; + __u8 ctrl; +}; + +struct fddi_8022_2_hdr { + __u8 dsap; + __u8 ssap; + __u8 ctrl_1; + __u8 ctrl_2; +}; + +struct fddi_snap_hdr { + __u8 dsap; + __u8 ssap; + __u8 ctrl; + __u8 oui[3]; + __be16 ethertype; +}; + +struct fddihdr { + __u8 fc; + __u8 daddr[6]; + __u8 saddr[6]; + union { + struct fddi_8022_1_hdr llc_8022_1; + struct fddi_8022_2_hdr llc_8022_2; + struct fddi_snap_hdr llc_snap; + } hdr; +} __attribute__((packed)); + +struct fdtable { + unsigned int max_fds; + struct file **fd; + long unsigned int *close_on_exec; + long unsigned int *open_fds; + long unsigned int *full_fds_bits; + struct callback_head rcu; +}; + +struct features_reply_data { + struct ethnl_reply_data base; + u32 hw[2]; + u32 wanted[2]; + u32 active[2]; + u32 nochange[2]; + u32 all[2]; +}; + +struct fec_stat_grp { + u64 stats[9]; + u8 cnt; +}; + +struct fec_reply_data { + struct ethnl_reply_data base; + long unsigned int fec_link_modes[2]; + u32 active_fec; + u8 fec_auto; + struct fec_stat_grp corr; + struct fec_stat_grp uncorr; + struct fec_stat_grp corr_bits; +}; + +struct fentry_trace_entry_head { + struct trace_entry ent; + long unsigned int ip; +}; + +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; + }; + long unsigned int immediate; + void *data; + }; +}; + +struct trace_seq; + +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 fexit_trace_entry_head { + struct trace_entry ent; + long unsigned int func; + long unsigned int ret_ip; +}; + +struct ff_condition_effect { + __u16 right_saturation; + __u16 left_saturation; + __s16 right_coeff; + __s16 left_coeff; + __u16 deadband; + __s16 center; +}; + +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_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; + long unsigned int ffbit[2]; + struct mutex mutex; + int max_effects; + struct ff_effect *effects; + struct file *effect_owners[0]; +}; + +struct ff_trigger { + __u16 button; + __u16 interval; +}; + +struct ff_replay { + __u16 length; + __u16 delay; +}; + +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 *custom_data; +}; + +struct ff_rumble_effect { + __u16 strong_magnitude; + __u16 weak_magnitude; +}; + +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 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 fgraph_cpu_data { + pid_t last_pid; + int depth; + int depth_irq; + int ignore; + long unsigned int enter_funcs[50]; +}; + +struct ftrace_graph_ent { + long unsigned int func; + int depth; +} __attribute__((packed)); + +struct ftrace_graph_ent_entry { + struct trace_entry ent; + struct ftrace_graph_ent graph_ent; +}; + +struct fgraph_retaddr_ent { + long unsigned int func; + int depth; + long unsigned int retaddr; +} __attribute__((packed)); + +struct fgraph_retaddr_ent_entry { + struct trace_entry ent; + struct fgraph_retaddr_ent graph_ent; +}; + +struct ftrace_graph_ret { + long unsigned int func; + long unsigned int retval; + int depth; + unsigned int overrun; +}; + +struct ftrace_graph_ret_entry { + struct trace_entry ent; + struct ftrace_graph_ret ret; + long long unsigned int calltime; + long long unsigned int rettime; +}; + +struct fgraph_data { + struct fgraph_cpu_data *cpu_data; + union { + struct ftrace_graph_ent_entry ent; + struct fgraph_retaddr_ent_entry rent; + } ent; + struct ftrace_graph_ret_entry ret; + int failed; + int cpu; + long: 0; +} __attribute__((packed)); + +struct fgraph_ops; + +typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *, struct fgraph_ops *, struct ftrace_regs *); + +typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *, struct fgraph_ops *, struct ftrace_regs *); + +typedef void (*ftrace_func_t)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *); + +struct ftrace_hash; + +struct ftrace_ops_hash { + struct ftrace_hash *notrace_hash; + struct ftrace_hash *filter_hash; + struct mutex regex_lock; +}; + +typedef int (*ftrace_ops_func_t)(struct ftrace_ops *, enum ftrace_ops_cmd); + +struct ftrace_ops { + ftrace_func_t func; + struct ftrace_ops *next; + long unsigned int 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; + long unsigned int trampoline; + long unsigned int trampoline_size; + struct list_head list; + struct list_head subop_list; + ftrace_ops_func_t ops_func; + struct ftrace_ops *managed; + long unsigned int direct_call; +}; + +struct fgraph_ops { + trace_func_graph_ent_t entryfunc; + trace_func_graph_ret_t retfunc; + struct ftrace_ops ops; + void *private; + trace_func_graph_ent_t saved_func; + int idx; +}; + +struct fgraph_times { + long long unsigned int calltime; + long long unsigned int sleeptime; +}; + +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 *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 fib4_rule { + struct fib_rule common; + u8 dst_len; + u8 src_len; + dscp_t dscp; + u8 dscp_full: 1; + __be32 src; + __be32 srcmask; + __be32 dst; + __be32 dstmask; + u32 tclassid; +}; + +struct fib6_node; + +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 nlmsghdr; + +struct nl_info { + struct nlmsghdr *nlh; + struct net *nl_net; + u32 portid; + u8 skip_notify: 1; + u8 skip_notify_kernel: 1; +}; + +struct fib6_config { + u32 fc_table; + u32 fc_metric; + int fc_dst_len; + int fc_src_len; + int fc_ifindex; + u32 fc_flags; + u32 fc_protocol; + u16 fc_type; + u16 fc_delete_all_nh: 1; + u16 fc_ignore_dev_down: 1; + u16 __unused: 14; + u32 fc_nh_id; + struct in6_addr fc_dst; + struct in6_addr fc_src; + struct in6_addr fc_prefsrc; + struct in6_addr fc_gateway; + long unsigned int 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 fib6_dump_arg { + struct net *net; + struct notifier_block *nb; + struct netlink_ext_ack *extack; +}; + +struct fib_notifier_info { + int family; + struct netlink_ext_ack *extack; +}; + +struct fib6_entry_notifier_info { + struct fib_notifier_info info; + struct fib6_info *rt; + unsigned int nsiblings; +}; + +struct fib6_gc_args { + int timeout; + int more; +}; + +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 **nhc_pcpu_rth_output; + struct rtable *nhc_rth_input; + struct fnhe_hash_bucket *nhc_exceptions; +}; + +struct rt6_info; + +struct rt6_exception_bucket; + +struct fib6_nh { + struct fib_nh_common nh_common; + long unsigned int last_probe; + struct rt6_info **rt6i_pcpu; + struct rt6_exception_bucket *rt6i_exception_bucket; +}; + +struct fib6_table; + +struct nexthop; + +struct fib6_info { + struct fib6_table *fib6_table; + struct fib6_info *fib6_next; + struct fib6_node *fib6_node; + union { + struct list_head fib6_siblings; + struct list_head nh_list; + }; + unsigned int fib6_nsiblings; + refcount_t fib6_ref; + long unsigned int expires; + struct hlist_node gc_link; + struct dst_metrics *fib6_metrics; + struct rt6key fib6_dst; + u32 fib6_flags; + struct rt6key fib6_src; + struct rt6key fib6_prefsrc; + u32 fib6_metric; + u8 fib6_protocol; + u8 fib6_type; + u8 offload; + u8 trap; + u8 offload_failed; + u8 should_flush: 1; + u8 dst_nocount: 1; + u8 dst_nopolicy: 1; + u8 fib6_destroying: 1; + u8 unused: 4; + struct callback_head rcu; + struct nexthop *nh; + struct fib6_nh fib6_nh[0]; +}; + +struct fib6_nh_age_excptn_arg { + struct fib6_gc_args *gc_args; + long unsigned int now; +}; + +struct fib6_nh_del_cached_rt_arg { + struct fib6_config *cfg; + struct fib6_info *f6i; +}; + +struct fib6_nh_dm_arg { + struct net *net; + const struct in6_addr *saddr; + int oif; + int flags; + struct fib6_nh *nh; +}; + +struct rt6_rtnl_dump_arg; + +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_excptn_arg { + struct rt6_info *rt; + int plen; +}; + +struct fib6_nh_frl_arg { + u32 flags; + int oif; + int strict; + int *mpri; + bool *do_rr; + struct fib6_nh *nh; +}; + +struct fib6_nh_match_arg { + const struct net_device *dev; + const struct in6_addr *gw; + struct fib6_nh *match; +}; + +struct fib6_nh_pcpu_arg { + struct fib6_info *from; + const struct fib6_table *table; +}; + +struct fib6_result; + +struct flowi6; + +struct fib6_nh_rd_arg { + struct fib6_result *res; + struct flowi6 *fl6; + const struct in6_addr *gw; + struct rt6_info **ret; +}; + +struct fib6_node { + struct fib6_node *parent; + struct fib6_node *left; + struct fib6_node *right; + struct fib6_node *subtree; + struct fib6_info *leaf; + __u16 fn_bit; + __u16 fn_flags; + int fn_sernum; + struct fib6_info *rr_ptr; + struct callback_head rcu; +}; + +struct fib6_result { + struct fib6_nh *nh; + struct fib6_info *f6i; + u32 fib6_flags; + u8 fib6_type; + struct rt6_info *rt6; +}; + +struct fib6_rule { + struct fib_rule common; + struct rt6key src; + struct rt6key dst; + __be32 flowlabel; + __be32 flowlabel_mask; + dscp_t dscp; + u8 dscp_full: 1; +}; + +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 hlist_head tb6_gc_hlist; +}; + +struct fib_info; + +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 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 fib_dump_filter { + u32 table_id; + bool filter_set; + bool dump_routes; + bool dump_exceptions; + bool rtnl_held; + unsigned char protocol; + unsigned char rt_type; + unsigned int flags; + struct net_device *dev; +}; + +struct 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_nh { + struct fib_nh_common nh_common; + struct hlist_node nh_hash; + struct fib_info *nh_parent; + __u32 nh_tclassid; + __be32 nh_saddr; + int nh_saddr_genid; +}; + +struct fib_info { + struct hlist_node fib_hash; + struct hlist_node fib_lhash; + struct list_head nh_list; + struct net *fib_net; + refcount_t fib_treeref; + refcount_t fib_clntref; + unsigned int fib_flags; + unsigned char fib_dead; + unsigned char fib_protocol; + unsigned char fib_scope; + unsigned char fib_type; + __be32 fib_prefsrc; + u32 fib_tb_id; + u32 fib_priority; + struct dst_metrics *fib_metrics; + int fib_nhs; + bool fib_nh_is_v6; + bool nh_updated; + bool pfsrc_removed; + struct nexthop *nh; + struct callback_head rcu; + struct fib_nh fib_nh[0]; +}; + +struct fib_lookup_arg { + void *lookup_ptr; + const void *lookup_data; + void *result; + struct fib_rule *rule; + u32 table; + int flags; +}; + +struct fib_nh_exception { + struct fib_nh_exception *fnhe_next; + int fnhe_genid; + __be32 fnhe_daddr; + u32 fnhe_pmtu; + bool fnhe_mtu_locked; + __be32 fnhe_gw; + long unsigned int fnhe_expires; + struct rtable *fnhe_rth_input; + struct rtable *fnhe_rth_output; + long unsigned int fnhe_stamp; + struct callback_head rcu; +}; + +struct fib_nh_notifier_info { + struct fib_notifier_info info; + struct fib_nh *fib_nh; +}; + +struct fib_notifier_net { + struct list_head fib_notifier_ops; + struct atomic_notifier_head fib_chain; +}; + +struct fib_notifier_ops { + int family; + struct list_head list; + unsigned int (*fib_seq_read)(const struct net *); + int (*fib_dump)(struct net *, struct notifier_block *, struct netlink_ext_ack *); + struct module *owner; + struct callback_head rcu; +}; + +struct fib_prop { + int error; + u8 scope; +}; + +struct fib_table; + +struct fib_result { + __be32 prefix; + unsigned char prefixlen; + unsigned char nh_sel; + unsigned char type; + unsigned char scope; + u32 tclassid; + dscp_t dscp; + struct fib_nh_common *nhc; + struct fib_info *fi; + struct fib_table *table; + struct hlist_head *fa_head; +}; + +struct fib_result_nl { + __be32 fl_addr; + u32 fl_mark; + unsigned char fl_tos; + unsigned char fl_scope; + unsigned char tb_id_in; + unsigned char tb_id; + unsigned char prefixlen; + unsigned char nh_sel; + unsigned char type; + unsigned char scope; + int err; +}; + +struct key_vector; + +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 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_rule_hdr { + __u8 family; + __u8 dst_len; + __u8 src_len; + __u8 tos; + __u8 table; + __u8 res1; + __u8 res2; + __u8 action; + __u32 flags; +}; + +struct fib_rule_notifier_info { + struct fib_notifier_info info; + struct fib_rule *rule; +}; + +struct fib_rule_uid_range { + __u32 start; + __u32 end; +}; + +struct flowi; + +struct fib_rules_ops { + int family; + struct list_head list; + int rule_size; + int addr_size; + int unresolved_rules; + int nr_goto_rules; + unsigned int fib_rules_seq; + int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *); + bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *); + int (*match)(struct fib_rule *, struct flowi *, int); + int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *); + int (*delete)(struct fib_rule *); + int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **); + int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *); + size_t (*nlmsg_payload)(struct fib_rule *); + void (*flush_cache)(struct fib_rules_ops *); + int nlgroup; + struct list_head rules_list; + struct module *owner; + struct net *fro_net; + struct callback_head rcu; +}; + +struct fib_table { + struct hlist_node tb_hlist; + u32 tb_id; + int tb_num_default; + struct callback_head rcu; + long unsigned int *tb_data; + long unsigned int __data[0]; +}; + +struct fib_trie_iter { + struct seq_net_private p; + struct fib_table *tb; + struct key_vector *tnode; + unsigned int index; + unsigned int depth; +}; + +struct fid { + union { + struct { + u32 ino; + u32 gen; + u32 parent_ino; + u32 parent_gen; + } i32; + struct { + u64 ino; + u32 gen; + } __attribute__((packed)) i64; + struct { + u32 block; + u16 partref; + u16 parent_partref; + u32 generation; + u32 parent_block; + u32 parent_generation; + } udf; + struct { + struct {} __empty_raw; + __u32 raw[0]; + }; + }; +}; + +struct field_var { + struct hist_field *var; + struct hist_field *val; +}; + +struct field_var_hist { + struct hist_trigger_data *hist_data; + char *cmd; +}; + +struct fiemap_extent { + __u64 fe_logical; + __u64 fe_physical; + __u64 fe_length; + __u64 fe_reserved64[2]; + __u32 fe_flags; + __u32 fe_reserved[3]; +}; + +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 fiemap_extent_info { + unsigned int fi_flags; + unsigned int fi_extents_mapped; + unsigned int fi_extents_max; + struct fiemap_extent *fi_extents_start; +}; + +struct file__safe_trusted { + struct inode *f_inode; +}; + +struct file_clone_range { + __s64 src_fd; + __u64 src_offset; + __u64 src_length; + __u64 dest_offset; +}; + +struct file_dedupe_range_info { + __s64 dest_fd; + __u64 dest_offset; + __u64 bytes_deduped; + __s32 status; + __u32 reserved; +}; + +struct file_dedupe_range { + __u64 src_offset; + __u64 src_length; + __u16 dest_count; + __u16 reserved1; + __u32 reserved2; + struct file_dedupe_range_info info[0]; +}; + +struct file_handle { + __u32 handle_bytes; + int handle_type; + unsigned char f_handle[0]; +}; + +struct file_lock_core { + struct file_lock_core *flc_blocker; + struct list_head flc_list; + struct hlist_node flc_link; + struct list_head flc_blocked_requests; + struct list_head flc_blocked_member; + fl_owner_t flc_owner; + unsigned int flc_flags; + unsigned char flc_type; + pid_t flc_pid; + int flc_link_cpu; + wait_queue_head_t flc_wait; + struct file *flc_file; +}; + +struct lease_manager_operations; + +struct file_lease { + struct file_lock_core c; + struct fasync_struct *fl_fasync; + long unsigned int fl_break_time; + long unsigned int fl_downgrade_time; + const struct lease_manager_operations *fl_lmops; +}; + +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_core c; + loff_t fl_start; + loff_t fl_end; + const struct file_lock_operations *fl_ops; + const struct lock_manager_operations *fl_lmops; + union { + struct nfs_lock_info nfs_fl; + struct nfs4_lock_info nfs4_fl; + struct { + struct list_head link; + int state; + unsigned int debug_id; + } afs; + struct { + struct inode *inode; + } ceph; + } fl_u; +}; + +struct file_lock_context { + spinlock_t flc_lock; + struct list_head flc_flock; + struct list_head flc_posix; + struct list_head flc_lease; +}; + +struct file_lock_list_struct { + spinlock_t lock; + struct hlist_head hlist; +}; + +struct file_lock_operations { + void (*fl_copy_lock)(struct file_lock *, struct file_lock *); + void (*fl_release_private)(struct file_lock *); +}; + +struct io_uring_cmd; + +struct file_operations { + struct module *owner; + fop_flags_t fop_flags; + loff_t (*llseek)(struct file *, loff_t, int); + ssize_t (*read)(struct file *, char *, size_t, loff_t *); + ssize_t (*write)(struct file *, const char *, size_t, loff_t *); + ssize_t (*read_iter)(struct kiocb *, struct iov_iter *); + ssize_t (*write_iter)(struct kiocb *, struct iov_iter *); + int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int); + int (*iterate_shared)(struct file *, struct dir_context *); + __poll_t (*poll)(struct file *, struct poll_table_struct *); + long int (*unlocked_ioctl)(struct file *, unsigned int, long unsigned int); + long int (*compat_ioctl)(struct file *, unsigned int, long unsigned int); + int (*mmap)(struct file *, struct vm_area_struct *); + 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 *); + long unsigned int (*get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + int (*check_flags)(int); + int (*flock)(struct file *, int, struct file_lock *); + ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); + ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct file *); + int (*setlease)(struct file *, int, struct file_lease **, void **); + long int (*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 tpm_chip; + +struct tpm_space; + +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 file_range { + const struct path *path; + loff_t pos; + size_t count; +}; + +struct file_region { + struct list_head link; + long int from; + long int to; + struct page_counter *reservation_counter; + struct cgroup_subsys_state *css; +}; + +struct file_security_struct { + u32 sid; + u32 fown_sid; + u32 isid; + u32 pseqno; +}; + +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 fileattr { + u32 flags; + u32 fsx_xflags; + u32 fsx_extsize; + u32 fsx_nextents; + u32 fsx_projid; + u32 fsx_cowextsize; + bool flags_valid: 1; + bool fsx_valid: 1; +}; + +struct filename { + const char *name; + const char *uptr; + atomic_t refcnt; + struct audit_names *aname; + const char iname[0]; +}; + +struct filename_trans_datum { + struct ebitmap stypes; + u32 otype; + struct filename_trans_datum *next; +}; + +struct filename_trans_key { + u32 ttype; + u16 tclass; + const char *name; +}; + +struct files_stat_struct { + long unsigned int nr_files; + long unsigned int nr_free_files; + long unsigned int max_files; +}; + +struct files_struct { + atomic_t count; + bool resize_in_progress; + wait_queue_head_t resize_wait; + struct fdtable *fdt; + struct fdtable fdtab; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t file_lock; + unsigned int next_fd; + long unsigned int close_on_exec_init[1]; + long unsigned int open_fds_init[1]; + long unsigned int full_fds_bits_init[1]; + struct file *fd_array[64]; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct filter_list { + struct list_head list; + struct event_filter *filter; +}; + +struct filter_match_data { + const char *filter; + const char *notfilter; + size_t index; + size_t size; + long unsigned int *addrs; + struct module **mods; +}; + +struct filter_parse_error { + int lasterr; + int lasterr_pos; +}; + +struct regex; + +struct ftrace_event_field; + +struct filter_pred { + struct regex *regex; + struct cpumask *mask; + short unsigned int *ops; + struct ftrace_event_field *field; + u64 val; + u64 val2; + enum filter_pred_fn fn_num; + int offset; + int not; + int op; +}; + +struct find_child_walk_data { + struct acpi_device *adev; + u64 address; + int score; + bool check_sta; + bool check_children; +}; + +struct find_interface_arg { + int minor; + struct device_driver *drv; +}; + +struct kernel_symbol; + +struct find_symbol_arg { + const char *name; + bool gplok; + bool warn; + struct module *owner; + const u32 *crc; + const struct kernel_symbol *sym; + enum mod_license license; +}; + +struct fintek_8250 { + u16 pid; + u16 base_port; + u8 index; + u8 key; +}; + +struct firmware { + size_t size; + const u8 *data; + void *priv; +}; + +struct firmware_cache { + spinlock_t lock; + struct list_head head; + int state; + spinlock_t name_lock; + struct list_head fw_names; + struct delayed_work work; + struct notifier_block pm_notify; +}; + +struct firmware_fallback_config { + unsigned int force_sysfs_fallback; + unsigned int ignore_sysfs_fallback; + int old_timeout; + int loading_timeout; +}; + +struct firmware_map_entry { + u64 start; + u64 end; + const char *type; + struct list_head list; + struct kobject kobj; +}; + +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 fixed_mdio_bus { + struct mii_bus *mii_bus; + struct list_head phys; +}; + +struct fixed_percpu_data { + char gs_base[40]; + long unsigned int stack_canary; +}; + +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; +}; + +struct fixed_range_block { + int base_msr; + int ranges; +}; + +struct fixed_voltage_config { + const char *supply_name; + const char *input_supply; + int microvolts; + unsigned int startup_delay; + unsigned int off_on_delay; + unsigned int enabled_at_boot: 1; + struct regulator_init_data *init_data; +}; + +struct regulator_state { + int uV; + int min_uV; + int max_uV; + unsigned int mode; + int enabled; + bool changeable; +}; + +struct notification_limit { + int prot; + int err; + int warn; +}; + +struct regulation_constraints { + const char *name; + int min_uV; + int max_uV; + int uV_offset; + int min_uA; + int max_uA; + int ilim_uA; + int pw_budget_mW; + int system_load; + u32 *max_spread; + int max_uV_step; + unsigned int valid_modes_mask; + unsigned int valid_ops_mask; + int input_uV; + struct regulator_state state_disk; + struct regulator_state state_mem; + struct regulator_state state_standby; + struct notification_limit over_curr_limits; + struct notification_limit over_voltage_limits; + struct notification_limit under_voltage_limits; + struct notification_limit temp_limits; + suspend_state_t initial_state; + unsigned int initial_mode; + unsigned int ramp_delay; + unsigned int settling_time; + unsigned int settling_time_up; + unsigned int settling_time_down; + unsigned int enable_time; + unsigned int uv_less_critical_window_ms; + unsigned int active_discharge; + unsigned int always_on: 1; + unsigned int boot_on: 1; + unsigned int apply_uV: 1; + unsigned int ramp_disable: 1; + unsigned int soft_start: 1; + unsigned int pull_down: 1; + unsigned int system_critical: 1; + unsigned int over_current_protection: 1; + unsigned int over_current_detection: 1; + unsigned int over_voltage_detection: 1; + unsigned int under_voltage_detection: 1; + unsigned int over_temp_detection: 1; +}; + +struct regulator_consumer_supply; + +struct regulator_init_data { + const char *supply_regulator; + struct regulation_constraints constraints; + int num_consumer_supplies; + struct regulator_consumer_supply *consumer_supplies; + void *driver_data; +}; + +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 fixed_regulator_data { + struct fixed_voltage_config cfg; + struct regulator_init_data init_data; + struct platform_device pdev; +}; + +struct flag_settings { + unsigned int flags; + unsigned int mask; +}; + +struct flagsbuf { + char buf[8]; +}; + +struct flex_groups { + atomic64_t free_clusters; + atomic_t free_inodes; + atomic_t used_dirs; +}; + +struct flock { + short int l_type; + short int l_whence; + __kernel_off_t l_start; + __kernel_off_t l_len; + __kernel_pid_t l_pid; +}; + +struct flock64 { + short int l_type; + short int l_whence; + __kernel_loff_t l_start; + __kernel_loff_t l_len; + __kernel_pid_t l_pid; +}; + +typedef void (*action_destr)(void *); + +struct nf_flowtable; + +struct ip_tunnel_info; + +struct psample_group; + +struct flow_action_entry { + enum flow_action_id id; + u32 hw_index; + long unsigned int 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 { + long unsigned int 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_action_cookie { + u32 cookie_len; + u8 cookie[0]; +}; + +struct flow_block { + struct list_head cb_list; +}; + +typedef int flow_setup_cb_t(enum tc_setup_type, 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 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 flow_cls_common_offload { + u32 chain_index; + __be16 protocol; + u32 prio; + bool skip_sw; + struct netlink_ext_ack *extack; +}; + +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_cls_offload { + struct flow_cls_common_offload common; + enum flow_cls_command command; + bool use_act_stats; + long unsigned int 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; +}; + +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_dissector_key_arp { + __u32 sip; + __u32 tip; + __u8 op; + unsigned char sha[6]; + unsigned char tha[6]; +}; + +struct flow_dissector_key_cfm { + u8 mdl_ver; + u8 opcode; +}; + +struct flow_dissector_key_control { + u16 thoff; + u16 addr_type; + u32 flags; +}; + +struct flow_dissector_key_ct { + u16 ct_state; + u16 ct_zone; + u32 ct_mark; + u32 ct_labels[4]; +}; + +struct flow_dissector_key_enc_opts { + u8 data[255]; + u8 len; + u32 dst_opt_type; +}; + +struct flow_dissector_key_hash { + u32 hash; +}; + +struct flow_dissector_key_icmp { + struct { + u8 type; + u8 code; + }; + u16 id; +}; + +struct flow_dissector_key_ipsec { + __be32 spi; +}; + +struct flow_dissector_key_keyid { + __be32 keyid; +}; + +struct flow_dissector_key_l2tpv3 { + __be32 session_id; +}; + +struct flow_dissector_key_meta { + int ingress_ifindex; + u16 ingress_iftype; + u8 l2_miss; +}; + +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_num_of_vlans { + u8 num_of_vlans; +}; + +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_pppoe { + __be16 session_id; + __be16 ppp_proto; + __be16 type; +}; + +struct flow_dissector_key_tags { + u32 flow_label; +}; + +struct flow_dissector_key_tcp { + __be16 flags; +}; + +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; +}; + +typedef int flow_indr_block_bind_cb_t(struct net_device *, struct Qdisc *, void *, enum tc_setup_type, void *, void *, void (*)(struct flow_block_cb *)); + +struct flow_indr_dev { + struct list_head list; + flow_indr_block_bind_cb_t *cb; + void *cb_priv; + refcount_t refcnt; +}; + +struct flow_keys { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; + struct flow_dissector_key_tags tags; + struct flow_dissector_key_vlan vlan; + struct flow_dissector_key_vlan cvlan; + struct flow_dissector_key_keyid keyid; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_addrs addrs; + long: 0; +}; + +struct flow_keys_basic { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; +}; + +struct flow_keys_digest { + u8 data[16]; +}; + +struct flow_match { + struct flow_dissector *dissector; + void *mask; + void *key; +}; + +struct flow_match_arp { + struct flow_dissector_key_arp *key; + struct flow_dissector_key_arp *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_ct { + struct flow_dissector_key_ct *key; + struct flow_dissector_key_ct *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_eth_addrs { + struct flow_dissector_key_eth_addrs *key; + struct flow_dissector_key_eth_addrs *mask; +}; + +struct flow_match_icmp { + struct flow_dissector_key_icmp *key; + struct flow_dissector_key_icmp *mask; +}; + +struct flow_match_ip { + struct flow_dissector_key_ip *key; + struct flow_dissector_key_ip *mask; +}; + +struct flow_match_ipsec { + struct flow_dissector_key_ipsec *key; + struct flow_dissector_key_ipsec *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_l2tpv3 { + struct flow_dissector_key_l2tpv3 *key; + struct flow_dissector_key_l2tpv3 *mask; +}; + +struct flow_match_meta { + struct flow_dissector_key_meta *key; + struct flow_dissector_key_meta *mask; +}; + +struct flow_match_mpls { + struct flow_dissector_key_mpls *key; + struct flow_dissector_key_mpls *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_pppoe { + struct flow_dissector_key_pppoe *key; + struct flow_dissector_key_pppoe *mask; +}; + +struct flow_match_tcp { + struct flow_dissector_key_tcp *key; + struct flow_dissector_key_tcp *mask; +}; + +struct flow_match_vlan { + struct flow_dissector_key_vlan *key; + struct flow_dissector_key_vlan *mask; +}; + +struct flow_offload_action { + struct netlink_ext_ack *extack; + enum offload_act_command command; + enum flow_action_id id; + u32 index; + long unsigned int cookie; + struct flow_stats stats; + struct flow_action action; +}; + +struct flow_rule { + struct flow_match match; + struct flow_action action; +}; + +struct flowi_tunnel { + __be64 tun_id; +}; + +struct flowi_common { + int flowic_oif; + int flowic_iif; + int flowic_l3mdev; + __u32 flowic_mark; + __u8 flowic_tos; + __u8 flowic_scope; + __u8 flowic_proto; + __u8 flowic_flags; + __u32 flowic_secid; + kuid_t flowic_uid; + __u32 flowic_multipath_hash; + struct flowi_tunnel flowic_tun_key; +}; + +union flowi_uli { + struct { + __be16 dport; + __be16 sport; + } ports; + struct { + __u8 type; + __u8 code; + } icmpt; + __be32 gre_key; + struct { + __u8 type; + } mht; +}; + +struct flowi4 { + struct flowi_common __fl_common; + __be32 saddr; + __be32 daddr; + union flowi_uli uli; +}; + +struct flowi6 { + struct flowi_common __fl_common; + struct in6_addr daddr; + struct in6_addr saddr; + __be32 flowlabel; + union flowi_uli uli; + __u32 mp_hash; +}; + +struct flowi { + union { + struct flowi_common __fl_common; + struct flowi4 ip4; + struct flowi6 ip6; + } u; +}; + +struct flush_backlogs { + cpumask_t flush_cpus; + struct work_struct w[0]; +}; + +struct flush_busy_ctx_data { + struct blk_mq_hw_ctx *hctx; + struct list_head *list; +}; + +struct flush_tlb_info { + struct mm_struct *mm; + long unsigned int start; + long unsigned int end; + u64 new_tlb_gen; + unsigned int initiating_cpu; + u8 stride_shift; + u8 freed_tables; + u8 trim_cpumask; +}; + +struct fmt { + const char *str; + unsigned char state; + unsigned char size; +}; + +struct fname { + __u32 hash; + __u32 minor_hash; + struct rb_node rb_hash; + struct fname *next; + __u32 inode; + __u8 name_len; + __u8 file_type; + char name[0]; +}; + +struct fnhe_hash_bucket { + struct fib_nh_exception *chain; +}; + +struct page_pool; + +struct page { + long unsigned int 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 { + long unsigned int index; + long unsigned int share; + }; + long unsigned int private; + }; + struct { + long unsigned int pp_magic; + struct page_pool *pp; + long unsigned int _pp_mapping_pad; + long unsigned int dma_addr; + atomic_long_t pp_ref_count; + }; + struct { + long unsigned int compound_head; + }; + struct { + struct dev_pagemap *pgmap; + void *zone_device_data; + }; + struct callback_head callback_head; + }; + union { + unsigned int page_type; + atomic_t _mapcount; + }; + atomic_t _refcount; + long unsigned int memcg_data; +}; + +struct folio { + union { + struct { + long unsigned int flags; + union { + struct list_head lru; + struct { + void *__filler; + unsigned int mlock_count; + }; + }; + struct address_space *mapping; + long unsigned int index; + union { + void *private; + swp_entry_t swap; + }; + atomic_t _mapcount; + atomic_t _refcount; + long unsigned int memcg_data; + }; + struct page page; + }; + union { + struct { + long unsigned int _flags_1; + long unsigned int _head_1; + atomic_t _large_mapcount; + atomic_t _entire_mapcount; + atomic_t _nr_pages_mapped; + atomic_t _pincount; + unsigned int _folio_nr_pages; + }; + struct page __page_1; + }; + union { + struct { + long unsigned int _flags_2; + long unsigned int _head_2; + void *_hugetlb_subpool; + void *_hugetlb_cgroup; + void *_hugetlb_cgroup_rsvd; + void *_hugetlb_hwpoison; + }; + struct { + long unsigned int _flags_2a; + long unsigned int _head_2a; + struct list_head _deferred_list; + }; + struct page __page_2; + }; +}; + +struct folio_iter { + struct folio *folio; + size_t offset; + size_t length; + struct folio *_next; + size_t _seg_count; + int _i; +}; + +struct folio_queue { + struct folio_batch vec; + u8 orders[31]; + struct folio_queue *next; + struct folio_queue *prev; + long unsigned int marks; + long unsigned int marks2; + long unsigned int marks3; + unsigned int rreq_id; + unsigned int debug_id; +}; + +struct folio_referenced_arg { + int mapcount; + int referenced; + long unsigned int vm_flags; + struct mem_cgroup *memcg; +}; + +struct folio_walk { + struct page *page; + enum folio_walk_level level; + union { + pte_t *ptep; + pud_t *pudp; + pmd_t *pmdp; + }; + union { + pte_t pte; + pud_t pud; + pmd_t pmd; + }; + struct vm_area_struct *vma; + spinlock_t *ptl; +}; + +struct follow_page_context { + struct dev_pagemap *pgmap; + unsigned int page_mask; +}; + +struct follow_pfnmap_args { + struct vm_area_struct *vma; + long unsigned int address; + spinlock_t *lock; + pte_t *ptep; + long unsigned int pfn; + long unsigned int addr_mask; + pgprot_t pgprot; + bool writable; + bool special; +}; + +struct font_data { + unsigned int extra[4]; + const unsigned char data[0]; +}; + +struct font_desc { + int idx; + const char *name; + unsigned int width; + unsigned int height; + unsigned int charcount; + const void *data; + int pref; +}; + +struct memory_block; + +typedef int (*walk_memory_blocks_func_t)(struct memory_block *, void *); + +struct for_each_memory_block_cb_data { + walk_memory_blocks_func_t func; + void *arg; +}; + +struct inactive_task_frame { + long unsigned int r15; + long unsigned int r14; + long unsigned int r13; + long unsigned int r12; + long unsigned int bx; + long unsigned int bp; + long unsigned int ret_addr; +}; + +struct fork_frame { + struct inactive_task_frame frame; + struct pt_regs regs; +}; + +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 format_state___2 { + unsigned char state; + unsigned char size; + unsigned char flags_or_double_size; + unsigned char base; +}; + +struct fown_struct { + struct file *file; + rwlock_t lock; + struct pid *pid; + enum pid_type pid_type; + kuid_t uid; + kuid_t euid; + int signum; +}; + +struct fpdt_subtable_entry { + u16 type; + u8 length; + u8 revision; + u32 reserved; + u64 address; +}; + +struct fpdt_subtable_header { + u32 signature; + u32 length; +}; + +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 fprobe_addr_list { + int index; + int size; + long unsigned int *addrs; +}; + +struct fprobe_hlist_node { + struct hlist_node hlist; + long unsigned int addr; + struct fprobe *fp; +}; + +struct fprobe_hlist { + struct hlist_node hlist; + struct callback_head rcu; + struct fprobe *fp; + int size; + struct fprobe_hlist_node array[0]; +}; + +struct fprop_global { + struct percpu_counter events; + unsigned int period; + seqcount_t sequence; +}; + +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: 64; + long: 64; + long: 64; + union fpregs_state regs; +}; + +struct fpu_state_perm { + u64 __state_perm; + unsigned int __state_size; + unsigned int __user_state_size; +}; + +struct fpu { + unsigned int last_cpu; + long unsigned int avx512_timestamp; + struct fpstate *fpstate; + struct fpstate *__task_fpstate; + struct fpu_state_perm perm; + struct fpu_state_perm guest_perm; + struct fpstate __fpstate; +}; + +struct fpu_guest { + u64 xfeatures; + u64 perm; + u64 xfd_err; + unsigned int uabi_size; + struct fpstate *fpstate; +}; + +struct fpu_state_config { + unsigned int max_size; + unsigned int default_size; + u64 max_features; + u64 default_features; + u64 legacy_features; + u64 independent_features; +}; + +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 rhashtable { + struct bucket_table *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 int high_thresh; + long int low_thresh; + int timeout; + int max_dist; + struct inet_frags *f; + struct net *net; + bool dead; + long: 64; + long: 64; + struct rhashtable rhashtable; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_long_t mem; + struct work_struct destroy_work; + struct llist_node free_list; + long: 64; + long: 64; +}; + +struct frag { + struct list_head list; + u32 group; + u8 num; + u8 rec; + u8 map; + u8 data[0]; +}; + +struct frag_hdr { + __u8 nexthdr; + __u8 reserved; + __be16 frag_off; + __be32 identification; +}; + +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 tstamp_type; + __u8 flags; + u16 max_size; + struct fqdir *fqdir; + struct callback_head rcu; +}; + +struct frag_queue { + struct inet_frag_queue q; + int iif; + __u16 nhoffset; + u8 ecn; +}; + +struct freader { + void *buf; + u32 buf_sz; + int err; + union { + struct { + struct file *file; + struct folio *folio; + void *addr; + loff_t folio_off; + bool may_fault; + }; + struct { + const char *data; + u64 data_sz; + }; + }; +}; + +struct fred_info { + long unsigned int edata; + long unsigned int resv; +}; + +struct fred_frame { + struct pt_regs regs; + struct fred_info info; +}; + +struct free_area { + struct list_head free_list[5]; + long unsigned int nr_free; +}; + +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 freezer { + struct cgroup_subsys_state css; + unsigned int state; +}; + +struct freq_attr { + struct attribute attr; + ssize_t (*show)(struct cpufreq_policy *, char *); + ssize_t (*store)(struct cpufreq_policy *, const char *, size_t); +}; + +struct muldiv { + u32 multiplier; + u32 divider; +}; + +struct freq_desc { + bool use_msr_plat; + struct muldiv muldiv[16]; + u32 freqs[16]; + u32 mask; +}; + +struct p_log { + const char *prefix; + struct fc_log *log; +}; + +struct fs_context_operations; + +struct fs_context { + const struct fs_context_operations *ops; + struct mutex uapi_mutex; + struct file_system_type *fs_type; + void *fs_private; + void *sget_key; + struct dentry *root; + struct user_namespace *user_ns; + struct net *net_ns; + const struct cred *cred; + struct p_log log; + const char *source; + void *security; + void *s_fs_info; + unsigned int sb_flags; + unsigned int sb_flags_mask; + unsigned int s_iflags; + enum fs_context_purpose purpose: 8; + enum fs_context_phase phase: 8; + bool need_free: 1; + bool global: 1; + bool oldapi: 1; + bool exclusive: 1; +}; + +struct fs_parameter; + +struct fs_context_operations { + void (*free)(struct fs_context *); + int (*dup)(struct fs_context *, struct fs_context *); + int (*parse_param)(struct fs_context *, struct fs_parameter *); + int (*parse_monolithic)(struct fs_context *, void *); + int (*get_tree)(struct fs_context *); + int (*reconfigure)(struct fs_context *); +}; + +struct fs_disk_quota { + __s8 d_version; + __s8 d_flags; + __u16 d_fieldmask; + __u32 d_id; + __u64 d_blk_hardlimit; + __u64 d_blk_softlimit; + __u64 d_ino_hardlimit; + __u64 d_ino_softlimit; + __u64 d_bcount; + __u64 d_icount; + __s32 d_itimer; + __s32 d_btimer; + __u16 d_iwarns; + __u16 d_bwarns; + __s8 d_itimer_hi; + __s8 d_btimer_hi; + __s8 d_rtbtimer_hi; + __s8 d_padding2; + __u64 d_rtb_hardlimit; + __u64 d_rtb_softlimit; + __u64 d_rtbcount; + __s32 d_rtbtimer; + __u16 d_rtbwarns; + __s16 d_padding3; + char d_padding4[8]; +}; + +struct fs_error_report { + int error; + struct inode *inode; + struct super_block *sb; +}; + +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 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; + short unsigned int flags; + const void *data; +}; + +struct fs_parse_result { + bool negated; + union { + bool boolean; + int int_32; + unsigned int uint_32; + u64 uint_64; + kuid_t uid; + kgid_t gid; + }; +}; + +struct fs_qfilestat { + __u64 qfs_ino; + __u64 qfs_nblks; + __u32 qfs_nextents; +}; + +typedef struct fs_qfilestat fs_qfilestat_t; + +struct fs_qfilestatv { + __u64 qfs_ino; + __u64 qfs_nblks; + __u32 qfs_nextents; + __u32 qfs_pad; +}; + +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 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_struct { + int users; + spinlock_t lock; + seqcount_spinlock_t seq; + int umask; + int in_exec; + struct path root; + struct path pwd; +}; + +struct fs_sysfs_path { + __u8 len; + __u8 name[128]; +}; + +struct fscrypt_key_specifier { + __u32 type; + __u32 __reserved; + union { + __u8 __reserved[32]; + __u8 descriptor[8]; + __u8 identifier[16]; + } u; +}; + +struct fscrypt_add_key_arg { + struct fscrypt_key_specifier key_spec; + __u32 raw_size; + __u32 key_id; + __u32 __reserved[8]; + __u8 raw[0]; +}; + +struct fscrypt_context_v1 { + u8 version; + u8 contents_encryption_mode; + u8 filenames_encryption_mode; + u8 flags; + u8 master_key_descriptor[8]; + u8 nonce[16]; +}; + +struct fscrypt_context_v2 { + u8 version; + u8 contents_encryption_mode; + u8 filenames_encryption_mode; + u8 flags; + u8 log2_data_unit_size; + u8 __reserved[3]; + u8 master_key_identifier[16]; + u8 nonce[16]; +}; + +union fscrypt_context { + u8 version; + struct fscrypt_context_v1 v1; + struct fscrypt_context_v2 v2; +}; + +struct fscrypt_prepared_key { + struct crypto_skcipher *tfm; + struct blk_crypto_key *blk_key; +}; + +struct fscrypt_mode; + +struct fscrypt_direct_key { + struct super_block *dk_sb; + struct hlist_node dk_node; + refcount_t dk_refcount; + const struct fscrypt_mode *dk_mode; + struct fscrypt_prepared_key dk_key; + u8 dk_descriptor[8]; + u8 dk_raw[64]; +}; + +struct fscrypt_get_key_status_arg { + struct fscrypt_key_specifier key_spec; + __u32 __reserved[6]; + __u32 status; + __u32 status_flags; + __u32 user_count; + __u32 __out_reserved[13]; +}; + +struct fscrypt_policy_v1 { + __u8 version; + __u8 contents_encryption_mode; + __u8 filenames_encryption_mode; + __u8 flags; + __u8 master_key_descriptor[8]; +}; + +struct fscrypt_policy_v2 { + __u8 version; + __u8 contents_encryption_mode; + __u8 filenames_encryption_mode; + __u8 flags; + __u8 log2_data_unit_size; + __u8 __reserved[3]; + __u8 master_key_identifier[16]; +}; + +struct fscrypt_get_policy_ex_arg { + __u64 policy_size; + union { + __u8 version; + struct fscrypt_policy_v1 v1; + struct fscrypt_policy_v2 v2; + } policy; +}; + +struct fscrypt_hkdf { + struct crypto_shash *hmac_tfm; +}; + +union fscrypt_policy { + u8 version; + struct fscrypt_policy_v1 v1; + struct fscrypt_policy_v2 v2; +}; + +struct fscrypt_master_key; + +struct fscrypt_inode_info { + struct fscrypt_prepared_key ci_enc_key; + u8 ci_owns_key: 1; + u8 ci_inlinecrypt: 1; + u8 ci_dirhash_key_initialized: 1; + u8 ci_data_unit_bits; + u8 ci_data_units_per_block_bits; + u32 ci_hashed_ino; + struct fscrypt_mode *ci_mode; + struct inode *ci_inode; + struct fscrypt_master_key *ci_master_key; + struct list_head ci_master_key_link; + struct fscrypt_direct_key *ci_direct_key; + siphash_key_t ci_dirhash_key; + union fscrypt_policy ci_policy; + u8 ci_nonce[16]; +}; + +union fscrypt_iv { + struct { + __le64 index; + u8 nonce[16]; + }; + u8 raw[32]; + __le64 dun[4]; +}; + +struct fscrypt_key { + __u32 mode; + __u8 raw[64]; + __u32 size; +}; + +struct fscrypt_keyring { + spinlock_t lock; + struct hlist_head key_hashtable[128]; +}; + +struct fscrypt_master_key_secret { + struct fscrypt_hkdf hkdf; + u32 size; + u8 raw[64]; +}; + +struct fscrypt_master_key { + struct hlist_node mk_node; + struct rw_semaphore mk_sem; + refcount_t mk_active_refs; + refcount_t mk_struct_refs; + struct callback_head mk_rcu_head; + struct fscrypt_master_key_secret mk_secret; + struct fscrypt_key_specifier mk_spec; + struct key *mk_users; + struct list_head mk_decrypted_inodes; + spinlock_t mk_decrypted_inodes_lock; + struct fscrypt_prepared_key mk_direct_keys[11]; + struct fscrypt_prepared_key mk_iv_ino_lblk_64_keys[11]; + struct fscrypt_prepared_key mk_iv_ino_lblk_32_keys[11]; + siphash_key_t mk_ino_hash_key; + bool mk_ino_hash_key_initialized; + bool mk_present; +}; + +struct fscrypt_mode { + const char *friendly_name; + const char *cipher_str; + int keysize; + int security_strength; + int ivsize; + int logged_cryptoapi_impl; + int logged_blk_crypto_native; + int logged_blk_crypto_fallback; + enum blk_crypto_mode_num blk_crypto_mode; +}; + +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 fscrypt_nokey_name { + u32 dirhash[2]; + u8 bytes[149]; + u8 sha256[32]; +}; + +struct fscrypt_operations { + unsigned int needs_bounce_pages: 1; + unsigned int has_32bit_inodes: 1; + unsigned int supports_subblock_data_units: 1; + const char *legacy_key_prefix; + int (*get_context)(struct inode *, void *, size_t); + int (*set_context)(struct inode *, const void *, size_t, void *); + const union fscrypt_policy * (*get_dummy_policy)(struct super_block *); + bool (*empty_dir)(struct inode *); + bool (*has_stable_inodes)(struct super_block *); + struct block_device ** (*get_devices)(struct super_block *, unsigned int *); +}; + +struct fscrypt_provisioning_key_payload { + __u32 type; + __u32 __reserved; + __u8 raw[0]; +}; + +struct fscrypt_remove_key_arg { + struct fscrypt_key_specifier key_spec; + __u32 removal_status_flags; + __u32 __reserved[5]; +}; + +struct fscrypt_symlink_data { + __le16 len; + char encrypted_path[0]; +}; + +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_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 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 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 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; + enum fsnotify_group_prio priority; + bool shutdown; + int flags; + unsigned int owner_flags; + struct mutex mark_mutex; + atomic_t user_waits; + struct list_head marks_list; + struct fasync_struct *fsn_fa; + struct fsnotify_event *overflow_event; + struct mem_cgroup *memcg; + union { + void *private; + struct inotify_group_private_data inotify_data; + struct fanotify_group_private_data fanotify_data; + }; +}; + +struct fsnotify_iter_info { + struct fsnotify_mark *marks[5]; + struct fsnotify_group *current_group; + unsigned int report_mask; + int srcu_idx; +}; + +typedef struct fsnotify_mark_connector *fsnotify_connp_t; + +struct fsnotify_mark_connector { + spinlock_t lock; + unsigned char type; + unsigned char prio; + short unsigned int flags; + union { + void *obj; + struct fsnotify_mark_connector *destroy_next; + }; + struct hlist_head list; +}; + +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_sb_info { + struct fsnotify_mark_connector *sb_marks; + atomic_long_t watched_objects[3]; +}; + +struct fstrim_range { + __u64 start; + __u64 len; + __u64 minlen; +}; + +struct fsuuid { + __u32 fsu_len; + __u32 fsu_flags; + __u8 fsu_uuid[0]; +}; + +struct fsuuid2 { + __u8 len; + __u8 uuid[16]; +}; + +struct fsverity_descriptor { + __u8 version; + __u8 hash_algorithm; + __u8 log_blocksize; + __u8 salt_size; + __le32 sig_size; + __le64 data_size; + __u8 root_hash[64]; + __u8 salt[32]; + __u8 __reserved[144]; + __u8 signature[0]; +}; + +struct fsverity_digest { + __u16 digest_algorithm; + __u16 digest_size; + __u8 digest[0]; +}; + +struct fsverity_enable_arg { + __u32 version; + __u32 hash_algorithm; + __u32 block_size; + __u32 salt_size; + __u64 salt_ptr; + __u32 sig_size; + __u32 __reserved1; + __u64 sig_ptr; + __u64 __reserved2[11]; +}; + +struct fsverity_formatted_digest { + char magic[8]; + __le16 digest_algorithm; + __le16 digest_size; + __u8 digest[0]; +}; + +struct fsverity_hash_alg { + struct crypto_shash *tfm; + const char *name; + unsigned int digest_size; + unsigned int block_size; + enum hash_algo algo_id; +}; + +struct merkle_tree_params { + const struct fsverity_hash_alg *hash_alg; + const u8 *hashstate; + unsigned int digest_size; + unsigned int block_size; + unsigned int hashes_per_block; + unsigned int blocks_per_page; + u8 log_digestsize; + u8 log_blocksize; + u8 log_arity; + u8 log_blocks_per_page; + unsigned int num_levels; + u64 tree_size; + long unsigned int tree_pages; + long unsigned int level_start[8]; +}; + +struct fsverity_info { + struct merkle_tree_params tree_params; + u8 root_hash[64]; + u8 file_digest[64]; + const struct inode *inode; + long unsigned int *hash_block_verified; +}; + +struct fsverity_operations { + int (*begin_enable_verity)(struct file *); + int (*end_enable_verity)(struct file *, const void *, size_t, u64); + int (*get_verity_descriptor)(struct inode *, void *, size_t); + struct page * (*read_merkle_tree_page)(struct inode *, long unsigned int, long unsigned int); + int (*write_merkle_tree_block)(struct inode *, const void *, u64, unsigned int); +}; + +struct fsverity_read_metadata_arg { + __u64 metadata_type; + __u64 offset; + __u64 length; + __u64 buf_ptr; + __u64 __reserved; +}; + +struct fsxattr { + __u32 fsx_xflags; + __u32 fsx_extsize; + __u32 fsx_nextents; + __u32 fsx_projid; + __u32 fsx_cowextsize; + unsigned char fsx_pad[8]; +}; + +struct trace_seq { + char buffer[8156]; + struct seq_buf seq; + size_t readpos; + int full; +}; + +struct tracer; + +struct ring_buffer_iter; + +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; + long unsigned int iter_flags; + void *temp; + unsigned int temp_size; + char *fmt; + unsigned int fmt_size; + atomic_t wait_index; + struct trace_seq tmp_seq; + cpumask_var_t started; + bool closed; + bool snapshot; + struct trace_seq seq; + struct trace_entry *ent; + long unsigned int lost_events; + int leftover; + int ent_size; + int cpu; + u64 ts; + loff_t pos; + long int idx; +}; + +struct ftrace_buffer_info { + struct trace_iterator iter; + void *spare; + unsigned int spare_cpu; + unsigned int spare_size; + unsigned int read; +}; + +struct ftrace_entry { + struct trace_entry ent; + long unsigned int ip; + long unsigned int parent_ip; +}; + +struct ftrace_event_field { + struct list_head link; + const char *name; + const char *type; + int filter_type; + int offset; + int size; + unsigned int is_signed: 1; + unsigned int needs_test: 1; + int len; +}; + +struct ftrace_func_command { + struct list_head list; + char *name; + int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); +}; + +struct ftrace_func_entry { + struct hlist_node hlist; + long unsigned int ip; + long unsigned int direct; +}; + +struct ftrace_func_map { + struct ftrace_func_entry entry; + void *data; +}; + +struct ftrace_hash { + long unsigned int size_bits; + struct hlist_head *buckets; + long unsigned int count; + long unsigned int flags; + struct callback_head rcu; +}; + +struct ftrace_func_mapper { + struct ftrace_hash hash; +}; + +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_glob { + char *search; + unsigned int len; + int type; +}; + +struct trace_parser { + bool cont; + char *buffer; + unsigned int idx; + unsigned int size; +}; + +struct ftrace_graph_data { + struct ftrace_hash *hash; + struct ftrace_func_entry *entry; + int idx; + enum graph_filter_type type; + struct ftrace_hash *new_hash; + const struct seq_operations *seq_ops; + struct trace_parser parser; +}; + +struct ftrace_init_func { + struct list_head list; + long unsigned int ip; +}; + +struct ftrace_page; + +struct ftrace_iterator { + loff_t pos; + loff_t func_pos; + loff_t mod_pos; + struct ftrace_page *pg; + struct dyn_ftrace *func; + struct ftrace_func_probe *probe; + struct ftrace_func_entry *probe_entry; + struct trace_parser parser; + struct ftrace_hash *hash; + struct ftrace_ops *ops; + struct trace_array *tr; + struct list_head *mod_list; + int pidx; + int idx; + unsigned int flags; +}; + +struct ftrace_mod_func { + struct list_head list; + char *name; + long unsigned int ip; + unsigned int size; +}; + +struct ftrace_mod_load { + struct list_head list; + char *func; + char *module; + int enable; +}; + +struct ftrace_mod_map { + struct callback_head rcu; + struct list_head list; + struct module *mod; + long unsigned int start_addr; + long unsigned int end_addr; + struct list_head funcs; + unsigned int num_funcs; +}; + +union ftrace_op_code_union { + char code[7]; + struct { + char op[3]; + int offset; + } __attribute__((packed)); +}; + +struct ftrace_page { + struct ftrace_page *next; + struct dyn_ftrace *records; + int index; + int order; +}; + +struct ftrace_probe_ops { + void (*func)(long unsigned int, long unsigned int, struct trace_array *, struct ftrace_probe_ops *, void *); + int (*init)(struct ftrace_probe_ops *, struct trace_array *, long unsigned int, void *, void **); + void (*free)(struct ftrace_probe_ops *, struct trace_array *, long unsigned int, void *); + int (*print)(struct seq_file *, long unsigned int, struct ftrace_probe_ops *, void *); +}; + +struct ftrace_profile { + struct hlist_node node; + long unsigned int ip; + long unsigned int counter; + long long unsigned int time; + long long unsigned int time_squared; +}; + +struct ftrace_profile_page { + struct ftrace_profile_page *next; + long unsigned int index; + struct ftrace_profile records[0]; +}; + +typedef int (*cmp_func_t)(const void *, const void *); + +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 ftrace_profile_stat { + atomic_t disabled; + struct hlist_head *hash; + struct ftrace_profile_page *pages; + struct ftrace_profile_page *start; + struct tracer_stat stat; +}; + +struct ftrace_rec_iter { + struct ftrace_page *pg; + int index; +}; + +struct ftrace_regs {}; + +struct ftrace_ret_stack { + long unsigned int ret; + long unsigned int func; + long unsigned int *retp; +}; + +struct ftrace_stack { + long unsigned int calls[1024]; +}; + +struct ftrace_stacks { + struct ftrace_stack stacks[4]; +}; + +struct func_repeats_entry { + struct trace_entry ent; + long unsigned int ip; + long unsigned int parent_ip; + u16 count; + u16 top_delta_ts; + u32 bottom_delta_ts; +}; + +struct function_filter_data { + struct ftrace_ops *ops; + int first_filter; + int first_notrace; +}; + +struct fuse_access_in { + uint32_t mask; + uint32_t padding; +}; + +struct fuse_arg { + unsigned int size; + void *value; +}; + +struct fuse_in_arg { + unsigned int size; + const void *value; +}; + +struct fuse_mount; + +struct fuse_args { + uint64_t nodeid; + uint32_t opcode; + uint8_t in_numargs; + uint8_t out_numargs; + uint8_t ext_idx; + bool force: 1; + bool noreply: 1; + bool nocreds: 1; + bool in_pages: 1; + bool out_pages: 1; + bool user_pages: 1; + bool out_argvar: 1; + bool page_zeroing: 1; + bool page_replace: 1; + bool may_block: 1; + bool is_ext: 1; + bool is_pinned: 1; + bool invalidate_vmap: 1; + struct fuse_in_arg in_args[4]; + struct fuse_arg out_args[2]; + void (*end)(struct fuse_mount *, struct fuse_args *, int); + void *vmap_base; +}; + +struct fuse_folio_desc; + +struct fuse_args_pages { + struct fuse_args args; + struct folio **folios; + struct fuse_folio_desc *descs; + unsigned int num_folios; +}; + +struct fuse_attr { + uint64_t ino; + uint64_t size; + uint64_t blocks; + uint64_t atime; + uint64_t mtime; + uint64_t ctime; + uint32_t atimensec; + uint32_t mtimensec; + uint32_t ctimensec; + uint32_t mode; + uint32_t nlink; + uint32_t uid; + uint32_t gid; + uint32_t rdev; + uint32_t blksize; + uint32_t flags; +}; + +struct fuse_attr_out { + uint64_t attr_valid; + uint32_t attr_valid_nsec; + uint32_t dummy; + struct fuse_attr attr; +}; + +struct fuse_backing { + struct file *file; + struct cred *cred; + refcount_t count; + struct callback_head rcu; +}; + +struct fuse_backing_map { + int32_t fd; + uint32_t flags; + uint64_t padding; +}; + +struct fuse_batch_forget_in { + uint32_t count; + uint32_t dummy; +}; + +struct fuse_bmap_in { + uint64_t block; + uint32_t blocksize; + uint32_t padding; +}; + +struct fuse_bmap_out { + uint64_t block; +}; + +struct fuse_forget_one { + uint64_t nodeid; + uint64_t nlookup; +}; + +struct fuse_forget_link { + struct fuse_forget_one forget_one; + struct fuse_forget_link *next; +}; + +struct fuse_iqueue_ops; + +struct fuse_iqueue { + unsigned int connected; + spinlock_t lock; + wait_queue_head_t waitq; + u64 reqctr; + struct list_head pending; + struct list_head interrupts; + struct fuse_forget_link forget_list_head; + struct fuse_forget_link *forget_list_tail; + int forget_batch; + struct fasync_struct *fasync; + const struct fuse_iqueue_ops *ops; + void *priv; +}; + +struct fuse_conn_dax; + +struct fuse_sync_bucket; + +struct fuse_ring; + +struct fuse_conn { + spinlock_t lock; + refcount_t count; + atomic_t dev_count; + struct callback_head rcu; + kuid_t user_id; + kgid_t group_id; + struct pid_namespace *pid_ns; + struct user_namespace *user_ns; + unsigned int max_read; + unsigned int max_write; + unsigned int max_pages; + unsigned int max_pages_limit; + struct fuse_iqueue iq; + atomic64_t khctr; + struct rb_root polled_files; + unsigned int max_background; + unsigned int congestion_threshold; + unsigned int num_background; + unsigned int active_background; + struct list_head bg_queue; + spinlock_t bg_lock; + int initialized; + int blocked; + wait_queue_head_t blocked_waitq; + unsigned int connected; + bool aborted; + unsigned int conn_error: 1; + unsigned int conn_init: 1; + unsigned int async_read: 1; + unsigned int abort_err: 1; + unsigned int atomic_o_trunc: 1; + unsigned int export_support: 1; + unsigned int writeback_cache: 1; + unsigned int parallel_dirops: 1; + unsigned int handle_killpriv: 1; + unsigned int cache_symlinks: 1; + unsigned int legacy_opts_show: 1; + unsigned int handle_killpriv_v2: 1; + unsigned int no_open: 1; + unsigned int no_opendir: 1; + unsigned int no_fsync: 1; + unsigned int no_fsyncdir: 1; + unsigned int no_flush: 1; + unsigned int no_setxattr: 1; + unsigned int setxattr_ext: 1; + unsigned int no_getxattr: 1; + unsigned int no_listxattr: 1; + unsigned int no_removexattr: 1; + unsigned int no_lock: 1; + unsigned int no_access: 1; + unsigned int no_create: 1; + unsigned int no_interrupt: 1; + unsigned int no_bmap: 1; + unsigned int no_poll: 1; + unsigned int big_writes: 1; + unsigned int dont_mask: 1; + unsigned int no_flock: 1; + unsigned int no_fallocate: 1; + unsigned int no_rename2: 1; + unsigned int auto_inval_data: 1; + unsigned int explicit_inval_data: 1; + unsigned int do_readdirplus: 1; + unsigned int readdirplus_auto: 1; + unsigned int async_dio: 1; + unsigned int no_lseek: 1; + unsigned int posix_acl: 1; + unsigned int default_permissions: 1; + unsigned int allow_other: 1; + unsigned int no_copy_file_range: 1; + unsigned int destroy: 1; + unsigned int delete_stale: 1; + unsigned int no_control: 1; + unsigned int no_force_umount: 1; + unsigned int auto_submounts: 1; + unsigned int sync_fs: 1; + unsigned int init_security: 1; + unsigned int create_supp_group: 1; + unsigned int inode_dax: 1; + unsigned int no_tmpfile: 1; + unsigned int direct_io_allow_mmap: 1; + unsigned int no_statx: 1; + unsigned int passthrough: 1; + unsigned int use_pages_for_kvec_io: 1; + unsigned int io_uring; + int max_stack_depth; + atomic_t num_waiting; + unsigned int minor; + struct list_head entry; + dev_t dev; + struct dentry *ctl_dentry[5]; + int ctl_ndents; + u32 scramble_key[4]; + atomic64_t attr_version; + atomic64_t evict_ctr; + void (*release)(struct fuse_conn *); + struct rw_semaphore killsb; + struct list_head devices; + enum fuse_dax_mode dax_mode; + struct fuse_conn_dax *dax; + struct list_head mounts; + struct fuse_sync_bucket *curr_bucket; + struct idr backing_files_map; + struct fuse_ring *ring; +}; + +struct fuse_conn_dax { + struct dax_device *dev; + spinlock_t lock; + long unsigned int nr_busy_ranges; + struct list_head busy_ranges; + struct delayed_work free_work; + wait_queue_head_t range_waitq; + long int nr_free_ranges; + struct list_head free_ranges; + long unsigned int nr_ranges; +}; + +struct fuse_copy_file_range_in { + uint64_t fh_in; + uint64_t off_in; + uint64_t nodeid_out; + uint64_t fh_out; + uint64_t off_out; + uint64_t len; + uint64_t flags; +}; + +struct fuse_req; + +struct pipe_buffer; + +struct fuse_copy_state { + int write; + struct fuse_req *req; + struct iov_iter *iter; + struct pipe_buffer *pipebufs; + struct pipe_buffer *currbuf; + struct pipe_inode_info *pipe; + long unsigned int nr_segs; + struct page *pg; + unsigned int len; + unsigned int offset; + unsigned int move_pages: 1; + unsigned int is_uring: 1; + struct { + unsigned int copied_sz; + } ring; +}; + +struct fuse_create_in { + uint32_t flags; + uint32_t mode; + uint32_t umask; + uint32_t open_flags; +}; + +struct interval_tree_node { + struct rb_node rb; + long unsigned int start; + long unsigned int last; + long unsigned int __subtree_last; +}; + +struct fuse_dax_mapping { + struct inode *inode; + struct list_head list; + struct interval_tree_node itn; + struct list_head busy_list; + u64 window_offset; + loff_t length; + bool writable; + refcount_t refcnt; +}; + +struct fuse_pqueue { + unsigned int connected; + spinlock_t lock; + struct list_head *processing; + struct list_head io; +}; + +struct fuse_dev { + struct fuse_conn *fc; + struct fuse_pqueue pq; + struct list_head entry; +}; + +struct fuse_dirent { + uint64_t ino; + uint64_t off; + uint32_t namelen; + uint32_t type; + char name[0]; +}; + +struct fuse_entry_out { + uint64_t nodeid; + uint64_t generation; + uint64_t entry_valid; + uint64_t attr_valid; + uint32_t entry_valid_nsec; + uint32_t attr_valid_nsec; + struct fuse_attr attr; +}; + +struct fuse_direntplus { + struct fuse_entry_out entry_out; + struct fuse_dirent dirent; +}; + +struct fuse_ext_header { + uint32_t size; + uint32_t type; +}; + +struct fuse_fallocate_in { + uint64_t fh; + uint64_t offset; + uint64_t length; + uint32_t mode; + uint32_t padding; +}; + +union fuse_file_args; + +struct fuse_file { + struct fuse_mount *fm; + union fuse_file_args *args; + u64 kh; + u64 fh; + u64 nodeid; + refcount_t count; + u32 open_flags; + struct list_head write_entry; + struct { + loff_t pos; + loff_t cache_off; + u64 version; + } readdir; + struct rb_node polled_node; + wait_queue_head_t poll_wait; + enum { + IOM_NONE = 0, + IOM_CACHED = 1, + IOM_UNCACHED = 2, + } iomode; + struct file *passthrough; + const struct cred *cred; + bool flock: 1; +}; + +struct fuse_open_out { + uint64_t fh; + uint32_t open_flags; + int32_t backing_id; +}; + +struct fuse_release_in { + uint64_t fh; + uint32_t flags; + uint32_t release_flags; + uint64_t lock_owner; +}; + +struct fuse_release_args { + struct fuse_args args; + struct fuse_release_in inarg; + struct inode *inode; +}; + +union fuse_file_args { + struct fuse_open_out open_outarg; + struct fuse_release_args release_args; +}; + +struct fuse_file_lock { + uint64_t start; + uint64_t end; + uint32_t type; + uint32_t pid; +}; + +struct fuse_writepage_args; + +struct fuse_fill_wb_data { + struct fuse_writepage_args *wpa; + struct fuse_file *ff; + struct inode *inode; + struct folio **orig_folios; + unsigned int max_folios; +}; + +struct fuse_flush_in { + uint64_t fh; + uint32_t unused; + uint32_t padding; + uint64_t lock_owner; +}; + +struct fuse_folio_desc { + unsigned int length; + unsigned int offset; +}; + +struct fuse_forget_in { + uint64_t nlookup; +}; + +struct fuse_fs_context { + int fd; + struct file *file; + unsigned int rootmode; + kuid_t user_id; + kgid_t group_id; + bool is_bdev: 1; + bool fd_present: 1; + bool rootmode_present: 1; + bool user_id_present: 1; + bool group_id_present: 1; + bool default_permissions: 1; + bool allow_other: 1; + bool destroy: 1; + bool no_control: 1; + bool no_force_umount: 1; + bool legacy_opts_show: 1; + enum fuse_dax_mode dax_mode; + unsigned int max_read; + unsigned int blksize; + const char *subtype; + struct dax_device *dax_dev; + void **fudptr; +}; + +struct fuse_fsync_in { + uint64_t fh; + uint32_t fsync_flags; + uint32_t padding; +}; + +struct fuse_getattr_in { + uint32_t getattr_flags; + uint32_t dummy; + uint64_t fh; +}; + +struct fuse_getxattr_in { + uint32_t size; + uint32_t padding; +}; + +struct fuse_getxattr_out { + uint32_t size; + uint32_t padding; +}; + +struct fuse_in_header { + uint32_t len; + uint32_t opcode; + uint64_t unique; + uint64_t nodeid; + uint32_t uid; + uint32_t gid; + uint32_t pid; + uint16_t total_extlen; + uint16_t padding; +}; + +struct fuse_init_in { + uint32_t major; + uint32_t minor; + uint32_t max_readahead; + uint32_t flags; + uint32_t flags2; + uint32_t unused[11]; +}; + +struct fuse_init_out { + uint32_t major; + uint32_t minor; + uint32_t max_readahead; + uint32_t flags; + uint16_t max_background; + uint16_t congestion_threshold; + uint32_t max_write; + uint32_t time_gran; + uint16_t max_pages; + uint16_t map_alignment; + uint32_t flags2; + uint32_t max_stack_depth; + uint32_t unused[6]; +}; + +struct fuse_init_args { + struct fuse_args args; + struct fuse_init_in in; + struct fuse_init_out out; +}; + +struct fuse_inode_dax; + +struct fuse_submount_lookup; + +struct fuse_inode { + struct inode inode; + u64 nodeid; + u64 nlookup; + struct fuse_forget_link *forget; + u64 i_time; + u32 inval_mask; + umode_t orig_i_mode; + struct timespec64 i_btime; + u64 orig_ino; + u64 attr_version; + union { + struct { + struct list_head write_files; + struct list_head queued_writes; + int writectr; + int iocachectr; + wait_queue_head_t page_waitq; + wait_queue_head_t direct_io_waitq; + struct rb_root writepages; + }; + struct { + bool cached; + loff_t size; + loff_t pos; + u64 version; + struct timespec64 mtime; + u64 iversion; + spinlock_t lock; + } rdc; + }; + long unsigned int state; + struct mutex mutex; + spinlock_t lock; + struct fuse_inode_dax *dax; + struct fuse_submount_lookup *submount_lookup; + struct fuse_backing *fb; +}; + +struct fuse_inode_dax { + struct rw_semaphore sem; + struct rb_root_cached tree; + long unsigned int nr; +}; + +struct fuse_inode_handle { + u64 nodeid; + u32 generation; +}; + +struct fuse_interrupt_in { + uint64_t unique; +}; + +struct fuse_read_in { + uint64_t fh; + uint64_t offset; + uint32_t size; + uint32_t read_flags; + uint64_t lock_owner; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_write_in { + uint64_t fh; + uint64_t offset; + uint32_t size; + uint32_t write_flags; + uint64_t lock_owner; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_write_out { + uint32_t size; + uint32_t padding; +}; + +struct fuse_io_priv; + +struct fuse_io_args { + union { + struct { + struct fuse_read_in in; + u64 attr_ver; + } read; + struct { + struct fuse_write_in in; + struct fuse_write_out out; + bool folio_locked; + } write; + }; + struct fuse_args_pages ap; + struct fuse_io_priv *io; + struct fuse_file *ff; +}; + +struct fuse_io_priv { + struct kref refcnt; + int async; + spinlock_t lock; + unsigned int reqs; + ssize_t bytes; + size_t size; + __u64 offset; + bool write; + bool should_dirty; + int err; + struct kiocb *iocb; + struct completion *done; + bool blocking; +}; + +struct fuse_ioctl_in { + uint64_t fh; + uint32_t flags; + uint32_t cmd; + uint64_t arg; + uint32_t in_size; + uint32_t out_size; +}; + +struct fuse_ioctl_iovec { + uint64_t base; + uint64_t len; +}; + +struct fuse_ioctl_out { + int32_t result; + uint32_t flags; + uint32_t in_iovs; + uint32_t out_iovs; +}; + +struct fuse_iqueue_ops { + void (*send_forget)(struct fuse_iqueue *, struct fuse_forget_link *); + void (*send_interrupt)(struct fuse_iqueue *, struct fuse_req *); + void (*send_req)(struct fuse_iqueue *, struct fuse_req *); + void (*release)(struct fuse_iqueue *); +}; + +struct fuse_kstatfs { + uint64_t blocks; + uint64_t bfree; + uint64_t bavail; + uint64_t files; + uint64_t ffree; + uint32_t bsize; + uint32_t namelen; + uint32_t frsize; + uint32_t padding; + uint32_t spare[6]; +}; + +struct fuse_link_in { + uint64_t oldnodeid; +}; + +struct fuse_lk_in { + uint64_t fh; + uint64_t owner; + struct fuse_file_lock lk; + uint32_t lk_flags; + uint32_t padding; +}; + +struct fuse_lk_out { + struct fuse_file_lock lk; +}; + +struct fuse_lseek_in { + uint64_t fh; + uint64_t offset; + uint32_t whence; + uint32_t padding; +}; + +struct fuse_lseek_out { + uint64_t offset; +}; + +struct fuse_mkdir_in { + uint32_t mode; + uint32_t umask; +}; + +struct fuse_mknod_in { + uint32_t mode; + uint32_t rdev; + uint32_t umask; + uint32_t padding; +}; + +struct fuse_mount { + struct fuse_conn *fc; + struct super_block *sb; + struct list_head fc_entry; + struct callback_head rcu; +}; + +struct fuse_notify_delete_out { + uint64_t parent; + uint64_t child; + uint32_t namelen; + uint32_t padding; +}; + +struct fuse_notify_inval_entry_out { + uint64_t parent; + uint32_t namelen; + uint32_t flags; +}; + +struct fuse_notify_inval_inode_out { + uint64_t ino; + int64_t off; + int64_t len; +}; + +struct fuse_notify_poll_wakeup_out { + uint64_t kh; +}; + +struct fuse_notify_retrieve_in { + uint64_t dummy1; + uint64_t offset; + uint32_t size; + uint32_t dummy2; + uint64_t dummy3; + uint64_t dummy4; +}; + +struct fuse_notify_retrieve_out { + uint64_t notify_unique; + uint64_t nodeid; + uint64_t offset; + uint32_t size; + uint32_t padding; +}; + +struct fuse_notify_store_out { + uint64_t nodeid; + uint64_t offset; + uint32_t size; + uint32_t padding; +}; + +struct fuse_open_in { + uint32_t flags; + uint32_t open_flags; +}; + +struct fuse_out_header { + uint32_t len; + int32_t error; + uint64_t unique; +}; + +struct fuse_poll_in { + uint64_t fh; + uint64_t kh; + uint32_t flags; + uint32_t events; +}; + +struct fuse_poll_out { + uint32_t revents; + uint32_t padding; +}; + +struct fuse_removemapping_in { + uint32_t count; +}; + +struct fuse_removemapping_one { + uint64_t moffset; + uint64_t len; +}; + +struct fuse_rename2_in { + uint64_t newdir; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_req { + struct list_head list; + struct list_head intr_entry; + struct fuse_args *args; + refcount_t count; + long unsigned int flags; + struct { + struct fuse_in_header h; + } in; + struct { + struct fuse_out_header h; + } out; + wait_queue_head_t waitq; + void *argbuf; + struct fuse_mount *fm; + void *ring_entry; + void *ring_queue; +}; + +struct fuse_retrieve_args { + struct fuse_args_pages ap; + struct fuse_notify_retrieve_in inarg; +}; + +struct fuse_ring_queue; + +struct fuse_ring { + struct fuse_conn *fc; + size_t nr_queues; + size_t max_payload_sz; + struct fuse_ring_queue **queues; + unsigned int stop_debug_log: 1; + wait_queue_head_t stop_waitq; + struct delayed_work async_teardown_work; + long unsigned int teardown_time; + atomic_t queue_refs; + bool ready; +}; + +struct fuse_uring_req_header; + +struct fuse_ring_ent { + struct fuse_uring_req_header *headers; + void *payload; + struct fuse_ring_queue *queue; + struct io_uring_cmd *cmd; + struct list_head list; + enum fuse_ring_req_state state; + struct fuse_req *fuse_req; +}; + +struct fuse_ring_queue { + struct fuse_ring *ring; + unsigned int qid; + spinlock_t lock; + struct list_head ent_avail_queue; + struct list_head ent_w_req_queue; + struct list_head ent_commit_queue; + struct list_head ent_in_userspace; + struct list_head ent_released; + struct list_head fuse_req_queue; + struct list_head fuse_req_bg_queue; + struct fuse_pqueue fpq; + unsigned int active_background; + bool stopped; +}; + +struct fuse_secctx { + uint32_t size; + uint32_t padding; +}; + +struct fuse_secctx_header { + uint32_t size; + uint32_t nr_secctx; +}; + +struct fuse_setattr_in { + uint32_t valid; + uint32_t padding; + uint64_t fh; + uint64_t size; + uint64_t lock_owner; + uint64_t atime; + uint64_t mtime; + uint64_t ctime; + uint32_t atimensec; + uint32_t mtimensec; + uint32_t ctimensec; + uint32_t mode; + uint32_t unused4; + uint32_t uid; + uint32_t gid; + uint32_t unused5; +}; + +struct fuse_setupmapping_in { + uint64_t fh; + uint64_t foffset; + uint64_t len; + uint64_t flags; + uint64_t moffset; +}; + +struct fuse_setxattr_in { + uint32_t size; + uint32_t flags; + uint32_t setxattr_flags; + uint32_t padding; +}; + +struct fuse_statfs_out { + struct fuse_kstatfs st; +}; + +struct fuse_sx_time { + int64_t tv_sec; + uint32_t tv_nsec; + int32_t __reserved; +}; + +struct fuse_statx { + uint32_t mask; + uint32_t blksize; + uint64_t attributes; + uint32_t nlink; + uint32_t uid; + uint32_t gid; + uint16_t mode; + uint16_t __spare0[1]; + uint64_t ino; + uint64_t size; + uint64_t blocks; + uint64_t attributes_mask; + struct fuse_sx_time atime; + struct fuse_sx_time btime; + struct fuse_sx_time ctime; + struct fuse_sx_time mtime; + uint32_t rdev_major; + uint32_t rdev_minor; + uint32_t dev_major; + uint32_t dev_minor; + uint64_t __spare2[14]; +}; + +struct fuse_statx_in { + uint32_t getattr_flags; + uint32_t reserved; + uint64_t fh; + uint32_t sx_flags; + uint32_t sx_mask; +}; + +struct fuse_statx_out { + uint64_t attr_valid; + uint32_t attr_valid_nsec; + uint32_t flags; + uint64_t spare[2]; + struct fuse_statx stat; +}; + +struct fuse_submount_lookup { + refcount_t count; + u64 nodeid; + struct fuse_forget_link *forget; +}; + +struct fuse_supp_groups { + uint32_t nr_groups; + uint32_t groups[0]; +}; + +struct fuse_sync_bucket { + atomic_t count; + wait_queue_head_t waitq; + struct callback_head rcu; +}; + +struct fuse_syncfs_in { + uint64_t padding; +}; + +struct fuse_uring_cmd_req { + uint64_t flags; + uint64_t commit_id; + uint16_t qid; + uint8_t padding[6]; +}; + +struct fuse_uring_ent_in_out { + uint64_t flags; + uint64_t commit_id; + uint32_t payload_sz; + uint32_t padding; + uint64_t reserved; +}; + +struct fuse_uring_pdu { + struct fuse_ring_ent *ent; +}; + +struct fuse_uring_req_header { + char in_out[128]; + char op_in[128]; + struct fuse_uring_ent_in_out ring_ent_in_out; +}; + +struct fuse_writepage_args { + struct fuse_io_args ia; + struct rb_node writepages_entry; + struct list_head queue_entry; + struct fuse_writepage_args *next; + struct inode *inode; + struct fuse_sync_bucket *bucket; +}; + +struct futex_hash_bucket { + atomic_t waiters; + spinlock_t lock; + struct plist_head chain; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +union futex_key { + struct { + u64 i_seq; + long unsigned int pgoff; + unsigned int offset; + } shared; + struct { + union { + struct mm_struct *mm; + u64 __tmp; + }; + long unsigned int address; + unsigned int offset; + } private; + struct { + u64 ptr; + long unsigned int word; + unsigned int offset; + } both; +}; + +struct futex_pi_state { + struct list_head list; + struct rt_mutex_base pi_mutex; + struct task_struct *owner; + refcount_t refcount; + union futex_key key; +}; + +struct wake_q_head; + +struct futex_q; + +typedef void futex_wake_fn(struct wake_q_head *, struct futex_q *); + +struct rt_mutex_waiter; + +struct futex_q { + struct plist_node list; + struct task_struct *task; + spinlock_t *lock_ptr; + futex_wake_fn *wake; + void *wake_data; + union futex_key key; + struct futex_pi_state *pi_state; + struct rt_mutex_waiter *rt_waiter; + union futex_key *requeue_pi_key; + u32 bitset; + atomic_t requeue_state; +}; + +struct futex_waitv { + __u64 val; + __u64 uaddr; + __u32 flags; + __u32 __reserved; +}; + +struct futex_vector { + struct futex_waitv w; + struct futex_q q; +}; + +struct fw_cache_entry { + struct list_head list; + const char *name; +}; + +struct fw_name_devm { + long unsigned int magic; + const char *name; +}; + +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; + bool is_paged_buf; + struct page **pages; + int nr_pages; + int page_array_size; + bool need_uevent; + struct list_head pending_list; + const char *fw_name; +}; + +struct fw_rsc_carveout { + u32 da; + u32 pa; + u32 len; + u32 flags; + u32 reserved; + u8 name[32]; +}; + +struct fw_rsc_devmem { + u32 da; + u32 pa; + u32 len; + u32 flags; + u32 reserved; + u8 name[32]; +}; + +struct fw_rsc_hdr { + u32 type; + u8 data[0]; +}; + +struct fw_rsc_trace { + u32 da; + u32 len; + u32 reserved; + u8 name[32]; +}; + +struct fw_rsc_vdev_vring { + u32 da; + u32 align; + u32 num; + u32 notifyid; + u32 pa; +}; + +struct fw_rsc_vdev { + u32 id; + u32 notifyid; + u32 dfeatures; + u32 gfeatures; + u32 config_len; + u8 status; + u8 num_of_vrings; + u8 reserved[2]; + struct fw_rsc_vdev_vring vring[0]; +}; + +struct fw_sysfs { + bool nowait; + struct device dev; + struct fw_priv *fw_priv; + struct firmware *fw; + void *fw_upload_priv; +}; + +union fw_table_header { + struct acpi_table_header acpi; + struct acpi_table_cdat cdat; +}; + +struct fw_upload { + void *dd_handle; + void *priv; +}; + +struct fw_upload_ops { + enum fw_upload_err (*prepare)(struct fw_upload *, const u8 *, u32); + enum fw_upload_err (*write)(struct fw_upload *, const u8 *, u32, u32, u32 *); + enum fw_upload_err (*poll_complete)(struct fw_upload *); + void (*cancel)(struct fw_upload *); + void (*cleanup)(struct fw_upload *); +}; + +struct fw_upload_priv { + struct fw_upload *fw_upload; + struct module *module; + const char *name; + const struct fw_upload_ops *ops; + struct mutex lock; + struct work_struct work; + const u8 *data; + u32 remaining_size; + enum fw_upload_prog progress; + enum fw_upload_prog err_progress; + enum fw_upload_err err_code; +}; + +union fwnet_hwaddr { + u8 u[16]; + struct { + __be64 uniq_id; + u8 max_rec; + u8 sspd; + u8 fifo[6]; + } uc; +}; + +struct fwnode_endpoint { + unsigned int port; + unsigned int id; + const struct fwnode_handle *local_fwnode; +}; + +struct fwnode_link { + struct fwnode_handle *supplier; + struct list_head s_hook; + struct fwnode_handle *consumer; + struct list_head c_hook; + u8 flags; +}; + +struct fwnode_reference_args; + +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 *); + bool (*property_read_bool)(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[16]; +}; + +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 gatt_mask { + long unsigned int mask; + u32 type; +}; + +struct gcm_instance_ctx { + struct crypto_skcipher_spawn ctr; + struct crypto_ahash_spawn ghash; +}; + +struct gcr3_tbl_info { + u64 *gcr3_tbl; + int glx; + u32 pasid_cnt; + u16 domid; +}; + +struct gcry_mpi { + int alloced; + int nlimbs; + int nbits; + int sign; + unsigned int flags; + mpi_limb_t *d; +}; + +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 pcpu_gen_cookie; + +struct gen_cookie { + struct pcpu_gen_cookie *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 gen_pool; + +typedef long unsigned int (*genpool_algo_t)(long unsigned int *, long unsigned int, long unsigned int, unsigned int, void *, struct gen_pool *, long unsigned int); + +struct gen_pool { + spinlock_t lock; + struct list_head chunks; + int min_alloc_order; + genpool_algo_t algo; + void *data; + const char *name; +}; + +struct gen_pool_chunk { + struct list_head next_chunk; + atomic_long_t avail; + phys_addr_t phys_addr; + void *owner; + long unsigned int start_addr; + long unsigned int end_addr; + long unsigned int bits[0]; +}; + +struct timer_rand_state; + +struct gendisk { + int major; + int first_minor; + int minors; + char disk_name[32]; + short unsigned int events; + short unsigned int 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; + long unsigned int 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; + unsigned int nr_zones; + unsigned int zone_capacity; + unsigned int last_zone_capacity; + long unsigned int *conv_zones_bitmap; + unsigned int zone_wplugs_hash_bits; + atomic_t nr_zone_wplugs; + spinlock_t zone_wplugs_lock; + struct mempool_s *zone_wplugs_pool; + struct hlist_head *zone_wplugs_hash; + struct workqueue_struct *zone_wplugs_wq; + struct cdrom_device_info *cdi; + int node_id; + struct badblocks *bb; + struct lockdep_map lockdep_map; + u64 diskseq; + blk_mode_t open_mode; + struct blk_independent_access_ranges *ia_ranges; +}; + +struct gpd_dev_ops { + int (*start)(struct device *); + int (*stop)(struct device *); +}; + +struct genpd_governor_data; + +struct genpd_power_state; + +struct genpd_lock_ops; + +struct generic_pm_domain { + struct device dev; + struct dev_pm_domain domain; + struct list_head gpd_list_node; + struct list_head parent_links; + struct list_head child_links; + struct list_head dev_list; + struct dev_power_governor *gov; + struct genpd_governor_data *gd; + struct work_struct power_off_work; + struct fwnode_handle *provider; + bool has_provider; + const char *name; + atomic_t sd_count; + enum gpd_status status; + unsigned int device_count; + unsigned int device_id; + unsigned int suspended_count; + unsigned int prepared_count; + unsigned int performance_state; + cpumask_var_t cpus; + bool synced_poweroff; + int (*power_off)(struct generic_pm_domain *); + int (*power_on)(struct generic_pm_domain *); + struct raw_notifier_head power_notifiers; + struct opp_table *opp_table; + int (*set_performance_state)(struct generic_pm_domain *, unsigned int); + struct gpd_dev_ops dev_ops; + int (*set_hwmode_dev)(struct generic_pm_domain *, struct device *, bool); + bool (*get_hwmode_dev)(struct generic_pm_domain *, struct device *); + int (*attach_dev)(struct generic_pm_domain *, struct device *); + void (*detach_dev)(struct generic_pm_domain *, struct device *); + unsigned int flags; + struct genpd_power_state *states; + void (*free_states)(struct genpd_power_state *, unsigned int); + unsigned int state_count; + unsigned int state_idx; + u64 on_time; + u64 accounting_time; + const struct genpd_lock_ops *lock_ops; + union { + struct mutex mlock; + struct { + spinlock_t slock; + long unsigned int lock_flags; + }; + struct { + raw_spinlock_t raw_slock; + long unsigned int raw_lock_flags; + }; + }; +}; + +struct pm_domain_data { + struct list_head list_node; + struct device *dev; +}; + +struct gpd_timing_data; + +struct generic_pm_domain_data { + struct pm_domain_data base; + struct gpd_timing_data *td; + struct notifier_block nb; + struct notifier_block *power_nb; + int cpu; + unsigned int performance_state; + unsigned int default_pstate; + unsigned int rpm_pstate; + unsigned int opp_token; + bool hw_mode; + bool rpm_always_on; + void *data; +}; + +struct geneve_opt { + __be16 opt_class; + u8 type; + u8 length: 5; + u8 r3: 1; + u8 r2: 1; + u8 r1: 1; + u8 opt_data[0]; +}; + +struct ocontext; + +struct genfs { + char *fstype; + struct ocontext *head; + struct genfs *next; +}; + +struct netlink_callback; + +struct nla_policy; + +struct genl_split_ops { + union { + struct { + int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + int (*doit)(struct sk_buff *, struct genl_info *); + void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + }; + struct { + int (*start)(struct netlink_callback *); + int (*dumpit)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + }; + }; + const struct nla_policy *policy; + unsigned int maxattr; + u8 cmd; + u8 internal_flags; + u8 flags; + u8 validate; +}; + +struct genlmsghdr; + +struct genl_info { + u32 snd_seq; + u32 snd_portid; + const struct genl_family *family; + const struct nlmsghdr *nlhdr; + struct genlmsghdr *genlhdr; + struct nlattr **attrs; + possible_net_t _net; + union { + u8 ctx[48]; + void *user_ptr[2]; + }; + struct netlink_ext_ack *extack; +}; + +struct genl_dumpit_info { + struct genl_split_ops op; + struct genl_info info; +}; + +struct genl_ops; + +struct genl_small_ops; + +struct genl_multicast_group; + +struct genl_family { + unsigned int hdrsize; + char name[16]; + unsigned int version; + unsigned int maxattr; + u8 netnsok: 1; + u8 parallel_ops: 1; + u8 n_ops; + u8 n_small_ops; + u8 n_split_ops; + u8 n_mcgrps; + u8 resv_start_op; + const struct nla_policy *policy; + int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + int (*bind)(int); + void (*unbind)(int); + const struct genl_ops *ops; + const struct genl_small_ops *small_ops; + const struct genl_split_ops *split_ops; + const struct genl_multicast_group *mcgrps; + struct module *module; + size_t sock_priv_size; + void (*sock_priv_init)(void *); + void (*sock_priv_destroy)(void *); + int id; + unsigned int mcgrp_offset; + struct xarray *sock_privs; +}; + +struct genl_multicast_group { + char name[16]; + u8 flags; +}; + +struct genl_op_iter { + const struct genl_family *family; + struct genl_split_ops doit; + struct genl_split_ops dumpit; + int cmd_idx; + int entry_idx; + u32 cmd; + u8 flags; +}; + +struct 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_start_context { + const struct genl_family *family; + struct nlmsghdr *nlh; + struct netlink_ext_ack *extack; + const struct genl_split_ops *ops; + int hdrlen; +}; + +struct genlmsghdr { + __u8 cmd; + __u8 version; + __u16 reserved; +}; + +struct genpd_governor_data { + s64 max_off_time_ns; + bool max_off_time_changed; + ktime_t next_wakeup; + ktime_t next_hrtimer; + bool cached_power_down_ok; + bool cached_power_down_state_idx; +}; + +struct genpd_lock_ops { + void (*lock)(struct generic_pm_domain *); + void (*lock_nested)(struct generic_pm_domain *, int); + int (*lock_interruptible)(struct generic_pm_domain *); + void (*unlock)(struct generic_pm_domain *); +}; + +struct genpd_power_state { + const char *name; + s64 power_off_latency_ns; + s64 power_on_latency_ns; + s64 residency_ns; + u64 usage; + u64 rejected; + struct fwnode_handle *fwnode; + u64 idle_time; + void *data; +}; + +struct genpool_data_align { + int align; +}; + +struct genpool_data_fixed { + long unsigned int offset; +}; + +struct genradix_iter { + size_t offset; + size_t pos; +}; + +struct genradix_node { + union { + struct genradix_node *children[64]; + u8 data[512]; + }; +}; + +struct getcpu_cache { + long unsigned int blob[16]; +}; + +struct getdents_callback { + struct dir_context ctx; + char *name; + u64 ino; + int found; + int sequence; +}; + +struct linux_dirent; + +struct getdents_callback___2 { + struct dir_context ctx; + struct linux_dirent *current_dir; + int prev_reclen; + int count; + int error; +}; + +struct linux_dirent64; + +struct getdents_callback64 { + struct dir_context ctx; + struct linux_dirent64 *current_dir; + int prev_reclen; + int count; + int error; +}; + +struct getfsmap_info { + struct super_block *gi_sb; + struct fsmap_head *gi_data; + unsigned int gi_idx; + __u32 gi_last_flags; +}; + +struct input_keymap_entry { + __u8 flags; + __u8 len; + __u16 index; + __u32 keycode; + __u8 scancode[32]; +}; + +struct getset_keycode_data { + struct input_keymap_entry ke; + int error; +}; + +struct gf128mul_4k { + be128 t[256]; +}; + +struct gf128mul_64k { + struct gf128mul_4k *t[16]; +}; + +struct kvm_memory_slot; + +struct gfn_to_hva_cache { + u64 generation; + gpa_t gpa; + long unsigned int hva; + long unsigned int len; + struct kvm_memory_slot *memslot; +}; + +struct kvm; + +struct gfn_to_pfn_cache { + u64 generation; + gpa_t gpa; + long unsigned int uhva; + struct kvm_memory_slot *memslot; + struct kvm *kvm; + struct list_head list; + rwlock_t lock; + struct mutex refresh_lock; + void *khva; + kvm_pfn_t pfn; + bool active; + bool valid; +}; + +struct ghash_ctx { + struct gf128mul_4k *gf128; +}; + +struct ghash_desc_ctx { + u8 buffer[16]; + u32 bytes; +}; + +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 ghcb_state { + struct ghcb *ghcb; +}; + +struct ghes { + union { + struct acpi_hest_generic *generic; + struct acpi_hest_generic_v2 *generic_v2; + }; + struct acpi_hest_generic_status *estatus; + long unsigned int flags; + union { + struct list_head list; + struct timer_list timer; + unsigned int irq; + }; + struct device *dev; + struct list_head elist; +}; + +struct ghes_arr { + struct platform_device **ghes_devs; + unsigned int count; +}; + +struct ghes_estatus_cache { + u32 estatus_len; + atomic_t count; + struct acpi_hest_generic *generic; + long long unsigned int time_in; + struct callback_head rcu; +}; + +struct ghes_estatus_node { + struct llist_node llnode; + struct acpi_hest_generic *generic; + struct ghes *ghes; + int task_work_cpu; + struct callback_head task_work; +}; + +struct ghes_hw_desc { + int num_dimms; + struct dimm_info *dimms; +}; + +struct ghes_pvt { + struct mem_ctl_info *mci; + char other_detail[400]; + char msg[80]; +}; + +struct ghes_vendor_record_entry { + struct work_struct work; + int error_severity; + char vendor_record[0]; +}; + +struct giveback_urb_bh { + bool running; + bool high_prio; + spinlock_t lock; + struct list_head head; + struct work_struct bh; + struct usb_host_endpoint *completing_ep; +}; + +struct global_params { + bool no_turbo; + bool turbo_disabled; + int max_perf_pct; + int min_perf_pct; +}; + +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 gnet_estimator { + signed char interval; + unsigned char ewma_log; +}; + +struct gnet_stats_basic { + __u64 bytes; + __u32 packets; +}; + +struct gnet_stats_rate_est { + __u32 bps; + __u32 pps; +}; + +struct gnet_stats_rate_est64 { + __u64 bps; + __u64 pps; +}; + +struct gntab_unmap_queue_data; + +typedef void (*gnttab_unmap_refs_done)(int, struct gntab_unmap_queue_data *); + +struct gnttab_unmap_grant_ref; + +struct gntab_unmap_queue_data { + struct delayed_work gnttab_work; + void *data; + gnttab_unmap_refs_done done; + struct gnttab_unmap_grant_ref *unmap_ops; + struct gnttab_unmap_grant_ref *kunmap_ops; + struct page **pages; + unsigned int count; + unsigned int age; +}; + +struct gnttab_copy_ptr { + union { + grant_ref_t ref; + xen_pfn_t gmfn; + } u; + domid_t domid; + uint16_t offset; +}; + +struct gnttab_copy { + struct gnttab_copy_ptr source; + struct gnttab_copy_ptr dest; + uint16_t len; + uint16_t flags; + int16_t status; +}; + +struct gnttab_dma_alloc_args { + struct device *dev; + bool coherent; + int nr_pages; + struct page **pages; + xen_pfn_t *frames; + void *vaddr; + dma_addr_t dev_bus_addr; +}; + +struct gnttab_get_status_frames { + uint32_t nr_frames; + domid_t dom; + int16_t status; + __guest_handle_uint64_t frame_list; +}; + +struct gnttab_map_grant_ref { + uint64_t host_addr; + uint32_t flags; + grant_ref_t ref; + domid_t dom; + int16_t status; + grant_handle_t handle; + uint64_t dev_bus_addr; +}; + +struct gnttab_ops { + unsigned int version; + unsigned int grefs_per_grant_frame; + int (*map_frames)(xen_pfn_t *, unsigned int); + void (*unmap_frames)(void); + void (*update_entry)(grant_ref_t, domid_t, long unsigned int, unsigned int); + int (*end_foreign_access_ref)(grant_ref_t); + long unsigned int (*read_frame)(grant_ref_t); +}; + +struct gnttab_page_cache { + spinlock_t lock; + struct page *pages; + unsigned int num_pages; +}; + +struct gnttab_query_size { + domid_t dom; + uint32_t nr_frames; + uint32_t max_nr_frames; + int16_t status; +}; + +struct gnttab_set_version { + uint32_t version; +}; + +struct gnttab_setup_table { + domid_t dom; + uint32_t nr_frames; + int16_t status; + __guest_handle_xen_pfn_t frame_list; +}; + +struct gnttab_unmap_grant_ref { + uint64_t host_addr; + uint64_t dev_bus_addr; + grant_handle_t handle; + int16_t status; +}; + +struct gnttab_vm_area { + struct vm_struct *area; + pte_t **ptes; + int idx; +}; + +struct governor_attr { + struct attribute attr; + ssize_t (*show)(struct gov_attr_set *, char *); + ssize_t (*store)(struct gov_attr_set *, const char *, size_t); +}; + +struct watchdog_governor; + +struct governor_priv { + struct watchdog_governor *gov; + struct list_head entry; +}; + +struct gpd_link { + struct generic_pm_domain *parent; + struct list_head parent_node; + struct generic_pm_domain *child; + struct list_head child_node; + unsigned int performance_state; + unsigned int prev_performance_state; +}; + +struct gpd_timing_data { + s64 suspend_latency_ns; + s64 resume_latency_ns; + s64 effective_constraint_ns; + ktime_t next_wakeup; + bool constraint_changed; + bool cached_suspend_ok; +}; + +struct gpio_array { + struct gpio_desc **desc; + unsigned int size; + struct gpio_device *gdev; + long unsigned int *get_mask; + long unsigned int *set_mask; + long unsigned int invert_mask[0]; +}; + +struct gpio_v2_line_attribute { + __u32 id; + __u32 padding; + union { + __u64 flags; + __u64 values; + __u32 debounce_period_us; + }; +}; + +struct gpio_v2_line_info { + char name[32]; + char consumer[32]; + __u32 offset; + __u32 num_attrs; + __u64 flags; + struct gpio_v2_line_attribute attrs[10]; + __u32 padding[4]; +}; + +struct gpio_v2_line_info_changed { + struct gpio_v2_line_info info; + __u64 timestamp_ns; + __u32 event_type; + __u32 padding[5]; +}; + +struct gpio_chardev_data { + struct gpio_device *gdev; + wait_queue_head_t wait; + struct { + union { + struct __kfifo kfifo; + struct gpio_v2_line_info_changed *type; + const struct gpio_v2_line_info_changed *const_type; + char (*rectype)[0]; + struct gpio_v2_line_info_changed *ptr; + const struct gpio_v2_line_info_changed *ptr_const; + }; + struct gpio_v2_line_info_changed buf[32]; + } events; + struct notifier_block lineinfo_changed_nb; + struct notifier_block device_unregistered_nb; + long unsigned int *watched_lines; + atomic_t watch_abi_version; + struct file *fp; +}; + +struct gpio_chip_guard { + struct gpio_device *gdev; + struct gpio_chip *gc; + int idx; +}; + +typedef struct gpio_chip_guard class_gpio_chip_guard_t; + +struct gpio_desc_label; + +struct gpio_desc { + struct gpio_device *gdev; + long unsigned int flags; + struct gpio_desc_label *label; + const char *name; + unsigned int debounce_period_us; +}; + +struct gpio_desc_label { + struct callback_head rh; + char str[0]; +}; + +struct gpio_descs { + struct gpio_array *info; + unsigned int ndescs; + struct gpio_desc *desc[0]; +}; + +struct gpio_device { + struct device dev; + struct cdev chrdev; + int id; + struct device *mockdev; + struct module *owner; + struct gpio_chip *chip; + struct gpio_desc *descs; + struct srcu_struct desc_srcu; + unsigned int base; + u16 ngpio; + bool can_sleep; + const char *label; + void *data; + struct list_head list; + struct raw_notifier_head line_state_notifier; + rwlock_t line_state_lock; + struct workqueue_struct *line_state_wq; + struct blocking_notifier_head device_notifier; + struct srcu_struct srcu; + struct list_head pin_ranges; +}; + +struct irq_fwspec { + struct fwnode_handle *fwnode; + int param_count; + u32 param[16]; +}; + +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; + long unsigned int offset; + char *name; +}; + +struct msi_desc; + +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; + }; +}; + +typedef struct irq_alloc_info msi_alloc_info_t; + +union gpio_irq_fwspec { + struct irq_fwspec fwspec; + msi_alloc_info_t msiinfo; +}; + +struct pinctrl_gpio_range { + struct list_head node; + const char *name; + unsigned int id; + unsigned int base; + unsigned int pin_base; + unsigned int npins; + const unsigned int *pins; + struct gpio_chip *gc; +}; + +struct gpio_pin_range { + struct list_head node; + struct pinctrl_dev *pctldev; + struct pinctrl_gpio_range range; +}; + +struct gpio_v2_line_config_attribute { + struct gpio_v2_line_attribute attr; + __u64 mask; +}; + +struct gpio_v2_line_config { + __u64 flags; + __u32 num_attrs; + __u32 padding[5]; + struct gpio_v2_line_config_attribute attrs[10]; +}; + +struct gpio_v2_line_event { + __u64 timestamp_ns; + __u32 id; + __u32 offset; + __u32 seqno; + __u32 line_seqno; + __u32 padding[6]; +}; + +struct gpio_v2_line_request { + __u32 offsets[64]; + char consumer[32]; + struct gpio_v2_line_config config; + __u32 num_lines; + __u32 event_buffer_size; + __u32 padding[5]; + __s32 fd; +}; + +struct gpio_v2_line_values { + __u64 bits; + __u64 mask; +}; + +struct gpiochip_info { + char name[32]; + char label[32]; + __u32 lines; +}; + +struct gpiod_data { + struct gpio_desc *desc; + struct mutex mutex; + struct kernfs_node *value_kn; + int irq; + unsigned char irq_flags; + bool direction_can_change; +}; + +struct gpiod_hog { + struct list_head list; + const char *chip_label; + u16 chip_hwnum; + const char *line_name; + long unsigned int lflags; + int dflags; +}; + +struct gpiod_lookup { + const char *key; + u16 chip_hwnum; + const char *con_id; + unsigned int idx; + long unsigned int flags; +}; + +struct gpiod_lookup_table { + struct list_head list; + const char *dev_id; + struct gpiod_lookup table[0]; +}; + +struct gpioevent_data { + __u64 timestamp; + __u32 id; +}; + +struct gpioevent_request { + __u32 lineoffset; + __u32 handleflags; + __u32 eventflags; + char consumer_label[32]; + int fd; +}; + +struct gpiohandle_config { + __u32 flags; + __u8 default_values[64]; + __u32 padding[4]; +}; + +struct gpiohandle_data { + __u8 values[64]; +}; + +struct gpiohandle_request { + __u32 lineoffsets[64]; + __u32 flags; + __u8 default_values[64]; + char consumer_label[32]; + __u32 lines; + int fd; +}; + +struct gpiolib_seq_priv { + bool newline; + int idx; +}; + +struct gpioline_info { + __u32 line_offset; + __u32 flags; + char name[32]; + char consumer[32]; +}; + +struct gpioline_info_changed { + struct gpioline_info info; + __u64 timestamp; + __u32 event_type; + __u32 padding[5]; +}; + +struct grant { + grant_ref_t gref; + struct page *page; + struct list_head node; +}; + +struct grant_entry_header { + uint16_t flags; + domid_t domid; +}; + +struct grant_entry_v1 { + uint16_t flags; + domid_t domid; + uint32_t frame; +}; + +union grant_entry_v2 { + struct grant_entry_header hdr; + struct { + struct grant_entry_header hdr; + uint32_t pad0; + uint64_t frame; + } full_page; + struct { + struct grant_entry_header hdr; + uint16_t page_off; + uint16_t length; + uint64_t frame; + } sub_page; + struct { + struct grant_entry_header hdr; + domid_t trans_domid; + uint16_t pad0; + grant_ref_t gref; + } transitive; + uint32_t __spacer[4]; +}; + +struct grant_frames { + xen_pfn_t *pfn; + unsigned int count; + void *vaddr; +}; + +struct gre_base_hdr { + __be16 flags; + __be16 protocol; +}; + +struct gre_full_hdr { + struct gre_base_hdr fixed_header; + __be16 csum; + __be16 reserved1; + __be32 key; + __be32 seq; +}; + +struct gro_list { + struct list_head list; + int count; +}; + +struct napi_config; + +struct napi_struct { + struct list_head poll_list; + long unsigned int state; + int weight; + u32 defer_hard_irqs_count; + long unsigned int gro_bitmask; + int (*poll)(struct napi_struct *, int); + int poll_owner; + int list_owner; + struct net_device *dev; + struct gro_list gro_hash[8]; + struct sk_buff *skb; + struct list_head rx_list; + int rx_count; + unsigned int napi_id; + struct hrtimer timer; + struct task_struct *thread; + long unsigned int gro_flush_timeout; + long unsigned int irq_suspend_timeout; + u32 defer_hard_irqs; + struct list_head dev_list; + struct hlist_node napi_hash_node; + int irq; + int index; + struct napi_config *config; +}; + +struct gro_cell { + struct sk_buff_head napi_skbs; + struct napi_struct napi; +}; + +struct gro_cells { + struct gro_cell *cells; +}; + +struct group_device { + struct list_head list; + struct device *dev; + char *name; +}; + +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 group_for_pci_data { + struct pci_dev *pdev; + struct iommu_group *group; +}; + +struct group_info { + refcount_t usage; + int ngroups; + kgid_t gid[0]; +}; + +struct group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; +}; + +struct group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; +}; + +struct gsb_buffer { + u8 status; + u8 len; + union { + u16 wdata; + u8 bdata; + struct { + struct {} __empty_data; + u8 data[0]; + }; + }; +}; + +struct rpcsec_gss_oid { + unsigned int len; + u8 data[32]; +}; + +struct gss_api_ops; + +struct pf_desc; + +struct gss_api_mech { + struct list_head gm_list; + struct module *gm_owner; + struct rpcsec_gss_oid gm_oid; + char *gm_name; + const struct gss_api_ops *gm_ops; + int gm_pf_num; + struct pf_desc *gm_pfs; + const char *gm_upcall_enctypes; +}; + +struct gss_ctx; + +struct xdr_buf; + +struct xdr_netobj; + +struct gss_api_ops { + int (*gss_import_sec_context)(const void *, size_t, struct gss_ctx *, time64_t *, gfp_t); + u32 (*gss_get_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *); + u32 (*gss_verify_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *); + u32 (*gss_wrap)(struct gss_ctx *, int, struct xdr_buf *, struct page **); + u32 (*gss_unwrap)(struct gss_ctx *, int, int, struct xdr_buf *); + void (*gss_delete_sec_context)(void *); +}; + +struct gss_ctx { + struct gss_api_mech *mech_type; + void *internal_ctx_id; + unsigned int slack; + unsigned int align; +}; + +struct h_misc { + long unsigned int ino; + __u32 generation; + uid_t uid; + gid_t gid; + umode_t mode; +}; + +union handle_parts { + depot_stack_handle_t handle; + struct { + u32 pool_index_plus_1: 17; + u32 offset: 10; + u32 extra: 5; + }; +}; + +struct handle_to_path_ctx { + struct path root; + enum handle_to_path_flags flags; + unsigned int fh_flags; +}; + +struct handshake_net { + spinlock_t hn_lock; + int hn_pending; + int hn_pending_max; + struct list_head hn_requests; + long unsigned int hn_flags; +}; + +struct handshake_req; + +struct handshake_proto { + int hp_handler_class; + size_t hp_privsize; + long unsigned int hp_flags; + int (*hp_accept)(struct handshake_req *, struct genl_info *, int); + void (*hp_done)(struct handshake_req *, unsigned int, struct genl_info *); + void (*hp_destroy)(struct handshake_req *); +}; + +struct handshake_req { + struct list_head hr_list; + struct rhash_head hr_rhash; + long unsigned int hr_flags; + const struct handshake_proto *hr_proto; + struct sock *hr_sk; + void (*hr_odestruct)(struct sock *); + char hr_priv[0]; +}; + +struct hash { + int ino; + int minor; + int major; + umode_t mode; + struct hash *next; + char name[4098]; +}; + +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 hash_prefix { + const char *name; + const u8 *data; + size_t size; +}; + +struct hashtab_key_params { + u32 (*hash)(const void *); + int (*cmp)(const void *, const void *); +}; + +struct hashtab_node { + void *key; + void *datum; + struct hashtab_node *next; +}; + +struct hc_driver { + const char *description; + const char *product_desc; + size_t hcd_priv_size; + irqreturn_t (*irq)(struct usb_hcd *); + int flags; + int (*reset)(struct usb_hcd *); + int (*start)(struct usb_hcd *); + int (*pci_suspend)(struct usb_hcd *, bool); + int (*pci_resume)(struct usb_hcd *, pm_message_t); + int (*pci_poweroff_late)(struct usb_hcd *, bool); + void (*stop)(struct usb_hcd *); + void (*shutdown)(struct usb_hcd *); + int (*get_frame_number)(struct usb_hcd *); + int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); + int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); + int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); + void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); + void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); + void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); + int (*hub_status_data)(struct usb_hcd *, char *); + int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); + int (*bus_suspend)(struct usb_hcd *); + int (*bus_resume)(struct usb_hcd *); + int (*start_port_reset)(struct usb_hcd *, unsigned int); + long unsigned int (*get_resuming_ports)(struct usb_hcd *); + void (*relinquish_port)(struct usb_hcd *, int); + int (*port_handed_over)(struct usb_hcd *, int); + void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); + int (*alloc_dev)(struct usb_hcd *, struct usb_device *); + void (*free_dev)(struct usb_hcd *, struct usb_device *); + int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); + int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); + int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); + void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); + int (*address_device)(struct usb_hcd *, struct usb_device *, unsigned int); + int (*enable_device)(struct usb_hcd *, struct usb_device *); + int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t); + int (*reset_device)(struct usb_hcd *, struct usb_device *); + int (*update_device)(struct usb_hcd *, struct usb_device *); + int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int); + int (*enable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); + int (*disable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); + int (*find_raw_port_number)(struct usb_hcd *, int); + int (*port_power)(struct usb_hcd *, int, bool); + int (*submit_single_step_set_feature)(struct usb_hcd *, struct urb *, int); +}; + +struct hd_geometry { + unsigned char heads; + unsigned char sectors; + short unsigned int cylinders; + long unsigned int start; +}; + +struct header_iter { + struct pci_dev *dev; +}; + +struct hh_cache; + +struct header_ops { + int (*create)(struct sk_buff *, struct net_device *, short unsigned int, 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 hfi_cpu_data { + u8 perf_cap; + u8 ee_cap; +}; + +struct hfi_instance; + +struct hfi_cpu_info { + s16 index; + struct hfi_instance *hfi_instance; +}; + +struct hfi_features { + size_t nr_table_pages; + unsigned int cpu_stride; + unsigned int hdr_size; +}; + +struct hfi_instance { + union { + void *local_table; + u64 *timestamp; + }; + void *hdr; + void *data; + cpumask_var_t cpus; + void *hw_table; + struct delayed_work update_work; + raw_spinlock_t table_lock; + raw_spinlock_t event_lock; +}; + +struct hh_cache { + unsigned int hh_len; + seqlock_t hh_lock; + long unsigned int hh_data[16]; +}; + +struct hib_bio_batch { + atomic_t count; + wait_queue_head_t wait; + blk_status_t error; + struct blk_plug plug; +}; + +struct hid_bpf { + u8 *device_data; + u32 allocated_data; + bool destroyed; + struct hid_bpf_ops *rdesc_ops; + struct list_head prog_list; + struct mutex prog_list_lock; + struct srcu_struct srcu; +}; + +struct hid_bpf_ctx { + struct hid_device *hid; + __u32 allocated_size; + union { + __s32 retval; + __s32 size; + }; +}; + +struct hid_bpf_ctx_kern { + struct hid_bpf_ctx ctx; + u8 *data; + bool from_bpf; +}; + +struct hid_bpf_offset_write_range { + const char *struct_name; + u32 struct_length; + u32 start; + u32 end; +}; + +struct hid_collection { + int parent_idx; + unsigned int type; + unsigned int usage; + unsigned int level; +}; + +struct hid_report; + +struct hid_report_enum { + unsigned int numbered; + struct list_head report_list; + struct hid_report *report_id_hash[256]; +}; + +struct semaphore { + raw_spinlock_t lock; + unsigned int count; + struct list_head wait_list; +}; + +struct hid_driver; + +struct hid_ll_driver; + +struct hid_field; + +struct hid_usage; + +struct hid_device { + const __u8 *dev_rdesc; + const __u8 *bpf_rdesc; + const __u8 *rdesc; + unsigned int dev_rsize; + unsigned int bpf_rsize; + unsigned int rsize; + unsigned int collection_size; + struct hid_collection *collection; + unsigned int maxcollection; + unsigned int maxapplication; + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + __u32 version; + enum hid_type type; + unsigned int country; + struct hid_report_enum report_enum[3]; + struct work_struct led_work; + struct semaphore driver_input_lock; + struct device dev; + struct hid_driver *driver; + void *devres_group_id; + const struct hid_ll_driver *ll_driver; + struct mutex ll_open_lock; + unsigned int ll_open_count; + struct power_supply *battery; + __s32 battery_capacity; + __s32 battery_min; + __s32 battery_max; + __s32 battery_report_type; + __s32 battery_report_id; + __s32 battery_charge_status; + enum hid_battery_status battery_status; + bool battery_avoid_query; + ktime_t battery_ratelimit_time; + long unsigned int 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 *); + short unsigned int debug; + struct dentry *debug_dir; + struct dentry *debug_rdesc; + struct dentry *debug_events; + struct list_head debug_list; + spinlock_t debug_list_lock; + wait_queue_head_t debug_wait; + struct kref ref; + unsigned int id; + struct hid_bpf bpf; +}; + +struct hid_device_id { + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + kernel_ulong_t driver_data; +}; + +struct hid_report_id; + +struct hid_usage_id; + +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 *); + const __u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *); + int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, long unsigned int **, int *); + int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, long unsigned int **, 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_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_field_entry { + struct list_head list; + struct hid_field *field; + unsigned int index; + __s32 priority; +}; + +struct hid_input { + struct list_head list; + struct hid_report *report; + struct input_dev *input; + const char *name; + struct list_head reports; + unsigned int application; + bool registered; +}; + +struct hid_ll_driver { + int (*start)(struct hid_device *); + void (*stop)(struct hid_device *); + int (*open)(struct hid_device *); + void (*close)(struct hid_device *); + int (*power)(struct hid_device *, int); + int (*parse)(struct hid_device *); + void (*request)(struct hid_device *, struct hid_report *, int); + int (*wait)(struct hid_device *); + int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); + int (*output_report)(struct hid_device *, __u8 *, size_t); + int (*idle)(struct hid_device *, int, int, int); + bool (*may_wakeup)(struct hid_device *); + unsigned int max_buffer_size; +}; + +struct hid_ops { + struct hid_report * (*hid_get_report)(struct hid_report_enum *, const u8 *); + int (*hid_hw_raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, enum hid_report_type, enum hid_class_request, u64, bool); + int (*hid_hw_output_report)(struct hid_device *, __u8 *, size_t, u64, bool); + int (*hid_input_report)(struct hid_device *, enum hid_report_type, u8 *, u32, int, u64, bool, bool); + struct module *owner; + const struct bus_type *bus_type; +}; + +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_report_id { + __u32 report_type; +}; + +struct hid_uid { + const char *hid; + const char *uid; +}; + +struct hid_usage { + unsigned int hid; + unsigned int collection_index; + unsigned int usage_index; + __s8 resolution_multiplier; + __s8 wheel_factor; + __u16 code; + __u8 type; + __s16 hat_min; + __s16 hat_max; + __s16 hat_dir; + __s16 wheel_accumulated; +}; + +struct hid_usage_id { + __u32 usage_hid; + __u32 usage_type; + __u32 usage_code; +}; + +struct hist_elt_data { + char *comm; + u64 *var_ref_vals; + char **field_var_str; + int n_field_var_str; +}; + +struct hist_var { + char *name; + struct hist_trigger_data *hist_data; + unsigned int idx; +}; + +struct hist_field { + struct ftrace_event_field *field; + long unsigned int flags; + long unsigned int buckets; + const char *type; + struct hist_field *operands[2]; + struct hist_trigger_data *hist_data; + enum hist_field_fn fn_num; + unsigned int ref; + unsigned int size; + unsigned int offset; + unsigned int is_signed; + struct hist_var var; + enum field_op_id operator; + char *system; + char *event_name; + char *name; + unsigned int var_ref_idx; + bool read_once; + unsigned int var_str_idx; + u64 constant; + u64 div_multiplier; +}; + +struct hist_file_data { + struct file *file; + u64 last_read; + u64 last_act; +}; + +struct hist_pad { + long unsigned int entries[16]; + u64 var_ref_vals[16]; + char compound_key[384]; +}; + +struct var_defs { + unsigned int n_vars; + char *name[16]; + char *expr[16]; +}; + +struct hist_trigger_attrs { + char *keys_str; + char *vals_str; + char *sort_key_str; + char *name; + char *clock; + bool pause; + bool cont; + bool clear; + bool ts_in_usecs; + bool no_hitcount; + unsigned int map_bits; + char *assignment_str[16]; + unsigned int n_assignments; + char *action_str[8]; + unsigned int n_actions; + struct var_defs var_defs; +}; + +struct tracing_map_sort_key { + unsigned int field_idx; + bool descending; +}; + +struct tracing_map; + +struct hist_trigger_data { + struct hist_field *fields[22]; + unsigned int n_vals; + unsigned int n_keys; + unsigned int n_fields; + unsigned int n_vars; + unsigned int n_var_str; + unsigned int key_size; + struct tracing_map_sort_key sort_keys[2]; + unsigned int n_sort_keys; + struct trace_event_file *event_file; + struct hist_trigger_attrs *attrs; + struct tracing_map *map; + bool enable_timestamps; + bool remove; + struct hist_field *var_refs[16]; + unsigned int n_var_refs; + struct action_data *actions[8]; + unsigned int n_actions; + struct field_var *field_vars[64]; + unsigned int n_field_vars; + unsigned int n_field_var_str; + struct field_var_hist *field_var_hists[64]; + unsigned int n_field_var_hists; + struct field_var *save_vars[64]; + unsigned int n_save_vars; + unsigned int n_save_var_str; +}; + +struct hist_val_stat { + u64 max; + u64 total; +}; + +struct hist_var_data { + struct list_head list; + struct hist_trigger_data *hist_data; +}; + +struct history_info { + char *command; + u32 cmd_num; +}; + +typedef struct history_info HISTORY_INFO; + +struct hlist_bl_head { + struct hlist_bl_node *first; +}; + +struct hmac_ctx { + struct crypto_shash *hash; + u8 pads[0]; +}; + +struct mmu_interval_notifier; + +struct hmm_range { + struct mmu_interval_notifier *notifier; + long unsigned int notifier_seq; + long unsigned int start; + long unsigned int end; + long unsigned int *hmm_pfns; + long unsigned int default_flags; + long unsigned int pfn_flags_mask; + void *dev_private_owner; +}; + +struct hmm_vma_walk { + struct hmm_range *range; + long unsigned int last; +}; + +struct hop_jumbo_hdr { + u8 nexthdr; + u8 hdrlen; + u8 tlv_type; + u8 tlv_len; + __be32 jumbo_payload_len; +}; + +struct hotplug_slot_ops { + int (*enable_slot)(struct hotplug_slot *); + int (*disable_slot)(struct hotplug_slot *); + int (*set_attention_status)(struct hotplug_slot *, u8); + int (*hardware_test)(struct hotplug_slot *, u32); + int (*get_power_status)(struct hotplug_slot *, u8 *); + int (*get_attention_status)(struct hotplug_slot *, u8 *); + int (*get_latch_status)(struct hotplug_slot *, u8 *); + int (*get_adapter_status)(struct hotplug_slot *, u8 *); + int (*reset_slot)(struct hotplug_slot *, bool); +}; + +struct housekeeping { + cpumask_var_t cpumasks[3]; + long unsigned int flags; +}; + +struct hpet_timer { + u64 hpet_config; + union { + u64 _hpet_hc64; + u32 _hpet_hc32; + long unsigned int _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; + long unsigned int _hpet_mc; + } _u0; + u64 res3; + struct hpet_timer hpet_timers[0]; +}; + +struct hpet_channel; + +struct hpet_base { + unsigned int nr_channels; + unsigned int nr_clockevents; + unsigned int boot_cfg; + struct hpet_channel *channels; +}; + +struct hpet_channel { + struct clock_event_device evt; + unsigned int num; + unsigned int cpu; + unsigned int irq; + unsigned int in_use; + enum hpet_mode mode; + unsigned int boot_cfg; + char name[10]; + long: 64; + long: 64; + long: 64; +}; + +struct hpet_data { + long unsigned int hd_phys_address; + void *hd_address; + short unsigned int hd_nirqs; + unsigned int hd_state; + unsigned int hd_irq[32]; +}; + +struct hpets; + +struct hpet_dev { + struct hpets *hd_hpets; + struct hpet *hd_hpet; + struct hpet_timer *hd_timer; + long unsigned int hd_ireqfreq; + long unsigned int 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 hpet_info { + long unsigned int hi_ireqfreq; + long unsigned int hi_flags; + short unsigned int hi_hpet; + short unsigned int hi_timer; +}; + +union hpet_lock { + struct { + arch_spinlock_t lock; + u32 value; + }; + u64 lockval; +}; + +struct hpet_scope { + struct intel_iommu *iommu; + u8 id; + unsigned int bus; + unsigned int devfn; +}; + +struct hpets { + struct hpets *hp_next; + struct hpet *hp_hpet; + long unsigned int hp_hpet_phys; + long long unsigned int hp_tick_freq; + long unsigned int hp_delta; + unsigned int hp_ntimer; + unsigned int hp_which; + struct hpet_dev hp_dev[0]; +}; + +struct hprobe { + enum hprobe_state state; + int srcu_idx; + struct uprobe *uprobe; +}; + +struct hpx_type0 { + u32 revision; + u8 cache_line_size; + u8 latency_timer; + u8 enable_serr; + u8 enable_perr; +}; + +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 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)(void); + 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 online: 1; + unsigned int nr_events; + short unsigned int nr_retries; + short unsigned int 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]; + call_single_data_t csd; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct hrtimer_sleeper { + struct hrtimer timer; + struct task_struct *task; +}; + +struct hsr_tag { + __be16 path_and_LSDU_size; + __be16 sequence_nr; + __be16 encap_proto; +}; + +struct hstate { + struct mutex resize_lock; + struct lock_class_key resize_key; + int next_nid_to_alloc; + int next_nid_to_free; + unsigned int order; + unsigned int demote_order; + long unsigned int mask; + long unsigned int max_huge_pages; + long unsigned int nr_huge_pages; + long unsigned int free_huge_pages; + long unsigned int resv_huge_pages; + long unsigned int surplus_huge_pages; + long unsigned int nr_overcommit_huge_pages; + struct list_head hugepage_activelist; + struct list_head hugepage_freelists[1024]; + unsigned int max_huge_pages_node[1024]; + unsigned int nr_huge_pages_node[1024]; + unsigned int free_huge_pages_node[1024]; + unsigned int surplus_huge_pages_node[1024]; + char name[32]; +}; + +struct hsu_dma_chan; + +struct hsu_dma { + struct dma_device dma; + struct hsu_dma_chan *chan; + short unsigned int nr_channels; +}; + +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 hsu_dma_desc; + +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_chip { + struct device *dev; + int irq; + void *regs; + unsigned int length; + unsigned int offset; + struct hsu_dma *hsu; +}; + +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_slave { + struct device *dma_dev; + int chan_id; +}; + +union hsw_tsx_tuning { + struct { + u32 cycles_last_block: 32; + u32 hle_abort: 1; + u32 rtm_abort: 1; + u32 instruction_abort: 1; + u32 non_instruction_abort: 1; + u32 retry: 1; + u32 data_conflict: 1; + u32 capacity_writes: 1; + u32 capacity_reads: 1; + }; + u64 value; +}; + +struct pcpu_freelist_node { + struct pcpu_freelist_node *next; +}; + +struct htab_elem { + union { + struct hlist_nulls_node hash_node; + struct { + void *padding; + union { + struct pcpu_freelist_node fnode; + struct htab_elem *batch_flink; + }; + }; + }; + union { + void *ptr_to_pptr; + struct bpf_lru_node lru_node; + }; + u32 hash; + long: 0; + char key[0]; +}; + +struct hte_ops; + +struct of_phandle_args; + +struct hte_ts_desc; + +struct hte_device; + +struct hte_chip { + const char *name; + struct device *dev; + const struct hte_ops *ops; + u32 nlines; + int (*xlate_of)(struct hte_chip *, const struct of_phandle_args *, struct hte_ts_desc *, u32 *); + int (*xlate_plat)(struct hte_chip *, struct hte_ts_desc *, u32 *); + bool (*match_from_linedata)(const struct hte_chip *, const struct hte_ts_desc *); + u8 of_hte_n_cells; + struct hte_device *gdev; + void *data; +}; + +struct hte_clk_info { + u64 hz; + clockid_t type; +}; + +struct hte_ts_data; + +typedef enum hte_return (*hte_ts_cb_t)(struct hte_ts_data *, void *); + +typedef enum hte_return (*hte_ts_sec_cb_t)(void *); + +struct hte_ts_info { + u32 xlated_id; + long unsigned int flags; + long unsigned int hte_cb_flags; + u64 seq; + char *line_name; + bool free_attr_name; + hte_ts_cb_t cb; + hte_ts_sec_cb_t tcb; + atomic_t dropped_ts; + spinlock_t slock; + struct work_struct cb_work; + struct mutex req_mlock; + struct dentry *ts_dbg_root; + struct hte_device *gdev; + void *cl_data; +}; + +struct hte_device { + u32 nlines; + atomic_t ts_req; + struct device *sdev; + struct dentry *dbg_root; + struct list_head list; + struct hte_chip *chip; + struct module *owner; + struct hte_ts_info ei[0]; +}; + +struct hte_line_attr { + u32 line_id; + void *line_data; + long unsigned int edge_flags; + const char *name; +}; + +struct hte_ops { + int (*request)(struct hte_chip *, struct hte_ts_desc *, u32); + int (*release)(struct hte_chip *, struct hte_ts_desc *, u32); + int (*enable)(struct hte_chip *, u32); + int (*disable)(struct hte_chip *, u32); + int (*get_clk_src_info)(struct hte_chip *, struct hte_clk_info *); +}; + +struct hte_ts_data { + u64 tsc; + u64 seq; + int raw_level; +}; + +struct hte_ts_desc { + struct hte_line_attr attr; + void *hte_data; +}; + +struct huge_bootmem_page { + struct list_head list; + struct hstate *hstate; +}; + +struct hugepage_subpool { + spinlock_t lock; + long int count; + long int max_hpages; + long int used_hpages; + struct hstate *hstate; + long int min_hpages; + long int rsv_hpages; +}; + +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; + 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 { + long unsigned int usage[2]; +}; + +struct hugetlb_vma_lock { + struct kref refs; + struct rw_semaphore rw_sema; + struct vm_area_struct *vma; +}; + +struct hugetlbfs_fs_context { + struct hstate *hstate; + long long unsigned int max_size_opt; + long long unsigned int min_size_opt; + long int max_hpages; + long int nr_inodes; + long int 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 hugetlbfs_inode_info { + struct inode vfs_inode; + unsigned int seals; +}; + +struct hugetlbfs_sb_info { + long int max_inodes; + long int free_inodes; + spinlock_t stat_lock; + struct hstate *hstate; + struct hugepage_subpool *spool; + kuid_t uid; + kgid_t gid; + umode_t mode; +}; + +struct hv_proximity_domain_flags { + u32 proximity_preferred: 1; + u32 reserved: 30; + u32 proximity_info_valid: 1; +}; + +struct hv_proximity_domain_info { + u32 domain_id; + struct hv_proximity_domain_flags flags; +}; + +struct hv_create_vp { + u64 partition_id; + u32 vp_index; + u8 padding[3]; + u8 subnode_type; + u64 subnode_id; + struct hv_proximity_domain_info proximity_domain_info; + u64 flags; +}; + +struct hv_deposit_memory { + u64 partition_id; + u64 gpa_page_list[0]; +}; + +union hv_pci_bdf { + u16 as_uint16; + struct { + u8 function: 3; + u8 device: 5; + u8 bus; + }; +}; + +union hv_pci_bus_range { + u16 as_uint16; + struct { + u8 subordinate_bus; + u8 secondary_bus; + }; +}; + +union hv_device_id { + u64 as_uint64; + struct { + u64 reserved0: 62; + u64 device_type: 2; + }; + struct { + u64 id: 62; + u64 device_type: 2; + } logical; + struct { + union { + hv_pci_rid rid; + union hv_pci_bdf bdf; + }; + hv_pci_segment segment; + union hv_pci_bus_range shadow_bus_range; + u16 phantom_function_bits: 2; + u16 source_shadow: 1; + u16 rsvdz0: 11; + u16 device_type: 2; + } pci; + struct { + u8 ioapic_id; + u8 rsvdz0; + u16 rsvdz1; + u16 rsvdz2; + u16 rsvdz3: 14; + u16 device_type: 2; + } ioapic; + struct { + u32 input_mapping_base; + u32 input_mapping_count: 30; + u32 device_type: 2; + } acpi; +}; + +struct hv_vpset { + u64 format; + u64 valid_bank_mask; + u64 bank_contents[0]; +}; + +struct hv_device_interrupt_target { + u32 vector; + u32 flags; + union { + u64 vp_mask; + struct hv_vpset vp_set; + }; +}; + +struct hv_device_interrupt_descriptor { + u32 interrupt_type; + u32 trigger_mode; + u32 vector_count; + u32 reserved; + struct hv_device_interrupt_target target; +}; + +union hv_input_vtl { + u8 as_uint8; + struct { + u8 target_vtl: 4; + u8 use_target_vtl: 1; + u8 reserved_z: 3; + }; +}; + +struct hv_x64_segment_register { + u64 base; + u32 limit; + u16 selector; + union { + struct { + u16 segment_type: 4; + u16 non_system_segment: 1; + u16 descriptor_privilege_level: 2; + u16 present: 1; + u16 reserved: 4; + u16 available: 1; + u16 _long: 1; + u16 _default: 1; + u16 granularity: 1; + }; + u16 attributes; + }; +}; + +struct hv_x64_table_register { + u16 pad[3]; + u16 limit; + u64 base; +}; + +struct hv_init_vp_context { + u64 rip; + u64 rsp; + u64 rflags; + struct hv_x64_segment_register cs; + struct hv_x64_segment_register ds; + struct hv_x64_segment_register es; + struct hv_x64_segment_register fs; + struct hv_x64_segment_register gs; + struct hv_x64_segment_register ss; + struct hv_x64_segment_register tr; + struct hv_x64_segment_register ldtr; + struct hv_x64_table_register idtr; + struct hv_x64_table_register gdtr; + u64 efer; + u64 cr0; + u64 cr3; + u64 cr4; + u64 msr_cr_pat; +}; + +struct hv_enable_vp_vtl { + u64 partition_id; + u32 vp_index; + union hv_input_vtl target_vtl; + u8 mbz0; + u16 mbz1; + struct hv_init_vp_context vp_context; +}; + +struct hv_get_partition_id { + u64 partition_id; +}; + +struct hv_get_vp_from_apic_id_in { + u64 partition_id; + union hv_input_vtl target_vtl; + u8 res[7]; + u32 apic_ids[0]; +}; + +union hv_ghcb { + struct ghcb ghcb; + struct { + u64 hypercalldata[509]; + u64 outputgpa; + union { + union { + struct { + u32 callcode: 16; + u32 isfast: 1; + u32 reserved1: 14; + u32 isnested: 1; + u32 countofelements: 12; + u32 reserved2: 4; + u32 repstartindex: 12; + u32 reserved3: 4; + }; + u64 asuint64; + } hypercallinput; + union { + struct { + u16 callstatus; + u16 reserved1; + u32 elementsprocessed: 12; + u32 reserved2: 20; + }; + u64 asunit64; + } hypercalloutput; + }; + u64 reserved2; + } hypercall; +}; + +union hv_gpa_page_range { + u64 address_space; + struct { + u64 additional_pages: 11; + u64 largepage: 1; + u64 basepfn: 52; + } page; + struct { + u64 reserved: 12; + u64 page_size: 1; + u64 reserved1: 8; + u64 base_large_pfn: 43; + }; +}; + +struct hv_gpa_range_for_visibility { + u64 partition_id; + u32 host_visibility: 2; + u32 reserved0: 30; + u32 reserved1; + u64 gpa_page_list[510]; +}; + +struct hv_guest_mapping_flush { + u64 address_space; + u64 flags; +}; + +struct hv_guest_mapping_flush_list { + u64 address_space; + u64 flags; + union hv_gpa_page_range gpa_list[510]; +}; + +union hv_hypervisor_version_info { + struct { + u32 build_number; + u32 minor_version: 16; + u32 major_version: 16; + u32 service_pack; + u32 service_number: 24; + u32 service_branch: 8; + }; + struct { + u32 eax; + u32 ebx; + u32 ecx; + u32 edx; + }; +}; + +struct hv_input_add_logical_processor { + u32 lp_index; + u32 apic_id; + struct hv_proximity_domain_info proximity_domain_info; +}; + +union hv_msi_address_register { + u32 as_uint32; + struct { + u32 reserved1: 2; + u32 destination_mode: 1; + u32 redirection_hint: 1; + u32 reserved2: 8; + u32 destination_id: 8; + u32 msi_base: 12; + }; +}; + +union hv_msi_data_register { + u32 as_uint32; + struct { + u32 vector: 8; + u32 delivery_mode: 3; + u32 reserved1: 3; + u32 level_assert: 1; + u32 trigger_mode: 1; + u32 reserved2: 16; + }; +}; + +union hv_msi_entry { + u64 as_uint64; + struct { + union hv_msi_address_register address; + union hv_msi_data_register data; + }; +}; + +union hv_ioapic_rte { + u64 as_uint64; + struct { + u32 vector: 8; + u32 delivery_mode: 3; + u32 destination_mode: 1; + u32 delivery_status: 1; + u32 interrupt_polarity: 1; + u32 remote_irr: 1; + u32 trigger_mode: 1; + u32 interrupt_mask: 1; + u32 reserved1: 15; + u32 reserved2: 24; + u32 destination_id: 8; + }; + struct { + u32 low_uint32; + u32 high_uint32; + }; +}; + +struct hv_interrupt_entry { + u32 source; + u32 reserved1; + union { + union hv_msi_entry msi_entry; + union hv_ioapic_rte ioapic_rte; + }; +}; + +struct hv_input_map_device_interrupt { + u64 partition_id; + u64 device_id; + u32 flags; + u32 base_irt_idx; + struct hv_interrupt_entry logical_interrupt_entry; + struct hv_device_interrupt_descriptor interrupt_descriptor; +}; + +struct hv_input_unmap_device_interrupt { + u64 partition_id; + u64 device_id; + struct hv_interrupt_entry interrupt_entry; + u32 flags; +} __attribute__((packed)); + +struct hv_lp_startup_status { + u64 hv_status; + u64 substatus1; + u64 substatus2; + u64 substatus3; + u64 substatus4; + u64 substatus5; + u64 substatus6; +}; + +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 hv_nested_enlightenments_control { + struct { + u32 directhypercall: 1; + u32 reserved: 31; + } features; + struct { + u32 inter_partition_comm: 1; + u32 reserved: 31; + } hypercall_controls; +}; + +struct hv_ops { + ssize_t (*get_chars)(uint32_t, u8 *, size_t); + ssize_t (*put_chars)(uint32_t, const u8 *, size_t); + 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 hv_output_add_logical_processor { + struct hv_lp_startup_status startup_status; +}; + +struct hv_output_map_device_interrupt { + struct hv_interrupt_entry interrupt_entry; +}; + +struct hv_partition_assist_pg { + u32 tlb_lock_count; +}; + +struct hv_reenlightenment_control { + u64 vector: 8; + u64 reserved1: 8; + u64 enabled: 1; + u64 reserved2: 15; + u64 target_vp: 32; +}; + +union hv_reference_tsc_msr { + u64 as_uint64; + struct { + u64 enable: 1; + u64 reserved: 11; + u64 pfn: 52; + }; +}; + +struct hv_send_ipi { + u32 vector; + u32 reserved; + u64 cpu_mask; +}; + +struct hv_send_ipi_ex { + u32 vector; + u32 reserved; + struct hv_vpset vp_set; +}; + +union hv_stimer_config { + u64 as_uint64; + struct { + u64 enable: 1; + u64 periodic: 1; + u64 lazy: 1; + u64 auto_enable: 1; + u64 apic_vector: 8; + u64 direct_mode: 1; + u64 reserved_z0: 3; + u64 sintx: 4; + u64 reserved_z1: 44; + }; +}; + +struct hv_tlb_flush { + u64 address_space; + u64 flags; + u64 processor_mask; + u64 gva_list[0]; +}; + +struct hv_tlb_flush_ex { + u64 address_space; + u64 flags; + struct hv_vpset hv_vp_set; + u64 gva_list[0]; +}; + +struct hv_tsc_emulation_control { + u64 enabled: 1; + u64 reserved: 63; +}; + +struct hv_tsc_emulation_status { + u64 inprogress: 1; + u64 reserved: 63; +}; + +union hv_vp_assist_msr_contents { + u64 as_uint64; + struct { + u64 enable: 1; + u64 reserved: 11; + u64 pfn: 52; + }; +}; + +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]; +}; + +union hv_x64_msr_hypercall_contents { + u64 as_uint64; + struct { + u64 enable: 1; + u64 reserved: 11; + u64 guest_physical_address: 52; + }; +}; + +struct hvc_struct { + struct tty_port port; + spinlock_t lock; + int index; + int do_wakeup; + 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; + long unsigned int flags; + u8 outbuf[0]; +}; + +struct hvm_memmap_table_entry { + uint64_t addr; + uint64_t size; + uint32_t type; + uint32_t reserved; +}; + +struct hvm_modlist_entry { + uint64_t paddr; + uint64_t size; + uint64_t cmdline_paddr; + uint64_t reserved; +}; + +struct hvm_start_info { + uint32_t magic; + uint32_t version; + uint32_t flags; + uint32_t nr_modules; + uint64_t modlist_paddr; + uint64_t cmdline_paddr; + uint64_t rsdp_paddr; + uint64_t memmap_paddr; + uint32_t memmap_entries; + uint32_t reserved; +}; + +struct hw_breakpoint { + unsigned int enabled; + long unsigned int addr; + int len; + int type; + struct perf_event **pev; +}; + +struct hw_perf_event_extra { + u64 config; + unsigned int reg; + int alloc; + int idx; +}; + +struct rhlist_head { + struct rhash_head rhead; + struct rhlist_head *next; +}; + +struct hw_perf_event { + union { + struct { + u64 config; + u64 last_tag; + long unsigned int config_base; + long unsigned int 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 { + u64 aux_config; + unsigned int aux_paused; + }; + 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; + long unsigned int 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 hw_port_info { + struct net_device *lower_dev; + u32 port_id; +}; + +struct hwlat_data { + struct mutex lock; + u64 count; + u64 sample_window; + u64 sample_width; + int thread_mode; +}; + +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 hwlat_kthread_data { + struct task_struct *kthread; + u64 nmi_ts_start; + u64 nmi_total_ts; + int nmi_count; + int nmi_cpu; +}; + +struct hwlat_sample { + u64 seqnum; + u64 duration; + u64 outer_duration; + u64 nmi_total_ts; + struct timespec64 timestamp; + int nmi_count; + int count; +}; + +struct hwmon_channel_info { + enum hwmon_sensor_types type; + const u32 *config; +}; + +struct hwmon_ops; + +struct hwmon_chip_info { + const struct hwmon_ops *ops; + const struct hwmon_channel_info * const *info; +}; + +struct hwmon_device { + const char *name; + const char *label; + struct device dev; + const struct hwmon_chip_info *chip; + struct list_head tzdata; + struct attribute_group group; + const struct attribute_group **groups; +}; + +struct hwmon_device_attribute { + struct device_attribute dev_attr; + const struct hwmon_ops *ops; + enum hwmon_sensor_types type; + u32 attr; + int index; + char name[32]; +}; + +struct hwmon_ops { + umode_t visible; + umode_t (*is_visible)(const void *, enum hwmon_sensor_types, u32, int); + int (*read)(struct device *, enum hwmon_sensor_types, u32, int, long int *); + int (*read_string)(struct device *, enum hwmon_sensor_types, u32, int, const char **); + int (*write)(struct device *, enum hwmon_sensor_types, u32, int, long int); +}; + +struct hwmon_thermal_data { + struct list_head node; + struct device *dev; + int index; + struct thermal_zone_device *tzd; +}; + +struct hwmon_type_attr_list { + const u32 *attrs; + size_t n_attrs; +}; + +struct to_kill { + struct list_head nd; + struct task_struct *tsk; + long unsigned int addr; + short int size_shift; +}; + +struct hwpoison_walk { + struct to_kill tk; + long unsigned int pfn; + int flags; +}; + +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); + long unsigned int priv; + short unsigned int quality; + struct list_head list; + struct kref ref; + struct completion cleanup_done; + struct completion dying; +}; + +struct hwspinlock_device; + +struct hwspinlock { + struct hwspinlock_device *bank; + spinlock_t lock; + void *priv; +}; + +struct hwspinlock_ops; + +struct hwspinlock_device { + struct device *dev; + const struct hwspinlock_ops *ops; + int base_id; + int num_locks; + struct hwspinlock lock[0]; +}; + +struct hwspinlock_ops { + int (*trylock)(struct hwspinlock *); + void (*unlock)(struct hwspinlock *); + int (*bust)(struct hwspinlock *, unsigned int); + void (*relax)(struct hwspinlock *); +}; + +struct hwtstamp_config { + int flags; + int tx_type; + int rx_filter; +}; + +struct hwtstamp_provider_desc { + int index; + enum hwtstamp_provider_qualifier qualifier; +}; + +struct hwtstamp_provider { + struct callback_head callback_head; + enum hwtstamp_source source; + struct phy_device *phydev; + struct hwtstamp_provider_desc desc; +}; + +struct hyp_sysfs_attr { + struct attribute attr; + ssize_t (*show)(struct hyp_sysfs_attr *, char *); + ssize_t (*store)(struct hyp_sysfs_attr *, const char *, size_t); + union { + void *hyp_attr_data; + long unsigned int hyp_attr_value; + }; +}; + +struct hyperv_root_ir_data { + u8 ioapic_id; + bool is_level; + struct hv_interrupt_entry entry; +} __attribute__((packed)); + +struct x86_hyper_init { + void (*init_platform)(void); + void (*guest_late_init)(void); + bool (*x2apic_available)(void); + bool (*msi_ext_dest_id)(void); + void (*init_mem_mapping)(void); + void (*init_after_bootmem)(void); +}; + +struct x86_hyper_runtime { + void (*pin_vcpu)(int); + void (*sev_es_hcall_prepare)(struct ghcb *, struct pt_regs *); + bool (*sev_es_hcall_finish)(struct ghcb *, struct pt_regs *); + bool (*is_private_mmio)(u64); +}; + +struct hypervisor_x86 { + const char *name; + uint32_t (*detect)(void); + enum x86_hypervisor_type type; + struct x86_hyper_init init; + struct x86_hyper_runtime runtime; + bool ignore_nopv; +}; + +struct i2c_acpi_handler_data { + struct acpi_connection_info info; + struct i2c_adapter *adapter; +}; + +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 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; +}; + +union i2c_smbus_data; + +struct i2c_algorithm { + union { + int (*xfer)(struct i2c_adapter *, struct i2c_msg *, int); + int (*master_xfer)(struct i2c_adapter *, struct i2c_msg *, int); + }; + union { + int (*xfer_atomic)(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, short unsigned int, char, u8, int, union i2c_smbus_data *); + int (*smbus_xfer_atomic)(struct i2c_adapter *, u16, short unsigned int, char, u8, int, union i2c_smbus_data *); + u32 (*functionality)(struct i2c_adapter *); + union { + int (*reg_target)(struct i2c_client *); + int (*reg_slave)(struct i2c_client *); + }; + union { + int (*unreg_target)(struct i2c_client *); + int (*unreg_slave)(struct i2c_client *); + }; +}; + +struct i2c_board_info { + char type[20]; + short unsigned int flags; + short unsigned int addr; + const char *dev_name; + void *platform_data; + struct device_node *of_node; + struct fwnode_handle *fwnode; + const struct software_node *swnode; + const struct resource *resources; + unsigned int num_resources; + int irq; +}; + +typedef int (*i2c_slave_cb_t)(struct i2c_client *, enum i2c_slave_event, u8 *); + +struct i2c_client { + short unsigned int flags; + short unsigned int addr; + char name[20]; + struct i2c_adapter *adapter; + struct device dev; + int init_irq; + int irq; + struct list_head detected; + i2c_slave_cb_t slave_cb; + void *devres_group_id; + struct dentry *debugfs; +}; + +struct i2c_cmd_arg { + unsigned int cmd; + void *arg; +}; + +struct i2c_dev { + struct list_head list; + struct i2c_adapter *adap; + struct device dev; + struct cdev cdev; +}; + +struct i2c_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; + +struct i2c_device_identity { + u16 manufacturer_id; + u16 part_id; + u8 die_revision; +}; + +struct i2c_devinfo { + struct list_head list; + int busnum; + struct i2c_board_info board_info; +}; + +struct i2c_dw_semaphore_callbacks { + int (*probe)(struct dw_i2c_dev *); + void (*remove)(struct dw_i2c_dev *); +}; + +struct i2c_lock_operations { + void (*lock_bus)(struct i2c_adapter *, unsigned int); + int (*trylock_bus)(struct i2c_adapter *, unsigned int); + void (*unlock_bus)(struct i2c_adapter *, unsigned int); +}; + +struct i2c_msg { + __u16 addr; + __u16 flags; + __u16 len; + __u8 *buf; +}; + +struct i2c_msg32 { + u16 addr; + u16 flags; + u16 len; + compat_caddr_t buf; +}; + +struct i2c_rdwr_ioctl_data { + struct i2c_msg *msgs; + __u32 nmsgs; +}; + +struct i2c_rdwr_ioctl_data32 { + compat_caddr_t msgs; + u32 nmsgs; +}; + +struct i2c_smbus_alert_setup { + int irq; +}; + +union i2c_smbus_data { + __u8 byte; + __u16 word; + __u8 block[34]; +}; + +struct i2c_smbus_ioctl_data { + __u8 read_write; + __u8 command; + __u32 size; + union i2c_smbus_data *data; +}; + +struct i2c_smbus_ioctl_data32 { + u8 read_write; + u8 command; + u32 size; + compat_caddr_t data; +}; + +struct user_regs_struct32 { + __u32 ebx; + __u32 ecx; + __u32 edx; + __u32 esi; + __u32 edi; + __u32 ebp; + __u32 eax; + short unsigned int ds; + short unsigned int __ds; + short unsigned int es; + short unsigned int __es; + short unsigned int fs; + short unsigned int __fs; + short unsigned int gs; + short unsigned int __gs; + __u32 orig_eax; + __u32 eip; + short unsigned int cs; + short unsigned int __cs; + __u32 eflags; + __u32 esp; + short unsigned int ss; + short unsigned int __ss; +}; + +struct i386_elf_prstatus { + struct compat_elf_prstatus_common common; + struct user_regs_struct32 pr_reg; + compat_int_t pr_fpvalid; +}; + +struct i8042_port { + struct serio *serio; + int irq; + bool exists; + bool driver_bound; + signed char mux; +}; + +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 ib_pd; + +struct ib_uobject; + +struct ib_gid_attr; + +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 ib_ah_attr { + u16 dlid; + u8 src_path_bits; +}; + +struct ib_core_device { + struct device dev; + possible_net_t rdma_net; + struct kobject *ports_kobj; + struct list_head port_list; + struct ib_device *owner; +}; + +struct ib_counters { + struct ib_device *device; + struct ib_uobject *uobject; + atomic_t usecnt; +}; + +struct ib_counters_read_attr { + u64 *counters_buff; + u32 ncounters; + u32 flags; +}; + +struct ib_ucq_object; + +struct ib_cq; + +typedef void (*ib_comp_handler)(struct ib_cq *, void *); + +struct irq_poll; + +typedef int irq_poll_fn(struct irq_poll *, int); + +struct irq_poll { + struct list_head list; + long unsigned int state; + int weight; + irq_poll_fn *poll; +}; + +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_wc; + +struct ib_cq { + struct ib_device *device; + struct ib_ucq_object *uobject; + ib_comp_handler comp_handler; + void (*event_handler)(struct ib_event *, void *); + void *cq_context; + int cqe; + unsigned int cqe_used; + atomic_t usecnt; + enum ib_poll_context poll_ctx; + struct ib_wc *wc; + struct list_head pool_entry; + union { + struct irq_poll iop; + struct work_struct work; + }; + struct workqueue_struct *comp_wq; + struct dim *dim; + ktime_t timestamp; + u8 interrupt: 1; + u8 shared: 1; + unsigned int comp_vector; + struct rdma_restrack_entry res; +}; + +struct ib_cq_caps { + u16 max_cq_moderation_count; + u16 max_cq_moderation_period; +}; + +struct ib_cq_init_attr { + unsigned int cqe; + u32 comp_vector; + u32 flags; +}; + +struct ib_cqe { + void (*done)(struct ib_cq *, struct ib_wc *); +}; + +struct ib_mad; + +struct uverbs_attr_bundle; + +struct rdma_cm_id; + +struct iw_cm_id; + +struct iw_cm_conn_param; + +struct ib_uverbs_file; + +struct ib_qp; + +struct ib_send_wr; + +struct ib_recv_wr; + +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_ucontext; + +struct rdma_user_mmap_entry; + +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_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 ifla_vf_info; + +struct ifla_vf_stats; + +struct ifla_vf_guid; + +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 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 uverbs_attr_bundle *); + 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 uverbs_attr_bundle *); + struct ib_mr * (*rereg_user_mr)(struct ib_mr *, int, u64, u64, u64, int, struct ib_pd *, struct ib_udata *); + int (*dereg_mr)(struct ib_mr *, struct ib_udata *); + struct ib_mr * (*alloc_mr)(struct ib_pd *, enum ib_mr_type, u32); + struct ib_mr * (*alloc_mr_integrity)(struct ib_pd *, u32, u32); + int (*advise_mr)(struct ib_pd *, enum ib_uverbs_advise_mr_advice, u32, struct ib_sge *, u32, struct uverbs_attr_bundle *); + int (*map_mr_sg)(struct ib_mr *, struct scatterlist *, int, unsigned int *); + int (*check_mr_status)(struct ib_mr *, u32, struct ib_mr_status *); + int (*alloc_mw)(struct ib_mw *, struct ib_udata *); + int (*dealloc_mw)(struct ib_mw *); + int (*attach_mcast)(struct ib_qp *, union ib_gid *, u16); + int (*detach_mcast)(struct ib_qp *, union ib_gid *, u16); + int (*alloc_xrcd)(struct ib_xrcd *, struct ib_udata *); + int (*dealloc_xrcd)(struct ib_xrcd *, struct ib_udata *); + struct ib_flow * (*create_flow)(struct ib_qp *, struct ib_flow_attr *, struct ib_udata *); + int (*destroy_flow)(struct ib_flow *); + int (*destroy_flow_action)(struct ib_flow_action *); + int (*set_vf_link_state)(struct ib_device *, int, u32, int); + int (*get_vf_config)(struct ib_device *, int, u32, struct ifla_vf_info *); + int (*get_vf_stats)(struct ib_device *, int, u32, struct ifla_vf_stats *); + int (*get_vf_guid)(struct ib_device *, int, u32, struct ifla_vf_guid *, struct ifla_vf_guid *); + int (*set_vf_guid)(struct ib_device *, int, u32, u64, int); + struct ib_wq * (*create_wq)(struct ib_pd *, struct ib_wq_init_attr *, struct ib_udata *); + int (*destroy_wq)(struct ib_wq *, struct ib_udata *); + int (*modify_wq)(struct ib_wq *, struct ib_wq_attr *, u32, struct ib_udata *); + int (*create_rwq_ind_table)(struct ib_rwq_ind_table *, struct ib_rwq_ind_table_init_attr *, struct ib_udata *); + int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *); + struct ib_dm * (*alloc_dm)(struct ib_device *, struct ib_ucontext *, struct ib_dm_alloc_attr *, struct uverbs_attr_bundle *); + int (*dealloc_dm)(struct ib_dm *, struct uverbs_attr_bundle *); + struct ib_mr * (*reg_dm_mr)(struct ib_pd *, struct ib_dm *, struct ib_dm_mr_attr *, struct uverbs_attr_bundle *); + int (*create_counters)(struct ib_counters *, struct uverbs_attr_bundle *); + int (*destroy_counters)(struct ib_counters *); + int (*read_counters)(struct ib_counters *, struct ib_counters_read_attr *, struct uverbs_attr_bundle *); + int (*map_mr_sg_pi)(struct ib_mr *, struct scatterlist *, int, unsigned int *, struct scatterlist *, int, unsigned int *); + struct rdma_hw_stats * (*alloc_hw_device_stats)(struct ib_device *); + struct rdma_hw_stats * (*alloc_hw_port_stats)(struct ib_device *, u32); + int (*get_hw_stats)(struct ib_device *, struct rdma_hw_stats *, u32, int); + int (*modify_hw_stat)(struct ib_device *, u32, unsigned int, bool); + int (*fill_res_mr_entry)(struct sk_buff *, struct ib_mr *); + int (*fill_res_mr_entry_raw)(struct sk_buff *, struct ib_mr *); + int (*fill_res_cq_entry)(struct sk_buff *, struct ib_cq *); + int (*fill_res_cq_entry_raw)(struct sk_buff *, struct ib_cq *); + int (*fill_res_qp_entry)(struct sk_buff *, struct ib_qp *); + int (*fill_res_qp_entry_raw)(struct sk_buff *, struct ib_qp *); + int (*fill_res_cm_id_entry)(struct sk_buff *, struct rdma_cm_id *); + int (*fill_res_srq_entry)(struct sk_buff *, struct ib_srq *); + int (*fill_res_srq_entry_raw)(struct sk_buff *, struct ib_srq *); + int (*enable_driver)(struct ib_device *); + void (*dealloc_driver)(struct ib_device *); + void (*iw_add_ref)(struct ib_qp *); + void (*iw_rem_ref)(struct ib_qp *); + struct ib_qp * (*iw_get_qp)(struct ib_device *, int); + int (*iw_connect)(struct iw_cm_id *, struct iw_cm_conn_param *); + int (*iw_accept)(struct iw_cm_id *, struct iw_cm_conn_param *); + int (*iw_reject)(struct iw_cm_id *, const void *, u8); + int (*iw_create_listen)(struct iw_cm_id *, int); + int (*iw_destroy_listen)(struct iw_cm_id *); + int (*counter_bind_qp)(struct rdma_counter *, struct ib_qp *); + int (*counter_unbind_qp)(struct ib_qp *); + int (*counter_dealloc)(struct rdma_counter *); + struct rdma_hw_stats * (*counter_alloc_stats)(struct rdma_counter *); + int (*counter_update_stats)(struct rdma_counter *); + int (*fill_stat_mr_entry)(struct sk_buff *, struct ib_mr *); + int (*query_ucontext)(struct ib_ucontext *, struct uverbs_attr_bundle *); + int (*get_numa_node)(struct ib_device *); + struct ib_device * (*add_sub_dev)(struct ib_device *, enum rdma_nl_dev_type, const char *); + void (*del_sub_dev)(struct ib_device *); + void (*ufile_hw_cleanup)(struct ib_uverbs_file *); + void (*report_port_event)(struct ib_device *, struct net_device *, long unsigned int); + size_t size_ib_ah; + size_t size_ib_counters; + size_t size_ib_cq; + size_t size_ib_mw; + size_t size_ib_pd; + size_t size_ib_qp; + size_t size_ib_rwq_ind_table; + size_t size_ib_srq; + size_t size_ib_ucontext; + size_t size_ib_xrcd; +}; + +struct 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_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 rdmacg_device { + struct list_head dev_node; + struct list_head rpools; + char *name; +}; + +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]; + u8 hw_stats_attr_index; + 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 mutex subdev_lock; + struct list_head subdev_list_head; + enum rdma_nl_dev_type type; + struct ib_device *parent; + struct list_head subdev_list; + enum rdma_nl_name_assign_type name_assign_type; +}; + +struct ib_device_modify { + u64 sys_image_guid; + char node_desc[64]; +}; + +struct ib_dm { + struct ib_device *device; + u32 length; + u32 flags; + struct ib_uobject *uobject; + atomic_t usecnt; +}; + +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_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_flow { + struct ib_qp *qp; + struct ib_device *device; + struct ib_uobject *uobject; +}; + +struct ib_flow_action { + struct ib_device *device; + struct ib_uobject *uobject; + enum ib_flow_action_type type; + atomic_t usecnt; +}; + +struct ib_flow_eth_filter { + u8 dst_mac[6]; + u8 src_mac[6]; + __be16 ether_type; + __be16 vlan_tag; +}; + +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; +}; + +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; +}; + +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; +}; + +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; +} __attribute__((packed)); + +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; +}; + +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; +}; + +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; +}; + +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; +}; + +struct ib_flow_spec_mpls { + u32 type; + u16 size; + struct ib_flow_mpls_filter val; + struct ib_flow_mpls_filter mask; +}; + +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]; +}; + +union ib_gid { + u8 raw[16]; + struct { + __be64 subnet_prefix; + __be64 interface_id; + } global; +}; + +struct ib_gid_attr { + struct net_device *ndev; + struct ib_device *device; + union ib_gid gid; + enum ib_gid_type gid_type; + u16 index; + u32 port_num; +}; + +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 ib_grh { + __be32 version_tclass_flow; + __be16 paylen; + u8 next_hdr; + u8 hop_limit; + union ib_gid sgid; + union ib_gid dgid; +}; + +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_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; +}; + +struct ib_mw { + struct ib_device *device; + struct ib_pd *pd; + struct ib_uobject *uobject; + u32 rkey; + enum ib_mw_type type; +}; + +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_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_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; + enum ib_port_state last_port_state; +}; + +struct ib_port_immutable { + int pkey_tbl_len; + int gid_tbl_len; + u32 core_cap_flags; + u32 max_mad_size; +}; + +struct rdma_counter_mode { + enum rdma_nl_counter_mode mode; + enum rdma_nl_counter_mask mask; + struct auto_mode_param param; +}; + +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 *netdev; + netdevice_tracker netdev_tracker; + struct hlist_node ndev_hash_link; + struct rdma_port_counter port_counter; + struct ib_port *sysfs; +}; + +struct ib_port_modify { + u32 set_port_cap_mask; + u32 clr_port_cap_mask; + u8 init_type; +}; + +struct ib_qp_security; + +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; +}; + +struct ib_uqp_object; + +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 completion srq_completion; + 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 (*registered_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_qp_cap { + u32 max_send_wr; + u32 max_recv_wr; + u32 max_send_sge; + u32 max_recv_sge; + u32 max_inline_data; + u32 max_rdma_ctxs; +}; + +struct roce_ah_attr { + u8 dmac[6]; +}; + +struct opa_ah_attr { + u32 dlid; + u8 src_path_bits; + bool make_grd; +}; + +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_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_qp_init_attr { + void (*event_handler)(struct ib_event *, void *); + void *qp_context; + struct ib_cq *send_cq; + struct ib_cq *recv_cq; + struct ib_srq *srq; + struct ib_xrcd *xrcd; + struct ib_qp_cap cap; + enum ib_sig_type sq_sig_type; + enum ib_qp_type qp_type; + u32 create_flags; + u32 port_num; + struct ib_rwq_ind_table *rwq_ind_tbl; + u32 source_qpn; +}; + +struct ib_qp_security { + struct ib_qp *qp; + struct ib_device *dev; + struct mutex mutex; + struct ib_ports_pkeys *ports_pkeys; + struct list_head shared_qp_list; + void *security; + bool destroying; + atomic_t error_list_count; + struct completion error_complete; + int error_comps_pending; +}; + +struct rdma_cgroup; + +struct ib_rdmacg_object { + struct rdma_cgroup *cg; +}; + +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_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_rwq_ind_table_init_attr { + u32 log_ind_tbl_size; + struct ib_wq **ind_tbl; +}; + +struct ib_security_struct { + u32 sid; +}; + +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_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 ib_usrq_object; + +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_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_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_udata { + const void *inbuf; + void *outbuf; + size_t inlen; + size_t outlen; +}; + +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_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_uwq_object; + +struct ib_wq { + struct ib_device *device; + struct ib_uwq_object *uobject; + void *wq_context; + void (*event_handler)(struct ib_event *, void *); + struct ib_pd *pd; + struct ib_cq *cq; + u32 wq_num; + enum ib_wq_state state; + enum ib_wq_type wq_type; + atomic_t usecnt; +}; + +struct ib_wq_attr { + enum ib_wq_state wq_state; + enum ib_wq_state curr_wq_state; + u32 flags; + u32 flags_mask; +}; + +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_xrcd { + struct ib_device *device; + atomic_t usecnt; + struct inode *inode; + struct rw_semaphore tgt_qps_rwsem; + struct xarray tgt_qps; +}; + +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; + }; +}; + +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; + }; +}; + +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_data3 { + __u64 val; + struct { + __u64 ld_op: 1; + __u64 st_op: 1; + __u64 dc_l1tlb_miss: 1; + __u64 dc_l2tlb_miss: 1; + __u64 dc_l1tlb_hit_2m: 1; + __u64 dc_l1tlb_hit_1g: 1; + __u64 dc_l2tlb_hit_2m: 1; + __u64 dc_miss: 1; + __u64 dc_mis_acc: 1; + __u64 reserved: 4; + __u64 dc_wc_mem_acc: 1; + __u64 dc_uc_mem_acc: 1; + __u64 dc_locked_op: 1; + __u64 dc_miss_no_mab_alloc: 1; + __u64 dc_lin_addr_valid: 1; + __u64 dc_phy_addr_valid: 1; + __u64 dc_l2_tlb_hit_1g: 1; + __u64 l2_miss: 1; + __u64 sw_pf: 1; + __u64 op_mem_width: 4; + __u64 op_dc_miss_open_mem_reqs: 6; + __u64 dc_miss_lat: 16; + __u64 tlb_refill_lat: 16; + }; +}; + +struct icc_path; + +struct icc_bulk_data { + struct icc_path *path; + const char *name; + u32 avg_bw; + u32 peak_bw; +}; + +struct icc_bulk_devres { + struct icc_bulk_data *paths; + int num_paths; +}; + +struct icc_provider; + +struct icc_node { + int id; + const char *name; + struct icc_node **links; + size_t num_links; + struct icc_provider *provider; + struct list_head node_list; + struct list_head search_list; + struct icc_node *reverse; + u8 is_traversed: 1; + struct hlist_head req_list; + u32 avg_bw; + u32 peak_bw; + u32 init_avg; + u32 init_peak; + void *data; +}; + +struct icc_node_data { + struct icc_node *node; + u32 tag; +}; + +struct icc_onecell_data { + unsigned int num_nodes; + struct icc_node *nodes[0]; +}; + +struct icc_req { + struct hlist_node req_node; + struct icc_node *node; + struct device *dev; + bool enabled; + u32 tag; + u32 avg_bw; + u32 peak_bw; +}; + +struct icc_path { + const char *name; + size_t num_nodes; + struct icc_req reqs[0]; +}; + +struct icc_provider { + struct list_head provider_list; + struct list_head nodes; + int (*set)(struct icc_node *, struct icc_node *); + int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); + void (*pre_aggregate)(struct icc_node *); + int (*get_bw)(struct icc_node *, u32 *, u32 *); + struct icc_node * (*xlate)(const struct of_phandle_args *, void *); + struct icc_node_data * (*xlate_extended)(const struct of_phandle_args *, void *); + struct device *dev; + int users; + bool inter_set; + void *data; +}; + +struct ich_laptop { + u16 device; + u16 subvendor; + u16 subdevice; +}; + +struct icmp6_err { + int err; + int fatal; +}; + +struct icmp6_filter { + __u32 data[8]; +}; + +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 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 ip_options { + __be32 faddr; + __be32 nexthop; + unsigned char optlen; + unsigned char srr; + unsigned char rr; + unsigned char ts; + unsigned char is_strictroute: 1; + unsigned char srr_is_hit: 1; + unsigned char is_changed: 1; + unsigned char rr_needaddr: 1; + unsigned char ts_needtime: 1; + unsigned char ts_needaddr: 1; + unsigned char router_alert; + unsigned char cipso; + unsigned char __pad2; + unsigned char __data[0]; +}; + +struct ip_options_rcu { + struct callback_head rcu; + struct ip_options opt; +}; + +struct ip_options_data { + struct ip_options_rcu opt; + char data[40]; +}; + +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_control { + enum skb_drop_reason (*handler)(struct sk_buff *); + short int error; +}; + +struct icmp_err { + int errno; + unsigned int fatal: 1; +}; + +struct icmp_ext_echo_ctype3_hdr { + __be16 afi; + __u8 addrlen; + __u8 reserved; +}; + +struct icmp_extobj_hdr { + __be16 length; + __u8 class_num; + __u8 class_type; +}; + +struct icmp_ext_echo_iio { + struct icmp_extobj_hdr extobj_hdr; + union { + char name[16]; + __be32 ifindex; + struct { + struct icmp_ext_echo_ctype3_hdr ctype3_hdr; + union { + __be32 ipv4_addr; + struct in6_addr ipv6_addr; + } ip_addr; + } addr; + } ident; +}; + +struct icmp_ext_hdr { + __u8 reserved1: 4; + __u8 version: 4; + __u8 reserved2; + __sum16 checksum; +}; + +struct icmp_filter { + __u32 data; +}; + +struct icmp_mib { + long unsigned int mibs[30]; +}; + +struct icmpmsg_mib { + atomic_long_t mibs[512]; +}; + +struct icmpv6_mib { + long unsigned int mibs[7]; +}; + +struct icmpv6_mib_device { + atomic_long_t mibs[7]; +}; + +struct icmpv6_msg { + struct sk_buff *skb; + int offset; + uint8_t type; +}; + +struct icmpv6msg_mib { + atomic_long_t mibs[512]; +}; + +struct icmpv6msg_mib_device { + atomic_long_t mibs[512]; +}; + +struct id_bitmap { + long unsigned int map[4]; +}; + +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 ida_bitmap { + long unsigned int bitmap[16]; +}; + +struct idempotent { + const void *cookie; + struct hlist_node entry; + struct completion complete; + int ret; +}; + +struct idle_cpu { + struct cpuidle_state *state_table; + long unsigned int auto_demotion_disable_flags; + bool byt_auto_demotion_disable_flag; + bool disable_promotion_to_c1e; + bool use_acpi; +}; + +struct idle_inject_device { + struct hrtimer timer; + unsigned int idle_duration_us; + unsigned int run_duration_us; + unsigned int latency_us; + bool (*update)(void); + long unsigned int cpumask[0]; +}; + +struct idle_inject_thread { + struct task_struct *tsk; + int should_run; +}; + +struct idle_timer { + struct hrtimer timer; + int done; +}; + +struct idmap_key { + bool map_up; + u32 id; + u32 count; +}; + +struct idt_data { + unsigned int vector; + unsigned int segment; + struct idt_bits bits; + const void *addr; +}; + +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; + long unsigned int dfs_state_entered; + unsigned int dfs_cac_ms; + s8 psd; +}; + +struct ieee80211_eht_cap_elem_fixed { + u8 mac_cap_info[2]; + u8 phy_cap_info[9]; +}; + +struct ieee80211_eht_mcs_nss_supp_20mhz_only { + union { + struct { + u8 rx_tx_mcs7_max_nss; + u8 rx_tx_mcs9_max_nss; + u8 rx_tx_mcs11_max_nss; + u8 rx_tx_mcs13_max_nss; + }; + u8 rx_tx_max_nss[4]; + }; +}; + +struct ieee80211_eht_mcs_nss_supp_bw { + union { + struct { + u8 rx_tx_mcs9_max_nss; + u8 rx_tx_mcs11_max_nss; + u8 rx_tx_mcs13_max_nss; + }; + u8 rx_tx_max_nss[3]; + }; +}; + +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_freq_range { + u32 start_freq_khz; + u32 end_freq_khz; + u32 max_bandwidth_khz; +}; + +struct ieee80211_he_6ghz_capa { + __le16 capa; +}; + +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_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 ieee80211_power_rule { + u32 max_antenna_gain; + u32 max_eirp; +}; + +struct ieee80211_rate { + u32 flags; + u16 bitrate; + u16 hw_value; + u16 hw_value_short; +}; + +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; + s8 psd; +}; + +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_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_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)); + +struct ieee80211_sta_ht_cap { + u16 cap; + bool ht_supported; + u8 ampdu_factor; + u8 ampdu_density; + struct ieee80211_mcs_info mcs; + short: 0; +} __attribute__((packed)); + +struct ieee80211_sta_s1g_cap { + bool s1g; + u8 cap[10]; + u8 nss_mcs[5]; +}; + +struct ieee80211_sta_vht_cap { + bool vht_supported; + u32 cap; + struct ieee80211_vht_mcs_info vht_mcs; +}; + +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_txrx_stypes { + u16 tx; + u16 rx; +}; + +struct ieee802154_addr { + u8 mode; + __le16 pan_id; + union { + __le16 short_addr; + __le64 extended_addr; + }; +}; + +struct ieee802154_pan_device { + __le16 pan_id; + u8 mode; + __le16 short_addr; + __le64 extended_addr; + struct list_head node; +}; + +struct ieee_ets { + __u8 willing; + __u8 ets_cap; + __u8 cbs; + __u8 tc_tx_bw[8]; + __u8 tc_rx_bw[8]; + __u8 tc_tsa[8]; + __u8 prio_tc[8]; + __u8 tc_reco_bw[8]; + __u8 tc_reco_tsa[8]; + __u8 reco_prio_tc[8]; +}; + +struct ieee_maxrate { + __u64 tc_maxrate[8]; +}; + +struct ieee_pfc { + __u8 pfc_cap; + __u8 pfc_en; + __u8 mbc; + __u16 delay; + __u64 requests[8]; + __u64 indications[8]; +}; + +struct ieee_qcn { + __u8 rpg_enable[8]; + __u32 rppp_max_rps[8]; + __u32 rpg_time_reset[8]; + __u32 rpg_byte_reset[8]; + __u32 rpg_threshold[8]; + __u32 rpg_max_rate[8]; + __u32 rpg_ai_rate[8]; + __u32 rpg_hai_rate[8]; + __u32 rpg_gd[8]; + __u32 rpg_min_dec_fac[8]; + __u32 rpg_min_rate[8]; + __u32 cndd_state_machine[8]; +}; + +struct ieee_qcn_stats { + __u64 rppp_rp_centiseconds[8]; + __u32 rppp_created_rps[8]; +}; + +struct if6_iter_state { + struct seq_net_private p; + int bucket; + int offset; +}; + +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 if_dqinfo { + __u64 dqi_bgrace; + __u64 dqi_igrace; + __u32 dqi_flags; + __u32 dqi_valid; +}; + +struct if_nextdqblk { + __u64 dqb_bhardlimit; + __u64 dqb_bsoftlimit; + __u64 dqb_curspace; + __u64 dqb_ihardlimit; + __u64 dqb_isoftlimit; + __u64 dqb_curinodes; + __u64 dqb_btime; + __u64 dqb_itime; + __u32 dqb_valid; + __u32 dqb_id; +}; + +struct if_set { + if_mask ifs_bits[8]; +}; + +struct if_settings { + unsigned int type; + unsigned int size; + union { + raw_hdlc_proto *raw_hdlc; + cisco_proto *cisco; + fr_proto *fr; + fr_proto_pvc *fr_pvc; + fr_proto_pvc_info *fr_pvc_info; + x25_hdlc_proto *x25; + sync_serial_settings *sync; + te1_settings *te1; + } ifs_ifsu; +}; + +struct if_stats_msg { + __u8 family; + __u8 pad1; + __u16 pad2; + __u32 ifindex; + __u32 filter_mask; +}; + +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 ifa_cacheinfo { + __u32 ifa_prefered; + __u32 ifa_valid; + __u32 cstamp; + __u32 tstamp; +}; + +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; + long unsigned int aca_cstamp; + long unsigned int aca_tstamp; + 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 ifaddrmsg { + __u8 ifa_family; + __u8 ifa_prefixlen; + __u8 ifa_flags; + __u8 ifa_scope; + __u32 ifa_index; +}; + +struct ifbond { + __s32 bond_mode; + __s32 num_slaves; + __s32 miimon; +}; + +typedef struct ifbond ifbond; + +struct ifconf { + int ifc_len; + union { + char *ifcu_buf; + struct ifreq *ifcu_req; + } ifc_ifcu; +}; + +struct ifinfomsg { + unsigned char ifi_family; + unsigned char __ifi_pad; + short unsigned int ifi_type; + int ifi_index; + unsigned int ifi_flags; + unsigned int ifi_change; +}; + +struct ifla_cacheinfo { + __u32 max_reasm_len; + __u32 tstamp; + __u32 reachable_time; + __u32 retrans_time; +}; + +struct ifla_vf_broadcast { + __u8 broadcast[32]; +}; + +struct ifla_vf_guid { + __u32 vf; + __u64 guid; +}; + +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_link_state { + __u32 vf; + __u32 link_state; +}; + +struct ifla_vf_mac { + __u32 vf; + __u8 mac[32]; +}; + +struct ifla_vf_rate { + __u32 vf; + __u32 min_tx_rate; + __u32 max_tx_rate; +}; + +struct ifla_vf_rss_query_en { + __u32 vf; + __u32 setting; +}; + +struct ifla_vf_spoofchk { + __u32 vf; + __u32 setting; +}; + +struct ifla_vf_stats { + __u64 rx_packets; + __u64 tx_packets; + __u64 rx_bytes; + __u64 tx_bytes; + __u64 broadcast; + __u64 multicast; + __u64 rx_dropped; + __u64 tx_dropped; +}; + +struct ifla_vf_trust { + __u32 vf; + __u32 setting; +}; + +struct ifla_vf_tx_rate { + __u32 vf; + __u32 rate; +}; + +struct ifla_vf_vlan { + __u32 vf; + __u32 vlan; + __u32 qos; +}; + +struct ifla_vf_vlan_info { + __u32 vf; + __u32 vlan; + __u32 qos; + __be16 vlan_proto; +}; + +struct ifmap { + long unsigned int mem_start; + long unsigned int mem_end; + short unsigned int base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; +}; + +struct inet6_dev; + +struct ip6_sf_list; + +struct ifmcaddr6 { + struct in6_addr mca_addr; + struct inet6_dev *idev; + struct ifmcaddr6 *next; + struct ip6_sf_list *mca_sources; + struct ip6_sf_list *mca_tomb; + unsigned int mca_sfmode; + unsigned char mca_crcount; + long unsigned int mca_sfcount[2]; + struct delayed_work mca_work; + unsigned int mca_flags; + int mca_users; + refcount_t mca_refcnt; + long unsigned int mca_cstamp; + long unsigned int mca_tstamp; + struct callback_head rcu; +}; + +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 int ifru_flags; + int ifru_ivalue; + int ifru_mtu; + struct ifmap ifru_map; + char ifru_slave[16]; + char ifru_newname[16]; + void *ifru_data; + struct if_settings ifru_settings; + } ifr_ifru; +}; + +struct ifslave { + __s32 slave_id; + char slave_name[16]; + __s8 link; + __s8 state; + __u32 link_failure_count; +}; + +typedef struct ifslave ifslave; + +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 in_device; + +struct igmp_mc_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *in_dev; +}; + +struct ip_mc_list; + +struct igmp_mcf_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *idev; + struct ip_mc_list *im; +}; + +struct igmphdr { + __u8 type; + __u8 code; + __sum16 csum; + __be32 group; +}; + +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 igmpv3_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + __be32 grec_mca; + __be32 grec_src[0]; +}; + +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_report { + __u8 type; + __u8 resv1; + __sum16 csum; + __be16 resv2; + __be16 ngrec; + struct igmpv3_grec grec[0]; +}; + +struct ignore_section { + guid_t guid; + const char *name; +}; + +struct ima_algo_desc { + struct crypto_shash *tfm; + enum hash_algo algo; +}; + +struct ima_digest_data { + union { + struct { + u8 algo; + u8 length; + union { + struct { + u8 unused; + u8 type; + } sha1; + struct { + u8 type; + u8 algo; + } ng; + u8 data[2]; + } xattr; + }; + struct ima_digest_data_hdr hdr; + }; + u8 digest[0]; +}; + +struct ima_iint_cache; + +struct modsig; + +struct ima_event_data { + struct ima_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; +}; + +struct ima_field_data { + u8 *data; + u32 len; +}; + +struct ima_file_id { + __u8 hash_type; + __u8 hash_algorithm; + __u8 hash[64]; +}; + +struct ima_h_table { + atomic_long_t len; + atomic_long_t violations; + struct hlist_head queue[1024]; +}; + +struct ima_iint_cache { + struct mutex mutex; + struct integrity_inode_attributes real_inode; + long unsigned int flags; + long unsigned int measured_pcrs; + long unsigned int 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; + struct ima_digest_data *ima_hash; +}; + +struct ima_kexec_hdr { + u16 version; + u16 _reserved0; + u32 _reserved1; + u64 buffer_size; + u64 count; +}; + +struct ima_key_entry { + struct list_head list; + void *payload; + size_t payload_len; + char *keyring_name; +}; + +struct ima_max_digest_data { + struct ima_digest_data_hdr hdr; + u8 digest[64]; +}; + +struct ima_template_entry; + +struct ima_queue_entry { + struct hlist_node hnext; + struct list_head later; + struct ima_template_entry *entry; +}; + +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; + long unsigned int 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_setup_data { + __u64 addr; + __u64 size; +}; + +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; +}; + +struct tpm_digest; + +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_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 imc_uncore_pci_dev { + __u32 pci_id; + struct pci_driver *driver; +}; + +struct imstt_regvals { + __u32 pitch; + __u16 hes; + __u16 heb; + __u16 hsb; + __u16 ht; + __u16 ves; + __u16 veb; + __u16 vsb; + __u16 vt; + __u16 vil; + __u8 pclk_m; + __u8 pclk_n; + __u8 pclk_p; + __u8 mlc[3]; + __u8 lckl_p[3]; +}; + +struct imstt_par { + struct imstt_regvals init; + __u32 *dc_regs; + long unsigned int cmap_regs_phys; + __u8 *cmap_regs; + __u32 ramdac; + __u32 palette[16]; +}; + +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 in6_ifreq { + struct in6_addr ifr6_addr; + __u32 ifr6_prefixlen; + int ifr6_ifindex; +}; + +struct in6_pktinfo { + struct in6_addr ipi6_addr; + int ipi6_ifindex; +}; + +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; + long unsigned int rtmsg_info; + __u32 rtmsg_flags; + int rtmsg_ifindex; +}; + +struct in6_validator_info { + struct in6_addr i6vi_addr; + struct inet6_dev *i6vi_dev; + struct netlink_ext_ack *extack; +}; + +struct ipv4_devconf { + void *sysctl; + int data[33]; + long unsigned int state[1]; +}; + +struct in_ifaddr; + +struct neigh_parms; + +struct in_device { + struct net_device *dev; + netdevice_tracker dev_tracker; + refcount_t refcnt; + int dead; + struct in_ifaddr *ifa_list; + struct ip_mc_list *mc_list; + struct ip_mc_list **mc_hash; + int mc_count; + spinlock_t mc_tomb_lock; + struct ip_mc_list *mc_tomb; + long unsigned int mr_v1_seen; + long unsigned int mr_v2_seen; + long unsigned int mr_maxdelay; + long unsigned int mr_qi; + long unsigned int mr_qri; + unsigned char mr_qrv; + unsigned char mr_gq_running; + u32 mr_ifc_count; + struct timer_list mr_gq_timer; + struct timer_list mr_ifc_timer; + struct neigh_parms *arp_parms; + struct ipv4_devconf cnf; + struct callback_head callback_head; +}; + +struct in_ifaddr { + struct hlist_node addr_lst; + struct in_ifaddr *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; + long unsigned int ifa_cstamp; + long unsigned int ifa_tstamp; +}; + +struct in_pktinfo { + int ipi_ifindex; + struct in_addr ipi_spec_dst; + struct in_addr ipi_addr; +}; + +struct in_validator_info { + __be32 ivi_addr; + struct in_device *ivi_dev; + struct netlink_ext_ack *extack; +}; + +struct indication { + u32 bit; + const char *name; +}; + +struct ipv6_txoptions; + +struct inet6_cork { + struct ipv6_txoptions *opt; + u8 hop_limit; + u8 tclass; + u8 dontfrag: 1; +}; + +struct ipv6_stable_secret { + bool initialized; + struct in6_addr secret; +}; + +struct ipv6_devconf { + __u8 __cacheline_group_begin__ipv6_devconf_read_txrx[0]; + __s32 disable_ipv6; + __s32 hop_limit; + __s32 mtu6; + __s32 forwarding; + __s32 disable_policy; + __s32 proxy_ndp; + __u8 __cacheline_group_end__ipv6_devconf_read_txrx[0]; + __s32 accept_ra; + __s32 accept_redirects; + __s32 autoconf; + __s32 dad_transmits; + __s32 rtr_solicits; + __s32 rtr_solicit_interval; + __s32 rtr_solicit_max_interval; + __s32 rtr_solicit_delay; + __s32 force_mld_version; + __s32 mldv1_unsolicited_report_interval; + __s32 mldv2_unsolicited_report_interval; + __s32 use_tempaddr; + __s32 temp_valid_lft; + __s32 temp_prefered_lft; + __s32 regen_min_advance; + __s32 regen_max_retry; + __s32 max_desync_factor; + __s32 max_addresses; + __s32 accept_ra_defrtr; + __u32 ra_defrtr_metric; + __s32 accept_ra_min_hop_limit; + __s32 accept_ra_min_lft; + __s32 accept_ra_pinfo; + __s32 ignore_routes_with_linkdown; + __s32 accept_ra_rtr_pref; + __s32 rtr_probe_interval; + __s32 accept_ra_rt_info_min_plen; + __s32 accept_ra_rt_info_max_plen; + __s32 accept_source_route; + __s32 accept_ra_from_local; + atomic_t mc_forwarding; + __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; + __s32 seg6_require_hmac; + __u32 enhanced_dad; + __u32 addr_gen_mode; + __s32 ndisc_tclass; + __s32 rpl_seg_enabled; + __u32 ioam6_id; + __u32 ioam6_id_wide; + __u8 ioam6_enabled; + __u8 ndisc_evict_nocarrier; + __u8 ra_honor_pio_life; + __u8 ra_honor_pio_pflag; + struct ctl_table_header *sysctl_header; +}; + +struct ipstats_mib; + +struct ipv6_devstat { + struct proc_dir_entry *proc_dir_entry; + struct ipstats_mib *ipv6; + struct icmpv6_mib_device *icmpv6dev; + struct icmpv6msg_mib_device *icmpv6msgdev; +}; + +struct inet6_dev { + struct net_device *dev; + netdevice_tracker dev_tracker; + struct list_head addr_list; + struct ifmcaddr6 *mc_list; + struct ifmcaddr6 *mc_tomb; + unsigned char mc_qrv; + unsigned char mc_gq_running; + unsigned char mc_ifc_count; + unsigned char mc_dad_count; + long unsigned int mc_v1_seen; + long unsigned int mc_qi; + long unsigned int mc_qri; + long unsigned int 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; + long unsigned int tstamp; + struct callback_head rcu; + unsigned int ra_mtu; +}; + +struct inet6_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; + enum addr_type_t type; + bool force_rt_scope_universe; +}; + +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; + long unsigned int cstamp; + long unsigned int 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 inet6_skb_parm; + +struct inet6_protocol { + int (*handler)(struct sk_buff *); + int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32); + unsigned int flags; + u32 secret; +}; + +struct inet6_skb_parm { + int iif; + __be16 ra; + __u16 dst0; + __u16 srcrt; + __u16 dst1; + __u16 lastopt; + __u16 nhoff; + __u16 flags; + __u16 dsthao; + __u16 frag_max_size; + __u16 srhoff; +}; + +union inet_addr { + __u32 all[4]; + __be32 ip; + __be32 ip6[4]; + struct in_addr in; + struct in6_addr in6; +}; + +struct inet_bind2_bucket { + possible_net_t ib_net; + int l3mdev; + short unsigned int port; + short unsigned int addr_type; + struct in6_addr v6_rcv_saddr; + struct hlist_node node; + struct hlist_node bhash_node; + struct hlist_head owners; +}; + +struct inet_bind_bucket { + possible_net_t ib_net; + int l3mdev; + short unsigned int port; + signed char fastreuse; + signed char fastreuseport; + kuid_t fastuid; + struct in6_addr fast_v6_rcv_saddr; + __be32 fast_rcv_saddr; + short unsigned int fast_sk_family; + bool fast_ipv6_only; + struct hlist_node node; + struct hlist_head bhash2; +}; + +struct inet_bind_hashbucket { + spinlock_t lock; + struct hlist_head chain; +}; + +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; + u32 priority; + __u16 gso_size; + u32 ts_opt_id; + 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; + long unsigned int inet_flags; + __be32 inet_saddr; + __s16 uc_ttl; + __be16 inet_sport; + struct ip_options_rcu *inet_opt; + atomic_t inet_id; + __u8 tos; + __u8 min_ttl; + __u8 mc_ttl; + __u8 pmtudisc; + __u8 rcv_tos; + __u8 convert_csum; + int uc_index; + int mc_index; + __be32 mc_addr; + u32 local_port_range; + struct ip_mc_socklist *mc_list; + struct inet_cork_full cork; +}; + +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; + long unsigned int 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 *icsk_ulp_data; + void (*icsk_clean_acked)(struct sock *, u32); + unsigned int (*icsk_sync_mss)(struct sock *, u32); + __u8 icsk_ca_state: 5; + __u8 icsk_ca_initialized: 1; + __u8 icsk_ca_setsockopt: 1; + __u8 icsk_ca_dst_locked: 1; + __u8 icsk_retransmits; + __u8 icsk_pending; + __u8 icsk_backoff; + __u8 icsk_syn_retries; + __u8 icsk_probes_out; + __u16 icsk_ext_hdr_len; + struct { + __u8 pending; + __u8 quick; + __u8 pingpong; + __u8 retry; + __u32 ato: 8; + __u32 lrcv_flowlabel: 20; + __u32 unused: 4; + long unsigned int 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 sockaddr_len; + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char *, int *); + void (*addr2sockaddr)(struct sock *, struct sockaddr *); + void (*mtu_reduced)(struct sock *); +}; + +struct inet_ehash_bucket { + struct hlist_nulls_head chain; +}; + +struct inet_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; +}; + +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 inet_listen_hashbucket; + +struct inet_hashinfo { + struct inet_ehash_bucket *ehash; + spinlock_t *ehash_locks; + unsigned int ehash_mask; + unsigned int ehash_locks_mask; + struct kmem_cache *bind_bucket_cachep; + struct inet_bind_hashbucket *bhash; + struct kmem_cache *bind2_bucket_cachep; + struct inet_bind_hashbucket *bhash2; + unsigned int bhash_size; + unsigned int lhash2_mask; + struct inet_listen_hashbucket *lhash2; + bool pernet; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct inet_listen_hashbucket { + spinlock_t lock; + struct hlist_nulls_head nulls_head; +}; + +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; + long unsigned int rate_last; + union { + struct { + atomic_t rid; + }; + struct callback_head rcu; + }; + __u32 dtime; + refcount_t refcnt; +}; + +struct proto_ops; + +struct inet_protosw { + struct list_head list; + short unsigned int type; + short unsigned int protocol; + struct proto *prot; + const struct proto_ops *ops; + unsigned char flags; +}; + +struct request_sock_ops; + +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 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 *ireq_opt; + struct { + struct ipv6_txoptions *ipv6_opt; + struct sk_buff *pktopts; + }; + }; +}; + +struct inet_skb_parm { + int iif; + struct ip_options opt; + u16 flags; + u16 frag_max_size; +}; + +struct inet_timewait_death_row { + refcount_t tw_refcount; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct inet_hashinfo *hashinfo; + int sysctl_max_tw_buckets; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct inet_timewait_sock { + struct sock_common __tw_common; + __u32 tw_mark; + unsigned char tw_substate; + unsigned char tw_rcv_wscale; + __be16 tw_sport; + unsigned int tw_transparent: 1; + unsigned int tw_flowlabel: 20; + unsigned int tw_usec_ts: 1; + unsigned int tw_pad: 2; + unsigned int tw_tos: 8; + u32 tw_txhash; + u32 tw_priority; + u32 tw_entry_stamp; + struct timer_list tw_timer; + struct inet_bind_bucket *tw_tb; + struct inet_bind2_bucket *tw_tb2; +}; + +struct inflate_state { + inflate_mode mode; + int last; + int wrap; + int havedict; + int flags; + unsigned int dmax; + long unsigned int check; + long unsigned int total; + unsigned int wbits; + unsigned int wsize; + unsigned int whave; + unsigned int write; + unsigned char *window; + long unsigned int 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; + short unsigned int lens[320]; + short unsigned int work[288]; + code codes[2048]; +}; + +struct inflate_workspace { + struct inflate_state inflate_state; + unsigned char working_window[32768]; +}; + +struct init_nmi { + unsigned int offset; + unsigned int mask; + unsigned int data; +}; + +struct powernow_k8_data; + +struct init_on_cpu { + struct powernow_k8_data *data; + int rc; +}; + +struct x86_mapping_info; + +struct init_pgtable_data { + struct x86_mapping_info *info; + pgd_t *level4p; +}; + +struct initvalues { + __u8 addr; + __u8 value; +}; + +struct mnt_idmap; + +struct kstat; + +struct offset_ctx; + +struct inode_operations { + struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int); + const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *); + int (*permission)(struct mnt_idmap *, struct inode *, int); + struct posix_acl * (*get_inode_acl)(struct inode *, int, bool); + int (*readlink)(struct dentry *, char *, int); + int (*create)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, bool); + int (*link)(struct dentry *, struct inode *, struct dentry *); + int (*unlink)(struct inode *, struct dentry *); + int (*symlink)(struct mnt_idmap *, struct inode *, struct dentry *, const char *); + int (*mkdir)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t); + int (*rmdir)(struct inode *, struct dentry *); + int (*mknod)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, dev_t); + int (*rename)(struct mnt_idmap *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int); + int (*setattr)(struct mnt_idmap *, struct dentry *, struct iattr *); + int (*getattr)(struct mnt_idmap *, const struct path *, struct kstat *, u32, unsigned int); + ssize_t (*listxattr)(struct dentry *, char *, size_t); + int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64); + int (*update_time)(struct inode *, int); + int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t); + int (*tmpfile)(struct mnt_idmap *, struct inode *, struct file *, umode_t); + struct posix_acl * (*get_acl)(struct mnt_idmap *, struct dentry *, int); + int (*set_acl)(struct mnt_idmap *, struct dentry *, struct posix_acl *, int); + int (*fileattr_set)(struct mnt_idmap *, struct dentry *, struct fileattr *); + int (*fileattr_get)(struct dentry *, struct fileattr *); + struct offset_ctx * (*get_offset_ctx)(struct inode *); + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +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 inode_smack { + struct smack_known *smk_inode; + struct smack_known *smk_task; + struct smack_known *smk_mmap; + int smk_flags; +}; + +struct inode_switch_wbs_context { + struct rcu_work work; + struct bdi_writeback *new_wb; + struct inode *inodes[0]; +}; + +struct inodes_stat_t { + long int nr_inodes; + long int nr_unused; + long int dummy[5]; +}; + +struct inotify_event { + __s32 wd; + __u32 mask; + __u32 cookie; + __u32 len; + char name[0]; +}; + +struct inotify_event_info { + struct fsnotify_event fse; + u32 mask; + int wd; + u32 sync_cookie; + int name_len; + char name[0]; +}; + +struct inotify_inode_mark { + struct fsnotify_mark fsn_mark; + int wd; +}; + +struct input_absinfo { + __s32 value; + __s32 minimum; + __s32 maximum; + __s32 fuzz; + __s32 flat; + __s32 resolution; +}; + +struct input_id { + __u16 bustype; + __u16 vendor; + __u16 product; + __u16 version; +}; + +struct input_dev_poller; + +struct input_mt; + +struct input_dev { + const char *name; + const char *phys; + const char *uniq; + struct input_id id; + long unsigned int propbit[1]; + long unsigned int evbit[1]; + long unsigned int keybit[12]; + long unsigned int relbit[1]; + long unsigned int absbit[1]; + long unsigned int mscbit[1]; + long unsigned int ledbit[1]; + long unsigned int sndbit[1]; + long unsigned int ffbit[2]; + long unsigned int 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; + long unsigned int key[12]; + long unsigned int led[1]; + long unsigned int snd[1]; + long unsigned int 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 *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_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 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 input_devres { + struct input_dev *input; +}; + +struct input_event_compat { + compat_ulong_t sec; + compat_ulong_t usec; + __u16 type; + __u16 code; + __s32 value; +}; + +struct input_handler { + void *private; + void (*event)(struct input_handle *, unsigned int, unsigned int, int); + unsigned int (*events)(struct input_handle *, 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 passive_observer; + 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_mask { + __u32 type; + __u32 codes_size; + __u64 codes_ptr; +}; + +struct input_mt_slot { + int abs[14]; + unsigned int frame; + unsigned int key; +}; + +struct input_mt { + int trkid; + int num_slots; + int slot; + unsigned int flags; + unsigned int frame; + int *red; + struct input_mt_slot slots[0]; +}; + +struct input_mt_pos { + s16 x; + s16 y; +}; + +struct input_seq_state { + short unsigned int pos; + bool mutex_acquired; + int input_devices_state; +}; + +struct input_value { + __u16 type; + __u16 code; + __s32 value; +}; + +struct instance_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_device_instance *, char *); + ssize_t (*store)(struct edac_device_instance *, const char *, size_t); +}; + +struct instance_attribute___2 { + struct attribute attr; + ssize_t (*show)(struct edac_pci_ctl_info *, char *); + ssize_t (*store)(struct edac_pci_ctl_info *, const char *, size_t); +}; + +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 intel_agp_driver_description { + unsigned int chip_id; + char *name; + const struct agp_bridge_driver *driver; +}; + +struct intel_padgroup; + +struct intel_community { + unsigned int barno; + unsigned int padown_offset; + unsigned int padcfglock_offset; + unsigned int hostown_offset; + unsigned int is_offset; + unsigned int ie_offset; + unsigned int features; + unsigned int pin_base; + size_t npins; + unsigned int gpp_size; + unsigned int gpp_num_padown_regs; + const struct intel_padgroup *gpps; + size_t ngpps; + const unsigned int *pad_map; + short unsigned int nirqs; + short unsigned int acpi_space_id; + void *regs; + void *pad_regs; +}; + +struct intel_community_context { + u32 *intmask; + u32 *hostown; +}; + +struct intel_community_context___2 { + unsigned int intr_lines[16]; + u32 saved_intmask; +}; + +struct intel_early_ops { + resource_size_t (*stolen_size)(int, int, int); + resource_size_t (*stolen_base)(int, int, int, resource_size_t); +}; + +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 pinfunction { + const char *name; + const char * const *groups; + size_t ngroups; +}; + +struct intel_function { + struct pinfunction func; +}; + +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); + void (*cleanup)(void); + void (*write_entry)(dma_addr_t, unsigned int, unsigned int); + bool (*check_flags)(unsigned int); + void (*chipset_flush)(void); +}; + +struct intel_gtt_driver_description { + unsigned int gmch_chip_id; + char *name; + const struct intel_gtt_driver *gtt_driver; +}; + +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 root_entry; + +struct page_req_dsc; + +struct q_inval; + +struct ir_table; + +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[16]; + long unsigned int *domain_ids; + long unsigned int *copied_tables; + spinlock_t lock; + struct root_entry *root_entry; + struct iommu_flush flush; + struct page_req_dsc *prq; + unsigned char prq_name[16]; + long unsigned int prq_seq_number; + struct completion prq_complete; + struct iopf_queue *iopf_queue; + unsigned char iopfq_name[16]; + struct mutex iopf_lock; + struct q_inval *qi; + u32 iommu_state[4]; + struct rb_root device_rbtree; + spinlock_t device_rbtree_lock; + struct ir_table *ir_table; + struct irq_domain *ir_domain; + struct iommu_device iommu; + int node; + u32 flags; + struct dmar_drhd_unit *drhd; + void *perf_statistic; + struct iommu_pmu *pmu; +}; + +struct irq_2_iommu { + struct intel_iommu *iommu; + u16 irte_index; + u16 sub_handle; + u8 irte_mask; + bool posted_msi; + bool posted_vcpu; +}; + +struct irte { + union { + struct { + union { + struct { + __u64 present: 1; + __u64 fpd: 1; + __u64 __res0: 6; + __u64 avail: 4; + __u64 __res1: 3; + __u64 pst: 1; + __u64 vector: 8; + __u64 __res2: 40; + }; + struct { + __u64 r_present: 1; + __u64 r_fpd: 1; + __u64 dst_mode: 1; + __u64 redir_hint: 1; + __u64 trigger_mode: 1; + __u64 dlvry_mode: 3; + __u64 r_avail: 4; + __u64 r_res0: 4; + __u64 r_vector: 8; + __u64 r_res1: 8; + __u64 dest_id: 32; + }; + struct { + __u64 p_present: 1; + __u64 p_fpd: 1; + __u64 p_res0: 6; + __u64 p_avail: 4; + __u64 p_res1: 2; + __u64 p_urgent: 1; + __u64 p_pst: 1; + __u64 p_vector: 8; + __u64 p_res2: 14; + __u64 pda_l: 26; + }; + __u64 low; + }; + union { + struct { + __u64 sid: 16; + __u64 sq: 2; + __u64 svt: 2; + __u64 __res3: 44; + }; + struct { + __u64 p_sid: 16; + __u64 p_sq: 2; + __u64 p_svt: 2; + __u64 p_res3: 12; + __u64 pda_h: 32; + }; + __u64 high; + }; + }; + __u128 irte; + }; +}; + +struct intel_ir_data { + struct irq_2_iommu irq_2_iommu; + struct irte irte_entry; + union { + struct msi_msg msi_entry; + }; +}; + +struct intel_pad_context { + u32 conf0; + u32 val; +}; + +struct intel_pad_context___2 { + u32 padctrl0; + u32 padctrl1; +}; + +struct intel_pad_context___3 { + u32 padcfg0; + u32 padcfg1; + u32 padcfg2; +}; + +struct intel_padgroup { + unsigned int reg_num; + unsigned int base; + unsigned int size; + int gpio_base; + unsigned int padown_num; +}; + +struct pinctrl_pin_desc; + +struct pinctrl_ops; + +struct pinmux_ops; + +struct pinconf_ops; + +struct pinconf_generic_params; + +struct pin_config_item; + +struct pinctrl_desc { + const char *name; + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct pinctrl_ops *pctlops; + const struct pinmux_ops *pmxops; + const struct pinconf_ops *confops; + struct module *owner; + unsigned int num_custom_params; + const struct pinconf_generic_params *custom_params; + const struct pin_config_item *custom_conf_items; + bool link_consumers; +}; + +struct intel_community_context; + +struct intel_pinctrl_context { + struct intel_pad_context *pads; + struct intel_community_context *communities; +}; + +struct intel_pinctrl_soc_data; + +struct intel_pinctrl { + struct device *dev; + raw_spinlock_t lock; + struct pinctrl_desc pctldesc; + struct pinctrl_dev *pctldev; + struct gpio_chip chip; + const struct intel_pinctrl_soc_data *soc; + struct intel_community *communities; + size_t ncommunities; + struct intel_pinctrl_context context; + int irq; +}; + +struct intel_pinctrl_context___2 { + struct intel_pad_context___2 *pads; + struct intel_community_context___2 *communities; +}; + +struct intel_pinctrl___2 { + struct device *dev; + raw_spinlock_t lock; + struct pinctrl_desc pctldesc; + struct pinctrl_dev *pctldev; + struct gpio_chip chip; + const struct intel_pinctrl_soc_data *soc; + struct intel_community *communities; + size_t ncommunities; + struct intel_pinctrl_context___2 context; + int irq; +}; + +struct intel_pinctrl_context___3 { + struct intel_pad_context___3 *pads; + struct intel_community_context *communities; +}; + +struct intel_pinctrl___3 { + struct device *dev; + raw_spinlock_t lock; + struct pinctrl_desc pctldesc; + struct pinctrl_dev *pctldev; + struct gpio_chip chip; + const struct intel_pinctrl_soc_data *soc; + struct intel_community *communities; + size_t ncommunities; + struct intel_pinctrl_context___3 context; + int irq; +}; + +struct intel_pingroup; + +struct intel_pinctrl_soc_data { + const char *uid; + const struct pinctrl_pin_desc *pins; + size_t npins; + const struct intel_pingroup *groups; + size_t ngroups; + const struct intel_function *functions; + size_t nfunctions; + const struct intel_community *communities; + size_t ncommunities; +}; + +struct pingroup { + const char *name; + const unsigned int *pins; + size_t npins; +}; + +struct intel_pingroup { + struct pingroup grp; + short unsigned int mode; + const unsigned int *modes; +}; + +struct intel_pmic_regs_handler_ctx { + unsigned int val; + u16 addr; +}; + +struct intel_pmic_opregion_data; + +struct intel_pmic_opregion { + struct mutex lock; + struct acpi_lpat_conversion_table *lpat_table; + struct regmap *regmap; + const struct intel_pmic_opregion_data *data; + struct intel_pmic_regs_handler_ctx ctx; +}; + +struct pmic_table; + +struct intel_pmic_opregion_data { + int (*get_power)(struct regmap *, int, int, u64 *); + int (*update_power)(struct regmap *, int, int, bool); + int (*get_raw_temp)(struct regmap *, int); + int (*update_aux)(struct regmap *, int, int); + int (*get_policy)(struct regmap *, int, int, u64 *); + int (*update_policy)(struct regmap *, int, int, int); + int (*exec_mipi_pmic_seq_element)(struct regmap *, u16, u32, u32, u32); + int (*lpat_raw_to_temp)(struct acpi_lpat_conversion_table *, int); + const struct pmic_table *power_table; + int power_table_count; + const struct pmic_table *thermal_table; + int thermal_table_count; + int pmic_i2c_address; +}; + +struct intel_scu_ipc_data { + struct resource mem; + int irq; +}; + +struct intel_scu_ipc_dev { + struct device dev; + struct module *owner; + void *ipc_base; + struct completion cmd_complete; + struct intel_scu_ipc_data data; +}; + +struct intel_scu_ipc_devres { + struct intel_scu_ipc_dev *scu; +}; + +struct intel_shared_regs { + struct er_account regs[7]; + int refcnt; + unsigned int core_id; +}; + +struct intel_soc_pmic { + int irq; + struct regmap *regmap; + struct regmap_irq_chip_data *irq_chip_data; + struct regmap_irq_chip_data *irq_chip_data_pwrbtn; + struct regmap_irq_chip_data *irq_chip_data_tmu; + struct regmap_irq_chip_data *irq_chip_data_bcu; + struct regmap_irq_chip_data *irq_chip_data_adc; + struct regmap_irq_chip_data *irq_chip_data_chgr; + struct regmap_irq_chip_data *irq_chip_data_crit; + struct device *dev; + struct intel_scu_ipc_dev *scu; + enum intel_cht_wc_models cht_wc_model; +}; + +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; + long unsigned int flags; + atomic_t refcnt; + struct perf_event *events[10]; + struct perf_event *event_list[10]; + struct event_constraint *event_constraint[10]; + long unsigned int 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_discovery_type { + struct rb_node node; + enum uncore_access_type access_type; + struct rb_root units; + u16 type; + u8 num_counters; + u8 counter_width; + u8 ctl_offset; + u8 ctr_offset; + u16 num_units; +}; + +struct intel_uncore_discovery_unit { + struct rb_node node; + unsigned int pmu_idx; + unsigned int id; + unsigned int die; + u64 addr; +}; + +struct intel_uncore_init_fun { + void (*cpu_init)(void); + int (*pci_init)(void); + void (*mmio_init)(void); + bool use_discovery; + int *uncore_units_ignore; +}; + +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 perf_cpu_pmu_context; + +struct perf_event_pmu_context; + +struct pmu { + struct list_head entry; + struct module *module; + struct device *dev; + struct device *parent; + const struct attribute_group **attr_groups; + const struct attribute_group **attr_update; + const char *name; + int type; + int capabilities; + unsigned int scope; + int *pmu_disable_count; + struct perf_cpu_pmu_context *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 *, struct task_struct *, 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 int (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, long unsigned int); + int (*addr_filters_validate)(struct list_head *); + void (*addr_filters_sync)(struct perf_event *); + int (*aux_output_match)(struct perf_event *); + bool (*filter)(struct pmu *, int); + int (*check_period)(struct perf_event *, u64); +}; + +struct intel_uncore_type; + +struct intel_uncore_pmu { + struct pmu pmu; + char name[32]; + int pmu_idx; + bool registered; + atomic_t activeboxes; + cpumask_t cpu_mask; + struct intel_uncore_type *type; + struct intel_uncore_box **boxes; +}; + +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_event_desc; + +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; + union { + unsigned int msr_offset; + unsigned int mmio_offset; + }; + unsigned int mmio_map_size; + unsigned int num_shared_regs: 8; + unsigned int single_fixed: 1; + unsigned int pair_ctr_ctl: 1; + union { + u64 *msr_offsets; + u64 *pci_offsets; + u64 *mmio_offsets; + }; + 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 rb_root *boxes; + 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 *); + void (*cleanup_extra_boxes)(struct intel_uncore_type *); +}; + +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 { + unsigned int lnc_dse: 8; + unsigned int ld_reserved5: 2; + unsigned int lnc_stlb_miss: 1; + unsigned int lnc_locked: 1; + unsigned int lnc_data_blk: 1; + unsigned int lnc_addr_blk: 1; + unsigned int ld_reserved6: 18; + }; +}; + +struct internal_container { + struct klist_node node; + struct attribute_container *cont; + struct device classdev; +}; + +struct internal_state { + int dummy; +}; + +struct interval { + uint32_t first; + uint32_t last; +}; + +struct interval_tree_span_iter { + struct interval_tree_node *nodes[2]; + long unsigned int first_index; + long unsigned int last_index; + union { + long unsigned int start_hole; + long unsigned int start_used; + }; + union { + long unsigned int last_hole; + long unsigned int last_used; + }; + int is_hole; +}; + +struct invalid_value_data { + struct source_location location; + struct type_descriptor *type; +}; + +struct io { + long unsigned int error_bits; + atomic_t count; + struct dm_io_client *client; + io_notify_fn callback; + void *context; + void *vma_invalidate_address; + long unsigned int vma_invalidate_size; + long: 64; +}; + +struct io_accept { + struct file *file; + struct sockaddr *addr; + int *addr_len; + int flags; + int iou_flags; + u32 file_slot; + long unsigned int nofile; +}; + +struct io_alloc_cache { + void **entries; + unsigned int nr_cached; + unsigned int max_cached; + unsigned int elem_size; + unsigned int init_clear; +}; + +struct io_apic { + unsigned int index; + unsigned int unused[3]; + unsigned int data; + unsigned int unused2[11]; + unsigned int eoi; +}; + +struct ubuf_info; + +struct msghdr { + void *msg_name; + int msg_namelen; + int msg_inq; + struct iov_iter msg_iter; + union { + void *msg_control; + void *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 sk_buff *, struct iov_iter *, size_t); +}; + +struct io_async_msghdr { + struct iovec *free_iov; + int free_iov_nr; + union { + struct { + int namelen; + struct iovec fast_iov; + __kernel_size_t controllen; + __kernel_size_t payloadlen; + struct sockaddr *uaddr; + struct msghdr msg; + struct __kernel_sockaddr_storage addr; + }; + struct { + int namelen; + struct iovec fast_iov; + __kernel_size_t controllen; + __kernel_size_t payloadlen; + struct sockaddr *uaddr; + struct msghdr msg; + struct __kernel_sockaddr_storage addr; + } clear; + }; +}; + +struct iov_iter_state { + size_t iov_offset; + size_t count; + long unsigned int nr_segs; +}; + +struct wait_page_queue { + struct folio *folio; + int bit_nr; + wait_queue_entry_t wait; +}; + +struct uio_meta { + uio_meta_flags_t flags; + u16 app_tag; + u64 seed; + struct iov_iter iter; +}; + +struct io_meta_state { + u32 seed; + struct iov_iter_state iter_meta; +}; + +struct io_async_rw { + size_t bytes_done; + struct iovec *free_iovec; + union { + struct { + struct iov_iter iter; + struct iov_iter_state iter_state; + struct iovec fast_iov; + int free_iov_nr; + union { + struct wait_page_queue wpq; + struct { + struct uio_meta meta; + struct io_meta_state meta_state; + }; + }; + }; + struct { + struct iov_iter iter; + struct iov_iter_state iter_state; + struct iovec fast_iov; + int free_iov_nr; + union { + struct wait_page_queue wpq; + struct { + struct uio_meta meta; + struct io_meta_state meta_state; + }; + }; + } clear; + }; +}; + +struct io_bind { + struct file *file; + int addr_len; +}; + +struct io_bitmap { + u64 sequence; + refcount_t refcnt; + unsigned int max; + long unsigned int bitmap[1024]; +}; + +struct io_buffer { + struct list_head list; + __u64 addr; + __u32 len; + __u16 bid; + __u16 bgid; +}; + +struct io_mapped_region { + struct page **pages; + void *ptr; + unsigned int nr_pages; + unsigned int flags; +}; + +struct io_uring_buf_ring; + +struct io_buffer_list { + union { + struct list_head buf_list; + struct io_uring_buf_ring *buf_ring; + }; + __u16 bgid; + __u16 buf_nr_pages; + __u16 nr_entries; + __u16 head; + __u16 mask; + __u16 flags; + struct io_mapped_region region; +}; + +struct io_cancel { + struct file *file; + u64 addr; + u32 flags; + s32 fd; + u8 opcode; +}; + +struct io_ring_ctx; + +struct io_cancel_data { + struct io_ring_ctx *ctx; + union { + u64 data; + struct file *file; + }; + u8 opcode; + u32 flags; + int seq; +}; + +struct io_wq_work; + +typedef bool work_cancel_fn(struct io_wq_work *, void *); + +struct io_cb_cancel_data { + work_cancel_fn *fn; + void *data; + int nr_running; + int nr_pending; + bool cancel_all; +}; + +struct io_close { + struct file *file; + int fd; + u32 file_slot; +}; + +struct io_cmd_data { + struct file *file; + __u8 data[56]; +}; + +struct io_kiocb; + +struct io_cold_def { + const char *name; + void (*cleanup)(struct io_kiocb *); + void (*fail)(struct io_kiocb *); +}; + +struct io_comp_batch { + struct rq_list req_list; + bool need_ts; + void (*complete)(struct io_comp_batch *); +}; + +struct io_connect { + struct file *file; + struct sockaddr *addr; + int addr_len; + bool in_progress; + bool seen_econnaborted; +}; + +struct io_context { + atomic_long_t refcount; + atomic_t active_ref; + short unsigned int ioprio; + spinlock_t lock; + struct xarray icq_tree; + struct io_cq *icq_hint; + struct hlist_head icq_list; + struct work_struct release_work; +}; + +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; +}; + +struct io_cqe { + __u64 user_data; + __s32 res; + union { + __u32 flags; + int fd; + }; +}; + +struct io_cqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 overflow; + __u32 cqes; + __u32 flags; + __u32 resv1; + __u64 user_addr; +}; + +struct io_defer_entry { + struct list_head list; + struct io_kiocb *req; + u32 seq; +}; + +struct io_epoll { + struct file *file; + int epfd; + int op; + int fd; + struct epoll_event event; +}; + +struct io_err_c { + struct dm_dev *dev; + sector_t start; +}; + +struct io_ev_fd { + struct eventfd_ctx *cq_ev_fd; + unsigned int eventfd_async; + unsigned int last_cq_tail; + refcount_t refs; + atomic_t ops; + struct callback_head rcu; +}; + +struct io_fadvise { + struct file *file; + u64 offset; + u64 len; + u32 advice; +}; + +struct io_rsrc_node; + +struct io_rsrc_data { + unsigned int nr; + struct io_rsrc_node **nodes; +}; + +struct io_file_table { + struct io_rsrc_data data; + long unsigned int *bitmap; + unsigned int alloc_hint; +}; + +struct io_fixed_install { + struct file *file; + unsigned int o_flags; +}; + +struct io_ftrunc { + struct file *file; + loff_t len; +}; + +struct io_futex { + struct file *file; + union { + u32 *uaddr; + struct futex_waitv *uwaitv; + }; + long unsigned int futex_val; + long unsigned int futex_mask; + long unsigned int futexv_owned; + u32 futex_flags; + unsigned int futex_nr; + bool futexv_unqueued; +}; + +struct io_futex_data { + struct futex_q q; + struct io_kiocb *req; +}; + +struct io_hash_bucket { + struct hlist_head list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct io_hash_table { + struct io_hash_bucket *hbs; + unsigned int hash_bits; +}; + +struct io_imu_folio_data { + unsigned int nr_pages_head; + unsigned int nr_pages_mid; + unsigned int folio_shift; + unsigned int nr_folios; +}; + +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 audit_skip: 1; + unsigned int ioprio: 1; + unsigned int iopoll: 1; + unsigned int iopoll_queue: 1; + unsigned int vectored: 1; + short unsigned int async_size; + int (*issue)(struct io_kiocb *, unsigned int); + int (*prep)(struct io_kiocb *, const struct io_uring_sqe *); +}; + +struct io_wq_work_node { + struct io_wq_work_node *next; +}; + +struct io_tw_state; + +typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *); + +struct io_task_work { + struct llist_node node; + io_req_tw_func_t func; +}; + +struct io_wq_work { + struct io_wq_work_node list; + atomic_t flags; + int cancel_seq; +}; + +struct io_uring_task; + +struct io_kiocb { + union { + struct file *file; + struct io_cmd_data cmd; + }; + u8 opcode; + u8 iopoll_completed; + u16 buf_index; + unsigned int nr_tw; + io_req_flags_t flags; + struct io_cqe cqe; + struct io_ring_ctx *ctx; + struct io_uring_task *tctx; + union { + struct io_buffer *kbuf; + struct io_buffer_list *buf_list; + struct io_rsrc_node *buf_node; + }; + union { + struct io_wq_work_node comp_list; + __poll_t apoll_events; + }; + struct io_rsrc_node *file_node; + atomic_t refs; + bool cancel_seq_set; + struct io_task_work io_task_work; + union { + struct hlist_node hash_node; + u64 iopoll_start; + }; + struct async_poll *apoll; + void *async_data; + atomic_t poll_refs; + struct io_kiocb *link; + const struct cred *creds; + struct io_wq_work work; + struct { + u64 extra1; + u64 extra2; + } big_cqe; +}; + +struct io_link { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct io_listen { + struct file *file; + int backlog; +}; + +struct io_madvise { + struct file *file; + u64 addr; + u64 len; + u32 advice; +}; + +struct io_mapped_ubuf { + u64 ubuf; + unsigned int len; + unsigned int nr_bvecs; + unsigned int folio_shift; + refcount_t refs; + long unsigned int acct_pages; + struct bio_vec bvec[0]; +}; + +struct io_mkdir { + struct file *file; + int dfd; + umode_t mode; + struct filename *filename; +}; + +struct io_msg { + struct file *file; + struct file *src_file; + struct callback_head tw; + u64 user_data; + u32 len; + u32 cmd; + u32 src_fd; + union { + u32 dst_fd; + u32 cqe_flags; + }; + u32 flags; +}; + +struct io_napi_entry { + unsigned int napi_id; + struct list_head list; + long unsigned int timeout; + struct hlist_node node; + struct callback_head rcu; +}; + +struct io_nop { + struct file *file; + int result; + int fd; + int buffer; + unsigned int flags; +}; + +struct ubuf_info_ops; + +struct ubuf_info { + const struct ubuf_info_ops *ops; + refcount_t refcnt; + u8 flags; +}; + +struct io_notif_data { + struct file *file; + struct ubuf_info uarg; + struct io_notif_data *next; + struct io_notif_data *head; + unsigned int account_pages; + bool zc_report; + bool zc_used; + bool zc_copied; +}; + +struct io_open { + struct file *file; + int dfd; + u32 file_slot; + struct filename *filename; + struct open_how how; + long unsigned int nofile; +}; + +struct io_uring_cqe { + __u64 user_data; + __s32 res; + __u32 flags; + __u64 big_cqe[0]; +}; + +struct io_overflow_cqe { + struct list_head list; + struct io_uring_cqe cqe; +}; + +struct io_pagetable { + struct rw_semaphore domains_rwsem; + struct xarray domains; + struct xarray access_list; + unsigned int next_domain_id; + struct rw_semaphore iova_rwsem; + struct rb_root_cached area_itree; + struct rb_root_cached allowed_itree; + struct rb_root_cached reserved_itree; + u8 disable_large_pages; + long unsigned int iova_alignment; +}; + +struct io_pgtable_init_fns { + struct io_pgtable * (*alloc)(struct io_pgtable_cfg *, void *); + void (*free)(struct io_pgtable *); + u32 caps; +}; + +struct io_poll_table { + struct poll_table_struct pt; + struct io_kiocb *req; + int nr_entries; + int error; + bool owning; + __poll_t result_mask; +}; + +struct 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_provide_buf { + struct file *file; + __u64 addr; + __u32 len; + __u32 bgid; + __u32 nbufs; + __u16 bid; +}; + +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_rename { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct io_restriction { + long unsigned int register_op[1]; + long unsigned int sqe_op[1]; + u8 sqe_flags_allowed; + u8 sqe_flags_required; + bool registered; +}; + +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_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; + bool cq_flush; + short unsigned int submit_nr; + struct blk_plug plug; +}; + +struct io_rings; + +struct io_sq_data; + +struct io_wq_hash; + +struct io_ring_ctx { + struct { + unsigned int flags; + unsigned int drain_next: 1; + unsigned int restricted: 1; + unsigned int off_timeout_used: 1; + unsigned int drain_active: 1; + unsigned int has_evfd: 1; + unsigned int task_complete: 1; + unsigned int lockless_cq: 1; + unsigned int syscall_iopoll: 1; + unsigned int poll_activated: 1; + unsigned int drain_disabled: 1; + unsigned int compat: 1; + unsigned int iowq_limits_set: 1; + struct task_struct *submitter_task; + struct io_rings *rings; + struct percpu_ref refs; + clockid_t clockid; + enum tk_offsets clock_offset; + enum task_work_notify_mode notify_method; + unsigned int sq_thread_idle; + 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; + atomic_t cancel_seq; + bool poll_multi_queue; + struct io_wq_work_list iopoll_list; + struct io_file_table file_table; + struct io_rsrc_data buf_table; + struct io_submit_state submit_state; + struct xarray io_bl_xa; + struct io_hash_table cancel_table; + struct io_alloc_cache apoll_cache; + struct io_alloc_cache netmsg_cache; + struct io_alloc_cache rw_cache; + struct io_alloc_cache uring_cache; + struct hlist_head cancelable_uring_cmd; + u64 hybrid_poll_time; + }; + 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 *io_ev_fd; + unsigned int cq_extra; + void *cq_wait_arg; + size_t cq_wait_size; + long: 64; + }; + struct { + struct llist_head work_llist; + struct llist_head retry_llist; + long unsigned int check_cq; + atomic_t cq_wait_nr; + atomic_t cq_timeouts; + struct wait_queue_head cq_wait; + long: 64; + }; + struct { + raw_spinlock_t timeout_lock; + struct list_head timeout_list; + struct list_head ltimeout_list; + unsigned int cq_last_tm_flush; + long: 64; + long: 64; + }; + spinlock_t completion_lock; + struct list_head io_buffers_comp; + struct list_head cq_overflow_list; + struct hlist_head waitid_list; + struct hlist_head futex_list; + struct io_alloc_cache futex_cache; + const struct cred *sq_creds; + struct io_sq_data *sq_data; + struct wait_queue_head sqo_sq_wait; + struct list_head sqd_list; + unsigned int file_alloc_start; + unsigned int file_alloc_end; + struct list_head io_buffers_cache; + struct wait_queue_head poll_wq; + struct io_restriction restrictions; + u32 pers_next; + struct xarray personalities; + struct io_wq_hash *hash_map; + struct user_struct *user; + struct mm_struct *mm_account; + struct llist_head fallback_llist; + struct delayed_work fallback_work; + struct work_struct exit_work; + struct list_head tctx_list; + struct completion ref_comp; + u32 iowq_limits[2]; + struct callback_head poll_wq_task_work; + struct list_head defer_list; + struct io_alloc_cache msg_cache; + spinlock_t msg_lock; + struct list_head napi_list; + spinlock_t napi_lock; + ktime_t napi_busy_poll_dt; + bool napi_prefer_busy_poll; + u8 napi_track_mode; + struct hlist_head napi_ht[16]; + unsigned int evfd_last_cq_tail; + struct mutex mmap_lock; + struct io_mapped_region sq_region; + struct io_mapped_region ring_region; + struct io_mapped_region param_region; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct io_ring_ctx_rings { + struct io_rings *rings; + struct io_uring_sqe *sq_sqes; + struct io_mapped_region sq_region; + struct io_mapped_region ring_region; +}; + +struct io_uring { + u32 head; + u32 tail; +}; + +struct io_rings { + struct io_uring sq; + struct io_uring cq; + u32 sq_ring_mask; + u32 cq_ring_mask; + u32 sq_ring_entries; + u32 cq_ring_entries; + u32 sq_dropped; + atomic_t sq_flags; + u32 cq_flags; + u32 cq_overflow; + long: 64; + long: 64; + struct io_uring_cqe cqes[0]; +}; + +struct io_rsrc_node { + unsigned char type; + int refs; + u64 tag; + union { + long unsigned int file_ptr; + struct io_mapped_ubuf *buf; + }; +}; + +struct io_rsrc_update { + struct file *file; + u64 arg; + u32 nr_args; + u32 offset; +}; + +struct io_rw { + struct kiocb kiocb; + u64 addr; + u32 len; + rwf_t flags; +}; + +struct io_shutdown { + struct file *file; + int how; +}; + +struct io_socket { + struct file *file; + int domain; + int type; + int protocol; + int flags; + u32 file_slot; + long unsigned int nofile; +}; + +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 io_rsrc_node *rsrc_node; +}; + +struct io_sq_data { + refcount_t refs; + atomic_t park_pending; + struct mutex lock; + struct list_head ctx_list; + struct task_struct *thread; + struct wait_queue_head wait; + unsigned int sq_thread_idle; + int sq_cpu; + pid_t task_pid; + pid_t task_tgid; + u64 work_time; + long unsigned int state; + struct completion exited; +}; + +struct io_sqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 flags; + __u32 dropped; + __u32 array; + __u32 resv1; + __u64 user_addr; +}; + +struct user_msghdr; + +struct io_sr_msg { + struct file *file; + union { + struct compat_msghdr *umsg_compat; + struct user_msghdr *umsg; + void *buf; + }; + int len; + unsigned int done_io; + unsigned int msg_flags; + unsigned int nr_multishot_loops; + u16 flags; + u16 buf_group; + u16 buf_index; + bool retry; + bool imported; + void *msg_control; + struct io_kiocb *notif; +}; + +struct statx; + +struct io_statx { + struct file *file; + int dfd; + unsigned int mask; + unsigned int flags; + struct filename *filename; + struct statx *buffer; +}; + +struct io_sync { + struct file *file; + loff_t len; + loff_t off; + int flags; + int mode; +}; + +struct io_task_cancel { + struct io_uring_task *tctx; + bool all; +}; + +struct io_tctx_exit { + struct callback_head task_work; + struct completion completion; + struct io_ring_ctx *ctx; +}; + +struct io_tctx_node { + struct list_head ctx_node; + struct task_struct *task; + struct io_ring_ctx *ctx; +}; + +struct io_timeout { + struct file *file; + u32 off; + u32 target_seq; + u32 repeats; + struct list_head list; + struct io_kiocb *head; + struct io_kiocb *prev; +}; + +struct io_timeout_data { + struct io_kiocb *req; + struct hrtimer timer; + struct timespec64 ts; + enum hrtimer_mode mode; + u32 flags; +}; + +struct io_timeout_rem { + struct file *file; + u64 addr; + struct timespec64 ts; + u32 flags; + bool ltimeout; +}; + +struct io_tlb_area { + long unsigned int used; + unsigned int index; + spinlock_t lock; +}; + +struct io_tlb_slot; + +struct io_tlb_pool { + phys_addr_t start; + phys_addr_t end; + void *vaddr; + long unsigned int nslabs; + bool late_alloc; + unsigned int nareas; + unsigned int area_nslabs; + struct io_tlb_area *areas; + struct io_tlb_slot *slots; + struct list_head node; + struct callback_head rcu; + bool transient; +}; + +struct io_tlb_mem { + struct io_tlb_pool defpool; + long unsigned int nslabs; + struct dentry *debugfs; + bool force_bounce; + bool for_alloc; + bool can_grow; + u64 phys_limit; + spinlock_t lock; + struct list_head pools; + struct work_struct dyn_alloc; + atomic_long_t total_used; + atomic_long_t used_hiwater; + atomic_long_t transient_nslabs; +}; + +struct io_tlb_slot { + phys_addr_t orig_addr; + size_t alloc_size; + short unsigned int list; + short unsigned int pad_slots; +}; + +struct io_tw_state {}; + +struct io_unlink { + struct file *file; + int dfd; + int flags; + struct filename *filename; +}; + +struct io_uring_attr_pi { + __u16 flags; + __u16 app_tag; + __u32 len; + __u64 addr; + __u64 seed; + __u64 rsvd; +}; + +struct io_uring_buf { + __u64 addr; + __u32 len; + __u16 bid; + __u16 resv; +}; + +struct io_uring_buf_reg { + __u64 ring_addr; + __u32 ring_entries; + __u16 bgid; + __u16 flags; + __u64 resv[3]; +}; + +struct io_uring_buf_ring { + union { + struct { + __u64 resv1; + __u32 resv2; + __u16 resv3; + __u16 tail; + }; + struct { + struct {} __empty_bufs; + struct io_uring_buf bufs[0]; + }; + }; +}; + +struct io_uring_buf_status { + __u32 buf_group; + __u32 head; + __u32 resv[8]; +}; + +struct io_uring_clock_register { + __u32 clockid; + __u32 __resv[3]; +}; + +struct io_uring_clone_buffers { + __u32 src_fd; + __u32 flags; + __u32 src_off; + __u32 dst_off; + __u32 nr; + __u32 pad[3]; +}; + +struct io_uring_cmd { + struct file *file; + const struct io_uring_sqe *sqe; + void (*task_work_cb)(struct io_uring_cmd *, unsigned int); + u32 cmd_op; + u32 flags; + u8 pdu[32]; +}; + +struct io_uring_sqe { + __u8 opcode; + __u8 flags; + __u16 ioprio; + __s32 fd; + union { + __u64 off; + __u64 addr2; + struct { + __u32 cmd_op; + __u32 __pad1; + }; + }; + union { + __u64 addr; + __u64 splice_off_in; + struct { + __u32 level; + __u32 optname; + }; + }; + __u32 len; + union { + __kernel_rwf_t rw_flags; + __u32 fsync_flags; + __u16 poll_events; + __u32 poll32_events; + __u32 sync_range_flags; + __u32 msg_flags; + __u32 timeout_flags; + __u32 accept_flags; + __u32 cancel_flags; + __u32 open_flags; + __u32 statx_flags; + __u32 fadvise_advice; + __u32 splice_flags; + __u32 rename_flags; + __u32 unlink_flags; + __u32 hardlink_flags; + __u32 xattr_flags; + __u32 msg_ring_flags; + __u32 uring_cmd_flags; + __u32 waitid_flags; + __u32 futex_flags; + __u32 install_fd_flags; + __u32 nop_flags; + }; + __u64 user_data; + union { + __u16 buf_index; + __u16 buf_group; + }; + __u16 personality; + union { + __s32 splice_fd_in; + __u32 file_index; + __u32 optlen; + struct { + __u16 addr_len; + __u16 __pad3[1]; + }; + }; + union { + struct { + __u64 addr3; + __u64 __pad2[1]; + }; + struct { + __u64 attr_ptr; + __u64 attr_type_mask; + }; + __u64 optval; + __u8 cmd[0]; + }; +}; + +struct io_uring_cmd_data { + void *op_data; + struct io_uring_sqe sqes[2]; +}; + +struct io_uring_file_index_range { + __u32 off; + __u32 len; + __u64 resv; +}; + +struct io_uring_getevents_arg { + __u64 sigmask; + __u32 sigmask_sz; + __u32 min_wait_usec; + __u64 ts; +}; + +struct io_uring_mem_region_reg { + __u64 region_uptr; + __u64 flags; + __u64 __resv[2]; +}; + +struct io_uring_napi { + __u32 busy_poll_to; + __u8 prefer_busy_poll; + __u8 opcode; + __u8 pad[2]; + __u32 op_param; + __u32 resv; +}; + +struct io_uring_params { + __u32 sq_entries; + __u32 cq_entries; + __u32 flags; + __u32 sq_thread_cpu; + __u32 sq_thread_idle; + __u32 features; + __u32 wq_fd; + __u32 resv[3]; + struct io_sqring_offsets sq_off; + struct io_cqring_offsets cq_off; +}; + +struct 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_reg_wait { + struct __kernel_timespec ts; + __u32 min_wait_usec; + __u32 flags; + __u64 sigmask; + __u32 sigmask_sz; + __u32 pad[3]; + __u64 pad2[2]; +}; + +struct io_uring_region_desc { + __u64 user_addr; + __u64 size; + __u32 flags; + __u32 id; + __u64 mmap_offset; + __u64 __resv[4]; +}; + +struct io_uring_restriction { + __u16 opcode; + union { + __u8 register_op; + __u8 sqe_op; + __u8 sqe_flags; + }; + __u8 resv; + __u32 resv2[3]; +}; + +struct io_uring_rsrc_register { + __u32 nr; + __u32 flags; + __u64 resv2; + __u64 data; + __u64 tags; +}; + +struct io_uring_rsrc_update { + __u32 offset; + __u32 resv; + __u64 data; +}; + +struct io_uring_rsrc_update2 { + __u32 offset; + __u32 resv; + __u64 data; + __u64 tags; + __u32 nr; + __u32 resv2; +}; + +struct io_uring_sync_cancel_reg { + __u64 addr; + __s32 fd; + __u32 flags; + struct __kernel_timespec timeout; + __u8 opcode; + __u8 pad[7]; + __u64 pad2[3]; +}; + +struct io_wq; + +struct io_uring_task { + int cached_refs; + const struct io_ring_ctx *last; + struct task_struct *task; + struct io_wq *io_wq; + struct file *registered_rings[16]; + struct xarray xa; + struct wait_queue_head wait; + atomic_t in_cancel; + atomic_t inflight_tracked; + struct percpu_counter inflight; + long: 64; + struct { + struct llist_head task_list; + struct callback_head task_work; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; +}; + +struct io_wait_queue { + struct wait_queue_entry wq; + struct io_ring_ctx *ctx; + unsigned int cq_tail; + unsigned int cq_min_tail; + unsigned int nr_timeouts; + int hit_timeout; + ktime_t min_timeout; + ktime_t timeout; + struct hrtimer t; + ktime_t napi_busy_poll_dt; + bool napi_prefer_busy_poll; +}; + +struct waitid_info { + pid_t pid; + uid_t uid; + int status; + int cause; +}; + +struct io_waitid { + struct file *file; + int which; + pid_t upid; + int options; + atomic_t refs; + struct wait_queue_head *head; + struct siginfo *infop; + struct waitid_info info; +}; + +struct rusage; + +struct wait_opts { + enum pid_type wo_type; + int wo_flags; + struct pid *wo_pid; + struct waitid_info *wo_info; + int wo_stat; + struct rusage *wo_rusage; + wait_queue_entry_t child_wait; + int notask_error; +}; + +struct io_waitid_async { + struct io_kiocb *req; + struct wait_opts wo; +}; + +struct io_worker { + refcount_t ref; + int create_index; + long unsigned int flags; + struct hlist_nulls_node nulls_node; + struct list_head all_list; + struct task_struct *task; + struct io_wq *wq; + struct io_wq_work *cur_work; + raw_spinlock_t lock; + struct completion ref_done; + long unsigned int create_state; + struct callback_head create_work; + int init_retries; + union { + struct callback_head rcu; + struct delayed_work 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_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; + long unsigned int flags; +}; + +struct io_wq { + long unsigned int state; + free_work_fn *free_work; + io_wq_work_fn *do_work; + struct io_wq_hash *hash; + atomic_t worker_refs; + struct completion worker_done; + struct hlist_node cpuhp_node; + struct task_struct *task; + struct io_wq_acct acct[2]; + raw_spinlock_t lock; + struct hlist_nulls_head free_list; + struct list_head all_list; + struct wait_queue_entry wait; + struct io_wq_work *hash_tail[64]; + cpumask_var_t cpu_mask; +}; + +struct io_wq_data { + struct io_wq_hash *hash; + struct task_struct *task; + io_wq_work_fn *do_work; + free_work_fn *free_work; +}; + +struct io_wq_hash { + refcount_t refs; + long unsigned int map; + struct wait_queue_head wait; +}; + +struct xattr_name; + +struct kernel_xattr_ctx { + union { + const void *cvalue; + void *value; + }; + void *kvalue; + size_t size; + struct xattr_name *kname; + unsigned int flags; +}; + +struct io_xattr { + struct file *file; + struct kernel_xattr_ctx ctx; + struct filename *filename; +}; + +struct ioam6_hdr { + __u8 opt_type; + __u8 opt_len; + char: 8; + __u8 type; +}; + +struct ioam6_lwt_freq { + u32 k; + u32 n; +}; + +struct ipv6_opt_hdr { + __u8 nexthdr; + __u8 hdrlen; +}; + +struct ioam6_trace_hdr { + __be16 namespace_id; + char: 2; + __u8 overflow: 1; + __u8 nodelen: 5; + __u8 remlen: 7; + union { + __be32 type_be32; + struct { + __u32 bit7: 1; + __u32 bit6: 1; + __u32 bit5: 1; + __u32 bit4: 1; + __u32 bit3: 1; + __u32 bit2: 1; + __u32 bit1: 1; + __u32 bit0: 1; + __u32 bit15: 1; + __u32 bit14: 1; + __u32 bit13: 1; + __u32 bit12: 1; + __u32 bit11: 1; + __u32 bit10: 1; + __u32 bit9: 1; + __u32 bit8: 1; + __u32 bit23: 1; + __u32 bit22: 1; + __u32 bit21: 1; + __u32 bit20: 1; + __u32 bit19: 1; + __u32 bit18: 1; + __u32 bit17: 1; + __u32 bit16: 1; + } type; + }; + __u8 data[0]; +}; + +struct ioam6_lwt_encap { + struct ipv6_opt_hdr eh; + u8 pad[2]; + struct ioam6_hdr ioamh; + struct ioam6_trace_hdr traceh; +}; + +struct ioam6_lwt { + struct dst_cache cache; + struct ioam6_lwt_freq freq; + atomic_t pkt_cnt; + u8 mode; + bool has_tunsrc; + struct in6_addr tunsrc; + struct in6_addr tundst; + struct ioam6_lwt_encap tuninfo; +}; + +struct ioam6_schema; + +struct ioam6_namespace { + struct rhash_head head; + struct callback_head rcu; + struct ioam6_schema *schema; + __be16 id; + __be32 data; + __be64 data_wide; +}; + +struct ioam6_pernet_data { + struct mutex lock; + struct rhashtable namespaces; + struct rhashtable schemas; +}; + +struct ioam6_schema { + struct rhash_head head; + struct callback_head rcu; + struct ioam6_namespace *ns; + u32 id; + int len; + __be32 hdr; + u8 data[0]; +}; + +struct mpc_ioapic { + unsigned char type; + unsigned char apicid; + unsigned char apicver; + unsigned char flags; + unsigned int apicaddr; +}; + +struct mp_ioapic_gsi { + u32 gsi_base; + u32 gsi_end; +}; + +struct ioapic_domain_cfg { + enum ioapic_domain_type type; + const struct irq_domain_ops *ops; + struct device_node *dev; +}; + +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 ioapic_scope { + struct intel_iommu *iommu; + unsigned int id; + unsigned int bus; + unsigned int devfn; +}; + +struct rq_qos_ops; + +struct rq_qos { + const struct rq_qos_ops *ops; + struct gendisk *disk; + enum rq_qos_id id; + struct rq_qos *next; + struct dentry *debugfs_dir; +}; + +struct 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; +}; + +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 *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_cgrp { + struct blkcg_policy_data cpd; + unsigned int dfl_weight; +}; + +struct iocg_stat { + u64 usage_us; + u64 wait_us; + u64 indebt_us; + u64 indelay_us; +}; + +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 *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_missed { + local_t nr_met; + local_t nr_missed; + u32 last_met; + u32 last_missed; +}; + +struct ioc_now { + u64 now_ns; + u64 now; + u64 vnow; +}; + +struct ioc_pcpu_stat { + struct ioc_missed missed[2]; + local64_t rq_wait_ns; + u64 last_rq_wait_ns; +}; + +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 iocg_pcpu_stat { + local64_t abs_vusage; +}; + +struct iocg_wait { + struct wait_queue_entry wait; + struct bio *bio; + u64 abs_cost; + bool committed; +}; + +struct iocg_wake_ctx { + struct ioc_gq *iocg; + u32 hw_inuse; + s64 vbudget; +}; + +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_dio_ops; + +struct iomap_dio { + struct kiocb *iocb; + const struct iomap_dio_ops *dops; + loff_t i_size; + loff_t size; + atomic_t ref; + unsigned int flags; + int error; + size_t done_before; + bool wait_for_completion; + union { + struct { + struct iov_iter *iter; + struct task_struct *waiter; + } submit; + struct { + struct work_struct work; + } aio; + }; +}; + +struct iomap_iter; + +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 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_folio_state { + spinlock_t state_lock; + unsigned int read_bytes_pending; + atomic_t write_bytes_pending; + long unsigned int state[0]; +}; + +struct iomap_ioend { + struct list_head io_list; + u16 io_type; + u16 io_flags; + struct inode *io_inode; + size_t io_size; + loff_t io_offset; + sector_t io_sector; + struct bio io_bio; +}; + +struct iomap_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 *); +}; + +struct iomap_readpage_ctx { + struct folio *cur_folio; + bool cur_folio_in_bio; + struct bio *bio; + struct readahead_control *rac; +}; + +struct iomap_swapfile_info { + struct iomap iomap; + struct swap_info_struct *sis; + uint64_t lowest_ppage; + uint64_t highest_ppage; + long unsigned int nr_pages; + int nr_extents; + struct file *file; +}; + +struct iomap_writepage_ctx; + +struct iomap_writeback_ops { + int (*map_blocks)(struct iomap_writepage_ctx *, struct inode *, loff_t, unsigned int); + int (*prepare_ioend)(struct iomap_ioend *, int); + void (*discard_folio)(struct folio *, loff_t); +}; + +struct iomap_writepage_ctx { + struct iomap iomap; + struct iomap_ioend *ioend; + const struct iomap_writeback_ops *ops; + u32 nr_folios; +}; + +struct iommu_attach_handle { + struct iommu_domain *domain; +}; + +struct iommu_cmd { + u32 data[4]; +}; + +struct protection_domain; + +struct iommu_dev_data { + struct mutex mutex; + spinlock_t dte_lock; + struct list_head list; + struct llist_node dev_data_list; + struct protection_domain *domain; + struct gcr3_tbl_info gcr3_info; + struct device *dev; + u16 devid; + u32 max_pasids; + u32 flags; + int ats_qdep; + u8 ats_enabled: 1; + u8 pri_enabled: 1; + u8 pasid_enabled: 1; + u8 pri_tlp: 1; + u8 ppr: 1; + bool use_vapic; + bool defer_attach; + struct ratelimit_state rs; +}; + +struct iova_bitmap; + +struct iommu_dirty_bitmap { + struct iova_bitmap *bitmap; + struct iommu_iotlb_gather *gather; +}; + +struct iommu_dirty_ops { + int (*set_dirty_tracking)(struct iommu_domain *, bool); + int (*read_and_clear_dirty)(struct iommu_domain *, long unsigned int, size_t, long unsigned int, struct iommu_dirty_bitmap *); +}; + +struct iova { + struct rb_node node; + long unsigned int pfn_hi; + long unsigned int 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; + long unsigned int granule; + long unsigned int start_pfn; + long unsigned int dma_32bit_pfn; + long unsigned int max32_alloc_size; + struct iova anchor; + struct iova_rcache *rcaches; + struct hlist_node cpuhp_dead; +}; + +struct iommu_dma_options { + enum iommu_dma_queue_type qt; + size_t fq_size; + unsigned int fq_timeout; +}; + +struct iova_fq; + +struct iommu_dma_cookie { + enum iommu_dma_cookie_type type; + union { + struct { + struct iova_domain iovad; + union { + struct iova_fq *single_fq; + struct iova_fq *percpu_fq; + }; + atomic64_t fq_flush_start_cnt; + atomic64_t fq_flush_finish_cnt; + struct timer_list fq_timer; + atomic_t fq_timer_on; + }; + dma_addr_t msi_iova; + }; + struct list_head msi_page_list; + struct iommu_domain *fq_domain; + struct iommu_dma_options options; + struct mutex mutex; +}; + +struct iommu_dma_msi_page { + struct list_head list; + dma_addr_t iova; + phys_addr_t phys; +}; + +struct iommu_domain_info { + struct intel_iommu *iommu; + unsigned int refcnt; + u16 did; +}; + +struct iommu_user_data_array; + +struct iommu_domain_ops { + int (*attach_dev)(struct iommu_domain *, struct device *); + int (*set_dev_pasid)(struct iommu_domain *, struct device *, ioasid_t, struct iommu_domain *); + int (*map_pages)(struct iommu_domain *, long unsigned int, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); + size_t (*unmap_pages)(struct iommu_domain *, long unsigned int, size_t, size_t, struct iommu_iotlb_gather *); + void (*flush_iotlb_all)(struct iommu_domain *); + int (*iotlb_sync_map)(struct iommu_domain *, long unsigned int, size_t); + void (*iotlb_sync)(struct iommu_domain *, struct iommu_iotlb_gather *); + int (*cache_invalidate_user)(struct iommu_domain *, struct iommu_user_data_array *); + phys_addr_t (*iova_to_phys)(struct iommu_domain *, dma_addr_t); + bool (*enforce_cache_coherency)(struct iommu_domain *); + int (*set_pgtable_quirks)(struct iommu_domain *, long unsigned int); + void (*free)(struct iommu_domain *); +}; + +struct iommu_fault_page_request { + u32 flags; + u32 pasid; + u32 grpid; + u32 perm; + u64 addr; + u64 private_data[2]; +}; + +struct iommu_fault { + u32 type; + struct iommu_fault_page_request prm; +}; + +struct iommu_fault_param { + struct mutex lock; + refcount_t users; + struct callback_head rcu; + struct device *dev; + struct iopf_queue *queue; + struct list_head queue_list; + struct list_head partial; + struct list_head faults; +}; + +struct iommu_flush_ops { + void (*tlb_flush_all)(void *); + void (*tlb_flush_walk)(long unsigned int, size_t, size_t, void *); + void (*tlb_add_page)(struct iommu_iotlb_gather *, long unsigned int, size_t, void *); +}; + +struct iommu_fwspec { + struct fwnode_handle *iommu_fwnode; + u32 flags; + unsigned int num_ids; + u32 ids[0]; +}; + +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); +}; + +struct iommu_hw_info_vtd { + __u32 flags; + __u32 __reserved; + __u64 cap_reg; + __u64 ecap_reg; +}; + +struct iommu_hwpt_vtd_s1_invalidate { + __u64 addr; + __u64 npages; + __u32 flags; + __u32 __reserved; +}; + +struct iommu_iotlb_gather { + long unsigned int start; + long unsigned int end; + size_t pgsize; + struct list_head freelist; + bool queued; +}; + +struct iommu_mm_data { + u32 pasid; + struct list_head sva_domains; +}; + +struct iommu_user_data; + +struct iopf_fault; + +struct iommu_page_response; + +struct iommufd_viommu; + +struct iommufd_ctx; + +struct iommu_ops { + bool (*capable)(struct device *, enum iommu_cap); + void * (*hw_info)(struct device *, u32 *, u32 *); + struct iommu_domain * (*domain_alloc)(unsigned int); + struct iommu_domain * (*domain_alloc_paging_flags)(struct device *, u32, const struct iommu_user_data *); + struct iommu_domain * (*domain_alloc_paging)(struct device *); + struct iommu_domain * (*domain_alloc_sva)(struct device *, struct mm_struct *); + struct iommu_domain * (*domain_alloc_nested)(struct device *, struct iommu_domain *, u32, const struct iommu_user_data *); + struct iommu_device * (*probe_device)(struct device *); + void (*release_device)(struct device *); + void (*probe_finalize)(struct device *); + struct iommu_group * (*device_group)(struct device *); + void (*get_resv_regions)(struct device *, struct list_head *); + int (*of_xlate)(struct device *, const 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); + void (*page_response)(struct device *, struct iopf_fault *, struct iommu_page_response *); + int (*def_domain_type)(struct device *); + struct iommufd_viommu * (*viommu_alloc)(struct device *, struct iommu_domain *, struct iommufd_ctx *, unsigned int); + const struct iommu_domain_ops *default_domain_ops; + long unsigned int pgsize_bitmap; + struct module *owner; + struct iommu_domain *identity_domain; + struct iommu_domain *blocked_domain; + struct iommu_domain *release_domain; + struct iommu_domain *default_domain; + u8 user_pasid_table: 1; +}; + +struct iommu_page_response { + u32 pasid; + u32 grpid; + u32 code; +}; + +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; + long unsigned int used_mask[1]; + struct perf_event *event_list[64]; + unsigned char irq_name[16]; +}; + +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_sva { + struct iommu_attach_handle handle; + struct device *dev; + refcount_t users; +}; + +struct iommu_user_data { + unsigned int type; + void *uptr; + size_t len; +}; + +struct iommu_user_data_array { + unsigned int type; + void *uptr; + size_t entry_len; + u32 entry_num; +}; + +struct iommufd_ioas; + +struct iommufd_ctx { + struct file *file; + struct xarray objects; + struct xarray groups; + wait_queue_head_t destroy_wait; + struct rw_semaphore ioas_creation_lock; + u8 account_mode; + u8 no_iommu_mode; + struct iommufd_ioas *vfio_ioas; +}; + +struct iommufd_object { + refcount_t shortterm_users; + refcount_t users; + enum iommufd_object_type type; + unsigned int id; +}; + +struct iommufd_fault { + struct iommufd_object obj; + struct iommufd_ctx *ictx; + struct file *filep; + spinlock_t lock; + struct list_head deliver; + struct mutex mutex; + struct xarray response; + struct wait_queue_head wait_queue; +}; + +struct iommufd_hw_pagetable { + struct iommufd_object obj; + struct iommu_domain *domain; + struct iommufd_fault *fault; +}; + +struct iommufd_hwpt_paging { + struct iommufd_hw_pagetable common; + struct iommufd_ioas *ioas; + bool auto_domain: 1; + bool enforce_cache_coherency: 1; + bool msi_cookie: 1; + bool nest_parent: 1; + struct list_head hwpt_item; +}; + +struct iommufd_ioas { + struct iommufd_object obj; + struct io_pagetable iopt; + struct mutex mutex; + struct list_head hwpt_list; +}; + +struct iommufd_vdevice { + struct iommufd_object obj; + struct iommufd_ctx *ictx; + struct iommufd_viommu *viommu; + struct device *dev; + u64 id; +}; + +struct iommufd_viommu_ops; + +struct iommufd_viommu { + struct iommufd_object obj; + struct iommufd_ctx *ictx; + struct iommu_device *iommu_dev; + struct iommufd_hwpt_paging *hwpt; + const struct iommufd_viommu_ops *ops; + struct xarray vdevs; + unsigned int type; +}; + +struct iommufd_viommu_ops { + void (*destroy)(struct iommufd_viommu *); + struct iommu_domain * (*alloc_domain_nested)(struct iommufd_viommu *, u32, const struct iommu_user_data *); + int (*cache_invalidate)(struct iommufd_viommu *, struct iommu_user_data_array *); +}; + +struct iopf_fault { + struct iommu_fault fault; + struct list_head list; +}; + +struct iopf_group { + struct iopf_fault last_fault; + struct list_head faults; + size_t fault_count; + struct list_head pending_node; + struct work_struct work; + struct iommu_attach_handle *attach_handle; + struct iommu_fault_param *fault_param; + struct list_head node; + u32 cookie; +}; + +struct iopf_queue { + struct workqueue_struct *wq; + struct list_head devices; + struct mutex lock; +}; + +struct ioprio_blkcg { + struct blkcg_policy_data cpd; + enum prio_policy prio_policy; +}; + +struct ioremap_desc { + unsigned int flags; +}; + +struct iova_bitmap_map { + long unsigned int iova; + long unsigned int length; + long unsigned int pgshift; + long unsigned int pgoff; + long unsigned int npages; + struct page **pages; +}; + +struct iova_bitmap { + struct iova_bitmap_map mapped; + u8 *bitmap; + long unsigned int mapped_base_index; + long unsigned int mapped_total_index; + long unsigned int iova; + size_t length; +}; + +struct iova_magazine; + +struct iova_cpu_rcache { + spinlock_t lock; + struct iova_magazine *loaded; + struct iova_magazine *prev; +}; + +struct iova_fq_entry { + long unsigned int iova_pfn; + long unsigned int pages; + struct list_head freelist; + u64 counter; +}; + +struct iova_fq { + spinlock_t lock; + unsigned int head; + unsigned int tail; + unsigned int mod_mask; + struct iova_fq_entry entries[0]; +}; + +struct iova_magazine { + union { + long unsigned int size; + struct iova_magazine *next; + }; + long unsigned int pfns[127]; +}; + +struct iova_rcache { + spinlock_t lock; + unsigned int depot_size; + struct iova_magazine *depot; + struct iova_cpu_rcache *cpu_rcaches; + struct iova_domain *iovad; + struct delayed_work work; +}; + +struct ip6_flowlabel { + struct ip6_flowlabel *next; + __be32 label; + atomic_t users; + struct in6_addr dst; + struct ipv6_txoptions *opt; + long unsigned int linger; + struct callback_head rcu; + u8 share; + union { + struct pid *pid; + kuid_t uid; + } owner; + long unsigned int lastuse; + long unsigned int expires; + struct net *fl_net; +}; + +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 ipv6hdr; + +struct ip6_fraglist_iter { + struct ipv6hdr *tmp_hdr; + struct sk_buff *frag; + int offset; + unsigned int hlen; + __be32 frag_id; + u8 nexthdr; +}; + +struct ip6_mtuinfo { + struct sockaddr_in6 ip6m_addr; + __u32 ip6m_mtu; +}; + +struct ip6_ra_chain { + struct ip6_ra_chain *next; + struct sock *sk; + int sel; + void (*destructor)(struct sock *); +}; + +struct ip6_rt_info { + struct in6_addr daddr; + struct in6_addr saddr; + u_int32_t mark; +}; + +struct ip6_sf_list { + struct ip6_sf_list *sf_next; + struct in6_addr sf_addr; + long unsigned int sf_count[2]; + unsigned char sf_gsresp; + unsigned char sf_oldin; + unsigned char sf_crcount; + 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 ip_tunnel_encap { + u16 type; + u16 flags; + __be16 sport; + __be16 dport; +}; + +struct ip6_tnl { + struct ip6_tnl *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; + long unsigned int 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 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 ip6addrlbl_entry { + struct in6_addr prefix; + int prefixlen; + int ifindex; + int addrtype; + u32 label; + struct hlist_node list; + struct callback_head rcu; +}; + +struct ip6addrlbl_init_table { + const struct in6_addr *prefix; + int prefixlen; + u32 label; +}; + +struct ip6fl_iter_state { + struct seq_net_private p; + struct pid_namespace *pid_ns; + int bucket; +}; + +struct mr_table; + +struct ip6mr_result { + struct mr_table *mrt; +}; + +struct ip6rd_flowi { + struct flowi6 fl6; + struct in6_addr gateway; +}; + +struct ip_auth_hdr { + __u8 nexthdr; + __u8 hdrlen; + __be16 reserved; + __be32 spi; + __be32 seq_no; + __u8 auth_data[0]; +}; + +struct ip_beet_phdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 padlen; + __u8 reserved; +}; + +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 ip_ct_sctp { + enum sctp_conntrack state; + __be32 vtag[2]; + u8 init[2]; + u8 last_dir; + u8 flags; +}; + +struct ip_ct_tcp_state { + u_int32_t td_end; + u_int32_t td_maxend; + u_int32_t td_maxwin; + u_int32_t td_maxack; + u_int8_t td_scale; + u_int8_t flags; +}; + +struct ip_ct_tcp { + struct ip_ct_tcp_state seen[2]; + u_int8_t state; + u_int8_t last_dir; + u_int8_t retrans; + u_int8_t last_index; + u_int32_t last_seq; + u_int32_t last_ack; + u_int32_t last_end; + u_int16_t last_win; + u_int8_t last_wscale; + u_int8_t last_flags; +}; + +struct ip_esp_hdr { + __be32 spi; + __be32 seq_no; + __u8 enc_data[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 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; + long unsigned int sfcount[2]; + union { + struct ip_mc_list *next; + struct ip_mc_list *next_rcu; + }; + struct ip_mc_list *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; + long unsigned int mca_cstamp; + long unsigned int mca_tstamp; + struct callback_head rcu; +}; + +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 *next_rcu; + struct ip_mreqn multi; + unsigned int sfmode; + struct ip_sf_socklist *sflist; + struct callback_head rcu; +}; + +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 ip_ra_chain { + struct ip_ra_chain *next; + struct sock *sk; + union { + void (*destructor)(struct sock *); + struct sock *saved_sk; + }; + struct callback_head rcu; +}; + +struct kvec { + void *iov_base; + size_t iov_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 ip_rt_acct { + __u32 o_bytes; + __u32 o_packets; + __u32 i_bytes; + __u32 i_packets; +}; + +struct ip_rt_info { + __be32 daddr; + __be32 saddr; + u_int8_t tos; + u_int32_t mark; +}; + +struct ip_sf_list { + struct ip_sf_list *sf_next; + long unsigned int sf_count[2]; + __be32 sf_inaddr; + unsigned char sf_gsresp; + unsigned char sf_oldin; + unsigned char sf_crcount; +}; + +struct ip_sf_socklist { + unsigned int sl_max; + unsigned int sl_count; + struct callback_head rcu; + __be32 sl_addr[0]; +}; + +struct ip_tunnel_parm_kern { + char name[16]; + long unsigned int i_flags[1]; + long unsigned int o_flags[1]; + __be32 i_key; + __be32 o_key; + int link; + struct iphdr iph; +}; + +struct ip_tunnel_6rd_parm { + struct in6_addr prefix; + __be32 relay_prefix; + u16 prefixlen; + u16 relay_prefixlen; +}; + +struct ip_tunnel_fan { + struct list_head fan_maps; +}; + +struct ip_tunnel_prl_entry; + +struct ip_tunnel { + struct ip_tunnel *next; + struct hlist_node hash_node; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct net *net; + long unsigned int 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_kern parms; + int mlink; + int encap_hlen; + int hlen; + struct ip_tunnel_encap encap; + struct ip_tunnel_6rd_parm ip6rd; + struct ip_tunnel_prl_entry *prl; + unsigned int prl_count; + struct ip_tunnel_fan fan; + unsigned int ip_tnl_net_id; + struct gro_cells gro_cells; + __u32 fwmark; + bool collect_md; + bool ignore_df; +}; + +struct ip_tunnel_encap_ops { + size_t (*encap_hlen)(struct ip_tunnel_encap *); + int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *); + int (*err_handler)(struct sk_buff *, u32); +}; + +struct ip_tunnel_key { + __be64 tun_id; + union { + struct { + __be32 src; + __be32 dst; + } ipv4; + struct { + struct in6_addr src; + struct in6_addr dst; + } ipv6; + } u; + long unsigned int tun_flags[1]; + __be32 label; + u32 nhid; + u8 tos; + u8 ttl; + __be16 tp_src; + __be16 tp_dst; + __u8 flow_flags; +}; + +struct ip_tunnel_info { + struct ip_tunnel_key key; + struct ip_tunnel_encap encap; + struct dst_cache dst_cache; + u8 options_len; + u8 mode; +}; + +struct ip_tunnel_prl_entry { + struct ip_tunnel_prl_entry *next; + __be32 addr; + u16 flags; + struct callback_head callback_head; +}; + +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]; + short unsigned int seq; + short unsigned int __pad2; + __kernel_ulong_t __unused1; + __kernel_ulong_t __unused2; +}; + +struct ipc_ids { + int in_use; + short unsigned int seq; + struct rw_semaphore rwsem; + struct idr ipcs_idr; + int max_idx; + int last_idx; + int next_id; + 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; + long unsigned int shm_tot; + int shm_ctlmni; + int shm_rmid_forced; + struct notifier_block ipcns_nb; + struct vfsmount *mq_mnt; + unsigned int mq_queues_count; + unsigned int mq_queues_max; + unsigned int mq_msg_max; + unsigned int mq_msgsize_max; + unsigned int mq_msg_default; + unsigned int mq_msgsize_default; + struct ctl_table_set mq_set; + struct ctl_table_header *mq_sysctls; + struct ctl_table_set ipc_set; + struct ctl_table_header *ipc_sysctls; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct llist_node mnt_llist; + struct ns_common ns; +}; + +struct 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_params { + key_t key; + int flg; + union { + size_t size; + int nsems; + } u; +}; + +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; + short unsigned int seq; +}; + +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 ipc_security_struct { + u16 sclass; + u32 sid; +}; + +struct sockcm_cookie { + u64 transmit_time; + u32 mark; + u32 tsflags; + u32 ts_opt_id; + u32 priority; +}; + +struct ipcm6_cookie { + struct sockcm_cookie sockc; + __s16 hlimit; + __s16 tclass; + __u16 gso_size; + __s8 dontfrag; + struct ipv6_txoptions *opt; +}; + +struct ipcm_cookie { + struct sockcm_cookie sockc; + __be32 addr; + int oif; + struct ip_options_rcu *opt; + __u8 protocol; + __u8 ttl; + __s16 tos; + __u16 gso_size; +}; + +struct ipe_bdev { + bool dm_verity_signed; + struct digest_info *root_hash; +}; + +struct ipe_inode; + +struct ipe_eval_ctx { + enum ipe_op_type op; + enum ipe_hook_type hook; + const struct file *file; + bool initramfs; + const struct ipe_bdev *ipe_bdev; + const struct inode *ino; + const struct ipe_inode *ipe_inode; +}; + +struct ipe_inode { + bool fs_verity_signed; +}; + +struct ipe_op_table { + struct list_head rules; + enum ipe_action_type default_action; +}; + +struct ipe_parsed_policy { + const char *name; + struct { + u16 major; + u16 minor; + u16 rev; + } version; + enum ipe_action_type global_default_action; + struct ipe_op_table rules[7]; +}; + +struct ipe_policy { + const char *pkcs7; + size_t pkcs7len; + const char *text; + size_t textlen; + struct ipe_parsed_policy *parsed; + struct dentry *policyfs; +}; + +struct ipe_prop { + struct list_head next; + enum ipe_prop_type type; + void *value; +}; + +struct ipe_rule { + enum ipe_op_type op; + enum ipe_action_type action; + struct list_head props; + struct list_head next; +}; + +struct ipe_superblock { + bool initramfs; +}; + +struct ipefs_file { + const char *name; + umode_t access; + const struct file_operations *fops; +}; + +struct ipfrag_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + }; + struct sk_buff *next_frag; + int frag_run_len; + int ip_defrag_offset; +}; + +struct ipmi_dmi_info { + enum si_type si_type; + unsigned int space; + long unsigned int addr; + u8 slave_addr; + struct ipmi_dmi_info *next; +}; + +struct ipmi_plat_data { + enum ipmi_plat_interface_type iftype; + unsigned int type; + unsigned int space; + long unsigned int addr; + unsigned int regspacing; + unsigned int regsize; + unsigned int regshift; + unsigned int irq; + unsigned int slave_addr; + enum ipmi_addr_src addr_source; +}; + +struct ipmr_result { + struct mr_table *mrt; +}; + +struct ipq { + struct inet_frag_queue q; + u8 ecn; + u16 max_df_size; + int iif; + unsigned int rid; + struct inet_peer *peer; +}; + +struct ipstats_mib { + u64 mibs[38]; + struct u64_stats_sync syncp; +}; + +struct ipv6_ac_socklist { + struct in6_addr acl_addr; + int acl_ifindex; + struct ipv6_ac_socklist *acl_next; +}; + +struct udp_table; + +struct ipv6_bpf_stub { + int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32); + struct sock * (*udp6_lib_lookup)(const struct net *, const struct in6_addr *, __be16, const struct in6_addr *, __be16, int, int, struct udp_table *, struct sk_buff *); + int (*ipv6_setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*ipv6_getsockopt)(struct sock *, int, int, sockptr_t, sockptr_t); + int (*ipv6_dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *); +}; + +struct ipv6_destopt_hao { + __u8 type; + __u8 length; + struct in6_addr addr; +} __attribute__((packed)); + +struct ipv6_fl_socklist { + struct ipv6_fl_socklist *next; + struct ip6_flowlabel *fl; + struct callback_head rcu; +}; + +struct ipv6_mc_socklist { + struct in6_addr addr; + int ifindex; + unsigned int sfmode; + struct ipv6_mc_socklist *next; + struct ip6_sf_socklist *sflist; + struct callback_head rcu; +}; + +struct ipv6_mreq { + struct in6_addr ipv6mr_multiaddr; + int ipv6mr_ifindex; +}; + +struct ipv6_params { + __s32 disable_ipv6; + __s32 autoconf; +}; + +struct ipv6_pinfo { + struct in6_addr saddr; + struct in6_pktinfo sticky_pktinfo; + const struct in6_addr *daddr_cache; + const struct in6_addr *saddr_cache; + __be32 flow_label; + __u32 frag_size; + s16 hop_limit; + u8 mcast_hops; + int ucast_oif; + int mcast_oif; + union { + struct { + __u16 srcrt: 1; + __u16 osrcrt: 1; + __u16 rxinfo: 1; + __u16 rxoinfo: 1; + __u16 rxhlim: 1; + __u16 rxohlim: 1; + __u16 hopopts: 1; + __u16 ohopopts: 1; + __u16 dstopts: 1; + __u16 odstopts: 1; + __u16 rxflow: 1; + __u16 rxtclass: 1; + __u16 rxpmtu: 1; + __u16 rxorigdstaddr: 1; + __u16 recvfragsize: 1; + } bits; + __u16 all; + } rxopt; + __u8 srcprefs; + __u8 pmtudisc; + __u8 min_hopcount; + __u8 tclass; + __be32 rcv_flowinfo; + __u32 dst_cookie; + struct ipv6_mc_socklist *ipv6_mc_list; + struct ipv6_ac_socklist *ipv6_ac_list; + struct ipv6_fl_socklist *ipv6_fl_list; + struct ipv6_txoptions *opt; + struct sk_buff *pktoptions; + struct sk_buff *rxpmtu; + struct inet6_cork cork; +}; + +struct ipv6_route_iter { + struct seq_net_private p; + struct fib6_walker w; + loff_t skip; + struct fib6_table *tbl; + int sernum; +}; + +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 ipv6_rt_hdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 type; + __u8 segments_left; +}; + +struct ipv6_saddr_dst { + const struct in6_addr *addr; + int ifindex; + int scope; + int label; + unsigned int prefs; +}; + +struct ipv6_saddr_score { + int rule; + int addr_type; + struct inet6_ifaddr *ifa; + long unsigned int scorebits[1]; + int scopedist; + int matchlen; +}; + +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 neigh_table; + +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); + void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool); + void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32); + int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *); + struct sk_buff * (*xfrm6_gro_udp_encap_rcv)(struct sock *, struct list_head *, struct sk_buff *); + int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int); + struct neigh_table *nd_tbl; + int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *)); + struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *); + int (*ip6_xmit)(const struct sock *, struct sk_buff *, struct flowi6 *, __u32, struct ipv6_txoptions *, int, u32); +}; + +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 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 ir_table { + struct irte *base; + long unsigned int *bitmap; +}; + +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 irq_affinity_desc { + struct cpumask mask; + unsigned int is_managed: 1; +}; + +struct irq_affinity_devres { + unsigned int count; + unsigned int irq[0]; +}; + +struct irq_affinity_notify { + unsigned int irq; + struct kref kref; + struct work_struct work; + void (*notify)(struct irq_affinity_notify *, const cpumask_t *); + void (*release)(struct kref *); +}; + +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 *); + long unsigned int flags; +}; + +struct irq_chip_regs { + long unsigned int enable; + long unsigned int disable; + long unsigned int mask; + long unsigned int ack; + long unsigned int eoi; + long unsigned int type; +}; + +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 wake_enabled; + u32 wake_active; + unsigned int num_ct; + void *private; + long unsigned int installed; + long unsigned int unused; + struct irq_domain *domain; + struct list_head list; + struct irq_chip_type chip_types[0]; +}; + +struct irq_common_data { + unsigned int state_use_accessors; + unsigned int node; + void *handler_data; + struct msi_desc *msi_desc; + cpumask_var_t affinity; + cpumask_var_t effective_affinity; +}; + +struct irq_data { + u32 mask; + unsigned int irq; + irq_hw_number_t hwirq; + struct irq_common_data *common; + struct irq_chip *chip; + struct irq_domain *domain; + struct irq_data *parent_data; + void *chip_data; +}; + +struct irqstat; + +struct irqaction; + +struct irq_desc { + struct irq_common_data irq_common_data; + struct irq_data irq_data; + struct irqstat *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; + long unsigned int 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; + long unsigned int threads_oneshot; + atomic_t threads_active; + wait_queue_head_t wait_for_threads; + unsigned int nr_actions; + unsigned int no_suspend_depth; + unsigned int cond_suspend_depth; + unsigned int force_resume_depth; + struct proc_dir_entry *dir; + struct callback_head rcu; + struct kobject kobj; + struct mutex request_mutex; + int parent_irq; + struct module *owner; + const char *name; + struct hlist_node resend_node; + long: 64; + long: 64; + long: 64; +}; + +typedef struct irq_desc *vector_irq_t[256]; + +struct irq_desc_devres { + unsigned int from; + unsigned int cnt; +}; + +struct irq_devres { + unsigned int irq; + void *dev_id; +}; + +struct irq_domain_chip_generic; + +struct msi_parent_ops; + +struct irq_domain { + struct list_head link; + const char *name; + const struct irq_domain_ops *ops; + void *host_data; + unsigned int flags; + unsigned int mapcount; + struct mutex mutex; + struct irq_domain *root; + struct fwnode_handle *fwnode; + enum irq_domain_bus_token bus_token; + struct irq_domain_chip_generic *gc; + struct device *dev; + struct device *pm_dev; + struct irq_domain *parent; + const struct msi_parent_ops *msi_parent_ops; + void (*exit)(struct irq_domain *); + irq_hw_number_t hwirq_max; + unsigned int revmap_size; + struct xarray revmap_tree; + struct irq_data *revmap[0]; +}; + +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; + void (*exit)(struct irq_chip_generic *); + struct irq_chip_generic *gc[0]; +}; + +struct irq_domain_chip_generic_info { + const char *name; + irq_flow_handler_t handler; + unsigned int irqs_per_chip; + unsigned int num_ct; + unsigned int irq_flags_to_clear; + unsigned int irq_flags_to_set; + enum irq_gc_flags gc_flags; + int (*init)(struct irq_chip_generic *); + void (*exit)(struct irq_chip_generic *); +}; + +struct irq_domain_info { + struct fwnode_handle *fwnode; + unsigned int domain_flags; + unsigned int size; + irq_hw_number_t hwirq_max; + int direct_max; + unsigned int hwirq_base; + unsigned int virq_base; + enum irq_domain_bus_token bus_token; + const char *name_suffix; + const struct irq_domain_ops *ops; + void *host_data; + struct irq_domain *parent; + struct irq_domain_chip_generic_info *dgc_info; + int (*init)(struct irq_domain *); + void (*exit)(struct irq_domain *); +}; + +struct irq_generic_chip_devres { + struct irq_chip_generic *gc; + u32 msk; + unsigned int clr; + unsigned int set; +}; + +struct irq_glue { + struct irq_affinity_notify notify; + struct cpu_rmap *rmap; + u16 index; +}; + +struct irq_info { + u8 bus; + u8 devfn; + struct { + u8 link; + u16 bitmap; + } __attribute__((packed)) irq[4]; + u8 slot; + u8 rfu; +}; + +struct irq_info___2 { + struct list_head list; + struct list_head eoi_list; + struct rcu_work rwork; + short int refcnt; + u8 spurious_cnt; + u8 is_accounted; + short int type; + u8 mask_reason; + u8 is_active; + unsigned int irq; + evtchn_port_t evtchn; + short unsigned int cpu; + short unsigned int eoi_cpu; + unsigned int irq_epoch; + u64 eoi_time; + raw_spinlock_t lock; + bool is_static; + union { + short unsigned int virq; + enum ipi_vector ipi; + struct { + short unsigned int pirq; + short unsigned int gsi; + unsigned char vector; + unsigned char flags; + uint16_t domid; + } pirq; + struct xenbus_device *interdomain; + } u; +}; + +struct irq_info___3 { + struct hlist_node node; + int irq; + spinlock_t lock; + struct list_head *head; +}; + +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 *maps; + long unsigned int *system_map; + long unsigned int scratch_map[0]; +}; + +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 irq_pin_list { + struct list_head list; + int apic; + int pin; +}; + +struct irq_remap_ops { + int capability; + int (*prepare)(void); + int (*enable)(void); + void (*disable)(void); + int (*reenable)(int); + int (*enable_faulting)(unsigned int); +}; + +struct irq_remap_table { + raw_spinlock_t lock; + unsigned int min_index; + u32 *table; +}; + +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 irq_routing_table { + u32 signature; + u16 version; + u16 size; + u8 rtr_bus; + u8 rtr_devfn; + u16 exclusive_irqs; + u16 rtr_vendor; + u16 rtr_device; + u32 miniport_data; + u8 rfu[11]; + u8 checksum; + struct irq_info slots[0]; +}; + +struct irq_sim_work_ctx; + +struct irq_sim_irq_ctx { + bool enabled; + struct irq_sim_work_ctx *work_ctx; +}; + +struct irq_sim_ops { + int (*irq_sim_irq_requested)(struct irq_domain *, irq_hw_number_t, void *); + void (*irq_sim_irq_released)(struct irq_domain *, irq_hw_number_t, void *); +}; + +struct irq_sim_work_ctx { + struct irq_work work; + unsigned int irq_count; + long unsigned int *pending; + struct irq_domain *domain; + struct irq_sim_ops ops; + void *user_data; +}; + +struct irq_stack { + char stack[16384]; +}; + +struct irqaction { + irq_handler_t handler; + void *dev_id; + void *percpu_dev_id; + struct irqaction *next; + irq_handler_t thread_fn; + struct task_struct *thread; + struct irqaction *secondary; + unsigned int irq; + unsigned int flags; + long unsigned int thread_flags; + long unsigned int thread_mask; + const char *name; + struct proc_dir_entry *dir; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct irqchip_fwid { + struct fwnode_handle fwnode; + unsigned int type; + char *name; + phys_addr_t *pa; +}; + +struct irqentry_state { + union { + bool exit_rcu; + bool lockdep; + }; +}; + +typedef struct irqentry_state irqentry_state_t; + +struct irqstat { + unsigned int cnt; +}; + +struct irt_routing_table { + u32 signature; + u8 size; + u8 used; + u16 exclusive_irqs; + struct irq_info slots[0]; +}; + +union irte___2 { + u32 val; + struct { + u32 valid: 1; + u32 no_fault: 1; + u32 int_type: 3; + u32 rq_eoi: 1; + u32 dm: 1; + u32 rsvd_1: 1; + u32 destination: 8; + u32 vector: 8; + u32 rsvd_2: 8; + } fields; +}; + +union irte_ga_lo { + u64 val; + struct { + u64 valid: 1; + u64 no_fault: 1; + u64 int_type: 3; + u64 rq_eoi: 1; + u64 dm: 1; + u64 guest_mode: 1; + u64 destination: 24; + u64 ga_tag: 32; + } fields_remap; + struct { + u64 valid: 1; + u64 no_fault: 1; + u64 ga_log_intr: 1; + u64 rsvd1: 3; + u64 is_run: 1; + u64 guest_mode: 1; + u64 destination: 24; + u64 ga_tag: 32; + } fields_vapic; +}; + +union irte_ga_hi { + u64 val; + struct { + u64 vector: 8; + u64 rsvd_1: 4; + u64 ga_root_ptr: 40; + u64 rsvd_2: 4; + u64 destination: 8; + } fields; +}; + +struct irte_ga { + union { + struct { + union irte_ga_lo lo; + union irte_ga_hi hi; + }; + u128 irte; + }; +}; + +struct isa_dev { + struct device dev; + struct device *next; + unsigned int id; +}; + +struct isa_driver { + int (*match)(struct device *, unsigned int); + int (*probe)(struct device *, unsigned int); + void (*remove)(struct device *, unsigned int); + void (*shutdown)(struct device *, unsigned int); + int (*suspend)(struct device *, unsigned int, pm_message_t); + int (*resume)(struct device *, unsigned int); + struct device_driver driver; + struct device *devices; +}; + +struct isoch_data { + u32 maxbw; + u32 n; + u32 y; + u32 l; + u32 rq; + struct agp_3_5_dev *dev; +}; + +struct itimerspec64 { + struct timespec64 it_interval; + struct timespec64 it_value; +}; + +struct ivhd_dte_flags { + struct list_head list; + u16 segid; + u16 devid_first; + u16 devid_last; + long: 64; + struct dev_table_entry dte; +}; + +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 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 ivmd_header { + u8 type; + u8 flags; + u16 length; + u16 devid; + u16 aux; + u16 pci_seg; + u8 resv[6]; + u64 range_start; + u64 range_length; +}; + +struct ivrs_quirk_entry { + u8 id; + u32 devid; +}; + +struct iw_discarded { + __u32 nwid; + __u32 code; + __u32 fragment; + __u32 retries; + __u32 misc; +}; + +struct iw_encode_ext { + __u32 ext_flags; + __u8 tx_seq[8]; + __u8 rx_seq[8]; + struct sockaddr addr; + __u16 alg; + __u16 key_len; + __u8 key[0]; +}; + +struct iw_point { + void *pointer; + __u16 length; + __u16 flags; +}; + +struct iw_param { + __s32 value; + __u8 fixed; + __u8 disabled; + __u16 flags; +}; + +struct iw_freq { + __s32 m; + __s16 e; + __u8 i; + __u8 flags; +}; + +struct iw_quality { + __u8 qual; + __u8 level; + __u8 noise; + __u8 updated; +}; + +union iwreq_data { + char name[16]; + struct iw_point essid; + struct iw_param nwid; + struct iw_freq freq; + struct iw_param sens; + struct iw_param bitrate; + struct iw_param txpower; + struct iw_param rts; + struct iw_param frag; + __u32 mode; + struct iw_param retry; + struct iw_point encoding; + struct iw_param power; + struct iw_quality qual; + struct sockaddr ap_addr; + struct sockaddr addr; + struct iw_param param; + struct iw_point data; +}; + +struct iw_event { + __u16 len; + __u16 cmd; + union iwreq_data u; +}; + +struct iw_request_info; + +typedef int (*iw_handler)(struct net_device *, struct iw_request_info *, union iwreq_data *, char *); + +struct iw_priv_args; + +struct iw_statistics; + +struct iw_handler_def { + const iw_handler *standard; + __u16 num_standard; + __u16 num_private; + __u16 num_private_args; + const iw_handler *private; + const struct iw_priv_args *private_args; + struct iw_statistics * (*get_wireless_stats)(struct net_device *); +}; + +struct iw_ioctl_description { + __u8 header_type; + __u8 flags; + __u16 token_size; + __u16 min_tokens; + __u16 max_tokens; +}; + +struct iw_missed { + __u32 beacon; +}; + +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 iw_node_attr { + struct kobj_attribute kobj_attr; + int nid; +}; + +struct iw_priv_args { + __u32 cmd; + __u16 set_args; + __u16 get_args; + char name[16]; +}; + +struct iw_request_info { + __u16 cmd; + __u16 flags; +}; + +struct iw_statistics { + __u16 status; + struct iw_quality qual; + struct iw_discarded discard; + struct iw_missed miss; +}; + +struct iwreq { + union { + char ifrn_name[16]; + } ifr_ifrn; + union iwreq_data u; +}; + +struct jailhouse_setup_data { + struct { + __u16 version; + __u16 compatible_version; + } hdr; + struct { + __u16 pm_timer_address; + __u16 num_cpus; + __u64 pci_mmconfig_base; + __u32 tsc_khz; + __u32 apic_khz; + __u8 standard_ioapic; + __u8 cpu_ids[255]; + } __attribute__((packed)) v1; + struct { + __u32 flags; + } v2; +}; + +struct transaction_s; + +typedef struct transaction_s transaction_t; + +struct jbd2_inode { + transaction_t *i_transaction; + transaction_t *i_next_transaction; + struct list_head i_list; + struct inode *i_vfs_inode; + long unsigned int i_flags; + loff_t i_dirty_start; + loff_t i_dirty_end; +}; + +struct jbd2_journal_block_tail { + __be32 t_checksum; +}; + +typedef struct journal_s journal_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; + long unsigned int h_start_jiffies; + unsigned int h_requested_credits; + unsigned int saved_alloc_context; +}; + +struct journal_header_s { + __be32 h_magic; + __be32 h_blocktype; + __be32 h_sequence; +}; + +typedef struct journal_header_s journal_header_t; + +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 jbd2_revoke_record_s { + struct list_head hash; + tid_t sequence; + long long unsigned int blocknr; +}; + +struct jbd2_revoke_table_s { + int hash_size; + int hash_shift; + struct list_head *hash_table; +}; + +struct transaction_stats_s; + +struct jbd2_stats_proc_session { + journal_t *journal; + struct transaction_stats_s *stats; + int start; + int max; +}; + +struct jit_context { + int cleanup_addr; + int tail_call_direct_label; + int tail_call_indirect_label; +}; + +struct rand_data; + +struct jitterentropy { + spinlock_t jent_lock; + struct rand_data *entropy_collector; + struct crypto_shash *tfm; + struct shash_desc *sdesc; +}; + +struct join_entry { + u32 token; + u32 remote_nonce; + u32 local_nonce; + u8 join_id; + u8 local_id; + u8 backup; + u8 valid; +}; + +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 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 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 transaction_run_stats_s { + long unsigned int rs_wait; + long unsigned int rs_request_delay; + long unsigned int rs_running; + long unsigned int rs_locked; + long unsigned int rs_flushing; + long unsigned int rs_logging; + __u32 rs_handle_count; + __u32 rs_blocks; + __u32 rs_blocks_logged; +}; + +struct transaction_stats_s { + long unsigned int ts_tid; + long unsigned int ts_requested; + struct transaction_run_stats_s run; +}; + +struct journal_superblock_s; + +typedef struct journal_superblock_s journal_superblock_t; + +struct journal_s { + long unsigned int j_flags; + int j_errno; + struct mutex j_abort_mutex; + struct buffer_head *j_sb_buffer; + journal_superblock_t *j_superblock; + rwlock_t j_state_lock; + int j_barrier_count; + struct mutex j_barrier; + transaction_t *j_running_transaction; + transaction_t *j_committing_transaction; + transaction_t *j_checkpoint_transactions; + wait_queue_head_t j_wait_transaction_locked; + wait_queue_head_t j_wait_done_commit; + wait_queue_head_t j_wait_commit; + wait_queue_head_t j_wait_updates; + wait_queue_head_t j_wait_reserved; + wait_queue_head_t j_fc_wait; + struct mutex j_checkpoint_mutex; + struct buffer_head *j_chkpt_bhs[64]; + struct shrinker *j_shrinker; + struct percpu_counter j_checkpoint_jh_count; + transaction_t *j_shrink_transaction; + long unsigned int j_head; + long unsigned int j_tail; + long unsigned int j_free; + long unsigned int j_first; + long unsigned int j_last; + long unsigned int j_fc_first; + long unsigned int j_fc_off; + long unsigned int j_fc_last; + struct block_device *j_dev; + int j_blocksize; + long long unsigned int j_blk_offset; + char j_devname[56]; + struct block_device *j_fs_dev; + errseq_t j_fs_dev_wb_err; + unsigned int j_total_len; + atomic_t j_reserved_credits; + spinlock_t j_list_lock; + struct inode *j_inode; + tid_t j_tail_sequence; + tid_t j_transaction_sequence; + tid_t j_commit_sequence; + tid_t j_commit_request; + __u8 j_uuid[16]; + struct task_struct *j_task; + int j_max_transaction_buffers; + int j_revoke_records_per_block; + int j_transaction_overhead_buffers; + long unsigned int 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; + __u32 j_csum_seed; + void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t); + int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t); + int (*j_bmap)(struct journal_s *, sector_t *); +}; + +struct journal_superblock_s { + journal_header_t s_header; + __be32 s_blocksize; + __be32 s_maxlen; + __be32 s_first; + __be32 s_sequence; + __be32 s_start; + __be32 s_errno; + __be32 s_feature_compat; + __be32 s_feature_incompat; + __be32 s_feature_ro_compat; + __u8 s_uuid[16]; + __be32 s_nr_users; + __be32 s_dynsuper; + __be32 s_max_transaction; + __be32 s_max_trans_data; + __u8 s_checksum_type; + __u8 s_padding2[3]; + __be32 s_num_fc_blks; + __be32 s_head; + __u32 s_padding[40]; + __be32 s_checksum; + __u8 s_users[768]; +}; + +struct jump_entry { + s32 code; + s32 target; + long int key; +}; + +struct jump_label_patch { + const void *code; + int size; +}; + +struct k_itimer; + +struct k_clock { + int (*clock_getres)(const clockid_t, struct timespec64 *); + int (*clock_set)(const clockid_t, const struct timespec64 *); + int (*clock_get_timespec)(const clockid_t, struct timespec64 *); + ktime_t (*clock_get_ktime)(const clockid_t); + int (*clock_adj)(const clockid_t, struct __kernel_timex *); + int (*timer_create)(struct k_itimer *); + int (*nsleep)(const clockid_t, int, const struct timespec64 *); + int (*timer_set)(struct k_itimer *, int, struct itimerspec64 *, struct itimerspec64 *); + int (*timer_del)(struct k_itimer *); + void (*timer_get)(struct k_itimer *, struct itimerspec64 *); + void (*timer_rearm)(struct k_itimer *); + s64 (*timer_forward)(struct k_itimer *, ktime_t); + ktime_t (*timer_remaining)(struct k_itimer *, ktime_t); + int (*timer_try_to_cancel)(struct k_itimer *); + void (*timer_arm)(struct k_itimer *, ktime_t, bool, bool); + void (*timer_wait_running)(struct k_itimer *); +}; + +struct kernel_siginfo { + struct { + int si_signo; + int si_errno; + int si_code; + union __sifields _sifields; + }; +}; + +struct sigqueue { + struct list_head list; + int flags; + kernel_siginfo_t info; + struct ucounts *ucounts; +}; + +struct signal_struct; + +struct k_itimer { + struct hlist_node list; + struct hlist_node ignored_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_status; + bool it_sig_periodic; + s64 it_overrun; + s64 it_overrun_last; + unsigned int it_signal_seq; + unsigned int it_sigqueue_seq; + int it_sigev_notify; + enum pid_type it_pid_type; + ktime_t it_interval; + struct signal_struct *it_signal; + union { + struct pid *it_pid; + struct task_struct *it_process; + }; + struct sigqueue sigq; + rcuref_t rcuref; + union { + struct { + struct hrtimer timer; + } real; + struct cpu_timer cpu; + struct { + struct alarm alarmtimer; + } alarm; + } it; + struct callback_head rcu; +}; + +typedef void __signalfn_t(int); + +typedef __signalfn_t *__sighandler_t; + +typedef void __restorefn_t(void); + +typedef __restorefn_t *__sigrestore_t; + +struct sigaction { + __sighandler_t sa_handler; + long unsigned int sa_flags; + __sigrestore_t sa_restorer; + sigset_t sa_mask; +}; + +struct k_sigaction { + struct sigaction sa; +}; + +struct kallsym_iter { + loff_t pos; + loff_t pos_mod_end; + loff_t pos_ftrace_mod_end; + loff_t pos_bpf_end; + long unsigned int value; + unsigned int nameoff; + char type; + char name[512]; + char module_name[56]; + int exported; + int show_value; +}; + +struct kallsyms_data { + long unsigned int *addrs; + const char **syms; + size_t cnt; + size_t found; +}; + +struct karatsuba_ctx { + struct karatsuba_ctx *next; + mpi_ptr_t tspace; + mpi_size_t tspace_size; + mpi_ptr_t tp; + mpi_size_t tp_size; +}; + +struct kaslr_memory_region { + long unsigned int *base; + long unsigned int *end; + long unsigned int size_tb; +}; + +struct led_classdev; + +struct led_hw_trigger_type; + +struct led_trigger { + const char *name; + int (*activate)(struct led_classdev *); + void (*deactivate)(struct led_classdev *); + enum led_brightness brightness; + 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 kbd_led_trigger { + struct led_trigger trigger; + unsigned int mask; +}; + +struct kbd_repeat { + int delay; + int period; +}; + +struct kbd_struct { + unsigned char lockstate; + unsigned char slockstate; + unsigned char ledmode: 1; + unsigned char ledflagstate: 4; + char: 3; + unsigned char default_ledflagstate: 4; + unsigned char kbdmode: 3; + int: 1; + unsigned char modeflags: 5; +}; + +struct kbdiacr { + unsigned char diacr; + unsigned char base; + unsigned char result; +}; + +struct kbdiacrs { + unsigned int kb_cnt; + struct kbdiacr kbdiacr[256]; +}; + +struct kbdiacruc { + unsigned int diacr; + unsigned int base; + unsigned int result; +}; + +struct kbdiacrsuc { + unsigned int kb_cnt; + struct kbdiacruc kbdiacruc[256]; +}; + +struct kbentry { + unsigned char kb_table; + unsigned char kb_index; + short unsigned int kb_value; +}; + +struct kbkeycode { + unsigned int scancode; + unsigned int keycode; +}; + +struct kbsentry { + unsigned char kb_func; + unsigned char kb_string[512]; +}; + +struct kcmp_epoll_slot { + __u32 efd; + __u32 tfd; + __u32 toff; +}; + +typedef void (*dm_kcopyd_notify_fn)(int, long unsigned int, void *); + +struct kcopyd_job { + struct dm_kcopyd_client *kc; + struct list_head list; + unsigned int flags; + int read_err; + long unsigned int 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 kcore_list { + struct list_head list; + long unsigned int addr; + size_t size; + int type; +}; + +struct kcsan_scoped_access {}; + +struct kdb_macro { + kdbtab_t cmd; + struct list_head statements; +}; + +struct kdb_macro_statement { + char *statement; + struct list_head list_node; +}; + +struct tcp6_ao_context { + struct in6_addr saddr; + struct in6_addr daddr; + __be16 sport; + __be16 dport; + __be32 sisn; + __be32 disn; +}; + +struct kdf_input_block { + u8 counter; + u8 label[6]; + struct tcp6_ao_context ctx; + __be16 outlen; +} __attribute__((packed)); + +struct tcp4_ao_context { + __be32 saddr; + __be32 daddr; + __be16 sport; + __be16 dport; + __be32 sisn; + __be32 disn; +}; + +struct kdf_input_block___2 { + u8 counter; + u8 label[6]; + struct tcp4_ao_context ctx; + __be16 outlen; +} __attribute__((packed)); + +struct kdf_testvec { + unsigned char *key; + size_t keylen; + unsigned char *ikm; + size_t ikmlen; + struct kvec info; + unsigned char *expected; + size_t expectedlen; +}; + +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; + long unsigned int seq; + void *security; + struct rhash_head khtnode; + struct callback_head rcu; + refcount_t refcount; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct kernel_clone_args { + u64 flags; + int *pidfd; + int *child_tid; + int *parent_tid; + const char *name; + int exit_signal; + u32 kthread: 1; + u32 io_thread: 1; + u32 user_worker: 1; + u32 no_files: 1; + long unsigned int stack; + long unsigned int stack_size; + long unsigned int tls; + pid_t *set_tid; + size_t set_tid_size; + int cgroup; + int idle; + int (*fn)(void *); + void *fn_arg; + struct cgroup *cgrp; + struct css_set *cset; + unsigned int kill_seq; +}; + +struct kernel_cpustat { + u64 cpustat[11]; +}; + +struct kernel_ethtool_ringparam { + u32 rx_buf_len; + u8 tcp_data_split; + u8 tx_push; + u8 rx_push; + u32 cqe_size; + u32 tx_push_buf_len; + u32 tx_push_buf_max_len; + u32 hds_thresh; + u32 hds_thresh_max; +}; + +struct kernel_ethtool_ts_info { + u32 cmd; + u32 so_timestamping; + int phc_index; + enum hwtstamp_provider_qualifier phc_qualifier; + enum hwtstamp_tx_types tx_types; + enum hwtstamp_rx_filters rx_filters; +}; + +struct kernel_hwtstamp_config { + int flags; + int tx_type; + int rx_filter; + struct ifreq *ifr; + bool copied_to_user; + enum hwtstamp_source source; + enum hwtstamp_provider_qualifier qualifier; +}; + +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 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 kernel_stat { + long unsigned int irqs_sum; + unsigned int softirqs[10]; +}; + +struct kernel_symbol { + int value_offset; + int name_offset; + int namespace_offset; +}; + +struct kernel_vm86_regs { + struct pt_regs pt; + short unsigned int es; + short unsigned int __esh; + short unsigned int ds; + short unsigned int __dsh; + short unsigned int fs; + short unsigned int __fsh; + short unsigned int gs; + short unsigned int __gsh; +}; + +struct kernfs_open_node; + +struct kernfs_elem_attr { + const struct kernfs_ops *ops; + struct kernfs_open_node *open; + loff_t size; + struct kernfs_node *notify_next; +}; + +struct kernfs_elem_dir { + long unsigned int subdirs; + struct rb_root children; + struct kernfs_root *root; + long unsigned int rev; +}; + +struct kernfs_elem_symlink { + struct kernfs_node *target_kn; +}; + +struct kernfs_global_locks { + struct mutex open_file_mutex[1024]; +}; + +struct simple_xattrs { + struct rb_root rb_root; + rwlock_t lock; +}; + +struct kernfs_iattrs { + kuid_t ia_uid; + kgid_t ia_gid; + struct timespec64 ia_atime; + struct timespec64 ia_mtime; + struct timespec64 ia_ctime; + struct simple_xattrs xattrs; + atomic_t nr_user_xattrs; + atomic_t user_xattr_size; +}; + +struct kernfs_node { + atomic_t count; + atomic_t active; + struct kernfs_node *parent; + const char *name; + struct rb_node rb; + const void *ns; + unsigned int hash; + short unsigned int flags; + umode_t mode; + union { + struct kernfs_elem_dir dir; + struct kernfs_elem_symlink symlink; + struct kernfs_elem_attr attr; + }; + u64 id; + void *priv; + struct kernfs_iattrs *iattr; + struct callback_head rcu; +}; + +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 kernfs_ops { + int (*open)(struct kernfs_open_file *); + void (*release)(struct kernfs_open_file *); + int (*seq_show)(struct seq_file *, void *); + void * (*seq_start)(struct seq_file *, loff_t *); + void * (*seq_next)(struct seq_file *, void *, loff_t *); + void (*seq_stop)(struct seq_file *, void *); + ssize_t (*read)(struct kernfs_open_file *, char *, size_t, loff_t); + size_t atomic_write_len; + bool prealloc; + ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t); + __poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *); + int (*mmap)(struct kernfs_open_file *, struct vm_area_struct *); + loff_t (*llseek)(struct kernfs_open_file *, loff_t, int); +}; + +struct kernfs_syscall_ops; + +struct kernfs_root { + struct kernfs_node *kn; + unsigned int flags; + struct idr ino_idr; + u32 last_id_lowbits; + u32 id_highbits; + struct kernfs_syscall_ops *syscall_ops; + struct list_head supers; + wait_queue_head_t deactivate_waitq; + struct rw_semaphore kernfs_rwsem; + struct rw_semaphore kernfs_iattr_rwsem; + struct rw_semaphore kernfs_supers_rwsem; + struct callback_head rcu; +}; + +struct kernfs_super_info { + struct super_block *sb; + struct kernfs_root *root; + const void *ns; + struct list_head node; +}; + +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 kimage; + +struct kexec_buf { + struct kimage *image; + void *buffer; + long unsigned int bufsz; + long unsigned int mem; + long unsigned int memsz; + long unsigned int buf_align; + long unsigned int buf_min; + long unsigned int buf_max; + bool top_down; +}; + +struct kexec_entry64_regs { + uint64_t rax; + uint64_t rcx; + uint64_t rdx; + uint64_t rbx; + uint64_t rsp; + uint64_t rbp; + uint64_t rsi; + uint64_t rdi; + uint64_t r8; + uint64_t r9; + uint64_t r10; + uint64_t r11; + uint64_t r12; + uint64_t r13; + uint64_t r14; + uint64_t r15; + uint64_t rip; +}; + +typedef int kexec_probe_t(const char *, long unsigned int); + +typedef void *kexec_load_t(struct kimage *, char *, long unsigned int, char *, long unsigned int, char *, long unsigned int); + +typedef int kexec_cleanup_t(void *); + +typedef int kexec_verify_sig_t(const char *, long unsigned int); + +struct kexec_file_ops { + kexec_probe_t *probe; + kexec_load_t *load; + kexec_cleanup_t *cleanup; + kexec_verify_sig_t *verify_sig; +}; + +struct kexec_load_limit { + struct mutex mutex; + int limit; +}; + +struct kexec_segment { + union { + void *buf; + void *kbuf; + }; + size_t bufsz; + long unsigned int mem; + size_t memsz; +}; + +struct kexec_sha_region { + long unsigned int start; + long unsigned int len; +}; + +struct key_type; + +struct key_tag; + +struct keyring_index_key { + long unsigned int hash; + union { + struct { + u16 desc_len; + char desc[6]; + }; + long unsigned int x; + }; + struct key_type *type; + struct key_tag *domain_tag; + const char *description; +}; + +union key_payload { + void *rcu_data0; + void *data[4]; +}; + +struct watch_list; + +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 watch_list *watchers; + 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; + short unsigned int quotalen; + short unsigned int datalen; + short int state; + long unsigned int flags; + union { + struct keyring_index_key index_key; + struct { + long unsigned int hash; + long unsigned int 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_match_data { + bool (*cmp)(const struct key *, const struct key_match_data *); + const void *raw_data; + void *preparsed; + unsigned int lookup_type; +}; + +struct watch_notification { + __u32 type: 24; + __u32 subtype: 8; + __u32 info; +}; + +struct key_notification { + struct watch_notification watch; + __u32 key_id; + __u32 aux; +}; + +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 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; +}; + +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; +}; + +struct key_security_struct { + u32 sid; +}; + +struct key_tag { + struct callback_head rcu; + refcount_t usage; + bool removed; +}; + +typedef int (*request_key_actor_t)(struct key *, void *); + +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 int (*read)(const struct key *, char *, size_t); + request_key_actor_t request_key; + struct key_restriction * (*lookup_restriction)(const char *); + int (*asym_query)(const struct kernel_pkey_params *, struct kernel_pkey_query *); + int (*asym_eds_op)(struct kernel_pkey_params *, const void *, void *); + int (*asym_verify_signature)(struct kernel_pkey_params *, const void *, const void *); + struct list_head link; + struct lock_class_key lock_class; +}; + +struct key_user { + struct rb_node node; + struct mutex cons_lock; + spinlock_t lock; + refcount_t usage; + atomic_t nkeys; + atomic_t nikeys; + kuid_t uid; + int qnkeys; + int qnbytes; +}; + +struct key_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 *tnode[0]; + }; + }; +}; + +struct keyboard_notifier_param { + struct vc_data *vc; + int down; + int shift; + int ledstate; + unsigned int value; +}; + +struct keyctl_dh_params { + union { + __s32 private; + __s32 priv; + }; + __s32 prime; + __s32 base; +}; + +struct keyctl_kdf_params { + char *hashname; + char *otherinfo; + __u32 otherinfolen; + __u32 __spare[8]; +}; + +struct keyctl_pkey_params { + __s32 key_id; + __u32 in_len; + union { + __u32 out_len; + __u32 in2_len; + }; + __u32 __spare[7]; +}; + +struct keyctl_pkey_query { + __u32 supported_ops; + __u32 key_size; + __u16 max_data_size; + __u16 max_sig_size; + __u16 max_enc_size; + __u16 max_dec_size; + __u32 __spare[10]; +}; + +struct keyring_read_iterator_context { + size_t buflen; + size_t count; + key_serial_t *buffer; +}; + +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 kfence_track { + pid_t pid; + int cpu; + u64 ts_nsec; + int num_stack_entries; + long unsigned int stack_entries[64]; +}; + +struct slabobj_ext { + struct obj_cgroup *objcg; +}; + +struct kfence_metadata { + struct list_head list; + struct callback_head callback_head; + raw_spinlock_t lock; + enum kfence_object_state state; + long unsigned int addr; + size_t size; + struct kmem_cache *cache; + long unsigned int unprotected_page; + struct kfence_track alloc_track; + struct kfence_track free_track; + u32 alloc_stack_hash; + struct slabobj_ext obj_exts; +}; + +struct rcu_gp_oldstate { + long unsigned int rgos_norm; + long unsigned int rgos_exp; +}; + +struct kfree_rcu_cpu; + +struct kfree_rcu_cpu_work { + struct rcu_work rcu_work; + struct callback_head *head_free; + struct rcu_gp_oldstate head_free_gp_snap; + struct list_head bulk_head_free[2]; + struct kfree_rcu_cpu *krcp; +}; + +struct kfree_rcu_cpu { + struct callback_head *head; + long unsigned int 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 kgdb_arch { + unsigned char gdb_bpt_instr[1]; + long unsigned int flags; + int (*set_breakpoint)(long unsigned int, char *); + int (*remove_breakpoint)(long unsigned int, char *); + int (*set_hw_breakpoint)(long unsigned int, int, enum kgdb_bptype); + int (*remove_hw_breakpoint)(long unsigned int, int, enum kgdb_bptype); + void (*disable_hw_break)(struct pt_regs *); + void (*remove_all_hw_break)(void); + void (*correct_hw_break)(void); + void (*enable_nmi)(bool); +}; + +struct kgdb_bkpt { + long unsigned int bpt_addr; + unsigned char saved_instr[1]; + enum kgdb_bptype type; + enum kgdb_bpstate state; +}; + +struct kgdb_io { + const char *name; + int (*read_char)(void); + void (*write_char)(u8); + void (*flush)(void); + int (*init)(void); + void (*deinit)(void); + void (*pre_exception)(void); + void (*post_exception)(void); + struct console *cons; +}; + +struct kgdb_nmi_tty_priv { + struct tty_port port; + struct timer_list timer; + struct { + union { + struct __kfifo kfifo; + char *type; + const char *const_type; + char (*rectype)[0]; + char *ptr; + const char *ptr_const; + }; + char buf[16]; + } fifo; +}; + +struct kgdb_state { + int ex_vector; + int signo; + int err_code; + int cpu; + int pass_exception; + long unsigned int thr_query; + long unsigned int threadid; + long int kgdb_usethreadid; + struct pt_regs *linux_regs; + atomic_t *send_ready; +}; + +struct mm_slot { + struct hlist_node hash; + struct list_head mm_node; + struct mm_struct *mm; +}; + +struct khugepaged_mm_slot { + struct mm_slot slot; +}; + +struct khugepaged_scan { + struct list_head mm_head; + struct khugepaged_mm_slot *mm_slot; + long unsigned int address; +}; + +struct kimage_arch { + pgd_t *pgd; + p4d_t *p4d; + pud_t *pud; + pmd_t *pmd; + pte_t *pte; +}; + +struct purgatory_info { + const Elf64_Ehdr *ehdr; + Elf64_Shdr *sechdrs; + void *purgatory_buf; +}; + +struct kimage { + kimage_entry_t head; + kimage_entry_t *entry; + kimage_entry_t *last_entry; + long unsigned int start; + struct page *control_code_page; + struct page *swap_page; + void *vmcoreinfo_data_copy; + long unsigned int nr_segments; + struct kexec_segment segment[16]; + struct list_head control_pages; + struct list_head dest_pages; + struct list_head unusable_pages; + long unsigned int control_page; + unsigned int type: 1; + unsigned int preserve_context: 1; + unsigned int file_mode: 1; + unsigned int hotplug_support: 1; + struct kimage_arch arch; + void *kernel_buf; + long unsigned int kernel_buf_len; + void *initrd_buf; + long unsigned int initrd_buf_len; + char *cmdline_buf; + long unsigned int cmdline_buf_len; + const struct kexec_file_ops *fops; + void *image_loader_data; + struct purgatory_info purgatory_info; + int hp_action; + int elfcorehdr_index; + bool elfcorehdr_updated; + void *ima_buffer; + phys_addr_t ima_buffer_addr; + size_t ima_buffer_size; + void *elf_headers; + long unsigned int elf_headers_sz; + long unsigned int elf_load_addr; +}; + +struct kioctx_cpu; + +struct kioctx { + struct percpu_ref users; + atomic_t dead; + struct percpu_ref reqs; + long unsigned int user_id; + struct kioctx_cpu *cpu; + unsigned int req_batch; + unsigned int max_reqs; + unsigned int nr_events; + long unsigned int mmap_base; + long unsigned int mmap_size; + struct folio **ring_folios; + long int nr_pages; + struct rcu_work free_rwork; + struct ctx_rq_wait *rq_wait; + long: 64; + long: 64; + long: 64; + struct { + atomic_t reqs_available; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct { + spinlock_t ctx_lock; + struct list_head active_reqs; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct { + struct mutex ring_lock; + wait_queue_head_t wait; + long: 64; + }; + struct { + unsigned int tail; + unsigned int completed_events; + spinlock_t completion_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct folio *internal_folios[8]; + struct file *aio_ring_file; + unsigned int id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct kioctx_cpu { + unsigned int reqs_available; +}; + +struct kioctx_table { + struct callback_head rcu; + unsigned int nr; + struct kioctx *table[0]; +}; + +struct klist_waiter { + struct list_head list; + struct klist_node *node; + struct task_struct *process; + int woken; +}; + +struct klp_object; + +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_find_arg { + const char *name; + long unsigned int addr; + long unsigned int count; + long unsigned int pos; +}; + +struct klp_func { + const char *old_name; + void *new_func; + long unsigned int old_sympos; + void *old_func; + struct kobject kobj; + struct list_head node; + struct list_head stack_node; + long unsigned int old_size; + long unsigned int new_size; + bool nop; + bool patched; + bool transition; +}; + +struct klp_modinfo { + Elf64_Ehdr hdr; + Elf64_Shdr *sechdrs; + char *secstrings; + unsigned int symndx; +}; + +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_ops { + struct list_head node; + struct list_head func_stack; + struct ftrace_ops fops; +}; + +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_shadow { + struct hlist_node node; + struct callback_head callback_head; + void *obj; + long unsigned int id; + char data[0]; +}; + +struct klp_state { + long unsigned int id; + unsigned int version; + void *data; +}; + +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 kmalloc_info_struct { + const char *name[19]; + unsigned int size; +}; + +struct kmalloced_param { + struct list_head list; + char val[0]; +}; + +struct kmap_ctrl {}; + +typedef struct kmem_cache *kmem_buckets[14]; + +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 *cpu_slab; + slab_flags_t flags; + long unsigned int 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; + long unsigned int random; + unsigned int remote_node_defrag_ratio; + unsigned int *random_seq; + unsigned int useroffset; + unsigned int usersize; + struct kmem_cache_node *node[1024]; +}; + +struct kmem_cache_args { + unsigned int align; + unsigned int useroffset; + unsigned int usersize; + unsigned int freeptr_offset; + bool use_freeptr_offset; + void (*ctor)(void *); +}; + +struct kmem_cache_cpu { + union { + struct { + void **freelist; + long unsigned int tid; + }; + freelist_aba_t freelist_tid; + }; + struct slab *slab; + struct slab *partial; + local_lock_t lock; +}; + +union kmem_cache_iter_priv { + struct bpf_iter_kmem_cache it; + struct bpf_iter_kmem_cache_kern kit; +}; + +struct kmem_cache_node { + spinlock_t list_lock; + long unsigned int nr_partial; + struct list_head partial; + atomic_long_t nr_slabs; + atomic_long_t total_objects; + struct list_head full; +}; + +struct kmem_obj_info { + void *kp_ptr; + struct slab *kp_slab; + void *kp_objp; + long unsigned int kp_data_offset; + struct kmem_cache *kp_slab_cache; + void *kp_ret; + void *kp_stack[16]; + void *kp_free_stack[16]; +}; + +struct kmmio_fault_page; + +struct kmmio_probe; + +struct kmmio_context { + struct kmmio_fault_page *fpage; + struct kmmio_probe *probe; + long unsigned int saved_flags; + long unsigned int addr; + int active; +}; + +struct kmmio_delayed_release { + struct callback_head rcu; + struct kmmio_fault_page *release_list; +}; + +struct kmmio_fault_page { + struct list_head list; + struct kmmio_fault_page *release_next; + long unsigned int addr; + pteval_t old_presence; + bool armed; + int count; + bool scheduled_for_release; +}; + +typedef void (*kmmio_pre_handler_t)(struct kmmio_probe *, struct pt_regs *, long unsigned int); + +typedef void (*kmmio_post_handler_t)(struct kmmio_probe *, long unsigned int, struct pt_regs *); + +struct kmmio_probe { + struct list_head list; + long unsigned int addr; + long unsigned int len; + kmmio_pre_handler_t pre_handler; + kmmio_post_handler_t post_handler; + void *private; +}; + +struct kmsg_dump_detail { + enum kmsg_dump_reason reason; + const char *description; +}; + +struct kmsg_dump_iter { + u64 cur_seq; + u64 next_seq; +}; + +struct probe; + +struct kobj_map { + struct probe *probes[255]; + struct mutex *lock; +}; + +struct kobj_ns_type_operations { + enum kobj_ns_type type; + bool (*current_may_mount)(void); + void * (*grab_current_ns)(void); + const void * (*netlink_ns)(struct sock *); + const void * (*initial_ns)(void); + void (*drop_ns)(void *); +}; + +struct kparam_array { + unsigned int max; + unsigned int elemsize; + unsigned int *num; + const struct kernel_param_ops *ops; + void *elem; +}; + +struct kparam_string { + unsigned int maxlen; + char *string; +}; + +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_instance { + void (*free)(struct kpp_instance *); + union { + struct { + char head[48]; + struct crypto_instance base; + } s; + struct kpp_alg alg; + }; +}; + +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_secret { + short unsigned int type; + short unsigned int len; +}; + +typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *); + +typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, long unsigned int); + +struct kprobe { + struct hlist_node hlist; + struct list_head list; + long unsigned int 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 kprobe_blacklist_entry { + struct list_head list; + long unsigned int start_addr; + long unsigned int end_addr; +}; + +struct prev_kprobe { + struct kprobe *kp; + long unsigned int status; + long unsigned int old_flags; + long unsigned int saved_flags; +}; + +struct kprobe_ctlblk { + long unsigned int kprobe_status; + long unsigned int kprobe_old_flags; + long unsigned int kprobe_saved_flags; + struct prev_kprobe prev_kprobe; +}; + +struct kprobe_insn_cache { + struct mutex mutex; + void * (*alloc)(void); + void (*free)(void *); + const char *sym; + struct list_head pages; + size_t insn_size; + int nr_garbage; +}; + +struct kprobe_insn_page { + struct list_head list; + kprobe_opcode_t *insns; + struct kprobe_insn_cache *cache; + int nused; + int ngarbage; + char slot_used[0]; +}; + +struct kprobe_trace_entry_head { + struct trace_entry ent; + long unsigned int ip; +}; + +struct kretprobe_instance; + +typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *); + +struct rethook; + +struct kretprobe { + struct kprobe kp; + kretprobe_handler_t handler; + kretprobe_handler_t entry_handler; + int maxactive; + int nmissed; + size_t data_size; + struct rethook *rh; +}; + +struct kretprobe_blackpoint { + const char *name; + void *addr; +}; + +struct rethook_node { + struct callback_head rcu; + struct llist_node llist; + struct rethook *rethook; + long unsigned int ret_addr; + long unsigned int frame; +}; + +struct kretprobe_instance { + struct rethook_node node; + char data[0]; +}; + +struct kretprobe_trace_entry_head { + struct trace_entry ent; + long unsigned int func; + long unsigned int ret_ip; +}; + +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 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 ksignal { + struct k_sigaction ka; + kernel_siginfo_t info; + int sig; +}; + +struct ksm_rmap_item; + +struct ksm_mm_slot { + struct mm_slot slot; + struct ksm_rmap_item *rmap_list; +}; + +struct ksm_stable_node; + +struct ksm_rmap_item { + struct ksm_rmap_item *rmap_list; + union { + struct anon_vma *anon_vma; + int nid; + }; + struct mm_struct *mm; + long unsigned int address; + unsigned int oldchecksum; + rmap_age_t age; + rmap_age_t remaining_skips; + union { + struct rb_node node; + struct { + struct ksm_stable_node *head; + struct hlist_node hlist; + }; + }; +}; + +struct ksm_scan { + struct ksm_mm_slot *mm_slot; + long unsigned int address; + struct ksm_rmap_item **rmap_list; + long unsigned int seqnr; +}; + +struct ksm_stable_node { + union { + struct rb_node node; + struct { + struct list_head *head; + struct { + struct hlist_node hlist_dup; + struct list_head list; + }; + }; + }; + struct hlist_head hlist; + union { + long unsigned int kpfn; + long unsigned int chain_prune_time; + }; + int rmap_hlist_len; + int nid; +}; + +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; + u64 change_cookie; + u64 subvol; + u32 dio_mem_align; + u32 dio_offset_align; + u32 dio_read_offset_align; + u32 atomic_write_unit_min; + u32 atomic_write_unit_max; + u32 atomic_write_segments_max; +}; + +struct kstatfs { + long int f_type; + long int f_bsize; + u64 f_blocks; + u64 f_bfree; + u64 f_bavail; + u64 f_files; + u64 f_ffree; + __kernel_fsid_t f_fsid; + long int f_namelen; + long int f_frsize; + long int f_flags; + long int f_spare[4]; +}; + +struct statmount { + __u32 size; + __u32 mnt_opts; + __u64 mask; + __u32 sb_dev_major; + __u32 sb_dev_minor; + __u64 sb_magic; + __u32 sb_flags; + __u32 fs_type; + __u64 mnt_id; + __u64 mnt_parent_id; + __u32 mnt_id_old; + __u32 mnt_parent_id_old; + __u64 mnt_attr; + __u64 mnt_propagation; + __u64 mnt_peer_group; + __u64 mnt_master; + __u64 propagate_from; + __u32 mnt_root; + __u32 mnt_point; + __u64 mnt_ns_id; + __u32 fs_subtype; + __u32 sb_source; + __u32 opt_num; + __u32 opt_array; + __u32 opt_sec_num; + __u32 opt_sec_array; + __u64 __spare2[46]; + char str[0]; +}; + +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 kstatmount { + struct statmount *buf; + size_t bufsize; + struct vfsmount *mnt; + u64 mask; + struct path root; + struct statmount sm; + struct seq_file seq; +}; + +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 kthread { + long unsigned int flags; + unsigned int cpu; + unsigned int node; + int started; + int result; + int (*threadfn)(void *); + void *data; + struct completion parked; + struct completion exited; + struct cgroup_subsys_state *blkcg_css; + char *full_name; + struct task_struct *task; + struct list_head hotplug_node; + struct cpumask *preferred_affinity; +}; + +struct kthread_create_info { + char *full_name; + int (*threadfn)(void *); + void *data; + int node; + struct task_struct *result; + struct completion *done; + struct list_head list; +}; + +struct kthread_delayed_work { + struct kthread_work work; + struct timer_list timer; +}; + +struct kthread_flush_work { + struct kthread_work work; + struct completion done; +}; + +struct kthread_worker { + unsigned int flags; + raw_spinlock_t lock; + struct list_head work_list; + struct list_head delayed_work_list; + struct task_struct *task; + struct kthread_work *current_work; +}; + +struct kvfree_rcu_bulk_data { + struct list_head list; + struct rcu_gp_oldstate gp_snap; + long unsigned int nr_records; + void *records[0]; +}; + +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_head { + struct srcu_struct track_srcu; + struct hlist_head track_notifier_list; +}; + +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 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 kvm_hv_syndbg hv_syndbg; + bool xsaves_xsavec_checked; +}; + +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; + long unsigned int poll_mask[64]; +}; + +struct once { + atomic_t state; + struct mutex lock; +}; + +struct kvm_mmu_memory_cache { + gfp_t gfp_zero; + gfp_t gfp_custom; + u64 init_value; + struct kmem_cache *kmem_cache; + int capacity; + int nobjs; + void **objects; +}; + +struct kvm_apic_map; + +struct kvm_x86_msr_filter; + +struct kvm_x86_pmu_event_filter; + +struct vhost_task; + +struct kvm_arch { + long unsigned int n_used_mmu_pages; + long unsigned int n_requested_mmu_pages; + long unsigned int n_max_mmu_pages; + unsigned int indirect_shadow_pages; + u8 mmu_valid_gen; + u8 vm_type; + bool has_private_mem; + bool has_protected_state; + bool pre_fault_allowed; + struct hlist_head mmu_page_hash[4096]; + struct list_head active_mmu_pages; + struct list_head possible_nx_huge_pages; + struct kvm_page_track_notifier_head track_notifier_head; + spinlock_t mmu_unsync_pages_lock; + u64 shadow_mmio_value; + 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 *apic_map; + atomic_t apic_map_dirty; + bool apic_access_memslot_enabled; + bool apic_access_memslot_inhibited; + struct rw_semaphore apicv_update_lock; + long unsigned int apicv_inhibit_reasons; + gpa_t wall_clock; + bool mwait_in_guest; + bool hlt_in_guest; + bool pause_in_guest; + bool cstate_in_guest; + long unsigned int irq_sources_bitmap; + s64 kvmclock_offset; + raw_spinlock_t tsc_write_lock; + u64 last_tsc_nsec; + u64 last_tsc_write; + u32 last_tsc_khz; + u64 last_tsc_offset; + u64 cur_tsc_nsec; + u64 cur_tsc_write; + u64 cur_tsc_offset; + u64 cur_tsc_generation; + int nr_vcpus_matched_tsc; + u32 default_tsc_khz; + bool user_set_tsc; + u64 apic_bus_cycle_ns; + 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 *msr_filter; + u32 hypercall_exit_enabled; + bool sgx_provisioning_allowed; + struct kvm_x86_pmu_event_filter *pmu_event_filter; + struct vhost_task *nx_huge_page_recovery_thread; + u64 nx_huge_page_last; + struct once nx_once; + atomic64_t tdp_mmu_pages; + struct list_head tdp_mmu_roots; + spinlock_t tdp_mmu_pages_lock; + bool shadow_root_allocated; + bool external_write_tracking_enabled; + hpa_t hv_root_tdp; + spinlock_t hv_root_tdp_lock; + struct hv_partition_assist_pg *hv_pa_pg; + 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; + gfn_t gfn_direct_bits; +}; + +struct kvm_io_bus; + +struct kvm_coalesced_mmio_ring; + +struct kvm_irq_routing_table; + +struct kvm_stat_data; + +struct kvm { + rwlock_t mmu_lock; + struct mutex slots_lock; + struct mutex slots_arch_lock; + struct mm_struct *mm; + long unsigned int nr_memslot_pages; + struct kvm_memslots __memslots[4]; + struct kvm_memslots *memslots[2]; + struct xarray vcpu_array; + atomic_t nr_memslots_dirty_logging; + spinlock_t mn_invalidate_lock; + long unsigned int 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 *buses[5]; + struct { + spinlock_t lock; + struct list_head items; + struct list_head resampler_list; + struct mutex resampler_lock; + } irqfds; + struct list_head ioeventfds; + struct kvm_vm_stat stat; + struct kvm_arch arch; + refcount_t users_count; + struct kvm_coalesced_mmio_ring *coalesced_mmio_ring; + spinlock_t ring_lock; + struct list_head coalesced_zones; + struct mutex irq_lock; + struct kvm_irq_routing_table *irq_routing; + struct hlist_head irq_ack_notifier_list; + struct mmu_notifier mmu_notifier; + long unsigned int mmu_invalidate_seq; + long int mmu_invalidate_in_progress; + gfn_t mmu_invalidate_range_start; + gfn_t 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; + struct notifier_block pm_notifier; + struct xarray mem_attr_array; + char stats_id[48]; +}; + +struct kvm_lapic; + +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 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]; + short unsigned int *gfn_write_track; +}; + +struct kvm_coalesced_mmio { + __u64 phys_addr; + __u32 len; + union { + __u32 pad; + __u32 pio; + }; + __u8 data[8]; +}; + +struct kvm_coalesced_mmio_ring { + __u32 first; + __u32 last; + struct kvm_coalesced_mmio coalesced_mmio[0]; +}; + +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; + unsigned int is_mirror: 1; + char: 4; + 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 kvm_cpuid_entry2 { + __u32 function; + __u32 index; + __u32 flags; + __u32 eax; + __u32 ebx; + __u32 ecx; + __u32 edx; + __u32 padding[3]; +}; + +struct kvm_debug_exit_arch { + __u32 exception; + __u32 pad; + __u64 pc; + __u64 dr6; + __u64 dr7; +}; + +struct kvm_dirty_gfn { + __u32 flags; + __u32 slot; + __u64 offset; +}; + +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_dtable { + __u64 base; + __u16 limit; + __u16 padding[3]; +}; + +struct kvm_enc_region { + __u64 addr; + __u64 size; +}; + +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_hypervisor_cpuid { + u32 base; + u32 limit; +}; + +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_irq_routing_table { + int chip[72]; + u32 nr_rt_entries; + struct hlist_head map[0]; +}; + +struct kvm_lpage_info { + int disallow_lpage; +}; + +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; + long unsigned int npages; + long unsigned int *dirty_bitmap; + struct kvm_arch_memory_slot arch; + long unsigned int userspace_addr; + u32 flags; + short int id; + u16 as_id; + struct { + struct file *file; + long unsigned int pgoff; + } gmem; +}; + +struct kvm_mmio_fragment { + gpa_t gpa; + void *data; + unsigned int len; +}; + +struct kvm_page_fault; + +struct x86_exception; + +struct kvm_mmu_page; + +struct kvm_mmu_root_info { + gpa_t pgd; + hpa_t hpa; +}; + +struct rsvd_bits_validate { + u64 rsvd_bits_mask[10]; + u64 bad_mt_xwr; +}; + +struct kvm_vcpu; + +struct kvm_mmu { + long unsigned int (*get_guest_pgd)(struct kvm_vcpu *); + u64 (*get_pdptr)(struct kvm_vcpu *, int); + int (*page_fault)(struct kvm_vcpu *, struct kvm_page_fault *); + void (*inject_page_fault)(struct kvm_vcpu *, struct x86_exception *); + gpa_t (*gva_to_gpa)(struct kvm_vcpu *, struct kvm_mmu *, gpa_t, u64, struct x86_exception *); + int (*sync_spte)(struct kvm_vcpu *, struct kvm_mmu_page *, int); + struct kvm_mmu_root_info root; + hpa_t mirror_root_hpa; + 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_mtrr { + u64 var[16]; + u64 fixed_64k; + u64 fixed_16k[2]; + u64 fixed_4k[8]; + u64 deftype; +}; + +struct kvm_vmx_nested_state_hdr { + __u64 vmxon_pa; + __u64 vmcs12_pa; + struct { + __u16 flags; + } smm; + __u16 pad; + __u32 flags; + __u64 preemption_timer_deadline; +}; + +struct kvm_svm_nested_state_hdr { + __u64 vmcb_pa; +}; + +struct kvm_vmx_nested_state_data { + __u8 vmcs12[4096]; + __u8 shadow_vmcs12[4096]; +}; + +struct kvm_svm_nested_state_data { + __u8 vmcb12[4096]; +}; + +struct kvm_nested_state { + __u16 flags; + __u16 format; + __u32 size; + union { + struct kvm_vmx_nested_state_hdr vmx; + struct kvm_svm_nested_state_hdr svm; + __u8 pad[120]; + } hdr; + union { + struct { + struct {} __empty_vmx; + struct kvm_vmx_nested_state_data vmx[0]; + }; + struct { + struct {} __empty_svm; + struct kvm_svm_nested_state_data svm[0]; + }; + } data; +}; + +struct kvm_pio_request { + long unsigned int linear_rip; + long unsigned int count; + int in; + int port; + int size; +}; + +struct kvm_pmc { + enum pmc_type type; + u8 idx; + bool is_paused; + bool intr; + u64 counter; + u64 emulated_counter; + u64 eventsel; + struct perf_event *perf_event; + struct kvm_vcpu *vcpu; + u64 current_config; +}; + +struct kvm_pmu { + u8 version; + unsigned int nr_arch_gp_counters; + unsigned int nr_arch_fixed_counters; + unsigned int available_event_types; + u64 fixed_ctr_ctrl; + u64 fixed_ctr_ctrl_rsvd; + u64 global_ctrl; + u64 global_status; + u64 counter_bitmask[2]; + u64 global_ctrl_rsvd; + u64 global_status_rsvd; + u64 reserved_bits; + u64 raw_event_mask; + struct kvm_pmc gp_counters[8]; + struct kvm_pmc fixed_counters[3]; + union { + long unsigned int reprogram_pmi[1]; + atomic64_t __reprogram_pmi; + }; + long unsigned int all_valid_pmc_idx[1]; + long unsigned int pmc_in_use[1]; + u64 ds_area; + u64 pebs_enable; + u64 pebs_enable_rsvd; + u64 pebs_data_cfg; + u64 pebs_data_cfg_rsvd; + u64 host_cross_mapped_mask; + bool need_cleanup; + u8 event_count; +}; + +struct kvm_queued_exception { + bool pending; + bool injected; + bool has_error_code; + u8 vector; + u32 error_code; + long unsigned int payload; + bool has_payload; +}; + +struct kvm_queued_interrupt { + bool injected; + bool soft; + u8 nr; +}; + +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_rmap_head { + long unsigned int val; +}; + +struct kvm_xen_exit { + __u32 type; + union { + struct { + __u32 longmode; + __u32 cpl; + __u64 input; + __u64 result; + __u64 params[6]; + } hcall; + } u; +}; + +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_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__unsafe; + __u8 padding1[6]; + __u32 exit_reason; + __u8 ready_for_interrupt_injection; + __u8 if_flag; + __u16 flags; + __u64 cr8; + __u64 apic_base; + union { + struct { + __u64 hardware_exit_reason; + } hw; + struct { + __u64 hardware_entry_failure_reason; + __u32 cpu; + } fail_entry; + struct { + __u32 exception; + __u32 error_code; + } ex; + struct { + __u8 direction; + __u8 size; + __u16 port; + __u32 count; + __u64 data_offset; + } io; + struct { + struct kvm_debug_exit_arch arch; + } debug; + struct { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } mmio; + struct { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } iocsr_io; + struct { + __u64 nr; + __u64 args[6]; + __u64 ret; + union { + __u64 flags; + }; + } hypercall; + struct { + __u64 rip; + __u32 is_write; + __u32 pad; + } tpr_access; + struct { + __u8 icptcode; + __u16 ipa; + __u32 ipb; + } s390_sieic; + __u64 s390_reset_flags; + struct { + __u64 trans_exc_code; + __u32 pgm_code; + } s390_ucontrol; + struct { + __u32 dcrn; + __u32 data; + __u8 is_write; + } dcr; + struct { + __u32 suberror; + __u32 ndata; + __u64 data[16]; + } internal; + struct { + __u32 suberror; + __u32 ndata; + __u64 flags; + union { + struct { + __u8 insn_size; + __u8 insn_bytes[15]; + }; + }; + } emulation_failure; + struct { + __u64 gprs[32]; + } osi; + struct { + __u64 nr; + __u64 ret; + __u64 args[9]; + } papr_hcall; + struct { + __u16 subchannel_id; + __u16 subchannel_nr; + __u32 io_int_parm; + __u32 io_int_word; + __u32 ipb; + __u8 dequeued; + } s390_tsch; + struct { + __u32 epr; + } epr; + struct { + __u32 type; + __u32 ndata; + union { + __u64 data[16]; + }; + } system_event; + struct { + __u64 addr; + __u8 ar; + __u8 reserved; + __u8 fc; + __u8 sel1; + __u16 sel2; + } s390_stsi; + struct { + __u8 vector; + } eoi; + struct kvm_hyperv_exit hyperv; + struct { + __u64 esr_iss; + __u64 fault_ipa; + } arm_nisv; + struct { + __u8 error; + __u8 pad[7]; + __u32 reason; + __u32 index; + __u64 data; + } msr; + struct kvm_xen_exit xen; + struct { + long unsigned int extension_id; + long unsigned int function_id; + long unsigned int args[6]; + long unsigned int ret[2]; + } riscv_sbi; + struct { + long unsigned int csr_num; + long unsigned int new_value; + long unsigned int write_mask; + long unsigned int ret_value; + } riscv_csr; + struct { + __u32 flags; + } notify; + struct { + __u64 flags; + __u64 gpa; + __u64 size; + } memory_fault; + char padding[256]; + }; + __u64 kvm_valid_regs; + __u64 kvm_dirty_regs; + union { + struct kvm_sync_regs regs; + char padding[2048]; + } s; +}; + +struct kvm_stat_data { + struct kvm *kvm; + const struct _kvm_stats_desc *desc; + enum kvm_stat_kind kind; +}; + +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; +}; + +struct preempt_ops; + +struct preempt_notifier { + struct hlist_node link; + struct preempt_ops *ops; +}; + +struct x86_emulate_ctxt; + +struct pvclock_vcpu_time_info { + u32 version; + u32 pad0; + u64 tsc_timestamp; + u64 system_time; + u32 tsc_to_system_mul; + s8 tsc_shift; + u8 flags; + u8 pad[2]; +}; + +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]; + long unsigned int 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_vcpu_hv; + +struct kvm_vcpu_arch { + long unsigned int regs[17]; + u32 regs_avail; + u32 regs_dirty; + long unsigned int cr0; + long unsigned int cr0_guest_owned_bits; + long unsigned int cr2; + long unsigned int cr3; + long unsigned int cr4; + long unsigned int cr4_guest_owned_bits; + long unsigned int cr4_guest_rsvd_bits; + long unsigned int cr8; + u32 host_pkru; + u32 pkru; + u32 hflags; + u64 efer; + u64 host_debugctl; + u64 apic_base; + struct kvm_lapic *apic; + bool load_eoi_exitmap_pending; + long unsigned int ioapic_handled_vectors[4]; + long unsigned int apic_attention; + int32_t apic_arb_prio; + int mp_state; + u64 ia32_misc_enable_msr; + u64 smbase; + u64 smi_count; + bool at_instruction_boundary; + bool tpr_access_reporting; + bool xfd_no_write_intercept; + u64 ia32_xss; + u64 microcode_version; + u64 arch_capabilities; + u64 perf_capabilities; + struct kvm_mmu *mmu; + struct kvm_mmu root_mmu; + struct kvm_mmu guest_mmu; + struct kvm_mmu nested_mmu; + struct kvm_mmu *walk_mmu; + struct kvm_mmu_memory_cache mmu_pte_list_desc_cache; + struct kvm_mmu_memory_cache mmu_shadow_page_cache; + struct kvm_mmu_memory_cache mmu_shadowed_info_cache; + struct kvm_mmu_memory_cache mmu_page_header_cache; + struct kvm_mmu_memory_cache mmu_external_spt_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; + bool is_amd_compatible; + u32 cpu_caps[28]; + 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; + long unsigned int db[4]; + long unsigned int dr6; + long unsigned int dr7; + long unsigned int eff_db[4]; + long unsigned int 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; + long unsigned int singlestep_rip; + bool hyperv_enabled; + struct kvm_vcpu_hv *hyperv; + struct kvm_vcpu_xen xen; + cpumask_var_t wbinvd_dirty_mask; + long unsigned int last_retry_eip; + long unsigned int 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; + 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; + hpa_t hv_root_tdp; +}; + +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_vcpu { + struct kvm *kvm; + struct preempt_notifier preempt_notifier; + int cpu; + int vcpu_id; + int vcpu_idx; + int ____srcu_idx; + int mode; + u64 requests; + long unsigned int guest_debug; + struct mutex mutex; + struct kvm_run *run; + struct rcuwait wait; + struct pid *pid; + rwlock_t pid_lock; + int sigset_active; + sigset_t sigset; + unsigned int halt_poll_ns; + bool valid_wakeup; + int mmio_needed; + int mmio_read_completed; + int mmio_is_write; + int mmio_cur_fragment; + int mmio_nr_fragments; + struct kvm_mmio_fragment mmio_fragments[2]; + struct { + u32 queued; + struct list_head queue; + struct list_head done; + spinlock_t lock; + } async_pf; + struct { + bool in_spin_loop; + bool dy_eligible; + } spin_loop; + bool wants_to_run; + bool preempted; + bool ready; + bool scheduled_out; + 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_vcpu_hv_synic { + u64 version; + u64 control; + u64 msg_page; + u64 evt_page; + atomic64_t sint[16]; + atomic_t sint_to_gsi[16]; + long unsigned int auto_eoi_bitmap[4]; + long unsigned int vec_bitmap[4]; + bool active; + bool dont_zero_synic_pages; +}; + +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 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]; + long unsigned int 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_vcpu_pv_apf_data { + __u32 flags; + __u32 token; + __u8 pad[56]; +}; + +struct msr_bitmap_range { + u32 flags; + u32 nmsrs; + u32 base; + long unsigned int *bitmap; +}; + +struct kvm_x86_msr_filter { + u8 count; + bool default_allow: 1; + struct msr_bitmap_range ranges[16]; +}; + +struct kvm_x86_nested_ops { + void (*leave_nested)(struct kvm_vcpu *); + bool (*is_exception_vmexit)(struct kvm_vcpu *, u8, u32); + int (*check_events)(struct kvm_vcpu *); + bool (*has_events)(struct kvm_vcpu *, bool); + void (*triple_fault)(struct kvm_vcpu *); + int (*get_state)(struct kvm_vcpu *, struct kvm_nested_state *, unsigned int); + int (*set_state)(struct kvm_vcpu *, struct kvm_nested_state *, struct kvm_nested_state *); + bool (*get_nested_state_pages)(struct kvm_vcpu *); + int (*write_log_dirty)(struct kvm_vcpu *, gpa_t); + int (*enable_evmcs)(struct kvm_vcpu *, uint16_t *); + uint16_t (*get_evmcs_version)(struct kvm_vcpu *); + void (*hv_inject_synthetic_vmexit_post_tlb_flush)(struct kvm_vcpu *); +}; + +typedef void cpu_emergency_virt_cb(void); + +struct x86_instruction_info; + +union kvm_smram; + +struct msr_data; + +struct kvm_x86_ops { + const char *name; + int (*check_processor_compatibility)(void); + int (*enable_virtualization_cpu)(void); + void (*disable_virtualization_cpu)(void); + cpu_emergency_virt_cb *emergency_disable_virtualization_cpu; + void (*hardware_unsetup)(void); + bool (*has_emulated_msr)(struct kvm *, u32); + void (*vcpu_after_set_cpuid)(struct kvm_vcpu *); + unsigned int vm_size; + int (*vm_init)(struct kvm *); + void (*vm_destroy)(struct kvm *); + int (*vcpu_precreate)(struct kvm *); + int (*vcpu_create)(struct kvm_vcpu *); + void (*vcpu_free)(struct kvm_vcpu *); + void (*vcpu_reset)(struct kvm_vcpu *, bool); + void (*prepare_switch_to_guest)(struct kvm_vcpu *); + void (*vcpu_load)(struct kvm_vcpu *, int); + void (*vcpu_put)(struct kvm_vcpu *); + void (*update_exception_bitmap)(struct kvm_vcpu *); + int (*get_msr)(struct kvm_vcpu *, struct msr_data *); + int (*set_msr)(struct kvm_vcpu *, struct msr_data *); + u64 (*get_segment_base)(struct kvm_vcpu *, int); + void (*get_segment)(struct kvm_vcpu *, struct kvm_segment *, int); + int (*get_cpl)(struct kvm_vcpu *); + int (*get_cpl_no_cache)(struct kvm_vcpu *); + void (*set_segment)(struct kvm_vcpu *, struct kvm_segment *, int); + void (*get_cs_db_l_bits)(struct kvm_vcpu *, int *, int *); + bool (*is_valid_cr0)(struct kvm_vcpu *, long unsigned int); + void (*set_cr0)(struct kvm_vcpu *, long unsigned int); + void (*post_set_cr3)(struct kvm_vcpu *, long unsigned int); + bool (*is_valid_cr4)(struct kvm_vcpu *, long unsigned int); + void (*set_cr4)(struct kvm_vcpu *, long unsigned int); + int (*set_efer)(struct kvm_vcpu *, u64); + void (*get_idt)(struct kvm_vcpu *, struct desc_ptr *); + void (*set_idt)(struct kvm_vcpu *, struct desc_ptr *); + void (*get_gdt)(struct kvm_vcpu *, struct desc_ptr *); + void (*set_gdt)(struct kvm_vcpu *, struct desc_ptr *); + void (*sync_dirty_debug_regs)(struct kvm_vcpu *); + void (*set_dr6)(struct kvm_vcpu *, long unsigned int); + void (*set_dr7)(struct kvm_vcpu *, long unsigned int); + void (*cache_reg)(struct kvm_vcpu *, enum kvm_reg); + long unsigned int (*get_rflags)(struct kvm_vcpu *); + void (*set_rflags)(struct kvm_vcpu *, long unsigned int); + bool (*get_if_flag)(struct kvm_vcpu *); + void (*flush_tlb_all)(struct kvm_vcpu *); + void (*flush_tlb_current)(struct kvm_vcpu *); + int (*flush_remote_tlbs)(struct kvm *); + int (*flush_remote_tlbs_range)(struct kvm *, gfn_t, gfn_t); + void (*flush_tlb_gva)(struct kvm_vcpu *, gva_t); + void (*flush_tlb_guest)(struct kvm_vcpu *); + int (*vcpu_pre_run)(struct kvm_vcpu *); + enum exit_fastpath_completion (*vcpu_run)(struct kvm_vcpu *, bool); + int (*handle_exit)(struct kvm_vcpu *, enum exit_fastpath_completion); + int (*skip_emulated_instruction)(struct kvm_vcpu *); + void (*update_emulated_instruction)(struct kvm_vcpu *); + void (*set_interrupt_shadow)(struct kvm_vcpu *, int); + u32 (*get_interrupt_shadow)(struct kvm_vcpu *); + void (*patch_hypercall)(struct kvm_vcpu *, unsigned char *); + void (*inject_irq)(struct kvm_vcpu *, bool); + void (*inject_nmi)(struct kvm_vcpu *); + void (*inject_exception)(struct kvm_vcpu *); + void (*cancel_injection)(struct kvm_vcpu *); + int (*interrupt_allowed)(struct kvm_vcpu *, bool); + int (*nmi_allowed)(struct kvm_vcpu *, bool); + bool (*get_nmi_mask)(struct kvm_vcpu *); + void (*set_nmi_mask)(struct kvm_vcpu *, bool); + bool (*is_vnmi_pending)(struct kvm_vcpu *); + bool (*set_vnmi_pending)(struct kvm_vcpu *); + void (*enable_nmi_window)(struct kvm_vcpu *); + void (*enable_irq_window)(struct kvm_vcpu *); + void (*update_cr8_intercept)(struct kvm_vcpu *, int, int); + const bool x2apic_icr_is_split; + const long unsigned int required_apicv_inhibits; + bool allow_apicv_in_x2apic_without_x2apic_virtualization; + void (*refresh_apicv_exec_ctrl)(struct kvm_vcpu *); + void (*hwapic_isr_update)(struct kvm_vcpu *, int); + void (*load_eoi_exitmap)(struct kvm_vcpu *, u64 *); + void (*set_virtual_apic_mode)(struct kvm_vcpu *); + void (*set_apic_access_page_addr)(struct kvm_vcpu *); + void (*deliver_interrupt)(struct kvm_lapic *, int, int, int); + int (*sync_pir_to_irr)(struct kvm_vcpu *); + int (*set_tss_addr)(struct kvm *, unsigned int); + int (*set_identity_map_addr)(struct kvm *, u64); + u8 (*get_mt_mask)(struct kvm_vcpu *, gfn_t, bool); + void (*load_mmu_pgd)(struct kvm_vcpu *, hpa_t, int); + int (*link_external_spt)(struct kvm *, gfn_t, enum pg_level, void *); + int (*set_external_spte)(struct kvm *, gfn_t, enum pg_level, kvm_pfn_t); + int (*free_external_spt)(struct kvm *, gfn_t, enum pg_level, void *); + int (*remove_external_spte)(struct kvm *, gfn_t, enum pg_level, kvm_pfn_t); + bool (*has_wbinvd_exit)(void); + u64 (*get_l2_tsc_offset)(struct kvm_vcpu *); + u64 (*get_l2_tsc_multiplier)(struct kvm_vcpu *); + void (*write_tsc_offset)(struct kvm_vcpu *); + void (*write_tsc_multiplier)(struct kvm_vcpu *); + void (*get_exit_info)(struct kvm_vcpu *, u32 *, u64 *, u64 *, u32 *, u32 *); + void (*get_entry_info)(struct kvm_vcpu *, u32 *, u32 *); + int (*check_intercept)(struct kvm_vcpu *, struct x86_instruction_info *, enum x86_intercept_stage, struct x86_exception *); + void (*handle_exit_irqoff)(struct kvm_vcpu *); + int cpu_dirty_log_size; + void (*update_cpu_dirty_logging)(struct kvm_vcpu *); + const struct kvm_x86_nested_ops *nested_ops; + void (*vcpu_blocking)(struct kvm_vcpu *); + void (*vcpu_unblocking)(struct kvm_vcpu *); + int (*pi_update_irte)(struct kvm *, unsigned int, uint32_t, bool); + void (*pi_start_assignment)(struct kvm *); + void (*apicv_pre_state_restore)(struct kvm_vcpu *); + void (*apicv_post_state_restore)(struct kvm_vcpu *); + bool (*dy_apicv_has_pending_interrupt)(struct kvm_vcpu *); + int (*set_hv_timer)(struct kvm_vcpu *, u64, bool *); + void (*cancel_hv_timer)(struct kvm_vcpu *); + void (*setup_mce)(struct kvm_vcpu *); + int (*smi_allowed)(struct kvm_vcpu *, bool); + int (*enter_smm)(struct kvm_vcpu *, union kvm_smram *); + int (*leave_smm)(struct kvm_vcpu *, const union kvm_smram *); + void (*enable_smi_window)(struct kvm_vcpu *); + int (*dev_get_attr)(u32, u64, u64 *); + int (*mem_enc_ioctl)(struct kvm *, void *); + int (*mem_enc_register_region)(struct kvm *, struct kvm_enc_region *); + int (*mem_enc_unregister_region)(struct kvm *, struct kvm_enc_region *); + int (*vm_copy_enc_context_from)(struct kvm *, unsigned int); + int (*vm_move_enc_context_from)(struct kvm *, unsigned int); + void (*guest_memory_reclaimed)(struct kvm *); + int (*get_feature_msr)(u32, u64 *); + int (*check_emulate_instruction)(struct kvm_vcpu *, int, void *, int); + bool (*apic_init_signal_blocked)(struct kvm_vcpu *); + int (*enable_l2_tlb_flush)(struct kvm_vcpu *); + void (*migrate_timers)(struct kvm_vcpu *); + void (*msr_filter_changed)(struct kvm_vcpu *); + int (*complete_emulated_msr)(struct kvm_vcpu *, int); + void (*vcpu_deliver_sipi_vector)(struct kvm_vcpu *, u8); + long unsigned int (*vcpu_get_apicv_inhibit_reasons)(struct kvm_vcpu *); + gva_t (*get_untagged_addr)(struct kvm_vcpu *, gva_t, unsigned int); + void * (*alloc_apic_backing_page)(struct kvm_vcpu *); + int (*gmem_prepare)(struct kvm *, kvm_pfn_t, gfn_t, int); + void (*gmem_invalidate)(kvm_pfn_t, kvm_pfn_t); + int (*private_max_mapping_level)(struct kvm *, kvm_pfn_t); +}; + +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]; +}; + +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; +}; + +typedef int (*lookup_by_table_id_t)(struct net *, u32); + +struct l3mdev_handler { + lookup_by_table_id_t dev_lookup; +}; + +struct l3mdev_ops { + u32 (*l3mdev_fib_table)(const struct net_device *); + struct sk_buff * (*l3mdev_l3_rcv)(struct net_device *, struct sk_buff *, u16); + struct sk_buff * (*l3mdev_l3_out)(struct net_device *, struct sock *, struct sk_buff *, u16); + struct dst_entry * (*l3mdev_link_scope_lookup)(const struct net_device *, struct flowi6 *); +}; + +struct label_it { + int i; + int j; +}; + +struct ladder_device_state { + struct { + u32 promotion_count; + u32 demotion_count; + u64 promotion_time_ns; + u64 demotion_time_ns; + } threshold; + struct { + int promotion_count; + int demotion_count; + } stats; +}; + +struct ladder_device { + struct ladder_device_state states[10]; +}; + +struct landlock_ruleset; + +struct landlock_cred_security { + struct landlock_ruleset *domain; +}; + +struct landlock_erratum { + const int abi; + const u8 number; +}; + +struct landlock_file_security { + access_mask_t allowed_access; + struct landlock_ruleset *fown_domain; +}; + +struct landlock_hierarchy { + struct landlock_hierarchy *parent; + refcount_t usage; +}; + +struct landlock_object; + +union landlock_key { + struct landlock_object *object; + uintptr_t data; +}; + +struct landlock_id { + union landlock_key key; + const enum landlock_key_type type; +}; + +struct landlock_inode_security { + struct landlock_object *object; +}; + +struct landlock_layer { + u16 level; + access_mask_t access; +}; + +struct landlock_net_port_attr { + __u64 allowed_access; + __u64 port; +}; + +struct landlock_object_underops; + +struct landlock_object { + refcount_t usage; + spinlock_t lock; + void *underobj; + union { + struct callback_head rcu_free; + const struct landlock_object_underops *underops; + }; +}; + +struct landlock_object_underops { + void (*release)(struct landlock_object * const); +}; + +struct landlock_path_beneath_attr { + __u64 allowed_access; + __s32 parent_fd; +} __attribute__((packed)); + +struct landlock_rule { + struct rb_node node; + union landlock_key key; + u32 num_layers; + struct landlock_layer layers[0]; +}; + +struct landlock_ruleset { + struct rb_root root_inode; + struct rb_root root_net_port; + struct landlock_hierarchy *hierarchy; + union { + struct work_struct work_free; + struct { + struct mutex lock; + refcount_t usage; + u32 num_rules; + u32 num_layers; + struct access_masks access_masks[0]; + }; + }; +}; + +struct landlock_ruleset_attr { + __u64 handled_access_fs; + __u64 handled_access_net; + __u64 scoped; +}; + +struct landlock_superblock_security { + atomic_long_t inode_refs; +}; + +struct latch_tree_ops { + bool (*less)(struct latch_tree_node *, struct latch_tree_node *); + int (*comp)(void *, struct latch_tree_node *); +}; + +struct latch_tree_root { + seqcount_latch_t seq; + struct rb_root tree[2]; +}; + +struct latched_seq { + seqcount_latch_t latch; + u64 val[2]; +}; + +struct lateeoi_work { + struct delayed_work delayed; + spinlock_t eoi_list_lock; + struct list_head eoi_list; +}; + +struct latency_record { + long unsigned int backtrace[12]; + unsigned int count; + long unsigned int time; + long unsigned int max; +}; + +struct sched_domain; + +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 int 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 ld_semaphore { + atomic_long_t count; + raw_spinlock_t wait_lock; + unsigned int wait_readers; + struct list_head read_wait; + struct list_head write_wait; +}; + +struct ldma_port; + +struct ldma_chan { + struct virt_dma_chan vchan; + struct ldma_port *port; + char name[8]; + int nr; + u32 flags; + enum ldma_chan_on_off onoff; + dma_addr_t desc_phys; + void *desc_base; + u32 desc_cnt; + int rst; + u32 hdrm_len; + bool hdrm_csum; + u32 boff_len; + u32 data_endian; + u32 desc_endian; + bool pden; + bool desc_rx_np; + bool data_endian_en; + bool desc_endian_en; + bool abc_en; + bool desc_init; + struct dma_pool *desc_pool; + u32 desc_num; + struct dw2_desc_sw *ds; + struct work_struct work; + struct dma_slave_config config; +}; + +struct ldma_inst_data; + +struct ldma_dev { + struct device *dev; + void *base; + struct reset_control *rst; + struct clk *core_clk; + struct dma_device dma_dev; + u32 ver; + int irq; + struct ldma_port *ports; + struct ldma_chan *chans; + spinlock_t dev_lock; + u32 chan_nrs; + u32 port_nrs; + u32 channels_mask; + u32 flags; + u32 pollcnt; + const struct ldma_inst_data *inst; + struct workqueue_struct *wq; +}; + +struct ldma_inst_data { + bool desc_in_sram; + bool chan_fc; + bool desc_fod; + bool valid_desc_fetch_ack; + u32 orrc; + const char *name; + u32 type; +}; + +struct ldma_port { + struct ldma_dev *ldev; + u32 portid; + u32 rxbl; + u32 txbl; + u32 rxendi; + u32 txendi; + u32 pkt_drop; +}; + +struct privhead { + u16 ver_major; + u16 ver_minor; + u64 logical_disk_start; + u64 logical_disk_size; + u64 config_start; + u64 config_size; + uuid_t disk_id; +}; + +struct tocblock { + u8 bitmap1_name[16]; + u64 bitmap1_start; + u64 bitmap1_size; + u8 bitmap2_name[16]; + u64 bitmap2_start; + u64 bitmap2_size; +}; + +struct vmdb { + u16 ver_major; + u16 ver_minor; + u32 vblk_size; + u32 vblk_offset; + u32 last_vblk_seq; +}; + +struct ldmdb { + struct privhead ph; + struct tocblock toc; + struct vmdb vm; + struct list_head v_dgrp; + struct list_head v_disk; + struct list_head v_volu; + struct list_head v_comp; + struct list_head v_part; +}; + +struct ldsem_waiter { + struct list_head list; + struct task_struct *task; +}; + +struct ldt_struct { + struct desc_struct *entries; + unsigned int nr_entries; + int slot; +}; + +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 ldt_desc; + +typedef struct ldttss_desc tss_desc; + +struct lease_manager_operations { + bool (*lm_break)(struct file_lease *); + int (*lm_change)(struct file_lease *, int, struct list_head *); + void (*lm_setup)(struct file_lease *, void **); + bool (*lm_breaker_owns_lease)(struct file_lease *); +}; + +struct led_pattern; + +struct led_classdev { + const char *name; + unsigned int brightness; + unsigned int max_brightness; + unsigned int color; + int flags; + long unsigned int 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 *, long unsigned int *, long unsigned int *); + 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; + long unsigned int blink_delay_on; + long unsigned int blink_delay_off; + struct timer_list blink_timer; + int blink_brightness; + int new_blink_brightness; + void (*flash_resume)(struct led_classdev *); + struct workqueue_struct *wq; + struct work_struct set_brightness_work; + int delayed_set_value; + long unsigned int delayed_delay_on; + long unsigned int delayed_delay_off; + struct rw_semaphore trigger_lock; + struct led_trigger *trigger; + struct list_head trig_list; + void *trigger_data; + bool activated; + struct led_hw_trigger_type *trigger_type; + const char *hw_control_trigger; + int (*hw_control_is_supported)(struct led_classdev *, long unsigned int); + int (*hw_control_set)(struct led_classdev *, long unsigned int); + int (*hw_control_get)(struct led_classdev *, long unsigned int *); + struct device * (*hw_control_get_device)(struct led_classdev *); + int brightness_hw_changed; + struct kernfs_node *brightness_hw_changed_kn; + struct mutex led_access; +}; + +struct mc_subled; + +struct led_classdev_mc { + struct led_classdev led_cdev; + unsigned int num_colors; + struct mc_subled *subled_info; +}; + +struct led_hw_trigger_type { + int dummy; +}; + +struct led_init_data { + struct fwnode_handle *fwnode; + const char *default_label; + const char *devicename; + bool devname_mandatory; +}; + +struct led_lookup_data { + struct list_head list; + const char *provider; + const char *dev_id; + const char *con_id; +}; + +struct led_pattern { + u32 delta_t; + int brightness; +}; + +struct led_properties { + u32 color; + bool color_present; + const char *function; + u32 func_enum; + bool func_enum_present; + const char *label; +}; + +struct led_trigger_cpu { + bool is_active; + char name[8]; + struct led_trigger *_trig; +}; + +struct legacy_fs_context { + char *legacy_data; + size_t data_size; + enum legacy_fs_param param_type; +}; + +struct legacy_pic { + int nr_legacy_irqs; + struct irq_chip *chip; + void (*mask)(unsigned int); + void (*unmask)(unsigned int); + void (*mask_all)(void); + void (*restore_mask)(void); + void (*init)(int); + int (*probe)(void); + int (*irq_pending)(unsigned int); + void (*make_irq)(unsigned int); +}; + +struct level_datum { + struct mls_level level; + unsigned char isalias; +}; + +struct limit_names { + const char *name; + const char *unit; +}; + +struct linereq; + +struct line { + struct gpio_desc *desc; + struct linereq *req; + unsigned int irq; + u64 edflags; + u64 timestamp_ns; + u32 req_seqno; + u32 line_seqno; + struct delayed_work work; + unsigned int sw_debounced; + unsigned int level; + struct hte_ts_desc hdesc; + int raw_level; + u32 total_discard_seq; + u32 last_seqno; +}; + +struct linear_c { + struct dm_dev *dev; + sector_t start; +}; + +struct linear_range { + unsigned int min; + unsigned int min_sel; + unsigned int max_sel; + unsigned int step; +}; + +struct lineevent_state { + struct gpio_device *gdev; + const char *label; + struct gpio_desc *desc; + u32 eflags; + int irq; + wait_queue_head_t wait; + struct notifier_block device_unregistered_nb; + struct { + union { + struct __kfifo kfifo; + struct gpioevent_data *type; + const struct gpioevent_data *const_type; + char (*rectype)[0]; + struct gpioevent_data *ptr; + const struct gpioevent_data *ptr_const; + }; + struct gpioevent_data buf[16]; + } events; + u64 timestamp; +}; + +struct linehandle_state { + struct gpio_device *gdev; + const char *label; + struct gpio_desc *descs[64]; + u32 num_descs; +}; + +struct lineinfo_changed_ctx { + struct work_struct work; + struct gpio_v2_line_info_changed chg; + struct gpio_device *gdev; + struct gpio_chardev_data *cdev; +}; + +struct linereq { + struct gpio_device *gdev; + const char *label; + u32 num_lines; + wait_queue_head_t wait; + struct notifier_block device_unregistered_nb; + u32 event_buffer_size; + struct { + union { + struct __kfifo kfifo; + struct gpio_v2_line_event *type; + const struct gpio_v2_line_event *const_type; + char (*rectype)[0]; + struct gpio_v2_line_event *ptr; + const struct gpio_v2_line_event *ptr_const; + }; + struct gpio_v2_line_event buf[0]; + } events; + atomic_t seqno; + struct mutex config_mutex; + struct line lines[0]; +}; + +struct linger { + int l_onoff; + int l_linger; +}; + +struct link_free { + union { + long unsigned int next; + long unsigned int handle; + }; +}; + +struct link_mode_info { + int speed; + u8 lanes; + u8 duplex; +}; + +struct linked_page { + struct linked_page *next; + char data[4088]; +}; + +struct linked_reg { + u8 frameno; + union { + u8 spi; + u8 regno; + }; + bool is_reg; +}; + +struct linked_regs { + int cnt; + struct linked_reg entries[6]; +}; + +struct linkinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; +}; + +struct linkmodes_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; + bool peer_empty; +}; + +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 linux_binprm; + +struct linux_binfmt { + struct list_head lh; + struct module *module; + int (*load_binary)(struct linux_binprm *); + int (*load_shlib)(struct file *); + int (*core_dump)(struct coredump_params *); + long unsigned int min_coredump; +}; + +struct linux_binprm { + struct vm_area_struct *vma; + long unsigned int vma_pages; + long unsigned int argmin; + struct mm_struct *mm; + long unsigned int p; + unsigned int have_execfd: 1; + unsigned int execfd_creds: 1; + unsigned int secureexec: 1; + unsigned int point_of_no_return: 1; + unsigned int comm_from_dentry: 1; + unsigned int is_check: 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; + long unsigned int loader; + long unsigned int exec; + struct rlimit rlim_stack; + char buf[256]; +}; + +struct linux_binprm__safe_trusted { + struct file *file; +}; + +struct linux_dirent { + long unsigned int d_ino; + long unsigned int d_off; + short unsigned int d_reclen; + char d_name[0]; +}; + +struct linux_dirent64 { + u64 d_ino; + s64 d_off; + short unsigned int d_reclen; + unsigned char d_type; + char d_name[0]; +}; + +struct linux_efi_initrd { + long unsigned int base; + long unsigned int size; +}; + +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]; +}; + +struct linux_efi_tpm_eventlog { + u32 size; + u32 final_events_preboot_size; + u8 version; + u8 log[0]; +}; + +struct linux_logo { + int type; + unsigned int width; + unsigned int height; + unsigned int clutsize; + const unsigned char *clut; + const unsigned char *data; +}; + +struct linux_mib { + long unsigned int mibs[134]; +}; + +struct linux_tls_mib { + long unsigned int mibs[18]; +}; + +struct linux_xfrm_mib { + long unsigned int mibs[33]; +}; + +struct list_lru_node; + +struct list_lru { + struct list_lru_node *node; + struct list_head list; + int shrinker_id; + bool memcg_aware; + struct xarray xa; +}; + +struct list_lru_one { + struct list_head list; + long int nr_items; + spinlock_t lock; +}; + +struct list_lru_memcg { + struct callback_head rcu; + struct list_lru_one node[0]; +}; + +struct list_lru_node { + struct list_lru_one lru; + atomic_long_t nr_items; + long: 64; + long: 64; + long: 64; +}; + +struct listener { + struct list_head list; + pid_t pid; + char valid; +}; + +struct listener_list { + struct rw_semaphore sem; + struct list_head list; +}; + +struct listeners { + struct callback_head rcu; + long unsigned int masks[0]; +}; + +struct load_info { + const char *name; + struct module *mod; + Elf64_Ehdr *hdr; + long unsigned int len; + Elf64_Shdr *sechdrs; + char *secstrings; + char *strtab; + long unsigned int symoffs; + long unsigned int stroffs; + long unsigned int init_typeoffs; + long unsigned int core_typeoffs; + bool sig_ok; + long unsigned int mod_kallsyms_init_off; + struct page **pages; + unsigned int max_pages; + unsigned int used_pages; + struct { + unsigned int sym; + unsigned int str; + unsigned int mod; + unsigned int vers; + unsigned int info; + unsigned int pcpu; + unsigned int vers_ext_crc; + unsigned int vers_ext_name; + } index; +}; + +struct location; + +struct loc_track { + long unsigned int max; + long unsigned int count; + struct location *loc; + loff_t idx; +}; + +struct local_event { + local_lock_t lock; + __u32 count; +}; + +struct local_ports { + u32 range; + bool warned; +}; + +struct location { + depot_stack_handle_t handle; + long unsigned int count; + long unsigned int addr; + long unsigned int waste; + long long int sum_time; + long int min_time; + long int max_time; + long int min_pid; + long int max_pid; + long unsigned int cpus[128]; + nodemask_t nodes; +}; + +struct lock_manager_operations { + void *lm_mod_owner; + fl_owner_t (*lm_get_owner)(fl_owner_t); + void (*lm_put_owner)(fl_owner_t); + void (*lm_notify)(struct file_lock *); + int (*lm_grant)(struct file_lock *, int); + bool (*lm_lock_expirable)(struct file_lock *); + void (*lm_expire_lock)(void); +}; + +struct locks_iterator { + int li_cpu; + loff_t li_pos; +}; + +struct logic_pio_host_ops { + u32 (*in)(void *, long unsigned int, size_t); + void (*out)(void *, long unsigned int, u32, size_t); + u32 (*ins)(void *, long unsigned int, void *, size_t, unsigned int); + void (*outs)(void *, long unsigned int, const void *, size_t, unsigned int); +}; + +struct logic_pio_hwaddr { + struct list_head list; + const struct fwnode_handle *fwnode; + resource_size_t hw_start; + resource_size_t io_start; + resource_size_t size; + long unsigned int flags; + void *hostdata; + const struct logic_pio_host_ops *ops; +}; + +struct lookup_args { + int offset; + const struct in6_addr *addr; +}; + +struct loop_cmd { + struct list_head list_entry; + bool use_aio; + atomic_t ref; + long int ret; + struct kiocb iocb; + struct bio_vec *bvec; + struct cgroup_subsys_state *blkcg_css; + struct cgroup_subsys_state *memcg_css; +}; + +struct loop_info64 { + __u64 lo_device; + __u64 lo_inode; + __u64 lo_rdevice; + __u64 lo_offset; + __u64 lo_sizelimit; + __u32 lo_number; + __u32 lo_encrypt_type; + __u32 lo_encrypt_key_size; + __u32 lo_flags; + __u8 lo_file_name[64]; + __u8 lo_crypt_name[64]; + __u8 lo_encrypt_key[32]; + __u64 lo_init[2]; +}; + +struct loop_config { + __u32 fd; + __u32 block_size; + struct loop_info64 info; + __u64 __reserved[8]; +}; + +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 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_info { + int lo_number; + __kernel_old_dev_t lo_device; + long unsigned int 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]; + long unsigned int lo_init[2]; + char reserved[4]; +}; + +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; + long unsigned int last_ran_at; +}; + +union lower_chunk { + union lower_chunk *next; + long unsigned int data[256]; +}; + +struct lp8788_platform_data; + +struct lp8788 { + struct device *dev; + struct regmap *regmap; + struct irq_domain *irqdm; + int irq; + struct lp8788_platform_data *pdata; +}; + +struct lp8788_buck1_dvs { + enum lp8788_dvs_sel vsel; +}; + +struct lp8788_buck2_dvs { + enum lp8788_dvs_sel vsel; +}; + +struct lp8788_chg_param; + +struct lp8788_charger_platform_data { + const char *adc_vbatt; + const char *adc_batt_temp; + unsigned int max_vbatt_mv; + struct lp8788_chg_param *chg_params; + int num_chg_params; + void (*charger_event)(struct lp8788 *, enum lp8788_charger_event); +}; + +struct lp8788_chg_param { + u8 addr; + u8 val; +}; + +struct lp8788_irq_data { + struct lp8788 *lp; + struct mutex irq_lock; + struct irq_domain *domain; + int enabled[24]; +}; + +struct lp8788_led_platform_data { + char *name; + enum lp8788_isink_scale scale; + enum lp8788_isink_number num; + int iout_code; +}; + +struct iio_map; + +struct lp8788_vib_platform_data; + +struct lp8788_platform_data { + int (*init_func)(struct lp8788 *); + struct regulator_init_data *buck_data[4]; + struct regulator_init_data *dldo_data[12]; + struct regulator_init_data *aldo_data[10]; + struct lp8788_buck1_dvs *buck1_dvs; + struct lp8788_buck2_dvs *buck2_dvs; + struct lp8788_charger_platform_data *chg_pdata; + enum lp8788_alarm_sel alarm_sel; + struct lp8788_led_platform_data *led_pdata; + struct lp8788_vib_platform_data *vib_pdata; + struct iio_map *adc_pdata; +}; + +struct lp8788_vib_platform_data { + char *name; + enum lp8788_isink_scale scale; + enum lp8788_isink_number num; + int iout_code; + int pwm_code; +}; + +struct lpi_constraints { + acpi_handle handle; + int min_dstate; +}; + +struct lpi_device_constraint { + int uid; + int min_dstate; + int function_states; +}; + +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 lpit_residency_info { + struct acpi_generic_address gaddr; + u64 frequency; + void *iomem_addr; +}; + +struct lpm_trie_node; + +struct lpm_trie { + struct bpf_map map; + struct lpm_trie_node *root; + struct bpf_mem_alloc ma; + size_t n_entries; + size_t max_prefixlen; + size_t data_size; + raw_spinlock_t lock; +}; + +struct lpm_trie_node { + struct lpm_trie_node *child[2]; + u32 prefixlen; + u32 flags; + u8 data[0]; +}; + +struct lpss_clk_data { + const char *name; + struct clk *clk; +}; + +struct lpss_private_data; + +struct lpss_device_desc { + unsigned int flags; + const char *clk_con_id; + unsigned int prv_offset; + size_t prv_size_override; + const struct property_entry *properties; + void (*setup)(struct lpss_private_data *); + bool resume_from_noirq; +}; + +struct lpss_device_links { + const char *supplier_hid; + const char *supplier_uid; + const char *consumer_hid; + const char *consumer_uid; + u32 flags; + const struct dmi_system_id *dep_missing_ids; +}; + +struct lpss_private_data { + struct acpi_device *adev; + void *mmio_base; + resource_size_t mmio_size; + unsigned int fixed_clk_rate; + struct clk *clk; + const struct lpss_device_desc *dev_desc; + u32 prv_reg_ctx[9]; +}; + +struct lru_gen_folio { + long unsigned int max_seq; + long unsigned int min_seq[2]; + long unsigned int timestamps[4]; + struct list_head folios[40]; + long int nr_pages[40]; + long unsigned int avg_refaulted[8]; + long unsigned int avg_total[8]; + long unsigned int protected[8]; + atomic_long_t evicted[8]; + atomic_long_t refaulted[8]; + bool enabled; + u8 gen; + u8 seg; + struct hlist_nulls_node list; +}; + +struct lru_gen_memcg { + long unsigned int seq; + long unsigned int nr_memcgs[3]; + struct hlist_nulls_head fifo[24]; + spinlock_t lock; +}; + +struct lru_gen_mm_list { + struct list_head fifo; + spinlock_t lock; +}; + +struct lru_gen_mm_state { + long unsigned int seq; + struct list_head *head; + struct list_head *tail; + long unsigned int *filters[2]; + long unsigned int stats[4]; +}; + +struct lruvec; + +struct lru_gen_mm_walk { + struct lruvec *lruvec; + long unsigned int seq; + long unsigned int next_addr; + int nr_pages[40]; + int mm_stats[4]; + int batched; + int swappiness; + bool force_scan; +}; + +struct zswap_lruvec_state { + atomic_long_t nr_disk_swapins; +}; + +struct pglist_data; + +struct lruvec { + struct list_head lists[5]; + spinlock_t lru_lock; + long unsigned int anon_cost; + long unsigned int file_cost; + atomic_long_t nonresident_age; + long unsigned int refaults[2]; + long unsigned int flags; + struct lru_gen_folio lrugen; + struct lru_gen_mm_state mm_state; + struct pglist_data *pgdat; + struct zswap_lruvec_state zswap_lruvec_state; +}; + +struct lruvec_stats { + long int state[32]; + long int state_local[32]; + long int state_pending[32]; +}; + +struct lruvec_stats_percpu { + long int state[32]; + long int state_prev[32]; +}; + +struct skcipher_alg_common { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + unsigned int statesize; + struct crypto_alg base; +}; + +struct lskcipher_alg { + int (*setkey)(struct crypto_lskcipher *, const u8 *, unsigned int); + int (*encrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, u32); + int (*decrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, u32); + int (*init)(struct crypto_lskcipher *); + void (*exit)(struct crypto_lskcipher *); + struct skcipher_alg_common co; +}; + +struct lskcipher_instance { + void (*free)(struct lskcipher_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct lskcipher_alg alg; + }; +}; + +struct lsm_blob_sizes { + int lbs_cred; + int lbs_file; + int lbs_ib; + int lbs_inode; + int lbs_sock; + int lbs_superblock; + int lbs_ipc; + int lbs_key; + int lbs_msg_msg; + int lbs_perf_event; + int lbs_task; + int lbs_xattr_count; + int lbs_tun_dev; + int lbs_bdev; + bool lbs_secmark; +}; + +struct lsm_context { + char *context; + u32 len; + int id; +}; + +struct lsm_ctx { + __u64 id; + __u64 flags; + __u64 len; + __u64 ctx_len; + __u8 ctx[0]; +}; + +struct lsm_ibendport_audit { + const char *dev_name; + u8 port; +}; + +struct lsm_ibpkey_audit { + u64 subnet_prefix; + u16 pkey; +}; + +struct lsm_id { + const char *name; + u64 id; + bool lsmprop; +}; + +struct lsm_info { + const char *name; + enum lsm_order order; + long unsigned int flags; + int *enabled; + int (*init)(void); + struct lsm_blob_sizes *blobs; +}; + +struct lsm_ioctlop_audit { + struct path path; + u16 cmd; +}; + +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 lv_info { + short unsigned int pps_per_lv; + short unsigned int pps_found; + unsigned char lv_is_contiguous; +}; + +struct lvd { + __be16 lv_ix; + __be16 res2; + __be16 res4; + __be16 maxsize; + __be16 lv_state; + __be16 mirror; + __be16 mirror_policy; + __be16 num_lps; + __be16 res10[8]; +}; + +struct lvm_rec { + char lvm_id[4]; + char reserved4[16]; + __be32 lvmarea_len; + __be32 vgda_len; + __be32 vgda_psn[2]; + char reserved36[10]; + __be16 pp_size; + char reserved46[12]; + __be16 version; +}; + +struct lvname { + char name[64]; +}; + +struct lwq { + spinlock_t lock; + struct llist_node *ready; + struct llist_head new; +}; + +struct lwq_node { + struct llist_node node; +}; + +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 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 lz4_comp_opts { + __le32 version; + __le32 flags; +}; + +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; + bool pedantic_microlzma; +}; + +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 lzma_header { + uint8_t pos; + uint32_t dict_size; + uint64_t dst_size; +} __attribute__((packed)); + +struct lzo_ctx { + void *lzo_comp_mem; +}; + +struct lzorle_ctx { + void *lzorle_comp_mem; +}; + +struct ma_topiary { + struct maple_enode *head; + struct maple_enode *tail; + struct maple_tree *mtree; +}; + +struct maple_node; + +struct ma_wr_state { + struct ma_state *mas; + struct maple_node *node; + long unsigned int r_min; + long unsigned int r_max; + enum maple_type type; + unsigned char offset_end; + long unsigned int *pivots; + long unsigned int end_piv; + void **slots; + void *entry; + void *content; +}; + +struct mac_addr { + unsigned char addr[6]; +}; + +typedef struct mac_addr mac_addr; + +struct mac_address { + u8 addr[6]; +}; + +struct mac_driver_desc { + __be16 signature; + __be16 block_size; + __be32 block_count; +}; + +struct mac_partition { + __be16 signature; + __be16 res1; + __be32 map_count; + __be32 start_block; + __be32 block_count; + char name[32]; + char type[32]; + __be32 data_start; + __be32 data_count; + __be32 status; + __be32 boot_start; + __be32 boot_size; + __be32 boot_load; + __be32 boot_load2; + __be32 boot_entry; + __be32 boot_entry2; + __be32 boot_cksum; + char processor[16]; +}; + +struct machine_ops { + void (*restart)(char *); + void (*halt)(void); + void (*power_off)(void); + void (*shutdown)(void); + void (*crash_shutdown)(struct pt_regs *); + void (*emergency_restart)(void); +}; + +struct macsec_secy; + +struct macsec_rx_sc; + +struct macsec_rx_sa; + +struct macsec_tx_sa; + +struct macsec_tx_sc_stats; + +struct macsec_tx_sa_stats; + +struct macsec_rx_sc_stats; + +struct macsec_rx_sa_stats; + +struct macsec_dev_stats; + +struct macsec_context { + union { + struct net_device *netdev; + struct phy_device *phydev; + }; + enum macsec_offload offload; + struct macsec_secy *secy; + struct macsec_rx_sc *rx_sc; + struct { + bool update_pn; + unsigned char assoc_num; + u8 key[128]; + union { + struct macsec_rx_sa *rx_sa; + struct macsec_tx_sa *tx_sa; + }; + } sa; + union { + struct macsec_tx_sc_stats *tx_sc_stats; + struct macsec_tx_sa_stats *tx_sa_stats; + struct macsec_rx_sc_stats *rx_sc_stats; + struct macsec_rx_sa_stats *rx_sa_stats; + struct macsec_dev_stats *dev_stats; + } stats; +}; + +struct macsec_dev_stats { + __u64 OutPktsUntagged; + __u64 InPktsUntagged; + __u64 OutPktsTooLong; + __u64 InPktsNoTag; + __u64 InPktsBadTag; + __u64 InPktsUnknownSCI; + __u64 InPktsNoSCI; + __u64 InPktsOverrun; +}; + +struct macsec_info { + sci_t sci; +}; + +union salt { + struct { + ssci_t ssci; + __be64 pn; + } __attribute__((packed)); + u8 bytes[12]; +}; + +typedef union salt salt_t; + +struct macsec_key { + u8 id[16]; + struct crypto_aead *tfm; + salt_t salt; +}; + +struct macsec_ops { + int (*mdo_dev_open)(struct macsec_context *); + int (*mdo_dev_stop)(struct macsec_context *); + int (*mdo_add_secy)(struct macsec_context *); + int (*mdo_upd_secy)(struct macsec_context *); + int (*mdo_del_secy)(struct macsec_context *); + int (*mdo_add_rxsc)(struct macsec_context *); + int (*mdo_upd_rxsc)(struct macsec_context *); + int (*mdo_del_rxsc)(struct macsec_context *); + int (*mdo_add_rxsa)(struct macsec_context *); + int (*mdo_upd_rxsa)(struct macsec_context *); + int (*mdo_del_rxsa)(struct macsec_context *); + int (*mdo_add_txsa)(struct macsec_context *); + int (*mdo_upd_txsa)(struct macsec_context *); + int (*mdo_del_txsa)(struct macsec_context *); + int (*mdo_get_dev_stats)(struct macsec_context *); + int (*mdo_get_tx_sc_stats)(struct macsec_context *); + int (*mdo_get_tx_sa_stats)(struct macsec_context *); + int (*mdo_get_rx_sc_stats)(struct macsec_context *); + int (*mdo_get_rx_sa_stats)(struct macsec_context *); + int (*mdo_insert_tx_tag)(struct phy_device *, struct sk_buff *); + unsigned int needed_headroom; + unsigned int needed_tailroom; + bool rx_uses_md_dst; +}; + +union pn { + struct { + u32 lower; + u32 upper; + }; + u64 full64; +}; + +typedef union pn pn_t; + +struct macsec_rx_sa { + struct macsec_key key; + ssci_t ssci; + spinlock_t lock; + union { + pn_t next_pn_halves; + u64 next_pn; + }; + refcount_t refcnt; + bool active; + struct macsec_rx_sa_stats *stats; + struct macsec_rx_sc *sc; + struct callback_head rcu; +}; + +struct macsec_rx_sa_stats { + __u32 InPktsOK; + __u32 InPktsInvalid; + __u32 InPktsNotValid; + __u32 InPktsNotUsingSA; + __u32 InPktsUnusedSA; +}; + +struct pcpu_rx_sc_stats; + +struct macsec_rx_sc { + struct macsec_rx_sc *next; + sci_t sci; + bool active; + struct macsec_rx_sa *sa[4]; + struct pcpu_rx_sc_stats *stats; + refcount_t refcnt; + struct callback_head callback_head; +}; + +struct macsec_rx_sc_stats { + __u64 InOctetsValidated; + __u64 InOctetsDecrypted; + __u64 InPktsUnchecked; + __u64 InPktsDelayed; + __u64 InPktsOK; + __u64 InPktsInvalid; + __u64 InPktsLate; + __u64 InPktsNotValid; + __u64 InPktsNotUsingSA; + __u64 InPktsUnusedSA; +}; + +struct pcpu_tx_sc_stats; + +struct macsec_tx_sc { + bool active; + u8 encoding_sa; + bool encrypt; + bool send_sci; + bool end_station; + bool scb; + struct macsec_tx_sa *sa[4]; + struct pcpu_tx_sc_stats *stats; + struct metadata_dst *md_dst; +}; + +struct macsec_secy { + struct net_device *netdev; + unsigned int n_rx_sc; + sci_t sci; + u16 key_len; + u16 icv_len; + enum macsec_validation_type validate_frames; + bool xpn; + bool operational; + bool protect_frames; + bool replay_protect; + u32 replay_window; + struct macsec_tx_sc tx_sc; + struct macsec_rx_sc *rx_sc; +}; + +struct macsec_tx_sa { + struct macsec_key key; + ssci_t ssci; + spinlock_t lock; + union { + pn_t next_pn_halves; + u64 next_pn; + }; + refcount_t refcnt; + bool active; + struct macsec_tx_sa_stats *stats; + struct callback_head rcu; +}; + +struct macsec_tx_sa_stats { + __u32 OutPktsProtected; + __u32 OutPktsEncrypted; +}; + +struct macsec_tx_sc_stats { + __u64 OutPktsProtected; + __u64 OutPktsEncrypted; + __u64 OutOctetsProtected; + __u64 OutOctetsEncrypted; +}; + +struct mmu_gather; + +struct madvise_walk_private { + struct mmu_gather *tlb; + bool pageout; +}; + +struct mafield { + const char *prefix; + int field; +}; + +struct make_exclusive_args { + struct mm_struct *mm; + long unsigned int address; + void *owner; + bool valid; +}; + +struct map_attribute { + struct attribute attr; + ssize_t (*show)(struct efi_runtime_map_entry *, char *); +}; + +struct map_balloon_pages { + xen_pfn_t *pfns; + unsigned int idx; +}; + +struct map_files_info { + long unsigned int start; + long unsigned int end; + fmode_t mode; +}; + +struct map_info___2 { + struct map_info___2 *next; + struct mm_struct *mm; + long unsigned int vaddr; +}; + +struct map_iter { + void *key; + bool done; +}; + +struct map_range { + long unsigned int start; + long unsigned int end; + unsigned int page_size_mask; +}; + +struct xenbus_map_node; + +struct map_ring_valloc { + struct xenbus_map_node *node; + long unsigned int addrs[16]; + phys_addr_t phys_addrs[16]; + struct gnttab_map_grant_ref map[16]; + struct gnttab_unmap_grant_ref unmap[16]; + unsigned int idx; +}; + +struct maple_alloc { + long unsigned int total; + unsigned char node_count; + unsigned int request_count; + struct maple_alloc *slot[30]; +}; + +struct maple_pnode; + +struct maple_metadata { + unsigned char end; + unsigned char gap; +}; + +struct maple_arange_64 { + struct maple_pnode *parent; + long unsigned int pivot[9]; + void *slot[10]; + long unsigned int gap[10]; + struct maple_metadata meta; +}; + +struct maple_big_node { + long unsigned int pivot[33]; + union { + struct maple_enode *slot[34]; + struct { + long unsigned int padding[21]; + long unsigned int gap[21]; + }; + }; + unsigned char b_end; + enum maple_type type; +}; + +struct maple_range_64 { + struct maple_pnode *parent; + long unsigned int pivot[15]; + union { + void *slot[16]; + struct { + void *pad[15]; + struct maple_metadata meta; + }; + }; +}; + +struct maple_node { + union { + struct { + struct maple_pnode *parent; + void *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_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 maple_topiary { + struct maple_pnode *parent; + struct maple_enode *next; +}; + +struct maple_tree { + union { + spinlock_t ma_lock; + lockdep_map_p ma_external_lock; + }; + unsigned int ma_flags; + void *ma_root; +}; + +struct mapped_device { + struct mutex suspend_lock; + struct mutex table_devices_lock; + struct list_head table_devices; + void *map; + long unsigned int 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; + long unsigned int *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; + unsigned int nr_zones; + void *zone_revalidate_map; + struct task_struct *revalidate_map_task; + struct dm_ima_measurements ima; +}; + +struct mapping_area { + local_lock_t lock; + char *vm_buf; + char *vm_addr; + enum zs_mapmode vm_mm; +}; + +struct match_addr { + const char *addrp; + enum addr_type addrtype; + int len; + __be16 port; +}; + +struct match_ids_walk_data { + struct acpi_device_id *ids; + struct acpi_device *adev; +}; + +struct match_token { + int token; + const char *pattern; +}; + +struct match_workbuf { + unsigned int count; + unsigned int pos; + unsigned int len; + unsigned int size; + unsigned int history[24]; +}; + +struct math_emu_info { + long int ___orig_eip; + struct pt_regs *regs; +}; + +struct max14577 { + struct device *dev; + struct i2c_client *i2c; + struct i2c_client *i2c_pmic; + enum maxim_device_type dev_type; + struct regmap *regmap; + struct regmap *regmap_pmic; + struct regmap_irq_chip_data *irq_data; + struct regmap_irq_chip_data *irq_data_pmic; + int irq; +}; + +struct max14577_regulator_platform_data; + +struct max14577_platform_data { + int irq_base; + int gpio_pogo_vbatt_en; + int gpio_pogo_vbus_en; + int (*set_gpio_pogo_vbatt_en)(int); + int (*set_gpio_pogo_vbus_en)(int); + int (*set_gpio_pogo_cb)(int); + struct max14577_regulator_platform_data *regulators; +}; + +struct max14577_regulator_platform_data { + int id; + struct regulator_init_data *initdata; + struct device_node *of_node; +}; + +struct max310x_devtype { + struct { + short unsigned int min; + short unsigned int max; + } slave_addr; + int nr; + char name[9]; + u8 mode1; + u8 rev_id_val; + u8 rev_id_reg; + u8 power_reg; + u8 power_bit; +}; + +struct max310x_if_cfg { + int (*extended_reg_enable)(struct device *, bool); + u8 rev_id_offset; +}; + +struct max310x_one { + struct uart_port port; + struct work_struct tx_work; + struct work_struct md_work; + struct work_struct rs_work; + struct regmap *regmap; + u8 rx_buf[128]; +}; + +struct max310x_port { + const struct max310x_devtype *devtype; + const struct max310x_if_cfg *if_cfg; + struct regmap *regmap; + struct clk *clk; + struct gpio_chip gpio; + struct max310x_one p[0]; +}; + +struct max77693_dev { + struct device *dev; + struct i2c_client *i2c; + struct i2c_client *i2c_muic; + struct i2c_client *i2c_haptic; + struct i2c_client *i2c_chg; + enum max77693_types type; + struct regmap *regmap; + struct regmap *regmap_muic; + struct regmap *regmap_haptic; + struct regmap *regmap_chg; + struct regmap_irq_chip_data *irq_data_led; + struct regmap_irq_chip_data *irq_data_topsys; + struct regmap_irq_chip_data *irq_data_chg; + struct regmap_irq_chip_data *irq_data_muic; + int irq; +}; + +struct max8925_backlight_pdata { + int lxw_scl; + int lxw_freq; + int dual_string; +}; + +struct max8925_chip { + struct device *dev; + struct i2c_client *i2c; + struct i2c_client *adc; + struct i2c_client *rtc; + struct mutex io_lock; + struct mutex irq_lock; + int irq_base; + int core_irq; + int tsc_irq; + unsigned int wakeup_flag; +}; + +struct max8925_irq_data { + int reg; + int mask_reg; + int enable; + int offs; + int flags; + int tsc_irq; +}; + +struct max8925_touch_pdata; + +struct max8925_power_pdata; + +struct max8925_platform_data { + struct max8925_backlight_pdata *backlight; + struct max8925_touch_pdata *touch; + struct max8925_power_pdata *power; + struct regulator_init_data *sd1; + struct regulator_init_data *sd2; + struct regulator_init_data *sd3; + struct regulator_init_data *ldo1; + struct regulator_init_data *ldo2; + struct regulator_init_data *ldo3; + struct regulator_init_data *ldo4; + struct regulator_init_data *ldo5; + struct regulator_init_data *ldo6; + struct regulator_init_data *ldo7; + struct regulator_init_data *ldo8; + struct regulator_init_data *ldo9; + struct regulator_init_data *ldo10; + struct regulator_init_data *ldo11; + struct regulator_init_data *ldo12; + struct regulator_init_data *ldo13; + struct regulator_init_data *ldo14; + struct regulator_init_data *ldo15; + struct regulator_init_data *ldo16; + struct regulator_init_data *ldo17; + struct regulator_init_data *ldo18; + struct regulator_init_data *ldo19; + struct regulator_init_data *ldo20; + int irq_base; + int tsc_irq; +}; + +struct max8925_power_pdata { + int (*set_charger)(int); + unsigned int batt_detect: 1; + unsigned int topoff_threshold: 2; + unsigned int fast_charge: 3; + unsigned int no_temp_support: 1; + unsigned int no_insert_detect: 1; + char **supplied_to; + int num_supplicants; +}; + +struct max8925_touch_pdata { + unsigned int flags; +}; + +struct max8997_platform_data; + +struct max8997_dev { + struct device *dev; + struct max8997_platform_data *pdata; + struct i2c_client *i2c; + struct i2c_client *rtc; + struct i2c_client *haptic; + struct i2c_client *muic; + struct mutex iolock; + long unsigned int type; + struct platform_device *battery; + int irq; + int ono; + struct irq_domain *irq_domain; + struct mutex irqlock; + int irq_masks_cur[11]; + int irq_masks_cache[11]; + u8 reg_dump[187]; + bool gpio_status[12]; +}; + +struct max8997_haptic_platform_data { + unsigned int pwm_period; + enum max8997_haptic_motor_type type; + enum max8997_haptic_pulse_mode mode; + enum max8997_haptic_pwm_divisor pwm_divisor; + unsigned int internal_mode_pattern; + unsigned int pattern_cycle; + unsigned int pattern_signal_period; +}; + +struct max8997_irq_data { + int mask; + enum max8997_irq_source group; +}; + +struct max8997_led_platform_data { + enum max8997_led_mode mode[2]; + u8 brightness[2]; +}; + +struct max8997_muic_reg_data; + +struct max8997_muic_platform_data { + struct max8997_muic_reg_data *init_data; + int num_init_data; + int detcable_delay_ms; + int path_usb; + int path_uart; +}; + +struct max8997_muic_reg_data { + u8 addr; + u8 data; +}; + +struct max8997_regulator_data; + +struct max8997_platform_data { + int ono; + struct max8997_regulator_data *regulators; + int num_regulators; + bool ignore_gpiodvs_side_effect; + int buck125_default_idx; + unsigned int buck1_voltage[8]; + bool buck1_gpiodvs; + unsigned int buck2_voltage[8]; + bool buck2_gpiodvs; + unsigned int buck5_voltage[8]; + bool buck5_gpiodvs; + int eoc_mA; + int timeout; + struct max8997_muic_platform_data *muic_pdata; + struct max8997_haptic_platform_data *haptic_pdata; + struct max8997_led_platform_data *led_pdata; +}; + +struct max8997_regulator_data { + int id; + struct regulator_init_data *initdata; + struct device_node *reg_node; +}; + +struct max8998_platform_data; + +struct max8998_dev { + struct device *dev; + struct max8998_platform_data *pdata; + struct i2c_client *i2c; + struct i2c_client *rtc; + struct mutex iolock; + struct mutex irqlock; + unsigned int irq_base; + struct irq_domain *irq_domain; + int irq; + int ono; + u8 irq_masks_cur[4]; + u8 irq_masks_cache[4]; + long unsigned int type; + bool wakeup; +}; + +struct max8998_irq_data { + int reg; + int mask; +}; + +struct max8998_regulator_data; + +struct max8998_platform_data { + struct max8998_regulator_data *regulators; + int num_regulators; + unsigned int irq_base; + int ono; + bool buck_voltage_lock; + int buck1_voltage[4]; + int buck2_voltage[2]; + int buck1_default_idx; + int buck2_default_idx; + bool wakeup; + bool rtc_delay; + int eoc; + int restart; + int timeout; +}; + +struct max8998_reg_dump { + u8 addr; + u8 val; +}; + +struct max8998_regulator_data { + int id; + struct regulator_init_data *initdata; + struct device_node *reg_node; +}; + +struct maxim_charger_current { + unsigned int min; + unsigned int high_start; + unsigned int high_step; + unsigned int max; +}; + +struct mb_cache { + struct hlist_bl_head *c_hash; + int c_bucket_bits; + long unsigned int c_max_entries; + spinlock_t c_list_lock; + struct list_head c_list; + long unsigned int c_entry_count; + struct shrinker *c_shrink; + struct work_struct c_shrink_work; +}; + +struct mb_cache_entry { + struct list_head e_list; + struct hlist_bl_node e_hash_list; + atomic_t e_refcnt; + u32 e_key; + long unsigned int e_flags; + u64 e_value; +}; + +struct mbm_correction_factor_table { + u32 rmidthreshold; + u64 cf; +}; + +struct mbm_state { + u64 prev_bw_bytes; + u32 prev_bw; +}; + +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 { + int (*send_data)(struct mbox_chan *, void *); + int (*flush)(struct mbox_chan *, long unsigned int); + 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; + long unsigned int 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 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 mc146818_get_time_callback_param { + struct rtc_time *time; + unsigned char ctrl; + unsigned char century; +}; + +struct multicall_entry { + xen_ulong_t op; + xen_long_t result; + xen_ulong_t args[6]; +}; + +struct mc_buffer { + unsigned int mcidx; + unsigned int argidx; + unsigned int cbidx; + struct multicall_entry entries[32]; + unsigned char args[512]; + struct callback callbacks[32]; +}; + +struct mc_debug_data { + struct multicall_entry entries[32]; + void *caller[32]; + size_t argsz[32]; + long unsigned int *args[32]; +}; + +struct mc_info; + +typedef struct mc_info *__guest_handle_mc_info; + +struct mc_info { + uint32_t mi_nentries; + uint32_t flags; + uint64_t mi_data[95]; +}; + +struct mc_subled { + unsigned int color_index; + unsigned int brightness; + unsigned int intensity; + unsigned int channel; +}; + +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 storm_bank { + u64 history; + u64 timestamp; + bool in_storm_mode; + bool poll_only; +}; + +struct mca_storm_desc { + struct storm_bank banks[64]; + u8 stormy_bank_count; + bool poll_mode; +}; + +struct mce_bank { + u64 ctl; + __u64 init: 1; + __u64 lsb_in_status: 1; + __u64 __reserved_1: 62; +}; + +struct mce_bank_dev { + struct device_attribute attr; + char attrname[16]; + u8 bank; +}; + +union vendor_info { + struct { + u64 synd1; + u64 synd2; + } amd; +}; + +struct mce_hw_err { + struct mce m; + union vendor_info vendor; +}; + +struct mce_evt_llist { + struct llist_node llnode; + struct mce_hw_err err; +}; + +struct mce_log_buffer { + char signature[12]; + unsigned int len; + unsigned int next; + unsigned int flags; + unsigned int recordlen; + struct mce entry[0]; +}; + +struct mce_vendor_flags { + __u64 overflow_recov: 1; + __u64 succor: 1; + __u64 smca: 1; + __u64 zen_ifu_quirk: 1; + __u64 amd_threshold: 1; + __u64 p5: 1; + __u64 winchip: 1; + __u64 snb_ifu_quirk: 1; + __u64 skx_repmov_quirk: 1; + __u64 __reserved_0: 55; +}; + +struct mcinfo_common { + uint16_t type; + uint16_t size; +}; + +struct mcinfo_bank { + struct mcinfo_common common; + uint16_t mc_bank; + uint16_t mc_domid; + uint64_t mc_status; + uint64_t mc_addr; + uint64_t mc_misc; + uint64_t mc_ctrl2; + uint64_t mc_tsc; +}; + +struct mcinfo_global { + struct mcinfo_common common; + uint16_t mc_domid; + uint16_t mc_vcpuid; + uint32_t mc_socketid; + uint16_t mc_coreid; + uint16_t mc_core_threadid; + uint32_t mc_apicid; + uint32_t mc_flags; + uint64_t mc_gstatus; +}; + +struct mcinfo_logical_cpu; + +typedef struct mcinfo_logical_cpu *__guest_handle_mcinfo_logical_cpu; + +struct mcinfo_msr { + uint64_t reg; + uint64_t value; +}; + +struct mcinfo_logical_cpu { + uint32_t mc_cpunr; + uint32_t mc_chipid; + uint16_t mc_coreid; + uint16_t mc_threadid; + uint32_t mc_apicid; + uint32_t mc_clusterid; + uint32_t mc_ncores; + uint32_t mc_ncores_active; + uint32_t mc_nthreads; + uint32_t mc_cpuid_level; + uint32_t mc_family; + uint32_t mc_vendor; + uint32_t mc_model; + uint32_t mc_step; + char mc_vendorid[16]; + char mc_brandid[64]; + uint32_t mc_cpu_caps[7]; + uint32_t mc_cache_size; + uint32_t mc_cache_alignment; + uint32_t mc_nmsrvals; + struct mcinfo_msr mc_msrvalues[8]; +}; + +struct mcs_spinlock { + struct mcs_spinlock *next; + int locked; + int count; +}; + +struct mctp_addr { + mctp_eid_t s_addr; +}; + +struct mctp_netdev_ops; + +struct mctp_dev { + struct net_device *dev; + refcount_t refs; + unsigned int net; + enum mctp_phys_binding binding; + const struct mctp_netdev_ops *ops; + u8 *addrs; + size_t num_addrs; + spinlock_t addrs_lock; + struct callback_head rcu; +}; + +struct mctp_dump_cb { + long unsigned int ifindex; + size_t a_idx; +}; + +struct mctp_sk_key; + +struct mctp_flow { + struct mctp_sk_key *key; +}; + +struct mctp_hdr { + u8 ver; + u8 dest; + u8 src; + u8 flags_seq_tag; +}; + +struct mctp_ioc_tag_ctl { + mctp_eid_t peer_addr; + __u8 tag; + __u16 flags; +}; + +struct mctp_ioc_tag_ctl2 { + unsigned int net; + mctp_eid_t peer_addr; + mctp_eid_t local_addr; + __u16 flags; + __u8 tag; +}; + +struct mctp_neigh { + struct mctp_dev *dev; + mctp_eid_t eid; + enum mctp_neigh_source source; + unsigned char ha[32]; + struct list_head list; + struct callback_head rcu; +}; + +struct mctp_netdev_ops { + void (*release_flow)(struct mctp_dev *, struct mctp_sk_key *); +}; + +struct mctp_route { + mctp_eid_t min; + mctp_eid_t max; + unsigned char type; + unsigned int mtu; + struct mctp_dev *dev; + int (*output)(struct mctp_route *, struct sk_buff *); + struct list_head list; + refcount_t refs; + struct callback_head rcu; +}; + +struct mctp_sk_key { + unsigned int net; + mctp_eid_t peer_addr; + mctp_eid_t local_addr; + __u8 tag; + struct sock *sk; + struct hlist_node hlist; + struct hlist_node sklist; + spinlock_t lock; + refcount_t refs; + struct sk_buff *reasm_head; + struct sk_buff **reasm_tailp; + bool reasm_dead; + u8 last_seq; + bool valid; + long unsigned int expiry; + long unsigned int dev_flow_state; + struct mctp_dev *dev; + bool manual_alloc; +}; + +struct mctp_skb_cb { + unsigned int magic; + unsigned int net; + int ifindex; + mctp_eid_t src; + unsigned char halen; + unsigned char haddr[32]; +}; + +struct mctp_sock { + struct sock sk; + unsigned int bind_net; + mctp_eid_t bind_addr; + __u8 bind_type; + bool addr_ext; + struct hlist_head keys; + struct timer_list key_expiry; +}; + +struct mctrl_gpios { + struct uart_port *port; + struct gpio_desc *gpio[6]; + int irq[6]; + unsigned int mctrl_prev; + bool mctrl_on; +}; + +struct md5_state { + u32 hash[4]; + u32 block[16]; + u64 byte_count; +}; + +struct md_bitmap_stats { + u64 events_cleared; + int behind_writes; + bool behind_wait; + long unsigned int missing_pages; + long unsigned int file_pages; + long unsigned int sync_size; + long unsigned int pages; + struct file *file; +}; + +struct md_rdev; + +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); + int (*resync_start_notify)(struct mddev *); + int (*resync_status_get)(struct mddev *); + 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 md_io_clone { + struct mddev *mddev; + struct bio *orig_bio; + long unsigned int start_time; + sector_t offset; + long unsigned int sectors; + struct bio bio_clone; +}; + +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, sector_t, int *); + int (*resize)(struct mddev *, sector_t); + sector_t (*size)(struct mddev *, sector_t, int); + int (*check_reshape)(struct mddev *); + int (*start_reshape)(struct mddev *); + void (*finish_reshape)(struct mddev *); + void (*update_reshape_pos)(struct mddev *); + void (*prepare_suspend)(struct mddev *); + void (*quiesce)(struct mddev *, int); + void * (*takeover)(struct mddev *); + int (*change_consistency_policy)(struct mddev *, const char *); + void (*bitmap_sector)(struct mddev *, sector_t *, long unsigned int *); +}; + +struct serial_in_rdev; + +struct md_rdev { + struct list_head same_set; + sector_t sectors; + struct mddev *mddev; + int last_events; + struct block_device *meta_bdev; + struct block_device *bdev; + struct file *bdev_file; + struct page *sb_page; + struct page *bb_page; + int sb_loaded; + __u64 sb_events; + sector_t data_offset; + sector_t new_data_offset; + sector_t sb_start; + int sb_size; + int preferred_minor; + struct kobject kobj; + long unsigned int flags; + wait_queue_head_t blocked_wait; + int desc_nr; + int raid_disk; + int new_raid_disk; + int saved_raid_disk; + union { + sector_t recovery_offset; + sector_t journal_tail; + }; + atomic_t nr_pending; + atomic_t read_errors; + time64_t last_read_error; + atomic_t corrected_errors; + struct serial_in_rdev *serial; + struct kernfs_node *sysfs_state; + struct kernfs_node *sysfs_unack_badblocks; + struct kernfs_node *sysfs_badblocks; + struct badblocks badblocks; + struct { + short int offset; + unsigned int size; + sector_t sector; + } ppl; +}; + +struct md_setup_args { + int minor; + int partitioned; + int level; + int chunk; + char *device_names; +}; + +struct md_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct mddev *, char *); + ssize_t (*store)(struct mddev *, const char *, size_t); +}; + +struct md_thread { + void (*run)(struct md_thread *); + struct mddev *mddev; + wait_queue_head_t wqueue; + long unsigned int flags; + struct task_struct *tsk; + long unsigned int timeout; + void *private; +}; + +struct md_cluster_info; + +struct mddev { + void *private; + struct md_personality *pers; + dev_t unit; + int md_minor; + struct list_head disks; + long unsigned int flags; + long unsigned int sb_flags; + int suspended; + struct mutex suspend_mutex; + struct percpu_ref active_io; + int ro; + int sysfs_active; + struct gendisk *gendisk; + struct kobject kobj; + int hold_active; + int major_version; + int minor_version; + int patch_version; + int persistent; + int external; + char metadata_type[17]; + int chunk_sectors; + time64_t ctime; + time64_t utime; + int level; + int layout; + char clevel[16]; + int raid_disks; + int max_disks; + sector_t dev_sectors; + sector_t array_sectors; + int external_size; + __u64 events; + int can_decrease_events; + char uuid[16]; + sector_t reshape_position; + int delta_disks; + int new_level; + int new_layout; + int new_chunk_sectors; + int reshape_backwards; + struct md_thread *thread; + struct md_thread *sync_thread; + enum sync_action last_sync_action; + sector_t curr_resync; + sector_t curr_resync_completed; + long unsigned int 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; + long unsigned int recovery; + int recovery_disabled; + int in_sync; + struct mutex open_mutex; + struct mutex reconfig_mutex; + atomic_t active; + atomic_t openers; + int changed; + int degraded; + atomic_t recovery_active; + wait_queue_head_t recovery_wait; + sector_t recovery_cp; + sector_t resync_min; + sector_t resync_max; + struct kernfs_node *sysfs_state; + struct kernfs_node *sysfs_action; + struct kernfs_node *sysfs_completed; + struct kernfs_node *sysfs_degraded; + struct kernfs_node *sysfs_level; + struct work_struct del_work; + struct work_struct sync_work; + spinlock_t lock; + wait_queue_head_t sb_wait; + atomic_t pending_writes; + unsigned int safemode; + unsigned int safemode_delay; + struct timer_list safemode_timer; + struct percpu_ref writes_pending; + int sync_checkers; + void *bitmap; + struct bitmap_operations *bitmap_ops; + struct { + struct file *file; + loff_t offset; + long unsigned int space; + loff_t default_offset; + long unsigned int default_space; + struct mutex mutex; + long unsigned int chunksize; + long unsigned int daemon_sleep; + long unsigned int max_write_behind; + int external; + int nodes; + char cluster_name[64]; + } bitmap_info; + atomic_t max_corr_read_errors; + struct list_head all_mddevs; + const struct attribute_group *to_remove; + struct bio_set bio_set; + struct bio_set sync_set; + struct bio_set io_clone_set; + struct work_struct event_work; + mempool_t *serial_info_pool; + void (*sync_super)(struct mddev *, struct md_rdev *); + struct md_cluster_info *cluster_info; + unsigned int good_device_nr; + unsigned int noio_flag; + struct list_head deleting; + atomic_t sync_seq; + bool has_superblocks: 1; + bool fail_last_dev: 1; + bool serialize_policy: 1; +}; + +struct mdio_board_info { + const char *bus_id; + char modalias[32]; + int mdio_addr; + const void *platform_data; +}; + +struct mdio_board_entry { + struct list_head list; + struct mdio_board_info board_info; +}; + +struct mdio_bus_stat_attr { + int addr; + unsigned int field_offset; +}; + +struct mdio_bus_stats { + u64_stats_t transfers; + u64_stats_t errors; + u64_stats_t writes; + u64_stats_t reads; + struct u64_stats_sync syncp; +}; + +struct mdio_device { + struct device dev; + struct mii_bus *bus; + char modalias[32]; + int (*bus_match)(struct device *, const struct device_driver *); + void (*device_free)(struct mdio_device *); + void (*device_remove)(struct mdio_device *); + int addr; + int flags; + int reset_state; + struct gpio_desc *reset_gpio; + struct reset_control *reset_ctrl; + unsigned int reset_assert_delay; + unsigned int reset_deassert_delay; +}; + +struct mdio_device_id { + __u32 phy_id; + __u32 phy_id_mask; +}; + +struct mdio_driver_common { + struct device_driver driver; + int flags; +}; + +struct mdio_driver { + struct mdio_driver_common mdiodrv; + int (*probe)(struct mdio_device *); + void (*remove)(struct mdio_device *); + void (*shutdown)(struct mdio_device *); +}; + +struct mdiobus_devres { + struct mii_bus *mii; +}; + +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_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 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 mdu_array_info_s { + int major_version; + int minor_version; + int patch_version; + unsigned int ctime; + int level; + int size; + int nr_disks; + int raid_disks; + int md_minor; + int not_persistent; + unsigned int utime; + int state; + int active_disks; + int working_disks; + int failed_disks; + int spare_disks; + int layout; + int chunk_size; +}; + +typedef struct mdu_array_info_s mdu_array_info_t; + +struct mdu_bitmap_file_s { + char pathname[4096]; +}; + +typedef struct mdu_bitmap_file_s mdu_bitmap_file_t; + +struct mdu_disk_info_s { + int number; + int major; + int minor; + int raid_disk; + int state; +}; + +typedef struct mdu_disk_info_s mdu_disk_info_t; + +struct mdu_version_s { + int major; + int minor; + int patchlevel; +}; + +typedef struct mdu_version_s mdu_version_t; + +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 mem_cgroup_id { + int id; + refcount_t ref; +}; + +struct vmpressure { + long unsigned int scanned; + long unsigned int reclaimed; + long unsigned int tree_scanned; + long unsigned int tree_reclaimed; + spinlock_t sr_lock; + struct list_head events; + struct mutex events_lock; + struct work_struct work; +}; + +struct wb_domain { + spinlock_t lock; + struct fprop_global completions; + struct timer_list period_timer; + long unsigned int period_time; + long unsigned int dirty_limit_tstamp; + long unsigned int dirty_limit; +}; + +struct wb_completion { + atomic_t cnt; + wait_queue_head_t *waitq; +}; + +struct memcg_cgwb_frn { + u64 bdi_id; + int memcg_id; + u64 at; + struct wb_completion done; +}; + +struct memcg_vmstats; + +struct memcg_vmstats_percpu; + +struct mem_cgroup_per_node; + +struct mem_cgroup { + struct cgroup_subsys_state css; + struct mem_cgroup_id id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct page_counter memory; + union { + struct page_counter swap; + struct page_counter memsw; + }; + struct list_head memory_peaks; + struct list_head swap_peaks; + spinlock_t peaks_lock; + struct work_struct high_work; + long unsigned int zswap_max; + bool zswap_writeback; + struct vmpressure vmpressure; + bool oom_group; + int swappiness; + struct cgroup_file events_file; + struct cgroup_file events_local_file; + struct cgroup_file swap_events_file; + struct memcg_vmstats *vmstats; + atomic_long_t memory_events[9]; + atomic_long_t memory_events_local[9]; + long unsigned int socket_pressure; + int kmemcg_id; + struct obj_cgroup *objcg; + struct obj_cgroup *orig_objcg; + struct list_head objcg_list; + struct memcg_vmstats_percpu *vmstats_percpu; + struct list_head cgwb_list; + struct wb_domain cgwb_domain; + struct memcg_cgwb_frn cgwb_frn[4]; + struct deferred_split deferred_split_queue; + struct lru_gen_mm_list mm_list; + struct mem_cgroup_per_node *nodeinfo[0]; + long: 64; + long: 64; +}; + +struct mem_cgroup_reclaim_iter { + struct mem_cgroup *position; + atomic_t generation; +}; + +struct shrinker_info; + +struct mem_cgroup_per_node { + struct mem_cgroup *memcg; + struct lruvec_stats_percpu *lruvec_stats_percpu; + struct lruvec_stats *lruvec_stats; + struct shrinker_info *shrinker_info; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct lruvec lruvec; + long: 64; + long: 64; + struct cacheline_padding _pad2_; + long unsigned int lru_zone_size[25]; + struct mem_cgroup_reclaim_iter iter; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +typedef struct pglist_data pg_data_t; + +struct mem_cgroup_reclaim_cookie { + pg_data_t *pgdat; + int generation; +}; + +struct mcidev_sysfs_attribute; + +struct mem_ctl_info { + struct device dev; + const struct bus_type *bus; + struct list_head link; + struct module *owner; + long unsigned int mtype_cap; + long unsigned int edac_ctl_cap; + long unsigned int edac_cap; + long unsigned int scrub_cap; + enum scrub_type scrub_mode; + int (*set_sdram_scrub_rate)(struct mem_ctl_info *, u32); + int (*get_sdram_scrub_rate)(struct mem_ctl_info *); + void (*edac_check)(struct mem_ctl_info *); + long unsigned int (*ctl_page_to_phys)(struct mem_ctl_info *, long unsigned int); + int mc_idx; + struct csrow_info **csrows; + unsigned int nr_csrows; + unsigned int num_cschannel; + unsigned int n_layers; + struct edac_mc_layer *layers; + bool csbased; + unsigned int tot_dimms; + struct dimm_info **dimms; + struct device *pdev; + const char *mod_name; + const char *ctl_name; + const char *dev_name; + void *pvt_info; + long unsigned int start_time; + u32 ce_noinfo_count; + u32 ue_noinfo_count; + u32 ue_mc; + u32 ce_mc; + struct completion complete; + const struct mcidev_sysfs_attribute *mc_driver_sysfs_attributes; + struct delayed_work work; + struct edac_raw_error_desc error_desc; + int op_state; + struct dentry *debugfs; + u8 fake_inject_layer[3]; + bool fake_inject_ue; + u16 fake_inject_count; +}; + +struct quota_format_type; + +struct mem_dqinfo { + struct quota_format_type *dqi_format; + int dqi_fmt_id; + struct list_head dqi_dirty_list; + long unsigned int 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 mem_extent { + struct list_head hook; + long unsigned int start; + long unsigned int end; +}; + +struct mem_section_usage; + +struct mem_section { + long unsigned int section_mem_map; + struct mem_section_usage *usage; +}; + +struct mem_section_usage { + struct callback_head rcu; + long unsigned int subsection_map[1]; + long unsigned int pageblock_flags[0]; +}; + +struct mem_size_stats { + long unsigned int resident; + long unsigned int shared_clean; + long unsigned int shared_dirty; + long unsigned int private_clean; + long unsigned int private_dirty; + long unsigned int referenced; + long unsigned int anonymous; + long unsigned int lazyfree; + long unsigned int anonymous_thp; + long unsigned int shmem_thp; + long unsigned int file_thp; + long unsigned int swap; + long unsigned int shared_hugetlb; + long unsigned int private_hugetlb; + long unsigned int ksm; + u64 pss; + u64 pss_anon; + u64 pss_file; + u64 pss_shmem; + u64 pss_dirty; + u64 pss_locked; + u64 swap_pss; +}; + +struct mem_zone_bm_rtree { + struct list_head list; + struct list_head nodes; + struct list_head leaves; + long unsigned int start_pfn; + long unsigned int end_pfn; + struct rtree_node *rtree; + int levels; + unsigned int blocks; +}; + +struct memblock_region; + +struct memblock_type { + long unsigned int cnt; + long unsigned int max; + phys_addr_t total_size; + struct memblock_region *regions; + char *name; +}; + +struct memblock { + bool bottom_up; + phys_addr_t current_limit; + struct memblock_type memory; + struct memblock_type reserved; +}; + +struct memblock_region { + phys_addr_t base; + phys_addr_t size; + enum memblock_flags flags; + int nid; +}; + +struct membuf { + void *p; + size_t left; +}; + +struct memcg_stock_pcp { + local_lock_t stock_lock; + struct mem_cgroup *cached; + unsigned int nr_pages; + struct obj_cgroup *cached_objcg; + struct pglist_data *cached_pgdat; + unsigned int nr_bytes; + int nr_slab_reclaimable_b; + int nr_slab_unreclaimable_b; + struct work_struct work; + long unsigned int flags; +}; + +struct memcg_vmstats { + long int state[39]; + long unsigned int events[27]; + long int state_local[39]; + long unsigned int events_local[27]; + long int state_pending[39]; + long unsigned int events_pending[27]; + atomic64_t stats_updates; +}; + +struct memcg_vmstats_percpu { + unsigned int stats_updates; + struct memcg_vmstats_percpu *parent; + struct memcg_vmstats *vmstats; + long int state[39]; + long unsigned int events[27]; + long int state_prev[39]; + long unsigned int events_prev[27]; + long: 64; +}; + +struct memdev { + const char *name; + const struct file_operations *fops; + fmode_t fmode; + umode_t mode; +}; + +struct memdev_dmi_entry { + u8 type; + u8 length; + u16 handle; + u16 phys_mem_array_handle; + u16 mem_err_info_handle; + u16 total_width; + u16 data_width; + u16 size; + u8 form_factor; + u8 device_set; + u8 device_locator; + u8 bank_locator; + u8 memory_type; + u16 type_detail; + u16 speed; + u8 manufacturer; + u8 serial_number; + u8 asset_tag; + u8 part_number; + u8 attributes; + u32 extended_size; + u16 conf_mem_clk_speed; +} __attribute__((packed)); + +struct memmap_attribute { + struct attribute attr; + ssize_t (*show)(struct firmware_map_entry *, char *); +}; + +struct memory_bitmap { + struct list_head zones; + struct linked_page *p_list; + struct bm_position cur; +}; + +struct memory_group; + +struct memory_block { + long unsigned int start_section_nr; + long unsigned int state; + int online_type; + int nid; + struct zone *zone; + struct device dev; + struct vmem_altmap *altmap; + struct memory_group *group; + struct list_head group_next; + atomic_long_t nr_hwpoison; +}; + +struct memory_dev_type { + struct list_head tier_sibling; + struct list_head list; + int adistance; + nodemask_t nodes; + struct kref kref; +}; + +struct memory_failure_entry { + long unsigned int pfn; + int flags; +}; + +struct memory_failure_cpu { + struct { + union { + struct __kfifo kfifo; + struct memory_failure_entry *type; + const struct memory_failure_entry *const_type; + char (*rectype)[0]; + struct memory_failure_entry *ptr; + const struct memory_failure_entry *ptr_const; + }; + struct memory_failure_entry buf[16]; + } fifo; + raw_spinlock_t lock; + struct work_struct work; +}; + +struct memory_failure_stats { + long unsigned int total; + long unsigned int ignored; + long unsigned int failed; + long unsigned int delayed; + long unsigned int recovered; +}; + +struct memory_group { + int nid; + struct list_head memory_blocks; + long unsigned int present_kernel_pages; + long unsigned int present_movable_pages; + bool is_dynamic; + union { + struct { + long unsigned int max_pages; + } s; + struct { + long unsigned int unit_pages; + } d; + }; +}; + +struct memory_initiator { + struct list_head node; + unsigned int processor_pxm; + bool has_cpu; +}; + +struct memory_locality { + struct list_head node; + struct acpi_hmat_locality *hmat_loc; +}; + +struct memory_notify { + long unsigned int altmap_start_pfn; + long unsigned int altmap_nr_pages; + long unsigned int start_pfn; + long unsigned int nr_pages; + int status_change_nid_normal; + int status_change_nid; +}; + +struct memory_stat { + const char *name; + unsigned int idx; +}; + +struct node_cache_attrs { + enum cache_indexing indexing; + enum cache_write_policy write_policy; + u64 size; + u16 line_size; + u8 level; +}; + +struct memory_target { + struct list_head node; + unsigned int memory_pxm; + unsigned int processor_pxm; + struct resource memregions; + struct access_coordinate coord[4]; + struct list_head caches; + struct node_cache_attrs cache_attrs; + u8 gen_port_device_handle[16]; + bool registered; + bool ext_updated; +}; + +struct memory_tier { + struct list_head list; + struct list_head memory_types; + int adistance_start; + struct device dev; + nodemask_t lower_tier_mask; +}; + +struct mempolicy { + atomic_t refcnt; + short unsigned int mode; + short unsigned int flags; + nodemask_t nodes; + int home_node; + union { + nodemask_t cpuset_mems_allowed; + nodemask_t user_nodemask; + } w; +}; + +struct mempolicy_operations { + int (*create)(struct mempolicy *, const nodemask_t *); + void (*rebind)(struct mempolicy *, const nodemask_t *); +}; + +struct memtype { + u64 start; + u64 end; + u64 subtree_max_end; + enum page_cache_mode type; + struct rb_node rb; +}; + +struct menu_device { + int needs_update; + int tick_wakeup; + u64 next_timer_ns; + unsigned int bucket; + unsigned int correction_factor[6]; + unsigned int intervals[8]; + int interval_ptr; +}; + +struct meta_entry { + u64 data_block; + unsigned int index_block; + short unsigned int offset; + short unsigned int pad; +}; + +struct meta_index { + unsigned int inode_number; + unsigned int offset; + short unsigned int entries; + short unsigned int skip; + short unsigned int locked; + short unsigned int pad; + struct meta_entry meta_entry[127]; +}; + +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 mf6cctl { + struct sockaddr_in6 mf6cc_origin; + struct sockaddr_in6 mf6cc_mcastgrp; + mifi_t mf6cc_parent; + struct if_set mf6cc_ifset; +}; + +struct mr_mfc { + struct rhlist_head mnode; + short unsigned int mfc_parent; + int mfc_flags; + union { + struct { + long unsigned int expires; + struct sk_buff_head unresolved; + } unres; + struct { + long unsigned int last_assert; + int minvif; + int maxvif; + atomic_long_t bytes; + atomic_long_t pkt; + atomic_long_t wrong_if; + long unsigned int 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 mfc6_cache_cmp_arg { + struct in6_addr mf6c_mcastgrp; + struct in6_addr mf6c_origin; +}; + +struct mfc6_cache { + struct mr_mfc _c; + union { + struct { + struct in6_addr mf6c_mcastgrp; + struct in6_addr mf6c_origin; + }; + struct mfc6_cache_cmp_arg cmparg; + }; +}; + +struct mfc_cache_cmp_arg { + __be32 mfc_mcastgrp; + __be32 mfc_origin; +}; + +struct mfc_cache { + struct mr_mfc _c; + union { + struct { + __be32 mfc_mcastgrp; + __be32 mfc_origin; + }; + struct mfc_cache_cmp_arg cmparg; + }; +}; + +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 mfd_cell_acpi_match; + +struct mfd_cell { + const char *name; + int id; + int level; + int (*suspend)(struct platform_device *); + int (*resume)(struct platform_device *); + const void *platform_data; + size_t pdata_size; + const struct mfd_cell_acpi_match *acpi_match; + const struct software_node *swnode; + const char *of_compatible; + u64 of_reg; + bool use_of_reg; + int num_resources; + const struct resource *resources; + bool ignore_resource_conflicts; + bool pm_runtime_no_callbacks; + int num_parent_supplies; + const char * const *parent_supplies; +}; + +struct mfd_cell_acpi_match { + const char *pnpid; + const long long unsigned int adr; +}; + +struct mfd_of_node_entry { + struct list_head list; + struct device *dev; + struct device_node *np; +}; + +struct mhp_params { + struct vmem_altmap *altmap; + pgprot_t pgprot; + struct dev_pagemap *pgmap; +}; + +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 microcode_header_intel { + unsigned int hdrver; + unsigned int rev; + unsigned int date; + unsigned int sig; + unsigned int cksum; + unsigned int ldrver; + unsigned int pf; + unsigned int datasize; + unsigned int totalsize; + unsigned int metasize; + unsigned int min_req_ver; + unsigned int reserved; +}; + +struct microcode_intel { + struct microcode_header_intel hdr; + unsigned int bits[0]; +}; + +struct microcode_ops { + enum ucode_state (*request_microcode_fw)(int, struct device *); + void (*microcode_fini_cpu)(int); + enum ucode_state (*apply_microcode)(int); + int (*collect_cpu_info)(int, struct cpu_signature *); + void (*finalize_late_load)(int); + unsigned int nmi_safe: 1; + unsigned int use_nmi: 1; +}; + +struct mid8250_board; + +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 mid8250_board { + long unsigned int freq; + unsigned int base_baud; + unsigned int bar; + int (*setup)(struct mid8250 *, struct uart_port *); + void (*exit)(struct mid8250 *); +}; + +struct mif6ctl { + mifi_t mif6c_mifi; + unsigned char mif6c_flags; + unsigned char vifc_threshold; + __u16 mif6c_pifi; + unsigned int vifc_rate_limit; +}; + +struct migrate_pages_stats { + int nr_succeeded; + int nr_failed_pages; + int nr_thp_succeeded; + int nr_thp_failed; + int nr_thp_split; + int nr_split; +}; + +struct 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 migrate_vma { + struct vm_area_struct *vma; + long unsigned int *dst; + long unsigned int *src; + long unsigned int cpages; + long unsigned int npages; + long unsigned int start; + long unsigned int end; + void *pgmap_owner; + long unsigned int flags; + struct page *fault_page; +}; + +struct set_affinity_pending; + +struct migration_arg { + struct task_struct *task; + int dest_cpu; + struct set_affinity_pending *pending; +}; + +struct migration_mpol { + struct mempolicy *pol; + long unsigned int ilx; +}; + +struct migration_swap_arg { + struct task_struct *src_task; + struct task_struct *dst_task; + int src_cpu; + int dst_cpu; +}; + +struct migration_target_control { + int nid; + nodemask_t *nmask; + gfp_t gfp_mask; + enum migrate_reason reason; +}; + +struct phy_package_shared; + +struct mii_bus { + struct module *owner; + const char *name; + char id[61]; + void *priv; + int (*read)(struct mii_bus *, int, int); + int (*write)(struct mii_bus *, int, int, u16); + int (*read_c45)(struct mii_bus *, int, int, int); + int (*write_c45)(struct mii_bus *, int, int, int, u16); + int (*reset)(struct mii_bus *); + struct mdio_bus_stats stats[32]; + struct mutex mdio_lock; + struct device *parent; + enum { + MDIOBUS_ALLOCATED = 1, + MDIOBUS_REGISTERED = 2, + MDIOBUS_UNREGISTERED = 3, + MDIOBUS_RELEASED = 4, + } state; + struct device dev; + struct mdio_device *mdio_map[32]; + u32 phy_mask; + u32 phy_ignore_ta_mask; + int irq[32]; + int reset_delay_us; + int reset_post_delay_us; + struct gpio_desc *reset_gpiod; + struct mutex shared_lock; + struct phy_package_shared *shared[32]; +}; + +struct mii_ioctl_data { + __u16 phy_id; + __u16 reg_num; + __u16 val_in; + __u16 val_out; +}; + +struct mii_timestamper { + bool (*rxtstamp)(struct mii_timestamper *, struct sk_buff *, int); + void (*txtstamp)(struct mii_timestamper *, struct sk_buff *, int); + int (*hwtstamp)(struct mii_timestamper *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); + void (*link_state)(struct mii_timestamper *, struct phy_device *); + int (*ts_info)(struct mii_timestamper *, struct kernel_ethtool_ts_info *); + struct device *device; +}; + +struct mii_timestamping_ctrl { + struct mii_timestamper * (*probe_channel)(struct device *, unsigned int); + void (*release_channel)(struct device *, struct mii_timestamper *); +}; + +struct mii_timestamping_desc { + struct list_head list; + struct mii_timestamping_ctrl *ctrl; + struct device *device; +}; + +struct min_heap_callbacks { + bool (*less)(const void *, const void *, void *); + void (*swp)(void *, void *, void *); +}; + +struct min_heap_char { + size_t nr; + size_t size; + char *data; + char preallocated[0]; +}; + +typedef struct min_heap_char min_heap_char; + +struct tcf_proto; + +struct mini_Qdisc { + struct tcf_proto *filter_list; + struct tcf_block *block; + struct gnet_stats_basic_sync *cpu_bstats; + struct gnet_stats_queue *cpu_qstats; + long unsigned int rcu_state; +}; + +struct mini_Qdisc_pair { + struct mini_Qdisc miniq1; + struct mini_Qdisc miniq2; + struct mini_Qdisc **p_miniq; +}; + +struct minimode { + short int w; + short int h; + short int r; + short int rb; +}; + +struct minmax_sample { + u32 t; + u32 v; +}; + +struct minmax { + struct minmax_sample s[3]; +}; + +struct mipi_dsi_host; + +struct mipi_dsi_device { + struct mipi_dsi_host *host; + struct device dev; + bool attached; + char name[20]; + unsigned int channel; + unsigned int lanes; + enum mipi_dsi_pixel_format format; + long unsigned int mode_flags; + long unsigned int hs_rate; + long unsigned int lp_rate; + struct drm_dsc_config *dsc; +}; + +struct mipi_dsi_device_info { + char type[20]; + u32 channel; + struct device_node *node; +}; + +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_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 mipi_dsi_multi_context { + struct mipi_dsi_device *dsi; + int accum_err; +}; + +struct mipi_dsi_packet { + size_t size; + u8 header[4]; + size_t payload_length; + const u8 *payload; +}; + +struct misc_res { + u64 max; + atomic64_t watermark; + atomic64_t usage; + atomic64_t events; + atomic64_t events_local; +}; + +struct misc_cg { + struct cgroup_subsys_state css; + struct cgroup_file events_file; + struct cgroup_file events_local_file; + struct misc_res res[2]; +}; + +struct miscdevice { + int minor; + const char *name; + const struct file_operations *fops; + struct list_head list; + struct device *parent; + struct device *this_device; + const struct attribute_group **groups; + const char *nodename; + umode_t mode; +}; + +struct mld2_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + struct in6_addr grec_mca; + struct in6_addr grec_src[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 mld2_report { + struct icmp6hdr mld2r_hdr; + struct mld2_grec mld2r_grec[0]; +}; + +struct mld_msg { + struct icmp6hdr mld_hdr; + struct in6_addr mld_mca; +}; + +struct mlock_fbatch { + local_lock_t lock; + struct folio_batch fbatch; +}; + +struct mm_cid { + u64 time; + int cid; + int recent_cid; +}; + +struct mm_reply_data { + struct ethnl_reply_data base; + struct ethtool_mm_state state; + struct ethtool_mm_stats stats; +}; + +struct xol_area; + +struct uprobes_state { + struct xol_area *xol_area; +}; + +struct mmu_notifier_subscriptions; + +struct mm_struct { + struct { + struct { + atomic_t mm_count; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct maple_tree mm_mt; + long unsigned int mmap_base; + long unsigned int mmap_legacy_base; + long unsigned int mmap_compat_base; + long unsigned int mmap_compat_legacy_base; + long unsigned int task_size; + pgd_t *pgd; + atomic_t membarrier_state; + atomic_t mm_users; + struct mm_cid *pcpu_cid; + long unsigned int mm_cid_next_scan; + unsigned int nr_cpus_allowed; + atomic_t max_nr_cid; + raw_spinlock_t cpus_allowed_lock; + atomic_long_t pgtables_bytes; + int map_count; + spinlock_t page_table_lock; + struct rw_semaphore mmap_lock; + struct list_head mmlist; + seqcount_t mm_lock_seq; + long unsigned int hiwater_rss; + long unsigned int hiwater_vm; + long unsigned int total_vm; + long unsigned int locked_vm; + atomic64_t pinned_vm; + long unsigned int data_vm; + long unsigned int exec_vm; + long unsigned int stack_vm; + long unsigned int def_flags; + seqcount_t write_protect_seq; + spinlock_t arg_lock; + long unsigned int start_code; + long unsigned int end_code; + long unsigned int start_data; + long unsigned int end_data; + long unsigned int start_brk; + long unsigned int brk; + long unsigned int start_stack; + long unsigned int arg_start; + long unsigned int arg_end; + long unsigned int env_start; + long unsigned int env_end; + long unsigned int saved_auxv[52]; + struct percpu_counter rss_stat[4]; + struct linux_binfmt *binfmt; + mm_context_t context; + long unsigned int flags; + spinlock_t ioctx_lock; + struct kioctx_table *ioctx_table; + struct task_struct *owner; + struct user_namespace *user_ns; + struct file *exe_file; + struct mmu_notifier_subscriptions *notifier_subscriptions; + long unsigned int numa_next_scan; + long unsigned int numa_scan_offset; + int numa_scan_seq; + atomic_t tlb_flush_pending; + atomic_t tlb_flush_batched; + struct uprobes_state uprobes_state; + atomic_long_t hugetlb_usage; + struct work_struct async_put_work; + struct iommu_mm_data *iommu_mm; + long unsigned int ksm_merging_pages; + long unsigned int ksm_rmap_items; + atomic_long_t ksm_zero_pages; + struct { + struct list_head list; + long unsigned int bitmap; + struct mem_cgroup *memcg; + } lru_gen; + long: 64; + }; + long unsigned int cpu_bitmap[0]; +}; + +struct mm_struct__safe_rcu_or_null { + struct file *exe_file; +}; + +struct mm_walk_ops; + +struct mm_walk { + const struct mm_walk_ops *ops; + struct mm_struct *mm; + pgd_t *pgd; + struct vm_area_struct *vma; + enum page_walk_action action; + bool no_vma; + void *private; +}; + +struct mm_walk_ops { + int (*pgd_entry)(pgd_t *, long unsigned int, long unsigned int, struct mm_walk *); + int (*p4d_entry)(p4d_t *, long unsigned int, long unsigned int, struct mm_walk *); + int (*pud_entry)(pud_t *, long unsigned int, long unsigned int, struct mm_walk *); + int (*pmd_entry)(pmd_t *, long unsigned int, long unsigned int, struct mm_walk *); + int (*pte_entry)(pte_t *, long unsigned int, long unsigned int, struct mm_walk *); + int (*pte_hole)(long unsigned int, long unsigned int, int, struct mm_walk *); + int (*hugetlb_entry)(pte_t *, long unsigned int, long unsigned int, long unsigned int, struct mm_walk *); + int (*test_walk)(long unsigned int, long unsigned int, struct mm_walk *); + int (*pre_vma)(long unsigned int, long unsigned int, struct mm_walk *); + void (*post_vma)(struct mm_walk *); + int (*install_pte)(long unsigned int, long unsigned int, pte_t *, struct mm_walk *); + enum page_walk_lock walk_lock; +}; + +struct mmap_arg_struct32 { + unsigned int addr; + unsigned int len; + unsigned int prot; + unsigned int flags; + unsigned int fd; + unsigned int offset; +}; + +struct vma_munmap_struct { + struct vma_iterator *vmi; + struct vm_area_struct *vma; + struct vm_area_struct *prev; + struct vm_area_struct *next; + struct list_head *uf; + long unsigned int start; + long unsigned int end; + long unsigned int unmap_start; + long unsigned int unmap_end; + int vma_count; + bool unlock; + bool clear_ptes; + long unsigned int nr_pages; + long unsigned int locked_vm; + long unsigned int nr_accounted; + long unsigned int exec_vm; + long unsigned int stack_vm; + long unsigned int data_vm; +}; + +struct mmap_state { + struct mm_struct *mm; + struct vma_iterator *vmi; + long unsigned int addr; + long unsigned int end; + long unsigned int pgoff; + long unsigned int pglen; + long unsigned int flags; + struct file *file; + long unsigned int charged; + bool retry_merge; + struct vm_area_struct *prev; + struct vm_area_struct *next; + struct vma_munmap_struct vms; + struct ma_state mas_detach; + struct maple_tree mt_detach; +}; + +struct mmap_unlock_irq_work { + struct irq_work irq_work; + struct mm_struct *mm; +}; + +struct uhs2_command { + u16 header; + u16 arg; + __be32 payload[2]; + u8 payload_len; + u8 packet_len; + u8 tmode_half_duplex; + u8 uhs2_resp[20]; + u8 uhs2_resp_len; +}; + +struct mmc_command; + +struct mmc_data; + +struct mmc_host; + +struct mmc_request { + struct mmc_command *sbc; + struct mmc_command *cmd; + struct mmc_data *data; + struct mmc_command *stop; + struct completion completion; + struct completion cmd_completion; + void (*done)(struct mmc_request *); + void (*recovery_notifier)(struct mmc_request *); + struct mmc_host *host; + bool cap_cmd_during_tfr; + int tag; + const struct bio_crypt_ctx *crypto_ctx; + int crypto_key_slot; + struct uhs2_command uhs2_cmd; +}; + +struct mmc_command { + u32 opcode; + u32 arg; + u32 resp[4]; + unsigned int flags; + unsigned int retries; + int error; + unsigned int busy_timeout; + struct mmc_data *data; + struct mmc_request *mrq; + struct uhs2_command *uhs2_cmd; + bool has_ext_addr; + u8 ext_addr; +}; + +struct mmc_data { + unsigned int timeout_ns; + unsigned int timeout_clks; + unsigned int blksz; + unsigned int blocks; + unsigned int blk_addr; + int error; + unsigned int flags; + unsigned int bytes_xfered; + struct mmc_command *stop; + struct mmc_request *mrq; + unsigned int sg_len; + int sg_count; + struct scatterlist *sg; + s32 host_cookie; +}; + +struct mmc_blk_request { + struct mmc_request mrq; + struct mmc_command sbc; + struct mmc_command cmd; + struct mmc_command stop; + struct mmc_data data; +}; + +struct mmc_bus_ops { + void (*remove)(struct mmc_host *); + void (*detect)(struct mmc_host *); + int (*pre_suspend)(struct mmc_host *); + int (*suspend)(struct mmc_host *); + int (*resume)(struct mmc_host *); + int (*runtime_suspend)(struct mmc_host *); + int (*runtime_resume)(struct mmc_host *); + int (*alive)(struct mmc_host *); + int (*shutdown)(struct mmc_host *); + int (*hw_reset)(struct mmc_host *); + int (*sw_reset)(struct mmc_host *); + bool (*cache_enabled)(struct mmc_host *); + int (*flush_cache)(struct mmc_host *); +}; + +struct mmc_busy_data { + struct mmc_card *card; + bool retry_crc_err; + enum mmc_busy_cmd busy_cmd; +}; + +struct mmc_cid { + unsigned int manfid; + char prod_name[8]; + unsigned char prv; + unsigned int serial; + short unsigned int oemid; + short unsigned int year; + unsigned char hwrev; + unsigned char fwrev; + unsigned char month; +}; + +struct mmc_csd { + unsigned char structure; + unsigned char mmca_vsn; + short unsigned int cmdclass; + short unsigned int taac_clks; + unsigned int taac_ns; + unsigned int c_size; + unsigned int r2w_factor; + unsigned int max_dtr; + unsigned int erase_size; + unsigned int wp_grp_size; + unsigned int read_blkbits; + unsigned int write_blkbits; + sector_t capacity; + unsigned int read_partial: 1; + unsigned int read_misalign: 1; + unsigned int write_partial: 1; + unsigned int write_misalign: 1; + unsigned int dsr_imp: 1; +}; + +struct mmc_ext_csd { + u8 rev; + u8 erase_group_def; + u8 sec_feature_support; + u8 rel_sectors; + u8 rel_param; + bool enhanced_rpmb_supported; + u8 part_config; + u8 cache_ctrl; + u8 rst_n_function; + unsigned int part_time; + unsigned int sa_timeout; + unsigned int generic_cmd6_time; + unsigned int power_off_longtime; + u8 power_off_notification; + unsigned int hs_max_dtr; + unsigned int hs200_max_dtr; + unsigned int sectors; + unsigned int hc_erase_size; + unsigned int hc_erase_timeout; + unsigned int sec_trim_mult; + unsigned int sec_erase_mult; + unsigned int trim_timeout; + bool partition_setting_completed; + long long unsigned int enhanced_area_offset; + unsigned int enhanced_area_size; + unsigned int cache_size; + bool hpi_en; + bool hpi; + unsigned int hpi_cmd; + bool bkops; + bool man_bkops_en; + bool auto_bkops_en; + unsigned int data_sector_size; + unsigned int data_tag_unit_size; + unsigned int boot_ro_lock; + bool boot_ro_lockable; + bool ffu_capable; + bool cmdq_en; + bool cmdq_support; + unsigned int cmdq_depth; + u8 fwrev[8]; + u8 raw_exception_status; + u8 raw_partition_support; + u8 raw_rpmb_size_mult; + u8 raw_erased_mem_count; + u8 strobe_support; + u8 raw_ext_csd_structure; + u8 raw_card_type; + u8 raw_driver_strength; + u8 out_of_int_time; + u8 raw_pwr_cl_52_195; + u8 raw_pwr_cl_26_195; + u8 raw_pwr_cl_52_360; + u8 raw_pwr_cl_26_360; + u8 raw_s_a_timeout; + u8 raw_hc_erase_gap_size; + u8 raw_erase_timeout_mult; + u8 raw_hc_erase_grp_size; + u8 raw_boot_mult; + u8 raw_sec_trim_mult; + u8 raw_sec_erase_mult; + u8 raw_sec_feature_support; + u8 raw_trim_mult; + u8 raw_pwr_cl_200_195; + u8 raw_pwr_cl_200_360; + u8 raw_pwr_cl_ddr_52_195; + u8 raw_pwr_cl_ddr_52_360; + u8 raw_pwr_cl_ddr_200_360; + u8 raw_bkops_status; + u8 raw_sectors[4]; + u8 pre_eol_info; + u8 device_life_time_est_typ_a; + u8 device_life_time_est_typ_b; + unsigned int feature_support; +}; + +struct sd_scr { + unsigned char sda_vsn; + unsigned char sda_spec3; + unsigned char sda_spec4; + unsigned char sda_specx; + unsigned char bus_widths; + unsigned char cmds; +}; + +struct sd_ssr { + unsigned int au; + unsigned int erase_timeout; + unsigned int erase_offset; +}; + +struct sd_switch_caps { + unsigned int hs_max_dtr; + unsigned int uhs_max_dtr; + unsigned int sd3_bus_mode; + unsigned int sd3_drv_type; + unsigned int sd3_curr_limit; +}; + +struct sd_ext_reg { + u8 fno; + u8 page; + u16 offset; + u8 rev; + u8 feature_enabled; + u8 feature_support; +}; + +struct sd_uhs2_config { + u32 node_id; + u32 n_fcu; + u32 maxblk_len; + u8 n_lanes; + u8 dadr_len; + u8 app_type; + u8 phy_minor_rev; + u8 phy_major_rev; + u8 can_hibernate; + u8 n_lss_sync; + u8 n_lss_dir; + u8 link_minor_rev; + u8 link_major_rev; + u8 dev_type; + u8 n_data_gap; + u32 n_fcu_set; + u32 maxblk_len_set; + u8 n_lanes_set; + u8 speed_range_set; + u8 n_lss_sync_set; + u8 n_lss_dir_set; + u8 n_data_gap_set; + u8 max_retry_set; +}; + +struct sdio_cccr { + unsigned int sdio_vsn; + unsigned int sd_vsn; + unsigned int multi_block: 1; + unsigned int low_speed: 1; + unsigned int wide_bus: 1; + unsigned int high_power: 1; + unsigned int high_speed: 1; + unsigned int disable_cd: 1; + unsigned int enable_async_irq: 1; +}; + +struct sdio_cis { + short unsigned int vendor; + short unsigned int device; + short unsigned int blksize; + unsigned int max_dtr; +}; + +struct mmc_part { + u64 size; + unsigned int part_cfg; + char name[20]; + bool force_ro; + unsigned int area_type; +}; + +struct sdio_func_tuple; + +struct mmc_card { + struct mmc_host *host; + struct device dev; + u32 ocr; + unsigned int rca; + unsigned int type; + unsigned int state; + unsigned int quirks; + unsigned int quirk_max_rate; + bool written_flag; + bool reenable_cmdq; + unsigned int erase_size; + unsigned int erase_shift; + unsigned int pref_erase; + unsigned int eg_boundary; + unsigned int erase_arg; + u8 erased_byte; + unsigned int wp_grp_size; + u32 raw_cid[4]; + u32 raw_csd[4]; + u32 raw_scr[2]; + u32 raw_ssr[16]; + struct mmc_cid cid; + struct mmc_csd csd; + struct mmc_ext_csd ext_csd; + struct sd_scr scr; + struct sd_ssr ssr; + struct sd_switch_caps sw_caps; + struct sd_ext_reg ext_power; + struct sd_ext_reg ext_perf; + struct sd_uhs2_config uhs2_config; + unsigned int sdio_funcs; + atomic_t sdio_funcs_probed; + struct sdio_cccr cccr; + struct sdio_cis cis; + struct sdio_func *sdio_func[7]; + struct sdio_func *sdio_single_irq; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; + unsigned int sd_bus_speed; + unsigned int mmc_avail_type; + unsigned int drive_strength; + struct dentry *debugfs_root; + struct mmc_part part[7]; + unsigned int nr_parts; + struct workqueue_struct *complete_wq; +}; + +struct mmc_clk_phase { + bool valid; + u16 in_deg; + u16 out_deg; +}; + +struct mmc_clk_phase_map { + struct mmc_clk_phase phase[11]; +}; + +struct mmc_cqe_ops { + int (*cqe_enable)(struct mmc_host *, struct mmc_card *); + void (*cqe_disable)(struct mmc_host *); + int (*cqe_request)(struct mmc_host *, struct mmc_request *); + void (*cqe_post_req)(struct mmc_host *, struct mmc_request *); + void (*cqe_off)(struct mmc_host *); + int (*cqe_wait_for_idle)(struct mmc_host *); + bool (*cqe_timeout)(struct mmc_host *, struct mmc_request *, bool *); + void (*cqe_recovery_start)(struct mmc_host *); + void (*cqe_recovery_finish)(struct mmc_host *); +}; + +struct mmc_ctx { + struct task_struct *task; +}; + +struct mmc_driver { + struct device_driver drv; + int (*probe)(struct mmc_card *); + void (*remove)(struct mmc_card *); + void (*shutdown)(struct mmc_card *); +}; + +struct mmc_fixup { + const char *name; + u64 rev_start; + u64 rev_end; + unsigned int manfid; + short unsigned int oemid; + short unsigned int year; + unsigned char month; + u16 cis_vendor; + u16 cis_device; + unsigned int ext_csd_rev; + const char *of_compatible; + void (*vendor_fixup)(struct mmc_card *, int); + int data; +}; + +struct mmc_gpio { + struct gpio_desc *ro_gpio; + struct gpio_desc *cd_gpio; + irq_handler_t cd_gpio_isr; + char *ro_label; + char *cd_label; + u32 cd_debounce_delay_ms; + int cd_irq; +}; + +struct sd_uhs2_caps { + u32 dap; + u32 gap; + u32 group_desc; + u32 maxblk_len; + u32 n_fcu; + u8 n_lanes; + u8 addr64; + u8 card_type; + u8 phy_rev; + u8 speed_range; + u8 n_lss_sync; + u8 n_lss_dir; + u8 link_rev; + u8 host_type; + u8 n_data_gap; + u32 maxblk_len_set; + u32 n_fcu_set; + u8 n_lanes_set; + u8 n_lss_sync_set; + u8 n_lss_dir_set; + u8 n_data_gap_set; + u8 max_retry_set; +}; + +struct mmc_ios { + unsigned int clock; + short unsigned int vdd; + unsigned int power_delay_ms; + unsigned char bus_mode; + unsigned char chip_select; + unsigned char power_mode; + unsigned char bus_width; + unsigned char timing; + unsigned char signal_voltage; + unsigned char vqmmc2_voltage; + unsigned char drv_type; + bool enhanced_strobe; +}; + +struct mmc_slot { + int cd_irq; + bool cd_wake_enabled; + void *handler_priv; +}; + +struct mmc_supply { + struct regulator *vmmc; + struct regulator *vqmmc; + struct regulator *vqmmc2; +}; + +struct mmc_host_ops; + +struct mmc_pwrseq; + +struct mmc_host { + struct device *parent; + struct device class_dev; + int index; + const struct mmc_host_ops *ops; + struct mmc_pwrseq *pwrseq; + unsigned int f_min; + unsigned int f_max; + unsigned int f_init; + u32 ocr_avail; + u32 ocr_avail_sdio; + u32 ocr_avail_sd; + u32 ocr_avail_mmc; + struct wakeup_source *ws; + u32 max_current_330; + u32 max_current_300; + u32 max_current_180; + u32 caps; + u32 caps2; + bool uhs2_sd_tran; + bool uhs2_app_cmd; + struct sd_uhs2_caps uhs2_caps; + int fixed_drv_type; + mmc_pm_flag_t pm_caps; + unsigned int max_seg_size; + short unsigned int max_segs; + short unsigned int unused; + unsigned int max_req_size; + unsigned int max_blk_size; + unsigned int max_blk_count; + unsigned int max_busy_timeout; + spinlock_t lock; + struct mmc_ios ios; + unsigned int use_spi_crc: 1; + unsigned int claimed: 1; + unsigned int doing_init_tune: 1; + unsigned int can_retune: 1; + unsigned int doing_retune: 1; + unsigned int retune_now: 1; + unsigned int retune_paused: 1; + unsigned int retune_crc_disable: 1; + unsigned int can_dma_map_merge: 1; + unsigned int vqmmc_enabled: 1; + int rescan_disable; + int rescan_entered; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct timer_list retune_timer; + bool trigger_card_event; + struct mmc_card *card; + wait_queue_head_t wq; + struct mmc_ctx *claimer; + int claim_cnt; + struct mmc_ctx default_ctx; + struct delayed_work detect; + int detect_change; + struct mmc_slot slot; + const struct mmc_bus_ops *bus_ops; + unsigned int sdio_irqs; + struct task_struct *sdio_irq_thread; + struct work_struct sdio_irq_work; + bool sdio_irq_pending; + atomic_t sdio_irq_thread_abort; + mmc_pm_flag_t pm_flags; + struct led_trigger *led; + bool regulator_enabled; + struct mmc_supply supply; + struct dentry *debugfs_root; + struct mmc_request *ongoing_mrq; + unsigned int actual_clock; + unsigned int slotno; + int dsr_req; + u32 dsr; + const struct mmc_cqe_ops *cqe_ops; + void *cqe_private; + int cqe_qdepth; + bool cqe_enabled; + bool cqe_on; + struct blk_crypto_profile crypto_profile; + bool hsq_enabled; + int hsq_depth; + u32 err_stats[15]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long unsigned int private[0]; +}; + +struct mmc_host_ops { + void (*post_req)(struct mmc_host *, struct mmc_request *, int); + void (*pre_req)(struct mmc_host *, struct mmc_request *); + void (*request)(struct mmc_host *, struct mmc_request *); + int (*request_atomic)(struct mmc_host *, struct mmc_request *); + void (*set_ios)(struct mmc_host *, struct mmc_ios *); + int (*get_ro)(struct mmc_host *); + int (*get_cd)(struct mmc_host *); + void (*enable_sdio_irq)(struct mmc_host *, int); + void (*ack_sdio_irq)(struct mmc_host *); + void (*init_card)(struct mmc_host *, struct mmc_card *); + int (*start_signal_voltage_switch)(struct mmc_host *, struct mmc_ios *); + int (*card_busy)(struct mmc_host *); + int (*execute_tuning)(struct mmc_host *, u32); + int (*prepare_hs400_tuning)(struct mmc_host *, struct mmc_ios *); + int (*execute_hs400_tuning)(struct mmc_host *, struct mmc_card *); + int (*prepare_sd_hs_tuning)(struct mmc_host *, struct mmc_card *); + int (*execute_sd_hs_tuning)(struct mmc_host *, struct mmc_card *); + int (*hs400_prepare_ddr)(struct mmc_host *); + void (*hs400_downgrade)(struct mmc_host *); + void (*hs400_complete)(struct mmc_host *); + void (*hs400_enhanced_strobe)(struct mmc_host *, struct mmc_ios *); + int (*select_drive_strength)(struct mmc_card *, unsigned int, int, int, int *); + void (*card_hw_reset)(struct mmc_host *); + void (*card_event)(struct mmc_host *); + int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); + int (*init_sd_express)(struct mmc_host *, struct mmc_ios *); + int (*uhs2_control)(struct mmc_host *, enum sd_uhs2_operation); +}; + +struct mmc_op_cond_busy_data { + struct mmc_host *host; + u32 ocr; + struct mmc_command *cmd; +}; + +struct mmc_pwrseq_ops; + +struct mmc_pwrseq { + const struct mmc_pwrseq_ops *ops; + struct device *dev; + struct list_head pwrseq_node; + struct module *owner; +}; + +struct mmc_pwrseq_ops { + void (*pre_power_on)(struct mmc_host *); + void (*post_power_on)(struct mmc_host *); + void (*power_off)(struct mmc_host *); + void (*reset)(struct mmc_host *); +}; + +struct mmc_queue_req { + struct mmc_blk_request brq; + struct scatterlist *sg; + enum mmc_drv_op drv_op; + int drv_op_result; + void *drv_op_data; + unsigned int ioc_count; + int retries; +}; + +struct mminit_pfnnid_cache { + long unsigned int last_start; + long unsigned int last_end; + int last_nid; +}; + +struct mmiotrace_map { + resource_size_t phys; + long unsigned int virt; + long unsigned int len; + int map_id; + unsigned char opcode; +}; + +struct mmiotrace_rw { + resource_size_t phys; + long unsigned int value; + long unsigned int pc; + int map_id; + unsigned char opcode; + unsigned char width; +}; + +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 mmpin { + struct user_struct *user; + unsigned int num_pg; +}; + +struct user_msghdr { + void *msg_name; + int msg_namelen; + struct iovec *msg_iov; + __kernel_size_t msg_iovlen; + void *msg_control; + __kernel_size_t msg_controllen; + unsigned int msg_flags; +}; + +struct mmsghdr { + struct user_msghdr msg_hdr; + unsigned int msg_len; +}; + +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_table_batch; + +struct mmu_gather { + struct mm_struct *mm; + struct mmu_table_batch *batch; + long unsigned int start; + long unsigned int 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 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; + long unsigned int invalidate_seq; +}; + +struct mmu_interval_notifier_ops { + bool (*invalidate)(struct mmu_interval_notifier *, const struct mmu_notifier_range *, long unsigned int); +}; + +struct mmu_notifier_ops { + void (*release)(struct mmu_notifier *, struct mm_struct *); + int (*clear_flush_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); + int (*clear_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); + int (*test_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int); + int (*invalidate_range_start)(struct mmu_notifier *, const struct mmu_notifier_range *); + void (*invalidate_range_end)(struct mmu_notifier *, const struct mmu_notifier_range *); + void (*arch_invalidate_secondary_tlbs)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); + 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; + long unsigned int invalidate_seq; + long unsigned int active_invalidate_ranges; + struct rb_root_cached itree; + wait_queue_head_t wq; + struct hlist_head deferred_list; +}; + +struct mmu_table_batch { + struct callback_head rcu; + unsigned int nr; + void *tables[0]; +}; + +struct mmu_update { + uint64_t ptr; + uint64_t val; +}; + +struct mmuext_op { + unsigned int cmd; + union { + xen_pfn_t mfn; + long unsigned int linear_addr; + } arg1; + union { + unsigned int nr_ents; + void *vcpumask; + xen_pfn_t src_mfn; + } arg2; +}; + +struct mn { + unsigned char m_val; + unsigned char n_val; + unsigned char m_shift; + unsigned char n_lshift; +}; + +struct mnt_id_req { + __u32 size; + __u32 spare; + __u64 mnt_id; + __u64 param; + __u64 mnt_ns_id; +}; + +struct uid_gid_extent { + u32 first; + u32 lower_first; + u32 count; +}; + +struct uid_gid_map { + union { + struct { + struct uid_gid_extent extent[5]; + u32 nr_extents; + }; + struct { + struct uid_gid_extent *forward; + struct uid_gid_extent *reverse; + }; + }; +}; + +struct mnt_idmap { + struct uid_gid_map uid_map; + struct uid_gid_map gid_map; + refcount_t count; +}; + +struct mount; + +struct mnt_namespace { + struct ns_common ns; + struct mount *root; + struct { + struct rb_root mounts; + struct rb_node *mnt_last_node; + struct rb_node *mnt_first_node; + }; + struct user_namespace *user_ns; + struct ucounts *ucounts; + u64 seq; + union { + wait_queue_head_t poll; + struct callback_head mnt_ns_rcu; + }; + u64 event; + unsigned int nr_mounts; + unsigned int pending_mounts; + struct rb_node mnt_ns_tree_node; + struct list_head mnt_ns_list; + refcount_t passive; +}; + +struct mnt_ns_info { + __u32 size; + __u32 nr_mounts; + __u64 mnt_ns_id; +}; + +struct mnt_pcp { + int mnt_count; + int mnt_writers; +}; + +struct mod_arch_specific {}; + +struct mod_initfree { + struct llist_node node; + void *init_text; + void *init_data; + void *init_rodata; +}; + +struct mod_kallsyms { + Elf64_Sym *symtab; + unsigned int num_symtab; + char *strtab; + char *typetab; +}; + +struct mod_tree_node { + struct module *mod; + struct latch_tree_node node; +}; + +struct mod_tree_root { + struct latch_tree_root root; + long unsigned int addr_min; + long unsigned int addr_max; +}; + +struct mode_page_header { + __be16 mode_data_length; + __u8 medium_type; + __u8 reserved1; + __u8 reserved2; + __u8 reserved3; + __be16 desc_length; +}; + +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 pkcs7_message; + +struct modsig { + struct pkcs7_message *pkcs7_msg; + enum hash_algo hash_algo; + const u8 *digest; + u32 digest_size; + int raw_pkcs7_len; + u8 raw_pkcs7[0]; +}; + +struct module_param_attrs; + +struct module_kobject { + struct kobject kobj; + struct module *mod; + struct kobject *drivers_dir; + struct module_param_attrs *mp; + struct completion *kobj_completion; +}; + +struct module_memory { + void *base; + void *rw_copy; + bool is_rox; + unsigned int size; + struct mod_tree_node mtn; +}; + +struct module_attribute; + +struct module_sect_attrs; + +struct module_notes_attrs; + +struct trace_event_call; + +struct trace_eval_map; + +struct static_call_site; + +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 u32 *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 u32 *gpl_crcs; + bool using_gplonly_symbols; + bool sig_ok; + bool async_probe_requested; + unsigned int num_exentries; + struct exception_table_entry *extable; + int (*init)(void); + struct module_memory mem[7]; + struct mod_arch_specific arch; + long unsigned int taints; + unsigned int num_bugs; + struct list_head bug_list; + struct bug_entry *bug_table; + struct mod_kallsyms *kallsyms; + struct mod_kallsyms core_kallsyms; + struct module_sect_attrs *sect_attrs; + struct module_notes_attrs *notes_attrs; + char *args; + void *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; + unsigned int btf_base_data_size; + void *btf_data; + void *btf_base_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; + long unsigned int *ftrace_callsites; + void *kprobes_text_start; + unsigned int kprobes_text_size; + long unsigned int *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)(void); + atomic_t refcnt; + int its_num_pages; + void **its_page_array; + struct error_injection_entry *ei_funcs; + unsigned int num_ei_funcs; + struct _ddebug_info dyndbg_info; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct module_attribute { + struct attribute attr; + ssize_t (*show)(const struct module_attribute *, struct module_kobject *, char *); + ssize_t (*store)(const 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 module_notes_attrs { + struct attribute_group grp; + struct bin_attribute attrs[0]; +}; + +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]; +}; + +struct module_reply_data { + struct ethnl_reply_data base; + struct ethtool_module_power_mode_params power; +}; + +struct module_sect_attrs { + struct attribute_group grp; + struct bin_attribute attrs[0]; +}; + +struct module_signature { + u8 algo; + u8 hash; + u8 id_type; + u8 signer_len; + u8 key_id_len; + u8 __pad[3]; + __be32 sig_len; +}; + +struct module_string { + struct list_head next; + struct module *module; + char *str; +}; + +struct module_use { + struct list_head source_list; + struct list_head target_list; + struct module *source; + struct module *target; +}; + +struct module_version_attribute { + struct module_attribute mattr; + const char *module_name; + const char *version; +}; + +struct modules_array { + struct module **mods; + int mods_cnt; + int mods_cap; +}; + +struct modversion_info { + long unsigned int crc; + char name[56]; +}; + +struct modversion_info_ext { + size_t remaining; + const u32 *crc; + const char *name; +}; + +struct mon_config_info { + u32 evtid; + u32 mon_config; +}; + +union mon_data_bits { + void *priv; + struct { + unsigned int rid: 10; + enum resctrl_event_id evtid: 7; + unsigned int sum: 1; + unsigned int domid: 14; + } u; +}; + +struct mon_evt { + enum resctrl_event_id evtid; + char *name; + bool configurable; + struct list_head list; +}; + +struct rdtgroup; + +struct mongroup { + struct kernfs_node *mon_data_kn; + struct rdtgroup *parent; + struct list_head crdtgrp_list; + u32 rmid; +}; + +struct vfsmount { + struct dentry *mnt_root; + struct super_block *mnt_sb; + int mnt_flags; + struct mnt_idmap *mnt_idmap; +}; + +struct mountpoint; + +struct mount { + struct hlist_node mnt_hash; + struct mount *mnt_parent; + struct dentry *mnt_mountpoint; + struct vfsmount mnt; + union { + struct rb_node mnt_node; + struct callback_head mnt_rcu; + struct llist_node mnt_llist; + }; + struct mnt_pcp *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 *mnt_fsnotify_marks; + __u32 mnt_fsnotify_mask; + int mnt_id; + u64 mnt_id_unique; + int mnt_group_id; + int mnt_expiry_mark; + struct hlist_head mnt_pins; + struct hlist_head mnt_stuck_children; +}; + +struct 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 mount_opts { + int token; + int mount_opt; + int flags; +}; + +struct mountpoint { + struct hlist_node m_hash; + struct dentry *m_dentry; + struct hlist_head m_list; + int m_count; +}; + +struct mousedev_hw_data { + int dx; + int dy; + int dz; + int x; + int y; + int abs_event; + long unsigned int buttons; +}; + +struct mousedev { + int open; + struct input_handle handle; + wait_queue_head_t wait; + struct list_head client_list; + spinlock_t client_lock; + struct mutex mutex; + struct device dev; + struct cdev cdev; + bool exist; + struct list_head mixdev_node; + bool opened_by_mixdev; + struct mousedev_hw_data packet; + unsigned int pkt_count; + int old_x[4]; + int old_y[4]; + int frac_dx; + int frac_dy; + long unsigned int touch; + int (*open_device)(struct mousedev *); + void (*close_device)(struct mousedev *); +}; + +struct mousedev_motion { + int dx; + int dy; + int dz; + long unsigned int buttons; +}; + +struct mousedev_client { + struct fasync_struct *fasync; + struct mousedev *mousedev; + struct list_head node; + struct mousedev_motion packets[16]; + unsigned int head; + unsigned int tail; + spinlock_t packet_lock; + int pos_x; + int pos_y; + u8 ps2[6]; + unsigned char ready; + unsigned char buffer; + unsigned char bufsiz; + unsigned char imexseq; + unsigned char impsseq; + enum mousedev_emul mode; + long unsigned int last_buttons; +}; + +struct movable_operations { + bool (*isolate_page)(struct page *, isolate_mode_t); + int (*migrate_page)(struct page *, struct page *, enum migrate_mode); + void (*putback_page)(struct page *); +}; + +struct move_extent { + __u32 reserved; + __u32 donor_fd; + __u64 orig_start; + __u64 donor_start; + __u64 len; + __u64 moved_len; +}; + +struct mp_chip_data { + struct list_head irq_2_pin; + struct IO_APIC_route_entry entry; + bool is_level; + bool active_low; + bool isa_irq; + u32 count; +}; + +struct mpage_da_data { + struct inode *inode; + struct writeback_control *wbc; + unsigned int can_map: 1; + long unsigned int first_page; + long unsigned int next_page; + long unsigned int last_page; + struct ext4_map_blocks map; + struct ext4_io_submit io_submit; + unsigned int do_map: 1; + unsigned int scanned_until_end: 1; + unsigned int journalled_more_data: 1; +}; + +struct mpage_data { + struct bio *bio; + sector_t last_block_in_bio; + get_block_t *get_block; +}; + +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; + long unsigned int first_logical_block; + get_block_t *get_block; +}; + +struct mpc_bus { + unsigned char type; + unsigned char busid; + unsigned char bustype[6]; +}; + +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_intsrc { + unsigned char type; + unsigned char irqtype; + short unsigned int irqflag; + unsigned char srcbus; + unsigned char srcbusirq; + unsigned char dstapic; + unsigned char dstirq; +}; + +struct mpc_lintsrc { + unsigned char type; + unsigned char irqtype; + short unsigned int irqflag; + unsigned char srcbusid; + unsigned char srcbusirq; + unsigned char destapic; + unsigned char destapiclint; +}; + +struct mpc_table { + char signature[4]; + short unsigned int length; + char spec; + char checksum; + char oem[8]; + char productid[12]; + unsigned int oemptr; + short unsigned int oemsize; + short unsigned int oemcount; + unsigned int lapic; + unsigned int reserved; +}; + +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 mpls_label { + __be32 entry; +}; + +struct mpls_shim_hdr { + __be32 label_stack_entry; +}; + +struct mptcp_addr_info { + u8 id; + sa_family_t family; + __be16 port; + union { + struct in_addr addr; + struct in6_addr addr6; + }; +}; + +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_delegated_action { + struct napi_struct napi; + struct list_head head; +}; + +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 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; + __u32 mptcpi_retransmits; + __u64 mptcpi_bytes_retrans; + __u64 mptcpi_bytes_sent; + __u64 mptcpi_bytes_received; + __u64 mptcpi_bytes_acked; + __u8 mptcpi_subflows_total; + __u8 reserved[3]; + __u32 mptcpi_last_data_sent; + __u32 mptcpi_last_data_recv; + __u32 mptcpi_last_ack_recv; +}; + +struct mptcp_full_info { + __u32 size_tcpinfo_kernel; + __u32 size_tcpinfo_user; + __u32 size_sfinfo_kernel; + __u32 size_sfinfo_user; + __u32 num_subflows; + __u32 size_arrays_user; + __u64 subflow_info; + __u64 tcp_info; + struct mptcp_info mptcp_info; +}; + +struct mptcp_mib { + long unsigned int mibs[71]; +}; + +struct mptcp_rm_list { + u8 ids[8]; + u8 nr; +}; + +struct mptcp_options_received { + u64 sndr_key; + u64 rcvr_key; + u64 data_ack; + u64 data_seq; + u32 subflow_seq; + u16 data_len; + __sum16 csum; + union { + struct { + u16 suboptions; + 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; + }; + struct { + u16 suboptions; + 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; + } status; + }; + u8 join_id; + u32 token; + u32 nonce; + u64 thmac; + u8 hmac[20]; + struct mptcp_addr_info addr; + struct mptcp_rm_list rm_list; + u64 ahmac; + u64 fail_seq; +}; + +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 mptcp_pernet { + struct ctl_table_header *ctl_table_hdr; + unsigned int add_addr_timeout; + unsigned int blackhole_timeout; + unsigned int close_timeout; + unsigned int stale_loss_cnt; + atomic_t active_disable_times; + u8 syn_retrans_before_tcp_fallback; + long unsigned int active_disable_stamp; + u8 mptcp_enabled; + u8 checksum_enabled; + u8 allow_join_initial_addr_port; + u8 pm_type; + char scheduler[16]; +}; + +struct mptcp_sock; + +struct mptcp_pm_add_entry { + struct list_head list; + struct mptcp_addr_info addr; + u8 retrans_times; + struct timer_list add_timer; + struct mptcp_sock *sock; +}; + +struct mptcp_pm_addr_entry { + struct list_head list; + struct mptcp_addr_info addr; + u8 flags; + int ifindex; + struct socket *lsk; +}; + +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; + long unsigned int id_avail_bitmap[4]; + struct mptcp_rm_list rm_list_tx; + struct mptcp_rm_list rm_list_rx; +}; + +struct mptcp_pm_local { + struct mptcp_addr_info addr; + u8 flags; + int ifindex; +}; + +struct mptcp_subflow_context; + +struct mptcp_sched_data { + bool reinject; + u8 subflows; + struct mptcp_subflow_context *contexts[8]; +}; + +struct mptcp_sched_ops { + int (*get_subflow)(struct mptcp_sock *, struct mptcp_sched_data *); + char name[16]; + struct module *owner; + struct list_head list; + void (*init)(struct mptcp_sock *); + void (*release)(struct mptcp_sock *); +}; + +struct mptcp_sendmsg_info { + int mss_now; + int size_goal; + u16 limit; + u16 sent; + unsigned int flags; + bool data_lock_held; +}; + +struct mptcp_skb_cb { + u64 map_seq; + u64 end_seq; + u32 offset; + u8 has_rxtstamp: 1; +}; + +struct mptcp_sock { + struct inet_connection_sock sk; + u64 local_key; + u64 remote_key; + u64 write_seq; + u64 bytes_sent; + u64 snd_nxt; + u64 bytes_received; + u64 ack_seq; + atomic64_t rcv_wnd_sent; + u64 rcv_data_fin_seq; + u64 bytes_retrans; + u64 bytes_consumed; + int rmem_fwd_alloc; + int snd_burst; + int old_wspace; + u64 recovery_snd_nxt; + u64 bytes_acked; + u64 snd_una; + u64 wnd_end; + u32 last_data_sent; + u32 last_data_recv; + u32 last_ack_recv; + long unsigned int timer_ival; + u32 token; + int rmem_released; + long unsigned int flags; + long unsigned int cb_flags; + 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 pending_state; + u8 mpc_endpoint_id; + u8 recvmsg_inq: 1; + u8 cork: 1; + u8 nodelay: 1; + u8 fastopening: 1; + u8 in_accept_queue: 1; + u8 free_first: 1; + u8 rcvspace_init: 1; + u32 notsent_lowat; + int keepalive_cnt; + int keepalive_idle; + int keepalive_intvl; + 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 sock *first; + struct mptcp_pm_data pm; + struct mptcp_sched_ops *sched; + struct { + u32 space; + u32 copied; + u64 time; + u64 rtt_us; + } rcvq_space; + u8 scaling_ratio; + u32 subflow_id; + u32 setsockopt_seq; + char ca_name[16]; +}; + +struct sockaddr_in { + __kernel_sa_family_t sin_family; + __be16 sin_port; + struct in_addr sin_addr; + unsigned char __pad[8]; +}; + +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 mptcp_subflow_context { + struct list_head node; + union { + struct { + long unsigned int 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 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 remote_key_valid: 1; + u32 disposable: 1; + u32 stale: 1; + u32 valid_csum_seen: 1; + u32 is_mptfo: 1; + u32 close_event_done: 1; + u32 mpc_drop: 1; + u32 __unused: 9; + bool data_avail; + bool scheduled; + bool pm_listener; + bool fully_established; + u32 remote_nonce; + u64 thmac; + u32 local_nonce; + u32 remote_token; + union { + u8 hmac[20]; + u64 iasn; + }; + s16 local_id; + u8 remote_id; + u8 reset_seen: 1; + u8 reset_transient: 1; + u8 reset_reason: 4; + u8 stale_count; + u32 subflow_id; + long int delegated_status; + long unsigned int fail_tout; + }; + struct { + long unsigned int 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 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 remote_key_valid: 1; + u32 disposable: 1; + u32 stale: 1; + u32 valid_csum_seen: 1; + u32 is_mptfo: 1; + u32 close_event_done: 1; + u32 mpc_drop: 1; + u32 __unused: 9; + bool data_avail; + bool scheduled; + bool pm_listener; + bool fully_established; + u32 remote_nonce; + u64 thmac; + u32 local_nonce; + u32 remote_token; + union { + u8 hmac[20]; + u64 iasn; + }; + s16 local_id; + u8 remote_id; + u8 reset_seen: 1; + u8 reset_transient: 1; + u8 reset_reason: 4; + u8 stale_count; + u32 subflow_id; + long int delegated_status; + long unsigned int fail_tout; + } reset; + }; + struct list_head delegated_node; + u32 setsockopt_seq; + u32 stale_rcv_tstamp; + int cached_sndbuf; + 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_subflow_data { + __u32 size_subflow_data; + __u32 num_subflows; + __u32 size_kernel; + __u32 size_user; +}; + +struct mptcp_subflow_info { + __u32 id; + struct mptcp_subflow_addrs addrs; +}; + +struct tcp_request_sock_ops; + +struct tcp_request_sock { + struct inet_request_sock req; + const struct tcp_request_sock_ops *af_specific; + u64 snt_synack; + bool tfo_listener; + bool is_mptcp; + bool req_usec_ts; + bool drop_req; + u32 txhash; + u32 rcv_isn; + u32 snt_isn; + u32 ts_off; + u32 snt_tsval_first; + u32 snt_tsval_last; + u32 last_oow_ack_time; + u32 rcv_nxt; + u8 syn_tos; + u8 ao_keyid; + u8 ao_rcv_next; + bool used_tcp_ao; +}; + +struct mptcp_subflow_request_sock { + struct tcp_request_sock sk; + u16 mp_capable: 1; + u16 mp_join: 1; + u16 backup: 1; + u16 request_bkup: 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 mq_inflight { + struct block_device *part; + unsigned int inflight[2]; +}; + +struct mq_sched { + struct Qdisc **qdiscs; +}; + +struct mqueue_fs_context { + struct ipc_namespace *ipc_ns; + bool newns; +}; + +struct sigevent { + sigval_t sigev_value; + int sigev_signo; + int sigev_notify; + union { + int _pad[12]; + int _tid; + struct { + void (*_function)(sigval_t); + void *_attribute; + } _sigev_thread; + } _sigev_un; +}; + +struct 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]; + long unsigned int qsize; +}; + +struct mr_mfc_iter { + struct seq_net_private p; + struct mr_table *mrt; + struct list_head *cache; + spinlock_t *lock; +}; + +struct mr_table_ops { + const struct rhashtable_params *rht_params; + void *cmparg_any; +}; + +struct vif_device { + struct net_device *dev; + netdevice_tracker dev_tracker; + long unsigned int bytes_in; + long unsigned int bytes_out; + long unsigned int pkt_in; + long unsigned int pkt_out; + long unsigned int rate_limit; + unsigned char threshold; + short unsigned int flags; + int link; + struct netdev_phys_item_id dev_parent_id; + __be32 local; + __be32 remote; +}; + +struct rhltable { + struct rhashtable ht; +}; + +struct mr_table { + struct list_head list; + possible_net_t net; + struct mr_table_ops ops; + u32 id; + struct sock *mroute_sk; + struct timer_list ipmr_expire_timer; + struct list_head mfc_unres_queue; + struct vif_device vif_table[32]; + struct rhltable mfc_hash; + struct list_head mfc_cache_list; + int maxvif; + atomic_t cache_resolve_queue_len; + bool mroute_do_assert; + bool mroute_do_pim; + bool mroute_do_wrvifwhole; + int mroute_reg_vif_num; +}; + +struct mr_vif_iter { + struct seq_net_private p; + struct mr_table *mrt; + int ct; +}; + +struct mrt6msg { + __u8 im6_mbz; + __u8 im6_msgtype; + __u16 im6_mif; + __u32 im6_pad; + struct in6_addr im6_src; + struct in6_addr im6_dst; +}; + +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 ms_hyperv_info { + u32 features; + u32 priv_high; + u32 misc_features; + u32 hints; + u32 nested_features; + u32 max_vp_index; + u32 max_lp_index; + u8 vtl; + union { + u32 isolation_config_a; + struct { + u32 paravisor_present: 1; + u32 reserved_a1: 31; + }; + }; + union { + u32 isolation_config_b; + struct { + u32 cvm_type: 4; + u32 reserved_b1: 1; + u32 shared_gpa_boundary_active: 1; + u32 shared_gpa_boundary_bits: 6; + u32 reserved_b2: 20; + }; + }; + u64 shared_gpa_boundary; +}; + +struct msdos_dir_entry { + __u8 name[11]; + __u8 attr; + __u8 lcase; + __u8 ctime_cs; + __le16 ctime; + __le16 cdate; + __le16 adate; + __le16 starthi; + __le16 time; + __le16 date; + __le16 start; + __le32 size; +}; + +struct msdos_dir_slot { + __u8 id; + __u8 name0_4[10]; + __u8 attr; + __u8 reserved; + __u8 alias_checksum; + __u8 name5_10[12]; + __le16 start; + __u8 name11_12[4]; +}; + +struct 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 msdos_partition { + u8 boot_ind; + u8 head; + u8 sector; + u8 cyl; + u8 sys_ind; + u8 end_head; + u8 end_sector; + u8 end_cyl; + __le32 start_sect; + __le32 nr_sects; +}; + +struct nls_table; + +struct msdos_sb_info { + short unsigned int sec_per_clus; + short unsigned int cluster_bits; + unsigned int cluster_size; + unsigned char fats; + unsigned char fat_bits; + short unsigned int fat_start; + long unsigned int fat_length; + long unsigned int dir_start; + short unsigned int dir_entries; + long unsigned int data_start; + long unsigned int max_cluster; + long unsigned int root_cluster; + long unsigned int fsinfo_sector; + struct mutex fat_lock; + struct mutex nfs_build_inode_lock; + struct mutex s_lock; + unsigned int prev_free; + unsigned int free_clusters; + unsigned int free_clus_valid; + struct fat_mount_options options; + struct nls_table *nls_disk; + struct nls_table *nls_io; + const void *dir_ops; + int dir_per_block; + int dir_per_block_bits; + unsigned int vol_id; + int fatent_shift; + const struct fatent_operations *fatent_ops; + struct inode *fat_inode; + struct inode *fsinfo_inode; + struct ratelimit_state ratelimit; + spinlock_t inode_hash_lock; + struct hlist_head inode_hashtable[256]; + spinlock_t dir_hash_lock; + struct hlist_head dir_hashtable[256]; + unsigned int dirty; + struct callback_head rcu; +}; + +struct msg_msgseg; + +struct msg_msg { + struct list_head m_list; + long int m_type; + size_t m_ts; + struct msg_msgseg *next; + void *security; +}; + +struct msg_msgseg { + struct msg_msgseg *next; +}; + +struct msg_queue { + struct kern_ipc_perm q_perm; + time64_t q_stime; + time64_t q_rtime; + time64_t q_ctime; + long unsigned int q_cbytes; + long unsigned int q_qnum; + long unsigned int q_qbytes; + struct pid *q_lspid; + struct pid *q_lrpid; + struct list_head q_messages; + struct list_head q_receivers; + struct list_head q_senders; + long: 64; + long: 64; +}; + +struct msg_receiver { + struct list_head r_list; + struct task_struct *r_tsk; + int r_mode; + long int r_msgtype; + long int r_maxsize; + struct msg_msg *r_msg; +}; + +struct msg_security_struct { + u32 sid; +}; + +struct msg_sender { + struct list_head list; + struct task_struct *tsk; + size_t msgsz; +}; + +struct msgbuf { + __kernel_long_t mtype; + char mtext[1]; +}; + +struct msginfo { + int msgpool; + int msgmap; + int msgmax; + int msgmnb; + int msgmni; + int msgssz; + int msgtql; + short unsigned int msgseg; +}; + +struct msi_ctrl { + unsigned int domid; + unsigned int first; + unsigned int last; + unsigned int nirqs; +}; + +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 msi_desc { + unsigned int irq; + unsigned int nvec_used; + struct device *dev; + struct msi_msg msg; + struct irq_affinity_desc *affinity; + u64 iommu_msi_iova: 58; + u64 iommu_msi_shift: 6; + 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 msi_dev_domain { + struct xarray store; + struct irq_domain *domain; +}; + +struct msi_device_data { + long unsigned int properties; + struct mutex mutex; + struct msi_dev_domain __domains[1]; + long unsigned int __iter_idx; +}; + +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 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 *); + int (*msi_translate)(struct irq_domain *, struct irq_fwspec *, irq_hw_number_t *, unsigned int *); +}; + +struct msi_domain_template { + char name[48]; + struct irq_chip chip; + struct msi_domain_ops ops; + struct msi_domain_info info; +}; + +struct msi_map { + int index; + int virq; +}; + +struct msi_parent_ops { + u32 supported_flags; + u32 required_flags; + u32 bus_select_token; + u32 bus_select_mask; + const char *prefix; + bool (*init_dev_msi_info)(struct device *, struct irq_domain *, struct irq_domain *, struct msi_domain_info *); +}; + +struct msix_entry { + u32 vector; + u16 entry; +}; + +struct msqid64_ds { + struct ipc64_perm msg_perm; + long int msg_stime; + long int msg_rtime; + long int msg_ctime; + long unsigned int msg_cbytes; + long unsigned int msg_qnum; + long unsigned int msg_qbytes; + __kernel_pid_t msg_lspid; + __kernel_pid_t msg_lrpid; + long unsigned int __unused4; + long unsigned int __unused5; +}; + +struct msg; + +struct msqid_ds { + struct ipc_perm msg_perm; + struct msg *msg_first; + struct msg *msg_last; + __kernel_old_time_t msg_stime; + __kernel_old_time_t msg_rtime; + __kernel_old_time_t msg_ctime; + long unsigned int msg_lcbytes; + long unsigned int msg_lqbytes; + short unsigned int msg_cbytes; + short unsigned int msg_qnum; + short unsigned int msg_qbytes; + __kernel_ipc_pid_t msg_lspid; + __kernel_ipc_pid_t msg_lrpid; +}; + +struct msr { + union { + struct { + u32 l; + u32 h; + }; + u64 q; + }; +}; + +struct msr_data { + bool host_initiated; + u32 index; + u64 data; +}; + +struct msr_enumeration { + u32 msr_no; + u32 feature; +}; + +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; +}; + +struct rdt_resource; + +struct rdt_ctrl_domain; + +struct msr_param { + struct rdt_resource *res; + struct rdt_ctrl_domain *dom; + u32 low; + u32 high; +}; + +struct msr_regs_info { + u32 *regs; + int err; +}; + +struct mt6323_pwrc { + struct device *dev; + struct regmap *regmap; + u32 base; +}; + +struct mt6397_chip { + struct device *dev; + struct regmap *regmap; + struct notifier_block pm_nb; + int irq; + struct irq_domain *irq_domain; + struct mutex irqlock; + u16 wake_mask[3]; + u16 irq_masks_cur[3]; + u16 irq_masks_cache[3]; + u16 int_con[3]; + u16 int_status[3]; + u16 chip_id; + void *irq_data; +}; + +struct mthp_stat { + long unsigned int stats[170]; +}; + +struct mtrr_cleanup_result { + long unsigned int gran_sizek; + long unsigned int chunk_sizek; + long unsigned int lose_cover_sizek; + unsigned int num_reg; + int bad; +}; + +struct mtrr_gentry { + __u64 base; + __u32 size; + __u32 regnum; + __u32 type; + __u32 _pad; +}; + +struct mtrr_gentry32 { + compat_ulong_t regnum; + compat_uint_t base; + compat_uint_t size; + compat_uint_t type; +}; + +struct mtrr_ops { + u32 var_regs; + void (*set)(unsigned int, long unsigned int, long unsigned int, mtrr_type); + void (*get)(unsigned int, long unsigned int *, long unsigned int *, mtrr_type *); + int (*get_free_region)(long unsigned int, long unsigned int, int); + int (*validate_add_page)(long unsigned int, long unsigned int, unsigned int); + int (*have_wrcomb)(void); +}; + +struct mtrr_sentry { + __u64 base; + __u32 size; + __u32 type; +}; + +struct mtrr_sentry32 { + compat_ulong_t base; + compat_uint_t size; + compat_uint_t type; +}; + +struct mtrr_var_range { + __u32 base_lo; + __u32 base_hi; + __u32 mask_lo; + __u32 mask_hi; +}; + +struct mtrr_state_type { + struct mtrr_var_range var_ranges[256]; + mtrr_type fixed_ranges[88]; + unsigned char enabled; + bool have_fixed; + mtrr_type def_type; +}; + +struct multi_stop_data { + cpu_stop_fn_t fn; + void *data; + unsigned int num_threads; + const struct cpumask *active_cpus; + enum multi_stop_state state; + atomic_t thread_ack; +}; + +struct multi_symbols_sort { + const char **funcs; + u64 *cookies; +}; + +struct multi_transaction { + struct kref count; + ssize_t size; + char data[0]; +}; + +struct multicall_space { + struct multicall_entry *mc; + void *args; +}; + +struct multiprocess_signals { + sigset_t signal; + struct hlist_node node; +}; + +typedef struct mutex *class_mutex_t; + +typedef class_mutex_t class_mutex_intr_t; + +struct mutex_waiter { + struct list_head list; + struct task_struct *task; + struct ww_acquire_ctx *ww_ctx; +}; + +struct mwait_cpu_dead { + unsigned int control; + unsigned int status; +}; + +struct mz_hdr { + uint16_t magic; + uint16_t lbsize; + uint16_t blocks; + uint16_t relocs; + uint16_t hdrsize; + uint16_t min_extra_pps; + uint16_t max_extra_pps; + uint16_t ss; + uint16_t sp; + uint16_t checksum; + uint16_t ip; + uint16_t cs; + uint16_t reloc_table_offset; + uint16_t overlay_num; + uint16_t reserved0[4]; + uint16_t oem_id; + uint16_t oem_info; + uint16_t reserved1[10]; + uint32_t peaddr; + char message[0]; +}; + +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; + long unsigned int char_map[4]; + long unsigned int overrun_time; + unsigned int num_overrun; + bool no_room; + unsigned char lnext: 1; + unsigned char erasing: 1; + unsigned char raw: 1; + unsigned char real_raw: 1; + unsigned char icanon: 1; + unsigned char push: 1; + u8 read_buf[4096]; + long unsigned int read_flags[64]; + u8 echo_buf[4096]; + size_t read_tail; + size_t line_start; + size_t lookahead_count; + unsigned int column; + unsigned int canon_column; + size_t echo_tail; + struct mutex atomic_read_lock; + struct mutex output_lock; +}; + +struct 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; + const char *pathname; + struct nameidata *saved; + unsigned int root_seq; + int dfd; + vfsuid_t dir_vfsuid; + umode_t dir_mode; +}; + +struct page_frag_cache { + long unsigned int encoded_page; + __u32 offset; + __u32 pagecnt_bias; +}; + +struct napi_alloc_cache { + local_lock_t bh_lock; + struct page_frag_cache page; + unsigned int skb_count; + void *skb_cache[64]; +}; + +struct napi_config { + u64 gro_flush_timeout; + u64 irq_suspend_timeout; + u32 defer_hard_irqs; + unsigned int napi_id; +}; + +struct napi_gro_cb { + union { + struct { + void *frag0; + unsigned int frag0_len; + }; + struct { + struct sk_buff *last; + long unsigned int age; + }; + }; + int data_offset; + u16 flush; + u16 count; + u16 proto; + u16 pad; + 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 ip_fixedid: 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 ip_fixedid: 1; + u8 recursion_counter: 4; + u8 is_flist: 1; + } zeroed; + }; + __wsum csum; + union { + struct { + u16 network_offset; + u16 inner_network_offset; + }; + u16 network_offsets[2]; + }; +}; + +struct nat_keepalive { + struct net *net; + u16 family; + xfrm_address_t saddr; + xfrm_address_t daddr; + __be16 encap_sport; + __be16 encap_dport; + __u32 smark; +}; + +struct nat_keepalive_work_ctx { + time64_t next_run; + time64_t now; +}; + +struct nbcon_state { + union { + unsigned int atom; + struct { + unsigned int prio: 2; + unsigned int req_prio: 2; + unsigned int unsafe: 1; + unsigned int unsafe_takeover: 1; + unsigned int cpu: 24; + }; + }; +}; + +struct nbcon_write_context { + struct nbcon_context ctxt; + char *outbuf; + unsigned int len; + bool unsafe_takeover; +}; + +struct ncsi_dev_priv; + +struct ncsi_aen_pkt_hdr; + +struct ncsi_aen_handler { + unsigned char type; + int payload; + int (*handler)(struct ncsi_dev_priv *, struct ncsi_aen_pkt_hdr *); +}; + +struct ncsi_pkt_hdr { + unsigned char mc_id; + unsigned char revision; + unsigned char reserved; + unsigned char id; + unsigned char type; + unsigned char channel; + __be16 length; + __be32 reserved1[2]; +}; + +struct ncsi_aen_pkt_hdr { + struct ncsi_pkt_hdr common; + unsigned char reserved2[3]; + unsigned char type; +}; + +struct ncsi_aen_hncdsc_pkt { + struct ncsi_aen_pkt_hdr aen; + __be32 status; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_aen_lsc_pkt { + struct ncsi_aen_pkt_hdr aen; + __be32 status; + __be32 oem_status; + __be32 checksum; + unsigned char pad[14]; +}; + +struct ncsi_channel_version { + u8 major; + u8 minor; + u8 update; + char alpha1; + char alpha2; + u8 fw_name[12]; + u32 fw_version; + u16 pci_ids[4]; + u32 mf_id; +}; + +struct ncsi_channel_cap { + u32 index; + u32 cap; +}; + +struct ncsi_channel_mode { + u32 index; + u32 enable; + u32 size; + u32 data[8]; +}; + +struct ncsi_channel_mac_filter { + u8 n_uc; + u8 n_mc; + u8 n_mixed; + u64 bitmap; + unsigned char *addrs; +}; + +struct ncsi_channel_vlan_filter { + u8 n_vids; + u64 bitmap; + u16 *vids; +}; + +struct ncsi_channel_stats { + u64 hnc_cnt; + u64 hnc_rx_bytes; + u64 hnc_tx_bytes; + u64 hnc_rx_uc_pkts; + u64 hnc_rx_mc_pkts; + u64 hnc_rx_bc_pkts; + u64 hnc_tx_uc_pkts; + u64 hnc_tx_mc_pkts; + u64 hnc_tx_bc_pkts; + u32 hnc_fcs_err; + u32 hnc_align_err; + u32 hnc_false_carrier; + u32 hnc_runt_pkts; + u32 hnc_jabber_pkts; + u32 hnc_rx_pause_xon; + u32 hnc_rx_pause_xoff; + u32 hnc_tx_pause_xon; + u32 hnc_tx_pause_xoff; + u32 hnc_tx_s_collision; + u32 hnc_tx_m_collision; + u32 hnc_l_collision; + u32 hnc_e_collision; + u32 hnc_rx_ctl_frames; + u32 hnc_rx_64_frames; + u32 hnc_rx_127_frames; + u32 hnc_rx_255_frames; + u32 hnc_rx_511_frames; + u32 hnc_rx_1023_frames; + u32 hnc_rx_1522_frames; + u32 hnc_rx_9022_frames; + u32 hnc_tx_64_frames; + u32 hnc_tx_127_frames; + u32 hnc_tx_255_frames; + u32 hnc_tx_511_frames; + u32 hnc_tx_1023_frames; + u32 hnc_tx_1522_frames; + u32 hnc_tx_9022_frames; + u64 hnc_rx_valid_bytes; + u32 hnc_rx_runt_pkts; + u32 hnc_rx_jabber_pkts; + u32 ncsi_rx_cmds; + u32 ncsi_dropped_cmds; + u32 ncsi_cmd_type_errs; + u32 ncsi_cmd_csum_errs; + u32 ncsi_rx_pkts; + u32 ncsi_tx_pkts; + u32 ncsi_tx_aen_pkts; + u32 pt_tx_pkts; + u32 pt_tx_dropped; + u32 pt_tx_channel_err; + u32 pt_tx_us_err; + u32 pt_rx_pkts; + u32 pt_rx_dropped; + u32 pt_rx_channel_err; + u32 pt_rx_us_err; + u32 pt_rx_os_err; +}; + +struct ncsi_package; + +struct ncsi_channel { + unsigned char id; + int state; + bool reconfigure_needed; + spinlock_t lock; + struct ncsi_package *package; + struct ncsi_channel_version version; + struct ncsi_channel_cap caps[6]; + struct ncsi_channel_mode modes[8]; + struct ncsi_channel_mac_filter mac_filter; + struct ncsi_channel_vlan_filter vlan_filter; + struct ncsi_channel_stats stats; + struct { + struct timer_list timer; + bool enabled; + unsigned int state; + } monitor; + struct list_head node; + struct list_head link; +}; + +struct ncsi_cmd_pkt_hdr { + struct ncsi_pkt_hdr common; +}; + +struct ncsi_cmd_ae_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char mc_id; + __be32 mode; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_cmd_arg { + struct ncsi_dev_priv *ndp; + unsigned char type; + unsigned char id; + unsigned char package; + unsigned char channel; + short unsigned int payload; + unsigned int req_flags; + union { + unsigned char bytes[16]; + short unsigned int words[8]; + unsigned int dwords[4]; + }; + unsigned char *data; + struct genl_info *info; +}; + +struct ncsi_cmd_dc_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char ald; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_ebf_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_egmf_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_ev_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_handler { + unsigned char type; + int payload; + int (*handler)(struct sk_buff *, struct ncsi_cmd_arg *); +}; + +struct ncsi_cmd_oem_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mfr_id; + unsigned char data[0]; +}; + +struct ncsi_cmd_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 checksum; + unsigned char pad[26]; +}; + +struct ncsi_cmd_rc_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 reserved; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_sl_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mode; + __be32 oem_mode; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_cmd_sma_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char mac[6]; + unsigned char index; + unsigned char at_e; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_cmd_snfc_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_sp_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char hw_arbitration; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_svf_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be16 reserved; + __be16 vlan; + __be16 reserved1; + unsigned char index; + unsigned char enable; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_dev { + int state; + int link_up; + struct net_device *dev; + void (*handler)(struct ncsi_dev *); +}; + +struct nlmsghdr { + __u32 nlmsg_len; + __u16 nlmsg_type; + __u16 nlmsg_flags; + __u32 nlmsg_seq; + __u32 nlmsg_pid; +}; + +struct ncsi_request { + unsigned char id; + bool used; + unsigned int flags; + struct ncsi_dev_priv *ndp; + struct sk_buff *cmd; + struct sk_buff *rsp; + struct timer_list timer; + bool enabled; + u32 snd_seq; + u32 snd_portid; + struct nlmsghdr nlhdr; +}; + +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 ncsi_dev_priv { + struct ncsi_dev ndev; + unsigned int flags; + unsigned int gma_flag; + struct sockaddr pending_mac; + spinlock_t lock; + unsigned int package_probe_id; + unsigned int package_num; + unsigned int channel_probe_id; + struct list_head packages; + struct ncsi_channel *hot_channel; + struct ncsi_request requests[256]; + unsigned int request_id; + unsigned int pending_req_num; + struct ncsi_package *active_package; + struct ncsi_channel *active_channel; + struct list_head channel_queue; + struct work_struct work; + struct packet_type ptype; + struct list_head node; + struct list_head vlan_vids; + bool multi_package; + bool mlx_multi_host; + u32 package_whitelist; + unsigned char channel_count; +}; + +struct ncsi_oem_gma_handler { + unsigned int mfr_id; + int (*handler)(struct ncsi_cmd_arg *); +}; + +struct ncsi_package { + unsigned char id; + unsigned char uuid[16]; + struct ncsi_dev_priv *ndp; + spinlock_t lock; + unsigned int channel_num; + struct list_head channels; + struct list_head node; + bool multi_channel; + u32 channel_whitelist; + struct ncsi_channel *preferred_channel; +}; + +struct ncsi_rsp_pkt_hdr { + struct ncsi_pkt_hdr common; + __be16 code; + __be16 reason; +}; + +struct ncsi_rsp_gc_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 cap; + __be32 bc_cap; + __be32 mc_cap; + __be32 buf_cap; + __be32 aen_cap; + unsigned char vlan_cnt; + unsigned char mixed_cnt; + unsigned char mc_cnt; + unsigned char uc_cnt; + unsigned char reserved[2]; + unsigned char vlan_mode; + unsigned char channel_cnt; + __be32 checksum; +}; + +struct ncsi_rsp_gcps_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be64 cnt; + __be64 rx_bytes; + __be64 tx_bytes; + __be64 rx_uc_pkts; + __be64 rx_mc_pkts; + __be64 rx_bc_pkts; + __be64 tx_uc_pkts; + __be64 tx_mc_pkts; + __be64 tx_bc_pkts; + __be32 fcs_err; + __be32 align_err; + __be32 false_carrier; + __be32 runt_pkts; + __be32 jabber_pkts; + __be32 rx_pause_xon; + __be32 rx_pause_xoff; + __be32 tx_pause_xon; + __be32 tx_pause_xoff; + __be32 tx_s_collision; + __be32 tx_m_collision; + __be32 l_collision; + __be32 e_collision; + __be32 rx_ctl_frames; + __be32 rx_64_frames; + __be32 rx_127_frames; + __be32 rx_255_frames; + __be32 rx_511_frames; + __be32 rx_1023_frames; + __be32 rx_1522_frames; + __be32 rx_9022_frames; + __be32 tx_64_frames; + __be32 tx_127_frames; + __be32 tx_255_frames; + __be32 tx_511_frames; + __be32 tx_1023_frames; + __be32 tx_1522_frames; + __be32 tx_9022_frames; + __be64 rx_valid_bytes; + __be32 rx_runt_pkts; + __be32 rx_jabber_pkts; + __be32 checksum; +} __attribute__((packed)); + +struct ncsi_rsp_gls_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 status; + __be32 other; + __be32 oem_status; + __be32 checksum; + unsigned char pad[10]; +}; + +struct ncsi_rsp_gmcma_pkt { + struct ncsi_rsp_pkt_hdr rsp; + unsigned char address_count; + unsigned char reserved[3]; + unsigned char addresses[0]; +}; + +struct ncsi_rsp_gnpts_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 tx_pkts; + __be32 tx_dropped; + __be32 tx_channel_err; + __be32 tx_us_err; + __be32 rx_pkts; + __be32 rx_dropped; + __be32 rx_channel_err; + __be32 rx_us_err; + __be32 rx_os_err; + __be32 checksum; +}; + +struct ncsi_rsp_gns_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 rx_cmds; + __be32 dropped_cmds; + __be32 cmd_type_errs; + __be32 cmd_csum_errs; + __be32 rx_pkts; + __be32 tx_pkts; + __be32 tx_aen_pkts; + __be32 checksum; +}; + +struct ncsi_rsp_gp_pkt { + struct ncsi_rsp_pkt_hdr rsp; + unsigned char mac_cnt; + unsigned char reserved[2]; + unsigned char mac_enable; + unsigned char vlan_cnt; + unsigned char reserved1; + __be16 vlan_enable; + __be32 link_mode; + __be32 bc_mode; + __be32 valid_modes; + unsigned char vlan_mode; + unsigned char fc_mode; + unsigned char reserved2[2]; + __be32 aen_mode; + unsigned char mac[6]; + __be16 vlan; + __be32 checksum; +}; + +struct ncsi_rsp_gps_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 status; + __be32 checksum; +}; + +struct ncsi_rsp_gpuuid_pkt { + struct ncsi_rsp_pkt_hdr rsp; + unsigned char uuid[16]; + __be32 checksum; +}; + +struct ncsi_rsp_gvi_pkt { + struct ncsi_rsp_pkt_hdr rsp; + unsigned char major; + unsigned char minor; + unsigned char update; + unsigned char alpha1; + unsigned char reserved[3]; + unsigned char alpha2; + unsigned char fw_name[12]; + __be32 fw_version; + __be16 pci_ids[4]; + __be32 mf_id; + __be32 checksum; +}; + +struct ncsi_rsp_handler { + unsigned char type; + int payload; + int (*handler)(struct ncsi_request *); +}; + +struct ncsi_rsp_oem_bcm_pkt { + unsigned char ver; + unsigned char type; + __be16 len; + unsigned char data[0]; +}; + +struct ncsi_rsp_oem_handler { + unsigned int mfr_id; + int (*handler)(struct ncsi_request *); +}; + +struct ncsi_rsp_oem_intel_pkt { + unsigned char cmd; + unsigned char data[0]; +}; + +struct ncsi_rsp_oem_mlx_pkt { + unsigned char cmd_rev; + unsigned char cmd; + unsigned char param; + unsigned char optional; + unsigned char data[0]; +}; + +struct ncsi_rsp_oem_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 mfr_id; + unsigned char data[0]; +}; + +struct ncsi_rsp_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 checksum; + unsigned char pad[22]; +}; + +struct nd_namespace_common; + +struct nd_btt { + struct device dev; + struct nd_namespace_common *ndns; + struct btt *btt; + long unsigned int lbasize; + u64 size; + uuid_t *uuid; + int id; + int initial_offset; + u16 version_major; + u16 version_minor; +}; + +struct nd_cmd_ars_cap { + __u64 address; + __u64 length; + __u32 status; + __u32 max_ars_out; + __u32 clear_err_unit; + __u16 flags; + __u16 reserved; +}; + +struct nd_cmd_clear_error { + __u64 address; + __u64 length; + __u32 status; + __u8 reserved[4]; + __u64 cleared; +}; + +struct nd_cmd_desc { + int in_num; + int out_num; + u32 in_sizes[5]; + int out_sizes[5]; +}; + +struct nd_cmd_get_config_data_hdr { + __u32 in_offset; + __u32 in_length; + __u32 status; + __u8 out_buf[0]; +}; + +struct nd_cmd_get_config_size { + __u32 status; + __u32 config_size; + __u32 max_xfer; +}; + +struct nd_cmd_pkg { + __u64 nd_family; + __u64 nd_command; + __u32 nd_size_in; + __u32 nd_size_out; + __u32 nd_reserved2[9]; + __u32 nd_fw_size; + unsigned char nd_payload[0]; +}; + +struct nd_cmd_set_config_hdr { + __u32 in_offset; + __u32 in_length; + __u8 in_buf[0]; +}; + +struct nd_cmd_vendor_hdr { + __u32 opcode; + __u32 in_length; + __u8 in_buf[0]; +}; + +struct nd_pfn_sb; + +struct nd_pfn { + int id; + uuid_t *uuid; + struct device dev; + long unsigned int align; + long unsigned int npfns; + enum nd_pfn_mode mode; + struct nd_pfn_sb *pfn_sb; + struct nd_namespace_common *ndns; +}; + +struct nd_dax { + struct nd_pfn nd_pfn; +}; + +struct nd_device_driver { + struct device_driver drv; + long unsigned int type; + int (*probe)(struct device *); + void (*remove)(struct device *); + void (*shutdown)(struct device *); + void (*notify)(struct device *, enum nvdimm_event); +}; + +struct nd_gen_sb { + char reserved[4088]; + __le64 checksum; +}; + +struct nd_interleave_set { + u64 cookie1; + u64 cookie2; + u64 altcookie; + guid_t type_guid; +}; + +struct nd_namespace_label; + +struct nd_label_ent { + struct list_head list; + long unsigned int flags; + struct nd_namespace_label *label; +}; + +struct nd_label_id { + char id[50]; +}; + +struct nvdimm; + +struct nvdimm_drvdata; + +struct nd_mapping { + struct nvdimm *nvdimm; + u64 start; + u64 size; + int position; + struct list_head labels; + struct mutex lock; + struct nvdimm_drvdata *ndd; +}; + +struct nd_mapping_desc { + struct nvdimm *nvdimm; + u64 start; + u64 size; + int position; +}; + +struct nd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + __u8 opt[0]; +}; + +struct nd_namespace_common { + int force_raw; + struct device dev; + struct device *claim; + enum nvdimm_claim_class claim_class; + int (*rw_bytes)(struct nd_namespace_common *, resource_size_t, void *, size_t, int, long unsigned int); +}; + +struct nd_namespace_index { + u8 sig[16]; + u8 flags[3]; + u8 labelsize; + __le32 seq; + __le64 myoff; + __le64 mysize; + __le64 otheroff; + __le64 labeloff; + __le32 nslot; + __le16 major; + __le16 minor; + __le64 checksum; + u8 free[0]; +}; + +struct nd_namespace_io { + struct nd_namespace_common common; + struct resource res; + resource_size_t size; + void *addr; + struct badblocks bb; +}; + +struct nvdimm_cxl_label { + u8 type[16]; + u8 uuid[16]; + u8 name[64]; + __le32 flags; + __le16 nrange; + __le16 position; + __le64 dpa; + __le64 rawsize; + __le32 slot; + __le32 align; + u8 region_uuid[16]; + u8 abstraction_uuid[16]; + __le16 lbasize; + u8 reserved[86]; + __le64 checksum; +}; + +struct nvdimm_efi_label { + u8 uuid[16]; + u8 name[64]; + __le32 flags; + __le16 nlabel; + __le16 position; + __le64 isetcookie; + __le64 lbasize; + __le64 dpa; + __le64 rawsize; + __le32 slot; + u8 align; + u8 reserved[3]; + guid_t type_guid; + guid_t abstraction_guid; + u8 reserved2[88]; + __le64 checksum; +}; + +struct nd_namespace_label { + union { + struct nvdimm_cxl_label cxl; + struct nvdimm_efi_label efi; + }; +}; + +struct nd_namespace_pmem { + struct nd_namespace_io nsio; + long unsigned int lbasize; + char *alt_name; + uuid_t *uuid; + int id; +}; + +struct nd_opt_hdr { + __u8 nd_opt_type; + __u8 nd_opt_len; +}; + +struct nd_percpu_lane { + int count; + spinlock_t lock; +}; + +struct nd_pfn_sb { + u8 signature[16]; + u8 uuid[16]; + u8 parent_uuid[16]; + __le32 flags; + __le16 version_major; + __le16 version_minor; + __le64 dataoff; + __le64 npfns; + __le32 mode; + __le32 start_pad; + __le32 end_trunc; + __le32 align; + __le32 page_size; + __le16 page_struct_size; + u8 padding[3994]; + __le64 checksum; +}; + +struct nd_region { + struct device dev; + struct ida ns_ida; + struct ida btt_ida; + struct ida pfn_ida; + struct ida dax_ida; + long unsigned int flags; + struct device *ns_seed; + struct device *btt_seed; + struct device *pfn_seed; + struct device *dax_seed; + long unsigned int align; + u16 ndr_mappings; + u64 ndr_size; + u64 ndr_start; + int id; + int num_lanes; + int ro; + int numa_node; + int target_node; + void *provider_data; + struct kernfs_node *bb_state; + struct badblocks bb; + struct nd_interleave_set *nd_set; + struct nd_percpu_lane *lane; + int (*flush)(struct nd_region *, struct bio *); + struct nd_mapping mapping[0]; +}; + +struct nd_region_data { + int ns_count; + int ns_active; + unsigned int hints_shift; + void *flush_wpq[0]; +}; + +struct nd_region_desc { + struct resource *res; + struct nd_mapping_desc *mapping; + u16 num_mappings; + const struct attribute_group **attr_groups; + struct nd_interleave_set *nd_set; + void *provider_data; + int num_lanes; + int numa_node; + int target_node; + long unsigned int flags; + int memregion; + struct device_node *of_node; + int (*flush)(struct nd_region *, struct bio *); +}; + +struct nda_cacheinfo { + __u32 ndm_confirmed; + __u32 ndm_used; + __u32 ndm_updated; + __u32 ndm_refcnt; +}; + +struct ndisc_options; + +struct prefix_info; + +struct ndisc_ops { + 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 ndisc_options { + struct nd_opt_hdr *nd_opt_array[15]; + struct nd_opt_hdr *nd_opts_ri; + struct nd_opt_hdr *nd_opts_ri_end; + struct nd_opt_hdr *nd_useropts; + struct nd_opt_hdr *nd_useropts_end; + struct nd_opt_hdr *nd_802154_opt_array[3]; +}; + +struct ndmsg { + __u8 ndm_family; + __u8 ndm_pad1; + __u16 ndm_pad2; + __s32 ndm_ifindex; + __u16 ndm_state; + __u8 ndm_flags; + __u8 ndm_type; +}; + +struct ndo_fdb_dump_context { + long unsigned int ifindex; + long unsigned int fdb_idx; +}; + +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 ndtmsg { + __u8 ndtm_family; + __u8 ndtm_pad1; + __u16 ndtm_pad2; +}; + +struct nduseroptmsg { + unsigned char nduseropt_family; + unsigned char nduseropt_pad1; + short unsigned int nduseropt_opts_len; + int nduseropt_ifindex; + __u8 nduseropt_icmp_type; + __u8 nduseropt_icmp_code; + short unsigned int nduseropt_pad2; + unsigned int nduseropt_pad3; +}; + +struct neigh_dump_filter { + int master_idx; + int dev_idx; +}; + +struct neigh_hash_table { + struct hlist_head *hash_heads; + 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 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]; + long unsigned int data_state[1]; +}; + +struct neigh_seq_state { + struct seq_net_private p; + struct neigh_table *tbl; + struct neigh_hash_table *nht; + void * (*neigh_sub_iter)(struct neigh_seq_state *, struct neighbour *, loff_t *); + unsigned int bucket; + unsigned int flags; +}; + +struct neigh_statistics { + long unsigned int allocs; + long unsigned int destroys; + long unsigned int hash_grows; + long unsigned int res_failed; + long unsigned int lookups; + long unsigned int hits; + long unsigned int rcv_probes_mcast; + long unsigned int rcv_probes_ucast; + long unsigned int periodic_gc_runs; + long unsigned int forced_gc_runs; + long unsigned int unres_discards; + long unsigned int table_fulls; +}; + +struct neigh_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table neigh_vars[21]; +}; + +struct pneigh_entry; + +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; + long unsigned int 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; + long unsigned int last_rand; + struct neigh_statistics *stats; + struct neigh_hash_table *nht; + struct pneigh_entry **phash_buckets; +}; + +struct neighbour { + struct hlist_node hash; + struct hlist_node dev_list; + struct neigh_table *tbl; + struct neigh_parms *parms; + long unsigned int confirmed; + long unsigned int updated; + rwlock_t lock; + refcount_t refcnt; + unsigned int arp_queue_len_bytes; + struct sk_buff_head arp_queue; + struct timer_list timer; + long unsigned int used; + atomic_t probes; + u8 nud_state; + u8 type; + u8 dead; + u8 protocol; + u32 flags; + seqlock_t ha_lock; + long: 0; + unsigned char ha[32]; + struct hh_cache hh; + int (*output)(struct neighbour *, struct sk_buff *); + const struct neigh_ops *ops; + struct list_head gc_list; + struct list_head managed_list; + struct callback_head rcu; + struct net_device *dev; + netdevice_tracker dev_tracker; + u8 primary_key[0]; +}; + +struct neighbour_cb { + long unsigned int sched_next; + unsigned int flags; +}; + +union nested_table { + union nested_table *table; + struct rhash_lock_head *bucket; +}; + +struct ref_tracker_dir {}; + +struct prot_inuse; + +struct netns_core { + struct ctl_table_header *sysctl_hdr; + int sysctl_somaxconn; + int sysctl_optmem_max; + u8 sysctl_txrehash; + u8 sysctl_tstamp_allow_data; + struct prot_inuse *prot_inuse; + struct cpumask *rps_default_mask; +}; + +struct tcp_mib; + +struct udp_mib; + +struct netns_mib { + struct ipstats_mib *ip_statistics; + struct ipstats_mib *ipv6_statistics; + struct tcp_mib *tcp_statistics; + struct linux_mib *net_statistics; + struct udp_mib *udp_statistics; + struct udp_mib *udp_stats_in6; + struct linux_xfrm_mib *xfrm_statistics; + struct linux_tls_mib *tls_statistics; + struct mptcp_mib *mptcp_statistics; + struct udp_mib *udplite_statistics; + struct udp_mib *udplite_stats_in6; + struct icmp_mib *icmp_statistics; + struct icmpmsg_mib *icmpmsg_statistics; + struct icmpv6_mib *icmpv6_statistics; + struct icmpv6msg_mib *icmpv6msg_statistics; + struct proc_dir_entry *proc_net_devsnmp6; +}; + +struct netns_packet { + struct mutex sklist_lock; + struct hlist_head sklist; +}; + +struct unix_table { + spinlock_t *locks; + struct hlist_head *buckets; +}; + +struct netns_unix { + struct unix_table table; + int sysctl_max_dgram_qlen; + struct ctl_table_header *ctl; +}; + +struct netns_nexthop { + struct rb_root rb_root; + struct hlist_head *devhash; + unsigned int seq; + u32 last_id_allocated; + struct blocking_notifier_head notifier_chain; +}; + +struct ping_group_range { + seqlock_t lock; + kgid_t range[2]; +}; + +struct sysctl_fib_multipath_hash_seed { + u32 user_seed; + u32 mp_seed; +}; + +struct netns_ipv4 { + __u8 __cacheline_group_begin__netns_ipv4_read_tx[0]; + u8 sysctl_tcp_early_retrans; + u8 sysctl_tcp_tso_win_divisor; + u8 sysctl_tcp_tso_rtt_log; + u8 sysctl_tcp_autocorking; + int sysctl_tcp_min_snd_mss; + unsigned int sysctl_tcp_notsent_lowat; + int sysctl_tcp_limit_output_bytes; + int sysctl_tcp_min_rtt_wlen; + int sysctl_tcp_wmem[3]; + u8 sysctl_ip_fwd_use_pmtu; + __u8 __cacheline_group_end__netns_ipv4_read_tx[0]; + __u8 __cacheline_group_begin__netns_ipv4_read_txrx[0]; + u8 sysctl_tcp_moderate_rcvbuf; + __u8 __cacheline_group_end__netns_ipv4_read_txrx[0]; + __u8 __cacheline_group_begin__netns_ipv4_read_rx[0]; + u8 sysctl_ip_early_demux; + u8 sysctl_tcp_early_demux; + u8 sysctl_tcp_l3mdev_accept; + int sysctl_tcp_reordering; + int sysctl_tcp_rmem[3]; + __u8 __cacheline_group_end__netns_ipv4_read_rx[0]; + long: 64; + 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 *ra_chain; + struct mutex ra_mutex; + struct fib_rules_ops *rules_ops; + struct fib_table *fib_main; + struct fib_table *fib_default; + unsigned int fib_rules_require_fldissect; + bool fib_has_custom_rules; + bool fib_has_custom_local_routes; + bool fib_offload_disabled; + u8 sysctl_tcp_shrink_window; + atomic_t fib_num_tclassid_users; + 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; + int sysctl_icmp_msgs_per_sec; + int sysctl_icmp_msgs_burst; + atomic_t icmp_global_credit; + u32 icmp_global_stamp; + 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_update_priority; + u8 sysctl_ip_nonlocal_bind; + u8 sysctl_ip_autobind_reuse; + u8 sysctl_ip_dynaddr; + u8 sysctl_raw_l3mdev_accept; + 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_probe_threshold; + u32 sysctl_tcp_probe_interval; + int sysctl_tcp_keepalive_time; + int sysctl_tcp_keepalive_intvl; + u8 sysctl_tcp_keepalive_probes; + u8 sysctl_tcp_syn_retries; + u8 sysctl_tcp_synack_retries; + u8 sysctl_tcp_syncookies; + u8 sysctl_tcp_migrate_req; + u8 sysctl_tcp_comp_sack_nr; + u8 sysctl_tcp_backlog_ack_defer; + u8 sysctl_tcp_pingpong_thresh; + u8 sysctl_tcp_retries1; + u8 sysctl_tcp_retries2; + u8 sysctl_tcp_orphan_retries; + u8 sysctl_tcp_tw_reuse; + unsigned int sysctl_tcp_tw_reuse_delay; + int sysctl_tcp_fin_timeout; + u8 sysctl_tcp_sack; + u8 sysctl_tcp_window_scaling; + u8 sysctl_tcp_timestamps; + int sysctl_tcp_rto_min_us; + 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_workaround_signed_windows; + int sysctl_tcp_challenge_ack_limit; + u8 sysctl_tcp_min_tso_segs; + u8 sysctl_tcp_reflect_tos; + int sysctl_tcp_invalid_ratelimit; + int sysctl_tcp_pacing_ss_ratio; + int sysctl_tcp_pacing_ca_ratio; + unsigned int sysctl_tcp_child_ehash_entries; + long unsigned int sysctl_tcp_comp_sack_delay_ns; + long unsigned int sysctl_tcp_comp_sack_slack_ns; + int sysctl_max_syn_backlog; + int sysctl_tcp_fastopen; + const struct tcp_congestion_ops *tcp_congestion_control; + struct tcp_fastopen_context *tcp_fastopen_ctx; + unsigned int sysctl_tcp_fastopen_blackhole_timeout; + atomic_t tfo_active_disable_times; + long unsigned int tfo_active_disable_stamp; + u32 tcp_challenge_timestamp; + u32 tcp_challenge_count; + u8 sysctl_tcp_plb_enabled; + u8 sysctl_tcp_plb_idle_rehash_rounds; + u8 sysctl_tcp_plb_rehash_rounds; + u8 sysctl_tcp_plb_suspend_rto_sec; + int sysctl_tcp_plb_cong_thresh; + int sysctl_udp_wmem_min; + int sysctl_udp_rmem_min; + u8 sysctl_fib_notify_on_flag_change; + u8 sysctl_tcp_syn_linear_timeouts; + u8 sysctl_udp_l3mdev_accept; + u8 sysctl_igmp_llm_reports; + int sysctl_igmp_max_memberships; + int sysctl_igmp_max_msf; + int sysctl_igmp_qrv; + struct ping_group_range ping_group_range; + atomic_t dev_addr_genid; + unsigned int sysctl_udp_child_hash_entries; + long unsigned int *sysctl_local_reserved_ports; + int sysctl_ip_prot_sock; + struct list_head mr_tables; + struct fib_rules_ops *mr_rules_ops; + struct sysctl_fib_multipath_hash_seed sysctl_fib_multipath_hash_seed; + 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 hlist_head *inet_addr_lst; + struct delayed_work addr_chk_work; + long: 64; + 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; + long unsigned int icmpv6_ratemask[4]; + long unsigned int *icmpv6_ratemask_ptr; + u8 anycast_src_echo_reply; + u8 ip_nonlocal_bind; + u8 fwmark_reflect; + u8 flowlabel_state_ranges; + int idgen_retries; + int idgen_delay; + int flowlabel_reflect; + int max_dst_opts_cnt; + int max_hbh_opts_cnt; + int max_dst_opts_len; + int max_hbh_opts_len; + int seg6_flowlabel; + u32 ioam6_id; + u64 ioam6_id_wide; + u8 skip_notify_on_dev_down; + u8 fib_notify_on_flag_change; + u8 icmpv6_error_anycast_as_unicast; +}; + +struct rt6_statistics; + +struct seg6_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; + long unsigned int ip6_rt_last_gc; + unsigned char flowlabel_has_excl; + bool fib6_has_custom_rules; + unsigned int fib6_rules_require_fldissect; + unsigned int fib6_routes_require_src; + struct rt6_info *ip6_prohibit_entry; + struct rt6_info *ip6_blk_hole_entry; + struct fib6_table *fib6_local_tbl; + struct fib_rules_ops *fib6_rules_ops; + struct sock *ndisc_sk; + struct sock *tcp_sk; + struct sock *igmp_sk; + struct sock *mc_autojoin_sk; + struct hlist_head *inet6_addr_lst; + spinlock_t addrconf_hash_lock; + struct delayed_work addr_chk_work; + struct list_head mr6_tables; + struct fib_rules_ops *mr6_rules_ops; + 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 netns_sysctl_lowpan { + struct ctl_table_header *frags_hdr; +}; + +struct netns_ieee802154_lowpan { + struct netns_sysctl_lowpan sysctl; + struct fqdir *fqdir; +}; + +struct sctp_mib; + +struct netns_sctp { + struct sctp_mib *sctp_statistics; + struct proc_dir_entry *proc_net_sctp; + struct ctl_table_header *sysctl_header; + struct sock *ctl_sock; + struct sock *udp4_sock; + struct sock *udp6_sock; + int udp_port; + int encap_port; + struct list_head local_addr_list; + struct list_head addr_waitq; + struct timer_list addr_wq_timer; + struct list_head auto_asconf_splist; + spinlock_t addr_wq_lock; + spinlock_t local_addr_lock; + unsigned int rto_initial; + unsigned int rto_min; + unsigned int rto_max; + int rto_alpha; + int rto_beta; + int max_burst; + int cookie_preserve_enable; + char *sctp_hmac_alg; + unsigned int valid_cookie_life; + unsigned int sack_timeout; + unsigned int hb_interval; + unsigned int probe_interval; + int max_retrans_association; + int max_retrans_path; + int max_retrans_init; + int pf_retrans; + int ps_retrans; + int pf_enable; + int pf_expose; + int sndbuf_policy; + int rcvbuf_policy; + int default_auto_asconf; + int addip_enable; + int addip_noauth; + int prsctp_enable; + int reconf_enable; + int auth_enable; + int intl_enable; + int ecn_enable; + int scope_policy; + int rwnd_upd_shift; + long unsigned int max_autoclose; + int l3mdev_accept; +}; + +struct nf_logger; + +struct nf_hook_entries; + +struct netns_nf { + struct proc_dir_entry *proc_netfilter; + const struct nf_logger *nf_loggers[11]; + struct ctl_table_header *nf_log_dir_header; + struct ctl_table_header *nf_lwtnl_dir_header; + struct nf_hook_entries *hooks_ipv4[5]; + struct nf_hook_entries *hooks_ipv6[5]; + struct nf_hook_entries *hooks_arp[3]; + struct nf_hook_entries *hooks_bridge[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; + unsigned int offload_timeout; +}; + +struct nf_udp_net { + unsigned int timeouts[2]; + unsigned int offload_timeout; +}; + +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_gre_net { + struct list_head keymap_list; + unsigned int timeouts[2]; +}; + +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 nf_gre_net gre; +}; + +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 *stat; + struct nf_ct_event_notifier *nf_conntrack_event_cb; + struct nf_ip_net nf_ct_proto; + atomic_t labels_used; +}; + +struct netns_nftables { + u8 gencursor; +}; + +struct nf_flow_table_stat; + +struct netns_ft { + struct nf_flow_table_stat *stat; +}; + +struct netns_bpf { + struct bpf_prog_array *run_array[2]; + struct bpf_prog *progs[2]; + struct list_head links[2]; +}; + +struct xfrm_policy_hash { + struct hlist_head *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 *state_bydst; + struct hlist_head *state_bysrc; + struct hlist_head *state_byspi; + struct hlist_head *state_byseq; + struct hlist_head *state_cache_input; + unsigned int state_hmask; + unsigned int state_num; + struct work_struct state_hash_work; + struct list_head policy_all; + struct hlist_head *policy_byidx; + unsigned int policy_idx_hmask; + unsigned int idx_generator; + struct 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; + 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; + struct delayed_work nat_keepalive_work; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct netns_ipvs; + +struct mpls_route; + +struct netns_mpls { + int ip_ttl_propagate; + int default_ttl; + size_t platform_labels; + struct mpls_route **platform_label; + struct ctl_table_header *ctl; +}; + +struct can_dev_rcv_lists; + +struct can_pkg_stats; + +struct can_rcv_lists_stats; + +struct netns_can { + struct proc_dir_entry *proc_dir; + struct proc_dir_entry *pde_stats; + struct proc_dir_entry *pde_reset_stats; + struct proc_dir_entry *pde_rcvlist_all; + struct proc_dir_entry *pde_rcvlist_fil; + struct proc_dir_entry *pde_rcvlist_inv; + struct proc_dir_entry *pde_rcvlist_sff; + struct proc_dir_entry *pde_rcvlist_eff; + struct proc_dir_entry *pde_rcvlist_err; + struct proc_dir_entry *bcmproc_dir; + struct can_dev_rcv_lists *rx_alldev_list; + spinlock_t rcvlists_lock; + struct timer_list stattimer; + struct can_pkg_stats *pkg_stats; + struct can_rcv_lists_stats *rcv_lists_stats; + struct hlist_head cgw_list; +}; + +struct netns_xdp { + struct mutex lock; + struct hlist_head list; +}; + +struct netns_mctp { + struct list_head routes; + struct mutex bind_lock; + struct hlist_head binds; + spinlock_t keys_lock; + struct hlist_head keys; + unsigned int default_net; + struct mutex neigh_lock; + struct list_head neighbours; +}; + +struct smc_stats; + +struct smc_stats_rsn; + +struct netns_smc { + struct smc_stats *smc_stats; + struct mutex mutex_fback_rsn; + struct smc_stats_rsn *fback_rsn; + bool limit_smc_hs; + struct ctl_table_header *smc_hdr; + unsigned int sysctl_autocorking_size; + unsigned int sysctl_smcr_buf_type; + int sysctl_smcr_testlink_time; + int sysctl_wmem; + int sysctl_rmem; + int sysctl_max_links_per_lgr; + int sysctl_max_conns_per_lgr; +}; + +struct uevent_sock; + +struct net_generic; + +struct net { + refcount_t passive; + spinlock_t rules_mod_lock; + unsigned int dev_base_seq; + u32 ifindex; + spinlock_t nsid_lock; + atomic_t fnhe_genid; + struct list_head list; + struct list_head exit_list; + struct llist_node defer_free_list; + struct llist_node cleanup_list; + struct key_tag *key_domain; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct idr netns_ids; + struct ns_common ns; + struct ref_tracker_dir refcnt_tracker; + struct ref_tracker_dir notrefcnt_tracker; + struct list_head dev_base_head; + struct proc_dir_entry *proc_net; + struct proc_dir_entry *proc_net_stat; + struct ctl_table_set sysctls; + struct sock *rtnl; + struct sock *genl_sock; + struct uevent_sock *uevent_sock; + struct hlist_head *dev_name_head; + struct hlist_head *dev_index_head; + struct xarray dev_by_index; + struct raw_notifier_head netdev_chain; + u32 hash_mix; + struct net_device *loopback_dev; + struct list_head rules_ops; + struct netns_core core; + struct netns_mib mib; + struct netns_packet packet; + struct netns_unix unx; + struct netns_nexthop nexthop; + long: 64; + long: 64; + struct netns_ipv4 ipv4; + struct netns_ipv6 ipv6; + struct netns_ieee802154_lowpan ieee802154_lowpan; + struct netns_sctp sctp; + struct netns_nf nf; + struct netns_ct ct; + struct netns_nftables nft; + struct netns_ft ft; + struct sk_buff_head wext_nlevents; + struct net_generic *gen; + struct netns_bpf bpf; + long: 64; + long: 64; + long: 64; + long: 64; + struct netns_xfrm xfrm; + u64 net_cookie; + struct netns_ipvs *ipvs; + struct netns_mpls mpls; + struct netns_can can; + struct netns_xdp xdp; + struct netns_mctp mctp; + struct sock *crypto_nlsk; + struct sock *diag_nlsk; + struct netns_smc smc; + long: 64; + long: 64; + long: 64; +}; + +struct rtable { + struct dst_entry dst; + int rt_genid; + unsigned int rt_flags; + __u16 rt_type; + __u8 rt_is_input; + __u8 rt_uses_gateway; + int rt_iif; + u8 rt_gw_family; + union { + __be32 rt_gw4; + struct in6_addr rt_gw6; + }; + u32 rt_mtu_locked: 1; + u32 rt_pmtu: 31; +}; + +struct rt6_info { + struct dst_entry dst; + struct fib6_info *from; + int sernum; + struct rt6key rt6i_dst; + struct rt6key rt6i_src; + struct in6_addr rt6i_gateway; + struct inet6_dev *rt6i_idev; + u32 rt6i_flags; + short unsigned int rt6i_nfheader_len; +}; + +struct net_bridge; + +struct net_bridge_vlan; + +struct net_bridge_mcast { + struct net_bridge *br; + struct net_bridge_vlan *vlan; + u32 multicast_last_member_count; + u32 multicast_startup_query_count; + u8 multicast_querier; + u8 multicast_igmp_version; + u8 multicast_router; + u8 multicast_mld_version; + long unsigned int multicast_last_member_interval; + long unsigned int multicast_membership_interval; + long unsigned int multicast_querier_interval; + long unsigned int multicast_query_interval; + long unsigned int multicast_query_response_interval; + long unsigned int multicast_startup_query_interval; + struct hlist_head ip4_mc_router_list; + struct timer_list ip4_mc_router_timer; + struct bridge_mcast_other_query ip4_other_query; + struct bridge_mcast_own_query ip4_own_query; + struct bridge_mcast_querier ip4_querier; + struct hlist_head ip6_mc_router_list; + struct timer_list ip6_mc_router_timer; + struct bridge_mcast_other_query ip6_other_query; + struct bridge_mcast_own_query ip6_own_query; + struct bridge_mcast_querier ip6_querier; +}; + +struct net_bridge_vlan_group; + +struct net_bridge { + spinlock_t lock; + spinlock_t hash_lock; + struct hlist_head frame_type_list; + struct net_device *dev; + long unsigned int options; + __be16 vlan_proto; + u16 default_pvid; + struct net_bridge_vlan_group *vlgrp; + struct rhashtable fdb_hash_tbl; + struct list_head port_list; + union { + struct rtable fake_rtable; + struct rt6_info fake_rt6_info; + }; + u32 metrics[17]; + u16 group_fwd_mask; + u16 group_fwd_mask_required; + bridge_id designated_root; + bridge_id bridge_id; + unsigned char topology_change; + unsigned char topology_change_detected; + u16 root_port; + long unsigned int max_age; + long unsigned int hello_time; + long unsigned int forward_delay; + long unsigned int ageing_time; + long unsigned int bridge_max_age; + long unsigned int bridge_hello_time; + long unsigned int bridge_forward_delay; + long unsigned int bridge_ageing_time; + u32 root_path_cost; + u8 group_addr[6]; + enum { + BR_NO_STP = 0, + BR_KERNEL_STP = 1, + BR_USER_STP = 2, + } stp_enabled; + struct net_bridge_mcast multicast_ctx; + struct bridge_mcast_stats *mcast_stats; + u32 hash_max; + spinlock_t multicast_lock; + struct rhashtable mdb_hash_tbl; + struct rhashtable sg_port_tbl; + struct hlist_head mcast_gc_list; + struct hlist_head mdb_list; + struct work_struct mcast_gc_work; + struct timer_list hello_timer; + struct timer_list tcn_timer; + struct timer_list topology_change_timer; + struct delayed_work gc_work; + struct kobject *ifobj; + u32 auto_cnt; + atomic_t fdb_n_learned; + u32 fdb_max_learned; + int last_hwdom; + long unsigned int busy_hwdoms; + struct hlist_head fdb_list; + struct hlist_head mrp_list; + struct hlist_head mep_list; +}; + +struct net_bridge_fdb_key { + mac_addr addr; + u16 vlan_id; +}; + +struct net_bridge_port; + +struct net_bridge_fdb_entry { + struct rhash_head rhnode; + struct net_bridge_port *dst; + struct net_bridge_fdb_key key; + struct hlist_node fdb_node; + long unsigned int flags; + long: 64; + long: 64; + long unsigned int updated; + long unsigned int used; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct net_bridge_mcast_port { + struct net_bridge_port *port; + struct net_bridge_vlan *vlan; + struct bridge_mcast_own_query ip4_own_query; + struct timer_list ip4_mc_router_timer; + struct hlist_node ip4_rlist; + struct bridge_mcast_own_query ip6_own_query; + struct timer_list ip6_mc_router_timer; + struct hlist_node ip6_rlist; + unsigned char multicast_router; + u32 mdb_n_entries; + u32 mdb_max_entries; +}; + +struct netpoll; + +struct net_bridge_port { + struct net_bridge *br; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct list_head list; + long unsigned int flags; + struct net_bridge_vlan_group *vlgrp; + struct net_bridge_port *backup_port; + u32 backup_nhid; + u8 priority; + u8 state; + u16 port_no; + unsigned char topology_change_ack; + unsigned char config_pending; + port_id port_id; + port_id designated_port; + bridge_id designated_root; + bridge_id designated_bridge; + u32 path_cost; + u32 designated_cost; + long unsigned int designated_age; + struct timer_list forward_delay_timer; + struct timer_list hold_timer; + struct timer_list message_age_timer; + struct kobject kobj; + struct callback_head rcu; + struct net_bridge_mcast_port multicast_ctx; + struct bridge_mcast_stats *mcast_stats; + u32 multicast_eht_hosts_limit; + u32 multicast_eht_hosts_cnt; + struct hlist_head mglist; + char sysfs_name[16]; + struct netpoll *np; + int hwdom; + int offload_count; + struct netdev_phys_item_id ppid; + u16 group_fwd_mask; + u16 backup_redirected_cnt; + struct bridge_stp_xstats stp_xstats; +}; + +struct pcpu_sw_netstats; + +struct net_bridge_vlan { + struct rhash_head vnode; + struct rhash_head tnode; + u16 vid; + u16 flags; + u16 priv_flags; + u8 state; + struct pcpu_sw_netstats *stats; + union { + struct net_bridge *br; + struct net_bridge_port *port; + }; + union { + refcount_t refcnt; + struct net_bridge_vlan *brvlan; + }; + struct br_tunnel_info tinfo; + union { + struct net_bridge_mcast br_mcast_ctx; + struct net_bridge_mcast_port port_mcast_ctx; + }; + u16 msti; + struct list_head vlist; + struct callback_head rcu; +}; + +struct net_bridge_vlan_group { + struct rhashtable vlan_hash; + struct rhashtable tunnel_hash; + struct list_head vlan_list; + u16 num_vlans; + u16 pvid; + u8 pvid_state; +}; + +struct netdev_tc_txq { + u16 count; + u16 offset; +}; + +typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **); + +struct net_device_stats { + union { + long unsigned int rx_packets; + atomic_long_t __rx_packets; + }; + union { + long unsigned int tx_packets; + atomic_long_t __tx_packets; + }; + union { + long unsigned int rx_bytes; + atomic_long_t __rx_bytes; + }; + union { + long unsigned int tx_bytes; + atomic_long_t __tx_bytes; + }; + union { + long unsigned int rx_errors; + atomic_long_t __rx_errors; + }; + union { + long unsigned int tx_errors; + atomic_long_t __tx_errors; + }; + union { + long unsigned int rx_dropped; + atomic_long_t __rx_dropped; + }; + union { + long unsigned int tx_dropped; + atomic_long_t __tx_dropped; + }; + union { + long unsigned int multicast; + atomic_long_t __multicast; + }; + union { + long unsigned int collisions; + atomic_long_t __collisions; + }; + union { + long unsigned int rx_length_errors; + atomic_long_t __rx_length_errors; + }; + union { + long unsigned int rx_over_errors; + atomic_long_t __rx_over_errors; + }; + union { + long unsigned int rx_crc_errors; + atomic_long_t __rx_crc_errors; + }; + union { + long unsigned int rx_frame_errors; + atomic_long_t __rx_frame_errors; + }; + union { + long unsigned int rx_fifo_errors; + atomic_long_t __rx_fifo_errors; + }; + union { + long unsigned int rx_missed_errors; + atomic_long_t __rx_missed_errors; + }; + union { + long unsigned int tx_aborted_errors; + atomic_long_t __tx_aborted_errors; + }; + union { + long unsigned int tx_carrier_errors; + atomic_long_t __tx_carrier_errors; + }; + union { + long unsigned int tx_fifo_errors; + atomic_long_t __tx_fifo_errors; + }; + union { + long unsigned int tx_heartbeat_errors; + atomic_long_t __tx_heartbeat_errors; + }; + union { + long unsigned int tx_window_errors; + atomic_long_t __tx_window_errors; + }; + union { + long unsigned int rx_compressed; + atomic_long_t __rx_compressed; + }; + union { + long unsigned int tx_compressed; + atomic_long_t __tx_compressed; + }; +}; + +struct netdev_hw_addr_list { + struct list_head list; + int count; + struct rb_root tree; +}; + +struct tipc_bearer; + +struct mpls_dev; + +struct garp_port; + +struct mrp_port; + +struct udp_tunnel_nic; + +struct net_device_ops; + +struct xps_dev_maps; + +struct pcpu_lstats; + +struct pcpu_dstats; + +struct netdev_rx_queue; + +struct netpoll_info; + +struct netdev_name_node; + +struct xdp_metadata_ops; + +struct xsk_tx_metadata_ops; + +struct net_device_core_stats; + +struct xfrmdev_ops; + +struct tlsdev_ops; + +struct vlan_info; + +struct wireless_dev; + +struct wpan_dev; + +struct xdp_dev_bulk_queue; + +struct rtnl_link_ops; + +struct netdev_stat_ops; + +struct netdev_queue_mgmt_ops; + +struct netprio_map; + +struct phy_link_topology; + +struct sfp_bus; + +struct udp_tunnel_nic_info; + +struct netdev_config; + +struct rtnl_hw_stats64; + +struct net_shaper_hierarchy; + +struct net_device { + __u8 __cacheline_group_begin__net_device_read_tx[0]; + union { + struct { + long unsigned int priv_flags: 32; + long unsigned int lltx: 1; + }; + struct { + long unsigned int priv_flags: 32; + long unsigned int lltx: 1; + } priv_flags_fast; + }; + const struct net_device_ops *netdev_ops; + const struct header_ops *header_ops; + struct netdev_queue *_tx; + netdev_features_t gso_partial_features; + unsigned int real_num_tx_queues; + unsigned int gso_max_size; + unsigned int gso_ipv4_max_size; + u16 gso_max_segs; + s16 num_tc; + unsigned int mtu; + short unsigned int needed_headroom; + struct netdev_tc_txq tc_to_txq[16]; + struct xps_dev_maps *xps_maps[2]; + struct nf_hook_entries *nf_hooks_egress; + struct bpf_mprog_entry *tcx_egress; + __u8 __cacheline_group_end__net_device_read_tx[0]; + __u8 __cacheline_group_begin__net_device_read_txrx[0]; + union { + struct pcpu_lstats *lstats; + struct pcpu_sw_netstats *tstats; + struct pcpu_dstats *dstats; + }; + long unsigned int state; + unsigned int flags; + short unsigned int hard_header_len; + netdev_features_t features; + struct inet6_dev *ip6_ptr; + __u8 __cacheline_group_end__net_device_read_txrx[0]; + __u8 __cacheline_group_begin__net_device_read_rx[0]; + struct bpf_prog *xdp_prog; + struct list_head ptype_specific; + int ifindex; + unsigned int real_num_rx_queues; + struct netdev_rx_queue *_rx; + unsigned int gro_max_size; + unsigned int gro_ipv4_max_size; + rx_handler_func_t *rx_handler; + void *rx_handler_data; + possible_net_t nd_net; + struct netpoll_info *npinfo; + struct bpf_mprog_entry *tcx_ingress; + __u8 __cacheline_group_end__net_device_read_rx[0]; + char name[16]; + struct netdev_name_node *name_node; + struct dev_ifalias *ifalias; + long unsigned int mem_end; + long unsigned int mem_start; + long unsigned int base_addr; + struct list_head dev_list; + struct list_head napi_list; + struct list_head unreg_list; + struct list_head close_list; + struct list_head ptype_all; + struct { + struct list_head upper; + struct list_head lower; + } adj_list; + xdp_features_t xdp_features; + const struct xdp_metadata_ops *xdp_metadata_ops; + const struct xsk_tx_metadata_ops *xsk_tx_metadata_ops; + short unsigned int gflags; + short unsigned int needed_tailroom; + netdev_features_t hw_features; + netdev_features_t wanted_features; + netdev_features_t vlan_features; + netdev_features_t hw_enc_features; + netdev_features_t mpls_features; + unsigned int min_mtu; + unsigned int max_mtu; + short unsigned int type; + unsigned char min_header_len; + unsigned char name_assign_type; + int group; + struct net_device_stats stats; + struct net_device_core_stats *core_stats; + atomic_t carrier_up_count; + atomic_t carrier_down_count; + const struct iw_handler_def *wireless_handlers; + const struct ethtool_ops *ethtool_ops; + const struct l3mdev_ops *l3mdev_ops; + const struct ndisc_ops *ndisc_ops; + const struct xfrmdev_ops *xfrmdev_ops; + const struct tlsdev_ops *tlsdev_ops; + unsigned int operstate; + unsigned char link_mode; + unsigned char if_port; + unsigned char dma; + unsigned char perm_addr[32]; + unsigned char addr_assign_type; + unsigned char addr_len; + unsigned char upper_level; + unsigned char lower_level; + short unsigned int neigh_priv_len; + short unsigned int dev_id; + short unsigned int dev_port; + int irq; + u32 priv_len; + spinlock_t addr_list_lock; + 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 *ip_ptr; + struct hlist_head fib_nh_head; + struct vlan_info *vlan_info; + struct dsa_port *dsa_ptr; + struct tipc_bearer *tipc_ptr; + void *atalk_ptr; + struct ax25_dev *ax25_ptr; + struct wireless_dev *ieee80211_ptr; + struct wpan_dev *ieee802154_ptr; + struct mpls_dev *mpls_ptr; + struct mctp_dev *mctp_ptr; + const unsigned char *dev_addr; + unsigned int num_rx_queues; + unsigned int xdp_zc_max_segs; + struct netdev_queue *ingress_queue; + struct nf_hook_entries *nf_hooks_ingress; + unsigned char broadcast[32]; + struct cpu_rmap *rx_cpu_rmap; + struct hlist_node index_hlist; + unsigned int num_tx_queues; + struct Qdisc *qdisc; + unsigned int tx_queue_len; + spinlock_t tx_global_lock; + struct xdp_dev_bulk_queue *xdp_bulkq; + struct hlist_head qdisc_hash[16]; + struct timer_list watchdog_timer; + int watchdog_timeo; + u32 proto_down_reason; + struct list_head todo_list; + int *pcpu_refcnt; + struct ref_tracker_dir refcnt_tracker; + struct list_head link_watch_list; + u8 reg_state; + bool dismantle; + enum { + RTNL_LINK_INITIALIZED = 0, + RTNL_LINK_INITIALIZING = 1, + } rtnl_link_state: 16; + bool needs_free_netdev; + void (*priv_destructor)(struct net_device *); + void *ml_priv; + enum netdev_ml_priv_type ml_priv_type; + enum netdev_stat_type pcpu_stat_type: 8; + struct garp_port *garp_port; + struct mrp_port *mrp_port; + struct dm_hw_stat_delta *dm_private; + struct device dev; + const struct attribute_group *sysfs_groups[4]; + const struct attribute_group *sysfs_rx_queue_group; + const struct rtnl_link_ops *rtnl_link_ops; + const struct netdev_stat_ops *stat_ops; + const struct netdev_queue_mgmt_ops *queue_mgmt_ops; + unsigned int tso_max_size; + u16 tso_max_segs; + const struct dcbnl_rtnl_ops *dcbnl_ops; + u8 prio_tc_map[16]; + unsigned int fcoe_ddp_xid; + struct netprio_map *priomap; + struct phy_link_topology *link_topo; + struct phy_device *phydev; + struct sfp_bus *sfp_bus; + struct lock_class_key *qdisc_tx_busylock; + bool proto_down; + bool threaded; + long unsigned int see_all_hwtstamp_requests: 1; + long unsigned int change_proto_down: 1; + long unsigned int netns_local: 1; + long unsigned int fcoe_mtu: 1; + struct list_head net_notifier_list; + const struct macsec_ops *macsec_ops; + const struct udp_tunnel_nic_info *udp_tunnel_nic_info; + struct udp_tunnel_nic *udp_tunnel_nic; + struct netdev_config *cfg; + struct netdev_config *cfg_pending; + struct ethtool_netdev_state *ethtool; + struct bpf_xdp_entity xdp_state[3]; + u8 dev_addr_shadow[32]; + netdevice_tracker linkwatch_dev_tracker; + netdevice_tracker watchdog_dev_tracker; + netdevice_tracker dev_registered_tracker; + struct rtnl_hw_stats64 *offload_xstats_l3; + struct devlink_port *devlink_port; + struct dpll_pin *dpll_pin; + struct hlist_head page_pools; + struct dim_irq_moder *irq_moder; + u64 max_pacing_offload_horizon; + struct napi_config *napi_config; + long unsigned int gro_flush_timeout; + u32 napi_defer_hard_irqs; + bool up; + struct mutex lock; + struct net_shaper_hierarchy *net_shaper_hierarchy; + struct hlist_head neighbours[2]; + struct hwtstamp_provider *hwprov; + long: 64; + long: 64; + long: 64; + long: 64; + u8 priv[0]; +}; + +struct net_device_core_stats { + long unsigned int rx_dropped; + long unsigned int tx_dropped; + long unsigned int rx_nohandler; + long unsigned int rx_otherhost_dropped; +}; + +struct net_device_devres { + struct net_device *ndev; +}; + +struct netdev_fcoe_hbainfo; + +struct netdev_bpf; + +struct xdp_frame; + +struct net_device_path_ctx; + +struct net_device_path; + +struct skb_shared_hwtstamps; + +struct net_shaper_ops; + +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 *, 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 *); + 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_fcoe_enable)(struct net_device *); + int (*ndo_fcoe_disable)(struct net_device *); + int (*ndo_fcoe_ddp_setup)(struct net_device *, u16, struct scatterlist *, unsigned int); + int (*ndo_fcoe_ddp_done)(struct net_device *, u16); + int (*ndo_fcoe_ddp_target)(struct net_device *, u16, struct scatterlist *, unsigned int); + int (*ndo_fcoe_get_hbainfo)(struct net_device *, struct netdev_fcoe_hbainfo *); + int (*ndo_fcoe_get_wwn)(struct net_device *, u64 *, int); + 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, bool *, struct netlink_ext_ack *); + int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, bool *, struct netlink_ext_ack *); + int (*ndo_fdb_del_bulk)(struct nlmsghdr *, struct net_device *, struct netlink_ext_ack *); + int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *); + int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *); + int (*ndo_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *); + int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); + int (*ndo_mdb_del_bulk)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); + int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *); + int (*ndo_mdb_get)(struct net_device *, struct nlattr **, u32, u32, struct netlink_ext_ack *); + int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *); + int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int); + int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16); + int (*ndo_change_carrier)(struct net_device *, bool); + int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t); + void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *); + void (*ndo_dfwd_del_station)(struct net_device *, void *); + int (*ndo_set_tx_maxrate)(struct net_device *, int, u32); + int (*ndo_get_iflink)(const struct net_device *); + int (*ndo_fill_metadata_dst)(struct net_device *, struct sk_buff *); + void (*ndo_set_rx_headroom)(struct net_device *, int); + int (*ndo_bpf)(struct net_device *, struct netdev_bpf *); + int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32); + struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *); + int (*ndo_xsk_wakeup)(struct net_device *, u32, u32); + int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm_kern *, int); + struct net_device * (*ndo_get_peer_dev)(struct net_device *); + int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *); + ktime_t (*ndo_get_tstamp)(struct net_device *, const struct skb_shared_hwtstamps *, bool); + int (*ndo_hwtstamp_get)(struct net_device *, struct kernel_hwtstamp_config *); + int (*ndo_hwtstamp_set)(struct net_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); + const struct net_shaper_ops *net_shaper_ops; +}; + +struct net_device_path { + enum net_device_path_type type; + const struct net_device *dev; + union { + struct { + u16 id; + __be16 proto; + u8 h_dest[6]; + } encap; + struct { + enum { + DEV_PATH_BR_VLAN_KEEP = 0, + DEV_PATH_BR_VLAN_TAG = 1, + DEV_PATH_BR_VLAN_UNTAG = 2, + DEV_PATH_BR_VLAN_UNTAG_HW = 3, + } vlan_mode; + u16 vlan_id; + __be16 vlan_proto; + } bridge; + struct { + int port; + u16 proto; + } dsa; + struct { + u8 wdma_idx; + u8 queue; + u16 wcid; + u8 bss; + u8 amsdu; + } mtk_wdma; + }; +}; + +struct net_device_path_ctx { + const struct net_device *dev; + u8 daddr[6]; + int num_vlans; + struct { + u16 id; + __be16 proto; + } vlan[2]; +}; + +struct net_device_path_stack { + int num_paths; + struct net_device_path path[5]; +}; + +struct net_devmem_dmabuf_binding { + struct dma_buf *dmabuf; + struct dma_buf_attachment *attachment; + struct sg_table *sgt; + struct net_device *dev; + struct gen_pool *chunk_pool; + refcount_t ref; + struct list_head list; + struct xarray bound_rxqs; + u32 id; +}; + +struct net_dm_drop_point { + __u8 pc[8]; + __u32 count; +}; + +struct net_dm_alert_msg { + __u32 entries; + struct net_dm_drop_point points[0]; +}; + +struct net_dm_alert_ops { + void (*kfree_skb_probe)(void *, struct sk_buff *, void *, enum skb_drop_reason, struct sock *); + void (*napi_poll_probe)(void *, struct napi_struct *, int, int); + void (*work_item_func)(struct work_struct *); + void (*hw_work_item_func)(struct work_struct *); + void (*hw_trap_probe)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *); +}; + +struct net_dm_hw_entry { + char trap_name[40]; + u32 count; +}; + +struct net_dm_hw_entries { + u32 num_entries; + struct net_dm_hw_entry entries[0]; +}; + +struct net_dm_skb_cb { + union { + struct devlink_trap_metadata *hw_metadata; + void *pc; + }; + enum skb_drop_reason reason; +}; + +struct net_dm_stats { + u64_stats_t dropped; + struct u64_stats_sync syncp; +}; + +struct rtnl_link_stats64 { + __u64 rx_packets; + __u64 tx_packets; + __u64 rx_bytes; + __u64 tx_bytes; + __u64 rx_errors; + __u64 tx_errors; + __u64 rx_dropped; + __u64 tx_dropped; + __u64 multicast; + __u64 collisions; + __u64 rx_length_errors; + __u64 rx_over_errors; + __u64 rx_crc_errors; + __u64 rx_frame_errors; + __u64 rx_fifo_errors; + __u64 rx_missed_errors; + __u64 tx_aborted_errors; + __u64 tx_carrier_errors; + __u64 tx_fifo_errors; + __u64 tx_heartbeat_errors; + __u64 tx_window_errors; + __u64 rx_compressed; + __u64 tx_compressed; + __u64 rx_nohandler; + __u64 rx_otherhost_dropped; +}; + +struct net_failover_info { + struct net_device *primary_dev; + struct net_device *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 net_fill_args { + u32 portid; + u32 seq; + int flags; + int cmd; + int nsid; + bool add_ref; + int ref_nsid; +}; + +struct net_generic { + union { + struct { + unsigned int len; + struct callback_head rcu; + } s; + struct { + struct {} __empty_ptr; + void *ptr[0]; + }; + }; +}; + +struct offload_callbacks { + struct sk_buff * (*gso_segment)(struct sk_buff *, netdev_features_t); + struct sk_buff * (*gro_receive)(struct list_head *, struct sk_buff *); + int (*gro_complete)(struct sk_buff *, int); +}; + +struct packet_offload { + __be16 type; + u16 priority; + struct offload_callbacks callbacks; + struct list_head list; +}; + +struct net_offload { + struct offload_callbacks callbacks; + unsigned int flags; + u32 secret; +}; + +struct net_protocol { + int (*handler)(struct sk_buff *); + int (*err_handler)(struct sk_buff *, u32); + unsigned int no_policy: 1; + unsigned int icmp_strict_tag_validation: 1; + u32 secret; +}; + +struct rps_sock_flow_table; + +struct net_hotdata { + struct packet_offload ip_packet_offload; + struct net_offload tcpv4_offload; + struct net_protocol tcp_protocol; + struct net_offload udpv4_offload; + struct net_protocol udp_protocol; + struct packet_offload ipv6_packet_offload; + struct net_offload tcpv6_offload; + struct inet6_protocol tcpv6_protocol; + struct inet6_protocol udpv6_protocol; + struct net_offload udpv6_offload; + struct list_head offload_base; + struct list_head ptype_all; + struct kmem_cache *skbuff_cache; + struct kmem_cache *skbuff_fclone_cache; + struct kmem_cache *skb_small_head_cache; + struct rps_sock_flow_table *rps_sock_flow_table; + u32 rps_cpu_mask; + int gro_normal_batch; + int netdev_budget; + int netdev_budget_usecs; + int tstamp_prequeue; + int max_backlog; + int dev_tx_weight; + int dev_rx_weight; + int sysctl_max_skb_frags; + int sysctl_skb_defer_max; + int sysctl_mem_pcpu_rsv; +}; + +struct net_iov { + long unsigned int __unused_padding; + long unsigned int pp_magic; + struct page_pool *pp; + struct dmabuf_genpool_chunk_owner *owner; + long unsigned int dma_addr; + atomic_long_t pp_ref_count; +}; + +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_proto_family { + int family; + int (*create)(struct net *, struct socket *, int, int); + struct module *owner; +}; + +struct net_rate_estimator { + struct gnet_stats_basic_sync *bstats; + spinlock_t *stats_lock; + bool running; + struct gnet_stats_basic_sync *cpu_bstats; + u8 ewma_log; + u8 intvl_log; + seqcount_t seq; + u64 last_packets; + u64 last_bytes; + u64 avpps; + u64 avbps; + long unsigned int next_jiffies; + struct timer_list timer; + struct callback_head rcu; +}; + +struct net_shaper_handle { + enum net_shaper_scope scope; + u32 id; +}; + +struct net_shaper { + struct net_shaper_handle parent; + struct net_shaper_handle handle; + enum net_shaper_metric metric; + u64 bw_min; + u64 bw_max; + u64 burst; + u32 priority; + u32 weight; + u32 leaves; + struct callback_head rcu; +}; + +struct net_shaper_binding { + enum net_shaper_binding_type type; + union { + struct net_device *netdev; + struct devlink *devlink; + }; +}; + +struct net_shaper_hierarchy { + struct xarray shapers; +}; + +struct net_shaper_nl_ctx { + struct net_shaper_binding binding; + netdevice_tracker dev_tracker; + long unsigned int start_index; +}; + +struct net_shaper_ops { + int (*group)(struct net_shaper_binding *, int, const struct net_shaper *, const struct net_shaper *, struct netlink_ext_ack *); + int (*set)(struct net_shaper_binding *, const struct net_shaper *, struct netlink_ext_ack *); + int (*delete)(struct net_shaper_binding *, const struct net_shaper_handle *, struct netlink_ext_ack *); + void (*capabilities)(struct net_shaper_binding *, enum net_shaper_scope, long unsigned int *); +}; + +struct net_test { + char name[32]; + int (*fn)(struct net_device *); +}; + +struct net_test_priv { + struct net_packet_attrs *packet; + struct packet_type pt; + struct completion comp; + int double_vlan; + int vlan_id; + int ok; +}; + +struct netconfmsg { + __u8 ncm_family; +}; + +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 netdev_bonding_info { + ifslave slave; + ifbond master; +}; + +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 netdev_config { + u32 hds_thresh; + u8 hds_config; +}; + +struct netdev_fcoe_hbainfo { + char manufacturer[64]; + char serial_number[64]; + char hardware_version[64]; + char driver_version[64]; + char optionrom_version[64]; + char firmware_version[64]; + char model[256]; + char model_description[256]; +}; + +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 netdev_lag_lower_state_info { + u8 link_up: 1; + u8 tx_enabled: 1; +}; + +struct netdev_lag_upper_info { + enum netdev_lag_tx_type tx_type; + enum netdev_lag_hash hash_type; +}; + +struct netdev_name_node { + struct hlist_node hlist; + struct list_head list; + struct net_device *dev; + const char *name; + struct callback_head rcu; +}; + +struct netdev_nested_priv { + unsigned char flags; + void *data; +}; + +struct netdev_net_notifier { + struct list_head list; + struct notifier_block *nb; +}; + +struct netdev_nl_dump_ctx { + long unsigned int ifindex; + unsigned int rxq_idx; + unsigned int txq_idx; + unsigned int napi_id; +}; + +struct netdev_notifier_info { + struct net_device *dev; + struct netlink_ext_ack *extack; +}; + +struct netdev_notifier_bonding_info { + struct netdev_notifier_info info; + struct netdev_bonding_info bonding_info; +}; + +struct netdev_notifier_change_info { + struct netdev_notifier_info info; + unsigned int flags_changed; +}; + +struct netdev_notifier_changelowerstate_info { + struct netdev_notifier_info info; + void *lower_state_info; +}; + +struct netdev_notifier_changeupper_info { + struct netdev_notifier_info info; + struct net_device *upper_dev; + bool master; + bool linking; + void *upper_info; +}; + +struct netdev_notifier_info_ext { + struct netdev_notifier_info info; + union { + u32 mtu; + } ext; +}; + +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 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 netdev_notifier_offload_xstats_rd { + struct rtnl_hw_stats64 stats; + bool used; +}; + +struct netdev_notifier_offload_xstats_ru { + bool used; +}; + +struct netdev_notifier_pre_changeaddr_info { + struct netdev_notifier_info info; + const unsigned char *dev_addr; +}; + +struct netdev_queue { + struct net_device *dev; + netdevice_tracker dev_tracker; + struct Qdisc *qdisc; + struct Qdisc *qdisc_sleeping; + struct kobject kobj; + long unsigned int tx_maxrate; + atomic_long_t trans_timeout; + struct net_device *sb_dev; + struct xsk_buff_pool *pool; + long: 64; + struct dql dql; + spinlock_t _xmit_lock; + int xmit_lock_owner; + long unsigned int trans_start; + long unsigned int state; + struct napi_struct *napi; + int numa_node; + long: 64; + long: 64; + long: 64; +}; + +struct netdev_queue_attribute { + struct attribute attr; + ssize_t (*show)(struct netdev_queue *, char *); + ssize_t (*store)(struct netdev_queue *, const char *, size_t); +}; + +struct netdev_queue_mgmt_ops { + size_t ndo_queue_mem_size; + int (*ndo_queue_mem_alloc)(struct net_device *, void *, int); + void (*ndo_queue_mem_free)(struct net_device *, void *); + int (*ndo_queue_start)(struct net_device *, void *, int); + int (*ndo_queue_stop)(struct net_device *, void *, int); +}; + +struct netdev_queue_stats_rx { + u64 bytes; + u64 packets; + u64 alloc_fail; + u64 hw_drops; + u64 hw_drop_overruns; + u64 csum_unnecessary; + u64 csum_none; + u64 csum_bad; + u64 hw_gro_packets; + u64 hw_gro_bytes; + u64 hw_gro_wire_packets; + u64 hw_gro_wire_bytes; + u64 hw_drop_ratelimits; +}; + +struct netdev_queue_stats_tx { + u64 bytes; + u64 packets; + u64 hw_drops; + u64 hw_drop_errors; + u64 csum_none; + u64 needs_csum; + u64 hw_gso_packets; + u64 hw_gso_bytes; + u64 hw_gso_wire_packets; + u64 hw_gso_wire_bytes; + u64 hw_drop_ratelimits; + u64 stop; + u64 wake; +}; + +struct xdp_mem_info { + u32 type; + u32 id; +}; + +struct xdp_rxq_info { + struct net_device *dev; + u32 queue_index; + u32 reg_state; + struct xdp_mem_info mem; + u32 frag_size; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct pp_memory_provider_params { + void *mp_priv; +}; + +struct rps_map; + +struct rps_dev_flow_table; + +struct netdev_rx_queue { + struct xdp_rxq_info xdp_rxq; + struct rps_map *rps_map; + struct rps_dev_flow_table *rps_flow_table; + struct kobject kobj; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct xsk_buff_pool *pool; + struct napi_struct *napi; + struct pp_memory_provider_params mp_params; + long: 64; + long: 64; +}; + +struct netdev_stat_ops { + void (*get_queue_stats_rx)(struct net_device *, int, struct netdev_queue_stats_rx *); + void (*get_queue_stats_tx)(struct net_device *, int, struct netdev_queue_stats_tx *); + void (*get_base_stats)(struct net_device *, struct netdev_queue_stats_rx *, struct netdev_queue_stats_tx *); +}; + +struct netdev_xmit { + u16 recursion; + u8 more; + u8 skip_txqueue; +}; + +struct netevent_redirect { + struct dst_entry *old; + struct dst_entry *new; + struct neighbour *neigh; + const void *daddr; +}; + +struct netfront_cb { + int pull_to; +}; + +struct netfront_queue; + +struct netfront_stats; + +struct netfront_info { + struct list_head list; + struct net_device *netdev; + struct xenbus_device *xbdev; + struct netfront_queue *queues; + struct netfront_stats *rx_stats; + struct netfront_stats *tx_stats; + bool netback_has_xdp_headroom; + bool netfront_xdp_enabled; + bool broken; + bool bounce; + atomic_t rx_gso_checksum_fixup; +}; + +struct xen_netif_tx_sring; + +struct xen_netif_tx_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct xen_netif_tx_sring *sring; +}; + +struct xen_netif_rx_sring; + +struct xen_netif_rx_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct xen_netif_rx_sring *sring; +}; + +struct netfront_queue { + unsigned int id; + char name[22]; + struct netfront_info *info; + struct bpf_prog *xdp_prog; + struct napi_struct napi; + unsigned int tx_evtchn; + unsigned int rx_evtchn; + unsigned int tx_irq; + unsigned int rx_irq; + char tx_irq_name[25]; + char rx_irq_name[25]; + spinlock_t tx_lock; + struct xen_netif_tx_front_ring tx; + int tx_ring_ref; + struct sk_buff *tx_skbs[256]; + short unsigned int tx_link[256]; + grant_ref_t gref_tx_head; + grant_ref_t grant_tx_ref[256]; + struct page *grant_tx_page[256]; + unsigned int tx_skb_freelist; + unsigned int tx_pend_queue; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t rx_lock; + struct xen_netif_rx_front_ring rx; + int rx_ring_ref; + struct timer_list rx_refill_timer; + struct sk_buff *rx_skbs[256]; + grant_ref_t gref_rx_head; + grant_ref_t grant_rx_ref[256]; + unsigned int rx_rsp_unconsumed; + spinlock_t rx_cons_lock; + struct page_pool *page_pool; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; +}; + +struct xen_netif_rx_response { + uint16_t id; + uint16_t offset; + uint16_t flags; + int16_t status; +}; + +struct xen_netif_extra_info { + uint8_t type; + uint8_t flags; + union { + struct { + uint16_t size; + uint8_t type; + uint8_t pad; + uint16_t features; + } gso; + struct { + uint8_t addr[6]; + } mcast; + struct { + uint8_t type; + uint8_t algorithm; + uint8_t value[4]; + } hash; + struct { + uint16_t headroom; + uint16_t pad[2]; + } xdp; + uint16_t pad[3]; + } u; +}; + +struct netfront_rx_info { + struct xen_netif_rx_response rx; + struct xen_netif_extra_info extras[5]; +}; + +struct netfront_stats { + u64 packets; + u64 bytes; + struct u64_stats_sync syncp; +}; + +struct netif_security_struct { + struct net *ns; + int ifindex; + u32 sid; +}; + +struct netkit { + struct net_device *peer; + struct bpf_mprog_entry *active; + enum netkit_action policy; + enum netkit_scrub scrub; + struct bpf_mprog_bundle bundle; + enum netkit_mode mode; + bool primary; + u32 headroom; +}; + +struct netkit_link { + struct bpf_link link; + struct net_device *dev; + u32 location; +}; + +struct netlbl_af4list { + __be32 addr; + __be32 mask; + u32 valid; + struct list_head list; +}; + +struct netlbl_af6list { + struct in6_addr addr; + struct in6_addr mask; + u32 valid; + struct list_head list; +}; + +struct netlbl_audit { + struct lsm_prop prop; + kuid_t loginuid; + unsigned int sessionid; +}; + +struct netlbl_calipso_doiwalk_arg { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; +}; + +struct netlbl_lsm_secattr; + +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)(void); + int (*cache_add)(const unsigned char *, const struct netlbl_lsm_secattr *); +}; + +struct netlbl_cipsov4_doiwalk_arg { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; +}; + +struct netlbl_domaddr_map; + +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; + struct netlbl_dommap_def def; + u16 family; + u32 valid; + struct list_head list; + struct callback_head rcu; +}; + +struct netlbl_domaddr4_map { + struct netlbl_dommap_def def; + struct netlbl_af4list list; +}; + +struct netlbl_domaddr6_map { + struct netlbl_dommap_def def; + struct netlbl_af6list list; +}; + +struct netlbl_domaddr_map { + struct list_head list4; + struct list_head list6; +}; + +struct netlbl_domhsh_tbl { + struct list_head *tbl; + u32 size; +}; + +struct netlbl_domhsh_walk_arg { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; +}; + +struct netlbl_domhsh_walk_arg___2 { + struct netlbl_audit *audit_info; + u32 doi; +}; + +struct netlbl_lsm_cache { + refcount_t refcount; + void (*free)(const void *); + void *data; +}; + +struct netlbl_lsm_catmap { + u32 startbit; + u64 bitmap[4]; + struct netlbl_lsm_catmap *next; +}; + +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_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_iface { + int ifindex; + struct list_head addr4_list; + struct list_head addr6_list; + u32 valid; + struct list_head list; + struct callback_head rcu; +}; + +struct netlbl_unlhsh_tbl { + struct list_head *tbl; + u32 size; +}; + +struct netlbl_unlhsh_walk_arg { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; +}; + +struct netlink_broadcast_data { + struct sock *exclude_sk; + struct net *net; + u32 portid; + u32 group; + int failure; + int delivery_failure; + int congested; + int delivered; + gfp_t allocation; + struct sk_buff *skb; + struct sk_buff *skb2; + int (*tx_filter)(struct sock *, struct sk_buff *, void *); + void *tx_data; +}; + +struct netlink_callback { + struct sk_buff *skb; + const struct nlmsghdr *nlh; + int (*dump)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + void *data; + struct module *module; + struct netlink_ext_ack *extack; + u16 family; + u16 answer_flags; + u32 min_dump_alloc; + unsigned int prev_seq; + unsigned int seq; + int flags; + bool strict_check; + union { + u8 ctx[48]; + long int args[6]; + }; +}; + +struct netlink_compare_arg { + possible_net_t pnet; + u32 portid; +}; + +struct netlink_dump_control { + int (*start)(struct netlink_callback *); + int (*dump)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + struct netlink_ext_ack *extack; + void *data; + struct module *module; + u32 min_dump_alloc; + int flags; +}; + +struct 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_kernel_cfg { + unsigned int groups; + unsigned int flags; + void (*input)(struct sk_buff *); + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, long unsigned int *); +}; + +struct netlink_notify { + struct net *net; + u32 portid; + int protocol; +}; + +struct netlink_policy_dump_state { + unsigned int policy_idx; + unsigned int attr_idx; + unsigned int n_alloc; + struct { + const struct nla_policy *policy; + unsigned int maxtype; + } policies[0]; +}; + +struct netlink_range_validation { + u64 min; + u64 max; +}; + +struct netlink_range_validation_signed { + s64 min; + s64 max; +}; + +struct netlink_set_err_data { + struct sock *exclude_sk; + u32 portid; + u32 group; + int code; +}; + +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 netlink_sock { + struct sock sk; + long unsigned int flags; + u32 portid; + u32 dst_portid; + u32 dst_group; + u32 subscriptions; + u32 ngroups; + long unsigned int *groups; + long unsigned int state; + size_t max_recvmsg_len; + wait_queue_head_t wait; + bool bound; + bool cb_running; + int dump_done_errno; + struct netlink_callback cb; + struct mutex nl_cb_mutex; + void (*netlink_rcv)(struct sk_buff *); + int (*netlink_bind)(struct net *, int); + void (*netlink_unbind)(struct net *, int); + void (*netlink_release)(struct sock *, long unsigned int *); + struct module *module; + struct rhash_head node; + struct callback_head rcu; +}; + +struct netlink_table { + struct rhashtable hash; + struct hlist_head mc_list; + struct listeners *listeners; + unsigned int flags; + unsigned int groups; + struct mutex *cb_mutex; + struct module *module; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, long unsigned int *); + int registered; +}; + +struct netlink_tap { + struct net_device *dev; + struct module *module; + struct list_head list; +}; + +struct netlink_tap_net { + struct list_head netlink_tap_all; + struct mutex netlink_tap_lock; +}; + +struct netnode_security_struct { + union { + __be32 ipv4; + struct in6_addr ipv6; + } addr; + u32 sid; + u16 family; +}; + +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 sk_buff_head skb_pool; +}; + +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 netport_security_struct { + u32 sid; + u16 port; + u8 protocol; +}; + +struct netprio_map { + struct callback_head rcu; + u32 priomap_len; + u32 priomap[0]; +}; + +struct netsfhdr { + __be32 version; + __be64 magic; + u8 id; +} __attribute__((packed)); + +struct new_utsname { + char sysname[65]; + char nodename[65]; + char release[65]; + char version[65]; + char machine[65]; + char domainname[65]; +}; + +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 *nh_info; + struct nh_group *nh_grp; + }; +}; + +struct nexthop_grp { + __u32 id; + __u8 weight; + __u8 weight_high; + __u16 resvd2; +}; + +struct nf_bridge_info { + enum { + BRNF_PROTO_UNCHANGED = 0, + BRNF_PROTO_8021Q = 1, + BRNF_PROTO_PPPOE = 2, + } orig_proto: 8; + u8 pkt_otherhost: 1; + u8 in_prerouting: 1; + u8 bridged_dnat: 1; + u8 sabotage_in_done: 1; + __u16 frag_max_size; + int physinif; + struct net_device *physoutdev; + union { + __be32 ipv4_daddr; + struct in6_addr ipv6_daddr; + char neigh_header[8]; + }; +}; + +struct nf_conntrack { + refcount_t use; +}; + +struct nf_conntrack_zone { + u16 id; + u8 flags; + u8 dir; +}; + +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; +}; + +struct nf_conntrack_man { + union nf_inet_addr u3; + union nf_conntrack_man_proto u; + u_int16_t l3num; +}; + +struct nf_conntrack_tuple { + struct nf_conntrack_man src; + struct { + union nf_inet_addr u3; + union { + __be16 all; + struct { + __be16 port; + } tcp; + struct { + __be16 port; + } udp; + struct { + u_int8_t type; + u_int8_t code; + } icmp; + struct { + __be16 port; + } dccp; + struct { + __be16 port; + } sctp; + struct { + __be16 key; + } gre; + } u; + u_int8_t protonum; + struct {} __nfct_hash_offsetend; + u_int8_t dir; + } dst; +}; + +struct nf_conntrack_tuple_hash { + struct hlist_nulls_node hnnode; + struct nf_conntrack_tuple tuple; +}; + +struct nf_ct_dccp { + u_int8_t role[2]; + u_int8_t state; + u_int8_t last_pkt; + u_int8_t last_dir; + u_int64_t handshake_seq; +}; + +struct nf_ct_udp { + long unsigned int 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]; + long unsigned int 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 nf_conn___init { + struct nf_conn ct; +}; + +struct nf_conn_labels { + long unsigned int bits[2]; +}; + +struct nf_conntrack_tuple_mask { + struct { + union nf_inet_addr u3; + union nf_conntrack_man_proto u; + } src; +}; + +struct nf_conntrack_helper; + +struct nf_conntrack_expect { + struct hlist_node lnode; + struct hlist_node hnode; + struct nf_conntrack_tuple tuple; + struct nf_conntrack_tuple_mask mask; + refcount_t use; + unsigned int flags; + unsigned int class; + void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *); + struct nf_conntrack_helper *helper; + struct nf_conn *master; + struct timer_list timeout; + union nf_inet_addr saved_addr; + union nf_conntrack_man_proto saved_proto; + enum ip_conntrack_dir dir; + struct callback_head rcu; +}; + +struct nf_ct_event { + struct nf_conn *ct; + u32 portid; + int report; +}; + +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 nf_ct_ext { + u8 offset[10]; + u8 len; + unsigned int gen_id; + char data[0]; +}; + +struct nf_ct_hook { + int (*update)(struct net *, struct sk_buff *); + void (*destroy)(struct nf_conntrack *); + bool (*get_tuple_skb)(struct nf_conntrack_tuple *, const struct sk_buff *); + void (*attach)(struct sk_buff *, const struct sk_buff *); + void (*set_closing)(struct nf_conntrack *); + int (*confirm)(struct sk_buff *); +}; + +struct nf_defrag_hook { + struct module *owner; + int (*enable)(struct net *); + void (*disable)(struct net *); +}; + +struct nf_exp_event { + struct nf_conntrack_expect *exp; + u32 portid; + int report; +}; + +struct nf_flow_table_stat { + unsigned int count_wq_add; + unsigned int count_wq_del; + unsigned int count_wq_stats; +}; + +struct nf_hook_entry { + nf_hookfn *hook; + void *priv; +}; + +struct nf_hook_entries { + u16 num_hook_entries; + struct nf_hook_entry hooks[0]; +}; + +struct nf_hook_entries_rcu_head { + struct callback_head head; + void *allocation; +}; + +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_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_log_buf { + unsigned int count; + char buf[1020]; +}; + +struct nf_loginfo; + +typedef void nf_logfn(struct net *, u_int8_t, unsigned int, const struct sk_buff *, const struct net_device *, const struct net_device *, const struct nf_loginfo *, const char *); + +struct nf_logger { + char *name; + enum nf_log_type type; + nf_logfn *logfn; + struct module *me; +}; + +struct nf_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_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 *); + void (*remove_nat_bysrc)(struct nf_conn *); +}; + +struct nf_queue_entry { + struct list_head list; + struct sk_buff *skb; + unsigned int id; + unsigned int hook_index; + struct net_device *physin; + struct net_device *physout; + struct nf_hook_state state; + u16 size; +}; + +struct nf_queue_handler { + int (*outfn)(struct nf_queue_entry *, unsigned int); + void (*nf_hook_drop)(struct net *); +}; + +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 *, int *); + struct module *owner; +}; + +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 nfstime4 { + int64_t seconds; + uint32_t nseconds; +}; + +struct nfs41_impl_id { + char domain[1025]; + char name[1025]; + struct nfstime4 date; +}; + +struct nfs41_server_owner { + uint64_t minor_id; + uint32_t major_id_sz; + char major_id[1024]; +}; + +struct nfs41_server_scope { + uint32_t server_scope_sz; + char server_scope[1024]; +}; + +struct nfs4_change_info { + u32 atomic; + u64 before; + u64 after; +}; + +struct nfs4_string { + unsigned int len; + char *data; +}; + +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 nfs_fattr; + +struct nfs_server; + +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 nfs4_label { + uint32_t lfs; + uint32_t pi; + u32 lsmid; + u32 len; + char *label; +}; + +struct rpc_timer { + struct list_head list; + long unsigned int 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 int qlen; + struct rpc_timer timer_list; + const char *name; +}; + +struct nfs_seqid_counter { + ktime_t create_time; + u64 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; + long unsigned int ls_flags; + struct nfs_seqid_counter ls_seqid; + nfs4_stateid ls_stateid; + refcount_t ls_count; + fl_owner_t ls_owner; +}; + +struct nfs_fh; + +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 nfs_client; + +struct nfs_fsinfo; + +struct nfs_seqid; + +struct rpc_clnt; + +struct rpc_xprt; + +struct rpc_call_ops; + +struct nfs4_state_recovery_ops; + +struct nfs4_state_maintenance_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 *, const 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 nfs4_slot; + +struct nfs4_sequence_args { + struct nfs4_slot *sa_slot; + u8 sa_cache_this: 1; + u8 sa_privileged: 1; +}; + +struct nfs4_sequence_res { + struct nfs4_slot *sr_slot; + long unsigned int sr_timestamp; + int sr_status; + u32 sr_status_flags; + u32 sr_highest_slotid; + u32 sr_target_highest_slotid; +}; + +struct nfs4_ssc_client_ops { + struct file * (*sco_open)(struct vfsmount *, struct nfs_fh *, nfs4_stateid *); + void (*sco_close)(struct file *); +}; + +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; + long unsigned int 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_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_state_owner { + struct nfs_server *so_server; + struct list_head so_lru; + long unsigned int so_expires; + struct rb_node so_server_node; + const struct cred *so_cred; + spinlock_t so_lock; + atomic_t so_count; + long unsigned int so_flags; + struct list_head so_states; + struct nfs_seqid_counter so_seqid; + struct mutex so_delegreturn_mutex; +}; + +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_threshold { + __u32 bm; + __u32 l_type; + __u64 rd_sz; + __u64 wr_sz; + __u64 rd_io_sz; + __u64 wr_io_sz; +}; + +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 nfs_auth_info { + unsigned int flavor_len; + rpc_authflavor_t flavors[12]; +}; + +struct nfs_subversion; + +struct xprtsec_parms { + enum xprtsec_policies policy; + key_serial_t cert_serial; + key_serial_t privkey_serial; +}; + +struct idmap; + +struct nfs4_slot_table; + +struct nfs4_session; + +struct nfs_rpc_ops; + +struct nfs_client { + refcount_t cl_count; + atomic_t cl_mds_count; + int cl_cons_state; + long unsigned int cl_res_state; + long unsigned int cl_flags; + struct __kernel_sockaddr_storage cl_addr; + size_t cl_addrlen; + char *cl_hostname; + char *cl_acceptor; + struct list_head cl_share_link; + struct list_head cl_superblocks; + struct rpc_clnt *cl_rpcclient; + const struct nfs_rpc_ops *rpc_ops; + int cl_proto; + struct nfs_subversion *cl_nfs_mod; + u32 cl_minorversion; + unsigned int cl_nconnect; + unsigned int cl_max_connect; + const char *cl_principal; + struct xprtsec_parms cl_xprtsec; + struct list_head cl_ds_clients; + u64 cl_clientid; + nfs4_verifier cl_confirm; + long unsigned int cl_state; + spinlock_t cl_lock; + long unsigned int cl_lease_time; + long unsigned int 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; + long unsigned int 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; + long unsigned int cl_sp4_flags; + wait_queue_head_t cl_lock_waitq; + char cl_ipaddr[48]; + struct net *cl_net; + struct list_head pending_cb_stateids; + struct callback_head rcu; +}; + +struct nfs_page; + +struct nfs_commit_data; + +struct nfs_commit_info; + +struct nfs_commit_completion_ops { + void (*completion)(struct nfs_commit_data *); + void (*resched_write)(struct nfs_commit_info *, struct nfs_page *); +}; + +struct rpc_wait { + struct list_head list; + struct list_head links; + struct list_head timer_list; +}; + +struct rpc_procinfo; + +struct rpc_message { + const struct rpc_procinfo *rpc_proc; + void *rpc_argp; + void *rpc_resp; + const struct cred *rpc_cred; +}; + +struct rpc_cred; + +struct rpc_rqst; + +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 *); + long unsigned int tk_timeout; + long unsigned int 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; + short unsigned int tk_flags; + short unsigned int tk_timeouts; + short unsigned int tk_pid; + unsigned char tk_priority: 2; + unsigned char tk_garb_retry: 2; + unsigned char tk_cred_retry: 2; +}; + +struct nfs_fsid { + uint64_t major; + uint64_t minor; +}; + +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; + long unsigned int time_start; + long unsigned int gencount; + struct nfs4_string *owner_name; + struct nfs4_string *group_name; + struct nfs4_threshold *mdsthreshold; + struct nfs4_label *label; +}; + +struct nfs_write_verifier { + char data[8]; +}; + +struct nfs_writeverf { + struct nfs_write_verifier verifier; + enum nfs3_stable_how committed; +}; + +struct nfs_direct_req; + +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 pnfs_layout_segment; + +struct nfs_open_context; + +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 *); + long unsigned int flags; +}; + +struct nfs_mds_commit_info; + +struct pnfs_ds_commit_info; + +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_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_fh { + short unsigned int size; + unsigned char data[128]; +}; + +struct nfsd_file; + +struct nfs_file_localio { + struct nfsd_file *ro_file; + struct nfsd_file *rw_file; + struct list_head list; + void *nfs_uuid; +}; + +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 nfs_fsstat { + struct nfs_fattr *fattr; + __u64 tbytes; + __u64 fbytes; + __u64 abytes; + __u64 tfiles; + __u64 ffiles; + __u64 afiles; +}; + +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_mds_commit_info { + atomic_t rpcs_out; + atomic_long_t ncommit; + struct list_head list; +}; + +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 *ll_cred; + struct nfs4_state *state; + fmode_t mode; + int error; + long unsigned int flags; + struct nfs4_threshold *mdsthreshold; + struct list_head list; + struct callback_head callback_head; + struct nfs_file_localio nfl; +}; + +struct nfs_page_array { + struct page **pagevec; + unsigned int npages; + struct page *page_array[8]; +}; + +struct nfs_pathconf { + struct nfs_fattr *fattr; + __u32 max_link; + __u32 max_namelen; +}; + +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_header; + +struct nfs_pgio_completion_ops { + void (*error_cleanup)(struct list_head *, int); + void (*init_hdr)(struct nfs_pgio_header *); + void (*completion)(struct nfs_pgio_header *); + void (*reschedule_io)(struct nfs_pgio_header *); +}; + +struct nfs_rw_ops; + +struct nfs_io_completion; + +struct nfs_pgio_res { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + __u64 count; + __u32 op_status; + union { + struct { + unsigned int replen; + int eof; + void *scratch; + }; + struct { + struct nfs_writeverf *verf; + const struct nfs_server *server; + }; + }; +}; + +struct 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; + void *netfs; + int pnfs_error; + int error; + unsigned int good_bytes; + long unsigned int flags; + struct rpc_task task; + struct nfs_fattr fattr; + struct nfs_pgio_args args; + struct nfs_pgio_res res; + long unsigned int 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_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_removeargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + struct qstr name; +}; + +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_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 int timeout; + bool cancelled; +}; + +struct nlmclnt_operations; + +struct nfs_client_initdata; + +struct nfs_unlinkdata; + +struct xdr_stream; + +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 *, const struct qstr *, struct nfs_fh *, struct nfs_fattr *); + int (*lookupp)(struct inode *, struct nfs_fh *, struct nfs_fattr *); + int (*access)(struct inode *, struct nfs_access_entry *, const struct cred *); + int (*readlink)(struct inode *, struct page *, unsigned int, unsigned int); + int (*create)(struct inode *, struct dentry *, struct iattr *, int); + int (*remove)(struct inode *, struct dentry *); + void (*unlink_setup)(struct rpc_message *, struct dentry *, struct inode *); + void (*unlink_rpc_prepare)(struct rpc_task *, struct nfs_unlinkdata *); + int (*unlink_done)(struct rpc_task *, struct inode *); + void (*rename_setup)(struct rpc_message *, struct dentry *, struct dentry *); + void (*rename_rpc_prepare)(struct rpc_task *, struct nfs_renamedata *); + int (*rename_done)(struct rpc_task *, struct inode *, struct inode *); + int (*link)(struct inode *, struct inode *, const struct qstr *); + int (*symlink)(struct inode *, struct dentry *, struct folio *, unsigned int, struct iattr *); + int (*mkdir)(struct inode *, struct dentry *, struct iattr *); + int (*rmdir)(struct inode *, const struct qstr *); + int (*readdir)(struct nfs_readdir_arg *, struct nfs_readdir_res *); + int (*mknod)(struct inode *, struct dentry *, struct iattr *, dev_t); + int (*statfs)(struct nfs_server *, struct nfs_fh *, struct nfs_fsstat *); + int (*fsinfo)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *); + int (*pathconf)(struct nfs_server *, struct nfs_fh *, struct nfs_pathconf *); + int (*set_capabilities)(struct nfs_server *, struct nfs_fh *); + int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, bool); + int (*pgio_rpc_prepare)(struct rpc_task *, struct nfs_pgio_header *); + void (*read_setup)(struct nfs_pgio_header *, struct rpc_message *); + int (*read_done)(struct rpc_task *, struct nfs_pgio_header *); + void (*write_setup)(struct nfs_pgio_header *, struct rpc_message *, struct rpc_clnt **); + int (*write_done)(struct rpc_task *, struct nfs_pgio_header *); + void (*commit_setup)(struct nfs_commit_data *, struct rpc_message *, struct rpc_clnt **); + void (*commit_rpc_prepare)(struct rpc_task *, struct nfs_commit_data *); + int (*commit_done)(struct rpc_task *, struct nfs_commit_data *); + int (*lock)(struct file *, int, struct file_lock *); + int (*lock_check_bounds)(const struct file_lock *); + void (*clear_acl_cache)(struct inode *); + void (*close_context)(struct nfs_open_context *, int); + struct inode * (*open_context)(struct inode *, struct nfs_open_context *, int, struct iattr *, int *); + int (*have_delegation)(struct inode *, fmode_t, int); + int (*return_delegation)(struct inode *); + struct nfs_client * (*alloc_client)(const struct nfs_client_initdata *); + struct nfs_client * (*init_client)(struct nfs_client *, const struct nfs_client_initdata *); + void (*free_client)(struct nfs_client *); + struct nfs_server * (*create_server)(struct fs_context *); + struct nfs_server * (*clone_server)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, rpc_authflavor_t); + int (*discover_trunking)(struct nfs_server *, struct nfs_fh *); + void (*enable_swap)(struct inode *); + void (*disable_swap)(struct inode *); +}; + +struct nfs_seqid { + struct nfs_seqid_counter *sequence; + struct list_head list; + struct rpc_task *task; +}; + +struct nlm_host; + +struct nfs_iostats; + +struct fscache_volume; + +struct pnfs_layoutdriver_type; + +struct nfs_server { + struct nfs_client *nfs_client; + struct list_head client_link; + struct list_head master_link; + struct rpc_clnt *client; + struct rpc_clnt *client_acl; + struct nlm_host *nlm_host; + struct nfs_iostats *io_stats; + wait_queue_head_t write_congestion_wait; + 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; + short unsigned int port; + unsigned int bsize; + unsigned int gxasize; + unsigned int sxasize; + unsigned int lxasize; + unsigned int acregmin; + unsigned int acregmax; + unsigned int acdirmin; + unsigned int acdirmax; + unsigned int namelen; + unsigned int options; + unsigned int clone_blksize; + enum nfs4_change_attr_type change_attr_type; + struct nfs_fsid fsid; + int s_sysfs_id; + __u64 maxfilesize; + struct timespec64 time_delta; + long unsigned int mount_time; + struct super_block *super; + dev_t s_dev; + struct nfs_auth_info auth_info; + struct fscache_volume *fscache; + char *fscache_uniq; + u32 fh_expire_type; + u32 pnfs_blksize; + u32 attr_bitmask[3]; + u32 attr_bitmask_nl[3]; + u32 exclcreat_bitmask[3]; + u32 cache_consistency_bitmask[3]; + u32 acl_bitmask; + struct pnfs_layoutdriver_type *pnfs_curr_ld; + struct rpc_wait_queue roc_rpcwaitq; + void *pnfs_ld_data; + struct rb_root state_owners; + atomic64_t owner_ctr; + struct list_head state_owners_lru; + struct list_head layouts; + struct list_head delegations; + struct list_head ss_copies; + struct list_head ss_src_copies; + long unsigned int delegation_flags; + long unsigned int delegation_gen; + long unsigned int mig_gen; + long unsigned int mig_status; + void (*destroy)(struct nfs_server *); + atomic_t active; + struct __kernel_sockaddr_storage mountd_address; + size_t mountd_addrlen; + u32 mountd_version; + short unsigned int mountd_port; + short unsigned int mountd_protocol; + struct rpc_wait_queue uoc_rpcwaitq; + unsigned int read_hdrsize; + const struct cred *cred; + bool has_sec_mnt_opts; + struct kobject kobj; + struct callback_head rcu; +}; + +struct nfs_ssc_client_ops { + void (*sco_sb_deactive)(struct super_block *); +}; + +struct nfs_ssc_client_ops_tbl { + const struct nfs4_ssc_client_ops *ssc_nfs4_ops; + const struct nfs_ssc_client_ops *ssc_nfs_ops; +}; + +struct 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 int timeout; +}; + +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; + long unsigned int nh_grp_res_idle_timer; + long unsigned int nh_grp_res_unbalanced_timer; + bool nh_grp_res_has_num_buckets; + bool nh_grp_res_has_idle_timer; + bool nh_grp_res_has_unbalanced_timer; + bool nh_hw_stats; + struct nlattr *nh_encap; + u16 nh_encap_type; + u32 nlflags; + struct nl_info nlinfo; +}; + +struct nh_dump_filter { + u32 nh_id; + int dev_idx; + int master_idx; + bool group_filter; + bool fdb_filter; + u32 res_bucket_nh_id; + u32 op_flags; +}; + +struct nh_grp_entry_stats; + +struct nh_grp_entry { + struct nexthop *nh; + struct nh_grp_entry_stats *stats; + u16 weight; + union { + struct { + atomic_t upper_bound; + } hthr; + struct { + struct list_head uw_nh_entry; + u16 count_buckets; + u16 wants_buckets; + } res; + }; + struct list_head nh_list; + struct nexthop *nh_parent; + u64 packets_hw; +}; + +struct nh_res_table; + +struct nh_group { + struct nh_group *spare; + u16 num_nh; + bool is_multipath; + bool hash_threshold; + bool resilient; + bool fdb_nh; + bool has_v4; + bool hw_stats; + struct nh_res_table *res_table; + struct nh_grp_entry nh_entries[0]; +}; + +struct nh_grp_entry_stats { + u64_stats_t packets; + struct u64_stats_sync syncp; +}; + +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 nh_notifier_single_info { + struct net_device *dev; + u8 gw_family; + union { + __be32 ipv4; + struct in6_addr ipv6; + }; + u32 id; + u8 is_reject: 1; + u8 is_fdb: 1; + u8 has_encap: 1; +}; + +struct nh_notifier_grp_entry_info { + u16 weight; + struct nh_notifier_single_info nh; +}; + +struct nh_notifier_grp_hw_stats_entry_info { + u32 id; + u64 packets; +}; + +struct nh_notifier_grp_hw_stats_info { + u16 num_nh; + bool hw_stats_used; + struct nh_notifier_grp_hw_stats_entry_info stats[0]; +}; + +struct nh_notifier_grp_info { + u16 num_nh; + bool is_fdb; + bool hw_stats; + struct nh_notifier_grp_entry_info nh_entries[0]; +}; + +struct nh_notifier_res_table_info; + +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_grp_hw_stats_info *nh_grp_hw_stats; + }; +}; + +struct nh_notifier_res_bucket_info { + u16 bucket_index; + unsigned int idle_timer_ms; + bool force; + struct nh_notifier_single_info old_nh; + struct nh_notifier_single_info new_nh; +}; + +struct nh_notifier_res_table_info { + u16 num_nh_buckets; + bool hw_stats; + struct nh_notifier_single_info nhs[0]; +}; + +struct nh_res_bucket { + struct nh_grp_entry *nh_entry; + atomic_long_t used_time; + long unsigned int 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; + long unsigned int unbalanced_since; + u32 idle_timer; + u32 unbalanced_timer; + u16 num_nh_buckets; + struct nh_res_bucket nh_buckets[0]; +}; + +struct nhmsg { + unsigned char nh_family; + unsigned char nh_scope; + unsigned char nh_protocol; + unsigned char resvd; + unsigned int nh_flags; +}; + +struct nl80211_vendor_cmd_info { + __u32 vendor_id; + __u32 subcmd; +}; + +struct nl80211_wowlan_tcp_data_token_feature { + __u32 min_len; + __u32 max_len; + __u32 bufsize; +}; + +struct nl_pktinfo { + __u32 group; +}; + +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 nl_seq_iter { + struct seq_net_private p; + struct rhashtable_iter hti; + int link; +}; + +struct nla_bitfield32 { + __u32 value; + __u32 selector; +}; + +struct nla_policy { + u8 type; + u8 validation_type; + u16 len; + union { + u16 strict_start_type; + const u32 bitfield32_valid; + const u32 mask; + const char *reject_message; + const struct nla_policy *nested_policy; + const struct netlink_range_validation *range; + const struct netlink_range_validation_signed *range_signed; + struct { + s16 min; + s16 max; + }; + int (*validate)(const struct nlattr *, struct netlink_ext_ack *); + }; +}; + +struct nlattr { + __u16 nla_len; + __u16 nla_type; +}; + +struct nlmsg_perm { + u16 nlmsg_type; + u32 perm; +}; + +struct nlmsgerr { + int error; + struct nlmsghdr msg; +}; + +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; +}; + +typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *); + +struct nmi_desc { + raw_spinlock_t lock; + nmi_handler_t emerg_handler; + struct list_head head; +}; + +struct nmi_stats { + unsigned int normal; + unsigned int unknown; + unsigned int external; + unsigned int swallow; + long unsigned int recv_jiffies; + long unsigned int idt_seq; + long unsigned int idt_nmi_seq; + long unsigned int idt_ignored; + atomic_long_t idt_calls; + long unsigned int idt_seq_snap; + long unsigned int idt_nmi_seq_snap; + long unsigned int idt_ignored_snap; + long int idt_calls_snap; +}; + +struct nmiaction { + struct list_head list; + nmi_handler_t handler; + u64 max_duration; + long unsigned int flags; + const char *name; +}; + +struct node { + struct device dev; + struct list_head access_list; + struct list_head cache_attrs; + struct device *cache_dev; +}; + +struct node_access_nodes { + struct device dev; + struct list_head list_node; + unsigned int access; + struct access_coordinate coord; +}; + +struct node_attr { + struct device_attribute attr; + enum node_states state; +}; + +struct node_cache_info { + struct device dev; + struct list_head node; + struct node_cache_attrs cache_attrs; +}; + +struct node_groups { + unsigned int id; + union { + unsigned int ngroups; + unsigned int ncpus; + }; +}; + +struct node_hstate { + struct kobject *hugepages_kobj; + struct kobject *hstate_kobjs[2]; +}; + +struct node_memory_type_map { + struct memory_dev_type *memtype; + int map_count; +}; + +struct nodemask_scratch { + nodemask_t mask1; + nodemask_t mask2; +}; + +struct nonram_remap { + phys_addr_t maddr; + phys_addr_t paddr; + size_t size; +}; + +struct nosave_region { + struct list_head list; + long unsigned int start_pfn; + long unsigned int end_pfn; +}; + +struct notification { + atomic_t requests; + u32 flags; + u64 next_id; + struct list_head notifications; +}; + +struct npem; + +struct npem_led { + const struct indication *indication; + struct npem *npem; + char name[64]; + struct led_classdev led; +}; + +struct npem_ops; + +struct npem { + struct pci_dev *dev; + const struct npem_ops *ops; + struct mutex lock; + u16 pos; + u32 supported_indications; + u32 active_indications; + unsigned int active_inds_initialized: 1; + int led_cnt; + struct npem_led leds[0]; +}; + +struct npem_ops { + int (*get_active_indications)(struct npem *, u32 *); + int (*set_active_indications)(struct npem *, u32); + const struct indication *inds; + const char *name; +}; + +struct npioctl { + int protocol; + enum NPmode mode; +}; + +struct ns_get_path_bpf_map_args { + struct bpf_offloaded_map *offmap; + struct bpf_map_info *info; +}; + +struct ns_get_path_bpf_prog_args { + struct bpf_prog *prog; + struct bpf_prog_info *info; +}; + +struct ns_get_path_task_args { + const struct proc_ns_operations *ns_ops; + struct task_struct *task; +}; + +struct uts_namespace; + +struct time_namespace; + +struct nsproxy { + refcount_t count; + struct uts_namespace *uts_ns; + struct ipc_namespace *ipc_ns; + struct mnt_namespace *mnt_ns; + struct pid_namespace *pid_ns_for_children; + struct net *net_ns; + struct time_namespace *time_ns; + struct time_namespace *time_ns_for_children; + struct cgroup_namespace *cgroup_ns; +}; + +struct nsset { + unsigned int flags; + struct nsproxy *nsproxy; + struct fs_struct *fs; + const struct cred *cred; +}; + +struct nt_partition_info { + u32 xlink_enabled; + u32 target_part_low; + u32 target_part_high; + u32 reserved; +}; + +struct ntb_ctrl_regs { + u32 partition_status; + u32 partition_op; + u32 partition_ctrl; + u32 bar_setup; + u32 bar_error; + u16 lut_table_entries; + u16 lut_table_offset; + u32 lut_error; + u16 req_id_table_size; + u16 req_id_table_offset; + u32 req_id_error; + u32 reserved1[7]; + struct { + u32 ctl; + u32 win_size; + u64 xlate_addr; + } bar_entry[6]; + struct { + u32 win_size; + u32 reserved[3]; + } bar_ext_entry[6]; + u32 reserved2[192]; + u32 req_id_table[512]; + u32 reserved3[256]; + u64 lut_entry[512]; +}; + +struct 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 ntp_data { + long unsigned int tick_usec; + u64 tick_length; + u64 tick_length_base; + int time_state; + int time_status; + s64 time_offset; + long int time_constant; + long int time_maxerror; + long int time_esterror; + s64 time_freq; + time64_t time_reftime; + long int time_adjust; + s64 ntp_tick_adj; + time64_t ntp_next_leap_sec; +}; + +struct numa_group { + refcount_t refcount; + spinlock_t lock; + int nr_tasks; + pid_t gid; + int active_nodes; + struct callback_head rcu; + long unsigned int total_faults; + long unsigned int max_faults_cpu; + long unsigned int faults[0]; +}; + +struct numa_maps { + long unsigned int pages; + long unsigned int anon; + long unsigned int active; + long unsigned int writeback; + long unsigned int mapcount_max; + long unsigned int dirty; + long unsigned int swapcache; + long unsigned int node[1024]; +}; + +struct proc_maps_private { + struct inode *inode; + struct task_struct *task; + struct mm_struct *mm; + struct vma_iterator iter; + struct mempolicy *task_mempolicy; +}; + +struct numa_maps_private { + struct proc_maps_private proc_maps; + struct numa_maps md; +}; + +struct numa_memblk { + u64 start; + u64 end; + int nid; +}; + +struct numa_meminfo { + int nr_blks; + struct numa_memblk blk[2048]; +}; + +struct numa_stats { + long unsigned int load; + long unsigned int runnable; + long unsigned int util; + long unsigned int compute_capacity; + unsigned int nr_running; + unsigned int weight; + enum numa_type node_type; + int idle_cpu; +}; + +struct nvdimm_security_ops; + +struct nvdimm_fw_ops; + +struct nvdimm { + long unsigned int flags; + void *provider_data; + long unsigned int cmd_mask; + struct device dev; + atomic_t busy; + int id; + int num_flush; + struct resource *flush_wpq; + const char *dimm_id; + struct { + const struct nvdimm_security_ops *ops; + long unsigned int flags; + long unsigned int ext_flags; + unsigned int overwrite_tmo; + struct kernfs_node *overwrite_state; + } sec; + struct delayed_work dwork; + const struct nvdimm_fw_ops *fw_ops; +}; + +struct nvdimm_bus_descriptor; + +struct nvdimm_bus { + struct nvdimm_bus_descriptor *nd_desc; + wait_queue_head_t wait; + struct list_head list; + struct device dev; + int id; + int probe_active; + atomic_t ioctl_active; + struct list_head mapping_list; + struct mutex reconfig_mutex; + struct badrange badrange; +}; + +typedef int (*ndctl_fn)(struct nvdimm_bus_descriptor *, struct nvdimm *, unsigned int, void *, unsigned int, int *); + +struct nvdimm_bus_fw_ops; + +struct nvdimm_bus_descriptor { + const struct attribute_group **attr_groups; + long unsigned int cmd_mask; + long unsigned int dimm_family_mask; + long unsigned int bus_family_mask; + struct module *module; + char *provider_name; + struct device_node *of_node; + ndctl_fn ndctl; + int (*flush_probe)(struct nvdimm_bus_descriptor *); + int (*clear_to_send)(struct nvdimm_bus_descriptor *, struct nvdimm *, unsigned int, void *); + const struct nvdimm_bus_fw_ops *fw_ops; +}; + +struct nvdimm_bus_fw_ops { + enum nvdimm_fwa_state (*activate_state)(struct nvdimm_bus_descriptor *); + enum nvdimm_fwa_capability (*capability)(struct nvdimm_bus_descriptor *); + int (*activate)(struct nvdimm_bus_descriptor *); +}; + +struct nvdimm_drvdata { + struct device *dev; + int nslabel_size; + struct nd_cmd_get_config_size nsarea; + void *data; + bool cxl; + int ns_current; + int ns_next; + struct resource dpa; + struct kref kref; +}; + +struct nvdimm_fw_ops { + enum nvdimm_fwa_state (*activate_state)(struct nvdimm *); + enum nvdimm_fwa_result (*activate_result)(struct nvdimm *); + int (*arm)(struct nvdimm *, enum nvdimm_fwa_trigger); +}; + +struct nvdimm_key_data { + u8 data[32]; +}; + +struct nvdimm_map { + struct nvdimm_bus *nvdimm_bus; + struct list_head list; + resource_size_t offset; + long unsigned int flags; + size_t size; + union { + void *mem; + void *iomem; + }; + struct kref kref; +}; + +struct nvdimm_pmu { + struct pmu pmu; + struct device *dev; + int cpu; + struct hlist_node node; + enum cpuhp_state cpuhp_state; + struct cpumask arch_cpumask; +}; + +struct nvdimm_security_ops { + long unsigned int (*get_flags)(struct nvdimm *, enum nvdimm_passphrase_type); + int (*freeze)(struct nvdimm *); + int (*change_key)(struct nvdimm *, const struct nvdimm_key_data *, const struct nvdimm_key_data *, enum nvdimm_passphrase_type); + int (*unlock)(struct nvdimm *, const struct nvdimm_key_data *); + int (*disable)(struct nvdimm *, const struct nvdimm_key_data *); + int (*erase)(struct nvdimm *, const struct nvdimm_key_data *, enum nvdimm_passphrase_type); + int (*overwrite)(struct nvdimm *, const struct nvdimm_key_data *); + int (*query_overwrite)(struct nvdimm *); + int (*disable_master)(struct nvdimm *, const struct nvdimm_key_data *); +}; + +struct nvmem_cell_entry; + +struct nvmem_cell { + struct nvmem_cell_entry *entry; + const char *id; + int index; +}; + +typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); + +struct nvmem_device; + +struct nvmem_cell_entry { + const char *name; + int offset; + size_t raw_len; + int bytes; + int bit_offset; + int nbits; + nvmem_cell_post_process_t read_post_process; + void *priv; + struct device_node *np; + struct nvmem_device *nvmem; + struct list_head node; +}; + +struct nvmem_cell_info { + const char *name; + unsigned int offset; + size_t raw_len; + unsigned int bytes; + unsigned int bit_offset; + unsigned int nbits; + struct device_node *np; + nvmem_cell_post_process_t read_post_process; + void *priv; +}; + +struct nvmem_cell_lookup { + const char *nvmem_name; + const char *cell_name; + const char *dev_id; + const char *con_id; + struct list_head node; +}; + +struct nvmem_cell_table { + const char *nvmem_name; + const struct nvmem_cell_info *cells; + size_t ncells; + struct list_head node; +}; + +typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t); + +typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); + +struct nvmem_keepout; + +struct nvmem_layout; + +struct nvmem_config { + struct device *dev; + const char *name; + int id; + struct module *owner; + const struct nvmem_cell_info *cells; + int ncells; + bool add_legacy_fixed_of_cells; + void (*fixup_dt_cell_info)(struct nvmem_device *, struct nvmem_cell_info *); + const struct nvmem_keepout *keepout; + unsigned int nkeepout; + enum nvmem_type type; + bool read_only; + bool root_only; + bool ignore_wp; + struct nvmem_layout *layout; + struct device_node *of_node; + nvmem_reg_read_t reg_read; + nvmem_reg_write_t reg_write; + int size; + int word_size; + int stride; + void *priv; + bool compat; + struct device *base_dev; +}; + +struct nvmem_device { + struct module *owner; + struct device dev; + struct list_head node; + int stride; + int word_size; + int id; + struct kref refcnt; + size_t size; + bool read_only; + bool root_only; + int flags; + enum nvmem_type type; + struct bin_attribute eeprom; + struct device *base_dev; + struct list_head cells; + void (*fixup_dt_cell_info)(struct nvmem_device *, struct nvmem_cell_info *); + const struct nvmem_keepout *keepout; + unsigned int nkeepout; + nvmem_reg_read_t reg_read; + nvmem_reg_write_t reg_write; + struct gpio_desc *wp_gpio; + struct nvmem_layout *layout; + void *priv; + bool sysfs_cells_populated; +}; + +struct nvmem_keepout { + unsigned int start; + unsigned int end; + unsigned char value; +}; + +struct nvmem_layout { + struct device dev; + struct nvmem_device *nvmem; + int (*add_cells)(struct nvmem_layout *); +}; + +struct nvs_page { + long unsigned int phys_start; + unsigned int size; + void *kaddr; + void *data; + bool unmap; + struct list_head node; +}; + +struct nvs_region { + __u64 phys_start; + __u64 size; + struct list_head node; +}; + +struct obj_cgroup { + struct percpu_ref refcnt; + struct mem_cgroup *memcg; + atomic_t nr_charged_bytes; + union { + struct list_head list; + struct callback_head rcu; + }; +}; + +struct objpool_head; + +typedef int (*objpool_fini_cb)(struct objpool_head *, void *); + +struct objpool_slot; + +struct objpool_head { + int obj_size; + int nr_objs; + int nr_possible_cpus; + int capacity; + gfp_t gfp; + refcount_t ref; + long unsigned int flags; + struct objpool_slot **cpu_slots; + objpool_fini_cb release; + void *context; +}; + +struct objpool_slot { + uint32_t head; + uint32_t tail; + uint32_t last; + uint32_t mask; + void *entries[0]; +}; + +struct obs_kernel_param { + const char *str; + int (*setup_func)(char *); + int early; +}; + +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___2 context[2]; + u32 sid[2]; + struct ocontext *next; +}; + +struct octep_hp_cmd { + struct list_head list; + enum octep_hp_intr_type intr_type; + u64 intr_val; +}; + +struct octep_hp_intr_info { + enum octep_hp_intr_type type; + int number; + char name[16]; +}; + +struct octep_hp_controller { + void *base; + struct pci_dev *pdev; + struct octep_hp_intr_info intr[2]; + struct work_struct work; + struct list_head slot_list; + struct mutex slot_lock; + struct list_head hp_cmd_list; + spinlock_t hp_cmd_lock; +}; + +struct octep_hp_slot { + struct list_head list; + struct hotplug_slot slot; + u16 slot_number; + struct pci_dev *hp_pdev; + unsigned int hp_devfn; + struct octep_hp_controller *ctrl; +}; + +struct od_dbs_tuners { + unsigned int powersave_bias; +}; + +struct od_ops { + unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int); +}; + +struct od_policy_dbs_info { + struct policy_dbs_info policy_dbs; + unsigned int freq_lo; + unsigned int freq_lo_delay_us; + unsigned int freq_hi_delay_us; + unsigned int sample_type: 1; +}; + +struct of_dev_auxdata { + char *compatible; + resource_size_t phys_addr; + char *name; + void *platform_data; +}; + +struct of_device_id { + char name[32]; + char type[32]; + char compatible[128]; + const void *data; +}; + +struct of_dma { + struct list_head of_dma_controllers; + struct device_node *of_node; + struct dma_chan * (*of_dma_xlate)(struct of_phandle_args *, struct of_dma *); + void * (*of_dma_route_allocate)(struct of_phandle_args *, struct of_dma *); + struct dma_router *dma_router; + void *of_dma_data; +}; + +struct of_pci_range { + union { + u64 pci_addr; + u64 bus_addr; + }; + u64 cpu_addr; + u64 parent_bus_addr; + u64 size; + u32 flags; +}; + +struct of_bus; + +struct of_pci_range_parser { + struct device_node *node; + const struct of_bus *bus; + const __be32 *range; + const __be32 *end; + int na; + int ns; + int pna; + bool dma; +}; + +struct of_phandle_args { + struct device_node *np; + int args_count; + uint32_t args[16]; +}; + +struct offset_ctx { + struct maple_tree mt; + long unsigned int next_offset; +}; + +struct ohci_driver_overrides { + const char *product_desc; + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); +}; + +struct ohci_hcca { + __hc32 int_table[32]; + __hc32 frame_no; + __hc32 done_head; + u8 reserved_for_hc[116]; + u8 what[4]; +}; + +struct ohci_regs; + +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; + long unsigned int next_statechange; + u32 fminterval; + unsigned int autostop: 1; + unsigned int working: 1; + unsigned int restart_work: 1; + long unsigned int flags; + unsigned int prev_frame_no; + unsigned int wdh_cnt; + unsigned int prev_wdh_cnt; + u32 prev_donehead; + struct timer_list io_watchdog; + struct work_struct nec_work; + struct dentry *debug_dir; + long unsigned int priv[0]; +}; + +struct ohci_platform_priv { + struct clk *clks[4]; + struct reset_control *resets; +}; + +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 old_timespec32 { + old_time32_t tv_sec; + s32 tv_nsec; +}; + +struct old_itimerspec32 { + struct old_timespec32 it_interval; + struct old_timespec32 it_value; +}; + +struct old_itimerval32 { + struct old_timeval32 it_interval; + struct old_timeval32 it_value; +}; + +struct old_linux_dirent { + long unsigned int d_ino; + long unsigned int d_offset; + short unsigned int d_namlen; + char d_name[0]; +}; + +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; + short unsigned int iomem_reg_shift; +}; + +struct old_timex32 { + u32 modes; + s32 offset; + s32 freq; + s32 maxerror; + s32 esterror; + s32 status; + s32 constant; + s32 precision; + s32 tolerance; + struct old_timeval32 time; + s32 tick; + s32 ppsfreq; + s32 jitter; + s32 shift; + s32 stabil; + s32 jitcnt; + s32 calcnt; + s32 errcnt; + s32 stbcnt; + s32 tai; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct old_utimbuf32 { + old_time32_t actime; + old_time32_t modtime; +}; + +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 once_work { + struct work_struct work; + struct static_key_true *key; + struct module *module; +}; + +struct online_data { + unsigned int cpu; + bool online; +}; + +struct oom_control { + struct zonelist *zonelist; + nodemask_t *nodemask; + struct mem_cgroup *memcg; + const gfp_t gfp_mask; + const int order; + long unsigned int totalpages; + struct task_struct *chosen; + long int chosen_points; + enum oom_constraint constraint; +}; + +struct opal_compacket { + __be32 reserved0; + u8 extendedComID[4]; + __be32 outstandingData; + __be32 minTransfer; + __be32 length; +}; + +struct opal_data_subpacket { + u8 reserved0[6]; + __be16 kind; + __be32 length; +}; + +typedef int sec_send_recv(void *, u16, u8, void *, size_t, bool); + +struct opal_resp_tok { + const u8 *pos; + size_t len; + enum opal_response_token type; + enum opal_atom_width width; + union { + u64 u; + s64 s; + } stored; +}; + +struct parsed_resp { + int num; + struct opal_resp_tok toks[64]; +}; + +struct opal_dev { + u32 flags; + void *data; + sec_send_recv *send_recv; + struct mutex dev_lock; + u16 comid; + u32 hsn; + u32 tsn; + u64 align; + u64 lowest_lba; + u32 logical_block_size; + u8 align_required; + size_t pos; + u8 *cmd; + u8 *resp; + struct parsed_resp parsed; + size_t prev_d_len; + void *prev_data; + struct list_head unlk_lst; +}; + +struct opal_discovery { + __u64 data; + __u64 size; +}; + +struct opal_geometry { + __u8 align; + __u32 logical_block_size; + __u64 alignment_granularity; + __u64 lowest_aligned_lba; + __u8 __align[3]; +}; + +struct opal_packet { + __be32 tsn; + __be32 hsn; + __be32 seq_number; + __be16 reserved0; + __be16 ack_type; + __be32 acknowledgment; + __be32 length; +}; + +struct opal_header { + struct opal_compacket cp; + struct opal_packet pkt; + struct opal_data_subpacket subpkt; +}; + +struct opal_key { + __u8 lr; + __u8 key_len; + __u8 key_type; + __u8 __align[5]; + __u8 key[256]; +}; + +struct opal_session_info { + __u32 sum; + __u32 who; + struct opal_key opal_key; +}; + +struct opal_lock_unlock { + struct opal_session_info session; + __u32 l_state; + __u16 flags; + __u8 __align[2]; +}; + +struct opal_lr_act { + struct opal_key key; + __u32 sum; + __u8 num_lrs; + __u8 lr[9]; + __u8 align[2]; +}; + +struct opal_lr_status { + struct opal_session_info session; + __u64 range_start; + __u64 range_length; + __u32 RLE; + __u32 WLE; + __u32 l_state; + __u8 align[4]; +}; + +struct opal_mbr_data { + struct opal_key key; + __u8 enable_disable; + __u8 __align[7]; +}; + +struct opal_mbr_done { + struct opal_key key; + __u8 done_flag; + __u8 __align[7]; +}; + +struct opal_new_pw { + struct opal_session_info session; + struct opal_session_info new_user_pw; +}; + +struct opal_read_write_table { + struct opal_key key; + const __u64 data; + const __u8 table_uid[8]; + __u64 offset; + __u64 size; + __u64 flags; + __u64 priv; +}; + +struct opal_revert_lsp { + struct opal_key key; + __u32 options; + __u32 __pad; +}; + +struct opal_shadow_mbr { + struct opal_key key; + const __u64 data; + __u64 offset; + __u64 size; +}; + +struct opal_status { + __u32 flags; + __u32 reserved; +}; + +struct opal_step { + int (*fn)(struct opal_dev *, void *); + void *data; +}; + +struct opal_suspend_data { + struct opal_lock_unlock unlk; + u8 lr; + struct list_head node; +}; + +struct opal_user_lr_setup { + __u64 range_start; + __u64 range_length; + __u32 RLE; + __u32 WLE; + struct opal_session_info session; +}; + +struct open_flags { + int open_flag; + umode_t mode; + int acc_mode; + int intent; + int lookup_flags; +}; + +struct opp_config_data { + struct opp_table *opp_table; + unsigned int flags; + unsigned int required_dev_index; +}; + +struct opp_device { + struct list_head node; + const struct device *dev; + struct dentry *dentry; +}; + +struct opp_table { + struct list_head node; + struct list_head lazy; + struct blocking_notifier_head head; + struct list_head dev_list; + struct list_head opp_list; + struct kref kref; + struct mutex lock; + struct device_node *np; + long unsigned int clock_latency_ns_max; + unsigned int voltage_tolerance_v1; + unsigned int parsed_static_opps; + enum opp_table_access shared_opp; + long unsigned int current_rate_single_clk; + struct dev_pm_opp *current_opp; + struct dev_pm_opp *suspend_opp; + struct opp_table **required_opp_tables; + struct device **required_devs; + unsigned int required_opp_count; + unsigned int *supported_hw; + unsigned int supported_hw_count; + const char *prop_name; + config_clks_t config_clks; + struct clk **clks; + struct clk *clk; + int clk_count; + config_regulators_t config_regulators; + struct regulator **regulators; + int regulator_count; + struct icc_path **paths; + unsigned int path_count; + bool enabled; + bool is_genpd; + struct dentry *dentry; + char dentry_name[255]; +}; + +struct optimistic_spin_node { + struct optimistic_spin_node *next; + struct optimistic_spin_node *prev; + int locked; + int cpu; +}; + +struct optimized_kprobe { + struct kprobe kp; + struct list_head list; + struct arch_optimized_insn optinsn; +}; + +struct orlov_stats { + __u64 free_clusters; + __u32 free_inodes; + __u32 used_dirs; +}; + +struct osapsess { + uint32_t handle; + unsigned char secret[20]; + unsigned char enonce[20]; +}; + +struct osn_irq { + u64 count; + u64 arrival_time; + u64 delta_start; +}; + +struct osn_nmi { + u64 count; + u64 delta_start; +}; + +struct osn_softirq { + u64 count; + u64 arrival_time; + u64 delta_start; +}; + +struct osn_thread { + u64 count; + u64 arrival_time; + u64 delta_start; +}; + +struct osnoise_data { + u64 sample_period; + u64 sample_runtime; + u64 stop_tracing; + u64 stop_tracing_total; + u64 timerlat_period; + u64 print_stack; + int timerlat_tracer; + bool tainted; +}; + +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 osnoise_instance { + struct list_head list; + struct trace_array *tr; +}; + +struct osnoise_sample { + u64 runtime; + u64 noise; + u64 max_sample; + int hw_count; + int nmi_count; + int irq_count; + int softirq_count; + int thread_count; +}; + +struct osnoise_variables { + struct task_struct *kthread; + bool sampling; + pid_t pid; + struct osn_nmi nmi; + struct osn_irq irq; + struct osn_softirq softirq; + struct osn_thread thread; + local_t int_counter; +}; + +struct out_of_bounds_data { + struct source_location location; + struct type_descriptor *array_type; + struct type_descriptor *index_type; +}; + +struct overflow_data { + struct source_location location; + struct type_descriptor *type; +}; + +struct x86_cpu_id { + __u16 vendor; + __u16 family; + __u16 model; + __u16 steppings; + __u16 feature; + __u16 flags; + kernel_ulong_t driver_data; +}; + +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; + long long unsigned int status; +}; + +struct p2sb_res_cache { + u32 bus_dev_id; + struct resource res; +}; + +struct p4_event_alias { + u64 original; + u64 alternative; +}; + +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 pacct_struct { + int ac_flag; + long int ac_exitcode; + long unsigned int ac_mem; + u64 ac_utime; + u64 ac_stime; + long unsigned int ac_minflt; + long unsigned int ac_majflt; +}; + +struct packed_field_u16 { + u16 startbit; + u16 endbit; + u16 offset; + u16 size; +}; + +struct packed_field_u8 { + u8 startbit; + u8 endbit; + u8 offset; + u8 size; +}; + +struct scsi_sense_hdr; + +struct packet_command { + unsigned char cmd[12]; + unsigned char *buffer; + unsigned int buflen; + int stat; + struct scsi_sense_hdr *sshdr; + unsigned char data_direction; + int quiet; + int timeout; + void *reserved[1]; +}; + +struct 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 *bpf_prog; + }; + struct list_head list; + spinlock_t lock; + refcount_t sk_ref; + long: 64; + struct packet_type prot_hook; + struct sock *arr[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct packet_mclist { + struct packet_mclist *next; + int ifindex; + int count; + short unsigned int type; + short unsigned int alen; + unsigned char addr[32]; +}; + +struct packet_mreq_max { + int mr_ifindex; + short unsigned int mr_type; + short unsigned int mr_alen; + unsigned char mr_address[32]; +}; + +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; + short unsigned int kactive_blk_num; + short unsigned int blk_sizeof_priv; + short unsigned int 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; + short unsigned int retire_blk_tov; + short unsigned int version; + long unsigned int 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 *pending_refcnt; + union { + long unsigned int *rx_owner_map; + struct tpacket_kbdq_core prb_bdqc; + }; +}; + +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 sockaddr_pkt { + short unsigned int spkt_family; + unsigned char spkt_device[14]; + __be16 spkt_protocol; +}; + +struct sockaddr_ll { + short unsigned int sll_family; + __be16 sll_protocol; + int sll_ifindex; + short unsigned int sll_hatype; + unsigned char sll_pkttype; + unsigned char sll_halen; + unsigned char sll_addr[8]; +}; + +struct packet_skb_cb { + union { + struct sockaddr_pkt pkt; + union { + unsigned int origlen; + struct sockaddr_ll ll; + }; + } sa; +}; + +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 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; + long unsigned int flags; + int ifindex; + u8 vnet_hdr_sz; + __be16 num; + struct packet_rollover *rollover; + struct packet_mclist *mclist; + atomic_long_t mapped; + enum tpacket_versions tp_version; + unsigned int tp_hdrlen; + unsigned int tp_reserve; + unsigned int tp_tstamp; + struct completion skb_completion; + struct net_device *cached_dev; + long: 64; + struct packet_type prot_hook; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_t tp_drops; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct padata_cpumask { + cpumask_var_t pcpu; + cpumask_var_t cbcpu; +}; + +struct padata_instance { + struct hlist_node cpu_online_node; + struct hlist_node cpu_dead_node; + struct workqueue_struct *parallel_wq; + struct workqueue_struct *serial_wq; + struct list_head pslist; + struct padata_cpumask cpumask; + struct kobject kobj; + struct mutex lock; + u8 flags; +}; + +struct padata_list { + struct list_head list; + spinlock_t lock; +}; + +struct padata_mt_job { + void (*thread_fn)(long unsigned int, long unsigned int, void *); + void *fn_arg; + long unsigned int start; + long unsigned int size; + long unsigned int align; + long unsigned int min_chunk; + int max_threads; + bool numa_aware; +}; + +struct padata_mt_job_state { + spinlock_t lock; + struct completion completion; + struct padata_mt_job *job; + int nworks; + int nworks_fini; + long unsigned int chunk_size; +}; + +struct parallel_data; + +struct padata_priv { + struct list_head list; + struct parallel_data *pd; + int cb_cpu; + unsigned int seq_nr; + int info; + void (*parallel)(struct padata_priv *); + void (*serial)(struct padata_priv *); +}; + +struct padata_serial_queue { + struct padata_list serial; + struct work_struct work; + struct parallel_data *pd; +}; + +struct padata_shell { + struct padata_instance *pinst; + struct parallel_data *pd; + struct parallel_data *opd; + struct list_head list; +}; + +struct padata_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct padata_instance *, struct attribute *, char *); + ssize_t (*store)(struct padata_instance *, struct attribute *, const char *, size_t); +}; + +struct padata_work { + struct work_struct pw_work; + struct list_head pw_list; + void *pw_data; +}; + +typedef struct page *pgtable_t; + +struct printf_spec; + +struct page_flags_fields { + int width; + int shift; + int mask; + const struct printf_spec *spec; + const char *name; +}; + +struct page_list { + struct page_list *next; + struct page *page; +}; + +struct page_pool_params_fast { + unsigned int order; + unsigned int pool_size; + int nid; + struct device *dev; + struct napi_struct *napi; + enum dma_data_direction dma_dir; + unsigned int max_len; + unsigned int offset; +}; + +struct page_pool_alloc_stats { + u64 fast; + u64 slow; + u64 slow_high_order; + u64 empty; + u64 refill; + u64 waive; +}; + +struct pp_alloc_cache { + u32 count; + netmem_ref cache[128]; +}; + +struct ptr_ring { + int producer; + spinlock_t producer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + int consumer_head; + int consumer_tail; + spinlock_t consumer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + int size; + int batch; + void **queue; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct page_pool_params_slow { + struct net_device *netdev; + unsigned int queue_idx; + unsigned int flags; + void (*init_callback)(netmem_ref, void *); + void *init_arg; +}; + +struct page_pool_recycle_stats; + +struct page_pool { + struct page_pool_params_fast p; + int cpuid; + u32 pages_state_hold_cnt; + bool has_init_callback: 1; + bool dma_map: 1; + bool dma_sync: 1; + bool dma_sync_for_cpu: 1; + bool system: 1; + long: 0; + __u8 __cacheline_group_begin__frag[0]; + long int frag_users; + netmem_ref frag_page; + unsigned int frag_offset; + long: 0; + __u8 __cacheline_group_end__frag[0]; + long: 64; + struct {} __cacheline_group_pad__frag; + struct delayed_work release_dw; + void (*disconnect)(void *); + long unsigned int defer_start; + long unsigned int defer_warn; + struct page_pool_alloc_stats alloc_stats; + u32 xdp_mem_id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct pp_alloc_cache alloc; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct ptr_ring ring; + void *mp_priv; + struct xarray dma_mapped; + struct page_pool_recycle_stats *recycle_stats; + atomic_t pages_state_release_cnt; + refcount_t user_cnt; + u64 destroy_cnt; + struct page_pool_params_slow slow; + struct { + struct hlist_node list; + u64 detach_time; + u32 id; + } user; + long: 64; + long: 64; +}; + +struct page_pool_dump_cb { + long unsigned int ifindex; + u32 pp_id; +}; + +struct page_pool_params { + union { + struct { + unsigned int order; + unsigned int pool_size; + int nid; + struct device *dev; + struct napi_struct *napi; + enum dma_data_direction dma_dir; + unsigned int max_len; + unsigned int offset; + }; + struct page_pool_params_fast fast; + }; + union { + struct { + struct net_device *netdev; + unsigned int queue_idx; + unsigned int flags; + void (*init_callback)(netmem_ref, void *); + void *init_arg; + }; + struct page_pool_params_slow slow; + }; +}; + +struct page_pool_recycle_stats { + u64 cached; + u64 cache_full; + u64 ring; + u64 ring_full; + u64 released_refcnt; +}; + +struct page_pool_stats { + struct page_pool_alloc_stats alloc_stats; + struct page_pool_recycle_stats recycle_stats; +}; + +struct page_region { + __u64 start; + __u64 end; + __u64 categories; +}; + +struct page_reporting_dev_info { + int (*report)(struct page_reporting_dev_info *, struct scatterlist *, unsigned int); + struct delayed_work work; + atomic_t state; + unsigned int order; +}; + +struct page_req_dsc { + union { + struct { + u64 type: 8; + u64 pasid_present: 1; + u64 rsvd: 7; + u64 rid: 16; + u64 pasid: 20; + u64 exe_req: 1; + u64 pm_req: 1; + u64 rsvd2: 10; + }; + u64 qw_0; + }; + union { + struct { + u64 rd_req: 1; + u64 wr_req: 1; + u64 lpig: 1; + u64 prg_index: 9; + u64 addr: 52; + }; + u64 qw_1; + }; + u64 qw_2; + u64 qw_3; +}; + +struct page_state { + long unsigned int mask; + long unsigned int res; + enum mf_action_page_type type; + int (*action)(struct page_state *, struct page *); +}; + +struct page_vma_mapped_walk { + long unsigned int pfn; + long unsigned int nr_pages; + long unsigned int pgoff; + struct vm_area_struct *vma; + long unsigned int address; + pmd_t *pmd; + pte_t *pte; + spinlock_t *ptl; + unsigned int flags; +}; + +struct pm_scan_arg { + __u64 size; + __u64 flags; + __u64 start; + __u64 end; + __u64 walk_end; + __u64 vec; + __u64 vec_len; + __u64 max_pages; + __u64 category_inverted; + __u64 category_mask; + __u64 category_anyof_mask; + __u64 return_mask; +}; + +struct pagemap_scan_private { + struct pm_scan_arg arg; + long unsigned int masks_of_interest; + long unsigned int cur_vma_category; + struct page_region *vec_buf; + long unsigned int vec_buf_len; + long unsigned int vec_buf_index; + long unsigned int found_pages; + struct page_region *vec_out; +}; + +struct pagemapread { + int pos; + int len; + pagemap_entry_t *buffer; + bool show_pfn; +}; + +struct pagerange_state { + long unsigned int cur_pfn; + int ram; + int not_ram; +}; + +struct pages_devres { + long unsigned int addr; + unsigned int order; +}; + +struct pages_or_folios { + union { + struct page **pages; + struct folio **folios; + void **entries; + }; + bool has_folios; + long int nr_entries; +}; + +struct palmas_gpadc; + +struct palmas_pmic_driver_data; + +struct palmas_pmic; + +struct palmas_resource; + +struct palmas_usb; + +struct palmas { + struct device *dev; + struct i2c_client *i2c_clients[3]; + struct regmap *regmap[3]; + int id; + unsigned int features; + int irq; + u32 irq_mask; + struct mutex irq_lock; + struct regmap_irq_chip_data *irq_data; + struct palmas_pmic_driver_data *pmic_ddata; + struct palmas_pmic *pmic; + struct palmas_gpadc *gpadc; + struct palmas_resource *resource; + struct palmas_usb *usb; + u8 gpio_muxed; + u8 led_muxed; + u8 pwm_muxed; +}; + +struct palmas_clk_platform_data { + int clk32kg_mode_sleep; + int clk32kgaudio_mode_sleep; +}; + +struct palmas_device_data { + int ngpio; +}; + +struct palmas_driver_data { + unsigned int features; + const struct regmap_irq_chip *irq_chip; +}; + +struct palmas_gpadc_platform_data { + int ch3_current; + int ch0_current; + bool extended_delay; + int bat_removal; + int start_polarity; + int auto_conversion_period_ms; +}; + +struct palmas_gpio { + struct gpio_chip gpio_chip; + struct palmas *palmas; +}; + +struct palmas_pmic_platform_data; + +struct palmas_usb_platform_data; + +struct palmas_resource_platform_data; + +struct palmas_platform_data { + int irq_flags; + int gpio_base; + u8 power_ctrl; + int mux_from_pdata; + u8 pad1; + u8 pad2; + bool pm_off; + struct palmas_pmic_platform_data *pmic_pdata; + struct palmas_gpadc_platform_data *gpadc_pdata; + struct palmas_usb_platform_data *usb_pdata; + struct palmas_resource_platform_data *resource_pdata; + struct palmas_clk_platform_data *clk_pdata; +}; + +struct regulator_config; + +struct regulator_ops; + +struct regulator_desc { + const char *name; + const char *supply_name; + const char *of_match; + bool of_match_full_name; + const char *regulators_node; + int (*of_parse_cb)(struct device_node *, const struct regulator_desc *, struct regulator_config *); + int (*init_cb)(struct regulator_dev *, struct regulator_config *); + int id; + unsigned int continuous_voltage_range: 1; + unsigned int n_voltages; + unsigned int n_current_limits; + const struct regulator_ops *ops; + int irq; + enum regulator_type type; + struct module *owner; + unsigned int min_uV; + unsigned int uV_step; + unsigned int linear_min_sel; + int fixed_uV; + unsigned int ramp_delay; + int min_dropout_uV; + const struct linear_range *linear_ranges; + const unsigned int *linear_range_selectors_bitfield; + int n_linear_ranges; + const unsigned int *volt_table; + const unsigned int *curr_table; + unsigned int vsel_range_reg; + unsigned int vsel_range_mask; + bool range_applied_by_vsel; + unsigned int vsel_reg; + unsigned int vsel_mask; + unsigned int vsel_step; + unsigned int csel_reg; + unsigned int csel_mask; + unsigned int apply_reg; + unsigned int apply_bit; + unsigned int enable_reg; + unsigned int enable_mask; + unsigned int enable_val; + unsigned int disable_val; + bool enable_is_inverted; + unsigned int bypass_reg; + unsigned int bypass_mask; + unsigned int bypass_val_on; + unsigned int bypass_val_off; + unsigned int active_discharge_on; + unsigned int active_discharge_off; + unsigned int active_discharge_mask; + unsigned int active_discharge_reg; + unsigned int soft_start_reg; + unsigned int soft_start_mask; + unsigned int soft_start_val_on; + unsigned int pull_down_reg; + unsigned int pull_down_mask; + unsigned int pull_down_val_on; + unsigned int ramp_reg; + unsigned int ramp_mask; + const unsigned int *ramp_delay_table; + unsigned int n_ramp_values; + unsigned int enable_time; + unsigned int off_on_delay; + unsigned int poll_enabled_time; + unsigned int (*of_map_mode)(unsigned int); +}; + +struct palmas_pmic { + struct palmas *palmas; + struct device *dev; + struct regulator_desc desc[27]; + struct mutex mutex; + int smps123; + int smps457; + int smps12; + int range[10]; + unsigned int ramp_delay[10]; + unsigned int current_reg_mode[10]; +}; + +struct of_regulator_match; + +struct palmas_regs_info; + +struct palmas_sleep_requestor_info; + +struct palmas_pmic_driver_data { + int smps_start; + int smps_end; + int ldo_begin; + int ldo_end; + int max_reg; + bool has_regen3; + struct palmas_regs_info *palmas_regs_info; + struct of_regulator_match *palmas_matches; + struct palmas_sleep_requestor_info *sleep_req_info; + int (*smps_register)(struct palmas_pmic *, struct palmas_pmic_driver_data *, struct palmas_pmic_platform_data *, const char *, struct regulator_config); + int (*ldo_register)(struct palmas_pmic *, struct palmas_pmic_driver_data *, struct palmas_pmic_platform_data *, const char *, struct regulator_config); +}; + +struct palmas_reg_init; + +struct palmas_pmic_platform_data { + struct regulator_init_data *reg_data[27]; + struct palmas_reg_init *reg_init[27]; + int ldo6_vibrator; + bool enable_ldo8_tracking; +}; + +struct palmas_reg_init { + int warm_reset; + int roof_floor; + int mode_sleep; + u8 vsel; +}; + +struct palmas_regs_info { + const char *name; + const char *sname; + u8 vsel_addr; + u8 ctrl_addr; + u8 tstep_addr; + int sleep_id; +}; + +struct palmas_resource { + struct palmas *palmas; + struct device *dev; +}; + +struct palmas_resource_platform_data { + int regen1_mode_sleep; + int regen2_mode_sleep; + int sysen1_mode_sleep; + int sysen2_mode_sleep; + u8 nsleep_res; + u8 nsleep_smps; + u8 nsleep_ldo1; + u8 nsleep_ldo2; + u8 enable1_res; + u8 enable1_smps; + u8 enable1_ldo1; + u8 enable1_ldo2; + u8 enable2_res; + u8 enable2_smps; + u8 enable2_ldo1; + u8 enable2_ldo2; +}; + +struct palmas_sleep_requestor_info { + int id; + int reg_offset; + int bit_pos; +}; + +struct palmas_usb { + struct palmas *palmas; + struct device *dev; + struct extcon_dev *edev; + int id_otg_irq; + int id_irq; + int vbus_otg_irq; + int vbus_irq; + int gpio_id_irq; + int gpio_vbus_irq; + struct gpio_desc *id_gpiod; + struct gpio_desc *vbus_gpiod; + long unsigned int sw_debounce_jiffies; + struct delayed_work wq_detectid; + enum palmas_usb_state linkstat; + int wakeup; + bool enable_vbus_detection; + bool enable_id_detection; + bool enable_gpio_id_detection; + bool enable_gpio_vbus_detection; +}; + +struct palmas_usb_platform_data { + int wakeup; +}; + +struct panel_bridge { + struct drm_bridge bridge; + struct drm_connector connector; + struct drm_panel *panel; + u32 connector_type; +}; + +struct parallel_data { + struct padata_shell *ps; + struct padata_list *reorder_list; + struct padata_serial_queue *squeue; + refcount_t refcnt; + unsigned int seq_nr; + unsigned int processed; + int cpu; + struct padata_cpumask cpumask; + struct work_struct reorder_work; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct thermal_genl_cpu_caps; + +struct param { + struct nlattr **attrs; + struct sk_buff *msg; + const char *name; + int tz_id; + int cdev_id; + int trip_id; + int trip_temp; + int trip_type; + int trip_hyst; + int temp; + int prev_temp; + int direction; + int cdev_state; + int cdev_max_state; + struct thermal_genl_cpu_caps *cpu_capabilities; + int cpu_capabilities_count; +}; + +struct paravirt_callee_save { + void *func; +}; + +struct thread_struct; + +struct pv_cpu_ops { + void (*io_delay)(void); + long unsigned int (*get_debugreg)(int); + void (*set_debugreg)(int, long unsigned int); + long unsigned int (*read_cr0)(void); + void (*write_cr0)(long unsigned int); + void (*write_cr4)(long unsigned int); + void (*load_tr_desc)(void); + void (*load_gdt)(const struct desc_ptr *); + void (*load_idt)(const struct desc_ptr *); + void (*set_ldt)(const void *, unsigned int); + long unsigned int (*store_tr)(void); + void (*load_tls)(struct thread_struct *, unsigned int); + void (*load_gs_index)(unsigned int); + void (*write_ldt_entry)(struct desc_struct *, int, const void *); + void (*write_gdt_entry)(struct desc_struct *, int, const void *, int); + void (*write_idt_entry)(gate_desc *, int, const gate_desc *); + void (*alloc_ldt)(struct desc_struct *, unsigned int); + void (*free_ldt)(struct desc_struct *, unsigned int); + void (*load_sp0)(long unsigned int); + void (*invalidate_io_bitmap)(void); + void (*update_io_bitmap)(void); + void (*cpuid)(unsigned int *, unsigned int *, unsigned int *, unsigned int *); + u64 (*read_msr)(unsigned int); + void (*write_msr)(unsigned int, unsigned int, unsigned int); + u64 (*read_msr_safe)(unsigned int, int *); + int (*write_msr_safe)(unsigned int, unsigned int, unsigned int); + u64 (*read_pmc)(int); + void (*start_context_switch)(struct task_struct *); + void (*end_context_switch)(struct task_struct *); +}; + +struct pv_irq_ops { + struct paravirt_callee_save save_fl; + struct paravirt_callee_save irq_disable; + struct paravirt_callee_save irq_enable; + void (*safe_halt)(void); + void (*halt)(void); +}; + +struct pv_lazy_ops { + void (*enter)(void); + void (*leave)(void); + void (*flush)(void); +}; + +struct pv_mmu_ops { + void (*flush_tlb_user)(void); + void (*flush_tlb_kernel)(void); + void (*flush_tlb_one_user)(long unsigned int); + 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)(long unsigned int, int, bool); + struct paravirt_callee_save read_cr2; + void (*write_cr2)(long unsigned int); + long unsigned int (*read_cr3)(void); + void (*write_cr3)(long unsigned int); + void (*enter_mmap)(struct mm_struct *); + int (*pgd_alloc)(struct mm_struct *); + void (*pgd_free)(struct mm_struct *, pgd_t *); + void (*alloc_pte)(struct mm_struct *, long unsigned int); + void (*alloc_pmd)(struct mm_struct *, long unsigned int); + void (*alloc_pud)(struct mm_struct *, long unsigned int); + void (*alloc_p4d)(struct mm_struct *, long unsigned int); + void (*release_pte)(long unsigned int); + void (*release_pmd)(long unsigned int); + void (*release_pud)(long unsigned int); + void (*release_p4d)(long unsigned int); + void (*set_pte)(pte_t *, pte_t); + void (*set_pmd)(pmd_t *, pmd_t); + pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *); + void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t); + struct paravirt_callee_save pte_val; + struct paravirt_callee_save make_pte; + struct paravirt_callee_save pgd_val; + struct paravirt_callee_save make_pgd; + void (*set_pud)(pud_t *, pud_t); + struct paravirt_callee_save pmd_val; + struct paravirt_callee_save make_pmd; + struct paravirt_callee_save pud_val; + struct paravirt_callee_save make_pud; + void (*set_p4d)(p4d_t *, p4d_t); + struct paravirt_callee_save p4d_val; + struct paravirt_callee_save make_p4d; + void (*set_pgd)(pgd_t *, pgd_t); + struct pv_lazy_ops lazy_mode; + void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t); +}; + +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; +}; + +struct parsed_desc { + u32 mb; + u32 valid; +}; + +struct partition_meta_info { + char uuid[37]; + u8 volname[64]; +}; + +struct parsed_partitions { + struct gendisk *disk; + char name[32]; + struct { + sector_t from; + sector_t size; + int flags; + bool has_info; + struct partition_meta_info info; + } *parts; + int next; + int limit; + bool access_beyond_eod; + char *pp_buf; +}; + +struct partial_cluster { + ext4_fsblk_t pclu; + ext4_lblk_t lblk; + enum { + initial = 0, + tofree = 1, + nofree = 2, + } state; +}; + +struct partial_context { + gfp_t flags; + unsigned int orig_size; + void *object; +}; + +struct partial_page { + unsigned int offset; + unsigned int len; + long unsigned int private; +}; + +struct partition_info { + u8 flg; + char id[3]; + __be32 st; + __be32 siz; +}; + +union partition_info_u { + u64 val; + struct { + u64 hub_version: 8; + u64 partition_id: 16; + u64 coherence_id: 16; + u64 region_size: 24; + }; +}; + +struct pasid_dir_entry { + u64 val; +}; + +struct pasid_entry { + u64 val[8]; +}; + +struct pasid_table { + void *table; + int order; + u32 max_pasid; +}; + +struct patch_digest { + u32 patch_id; + u8 sha256[32]; +}; + +struct path_cond { + kuid_t uid; + umode_t mode; +}; + +struct pause_reply_data { + struct ethnl_reply_data base; + struct ethtool_pauseparam pauseparam; + struct ethtool_pause_stats pausestat; +}; + +struct pause_req_info { + struct ethnl_req_info base; + enum ethtool_mac_stats_src src; +}; + +struct pbe { + void *address; + void *orig_address; + struct pbe *next; +}; + +struct pcap_adc_request { + u8 bank; + u8 ch[2]; + u32 flags; + void (*callback)(void *, u16 *); + void *data; +}; + +struct pcap_adc_sync_request { + u16 res[2]; + struct completion completion; +}; + +struct spi_device; + +struct pcap_chip { + struct spi_device *spi; + u32 buf; + spinlock_t io_lock; + unsigned int irq_base; + u32 msr; + struct work_struct isr_work; + struct work_struct msr_work; + struct workqueue_struct *workqueue; + struct pcap_adc_request *adc_queue[8]; + u8 adc_head; + u8 adc_tail; + spinlock_t adc_lock; +}; + +struct pcap_subdev; + +struct pcap_platform_data { + unsigned int irq_base; + unsigned int config; + int gpio; + void (*init)(void *); + int num_subdevs; + struct pcap_subdev *subdevs; +}; + +struct pcap_subdev { + int id; + const char *name; + void *platform_data; +}; + +struct pcc_mbox_chan { + struct mbox_chan *mchan; + u64 shmem_base_addr; + void *shmem; + u64 shmem_size; + u32 latency; + u32 max_access_rate; + u16 min_turnaround_time; +}; + +struct pcc_chan_reg { + void *vaddr; + struct acpi_generic_address *gas; + u64 preserve_mask; + u64 set_mask; + u64 status_mask; +}; + +struct pcc_chan_info { + struct pcc_mbox_chan chan; + struct pcc_chan_reg db; + struct pcc_chan_reg plat_irq_ack; + struct pcc_chan_reg cmd_complete; + struct pcc_chan_reg cmd_update; + struct pcc_chan_reg error; + int plat_irq; + u8 type; + unsigned int plat_irq_flags; + bool chan_in_use; +}; + +struct pcc_cpu { + u32 input_offset; + u32 output_offset; +}; + +struct pcc_data { + struct pcc_mbox_chan *pcc_chan; + void *pcc_comm_addr; + struct completion done; + struct mbox_client cl; + struct acpi_pcc_info ctx; +}; + +struct pcc_header { + u32 signature; + u16 length; + u8 major; + u8 minor; + u32 features; + u16 command; + u16 status; + u32 latency; + u32 minimum_time; + u32 maximum_time; + u32 nominal; + u32 throttled_frequency; + u32 minimum_frequency; +}; + +struct pcc_memory_resource { + u8 descriptor; + u16 length; + u8 space_id; + u8 resource_usage; + u8 type_specific; + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; +} __attribute__((packed)); + +struct pcc_register_resource { + u8 descriptor; + u16 length; + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +struct pci2phy_map { + struct list_head list; + int segment; + int pbus_to_dieid[256]; +}; + +struct pci_acs { + u16 cap; + u16 ctrl; + u16 fw_ctrl; +}; + +struct pci_bits { + unsigned int reg; + unsigned int width; + long unsigned int mask; + long unsigned int val; +}; + +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]; + short unsigned int 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_bus_region { + pci_bus_addr_t start; + pci_bus_addr_t end; +}; + +struct pci_bus_resource { + struct list_head list; + struct resource *res; +}; + +struct pci_cap_saved_data { + u16 cap_nr; + bool cap_extended; + unsigned int size; + u32 data[0]; +}; + +struct pci_cap_saved_state { + struct hlist_node next; + struct pci_cap_saved_data cap; +}; + +struct pci_check_idx_range { + int start; + int end; +}; + +struct pci_vpd { + struct mutex lock; + unsigned int len; + u8 cap; +}; + +struct rcec_ea; + +struct pcie_link_state; + +struct pcie_bwctrl_data; + +struct pci_sriov; + +struct pci_p2pdma; + +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; + short unsigned int vendor; + short unsigned int device; + short unsigned int subsystem_vendor; + short unsigned int subsystem_device; + unsigned int class; + u8 revision; + u8 hdr_type; + u16 aer_cap; + struct aer_stats *aer_stats; + struct rcec_ea *rcec_ea; + struct pci_dev *rcec; + u32 devcap; + u8 pcie_cap; + u8 msi_cap; + u8 msix_cap; + u8 pcie_mpss: 3; + u8 rom_base_reg; + u8 pin; + u16 pcie_flags_reg; + long unsigned int *dma_alias_mask; + struct pci_driver *driver; + u64 dma_mask; + struct device_dma_parameters dma_parms; + pci_power_t current_state; + u8 pm_cap; + unsigned int pme_support: 5; + unsigned int pme_poll: 1; + unsigned int pinned: 1; + unsigned int config_rrs_sv: 1; + unsigned int imm_ready: 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; + u16 l1ss; + struct pcie_link_state *link_state; + unsigned int ltr_path: 1; + unsigned int pasid_no_tlp: 1; + unsigned int eetlp_prefix_max: 3; + pci_channel_state_t error_state; + struct device dev; + int cfg_size; + unsigned int irq; + struct resource resource[17]; + struct resource driver_exclusive_resource; + bool match_driver; + unsigned int transparent: 1; + unsigned int io_window: 1; + unsigned int pref_window: 1; + unsigned int pref_64_window: 1; + unsigned int multifunction: 1; + unsigned int is_busmaster: 1; + unsigned int no_msi: 1; + unsigned int no_64bit_msi: 1; + unsigned int block_cfg_access: 1; + unsigned int broken_parity_status: 1; + unsigned int irq_reroute_variant: 2; + unsigned int msi_enabled: 1; + unsigned int msix_enabled: 1; + unsigned int ari_enabled: 1; + unsigned int ats_enabled: 1; + unsigned int pasid_enabled: 1; + unsigned int pri_enabled: 1; + unsigned int tph_enabled: 1; + unsigned int is_managed: 1; + unsigned int is_msi_managed: 1; + unsigned int needs_freset: 1; + unsigned int state_saved: 1; + unsigned int is_physfn: 1; + unsigned int is_virtfn: 1; + unsigned int is_hotplug_bridge: 1; + unsigned int shpc_managed: 1; + unsigned int is_thunderbolt: 1; + unsigned int untrusted: 1; + unsigned int external_facing: 1; + unsigned int broken_intx_masking: 1; + unsigned int io_window_1k: 1; + unsigned int irq_managed: 1; + unsigned int non_compliant_bars: 1; + unsigned int is_probed: 1; + unsigned int link_active_reporting: 1; + unsigned int no_vf_scan: 1; + unsigned int no_command_memory: 1; + unsigned int rom_bar_overlap: 1; + unsigned int rom_attr_enabled: 1; + unsigned int aspm_os_control: 1; + pci_dev_flags_t dev_flags; + atomic_t enable_cnt; + spinlock_t pcie_cap_lock; + u32 saved_config_space[16]; + struct hlist_head saved_cap_space; + struct bin_attribute *res_attr[17]; + struct bin_attribute *res_attr_wc[17]; + unsigned int broken_cmd_compl: 1; + u16 ptm_cap; + unsigned int ptm_root: 1; + unsigned int ptm_enabled: 1; + u8 ptm_granularity; + void *msix_base; + raw_spinlock_t msi_lock; + struct pci_vpd vpd; + u16 dpc_cap; + unsigned int dpc_rp_extensions: 1; + u8 dpc_rp_log_size; + struct pcie_bwctrl_data *link_bwctrl; + 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; + struct pci_p2pdma *p2pdma; + struct xarray doe_mbs; + struct npem *npem; + u16 acs_cap; + u8 supported_speeds; + phys_addr_t rom; + size_t romlen; + const char *driver_override; + long unsigned int priv_flags; + u8 reset_methods[8]; + u16 tph_cap; + u8 tph_mode; + u8 tph_req_type; +}; + +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 *); +}; + +struct pci_dev_reset_methods { + u16 vendor; + u16 device; + int (*reset)(struct pci_dev *, bool); +}; + +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; + long unsigned int flags; +}; + +struct pci_device_id { + __u32 vendor; + __u32 device; + __u32 subvendor; + __u32 subdevice; + __u32 class; + __u32 class_mask; + kernel_ulong_t driver_data; + __u32 override_only; +}; + +struct physdev_pci_device { + uint16_t seg; + uint8_t bus; + uint8_t devfn; +}; + +struct pci_device_reset { + struct physdev_pci_device dev; + uint32_t flags; +}; + +struct pci_doe_mb { + struct pci_dev *pdev; + u16 cap_offset; + struct xarray prots; + wait_queue_head_t wq; + struct workqueue_struct *work_queue; + long unsigned int flags; +}; + +struct pci_doe_protocol { + u16 vid; + u8 type; +}; + +struct pci_doe_task { + struct pci_doe_protocol prot; + const __le32 *request_pl; + size_t request_pl_sz; + __le32 *response_pl; + size_t response_pl_sz; + int rv; + void (*complete)(struct pci_doe_task *); + void *private; + struct work_struct work; + struct pci_doe_mb *doe_mb; +}; + +struct pci_domain_busn_res { + struct list_head list; + struct resource res; + int domain_nr; +}; + +struct pci_dynids { + spinlock_t lock; + struct list_head list; +}; + +struct pci_error_handlers; + +struct pci_driver { + 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_dynid { + struct list_head node; + struct pci_device_id id; +}; + +struct pci_epc_ops; + +struct pci_epc_mem; + +struct pci_epc { + struct device dev; + struct list_head pci_epf; + struct mutex list_lock; + const struct pci_epc_ops *ops; + struct pci_epc_mem **windows; + struct pci_epc_mem *mem; + unsigned int num_windows; + u8 max_functions; + u8 *max_vfs; + struct config_group *group; + struct mutex lock; + long unsigned int function_num_map; + int domain_nr; + bool init_complete; +}; + +struct pci_epc_bar_desc { + enum pci_epc_bar_type type; + u64 fixed_size; + bool only_64bit; +}; + +struct pci_epf; + +struct pci_epc_event_ops { + int (*epc_init)(struct pci_epf *); + void (*epc_deinit)(struct pci_epf *); + int (*link_up)(struct pci_epf *); + int (*link_down)(struct pci_epf *); + int (*bus_master_enable)(struct pci_epf *); +}; + +struct pci_epc_features { + unsigned int linkup_notifier: 1; + unsigned int msi_capable: 1; + unsigned int msix_capable: 1; + struct pci_epc_bar_desc bar[6]; + size_t align; +}; + +struct pci_epc_group { + struct config_group group; + struct pci_epc *epc; + bool start; +}; + +struct pci_epc_map { + u64 pci_addr; + size_t pci_size; + u64 map_pci_addr; + size_t map_size; + phys_addr_t phys_base; + phys_addr_t phys_addr; + void *virt_base; + void *virt_addr; +}; + +struct pci_epc_mem_window { + phys_addr_t phys_base; + size_t size; + size_t page_size; +}; + +struct pci_epc_mem { + struct pci_epc_mem_window window; + long unsigned int *bitmap; + int pages; + struct mutex lock; +}; + +struct pci_epf_header; + +struct pci_epc_ops { + int (*write_header)(struct pci_epc *, u8, u8, struct pci_epf_header *); + int (*set_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + void (*clear_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + u64 (*align_addr)(struct pci_epc *, u64, size_t *, size_t *); + int (*map_addr)(struct pci_epc *, u8, u8, phys_addr_t, u64, size_t); + void (*unmap_addr)(struct pci_epc *, u8, u8, phys_addr_t); + int (*set_msi)(struct pci_epc *, u8, u8, u8); + int (*get_msi)(struct pci_epc *, u8, u8); + int (*set_msix)(struct pci_epc *, u8, u8, u16, enum pci_barno, u32); + int (*get_msix)(struct pci_epc *, u8, u8); + int (*raise_irq)(struct pci_epc *, u8, u8, unsigned int, u16); + int (*map_msi_irq)(struct pci_epc *, u8, u8, phys_addr_t, u8, u32, u32 *, u32 *); + int (*start)(struct pci_epc *); + void (*stop)(struct pci_epc *); + const struct pci_epc_features * (*get_features)(struct pci_epc *, u8, u8); + struct module *owner; +}; + +struct pci_epf_bar { + dma_addr_t phys_addr; + void *addr; + size_t size; + size_t aligned_size; + enum pci_barno barno; + int flags; +}; + +struct pci_epf_driver; + +struct pci_epf_device_id; + +struct pci_epf { + struct device dev; + const char *name; + struct pci_epf_header *header; + struct pci_epf_bar bar[6]; + u8 msi_interrupts; + u16 msix_interrupts; + u8 func_no; + u8 vfunc_no; + struct pci_epc *epc; + struct pci_epf *epf_pf; + struct pci_epf_driver *driver; + const struct pci_epf_device_id *id; + struct list_head list; + struct mutex lock; + struct pci_epc *sec_epc; + struct list_head sec_epc_list; + struct pci_epf_bar sec_epc_bar[6]; + u8 sec_epc_func_no; + struct config_group *group; + unsigned int is_bound; + unsigned int is_vf; + long unsigned int vfunction_num_map; + struct list_head pci_vepf; + const struct pci_epc_event_ops *event_ops; +}; + +struct pci_epf_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; + +struct pci_epf_ops; + +struct pci_epf_driver { + int (*probe)(struct pci_epf *, const struct pci_epf_device_id *); + void (*remove)(struct pci_epf *); + struct device_driver driver; + const struct pci_epf_ops *ops; + struct module *owner; + struct list_head epf_group; + const struct pci_epf_device_id *id_table; +}; + +struct pci_epf_group { + struct config_group group; + struct config_group primary_epc_group; + struct config_group secondary_epc_group; + struct delayed_work cfs_work; + struct pci_epf *epf; + int index; +}; + +struct pci_epf_header { + u16 vendorid; + u16 deviceid; + u8 revid; + u8 progif_code; + u8 subclass_code; + u8 baseclass_code; + u8 cache_line_size; + u16 subsys_vendor_id; + u16 subsys_id; + enum pci_interrupt_pin interrupt_pin; +}; + +struct pci_epf_msix_tbl { + u64 msg_addr; + u32 msg_data; + u32 vector_ctrl; +}; + +struct pci_epf_ops { + int (*bind)(struct pci_epf *); + void (*unbind)(struct pci_epf *); + struct config_group * (*add_cfs)(struct pci_epf *, struct config_group *); +}; + +struct 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 pci_extra_dev { + struct pci_dev *dev[4]; +}; + +struct pci_filp_private { + enum pci_mmap_state mmap_state; + int write_combine; +}; + +struct pci_fixup { + u16 vendor; + u16 device; + u32 class; + unsigned int class_shift; + int hook_offset; +}; + +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 *); + int (*enable_device)(struct pci_host_bridge *, struct pci_dev *); + void (*disable_device)(struct pci_host_bridge *, struct pci_dev *); + 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; + long: 64; + long unsigned int private[0]; +}; + +struct pci_hostbridge_probe { + u32 bus; + u32 slot; + u32 vendor; + u32 device; +}; + +struct pci_mmcfg_hostbridge_probe { + u32 bus; + u32 devfn; + u32 vendor; + u32 device; + const char * (*probe)(void); +}; + +struct pci_mmcfg_region { + struct list_head list; + struct resource res; + u64 address; + char *virt; + u16 segment; + u8 start_bus; + u8 end_bus; + char name[30]; +}; + +struct pci_ops { + int (*add_bus)(struct pci_bus *); + void (*remove_bus)(struct pci_bus *); + void * (*map_bus)(struct pci_bus *, unsigned int, int); + int (*read)(struct pci_bus *, unsigned int, int, int, u32 *); + int (*write)(struct pci_bus *, unsigned int, int, int, u32); +}; + +struct pci_osc_bit_struct { + u32 bit; + char *desc; +}; + +struct pci_p2pdma { + struct gen_pool *pool; + bool p2pmem_published; + struct xarray map_types; +}; + +struct pci_p2pdma_map_state { + struct dev_pagemap *pgmap; + int map; + u64 bus_off; +}; + +struct pci_p2pdma_pagemap { + struct pci_dev *provider; + u64 bus_offset; + struct dev_pagemap pgmap; +}; + +struct pci_p2pdma_whitelist_entry { + short unsigned int vendor; + short unsigned int device; + enum { + REQ_SAME_HOST_BRIDGE = 1, + } flags; +}; + +struct pci_pme_device { + struct list_head list; + struct pci_dev *dev; +}; + +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_reset_fn_method { + int (*reset_fn)(struct pci_dev *, bool); + char *name; +}; + +struct pci_root_info { + struct list_head list; + char name[12]; + struct list_head resources; + struct resource busn; + int node; + int link; +}; + +struct pci_sysdata { + int domain; + int node; + struct acpi_device *companion; + void *iommu; + void *fwnode; + struct pci_dev *vmd_dev; +}; + +struct pci_root_info___2 { + struct acpi_pci_root_info common; + struct pci_sysdata sd; + bool mcfg_added; + u8 start_bus; + u8 end_bus; +}; + +struct pci_root_res { + struct list_head list; + struct resource res; +}; + +struct pci_saved_state { + u32 config_space[16]; + struct pci_cap_saved_data cap[0]; +}; + +struct serial_private; + +struct pciserial_board; + +struct pci_serial_quirk { + u32 vendor; + u32 device; + u32 subvendor; + u32 subdevice; + int (*probe)(struct pci_dev *); + int (*init)(struct pci_dev *); + int (*setup)(struct serial_private *, const struct pciserial_board *, struct uart_8250_port *, int); + void (*exit)(struct pci_dev *); +}; + +struct pci_setup_rom { + struct setup_data data; + uint16_t vendor; + uint16_t devid; + uint64_t pcilen; + long unsigned int segment; + long unsigned int bus; + long unsigned int device; + long unsigned int function; + uint8_t romdata[0]; +}; + +struct pci_slot { + struct pci_bus *bus; + struct list_head list; + struct hotplug_slot *hotplug; + unsigned char number; + struct kobject kobj; +}; + +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 pci_sriov { + int pos; + int nres; + u32 cap; + u16 ctrl; + u16 total_VFs; + u16 initial_VFs; + u16 num_VFs; + u16 offset; + u16 stride; + u16 vf_device; + u32 pgsz; + u8 link; + u8 max_VF_buses; + u16 driver_max_VFs; + struct pci_dev *dev; + struct pci_dev *self; + u32 class; + u8 hdr_type; + u16 subsystem_vendor; + u16 subsystem_device; + resource_size_t barsz[6]; + bool drivers_autoprobe; +}; + +struct pcibios_fwaddrmap { + struct list_head list; + struct pci_dev *dev; + resource_size_t fw_addr[17]; +}; + +struct pcie_bwctrl_data { + struct mutex set_speed_mutex; + atomic_t lbms_count; + struct thermal_cooling_device *cdev; +}; + +struct pcie_device { + int irq; + struct pci_dev *port; + u32 service; + void *priv_data; + struct device device; +}; + +struct pcie_link_state { + struct pci_dev *pdev; + struct pci_dev *downstream; + struct pcie_link_state *root; + struct pcie_link_state *parent; + struct list_head sibling; + u32 aspm_support: 7; + u32 aspm_enabled: 7; + u32 aspm_capable: 7; + u32 aspm_default: 7; + int: 4; + u32 aspm_disable: 7; + u32 clkpm_capable: 1; + u32 clkpm_enabled: 1; + u32 clkpm_default: 1; + u32 clkpm_disable: 1; +}; + +struct pcie_pme_service_data { + spinlock_t lock; + struct pcie_device *srv; + struct work_struct work; + bool noirq; +}; + +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 pcim_addr_devres { + enum pcim_addr_devres_type type; + void *baseaddr; + long unsigned int offset; + long unsigned int len; + int bar; +}; + +struct pcim_intx_devres { + int orig_intx; +}; + +struct pcim_iomap_devres { + void *table[17]; +}; + +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 pcpu { + struct list_head list; + struct device dev; + uint32_t cpu_id; + uint32_t acpi_id; + uint32_t flags; +}; + +struct pcpu_group_info { + int nr_units; + long unsigned int 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 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 pcpuobj_ext; + +struct pcpu_chunk { + struct list_head list; + int free_bytes; + struct pcpu_block_md chunk_md; + long unsigned int *bound_map; + void *base_addr; + long unsigned int *alloc_map; + struct pcpu_block_md *md_blocks; + void *data; + bool immutable; + bool isolated; + int start_offset; + int end_offset; + struct pcpuobj_ext *obj_exts; + int nr_pages; + int nr_populated; + int nr_empty_pop_pages; + long unsigned int populated[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct pcpu_dstats { + u64_stats_t rx_packets; + u64_stats_t rx_bytes; + u64_stats_t tx_packets; + u64_stats_t tx_bytes; + u64_stats_t rx_drops; + u64_stats_t tx_drops; + struct u64_stats_sync syncp; + long: 64; + long: 64; +}; + +struct pcpu_gen_cookie { + local_t nesting; + u64 last; +}; + +struct pcpu_hot { + union { + struct { + struct task_struct *current_task; + int preempt_count; + int cpu_number; + u64 call_depth; + long unsigned int top_of_stack; + void *hardirq_stack_ptr; + u16 softirq_pending; + bool hardirq_stack_inuse; + }; + u8 pad[64]; + }; +}; + +struct pcpu_lstats { + u64_stats_t packets; + u64_stats_t bytes; + struct u64_stats_sync syncp; +}; + +struct pcpu_rx_sc_stats { + struct macsec_rx_sc_stats stats; + struct u64_stats_sync syncp; +}; + +struct pcpu_seg6_local_counters { + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t errors; + 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 pcpu_tx_sc_stats { + struct macsec_tx_sc_stats stats; + struct u64_stats_sync syncp; +}; + +struct pcpuobj_ext { + struct obj_cgroup *cgroup; +}; + +struct pde_opener { + struct list_head lh; + struct file *file; + bool closing; + struct completion *c; +}; + +struct pdom_dev_data { + struct iommu_dev_data *dev_data; + ioasid_t pasid; + struct list_head list; +}; + +struct pdom_iommu_info { + struct amd_iommu *iommu; + u32 refcnt; +}; + +struct pe32_opt_hdr { + uint16_t magic; + uint8_t ld_major; + uint8_t ld_minor; + uint32_t text_size; + uint32_t data_size; + uint32_t bss_size; + uint32_t entry_point; + uint32_t code_base; + uint32_t data_base; + uint32_t image_base; + uint32_t section_align; + uint32_t file_align; + uint16_t os_major; + uint16_t os_minor; + uint16_t image_major; + uint16_t image_minor; + uint16_t subsys_major; + uint16_t subsys_minor; + uint32_t win32_version; + uint32_t image_size; + uint32_t header_size; + uint32_t csum; + uint16_t subsys; + uint16_t dll_flags; + uint32_t stack_size_req; + uint32_t stack_size; + uint32_t heap_size_req; + uint32_t heap_size; + uint32_t loader_flags; + uint32_t data_dirs; +}; + +struct pe32plus_opt_hdr { + uint16_t magic; + uint8_t ld_major; + uint8_t ld_minor; + uint32_t text_size; + uint32_t data_size; + uint32_t bss_size; + uint32_t entry_point; + uint32_t code_base; + uint64_t image_base; + uint32_t section_align; + uint32_t file_align; + uint16_t os_major; + uint16_t os_minor; + uint16_t image_major; + uint16_t image_minor; + uint16_t subsys_major; + uint16_t subsys_minor; + uint32_t win32_version; + uint32_t image_size; + uint32_t header_size; + uint32_t csum; + uint16_t subsys; + uint16_t dll_flags; + uint64_t stack_size_req; + uint64_t stack_size; + uint64_t heap_size_req; + uint64_t heap_size; + uint32_t loader_flags; + uint32_t data_dirs; +}; + +struct pe_hdr { + uint32_t magic; + uint16_t machine; + uint16_t sections; + uint32_t timestamp; + uint32_t symbol_table; + uint32_t symbols; + uint16_t opt_hdr_size; + uint16_t flags; +}; + +struct pebs_basic { + u64 format_group: 32; + u64 retire_latency: 16; + u64 format_size: 16; + u64 ip; + u64 applicable_counters; + u64 tsc; +}; + +struct pebs_gprs { + u64 flags; + u64 ip; + u64 ax; + u64 cx; + u64 dx; + u64 bx; + u64 sp; + u64 bp; + u64 si; + u64 di; + u64 r8; + u64 r9; + u64 r10; + u64 r11; + u64 r12; + u64 r13; + u64 r14; + u64 r15; +}; + +struct pebs_meminfo { + u64 address; + u64 aux; + union { + u64 mem_latency; + struct { + u64 instr_latency: 16; + u64 pad2: 16; + u64 cache_latency: 16; + u64 pad3: 16; + }; + }; + u64 tsx_tuning; +}; + +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_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_xmm { + u64 xmm[32]; +}; + +struct section_header; + +struct pefile_context { + unsigned int header_size; + unsigned int image_checksum_offset; + unsigned int cert_dirent_offset; + unsigned int n_data_dirents; + unsigned int n_sections; + unsigned int certs_size; + unsigned int sig_offset; + unsigned int sig_len; + const struct section_header *secs; + const void *digest; + unsigned int digest_len; + const char *digest_algo; +}; + +struct pending_reservation { + struct rb_node rb_node; + ext4_lblk_t lclu; +}; + +struct per_cpu_dm_data { + raw_spinlock_t lock; + union { + struct sk_buff *skb; + struct net_dm_hw_entries *hw_entries; + }; + struct sk_buff_head drop_queue; + struct work_struct dm_alert_work; + struct timer_list send_timer; + struct net_dm_stats stats; +}; + +struct per_cpu_nodestat { + s8 stat_threshold; + s8 vm_node_stat_diff[48]; +}; + +struct per_cpu_pages { + spinlock_t lock; + int count; + int high; + int high_min; + int high_max; + int batch; + u8 flags; + u8 alloc_factor; + u8 expire; + short int free_count; + struct list_head lists[14]; +}; + +struct per_cpu_zonestat { + s8 vm_stat_diff[12]; + s8 stat_threshold; + long unsigned int vm_numa_event[6]; +}; + +struct percpu_cluster { + local_lock_t lock; + unsigned int next[10]; +}; + +struct percpu_free_defer { + struct callback_head rcu; + void *ptr; +}; + +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 perf_addr_filter { + struct list_head entry; + struct path path; + long unsigned int offset; + long unsigned int size; + enum perf_addr_filter_action_t action; +}; + +struct perf_addr_filter_range { + long unsigned int start; + long unsigned int size; +}; + +struct perf_addr_filters_head { + struct list_head list; + raw_spinlock_t lock; + unsigned int nr_file_filters; +}; + +struct perf_amd_iommu { + struct list_head list; + struct pmu pmu; + struct amd_iommu *iommu; + char name[16]; + u8 max_banks; + u8 max_counters; + u64 cntr_assign_mask; + raw_spinlock_t lock; +}; + +struct perf_event_header { + __u32 type; + __u16 misc; + __u16 size; +}; + +struct perf_aux_event { + struct perf_event_header header; + u64 hw_id; +}; + +struct perf_aux_event___2 { + struct perf_event_header header; + u32 pid; + u32 tid; +}; + +struct perf_aux_event___3 { + struct perf_event_header header; + u64 offset; + u64 size; + u64 flags; +}; + +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_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 int watermark; + long int aux_watermark; + spinlock_t event_lock; + struct list_head event_list; + atomic_t mmap_count; + long unsigned int mmap_locked; + struct user_struct *mmap_user; + struct mutex aux_mutex; + long int aux_head; + unsigned int aux_nest; + long int aux_wakeup; + long unsigned int aux_pgoff; + int aux_nr_pages; + int aux_overwrite; + atomic_t aux_mmap_count; + long unsigned int aux_mmap_locked; + void (*free_aux)(void *); + refcount_t aux_refcount; + int aux_in_sampling; + int aux_in_pause_resume; + void **aux_pages; + void *aux_priv; + struct perf_event_mmap_page *user_page; + void *data_pages[0]; +}; + +struct perf_callchain_entry { + __u64 nr; + __u64 ip[0]; +}; + +struct perf_callchain_entry_ctx { + struct perf_callchain_entry *entry; + u32 max_stack; + u32 nr; + short int contexts; + bool contexts_maxed; +}; + +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 rdpmc_metrics_clear: 1; + }; + u64 capabilities; +}; + +struct perf_cgroup_info; + +struct perf_cgroup { + struct cgroup_subsys_state css; + struct perf_cgroup_info *info; +}; + +struct perf_cgroup_event { + char *path; + int path_size; + struct { + struct perf_event_header header; + u64 id; + char path[0]; + } event_id; +}; + +struct perf_cgroup_info { + u64 time; + u64 timestamp; + u64 timeoffset; + int active; +}; + +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_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_no_switch_fast; +}; + +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 perf_event_pmu_context { + struct pmu *pmu; + struct perf_event_context *ctx; + struct list_head pmu_ctx_entry; + struct list_head pinned_active; + struct list_head flexible_active; + unsigned int embedded: 1; + unsigned int nr_events; + unsigned int nr_cgroups; + unsigned int nr_freq; + 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_ctx_data { + struct callback_head callback_head; + refcount_t refcount; + int global; + struct kmem_cache *ctx_cache; + void *data; +}; + +struct perf_domain { + struct em_perf_domain *em_pd; + struct perf_domain *next; + struct callback_head rcu; +}; + +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; + union { + __u32 aux_action; + struct { + __u32 aux_start_paused: 1; + __u32 aux_pause: 1; + __u32 aux_resume: 1; + __u32 __reserved_3: 29; + }; + }; + __u64 sig_data; + __u64 config3; +}; + +typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *); + +struct perf_event { + struct list_head event_entry; + struct list_head sibling_list; + struct list_head active_list; + struct rb_node group_node; + u64 group_index; + struct list_head migrate_entry; + struct hlist_node hlist_entry; + struct list_head active_entry; + int nr_siblings; + int event_caps; + int group_caps; + unsigned int group_generation; + struct perf_event *group_leader; + struct pmu *pmu; + void *pmu_private; + enum perf_event_state state; + unsigned int attach_state; + local64_t count; + atomic64_t child_count; + u64 total_time_enabled; + u64 total_time_running; + u64 tstamp; + struct perf_event_attr attr; + u16 header_size; + u16 id_header_size; + u16 read_size; + struct hw_perf_event hw; + struct perf_event_context *ctx; + struct perf_event_pmu_context *pmu_ctx; + atomic_long_t refcount; + atomic64_t child_total_time_enabled; + atomic64_t child_total_time_running; + struct mutex child_mutex; + struct list_head child_list; + struct perf_event *parent; + int oncpu; + int cpu; + struct list_head owner_entry; + struct task_struct *owner; + struct mutex mmap_mutex; + atomic_t mmap_count; + struct perf_buffer *rb; + struct list_head rb_entry; + long unsigned int 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; + long unsigned int pending_addr; + struct irq_work pending_irq; + struct irq_work pending_disable_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; + long unsigned int 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)(void); + perf_overflow_handler_t overflow_handler; + void *overflow_handler_context; + struct bpf_prog *prog; + u64 bpf_cookie; + struct trace_event_call *tp_event; + struct event_filter *filter; + struct ftrace_ops ftrace_ops; + struct perf_cgroup *cgrp; + void *security; + struct list_head sb_list; + __u32 orig_type; +}; + +struct perf_event_min_heap { + size_t nr; + size_t size; + struct perf_event **data; + struct perf_event *preallocated[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_query_bpf { + __u32 ids_len; + __u32 prog_cnt; + __u32 ids[0]; +}; + +struct perf_event_security_struct { + u32 sid; +}; + +struct perf_guest_info_callbacks { + unsigned int (*state)(void); + long unsigned int (*get_ip)(void); + unsigned int (*handle_intel_pt_intr)(void); +}; + +struct perf_ibs { + struct pmu pmu; + unsigned int msr; + u64 config_mask; + u64 cnt_mask; + u64 enable_mask; + u64 valid_mask; + u64 max_period; + long unsigned int 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 *pcpu; + u64 (*get_count)(u64); +}; + +struct perf_ibs_data { + u32 size; + union { + u32 data[0]; + u32 caps; + }; + u64 regs[8]; +}; + +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_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_msr { + u64 msr; + struct attribute_group *grp; + bool (*test)(int, void *); + bool no_check; + u64 mask; +}; + +struct perf_ns_link_info { + __u64 dev; + __u64 ino; +}; + +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_pmu_events_attr { + struct device_attribute attr; + u64 id; + const char *event_str; +}; + +struct perf_pmu_events_ht_attr { + struct device_attribute attr; + u64 id; + const char *event_str_ht; + const char *event_str_noht; +}; + +struct perf_pmu_events_hybrid_attr { + struct device_attribute attr; + u64 id; + const char *event_str; + u64 pmu_type; +}; + +struct perf_pmu_format_hybrid_attr { + struct device_attribute attr; + u64 pmu_type; +}; + +typedef long unsigned int (*perf_copy_f)(void *, const void *, long unsigned int, long unsigned int); + +struct perf_raw_frag { + union { + struct perf_raw_frag *next; + long unsigned int pad; + }; + perf_copy_f copy; + void *data; + u32 size; +} __attribute__((packed)); + +struct perf_raw_record { + struct perf_raw_frag frag; + u32 size; +}; + +struct perf_read_data { + struct perf_event *event; + bool group; + int ret; +}; + +struct perf_read_event { + struct perf_event_header header; + u32 pid; + u32 tid; +}; + +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 perf_switch_event { + struct task_struct *task; + struct task_struct *next_prev; + struct { + struct perf_event_header header; + u32 next_prev_pid; + u32 next_prev_tid; + } event_id; +}; + +struct 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_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 perm_datum { + u32 value; +}; + +struct pernet_operations { + struct list_head list; + int (*init)(struct net *); + void (*pre_exit)(struct net *); + void (*exit)(struct net *); + void (*exit_batch)(struct list_head *); + void (*exit_batch_rtnl)(struct list_head *, struct list_head *); + unsigned int * const id; + const size_t size; +}; + +struct pf_desc { + u32 pseudoflavor; + u32 qop; + u32 service; + char *name; + char *auth_domain_name; + struct auth_domain *domain; + bool datatouch; +}; + +struct skb_array { + struct ptr_ring ring; +}; + +struct pfifo_fast_priv { + struct skb_array q[3]; +}; + +struct ptdump_range; + +struct ptdump_state { + void (*note_page)(struct ptdump_state *, long unsigned int, 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]; + long unsigned int start_address; + const struct addr_marker *marker; + long unsigned int lines; + bool to_dmesg; + bool check_wx; + long unsigned int wx_pages; + struct seq_file *seq; +}; + +struct zone { + long unsigned int _watermark[4]; + long unsigned int watermark_boost; + long unsigned int nr_reserved_highatomic; + long unsigned int nr_free_highatomic; + long int lowmem_reserve[5]; + int node; + struct pglist_data *zone_pgdat; + struct per_cpu_pages *per_cpu_pageset; + struct per_cpu_zonestat *per_cpu_zonestats; + int pageset_high_min; + int pageset_high_max; + int pageset_batch; + long unsigned int zone_start_pfn; + atomic_long_t managed_pages; + long unsigned int spanned_pages; + long unsigned int present_pages; + long unsigned int present_early_pages; + const char *name; + long unsigned int nr_isolate_pageblock; + seqlock_t span_seqlock; + int initialized; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct free_area free_area[11]; + struct list_head unaccepted_pages; + struct work_struct unaccepted_cleanup; + long unsigned int flags; + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad2_; + long unsigned int percpu_drift_mark; + long unsigned int compact_cached_free_pfn; + long unsigned int compact_cached_migrate_pfn[2]; + long unsigned int compact_init_migrate_pfn; + long unsigned int compact_init_free_pfn; + unsigned int compact_considered; + unsigned int compact_defer_shift; + int compact_order_failed; + bool compact_blockskip_flush; + bool contiguous; + long: 0; + struct cacheline_padding _pad3_; + atomic_long_t vm_stat[12]; + atomic_long_t vm_numa_event[6]; + 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[5121]; +}; + +struct pglist_data { + struct zone node_zones[5]; + struct zonelist node_zonelists[2]; + int nr_zones; + spinlock_t node_size_lock; + long unsigned int node_start_pfn; + long unsigned int node_present_pages; + long unsigned int 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; + long unsigned int nr_reclaim_start; + struct mutex kswapd_lock; + struct task_struct *kswapd; + int kswapd_order; + enum zone_type kswapd_highest_zoneidx; + int kswapd_failures; + int kcompactd_max_order; + enum zone_type kcompactd_highest_zoneidx; + wait_queue_head_t kcompactd_wait; + struct task_struct *kcompactd; + bool proactive_compact_trigger; + long unsigned int totalreserve_pages; + long unsigned int min_unmapped_pages; + long unsigned int min_slab_pages; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct deferred_split deferred_split_queue; + unsigned int nbp_rl_start; + long unsigned int nbp_rl_nr_cand; + unsigned int nbp_threshold; + unsigned int nbp_th_start; + long unsigned int nbp_th_nr_cand; + struct lruvec __lruvec; + long unsigned int flags; + struct lru_gen_mm_walk mm_walk; + struct lru_gen_memcg memcg_lru; + long: 64; + struct cacheline_padding _pad2_; + struct per_cpu_nodestat *per_cpu_nodestats; + atomic_long_t vm_stat[48]; + struct memory_tier *memtier; + struct memory_failure_stats mf_stats; + long: 64; +}; + +struct pgv { + char *buffer; +}; + +struct phc_vclocks_reply_data { + struct ethnl_reply_data base; + int num; + int *index; +}; + +struct phy_attrs { + u32 bus_width; + u32 max_link_rate; + enum phy_mode mode; +}; + +struct phy_ops; + +struct phy { + struct device dev; + int id; + const struct phy_ops *ops; + struct mutex mutex; + int init_count; + int power_count; + struct phy_attrs attrs; + struct regulator *pwr; + struct dentry *debugfs; +}; + +struct phy_c45_device_ids { + u32 devices_in_package; + u32 mmds_present; + u32 device_ids[32]; +}; + +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; + long unsigned int hs_clk_rate; + long unsigned int 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; + long unsigned int differential_clk_rate; + unsigned int lanes; + bool is_slave; +}; + +union phy_configure_opts { + struct phy_configure_opts_mipi_dphy mipi_dphy; + struct phy_configure_opts_dp dp; + struct phy_configure_opts_lvds lvds; +}; + +struct phy_driver; + +struct phy_led_trigger; + +struct pse_control; + +struct phy_device { + struct mdio_device mdio; + const struct phy_driver *drv; + struct device_link *devlink; + u32 phyindex; + u32 phy_id; + struct phy_c45_device_ids c45_ids; + unsigned int is_c45: 1; + unsigned int is_internal: 1; + unsigned int is_pseudo_fixed_link: 1; + unsigned int is_gigabit_capable: 1; + unsigned int has_fixups: 1; + unsigned int suspended: 1; + unsigned int suspended_by_mdio_bus: 1; + unsigned int sysfs_links: 1; + unsigned int loopback_enabled: 1; + unsigned int downshifted_rate: 1; + unsigned int is_on_sfp_module: 1; + unsigned int mac_managed_pm: 1; + unsigned int wol_enabled: 1; + unsigned int autoneg: 1; + unsigned int link: 1; + unsigned int autoneg_complete: 1; + unsigned int interrupts: 1; + unsigned int irq_suspended: 1; + unsigned int irq_rerun: 1; + unsigned int default_timestamp: 1; + int rate_matching; + enum phy_state state; + u32 dev_flags; + phy_interface_t interface; + long unsigned int possible_interfaces[1]; + int speed; + int duplex; + int port; + int pause; + int asym_pause; + u8 master_slave_get; + u8 master_slave_set; + u8 master_slave_state; + long unsigned int supported[2]; + long unsigned int advertising[2]; + long unsigned int lp_advertising[2]; + long unsigned int adv_old[2]; + long unsigned int supported_eee[2]; + long unsigned int advertising_eee[2]; + long unsigned int eee_broken_modes[2]; + bool enable_tx_lpi; + bool eee_active; + struct eee_config eee_cfg; + long unsigned int host_interfaces[1]; + struct phy_led_trigger *phy_led_triggers; + unsigned int phy_num_led_triggers; + struct phy_led_trigger *last_triggered; + struct phy_led_trigger *led_link_trigger; + struct list_head leds; + int irq; + void *priv; + struct phy_package_shared *shared; + struct sk_buff *skb; + void *ehdr; + struct nlattr *nest; + struct delayed_work state_queue; + struct mutex lock; + bool sfp_bus_attached; + struct sfp_bus *sfp_bus; + struct phylink *phylink; + struct net_device *attached_dev; + struct mii_timestamper *mii_ts; + struct pse_control *psec; + u8 mdix; + u8 mdix_ctrl; + int pma_extable; + unsigned int link_down_events; + void (*phy_link_change)(struct phy_device *, bool); + void (*adjust_link)(struct net_device *); + const struct macsec_ops *macsec_ops; +}; + +struct phy_device_node { + enum phy_upstream upstream_type; + union { + struct net_device *netdev; + struct phy_device *phydev; + } upstream; + struct sfp_bus *parent_sfp_bus; + struct phy_device *phy; +}; + +struct phy_devm { + struct usb_phy *phy; + struct notifier_block *nb; +}; + +struct phy_driver { + struct mdio_driver_common mdiodrv; + u32 phy_id; + char *name; + u32 phy_id_mask; + const long unsigned int * 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 *); + unsigned int (*inband_caps)(struct phy_device *, phy_interface_t); + int (*config_inband)(struct phy_device *, unsigned int); + 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 *); + void (*get_phy_stats)(struct phy_device *, struct ethtool_eth_phy_stats *, struct ethtool_phy_stats *); + void (*get_link_stats)(struct phy_device *, struct ethtool_link_ext_stats *); + int (*update_stats)(struct phy_device *); + int (*get_sset_count)(struct phy_device *); + void (*get_strings)(struct phy_device *, u8 *); + void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); + int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); + int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); + int (*set_loopback)(struct phy_device *, bool); + int (*get_sqi)(struct phy_device *); + int (*get_sqi_max)(struct phy_device *); + int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); + int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); + int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); + int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); + int (*led_blink_set)(struct phy_device *, u8, long unsigned int *, long unsigned int *); + int (*led_hw_is_supported)(struct phy_device *, u8, long unsigned int); + int (*led_hw_control_set)(struct phy_device *, u8, long unsigned int); + int (*led_hw_control_get)(struct phy_device *, u8, long unsigned int *); + int (*led_polarity_set)(struct phy_device *, int, long unsigned int); +}; + +struct phy_fixup { + struct list_head list; + char bus_id[64]; + u32 phy_uid; + u32 phy_uid_mask; + int (*run)(struct phy_device *); +}; + +struct phy_led_trigger { + struct led_trigger trigger; + char name[76]; + unsigned int speed; +}; + +struct phy_link_topology { + struct xarray phys; + u32 next_phy_index; +}; + +struct phy_lookup { + struct list_head node; + const char *dev_id; + const char *con_id; + struct phy *phy; +}; + +struct phy_ops { + int (*init)(struct phy *); + int (*exit)(struct phy *); + int (*power_on)(struct phy *); + int (*power_off)(struct phy *); + int (*set_mode)(struct phy *, enum phy_mode, int); + int (*set_media)(struct phy *, enum phy_media); + int (*set_speed)(struct phy *, int); + int (*configure)(struct phy *, union phy_configure_opts *); + int (*validate)(struct phy *, enum phy_mode, int, union phy_configure_opts *); + int (*reset)(struct phy *); + int (*calibrate)(struct phy *); + int (*connect)(struct phy *, int); + int (*disconnect)(struct phy *, int); + void (*release)(struct phy *); + struct module *owner; +}; + +struct phy_package_shared { + u8 base_addr; + struct device_node *np; + refcount_t refcnt; + long unsigned int flags; + size_t priv_size; + void *priv; +}; + +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 phy_provider { + struct device *dev; + struct device_node *children; + struct module *owner; + struct list_head list; + struct phy * (*of_xlate)(struct device *, const struct of_phandle_args *); +}; + +struct phy_req_info { + struct ethnl_req_info base; + struct phy_device_node *pdn; +}; + +struct phy_setting { + u32 speed; + u8 duplex; + u8 bit; +}; + +struct phy_tdr_config { + u32 first; + u32 last; + u32 step; + s8 pair; +}; + +struct phylib_stubs { + int (*hwtstamp_get)(struct phy_device *, struct kernel_hwtstamp_config *); + int (*hwtstamp_set)(struct phy_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); + void (*get_phy_stats)(struct phy_device *, struct ethtool_eth_phy_stats *, struct ethtool_phy_stats *); + void (*get_link_ext_stats)(struct phy_device *, struct ethtool_link_ext_stats *); +}; + +struct phylink_link_state { + long unsigned int advertising[2]; + long unsigned int lp_advertising[2]; + phy_interface_t interface; + int speed; + int duplex; + int pause; + int rate_matching; + unsigned int link: 1; + unsigned int an_complete: 1; +}; + +struct phylink_pcs; + +struct phylink_mac_ops { + long unsigned int (*mac_get_caps)(struct phylink_config *, phy_interface_t); + struct phylink_pcs * (*mac_select_pcs)(struct phylink_config *, phy_interface_t); + int (*mac_prepare)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_config)(struct phylink_config *, unsigned int, const struct phylink_link_state *); + int (*mac_finish)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_link_down)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_link_up)(struct phylink_config *, struct phy_device *, unsigned int, phy_interface_t, int, int, bool, bool); + void (*mac_disable_tx_lpi)(struct phylink_config *); + int (*mac_enable_tx_lpi)(struct phylink_config *, u32, bool); +}; + +struct phylink_pcs_ops; + +struct phylink_pcs { + long unsigned int supported_interfaces[1]; + const struct phylink_pcs_ops *ops; + struct phylink *phylink; + bool neg_mode; + bool poll; + bool rxc_always_on; +}; + +struct phylink_pcs_ops { + int (*pcs_validate)(struct phylink_pcs *, long unsigned int *, const struct phylink_link_state *); + unsigned int (*pcs_inband_caps)(struct phylink_pcs *, phy_interface_t); + int (*pcs_enable)(struct phylink_pcs *); + void (*pcs_disable)(struct phylink_pcs *); + void (*pcs_pre_config)(struct phylink_pcs *, phy_interface_t); + int (*pcs_post_config)(struct phylink_pcs *, phy_interface_t); + void (*pcs_get_state)(struct phylink_pcs *, unsigned int, struct phylink_link_state *); + int (*pcs_config)(struct phylink_pcs *, unsigned int, phy_interface_t, const long unsigned int *, bool); + void (*pcs_an_restart)(struct phylink_pcs *); + void (*pcs_link_up)(struct phylink_pcs *, unsigned int, phy_interface_t, int, int); + int (*pcs_pre_init)(struct phylink_pcs *); +}; + +struct phys_vec { + phys_addr_t paddr; + u32 len; +}; + +struct physdev_apic { + long unsigned int apic_physbase; + uint32_t reg; + uint32_t value; +}; + +struct physdev_dbgp_op { + uint8_t op; + uint8_t bus; + union { + struct physdev_pci_device pci; + } u; +}; + +struct physdev_eoi { + uint32_t irq; +}; + +struct physdev_get_free_pirq { + int type; + uint32_t pirq; +}; + +struct physdev_irq { + uint32_t irq; + uint32_t vector; +}; + +struct physdev_irq_status_query { + uint32_t irq; + uint32_t flags; +}; + +struct physdev_manage_pci { + uint8_t bus; + uint8_t devfn; +}; + +struct physdev_manage_pci_ext { + uint8_t bus; + uint8_t devfn; + unsigned int is_extfn; + unsigned int is_virtfn; + struct { + uint8_t bus; + uint8_t devfn; + } physfn; +}; + +struct physdev_map_pirq { + domid_t domid; + int type; + int index; + int pirq; + int bus; + int devfn; + int entry_nr; + uint64_t table_base; +}; + +struct physdev_pci_device_add { + uint16_t seg; + uint8_t bus; + uint8_t devfn; + uint32_t flags; + struct { + uint8_t bus; + uint8_t devfn; + } physfn; + uint32_t optarr[0]; +}; + +struct physdev_pci_mmcfg_reserved { + uint64_t address; + uint16_t segment; + uint8_t start_bus; + uint8_t end_bus; + uint32_t flags; +}; + +struct physdev_pirq_eoi_gmfn { + xen_ulong_t gmfn; +}; + +struct physdev_restore_msi { + uint8_t bus; + uint8_t devfn; +}; + +struct physdev_set_iobitmap { + uint8_t *bitmap; + uint32_t nr_ports; +}; + +struct physdev_set_iopl { + uint32_t iopl; +}; + +struct physdev_setup_gsi { + int gsi; + uint8_t triggering; + uint8_t polarity; +}; + +struct physdev_unmap_pirq { + domid_t domid; + int pirq; +}; + +struct upid { + int nr; + struct pid_namespace *ns; +}; + +struct pid { + refcount_t count; + unsigned int level; + spinlock_t lock; + struct dentry *stashed; + u64 ino; + struct rb_node pidfs_node; + struct hlist_head tasks[4]; + struct hlist_head inodes; + wait_queue_head_t wait_pidfd; + struct callback_head rcu; + struct upid numbers[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 *); + int lsmid; +}; + +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 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; + int pid_max; + struct pid_namespace *parent; + struct fs_pin *bacct; + struct user_namespace *user_ns; + struct ucounts *ucounts; + int reboot; + struct ns_common ns; + struct work_struct work; + struct ctl_table_set set; + struct ctl_table_header *sysctls; + int memfd_noexec_scope; +}; + +struct pidfd_info { + __u64 mask; + __u64 cgroupid; + __u32 pid; + __u32 tgid; + __u32 ppid; + __u32 ruid; + __u32 rgid; + __u32 euid; + __u32 egid; + __u32 suid; + __u32 sgid; + __u32 fsuid; + __u32 fsgid; + __u32 spare0[1]; +}; + +struct pids_cgroup { + struct cgroup_subsys_state css; + atomic64_t counter; + atomic64_t limit; + int64_t watermark; + struct cgroup_file events_file; + struct cgroup_file events_local_file; + atomic64_t events[2]; + atomic64_t events_local[2]; +}; + +struct piix_host_priv { + const int *map; + u32 saved_iocfg; + void *sidpr; +}; + +struct piix_map_db { + const u32 mask; + const u16 port_enable; + const int map[0]; +}; + +struct pimreghdr { + __u8 type; + __u8 reserved; + __be16 csum; + __be32 flags; +}; + +struct pin_config_item { + const enum pin_config_param param; + const char * const display; + const char * const format; + bool has_arg; +}; + +struct pinctrl_setting_mux; + +struct pin_desc { + struct pinctrl_dev *pctldev; + const char *name; + bool dynamic_name; + void *drv_data; + unsigned int mux_usecount; + const char *mux_owner; + const struct pinctrl_setting_mux *mux_setting; + const char *gpio_owner; + struct mutex mux_lock; +}; + +struct pinconf_generic_params { + const char * const property; + enum pin_config_param param; + u32 default_value; +}; + +struct pinconf_ops { + bool is_generic; + int (*pin_config_get)(struct pinctrl_dev *, unsigned int, long unsigned int *); + int (*pin_config_set)(struct pinctrl_dev *, unsigned int, long unsigned int *, unsigned int); + int (*pin_config_group_get)(struct pinctrl_dev *, unsigned int, long unsigned int *); + int (*pin_config_group_set)(struct pinctrl_dev *, unsigned int, long unsigned int *, unsigned int); + void (*pin_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + void (*pin_config_group_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + void (*pin_config_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, long unsigned int); +}; + +struct pinctrl { + struct list_head node; + struct device *dev; + struct list_head states; + struct pinctrl_state *state; + struct list_head dt_maps; + struct kref users; +}; + +struct pinctrl_dev { + struct list_head node; + struct pinctrl_desc *desc; + struct xarray pin_desc_tree; + struct list_head gpio_ranges; + struct device *dev; + struct module *owner; + void *driver_data; + struct pinctrl *p; + struct pinctrl_state *hog_default; + struct pinctrl_state *hog_sleep; + struct mutex mutex; + struct dentry *device_root; +}; + +struct pinctrl_map_mux { + const char *group; + const char *function; +}; + +struct pinctrl_map_configs { + const char *group_or_pin; + long unsigned int *configs; + unsigned int num_configs; +}; + +struct pinctrl_map { + const char *dev_name; + const char *name; + enum pinctrl_map_type type; + const char *ctrl_dev_name; + union { + struct pinctrl_map_mux mux; + struct pinctrl_map_configs configs; + } data; +}; + +struct pinctrl_maps { + struct list_head node; + const struct pinctrl_map *maps; + unsigned int num_maps; +}; + +struct pinctrl_ops { + int (*get_groups_count)(struct pinctrl_dev *); + const char * (*get_group_name)(struct pinctrl_dev *, unsigned int); + int (*get_group_pins)(struct pinctrl_dev *, unsigned int, const unsigned int **, unsigned int *); + void (*pin_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + int (*dt_node_to_map)(struct pinctrl_dev *, struct device_node *, struct pinctrl_map **, unsigned int *); + void (*dt_free_map)(struct pinctrl_dev *, struct pinctrl_map *, unsigned int); +}; + +struct pinctrl_pin_desc { + unsigned int number; + const char *name; + void *drv_data; +}; + +struct pinctrl_setting_mux { + unsigned int group; + unsigned int func; +}; + +struct pinctrl_setting_configs { + unsigned int group_or_pin; + long unsigned int *configs; + unsigned int num_configs; +}; + +struct pinctrl_setting { + struct list_head node; + enum pinctrl_map_type type; + struct pinctrl_dev *pctldev; + const char *dev_name; + union { + struct pinctrl_setting_mux mux; + struct pinctrl_setting_configs configs; + } data; +}; + +struct pinctrl_state { + struct list_head node; + const char *name; + struct list_head settings; +}; + +struct ping_iter_state { + struct seq_net_private p; + int bucket; + sa_family_t family; +}; + +struct ping_table { + struct hlist_head hash[64]; + spinlock_t lock; +}; + +struct pingfakehdr { + struct icmphdr icmph; + struct msghdr *msg; + sa_family_t family; + __wsum wcheck; +}; + +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 pinmux_ops { + int (*request)(struct pinctrl_dev *, unsigned int); + int (*free)(struct pinctrl_dev *, unsigned int); + int (*get_functions_count)(struct pinctrl_dev *); + const char * (*get_function_name)(struct pinctrl_dev *, unsigned int); + int (*get_function_groups)(struct pinctrl_dev *, unsigned int, const char * const **, unsigned int *); + int (*set_mux)(struct pinctrl_dev *, unsigned int, unsigned int); + int (*gpio_request_enable)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); + void (*gpio_disable_free)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); + int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); + bool strict; +}; + +struct pipe_buf_operations { + int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *); + void (*release)(struct pipe_inode_info *, struct pipe_buffer *); + bool (*try_steal)(struct pipe_inode_info *, struct pipe_buffer *); + bool (*get)(struct pipe_inode_info *, struct pipe_buffer *); +}; + +struct pipe_buffer { + struct page *page; + unsigned int offset; + unsigned int len; + const struct pipe_buf_operations *ops; + unsigned int flags; + long unsigned int private; +}; + +union pipe_index { + long unsigned int head_tail; + struct { + pipe_index_t head; + pipe_index_t tail; + }; +}; + +struct watch_queue; + +struct pipe_inode_info { + struct mutex mutex; + wait_queue_head_t rd_wait; + wait_queue_head_t wr_wait; + union { + long unsigned int head_tail; + struct { + pipe_index_t head; + pipe_index_t 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; + bool note_loss; + struct page *tmp_page; + struct fasync_struct *fasync_readers; + struct fasync_struct *fasync_writers; + struct pipe_buffer *bufs; + struct user_struct *user; + struct watch_queue *watch_queue; +}; + +struct pipe_wait { + struct trace_iterator *iter; + int wait_index; +}; + +struct pkcs1pad_ctx { + struct crypto_akcipher *child; + unsigned int key_size; +}; + +struct pkcs1pad_inst_ctx { + struct crypto_akcipher_spawn spawn; +}; + +struct pkcs1pad_request { + struct scatterlist in_sg[2]; + struct scatterlist out_sg[1]; + uint8_t *in_buf; + uint8_t *out_buf; + struct akcipher_request child_req; +}; + +struct 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 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; + long unsigned int 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 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; + long unsigned int aa_set; + time64_t signing_time; + struct public_key_signature *sig; +}; + +struct pkey_security_struct { + u64 subnet_prefix; + u16 pkey; + u32 sid; +}; + +struct pkru_state { + u32 pkru; + u32 pad; +}; + +struct plat_serial8250_port { + long unsigned int iobase; + void *membase; + resource_size_t mapbase; + resource_size_t mapsize; + unsigned int uartclk; + unsigned int irq; + long unsigned int irqflags; + void *private_data; + unsigned char regshift; + unsigned char iotype; + unsigned char hub6; + unsigned char has_sysrq; + unsigned int type; + upf_t flags; + u16 bugs; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); +}; + +struct platform_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; + +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 platform_driver { + int (*probe)(struct platform_device *); + void (*remove)(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 platform_hibernation_ops { + int (*begin)(pm_message_t); + void (*end)(void); + int (*pre_snapshot)(void); + void (*finish)(void); + int (*prepare)(void); + int (*enter)(void); + void (*leave)(void); + int (*pre_restore)(void); + void (*restore_cleanup)(void); + void (*recover)(void); +}; + +struct platform_object { + struct platform_device pdev; + char name[0]; +}; + +struct platform_s2idle_ops { + int (*begin)(void); + int (*prepare)(void); + int (*prepare_late)(void); + void (*check)(void); + bool (*wake)(void); + void (*restore_early)(void); + void (*restore)(void); + void (*end)(void); +}; + +struct platform_suspend_ops { + int (*valid)(suspend_state_t); + int (*begin)(suspend_state_t); + int (*prepare)(void); + int (*prepare_late)(void); + int (*enter)(suspend_state_t); + void (*wake)(void); + void (*finish)(void); + bool (*suspend_again)(void); + void (*end)(void); + void (*recover)(void); +}; + +struct plca_reply_data { + struct ethnl_reply_data base; + struct phy_plca_cfg plca_cfg; + struct phy_plca_status plca_st; +}; + +struct pldm_pci_record_id { + int vendor; + int device; + int subsystem_vendor; + int subsystem_device; +}; + +struct pldmfw_ops; + +struct pldmfw { + const struct pldmfw_ops *ops; + struct device *dev; + u16 component_identifier; + enum pldmfw_update_mode mode; +}; + +struct pldmfw_component { + struct list_head entry; + u16 classification; + u16 identifier; + u16 options; + u16 activation_method; + u32 comparison_stamp; + u32 component_size; + const u8 *component_data; + const u8 *version_string; + u8 version_type; + u8 version_len; + u8 index; +}; + +struct pldmfw_desc_tlv { + struct list_head entry; + const u8 *data; + u16 type; + u16 size; +}; + +struct pldmfw_record; + +struct pldmfw_ops { + bool (*match_record)(struct pldmfw *, struct pldmfw_record *); + int (*send_package_data)(struct pldmfw *, const u8 *, u16); + int (*send_component_table)(struct pldmfw *, struct pldmfw_component *, u8); + int (*flash_component)(struct pldmfw *, struct pldmfw_component *); + int (*finalize_update)(struct pldmfw *); +}; + +struct pldmfw_priv { + struct pldmfw *context; + const struct firmware *fw; + size_t offset; + struct list_head records; + struct list_head components; + const struct __pldm_header *header; + u16 total_header_size; + u16 component_bitmap_len; + u16 bitmap_size; + u16 component_count; + const u8 *component_start; + const u8 *record_start; + u8 record_count; + u32 header_crc; + struct pldmfw_record *matching_record; +}; + +struct pldmfw_record { + struct list_head entry; + struct list_head descs; + const u8 *version_string; + u8 version_type; + u8 version_len; + u16 package_data_len; + u32 device_update_flags; + const u8 *package_data; + long unsigned int *component_bitmap; + u16 component_bitmap_len; +}; + +struct pm860x_backlight_pdata { + int pwm; + int iset; +}; + +struct pm860x_chip { + struct device *dev; + struct mutex irq_lock; + struct mutex osc_lock; + struct i2c_client *client; + struct i2c_client *companion; + struct regmap *regmap; + struct regmap *regmap_companion; + int buck3_double; + int companion_addr; + short unsigned int osc_vote; + int id; + int irq_mode; + int irq_base; + int core_irq; + unsigned char chip_version; + unsigned char osc_status; + unsigned int wakeup_flag; +}; + +struct pm860x_irq_data { + int reg; + int mask_reg; + int enable; + int offs; +}; + +struct pm860x_led_pdata { + int iset; +}; + +struct pm860x_rtc_pdata; + +struct pm860x_touch_pdata; + +struct pm860x_power_pdata; + +struct pm860x_platform_data { + struct pm860x_backlight_pdata *backlight; + struct pm860x_led_pdata *led; + struct pm860x_rtc_pdata *rtc; + struct pm860x_touch_pdata *touch; + struct pm860x_power_pdata *power; + struct regulator_init_data *buck1; + struct regulator_init_data *buck2; + struct regulator_init_data *buck3; + struct regulator_init_data *ldo1; + struct regulator_init_data *ldo2; + struct regulator_init_data *ldo3; + struct regulator_init_data *ldo4; + struct regulator_init_data *ldo5; + struct regulator_init_data *ldo6; + struct regulator_init_data *ldo7; + struct regulator_init_data *ldo8; + struct regulator_init_data *ldo9; + struct regulator_init_data *ldo10; + struct regulator_init_data *ldo12; + struct regulator_init_data *ldo_vibrator; + struct regulator_init_data *ldo14; + struct charger_desc *chg_desc; + int companion_addr; + int i2c_port; + int irq_mode; + int irq_base; + int num_leds; + int num_backlights; +}; + +struct pm860x_power_pdata { + int max_capacity; + int resistor; +}; + +struct pm860x_rtc_pdata { + int (*sync)(unsigned int); + int vrtc; +}; + +struct pm860x_touch_pdata { + int gpadc_prebias; + int slot_cycle; + int off_scale; + int sw_cal; + int tsi_prebias; + int pen_prebias; + int pen_prechg; + int res_x; + long unsigned int flags; +}; + +struct pm_clk_notifier_block { + struct notifier_block nb; + struct dev_pm_domain *pm_domain; + char *con_ids[0]; +}; + +struct pm_clock_entry { + struct list_head node; + char *con_id; + struct clk *clk; + enum pce_status status; + bool enabled_when_prepared; +}; + +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; + long unsigned int id_bitmap[4]; +}; + +struct pm_qos_request { + struct plist_node node; + struct pm_qos_constraints *qos; +}; + +struct pm_subsys_data { + spinlock_t lock; + unsigned int refcount; + unsigned int clock_op_might_sleep; + struct mutex clock_mutex; + struct list_head clock_list; + struct pm_domain_data *domain_data; +}; + +struct pm_vt_switch { + struct list_head head; + struct device *dev; + bool required; +}; + +struct pmc_bit_map { + const char *name; + u32 bit_mask; +}; + +struct pmc_clk { + const char *name; + long unsigned int freq; + const char *parent_name; +}; + +struct pmc_clk_data { + void *base; + const struct pmc_clk *clks; + bool critical; +}; + +struct pmc_reg_map; + +struct pmc_data { + const struct pmc_reg_map *map; + const struct pmc_clk *clks; +}; + +struct pmc_dev { + u32 base_addr; + void *regmap; + const struct pmc_reg_map *map; + struct dentry *dbgfs_dir; + bool init; +}; + +struct pmc_reg_map { + const struct pmc_bit_map *d3_sts_0; + const struct pmc_bit_map *d3_sts_1; + const struct pmc_bit_map *func_dis; + const struct pmc_bit_map *func_dis_2; + const struct pmc_bit_map *pss; +}; + +struct pmic_table { + int address; + int reg; + int bit; +}; + +struct pmu_event_list { + raw_spinlock_t lock; + struct list_head list; +}; + +struct pmu_mode { + const char *name; + uint32_t mode; +}; + +struct pneigh_entry { + struct pneigh_entry *next; + possible_net_t net; + struct net_device *dev; + netdevice_tracker dev_tracker; + u32 flags; + u8 protocol; + u32 key[0]; +}; + +struct pnfs_commit_ops; + +struct pnfs_ds_commit_info { + struct list_head commits; + unsigned int nwritten; + unsigned int ncommitting; + const struct pnfs_commit_ops *ops; +}; + +struct pnp_protocol; + +struct pnp_id; + +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_card_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; + struct { + __u8 id[8]; + } devs[8]; +}; + +struct pnp_device_id; + +struct pnp_driver { + const char *name; + const struct pnp_device_id *id_table; + unsigned int flags; + int (*probe)(struct pnp_dev *, const struct pnp_device_id *); + void (*remove)(struct pnp_dev *); + void (*shutdown)(struct pnp_dev *); + int (*suspend)(struct pnp_dev *, pm_message_t); + int (*resume)(struct pnp_dev *); + struct device_driver driver; +}; + +struct pnp_card_link; + +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_link { + struct pnp_card *card; + struct pnp_card_driver *driver; + void *driver_data; + pm_message_t pm_state; +}; + +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_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; +}; + +struct pnp_dma { + unsigned char map; + unsigned char flags; +}; + +struct pnp_fixup { + char id[8]; + void (*quirk_function)(struct pnp_dev *); +}; + +struct pnp_id { + char id[8]; + struct pnp_id *next; +}; + +struct pnp_info_buffer { + char *buffer; + char *curr; + long unsigned int size; + long unsigned int len; + int stop; + int error; +}; + +typedef struct pnp_info_buffer pnp_info_buffer_t; + +struct pnp_irq { + pnp_irq_mask_t 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_port { + 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; + long unsigned int type; + union { + struct pnp_port port; + struct pnp_irq irq; + struct pnp_dma dma; + struct pnp_mem mem; + } u; +}; + +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_resource { + struct list_head list; + struct resource res; +}; + +struct policy_file; + +struct policy_data { + struct policydb *p; + struct policy_file *fp; +}; + +struct policy_file { + char *data; + size_t len; +}; + +struct policy_load_memory { + size_t len; + void *data; +}; + +struct role_datum; + +struct user_datum; + +struct type_datum; + +struct role_allow; + +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 policydb_compat_info { + unsigned int version; + unsigned int sym_num; + unsigned int ocon_num; +}; + +struct pollfd { + int fd; + short int events; + short int revents; +}; + +struct poll_list { + struct poll_list *next; + unsigned int len; + struct pollfd entries[0]; +}; + +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_table_page *next; + struct poll_table_entry *entry; + struct poll_table_entry entries[0]; +}; + +struct poll_wqueues { + poll_table pt; + struct poll_table_page *table; + struct task_struct *polling_task; + int triggered; + int error; + int inline_index; + struct poll_table_entry inline_entries[9]; +}; + +struct worker_pool; + +struct pool_workqueue { + struct worker_pool *pool; + struct workqueue_struct *wq; + int work_color; + int flush_color; + int refcnt; + int nr_in_flight[16]; + bool plugged; + int nr_active; + struct list_head inactive_works; + struct list_head pending_node; + struct list_head pwqs_node; + struct list_head mayday_node; + u64 stats[8]; + struct kthread_work release_work; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct port_stats { + long unsigned int bytes_sent; + long unsigned int bytes_received; + long unsigned int bytes_discarded; +}; + +struct ports_device; + +struct port_buffer; + +struct virtqueue; + +struct port { + struct list_head list; + struct ports_device *portdev; + struct port_buffer *inbuf; + spinlock_t inbuf_lock; + spinlock_t outvq_lock; + struct virtqueue *in_vq; + struct virtqueue *out_vq; + struct dentry *debugfs_file; + struct port_stats stats; + struct console___2 cons; + struct cdev *cdev; + struct device *dev; + struct kref kref; + wait_queue_head_t waitqueue; + char *name; + struct fasync_struct *async_queue; + u32 id; + bool outvq_full; + bool host_connected; + bool guest_connected; +}; + +struct 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 port_identity { + struct clock_identity clock_identity; + __be16 port_number; +}; + +struct portdrv_service_data { + struct pcie_port_service_driver *drv; + struct device *dev; + u32 service; +}; + +struct virtio_console_control { + __virtio32 id; + __virtio16 event; + __virtio16 value; +}; + +struct virtio_device; + +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 ports_driver_data { + struct dentry *debugfs_dir; + struct list_head portdevs; + struct list_head consoles; +}; + +struct posix_acl_entry { + short int e_tag; + short unsigned int e_perm; + union { + kuid_t e_uid; + kgid_t e_gid; + }; +}; + +struct posix_acl { + refcount_t a_refcount; + unsigned int a_count; + struct callback_head a_rcu; + struct posix_acl_entry a_entries[0]; +}; + +struct posix_acl_xattr_entry { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; +}; + +struct posix_acl_xattr_header { + __le32 a_version; +}; + +struct posix_clock; + +struct posix_clock_context; + +struct posix_clock_operations { + struct module *owner; + int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *); + int (*clock_gettime)(struct posix_clock *, struct timespec64 *); + int (*clock_getres)(struct posix_clock *, struct timespec64 *); + int (*clock_settime)(struct posix_clock *, const struct timespec64 *); + long int (*ioctl)(struct posix_clock_context *, unsigned int, long unsigned int); + int (*open)(struct posix_clock_context *, fmode_t); + __poll_t (*poll)(struct posix_clock_context *, struct file *, poll_table *); + int (*release)(struct posix_clock_context *); + ssize_t (*read)(struct posix_clock_context *, uint, char *, size_t); +}; + +struct posix_clock { + struct posix_clock_operations ops; + struct cdev cdev; + struct device *dev; + struct rw_semaphore rwsem; + bool zombie; +}; + +struct posix_clock_context { + struct posix_clock *clk; + void *private_clkdata; +}; + +struct posix_clock_desc { + struct file *fp; + struct posix_clock *clk; +}; + +struct 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; + struct mutex mutex; + unsigned int scheduled; +}; + +struct posix_msg_tree_node { + struct rb_node rb_node; + struct list_head msg_list; + int priority; +}; + +struct postprocess_bh_ctx { + struct work_struct work; + struct buffer_head *bh; +}; + +struct power_actor { + u32 req_power; + u32 max_power; + u32 granted_power; + u32 extra_actor_power; + u32 weighted_req_power; +}; + +struct thermal_trip; + +struct power_allocator_params { + bool allocated_tzp; + bool update_cdevs; + s64 err_integral; + s32 prev_err; + u32 sustainable_power; + const struct thermal_trip *trip_switch_on; + const struct thermal_trip *trip_max; + int total_weight; + unsigned int num_actors; + unsigned int buffer_size; + struct power_actor *power; +}; + +struct power_supply_battery_info; + +struct power_supply { + const struct power_supply_desc *desc; + char **supplied_to; + size_t num_supplicants; + char **supplied_from; + size_t num_supplies; + struct device_node *of_node; + void *drv_data; + struct device dev; + struct work_struct changed_work; + struct delayed_work deferred_register_work; + spinlock_t changed_lock; + bool changed; + bool update_groups; + bool initialized; + bool removing; + atomic_t use_cnt; + struct power_supply_battery_info *battery_info; + struct rw_semaphore extensions_sem; + struct list_head extensions; + struct thermal_zone_device *tzd; + struct thermal_cooling_device *tcd; + struct led_trigger *trig; + struct led_trigger *charging_trig; + struct led_trigger *full_trig; + struct led_trigger *charging_blink_full_solid_trig; + struct led_trigger *charging_orange_full_green_trig; +}; + +struct power_supply_attr { + const char *prop_name; + char attr_name[31]; + struct device_attribute dev_attr; + const char * const *text_values; + int text_values_len; +}; + +struct power_supply_maintenance_charge_table; + +struct power_supply_battery_ocv_table; + +struct power_supply_resistance_temp_table; + +struct power_supply_vbat_ri_table; + +struct power_supply_battery_info { + unsigned int technology; + int energy_full_design_uwh; + int charge_full_design_uah; + int voltage_min_design_uv; + int voltage_max_design_uv; + int tricklecharge_current_ua; + int precharge_current_ua; + int precharge_voltage_max_uv; + int charge_term_current_ua; + int charge_restart_voltage_uv; + int overvoltage_limit_uv; + int constant_charge_current_max_ua; + int constant_charge_voltage_max_uv; + const 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; + const struct power_supply_battery_ocv_table *ocv_table[20]; + int ocv_table_size[20]; + const struct power_supply_resistance_temp_table *resist_table; + int resist_table_size; + const struct power_supply_vbat_ri_table *vbat2ri_discharging; + int vbat2ri_discharging_size; + const struct power_supply_vbat_ri_table *vbat2ri_charging; + int vbat2ri_charging_size; + int bti_resistance_ohm; + int bti_resistance_tolerance; +}; + +struct power_supply_battery_ocv_table { + int ocv; + int capacity; +}; + +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; + bool no_wakeup_source; +}; + +struct power_supply_ext { + const char * const name; + u8 charge_behaviours; + const enum power_supply_property *properties; + size_t num_properties; + int (*get_property)(struct power_supply *, const struct power_supply_ext *, void *, enum power_supply_property, union power_supply_propval *); + int (*set_property)(struct power_supply *, const struct power_supply_ext *, void *, enum power_supply_property, const union power_supply_propval *); + int (*property_is_writeable)(struct power_supply *, const struct power_supply_ext *, void *, enum power_supply_property); +}; + +struct power_supply_ext_registration { + struct list_head list_head; + const struct power_supply_ext *ext; + struct device *dev; + void *data; +}; + +struct power_supply_hwmon { + struct power_supply *psy; + long unsigned int *props; +}; + +struct power_supply_led_trigger { + struct led_trigger trig; + struct power_supply *psy; +}; + +struct power_supply_maintenance_charge_table { + int charge_current_max_ua; + int charge_voltage_max_uv; + int charge_safety_timer_minutes; +}; + +union power_supply_propval { + int intval; + const char *strval; +}; + +struct power_supply_resistance_temp_table { + int temp; + int resistance; +}; + +struct power_supply_vbat_ri_table { + int vbat_uv; + int ri_uohm; +}; + +struct powercap_constraint_attr { + struct device_attribute power_limit_attr; + struct device_attribute time_window_attr; + struct device_attribute max_power_attr; + struct device_attribute min_power_attr; + struct device_attribute max_time_window_attr; + struct device_attribute min_time_window_attr; + struct device_attribute name_attr; +}; + +struct powercap_control_type_ops; + +struct powercap_control_type { + struct device dev; + struct idr idr; + int nr_zones; + const struct powercap_control_type_ops *ops; + struct mutex lock; + bool allocated; + struct list_head node; +}; + +struct powercap_control_type_ops { + int (*set_enable)(struct powercap_control_type *, bool); + int (*get_enable)(struct powercap_control_type *, bool *); + int (*release)(struct powercap_control_type *); +}; + +struct powercap_zone_ops; + +struct powercap_zone_constraint; + +struct powercap_zone { + int id; + char *name; + void *control_type_inst; + const struct powercap_zone_ops *ops; + struct device dev; + int const_id_cnt; + struct idr idr; + struct idr *parent_idr; + void *private_data; + struct attribute **zone_dev_attrs; + int zone_attr_count; + struct attribute_group dev_zone_attr_group; + const struct attribute_group *dev_attr_groups[2]; + bool allocated; + struct powercap_zone_constraint *constraints; +}; + +struct powercap_zone_constraint_ops; + +struct powercap_zone_constraint { + int id; + struct powercap_zone *power_zone; + const struct powercap_zone_constraint_ops *ops; +}; + +struct powercap_zone_constraint_ops { + int (*set_power_limit_uw)(struct powercap_zone *, int, u64); + int (*get_power_limit_uw)(struct powercap_zone *, int, u64 *); + int (*set_time_window_us)(struct powercap_zone *, int, u64); + int (*get_time_window_us)(struct powercap_zone *, int, u64 *); + int (*get_max_power_uw)(struct powercap_zone *, int, u64 *); + int (*get_min_power_uw)(struct powercap_zone *, int, u64 *); + int (*get_max_time_window_us)(struct powercap_zone *, int, u64 *); + int (*get_min_time_window_us)(struct powercap_zone *, int, u64 *); + const char * (*get_name)(struct powercap_zone *, int); +}; + +struct powercap_zone_ops { + int (*get_max_energy_range_uj)(struct powercap_zone *, u64 *); + int (*get_energy_uj)(struct powercap_zone *, u64 *); + int (*reset_energy_uj)(struct powercap_zone *); + int (*get_max_power_range_uw)(struct powercap_zone *, u64 *); + int (*get_power_uw)(struct powercap_zone *, u64 *); + int (*set_enable)(struct powercap_zone *, bool); + int (*get_enable)(struct powercap_zone *, bool *); + int (*release)(struct powercap_zone *); +}; + +struct powernow_k8_data { + unsigned int cpu; + u32 numps; + u32 batps; + u32 rvo; + u32 irt; + u32 vidmvs; + u32 vstable; + u32 plllock; + u32 exttype; + u32 currvid; + u32 currfid; + struct cpufreq_frequency_table *powernow_table; + struct acpi_processor_performance acpi_data; + struct cpumask *available_cores; +}; + +struct powernowk8_target_arg { + struct cpufreq_policy *pol; + unsigned int newstate; +}; + +struct ppe { + __be16 lv_ix; + short unsigned int res2; + short unsigned int res4; + __be16 lp_ix; + short unsigned int res8[12]; +}; + +struct ppin_info { + int feature; + int msr_ppin_ctl; + int msr_ppin; +}; + +struct ppp_link_stats { + u64 rx_packets; + u64 tx_packets; + u64 rx_bytes; + u64 tx_bytes; +}; + +struct slcompress; + +struct ppp { + struct ppp_file file; + struct file *owner; + struct list_head channels; + int n_channels; + spinlock_t rlock; + spinlock_t wlock; + int *xmit_recursion; + int mru; + unsigned int flags; + unsigned int xstate; + unsigned int rstate; + int debug; + struct slcompress *vj; + enum NPmode npmode[6]; + struct sk_buff *xmit_pending; + struct compressor *xcomp; + void *xc_state; + struct compressor *rcomp; + void *rc_state; + long unsigned int last_xmit; + long unsigned int last_recv; + struct net_device *dev; + int closing; + int nxchan; + u32 nxseq; + int mrru; + u32 nextseq; + u32 minseq; + struct sk_buff_head mrq; + struct bpf_prog *pass_filter; + struct bpf_prog *active_filter; + struct net *ppp_net; + struct ppp_link_stats stats64; +}; + +struct ppp_channel_ops; + +struct ppp_channel { + void *private; + const struct ppp_channel_ops *ops; + int mtu; + int hdrlen; + void *ppp; + int speed; + int latency; +}; + +struct ppp_channel_ops { + int (*start_xmit)(struct ppp_channel *, struct sk_buff *); + int (*ioctl)(struct ppp_channel *, unsigned int, long unsigned int); + int (*fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *, const struct ppp_channel *); +}; + +struct ppp_comp_stats { + struct compstat c; + struct compstat d; +}; + +struct ppp_config { + struct file *file; + s32 unit; + bool ifname_is_set; +}; + +struct ppp_idle32 { + __s32 xmit_idle; + __s32 recv_idle; +}; + +struct ppp_idle64 { + __s64 xmit_idle; + __s64 recv_idle; +}; + +struct ppp_mp_skb_parm { + u32 sequence; + u8 BEbits; +}; + +struct ppp_net { + struct idr units_idr; + struct mutex all_ppp_mutex; + struct list_head all_channels; + struct list_head new_channels; + int last_channel_index; + spinlock_t all_channels_lock; +}; + +struct ppp_option_data { + __u8 *ptr; + __u32 length; + int transmit; +}; + +struct ppp_option_data32 { + compat_uptr_t ptr; + u32 length; + compat_int_t transmit; +}; + +struct pppstat { + __u32 ppp_discards; + __u32 ppp_ibytes; + __u32 ppp_ioctects; + __u32 ppp_ipackets; + __u32 ppp_ierrors; + __u32 ppp_ilqrs; + __u32 ppp_obytes; + __u32 ppp_ooctects; + __u32 ppp_opackets; + __u32 ppp_oerrors; + __u32 ppp_olqrs; +}; + +struct vjstat { + __u32 vjs_packets; + __u32 vjs_compressed; + __u32 vjs_searches; + __u32 vjs_misses; + __u32 vjs_uncompressedin; + __u32 vjs_compressedin; + __u32 vjs_errorin; + __u32 vjs_tossed; +}; + +struct ppp_stats { + struct pppstat p; + struct vjstat vj; +}; + +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 pps_bind_args { + int tsformat; + int edge; + int consumer; +}; + +struct pps_device; + +struct pps_source_info { + char name[32]; + char path[32]; + int mode; + void (*echo)(struct pps_device *, int, void *); + struct module *owner; + struct device *dev; +}; + +struct pps_ktime { + __s64 sec; + __s32 nsec; + __u32 flags; +}; + +struct pps_kparams { + int api_version; + int mode; + struct pps_ktime assert_off_tu; + struct pps_ktime clear_off_tu; +}; + +struct pps_device { + struct pps_source_info info; + struct pps_kparams params; + __u32 assert_sequence; + __u32 clear_sequence; + struct pps_ktime assert_tu; + struct pps_ktime clear_tu; + int current_mode; + unsigned int last_ev; + wait_queue_head_t queue; + unsigned int id; + const void *lookup_cookie; + struct device dev; + struct fasync_struct *async_queue; + spinlock_t lock; +}; + +struct pps_event_time { + struct timespec64 ts_real; +}; + +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_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)); + +struct pptp_gre_header { + struct gre_base_hdr gre_hd; + __be16 payload_len; + __be16 call_id; + __be32 seq; + __be32 ack; +}; + +struct pr_clear { + __u64 key; + __u32 flags; + __u32 __pad; +}; + +struct pr_cont_work_struct { + bool comma; + work_func_t func; + long int ctr; +}; + +struct pr_held_reservation { + u64 key; + u32 generation; + enum pr_type type; +}; + +struct pr_keys { + u32 generation; + u32 num_keys; + u64 keys[0]; +}; + +struct pr_ops { + int (*pr_register)(struct block_device *, u64, u64, u32); + int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32); + int (*pr_release)(struct block_device *, u64, enum pr_type); + int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool); + int (*pr_clear)(struct block_device *, u64); + int (*pr_read_keys)(struct block_device *, struct pr_keys *); + int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *); +}; + +struct pr_preempt { + __u64 old_key; + __u64 new_key; + __u32 type; + __u32 flags; +}; + +struct pr_registration { + __u64 old_key; + __u64 new_key; + __u32 flags; + __u32 __pad; +}; + +struct pr_reservation { + __u64 key; + __u32 type; + __u32 flags; +}; + +struct prb_data_blk_lpos { + long unsigned int begin; + long unsigned int next; +}; + +struct prb_data_block { + long unsigned int id; + char data[0]; +}; + +struct prb_data_ring { + unsigned int size_bits; + char *data; + atomic_long_t head_lpos; + atomic_long_t tail_lpos; +}; + +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_seq; +}; + +struct printk_ringbuffer; + +struct prb_reserved_entry { + struct printk_ringbuffer *rb; + long unsigned int irqflags; + long unsigned int id; + unsigned int text_space; +}; + +struct prctl_mm_map { + __u64 start_code; + __u64 end_code; + __u64 start_data; + __u64 end_data; + __u64 start_brk; + __u64 brk; + __u64 start_stack; + __u64 arg_start; + __u64 arg_end; + __u64 env_start; + __u64 env_end; + __u64 *auxv; + __u32 auxv_size; + __u32 exe_fd; +}; + +struct pre_voltage_change_data { + long unsigned int old_uV; + long unsigned int min_uV; + long unsigned int max_uV; +}; + +struct preempt_ops { + void (*sched_in)(struct preempt_notifier *, int); + void (*sched_out)(struct preempt_notifier *, struct task_struct *); +}; + +struct prefix_bits { + unsigned int shorted: 1; + unsigned int enlarged: 1; + unsigned int rexr: 1; + unsigned int rex: 1; +}; + +struct prefix_cacheinfo { + __u32 preferred_time; + __u32 valid_time; +}; + +struct prefix_info { + __u8 type; + __u8 length; + __u8 prefix_len; + union { + __u8 flags; + struct { + __u8 reserved: 4; + __u8 preferpd: 1; + __u8 routeraddr: 1; + __u8 autoconf: 1; + __u8 onlink: 1; + }; + }; + __be32 valid; + __be32 prefered; + __be32 reserved2; + struct in6_addr prefix; +}; + +struct prefixmsg { + unsigned char prefix_family; + unsigned char prefix_pad1; + short unsigned int prefix_pad2; + int prefix_ifindex; + unsigned char prefix_type; + unsigned char prefix_len; + unsigned char prefix_flags; + unsigned char prefix_pad3; +}; + +struct prepend_buffer { + char *buf; + int len; +}; + +struct print_entry { + struct trace_entry ent; + long unsigned int ip; + char buf[0]; +}; + +struct printf_spec { + unsigned char flags; + unsigned char base; + short int precision; + int field_width; +}; + +struct printk_info { + u64 seq; + u64 ts_nsec; + u16 text_len; + u8 facility; + u8 flags: 5; + u8 level: 3; + u32 caller_id; + struct dev_printk_info dev_info; +}; + +struct printk_message { + struct printk_buffers *pbufs; + unsigned int outbuf_len; + u64 seq; + long unsigned int dropped; +}; + +struct printk_record { + struct printk_info *info; + char *text_buf; + unsigned int text_buf_size; +}; + +struct printk_ringbuffer { + struct prb_desc_ring desc_ring; + struct prb_data_ring text_data_ring; + atomic_long_t fail; +}; + +struct privflags_reply_data { + struct ethnl_reply_data base; + const char (*priv_flag_names)[32]; + unsigned int n_priv_flags; + u32 priv_flags; +}; + +struct prm_buffer { + u8 prm_status; + u64 efi_status; + u8 prm_cmd; + guid_t handler_guid; +} __attribute__((packed)); + +struct prm_mmio_info; + +struct prm_context_buffer { + char signature[4]; + u16 revision; + u16 reserved; + guid_t identifier; + u64 static_data_buffer; + struct prm_mmio_info *mmio_ranges; +}; + +struct prm_handler_info { + efi_guid_t guid; + efi_status_t (*handler_addr)(u64, void *); + u64 static_data_buffer_addr; + u64 acpi_param_buffer_addr; + struct list_head handler_list; +}; + +struct prm_mmio_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_module_info { + guid_t guid; + u16 major_rev; + u16 minor_rev; + u16 handler_count; + struct prm_mmio_info *mmio_info; + bool updatable; + struct list_head module_list; + struct prm_handler_info handlers[0]; +}; + +typedef struct kobject *kobj_probe_t(dev_t, int *, void *); + +struct probe { + struct probe *next; + dev_t dev; + long unsigned int range; + struct module *owner; + kobj_probe_t *get; + int (*lock)(dev_t, void *); + void *data; +}; + +struct probe_arg { + struct fetch_insn *code; + bool dynamic; + unsigned int offset; + unsigned int count; + const char *name; + const char *comm; + char *fmt; + const struct fetch_type *type; +}; + +struct probe_entry_arg { + struct fetch_insn *code; + unsigned int size; +}; + +typedef int (*proc_write_t)(struct file *, char *, size_t); + +struct proc_ops; + +struct proc_dir_entry { + atomic_t in_use; + refcount_t refcnt; + struct list_head pde_openers; + spinlock_t pde_unload_lock; + struct completion *pde_unload_completion; + const struct inode_operations *proc_iops; + union { + const struct proc_ops *proc_ops; + const struct file_operations *proc_dir_ops; + }; + const struct dentry_operations *proc_dops; + union { + const struct seq_operations *seq_ops; + int (*single_show)(struct seq_file *, void *); + }; + proc_write_t write; + void *data; + unsigned int state_size; + unsigned int low_ino; + nlink_t nlink; + kuid_t uid; + kgid_t gid; + loff_t size; + struct proc_dir_entry *parent; + struct rb_root subdir; + struct rb_node subdir_node; + char *name; + umode_t mode; + u8 flags; + u8 namelen; + char inline_name[0]; +}; + +struct 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 proc_event { + enum proc_cn_event 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 proc_fs_context { + struct pid_namespace *pid_ns; + unsigned int mask; + enum proc_hidepid hidepid; + int gid; + enum proc_pidonly pidonly; +}; + +struct proc_fs_info { + struct pid_namespace *pid_ns; + struct dentry *proc_self; + struct dentry *proc_thread_self; + kgid_t pid_gid; + enum proc_hidepid hide_pid; + enum proc_pidonly pidonly; + struct callback_head rcu; +}; + +struct proc_fs_opts { + int flag; + const char *str; +}; + +struct proc_inode { + struct pid *pid; + unsigned int fd; + union proc_op op; + struct proc_dir_entry *pde; + struct ctl_table_header *sysctl; + const struct ctl_table *sysctl_entry; + struct hlist_node sibling_inodes; + const struct proc_ns_operations *ns_ops; + struct inode vfs_inode; +}; + +struct proc_input { + enum proc_cn_mcast_op mcast_op; + enum proc_cn_event event_type; +}; + +struct proc_mounts { + struct mnt_namespace *ns; + struct path root; + int (*show)(struct seq_file *, struct vfsmount *); +}; + +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 proc_ops { + unsigned int proc_flags; + int (*proc_open)(struct inode *, struct file *); + ssize_t (*proc_read)(struct file *, char *, size_t, loff_t *); + ssize_t (*proc_read_iter)(struct kiocb *, struct iov_iter *); + ssize_t (*proc_write)(struct file *, const char *, 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 int (*proc_ioctl)(struct file *, unsigned int, long unsigned int); + long int (*proc_compat_ioctl)(struct file *, unsigned int, long unsigned int); + int (*proc_mmap)(struct file *, struct vm_area_struct *); + long unsigned int (*proc_get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); +}; + +struct proc_timens_offset { + int clockid; + struct timespec64 val; +}; + +struct process_timer { + struct timer_list timer; + struct task_struct *task; +}; + +struct procmap_query { + __u64 size; + __u64 query_flags; + __u64 query_addr; + __u64 vma_start; + __u64 vma_end; + __u64 vma_flags; + __u64 vma_page_size; + __u64 vma_offset; + __u64 inode; + __u32 dev_major; + __u32 dev_minor; + __u32 vma_name_size; + __u32 build_id_size; + __u64 vma_name_addr; + __u64 build_id_addr; +}; + +struct profile_fgraph_data { + long long unsigned int calltime; + long long unsigned int subtime; + long long unsigned int sleeptime; +}; + +struct prog_entry { + int target; + int when_to_branch; + struct filter_pred *pred; +}; + +struct prog_poke_elem { + struct list_head list; + struct bpf_prog_aux *aux; +}; + +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 properties_header { + u32 len; + u32 version; + u32 dev_count; + struct dev_header dev_header[0]; +} __attribute__((packed)); + +struct property { + char *name; + int length; + void *value; + struct property *next; +}; + +struct prot_inuse { + int all; + int val[64]; +}; + +struct protection_domain { + struct list_head dev_list; + struct iommu_domain domain; + struct amd_io_pgtable iop; + spinlock_t lock; + u16 id; + enum protection_domain_mode pd_mode; + bool dirty_tracking; + struct xarray iommu_array; + struct mmu_notifier mn; + struct list_head dev_data_list; +}; + +struct smc_hashinfo; + +struct proto_accept_arg; + +struct sk_psock; + +struct timewait_sock_ops; + +struct raw_hashinfo; + +struct proto { + void (*close)(struct sock *, long int); + 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 *, struct proto_accept_arg *); + int (*ioctl)(struct sock *, int, int *); + int (*init)(struct sock *); + void (*destroy)(struct sock *); + void (*shutdown)(struct sock *, int); + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char *, int *); + void (*keepalive)(struct sock *, int); + int (*compat_ioctl)(struct sock *, unsigned int, long unsigned int); + int (*sendmsg)(struct sock *, struct msghdr *, size_t); + int (*recvmsg)(struct sock *, struct msghdr *, size_t, int, int *); + void (*splice_eof)(struct socket *); + int (*bind)(struct sock *, struct sockaddr *, int); + int (*bind_add)(struct sock *, struct sockaddr *, int); + int (*backlog_rcv)(struct sock *, struct sk_buff *); + bool (*bpf_bypass_getsockopt)(int, int); + void (*release_cb)(struct sock *); + int (*hash)(struct sock *); + void (*unhash)(struct sock *); + void (*rehash)(struct sock *); + int (*get_port)(struct sock *, short unsigned int); + 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 *per_cpu_fw_alloc; + struct percpu_counter *sockets_allocated; + long unsigned int *memory_pressure; + long int *sysctl_mem; + int *sysctl_wmem; + int *sysctl_rmem; + u32 sysctl_wmem_offset; + u32 sysctl_rmem_offset; + int max_header; + bool no_autobind; + struct kmem_cache *slab; + unsigned int obj_size; + unsigned int ipv6_pinfo_offset; + slab_flags_t slab_flags; + unsigned int useroffset; + unsigned int usersize; + unsigned int *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 proto_accept_arg { + int flags; + int err; + int is_empty; + bool kern; +}; + +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 *, struct proto_accept_arg *); + int (*getname)(struct socket *, struct sockaddr *, int); + __poll_t (*poll)(struct file *, struct socket *, struct poll_table_struct *); + int (*ioctl)(struct socket *, unsigned int, long unsigned int); + int (*compat_ioctl)(struct socket *, unsigned int, long unsigned int); + int (*gettstamp)(struct socket *, void *, 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 *, int *); + void (*show_fdinfo)(struct seq_file *, struct socket *); + int (*sendmsg)(struct socket *, struct msghdr *, size_t); + int (*recvmsg)(struct socket *, struct msghdr *, size_t, int); + int (*mmap)(struct file *, struct socket *, struct vm_area_struct *); + ssize_t (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct socket *); + int (*set_peek_off)(struct sock *, int); + int (*peek_len)(struct socket *); + int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); + int (*read_skb)(struct sock *, skb_read_actor_t); + int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); + int (*set_rcvlowat)(struct sock *, int); +}; + +struct prt_quirk { + const struct dmi_system_id *system; + unsigned int segment; + unsigned int bus; + unsigned int device; + unsigned char pin; + const char *source; + const char *actual_source; +}; + +struct psample_group { + struct list_head list; + struct net *net; + u32 group_num; + u32 refcount; + u32 seq; + struct callback_head rcu; +}; + +struct psb_s { + u8 signature[10]; + u8 tableversion; + u8 flags1; + u16 vstable; + u8 flags2; + u8 num_tables; + u32 cpuid; + u8 plllocktime; + u8 maxfid; + u8 maxvid; + u8 numps; +}; + +struct psc_entry { + u64 cur_page: 12; + u64 gfn: 40; + u64 operation: 4; + u64 pagesize: 1; + u64 reserved: 7; +}; + +struct psc_hdr { + u16 cur_entry; + u16 end_entry; + u32 reserved; +}; + +struct psched_pktrate { + u64 rate_pkts_ps; + u32 mult; + u8 shift; +}; + +struct psched_ratecfg { + u64 rate_bytes_ps; + u32 mult; + u16 overhead; + u16 mpu; + u8 linklayer; + u8 shift; +}; + +struct pse_admin_state { + enum ethtool_podl_pse_admin_state podl_admin_state; + enum ethtool_c33_pse_admin_state c33_admin_state; +}; + +struct pse_controller_dev; + +struct pse_control { + struct pse_controller_dev *pcdev; + struct regulator *ps; + struct list_head list; + unsigned int id; + struct kref refcnt; +}; + +struct pse_control_config { + enum ethtool_podl_pse_admin_state podl_admin_control; + enum ethtool_c33_pse_admin_state c33_admin_control; +}; + +struct pse_controller_ops; + +struct pse_pi; + +struct pse_controller_dev { + const struct pse_controller_ops *ops; + struct module *owner; + struct list_head list; + struct list_head pse_control_head; + struct device *dev; + int of_pse_n_cells; + unsigned int nr_lines; + struct mutex lock; + enum ethtool_pse_types types; + struct pse_pi *pi; + bool no_of_pse_pi; +}; + +struct pse_pw_status; + +struct pse_ext_state_info; + +struct pse_pw_limit_ranges; + +struct pse_controller_ops { + int (*setup_pi_matrix)(struct pse_controller_dev *); + int (*pi_get_admin_state)(struct pse_controller_dev *, int, struct pse_admin_state *); + int (*pi_get_pw_status)(struct pse_controller_dev *, int, struct pse_pw_status *); + int (*pi_get_ext_state)(struct pse_controller_dev *, int, struct pse_ext_state_info *); + int (*pi_get_pw_class)(struct pse_controller_dev *, int); + int (*pi_get_actual_pw)(struct pse_controller_dev *, int); + int (*pi_enable)(struct pse_controller_dev *, int); + int (*pi_disable)(struct pse_controller_dev *, int); + int (*pi_get_voltage)(struct pse_controller_dev *, int); + int (*pi_get_pw_limit)(struct pse_controller_dev *, int); + int (*pi_set_pw_limit)(struct pse_controller_dev *, int, int); + int (*pi_get_pw_limit_ranges)(struct pse_controller_dev *, int, struct pse_pw_limit_ranges *); +}; + +struct pse_ext_state_info { + struct ethtool_c33_pse_ext_state_info c33_ext_state_info; +}; + +struct pse_pi_pairset { + enum pse_pi_pairset_pinout pinout; + struct device_node *np; +}; + +struct pse_pi { + struct pse_pi_pairset pairset[2]; + struct device_node *np; + struct regulator_dev *rdev; + bool admin_state_enabled; +}; + +struct pse_pw_limit_ranges { + struct ethtool_c33_pse_pw_limit_range *c33_pw_limit_ranges; +}; + +struct pse_pw_status { + enum ethtool_podl_pse_pw_d_status podl_pw_status; + enum ethtool_c33_pse_pw_d_status c33_pw_status; +}; + +struct pse_reply_data { + struct ethnl_reply_data base; + struct ethtool_pse_control_status status; +}; + +struct super_operations; + +struct xattr_handler; + +struct pseudo_fs_context { + const struct super_operations *ops; + const struct export_operations *eops; + const struct xattr_handler * const *xattr; + const struct dentry_operations *dops; + long unsigned int magic; +}; + +struct pseudo_lock_pm_req { + struct list_head list; + struct dev_pm_qos_request req; +}; + +struct resctrl_schema; + +struct pseudo_lock_region { + struct resctrl_schema *s; + struct rdt_ctrl_domain *d; + u32 cbm; + wait_queue_head_t lock_thread_wq; + int thread_done; + int cpu; + unsigned int line_size; + unsigned int size; + void *kmem; + unsigned int minor; + struct dentry *debugfs_dir; + struct list_head pm_reqs; +}; + +struct psi_group_cpu; + +struct psi_group { + struct psi_group *parent; + bool enabled; + struct mutex avgs_lock; + struct psi_group_cpu *pcpu; + u64 avg_total[6]; + u64 avg_last_update; + u64 avg_next_update; + struct delayed_work avgs_work; + struct list_head avg_triggers; + u32 avg_nr_triggers[6]; + u64 total[12]; + long unsigned int avg[18]; + struct task_struct *rtpoll_task; + struct timer_list rtpoll_timer; + wait_queue_head_t rtpoll_wait; + atomic_t rtpoll_wakeup; + atomic_t rtpoll_scheduled; + struct mutex rtpoll_trigger_lock; + struct list_head rtpoll_triggers; + u32 rtpoll_nr_triggers[6]; + u32 rtpoll_states; + u64 rtpoll_min_period; + u64 rtpoll_total[6]; + u64 rtpoll_next_update; + u64 rtpoll_until; +}; + +struct psi_group_cpu { + seqcount_t seq; + unsigned int tasks[4]; + u32 state_mask; + u32 times[7]; + u64 state_start; + u32 times_prev[14]; + long: 64; +}; + +struct psi_window { + u64 size; + u64 start_time; + u64 start_value; + u64 prev_growth; +}; + +struct psi_trigger { + enum psi_states state; + u64 threshold; + struct list_head node; + struct psi_group *group; + wait_queue_head_t event_wait; + struct kernfs_open_file *of; + int event; + struct psi_window win; + u64 last_event_time; + bool pending_event; + enum psi_aggregators aggregator; +}; + +struct pst_s { + u8 fid; + u8 vid; +}; + +struct pstate_funcs { + int (*get_max)(int); + int (*get_max_physical)(int); + int (*get_min)(int); + int (*get_turbo)(int); + int (*get_scaling)(void); + int (*get_cpu_scaling)(int); + int (*get_aperf_mperf_shift)(void); + u64 (*get_val)(struct cpudata *, int); + void (*get_vid)(struct cpudata *); +}; + +struct pstore_ftrace_record { + long unsigned int ip; + long unsigned int parent_ip; + u64 ts; +}; + +struct pstore_ftrace_seq_data { + const void *ptr; + size_t off; + size_t size; +}; + +struct pstore_record; + +struct pstore_info { + struct module *owner; + const char *name; + raw_spinlock_t buf_lock; + char *buf; + size_t bufsize; + struct mutex read_mutex; + int flags; + int max_reason; + void *data; + int (*open)(struct pstore_info *); + int (*close)(struct pstore_info *); + ssize_t (*read)(struct pstore_record *); + int (*write)(struct pstore_record *); + int (*write_user)(struct pstore_record *, const char *); + int (*erase)(struct pstore_record *); +}; + +struct pstore_private { + struct list_head list; + struct dentry *dentry; + struct pstore_record *record; + size_t total_size; +}; + +struct pstore_record { + struct pstore_info *psi; + enum pstore_type_id type; + u64 id; + struct timespec64 time; + char *buf; + ssize_t size; + ssize_t ecc_notice_size; + void *priv; + int count; + enum kmsg_dump_reason reason; + unsigned int part; + bool compressed; +}; + +struct psy_am_i_supplied_data { + struct power_supply *psy; + unsigned int count; +}; + +struct psy_for_each_psy_cb_data { + int (*fn)(struct power_supply *, void *); + void *data; +}; + +struct psy_get_supplier_prop_data { + struct power_supply *psy; + enum power_supply_property psp; + union power_supply_propval *val; +}; + +struct pt_filter { + long unsigned int msr_a; + long unsigned int msr_b; + long unsigned int 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; + int pause_allowed; + int resume_allowed; + u64 output_base; + u64 output_mask; +}; + +struct pt_address_range { + long unsigned int msr_a; + long unsigned int msr_b; + unsigned int reg_off; +}; + +struct topa; + +struct topa_entry; + +struct pt_buffer { + struct list_head tables; + struct topa *first; + struct topa *last; + struct topa *cur; + unsigned int cur_idx; + size_t output_off; + long unsigned int nr_pages; + local_t data_size; + local64_t head; + bool snapshot; + bool single; + bool wrapped; + long int stop_pos; + long int intr_pos; + struct topa_entry *stop_te; + struct topa_entry *intr_te; + void **data_pages; +}; + +struct pt_cap_desc { + const char *name; + u32 leaf; + u8 reg; + u32 mask; +}; + +struct pt_info { + s32 pi_nblocks; + u32 pi_blkoff; +}; + +struct pt_pmu { + struct pmu pmu; + u32 caps[8]; + bool vmx; + bool branch_en_always_on; + long unsigned int max_nonturbo_ratio; + unsigned int tsc_art_num; + unsigned int tsc_art_den; +}; + +struct pt_regs_offset { + const char *name; + int offset; +}; + +struct ptdesc { + long unsigned int __page_flags; + union { + struct callback_head pt_rcu_head; + struct list_head pt_list; + struct { + long unsigned int _pt_pad_1; + pgtable_t pmd_huge_pte; + }; + }; + long unsigned int __page_mapping; + union { + long unsigned int pt_index; + struct mm_struct *pt_mm; + atomic_t pt_frag_refcount; + atomic_t pt_share_count; + }; + union { + long unsigned int _pt_pad_2; + spinlock_t ptl; + }; + unsigned int __page_type; + atomic_t __page_refcount; + long unsigned int pt_memcg_data; +}; + +struct ptdump_range { + long unsigned int start; + long unsigned int end; +}; + +struct pte_enc_desc { + pte_t *kpte; + int pte_level; + bool encrypt; + long unsigned int pfn; + long unsigned int pa; + void *va; + long unsigned int size; + pgprot_t new_pgprot; +}; + +struct ptp_clock_info; + +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 int dialed_frequency; + struct list_head tsevqs; + spinlock_t tsevqs_lock; + struct mutex pincfg_mux; + wait_queue_head_t tsev_wq; + int defunct; + struct device_attribute *pin_dev_attr; + struct attribute **pin_attr; + struct attribute_group pin_attr_group; + const struct attribute_group *pin_attr_groups[2]; + struct kthread_worker *kworker; + struct kthread_delayed_work aux_work; + unsigned int max_vclocks; + unsigned int n_vclocks; + int *vclock_index; + struct mutex n_vclocks_mux; + bool is_virtual_clock; + bool has_cycles; + struct dentry *debugfs_root; +}; + +struct ptp_clock_caps { + int max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int pps; + int n_pins; + int cross_timestamping; + int adjust_phase; + int max_phase_adj; + int rsv[11]; +}; + +struct ptp_clock_event { + int type; + int index; + union { + u64 timestamp; + s64 offset; + struct pps_event_time pps_times; + }; +}; + +struct ptp_pin_desc; + +struct ptp_system_timestamp; + +struct system_device_crosststamp; + +struct ptp_clock_request; + +struct ptp_clock_info { + struct module *owner; + char name[32]; + s32 max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int n_pins; + int pps; + struct ptp_pin_desc *pin_config; + int (*adjfine)(struct ptp_clock_info *, long int); + int (*adjphase)(struct ptp_clock_info *, s32); + s32 (*getmaxphase)(struct ptp_clock_info *); + int (*adjtime)(struct ptp_clock_info *, s64); + int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); + int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); + int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); + int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); + int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); + long int (*do_aux_work)(struct ptp_clock_info *); +}; + +struct ptp_extts_request { + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; +}; + +struct ptp_clock_time { + __s64 sec; + __u32 nsec; + __u32 reserved; +}; + +struct ptp_perout_request { + union { + struct ptp_clock_time start; + struct ptp_clock_time phase; + }; + struct ptp_clock_time period; + unsigned int index; + unsigned int flags; + union { + struct ptp_clock_time on; + unsigned int rsv[4]; + }; +}; + +struct ptp_clock_request { + enum { + PTP_CLK_REQ_EXTTS = 0, + PTP_CLK_REQ_PEROUT = 1, + PTP_CLK_REQ_PPS = 2, + } type; + union { + struct ptp_extts_request extts; + struct ptp_perout_request perout; + }; +}; + +struct ptp_extts_event { + struct ptp_clock_time t; + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; +}; + +struct ptp_header { + u8 tsmt; + u8 ver; + __be16 message_length; + u8 domain_number; + u8 reserved1; + u8 flag_field[2]; + __be64 correction; + __be32 reserved2; + struct port_identity source_port_identity; + __be16 sequence_id; + u8 control; + u8 log_message_interval; +} __attribute__((packed)); + +struct ptp_pin_desc { + char name[64]; + unsigned int index; + unsigned int func; + unsigned int chan; + unsigned int rsv[5]; +}; + +struct ptp_sys_offset { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[51]; +}; + +struct ptp_sys_offset_extended { + unsigned int n_samples; + __kernel_clockid_t clockid; + unsigned int rsv[2]; + struct ptp_clock_time ts[75]; +}; + +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_system_timestamp { + struct timespec64 pre_ts; + struct timespec64 post_ts; + clockid_t clockid; +}; + +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 ptrace_peeksiginfo_args { + __u64 off; + __u32 flags; + __s32 nr; +}; + +struct ptrace_relation { + struct task_struct *tracer; + struct task_struct *tracee; + bool invalid; + struct list_head node; + struct callback_head rcu; +}; + +struct ptrace_rseq_configuration { + __u64 rseq_abi_pointer; + __u32 rseq_abi_size; + __u32 signature; + __u32 flags; + __u32 pad; +}; + +struct ptrace_sud_config { + __u64 mode; + __u64 selector; + __u64 offset; + __u64 len; +}; + +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 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 pubkey_hdr { + uint8_t version; + uint32_t timestamp; + uint8_t algo; + uint8_t nmpi; + char mpi[0]; +} __attribute__((packed)); + +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; + long unsigned int key_eflags; +}; + +struct public_key_signature { + struct asymmetric_key_id *auth_ids[3]; + u8 *s; + u8 *digest; + u32 s_size; + u32 digest_size; + const char *pkey_algo; + const char *hash_algo; + const char *encoding; +}; + +struct pushbutton_work_info { + struct slot___3 *p_slot; + struct work_struct work; +}; + +struct pv_node; + +struct pv_hash_entry { + struct qspinlock *lock; + struct pv_node *node; +}; + +struct pv_info { + u16 extra_user_64bit_cs; + const char *name; +}; + +struct pv_node { + struct mcs_spinlock mcs; + int cpu; + u8 state; +}; + +struct pvclock_vsyscall_time_info { + struct pvclock_vcpu_time_info pvti; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct pvclock_wall_clock { + u32 version; + u32 sec; + u32 nsec; +}; + +struct pvd { + char reserved0[16]; + __be16 pp_count; + char reserved18[2]; + __be32 psn_part1; + char reserved24[8]; + struct ppe ppe[1016]; +}; + +struct pwm_args { + u64 period; + enum pwm_polarity polarity; +}; + +struct pwm_capture { + unsigned int period; + unsigned int duty_cycle; +}; + +struct pwm_chip; + +typedef struct pwm_chip *class_pwmchip_t; + +struct pwm_state { + u64 period; + u64 duty_cycle; + enum pwm_polarity polarity; + bool enabled; + bool usage_power; +}; + +struct pwm_device { + const char *label; + long unsigned int flags; + unsigned int hwpwm; + struct pwm_chip *chip; + 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; + struct module *owner; + unsigned int id; + unsigned int npwm; + struct pwm_device * (*of_xlate)(struct pwm_chip *, const struct of_phandle_args *); + bool atomic; + bool uses_pwmchip_alloc; + bool operational; + union { + struct mutex nonatomic_lock; + spinlock_t atomic_lock; + }; + struct pwm_device pwms[0]; +}; + +struct pwm_export { + struct device pwm_dev; + struct pwm_device *pwm; + struct mutex lock; + struct pwm_state suspend; +}; + +struct pwm_lookup { + struct list_head list; + const char *provider; + unsigned int index; + const char *dev_id; + const char *con_id; + unsigned int period; + enum pwm_polarity polarity; + const char *module; +}; + +struct pwm_lpss_boardinfo { + long unsigned int clk_rate; + unsigned int npwm; + long unsigned int base_unit_bits; + bool bypass; + bool other_devices_aml_touches_pwm_regs; +}; + +struct pwm_lpss_chip { + void *regs; + const struct pwm_lpss_boardinfo *info; +}; + +struct pwm_waveform; + +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 *, long unsigned int); + size_t sizeof_wfhw; + int (*round_waveform_tohw)(struct pwm_chip *, struct pwm_device *, const struct pwm_waveform *, void *); + int (*round_waveform_fromhw)(struct pwm_chip *, struct pwm_device *, const void *, struct pwm_waveform *); + int (*read_waveform)(struct pwm_chip *, struct pwm_device *, void *); + int (*write_waveform)(struct pwm_chip *, struct pwm_device *, const void *); + 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 pwm_waveform { + u64 period_length_ns; + u64 duty_length_ns; + u64 duty_offset_ns; +}; + +struct q_inval { + raw_spinlock_t q_lock; + void *desc; + int *desc_status; + int free_head; + int free_tail; + int free_cnt; +}; + +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_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_type_state { + unsigned int flags; + unsigned int spc_timelimit; + unsigned int ino_timelimit; + unsigned int rt_spc_timelimit; + unsigned int spc_warnlimit; + unsigned int ino_warnlimit; + unsigned int rt_spc_warnlimit; + long long unsigned int ino; + blkcnt_t blocks; + blkcnt_t nextents; +}; + +struct qc_state { + unsigned int s_incoredqs; + struct qc_type_state s_state[3]; +}; + +struct qdisc_dump_args { + struct qdisc_walker w; + struct sk_buff *skb; + struct netlink_callback *cb; +}; + +struct tc_ratespec { + unsigned char cell_log; + __u8 linklayer; + short unsigned int overhead; + short int cell_align; + short unsigned int mpu; + __u32 rate; +}; + +struct qdisc_rate_table { + struct tc_ratespec rate; + u32 data[256]; + struct qdisc_rate_table *next; + int refcnt; +}; + +struct tc_sizespec { + unsigned char cell_log; + unsigned char size_log; + short int 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 qdisc_watchdog { + struct hrtimer timer; + struct Qdisc *qdisc; +}; + +struct qi_desc { + u64 qw0; + u64 qw1; + u64 qw2; + u64 qw3; +}; + +struct qi_batch { + struct qi_desc descs[16]; + unsigned int index; +}; + +struct qnode { + struct mcs_spinlock mcs; + long int reserved[2]; +}; + +struct queue_limits { + blk_features_t features; + blk_flags_t flags; + long unsigned int seg_boundary_mask; + long unsigned int 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 min_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_user_discard_sectors; + unsigned int max_secure_erase_sectors; + unsigned int max_write_zeroes_sectors; + unsigned int max_hw_zone_append_sectors; + unsigned int max_zone_append_sectors; + unsigned int discard_granularity; + unsigned int discard_alignment; + unsigned int zone_write_granularity; + unsigned int atomic_write_hw_max; + unsigned int atomic_write_max_sectors; + unsigned int atomic_write_hw_boundary; + unsigned int atomic_write_boundary_sectors; + unsigned int atomic_write_hw_unit_min; + unsigned int atomic_write_unit_min; + unsigned int atomic_write_hw_unit_max; + unsigned int atomic_write_unit_max; + short unsigned int max_segments; + short unsigned int max_integrity_segments; + short unsigned int max_discard_segments; + unsigned int max_open_zones; + unsigned int max_active_zones; + unsigned int dma_alignment; + unsigned int dma_pad_mask; + struct blk_integrity integrity; +}; + +struct queue_pages { + struct list_head *pagelist; + long unsigned int flags; + nodemask_t *nmask; + long unsigned int start; + long unsigned int end; + struct vm_area_struct *first; + struct folio *large; + long int nr_failed; +}; + +struct queue_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct gendisk *, char *); + ssize_t (*show_limit)(struct gendisk *, char *); + ssize_t (*store)(struct gendisk *, const char *, size_t); + int (*store_limit)(struct gendisk *, const char *, size_t, struct queue_limits *); + void (*load_module)(struct gendisk *, const char *, size_t); +}; + +struct quirk_entry { + u16 vid; + u16 pid; + u32 flags; +}; + +struct quirk_entry___2 { + u32 nominal_freq; + u32 lowest_freq; +}; + +struct quota_format_ops { + int (*check_quota_file)(struct super_block *, int); + int (*read_file_info)(struct super_block *, int); + int (*write_file_info)(struct super_block *, int); + int (*free_file_info)(struct super_block *, int); + int (*read_dqblk)(struct dquot *); + int (*commit_dqblk)(struct dquot *); + int (*release_dqblk)(struct dquot *); + int (*get_next_id)(struct super_block *, struct kqid *); +}; + +struct 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_id { + struct rb_node node; + qid_t id; + qsize_t bhardlimit; + qsize_t bsoftlimit; + qsize_t ihardlimit; + qsize_t isoftlimit; +}; + +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 quota_module_name { + int qm_fmt_id; + char *qm_mod_name; +}; + +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 ra_msg { + struct icmp6hdr icmph; + __be32 reachable_time; + __be32 retrans_timer; +}; + +struct xa_node; + +struct radix_tree_iter { + long unsigned int index; + long unsigned int next_index; + long unsigned int tags; + struct xa_node *node; +}; + +struct radix_tree_preload { + local_lock_t lock; + unsigned int nr; + struct xa_node *nodes; +}; + +struct ramfs_mount_opts { + umode_t mode; +}; + +struct ramfs_fs_info { + struct ramfs_mount_opts mount_opts; +}; + +struct rand_data { + void *hash_state; + __u64 prev_time; + __u64 last_delta; + __s64 last_delta2; + unsigned int flags; + unsigned int osr; + unsigned char *mem; + unsigned int memlocation; + unsigned int memblocks; + unsigned int memblocksize; + unsigned int memaccessloops; + unsigned int rct_count; + unsigned int apt_cutoff; + unsigned int apt_cutoff_permanent; + unsigned int apt_observations; + unsigned int apt_count; + unsigned int apt_base; + unsigned int health_failure; + unsigned int apt_base_set: 1; +}; + +struct range_node { + struct rb_node rn_rbnode; + struct rb_node rb_range_size; + u32 rn_start; + u32 rn_last; + u32 __rn_subtree_last; +}; + +struct range_trans { + u32 source_type; + u32 target_type; + u32 target_class; +}; + +struct rank_info { + int chan_idx; + struct csrow_info *csrow; + struct dimm_info *dimm; + u32 ce_count; +}; + +struct rate_sample { + u64 prior_mstamp; + u32 prior_delivered; + u32 prior_delivered_ce; + s32 delivered; + s32 delivered_ce; + long int interval_us; + u32 snd_interval_us; + u32 rcv_interval_us; + long int 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 raw6_frag_vec { + struct msghdr *msg; + int hlen; + char c[4]; +}; + +struct raw6_sock { + struct inet_sock inet; + __u32 checksum; + __u32 offset; + struct icmp6_filter filter; + __u32 ip6mr_table; + struct ipv6_pinfo inet6; +}; + +struct raw_data_entry { + struct trace_entry ent; + unsigned int id; + char buf[0]; +}; + +struct raw_frag_vec { + struct msghdr *msg; + union { + struct icmphdr icmph; + char c[1]; + } hdr; + int hlen; +}; + +struct raw_hashinfo { + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct hlist_head ht[256]; +}; + +struct raw_hwp_page { + struct llist_node node; + struct page *page; +}; + +struct raw_iter_state { + struct seq_net_private p; + int bucket; +}; + +struct raw_sock { + struct inet_sock inet; + struct icmp_filter filter; + u32 ipmr_table; +}; + +struct rawdata_f_data { + struct aa_loaddata *loaddata; +}; + +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 rb_event_info { + u64 ts; + u64 delta; + u64 before; + u64 after; + long unsigned int length; + struct buffer_page *tail_page; + int add_timestamp; +}; + +struct rb_irq_work { + struct irq_work work; + wait_queue_head_t waiters; + wait_queue_head_t full_waiters; + atomic_t seq; + bool waiters_pending; + bool full_waiters_pending; + bool wakeup_full; +}; + +struct rb_list { + struct rb_root root; + struct list_head head; + spinlock_t lock; +}; + +struct rb_time_struct { + local64_t time; +}; + +typedef struct rb_time_struct rb_time_t; + +struct rb_wait_data { + struct rb_irq_work *irq_work; + int seq; +}; + +struct rc { + long int (*fill)(void *, long unsigned int); + uint8_t *ptr; + uint8_t *buffer; + uint8_t *buffer_end; + long int buffer_size; + uint32_t code; + uint32_t range; + uint32_t bound; + void (*error)(char *); +}; + +struct rc5t583 { + struct device *dev; + struct regmap *regmap; + int chip_irq; + int irq_base; + struct mutex irq_lock; + long unsigned int group_irq_en[5]; + uint8_t intc_inten_reg; + uint8_t irq_en_reg[8]; + uint8_t gpedge_reg[2]; +}; + +struct rc5t583_gpio { + struct gpio_chip gpio_chip; + struct rc5t583 *rc5t583; +}; + +struct rc5t583_irq_data { + u8 int_type; + u8 master_bit; + u8 int_en_bit; + u8 mask_reg_index; + int grp_index; +}; + +struct rc5t583_platform_data { + int irq_base; + int gpio_base; + bool enable_shutdown; + int regulator_deepsleep_slot[14]; + long unsigned int regulator_ext_pwr_control[14]; + struct regulator_init_data *reg_init_data[14]; +}; + +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 rcec_ea { + u8 nextbusn; + u8 lastbusn; + u32 bitmap; +}; + +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 **buf; + int is_global; + struct list_head list; + struct dentry *parent; + int has_base_filename; + char base_filename[255]; +}; + +struct rchan_buf { + void *start; + void *data; + size_t offset; + size_t subbufs_produced; + size_t subbufs_consumed; + struct rchan *chan; + wait_queue_head_t read_wait; + struct irq_work wakeup_work; + struct dentry *dentry; + struct kref kref; + struct page **page_array; + unsigned int page_count; + unsigned int finalized; + size_t *padding; + size_t prev_padding; + size_t bytes_consumed; + size_t early_bytes; + unsigned int cpu; + long: 64; + long: 64; +}; + +struct 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_percpu_buf_dispatcher { + struct rchan_buf *buf; + struct dentry *dentry; +}; + +struct rcu_cblist { + struct callback_head *head; + struct callback_head **tail; + long int len; +}; + +union rcu_noqs { + struct { + u8 norm; + u8 exp; + } b; + u16 s; +}; + +struct rcu_segcblist { + struct callback_head *head; + struct callback_head **tails[4]; + long unsigned int gp_seq[4]; + atomic_long_t len; + long int seglen[4]; + u8 flags; +}; + +struct rcu_snap_record { + long unsigned int gp_seq; + u64 cputime_irq; + u64 cputime_softirq; + u64 cputime_system; + u64 nr_hardirqs; + unsigned int nr_softirqs; + long long unsigned int nr_csw; + long unsigned int jiffies; +}; + +struct rcu_node; + +struct rcu_data { + long unsigned int gp_seq; + long unsigned int gp_seq_needed; + union rcu_noqs cpu_no_qs; + bool core_needs_qs; + bool beenonline; + bool gpwrap; + bool cpu_started; + struct rcu_node *mynode; + long unsigned int grpmask; + long unsigned int ticks_this_gp; + struct irq_work defer_qs_iw; + bool defer_qs_iw_pending; + struct work_struct strict_work; + struct rcu_segcblist cblist; + long int qlen_last_fqs_check; + long unsigned int n_cbs_invoked; + long unsigned int n_force_qs_snap; + long int blimit; + int watching_snap; + bool rcu_need_heavy_qs; + bool rcu_urgent_qs; + bool rcu_forced_tick; + bool rcu_forced_tick_exp; + long unsigned int barrier_seq_snap; + struct callback_head barrier_head; + int exp_watching_snap; + struct swait_queue_head nocb_cb_wq; + struct swait_queue_head nocb_state_wq; + struct task_struct *nocb_gp_kthread; + raw_spinlock_t nocb_lock; + int nocb_defer_wakeup; + struct timer_list nocb_timer; + long unsigned int nocb_gp_adv_time; + struct mutex nocb_gp_kthread_mutex; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + raw_spinlock_t nocb_bypass_lock; + struct rcu_cblist nocb_bypass; + long unsigned int nocb_bypass_first; + long unsigned int nocb_nobypass_last; + int nocb_nobypass_count; + long: 64; + raw_spinlock_t nocb_gp_lock; + u8 nocb_gp_sleep; + u8 nocb_gp_bypass; + u8 nocb_gp_gp; + long unsigned int nocb_gp_seq; + long unsigned int nocb_gp_loops; + struct swait_queue_head nocb_gp_wq; + bool nocb_cb_sleep; + struct task_struct *nocb_cb_kthread; + struct list_head nocb_head_rdp; + struct list_head nocb_entry_rdp; + struct rcu_data *nocb_toggling_rdp; + long: 64; + long: 64; + long: 64; + struct rcu_data *nocb_gp_rdp; + struct task_struct *rcu_cpu_kthread_task; + unsigned int rcu_cpu_kthread_status; + char rcu_cpu_has_work; + long unsigned int rcuc_activity; + unsigned int softirq_snap; + struct irq_work rcu_iw; + bool rcu_iw_pending; + long unsigned int rcu_iw_gp_seq; + long unsigned int rcu_ofl_gp_seq; + short int rcu_ofl_gp_state; + long unsigned int rcu_onl_gp_seq; + short int rcu_onl_gp_state; + long unsigned int last_fqs_resched; + long unsigned int last_sched_clock; + struct rcu_snap_record snap_record; + long int lazy_len; + int cpu; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct rcu_exp_work { + long unsigned int rew_s; + struct kthread_work rew_work; +}; + +struct rcu_node { + raw_spinlock_t lock; + long unsigned int gp_seq; + long unsigned int gp_seq_needed; + long unsigned int completedqs; + long unsigned int qsmask; + long unsigned int rcu_gp_init_mask; + long unsigned int qsmaskinit; + long unsigned int qsmaskinitnext; + long unsigned int expmask; + long unsigned int expmaskinit; + long unsigned int expmaskinitnext; + struct kthread_worker *exp_kworker; + long unsigned int cbovldmask; + long unsigned int ffmask; + long unsigned int 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; + long unsigned int boost_time; + struct mutex kthread_mutex; + struct task_struct *boost_kthread_task; + unsigned int boost_kthread_status; + long unsigned int n_boosts; + struct swait_queue_head nocb_gp_wq[2]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + raw_spinlock_t fqslock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t exp_lock; + long unsigned int 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; + long unsigned int exp_seq_poll_rq; + struct work_struct exp_poll_wq; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +union rcu_special { + struct { + u8 blocked; + u8 need_qs; + u8 exp_hint; + u8 need_mb; + } b; + u32 s; +}; + +struct rcu_stall_chk_rdr { + int nesting; + union rcu_special rs; + bool on_blkd_list; +}; + +struct sr_wait_node { + atomic_t inuse; + struct llist_node node; +}; + +struct rcu_state { + struct rcu_node node[521]; + struct rcu_node *level[4]; + int ncpus; + int n_online_cpus; + long: 64; + long: 64; + long: 64; + long unsigned int gp_seq; + long unsigned int gp_max; + struct task_struct *gp_kthread; + struct swait_queue_head gp_wq; + short int gp_flags; + short int gp_state; + long unsigned int gp_wake_time; + long unsigned int gp_wake_seq; + long unsigned int gp_seq_polled; + long unsigned int gp_seq_polled_snap; + long unsigned int gp_seq_polled_exp_snap; + struct mutex barrier_mutex; + atomic_t barrier_cpu_count; + struct completion barrier_completion; + long unsigned int barrier_sequence; + raw_spinlock_t barrier_lock; + struct mutex exp_mutex; + struct mutex exp_wake_mutex; + long unsigned int expedited_sequence; + atomic_t expedited_need_qs; + struct swait_queue_head expedited_wq; + int ncpus_snap; + u8 cbovld; + u8 cbovldnext; + long unsigned int jiffies_force_qs; + long unsigned int jiffies_kick_kthreads; + long unsigned int n_force_qs; + long unsigned int gp_start; + long unsigned int gp_end; + long unsigned int gp_activity; + long unsigned int gp_req_activity; + long unsigned int jiffies_stall; + int nr_fqs_jiffies_stall; + long unsigned int jiffies_resched; + long unsigned int n_force_qs_gpstart; + const char *name; + char abbr; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + arch_spinlock_t ofl_lock; + struct llist_head srs_next; + struct llist_node *srs_wait_tail; + struct llist_node *srs_done_tail; + struct sr_wait_node srs_wait_nodes[5]; + struct work_struct srs_cleanup_work; + atomic_t srs_cleanups_pending; + struct mutex nocb_mutex; + int nocb_is_setup; +}; + +struct rcu_synchronize { + struct callback_head head; + struct completion completion; +}; + +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 (*rcu_callback_t)(struct callback_head *); + +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; + long unsigned int gp_jiffies; + long unsigned int gp_start; + long unsigned int tasks_gp_seq; + long unsigned int n_ipis; + long unsigned int n_ipis_fails; + struct task_struct *kthread_ptr; + long unsigned int lazy_jiffies; + rcu_tasks_gp_func_t gp_func; + pregp_func_t pregp_func; + pertask_func_t pertask_func; + postscan_func_t postscan_func; + holdouts_func_t holdouts_func; + postgp_func_t postgp_func; + call_rcu_func_t call_func; + unsigned int wait_state; + struct rcu_tasks_percpu *rtpcpu; + struct rcu_tasks_percpu **rtpcp_array; + int percpu_enqueue_shift; + int percpu_enqueue_lim; + int percpu_dequeue_lim; + long unsigned int percpu_dequeue_gpseq; + struct mutex barrier_q_mutex; + atomic_t barrier_q_count; + struct completion barrier_q_completion; + long unsigned int barrier_q_seq; + long unsigned int barrier_q_start; + char *name; + char *kname; +}; + +struct rcu_tasks_percpu { + struct rcu_segcblist cblist; + raw_spinlock_t lock; + long unsigned int rtp_jiffies; + long unsigned int rtp_n_lock_retries; + struct timer_list lazy_timer; + unsigned int urgent_gp; + struct work_struct rtp_work; + struct irq_work rtp_irq_work; + struct callback_head barrier_q_head; + struct list_head rtp_blkd_tasks; + struct list_head rtp_exit_list; + int cpu; + int index; + struct rcu_tasks *rtpp; +}; + +struct rd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + struct in6_addr dest; + __u8 opt[0]; +}; + +struct rdev_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct md_rdev *, char *); + ssize_t (*store)(struct md_rdev *, const char *, size_t); +}; + +struct rdma_ah_init_attr { + struct rdma_ah_attr *ah_attr; + u32 flags; + struct net_device *xmit_slave; +}; + +struct rdma_cgroup { + struct cgroup_subsys_state css; + struct list_head rpools; +}; + +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; + long unsigned int timestamp; + long unsigned int lifespan; + const struct rdma_stat_desc *descs; + long unsigned int *is_disabled; + int num_counters; + u64 value[0]; +}; + +struct rdma_link_ops { + struct list_head list; + const char *type; + int (*newlink)(const char *, struct net_device *); +}; + +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_stat_desc { + const char *name; + unsigned int flags; + const void *priv; +}; + +struct rdma_user_mmap_entry { + struct kref ref; + struct ib_ucontext *ucontext; + long unsigned int start_pgoff; + size_t npages; + bool driver_removed; +}; + +struct rdmacg_resource { + int max; + int usage; +}; + +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 rdt_domain_hdr { + struct list_head list; + int id; + enum resctrl_domain_type type; + struct cpumask cpu_mask; +}; + +struct resctrl_staged_config { + u32 new_ctrl; + bool have_new_ctrl; +}; + +struct rdt_ctrl_domain { + struct rdt_domain_hdr hdr; + struct pseudo_lock_region *plr; + struct resctrl_staged_config staged_config[3]; + u32 *mbps_val; +}; + +struct rdt_fs_context { + struct kernfs_fs_context kfc; + bool enable_cdpl2; + bool enable_cdpl3; + bool enable_mba_mbps; + bool enable_debug; +}; + +struct rdt_hw_ctrl_domain { + struct rdt_ctrl_domain d_resctrl; + u32 *ctrl_val; +}; + +struct rdt_mon_domain { + struct rdt_domain_hdr hdr; + struct cacheinfo *ci; + long unsigned int *rmid_busy_llc; + struct mbm_state *mbm_total; + struct mbm_state *mbm_local; + struct delayed_work mbm_over; + struct delayed_work cqm_limbo; + int mbm_work_cpu; + int cqm_work_cpu; +}; + +struct rdt_hw_mon_domain { + struct rdt_mon_domain d_resctrl; + struct arch_mbm_state *arch_mbm_total; + struct arch_mbm_state *arch_mbm_local; +}; + +struct resctrl_cache { + unsigned int cbm_len; + unsigned int min_cbm_bits; + unsigned int shareable_bits; + bool arch_has_sparse_bitmasks; + bool arch_has_per_cpu_cfg; +}; + +struct resctrl_membw { + u32 min_bw; + u32 bw_gran; + u32 delay_linear; + bool arch_needs_linear; + enum membw_throttle_mode throttle_mode; + bool mba_sc; + u32 *mb_map; +}; + +struct rdt_parse_data; + +struct rdt_resource { + int rid; + bool alloc_capable; + bool mon_capable; + int num_rmid; + enum resctrl_scope ctrl_scope; + enum resctrl_scope mon_scope; + struct resctrl_cache cache; + struct resctrl_membw membw; + struct list_head ctrl_domains; + struct list_head mon_domains; + char *name; + int data_width; + u32 default_ctrl; + const char *format_str; + int (*parse_ctrlval)(struct rdt_parse_data *, struct resctrl_schema *, struct rdt_ctrl_domain *); + struct list_head evt_list; + long unsigned int fflags; + bool cdp_capable; +}; + +struct rdt_hw_resource { + struct rdt_resource r_resctrl; + u32 num_closid; + unsigned int msr_base; + void (*msr_update)(struct msr_param *); + unsigned int mon_scale; + unsigned int mbm_width; + unsigned int mbm_cfg_mask; + bool cdp_enabled; +}; + +struct rdt_options { + char *name; + int flag; + bool force_off; + bool force_on; +}; + +struct rdt_parse_data { + struct rdtgroup *rdtgrp; + char *buf; +}; + +struct rdtgroup { + struct kernfs_node *kn; + struct list_head rdtgroup_list; + u32 closid; + struct cpumask cpu_mask; + int flags; + atomic_t waitcount; + enum rdt_group_type type; + struct mongroup mon; + enum rdtgrp_mode mode; + enum resctrl_event_id mba_mbps_event; + struct pseudo_lock_region *plr; +}; + +struct read_buffer { + struct list_head list; + unsigned int cons; + unsigned int len; + char msg[0]; +}; + +struct readahead_control { + struct file *file; + struct address_space *mapping; + struct file_ra_state *ra; + long unsigned int _index; + unsigned int _nr_pages; + unsigned int _batch_count; + bool dropbehind; + bool _workingset; + long unsigned int _pflags; +}; + +struct readdir_callback { + struct dir_context ctx; + struct old_linux_dirent *dirent; + int result; +}; + +struct real_mode_header { + u32 text_start; + u32 ro_end; + u32 trampoline_start; + u32 trampoline_header; + u32 sev_es_trampoline_start; + u32 trampoline_start64; + u32 trampoline_pgd; + u32 wakeup_start; + u32 wakeup_header; + u32 machine_real_restart_asm; + u32 machine_real_restart_seg; +}; + +struct virtnet_rq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t drops; + u64_stats_t xdp_packets; + u64_stats_t xdp_tx; + u64_stats_t xdp_redirects; + u64_stats_t xdp_drops; + u64_stats_t kicks; +}; + +struct virtnet_interrupt_coalesce { + u32 max_packets; + u32 max_usecs; +}; + +struct virtnet_rq_dma; + +struct receive_queue { + struct virtqueue *vq; + struct napi_struct napi; + struct bpf_prog *xdp_prog; + struct virtnet_rq_stats stats; + u16 calls; + bool dim_enabled; + struct mutex dim_lock; + struct dim dim; + u32 packets_in_napi; + struct virtnet_interrupt_coalesce intr_coal; + struct page *pages; + struct ewma_pkt_len mrg_avg_pkt_len; + struct page_frag alloc_frag; + struct scatterlist sg[19]; + unsigned int min_buf_len; + char name[16]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; + struct virtnet_rq_dma *last_dma; + struct xsk_buff_pool *xsk_pool; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xsk_rxq_info; + struct xdp_buff **xsk_buffs; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct reciprocal_value_adv { + u32 m; + u8 sh; + u8 exp; + bool is_wide_m; +}; + +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; + unsigned int nr_demoted; +}; + +struct reclaim_state { + long unsigned int reclaimed; + struct lru_gen_mm_walk *mm_walk; +}; + +struct recovery_info { + tid_t start_transaction; + tid_t end_transaction; + long unsigned int head_block; + int nr_replays; + int nr_revokes; + int nr_revoke_hits; +}; + +struct reg_default { + unsigned int reg; + unsigned int def; +}; + +struct reg_field { + unsigned int reg; + unsigned int lsb; + unsigned int msb; + unsigned int id_size; + unsigned int id_offset; +}; + +struct reg_genl_event { + char reg_name[32]; + uint64_t event; +}; + +struct reg_sequence { + unsigned int reg; + unsigned int def; + unsigned int delay_us; +}; + +struct regcache_ops { + const char *name; + enum regcache_type type; + int (*init)(struct regmap *); + int (*exit)(struct regmap *); + void (*debugfs_init)(struct regmap *); + int (*read)(struct regmap *, unsigned int, unsigned int *); + int (*write)(struct regmap *, unsigned int, unsigned int); + int (*sync)(struct regmap *, unsigned int, unsigned int); + int (*drop)(struct regmap *, unsigned int, unsigned int); +}; + +struct regcache_rbtree_node; + +struct regcache_rbtree_ctx { + struct rb_root root; + struct regcache_rbtree_node *cached_rbnode; +}; + +struct regcache_rbtree_node { + void *block; + long unsigned int *cache_present; + unsigned int base_reg; + unsigned int blklen; + struct rb_node node; +}; + +typedef int (*regex_match_func)(char *, struct regex *, int); + +struct regex { + char pattern[256]; + int len; + int field_len; + regex_match_func match; +}; + +struct region { + unsigned int start; + unsigned int off; + unsigned int group_len; + unsigned int end; + unsigned int nbits; +}; + +struct region_devres { + struct resource *parent; + resource_size_t start; + resource_size_t n; +}; + +typedef void (*regmap_lock)(void *); + +typedef void (*regmap_unlock)(void *); + +struct regmap_format { + size_t buf_size; + size_t reg_bytes; + size_t pad_bytes; + size_t val_bytes; + s8 reg_shift; + void (*format_write)(struct regmap *, unsigned int, unsigned int); + void (*format_reg)(void *, unsigned int, unsigned int); + void (*format_val)(void *, unsigned int, unsigned int); + unsigned int (*parse_val)(const void *); + void (*parse_inplace)(void *); +}; + +struct regmap_bus; + +struct regmap_access_table; + +struct regmap { + union { + struct mutex mutex; + struct { + spinlock_t spinlock; + long unsigned int spinlock_flags; + }; + struct { + raw_spinlock_t raw_spinlock; + long unsigned int raw_spinlock_flags; + }; + }; + struct lock_class_key *lock_key; + 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 max_register_is_set; + 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; + long unsigned int read_flag_mask; + long unsigned int write_flag_mask; + int reg_shift; + int reg_stride; + int reg_stride_order; + bool force_write_field; + const struct regcache_ops *cache_ops; + enum regcache_type cache_type; + unsigned int cache_size_raw; + unsigned int cache_word_size; + unsigned int num_reg_defaults; + unsigned int num_reg_defaults_raw; + bool cache_only; + bool cache_bypass; + bool cache_free; + struct reg_default *reg_defaults; + const void *reg_defaults_raw; + void *cache; + bool cache_dirty; + bool no_sync_defaults; + struct reg_sequence *patch; + int patch_regs; + bool use_single_read; + bool use_single_write; + bool can_multi_write; + size_t max_raw_read; + size_t max_raw_write; + struct rb_root range_tree; + void *selector_work_buf; + struct hwspinlock *hwlock; + bool can_sleep; +}; + +struct 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_async { + struct list_head list; + struct regmap *map; + void *work_buf; +}; + +struct spi_message { + struct list_head transfers; + struct spi_device *spi; + bool pre_optimized; + bool optimized; + bool prepared; + int status; + void (*complete)(void *); + void *context; + unsigned int frame_length; + unsigned int actual_length; + struct list_head queue; + void *state; + void *opt_state; + struct list_head resources; +}; + +struct spi_delay { + u16 value; + u8 unit; +}; + +struct spi_transfer { + const void *tx_buf; + void *rx_buf; + unsigned int len; + u16 error; + bool tx_sg_mapped; + bool rx_sg_mapped; + struct sg_table tx_sg; + struct sg_table rx_sg; + dma_addr_t tx_dma; + dma_addr_t rx_dma; + unsigned int dummy_data: 1; + unsigned int cs_off: 1; + unsigned int cs_change: 1; + unsigned int tx_nbits: 4; + unsigned int rx_nbits: 4; + unsigned int timestamped: 1; + u8 bits_per_word; + struct spi_delay delay; + struct spi_delay cs_change_delay; + struct spi_delay word_delay; + u32 speed_hz; + u32 effective_speed_hz; + unsigned int ptp_sts_word_pre; + unsigned int ptp_sts_word_post; + struct ptp_system_timestamp *ptp_sts; + struct list_head transfer_list; +}; + +struct regmap_async_spi { + struct regmap_async core; + struct spi_message m; + struct spi_transfer t[2]; +}; + +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); + +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)(void); + +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_range_cfg; + +struct regmap_config { + const char *name; + int reg_bits; + int reg_stride; + int reg_shift; + unsigned int reg_base; + int pad_bits; + int val_bits; + bool (*writeable_reg)(struct device *, unsigned int); + bool (*readable_reg)(struct device *, unsigned int); + bool (*volatile_reg)(struct device *, unsigned int); + bool (*precious_reg)(struct device *, unsigned int); + bool (*writeable_noinc_reg)(struct device *, unsigned int); + bool (*readable_noinc_reg)(struct device *, unsigned int); + 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 can_sleep; + bool fast_io; + bool io_port; + bool disable_locking; + regmap_lock lock; + regmap_unlock unlock; + void *lock_arg; + unsigned int max_register; + bool max_register_is_0; + 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; + long unsigned int read_flag_mask; + long unsigned int write_flag_mask; + bool zero_flag_mask; + bool use_single_read; + bool use_single_write; + bool use_relaxed_mmio; + bool can_multi_write; + bool use_hwlock; + bool use_raw_spinlock; + unsigned int hwlock_id; + unsigned int hwlock_mode; + enum regmap_endian reg_format_endian; + enum regmap_endian val_format_endian; + const struct regmap_range_cfg *ranges; + unsigned int num_ranges; +}; + +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; +}; + +struct regmap_field { + struct regmap *regmap; + unsigned int mask; + unsigned int shift; + unsigned int reg; + unsigned int id_size; + unsigned int id_offset; +}; + +struct regmap_irq_type { + unsigned int type_reg_offset; + unsigned int type_reg_mask; + unsigned int type_rising_val; + unsigned int type_falling_val; + unsigned int type_level_low_val; + unsigned int type_level_high_val; + unsigned int types_supported; +}; + +struct regmap_irq { + unsigned int reg_offset; + unsigned int mask; + struct regmap_irq_type type; +}; + +struct regmap_irq_sub_irq_map; + +struct regmap_irq_chip { + const char *name; + const char *domain_suffix; + unsigned int main_status; + unsigned int num_main_status_bits; + const struct regmap_irq_sub_irq_map *sub_reg_offsets; + int num_main_regs; + unsigned int status_base; + unsigned int mask_base; + unsigned int unmask_base; + unsigned int ack_base; + unsigned int wake_base; + const unsigned int *config_base; + unsigned int irq_reg_stride; + unsigned int init_ack_masked: 1; + unsigned int mask_unmask_non_inverted: 1; + unsigned int use_ack: 1; + unsigned int ack_invert: 1; + unsigned int clear_ack: 1; + unsigned int status_invert: 1; + unsigned int wake_invert: 1; + unsigned int type_in_mask: 1; + unsigned int clear_on_unmask: 1; + unsigned int runtime_pm: 1; + unsigned int no_status: 1; + int num_regs; + const struct regmap_irq *irqs; + int num_irqs; + int num_config_bases; + int num_config_regs; + int (*handle_pre_irq)(void *); + int (*handle_post_irq)(void *); + int (*handle_mask_sync)(int, unsigned int, unsigned int, void *); + int (*set_type_config)(unsigned int **, unsigned int, const struct regmap_irq *, int, void *); + unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); + void *irq_drv_data; +}; + +struct regmap_irq_chip_data { + struct mutex lock; + struct irq_chip irq_chip; + struct regmap *map; + const struct regmap_irq_chip *chip; + int irq_base; + struct irq_domain *domain; + int irq; + int wake_count; + void *status_reg_buf; + unsigned int *main_status_buf; + unsigned int *status_buf; + unsigned int *mask_buf; + unsigned int *mask_buf_def; + unsigned int *wake_buf; + unsigned int *type_buf; + unsigned int *type_buf_def; + unsigned int **config_buf; + unsigned int irq_reg_stride; + unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); + unsigned int clear_status: 1; +}; + +struct regmap_irq_sub_irq_map { + unsigned int num_regs; + unsigned int *offset; +}; + +struct regmap_mmio_context { + void *regs; + unsigned int val_bytes; + bool big_endian; + bool attached_clk; + struct clk *clk; + void (*reg_write)(struct regmap_mmio_context *, unsigned int, unsigned int); + unsigned int (*reg_read)(struct regmap_mmio_context *, unsigned int); +}; + +struct regmap_range { + unsigned int range_min; + unsigned int range_max; +}; + +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 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 regulator_voltage { + int min_uV; + int max_uV; +}; + +struct regulator { + struct device *dev; + struct list_head list; + unsigned int always_on: 1; + unsigned int bypass: 1; + unsigned int device_link: 1; + int uA_load; + unsigned int enable_count; + unsigned int deferred_disables; + struct regulator_voltage voltage[5]; + const char *supply_name; + struct device_attribute dev_attr; + struct regulator_dev *rdev; + struct dentry *debugfs; +}; + +struct regulator_bulk_devres { + struct regulator_bulk_data *consumers; + int num_consumers; +}; + +struct regulator_config { + struct device *dev; + const struct regulator_init_data *init_data; + void *driver_data; + struct device_node *of_node; + struct regmap *regmap; + struct gpio_desc *ena_gpiod; +}; + +struct regulator_consumer_supply { + const char *dev_name; + const char *supply; +}; + +struct regulator_coupler { + struct list_head list; + int (*attach_regulator)(struct regulator_coupler *, struct regulator_dev *); + int (*detach_regulator)(struct regulator_coupler *, struct regulator_dev *); + int (*balance_voltage)(struct regulator_coupler *, struct regulator_dev *, suspend_state_t); +}; + +struct regulator_enable_gpio; + +struct regulator_dev { + const struct regulator_desc *desc; + int exclusive; + u32 use_count; + u32 open_count; + u32 bypass_count; + struct list_head list; + struct list_head consumer_list; + struct coupling_desc coupling_desc; + struct blocking_notifier_head notifier; + struct ww_mutex mutex; + struct task_struct *mutex_owner; + int ref_cnt; + struct module *owner; + struct device dev; + struct regulation_constraints *constraints; + struct regulator *supply; + const char *supply_name; + struct regmap *regmap; + struct delayed_work disable_work; + void *reg_data; + struct dentry *debugfs; + struct regulator_enable_gpio *ena_pin; + unsigned int ena_gpio_state: 1; + unsigned int is_switch: 1; + ktime_t last_off; + int cached_err; + bool use_cached_err; + spinlock_t err_lock; + int pw_requested_mW; +}; + +struct regulator_enable_gpio { + struct list_head list; + struct gpio_desc *gpiod; + u32 enable_count; + u32 request_count; +}; + +struct regulator_err_state { + struct regulator_dev *rdev; + long unsigned int notifs; + long unsigned int errors; + int possible_errs; +}; + +struct regulator_irq_data { + struct regulator_err_state *states; + int num_states; + void *data; + long int opaque; +}; + +struct regulator_irq_desc { + const char *name; + int fatal_cnt; + int reread_ms; + int irq_off_ms; + bool skip_off; + bool high_prio; + void *data; + int (*die)(struct regulator_irq_data *); + int (*map_event)(int, struct regulator_irq_data *, long unsigned int *); + int (*renable)(struct regulator_irq_data *); +}; + +struct regulator_irq { + struct regulator_irq_data rdata; + struct regulator_irq_desc desc; + int irq; + int retry_cnt; + struct delayed_work isr_work; +}; + +struct regulator_map { + struct list_head list; + const char *dev_name; + const char *supply; + struct regulator_dev *regulator; +}; + +struct regulator_notifier_match { + struct regulator *regulator; + struct notifier_block *nb; +}; + +struct regulator_ops { + int (*list_voltage)(struct regulator_dev *, unsigned int); + int (*set_voltage)(struct regulator_dev *, int, int, unsigned int *); + int (*map_voltage)(struct regulator_dev *, int, int); + int (*set_voltage_sel)(struct regulator_dev *, unsigned int); + int (*get_voltage)(struct regulator_dev *); + int (*get_voltage_sel)(struct regulator_dev *); + int (*set_current_limit)(struct regulator_dev *, int, int); + int (*get_current_limit)(struct regulator_dev *); + int (*set_input_current_limit)(struct regulator_dev *, int); + int (*set_over_current_protection)(struct regulator_dev *, int, int, bool); + int (*set_over_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_under_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_thermal_protection)(struct regulator_dev *, int, int, bool); + int (*set_active_discharge)(struct regulator_dev *, bool); + int (*enable)(struct regulator_dev *); + int (*disable)(struct regulator_dev *); + int (*is_enabled)(struct regulator_dev *); + int (*set_mode)(struct regulator_dev *, unsigned int); + unsigned int (*get_mode)(struct regulator_dev *); + int (*get_error_flags)(struct regulator_dev *, unsigned int *); + int (*enable_time)(struct regulator_dev *); + int (*set_ramp_delay)(struct regulator_dev *, int); + int (*set_voltage_time)(struct regulator_dev *, int, int); + int (*set_voltage_time_sel)(struct regulator_dev *, unsigned int, unsigned int); + int (*set_soft_start)(struct regulator_dev *); + int (*get_status)(struct regulator_dev *); + unsigned int (*get_optimum_mode)(struct regulator_dev *, int, int, int); + int (*set_load)(struct regulator_dev *, int); + int (*set_bypass)(struct regulator_dev *, bool); + int (*get_bypass)(struct regulator_dev *, bool *); + int (*set_suspend_voltage)(struct regulator_dev *, int); + int (*set_suspend_enable)(struct regulator_dev *); + int (*set_suspend_disable)(struct regulator_dev *); + int (*set_suspend_mode)(struct regulator_dev *, unsigned int); + int (*resume)(struct regulator_dev *); + int (*set_pull_down)(struct regulator_dev *); +}; + +struct regulator_supply_alias { + struct list_head list; + struct device *src_dev; + const char *src_supply; + struct device *alias_dev; + const char *alias_supply; +}; + +struct regulator_supply_alias_match { + struct device *dev; + const char *id; +}; + +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 xen_remap_gfn_info; + +struct remap_data { + xen_pfn_t *fgfn; + int nr_fgfn; + pgprot_t prot; + domid_t domid; + struct vm_area_struct *vma; + int index; + struct page **pages; + struct xen_remap_gfn_info *info; + int *err_ptr; + int mapped; + int h_errs[1]; + xen_ulong_t h_idxs[1]; + xen_pfn_t h_gpfns[1]; + int h_iter; +}; + +struct remap_data___2 { + xen_pfn_t *pfn; + bool contiguous; + bool no_translate; + pgprot_t prot; + struct mmu_update *mmu_update; +}; + +struct remap_pfn { + struct mm_struct *mm; + struct page **pages; + pgprot_t prot; + long unsigned int i; +}; + +struct remap_trace { + struct list_head list; + struct kmmio_probe probe; + resource_size_t phys; + long unsigned int id; +}; + +typedef int (*remote_function_f)(void *); + +struct remote_function_call { + struct task_struct *p; + remote_function_f func; + void *info; + int ret; +}; + +struct remote_output { + struct perf_buffer *rb; + int err; +}; + +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 repcodes_s { + U32 rep[3]; +}; + +typedef struct repcodes_s repcodes_t; + +struct reply_func { + int type; + int (*cb)(struct net_device *, struct nlmsghdr *, u32, struct nlattr **, struct sk_buff *); +}; + +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 req_iterator { + struct bvec_iter iter; + struct bio *bio; +}; + +typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t); + +struct request { + struct request_queue *q; + struct blk_mq_ctx *mq_ctx; + struct blk_mq_hw_ctx *mq_hctx; + blk_opf_t cmd_flags; + req_flags_t rq_flags; + int tag; + int internal_tag; + unsigned int timeout; + unsigned int __data_len; + 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; + short unsigned int wbt_flags; + short unsigned int stats_sectors; + short unsigned int nr_phys_segments; + short unsigned int nr_integrity_segments; + struct bio_crypt_ctx *crypt_ctx; + struct blk_crypto_keyslot *crypt_keyslot; + enum mq_rq_state state; + atomic_t ref; + long unsigned int deadline; + union { + struct hlist_node hash; + struct llist_node ipi_list; + }; + union { + struct rb_node rb_node; + struct bio_vec special_vec; + }; + struct { + struct io_cq *icq; + void *priv[2]; + } elv; + struct { + unsigned int seq; + rq_end_io_fn *saved_end_io; + } flush; + u64 fifo_time; + rq_end_io_fn *end_io; + void *end_io_data; +}; + +struct 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 throtl_data; + +struct request_queue { + void *queuedata; + struct elevator_queue *elevator; + const struct blk_mq_ops *mq_ops; + struct blk_mq_ctx *queue_ctx; + long unsigned int queue_flags; + unsigned int rq_timeout; + unsigned int queue_depth; + refcount_t refs; + unsigned int nr_hw_queues; + struct xarray hctx_table; + struct percpu_ref q_usage_counter; + struct lock_class_key io_lock_cls_key; + struct lockdep_map io_lockdep_map; + struct lock_class_key q_lock_cls_key; + struct lockdep_map q_lockdep_map; + struct request *last_merge; + spinlock_t queue_lock; + int quiesce_depth; + struct gendisk *disk; + struct kobject *mq_kobj; + struct queue_limits limits; + struct device *dev; + enum rpm_status rpm_status; + atomic_t pm_only; + struct blk_queue_stats *stats; + struct rq_qos *rq_qos; + struct mutex rq_qos_mutex; + int id; + long unsigned int nr_requests; + struct blk_crypto_profile *crypto_profile; + struct kobject *crypto_kobject; + 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; + long unsigned int blkcg_pols[1]; + struct blkcg_gq *root_blkg; + struct list_head blkg_list; + struct mutex blkcg_mutex; + int node; + spinlock_t requeue_lock; + struct list_head requeue_list; + struct delayed_work requeue_work; + struct blk_trace *blk_trace; + struct blk_flush_queue *fq; + struct list_head flush_list; + struct mutex sysfs_lock; + struct mutex limits_lock; + struct list_head unused_hctx_list; + spinlock_t unused_hctx_lock; + int mq_freeze_depth; + struct throtl_data *td; + struct callback_head callback_head; + wait_queue_head_t mq_freeze_wq; + struct mutex mq_freeze_lock; + 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; +}; + +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 request_sock__safe_rcu_or_null { + struct sock *sk; +}; + +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 *, enum sk_rst_reason); + void (*destructor)(struct request_sock *); + void (*syn_ack_timeout)(const struct request_sock *); +}; + +struct res_proc_context { + struct list_head *list; + int (*preproc)(struct acpi_resource *, void *); + void *preproc_data; + int count; + int error; +}; + +struct resctrl_pqr_state { + u32 cur_rmid; + u32 cur_closid; + u32 default_rmid; + u32 default_closid; +}; + +struct resctrl_schema { + struct list_head list; + char name[8]; + enum resctrl_conf_type conf_type; + struct rdt_resource *res; + u32 num_closid; +}; + +struct reserve_mem_table { + char name[16]; + phys_addr_t start; + phys_addr_t size; +}; + +struct reset_controller_dev; + +struct reset_control { + struct reset_controller_dev *rcdev; + struct list_head list; + unsigned int id; + struct kref refcnt; + bool acquired; + bool shared; + bool array; + atomic_t deassert_count; + atomic_t triggered_count; +}; + +struct reset_control_array { + struct reset_control base; + unsigned int num_rstcs; + struct reset_control *rstc[0]; +}; + +struct reset_control_bulk_devres { + int num_rstcs; + struct reset_control_bulk_data *rstcs; +}; + +struct reset_control_lookup { + struct list_head list; + const char *provider; + unsigned int index; + const char *dev_id; + const char *con_id; +}; + +struct reset_control_ops { + int (*reset)(struct reset_controller_dev *, long unsigned int); + int (*assert)(struct reset_controller_dev *, long unsigned int); + int (*deassert)(struct reset_controller_dev *, long unsigned int); + int (*status)(struct reset_controller_dev *, long unsigned int); +}; + +struct reset_controller_dev { + const struct reset_control_ops *ops; + struct module *owner; + struct list_head list; + struct list_head reset_control_head; + struct device *dev; + struct device_node *of_node; + const struct of_phandle_args *of_args; + int of_reset_n_cells; + int (*of_xlate)(struct reset_controller_dev *, const struct of_phandle_args *); + unsigned int nr_resets; +}; + +struct reset_gpio_lookup { + struct of_phandle_args of_args; + struct list_head list; +}; + +struct reset_simple_data { + spinlock_t lock; + void *membase; + struct reset_controller_dev rcdev; + bool active_low; + bool status_active_low; + unsigned int reset_us; +}; + +struct reset_simple_devdata { + u32 reg_offset; + u32 nr_resets; + bool active_low; + bool status_active_low; +}; + +struct residency_counts { + u64 miss_before; + u64 hits_before; + u64 miss_after; + u64 hits_after; +}; + +typedef resource_size_t (*resource_alignf)(void *, const struct resource *, resource_size_t, resource_size_t); + +struct resource_constraint { + resource_size_t min; + resource_size_t max; + resource_size_t align; + resource_alignf alignf; + void *alignf_data; +}; + +struct resource_entry { + struct list_head node; + struct resource *res; + resource_size_t offset; + struct resource __res; +}; + +struct resource_table { + u32 ver; + u32 num; + u32 reserved[2]; + u32 offset[0]; +}; + +struct resource_win { + struct resource res; + resource_size_t offset; +}; + +struct restart_block { + long unsigned int arch_data; + long int (*fn)(struct restart_block *); + union { + struct { + u32 *uaddr; + u32 val; + u32 flags; + u32 bitset; + u64 time; + u32 *uaddr2; + } futex; + struct { + clockid_t clockid; + enum timespec_type type; + union { + struct __kernel_timespec *rmtp; + struct old_timespec32 *compat_rmtp; + }; + u64 expires; + } nanosleep; + struct { + struct pollfd *ufds; + int nfds; + int has_timeout; + long unsigned int tv_sec; + long unsigned int tv_nsec; + } poll; + }; +}; + +struct restore_data_record { + long unsigned int jump_address; + long unsigned int jump_address_phys; + long unsigned int cr3; + long unsigned int magic; + long unsigned int e820_checksum; +}; + +struct resume_performance_record { + struct fpdt_record_header header; + u32 resume_count; + u64 resume_prev; + u64 resume_avg; +}; + +struct resume_swap_area { + __kernel_loff_t offset; + __u32 dev; +} __attribute__((packed)); + +struct resv_map { + struct kref refs; + spinlock_t lock; + struct list_head regions; + long int adds_in_progress; + struct list_head region_cache; + long int region_cache_count; + struct rw_semaphore rw_sema; + struct page_counter *reservation_counter; + long unsigned int pages_per_hpage; + struct cgroup_subsys_state *css; +}; + +struct rethook { + void *data; + void (*handler)(struct rethook_node *, void *, long unsigned int, struct pt_regs *); + struct objpool_head pool; + struct callback_head rcu; +}; + +struct return_consumer { + __u64 cookie; + __u64 id; +}; + +struct return_instance { + struct hprobe hprobe; + long unsigned int func; + long unsigned int stack; + long unsigned int orig_ret_vaddr; + bool chained; + int cons_cnt; + struct return_instance *next; + struct callback_head rcu; + struct return_consumer consumer; + struct return_consumer *extra_consumers; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct reuseport_array { + struct bpf_map map; + struct sock *ptrs[0]; +}; + +struct rfkill_ops; + +struct rfkill { + spinlock_t lock; + enum rfkill_type type; + long unsigned int state; + long unsigned int hard_block_reasons; + u32 idx; + bool registered; + bool persistent; + bool polling_paused; + bool suspended; + bool need_sync; + const struct rfkill_ops *ops; + void *data; + struct led_trigger led_trigger; + const char *ledtrigname; + struct device dev; + struct list_head node; + struct delayed_work poll_work; + struct work_struct uevent_work; + struct work_struct sync_work; + char name[0]; +}; + +struct rfkill_data { + struct list_head list; + struct list_head events; + struct mutex mtx; + wait_queue_head_t read_wait; + bool input_handler; +}; + +struct rfkill_event_ext { + __u32 idx; + __u8 type; + __u8 op; + __u8 soft; + __u8 hard; + __u8 hard_block_reasons; +} __attribute__((packed)); + +struct rfkill_int_event { + struct list_head list; + struct rfkill_event_ext ev; +}; + +struct rfkill_ops { + void (*poll)(struct rfkill *, void *); + void (*query)(struct rfkill *, void *); + int (*set_block)(void *, bool); +}; + +struct rftype { + char *name; + umode_t mode; + const struct kernfs_ops *kf_ops; + long unsigned int flags; + long unsigned int fflags; + int (*seq_show)(struct kernfs_open_file *, struct seq_file *, void *); + ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t); +}; + +struct rgb { + u8 r; + u8 g; + u8 b; +}; + +struct rhash_lock_head {}; + +struct rhashtable_compare_arg { + struct rhashtable *ht; + const void *key; +}; + +struct rid_data { + struct pci_dev *bridge; + u32 rid; +}; + +struct ring_buffer_event { + u32 type_len: 5; + u32 time_delta: 27; + u32 array[0]; +}; + +struct ring_buffer_per_cpu; + +struct ring_buffer_iter { + struct ring_buffer_per_cpu *cpu_buffer; + long unsigned int head; + long unsigned int next_event; + struct buffer_page *head_page; + struct buffer_page *cache_reader_page; + long unsigned int cache_read; + long unsigned int cache_pages_removed; + u64 read_stamp; + u64 page_stamp; + struct ring_buffer_event *event; + size_t event_size; + int missed_events; +}; + +struct ring_buffer_meta { + int magic; + int struct_size; + long unsigned int kaslr_addr; + long unsigned int first_buffer; + long unsigned int head_buffer; + long unsigned int commit_buffer; + __u32 subbuf_size; + __u32 nr_subbufs; + int buffers[0]; +}; + +struct trace_buffer_meta; + +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; + long unsigned int nr_pages; + unsigned int current_context; + struct list_head *pages; + long unsigned int cnt; + struct buffer_page *head_page; + struct buffer_page *tail_page; + struct buffer_page *commit_page; + struct buffer_page *reader_page; + long unsigned int lost_events; + long unsigned int last_overrun; + long unsigned int 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 int last_pages_touch; + size_t shortest_full; + long unsigned int read; + long unsigned int read_bytes; + rb_time_t write_stamp; + rb_time_t before_stamp; + u64 event_stamp[5]; + u64 read_stamp; + long unsigned int pages_removed; + unsigned int mapped; + unsigned int user_mapped; + struct mutex mapping_lock; + long unsigned int *subbuf_ids; + struct trace_buffer_meta *meta_page; + struct ring_buffer_meta *ring_meta; + long int 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 rings_reply_data { + struct ethnl_reply_data base; + struct ethtool_ringparam ringparam; + struct kernel_ethtool_ringparam kernel_ringparam; + u32 supported_ring_params; +}; + +struct rio_mport; + +struct rio_dbell { + struct list_head node; + struct resource *res; + void (*dinb)(struct rio_mport *, void *, u16, u16, u16); + void *dev_id; +}; + +struct rio_switch_ops; + +struct rio_dev; + +struct rio_switch { + struct list_head node; + u8 *route_table; + u32 port_ok; + struct rio_switch_ops *ops; + spinlock_t lock; + struct rio_dev *nextdev[0]; +}; + +struct rio_net; + +struct rio_driver; + +union rio_pw_msg; + +struct rio_dev { + struct list_head global_list; + struct list_head net_list; + struct rio_net *net; + bool do_enum; + u16 did; + u16 vid; + u32 device_rev; + u16 asm_did; + u16 asm_vid; + u16 asm_rev; + u16 efptr; + u32 pef; + u32 swpinfo; + u32 src_ops; + u32 dst_ops; + u32 comp_tag; + u32 phys_efptr; + u32 phys_rmap; + u32 em_efptr; + u64 dma_mask; + struct rio_driver *driver; + struct device dev; + struct resource riores[16]; + int (*pwcback)(struct rio_dev *, union rio_pw_msg *, int); + u16 destid; + u8 hopcount; + struct rio_dev *prev; + atomic_t state; + struct rio_switch rswitch[0]; +}; + +struct rio_device_id { + __u16 did; + __u16 vid; + __u16 asm_did; + __u16 asm_vid; +}; + +struct rio_disc_work { + struct work_struct work; + struct rio_mport *mport; +}; + +struct rio_dma_data { + struct scatterlist *sg; + unsigned int sg_len; + u64 rio_addr; + u8 rio_addr_u; + enum rio_write_type wr_type; +}; + +struct rio_dma_ext { + u16 destid; + u64 rio_addr; + u8 rio_addr_u; + enum rio_write_type wr_type; +}; + +struct rio_driver { + struct list_head node; + char *name; + const struct rio_device_id *id_table; + int (*probe)(struct rio_dev *, const struct rio_device_id *); + void (*remove)(struct rio_dev *); + void (*shutdown)(struct rio_dev *); + int (*suspend)(struct rio_dev *, u32); + int (*resume)(struct rio_dev *); + int (*enable_wake)(struct rio_dev *, u32, int); + struct device_driver driver; +}; + +struct rio_msg { + struct resource *res; + void (*mcback)(struct rio_mport *, void *, int, int); +}; + +struct rio_ops; + +struct rio_scan; + +struct rio_mport { + struct list_head dbells; + struct list_head pwrites; + struct list_head node; + struct list_head nnode; + struct rio_net *net; + struct mutex lock; + struct resource iores; + struct resource riores[16]; + struct rio_msg inb_msg[4]; + struct rio_msg outb_msg[4]; + int host_deviceid; + struct rio_ops *ops; + unsigned char id; + unsigned char index; + unsigned int sys_size; + u32 phys_efptr; + u32 phys_rmap; + unsigned char name[40]; + struct device dev; + void *priv; + struct dma_device dma; + struct rio_scan *nscan; + atomic_t state; + unsigned int pwe_refcnt; +}; + +struct rio_mport_attr { + int flags; + int link_speed; + int link_width; + int dma_max_sge; + int dma_max_size; + int dma_align; +}; + +struct rio_net { + struct list_head node; + struct list_head devices; + struct list_head switches; + struct list_head mports; + struct rio_mport *hport; + unsigned char id; + struct device dev; + void *enum_data; + void (*release)(struct rio_net *); +}; + +struct rio_ops { + int (*lcread)(struct rio_mport *, int, u32, int, u32 *); + int (*lcwrite)(struct rio_mport *, int, u32, int, u32); + int (*cread)(struct rio_mport *, int, u16, u8, u32, int, u32 *); + int (*cwrite)(struct rio_mport *, int, u16, u8, u32, int, u32); + int (*dsend)(struct rio_mport *, int, u16, u16); + int (*pwenable)(struct rio_mport *, int); + int (*open_outb_mbox)(struct rio_mport *, void *, int, int); + void (*close_outb_mbox)(struct rio_mport *, int); + int (*open_inb_mbox)(struct rio_mport *, void *, int, int); + void (*close_inb_mbox)(struct rio_mport *, int); + int (*add_outb_message)(struct rio_mport *, struct rio_dev *, int, void *, size_t); + int (*add_inb_buffer)(struct rio_mport *, int, void *); + void * (*get_inb_message)(struct rio_mport *, int); + int (*map_inb)(struct rio_mport *, dma_addr_t, u64, u64, u32); + void (*unmap_inb)(struct rio_mport *, dma_addr_t); + int (*query_mport)(struct rio_mport *, struct rio_mport_attr *); + int (*map_outb)(struct rio_mport *, u16, u64, u32, u32, dma_addr_t *); + void (*unmap_outb)(struct rio_mport *, u16, u64); +}; + +union rio_pw_msg { + struct { + u32 comptag; + u32 errdetect; + u32 is_port; + u32 ltlerrdet; + u32 padding[12]; + } em; + u32 raw[16]; +}; + +struct rio_pwrite { + struct list_head node; + int (*pwcback)(struct rio_mport *, void *, union rio_pw_msg *, int); + void *context; +}; + +struct rio_scan { + struct module *owner; + int (*enumerate)(struct rio_mport *, u32); + int (*discover)(struct rio_mport *, u32); +}; + +struct rio_scan_node { + int mport_id; + struct list_head node; + struct rio_scan *ops; +}; + +struct rio_switch_ops { + struct module *owner; + int (*add_entry)(struct rio_mport *, u16, u8, u16, u16, u8); + int (*get_entry)(struct rio_mport *, u16, u8, u16, u16, u8 *); + int (*clr_table)(struct rio_mport *, u16, u8, u16); + int (*set_domain)(struct rio_mport *, u16, u8, u8); + int (*get_domain)(struct rio_mport *, u16, u8, u8 *); + int (*em_init)(struct rio_dev *); + int (*em_handle)(struct rio_dev *, u8); +}; + +struct rlimit64 { + __u64 rlim_cur; + __u64 rlim_max; +}; + +struct rm_feature_desc { + __be16 feature_code; + __u8 curr: 1; + __u8 persistent: 1; + __u8 feature_version: 4; + __u8 reserved1: 2; + __u8 add_len; + __u8 lock: 1; + __u8 dbml: 1; + __u8 pvnt_jmpr: 1; + __u8 eject: 1; + __u8 load: 1; + __u8 mech_type: 3; + __u8 reserved2; + __u8 reserved3; + __u8 reserved4; +}; + +struct rmap_walk_arg { + struct folio *folio; + bool map_unused_to_zeropage; +}; + +struct rmap_walk_control { + void *arg; + bool try_lock; + bool contended; + bool (*rmap_one)(struct folio *, struct vm_area_struct *, long unsigned int, void *); + int (*done)(struct folio *); + struct anon_vma * (*anon_lock)(const struct folio *, struct rmap_walk_control *); + bool (*invalid_vma)(struct vm_area_struct *, void *); +}; + +struct rmid_entry { + u32 closid; + u32 rmid; + int busy; + struct list_head list; +}; + +struct rmid_read { + struct rdtgroup *rgrp; + struct rdt_resource *r; + struct rdt_mon_domain *d; + enum resctrl_event_id evtid; + bool first; + struct cacheinfo *ci; + int err; + u64 val; + void *arch_mon_ctx; +}; + +struct rmpentry_raw; + +struct rmp_segment_desc { + struct rmpentry_raw *rmp_entry; + u64 max_index; + u64 size; +}; + +struct rmp_state { + u64 gpa; + u8 assigned; + u8 pagesize; + u8 immutable; + u8 rsvd; + u32 asid; +}; + +struct rmpentry { + u64 gpa; + u8 assigned: 1; + u8 rsvd1: 7; + u8 pagesize: 1; + u8 hpage_region_status: 1; + u8 rsvd2: 6; + u8 immutable: 1; + u8 rsvd3: 7; + u8 rsvd4; + u32 asid; +}; + +struct rmpentry_raw { + union { + struct { + u64 assigned: 1; + u64 pagesize: 1; + u64 immutable: 1; + u64 rsvd1: 9; + u64 gpa: 39; + u64 asid: 10; + u64 vmsa: 1; + u64 validated: 1; + u64 rsvd2: 1; + }; + u64 lo; + }; + u64 hi; +}; + +struct rnd_state { + __u32 s1; + __u32 s2; + __u32 s3; + __u32 s4; +}; + +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 robust_list { + struct robust_list *next; +}; + +struct robust_list_head { + struct robust_list list; + long int futex_offset; + struct robust_list *list_op_pending; +}; + +struct role_allow { + u32 role; + u32 new_role; + struct role_allow *next; +}; + +struct role_datum { + u32 value; + u32 bounds; + struct ebitmap dominates; + struct ebitmap types; +}; + +struct role_trans_datum { + u32 new_role; +}; + +struct role_trans_key { + u32 role; + u32 type; + u32 tclass; +}; + +struct root_device { + struct device dev; + struct module *owner; +}; + +struct root_domain { + atomic_t refcount; + atomic_t rto_count; + struct callback_head rcu; + cpumask_var_t span; + cpumask_var_t online; + bool overloaded; + bool overutilized; + cpumask_var_t dlo_mask; + atomic_t dlo_count; + struct dl_bw dl_bw; + struct cpudl cpudl; + u64 visit_cookie; + 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; + struct perf_domain *pd; +}; + +struct root_entry { + u64 lo; + u64 hi; +}; + +struct rootsector { + char unused[342]; + struct partition_info icdpart[8]; + char unused2[12]; + u32 hd_siz; + struct partition_info part[4]; + u32 bsl_st; + u32 bsl_cnt; + u16 checksum; +} __attribute__((packed)); + +struct route_info { + __u8 type; + __u8 length; + __u8 prefix_len; + __u8 reserved_l: 3; + __u8 route_pref: 2; + __u8 reserved_h: 3; + __be32 lifetime; + __u8 prefix[0]; +}; + +struct rpc_cred_cache; + +struct rpc_authops; + +struct rpc_auth { + unsigned int au_cslack; + unsigned int au_rslack; + unsigned int au_verfsize; + unsigned int au_ralign; + long unsigned int 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 { + rpc_authflavor_t pseudoflavor; + const char *target_name; +}; + +struct rpcsec_gss_info; + +struct rpc_authops { + struct module *owner; + rpc_authflavor_t au_flavor; + char *au_name; + struct rpc_auth * (*create)(const struct rpc_auth_create_args *, struct rpc_clnt *); + void (*destroy)(struct rpc_auth *); + int (*hash_cred)(struct auth_cred *, unsigned int); + struct rpc_cred * (*lookup_cred)(struct rpc_auth *, struct auth_cred *, int); + struct rpc_cred * (*crcreate)(struct rpc_auth *, struct auth_cred *, int, gfp_t); + rpc_authflavor_t (*info2flavor)(struct rpcsec_gss_info *); + int (*flavor2info)(rpc_authflavor_t, struct rpcsec_gss_info *); + int (*key_timeout)(struct rpc_auth *, struct rpc_cred *); + int (*ping)(struct rpc_clnt *); +}; + +struct rpc_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 rpc_iostats; + +struct rpc_pipe_dir_head { + struct list_head pdh_entries; + struct dentry *pdh_dentry; +}; + +struct rpc_rtt { + long unsigned int timeo; + long unsigned int srtt[5]; + long unsigned int sdrtt[5]; + int ntimeouts[5]; +}; + +struct rpc_timeout { + long unsigned int to_initval; + long unsigned int to_maxval; + long unsigned int to_increment; + unsigned int to_retries; + unsigned char to_exponential; +}; + +struct rpc_xprt_switch; + +struct rpc_xprt_iter_ops; + +struct rpc_xprt_iter { + struct rpc_xprt_switch *xpi_xpswitch; + struct rpc_xprt *xpi_cursor; + const struct rpc_xprt_iter_ops *xpi_ops; +}; + +struct rpc_stat; + +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 *cl_xprt; + const struct rpc_procinfo *cl_procinfo; + u32 cl_prog; + u32 cl_vers; + u32 cl_maxproc; + struct rpc_auth *cl_auth; + struct rpc_stat *cl_stats; + struct rpc_iostats *cl_metrics; + unsigned int cl_softrtry: 1; + unsigned int cl_softerr: 1; + unsigned int cl_discrtry: 1; + unsigned int cl_noretranstimeo: 1; + unsigned int cl_autobind: 1; + unsigned int cl_chatty: 1; + unsigned int cl_shutdown: 1; + struct xprtsec_parms cl_xprtsec; + struct rpc_rtt *cl_rtt; + const struct rpc_timeout *cl_timeout; + atomic_t cl_swapper; + int cl_nodelen; + char cl_nodename[65]; + struct rpc_pipe_dir_head cl_pipedir_objects; + struct rpc_clnt *cl_parent; + struct rpc_rtt cl_rtt_default; + struct rpc_timeout cl_timeout_default; + const struct rpc_program *cl_program; + const char *cl_principal; + struct dentry *cl_debugfs; + struct rpc_sysfs_client *cl_sysfs; + union { + struct rpc_xprt_iter cl_xpi; + struct work_struct cl_work; + }; + const struct cred *cl_cred; + unsigned int cl_max_connect; + struct super_block *pipefs_sb; + atomic_t cl_task_count; +}; + +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; + long unsigned int cr_expire; + long unsigned int cr_flags; + refcount_t cr_count; + const struct cred *cr_cred; +}; + +struct rpc_credops { + const char *cr_name; + int (*cr_init)(struct rpc_auth *, struct rpc_cred *); + void (*crdestroy)(struct rpc_cred *); + int (*crmatch)(struct auth_cred *, struct rpc_cred *, int); + int (*crmarshal)(struct rpc_task *, struct xdr_stream *); + int (*crrefresh)(struct rpc_task *); + int (*crvalidate)(struct rpc_task *, struct xdr_stream *); + int (*crwrap_req)(struct rpc_task *, struct xdr_stream *); + int (*crunwrap_resp)(struct rpc_task *, struct xdr_stream *); + int (*crkey_timeout)(struct rpc_cred *); + char * (*crstringify_acceptor)(struct rpc_cred *); + bool (*crneed_reencode)(struct rpc_task *); +}; + +typedef 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 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 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; + long unsigned int rq_majortimeo; + long unsigned int rq_minortimeo; + long unsigned int rq_timeout; + ktime_t rq_rtt; + unsigned int rq_retries; + unsigned int rq_connect_cookie; + atomic_t rq_pin; + u32 rq_bytes_sent; + ktime_t rq_xtime; + int rq_ntrans; + struct lwq_node rq_bc_list; + long unsigned int rq_bc_pa_state; + struct list_head rq_bc_pa_list; +}; + +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_sysfs_client { + struct kobject kobject; + struct net *net; + struct rpc_clnt *clnt; + struct rpc_xprt_switch *xprt_switch; +}; + +struct rpc_version { + u32 number; + unsigned int nrprocs; + const struct rpc_procinfo *procs; + unsigned int *counts; +}; + +struct svc_xprt; + +struct rpc_sysfs_xprt; + +struct rpc_xprt_ops; + +struct svc_serv; + +struct xprt_class; + +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; + long unsigned int cong; + long unsigned int 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; + long unsigned int state; + unsigned char resvport: 1; + unsigned char reuseport: 1; + atomic_t swapper; + unsigned int bind_index; + struct list_head xprt_switch; + long unsigned int bind_timeout; + long unsigned int reestablish_timeout; + struct xprtsec_parms xprtsec; + unsigned int connect_cookie; + struct work_struct task_cleanup; + struct timer_list timer; + long unsigned int last_used; + long unsigned int idle_timeout; + long unsigned int connect_timeout; + long unsigned int max_reconnect_timeout; + atomic_long_t queuelen; + spinlock_t transport_lock; + spinlock_t reserve_lock; + spinlock_t queue_lock; + u32 xid; + struct rpc_task *snd_task; + struct list_head xmit_queue; + atomic_long_t xmit_queuelen; + struct svc_xprt *bc_xprt; + struct svc_serv *bc_serv; + unsigned int bc_alloc_max; + unsigned int bc_alloc_count; + atomic_t bc_slot_count; + spinlock_t bc_pa_lock; + struct list_head bc_pa_list; + struct rb_root recv_queue; + struct { + long unsigned int bind_count; + long unsigned int connect_count; + long unsigned int connect_start; + long unsigned int connect_time; + long unsigned int sends; + long unsigned int recvs; + long unsigned int bad_xids; + long unsigned int max_slots; + long long unsigned int req_u; + long long unsigned int bklog_u; + long long unsigned int sending_u; + long long unsigned int pending_u; + } stat; + struct net *xprt_net; + netns_tracker ns_tracker; + const char *servername; + const char *address_strings[6]; + struct dentry *debugfs; + struct callback_head rcu; + const struct xprt_class *xprt_class; + struct rpc_sysfs_xprt *xprt_sysfs; + bool main; +}; + +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_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 *, short unsigned int); + void (*connect)(struct rpc_xprt *, struct rpc_task *); + int (*get_srcaddr)(struct rpc_xprt *, char *, size_t); + short unsigned int (*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 (*abort_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 *, long unsigned int, long unsigned int); + 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_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 rpcsec_gss_info { + struct rpcsec_gss_oid oid; + u32 qop; + u32 service; +}; + +struct rproc_ops; + +struct rproc { + struct list_head node; + struct iommu_domain *domain; + const char *name; + const char *firmware; + void *priv; + struct rproc_ops *ops; + struct device dev; + atomic_t power; + unsigned int state; + enum rproc_dump_mechanism dump_conf; + struct mutex lock; + struct dentry *dbg_dir; + struct list_head traces; + int num_traces; + struct list_head carveouts; + struct list_head mappings; + u64 bootaddr; + struct list_head rvdevs; + struct list_head subdevs; + struct idr notifyids; + int index; + struct work_struct crash_handler; + unsigned int crash_cnt; + bool recovery_disabled; + int max_notifyid; + struct resource_table *table_ptr; + struct resource_table *clean_table; + struct resource_table *cached_table; + size_t table_sz; + bool has_iommu; + bool auto_boot; + bool sysfs_read_only; + struct list_head dump_segments; + int nb_vdev; + u8 elf_class; + u16 elf_machine; + struct cdev cdev; + bool cdev_put_on_release; + long unsigned int features[1]; +}; + +struct rproc_coredump_state { + struct rproc *rproc; + void *header; + struct completion dump_done; +}; + +struct rproc_mem_entry { + void *va; + bool is_iomem; + dma_addr_t dma; + size_t len; + u32 da; + void *priv; + char name[32]; + struct list_head node; + u32 rsc_offset; + u32 flags; + u32 of_resm_idx; + int (*alloc)(struct rproc *, struct rproc_mem_entry *); + int (*release)(struct rproc *, struct rproc_mem_entry *); +}; + +struct rproc_debug_trace { + struct rproc *rproc; + struct dentry *tfile; + struct list_head node; + struct rproc_mem_entry trace_mem; +}; + +struct rproc_dump_segment { + struct list_head node; + dma_addr_t da; + size_t size; + void *priv; + void (*dump)(struct rproc *, struct rproc_dump_segment *, void *, size_t, size_t); + loff_t offset; +}; + +struct rproc_ops { + int (*prepare)(struct rproc *); + int (*unprepare)(struct rproc *); + int (*start)(struct rproc *); + int (*stop)(struct rproc *); + int (*attach)(struct rproc *); + int (*detach)(struct rproc *); + void (*kick)(struct rproc *, int); + void * (*da_to_va)(struct rproc *, u64, size_t, bool *); + int (*parse_fw)(struct rproc *, const struct firmware *); + int (*handle_rsc)(struct rproc *, u32, void *, int, int); + struct resource_table * (*find_loaded_rsc_table)(struct rproc *, const struct firmware *); + struct resource_table * (*get_loaded_rsc_table)(struct rproc *, size_t *); + int (*load)(struct rproc *, const struct firmware *); + int (*sanity_check)(struct rproc *, const struct firmware *); + u64 (*get_boot_addr)(struct rproc *, const struct firmware *); + long unsigned int (*panic)(struct rproc *); + void (*coredump)(struct rproc *); +}; + +struct rproc_subdev { + struct list_head node; + int (*prepare)(struct rproc_subdev *); + int (*start)(struct rproc_subdev *); + void (*stop)(struct rproc_subdev *, bool); + void (*unprepare)(struct rproc_subdev *); +}; + +struct rproc_vdev; + +struct rproc_vring { + void *va; + int num; + u32 da; + u32 align; + int notifyid; + struct rproc_vdev *rvdev; + struct virtqueue *vq; +}; + +struct rproc_vdev { + struct rproc_subdev subdev; + struct platform_device *pdev; + unsigned int id; + struct list_head node; + struct rproc *rproc; + struct rproc_vring vring[2]; + u32 rsc_offset; + u32 index; +}; + +struct rproc_vdev_data { + u32 rsc_offset; + unsigned int id; + u32 index; + struct fw_rsc_vdev *rsc; +}; + +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 rps_map { + unsigned int len; + struct callback_head rcu; + u16 cpus[0]; +}; + +struct rps_sock_flow_table { + u32 mask; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 ents[0]; +}; + +struct uclamp_bucket { + long unsigned int value: 11; + long unsigned int tasks: 53; +}; + +struct uclamp_rq { + unsigned int value; + struct uclamp_bucket bucket[5]; +}; + +struct rt_prio_array { + long unsigned int 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; + bool overloaded; + struct plist_head pushable_tasks; + int rt_queued; +}; + +struct scx_dispatch_q { + raw_spinlock_t lock; + struct list_head list; + struct rb_root priq; + u32 nr; + u32 seq; + u64 id; + struct rhash_head hash_node; + struct llist_node free_node; + struct callback_head rcu; +}; + +struct scx_rq { + struct scx_dispatch_q local_dsq; + struct list_head runnable_list; + struct list_head ddsp_deferred_locals; + long unsigned int ops_qseq; + u64 extra_enq_flags; + u32 nr_running; + u32 cpuperf_target; + bool cpu_released; + u32 flags; + u64 clock; + cpumask_var_t cpus_to_kick; + cpumask_var_t cpus_to_kick_if_idle; + cpumask_var_t cpus_to_preempt; + cpumask_var_t cpus_to_wait; + long unsigned int pnt_seq; + struct balance_callback deferred_bal_cb; + struct irq_work deferred_irq_work; + struct irq_work kick_cpus_irq_work; +}; + +struct sched_dl_entity; + +typedef bool (*dl_server_has_tasks_f)(struct sched_dl_entity *); + +typedef struct task_struct * (*dl_server_pick_f)(struct sched_dl_entity *); + +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; + unsigned int dl_server: 1; + unsigned int dl_server_active: 1; + unsigned int dl_defer: 1; + unsigned int dl_defer_armed: 1; + unsigned int dl_defer_running: 1; + struct hrtimer dl_timer; + struct hrtimer inactive_timer; + struct rq *rq; + dl_server_has_tasks_f server_has_tasks; + dl_server_pick_f server_pick_task; + struct sched_dl_entity *pi_se; +}; + +struct sched_info { + long unsigned int pcount; + long long unsigned int run_delay; + long long unsigned int max_run_delay; + long long unsigned int min_run_delay; + long long unsigned int last_arrival; + long long unsigned int last_queued; +}; + +struct rq { + raw_spinlock_t __lock; + unsigned int nr_running; + unsigned int nr_numa_running; + unsigned int nr_preferred_running; + unsigned int numa_migrate_on; + long unsigned int last_blocked_load_update_tick; + unsigned int has_blocked_load; + long: 64; + long: 64; + long: 64; + call_single_data_t nohz_csd; + unsigned int nohz_tick_stopped; + atomic_t nohz_flags; + unsigned int ttwu_pending; + u64 nr_switches; + long: 64; + struct uclamp_rq uclamp[2]; + unsigned int uclamp_flags; + long: 64; + long: 64; + long: 64; + struct cfs_rq cfs; + struct rt_rq rt; + struct dl_rq dl; + struct scx_rq scx; + struct sched_dl_entity fair_server; + struct list_head leaf_cfs_rq_list; + struct list_head *tmp_alone_branch; + unsigned int nr_uninterruptible; + union { + struct task_struct *donor; + struct task_struct *curr; + }; + struct sched_dl_entity *dl_server; + struct task_struct *idle; + struct task_struct *stop; + long unsigned int next_balance; + struct mm_struct *prev_mm; + unsigned int clock_update_flags; + u64 clock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u64 clock_task; + u64 clock_pelt; + long unsigned int lost_idle_time; + u64 clock_pelt_idle; + u64 clock_idle; + atomic_t nr_iowait; + u64 last_seen_need_resched_ns; + int ticks_without_resched; + int membarrier_state; + struct root_domain *rd; + struct sched_domain *sd; + long unsigned int cpu_capacity; + struct balance_callback *balance_callback; + unsigned char nohz_idle_balance; + unsigned char idle_balance; + long unsigned int misfit_task_load; + int active_balance; + int push_cpu; + struct cpu_stop_work active_balance_work; + int cpu; + int online; + struct list_head cfs_tasks; + struct sched_avg avg_rt; + struct sched_avg avg_dl; + u64 idle_stamp; + u64 avg_idle; + u64 max_idle_balance_cost; + struct rcuwait hotplug_wait; + u64 prev_steal_time; + long unsigned int calc_load_update; + long int calc_load_active; + long: 64; + call_single_data_t hrtick_csd; + struct hrtimer hrtick_timer; + ktime_t hrtick_time; + struct sched_info rq_sched_info; + long long unsigned int 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; + struct rq *core; + struct task_struct *core_pick; + struct sched_dl_entity *core_dl_server; + unsigned int core_enabled; + unsigned int core_sched_seq; + struct rb_root core_tree; + unsigned int core_task_seq; + unsigned int core_pick_seq; + long unsigned int core_cookie; + unsigned int core_forceidle_count; + unsigned int core_forceidle_seq; + unsigned int core_forceidle_occupation; + u64 core_forceidle_start; + cpumask_var_t scratch_mask; + long: 64; + long: 64; + call_single_data_t cfsb_csd; + struct list_head cfsb_csd_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct rq_depth { + unsigned int max_depth; + int scale_step; + bool scaled_max; + unsigned int queue_depth; + unsigned int default_depth; +}; + +struct rq_iter_data { + struct blk_mq_hw_ctx *hctx; + bool has_rq; +}; + +struct rq_map_data { + struct page **pages; + long unsigned int offset; + short unsigned int page_order; + short unsigned int nr_entries; + bool null_mapped; + bool from_user; +}; + +struct rq_qos_ops { + void (*throttle)(struct rq_qos *, struct bio *); + void (*track)(struct rq_qos *, struct request *, struct bio *); + void (*merge)(struct rq_qos *, struct request *, struct bio *); + void (*issue)(struct rq_qos *, struct request *); + void (*requeue)(struct rq_qos *, struct request *); + void (*done)(struct rq_qos *, struct request *); + void (*done_bio)(struct rq_qos *, struct bio *); + void (*cleanup)(struct rq_qos *, struct bio *); + void (*queue_depth_changed)(struct rq_qos *); + void (*exit)(struct rq_qos *); + const struct blk_mq_debugfs_attr *debugfs_attrs; +}; + +struct rq_wait; + +typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); + +struct rq_qos_wait_data { + struct wait_queue_entry wq; + struct task_struct *task; + struct rq_wait *rqw; + acquire_inflight_cb_t *cb; + void *private_data; + bool got_token; +}; + +struct rq_wait { + wait_queue_head_t wait; + atomic_t inflight; +}; + +struct rq_wb { + unsigned int wb_background; + unsigned int wb_normal; + short int enable_state; + unsigned int unknown_cnt; + u64 win_nsec; + u64 cur_win_nsec; + struct blk_stat_callback *cb; + u64 sync_issue; + void *sync_cookie; + long unsigned int last_issue; + long unsigned int last_comp; + long unsigned int min_lat_nsec; + struct rq_qos rqos; + struct rq_wait rq_wait[3]; + struct rq_depth rq_depth; +}; + +struct rs_msg { + struct icmp6hdr icmph; + __u8 opt[0]; +}; + +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 rsa_mpi_key { + MPI n; + MPI e; + MPI d; + MPI p; + MPI q; + MPI dp; + MPI dq; + MPI qinv; +}; + +struct rsassa_pkcs1_ctx { + struct crypto_akcipher *child; + unsigned int key_size; +}; + +struct rsassa_pkcs1_inst_ctx { + struct crypto_akcipher_spawn spawn; + const struct hash_prefix *hash_prefix; +}; + +struct rseq { + __u32 cpu_id_start; + __u32 cpu_id; + __u64 rseq_cs; + __u32 flags; + __u32 node_id; + __u32 mm_cid; + char end[0]; +}; + +struct rseq_cs { + __u32 version; + __u32 flags; + __u64 start_ip; + __u64 post_commit_offset; + __u64 abort_ip; +}; + +struct rss_nl_dump_ctx { + long unsigned int ifindex; + long unsigned int ctx_idx; + unsigned int match_ifindex; + unsigned int start_ctx; +}; + +struct rss_reply_data { + struct ethnl_reply_data base; + bool no_key_fields; + u32 indir_size; + u32 hkey_size; + u32 hfunc; + u32 input_xfrm; + u32 *indir_table; + u8 *hkey; +}; + +struct rss_req_info { + struct ethnl_req_info base; + u32 rss_context; +}; + +struct rsvd_count { + int ndelayed; + 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 rt0_hdr { + struct ipv6_rt_hdr rt_hdr; + __u32 reserved; + struct in6_addr addr[0]; +}; + +struct rt6_exception { + struct hlist_node hlist; + struct rt6_info *rt6i; + long unsigned int stamp; + struct callback_head rcu; +}; + +struct rt6_exception_bucket { + struct hlist_head chain; + int depth; +}; + +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 rt6_rtnl_dump_arg { + struct sk_buff *skb; + struct netlink_callback *cb; + struct net *net; + struct fib_dump_filter filter; +}; + +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 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 rt_waiter_node { + struct rb_node entry; + int prio; + u64 deadline; +}; + +struct rt_mutex_waiter { + struct rt_waiter_node tree; + struct rt_waiter_node pi_tree; + struct task_struct *task; + struct rt_mutex_base *lock; + unsigned int wake_state; + struct ww_acquire_ctx *ww_ctx; +}; + +typedef struct rt_rq *rt_rq_iter_t; + +struct sigaltstack { + void *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 { + long unsigned int uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + struct sigcontext_64 uc_mcontext; + sigset_t uc_sigmask; +}; + +struct rt_sigframe { + char *pretcode; + struct ucontext uc; + struct siginfo info; +}; + +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 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 wake_q_node; + +struct wake_q_head { + struct wake_q_node *first; + struct wake_q_node **lastp; +}; + +struct rt_wake_q_head { + struct wake_q_head head; + struct task_struct *rtlock_task; +}; + +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 rta_mfc_stats { + __u64 mfcs_packets; + __u64 mfcs_bytes; + __u64 mfcs_wrong_if; +}; + +struct rtc_param; + +struct rtc_class_ops { + int (*ioctl)(struct device *, unsigned int, long unsigned int); + 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 *); + int (*set_offset)(struct device *, long int); + int (*param_get)(struct device *, struct rtc_param *); + int (*param_set)(struct device *, struct rtc_param *); +}; + +struct rtc_timer { + struct timerqueue_node node; + ktime_t period; + void (*func)(struct rtc_device *); + struct rtc_device *rtc; + int enabled; +}; + +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; + long unsigned int flags; + long unsigned int 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; + long unsigned int set_offset_nsec; + long unsigned int features[1]; + time64_t range_min; + timeu64_t range_max; + timeu64_t alarm_offset_max; + time64_t start_secs; + time64_t offset_secs; + bool set_start_time; +}; + +struct rtc_param { + __u64 param; + union { + __u64 uvalue; + __s64 svalue; + __u64 ptr; + }; + __u32 index; + __u32 __pad; +}; + +struct rtentry { + long unsigned int rt_pad1; + struct sockaddr rt_dst; + struct sockaddr rt_gateway; + struct sockaddr rt_genmask; + short unsigned int rt_flags; + short int rt_pad2; + long unsigned int rt_pad3; + void *rt_pad4; + short int rt_metric; + char *rt_dev; + long unsigned int rt_mtu; + long unsigned int rt_window; + short unsigned int rt_irtt; +}; + +struct rtgenmsg { + unsigned char rtgen_family; +}; + +struct rtm_dump_res_bucket_ctx; + +struct rtm_dump_nexthop_bucket_data { + struct rtm_dump_res_bucket_ctx *ctx; + struct nh_dump_filter filter; +}; + +struct rtm_dump_nh_ctx { + u32 idx; +}; + +struct rtm_dump_res_bucket_ctx { + struct rtm_dump_nh_ctx nh; + u16 bucket_index; +}; + +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 rtnexthop { + short unsigned int rtnh_len; + unsigned char rtnh_flags; + unsigned char rtnh_hops; + int rtnh_ifindex; +}; + +struct rtnl_af_ops { + struct list_head list; + struct srcu_struct srcu; + 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 *); +}; + +typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *); + +typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); + +struct rtnl_link { + rtnl_doit_func doit; + rtnl_dumpit_func dumpit; + struct module *owner; + unsigned int flags; + struct callback_head rcu; +}; + +struct rtnl_link_ifmap { + __u64 mem_start; + __u64 mem_end; + __u64 base_addr; + __u16 irq; + __u8 dma; + __u8 port; +}; + +struct rtnl_link_ops { + struct list_head list; + struct srcu_struct srcu; + 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; + const u16 peer_type; + 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)(void); + unsigned int (*get_num_rx_queues)(void); + 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 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_mdb_dump_ctx { + long int idx; +}; + +struct rtnl_msg_handler { + struct module *owner; + int protocol; + int msgtype; + rtnl_doit_func doit; + rtnl_dumpit_func dumpit; + int flags; +}; + +struct rtnl_net_dump_cb { + struct net *tgt_net; + struct net *ref_net; + struct sk_buff *skb; + struct net_fill_args fillargs; + int idx; + int s_idx; +}; + +struct rtnl_nets { + struct net *net[3]; + unsigned char len; +}; + +struct rtnl_newlink_tbs { + struct nlattr *tb[67]; + struct nlattr *linkinfo[6]; + struct nlattr *attr[51]; + struct nlattr *slave_attr[45]; +}; + +struct rtnl_offload_xstats_request_used { + bool request; + bool used; +}; + +struct rtnl_stats_dump_filters { + u32 mask[6]; +}; + +struct rtree_node { + struct list_head list; + long unsigned int *data; +}; + +struct rtvia { + __kernel_sa_family_t rtvia_family; + __u8 rtvia_addr[0]; +}; + +struct rusage { + struct __kernel_old_timeval ru_utime; + struct __kernel_old_timeval ru_stime; + __kernel_long_t ru_maxrss; + __kernel_long_t ru_ixrss; + __kernel_long_t ru_idrss; + __kernel_long_t ru_isrss; + __kernel_long_t ru_minflt; + __kernel_long_t ru_majflt; + __kernel_long_t ru_nswap; + __kernel_long_t ru_inblock; + __kernel_long_t ru_oublock; + __kernel_long_t ru_msgsnd; + __kernel_long_t ru_msgrcv; + __kernel_long_t ru_nsignals; + __kernel_long_t ru_nvcsw; + __kernel_long_t ru_nivcsw; +}; + +struct rv_interface { + struct dentry *root_dir; + struct dentry *monitors_dir; +}; + +struct rv_monitor { + const char *name; + const char *description; + bool enabled; + int (*enable)(void); + void (*disable)(void); + void (*reset)(void); + void (*react)(char *); +}; + +struct rv_reactor_def; + +struct rv_monitor_def { + struct list_head list; + struct rv_monitor *monitor; + struct dentry *root_d; + struct rv_reactor_def *rdef; + bool reacting; + bool task_monitor; +}; + +struct rv_reactor { + const char *name; + const char *description; + void (*react)(char *); +}; + +struct rv_reactor_def { + struct list_head list; + struct rv_reactor *reactor; + int counter; +}; + +union rv_task_monitor { + struct da_monitor da_mon; +}; + +typedef struct rw_semaphore *class_rwsem_read_t; + +typedef struct rw_semaphore *class_rwsem_write_t; + +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 rwsem_waiter { + struct list_head list; + struct task_struct *task; + enum rwsem_waiter_type type; + long unsigned int timeout; + bool handoff_set; +}; + +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 s { + __be32 conv; +}; + +struct s3_save { + u32 command; + u32 dev_nt; + u64 dcbaa_ptr; + u32 config_reg; +}; + +struct s_data { + struct sched_domain **sd; + struct root_domain *rd; +}; + +struct value_name_pair; + +struct sa_name_list { + int opcode; + const struct value_name_pair *arr; + int arr_sz; +}; + +struct samsung_sdi_battery { + char *compatible; + char *name; + struct power_supply_battery_info info; +}; + +struct saved_alias { + struct kmem_cache *s; + const char *name; + struct saved_alias *next; +}; + +struct saved_cmdlines_buffer { + unsigned int map_pid_to_cmdline[32769]; + unsigned int *map_cmdline_to_pid; + unsigned int cmdline_num; + int cmdline_idx; + char saved_cmdlines[0]; +}; + +struct 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; + long unsigned int kernelmode_gs_base; + long unsigned int usermode_gs_base; + long unsigned int fs_base; + long unsigned int cr0; + long unsigned int cr2; + long unsigned int cr3; + long unsigned int cr4; + u64 misc_enable; + struct saved_msrs saved_msrs; + long unsigned int efer; + u16 gdt_pad; + struct desc_ptr gdt_desc; + u16 idt_pad; + struct desc_ptr idt; + u16 ldt; + u16 tss; + long unsigned int tr; + long unsigned int safety; + long unsigned int return_address; + bool misc_enable_saved; +} __attribute__((packed)); + +struct saved_msr { + bool valid; + struct msr_info info; +}; + +struct saved_syn { + u32 mac_hdrlen; + u32 network_hdrlen; + u32 tcp_hdrlen; + u8 data[0]; +}; + +struct sb_writers { + short unsigned int frozen; + int freeze_kcount; + int freeze_ucount; + struct percpu_rw_semaphore rw_sem[3]; +}; + +struct sbitmap_word { + long unsigned int word; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long unsigned int cleared; + raw_spinlock_t swap_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct sbq_wait { + struct sbitmap_queue *sbq; + struct wait_queue_entry wait; +}; + +struct sbq_wait_state { + wait_queue_head_t wait; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct scan_area { + u64 addr; + u64 size; +}; + +struct scan_control { + long unsigned int nr_to_reclaim; + nodemask_t *nodemask; + struct mem_cgroup *target_mem_cgroup; + long unsigned int anon_cost; + long unsigned int file_cost; + int *proactive_swappiness; + unsigned int may_deactivate: 2; + unsigned int force_deactivate: 1; + unsigned int skipped_deactivate: 1; + unsigned int may_writepage: 1; + unsigned int may_unmap: 1; + unsigned int may_swap: 1; + unsigned int no_cache_trim_mode: 1; + unsigned int cache_trim_mode_failed: 1; + unsigned int proactive: 1; + unsigned int memcg_low_reclaim: 1; + unsigned int memcg_low_skipped: 1; + unsigned int memcg_full_walk: 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; + long unsigned int nr_scanned; + long unsigned int nr_reclaimed; + struct { + unsigned int dirty; + unsigned int unqueued_dirty; + unsigned int congested; + unsigned int writeback; + unsigned int immediate; + unsigned int file_taken; + unsigned int taken; + } nr; + struct reclaim_state reclaim_state; +}; + +struct scatter_walk { + struct scatterlist *sg; + unsigned int offset; +}; + +struct sccnxp_chip { + const char *name; + unsigned int nr; + long unsigned int freq_min; + long unsigned int freq_std; + long unsigned int freq_max; + unsigned int flags; + unsigned int fifosize; + unsigned int trwd; +}; + +struct sccnxp_pdata { + const u8 reg_shift; + const u32 mctrl_cfg[2]; + const unsigned int poll_time_us; +}; + +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 sccnxp_port { + struct uart_driver uart; + struct uart_port port[2]; + bool opened[2]; + int irq; + u8 imr; + struct sccnxp_chip *chip; + struct console console; + spinlock_t lock; + bool poll; + struct timer_list timer; + struct sccnxp_pdata pdata; + struct regulator *regulator; +}; + +struct sch_frag_data { + long unsigned int 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 sched_attr { + __u32 size; + __u32 sched_policy; + __u64 sched_flags; + __s32 sched_nice; + __u32 sched_priority; + __u64 sched_runtime; + __u64 sched_deadline; + __u64 sched_period; + __u32 sched_util_min; + __u32 sched_util_max; +}; + +struct sched_class { + int uclamp_enabled; + void (*enqueue_task)(struct rq *, struct task_struct *, int); + bool (*dequeue_task)(struct rq *, struct task_struct *, int); + void (*yield_task)(struct rq *); + bool (*yield_to_task)(struct rq *, struct task_struct *); + void (*wakeup_preempt)(struct rq *, struct task_struct *, int); + int (*balance)(struct rq *, struct task_struct *, struct rq_flags *); + struct task_struct * (*pick_task)(struct rq *); + struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *); + void (*put_prev_task)(struct rq *, struct task_struct *, struct task_struct *); + void (*set_next_task)(struct rq *, struct task_struct *, bool); + int (*select_task_rq)(struct task_struct *, int, int); + 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 (*switching_to)(struct rq *, struct task_struct *); + void (*switched_from)(struct rq *, struct task_struct *); + void (*switched_to)(struct rq *, struct task_struct *); + void (*reweight_task)(struct rq *, struct task_struct *, const struct load_weight *); + 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 *); + int (*task_is_throttled)(struct task_struct *, int); +}; + +struct sched_clock_data { + u64 tick_raw; + u64 tick_gtod; + u64 clock; +}; + +struct sched_core_cookie { + refcount_t refcnt; +}; + +struct sched_group; + +struct sched_domain_shared; + +struct sched_domain { + struct sched_domain *parent; + struct sched_domain *child; + struct sched_group *groups; + long unsigned int min_interval; + long unsigned int 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; + long unsigned int last_balance; + unsigned int balance_interval; + unsigned int nr_balance_failed; + u64 max_newidle_lb_cost; + long unsigned int last_decay_max_lb_cost; + unsigned int lb_count[3]; + unsigned int lb_failed[3]; + unsigned int lb_balanced[3]; + unsigned int lb_imbalance_load[3]; + unsigned int lb_imbalance_util[3]; + unsigned int lb_imbalance_task[3]; + unsigned int lb_imbalance_misfit[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; + char *name; + union { + void *private; + struct callback_head rcu; + }; + struct sched_domain_shared *shared; + unsigned int span_weight; + long unsigned int span[0]; +}; + +struct sched_domain_attr { + int relax_domain_level; +}; + +struct sched_domain_shared { + atomic_t ref; + atomic_t nr_busy_cpus; + int has_idle_cores; + int nr_idle_scan; +}; + +typedef const struct cpumask * (*sched_domain_mask_f)(int); + +typedef int (*sched_domain_flags_f)(void); + +struct sched_group_capacity; + +struct sd_data { + struct sched_domain **sd; + struct sched_domain_shared **sds; + struct sched_group **sg; + struct sched_group_capacity **sgc; +}; + +struct sched_domain_topology_level { + sched_domain_mask_f mask; + sched_domain_flags_f sd_flags; + int flags; + int numa_level; + struct sd_data data; + char *name; +}; + +struct sched_enq_and_set_ctx { + struct task_struct *p; + int queue_flags; + bool queued; + bool running; +}; + +struct sched_entity { + struct load_weight load; + struct rb_node run_node; + u64 deadline; + u64 min_vruntime; + u64 min_slice; + struct list_head group_node; + unsigned char on_rq; + unsigned char sched_delayed; + unsigned char rel_deadline; + unsigned char custom_slice; + u64 exec_start; + u64 sum_exec_runtime; + u64 prev_sum_exec_runtime; + u64 vruntime; + s64 vlag; + u64 slice; + u64 nr_migrations; + int depth; + struct sched_entity *parent; + struct cfs_rq *cfs_rq; + struct cfs_rq *my_q; + long unsigned int runnable_weight; + long: 64; + struct sched_avg avg; +}; + +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; + s64 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; + u64 core_forceidle_sum; + long: 64; + long: 64; + long: 64; +}; + +struct sched_entity_stats { + struct sched_entity se; + struct sched_statistics stats; +}; + +struct sched_ext_entity { + struct scx_dispatch_q *dsq; + struct scx_dsq_list_node dsq_list; + struct rb_node dsq_priq; + u32 dsq_seq; + u32 dsq_flags; + u32 flags; + u32 weight; + s32 sticky_cpu; + s32 holding_cpu; + u32 kf_mask; + struct task_struct *kf_tasks[2]; + atomic_long_t ops_state; + struct list_head runnable_node; + long unsigned int runnable_at; + u64 core_sched_at; + u64 ddsp_dsq_id; + u64 ddsp_enq_flags; + u64 slice; + u64 dsq_vtime; + bool disallow; + struct cgroup *cgrp_moving_from; + struct list_head tasks_node; +}; + +struct sched_group { + struct sched_group *next; + atomic_t ref; + unsigned int group_weight; + unsigned int cores; + struct sched_group_capacity *sgc; + int asym_prefer_cpu; + int flags; + long unsigned int cpumask[0]; +}; + +struct sched_group_capacity { + atomic_t ref; + long unsigned int capacity; + long unsigned int min_capacity; + long unsigned int max_capacity; + long unsigned int next_update; + int imbalance; + int id; + long unsigned int cpumask[0]; +}; + +struct sched_param { + int sched_priority; +}; + +struct sched_pin_override { + int32_t pcpu; +}; + +struct sched_poll { + __guest_handle_evtchn_port_t ports; + unsigned int nr_ports; + uint64_t timeout; +}; + +struct sched_rt_entity { + struct list_head run_list; + long unsigned int timeout; + long unsigned int watchdog_stamp; + unsigned int time_slice; + short unsigned int on_rq; + short unsigned int on_list; + struct sched_rt_entity *back; +}; + +struct sched_shutdown { + unsigned int reason; +}; + +struct scm_fp_list; + +struct scm_cookie { + struct pid *pid; + struct scm_fp_list *fp; + struct scm_creds creds; + u32 secid; +}; + +struct unix_edge; + +struct scm_fp_list { + short int count; + short int count_unix; + short int max; + bool inflight; + bool dead; + struct list_head vertices; + struct unix_edge *edges; + struct user_struct *user; + struct file *fp[253]; +}; + +struct scm_stat { + atomic_t nr_fds; + long unsigned int nr_unix_fds; +}; + +struct scm_timestamping { + struct __kernel_old_timespec ts[3]; +}; + +struct scm_timestamping64 { + struct __kernel_timespec ts[3]; +}; + +struct scm_timestamping_internal { + struct timespec64 ts[3]; +}; + +struct scm_ts_pktinfo { + __u32 if_index; + __u32 pkt_length; + __u32 reserved[2]; +}; + +struct scomp_alg { + void * (*alloc_ctx)(struct crypto_scomp *); + void (*free_ctx)(struct crypto_scomp *, void *); + int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; +}; + +struct scomp_scratch { + spinlock_t lock; + void *src; + void *dst; +}; + +struct scratches_to_free { + struct callback_head rcu; + unsigned int cnt; + void *scratches[0]; +}; + +struct scsi_cd { + unsigned int capacity; + struct scsi_device *device; + unsigned int vendor; + long unsigned int 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; +}; + +typedef struct scsi_cd Scsi_CD; + +struct scsi_data_buffer { + struct sg_table table; + unsigned int length; +}; + +struct scsi_cmnd { + struct scsi_device *device; + struct list_head eh_entry; + struct delayed_work abort_work; + struct callback_head rcu; + int eh_eflags; + int budget_token; + long unsigned int jiffies_at_alloc; + int retries; + int allowed; + unsigned char prot_op; + unsigned char prot_type; + unsigned char prot_flags; + enum scsi_cmnd_submitter submitter; + short unsigned int 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; + long unsigned int state; + unsigned int extra_len; + unsigned char *host_scribble; + int result; +}; + +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 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; + short unsigned int queue_depth; + short unsigned int max_queue_depth; + short unsigned int last_queue_full_depth; + short unsigned int last_queue_full_count; + long unsigned int last_queue_full_time; + long unsigned int queue_ramp_up_period; + long unsigned int 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 *vpd_pg0; + struct scsi_vpd *vpd_pg83; + struct scsi_vpd *vpd_pg80; + struct scsi_vpd *vpd_pg89; + struct scsi_vpd *vpd_pgb0; + struct scsi_vpd *vpd_pgb1; + struct scsi_vpd *vpd_pgb2; + struct scsi_vpd *vpd_pgb7; + struct scsi_target *sdev_target; + blist_flags_t sdev_bflags; + unsigned int eh_timeout; + unsigned int manage_system_start_stop: 1; + unsigned int manage_runtime_start_stop: 1; + unsigned int manage_shutdown: 1; + unsigned int force_runtime_start_on_system_start: 1; + unsigned int removable: 1; + unsigned int changed: 1; + unsigned int busy: 1; + unsigned int lockable: 1; + unsigned int locked: 1; + unsigned int borken: 1; + unsigned int disconnect: 1; + unsigned int soft_reset: 1; + unsigned int sdtr: 1; + unsigned int wdtr: 1; + unsigned int ppr: 1; + unsigned int tagged_supported: 1; + unsigned int simple_tags: 1; + unsigned int was_reset: 1; + unsigned int expecting_cc_ua: 1; + unsigned int use_10_for_rw: 1; + unsigned int use_10_for_ms: 1; + unsigned int set_dbd_for_ms: 1; + unsigned int read_before_ms: 1; + unsigned int no_report_opcodes: 1; + unsigned int no_write_same: 1; + unsigned int use_16_for_rw: 1; + unsigned int use_16_for_sync: 1; + unsigned int skip_ms_page_8: 1; + unsigned int skip_ms_page_3f: 1; + unsigned int skip_vpd_pages: 1; + unsigned int try_vpd_pages: 1; + unsigned int use_192_bytes_for_3f: 1; + unsigned int no_start_on_add: 1; + unsigned int allow_restart: 1; + unsigned int start_stop_pwr_cond: 1; + unsigned int no_uld_attach: 1; + unsigned int select_no_atn: 1; + unsigned int fix_capacity: 1; + unsigned int guess_capacity: 1; + unsigned int retry_hwerror: 1; + unsigned int last_sector_bug: 1; + unsigned int no_read_disc_info: 1; + unsigned int no_read_capacity_16: 1; + unsigned int try_rc_10_first: 1; + unsigned int security_supported: 1; + unsigned int is_visible: 1; + unsigned int wce_default_on: 1; + unsigned int no_dif: 1; + unsigned int broken_fua: 1; + unsigned int lun_in_cdb: 1; + unsigned int unmap_limit_for_ws: 1; + unsigned int rpm_autosuspend: 1; + unsigned int ignore_media_change: 1; + unsigned int silence_suspend: 1; + unsigned int no_vpd_size: 1; + unsigned int cdl_supported: 1; + unsigned int cdl_enable: 1; + unsigned int queue_stopped; + bool offline_already; + atomic_t disk_events_disable_depth; + long unsigned int supported_events[1]; + long unsigned int 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; + long unsigned int sdev_data[0]; +}; + +typedef void (*activate_complete)(void *, int); + +struct scsi_device_handler { + struct list_head list; + struct module *module; + const char *name; + enum scsi_disposition (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *); + int (*attach)(struct scsi_device *); + void (*detach)(struct scsi_device *); + int (*activate)(struct scsi_device *, activate_complete, void *); + blk_status_t (*prep_fn)(struct scsi_device *, struct request *); + int (*set_params)(struct scsi_device *, const char *); + void (*rescan)(struct scsi_device *); +}; + +struct scsi_dh_blist { + const char *vendor; + const char *model; + const char *driver; +}; + +struct zoned_disk_info { + u32 nr_zones; + u32 zone_blocks; +}; + +struct scsi_disk { + struct scsi_device *device; + struct device disk_dev; + struct gendisk *disk; + struct opal_dev *opal_dev; + struct zoned_disk_info early_zone_info; + struct zoned_disk_info zone_info; + u32 zones_optimal_open; + u32 zones_optimal_nonseq; + u32 zones_max_open; + u32 zone_starting_lba_gran; + 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 max_atomic; + u32 atomic_alignment; + u32 atomic_granularity; + u32 max_atomic_with_boundary; + u32 max_atomic_boundary; + u32 index; + unsigned int physical_block_size; + unsigned int max_medium_access_timeouts; + unsigned int medium_access_timed_out; + u16 permanent_stream_count; + u8 media_present; + u8 write_prot; + u8 protection_type; + u8 provisioning_mode; + u8 zeroing_mode; + u8 nr_actuators; + bool suspended; + unsigned int ATO: 1; + unsigned int cache_override: 1; + unsigned int WCE: 1; + unsigned int RCD: 1; + unsigned int DPOFUA: 1; + unsigned int first_scan: 1; + unsigned int lbpme: 1; + unsigned int lbprz: 1; + unsigned int lbpu: 1; + unsigned int lbpws: 1; + unsigned int lbpws10: 1; + unsigned int lbpvpd: 1; + unsigned int ws10: 1; + unsigned int ws16: 1; + unsigned int rc_basis: 2; + unsigned int zoned: 2; + unsigned int urswrz: 1; + unsigned int security: 1; + unsigned int ignore_medium_access_errors: 1; + unsigned int rscs: 1; + unsigned int use_atomic_write_boundary: 1; +}; + +struct scsi_driver { + struct device_driver gendrv; + int (*resume)(struct device *); + void (*rescan)(struct device *); + blk_status_t (*init_command)(struct scsi_cmnd *); + void (*uninit_command)(struct scsi_cmnd *); + int (*done)(struct scsi_cmnd *); + int (*eh_action)(struct scsi_cmnd *, int); + void (*eh_reset)(struct scsi_cmnd *); +}; + +struct scsi_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 scsi_event { + enum scsi_device_event evt_type; + struct list_head node; +}; + +struct scsi_failures; + +struct scsi_exec_args { + unsigned char *sense; + unsigned int sense_len; + struct scsi_sense_hdr *sshdr; + blk_mq_req_flags_t req_flags; + int scmd_flags; + int *resid; + struct scsi_failures *failures; +}; + +struct scsi_failure { + int result; + u8 sense; + u8 asc; + u8 ascq; + s8 allowed; + s8 retries; +}; + +struct scsi_failures { + int total_allowed; + int total_retries; + struct scsi_failure *failure_definitions; +}; + +struct scsi_host_busy_iter_data { + bool (*fn)(struct scsi_cmnd *, void *); + void *priv; +}; + +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 *); + int (*compat_ioctl)(struct scsi_device *, unsigned int, void *); + 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 (*sdev_init)(struct scsi_device *); + int (*sdev_configure)(struct scsi_device *, struct queue_limits *); + void (*sdev_destroy)(struct scsi_device *); + int (*target_alloc)(struct scsi_target *); + void (*target_destroy)(struct scsi_target *); + int (*scan_finished)(struct Scsi_Host *, long unsigned int); + 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; + short unsigned int sg_tablesize; + short unsigned int sg_prot_tablesize; + unsigned int max_sectors; + unsigned int max_segment_size; + unsigned int dma_alignment; + long unsigned int dma_boundary; + long unsigned int virt_boundary_mask; + short int cmd_per_lun; + bool tag_alloc_policy_rr: 1; + unsigned int track_queue_depth: 1; + unsigned int supported_mode: 2; + unsigned int emulated: 1; + unsigned int skip_settle_delay: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int queuecommand_may_block: 1; + unsigned int max_host_blocked; + const struct attribute_group **shost_groups; + const struct attribute_group **sdev_groups; + u64 vendor_id; +}; + +struct scsi_idlun { + __u32 dev_id; + __u32 host_unique_id; +}; + +struct scsi_io_group_descriptor { + u8 ic_enable: 1; + u8 cs_enble: 1; + u8 st_enble: 1; + u8 reserved1: 3; + u8 io_advice_hints_mode: 2; + u8 reserved2[3]; + u8 lbm_descriptor_type: 4; + u8 rlbsr: 2; + u8 reserved3: 1; + u8 acdlu: 1; + u8 params[2]; + u8 reserved4; + u8 reserved5[8]; +}; + +struct scsi_ioctl_command { + unsigned int inlen; + unsigned int outlen; + unsigned char data[0]; +}; + +struct scsi_lun { + __u8 scsi_lun[8]; +}; + +struct scsi_mode_data { + __u32 length; + __u16 block_descriptor_length; + __u8 medium_type; + __u8 device_specific; + __u8 header_length; + __u8 longlba: 1; +}; + +struct scsi_nl_hdr { + __u8 version; + __u8 transport; + __u16 magic; + __u16 msgtype; + __u16 msglen; +}; + +struct scsi_proc_entry { + struct list_head entry; + const struct scsi_host_template *sht; + struct proc_dir_entry *proc_dir; + unsigned int present; +}; + +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_stream_status { + u8 reserved1: 7; + u8 perm: 1; + u8 reserved2; + __be16 stream_identifier; + u8 rel_lifetime: 6; + u8 reserved3: 2; + u8 reserved4[3]; +}; + +struct scsi_stream_status_header { + __be32 len; + u16 reserved; + __be16 number_of_open_streams; + struct { + struct {} __empty_stream_status; + struct scsi_stream_status stream_status[0]; + }; +}; + +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; + long unsigned int starget_data[0]; +}; + +struct scsi_varlen_cdb_hdr { + __u8 opcode; + __u8 control; + __u8 misc[5]; + __u8 additional_cdb_length; + __be16 service_action; +}; + +struct scsi_vpd { + struct callback_head rcu; + int len; + unsigned char data[0]; +}; + +struct sctp_paramhdr { + __be16 type; + __be16 length; +}; + +struct sctp_adaptation_ind_param { + struct sctp_paramhdr param_hdr; + __be32 adaptation_ind; +}; + +struct sctp_addip_param { + struct sctp_paramhdr param_hdr; + __be32 crr_id; +}; + +struct sctp_addiphdr { + __be32 serial; +}; + +union sctp_addr { + struct sockaddr_in v4; + struct sockaddr_in6 v6; + struct sockaddr sa; +}; + +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_transport; + +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 *, int *); + 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_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; +}; + +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_tsnmap { + long unsigned int *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_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 { + struct list_head fc_list; + }; + }; + struct sctp_stream_interleave *si; +}; + +struct sctp_sched_ops; + +struct sctp_association; + +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_random_param; + +struct sctp_chunks_param; + +struct sctp_hmac_algo_param; + +struct sctp_auth_bytes; + +struct sctp_shared_key; + +struct sctp_association { + struct sctp_ep_common base; + struct list_head asocs; + sctp_assoc_t assoc_id; + struct sctp_endpoint *ep; + struct sctp_cookie c; + struct { + struct list_head transport_addr_list; + __u32 rwnd; + __u16 transport_count; + __u16 port; + struct sctp_transport *primary_path; + union sctp_addr primary_addr; + struct sctp_transport *active_path; + struct sctp_transport *retran_path; + struct sctp_transport *last_sent_to; + struct sctp_transport *last_data_from; + struct sctp_tsnmap tsn_map; + __be16 addip_disabled_mask; + __u16 ecn_capable: 1; + __u16 ipv4_address: 1; + __u16 ipv6_address: 1; + __u16 asconf_capable: 1; + __u16 prsctp_capable: 1; + __u16 reconf_capable: 1; + __u16 intl_capable: 1; + __u16 auth_capable: 1; + __u16 sack_needed: 1; + __u16 sack_generation: 1; + __u16 zero_window_announced: 1; + __u32 sack_cnt; + __u32 adaptation_ind; + struct sctp_inithdr_host i; + void *cookie; + int cookie_len; + __u32 addip_serial; + struct sctp_random_param *peer_random; + struct sctp_chunks_param *peer_chunks; + struct sctp_hmac_algo_param *peer_hmacs; + } peer; + enum sctp_state state; + int overall_error_count; + ktime_t cookie_life; + long unsigned int rto_initial; + long unsigned int rto_max; + long unsigned int rto_min; + int max_burst; + int max_retrans; + __u16 pf_retrans; + __u16 ps_retrans; + __u16 max_init_attempts; + __u16 init_retries; + long unsigned int max_init_timeo; + long unsigned int hbinterval; + long unsigned int probe_interval; + __be16 encap_port; + __u16 pathmaxrxt; + __u32 flowlabel; + __u8 dscp; + __u8 pmtu_pending; + __u32 pathmtu; + __u32 param_flags; + __u32 sackfreq; + long unsigned int sackdelay; + long unsigned int 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_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_auth_bytes { + refcount_t refcnt; + __u32 len; + __u8 data[0]; +}; + +struct sctp_authhdr { + __be16 shkey_id; + __be16 hmac_id; +}; + +struct sctp_bind_bucket { + short unsigned int port; + signed char fastreuse; + signed char fastreuseport; + kuid_t fastuid; + struct hlist_node node; + struct hlist_head owner; + struct net *net; +}; + +struct sctp_cookie_preserve_param; + +struct sctp_hostname_param; + +struct sctp_cookie_param; + +struct sctp_supported_addrs_param; + +struct sctp_supported_ext_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_inithdr; + +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_fwdtsn_hdr; + +struct sctp_idatahdr; + +struct sctp_ifwdtsn_hdr; + +struct sctp_chunkhdr; + +struct sctphdr; + +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; + long unsigned int 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_chunkhdr { + __u8 type; + __u8 flags; + __be16 length; +}; + +struct sctp_chunks_param { + struct sctp_paramhdr param_hdr; + __u8 chunks[0]; +}; + +struct sctp_cookie_param { + struct sctp_paramhdr p; + __u8 body[0]; +}; + +struct sctp_cookie_preserve_param { + struct sctp_paramhdr param_hdr; + __be32 lifespan_increment; +}; + +struct sctp_cwrhdr { + __be32 lowest_tsn; +}; + +struct sctp_datahdr { + __be32 tsn; + __be16 stream; + __be16 ssn; + __u32 ppid; +}; + +struct sctp_datamsg { + struct list_head chunks; + refcount_t refcnt; + long unsigned int expires_at; + int send_error; + u8 send_failed: 1; + u8 can_delay: 1; + u8 abandoned: 1; +}; + +struct sctp_ecnehdr { + __be32 lowest_tsn; +}; + +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_errhdr { + __be16 cause; + __be16 length; +}; + +struct sctp_fwdtsn_hdr { + __be32 new_cum_tsn; +}; + +struct sctp_heartbeathdr { + struct sctp_paramhdr info; +}; + +struct sctp_hmac_algo_param { + struct sctp_paramhdr param_hdr; + __be16 hmac_ids[0]; +}; + +struct sctp_hostname_param { + struct sctp_paramhdr param_hdr; + uint8_t hostname[0]; +}; + +struct sctp_idatahdr { + __be32 tsn; + __be16 stream; + __be16 reserved; + __be32 mid; + union { + __u32 ppid; + __be32 fsn; + }; + __u8 payload[0]; +}; + +struct sctp_ifwdtsn_hdr { + __be32 new_cum_tsn; +}; + +struct sctp_inithdr { + __be32 init_tag; + __be32 a_rwnd; + __be16 num_outbound_streams; + __be16 num_inbound_streams; + __be32 initial_tsn; +}; + +struct sctp_initmsg { + __u16 sinit_num_ostreams; + __u16 sinit_max_instreams; + __u16 sinit_max_attempts; + __u16 sinit_max_init_timeo; +}; + +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_paddrparams { + sctp_assoc_t spp_assoc_id; + struct __kernel_sockaddr_storage spp_address; + __u32 spp_hbinterval; + __u16 spp_pathmaxrxt; + __u32 spp_pathmtu; + __u32 spp_sackdelay; + __u32 spp_flags; + __u32 spp_ipv6_flowlabel; + __u8 spp_dscp; + int: 0; +} __attribute__((packed)); + +struct sctp_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_random_param { + struct sctp_paramhdr param_hdr; + __u8 random_val[0]; +}; + +struct sctp_rtoinfo { + sctp_assoc_t srto_assoc_id; + __u32 srto_initial; + __u32 srto_max; + __u32 srto_min; +}; + +struct sctp_sackhdr { + __be32 cum_tsn_ack; + __be32 a_rwnd; + __be16 num_gap_ack_blocks; + __be16 num_dup_tsns; +}; + +struct sctp_sender_hb_info { + struct sctp_paramhdr param_hdr; + union sctp_addr daddr; + long unsigned int sent_at; + __u64 hb_nonce; + __u32 probe_size; +}; + +struct sctp_shared_key { + struct list_head key_list; + struct sctp_auth_bytes *key; + refcount_t refcnt; + __u16 key_id; + __u8 deactivated; +}; + +struct sctp_shutdownhdr { + __be32 cum_tsn_ack; +}; + +struct sctp_signed_cookie { + __u8 signature[32]; + __u32 __pad; + struct sctp_cookie c; +} __attribute__((packed)); + +struct sctp_sock { + struct inet_sock inet; + enum sctp_socket_type type; + struct sctp_pf *pf; + struct crypto_shash *hmac; + char *sctp_hmac_alg; + struct sctp_endpoint *ep; + struct sctp_bind_bucket *bind_hash; + __u16 default_stream; + __u32 default_ppid; + __u16 default_flags; + __u32 default_context; + __u32 default_timetolive; + __u32 default_rcv_context; + int max_burst; + __u32 hbinterval; + __u32 probe_interval; + __be16 udp_port; + __be16 encap_port; + __u16 pathmaxrxt; + __u32 flowlabel; + __u8 dscp; + __u16 pf_retrans; + __u16 ps_retrans; + __u32 pathmtu; + __u32 sackdelay; + __u32 sackfreq; + __u32 param_flags; + __u32 default_ss; + struct sctp_rtoinfo rtoinfo; + struct sctp_paddrparams paddrparam; + struct sctp_assocparams assocparams; + __u16 subscribe; + struct sctp_initmsg initmsg; + int user_frag; + __u32 autoclose; + __u32 adaptation_ind; + __u32 pd_point; + __u16 nodelay: 1; + __u16 pf_expose: 2; + __u16 reuse: 1; + __u16 disable_fragments: 1; + __u16 v4mapped: 1; + __u16 frag_interleave: 1; + __u16 recvrcvinfo: 1; + __u16 recvnxtinfo: 1; + __u16 data_ready_signalled: 1; + atomic_t pd_mode; + struct sk_buff_head pd_lobby; + struct list_head auto_asconf_list; + int do_auto_asconf; +}; + +struct 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 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 { + struct list_head fc_list; + __u32 fc_length; + __u16 fc_weight; + }; + }; +}; + +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_supported_addrs_param { + struct sctp_paramhdr param_hdr; + __be16 types[0]; +}; + +struct sctp_supported_ext_param { + struct sctp_paramhdr param_hdr; + __u8 chunks[0]; +}; + +struct sctp_transport { + struct list_head transports; + struct rhlist_head node; + refcount_t refcnt; + __u32 dead: 1; + __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; + long unsigned int 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; + long unsigned int hbinterval; + long unsigned int probe_interval; + long unsigned int sackdelay; + __u32 sackfreq; + atomic_t mtu_info; + ktime_t last_time_heard; + long unsigned int last_time_sent; + long unsigned int 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; + short unsigned int 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_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 sctphdr { + __be16 source; + __be16 dest; + __be32 vtag; + __le32 checksum; +}; + +struct scx_bstr_buf { + u64 data[12]; + char line[1024]; +}; + +struct scx_cgroup_init_args { + u32 weight; +}; + +struct scx_cpu_acquire_args {}; + +struct scx_cpu_release_args { + enum scx_cpu_preempt_reason reason; + struct task_struct *task; +}; + +struct scx_dsp_buf_ent { + struct task_struct *task; + long unsigned int qseq; + u64 dsq_id; + u64 enq_flags; +}; + +struct scx_dsp_ctx { + struct rq *rq; + u32 cursor; + u32 nr_tasks; + struct scx_dsp_buf_ent buf[0]; +}; + +struct scx_dump_ctx { + enum scx_exit_kind kind; + s64 exit_code; + const char *reason; + u64 at_ns; + u64 at_jiffies; +}; + +struct scx_dump_data { + s32 cpu; + bool first; + s32 cursor; + struct seq_buf *s; + const char *prefix; + struct scx_bstr_buf buf; +}; + +struct scx_exit_info { + enum scx_exit_kind kind; + s64 exit_code; + const char *reason; + long unsigned int *bt; + u32 bt_len; + char *msg; + char *dump; +}; + +struct scx_exit_task_args { + bool cancelled; +}; + +struct scx_init_task_args { + bool fork; + struct cgroup *cgroup; +}; + +struct scx_task_iter { + struct sched_ext_entity cursor; + struct task_struct *locked; + struct rq *rq; + struct rq_flags rf; + u32 cnt; +}; + +struct sd_app_op_cond_busy_data { + struct mmc_host *host; + u32 ocr; + struct mmc_command *cmd; +}; + +struct sd_busy_data { + struct mmc_card *card; + u8 *reg_buf; +}; + +struct sd_flag_debug { + unsigned int meta_flags; + char *name; +}; + +struct sd_flow_limit { + u64 count; + unsigned int num_buckets; + unsigned int history_head; + u16 history[128]; + u8 buckets[0]; +}; + +struct sg_lb_stats { + long unsigned int avg_load; + long unsigned int group_load; + long unsigned int group_capacity; + long unsigned int group_util; + long unsigned int group_runnable; + unsigned int sum_nr_running; + unsigned int sum_h_nr_running; + unsigned int idle_cpus; + unsigned int group_weight; + enum group_type group_type; + unsigned int group_asym_packing; + unsigned int group_smt_balance; + long unsigned int group_misfit_task_load; + unsigned int nr_numa_running; + unsigned int nr_preferred_running; +}; + +struct sd_lb_stats { + struct sched_group *busiest; + struct sched_group *local; + long unsigned int total_load; + long unsigned int total_capacity; + long unsigned int avg_load; + unsigned int prefer_sibling; + struct sg_lb_stats busiest_stat; + struct sg_lb_stats local_stat; +}; + +struct sd_uhs2_wait_active_state_data { + struct mmc_host *host; + struct mmc_command *cmd; +}; + +struct shash_desc { + struct crypto_shash *tfm; + void *__ctx[0]; +}; + +struct sdesc { + struct shash_desc shash; + char ctx[0]; +}; + +struct sdio_device_id { + __u8 class; + __u16 vendor; + __u16 device; + kernel_ulong_t driver_data; +}; + +struct sdio_driver { + char *name; + const struct sdio_device_id *id_table; + int (*probe)(struct sdio_func *, const struct sdio_device_id *); + void (*remove)(struct sdio_func *); + struct device_driver drv; +}; + +typedef void sdio_irq_handler_t(struct sdio_func *); + +struct sdio_func { + struct mmc_card *card; + struct device dev; + sdio_irq_handler_t *irq_handler; + unsigned int num; + unsigned char class; + short unsigned int vendor; + short unsigned int device; + unsigned int max_blksize; + unsigned int cur_blksize; + unsigned int enable_timeout; + unsigned int state; + u8 *tmpbuf; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; +}; + +struct sdio_func_tuple { + struct sdio_func_tuple *next; + unsigned char code; + unsigned char size; + unsigned char data[0]; +}; + +struct xfrm_offload { + struct { + __u32 low; + __u32 hi; + } seq; + __u32 flags; + __u32 status; + __u32 orig_mac_len; + __u8 proto; + __u8 inner_ipproto; +}; + +struct sec_path { + int len; + int olen; + int verified_cnt; + struct xfrm_state *xvec[6]; + struct xfrm_offload ovec[1]; +}; + +struct seccomp_filter; + +struct seccomp { + int mode; + atomic_t filter_count; + struct seccomp_filter *filter; +}; + +struct seccomp_data { + int nr; + __u32 arch; + __u64 instruction_pointer; + __u64 args[6]; +}; + +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 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 int val; + u32 flags; + struct completion ready; + struct list_head list; + struct list_head addfd; +}; + +struct seccomp_log_name { + u32 log; + const char *name; +}; + +struct seccomp_metadata { + __u64 filter_off; + __u64 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; +}; + +struct seccomp_notif_resp { + __u64 id; + __s64 val; + __s32 error; + __u32 flags; +}; + +struct seccomp_notif_sizes { + __u16 seccomp_notif; + __u16 seccomp_notif_resp; + __u16 seccomp_data; +}; + +struct secrets_os_area { + u32 msg_seqno_0; + u32 msg_seqno_1; + u32 msg_seqno_2; + u32 msg_seqno_3; + u64 ap_jump_table_pa; + u8 rsvd[40]; + u8 guest_usage[32]; +}; + +struct section_header { + char name[8]; + uint32_t virtual_size; + uint32_t virtual_address; + uint32_t raw_data_size; + uint32_t data_addr; + uint32_t relocs; + uint32_t line_numbers; + uint16_t num_relocs; + uint16_t num_lin_numbers; + uint32_t flags; +}; + +struct security_class_mapping { + const char *name; + const char *perms[33]; +}; + +struct security_hook_heads { + struct hlist_head binder_set_context_mgr; + struct hlist_head binder_transaction; + struct hlist_head binder_transfer_binder; + struct hlist_head binder_transfer_file; + struct hlist_head ptrace_access_check; + struct hlist_head ptrace_traceme; + struct hlist_head capget; + struct hlist_head capset; + struct hlist_head capable; + struct hlist_head quotactl; + struct hlist_head quota_on; + struct hlist_head syslog; + struct hlist_head settime; + struct hlist_head vm_enough_memory; + struct hlist_head bprm_creds_for_exec; + struct hlist_head bprm_creds_from_file; + struct hlist_head bprm_check_security; + struct hlist_head bprm_committing_creds; + struct hlist_head bprm_committed_creds; + struct hlist_head fs_context_submount; + struct hlist_head fs_context_dup; + struct hlist_head fs_context_parse_param; + struct hlist_head sb_alloc_security; + struct hlist_head sb_delete; + struct hlist_head sb_free_security; + struct hlist_head sb_free_mnt_opts; + struct hlist_head sb_eat_lsm_opts; + struct hlist_head sb_mnt_opts_compat; + struct hlist_head sb_remount; + struct hlist_head sb_kern_mount; + struct hlist_head sb_show_options; + struct hlist_head sb_statfs; + struct hlist_head sb_mount; + struct hlist_head sb_umount; + struct hlist_head sb_pivotroot; + struct hlist_head sb_set_mnt_opts; + struct hlist_head sb_clone_mnt_opts; + struct hlist_head move_mount; + struct hlist_head dentry_init_security; + struct hlist_head dentry_create_files_as; + struct hlist_head path_unlink; + struct hlist_head path_mkdir; + struct hlist_head path_rmdir; + struct hlist_head path_mknod; + struct hlist_head path_post_mknod; + struct hlist_head path_truncate; + struct hlist_head path_symlink; + struct hlist_head path_link; + struct hlist_head path_rename; + struct hlist_head path_chmod; + struct hlist_head path_chown; + struct hlist_head path_chroot; + struct hlist_head path_notify; + struct hlist_head inode_alloc_security; + struct hlist_head inode_free_security; + struct hlist_head inode_free_security_rcu; + struct hlist_head inode_init_security; + struct hlist_head inode_init_security_anon; + struct hlist_head inode_create; + struct hlist_head inode_post_create_tmpfile; + 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_post_setattr; + struct hlist_head inode_getattr; + struct hlist_head inode_xattr_skipcap; + 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_post_removexattr; + struct hlist_head inode_set_acl; + struct hlist_head inode_post_set_acl; + struct hlist_head inode_get_acl; + struct hlist_head inode_remove_acl; + struct hlist_head inode_post_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_getlsmprop; + struct hlist_head inode_copy_up; + struct hlist_head inode_copy_up_xattr; + struct hlist_head inode_setintegrity; + struct hlist_head kernfs_init_security; + struct hlist_head file_permission; + struct hlist_head file_alloc_security; + struct hlist_head file_release; + struct hlist_head file_free_security; + struct hlist_head file_ioctl; + struct hlist_head file_ioctl_compat; + 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_post_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 cred_getlsmprop; + 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_getlsmprop_subj; + struct hlist_head task_getlsmprop_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_getlsmprop; + 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 getselfattr; + struct hlist_head setselfattr; + struct hlist_head getprocattr; + struct hlist_head setprocattr; + struct hlist_head ismaclabel; + struct hlist_head secid_to_secctx; + struct hlist_head lsmprop_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 post_notification; + struct hlist_head watch_key; + 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_create; + struct hlist_head tun_dev_attach_queue; + struct hlist_head tun_dev_attach; + struct hlist_head tun_dev_open; + struct hlist_head sctp_assoc_request; + struct hlist_head sctp_bind_connect; + struct hlist_head sctp_sk_clone; + struct hlist_head sctp_assoc_established; + struct hlist_head mptcp_add_subflow; + struct hlist_head ib_pkey_access; + struct hlist_head ib_endport_manage_subnet; + struct hlist_head ib_alloc_security; + struct hlist_head xfrm_policy_alloc_security; + struct hlist_head xfrm_policy_clone_security; + struct hlist_head xfrm_policy_free_security; + struct hlist_head xfrm_policy_delete_security; + struct hlist_head xfrm_state_alloc; + struct hlist_head xfrm_state_alloc_acquire; + struct hlist_head xfrm_state_free_security; + struct hlist_head xfrm_state_delete_security; + struct hlist_head xfrm_policy_lookup; + struct hlist_head xfrm_state_pol_flow_match; + struct hlist_head xfrm_decode_session; + struct hlist_head key_alloc; + struct hlist_head key_permission; + struct hlist_head key_getsecurity; + struct hlist_head key_post_create_or_update; + 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_create; + struct hlist_head bpf_map_free; + struct hlist_head bpf_prog_load; + struct hlist_head bpf_prog_free; + struct hlist_head bpf_token_create; + struct hlist_head bpf_token_free; + struct hlist_head bpf_token_cmd; + struct hlist_head bpf_token_capable; + struct hlist_head locked_down; + struct hlist_head lock_kernel_down; + struct hlist_head perf_event_open; + struct hlist_head perf_event_alloc; + struct hlist_head perf_event_read; + struct hlist_head perf_event_write; + struct hlist_head uring_override_creds; + struct hlist_head uring_sqpoll; + struct hlist_head uring_cmd; + struct hlist_head initramfs_populated; + struct hlist_head bdev_alloc_security; + struct hlist_head bdev_free_security; + struct hlist_head bdev_setintegrity; +}; + +struct timezone; + +struct xattr; + +struct sembuf; + +struct xfrm_sec_ctx; + +struct xfrm_user_sec_ctx; + +union security_list_options { + int (*binder_set_context_mgr)(const struct cred *); + int (*binder_transaction)(const struct cred *, const struct cred *); + int (*binder_transfer_binder)(const struct cred *, const struct cred *); + int (*binder_transfer_file)(const struct cred *, const struct cred *, const struct file *); + int (*ptrace_access_check)(struct task_struct *, unsigned int); + int (*ptrace_traceme)(struct task_struct *); + int (*capget)(const struct task_struct *, kernel_cap_t *, kernel_cap_t *, kernel_cap_t *); + int (*capset)(struct cred *, const struct cred *, const kernel_cap_t *, const kernel_cap_t *, const kernel_cap_t *); + int (*capable)(const struct cred *, struct user_namespace *, int, unsigned int); + int (*quotactl)(int, int, int, const struct super_block *); + int (*quota_on)(struct dentry *); + int (*syslog)(int); + int (*settime)(const struct timespec64 *, const struct timezone *); + int (*vm_enough_memory)(struct mm_struct *, long int); + int (*bprm_creds_for_exec)(struct linux_binprm *); + int (*bprm_creds_from_file)(struct linux_binprm *, const struct file *); + int (*bprm_check_security)(struct linux_binprm *); + void (*bprm_committing_creds)(const struct linux_binprm *); + void (*bprm_committed_creds)(const struct linux_binprm *); + int (*fs_context_submount)(struct fs_context *, struct super_block *); + int (*fs_context_dup)(struct fs_context *, struct fs_context *); + int (*fs_context_parse_param)(struct fs_context *, struct fs_parameter *); + int (*sb_alloc_security)(struct super_block *); + void (*sb_delete)(struct super_block *); + void (*sb_free_security)(struct super_block *); + void (*sb_free_mnt_opts)(void *); + int (*sb_eat_lsm_opts)(char *, void **); + int (*sb_mnt_opts_compat)(struct super_block *, void *); + int (*sb_remount)(struct super_block *, void *); + int (*sb_kern_mount)(const struct super_block *); + int (*sb_show_options)(struct seq_file *, struct super_block *); + int (*sb_statfs)(struct dentry *); + int (*sb_mount)(const char *, const struct path *, const char *, long unsigned int, 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 *, long unsigned int, long unsigned int *); + int (*sb_clone_mnt_opts)(const struct super_block *, struct super_block *, long unsigned int, long unsigned int *); + int (*move_mount)(const struct path *, const struct path *); + int (*dentry_init_security)(struct dentry *, int, const struct qstr *, const char **, struct lsm_context *); + int (*dentry_create_files_as)(struct dentry *, int, struct qstr *, const struct cred *, struct cred *); + int (*path_unlink)(const struct path *, struct dentry *); + int (*path_mkdir)(const struct path *, struct dentry *, umode_t); + int (*path_rmdir)(const struct path *, struct dentry *); + int (*path_mknod)(const struct path *, struct dentry *, umode_t, unsigned int); + void (*path_post_mknod)(struct mnt_idmap *, struct dentry *); + int (*path_truncate)(const struct path *); + int (*path_symlink)(const struct path *, struct dentry *, const char *); + int (*path_link)(struct dentry *, const struct path *, struct dentry *); + int (*path_rename)(const struct path *, struct dentry *, const struct path *, struct dentry *, unsigned int); + int (*path_chmod)(const struct path *, umode_t); + int (*path_chown)(const struct path *, kuid_t, kgid_t); + int (*path_chroot)(const struct path *); + int (*path_notify)(const struct path *, u64, unsigned int); + int (*inode_alloc_security)(struct inode *); + void (*inode_free_security)(struct inode *); + void (*inode_free_security_rcu)(void *); + int (*inode_init_security)(struct inode *, struct inode *, const struct qstr *, struct xattr *, int *); + int (*inode_init_security_anon)(struct inode *, const struct qstr *, const struct inode *); + int (*inode_create)(struct inode *, struct dentry *, umode_t); + void (*inode_post_create_tmpfile)(struct mnt_idmap *, struct inode *); + 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 mnt_idmap *, struct dentry *, struct iattr *); + void (*inode_post_setattr)(struct mnt_idmap *, struct dentry *, int); + int (*inode_getattr)(const struct path *); + int (*inode_xattr_skipcap)(const char *); + 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 *); + void (*inode_post_removexattr)(struct dentry *, const char *); + int (*inode_set_acl)(struct mnt_idmap *, struct dentry *, const char *, struct posix_acl *); + void (*inode_post_set_acl)(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 *); + void (*inode_post_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_getlsmprop)(struct inode *, struct lsm_prop *); + int (*inode_copy_up)(struct dentry *, struct cred **); + int (*inode_copy_up_xattr)(struct dentry *, const char *); + int (*inode_setintegrity)(const struct inode *, enum lsm_integrity_type, const void *, size_t); + int (*kernfs_init_security)(struct kernfs_node *, struct kernfs_node *); + int (*file_permission)(struct file *, int); + int (*file_alloc_security)(struct file *); + void (*file_release)(struct file *); + void (*file_free_security)(struct file *); + int (*file_ioctl)(struct file *, unsigned int, long unsigned int); + int (*file_ioctl_compat)(struct file *, unsigned int, long unsigned int); + int (*mmap_addr)(long unsigned int); + int (*mmap_file)(struct file *, long unsigned int, long unsigned int, long unsigned int); + int (*file_mprotect)(struct vm_area_struct *, long unsigned int, long unsigned int); + int (*file_lock)(struct file *, unsigned int); + int (*file_fcntl)(struct file *, unsigned int, long unsigned int); + 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_post_open)(struct file *, int); + int (*file_truncate)(struct file *); + int (*task_alloc)(struct task_struct *, long unsigned int); + 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 *); + void (*cred_getlsmprop)(const struct cred *, struct lsm_prop *); + 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_getlsmprop_subj)(struct lsm_prop *); + void (*task_getlsmprop_obj)(struct task_struct *, struct lsm_prop *); + 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, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + void (*task_to_inode)(struct task_struct *, struct inode *); + int (*userns_create)(const struct cred *); + int (*ipc_permission)(struct kern_ipc_perm *, short int); + void (*ipc_getlsmprop)(struct kern_ipc_perm *, struct lsm_prop *); + 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); + 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 *, 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 (*getselfattr)(unsigned int, struct lsm_ctx *, u32 *, u32); + int (*setselfattr)(unsigned int, struct lsm_ctx *, u32, u32); + int (*getprocattr)(struct task_struct *, const char *, char **); + int (*setprocattr)(const char *, void *, size_t); + int (*ismaclabel)(const char *); + int (*secid_to_secctx)(u32, struct lsm_context *); + int (*lsmprop_to_secctx)(struct lsm_prop *, struct lsm_context *); + int (*secctx_to_secid)(const char *, u32, u32 *); + void (*release_secctx)(struct lsm_context *); + 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 *, struct lsm_context *); + int (*post_notification)(const struct cred *, const struct cred *, struct watch_notification *); + int (*watch_key)(struct key *); + int (*unix_stream_connect)(struct sock *, struct sock *, struct sock *); + int (*unix_may_send)(struct socket *, struct socket *); + int (*socket_create)(int, int, int, int); + int (*socket_post_create)(struct socket *, int, int, int, int); + int (*socket_socketpair)(struct socket *, struct socket *); + int (*socket_bind)(struct socket *, struct sockaddr *, int); + int (*socket_connect)(struct socket *, struct sockaddr *, int); + int (*socket_listen)(struct socket *, int); + int (*socket_accept)(struct socket *, struct socket *); + int (*socket_sendmsg)(struct socket *, struct msghdr *, int); + int (*socket_recvmsg)(struct socket *, struct msghdr *, int, int); + int (*socket_getsockname)(struct socket *); + int (*socket_getpeername)(struct socket *); + int (*socket_getsockopt)(struct socket *, int, int); + int (*socket_setsockopt)(struct socket *, int, int); + int (*socket_shutdown)(struct socket *, int); + int (*socket_sock_rcv_skb)(struct sock *, struct sk_buff *); + int (*socket_getpeersec_stream)(struct socket *, sockptr_t, sockptr_t, unsigned int); + int (*socket_getpeersec_dgram)(struct socket *, struct sk_buff *, u32 *); + int (*sk_alloc_security)(struct sock *, int, gfp_t); + void (*sk_free_security)(struct sock *); + void (*sk_clone_security)(const struct sock *, struct sock *); + void (*sk_getsecid)(const struct sock *, u32 *); + void (*sock_graft)(struct sock *, struct socket *); + int (*inet_conn_request)(const struct sock *, struct sk_buff *, struct request_sock *); + void (*inet_csk_clone)(struct sock *, const struct request_sock *); + void (*inet_conn_established)(struct sock *, struct sk_buff *); + int (*secmark_relabel_packet)(u32); + void (*secmark_refcount_inc)(void); + void (*secmark_refcount_dec)(void); + void (*req_classify_flow)(const struct request_sock *, struct flowi_common *); + int (*tun_dev_alloc_security)(void *); + int (*tun_dev_create)(void); + int (*tun_dev_attach_queue)(void *); + int (*tun_dev_attach)(struct sock *, void *); + int (*tun_dev_open)(void *); + int (*sctp_assoc_request)(struct sctp_association *, struct sk_buff *); + int (*sctp_bind_connect)(struct sock *, int, struct sockaddr *, int); + void (*sctp_sk_clone)(struct sctp_association *, struct sock *, struct sock *); + int (*sctp_assoc_established)(struct sctp_association *, struct sk_buff *); + int (*mptcp_add_subflow)(struct sock *, struct sock *); + int (*ib_pkey_access)(void *, u64, u16); + int (*ib_endport_manage_subnet)(void *, const char *, u8); + int (*ib_alloc_security)(void *); + int (*xfrm_policy_alloc_security)(struct xfrm_sec_ctx **, struct xfrm_user_sec_ctx *, gfp_t); + int (*xfrm_policy_clone_security)(struct xfrm_sec_ctx *, struct xfrm_sec_ctx **); + void (*xfrm_policy_free_security)(struct xfrm_sec_ctx *); + int (*xfrm_policy_delete_security)(struct xfrm_sec_ctx *); + int (*xfrm_state_alloc)(struct xfrm_state *, struct xfrm_user_sec_ctx *); + int (*xfrm_state_alloc_acquire)(struct xfrm_state *, struct xfrm_sec_ctx *, u32); + void (*xfrm_state_free_security)(struct xfrm_state *); + int (*xfrm_state_delete_security)(struct xfrm_state *); + int (*xfrm_policy_lookup)(struct xfrm_sec_ctx *, u32); + int (*xfrm_state_pol_flow_match)(struct xfrm_state *, struct xfrm_policy *, const struct flowi_common *); + int (*xfrm_decode_session)(struct sk_buff *, u32 *, int); + int (*key_alloc)(struct key *, const struct cred *, long unsigned int); + int (*key_permission)(key_ref_t, const struct cred *, enum key_need_perm); + int (*key_getsecurity)(struct key *, char **); + void (*key_post_create_or_update)(struct key *, struct key *, const void *, size_t, long unsigned int, bool); + int (*audit_rule_init)(u32, u32, char *, void **, gfp_t); + int (*audit_rule_known)(struct audit_krule *); + int (*audit_rule_match)(struct lsm_prop *, 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_create)(struct bpf_map *, union bpf_attr *, struct bpf_token *); + void (*bpf_map_free)(struct bpf_map *); + int (*bpf_prog_load)(struct bpf_prog *, union bpf_attr *, struct bpf_token *); + void (*bpf_prog_free)(struct bpf_prog *); + int (*bpf_token_create)(struct bpf_token *, union bpf_attr *, const struct path *); + void (*bpf_token_free)(struct bpf_token *); + int (*bpf_token_cmd)(const struct bpf_token *, enum bpf_cmd); + int (*bpf_token_capable)(const struct bpf_token *, int); + int (*locked_down)(enum lockdown_reason); + int (*lock_kernel_down)(const char *, enum lockdown_reason); + int (*perf_event_open)(struct perf_event_attr *, int); + int (*perf_event_alloc)(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)(void); + int (*uring_cmd)(struct io_uring_cmd *); + void (*initramfs_populated)(void); + int (*bdev_alloc_security)(struct block_device *); + void (*bdev_free_security)(struct block_device *); + int (*bdev_setintegrity)(struct block_device *, enum lsm_integrity_type, const void *, size_t); +}; + +struct security_hook_list { + struct hlist_node list; + struct hlist_head *head; + union security_list_options hook; + const struct lsm_id *lsmid; +}; + +struct seg6_local_lwt; + +struct seg6_local_lwtunnel_ops { + int (*build_state)(struct seg6_local_lwt *, const void *, struct netlink_ext_ack *); + void (*destroy_state)(struct seg6_local_lwt *); +}; + +struct seg6_action_desc { + int action; + long unsigned int attrs; + long unsigned int optattrs; + int (*input)(struct sk_buff *, struct seg6_local_lwt *); + int static_headroom; + struct seg6_local_lwtunnel_ops slwt_ops; +}; + +struct seg6_action_param { + int (*parse)(struct nlattr **, struct seg6_local_lwt *, struct netlink_ext_ack *); + int (*put)(struct sk_buff *, struct seg6_local_lwt *); + int (*cmp)(struct seg6_local_lwt *, struct seg6_local_lwt *); + void (*destroy)(struct seg6_local_lwt *); +}; + +struct seg6_bpf_srh_state { + local_lock_t bh_lock; + struct ipv6_sr_hdr *srh; + u16 hdrlen; + bool valid; +}; + +struct seg6_end_dt_info { + enum seg6_end_dt_mode mode; + struct net *net; + int vrf_ifindex; + int vrf_table; + u16 family; +}; + +struct seg6_flavors_info { + __u32 flv_ops; + __u8 lcblock_bits; + __u8 lcnode_func_bits; +}; + +struct seg6_hmac_algo { + u8 alg_id; + char name[64]; + struct crypto_shash **tfms; + struct shash_desc **shashs; +}; + +struct seg6_hmac_info { + struct rhash_head node; + struct callback_head rcu; + u32 hmackeyid; + char secret[64]; + u8 slen; + u8 alg_id; +}; + +struct seg6_iptunnel_encap { + int mode; + struct ipv6_sr_hdr srh[0]; +}; + +struct seg6_local_counters { + __u64 packets; + __u64 bytes; + __u64 errors; +}; + +struct seg6_local_lwt { + int action; + struct ipv6_sr_hdr *srh; + int table; + struct in_addr nh4; + struct in6_addr nh6; + int iif; + int oif; + struct bpf_lwt_prog bpf; + struct seg6_end_dt_info dt_info; + struct seg6_flavors_info flv_info; + struct pcpu_seg6_local_counters *pcpu_counters; + int headroom; + struct seg6_action_desc *desc; + long unsigned int parsed_optattrs; +}; + +struct seg6_lwt { + struct dst_cache cache; + struct seg6_iptunnel_encap tuninfo[0]; +}; + +struct seg6_pernet_data { + struct mutex lock; + struct in6_addr *tun_src; + struct rhashtable hmac_infos; +}; + +struct sel_ib_pkey { + struct pkey_security_struct psec; + struct list_head list; + struct callback_head rcu; +}; + +struct sel_ib_pkey_bkt { + int size; + struct list_head list; +}; + +struct sel_netif { + struct list_head list; + struct netif_security_struct nsec; + struct callback_head callback_head; +}; + +struct sel_netnode { + struct netnode_security_struct nsec; + struct list_head list; + struct callback_head rcu; +}; + +struct sel_netnode_bkt { + unsigned int size; + struct list_head list; +}; + +struct sel_netport { + struct netport_security_struct psec; + struct list_head list; + struct callback_head rcu; +}; + +struct sel_netport_bkt { + int size; + struct list_head list; +}; + +struct select_data { + struct dentry *start; + union { + long int found; + struct dentry *victim; + }; + struct list_head dispose; +}; + +struct selinux_audit_data { + u32 ssid; + u32 tsid; + u16 tclass; + u32 requested; + u32 audited; + u32 denied; + int result; +}; + +struct selinux_audit_rule { + u32 au_seqno; + struct context___2 au_ctxt; +}; + +struct selinux_avc { + unsigned int avc_cache_threshold; + struct avc_cache avc_cache; +}; + +struct selinux_fs_info { + struct dentry *bool_dir; + unsigned int bool_num; + char **bool_pending_names; + int *bool_pending_values; + struct dentry *class_dir; + long unsigned int last_class_ino; + bool policy_opened; + struct dentry *policycap_dir; + long unsigned int last_ino; + struct super_block *sb; +}; + +struct selinux_kernel_status { + u32 version; + u32 sequence; + u32 enforcing; + u32 policyload; + u32 deny_unknown; +}; + +struct selinux_policy; + +struct selinux_policy_convert_data; + +struct selinux_load_state { + struct selinux_policy *policy; + struct selinux_policy_convert_data *convert_data; +}; + +struct selinux_mapping; + +struct selinux_map { + struct selinux_mapping *mapping; + u16 size; +}; + +struct selinux_mapping { + u16 value; + u16 num_perms; + u32 perms[32]; +}; + +struct selinux_mnt_opts { + u32 fscontext_sid; + u32 context_sid; + u32 rootcontext_sid; + u32 defcontext_sid; +}; + +struct sidtab; + +struct selinux_policy { + struct sidtab *sidtab; + struct policydb policydb; + struct selinux_map map; + u32 latest_granting; +}; + +struct sidtab_convert_params { + struct convert_context_args *args; + struct sidtab *target; +}; + +struct selinux_policy_convert_data { + struct convert_context_args args; + struct sidtab_convert_params sidtab_params; +}; + +struct selinux_state { + bool enforcing; + bool initialized; + bool policycap[10]; + struct page *status_page; + struct mutex status_lock; + struct selinux_policy *policy; + struct mutex policy_mutex; +}; + +struct selnl_msg_policyload { + __u32 seqno; +}; + +struct selnl_msg_setenforce { + __s32 val; +}; + +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: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sem sems[0]; +}; + +struct sem_undo; + +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 sem_undo_list; + +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 int semadj[0]; +}; + +struct sem_undo_list { + refcount_t refcnt; + spinlock_t lock; + struct list_head list_proc; +}; + +struct semaphore_waiter { + struct list_head list; + struct task_struct *task; + bool up; +}; + +struct sembuf { + short unsigned int sem_num; + short int sem_op; + short int sem_flg; +}; + +struct semid64_ds { + struct ipc64_perm sem_perm; + __kernel_long_t sem_otime; + __kernel_ulong_t __unused1; + __kernel_long_t sem_ctime; + __kernel_ulong_t __unused2; + __kernel_ulong_t sem_nsems; + __kernel_ulong_t __unused3; + __kernel_ulong_t __unused4; +}; + +struct 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; + short unsigned int 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 virtnet_sq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t xdp_tx; + u64_stats_t xdp_tx_drops; + u64_stats_t kicks; + u64_stats_t tx_timeouts; + u64_stats_t stop; + u64_stats_t wake; +}; + +struct send_queue { + struct virtqueue *vq; + struct scatterlist sg[19]; + char name[16]; + struct virtnet_sq_stats stats; + struct virtnet_interrupt_coalesce intr_coal; + struct napi_struct napi; + bool reset; + struct xsk_buff_pool *xsk_pool; + dma_addr_t xsk_hdr_dma_addr; +}; + +struct send_signal_irq_work { + struct irq_work irq_work; + struct task_struct *task; + u32 sig; + enum pid_type type; + bool has_siginfo; + struct kernel_siginfo info; +}; + +struct seqDef_s { + U32 offBase; + U16 litLength; + U16 mlBase; +}; + +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 seqcount_rwlock { + seqcount_t seqcount; +}; + +typedef struct seqcount_rwlock seqcount_rwlock_t; + +struct serdev_device; + +struct serdev_controller_ops; + +struct serdev_controller { + struct device dev; + struct device *host; + unsigned int nr; + struct serdev_device *serdev; + const struct serdev_controller_ops *ops; +}; + +struct serdev_controller_ops { + ssize_t (*write_buf)(struct serdev_controller *, const u8 *, size_t); + void (*write_flush)(struct serdev_controller *); + int (*write_room)(struct serdev_controller *); + int (*open)(struct serdev_controller *); + void (*close)(struct serdev_controller *); + void (*set_flow_control)(struct serdev_controller *, bool); + int (*set_parity)(struct serdev_controller *, enum serdev_parity); + unsigned int (*set_baudrate)(struct serdev_controller *, unsigned int); + void (*wait_until_sent)(struct serdev_controller *, long int); + int (*get_tiocm)(struct serdev_controller *); + int (*set_tiocm)(struct serdev_controller *, unsigned int, unsigned int); + int (*break_ctl)(struct serdev_controller *, unsigned int); +}; + +struct serdev_device_ops; + +struct serdev_device { + struct device dev; + int nr; + struct serdev_controller *ctrl; + const struct serdev_device_ops *ops; + struct completion write_comp; + struct mutex write_lock; +}; + +struct serdev_device_driver { + struct device_driver driver; + int (*probe)(struct serdev_device *); + void (*remove)(struct serdev_device *); +}; + +struct serdev_device_ops { + size_t (*receive_buf)(struct serdev_device *, const u8 *, size_t); + void (*write_wakeup)(struct serdev_device *); +}; + +struct serial8250_config { + const char *name; + short unsigned int fifo_size; + short unsigned int tx_loadsz; + unsigned char fcr; + unsigned char rxtrig_bytes[4]; + unsigned int flags; +}; + +struct serial_ctrl_device { + struct device dev; + struct ida port_ida; +}; + +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_in_rdev { + struct rb_root_cached serial_rb; + spinlock_t serial_lock; + wait_queue_head_t serial_io_wait; +}; + +struct serial_port_device { + struct device dev; + struct uart_port *port; + unsigned int tx_enabled: 1; +}; + +struct serial_private { + struct pci_dev *dev; + unsigned int nr; + struct pci_serial_quirk *quirk; + const struct pciserial_board *board; + int line[0]; +}; + +struct serial_struct { + int type; + int line; + unsigned int port; + int irq; + int flags; + int xmit_fifo_size; + int custom_divisor; + int baud_base; + short unsigned int close_delay; + char io_type; + char reserved_char[1]; + int hub6; + short unsigned int closing_wait; + short unsigned int closing_wait2; + unsigned char *iomem_base; + short unsigned int iomem_reg_shift; + unsigned int port_high; + long unsigned int iomap_base; +}; + +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; + short unsigned int close_delay; + char io_type; + char reserved_char; + compat_int_t hub6; + short unsigned int closing_wait; + short unsigned int closing_wait2; + compat_uint_t iomem_base; + short unsigned int iomem_reg_shift; + unsigned int port_high; + compat_int_t reserved; +}; + +typedef struct serio *class_serio_pause_rx_t; + +struct serio_device_id { + __u8 type; + __u8 extra; + __u8 id; + __u8 proto; +}; + +struct serio_driver; + +struct serio { + void *port_data; + char name[32]; + char phys[32]; + char firmware_id[128]; + bool manual_bind; + struct serio_device_id id; + spinlock_t lock; + int (*write)(struct serio *, unsigned char); + int (*open)(struct serio *); + void (*close)(struct serio *); + int (*start)(struct serio *); + void (*stop)(struct serio *); + struct serio *parent; + struct list_head child_node; + struct list_head children; + unsigned int depth; + struct serio_driver *drv; + struct mutex drv_mutex; + struct device dev; + struct list_head node; + struct mutex *ps2_cmd_mutex; +}; + +struct serio_driver { + const char *description; + const struct serio_device_id *id_table; + bool manual_bind; + void (*write_wakeup)(struct serio *); + irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int); + int (*connect)(struct serio *, struct serio_driver *); + int (*reconnect)(struct serio *); + int (*fast_reconnect)(struct serio *); + void (*disconnect)(struct serio *); + void (*cleanup)(struct serio *); + struct device_driver driver; +}; + +struct serio_event { + enum serio_event_type type; + void *object; + struct module *owner; + struct list_head node; +}; + +struct serport { + struct tty_port *port; + struct tty_struct *tty; + struct tty_driver *tty_drv; + int tty_idx; + long unsigned int flags; +}; + +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 set_config_request { + struct usb_device *udev; + int config; + struct work_struct work; + struct list_head node; +}; + +struct set_event_iter { + enum set_event_iter_type type; + union { + struct trace_event_file *file; + struct event_mod_load *event_mod; + }; +}; + +struct set_msi_sid_data { + struct pci_dev *pdev; + u16 alias; + int count; + int busmatch_count; +}; + +struct set_mtrr_data { + long unsigned int smp_base; + long unsigned int smp_size; + unsigned int smp_reg; + mtrr_type smp_type; +}; + +struct setid_rule { + struct hlist_node next; + kid_t src_id; + kid_t dst_id; + enum setid_type type; +}; + +struct setid_ruleset { + struct hlist_head rules[256]; + char *policy_str; + struct callback_head rcu; + enum setid_type type; +}; + +struct setup_indirect { + __u32 type; + __u32 reserved; + __u64 len; + __u64 addr; +}; + +struct setup_rw_req { + unsigned int grant_idx; + struct blkif_request_segment *segments; + struct blkfront_ring_info *rinfo; + struct blkif_request *ring_req; + grant_ref_t gref_head; + unsigned int id; + bool need_copy; + unsigned int bvec_off; + char *bvec_data; + bool require_extra_req; + struct blkif_request *extra_ring_req; +}; + +struct sev_config { + __u64 debug: 1; + __u64 ghcbs_initialized: 1; + __u64 use_cas: 1; + __u64 __reserved: 61; +}; + +struct sev_es_runtime_data { + struct ghcb ghcb_page; + struct ghcb backup_ghcb; + bool ghcb_active; + bool backup_ghcb_active; + long unsigned int dr7; +}; + +struct vmcb_seg { + u16 selector; + u16 attrib; + u32 limit; + u64 base; +}; + +struct sev_es_save_area { + struct vmcb_seg es; + struct vmcb_seg cs; + struct vmcb_seg ss; + struct vmcb_seg ds; + struct vmcb_seg fs; + struct vmcb_seg gs; + struct vmcb_seg gdtr; + struct vmcb_seg ldtr; + struct vmcb_seg idtr; + struct vmcb_seg tr; + u64 pl0_ssp; + u64 pl1_ssp; + u64 pl2_ssp; + u64 pl3_ssp; + u64 u_cet; + u8 reserved_0xc8[2]; + u8 vmpl; + u8 cpl; + u8 reserved_0xcc[4]; + u64 efer; + u8 reserved_0xd8[104]; + u64 xss; + u64 cr4; + u64 cr3; + u64 cr0; + u64 dr7; + u64 dr6; + u64 rflags; + u64 rip; + u64 dr0; + u64 dr1; + u64 dr2; + u64 dr3; + u64 dr0_addr_mask; + u64 dr1_addr_mask; + u64 dr2_addr_mask; + u64 dr3_addr_mask; + u8 reserved_0x1c0[24]; + u64 rsp; + u64 s_cet; + u64 ssp; + u64 isst_addr; + u64 rax; + u64 star; + u64 lstar; + u64 cstar; + u64 sfmask; + u64 kernel_gs_base; + u64 sysenter_cs; + u64 sysenter_esp; + u64 sysenter_eip; + u64 cr2; + u8 reserved_0x248[32]; + u64 g_pat; + u64 dbgctl; + u64 br_from; + u64 br_to; + u64 last_excp_from; + u64 last_excp_to; + u8 reserved_0x298[80]; + u32 pkru; + u32 tsc_aux; + u64 tsc_scale; + u64 tsc_offset; + u8 reserved_0x300[8]; + u64 rcx; + u64 rdx; + u64 rbx; + u64 reserved_0x320; + 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 guest_exit_info_1; + u64 guest_exit_info_2; + u64 guest_exit_int_info; + u64 guest_nrip; + u64 sev_features; + u64 vintr_ctrl; + u64 guest_exit_code; + u64 virtual_tom; + u64 tlb_id; + u64 pcpu_id; + u64 event_inj; + u64 xcr0; + u8 reserved_0x3f0[16]; + u64 x87_dp; + u32 mxcsr; + u16 x87_ftw; + u16 x87_fsw; + u16 x87_fcw; + u16 x87_fop; + u16 x87_ds; + u16 x87_cs; + u64 x87_rip; + u8 fpreg_x87[80]; + u8 fpreg_xmm[256]; + u8 fpreg_ymm[256]; +}; + +struct severity { + u64 mask; + u64 result; + unsigned char sev; + short unsigned int mcgmask; + short unsigned int mcgres; + unsigned char ser; + unsigned char context; + unsigned char excp; + unsigned char covered; + unsigned int cpu_vfm; + unsigned char cpu_minstepping; + unsigned char bank_lo; + unsigned char bank_hi; + char *msg; +}; + +struct sfp; + +struct sfp_socket_ops; + +struct sfp_quirk; + +struct sfp_upstream_ops; + +struct sfp_bus { + struct kref kref; + struct list_head node; + const struct fwnode_handle *fwnode; + const struct sfp_socket_ops *socket_ops; + struct device *sfp_dev; + struct sfp *sfp; + const struct sfp_quirk *sfp_quirk; + const struct sfp_upstream_ops *upstream_ops; + void *upstream; + struct phy_device *phydev; + bool registered; + bool started; +}; + +struct sfp_eeprom_base { + u8 phys_id; + u8 phys_ext_id; + u8 connector; + u8 if_1x_copper_passive: 1; + u8 if_1x_copper_active: 1; + u8 if_1x_lx: 1; + u8 if_1x_sx: 1; + u8 e10g_base_sr: 1; + u8 e10g_base_lr: 1; + u8 e10g_base_lrm: 1; + u8 e10g_base_er: 1; + u8 sonet_oc3_short_reach: 1; + u8 sonet_oc3_smf_intermediate_reach: 1; + u8 sonet_oc3_smf_long_reach: 1; + u8 unallocated_5_3: 1; + u8 sonet_oc12_short_reach: 1; + u8 sonet_oc12_smf_intermediate_reach: 1; + u8 sonet_oc12_smf_long_reach: 1; + u8 unallocated_5_7: 1; + u8 sonet_oc48_short_reach: 1; + u8 sonet_oc48_intermediate_reach: 1; + u8 sonet_oc48_long_reach: 1; + u8 sonet_reach_bit2: 1; + u8 sonet_reach_bit1: 1; + u8 sonet_oc192_short_reach: 1; + u8 escon_smf_1310_laser: 1; + u8 escon_mmf_1310_led: 1; + u8 e1000_base_sx: 1; + u8 e1000_base_lx: 1; + u8 e1000_base_cx: 1; + u8 e1000_base_t: 1; + u8 e100_base_lx: 1; + u8 e100_base_fx: 1; + u8 e_base_bx10: 1; + u8 e_base_px: 1; + u8 fc_tech_electrical_inter_enclosure: 1; + u8 fc_tech_lc: 1; + u8 fc_tech_sa: 1; + u8 fc_ll_m: 1; + u8 fc_ll_l: 1; + u8 fc_ll_i: 1; + u8 fc_ll_s: 1; + u8 fc_ll_v: 1; + u8 unallocated_8_0: 1; + u8 unallocated_8_1: 1; + u8 sfp_ct_passive: 1; + u8 sfp_ct_active: 1; + u8 fc_tech_ll: 1; + u8 fc_tech_sl: 1; + u8 fc_tech_sn: 1; + u8 fc_tech_electrical_intra_enclosure: 1; + u8 fc_media_sm: 1; + u8 unallocated_9_1: 1; + u8 fc_media_m5: 1; + u8 fc_media_m6: 1; + u8 fc_media_tv: 1; + u8 fc_media_mi: 1; + u8 fc_media_tp: 1; + u8 fc_media_tw: 1; + u8 fc_speed_100: 1; + u8 unallocated_10_1: 1; + u8 fc_speed_200: 1; + u8 fc_speed_3200: 1; + u8 fc_speed_400: 1; + u8 fc_speed_1600: 1; + u8 fc_speed_800: 1; + u8 fc_speed_1200: 1; + u8 encoding; + u8 br_nominal; + u8 rate_id; + u8 link_len[6]; + char vendor_name[16]; + u8 extended_cc; + char vendor_oui[3]; + char vendor_pn[16]; + char vendor_rev[4]; + union { + __be16 optical_wavelength; + __be16 cable_compliance; + struct { + u8 sff8431_app_e: 1; + u8 fc_pi_4_app_h: 1; + u8 reserved60_2: 6; + u8 reserved61: 8; + } passive; + struct { + u8 sff8431_app_e: 1; + u8 fc_pi_4_app_h: 1; + u8 sff8431_lim: 1; + u8 fc_pi_4_lim: 1; + u8 reserved60_4: 4; + u8 reserved61: 8; + } active; + }; + u8 reserved62; + u8 cc_base; +}; + +struct sfp_eeprom_ext { + __be16 options; + u8 br_max; + u8 br_min; + char vendor_sn[16]; + char datecode[8]; + u8 diagmon; + u8 enhopts; + u8 sff8472_compliance; + u8 cc_ext; +}; + +struct sfp_eeprom_id { + struct sfp_eeprom_base base; + struct sfp_eeprom_ext ext; +}; + +struct sfp_quirk { + const char *vendor; + const char *part; + void (*modes)(const struct sfp_eeprom_id *, long unsigned int *, long unsigned int *); + void (*fixup)(struct sfp *); +}; + +struct sfp_socket_ops { + void (*attach)(struct sfp *); + void (*detach)(struct sfp *); + void (*start)(struct sfp *); + void (*stop)(struct sfp *); + void (*set_signal_rate)(struct sfp *, unsigned int); + int (*module_info)(struct sfp *, struct ethtool_modinfo *); + int (*module_eeprom)(struct sfp *, struct ethtool_eeprom *, u8 *); + int (*module_eeprom_by_page)(struct sfp *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *); +}; + +struct 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 phy_device *); +}; + +struct sg { + struct ext4_group_info info; + ext4_grpblk_t counters[18]; +}; + +struct sg_append_table { + struct sg_table sgt; + struct scatterlist *prv; + unsigned int total_nents; +}; + +struct sg_device { + struct scsi_device *device; + wait_queue_head_t open_wait; + struct mutex open_rel_lock; + int sg_tablesize; + u32 index; + struct list_head sfds; + rwlock_t sfd_lock; + atomic_t detaching; + bool exclude; + int open_cnt; + char sgdebug; + char name[32]; + struct cdev *cdev; + struct kref d_ref; +}; + +typedef struct sg_device Sg_device; + +struct sg_page_iter { + struct scatterlist *sg; + unsigned int sg_pgoffset; + unsigned int __nents; + int __pg_advance; +}; + +struct sg_dma_page_iter { + struct sg_page_iter base; +}; + +struct sg_scatter_hold { + short unsigned int 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; + +struct sg_io_hdr { + int interface_id; + int dxfer_direction; + unsigned char cmd_len; + unsigned char mx_sb_len; + short unsigned int iovec_count; + unsigned int dxfer_len; + void *dxferp; + unsigned char *cmdp; + void *sbp; + unsigned int timeout; + unsigned int flags; + int pack_id; + void *usr_ptr; + unsigned char status; + unsigned char masked_status; + unsigned char msg_status; + unsigned char sb_len_wr; + short unsigned int host_status; + short unsigned int driver_status; + int resid; + unsigned int duration; + unsigned int info; +}; + +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_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_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_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 sg_list { + unsigned int n; + unsigned int size; + size_t len; + struct scatterlist *sg; +}; + +struct sg_mapping_iter { + struct page *page; + void *addr; + size_t length; + size_t consumed; + struct sg_page_iter piter; + unsigned int __offset; + unsigned int __remaining; + unsigned int __flags; +}; + +struct sg_pool { + size_t size; + char *name; + struct kmem_cache *slab; + mempool_t *pool; +}; + +struct sg_proc_deviter { + loff_t index; + size_t max; +}; + +struct sg_req_info { + char req_state; + char orphan; + char sg_io_owned; + char problem; + int pack_id; + void *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 int h_cmd_per_lun; + short int d_queue_depth; + int unused[2]; +}; + +typedef struct sg_scsi_id sg_scsi_id_t; + +struct sgi_volume { + s8 name[8]; + __be32 block_num; + __be32 num_bytes; +}; + +struct sgi_partition { + __be32 num_blocks; + __be32 first_block; + __be32 type; +}; + +struct sgi_disklabel { + __be32 magic_mushroom; + __be16 root_part_num; + __be16 swap_part_num; + s8 boot_file[16]; + u8 _unused0[48]; + struct sgi_volume volume[15]; + struct sgi_partition partitions[16]; + __be32 csum; + __be32 _unused1; +}; + +struct sgx_backing { + struct page *contents; + struct page *pcmd; + long unsigned int pcmd_offset; +}; + +struct sgx_epc_page; + +struct sgx_encl; + +struct sgx_va_page; + +struct sgx_encl_page { + long unsigned int desc; + long unsigned int vm_max_prot_bits: 8; + enum sgx_page_type type: 16; + struct sgx_epc_page *epc_page; + struct sgx_encl *encl; + struct sgx_va_page *va_page; +}; + +struct sgx_encl { + long unsigned int base; + long unsigned int size; + long unsigned int flags; + unsigned int page_cnt; + unsigned int secs_child_cnt; + struct mutex lock; + struct xarray page_array; + struct sgx_encl_page secs; + long unsigned int attributes; + long unsigned int attributes_mask; + cpumask_t cpumask; + struct file *backing; + struct kref refcount; + struct list_head va_pages; + long unsigned int mm_list_version; + struct list_head mm_list; + spinlock_t mm_lock; + struct srcu_struct srcu; +}; + +struct sgx_encl_mm { + struct sgx_encl *encl; + struct mm_struct *mm; + struct list_head list; + struct mmu_notifier mmu_notifier; +}; + +struct sgx_enclave_add_pages { + __u64 src; + __u64 offset; + __u64 length; + __u64 secinfo; + __u64 flags; + __u64 count; +}; + +struct sgx_enclave_create { + __u64 src; +}; + +struct sgx_enclave_init { + __u64 sigstruct; +}; + +struct sgx_enclave_modify_types { + __u64 offset; + __u64 length; + __u64 page_type; + __u64 result; + __u64 count; +}; + +struct sgx_enclave_provision { + __u64 fd; +}; + +struct sgx_enclave_remove_pages { + __u64 offset; + __u64 length; + __u64 count; +}; + +struct sgx_enclave_restrict_permissions { + __u64 offset; + __u64 length; + __u64 permissions; + __u64 result; + __u64 count; +}; + +struct sgx_epc_page { + unsigned int section; + u16 flags; + u16 poison; + struct sgx_encl_page *owner; + struct list_head list; +}; + +struct sgx_numa_node; + +struct sgx_epc_section { + long unsigned int phys_addr; + void *virt_addr; + struct sgx_epc_page *pages; + struct sgx_numa_node *node; +}; + +struct sgx_numa_node { + struct list_head free_page_list; + struct list_head sgx_poison_page_list; + long unsigned int size; + spinlock_t lock; +}; + +struct sgx_pageinfo { + u64 addr; + u64 contents; + u64 metadata; + u64 secs; +}; + +struct sgx_secinfo { + u64 flags; + u8 reserved[56]; +}; + +struct sgx_secs { + u64 size; + u64 base; + u32 ssa_frame_size; + u32 miscselect; + u8 reserved1[24]; + u64 attributes; + u64 xfrm; + u32 mrenclave[8]; + u8 reserved2[32]; + u32 mrsigner[8]; + u8 reserved3[32]; + u32 config_id[16]; + u16 isv_prod_id; + u16 isv_svn; + u16 config_svn; + u8 reserved4[3834]; +}; + +struct sgx_sigstruct_header { + u64 header1[2]; + u32 vendor; + u32 date; + u64 header2[2]; + u32 swdefined; + u8 reserved1[84]; +}; + +struct sgx_sigstruct_body { + u32 miscselect; + u32 misc_mask; + u8 reserved2[20]; + u64 attributes; + u64 xfrm; + u64 attributes_mask; + u64 xfrm_mask; + u8 mrenclave[32]; + u8 reserved3[32]; + u16 isvprodid; + u16 isvsvn; +} __attribute__((packed)); + +struct sgx_sigstruct { + struct sgx_sigstruct_header header; + u8 modulus[384]; + u32 exponent; + u8 signature[384]; + struct sgx_sigstruct_body body; + u8 reserved4[12]; + u8 q1[384]; + u8 q2[384]; +}; + +struct sgx_va_page { + struct sgx_epc_page *epc_page; + long unsigned int slots[8]; + struct list_head list; +}; + +struct sgx_vepc { + struct xarray page_array; + struct mutex lock; +}; + +struct sha1_hash { + u8 hash[20]; +}; + +struct sha1_state { + u32 state[5]; + u64 count; + u8 buffer[64]; +}; + +struct sha256_state { + u32 state[8]; + u64 count; + u8 buf[64]; +}; + +struct sha3_state { + u64 st[25]; + unsigned int rsiz; + unsigned int rsizw; + unsigned int partial; + u8 buf[144]; +}; + +struct sha512_state { + u64 state[8]; + u64 count[2]; + u8 buf[128]; +}; + +struct vcpu_info { + uint8_t evtchn_upcall_pending; + uint8_t evtchn_upcall_mask; + xen_ulong_t evtchn_pending_sel; + struct arch_vcpu_info arch; + struct pvclock_vcpu_time_info time; +}; + +struct shared_info { + struct vcpu_info vcpu_info[32]; + xen_ulong_t evtchn_pending[64]; + xen_ulong_t evtchn_mask[64]; + struct pvclock_wall_clock wc; + uint32_t wc_sec_hi; + struct arch_shared_info arch; +}; + +struct shared_policy { + struct rb_root root; + rwlock_t lock; +}; + +struct shash_alg { + int (*init)(struct shash_desc *); + int (*update)(struct shash_desc *, const u8 *, unsigned int); + int (*final)(struct shash_desc *, u8 *); + int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*export)(struct shash_desc *, void *); + int (*import)(struct shash_desc *, const void *); + int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_shash *); + void (*exit_tfm)(struct crypto_shash *); + int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); + unsigned int descsize; + union { + struct { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; + }; + struct hash_alg_common halg; + }; +}; + +struct shash_instance { + void (*free)(struct shash_instance *); + union { + struct { + char head[104]; + struct crypto_instance base; + } s; + struct shash_alg alg; + }; +}; + +struct shift_out_of_bounds_data { + struct source_location location; + struct type_descriptor *lhs_type; + struct type_descriptor *rhs_type; +}; + +struct shm_file_data { + int id; + struct ipc_namespace *ns; + struct file *file; + const struct vm_operations_struct *vm_ops; +}; + +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 shmem_falloc { + wait_queue_head_t *waitq; + long unsigned int start; + long unsigned int next; + long unsigned int nr_falloced; + long unsigned int nr_unswapped; +}; + +struct shmem_inode_info { + spinlock_t lock; + unsigned int seals; + long unsigned int flags; + long unsigned int alloced; + long unsigned int swapped; + union { + struct offset_ctx dir_offsets; + struct { + struct list_head shrinklist; + struct list_head swaplist; + }; + }; + struct timespec64 i_crtime; + struct shared_policy policy; + struct simple_xattrs xattrs; + long unsigned int fallocend; + unsigned int fsflags; + atomic_t stop_eviction; + struct dquot *i_dquot[3]; + struct inode vfs_inode; +}; + +struct shmem_quota_limits { + qsize_t usrquota_bhardlimit; + qsize_t usrquota_ihardlimit; + qsize_t grpquota_bhardlimit; + qsize_t grpquota_ihardlimit; +}; + +struct unicode_map; + +struct shmem_options { + long long unsigned int blocks; + long long unsigned int inodes; + struct mempolicy *mpol; + kuid_t uid; + kgid_t gid; + umode_t mode; + bool full_inums; + int huge; + int seen; + bool noswap; + short unsigned int quota_types; + struct shmem_quota_limits qlimits; + struct unicode_map *encoding; + bool strict_encoding; +}; + +struct shmem_sb_info { + long unsigned int max_blocks; + struct percpu_counter used_blocks; + long unsigned int max_inodes; + long unsigned int free_ispace; + raw_spinlock_t stat_lock; + umode_t mode; + unsigned char huge; + kuid_t uid; + kgid_t gid; + bool full_inums; + bool noswap; + ino_t next_ino; + ino_t *ino_batch; + struct mempolicy *mpol; + spinlock_t shrinklist_lock; + struct list_head shrinklist; + long unsigned int shrinklist_len; + struct shmem_quota_limits qlimits; +}; + +struct shmid64_ds { + struct ipc64_perm shm_perm; + __kernel_size_t shm_segsz; + long int shm_atime; + long int shm_dtime; + long int shm_ctime; + __kernel_pid_t shm_cpid; + __kernel_pid_t shm_lpid; + long unsigned int shm_nattch; + long unsigned int __unused4; + long unsigned int __unused5; +}; + +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; + short unsigned int shm_nattch; + short unsigned int shm_unused; + void *shm_unused2; + void *shm_unused3; +}; + +struct shmid_kernel { + struct kern_ipc_perm shm_perm; + struct file *shm_file; + long unsigned int shm_nattch; + long unsigned int 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 shminfo { + int shmmax; + int shmmin; + int shmmni; + int shmseg; + int shmall; +}; + +struct shminfo64 { + long unsigned int shmmax; + long unsigned int shmmin; + long unsigned int shmmni; + long unsigned int shmseg; + long unsigned int shmall; + long unsigned int __unused1; + long unsigned int __unused2; + long unsigned int __unused3; + long unsigned int __unused4; +}; + +struct shortname_info { + unsigned char lower: 1; + unsigned char upper: 1; + unsigned char valid: 1; +}; + +struct show_busy_params { + struct seq_file *m; + struct blk_mq_hw_ctx *hctx; +}; + +struct shrink_control { + gfp_t gfp_mask; + int nid; + long unsigned int nr_to_scan; + long unsigned int nr_scanned; + struct mem_cgroup *memcg; +}; + +struct shrinker { + long unsigned int (*count_objects)(struct shrinker *, struct shrink_control *); + long unsigned int (*scan_objects)(struct shrinker *, struct shrink_control *); + long int batch; + int seeks; + unsigned int flags; + refcount_t refcount; + struct completion done; + struct callback_head rcu; + void *private_data; + struct list_head list; + int id; + atomic_long_t *nr_deferred; +}; + +struct shrinker_info_unit; + +struct shrinker_info { + struct callback_head rcu; + int map_nr_max; + struct shrinker_info_unit *unit[0]; +}; + +struct shrinker_info_unit { + atomic_long_t nr_deferred[64]; + long unsigned int map[1]; +}; + +struct shutdown_handler { + const char command[11]; + bool flag; + void (*cb)(void); +}; + +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_str_cache; + +struct sidtab_entry { + u32 sid; + u32 hash; + struct context___2 context; + struct sidtab_str_cache *cache; + struct hlist_node list; +}; + +struct sidtab_isid_entry { + int set; + struct sidtab_entry entry; +}; + +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 sidtab_str_cache { + struct callback_head rcu_member; + struct list_head lru_member; + struct sidtab_entry *parent; + u32 len; + char str[0]; +}; + +struct sig_alg { + int (*sign)(struct crypto_sig *, const void *, unsigned int, void *, unsigned int); + int (*verify)(struct crypto_sig *, const void *, unsigned int, const void *, unsigned int); + int (*set_pub_key)(struct crypto_sig *, const void *, unsigned int); + int (*set_priv_key)(struct crypto_sig *, const void *, unsigned int); + unsigned int (*key_size)(struct crypto_sig *); + unsigned int (*digest_size)(struct crypto_sig *); + unsigned int (*max_size)(struct crypto_sig *); + int (*init)(struct crypto_sig *); + void (*exit)(struct crypto_sig *); + struct crypto_alg base; +}; + +struct sig_instance { + void (*free)(struct sig_instance *); + union { + struct { + char head[72]; + struct crypto_instance base; + }; + struct sig_alg alg; + }; +}; + +typedef struct sigevent sigevent_t; + +struct sigframe_ia32 { + u32 pretcode; + int sig; + struct sigcontext_32 sc; + struct _fpstate_32 fpstate_unused; + unsigned int extramask[1]; + char retcode[8]; +}; + +struct sighand_struct { + spinlock_t siglock; + refcount_t count; + wait_queue_head_t signalfd_wqh; + struct k_sigaction action[64]; +}; + +struct sigpending { + struct list_head list; + sigset_t signal; +}; + +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; +}; + +struct task_io_accounting { + u64 rchar; + u64 wchar; + u64 syscr; + u64 syscw; + u64 read_bytes; + u64 write_bytes; + u64 cancelled_write_bytes; +}; + +struct taskstats; + +struct tty_audit_buf; + +struct signal_struct { + refcount_t sigcnt; + atomic_t live; + int nr_threads; + int quick_threads; + struct list_head thread_head; + wait_queue_head_t wait_chldexit; + struct task_struct *curr_target; + struct sigpending shared_pending; + struct hlist_head multiprocess; + int group_exit_code; + int notify_count; + struct task_struct *group_exec_task; + int group_stop_count; + unsigned int flags; + struct core_state *core_state; + unsigned int is_child_subreaper: 1; + unsigned int has_child_subreaper: 1; + unsigned int next_posix_timer_id; + struct hlist_head posix_timers; + struct hlist_head ignored_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]; + atomic_t tick_dep_mask; + struct pid *tty_old_pgrp; + int leader; + struct tty_struct *tty; + struct autogroup *autogroup; + seqlock_t stats_lock; + u64 utime; + u64 stime; + u64 cutime; + u64 cstime; + u64 gtime; + u64 cgtime; + struct prev_cputime prev_cputime; + long unsigned int nvcsw; + long unsigned int nivcsw; + long unsigned int cnvcsw; + long unsigned int cnivcsw; + long unsigned int min_flt; + long unsigned int maj_flt; + long unsigned int cmin_flt; + long unsigned int cmaj_flt; + long unsigned int inblock; + long unsigned int oublock; + long unsigned int cinblock; + long unsigned int coublock; + long unsigned int maxrss; + long unsigned int cmaxrss; + struct task_io_accounting ioac; + long long unsigned int 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 int oom_score_adj; + short int oom_score_adj_min; + struct mm_struct *oom_mm; + struct mutex cred_guard_mutex; + struct rw_semaphore exec_update_lock; +}; + +struct signalfd_ctx { + sigset_t sigmask; +}; + +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 signature_hdr { + uint8_t version; + uint32_t timestamp; + uint8_t algo; + uint8_t hash; + uint8_t keyid[8]; + uint8_t nmpi; + char mpi[0]; +} __attribute__((packed)); + +struct signature_v2_hdr { + uint8_t type; + uint8_t version; + uint8_t hash_algo; + __be32 keyid; + __be16 sig_size; + uint8_t sig[0]; +} __attribute__((packed)); + +struct sigpool_entry { + struct crypto_ahash *hash; + const char *alg; + struct kref kref; + uint16_t needs_key: 1; + uint16_t reserved: 15; +}; + +struct sigpool_scratch { + local_lock_t bh_lock; + void *pad; +}; + +struct sigset_argpack { + sigset_t *p; + size_t size; +}; + +struct sih_irq_data { + u8 isr_offset; + u8 imr_offset; +}; + +struct sih { + char name[8]; + u8 module; + u8 control_offset; + bool set_cor; + u8 bits; + u8 bytes_ixr; + u8 edr_offset; + u8 bytes_edr; + u8 irq_lines; + struct sih_irq_data mask[2]; +}; + +struct sih_agent { + int irq_base; + const struct sih *sih; + u32 imr; + bool imr_change_pending; + u32 edge_change; + struct mutex irq_lock; + char *irq_name; +}; + +struct simple_attr { + int (*get)(void *, u64 *); + int (*set)(void *, u64); + char get_buf[24]; + char set_buf[24]; + void *data; + const char *fmt; + struct mutex mutex; +}; + +struct simple_transaction_argresp { + ssize_t size; + char data[0]; +}; + +struct simple_xattr { + struct rb_node rb_node; + char *name; + size_t size; + char value[0]; +}; + +struct simpledrm_device { + struct drm_device dev; + struct drm_display_mode mode; + const struct drm_format_info *format; + unsigned int pitch; + struct iosys_map screen_base; + uint32_t formats[8]; + size_t nformats; + struct drm_plane primary_plane; + struct drm_crtc crtc; + struct drm_encoder encoder; + struct drm_connector connector; +}; + +struct simplefb_format { + const char *name; + u32 bits_per_pixel; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + u32 fourcc; +}; + +struct simplefb_platform_data { + u32 width; + u32 height; + u32 stride; + const char *format; +}; + +struct sinit_mle_data { + u32 version; + struct sha1_hash bios_acm_id; + u32 edx_senter_flags; + u64 mseg_valid; + struct sha1_hash sinit_hash; + struct sha1_hash mle_hash; + struct sha1_hash stm_hash; + struct sha1_hash lcp_policy_hash; + u32 lcp_policy_control; + u32 rlp_wakeup_addr; + u32 reserved; + u32 num_mdrs; + u32 mdrs_off; + u32 num_vtd_dmars; + u32 vtd_dmars_off; +} __attribute__((packed)); + +struct sioc_mif_req6 { + mifi_t mifi; + long unsigned int icount; + long unsigned int ocount; + long unsigned int ibytes; + long unsigned int obytes; +}; + +struct sioc_sg_req { + struct in_addr src; + struct in_addr grp; + long unsigned int pktcnt; + long unsigned int bytecnt; + long unsigned int wrong_if; +}; + +struct sioc_sg_req6 { + struct sockaddr_in6 src; + struct sockaddr_in6 grp; + long unsigned int pktcnt; + long unsigned int bytecnt; + long unsigned int wrong_if; +}; + +struct sioc_vif_req { + vifi_t vifi; + long unsigned int icount; + long unsigned int ocount; + long unsigned int ibytes; + long unsigned int obytes; +}; + +struct sis_chipset { + u16 device; + const struct ata_port_info *info; +}; + +struct sis_laptop { + u16 device; + u16 subvendor; + u16 subdevice; +}; + +struct zs_size_stat { + long unsigned int objs[14]; +}; + +struct size_class { + spinlock_t lock; + struct list_head fullness_list[12]; + int size; + int objs_per_zspage; + int pages_per_zspage; + unsigned int index; + struct zs_size_stat stats; +}; + +struct sk_buff__safe_rcu_or_null { + struct sock *sk; +}; + +struct sk_buff_fclones { + struct sk_buff skb1; + struct sk_buff skb2; + refcount_t fclone_ref; +}; + +struct sk_filter { + refcount_t refcnt; + struct callback_head rcu; + struct bpf_prog *prog; +}; + +struct sk_psock_work_state { + u32 len; + u32 off; +}; + +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; + u32 copied_seq; + u32 ingress_bytes; + struct sk_buff_head ingress_skb; + struct list_head ingress_msg; + spinlock_t ingress_lock; + long unsigned int 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 int); + void (*saved_write_space)(struct sock *); + void (*saved_data_ready)(struct sock *); + int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); + struct proto *sk_proto; + struct mutex work_mutex; + struct sk_psock_work_state work_state; + struct delayed_work work; + struct sock *sk_pair; + struct rcu_work rwork; +}; + +struct sk_psock_link { + struct list_head list; + struct bpf_map *map; + void *link_raw; +}; + +struct sk_security_struct { + enum { + NLBL_UNSET = 0, + NLBL_REQUIRE = 1, + NLBL_LABELED = 2, + NLBL_REQSKB = 3, + NLBL_CONNLABELED = 4, + } nlbl_state; + struct netlbl_lsm_secattr *nlbl_secattr; + u32 sid; + u32 peer_sid; + u16 sclass; + enum { + SCTP_ASSOC_UNSET = 0, + SCTP_ASSOC_SET = 1, + } sctp_assoc_state; +}; + +struct tls_msg { + u8 control; +}; + +struct sk_skb_cb { + unsigned char data[20]; + unsigned char pad[4]; + struct _strp_msg strp; + struct tls_msg tls; + u64 temp_reg; +}; + +struct skb_checksum_ops { + __wsum (*update)(const void *, int, __wsum); + __wsum (*combine)(__wsum, __wsum, int, int); +}; + +struct skb_ext { + refcount_t refcnt; + u8 offset[5]; + u8 chunks; + long: 0; + char data[0]; +}; + +struct skb_frag { + netmem_ref netmem; + unsigned int len; + unsigned int offset; +}; + +typedef struct skb_frag skb_frag_t; + +struct skb_free_array { + unsigned int skb_count; + void *skb_array[16]; +}; + +struct skb_gso_cb { + union { + int mac_offset; + int data_offset; + }; + int encap_level; + __wsum csum; + __u16 csum_start; +}; + +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_shared_hwtstamps { + union { + ktime_t hwtstamp; + void *netdev_data; + }; +}; + +struct xsk_tx_metadata_compl { + __u64 *tx_timestamp; +}; + +struct skb_shared_info { + __u8 flags; + __u8 meta_len; + __u8 nr_frags; + __u8 tx_flags; + short unsigned int gso_size; + short unsigned int gso_segs; + struct sk_buff *frag_list; + union { + struct skb_shared_hwtstamps hwtstamps; + struct xsk_tx_metadata_compl xsk_meta; + }; + unsigned int gso_type; + u32 tskey; + atomic_t dataref; + union { + struct { + u32 xdp_frags_size; + u32 xdp_frags_truesize; + }; + void *destructor_arg; + }; + skb_frag_t frags[17]; +}; + +struct skcipher_alg { + int (*setkey)(struct crypto_skcipher *, const u8 *, unsigned int); + int (*encrypt)(struct skcipher_request *); + int (*decrypt)(struct skcipher_request *); + int (*export)(struct skcipher_request *, void *); + int (*import)(struct skcipher_request *, const void *); + int (*init)(struct crypto_skcipher *); + void (*exit)(struct crypto_skcipher *); + unsigned int walksize; + union { + struct { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + unsigned int statesize; + struct crypto_alg base; + }; + struct skcipher_alg_common co; + }; +}; + +struct skcipher_ctx_simple { + struct crypto_cipher *cipher; +}; + +struct skcipher_instance { + void (*free)(struct skcipher_instance *); + union { + struct { + char head[88]; + struct crypto_instance base; + } s; + struct skcipher_alg alg; + }; +}; + +struct skcipher_walk { + union { + struct { + void *addr; + } virt; + } src; + union { + struct { + void *addr; + } virt; + } dst; + struct scatter_walk in; + unsigned int nbytes; + struct scatter_walk out; + unsigned int total; + u8 *page; + u8 *buffer; + u8 *oiv; + void *iv; + unsigned int ivsize; + int flags; + unsigned int blocksize; + unsigned int stride; + unsigned int alignmask; +}; + +struct sku_microcode { + u32 vfm; + u8 stepping; + u32 microcode; +}; + +struct slab { + long unsigned int __page_flags; + struct kmem_cache *slab_cache; + union { + struct { + union { + struct list_head slab_list; + struct { + struct slab *next; + int slabs; + }; + }; + union { + struct { + void *freelist; + union { + long unsigned int counters; + struct { + unsigned int inuse: 16; + unsigned int objects: 15; + unsigned int frozen: 1; + }; + }; + }; + freelist_aba_t freelist_counter; + }; + }; + struct callback_head callback_head; + }; + unsigned int __page_type; + atomic_t __page_refcount; + long unsigned int obj_exts; +}; + +struct slab_attribute { + struct attribute attr; + ssize_t (*show)(struct kmem_cache *, char *); + ssize_t (*store)(struct kmem_cache *, const char *, size_t); +}; + +struct slabinfo { + long unsigned int active_objs; + long unsigned int num_objs; + long unsigned int active_slabs; + long unsigned int num_slabs; + long unsigned int shared_avail; + unsigned int limit; + unsigned int batchcount; + unsigned int shared; + unsigned int objects_per_slab; + unsigned int cache_order; +}; + +struct slcompress { + struct cstate *tstate; + struct cstate *rstate; + byte_t tslot_limit; + byte_t rslot_limit; + byte_t xmit_oldest; + byte_t xmit_current; + byte_t recv_current; + byte_t flags; + int32 sls_o_nontcp; + int32 sls_o_tcp; + int32 sls_o_uncompressed; + int32 sls_o_compressed; + int32 sls_o_searches; + int32 sls_o_misses; + int32 sls_i_uncompressed; + int32 sls_i_compressed; + int32 sls_i_error; + int32 sls_i_tossed; + int32 sls_i_runt; + int32 sls_i_badcheck; +}; + +struct slice { + __be32 nblocks; + __be32 blkoff; +}; + +struct slot___3 { + u8 bus; + u8 device; + u16 status; + u32 number; + u8 is_a_board; + u8 state; + u8 attention_save; + u8 presence_save; + u8 latch_save; + u8 pwr_save; + struct controller___2 *ctrl; + struct hotplug_slot hotplug_slot; + struct list_head slot_list; + struct delayed_work work; + struct mutex lock; + struct workqueue_struct *wq; + u8 hp_slot; +}; + +struct slot { + struct hotplug_slot hotplug_slot; + struct acpiphp_slot *acpi_slot; + unsigned int sun; +}; + +struct slot___2 { + u8 number; + unsigned int devfn; + struct pci_bus *bus; + struct pci_dev *dev; + unsigned int latch_status: 1; + unsigned int adapter_status: 1; + unsigned int extracting; + struct hotplug_slot hotplug_slot; + struct list_head slot_list; +}; + +struct slub_flush_work { + struct work_struct work; + struct kmem_cache *s; + bool skip; +}; + +struct smack_audit_data { + const char *function; + char *subject; + char *object; + char *request; + int result; +}; + +struct smack_known { + struct list_head list; + struct hlist_node smk_hashed; + char *smk_known; + u32 smk_secid; + struct netlbl_lsm_secattr smk_netlabel; + struct list_head smk_rules; + struct mutex smk_rules_lock; +}; + +struct smack_known_list_elem { + struct list_head list; + struct smack_known *smk_label; +}; + +struct smack_mnt_opts { + const char *fsdefault; + const char *fsfloor; + const char *fshat; + const char *fsroot; + const char *fstransmute; +}; + +struct smack_parsed_rule { + struct smack_known *smk_subject; + struct smack_known *smk_object; + int smk_access1; + int smk_access2; +}; + +struct smack_rule { + struct list_head list; + struct smack_known *smk_subject; + struct smack_known *smk_object; + int smk_access; +}; + +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 sme_populate_pgd_data { + void *pgtable_area; + pgd_t *pgd; + pmdval_t pmd_flags; + pteval_t pte_flags; + long unsigned int paddr; + long unsigned int vaddr; + long unsigned int vaddr_end; +}; + +struct smk_audit_info { + struct common_audit_data a; + struct smack_audit_data sad; +}; + +struct smk_net4addr { + struct list_head list; + struct in_addr smk_host; + struct in_addr smk_mask; + int smk_masks; + struct smack_known *smk_label; +}; + +struct smk_net6addr { + struct list_head list; + struct in6_addr smk_host; + struct in6_addr smk_mask; + int smk_masks; + struct smack_known *smk_label; +}; + +struct smp_alt_module { + struct module *mod; + char *name; + const s32 *locks; + const s32 *locks_end; + u8 *text; + u8 *text_end; + struct list_head next; +}; + +struct smp_call_on_cpu_struct { + struct work_struct work; + struct completion done; + int (*func)(void *); + void *data; + int ret; + int cpu; +}; + +struct smp_hotplug_thread { + struct task_struct **store; + struct list_head list; + int (*thread_should_run)(unsigned int); + void (*thread_fn)(unsigned int); + void (*create)(unsigned int); + void (*setup)(unsigned int); + void (*cleanup)(unsigned int, bool); + void (*park)(unsigned int); + void (*unpark)(unsigned int); + bool selfparking; + const char *thread_comm; +}; + +struct smp_ops { + void (*smp_prepare_boot_cpu)(void); + void (*smp_prepare_cpus)(unsigned int); + void (*smp_cpus_done)(unsigned int); + void (*stop_other_cpus)(int); + void (*crash_stop_other_cpus)(void); + void (*smp_send_reschedule)(int); + void (*cleanup_dead_cpu)(unsigned int); + void (*poll_sync_state)(void); + int (*kick_ap_alive)(unsigned int, struct task_struct *); + int (*cpu_disable)(void); + void (*cpu_die)(unsigned int); + void (*play_dead)(void); + void (*stop_this_cpu)(void); + void (*send_call_func_ipi)(const struct cpumask *); + void (*send_call_func_single_ipi)(int); +}; + +struct smpboot_thread_data { + unsigned int cpu; + unsigned int status; + struct smp_hotplug_thread *ht; +}; + +struct snapshot_context { + struct tracing_map_elt *elt; + void *key; +}; + +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 snmp_mib { + const char *name; + int entry; +}; + +struct snp_cpuid_fn { + u32 eax_in; + u32 ecx_in; + u64 xcr0_in; + u64 xss_in; + u32 eax; + u32 ebx; + u32 ecx; + u32 edx; + u64 __reserved; +}; + +struct snp_cpuid_table { + u32 count; + u32 __reserved1; + u64 __reserved2; + struct snp_cpuid_fn fn[64]; +}; + +struct snp_guest_msg_hdr { + u8 authtag[32]; + u64 msg_seqno; + u8 rsvd1[8]; + u8 algo; + u8 hdr_version; + u16 hdr_sz; + u8 msg_type; + u8 msg_version; + u16 msg_sz; + u32 rsvd2; + u8 msg_vmpck; + u8 rsvd3[35]; +}; + +struct snp_guest_msg { + struct snp_guest_msg_hdr hdr; + u8 payload[4000]; +}; + +struct snp_req_data { + long unsigned int req_gpa; + long unsigned int resp_gpa; + long unsigned int data_gpa; + unsigned int data_npages; +}; + +struct snp_guest_req { + void *req_buf; + size_t req_sz; + void *resp_buf; + size_t resp_sz; + u64 exit_code; + unsigned int vmpck_id; + u8 msg_version; + u8 msg_type; + struct snp_req_data input; + void *certs_data; +}; + +struct snp_guest_request_ioctl { + __u8 msg_version; + __u64 req_data; + __u64 resp_data; + union { + __u64 exitinfo2; + struct { + __u32 fw_error; + __u32 vmm_error; + }; + }; +}; + +struct snp_secrets_page; + +struct snp_msg_desc { + struct snp_guest_msg *request; + struct snp_guest_msg *response; + struct snp_guest_msg secret_request; + struct snp_guest_msg secret_response; + struct snp_secrets_page *secrets; + struct aesgcm_ctx *ctx; + u32 *os_area_msg_seqno; + u8 *vmpck; + int vmpck_id; +}; + +struct snp_psc_desc { + struct psc_hdr hdr; + struct psc_entry entries[64]; +}; + +struct snp_secrets_page { + u32 version; + u32 imien: 1; + u32 rsvd1: 31; + u32 fms; + u32 rsvd2; + u8 gosvw[16]; + u8 vmpck0[32]; + u8 vmpck1[32]; + u8 vmpck2[32]; + u8 vmpck3[32]; + struct secrets_os_area os_area; + u8 vmsa_tweak_bitmap[64]; + u64 svsm_base; + u64 svsm_size; + u64 svsm_caa; + u32 svsm_max_version; + u8 svsm_guest_vmpl; + u8 rsvd3[3]; + u8 rsvd4[3744]; +}; + +struct snp_tsc_info_req { + u8 rsvd[128]; +}; + +struct snp_tsc_info_resp { + u32 status; + u32 rsvd1; + u64 tsc_scale; + u64 tsc_offset; + u32 tsc_factor; + u8 rsvd2[100]; +}; + +struct so_timestamping { + int flags; + int bind_phc; +}; + +struct soc_device_attribute; + +struct soc_device { + struct device dev; + struct soc_device_attribute *attr; + int soc_dev_num; +}; + +struct soc_device_attribute { + const char *machine; + const char *family; + const char *revision; + const char *serial_number; + const char *soc_id; + const void *data; + const struct attribute_group *custom_attr_group; +}; + +struct sock_bh_locked { + struct sock *sock; + local_lock_t bh_lock; +}; + +struct sock_diag_handler { + struct module *owner; + __u8 family; + int (*dump)(struct sk_buff *, struct nlmsghdr *); + int (*get_info)(struct sk_buff *, struct sock *); + int (*destroy)(struct sk_buff *, struct nlmsghdr *); +}; + +struct sock_diag_inet_compat { + struct module *owner; + int (*fn)(struct sk_buff *, struct nlmsghdr *); +}; + +struct sock_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; +}; + +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 sock_fprog { + short unsigned int len; + struct sock_filter *filter; +}; + +struct sock_fprog32 { + short unsigned int len; + compat_caddr_t filter; +}; + +struct sock_fprog_kern { + u16 len; + struct sock_filter *filter; +}; + +struct sock_hash_seq_info { + struct bpf_map *map; + struct bpf_shtab *htab; + u32 bucket_id; +}; + +struct sock_map_seq_info { + struct bpf_map *map; + struct sock *sk; + u32 index; +}; + +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 *prog; + struct sock *socks[0]; +}; + +struct sock_skb_cb { + u32 dropcount; +}; + +struct sock_txtime { + __kernel_clockid_t clockid; + __u32 flags; +}; + +struct sockaddr_mctp { + __kernel_sa_family_t smctp_family; + __u16 __smctp_pad0; + unsigned int smctp_network; + struct mctp_addr smctp_addr; + __u8 smctp_type; + __u8 smctp_tag; + __u8 __smctp_pad1; +}; + +struct sockaddr_mctp_ext { + struct sockaddr_mctp smctp_base; + int smctp_ifindex; + __u8 smctp_halen; + __u8 __smctp_pad0[3]; + __u8 smctp_haddr[32]; +}; + +struct sockaddr_nl { + __kernel_sa_family_t nl_family; + short unsigned int nl_pad; + __u32 nl_pid; + __u32 nl_groups; +}; + +struct sockaddr_un { + __kernel_sa_family_t sun_family; + char sun_path[108]; +}; + +struct sockaddr_xdp { + __u16 sxdp_family; + __u16 sxdp_flags; + __u32 sxdp_ifindex; + __u32 sxdp_queue_id; + __u32 sxdp_shared_umem_fd; +}; + +struct socket_wq { + wait_queue_head_t wait; + struct fasync_struct *fasync_list; + long unsigned int flags; + struct callback_head rcu; + long: 64; +}; + +struct socket { + socket_state state; + short int type; + long unsigned int flags; + struct file *file; + struct sock *sk; + const struct proto_ops *ops; + long: 64; + long: 64; + long: 64; + struct socket_wq wq; +}; + +struct socket__safe_trusted_or_null { + struct sock *sk; +}; + +struct socket_alloc { + struct socket socket; + struct inode vfs_inode; + long: 64; + long: 64; +}; + +struct socket_smack { + struct smack_known *smk_out; + struct smack_known *smk_in; + struct smack_known *smk_packet; + int smk_state; +}; + +struct sockmap_link { + struct bpf_link link; + struct bpf_map *map; + enum bpf_attach_type attach_type; +}; + +struct softirq_action { + void (*action)(void); +}; + +struct softnet_data { + struct list_head poll_list; + struct sk_buff_head process_queue; + local_lock_t process_queue_bh_lock; + unsigned int processed; + unsigned int time_squeeze; + struct softnet_data *rps_ipi_list; + unsigned int received_rps; + bool in_net_rx_action; + bool in_napi_threaded_poll; + struct sd_flow_limit *flow_limit; + struct Qdisc *output_queue; + struct Qdisc **output_queue_tailp; + struct sk_buff *completion_queue; + struct sk_buff_head xfrm_backlog; + struct netdev_xmit xmit; + long: 0; + unsigned int input_queue_head; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + call_single_data_t csd; + struct softnet_data *rps_ipi_next; + unsigned int cpu; + unsigned int input_queue_tail; + struct sk_buff_head input_pkt_queue; + struct napi_struct backlog; + long: 64; + atomic_t dropped; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t defer_lock; + int defer_count; + int defer_ipi_scheduled; + struct sk_buff *defer_list; + long: 64; + call_single_data_t defer_csd; +}; + +struct software_node { + const char *name; + const struct software_node *parent; + const struct property_entry *properties; +}; + +struct solaris_x86_slice { + __le16 s_tag; + __le16 s_flag; + __le32 s_start; + __le32 s_size; +}; + +struct solaris_x86_vtoc { + unsigned int v_bootinfo[3]; + __le32 v_sanity; + __le32 v_version; + char v_volume[8]; + __le16 v_sectorsz; + __le16 v_nparts; + unsigned int v_reserved[10]; + struct solaris_x86_slice v_slice[16]; + unsigned int timestamp[16]; + char v_asciilabel[128]; +}; + +struct sp_node { + struct rb_node nd; + long unsigned int start; + long unsigned int end; + struct mempolicy *policy; +}; + +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 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 speed_down_verdict_arg { + u64 since; + int xfer_ok; + int nr_errors[8]; +}; + +struct spi_controller_mem_ops; + +struct spi_controller_mem_caps; + +struct spi_statistics; + +struct spi_controller { + struct device dev; + struct list_head list; + s16 bus_num; + u16 num_chipselect; + u16 dma_alignment; + u32 mode_bits; + u32 buswidth_override_bits; + u32 bits_per_word_mask; + u32 min_speed_hz; + u32 max_speed_hz; + u16 flags; + bool devm_allocated; + union { + bool slave; + bool target; + }; + size_t (*max_transfer_size)(struct spi_device *); + size_t (*max_message_size)(struct spi_device *); + struct mutex io_mutex; + struct mutex add_lock; + spinlock_t bus_lock_spinlock; + struct mutex bus_lock_mutex; + bool bus_lock_flag; + int (*setup)(struct spi_device *); + int (*set_cs_timing)(struct spi_device *); + int (*transfer)(struct spi_device *, struct spi_message *); + void (*cleanup)(struct spi_device *); + bool (*can_dma)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + struct device *dma_map_dev; + struct device *cur_rx_dma_dev; + struct device *cur_tx_dma_dev; + bool queued; + struct kthread_worker *kworker; + struct kthread_work pump_messages; + spinlock_t queue_lock; + struct list_head queue; + struct spi_message *cur_msg; + struct completion cur_msg_completion; + bool cur_msg_incomplete; + bool cur_msg_need_completion; + bool busy; + bool running; + bool rt; + bool auto_runtime_pm; + bool fallback; + bool last_cs_mode_high; + s8 last_cs[16]; + u32 last_cs_index_mask: 16; + struct completion xfer_completion; + size_t max_dma_len; + int (*optimize_message)(struct spi_message *); + int (*unoptimize_message)(struct spi_message *); + int (*prepare_transfer_hardware)(struct spi_controller *); + int (*transfer_one_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_transfer_hardware)(struct spi_controller *); + int (*prepare_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_message)(struct spi_controller *, struct spi_message *); + int (*target_abort)(struct spi_controller *); + void (*set_cs)(struct spi_device *, bool); + int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + void (*handle_err)(struct spi_controller *, struct spi_message *); + const struct spi_controller_mem_ops *mem_ops; + const struct spi_controller_mem_caps *mem_caps; + struct gpio_desc **cs_gpiods; + bool use_gpio_descriptors; + s8 unused_native_cs; + s8 max_native_cs; + struct spi_statistics *pcpu_statistics; + struct dma_chan *dma_tx; + struct dma_chan *dma_rx; + void *dummy_rx; + void *dummy_tx; + int (*fw_translate_cs)(struct spi_controller *, unsigned int); + bool ptp_sts_supported; + long unsigned int irq_flags; + bool queue_empty; + bool must_async; + bool defer_optimize_message; +}; + +struct spi_controller_mem_caps { + bool dtr; + bool ecc; + bool swap16; + bool per_op_freq; +}; + +struct spi_mem; + +struct spi_mem_op; + +struct spi_mem_dirmap_desc; + +struct spi_controller_mem_ops { + int (*adjust_op_size)(struct spi_mem *, struct spi_mem_op *); + bool (*supports_op)(struct spi_mem *, const struct spi_mem_op *); + int (*exec_op)(struct spi_mem *, const struct spi_mem_op *); + const char * (*get_name)(struct spi_mem *); + int (*dirmap_create)(struct spi_mem_dirmap_desc *); + void (*dirmap_destroy)(struct spi_mem_dirmap_desc *); + ssize_t (*dirmap_read)(struct spi_mem_dirmap_desc *, u64, size_t, void *); + ssize_t (*dirmap_write)(struct spi_mem_dirmap_desc *, u64, size_t, const void *); + int (*poll_status)(struct spi_mem *, const struct spi_mem_op *, u16, u16, long unsigned int, long unsigned int, long unsigned int); +}; + +struct spi_device { + struct device dev; + struct spi_controller *controller; + u32 max_speed_hz; + u8 chip_select[16]; + u8 bits_per_word; + bool rt; + u32 mode; + int irq; + void *controller_state; + void *controller_data; + char modalias[32]; + const char *driver_override; + struct gpio_desc *cs_gpiod[16]; + struct spi_delay word_delay; + struct spi_delay cs_setup; + struct spi_delay cs_hold; + struct spi_delay cs_inactive; + struct spi_statistics *pcpu_statistics; + u32 cs_index_mask: 16; +}; + +struct spi_device_id { + char name[32]; + kernel_ulong_t driver_data; +}; + +struct spi_driver { + const struct spi_device_id *id_table; + int (*probe)(struct spi_device *); + void (*remove)(struct spi_device *); + void (*shutdown)(struct spi_device *); + struct device_driver driver; +}; + +struct spi_mem { + struct spi_device *spi; + void *drvpriv; + const char *name; +}; + +struct spi_mem_op { + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + u16 opcode; + } cmd; + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + u64 val; + } addr; + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + } dummy; + struct { + u8 buswidth; + u8 dtr: 1; + u8 ecc: 1; + u8 swap16: 1; + u8 __pad: 5; + enum spi_mem_data_dir dir; + unsigned int nbytes; + union { + void *in; + const void *out; + } buf; + } data; + unsigned int max_freq; +}; + +struct spi_mem_dirmap_info { + struct spi_mem_op op_tmpl; + u64 offset; + u64 length; +}; + +struct spi_mem_dirmap_desc { + struct spi_mem *mem; + struct spi_mem_dirmap_info info; + unsigned int nodirmap; + void *priv; +}; + +struct spi_mem_driver { + struct spi_driver spidrv; + int (*probe)(struct spi_mem *); + int (*remove)(struct spi_mem *); + void (*shutdown)(struct spi_mem *); +}; + +struct spi_replaced_transfers; + +typedef void (*spi_replaced_release_t)(struct spi_controller *, struct spi_message *, struct spi_replaced_transfers *); + +struct spi_replaced_transfers { + spi_replaced_release_t release; + void *extradata; + struct list_head replaced_transfers; + struct list_head *replaced_after; + size_t inserted; + struct spi_transfer inserted_transfers[0]; +}; + +typedef void (*spi_res_release_t)(struct spi_controller *, struct spi_message *, void *); + +struct spi_res { + struct list_head entry; + spi_res_release_t release; + long long unsigned int data[0]; +}; + +struct spi_statistics { + struct u64_stats_sync syncp; + u64_stats_t messages; + u64_stats_t transfers; + u64_stats_t errors; + u64_stats_t timedout; + u64_stats_t spi_sync; + u64_stats_t spi_sync_immediate; + u64_stats_t spi_async; + u64_stats_t bytes; + u64_stats_t bytes_rx; + u64_stats_t bytes_tx; + u64_stats_t transfer_bytes_histo[17]; + u64_stats_t transfers_split_maxsize; +}; + +struct splice_desc { + size_t total_len; + unsigned int len; + unsigned int flags; + union { + void *userptr; + struct file *file; + void *data; + } u; + void (*splice_eof)(struct splice_desc *); + loff_t pos; + loff_t *opos; + size_t num_spliced; + bool need_wakeup; +}; + +struct 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 squashfs_base_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; +}; + +struct squashfs_cache_entry; + +struct squashfs_cache { + char *name; + int entries; + int curr_blk; + int next_blk; + int num_waiters; + int unused; + int block_size; + int pages; + spinlock_t lock; + wait_queue_head_t wait_queue; + struct squashfs_cache_entry *entry; +}; + +struct squashfs_page_actor; + +struct squashfs_cache_entry { + u64 block; + int length; + int refcount; + u64 next_index; + int pending; + int error; + int num_waiters; + wait_queue_head_t wait_queue; + struct squashfs_cache *cache; + void **data; + struct squashfs_page_actor *actor; +}; + +struct squashfs_sb_info; + +struct squashfs_decompressor { + void * (*init)(struct squashfs_sb_info *, void *); + void * (*comp_opts)(struct squashfs_sb_info *, void *, int); + void (*free)(void *); + int (*decompress)(struct squashfs_sb_info *, void *, struct bio *, int, int, struct squashfs_page_actor *); + int id; + char *name; + int alloc_buffer; + int supported; +}; + +struct squashfs_decompressor_thread_ops { + void * (*create)(struct squashfs_sb_info *, void *); + void (*destroy)(struct squashfs_sb_info *); + int (*decompress)(struct squashfs_sb_info *, struct bio *, int, int, struct squashfs_page_actor *); + int (*max_decompressors)(void); +}; + +struct squashfs_dev_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 rdev; +}; + +struct squashfs_dir_entry { + __le16 offset; + __le16 inode_number; + __le16 type; + __le16 size; + char name[0]; +}; + +struct squashfs_dir_header { + __le32 count; + __le32 start_block; + __le32 inode_number; +}; + +struct squashfs_dir_index { + __le32 index; + __le32 start_block; + __le32 size; + unsigned char name[0]; +}; + +struct squashfs_dir_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 start_block; + __le32 nlink; + __le16 file_size; + __le16 offset; + __le32 parent_inode; +}; + +struct squashfs_fragment_entry { + __le64 start_block; + __le32 size; + unsigned int unused; +}; + +struct squashfs_ldev_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 rdev; + __le32 xattr; +}; + +struct squashfs_symlink_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 symlink_size; + char symlink[0]; +}; + +struct squashfs_reg_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 start_block; + __le32 fragment; + __le32 offset; + __le32 file_size; + __le16 block_list[0]; +}; + +struct squashfs_lreg_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le64 start_block; + __le64 file_size; + __le64 sparse; + __le32 nlink; + __le32 fragment; + __le32 offset; + __le32 xattr; + __le16 block_list[0]; +}; + +struct squashfs_ldir_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 file_size; + __le32 start_block; + __le32 parent_inode; + __le16 i_count; + __le16 offset; + __le32 xattr; + struct squashfs_dir_index index[0]; +}; + +struct squashfs_ipc_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; +}; + +struct squashfs_lipc_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 xattr; +}; + +union squashfs_inode { + struct squashfs_base_inode base; + struct squashfs_dev_inode dev; + struct squashfs_ldev_inode ldev; + struct squashfs_symlink_inode symlink; + struct squashfs_reg_inode reg; + struct squashfs_lreg_inode lreg; + struct squashfs_dir_inode dir; + struct squashfs_ldir_inode ldir; + struct squashfs_ipc_inode ipc; + struct squashfs_lipc_inode lipc; +}; + +struct squashfs_inode_info { + u64 start; + int offset; + u64 xattr; + unsigned int xattr_size; + int xattr_count; + union { + struct { + u64 fragment_block; + int fragment_size; + int fragment_offset; + u64 block_list_start; + }; + struct { + u64 dir_idx_start; + int dir_idx_offset; + int dir_idx_cnt; + int parent; + }; + }; + struct inode vfs_inode; +}; + +struct squashfs_lz4 { + void *input; + void *output; +}; + +struct squashfs_lzo { + void *input; + void *output; +}; + +struct squashfs_mount_opts { + enum Opt_errors errors; + const struct squashfs_decompressor_thread_ops *thread_ops; + int thread_num; +}; + +struct squashfs_page_actor { + union { + void **buffer; + struct page **page; + }; + void *pageaddr; + void *tmp_buffer; + void * (*squashfs_first_page)(struct squashfs_page_actor *); + void * (*squashfs_next_page)(struct squashfs_page_actor *); + void (*squashfs_finish_page)(struct squashfs_page_actor *); + struct page *last_page; + int pages; + int length; + int next_page; + int alloc_buffer; + int returned_pages; + long unsigned int next_index; +}; + +struct squashfs_sb_info { + const struct squashfs_decompressor *decompressor; + int devblksize; + int devblksize_log2; + struct squashfs_cache *block_cache; + struct squashfs_cache *fragment_cache; + struct squashfs_cache *read_page; + struct address_space *cache_mapping; + int next_meta_index; + __le64 *id_table; + __le64 *fragment_index; + __le64 *xattr_id_table; + struct mutex meta_index_mutex; + struct meta_index *meta_index; + void *stream; + __le64 *inode_lookup_table; + u64 inode_table; + u64 directory_table; + u64 xattr_table; + unsigned int block_size; + short unsigned int block_log; + long long int bytes_used; + unsigned int inodes; + unsigned int fragments; + unsigned int xattr_ids; + unsigned int ids; + bool panic_on_errors; + const struct squashfs_decompressor_thread_ops *thread_ops; + int max_thread_num; +}; + +struct squashfs_stream { + void *comp_opts; + struct list_head strm_list; + struct mutex mutex; + int avail_decomp; + wait_queue_head_t wait; +}; + +struct squashfs_stream___2 { + void *stream; + local_lock_t lock; +}; + +struct squashfs_stream___3 { + void *stream; + struct mutex mutex; +}; + +struct squashfs_super_block { + __le32 s_magic; + __le32 inodes; + __le32 mkfs_time; + __le32 block_size; + __le32 fragments; + __le16 compression; + __le16 block_log; + __le16 flags; + __le16 no_ids; + __le16 s_major; + __le16 s_minor; + __le64 root_inode; + __le64 bytes_used; + __le64 id_table_start; + __le64 xattr_id_table_start; + __le64 inode_table_start; + __le64 directory_table_start; + __le64 fragment_table_start; + __le64 lookup_table_start; +}; + +struct squashfs_xattr_entry { + __le16 type; + __le16 size; + char data[0]; +}; + +struct squashfs_xattr_id { + __le64 xattr; + __le32 count; + __le32 size; +}; + +struct squashfs_xattr_id_table { + __le64 xattr_table_start; + __le32 xattr_ids; + __le32 unused; +}; + +struct squashfs_xattr_val { + __le32 vsize; + char value[0]; +}; + +struct xz_buf { + const uint8_t *in; + size_t in_pos; + size_t in_size; + uint8_t *out; + size_t out_pos; + size_t out_size; +}; + +struct xz_dec; + +struct squashfs_xz { + struct xz_dec *state; + struct xz_buf buf; +}; + +struct sr6_tlv { + __u8 type; + __u8 len; + __u8 data[0]; +}; + +struct sr6_tlv_hmac { + struct sr6_tlv tlvhdr; + __u16 reserved; + __be32 hmackeyid; + __u8 hmac[32]; +}; + +struct sram_config { + int (*init)(void); + bool map_only_reserved; +}; + +struct sram_partition; + +struct sram_dev { + const struct sram_config *config; + struct device *dev; + void *virt_base; + bool no_memory_wc; + struct gen_pool *pool; + struct sram_partition *partition; + u32 partitions; +}; + +struct sram_partition { + void *base; + struct gen_pool *pool; + struct bin_attribute battr; + struct mutex lock; + struct list_head list; +}; + +struct sram_reserve { + struct list_head list; + u32 start; + u32 size; + struct resource res; + bool export; + bool pool; + bool protect_exec; + const char *label; +}; + +struct srcu_data { + atomic_long_t srcu_lock_count[2]; + atomic_long_t srcu_unlock_count[2]; + int srcu_reader_flavor; + long: 64; + long: 64; + long: 64; + spinlock_t lock; + struct rcu_segcblist srcu_cblist; + long unsigned int srcu_gp_seq_needed; + long unsigned int 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; + long unsigned int grpmask; + int cpu; + struct srcu_struct *ssp; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct srcu_node { + spinlock_t lock; + long unsigned int srcu_have_cbs[4]; + long unsigned int srcu_data_have_cbs[4]; + long unsigned int srcu_gp_seq_needed_exp; + struct srcu_node *srcu_parent; + int grplo; + int grphi; +}; + +struct ssb_state { + struct ssb_state *shared_state; + raw_spinlock_t lock; + unsigned int disable_state; + long unsigned int local_state; +}; + +union st_info { + struct { + u64 vm_st_valid: 1; + u64 vm_xst_valid: 1; + u64 vm_ph_ignore: 1; + u64 rsvd1: 5; + u64 vm_st: 8; + u64 vm_xst: 16; + u64 pm_st_valid: 1; + u64 pm_xst_valid: 1; + u64 pm_ph_ignore: 1; + u64 rsvd2: 5; + u64 pm_st: 8; + u64 pm_xst: 16; + }; + u64 value; +}; + +struct stack_entry { + struct trace_entry ent; + int size; + long unsigned int caller[0]; +}; + +struct stack_frame { + struct stack_frame *next_frame; + long unsigned int return_address; +}; + +struct stack_frame_ia32 { + u32 next_frame; + u32 return_address; +}; + +struct stack_frame_user { + const void *next_fp; + long unsigned int ret_addr; +}; + +struct stack_info { + enum stack_type type; + long unsigned int *begin; + long unsigned int *end; + long unsigned int *next_sp; +}; + +struct stack_map_bucket { + struct pcpu_freelist_node fnode; + u32 hash; + u32 nr; + u64 data[0]; +}; + +struct stack_record { + struct list_head hash_list; + u32 hash; + u32 size; + union handle_parts handle; + refcount_t count; + union { + long unsigned int entries[64]; + struct { + struct list_head free_list; + long unsigned int rcu_state; + }; + }; +}; + +struct stacktrace_cookie { + long unsigned int *store; + unsigned int size; + unsigned int skip; + unsigned int len; +}; + +struct start_info { + char magic[32]; + long unsigned int nr_pages; + long unsigned int shared_info; + uint32_t flags; + xen_pfn_t store_mfn; + uint32_t store_evtchn; + union { + struct { + xen_pfn_t mfn; + uint32_t evtchn; + } domU; + struct { + uint32_t info_off; + uint32_t info_size; + } dom0; + } console; + long unsigned int pt_base; + long unsigned int nr_pt_frames; + long unsigned int mfn_list; + long unsigned int mod_start; + long unsigned int mod_len; + int8_t cmd_line[1024]; + long unsigned int first_p2m_pfn; + long unsigned int nr_p2m_frames; +}; + +struct stashed_operations { + void (*put_data)(void *); + int (*init_inode)(struct inode *, void *); +}; + +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 stat64 { + long long unsigned int 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; + long long unsigned int st_rdev; + unsigned char __pad3[4]; + long long int st_size; + unsigned int st_blksize; + long long int 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; + long long unsigned int st_ino; +} __attribute__((packed)); + +struct stat_node { + struct rb_node node; + void *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 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]; +}; + +struct static_call_mod; + +struct static_call_key { + void *func; + union { + long unsigned int 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 static_call_tramp_key { + s32 tramp; + s32 key; +}; + +struct static_key_deferred { + struct static_key key; + long unsigned int timeout; + struct delayed_work work; +}; + +struct static_key_false_deferred { + struct static_key_false key; + long unsigned int timeout; + struct delayed_work work; +}; + +struct static_key_mod { + struct static_key_mod *next; + struct jump_entry *entries; + struct module *mod; +}; + +struct static_tree_desc_s { + const ct_data *static_tree; + const int *extra_bits; + int extra_base; + int elems; + int max_length; +}; + +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 ethtool_phy_stats phydev_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; + struct ethtool_phy_stats phydev_stats; + } stats; + }; + const struct ethtool_rmon_hist_range *rmon_ranges; +}; + +struct stats_req_info { + struct ethnl_req_info base; + long unsigned int stat_mask[1]; + enum ethtool_mac_stats_src src; +}; + +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 stx_subvol; + __u32 stx_atomic_write_unit_min; + __u32 stx_atomic_write_unit_max; + __u32 stx_atomic_write_segments_max; + __u32 stx_dio_read_offset_align; + __u64 __spare3[9]; +}; + +struct stereo_mandatory_mode { + int width; + int height; + int vrefresh; + unsigned int flags; +}; + +struct stop_event_data { + struct perf_event *event; + unsigned int restart; +}; + +struct stored_match_addr { + union { + struct sockaddr addr; + struct sockaddr_in addr4; + struct sockaddr_in6 addr6; + }; + int addrlen; + struct match_addr maddr; +}; + +struct strarray { + char **array; + size_t n; +}; + +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 strset_info { + bool per_dev; + bool free_strings; + unsigned int count; + const char (*strings)[32]; +}; + +struct strset_reply_data { + struct ethnl_reply_data base; + struct strset_info sets[23]; +}; + +struct strset_req_info { + struct ethnl_req_info base; + u32 req_ids; + bool counts_only; +}; + +struct subflow_send_info { + struct sock *ssk; + u64 linger_time; +}; + +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 subsys_dev_iter { + struct klist_iter ki; + const struct device_type *type; +}; + +struct subsys_interface { + const char *name; + const struct bus_type *subsys; + struct list_head node; + int (*add_dev)(struct device *, struct subsys_interface *); + void (*remove_dev)(struct device *, struct subsys_interface *); +}; + +struct subsys_private { + struct kset subsys; + struct kset *devices_kset; + struct list_head interfaces; + struct mutex mutex; + struct kset *drivers_kset; + struct klist klist_devices; + struct klist klist_drivers; + struct blocking_notifier_head bus_notifier; + unsigned int drivers_autoprobe: 1; + const struct bus_type *bus; + struct device *dev_root; + struct kset glue_dirs; + const struct class *class; + struct lock_class_key lock_key; +}; + +struct 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; + long unsigned int util; + long unsigned int bw_min; + long unsigned int saved_idle_calls; +}; + +struct sugov_tunables; + +struct sugov_policy { + struct cpufreq_policy *policy; + struct sugov_tunables *tunables; + struct list_head tunables_hook; + raw_spinlock_t update_lock; + u64 last_freq_update_time; + s64 freq_update_delay_ns; + unsigned int next_freq; + unsigned int cached_raw_freq; + struct irq_work irq_work; + struct kthread_work work; + struct mutex work_lock; + struct kthread_worker worker; + struct task_struct *thread; + bool work_in_progress; + bool limits_changed; + bool need_freq_update; +}; + +struct sugov_tunables { + struct gov_attr_set attr_set; + unsigned int rate_limit_us; +}; + +struct summary_data { + struct seq_file *s; + struct regulator_dev *parent; + int level; +}; + +struct summary_lock_data { + struct ww_acquire_ctx *ww_ctx; + struct regulator_dev **new_contended_rdev; + struct regulator_dev **old_contended_rdev; +}; + +struct sun_info { + __be16 id; + __be16 flags; +}; + +struct sun_vtoc { + __be32 version; + char volume[8]; + __be16 nparts; + struct sun_info infos[8]; + __be16 padding; + __be32 bootinfo[3]; + __be32 sanity; + __be32 reserved[10]; + __be32 timestamp[8]; +}; + +struct sun_partition { + __be32 start_cylinder; + __be32 num_sectors; +}; + +struct sun_disklabel { + unsigned char info[128]; + struct sun_vtoc vtoc; + __be32 write_reinstruct; + __be32 read_reinstruct; + unsigned char spare[148]; + __be16 rspeed; + __be16 pcylcount; + __be16 sparecyl; + __be16 obs1; + __be16 obs2; + __be16 ilfact; + __be16 ncyl; + __be16 nacyl; + __be16 ntrks; + __be16 nsect; + __be16 obs3; + __be16 obs4; + struct sun_partition partitions[8]; + __be16 magic; + __be16 csum; +}; + +struct mtd_info; + +struct super_block { + struct list_head s_list; + dev_t s_dev; + unsigned char s_blocksize_bits; + long unsigned int 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; + long unsigned int s_flags; + long unsigned int s_iflags; + long unsigned int 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 * const *s_xattr; + const struct fscrypt_operations *s_cop; + struct fscrypt_keyring *s_master_keys; + const struct fsverity_operations *s_vop; + struct unicode_map *s_encoding; + __u16 s_encoding_flags; + struct hlist_bl_head s_roots; + struct list_head s_mounts; + struct block_device *s_bdev; + struct file *s_bdev_file; + 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_sb_info *s_fsnotify_info; + char s_id[32]; + uuid_t s_uuid; + u8 s_uuid_len; + char s_sysfs_name[37]; + unsigned int s_max_links; + struct mutex s_vfs_rename_mutex; + const char *s_subtype; + const struct dentry_operations *s_d_op; + struct shrinker *s_shrink; + atomic_long_t s_remove_count; + 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: 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 super_operations { + struct inode * (*alloc_inode)(struct super_block *); + void (*destroy_inode)(struct inode *); + void (*free_inode)(struct inode *); + void (*dirty_inode)(struct inode *, int); + int (*write_inode)(struct inode *, struct writeback_control *); + int (*drop_inode)(struct inode *); + void (*evict_inode)(struct inode *); + void (*put_super)(struct super_block *); + int (*sync_fs)(struct super_block *, int); + int (*freeze_super)(struct super_block *, enum freeze_holder); + int (*freeze_fs)(struct super_block *); + int (*thaw_super)(struct super_block *, enum freeze_holder); + int (*unfreeze_fs)(struct super_block *); + int (*statfs)(struct dentry *, struct kstatfs *); + int (*remount_fs)(struct super_block *, int *, char *); + void (*umount_begin)(struct super_block *); + int (*show_options)(struct seq_file *, struct dentry *); + int (*show_devname)(struct seq_file *, struct dentry *); + int (*show_path)(struct seq_file *, struct dentry *); + int (*show_stats)(struct seq_file *, struct dentry *); + ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); + ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); + struct dquot ** (*get_dquots)(struct inode *); + long int (*nr_cached_objects)(struct super_block *, struct shrink_control *); + long int (*free_cached_objects)(struct super_block *, struct shrink_control *); + void (*shutdown)(struct super_block *); +}; + +struct super_type { + char *name; + struct module *owner; + int (*load_super)(struct md_rdev *, struct md_rdev *, int); + int (*validate_super)(struct mddev *, struct md_rdev *, struct md_rdev *); + void (*sync_super)(struct mddev *, struct md_rdev *); + long long unsigned int (*rdev_size_change)(struct md_rdev *, sector_t); + int (*allow_new_offset)(struct md_rdev *, long long unsigned int); +}; + +struct superblock_security_struct { + u32 sid; + u32 def_sid; + u32 mntpoint_sid; + short unsigned int behavior; + short unsigned int flags; + struct mutex lock; + struct list_head isec_head; + spinlock_t isec_lock; +}; + +struct superblock_smack { + struct smack_known *smk_root; + struct smack_known *smk_floor; + struct smack_known *smk_hat; + struct smack_known *smk_default; + int smk_flags; +}; + +struct suspend_info { + int cancelled; +}; + +struct suspend_performance_record { + struct fpdt_record_header header; + u64 suspend_start; + u64 suspend_end; +} __attribute__((packed)); + +struct suspend_stats { + unsigned int step_failures[8]; + unsigned int success; + unsigned int fail; + int last_failed_dev; + char failed_devs[80]; + int last_failed_errno; + int errno[2]; + int last_failed_step; + u64 last_hw_sleep; + u64 total_hw_sleep; + u64 max_hw_sleep; + enum suspend_stat_step failed_steps[2]; +}; + +struct 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 svc_deferred_req { + u32 prot; + struct svc_xprt *xprt; + struct __kernel_sockaddr_storage addr; + size_t addrlen; + struct __kernel_sockaddr_storage daddr; + size_t daddrlen; + void *xprt_ctxt; + struct cache_deferred_req handle; + int argslen; + __be32 args[0]; +}; + +struct svc_pool { + unsigned int sp_id; + struct lwq sp_xprts; + unsigned int sp_nrthreads; + struct list_head sp_all_threads; + struct llist_head sp_idle_threads; + struct percpu_counter sp_messages_arrived; + struct percpu_counter sp_sockets_queued; + struct percpu_counter sp_threads_woken; + long unsigned int sp_flags; +}; + +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_process_info { + union { + int (*dispatch)(struct svc_rqst *); + struct { + unsigned int lovers; + unsigned int hivers; + } mismatch; + }; +}; + +struct svc_version; + +struct svc_program { + 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; + enum svc_auth_status (*pg_authenticate)(struct svc_rqst *); + __be32 (*pg_init_request)(struct svc_rqst *, const struct svc_program *, struct svc_process_info *); + int (*pg_rpcbind_set)(struct net *, const struct svc_program *, u32, int, short unsigned int, short unsigned int); +}; + +struct xdr_stream { + __be32 *p; + struct xdr_buf *buf; + __be32 *end; + struct kvec *iov; + struct kvec scratch; + struct page **page_ptr; + void *page_kaddr; + unsigned int nwords; + struct rpc_rqst *rqst; +}; + +struct svc_rqst { + struct list_head rq_all; + struct llist_node rq_idle; + struct callback_head rq_rcu_head; + struct svc_xprt *rq_xprt; + struct __kernel_sockaddr_storage rq_addr; + size_t rq_addrlen; + struct __kernel_sockaddr_storage rq_daddr; + size_t rq_daddrlen; + struct svc_serv *rq_server; + struct svc_pool *rq_pool; + const struct svc_procedure *rq_procinfo; + struct auth_ops *rq_authop; + struct svc_cred rq_cred; + void *rq_xprt_ctxt; + struct svc_deferred_req *rq_deferred; + struct xdr_buf rq_arg; + struct xdr_stream rq_arg_stream; + struct xdr_stream rq_res_stream; + struct page *rq_scratch_page; + struct xdr_buf rq_res; + struct page *rq_pages[260]; + struct page **rq_respages; + struct page **rq_next_page; + struct page **rq_page_end; + struct folio_batch rq_fbatch; + struct kvec rq_vec[259]; + struct bio_vec rq_bvec[259]; + __be32 rq_xid; + u32 rq_prog; + u32 rq_vers; + u32 rq_proc; + u32 rq_prot; + int rq_cachetype; + long unsigned int rq_flags; + ktime_t rq_qtime; + void *rq_argp; + void *rq_resp; + __be32 *rq_accept_statp; + void *rq_auth_data; + __be32 rq_auth_stat; + int rq_auth_slack; + int rq_reserved; + ktime_t rq_stime; + struct cache_req rq_chandle; + struct auth_domain *rq_client; + struct auth_domain *rq_gssclient; + struct task_struct *rq_task; + struct net *rq_bc_net; + int rq_err; + long unsigned int bc_to_initval; + unsigned int bc_to_retries; + void **rq_lease_breaker; + unsigned int rq_status_counter; +}; + +struct svc_stat; + +struct svc_serv { + struct svc_program *sv_programs; + struct svc_stat *sv_stats; + spinlock_t sv_lock; + unsigned int sv_nprogs; + unsigned int sv_nrthreads; + 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; + bool sv_is_pooled; + struct svc_pool *sv_pools; + int (*sv_threadfn)(void *); + struct lwq sv_cb_list; + bool sv_bc_enabled; +}; + +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_version { + u32 vs_vers; + u32 vs_nproc; + const struct svc_procedure *vs_proc; + long unsigned int *vs_count; + u32 vs_xdrsize; + bool vs_hidden; + bool vs_rpcb_optnl; + bool vs_need_cong_ctrl; + int (*vs_dispatch)(struct svc_rqst *); +}; + +struct svsm_loc_entry { + u64 pa; + u32 len; + u8 rsvd[4]; +}; + +struct svsm_attest_call { + struct svsm_loc_entry report_buf; + struct svsm_loc_entry nonce; + struct svsm_loc_entry manifest_buf; + struct svsm_loc_entry certificates_buf; + u8 service_guid[16]; + u32 service_manifest_ver; + u8 rsvd[4]; +}; + +struct svsm_ca { + u8 call_pending; + u8 mem_available; + u8 rsvd1[6]; + u8 svsm_buffer[4088]; +}; + +struct svsm_call { + struct svsm_ca *caa; + u64 rax; + u64 rcx; + u64 rdx; + u64 r8; + u64 r9; + u64 rax_out; + u64 rcx_out; + u64 rdx_out; + u64 r8_out; + u64 r9_out; +}; + +struct svsm_pvalidate_entry { + u64 page_size: 2; + u64 action: 1; + u64 ignore_cf: 1; + u64 rsvd: 8; + u64 pfn: 52; +}; + +struct svsm_pvalidate_call { + u16 num_entries; + u16 cur_index; + u8 rsvd1[4]; + struct svsm_pvalidate_entry entry[0]; +}; + +struct sw_sync_create_fence_data { + __u32 value; + char name[32]; + __s32 fence; +}; + +struct sw_sync_get_deadline { + __u64 deadline_ns; + __u32 pad; + __s32 fence_fd; +}; + +struct swait_queue { + struct task_struct *task; + struct list_head task_list; +}; + +struct swap_cgroup { + atomic_t ids; +}; + +struct swap_cgroup_ctrl { + struct swap_cgroup *map; +}; + +struct swap_cluster_info { + spinlock_t lock; + u16 count; + u8 flags; + u8 order; + struct list_head list; +}; + +struct swap_extent { + struct rb_node rb_node; + long unsigned int start_page; + long unsigned int 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 swap_info_struct { + struct percpu_ref users; + long unsigned int flags; + short int prio; + struct plist_node list; + signed char type; + unsigned int max; + unsigned char *swap_map; + long unsigned int *zeromap; + struct swap_cluster_info *cluster_info; + struct list_head free_clusters; + struct list_head full_clusters; + struct list_head nonfull_clusters[10]; + struct list_head frag_clusters[10]; + atomic_long_t frag_cluster_nr[10]; + unsigned int pages; + atomic_long_t inuse_pages; + struct percpu_cluster *percpu_cluster; + struct percpu_cluster *global_cluster; + spinlock_t global_cluster_lock; + struct rb_root swap_extent_root; + struct block_device *bdev; + struct file *swap_file; + struct completion comp; + spinlock_t lock; + spinlock_t cont_lock; + struct work_struct discard_work; + struct work_struct reclaim_work; + struct list_head discard_clusters; + struct plist_node avail_lists[0]; +}; + +struct swap_iocb { + struct kiocb iocb; + struct bio_vec bvec[32]; + int pages; + int len; +}; + +struct swap_map_page; + +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; + long unsigned int reqd_free_pages; + u32 crc32; +}; + +struct swap_map_page { + sector_t entries[511]; + sector_t next_swap; +}; + +struct swap_map_page_list { + struct swap_map_page *map; + struct swap_map_page_list *next; +}; + +struct swap_slots_cache { + bool lock_initialized; + struct mutex alloc_lock; + swp_entry_t *slots; + int nr; + int cur; + int n_ret; +}; + +struct swevent_hlist { + struct hlist_head heads[256]; + struct callback_head callback_head; +}; + +struct swevent_htable { + struct swevent_hlist *swevent_hlist; + struct mutex hlist_mutex; + int hlist_refcount; +}; + +struct switchdev_mst_state { + u16 msti; + u8 state; +}; + +struct switchdev_brport_flags { + long unsigned int val; + long unsigned int mask; +}; + +struct switchdev_vlan_msti { + u16 vid; + u16 msti; +}; + +struct switchdev_attr { + struct net_device *orig_dev; + enum switchdev_attr_id id; + u32 flags; + void *complete_priv; + void (*complete)(struct net_device *, int, void *); + union { + u8 stp_state; + struct switchdev_mst_state mst_state; + struct switchdev_brport_flags brport_flags; + bool mrouter; + clock_t ageing_time; + bool vlan_filtering; + u16 vlan_protocol; + bool mst; + bool mc_disabled; + u8 mrp_port_role; + struct switchdev_vlan_msti vlan_msti; + } u; +}; + +struct switchdev_brport { + struct net_device *dev; + const void *ctx; + struct notifier_block *atomic_nb; + struct notifier_block *blocking_nb; + bool tx_fwd_offload; +}; + +typedef void switchdev_deferred_func_t(struct net_device *, const void *); + +struct switchdev_deferred_item { + struct list_head list; + struct net_device *dev; + netdevice_tracker dev_tracker; + switchdev_deferred_func_t *func; + long unsigned int data[0]; +}; + +struct switchdev_nested_priv { + bool (*check_cb)(const struct net_device *); + bool (*foreign_dev_check_cb)(const struct net_device *, const struct net_device *); + const struct net_device *dev; + struct net_device *lower_dev; +}; + +struct switchdev_notifier_info { + struct net_device *dev; + struct netlink_ext_ack *extack; + const void *ctx; +}; + +struct switchdev_notifier_brport_info { + struct switchdev_notifier_info info; + const struct switchdev_brport brport; +}; + +struct switchdev_notifier_fdb_info { + struct switchdev_notifier_info info; + const unsigned char *addr; + u16 vid; + u8 added_by_user: 1; + u8 is_local: 1; + u8 locked: 1; + u8 offloaded: 1; +}; + +struct switchdev_notifier_port_attr_info { + struct switchdev_notifier_info info; + const struct switchdev_attr *attr; + bool handled; +}; + +struct switchdev_obj; + +struct switchdev_notifier_port_obj_info { + struct switchdev_notifier_info info; + const struct switchdev_obj *obj; + bool handled; +}; + +struct switchdev_obj { + struct list_head list; + struct net_device *orig_dev; + enum switchdev_obj_id id; + u32 flags; + void *complete_priv; + void (*complete)(struct net_device *, int, void *); +}; + +struct switchdev_obj_mrp { + struct switchdev_obj obj; + struct net_device *p_port; + struct net_device *s_port; + u32 ring_id; + u16 prio; +}; + +struct switchdev_obj_port_mdb { + struct switchdev_obj obj; + unsigned char addr[6]; + u16 vid; +}; + +struct switchdev_obj_port_vlan { + struct switchdev_obj obj; + u16 flags; + u16 vid; + bool changed; +}; + +struct switchdev_obj_ring_role_mrp { + struct switchdev_obj obj; + u8 ring_role; + u32 ring_id; + u8 sw_backup; +}; + +struct swmii_regs { + u16 bmsr; + u16 lpa; + u16 lpagb; + u16 estat; +}; + +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 swsusp_extent { + struct rb_node node; + long unsigned int start; + long unsigned int end; +}; + +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_info { + struct new_utsname uts; + u32 version_code; + long unsigned int num_physpages; + int cpus; + long unsigned int image_pages; + long unsigned int pages; + long unsigned int 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 sx150x_123_pri { + u8 reg_pld_mode; + u8 reg_pld_table0; + u8 reg_pld_table1; + u8 reg_pld_table2; + u8 reg_pld_table3; + u8 reg_pld_table4; + u8 reg_advanced; +}; + +struct sx150x_456_pri { + u8 reg_pld_mode; + u8 reg_pld_table0; + u8 reg_pld_table1; + u8 reg_pld_table2; + u8 reg_pld_table3; + u8 reg_pld_table4; + u8 reg_advanced; +}; + +struct sx150x_789_pri { + u8 reg_drain; + u8 reg_polarity; + u8 reg_clock; + u8 reg_misc; + u8 reg_reset; + u8 ngpios; +}; + +struct sx150x_device_data { + u8 model; + u8 reg_pullup; + u8 reg_pulldn; + u8 reg_dir; + u8 reg_data; + u8 reg_irq_mask; + u8 reg_irq_src; + u8 reg_sense; + u8 ngpios; + union { + struct sx150x_123_pri x123; + struct sx150x_456_pri x456; + struct sx150x_789_pri x789; + } pri; + const struct pinctrl_pin_desc *pins; + unsigned int npins; +}; + +struct sx150x_pinctrl { + struct device *dev; + struct i2c_client *client; + struct pinctrl_dev *pctldev; + struct pinctrl_desc pinctrl_desc; + struct gpio_chip gpio; + struct regmap *regmap; + struct { + u32 sense; + u32 masked; + } irq; + struct mutex lock; + const struct sx150x_device_data *data; +}; + +struct sym_count_ctx { + unsigned int count; + const char *name; +}; + +struct symsearch { + const struct kernel_symbol *start; + const struct kernel_symbol *stop; + const u32 *crcs; + enum mod_license license; +}; + +struct sync_fence_info { + char obj_name[32]; + char driver_name[32]; + __s32 status; + __u32 flags; + __u64 timestamp_ns; +}; + +struct sync_file { + struct file *file; + char user_name[32]; + struct list_head sync_file_list; + wait_queue_head_t wq; + long unsigned int flags; + struct dma_fence *fence; + struct dma_fence_cb cb; +}; + +struct sync_file_info { + char name[32]; + __s32 status; + __u32 flags; + __u32 num_fences; + __u32 pad; + __u64 sync_fence_info; +}; + +struct sync_io { + long unsigned int error_bits; + struct completion wait; +}; + +struct sync_merge_data { + char name[32]; + __s32 fd2; + __s32 fence; + __u32 flags; + __u32 pad; +}; + +struct sync_pt { + struct dma_fence base; + struct list_head link; + struct rb_node node; + ktime_t deadline; +}; + +struct sync_set_deadline { + __u64 deadline_ns; + __u64 pad; +}; + +struct sync_timeline { + struct kref kref; + char name[32]; + u64 context; + int value; + struct rb_root pt_tree; + struct list_head pt_list; + spinlock_t lock; + struct list_head sync_timeline_list; +}; + +struct syncobj_eventfd_entry { + struct list_head node; + struct dma_fence *fence; + struct dma_fence_cb fence_cb; + struct drm_syncobj *syncobj; + struct eventfd_ctx *ev_fd_ctx; + u64 point; + u32 flags; +}; + +struct syncobj_wait_entry { + struct list_head node; + struct task_struct *task; + struct dma_fence *fence; + struct dma_fence_cb fence_cb; + u64 point; +}; + +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_functions; + +struct trace_event { + struct hlist_node node; + int type; + struct trace_event_functions *funcs; +}; + +struct trace_event_call { + struct list_head list; + struct trace_event_class *class; + union { + const char *name; + struct tracepoint *tp; + }; + struct trace_event event; + char *print_fmt; + union { + void *module; + atomic_t refcnt; + }; + void *data; + int flags; + int perf_refcount; + struct hlist_head *perf_events; + struct bpf_prog_array *prog_array; + int (*perf_perm)(struct trace_event_call *, struct perf_event *); +}; + +struct synth_field; + +struct synth_event { + struct dyn_event devent; + int ref; + char *name; + struct synth_field **fields; + unsigned int n_fields; + struct synth_field **dynamic_fields; + unsigned int n_dynamic_fields; + unsigned int n_u64; + struct trace_event_class class; + struct trace_event_call call; + struct tracepoint *tp; + struct module *mod; +}; + +struct 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 synth_trace_event; + +struct synth_event_trace_state { + struct trace_event_buffer fbuffer; + struct synth_trace_event *entry; + struct trace_buffer *buffer; + struct synth_event *event; + unsigned int cur_field; + unsigned int n_u64; + bool disabled; + bool add_next; + bool add_name; +}; + +struct synth_field { + char *type; + char *name; + size_t size; + unsigned int offset; + unsigned int field_pos; + bool is_signed; + bool is_string; + bool is_dynamic; + bool is_stack; +}; + +struct synth_field_desc { + const char *type; + const char *name; +}; + +struct trace_dynamic_info { + u16 offset; + u16 len; +}; + +union trace_synth_field { + u8 as_u8; + u16 as_u16; + u32 as_u32; + u64 as_u64; + struct trace_dynamic_info as_dynamic; +}; + +struct synth_trace_event { + struct trace_entry ent; + union trace_synth_field fields[0]; +}; + +struct sys_off_data { + int mode; + void *cb_data; + const char *cmd; + struct device *dev; +}; + +struct sys_off_handler { + struct notifier_block nb; + int (*sys_off_cb)(struct sys_off_data *); + void *cb_data; + enum sys_off_mode mode; + bool blocking; + void *list; + struct device *dev; +}; + +struct syscall_info { + __u64 sp; + struct seccomp_data data; +}; + +struct syscall_metadata { + const char *name; + int syscall_nr; + int nb_args; + const char **types; + const char **args; + struct list_head enter_fields; + struct trace_event_call *enter_event; + struct trace_event_call *exit_event; +}; + +struct syscall_tp_t { + struct trace_entry ent; + int syscall_nr; + long unsigned int ret; +}; + +struct syscall_tp_t___2 { + struct trace_entry ent; + int syscall_nr; + long unsigned int args[6]; +}; + +struct syscall_trace_enter { + struct trace_entry ent; + int nr; + long unsigned int args[0]; +}; + +struct syscall_trace_exit { + struct trace_entry ent; + int nr; + long int ret; +}; + +struct syscall_user_dispatch { + char *selector; + long unsigned int offset; + long unsigned int len; + bool on_dispatch; +}; + +struct syscon { + struct device_node *np; + struct regmap *regmap; + struct reset_control *reset; + struct list_head list; +}; + +struct syscore_ops { + struct list_head node; + int (*suspend)(void); + void (*resume)(void); + void (*shutdown)(void); +}; + +struct sysctl_alias { + const char *kernel_param; + const char *sysctl_param; +}; + +struct sysfs_ops { + ssize_t (*show)(struct kobject *, struct attribute *, char *); + ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); +}; + +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 sysrq_key_op { + void (* const handler)(u8); + 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; + long unsigned int 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; + long unsigned int reset_keybit[12]; + int reset_seq_len; + int reset_seq_cnt; + int reset_seq_version; + struct timer_list keyreset_timer; +}; + +struct system_counterval_t { + u64 cycles; + enum clocksource_ids cs_id; + bool use_nsecs; +}; + +struct system_device_crosststamp { + ktime_t device; + ktime_t sys_realtime; + ktime_t sys_monoraw; +}; + +struct system_heap_buffer { + struct dma_heap *heap; + struct list_head attachments; + struct mutex lock; + long unsigned int len; + struct sg_table sg_table; + int vmap_cnt; + void *vaddr; +}; + +struct system_time_snapshot { + u64 cycles; + ktime_t real; + ktime_t boot; + ktime_t raw; + enum clocksource_ids cs_id; + unsigned int clock_was_set_seq; + u8 cs_was_changed_seq; +}; + +struct sysv_sem { + struct sem_undo_list *undo_list; +}; + +struct sysv_shm { + struct list_head shm_clist; +}; + +struct t10_pi_tuple { + __be16 guard_tag; + __be16 app_tag; + __be32 ref_tag; +}; + +struct table_device { + struct list_head list; + refcount_t count; + struct dm_dev dm_dev; +}; + +struct table_header { + u16 td_id; + u16 td_flags; + u32 td_hilen; + u32 td_lolen; + char td_data[0]; +}; + +struct taint_flag { + char c_true; + char c_false; + bool module; + const char *desc; +}; + +struct tap_filter { + unsigned int count; + u32 mask[2]; + unsigned char addr[48]; +}; + +struct target_cache { + struct list_head node; + struct node_cache_attrs cache_attrs; +}; + +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 *); + +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 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 *, struct dm_report_zones_args *, unsigned int); + +typedef int (*dm_busy_fn)(struct dm_target *); + +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 long int (*dm_dax_direct_access_fn)(struct dm_target *, long unsigned int, long int, enum dax_access_mode, void **, pfn_t *); + +typedef int (*dm_dax_zero_page_range_fn)(struct dm_target *, long unsigned int, size_t); + +typedef size_t (*dm_dax_recovery_write_fn)(struct dm_target *, long unsigned int, void *, size_t, struct iov_iter *); + +struct target_type { + uint64_t features; + const char *name; + struct module *module; + unsigned int version[3]; + dm_ctr_fn ctr; + dm_dtr_fn dtr; + dm_map_fn map; + dm_clone_and_map_request_fn clone_and_map_rq; + dm_release_clone_request_fn release_clone_rq; + dm_endio_fn end_io; + dm_request_endio_fn rq_end_io; + dm_presuspend_fn presuspend; + dm_presuspend_undo_fn presuspend_undo; + dm_postsuspend_fn postsuspend; + dm_preresume_fn preresume; + dm_resume_fn resume; + dm_status_fn status; + dm_message_fn message; + dm_prepare_ioctl_fn prepare_ioctl; + dm_report_zones_fn report_zones; + dm_busy_fn busy; + dm_iterate_devices_fn iterate_devices; + dm_io_hints_fn io_hints; + dm_dax_direct_access_fn direct_access; + dm_dax_zero_page_range_fn dax_zero_page_range; + dm_dax_recovery_write_fn dax_recovery_write; + struct list_head list; +}; + +struct task_delay_info { + raw_spinlock_t lock; + u64 blkio_start; + u64 blkio_delay_max; + u64 blkio_delay_min; + u64 blkio_delay; + u64 swapin_start; + u64 swapin_delay_max; + u64 swapin_delay_min; + u64 swapin_delay; + u32 blkio_count; + u32 swapin_count; + u64 freepages_start; + u64 freepages_delay_max; + u64 freepages_delay_min; + u64 freepages_delay; + u64 thrashing_start; + u64 thrashing_delay_max; + u64 thrashing_delay_min; + u64 thrashing_delay; + u64 compact_start; + u64 compact_delay_max; + u64 compact_delay_min; + u64 compact_delay; + u64 wpcopy_start; + u64 wpcopy_delay_max; + u64 wpcopy_delay_min; + u64 wpcopy_delay; + u64 irq_delay_max; + u64 irq_delay_min; + u64 irq_delay; + u32 freepages_count; + u32 thrashing_count; + u32 compact_count; + u32 wpcopy_count; + u32 irq_count; +}; + +struct uclamp_se { + unsigned int value: 11; + unsigned int bucket_id: 3; + unsigned int active: 1; + unsigned int user_defined: 1; +}; + +struct task_group { + struct cgroup_subsys_state css; + int idle; + struct sched_entity **se; + struct cfs_rq **cfs_rq; + long unsigned int shares; + long: 64; + long: 64; + atomic_long_t load_avg; + u32 scx_flags; + u32 scx_weight; + struct callback_head rcu; + struct list_head list; + struct task_group *parent; + struct list_head siblings; + struct list_head children; + struct autogroup *autogroup; + struct cfs_bandwidth cfs_bandwidth; + unsigned int uclamp_pct[2]; + struct uclamp_se uclamp_req[2]; + struct uclamp_se uclamp[2]; + long: 64; + long: 64; + long: 64; +}; + +struct task_numa_env { + struct task_struct *p; + int src_cpu; + int src_nid; + int dst_cpu; + int dst_nid; + int imb_numa_nr; + struct numa_stats src_stats; + struct numa_stats dst_stats; + int imbalance_pct; + int dist; + struct task_struct *best_task; + long int best_imp; + int best_cpu; +}; + +struct task_security_struct { + u32 osid; + u32 sid; + u32 exec_sid; + u32 create_sid; + u32 keycreate_sid; + u32 sockcreate_sid; +}; + +struct task_smack { + struct smack_known *smk_task; + struct smack_known *smk_forked; + struct smack_known *smk_transmuted; + struct list_head smk_rules; + struct mutex smk_rules_lock; + struct list_head smk_relabel; +}; + +typedef struct task_struct *class_find_get_task_t; + +typedef struct task_struct *class_task_lock_t; + +struct thread_info { + long unsigned int flags; + long unsigned int syscall_work; + u32 status; + u32 cpu; +}; + +struct vtime { + seqcount_t seqcount; + long long unsigned int starttime; + enum vtime_state state; + unsigned int cpu; + u64 utime; + u64 stime; + u64 gtime; +}; + +struct wake_q_node { + struct wake_q_node *next; +}; + +struct tlbflush_unmap_batch { + struct arch_tlbflush_unmap_batch arch; + bool flush_required; + bool writable; +}; + +struct thread_shstk { + u64 base; + u64 size; +}; + +struct thread_struct { + struct desc_struct tls_array[3]; + long unsigned int sp; + short unsigned int es; + short unsigned int ds; + short unsigned int fsindex; + short unsigned int gsindex; + long unsigned int fsbase; + long unsigned int gsbase; + struct perf_event *ptrace_bps[4]; + long unsigned int virtual_dr6; + long unsigned int ptrace_dr7; + long unsigned int cr2; + long unsigned int trap_nr; + long unsigned int error_code; + struct io_bitmap *io_bitmap; + long unsigned int iopl_emul; + unsigned int iopl_warn: 1; + u32 pkru; + long unsigned int features; + long unsigned int features_locked; + struct thread_shstk shstk; + long: 64; + struct fpu fpu; +}; + +struct uprobe_task; + +struct user_event_mm; + +struct task_struct { + struct thread_info thread_info; + unsigned int __state; + unsigned int saved_state; + void *stack; + refcount_t usage; + unsigned int flags; + unsigned int ptrace; + int on_cpu; + struct __call_single_node wake_entry; + unsigned int wakee_flips; + long unsigned int 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; + struct sched_dl_entity *dl_server; + struct sched_ext_entity scx; + const struct sched_class *sched_class; + struct rb_node core_node; + long unsigned int core_cookie; + unsigned int core_occupation; + struct task_group *sched_task_group; + struct uclamp_se uclamp_req[2]; + struct uclamp_se uclamp[2]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sched_statistics stats; + struct hlist_head preempt_notifiers; + unsigned int btrace_seq; + unsigned int policy; + long unsigned int max_allowed_capacity; + int nr_cpus_allowed; + const cpumask_t *cpus_ptr; + cpumask_t *user_cpus_ptr; + cpumask_t cpus_mask; + void *migration_pending; + short unsigned int migration_disabled; + short unsigned int 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; + long unsigned int rcu_tasks_nvcsw; + u8 rcu_tasks_holdout; + u8 rcu_tasks_idx; + int rcu_tasks_idle_cpu; + struct list_head rcu_tasks_holdout_list; + int rcu_tasks_exit_cpu; + struct list_head rcu_tasks_exit_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; + struct address_space *faults_disabled_mapping; + int exit_state; + int exit_code; + int exit_signal; + int pdeath_signal; + long unsigned int jobctl; + unsigned int personality; + unsigned int sched_reset_on_fork: 1; + unsigned int sched_contributes_to_load: 1; + unsigned int sched_migrated: 1; + unsigned int sched_task_hot: 1; + long: 28; + unsigned int sched_remote_wakeup: 1; + unsigned int sched_rt_mutex: 1; + unsigned int in_execve: 1; + unsigned int in_iowait: 1; + unsigned int restore_sigmask: 1; + unsigned int in_lru_fault: 1; + unsigned int no_cgroup_migration: 1; + unsigned int frozen: 1; + unsigned int use_memdelay: 1; + unsigned int in_memstall: 1; + unsigned int in_eventfd: 1; + unsigned int pasid_activated: 1; + unsigned int reported_split_lock: 1; + unsigned int in_thrashing: 1; + long unsigned int atomic_flags; + struct restart_block restart_block; + pid_t pid; + pid_t tgid; + long unsigned int stack_canary; + struct task_struct *real_parent; + struct task_struct *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_node; + struct completion *vfork_done; + int *set_child_tid; + int *clear_child_tid; + void *worker_private; + u64 utime; + u64 stime; + u64 gtime; + struct prev_cputime prev_cputime; + struct vtime vtime; + atomic_t tick_dep_mask; + long unsigned int nvcsw; + long unsigned int nivcsw; + u64 start_time; + u64 start_boottime; + long unsigned int min_flt; + long unsigned int maj_flt; + struct posix_cputimers posix_cputimers; + struct posix_cputimers_work posix_cputimers_work; + const struct cred *ptracer_cred; + const struct cred *real_cred; + const struct cred *cred; + struct key *cached_requested_key; + char comm[16]; + struct nameidata *nameidata; + struct sysv_sem sysvsem; + struct sysv_shm sysvshm; + long unsigned int last_switch_count; + long unsigned int last_switch_time; + struct fs_struct *fs; + struct files_struct *files; + struct io_uring_task *io_uring; + struct nsproxy *nsproxy; + struct signal_struct *signal; + struct sighand_struct *sighand; + sigset_t blocked; + sigset_t real_blocked; + sigset_t saved_sigmask; + struct sigpending pending; + long unsigned int 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; + unsigned int in_ubsan; + void *journal_info; + struct bio_list *bio_list; + struct blk_plug *plug; + struct reclaim_state *reclaim_state; + struct io_context *io_context; + struct capture_control *capture_control; + long unsigned int ptrace_message; + kernel_siginfo_t *last_siginfo; + struct task_io_accounting ioac; + unsigned int psi_flags; + u64 acct_rss_mem1; + u64 acct_vm_mem1; + u64 acct_timexpd; + nodemask_t mems_allowed; + seqcount_spinlock_t mems_allowed_seq; + int cpuset_mem_spread_rotor; + struct css_set *cgroups; + struct list_head cg_list; + u32 closid; + u32 rmid; + struct robust_list_head *robust_list; + struct compat_robust_list_head *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; + u8 perf_recursion[4]; + struct perf_event_context *perf_event_ctxp; + struct mutex perf_event_mutex; + struct list_head perf_event_list; + struct perf_ctx_data *perf_ctx_data; + struct mempolicy *mempolicy; + short int il_prev; + u8 il_weight; + short int pref_node_fork; + int numa_scan_seq; + unsigned int numa_scan_period; + unsigned int numa_scan_period_max; + int numa_preferred_nid; + long unsigned int numa_migrate_retry; + u64 node_stamp; + u64 last_task_numa_placement; + u64 last_sum_exec_runtime; + struct callback_head numa_work; + struct numa_group *numa_group; + long unsigned int *numa_faults; + long unsigned int total_numa_faults; + long unsigned int numa_faults_locality[3]; + long unsigned int numa_pages_migrated; + struct rseq *rseq; + u32 rseq_len; + u32 rseq_sig; + long unsigned int rseq_event_mask; + int mm_cid; + int last_mm_cid; + int migrate_from_cpu; + int mm_cid_active; + struct callback_head cid_work; + 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; + long unsigned int dirty_paused_when; + int latency_record_count; + struct latency_record latency_record[32]; + u64 timer_slack_ns; + u64 default_timer_slack_ns; + int curr_ret_stack; + int curr_ret_depth; + long unsigned int *ret_stack; + long long unsigned int ftrace_timestamp; + long long unsigned int ftrace_sleeptime; + atomic_t trace_overrun; + atomic_t tracing_graph_pause; + long unsigned int trace_recursion; + unsigned int memcg_nr_pages_over_high; + struct mem_cgroup *active_memcg; + struct obj_cgroup *objcg; + struct gendisk *throttle_disk; + struct uprobe_task *utask; + unsigned int sequential_io; + unsigned int sequential_io_avg; + 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 *bpf_storage; + struct bpf_run_ctx *bpf_ctx; + struct bpf_net_context *bpf_net_context; + void *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; + union rv_task_monitor rv[1]; + struct user_event_mm *user_event_mm; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct thread_struct thread; +}; + +struct task_struct__safe_rcu { + const cpumask_t *cpus_ptr; + struct css_set *cgroups; + struct task_struct *real_parent; + struct task_struct *group_leader; +}; + +struct tasklet_head { + struct tasklet_struct *head; + struct tasklet_struct **tail; +}; + +struct taskstats { + __u16 version; + __u32 ac_exitcode; + __u8 ac_flag; + __u8 ac_nice; + __u64 cpu_count; + __u64 cpu_delay_total; + __u64 blkio_count; + __u64 blkio_delay_total; + __u64 swapin_count; + __u64 swapin_delay_total; + __u64 cpu_run_real_total; + __u64 cpu_run_virtual_total; + char ac_comm[32]; + __u8 ac_sched; + __u8 ac_pad[3]; + long: 0; + __u32 ac_uid; + __u32 ac_gid; + __u32 ac_pid; + __u32 ac_ppid; + __u32 ac_btime; + __u64 ac_etime; + __u64 ac_utime; + __u64 ac_stime; + __u64 ac_minflt; + __u64 ac_majflt; + __u64 coremem; + __u64 virtmem; + __u64 hiwater_rss; + __u64 hiwater_vm; + __u64 read_char; + __u64 write_char; + __u64 read_syscalls; + __u64 write_syscalls; + __u64 read_bytes; + __u64 write_bytes; + __u64 cancelled_write_bytes; + __u64 nvcsw; + __u64 nivcsw; + __u64 ac_utimescaled; + __u64 ac_stimescaled; + __u64 cpu_scaled_run_real_total; + __u64 freepages_count; + __u64 freepages_delay_total; + __u64 thrashing_count; + __u64 thrashing_delay_total; + __u64 ac_btime64; + __u64 compact_count; + __u64 compact_delay_total; + __u32 ac_tgid; + __u64 ac_tgetime; + __u64 ac_exe_dev; + __u64 ac_exe_inode; + __u64 wpcopy_count; + __u64 wpcopy_delay_total; + __u64 irq_count; + __u64 irq_delay_total; + __u64 cpu_delay_max; + __u64 cpu_delay_min; + __u64 blkio_delay_max; + __u64 blkio_delay_min; + __u64 swapin_delay_max; + __u64 swapin_delay_min; + __u64 freepages_delay_max; + __u64 freepages_delay_min; + __u64 thrashing_delay_max; + __u64 thrashing_delay_min; + __u64 compact_delay_max; + __u64 compact_delay_min; + __u64 wpcopy_delay_max; + __u64 wpcopy_delay_min; + __u64 irq_delay_max; + __u64 irq_delay_min; +}; + +struct tboot_acpi_generic_address { + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_width; + u64 address; +} __attribute__((packed)); + +struct tboot_acpi_sleep_info { + struct tboot_acpi_generic_address pm1a_cnt_blk; + struct tboot_acpi_generic_address pm1b_cnt_blk; + struct tboot_acpi_generic_address pm1a_evt_blk; + struct tboot_acpi_generic_address pm1b_evt_blk; + u16 pm1a_cnt_val; + u16 pm1b_cnt_val; + u64 wakeup_vector; + u32 vector_width; + u64 kernel_s3_resume_vector; +} __attribute__((packed)); + +struct tboot_mac_region { + u64 start; + u32 size; +} __attribute__((packed)); + +struct tboot { + u8 uuid[16]; + u32 version; + u32 log_addr; + u32 shutdown_entry; + u32 shutdown_type; + struct tboot_acpi_sleep_info acpi_sinfo; + u32 tboot_base; + u32 tboot_size; + u8 num_mac_regions; + struct tboot_mac_region mac_regions[32]; + u8 s3_key[64]; + u8 reserved_align[3]; + u32 num_in_wfs; +}; + +struct tc_act_pernet_id { + struct list_head list; + unsigned int id; +}; + +struct tcf_t { + __u64 install; + __u64 lastuse; + __u64 expires; + __u64 firstuse; +}; + +struct tc_action_ops; + +struct tcf_idrinfo; + +struct tc_cookie; + +struct tcf_chain; + +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 *tcfa_rate_est; + spinlock_t tcfa_lock; + struct gnet_stats_basic_sync *cpu_bstats; + struct gnet_stats_basic_sync *cpu_bstats_hw; + struct gnet_stats_queue *cpu_qstats; + struct tc_cookie *user_cookie; + struct tcf_chain *goto_chain; + u32 tcfa_flags; + u8 hw_stats; + u8 used_hw_stats; + bool used_hw_stats_valid; + u32 in_hw_count; +}; + +struct tc_action_net { + struct tcf_idrinfo *idrinfo; + const struct tc_action_ops *ops; +}; + +typedef void (*tc_action_priv_destructor)(void *); + +struct tcf_result; + +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 tc_bind_class_args { + struct qdisc_walker w; + long unsigned int new_cl; + u32 portid; + u32 clid; +}; + +struct tc_cookie { + u8 *data; + u32 len; + struct callback_head rcu; +}; + +struct tc_fifo_qopt { + __u32 limit; +}; + +struct tc_qopt_offload_stats { + struct gnet_stats_basic_sync *bstats; + struct gnet_stats_queue *qstats; +}; + +struct tc_fifo_qopt_offload { + enum tc_fifo_command command; + u32 handle; + u32 parent; + union { + struct tc_qopt_offload_stats stats; + }; +}; + +struct tc_mq_opt_offload_graft_params { + long unsigned int 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 tc_pedit_key { + __u32 mask; + __u32 val; + __u32 off; + __u32 at; + __u32 offmask; + __u32 shift; +}; + +struct tc_prio_qopt { + int bands; + __u8 priomap[16]; +}; + +struct tc_query_caps_base { + enum tc_setup_type type; + void *caps; +}; + +struct tc_root_qopt_offload { + enum tc_root_command command; + u32 handle; + bool ingress; +}; + +struct tc_skb_cb { + struct qdisc_skb_cb qdisc_cb; + u32 drop_reason; + u16 zone; + u16 mru; + u8 post_ct: 1; + u8 post_ct_snat: 1; + u8 post_ct_dnat: 1; +}; + +struct tc_skb_ext { + union { + u64 act_miss_cookie; + __u32 chain; + }; + __u16 mru; + __u16 zone; + u8 post_ct: 1; + u8 post_ct_snat: 1; + u8 post_ct_dnat: 1; + u8 act_miss: 1; + u8 l2_miss: 1; +}; + +struct tcamsg { + unsigned char tca_family; + unsigned char tca__pad1; + short unsigned int tca__pad2; +}; + +struct tcf_walker { + int stop; + int skip; + int count; + bool nonempty; + long unsigned int cookie; + int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); +}; + +struct tcf_bind_args { + struct tcf_walker w; + long unsigned int base; + long unsigned int cl; + u32 classid; +}; + +struct tcf_block { + struct xarray ports; + 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 useswcnt; + 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; +}; + +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 tcf_block_owner_item { + struct list_head list; + struct Qdisc *q; + enum flow_block_binder_type binder_type; +}; + +struct tcf_proto_ops; + +struct tcf_chain { + struct mutex filter_chain_lock; + struct tcf_proto *filter_chain; + struct list_head list; + struct tcf_block *block; + u32 index; + unsigned int refcnt; + unsigned int action_refcnt; + bool explicitly_created; + bool flushing; + const struct tcf_proto_ops *tmplt_ops; + void *tmplt_priv; + struct callback_head rcu; +}; + +struct tcf_chain_info { + struct tcf_proto **pprev; + struct tcf_proto *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_ematch_ops; + +struct tcf_ematch { + struct tcf_ematch_ops *ops; + long unsigned int data; + unsigned int datalen; + u16 matchid; + u16 flags; + struct net *net; +}; + +struct tcf_ematch_hdr { + __u16 matchid; + __u16 kind; + __u16 flags; + __u16 pad; +}; + +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_ematch_tree_hdr { + __u16 nmatches; + __u16 progid; +}; + +struct tcf_ematch_tree { + struct tcf_ematch_tree_hdr hdr; + struct tcf_ematch *matches; +}; + +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; +}; + +union tcf_exts_miss_cookie { + struct { + u32 miss_cookie_base; + u32 act_index; + }; + u64 miss_cookie; +}; + +struct tcf_exts_miss_cookie_node { + const struct tcf_chain *chain; + const struct tcf_proto *tp; + const struct tcf_exts *exts; + u32 chain_index; + u32 tp_prio; + u32 handle; + u32 miss_cookie_base; + struct callback_head rcu; +}; + +struct tcf_filter_chain_list_item { + struct list_head list; + tcf_chain_head_change_t *chain_head_change; + void *chain_head_change_priv; +}; + +struct tcf_idrinfo { + struct mutex lock; + struct idr action_idr; + struct net *net; +}; + +struct tcf_net { + spinlock_t idr_lock; + struct idr idr; +}; + +struct tcf_pedit_parms; + +struct tcf_pedit { + struct tc_action common; + struct tcf_pedit_parms *parms; + long: 64; +}; + +struct tcf_pedit_key_ex { + enum pedit_header_type htype; + enum pedit_cmd cmd; +}; + +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 tcf_pkt_info { + unsigned char *ptr; + int nexthdr; +}; + +struct tcf_proto { + struct tcf_proto *next; + void *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; + bool counted; + bool usesw; + refcount_t refcnt; + struct callback_head rcu; + struct hlist_node destroy_ht_node; +}; + +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 *, long unsigned int, 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, long unsigned int, void *, long unsigned int); + void * (*tmplt_create)(struct net *, struct tcf_chain *, struct nlattr **, struct netlink_ext_ack *); + void (*tmplt_destroy)(void *); + void (*tmplt_reoffload)(struct tcf_chain *, bool, flow_setup_cb_t *, 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_qevent { + struct tcf_block *block; + struct tcf_block_ext_info info; + struct tcf_proto *filter_chain; +}; + +struct tcf_result { + union { + struct { + long unsigned int class; + u32 classid; + }; + const struct tcf_proto *goto_tp; + }; +}; + +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 tpm_digest { + u16 alg_id; + u8 digest[64]; +}; + +struct tcg_pcr_event2_head { + u32 pcr_idx; + u32 event_type; + u32 count; + struct tpm_digest digests[0]; +}; + +struct tcmsg { + unsigned char tcm_family; + unsigned char tcm__pad1; + short unsigned int tcm__pad2; + int tcm_ifindex; + __u32 tcm_handle; + __u32 tcm_parent; + __u32 tcm_info; +}; + +struct tcp4_pseudohdr { + __be32 saddr; + __be32 daddr; + __u8 pad; + __u8 protocol; + __be16 len; +}; + +struct tcp6_pseudohdr { + struct in6_addr saddr; + struct in6_addr daddr; + __be32 len; + __be32 protocol; +}; + +struct tcp_options_received { + int ts_recent_stamp; + u32 ts_recent; + u32 rcv_tsval; + u32 rcv_tsecr; + u16 saw_tstamp: 1; + u16 tstamp_ok: 1; + u16 dsack: 1; + u16 wscale_ok: 1; + u16 sack_ok: 3; + u16 smc_ok: 1; + u16 snd_wscale: 4; + u16 rcv_wscale: 4; + u8 saw_unknown: 1; + u8 unused: 7; + u8 num_sacks; + u16 user_mss; + u16 mss_clamp; +}; + +struct tcp_rack { + u64 mstamp; + u32 rtt_us; + u32 end_seq; + u32 last_delivered; + u8 reo_wnd_steps; + u8 reo_wnd_persist: 5; + u8 dsack_seen: 1; + u8 advanced: 1; +}; + +struct tcp_sack_block { + u32 start_seq; + u32 end_seq; +}; + +struct tcp_sock_af_ops; + +struct tcp_md5sig_info; + +struct tcp_ao_info; + +struct tcp_fastopen_request; + +struct tcp_sock { + struct inet_connection_sock inet_conn; + __u8 __cacheline_group_begin__tcp_sock_read_tx[0]; + u32 max_window; + u32 rcv_ssthresh; + u32 reordering; + u32 notsent_lowat; + u16 gso_segs; + struct sk_buff *lost_skb_hint; + struct sk_buff *retransmit_skb_hint; + __u8 __cacheline_group_end__tcp_sock_read_tx[0]; + __u8 __cacheline_group_begin__tcp_sock_read_txrx[0]; + u32 tsoffset; + u32 snd_wnd; + u32 mss_cache; + u32 snd_cwnd; + u32 prr_out; + u32 lost_out; + u32 sacked_out; + u16 tcp_header_len; + u8 scaling_ratio; + u8 chrono_type: 2; + u8 repair: 1; + u8 tcp_usec_ts: 1; + u8 is_sack_reneg: 1; + u8 is_cwnd_limited: 1; + __u8 __cacheline_group_end__tcp_sock_read_txrx[0]; + __u8 __cacheline_group_begin__tcp_sock_read_rx[0]; + u32 copied_seq; + u32 rcv_tstamp; + u32 snd_wl1; + u32 tlp_high_seq; + u32 rttvar_us; + u32 retrans_out; + u16 advmss; + u16 urg_data; + u32 lost; + struct minmax rtt_min; + struct rb_root out_of_order_queue; + u32 snd_ssthresh; + u8 recvmsg_inq: 1; + __u8 __cacheline_group_end__tcp_sock_read_rx[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + __u8 __cacheline_group_begin__tcp_sock_write_tx[0]; + u32 segs_out; + u32 data_segs_out; + u64 bytes_sent; + u32 snd_sml; + u32 chrono_start; + u32 chrono_stat[3]; + u32 write_seq; + u32 pushed_seq; + u32 lsndtime; + u32 mdev_us; + u32 rtt_seq; + u64 tcp_wstamp_ns; + struct list_head tsorted_sent_queue; + struct sk_buff *highest_sack; + u8 ecn_flags; + __u8 __cacheline_group_end__tcp_sock_write_tx[0]; + __u8 __cacheline_group_begin__tcp_sock_write_txrx[0]; + __be32 pred_flags; + u64 tcp_clock_cache; + u64 tcp_mstamp; + u32 rcv_nxt; + u32 snd_nxt; + u32 snd_una; + u32 window_clamp; + u32 srtt_us; + u32 packets_out; + u32 snd_up; + u32 delivered; + u32 delivered_ce; + u32 app_limited; + u32 rcv_wnd; + struct tcp_options_received rx_opt; + u8 nonagle: 4; + u8 rate_app_limited: 1; + __u8 __cacheline_group_end__tcp_sock_write_txrx[0]; + long: 0; + __u8 __cacheline_group_begin__tcp_sock_write_rx[0]; + u64 bytes_received; + u32 segs_in; + u32 data_segs_in; + u32 rcv_wup; + u32 max_packets_out; + u32 cwnd_usage_seq; + u32 rate_delivered; + u32 rate_interval_us; + u32 rcv_rtt_last_tsecr; + u64 first_tx_mstamp; + u64 delivered_mstamp; + u64 bytes_acked; + struct { + u32 rtt_us; + u32 seq; + u64 time; + } rcv_rtt_est; + struct { + u32 space; + u32 seq; + u64 time; + } rcvq_space; + __u8 __cacheline_group_end__tcp_sock_write_rx[0]; + u32 dsack_dups; + u32 compressed_ack_rcv_nxt; + struct list_head tsq_node; + struct tcp_rack rack; + u8 compressed_ack; + u8 dup_ack_counter: 2; + u8 tlp_retrans: 1; + u8 unused: 5; + u8 thin_lto: 1; + u8 fastopen_connect: 1; + u8 fastopen_no_cookie: 1; + u8 fastopen_client_fail: 2; + u8 frto: 1; + u8 repair_queue; + u8 save_syn: 2; + u8 syn_data: 1; + u8 syn_fastopen: 1; + u8 syn_fastopen_exp: 1; + u8 syn_fastopen_ch: 1; + u8 syn_data_acked: 1; + u8 keepalive_probes; + u32 tcp_tx_delay; + u32 mdev_max_us; + u32 reord_seen; + u32 snd_cwnd_cnt; + u32 snd_cwnd_clamp; + u32 snd_cwnd_used; + u32 snd_cwnd_stamp; + u32 prior_cwnd; + u32 prr_delivered; + u32 last_oow_ack_time; + struct hrtimer pacing_timer; + struct hrtimer compressed_ack_timer; + struct sk_buff *ooo_last_skb; + struct tcp_sack_block duplicate_sack[1]; + struct tcp_sack_block selective_acks[4]; + struct tcp_sack_block recv_sack_cache[4]; + int lost_cnt_hint; + u32 prior_ssthresh; + u32 high_seq; + u32 retrans_stamp; + u32 undo_marker; + int undo_retrans; + u64 bytes_retrans; + u32 total_retrans; + u32 rto_stamp; + u16 total_rto; + u16 total_rto_recoveries; + u32 total_rto_time; + u32 urg_seq; + unsigned int keepalive_time; + unsigned int keepalive_intvl; + int linger2; + u8 bpf_sock_ops_cb_flags; + u8 bpf_chg_cc_inprogress: 1; + u16 timeout_rehash; + u32 rcv_ooopack; + struct { + u32 probe_seq_start; + u32 probe_seq_end; + } mtu_probe; + u32 plb_rehash; + u32 mtu_info; + bool is_mptcp; + bool syn_smc; + bool (*smc_hs_congested)(const struct sock *); + const struct tcp_sock_af_ops *af_specific; + struct tcp_md5sig_info *md5sig_info; + struct tcp_ao_info *ao_info; + struct tcp_fastopen_request *fastopen_req; + struct request_sock *fastopen_rsk; + struct saved_syn *saved_syn; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct tcp6_sock { + struct tcp_sock tcp; + struct ipv6_pinfo inet6; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct tcp_ao_add { + struct __kernel_sockaddr_storage addr; + char alg_name[64]; + __s32 ifindex; + __u32 set_current: 1; + __u32 set_rnext: 1; + __u32 reserved: 30; + __u16 reserved2; + __u8 prefix; + __u8 sndid; + __u8 rcvid; + __u8 maclen; + __u8 keyflags; + __u8 keylen; + __u8 key[80]; +}; + +union tcp_ao_addr { + struct in_addr a4; + struct in6_addr a6; +}; + +struct tcp_ao_counters { + atomic64_t pkt_good; + atomic64_t pkt_bad; + atomic64_t key_not_found; + atomic64_t ao_required; + atomic64_t dropped_icmp; +}; + +struct tcp_ao_del { + struct __kernel_sockaddr_storage addr; + __s32 ifindex; + __u32 set_current: 1; + __u32 set_rnext: 1; + __u32 del_async: 1; + __u32 reserved: 29; + __u16 reserved2; + __u8 prefix; + __u8 sndid; + __u8 rcvid; + __u8 current_key; + __u8 rnext; + __u8 keyflags; +}; + +struct tcp_ao_getsockopt { + struct __kernel_sockaddr_storage addr; + char alg_name[64]; + __u8 key[80]; + __u32 nkeys; + __u16 is_current: 1; + __u16 is_rnext: 1; + __u16 get_all: 1; + __u16 reserved: 13; + __u8 sndid; + __u8 rcvid; + __u8 prefix; + __u8 maclen; + __u8 keyflags; + __u8 keylen; + __s32 ifindex; + __u64 pkt_good; + __u64 pkt_bad; +}; + +struct tcp_ao_hdr { + u8 kind; + u8 length; + u8 keyid; + u8 rnext_keyid; +}; + +struct tcp_ao_key; + +struct tcp_ao_info { + struct hlist_head head; + struct tcp_ao_key *current_key; + struct tcp_ao_key *rnext_key; + struct tcp_ao_counters counters; + u32 ao_required: 1; + u32 accept_icmps: 1; + u32 __unused: 30; + __be32 lisn; + __be32 risn; + u32 snd_sne; + u32 rcv_sne; + refcount_t refcnt; + struct callback_head rcu; +}; + +struct tcp_ao_info_opt { + __u32 set_current: 1; + __u32 set_rnext: 1; + __u32 ao_required: 1; + __u32 set_counters: 1; + __u32 accept_icmps: 1; + __u32 reserved: 27; + __u16 reserved2; + __u8 current_key; + __u8 rnext; + __u64 pkt_good; + __u64 pkt_bad; + __u64 pkt_key_not_found; + __u64 pkt_ao_required; + __u64 pkt_dropped_icmp; +}; + +struct tcp_ao_key { + struct hlist_node node; + union tcp_ao_addr addr; + u8 key[80]; + unsigned int tcp_sigpool_id; + unsigned int digest_size; + int l3index; + u8 prefixlen; + u8 family; + u8 keylen; + u8 keyflags; + u8 sndid; + u8 rcvid; + u8 maclen; + struct callback_head rcu; + atomic64_t pkt_good; + atomic64_t pkt_bad; + u8 traffic_keys[0]; +}; + +struct tcp_ao_repair { + __be32 snt_isn; + __be32 rcv_isn; + __u32 snd_sne; + __u32 rcv_sne; +}; + +struct tcp_bbr_info { + __u32 bbr_bw_lo; + __u32 bbr_bw_hi; + __u32 bbr_min_rtt; + __u32 bbr_pacing_gain; + __u32 bbr_cwnd_gain; +}; + +struct 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; +}; + +union tcp_cc_info { + struct tcpvegas_info vegas; + struct tcp_dctcp_info dctcp; + struct tcp_bbr_info bbr; +}; + +struct tcp_fastopen_context { + siphash_key_t key[2]; + int num; + struct callback_head rcu; +}; + +struct tcp_fastopen_cookie { + __le64 val[2]; + s8 len; + bool exp; +}; + +struct tcp_fastopen_metrics { + u16 mss; + u16 syn_loss: 10; + u16 try_exp: 2; + long unsigned int last_syn_loss; + struct tcp_fastopen_cookie cookie; +}; + +struct tcp_fastopen_request { + struct tcp_fastopen_cookie cookie; + struct msghdr *data; + size_t size; + int copied; + struct ubuf_info *uarg; +}; + +struct tcp_info { + __u8 tcpi_state; + __u8 tcpi_ca_state; + __u8 tcpi_retransmits; + __u8 tcpi_probes; + __u8 tcpi_backoff; + __u8 tcpi_options; + __u8 tcpi_snd_wscale: 4; + __u8 tcpi_rcv_wscale: 4; + __u8 tcpi_delivery_rate_app_limited: 1; + __u8 tcpi_fastopen_client_fail: 2; + __u32 tcpi_rto; + __u32 tcpi_ato; + __u32 tcpi_snd_mss; + __u32 tcpi_rcv_mss; + __u32 tcpi_unacked; + __u32 tcpi_sacked; + __u32 tcpi_lost; + __u32 tcpi_retrans; + __u32 tcpi_fackets; + __u32 tcpi_last_data_sent; + __u32 tcpi_last_ack_sent; + __u32 tcpi_last_data_recv; + __u32 tcpi_last_ack_recv; + __u32 tcpi_pmtu; + __u32 tcpi_rcv_ssthresh; + __u32 tcpi_rtt; + __u32 tcpi_rttvar; + __u32 tcpi_snd_ssthresh; + __u32 tcpi_snd_cwnd; + __u32 tcpi_advmss; + __u32 tcpi_reordering; + __u32 tcpi_rcv_rtt; + __u32 tcpi_rcv_space; + __u32 tcpi_total_retrans; + __u64 tcpi_pacing_rate; + __u64 tcpi_max_pacing_rate; + __u64 tcpi_bytes_acked; + __u64 tcpi_bytes_received; + __u32 tcpi_segs_out; + __u32 tcpi_segs_in; + __u32 tcpi_notsent_bytes; + __u32 tcpi_min_rtt; + __u32 tcpi_data_segs_in; + __u32 tcpi_data_segs_out; + __u64 tcpi_delivery_rate; + __u64 tcpi_busy_time; + __u64 tcpi_rwnd_limited; + __u64 tcpi_sndbuf_limited; + __u32 tcpi_delivered; + __u32 tcpi_delivered_ce; + __u64 tcpi_bytes_sent; + __u64 tcpi_bytes_retrans; + __u32 tcpi_dsack_dups; + __u32 tcpi_reord_seen; + __u32 tcpi_rcv_ooopack; + __u32 tcpi_snd_wnd; + __u32 tcpi_rcv_wnd; + __u32 tcpi_rehash; + __u16 tcpi_total_rto; + __u16 tcpi_total_rto_recoveries; + __u32 tcpi_total_rto_time; +}; + +struct tcp_md5sig_key; + +struct tcp_key { + union { + struct { + struct tcp_ao_key *ao_key; + char *traffic_key; + u32 sne; + u8 rcv_next; + }; + struct tcp_md5sig_key *md5_key; + }; + enum { + TCP_KEY_NONE = 0, + TCP_KEY_MD5 = 1, + TCP_KEY_AO = 2, + } type; +}; + +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 tcp_md5sig_info { + struct hlist_head head; + struct callback_head rcu; +}; + +struct tcp_md5sig_key { + struct hlist_node node; + u8 keylen; + u8 family; + u8 prefixlen; + u8 flags; + union tcp_ao_addr addr; + int l3index; + u8 key[80]; + struct callback_head rcu; +}; + +struct tcp_metrics_block { + struct tcp_metrics_block *tcpm_next; + struct net *tcpm_net; + struct inetpeer_addr tcpm_saddr; + struct inetpeer_addr tcpm_daddr; + long unsigned int tcpm_stamp; + u32 tcpm_lock; + u32 tcpm_vals[5]; + struct tcp_fastopen_metrics tcpm_fastopen; + struct callback_head callback_head; +}; + +struct tcp_mib { + long unsigned int mibs[16]; +}; + +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 tcp_plb_state { + u8 consec_cong_rounds: 5; + u8 unused: 3; + u32 pause_until; +}; + +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 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 *); + struct tcp_ao_key * (*ao_lookup)(const struct sock *, struct request_sock *, int, int); + int (*ao_calc_key)(struct tcp_ao_key *, u8 *, struct request_sock *); + int (*ao_synack_hash)(char *, struct tcp_ao_key *, struct request_sock *, const struct sk_buff *, int, u32); + __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); + u32 (*init_seq)(const struct sk_buff *); + u32 (*init_ts_off)(const struct net *, const struct sk_buff *); + int (*send_synack)(const struct sock *, struct dst_entry *, struct flowi *, struct request_sock *, struct tcp_fastopen_cookie *, enum tcp_synack_type, struct sk_buff *); +}; + +struct tcp_sack_block_wire { + __be32 start_seq; + __be32 end_seq; +}; + +struct tcp_sacktag_state { + u64 first_sackt; + u64 last_sackt; + u32 reord; + u32 sack_delivered; + int flag; + unsigned int mss_now; + struct rate_sample *rate; +}; + +struct tcp_seq_afinfo { + sa_family_t family; +}; + +struct tcp_sigpool { + void *scratch; + struct ahash_request *req; +}; + +struct tcp_skb_cb { + __u32 seq; + __u32 end_seq; + union { + struct { + u16 tcp_gso_segs; + u16 tcp_gso_size; + }; + }; + __u8 tcp_flags; + __u8 sacked; + __u8 ip_dsfield; + __u8 txstamp_ack: 1; + __u8 eor: 1; + __u8 has_rxtstamp: 1; + __u8 unused: 5; + __u32 ack_seq; + union { + struct { + __u32 is_app_limited: 1; + __u32 delivered_ce: 20; + __u32 unused: 11; + __u32 delivered; + u64 first_tx_mstamp; + u64 delivered_mstamp; + } tx; + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + }; +}; + +struct 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); + int (*ao_parse)(struct sock *, int, sockptr_t, int); + struct tcp_ao_key * (*ao_lookup)(const struct sock *, struct sock *, int, int); + int (*ao_calc_key_sk)(struct tcp_ao_key *, u8 *, const struct sock *, __be32, __be32, bool); + int (*calc_ao_hash)(char *, struct tcp_ao_key *, const struct sock *, const struct sk_buff *, const u8 *, int, u32); +}; + +struct tcp_splice_state { + struct pipe_inode_info *pipe; + size_t len; + unsigned int flags; +}; + +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_ao_info *ao_info; +}; + +struct tcp_ulp_ops { + struct list_head list; + int (*init)(struct sock *); + void (*update)(struct sock *, struct proto *, void (*)(struct sock *)); + void (*release)(struct sock *); + int (*get_info)(struct sock *, struct sk_buff *); + size_t (*get_info_size)(const struct sock *); + void (*clone)(const struct request_sock *, struct sock *, const gfp_t); + char name[16]; + struct module *owner; +}; + +union tcp_word_hdr { + struct tcphdr hdr; + __be32 words[5]; +}; + +struct tcp_xa_pool { + u8 max; + u8 idx; + __u32 tokens[17]; + netmem_ref netmems[17]; +}; + +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 tcpa_event { + u32 pcr_index; + u32 event_type; + u8 pcr_value[20]; + u32 event_size; + u8 event_data[0]; +}; + +struct tcpa_pc_event { + u32 event_id; + u32 event_size; + u8 event_data[0]; +}; + +struct tcpm_hash_bucket { + struct tcp_metrics_block *chain; +}; + +struct tcx_entry { + struct mini_Qdisc *miniq; + struct bpf_mprog_bundle bundle; + u32 miniq_active; + struct callback_head rcu; +}; + +struct tcx_link { + struct bpf_link link; + struct net_device *dev; + u32 location; +}; + +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 tdx_module_args { + u64 rcx; + u64 rdx; + u64 r8; + u64 r9; + u64 r10; + u64 r11; + u64 r12; + u64 r13; + u64 r14; + u64 r15; + u64 rbx; + u64 rdi; + u64 rsi; +}; + +struct temp_masks { + u32 tcc_offset; + u32 digital_readout; + u32 pkg_digital_readout; +}; + +struct teo_bin { + unsigned int intercepts; + unsigned int hits; +}; + +struct teo_cpu { + s64 sleep_length_ns; + struct teo_bin state_bins[10]; + unsigned int total; + unsigned int tick_intercepts; + unsigned int short_idles; + bool artificial_wakeup; +}; + +struct termio { + short unsigned int c_iflag; + short unsigned int c_oflag; + short unsigned int c_cflag; + short unsigned int c_lflag; + unsigned char c_line; + unsigned char c_cc[8]; +}; + +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; +}; + +union text_poke_insn { + u8 text[5]; + struct { + u8 opcode; + s32 disp; + } __attribute__((packed)); +}; + +struct text_poke_loc { + s32 rel_addr; + s32 disp; + u8 len; + u8 opcode; + const u8 text[5]; + u8 old; +}; + +struct tgid_iter { + unsigned int tgid; + struct task_struct *task; +}; + +struct thermal_attr { + struct device_attribute attr; + char name[20]; +}; + +typedef struct thermal_cooling_device *class_cooling_dev_t; + +struct thermal_cooling_device { + int id; + const char *type; + long unsigned int 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_genl_cpu_caps { + int cpu; + int performance; + int efficiency; +}; + +struct thermal_genl_notify { + int mcgrp; +}; + +struct thermal_governor { + const char *name; + int (*bind_to_tz)(struct thermal_zone_device *); + void (*unbind_from_tz)(struct thermal_zone_device *); + void (*trip_crossed)(struct thermal_zone_device *, const struct thermal_trip *, bool); + void (*manage)(struct thermal_zone_device *); + void (*update_tz)(struct thermal_zone_device *, enum thermal_notify_event); + struct list_head governor_list; +}; + +struct thermal_hwmon_attr { + struct device_attribute attr; + char name[16]; +}; + +struct thermal_hwmon_device { + char type[20]; + struct device *device; + int count; + struct list_head tz_list; + struct list_head node; +}; + +struct thermal_hwmon_temp { + struct list_head hwmon_node; + struct thermal_zone_device *tz; + struct thermal_hwmon_attr temp_input; + struct thermal_hwmon_attr temp_crit; +}; + +struct thermal_instance { + int id; + char name[20]; + struct thermal_cooling_device *cdev; + const struct thermal_trip *trip; + bool initialized; + long unsigned int upper; + long unsigned int lower; + long unsigned int target; + char attr_name[20]; + struct device_attribute attr; + char weight_attr_name[20]; + struct device_attribute weight_attr; + struct list_head trip_node; + struct list_head cdev_node; + unsigned int weight; + bool upper_no_limit; +}; + +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 thermal_trip { + int temperature; + int hysteresis; + enum thermal_trip_type type; + u8 flags; + void *priv; +}; + +struct thermal_trip_attrs { + struct thermal_attr type; + struct thermal_attr temp; + struct thermal_attr hyst; +}; + +struct thermal_trip_desc { + struct thermal_trip trip; + struct thermal_trip_attrs trip_attrs; + struct list_head list_node; + struct list_head thermal_instances; + int threshold; +}; + +typedef struct thermal_zone_device *class_thermal_zone_get_by_id_t; + +typedef struct thermal_zone_device *class_thermal_zone_reverse_t; + +typedef struct thermal_zone_device *class_thermal_zone_t; + +struct thermal_zone_device_ops { + bool (*should_bind)(struct thermal_zone_device *, const struct thermal_trip *, struct thermal_cooling_device *, struct cooling_spec *); + int (*get_temp)(struct thermal_zone_device *, int *); + int (*set_trips)(struct thermal_zone_device *, int, int); + int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode); + int (*set_trip_temp)(struct thermal_zone_device *, const struct thermal_trip *, int); + int (*get_crit_temp)(struct thermal_zone_device *, int *); + int (*set_emul_temp)(struct thermal_zone_device *, int); + int (*get_trend)(struct thermal_zone_device *, const struct thermal_trip *, enum thermal_trend *); + void (*hot)(struct thermal_zone_device *); + void (*critical)(struct thermal_zone_device *); +}; + +struct thermal_zone_params; + +struct thermal_zone_device { + int id; + char type[20]; + struct device device; + struct completion removal; + struct completion resume; + struct attribute_group trips_attribute_group; + struct list_head trips_high; + struct list_head trips_reached; + struct list_head trips_invalid; + enum thermal_device_mode mode; + void *devdata; + int num_trips; + long unsigned int passive_delay_jiffies; + long unsigned int polling_delay_jiffies; + long unsigned int recheck_delay_jiffies; + int temperature; + int last_temperature; + int emul_temperature; + int passive; + int prev_low_trip; + int prev_high_trip; + struct thermal_zone_device_ops ops; + struct thermal_zone_params *tzp; + struct thermal_governor *governor; + void *governor_data; + struct ida ida; + struct mutex lock; + struct list_head node; + struct delayed_work poll_queue; + enum thermal_notify_event notify_event; + u8 state; + struct list_head user_thresholds; + struct thermal_trip_desc trips[0]; +}; + +struct thermal_zone_params { + const char *governor_name; + bool no_hwmon; + u32 sustainable_power; + s32 k_po; + s32 k_pu; + s32 k_i; + s32 k_d; + s32 integral_cutoff; + int slope; + int offset; +}; + +struct thpsize { + struct kobject kobj; + struct list_head node; + int order; +}; + +struct threshold_block; + +struct thresh_restart { + struct threshold_block *b; + int reset; + int set_lvt_off; + int lvt_off; + u16 old_limit; +}; + +struct threshold_attr { + struct attribute attr; + ssize_t (*show)(struct threshold_block *, char *); + ssize_t (*store)(struct threshold_block *, const char *, size_t); +}; + +struct threshold_bank { + struct kobject *kobj; + struct threshold_block *blocks; +}; + +struct threshold_block { + unsigned int block; + unsigned int bank; + unsigned int cpu; + u32 address; + bool interrupt_enable; + bool interrupt_capable; + u16 threshold_limit; + struct kobject kobj; + struct list_head miscj; +}; + +struct throtl_service_queue { + struct throtl_service_queue *parent_sq; + struct list_head queued[2]; + unsigned int nr_queued[2]; + struct rb_root_cached pending_tree; + unsigned int nr_pending; + long unsigned int first_pending_disptime; + struct timer_list pending_timer; +}; + +struct throtl_data { + struct throtl_service_queue service_queue; + struct request_queue *queue; + unsigned int nr_queued[2]; + unsigned int throtl_slice; + struct work_struct dispatch_work; + bool track_bio_latency; +}; + +struct throtl_grp; + +struct throtl_qnode { + struct list_head node; + struct bio_list bios; + struct throtl_grp *tg; +}; + +struct throtl_grp { + struct blkg_policy_data pd; + struct rb_node rb_node; + struct throtl_data *td; + struct throtl_service_queue service_queue; + struct throtl_qnode qnode_on_self[2]; + struct throtl_qnode qnode_on_parent[2]; + long unsigned int disptime; + unsigned int flags; + bool has_rules_bps[2]; + bool has_rules_iops[2]; + uint64_t bps[2]; + unsigned int iops[2]; + uint64_t bytes_disp[2]; + unsigned int io_disp[2]; + uint64_t last_bytes_disp[2]; + unsigned int last_io_disp[2]; + long long int carryover_bytes[2]; + int carryover_ios[2]; + long unsigned int last_check_time; + long unsigned int slice_start[2]; + long unsigned int slice_end[2]; + struct blkg_rwstat stat_bytes; + struct blkg_rwstat stat_ios; +}; + +struct throttling_tstate { + unsigned int cpu; + int target_state; +}; + +struct tick_device { + struct clock_event_device *evtdev; + enum tick_device_mode mode; +}; + +struct tick_sched { + long unsigned int flags; + unsigned int stalled_jiffies; + long unsigned int last_tick_jiffies; + struct hrtimer sched_timer; + ktime_t last_tick; + ktime_t next_tick; + long unsigned int idle_jiffies; + ktime_t idle_waketime; + unsigned int got_idle_tick; + seqcount_t idle_sleeptime_seq; + ktime_t idle_entrytime; + long unsigned int last_jiffies; + u64 timer_expires_base; + u64 timer_expires; + u64 next_timer; + ktime_t idle_expires; + long unsigned int idle_calls; + long unsigned int idle_sleeps; + ktime_t idle_exittime; + ktime_t idle_sleeptime; + ktime_t iowait_sleeptime; + atomic_t tick_dep_mask; + long unsigned int check_clocks; +}; + +struct tick_work { + int cpu; + atomic_t state; + struct delayed_work work; +}; + +struct timens_offsets { + struct timespec64 monotonic; + struct timespec64 boottime; +}; + +struct time_namespace { + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct ns_common ns; + struct timens_offsets offsets; + struct page *vvar_page; + bool frozen_offsets; +}; + +struct timedia_struct { + int num; + const short unsigned int *ids; +}; + +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 timekeeper { + struct tk_read_base tkr_mono; + u64 xtime_sec; + long unsigned int ktime_sec; + struct timespec64 wall_to_monotonic; + ktime_t offs_real; + ktime_t offs_boot; + ktime_t offs_tai; + u32 coarse_nsec; + struct tk_read_base tkr_raw; + u64 raw_sec; + unsigned int clock_was_set_seq; + u8 cs_was_changed_seq; + struct timespec64 monotonic_to_boot; + u64 cycle_interval; + u64 xtime_interval; + s64 xtime_remainder; + u64 raw_interval; + ktime_t next_leap_ktime; + u64 ntp_tick; + s64 ntp_error; + u32 ntp_error_shift; + u32 ntp_err_mult; + u32 skip_second_overflow; + s32 tai_offset; +}; + +struct timens_offset { + s64 sec; + u64 nsec; +}; + +struct timer_base { + raw_spinlock_t lock; + struct timer_list *running_timer; + long unsigned int clk; + long unsigned int next_expiry; + unsigned int cpu; + bool next_expiry_recalc; + bool is_idle; + bool timers_pending; + long unsigned int pending_map[9]; + struct hlist_head vectors[576]; + long: 64; + long: 64; +}; + +struct timer_events { + u64 local; + u64 global; +}; + +struct timer_list_iter { + int cpu; + bool second_pass; + u64 now; +}; + +struct timer_rand_state { + long unsigned int last_time; + long int last_delta; + long int last_delta2; +}; + +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; + short unsigned int expired; + short unsigned int settime_flags; + struct callback_head rcu; + struct list_head clist; + spinlock_t cancel_lock; + bool might_cancel; +}; + +struct timerlat_entry { + struct trace_entry ent; + unsigned int seqnum; + int context; + u64 timer_latency; +}; + +struct timerlat_sample { + u64 timer_latency; + unsigned int seqnum; + int context; +}; + +struct timerlat_variables { + struct task_struct *kthread; + struct hrtimer timer; + u64 rel_period; + u64 abs_period; + bool tracing_thread; + u64 count; + bool uthread_migrate; +}; + +struct timers_private { + struct pid *pid; + struct task_struct *task; + struct sighand_struct *sighand; + struct pid_namespace *ns; + long unsigned int flags; +}; + +struct timestamp_event_queue { + struct ptp_extts_event buf[128]; + int head; + int tail; + spinlock_t lock; + struct list_head qlist; + long unsigned int *mask; + struct dentry *debugfs_instance; + struct debugfs_u32_array dfs_bitmap; +}; + +struct timewait_sock_ops { + struct kmem_cache *twsk_slab; + char *twsk_slab_name; + unsigned int twsk_obj_size; + void (*twsk_destructor)(struct sock *); +}; + +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; + +struct tiocl_selection { + short unsigned int xs; + short unsigned int ys; + short unsigned int xe; + short unsigned int ye; + short unsigned int sel_mode; +}; + +struct tipc_basic_hdr { + __be32 w[4]; +}; + +struct tis_vendor_durations_override { + u32 did_vid; + struct tpm1_version version; + long unsigned int durations[3]; +}; + +struct tis_vendor_timeout_override { + u32 did_vid; + long unsigned int timeout_us[4]; +}; + +struct tk_data { + seqcount_raw_spinlock_t seq; + struct timekeeper timekeeper; + struct timekeeper shadow_timekeeper; + raw_spinlock_t lock; +}; + +struct tk_fast { + seqcount_latch_t seq; + struct tk_read_base base[2]; +}; + +struct tlb_context { + u64 ctx_id; + u64 tlb_gen; +}; + +struct tlb_state { + struct mm_struct *loaded_mm; + union { + struct mm_struct *last_user_mm; + long unsigned int last_user_mm_spec; + }; + u16 loaded_mm_asid; + u16 next_asid; + bool invalidate_other; + short unsigned int user_pcid_flush_mask; + long unsigned int cr4; + struct tlb_context ctxs[6]; +}; + +struct tlb_state_shared { + bool is_lazy; +}; + +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_ccm { + 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_gcm { + struct tls_crypto_info info; + unsigned char iv[8]; + unsigned char key[16]; + unsigned char salt[4]; + unsigned char rec_seq[8]; +}; + +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; +}; + +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 *netdev; + struct cipher_context tx; + struct cipher_context rx; + struct scatterlist *partially_sent_record; + u16 partially_sent_offset; + bool splicing_pages; + bool pending_open_record_frags; + struct mutex tx_lock; + long unsigned int 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 tls_descs { + struct desc_struct desc[3]; +}; + +typedef void (*tls_done_func_t)(void *, int, key_serial_t); + +struct tls_handshake_args { + struct socket *ta_sock; + tls_done_func_t ta_done; + void *ta_data; + const char *ta_peername; + unsigned int ta_timeout_ms; + key_serial_t ta_keyring; + key_serial_t ta_my_cert; + key_serial_t ta_my_privkey; + unsigned int ta_num_peerids; + key_serial_t ta_my_peerids[5]; +}; + +struct tls_handshake_req { + void (*th_consumer_done)(void *, int, key_serial_t); + void *th_consumer_data; + int th_type; + unsigned int th_timeout_ms; + int th_auth_mode; + const char *th_peername; + key_serial_t th_keyring; + key_serial_t th_certificate; + key_serial_t th_privkey; + unsigned int th_num_peerids; + key_serial_t th_peerid[5]; +}; + +struct tls_strparser { + struct sock *sk; + u32 mark: 8; + u32 stopped: 1; + u32 copy_mode: 1; + u32 mixed_decrypted: 1; + bool msg_ready; + 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; + bool key_update_pending; + struct tls_strparser strp; + atomic_t decrypt_pending; + struct sk_buff_head async_hold; + struct wait_queue_head wq; +}; + +struct tx_work { + struct delayed_work work; + struct sock *sk; +}; + +struct tls_rec; + +struct tls_sw_context_tx { + struct crypto_aead *aead_send; + struct crypto_wait async_wait; + struct tx_work tx_work; + struct tls_rec *open_rec; + struct list_head tx_list; + atomic_t encrypt_pending; + u8 async_capable: 1; + long unsigned int tx_bitmask; +}; + +struct tlsdev_ops { + int (*tls_dev_add)(struct net_device *, struct sock *, enum tls_offload_ctx_dir, struct tls_crypto_info *, u32); + void (*tls_dev_del)(struct net_device *, struct tls_context *, enum tls_offload_ctx_dir); + int (*tls_dev_resync)(struct net_device *, struct sock *, u32, u8 *, enum tls_offload_ctx_dir); +}; + +struct tm { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + long int tm_year; + int tm_wday; + int tm_yday; +}; + +struct tmigr_event { + struct timerqueue_node nextevt; + unsigned int cpu; + bool ignore; +}; + +struct tmigr_group; + +struct tmigr_cpu { + raw_spinlock_t lock; + bool online; + bool idle; + bool remote; + struct tmigr_group *tmgroup; + u8 groupmask; + u64 wakeup; + struct tmigr_event cpuevt; +}; + +struct tmigr_group { + raw_spinlock_t lock; + struct tmigr_group *parent; + struct tmigr_event groupevt; + u64 next_expiry; + struct timerqueue_head events; + atomic_t migr_state; + unsigned int level; + int numa_node; + unsigned int num_children; + u8 groupmask; + struct list_head list; +}; + +union tmigr_state { + u32 state; + struct { + u8 active; + u8 migrator; + u16 seq; + }; +}; + +struct tmigr_walk { + u64 nextexp; + u64 firstexp; + struct tmigr_event *evt; + u8 childmask; + bool remote; + long unsigned int basej; + u64 now; + bool check; + bool tmc_active; +}; + +struct tmpmasks { + cpumask_var_t addmask; + cpumask_var_t delmask; + cpumask_var_t new_cpus; +}; + +struct tms { + __kernel_clock_t tms_utime; + __kernel_clock_t tms_stime; + __kernel_clock_t tms_cutime; + __kernel_clock_t tms_cstime; +}; + +struct tnode { + struct callback_head rcu; + t_key empty_children; + t_key full_children; + struct key_vector *parent; + struct key_vector kv[1]; +}; + +struct token_bucket { + spinlock_t lock; + int chain_len; + struct hlist_nulls_head req_chain; + struct hlist_nulls_head msk_chain; +}; + +struct tomoyo_acl_head { + struct list_head list; + s8 is_deleted; +} __attribute__((packed)); + +struct tomoyo_condition; + +struct tomoyo_acl_info { + struct list_head list; + struct tomoyo_condition *cond; + s8 is_deleted; + u8 type; +} __attribute__((packed)); + +struct tomoyo_policy_namespace; + +struct tomoyo_acl_param { + char *data; + struct list_head *list; + struct tomoyo_policy_namespace *ns; + bool is_delete; +}; + +struct tomoyo_inet_addr_info { + __be16 port; + const __be32 *address; + bool is_ipv6; +}; + +struct tomoyo_unix_addr_info { + u8 *addr; + unsigned int addr_len; +}; + +struct tomoyo_addr_info { + u8 protocol; + u8 operation; + struct tomoyo_inet_addr_info inet; + struct tomoyo_unix_addr_info unix0; +}; + +struct tomoyo_group; + +struct tomoyo_ipaddr_union { + struct in6_addr ip[2]; + struct tomoyo_group *group; + bool is_ipv6; +}; + +struct tomoyo_address_group { + struct tomoyo_acl_head head; + struct tomoyo_ipaddr_union address; +}; + +struct tomoyo_path_info; + +struct tomoyo_aggregator { + struct tomoyo_acl_head head; + const struct tomoyo_path_info *original_name; + const struct tomoyo_path_info *aggregated_name; +}; + +struct tomoyo_argv { + long unsigned int index; + const struct tomoyo_path_info *value; + bool is_not; +}; + +struct tomoyo_shared_acl_head { + struct list_head list; + atomic_t users; +} __attribute__((packed)); + +struct tomoyo_condition { + struct tomoyo_shared_acl_head head; + u32 size; + u16 condc; + u16 numbers_count; + u16 names_count; + u16 argc; + u16 envc; + u8 grant_log; + const struct tomoyo_path_info *transit; +}; + +struct tomoyo_condition_element { + u8 left; + u8 right; + bool equals; +}; + +struct tomoyo_domain_info { + struct list_head list; + struct list_head acl_info_list; + const struct tomoyo_path_info *domainname; + struct tomoyo_policy_namespace *ns; + long unsigned int group[4]; + u8 profile; + bool is_deleted; + bool flags[2]; + atomic_t users; +}; + +struct tomoyo_env_acl { + struct tomoyo_acl_info head; + const struct tomoyo_path_info *env; +}; + +struct tomoyo_envp { + const struct tomoyo_path_info *name; + const struct tomoyo_path_info *value; + bool is_not; +}; + +struct tomoyo_obj_info; + +struct tomoyo_execve; + +struct tomoyo_request_info { + struct tomoyo_obj_info *obj; + struct tomoyo_execve *ee; + struct tomoyo_domain_info *domain; + union { + struct { + const struct tomoyo_path_info *filename; + const struct tomoyo_path_info *matched_path; + u8 operation; + } path; + struct { + const struct tomoyo_path_info *filename1; + const struct tomoyo_path_info *filename2; + u8 operation; + } path2; + struct { + const struct tomoyo_path_info *filename; + unsigned int mode; + unsigned int major; + unsigned int minor; + u8 operation; + } mkdev; + struct { + const struct tomoyo_path_info *filename; + long unsigned int number; + u8 operation; + } path_number; + struct { + const struct tomoyo_path_info *name; + } environ; + struct { + const __be32 *address; + u16 port; + u8 protocol; + u8 operation; + bool is_ipv6; + } inet_network; + struct { + const struct tomoyo_path_info *address; + u8 protocol; + u8 operation; + } unix_network; + struct { + const struct tomoyo_path_info *type; + const struct tomoyo_path_info *dir; + const struct tomoyo_path_info *dev; + long unsigned int flags; + int need_dev; + } mount; + struct { + const struct tomoyo_path_info *domainname; + } task; + } param; + struct tomoyo_acl_info *matched_acl; + u8 param_type; + bool granted; + u8 retry; + u8 profile; + u8 mode; + u8 type; +}; + +struct tomoyo_mini_stat { + kuid_t uid; + kgid_t gid; + ino_t ino; + umode_t mode; + dev_t dev; + dev_t rdev; +}; + +struct tomoyo_obj_info { + bool validate_done; + bool stat_valid[4]; + struct path path1; + struct path path2; + struct tomoyo_mini_stat stat[4]; + struct tomoyo_path_info *symlink_target; +}; + +struct tomoyo_page_dump { + struct page *page; + char *data; +}; + +struct tomoyo_execve { + struct tomoyo_request_info r; + struct tomoyo_obj_info obj; + struct linux_binprm *bprm; + const struct tomoyo_path_info *transition; + struct tomoyo_page_dump dump; + char *tmp; +}; + +struct tomoyo_group { + struct tomoyo_shared_acl_head head; + const struct tomoyo_path_info *group_name; + struct list_head member_list; +}; + +struct tomoyo_number_union { + long unsigned int values[2]; + struct tomoyo_group *group; + u8 value_type[2]; +}; + +struct tomoyo_inet_acl { + struct tomoyo_acl_info head; + u8 protocol; + u8 perm; + struct tomoyo_ipaddr_union address; + struct tomoyo_number_union port; +}; + +struct tomoyo_io_buffer { + void (*read)(struct tomoyo_io_buffer *); + int (*write)(struct tomoyo_io_buffer *); + __poll_t (*poll)(struct file *, poll_table *); + struct mutex io_sem; + char *read_user_buf; + size_t read_user_buf_avail; + struct { + struct list_head *ns; + struct list_head *domain; + struct list_head *group; + struct list_head *acl; + size_t avail; + unsigned int step; + unsigned int query_index; + u16 index; + u16 cond_index; + u8 acl_group_index; + u8 cond_step; + u8 bit; + u8 w_pos; + bool eof; + bool print_this_domain_only; + bool print_transition_related_only; + bool print_cond_part; + const char *w[64]; + } r; + struct { + struct tomoyo_policy_namespace *ns; + struct tomoyo_domain_info *domain; + size_t avail; + bool is_delete; + } w; + char *read_buf; + size_t readbuf_size; + char *write_buf; + size_t writebuf_size; + enum tomoyo_securityfs_interface_index type; + u8 users; + struct list_head list; +}; + +struct tomoyo_log { + struct list_head list; + char *log; + int size; +}; + +struct tomoyo_manager { + struct tomoyo_acl_head head; + const struct tomoyo_path_info *manager; +}; + +struct tomoyo_name_union { + const struct tomoyo_path_info *filename; + struct tomoyo_group *group; +}; + +struct tomoyo_mkdev_acl { + struct tomoyo_acl_info head; + u8 perm; + struct tomoyo_name_union name; + struct tomoyo_number_union mode; + struct tomoyo_number_union major; + struct tomoyo_number_union minor; +}; + +struct tomoyo_mount_acl { + struct tomoyo_acl_info head; + struct tomoyo_name_union dev_name; + struct tomoyo_name_union dir_name; + struct tomoyo_name_union fs_type; + struct tomoyo_number_union flags; +}; + +struct tomoyo_path_info { + const char *name; + u32 hash; + u16 const_len; + bool is_dir; + bool is_patterned; +}; + +struct tomoyo_name { + struct tomoyo_shared_acl_head head; + struct tomoyo_path_info entry; +}; + +struct tomoyo_number_group { + struct tomoyo_acl_head head; + struct tomoyo_number_union number; +}; + +struct tomoyo_path2_acl { + struct tomoyo_acl_info head; + u8 perm; + struct tomoyo_name_union name1; + struct tomoyo_name_union name2; +}; + +struct tomoyo_path_acl { + struct tomoyo_acl_info head; + u16 perm; + struct tomoyo_name_union name; +}; + +struct tomoyo_path_group { + struct tomoyo_acl_head head; + const struct tomoyo_path_info *member_name; +}; + +struct tomoyo_path_number_acl { + struct tomoyo_acl_info head; + u8 perm; + struct tomoyo_name_union name; + struct tomoyo_number_union number; +}; + +struct tomoyo_profile; + +struct tomoyo_policy_namespace { + struct tomoyo_profile *profile_ptr[256]; + struct list_head group_list[3]; + struct list_head policy_list[11]; + struct list_head acl_group[256]; + struct list_head namespace_list; + unsigned int profile_version; + const char *name; +}; + +struct tomoyo_preference { + unsigned int learning_max_entry; + bool enforcing_verbose; + bool learning_verbose; + bool permissive_verbose; +}; + +struct tomoyo_profile { + const struct tomoyo_path_info *comment; + struct tomoyo_preference *learning; + struct tomoyo_preference *permissive; + struct tomoyo_preference *enforcing; + struct tomoyo_preference preference; + u8 default_config; + u8 config[42]; + unsigned int pref[2]; +}; + +struct tomoyo_query { + struct list_head list; + struct tomoyo_domain_info *domain; + char *query; + size_t query_len; + unsigned int serial; + u8 timer; + u8 answer; + u8 retry; +}; + +struct tomoyo_task { + struct tomoyo_domain_info *domain_info; + struct tomoyo_domain_info *old_domain_info; +}; + +struct tomoyo_task_acl { + struct tomoyo_acl_info head; + const struct tomoyo_path_info *domainname; +}; + +struct tomoyo_time { + u16 year; + u8 month; + u8 day; + u8 hour; + u8 min; + u8 sec; +}; + +struct tomoyo_transition_control { + struct tomoyo_acl_head head; + u8 type; + bool is_last_name; + const struct tomoyo_path_info *domainname; + const struct tomoyo_path_info *program; +}; + +struct tomoyo_unix_acl { + struct tomoyo_acl_info head; + u8 protocol; + u8 perm; + struct tomoyo_name_union name; +}; + +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: 40; + u64 rsvd4: 12; +}; + +struct topa_page { + struct topa_entry table[507]; + struct topa topa; +}; + +struct topo_scan { + struct cpuinfo_x86 *c; + unsigned int dom_shifts[7]; + unsigned int dom_ncpus[7]; + unsigned int ebx1_nproc_shift; + u16 amd_nodes_per_pkg; + u16 amd_node_id; +}; + +struct tp_module { + struct list_head list; + struct module *mod; +}; + +struct tracepoint_func { + void *func; + void *data; + int prio; +}; + +struct tp_probes { + struct callback_head rcu; + struct tracepoint_func probes[0]; +}; + +struct tp_transition_snapshot { + long unsigned int rcu; + bool ongoing; +}; + +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 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 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 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 { + long unsigned int tp_status; + unsigned int tp_len; + unsigned int tp_snaplen; + short unsigned int tp_mac; + short unsigned int tp_net; + unsigned int tp_sec; + unsigned int tp_usec; +}; + +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 tpacket_rollover_stats { + __u64 tp_all; + __u64 tp_huge; + __u64 tp_failed; +}; + +union tpacket_uhdr { + struct tpacket_hdr *h1; + struct tpacket2_hdr *h2; + struct tpacket3_hdr *h3; + void *raw; +}; + +struct tpm1_get_random_out { + __be32 rng_data_len; + u8 rng_data[128]; +}; + +struct tpm2_auth { + u32 handle; + u32 session; + u8 our_nonce[32]; + u8 tpm_nonce[32]; + union { + u8 salt[32]; + u8 scratch[32]; + }; + u8 session_key[32]; + u8 passphrase[32]; + int passphrase_len; + struct crypto_aes_ctx aes_ctx; + u8 attrs; + __be32 ordinal; + u32 name_h[3]; + u8 name[198]; +}; + +struct tpm2_cap_handles { + u8 more_data; + __be32 capability; + __be32 count; + __be32 handles[0]; +} __attribute__((packed)); + +struct tpm2_context { + __be64 sequence; + __be32 saved_handle; + __be32 hierarchy; + __be16 blob_size; +} __attribute__((packed)); + +struct tpm2_crb_pluton { + u64 start_addr; + u64 reply_addr; +}; + +struct tpm2_crb_smc { + u32 interrupt; + u8 interrupt_flags; + u8 op_flags; + u16 reserved2; + u32 smc_func_id; +}; + +struct tpm2_get_cap_out { + u8 more_data; + __be32 subcap_id; + __be32 property_cnt; + __be32 property_id; + __be32 value; +} __attribute__((packed)); + +struct tpm2_get_random_out { + __be16 size; + u8 buffer[128]; +}; + +struct tpm2_hash { + unsigned int crypto_id; + unsigned int tpm_id; +}; + +struct tpm2_key_context { + u32 parent; + const u8 *pub; + u32 pub_len; + const u8 *priv; + u32 priv_len; +}; + +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_pcr_selection { + __be16 hash_alg; + u8 size_of_select; + u8 pcr_select[3]; +}; + +struct tpm_bank_info { + u16 alg_id; + u16 digest_size; + u16 crypto_id; +}; + +struct tpm_bios_log { + void *bios_event_log; + void *bios_event_log_end; +}; + +struct tpm_buf { + u32 flags; + u32 length; + u8 *data; + u8 handles; +}; + +struct tpm_chip_seqops { + struct tpm_chip *chip; + const struct seq_operations *seqops; +}; + +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_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; + long unsigned int is_open; + char hwrng_name[64]; + struct hwrng hwrng; + struct mutex tpm_mutex; + long unsigned int timeout_a; + long unsigned int timeout_b; + long unsigned int timeout_c; + long unsigned int timeout_d; + bool timeout_adjusted; + long unsigned int 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 *, long unsigned int *); + void (*update_durations)(struct tpm_chip *, long unsigned int *); + 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_digests { + unsigned char encauth[20]; + unsigned char pubauth[20]; + unsigned char xorwork[40]; + unsigned char xorhash[20]; + unsigned char nonceodd[20]; +}; + +struct tpm_header { + __be16 tag; + __be32 length; + union { + __be32 ordinal; + __be32 return_code; + }; +} __attribute__((packed)); + +struct tpm_info { + struct resource res; + int irq; +}; + +struct tpm_pcr_attr { + int alg_id; + int pcr; + struct device_attribute attr; +}; + +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_tis_phy_ops; + +struct tpm_tis_data { + struct tpm_chip *chip; + u16 manufacturer_id; + struct mutex locality_count_mutex; + unsigned int locality_count; + int locality; + int irq; + struct work_struct free_irq_work; + long unsigned int last_unhandled_irq; + unsigned int unhandled_irqs; + unsigned int int_mask; + long unsigned int 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; + short unsigned int 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 tpm_tis_tcg_phy { + struct tpm_tis_data priv; + void *iobase; +}; + +struct tpmrm_priv { + struct file_priv priv; + struct tpm_space space; +}; + +struct tps65086_regulator_config; + +struct tps65086 { + struct device *dev; + struct regmap *regmap; + unsigned int chip_id; + const struct tps65086_regulator_config *reg_config; + int irq; + struct regmap_irq_chip_data *irq_data; +}; + +struct tps65090 { + struct device *dev; + struct regmap *rmap; + struct regmap_irq_chip_data *irq_data; +}; + +struct tps65090_regulator_plat_data; + +struct tps65090_platform_data { + int irq_base; + char **supplied_to; + size_t num_supplicants; + int enable_low_current_chrg; + struct tps65090_regulator_plat_data *reg_pdata[12]; +}; + +struct tps65090_regulator_plat_data { + struct regulator_init_data *reg_init_data; + bool enable_ext_control; + struct gpio_desc *gpiod; + bool overcurrent_wait_valid; + int overcurrent_wait; +}; + +struct tps6586x { + struct device *dev; + struct i2c_client *client; + struct regmap *regmap; + int version; + int irq; + struct irq_chip irq_chip; + struct mutex irq_lock; + int irq_base; + u32 irq_en; + u8 mask_reg[5]; + struct irq_domain *irq_domain; +}; + +struct tps6586x_gpio { + struct gpio_chip gpio_chip; + struct device *parent; +}; + +struct tps6586x_irq_data { + u8 mask_reg; + u8 mask_mask; +}; + +struct tps6586x_subdev_info; + +struct tps6586x_platform_data { + int num_subdevs; + struct tps6586x_subdev_info *subdevs; + int gpio_base; + int irq_base; + bool pm_off; + struct regulator_init_data *reg_init_data[15]; +}; + +struct tps6586x_subdev_info { + int id; + const char *name; + void *platform_data; + struct device_node *of_node; +}; + +struct tps65910_board; + +struct tps65910 { + struct device *dev; + struct i2c_client *i2c_client; + struct regmap *regmap; + long unsigned int id; + struct tps65910_board *of_plat_data; + int chip_irq; + struct regmap_irq_chip_data *irq_data; +}; + +struct tps65910_sleep_keepon_data { + unsigned int therm_keepon: 1; + unsigned int clkout32k_keepon: 1; + unsigned int i2chs_keepon: 1; +}; + +struct tps65910_board { + int gpio_base; + int irq; + int irq_base; + int vmbch_threshold; + int vmbch2_threshold; + bool en_ck32k_xtal; + bool en_dev_slp; + bool pm_off; + struct tps65910_sleep_keepon_data slp_keepon; + bool en_gpio_sleep[9]; + long unsigned int regulator_ext_sleep_control[14]; + struct regulator_init_data *tps65910_pmic_init_data[14]; +}; + +struct tps65910_gpio { + struct gpio_chip gpio_chip; + struct tps65910 *tps65910; +}; + +struct tps65910_platform_data { + int irq; + int irq_base; +}; + +struct tps65912 { + struct device *dev; + struct regmap *regmap; + int irq; + struct regmap_irq_chip_data *irq_data; +}; + +struct tps68470_pmic_opregion { + struct mutex lock; + struct regmap *regmap; +}; + +struct tps68470_pmic_table { + u32 address; + u32 reg; + u32 bitmask; +}; + +struct trace_pid_list; + +struct trace_options; + +struct trace_func_repeats; + +struct trace_array { + struct list_head list; + char *name; + struct array_buffer array_buffer; + struct array_buffer max_buffer; + bool allocated_snapshot; + spinlock_t snapshot_trigger_lock; + unsigned int snapshot; + long unsigned int max_latency; + struct dentry *d_max_latency; + struct work_struct fsnotify_work; + struct irq_work fsnotify_irqwork; + unsigned int mapped; + long unsigned int range_addr_start; + long unsigned int range_addr_size; + long unsigned int kaslr_addr; + long int text_delta; + struct trace_pid_list *filtered_pids; + struct trace_pid_list *filtered_no_pids; + arch_spinlock_t max_lock; + int buffer_disabled; + int sys_refcount_enter; + int sys_refcount_exit; + struct trace_event_file *enter_syscall_files[467]; + struct trace_event_file *exit_syscall_files[467]; + int stop_count; + int clock_id; + int nr_topts; + bool clear_trace; + int buffer_percent; + unsigned int n_err_log_entries; + struct tracer *current_trace; + unsigned int trace_flags; + unsigned char trace_flags_index[32]; + unsigned int flags; + raw_spinlock_t start_lock; + const char *system_names; + struct list_head err_log; + struct dentry *dir; + struct dentry *options; + struct dentry *percpu_dir; + struct eventfs_inode *event_dir; + struct trace_options *topts; + struct list_head systems; + struct list_head events; + struct trace_event_file *trace_marker_file; + cpumask_var_t tracing_cpumask; + cpumask_var_t pipe_cpumask; + int ref; + int trace_ref; + struct list_head mod_events; + struct ftrace_ops *ops; + struct trace_pid_list *function_pids; + struct trace_pid_list *function_no_pids; + struct fgraph_ops *gops; + 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 cond_snapshot *cond_snapshot; + struct trace_func_repeats *last_func_repeats; + bool ring_buffer_expanded; +}; + +struct trace_array_cpu { + atomic_t disabled; + void *buffer_page; + long unsigned int entries; + long unsigned int saved_latency; + long unsigned int critical_start; + long unsigned int critical_end; + long unsigned int critical_sequence; + long unsigned int nice; + long unsigned int policy; + long unsigned int rt_priority; + long unsigned int skipped_entries; + u64 preempt_timestamp; + pid_t pid; + kuid_t uid; + char comm[16]; + int ftrace_ignore_pid; + bool ignore_pid; +}; + +struct trace_bprintk_fmt { + struct list_head list; + const char *fmt; +}; + +struct trace_buffer { + unsigned int flags; + int cpus; + atomic_t record_disabled; + atomic_t resizing; + cpumask_var_t cpumask; + struct lock_class_key *reader_lock_key; + struct mutex mutex; + struct ring_buffer_per_cpu **buffers; + struct hlist_node node; + u64 (*clock)(void); + struct rb_irq_work irq_work; + bool time_stamp_abs; + long unsigned int range_addr_start; + long unsigned int range_addr_end; + long unsigned int kaslr_addr; + unsigned int subbuf_size; + unsigned int subbuf_order; + unsigned int max_data_size; +}; + +struct trace_buffer_meta { + __u32 meta_page_size; + __u32 meta_struct_len; + __u32 subbuf_size; + __u32 nr_subbufs; + struct { + __u64 lost_events; + __u32 id; + __u32 read; + } reader; + __u64 flags; + __u64 entries; + __u64 overrun; + __u64 read; + __u64 Reserved1; + __u64 Reserved2; +}; + +struct trace_buffer_struct { + int nesting; + char buffer[4096]; +}; + +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_entry_arg *entry_arg; + struct probe_arg args[0]; +}; + +struct trace_eprobe { + const char *event_system; + const char *event_name; + char *filter_str; + struct trace_event_call *event; + struct dyn_event devent; + struct trace_probe tp; +}; + +struct trace_eval_map { + const char *system; + const char *eval_string; + long unsigned int eval_value; +}; + +struct trace_event_data_offsets_ack_update_msk {}; + +struct trace_event_data_offsets_aer_event { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct trace_event_data_offsets_alarm_class {}; + +struct trace_event_data_offsets_alarmtimer_suspend {}; + +struct trace_event_data_offsets_alloc_vmap_area {}; + +struct trace_event_data_offsets_amd_pstate_epp_perf {}; + +struct trace_event_data_offsets_amd_pstate_perf {}; + +struct trace_event_data_offsets_arm_event {}; + +struct trace_event_data_offsets_ata_bmdma_status {}; + +struct trace_event_data_offsets_ata_eh_action_template {}; + +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_exec_command_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_qc_complete_template {}; + +struct trace_event_data_offsets_ata_qc_issue_template {}; + +struct trace_event_data_offsets_ata_sff_hsm_template {}; + +struct trace_event_data_offsets_ata_sff_template {}; + +struct trace_event_data_offsets_ata_tf_load {}; + +struct trace_event_data_offsets_ata_transfer_data_template {}; + +struct trace_event_data_offsets_balance_dirty_pages {}; + +struct trace_event_data_offsets_bdi_dirty_ratelimit {}; + +struct trace_event_data_offsets_block_bio {}; + +struct trace_event_data_offsets_block_bio_complete {}; + +struct trace_event_data_offsets_block_bio_remap {}; + +struct trace_event_data_offsets_block_buffer {}; + +struct trace_event_data_offsets_block_plug {}; + +struct trace_event_data_offsets_block_rq { + u32 cmd; + const void *cmd_ptr_; +}; + +struct trace_event_data_offsets_block_rq_completion { + u32 cmd; + const void *cmd_ptr_; +}; + +struct trace_event_data_offsets_block_rq_remap {}; + +struct trace_event_data_offsets_block_rq_requeue { + u32 cmd; + const void *cmd_ptr_; +}; + +struct trace_event_data_offsets_block_split {}; + +struct trace_event_data_offsets_block_unplug {}; + +struct trace_event_data_offsets_bpf_test_finish {}; + +struct trace_event_data_offsets_bpf_trace_printk { + u32 bpf_string; + const void *bpf_string_ptr_; +}; + +struct trace_event_data_offsets_bpf_trigger_tp {}; + +struct trace_event_data_offsets_bpf_xdp_link_attach_failed { + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_br_fdb_add { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_br_fdb_external_learn_add { + u32 br_dev; + const void *br_dev_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_br_fdb_update { + u32 br_dev; + const void *br_dev_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_br_mdb_full { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_cache_tag_flush { + u32 iommu; + const void *iommu_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_cache_tag_log { + u32 iommu; + const void *iommu_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_cap_capable {}; + +struct trace_event_data_offsets_cdev_update { + u32 type; + const void *type_ptr_; +}; + +struct trace_event_data_offsets_cgroup { + u32 path; + const void *path_ptr_; +}; + +struct trace_event_data_offsets_cgroup_event { + u32 path; + const void *path_ptr_; +}; + +struct trace_event_data_offsets_cgroup_migrate { + u32 dst_path; + const void *dst_path_ptr_; + u32 comm; + const void *comm_ptr_; +}; + +struct trace_event_data_offsets_cgroup_root { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_cgroup_rstat {}; + +struct trace_event_data_offsets_clk { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_duty_cycle { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_parent { + u32 name; + const void *name_ptr_; + u32 pname; + const void *pname_ptr_; +}; + +struct trace_event_data_offsets_clk_phase { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_rate { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_rate_range { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_rate_request { + u32 name; + const void *name_ptr_; + u32 pname; + const void *pname_ptr_; +}; + +struct trace_event_data_offsets_clock { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_compact_retry {}; + +struct trace_event_data_offsets_console { + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_consume_skb {}; + +struct trace_event_data_offsets_contention_begin {}; + +struct trace_event_data_offsets_contention_end {}; + +struct trace_event_data_offsets_context_tracking_user {}; + +struct trace_event_data_offsets_cpu {}; + +struct trace_event_data_offsets_cpu_frequency_limits {}; + +struct trace_event_data_offsets_cpu_idle_miss {}; + +struct trace_event_data_offsets_cpu_latency_qos_request {}; + +struct trace_event_data_offsets_cpuhp_enter {}; + +struct trace_event_data_offsets_cpuhp_exit {}; + +struct trace_event_data_offsets_cpuhp_multi_enter {}; + +struct trace_event_data_offsets_cros_ec_request_done {}; + +struct trace_event_data_offsets_cros_ec_request_start {}; + +struct trace_event_data_offsets_csd_function {}; + +struct trace_event_data_offsets_csd_queue_cpu {}; + +struct trace_event_data_offsets_ctime {}; + +struct trace_event_data_offsets_ctime_ns_xchg {}; + +struct trace_event_data_offsets_dax_insert_mapping {}; + +struct trace_event_data_offsets_dax_pmd_fault_class {}; + +struct trace_event_data_offsets_dax_pmd_insert_mapping_class {}; + +struct trace_event_data_offsets_dax_pmd_load_hole_class {}; + +struct trace_event_data_offsets_dax_pte_fault_class {}; + +struct trace_event_data_offsets_dax_writeback_one {}; + +struct trace_event_data_offsets_dax_writeback_range_class {}; + +struct trace_event_data_offsets_dev_pm_qos_request { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_devfreq_frequency { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct trace_event_data_offsets_devfreq_monitor { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct trace_event_data_offsets_device_pm_callback_end { + u32 device; + const void *device_ptr_; + u32 driver; + const void *driver_ptr_; +}; + +struct trace_event_data_offsets_device_pm_callback_start { + u32 device; + const void *device_ptr_; + u32 driver; + const void *driver_ptr_; + u32 parent; + const void *parent_ptr_; + u32 pm_ops; + const void *pm_ops_ptr_; +}; + +struct trace_event_data_offsets_devlink_health_recover_aborted { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 reporter_name; + const void *reporter_name_ptr_; +}; + +struct trace_event_data_offsets_devlink_health_report { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 reporter_name; + const void *reporter_name_ptr_; + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_devlink_health_reporter_state_update { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 reporter_name; + const void *reporter_name_ptr_; +}; + +struct trace_event_data_offsets_devlink_hwerr { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_devlink_hwmsg { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_devlink_trap_report { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 trap_name; + const void *trap_name_ptr_; + u32 trap_group_name; + const void *trap_group_name_ptr_; +}; + +struct trace_event_data_offsets_devres { + u32 devname; + const void *devname_ptr_; + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_dma_alloc_class { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_dma_alloc_sgt { + u32 device; + const void *device_ptr_; + u32 phys_addrs; + const void *phys_addrs_ptr_; +}; + +struct trace_event_data_offsets_dma_fence { + u32 driver; + const void *driver_ptr_; + u32 timeline; + const void *timeline_ptr_; +}; + +struct trace_event_data_offsets_dma_free_class { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_dma_free_sgt { + u32 device; + const void *device_ptr_; + u32 phys_addrs; + const void *phys_addrs_ptr_; +}; + +struct trace_event_data_offsets_dma_map { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_dma_map_sg { + u32 device; + const void *device_ptr_; + u32 phys_addrs; + const void *phys_addrs_ptr_; + u32 dma_addrs; + const void *dma_addrs_ptr_; + u32 lengths; + const void *lengths_ptr_; +}; + +struct trace_event_data_offsets_dma_map_sg_err { + u32 device; + const void *device_ptr_; + u32 phys_addrs; + const void *phys_addrs_ptr_; +}; + +struct trace_event_data_offsets_dma_sync_sg { + u32 device; + const void *device_ptr_; + u32 dma_addrs; + const void *dma_addrs_ptr_; + u32 lengths; + const void *lengths_ptr_; +}; + +struct trace_event_data_offsets_dma_sync_single { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_dma_unmap { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_dma_unmap_sg { + u32 device; + const void *device_ptr_; + u32 addrs; + const void *addrs_ptr_; +}; + +struct trace_event_data_offsets_dql_stall_detected {}; + +struct trace_event_data_offsets_drm_vblank_event {}; + +struct trace_event_data_offsets_drm_vblank_event_delivered {}; + +struct trace_event_data_offsets_drm_vblank_event_queued {}; + +struct trace_event_data_offsets_emulate_vsyscall {}; + +struct trace_event_data_offsets_error_da_monitor_id {}; + +struct trace_event_data_offsets_error_report_template {}; + +struct trace_event_data_offsets_event_da_monitor_id {}; + +struct trace_event_data_offsets_exit_mmap {}; + +struct trace_event_data_offsets_ext4__bitmap_load {}; + +struct trace_event_data_offsets_ext4__es_extent {}; + +struct trace_event_data_offsets_ext4__es_shrink_enter {}; + +struct trace_event_data_offsets_ext4__fallocate_mode {}; + +struct trace_event_data_offsets_ext4__folio_op {}; + +struct trace_event_data_offsets_ext4__map_blocks_enter {}; + +struct trace_event_data_offsets_ext4__map_blocks_exit {}; + +struct trace_event_data_offsets_ext4__mb_new_pa {}; + +struct trace_event_data_offsets_ext4__mballoc {}; + +struct trace_event_data_offsets_ext4__trim {}; + +struct trace_event_data_offsets_ext4__truncate {}; + +struct trace_event_data_offsets_ext4__write_begin {}; + +struct trace_event_data_offsets_ext4__write_end {}; + +struct trace_event_data_offsets_ext4_alloc_da_blocks {}; + +struct trace_event_data_offsets_ext4_allocate_blocks {}; + +struct trace_event_data_offsets_ext4_allocate_inode {}; + +struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; + +struct trace_event_data_offsets_ext4_collapse_range {}; + +struct trace_event_data_offsets_ext4_da_release_space {}; + +struct trace_event_data_offsets_ext4_da_reserve_space {}; + +struct trace_event_data_offsets_ext4_da_update_reserve_space {}; + +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_discard_blocks {}; + +struct trace_event_data_offsets_ext4_discard_preallocations {}; + +struct trace_event_data_offsets_ext4_drop_inode {}; + +struct trace_event_data_offsets_ext4_error {}; + +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_insert_delayed_extent {}; + +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_remove_extent {}; + +struct trace_event_data_offsets_ext4_es_shrink {}; + +struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; + +struct trace_event_data_offsets_ext4_evict_inode {}; + +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_ext_handle_unwritten_extents {}; + +struct trace_event_data_offsets_ext4_ext_load_extent {}; + +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_ext_rm_idx {}; + +struct trace_event_data_offsets_ext4_ext_rm_leaf {}; + +struct trace_event_data_offsets_ext4_ext_show_extent {}; + +struct trace_event_data_offsets_ext4_fallocate_exit {}; + +struct trace_event_data_offsets_ext4_fc_cleanup {}; + +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_replay {}; + +struct trace_event_data_offsets_ext4_fc_replay_scan {}; + +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_forget {}; + +struct trace_event_data_offsets_ext4_free_blocks {}; + +struct trace_event_data_offsets_ext4_free_inode {}; + +struct trace_event_data_offsets_ext4_fsmap_class {}; + +struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; + +struct trace_event_data_offsets_ext4_getfsmap_class {}; + +struct trace_event_data_offsets_ext4_insert_range {}; + +struct trace_event_data_offsets_ext4_invalidate_folio_op {}; + +struct trace_event_data_offsets_ext4_journal_start_inode {}; + +struct trace_event_data_offsets_ext4_journal_start_reserved {}; + +struct trace_event_data_offsets_ext4_journal_start_sb {}; + +struct trace_event_data_offsets_ext4_lazy_itable_init {}; + +struct trace_event_data_offsets_ext4_load_inode {}; + +struct trace_event_data_offsets_ext4_mark_inode_dirty {}; + +struct trace_event_data_offsets_ext4_mb_discard_preallocations {}; + +struct trace_event_data_offsets_ext4_mb_release_group_pa {}; + +struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; + +struct trace_event_data_offsets_ext4_mballoc_alloc {}; + +struct trace_event_data_offsets_ext4_mballoc_prealloc {}; + +struct trace_event_data_offsets_ext4_nfs_commit_metadata {}; + +struct trace_event_data_offsets_ext4_other_inode_update_time {}; + +struct trace_event_data_offsets_ext4_prefetch_bitmaps {}; + +struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; + +struct trace_event_data_offsets_ext4_remove_blocks {}; + +struct trace_event_data_offsets_ext4_request_blocks {}; + +struct trace_event_data_offsets_ext4_request_inode {}; + +struct trace_event_data_offsets_ext4_shutdown {}; + +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_unlink_enter {}; + +struct trace_event_data_offsets_ext4_unlink_exit {}; + +struct trace_event_data_offsets_ext4_update_sb {}; + +struct trace_event_data_offsets_ext4_writepages {}; + +struct trace_event_data_offsets_ext4_writepages_result {}; + +struct trace_event_data_offsets_extlog_mem_event { + u32 fru_text; + const void *fru_text_ptr_; +}; + +struct trace_event_data_offsets_fdb_delete { + u32 br_dev; + const void *br_dev_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_fib6_table_lookup {}; + +struct trace_event_data_offsets_fib_table_lookup {}; + +struct trace_event_data_offsets_file_check_and_advance_wb_err {}; + +struct trace_event_data_offsets_filelock_lease {}; + +struct trace_event_data_offsets_filelock_lock {}; + +struct trace_event_data_offsets_filemap_set_wb_err {}; + +struct trace_event_data_offsets_fill_mg_cmtime {}; + +struct trace_event_data_offsets_finish_task_reaping {}; + +struct trace_event_data_offsets_flush_foreign {}; + +struct trace_event_data_offsets_free_vmap_area_noflush {}; + +struct trace_event_data_offsets_fuse_request_end {}; + +struct trace_event_data_offsets_fuse_request_send {}; + +struct trace_event_data_offsets_generic_add_lease {}; + +struct trace_event_data_offsets_global_dirty_state {}; + +struct trace_event_data_offsets_gpio_direction {}; + +struct trace_event_data_offsets_gpio_value {}; + +struct trace_event_data_offsets_guest_halt_poll_ns {}; + +struct trace_event_data_offsets_handshake_alert_class {}; + +struct trace_event_data_offsets_handshake_complete {}; + +struct trace_event_data_offsets_handshake_error_class {}; + +struct trace_event_data_offsets_handshake_event_class {}; + +struct trace_event_data_offsets_handshake_fd_class {}; + +struct trace_event_data_offsets_hrtimer_class {}; + +struct trace_event_data_offsets_hrtimer_expire_entry {}; + +struct trace_event_data_offsets_hrtimer_init {}; + +struct trace_event_data_offsets_hrtimer_start {}; + +struct trace_event_data_offsets_hugepage_set {}; + +struct trace_event_data_offsets_hugepage_update {}; + +struct trace_event_data_offsets_hugetlbfs__inode {}; + +struct trace_event_data_offsets_hugetlbfs_alloc_inode {}; + +struct trace_event_data_offsets_hugetlbfs_fallocate {}; + +struct trace_event_data_offsets_hugetlbfs_setattr { + u32 d_name; + const void *d_name_ptr_; +}; + +struct trace_event_data_offsets_hwmon_attr_class { + u32 attr_name; + const void *attr_name_ptr_; +}; + +struct trace_event_data_offsets_hwmon_attr_show_string { + u32 attr_name; + const void *attr_name_ptr_; + u32 label; + const void *label_ptr_; +}; + +struct trace_event_data_offsets_hyperv_mmu_flush_tlb_multi {}; + +struct trace_event_data_offsets_hyperv_nested_flush_guest_mapping {}; + +struct trace_event_data_offsets_hyperv_nested_flush_guest_mapping_range {}; + +struct trace_event_data_offsets_hyperv_send_ipi_mask {}; + +struct trace_event_data_offsets_hyperv_send_ipi_one {}; + +struct trace_event_data_offsets_i2c_read {}; + +struct trace_event_data_offsets_i2c_reply { + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_i2c_result {}; + +struct trace_event_data_offsets_i2c_slave {}; + +struct trace_event_data_offsets_i2c_write { + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_icc_set_bw { + u32 path_name; + const void *path_name_ptr_; + u32 dev; + const void *dev_ptr_; + u32 node_name; + const void *node_name_ptr_; +}; + +struct trace_event_data_offsets_icc_set_bw_end { + u32 path_name; + const void *path_name_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_icmp_send {}; + +struct trace_event_data_offsets_inet_sk_error_report {}; + +struct trace_event_data_offsets_inet_sock_set_state {}; + +struct trace_event_data_offsets_initcall_finish {}; + +struct trace_event_data_offsets_initcall_level { + u32 level; + const void *level_ptr_; +}; + +struct trace_event_data_offsets_initcall_start {}; + +struct trace_event_data_offsets_inode_foreign_history {}; + +struct trace_event_data_offsets_inode_switch_wbs {}; + +struct trace_event_data_offsets_io_uring_complete {}; + +struct trace_event_data_offsets_io_uring_cqe_overflow {}; + +struct trace_event_data_offsets_io_uring_cqring_wait {}; + +struct trace_event_data_offsets_io_uring_create {}; + +struct trace_event_data_offsets_io_uring_defer { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_fail_link { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_file_get {}; + +struct trace_event_data_offsets_io_uring_link {}; + +struct trace_event_data_offsets_io_uring_local_work_run {}; + +struct trace_event_data_offsets_io_uring_poll_arm { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_queue_async_work { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_register {}; + +struct trace_event_data_offsets_io_uring_req_failed { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_short_write {}; + +struct trace_event_data_offsets_io_uring_submit_req { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_task_add { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_task_work_run {}; + +struct trace_event_data_offsets_iocg_inuse_update { + u32 devname; + const void *devname_ptr_; + u32 cgroup; + const void *cgroup_ptr_; +}; + +struct trace_event_data_offsets_iocost_ioc_vrate_adj { + u32 devname; + const void *devname_ptr_; +}; + +struct trace_event_data_offsets_iocost_iocg_forgive_debt { + u32 devname; + const void *devname_ptr_; + u32 cgroup; + const void *cgroup_ptr_; +}; + +struct trace_event_data_offsets_iocost_iocg_state { + u32 devname; + const void *devname_ptr_; + u32 cgroup; + const void *cgroup_ptr_; +}; + +struct trace_event_data_offsets_iomap_class {}; + +struct trace_event_data_offsets_iomap_dio_complete {}; + +struct trace_event_data_offsets_iomap_dio_rw_begin {}; + +struct trace_event_data_offsets_iomap_iter {}; + +struct trace_event_data_offsets_iomap_range_class {}; + +struct trace_event_data_offsets_iomap_readpage_class {}; + +struct trace_event_data_offsets_iomap_writepage_map {}; + +struct trace_event_data_offsets_iommu_device_event { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_iommu_error { + u32 device; + const void *device_ptr_; + u32 driver; + const void *driver_ptr_; +}; + +struct trace_event_data_offsets_iommu_group_event { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_ipi_handler {}; + +struct trace_event_data_offsets_ipi_raise { + u32 target_cpus; + const void *target_cpus_ptr_; +}; + +struct trace_event_data_offsets_ipi_send_cpu {}; + +struct trace_event_data_offsets_ipi_send_cpumask { + u32 cpumask; + const void *cpumask_ptr_; +}; + +struct trace_event_data_offsets_irq_handler_entry { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_irq_handler_exit {}; + +struct trace_event_data_offsets_irq_matrix_cpu {}; + +struct trace_event_data_offsets_irq_matrix_global {}; + +struct trace_event_data_offsets_irq_matrix_global_update {}; + +struct trace_event_data_offsets_irq_noise { + u32 desc; + const void *desc_ptr_; +}; + +struct trace_event_data_offsets_itimer_expire {}; + +struct trace_event_data_offsets_itimer_state {}; + +struct trace_event_data_offsets_jbd2_checkpoint {}; + +struct trace_event_data_offsets_jbd2_checkpoint_stats {}; + +struct trace_event_data_offsets_jbd2_commit {}; + +struct trace_event_data_offsets_jbd2_end_commit {}; + +struct trace_event_data_offsets_jbd2_handle_extend {}; + +struct trace_event_data_offsets_jbd2_handle_start_class {}; + +struct trace_event_data_offsets_jbd2_handle_stats {}; + +struct trace_event_data_offsets_jbd2_journal_shrink {}; + +struct trace_event_data_offsets_jbd2_lock_buffer_stall {}; + +struct trace_event_data_offsets_jbd2_run_stats {}; + +struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; + +struct trace_event_data_offsets_jbd2_shrink_scan_exit {}; + +struct trace_event_data_offsets_jbd2_submit_inode_data {}; + +struct trace_event_data_offsets_jbd2_update_log_tail {}; + +struct trace_event_data_offsets_jbd2_write_superblock {}; + +struct trace_event_data_offsets_kcompactd_wake_template {}; + +struct trace_event_data_offsets_kfree {}; + +struct trace_event_data_offsets_kfree_skb {}; + +struct trace_event_data_offsets_kmalloc {}; + +struct trace_event_data_offsets_kmem_cache_alloc {}; + +struct trace_event_data_offsets_kmem_cache_free { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_ksm_advisor {}; + +struct trace_event_data_offsets_ksm_enter_exit_template {}; + +struct trace_event_data_offsets_ksm_merge_one_page {}; + +struct trace_event_data_offsets_ksm_merge_with_ksm_page {}; + +struct trace_event_data_offsets_ksm_remove_ksm_page {}; + +struct trace_event_data_offsets_ksm_remove_rmap_item {}; + +struct trace_event_data_offsets_ksm_scan_template {}; + +struct trace_event_data_offsets_leases_conflict {}; + +struct trace_event_data_offsets_locks_get_lock_context {}; + +struct trace_event_data_offsets_ma_op {}; + +struct trace_event_data_offsets_ma_read {}; + +struct trace_event_data_offsets_ma_write {}; + +struct trace_event_data_offsets_map {}; + +struct trace_event_data_offsets_mark_victim { + u32 comm; + const void *comm_ptr_; +}; + +struct trace_event_data_offsets_mc_event { + u32 msg; + const void *msg_ptr_; + u32 label; + const void *label_ptr_; + u32 driver_detail; + const void *driver_detail_ptr_; +}; + +struct trace_event_data_offsets_mce_record { + u32 v_data; + const void *v_data_ptr_; +}; + +struct trace_event_data_offsets_mctp_key_acquire {}; + +struct trace_event_data_offsets_mctp_key_release {}; + +struct trace_event_data_offsets_mdio_access {}; + +struct trace_event_data_offsets_mem_connect {}; + +struct trace_event_data_offsets_mem_disconnect {}; + +struct trace_event_data_offsets_mem_return_failed {}; + +struct trace_event_data_offsets_memcg_flush_stats {}; + +struct trace_event_data_offsets_memcg_rstat_events {}; + +struct trace_event_data_offsets_memcg_rstat_stats {}; + +struct trace_event_data_offsets_memory_failure_event {}; + +struct trace_event_data_offsets_migration_pmd {}; + +struct trace_event_data_offsets_migration_pte {}; + +struct trace_event_data_offsets_mm_alloc_contig_migrate_range_info {}; + +struct trace_event_data_offsets_mm_collapse_huge_page {}; + +struct trace_event_data_offsets_mm_collapse_huge_page_isolate {}; + +struct trace_event_data_offsets_mm_collapse_huge_page_swapin {}; + +struct trace_event_data_offsets_mm_compaction_begin {}; + +struct trace_event_data_offsets_mm_compaction_defer_template {}; + +struct trace_event_data_offsets_mm_compaction_end {}; + +struct trace_event_data_offsets_mm_compaction_isolate_template {}; + +struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {}; + +struct trace_event_data_offsets_mm_compaction_migratepages {}; + +struct trace_event_data_offsets_mm_compaction_suitable_template {}; + +struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {}; + +struct trace_event_data_offsets_mm_filemap_fault {}; + +struct trace_event_data_offsets_mm_filemap_op_page_cache {}; + +struct trace_event_data_offsets_mm_filemap_op_page_cache_range {}; + +struct trace_event_data_offsets_mm_khugepaged_collapse_file { + u32 filename; + const void *filename_ptr_; +}; + +struct trace_event_data_offsets_mm_khugepaged_scan_file { + u32 filename; + const void *filename_ptr_; +}; + +struct trace_event_data_offsets_mm_khugepaged_scan_pmd {}; + +struct trace_event_data_offsets_mm_lru_activate {}; + +struct trace_event_data_offsets_mm_lru_insertion {}; + +struct trace_event_data_offsets_mm_migrate_pages {}; + +struct trace_event_data_offsets_mm_migrate_pages_start {}; + +struct trace_event_data_offsets_mm_page {}; + +struct trace_event_data_offsets_mm_page_alloc {}; + +struct trace_event_data_offsets_mm_page_alloc_extfrag {}; + +struct trace_event_data_offsets_mm_page_free {}; + +struct trace_event_data_offsets_mm_page_free_batched {}; + +struct trace_event_data_offsets_mm_page_pcpu_drain {}; + +struct trace_event_data_offsets_mm_shrink_slab_end {}; + +struct trace_event_data_offsets_mm_shrink_slab_start {}; + +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_vmscan_kswapd_sleep {}; + +struct trace_event_data_offsets_mm_vmscan_kswapd_wake {}; + +struct trace_event_data_offsets_mm_vmscan_lru_isolate {}; + +struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {}; + +struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {}; + +struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {}; + +struct trace_event_data_offsets_mm_vmscan_reclaim_pages {}; + +struct trace_event_data_offsets_mm_vmscan_throttled {}; + +struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {}; + +struct trace_event_data_offsets_mm_vmscan_write_folio {}; + +struct trace_event_data_offsets_mmap_lock {}; + +struct trace_event_data_offsets_mmap_lock_acquire_returned {}; + +struct trace_event_data_offsets_mmc_request_done { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_mmc_request_start { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_module_free { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_module_load { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_module_refcnt { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_module_request { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_mon_llc_occupancy_limbo {}; + +struct trace_event_data_offsets_mptcp_dump_mpext {}; + +struct trace_event_data_offsets_mptcp_subflow_get_send {}; + +struct trace_event_data_offsets_msr_trace_class {}; + +struct trace_event_data_offsets_napi_poll { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct trace_event_data_offsets_neigh__update { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_neigh_create { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_neigh_update { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_net_dev_rx_exit_template {}; + +struct trace_event_data_offsets_net_dev_rx_verbose_template { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_net_dev_start_xmit { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_net_dev_template { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_net_dev_xmit { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_net_dev_xmit_timeout { + u32 name; + const void *name_ptr_; + u32 driver; + const void *driver_ptr_; +}; + +struct trace_event_data_offsets_netlink_extack { + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_nmi_handler {}; + +struct trace_event_data_offsets_nmi_noise {}; + +struct trace_event_data_offsets_non_standard_event { + u32 fru_text; + const void *fru_text_ptr_; + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_notifier_info {}; + +struct trace_event_data_offsets_oom_score_adj_update {}; + +struct trace_event_data_offsets_page_pool_release {}; + +struct trace_event_data_offsets_page_pool_state_hold {}; + +struct trace_event_data_offsets_page_pool_state_release {}; + +struct trace_event_data_offsets_page_pool_update_nid {}; + +struct trace_event_data_offsets_percpu_alloc_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 trace_event_data_offsets_percpu_free_percpu {}; + +struct trace_event_data_offsets_pm_qos_update {}; + +struct trace_event_data_offsets_power_domain { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_powernv_throttle { + u32 reason; + const void *reason_ptr_; +}; + +struct trace_event_data_offsets_prq_report { + u32 iommu; + const void *iommu_ptr_; + u32 dev; + const void *dev_ptr_; + u32 buff; + const void *buff_ptr_; +}; + +struct trace_event_data_offsets_pseudo_lock_l2 {}; + +struct trace_event_data_offsets_pseudo_lock_l3 {}; + +struct trace_event_data_offsets_pseudo_lock_mem_latency {}; + +struct trace_event_data_offsets_pstate_sample {}; + +struct trace_event_data_offsets_purge_vmap_area_lazy {}; + +struct trace_event_data_offsets_pwm {}; + +struct trace_event_data_offsets_pwm_read_waveform {}; + +struct trace_event_data_offsets_pwm_round_waveform_fromhw {}; + +struct trace_event_data_offsets_pwm_round_waveform_tohw {}; + +struct trace_event_data_offsets_pwm_write_waveform {}; + +struct trace_event_data_offsets_qdisc_create { + u32 dev; + const void *dev_ptr_; + u32 kind; + const void *kind_ptr_; +}; + +struct trace_event_data_offsets_qdisc_dequeue {}; + +struct trace_event_data_offsets_qdisc_destroy { + u32 dev; + const void *dev_ptr_; + u32 kind; + const void *kind_ptr_; +}; + +struct trace_event_data_offsets_qdisc_enqueue {}; + +struct trace_event_data_offsets_qdisc_reset { + u32 dev; + const void *dev_ptr_; + u32 kind; + const void *kind_ptr_; +}; + +struct trace_event_data_offsets_qi_submit { + u32 iommu; + const void *iommu_ptr_; +}; + +struct trace_event_data_offsets_rcu_stall_warning {}; + +struct trace_event_data_offsets_rcu_utilization {}; + +struct trace_event_data_offsets_reclaim_retry_zone {}; + +struct trace_event_data_offsets_regcache_drop_region { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regcache_sync { + u32 name; + const void *name_ptr_; + u32 status; + const void *status_ptr_; + u32 type; + const void *type_ptr_; +}; + +struct trace_event_data_offsets_regmap_async { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regmap_block { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regmap_bool { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regmap_bulk { + u32 name; + const void *name_ptr_; + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_regmap_reg { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regulator_basic { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regulator_range { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regulator_value { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rpm_internal { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rpm_return_int { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rpm_status { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rseq_ip_fixup {}; + +struct trace_event_data_offsets_rseq_update {}; + +struct trace_event_data_offsets_rss_stat {}; + +struct trace_event_data_offsets_rtc_alarm_irq_enable {}; + +struct trace_event_data_offsets_rtc_irq_set_freq {}; + +struct trace_event_data_offsets_rtc_irq_set_state {}; + +struct trace_event_data_offsets_rtc_offset_class {}; + +struct trace_event_data_offsets_rtc_time_alarm_class {}; + +struct trace_event_data_offsets_rtc_timer_class {}; + +struct trace_event_data_offsets_sample_threshold {}; + +struct trace_event_data_offsets_sched_ext_dump { + u32 line; + const void *line_ptr_; +}; + +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_execute_end {}; + +struct trace_event_data_offsets_sched_kthread_work_execute_start {}; + +struct trace_event_data_offsets_sched_kthread_work_queue_work {}; + +struct trace_event_data_offsets_sched_migrate_task {}; + +struct trace_event_data_offsets_sched_move_numa {}; + +struct trace_event_data_offsets_sched_numa_pair_template {}; + +struct trace_event_data_offsets_sched_pi_setprio {}; + +struct trace_event_data_offsets_sched_prepare_exec { + u32 interp; + const void *interp_ptr_; + u32 filename; + const void *filename_ptr_; + u32 comm; + const void *comm_ptr_; +}; + +struct trace_event_data_offsets_sched_process_exec { + u32 filename; + const void *filename_ptr_; +}; + +struct trace_event_data_offsets_sched_process_fork {}; + +struct trace_event_data_offsets_sched_process_hang {}; + +struct trace_event_data_offsets_sched_process_template {}; + +struct trace_event_data_offsets_sched_process_wait {}; + +struct trace_event_data_offsets_sched_skip_vma_numa {}; + +struct trace_event_data_offsets_sched_stat_runtime {}; + +struct trace_event_data_offsets_sched_stat_template {}; + +struct trace_event_data_offsets_sched_switch {}; + +struct trace_event_data_offsets_sched_wake_idle_without_ipi {}; + +struct trace_event_data_offsets_sched_wakeup_template {}; + +struct trace_event_data_offsets_scsi_cmd_done_timeout_template { + u32 cmnd; + const void *cmnd_ptr_; +}; + +struct trace_event_data_offsets_scsi_dispatch_cmd_error { + u32 cmnd; + const void *cmnd_ptr_; +}; + +struct trace_event_data_offsets_scsi_dispatch_cmd_start { + u32 cmnd; + const void *cmnd_ptr_; +}; + +struct trace_event_data_offsets_scsi_eh_wakeup {}; + +struct trace_event_data_offsets_scsi_prepare_zone_append {}; + +struct trace_event_data_offsets_scsi_zone_wp_update {}; + +struct trace_event_data_offsets_selinux_audited { + u32 scontext; + const void *scontext_ptr_; + u32 tcontext; + const void *tcontext_ptr_; + u32 tclass; + const void *tclass_ptr_; +}; + +struct trace_event_data_offsets_signal_deliver {}; + +struct trace_event_data_offsets_signal_generate {}; + +struct trace_event_data_offsets_sk_data_ready {}; + +struct trace_event_data_offsets_skb_copy_datagram_iovec {}; + +struct trace_event_data_offsets_skip_task_reaping {}; + +struct trace_event_data_offsets_smbus_read {}; + +struct trace_event_data_offsets_smbus_reply {}; + +struct trace_event_data_offsets_smbus_result {}; + +struct trace_event_data_offsets_smbus_write {}; + +struct trace_event_data_offsets_sock_exceed_buf_limit {}; + +struct trace_event_data_offsets_sock_msg_length {}; + +struct trace_event_data_offsets_sock_rcvqueue_full {}; + +struct trace_event_data_offsets_softirq {}; + +struct trace_event_data_offsets_softirq_noise {}; + +struct trace_event_data_offsets_spi_controller {}; + +struct trace_event_data_offsets_spi_message {}; + +struct trace_event_data_offsets_spi_message_done {}; + +struct trace_event_data_offsets_spi_set_cs {}; + +struct trace_event_data_offsets_spi_setup {}; + +struct trace_event_data_offsets_spi_transfer { + u32 rx_buf; + const void *rx_buf_ptr_; + u32 tx_buf; + const void *tx_buf_ptr_; +}; + +struct trace_event_data_offsets_start_task_reaping {}; + +struct trace_event_data_offsets_subflow_check_data_avail {}; + +struct trace_event_data_offsets_suspend_resume {}; + +struct trace_event_data_offsets_swiotlb_bounced { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct trace_event_data_offsets_sync_timeline { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_sys_enter {}; + +struct trace_event_data_offsets_sys_exit {}; + +struct trace_event_data_offsets_task_newtask {}; + +struct trace_event_data_offsets_task_prctl_unknown {}; + +struct trace_event_data_offsets_task_rename {}; + +struct trace_event_data_offsets_tasklet {}; + +struct trace_event_data_offsets_tcp_ao_event {}; + +struct trace_event_data_offsets_tcp_ao_event_sk {}; + +struct trace_event_data_offsets_tcp_ao_event_sne {}; + +struct trace_event_data_offsets_tcp_cong_state_set {}; + +struct trace_event_data_offsets_tcp_event_sk {}; + +struct trace_event_data_offsets_tcp_event_sk_skb {}; + +struct trace_event_data_offsets_tcp_event_skb {}; + +struct trace_event_data_offsets_tcp_hash_event {}; + +struct trace_event_data_offsets_tcp_probe {}; + +struct trace_event_data_offsets_tcp_retransmit_synack {}; + +struct trace_event_data_offsets_tcp_send_reset {}; + +struct trace_event_data_offsets_test_pages_isolated {}; + +struct trace_event_data_offsets_thermal_power_actor {}; + +struct trace_event_data_offsets_thermal_power_allocator {}; + +struct trace_event_data_offsets_thermal_power_allocator_pid {}; + +struct trace_event_data_offsets_thermal_power_devfreq_get_power { + u32 type; + const void *type_ptr_; +}; + +struct trace_event_data_offsets_thermal_power_devfreq_limit { + u32 type; + const void *type_ptr_; +}; + +struct trace_event_data_offsets_thermal_temperature { + u32 thermal_zone; + const void *thermal_zone_ptr_; +}; + +struct trace_event_data_offsets_thermal_zone_trip { + u32 thermal_zone; + const void *thermal_zone_ptr_; +}; + +struct trace_event_data_offsets_thread_noise {}; + +struct trace_event_data_offsets_tick_stop {}; + +struct trace_event_data_offsets_timer_base_idle {}; + +struct trace_event_data_offsets_timer_class {}; + +struct trace_event_data_offsets_timer_expire_entry {}; + +struct trace_event_data_offsets_timer_start {}; + +struct trace_event_data_offsets_tlb_flush {}; + +struct trace_event_data_offsets_tls_contenttype {}; + +struct trace_event_data_offsets_tmigr_connect_child_parent {}; + +struct trace_event_data_offsets_tmigr_connect_cpu_parent {}; + +struct trace_event_data_offsets_tmigr_cpugroup {}; + +struct trace_event_data_offsets_tmigr_group_and_cpu {}; + +struct trace_event_data_offsets_tmigr_group_set {}; + +struct trace_event_data_offsets_tmigr_handle_remote {}; + +struct trace_event_data_offsets_tmigr_idle {}; + +struct trace_event_data_offsets_tmigr_update_events {}; + +struct trace_event_data_offsets_track_foreign_dirty {}; + +struct trace_event_data_offsets_udp_fail_queue_rcv_skb {}; + +struct trace_event_data_offsets_unmap {}; + +struct trace_event_data_offsets_vector_activate {}; + +struct trace_event_data_offsets_vector_alloc {}; + +struct trace_event_data_offsets_vector_alloc_managed {}; + +struct trace_event_data_offsets_vector_config {}; + +struct trace_event_data_offsets_vector_free_moved {}; + +struct trace_event_data_offsets_vector_mod {}; + +struct trace_event_data_offsets_vector_reserve {}; + +struct trace_event_data_offsets_vector_setup {}; + +struct trace_event_data_offsets_vector_teardown {}; + +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_wake_reaper {}; + +struct trace_event_data_offsets_wakeup_source { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_watchdog_set_timeout {}; + +struct trace_event_data_offsets_watchdog_template {}; + +struct trace_event_data_offsets_wbc_class {}; + +struct trace_event_data_offsets_wbt_lat {}; + +struct trace_event_data_offsets_wbt_stat {}; + +struct trace_event_data_offsets_wbt_step {}; + +struct trace_event_data_offsets_wbt_timer {}; + +struct trace_event_data_offsets_workqueue_activate_work {}; + +struct trace_event_data_offsets_workqueue_execute_end {}; + +struct trace_event_data_offsets_workqueue_execute_start {}; + +struct trace_event_data_offsets_workqueue_queue_work { + u32 workqueue; + const void *workqueue_ptr_; +}; + +struct trace_event_data_offsets_writeback_bdi_register {}; + +struct trace_event_data_offsets_writeback_class {}; + +struct trace_event_data_offsets_writeback_dirty_inode_template {}; + +struct trace_event_data_offsets_writeback_folio_template {}; + +struct trace_event_data_offsets_writeback_inode_template {}; + +struct trace_event_data_offsets_writeback_pages_written {}; + +struct trace_event_data_offsets_writeback_queue_io {}; + +struct trace_event_data_offsets_writeback_sb_inodes_requeue {}; + +struct trace_event_data_offsets_writeback_single_inode_template {}; + +struct trace_event_data_offsets_writeback_work_class {}; + +struct trace_event_data_offsets_writeback_write_inode_template {}; + +struct trace_event_data_offsets_x86_exceptions {}; + +struct trace_event_data_offsets_x86_fpu {}; + +struct trace_event_data_offsets_x86_irq_vector {}; + +struct trace_event_data_offsets_xdp_bulk_tx {}; + +struct trace_event_data_offsets_xdp_cpumap_enqueue {}; + +struct trace_event_data_offsets_xdp_cpumap_kthread {}; + +struct trace_event_data_offsets_xdp_devmap_xmit {}; + +struct trace_event_data_offsets_xdp_exception {}; + +struct trace_event_data_offsets_xdp_redirect_template {}; + +struct trace_event_data_offsets_xen_cpu_load_idt {}; + +struct trace_event_data_offsets_xen_cpu_set_ldt {}; + +struct trace_event_data_offsets_xen_cpu_write_gdt_entry {}; + +struct trace_event_data_offsets_xen_cpu_write_idt_entry {}; + +struct trace_event_data_offsets_xen_cpu_write_ldt_entry {}; + +struct trace_event_data_offsets_xen_mc__batch {}; + +struct trace_event_data_offsets_xen_mc_callback {}; + +struct trace_event_data_offsets_xen_mc_entry {}; + +struct trace_event_data_offsets_xen_mc_entry_alloc {}; + +struct trace_event_data_offsets_xen_mc_extend_args {}; + +struct trace_event_data_offsets_xen_mc_flush {}; + +struct trace_event_data_offsets_xen_mc_flush_reason {}; + +struct trace_event_data_offsets_xen_mmu__set_pte {}; + +struct trace_event_data_offsets_xen_mmu_alloc_ptpage {}; + +struct trace_event_data_offsets_xen_mmu_flush_tlb_multi {}; + +struct trace_event_data_offsets_xen_mmu_flush_tlb_one_user {}; + +struct trace_event_data_offsets_xen_mmu_pgd {}; + +struct trace_event_data_offsets_xen_mmu_ptep_modify_prot {}; + +struct trace_event_data_offsets_xen_mmu_release_ptpage {}; + +struct trace_event_data_offsets_xen_mmu_set_p4d {}; + +struct trace_event_data_offsets_xen_mmu_set_pmd {}; + +struct trace_event_data_offsets_xen_mmu_set_pud {}; + +struct trace_event_data_offsets_xen_mmu_write_cr3 {}; + +struct trace_event_data_offsets_xhci_dbc_log_request {}; + +struct trace_event_data_offsets_xhci_log_ctrl_ctx {}; + +struct trace_event_data_offsets_xhci_log_ctx { + u32 ctx_data; + const void *ctx_data_ptr_; +}; + +struct trace_event_data_offsets_xhci_log_doorbell {}; + +struct trace_event_data_offsets_xhci_log_ep_ctx {}; + +struct trace_event_data_offsets_xhci_log_free_virt_dev {}; + +struct trace_event_data_offsets_xhci_log_msg { + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_xhci_log_portsc {}; + +struct trace_event_data_offsets_xhci_log_ring {}; + +struct trace_event_data_offsets_xhci_log_slot_ctx {}; + +struct trace_event_data_offsets_xhci_log_stream_ctx {}; + +struct trace_event_data_offsets_xhci_log_trb {}; + +struct trace_event_data_offsets_xhci_log_urb { + u32 devname; + const void *devname_ptr_; +}; + +struct trace_event_data_offsets_xhci_log_virt_dev {}; + +struct trace_event_fields { + const char *type; + union { + struct { + const char *name; + const int size; + const int align; + const unsigned int is_signed: 1; + unsigned int needs_test: 1; + const int filter_type; + const int len; + }; + int (*define_fields)(struct trace_event_call *); + }; +}; + +struct trace_subsystem_dir; + +struct trace_event_file { + struct list_head list; + struct trace_event_call *event_call; + struct event_filter *filter; + struct eventfs_inode *ei; + struct trace_array *tr; + struct trace_subsystem_dir *system; + struct list_head triggers; + long unsigned int flags; + refcount_t ref; + atomic_t sm_ref; + atomic_t tm_ref; +}; + +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 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_aer_event { + struct trace_entry ent; + u32 __data_loc_dev_name; + u32 status; + u8 severity; + u8 tlp_header_valid; + u32 tlp_header[4]; + char __data[0]; +}; + +struct 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_raw_alarmtimer_suspend { + struct trace_entry ent; + s64 expires; + unsigned char alarm_type; + char __data[0]; +}; + +struct trace_event_raw_alloc_vmap_area { + struct trace_entry ent; + long unsigned int addr; + long unsigned int size; + long unsigned int align; + long unsigned int vstart; + long unsigned int vend; + int failed; + char __data[0]; +}; + +struct trace_event_raw_amd_pstate_epp_perf { + struct trace_entry ent; + unsigned int cpu_id; + u8 highest_perf; + u8 epp; + u8 min_perf; + u8 max_perf; + bool boost; + char __data[0]; +}; + +struct trace_event_raw_amd_pstate_perf { + struct trace_entry ent; + u8 min_perf; + u8 target_perf; + u8 capacity; + long long unsigned int freq; + long long unsigned int mperf; + long long unsigned int aperf; + long long unsigned int tsc; + unsigned int cpu_id; + bool fast_switch; + char __data[0]; +}; + +struct trace_event_raw_arm_event { + struct trace_entry ent; + u64 mpidr; + u64 midr; + u32 running_state; + u32 psci_state; + u8 affinity; + char __data[0]; +}; + +struct 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_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_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_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_link_reset_begin_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int class[2]; + long unsigned int 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_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; + long unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ata_qc_issue_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int tag; + unsigned char cmd; + unsigned char dev; + unsigned char lbal; + unsigned char lbam; + unsigned char lbah; + unsigned char nsect; + unsigned char feature; + unsigned char hob_lbal; + unsigned char hob_lbam; + unsigned char hob_lbah; + unsigned char hob_nsect; + unsigned char hob_feature; + unsigned char ctl; + unsigned char proto; + long unsigned int flags; + 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_sff_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned char hsm_state; + 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_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_balance_dirty_pages { + struct trace_entry ent; + char bdi[32]; + long unsigned int limit; + long unsigned int setpoint; + long unsigned int dirty; + long unsigned int bdi_setpoint; + long unsigned int bdi_dirty; + long unsigned int dirty_ratelimit; + long unsigned int task_ratelimit; + unsigned int dirtied; + unsigned int dirtied_pause; + long unsigned int paused; + long int pause; + long unsigned int period; + long int think; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_bdi_dirty_ratelimit { + struct trace_entry ent; + char bdi[32]; + long unsigned int write_bw; + long unsigned int avg_write_bw; + long unsigned int dirty_rate; + long unsigned int dirty_ratelimit; + long unsigned int task_ratelimit; + long unsigned int balanced_dirty_ratelimit; + ino_t cgroup_ino; + 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_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_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_buffer { + struct trace_entry ent; + dev_t dev; + sector_t sector; + size_t size; + char __data[0]; +}; + +struct trace_event_raw_block_plug { + struct trace_entry ent; + char comm[16]; + 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; + short unsigned int ioprio; + char rwbs[8]; + char comm[16]; + 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; + short unsigned int ioprio; + char rwbs[8]; + u32 __data_loc_cmd; + 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_raw_block_rq_requeue { + struct trace_entry ent; + dev_t dev; + sector_t sector; + unsigned int nr_sector; + short unsigned int ioprio; + char rwbs[8]; + u32 __data_loc_cmd; + 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_unplug { + struct trace_entry ent; + int nr_rq; + char comm[16]; + char __data[0]; +}; + +struct trace_event_raw_bpf_test_finish { + struct trace_entry ent; + int err; + char __data[0]; +}; + +struct trace_event_raw_bpf_trace_printk { + struct trace_entry ent; + u32 __data_loc_bpf_string; + char __data[0]; +}; + +struct trace_event_raw_bpf_trigger_tp { + struct trace_entry ent; + int nonce; + char __data[0]; +}; + +struct trace_event_raw_bpf_xdp_link_attach_failed { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_raw_br_fdb_add { + struct trace_entry ent; + u8 ndm_flags; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + u16 nlh_flags; + char __data[0]; +}; + +struct trace_event_raw_br_fdb_external_learn_add { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + char __data[0]; +}; + +struct trace_event_raw_br_fdb_update { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + long unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_br_mdb_full { + struct trace_entry ent; + u32 __data_loc_dev; + int af; + u16 vid; + __u8 src[16]; + __u8 grp[16]; + __u8 grpmac[6]; + char __data[0]; +}; + +struct trace_event_raw_cache_tag_flush { + struct trace_entry ent; + u32 __data_loc_iommu; + u32 __data_loc_dev; + u16 type; + u16 domain_id; + u32 pasid; + long unsigned int start; + long unsigned int end; + long unsigned int addr; + long unsigned int pages; + long unsigned int mask; + char __data[0]; +}; + +struct trace_event_raw_cache_tag_log { + struct trace_entry ent; + u32 __data_loc_iommu; + u32 __data_loc_dev; + u16 type; + u16 domain_id; + u32 pasid; + u32 users; + char __data[0]; +}; + +struct trace_event_raw_cap_capable { + struct trace_entry ent; + const struct cred *cred; + struct user_namespace *target_ns; + const struct user_namespace *capable_ns; + int cap; + int ret; + char __data[0]; +}; + +struct trace_event_raw_cdev_update { + struct trace_entry ent; + u32 __data_loc_type; + long unsigned int target; + 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_event { + struct trace_entry ent; + int root; + int level; + u64 id; + u32 __data_loc_path; + int val; + 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_root { + struct trace_entry ent; + int root; + u16 ss_mask; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_cgroup_rstat { + struct trace_entry ent; + int root; + int level; + u64 id; + int cpu; + bool contended; + char __data[0]; +}; + +struct trace_event_raw_clk { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_clk_duty_cycle { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int num; + unsigned int den; + char __data[0]; +}; + +struct trace_event_raw_clk_parent { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_pname; + char __data[0]; +}; + +struct trace_event_raw_clk_phase { + struct trace_entry ent; + u32 __data_loc_name; + int phase; + char __data[0]; +}; + +struct trace_event_raw_clk_rate { + struct trace_entry ent; + u32 __data_loc_name; + long unsigned int rate; + char __data[0]; +}; + +struct trace_event_raw_clk_rate_range { + struct trace_entry ent; + u32 __data_loc_name; + long unsigned int min; + long unsigned int max; + char __data[0]; +}; + +struct trace_event_raw_clk_rate_request { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_pname; + long unsigned int min; + long unsigned int max; + long unsigned int prate; + 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_compact_retry { + struct trace_entry ent; + int order; + int priority; + int result; + int retries; + int max_retries; + bool ret; + char __data[0]; +}; + +struct trace_event_raw_console { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_raw_consume_skb { + struct trace_entry ent; + void *skbaddr; + void *location; + char __data[0]; +}; + +struct trace_event_raw_contention_begin { + struct trace_entry ent; + void *lock_addr; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_contention_end { + struct trace_entry ent; + void *lock_addr; + int ret; + char __data[0]; +}; + +struct trace_event_raw_context_tracking_user { + struct trace_entry ent; + int dummy; + char __data[0]; +}; + +struct trace_event_raw_cpu { + struct trace_entry ent; + u32 state; + u32 cpu_id; + 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_cpu_idle_miss { + struct trace_entry ent; + u32 cpu_id; + u32 state; + bool below; + char __data[0]; +}; + +struct trace_event_raw_cpu_latency_qos_request { + struct trace_entry ent; + s32 value; + char __data[0]; +}; + +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_exit { + struct trace_entry ent; + unsigned int cpu; + int state; + int idx; + int ret; + 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_cros_ec_request_done { + struct trace_entry ent; + uint32_t version; + uint32_t offset; + uint32_t command; + uint32_t outsize; + uint32_t insize; + uint32_t result; + int retval; + char __data[0]; +}; + +struct trace_event_raw_cros_ec_request_start { + struct trace_entry ent; + uint32_t version; + uint32_t offset; + uint32_t command; + uint32_t outsize; + uint32_t insize; + char __data[0]; +}; + +struct trace_event_raw_csd_function { + struct trace_entry ent; + void *func; + void *csd; + char __data[0]; +}; + +struct trace_event_raw_csd_queue_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *func; + void *csd; + char __data[0]; +}; + +struct trace_event_raw_ctime { + struct trace_entry ent; + dev_t dev; + ino_t ino; + time64_t ctime_s; + u32 ctime_ns; + u32 gen; + char __data[0]; +}; + +struct trace_event_raw_ctime_ns_xchg { + struct trace_entry ent; + dev_t dev; + ino_t ino; + u32 gen; + u32 old; + u32 new; + u32 cur; + char __data[0]; +}; + +struct trace_event_raw_dax_insert_mapping { + struct trace_entry ent; + long unsigned int ino; + long unsigned int vm_flags; + long unsigned int address; + void *radix_entry; + dev_t dev; + int write; + char __data[0]; +}; + +struct trace_event_raw_dax_pmd_fault_class { + struct trace_entry ent; + long unsigned int ino; + long unsigned int vm_start; + long unsigned int vm_end; + long unsigned int vm_flags; + long unsigned int address; + long unsigned int pgoff; + long unsigned int max_pgoff; + dev_t dev; + unsigned int flags; + int result; + char __data[0]; +}; + +struct trace_event_raw_dax_pmd_insert_mapping_class { + struct trace_entry ent; + long unsigned int ino; + long unsigned int vm_flags; + long unsigned int address; + long int length; + u64 pfn_val; + void *radix_entry; + dev_t dev; + int write; + char __data[0]; +}; + +struct trace_event_raw_dax_pmd_load_hole_class { + struct trace_entry ent; + long unsigned int ino; + long unsigned int vm_flags; + long unsigned int address; + struct folio *zero_folio; + void *radix_entry; + dev_t dev; + char __data[0]; +}; + +struct trace_event_raw_dax_pte_fault_class { + struct trace_entry ent; + long unsigned int ino; + long unsigned int vm_flags; + long unsigned int address; + long unsigned int pgoff; + dev_t dev; + unsigned int flags; + int result; + char __data[0]; +}; + +struct trace_event_raw_dax_writeback_one { + struct trace_entry ent; + long unsigned int ino; + long unsigned int pgoff; + long unsigned int pglen; + dev_t dev; + char __data[0]; +}; + +struct trace_event_raw_dax_writeback_range_class { + struct trace_entry ent; + long unsigned int ino; + long unsigned int start_index; + long unsigned int end_index; + dev_t dev; + 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_devfreq_frequency { + struct trace_entry ent; + u32 __data_loc_dev_name; + long unsigned int freq; + long unsigned int prev_freq; + long unsigned int busy_time; + long unsigned int total_time; + char __data[0]; +}; + +struct trace_event_raw_devfreq_monitor { + struct trace_entry ent; + long unsigned int freq; + long unsigned int busy_time; + long unsigned int total_time; + unsigned int polling_ms; + u32 __data_loc_dev_name; + 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_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_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_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_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_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_hwmsg { + struct trace_entry ent; + u32 __data_loc_bus_name; + u32 __data_loc_dev_name; + u32 __data_loc_driver_name; + bool incoming; + long unsigned int type; + u32 __data_loc_buf; + size_t len; + 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 trace_event_raw_devres { + struct trace_entry ent; + u32 __data_loc_devname; + struct device *dev; + const char *op; + void *node; + u32 __data_loc_name; + size_t size; + char __data[0]; +}; + +struct trace_event_raw_dma_alloc_class { + struct trace_entry ent; + u32 __data_loc_device; + void *virt_addr; + u64 dma_addr; + size_t size; + gfp_t flags; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_alloc_sgt { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_phys_addrs; + u64 dma_addr; + size_t size; + enum dma_data_direction dir; + gfp_t flags; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_fence { + struct trace_entry ent; + u32 __data_loc_driver; + u32 __data_loc_timeline; + unsigned int context; + unsigned int seqno; + char __data[0]; +}; + +struct trace_event_raw_dma_free_class { + struct trace_entry ent; + u32 __data_loc_device; + void *virt_addr; + u64 dma_addr; + size_t size; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_free_sgt { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_phys_addrs; + u64 dma_addr; + size_t size; + enum dma_data_direction dir; + char __data[0]; +}; + +struct trace_event_raw_dma_map { + struct trace_entry ent; + u32 __data_loc_device; + u64 phys_addr; + u64 dma_addr; + size_t size; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_map_sg { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_phys_addrs; + u32 __data_loc_dma_addrs; + u32 __data_loc_lengths; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_map_sg_err { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_phys_addrs; + int err; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_sync_sg { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_dma_addrs; + u32 __data_loc_lengths; + enum dma_data_direction dir; + char __data[0]; +}; + +struct trace_event_raw_dma_sync_single { + struct trace_entry ent; + u32 __data_loc_device; + u64 dma_addr; + size_t size; + enum dma_data_direction dir; + char __data[0]; +}; + +struct trace_event_raw_dma_unmap { + struct trace_entry ent; + u32 __data_loc_device; + u64 addr; + size_t size; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_unmap_sg { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_addrs; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dql_stall_detected { + struct trace_entry ent; + short unsigned int thrs; + unsigned int len; + long unsigned int last_reap; + long unsigned int hist_head; + long unsigned int now; + long unsigned int hist[4]; + char __data[0]; +}; + +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_delivered { + struct trace_entry ent; + struct drm_file *file; + int crtc; + unsigned int seq; + char __data[0]; +}; + +struct trace_event_raw_drm_vblank_event_queued { + struct trace_entry ent; + struct drm_file *file; + int crtc; + unsigned int seq; + char __data[0]; +}; + +struct trace_event_raw_emulate_vsyscall { + struct trace_entry ent; + int nr; + char __data[0]; +}; + +struct trace_event_raw_error_da_monitor_id { + struct trace_entry ent; + int id; + char state[24]; + char event[24]; + char __data[0]; +}; + +struct trace_event_raw_error_report_template { + struct trace_entry ent; + enum error_detector error_detector; + long unsigned int id; + char __data[0]; +}; + +struct trace_event_raw_event_da_monitor_id { + struct trace_entry ent; + int id; + char state[24]; + char event[24]; + char next_state[24]; + bool final_state; + 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 trace_event_raw_ext4__bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + 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_shrink_enter { + struct trace_entry ent; + dev_t dev; + int nr_to_scan; + int cache_cnt; + 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__folio_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int index; + 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__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__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__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__truncate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 blocks; + 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_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_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_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_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_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_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_da_reserve_space { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 i_blocks; + int reserve_blocks; + int reserved_data_blocks; + __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_write_pages { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int first_page; + long int 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_discard_blocks { + struct trace_entry ent; + dev_t dev; + __u64 blk; + __u64 count; + char __data[0]; +}; + +struct trace_event_raw_ext4_discard_preallocations { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int len; + char __data[0]; +}; + +struct trace_event_raw_ext4_drop_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int drop; + 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_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_insert_delayed_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; + bool lclu_allocated; + bool end_allocated; + 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_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_shrink { + struct trace_entry ent; + dev_t dev; + int nr_shrunk; + long long unsigned int scan_time; + int nr_skipped; + int retried; + 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_evict_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int nlink; + 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_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_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_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; + short unsigned int eh_entries; + 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_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 int ee_len; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + 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; + short unsigned int len; + 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_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_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_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_replay_scan { + struct trace_entry ent; + dev_t dev; + int error; + int off; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_stats { + struct trace_entry ent; + dev_t dev; + unsigned int fc_ineligible_rc[10]; + long unsigned int fc_commits; + long unsigned int fc_ineligible_commits; + long unsigned int 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 int start; + long int end; + int error; + 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_free_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 block; + long unsigned int count; + int flags; + __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_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_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_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_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_invalidate_folio_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int index; + size_t offset; + size_t length; + char __data[0]; +}; + +struct trace_event_raw_ext4_journal_start_inode { + struct trace_entry ent; + long unsigned int ino; + dev_t dev; + long unsigned int 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; + long unsigned int ip; + int blocks; + char __data[0]; +}; + +struct trace_event_raw_ext4_journal_start_sb { + struct trace_entry ent; + dev_t dev; + long unsigned int ip; + int blocks; + int rsv_blocks; + int revoke_creds; + int type; + 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_load_inode { + 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; + long unsigned int ip; + 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_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_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_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_nfs_commit_metadata { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; +}; + +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_prefetch_bitmaps { + struct trace_entry ent; + dev_t dev; + __u32 group; + __u32 next; + __u32 ios; + 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_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; + short unsigned int ee_len; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + 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_request_inode { + struct trace_entry ent; + dev_t dev; + ino_t dir; + __u16 mode; + 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_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_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_update_sb { + struct trace_entry ent; + dev_t dev; + ext4_fsblk_t fsblk; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_writepages { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long int nr_to_write; + long int pages_skipped; + loff_t range_start; + loff_t range_end; + long unsigned int writeback_index; + int sync_mode; + char for_kupdate; + char range_cyclic; + 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 int pages_skipped; + long unsigned int writeback_index; + int sync_mode; + char __data[0]; +}; + +struct trace_event_raw_extlog_mem_event { + struct trace_entry ent; + u32 err_seq; + u8 etype; + u8 sev; + u64 pa; + u8 pa_mask_lsb; + guid_t fru_id; + u32 __data_loc_fru_text; + struct cper_mem_err_compact data; + char __data[0]; +}; + +struct trace_event_raw_fdb_delete { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + char __data[0]; +}; + +struct trace_event_raw_fib6_table_lookup { + struct trace_entry ent; + u32 tb_id; + int err; + int oif; + int iif; + u32 flowlabel; + __u8 tos; + __u8 scope; + __u8 flags; + __u8 src[16]; + __u8 dst[16]; + u16 sport; + u16 dport; + u8 proto; + u8 rt_type; + char name[16]; + __u8 gw[16]; + char __data[0]; +}; + +struct trace_event_raw_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_file_check_and_advance_wb_err { + struct trace_entry ent; + struct file *file; + long unsigned int i_ino; + dev_t s_dev; + errseq_t old; + errseq_t new; + char __data[0]; +}; + +struct trace_event_raw_filelock_lease { + struct trace_entry ent; + struct file_lease *fl; + long unsigned int i_ino; + dev_t s_dev; + struct file_lock_core *blocker; + fl_owner_t owner; + unsigned int flags; + unsigned char type; + long unsigned int break_time; + long unsigned int downgrade_time; + char __data[0]; +}; + +struct trace_event_raw_filelock_lock { + struct trace_entry ent; + struct file_lock *fl; + long unsigned int i_ino; + dev_t s_dev; + struct file_lock_core *blocker; + fl_owner_t owner; + unsigned int pid; + unsigned int flags; + unsigned char type; + loff_t fl_start; + loff_t fl_end; + int ret; + char __data[0]; +}; + +struct trace_event_raw_filemap_set_wb_err { + struct trace_entry ent; + long unsigned int i_ino; + dev_t s_dev; + errseq_t errseq; + char __data[0]; +}; + +struct trace_event_raw_fill_mg_cmtime { + struct trace_entry ent; + dev_t dev; + ino_t ino; + time64_t ctime_s; + time64_t mtime_s; + u32 ctime_ns; + u32 mtime_ns; + u32 gen; + char __data[0]; +}; + +struct trace_event_raw_finish_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; +}; + +struct trace_event_raw_flush_foreign { + struct trace_entry ent; + char name[32]; + ino_t cgroup_ino; + unsigned int frn_bdi_id; + unsigned int frn_memcg_id; + char __data[0]; +}; + +struct trace_event_raw_free_vmap_area_noflush { + struct trace_entry ent; + long unsigned int va_start; + long unsigned int nr_lazy; + long unsigned int nr_lazy_max; + char __data[0]; +}; + +struct trace_event_raw_fuse_request_end { + struct trace_entry ent; + dev_t connection; + uint64_t unique; + uint32_t len; + int32_t error; + char __data[0]; +}; + +struct trace_event_raw_fuse_request_send { + struct trace_entry ent; + dev_t connection; + uint64_t unique; + enum fuse_opcode opcode; + uint32_t len; + char __data[0]; +}; + +struct trace_event_raw_generic_add_lease { + struct trace_entry ent; + long unsigned int i_ino; + int wcount; + int rcount; + int icount; + dev_t s_dev; + fl_owner_t owner; + unsigned int flags; + unsigned char type; + char __data[0]; +}; + +struct trace_event_raw_global_dirty_state { + struct trace_entry ent; + long unsigned int nr_dirty; + long unsigned int nr_writeback; + long unsigned int background_thresh; + long unsigned int dirty_thresh; + long unsigned int dirty_limit; + long unsigned int nr_dirtied; + long unsigned int nr_written; + char __data[0]; +}; + +struct trace_event_raw_gpio_direction { + struct trace_entry ent; + unsigned int gpio; + int in; + int err; + char __data[0]; +}; + +struct trace_event_raw_gpio_value { + struct trace_entry ent; + unsigned int gpio; + int get; + int 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_raw_handshake_alert_class { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + long unsigned int level; + long unsigned int description; + char __data[0]; +}; + +struct trace_event_raw_handshake_complete { + struct trace_entry ent; + const void *req; + const void *sk; + int status; + unsigned int netns_ino; + char __data[0]; +}; + +struct trace_event_raw_handshake_error_class { + struct trace_entry ent; + const void *req; + const void *sk; + int err; + unsigned int netns_ino; + char __data[0]; +}; + +struct trace_event_raw_handshake_event_class { + struct trace_entry ent; + const void *req; + const void *sk; + unsigned int netns_ino; + char __data[0]; +}; + +struct trace_event_raw_handshake_fd_class { + struct trace_entry ent; + const void *req; + const void *sk; + int fd; + unsigned int netns_ino; + char __data[0]; +}; + +struct trace_event_raw_hrtimer_class { + struct trace_entry ent; + void *hrtimer; + 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_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_hugepage_set { + struct trace_entry ent; + long unsigned int addr; + long unsigned int pte; + char __data[0]; +}; + +struct trace_event_raw_hugepage_update { + struct trace_entry ent; + long unsigned int addr; + long unsigned int pte; + long unsigned int clr; + long unsigned int set; + char __data[0]; +}; + +struct trace_event_raw_hugetlbfs__inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u16 mode; + loff_t size; + unsigned int nlink; + unsigned int seals; + blkcnt_t blocks; + char __data[0]; +}; + +struct trace_event_raw_hugetlbfs_alloc_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ino_t dir; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_hugetlbfs_fallocate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int mode; + loff_t offset; + loff_t len; + loff_t size; + int ret; + char __data[0]; +}; + +struct trace_event_raw_hugetlbfs_setattr { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int d_len; + u32 __data_loc_d_name; + unsigned int ia_valid; + unsigned int ia_mode; + loff_t old_size; + loff_t ia_size; + char __data[0]; +}; + +struct trace_event_raw_hwmon_attr_class { + struct trace_entry ent; + int index; + u32 __data_loc_attr_name; + long int 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 trace_event_raw_hyperv_mmu_flush_tlb_multi { + struct trace_entry ent; + unsigned int ncpus; + struct mm_struct *mm; + long unsigned int addr; + long unsigned int end; + char __data[0]; +}; + +struct trace_event_raw_hyperv_nested_flush_guest_mapping { + struct trace_entry ent; + u64 as; + int ret; + char __data[0]; +}; + +struct trace_event_raw_hyperv_nested_flush_guest_mapping_range { + struct trace_entry ent; + u64 as; + int ret; + char __data[0]; +}; + +struct trace_event_raw_hyperv_send_ipi_mask { + struct trace_entry ent; + unsigned int ncpus; + int vector; + char __data[0]; +}; + +struct trace_event_raw_hyperv_send_ipi_one { + struct trace_entry ent; + int cpu; + int vector; + char __data[0]; +}; + +struct trace_event_raw_i2c_read { + struct trace_entry ent; + int adapter_nr; + __u16 msg_nr; + __u16 addr; + __u16 flags; + __u16 len; + char __data[0]; +}; + +struct trace_event_raw_i2c_reply { + struct trace_entry ent; + int adapter_nr; + __u16 msg_nr; + __u16 addr; + __u16 flags; + __u16 len; + u32 __data_loc_buf; + char __data[0]; +}; + +struct trace_event_raw_i2c_result { + struct trace_entry ent; + int adapter_nr; + __u16 nr_msgs; + __s16 ret; + char __data[0]; +}; + +struct trace_event_raw_i2c_slave { + struct trace_entry ent; + int adapter_nr; + int ret; + __u16 addr; + __u16 len; + enum i2c_slave_event event; + __u8 buf[1]; + char __data[0]; +}; + +struct 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_icc_set_bw { + struct trace_entry ent; + u32 __data_loc_path_name; + u32 __data_loc_dev; + u32 __data_loc_node_name; + u32 avg_bw; + u32 peak_bw; + u32 node_avg_bw; + u32 node_peak_bw; + char __data[0]; +}; + +struct trace_event_raw_icc_set_bw_end { + struct trace_entry ent; + u32 __data_loc_path_name; + u32 __data_loc_dev; + int ret; + char __data[0]; +}; + +struct trace_event_raw_icmp_send { + struct trace_entry ent; + const void *skbaddr; + int type; + int code; + __u8 saddr[4]; + __u8 daddr[4]; + __u16 sport; + __u16 dport; + short unsigned int ulen; + 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_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]; +}; + +typedef int (*initcall_t)(void); + +struct trace_event_raw_initcall_finish { + struct trace_entry ent; + initcall_t func; + int ret; + char __data[0]; +}; + +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_inode_foreign_history { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t cgroup_ino; + unsigned int history; + char __data[0]; +}; + +struct trace_event_raw_inode_switch_wbs { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t old_cgroup_ino; + ino_t new_cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_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_cqe_overflow { + struct trace_entry ent; + void *ctx; + long long unsigned int user_data; + s32 res; + u32 cflags; + void *ocqe; + 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_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_defer { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int data; + u8 opcode; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_fail_link { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int user_data; + u8 opcode; + void *link; + u32 __data_loc_op_str; + 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_link { + struct trace_entry ent; + void *ctx; + void *req; + void *target_req; + 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 trace_event_raw_io_uring_poll_arm { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int user_data; + u8 opcode; + int mask; + int events; + u32 __data_loc_op_str; + 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; + long long unsigned int flags; + struct io_wq_work *work; + int rw; + u32 __data_loc_op_str; + 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 int ret; + char __data[0]; +}; + +struct trace_event_raw_io_uring_req_failed { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int 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_short_write { + struct trace_entry ent; + void *ctx; + u64 fpos; + u64 wanted; + u64 got; + char __data[0]; +}; + +struct trace_event_raw_io_uring_submit_req { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int user_data; + u8 opcode; + long long unsigned int flags; + bool sq_thread; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_task_add { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int user_data; + u8 opcode; + int mask; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_task_work_run { + struct trace_entry ent; + void *tctx; + unsigned int count; + char __data[0]; +}; + +struct trace_event_raw_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 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_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_dio_complete { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + int ki_flags; + bool aio; + int error; + ssize_t ret; + char __data[0]; +}; + +struct trace_event_raw_iomap_dio_rw_begin { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + size_t count; + size_t done_before; + int ki_flags; + unsigned int dio_flags; + bool aio; + char __data[0]; +}; + +struct trace_event_raw_iomap_iter { + struct trace_entry ent; + dev_t dev; + u64 ino; + loff_t pos; + u64 length; + s64 processed; + unsigned int flags; + const void *ops; + long unsigned int caller; + 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_readpage_class { + struct trace_entry ent; + dev_t dev; + u64 ino; + int nr_pages; + char __data[0]; +}; + +struct trace_event_raw_iomap_writepage_map { + struct trace_entry ent; + dev_t dev; + u64 ino; + u64 pos; + u64 dirty_len; + u64 addr; + loff_t offset; + u64 length; + u16 type; + u16 flags; + dev_t bdev; + char __data[0]; +}; + +struct trace_event_raw_iommu_device_event { + struct trace_entry ent; + u32 __data_loc_device; + 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_raw_iommu_group_event { + struct trace_entry ent; + int gid; + u32 __data_loc_device; + char __data[0]; +}; + +struct trace_event_raw_ipi_handler { + struct trace_entry ent; + const char *reason; + char __data[0]; +}; + +struct trace_event_raw_ipi_raise { + struct trace_entry ent; + u32 __data_loc_target_cpus; + const char *reason; + char __data[0]; +}; + +struct trace_event_raw_ipi_send_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *callback; + char __data[0]; +}; + +struct trace_event_raw_ipi_send_cpumask { + struct trace_entry ent; + u32 __data_loc_cpumask; + void *callsite; + void *callback; + char __data[0]; +}; + +struct trace_event_raw_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_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_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_noise { + struct trace_entry ent; + u64 start; + u64 duration; + u32 __data_loc_desc; + int vector; + char __data[0]; +}; + +struct trace_event_raw_itimer_expire { + struct trace_entry ent; + int which; + pid_t pid; + long long unsigned int now; + char __data[0]; +}; + +struct trace_event_raw_itimer_state { + struct trace_entry ent; + int which; + long long unsigned int expires; + long int value_sec; + long int value_nsec; + long int interval_sec; + long int interval_nsec; + char __data[0]; +}; + +struct trace_event_raw_jbd2_checkpoint { + struct trace_entry ent; + dev_t dev; + int result; + char __data[0]; +}; + +struct trace_event_raw_jbd2_checkpoint_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + long unsigned int chp_time; + __u32 forced_to_close; + __u32 written; + __u32 dropped; + 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_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_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_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_journal_shrink { + struct trace_entry ent; + dev_t dev; + long unsigned int nr_to_scan; + long unsigned int count; + char __data[0]; +}; + +struct trace_event_raw_jbd2_lock_buffer_stall { + struct trace_entry ent; + dev_t dev; + long unsigned int stall_ms; + char __data[0]; +}; + +struct trace_event_raw_jbd2_run_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + long unsigned int wait; + long unsigned int request_delay; + long unsigned int running; + long unsigned int locked; + long unsigned int flushing; + long unsigned int logging; + __u32 handle_count; + __u32 blocks; + __u32 blocks_logged; + 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; + long unsigned int nr_freed; + tid_t next_tid; + char __data[0]; +}; + +struct trace_event_raw_jbd2_shrink_scan_exit { + struct trace_entry ent; + dev_t dev; + long unsigned int nr_to_scan; + long unsigned int nr_shrunk; + long unsigned int count; + 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_update_log_tail { + struct trace_entry ent; + dev_t dev; + tid_t tail_sequence; + tid_t first_tid; + long unsigned int block_nr; + long unsigned int 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_kcompactd_wake_template { + struct trace_entry ent; + int nid; + int order; + enum zone_type highest_zoneidx; + char __data[0]; +}; + +struct trace_event_raw_kfree { + struct trace_entry ent; + long unsigned int call_site; + const void *ptr; + char __data[0]; +}; + +struct trace_event_raw_kfree_skb { + struct trace_entry ent; + void *skbaddr; + void *location; + void *rx_sk; + short unsigned int protocol; + enum skb_drop_reason reason; + char __data[0]; +}; + +struct trace_event_raw_kmalloc { + struct trace_entry ent; + long unsigned int call_site; + const void *ptr; + size_t bytes_req; + size_t bytes_alloc; + long unsigned int gfp_flags; + int node; + char __data[0]; +}; + +struct trace_event_raw_kmem_cache_alloc { + struct trace_entry ent; + long unsigned int call_site; + const void *ptr; + size_t bytes_req; + size_t bytes_alloc; + long unsigned int gfp_flags; + int node; + bool accounted; + char __data[0]; +}; + +struct trace_event_raw_kmem_cache_free { + struct trace_entry ent; + long unsigned int call_site; + const void *ptr; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_ksm_advisor { + struct trace_entry ent; + s64 scan_time; + long unsigned int pages_to_scan; + unsigned int cpu_percent; + char __data[0]; +}; + +struct trace_event_raw_ksm_enter_exit_template { + struct trace_entry ent; + void *mm; + char __data[0]; +}; + +struct trace_event_raw_ksm_merge_one_page { + struct trace_entry ent; + long unsigned int pfn; + void *rmap_item; + void *mm; + int err; + char __data[0]; +}; + +struct trace_event_raw_ksm_merge_with_ksm_page { + struct trace_entry ent; + void *ksm_page; + long unsigned int pfn; + void *rmap_item; + void *mm; + int err; + char __data[0]; +}; + +struct trace_event_raw_ksm_remove_ksm_page { + struct trace_entry ent; + long unsigned int pfn; + char __data[0]; +}; + +struct trace_event_raw_ksm_remove_rmap_item { + struct trace_entry ent; + long unsigned int pfn; + void *rmap_item; + void *mm; + char __data[0]; +}; + +struct trace_event_raw_ksm_scan_template { + struct trace_entry ent; + int seq; + u32 rmap_entries; + 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 trace_event_raw_locks_get_lock_context { + struct trace_entry ent; + long unsigned int i_ino; + dev_t s_dev; + unsigned char type; + struct file_lock_context *ctx; + char __data[0]; +}; + +struct trace_event_raw_ma_op { + struct trace_entry ent; + const char *fn; + long unsigned int min; + long unsigned int max; + long unsigned int index; + long unsigned int last; + void *node; + char __data[0]; +}; + +struct trace_event_raw_ma_read { + struct trace_entry ent; + const char *fn; + long unsigned int min; + long unsigned int max; + long unsigned int index; + long unsigned int last; + void *node; + char __data[0]; +}; + +struct trace_event_raw_ma_write { + struct trace_entry ent; + const char *fn; + long unsigned int min; + long unsigned int max; + long unsigned int index; + long unsigned int last; + long unsigned int piv; + void *val; + void *node; + 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_mark_victim { + struct trace_entry ent; + int pid; + u32 __data_loc_comm; + long unsigned int total_vm; + long unsigned int anon_rss; + long unsigned int file_rss; + long unsigned int shmem_rss; + uid_t uid; + long unsigned int pgtables; + short int oom_score_adj; + char __data[0]; +}; + +struct trace_event_raw_mc_event { + struct trace_entry ent; + unsigned int error_type; + u32 __data_loc_msg; + u32 __data_loc_label; + u16 error_count; + u8 mc_index; + s8 top_layer; + s8 middle_layer; + s8 lower_layer; + long int address; + u8 grain_bits; + long int syndrome; + u32 __data_loc_driver_detail; + char __data[0]; +}; + +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 ppin; + u64 walltime; + u32 cpu; + u32 cpuid; + u32 apicid; + u32 socketid; + u8 cs; + u8 bank; + u8 cpuvendor; + u32 microcode; + u32 __data_loc_v_data; + char __data[0]; +}; + +struct trace_event_raw_mctp_key_acquire { + struct trace_entry ent; + __u8 paddr; + __u8 laddr; + __u8 tag; + char __data[0]; +}; + +struct trace_event_raw_mctp_key_release { + struct trace_entry ent; + __u8 paddr; + __u8 laddr; + __u8 tag; + int reason; + char __data[0]; +}; + +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 xdp_mem_allocator; + +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_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_return_failed { + struct trace_entry ent; + const struct page *page; + u32 mem_id; + u32 mem_type; + char __data[0]; +}; + +struct trace_event_raw_memcg_flush_stats { + struct trace_entry ent; + u64 id; + s64 stats_updates; + bool force; + bool needs_flush; + char __data[0]; +}; + +struct trace_event_raw_memcg_rstat_events { + struct trace_entry ent; + u64 id; + int item; + long unsigned int val; + char __data[0]; +}; + +struct trace_event_raw_memcg_rstat_stats { + struct trace_entry ent; + u64 id; + int item; + int val; + char __data[0]; +}; + +struct trace_event_raw_memory_failure_event { + struct trace_entry ent; + long unsigned int pfn; + int type; + int result; + char __data[0]; +}; + +struct trace_event_raw_migration_pmd { + struct trace_entry ent; + long unsigned int addr; + long unsigned int pmd; + char __data[0]; +}; + +struct trace_event_raw_migration_pte { + struct trace_entry ent; + long unsigned int addr; + long unsigned int pte; + int order; + char __data[0]; +}; + +struct trace_event_raw_mm_alloc_contig_migrate_range_info { + struct trace_entry ent; + long unsigned int start; + long unsigned int end; + long unsigned int nr_migrated; + long unsigned int nr_reclaimed; + long unsigned int nr_mapped; + int migratetype; + char __data[0]; +}; + +struct trace_event_raw_mm_collapse_huge_page { + struct trace_entry ent; + struct mm_struct *mm; + int isolated; + int status; + char __data[0]; +}; + +struct trace_event_raw_mm_collapse_huge_page_isolate { + struct trace_entry ent; + long unsigned int pfn; + int none_or_zero; + int referenced; + bool writable; + int status; + char __data[0]; +}; + +struct trace_event_raw_mm_collapse_huge_page_swapin { + struct trace_entry ent; + struct mm_struct *mm; + int swapped_in; + int referenced; + int ret; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_begin { + struct trace_entry ent; + long unsigned int zone_start; + long unsigned int migrate_pfn; + long unsigned int free_pfn; + long unsigned int zone_end; + bool sync; + 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_end { + struct trace_entry ent; + long unsigned int zone_start; + long unsigned int migrate_pfn; + long unsigned int free_pfn; + long unsigned int zone_end; + bool sync; + int status; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_isolate_template { + struct trace_entry ent; + long unsigned int start_pfn; + long unsigned int end_pfn; + long unsigned int nr_scanned; + long unsigned int nr_taken; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_kcompactd_sleep { + struct trace_entry ent; + int nid; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_migratepages { + struct trace_entry ent; + long unsigned int nr_migrated; + long unsigned int nr_failed; + 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_try_to_compact_pages { + struct trace_entry ent; + int order; + long unsigned int gfp_mask; + int prio; + char __data[0]; +}; + +struct trace_event_raw_mm_filemap_fault { + struct trace_entry ent; + long unsigned int i_ino; + dev_t s_dev; + long unsigned int index; + char __data[0]; +}; + +struct trace_event_raw_mm_filemap_op_page_cache { + struct trace_entry ent; + long unsigned int pfn; + long unsigned int i_ino; + long unsigned int index; + dev_t s_dev; + unsigned char order; + char __data[0]; +}; + +struct trace_event_raw_mm_filemap_op_page_cache_range { + struct trace_entry ent; + long unsigned int i_ino; + dev_t s_dev; + long unsigned int index; + long unsigned int last_index; + char __data[0]; +}; + +struct trace_event_raw_mm_khugepaged_collapse_file { + struct trace_entry ent; + struct mm_struct *mm; + long unsigned int hpfn; + long unsigned int index; + long unsigned int addr; + bool is_shmem; + u32 __data_loc_filename; + int nr; + int result; + char __data[0]; +}; + +struct trace_event_raw_mm_khugepaged_scan_file { + struct trace_entry ent; + struct mm_struct *mm; + long unsigned int pfn; + u32 __data_loc_filename; + int present; + int swap; + int result; + char __data[0]; +}; + +struct trace_event_raw_mm_khugepaged_scan_pmd { + struct trace_entry ent; + struct mm_struct *mm; + long unsigned int pfn; + bool writable; + int referenced; + int none_or_zero; + int status; + int unmapped; + char __data[0]; +}; + +struct trace_event_raw_mm_lru_activate { + struct trace_entry ent; + struct folio *folio; + long unsigned int pfn; + char __data[0]; +}; + +struct trace_event_raw_mm_lru_insertion { + struct trace_entry ent; + struct folio *folio; + long unsigned int pfn; + enum lru_list lru; + long unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_mm_migrate_pages { + struct trace_entry ent; + long unsigned int succeeded; + long unsigned int failed; + long unsigned int thp_succeeded; + long unsigned int thp_failed; + long unsigned int thp_split; + long unsigned int large_folio_split; + enum migrate_mode mode; + int reason; + char __data[0]; +}; + +struct trace_event_raw_mm_migrate_pages_start { + struct trace_entry ent; + enum migrate_mode mode; + int reason; + char __data[0]; +}; + +struct trace_event_raw_mm_page { + struct trace_entry ent; + long unsigned int pfn; + unsigned int order; + int migratetype; + int percpu_refill; + char __data[0]; +}; + +struct trace_event_raw_mm_page_alloc { + struct trace_entry ent; + long unsigned int pfn; + unsigned int order; + long unsigned int gfp_flags; + int migratetype; + char __data[0]; +}; + +struct trace_event_raw_mm_page_alloc_extfrag { + struct trace_entry ent; + long unsigned int pfn; + int alloc_order; + int fallback_order; + int alloc_migratetype; + int fallback_migratetype; + int change_ownership; + char __data[0]; +}; + +struct trace_event_raw_mm_page_free { + struct trace_entry ent; + long unsigned int pfn; + unsigned int order; + char __data[0]; +}; + +struct trace_event_raw_mm_page_free_batched { + struct trace_entry ent; + long unsigned int pfn; + char __data[0]; +}; + +struct trace_event_raw_mm_page_pcpu_drain { + struct trace_entry ent; + long unsigned int pfn; + unsigned int order; + int migratetype; + char __data[0]; +}; + +struct trace_event_raw_mm_shrink_slab_end { + struct trace_entry ent; + struct shrinker *shr; + int nid; + void *shrink; + long int unused_scan; + long int new_scan; + int retval; + long int total_scan; + char __data[0]; +}; + +struct trace_event_raw_mm_shrink_slab_start { + struct trace_entry ent; + struct shrinker *shr; + void *shrink; + int nid; + long int nr_objects_to_shrink; + long unsigned int gfp_flags; + long unsigned int cache_items; + long long unsigned int delta; + long unsigned int total_scan; + int priority; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { + struct trace_entry ent; + int order; + long unsigned int gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_direct_reclaim_end_template { + struct trace_entry ent; + long unsigned int nr_reclaimed; + char __data[0]; +}; + +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_lru_isolate { + struct trace_entry ent; + int highest_zoneidx; + int order; + long unsigned int nr_requested; + long unsigned int nr_scanned; + long unsigned int nr_skipped; + long unsigned int nr_taken; + int lru; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_lru_shrink_active { + struct trace_entry ent; + int nid; + long unsigned int nr_taken; + long unsigned int nr_active; + long unsigned int nr_deactivated; + long unsigned int nr_referenced; + int priority; + int reclaim_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_lru_shrink_inactive { + struct trace_entry ent; + int nid; + long unsigned int nr_scanned; + long unsigned int nr_reclaimed; + long unsigned int nr_dirty; + long unsigned int nr_writeback; + long unsigned int nr_congested; + long unsigned int nr_immediate; + unsigned int nr_activate0; + unsigned int nr_activate1; + long unsigned int nr_ref_keep; + long unsigned int nr_unmap_fail; + 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; + long unsigned int gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_reclaim_pages { + struct trace_entry ent; + int nid; + long unsigned int nr_scanned; + long unsigned int nr_reclaimed; + long unsigned int nr_dirty; + long unsigned int nr_writeback; + long unsigned int nr_congested; + long unsigned int nr_immediate; + unsigned int nr_activate0; + unsigned int nr_activate1; + long unsigned int nr_ref_keep; + long unsigned int nr_unmap_fail; + 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 trace_event_raw_mm_vmscan_wakeup_kswapd { + struct trace_entry ent; + int nid; + int zid; + int order; + long unsigned int gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_write_folio { + struct trace_entry ent; + long unsigned int pfn; + int reclaim_flags; + char __data[0]; +}; + +struct trace_event_raw_mmap_lock { + struct trace_entry ent; + struct mm_struct *mm; + u64 memcg_id; + bool write; + char __data[0]; +}; + +struct trace_event_raw_mmap_lock_acquire_returned { + struct trace_entry ent; + struct mm_struct *mm; + u64 memcg_id; + bool write; + bool success; + char __data[0]; +}; + +struct trace_event_raw_mmc_request_done { + struct trace_entry ent; + u32 cmd_opcode; + int cmd_err; + u32 cmd_resp[4]; + unsigned int cmd_retries; + u32 stop_opcode; + int stop_err; + u32 stop_resp[4]; + unsigned int stop_retries; + u32 sbc_opcode; + int sbc_err; + u32 sbc_resp[4]; + unsigned int sbc_retries; + unsigned int bytes_xfered; + int data_err; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_mmc_request_start { + struct trace_entry ent; + u32 cmd_opcode; + u32 cmd_arg; + unsigned int cmd_flags; + unsigned int cmd_retries; + u32 stop_opcode; + u32 stop_arg; + unsigned int stop_flags; + unsigned int stop_retries; + u32 sbc_opcode; + u32 sbc_arg; + unsigned int sbc_flags; + unsigned int sbc_retries; + unsigned int blocks; + unsigned int blk_addr; + unsigned int blksz; + unsigned int data_flags; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_module_free { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; + +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_refcnt { + struct trace_entry ent; + long unsigned int ip; + int refcnt; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_module_request { + struct trace_entry ent; + long unsigned int ip; + bool wait; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_mon_llc_occupancy_limbo { + struct trace_entry ent; + u32 ctrl_hw_id; + u32 mon_hw_id; + int domain_id; + u64 llc_occupancy_bytes; + 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_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_msr_trace_class { + struct trace_entry ent; + unsigned int msr; + u64 val; + int failed; + 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_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]; + long unsigned int confirmed; + long unsigned int updated; + long unsigned int used; + u32 err; + 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]; + long unsigned int confirmed; + long unsigned int updated; + long unsigned int used; + u8 new_lladdr[32]; + u8 new_state; + u32 update_flags; + u32 pid; + 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_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_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_template { + struct trace_entry ent; + void *skbaddr; + unsigned int len; + u32 __data_loc_name; + 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_netlink_extack { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_raw_nmi_handler { + struct trace_entry ent; + void *handler; + s64 delta_ns; + int handled; + char __data[0]; +}; + +struct trace_event_raw_nmi_noise { + struct trace_entry ent; + u64 start; + u64 duration; + char __data[0]; +}; + +struct trace_event_raw_non_standard_event { + struct trace_entry ent; + char sec_type[16]; + char fru_id[16]; + u32 __data_loc_fru_text; + u8 sev; + u32 len; + u32 __data_loc_buf; + char __data[0]; +}; + +struct trace_event_raw_notifier_info { + struct trace_entry ent; + void *cb; + char __data[0]; +}; + +struct trace_event_raw_oom_score_adj_update { + struct trace_entry ent; + pid_t pid; + char comm[16]; + short int oom_score_adj; + 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_hold { + struct trace_entry ent; + const struct page_pool *pool; + long unsigned int netmem; + u32 hold; + long unsigned int pfn; + char __data[0]; +}; + +struct trace_event_raw_page_pool_state_release { + struct trace_entry ent; + const struct page_pool *pool; + long unsigned int netmem; + u32 release; + long unsigned int 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_percpu_alloc_percpu { + struct trace_entry ent; + long unsigned int call_site; + bool reserved; + bool is_atomic; + size_t size; + size_t align; + void *base_addr; + int off; + void *ptr; + size_t bytes_alloc; + long unsigned int gfp_flags; + 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 trace_event_raw_percpu_free_percpu { + struct trace_entry ent; + void *base_addr; + int off; + void *ptr; + 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_power_domain { + struct trace_entry ent; + u32 __data_loc_name; + u64 state; + u64 cpu_id; + 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_prq_report { + struct trace_entry ent; + u64 dw0; + u64 dw1; + u64 dw2; + u64 dw3; + long unsigned int seq; + u32 __data_loc_iommu; + u32 __data_loc_dev; + u32 __data_loc_buff; + char __data[0]; +}; + +struct trace_event_raw_pseudo_lock_l2 { + struct trace_entry ent; + u64 l2_hits; + u64 l2_miss; + char __data[0]; +}; + +struct trace_event_raw_pseudo_lock_l3 { + struct trace_entry ent; + u64 l3_hits; + u64 l3_miss; + char __data[0]; +}; + +struct trace_event_raw_pseudo_lock_mem_latency { + struct trace_entry ent; + u32 latency; + 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_purge_vmap_area_lazy { + struct trace_entry ent; + long unsigned int start; + long unsigned int end; + unsigned int npurged; + char __data[0]; +}; + +struct trace_event_raw_pwm { + struct trace_entry ent; + unsigned int chipid; + unsigned int hwpwm; + u64 period; + u64 duty_cycle; + enum pwm_polarity polarity; + bool enabled; + int err; + char __data[0]; +}; + +struct trace_event_raw_pwm_read_waveform { + struct trace_entry ent; + unsigned int chipid; + unsigned int hwpwm; + void *wfhw; + int err; + char __data[0]; +}; + +struct trace_event_raw_pwm_round_waveform_fromhw { + struct trace_entry ent; + unsigned int chipid; + unsigned int hwpwm; + const void *wfhw; + u64 wf_period_length_ns; + u64 wf_duty_length_ns; + u64 wf_duty_offset_ns; + int err; + char __data[0]; +}; + +struct trace_event_raw_pwm_round_waveform_tohw { + struct trace_entry ent; + unsigned int chipid; + unsigned int hwpwm; + u64 wf_period_length_ns; + u64 wf_duty_length_ns; + u64 wf_duty_offset_ns; + void *wfhw; + int err; + char __data[0]; +}; + +struct trace_event_raw_pwm_write_waveform { + struct trace_entry ent; + unsigned int chipid; + unsigned int hwpwm; + const void *wfhw; + int err; + 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_qdisc_dequeue { + struct trace_entry ent; + struct Qdisc *qdisc; + const struct netdev_queue *txq; + int packets; + void *skbaddr; + int ifindex; + u32 handle; + u32 parent; + long unsigned int txq_state; + 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_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_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_rcu_stall_warning { + struct trace_entry ent; + const char *rcuname; + const char *msg; + char __data[0]; +}; + +struct trace_event_raw_rcu_utilization { + struct trace_entry ent; + const char *s; + char __data[0]; +}; + +struct trace_event_raw_reclaim_retry_zone { + struct trace_entry ent; + int node; + int zone_idx; + int order; + long unsigned int reclaimable; + long unsigned int available; + long unsigned int min_wmark; + int no_progress_loops; + bool wmark_check; + 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 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_async { + struct trace_entry ent; + u32 __data_loc_name; + 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_regmap_bool { + struct trace_entry ent; + u32 __data_loc_name; + int flag; + 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_reg { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int reg; + unsigned int val; + char __data[0]; +}; + +struct trace_event_raw_regulator_basic { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_regulator_range { + struct trace_entry ent; + u32 __data_loc_name; + int min; + int max; + char __data[0]; +}; + +struct trace_event_raw_regulator_value { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int val; + char __data[0]; +}; + +struct trace_event_raw_rpm_internal { + struct trace_entry ent; + u32 __data_loc_name; + int flags; + int usage_count; + int disable_depth; + int runtime_auto; + int request_pending; + int irq_safe; + int child_count; + char __data[0]; +}; + +struct trace_event_raw_rpm_return_int { + struct trace_entry ent; + u32 __data_loc_name; + long unsigned int ip; + int ret; + char __data[0]; +}; + +struct trace_event_raw_rpm_status { + struct trace_entry ent; + u32 __data_loc_name; + int status; + char __data[0]; +}; + +struct trace_event_raw_rseq_ip_fixup { + struct trace_entry ent; + long unsigned int regs_ip; + long unsigned int start_ip; + long unsigned int post_commit_offset; + long unsigned int abort_ip; + char __data[0]; +}; + +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_rss_stat { + struct trace_entry ent; + unsigned int mm_id; + unsigned int curr; + int member; + long int size; + 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_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_offset_class { + struct trace_entry ent; + long int offset; + int err; + char __data[0]; +}; + +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_timer_class { + struct trace_entry ent; + struct rtc_timer *timer; + ktime_t expires; + ktime_t period; + char __data[0]; +}; + +struct trace_event_raw_sample_threshold { + struct trace_entry ent; + u64 start; + u64 duration; + u64 interference; + char __data[0]; +}; + +struct trace_event_raw_sched_ext_dump { + struct trace_entry ent; + u32 __data_loc_line; + char __data[0]; +}; + +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_execute_end { + struct trace_entry ent; + void *work; + void *function; + 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_queue_work { + struct trace_entry ent; + void *work; + void *function; + void *worker; + 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_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_pi_setprio { + struct trace_entry ent; + char comm[16]; + pid_t pid; + int oldprio; + int newprio; + char __data[0]; +}; + +struct trace_event_raw_sched_prepare_exec { + struct trace_entry ent; + u32 __data_loc_interp; + u32 __data_loc_filename; + pid_t pid; + u32 __data_loc_comm; + 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_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_hang { + struct trace_entry ent; + char comm[16]; + pid_t pid; + 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_skip_vma_numa { + struct trace_entry ent; + long unsigned int numa_scan_offset; + long unsigned int vm_start; + long unsigned int vm_end; + enum numa_vmaskip_reason reason; + char __data[0]; +}; + +struct trace_event_raw_sched_stat_runtime { + struct trace_entry ent; + char comm[16]; + pid_t pid; + u64 runtime; + char __data[0]; +}; + +struct trace_event_raw_sched_stat_template { + struct trace_entry ent; + char comm[16]; + pid_t pid; + u64 delay; + 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 int prev_state; + char next_comm[16]; + pid_t next_pid; + int next_prio; + char __data[0]; +}; + +struct trace_event_raw_sched_wake_idle_without_ipi { + struct trace_entry ent; + int cpu; + char __data[0]; +}; + +struct trace_event_raw_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_scsi_cmd_done_timeout_template { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + int result; + unsigned int opcode; + unsigned int cmd_len; + int driver_tag; + int scheduler_tag; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + u8 sense_key; + u8 asc; + u8 ascq; + char __data[0]; +}; + +struct trace_event_raw_scsi_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_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_eh_wakeup { + struct trace_entry ent; + unsigned int host_no; + char __data[0]; +}; + +struct trace_event_raw_scsi_prepare_zone_append { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + sector_t lba; + unsigned int wp_offset; + char __data[0]; +}; + +struct trace_event_raw_scsi_zone_wp_update { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + sector_t rq_sector; + unsigned int wp_offset; + unsigned int good_bytes; + char __data[0]; +}; + +struct trace_event_raw_selinux_audited { + struct trace_entry ent; + u32 requested; + u32 denied; + u32 audited; + int result; + u32 __data_loc_scontext; + u32 __data_loc_tcontext; + u32 __data_loc_tclass; + char __data[0]; +}; + +struct trace_event_raw_signal_deliver { + struct trace_entry ent; + int sig; + int errno; + int code; + long unsigned int sa_handler; + long unsigned int sa_flags; + char __data[0]; +}; + +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_sk_data_ready { + struct trace_entry ent; + const void *skaddr; + __u16 family; + __u16 protocol; + long unsigned int ip; + 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_skip_task_reaping { + struct trace_entry ent; + int pid; + 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 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_sock_exceed_buf_limit { + struct trace_entry ent; + char name[32]; + long int sysctl_mem[3]; + long int 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_sock_msg_length { + struct trace_entry ent; + void *sk; + __u16 family; + __u16 protocol; + int ret; + int flags; + 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_softirq { + struct trace_entry ent; + unsigned int vec; + char __data[0]; +}; + +struct trace_event_raw_softirq_noise { + struct trace_entry ent; + u64 start; + u64 duration; + int vector; + char __data[0]; +}; + +struct trace_event_raw_spi_controller { + struct trace_entry ent; + int bus_num; + char __data[0]; +}; + +struct trace_event_raw_spi_message { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_message *msg; + char __data[0]; +}; + +struct trace_event_raw_spi_message_done { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_message *msg; + unsigned int frame; + unsigned int actual; + char __data[0]; +}; + +struct trace_event_raw_spi_set_cs { + struct trace_entry ent; + int bus_num; + int chip_select; + long unsigned int mode; + bool enable; + char __data[0]; +}; + +struct trace_event_raw_spi_setup { + struct trace_entry ent; + int bus_num; + int chip_select; + long unsigned int mode; + unsigned int bits_per_word; + unsigned int max_speed_hz; + int status; + char __data[0]; +}; + +struct trace_event_raw_spi_transfer { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_transfer *xfer; + int len; + u32 __data_loc_rx_buf; + u32 __data_loc_tx_buf; + char __data[0]; +}; + +struct trace_event_raw_start_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; +}; + +struct trace_event_raw_subflow_check_data_avail { + struct trace_entry ent; + u8 status; + const void *skb; + 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_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_raw_sync_timeline { + struct trace_entry ent; + u32 __data_loc_name; + u32 value; + char __data[0]; +}; + +struct trace_event_raw_sys_enter { + struct trace_entry ent; + long int id; + long unsigned int args[6]; + char __data[0]; +}; + +struct trace_event_raw_sys_exit { + struct trace_entry ent; + long int id; + long int ret; + char __data[0]; +}; + +struct trace_event_raw_task_newtask { + struct trace_entry ent; + pid_t pid; + char comm[16]; + long unsigned int clone_flags; + short int oom_score_adj; + char __data[0]; +}; + +struct trace_event_raw_task_prctl_unknown { + struct trace_entry ent; + int option; + long unsigned int arg2; + long unsigned int arg3; + long unsigned int arg4; + long unsigned int arg5; + char __data[0]; +}; + +struct trace_event_raw_task_rename { + struct trace_entry ent; + char oldcomm[16]; + char newcomm[16]; + short int oom_score_adj; + char __data[0]; +}; + +struct trace_event_raw_tasklet { + struct trace_entry ent; + void *tasklet; + void *func; + char __data[0]; +}; + +struct trace_event_raw_tcp_ao_event { + struct trace_entry ent; + __u64 net_cookie; + const void *skbaddr; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + int l3index; + __u16 sport; + __u16 dport; + __u16 family; + bool fin; + bool syn; + bool rst; + bool psh; + bool ack; + __u8 keyid; + __u8 rnext; + __u8 maclen; + char __data[0]; +}; + +struct trace_event_raw_tcp_ao_event_sk { + struct trace_entry ent; + __u64 net_cookie; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + __u16 sport; + __u16 dport; + __u16 family; + __u8 keyid; + __u8 rnext; + char __data[0]; +}; + +struct trace_event_raw_tcp_ao_event_sne { + struct trace_entry ent; + __u64 net_cookie; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + __u16 sport; + __u16 dport; + __u16 family; + __u32 new_sne; + char __data[0]; +}; + +struct trace_event_raw_tcp_cong_state_set { + struct trace_entry ent; + const void *skaddr; + __u16 sport; + __u16 dport; + __u16 family; + __u8 saddr[4]; + __u8 daddr[4]; + __u8 saddr_v6[16]; + __u8 daddr_v6[16]; + __u8 cong_state; + char __data[0]; +}; + +struct trace_event_raw_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_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_skb { + struct trace_entry ent; + const void *skbaddr; + __u8 saddr[28]; + __u8 daddr[28]; + char __data[0]; +}; + +struct trace_event_raw_tcp_hash_event { + struct trace_entry ent; + __u64 net_cookie; + const void *skbaddr; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + int l3index; + __u16 sport; + __u16 dport; + __u16 family; + bool fin; + bool syn; + bool rst; + bool psh; + bool ack; + char __data[0]; +}; + +struct trace_event_raw_tcp_probe { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + __u16 sport; + __u16 dport; + __u16 family; + __u32 mark; + __u16 data_len; + __u32 snd_nxt; + __u32 snd_una; + __u32 snd_cwnd; + __u32 ssthresh; + __u32 snd_wnd; + __u32 srtt; + __u32 rcv_wnd; + __u64 sock_cookie; + const void *skbaddr; + const void *skaddr; + char __data[0]; +}; + +struct trace_event_raw_tcp_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_send_reset { + struct trace_entry ent; + const void *skbaddr; + const void *skaddr; + int state; + enum sk_rst_reason reason; + __u8 saddr[28]; + __u8 daddr[28]; + char __data[0]; +}; + +struct trace_event_raw_test_pages_isolated { + struct trace_entry ent; + long unsigned int start_pfn; + long unsigned int end_pfn; + long unsigned int fin_pfn; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_actor { + struct trace_entry ent; + int tz_id; + int actor_id; + u32 req_power; + u32 granted_power; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_allocator { + struct trace_entry ent; + int tz_id; + u32 total_req_power; + u32 total_granted_power; + size_t num_actors; + u32 power_range; + u32 max_allocatable_power; + int current_temp; + s32 delta_temp; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_allocator_pid { + struct trace_entry ent; + int tz_id; + s32 err; + s32 err_integral; + s64 p; + s64 i; + s64 d; + s32 output; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_devfreq_get_power { + struct trace_entry ent; + u32 __data_loc_type; + long unsigned int freq; + u32 busy_time; + u32 total_time; + u32 power; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_devfreq_limit { + struct trace_entry ent; + u32 __data_loc_type; + unsigned int freq; + long unsigned int cdev_state; + u32 power; + char __data[0]; +}; + +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_thermal_zone_trip { + struct trace_entry ent; + u32 __data_loc_thermal_zone; + int id; + int trip; + enum thermal_trip_type trip_type; + char __data[0]; +}; + +struct trace_event_raw_thread_noise { + struct trace_entry ent; + char comm[16]; + u64 start; + u64 duration; + pid_t pid; + char __data[0]; +}; + +struct trace_event_raw_tick_stop { + struct trace_entry ent; + int success; + int dependency; + char __data[0]; +}; + +struct trace_event_raw_timer_base_idle { + struct trace_entry ent; + bool is_idle; + unsigned int cpu; + char __data[0]; +}; + +struct trace_event_raw_timer_class { + struct trace_entry ent; + void *timer; + char __data[0]; +}; + +struct trace_event_raw_timer_expire_entry { + struct trace_entry ent; + void *timer; + long unsigned int now; + void *function; + long unsigned int baseclk; + char __data[0]; +}; + +struct trace_event_raw_timer_start { + struct trace_entry ent; + void *timer; + void *function; + long unsigned int expires; + long unsigned int bucket_expiry; + long unsigned int now; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_tlb_flush { + struct trace_entry ent; + int reason; + long unsigned int pages; + char __data[0]; +}; + +struct trace_event_raw_tls_contenttype { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + long unsigned int type; + char __data[0]; +}; + +struct trace_event_raw_tmigr_connect_child_parent { + struct trace_entry ent; + void *child; + void *parent; + unsigned int lvl; + unsigned int numa_node; + unsigned int num_children; + u32 groupmask; + char __data[0]; +}; + +struct trace_event_raw_tmigr_connect_cpu_parent { + struct trace_entry ent; + void *parent; + unsigned int cpu; + unsigned int lvl; + unsigned int numa_node; + unsigned int num_children; + u32 groupmask; + char __data[0]; +}; + +struct trace_event_raw_tmigr_cpugroup { + struct trace_entry ent; + u64 wakeup; + void *parent; + unsigned int cpu; + char __data[0]; +}; + +struct trace_event_raw_tmigr_group_and_cpu { + struct trace_entry ent; + void *group; + void *parent; + unsigned int lvl; + unsigned int numa_node; + u32 childmask; + u8 active; + u8 migrator; + char __data[0]; +}; + +struct trace_event_raw_tmigr_group_set { + struct trace_entry ent; + void *group; + unsigned int lvl; + unsigned int numa_node; + char __data[0]; +}; + +struct trace_event_raw_tmigr_handle_remote { + struct trace_entry ent; + void *group; + unsigned int lvl; + char __data[0]; +}; + +struct trace_event_raw_tmigr_idle { + struct trace_entry ent; + u64 nextevt; + u64 wakeup; + void *parent; + unsigned int cpu; + char __data[0]; +}; + +struct trace_event_raw_tmigr_update_events { + struct trace_entry ent; + void *child; + void *group; + u64 nextevt; + u64 group_next_expiry; + u64 child_evt_expiry; + unsigned int group_lvl; + unsigned int child_evtcpu; + u8 child_active; + u8 group_active; + char __data[0]; +}; + +struct trace_event_raw_track_foreign_dirty { + struct trace_entry ent; + char name[32]; + u64 bdi_id; + ino_t ino; + unsigned int memcg_id; + ino_t cgroup_ino; + ino_t page_cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_udp_fail_queue_rcv_skb { + struct trace_entry ent; + int rc; + __u16 sport; + __u16 dport; + __u16 family; + __u8 saddr[28]; + __u8 daddr[28]; + 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_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_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_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_free_moved { + struct trace_entry ent; + unsigned int irq; + unsigned int cpu; + unsigned int vector; + bool is_managed; + 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_setup { + struct trace_entry ent; + unsigned int irq; + bool is_legacy; + int ret; + 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_vm_unmapped_area { + struct trace_entry ent; + long unsigned int addr; + long unsigned int total_vm; + long unsigned int flags; + long unsigned int length; + long unsigned int low_limit; + long unsigned int high_limit; + long unsigned int align_mask; + long unsigned int align_offset; + char __data[0]; +}; + +struct trace_event_raw_vma_mas_szero { + struct trace_entry ent; + struct maple_tree *mt; + long unsigned int start; + long unsigned int end; + char __data[0]; +}; + +struct trace_event_raw_vma_store { + struct trace_entry ent; + struct maple_tree *mt; + struct vm_area_struct *vma; + long unsigned int vm_start; + long unsigned int vm_end; + char __data[0]; +}; + +struct trace_event_raw_wake_reaper { + struct trace_entry ent; + int pid; + 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_watchdog_set_timeout { + struct trace_entry ent; + int id; + unsigned int timeout; + int err; + char __data[0]; +}; + +struct trace_event_raw_watchdog_template { + struct trace_entry ent; + int id; + int err; + char __data[0]; +}; + +struct trace_event_raw_wbc_class { + struct trace_entry ent; + char name[32]; + long int nr_to_write; + long int pages_skipped; + int sync_mode; + int for_kupdate; + int for_background; + int for_reclaim; + int range_cyclic; + long int range_start; + long int range_end; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_wbt_lat { + struct trace_entry ent; + char name[32]; + long unsigned int lat; + char __data[0]; +}; + +struct trace_event_raw_wbt_stat { + struct trace_entry ent; + char name[32]; + s64 rmean; + u64 rmin; + u64 rmax; + s64 rnr_samples; + s64 rtime; + s64 wmean; + u64 wmin; + u64 wmax; + s64 wnr_samples; + s64 wtime; + char __data[0]; +}; + +struct trace_event_raw_wbt_step { + struct trace_entry ent; + char name[32]; + const char *msg; + int step; + long unsigned int window; + unsigned int bg; + unsigned int normal; + unsigned int max; + char __data[0]; +}; + +struct trace_event_raw_wbt_timer { + struct trace_entry ent; + char name[32]; + unsigned int status; + int step; + unsigned int inflight; + char __data[0]; +}; + +struct trace_event_raw_workqueue_activate_work { + 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 trace_event_raw_workqueue_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; + +struct trace_event_raw_workqueue_queue_work { + struct trace_entry ent; + void *work; + void *function; + u32 __data_loc_workqueue; + int req_cpu; + int cpu; + char __data[0]; +}; + +struct trace_event_raw_writeback_bdi_register { + struct trace_entry ent; + char name[32]; + 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_dirty_inode_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + long unsigned int state; + long unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_writeback_folio_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + long unsigned int index; + char __data[0]; +}; + +struct trace_event_raw_writeback_inode_template { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int state; + __u16 mode; + long unsigned int dirtied_when; + char __data[0]; +}; + +struct trace_event_raw_writeback_pages_written { + struct trace_entry ent; + long int pages; + char __data[0]; +}; + +struct trace_event_raw_writeback_queue_io { + struct trace_entry ent; + char name[32]; + long unsigned int older; + long int age; + int moved; + int reason; + 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; + long unsigned int state; + long unsigned int 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; + long unsigned int state; + long unsigned int dirtied_when; + long unsigned int writeback_index; + long int nr_to_write; + long unsigned int wrote; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_work_class { + struct trace_entry ent; + char name[32]; + long int 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_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_x86_exceptions { + struct trace_entry ent; + long unsigned int address; + long unsigned int ip; + long unsigned int error_code; + char __data[0]; +}; + +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_raw_x86_irq_vector { + struct trace_entry ent; + int vector; + 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 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_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_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_xdp_exception { + struct trace_entry ent; + int prog_id; + u32 act; + int ifindex; + char __data[0]; +}; + +struct trace_event_raw_xdp_redirect_template { + struct trace_entry ent; + int prog_id; + u32 act; + int ifindex; + int err; + int to_ifindex; + u32 map_id; + int map_index; + char __data[0]; +}; + +struct trace_event_raw_xen_cpu_load_idt { + struct trace_entry ent; + long unsigned int addr; + char __data[0]; +}; + +struct trace_event_raw_xen_cpu_set_ldt { + struct trace_entry ent; + const void *addr; + unsigned int entries; + char __data[0]; +}; + +struct trace_event_raw_xen_cpu_write_gdt_entry { + struct trace_entry ent; + u64 desc; + struct desc_struct *dt; + int entrynum; + int type; + char __data[0]; +}; + +struct trace_event_raw_xen_cpu_write_idt_entry { + struct trace_entry ent; + gate_desc *dt; + int entrynum; + char __data[0]; +}; + +struct trace_event_raw_xen_cpu_write_ldt_entry { + struct trace_entry ent; + struct desc_struct *dt; + int entrynum; + u64 desc; + char __data[0]; +}; + +struct trace_event_raw_xen_mc__batch { + struct trace_entry ent; + enum xen_lazy_mode mode; + char __data[0]; +}; + +typedef void (*xen_mc_callback_fn_t)(void *); + +struct trace_event_raw_xen_mc_callback { + struct trace_entry ent; + xen_mc_callback_fn_t fn; + void *data; + char __data[0]; +}; + +struct trace_event_raw_xen_mc_entry { + struct trace_entry ent; + unsigned int op; + unsigned int nargs; + long unsigned int args[6]; + char __data[0]; +}; + +struct trace_event_raw_xen_mc_entry_alloc { + struct trace_entry ent; + size_t args; + char __data[0]; +}; + +struct trace_event_raw_xen_mc_extend_args { + struct trace_entry ent; + unsigned int op; + size_t args; + enum xen_mc_extend_args res; + char __data[0]; +}; + +struct trace_event_raw_xen_mc_flush { + struct trace_entry ent; + unsigned int mcidx; + unsigned int argidx; + unsigned int cbidx; + char __data[0]; +}; + +struct trace_event_raw_xen_mc_flush_reason { + struct trace_entry ent; + enum xen_mc_flush_reason reason; + char __data[0]; +}; + +struct trace_event_raw_xen_mmu__set_pte { + struct trace_entry ent; + pte_t *ptep; + pteval_t pteval; + char __data[0]; +}; + +struct trace_event_raw_xen_mmu_alloc_ptpage { + struct trace_entry ent; + struct mm_struct *mm; + long unsigned int pfn; + unsigned int level; + bool pinned; + char __data[0]; +}; + +struct trace_event_raw_xen_mmu_flush_tlb_multi { + struct trace_entry ent; + unsigned int ncpus; + struct mm_struct *mm; + long unsigned int addr; + long unsigned int end; + char __data[0]; +}; + +struct trace_event_raw_xen_mmu_flush_tlb_one_user { + struct trace_entry ent; + long unsigned int addr; + char __data[0]; +}; + +struct trace_event_raw_xen_mmu_pgd { + struct trace_entry ent; + struct mm_struct *mm; + pgd_t *pgd; + char __data[0]; +}; + +struct trace_event_raw_xen_mmu_ptep_modify_prot { + struct trace_entry ent; + struct mm_struct *mm; + long unsigned int addr; + pte_t *ptep; + pteval_t pteval; + char __data[0]; +}; + +struct trace_event_raw_xen_mmu_release_ptpage { + struct trace_entry ent; + long unsigned int pfn; + unsigned int level; + bool pinned; + char __data[0]; +}; + +struct trace_event_raw_xen_mmu_set_p4d { + struct trace_entry ent; + p4d_t *p4dp; + p4d_t *user_p4dp; + p4dval_t p4dval; + char __data[0]; +}; + +struct trace_event_raw_xen_mmu_set_pmd { + struct trace_entry ent; + pmd_t *pmdp; + pmdval_t pmdval; + char __data[0]; +}; + +struct trace_event_raw_xen_mmu_set_pud { + struct trace_entry ent; + pud_t *pudp; + pudval_t pudval; + char __data[0]; +}; + +struct trace_event_raw_xen_mmu_write_cr3 { + struct trace_entry ent; + bool kernel; + long unsigned int cr3; + 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_raw_xhci_log_ctrl_ctx { + struct trace_entry ent; + u32 drop; + u32 add; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ctx { + struct trace_entry ent; + int ctx_64; + unsigned int ctx_type; + dma_addr_t ctx_dma; + u8 *ctx_va; + unsigned int ctx_ep_num; + u32 __data_loc_ctx_data; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_doorbell { + struct trace_entry ent; + u32 slot; + u32 doorbell; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ep_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u64 deq; + u32 tx_info; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_free_virt_dev { + struct trace_entry ent; + void *vdev; + long long unsigned int out_ctx; + long long unsigned int in_ctx; + int slot_id; + u16 current_mel; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_msg { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_portsc { + struct trace_entry ent; + u32 busnum; + u32 portnum; + u32 portsc; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ring { + struct trace_entry ent; + u32 type; + void *ring; + dma_addr_t enq; + dma_addr_t deq; + unsigned int num_segs; + unsigned int stream_id; + unsigned int cycle_state; + unsigned int bounce_buf_len; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_slot_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u32 tt_info; + u32 state; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_stream_ctx { + struct trace_entry ent; + unsigned int stream_id; + u64 stream_ring; + dma_addr_t ctx_array_dma; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_trb { + struct trace_entry ent; + dma_addr_t dma; + u32 type; + u32 field0; + u32 field1; + u32 field2; + u32 field3; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_urb { + struct trace_entry ent; + u32 __data_loc_devname; + 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_virt_dev { + struct trace_entry ent; + void *vdev; + long long unsigned int out_ctx; + long long unsigned int in_ctx; + int devnum; + int state; + int speed; + u8 portnum; + u8 level; + int slot_id; + char __data[0]; +}; + +struct trace_export { + struct trace_export *next; + void (*write)(struct trace_export *, const void *, unsigned int); + int flags; +}; + +struct trace_fprobe { + struct dyn_event devent; + struct fprobe fp; + const char *symbol; + struct tracepoint *tpoint; + struct module *mod; + struct trace_probe tp; +}; + +struct trace_func_repeats { + long unsigned int ip; + long unsigned int parent_ip; + long unsigned int count; + u64 ts_last_call; +}; + +struct trace_kprobe { + struct dyn_event devent; + struct kretprobe rp; + long unsigned int *nhit; + const char *symbol; + struct trace_probe tp; +}; + +struct trace_mark { + long long unsigned int val; + char sym; +}; + +struct trace_min_max_param { + struct mutex *lock; + u64 *val; + u64 *min; + u64 *max; +}; + +struct trace_mmiotrace_map { + struct trace_entry ent; + struct mmiotrace_map map; +}; + +struct trace_mmiotrace_rw { + struct trace_entry ent; + struct mmiotrace_rw rw; +}; + +struct tracer_opt; + +struct tracer_flags; + +struct trace_option_dentry { + struct tracer_opt *opt; + struct tracer_flags *flags; + struct trace_array *tr; + struct dentry *entry; +}; + +struct trace_options { + struct tracer *tracer; + struct trace_option_dentry *topts; +}; + +union upper_chunk; + +struct trace_pid_list { + raw_spinlock_t lock; + struct irq_work refill_irqwork; + union upper_chunk *upper[256]; + union upper_chunk *upper_list; + union lower_chunk *lower_list; + int free_upper_chunks; + int free_lower_chunks; +}; + +struct trace_print_flags { + long unsigned int mask; + const char *name; +}; + +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 trace_probe_log { + const char *subsystem; + const char **argv; + int argc; + int index; +}; + +struct trace_stack { + int stack_size; + int nr_entries; + long unsigned int calls[256]; +}; + +struct trace_subsystem_dir { + struct list_head list; + struct event_subsystem *subsystem; + struct trace_array *tr; + struct eventfs_inode *ei; + int ref_count; + int nr_events; +}; + +struct trace_uprobe { + struct dyn_event devent; + struct uprobe_consumer consumer; + struct path path; + char *filename; + struct uprobe *uprobe; + long unsigned int offset; + long unsigned int ref_ctr_offset; + long unsigned int *nhits; + struct trace_probe tp; +}; + +struct tracefs_dir_ops { + int (*mkdir)(const char *); + int (*rmdir)(const char *); +}; + +struct tracefs_fs_info { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; +}; + +struct tracefs_inode { + struct inode vfs_inode; + struct list_head list; + long unsigned int flags; + void *private; +}; + +struct tracepoint_ext; + +struct tracepoint { + const char *name; + struct static_key_false key; + struct static_call_key *static_call_key; + void *static_call_tramp; + void *iterator; + void *probestub; + struct tracepoint_func *funcs; + struct tracepoint_ext *ext; +}; + +struct tracepoint_ext { + int (*regfunc)(void); + void (*unregfunc)(void); + unsigned int faultable: 1; +}; + +struct traceprobe_parse_context { + struct trace_event_call *event; + const char *funcname; + const struct btf_type *proto; + const struct btf_param *params; + s32 nr_params; + struct btf *btf; + const struct btf_type *last_type; + u32 last_bitoffs; + u32 last_bitsize; + struct trace_probe *tp; + unsigned int flags; + int offset; +}; + +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 *, 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 use_max_tr; + bool noboot; +}; + +struct tracer_flags { + u32 val; + struct tracer_opt *opts; + struct tracer *trace; +}; + +struct tracer_opt { + const char *name; + u32 bit; +}; + +struct tracing_log_err { + struct list_head list; + struct err_info info; + char loc[128]; + char *cmd; +}; + +typedef int (*tracing_map_cmp_fn_t)(void *, void *); + +struct tracing_map_field { + tracing_map_cmp_fn_t cmp_fn; + union { + atomic64_t sum; + unsigned int offset; + }; +}; + +struct tracing_map_array; + +struct tracing_map_ops; + +struct tracing_map { + unsigned int key_size; + unsigned int map_bits; + unsigned int map_size; + unsigned int max_elts; + atomic_t next_elt; + struct tracing_map_array *elts; + struct tracing_map_array *map; + const struct tracing_map_ops *ops; + void *private_data; + struct tracing_map_field fields[6]; + unsigned int n_fields; + int key_idx[3]; + unsigned int n_keys; + struct tracing_map_sort_key sort_key; + unsigned int n_vars; + atomic64_t hits; + atomic64_t drops; +}; + +struct tracing_map_array { + unsigned int entries_per_page; + unsigned int entry_size_shift; + unsigned int entry_shift; + unsigned int entry_mask; + unsigned int n_pages; + void **pages; +}; + +struct tracing_map_elt { + struct tracing_map *map; + struct tracing_map_field *fields; + atomic64_t *vars; + bool *var_set; + void *key; + void *private_data; +}; + +struct tracing_map_entry { + u32 key; + struct tracing_map_elt *val; +}; + +struct tracing_map_ops { + int (*elt_alloc)(struct tracing_map_elt *); + void (*elt_free)(struct tracing_map_elt *); + void (*elt_clear)(struct tracing_map_elt *); + void (*elt_init)(struct tracing_map_elt *); +}; + +struct tracing_map_sort_entry { + void *key; + struct tracing_map_elt *elt; + bool elt_copied; + bool dup; +}; + +struct track { + long unsigned int addr; + depot_stack_handle_t handle; + int cpu; + int pid; + long unsigned int when; +}; + +struct track_data { + u64 track_val; + bool updated; + unsigned int key_len; + void *key; + struct tracing_map_elt elt; + struct action_data *action_data; + struct hist_trigger_data *hist_data; +}; + +struct trampoline_header { + u64 start; + u64 efer; + u32 cr4; + u32 flags; + u32 lock; +}; + +struct transaction_chp_stats_s { + long unsigned int cs_chp_time; + __u32 cs_forced_to_close; + __u32 cs_written; + __u32 cs_dropped; +}; + +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; + long unsigned int t_log_start; + int t_nr_buffers; + struct journal_head *t_reserved_list; + struct journal_head *t_buffers; + struct journal_head *t_forget; + struct journal_head *t_checkpoint_list; + struct journal_head *t_shadow_list; + struct list_head t_inode_list; + long unsigned int t_max_wait; + long unsigned int t_start; + long unsigned int 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; + long unsigned int 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 trap_array_entry { + void (*orig)(void); + void (*xen)(void); + bool ist_okay; +}; + +struct trap_info { + uint8_t vector; + uint8_t flags; + uint16_t cs; + long unsigned int address; +}; + +struct trap_reason { + long unsigned int addr; + long unsigned int ip; + enum reason_type type; + int active_traces; +}; + +struct trc_stall_chk_rdr { + int nesting; + int ipi_to_cpu; + u8 needqs; +}; + +typedef struct tree_desc_s tree_desc; + +struct tree_descr { + const char *name; + const struct file_operations *ops; + int mode; +}; + +struct trie_use_stats; + +struct trie { + struct key_vector kv[1]; + struct trie_use_stats *stats; +}; + +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 trie_use_stats { + unsigned int gets; + unsigned int backtrack; + unsigned int semantic_match_passed; + unsigned int semantic_match_miss; + unsigned int null_node_hit; + unsigned int resize_node_skipped; +}; + +struct trusted_key_payload; + +struct trusted_key_ops { + unsigned char migratable; + int (*init)(void); + int (*seal)(struct trusted_key_payload *, char *); + int (*unseal)(struct trusted_key_payload *, char *); + int (*get_random)(unsigned char *, size_t); + void (*exit)(void); +}; + +struct trusted_key_options { + uint16_t keytype; + uint32_t keyhandle; + unsigned char keyauth[20]; + uint32_t blobauth_len; + unsigned char blobauth[20]; + uint32_t pcrinfo_len; + unsigned char pcrinfo[64]; + int pcrlock; + uint32_t hash; + uint32_t policydigest_len; + unsigned char policydigest[64]; + uint32_t policyhandle; +}; + +struct trusted_key_payload { + struct callback_head rcu; + unsigned int key_len; + unsigned int blob_len; + unsigned char migratable; + unsigned char old_format; + unsigned char key[129]; + unsigned char blob[512]; +}; + +struct trusted_key_source { + char *name; + struct trusted_key_ops *ops; +}; + +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_dmi_data { + struct efi_embedded_fw_desc embedded_fw; + const char *acpi_name; + const struct property_entry *properties; +}; + +struct ts_linear_state { + unsigned int len; + const void *data; +}; + +struct ts_ops { + const char *name; + struct ts_config * (*init)(const void *, unsigned int, gfp_t, int); + unsigned int (*find)(struct ts_config *, struct ts_state *); + void (*destroy)(struct ts_config *); + void * (*get_pattern)(struct ts_config *); + unsigned int (*get_pattern_len)(struct ts_config *); + struct module *owner; + struct list_head list; +}; + +struct ts_state { + unsigned int offset; + char cb[48]; +}; + +struct tsc_adjust { + s64 bootval; + s64 adjusted; + long unsigned int nextcheck; + bool warned; +}; + +struct tsconfig_reply_data { + struct ethnl_reply_data base; + struct hwtstamp_provider_desc hwprov_desc; + struct { + u32 tx_type; + u32 rx_filter; + u32 flags; + } hwtst_config; +}; + +struct tsconfig_req_info { + struct ethnl_req_info base; +}; + +struct tsinfo_reply_data { + struct ethnl_reply_data base; + struct kernel_ethtool_ts_info ts_info; + struct ethtool_ts_stats stats; +}; + +struct tsinfo_req_info { + struct ethnl_req_info base; + struct hwtstamp_provider_desc hwprov_desc; +}; + +struct tso_t { + int next_frag_idx; + int size; + void *data; + u16 ip_id; + u8 tlen; + bool ipv6; + u32 tcp_seq; +}; + +struct tsq_tasklet { + struct tasklet_struct tasklet; + struct list_head head; +}; + +struct tty_audit_buf { + struct mutex mutex; + dev_t dev; + bool icanon; + size_t valid; + u8 *data; +}; + +struct tty_operations; + +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 int type; + short int subtype; + struct ktermios init_termios; + long unsigned int 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 tty_file_private { + struct tty_struct *tty; + struct file *file; + struct list_head list; +}; + +struct tty_ldisc_ops; + +struct tty_ldisc { + struct tty_ldisc_ops *ops; + struct tty_struct *tty; +}; + +struct tty_ldisc_ops { + char *name; + int num; + int (*open)(struct tty_struct *); + void (*close)(struct tty_struct *); + void (*flush_buffer)(struct tty_struct *); + ssize_t (*read)(struct tty_struct *, struct file *, u8 *, size_t, void **, long unsigned int); + ssize_t (*write)(struct tty_struct *, struct file *, const u8 *, size_t); + int (*ioctl)(struct tty_struct *, unsigned int, long unsigned int); + int (*compat_ioctl)(struct tty_struct *, unsigned int, long unsigned int); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + __poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *); + void (*hangup)(struct tty_struct *); + void (*receive_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_struct *); + void (*dcd_change)(struct tty_struct *, bool); + size_t (*receive_buf2)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + struct module *owner; +}; + +struct tty_operations { + struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int); + int (*install)(struct tty_driver *, struct tty_struct *); + void (*remove)(struct tty_driver *, struct tty_struct *); + int (*open)(struct tty_struct *, struct file *); + void (*close)(struct tty_struct *, struct file *); + void (*shutdown)(struct tty_struct *); + void (*cleanup)(struct tty_struct *); + ssize_t (*write)(struct tty_struct *, const u8 *, size_t); + int (*put_char)(struct tty_struct *, u8); + void (*flush_chars)(struct tty_struct *); + unsigned int (*write_room)(struct tty_struct *); + unsigned int (*chars_in_buffer)(struct tty_struct *); + int (*ioctl)(struct tty_struct *, unsigned int, long unsigned int); + long int (*compat_ioctl)(struct tty_struct *, unsigned int, long unsigned int); + 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 *); + int (*ldisc_ok)(struct tty_struct *, int); + void (*set_ldisc)(struct tty_struct *); + void (*wait_until_sent)(struct tty_struct *, int); + void (*send_xchar)(struct tty_struct *, u8); + int (*tiocmget)(struct tty_struct *); + int (*tiocmset)(struct tty_struct *, unsigned int, unsigned int); + int (*resize)(struct tty_struct *, struct winsize *); + int (*get_icount)(struct tty_struct *, struct serial_icounter_struct *); + int (*get_serial)(struct tty_struct *, struct serial_struct *); + int (*set_serial)(struct tty_struct *, struct serial_struct *); + void (*show_fdinfo)(struct tty_struct *, struct seq_file *); + int (*poll_init)(struct tty_driver *, int, char *); + int (*poll_get_char)(struct tty_driver *, int); + void (*poll_put_char)(struct tty_driver *, int, char); + int (*proc_show)(struct seq_file *, void *); +}; + +struct tty_port_client_operations { + size_t (*receive_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_port *); +}; + +struct 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_struct { + struct kref kref; + int index; + struct device *dev; + struct tty_driver *driver; + struct tty_port *port; + const struct tty_operations *ops; + struct tty_ldisc *ldisc; + struct ld_semaphore ldisc_sem; + struct mutex atomic_write_lock; + struct mutex legacy_mutex; + struct mutex throttle_mutex; + struct rw_semaphore termios_rwsem; + struct mutex winsize_mutex; + struct ktermios termios; + struct ktermios termios_locked; + char name[64]; + long unsigned int flags; + int count; + unsigned int receive_room; + struct winsize winsize; + struct { + spinlock_t lock; + bool stopped; + bool tco_stopped; + } flow; + struct { + struct pid *pgrp; + struct pid *session; + spinlock_t lock; + unsigned char pktstatus; + bool packet; + } ctrl; + bool hw_stopped; + bool closing; + int flow_change; + struct tty_struct *link; + struct fasync_struct *fasync; + wait_queue_head_t write_wait; + wait_queue_head_t read_wait; + struct work_struct hangup_work; + void *disc_data; + void *driver_data; + spinlock_t files_lock; + int write_cnt; + u8 *write_buf; + struct list_head tty_files; + struct work_struct SAK_work; +}; + +struct ttyprintk_port { + struct tty_port port; + spinlock_t spinlock; +}; + +struct tun_struct; + +struct tun_file { + struct sock sk; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct socket socket; + struct tun_struct *tun; + struct fasync_struct *fasync; + unsigned int flags; + union { + u16 queue_index; + unsigned int ifindex; + }; + struct napi_struct napi; + bool napi_enabled; + bool napi_frags_enabled; + struct mutex napi_mutex; + struct list_head next; + struct tun_struct *detached; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct ptr_ring tx_ring; + struct xdp_rxq_info xdp_rxq; +}; + +struct tun_filter { + __u16 flags; + __u16 count; + __u8 addr[0]; +}; + +struct tun_flow_entry { + struct hlist_node hash_link; + struct callback_head rcu; + struct tun_struct *tun; + u32 rxhash; + u32 rps_rxhash; + int queue_index; + long: 64; + long unsigned int updated; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct tun_msg_ctl { + short unsigned int type; + short unsigned int num; + void *ptr; +}; + +struct tun_page { + struct page *page; + int count; +}; + +struct tun_pi { + __u16 flags; + __be16 proto; +}; + +struct tun_prog { + struct callback_head rcu; + struct bpf_prog *prog; +}; + +struct tun_security_struct { + u32 sid; +}; + +struct tun_struct { + struct tun_file *tfiles[256]; + unsigned int numqueues; + unsigned int flags; + kuid_t owner; + kgid_t group; + struct net_device *dev; + netdev_features_t set_features; + int align; + int vnet_hdr_sz; + int sndbuf; + struct tap_filter txflt; + struct sock_fprog fprog; + bool filter_attached; + u32 msg_enable; + spinlock_t lock; + struct hlist_head flows[1024]; + struct timer_list flow_gc_timer; + long unsigned int ageing_time; + unsigned int numdisabled; + struct list_head disabled; + void *security; + u32 flow_count; + u32 rx_batched; + atomic_long_t rx_frame_errors; + struct bpf_prog *xdp_prog; + struct tun_prog *steering_prog; + struct tun_prog *filter_prog; + struct ethtool_link_ksettings link_ksettings; + struct file *file; + struct ifreq *ifr; +}; + +struct virtio_net_hdr { + __u8 flags; + __u8 gso_type; + __virtio16 hdr_len; + __virtio16 gso_size; + __virtio16 csum_start; + __virtio16 csum_offset; +}; + +struct tun_xdp_hdr { + int buflen; + struct virtio_net_hdr gso; +}; + +struct twl4030_audio_resource { + int request_count; + u8 reg; + u8 mask; +}; + +struct twl4030_audio { + unsigned int audio_mclk; + struct mutex mutex; + struct twl4030_audio_resource resource[2]; + struct mfd_cell cells[2]; +}; + +struct twl4030_codec_data; + +struct twl4030_vibra_data; + +struct twl4030_audio_data { + unsigned int audio_mclk; + struct twl4030_codec_data *codec; + struct twl4030_vibra_data *vibra; + int audpwron_gpio; + int naudint_irq; + unsigned int irq_base; +}; + +struct twl4030_codec_data { + unsigned int digimic_delay; + unsigned int ramp_delay_value; + unsigned int offset_cncl_path; + unsigned int hs_extmute: 1; + int hs_extmute_gpio; +}; + +struct twl4030_vibra_data { + unsigned int coexist; +}; + +struct twl6030_irq { + unsigned int irq_base; + int twl_irq; + bool irq_wake_enabled; + atomic_t wakeirqs; + struct notifier_block pm_nb; + struct irq_chip irq_chip; + struct irq_domain *irq_domain; + const int *irq_mapping_tbl; +}; + +struct twl6040 { + struct device *dev; + struct regmap *regmap; + struct regmap_irq_chip_data *irq_data; + struct regulator_bulk_data supplies[2]; + struct clk *clk32k; + struct clk *mclk; + struct mutex mutex; + struct mutex irq_mutex; + struct mfd_cell cells[4]; + struct completion ready; + struct gpio_desc *audpwron; + int power_count; + int rev; + int pll; + unsigned int sysclk_rate; + unsigned int mclk_rate; + unsigned int irq; + unsigned int irq_ready; + unsigned int irq_th; +}; + +struct twl_client { + struct i2c_client *client; + struct regmap *regmap; +}; + +struct twl_mapping { + unsigned char sid; + unsigned char base; +}; + +struct twl_private { + bool ready; + u32 twl_idcode; + unsigned int twl_id; + struct twl_mapping *twl_map; + struct twl_client *twl_modules; +}; + +struct type_datum { + u32 value; + u32 bounds; + unsigned char primary; + unsigned char attribute; +}; + +struct type_descriptor { + u16 type_kind; + u16 type_info; + char type_name[0]; +}; + +struct type_mismatch_data { + struct source_location location; + struct type_descriptor *type; + long unsigned int alignment; + unsigned char type_check_kind; +}; + +struct type_mismatch_data_common { + struct source_location *location; + struct type_descriptor *type; + long unsigned int alignment; + unsigned char type_check_kind; +}; + +struct type_mismatch_data_v1 { + struct source_location location; + struct type_descriptor *type; + unsigned char log_alignment; + unsigned char type_check_kind; +}; + +struct type_set { + struct ebitmap types; + struct ebitmap negset; + u32 flags; +}; + +struct typec_connector { + void (*attach)(struct typec_connector *, struct device *); + void (*deattach)(struct typec_connector *, struct device *); +}; + +struct u32_fract { + __u32 numerator; + __u32 denominator; +}; + +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 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_port { + struct uart_port port; + struct timer_list timer; + struct list_head list; + u32 capabilities; + u16 bugs; + unsigned int tx_loadsz; + unsigned char acr; + unsigned char fcr; + unsigned char ier; + unsigned char lcr; + unsigned char mcr; + unsigned char cur_iotype; + unsigned int rpm_tx_active; + unsigned char canary; + unsigned char probe; + struct mctrl_gpios *gpios; + u16 lsr_saved_flags; + u16 lsr_save_mask; + unsigned char msr_saved_flags; + struct uart_8250_dma *dma; + const struct uart_8250_ops *ops; + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + struct uart_8250_em485 *em485; + void (*rs485_start_tx)(struct uart_8250_port *, bool); + void (*rs485_stop_tx)(struct uart_8250_port *, bool); + struct delayed_work overrun_backoff; + u32 overrun_backoff_time_ms; +}; + +struct uart_match { + struct uart_port *port; + struct uart_driver *driver; +}; + +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, long unsigned int); + int (*poll_init)(struct uart_port *); + void (*poll_put_char)(struct uart_port *, unsigned char); + int (*poll_get_char)(struct uart_port *); +}; + +struct uart_state { + struct tty_port port; + enum uart_pm_state pm_state; + atomic_t refcount; + wait_queue_head_t remove_wait; + struct uart_port *uart_port; +}; + +struct ubuf_info_msgzc { + struct ubuf_info ubuf; + union { + struct { + long unsigned int desc; + void *ctx; + }; + struct { + u32 id; + u16 len; + u16 zerocopy: 1; + u32 bytelen; + }; + }; + struct mmpin mmp; +}; + +struct ubuf_info_ops { + void (*complete)(struct sk_buff *, struct ubuf_info *, bool); + int (*link_skb)(struct sk_buff *, struct ubuf_info *); +}; + +struct uclamp_request { + s64 percent; + u64 util; + int ret; +}; + +struct ucode_cpu_info { + struct cpu_signature cpu_sig; + void *mc; +}; + +struct ucode_patch { + struct list_head plist; + void *data; + unsigned int size; + u32 patch_id; + u16 equiv_cpu; +}; + +struct ucounts { + struct hlist_node node; + struct user_namespace *ns; + kuid_t uid; + atomic_t count; + atomic_long_t ucount[12]; + atomic_long_t rlimit[4]; +}; + +struct ucred { + __u32 pid; + __u32 uid; + __u32 gid; +}; + +struct udmabuf { + long unsigned int pagecount; + struct folio **folios; + long unsigned int nr_pinned; + struct folio **pinned_folios; + struct sg_table *sg; + struct miscdevice *device; + long unsigned int *offsets; +}; + +struct udmabuf_create { + __u32 memfd; + __u32 flags; + __u64 offset; + __u64 size; +}; + +struct udmabuf_create_item { + __u32 memfd; + __u32 __pad; + __u64 offset; + __u64 size; +}; + +struct udmabuf_create_list { + __u32 flags; + __u32 count; + struct udmabuf_create_item list[0]; +}; + +struct udp_sock { + struct inet_sock inet; + long unsigned int udp_flags; + int pending; + __u8 encap_type; + __u16 udp_lrpa_hash; + struct hlist_nulls_node udp_lrpa_node; + __u16 len; + __u16 gso_size; + __u16 pcslen; + __u16 pcrlen; + int (*encap_rcv)(struct sock *, struct sk_buff *); + void (*encap_err_rcv)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *); + int (*encap_err_lookup)(struct sock *, struct sk_buff *); + void (*encap_destroy)(struct sock *); + struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *); + int (*gro_complete)(struct sock *, struct sk_buff *, int); + struct sk_buff_head reader_queue; + int forward_deficit; + int forward_threshold; + bool peeking_with_offset; + long: 64; + long: 64; + long: 64; +}; + +struct udp6_sock { + struct udp_sock udp; + struct ipv6_pinfo inet6; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct udp_dev_scratch { + u32 _tsize_state; + u16 len; + bool is_linear; + bool csum_unnecessary; +}; + +struct udp_hslot { + union { + struct hlist_head head; + struct hlist_nulls_head nulls_head; + }; + int count; + spinlock_t lock; +}; + +struct udp_hslot_main { + struct udp_hslot hslot; + u32 hash4_cnt; + long: 64; +}; + +struct udp_mib { + long unsigned int mibs[10]; +}; + +struct udp_seq_afinfo { + sa_family_t family; + struct udp_table *udp_table; +}; + +struct udp_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + __u16 cscov; + __u8 partial_cov; +}; + +struct udp_table { + struct udp_hslot *hash; + struct udp_hslot_main *hash2; + struct udp_hslot *hash4; + unsigned int mask; + unsigned int log; +}; + +struct udp_tunnel_info { + short unsigned int type; + sa_family_t sa_family; + __be16 port; + u8 hw_priv; +}; + +struct udp_tunnel_nic_table_info { + unsigned int n_entries; + unsigned int tunnel_types; +}; + +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 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 udp_tunnel_nic_shared { + struct udp_tunnel_nic *udp_tunnel_nic_info; + struct list_head devices; +}; + +struct udphdr { + __be16 source; + __be16 dest; + __be16 len; + __sum16 check; +}; + +struct uevent_sock { + struct list_head list; + struct sock *sk; +}; + +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 uffdio_api { + __u64 api; + __u64 features; + __u64 ioctls; +}; + +struct uffdio_range { + __u64 start; + __u64 len; +}; + +struct uffdio_continue { + struct uffdio_range range; + __u64 mode; + __s64 mapped; +}; + +struct uffdio_copy { + __u64 dst; + __u64 src; + __u64 len; + __u64 mode; + __s64 copy; +}; + +struct uffdio_move { + __u64 dst; + __u64 src; + __u64 len; + __u64 mode; + __s64 move; +}; + +struct uffdio_poison { + struct uffdio_range range; + __u64 mode; + __s64 updated; +}; + +struct uffdio_register { + struct uffdio_range range; + __u64 mode; + __u64 ioctls; +}; + +struct uffdio_writeprotect { + struct uffdio_range range; + __u64 mode; +}; + +struct uffdio_zeropage { + struct uffdio_range range; + __u64 mode; + __s64 zeropage; +}; + +struct uhci_debug { + int size; + char *data; +}; + +struct uhci_td; + +struct uhci_qh; + +struct uhci_hcd { + long unsigned int 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; + long unsigned int 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; + long unsigned int port_c_suspend; + long unsigned int resuming_ports; + long unsigned int ports_timeout; + struct list_head idle_qh_list; + int rh_numports; + wait_queue_head_t waitqh; + int num_waiting; + int total_load; + short int 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 usb_iso_packet_descriptor; + +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; + long unsigned int advance_jiffies; + unsigned int unlink_frame; + unsigned int period; + short int phase; + short int 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 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 uinput_abs_setup { + __u16 code; + struct input_absinfo absinfo; +}; + +struct uinput_request; + +struct uinput_device { + struct input_dev *dev; + struct mutex mutex; + enum uinput_state state; + wait_queue_head_t waitq; + unsigned char ready; + unsigned char head; + unsigned char tail; + struct input_event buff[16]; + unsigned int ff_effects_max; + struct uinput_request *requests[16]; + wait_queue_head_t requests_waitq; + spinlock_t requests_lock; +}; + +struct uinput_ff_erase { + __u32 request_id; + __s32 retval; + __u32 effect_id; +}; + +struct uinput_ff_upload { + __u32 request_id; + __s32 retval; + struct ff_effect effect; + struct ff_effect old; +}; + +struct uinput_ff_upload_compat { + __u32 request_id; + __s32 retval; + struct ff_effect_compat effect; + struct ff_effect_compat old; +}; + +struct uinput_request { + unsigned int id; + unsigned int code; + int retval; + struct completion done; + union { + unsigned int effect_id; + struct { + struct ff_effect *effect; + struct ff_effect *old; + } upload; + } u; +}; + +struct uinput_setup { + struct input_id id; + char name[80]; + __u32 ff_effects_max; +}; + +struct uinput_user_dev { + char name[80]; + struct input_id id; + __u32 ff_effects_max; + __s32 absmax[64]; + __s32 absmin[64]; + __s32 absfuzz[64]; + __s32 absflat[64]; +}; + +struct ultrix_disklabel { + s32 pt_magic; + s32 pt_valid; + struct pt_info pt_part[8]; +}; + +struct uncached_list { + spinlock_t lock; + struct list_head head; +}; + +struct uncharge_gather { + struct mem_cgroup *memcg; + long unsigned int nr_memory; + long unsigned int pgpgout; + long unsigned int nr_kmem; + int nid; +}; + +struct uncore_event_desc { + struct device_attribute attr; + const char *config; +}; + +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_iio_topology { + int pci_bus_no; + int segment; +}; + +struct uncore_unit_discovery { + union { + u64 table1; + struct { + u64 num_regs: 8; + u64 ctl_offset: 8; + u64 bit_width: 8; + u64 ctr_offset: 8; + u64 status_offset: 8; + u64 __reserved_1: 22; + u64 access_type: 2; + }; + }; + u64 ctl; + union { + u64 table3; + struct { + u64 box_type: 16; + u64 box_id: 16; + u64 __reserved_2: 32; + }; + }; +}; + +struct uncore_upi_topology { + int die_to; + int pmu_idx_to; + int enabled; +}; + +struct uni_pagedict { + u16 **uni_pgdir[32]; + long unsigned int refcount; + long unsigned int sum; + unsigned char *inverse_translations[4]; + u16 *inverse_trans_unicode; +}; + +struct utf8data; + +struct utf8data_table; + +struct unicode_map { + unsigned int version; + const struct utf8data *ntab[2]; + const struct utf8data_table *tables; +}; + +struct unipair; + +struct unimapdesc { + short unsigned int entry_ct; + struct unipair *entries; +}; + +struct unipair { + short unsigned int unicode; + short unsigned int fontpos; +}; + +struct unity_map_entry { + struct list_head list; + u16 devid_start; + u16 devid_end; + u64 address_start; + u64 address_end; + int prot; +}; + +struct unix_address { + refcount_t refcnt; + int len; + struct sockaddr_un name[0]; +}; + +struct unix_edge { + struct unix_sock *predecessor; + struct unix_sock *successor; + struct list_head vertex_entry; + struct list_head stack_entry; +}; + +struct unix_skb_parms { + struct pid *pid; + kuid_t uid; + kgid_t gid; + struct scm_fp_list *fp; + u32 secid; + u32 consumed; +}; + +struct unix_vertex; + +struct unix_sock { + struct sock sk; + struct unix_address *addr; + struct path path; + struct mutex iolock; + struct mutex bindlock; + struct sock *peer; + struct sock *listener; + struct unix_vertex *vertex; + spinlock_t lock; + struct socket_wq peer_wq; + wait_queue_entry_t peer_wake; + struct scm_stat scm_stat; + struct sk_buff *oob_skb; +}; + +struct unix_stream_read_state { + int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *); + struct socket *socket; + struct msghdr *msg; + struct pipe_inode_info *pipe; + size_t size; + int flags; + unsigned int splice_flags; +}; + +struct unix_vertex { + struct list_head edges; + struct list_head entry; + struct list_head scc_entry; + long unsigned int out_degree; + long unsigned int index; + long unsigned int scc_index; +}; + +struct unixware_slice { + __le16 s_label; + __le16 s_flags; + __le32 start_sect; + __le32 nr_sects; +}; + +struct unixware_vtoc { + __le32 v_magic; + __le32 v_version; + char v_name[8]; + __le16 v_nslices; + __le16 v_unknown1; + __le32 v_reserved[10]; + struct unixware_slice v_slice[16]; +}; + +struct unixware_disklabel { + __le32 d_type; + __le32 d_magic; + __le32 d_version; + char d_serial[12]; + __le32 d_ncylinders; + __le32 d_ntracks; + __le32 d_nsectors; + __le32 d_secsize; + __le32 d_part_start; + __le32 d_unknown1[12]; + __le32 d_alt_tbl; + __le32 d_alt_len; + __le32 d_phys_cyl; + __le32 d_phys_trk; + __le32 d_phys_sec; + __le32 d_phys_bytes; + __le32 d_unknown2; + __le32 d_unknown3; + __le32 d_pad[8]; + struct unixware_vtoc vtoc; +}; + +struct unlink_vma_file_batch { + int count; + struct vm_area_struct *vmas[8]; +}; + +struct unmap_refs_callback_data { + struct completion completion; + int result; +}; + +struct unmap_ring_hvm { + unsigned int idx; + long unsigned int addrs[16]; +}; + +struct unreachable_data { + struct source_location location; +}; + +struct unwind_state { + struct stack_info stack_info; + long unsigned int stack_mask; + struct task_struct *task; + int graph_idx; + struct llist_node *kr_cur; + bool error; + bool got_irq; + long unsigned int *bp; + long unsigned int *orig_sp; + long unsigned int ip; + long unsigned int *next_bp; + struct pt_regs *regs; +}; + +struct update_classid_context { + u32 classid; + unsigned int batch; +}; + +union upper_chunk { + union upper_chunk *next; + union lower_chunk *data[256]; +}; + +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 list_head consumers; + struct inode *inode; + union { + struct callback_head rcu; + struct work_struct work; + }; + loff_t offset; + loff_t ref_ctr_offset; + long unsigned int flags; + struct arch_uprobe arch; +}; + +struct uprobe_cpu_buffer { + struct mutex mutex; + void *buf; + int dsize; +}; + +struct uprobe_dispatch_data { + struct trace_uprobe *tu; + long unsigned int bp_addr; +}; + +struct uprobe_task { + enum uprobe_task_state state; + unsigned int depth; + struct return_instance *return_instances; + struct return_instance *ri_pool; + struct timer_list ri_timer; + seqcount_t ri_seqcount; + union { + struct { + struct arch_uprobe_task autask; + long unsigned int vaddr; + }; + struct { + struct callback_head dup_xol_work; + long unsigned int dup_xol_addr; + }; + }; + struct uprobe *active_uprobe; + long unsigned int xol_vaddr; + struct arch_uprobe *auprobe; +}; + +struct uprobe_trace_entry_head { + struct trace_entry ent; + long unsigned int vaddr[0]; +}; + +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 *); +}; + +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 urb_priv { + struct ed *ed; + u16 length; + u16 td_cnt; + struct list_head pending; + struct td *td[0]; +}; + +struct urb_priv___2 { + struct list_head node; + struct urb *urb; + struct uhci_qh *qh; + struct list_head td_list; + unsigned int fsbr: 1; +}; + +struct xhci_segment; + +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 *start_trb; + struct xhci_segment *end_seg; + union xhci_trb *end_trb; + struct xhci_segment *bounce_seg; + bool urb_length_set; + bool error_mid_td; +}; + +struct urb_priv___3 { + int num_tds; + int num_tds_done; + struct xhci_td td[0]; +}; + +typedef struct urb_priv urb_priv_t; + +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_anchor { + struct list_head urb_list; + wait_queue_head_t wait; + spinlock_t lock; + atomic_t suspend_wakeups; + unsigned int poisoned: 1; +}; + +struct usb_bos_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumDeviceCaps; +} __attribute__((packed)); + +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; + long unsigned int devmap[2]; + 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_cdc_acm_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bmCapabilities; +}; + +struct usb_cdc_call_mgmt_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bmCapabilities; + __u8 bDataInterface; +}; + +struct usb_cdc_country_functional_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 iCountryCodeRelDate; + __le16 wCountyCode0; +}; + +struct usb_cdc_dmm_desc { + __u8 bFunctionLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u16 bcdVersion; + __le16 wMaxCommand; +} __attribute__((packed)); + +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_header_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdCDC; +} __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 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_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 usb_cdc_union_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_union_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bMasterInterface0; + __u8 bSlaveInterface0; +}; + +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_class_driver { + char *name; + char * (*devnode)(const struct device *, umode_t *); + const struct file_operations *fops; + int minor_base; +}; + +struct usb_config_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumInterfaces; + __u8 bConfigurationValue; + __u8 iConfiguration; + __u8 bmAttributes; + __u8 bMaxPower; +} __attribute__((packed)); + +struct usb_ctrlrequest { + __u8 bRequestType; + __u8 bRequest; + __le16 wValue; + __le16 wIndex; + __le16 wLength; +}; + +struct usb_dcd_config_params { + __u8 bU1devExitLat; + __le16 bU2DevExitLat; + __u8 besl_baseline; + __u8 besl_deep; +}; + +struct usb_debug_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDebugInEndpoint; + __u8 bDebugOutEndpoint; +}; + +struct usb_descriptor_header { + __u8 bLength; + __u8 bDescriptorType; +}; + +struct usb_dev_cap_header { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; +}; + +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; + long unsigned int ifclaimed; + u32 disabled_bulk_eps; + long unsigned int interface_allowed_mask; + int not_yet_resumed; + bool suspend_allowed; + bool privileges_dropped; +}; + +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 usb_host_endpoint { + struct usb_endpoint_descriptor desc; + struct usb_ss_ep_comp_descriptor ss_ep_comp; + struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; + long: 0; + struct list_head urb_list; + void *hcpriv; + struct ep_device *ep_dev; + unsigned char *extra; + int extralen; + int enabled; + int streams; + long: 0; +} __attribute__((packed)); + +struct usb_device_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __le16 idVendor; + __le16 idProduct; + __le16 bcdDevice; + __u8 iManufacturer; + __u8 iProduct; + __u8 iSerialNumber; + __u8 bNumConfigurations; +}; + +struct 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; + short unsigned int bus_mA; + u8 portnum; + u8 level; + u8 devaddr; + unsigned int can_submit: 1; + unsigned int persist_enabled: 1; + unsigned int reset_in_progress: 1; + unsigned int have_langid: 1; + unsigned int authorized: 1; + unsigned int authenticated: 1; + unsigned int lpm_capable: 1; + unsigned int lpm_devinit_allow: 1; + unsigned int usb2_hw_lpm_capable: 1; + unsigned int usb2_hw_lpm_besl_capable: 1; + unsigned int usb2_hw_lpm_enabled: 1; + unsigned int usb2_hw_lpm_allowed: 1; + unsigned int usb3_lpm_u1_enabled: 1; + unsigned int usb3_lpm_u2_enabled: 1; + int string_langid; + char *product; + char *manufacturer; + char *serial; + struct list_head filelist; + int maxchild; + u32 quirks; + atomic_t urbnum; + long unsigned int active_duration; + long unsigned int connect_time; + unsigned int do_remote_wakeup: 1; + unsigned int reset_resume: 1; + unsigned int port_is_suspended: 1; + enum usb_link_tunnel_mode tunnel_mode; + 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_device_id; + +struct usb_device_driver { + const char *name; + bool (*match)(struct usb_device *); + int (*probe)(struct usb_device *); + void (*disconnect)(struct usb_device *); + int (*suspend)(struct usb_device *, pm_message_t); + int (*resume)(struct usb_device *, pm_message_t); + int (*choose_configuration)(struct usb_device *); + const struct attribute_group **dev_groups; + struct device_driver driver; + const struct usb_device_id *id_table; + unsigned int supports_autosuspend: 1; + unsigned int generic_subclass: 1; +}; + +struct usb_device_id { + __u16 match_flags; + __u16 idVendor; + __u16 idProduct; + __u16 bcdDevice_lo; + __u16 bcdDevice_hi; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 bInterfaceNumber; + kernel_ulong_t driver_info; +}; + +struct usb_dynids { + struct list_head list; +}; + +struct usb_interface; + +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 *); + void (*shutdown)(struct usb_interface *); + const struct usb_device_id *id_table; + const struct attribute_group **dev_groups; + struct usb_dynids dynids; + struct device_driver driver; + unsigned int no_dynamic_id: 1; + unsigned int supports_autosuspend: 1; + unsigned int disable_hub_initiated_lpm: 1; + unsigned int soft_unbind: 1; +}; + +struct usb_dynid { + struct list_head node; + struct usb_device_id id; +}; + +struct usb_ehci_pdata { + int caps_offset; + unsigned int has_tt: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_mmio: 1; + unsigned int no_io_watchdog: 1; + unsigned int reset_on_resume: 1; + unsigned int dma_mask_64: 1; + unsigned int spurious_oc: 1; + int (*power_on)(struct platform_device *); + void (*power_off)(struct platform_device *); + void (*power_suspend)(struct platform_device *); + int (*pre_setup)(struct usb_hcd *); +}; + +struct usb_ep_caps { + unsigned int type_control: 1; + unsigned int type_iso: 1; + unsigned int type_bulk: 1; + unsigned int type_int: 1; + unsigned int dir_in: 1; + unsigned int dir_out: 1; +}; + +struct usb_ep_ops; + +struct usb_ep { + void *driver_data; + const char *name; + const struct usb_ep_ops *ops; + const struct usb_endpoint_descriptor *desc; + const struct usb_ss_ep_comp_descriptor *comp_desc; + struct list_head ep_list; + struct usb_ep_caps caps; + bool claimed; + bool enabled; + unsigned int mult: 2; + unsigned int maxburst: 5; + u8 address; + u16 maxpacket; + u16 maxpacket_limit; + u16 max_streams; +}; + +struct usb_request; + +struct usb_ep_ops { + int (*enable)(struct usb_ep *, const struct usb_endpoint_descriptor *); + int (*disable)(struct usb_ep *); + void (*dispose)(struct usb_ep *); + struct usb_request * (*alloc_request)(struct usb_ep *, gfp_t); + void (*free_request)(struct usb_ep *, struct usb_request *); + int (*queue)(struct usb_ep *, struct usb_request *, gfp_t); + int (*dequeue)(struct usb_ep *, struct usb_request *); + int (*set_halt)(struct usb_ep *, int); + int (*set_wedge)(struct usb_ep *); + int (*fifo_status)(struct usb_ep *); + void (*fifo_flush)(struct usb_ep *); +}; + +struct usb_ext_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __le32 bmAttributes; +} __attribute__((packed)); + +struct usb_udc; + +struct usb_gadget_ops; + +struct usb_gadget { + struct work_struct work; + struct usb_udc *udc; + const struct usb_gadget_ops *ops; + struct usb_ep *ep0; + struct list_head ep_list; + enum usb_device_speed speed; + enum usb_device_speed max_speed; + enum usb_ssp_rate ssp_rate; + enum usb_ssp_rate max_ssp_rate; + enum usb_device_state state; + const char *name; + struct device dev; + unsigned int isoch_delay; + unsigned int out_epnum; + unsigned int in_epnum; + unsigned int mA; + struct usb_otg_caps *otg_caps; + unsigned int sg_supported: 1; + unsigned int is_otg: 1; + unsigned int is_a_peripheral: 1; + unsigned int b_hnp_enable: 1; + unsigned int a_hnp_support: 1; + unsigned int a_alt_hnp_support: 1; + unsigned int hnp_polling_support: 1; + unsigned int host_request_flag: 1; + unsigned int quirk_ep_out_aligned_size: 1; + unsigned int quirk_altset_not_supp: 1; + unsigned int quirk_stall_not_supp: 1; + unsigned int quirk_zlp_not_supp: 1; + unsigned int quirk_avoids_skb_reserve: 1; + unsigned int is_selfpowered: 1; + unsigned int deactivated: 1; + unsigned int connected: 1; + unsigned int lpm_capable: 1; + unsigned int wakeup_capable: 1; + unsigned int wakeup_armed: 1; + int irq; + int id_number; +}; + +struct usb_gadget_driver { + char *function; + enum usb_device_speed max_speed; + int (*bind)(struct usb_gadget *, struct usb_gadget_driver *); + void (*unbind)(struct usb_gadget *); + int (*setup)(struct usb_gadget *, const struct usb_ctrlrequest *); + void (*disconnect)(struct usb_gadget *); + void (*suspend)(struct usb_gadget *); + void (*resume)(struct usb_gadget *); + void (*reset)(struct usb_gadget *); + struct device_driver driver; + char *udc_name; + unsigned int match_existing_only: 1; + bool is_bound: 1; +}; + +struct usb_gadget_ops { + int (*get_frame)(struct usb_gadget *); + int (*wakeup)(struct usb_gadget *); + int (*func_wakeup)(struct usb_gadget *, int); + int (*set_remote_wakeup)(struct usb_gadget *, int); + int (*set_selfpowered)(struct usb_gadget *, int); + int (*vbus_session)(struct usb_gadget *, int); + int (*vbus_draw)(struct usb_gadget *, unsigned int); + int (*pullup)(struct usb_gadget *, int); + int (*ioctl)(struct usb_gadget *, unsigned int, long unsigned int); + void (*get_config_params)(struct usb_gadget *, struct usb_dcd_config_params *); + int (*udc_start)(struct usb_gadget *, struct usb_gadget_driver *); + int (*udc_stop)(struct usb_gadget *); + void (*udc_set_speed)(struct usb_gadget *, enum usb_device_speed); + void (*udc_set_ssp_rate)(struct usb_gadget *, enum usb_ssp_rate); + void (*udc_async_callbacks)(struct usb_gadget *, bool); + struct usb_ep * (*match_ep)(struct usb_gadget *, struct usb_endpoint_descriptor *, struct usb_ss_ep_comp_descriptor *); + int (*check_config)(struct usb_gadget *); +}; + +struct usb_phy_roothub; + +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; + long unsigned int flags; + enum usb_dev_authorize_policy dev_policy; + unsigned int rh_registered: 1; + unsigned int rh_pollable: 1; + unsigned int msix_enabled: 1; + unsigned int msi_enabled: 1; + unsigned int skip_phy_initialization: 1; + unsigned int uses_new_polling: 1; + unsigned int has_tt: 1; + unsigned int amd_resume_bug: 1; + unsigned int can_do_streams: 1; + unsigned int tpl_support: 1; + unsigned int cant_recv_wakeups: 1; + unsigned int irq; + void *regs; + resource_size_t rsrc_start; + resource_size_t rsrc_len; + unsigned int power_budget; + struct giveback_urb_bh high_prio_bh; + struct giveback_urb_bh low_prio_bh; + struct mutex *address0_mutex; + struct mutex *bandwidth_mutex; + struct usb_hcd *shared_hcd; + struct usb_hcd *primary_hcd; + struct dma_pool *pool[4]; + int state; + struct gen_pool *localmem_pool; + long unsigned int hcd_priv[0]; +}; + +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_interface_assoc_descriptor; + +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_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bInterfaceNumber; + __u8 bAlternateSetting; + __u8 bNumEndpoints; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 iInterface; +}; + +struct usb_host_interface { + struct usb_interface_descriptor desc; + int extralen; + unsigned char *extra; + struct usb_host_endpoint *endpoint; + char *string; +}; + +struct usb_hub_status { + __le16 wHubStatus; + __le16 wHubChange; +}; + +struct usb_port_status { + __le16 wPortStatus; + __le16 wPortChange; + __le32 dwExtPortStatus; +}; + +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_hub_descriptor; + +struct usb_port; + +struct usb_hub { + struct device *intfdev; + struct usb_device *hdev; + struct kref kref; + struct urb *urb; + u8 (*buffer)[8]; + union { + struct usb_hub_status hub; + struct usb_port_status port; + } *status; + struct mutex status_mutex; + int error; + int nerrors; + long unsigned int event_bits[1]; + long unsigned int change_bits[1]; + long unsigned int removed_bits[1]; + long unsigned int wakeup_bits[1]; + long unsigned int power_bits[1]; + long unsigned int child_usage_bits[1]; + long unsigned int 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 delayed_work post_resume_work; + struct work_struct events; + spinlock_t irq_urb_lock; + struct timer_list irq_urb_retry; + struct usb_port **ports; + struct list_head onboard_devs; +}; + +struct usb_hub_descriptor { + __u8 bDescLength; + __u8 bDescriptorType; + __u8 bNbrPorts; + __le16 wHubCharacteristics; + __u8 bPwrOn2PwrGood; + __u8 bHubContrCurrent; + union { + struct { + __u8 DeviceRemovable[4]; + __u8 PortPwrCtrlMask[4]; + } hs; + struct { + __u8 bHubHdrDecLat; + __le16 wHubDelay; + __le16 DeviceRemovable; + } __attribute__((packed)) ss; + } u; +} __attribute__((packed)); + +struct usb_interface { + struct usb_host_interface *altsetting; + struct usb_host_interface *cur_altsetting; + unsigned int num_altsetting; + struct usb_interface_assoc_descriptor *intf_assoc; + int minor; + enum usb_interface_condition condition; + unsigned int sysfs_files_created: 1; + unsigned int ep_devs_created: 1; + unsigned int unregistering: 1; + unsigned int needs_remote_wakeup: 1; + unsigned int needs_altsetting0: 1; + unsigned int needs_binding: 1; + unsigned int resetting_device: 1; + unsigned int authorized: 1; + enum usb_wireless_status wireless_status; + struct work_struct wireless_status_work; + struct device dev; + struct device *usb_dev; + struct work_struct reset_ws; +}; + +struct usb_interface_assoc_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bFirstInterface; + __u8 bInterfaceCount; + __u8 bFunctionClass; + __u8 bFunctionSubClass; + __u8 bFunctionProtocol; + __u8 iFunction; +}; + +struct usb_interface_cache { + unsigned int num_altsetting; + struct kref ref; + struct usb_host_interface altsetting[0]; +}; + +struct usb_memory { + struct list_head memlist; + int vma_use_count; + int urb_use_count; + u32 size; + void *mem; + dma_addr_t dma_handle; + long unsigned int vm_start; + struct usb_dev_state *ps; +}; + +struct usb_mon_operations { + void (*urb_submit)(struct usb_bus *, struct urb *); + void (*urb_submit_error)(struct usb_bus *, struct urb *, int); + void (*urb_complete)(struct usb_bus *, struct urb *, int); +}; + +struct usb_ohci_pdata { + unsigned int big_endian_desc: 1; + unsigned int big_endian_mmio: 1; + unsigned int no_big_frame_no: 1; + unsigned int num_ports; + int (*power_on)(struct platform_device *); + void (*power_off)(struct platform_device *); + void (*power_suspend)(struct platform_device *); +}; + +struct usb_otg { + u8 default_a; + struct phy *phy; + struct usb_phy *usb_phy; + struct usb_bus *host; + struct usb_gadget *gadget; + enum usb_otg_state state; + int (*set_host)(struct usb_otg *, struct usb_bus *); + int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); + int (*set_vbus)(struct usb_otg *, bool); + int (*start_srp)(struct usb_otg *); + int (*start_hnp)(struct usb_otg *); +}; + +struct usb_phy_io_ops; + +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_phy_io_ops { + int (*read)(struct usb_phy *, u32); + int (*write)(struct usb_phy *, u32, u32); +}; + +struct usb_phy_roothub { + struct phy *phy; + struct list_head list; +}; + +struct usb_port { + struct usb_device *child; + struct device dev; + struct usb_dev_state *port_owner; + struct usb_port *peer; + struct typec_connector *connector; + struct dev_pm_qos_request *req; + enum usb_port_connect_type connect_type; + enum usb_device_state state; + struct kernfs_node *state_kn; + usb_port_location_t location; + struct mutex status_lock; + u32 over_current_count; + u8 portnum; + u32 quirks; + unsigned int early_stop: 1; + unsigned int ignore_event: 1; + unsigned int is_superspeed: 1; + unsigned int usb3_lpm_u1_permit: 1; + unsigned int usb3_lpm_u2_permit: 1; +}; + +struct usb_ptm_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; +}; + +struct usb_qualifier_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __u8 bNumConfigurations; + __u8 bRESERVED; +}; + +struct usb_request { + void *buf; + unsigned int length; + dma_addr_t dma; + struct scatterlist *sg; + unsigned int num_sgs; + unsigned int num_mapped_sgs; + unsigned int stream_id: 16; + unsigned int is_last: 1; + unsigned int no_interrupt: 1; + unsigned int zero: 1; + unsigned int short_not_ok: 1; + unsigned int dma_mapped: 1; + unsigned int sg_was_mapped: 1; + void (*complete)(struct usb_ep *, struct usb_request *); + void *context; + struct list_head list; + unsigned int frame_number; + int status; + unsigned int actual; +}; + +typedef int (*usb_role_switch_set_t)(struct usb_role_switch *, enum usb_role); + +typedef enum usb_role (*usb_role_switch_get_t)(struct usb_role_switch *); + +struct usb_role_switch { + struct device dev; + struct lock_class_key key; + struct mutex lock; + struct module *module; + enum usb_role role; + bool registered; + struct device *usb2_port; + struct device *usb3_port; + struct device *udc; + usb_role_switch_set_t set; + usb_role_switch_get_t get; + bool allow_userspace_control; +}; + +struct usb_role_switch_desc { + struct fwnode_handle *fwnode; + struct device *usb2_port; + struct device *usb3_port; + struct device *udc; + usb_role_switch_set_t set; + usb_role_switch_get_t get; + bool allow_userspace_control; + void *driver_data; + const char *name; +}; + +struct usb_set_sel_req { + __u8 u1_sel; + __u8 u1_pel; + __le16 u2_sel; + __le16 u2_pel; +}; + +struct usb_sg_request { + int status; + size_t bytes; + spinlock_t lock; + struct usb_device *dev; + int pipe; + int entries; + struct urb **urbs; + int count; + struct completion complete; +}; + +struct usb_ss_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bmAttributes; + __le16 wSpeedSupported; + __u8 bFunctionalitySupport; + __u8 bU1devExitLat; + __le16 bU2DevExitLat; +}; + +struct usb_ss_container_id_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __u8 ContainerID[16]; +}; + +struct usb_ssp_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __le32 bmAttributes; + __le16 wFunctionalitySupport; + __le16 wReserved; + union { + __le32 legacy_padding; + struct { + struct {} __empty_bmSublinkSpeedAttr; + __le32 bmSublinkSpeedAttr[0]; + }; + }; +}; + +struct usb_string_descriptor { + __u8 bLength; + __u8 bDescriptorType; + union { + __le16 legacy_padding; + struct { + struct {} __empty_wData; + __le16 wData[0]; + }; + }; +}; + +struct usb_tt_clear { + struct list_head clear_list; + unsigned int tt; + u16 devinfo; + struct usb_hcd *hcd; + struct usb_host_endpoint *ep; +}; + +struct usbdevfs_bulktransfer { + unsigned int ep; + unsigned int len; + unsigned int timeout; + void *data; +}; + +struct usbdevfs_bulktransfer32 { + compat_uint_t ep; + compat_uint_t len; + compat_uint_t timeout; + compat_caddr_t data; +}; + +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_ctrltransfer { + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; + __u32 timeout; + void *data; +}; + +struct usbdevfs_ctrltransfer32 { + u8 bRequestType; + u8 bRequest; + u16 wValue; + u16 wIndex; + u16 wLength; + u32 timeout; + compat_caddr_t data; +}; + +struct usbdevfs_disconnect_claim { + unsigned int interface; + unsigned int flags; + char driver[256]; +}; + +struct usbdevfs_disconnectsignal { + unsigned int signr; + void *context; +}; + +struct usbdevfs_disconnectsignal32 { + compat_int_t signr; + compat_caddr_t context; +}; + +struct usbdevfs_getdriver { + unsigned int interface; + char driver[256]; +}; + +struct usbdevfs_hub_portinfo { + char nports; + char port[127]; +}; + +struct usbdevfs_ioctl { + int ifno; + int ioctl_code; + void *data; +}; + +struct usbdevfs_ioctl32 { + s32 ifno; + s32 ioctl_code; + compat_caddr_t data; +}; + +struct usbdevfs_iso_packet_desc { + unsigned int length; + unsigned int actual_length; + unsigned int status; +}; + +struct usbdevfs_setinterface { + unsigned int interface; + unsigned int altsetting; +}; + +struct usbdevfs_streams { + unsigned int num_streams; + unsigned int num_eps; + unsigned char eps[0]; +}; + +struct usbdevfs_urb { + unsigned char type; + unsigned char endpoint; + int status; + unsigned int flags; + void *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 *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 used_address { + struct __kernel_sockaddr_storage name; + unsigned int name_len; +}; + +struct user_arg_ptr { + bool is_compat; + union { + const char * const *native; + const compat_uptr_t *compat; + } ptr; +}; + +struct user_datum { + u32 value; + u32 bounds; + struct ebitmap roles; + struct mls_range range; + struct mls_level dfltlevel; +}; + +struct user_desc { + unsigned int entry_number; + unsigned int base_addr; + unsigned int limit; + unsigned int seg_32bit: 1; + unsigned int contents: 2; + unsigned int read_exec_only: 1; + unsigned int limit_in_pages: 1; + unsigned int seg_not_present: 1; + unsigned int useable: 1; + unsigned int lm: 1; +}; + +struct user_event_group; + +struct user_event { + struct user_event_group *group; + char *reg_name; + struct tracepoint tracepoint; + struct trace_event_call call; + struct trace_event_class class; + struct dyn_event devent; + struct hlist_node node; + struct list_head fields; + struct list_head validators; + struct work_struct put_work; + refcount_t refcnt; + int min_size; + int reg_flags; + char status; +}; + +struct user_event_enabler { + struct list_head mm_enablers_link; + struct user_event *event; + long unsigned int addr; + long unsigned int values; +}; + +struct user_event_enabler_fault { + struct work_struct work; + struct user_event_mm *mm; + struct user_event_enabler *enabler; + int attempt; +}; + +struct user_event_refs; + +struct user_event_file_info { + struct user_event_group *group; + struct user_event_refs *refs; +}; + +struct user_event_group { + char *system_name; + char *system_multi_name; + struct hlist_node node; + struct mutex reg_mutex; + struct hlist_head register_table[256]; + u64 multi_id; +}; + +struct user_event_mm { + struct list_head mms_link; + struct list_head enablers; + struct mm_struct *mm; + struct user_event_mm *next; + refcount_t refcnt; + refcount_t tasks; + struct rcu_work put_rwork; +}; + +struct user_event_refs { + struct callback_head rcu; + int count; + struct user_event *events[0]; +}; + +struct user_event_validator { + struct list_head user_event_link; + int offset; + int flags; +}; + +struct user_i387_ia32_struct { + u32 cwd; + u32 swd; + u32 twd; + u32 fip; + u32 fcs; + u32 foo; + u32 fos; + u32 st_space[20]; +}; + +struct user_key_payload { + struct callback_head rcu; + short unsigned int datalen; + long: 0; + char data[0]; +}; + +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; + long unsigned int flags; + bool parent_could_setfcap; + struct list_head keyring_name_list; + struct key *user_keyring_register; + struct rw_semaphore keyring_sem; + struct key *persistent_keyring_register; + struct work_struct work; + struct ctl_table_set set; + struct ctl_table_header *sysctls; + struct ucounts *ucounts; + long int ucount_max[12]; + long int rlimit_max[4]; + struct binfmt_misc *binfmt_misc; +}; + +struct user_reg { + __u32 size; + __u8 enable_bit; + __u8 enable_size; + __u16 flags; + __u64 enable_addr; + __u64 name_args; + __u32 write_index; +} __attribute__((packed)); + +struct user_regset; + +typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf); + +typedef int user_regset_set_fn(struct task_struct *, const struct user_regset *, unsigned int, unsigned int, const void *, const void *); + +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 user_regset_view { + const char *name; + const struct user_regset *regsets; + unsigned int n; + u32 e_flags; + u16 e_machine; + u8 ei_osabi; +}; + +struct user_return_notifier { + void (*on_user_return)(struct user_return_notifier *); + struct hlist_node link; +}; + +struct user_struct { + refcount_t __count; + struct percpu_counter epoll_watches; + long unsigned int unix_inflight; + atomic_long_t pipe_bufs; + struct hlist_node uidhash_node; + kuid_t uid; + atomic_long_t locked_vm; + atomic_t nr_watches; + struct ratelimit_state ratelimit; +}; + +struct user_syms { + const char **syms; + char *buf; +}; + +struct user_threshold { + struct list_head list_node; + int temperature; + int direction; +}; + +struct user_unreg { + __u32 size; + __u8 disable_bit; + __u8 __reserved; + __u16 __reserved2; + __u64 disable_addr; +}; + +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; + struct rw_semaphore map_changing_lock; + 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; + long unsigned int start; + long unsigned int end; + struct list_head list; +}; + +struct userfaultfd_wait_queue { + struct uffd_msg msg; + wait_queue_entry_t wq; + struct userfaultfd_ctx *ctx; + bool waken; +}; + +struct userfaultfd_wake_range { + long unsigned int start; + long unsigned int len; +}; + +struct userspace_data { + long unsigned int user_frequency; + bool valid; +}; + +struct userspace_policy { + unsigned int is_managed; + unsigned int setspeed; + struct mutex mutex; +}; + +struct userstack_entry { + struct trace_entry ent; + unsigned int tgid; + long unsigned int caller[8]; +}; + +struct ustat { + __kernel_daddr_t f_tfree; + long unsigned int f_tinode; + char f_fname[6]; + char f_fpack[6]; +}; + +struct ustring_buffer { + char buffer[1024]; +}; + +struct utf8_table { + int cmask; + int cval; + int shift; + long int lmask; + long int lval; +}; + +struct utf8cursor { + const struct unicode_map *um; + enum utf8_normalization n; + const char *s; + const char *p; + const char *ss; + const char *sp; + unsigned int len; + unsigned int slen; + short int ccc; + short int nccc; + unsigned char hangul[12]; +}; + +struct utf8data { + unsigned int maxage; + unsigned int offset; +}; + +struct utf8data_table { + const unsigned int *utf8agetab; + int utf8agetab_size; + const struct utf8data *utf8nfdicfdata; + int utf8nfdicfdata_size; + const struct utf8data *utf8nfdidata; + int utf8nfdidata_size; + const unsigned char *utf8data; +}; + +struct utimbuf { + __kernel_old_time_t actime; + __kernel_old_time_t modtime; +}; + +struct uts_namespace { + struct new_utsname name; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct ns_common ns; +}; + +union uu { + short unsigned int us; + unsigned char b[2]; +}; + +struct uuidcmp { + const char *uuid; + int len; +}; + +struct uv2h_gr0_gam_gr_config_s { + long unsigned int n_gr: 4; + long unsigned int reserved: 60; +}; + +struct uv2h_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 15; + long unsigned int rsvd_47_49: 3; + long unsigned int nodes_per_bit: 7; + long unsigned int ni_port: 5; + long unsigned int rsvd_62_63: 2; +}; + +struct uv2h_rh_gam_addr_map_config_s { + long unsigned int m_skt: 6; + long unsigned int n_skt: 4; + long unsigned int rsvd_10_63: 54; +}; + +struct uv2h_rh_gam_alias_2_overlay_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int base: 8; + long unsigned int rsvd_32_47: 16; + long unsigned int m_alias: 5; + long unsigned int rsvd_53_62: 10; + long unsigned int enable: 1; +}; + +struct uv2h_rh_gam_alias_2_redirect_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int dest_base: 22; + long unsigned int rsvd_46_63: 18; +}; + +struct uv2h_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_27: 28; + long unsigned int base: 18; + long unsigned int rsvd_46_51: 6; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv2h_rh_gam_mmioh_overlay_config_s { + long unsigned int rsvd_0_26: 27; + long unsigned int base: 19; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv2h_rh_gam_mmr_overlay_config_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int rsvd_46_62: 17; + long unsigned int enable: 1; +}; + +struct uv3h_gr0_gam_gr_config_s { + long unsigned int m_skt: 6; + long unsigned int undef_6_9: 4; + long unsigned int subspace: 1; + long unsigned int reserved: 53; +}; + +struct uv3h_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 15; + long unsigned int rsvd_47: 1; + long unsigned int router_select: 1; + long unsigned int rsvd_49: 1; + long unsigned int nodes_per_bit: 7; + long unsigned int ni_port: 5; + long unsigned int rsvd_62_63: 2; +}; + +struct uv3h_rh_gam_addr_map_config_s { + long unsigned int m_skt: 6; + long unsigned int n_skt: 4; + long unsigned int rsvd_10_63: 54; +}; + +struct uv3h_rh_gam_alias_2_overlay_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int base: 8; + long unsigned int rsvd_32_47: 16; + long unsigned int m_alias: 5; + long unsigned int rsvd_53_62: 10; + long unsigned int enable: 1; +}; + +struct uv3h_rh_gam_alias_2_redirect_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int dest_base: 22; + long unsigned int rsvd_46_63: 18; +}; + +struct uv3h_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_27: 28; + long unsigned int base: 18; + long unsigned int rsvd_46_51: 6; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_61: 6; + long unsigned int mode: 1; + long unsigned int enable: 1; +}; + +struct uv3h_rh_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv3h_rh_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv3h_rh_gam_mmr_overlay_config_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int rsvd_46_62: 17; + long unsigned int enable: 1; +}; + +struct uv4ah_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_24: 25; + long unsigned int undef_25: 1; + long unsigned int base: 26; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv4ah_rh_gam_mmioh_overlay_config0_mmr_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uv4ah_rh_gam_mmioh_overlay_config1_mmr_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uv4h_gr0_gam_gr_config_s { + long unsigned int rsvd_0_9: 10; + long unsigned int subspace: 1; + long unsigned int rsvd_11_63: 53; +}; + +struct uv4h_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 15; + long unsigned int rsvd_47: 1; + long unsigned int router_select: 1; + long unsigned int rsvd_49: 1; + long unsigned int nodes_per_bit: 7; + long unsigned int ni_port: 5; + long unsigned int rsvd_62_63: 2; +}; + +struct uv4h_rh_gam_addr_map_config_s { + long unsigned int rsvd_0_5: 6; + long unsigned int n_skt: 4; + long unsigned int rsvd_10_63: 54; +}; + +struct uv4h_rh_gam_alias_2_overlay_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int base: 8; + long unsigned int rsvd_32_47: 16; + long unsigned int m_alias: 5; + long unsigned int rsvd_53_62: 10; + long unsigned int enable: 1; +}; + +struct uv4h_rh_gam_alias_2_redirect_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int dest_base: 22; + long unsigned int rsvd_46_63: 18; +}; + +struct uv4h_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_24: 25; + long unsigned int undef_25: 1; + long unsigned int base: 20; + long unsigned int rsvd_46_51: 6; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv4h_rh_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv4h_rh_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv4h_rh_gam_mmr_overlay_config_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int rsvd_46_62: 17; + long unsigned int enable: 1; +}; + +struct uv5h_gr0_gam_gr_config_s { + long unsigned int rsvd_0_9: 10; + long unsigned int subspace: 1; + long unsigned int rsvd_11_63: 53; +}; + +struct uv5h_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 7; + long unsigned int rsvd_39_56: 18; + long unsigned int ni_port: 6; + long unsigned int rsvd_63: 1; +}; + +struct uv5h_rh10_gam_addr_map_config_s { + long unsigned int undef_0_5: 6; + long unsigned int n_skt: 3; + long unsigned int undef_9_11: 3; + long unsigned int ls_enable: 1; + long unsigned int undef_13_15: 3; + long unsigned int mk_tme_keyid_bits: 4; +}; + +struct uv5h_rh10_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uv5h_rh10_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uv5h_rh10_gam_mmr_overlay_config_s { + long unsigned int undef_0_24: 25; + long unsigned int base: 27; + long unsigned int undef_52_62: 11; + long unsigned int enable: 1; +}; + +struct uv_IO_APIC_route_entry { + __u64 vector: 8; + __u64 delivery_mode: 3; + __u64 dest_mode: 1; + __u64 delivery_status: 1; + __u64 polarity: 1; + __u64 __reserved_1: 1; + __u64 trigger: 1; + __u64 mask: 1; + __u64 __reserved_2: 15; + __u64 dest: 32; +}; + +struct uv_arch_type_entry { + char archtype[8]; +}; + +struct uv_cpu_info_s { + void *p_uv_hub_info; + unsigned char blade_cpu_id; + void *reserved; +}; + +struct uv_hub_nmi_s; + +struct uv_cpu_nmi_s { + struct uv_hub_nmi_s *hub; + int state; + int pinging; + int queries; + int pings; +}; + +struct uv_gam_parameters { + u64 mmr_base; + u64 gru_base; + u8 mmr_shift; + u8 gru_shift; + u8 gpa_shift; + u8 unused1; +}; + +struct uv_gam_range_entry { + char type; + char unused1; + u16 nasid; + u16 sockid; + u16 pnode; + u32 unused2; + u32 limit; +}; + +struct uv_gam_range_s { + u32 limit; + u16 nasid; + s8 base; + u8 reserved; +}; + +struct uv_hub_info_s { + unsigned int hub_type; + unsigned char hub_revision; + long unsigned int global_mmr_base; + long unsigned int global_mmr_shift; + long unsigned int gpa_mask; + short unsigned int *socket_to_node; + short unsigned int *socket_to_pnode; + short unsigned int *pnode_to_socket; + struct uv_gam_range_s *gr_table; + short unsigned int min_socket; + short unsigned int min_pnode; + unsigned char m_val; + unsigned char n_val; + unsigned char gr_table_len; + unsigned char apic_pnode_shift; + unsigned char gpa_shift; + unsigned char nasid_shift; + unsigned char m_shift; + unsigned char n_lshift; + unsigned int gnode_extra; + long unsigned int gnode_upper; + long unsigned int lowmem_remap_top; + long unsigned int lowmem_remap_base; + long unsigned int global_gru_base; + long unsigned int global_gru_shift; + short unsigned int pnode; + short unsigned int pnode_mask; + short unsigned int coherency_domain_number; + short unsigned int numa_blade_id; + short unsigned int nr_possible_cpus; + short unsigned int nr_online_cpus; + short int memory_nid; + short unsigned int *node_to_socket; +}; + +struct uv_hub_nmi_s { + raw_spinlock_t nmi_lock; + atomic_t in_nmi; + atomic_t cpu_owner; + atomic_t read_mmr_count; + atomic_t nmi_count; + long unsigned int nmi_value; + bool hub_present; + bool pch_owner; +}; + +struct uv_irq_2_mmr_pnode { + long unsigned int offset; + int pnode; +}; + +struct uv_rtc_timer_head { + spinlock_t lock; + int next_cpu; + int ncpus; + struct { + int lcpu; + u64 expires; + } cpu[0]; +}; + +struct uv_systab { + char signature[4]; + u32 revision; + u64 (*function)(enum uv_bios_cmd, ...); + u32 size; + struct { + u32 type: 8; + u32 offset: 24; + } entry[1]; +}; + +struct uvh_apicid_s { + long unsigned int local_apic_mask: 24; + long unsigned int local_apic_shift: 5; + long unsigned int unused1: 3; + long unsigned int pnode_mask: 24; + long unsigned int pnode_shift: 5; + long unsigned int unused2: 3; +}; + +union uvh_apicid { + long unsigned int v; + struct uvh_apicid_s s; +}; + +struct uvh_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int rsvd_32_63: 32; +}; + +struct uvxh_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 15; + long unsigned int rsvd_47_49: 3; + long unsigned int nodes_per_bit: 7; + long unsigned int ni_port: 5; + long unsigned int rsvd_62_63: 2; +}; + +struct uvyh_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 7; + long unsigned int rsvd_39_56: 18; + long unsigned int ni_port: 6; + long unsigned int rsvd_63: 1; +}; + +union uvh_node_id_u { + long unsigned int v; + struct uvh_node_id_s s; + struct uvxh_node_id_s sx; + struct uvyh_node_id_s sy; + struct uv5h_node_id_s s5; + struct uv4h_node_id_s s4; + struct uv3h_node_id_s s3; + struct uv2h_node_id_s s2; +}; + +struct uvh_rh10_gam_addr_map_config_s { + long unsigned int undef_0_5: 6; + long unsigned int n_skt: 3; + long unsigned int undef_9_11: 3; + long unsigned int ls_enable: 1; + long unsigned int undef_13_15: 3; + long unsigned int mk_tme_keyid_bits: 4; + long unsigned int rsvd_20_63: 44; +}; + +struct uvyh_rh10_gam_addr_map_config_s { + long unsigned int undef_0_5: 6; + long unsigned int n_skt: 3; + long unsigned int undef_9_11: 3; + long unsigned int ls_enable: 1; + long unsigned int undef_13_15: 3; + long unsigned int mk_tme_keyid_bits: 4; + long unsigned int rsvd_20_63: 44; +}; + +union uvh_rh10_gam_addr_map_config_u { + long unsigned int v; + struct uvh_rh10_gam_addr_map_config_s s; + struct uvyh_rh10_gam_addr_map_config_s sy; + struct uv5h_rh10_gam_addr_map_config_s s5; +}; + +struct uvh_rh10_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uvyh_rh10_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +union uvh_rh10_gam_mmioh_overlay_config0_u { + long unsigned int v; + struct uvh_rh10_gam_mmioh_overlay_config0_s s; + struct uvyh_rh10_gam_mmioh_overlay_config0_s sy; + struct uv5h_rh10_gam_mmioh_overlay_config0_s s5; +}; + +struct uvh_rh10_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uvyh_rh10_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +union uvh_rh10_gam_mmioh_overlay_config1_u { + long unsigned int v; + struct uvh_rh10_gam_mmioh_overlay_config1_s s; + struct uvyh_rh10_gam_mmioh_overlay_config1_s sy; + struct uv5h_rh10_gam_mmioh_overlay_config1_s s5; +}; + +struct uvh_rh10_gam_mmr_overlay_config_s { + long unsigned int undef_0_24: 25; + long unsigned int base: 27; + long unsigned int undef_52_62: 11; + long unsigned int enable: 1; +}; + +struct uvyh_rh10_gam_mmr_overlay_config_s { + long unsigned int undef_0_24: 25; + long unsigned int base: 27; + long unsigned int undef_52_62: 11; + long unsigned int enable: 1; +}; + +union uvh_rh10_gam_mmr_overlay_config_u { + long unsigned int v; + struct uvh_rh10_gam_mmr_overlay_config_s s; + struct uvyh_rh10_gam_mmr_overlay_config_s sy; + struct uv5h_rh10_gam_mmr_overlay_config_s s5; +}; + +struct uvh_rh_gam_addr_map_config_s { + long unsigned int rsvd_0_5: 6; + long unsigned int n_skt: 4; + long unsigned int rsvd_10_63: 54; +}; + +struct uvxh_rh_gam_addr_map_config_s { + long unsigned int rsvd_0_5: 6; + long unsigned int n_skt: 4; + long unsigned int rsvd_10_63: 54; +}; + +union uvh_rh_gam_addr_map_config_u { + long unsigned int v; + struct uvh_rh_gam_addr_map_config_s s; + struct uvxh_rh_gam_addr_map_config_s sx; + struct uv4h_rh_gam_addr_map_config_s s4; + struct uv3h_rh_gam_addr_map_config_s s3; + struct uv2h_rh_gam_addr_map_config_s s2; +}; + +struct uvh_rh_gam_alias_2_overlay_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int base: 8; + long unsigned int rsvd_32_47: 16; + long unsigned int m_alias: 5; + long unsigned int rsvd_53_62: 10; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_alias_2_overlay_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int base: 8; + long unsigned int rsvd_32_47: 16; + long unsigned int m_alias: 5; + long unsigned int rsvd_53_62: 10; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_alias_2_overlay_config_u { + long unsigned int v; + struct uvh_rh_gam_alias_2_overlay_config_s s; + struct uvxh_rh_gam_alias_2_overlay_config_s sx; + struct uv4h_rh_gam_alias_2_overlay_config_s s4; + struct uv3h_rh_gam_alias_2_overlay_config_s s3; + struct uv2h_rh_gam_alias_2_overlay_config_s s2; +}; + +struct uvh_rh_gam_alias_2_redirect_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int dest_base: 22; + long unsigned int rsvd_46_63: 18; +}; + +struct uvxh_rh_gam_alias_2_redirect_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int dest_base: 22; + long unsigned int rsvd_46_63: 18; +}; + +union uvh_rh_gam_alias_2_redirect_config_u { + long unsigned int v; + struct uvh_rh_gam_alias_2_redirect_config_s s; + struct uvxh_rh_gam_alias_2_redirect_config_s sx; + struct uv4h_rh_gam_alias_2_redirect_config_s s4; + struct uv3h_rh_gam_alias_2_redirect_config_s s3; + struct uv2h_rh_gam_alias_2_redirect_config_s s2; +}; + +struct uvh_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_45: 46; + long unsigned int rsvd_46_51: 6; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_45: 46; + long unsigned int rsvd_46_51: 6; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_gru_overlay_config_u { + long unsigned int v; + struct uvh_rh_gam_gru_overlay_config_s s; + struct uvxh_rh_gam_gru_overlay_config_s sx; + struct uv4ah_rh_gam_gru_overlay_config_s s4a; + struct uv4h_rh_gam_gru_overlay_config_s s4; + struct uv3h_rh_gam_gru_overlay_config_s s3; + struct uv2h_rh_gam_gru_overlay_config_s s2; +}; + +struct uvh_rh_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_mmioh_overlay_config0_u { + long unsigned int v; + struct uvh_rh_gam_mmioh_overlay_config0_s s; + struct uvxh_rh_gam_mmioh_overlay_config0_s sx; + struct uv4ah_rh_gam_mmioh_overlay_config0_mmr_s s4a; + struct uv4h_rh_gam_mmioh_overlay_config0_s s4; + struct uv3h_rh_gam_mmioh_overlay_config0_s s3; +}; + +struct uvh_rh_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_mmioh_overlay_config1_u { + long unsigned int v; + struct uvh_rh_gam_mmioh_overlay_config1_s s; + struct uvxh_rh_gam_mmioh_overlay_config1_s sx; + struct uv4ah_rh_gam_mmioh_overlay_config1_mmr_s s4a; + struct uv4h_rh_gam_mmioh_overlay_config1_s s4; + struct uv3h_rh_gam_mmioh_overlay_config1_s s3; +}; + +struct uvh_rh_gam_mmioh_overlay_config_s { + long unsigned int rsvd_0_26: 27; + long unsigned int base: 19; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_mmioh_overlay_config_s { + long unsigned int rsvd_0_26: 27; + long unsigned int base: 19; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_mmioh_overlay_config_u { + long unsigned int v; + struct uvh_rh_gam_mmioh_overlay_config_s s; + struct uvxh_rh_gam_mmioh_overlay_config_s sx; + struct uv2h_rh_gam_mmioh_overlay_config_s s2; +}; + +struct uvh_rh_gam_mmr_overlay_config_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int rsvd_46_62: 17; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_mmr_overlay_config_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int rsvd_46_62: 17; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_mmr_overlay_config_u { + long unsigned int v; + struct uvh_rh_gam_mmr_overlay_config_s s; + struct uvxh_rh_gam_mmr_overlay_config_s sx; + struct uv4h_rh_gam_mmr_overlay_config_s s4; + struct uv3h_rh_gam_mmr_overlay_config_s s3; + struct uv2h_rh_gam_mmr_overlay_config_s s2; +}; + +struct uvyh_gr0_gam_gr_config_s { + long unsigned int rsvd_0_9: 10; + long unsigned int subspace: 1; + long unsigned int rsvd_11_63: 53; +}; + +union uvyh_gr0_gam_gr_config_u { + long unsigned int v; + struct uvyh_gr0_gam_gr_config_s sy; + struct uv5h_gr0_gam_gr_config_s s5; + struct uv4h_gr0_gam_gr_config_s s4; + struct uv3h_gr0_gam_gr_config_s s3; + struct uv2h_gr0_gam_gr_config_s s2; +}; + +struct va_alignment { + int flags; + long unsigned int mask; + long unsigned int bits; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct va_format { + const char *fmt; + va_list *va; +}; + +struct val_table_ent { + const char *str; + int value; +}; + +struct value_name_pair { + int value; + const char *name; +}; + +struct var_mtrr_range_state { + long unsigned int base_pfn; + long unsigned int size_pfn; + mtrr_type type; +}; + +struct var_mtrr_state { + long unsigned int range_startk; + long unsigned int range_sizek; + long unsigned int chunk_sizek; + long unsigned int gran_sizek; + unsigned int reg; +}; + +struct variable_validate { + efi_guid_t vendor; + char *name; + bool (*validate)(efi_char16_t *, int, u8 *, long unsigned int); +}; + +struct vblk_comp { + u8 state[16]; + u64 parent_id; + u8 type; + u8 children; + u16 chunksize; +}; + +struct vblk_dgrp { + u8 disk_id[64]; +}; + +struct vblk_disk { + uuid_t disk_id; + u8 alt_name[128]; +}; + +struct vblk_part { + u64 start; + u64 size; + u64 volume_offset; + u64 parent_id; + u64 disk_id; + u8 partnum; +}; + +struct vblk_volu { + u8 volume_type[16]; + u8 volume_state[16]; + u8 guid[16]; + u8 drive_hint[4]; + u64 size; + u8 partition_type; +}; + +struct vblk { + u8 name[64]; + u64 obj_id; + u32 sequence; + u8 flags; + u8 type; + union { + struct vblk_comp comp; + struct vblk_dgrp dgrp; + struct vblk_disk disk; + struct vblk_part part; + struct vblk_volu volu; + } vblk; + struct list_head list; +}; + +struct vc { + struct vc_data *d; + struct work_struct SAK_work; +}; + +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 vt_mode { + char mode; + char waitv; + short int relsig; + short int acqsig; + short int frsig; +}; + +struct vc_data { + struct tty_port port; + struct vc_state state; + struct vc_state saved_state; + short unsigned int 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; + long unsigned int vc_origin; + long unsigned int vc_scr_end; + long unsigned int vc_visible_origin; + unsigned int vc_top; + unsigned int vc_bottom; + const struct consw *vc_sw; + short unsigned int *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; + short unsigned int vc_complement_mask; + short unsigned int vc_s_complement_mask; + long unsigned int vc_pos; + short unsigned int vc_hi_font_mask; + struct console_font vc_font; + short unsigned int 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; + long unsigned int vc_tab_stop[4]; + unsigned char vc_palette[48]; + short unsigned int *vc_translate; + unsigned int vc_bell_pitch; + unsigned int vc_bell_duration; + short unsigned int vc_cur_blink_ms; + struct vc_data **vc_display_fg; + struct uni_pagedict *uni_pagedict; + struct uni_pagedict **uni_pagedict_loc; + u32 **vc_uni_lines; +}; + +struct vc_draw_region { + long unsigned int from; + long unsigned int to; + int x; +}; + +struct vc_selection { + struct mutex lock; + struct vc_data *cons; + char *buffer; + unsigned int buf_len; + volatile int start; + int end; +}; + +struct vcap_actionset_list { + int max; + int cnt; + enum vcap_actionfield_set *actionsets; +}; + +struct vcap_cache_data { + u32 *keystream; + u32 *maskstream; + u32 *actionstream; + u32 counter; + bool sticky; +}; + +struct vcap_admin { + struct list_head list; + struct list_head rules; + struct list_head enabled; + struct mutex lock; + enum vcap_type vtype; + int vinst; + int first_cid; + int last_cid; + int tgt_inst; + int lookups; + int lookups_per_instance; + int last_valid_addr; + int first_valid_addr; + int last_used_addr; + bool w32be; + bool ingress; + struct vcap_cache_data cache; +}; + +struct vcap_control; + +struct vcap_admin_debugfs_info { + struct vcap_control *vctrl; + struct vcap_admin *admin; +}; + +struct vcap_client_actionfield_ctrl { + struct list_head list; + enum vcap_action_field action; + enum vcap_field_type type; +}; + +struct vcap_u1_action { + u8 value; +}; + +struct vcap_u32_action { + u32 value; +}; + +struct vcap_u48_action { + u8 value[6]; +}; + +struct vcap_u56_action { + u8 value[7]; +}; + +struct vcap_u64_action { + u8 value[8]; +}; + +struct vcap_u72_action { + u8 value[9]; +}; + +struct vcap_u112_action { + u8 value[14]; +}; + +struct vcap_u128_action { + u8 value[16]; +}; + +struct vcap_client_actionfield_data { + union { + struct vcap_u1_action u1; + struct vcap_u32_action u32; + struct vcap_u48_action u48; + struct vcap_u56_action u56; + struct vcap_u64_action u64; + struct vcap_u72_action u72; + struct vcap_u112_action u112; + struct vcap_u128_action u128; + }; +}; + +struct vcap_client_actionfield { + struct vcap_client_actionfield_ctrl ctrl; + struct vcap_client_actionfield_data data; +}; + +struct vcap_client_keyfield_ctrl { + struct list_head list; + enum vcap_key_field key; + enum vcap_field_type type; +}; + +struct vcap_u1_key { + u8 value; + u8 mask; +}; + +struct vcap_u32_key { + u32 value; + u32 mask; +}; + +struct vcap_u48_key { + u8 value[6]; + u8 mask[6]; +}; + +struct vcap_u56_key { + u8 value[7]; + u8 mask[7]; +}; + +struct vcap_u64_key { + u8 value[8]; + u8 mask[8]; +}; + +struct vcap_u72_key { + u8 value[9]; + u8 mask[9]; +}; + +struct vcap_u112_key { + u8 value[14]; + u8 mask[14]; +}; + +struct vcap_u128_key { + u8 value[16]; + u8 mask[16]; +}; + +struct vcap_client_keyfield_data { + union { + struct vcap_u1_key u1; + struct vcap_u32_key u32; + struct vcap_u48_key u48; + struct vcap_u56_key u56; + struct vcap_u64_key u64; + struct vcap_u72_key u72; + struct vcap_u112_key u112; + struct vcap_u128_key u128; + }; +}; + +struct vcap_client_keyfield { + struct vcap_client_keyfield_ctrl ctrl; + struct vcap_client_keyfield_data data; +}; + +struct vcap_operations; + +struct vcap_info; + +struct vcap_statistics; + +struct vcap_control { + const struct vcap_operations *ops; + const struct vcap_info *vcaps; + const struct vcap_statistics *stats; + struct list_head list; +}; + +struct vcap_counter { + u32 value; + bool sticky; +}; + +struct vcap_enabled_port { + struct list_head list; + struct net_device *ndev; + long unsigned int cookie; + int src_cid; + int dst_cid; +}; + +struct vcap_field { + u16 type; + u16 width; + u16 offset; +}; + +struct vcap_set; + +struct vcap_typegroup; + +struct vcap_info { + char *name; + u16 rows; + u16 sw_count; + u16 sw_width; + u16 sticky_width; + u16 act_width; + u16 default_cnt; + u16 require_cnt_dis; + u16 version; + const struct vcap_set *keyfield_set; + int keyfield_set_size; + const struct vcap_set *actionfield_set; + int actionfield_set_size; + const struct vcap_field **keyfield_set_map; + int *keyfield_set_map_size; + const struct vcap_field **actionfield_set_map; + int *actionfield_set_map_size; + const struct vcap_typegroup **keyfield_set_typegroups; + const struct vcap_typegroup **actionfield_set_typegroups; +}; + +struct vcap_keyset_list { + int max; + int cnt; + enum vcap_keyfield_set *keysets; +}; + +struct vcap_rule; + +struct vcap_output_print; + +struct vcap_operations { + enum vcap_keyfield_set (*validate_keyset)(struct net_device *, struct vcap_admin *, struct vcap_rule *, struct vcap_keyset_list *, u16); + void (*add_default_fields)(struct net_device *, struct vcap_admin *, struct vcap_rule *); + void (*cache_erase)(struct vcap_admin *); + void (*cache_write)(struct net_device *, struct vcap_admin *, enum vcap_selection, u32, u32); + void (*cache_read)(struct net_device *, struct vcap_admin *, enum vcap_selection, u32, u32); + void (*init)(struct net_device *, struct vcap_admin *, u32, u32); + void (*update)(struct net_device *, struct vcap_admin *, enum vcap_command, enum vcap_selection, u32); + void (*move)(struct net_device *, struct vcap_admin *, u32, int, int); + int (*port_info)(struct net_device *, struct vcap_admin *, struct vcap_output_print *); +}; + +struct vcap_output_print { + void (*prf)(void *, const char *, ...); + void *dst; +}; + +struct vcap_port_debugfs_info { + struct vcap_control *vctrl; + struct net_device *ndev; +}; + +struct vcap_rule { + int vcap_chain_id; + enum vcap_user user; + u16 priority; + u32 id; + u64 cookie; + struct list_head keyfields; + struct list_head actionfields; + enum vcap_keyfield_set keyset; + enum vcap_actionfield_set actionset; + enum vcap_rule_error exterr; + u64 client; +}; + +struct vcap_rule_internal { + struct vcap_rule data; + struct list_head list; + struct vcap_admin *admin; + struct net_device *ndev; + struct vcap_control *vctrl; + u32 sort_key; + int keyset_sw; + int actionset_sw; + int keyset_sw_regs; + int actionset_sw_regs; + int size; + u32 addr; + u32 counter_id; + struct vcap_counter counter; + enum vcap_rule_state state; +}; + +struct vcap_rule_move { + int addr; + int offset; + int count; +}; + +struct vcap_set { + u8 type_id; + u8 sw_per_item; + u8 sw_cnt; +}; + +struct vcap_statistics { + char *name; + int count; + const char * const *keyfield_set_names; + const char * const *actionfield_set_names; + const char * const *keyfield_names; + const char * const *actionfield_names; +}; + +struct vcap_stream_iter { + u32 offset; + u32 sw_width; + u32 regs_per_sw; + u32 reg_idx; + u32 reg_bitpos; + const struct vcap_typegroup *tg; +}; + +struct vcap_tc_flower_parse_usage { + struct flow_cls_offload *fco; + struct flow_rule *frule; + struct vcap_rule *vrule; + struct vcap_admin *admin; + u16 l3_proto; + u8 l4_proto; + u16 tpid; + long long unsigned int used_keys; +}; + +struct vcap_typegroup { + u16 offset; + u16 width; + u16 value; +}; + +struct vcpu_data { + u64 pi_desc_addr; + u32 vector; +}; + +struct vcpu_guest_context { + struct { + char x[512]; + } fpu_ctxt; + long unsigned int flags; + struct cpu_user_regs user_regs; + struct trap_info trap_ctxt[256]; + long unsigned int ldt_base; + long unsigned int ldt_ents; + long unsigned int gdt_frames[16]; + long unsigned int gdt_ents; + long unsigned int kernel_ss; + long unsigned int kernel_sp; + long unsigned int ctrlreg[8]; + long unsigned int debugreg[8]; + long unsigned int event_callback_eip; + long unsigned int failsafe_callback_eip; + long unsigned int syscall_callback_eip; + long unsigned int vm_assist; + uint64_t fs_base; + uint64_t gs_base_kernel; + uint64_t gs_base_user; +}; + +struct vcpu_runstate_info; + +typedef struct vcpu_runstate_info *__guest_handle_vcpu_runstate_info; + +struct vcpu_register_runstate_memory_area { + union { + __guest_handle_vcpu_runstate_info h; + struct vcpu_runstate_info *v; + uint64_t p; + } addr; +}; + +struct vcpu_time_info; + +typedef struct vcpu_time_info *__guest_handle_vcpu_time_info; + +struct vcpu_register_time_memory_area { + union { + __guest_handle_vcpu_time_info h; + struct pvclock_vcpu_time_info *v; + uint64_t p; + } addr; +}; + +struct vcpu_register_vcpu_info { + uint64_t mfn; + uint32_t offset; + uint32_t rsvd; +}; + +struct vcpu_runstate_info { + int state; + uint64_t state_entry_time; + uint64_t time[4]; +}; + +struct vcpu_set_singleshot_timer { + uint64_t timeout_abs_ns; + uint32_t flags; +}; + +struct vcpu_time_info { + uint32_t version; + uint32_t pad0; + uint64_t tsc_timestamp; + uint64_t system_time; + uint32_t tsc_to_system_mul; + int8_t tsc_shift; + int8_t pad1[3]; +}; + +struct vcs_poll_data { + struct notifier_block notifier; + unsigned int cons_num; + int event; + wait_queue_head_t waitq; + struct fasync_struct *fasync; +}; + +struct vdso_timestamp { + u64 sec; + u64 nsec; +}; + +struct vdso_data { + u32 seq; + s32 clock_mode; + u64 cycle_last; + u64 max_cycles; + 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_time_data arch_data; +}; + +union vdso_data_store { + struct vdso_data data[2]; + u8 page[4096]; +}; + +struct vdso_exception_table_entry { + int insn; + int fixup; +}; + +struct vdso_image { + void *data; + long unsigned int size; + long unsigned int alt; + long unsigned int alt_len; + long unsigned int extable_base; + long unsigned int extable_len; + const void *extable; + long int sym_vvar_start; + long int sym_vvar_page; + long int sym_pvclock_page; + long int sym_hvclock_page; + long int sym_timens_page; + long int sym_VDSO32_NOTE_MASK; + long int sym___kernel_sigreturn; + long int sym___kernel_rt_sigreturn; + long int sym___kernel_vsyscall; + long int sym_int80_landing_pad; + long int sym_vdso32_sigreturn_landing_pad; + long int sym_vdso32_rt_sigreturn_landing_pad; +}; + +struct vdso_rng_data { + u64 generation; + u8 is_ready; +}; + +struct ve_info { + u64 exit_reason; + u64 exit_qual; + u64 gla; + u64 gpa; + u32 instr_len; + u32 instr_info; +}; + +struct vector_cleanup { + struct hlist_head head; + struct timer_list timer; +}; + +struct vers_iter { + size_t param_size; + struct dm_target_versions *vers; + struct dm_target_versions *old_vers; + char *end; + uint32_t flags; +}; + +struct veth { + __be16 h_vlan_proto; + __be16 h_vlan_TCI; +}; + +struct vfree_deferred { + struct llist_head list; + struct work_struct wq; +}; + +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 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 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_switcheroo_client_ops; + +struct vga_switcheroo_client { + struct pci_dev *pdev; + struct fb_info *fb_info; + enum vga_switcheroo_state pwr_state; + const struct vga_switcheroo_client_ops *ops; + enum vga_switcheroo_client_id id; + bool active; + bool driver_power_control; + struct list_head list; + struct pci_dev *vga_dev; +}; + +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 vga_switcheroo_handler { + int (*init)(void); + int (*switchto)(enum vga_switcheroo_client_id); + int (*switch_ddc)(enum vga_switcheroo_client_id); + int (*power_state)(enum vga_switcheroo_client_id, enum vga_switcheroo_state); + enum vga_switcheroo_client_id (*get_client_id)(struct pci_dev *); +}; + +struct vgasr_priv { + bool active; + bool delayed_switch_active; + enum vga_switcheroo_client_id delayed_client_id; + struct dentry *debugfs_root; + int registered_clients; + struct list_head clients; + const struct vga_switcheroo_handler *handler; + enum vga_switcheroo_handler_flags_t handler_flags; + struct mutex mux_hw_lock; + int old_ddc_owner; +}; + +struct vgastate { + void *vgabase; + long unsigned int membase; + __u32 memsize; + __u32 flags; + __u32 depth; + __u32 num_attr; + __u32 num_crtc; + __u32 num_gfx; + __u32 num_seq; + void *vidstate; +}; + +struct vgda { + __be32 secs; + __be32 usec; + char reserved8[16]; + __be16 numlvs; + __be16 maxlvs; + __be16 pp_size; + __be16 numpvs; + __be16 total_vgdas; + __be16 vgda_size; +}; + +struct vhost_task { + bool (*fn)(void *); + void (*handle_sigkill)(void *); + void *data; + struct completion exited; + long unsigned int flags; + struct task_struct *task; + struct mutex exit_mutex; +}; + +struct videomode { + long unsigned int pixelclock; + u32 hactive; + u32 hfront_porch; + u32 hback_porch; + u32 hsync_len; + u32 vactive; + u32 vfront_porch; + u32 vback_porch; + u32 vsync_len; + enum display_flags flags; +}; + +struct vif_entry_notifier_info { + struct fib_notifier_info info; + struct net_device *dev; + short unsigned int vif_index; + short unsigned int vif_flags; + u32 tb_id; +}; + +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 viommu_dev { + struct iommu_device iommu; + struct device *dev; + struct virtio_device *vdev; + struct ida domain_ids; + struct virtqueue *vqs[2]; + spinlock_t request_lock; + struct list_head requests; + void *evts; + struct iommu_domain_geometry geometry; + u64 pgsize_bitmap; + u32 first_domain; + u32 last_domain; + u32 map_flags; + u32 probe_size; +}; + +struct viommu_domain { + struct iommu_domain domain; + struct viommu_dev *viommu; + struct mutex mutex; + unsigned int id; + u32 map_flags; + spinlock_t mappings_lock; + struct rb_root_cached mappings; + long unsigned int nr_endpoints; + bool bypass; +}; + +struct viommu_endpoint { + struct device *dev; + struct viommu_dev *viommu; + struct viommu_domain *vdomain; + struct list_head resv_regions; +}; + +struct virtio_iommu_fault { + __u8 reason; + __u8 reserved[3]; + __le32 flags; + __le32 endpoint; + __u8 reserved2[4]; + __le64 address; +}; + +struct viommu_event { + union { + u32 head; + struct virtio_iommu_fault fault; + }; +}; + +struct viommu_mapping { + phys_addr_t paddr; + struct interval_tree_node iova; + u32 flags; +}; + +struct viommu_request { + struct list_head list; + void *writeback; + unsigned int write_offset; + unsigned int len; + char buf[0]; +}; + +struct viot_iommu; + +struct viot_endpoint { + union { + struct { + u16 segment_start; + u16 segment_end; + u16 bdf_start; + u16 bdf_end; + }; + u64 address; + }; + u32 endpoint_id; + struct viot_iommu *viommu; + struct list_head list; +}; + +struct viot_iommu { + unsigned int offset; + struct fwnode_handle *fwnode; + struct list_head list; +}; + +struct virtio_blk_outhdr { + __virtio32 type; + __virtio32 ioprio; + __virtio64 sector; +}; + +struct virtblk_req { + struct virtio_blk_outhdr out_hdr; + union { + u8 status; + struct { + __virtio64 sector; + u8 status; + } zone_append; + } in_hdr; + size_t in_hdr_len; + struct sg_table sg_table; + struct scatterlist sg[0]; +}; + +struct virtio_admin_cmd { + __le16 opcode; + __le16 group_type; + __le64 group_member_id; + struct scatterlist *data_sg; + struct scatterlist *result_sg; + struct completion completion; + u32 result_sg_size; + int ret; +}; + +struct virtio_admin_cmd_cap_get_data { + __le16 id; + __u8 reserved[6]; +}; + +struct virtio_admin_cmd_cap_set_data { + __le16 id; + __u8 reserved[6]; + __u8 cap_specific_data[0]; +}; + +struct virtio_admin_cmd_dev_mode_set_data { + __u8 flags; +}; + +struct virtio_admin_cmd_resource_obj_cmd_hdr { + __le16 type; + __u8 reserved[2]; + __le32 id; +}; + +struct virtio_dev_part_hdr { + __le16 part_type; + __u8 flags; + __u8 reserved; + union { + struct { + __le32 offset; + __le32 reserved; + } pci_common_cfg; + struct { + __le16 index; + __u8 reserved[6]; + } vq_index; + } selector; + __le32 length; +}; + +struct virtio_admin_cmd_dev_parts_get_data { + struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; + __u8 type; + __u8 reserved[7]; + struct virtio_dev_part_hdr hdr_list[0]; +}; + +struct virtio_admin_cmd_dev_parts_metadata_data { + struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; + __u8 type; + __u8 reserved[7]; +}; + +struct virtio_admin_cmd_dev_parts_metadata_result { + union { + struct { + __le32 size; + __le32 reserved; + } parts_size; + struct { + __le32 count; + __le32 reserved; + } hdr_list_count; + struct { + __le32 count; + __le32 reserved; + struct virtio_dev_part_hdr hdrs[0]; + } hdr_list; + }; +}; + +struct virtio_admin_cmd_hdr { + __le16 opcode; + __le16 group_type; + __u8 reserved1[12]; + __le64 group_member_id; +}; + +struct virtio_admin_cmd_legacy_rd_data { + __u8 offset; +}; + +struct virtio_admin_cmd_legacy_wr_data { + __u8 offset; + __u8 reserved[7]; + __u8 registers[0]; +}; + +struct virtio_admin_cmd_notify_info_data { + __u8 flags; + __u8 bar; + __u8 padding[6]; + __le64 offset; +}; + +struct virtio_admin_cmd_notify_info_result { + struct virtio_admin_cmd_notify_info_data entries[4]; +}; + +struct virtio_admin_cmd_query_cap_id_result { + __le64 supported_caps[1]; +}; + +struct virtio_admin_cmd_resource_obj_create_data { + struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; + __le64 flags; + __u8 resource_obj_specific_data[0]; +}; + +struct virtio_admin_cmd_status { + __le16 status; + __le16 status_qualifier; + __u8 reserved2[4]; +}; + +struct virtio_balloon_stat { + __virtio16 tag; + __virtio64 val; +} __attribute__((packed)); + +struct virtio_balloon { + struct virtio_device *vdev; + struct virtqueue *inflate_vq; + struct virtqueue *deflate_vq; + struct virtqueue *stats_vq; + struct virtqueue *free_page_vq; + struct workqueue_struct *balloon_wq; + struct work_struct report_free_page_work; + struct work_struct update_balloon_stats_work; + struct work_struct update_balloon_size_work; + spinlock_t stop_update_lock; + bool stop_update; + long unsigned int config_read_bitmap; + struct list_head free_page_list; + spinlock_t free_page_list_lock; + long unsigned int num_free_page_blocks; + u32 cmd_id_received_cache; + __virtio32 cmd_id_active; + __virtio32 cmd_id_stop; + wait_queue_head_t acked; + unsigned int num_pages; + struct balloon_dev_info vb_dev_info; + struct mutex balloon_lock; + unsigned int num_pfns; + __virtio32 pfns[256]; + struct virtio_balloon_stat stats[16]; + struct shrinker *shrinker; + struct notifier_block oom_nb; + struct virtqueue *reporting_vq; + struct page_reporting_dev_info pr_dev_info; + spinlock_t wakeup_lock; + bool processing_wakeup_event; + u32 wakeup_signal_mask; +}; + +struct virtio_balloon_config { + __le32 num_pages; + __le32 actual; + union { + __le32 free_page_hint_cmd_id; + __le32 free_page_report_cmd_id; + }; + __le32 poison_val; +}; + +struct virtio_blk_vq; + +struct virtio_blk { + struct mutex vdev_mutex; + struct virtio_device *vdev; + struct gendisk *disk; + struct blk_mq_tag_set tag_set; + struct work_struct config_work; + int index; + int num_vqs; + int io_queues[3]; + struct virtio_blk_vq *vqs; + unsigned int zone_sectors; +}; + +struct virtio_blk_geometry { + __virtio16 cylinders; + __u8 heads; + __u8 sectors; +}; + +struct virtio_blk_zoned_characteristics { + __virtio32 zone_sectors; + __virtio32 max_open_zones; + __virtio32 max_active_zones; + __virtio32 max_append_sectors; + __virtio32 write_granularity; + __u8 model; + __u8 unused2[3]; +}; + +struct virtio_blk_config { + __virtio64 capacity; + __virtio32 size_max; + __virtio32 seg_max; + struct virtio_blk_geometry geometry; + __virtio32 blk_size; + __u8 physical_block_exp; + __u8 alignment_offset; + __virtio16 min_io_size; + __virtio32 opt_io_size; + __u8 wce; + __u8 unused; + __virtio16 num_queues; + __virtio32 max_discard_sectors; + __virtio32 max_discard_seg; + __virtio32 discard_sector_alignment; + __virtio32 max_write_zeroes_sectors; + __virtio32 max_write_zeroes_seg; + __u8 write_zeroes_may_unmap; + __u8 unused1[3]; + __virtio32 max_secure_erase_sectors; + __virtio32 max_secure_erase_seg; + __virtio32 secure_erase_sector_alignment; + struct virtio_blk_zoned_characteristics zoned; +}; + +struct virtio_blk_discard_write_zeroes { + __le64 sector; + __le32 num_sectors; + __le32 flags; +}; + +struct virtio_blk_vq { + struct virtqueue *vq; + spinlock_t lock; + char name[16]; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct virtio_blk_zone_descriptor { + __virtio64 z_cap; + __virtio64 z_start; + __virtio64 z_wp; + __u8 z_type; + __u8 z_state; + __u8 reserved[38]; +}; + +struct virtio_blk_zone_report { + __virtio64 nr_zones; + __u8 reserved[56]; + struct virtio_blk_zone_descriptor zones[0]; +}; + +struct virtqueue_info; + +struct virtio_shm_region; + +struct virtio_config_ops { + void (*get)(struct virtio_device *, unsigned int, void *, unsigned int); + void (*set)(struct virtio_device *, unsigned int, const void *, unsigned int); + u32 (*generation)(struct virtio_device *); + u8 (*get_status)(struct virtio_device *); + void (*set_status)(struct virtio_device *, u8); + void (*reset)(struct virtio_device *); + int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, struct virtqueue_info *, 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 virtio_console_config { + __virtio16 cols; + __virtio16 rows; + __virtio32 max_nr_ports; + __virtio32 emerg_wr; +}; + +struct virtio_dev_parts_cap { + __u8 get_parts_resource_objects_limit; + __u8 set_parts_resource_objects_limit; +}; + +struct virtio_device_id { + __u32 device; + __u32 vendor; +}; + +struct vringh_config_ops; + +struct virtio_device { + int index; + bool failed; + bool config_core_enabled; + bool config_driver_disabled; + bool config_change_pending; + spinlock_t config_lock; + spinlock_t vqs_list_lock; + struct device dev; + struct virtio_device_id id; + const struct virtio_config_ops *config; + const struct vringh_config_ops *vringh_config; + struct list_head vqs; + u64 features; + void *priv; +}; + +struct 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 *); + int (*reset_prepare)(struct virtio_device *); + int (*reset_done)(struct virtio_device *); + void (*shutdown)(struct virtio_device *); +}; + +struct virtio_iommu_range_64 { + __le64 start; + __le64 end; +}; + +struct virtio_iommu_range_32 { + __le32 start; + __le32 end; +}; + +struct virtio_iommu_config { + __le64 page_size_mask; + struct virtio_iommu_range_64 input_range; + struct virtio_iommu_range_32 domain_range; + __le32 probe_size; + __u8 bypass; + __u8 reserved[3]; +}; + +struct virtio_iommu_probe_property { + __le16 type; + __le16 length; +}; + +struct virtio_iommu_probe_resv_mem { + struct virtio_iommu_probe_property head; + __u8 subtype; + __u8 reserved[3]; + __le64 start; + __le64 end; +}; + +struct virtio_iommu_req_head { + __u8 type; + __u8 reserved[3]; +}; + +struct virtio_iommu_req_tail { + __u8 status; + __u8 reserved[3]; +}; + +struct virtio_iommu_req_attach { + struct virtio_iommu_req_head head; + __le32 domain; + __le32 endpoint; + __le32 flags; + __u8 reserved[4]; + struct virtio_iommu_req_tail tail; +}; + +struct virtio_iommu_req_detach { + struct virtio_iommu_req_head head; + __le32 domain; + __le32 endpoint; + __u8 reserved[8]; + struct virtio_iommu_req_tail tail; +}; + +struct virtio_iommu_req_map { + struct virtio_iommu_req_head head; + __le32 domain; + __le64 virt_start; + __le64 virt_end; + __le64 phys_start; + __le32 flags; + struct virtio_iommu_req_tail tail; +}; + +struct virtio_iommu_req_probe { + struct virtio_iommu_req_head head; + __le32 endpoint; + __u8 reserved[64]; + __u8 properties[0]; +}; + +struct virtio_iommu_req_unmap { + struct virtio_iommu_req_head head; + __le32 domain; + __le64 virt_start; + __le64 virt_end; + __u8 reserved[4]; + struct virtio_iommu_req_tail tail; +}; + +struct virtio_mmio_device { + struct virtio_device vdev; + struct platform_device *pdev; + void *base; + long unsigned int version; + spinlock_t lock; + struct list_head virtqueues; +}; + +struct virtio_mmio_vq_info { + struct virtqueue *vq; + struct list_head node; +}; + +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_common_hdr { + union { + struct virtio_net_hdr hdr; + struct virtio_net_hdr_mrg_rxbuf mrg_hdr; + struct virtio_net_hdr_v1_hash hash_v1_hdr; + }; +}; + +struct virtio_net_config { + __u8 mac[6]; + __virtio16 status; + __virtio16 max_virtqueue_pairs; + __virtio16 mtu; + __le32 speed; + __u8 duplex; + __u8 rss_max_key_size; + __le16 rss_max_indirection_table_length; + __le32 supported_hash_types; +}; + +struct virtio_net_ctrl_coal { + __le32 max_packets; + __le32 max_usecs; +}; + +struct virtio_net_ctrl_coal_rx { + __le32 rx_max_packets; + __le32 rx_usecs; +}; + +struct virtio_net_ctrl_coal_tx { + __le32 tx_max_packets; + __le32 tx_usecs; +}; + +struct virtio_net_ctrl_coal_vq { + __le16 vqn; + __le16 reserved; + struct virtio_net_ctrl_coal coal; +}; + +struct virtio_net_ctrl_mac { + __virtio32 entries; + __u8 macs[0]; +}; + +struct virtio_net_ctrl_mq { + __virtio16 virtqueue_pairs; +}; + +struct virtio_net_ctrl_queue_stats { + struct { + __le16 vq_index; + __le16 reserved[3]; + __le64 types_bitmap[1]; + } stats[1]; +}; + +struct virtio_net_ctrl_rss { + __le32 hash_types; + __le16 indirection_table_mask; + __le16 unclassified_queue; + __le16 hash_cfg_reserved; + __le16 max_tx_vq; + u8 hash_key_length; + u8 key[40]; + __le16 *indirection_table; +}; + +struct virtio_net_stats_capabilities { + __le64 supported_stats_types[1]; +}; + +struct virtio_net_stats_reply_hdr { + __u8 type; + __u8 reserved; + __le16 vq_index; + __le16 reserved1; + __le16 size; +}; + +struct virtio_pci_vq_info; + +struct virtio_pci_admin_vq { + struct virtio_pci_vq_info *info; + spinlock_t lock; + u64 supported_cmds; + u64 supported_caps; + u8 max_dev_parts_objects; + struct ida dev_parts_ida; + char name[10]; + u16 vq_index; +}; + +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_legacy_device { + struct pci_dev *pci_dev; + u8 *isr; + void *ioaddr; + struct virtio_device_id id; +}; + +struct virtio_pci_modern_device { + struct pci_dev *pci_dev; + struct virtio_pci_common_cfg *common; + void *device; + void *notify_base; + resource_size_t notify_pa; + u8 *isr; + size_t notify_len; + size_t device_len; + size_t common_len; + int notify_map_cap; + u32 notify_offset_multiplier; + int modern_bars; + struct virtio_device_id id; + int (*device_id_check)(struct pci_dev *); + u64 dma_mask; +}; + +struct virtio_pci_device { + struct virtio_device vdev; + struct pci_dev *pci_dev; + union { + struct virtio_pci_legacy_device ldev; + struct virtio_pci_modern_device mdev; + }; + bool is_legacy; + u8 *isr; + spinlock_t lock; + struct list_head virtqueues; + struct list_head slow_virtqueues; + struct virtio_pci_vq_info **vqs; + struct virtio_pci_admin_vq admin_vq; + int msix_enabled; + int intx_enabled; + cpumask_var_t *msix_affinity_masks; + char (*msix_names)[256]; + unsigned int msix_vectors; + unsigned int msix_used_vectors; + bool per_vq_vectors; + struct virtqueue * (*setup_vq)(struct virtio_pci_device *, struct virtio_pci_vq_info *, unsigned int, void (*)(struct virtqueue *), const char *, bool, u16); + void (*del_vq)(struct virtio_pci_vq_info *); + u16 (*config_vector)(struct virtio_pci_device *, u16); + int (*avq_index)(struct virtio_device *, u16 *, u16 *); +}; + +struct virtio_pci_modern_common_cfg { + struct virtio_pci_common_cfg cfg; + __le16 queue_notify_data; + __le16 queue_reset; + __le16 admin_queue_index; + __le16 admin_queue_num; +}; + +struct virtio_pci_vq_info { + struct virtqueue *vq; + struct list_head node; + unsigned int msix_vector; +}; + +struct virtio_resource_obj_dev_parts { + __u8 type; + __u8 reserved[7]; +}; + +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; + int io_queues[3]; + 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: 64; +} __attribute__((packed)); + +struct virtio_scsi_config { + __virtio32 num_queues; + __virtio32 seg_max; + __virtio32 max_sectors; + __virtio32 cmd_per_lun; + __virtio32 event_info_size; + __virtio32 sense_size; + __virtio32 cdb_size; + __virtio16 max_channel; + __virtio16 max_target; + __virtio32 max_lun; +}; + +struct virtio_shm_region { + u64 addr; + u64 len; +}; + +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; + struct virtio_net_ctrl_rss rss; + bool has_cvq; + struct mutex cvq_lock; + bool any_header_sg; + u8 hdr_len; + struct delayed_work refill; + bool refill_enabled; + spinlock_t refill_lock; + struct work_struct config_work; + struct work_struct rx_mode_work; + bool rx_mode_work_enabled; + bool affinity_hint_set; + struct hlist_node node; + struct hlist_node node_dead; + struct control_buf *ctrl; + u8 duplex; + u32 speed; + bool rx_dim_enabled; + struct virtnet_interrupt_coalesce intr_coal_tx; + struct virtnet_interrupt_coalesce intr_coal_rx; + long unsigned int guest_offloads; + long unsigned int guest_offloads_capable; + struct failover *failover; + u64 device_stats_cap; +}; + +struct virtnet_rq_dma { + dma_addr_t addr; + u32 ref; + u16 len; + u16 need_sync; +}; + +struct virtnet_sq_free_stats { + u64 packets; + u64 bytes; + u64 napi_packets; + u64 napi_bytes; + u64 xsk; +}; + +struct virtnet_stat_desc { + char desc[32]; + size_t offset; + size_t qstat_offset; +}; + +struct virtnet_stats_ctx { + bool to_qstat; + u32 desc_num[3]; + u64 bitmap[3]; + u32 size[3]; + u64 *data; +}; + +struct virtqueue { + struct list_head list; + void (*callback)(struct virtqueue *); + const char *name; + struct virtio_device *vdev; + unsigned int index; + unsigned int num_free; + unsigned int num_max; + bool reset; + void *priv; +}; + +typedef void vq_callback_t(struct virtqueue *); + +struct virtqueue_info { + const char *name; + vq_callback_t *callback; + bool ctx; +}; + +struct vlan_priority_tci_mapping; + +struct vlan_pcpu_stats; + +struct vlan_dev_priv { + unsigned int nr_ingress_mappings; + u32 ingress_priority_map[8]; + unsigned int nr_egress_mappings; + struct vlan_priority_tci_mapping *egress_priority_map[16]; + __be16 vlan_proto; + u16 vlan_id; + u16 flags; + struct net_device *real_dev; + netdevice_tracker dev_tracker; + unsigned char real_dev_addr[6]; + struct proc_dir_entry *dent; + struct vlan_pcpu_stats *vlan_pcpu_stats; + struct netpoll *netpoll; +}; + +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 vlan_group { + unsigned int nr_vlan_devs; + struct hlist_node hlist; + struct net_device **vlan_devices_arrays[16]; +}; + +struct vlan_hdr { + __be16 h_vlan_TCI; + __be16 h_vlan_encapsulated_proto; +}; + +struct vlan_info { + struct net_device *real_dev; + struct vlan_group grp; + struct list_head vid_list; + unsigned int nr_vids; + struct callback_head rcu; +}; + +struct vlan_pcpu_stats { + u64_stats_t rx_packets; + u64_stats_t rx_bytes; + u64_stats_t rx_multicast; + u64_stats_t tx_packets; + u64_stats_t tx_bytes; + struct u64_stats_sync syncp; + u32 rx_errors; + u32 tx_dropped; +}; + +struct vlan_priority_tci_mapping { + u32 priority; + u16 vlan_qos; + struct vlan_priority_tci_mapping *next; +}; + +struct vlan_vid { + struct list_head list; + __be16 proto; + u16 vid; +}; + +struct vlan_vid_info { + struct list_head list; + __be16 proto; + u16 vid; + int refcount; +}; + +struct vm_userfaultfd_ctx { + struct userfaultfd_ctx *ctx; +}; + +struct vma_lock; + +struct vma_numab_state; + +struct vm_area_struct { + union { + struct { + long unsigned int vm_start; + long unsigned int vm_end; + }; + struct callback_head vm_rcu; + }; + struct mm_struct *vm_mm; + pgprot_t vm_page_prot; + union { + const vm_flags_t vm_flags; + vm_flags_t __vm_flags; + }; + bool detached; + unsigned int vm_lock_seq; + struct vma_lock *vm_lock; + struct { + struct rb_node rb; + long unsigned int rb_subtree_last; + } shared; + struct list_head anon_vma_chain; + struct anon_vma *anon_vma; + const struct vm_operations_struct *vm_ops; + long unsigned int vm_pgoff; + struct file *vm_file; + void *vm_private_data; + struct anon_vma_name *anon_name; + atomic_long_t swap_readahead_info; + struct mempolicy *vm_policy; + struct vma_numab_state *numab_state; + struct vm_userfaultfd_ctx vm_userfaultfd_ctx; +}; + +struct vm_event_state { + long unsigned int event[115]; +}; + +struct vm_fault { + const struct { + struct vm_area_struct *vma; + gfp_t gfp_mask; + long unsigned int pgoff; + long unsigned int address; + long unsigned int 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 vm_operations_struct { + void (*open)(struct vm_area_struct *); + void (*close)(struct vm_area_struct *); + int (*may_split)(struct vm_area_struct *, long unsigned int); + int (*mremap)(struct vm_area_struct *); + int (*mprotect)(struct vm_area_struct *, long unsigned int, long unsigned int, long unsigned int); + vm_fault_t (*fault)(struct vm_fault *); + vm_fault_t (*huge_fault)(struct vm_fault *, unsigned int); + vm_fault_t (*map_pages)(struct vm_fault *, long unsigned int, long unsigned int); + long unsigned int (*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 *, long unsigned int, void *, int, int); + const char * (*name)(struct vm_area_struct *); + int (*set_policy)(struct vm_area_struct *, struct mempolicy *); + struct mempolicy * (*get_policy)(struct vm_area_struct *, long unsigned int, long unsigned int *); + struct page * (*find_special_page)(struct vm_area_struct *, long unsigned int); +}; + +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 *); + void (*close)(const struct vm_special_mapping *, struct vm_area_struct *); +}; + +struct vm_stack { + struct callback_head rcu; + struct vm_struct *stack_vm_area; +}; + +struct vm_struct { + struct vm_struct *next; + void *addr; + long unsigned int size; + long unsigned int flags; + struct page **pages; + unsigned int page_order; + unsigned int nr_pages; + phys_addr_t phys_addr; + const void *caller; + long unsigned int requested_size; +}; + +struct vm_unmapped_area_info { + long unsigned int flags; + long unsigned int length; + long unsigned int low_limit; + long unsigned int high_limit; + long unsigned int align_mask; + long unsigned int align_offset; + long unsigned int start_gap; +}; + +struct vma_list { + struct vm_area_struct *vma; + struct list_head head; + refcount_t mmap_count; +}; + +struct vma_lock { + struct rw_semaphore lock; +}; + +struct vma_merge_struct { + struct mm_struct *mm; + struct vma_iterator *vmi; + long unsigned int pgoff; + struct vm_area_struct *prev; + struct vm_area_struct *next; + struct vm_area_struct *vma; + long unsigned int start; + long unsigned int end; + long unsigned int flags; + struct file *file; + struct anon_vma *anon_vma; + struct mempolicy *policy; + struct vm_userfaultfd_ctx uffd_ctx; + struct anon_vma_name *anon_name; + enum vma_merge_flags merge_flags; + enum vma_merge_state state; + bool give_up_on_oom: 1; +}; + +struct vma_numab_state { + long unsigned int next_scan; + long unsigned int pids_active_reset; + long unsigned int pids_active[2]; + int start_scan_seq; + int prev_scan_seq; +}; + +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 vmap_area { + long unsigned int va_start; + long unsigned int va_end; + struct rb_node rb_node; + struct list_head list; + union { + long unsigned int subtree_max_size; + struct vm_struct *vm; + }; + long unsigned int flags; +}; + +struct vmap_block { + spinlock_t lock; + struct vmap_area *va; + long unsigned int free; + long unsigned int dirty; + long unsigned int used_map[4]; + long unsigned int dirty_min; + long unsigned int dirty_max; + struct list_head free_list; + struct callback_head callback_head; + struct list_head purge; + unsigned int cpu; +}; + +struct vmap_block_queue { + spinlock_t lock; + struct list_head free; + struct xarray vmap_blocks; +}; + +struct vmap_pool { + struct list_head head; + long unsigned int len; +}; + +struct vmap_node { + struct vmap_pool pool[256]; + spinlock_t pool_lock; + bool skip_populate; + struct rb_list busy; + struct rb_list lazy; + struct list_head purge_list; + struct work_struct purge_work; + long unsigned int nr_purged; +}; + +struct vmap_pfn_data { + long unsigned int *pfns; + pgprot_t prot; + unsigned int idx; +}; + +struct vmcore_cb { + bool (*pfn_is_ram)(struct vmcore_cb *, long unsigned int); + int (*get_device_ram)(struct vmcore_cb *, struct list_head *); + struct list_head next; +}; + +struct vmcore_range { + struct list_head list; + long long unsigned int paddr; + long long unsigned int size; + loff_t offset; +}; + +struct vmcoredd_data { + char dump_name[44]; + unsigned int size; + int (*vmcoredd_callback)(struct vmcoredd_data *, void *); +}; + +struct vmcoredd_header { + __u32 n_namesz; + __u32 n_descsz; + __u32 n_type; + __u8 name[8]; + __u8 dump_name[44]; +}; + +struct vmcoredd_node { + struct list_head list; + void *buf; + unsigned int size; +}; + +struct vme_callback { + void (*func)(int, int, void *); + void *priv_data; +}; + +struct vme_irq { + int count; + struct vme_callback callback[256]; +}; + +struct vme_slave_resource; + +struct vme_master_resource; + +struct vme_dma_list; + +struct vme_dma_attr; + +struct vme_lm_resource; + +struct vme_bridge { + char name[16]; + int num; + struct list_head master_resources; + struct list_head slave_resources; + struct list_head dma_resources; + struct list_head lm_resources; + struct list_head vme_error_handlers; + struct list_head devices; + struct device *parent; + void *driver_priv; + struct list_head bus_list; + struct vme_irq irq[7]; + struct mutex irq_mtx; + int (*slave_get)(struct vme_slave_resource *, int *, long long unsigned int *, long long unsigned int *, dma_addr_t *, u32 *, u32 *); + int (*slave_set)(struct vme_slave_resource *, int, long long unsigned int, long long unsigned int, dma_addr_t, u32, u32); + int (*master_get)(struct vme_master_resource *, int *, long long unsigned int *, long long unsigned int *, u32 *, u32 *, u32 *); + int (*master_set)(struct vme_master_resource *, int, long long unsigned int, long long unsigned int, u32, u32, u32); + ssize_t (*master_read)(struct vme_master_resource *, void *, size_t, loff_t); + ssize_t (*master_write)(struct vme_master_resource *, void *, size_t, loff_t); + unsigned int (*master_rmw)(struct vme_master_resource *, unsigned int, unsigned int, unsigned int, loff_t); + int (*dma_list_add)(struct vme_dma_list *, struct vme_dma_attr *, struct vme_dma_attr *, size_t); + int (*dma_list_exec)(struct vme_dma_list *); + int (*dma_list_empty)(struct vme_dma_list *); + void (*irq_set)(struct vme_bridge *, int, int, int); + int (*irq_generate)(struct vme_bridge *, int, int); + int (*lm_set)(struct vme_lm_resource *, long long unsigned int, u32, u32); + int (*lm_get)(struct vme_lm_resource *, long long unsigned int *, u32 *, u32 *); + int (*lm_attach)(struct vme_lm_resource *, int, void (*)(void *), void *); + int (*lm_detach)(struct vme_lm_resource *, int); + int (*slot_get)(struct vme_bridge *); + void * (*alloc_consistent)(struct device *, size_t, dma_addr_t *); + void (*free_consistent)(struct device *, size_t, void *, dma_addr_t); +}; + +struct vme_dev { + int num; + struct vme_bridge *bridge; + struct device dev; + struct list_head drv_list; + struct list_head bridge_list; +}; + +struct vme_dma_attr { + u32 type; + void *private; +}; + +struct vme_dma_resource; + +struct vme_dma_list { + struct list_head list; + struct vme_dma_resource *parent; + struct list_head entries; + struct mutex mtx; +}; + +struct vme_dma_pattern { + u32 pattern; + u32 type; +}; + +struct vme_dma_pci { + dma_addr_t address; +}; + +struct vme_dma_resource { + struct list_head list; + struct vme_bridge *parent; + struct mutex mtx; + int locked; + int number; + struct list_head pending; + struct list_head running; + u32 route_attr; +}; + +struct vme_dma_vme { + long long unsigned int address; + u32 aspace; + u32 cycle; + u32 dwidth; +}; + +struct vme_driver { + const char *name; + int (*match)(struct vme_dev *); + int (*probe)(struct vme_dev *); + void (*remove)(struct vme_dev *); + struct device_driver driver; + struct list_head devices; +}; + +struct vme_error_handler { + struct list_head list; + long long unsigned int start; + long long unsigned int end; + long long unsigned int first_error; + u32 aspace; + unsigned int num_errors; +}; + +struct vme_lm_resource { + struct list_head list; + struct vme_bridge *parent; + struct mutex mtx; + int locked; + int number; + int monitors; +}; + +struct vme_master_resource { + struct list_head list; + struct vme_bridge *parent; + spinlock_t lock; + int locked; + int number; + u32 address_attr; + u32 cycle_attr; + u32 width_attr; + struct resource bus_resource; + void *kern_base; +}; + +struct vme_resource { + enum vme_resource_type type; + struct list_head *entry; +}; + +struct vme_slave_resource { + struct list_head list; + struct vme_bridge *parent; + struct mutex mtx; + int locked; + int number; + u32 address_attr; + u32 cycle_attr; +}; + +struct vmemmap_remap_walk { + void (*remap_pte)(pte_t *, long unsigned int, struct vmemmap_remap_walk *); + long unsigned int nr_walked; + struct page *reuse_page; + long unsigned int reuse_addr; + struct list_head *vmemmap_pages; + long unsigned int flags; +}; + +struct vmpressure_event { + struct eventfd_ctx *efd; + enum vmpressure_levels level; + enum vmpressure_modes mode; + struct list_head node; +}; + +struct vmware_steal_time { + union { + u64 clock; + struct { + u32 clock_low; + u32 clock_high; + }; + }; + u64 reserved[7]; +}; + +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_avail { + __virtio16 flags; + __virtio16 idx; + __virtio16 ring[0]; +}; + +struct vring_desc { + __virtio64 addr; + __virtio32 len; + __virtio16 flags; + __virtio16 next; +}; + +struct vring_desc_extra { + dma_addr_t addr; + u32 len; + u16 flags; + u16 next; +}; + +struct vring_packed_desc; + +struct vring_desc_state_packed { + void *data; + struct vring_packed_desc *indir_desc; + u16 num; + u16 last; +}; + +struct vring_desc_state_split { + void *data; + struct vring_desc *indir_desc; +}; + +struct vring_packed_desc { + __le64 addr; + __le32 len; + __le16 id; + __le16 flags; +}; + +struct vring_packed_desc_event { + __le16 off_wrap; + __le16 flags; +}; + +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_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_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; +}; + +struct vt_consize { + short unsigned int v_rows; + short unsigned int v_cols; + short unsigned int v_vlin; + short unsigned int v_clin; + short unsigned int v_vcol; + short unsigned int v_ccol; +}; + +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 vt_notifier_param { + struct vc_data *vc; + unsigned int c; +}; + +struct vt_setactivate { + unsigned int console; + struct vt_mode mode; +}; + +struct vt_sizes { + short unsigned int v_rows; + short unsigned int v_cols; + short unsigned int v_scrollsize; +}; + +struct vt_spawn_console { + spinlock_t lock; + struct pid *pid; + int sig; +}; + +struct vt_stat { + short unsigned int v_active; + short unsigned int v_signal; + short unsigned int v_state; +}; + +struct vxlan_metadata { + u32 gbp; +}; + +struct wait_bit_key { + long unsigned int *flags; + int bit_nr; + long unsigned int timeout; +}; + +struct wait_bit_queue_entry { + struct wait_bit_key key; + struct wait_queue_entry wq_entry; +}; + +struct wait_exceptional_entry_queue { + wait_queue_entry_t wait; + struct exceptional_entry_key key; +}; + +struct wait_page_key { + struct folio *folio; + int bit_nr; + int page_match; +}; + +struct wake_irq { + struct device *dev; + unsigned int status; + int irq; + const char *name; +}; + +struct wakelock { + char *name; + struct rb_node node; + struct wakeup_source *ws; + struct list_head lru; +}; + +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 wakeup_source { + const char *name; + int id; + struct list_head entry; + spinlock_t lock; + struct wake_irq *wakeirq; + struct timer_list timer; + long unsigned int timer_expires; + ktime_t total_time; + ktime_t max_time; + ktime_t last_time; + ktime_t start_prevent_time; + ktime_t prevent_sleep_time; + long unsigned int event_count; + long unsigned int active_count; + long unsigned int relax_count; + long unsigned int expire_count; + long unsigned int wakeup_count; + struct device *dev; + bool active: 1; + bool autosleep_enabled: 1; +}; + +struct walk_rcec_data { + struct pci_dev *rcec; + int (*user_callback)(struct pci_dev *, void *); + void *user_data; +}; + +struct warn_args { + const char *fmt; + va_list args; +}; + +struct watch { + union { + struct callback_head rcu; + u32 info_id; + }; + struct watch_queue *queue; + struct hlist_node queue_node; + struct watch_list *watch_list; + struct hlist_node list_node; + const struct cred *cred; + void *private; + u64 id; + struct kref usage; +}; + +struct xenbus_watch { + struct list_head list; + const char *node; + unsigned int nr_pending; + bool (*will_handle)(struct xenbus_watch *, const char *, const char *); + void (*callback)(struct xenbus_watch *, const char *, const char *); +}; + +struct xenbus_file_priv; + +struct watch_adapter { + struct list_head list; + struct xenbus_watch watch; + struct xenbus_file_priv *dev_data; + char *token; +}; + +struct watch_type_filter { + enum watch_notification_type type; + __u32 subtype_filter[1]; + __u32 info_filter; + __u32 info_mask; +}; + +struct watch_filter { + union { + struct callback_head rcu; + long unsigned int type_filter[1]; + }; + u32 nr_filters; + struct watch_type_filter filters[0]; +}; + +struct watch_list { + struct callback_head rcu; + struct hlist_head watchers; + void (*release_watch)(struct watch *); + spinlock_t lock; +}; + +struct watch_notification_type_filter { + __u32 type; + __u32 info_filter; + __u32 info_mask; + __u32 subtype_filter[8]; +}; + +struct watch_notification_filter { + __u32 nr_filters; + __u32 __reserved; + struct watch_notification_type_filter filters[0]; +}; + +struct watch_notification_removal { + struct watch_notification watch; + __u64 id; +}; + +struct watch_queue { + struct callback_head rcu; + struct watch_filter *filter; + struct pipe_inode_info *pipe; + struct hlist_head watches; + struct page **notes; + long unsigned int *notes_bitmap; + struct kref usage; + spinlock_t lock; + unsigned int nr_notes; + unsigned int nr_pages; +}; + +struct watchdog_device; + +struct watchdog_core_data { + struct device dev; + struct cdev cdev; + struct watchdog_device *wdd; + struct mutex lock; + ktime_t last_keepalive; + ktime_t last_hw_keepalive; + ktime_t open_deadline; + struct hrtimer timer; + struct kthread_work work; + long unsigned int status; +}; + +struct watchdog_info; + +struct watchdog_ops; + +struct watchdog_device { + int id; + struct device *parent; + const struct attribute_group **groups; + const struct watchdog_info *info; + const struct watchdog_ops *ops; + const struct watchdog_governor *gov; + unsigned int bootstatus; + unsigned int timeout; + unsigned int pretimeout; + unsigned int min_timeout; + unsigned int max_timeout; + unsigned int min_hw_heartbeat_ms; + unsigned int max_hw_heartbeat_ms; + struct notifier_block reboot_nb; + struct notifier_block restart_nb; + struct notifier_block pm_nb; + void *driver_data; + struct watchdog_core_data *wd_data; + long unsigned int status; + struct list_head deferred; +}; + +struct watchdog_governor { + const char name[20]; + void (*pretimeout)(struct watchdog_device *); +}; + +struct watchdog_info { + __u32 options; + __u32 firmware_version; + __u8 identity[32]; +}; + +struct watchdog_ops { + struct module *owner; + int (*start)(struct watchdog_device *); + int (*stop)(struct watchdog_device *); + int (*ping)(struct watchdog_device *); + unsigned int (*status)(struct watchdog_device *); + int (*set_timeout)(struct watchdog_device *, unsigned int); + int (*set_pretimeout)(struct watchdog_device *, unsigned int); + unsigned int (*get_timeleft)(struct watchdog_device *); + int (*restart)(struct watchdog_device *, long unsigned int, void *); + long int (*ioctl)(struct watchdog_device *, unsigned int, long unsigned int); +}; + +struct watchdog_pretimeout { + struct watchdog_device *wdd; + struct list_head entry; +}; + +struct wb_lock_cookie { + bool locked; + long unsigned int flags; +}; + +struct wb_stats { + long unsigned int nr_dirty; + long unsigned int nr_io; + long unsigned int nr_more_io; + long unsigned int nr_dirty_time; + long unsigned int nr_writeback; + long unsigned int nr_reclaimable; + long unsigned int nr_dirtied; + long unsigned int nr_written; + long unsigned int dirty_thresh; + long unsigned int wb_thresh; +}; + +struct wb_writeback_work { + long int 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 wbrf_ranges_in_out { + u64 num_of_ranges; + struct freq_band_range band_list[11]; +}; + +struct wbt_wait_data { + struct rq_wb *rwb; + enum wbt_flags wb_acct; + blk_opf_t opf; +}; + +struct wci_ent { + work_func_t func; + atomic64_t cnt; + struct hlist_node hash_node; +}; + +struct win_certificate { + uint32_t length; + uint16_t revision; + uint16_t cert_type; +}; + +struct wiphy_iftype_akm_suites; + +struct wiphy_wowlan_support; + +struct wiphy_iftype_ext_capab; + +struct wiphy_coalesce_support; + +struct wiphy_vendor_command; + +struct wiphy_radio; + +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[9]; + 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 *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 iw_handler_def *wext; + 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; + long unsigned int 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; + u16 hw_timestamp_max_peers; + int n_radio; + const struct wiphy_radio *radio; + long: 64; + long: 64; + char priv[0]; +}; + +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 wiphy_iftype_akm_suites { + u16 iftypes_mask; + const u32 *akm_suites; + int n_akm_suites; +}; + +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 wiphy_radio_freq_range; + +struct wiphy_radio { + const struct wiphy_radio_freq_range *freq_range; + int n_freq_range; + const struct ieee80211_iface_combination *iface_combinations; + int n_iface_combinations; + u32 antenna_mask; +}; + +struct wiphy_radio_freq_range { + u32 start_freq; + u32 end_freq; +}; + +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, long unsigned int *); + const struct nla_policy *policy; + unsigned int maxattr; +}; + +struct wiphy_work; + +typedef void (*wiphy_work_func_t)(struct wiphy *, struct wiphy_work *); + +struct wiphy_work { + struct list_head entry; + wiphy_work_func_t func; +}; + +struct 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 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 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; + bool use_4addr; + bool is_running; + bool registered; + bool registering; + short: 0; + u8 address[6]; + struct cfg80211_conn *conn; + struct cfg80211_cached_keys *connect_keys; + 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; + struct { + struct cfg80211_ibss_params ibss; + struct cfg80211_connect_params connect; + struct cfg80211_cached_keys *keys; + const u8 *ie; + size_t ie_len; + u8 bssid[6]; + u8 prev_bssid[6]; + u8 ssid[32]; + s8 default_key; + s8 default_mgmt_key; + bool prev_bssid_valid; + } wext; + struct wiphy_work cqm_rssi_work; + struct cfg80211_cqm_config *cqm_config; + struct list_head pmsr_list; + spinlock_t pmsr_lock; + struct work_struct pmsr_free_wk; + long unsigned int unprot_beacon_reported; + union { + struct { + u8 connected_addr[6]; + u8 ssid[32]; + u8 ssid_len; + long: 0; + } 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; + }; + bool cac_started; + long unsigned int cac_start_time; + unsigned int cac_time_ms; + } links[15]; + u16 valid_links; + u32 radio_mask; +}; + +struct wm831x; + +struct wm831x_backlight_pdata; + +struct wm831x_backup_pdata; + +struct wm831x_battery_pdata; + +struct wm831x_touch_pdata; + +struct wm831x_watchdog_pdata; + +struct wm831x_status_pdata; + +struct wm831x_pdata { + int wm831x_num; + int (*pre_init)(struct wm831x *); + int (*post_init)(struct wm831x *); + bool irq_cmos; + bool disable_touch; + bool soft_shutdown; + int irq_base; + int gpio_base; + int gpio_defaults[16]; + struct wm831x_backlight_pdata *backlight; + struct wm831x_backup_pdata *backup; + struct wm831x_battery_pdata *battery; + struct wm831x_touch_pdata *touch; + struct wm831x_watchdog_pdata *watchdog; + struct wm831x_status_pdata *status[2]; + struct regulator_init_data *dcdc[4]; + struct regulator_init_data *epe[2]; + struct regulator_init_data *ldo[11]; + struct regulator_init_data *isink[2]; +}; + +typedef int (*wm831x_auxadc_read_fn)(struct wm831x *, enum wm831x_auxadc); + +struct wm831x { + struct mutex io_lock; + struct device *dev; + struct regmap *regmap; + struct wm831x_pdata pdata; + enum wm831x_parent type; + int irq; + struct mutex irq_lock; + struct irq_domain *irq_domain; + int irq_masks_cur[5]; + int irq_masks_cache[5]; + bool soft_shutdown; + unsigned int has_gpio_ena: 1; + unsigned int has_cs_sts: 1; + unsigned int charger_irq_wake: 1; + int num_gpio; + int gpio_update[16]; + bool gpio_level_high[16]; + bool gpio_level_low[16]; + struct mutex auxadc_lock; + struct list_head auxadc_pending; + u16 auxadc_active; + wm831x_auxadc_read_fn auxadc_read; + struct mutex key_lock; + unsigned int locked: 1; +}; + +struct wm831x_auxadc_req { + struct list_head list; + enum wm831x_auxadc input; + int val; + struct completion done; +}; + +struct wm831x_backlight_pdata { + int isink; + int max_uA; +}; + +struct wm831x_backup_pdata { + int charger_enable; + int no_constant_voltage; + int vlim; + int ilim; +}; + +struct wm831x_battery_pdata { + int enable; + int fast_enable; + int off_mask; + int trickle_ilim; + int vsel; + int eoc_iterm; + int fast_ilim; + int timeout; +}; + +struct wm831x_irq_data { + int primary; + int reg; + int mask; +}; + +struct wm831x_status_pdata { + enum wm831x_status_src default_src; + const char *name; + const char *default_trigger; +}; + +struct wm831x_touch_pdata { + int fivewire; + int isel; + int rpu; + int pressure; + unsigned int data_irq; + int data_irqf; + unsigned int pd_irq; + int pd_irqf; +}; + +struct wm831x_watchdog_pdata { + enum wm831x_watchdog_action primary; + enum wm831x_watchdog_action secondary; + unsigned int software: 1; +}; + +struct wm8350_audio_platform_data; + +struct wm8350_codec { + struct platform_device *pdev; + struct wm8350_audio_platform_data *platform_data; +}; + +struct wm8350_gpio { + struct platform_device *pdev; +}; + +struct wm8350_hwmon { + struct platform_device *pdev; + struct device *classdev; +}; + +struct wm8350_led { + struct platform_device *pdev; + struct work_struct work; + spinlock_t value_lock; + enum led_brightness value; + struct led_classdev cdev; + int max_uA_index; + int enabled; + struct regulator *isink; + struct regulator_consumer_supply isink_consumer; + struct regulator_init_data isink_init; + struct regulator *dcdc; + struct regulator_consumer_supply dcdc_consumer; + struct regulator_init_data dcdc_init; +}; + +struct wm8350_pmic { + int max_dcdc; + int max_isink; + int isink_A_dcdc; + int isink_B_dcdc; + u16 dcdc1_hib_mode; + u16 dcdc3_hib_mode; + u16 dcdc4_hib_mode; + u16 dcdc6_hib_mode; + struct platform_device *pdev[12]; + struct wm8350_led led[2]; +}; + +struct wm8350_charger_policy; + +struct wm8350_power { + struct platform_device *pdev; + struct power_supply *battery; + struct power_supply *usb; + struct power_supply *ac; + struct wm8350_charger_policy *policy; + int rev_g_coeff; +}; + +struct wm8350_rtc { + struct platform_device *pdev; + struct rtc_device *rtc; + int alarm_enabled; + int update_enabled; +}; + +struct wm8350_wdt { + struct platform_device *pdev; +}; + +struct wm8350 { + struct device *dev; + struct regmap *regmap; + bool unlocked; + struct mutex auxadc_mutex; + struct completion auxadc_done; + struct mutex irq_lock; + int chip_irq; + int irq_base; + u16 irq_masks[7]; + struct wm8350_codec codec; + struct wm8350_gpio gpio; + struct wm8350_hwmon hwmon; + struct wm8350_pmic pmic; + struct wm8350_power power; + struct wm8350_rtc rtc; + struct wm8350_wdt wdt; +}; + +struct wm8350_audio_platform_data { + int vmid_discharge_msecs; + int drain_msecs; + int cap_discharge_msecs; + int vmid_charge_msecs; + u32 vmid_s_curve: 2; + u32 dis_out4: 2; + u32 dis_out3: 2; + u32 dis_out2: 2; + u32 dis_out1: 2; + u32 vroi_out4: 1; + u32 vroi_out3: 1; + u32 vroi_out2: 1; + u32 vroi_out1: 1; + u32 vroi_enable: 1; + u32 codec_current_on: 2; + u32 codec_current_standby: 2; + u32 codec_current_charge: 2; +}; + +struct wm8350_charger_policy { + int eoc_mA; + int charge_mV; + int fast_limit_mA; + int fast_limit_USB_mA; + int charge_timeout; + int trickle_start_mV; + int trickle_charge_mA; + int trickle_charge_USB_mA; +}; + +struct wm8350_irq_data { + int primary; + int reg; + int mask; + int primary_only; +}; + +struct wm8350_platform_data { + int (*init)(struct wm8350 *); + int irq_high; + int irq_base; + int gpio_base; +}; + +struct wm8350_reg_access { + u16 readable; + u16 writable; + u16 vol; +}; + +struct wm8400 { + struct device *dev; + struct regmap *regmap; + struct platform_device regulators[6]; +}; + +struct wm8400_platform_data { + int (*platform_init)(struct device *); +}; + +struct wol_reply_data { + struct ethnl_reply_data base; + struct ethtool_wolinfo wol; + bool show_sopass; +}; + +struct word_at_a_time { + const long unsigned int one_bits; + const long unsigned int high_bits; +}; + +struct work_for_cpu { + struct work_struct work; + long int (*fn)(void *); + void *arg; + long int ret; +}; + +struct work_offq_data { + u32 pool_id; + u32 disable; + u32 flags; +}; + +struct worker { + union { + struct list_head entry; + struct hlist_node hentry; + }; + struct work_struct *current_work; + work_func_t current_func; + struct pool_workqueue *current_pwq; + u64 current_at; + unsigned int current_color; + int sleeping; + work_func_t last_func; + struct list_head scheduled; + struct task_struct *task; + struct worker_pool *pool; + struct list_head node; + long unsigned int last_active; + unsigned int flags; + int id; + char desc[32]; + struct workqueue_struct *rescue_wq; +}; + +struct worker_pool { + raw_spinlock_t lock; + int cpu; + int node; + int id; + unsigned int flags; + long unsigned int watchdog_ts; + bool cpu_stall; + int nr_running; + struct list_head worklist; + int nr_workers; + int nr_idle; + struct list_head idle_list; + struct timer_list idle_timer; + struct work_struct idle_cull_work; + struct timer_list mayday_timer; + struct hlist_head busy_hash[64]; + struct worker *manager; + struct list_head workers; + struct 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; + cpumask_var_t __pod_cpumask; + bool affn_strict; + enum wq_affn_scope affn_scope; + bool ordered; +}; + +struct wq_flusher; + +struct wq_device; + +struct wq_node_nr_active; + +struct workqueue_struct { + struct list_head pwqs; + struct list_head list; + struct mutex mutex; + int work_color; + int flush_color; + atomic_t nr_pwqs_to_flush; + struct wq_flusher *first_flusher; + struct list_head flusher_queue; + struct list_head flusher_overflow; + struct list_head maydays; + struct worker *rescuer; + int nr_drainers; + int max_active; + int min_active; + int saved_max_active; + int saved_min_active; + struct workqueue_attrs *unbound_attrs; + struct pool_workqueue *dfl_pwq; + struct wq_device *wq_dev; + char name[32]; + struct callback_head rcu; + long: 64; + long: 64; + unsigned int flags; + struct pool_workqueue **cpu_pwq; + struct wq_node_nr_active *node_nr_active[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct workspace { + void *mem; + size_t mem_size; + size_t window_size; +}; + +struct wpan_phy; + +struct wpan_dev_header_ops; + +struct wpan_dev { + struct wpan_phy *wpan_phy; + int iftype; + struct list_head list; + struct net_device *netdev; + const struct wpan_dev_header_ops *header_ops; + struct net_device *lowpan_dev; + u32 identifier; + __le16 pan_id; + __le16 short_addr; + __le64 extended_addr; + atomic_t bsn; + atomic_t dsn; + u8 min_be; + u8 max_be; + u8 csma_retries; + s8 frame_retries; + bool lbt; + bool ackreq; + struct mutex association_lock; + struct ieee802154_pan_device *parent; + struct list_head children; + unsigned int max_associations; + unsigned int nchildren; +}; + +struct wpan_dev_header_ops { + int (*create)(struct sk_buff *, struct net_device *, const struct ieee802154_addr *, const struct ieee802154_addr *, unsigned int); +}; + +struct wpan_phy_supported { + u32 channels[32]; + u32 cca_modes; + u32 cca_opts; + u32 iftypes; + enum nl802154_supported_bool_states lbt; + u8 min_minbe; + u8 max_minbe; + u8 min_maxbe; + u8 max_maxbe; + u8 min_csma_backoffs; + u8 max_csma_backoffs; + s8 min_frame_retries; + s8 max_frame_retries; + size_t tx_powers_size; + size_t cca_ed_levels_size; + const s32 *tx_powers; + const s32 *cca_ed_levels; +}; + +struct wpan_phy_cca { + enum nl802154_cca_modes mode; + enum nl802154_cca_opts opt; +}; + +struct wpan_phy { + const void *privid; + long unsigned int flags; + u8 current_channel; + u8 current_page; + struct wpan_phy_supported supported; + s32 transmit_power; + struct wpan_phy_cca cca; + __le64 perm_extended_addr; + s32 cca_ed_level; + u32 symbol_duration; + u16 lifs_period; + u16 sifs_period; + struct device dev; + possible_net_t _net; + spinlock_t queue_lock; + atomic_t ongoing_txs; + atomic_t hold_txs; + wait_queue_head_t sync_txq; + enum ieee802154_filtering_level filtering; + long: 64; + long: 64; + char priv[0]; +}; + +struct wq_barrier { + struct work_struct work; + struct completion done; + struct task_struct *task; +}; + +struct wq_device { + struct workqueue_struct *wq; + struct device dev; +}; + +struct wq_drain_dead_softirq_work { + struct work_struct work; + struct worker_pool *pool; + struct completion done; +}; + +struct wq_flusher { + struct list_head list; + int flush_color; + struct completion done; +}; + +struct wq_node_nr_active { + int max; + atomic_t nr; + raw_spinlock_t lock; + struct list_head pending_pwqs; +}; + +struct wq_pod_type { + int nr_pods; + cpumask_var_t *pod_cpus; + int *pod_node; + int *cpu_pod; +}; + +typedef void (*swap_func_t)(void *, void *, int); + +struct wrapper { + cmp_func_t cmp; + swap_func_t swap; +}; + +struct wrapper_priv_data { + struct dwc2_hsotg *hsotg; +}; + +struct writeback_control { + long int nr_to_write; + long int 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_netfs_wb: 1; + unsigned int no_cgroup_owner: 1; + struct swap_iocb **swap_plug; + struct list_head *list; + struct folio_batch fbatch; + long unsigned int index; + int saved_err; + struct bdi_writeback *wb; + struct inode *inode; + int wb_id; + int wb_lcand_id; + int wb_tcand_id; + size_t wb_bytes; + size_t wb_lcand_bytes; + size_t wb_tcand_bytes; +}; + +struct writer { + uint8_t *buffer; + uint8_t previous_byte; + size_t buffer_pos; + int bufsize; + size_t global_pos; + long int (*flush)(void *, long unsigned int); + struct lzma_header *header; +}; + +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 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 x509_parse_context { + struct x509_certificate *cert; + long unsigned int 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 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 x86_apic_ops { + unsigned int (*io_apic_read)(unsigned int, unsigned int); + void (*restore)(void); +}; + +struct x86_cpuinit_ops { + void (*setup_percpu_clockev)(void); + void (*early_percpu_clock_init)(void); + void (*fixup_cpu_id)(struct cpuinfo_x86 *, int); + bool parallel_bringup; +}; + +struct x86_guest { + int (*enc_status_change_prepare)(long unsigned int, int, bool); + int (*enc_status_change_finish)(long unsigned int, int, bool); + bool (*enc_tlb_flush_required)(bool); + bool (*enc_cache_flush_required)(void); + void (*enc_kexec_begin)(void); + void (*enc_kexec_finish)(void); +}; + +struct x86_hybrid_pmu { + struct pmu pmu; + const char *name; + enum hybrid_pmu_type pmu_type; + cpumask_t supported_cpus; + union perf_capabilities intel_cap; + u64 intel_ctrl; + u64 pebs_events_mask; + u64 config_mask; + union { + u64 cntr_mask64; + long unsigned int cntr_mask[1]; + }; + union { + u64 fixed_cntr_mask64; + long unsigned int fixed_cntr_mask[1]; + }; + 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[256]; +}; + +struct x86_init_acpi { + void (*set_root_pointer)(u64); + u64 (*get_root_pointer)(void); + void (*reduced_hw_early_init)(void); +}; + +struct x86_init_iommu { + int (*iommu_init)(void); +}; + +struct x86_init_irqs { + void (*pre_vector_init)(void); + void (*intr_init)(void); + void (*intr_mode_select)(void); + void (*intr_mode_init)(void); + struct irq_domain * (*create_pci_msi_domain)(void); +}; + +struct x86_init_mpparse { + void (*setup_ioapic_ids)(void); + void (*find_mptable)(void); + void (*early_parse_smp_cfg)(void); + void (*parse_smp_cfg)(void); +}; + +struct x86_init_oem { + void (*arch_setup)(void); + void (*banner)(void); +}; + +struct x86_init_resources { + void (*probe_roms)(void); + void (*reserve_resources)(void); + char * (*memory_setup)(void); + void (*dmi_setup)(void); +}; + +struct x86_init_paging { + void (*pagetable_init)(void); +}; + +struct x86_init_timers { + void (*setup_percpu_clockev)(void); + void (*timer_init)(void); + void (*wallclock_init)(void); +}; + +struct x86_init_pci { + int (*arch_init)(void); + int (*init)(void); + void (*init_irq)(void); + void (*fixup_irqs)(void); +}; + +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_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 x86_mapping_info { + void * (*alloc_pgt_page)(void *); + void (*free_pgt_page)(void *, void *); + void *context; + long unsigned int page_flag; + long unsigned int offset; + bool direct_gbpages; + long unsigned int kernpg_flag; +}; + +struct x86_perf_regs { + struct pt_regs regs; + u64 *xmm_regs; +}; + +struct x86_perf_task_context_opt { + int lbr_callstack_users; + int lbr_stack_state; + int log_id; +}; + +struct x86_perf_task_context { + u64 lbr_sel; + int tos; + int valid_lbrs; + struct x86_perf_task_context_opt opt; + struct lbr_entry lbr[32]; +}; + +struct x86_perf_task_context_arch_lbr { + struct x86_perf_task_context_opt opt; + struct lbr_entry entries[0]; +}; + +struct x86_perf_task_context_arch_lbr_xsave { + struct x86_perf_task_context_opt opt; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + union { + struct xregs_state xsave; + struct { + struct fxregs_state i387; + struct xstate_header header; + struct arch_lbr_state lbr; + long: 64; + long: 64; + long: 64; + }; + }; +}; + +struct x86_platform_ops { + long unsigned int (*calibrate_cpu)(void); + long unsigned int (*calibrate_tsc)(void); + void (*get_wallclock)(struct timespec64 *); + int (*set_wallclock)(const struct timespec64 *); + void (*iommu_shutdown)(void); + bool (*is_untracked_pat_range)(u64, u64); + void (*nmi_init)(void); + unsigned char (*get_nmi_reason)(void); + void (*save_sched_clock_state)(void); + void (*restore_sched_clock_state)(void); + void (*apic_post_init)(void); + struct x86_legacy_features legacy; + void (*set_legacy_features)(void); + void (*realmode_reserve)(void); + void (*realmode_init)(void); + struct x86_hyper_runtime hyper; + struct x86_guest guest; +}; + +struct x86_pmu_quirk; + +struct x86_pmu { + const char *name; + int version; + int (*handle_irq)(struct pt_regs *); + void (*disable_all)(void); + 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; + unsigned int fixedctr; + int (*addr_offset)(int, bool); + int (*rdpmc_index)(int); + u64 (*event_map)(int); + int max_events; + u64 config_mask; + union { + u64 cntr_mask64; + long unsigned int cntr_mask[1]; + }; + union { + u64 fixed_cntr_mask64; + long unsigned int fixed_cntr_mask[1]; + }; + int cntval_bits; + u64 cntval_mask; + union { + long unsigned int events_maskl; + long unsigned int 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; + long unsigned int attr_freeze_on_smi; + int (*cpu_prepare)(int); + void (*cpu_starting)(int); + void (*cpu_dying)(int); + void (*cpu_dead)(int); + void (*check_microcode)(void); + void (*sched_task)(struct perf_event_pmu_context *, struct task_struct *, 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; + u64 pebs_events_mask; + 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); + long unsigned int 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; + }; + u64 lbr_callstack_users; + bool lbr_double_abort; + bool lbr_pt_coexist; + unsigned int lbr_has_info: 1; + unsigned int lbr_has_tsx: 1; + unsigned int lbr_from_flags: 1; + unsigned int lbr_to_cycles: 1; + unsigned int lbr_depth_mask: 8; + unsigned int lbr_deep_c_reset: 1; + unsigned int lbr_lip: 1; + unsigned int lbr_cpl: 1; + unsigned int lbr_filter: 1; + unsigned int lbr_call_stack: 1; + unsigned int lbr_mispred: 1; + unsigned int lbr_timed_lbr: 1; + unsigned int lbr_br_type: 1; + unsigned int lbr_counters: 4; + void (*lbr_reset)(void); + void (*lbr_read)(struct cpu_hw_events *); + void (*lbr_save)(void *); + void (*lbr_restore)(void *); + atomic_t lbr_exclusive[3]; + int num_topdown_events; + void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); + unsigned int amd_nb_constraints: 1; + u64 perf_ctr_pair_en; + struct extra_reg *extra_regs; + unsigned int flags; + struct perf_guest_switch_msr * (*guest_get_msrs)(int *, void *); + int (*check_period)(struct perf_event *, u64); + int (*aux_output_match)(struct perf_event *); + void (*filter)(struct pmu *, int, bool *); + int num_hybrid_pmus; + struct x86_hybrid_pmu *hybrid_pmu; + enum hybrid_cpu_type (*get_hybrid_cpu_type)(void); +}; + +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; +}; + +union x86_pmu_config { + struct { + u64 event: 8; + u64 umask: 8; + u64 usr: 1; + u64 os: 1; + u64 edge: 1; + u64 pc: 1; + u64 interrupt: 1; + u64 __reserved1: 1; + u64 en: 1; + u64 inv: 1; + u64 cmask: 8; + u64 event2: 4; + u64 __reserved2: 4; + u64 go: 1; + u64 ho: 1; + } bits; + u64 value; +}; + +struct x86_pmu_lbr { + unsigned int nr; + unsigned int from; + unsigned int to; + unsigned int info; + bool has_callstack; +}; + +struct x86_pmu_quirk { + struct x86_pmu_quirk *next; + void (*func)(void); +}; + +struct x86_topology_system { + unsigned int dom_shifts[7]; + unsigned int dom_size[7]; +}; + +struct x86_xfeat_component { + __u32 type; + __u32 size; + __u32 offset; + __u32 flags; +}; + +struct xa_limit { + u32 max; + u32 min; +}; + +struct xa_node { + unsigned char shift; + unsigned char offset; + unsigned char count; + unsigned char nr_values; + struct xa_node *parent; + struct xarray *array; + union { + struct list_head private_list; + struct callback_head callback_head; + }; + void *slots[64]; + union { + long unsigned int tags[3]; + long unsigned int marks[3]; + }; +}; + +typedef void (*xa_update_node_t)(struct xa_node *); + +struct xa_state { + struct xarray *xa; + long unsigned int 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 xattr { + const char *name; + void *value; + size_t value_len; +}; + +struct xattr_args { + __u64 value; + __u32 size; + __u32 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 xattr_list { + struct list_head list; + char *name; + bool enabled; +}; + +struct xattr_name { + char name[256]; +}; + +struct xb_find_info { + struct xenbus_device *dev; + const char *nodename; +}; + +struct xsd_sockmsg { + uint32_t type; + uint32_t req_id; + uint32_t tx_id; + uint32_t len; +}; + +struct xb_req_data { + struct list_head list; + wait_queue_head_t wq; + struct kref kref; + struct xsd_sockmsg msg; + uint32_t caller_req_id; + enum xsd_sockmsg_type type; + char *body; + const struct kvec *vec; + int num_vecs; + int err; + enum xb_req_state state; + bool user_req; + void (*cb)(struct xb_req_data *); + void *par; +}; + +struct xbc_node { + uint16_t next; + uint16_t child; + uint16_t parent; + uint16_t data; +}; + +struct xdbc_info_context { + __le64 string0; + __le64 manufacturer; + __le64 product; + __le64 serial; + __le32 length; + __le32 __reserved_0[7]; +}; + +struct xdbc_ep_context { + __le32 ep_info1; + __le32 ep_info2; + __le64 deq; + __le32 tx_info; + __le32 __reserved_0[11]; +}; + +struct xdbc_context { + struct xdbc_info_context info; + struct xdbc_ep_context out; + struct xdbc_ep_context in; +}; + +struct xdbc_erst_entry { + __le64 seg_addr; + __le32 seg_size; + __le32 __reserved_0; +}; + +struct xdbc_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 xdbc_segment; + +struct xdbc_trb; + +struct xdbc_ring { + struct xdbc_segment *segment; + struct xdbc_trb *enqueue; + struct xdbc_trb *dequeue; + u32 cycle_state; +}; + +struct xdbc_segment { + struct xdbc_trb *trbs; + dma_addr_t dma; +}; + +struct xdbc_state { + u16 vendor; + u16 device; + u32 bus; + u32 dev; + u32 func; + void *xhci_base; + u64 xhci_start; + size_t xhci_length; + int port_number; + struct xdbc_regs *xdbc_reg; + dma_addr_t table_dma; + void *table_base; + dma_addr_t erst_dma; + size_t erst_size; + void *erst_base; + struct xdbc_ring evt_ring; + struct xdbc_segment evt_seg; + dma_addr_t dbcc_dma; + size_t dbcc_size; + void *dbcc_base; + dma_addr_t string_dma; + size_t string_size; + void *string_base; + struct xdbc_ring out_ring; + struct xdbc_segment out_seg; + void *out_buf; + dma_addr_t out_dma; + struct xdbc_ring in_ring; + struct xdbc_segment in_seg; + void *in_buf; + dma_addr_t in_dma; + u32 flags; + raw_spinlock_t lock; +}; + +struct xdbc_strings { + char string0[64]; + char manufacturer[64]; + char product[64]; + char serial[64]; +}; + +struct xdbc_trb { + __le32 field[4]; +}; + +struct xdp_attachment_info { + struct bpf_prog *prog; + u32 flags; +}; + +struct xdp_buff_xsk { + struct xdp_buff xdp; + u8 cb[24]; + dma_addr_t dma; + dma_addr_t frame_dma; + struct xsk_buff_pool *pool; + struct list_head list_node; + long: 64; +}; + +struct xdp_bulk_queue { + void *q[8]; + struct list_head flush_node; + struct bpf_cpu_map_entry *obj; + unsigned int count; +}; + +struct xdp_cpumap_stats { + unsigned int redirect; + unsigned int pass; + unsigned int drop; +}; + +struct xdp_desc { + __u64 addr; + __u32 len; + __u32 options; +}; + +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 xdp_frame { + void *data; + u32 len; + u32 headroom; + u32 metasize; + enum xdp_mem_type mem_type: 32; + struct net_device *dev_rx; + u32 frame_sz; + u32 flags; +}; + +struct xdp_frame_bulk { + int count; + netmem_ref q[16]; +}; + +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 xdp_metadata_ops { + int (*xmo_rx_timestamp)(const struct xdp_md *, u64 *); + int (*xmo_rx_hash)(const struct xdp_md *, u32 *, enum xdp_rss_hash_type *); + int (*xmo_rx_vlan_tag)(const struct xdp_md *, __be16 *, u16 *); +}; + +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_ring_offset_v1 { + __u64 producer; + __u64 consumer; + __u64 desc; +}; + +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 xdp_page_head { + struct xdp_buff orig_ctx; + struct xdp_buff ctx; + union { + struct { + struct {} __empty_frame; + struct xdp_frame frame[0]; + }; + struct { + struct {} __empty_data; + u8 data[0]; + }; + }; +}; + +struct xdp_ring { + u32 producer; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 pad1; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 consumer; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 pad2; + u32 flags; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 pad3; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct xdp_rxtx_ring { + struct xdp_ring ptrs; + struct xdp_desc desc[0]; +}; + +struct xsk_queue; + +struct xdp_umem; + +struct xdp_sock { + struct sock sk; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xsk_queue *rx; + struct net_device *dev; + struct xdp_umem *umem; + struct list_head flush_node; + struct xsk_buff_pool *pool; + u16 queue_id; + bool zc; + bool sg; + enum { + XSK_READY = 0, + XSK_BOUND = 1, + XSK_UNBOUND = 2, + } state; + long: 64; + struct xsk_queue *tx; + struct list_head tx_list; + u32 tx_budget_spent; + u64 rx_dropped; + u64 rx_queue_full; + struct sk_buff *skb; + struct list_head map_list; + spinlock_t map_list_lock; + struct mutex mutex; + struct xsk_queue *fq_tmp; + struct xsk_queue *cq_tmp; +}; + +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_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_txq_info { + struct net_device *dev; +}; + +struct xdp_umem { + void *addrs; + u64 size; + u32 headroom; + u32 chunk_size; + u32 chunks; + u32 npgs; + struct user_struct *user; + refcount_t users; + u8 flags; + u8 tx_metadata_len; + bool zc; + struct page **pgs; + int id; + struct list_head xsk_dma_list; + struct work_struct work; +}; + +struct xdp_umem_reg { + __u64 addr; + __u64 len; + __u32 chunk_size; + __u32 headroom; + __u32 flags; + __u32 tx_metadata_len; +}; + +struct xdp_umem_ring { + struct xdp_ring ptrs; + u64 desc[0]; +}; + +struct xdr_netobj { + unsigned int len; + u8 *data; +}; + +struct xen_add_to_physmap { + domid_t domid; + uint16_t size; + unsigned int space; + xen_ulong_t idx; + xen_pfn_t gpfn; +}; + +struct xen_add_to_physmap_range { + domid_t domid; + uint16_t space; + uint16_t size; + domid_t foreign_domid; + __guest_handle_xen_ulong_t idxs; + __guest_handle_xen_pfn_t gpfns; + __guest_handle_int errs; +}; + +struct xen_build_id { + uint32_t len; + unsigned char buf[0]; +}; + +struct xen_bus_type { + char *root; + unsigned int levels; + int (*get_bus_id)(char *, const char *); + int (*probe)(struct xen_bus_type *, const char *, const char *); + bool (*otherend_will_handle)(struct xenbus_watch *, const char *, const char *); + void (*otherend_changed)(struct xenbus_watch *, const char *, const char *); + struct bus_type bus; +}; + +struct xen_clock_event_device { + struct clock_event_device evt; + char name[16]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct xen_common_irq { + int irq; + char *name; +}; + +struct xen_compile_info { + char compiler[64]; + char compile_by[16]; + char compile_domain[32]; + char compile_date[32]; +}; + +struct xen_device_domain_owner { + domid_t domain; + struct pci_dev *dev; + struct list_head list; +}; + +struct xen_extraversion { + char extraversion[16]; +}; + +struct xen_feature_info { + unsigned int submap_idx; + uint32_t submap; +}; + +struct xen_grant_dma_data { + domid_t backend_domid; + bool broken; +}; + +struct xen_hvm_evtchn_upcall_vector { + uint32_t vcpu; + uint8_t vector; +}; + +typedef struct xen_hvm_evtchn_upcall_vector xen_hvm_evtchn_upcall_vector_t; + +struct xen_hvm_get_mem_type { + domid_t domid; + uint16_t mem_type; + uint16_t pad[2]; + uint64_t pfn; +}; + +struct xen_hvm_pagetable_dying { + domid_t domid; + __u64 gpa; +}; + +struct xen_hvm_param { + domid_t domid; + uint32_t index; + uint64_t value; +}; + +struct xen_machphys_mapping { + xen_ulong_t v_start; + xen_ulong_t v_end; + xen_ulong_t max_mfn; +}; + +struct xen_mc_fetch { + uint32_t flags; + uint32_t _pad0; + uint64_t fetch_id; + __guest_handle_mc_info data; +}; + +struct xen_mc_notifydomain { + uint16_t mc_domid; + uint16_t mc_vcpuid; + uint32_t flags; +}; + +struct xen_mc_physcpuinfo { + uint32_t ncpus; + uint32_t _pad0; + __guest_handle_mcinfo_logical_cpu info; +}; + +struct xen_mc_msrinject { + uint32_t mcinj_cpunr; + uint32_t mcinj_flags; + uint32_t mcinj_count; + uint32_t _pad0; + struct mcinfo_msr mcinj_msr[8]; +}; + +struct xen_mc_mceinject { + unsigned int mceinj_cpunr; +}; + +struct xen_mc { + uint32_t cmd; + uint32_t interface_version; + union { + struct xen_mc_fetch mc_fetch; + struct xen_mc_notifydomain mc_notifydomain; + struct xen_mc_physcpuinfo mc_physcpuinfo; + struct xen_mc_msrinject mc_msrinject; + struct xen_mc_mceinject mc_mceinject; + } u; +}; + +struct xen_mce { + __u64 status; + __u64 misc; + __u64 addr; + __u64 mcgstatus; + __u64 ip; + __u64 tsc; + __u64 time; + __u8 cpuvendor; + __u8 inject_flags; + __u16 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; +}; + +struct xen_mce_log { + char signature[12]; + unsigned int len; + unsigned int next; + unsigned int flags; + unsigned int recordlen; + struct xen_mce entry[32]; +}; + +struct xen_memory_reservation { + __guest_handle_xen_pfn_t extent_start; + xen_ulong_t nr_extents; + unsigned int extent_order; + unsigned int address_bits; + domid_t domid; +}; + +struct xen_memory_exchange { + struct xen_memory_reservation in; + struct xen_memory_reservation out; + xen_ulong_t nr_exchanged; +}; + +typedef void *__guest_handle_void; + +struct xen_memory_map { + unsigned int nr_entries; + __guest_handle_void buffer; +}; + +struct xen_memory_region { + long unsigned int start_pfn; + long unsigned int n_pfns; +}; + +struct xen_msi_ops { + int (*setup_msi_irqs)(struct pci_dev *, int, int); + void (*teardown_msi_irqs)(struct pci_dev *); +}; + +struct xen_netif_rx_request { + uint16_t id; + uint16_t pad; + grant_ref_t gref; +}; + +union xen_netif_rx_sring_entry { + struct xen_netif_rx_request req; + struct xen_netif_rx_response rsp; +}; + +struct xen_netif_rx_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union xen_netif_rx_sring_entry ring[0]; +}; + +struct xen_netif_tx_request { + grant_ref_t gref; + uint16_t offset; + uint16_t flags; + uint16_t id; + uint16_t size; +}; + +struct xen_netif_tx_response { + uint16_t id; + int16_t status; +}; + +union xen_netif_tx_sring_entry { + struct xen_netif_tx_request req; + struct xen_netif_tx_response rsp; +}; + +struct xen_netif_tx_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union xen_netif_tx_sring_entry ring[0]; +}; + +struct xen_page_foreign { + domid_t domid; + grant_ref_t gref; +}; + +struct xen_pci_frontend_ops { + int (*enable_msi)(struct pci_dev *, int *); + void (*disable_msi)(struct pci_dev *); + int (*enable_msix)(struct pci_dev *, int *, int); + void (*disable_msix)(struct pci_dev *); +}; + +struct xen_pct_register { + uint8_t descriptor; + uint16_t length; + uint8_t space_id; + uint8_t bit_width; + uint8_t bit_offset; + uint8_t reserved; + uint64_t address; +}; + +struct xenpf_settime32 { + uint32_t secs; + uint32_t nsecs; + uint64_t system_time; +}; + +struct xenpf_settime64 { + uint64_t secs; + uint32_t nsecs; + uint32_t mbz; + uint64_t system_time; +}; + +struct xenpf_add_memtype { + xen_pfn_t mfn; + uint64_t nr_mfns; + uint32_t type; + uint32_t handle; + uint32_t reg; +}; + +struct xenpf_del_memtype { + uint32_t handle; + uint32_t reg; +}; + +struct xenpf_read_memtype { + uint32_t reg; + xen_pfn_t mfn; + uint64_t nr_mfns; + uint32_t type; +}; + +struct xenpf_microcode_update { + __guest_handle_void data; + uint32_t length; +}; + +struct xenpf_platform_quirk { + uint32_t quirk_id; +}; + +struct xenpf_efi_time { + uint16_t year; + uint8_t month; + uint8_t day; + uint8_t hour; + uint8_t min; + uint8_t sec; + uint32_t ns; + int16_t tz; + uint8_t daylight; +}; + +struct xenpf_efi_guid { + uint32_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[8]; +}; + +struct xenpf_efi_runtime_call { + uint32_t function; + uint32_t misc; + xen_ulong_t status; + union { + struct { + struct xenpf_efi_time time; + uint32_t resolution; + uint32_t accuracy; + } get_time; + struct xenpf_efi_time set_time; + struct xenpf_efi_time get_wakeup_time; + struct xenpf_efi_time set_wakeup_time; + struct { + __guest_handle_void name; + xen_ulong_t size; + __guest_handle_void data; + struct xenpf_efi_guid vendor_guid; + } get_variable; + struct { + __guest_handle_void name; + xen_ulong_t size; + __guest_handle_void data; + struct xenpf_efi_guid vendor_guid; + } set_variable; + struct { + xen_ulong_t size; + __guest_handle_void name; + struct xenpf_efi_guid vendor_guid; + } get_next_variable_name; + struct { + uint32_t attr; + uint64_t max_store_size; + uint64_t remain_store_size; + uint64_t max_size; + } query_variable_info; + struct { + __guest_handle_void capsule_header_array; + xen_ulong_t capsule_count; + uint64_t max_capsule_size; + uint32_t reset_type; + } query_capsule_capabilities; + struct { + __guest_handle_void capsule_header_array; + xen_ulong_t capsule_count; + uint64_t sg_list; + } update_capsule; + } u; +}; + +union xenpf_efi_info { + uint32_t version; + struct { + uint64_t addr; + uint32_t nent; + } cfg; + struct { + uint32_t revision; + uint32_t bufsz; + __guest_handle_void name; + } vendor; + struct { + uint64_t addr; + uint64_t size; + uint64_t attr; + uint32_t type; + } mem; +}; + +struct xenpf_firmware_info { + uint32_t type; + uint32_t index; + union { + struct { + uint8_t device; + uint8_t version; + uint16_t interface_support; + uint16_t legacy_max_cylinder; + uint8_t legacy_max_head; + uint8_t legacy_sectors_per_track; + __guest_handle_void edd_params; + } disk_info; + struct { + uint8_t device; + uint32_t mbr_signature; + } disk_mbr_signature; + struct { + uint8_t capabilities; + uint8_t edid_transfer_time; + __guest_handle_uchar edid; + } vbeddc_info; + union xenpf_efi_info efi_info; + uint8_t kbd_shift_flags; + } u; +}; + +struct xenpf_enter_acpi_sleep { + uint16_t val_a; + uint16_t val_b; + uint32_t sleep_state; + uint32_t flags; +}; + +struct xenpf_change_freq { + uint32_t flags; + uint32_t cpu; + uint64_t freq; +}; + +struct xenpf_getidletime { + __guest_handle_uchar cpumap_bitmap; + uint32_t cpumap_nr_cpus; + __guest_handle_uint64_t idletime; + uint64_t now; +}; + +struct xen_processor_flags { + uint32_t bm_control: 1; + uint32_t bm_check: 1; + uint32_t has_cst: 1; + uint32_t power_setup_done: 1; + uint32_t bm_rld_set: 1; +}; + +struct xen_processor_cx; + +typedef struct xen_processor_cx *__guest_handle_xen_processor_cx; + +struct xen_processor_power { + uint32_t count; + struct xen_processor_flags flags; + __guest_handle_xen_processor_cx states; +}; + +struct xen_processor_px; + +typedef struct xen_processor_px *__guest_handle_xen_processor_px; + +struct xen_psd_package { + uint64_t num_entries; + uint64_t revision; + uint64_t domain; + uint64_t coord_type; + uint64_t num_processors; +}; + +struct xen_processor_performance { + uint32_t flags; + uint32_t platform_limit; + struct xen_pct_register control_register; + struct xen_pct_register status_register; + uint32_t state_count; + __guest_handle_xen_processor_px states; + struct xen_psd_package domain_info; + uint32_t shared_type; +}; + +struct xenpf_set_processor_pminfo { + uint32_t id; + uint32_t type; + union { + struct xen_processor_power power; + struct xen_processor_performance perf; + __guest_handle_uint32_t pdc; + }; +}; + +struct xenpf_pcpuinfo { + uint32_t xen_cpuid; + uint32_t max_present; + uint32_t flags; + uint32_t apic_id; + uint32_t acpi_id; +}; + +struct xenpf_cpu_ol { + uint32_t cpuid; +}; + +struct xenpf_cpu_hotadd { + uint32_t apic_id; + uint32_t acpi_id; + uint32_t pxm; +}; + +struct xenpf_mem_hotadd { + uint64_t spfn; + uint64_t epfn; + uint32_t pxm; + uint32_t flags; +}; + +struct xenpf_core_parking { + uint32_t type; + uint32_t idle_nums; +}; + +struct xenpf_symdata { + uint32_t namelen; + uint32_t symnum; + __guest_handle_char name; + uint64_t address; + char type; +}; + +struct xen_platform_op { + uint32_t cmd; + uint32_t interface_version; + union { + struct xenpf_settime32 settime32; + struct xenpf_settime64 settime64; + struct xenpf_add_memtype add_memtype; + struct xenpf_del_memtype del_memtype; + struct xenpf_read_memtype read_memtype; + struct xenpf_microcode_update microcode; + struct xenpf_platform_quirk platform_quirk; + struct xenpf_efi_runtime_call efi_runtime_call; + struct xenpf_firmware_info firmware_info; + struct xenpf_enter_acpi_sleep enter_acpi_sleep; + struct xenpf_change_freq change_freq; + struct xenpf_getidletime getidletime; + struct xenpf_set_processor_pminfo set_pminfo; + struct xenpf_pcpuinfo pcpu_info; + struct xenpf_cpu_ol cpu_ol; + struct xenpf_cpu_hotadd cpu_add; + struct xenpf_mem_hotadd mem_add; + struct xenpf_core_parking core_parking; + struct xenpf_symdata symdata; + struct dom0_vga_console_info dom0_console; + uint8_t pad[128]; + } u; +}; + +struct xen_platform_parameters { + xen_ulong_t virt_start; +}; + +struct xen_pmu_amd_ctxt { + uint32_t counters; + uint32_t ctrls; + uint64_t regs[0]; +}; + +struct xen_pmu_regs { + uint64_t ip; + uint64_t sp; + uint64_t flags; + uint16_t cs; + uint16_t ss; + uint8_t cpl; + uint8_t pad[3]; +}; + +struct xen_pmu_intel_ctxt { + uint32_t fixed_counters; + uint32_t arch_counters; + uint64_t global_ctrl; + uint64_t global_ovf_ctrl; + uint64_t global_status; + uint64_t fixed_ctrl; + uint64_t ds_area; + uint64_t pebs_enable; + uint64_t debugctl; + uint64_t regs[0]; +}; + +struct xen_pmu_arch { + union { + struct xen_pmu_regs regs; + uint8_t pad[64]; + } r; + uint64_t pmu_flags; + union { + uint32_t lapic_lvtpc; + uint64_t pad; + } l; + union { + struct xen_pmu_amd_ctxt amd; + struct xen_pmu_intel_ctxt intel; + uint8_t pad[128]; + } c; +}; + +struct xen_pmu_cntr_pair { + uint64_t counter; + uint64_t control; +}; + +struct xen_pmu_data { + uint32_t vcpu_id; + uint32_t pcpu_id; + domid_t domain_id; + uint8_t pad[6]; + struct xen_pmu_arch pmu; +}; + +struct xen_pmu_params { + struct { + uint32_t maj; + uint32_t min; + } version; + uint64_t val; + uint32_t vcpu; + uint32_t pad; +}; + +struct xen_power_register { + uint32_t space_id; + uint32_t bit_width; + uint32_t bit_offset; + uint32_t access_size; + uint64_t address; +}; + +struct xen_processor_csd; + +typedef struct xen_processor_csd *__guest_handle_xen_processor_csd; + +struct xen_processor_csd { + uint32_t domain; + uint32_t coord_type; + uint32_t num; +}; + +struct xen_processor_cx { + struct xen_power_register reg; + uint8_t type; + uint32_t latency; + uint32_t power; + uint32_t dpcnt; + __guest_handle_xen_processor_csd dp; +}; + +struct xen_processor_px { + uint64_t core_frequency; + uint64_t power; + uint64_t transition_latency; + uint64_t bus_master_latency; + uint64_t control; + uint64_t status; +}; + +struct xen_remove_from_physmap { + domid_t domid; + xen_pfn_t gpfn; +}; + +struct xenbus_device { + const char *devicetype; + const char *nodename; + const char *otherend; + int otherend_id; + struct xenbus_watch otherend_watch; + struct device dev; + enum xenbus_state state; + struct completion down; + struct work_struct work; + struct semaphore reclaim_sem; + atomic_t event_channels; + atomic_t events; + atomic_t spurious_events; + atomic_t jiffies_eoi_delayed; + unsigned int spurious_threshold; +}; + +struct xenbus_device_id { + char devicetype[32]; +}; + +struct xenbus_driver { + const char *name; + const struct xenbus_device_id *ids; + bool allow_rebind; + bool not_essential; + int (*probe)(struct xenbus_device *, const struct xenbus_device_id *); + void (*otherend_changed)(struct xenbus_device *, enum xenbus_state); + void (*remove)(struct xenbus_device *); + int (*suspend)(struct xenbus_device *); + int (*resume)(struct xenbus_device *); + int (*uevent)(const struct xenbus_device *, struct kobj_uevent_env *); + struct device_driver driver; + int (*read_otherend_details)(struct xenbus_device *); + int (*is_ready)(struct xenbus_device *); + void (*reclaim_memory)(struct xenbus_device *); +}; + +struct xenbus_file_priv { + struct mutex msgbuffer_mutex; + struct list_head transactions; + struct list_head watches; + unsigned int len; + union { + struct xsd_sockmsg msg; + char buffer[4096]; + } u; + struct mutex reply_mutex; + struct list_head read_buffers; + wait_queue_head_t read_waitq; + struct kref kref; + struct work_struct wq; +}; + +struct xenbus_map_node { + struct list_head next; + union { + struct { + struct vm_struct *area; + } pv; + struct { + struct page *pages[16]; + long unsigned int addrs[16]; + void *addr; + } hvm; + }; + grant_handle_t handles[16]; + unsigned int nr_handles; +}; + +struct xenbus_ring_ops { + int (*map)(struct xenbus_device *, struct map_ring_valloc *, grant_ref_t *, unsigned int, void **); + int (*unmap)(struct xenbus_device *, void *); +}; + +struct xenbus_transaction { + u32 id; +}; + +struct xenbus_transaction_holder { + struct list_head list; + struct xenbus_transaction handle; + unsigned int generation_id; +}; + +struct xencons_interface; + +struct xencons_info { + struct list_head list; + struct xenbus_device *xbdev; + struct xencons_interface *intf; + unsigned int evtchn; + XENCONS_RING_IDX out_cons; + unsigned int out_cons_same; + struct hvc_struct *hvc; + int irq; + int vtermno; + grant_ref_t gntref; + spinlock_t ring_lock; +}; + +struct xencons_interface { + char in[1024]; + char out[2048]; + XENCONS_RING_IDX in_cons; + XENCONS_RING_IDX in_prod; + XENCONS_RING_IDX out_cons; + XENCONS_RING_IDX out_prod; +}; + +struct xennet_gnttab_make_txreq { + struct netfront_queue *queue; + struct sk_buff *skb; + struct page *page; + struct xen_netif_tx_request *tx; + struct xen_netif_tx_request tx_local; + unsigned int size; +}; + +struct xennet_stat { + char name[32]; + u16 offset; +}; + +struct xenpmu { + struct xen_pmu_data *xenpmu_data; + uint8_t flags; +}; + +struct xenstore_domain_interface { + char req[1024]; + char rsp[1024]; + XENSTORE_RING_IDX req_cons; + XENSTORE_RING_IDX req_prod; + XENSTORE_RING_IDX rsp_cons; + XENSTORE_RING_IDX rsp_prod; + uint32_t server_features; + uint32_t connection; + uint32_t error; +}; + +struct 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 *next; + int priority; +}; + +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 *next; + int priority; +}; + +struct xfrm_address_filter { + xfrm_address_t saddr; + xfrm_address_t daddr; + __u16 family; + __u8 splen; + __u8 dplen; +}; + +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_algo_auth { + char alg_name[64]; + unsigned int alg_key_len; + unsigned int alg_trunc_len; + char alg_key[0]; +}; + +struct xfrm_dev_offload { + struct net_device *dev; + netdevice_tracker dev_tracker; + struct net_device *real_dev; + long unsigned int offload_handle; + u8 dir: 2; + u8 type: 2; + u8 flags: 2; +}; + +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 xfrm_dst_lookup_params { + struct net *net; + dscp_t dscp; + int oif; + xfrm_address_t *saddr; + xfrm_address_t *daddr; + u32 mark; + __u8 ipproto; + union flowi_uli uli; +}; + +struct xfrm_encap_tmpl { + __u16 encap_type; + __be16 encap_sport; + __be16 encap_dport; + xfrm_address_t encap_oa; +}; + +struct xfrm_flo { + struct dst_entry *dst_orig; + u8 flags; +}; + +struct xfrm_flow_keys { + struct flow_dissector_key_basic basic; + struct flow_dissector_key_control control; + union { + struct flow_dissector_key_ipv4_addrs ipv4; + struct flow_dissector_key_ipv6_addrs ipv6; + } addrs; + struct flow_dissector_key_ip ip; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_keyid gre; +}; + +struct xfrm_hash_state_ptrs { + const struct hlist_head *bydst; + const struct hlist_head *bysrc; + const struct hlist_head *byspi; + unsigned int hmask; +}; + +struct xfrm_id { + xfrm_address_t daddr; + __be32 spi; + __u8 proto; +}; + +struct xfrm_if_decode_session_result; + +struct xfrm_if_cb { + bool (*decode_session)(struct sk_buff *, short unsigned int, struct xfrm_if_decode_session_result *); +}; + +struct xfrm_if_decode_session_result { + struct net *net; + u32 if_id; +}; + +struct xfrm_input_afinfo { + u8 family; + bool is_ipip; + int (*callback)(struct sk_buff *, u8, int); +}; + +struct xfrm_kmaddress { + xfrm_address_t local; + xfrm_address_t remote; + u32 reserved; + u16 family; +}; + +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_mark { + __u32 v; + __u32 m; +}; + +struct xfrm_tmpl; + +struct xfrm_selector; + +struct xfrm_migrate; + +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_mode { + u8 encap; + u8 family; + u8 flags; +}; + +struct xfrm_mode_cbs { + struct module *owner; + int (*init_state)(struct xfrm_state *); + int (*clone_state)(struct xfrm_state *, struct xfrm_state *); + void (*destroy_state)(struct xfrm_state *); + int (*user_init)(struct net *, struct xfrm_state *, struct nlattr **, struct netlink_ext_ack *); + int (*copy_to_user)(struct xfrm_state *, struct sk_buff *); + unsigned int (*sa_len)(const struct xfrm_state *); + u32 (*get_inner_mtu)(struct xfrm_state *, int); + int (*input)(struct xfrm_state *, struct sk_buff *); + int (*output)(struct net *, struct sock *, struct sk_buff *); + int (*prepare_output)(struct xfrm_state *, struct sk_buff *); +}; + +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 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 xfrm_pol_inexact_candidates { + struct hlist_head *res[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_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_policy_walk_entry { + struct list_head all; + u8 dead; +}; + +struct xfrm_policy_queue { + struct sk_buff_head hold_queue; + struct timer_list hold_timer; + long unsigned int timeout; +}; + +struct xfrm_tmpl { + struct xfrm_id id; + xfrm_address_t saddr; + short unsigned int encap_family; + u32 reqid; + u8 mode; + u8 share; + u8 optional; + u8 allalgs; + u32 aalgos; + u32 ealgos; + u32 calgos; +}; + +struct xfrm_policy { + possible_net_t xp_net; + struct hlist_node bydst; + struct hlist_node byidx; + struct hlist_head state_cache_list; + 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 callback_head rcu; + struct xfrm_dev_offload xdo; +}; + +struct xfrm_policy_afinfo { + struct dst_ops *dst_ops; + struct dst_entry * (*dst_lookup)(const struct xfrm_dst_lookup_params *); + int (*get_saddr)(xfrm_address_t *, const struct xfrm_dst_lookup_params *); + int (*fill_dst)(struct xfrm_dst *, struct net_device *, const struct flowi *); + struct dst_entry * (*blackhole_route)(struct net *, struct dst_entry *); +}; + +struct xfrm_policy_walk { + struct xfrm_policy_walk_entry walk; + u8 type; + u32 seq; +}; + +struct xfrm_replay_state { + __u32 oseq; + __u32 seq; + __u32 bitmap; +}; + +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_sec_ctx { + __u8 ctx_doi; + __u8 ctx_alg; + __u16 ctx_len; + __u32 ctx_sid; + char ctx_str[0]; +}; + +struct xfrm_skb_cb { + struct xfrm_tunnel_skb_cb header; + union { + struct { + __u32 low; + __u32 hi; + } output; + struct { + __be32 low; + __be32 hi; + } input; + } seq; +}; + +struct xfrm_spi_skb_cb { + struct xfrm_tunnel_skb_cb header; + unsigned int daddroff; + unsigned int family; + __be32 seq; +}; + +struct xfrm_state_walk { + struct list_head all; + u8 state; + u8 dying; + u8 proto; + u32 seq; + struct xfrm_address_filter *filter; +}; + +struct xfrm_stats { + __u32 replay_window; + __u32 replay; + __u32 integrity_failed; +}; + +struct xfrm_type; + +struct xfrm_type_offload; + +struct xfrm_state { + possible_net_t xs_net; + union { + struct hlist_node gclist; + struct hlist_node bydst; + }; + union { + struct hlist_node dev_gclist; + struct hlist_node bysrc; + }; + struct hlist_node byspi; + struct hlist_node byseq; + struct hlist_node state_cache; + struct hlist_node state_cache_input; + refcount_t refcnt; + spinlock_t lock; + u32 pcpu_num; + 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 enc_hdr_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; + u32 nat_keepalive_interval; + time64_t nat_keepalive_expiration; + 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 int 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; + u8 dir; + const struct xfrm_mode_cbs *mode_cbs; + void *mode_data; +}; + +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 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 xfrm_trans_tasklet { + struct work_struct work; + spinlock_t queue_lock; + struct sk_buff_head queue; +}; + +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 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_user_offload { + int ifindex; + __u8 flags; +}; + +struct xfrm_user_sec_ctx { + __u16 len; + __u16 exttype; + __u8 ctx_alg; + __u8 ctx_doi; + __u16 ctx_len; +}; + +struct xfrmdev_ops { + int (*xdo_dev_state_add)(struct net_device *, struct xfrm_state *, struct netlink_ext_ack *); + void (*xdo_dev_state_delete)(struct net_device *, struct xfrm_state *); + void (*xdo_dev_state_free)(struct net_device *, struct xfrm_state *); + bool (*xdo_dev_offload_ok)(struct sk_buff *, struct xfrm_state *); + void (*xdo_dev_state_advance_esn)(struct xfrm_state *); + void (*xdo_dev_state_update_stats)(struct xfrm_state *); + int (*xdo_dev_policy_add)(struct xfrm_policy *, struct netlink_ext_ack *); + void (*xdo_dev_policy_delete)(struct xfrm_policy *); + void (*xdo_dev_policy_free)(struct xfrm_policy *); +}; + +struct xfrmk_sadinfo { + u32 sadhcnt; + u32 sadhmcnt; + u32 sadcnt; +}; + +struct xfrmk_spdinfo { + u32 incnt; + u32 outcnt; + u32 fwdcnt; + u32 inscnt; + u32 outscnt; + u32 fwdscnt; + u32 spdhcnt; + u32 spdhmcnt; +}; + +struct xhci_bus_state { + long unsigned int bus_suspended; + long unsigned int next_statechange; + u32 port_c_suspend; + u32 suspended_ports; + u32 port_remote_wakeup; + long unsigned int resuming_ports; +}; + +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_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_container_ctx; + +struct xhci_command { + struct xhci_container_ctx *in_ctx; + u32 status; + u32 comp_param; + int slot_id; + struct completion *completion; + union xhci_trb *command_trb; + struct list_head cmd_list; + unsigned int timeout_ms; +}; + +struct xhci_container_ctx { + unsigned int type; + int size; + u8 *bytes; + dma_addr_t dma; +}; + +struct xhci_erst_entry; + +struct xhci_erst { + struct xhci_erst_entry *entries; + unsigned int num_entries; + dma_addr_t erst_dma_addr; +}; + +struct xhci_hcd; + +struct xhci_dbc { + spinlock_t lock; + struct device *dev; + struct xhci_hcd *xhci; + struct dbc_regs *regs; + struct xhci_ring *ring_evt; + struct xhci_ring *ring_in; + struct xhci_ring *ring_out; + struct xhci_erst erst; + struct xhci_container_ctx *ctx; + struct dbc_str_descs *string; + dma_addr_t string_dma; + size_t string_size; + u16 idVendor; + u16 idProduct; + u16 bcdDevice; + u8 bInterfaceProtocol; + enum dbc_state state; + struct delayed_work event_work; + unsigned int poll_interval; + long unsigned int xfer_timestamp; + unsigned int resume_required: 1; + struct dbc_ep eps[2]; + const struct dbc_driver *driver; + void *priv; +}; + +struct xhci_device_context_array { + __le64 dev_context_ptrs[256]; + dma_addr_t dma; +}; + +struct xhci_doorbell_array { + __le32 doorbell[256]; +}; + +struct xhci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*start)(struct usb_hcd *); + int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); + void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); + int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t); + int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); +}; + +struct xhci_ep_ctx { + __le32 ep_info; + __le32 ep_info2; + __le64 deq; + __le32 tx_info; + __le32 reserved[3]; +}; + +struct xhci_stream_info; + +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_erst_entry { + __le64 seg_addr; + __le32 seg_size; + __le32 rsvd; +}; + +struct xhci_event_cmd { + __le64 cmd_trb; + __le32 status; + __le32 flags; +}; + +struct xhci_file_map { + const char *name; + int (*show)(struct seq_file *, void *); +}; + +struct xhci_generic_trb { + __le32 field[4]; +}; + +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_op_regs; + +struct xhci_run_regs; + +struct xhci_interrupter; + +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; + u16 hci_version; + u16 max_interrupters; + u32 imod_interval; + u32 page_size; + int nvecs; + struct clk *clk; + struct clk *reg_clk; + struct reset_control *reset; + struct xhci_device_context_array *dcbaa; + struct xhci_interrupter **interrupters; + struct xhci_ring *cmd_ring; + unsigned int cmd_ring_state; + struct list_head cmd_list; + unsigned int cmd_ring_reserved_trbs; + struct delayed_work cmd_timer; + struct completion cmd_ring_stop_completion; + struct xhci_command *current_cmd; + struct xhci_scratchpad *scratchpad; + struct mutex mutex; + struct xhci_virt_device *devs[256]; + struct xhci_root_port_bw_info *rh_bw; + struct dma_pool *device_pool; + struct dma_pool *segment_pool; + struct dma_pool *small_streams_pool; + struct dma_pool *medium_streams_pool; + unsigned int xhc_state; + long unsigned int run_graceperiod; + struct s3_save s3; + long long unsigned int 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; + 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; + long unsigned int priv[0]; +}; + +struct xhci_input_control_ctx { + __le32 drop_flags; + __le32 add_flags; + __le32 rsvd2[6]; +}; + +struct xhci_intr_reg; + +struct xhci_interrupter { + struct xhci_ring *event_ring; + struct xhci_erst erst; + struct xhci_intr_reg *ir_set; + unsigned int intr_num; + bool ip_autoclear; + u32 isoc_bei_interval; + u32 s3_irq_pending; + u32 s3_irq_control; + u32 s3_erst_size; + u64 s3_erst_base; + u64 s3_erst_dequeue; +}; + +struct xhci_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_intr_reg { + __le32 irq_pending; + __le32 irq_control; + __le32 erst_size; + __le32 rsvd; + __le64 erst_base; + __le64 erst_dequeue; +}; + +struct xhci_link_trb { + __le64 segment_ptr; + __le32 intr_target; + __le32 control; +}; + +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_port { + __le32 *addr; + int hw_portnum; + int hcd_portnum; + struct xhci_hub *rhub; + struct xhci_port_cap *port_cap; + unsigned int lpm_incapable: 1; + long unsigned int resume_timestamp; + bool rexit_active; + int slot_id; + struct completion rexit_done; + struct completion u3exit_done; +}; + +struct xhci_port_cap { + u32 *psi; + u8 psi_count; + u8 psi_uid_count; + u8 maj_rev; + u8 min_rev; + u32 protocol_caps; +}; + +struct xhci_regset { + char name[32]; + struct debugfs_regset32 regset; + size_t nregs; + struct list_head list; +}; + +struct xhci_ring { + struct xhci_segment *first_seg; + struct xhci_segment *last_seg; + union xhci_trb *enqueue; + struct xhci_segment *enq_seg; + union xhci_trb *dequeue; + struct xhci_segment *deq_seg; + struct list_head td_list; + u32 cycle_state; + unsigned int stream_id; + unsigned int num_segs; + unsigned int num_trbs_free; + unsigned int bounce_buf_len; + enum xhci_ring_type type; + u32 old_trb_comp_code; + struct xarray *trb_address_map; +}; + +struct xhci_root_port_bw_info { + struct list_head tts; + unsigned int num_active_tts; + struct xhci_interval_bw_table bw_table; +}; + +struct xhci_run_regs { + __le32 microframe_index; + __le32 rsvd[7]; + struct xhci_intr_reg ir_set[128]; +}; + +struct xhci_scratchpad { + u64 *sp_array; + dma_addr_t sp_dma; + void **sp_buffers; +}; + +struct xhci_segment { + union xhci_trb *trbs; + struct xhci_segment *next; + unsigned int num; + dma_addr_t dma; + dma_addr_t bounce_dma; + void *bounce_buf; + unsigned int bounce_offs; + unsigned int bounce_len; +}; + +struct xhci_slot_ctx { + __le32 dev_info; + __le32 dev_info2; + __le32 tt_info; + __le32 dev_state; + __le32 reserved[4]; +}; + +struct xhci_slot_priv { + char name[32]; + struct dentry *root; + struct xhci_ep_priv *eps[31]; + struct xhci_virt_device *dev; +}; + +struct xhci_stream_ctx { + __le64 stream_ring; + __le32 reserved[2]; +}; + +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_transfer_event { + __le64 buffer; + __le32 transfer_len; + __le32 flags; +}; + +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_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_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; + long unsigned int stop_time; + int next_frame_id; + bool use_extended_tbc; +}; + +struct xhci_virt_device { + int slot_id; + struct usb_device *udev; + struct xhci_container_ctx *out_ctx; + struct xhci_container_ctx *in_ctx; + struct xhci_virt_ep eps[31]; + struct xhci_port *rhub_port; + struct xhci_interval_bw_table *bw_table; + struct xhci_tt_bw_info *tt_info; + long unsigned int flags; + u16 current_mel; + void *debugfs_private; +}; + +struct xmaddr { + phys_addr_t maddr; +}; + +typedef struct xmaddr xmaddr_t; + +struct xol_area { + wait_queue_head_t wq; + long unsigned int *bitmap; + struct page *page; + long unsigned int vaddr; +}; + +struct xpaddr { + phys_addr_t paddr; +}; + +typedef struct xpaddr xpaddr_t; + +struct xprt_create; + +struct xprt_class { + struct list_head list; + int ident; + struct rpc_xprt * (*setup)(struct xprt_create *); + struct module *owner; + char name[32]; + const char *netid[0]; +}; + +struct xprt_create { + int ident; + struct net *net; + struct sockaddr *srcaddr; + struct sockaddr *dstaddr; + size_t addrlen; + const char *servername; + struct svc_xprt *bc_xprt; + struct rpc_xprt_switch *bc_xps; + unsigned int flags; + struct xprtsec_parms xprtsec; + long unsigned int connect_timeout; + long unsigned int reconnect_timeout; +}; + +struct xps_map; + +struct xps_dev_maps { + struct callback_head rcu; + unsigned int nr_ids; + s16 num_tc; + struct xps_map *attr_map[0]; +}; + +struct xps_map { + unsigned int len; + unsigned int alloc_len; + struct callback_head rcu; + u16 queues[0]; +}; + +struct xs_watch_event { + struct list_head list; + unsigned int len; + struct xenbus_watch *handle; + const char *path; + const char *token; + char body[0]; +}; + +struct xsd_errors { + int errnum; + const char *errstring; +}; + +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; + spinlock_t rx_lock; + struct list_head free_list; + struct list_head xskb_list; + u32 heads_cnt; + u16 queue_id; + struct xsk_queue *fq; + struct xsk_queue *cq; + dma_addr_t *dma_pages; + struct xdp_buff_xsk *heads; + struct xdp_desc *tx_descs; + u64 chunk_mask; + u64 addrs_cnt; + u32 free_list_cnt; + u32 dma_pages_cnt; + u32 free_heads_cnt; + u32 headroom; + u32 chunk_size; + u32 chunk_shift; + u32 frame_len; + u32 xdp_zc_max_segs; + u8 tx_metadata_len; + u8 cached_need_wakeup; + bool uses_need_wakeup; + bool unaligned; + bool tx_sw_csum; + void *addrs; + spinlock_t cq_lock; + struct xdp_buff_xsk *free_heads[0]; + long: 64; + long: 64; +}; + +struct xsk_cb_desc { + void *src; + u8 off; + u8 bytes; +}; + +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; +}; + +struct xsk_map { + struct bpf_map map; + spinlock_t lock; + atomic_t count; + struct xdp_sock *xsk_map[0]; +}; + +struct xsk_map_node { + struct list_head node; + struct xsk_map *map; + struct xdp_sock **map_entry; +}; + +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 xsk_tx_metadata { + __u64 flags; + union { + struct { + __u16 csum_start; + __u16 csum_offset; + __u64 launch_time; + } request; + struct { + __u64 tx_timestamp; + } completion; + }; +}; + +struct xsk_tx_metadata_ops { + void (*tmo_request_timestamp)(void *); + u64 (*tmo_fill_timestamp)(void *); + void (*tmo_request_checksum)(u16, u16, void *); + void (*tmo_request_launch_time)(u64, void *); +}; + +struct xts_instance_ctx { + struct crypto_skcipher_spawn spawn; + struct crypto_cipher_spawn tweak_spawn; +}; + +struct xts_request_ctx { + le128 t; + struct scatterlist *tail; + struct scatterlist sg[2]; + struct skcipher_request subreq; +}; + +struct xts_tfm_ctx { + struct crypto_skcipher *child; + struct crypto_cipher *tweak; +}; + +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 xz_dec_hash { + vli_type unpadded; + vli_type uncompressed; + uint32_t crc32; +}; + +struct xz_dec_lzma2; + +struct xz_dec_bcj; + +struct xz_dec { + enum { + SEQ_STREAM_HEADER = 0, + SEQ_BLOCK_START = 1, + SEQ_BLOCK_HEADER = 2, + SEQ_BLOCK_UNCOMPRESS = 3, + SEQ_BLOCK_PADDING = 4, + SEQ_BLOCK_CHECK = 5, + SEQ_INDEX = 6, + SEQ_INDEX_PADDING = 7, + SEQ_INDEX_CRC32 = 8, + SEQ_STREAM_FOOTER = 9, + } sequence; + uint32_t pos; + vli_type vli; + size_t in_start; + size_t out_start; + uint32_t crc32; + enum xz_check check_type; + enum xz_mode mode; + bool allow_buf_error; + struct { + vli_type compressed; + vli_type uncompressed; + uint32_t size; + } block_header; + struct { + vli_type compressed; + vli_type uncompressed; + vli_type count; + struct xz_dec_hash hash; + } block; + struct { + enum { + SEQ_INDEX_COUNT = 0, + SEQ_INDEX_UNPADDED = 1, + SEQ_INDEX_UNCOMPRESSED = 2, + } sequence; + vli_type size; + vli_type count; + struct xz_dec_hash hash; + } index; + struct { + size_t pos; + size_t size; + uint8_t buf[1024]; + } temp; + struct xz_dec_lzma2 *lzma2; + struct xz_dec_bcj *bcj; + bool bcj_active; +}; + +struct xz_dec_bcj { + enum { + BCJ_X86 = 4, + BCJ_POWERPC = 5, + BCJ_IA64 = 6, + BCJ_ARM = 7, + BCJ_ARMTHUMB = 8, + BCJ_SPARC = 9, + BCJ_ARM64 = 10, + BCJ_RISCV = 11, + } 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_dec_lzma2 { + struct rc_dec rc; + struct dictionary dict; + struct lzma2_dec lzma2; + struct lzma_dec lzma; + struct { + uint32_t size; + uint8_t buf[63]; + } temp; +}; + +struct xz_dec_microlzma { + struct xz_dec_lzma2 s; +}; + +struct zap_details { + struct folio *single_folio; + bool even_cows; + bool reclaim_pt; + zap_flags_t zap_flags; +}; + +struct zbud_header { + struct list_head buddy; + unsigned int first_chunks; + unsigned int last_chunks; +}; + +struct zbud_pool { + spinlock_t lock; + union { + struct list_head buddied; + struct list_head unbuddied[63]; + }; + u64 pages_nr; +}; + +union zen_patch_rev { + struct { + __u32 rev: 8; + __u32 stepping: 4; + __u32 model: 4; + __u32 __reserved: 4; + __u32 ext_model: 4; + __u32 ext_fam: 8; + }; + __u32 ucode_rev; +}; + +struct zone_report_args { + struct blk_zone *zones; +}; + +struct zspage; + +struct zpdesc { + long unsigned int flags; + struct list_head lru; + long unsigned int movable_ops; + union { + struct zpdesc *next; + long unsigned int handle; + }; + struct zspage *zspage; + unsigned int first_obj_offset; + atomic_t _refcount; +}; + +struct zpodd { + enum odd_mech_type mech_type; + struct ata_device *dev; + bool from_notify; + bool zp_ready; + long unsigned int last_ready; + bool zp_sampled; + bool powered_off; +}; + +struct zpool_driver; + +struct zpool { + struct zpool_driver *driver; + void *pool; +}; + +struct zpool_driver { + char *type; + struct module *owner; + atomic_t refcount; + struct list_head list; + void * (*create)(const char *, gfp_t); + void (*destroy)(void *); + bool malloc_support_movable; + int (*malloc)(void *, size_t, gfp_t, long unsigned int *); + void (*free)(void *, long unsigned int); + bool sleep_mapped; + void * (*map)(void *, long unsigned int, enum zpool_mapmode); + void (*unmap)(void *, long unsigned int); + u64 (*total_pages)(void *); +}; + +struct zs_pool_stats { + atomic_long_t pages_compacted; +}; + +struct zs_pool { + const char *name; + struct size_class *size_class[255]; + struct kmem_cache *handle_cachep; + struct kmem_cache *zspage_cachep; + atomic_long_t pages_allocated; + struct zs_pool_stats stats; + struct shrinker *shrinker; + struct work_struct free_work; + rwlock_t migrate_lock; + atomic_t compaction_in_progress; +}; + +struct zspage { + struct { + unsigned int huge: 1; + unsigned int fullness: 4; + unsigned int class: 9; + unsigned int magic: 8; + }; + unsigned int inuse; + unsigned int freeobj; + struct zpdesc *first_zpdesc; + struct list_head list; + struct zs_pool *pool; + rwlock_t lock; +}; + +struct zswap_pool; + +struct zswap_entry { + swp_entry_t swpentry; + unsigned int length; + bool referenced; + struct zswap_pool *pool; + long unsigned int handle; + struct obj_cgroup *objcg; + struct list_head lru; +}; + +struct zswap_pool { + struct zpool *zpool; + struct crypto_acomp_ctx *acomp_ctx; + struct percpu_ref ref; + struct list_head list; + struct work_struct release_work; + struct hlist_node node; + char tfm_name[128]; +}; + +typedef size_t (*ZSTD_blockCompressor)(ZSTD_matchState_t *, seqStore_t *, U32 *, const void *, size_t); + +typedef U32 (*ZSTD_getAllMatchesFn)(ZSTD_match_t *, ZSTD_matchState_t *, U32 *, const BYTE *, const BYTE *, const U32 *, const U32, const U32); + +typedef size_t (*ZSTD_sequenceCopier)(ZSTD_CCtx *, ZSTD_sequencePosition *, const ZSTD_Sequence * const, size_t, const void *, size_t); + +typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); + +typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); + +typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *); + +typedef acpi_status (*acpi_gpe_callback)(struct acpi_gpe_xrupt_info *, struct acpi_gpe_block_info *, void *); + +typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); + +typedef u32 (*acpi_interface_handler)(acpi_string, u32); + +typedef u32 (*acpi_osd_handler)(void *); + +typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); + +typedef acpi_status (*acpi_table_handler)(u32, void *, void *); + +typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); + +typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); + +typedef void amd_pmu_branch_reset_t(void); + +typedef int (*apei_exec_entry_func_t)(struct apei_exec_context *, struct acpi_whea_header *, void *); + +typedef int (*apei_hest_func_t)(struct acpi_hest_header *, void *); + +typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); + +typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *); + +typedef void blk_log_action_t(struct trace_iterator *, const char *, bool); + +typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); + +typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + +typedef long unsigned int (*bpf_ctx_copy_t)(void *, const void *, long unsigned int, long unsigned int); + +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 (*bpf_jit_fill_hole_t)(void *, unsigned int); + +typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *); + +typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); + +typedef u64 (*bpf_trampoline_enter_t)(struct bpf_prog *, struct bpf_tramp_run_ctx *); + +typedef void (*bpf_trampoline_exit_t)(struct bpf_prog *, u64, struct bpf_tramp_run_ctx *); + +typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); + +typedef u64 (*btf_bpf_bprm_opts_set)(struct linux_binprm *, u64); + +typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); + +typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *); + +typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void *); + +typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void *, struct task_struct *, u64); + +typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum); + +typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64); + +typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum); + +typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32); + +typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32); + +typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32); + +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_event_output_data)(void *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64); + +typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32); + +typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64); + +typedef u64 (*btf_bpf_get_attach_cookie)(void *); + +typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); + +typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); + +typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *); + +typedef u64 (*btf_bpf_get_attach_cookie_uprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64); + +typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *); + +typedef u64 (*btf_bpf_get_cgroup_classid_curr)(void); + +typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int); + +typedef u64 (*btf_bpf_get_current_cgroup_id)(void); + +typedef u64 (*btf_bpf_get_current_comm)(char *, u32); + +typedef u64 (*btf_bpf_get_current_pid_tgid)(void); + +typedef u64 (*btf_bpf_get_current_task)(void); + +typedef u64 (*btf_bpf_get_current_task_btf)(void); + +typedef u64 (*btf_bpf_get_current_uid_gid)(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_func_ip_tracing)(void *); + +typedef u64 (*btf_bpf_get_func_ip_uprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *); + +typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); + +typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_netns_cookie)(struct sk_buff *); + +typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); + +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_sockopt)(struct bpf_sockopt_kern *); + +typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32); + +typedef u64 (*btf_bpf_get_numa_node_id)(void); + +typedef u64 (*btf_bpf_get_raw_cpu_id)(void); + +typedef u64 (*btf_bpf_get_retval)(void); + +typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *); + +typedef u64 (*btf_bpf_get_smp_processor_id)(void); + +typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); + +typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); + +typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); + +typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stack_sleepable)(struct pt_regs *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_task_stack_sleepable)(struct task_struct *, void *, u32, u64); + +typedef u64 (*btf_bpf_ima_file_hash)(struct file *, void *, u32); + +typedef u64 (*btf_bpf_ima_inode_hash)(struct inode *, void *, u32); + +typedef u64 (*btf_bpf_inode_storage_delete)(struct bpf_map *, struct inode *); + +typedef u64 (*btf_bpf_inode_storage_get)(struct bpf_map *, struct inode *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_jiffies64)(void); + +typedef u64 (*btf_bpf_kallsyms_lookup_name)(const char *, int, int, u64 *); + +typedef u64 (*btf_bpf_kptr_xchg)(void *, void *); + +typedef u64 (*btf_bpf_ktime_get_boot_ns)(void); + +typedef u64 (*btf_bpf_ktime_get_coarse_ns)(void); + +typedef u64 (*btf_bpf_ktime_get_ns)(void); + +typedef u64 (*btf_bpf_ktime_get_tai_ns)(void); + +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_loop)(u32, void *, void *, u64); + +typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_lwt_seg6_action)(struct sk_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_lwt_seg6_adjust_srh)(struct sk_buff *, u32, s32); + +typedef u64 (*btf_bpf_lwt_seg6_store_bytes)(struct sk_buff *, u32, const void *, u32); + +typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32); + +typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64); + +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_pop_data)(struct sk_msg *, u32, u32, u64); + +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_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64); + +typedef u64 (*btf_bpf_override_return)(struct pt_regs *, long unsigned int); + +typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); + +typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64); + +typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32); + +typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32); + +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_read_kernel)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_write_user)(void *, const void *, u32); + +typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64); + +typedef u64 (*btf_bpf_redirect)(u32, u64); + +typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64); + +typedef u64 (*btf_bpf_redirect_peer)(u32, u64); + +typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); + +typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); + +typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); + +typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); + +typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); + +typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); + +typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); + +typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); + +typedef u64 (*btf_bpf_send_signal)(u32); + +typedef u64 (*btf_bpf_send_signal_thread)(u32); + +typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32); + +typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64); + +typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32); + +typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32); + +typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *); + +typedef u64 (*btf_bpf_set_retval)(int); + +typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); + +typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); + +typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); + +typedef u64 (*btf_bpf_sk_fullsock)(struct sock *); + +typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, 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_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64); + +typedef u64 (*btf_bpf_sk_release)(struct sock *); + +typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *); + +typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); + +typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64); + +typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); + +typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *); + +typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); + +typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64); + +typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32); + +typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64); + +typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); + +typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32); + +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_get_pay_offset)(struct sk_buff *); + +typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64); + +typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); + +typedef u64 (*btf_bpf_skb_get_xfrm_state)(struct sk_buff *, u32, struct bpf_xfrm_state *, u32, u64); + +typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32); + +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_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_pull_data)(struct sk_buff *, u32); + +typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, 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_store_bytes)(struct sk_buff *, u32, const void *, u32, u64); + +typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); + +typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *); + +typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16); + +typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_tcp_request_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_udp6_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *); + +typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32); + +typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64); + +typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, 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_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_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_sock_from_file)(struct file *); + +typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); + +typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); + +typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); + +typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); + +typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); + +typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *); + +typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *); + +typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, s64 *); + +typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, u64 *); + +typedef u64 (*btf_bpf_sys_bpf)(int, union bpf_attr *, u32); + +typedef u64 (*btf_bpf_sys_close)(u32); + +typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t); + +typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); + +typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t); + +typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t); + +typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *); + +typedef u64 (*btf_bpf_task_storage_delete)(struct bpf_map *, struct task_struct *); + +typedef u64 (*btf_bpf_task_storage_delete_recur)(struct bpf_map *, struct task_struct *); + +typedef u64 (*btf_bpf_task_storage_get)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_task_storage_get_recur)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +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_tcp_raw_check_syncookie_ipv4)(struct iphdr *, struct tcphdr *); + +typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *); + +typedef u64 (*btf_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_send_ack)(struct tcp_sock *, u32); + +typedef u64 (*btf_bpf_tcp_sock)(struct sock *); + +typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); + +typedef u64 (*btf_bpf_timer_cancel)(struct bpf_async_kern *); + +typedef u64 (*btf_bpf_timer_init)(struct bpf_async_kern *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_async_kern *, void *, struct bpf_prog_aux *); + +typedef u64 (*btf_bpf_timer_start)(struct bpf_async_kern *, u64, u64); + +typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64); + +typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32); + +typedef u64 (*btf_bpf_unlocked_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_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); + +typedef u64 (*btf_bpf_user_rnd_u32)(void); + +typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int); + +typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int); + +typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int); + +typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64); + +typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32); + +typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *); + +typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_xdp_redirect)(u32, u64); + +typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64); + +typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); + +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_store_bytes)(struct xdp_buff *, u32, void *, u32); + +typedef u64 (*btf_get_func_arg)(void *, u32, u64 *); + +typedef u64 (*btf_get_func_arg_cnt)(void *); + +typedef u64 (*btf_get_func_ret)(void *, u64 *); + +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_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); + +typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64); + +typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32); + +typedef void (*btf_trace_ack_update_msk)(void *, u64, u64, u64, u64, u64); + +typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *); + +typedef void (*btf_trace_aer_event)(void *, const char *, const u32, const u8, const u8, struct pcie_tlp_log *); + +typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t); + +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_suspend)(void *, ktime_t, int); + +typedef void (*btf_trace_alloc_vmap_area)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_amd_pstate_epp_perf)(void *, unsigned int, u8, u8, u8, u8, bool); + +typedef void (*btf_trace_amd_pstate_perf)(void *, u8, u8, u8, u64, u64, u64, u64, unsigned int, bool); + +typedef void (*btf_trace_arm_event)(void *, const struct cper_sec_proc_arm *); + +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_status)(void *, struct ata_port *, unsigned int); + +typedef void (*btf_trace_ata_bmdma_stop)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); + +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_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_exec_command)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); + +typedef void (*btf_trace_ata_link_hardreset_begin)(void *, struct ata_link *, unsigned int *, long unsigned int); + +typedef void (*btf_trace_ata_link_hardreset_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_link_softreset_begin)(void *, struct ata_link *, unsigned int *, long unsigned int); + +typedef void (*btf_trace_ata_link_softreset_end)(void *, struct ata_link *, unsigned int *, int); + +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_qc_complete_done)(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_internal)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_qc_prep)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_sff_flush_pio_task)(void *, struct ata_port *); + +typedef void (*btf_trace_ata_sff_hsm_command_complete)(void *, struct ata_queued_cmd *, unsigned char); + +typedef void (*btf_trace_ata_sff_hsm_state)(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_ata_sff_port_intr)(void *, struct ata_queued_cmd *, unsigned char); + +typedef void (*btf_trace_ata_slave_hardreset_begin)(void *, struct ata_link *, unsigned int *, long unsigned int); + +typedef void (*btf_trace_ata_slave_hardreset_end)(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_tf_load)(void *, struct ata_port *, const struct ata_taskfile *); + +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_attach_device_to_domain)(void *, struct device *); + +typedef void (*btf_trace_balance_dirty_pages)(void *, struct bdi_writeback *, struct dirty_throttle_control *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long int, long unsigned int); + +typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); + +typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); + +typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, 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_bio_remap)(void *, struct bio *, dev_t, sector_t); + +typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); + +typedef void (*btf_trace_block_getrq)(void *, struct bio *); + +typedef void (*btf_trace_block_io_done)(void *, struct request *); + +typedef void (*btf_trace_block_io_start)(void *, struct request *); + +typedef void (*btf_trace_block_plug)(void *, struct request_queue *); + +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_rq_remap)(void *, struct request *, dev_t, sector_t); + +typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); + +typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); + +typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); + +typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); + +typedef void (*btf_trace_bpf_test_finish)(void *, int *); + +typedef void (*btf_trace_bpf_trace_printk)(void *, const char *); + +typedef void (*btf_trace_bpf_trigger_tp)(void *, int); + +typedef void (*btf_trace_bpf_xdp_link_attach_failed)(void *, const char *); + +typedef void (*btf_trace_br_fdb_add)(void *, struct ndmsg *, struct net_device *, const unsigned char *, u16, u16); + +typedef void (*btf_trace_br_fdb_external_learn_add)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16); + +typedef void (*btf_trace_br_fdb_update)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16, long unsigned int); + +typedef void (*btf_trace_br_mdb_full)(void *, const struct net_device *, const struct br_ip *); + +typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_cache_tag_assign)(void *, struct cache_tag *); + +typedef void (*btf_trace_cache_tag_flush_all)(void *, struct cache_tag *); + +typedef void (*btf_trace_cache_tag_flush_range)(void *, struct cache_tag *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_cache_tag_flush_range_np)(void *, struct cache_tag *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_cache_tag_unassign)(void *, struct cache_tag *); + +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_cap_capable)(void *, const struct cred *, struct user_namespace *, const struct user_namespace *, int, int); + +typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, long unsigned int); + +typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool); + +typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *); + +typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int); + +typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int); + +typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *); + +typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_rstat_cpu_lock_contended)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_cpu_lock_contended_fastpath)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_cpu_locked)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_cpu_locked_fastpath)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_cpu_unlock)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_cpu_unlock_fastpath)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_lock_contended)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_locked)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_unlock)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *); + +typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool); + +typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_clk_disable)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_enable)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *); + +typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *); + +typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *); + +typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *); + +typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, long unsigned int); + +typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, long unsigned int); + +typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *); + +typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *); + +typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int); + +typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int); + +typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, long unsigned int); + +typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, long unsigned int); + +typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); + +typedef void (*btf_trace_clock_enable)(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_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); + +typedef void (*btf_trace_console)(void *, const char *, size_t); + +typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *, void *); + +typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int); + +typedef void (*btf_trace_contention_end)(void *, void *, int); + +typedef void (*btf_trace_count_memcg_events)(void *, struct mem_cgroup *, int, long unsigned int); + +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_cpu_idle)(void *, unsigned int, unsigned int); + +typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool); + +typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); + +typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, 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_cros_ec_request_done)(void *, struct cros_ec_command *, int); + +typedef void (*btf_trace_cros_ec_request_start)(void *, struct cros_ec_command *); + +typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, call_single_data_t *); + +typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, call_single_data_t *); + +typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, long unsigned int, smp_call_func_t, call_single_data_t *); + +typedef void (*btf_trace_ctime_ns_xchg)(void *, struct inode *, u32, u32, u32); + +typedef void (*btf_trace_ctime_xchg_skip)(void *, struct inode *, struct timespec64 *); + +typedef void (*btf_trace_dax_insert_mapping)(void *, struct inode *, struct vm_fault *, void *); + +typedef void (*btf_trace_dax_insert_pfn_mkwrite)(void *, struct inode *, struct vm_fault *, int); + +typedef void (*btf_trace_dax_insert_pfn_mkwrite_no_entry)(void *, struct inode *, struct vm_fault *, int); + +typedef void (*btf_trace_dax_load_hole)(void *, struct inode *, struct vm_fault *, int); + +typedef void (*btf_trace_dax_pmd_fault)(void *, struct inode *, struct vm_fault *, long unsigned int, int); + +typedef void (*btf_trace_dax_pmd_fault_done)(void *, struct inode *, struct vm_fault *, long unsigned int, int); + +typedef void (*btf_trace_dax_pmd_insert_mapping)(void *, struct inode *, struct vm_fault *, long int, pfn_t, void *); + +typedef void (*btf_trace_dax_pmd_load_hole)(void *, struct inode *, struct vm_fault *, struct folio *, void *); + +typedef void (*btf_trace_dax_pmd_load_hole_fallback)(void *, struct inode *, struct vm_fault *, struct folio *, void *); + +typedef void (*btf_trace_dax_pte_fault)(void *, struct inode *, struct vm_fault *, int); + +typedef void (*btf_trace_dax_pte_fault_done)(void *, struct inode *, struct vm_fault *, int); + +typedef void (*btf_trace_dax_writeback_one)(void *, struct inode *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_dax_writeback_range)(void *, struct inode *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_dax_writeback_range_done)(void *, struct inode *, long unsigned int, long unsigned 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_dev_pm_qos_add_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_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32); + +typedef void (*btf_trace_devfreq_frequency)(void *, struct devfreq *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_devfreq_monitor)(void *, struct devfreq *); + +typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); + +typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); + +typedef void (*btf_trace_devlink_health_recover_aborted)(void *, const struct devlink *, const char *, bool, u64); + +typedef void (*btf_trace_devlink_health_report)(void *, const struct devlink *, const char *, const char *); + +typedef void (*btf_trace_devlink_health_reporter_state_update)(void *, const struct devlink *, const char *, bool); + +typedef void (*btf_trace_devlink_hwerr)(void *, const struct devlink *, int, const char *); + +typedef void (*btf_trace_devlink_hwmsg)(void *, const struct devlink *, bool, long unsigned int, const u8 *, size_t); + +typedef void (*btf_trace_devlink_trap_report)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *); + +typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t); + +typedef void (*btf_trace_dma_alloc)(void *, struct device *, void *, dma_addr_t, size_t, enum dma_data_direction, gfp_t, long unsigned int); + +typedef void (*btf_trace_dma_alloc_pages)(void *, struct device *, void *, dma_addr_t, size_t, enum dma_data_direction, gfp_t, long unsigned int); + +typedef void (*btf_trace_dma_alloc_sgt)(void *, struct device *, struct sg_table *, size_t, enum dma_data_direction, gfp_t, long unsigned int); + +typedef void (*btf_trace_dma_alloc_sgt_err)(void *, struct device *, void *, dma_addr_t, size_t, enum dma_data_direction, gfp_t, long unsigned int); + +typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_free)(void *, struct device *, void *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_free_pages)(void *, struct device *, void *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_free_sgt)(void *, struct device *, struct sg_table *, size_t, enum dma_data_direction); + +typedef void (*btf_trace_dma_map_page)(void *, struct device *, phys_addr_t, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_map_resource)(void *, struct device *, phys_addr_t, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_map_sg)(void *, struct device *, struct scatterlist *, int, int, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_map_sg_err)(void *, struct device *, struct scatterlist *, int, int, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_sync_sg_for_cpu)(void *, struct device *, struct scatterlist *, int, enum dma_data_direction); + +typedef void (*btf_trace_dma_sync_sg_for_device)(void *, struct device *, struct scatterlist *, int, enum dma_data_direction); + +typedef void (*btf_trace_dma_sync_single_for_cpu)(void *, struct device *, dma_addr_t, size_t, enum dma_data_direction); + +typedef void (*btf_trace_dma_sync_single_for_device)(void *, struct device *, dma_addr_t, size_t, enum dma_data_direction); + +typedef void (*btf_trace_dma_unmap_page)(void *, struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_unmap_resource)(void *, struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_unmap_sg)(void *, struct device *, struct scatterlist *, int, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dql_stall_detected)(void *, short unsigned int, unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int *); + +typedef void (*btf_trace_drm_vblank_event)(void *, int, unsigned int, ktime_t, bool); + +typedef void (*btf_trace_drm_vblank_event_delivered)(void *, struct drm_file *, int, unsigned int); + +typedef void (*btf_trace_drm_vblank_event_queued)(void *, struct drm_file *, int, unsigned int); + +typedef void (*btf_trace_emulate_vsyscall)(void *, int); + +typedef void (*btf_trace_error_apic_entry)(void *, int); + +typedef void (*btf_trace_error_apic_exit)(void *, int); + +typedef void (*btf_trace_error_report_end)(void *, enum error_detector, long unsigned int); + +typedef void (*btf_trace_error_wwnr)(void *, int, char *, char *); + +typedef void (*btf_trace_event_wwnr)(void *, int, char *, char *, char *, bool); + +typedef void (*btf_trace_exit_mmap)(void *, struct mm_struct *); + +typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); + +typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, long long unsigned int); + +typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); + +typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); + +typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); + +typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); + +typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); + +typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, long unsigned int, struct writeback_control *); + +typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); + +typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, long long unsigned int, long long unsigned int); + +typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int); + +typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); + +typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); + +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_insert_delayed_extent)(void *, struct inode *, struct extent_status *, bool, bool); + +typedef void (*btf_trace_ext4_es_insert_extent)(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_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); + +typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, 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_evict_inode)(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_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t); + +typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t); + +typedef void (*btf_trace_ext4_ext_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_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_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); + +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_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, short unsigned int); + +typedef void (*btf_trace_ext4_fallocate_enter)(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_fc_cleanup)(void *, journal_t *, int, tid_t); + +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_replay)(void *, struct super_block *, int, int, int, int); + +typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); + +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_inode)(void *, handle_t *, struct inode *, int); + +typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); + +typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long int, long int, int); + +typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); + +typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); + +typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, long unsigned int, int); + +typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *); + +typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); + +typedef void (*btf_trace_ext4_fsmap_low_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_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); + +typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); + +typedef void (*btf_trace_ext4_getfsmap_low_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_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned 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_insert_range)(void *, struct inode *, loff_t, loff_t); + +typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); + +typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, long unsigned int); + +typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, long unsigned int); + +typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, long unsigned int); + +typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); + +typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); + +typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, long unsigned int); + +typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int); + +typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, long long unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_mballoc_alloc)(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_mballoc_prealloc)(void *, struct ext4_allocation_context *); + +typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); + +typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t); + +typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); + +typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int); + +typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, long unsigned int, bool); + +typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); + +typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); + +typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); + +typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); + +typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, long unsigned 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_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); + +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_truncate_enter)(void *, struct inode *); + +typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); + +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_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int); + +typedef void (*btf_trace_ext4_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_writepages)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); + +typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int); + +typedef void (*btf_trace_extlog_mem_event)(void *, struct cper_sec_mem_err *, u32, const guid_t *, const char *, u8); + +typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_fdb_delete)(void *, struct net_bridge *, struct net_bridge_fdb_entry *); + +typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *); + +typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int); + +typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t); + +typedef void (*btf_trace_filemap_set_wb_err)(void *, struct address_space *, errseq_t); + +typedef void (*btf_trace_fill_mg_cmtime)(void *, struct inode *, struct timespec64 *, struct timespec64 *); + +typedef void (*btf_trace_finish_task_reaping)(void *, int); + +typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int); + +typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_free_vmap_area_noflush)(void *, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_fuse_request_end)(void *, const struct fuse_req *); + +typedef void (*btf_trace_fuse_request_send)(void *, const struct fuse_req *); + +typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_get_mapping_status)(void *, struct mptcp_ext *); + +typedef void (*btf_trace_global_dirty_state)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_gpio_direction)(void *, unsigned int, int, int); + +typedef void (*btf_trace_gpio_value)(void *, unsigned int, int, int); + +typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int); + +typedef void (*btf_trace_handshake_cancel)(void *, const struct net *, const struct handshake_req *, const struct sock *); + +typedef void (*btf_trace_handshake_cancel_busy)(void *, const struct net *, const struct handshake_req *, const struct sock *); + +typedef void (*btf_trace_handshake_cancel_none)(void *, const struct net *, const struct handshake_req *, const struct sock *); + +typedef void (*btf_trace_handshake_cmd_accept)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_cmd_accept_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_cmd_done)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_cmd_done_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_complete)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_destruct)(void *, const struct net *, const struct handshake_req *, const struct sock *); + +typedef void (*btf_trace_handshake_notify_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_submit)(void *, const struct net *, const struct handshake_req *, const struct sock *); + +typedef void (*btf_trace_handshake_submit_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *); + +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_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_hugepage_set_pmd)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_hugepage_set_pud)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_hugepage_update_pmd)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_hugepage_update_pud)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_hugetlbfs_alloc_inode)(void *, struct inode *, struct inode *, int); + +typedef void (*btf_trace_hugetlbfs_evict_inode)(void *, struct inode *); + +typedef void (*btf_trace_hugetlbfs_fallocate)(void *, struct inode *, int, loff_t, loff_t, int); + +typedef void (*btf_trace_hugetlbfs_free_inode)(void *, struct inode *); + +typedef void (*btf_trace_hugetlbfs_setattr)(void *, struct inode *, struct dentry *, struct iattr *); + +typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long int); + +typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *); + +typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long int); + +typedef void (*btf_trace_hyperv_mmu_flush_tlb_multi)(void *, const struct cpumask *, const struct flush_tlb_info *); + +typedef void (*btf_trace_hyperv_nested_flush_guest_mapping)(void *, u64, int); + +typedef void (*btf_trace_hyperv_nested_flush_guest_mapping_range)(void *, u64, int); + +typedef void (*btf_trace_hyperv_send_ipi_mask)(void *, const struct cpumask *, int); + +typedef void (*btf_trace_hyperv_send_ipi_one)(void *, int, 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); + +typedef void (*btf_trace_i2c_slave)(void *, const struct i2c_client *, enum i2c_slave_event, __u8 *, int); + +typedef void (*btf_trace_i2c_write)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); + +typedef void (*btf_trace_icc_set_bw)(void *, struct icc_path *, struct icc_node *, int, u32, u32); + +typedef void (*btf_trace_icc_set_bw_end)(void *, struct icc_path *, int); + +typedef void (*btf_trace_icmp_send)(void *, const struct sk_buff *, int, int); + +typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *); + +typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int); + +typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int); + +typedef void (*btf_trace_initcall_level)(void *, const char *); + +typedef void (*btf_trace_initcall_start)(void *, initcall_t); + +typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int); + +typedef void (*btf_trace_inode_set_ctime_to_ts)(void *, struct inode *, struct timespec64 *); + +typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *); + +typedef void (*btf_trace_io_page_fault)(void *, struct device *, long unsigned int, int); + +typedef void (*btf_trace_io_uring_complete)(void *, struct io_ring_ctx *, void *, struct io_uring_cqe *); + +typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, long long unsigned int, s32, u32, void *); + +typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); + +typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); + +typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int); + +typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); + +typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long 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_short_write)(void *, void *, u64, u64, u64); + +typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int); + +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_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_ioc_vrate_adj)(void *, struct ioc *, u64, u32 *, u32, int, int); + +typedef void (*btf_trace_iocost_iocg_activate)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); + +typedef void (*btf_trace_iocost_iocg_forgive_debt)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u64, u64, u64, u64); + +typedef void (*btf_trace_iocost_iocg_idle)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); + +typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); + +typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); + +typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, long unsigned int); + +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_readahead)(void *, struct inode *, int); + +typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); + +typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, u64, unsigned int, struct iomap *); + +typedef void (*btf_trace_ipi_entry)(void *, const char *); + +typedef void (*btf_trace_ipi_exit)(void *, const char *); + +typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); + +typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, long unsigned int, void *); + +typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, long unsigned int, void *); + +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_irq_matrix_alloc)(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_alloc_reserved)(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_assign_system)(void *, int, struct irq_matrix *); + +typedef void (*btf_trace_irq_matrix_free)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); + +typedef void (*btf_trace_irq_matrix_offline)(void *, struct irq_matrix *); + +typedef void (*btf_trace_irq_matrix_online)(void *, struct irq_matrix *); + +typedef void (*btf_trace_irq_matrix_remove_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); + +typedef void (*btf_trace_irq_matrix_remove_reserved)(void *, struct irq_matrix *); + +typedef void (*btf_trace_irq_matrix_reserve)(void *, struct irq_matrix *); + +typedef void (*btf_trace_irq_matrix_reserve_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); + +typedef void (*btf_trace_irq_noise)(void *, int, const char *, u64, u64); + +typedef void (*btf_trace_irq_work_entry)(void *, int); + +typedef void (*btf_trace_irq_work_exit)(void *, int); + +typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, long long unsigned int); + +typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, long long unsigned int); + +typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int); + +typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); + +typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_locking)(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_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, 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_start)(void *, dev_t, tid_t, unsigned int, unsigned 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_lock_buffer_stall)(void *, dev_t, long unsigned int); + +typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); + +typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, long unsigned int, tid_t); + +typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); + +typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); + +typedef void (*btf_trace_kfree)(void *, long unsigned int, const void *); + +typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason, struct sock *); + +typedef void (*btf_trace_kmalloc)(void *, long unsigned int, const void *, size_t, size_t, gfp_t, int); + +typedef void (*btf_trace_kmem_cache_alloc)(void *, long unsigned int, const void *, struct kmem_cache *, gfp_t, int); + +typedef void (*btf_trace_kmem_cache_free)(void *, long unsigned int, const void *, const struct kmem_cache *); + +typedef void (*btf_trace_ksm_advisor)(void *, s64, long unsigned int, unsigned int); + +typedef void (*btf_trace_ksm_enter)(void *, void *); + +typedef void (*btf_trace_ksm_exit)(void *, void *); + +typedef void (*btf_trace_ksm_merge_one_page)(void *, long unsigned int, void *, void *, int); + +typedef void (*btf_trace_ksm_merge_with_ksm_page)(void *, void *, long unsigned int, void *, void *, int); + +typedef void (*btf_trace_ksm_remove_ksm_page)(void *, long unsigned int); + +typedef void (*btf_trace_ksm_remove_rmap_item)(void *, long unsigned int, void *, void *); + +typedef void (*btf_trace_ksm_start_scan)(void *, int, u32); + +typedef void (*btf_trace_ksm_stop_scan)(void *, int, u32); + +typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lease *, struct file_lease *); + +typedef void (*btf_trace_local_timer_entry)(void *, int); + +typedef void (*btf_trace_local_timer_exit)(void *, int); + +typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *); + +typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_ma_op)(void *, const char *, struct ma_state *); + +typedef void (*btf_trace_ma_read)(void *, const char *, struct ma_state *); + +typedef void (*btf_trace_ma_write)(void *, const char *, struct ma_state *, long unsigned int, void *); + +typedef void (*btf_trace_map)(void *, long unsigned int, phys_addr_t, size_t); + +typedef void (*btf_trace_mark_victim)(void *, struct task_struct *, uid_t); + +typedef void (*btf_trace_mc_event)(void *, const unsigned int, const char *, const char *, const int, const u8, const s8, const s8, const s8, long unsigned int, const u8, long unsigned int, const char *); + +typedef void (*btf_trace_mce_record)(void *, struct mce_hw_err *); + +typedef void (*btf_trace_mctp_key_acquire)(void *, const struct mctp_sk_key *); + +typedef void (*btf_trace_mctp_key_release)(void *, const struct mctp_sk_key *, int); + +typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); + +typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *); + +typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); + +typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *); + +typedef void (*btf_trace_memcg_flush_stats)(void *, struct mem_cgroup *, s64, bool, bool); + +typedef void (*btf_trace_memory_failure_event)(void *, long unsigned int, int, int); + +typedef void (*btf_trace_mm_alloc_contig_migrate_range_info)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_mm_collapse_huge_page)(void *, struct mm_struct *, int, int); + +typedef void (*btf_trace_mm_collapse_huge_page_isolate)(void *, struct page *, int, int, bool, int); + +typedef void (*btf_trace_mm_collapse_huge_page_swapin)(void *, struct mm_struct *, int, int, int); + +typedef void (*btf_trace_mm_compaction_begin)(void *, struct compact_control *, long unsigned int, long unsigned int, bool); + +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_deferred)(void *, struct zone *, int); + +typedef void (*btf_trace_mm_compaction_end)(void *, struct compact_control *, long unsigned int, long unsigned int, bool, int); + +typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int); + +typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int); + +typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type); + +typedef void (*btf_trace_mm_compaction_migratepages)(void *, unsigned int, unsigned int); + +typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int); + +typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int); + +typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type); + +typedef void (*btf_trace_mm_filemap_add_to_page_cache)(void *, struct folio *); + +typedef void (*btf_trace_mm_filemap_delete_from_page_cache)(void *, struct folio *); + +typedef void (*btf_trace_mm_filemap_fault)(void *, struct address_space *, long unsigned int); + +typedef void (*btf_trace_mm_filemap_get_pages)(void *, struct address_space *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_mm_filemap_map_pages)(void *, struct address_space *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_mm_khugepaged_collapse_file)(void *, struct mm_struct *, struct folio *, long unsigned int, long unsigned int, bool, struct file *, int, int); + +typedef void (*btf_trace_mm_khugepaged_scan_file)(void *, struct mm_struct *, struct folio *, struct file *, int, int, int); + +typedef void (*btf_trace_mm_khugepaged_scan_pmd)(void *, struct mm_struct *, struct page *, bool, int, int, int, int); + +typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *); + +typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *); + +typedef void (*btf_trace_mm_migrate_pages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, enum migrate_mode, int); + +typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int); + +typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int); + +typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int); + +typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int); + +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_pcpu_drain)(void *, struct page *, unsigned int, int); + +typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long int, long int, long int); + +typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long int, long unsigned int, long long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, long unsigned int); + +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_lru_isolate)(void *, int, int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_mm_vmscan_lru_shrink_active)(void *, int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int, int); + +typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, long unsigned int, long unsigned int, struct reclaim_stat *, int, int); + +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, long unsigned int); + +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, long unsigned 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 *, long unsigned int); + +typedef void (*btf_trace_mm_vmscan_reclaim_pages)(void *, int, long unsigned int, long unsigned int, struct reclaim_stat *); + +typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int); + +typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *); + +typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, bool, bool); + +typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, bool); + +typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, bool); + +typedef void (*btf_trace_mmc_request_done)(void *, struct mmc_host *, struct mmc_request *); + +typedef void (*btf_trace_mmc_request_start)(void *, struct mmc_host *, struct mmc_request *); + +typedef void (*btf_trace_mod_memcg_lruvec_state)(void *, struct mem_cgroup *, int, int); + +typedef void (*btf_trace_mod_memcg_state)(void *, struct mem_cgroup *, int, int); + +typedef void (*btf_trace_module_free)(void *, struct module *); + +typedef void (*btf_trace_module_get)(void *, struct module *, long unsigned int); + +typedef void (*btf_trace_module_load)(void *, struct module *); + +typedef void (*btf_trace_module_put)(void *, struct module *, long unsigned int); + +typedef void (*btf_trace_module_request)(void *, char *, bool, long unsigned int); + +typedef void (*btf_trace_mon_llc_occupancy_limbo)(void *, u32, u32, int, u64); + +typedef void (*btf_trace_mptcp_sendmsg_frag)(void *, struct mptcp_ext *); + +typedef void (*btf_trace_mptcp_subflow_get_send)(void *, struct mptcp_subflow_context *); + +typedef void (*btf_trace_napi_gro_frags_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_napi_gro_frags_exit)(void *, int); + +typedef void (*btf_trace_napi_gro_receive_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_napi_gro_receive_exit)(void *, int); + +typedef void (*btf_trace_napi_poll)(void *, struct napi_struct *, int, int); + +typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, 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_event_send_dead)(void *, struct neighbour *, int); + +typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int); + +typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int); + +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_net_dev_queue)(void *, struct sk_buff *); + +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_netif_receive_skb)(void *, struct sk_buff *); + +typedef void (*btf_trace_netif_receive_skb_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_netif_receive_skb_exit)(void *, int); + +typedef void (*btf_trace_netif_receive_skb_list_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_netif_receive_skb_list_exit)(void *, int); + +typedef void (*btf_trace_netif_rx)(void *, struct sk_buff *); + +typedef void (*btf_trace_netif_rx_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_netif_rx_exit)(void *, int); + +typedef void (*btf_trace_netlink_extack)(void *, const char *); + +typedef void (*btf_trace_nmi_handler)(void *, void *, s64, int); + +typedef void (*btf_trace_nmi_noise)(void *, u64, u64); + +typedef void (*btf_trace_non_standard_event)(void *, const guid_t *, const guid_t *, const char *, const u8, const u8 *, const u32); + +typedef void (*btf_trace_notifier_register)(void *, void *); + +typedef void (*btf_trace_notifier_run)(void *, void *); + +typedef void (*btf_trace_notifier_unregister)(void *, void *); + +typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *); + +typedef void (*btf_trace_page_fault_kernel)(void *, long unsigned int, struct pt_regs *, long unsigned int); + +typedef void (*btf_trace_page_fault_user)(void *, long unsigned int, struct pt_regs *, long unsigned int); + +typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32); + +typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, netmem_ref, u32); + +typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, netmem_ref, u32); + +typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int); + +typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); + +typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_hw_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); + +typedef void (*btf_trace_percpu_alloc_percpu)(void *, long unsigned int, bool, bool, size_t, size_t, void *, int, void *, size_t, gfp_t); + +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 *); + +typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void *); + +typedef void (*btf_trace_pm_qos_add_request)(void *, s32); + +typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); + +typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int); + +typedef void (*btf_trace_pm_qos_update_request)(void *, s32); + +typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); + +typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); + +typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int); + +typedef void (*btf_trace_prq_report)(void *, struct intel_iommu *, struct device *, u64, u64, u64, u64, long unsigned int); + +typedef void (*btf_trace_pseudo_lock_l2)(void *, u64, u64); + +typedef void (*btf_trace_pseudo_lock_l3)(void *, u64, u64); + +typedef void (*btf_trace_pseudo_lock_mem_latency)(void *, u32); + +typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32); + +typedef void (*btf_trace_purge_vmap_area_lazy)(void *, long unsigned int, long unsigned int, unsigned int); + +typedef void (*btf_trace_pwm_apply)(void *, struct pwm_device *, const struct pwm_state *, int); + +typedef void (*btf_trace_pwm_get)(void *, struct pwm_device *, const struct pwm_state *, int); + +typedef void (*btf_trace_pwm_read_waveform)(void *, struct pwm_device *, void *, int); + +typedef void (*btf_trace_pwm_round_waveform_fromhw)(void *, struct pwm_device *, const void *, struct pwm_waveform *, int); + +typedef void (*btf_trace_pwm_round_waveform_tohw)(void *, struct pwm_device *, const struct pwm_waveform *, void *, int); + +typedef void (*btf_trace_pwm_write_waveform)(void *, struct pwm_device *, const void *, int); + +typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32); + +typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *); + +typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *); + +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_qi_submit)(void *, struct intel_iommu *, u64, u64, u64, u64); + +typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *); + +typedef void (*btf_trace_rcu_utilization)(void *, const char *); + +typedef void (*btf_trace_rdpmc)(void *, unsigned int, u64, int); + +typedef void (*btf_trace_read_msr)(void *, unsigned int, u64, int); + +typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, long unsigned int, long unsigned int, long unsigned int, int, bool); + +typedef void (*btf_trace_regcache_drop_region)(void *, struct regmap *, unsigned int, unsigned int); + +typedef void (*btf_trace_regcache_sync)(void *, struct regmap *, const char *, const char *); + +typedef void (*btf_trace_regmap_async_complete_done)(void *, struct regmap *); + +typedef void (*btf_trace_regmap_async_complete_start)(void *, struct regmap *); + +typedef void (*btf_trace_regmap_async_io_complete)(void *, struct regmap *); + +typedef void (*btf_trace_regmap_async_write_start)(void *, struct regmap *, unsigned int, int); + +typedef void (*btf_trace_regmap_bulk_read)(void *, struct regmap *, unsigned int, const void *, int); + +typedef void (*btf_trace_regmap_bulk_write)(void *, struct regmap *, unsigned int, const void *, int); + +typedef void (*btf_trace_regmap_cache_bypass)(void *, struct regmap *, bool); + +typedef void (*btf_trace_regmap_cache_only)(void *, struct regmap *, bool); + +typedef void (*btf_trace_regmap_hw_read_done)(void *, struct regmap *, unsigned int, int); + +typedef void (*btf_trace_regmap_hw_read_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_regmap_hw_write_start)(void *, struct regmap *, unsigned int, 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_reg_write)(void *, struct regmap *, unsigned int, unsigned int); + +typedef void (*btf_trace_regulator_bypass_disable)(void *, const char *); + +typedef void (*btf_trace_regulator_bypass_disable_complete)(void *, const char *); + +typedef void (*btf_trace_regulator_bypass_enable)(void *, const char *); + +typedef void (*btf_trace_regulator_bypass_enable_complete)(void *, const char *); + +typedef void (*btf_trace_regulator_disable)(void *, const char *); + +typedef void (*btf_trace_regulator_disable_complete)(void *, const char *); + +typedef void (*btf_trace_regulator_enable)(void *, const char *); + +typedef void (*btf_trace_regulator_enable_complete)(void *, const char *); + +typedef void (*btf_trace_regulator_enable_delay)(void *, const char *); + +typedef void (*btf_trace_regulator_set_voltage)(void *, const char *, int, int); + +typedef void (*btf_trace_regulator_set_voltage_complete)(void *, const char *, unsigned int); + +typedef void (*btf_trace_remove_device_from_group)(void *, int, struct device *); + +typedef void (*btf_trace_remove_migration_pmd)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_remove_migration_pte)(void *, long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_reschedule_entry)(void *, int); + +typedef void (*btf_trace_reschedule_exit)(void *, int); + +typedef void (*btf_trace_rpm_idle)(void *, struct device *, int); + +typedef void (*btf_trace_rpm_resume)(void *, struct device *, int); + +typedef void (*btf_trace_rpm_return_int)(void *, struct device *, long unsigned int, int); + +typedef void (*btf_trace_rpm_status)(void *, struct device *, enum rpm_status); + +typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int); + +typedef void (*btf_trace_rpm_usage)(void *, struct device *, int); + +typedef void (*btf_trace_rseq_ip_fixup)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_rseq_update)(void *, struct task_struct *); + +typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int); + +typedef void (*btf_trace_rtc_alarm_irq_enable)(void *, unsigned int, 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_read_alarm)(void *, time64_t, int); + +typedef void (*btf_trace_rtc_read_offset)(void *, long int, 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_set_offset)(void *, long int, int); + +typedef void (*btf_trace_rtc_set_time)(void *, time64_t, int); + +typedef void (*btf_trace_rtc_timer_dequeue)(void *, struct rtc_timer *); + +typedef void (*btf_trace_rtc_timer_enqueue)(void *, struct rtc_timer *); + +typedef void (*btf_trace_rtc_timer_fired)(void *, struct rtc_timer *); + +typedef void (*btf_trace_sample_threshold)(void *, u64, u64, u64); + +typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); + +typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); + +typedef void (*btf_trace_sched_compute_energy_tp)(void *, struct task_struct *, int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); + +typedef void (*btf_trace_sched_ext_dump)(void *, const char *); + +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_execute_end)(void *, struct kthread_work *, kthread_work_func_t); + +typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); + +typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); + +typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int); + +typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int); + +typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); + +typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *); + +typedef void (*btf_trace_sched_prepare_exec)(void *, struct task_struct *, struct linux_binprm *); + +typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); + +typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); + +typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_process_hang)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); + +typedef void (*btf_trace_sched_skip_vma_numa)(void *, struct mm_struct *, struct vm_area_struct *, enum numa_vmaskip_reason); + +typedef void (*btf_trace_sched_stat_blocked)(void *, struct task_struct *, u64); + +typedef void (*btf_trace_sched_stat_iowait)(void *, struct task_struct *, u64); + +typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64); + +typedef void (*btf_trace_sched_stat_sleep)(void *, struct task_struct *, u64); + +typedef void (*btf_trace_sched_stat_wait)(void *, struct task_struct *, u64); + +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_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int); + +typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); + +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_wait_task)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int); + +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_waking)(void *, struct task_struct *); + +typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *); + +typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int); + +typedef void (*btf_trace_scsi_dispatch_cmd_start)(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 *); + +typedef void (*btf_trace_scsi_prepare_zone_append)(void *, struct scsi_cmnd *, sector_t, unsigned int); + +typedef void (*btf_trace_scsi_zone_wp_update)(void *, struct scsi_cmnd *, sector_t, unsigned int, unsigned int); + +typedef void (*btf_trace_selinux_audited)(void *, struct selinux_audit_data *, char *, char *, const char *); + +typedef void (*btf_trace_set_migration_pmd)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_set_migration_pte)(void *, long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); + +typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); + +typedef void (*btf_trace_sk_data_ready)(void *, const struct sock *); + +typedef void (*btf_trace_skb_copy_datagram_iovec)(void *, const struct sk_buff *, int); + +typedef void (*btf_trace_skip_task_reaping)(void *, int); + +typedef void (*btf_trace_smbus_read)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int); + +typedef void (*btf_trace_smbus_reply)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int, const union i2c_smbus_data *, int); + +typedef void (*btf_trace_smbus_result)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int, int); + +typedef void (*btf_trace_smbus_write)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int, const union i2c_smbus_data *); + +typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long int, int); + +typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *); + +typedef void (*btf_trace_sock_recv_length)(void *, struct sock *, int, int); + +typedef void (*btf_trace_sock_send_length)(void *, struct sock *, int, int); + +typedef void (*btf_trace_softirq_entry)(void *, unsigned int); + +typedef void (*btf_trace_softirq_exit)(void *, unsigned int); + +typedef void (*btf_trace_softirq_noise)(void *, int, u64, u64); + +typedef void (*btf_trace_softirq_raise)(void *, unsigned int); + +typedef void (*btf_trace_spi_controller_busy)(void *, struct spi_controller *); + +typedef void (*btf_trace_spi_controller_idle)(void *, struct spi_controller *); + +typedef void (*btf_trace_spi_message_done)(void *, struct spi_message *); + +typedef void (*btf_trace_spi_message_start)(void *, struct spi_message *); + +typedef void (*btf_trace_spi_message_submit)(void *, struct spi_message *); + +typedef void (*btf_trace_spi_set_cs)(void *, struct spi_device *, bool); + +typedef void (*btf_trace_spi_setup)(void *, struct spi_device *, int); + +typedef void (*btf_trace_spi_transfer_start)(void *, struct spi_message *, struct spi_transfer *); + +typedef void (*btf_trace_spi_transfer_stop)(void *, struct spi_message *, struct spi_transfer *); + +typedef void (*btf_trace_spurious_apic_entry)(void *, int); + +typedef void (*btf_trace_spurious_apic_exit)(void *, int); + +typedef void (*btf_trace_start_task_reaping)(void *, int); + +typedef void (*btf_trace_subflow_check_data_avail)(void *, __u8, struct sk_buff *); + +typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); + +typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t); + +typedef void (*btf_trace_sync_timeline)(void *, struct sync_timeline *); + +typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long int); + +typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long int); + +typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, long unsigned int); + +typedef void (*btf_trace_task_prctl_unknown)(void *, int, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *); + +typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); + +typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); + +typedef void (*btf_trace_tcp_ao_handshake_failure)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_key_not_found)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_mismatch)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_rcv_sne_update)(void *, const struct sock *, __u32); + +typedef void (*btf_trace_tcp_ao_rnext_request)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_snd_sne_update)(void *, const struct sock *, __u32); + +typedef void (*btf_trace_tcp_ao_synack_no_key)(void *, const struct sock *, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_wrong_maclen)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +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_tcp_destroy_sock)(void *, struct sock *); + +typedef void (*btf_trace_tcp_hash_ao_required)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_bad_header)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_md5_mismatch)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_md5_required)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_md5_unexpected)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *); + +typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *); + +typedef void (*btf_trace_tcp_receive_reset)(void *, struct sock *); + +typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *); + +typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *, const enum sk_rst_reason); + +typedef void (*btf_trace_test_pages_isolated)(void *, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_thermal_apic_entry)(void *, int); + +typedef void (*btf_trace_thermal_apic_exit)(void *, int); + +typedef void (*btf_trace_thermal_power_actor)(void *, struct thermal_zone_device *, int, u32, u32); + +typedef void (*btf_trace_thermal_power_allocator)(void *, struct thermal_zone_device *, u32, u32, int, u32, u32, int, s32); + +typedef void (*btf_trace_thermal_power_allocator_pid)(void *, struct thermal_zone_device *, s32, s32, s64, s64, s64, s32); + +typedef void (*btf_trace_thermal_power_devfreq_get_power)(void *, struct thermal_cooling_device *, struct devfreq_dev_status *, long unsigned int, u32); + +typedef void (*btf_trace_thermal_power_devfreq_limit)(void *, struct thermal_cooling_device *, long unsigned int, long unsigned int, u32); + +typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *); + +typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type); + +typedef void (*btf_trace_thread_noise)(void *, struct task_struct *, u64, u64); + +typedef void (*btf_trace_threshold_apic_entry)(void *, int); + +typedef void (*btf_trace_threshold_apic_exit)(void *, int); + +typedef void (*btf_trace_tick_stop)(void *, int, int); + +typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_timer_base_idle)(void *, bool, unsigned int); + +typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *); + +typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, long unsigned int); + +typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *); + +typedef void (*btf_trace_timer_init)(void *, struct timer_list *); + +typedef void (*btf_trace_timer_start)(void *, struct timer_list *, long unsigned int); + +typedef void (*btf_trace_tlb_flush)(void *, int, long unsigned int); + +typedef void (*btf_trace_tls_alert_recv)(void *, const struct sock *, unsigned char, unsigned char); + +typedef void (*btf_trace_tls_alert_send)(void *, const struct sock *, unsigned char, unsigned char); + +typedef void (*btf_trace_tls_contenttype)(void *, const struct sock *, unsigned char); + +typedef void (*btf_trace_tmigr_connect_child_parent)(void *, struct tmigr_group *); + +typedef void (*btf_trace_tmigr_connect_cpu_parent)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_active)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_idle)(void *, struct tmigr_cpu *, u64); + +typedef void (*btf_trace_tmigr_cpu_new_timer)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_new_timer_idle)(void *, struct tmigr_cpu *, u64); + +typedef void (*btf_trace_tmigr_cpu_offline)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_online)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_group_set)(void *, struct tmigr_group *); + +typedef void (*btf_trace_tmigr_group_set_cpu_active)(void *, struct tmigr_group *, union tmigr_state, u32); + +typedef void (*btf_trace_tmigr_group_set_cpu_inactive)(void *, struct tmigr_group *, union tmigr_state, u32); + +typedef void (*btf_trace_tmigr_handle_remote)(void *, struct tmigr_group *); + +typedef void (*btf_trace_tmigr_handle_remote_cpu)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_update_events)(void *, struct tmigr_group *, struct tmigr_group *, union tmigr_state, union tmigr_state, u64); + +typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *); + +typedef void (*btf_trace_udp_fail_queue_rcv_skb)(void *, int, struct sock *, struct sk_buff *); + +typedef void (*btf_trace_unmap)(void *, long unsigned int, size_t, size_t); + +typedef void (*btf_trace_user_enter)(void *, int); + +typedef void (*btf_trace_user_exit)(void *, int); + +typedef void (*btf_trace_vector_activate)(void *, unsigned int, bool, bool, bool); + +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_clear)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_vector_config)(void *, unsigned int, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_vector_deactivate)(void *, unsigned int, bool, bool, bool); + +typedef void (*btf_trace_vector_free_moved)(void *, unsigned int, unsigned int, unsigned int, bool); + +typedef void (*btf_trace_vector_reserve)(void *, unsigned int, int); + +typedef void (*btf_trace_vector_reserve_managed)(void *, unsigned int, int); + +typedef void (*btf_trace_vector_setup)(void *, unsigned int, bool, int); + +typedef void (*btf_trace_vector_teardown)(void *, unsigned int, bool, bool); + +typedef void (*btf_trace_vector_update)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_vm_unmapped_area)(void *, long unsigned int, struct vm_unmapped_area_info *); + +typedef void (*btf_trace_vma_mas_szero)(void *, struct maple_tree *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_vma_store)(void *, struct maple_tree *, struct vm_area_struct *); + +typedef void (*btf_trace_wake_reaper)(void *, int); + +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_watchdog_ping)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_set_timeout)(void *, struct watchdog_device *, unsigned int, int); + +typedef void (*btf_trace_watchdog_start)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_stop)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *); + +typedef void (*btf_trace_wbt_lat)(void *, struct backing_dev_info *, long unsigned int); + +typedef void (*btf_trace_wbt_stat)(void *, struct backing_dev_info *, struct blk_rq_stat *); + +typedef void (*btf_trace_wbt_step)(void *, struct backing_dev_info *, const char *, int, long unsigned int, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_wbt_timer)(void *, struct backing_dev_info *, unsigned int, int, unsigned int); + +typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *); + +typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t); + +typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *); + +typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *); + +typedef void (*btf_trace_write_msr)(void *, unsigned int, u64, int); + +typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *); + +typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *); + +typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *); + +typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *); + +typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_pages_written)(void *, long int); + +typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, long unsigned int, int); + +typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *); + +typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, long unsigned int); + +typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, long unsigned int); + +typedef void (*btf_trace_writeback_start)(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_wake_background)(void *, struct bdi_writeback *); + +typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_x86_fpu_after_restore)(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_before_save)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_copy_dst)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_copy_src)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_dropped)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_init_state)(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_xstate_check_failed)(void *, struct fpu *); + +typedef void (*btf_trace_x86_platform_ipi_entry)(void *, int); + +typedef void (*btf_trace_x86_platform_ipi_exit)(void *, int); + +typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int); + +typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int); + +typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); + +typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int); + +typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32); + +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_xen_cpu_load_idt)(void *, const struct desc_ptr *); + +typedef void (*btf_trace_xen_cpu_set_ldt)(void *, const void *, unsigned int); + +typedef void (*btf_trace_xen_cpu_write_gdt_entry)(void *, struct desc_struct *, int, const void *, int); + +typedef void (*btf_trace_xen_cpu_write_idt_entry)(void *, gate_desc *, int, const gate_desc *); + +typedef void (*btf_trace_xen_cpu_write_ldt_entry)(void *, struct desc_struct *, int, u64); + +typedef void (*btf_trace_xen_mc_batch)(void *, enum xen_lazy_mode); + +typedef void (*btf_trace_xen_mc_callback)(void *, xen_mc_callback_fn_t, void *); + +typedef void (*btf_trace_xen_mc_entry)(void *, struct multicall_entry *, unsigned int); + +typedef void (*btf_trace_xen_mc_entry_alloc)(void *, size_t); + +typedef void (*btf_trace_xen_mc_extend_args)(void *, long unsigned int, size_t, enum xen_mc_extend_args); + +typedef void (*btf_trace_xen_mc_flush)(void *, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_xen_mc_flush_reason)(void *, enum xen_mc_flush_reason); + +typedef void (*btf_trace_xen_mc_issue)(void *, enum xen_lazy_mode); + +typedef void (*btf_trace_xen_mmu_alloc_ptpage)(void *, struct mm_struct *, long unsigned int, unsigned int, bool); + +typedef void (*btf_trace_xen_mmu_flush_tlb_multi)(void *, const struct cpumask *, struct mm_struct *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_xen_mmu_flush_tlb_one_user)(void *, long unsigned int); + +typedef void (*btf_trace_xen_mmu_pgd_pin)(void *, struct mm_struct *, pgd_t *); + +typedef void (*btf_trace_xen_mmu_pgd_unpin)(void *, struct mm_struct *, pgd_t *); + +typedef void (*btf_trace_xen_mmu_ptep_modify_prot_commit)(void *, struct mm_struct *, long unsigned int, pte_t *, pte_t); + +typedef void (*btf_trace_xen_mmu_ptep_modify_prot_start)(void *, struct mm_struct *, long unsigned int, pte_t *, pte_t); + +typedef void (*btf_trace_xen_mmu_release_ptpage)(void *, long unsigned int, unsigned int, bool); + +typedef void (*btf_trace_xen_mmu_set_p4d)(void *, p4d_t *, p4d_t *, p4d_t); + +typedef void (*btf_trace_xen_mmu_set_pmd)(void *, pmd_t *, pmd_t); + +typedef void (*btf_trace_xen_mmu_set_pte)(void *, pte_t *, pte_t); + +typedef void (*btf_trace_xen_mmu_set_pud)(void *, pud_t *, pud_t); + +typedef void (*btf_trace_xen_mmu_write_cr3)(void *, bool, long unsigned int); + +typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); + +typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); + +typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_alloc_stream_info_ctx)(void *, struct xhci_stream_info *, unsigned int); + +typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); + +typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_init)(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_ring_expansion)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_get_port_status)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(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_reset_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq_stream)(void *, struct xhci_stream_info *, unsigned int); + +typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_handle_port_status)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_hub_status_data)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); + +typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); + +typedef void (*btf_trace_xhci_setup_addressable_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_device_slot)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); + +typedef int (*cb_t)(struct param *); + +typedef bool (*check_reserved_t)(u64, u64, enum e820_type); + +typedef void cleanup_cb_t(struct rq_wait *, void *); + +typedef int (*cmp_r_func_t)(const void *, const void *, const void *); + +typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); + +typedef int cont_fn(struct opal_dev *); + +typedef int (*cppc_mode_transition_fn)(int); + +typedef void detailed_cb(const struct detailed_timing *, void *); + +typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); + +typedef int (*device_iter_t)(struct device *, void *); + +typedef int (*device_match_t)(struct device *, const void *); + +typedef int devlink_chunk_fill_t(void *, u8 *, u32, u64, struct netlink_ext_ack *); + +typedef int devlink_nl_dump_one_func_t(struct sk_buff *, struct devlink *, struct netlink_callback *, int); + +typedef int (*dr_match_t)(struct device *, void *, void *); + +typedef int drm_ioctl_compat_t(struct file *, unsigned int, long unsigned int); + +typedef bool (*drm_vblank_get_scanout_position_func)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *); + +typedef int (*dummy_ops_test_ret_fn)(struct bpf_dummy_ops_state *, ...); + +typedef int (*dynevent_check_arg_fn_t)(void *); + +typedef void (*efi_element_handler_t)(const char *, const void *, size_t); + +typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool); + +typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); + +typedef void (*exitcall_t)(void); + +typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); + +typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *); + +typedef int filler_t(struct file *, struct folio *); + +typedef bool (*filter_func_t)(struct uprobe_consumer *, struct mm_struct *); + +typedef void fn_handler_fn(struct vc_data *); + +typedef void free_folio_t(struct folio *, long unsigned int); + +typedef int (*ftrace_mapper_func)(void *); + +typedef access_mask_t get_access_mask_t(const struct landlock_ruleset * const, const u16); + +typedef int (*get_char_func)(void); + +typedef int (*get_gsi_from_sbdf_t)(u32); + +typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); + +typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); + +typedef int (*hyperv_fill_flush_list_func)(struct hv_guest_mapping_flush_list *, void *); + +typedef bool (*i8042_filter_t)(unsigned char, unsigned char, struct serio *, void *); + +typedef void (*idtentry_t)(struct pt_regs *); + +typedef u32 inet6_ehashfn_t(const struct net *, const struct in6_addr *, const u16, const struct in6_addr *, const __be16); + +typedef u32 inet_ehashfn_t(const struct net *, const __be32, const __u16, const __be32, const __be16); + +typedef int (*initxattrs)(struct inode *, const struct xattr *, void *); + +typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); + +typedef int (*ioctl_fn)(struct file *, struct dm_ioctl *, size_t); + +typedef void (*iomap_punch_t)(struct inode *, loff_t, loff_t, struct iomap *); + +typedef size_t (*iov_step_f)(void *, size_t, size_t, void *, void *); + +typedef size_t (*iov_ustep_f)(void *, size_t, size_t, void *, void *); + +typedef int (*iova_bitmap_fn_t)(struct iova_bitmap *, long unsigned int, size_t, void *); + +typedef void ip6_icmp_send_t(struct sk_buff *, u8, u8, __u32, const struct in6_addr *, const struct inet6_skb_parm *); + +typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); + +typedef void k_handler_fn(struct vc_data *, unsigned char, char); + +typedef int (*klp_shadow_ctor_t)(void *, void *, void *); + +typedef void (*klp_shadow_dtor_t)(void *, void *); + +typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); + +typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, void *); + +typedef int mh_filter_t(struct sock *, struct sk_buff *); + +typedef void (*move_fn_t)(struct lruvec *, struct folio *); + +typedef int (*netlink_filter_fn)(struct sock *, struct sk_buff *, void *); + +typedef struct folio *new_folio_t(struct folio *, long unsigned int); + +typedef void (*nmi_shootdown_cb)(int, struct pt_regs *); + +typedef struct ns_common *ns_get_path_helper_t(void *); + +typedef int (*objpool_init_obj_cb)(void *, void *); + +typedef void (*online_page_callback_t)(struct page *, unsigned int); + +typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **); + +typedef int (*parse_unknown_fn)(char *, char *, const char *, void *); + +typedef void (*pci_parity_check_fn_t)(struct pci_dev *); + +typedef int (*pcie_callback_t)(struct pcie_device *); + +typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); + +typedef int pcpu_fc_cpu_to_node_fn_t(int); + +typedef void perf_iterate_f(struct perf_event *, void *); + +typedef int perf_snapshot_branch_stack_t(struct perf_branch_entry *, unsigned int); + +typedef int (*pm_callback_t)(struct device *); + +typedef int (*pm_cpu_match_t)(const struct x86_cpu_id *); + +typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); + +typedef int (*pp_nl_fill_cb)(struct sk_buff *, const struct page_pool *, const struct genl_info *); + +typedef int (*proc_visitor)(struct task_struct *, void *); + +typedef int (*pte_fn_t)(pte_t *, long unsigned int, void *); + +typedef int read_block_fn(void *, u8 *, unsigned int, size_t); + +typedef long unsigned int relocate_kernel_fn(long unsigned int, long unsigned int, long unsigned int, unsigned int, unsigned int); + +typedef void (*rethook_handler_t)(struct rethook_node *, void *, long unsigned int, struct pt_regs *); + +typedef bool (*ring_buffer_cond_fn)(void *); + +typedef int (*rproc_handle_resource_t)(struct rproc *, void *, int, int); + +typedef irqreturn_t (*rtc_irq_handler)(int, void *); + +typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); + +typedef int (*sendmsg_func)(struct sock *, struct msghdr *); + +typedef void (*serial8250_isa_config_fn)(int, struct uart_port *, u32 *); + +typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); + +typedef void (*set_debug_port_t)(int); + +typedef void (*set_params_cb)(struct dwc2_hsotg *); + +typedef void (*setup_fn)(struct perf_event *, struct pt_regs *, void *, struct perf_sample_data *, struct pt_regs *); + +typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); + +typedef void sg_free_fn(struct scatterlist *, unsigned int); + +typedef void sha1_block_fn(struct sha1_state *, const u8 *, int); + +typedef void sha256_block_fn(struct sha256_state *, const u8 *, int); + +typedef void sha512_block_fn(struct sha512_state *, const u8 *, int); + +typedef bool (*smp_cond_func_t)(int, void *); + +typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); + +typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); + +typedef bool (*stack_trace_consume_fn)(void *, long unsigned int); + +typedef void (*swap_r_func_t)(void *, void *, int, const void *); + +typedef void (*synth_probe_func_t)(void *, u64 *, unsigned int *); + +typedef long int (*sys_call_ptr_t)(const struct pt_regs *); + +typedef int (*task_call_f)(struct task_struct *, void *); + +typedef void (*task_work_func_t)(struct callback_head *); + +typedef void text_poke_f(void *, const void *, size_t); + +typedef int (*tg_visitor)(struct task_group *, void *); + +typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); + +typedef bool (*up_f)(struct tmigr_group *, struct tmigr_group *, struct tmigr_walk *); + +typedef void (*user_event_func_t)(struct user_event *, struct iov_iter *, void *, bool *); + +typedef void (*visitor128_t)(void *, long unsigned int, u64, u64, size_t); + +typedef void (*visitor32_t)(void *, long unsigned int, u32, size_t); + +typedef void (*visitor64_t)(void *, long unsigned int, u64, size_t); + +typedef void (*visitorl_t)(void *, long unsigned int, long unsigned int, size_t); + +typedef int wait_bit_action_f(struct wait_bit_key *, int); + +typedef int (*walk_hmem_fn)(struct device *, int, const struct resource *); + +typedef int (*walk_memory_groups_func_t)(struct memory_group *, void *); + +typedef int (*wext_ioctl_func)(struct net_device *, struct iwreq *, unsigned int, struct iw_request_info *, iw_handler); + +typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); + +typedef void (*xen_gfn_fn_t)(long unsigned int, void *); + +typedef void (*xen_grant_fn_t)(long unsigned int, unsigned int, unsigned int, void *); + +typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); + +struct nf_bridge_frag_data; + +struct kunit; + +struct bpf_iter; + +struct cma; + +struct creds; + +struct pctldev; + + +/* BPF kfuncs */ +#ifndef BPF_NO_KFUNC_PROTOTYPES +extern void *bpf_arena_alloc_pages(void *p__map, void *addr__ign, u32 page_cnt, int node_id, u64 flags) __weak __ksym; +extern void bpf_arena_free_pages(void *p__map, void *ptr__ign, u32 page_cnt) __weak __ksym; +extern __bpf_fastcall void *bpf_cast_to_kern_ctx(void *obj) __weak __ksym; +extern struct cgroup *bpf_cgroup_acquire(struct cgroup *cgrp) __weak __ksym; +extern struct cgroup *bpf_cgroup_ancestor(struct cgroup *cgrp, int level) __weak __ksym; +extern struct cgroup *bpf_cgroup_from_id(u64 cgid) __weak __ksym; +extern void bpf_cgroup_release(struct cgroup *cgrp) __weak __ksym; +extern int bpf_copy_from_user_str(void *dst, u32 dst__sz, const void *unsafe_ptr__ign, u64 flags) __weak __ksym; +extern struct bpf_cpumask *bpf_cpumask_acquire(struct bpf_cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_and(struct bpf_cpumask *dst, const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern u32 bpf_cpumask_any_and_distribute(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern u32 bpf_cpumask_any_distribute(const struct cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_clear(struct bpf_cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_copy(struct bpf_cpumask *dst, const struct cpumask *src) __weak __ksym; +extern struct bpf_cpumask *bpf_cpumask_create(void) __weak __ksym; +extern bool bpf_cpumask_empty(const struct cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_equal(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern u32 bpf_cpumask_first(const struct cpumask *cpumask) __weak __ksym; +extern u32 bpf_cpumask_first_and(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern u32 bpf_cpumask_first_zero(const struct cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_full(const struct cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_intersects(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern void bpf_cpumask_or(struct bpf_cpumask *dst, const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern void bpf_cpumask_release(struct bpf_cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_set_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_setall(struct bpf_cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_subset(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern bool bpf_cpumask_test_and_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_test_and_set_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_test_cpu(u32 cpu, const struct cpumask *cpumask) __weak __ksym; +extern u32 bpf_cpumask_weight(const struct cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_xor(struct bpf_cpumask *dst, const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern struct bpf_crypto_ctx *bpf_crypto_ctx_acquire(struct bpf_crypto_ctx *ctx) __weak __ksym; +extern struct bpf_crypto_ctx *bpf_crypto_ctx_create(const struct bpf_crypto_params *params, u32 params__sz, int *err) __weak __ksym; +extern void bpf_crypto_ctx_release(struct bpf_crypto_ctx *ctx) __weak __ksym; +extern int bpf_crypto_decrypt(struct bpf_crypto_ctx *ctx, const struct bpf_dynptr *src, const struct bpf_dynptr *dst, const struct bpf_dynptr *siv__nullable) __weak __ksym; +extern int bpf_crypto_encrypt(struct bpf_crypto_ctx *ctx, const struct bpf_dynptr *src, const struct bpf_dynptr *dst, const struct bpf_dynptr *siv__nullable) __weak __ksym; +extern int bpf_dynptr_adjust(const struct bpf_dynptr *p, u32 start, u32 end) __weak __ksym; +extern int bpf_dynptr_clone(const struct bpf_dynptr *p, struct bpf_dynptr *clone__uninit) __weak __ksym; +extern int bpf_dynptr_from_skb(struct __sk_buff *s, u64 flags, struct bpf_dynptr *ptr__uninit) __weak __ksym; +extern int bpf_dynptr_from_xdp(struct xdp_md *x, u64 flags, struct bpf_dynptr *ptr__uninit) __weak __ksym; +extern bool bpf_dynptr_is_null(const struct bpf_dynptr *p) __weak __ksym; +extern bool bpf_dynptr_is_rdonly(const struct bpf_dynptr *p) __weak __ksym; +extern __u32 bpf_dynptr_size(const struct bpf_dynptr *p) __weak __ksym; +extern void *bpf_dynptr_slice(const struct bpf_dynptr *p, u32 offset, void *buffer__opt, u32 buffer__szk) __weak __ksym; +extern void *bpf_dynptr_slice_rdwr(const struct bpf_dynptr *p, u32 offset, void *buffer__opt, u32 buffer__szk) __weak __ksym; +extern int bpf_fentry_test1(int a) __weak __ksym; +extern int bpf_get_dentry_xattr(struct dentry *dentry, const char *name__str, struct bpf_dynptr *value_p) __weak __ksym; +extern int bpf_get_file_xattr(struct file *file, const char *name__str, struct bpf_dynptr *value_p) __weak __ksym; +extern int bpf_get_fsverity_digest(struct file *file, struct bpf_dynptr *digest_p) __weak __ksym; +extern struct kmem_cache *bpf_get_kmem_cache(u64 addr) __weak __ksym; +extern struct file *bpf_get_task_exe_file(struct task_struct *task) __weak __ksym; +extern void bpf_iter_bits_destroy(struct bpf_iter_bits *it) __weak __ksym; +extern int bpf_iter_bits_new(struct bpf_iter_bits *it, const u64 *unsafe_ptr__ign, u32 nr_words) __weak __ksym; +extern int *bpf_iter_bits_next(struct bpf_iter_bits *it) __weak __ksym; +extern void bpf_iter_css_destroy(struct bpf_iter_css *it) __weak __ksym; +extern int bpf_iter_css_new(struct bpf_iter_css *it, struct cgroup_subsys_state *start, unsigned int flags) __weak __ksym; +extern struct cgroup_subsys_state *bpf_iter_css_next(struct bpf_iter_css *it) __weak __ksym; +extern void bpf_iter_css_task_destroy(struct bpf_iter_css_task *it) __weak __ksym; +extern int bpf_iter_css_task_new(struct bpf_iter_css_task *it, struct cgroup_subsys_state *css, unsigned int flags) __weak __ksym; +extern struct task_struct *bpf_iter_css_task_next(struct bpf_iter_css_task *it) __weak __ksym; +extern void bpf_iter_kmem_cache_destroy(struct bpf_iter_kmem_cache *it) __weak __ksym; +extern int bpf_iter_kmem_cache_new(struct bpf_iter_kmem_cache *it) __weak __ksym; +extern struct kmem_cache *bpf_iter_kmem_cache_next(struct bpf_iter_kmem_cache *it) __weak __ksym; +extern void bpf_iter_num_destroy(struct bpf_iter_num *it) __weak __ksym; +extern int bpf_iter_num_new(struct bpf_iter_num *it, int start, int end) __weak __ksym; +extern int *bpf_iter_num_next(struct bpf_iter_num *it) __weak __ksym; +extern void bpf_iter_scx_dsq_destroy(struct bpf_iter_scx_dsq *it) __weak __ksym; +extern int bpf_iter_scx_dsq_new(struct bpf_iter_scx_dsq *it, u64 dsq_id, u64 flags) __weak __ksym; +extern struct task_struct *bpf_iter_scx_dsq_next(struct bpf_iter_scx_dsq *it) __weak __ksym; +extern void bpf_iter_task_destroy(struct bpf_iter_task *it) __weak __ksym; +extern int bpf_iter_task_new(struct bpf_iter_task *it, struct task_struct *task__nullable, unsigned int flags) __weak __ksym; +extern struct task_struct *bpf_iter_task_next(struct bpf_iter_task *it) __weak __ksym; +extern void bpf_iter_task_vma_destroy(struct bpf_iter_task_vma *it) __weak __ksym; +extern int bpf_iter_task_vma_new(struct bpf_iter_task_vma *it, struct task_struct *task, u64 addr) __weak __ksym; +extern struct vm_area_struct *bpf_iter_task_vma_next(struct bpf_iter_task_vma *it) __weak __ksym; +extern void bpf_key_put(struct bpf_key *bkey) __weak __ksym; +extern void bpf_kfunc_call_memb_release(struct prog_test_member *p) __weak __ksym; +extern void bpf_kfunc_call_test_release(struct prog_test_ref_kfunc *p) __weak __ksym; +extern struct bpf_list_node *bpf_list_pop_back(struct bpf_list_head *head) __weak __ksym; +extern struct bpf_list_node *bpf_list_pop_front(struct bpf_list_head *head) __weak __ksym; +extern int bpf_list_push_back_impl(struct bpf_list_head *head, struct bpf_list_node *node, void *meta__ign, u64 off) __weak __ksym; +extern int bpf_list_push_front_impl(struct bpf_list_head *head, struct bpf_list_node *node, void *meta__ign, u64 off) __weak __ksym; +extern void bpf_local_irq_restore(long unsigned int *flags__irq_flag) __weak __ksym; +extern void bpf_local_irq_save(long unsigned int *flags__irq_flag) __weak __ksym; +extern struct bpf_key *bpf_lookup_system_key(u64 id) __weak __ksym; +extern struct bpf_key *bpf_lookup_user_key(u32 serial, u64 flags) __weak __ksym; +extern s64 bpf_map_sum_elem_count(const struct bpf_map *map) __weak __ksym; +extern int bpf_modify_return_test(int a, int *b) __weak __ksym; +extern int bpf_modify_return_test2(int a, int *b, short int c, int d, void *e, char f, int g) __weak __ksym; +extern int bpf_modify_return_test_tp(int nonce) __weak __ksym; +extern void bpf_obj_drop_impl(void *p__alloc, void *meta__ign) __weak __ksym; +extern void *bpf_obj_new_impl(u64 local_type_id__k, void *meta__ign) __weak __ksym; +extern int bpf_path_d_path(struct path *path, char *buf, size_t buf__sz) __weak __ksym; +extern void bpf_percpu_obj_drop_impl(void *p__alloc, void *meta__ign) __weak __ksym; +extern void *bpf_percpu_obj_new_impl(u64 local_type_id__k, void *meta__ign) __weak __ksym; +extern void bpf_preempt_disable(void) __weak __ksym; +extern void bpf_preempt_enable(void) __weak __ksym; +extern void bpf_put_file(struct file *file) __weak __ksym; +extern int bpf_rbtree_add_impl(struct bpf_rb_root *root, struct bpf_rb_node *node, bool (*less)(struct bpf_rb_node *, const struct bpf_rb_node *), void *meta__ign, u64 off) __weak __ksym; +extern struct bpf_rb_node *bpf_rbtree_first(struct bpf_rb_root *root) __weak __ksym; +extern struct bpf_rb_node *bpf_rbtree_remove(struct bpf_rb_root *root, struct bpf_rb_node *node) __weak __ksym; +extern void bpf_rcu_read_lock(void) __weak __ksym; +extern void bpf_rcu_read_unlock(void) __weak __ksym; +extern __bpf_fastcall void *bpf_rdonly_cast(const void *obj__ign, u32 btf_id__k) __weak __ksym; +extern void *bpf_refcount_acquire_impl(void *p__refcounted_kptr, void *meta__ign) __weak __ksym; +extern int bpf_send_signal_task(struct task_struct *task, int sig, enum pid_type type, u64 value) __weak __ksym; +extern __u64 *bpf_session_cookie(void) __weak __ksym; +extern bool bpf_session_is_return(void) __weak __ksym; +extern int bpf_sk_assign_tcp_reqsk(struct __sk_buff *s, struct sock *sk, struct bpf_tcp_req_attrs *attrs, int attrs__sz) __weak __ksym; +extern int bpf_sock_addr_set_sun_path(struct bpf_sock_addr_kern *sa_kern, const u8 *sun_path, u32 sun_path__sz) __weak __ksym; +extern int bpf_sock_destroy(struct sock_common *sock) __weak __ksym; +extern struct task_struct *bpf_task_acquire(struct task_struct *p) __weak __ksym; +extern struct task_struct *bpf_task_from_pid(s32 pid) __weak __ksym; +extern struct task_struct *bpf_task_from_vpid(s32 vpid) __weak __ksym; +extern struct cgroup *bpf_task_get_cgroup1(struct task_struct *task, int hierarchy_id) __weak __ksym; +extern void bpf_task_release(struct task_struct *p) __weak __ksym; +extern long int bpf_task_under_cgroup(struct task_struct *task, struct cgroup *ancestor) __weak __ksym; +extern void bpf_throw(u64 cookie) __weak __ksym; +extern int bpf_verify_pkcs7_signature(struct bpf_dynptr *data_p, struct bpf_dynptr *sig_p, struct bpf_key *trusted_keyring) __weak __ksym; +extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; +extern int bpf_wq_set_callback_impl(struct bpf_wq *wq, int (*callback_fn)(void *, int *, void *), unsigned int flags, void *aux__ign) __weak __ksym; +extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; +extern struct xfrm_state *bpf_xdp_get_xfrm_state(struct xdp_md *ctx, struct bpf_xfrm_state_opts *opts, u32 opts__sz) __weak __ksym; +extern int bpf_xdp_metadata_rx_hash(const struct xdp_md *ctx, u32 *hash, enum xdp_rss_hash_type *rss_type) __weak __ksym; +extern int bpf_xdp_metadata_rx_timestamp(const struct xdp_md *ctx, u64 *timestamp) __weak __ksym; +extern int bpf_xdp_metadata_rx_vlan_tag(const struct xdp_md *ctx, __be16 *vlan_proto, u16 *vlan_tci) __weak __ksym; +extern void bpf_xdp_xfrm_state_release(struct xfrm_state *x) __weak __ksym; +extern void cgroup_rstat_flush(struct cgroup *cgrp) __weak __ksym; +extern void cgroup_rstat_updated(struct cgroup *cgrp, int cpu) __weak __ksym; +extern void crash_kexec(struct pt_regs *regs) __weak __ksym; +extern void cubictcp_acked(struct sock *sk, const struct ack_sample *sample) __weak __ksym; +extern void cubictcp_cong_avoid(struct sock *sk, u32 ack, u32 acked) __weak __ksym; +extern void cubictcp_cwnd_event(struct sock *sk, enum tcp_ca_event event) __weak __ksym; +extern void cubictcp_init(struct sock *sk) __weak __ksym; +extern u32 cubictcp_recalc_ssthresh(struct sock *sk) __weak __ksym; +extern void cubictcp_state(struct sock *sk, u8 new_state) __weak __ksym; +extern struct hid_bpf_ctx *hid_bpf_allocate_context(unsigned int hid_id) __weak __ksym; +extern __u8 *hid_bpf_get_data(struct hid_bpf_ctx *ctx, unsigned int offset, const size_t rdwr_buf_size) __weak __ksym; +extern int hid_bpf_hw_output_report(struct hid_bpf_ctx *ctx, __u8 *buf, size_t buf__sz) __weak __ksym; +extern int hid_bpf_hw_request(struct hid_bpf_ctx *ctx, __u8 *buf, size_t buf__sz, enum hid_report_type rtype, enum hid_class_request reqtype) __weak __ksym; +extern int hid_bpf_input_report(struct hid_bpf_ctx *ctx, enum hid_report_type type, u8 *buf, const size_t buf__sz) __weak __ksym; +extern void hid_bpf_release_context(struct hid_bpf_ctx *ctx) __weak __ksym; +extern int hid_bpf_try_input_report(struct hid_bpf_ctx *ctx, enum hid_report_type type, u8 *buf, const size_t buf__sz) __weak __ksym; +extern bool scx_bpf_consume(u64 dsq_id) __weak __ksym; +extern struct rq *scx_bpf_cpu_rq(s32 cpu) __weak __ksym; +extern u32 scx_bpf_cpuperf_cap(s32 cpu) __weak __ksym; +extern u32 scx_bpf_cpuperf_cur(s32 cpu) __weak __ksym; +extern void scx_bpf_cpuperf_set(s32 cpu, u32 perf) __weak __ksym; +extern s32 scx_bpf_create_dsq(u64 dsq_id, s32 node) __weak __ksym; +extern void scx_bpf_destroy_dsq(u64 dsq_id) __weak __ksym; +extern void scx_bpf_dispatch(struct task_struct *p, u64 dsq_id, u64 slice, u64 enq_flags) __weak __ksym; +extern void scx_bpf_dispatch_cancel(void) __weak __ksym; +extern bool scx_bpf_dispatch_from_dsq(struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __weak __ksym; +extern void scx_bpf_dispatch_from_dsq_set_slice(struct bpf_iter_scx_dsq *it__iter, u64 slice) __weak __ksym; +extern void scx_bpf_dispatch_from_dsq_set_vtime(struct bpf_iter_scx_dsq *it__iter, u64 vtime) __weak __ksym; +extern u32 scx_bpf_dispatch_nr_slots(void) __weak __ksym; +extern void scx_bpf_dispatch_vtime(struct task_struct *p, u64 dsq_id, u64 slice, u64 vtime, u64 enq_flags) __weak __ksym; +extern bool scx_bpf_dispatch_vtime_from_dsq(struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __weak __ksym; +extern void scx_bpf_dsq_insert(struct task_struct *p, u64 dsq_id, u64 slice, u64 enq_flags) __weak __ksym; +extern void scx_bpf_dsq_insert_vtime(struct task_struct *p, u64 dsq_id, u64 slice, u64 vtime, u64 enq_flags) __weak __ksym; +extern bool scx_bpf_dsq_move(struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __weak __ksym; +extern void scx_bpf_dsq_move_set_slice(struct bpf_iter_scx_dsq *it__iter, u64 slice) __weak __ksym; +extern void scx_bpf_dsq_move_set_vtime(struct bpf_iter_scx_dsq *it__iter, u64 vtime) __weak __ksym; +extern bool scx_bpf_dsq_move_to_local(u64 dsq_id) __weak __ksym; +extern bool scx_bpf_dsq_move_vtime(struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __weak __ksym; +extern s32 scx_bpf_dsq_nr_queued(u64 dsq_id) __weak __ksym; +extern void scx_bpf_dump_bstr(char *fmt, long long unsigned int *data, u32 data__sz) __weak __ksym; +extern void scx_bpf_error_bstr(char *fmt, long long unsigned int *data, u32 data__sz) __weak __ksym; +extern void scx_bpf_exit_bstr(s64 exit_code, char *fmt, long long unsigned int *data, u32 data__sz) __weak __ksym; +extern const struct cpumask *scx_bpf_get_idle_cpumask(void) __weak __ksym; +extern const struct cpumask *scx_bpf_get_idle_smtmask(void) __weak __ksym; +extern const struct cpumask *scx_bpf_get_online_cpumask(void) __weak __ksym; +extern const struct cpumask *scx_bpf_get_possible_cpumask(void) __weak __ksym; +extern void scx_bpf_kick_cpu(s32 cpu, u64 flags) __weak __ksym; +extern u64 scx_bpf_now(void) __weak __ksym; +extern u32 scx_bpf_nr_cpu_ids(void) __weak __ksym; +extern s32 scx_bpf_pick_any_cpu(const struct cpumask *cpus_allowed, u64 flags) __weak __ksym; +extern s32 scx_bpf_pick_idle_cpu(const struct cpumask *cpus_allowed, u64 flags) __weak __ksym; +extern void scx_bpf_put_cpumask(const struct cpumask *cpumask) __weak __ksym; +extern void scx_bpf_put_idle_cpumask(const struct cpumask *idle_mask) __weak __ksym; +extern u32 scx_bpf_reenqueue_local(void) __weak __ksym; +extern s32 scx_bpf_select_cpu_dfl(struct task_struct *p, s32 prev_cpu, u64 wake_flags, bool *is_idle) __weak __ksym; +extern struct cgroup *scx_bpf_task_cgroup(struct task_struct *p) __weak __ksym; +extern s32 scx_bpf_task_cpu(const struct task_struct *p) __weak __ksym; +extern bool scx_bpf_task_running(const struct task_struct *p) __weak __ksym; +extern bool scx_bpf_test_and_clear_cpu_idle(s32 cpu) __weak __ksym; +extern void tcp_cong_avoid_ai(struct tcp_sock *tp, u32 w, u32 acked) __weak __ksym; +extern void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 acked) __weak __ksym; +extern u32 tcp_reno_ssthresh(struct sock *sk) __weak __ksym; +extern u32 tcp_reno_undo_cwnd(struct sock *sk) __weak __ksym; +extern u32 tcp_slow_start(struct tcp_sock *tp, u32 acked) __weak __ksym; +#endif + +#ifndef BPF_NO_PRESERVE_ACCESS_INDEX +#pragma clang attribute pop +#endif + +#endif /* __VMLINUX_H__ */ diff --git a/components/execd/pkg/ebpf/prog/vmlinux_6_14_0_arm.h b/components/execd/pkg/ebpf/prog/vmlinux_6_14_0_arm.h new file mode 100644 index 000000000..7e6d5281c --- /dev/null +++ b/components/execd/pkg/ebpf/prog/vmlinux_6_14_0_arm.h @@ -0,0 +1,194638 @@ +#ifndef __VMLINUX_H__ +#define __VMLINUX_H__ + +#ifndef BPF_NO_PRESERVE_ACCESS_INDEX +#pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record) +#endif + +#ifndef __ksym +#define __ksym __attribute__((section(".ksyms"))) +#endif + +#ifndef __weak +#define __weak __attribute__((weak)) +#endif + +#ifndef __bpf_fastcall +#if __has_attribute(bpf_fastcall) +#define __bpf_fastcall __attribute__((bpf_fastcall)) +#else +#define __bpf_fastcall +#endif +#endif + +enum { + AAFS_LOADDATA_ABI = 0, + AAFS_LOADDATA_REVISION = 1, + AAFS_LOADDATA_HASH = 2, + AAFS_LOADDATA_DATA = 3, + AAFS_LOADDATA_COMPRESSED_SIZE = 4, + AAFS_LOADDATA_DIR = 5, + AAFS_LOADDATA_NDENTS = 6, +}; + +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 { + ACPI_BUTTON_LID_INIT_IGNORE = 0, + ACPI_BUTTON_LID_INIT_OPEN = 1, + ACPI_BUTTON_LID_INIT_METHOD = 2, + ACPI_BUTTON_LID_INIT_DISABLED = 3, +}; + +enum { + ACPI_GENL_ATTR_UNSPEC = 0, + ACPI_GENL_ATTR_EVENT = 1, + __ACPI_GENL_ATTR_MAX = 2, +}; + +enum { + ACPI_GENL_CMD_UNSPEC = 0, + ACPI_GENL_CMD_EVENT = 1, + __ACPI_GENL_CMD_MAX = 2, +}; + +enum { + ACPI_REFCLASS_LOCAL = 0, + ACPI_REFCLASS_ARG = 1, + ACPI_REFCLASS_REFOF = 2, + ACPI_REFCLASS_INDEX = 3, + ACPI_REFCLASS_TABLE = 4, + ACPI_REFCLASS_NAME = 5, + ACPI_REFCLASS_DEBUG = 6, + ACPI_REFCLASS_MAX = 6, +}; + +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, +}; + +enum { + ACTION_FAIL = 0, + ACTION_REPREP = 1, + ACTION_DELAYED_REPREP = 2, + ACTION_RETRY = 3, + ACTION_DELAYED_RETRY = 4, +}; + +enum { + AFFINITY = 0, + AFFINITY_LIST = 1, + EFFECTIVE = 2, + EFFECTIVE_LIST = 3, +}; + +enum { + AHCI_MAX_PORTS = 32, + AHCI_MAX_SG = 168, + AHCI_DMA_BOUNDARY = 4294967295, + AHCI_MAX_CMDS = 32, + AHCI_CMD_SZ = 32, + AHCI_CMD_SLOT_SZ = 1024, + AHCI_RX_FIS_SZ = 256, + AHCI_CMD_TBL_CDB = 64, + AHCI_CMD_TBL_HDR_SZ = 128, + AHCI_CMD_TBL_SZ = 2816, + AHCI_CMD_TBL_AR_SZ = 90112, + AHCI_PORT_PRIV_DMA_SZ = 91392, + AHCI_PORT_PRIV_FBS_DMA_SZ = 95232, + AHCI_IRQ_ON_SG = 2147483648, + AHCI_CMD_ATAPI = 32, + AHCI_CMD_WRITE = 64, + AHCI_CMD_PREFETCH = 128, + AHCI_CMD_RESET = 256, + AHCI_CMD_CLR_BUSY = 1024, + RX_FIS_PIO_SETUP = 32, + RX_FIS_D2H_REG = 64, + RX_FIS_SDB = 88, + RX_FIS_UNK = 96, + HOST_CAP = 0, + HOST_CTL = 4, + HOST_IRQ_STAT = 8, + HOST_PORTS_IMPL = 12, + HOST_VERSION = 16, + HOST_EM_LOC = 28, + HOST_EM_CTL = 32, + HOST_CAP2 = 36, + HOST_RESET = 1, + HOST_IRQ_EN = 2, + HOST_MRSM = 4, + HOST_AHCI_EN = 2147483648, + HOST_CAP_SXS = 32, + HOST_CAP_EMS = 64, + HOST_CAP_CCC = 128, + HOST_CAP_PART = 8192, + HOST_CAP_SSC = 16384, + HOST_CAP_PIO_MULTI = 32768, + HOST_CAP_FBS = 65536, + HOST_CAP_PMP = 131072, + HOST_CAP_ONLY = 262144, + HOST_CAP_CLO = 16777216, + HOST_CAP_LED = 33554432, + HOST_CAP_ALPM = 67108864, + HOST_CAP_SSS = 134217728, + HOST_CAP_MPS = 268435456, + HOST_CAP_SNTF = 536870912, + HOST_CAP_NCQ = 1073741824, + HOST_CAP_64 = 2147483648, + HOST_CAP2_BOH = 1, + HOST_CAP2_NVMHCI = 2, + HOST_CAP2_APST = 4, + HOST_CAP2_SDS = 8, + HOST_CAP2_SADM = 16, + HOST_CAP2_DESO = 32, + PORT_LST_ADDR = 0, + PORT_LST_ADDR_HI = 4, + PORT_FIS_ADDR = 8, + PORT_FIS_ADDR_HI = 12, + PORT_IRQ_STAT = 16, + PORT_IRQ_MASK = 20, + PORT_CMD = 24, + PORT_TFDATA = 32, + PORT_SIG = 36, + PORT_CMD_ISSUE = 56, + PORT_SCR_STAT = 40, + PORT_SCR_CTL = 44, + PORT_SCR_ERR = 48, + PORT_SCR_ACT = 52, + PORT_SCR_NTF = 60, + PORT_FBS = 64, + PORT_DEVSLP = 68, + PORT_IRQ_COLD_PRES = 2147483648, + PORT_IRQ_TF_ERR = 1073741824, + PORT_IRQ_HBUS_ERR = 536870912, + PORT_IRQ_HBUS_DATA_ERR = 268435456, + PORT_IRQ_IF_ERR = 134217728, + PORT_IRQ_IF_NONFATAL = 67108864, + PORT_IRQ_OVERFLOW = 16777216, + PORT_IRQ_BAD_PMP = 8388608, + PORT_IRQ_PHYRDY = 4194304, + PORT_IRQ_DMPS = 128, + PORT_IRQ_CONNECT = 64, + PORT_IRQ_SG_DONE = 32, + PORT_IRQ_UNK_FIS = 16, + PORT_IRQ_SDB_FIS = 8, + PORT_IRQ_DMAS_FIS = 4, + PORT_IRQ_PIOS_FIS = 2, + PORT_IRQ_D2H_REG_FIS = 1, + PORT_IRQ_FREEZE = 683671632, + PORT_IRQ_ERROR = 2025848912, + DEF_PORT_IRQ = 2025848959, + PORT_CMD_ASP = 134217728, + PORT_CMD_ALPE = 67108864, + PORT_CMD_ATAPI = 16777216, + PORT_CMD_FBSCP = 4194304, + PORT_CMD_ESP = 2097152, + PORT_CMD_CPD = 1048576, + PORT_CMD_MPSP = 524288, + PORT_CMD_HPCP = 262144, + PORT_CMD_PMP = 131072, + PORT_CMD_LIST_ON = 32768, + PORT_CMD_FIS_ON = 16384, + PORT_CMD_FIS_RX = 16, + PORT_CMD_CLO = 8, + PORT_CMD_POWER_ON = 4, + PORT_CMD_SPIN_UP = 2, + PORT_CMD_START = 1, + PORT_CMD_ICC_MASK = 4026531840, + PORT_CMD_ICC_ACTIVE = 268435456, + PORT_CMD_ICC_PARTIAL = 536870912, + PORT_CMD_ICC_SLUMBER = 1610612736, + PORT_CMD_CAP = 8126464, + PORT_FBS_DWE_OFFSET = 16, + PORT_FBS_ADO_OFFSET = 12, + PORT_FBS_DEV_OFFSET = 8, + PORT_FBS_DEV_MASK = 3840, + PORT_FBS_SDE = 4, + PORT_FBS_DEC = 2, + PORT_FBS_EN = 1, + PORT_DEVSLP_DM_OFFSET = 25, + PORT_DEVSLP_DM_MASK = 503316480, + PORT_DEVSLP_DITO_OFFSET = 15, + PORT_DEVSLP_MDAT_OFFSET = 10, + PORT_DEVSLP_DETO_OFFSET = 2, + PORT_DEVSLP_DSP = 2, + PORT_DEVSLP_ADSE = 1, + AHCI_HFLAG_NO_NCQ = 1, + AHCI_HFLAG_IGN_IRQ_IF_ERR = 2, + AHCI_HFLAG_IGN_SERR_INTERNAL = 4, + AHCI_HFLAG_32BIT_ONLY = 8, + AHCI_HFLAG_MV_PATA = 16, + AHCI_HFLAG_NO_MSI = 32, + AHCI_HFLAG_NO_PMP = 64, + AHCI_HFLAG_SECT255 = 256, + AHCI_HFLAG_YES_NCQ = 512, + AHCI_HFLAG_NO_SUSPEND = 1024, + AHCI_HFLAG_SRST_TOUT_IS_OFFLINE = 2048, + AHCI_HFLAG_NO_SNTF = 4096, + AHCI_HFLAG_NO_FPDMA_AA = 8192, + AHCI_HFLAG_YES_FBS = 16384, + AHCI_HFLAG_DELAY_ENGINE = 32768, + AHCI_HFLAG_NO_DEVSLP = 131072, + AHCI_HFLAG_NO_FBS = 262144, + AHCI_HFLAG_MULTI_MSI = 1048576, + AHCI_HFLAG_WAKE_BEFORE_STOP = 4194304, + AHCI_HFLAG_YES_ALPM = 8388608, + AHCI_HFLAG_NO_WRITE_TO_RO = 16777216, + AHCI_HFLAG_SUSPEND_PHYS = 33554432, + AHCI_HFLAG_NO_SXS = 67108864, + AHCI_HFLAG_43BIT_ONLY = 134217728, + AHCI_HFLAG_INTEL_PCS_QUIRK = 268435456, + AHCI_HFLAG_ATAPI_DMA_QUIRK = 536870912, + 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 { + AM62A7_EFUSE_M_MPU_OPP = 13, + AM62A7_EFUSE_N_MPU_OPP = 14, + AM62A7_EFUSE_O_MPU_OPP = 15, + AM62A7_EFUSE_P_MPU_OPP = 16, + AM62A7_EFUSE_Q_MPU_OPP = 17, + AM62A7_EFUSE_R_MPU_OPP = 18, + AM62A7_EFUSE_S_MPU_OPP = 19, + AM62A7_EFUSE_V_MPU_OPP = 20, + AM62A7_EFUSE_U_MPU_OPP = 21, + AM62A7_EFUSE_T_MPU_OPP = 22, +}; + +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, +}; + +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, +}; + +enum { + AML_FIELD_UPDATE_PRESERVE = 0, + AML_FIELD_UPDATE_WRITE_AS_ONES = 32, + AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64, +}; + +enum { + AS3711_REGULATOR = 0, + AS3711_BACKLIGHT = 1, +}; + +enum { + ASCII_NULL = 0, + ASCII_BELL = 7, + ASCII_BACKSPACE = 8, + ASCII_IGNORE_FIRST = 8, + ASCII_HTAB = 9, + ASCII_LINEFEED = 10, + ASCII_VTAB = 11, + ASCII_FORMFEED = 12, + ASCII_CAR_RET = 13, + ASCII_IGNORE_LAST = 13, + ASCII_SHIFTOUT = 14, + ASCII_SHIFTIN = 15, + ASCII_CANCEL = 24, + ASCII_SUBSTITUTE = 26, + ASCII_ESCAPE = 27, + ASCII_CSI_IGNORE_FIRST = 32, + ASCII_CSI_IGNORE_LAST = 63, + ASCII_DEL = 127, + ASCII_EXT_CSI = 155, +}; + +enum { + ASSUME_PERFECT = 255, + ASSUME_VALID_DTB = 1, + ASSUME_VALID_INPUT = 2, + ASSUME_LATEST = 4, + ASSUME_NO_ROLLBACK = 8, + ASSUME_LIBFDT_ORDER = 16, + ASSUME_LIBFDT_FLAWLESS = 32, +}; + +enum { + ATA_EH_SPDN_NCQ_OFF = 1, + ATA_EH_SPDN_SPEED_DOWN = 2, + ATA_EH_SPDN_FALLBACK_TO_PIO = 4, + ATA_EH_SPDN_KEEP_ERRORS = 8, + ATA_EFLAG_IS_IO = 1, + ATA_EFLAG_DUBIOUS_XFER = 2, + ATA_EFLAG_OLD_ER = -2147483648, + ATA_ECAT_NONE = 0, + ATA_ECAT_ATA_BUS = 1, + ATA_ECAT_TOUT_HSM = 2, + ATA_ECAT_UNK_DEV = 3, + ATA_ECAT_DUBIOUS_NONE = 4, + ATA_ECAT_DUBIOUS_ATA_BUS = 5, + ATA_ECAT_DUBIOUS_TOUT_HSM = 6, + ATA_ECAT_DUBIOUS_UNK_DEV = 7, + ATA_ECAT_NR = 8, + ATA_EH_CMD_DFL_TIMEOUT = 5000, + ATA_EH_RESET_COOL_DOWN = 5000, + ATA_EH_PRERESET_TIMEOUT = 10000, + ATA_EH_FASTDRAIN_INTERVAL = 3000, + ATA_EH_UA_TRIES = 5, + ATA_EH_PROBE_TRIAL_INTERVAL = 60000, + ATA_EH_PROBE_TRIALS = 2, +}; + +enum { + ATA_MAX_DEVICES = 2, + ATA_MAX_PRD = 256, + ATA_SECT_SIZE = 512, + ATA_MAX_SECTORS_128 = 128, + ATA_MAX_SECTORS = 256, + ATA_MAX_SECTORS_1024 = 1024, + ATA_MAX_SECTORS_LBA48 = 65535, + ATA_MAX_SECTORS_TAPE = 65535, + ATA_MAX_TRIM_RNUM = 64, + ATA_ID_WORDS = 256, + ATA_ID_CONFIG = 0, + ATA_ID_CYLS = 1, + ATA_ID_HEADS = 3, + ATA_ID_SECTORS = 6, + ATA_ID_SERNO = 10, + ATA_ID_BUF_SIZE = 21, + ATA_ID_FW_REV = 23, + ATA_ID_PROD = 27, + ATA_ID_MAX_MULTSECT = 47, + ATA_ID_DWORD_IO = 48, + ATA_ID_TRUSTED = 48, + ATA_ID_CAPABILITY = 49, + ATA_ID_OLD_PIO_MODES = 51, + ATA_ID_OLD_DMA_MODES = 52, + ATA_ID_FIELD_VALID = 53, + ATA_ID_CUR_CYLS = 54, + ATA_ID_CUR_HEADS = 55, + ATA_ID_CUR_SECTORS = 56, + ATA_ID_MULTSECT = 59, + ATA_ID_LBA_CAPACITY = 60, + ATA_ID_SWDMA_MODES = 62, + ATA_ID_MWDMA_MODES = 63, + ATA_ID_PIO_MODES = 64, + ATA_ID_EIDE_DMA_MIN = 65, + ATA_ID_EIDE_DMA_TIME = 66, + ATA_ID_EIDE_PIO = 67, + ATA_ID_EIDE_PIO_IORDY = 68, + ATA_ID_ADDITIONAL_SUPP = 69, + ATA_ID_QUEUE_DEPTH = 75, + ATA_ID_SATA_CAPABILITY = 76, + ATA_ID_SATA_CAPABILITY_2 = 77, + ATA_ID_FEATURE_SUPP = 78, + ATA_ID_MAJOR_VER = 80, + ATA_ID_COMMAND_SET_1 = 82, + ATA_ID_COMMAND_SET_2 = 83, + ATA_ID_CFSSE = 84, + ATA_ID_CFS_ENABLE_1 = 85, + ATA_ID_CFS_ENABLE_2 = 86, + ATA_ID_CSF_DEFAULT = 87, + ATA_ID_UDMA_MODES = 88, + ATA_ID_HW_CONFIG = 93, + ATA_ID_SPG = 98, + ATA_ID_LBA_CAPACITY_2 = 100, + ATA_ID_SECTOR_SIZE = 106, + ATA_ID_WWN = 108, + ATA_ID_LOGICAL_SECTOR_SIZE = 117, + ATA_ID_COMMAND_SET_3 = 119, + ATA_ID_COMMAND_SET_4 = 120, + ATA_ID_LAST_LUN = 126, + ATA_ID_DLF = 128, + ATA_ID_CSFO = 129, + ATA_ID_CFA_POWER = 160, + ATA_ID_CFA_KEY_MGMT = 162, + ATA_ID_CFA_MODES = 163, + ATA_ID_DATA_SET_MGMT = 169, + ATA_ID_SCT_CMD_XPORT = 206, + ATA_ID_ROT_SPEED = 217, + ATA_ID_PIO4 = 2, + ATA_ID_SERNO_LEN = 20, + ATA_ID_FW_REV_LEN = 8, + ATA_ID_PROD_LEN = 40, + ATA_ID_WWN_LEN = 8, + ATA_PCI_CTL_OFS = 2, + ATA_PIO0 = 1, + ATA_PIO1 = 3, + ATA_PIO2 = 7, + ATA_PIO3 = 15, + ATA_PIO4 = 31, + ATA_PIO5 = 63, + ATA_PIO6 = 127, + ATA_PIO4_ONLY = 16, + ATA_SWDMA0 = 1, + ATA_SWDMA1 = 3, + ATA_SWDMA2 = 7, + ATA_SWDMA2_ONLY = 4, + ATA_MWDMA0 = 1, + ATA_MWDMA1 = 3, + ATA_MWDMA2 = 7, + ATA_MWDMA3 = 15, + ATA_MWDMA4 = 31, + ATA_MWDMA12_ONLY = 6, + ATA_MWDMA2_ONLY = 4, + ATA_UDMA0 = 1, + ATA_UDMA1 = 3, + ATA_UDMA2 = 7, + ATA_UDMA3 = 15, + ATA_UDMA4 = 31, + ATA_UDMA5 = 63, + ATA_UDMA6 = 127, + ATA_UDMA7 = 255, + ATA_UDMA24_ONLY = 20, + ATA_UDMA_MASK_40C = 7, + ATA_PRD_SZ = 8, + ATA_PRD_TBL_SZ = 2048, + ATA_PRD_EOT = -2147483648, + ATA_DMA_TABLE_OFS = 4, + ATA_DMA_STATUS = 2, + ATA_DMA_CMD = 0, + ATA_DMA_WR = 8, + ATA_DMA_START = 1, + ATA_DMA_INTR = 4, + ATA_DMA_ERR = 2, + ATA_DMA_ACTIVE = 1, + ATA_HOB = 128, + ATA_NIEN = 2, + ATA_LBA = 64, + ATA_DEV1 = 16, + ATA_DEVICE_OBS = 160, + ATA_DEVCTL_OBS = 8, + ATA_BUSY = 128, + ATA_DRDY = 64, + ATA_DF = 32, + ATA_DSC = 16, + ATA_DRQ = 8, + ATA_CORR = 4, + ATA_SENSE = 2, + ATA_ERR = 1, + ATA_SRST = 4, + ATA_ICRC = 128, + ATA_BBK = 128, + ATA_UNC = 64, + ATA_MC = 32, + ATA_IDNF = 16, + ATA_MCR = 8, + ATA_ABORTED = 4, + ATA_TRK0NF = 2, + ATA_AMNF = 1, + ATAPI_LFS = 240, + ATAPI_EOM = 2, + ATAPI_ILI = 1, + ATAPI_IO = 2, + ATAPI_COD = 1, + ATA_REG_DATA = 0, + ATA_REG_ERR = 1, + ATA_REG_NSECT = 2, + ATA_REG_LBAL = 3, + ATA_REG_LBAM = 4, + ATA_REG_LBAH = 5, + ATA_REG_DEVICE = 6, + ATA_REG_STATUS = 7, + ATA_REG_FEATURE = 1, + ATA_REG_CMD = 7, + ATA_REG_BYTEL = 4, + ATA_REG_BYTEH = 5, + ATA_REG_DEVSEL = 6, + ATA_REG_IRQ = 2, + ATA_CMD_DEV_RESET = 8, + ATA_CMD_CHK_POWER = 229, + ATA_CMD_STANDBY = 226, + ATA_CMD_IDLE = 227, + ATA_CMD_EDD = 144, + ATA_CMD_DOWNLOAD_MICRO = 146, + ATA_CMD_DOWNLOAD_MICRO_DMA = 147, + ATA_CMD_NOP = 0, + ATA_CMD_FLUSH = 231, + ATA_CMD_FLUSH_EXT = 234, + ATA_CMD_ID_ATA = 236, + ATA_CMD_ID_ATAPI = 161, + ATA_CMD_SERVICE = 162, + ATA_CMD_READ = 200, + ATA_CMD_READ_EXT = 37, + ATA_CMD_READ_QUEUED = 38, + ATA_CMD_READ_STREAM_EXT = 43, + ATA_CMD_READ_STREAM_DMA_EXT = 42, + ATA_CMD_WRITE = 202, + ATA_CMD_WRITE_EXT = 53, + ATA_CMD_WRITE_QUEUED = 54, + ATA_CMD_WRITE_STREAM_EXT = 59, + ATA_CMD_WRITE_STREAM_DMA_EXT = 58, + ATA_CMD_WRITE_FUA_EXT = 61, + ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, + ATA_CMD_FPDMA_READ = 96, + ATA_CMD_FPDMA_WRITE = 97, + ATA_CMD_NCQ_NON_DATA = 99, + ATA_CMD_FPDMA_SEND = 100, + ATA_CMD_FPDMA_RECV = 101, + ATA_CMD_PIO_READ = 32, + ATA_CMD_PIO_READ_EXT = 36, + ATA_CMD_PIO_WRITE = 48, + ATA_CMD_PIO_WRITE_EXT = 52, + ATA_CMD_READ_MULTI = 196, + ATA_CMD_READ_MULTI_EXT = 41, + ATA_CMD_WRITE_MULTI = 197, + ATA_CMD_WRITE_MULTI_EXT = 57, + ATA_CMD_WRITE_MULTI_FUA_EXT = 206, + ATA_CMD_SET_FEATURES = 239, + ATA_CMD_SET_MULTI = 198, + ATA_CMD_PACKET = 160, + ATA_CMD_VERIFY = 64, + ATA_CMD_VERIFY_EXT = 66, + ATA_CMD_WRITE_UNCORR_EXT = 69, + ATA_CMD_STANDBYNOW1 = 224, + ATA_CMD_IDLEIMMEDIATE = 225, + ATA_CMD_SLEEP = 230, + ATA_CMD_INIT_DEV_PARAMS = 145, + ATA_CMD_READ_NATIVE_MAX = 248, + ATA_CMD_READ_NATIVE_MAX_EXT = 39, + ATA_CMD_SET_MAX = 249, + ATA_CMD_SET_MAX_EXT = 55, + ATA_CMD_READ_LOG_EXT = 47, + ATA_CMD_WRITE_LOG_EXT = 63, + ATA_CMD_READ_LOG_DMA_EXT = 71, + ATA_CMD_WRITE_LOG_DMA_EXT = 87, + ATA_CMD_TRUSTED_NONDATA = 91, + ATA_CMD_TRUSTED_RCV = 92, + ATA_CMD_TRUSTED_RCV_DMA = 93, + ATA_CMD_TRUSTED_SND = 94, + ATA_CMD_TRUSTED_SND_DMA = 95, + ATA_CMD_PMP_READ = 228, + ATA_CMD_PMP_READ_DMA = 233, + ATA_CMD_PMP_WRITE = 232, + ATA_CMD_PMP_WRITE_DMA = 235, + ATA_CMD_CONF_OVERLAY = 177, + ATA_CMD_SEC_SET_PASS = 241, + ATA_CMD_SEC_UNLOCK = 242, + ATA_CMD_SEC_ERASE_PREP = 243, + ATA_CMD_SEC_ERASE_UNIT = 244, + ATA_CMD_SEC_FREEZE_LOCK = 245, + ATA_CMD_SEC_DISABLE_PASS = 246, + ATA_CMD_CONFIG_STREAM = 81, + ATA_CMD_SMART = 176, + ATA_CMD_MEDIA_LOCK = 222, + ATA_CMD_MEDIA_UNLOCK = 223, + ATA_CMD_DSM = 6, + ATA_CMD_CHK_MED_CRD_TYP = 209, + ATA_CMD_CFA_REQ_EXT_ERR = 3, + ATA_CMD_CFA_WRITE_NE = 56, + ATA_CMD_CFA_TRANS_SECT = 135, + ATA_CMD_CFA_ERASE = 192, + ATA_CMD_CFA_WRITE_MULT_NE = 205, + ATA_CMD_REQ_SENSE_DATA = 11, + ATA_CMD_SANITIZE_DEVICE = 180, + ATA_CMD_ZAC_MGMT_IN = 74, + ATA_CMD_ZAC_MGMT_OUT = 159, + ATA_CMD_RESTORE = 16, + ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, + ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, + ATA_SUBCMD_FPDMA_SEND_DSM = 0, + ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, + ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, + ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, + ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, + ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, + ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, + ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, + ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, + ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, + ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, + ATA_LOG_DIRECTORY = 0, + ATA_LOG_SATA_NCQ = 16, + ATA_LOG_NCQ_NON_DATA = 18, + ATA_LOG_NCQ_SEND_RECV = 19, + ATA_LOG_CDL = 24, + ATA_LOG_CDL_SIZE = 512, + ATA_LOG_IDENTIFY_DEVICE = 48, + ATA_LOG_SENSE_NCQ = 15, + ATA_LOG_SENSE_NCQ_SIZE = 1024, + ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, + ATA_LOG_SUPPORTED_CAPABILITIES = 3, + ATA_LOG_CURRENT_SETTINGS = 4, + ATA_LOG_SECURITY = 6, + ATA_LOG_SATA_SETTINGS = 8, + ATA_LOG_ZONED_INFORMATION = 9, + ATA_LOG_DEVSLP_OFFSET = 48, + ATA_LOG_DEVSLP_SIZE = 8, + ATA_LOG_DEVSLP_MDAT = 0, + ATA_LOG_DEVSLP_MDAT_MASK = 31, + ATA_LOG_DEVSLP_DETO = 1, + ATA_LOG_DEVSLP_VALID = 7, + ATA_LOG_DEVSLP_VALID_MASK = 128, + ATA_LOG_NCQ_PRIO_OFFSET = 9, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, + ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, + ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, + ATA_LOG_NCQ_SEND_RECV_SIZE = 20, + ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, + ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, + ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, + ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, + ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, + ATA_LOG_NCQ_NON_DATA_SIZE = 64, + ATA_CMD_READ_LONG = 34, + ATA_CMD_READ_LONG_ONCE = 35, + ATA_CMD_WRITE_LONG = 50, + ATA_CMD_WRITE_LONG_ONCE = 51, + SETFEATURES_XFER = 3, + XFER_UDMA_7 = 71, + XFER_UDMA_6 = 70, + XFER_UDMA_5 = 69, + XFER_UDMA_4 = 68, + XFER_UDMA_3 = 67, + XFER_UDMA_2 = 66, + XFER_UDMA_1 = 65, + XFER_UDMA_0 = 64, + XFER_MW_DMA_4 = 36, + XFER_MW_DMA_3 = 35, + XFER_MW_DMA_2 = 34, + XFER_MW_DMA_1 = 33, + XFER_MW_DMA_0 = 32, + XFER_SW_DMA_2 = 18, + XFER_SW_DMA_1 = 17, + XFER_SW_DMA_0 = 16, + XFER_PIO_6 = 14, + XFER_PIO_5 = 13, + XFER_PIO_4 = 12, + XFER_PIO_3 = 11, + XFER_PIO_2 = 10, + XFER_PIO_1 = 9, + XFER_PIO_0 = 8, + XFER_PIO_SLOW = 0, + SETFEATURES_WC_ON = 2, + SETFEATURES_WC_OFF = 130, + SETFEATURES_RA_ON = 170, + SETFEATURES_RA_OFF = 85, + SETFEATURES_AAM_ON = 66, + SETFEATURES_AAM_OFF = 194, + SETFEATURES_SPINUP = 7, + SETFEATURES_SPINUP_TIMEOUT = 30000, + SETFEATURES_SATA_ENABLE = 16, + SETFEATURES_SATA_DISABLE = 144, + SETFEATURES_CDL = 13, + SATA_FPDMA_OFFSET = 1, + SATA_FPDMA_AA = 2, + SATA_DIPM = 3, + SATA_FPDMA_IN_ORDER = 4, + SATA_AN = 5, + SATA_SSP = 6, + SATA_DEVSLP = 9, + SETFEATURE_SENSE_DATA = 195, + SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, + ATA_SET_MAX_ADDR = 0, + ATA_SET_MAX_PASSWD = 1, + ATA_SET_MAX_LOCK = 2, + ATA_SET_MAX_UNLOCK = 3, + ATA_SET_MAX_FREEZE_LOCK = 4, + ATA_SET_MAX_PASSWD_DMA = 5, + ATA_SET_MAX_UNLOCK_DMA = 6, + ATA_DCO_RESTORE = 192, + ATA_DCO_FREEZE_LOCK = 193, + ATA_DCO_IDENTIFY = 194, + ATA_DCO_SET = 195, + ATA_SMART_ENABLE = 216, + ATA_SMART_READ_VALUES = 208, + ATA_SMART_READ_THRESHOLDS = 209, + ATA_DSM_TRIM = 1, + ATA_SMART_LBAM_PASS = 79, + ATA_SMART_LBAH_PASS = 194, + ATAPI_PKT_DMA = 1, + ATAPI_DMADIR = 4, + ATAPI_CDB_LEN = 16, + SATA_PMP_MAX_PORTS = 15, + SATA_PMP_CTRL_PORT = 15, + SATA_PMP_GSCR_DWORDS = 128, + SATA_PMP_GSCR_PROD_ID = 0, + SATA_PMP_GSCR_REV = 1, + SATA_PMP_GSCR_PORT_INFO = 2, + SATA_PMP_GSCR_ERROR = 32, + SATA_PMP_GSCR_ERROR_EN = 33, + SATA_PMP_GSCR_FEAT = 64, + SATA_PMP_GSCR_FEAT_EN = 96, + SATA_PMP_PSCR_STATUS = 0, + SATA_PMP_PSCR_ERROR = 1, + SATA_PMP_PSCR_CONTROL = 2, + SATA_PMP_FEAT_BIST = 1, + SATA_PMP_FEAT_PMREQ = 2, + SATA_PMP_FEAT_DYNSSC = 4, + SATA_PMP_FEAT_NOTIFY = 8, + ATA_CBL_NONE = 0, + ATA_CBL_PATA40 = 1, + ATA_CBL_PATA80 = 2, + ATA_CBL_PATA40_SHORT = 3, + ATA_CBL_PATA_UNK = 4, + ATA_CBL_PATA_IGN = 5, + ATA_CBL_SATA = 6, + SCR_STATUS = 0, + SCR_ERROR = 1, + SCR_CONTROL = 2, + SCR_ACTIVE = 3, + SCR_NOTIFICATION = 4, + SERR_DATA_RECOVERED = 1, + SERR_COMM_RECOVERED = 2, + SERR_DATA = 256, + SERR_PERSISTENT = 512, + SERR_PROTOCOL = 1024, + SERR_INTERNAL = 2048, + SERR_PHYRDY_CHG = 65536, + SERR_PHY_INT_ERR = 131072, + SERR_COMM_WAKE = 262144, + SERR_10B_8B_ERR = 524288, + SERR_DISPARITY = 1048576, + SERR_CRC = 2097152, + SERR_HANDSHAKE = 4194304, + SERR_LINK_SEQ_ERR = 8388608, + SERR_TRANS_ST_ERROR = 16777216, + SERR_UNRECOG_FIS = 33554432, + SERR_DEV_XCHG = 67108864, +}; + +enum { + ATA_READID_POSTRESET = 1, + ATA_DNXFER_PIO = 0, + ATA_DNXFER_DMA = 1, + ATA_DNXFER_40C = 2, + ATA_DNXFER_FORCE_PIO = 3, + ATA_DNXFER_FORCE_PIO0 = 4, + ATA_DNXFER_QUIET = -2147483648, +}; + +enum { + AT_PKT_END = -1, + BEYOND_PKT_END = -2, +}; + +enum { + AUTOP_INVALID = 0, + AUTOP_HDD = 1, + AUTOP_SSD_QD1 = 2, + AUTOP_SSD_DFL = 3, + AUTOP_SSD_FAST = 4, +}; + +enum { + AX25_VALUES_IPDEFMODE = 0, + AX25_VALUES_AXDEFMODE = 1, + AX25_VALUES_BACKOFF = 2, + AX25_VALUES_CONMODE = 3, + AX25_VALUES_WINDOW = 4, + AX25_VALUES_EWINDOW = 5, + AX25_VALUES_T1 = 6, + AX25_VALUES_T2 = 7, + AX25_VALUES_T3 = 8, + AX25_VALUES_IDLE = 9, + AX25_VALUES_N2 = 10, + AX25_VALUES_PACLEN = 11, + AX25_VALUES_PROTOCOL = 12, + AX25_VALUES_DS_TIMEOUT = 13, + AX25_MAX_VALUES = 14, +}; + +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 { + BAD_STACK = -1, + NOT_STACK = 0, + GOOD_FRAME = 1, + GOOD_STACK = 2, +}; + +enum { + BIAS = 2147483648, +}; + +enum { + BIOSET_NEED_BVECS = 1, + BIOSET_NEED_RESCUER = 2, + BIOSET_PERCPU_CACHE = 4, +}; + +enum { + BIO_PAGE_PINNED = 0, + BIO_CLONED = 1, + BIO_BOUNCED = 2, + BIO_QUIET = 3, + BIO_CHAIN = 4, + BIO_REFFED = 5, + BIO_BPS_THROTTLED = 6, + BIO_TRACE_COMPLETION = 7, + BIO_CGROUP_ACCT = 8, + BIO_QOS_THROTTLED = 9, + BIO_QOS_MERGED = 10, + BIO_REMAPPED = 11, + BIO_ZONE_WRITE_PLUGGING = 12, + BIO_EMULATES_ZONE_APPEND = 13, + BIO_FLAG_LAST = 14, +}; + +enum { + BLK_MQ_F_TAG_QUEUE_SHARED = 2, + BLK_MQ_F_STACKING = 4, + BLK_MQ_F_TAG_HCTX_SHARED = 8, + BLK_MQ_F_BLOCKING = 16, + BLK_MQ_F_TAG_RR = 32, + BLK_MQ_F_NO_SCHED_BY_DEFAULT = 64, + BLK_MQ_F_MAX = 128, +}; + +enum { + BLK_MQ_NO_TAG = 4294967295, + BLK_MQ_TAG_MIN = 1, + BLK_MQ_TAG_MAX = 4294967294, +}; + +enum { + BLK_MQ_REQ_NOWAIT = 1, + BLK_MQ_REQ_RESERVED = 2, + BLK_MQ_REQ_PM = 4, +}; + +enum { + BLK_MQ_S_STOPPED = 0, + BLK_MQ_S_TAG_ACTIVE = 1, + BLK_MQ_S_SCHED_RESTART = 2, + BLK_MQ_S_INACTIVE = 3, + BLK_MQ_S_MAX = 4, +}; + +enum { + BLK_MQ_UNIQUE_TAG_BITS = 16, + BLK_MQ_UNIQUE_TAG_MASK = 65535, +}; + +enum { + BLOCK_BITMAP = 0, + INODE_BITMAP = 1, + INODE_TABLE = 2, + GROUP_TABLE_COUNT = 3, +}; + +enum { + BMC_NPCM7XX = 0, + BMC_NPCM8XX = 1, +}; + +enum { + BPF_ADJ_ROOM_ENCAP_L2_MASK = 255, + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, +}; + +enum { + BPF_ANY = 0, + BPF_NOEXIST = 1, + BPF_EXIST = 2, + BPF_F_LOCK = 4, +}; + +enum { + BPF_CSUM_LEVEL_QUERY = 0, + BPF_CSUM_LEVEL_INC = 1, + BPF_CSUM_LEVEL_DEC = 2, + BPF_CSUM_LEVEL_RESET = 3, +}; + +enum { + BPF_FIB_LKUP_RET_SUCCESS = 0, + BPF_FIB_LKUP_RET_BLACKHOLE = 1, + BPF_FIB_LKUP_RET_UNREACHABLE = 2, + BPF_FIB_LKUP_RET_PROHIBIT = 3, + BPF_FIB_LKUP_RET_NOT_FWDED = 4, + BPF_FIB_LKUP_RET_FWD_DISABLED = 5, + BPF_FIB_LKUP_RET_UNSUPP_LWT = 6, + BPF_FIB_LKUP_RET_NO_NEIGH = 7, + BPF_FIB_LKUP_RET_FRAG_NEEDED = 8, + BPF_FIB_LKUP_RET_NO_SRC_ADDR = 9, +}; + +enum { + BPF_FIB_LOOKUP_DIRECT = 1, + BPF_FIB_LOOKUP_OUTPUT = 2, + BPF_FIB_LOOKUP_SKIP_NEIGH = 4, + BPF_FIB_LOOKUP_TBID = 8, + BPF_FIB_LOOKUP_SRC = 16, + BPF_FIB_LOOKUP_MARK = 32, +}; + +enum { + BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 1, + BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 2, + BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 4, +}; + +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_F_BPRM_SECUREEXEC = 1, +}; + +enum { + BPF_F_CURRENT_NETNS = -1, +}; + +enum { + BPF_F_GET_BRANCH_RECORDS_SIZE = 1, +}; + +enum { + BPF_F_HDR_FIELD_MASK = 15, +}; + +enum { + BPF_F_INDEX_MASK = 4294967295ULL, + BPF_F_CURRENT_CPU = 4294967295ULL, + BPF_F_CTXLEN_MASK = 4503595332403200ULL, +}; + +enum { + BPF_F_INGRESS = 1, + BPF_F_BROADCAST = 8, + BPF_F_EXCLUDE_INGRESS = 16, +}; + +enum { + BPF_F_KPROBE_MULTI_RETURN = 1, +}; + +enum { + BPF_F_NEIGH = 65536, + BPF_F_PEER = 131072, + BPF_F_NEXTHOP = 262144, +}; + +enum { + BPF_F_NO_PREALLOC = 1, + BPF_F_NO_COMMON_LRU = 2, + BPF_F_NUMA_NODE = 4, + BPF_F_RDONLY = 8, + BPF_F_WRONLY = 16, + BPF_F_STACK_BUILD_ID = 32, + BPF_F_ZERO_SEED = 64, + BPF_F_RDONLY_PROG = 128, + BPF_F_WRONLY_PROG = 256, + BPF_F_CLONE = 512, + BPF_F_MMAPABLE = 1024, + BPF_F_PRESERVE_ELEMS = 2048, + BPF_F_INNER_MAP = 4096, + BPF_F_LINK = 8192, + BPF_F_PATH_FD = 16384, + BPF_F_VTYPE_BTF_OBJ_FD = 32768, + BPF_F_TOKEN_FD = 65536, + BPF_F_SEGV_ON_FAULT = 131072, + BPF_F_NO_USER_CONV = 262144, +}; + +enum { + BPF_F_PSEUDO_HDR = 16, + BPF_F_MARK_MANGLED_0 = 32, + BPF_F_MARK_ENFORCE = 64, + BPF_F_IPV6 = 128, +}; + +enum { + BPF_F_RECOMPUTE_CSUM = 1, + BPF_F_INVALIDATE_HASH = 2, +}; + +enum { + BPF_F_SKIP_FIELD_MASK = 255, + BPF_F_USER_STACK = 256, + BPF_F_FAST_STACK_CMP = 512, + BPF_F_REUSE_STACKID = 1024, + BPF_F_USER_BUILD_ID = 2048, +}; + +enum { + BPF_F_SYSCTL_BASE_NAME = 1, +}; + +enum { + BPF_F_TIMER_ABS = 1, + BPF_F_TIMER_CPU_PIN = 2, +}; + +enum { + BPF_F_TUNINFO_FLAGS = 16, +}; + +enum { + BPF_F_TUNINFO_IPV6 = 1, +}; + +enum { + BPF_F_UPROBE_MULTI_RETURN = 1, +}; + +enum { + BPF_F_ZERO_CSUM_TX = 2, + BPF_F_DONT_FRAGMENT = 4, + BPF_F_SEQ_NUMBER = 8, + BPF_F_NO_TUNNEL_KEY = 16, +}; + +enum { + BPF_LOAD_HDR_OPT_TCP_SYN = 1, +}; + +enum { + BPF_LOCAL_STORAGE_GET_F_CREATE = 1, + BPF_SK_STORAGE_GET_F_CREATE = 1, +}; + +enum { + BPF_MAX_LOOPS = 8388608, +}; + +enum { + BPF_MAX_TRAMP_LINKS = 38, +}; + +enum { + BPF_RB_AVAIL_DATA = 0, + BPF_RB_RING_SIZE = 1, + BPF_RB_CONS_POS = 2, + BPF_RB_PROD_POS = 3, +}; + +enum { + BPF_RB_NO_WAKEUP = 1, + BPF_RB_FORCE_WAKEUP = 2, +}; + +enum { + BPF_REG_0 = 0, + BPF_REG_1 = 1, + BPF_REG_2 = 2, + BPF_REG_3 = 3, + BPF_REG_4 = 4, + BPF_REG_5 = 5, + BPF_REG_6 = 6, + BPF_REG_7 = 7, + BPF_REG_8 = 8, + BPF_REG_9 = 9, + BPF_REG_10 = 10, + __MAX_BPF_REG = 11, +}; + +enum { + BPF_RINGBUF_BUSY_BIT = 2147483648, + BPF_RINGBUF_DISCARD_BIT = 1073741824, + BPF_RINGBUF_HDR_SZ = 8, +}; + +enum { + BPF_SKB_TSTAMP_UNSPEC = 0, + BPF_SKB_TSTAMP_DELIVERY_MONO = 1, + BPF_SKB_CLOCK_REALTIME = 0, + BPF_SKB_CLOCK_MONOTONIC = 1, + BPF_SKB_CLOCK_TAI = 2, +}; + +enum { + BPF_SK_LOOKUP_F_REPLACE = 1, + BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, +}; + +enum { + BPF_SOCK_OPS_RTO_CB_FLAG = 1, + BPF_SOCK_OPS_RETRANS_CB_FLAG = 2, + BPF_SOCK_OPS_STATE_CB_FLAG = 4, + BPF_SOCK_OPS_RTT_CB_FLAG = 8, + BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 16, + BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 32, + BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 64, + BPF_SOCK_OPS_ALL_CB_FLAGS = 127, +}; + +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_TASK_ITER_ALL_PROCS = 0, + BPF_TASK_ITER_ALL_THREADS = 1, + BPF_TASK_ITER_PROC_THREADS = 2, +}; + +enum { + BPF_TCP_ESTABLISHED = 1, + BPF_TCP_SYN_SENT = 2, + BPF_TCP_SYN_RECV = 3, + BPF_TCP_FIN_WAIT1 = 4, + BPF_TCP_FIN_WAIT2 = 5, + BPF_TCP_TIME_WAIT = 6, + BPF_TCP_CLOSE = 7, + BPF_TCP_CLOSE_WAIT = 8, + BPF_TCP_LAST_ACK = 9, + BPF_TCP_LISTEN = 10, + BPF_TCP_CLOSING = 11, + BPF_TCP_NEW_SYN_RECV = 12, + BPF_TCP_BOUND_INACTIVE = 13, + BPF_TCP_MAX_STATES = 14, +}; + +enum { + BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, + BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, +}; + +enum { + BPF_XFRM_STATE_OPTS_SZ = 36, +}; + +enum { + BR_MCAST_DIR_RX = 0, + BR_MCAST_DIR_TX = 1, + BR_MCAST_DIR_SIZE = 2, +}; + +enum { + BTF_FIELDS_MAX = 11, +}; + +enum { + BTF_FIELD_IGNORE = 0, + BTF_FIELD_FOUND = 1, +}; + +enum { + BTF_F_COMPACT = 1, + BTF_F_NONAME = 2, + BTF_F_PTR_RAW = 4, + BTF_F_ZERO = 8, +}; + +enum { + BTF_KFUNC_SET_MAX_CNT = 256, + BTF_DTOR_KFUNC_MAX_CNT = 256, + BTF_KFUNC_FILTER_MAX_CNT = 16, +}; + +enum { + BTF_KIND_UNKN = 0, + BTF_KIND_INT = 1, + BTF_KIND_PTR = 2, + BTF_KIND_ARRAY = 3, + BTF_KIND_STRUCT = 4, + BTF_KIND_UNION = 5, + BTF_KIND_ENUM = 6, + BTF_KIND_FWD = 7, + BTF_KIND_TYPEDEF = 8, + BTF_KIND_VOLATILE = 9, + BTF_KIND_CONST = 10, + BTF_KIND_RESTRICT = 11, + BTF_KIND_FUNC = 12, + BTF_KIND_FUNC_PROTO = 13, + BTF_KIND_VAR = 14, + BTF_KIND_DATASEC = 15, + BTF_KIND_FLOAT = 16, + BTF_KIND_DECL_TAG = 17, + BTF_KIND_TYPE_TAG = 18, + BTF_KIND_ENUM64 = 19, + NR_BTF_KINDS = 20, + BTF_KIND_MAX = 19, +}; + +enum { + BTF_MODULE_F_LIVE = 1, +}; + +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, +}; + +enum { + BTF_TRACING_TYPE_TASK = 0, + BTF_TRACING_TYPE_FILE = 1, + BTF_TRACING_TYPE_VMA = 2, + MAX_BTF_TRACING_TYPE = 3, +}; + +enum { + BTF_VAR_STATIC = 0, + BTF_VAR_GLOBAL_ALLOCATED = 1, + BTF_VAR_GLOBAL_EXTERN = 2, +}; + +enum { + Blktrace_setup = 1, + Blktrace_running = 2, + Blktrace_stopped = 3, +}; + +enum { + C0D0U0 = 0, + C0D0U1 = 1, + C0D1U0 = 2, + C0D1U1 = 3, + C1D0U0 = 4, + C1D0U1 = 5, + C1D1U0 = 6, + C1D1U1 = 7, + DRAM_CLKTREE_NUM = 8, +}; + +enum { + CACHE_RH_CNT = 14, +}; + +enum { + CACHE_WH_CNT = 15, +}; + +enum { + CAP_HWCAP = 1, + CAP_COMPAT_HWCAP = 2, + CAP_COMPAT_HWCAP2 = 3, +}; + +enum { + CCI_IF_SLAVE = 0, + CCI_IF_MASTER = 1, + CCI_IF_GLOBAL = 2, + CCI_IF_MAX = 3, +}; + +enum { + CDX_DEV_MSI_CONF = 0, + CDX_DEV_BUS_MASTER_CONF = 1, + CDX_DEV_RESET_CONF = 2, + CDX_DEV_MSI_ENABLE = 3, +}; + +enum { + CFTYPE_ONLY_ON_ROOT = 1, + CFTYPE_NOT_ON_ROOT = 2, + CFTYPE_NS_DELEGATABLE = 4, + CFTYPE_NO_PREFIX = 8, + CFTYPE_WORLD_WRITABLE = 16, + CFTYPE_DEBUG = 32, + __CFTYPE_ONLY_ON_DFL = 65536, + __CFTYPE_NOT_ON_DFL = 131072, + __CFTYPE_ADDED = 262144, +}; + +enum { + 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, +}; + +enum { + CGRP_NOTIFY_ON_RELEASE = 0, + CGRP_CPUSET_CLONE_CHILDREN = 1, + CGRP_FREEZE = 2, + CGRP_FROZEN = 3, +}; + +enum { + CGRP_ROOT_NOPREFIX = 2, + CGRP_ROOT_XATTR = 4, + CGRP_ROOT_NS_DELEGATE = 8, + CGRP_ROOT_FAVOR_DYNMODS = 16, + CGRP_ROOT_CPUSET_V2_MODE = 65536, + CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072, + CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144, + CGRP_ROOT_MEMORY_HUGETLB_ACCOUNTING = 524288, + CGRP_ROOT_PIDS_LOCAL_EVENTS = 1048576, +}; + +enum { + CHIP_INVALID = 0, + CHIP_PM8606 = 1, + CHIP_PM8607 = 2, + CHIP_MAX = 3, +}; + +enum { + CLKCTL = 2, + SYNCCTL = 3, + HSYNCPOS = 4, + PWRMNGMT = 5, + DACOP = 6, + PALETCTL = 7, + SYSCLKCTL = 8, + PIXFMT = 10, + BPP8 = 11, + BPP16 = 12, + BPP24 = 13, + BPP32 = 14, + PIXCTL1 = 16, + PIXCTL2 = 17, + SYSCLKN = 21, + SYSCLKM = 22, + SYSCLKP = 23, + SYSCLKC = 24, + PIXM0 = 32, + PIXN0 = 33, + PIXP0 = 34, + PIXC0 = 35, + CURSCTL = 48, + CURSXLO = 49, + CURSXHI = 50, + CURSYLO = 51, + CURSYHI = 52, + CURSHOTX = 53, + CURSHOTY = 54, + CURSACCTL = 55, + CURSACATTR = 56, + CURS1R = 64, + CURS1G = 65, + CURS1B = 66, + CURS2R = 67, + CURS2G = 68, + CURS2B = 69, + CURS3R = 70, + CURS3G = 71, + CURS3B = 72, + BORDR = 96, + BORDG = 97, + BORDB = 98, + MISCTL1 = 112, + MISCTL2 = 113, + MISCTL3 = 114, + KEYCTL = 120, +}; + +enum { + CLK_ALPHA_PLL_TYPE_DEFAULT = 0, + CLK_ALPHA_PLL_TYPE_HUAYRA = 1, + CLK_ALPHA_PLL_TYPE_HUAYRA_APSS = 2, + CLK_ALPHA_PLL_TYPE_HUAYRA_2290 = 3, + CLK_ALPHA_PLL_TYPE_BRAMMO = 4, + CLK_ALPHA_PLL_TYPE_FABIA = 5, + CLK_ALPHA_PLL_TYPE_TRION = 6, + CLK_ALPHA_PLL_TYPE_LUCID = 6, + CLK_ALPHA_PLL_TYPE_AGERA = 7, + CLK_ALPHA_PLL_TYPE_ZONDA = 8, + CLK_ALPHA_PLL_TYPE_REGERA = 8, + CLK_ALPHA_PLL_TYPE_ZONDA_OLE = 9, + CLK_ALPHA_PLL_TYPE_LUCID_EVO = 10, + CLK_ALPHA_PLL_TYPE_LUCID_OLE = 11, + CLK_ALPHA_PLL_TYPE_PONGO_ELU = 12, + CLK_ALPHA_PLL_TYPE_TAYCAN_ELU = 13, + CLK_ALPHA_PLL_TYPE_RIVIAN_EVO = 14, + CLK_ALPHA_PLL_TYPE_DEFAULT_EVO = 15, + CLK_ALPHA_PLL_TYPE_BRAMMO_EVO = 16, + CLK_ALPHA_PLL_TYPE_STROMER = 17, + CLK_ALPHA_PLL_TYPE_STROMER_PLUS = 18, + CLK_ALPHA_PLL_TYPE_NSS_HUAYRA = 19, + CLK_ALPHA_PLL_TYPE_MAX = 20, +}; + +enum { + CMD_CLK_GET_RATE = 1, + CMD_CLK_SET_RATE = 2, + CMD_CLK_ROUND_RATE = 3, + CMD_CLK_GET_PARENT = 4, + CMD_CLK_SET_PARENT = 5, + CMD_CLK_IS_ENABLED = 6, + CMD_CLK_ENABLE = 7, + CMD_CLK_DISABLE = 8, + CMD_CLK_PROPERTIES = 9, + CMD_CLK_POSSIBLE_PARENTS = 10, + CMD_CLK_NUM_POSSIBLE_PARENTS = 11, + CMD_CLK_GET_POSSIBLE_PARENT = 12, + CMD_CLK_RESET_REFCOUNTS = 13, + CMD_CLK_GET_ALL_INFO = 14, + CMD_CLK_GET_MAX_CLK_ID = 15, + CMD_CLK_GET_FMAX_AT_VMIN = 16, + CMD_CLK_MAX = 17, +}; + +enum { + CMIS_MODULE_LOW_PWR = 1, + CMIS_MODULE_READY = 3, +}; + +enum { + COST_CTRL = 0, + COST_MODEL = 1, + NR_COST_CTRL_PARAMS = 2, +}; + +enum { + CP110_CLK_TYPE_CORE = 0, + CP110_CLK_TYPE_GATABLE = 1, +}; + +enum { + CPER_SEV_RECOVERABLE = 0, + CPER_SEV_FATAL = 1, + CPER_SEV_CORRECTED = 2, + CPER_SEV_INFORMATIONAL = 3, +}; + +enum { + CRI_RES_UTIL = 5, +}; + +enum { + CRNG_EMPTY = 0, + CRNG_EARLY = 1, + CRNG_READY = 2, +}; + +enum { + CRNG_RESEED_START_INTERVAL = 1000, + CRNG_RESEED_INTERVAL = 60000, +}; + +enum { + CRYPTOA_UNSPEC = 0, + CRYPTOA_ALG = 1, + CRYPTOA_TYPE = 2, + __CRYPTOA_MAX = 3, +}; + +enum { + CRYPTO_KPP_SECRET_TYPE_UNKNOWN = 0, + CRYPTO_KPP_SECRET_TYPE_DH = 1, + CRYPTO_KPP_SECRET_TYPE_ECDH = 2, +}; + +enum { + CRYPTO_MSG_ALG_REQUEST = 0, + CRYPTO_MSG_ALG_REGISTER = 1, + CRYPTO_MSG_ALG_LOADED = 2, +}; + +enum { + CSD_FLAG_LOCK = 1, + IRQ_WORK_PENDING = 1, + IRQ_WORK_BUSY = 2, + IRQ_WORK_LAZY = 4, + IRQ_WORK_HARD_IRQ = 8, + IRQ_WORK_CLAIMED = 3, + CSD_TYPE_ASYNC = 0, + CSD_TYPE_SYNC = 16, + CSD_TYPE_IRQ_WORK = 32, + CSD_TYPE_TTWU = 48, + CSD_FLAG_TYPE_MASK = 240, +}; + +enum { + CSI_DEC_hl_CURSOR_KEYS = 1, + CSI_DEC_hl_132_COLUMNS = 3, + CSI_DEC_hl_REVERSE_VIDEO = 5, + CSI_DEC_hl_ORIGIN_MODE = 6, + CSI_DEC_hl_AUTOWRAP = 7, + CSI_DEC_hl_AUTOREPEAT = 8, + CSI_DEC_hl_MOUSE_X10 = 9, + CSI_DEC_hl_SHOW_CURSOR = 25, + CSI_DEC_hl_MOUSE_VT200 = 1000, +}; + +enum { + CSI_K_CURSOR_TO_LINEEND = 0, + CSI_K_LINESTART_TO_CURSOR = 1, + CSI_K_LINE = 2, +}; + +enum { + CSI_hl_DISPLAY_CTRL = 3, + CSI_hl_INSERT = 4, + CSI_hl_AUTO_NL = 20, +}; + +enum { + CSI_m_DEFAULT = 0, + CSI_m_BOLD = 1, + CSI_m_HALF_BRIGHT = 2, + CSI_m_ITALIC = 3, + CSI_m_UNDERLINE = 4, + CSI_m_BLINK = 5, + CSI_m_REVERSE = 7, + CSI_m_PRI_FONT = 10, + CSI_m_ALT_FONT1 = 11, + CSI_m_ALT_FONT2 = 12, + CSI_m_DOUBLE_UNDERLINE = 21, + CSI_m_NORMAL_INTENSITY = 22, + CSI_m_NO_ITALIC = 23, + CSI_m_NO_UNDERLINE = 24, + CSI_m_NO_BLINK = 25, + CSI_m_NO_REVERSE = 27, + CSI_m_FG_COLOR_BEG = 30, + CSI_m_FG_COLOR_END = 37, + CSI_m_FG_COLOR = 38, + CSI_m_DEFAULT_FG_COLOR = 39, + CSI_m_BG_COLOR_BEG = 40, + CSI_m_BG_COLOR_END = 47, + CSI_m_BG_COLOR = 48, + CSI_m_DEFAULT_BG_COLOR = 49, + CSI_m_BRIGHT_FG_COLOR_BEG = 90, + CSI_m_BRIGHT_FG_COLOR_END = 97, + CSI_m_BRIGHT_FG_COLOR_OFF = 60, + CSI_m_BRIGHT_BG_COLOR_BEG = 100, + CSI_m_BRIGHT_BG_COLOR_END = 107, + CSI_m_BRIGHT_BG_COLOR_OFF = 60, +}; + +enum { + CSS_NO_REF = 1, + CSS_ONLINE = 2, + CSS_RELEASED = 4, + CSS_VISIBLE = 8, + CSS_DYING = 16, +}; + +enum { + CSS_TASK_ITER_PROCS = 1, + CSS_TASK_ITER_THREADED = 2, + CSS_TASK_ITER_SKIPPED = 65536, +}; + +enum { + CTL_RES_CNT = 1, +}; + +enum { + CTL_RES_TM = 2, +}; + +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_OP_UNSPEC = 0, + CTRL_ATTR_OP_ID = 1, + CTRL_ATTR_OP_FLAGS = 2, + __CTRL_ATTR_OP_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, +}; + +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_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 { + CXL_MEM_COMMAND_ID_INVALID = 0, + CXL_MEM_COMMAND_ID_IDENTIFY = 1, + CXL_MEM_COMMAND_ID_RAW = 2, + CXL_MEM_COMMAND_ID_GET_SUPPORTED_LOGS = 3, + CXL_MEM_COMMAND_ID_GET_FW_INFO = 4, + CXL_MEM_COMMAND_ID_GET_PARTITION_INFO = 5, + CXL_MEM_COMMAND_ID_GET_LSA = 6, + CXL_MEM_COMMAND_ID_GET_HEALTH_INFO = 7, + CXL_MEM_COMMAND_ID_GET_LOG = 8, + CXL_MEM_COMMAND_ID_SET_PARTITION_INFO = 9, + CXL_MEM_COMMAND_ID_SET_LSA = 10, + CXL_MEM_COMMAND_ID_GET_ALERT_CONFIG = 11, + CXL_MEM_COMMAND_ID_SET_ALERT_CONFIG = 12, + CXL_MEM_COMMAND_ID_GET_SHUTDOWN_STATE = 13, + CXL_MEM_COMMAND_ID_SET_SHUTDOWN_STATE = 14, + CXL_MEM_DEPRECATED_ID_GET_POISON = 15, + CXL_MEM_DEPRECATED_ID_INJECT_POISON = 16, + CXL_MEM_DEPRECATED_ID_CLEAR_POISON = 17, + CXL_MEM_COMMAND_ID_GET_SCAN_MEDIA_CAPS = 18, + CXL_MEM_DEPRECATED_ID_SCAN_MEDIA = 19, + CXL_MEM_DEPRECATED_ID_GET_SCAN_MEDIA = 20, + CXL_MEM_COMMAND_ID_GET_TIMESTAMP = 21, + CXL_MEM_COMMAND_ID_GET_LOG_CAPS = 22, + CXL_MEM_COMMAND_ID_CLEAR_LOG = 23, + CXL_MEM_COMMAND_ID_GET_SUP_LOG_SUBLIST = 24, + CXL_MEM_COMMAND_ID_MAX = 25, +}; + +enum { + DA9063_DEV_ID_REG = 0, + DA9063_VAR_ID_REG = 1, + DA9063_CHIP_ID_REGS = 2, +}; + +enum { + DAD_PROCESS = 0, + DAD_BEGIN = 1, + DAD_ABORT = 2, +}; + +enum { + DD_DIR_COUNT = 2, +}; + +enum { + DD_PRIO_COUNT = 3, +}; + +enum { + DEVCONF_FORWARDING = 0, + DEVCONF_HOPLIMIT = 1, + DEVCONF_MTU6 = 2, + DEVCONF_ACCEPT_RA = 3, + DEVCONF_ACCEPT_REDIRECTS = 4, + DEVCONF_AUTOCONF = 5, + DEVCONF_DAD_TRANSMITS = 6, + DEVCONF_RTR_SOLICITS = 7, + DEVCONF_RTR_SOLICIT_INTERVAL = 8, + DEVCONF_RTR_SOLICIT_DELAY = 9, + DEVCONF_USE_TEMPADDR = 10, + DEVCONF_TEMP_VALID_LFT = 11, + DEVCONF_TEMP_PREFERED_LFT = 12, + DEVCONF_REGEN_MAX_RETRY = 13, + DEVCONF_MAX_DESYNC_FACTOR = 14, + DEVCONF_MAX_ADDRESSES = 15, + DEVCONF_FORCE_MLD_VERSION = 16, + DEVCONF_ACCEPT_RA_DEFRTR = 17, + DEVCONF_ACCEPT_RA_PINFO = 18, + DEVCONF_ACCEPT_RA_RTR_PREF = 19, + DEVCONF_RTR_PROBE_INTERVAL = 20, + DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21, + DEVCONF_PROXY_NDP = 22, + DEVCONF_OPTIMISTIC_DAD = 23, + DEVCONF_ACCEPT_SOURCE_ROUTE = 24, + DEVCONF_MC_FORWARDING = 25, + DEVCONF_DISABLE_IPV6 = 26, + DEVCONF_ACCEPT_DAD = 27, + DEVCONF_FORCE_TLLAO = 28, + DEVCONF_NDISC_NOTIFY = 29, + DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30, + DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31, + DEVCONF_SUPPRESS_FRAG_NDISC = 32, + DEVCONF_ACCEPT_RA_FROM_LOCAL = 33, + DEVCONF_USE_OPTIMISTIC = 34, + DEVCONF_ACCEPT_RA_MTU = 35, + DEVCONF_STABLE_SECRET = 36, + DEVCONF_USE_OIF_ADDRS_ONLY = 37, + DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38, + DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39, + DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40, + DEVCONF_DROP_UNSOLICITED_NA = 41, + DEVCONF_KEEP_ADDR_ON_DOWN = 42, + DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43, + DEVCONF_SEG6_ENABLED = 44, + DEVCONF_SEG6_REQUIRE_HMAC = 45, + DEVCONF_ENHANCED_DAD = 46, + DEVCONF_ADDR_GEN_MODE = 47, + DEVCONF_DISABLE_POLICY = 48, + DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49, + DEVCONF_NDISC_TCLASS = 50, + DEVCONF_RPL_SEG_ENABLED = 51, + DEVCONF_RA_DEFRTR_METRIC = 52, + DEVCONF_IOAM6_ENABLED = 53, + DEVCONF_IOAM6_ID = 54, + DEVCONF_IOAM6_ID_WIDE = 55, + DEVCONF_NDISC_EVICT_NOCARRIER = 56, + DEVCONF_ACCEPT_UNTRACKED_NA = 57, + DEVCONF_ACCEPT_RA_MIN_LFT = 58, + DEVCONF_MAX = 59, +}; + +enum { + 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_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0, + DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 1, +}; + +enum { + DIO_LOCKING = 1, + DIO_SKIP_HOLES = 2, +}; + +enum { + DIO_SHOULD_DIRTY = 1, + DIO_IS_SYNC = 2, +}; + +enum { + DIR_OFFSET_FIRST = 2, + DIR_OFFSET_EOD = 2147483647, +}; + +enum { + DIR_OFFSET_MIN = 3, + DIR_OFFSET_MAX = 2147483646, +}; + +enum { + DISCOVERED = 16, + EXPLORED = 32, + FALLTHROUGH = 1, + BRANCH = 2, +}; + +enum { + DISK_EVENT_FLAG_POLL = 1, + DISK_EVENT_FLAG_UEVENT = 2, + DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, +}; + +enum { + DISK_EVENT_MEDIA_CHANGE = 1, + DISK_EVENT_EJECT_REQUEST = 2, +}; + +enum { + DM_IO_ACCOUNTED = 0, + DM_IO_WAS_SPLIT = 1, + DM_IO_BLK_STAT = 2, +}; + +enum { + DM_TIO_INSIDE_DM_IO = 0, + DM_TIO_IS_DUPLICATE_BIO = 1, +}; + +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, +}; + +enum { + DONE_EXPLORING = 0, + KEEP_EXPLORING = 1, +}; + +enum { + DOWN = 0, + UP = 1, +}; + +enum { + DPLL_NLGRP_MONITOR = 0, +}; + +enum { + DQF_INFO_DIRTY_B = 17, +}; + +enum { + DQF_ROOT_SQUASH_B = 0, + DQF_SYS_FILE_B = 16, + DQF_PRIVATE = 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 { + DRV_FIXED = 0, + DRV_GRP0 = 1, + DRV_GRP1 = 2, + DRV_GRP2 = 3, + DRV_GRP3 = 4, + DRV_GRP4 = 5, + DRV_GRP_MAX = 6, +}; + +enum { + DUMP_PREFIX_NONE = 0, + DUMP_PREFIX_ADDRESS = 1, + DUMP_PREFIX_OFFSET = 2, +}; + +enum { + EC_FLAGS_QUERY_ENABLED = 0, + EC_FLAGS_EVENT_HANDLER_INSTALLED = 1, + EC_FLAGS_EC_HANDLER_INSTALLED = 2, + EC_FLAGS_EC_REG_CALLED = 3, + EC_FLAGS_QUERY_METHODS_INSTALLED = 4, + EC_FLAGS_STARTED = 5, + EC_FLAGS_STOPPED = 6, + EC_FLAGS_EVENTS_MASKED = 7, +}; + +enum { + EC_MSG_TX_HEADER_BYTES = 3, + EC_MSG_TX_TRAILER_BYTES = 1, + EC_MSG_TX_PROTO_BYTES = 4, + EC_MSG_RX_PROTO_BYTES = 3, + EC_PROTO2_MSG_BYTES = 256, + EC_MAX_MSG_BYTES = 65536, +}; + +enum { + EI_ETYPE_NULL = 0, + EI_ETYPE_ERRNO = 1, + EI_ETYPE_ERRNO_NULL = 2, + EI_ETYPE_TRUE = 3, +}; + +enum { + EPecma = 0, + EPdec = 1, + EPeq = 2, + EPgt = 3, + EPlt = 4, +}; + +enum { + ERASE = 0, + WERASE = 1, + KILL = 2, +}; + +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 { + 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_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_C33_PSE_PW_LIMIT_UNSPEC = 0, + ETHTOOL_A_C33_PSE_PW_LIMIT_MIN = 1, + ETHTOOL_A_C33_PSE_PW_LIMIT_MAX = 2, + __ETHTOOL_A_C33_PSE_PW_LIMIT_CNT = 3, + __ETHTOOL_A_C33_PSE_PW_LIMIT_MAX = 2, +}; + +enum { + ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0, + ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 1, + ETHTOOL_A_CABLE_AMPLITUDE_mV = 2, + __ETHTOOL_A_CABLE_AMPLITUDE_CNT = 3, + ETHTOOL_A_CABLE_AMPLITUDE_MAX = 2, +}; + +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_SRC = 3, + __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT = 4, + ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 3, +}; + +enum { + ETHTOOL_A_CABLE_INF_SRC_UNSPEC = 0, + ETHTOOL_A_CABLE_INF_SRC_TDR = 1, + ETHTOOL_A_CABLE_INF_SRC_ALCD = 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_PAIR_A = 0, + ETHTOOL_A_CABLE_PAIR_B = 1, + ETHTOOL_A_CABLE_PAIR_C = 2, + ETHTOOL_A_CABLE_PAIR_D = 3, +}; + +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_RESULT_CODE_UNSPEC = 0, + ETHTOOL_A_CABLE_RESULT_CODE_OK = 1, + ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 2, + ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 3, + ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 4, + ETHTOOL_A_CABLE_RESULT_CODE_IMPEDANCE_MISMATCH = 5, + ETHTOOL_A_CABLE_RESULT_CODE_NOISE = 6, + ETHTOOL_A_CABLE_RESULT_CODE_RESOLUTION_NOT_POSSIBLE = 7, +}; + +enum { + ETHTOOL_A_CABLE_RESULT_UNSPEC = 0, + ETHTOOL_A_CABLE_RESULT_PAIR = 1, + ETHTOOL_A_CABLE_RESULT_CODE = 2, + ETHTOOL_A_CABLE_RESULT_SRC = 3, + __ETHTOOL_A_CABLE_RESULT_CNT = 4, + ETHTOOL_A_CABLE_RESULT_MAX = 3, +}; + +enum { + ETHTOOL_A_CABLE_STEP_UNSPEC = 0, + ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 1, + ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 2, + ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 3, + __ETHTOOL_A_CABLE_STEP_CNT = 4, + ETHTOOL_A_CABLE_STEP_MAX = 3, +}; + +enum { + ETHTOOL_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_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_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_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_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_TEST_UNSPEC = 0, + ETHTOOL_A_CABLE_TEST_HEADER = 1, + __ETHTOOL_A_CABLE_TEST_CNT = 2, + ETHTOOL_A_CABLE_TEST_MAX = 1, +}; + +enum { + ETHTOOL_A_CHANNELS_UNSPEC = 0, + ETHTOOL_A_CHANNELS_HEADER = 1, + ETHTOOL_A_CHANNELS_RX_MAX = 2, + ETHTOOL_A_CHANNELS_TX_MAX = 3, + ETHTOOL_A_CHANNELS_OTHER_MAX = 4, + ETHTOOL_A_CHANNELS_COMBINED_MAX = 5, + ETHTOOL_A_CHANNELS_RX_COUNT = 6, + ETHTOOL_A_CHANNELS_TX_COUNT = 7, + ETHTOOL_A_CHANNELS_OTHER_COUNT = 8, + ETHTOOL_A_CHANNELS_COMBINED_COUNT = 9, + __ETHTOOL_A_CHANNELS_CNT = 10, + ETHTOOL_A_CHANNELS_MAX = 9, +}; + +enum { + 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_RX_PROFILE = 29, + ETHTOOL_A_COALESCE_TX_PROFILE = 30, + __ETHTOOL_A_COALESCE_CNT = 31, + ETHTOOL_A_COALESCE_MAX = 30, +}; + +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, +}; + +enum { + ETHTOOL_A_EEE_UNSPEC = 0, + ETHTOOL_A_EEE_HEADER = 1, + ETHTOOL_A_EEE_MODES_OURS = 2, + ETHTOOL_A_EEE_MODES_PEER = 3, + ETHTOOL_A_EEE_ACTIVE = 4, + ETHTOOL_A_EEE_ENABLED = 5, + ETHTOOL_A_EEE_TX_LPI_ENABLED = 6, + ETHTOOL_A_EEE_TX_LPI_TIMER = 7, + __ETHTOOL_A_EEE_CNT = 8, + ETHTOOL_A_EEE_MAX = 7, +}; + +enum { + ETHTOOL_A_FEATURES_UNSPEC = 0, + ETHTOOL_A_FEATURES_HEADER = 1, + ETHTOOL_A_FEATURES_HW = 2, + ETHTOOL_A_FEATURES_WANTED = 3, + ETHTOOL_A_FEATURES_ACTIVE = 4, + ETHTOOL_A_FEATURES_NOCHANGE = 5, + __ETHTOOL_A_FEATURES_CNT = 6, + ETHTOOL_A_FEATURES_MAX = 5, +}; + +enum { + ETHTOOL_A_FEC_STAT_UNSPEC = 0, + ETHTOOL_A_FEC_STAT_PAD = 1, + ETHTOOL_A_FEC_STAT_CORRECTED = 2, + ETHTOOL_A_FEC_STAT_UNCORR = 3, + ETHTOOL_A_FEC_STAT_CORR_BITS = 4, + __ETHTOOL_A_FEC_STAT_CNT = 5, + ETHTOOL_A_FEC_STAT_MAX = 4, +}; + +enum { + ETHTOOL_A_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_HEADER_UNSPEC = 0, + ETHTOOL_A_HEADER_DEV_INDEX = 1, + ETHTOOL_A_HEADER_DEV_NAME = 2, + ETHTOOL_A_HEADER_FLAGS = 3, + ETHTOOL_A_HEADER_PHY_INDEX = 4, + __ETHTOOL_A_HEADER_CNT = 5, + ETHTOOL_A_HEADER_MAX = 4, +}; + +enum { + ETHTOOL_A_IRQ_MODERATION_UNSPEC = 0, + ETHTOOL_A_IRQ_MODERATION_USEC = 1, + ETHTOOL_A_IRQ_MODERATION_PKTS = 2, + ETHTOOL_A_IRQ_MODERATION_COMPS = 3, + __ETHTOOL_A_IRQ_MODERATION_CNT = 4, + ETHTOOL_A_IRQ_MODERATION_MAX = 3, +}; + +enum { + ETHTOOL_A_LINKINFO_UNSPEC = 0, + ETHTOOL_A_LINKINFO_HEADER = 1, + ETHTOOL_A_LINKINFO_PORT = 2, + ETHTOOL_A_LINKINFO_PHYADDR = 3, + ETHTOOL_A_LINKINFO_TP_MDIX = 4, + ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 5, + ETHTOOL_A_LINKINFO_TRANSCEIVER = 6, + __ETHTOOL_A_LINKINFO_CNT = 7, + ETHTOOL_A_LINKINFO_MAX = 6, +}; + +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, +}; + +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, +}; + +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, +}; + +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, +}; + +enum { + ETHTOOL_A_MODULE_FW_FLASH_UNSPEC = 0, + ETHTOOL_A_MODULE_FW_FLASH_HEADER = 1, + ETHTOOL_A_MODULE_FW_FLASH_FILE_NAME = 2, + ETHTOOL_A_MODULE_FW_FLASH_PASSWORD = 3, + ETHTOOL_A_MODULE_FW_FLASH_STATUS = 4, + ETHTOOL_A_MODULE_FW_FLASH_STATUS_MSG = 5, + ETHTOOL_A_MODULE_FW_FLASH_DONE = 6, + ETHTOOL_A_MODULE_FW_FLASH_TOTAL = 7, + __ETHTOOL_A_MODULE_FW_FLASH_CNT = 8, + ETHTOOL_A_MODULE_FW_FLASH_MAX = 7, +}; + +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, +}; + +enum { + ETHTOOL_A_PAUSE_STAT_UNSPEC = 0, + ETHTOOL_A_PAUSE_STAT_PAD = 1, + ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 2, + ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 3, + __ETHTOOL_A_PAUSE_STAT_CNT = 4, + ETHTOOL_A_PAUSE_STAT_MAX = 3, +}; + +enum { + 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_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, +}; + +enum { + ETHTOOL_A_PHY_UNSPEC = 0, + ETHTOOL_A_PHY_HEADER = 1, + ETHTOOL_A_PHY_INDEX = 2, + ETHTOOL_A_PHY_DRVNAME = 3, + ETHTOOL_A_PHY_NAME = 4, + ETHTOOL_A_PHY_UPSTREAM_TYPE = 5, + ETHTOOL_A_PHY_UPSTREAM_INDEX = 6, + ETHTOOL_A_PHY_UPSTREAM_SFP_NAME = 7, + ETHTOOL_A_PHY_DOWNSTREAM_SFP_NAME = 8, + __ETHTOOL_A_PHY_CNT = 9, + ETHTOOL_A_PHY_MAX = 8, +}; + +enum { + ETHTOOL_A_PLCA_UNSPEC = 0, + ETHTOOL_A_PLCA_HEADER = 1, + ETHTOOL_A_PLCA_VERSION = 2, + ETHTOOL_A_PLCA_ENABLED = 3, + ETHTOOL_A_PLCA_STATUS = 4, + ETHTOOL_A_PLCA_NODE_CNT = 5, + ETHTOOL_A_PLCA_NODE_ID = 6, + ETHTOOL_A_PLCA_TO_TMR = 7, + ETHTOOL_A_PLCA_BURST_CNT = 8, + ETHTOOL_A_PLCA_BURST_TMR = 9, + __ETHTOOL_A_PLCA_CNT = 10, + ETHTOOL_A_PLCA_MAX = 9, +}; + +enum { + 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, +}; + +enum { + ETHTOOL_A_PROFILE_UNSPEC = 0, + ETHTOOL_A_PROFILE_IRQ_MODERATION = 1, + __ETHTOOL_A_PROFILE_CNT = 2, + ETHTOOL_A_PROFILE_MAX = 1, +}; + +enum { + ETHTOOL_A_PSE_UNSPEC = 0, + ETHTOOL_A_PSE_HEADER = 1, + ETHTOOL_A_PODL_PSE_ADMIN_STATE = 2, + ETHTOOL_A_PODL_PSE_ADMIN_CONTROL = 3, + ETHTOOL_A_PODL_PSE_PW_D_STATUS = 4, + ETHTOOL_A_C33_PSE_ADMIN_STATE = 5, + ETHTOOL_A_C33_PSE_ADMIN_CONTROL = 6, + ETHTOOL_A_C33_PSE_PW_D_STATUS = 7, + ETHTOOL_A_C33_PSE_PW_CLASS = 8, + ETHTOOL_A_C33_PSE_ACTUAL_PW = 9, + ETHTOOL_A_C33_PSE_EXT_STATE = 10, + ETHTOOL_A_C33_PSE_EXT_SUBSTATE = 11, + ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT = 12, + ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES = 13, + __ETHTOOL_A_PSE_CNT = 14, + ETHTOOL_A_PSE_MAX = 13, +}; + +enum { + ETHTOOL_A_RINGS_UNSPEC = 0, + ETHTOOL_A_RINGS_HEADER = 1, + ETHTOOL_A_RINGS_RX_MAX = 2, + ETHTOOL_A_RINGS_RX_MINI_MAX = 3, + ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, + ETHTOOL_A_RINGS_TX_MAX = 5, + ETHTOOL_A_RINGS_RX = 6, + ETHTOOL_A_RINGS_RX_MINI = 7, + ETHTOOL_A_RINGS_RX_JUMBO = 8, + ETHTOOL_A_RINGS_TX = 9, + ETHTOOL_A_RINGS_RX_BUF_LEN = 10, + ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, + ETHTOOL_A_RINGS_CQE_SIZE = 12, + ETHTOOL_A_RINGS_TX_PUSH = 13, + ETHTOOL_A_RINGS_RX_PUSH = 14, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, + ETHTOOL_A_RINGS_HDS_THRESH = 17, + ETHTOOL_A_RINGS_HDS_THRESH_MAX = 18, + __ETHTOOL_A_RINGS_CNT = 19, + ETHTOOL_A_RINGS_MAX = 18, +}; + +enum { + ETHTOOL_A_RSS_UNSPEC = 0, + ETHTOOL_A_RSS_HEADER = 1, + ETHTOOL_A_RSS_CONTEXT = 2, + ETHTOOL_A_RSS_HFUNC = 3, + ETHTOOL_A_RSS_INDIR = 4, + ETHTOOL_A_RSS_HKEY = 5, + ETHTOOL_A_RSS_INPUT_XFRM = 6, + ETHTOOL_A_RSS_START_CONTEXT = 7, + __ETHTOOL_A_RSS_CNT = 8, + ETHTOOL_A_RSS_MAX = 7, +}; + +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_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_PHY_5_SYM_ERR = 0, + __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, + ETHTOOL_A_STATS_ETH_PHY_MAX = 0, +}; + +enum { + ETHTOOL_A_STATS_GRP_UNSPEC = 0, + ETHTOOL_A_STATS_GRP_PAD = 1, + ETHTOOL_A_STATS_GRP_ID = 2, + ETHTOOL_A_STATS_GRP_SS_ID = 3, + ETHTOOL_A_STATS_GRP_STAT = 4, + ETHTOOL_A_STATS_GRP_HIST_RX = 5, + ETHTOOL_A_STATS_GRP_HIST_TX = 6, + ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, + ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, + ETHTOOL_A_STATS_GRP_HIST_VAL = 9, + __ETHTOOL_A_STATS_GRP_CNT = 10, + ETHTOOL_A_STATS_GRP_MAX = 9, +}; + +enum { + ETHTOOL_A_STATS_PHY_RX_PKTS = 0, + ETHTOOL_A_STATS_PHY_RX_BYTES = 1, + ETHTOOL_A_STATS_PHY_RX_ERRORS = 2, + ETHTOOL_A_STATS_PHY_TX_PKTS = 3, + ETHTOOL_A_STATS_PHY_TX_BYTES = 4, + ETHTOOL_A_STATS_PHY_TX_ERRORS = 5, + __ETHTOOL_A_STATS_PHY_CNT = 6, + ETHTOOL_A_STATS_PHY_MAX = 5, +}; + +enum { + ETHTOOL_A_STATS_RMON_UNDERSIZE = 0, + ETHTOOL_A_STATS_RMON_OVERSIZE = 1, + ETHTOOL_A_STATS_RMON_FRAG = 2, + ETHTOOL_A_STATS_RMON_JABBER = 3, + __ETHTOOL_A_STATS_RMON_CNT = 4, + ETHTOOL_A_STATS_RMON_MAX = 3, +}; + +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_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, +}; + +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_TSCONFIG_UNSPEC = 0, + ETHTOOL_A_TSCONFIG_HEADER = 1, + ETHTOOL_A_TSCONFIG_HWTSTAMP_PROVIDER = 2, + ETHTOOL_A_TSCONFIG_TX_TYPES = 3, + ETHTOOL_A_TSCONFIG_RX_FILTERS = 4, + ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS = 5, + __ETHTOOL_A_TSCONFIG_CNT = 6, + ETHTOOL_A_TSCONFIG_MAX = 5, +}; + +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_STATS = 6, + ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER = 7, + __ETHTOOL_A_TSINFO_CNT = 8, + ETHTOOL_A_TSINFO_MAX = 7, +}; + +enum { + ETHTOOL_A_TS_HWTSTAMP_PROVIDER_UNSPEC = 0, + ETHTOOL_A_TS_HWTSTAMP_PROVIDER_INDEX = 1, + ETHTOOL_A_TS_HWTSTAMP_PROVIDER_QUALIFIER = 2, + __ETHTOOL_A_TS_HWTSTAMP_PROVIDER_CNT = 3, + ETHTOOL_A_TS_HWTSTAMP_PROVIDER_MAX = 2, +}; + +enum { + ETHTOOL_A_TS_STAT_UNSPEC = 0, + ETHTOOL_A_TS_STAT_TX_PKTS = 1, + ETHTOOL_A_TS_STAT_TX_LOST = 2, + ETHTOOL_A_TS_STAT_TX_ERR = 3, + ETHTOOL_A_TS_STAT_TX_ONESTEP_PKTS_UNCONFIRMED = 4, + __ETHTOOL_A_TS_STAT_CNT = 5, + ETHTOOL_A_TS_STAT_MAX = 4, +}; + +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_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, +}; + +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_UNSPEC = 0, + ETHTOOL_A_TUNNEL_UDP_TABLE = 1, + __ETHTOOL_A_TUNNEL_UDP_CNT = 2, + ETHTOOL_A_TUNNEL_UDP_MAX = 1, +}; + +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, +}; + +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_MODULE_FW_FLASH_NTF = 44, + ETHTOOL_MSG_PHY_GET_REPLY = 45, + ETHTOOL_MSG_PHY_NTF = 46, + ETHTOOL_MSG_TSCONFIG_GET_REPLY = 47, + ETHTOOL_MSG_TSCONFIG_SET_REPLY = 48, + __ETHTOOL_MSG_KERNEL_CNT = 49, + ETHTOOL_MSG_KERNEL_MAX = 48, +}; + +enum { + ETHTOOL_MSG_USER_NONE = 0, + ETHTOOL_MSG_STRSET_GET = 1, + ETHTOOL_MSG_LINKINFO_GET = 2, + ETHTOOL_MSG_LINKINFO_SET = 3, + ETHTOOL_MSG_LINKMODES_GET = 4, + ETHTOOL_MSG_LINKMODES_SET = 5, + ETHTOOL_MSG_LINKSTATE_GET = 6, + ETHTOOL_MSG_DEBUG_GET = 7, + ETHTOOL_MSG_DEBUG_SET = 8, + ETHTOOL_MSG_WOL_GET = 9, + ETHTOOL_MSG_WOL_SET = 10, + ETHTOOL_MSG_FEATURES_GET = 11, + ETHTOOL_MSG_FEATURES_SET = 12, + ETHTOOL_MSG_PRIVFLAGS_GET = 13, + ETHTOOL_MSG_PRIVFLAGS_SET = 14, + ETHTOOL_MSG_RINGS_GET = 15, + ETHTOOL_MSG_RINGS_SET = 16, + ETHTOOL_MSG_CHANNELS_GET = 17, + ETHTOOL_MSG_CHANNELS_SET = 18, + ETHTOOL_MSG_COALESCE_GET = 19, + ETHTOOL_MSG_COALESCE_SET = 20, + ETHTOOL_MSG_PAUSE_GET = 21, + ETHTOOL_MSG_PAUSE_SET = 22, + ETHTOOL_MSG_EEE_GET = 23, + ETHTOOL_MSG_EEE_SET = 24, + ETHTOOL_MSG_TSINFO_GET = 25, + ETHTOOL_MSG_CABLE_TEST_ACT = 26, + ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 27, + ETHTOOL_MSG_TUNNEL_INFO_GET = 28, + ETHTOOL_MSG_FEC_GET = 29, + ETHTOOL_MSG_FEC_SET = 30, + ETHTOOL_MSG_MODULE_EEPROM_GET = 31, + ETHTOOL_MSG_STATS_GET = 32, + ETHTOOL_MSG_PHC_VCLOCKS_GET = 33, + ETHTOOL_MSG_MODULE_GET = 34, + ETHTOOL_MSG_MODULE_SET = 35, + ETHTOOL_MSG_PSE_GET = 36, + ETHTOOL_MSG_PSE_SET = 37, + ETHTOOL_MSG_RSS_GET = 38, + ETHTOOL_MSG_PLCA_GET_CFG = 39, + ETHTOOL_MSG_PLCA_SET_CFG = 40, + ETHTOOL_MSG_PLCA_GET_STATUS = 41, + ETHTOOL_MSG_MM_GET = 42, + ETHTOOL_MSG_MM_SET = 43, + ETHTOOL_MSG_MODULE_FW_FLASH_ACT = 44, + ETHTOOL_MSG_PHY_GET = 45, + ETHTOOL_MSG_TSCONFIG_GET = 46, + ETHTOOL_MSG_TSCONFIG_SET = 47, + __ETHTOOL_MSG_USER_CNT = 48, + ETHTOOL_MSG_USER_MAX = 47, +}; + +enum { + ETHTOOL_STATS_ETH_PHY = 0, + ETHTOOL_STATS_ETH_MAC = 1, + ETHTOOL_STATS_ETH_CTRL = 2, + ETHTOOL_STATS_RMON = 3, + ETHTOOL_STATS_PHY = 4, + __ETHTOOL_STATS_CNT = 5, +}; + +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, + ETHTOOL_UDP_TUNNEL_TYPE_MAX = 2, +}; + +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, +}; + +enum { + EVENTFS_SAVE_MODE = 65536, + EVENTFS_SAVE_UID = 131072, + EVENTFS_SAVE_GID = 262144, +}; + +enum { + EVENT_FILE_FL_ENABLED = 1, + EVENT_FILE_FL_RECORDED_CMD = 2, + EVENT_FILE_FL_RECORDED_TGID = 4, + EVENT_FILE_FL_FILTERED = 8, + EVENT_FILE_FL_NO_SET_FILTER = 16, + EVENT_FILE_FL_SOFT_MODE = 32, + EVENT_FILE_FL_SOFT_DISABLED = 64, + EVENT_FILE_FL_TRIGGER_MODE = 128, + EVENT_FILE_FL_TRIGGER_COND = 256, + EVENT_FILE_FL_PID_FILTER = 512, + EVENT_FILE_FL_WAS_ENABLED = 1024, + EVENT_FILE_FL_FREED = 2048, +}; + +enum { + EVENT_FILE_FL_ENABLED_BIT = 0, + EVENT_FILE_FL_RECORDED_CMD_BIT = 1, + EVENT_FILE_FL_RECORDED_TGID_BIT = 2, + EVENT_FILE_FL_FILTERED_BIT = 3, + EVENT_FILE_FL_NO_SET_FILTER_BIT = 4, + EVENT_FILE_FL_SOFT_MODE_BIT = 5, + EVENT_FILE_FL_SOFT_DISABLED_BIT = 6, + EVENT_FILE_FL_TRIGGER_MODE_BIT = 7, + EVENT_FILE_FL_TRIGGER_COND_BIT = 8, + EVENT_FILE_FL_PID_FILTER_BIT = 9, + EVENT_FILE_FL_WAS_ENABLED_BIT = 10, + EVENT_FILE_FL_FREED_BIT = 11, +}; + +enum { + EVENT_TRIGGER_FL_PROBE = 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, +}; + +enum { + EXT4_FC_STATUS_OK = 0, + EXT4_FC_STATUS_INELIGIBLE = 1, + EXT4_FC_STATUS_SKIPPED = 2, + EXT4_FC_STATUS_FAILED = 3, +}; + +enum { + EXT4_FLAGS_RESIZING = 0, + EXT4_FLAGS_SHUTDOWN = 1, + EXT4_FLAGS_BDEV_IS_DAX = 2, + EXT4_FLAGS_EMERGENCY_RO = 3, +}; + +enum { + EXT4_INODE_SECRM = 0, + EXT4_INODE_UNRM = 1, + EXT4_INODE_COMPR = 2, + EXT4_INODE_SYNC = 3, + EXT4_INODE_IMMUTABLE = 4, + EXT4_INODE_APPEND = 5, + EXT4_INODE_NODUMP = 6, + EXT4_INODE_NOATIME = 7, + EXT4_INODE_DIRTY = 8, + EXT4_INODE_COMPRBLK = 9, + EXT4_INODE_NOCOMPR = 10, + EXT4_INODE_ENCRYPT = 11, + EXT4_INODE_INDEX = 12, + EXT4_INODE_IMAGIC = 13, + EXT4_INODE_JOURNAL_DATA = 14, + EXT4_INODE_NOTAIL = 15, + EXT4_INODE_DIRSYNC = 16, + EXT4_INODE_TOPDIR = 17, + EXT4_INODE_HUGE_FILE = 18, + EXT4_INODE_EXTENTS = 19, + EXT4_INODE_VERITY = 20, + EXT4_INODE_EA_INODE = 21, + EXT4_INODE_DAX = 25, + EXT4_INODE_INLINE_DATA = 28, + EXT4_INODE_PROJINHERIT = 29, + EXT4_INODE_CASEFOLD = 30, + EXT4_INODE_RESERVED = 31, +}; + +enum { + EXT4_MF_MNTDIR_SAMPLED = 0, + EXT4_MF_FC_INELIGIBLE = 1, + EXT4_MF_JOURNAL_DESTROY = 2, +}; + +enum { + EXT4_STATE_NEW = 0, + EXT4_STATE_XATTR = 1, + EXT4_STATE_NO_EXPAND = 2, + EXT4_STATE_DA_ALLOC_CLOSE = 3, + EXT4_STATE_EXT_MIGRATE = 4, + EXT4_STATE_NEWENTRY = 5, + EXT4_STATE_MAY_INLINE_DATA = 6, + EXT4_STATE_EXT_PRECACHED = 7, + EXT4_STATE_LUSTRE_EA_INODE = 8, + EXT4_STATE_VERITY_IN_PROGRESS = 9, + EXT4_STATE_FC_COMMITTING = 10, + EXT4_STATE_ORPHAN_FILE = 11, +}; + +enum { + FAN_EVENT_INIT = 0, + FAN_EVENT_REPORTED = 1, + FAN_EVENT_ANSWERED = 2, + FAN_EVENT_CANCELED = 3, +}; + +enum { + FAST_W_CNT = 16, +}; + +enum { + FBCON_LOGO_CANSHOW = -1, + FBCON_LOGO_DRAW = -2, + FBCON_LOGO_DONTSHOW = -3, +}; + +enum { + FB_BLANK_UNBLANK = 0, + FB_BLANK_NORMAL = 1, + FB_BLANK_VSYNC_SUSPEND = 2, + FB_BLANK_HSYNC_SUSPEND = 3, + FB_BLANK_POWERDOWN = 4, +}; + +enum { + FGRAPH_TYPE_RESERVED = 0, + FGRAPH_TYPE_BITMAP = 1, + FGRAPH_TYPE_DATA = 2, +}; + +enum { + FIB6_NO_SERNUM_CHANGE = 0, +}; + +enum { + FILTER_OTHER = 0, + FILTER_STATIC_STRING = 1, + FILTER_DYN_STRING = 2, + FILTER_RDYN_STRING = 3, + FILTER_PTR_STRING = 4, + FILTER_TRACE_FN = 5, + FILTER_CPUMASK = 6, + FILTER_COMM = 7, + FILTER_CPU = 8, + FILTER_STACKTRACE = 9, +}; + +enum { + FILT_ERR_NONE = 0, + FILT_ERR_INVALID_OP = 1, + FILT_ERR_TOO_MANY_OPEN = 2, + FILT_ERR_TOO_MANY_CLOSE = 3, + FILT_ERR_MISSING_QUOTE = 4, + FILT_ERR_MISSING_BRACE_OPEN = 5, + FILT_ERR_MISSING_BRACE_CLOSE = 6, + FILT_ERR_OPERAND_TOO_LONG = 7, + FILT_ERR_EXPECT_STRING = 8, + FILT_ERR_EXPECT_DIGIT = 9, + FILT_ERR_ILLEGAL_FIELD_OP = 10, + FILT_ERR_FIELD_NOT_FOUND = 11, + FILT_ERR_ILLEGAL_INTVAL = 12, + FILT_ERR_BAD_SUBSYS_FILTER = 13, + FILT_ERR_TOO_MANY_PREDS = 14, + FILT_ERR_INVALID_FILTER = 15, + FILT_ERR_INVALID_CPULIST = 16, + FILT_ERR_IP_FIELD_ONLY = 17, + FILT_ERR_INVALID_VALUE = 18, + FILT_ERR_NO_FUNCTION = 19, + FILT_ERR_ERRNO = 20, + FILT_ERR_NO_FILTER = 21, +}; + +enum { + FLAGS_ADC = 1, + FLAGS_RTC = 2, +}; + +enum { + FLAGS_FILL_FULL = 268435456, + FLAGS_FILL_START = 536870912, + FLAGS_FILL_END = 805306368, +}; + +enum { + FOLL_TOUCH = 65536, + FOLL_TRIED = 131072, + FOLL_REMOTE = 262144, + FOLL_PIN = 524288, + FOLL_FAST_ONLY = 1048576, + FOLL_UNLOCKABLE = 2097152, + FOLL_MADV_POPULATE = 4194304, +}; + +enum { + FOLL_WRITE = 1, + FOLL_GET = 2, + FOLL_DUMP = 4, + FOLL_FORCE = 8, + FOLL_NOWAIT = 16, + FOLL_NOFAULT = 32, + FOLL_HWPOISON = 64, + FOLL_ANON = 128, + FOLL_LONGTERM = 256, + FOLL_SPLIT_PMD = 512, + FOLL_PCI_P2PDMA = 1024, + FOLL_INTERRUPTIBLE = 2048, + FOLL_HONOR_NUMA_FAULT = 4096, +}; + +enum { + FORMAT_HEADER = 1, + FORMAT_FIELD_SEPERATOR = 2, + FORMAT_PRINTFMT = 3, +}; + +enum { + FRACTION_DENOM = 128, +}; + +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_DSCP = 25, + FRA_FLOWLABEL = 26, + FRA_FLOWLABEL_MASK = 27, + __FRA_MAX = 28, +}; + +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 { + FTRACE_FL_ENABLED = 2147483648, + FTRACE_FL_REGS = 1073741824, + FTRACE_FL_REGS_EN = 536870912, + FTRACE_FL_TRAMP = 268435456, + FTRACE_FL_TRAMP_EN = 134217728, + FTRACE_FL_IPMODIFY = 67108864, + FTRACE_FL_DISABLED = 33554432, + FTRACE_FL_DIRECT = 16777216, + FTRACE_FL_DIRECT_EN = 8388608, + FTRACE_FL_CALL_OPS = 4194304, + FTRACE_FL_CALL_OPS_EN = 2097152, + FTRACE_FL_TOUCHED = 1048576, + FTRACE_FL_MODIFIED = 524288, +}; + +enum { + FTRACE_HASH_FL_MOD = 1, +}; + +enum { + FTRACE_ITER_FILTER = 1, + FTRACE_ITER_NOTRACE = 2, + FTRACE_ITER_PRINTALL = 4, + FTRACE_ITER_DO_PROBES = 8, + FTRACE_ITER_PROBE = 16, + FTRACE_ITER_MOD = 32, + FTRACE_ITER_ENABLED = 64, + FTRACE_ITER_TOUCHED = 128, + FTRACE_ITER_ADDRS = 256, +}; + +enum { + FTRACE_MODIFY_ENABLE_FL = 1, + FTRACE_MODIFY_MAY_SLEEP_FL = 2, +}; + +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, + FTRACE_OPS_FL_SUBOP = 262144, +}; + +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_UPDATE_IGNORE = 0, + FTRACE_UPDATE_MAKE_CALL = 1, + FTRACE_UPDATE_MODIFY_CALL = 2, + FTRACE_UPDATE_MAKE_NOP = 3, +}; + +enum { + FUNC_CAN0_a = 0, + FUNC_CAN0_b = 1, + FUNC_CAN1 = 2, + FUNC_CLKMON = 3, + FUNC_NONE = 4, + FUNC_FAN = 5, + FUNC_FC = 6, + FUNC_FC0_a = 7, + FUNC_FC0_b = 8, + FUNC_FC0_c = 9, + FUNC_FC1_a = 10, + FUNC_FC1_b = 11, + FUNC_FC1_c = 12, + FUNC_FC2_a = 13, + FUNC_FC2_b = 14, + FUNC_FC3_a = 15, + FUNC_FC3_b = 16, + FUNC_FC3_c = 17, + FUNC_FC4_a = 18, + FUNC_FC4_b = 19, + FUNC_FC4_c = 20, + FUNC_FC_SHRD = 21, + FUNC_FC_SHRD0 = 22, + FUNC_FC_SHRD1 = 23, + FUNC_FC_SHRD2 = 24, + FUNC_FC_SHRD3 = 25, + FUNC_FC_SHRD4 = 26, + FUNC_FC_SHRD5 = 27, + FUNC_FC_SHRD6 = 28, + FUNC_FC_SHRD7 = 29, + FUNC_FC_SHRD8 = 30, + FUNC_FC_SHRD9 = 31, + FUNC_FC_SHRD10 = 32, + FUNC_FC_SHRD11 = 33, + FUNC_FC_SHRD12 = 34, + FUNC_FC_SHRD13 = 35, + FUNC_FC_SHRD14 = 36, + FUNC_FC_SHRD15 = 37, + FUNC_FC_SHRD16 = 38, + FUNC_FC_SHRD17 = 39, + FUNC_FC_SHRD18 = 40, + FUNC_FC_SHRD19 = 41, + FUNC_FC_SHRD20 = 42, + FUNC_FUSA = 43, + FUNC_GPIO = 44, + FUNC_IB_TRG_a = 45, + FUNC_IB_TRG_b = 46, + FUNC_IB_TRG_c = 47, + FUNC_IRQ0 = 48, + FUNC_IRQ_IN_a = 49, + FUNC_IRQ_IN_b = 50, + FUNC_IRQ_IN_c = 51, + FUNC_IRQ0_IN = 52, + FUNC_IRQ_OUT_a = 53, + FUNC_IRQ_OUT_b = 54, + FUNC_IRQ_OUT_c = 55, + FUNC_IRQ0_OUT = 56, + FUNC_IRQ1 = 57, + FUNC_IRQ1_IN = 58, + FUNC_IRQ1_OUT = 59, + FUNC_IRQ3 = 60, + FUNC_IRQ4 = 61, + FUNC_EXT_IRQ = 62, + FUNC_MIIM = 63, + FUNC_MIIM_a = 64, + FUNC_MIIM_b = 65, + FUNC_MIIM_c = 66, + FUNC_MIIM_Sa = 67, + FUNC_MIIM_Sb = 68, + FUNC_MIIM_IRQ = 69, + FUNC_OB_TRG = 70, + FUNC_OB_TRG_a = 71, + FUNC_OB_TRG_b = 72, + FUNC_PHY_LED = 73, + FUNC_PCI_WAKE = 74, + FUNC_MD = 75, + FUNC_PCIE_PERST = 76, + FUNC_PTP0 = 77, + FUNC_PTP1 = 78, + FUNC_PTP2 = 79, + FUNC_PTP3 = 80, + FUNC_PTPSYNC_0 = 81, + FUNC_PTPSYNC_1 = 82, + FUNC_PTPSYNC_2 = 83, + FUNC_PTPSYNC_3 = 84, + FUNC_PTPSYNC_4 = 85, + FUNC_PTPSYNC_5 = 86, + FUNC_PTPSYNC_6 = 87, + FUNC_PTPSYNC_7 = 88, + FUNC_PWM = 89, + FUNC_PWM_a = 90, + FUNC_PWM_b = 91, + FUNC_QSPI1 = 92, + FUNC_QSPI2 = 93, + FUNC_R = 94, + FUNC_RECO_a = 95, + FUNC_RECO_b = 96, + FUNC_RECO_CLK = 97, + FUNC_SD = 98, + FUNC_SFP = 99, + FUNC_SFP_SD = 100, + FUNC_SG0 = 101, + FUNC_SG1 = 102, + FUNC_SG2 = 103, + FUNC_SGPIO_a = 104, + FUNC_SGPIO_b = 105, + FUNC_SI = 106, + FUNC_SI2 = 107, + FUNC_SYNCE = 108, + FUNC_TACHO = 109, + FUNC_TACHO_a = 110, + FUNC_TACHO_b = 111, + FUNC_TWI = 112, + FUNC_TWI2 = 113, + FUNC_TWI3 = 114, + FUNC_TWI_SCL_M = 115, + FUNC_TWI_SLC_GATE = 116, + FUNC_TWI_SLC_GATE_AD = 117, + FUNC_UART = 118, + FUNC_UART2 = 119, + FUNC_UART3 = 120, + FUNC_USB_H_a = 121, + FUNC_USB_H_b = 122, + FUNC_USB_H_c = 123, + FUNC_USB_S_a = 124, + FUNC_USB_S_b = 125, + FUNC_USB_S_c = 126, + FUNC_USB_POWER = 127, + FUNC_USB2PHY_RST = 128, + FUNC_USB_OVER_DETECT = 129, + FUNC_USB_ULPI = 130, + FUNC_PLL_STAT = 131, + FUNC_EMMC = 132, + FUNC_EMMC_SD = 133, + FUNC_REF_CLK = 134, + FUNC_RCVRD_CLK = 135, + FUNC_MAX = 136, +}; + +enum { + FUSE_I_ADVISE_RDPLUS = 0, + FUSE_I_INIT_RDPLUS = 1, + FUSE_I_SIZE_UNSTABLE = 2, + FUSE_I_BAD = 3, + FUSE_I_BTIME = 4, + FUSE_I_CACHE_IO_MODE = 5, +}; + +enum { + FUTEX_STATE_OK = 0, + FUTEX_STATE_EXITING = 1, + FUTEX_STATE_DEAD = 2, +}; + +enum { + GENHD_FL_REMOVABLE = 1, + GENHD_FL_HIDDEN = 2, + GENHD_FL_NO_PART = 4, +}; + +enum { + GHES_SEV_NO = 0, + GHES_SEV_CORRECTED = 1, + GHES_SEV_RECOVERABLE = 2, + GHES_SEV_PANIC = 3, +}; + +enum { + GI2C_PORT = 0, + PI2C_PORT = 1, +}; + +enum { + GPIO_BASE = 0, + IOCFG_RT_BASE = 1, + IOCFG_RB_BASE = 2, + IOCFG_LT_BASE = 3, + IOCFG_LB_BASE = 4, + IOCFG_TR_BASE = 5, + IOCFG_TL_BASE = 6, +}; + +enum { + GP_IDLE = 0, + GP_ENTER = 1, + GP_PASSED = 2, + GP_EXIT = 3, + GP_REPLAY = 4, +}; + +enum { + GP_LAST = 174, + PIN_DCUTCK_LPDCLK = 175, + PIN_DCUTDI_LPDI = 176, + PIN_DCUTMS = 177, + PIN_DCUTRST_N = 178, + PIN_DU_DOTCLKIN = 179, + PIN_EXTALR = 180, + PIN_FSCLKST = 181, + PIN_FSCLKST_N = 182, + PIN_PRESETOUT_N = 183, + PIN_VDDQ_AVB = 184, + PIN_VDDQ_GE = 185, +}; + +enum { + GP_LAST___2 = 209, + PIN_ASEBRK = 210, + PIN_AVB_MDC = 211, + PIN_AVB_MDIO = 212, + PIN_AVB_TD0 = 213, + PIN_AVB_TD1 = 214, + PIN_AVB_TD2 = 215, + PIN_AVB_TD3 = 216, + PIN_AVB_TXC = 217, + PIN_AVB_TX_CTL = 218, + PIN_FSCLKST_N___2 = 219, + PIN_MLB_REF = 220, + PIN_PRESETOUT_N___2 = 221, + PIN_TCK = 222, + PIN_TDI = 223, + PIN_TMS = 224, + PIN_TRST_N = 225, + PIN_VDDQ_AVB0 = 226, +}; + +enum { + GP_LAST___3 = 227, + PIN_ASEBRK___2 = 228, + PIN_AVB_MDIO___2 = 229, + PIN_AVB_RD0 = 230, + PIN_AVB_RD1 = 231, + PIN_AVB_RD2 = 232, + PIN_AVB_RD3 = 233, + PIN_AVB_RXC = 234, + PIN_AVB_RX_CTL = 235, + PIN_AVB_TD0___2 = 236, + PIN_AVB_TD1___2 = 237, + PIN_AVB_TD2___2 = 238, + PIN_AVB_TD3___2 = 239, + PIN_AVB_TXC___2 = 240, + PIN_AVB_TXCREFCLK = 241, + PIN_AVB_TX_CTL___2 = 242, + PIN_DU_DOTCLKIN0 = 243, + PIN_DU_DOTCLKIN1 = 244, + PIN_DU_DOTCLKIN2 = 245, + PIN_EXTALR___2 = 246, + PIN_FSCLKST___2 = 247, + PIN_MLB_REF___2 = 248, + PIN_PRESETOUT_N___3 = 249, + PIN_QSPI0_IO2 = 250, + PIN_QSPI0_IO3 = 251, + PIN_QSPI0_MISO_IO1 = 252, + PIN_QSPI0_MOSI_IO0 = 253, + PIN_QSPI0_SPCLK = 254, + PIN_QSPI0_SSL = 255, + PIN_QSPI1_IO2 = 256, + PIN_QSPI1_IO3 = 257, + PIN_QSPI1_MISO_IO1 = 258, + PIN_QSPI1_MOSI_IO0 = 259, + PIN_QSPI1_SPCLK = 260, + PIN_QSPI1_SSL = 261, + PIN_PRESET_N = 262, + PIN_RPC_INT_N = 263, + PIN_RPC_RESET_N = 264, + PIN_RPC_WP_N = 265, + PIN_TCK___2 = 266, + PIN_TDI___2 = 267, + PIN_TDO = 268, + PIN_TMS___2 = 269, + PIN_TRST_N___2 = 270, +}; + +enum { + GP_LAST___4 = 244, + PIN_VDDQ_AVB0___2 = 245, + PIN_VDDQ_AVB1 = 246, + PIN_VDDQ_AVB2 = 247, +}; + +enum { + GP_LAST___5 = 227, + PIN_ASEBRK___3 = 228, + PIN_AVB_MDIO___3 = 229, + PIN_AVB_RD0___2 = 230, + PIN_AVB_RD1___2 = 231, + PIN_AVB_RD2___2 = 232, + PIN_AVB_RD3___2 = 233, + PIN_AVB_RXC___2 = 234, + PIN_AVB_RX_CTL___2 = 235, + PIN_AVB_TD0___3 = 236, + PIN_AVB_TD1___3 = 237, + PIN_AVB_TD2___3 = 238, + PIN_AVB_TD3___3 = 239, + PIN_AVB_TXC___3 = 240, + PIN_AVB_TXCREFCLK___2 = 241, + PIN_AVB_TX_CTL___3 = 242, + PIN_DU_DOTCLKIN0___2 = 243, + PIN_DU_DOTCLKIN1___2 = 244, + PIN_DU_DOTCLKIN2___2 = 245, + PIN_DU_DOTCLKIN3 = 246, + PIN_EXTALR___3 = 247, + PIN_FSCLKST_N___3 = 248, + PIN_MLB_REF___3 = 249, + PIN_PRESETOUT_N___4 = 250, + PIN_QSPI0_IO2___2 = 251, + PIN_QSPI0_IO3___2 = 252, + PIN_QSPI0_MISO_IO1___2 = 253, + PIN_QSPI0_MOSI_IO0___2 = 254, + PIN_QSPI0_SPCLK___2 = 255, + PIN_QSPI0_SSL___2 = 256, + PIN_QSPI1_IO2___2 = 257, + PIN_QSPI1_IO3___2 = 258, + PIN_QSPI1_MISO_IO1___2 = 259, + PIN_QSPI1_MOSI_IO0___2 = 260, + PIN_QSPI1_SPCLK___2 = 261, + PIN_QSPI1_SSL___2 = 262, + PIN_RPC_INT_N___2 = 263, + PIN_RPC_RESET_N___2 = 264, + PIN_RPC_WP_N___2 = 265, + PIN_TCK___3 = 266, + PIN_TDI___3 = 267, + PIN_TDO___2 = 268, + PIN_TMS___3 = 269, + PIN_TRST_N___3 = 270, +}; + +enum { + GP_LAST___6 = 269, + PIN_VDDQ_AVB0___3 = 270, + PIN_VDDQ_AVB1___2 = 271, + PIN_VDDQ_AVB2___2 = 272, + PIN_VDDQ_TSN0 = 273, +}; + +enum { + GP_LAST___7 = 227, + PIN_ASEBRK___4 = 228, + PIN_AVB_MDIO___4 = 229, + PIN_AVB_RD0___3 = 230, + PIN_AVB_RD1___3 = 231, + PIN_AVB_RD2___3 = 232, + PIN_AVB_RD3___3 = 233, + PIN_AVB_RXC___3 = 234, + PIN_AVB_RX_CTL___3 = 235, + PIN_AVB_TD0___4 = 236, + PIN_AVB_TD1___4 = 237, + PIN_AVB_TD2___4 = 238, + PIN_AVB_TD3___4 = 239, + PIN_AVB_TXC___4 = 240, + PIN_AVB_TXCREFCLK___3 = 241, + PIN_AVB_TX_CTL___4 = 242, + PIN_DU_DOTCLKIN0___3 = 243, + PIN_DU_DOTCLKIN1___3 = 244, + PIN_DU_DOTCLKIN3___2 = 245, + PIN_EXTALR___4 = 246, + PIN_FSCLKST___3 = 247, + PIN_MLB_REF___4 = 248, + PIN_PRESETOUT_N___5 = 249, + PIN_QSPI0_IO2___3 = 250, + PIN_QSPI0_IO3___3 = 251, + PIN_QSPI0_MISO_IO1___3 = 252, + PIN_QSPI0_MOSI_IO0___3 = 253, + PIN_QSPI0_SPCLK___3 = 254, + PIN_QSPI0_SSL___3 = 255, + PIN_QSPI1_IO2___3 = 256, + PIN_QSPI1_IO3___3 = 257, + PIN_QSPI1_MISO_IO1___3 = 258, + PIN_QSPI1_MOSI_IO0___3 = 259, + PIN_QSPI1_SPCLK___3 = 260, + PIN_QSPI1_SSL___3 = 261, + PIN_RPC_INT_N___3 = 262, + PIN_RPC_RESET_N___3 = 263, + PIN_RPC_WP_N___3 = 264, + PIN_TCK___4 = 265, + PIN_TDI___4 = 266, + PIN_TDO___3 = 267, + PIN_TMS___4 = 268, + PIN_TRST_N___4 = 269, +}; + +enum { + GP_LAST___8 = 205, + PIN_DU_DOTCLKIN0___4 = 206, + PIN_FSCLKST_N___4 = 207, + PIN_MLB_REF___5 = 208, + PIN_PRESETOUT_N___6 = 209, + PIN_TCK___5 = 210, + PIN_TDI___5 = 211, + PIN_TMS___5 = 212, + PIN_TRST_N___5 = 213, + PIN_VDDQ_AVB0___4 = 214, +}; + +enum { + GP_LAST___9 = 174, + PIN_DU_DOTCLKIN___2 = 175, + PIN_EXTALR___5 = 176, + PIN_FSCLKST_N___5 = 177, + PIN_PRESETOUT_N___7 = 178, + PIN_TCK___6 = 179, + PIN_TDI___6 = 180, + PIN_TMS___6 = 181, + PIN_TRST_N___6 = 182, + PIN_VDDQ_AVB0___5 = 183, +}; + +enum { + HANDSHAKE_A_ACCEPT_SOCKFD = 1, + HANDSHAKE_A_ACCEPT_HANDLER_CLASS = 2, + HANDSHAKE_A_ACCEPT_MESSAGE_TYPE = 3, + HANDSHAKE_A_ACCEPT_TIMEOUT = 4, + HANDSHAKE_A_ACCEPT_AUTH_MODE = 5, + HANDSHAKE_A_ACCEPT_PEER_IDENTITY = 6, + HANDSHAKE_A_ACCEPT_CERTIFICATE = 7, + HANDSHAKE_A_ACCEPT_PEERNAME = 8, + __HANDSHAKE_A_ACCEPT_MAX = 9, + HANDSHAKE_A_ACCEPT_MAX = 8, +}; + +enum { + HANDSHAKE_A_DONE_STATUS = 1, + HANDSHAKE_A_DONE_SOCKFD = 2, + HANDSHAKE_A_DONE_REMOTE_AUTH = 3, + __HANDSHAKE_A_DONE_MAX = 4, + HANDSHAKE_A_DONE_MAX = 3, +}; + +enum { + HANDSHAKE_A_X509_CERT = 1, + HANDSHAKE_A_X509_PRIVKEY = 2, + __HANDSHAKE_A_X509_MAX = 3, + HANDSHAKE_A_X509_MAX = 2, +}; + +enum { + HANDSHAKE_CMD_READY = 1, + HANDSHAKE_CMD_ACCEPT = 2, + HANDSHAKE_CMD_DONE = 3, + __HANDSHAKE_CMD_MAX = 4, + HANDSHAKE_CMD_MAX = 3, +}; + +enum { + HANDSHAKE_NLGRP_NONE = 0, + HANDSHAKE_NLGRP_TLSHD = 1, +}; + +enum { + HASH_SIZE = 128, +}; + +enum { + HAS_READ = 1, + HAS_WRITE = 2, + HAS_LSEEK = 4, + HAS_POLL = 8, + HAS_IOCTL = 16, +}; + +enum { + HIST_ERR_NONE = 0, + HIST_ERR_DUPLICATE_VAR = 1, + HIST_ERR_VAR_NOT_UNIQUE = 2, + HIST_ERR_TOO_MANY_VARS = 3, + HIST_ERR_MALFORMED_ASSIGNMENT = 4, + HIST_ERR_NAMED_MISMATCH = 5, + HIST_ERR_TRIGGER_EEXIST = 6, + HIST_ERR_TRIGGER_ENOENT_CLEAR = 7, + HIST_ERR_SET_CLOCK_FAIL = 8, + HIST_ERR_BAD_FIELD_MODIFIER = 9, + HIST_ERR_TOO_MANY_SUBEXPR = 10, + HIST_ERR_TIMESTAMP_MISMATCH = 11, + HIST_ERR_TOO_MANY_FIELD_VARS = 12, + HIST_ERR_EVENT_FILE_NOT_FOUND = 13, + HIST_ERR_HIST_NOT_FOUND = 14, + HIST_ERR_HIST_CREATE_FAIL = 15, + HIST_ERR_SYNTH_VAR_NOT_FOUND = 16, + HIST_ERR_SYNTH_EVENT_NOT_FOUND = 17, + HIST_ERR_SYNTH_TYPE_MISMATCH = 18, + HIST_ERR_SYNTH_COUNT_MISMATCH = 19, + HIST_ERR_FIELD_VAR_PARSE_FAIL = 20, + HIST_ERR_VAR_CREATE_FIND_FAIL = 21, + HIST_ERR_ONX_NOT_VAR = 22, + HIST_ERR_ONX_VAR_NOT_FOUND = 23, + HIST_ERR_ONX_VAR_CREATE_FAIL = 24, + HIST_ERR_FIELD_VAR_CREATE_FAIL = 25, + HIST_ERR_TOO_MANY_PARAMS = 26, + HIST_ERR_PARAM_NOT_FOUND = 27, + HIST_ERR_INVALID_PARAM = 28, + HIST_ERR_ACTION_NOT_FOUND = 29, + HIST_ERR_NO_SAVE_PARAMS = 30, + HIST_ERR_TOO_MANY_SAVE_ACTIONS = 31, + HIST_ERR_ACTION_MISMATCH = 32, + HIST_ERR_NO_CLOSING_PAREN = 33, + HIST_ERR_SUBSYS_NOT_FOUND = 34, + HIST_ERR_INVALID_SUBSYS_EVENT = 35, + HIST_ERR_INVALID_REF_KEY = 36, + HIST_ERR_VAR_NOT_FOUND = 37, + HIST_ERR_FIELD_NOT_FOUND = 38, + HIST_ERR_EMPTY_ASSIGNMENT = 39, + HIST_ERR_INVALID_SORT_MODIFIER = 40, + HIST_ERR_EMPTY_SORT_FIELD = 41, + HIST_ERR_TOO_MANY_SORT_FIELDS = 42, + HIST_ERR_INVALID_SORT_FIELD = 43, + HIST_ERR_INVALID_STR_OPERAND = 44, + HIST_ERR_EXPECT_NUMBER = 45, + HIST_ERR_UNARY_MINUS_SUBEXPR = 46, + HIST_ERR_DIVISION_BY_ZERO = 47, + HIST_ERR_NEED_NOHC_VAL = 48, +}; + +enum { + HI_SOFTIRQ = 0, + TIMER_SOFTIRQ = 1, + NET_TX_SOFTIRQ = 2, + NET_RX_SOFTIRQ = 3, + BLOCK_SOFTIRQ = 4, + IRQ_POLL_SOFTIRQ = 5, + TASKLET_SOFTIRQ = 6, + SCHED_SOFTIRQ = 7, + HRTIMER_SOFTIRQ = 8, + RCU_SOFTIRQ = 9, + NR_SOFTIRQS = 10, +}; + +enum { + HMM_NEED_FAULT = 1, + HMM_NEED_WRITE_FAULT = 2, + HMM_NEED_ALL_BITS = 3, +}; + +enum { + HOST_L_CNT = 6, +}; + +enum { + HOST_L_DUR = 9, +}; + +enum { + HOST_S_CNT = 7, +}; + +enum { + HOST_S_DUR = 8, +}; + +enum { + HP_THREAD_NONE = 0, + HP_THREAD_ACTIVE = 1, + HP_THREAD_PARKED = 2, +}; + +enum { + HSE = 0, + HSI = 1, + MSI = 2, + LSE = 3, + LSI = 4, + HSE_DIV2 = 5, + ICN_HS_MCU = 6, + ICN_LS_MCU = 7, + ICN_SDMMC = 8, + ICN_DDR = 9, + ICN_DISPLAY = 10, + ICN_HSL = 11, + ICN_NIC = 12, + ICN_VID = 13, + FLEXGEN_07 = 14, + FLEXGEN_08 = 15, + FLEXGEN_09 = 16, + FLEXGEN_10 = 17, + FLEXGEN_11 = 18, + FLEXGEN_12 = 19, + FLEXGEN_13 = 20, + FLEXGEN_14 = 21, + FLEXGEN_15 = 22, + FLEXGEN_16 = 23, + FLEXGEN_17 = 24, + FLEXGEN_18 = 25, + FLEXGEN_19 = 26, + FLEXGEN_20 = 27, + FLEXGEN_21 = 28, + FLEXGEN_22 = 29, + FLEXGEN_23 = 30, + FLEXGEN_24 = 31, + FLEXGEN_25 = 32, + FLEXGEN_26 = 33, + FLEXGEN_27 = 34, + FLEXGEN_28 = 35, + FLEXGEN_29 = 36, + FLEXGEN_30 = 37, + FLEXGEN_31 = 38, + FLEXGEN_32 = 39, + FLEXGEN_33 = 40, + FLEXGEN_34 = 41, + FLEXGEN_35 = 42, + FLEXGEN_36 = 43, + FLEXGEN_37 = 44, + FLEXGEN_38 = 45, + FLEXGEN_39 = 46, + FLEXGEN_40 = 47, + FLEXGEN_41 = 48, + FLEXGEN_42 = 49, + FLEXGEN_43 = 50, + FLEXGEN_44 = 51, + FLEXGEN_45 = 52, + FLEXGEN_46 = 53, + FLEXGEN_47 = 54, + FLEXGEN_48 = 55, + FLEXGEN_49 = 56, + FLEXGEN_50 = 57, + FLEXGEN_51 = 58, + FLEXGEN_52 = 59, + FLEXGEN_53 = 60, + FLEXGEN_54 = 61, + FLEXGEN_55 = 62, + FLEXGEN_56 = 63, + FLEXGEN_57 = 64, + FLEXGEN_58 = 65, + FLEXGEN_59 = 66, + FLEXGEN_60 = 67, + FLEXGEN_61 = 68, + FLEXGEN_62 = 69, + FLEXGEN_63 = 70, + ICN_APB1 = 71, + ICN_APB2 = 72, + ICN_APB3 = 73, + ICN_APB4 = 74, + ICN_APBDBG = 75, + TIMG1 = 76, + TIMG2 = 77, + PLL3 = 78, + DSI_TXBYTE = 79, +}; + +enum { + HTE_TS_REGISTERED = 0, + HTE_TS_REQ = 1, + HTE_TS_DISABLE = 2, + HTE_TS_QUEUE_WK = 3, +}; + +enum { + HUGETLB_SHMFS_INODE = 1, + HUGETLB_ANONHUGE_INODE = 2, +}; + +enum { + HW_BREAKPOINT_EMPTY = 0, + HW_BREAKPOINT_R = 1, + HW_BREAKPOINT_W = 2, + HW_BREAKPOINT_RW = 3, + HW_BREAKPOINT_X = 4, + HW_BREAKPOINT_INVALID = 7, +}; + +enum { + HW_BREAKPOINT_LEN_1 = 1, + HW_BREAKPOINT_LEN_2 = 2, + HW_BREAKPOINT_LEN_3 = 3, + HW_BREAKPOINT_LEN_4 = 4, + HW_BREAKPOINT_LEN_5 = 5, + HW_BREAKPOINT_LEN_6 = 6, + HW_BREAKPOINT_LEN_7 = 7, + HW_BREAKPOINT_LEN_8 = 8, +}; + +enum { + IBM = 0, + TVP = 1, +}; + +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 { + 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 { + ICQ_EXITED = 4, + ICQ_DESTROYED = 8, +}; + +enum { + IDX_MODULE_ID = 0, + IDX_ST_OPS_COMMON_VALUE_ID = 1, +}; + +enum { + IFAL_ADDRESS = 1, + IFAL_LABEL = 2, + __IFAL_MAX = 3, +}; + +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 { + IFLA_BRIDGE_FLAGS = 0, + IFLA_BRIDGE_MODE = 1, + IFLA_BRIDGE_VLAN_INFO = 2, + IFLA_BRIDGE_VLAN_TUNNEL_INFO = 3, + IFLA_BRIDGE_MRP = 4, + IFLA_BRIDGE_CFM = 5, + IFLA_BRIDGE_MST = 6, + __IFLA_BRIDGE_MAX = 7, +}; + +enum { + IFLA_BRPORT_UNSPEC = 0, + IFLA_BRPORT_STATE = 1, + IFLA_BRPORT_PRIORITY = 2, + IFLA_BRPORT_COST = 3, + IFLA_BRPORT_MODE = 4, + IFLA_BRPORT_GUARD = 5, + IFLA_BRPORT_PROTECT = 6, + IFLA_BRPORT_FAST_LEAVE = 7, + IFLA_BRPORT_LEARNING = 8, + IFLA_BRPORT_UNICAST_FLOOD = 9, + IFLA_BRPORT_PROXYARP = 10, + IFLA_BRPORT_LEARNING_SYNC = 11, + IFLA_BRPORT_PROXYARP_WIFI = 12, + IFLA_BRPORT_ROOT_ID = 13, + IFLA_BRPORT_BRIDGE_ID = 14, + IFLA_BRPORT_DESIGNATED_PORT = 15, + IFLA_BRPORT_DESIGNATED_COST = 16, + IFLA_BRPORT_ID = 17, + IFLA_BRPORT_NO = 18, + IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19, + IFLA_BRPORT_CONFIG_PENDING = 20, + IFLA_BRPORT_MESSAGE_AGE_TIMER = 21, + IFLA_BRPORT_FORWARD_DELAY_TIMER = 22, + IFLA_BRPORT_HOLD_TIMER = 23, + IFLA_BRPORT_FLUSH = 24, + IFLA_BRPORT_MULTICAST_ROUTER = 25, + IFLA_BRPORT_PAD = 26, + IFLA_BRPORT_MCAST_FLOOD = 27, + IFLA_BRPORT_MCAST_TO_UCAST = 28, + IFLA_BRPORT_VLAN_TUNNEL = 29, + IFLA_BRPORT_BCAST_FLOOD = 30, + IFLA_BRPORT_GROUP_FWD_MASK = 31, + IFLA_BRPORT_NEIGH_SUPPRESS = 32, + IFLA_BRPORT_ISOLATED = 33, + IFLA_BRPORT_BACKUP_PORT = 34, + IFLA_BRPORT_MRP_RING_OPEN = 35, + IFLA_BRPORT_MRP_IN_OPEN = 36, + IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37, + IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38, + IFLA_BRPORT_LOCKED = 39, + IFLA_BRPORT_MAB = 40, + IFLA_BRPORT_MCAST_N_GROUPS = 41, + IFLA_BRPORT_MCAST_MAX_GROUPS = 42, + IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43, + IFLA_BRPORT_BACKUP_NHID = 44, + __IFLA_BRPORT_MAX = 45, +}; + +enum { + IFLA_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_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 { + IFLA_INET_UNSPEC = 0, + IFLA_INET_CONF = 1, + __IFLA_INET_MAX = 2, +}; + +enum { + IFLA_INFO_UNSPEC = 0, + IFLA_INFO_KIND = 1, + IFLA_INFO_DATA = 2, + IFLA_INFO_XSTATS = 3, + IFLA_INFO_SLAVE_KIND = 4, + IFLA_INFO_SLAVE_DATA = 5, + __IFLA_INFO_MAX = 6, +}; + +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_VENDOR_BREAK = 21, + IFLA_IPTUN_FAN_MAP = 33, + __IFLA_IPTUN_MAX = 34, +}; + +enum { + IFLA_MCTP_UNSPEC = 0, + IFLA_MCTP_NET = 1, + IFLA_MCTP_PHYS_BINDING = 2, + __IFLA_MCTP_MAX = 3, +}; + +enum { + IFLA_NETKIT_UNSPEC = 0, + IFLA_NETKIT_PEER_INFO = 1, + IFLA_NETKIT_PRIMARY = 2, + IFLA_NETKIT_POLICY = 3, + IFLA_NETKIT_PEER_POLICY = 4, + IFLA_NETKIT_MODE = 5, + IFLA_NETKIT_SCRUB = 6, + IFLA_NETKIT_PEER_SCRUB = 7, + IFLA_NETKIT_HEADROOM = 8, + IFLA_NETKIT_TAILROOM = 9, + __IFLA_NETKIT_MAX = 10, +}; + +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_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 { + 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 { + IFLA_PPP_UNSPEC = 0, + IFLA_PPP_DEV_FD = 1, + __IFLA_PPP_MAX = 2, +}; + +enum { + IFLA_PROTO_DOWN_REASON_UNSPEC = 0, + IFLA_PROTO_DOWN_REASON_MASK = 1, + IFLA_PROTO_DOWN_REASON_VALUE = 2, + __IFLA_PROTO_DOWN_REASON_CNT = 3, + IFLA_PROTO_DOWN_REASON_MAX = 2, +}; + +enum { + IFLA_STATS_GETSET_UNSPEC = 0, + IFLA_STATS_GET_FILTERS = 1, + IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 2, + __IFLA_STATS_GETSET_MAX = 3, +}; + +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_TUN_UNSPEC = 0, + IFLA_TUN_OWNER = 1, + IFLA_TUN_GROUP = 2, + IFLA_TUN_TYPE = 3, + IFLA_TUN_PI = 4, + IFLA_TUN_VNET_HDR = 5, + IFLA_TUN_PERSIST = 6, + IFLA_TUN_MULTI_QUEUE = 7, + IFLA_TUN_NUM_QUEUES = 8, + IFLA_TUN_NUM_DISABLED_QUEUES = 9, + __IFLA_TUN_MAX = 10, +}; + +enum { + IFLA_UNSPEC = 0, + IFLA_ADDRESS = 1, + IFLA_BROADCAST = 2, + IFLA_IFNAME = 3, + IFLA_MTU = 4, + IFLA_LINK = 5, + IFLA_QDISC = 6, + IFLA_STATS = 7, + IFLA_COST = 8, + IFLA_PRIORITY = 9, + IFLA_MASTER = 10, + IFLA_WIRELESS = 11, + IFLA_PROTINFO = 12, + IFLA_TXQLEN = 13, + IFLA_MAP = 14, + IFLA_WEIGHT = 15, + IFLA_OPERSTATE = 16, + IFLA_LINKMODE = 17, + IFLA_LINKINFO = 18, + IFLA_NET_NS_PID = 19, + IFLA_IFALIAS = 20, + IFLA_NUM_VF = 21, + IFLA_VFINFO_LIST = 22, + IFLA_STATS64 = 23, + IFLA_VF_PORTS = 24, + IFLA_PORT_SELF = 25, + IFLA_AF_SPEC = 26, + IFLA_GROUP = 27, + IFLA_NET_NS_FD = 28, + IFLA_EXT_MASK = 29, + IFLA_PROMISCUITY = 30, + IFLA_NUM_TX_QUEUES = 31, + IFLA_NUM_RX_QUEUES = 32, + IFLA_CARRIER = 33, + IFLA_PHYS_PORT_ID = 34, + IFLA_CARRIER_CHANGES = 35, + IFLA_PHYS_SWITCH_ID = 36, + IFLA_LINK_NETNSID = 37, + IFLA_PHYS_PORT_NAME = 38, + IFLA_PROTO_DOWN = 39, + IFLA_GSO_MAX_SEGS = 40, + IFLA_GSO_MAX_SIZE = 41, + IFLA_PAD = 42, + IFLA_XDP = 43, + IFLA_EVENT = 44, + IFLA_NEW_NETNSID = 45, + IFLA_IF_NETNSID = 46, + IFLA_TARGET_NETNSID = 46, + IFLA_CARRIER_UP_COUNT = 47, + IFLA_CARRIER_DOWN_COUNT = 48, + IFLA_NEW_IFINDEX = 49, + IFLA_MIN_MTU = 50, + IFLA_MAX_MTU = 51, + IFLA_PROP_LIST = 52, + IFLA_ALT_IFNAME = 53, + IFLA_PERM_ADDRESS = 54, + IFLA_PROTO_DOWN_REASON = 55, + IFLA_PARENT_DEV_NAME = 56, + IFLA_PARENT_DEV_BUS_NAME = 57, + IFLA_GRO_MAX_SIZE = 58, + IFLA_TSO_MAX_SIZE = 59, + IFLA_TSO_MAX_SEGS = 60, + IFLA_ALLMULTI = 61, + IFLA_DEVLINK_PORT = 62, + IFLA_GSO_IPV4_MAX_SIZE = 63, + IFLA_GRO_IPV4_MAX_SIZE = 64, + IFLA_DPLL_PIN = 65, + IFLA_MAX_PACING_OFFLOAD_HORIZON = 66, + __IFLA_MAX = 67, +}; + +enum { + IFLA_VF_INFO_UNSPEC = 0, + IFLA_VF_INFO = 1, + __IFLA_VF_INFO_MAX = 2, +}; + +enum { + IFLA_VF_PORT_UNSPEC = 0, + IFLA_VF_PORT = 1, + __IFLA_VF_PORT_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_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_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 { + 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, +}; + +enum { + IF_LINK_MODE_DEFAULT = 0, + IF_LINK_MODE_DORMANT = 1, + IF_LINK_MODE_TESTING = 2, +}; + +enum { + IF_OPER_UNKNOWN = 0, + IF_OPER_NOTPRESENT = 1, + IF_OPER_DOWN = 2, + IF_OPER_LOWERLAYERDOWN = 3, + IF_OPER_TESTING = 4, + IF_OPER_DORMANT = 5, + IF_OPER_UP = 6, +}; + +enum { + IF_STATE_ACTION = 0, + IF_STATE_SOURCE = 1, + IF_STATE_END = 2, +}; + +enum { + IMX_TIMER1MS = 224, + IMX_P0PHYCR = 376, + IMX_P0PHYCR_TEST_PDDQ = 1048576, + IMX_P0PHYCR_CR_READ = 524288, + IMX_P0PHYCR_CR_WRITE = 262144, + IMX_P0PHYCR_CR_CAP_DATA = 131072, + IMX_P0PHYCR_CR_CAP_ADDR = 65536, + IMX_P0PHYSR = 380, + IMX_P0PHYSR_CR_ACK = 262144, + IMX_P0PHYSR_CR_DATA_OUT = 65535, + IMX_LANE0_OUT_STAT = 8195, + IMX_LANE0_OUT_STAT_RX_PLL_STATE = 2, + IMX_CLOCK_RESET = 32575, + IMX_CLOCK_RESET_RESET = 1, + IMX8QM_SATA_AHCI_PTC = 200, + IMX8QM_SATA_AHCI_PTC_RXWM_MASK = 127, + IMX8QM_SATA_AHCI_PTC_RXWM = 41, +}; + +enum { + INBAND_CISCO_SGMII = 0, + INBAND_BASEX = 1, +}; + +enum { + INET6_IFADDR_STATE_PREDAD = 0, + INET6_IFADDR_STATE_DAD = 1, + INET6_IFADDR_STATE_POSTDAD = 2, + INET6_IFADDR_STATE_ERRDAD = 3, + INET6_IFADDR_STATE_DEAD = 4, +}; + +enum { + INET_DIAG_REQ_NONE = 0, + INET_DIAG_REQ_BYTECODE = 1, + INET_DIAG_REQ_SK_BPF_STORAGES = 2, + INET_DIAG_REQ_PROTOCOL = 3, + __INET_DIAG_REQ_MAX = 4, +}; + +enum { + INET_ECN_NOT_ECT = 0, + INET_ECN_ECT_1 = 1, + INET_ECN_ECT_0 = 2, + INET_ECN_CE = 3, + INET_ECN_MASK = 3, +}; + +enum { + INET_FLAGS_PKTINFO = 0, + INET_FLAGS_TTL = 1, + INET_FLAGS_TOS = 2, + INET_FLAGS_RECVOPTS = 3, + INET_FLAGS_RETOPTS = 4, + INET_FLAGS_PASSSEC = 5, + INET_FLAGS_ORIGDSTADDR = 6, + INET_FLAGS_CHECKSUM = 7, + INET_FLAGS_RECVFRAGSIZE = 8, + INET_FLAGS_RECVERR = 9, + INET_FLAGS_RECVERR_RFC4884 = 10, + INET_FLAGS_FREEBIND = 11, + INET_FLAGS_HDRINCL = 12, + INET_FLAGS_MC_LOOP = 13, + INET_FLAGS_MC_ALL = 14, + INET_FLAGS_TRANSPARENT = 15, + INET_FLAGS_IS_ICSK = 16, + INET_FLAGS_NODEFRAG = 17, + INET_FLAGS_BIND_ADDRESS_NO_PORT = 18, + INET_FLAGS_DEFER_CONNECT = 19, + INET_FLAGS_MC6_LOOP = 20, + INET_FLAGS_RECVERR6_RFC4884 = 21, + INET_FLAGS_MC6_ALL = 22, + INET_FLAGS_AUTOFLOWLABEL_SET = 23, + INET_FLAGS_AUTOFLOWLABEL = 24, + INET_FLAGS_DONTFRAG = 25, + INET_FLAGS_RECVERR6 = 26, + INET_FLAGS_REPFLOW = 27, + INET_FLAGS_RTALERT_ISOLATE = 28, + INET_FLAGS_SNDFLOW = 29, + INET_FLAGS_RTALERT = 30, +}; + +enum { + INET_FRAG_FIRST_IN = 1, + INET_FRAG_LAST_IN = 2, + INET_FRAG_COMPLETE = 4, + INET_FRAG_HASH_DEAD = 8, + INET_FRAG_DROP = 16, +}; + +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 { + INSN_F_FRAMENO_MASK = 7, + INSN_F_SPI_MASK = 63, + INSN_F_SPI_SHIFT = 3, + INSN_F_STACK_ACCESS = 512, + INSN_F_DST_REG_STACK = 1024, + INSN_F_SRC_REG_STACK = 2048, +}; + +enum { + INVERT = 1, + PROCESS_AND = 2, + PROCESS_OR = 4, +}; + +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, +}; + +enum { + IOAM6_IPTUNNEL_UNSPEC = 0, + IOAM6_IPTUNNEL_MODE = 1, + IOAM6_IPTUNNEL_DST = 2, + IOAM6_IPTUNNEL_TRACE = 3, + IOAM6_IPTUNNEL_FREQ_K = 4, + IOAM6_IPTUNNEL_FREQ_N = 5, + IOAM6_IPTUNNEL_SRC = 6, + __IOAM6_IPTUNNEL_MAX = 7, +}; + +enum { + IOBL_BUF_RING = 1, + IOBL_INC = 2, +}; + +enum { + IOCB_CMD_PREAD = 0, + IOCB_CMD_PWRITE = 1, + IOCB_CMD_FSYNC = 2, + IOCB_CMD_FDSYNC = 3, + IOCB_CMD_POLL = 5, + IOCB_CMD_NOOP = 6, + IOCB_CMD_PREADV = 7, + IOCB_CMD_PWRITEV = 8, +}; + +enum { + IOMMU_SET_DOMAIN_MUST_SUCCEED = 1, +}; + +enum { + IOPRIO_CLASS_NONE = 0, + IOPRIO_CLASS_RT = 1, + IOPRIO_CLASS_BE = 2, + IOPRIO_CLASS_IDLE = 3, + IOPRIO_CLASS_INVALID = 7, +}; + +enum { + IOPRIO_HINT_NONE = 0, + IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, + IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, + IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, + IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, + IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, + IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, + IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, +}; + +enum { + IOPRIO_WHO_PROCESS = 1, + IOPRIO_WHO_PGRP = 2, + IOPRIO_WHO_USER = 3, +}; + +enum { + IORES_DESC_NONE = 0, + IORES_DESC_CRASH_KERNEL = 1, + IORES_DESC_ACPI_TABLES = 2, + IORES_DESC_ACPI_NV_STORAGE = 3, + IORES_DESC_PERSISTENT_MEMORY = 4, + IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5, + IORES_DESC_DEVICE_PRIVATE_MEMORY = 6, + IORES_DESC_RESERVED = 7, + IORES_DESC_SOFT_RESERVED = 8, + IORES_DESC_CXL = 9, +}; + +enum { + IORING_MEM_REGION_REG_WAIT_ARG = 1, +}; + +enum { + IORING_MEM_REGION_TYPE_USER = 1, +}; + +enum { + IORING_REGISTER_SRC_REGISTERED = 1, + IORING_REGISTER_DST_REPLACE = 2, +}; + +enum { + IORING_REG_WAIT_TS = 1, +}; + +enum { + IORING_RSRC_FILE = 0, + IORING_RSRC_BUFFER = 1, +}; + +enum { + IOU_F_TWQ_LAZY_WAKE = 1, +}; + +enum { + IOU_OK = 0, + IOU_ISSUE_SKIP_COMPLETE = -529, + IOU_REQUEUE = -3072, + IOU_STOP_MULTISHOT = -125, +}; + +enum { + IOU_POLL_DONE = 0, + IOU_POLL_NO_ACTION = 1, + IOU_POLL_REMOVE_POLL_USE_RES = 2, + IOU_POLL_REISSUE = 3, + IOU_POLL_REQUEUE = 4, +}; + +enum { + IO_ACCT_STALLED_BIT = 0, +}; + +enum { + IO_APOLL_OK = 0, + IO_APOLL_ABORTED = 1, + IO_APOLL_READY = 2, +}; + +enum { + IO_CHECK_CQ_OVERFLOW_BIT = 0, + IO_CHECK_CQ_DROPPED_BIT = 1, +}; + +enum { + IO_EVENTFD_OP_SIGNAL_BIT = 0, +}; + +enum { + IO_REGION_F_VMAP = 1, + IO_REGION_F_USER_PROVIDED = 2, + IO_REGION_F_SINGLE_REF = 4, +}; + +enum { + IO_SQ_THREAD_SHOULD_STOP = 0, + IO_SQ_THREAD_SHOULD_PARK = 1, +}; + +enum { + IO_WORKER_F_UP = 0, + IO_WORKER_F_RUNNING = 1, + IO_WORKER_F_FREE = 2, + IO_WORKER_F_BOUND = 3, +}; + +enum { + IO_WQ_ACCT_BOUND = 0, + IO_WQ_ACCT_UNBOUND = 1, + IO_WQ_ACCT_NR = 2, +}; + +enum { + IO_WQ_BIT_EXIT = 0, +}; + +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 { + IP6MRA_CREPORT_UNSPEC = 0, + IP6MRA_CREPORT_MSGTYPE = 1, + IP6MRA_CREPORT_MIF_ID = 2, + IP6MRA_CREPORT_SRC_ADDR = 3, + IP6MRA_CREPORT_DST_ADDR = 4, + IP6MRA_CREPORT_PKT = 5, + __IP6MRA_CREPORT_MAX = 6, +}; + +enum { + IP6_FH_F_FRAG = 1, + IP6_FH_F_AUTH = 2, + IP6_FH_F_SKIP_RH = 4, +}; + +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 { + 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_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, +}; + +enum { + IPMRA_VIF_UNSPEC = 0, + IPMRA_VIF = 1, + __IPMRA_VIF_MAX = 2, +}; + +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_AGGFRAG = 144, + IPPROTO_RAW = 255, + IPPROTO_SMC = 256, + IPPROTO_MPTCP = 262, + IPPROTO_MAX = 263, +}; + +enum { + IPSTATS_MIB_NUM = 0, + IPSTATS_MIB_INPKTS = 1, + IPSTATS_MIB_INOCTETS = 2, + IPSTATS_MIB_INDELIVERS = 3, + IPSTATS_MIB_OUTFORWDATAGRAMS = 4, + IPSTATS_MIB_OUTREQUESTS = 5, + IPSTATS_MIB_OUTOCTETS = 6, + IPSTATS_MIB_INHDRERRORS = 7, + IPSTATS_MIB_INTOOBIGERRORS = 8, + IPSTATS_MIB_INNOROUTES = 9, + IPSTATS_MIB_INADDRERRORS = 10, + IPSTATS_MIB_INUNKNOWNPROTOS = 11, + IPSTATS_MIB_INTRUNCATEDPKTS = 12, + IPSTATS_MIB_INDISCARDS = 13, + IPSTATS_MIB_OUTDISCARDS = 14, + IPSTATS_MIB_OUTNOROUTES = 15, + IPSTATS_MIB_REASMTIMEOUT = 16, + IPSTATS_MIB_REASMREQDS = 17, + IPSTATS_MIB_REASMOKS = 18, + IPSTATS_MIB_REASMFAILS = 19, + IPSTATS_MIB_FRAGOKS = 20, + IPSTATS_MIB_FRAGFAILS = 21, + IPSTATS_MIB_FRAGCREATES = 22, + IPSTATS_MIB_INMCASTPKTS = 23, + IPSTATS_MIB_OUTMCASTPKTS = 24, + IPSTATS_MIB_INBCASTPKTS = 25, + IPSTATS_MIB_OUTBCASTPKTS = 26, + IPSTATS_MIB_INMCASTOCTETS = 27, + IPSTATS_MIB_OUTMCASTOCTETS = 28, + IPSTATS_MIB_INBCASTOCTETS = 29, + IPSTATS_MIB_OUTBCASTOCTETS = 30, + IPSTATS_MIB_CSUMERRORS = 31, + IPSTATS_MIB_NOECTPKTS = 32, + IPSTATS_MIB_ECT1PKTS = 33, + IPSTATS_MIB_ECT0PKTS = 34, + IPSTATS_MIB_CEPKTS = 35, + IPSTATS_MIB_REASM_OVERLAPS = 36, + IPSTATS_MIB_OUTPKTS = 37, + __IPSTATS_MIB_MAX = 38, +}; + +enum { + 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 { + 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 { + IP_TUNNEL_CSUM_BIT = 0, + IP_TUNNEL_ROUTING_BIT = 1, + IP_TUNNEL_KEY_BIT = 2, + IP_TUNNEL_SEQ_BIT = 3, + IP_TUNNEL_STRICT_BIT = 4, + IP_TUNNEL_REC_BIT = 5, + IP_TUNNEL_VERSION_BIT = 6, + IP_TUNNEL_NO_KEY_BIT = 7, + IP_TUNNEL_DONT_FRAGMENT_BIT = 8, + IP_TUNNEL_OAM_BIT = 9, + IP_TUNNEL_CRIT_OPT_BIT = 10, + IP_TUNNEL_GENEVE_OPT_BIT = 11, + IP_TUNNEL_VXLAN_OPT_BIT = 12, + IP_TUNNEL_NOCACHE_BIT = 13, + IP_TUNNEL_ERSPAN_OPT_BIT = 14, + IP_TUNNEL_GTP_OPT_BIT = 15, + IP_TUNNEL_VTI_BIT = 16, + IP_TUNNEL_SIT_ISATAP_BIT = 16, + IP_TUNNEL_PFCP_OPT_BIT = 17, + __IP_TUNNEL_FLAG_NUM = 18, +}; + +enum { + IRQCHIP_FWNODE_REAL = 0, + IRQCHIP_FWNODE_NAMED = 1, + IRQCHIP_FWNODE_NAMED_ID = 2, +}; + +enum { + IRQCHIP_SET_TYPE_MASKED = 1, + IRQCHIP_EOI_IF_HANDLED = 2, + IRQCHIP_MASK_ON_SUSPEND = 4, + IRQCHIP_ONOFFLINE_ENABLED = 8, + IRQCHIP_SKIP_SET_WAKE = 16, + IRQCHIP_ONESHOT_SAFE = 32, + IRQCHIP_EOI_THREADED = 64, + IRQCHIP_SUPPORTS_LEVEL_MSI = 128, + IRQCHIP_SUPPORTS_NMI = 256, + IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, + IRQCHIP_AFFINITY_PRE_STARTUP = 1024, + IRQCHIP_IMMUTABLE = 2048, + IRQCHIP_MOVE_DEFERRED = 4096, +}; + +enum { + IRQC_IS_HARDIRQ = 0, + IRQC_IS_NESTED = 1, +}; + +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_IRQ_DISABLED = 65536, + IRQD_IRQ_MASKED = 131072, + IRQD_IRQ_INPROGRESS = 262144, + IRQD_WAKEUP_ARMED = 524288, + IRQD_FORWARDED_TO_VCPU = 1048576, + IRQD_AFFINITY_MANAGED = 2097152, + IRQD_IRQ_STARTED = 4194304, + IRQD_MANAGED_SHUTDOWN = 8388608, + IRQD_SINGLE_TARGET = 16777216, + IRQD_DEFAULT_TRIGGER_SET = 33554432, + IRQD_CAN_RESERVE = 67108864, + IRQD_HANDLE_ENFORCE_IRQCTX = 134217728, + IRQD_AFFINITY_ON_ACTIVATE = 268435456, + IRQD_IRQ_ENABLED_ON_SUSPEND = 536870912, + IRQD_RESEND_WHEN_IN_PROGRESS = 1073741824, +}; + +enum { + IRQS_AUTODETECT = 1, + IRQS_SPURIOUS_DISABLED = 2, + IRQS_POLL_INPROGRESS = 8, + IRQS_ONESHOT = 32, + IRQS_REPLAY = 64, + IRQS_WAITING = 128, + IRQS_PENDING = 512, + IRQS_SUSPENDED = 2048, + IRQS_TIMINGS = 4096, + IRQS_NMI = 8192, + IRQS_SYSFS = 16384, +}; + +enum { + IRQTF_RUNTHREAD = 0, + IRQTF_WARNED = 1, + IRQTF_AFFINITY = 2, + IRQTF_FORCED_THREAD = 3, + IRQTF_READY = 4, +}; + +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_DESTROY_GC = 1024, + IRQ_DOMAIN_FLAG_NONCORE = 65536, +}; + +enum { + IRQ_POLL_F_SCHED = 0, + IRQ_POLL_F_DISABLE = 1, +}; + +enum { + IRQ_SET_MASK_OK = 0, + IRQ_SET_MASK_OK_NOCOPY = 1, + IRQ_SET_MASK_OK_DONE = 2, +}; + +enum { + IRQ_STARTUP_NORMAL = 0, + IRQ_STARTUP_MANAGED = 1, + IRQ_STARTUP_ABORT = 2, +}; + +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_NESTED_THREAD = 32768, + IRQ_NOTHREAD = 65536, + IRQ_PER_CPU_DEVID = 131072, + IRQ_IS_POLLED = 262144, + IRQ_DISABLE_UNLAZY = 524288, + IRQ_HIDDEN = 1048576, + IRQ_NO_DEBUG = 2097152, +}; + +enum { + I_DATA_SEM_NORMAL = 0, + I_DATA_SEM_OTHER = 1, + I_DATA_SEM_QUOTA = 2, + I_DATA_SEM_EA = 3, +}; + +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 { + KBUF_MODE_EXPAND = 1, + KBUF_MODE_FREE = 2, +}; + +enum { + KDB_NOT_INITIALIZED = 0, + KDB_INIT_EARLY = 1, + KDB_INIT_FULL = 2, +}; + +enum { + KERNEL_PARAM_FL_UNSAFE = 1, + KERNEL_PARAM_FL_HWPARAM = 2, +}; + +enum { + KERNEL_PARAM_OPS_FL_NOARG = 1, +}; + +enum { + KF_ARG_DYNPTR_ID = 0, + KF_ARG_LIST_HEAD_ID = 1, + KF_ARG_LIST_NODE_ID = 2, + KF_ARG_RB_ROOT_ID = 3, + KF_ARG_RB_NODE_ID = 4, + KF_ARG_WORKQUEUE_ID = 5, +}; + +enum { + KTW_FREEZABLE = 1, +}; + +enum { + KVM_REG_ARM_STD_BIT_TRNG_V1_0 = 0, + KVM_REG_ARM_STD_BMAP_BIT_COUNT = 1, +}; + +enum { + KVM_REG_ARM_STD_HYP_BIT_PV_TIME = 0, + KVM_REG_ARM_STD_HYP_BMAP_BIT_COUNT = 1, +}; + +enum { + KVM_REG_ARM_VENDOR_HYP_BIT_FUNC_FEAT = 0, + KVM_REG_ARM_VENDOR_HYP_BIT_PTP = 1, + KVM_REG_ARM_VENDOR_HYP_BMAP_BIT_COUNT = 2, +}; + +enum { + LAST_NORM = 0, + LAST_ROOT = 1, + LAST_DOT = 2, + LAST_DOTDOT = 3, +}; + +enum { + LAT_OK = 1, + LAT_UNKNOWN = 2, + LAT_UNKNOWN_WRITES = 3, + LAT_EXCEEDED = 4, +}; + +enum { + LCOEF_RPAGE = 0, + LCOEF_RSEQIO = 1, + LCOEF_RRANDIO = 2, + LCOEF_WPAGE = 3, + LCOEF_WSEQIO = 4, + LCOEF_WRANDIO = 5, + NR_LCOEFS = 6, +}; + +enum { + LIBATA_MAX_PRD = 128, + LIBATA_DUMB_MAX_PRD = 64, + ATA_DEF_QUEUE = 1, + ATA_MAX_QUEUE = 32, + ATA_TAG_INTERNAL = 32, + ATA_SHORT_PAUSE = 16, + ATAPI_MAX_DRAIN = 16384, + ATA_ALL_DEVICES = 3, + ATA_SHT_EMULATED = 1, + ATA_SHT_THIS_ID = -1, + ATA_TFLAG_LBA48 = 1, + ATA_TFLAG_ISADDR = 2, + ATA_TFLAG_DEVICE = 4, + ATA_TFLAG_WRITE = 8, + ATA_TFLAG_LBA = 16, + ATA_TFLAG_FUA = 32, + ATA_TFLAG_POLLING = 64, + ATA_DFLAG_LBA = 1, + ATA_DFLAG_LBA48 = 2, + ATA_DFLAG_CDB_INTR = 4, + ATA_DFLAG_NCQ = 8, + ATA_DFLAG_FLUSH_EXT = 16, + ATA_DFLAG_ACPI_PENDING = 32, + ATA_DFLAG_ACPI_FAILED = 64, + ATA_DFLAG_AN = 128, + ATA_DFLAG_TRUSTED = 256, + ATA_DFLAG_FUA = 512, + ATA_DFLAG_DMADIR = 1024, + ATA_DFLAG_NCQ_SEND_RECV = 2048, + ATA_DFLAG_NCQ_PRIO = 4096, + ATA_DFLAG_CDL = 8192, + ATA_DFLAG_CFG_MASK = 16383, + ATA_DFLAG_PIO = 16384, + ATA_DFLAG_NCQ_OFF = 32768, + ATA_DFLAG_SLEEPING = 65536, + ATA_DFLAG_DUBIOUS_XFER = 131072, + ATA_DFLAG_NO_UNLOAD = 262144, + ATA_DFLAG_UNLOCK_HPA = 524288, + ATA_DFLAG_INIT_MASK = 1048575, + ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, + ATA_DFLAG_CDL_ENABLED = 2097152, + ATA_DFLAG_RESUMING = 4194304, + ATA_DFLAG_DETACH = 16777216, + ATA_DFLAG_DETACHED = 33554432, + ATA_DFLAG_DA = 67108864, + ATA_DFLAG_DEVSLP = 134217728, + ATA_DFLAG_ACPI_DISABLED = 268435456, + ATA_DFLAG_D_SENSE = 536870912, + ATA_DFLAG_ZAC = 1073741824, + ATA_DFLAG_FEATURES_MASK = 201341696, + ATA_DEV_UNKNOWN = 0, + ATA_DEV_ATA = 1, + ATA_DEV_ATA_UNSUP = 2, + ATA_DEV_ATAPI = 3, + ATA_DEV_ATAPI_UNSUP = 4, + ATA_DEV_PMP = 5, + ATA_DEV_PMP_UNSUP = 6, + ATA_DEV_SEMB = 7, + ATA_DEV_SEMB_UNSUP = 8, + ATA_DEV_ZAC = 9, + ATA_DEV_ZAC_UNSUP = 10, + ATA_DEV_NONE = 11, + ATA_LFLAG_NO_HRST = 2, + ATA_LFLAG_NO_SRST = 4, + ATA_LFLAG_ASSUME_ATA = 8, + ATA_LFLAG_ASSUME_SEMB = 16, + ATA_LFLAG_ASSUME_CLASS = 24, + ATA_LFLAG_NO_RETRY = 32, + ATA_LFLAG_DISABLED = 64, + ATA_LFLAG_SW_ACTIVITY = 128, + ATA_LFLAG_NO_LPM = 256, + ATA_LFLAG_RST_ONCE = 512, + ATA_LFLAG_CHANGED = 1024, + ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, + ATA_FLAG_SLAVE_POSS = 1, + ATA_FLAG_SATA = 2, + ATA_FLAG_NO_LPM = 4, + ATA_FLAG_NO_LOG_PAGE = 32, + ATA_FLAG_NO_ATAPI = 64, + ATA_FLAG_PIO_DMA = 128, + ATA_FLAG_PIO_LBA48 = 256, + ATA_FLAG_PIO_POLLING = 512, + ATA_FLAG_NCQ = 1024, + ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, + ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, + ATA_FLAG_DEBUGMSG = 8192, + ATA_FLAG_FPDMA_AA = 16384, + ATA_FLAG_IGN_SIMPLEX = 32768, + ATA_FLAG_NO_IORDY = 65536, + ATA_FLAG_ACPI_SATA = 131072, + ATA_FLAG_AN = 262144, + ATA_FLAG_PMP = 524288, + ATA_FLAG_FPDMA_AUX = 1048576, + ATA_FLAG_EM = 2097152, + ATA_FLAG_SW_ACTIVITY = 4194304, + ATA_FLAG_NO_DIPM = 8388608, + ATA_FLAG_SAS_HOST = 16777216, + ATA_PFLAG_EH_PENDING = 1, + ATA_PFLAG_EH_IN_PROGRESS = 2, + ATA_PFLAG_FROZEN = 4, + ATA_PFLAG_RECOVERED = 8, + ATA_PFLAG_LOADING = 16, + ATA_PFLAG_SCSI_HOTPLUG = 64, + ATA_PFLAG_INITIALIZING = 128, + ATA_PFLAG_RESETTING = 256, + ATA_PFLAG_UNLOADING = 512, + ATA_PFLAG_UNLOADED = 1024, + ATA_PFLAG_RESUMING = 65536, + ATA_PFLAG_SUSPENDED = 131072, + ATA_PFLAG_PM_PENDING = 262144, + ATA_PFLAG_INIT_GTM_VALID = 524288, + ATA_PFLAG_PIO32 = 1048576, + ATA_PFLAG_PIO32CHANGE = 2097152, + ATA_PFLAG_EXTERNAL = 4194304, + ATA_QCFLAG_ACTIVE = 1, + ATA_QCFLAG_DMAMAP = 2, + ATA_QCFLAG_RTF_FILLED = 4, + ATA_QCFLAG_IO = 8, + ATA_QCFLAG_RESULT_TF = 16, + ATA_QCFLAG_CLEAR_EXCL = 32, + ATA_QCFLAG_QUIET = 64, + ATA_QCFLAG_RETRY = 128, + ATA_QCFLAG_HAS_CDL = 256, + ATA_QCFLAG_EH = 65536, + ATA_QCFLAG_SENSE_VALID = 131072, + ATA_QCFLAG_EH_SCHEDULED = 262144, + ATA_QCFLAG_EH_SUCCESS_CMD = 524288, + ATA_HOST_SIMPLEX = 1, + ATA_HOST_STARTED = 2, + ATA_HOST_PARALLEL_SCAN = 4, + ATA_HOST_IGNORE_ATA = 8, + ATA_HOST_NO_PART = 16, + ATA_HOST_NO_SSC = 32, + ATA_HOST_NO_DEVSLP = 64, + ATA_TMOUT_INTERNAL_QUICK = 5000, + ATA_TMOUT_MAX_PARK = 30000, + ATA_TMOUT_FF_WAIT_LONG = 2000, + ATA_TMOUT_FF_WAIT = 800, + ATA_WAIT_AFTER_RESET = 150, + ATA_TMOUT_PMP_SRST_WAIT = 10000, + ATA_TMOUT_SPURIOUS_PHY = 10000, + BUS_UNKNOWN = 0, + BUS_DMA = 1, + BUS_IDLE = 2, + BUS_NOINTR = 3, + BUS_NODATA = 4, + BUS_TIMER = 5, + BUS_PIO = 6, + BUS_EDD = 7, + BUS_IDENTIFY = 8, + BUS_PACKET = 9, + PORT_UNKNOWN = 0, + PORT_ENABLED = 1, + PORT_DISABLED = 2, + ATA_NR_PIO_MODES = 7, + ATA_NR_MWDMA_MODES = 5, + ATA_NR_UDMA_MODES = 8, + ATA_SHIFT_PIO = 0, + ATA_SHIFT_MWDMA = 7, + ATA_SHIFT_UDMA = 12, + ATA_SHIFT_PRIO = 6, + ATA_PRIO_HIGH = 2, + ATA_DMA_PAD_SZ = 4, + ATA_ERING_SIZE = 32, + ATA_DEFER_LINK = 1, + ATA_DEFER_PORT = 2, + ATA_EH_DESC_LEN = 80, + ATA_EH_REVALIDATE = 1, + ATA_EH_SOFTRESET = 2, + ATA_EH_HARDRESET = 4, + ATA_EH_RESET = 6, + ATA_EH_ENABLE_LINK = 8, + ATA_EH_PARK = 32, + ATA_EH_GET_SUCCESS_SENSE = 64, + ATA_EH_SET_ACTIVE = 128, + ATA_EH_PERDEV_MASK = 225, + ATA_EH_ALL_ACTIONS = 15, + ATA_EHI_HOTPLUGGED = 1, + ATA_EHI_NO_AUTOPSY = 4, + ATA_EHI_QUIET = 8, + ATA_EHI_NO_RECOVERY = 16, + ATA_EHI_DID_SOFTRESET = 65536, + ATA_EHI_DID_HARDRESET = 131072, + ATA_EHI_PRINTINFO = 262144, + ATA_EHI_SETMODE = 524288, + ATA_EHI_POST_SETMODE = 1048576, + ATA_EHI_DID_PRINT_QUIRKS = 2097152, + ATA_EHI_DID_RESET = 196608, + ATA_EHI_TO_SLAVE_MASK = 12, + ATA_EH_MAX_TRIES = 5, + ATA_LINK_RESUME_TRIES = 5, + ATA_EH_DEV_TRIES = 3, + ATA_EH_PMP_TRIES = 5, + ATA_EH_PMP_LINK_TRIES = 3, + SATA_PMP_RW_TIMEOUT = 3000, + ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 8, + ATA_QUIRK_DIAGNOSTIC = 1, + ATA_QUIRK_NODMA = 2, + ATA_QUIRK_NONCQ = 4, + ATA_QUIRK_MAX_SEC_128 = 8, + ATA_QUIRK_BROKEN_HPA = 16, + ATA_QUIRK_DISABLE = 32, + ATA_QUIRK_HPA_SIZE = 64, + ATA_QUIRK_IVB = 128, + ATA_QUIRK_STUCK_ERR = 256, + ATA_QUIRK_BRIDGE_OK = 512, + ATA_QUIRK_ATAPI_MOD16_DMA = 1024, + ATA_QUIRK_FIRMWARE_WARN = 2048, + ATA_QUIRK_1_5_GBPS = 4096, + ATA_QUIRK_NOSETXFER = 8192, + ATA_QUIRK_BROKEN_FPDMA_AA = 16384, + ATA_QUIRK_DUMP_ID = 32768, + ATA_QUIRK_MAX_SEC_LBA48 = 65536, + ATA_QUIRK_ATAPI_DMADIR = 131072, + ATA_QUIRK_NO_NCQ_TRIM = 262144, + ATA_QUIRK_NOLPM = 524288, + ATA_QUIRK_WD_BROKEN_LPM = 1048576, + ATA_QUIRK_ZERO_AFTER_TRIM = 2097152, + ATA_QUIRK_NO_DMA_LOG = 4194304, + ATA_QUIRK_NOTRIM = 8388608, + ATA_QUIRK_MAX_SEC_1024 = 16777216, + ATA_QUIRK_MAX_TRIM_128M = 33554432, + ATA_QUIRK_NO_NCQ_ON_ATI = 67108864, + ATA_QUIRK_NO_LPM_ON_ATI = 134217728, + ATA_QUIRK_NO_ID_DEV_LOG = 268435456, + ATA_QUIRK_NO_LOG_DIR = 536870912, + ATA_QUIRK_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 { + 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_TSECRREJECTED = 16, + LINUX_MIB_PAWS_OLD_ACK = 17, + LINUX_MIB_DELAYEDACKS = 18, + LINUX_MIB_DELAYEDACKLOCKED = 19, + LINUX_MIB_DELAYEDACKLOST = 20, + LINUX_MIB_LISTENOVERFLOWS = 21, + LINUX_MIB_LISTENDROPS = 22, + LINUX_MIB_TCPHPHITS = 23, + LINUX_MIB_TCPPUREACKS = 24, + LINUX_MIB_TCPHPACKS = 25, + LINUX_MIB_TCPRENORECOVERY = 26, + LINUX_MIB_TCPSACKRECOVERY = 27, + LINUX_MIB_TCPSACKRENEGING = 28, + LINUX_MIB_TCPSACKREORDER = 29, + LINUX_MIB_TCPRENOREORDER = 30, + LINUX_MIB_TCPTSREORDER = 31, + LINUX_MIB_TCPFULLUNDO = 32, + LINUX_MIB_TCPPARTIALUNDO = 33, + LINUX_MIB_TCPDSACKUNDO = 34, + LINUX_MIB_TCPLOSSUNDO = 35, + LINUX_MIB_TCPLOSTRETRANSMIT = 36, + LINUX_MIB_TCPRENOFAILURES = 37, + LINUX_MIB_TCPSACKFAILURES = 38, + LINUX_MIB_TCPLOSSFAILURES = 39, + LINUX_MIB_TCPFASTRETRANS = 40, + LINUX_MIB_TCPSLOWSTARTRETRANS = 41, + LINUX_MIB_TCPTIMEOUTS = 42, + LINUX_MIB_TCPLOSSPROBES = 43, + LINUX_MIB_TCPLOSSPROBERECOVERY = 44, + LINUX_MIB_TCPRENORECOVERYFAIL = 45, + LINUX_MIB_TCPSACKRECOVERYFAIL = 46, + LINUX_MIB_TCPRCVCOLLAPSED = 47, + LINUX_MIB_TCPDSACKOLDSENT = 48, + LINUX_MIB_TCPDSACKOFOSENT = 49, + LINUX_MIB_TCPDSACKRECV = 50, + LINUX_MIB_TCPDSACKOFORECV = 51, + LINUX_MIB_TCPABORTONDATA = 52, + LINUX_MIB_TCPABORTONCLOSE = 53, + LINUX_MIB_TCPABORTONMEMORY = 54, + LINUX_MIB_TCPABORTONTIMEOUT = 55, + LINUX_MIB_TCPABORTONLINGER = 56, + LINUX_MIB_TCPABORTFAILED = 57, + LINUX_MIB_TCPMEMORYPRESSURES = 58, + LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 59, + LINUX_MIB_TCPSACKDISCARD = 60, + LINUX_MIB_TCPDSACKIGNOREDOLD = 61, + LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 62, + LINUX_MIB_TCPSPURIOUSRTOS = 63, + LINUX_MIB_TCPMD5NOTFOUND = 64, + LINUX_MIB_TCPMD5UNEXPECTED = 65, + LINUX_MIB_TCPMD5FAILURE = 66, + LINUX_MIB_SACKSHIFTED = 67, + LINUX_MIB_SACKMERGED = 68, + LINUX_MIB_SACKSHIFTFALLBACK = 69, + LINUX_MIB_TCPBACKLOGDROP = 70, + LINUX_MIB_PFMEMALLOCDROP = 71, + LINUX_MIB_TCPMINTTLDROP = 72, + LINUX_MIB_TCPDEFERACCEPTDROP = 73, + LINUX_MIB_IPRPFILTER = 74, + LINUX_MIB_TCPTIMEWAITOVERFLOW = 75, + LINUX_MIB_TCPREQQFULLDOCOOKIES = 76, + LINUX_MIB_TCPREQQFULLDROP = 77, + LINUX_MIB_TCPRETRANSFAIL = 78, + LINUX_MIB_TCPRCVCOALESCE = 79, + LINUX_MIB_TCPBACKLOGCOALESCE = 80, + LINUX_MIB_TCPOFOQUEUE = 81, + LINUX_MIB_TCPOFODROP = 82, + LINUX_MIB_TCPOFOMERGE = 83, + LINUX_MIB_TCPCHALLENGEACK = 84, + LINUX_MIB_TCPSYNCHALLENGE = 85, + LINUX_MIB_TCPFASTOPENACTIVE = 86, + LINUX_MIB_TCPFASTOPENACTIVEFAIL = 87, + LINUX_MIB_TCPFASTOPENPASSIVE = 88, + LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 89, + LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 90, + LINUX_MIB_TCPFASTOPENCOOKIEREQD = 91, + LINUX_MIB_TCPFASTOPENBLACKHOLE = 92, + LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 93, + LINUX_MIB_BUSYPOLLRXPACKETS = 94, + LINUX_MIB_TCPAUTOCORKING = 95, + LINUX_MIB_TCPFROMZEROWINDOWADV = 96, + LINUX_MIB_TCPTOZEROWINDOWADV = 97, + LINUX_MIB_TCPWANTZEROWINDOWADV = 98, + LINUX_MIB_TCPSYNRETRANS = 99, + LINUX_MIB_TCPORIGDATASENT = 100, + LINUX_MIB_TCPHYSTARTTRAINDETECT = 101, + LINUX_MIB_TCPHYSTARTTRAINCWND = 102, + LINUX_MIB_TCPHYSTARTDELAYDETECT = 103, + LINUX_MIB_TCPHYSTARTDELAYCWND = 104, + LINUX_MIB_TCPACKSKIPPEDSYNRECV = 105, + LINUX_MIB_TCPACKSKIPPEDPAWS = 106, + LINUX_MIB_TCPACKSKIPPEDSEQ = 107, + LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 108, + LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 109, + LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 110, + LINUX_MIB_TCPWINPROBE = 111, + LINUX_MIB_TCPKEEPALIVE = 112, + LINUX_MIB_TCPMTUPFAIL = 113, + LINUX_MIB_TCPMTUPSUCCESS = 114, + LINUX_MIB_TCPDELIVERED = 115, + LINUX_MIB_TCPDELIVEREDCE = 116, + LINUX_MIB_TCPACKCOMPRESSED = 117, + LINUX_MIB_TCPZEROWINDOWDROP = 118, + LINUX_MIB_TCPRCVQDROP = 119, + LINUX_MIB_TCPWQUEUETOOBIG = 120, + LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 121, + LINUX_MIB_TCPTIMEOUTREHASH = 122, + LINUX_MIB_TCPDUPLICATEDATAREHASH = 123, + LINUX_MIB_TCPDSACKRECVSEGS = 124, + LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 125, + LINUX_MIB_TCPMIGRATEREQSUCCESS = 126, + LINUX_MIB_TCPMIGRATEREQFAILURE = 127, + LINUX_MIB_TCPPLBREHASH = 128, + LINUX_MIB_TCPAOREQUIRED = 129, + LINUX_MIB_TCPAOBAD = 130, + LINUX_MIB_TCPAOKEYNOTFOUND = 131, + LINUX_MIB_TCPAOGOOD = 132, + LINUX_MIB_TCPAODROPPEDICMPS = 133, + __LINUX_MIB_MAX = 134, +}; + +enum { + LINUX_MIB_TLSNUM = 0, + LINUX_MIB_TLSCURRTXSW = 1, + LINUX_MIB_TLSCURRRXSW = 2, + LINUX_MIB_TLSCURRTXDEVICE = 3, + LINUX_MIB_TLSCURRRXDEVICE = 4, + LINUX_MIB_TLSTXSW = 5, + LINUX_MIB_TLSRXSW = 6, + LINUX_MIB_TLSTXDEVICE = 7, + LINUX_MIB_TLSRXDEVICE = 8, + LINUX_MIB_TLSDECRYPTERROR = 9, + LINUX_MIB_TLSRXDEVICERESYNC = 10, + LINUX_MIB_TLSDECRYPTRETRY = 11, + LINUX_MIB_TLSRXNOPADVIOL = 12, + LINUX_MIB_TLSRXREKEYOK = 13, + LINUX_MIB_TLSRXREKEYERROR = 14, + LINUX_MIB_TLSTXREKEYOK = 15, + LINUX_MIB_TLSTXREKEYERROR = 16, + LINUX_MIB_TLSRXREKEYRECEIVED = 17, + __LINUX_MIB_TLSMAX = 18, +}; + +enum { + LINUX_MIB_XFRMNUM = 0, + LINUX_MIB_XFRMINERROR = 1, + LINUX_MIB_XFRMINBUFFERERROR = 2, + LINUX_MIB_XFRMINHDRERROR = 3, + LINUX_MIB_XFRMINNOSTATES = 4, + LINUX_MIB_XFRMINSTATEPROTOERROR = 5, + LINUX_MIB_XFRMINSTATEMODEERROR = 6, + LINUX_MIB_XFRMINSTATESEQERROR = 7, + LINUX_MIB_XFRMINSTATEEXPIRED = 8, + LINUX_MIB_XFRMINSTATEMISMATCH = 9, + LINUX_MIB_XFRMINSTATEINVALID = 10, + LINUX_MIB_XFRMINTMPLMISMATCH = 11, + LINUX_MIB_XFRMINNOPOLS = 12, + LINUX_MIB_XFRMINPOLBLOCK = 13, + LINUX_MIB_XFRMINPOLERROR = 14, + LINUX_MIB_XFRMOUTERROR = 15, + LINUX_MIB_XFRMOUTBUNDLEGENERROR = 16, + LINUX_MIB_XFRMOUTBUNDLECHECKERROR = 17, + LINUX_MIB_XFRMOUTNOSTATES = 18, + LINUX_MIB_XFRMOUTSTATEPROTOERROR = 19, + LINUX_MIB_XFRMOUTSTATEMODEERROR = 20, + LINUX_MIB_XFRMOUTSTATESEQERROR = 21, + LINUX_MIB_XFRMOUTSTATEEXPIRED = 22, + LINUX_MIB_XFRMOUTPOLBLOCK = 23, + LINUX_MIB_XFRMOUTPOLDEAD = 24, + LINUX_MIB_XFRMOUTPOLERROR = 25, + LINUX_MIB_XFRMFWDHDRERROR = 26, + LINUX_MIB_XFRMOUTSTATEINVALID = 27, + LINUX_MIB_XFRMACQUIREERROR = 28, + LINUX_MIB_XFRMOUTSTATEDIRERROR = 29, + LINUX_MIB_XFRMINSTATEDIRERROR = 30, + LINUX_MIB_XFRMINIPTFSERROR = 31, + LINUX_MIB_XFRMOUTNOQSPACE = 32, + __LINUX_MIB_XFRMMAX = 33, +}; + +enum { + LINUX_RAID_PARTITION = 253, +}; + +enum { + LOGIC_PIO_INDIRECT = 0, + LOGIC_PIO_CPU_MMIO = 1, +}; + +enum { + LO_FLAGS_READ_ONLY = 1, + LO_FLAGS_AUTOCLEAR = 4, + LO_FLAGS_PARTSCAN = 8, + LO_FLAGS_DIRECT_IO = 16, +}; + +enum { + LRU_GEN_ANON = 0, + LRU_GEN_FILE = 1, +}; + +enum { + LRU_GEN_CORE = 0, + LRU_GEN_MM_WALK = 1, + LRU_GEN_NONLEAF_YOUNG = 2, + NR_LRU_GEN_CAPS = 3, +}; + +enum { + LSB = 0, + CSB = 1, + MSB = 2, +}; + +enum { + LTSSM_DETECT_QUIET = 0, + LTSSM_DETECT_ACTIVE = 1, + LTSSM_POLLING_ACTIVE = 2, + LTSSM_POLLING_COMPLIANCE = 3, + LTSSM_POLLING_CONFIGURATION = 4, + LTSSM_CONFIG_LINKWIDTH_START = 5, + LTSSM_CONFIG_LINKWIDTH_ACCEPT = 6, + LTSSM_CONFIG_LANENUM_ACCEPT = 7, + LTSSM_CONFIG_LANENUM_WAIT = 8, + LTSSM_CONFIG_COMPLETE = 9, + LTSSM_CONFIG_IDLE = 10, + LTSSM_RECOVERY_RCVR_LOCK = 11, + LTSSM_RECOVERY_SPEED = 12, + LTSSM_RECOVERY_RCVR_CFG = 13, + LTSSM_RECOVERY_IDLE = 14, + LTSSM_L0 = 16, + LTSSM_RX_L0S_ENTRY = 17, + LTSSM_RX_L0S_IDLE = 18, + LTSSM_RX_L0S_FTS = 19, + LTSSM_TX_L0S_ENTRY = 20, + LTSSM_TX_L0S_IDLE = 21, + LTSSM_TX_L0S_FTS = 22, + LTSSM_L1_ENTRY = 23, + LTSSM_L1_IDLE = 24, + LTSSM_L2_IDLE = 25, + LTSSM_L2_TRANSMIT_WAKE = 26, + LTSSM_DISABLED = 32, + LTSSM_LOOPBACK_ENTRY_MASTER = 33, + LTSSM_LOOPBACK_ACTIVE_MASTER = 34, + LTSSM_LOOPBACK_EXIT_MASTER = 35, + LTSSM_LOOPBACK_ENTRY_SLAVE = 36, + LTSSM_LOOPBACK_ACTIVE_SLAVE = 37, + LTSSM_LOOPBACK_EXIT_SLAVE = 38, + LTSSM_HOT_RESET = 39, + LTSSM_RECOVERY_EQUALIZATION_PHASE0 = 40, + LTSSM_RECOVERY_EQUALIZATION_PHASE1 = 41, + LTSSM_RECOVERY_EQUALIZATION_PHASE2 = 42, + LTSSM_RECOVERY_EQUALIZATION_PHASE3 = 43, +}; + +enum { + 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_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_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_XMIT_DONE = 0, + LWTUNNEL_XMIT_CONTINUE = 256, +}; + +enum { + LWT_BPF_PROG_UNSPEC = 0, + LWT_BPF_PROG_FD = 1, + LWT_BPF_PROG_NAME = 2, + __LWT_BPF_PROG_MAX = 3, +}; + +enum { + LWT_BPF_UNSPEC = 0, + LWT_BPF_IN = 1, + LWT_BPF_OUT = 2, + LWT_BPF_XMIT = 3, + LWT_BPF_XMIT_HEADROOM = 4, + __LWT_BPF_MAX = 5, +}; + +enum { + Lo_unbound = 0, + Lo_bound = 1, + Lo_rundown = 2, + Lo_deleting = 3, +}; + +enum { + MATCH_MTR = 0, + MATCH_MEQ = 1, + MATCH_MLE = 2, + MATCH_MLT = 3, + MATCH_MGE = 4, + MATCH_MGT = 5, +}; + +enum { + MAX77620_IRQ_TOP_GLBL = 0, + MAX77620_IRQ_TOP_SD = 1, + MAX77620_IRQ_TOP_LDO = 2, + MAX77620_IRQ_TOP_GPIO = 3, + MAX77620_IRQ_TOP_RTC = 4, + MAX77620_IRQ_TOP_32K = 5, + MAX77620_IRQ_TOP_ONOFF = 6, + MAX77620_IRQ_LBT_MBATLOW = 7, + MAX77620_IRQ_LBT_TJALRM1 = 8, + MAX77620_IRQ_LBT_TJALRM2 = 9, +}; + +enum { + MAX8925_IRQ_VCHG_DC_OVP = 0, + MAX8925_IRQ_VCHG_DC_F = 1, + MAX8925_IRQ_VCHG_DC_R = 2, + MAX8925_IRQ_VCHG_THM_OK_R = 3, + MAX8925_IRQ_VCHG_THM_OK_F = 4, + MAX8925_IRQ_VCHG_SYSLOW_F = 5, + MAX8925_IRQ_VCHG_SYSLOW_R = 6, + MAX8925_IRQ_VCHG_RST = 7, + MAX8925_IRQ_VCHG_DONE = 8, + MAX8925_IRQ_VCHG_TOPOFF = 9, + MAX8925_IRQ_VCHG_TMR_FAULT = 10, + MAX8925_IRQ_GPM_RSTIN = 11, + MAX8925_IRQ_GPM_MPL = 12, + MAX8925_IRQ_GPM_SW_3SEC = 13, + MAX8925_IRQ_GPM_EXTON_F = 14, + MAX8925_IRQ_GPM_EXTON_R = 15, + MAX8925_IRQ_GPM_SW_1SEC = 16, + MAX8925_IRQ_GPM_SW_F = 17, + MAX8925_IRQ_GPM_SW_R = 18, + MAX8925_IRQ_GPM_SYSCKEN_F = 19, + MAX8925_IRQ_GPM_SYSCKEN_R = 20, + MAX8925_IRQ_RTC_ALARM1 = 21, + MAX8925_IRQ_RTC_ALARM0 = 22, + MAX8925_IRQ_TSC_STICK = 23, + MAX8925_IRQ_TSC_NSTICK = 24, + MAX8925_NR_IRQS = 25, +}; + +enum { + MAX8998_IRQ_DCINF = 0, + MAX8998_IRQ_DCINR = 1, + MAX8998_IRQ_JIGF = 2, + MAX8998_IRQ_JIGR = 3, + MAX8998_IRQ_PWRONF = 4, + MAX8998_IRQ_PWRONR = 5, + MAX8998_IRQ_WTSREVNT = 6, + MAX8998_IRQ_SMPLEVNT = 7, + MAX8998_IRQ_ALARM1 = 8, + MAX8998_IRQ_ALARM0 = 9, + MAX8998_IRQ_ONKEY1S = 10, + MAX8998_IRQ_TOPOFFR = 11, + MAX8998_IRQ_DCINOVPR = 12, + MAX8998_IRQ_CHGRSTF = 13, + MAX8998_IRQ_DONER = 14, + MAX8998_IRQ_CHGFAULT = 15, + MAX8998_IRQ_LOBAT1 = 16, + MAX8998_IRQ_LOBAT2 = 17, + MAX8998_IRQ_NR = 18, +}; + +enum { + MAX8998_REG_IRQ1 = 0, + MAX8998_REG_IRQ2 = 1, + MAX8998_REG_IRQ3 = 2, + MAX8998_REG_IRQ4 = 3, + MAX8998_REG_IRQM1 = 4, + MAX8998_REG_IRQM2 = 5, + MAX8998_REG_IRQM3 = 6, + MAX8998_REG_IRQM4 = 7, + MAX8998_REG_STATUS1 = 8, + MAX8998_REG_STATUS2 = 9, + MAX8998_REG_STATUSM1 = 10, + MAX8998_REG_STATUSM2 = 11, + MAX8998_REG_CHGR1 = 12, + MAX8998_REG_CHGR2 = 13, + MAX8998_REG_LDO_ACTIVE_DISCHARGE1 = 14, + MAX8998_REG_LDO_ACTIVE_DISCHARGE2 = 15, + MAX8998_REG_BUCK_ACTIVE_DISCHARGE3 = 16, + MAX8998_REG_ONOFF1 = 17, + MAX8998_REG_ONOFF2 = 18, + MAX8998_REG_ONOFF3 = 19, + MAX8998_REG_ONOFF4 = 20, + MAX8998_REG_BUCK1_VOLTAGE1 = 21, + MAX8998_REG_BUCK1_VOLTAGE2 = 22, + MAX8998_REG_BUCK1_VOLTAGE3 = 23, + MAX8998_REG_BUCK1_VOLTAGE4 = 24, + MAX8998_REG_BUCK2_VOLTAGE1 = 25, + MAX8998_REG_BUCK2_VOLTAGE2 = 26, + MAX8998_REG_BUCK3 = 27, + MAX8998_REG_BUCK4 = 28, + MAX8998_REG_LDO2_LDO3 = 29, + MAX8998_REG_LDO4 = 30, + MAX8998_REG_LDO5 = 31, + MAX8998_REG_LDO6 = 32, + MAX8998_REG_LDO7 = 33, + MAX8998_REG_LDO8_LDO9 = 34, + MAX8998_REG_LDO10_LDO11 = 35, + MAX8998_REG_LDO12 = 36, + MAX8998_REG_LDO13 = 37, + MAX8998_REG_LDO14 = 38, + MAX8998_REG_LDO15 = 39, + MAX8998_REG_LDO16 = 40, + MAX8998_REG_LDO17 = 41, + MAX8998_REG_BKCHR = 42, + MAX8998_REG_LBCNFG1 = 43, + MAX8998_REG_LBCNFG2 = 44, +}; + +enum { + MAX_IORES_LEVEL = 5, +}; + +enum { + MAX_OPT_ARGS = 3, +}; + +enum { + MBE_REFERENCED_B = 0, + MBE_REUSABLE_B = 1, +}; + +enum { + MB_INODE_PA = 0, + MB_GROUP_PA = 1, +}; + +enum { + MCTP_TRACE_KEY_TIMEOUT = 0, + MCTP_TRACE_KEY_REPLIED = 1, + MCTP_TRACE_KEY_INVALIDATED = 2, + MCTP_TRACE_KEY_CLOSED = 3, + MCTP_TRACE_KEY_DROPPED = 4, +}; + +enum { + MDBA_GET_ENTRY_UNSPEC = 0, + MDBA_GET_ENTRY = 1, + MDBA_GET_ENTRY_ATTRS = 2, + __MDBA_GET_ENTRY_MAX = 3, +}; + +enum { + MDBA_SET_ENTRY_UNSPEC = 0, + MDBA_SET_ENTRY = 1, + MDBA_SET_ENTRY_ATTRS = 2, + __MDBA_SET_ENTRY_MAX = 3, +}; + +enum { + MDIO_AN_C22 = 65504, +}; + +enum { + MD_RESYNC_NONE = 0, + MD_RESYNC_YIELDED = 1, + MD_RESYNC_DELAYED = 2, + MD_RESYNC_ACTIVE = 3, +}; + +enum { + MED_R_CNT = 10, +}; + +enum { + MED_R_DUR = 12, +}; + +enum { + MED_W_CNT = 11, +}; + +enum { + MED_W_DUR = 13, +}; + +enum { + MEMBARRIER_FLAG_SYNC_CORE = 1, + MEMBARRIER_FLAG_RSEQ = 2, +}; + +enum { + MEMBARRIER_STATE_PRIVATE_EXPEDITED_READY = 1, + MEMBARRIER_STATE_PRIVATE_EXPEDITED = 2, + MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY = 4, + MEMBARRIER_STATE_GLOBAL_EXPEDITED = 8, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE_READY = 16, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE = 32, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ_READY = 64, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128, +}; + +enum { + MEMCG_LRU_NOP = 0, + MEMCG_LRU_HEAD = 1, + MEMCG_LRU_TAIL = 2, + MEMCG_LRU_OLD = 3, + MEMCG_LRU_YOUNG = 4, +}; + +enum { + MEMMAP_ON_MEMORY_DISABLE = 0, + MEMMAP_ON_MEMORY_ENABLE = 1, + MEMMAP_ON_MEMORY_FORCE = 2, +}; + +enum { + MEMORY_RECLAIM_SWAPPINESS = 0, + MEMORY_RECLAIM_NULL = 1, +}; + +enum { + MEMREMAP_WB = 1, + MEMREMAP_WT = 2, + MEMREMAP_WC = 4, + MEMREMAP_ENC = 8, + MEMREMAP_DEC = 16, +}; + +enum { + MEM_LIFE = 4, +}; + +enum { + MFC_STATIC = 1, + MFC_OFFLOAD = 2, +}; + +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 { + 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_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 { + MIX_INFLIGHT = 2147483648, +}; + +enum { + MLO_PAUSE_NONE = 0, + MLO_PAUSE_RX = 1, + MLO_PAUSE_TX = 2, + MLO_PAUSE_TXRX_MASK = 3, + MLO_PAUSE_AN = 4, + MLO_AN_PHY = 0, + MLO_AN_FIXED = 1, + MLO_AN_INBAND = 2, + PHYLINK_PCS_NEG_NONE = 0, + PHYLINK_PCS_NEG_ENABLED = 16, + PHYLINK_PCS_NEG_OUTBAND = 32, + PHYLINK_PCS_NEG_INBAND = 64, + PHYLINK_PCS_NEG_INBAND_DISABLED = 64, + PHYLINK_PCS_NEG_INBAND_ENABLED = 80, + MAC_SYM_PAUSE = 1, + MAC_ASYM_PAUSE = 2, + MAC_10HD = 4, + MAC_10FD = 8, + MAC_10 = 12, + MAC_100HD = 16, + MAC_100FD = 32, + MAC_100 = 48, + MAC_1000HD = 64, + MAC_1000FD = 128, + MAC_1000 = 192, + MAC_2500FD = 256, + MAC_5000FD = 512, + MAC_10000FD = 1024, + MAC_20000FD = 2048, + MAC_25000FD = 4096, + MAC_40000FD = 8192, + MAC_50000FD = 16384, + MAC_56000FD = 32768, + MAC_100000FD = 65536, + MAC_200000FD = 131072, + MAC_400000FD = 262144, +}; + +enum { + MLX_MC_RBT_SUPPORT = 1, + MLX_MC_RBT_AVL = 8, +}; + +enum { + MMOP_OFFLINE = 0, + MMOP_ONLINE = 1, + MMOP_ONLINE_KERNEL = 2, + MMOP_ONLINE_MOVABLE = 3, +}; + +enum { + MM_FILEPAGES = 0, + MM_ANONPAGES = 1, + MM_SWAPENTS = 2, + MM_SHMEMPAGES = 3, + NR_MM_COUNTERS = 4, +}; + +enum { + MM_LEAF_TOTAL = 0, + MM_LEAF_YOUNG = 1, + MM_NONLEAF_FOUND = 2, + MM_NONLEAF_ADDED = 3, + NR_MM_STATS = 4, +}; + +enum { + MODE_NONE = 0, + MODE_ROUND_ROBIN = 1, + MODE_PER_CPU = 2, + MODE_MAX = 3, +}; + +enum { + MOXA_SUPP_RS232 = 1, + MOXA_SUPP_RS422 = 2, + MOXA_SUPP_RS485 = 4, +}; + +enum { + MPOL_DEFAULT = 0, + MPOL_PREFERRED = 1, + MPOL_BIND = 2, + MPOL_INTERLEAVE = 3, + MPOL_LOCAL = 4, + MPOL_PREFERRED_MANY = 5, + MPOL_WEIGHTED_INTERLEAVE = 6, + MPOL_MAX = 7, +}; + +enum { + MPTCP_CMSG_TS = 1, + MPTCP_CMSG_INQ = 2, +}; + +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_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_ATTR_AFTER_LAST = 7, +}; + +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, +}; + +enum { + MPTCP_PM_ENDPOINT_ADDR = 1, + __MPTCP_PM_ENDPOINT_MAX = 2, +}; + +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 { + MSI_FLAG_USE_DEF_DOM_OPS = 1, + MSI_FLAG_USE_DEF_CHIP_OPS = 2, + MSI_FLAG_ACTIVATE_EARLY = 4, + MSI_FLAG_MUST_REACTIVATE = 8, + MSI_FLAG_DEV_SYSFS = 16, + MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS = 32, + MSI_FLAG_FREE_MSI_DESCS = 64, + MSI_FLAG_USE_DEV_FWNODE = 128, + MSI_FLAG_PARENT_PM_DEV = 256, + MSI_FLAG_PCI_MSI_MASK_PARENT = 512, + 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_NO_AFFINITY = 2097152, + MSI_FLAG_NO_MASK = 4194304, +}; + +enum { + MTK_UART_FC_NONE = 0, + MTK_UART_FC_SW = 1, + MTK_UART_FC_HW = 2, +}; + +enum { + M_I17 = 0, + M_I20 = 1, + M_I20_SR = 2, + M_I24 = 3, + M_I24_8_1 = 4, + M_I24_10_1 = 5, + M_I27_11_1 = 6, + M_MINI = 7, + M_MINI_3_1 = 8, + M_MINI_4_1 = 9, + M_MB = 10, + M_MB_2 = 11, + M_MB_3 = 12, + M_MB_5_1 = 13, + M_MB_6_1 = 14, + M_MB_7_1 = 15, + M_MB_SR = 16, + M_MBA = 17, + M_MBA_3 = 18, + M_MBP = 19, + M_MBP_2 = 20, + M_MBP_2_2 = 21, + M_MBP_SR = 22, + M_MBP_4 = 23, + M_MBP_5_1 = 24, + M_MBP_5_2 = 25, + M_MBP_5_3 = 26, + M_MBP_6_1 = 27, + M_MBP_6_2 = 28, + M_MBP_7_1 = 29, + M_MBP_8_2 = 30, + M_UNKNOWN = 31, +}; + +enum { + NAPIF_STATE_SCHED = 1, + NAPIF_STATE_MISSED = 2, + NAPIF_STATE_DISABLE = 4, + NAPIF_STATE_NPSVC = 8, + NAPIF_STATE_LISTED = 16, + NAPIF_STATE_NO_BUSY_POLL = 32, + NAPIF_STATE_IN_BUSY_POLL = 64, + NAPIF_STATE_PREFER_BUSY_POLL = 128, + NAPIF_STATE_THREADED = 256, + NAPIF_STATE_SCHED_THREADED = 512, +}; + +enum { + NAPI_F_PREFER_BUSY_POLL = 1, + NAPI_F_END_ON_RESCHED = 2, +}; + +enum { + 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 { + NCSI_CAP_BASE = 0, + NCSI_CAP_GENERIC = 0, + NCSI_CAP_BC = 1, + NCSI_CAP_MC = 2, + NCSI_CAP_BUFFER = 3, + NCSI_CAP_AEN = 4, + NCSI_CAP_VLAN = 5, + NCSI_CAP_MAX = 6, +}; + +enum { + NCSI_CAP_GENERIC_HWA = 1, + NCSI_CAP_GENERIC_HDS = 2, + NCSI_CAP_GENERIC_FC = 4, + NCSI_CAP_GENERIC_FC1 = 8, + NCSI_CAP_GENERIC_MC = 16, + NCSI_CAP_GENERIC_HWA_UNKNOWN = 0, + NCSI_CAP_GENERIC_HWA_SUPPORT = 32, + NCSI_CAP_GENERIC_HWA_NOT_SUPPORT = 64, + NCSI_CAP_GENERIC_HWA_RESERVED = 96, + NCSI_CAP_GENERIC_HWA_MASK = 96, + NCSI_CAP_GENERIC_MASK = 127, + NCSI_CAP_BC_ARP = 1, + NCSI_CAP_BC_DHCPC = 2, + NCSI_CAP_BC_DHCPS = 4, + NCSI_CAP_BC_NETBIOS = 8, + NCSI_CAP_BC_MASK = 15, + NCSI_CAP_MC_IPV6_NEIGHBOR = 1, + NCSI_CAP_MC_IPV6_ROUTER = 2, + NCSI_CAP_MC_DHCPV6_RELAY = 4, + NCSI_CAP_MC_DHCPV6_WELL_KNOWN = 8, + NCSI_CAP_MC_IPV6_MLD = 16, + NCSI_CAP_MC_IPV6_NEIGHBOR_S = 32, + NCSI_CAP_MC_MASK = 63, + NCSI_CAP_AEN_LSC = 1, + NCSI_CAP_AEN_CR = 2, + NCSI_CAP_AEN_HDS = 4, + NCSI_CAP_AEN_MASK = 7, + NCSI_CAP_VLAN_ONLY = 1, + NCSI_CAP_VLAN_NO = 2, + NCSI_CAP_VLAN_ANY = 4, + NCSI_CAP_VLAN_MASK = 7, +}; + +enum { + NCSI_MODE_BASE = 0, + NCSI_MODE_ENABLE = 0, + NCSI_MODE_TX_ENABLE = 1, + NCSI_MODE_LINK = 2, + NCSI_MODE_VLAN = 3, + NCSI_MODE_BC = 4, + NCSI_MODE_MC = 5, + NCSI_MODE_AEN = 6, + NCSI_MODE_FC = 7, + NCSI_MODE_MAX = 8, +}; + +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 { + NDD_UNARMED = 1, + NDD_LOCKED = 2, + NDD_SECURITY_OVERWRITE = 3, + NDD_WORK_PENDING = 4, + NDD_LABELING = 6, + NDD_INCOHERENT = 7, + NDD_REGISTER_SYNC = 8, + ND_IOCTL_MAX_BUFLEN = 4194304, + ND_CMD_MAX_ELEM = 5, + ND_CMD_MAX_ENVELOPE = 256, + ND_MAX_MAPPINGS = 32, + ND_REGION_PAGEMAP = 0, + ND_REGION_PERSIST_CACHE = 1, + ND_REGION_PERSIST_MEMCTRL = 2, + ND_REGION_ASYNC = 3, + ND_REGION_CXL = 4, + DPA_RESOURCE_ADJUSTED = 1, +}; + +enum { + 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, +}; + +enum { + NDUSEROPT_UNSPEC = 0, + NDUSEROPT_SRCADDR = 1, + __NDUSEROPT_MAX = 2, +}; + +enum { + ND_CMD_IMPLEMENTED = 0, + ND_CMD_ARS_CAP = 1, + ND_CMD_ARS_START = 2, + ND_CMD_ARS_STATUS = 3, + ND_CMD_CLEAR_ERROR = 4, + ND_CMD_SMART = 1, + ND_CMD_SMART_THRESHOLD = 2, + ND_CMD_DIMM_FLAGS = 3, + ND_CMD_GET_CONFIG_SIZE = 4, + ND_CMD_GET_CONFIG_DATA = 5, + ND_CMD_SET_CONFIG_DATA = 6, + ND_CMD_VENDOR_EFFECT_LOG_SIZE = 7, + ND_CMD_VENDOR_EFFECT_LOG = 8, + ND_CMD_VENDOR = 9, + ND_CMD_CALL = 10, +}; + +enum { + ND_MAX_LANES = 256, + INT_LBASIZE_ALIGNMENT = 64, + NVDIMM_IO_ATOMIC = 1, +}; + +enum { + ND_MIN_NAMESPACE_SIZE = 4096, +}; + +enum { + NEIGH_ARP_TABLE = 0, + NEIGH_ND_TABLE = 1, + NEIGH_NR_TABLES = 2, + NEIGH_LINK_TABLE = 2, +}; + +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 { + NESTED_SYNC_IMM_BIT = 0, + NESTED_SYNC_TODO_BIT = 1, +}; + +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 { + NETDEV_A_DEV_IFINDEX = 1, + NETDEV_A_DEV_PAD = 2, + NETDEV_A_DEV_XDP_FEATURES = 3, + NETDEV_A_DEV_XDP_ZC_MAX_SEGS = 4, + NETDEV_A_DEV_XDP_RX_METADATA_FEATURES = 5, + NETDEV_A_DEV_XSK_FEATURES = 6, + __NETDEV_A_DEV_MAX = 7, + NETDEV_A_DEV_MAX = 6, +}; + +enum { + NETDEV_A_DMABUF_IFINDEX = 1, + NETDEV_A_DMABUF_QUEUES = 2, + NETDEV_A_DMABUF_FD = 3, + NETDEV_A_DMABUF_ID = 4, + __NETDEV_A_DMABUF_MAX = 5, + NETDEV_A_DMABUF_MAX = 4, +}; + +enum { + NETDEV_A_NAPI_IFINDEX = 1, + NETDEV_A_NAPI_ID = 2, + NETDEV_A_NAPI_IRQ = 3, + NETDEV_A_NAPI_PID = 4, + NETDEV_A_NAPI_DEFER_HARD_IRQS = 5, + NETDEV_A_NAPI_GRO_FLUSH_TIMEOUT = 6, + NETDEV_A_NAPI_IRQ_SUSPEND_TIMEOUT = 7, + __NETDEV_A_NAPI_MAX = 8, + NETDEV_A_NAPI_MAX = 7, +}; + +enum { + NETDEV_A_PAGE_POOL_ID = 1, + NETDEV_A_PAGE_POOL_IFINDEX = 2, + NETDEV_A_PAGE_POOL_NAPI_ID = 3, + NETDEV_A_PAGE_POOL_INFLIGHT = 4, + NETDEV_A_PAGE_POOL_INFLIGHT_MEM = 5, + NETDEV_A_PAGE_POOL_DETACH_TIME = 6, + NETDEV_A_PAGE_POOL_DMABUF = 7, + __NETDEV_A_PAGE_POOL_MAX = 8, + NETDEV_A_PAGE_POOL_MAX = 7, +}; + +enum { + NETDEV_A_PAGE_POOL_STATS_INFO = 1, + NETDEV_A_PAGE_POOL_STATS_ALLOC_FAST = 8, + NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW = 9, + NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW_HIGH_ORDER = 10, + NETDEV_A_PAGE_POOL_STATS_ALLOC_EMPTY = 11, + NETDEV_A_PAGE_POOL_STATS_ALLOC_REFILL = 12, + NETDEV_A_PAGE_POOL_STATS_ALLOC_WAIVE = 13, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHED = 14, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE_FULL = 15, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING = 16, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING_FULL = 17, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_RELEASED_REFCNT = 18, + __NETDEV_A_PAGE_POOL_STATS_MAX = 19, + NETDEV_A_PAGE_POOL_STATS_MAX = 18, +}; + +enum { + NETDEV_A_QSTATS_IFINDEX = 1, + NETDEV_A_QSTATS_QUEUE_TYPE = 2, + NETDEV_A_QSTATS_QUEUE_ID = 3, + NETDEV_A_QSTATS_SCOPE = 4, + NETDEV_A_QSTATS_RX_PACKETS = 8, + NETDEV_A_QSTATS_RX_BYTES = 9, + NETDEV_A_QSTATS_TX_PACKETS = 10, + NETDEV_A_QSTATS_TX_BYTES = 11, + NETDEV_A_QSTATS_RX_ALLOC_FAIL = 12, + NETDEV_A_QSTATS_RX_HW_DROPS = 13, + NETDEV_A_QSTATS_RX_HW_DROP_OVERRUNS = 14, + NETDEV_A_QSTATS_RX_CSUM_COMPLETE = 15, + NETDEV_A_QSTATS_RX_CSUM_UNNECESSARY = 16, + NETDEV_A_QSTATS_RX_CSUM_NONE = 17, + NETDEV_A_QSTATS_RX_CSUM_BAD = 18, + NETDEV_A_QSTATS_RX_HW_GRO_PACKETS = 19, + NETDEV_A_QSTATS_RX_HW_GRO_BYTES = 20, + NETDEV_A_QSTATS_RX_HW_GRO_WIRE_PACKETS = 21, + NETDEV_A_QSTATS_RX_HW_GRO_WIRE_BYTES = 22, + NETDEV_A_QSTATS_RX_HW_DROP_RATELIMITS = 23, + NETDEV_A_QSTATS_TX_HW_DROPS = 24, + NETDEV_A_QSTATS_TX_HW_DROP_ERRORS = 25, + NETDEV_A_QSTATS_TX_CSUM_NONE = 26, + NETDEV_A_QSTATS_TX_NEEDS_CSUM = 27, + NETDEV_A_QSTATS_TX_HW_GSO_PACKETS = 28, + NETDEV_A_QSTATS_TX_HW_GSO_BYTES = 29, + NETDEV_A_QSTATS_TX_HW_GSO_WIRE_PACKETS = 30, + NETDEV_A_QSTATS_TX_HW_GSO_WIRE_BYTES = 31, + NETDEV_A_QSTATS_TX_HW_DROP_RATELIMITS = 32, + NETDEV_A_QSTATS_TX_STOP = 33, + NETDEV_A_QSTATS_TX_WAKE = 34, + __NETDEV_A_QSTATS_MAX = 35, + NETDEV_A_QSTATS_MAX = 34, +}; + +enum { + NETDEV_A_QUEUE_ID = 1, + NETDEV_A_QUEUE_IFINDEX = 2, + NETDEV_A_QUEUE_TYPE = 3, + NETDEV_A_QUEUE_NAPI_ID = 4, + NETDEV_A_QUEUE_DMABUF = 5, + __NETDEV_A_QUEUE_MAX = 6, + NETDEV_A_QUEUE_MAX = 5, +}; + +enum { + NETDEV_CMD_DEV_GET = 1, + NETDEV_CMD_DEV_ADD_NTF = 2, + NETDEV_CMD_DEV_DEL_NTF = 3, + NETDEV_CMD_DEV_CHANGE_NTF = 4, + NETDEV_CMD_PAGE_POOL_GET = 5, + NETDEV_CMD_PAGE_POOL_ADD_NTF = 6, + NETDEV_CMD_PAGE_POOL_DEL_NTF = 7, + NETDEV_CMD_PAGE_POOL_CHANGE_NTF = 8, + NETDEV_CMD_PAGE_POOL_STATS_GET = 9, + NETDEV_CMD_QUEUE_GET = 10, + NETDEV_CMD_NAPI_GET = 11, + NETDEV_CMD_QSTATS_GET = 12, + NETDEV_CMD_BIND_RX = 13, + NETDEV_CMD_NAPI_SET = 14, + __NETDEV_CMD_MAX = 15, + NETDEV_CMD_MAX = 14, +}; + +enum { + NETDEV_NLGRP_MGMT = 0, + NETDEV_NLGRP_PAGE_POOL = 1, +}; + +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, + __UNUSED_NETIF_F_12 = 12, + __UNUSED_NETIF_F_13 = 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, + __UNUSED_NETIF_F_37 = 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 { + 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 { + NETLINK_F_KERNEL_SOCKET = 0, + NETLINK_F_RECV_PKTINFO = 1, + NETLINK_F_BROADCAST_SEND_ERROR = 2, + NETLINK_F_RECV_NO_ENOBUFS = 3, + NETLINK_F_LISTEN_ALL_NSID = 4, + NETLINK_F_CAP_ACK = 5, + NETLINK_F_EXT_ACK = 6, + NETLINK_F_STRICT_CHK = 7, +}; + +enum { + NETLINK_UNCONNECTED = 0, + NETLINK_CONNECTED = 1, +}; + +enum { + NETNSA_NONE = 0, + NETNSA_NSID = 1, + NETNSA_PID = 2, + NETNSA_FD = 3, + NETNSA_TARGET_NSID = 4, + NETNSA_CURRENT_NSID = 5, + __NETNSA_MAX = 6, +}; + +enum { + NET_DM_ATTR_PORT_NETDEV_IFINDEX = 0, + NET_DM_ATTR_PORT_NETDEV_NAME = 1, + __NET_DM_ATTR_PORT_MAX = 2, + NET_DM_ATTR_PORT_MAX = 1, +}; + +enum { + NET_DM_ATTR_STATS_DROPPED = 0, + __NET_DM_ATTR_STATS_MAX = 1, + NET_DM_ATTR_STATS_MAX = 0, +}; + +enum { + NET_DM_CMD_UNSPEC = 0, + NET_DM_CMD_ALERT = 1, + NET_DM_CMD_CONFIG = 2, + NET_DM_CMD_START = 3, + NET_DM_CMD_STOP = 4, + NET_DM_CMD_PACKET_ALERT = 5, + NET_DM_CMD_CONFIG_GET = 6, + NET_DM_CMD_CONFIG_NEW = 7, + NET_DM_CMD_STATS_GET = 8, + NET_DM_CMD_STATS_NEW = 9, + _NET_DM_CMD_MAX = 10, +}; + +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 { + NET_SHAPER_A_CAPS_IFINDEX = 1, + NET_SHAPER_A_CAPS_SCOPE = 2, + NET_SHAPER_A_CAPS_SUPPORT_METRIC_BPS = 3, + NET_SHAPER_A_CAPS_SUPPORT_METRIC_PPS = 4, + NET_SHAPER_A_CAPS_SUPPORT_NESTING = 5, + NET_SHAPER_A_CAPS_SUPPORT_BW_MIN = 6, + NET_SHAPER_A_CAPS_SUPPORT_BW_MAX = 7, + NET_SHAPER_A_CAPS_SUPPORT_BURST = 8, + NET_SHAPER_A_CAPS_SUPPORT_PRIORITY = 9, + NET_SHAPER_A_CAPS_SUPPORT_WEIGHT = 10, + __NET_SHAPER_A_CAPS_MAX = 11, + NET_SHAPER_A_CAPS_MAX = 10, +}; + +enum { + NET_SHAPER_A_HANDLE = 1, + NET_SHAPER_A_METRIC = 2, + NET_SHAPER_A_BW_MIN = 3, + NET_SHAPER_A_BW_MAX = 4, + NET_SHAPER_A_BURST = 5, + NET_SHAPER_A_PRIORITY = 6, + NET_SHAPER_A_WEIGHT = 7, + NET_SHAPER_A_IFINDEX = 8, + NET_SHAPER_A_PARENT = 9, + NET_SHAPER_A_LEAVES = 10, + __NET_SHAPER_A_MAX = 11, + NET_SHAPER_A_MAX = 10, +}; + +enum { + NET_SHAPER_A_HANDLE_SCOPE = 1, + NET_SHAPER_A_HANDLE_ID = 2, + __NET_SHAPER_A_HANDLE_MAX = 3, + NET_SHAPER_A_HANDLE_MAX = 2, +}; + +enum { + NET_SHAPER_CMD_GET = 1, + NET_SHAPER_CMD_SET = 2, + NET_SHAPER_CMD_DELETE = 3, + NET_SHAPER_CMD_GROUP = 4, + NET_SHAPER_CMD_CAP_GET = 5, + __NET_SHAPER_CMD_MAX = 6, + NET_SHAPER_CMD_MAX = 5, +}; + +enum { + NEXTHOP_GRP_TYPE_MPATH = 0, + NEXTHOP_GRP_TYPE_RES = 1, + __NEXTHOP_GRP_TYPE_MAX = 2, +}; + +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 { + NHA_GROUP_STATS_ENTRY_UNSPEC = 0, + NHA_GROUP_STATS_ENTRY_ID = 1, + NHA_GROUP_STATS_ENTRY_PACKETS = 2, + NHA_GROUP_STATS_ENTRY_PACKETS_HW = 3, + __NHA_GROUP_STATS_ENTRY_MAX = 4, +}; + +enum { + NHA_GROUP_STATS_UNSPEC = 0, + NHA_GROUP_STATS_ENTRY = 1, + __NHA_GROUP_STATS_MAX = 2, +}; + +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 { + 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_UNSPEC = 0, + NHA_ID = 1, + NHA_GROUP = 2, + NHA_GROUP_TYPE = 3, + NHA_BLACKHOLE = 4, + NHA_OIF = 5, + NHA_GATEWAY = 6, + NHA_ENCAP_TYPE = 7, + NHA_ENCAP = 8, + NHA_GROUPS = 9, + NHA_MASTER = 10, + NHA_FDB = 11, + NHA_RES_GROUP = 12, + NHA_RES_BUCKET = 13, + NHA_OP_FLAGS = 14, + NHA_GROUP_STATS = 15, + NHA_HW_STATS_ENABLE = 16, + NHA_HW_STATS_USED = 17, + __NHA_MAX = 18, +}; + +enum { + NLA_UNSPEC = 0, + NLA_U8 = 1, + NLA_U16 = 2, + NLA_U32 = 3, + NLA_U64 = 4, + NLA_STRING = 5, + NLA_FLAG = 6, + NLA_MSECS = 7, + NLA_NESTED = 8, + NLA_NESTED_ARRAY = 9, + NLA_NUL_STRING = 10, + NLA_BINARY = 11, + NLA_S8 = 12, + NLA_S16 = 13, + NLA_S32 = 14, + NLA_S64 = 15, + NLA_BITFIELD32 = 16, + NLA_REJECT = 17, + NLA_BE16 = 18, + NLA_BE32 = 19, + NLA_SINT = 20, + NLA_UINT = 21, + __NLA_TYPE_MAX = 22, +}; + +enum { + 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, +}; + +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, +}; + +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, +}; + +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, +}; + +enum { + NODE_ACCESS_CLASS_GENPORT_SINK_LOCAL = 2, + NODE_ACCESS_CLASS_GENPORT_SINK_CPU = 3, + NODE_ACCESS_CLASS_MAX = 4, +}; + +enum { + NSINDEX_SIG_LEN = 16, + NSINDEX_ALIGN = 256, + NSINDEX_SEQ_MASK = 3, + NSLABEL_UUID_LEN = 16, + NSLABEL_NAME_LEN = 64, + NSLABEL_FLAG_ROLABEL = 1, + NSLABEL_FLAG_LOCAL = 2, + NSLABEL_FLAG_BTT = 4, + NSLABEL_FLAG_UPDATING = 8, + BTT_ALIGN = 4096, + BTTINFO_SIG_LEN = 16, + BTTINFO_UUID_LEN = 16, + BTTINFO_FLAG_ERROR = 1, + BTTINFO_MAJOR_VERSION = 1, + ND_LABEL_MIN_SIZE = 1024, + ND_LABEL_ID_SIZE = 50, + ND_NSINDEX_INIT = 1, +}; + +enum { + NUM_TRIAL_SAMPLES = 8192, + MAX_SAMPLES_PER_BIT = 66, +}; + +enum { + NVMEM_ADD = 1, + NVMEM_REMOVE = 2, + NVMEM_CELL_ADD = 3, + NVMEM_CELL_REMOVE = 4, + NVMEM_LAYOUT_ADD = 5, + NVMEM_LAYOUT_REMOVE = 6, +}; + +enum { + NVME_AEN_BIT_NS_ATTR = 8, + NVME_AEN_BIT_FW_ACT = 9, + NVME_AEN_BIT_ANA_CHANGE = 11, + NVME_AEN_BIT_DISC_CHANGE = 31, +}; + +enum { + NVME_CC_ENABLE = 1, + NVME_CC_EN_SHIFT = 0, + NVME_CC_CSS_SHIFT = 4, + NVME_CC_CSS_MASK = 112, + NVME_CC_CSS_NVM = 0, + NVME_CC_CSS_CSI = 96, + NVME_CC_MPS_SHIFT = 7, + NVME_CC_MPS_MASK = 1920, + NVME_CC_AMS_SHIFT = 11, + NVME_CC_AMS_MASK = 14336, + NVME_CC_AMS_RR = 0, + NVME_CC_AMS_WRRU = 2048, + NVME_CC_AMS_VS = 14336, + NVME_CC_SHN_SHIFT = 14, + NVME_CC_SHN_MASK = 49152, + NVME_CC_SHN_NONE = 0, + NVME_CC_SHN_NORMAL = 16384, + NVME_CC_SHN_ABRUPT = 32768, + NVME_CC_IOSQES_SHIFT = 16, + NVME_CC_IOSQES_MASK = 983040, + NVME_CC_IOSQES = 393216, + NVME_CC_IOCQES_SHIFT = 20, + NVME_CC_IOCQES_MASK = 15728640, + 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 { + 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 { + OD_NORMAL_SAMPLE = 0, + OD_SUB_SAMPLE = 1, +}; + +enum { + OMAP_I2C_REV_REG = 0, + OMAP_I2C_IE_REG = 1, + OMAP_I2C_STAT_REG = 2, + OMAP_I2C_IV_REG = 3, + OMAP_I2C_WE_REG = 4, + OMAP_I2C_SYSS_REG = 5, + OMAP_I2C_BUF_REG = 6, + OMAP_I2C_CNT_REG = 7, + OMAP_I2C_DATA_REG = 8, + OMAP_I2C_SYSC_REG = 9, + OMAP_I2C_CON_REG = 10, + OMAP_I2C_OA_REG = 11, + OMAP_I2C_SA_REG = 12, + OMAP_I2C_PSC_REG = 13, + OMAP_I2C_SCLL_REG = 14, + OMAP_I2C_SCLH_REG = 15, + OMAP_I2C_SYSTEST_REG = 16, + OMAP_I2C_BUFSTAT_REG = 17, + OMAP_I2C_IP_V2_REVNB_LO = 18, + OMAP_I2C_IP_V2_REVNB_HI = 19, + OMAP_I2C_IP_V2_IRQSTATUS_RAW = 20, + OMAP_I2C_IP_V2_IRQENABLE_SET = 21, + OMAP_I2C_IP_V2_IRQENABLE_CLR = 22, +}; + +enum { + ONLINE_POLICY_CONTIG_ZONES = 0, + ONLINE_POLICY_AUTO_MOVABLE = 1, +}; + +enum { + OPT_SOURCE = 0, + OPT_SUBTYPE = 1, + OPT_FD = 2, + OPT_ROOTMODE = 3, + OPT_USER_ID = 4, + OPT_GROUP_ID = 5, + OPT_DEFAULT_PERMISSIONS = 6, + OPT_ALLOW_OTHER = 7, + OPT_MAX_READ = 8, + OPT_BLKSIZE = 9, + OPT_ERR = 10, +}; + +enum { + OPT_UID = 0, + OPT_GID = 1, + OPT_MODE = 2, + OPT_DELEGATE_CMDS = 3, + OPT_DELEGATE_MAPS = 4, + OPT_DELEGATE_PROGS = 5, + OPT_DELEGATE_ATTACHS = 6, +}; + +enum { + OUTSIDE_GUEST_MODE = 0, + IN_GUEST_MODE = 1, + EXITING_GUEST_MODE = 2, + READING_SHADOW_PAGE_TABLES = 3, +}; + +enum { + OVERRIDE_NONE = 0, + OVERRIDE_BASE = 1, + OVERRIDE_STRIDE = 2, + OVERRIDE_HEIGHT = 4, + OVERRIDE_WIDTH = 8, +}; + +enum { + Opt_bsd_df = 0, + Opt_minix_df = 1, + Opt_grpid = 2, + Opt_nogrpid = 3, + Opt_resgid = 4, + Opt_resuid = 5, + Opt_sb = 6, + Opt_nouid32 = 7, + Opt_debug = 8, + Opt_removed = 9, + Opt_user_xattr = 10, + Opt_acl = 11, + Opt_auto_da_alloc = 12, + Opt_noauto_da_alloc = 13, + Opt_noload = 14, + Opt_commit = 15, + Opt_min_batch_time = 16, + Opt_max_batch_time = 17, + Opt_journal_dev = 18, + Opt_journal_path = 19, + Opt_journal_checksum = 20, + Opt_journal_async_commit = 21, + Opt_abort = 22, + Opt_data_journal = 23, + Opt_data_ordered = 24, + Opt_data_writeback = 25, + Opt_data_err_abort = 26, + Opt_data_err_ignore = 27, + Opt_test_dummy_encryption = 28, + Opt_inlinecrypt = 29, + Opt_usrjquota = 30, + Opt_grpjquota = 31, + Opt_quota = 32, + Opt_noquota = 33, + Opt_barrier = 34, + Opt_nobarrier = 35, + Opt_err = 36, + Opt_usrquota = 37, + Opt_grpquota = 38, + Opt_prjquota = 39, + Opt_dax = 40, + Opt_dax_always = 41, + Opt_dax_inode = 42, + Opt_dax_never = 43, + Opt_stripe = 44, + Opt_delalloc = 45, + Opt_nodelalloc = 46, + Opt_warn_on_error = 47, + Opt_nowarn_on_error = 48, + Opt_mblk_io_submit = 49, + Opt_debug_want_extra_isize = 50, + Opt_nomblk_io_submit = 51, + Opt_block_validity = 52, + Opt_noblock_validity = 53, + Opt_inode_readahead_blks = 54, + Opt_journal_ioprio = 55, + Opt_dioread_nolock = 56, + Opt_dioread_lock = 57, + Opt_discard = 58, + Opt_nodiscard = 59, + Opt_init_itable = 60, + Opt_noinit_itable = 61, + Opt_max_dir_size_kb = 62, + Opt_nojournal_checksum = 63, + Opt_nombcache = 64, + Opt_no_prefetch_block_bitmaps = 65, + Opt_mb_optimize_scan = 66, + Opt_errors = 67, + Opt_data = 68, + Opt_data_err = 69, + Opt_jqfmt = 70, + Opt_dax_type = 71, +}; + +enum { + Opt_check = 0, + Opt_uid = 1, + Opt_gid = 2, + Opt_umask = 3, + Opt_dmask = 4, + Opt_fmask = 5, + Opt_allow_utime = 6, + Opt_codepage = 7, + Opt_usefree = 8, + Opt_nocase = 9, + Opt_quiet = 10, + Opt_showexec = 11, + Opt_debug___2 = 12, + Opt_immutable = 13, + Opt_dots = 14, + Opt_dotsOK = 15, + Opt_charset = 16, + Opt_shortname = 17, + Opt_utf8 = 18, + Opt_utf8_bool = 19, + Opt_uni_xl = 20, + Opt_uni_xl_bool = 21, + Opt_nonumtail = 22, + Opt_nonumtail_bool = 23, + Opt_obsolete = 24, + Opt_flush = 25, + Opt_tz = 26, + Opt_rodir = 27, + Opt_errors___2 = 28, + Opt_discard___2 = 29, + Opt_nfs = 30, + Opt_nfs_enum = 31, + Opt_time_offset = 32, + Opt_dos1xfloppy = 33, +}; + +enum { + Opt_default = 0, + Opt_ecryptfs = 1, + Opt_enc32 = 2, + Opt_error = 3, +}; + +enum { + Opt_err___2 = 0, + Opt_enc = 1, + Opt_hash = 2, +}; + +enum { + Opt_err___3 = 0, + Opt_new = 1, + Opt_load = 2, + Opt_update = 3, +}; + +enum { + Opt_err___4 = 0, + Opt_keyhandle = 1, + Opt_keyauth = 2, + Opt_blobauth = 3, + Opt_pcrinfo = 4, + Opt_pcrlock = 5, + Opt_migratable = 6, + Opt_hash___2 = 7, + Opt_policydigest = 8, + Opt_policyhandle = 9, +}; + +enum { + Opt_error___2 = -1, + Opt_fsdefault = 0, + Opt_fsfloor = 1, + Opt_fshat = 2, + Opt_fsroot = 3, + Opt_fstransmute = 4, +}; + +enum { + Opt_error___3 = -1, + Opt_context = 0, + Opt_defcontext = 1, + Opt_fscontext = 2, + Opt_rootcontext = 3, + Opt_seclabel = 4, +}; + +enum { + Opt_kmsg_bytes = 0, + Opt_err___5 = 1, +}; + +enum { + Opt_new___2 = 0, + Opt_load___2 = 1, + Opt_update___2 = 2, + Opt_err___6 = 3, +}; + +enum { + Opt_sig = 0, + Opt_ecryptfs_sig = 1, + Opt_cipher = 2, + Opt_ecryptfs_cipher = 3, + Opt_ecryptfs_key_bytes = 4, + Opt_passthrough = 5, + Opt_xattr_metadata = 6, + Opt_encrypted_view = 7, + Opt_fnek_sig = 8, + Opt_fn_cipher = 9, + Opt_fn_cipher_key_bytes = 10, + Opt_unlink_sigs = 11, + Opt_mount_auth_tok_only = 12, + Opt_check_dev_ruid = 13, +}; + +enum { + Opt_uid___2 = 0, + Opt_gid___2 = 1, +}; + +enum { + Opt_uid___3 = 0, + Opt_gid___3 = 1, + Opt_mode = 2, +}; + +enum { + Opt_uid___4 = 0, + Opt_gid___4 = 1, + Opt_mode___2 = 2, + Opt_source = 3, +}; + +enum { + Opt_uid___5 = 0, + Opt_gid___5 = 1, + Opt_mode___3 = 2, + Opt_ptmxmode = 3, + Opt_newinstance = 4, + Opt_max = 5, + Opt_err___7 = 6, +}; + +enum { + PADDRW = 0, + PDATA = 4, + PPMASK = 8, + PADDRR = 12, + PIDXLO = 16, + PIDXHI = 20, + PIDXDATA = 24, + PIDXCTL = 28, +}; + +enum { + PAGE_REPORTING_IDLE = 0, + PAGE_REPORTING_REQUESTED = 1, + PAGE_REPORTING_ACTIVE = 2, +}; + +enum { + PAGE_WAS_MAPPED = 1, + PAGE_WAS_MLOCKED = 2, + PAGE_OLD_STATES = 3, +}; + +enum { + PALMAS_EXT_CONTROL_ENABLE1 = 1, + PALMAS_EXT_CONTROL_ENABLE2 = 2, + PALMAS_EXT_CONTROL_NSLEEP = 4, +}; + +enum { + PARSE_INVALID = 1, + PARSE_NOT_LONGNAME = 2, + PARSE_EOF = 3, +}; + +enum { + PCI_BRIDGE_EMUL_NO_PREFMEM_FORWARD = 1, + PCI_BRIDGE_EMUL_NO_IO_FORWARD = 2, +}; + +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, +}; + +enum { + PCI_STD_RESOURCES = 0, + PCI_STD_RESOURCE_END = 5, + PCI_ROM_RESOURCE = 6, + PCI_IOV_RESOURCES = 7, + PCI_IOV_RESOURCE_END = 12, + PCI_BRIDGE_RESOURCES = 13, + PCI_BRIDGE_RESOURCE_END = 16, + PCI_NUM_RESOURCES = 17, + DEVICE_COUNT_RESOURCE = 17, +}; + +enum { + PERCPU_REF_INIT_ATOMIC = 1, + PERCPU_REF_INIT_DEAD = 2, + PERCPU_REF_ALLOW_REINIT = 4, +}; + +enum { + PERF_FC_LEVEL = 0, + PERF_FC_LIMIT = 1, + PERF_FC_MAX = 2, +}; + +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 { + PHYLINK_DISABLE_STOPPED = 0, + PHYLINK_DISABLE_LINK = 1, + PHYLINK_DISABLE_MAC_WOL = 2, + PCS_STATE_DOWN = 0, + PCS_STATE_STARTING = 1, + PCS_STATE_STARTED = 2, +}; + +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 { + PINCONF_BIAS = 0, + PINCONF_SCHMITT = 1, + PINCONF_DRIVE_STRENGTH = 2, +}; + +enum { + PINCTRL_PIN_REG_MODE = 0, + PINCTRL_PIN_REG_DIR = 1, + PINCTRL_PIN_REG_DI = 2, + PINCTRL_PIN_REG_DO = 3, + PINCTRL_PIN_REG_SR = 4, + PINCTRL_PIN_REG_SMT = 5, + PINCTRL_PIN_REG_PD = 6, + PINCTRL_PIN_REG_PU = 7, + PINCTRL_PIN_REG_E4 = 8, + PINCTRL_PIN_REG_E8 = 9, + PINCTRL_PIN_REG_TDSEL = 10, + PINCTRL_PIN_REG_RDSEL = 11, + PINCTRL_PIN_REG_DRV = 12, + PINCTRL_PIN_REG_PUPD = 13, + PINCTRL_PIN_REG_R0 = 14, + PINCTRL_PIN_REG_R1 = 15, + PINCTRL_PIN_REG_IES = 16, + PINCTRL_PIN_REG_PULLEN = 17, + PINCTRL_PIN_REG_PULLSEL = 18, + PINCTRL_PIN_REG_DRV_EN = 19, + PINCTRL_PIN_REG_DRV_E0 = 20, + PINCTRL_PIN_REG_DRV_E1 = 21, + PINCTRL_PIN_REG_DRV_ADV = 22, + PINCTRL_PIN_REG_RSEL = 23, + PINCTRL_PIN_REG_MAX = 24, +}; + +enum { + PINMUX_RESERVED = 0, + PINMUX_DATA_BEGIN = 1, + GP_0_0_DATA = 2, + GP_0_1_DATA = 3, + GP_0_2_DATA = 4, + GP_0_3_DATA = 5, + GP_0_4_DATA = 6, + GP_0_5_DATA = 7, + GP_0_6_DATA = 8, + GP_0_7_DATA = 9, + GP_0_8_DATA = 10, + GP_0_9_DATA = 11, + GP_0_10_DATA = 12, + GP_0_11_DATA = 13, + GP_0_12_DATA = 14, + GP_0_13_DATA = 15, + GP_0_14_DATA = 16, + GP_0_15_DATA = 17, + GP_1_0_DATA = 18, + GP_1_1_DATA = 19, + GP_1_2_DATA = 20, + GP_1_3_DATA = 21, + GP_1_4_DATA = 22, + GP_1_5_DATA = 23, + GP_1_6_DATA = 24, + GP_1_7_DATA = 25, + GP_1_8_DATA = 26, + GP_1_9_DATA = 27, + GP_1_10_DATA = 28, + GP_1_11_DATA = 29, + GP_1_12_DATA = 30, + GP_1_13_DATA = 31, + GP_1_14_DATA = 32, + GP_1_15_DATA = 33, + GP_1_16_DATA = 34, + GP_1_17_DATA = 35, + GP_1_18_DATA = 36, + GP_1_19_DATA = 37, + GP_1_20_DATA = 38, + GP_1_21_DATA = 39, + GP_1_22_DATA = 40, + GP_1_23_DATA = 41, + GP_1_24_DATA = 42, + GP_1_25_DATA = 43, + GP_1_26_DATA = 44, + GP_1_27_DATA = 45, + GP_1_28_DATA = 46, + GP_2_0_DATA = 47, + GP_2_1_DATA = 48, + GP_2_2_DATA = 49, + GP_2_3_DATA = 50, + GP_2_4_DATA = 51, + GP_2_5_DATA = 52, + GP_2_6_DATA = 53, + GP_2_7_DATA = 54, + GP_2_8_DATA = 55, + GP_2_9_DATA = 56, + GP_2_10_DATA = 57, + GP_2_11_DATA = 58, + GP_2_12_DATA = 59, + GP_2_13_DATA = 60, + GP_2_14_DATA = 61, + GP_3_0_DATA = 62, + GP_3_1_DATA = 63, + GP_3_2_DATA = 64, + GP_3_3_DATA = 65, + GP_3_4_DATA = 66, + GP_3_5_DATA = 67, + GP_3_6_DATA = 68, + GP_3_7_DATA = 69, + GP_3_8_DATA = 70, + GP_3_9_DATA = 71, + GP_3_10_DATA = 72, + GP_3_11_DATA = 73, + GP_3_12_DATA = 74, + GP_3_13_DATA = 75, + GP_3_14_DATA = 76, + GP_3_15_DATA = 77, + GP_4_0_DATA = 78, + GP_4_1_DATA = 79, + GP_4_2_DATA = 80, + GP_4_3_DATA = 81, + GP_4_4_DATA = 82, + GP_4_5_DATA = 83, + GP_4_6_DATA = 84, + GP_4_7_DATA = 85, + GP_4_8_DATA = 86, + GP_4_9_DATA = 87, + GP_4_10_DATA = 88, + GP_4_11_DATA = 89, + GP_4_12_DATA = 90, + GP_4_13_DATA = 91, + GP_4_14_DATA = 92, + GP_4_15_DATA = 93, + GP_4_16_DATA = 94, + GP_4_17_DATA = 95, + GP_5_0_DATA = 96, + GP_5_1_DATA = 97, + GP_5_2_DATA = 98, + GP_5_3_DATA = 99, + GP_5_4_DATA = 100, + GP_5_5_DATA = 101, + GP_5_6_DATA = 102, + GP_5_7_DATA = 103, + GP_5_8_DATA = 104, + GP_5_9_DATA = 105, + GP_5_10_DATA = 106, + GP_5_11_DATA = 107, + GP_5_12_DATA = 108, + GP_5_13_DATA = 109, + GP_5_14_DATA = 110, + GP_5_15_DATA = 111, + GP_5_16_DATA = 112, + GP_5_17_DATA = 113, + GP_5_18_DATA = 114, + GP_5_19_DATA = 115, + GP_5_20_DATA = 116, + GP_5_21_DATA = 117, + GP_5_22_DATA = 118, + GP_5_23_DATA = 119, + GP_5_24_DATA = 120, + GP_5_25_DATA = 121, + GP_6_0_DATA = 122, + GP_6_1_DATA = 123, + GP_6_2_DATA = 124, + GP_6_3_DATA = 125, + GP_6_4_DATA = 126, + GP_6_5_DATA = 127, + GP_6_6_DATA = 128, + GP_6_7_DATA = 129, + GP_6_8_DATA = 130, + GP_6_9_DATA = 131, + GP_6_10_DATA = 132, + GP_6_11_DATA = 133, + GP_6_12_DATA = 134, + GP_6_13_DATA = 135, + GP_6_14_DATA = 136, + GP_6_15_DATA = 137, + GP_6_16_DATA = 138, + GP_6_17_DATA = 139, + GP_6_18_DATA = 140, + GP_6_19_DATA = 141, + GP_6_20_DATA = 142, + GP_6_21_DATA = 143, + GP_6_22_DATA = 144, + GP_6_23_DATA = 145, + GP_6_24_DATA = 146, + GP_6_25_DATA = 147, + GP_6_26_DATA = 148, + GP_6_27_DATA = 149, + GP_6_28_DATA = 150, + GP_6_29_DATA = 151, + GP_6_30_DATA = 152, + GP_6_31_DATA = 153, + GP_7_0_DATA = 154, + GP_7_1_DATA = 155, + GP_7_2_DATA = 156, + GP_7_3_DATA = 157, + PINMUX_DATA_END = 158, + PINMUX_FUNCTION_BEGIN = 159, + GP_0_0_FN = 160, + GP_0_1_FN = 161, + GP_0_2_FN = 162, + GP_0_3_FN = 163, + GP_0_4_FN = 164, + GP_0_5_FN = 165, + GP_0_6_FN = 166, + GP_0_7_FN = 167, + GP_0_8_FN = 168, + GP_0_9_FN = 169, + GP_0_10_FN = 170, + GP_0_11_FN = 171, + GP_0_12_FN = 172, + GP_0_13_FN = 173, + GP_0_14_FN = 174, + GP_0_15_FN = 175, + GP_1_0_FN = 176, + GP_1_1_FN = 177, + GP_1_2_FN = 178, + GP_1_3_FN = 179, + GP_1_4_FN = 180, + GP_1_5_FN = 181, + GP_1_6_FN = 182, + GP_1_7_FN = 183, + GP_1_8_FN = 184, + GP_1_9_FN = 185, + GP_1_10_FN = 186, + GP_1_11_FN = 187, + GP_1_12_FN = 188, + GP_1_13_FN = 189, + GP_1_14_FN = 190, + GP_1_15_FN = 191, + GP_1_16_FN = 192, + GP_1_17_FN = 193, + GP_1_18_FN = 194, + GP_1_19_FN = 195, + GP_1_20_FN = 196, + GP_1_21_FN = 197, + GP_1_22_FN = 198, + GP_1_23_FN = 199, + GP_1_24_FN = 200, + GP_1_25_FN = 201, + GP_1_26_FN = 202, + GP_1_27_FN = 203, + GP_1_28_FN = 204, + GP_2_0_FN = 205, + GP_2_1_FN = 206, + GP_2_2_FN = 207, + GP_2_3_FN = 208, + GP_2_4_FN = 209, + GP_2_5_FN = 210, + GP_2_6_FN = 211, + GP_2_7_FN = 212, + GP_2_8_FN = 213, + GP_2_9_FN = 214, + GP_2_10_FN = 215, + GP_2_11_FN = 216, + GP_2_12_FN = 217, + GP_2_13_FN = 218, + GP_2_14_FN = 219, + GP_3_0_FN = 220, + GP_3_1_FN = 221, + GP_3_2_FN = 222, + GP_3_3_FN = 223, + GP_3_4_FN = 224, + GP_3_5_FN = 225, + GP_3_6_FN = 226, + GP_3_7_FN = 227, + GP_3_8_FN = 228, + GP_3_9_FN = 229, + GP_3_10_FN = 230, + GP_3_11_FN = 231, + GP_3_12_FN = 232, + GP_3_13_FN = 233, + GP_3_14_FN = 234, + GP_3_15_FN = 235, + GP_4_0_FN = 236, + GP_4_1_FN = 237, + GP_4_2_FN = 238, + GP_4_3_FN = 239, + GP_4_4_FN = 240, + GP_4_5_FN = 241, + GP_4_6_FN = 242, + GP_4_7_FN = 243, + GP_4_8_FN = 244, + GP_4_9_FN = 245, + GP_4_10_FN = 246, + GP_4_11_FN = 247, + GP_4_12_FN = 248, + GP_4_13_FN = 249, + GP_4_14_FN = 250, + GP_4_15_FN = 251, + GP_4_16_FN = 252, + GP_4_17_FN = 253, + GP_5_0_FN = 254, + GP_5_1_FN = 255, + GP_5_2_FN = 256, + GP_5_3_FN = 257, + GP_5_4_FN = 258, + GP_5_5_FN = 259, + GP_5_6_FN = 260, + GP_5_7_FN = 261, + GP_5_8_FN = 262, + GP_5_9_FN = 263, + GP_5_10_FN = 264, + GP_5_11_FN = 265, + GP_5_12_FN = 266, + GP_5_13_FN = 267, + GP_5_14_FN = 268, + GP_5_15_FN = 269, + GP_5_16_FN = 270, + GP_5_17_FN = 271, + GP_5_18_FN = 272, + GP_5_19_FN = 273, + GP_5_20_FN = 274, + GP_5_21_FN = 275, + GP_5_22_FN = 276, + GP_5_23_FN = 277, + GP_5_24_FN = 278, + GP_5_25_FN = 279, + GP_6_0_FN = 280, + GP_6_1_FN = 281, + GP_6_2_FN = 282, + GP_6_3_FN = 283, + GP_6_4_FN = 284, + GP_6_5_FN = 285, + GP_6_6_FN = 286, + GP_6_7_FN = 287, + GP_6_8_FN = 288, + GP_6_9_FN = 289, + GP_6_10_FN = 290, + GP_6_11_FN = 291, + GP_6_12_FN = 292, + GP_6_13_FN = 293, + GP_6_14_FN = 294, + GP_6_15_FN = 295, + GP_6_16_FN = 296, + GP_6_17_FN = 297, + GP_6_18_FN = 298, + GP_6_19_FN = 299, + GP_6_20_FN = 300, + GP_6_21_FN = 301, + GP_6_22_FN = 302, + GP_6_23_FN = 303, + GP_6_24_FN = 304, + GP_6_25_FN = 305, + GP_6_26_FN = 306, + GP_6_27_FN = 307, + GP_6_28_FN = 308, + GP_6_29_FN = 309, + GP_6_30_FN = 310, + GP_6_31_FN = 311, + GP_7_0_FN = 312, + GP_7_1_FN = 313, + GP_7_2_FN = 314, + GP_7_3_FN = 315, + FN_CLKOUT = 316, + FN_MSIOF0_RXD = 317, + FN_MSIOF0_TXD = 318, + FN_MSIOF0_SCK = 319, + FN_SSI_SDATA5 = 320, + FN_SSI_WS5 = 321, + FN_SSI_SCK5 = 322, + FN_GP7_03 = 323, + FN_GP7_02 = 324, + FN_AVS2 = 325, + FN_AVS1 = 326, + FN_IP0_3_0 = 327, + FN_AVB_MDC = 328, + FN_MSIOF2_SS2_C = 329, + FN_IP1_3_0 = 330, + FN_IRQ2 = 331, + FN_QCPV_QDE = 332, + FN_DU_EXODDF_DU_ODDF_DISP_CDE = 333, + FN_VI4_DATA2_B = 334, + FN_MSIOF3_SYNC_E = 335, + FN_PWM3_B = 336, + FN_IP2_3_0 = 337, + FN_A1 = 338, + FN_LCDOUT17 = 339, + FN_MSIOF3_TXD_B = 340, + FN_VI4_DATA9 = 341, + FN_DU_DB1 = 342, + FN_PWM4_A = 343, + FN_IP3_3_0 = 344, + FN_A9 = 345, + FN_MSIOF2_SCK_A = 346, + FN_CTS4_N_B = 347, + FN_VI5_VSYNC_N = 348, + FN_IP0_7_4 = 349, + FN_AVB_MAGIC = 350, + FN_MSIOF2_SS1_C = 351, + FN_SCK4_A = 352, + FN_IP1_7_4 = 353, + FN_IRQ3 = 354, + FN_QSTVB_QVE = 355, + FN_DU_DOTCLKOUT1 = 356, + FN_VI4_DATA3_B = 357, + FN_MSIOF3_SCK_E = 358, + FN_PWM4_B = 359, + FN_IP2_7_4 = 360, + FN_A2 = 361, + FN_LCDOUT18 = 362, + FN_MSIOF3_SCK_B = 363, + FN_VI4_DATA10 = 364, + FN_DU_DB2 = 365, + FN_PWM5_A = 366, + FN_IP3_7_4 = 367, + FN_A10 = 368, + FN_MSIOF2_RXD_A = 369, + FN_RTS4_N_B = 370, + FN_VI5_HSYNC_N = 371, + FN_IP0_11_8 = 372, + FN_AVB_PHY_INT = 373, + FN_MSIOF2_SYNC_C = 374, + FN_RX4_A = 375, + FN_IP1_11_8 = 376, + FN_IRQ4 = 377, + FN_QSTH_QHS = 378, + FN_DU_EXHSYNC_DU_HSYNC = 379, + FN_VI4_DATA4_B = 380, + FN_MSIOF3_RXD_E = 381, + FN_PWM5_B = 382, + FN_IP2_11_8 = 383, + FN_A3 = 384, + FN_LCDOUT19 = 385, + FN_MSIOF3_RXD_B = 386, + FN_VI4_DATA11 = 387, + FN_DU_DB3 = 388, + FN_PWM6_A = 389, + FN_IP3_11_8 = 390, + FN_A11 = 391, + FN_TX3_B = 392, + FN_MSIOF2_TXD_A = 393, + FN_HTX4_B = 394, + FN_HSCK4 = 395, + FN_VI5_FIELD = 396, + FN_SCL6_A = 397, + FN_AVB_AVTP_CAPTURE_B = 398, + FN_PWM2_B = 399, + FN_IP0_15_12 = 400, + FN_AVB_LINK = 401, + FN_MSIOF2_SCK_C = 402, + FN_TX4_A = 403, + FN_IP1_15_12 = 404, + FN_IRQ5 = 405, + FN_QSTB_QHE = 406, + FN_DU_EXVSYNC_DU_VSYNC = 407, + FN_VI4_DATA5_B = 408, + FN_MSIOF3_TXD_E = 409, + FN_PWM6_B = 410, + FN_IP2_15_12 = 411, + FN_A4 = 412, + FN_LCDOUT20 = 413, + FN_MSIOF3_SS1_B = 414, + FN_VI4_DATA12 = 415, + FN_VI5_DATA12 = 416, + FN_DU_DB4 = 417, + FN_IP3_15_12 = 418, + FN_A12 = 419, + FN_LCDOUT12 = 420, + FN_MSIOF3_SCK_C = 421, + FN_HRX4_A = 422, + FN_VI5_DATA8 = 423, + FN_DU_DG4 = 424, + FN_IP0_19_16 = 425, + FN_AVB_AVTP_MATCH_A = 426, + FN_MSIOF2_RXD_C = 427, + FN_CTS4_N_A = 428, + FN_IP1_19_16 = 429, + FN_PWM0 = 430, + FN_AVB_AVTP_PPS = 431, + FN_VI4_DATA6_B = 432, + FN_IECLK_B = 433, + FN_IP2_19_16 = 434, + FN_A5 = 435, + FN_LCDOUT21 = 436, + FN_MSIOF3_SS2_B = 437, + FN_SCK4_B = 438, + FN_VI4_DATA13 = 439, + FN_VI5_DATA13 = 440, + FN_DU_DB5 = 441, + FN_IP3_19_16 = 442, + FN_A13 = 443, + FN_LCDOUT13 = 444, + FN_MSIOF3_SYNC_C = 445, + FN_HTX4_A = 446, + FN_VI5_DATA9 = 447, + FN_DU_DG5 = 448, + FN_IP0_23_20 = 449, + FN_AVB_AVTP_CAPTURE_A = 450, + FN_MSIOF2_TXD_C = 451, + FN_RTS4_N_A = 452, + FN_IP1_23_20 = 453, + FN_PWM1_A = 454, + FN_HRX3_D = 455, + FN_VI4_DATA7_B = 456, + FN_IERX_B = 457, + FN_IP2_23_20 = 458, + FN_A6 = 459, + FN_LCDOUT22 = 460, + FN_MSIOF2_SS1_A = 461, + FN_RX4_B = 462, + FN_VI4_DATA14 = 463, + FN_VI5_DATA14 = 464, + FN_DU_DB6 = 465, + FN_IP3_23_20 = 466, + FN_A14 = 467, + FN_LCDOUT14 = 468, + FN_MSIOF3_RXD_C = 469, + FN_HCTS4_N = 470, + FN_VI5_DATA10 = 471, + FN_DU_DG6 = 472, + FN_IP0_27_24 = 473, + FN_IRQ0 = 474, + FN_QPOLB = 475, + FN_DU_CDE = 476, + FN_VI4_DATA0_B = 477, + FN_CAN0_TX_B = 478, + FN_CANFD0_TX_B = 479, + FN_MSIOF3_SS2_E = 480, + FN_IP1_27_24 = 481, + FN_PWM2_A = 482, + FN_HTX3_D = 483, + FN_IETX_B = 484, + FN_IP2_27_24 = 485, + FN_A7 = 486, + FN_LCDOUT23 = 487, + FN_MSIOF2_SS2_A = 488, + FN_TX4_B = 489, + FN_VI4_DATA15 = 490, + FN_VI5_DATA15 = 491, + FN_DU_DB7 = 492, + FN_IP3_27_24 = 493, + FN_A15 = 494, + FN_LCDOUT15 = 495, + FN_MSIOF3_TXD_C = 496, + FN_HRTS4_N = 497, + FN_VI5_DATA11 = 498, + FN_DU_DG7 = 499, + FN_IP0_31_28 = 500, + FN_IRQ1 = 501, + FN_QPOLA = 502, + FN_DU_DISP = 503, + FN_VI4_DATA1_B = 504, + FN_CAN0_RX_B = 505, + FN_CANFD0_RX_B = 506, + FN_MSIOF3_SS1_E = 507, + FN_IP1_31_28 = 508, + FN_A0 = 509, + FN_LCDOUT16 = 510, + FN_MSIOF3_SYNC_B = 511, + FN_VI4_DATA8 = 512, + FN_DU_DB0 = 513, + FN_PWM3_A = 514, + FN_IP2_31_28 = 515, + FN_A8 = 516, + FN_RX3_B = 517, + FN_MSIOF2_SYNC_A = 518, + FN_HRX4_B = 519, + FN_SDA6_A = 520, + FN_AVB_AVTP_MATCH_B = 521, + FN_PWM1_B = 522, + FN_IP3_31_28 = 523, + FN_A16 = 524, + FN_LCDOUT8 = 525, + FN_VI4_FIELD = 526, + FN_DU_DG0 = 527, + FN_IP4_3_0 = 528, + FN_A17 = 529, + FN_LCDOUT9 = 530, + FN_VI4_VSYNC_N = 531, + FN_DU_DG1 = 532, + FN_IP5_3_0 = 533, + FN_WE0_N = 534, + FN_MSIOF3_TXD_D = 535, + FN_CTS3_N = 536, + FN_HCTS3_N = 537, + FN_SCL6_B = 538, + FN_CAN_CLK = 539, + FN_IECLK_A = 540, + FN_IP6_3_0 = 541, + FN_D5 = 542, + FN_MSIOF2_SYNC_B = 543, + FN_VI4_DATA21 = 544, + FN_VI5_DATA5 = 545, + FN_IP7_3_0 = 546, + FN_D13 = 547, + FN_LCDOUT5 = 548, + FN_MSIOF2_SS2_D = 549, + FN_TX4_C = 550, + FN_VI4_DATA5_A = 551, + FN_DU_DR5 = 552, + FN_IP4_7_4 = 553, + FN_A18 = 554, + FN_LCDOUT10 = 555, + FN_VI4_HSYNC_N = 556, + FN_DU_DG2 = 557, + FN_IP5_7_4 = 558, + FN_WE1_N = 559, + FN_MSIOF3_SS1_D = 560, + FN_RTS3_N = 561, + FN_HRTS3_N = 562, + FN_SDA6_B = 563, + FN_CAN1_RX = 564, + FN_CANFD1_RX = 565, + FN_IERX_A = 566, + FN_IP6_7_4 = 567, + FN_D6 = 568, + FN_MSIOF2_RXD_B = 569, + FN_VI4_DATA22 = 570, + FN_VI5_DATA6 = 571, + FN_IP7_7_4 = 572, + FN_D14 = 573, + FN_LCDOUT6 = 574, + FN_MSIOF3_SS1_A = 575, + FN_HRX3_C = 576, + FN_VI4_DATA6_A = 577, + FN_DU_DR6 = 578, + FN_SCL6_C = 579, + FN_IP4_11_8 = 580, + FN_A19 = 581, + FN_LCDOUT11 = 582, + FN_VI4_CLKENB = 583, + FN_DU_DG3 = 584, + FN_IP5_11_8 = 585, + FN_EX_WAIT0_A = 586, + FN_QCLK = 587, + FN_VI4_CLK = 588, + FN_DU_DOTCLKOUT0 = 589, + FN_IP6_11_8 = 590, + FN_D7 = 591, + FN_MSIOF2_TXD_B = 592, + FN_VI4_DATA23 = 593, + FN_VI5_DATA7 = 594, + FN_IP7_11_8 = 595, + FN_D15 = 596, + FN_LCDOUT7 = 597, + FN_MSIOF3_SS2_A = 598, + FN_HTX3_C = 599, + FN_VI4_DATA7_A = 600, + FN_DU_DR7 = 601, + FN_SDA6_C = 602, + FN_IP4_15_12 = 603, + FN_CS0_N = 604, + FN_VI5_CLKENB = 605, + FN_IP5_15_12 = 606, + FN_D0 = 607, + FN_MSIOF2_SS1_B = 608, + FN_MSIOF3_SCK_A = 609, + FN_VI4_DATA16 = 610, + FN_VI5_DATA0 = 611, + FN_IP6_15_12 = 612, + FN_D8 = 613, + FN_LCDOUT0 = 614, + FN_MSIOF2_SCK_D = 615, + FN_SCK4_C = 616, + FN_VI4_DATA0_A = 617, + FN_DU_DR0 = 618, + FN_IP4_19_16 = 619, + FN_CS1_N = 620, + FN_VI5_CLK = 621, + FN_EX_WAIT0_B = 622, + FN_IP5_19_16 = 623, + FN_D1 = 624, + FN_MSIOF2_SS2_B = 625, + FN_MSIOF3_SYNC_A = 626, + FN_VI4_DATA17 = 627, + FN_VI5_DATA1 = 628, + FN_IP6_19_16 = 629, + FN_D9 = 630, + FN_LCDOUT1 = 631, + FN_MSIOF2_SYNC_D = 632, + FN_VI4_DATA1_A = 633, + FN_DU_DR1 = 634, + FN_IP7_19_16 = 635, + FN_SD0_CLK = 636, + FN_MSIOF1_SCK_E = 637, + FN_STP_OPWM_0_B = 638, + FN_IP4_23_20 = 639, + FN_BS_N = 640, + FN_QSTVA_QVS = 641, + FN_MSIOF3_SCK_D = 642, + FN_SCK3 = 643, + FN_HSCK3 = 644, + FN_CAN1_TX = 645, + FN_CANFD1_TX = 646, + FN_IETX_A = 647, + FN_IP5_23_20 = 648, + FN_D2 = 649, + FN_MSIOF3_RXD_A = 650, + FN_VI4_DATA18 = 651, + FN_VI5_DATA2 = 652, + FN_IP6_23_20 = 653, + FN_D10 = 654, + FN_LCDOUT2 = 655, + FN_MSIOF2_RXD_D = 656, + FN_HRX3_B = 657, + FN_VI4_DATA2_A = 658, + FN_CTS4_N_C = 659, + FN_DU_DR2 = 660, + FN_IP7_23_20 = 661, + FN_SD0_CMD = 662, + FN_MSIOF1_SYNC_E = 663, + FN_STP_IVCXO27_0_B = 664, + FN_IP4_27_24 = 665, + FN_RD_N = 666, + FN_MSIOF3_SYNC_D = 667, + FN_RX3_A = 668, + FN_HRX3_A = 669, + FN_CAN0_TX_A = 670, + FN_CANFD0_TX_A = 671, + FN_IP5_27_24 = 672, + FN_D3 = 673, + FN_MSIOF3_TXD_A = 674, + FN_VI4_DATA19 = 675, + FN_VI5_DATA3 = 676, + FN_IP6_27_24 = 677, + FN_D11 = 678, + FN_LCDOUT3 = 679, + FN_MSIOF2_TXD_D = 680, + FN_HTX3_B = 681, + FN_VI4_DATA3_A = 682, + FN_RTS4_N_C = 683, + FN_DU_DR3 = 684, + FN_IP7_27_24 = 685, + FN_SD0_DAT0 = 686, + FN_MSIOF1_RXD_E = 687, + FN_TS_SCK0_B = 688, + FN_STP_ISCLK_0_B = 689, + FN_IP4_31_28 = 690, + FN_RD_WR_N = 691, + FN_MSIOF3_RXD_D = 692, + FN_TX3_A = 693, + FN_HTX3_A = 694, + FN_CAN0_RX_A = 695, + FN_CANFD0_RX_A = 696, + FN_IP5_31_28 = 697, + FN_D4 = 698, + FN_MSIOF2_SCK_B = 699, + FN_VI4_DATA20 = 700, + FN_VI5_DATA4 = 701, + FN_IP6_31_28 = 702, + FN_D12 = 703, + FN_LCDOUT4 = 704, + FN_MSIOF2_SS1_D = 705, + FN_RX4_C = 706, + FN_VI4_DATA4_A = 707, + FN_DU_DR4 = 708, + FN_IP7_31_28 = 709, + FN_SD0_DAT1 = 710, + FN_MSIOF1_TXD_E = 711, + FN_TS_SPSYNC0_B = 712, + FN_STP_ISSYNC_0_B = 713, + FN_IP8_3_0 = 714, + FN_SD0_DAT2 = 715, + FN_MSIOF1_SS1_E = 716, + FN_TS_SDAT0_B = 717, + FN_STP_ISD_0_B = 718, + FN_IP9_3_0 = 719, + FN_SD2_CLK = 720, + FN_NFDATA8 = 721, + FN_IP10_3_0 = 722, + FN_SD3_CMD = 723, + FN_NFRE_N = 724, + FN_IP11_3_0 = 725, + FN_SD3_DAT7 = 726, + FN_SD3_WP = 727, + FN_NFDATA7 = 728, + FN_IP8_7_4 = 729, + FN_SD0_DAT3 = 730, + FN_MSIOF1_SS2_E = 731, + FN_TS_SDEN0_B = 732, + FN_STP_ISEN_0_B = 733, + FN_IP9_7_4 = 734, + FN_SD2_CMD = 735, + FN_NFDATA9 = 736, + FN_IP10_7_4 = 737, + FN_SD3_DAT0 = 738, + FN_NFDATA0 = 739, + FN_IP11_7_4 = 740, + FN_SD3_DS = 741, + FN_NFCLE = 742, + FN_IP8_11_8 = 743, + FN_SD1_CLK = 744, + FN_MSIOF1_SCK_G = 745, + FN_SIM0_CLK_A = 746, + FN_IP9_11_8 = 747, + FN_SD2_DAT0 = 748, + FN_NFDATA10 = 749, + FN_IP10_11_8 = 750, + FN_SD3_DAT1 = 751, + FN_NFDATA1 = 752, + FN_IP11_11_8 = 753, + FN_SD0_CD = 754, + FN_NFDATA14_A = 755, + FN_SCL2_B = 756, + FN_SIM0_RST_A = 757, + FN_IP8_15_12 = 758, + FN_SD1_CMD = 759, + FN_MSIOF1_SYNC_G = 760, + FN_NFCE_N_B = 761, + FN_SIM0_D_A = 762, + FN_STP_IVCXO27_1_B = 763, + FN_IP9_15_12 = 764, + FN_SD2_DAT1 = 765, + FN_NFDATA11 = 766, + FN_IP10_15_12 = 767, + FN_SD3_DAT2 = 768, + FN_NFDATA2 = 769, + FN_IP11_15_12 = 770, + FN_SD0_WP = 771, + FN_NFDATA15_A = 772, + FN_SDA2_B = 773, + FN_IP8_19_16 = 774, + FN_SD1_DAT0 = 775, + FN_SD2_DAT4 = 776, + FN_MSIOF1_RXD_G = 777, + FN_NFWP_N_B = 778, + FN_TS_SCK1_B = 779, + FN_STP_ISCLK_1_B = 780, + FN_IP9_19_16 = 781, + FN_SD2_DAT2 = 782, + FN_NFDATA12 = 783, + FN_IP10_19_16 = 784, + FN_SD3_DAT3 = 785, + FN_NFDATA3 = 786, + FN_IP11_19_16 = 787, + FN_SD1_CD = 788, + FN_NFRB_N_A = 789, + FN_SIM0_CLK_B = 790, + FN_IP8_23_20 = 791, + FN_SD1_DAT1 = 792, + FN_SD2_DAT5 = 793, + FN_MSIOF1_TXD_G = 794, + FN_NFDATA14_B = 795, + FN_TS_SPSYNC1_B = 796, + FN_STP_ISSYNC_1_B = 797, + FN_IP9_23_20 = 798, + FN_SD2_DAT3 = 799, + FN_NFDATA13 = 800, + FN_IP10_23_20 = 801, + FN_SD3_DAT4 = 802, + FN_SD2_CD_A = 803, + FN_NFDATA4 = 804, + FN_IP11_23_20 = 805, + FN_SD1_WP = 806, + FN_NFCE_N_A = 807, + FN_SIM0_D_B = 808, + FN_IP8_27_24 = 809, + FN_SD1_DAT2 = 810, + FN_SD2_DAT6 = 811, + FN_MSIOF1_SS1_G = 812, + FN_NFDATA15_B = 813, + FN_TS_SDAT1_B = 814, + FN_STP_ISD_1_B = 815, + FN_IP9_27_24 = 816, + FN_SD2_DS = 817, + FN_NFALE = 818, + FN_IP10_27_24 = 819, + FN_SD3_DAT5 = 820, + FN_SD2_WP_A = 821, + FN_NFDATA5 = 822, + FN_IP11_27_24 = 823, + FN_SCK0 = 824, + FN_HSCK1_B = 825, + FN_MSIOF1_SS2_B = 826, + FN_AUDIO_CLKC_B = 827, + FN_SDA2_A = 828, + FN_SIM0_RST_B = 829, + FN_STP_OPWM_0_C = 830, + FN_RIF0_CLK_B = 831, + FN_ADICHS2 = 832, + FN_SCK5_B = 833, + FN_IP8_31_28 = 834, + FN_SD1_DAT3 = 835, + FN_SD2_DAT7 = 836, + FN_MSIOF1_SS2_G = 837, + FN_NFRB_N_B = 838, + FN_TS_SDEN1_B = 839, + FN_STP_ISEN_1_B = 840, + FN_IP9_31_28 = 841, + FN_SD3_CLK = 842, + FN_NFWE_N = 843, + FN_IP10_31_28 = 844, + FN_SD3_DAT6 = 845, + FN_SD3_CD = 846, + FN_NFDATA6 = 847, + FN_IP11_31_28 = 848, + FN_RX0 = 849, + FN_HRX1_B = 850, + FN_TS_SCK0_C = 851, + FN_STP_ISCLK_0_C = 852, + FN_RIF0_D0_B = 853, + FN_IP12_3_0 = 854, + FN_TX0 = 855, + FN_HTX1_B = 856, + FN_TS_SPSYNC0_C = 857, + FN_STP_ISSYNC_0_C = 858, + FN_RIF0_D1_B = 859, + FN_IP13_3_0 = 860, + FN_TX2_A = 861, + FN_SD2_CD_B = 862, + FN_SCL1_A = 863, + FN_FMCLK_A = 864, + FN_RIF1_D1_C = 865, + FN_FSO_CFE_0_N = 866, + FN_IP14_3_0 = 867, + FN_MSIOF0_SS1 = 868, + FN_RX5_A = 869, + FN_NFWP_N_A = 870, + FN_AUDIO_CLKA_C = 871, + FN_SSI_SCK2_A = 872, + FN_STP_IVCXO27_0_C = 873, + FN_AUDIO_CLKOUT3_A = 874, + FN_TCLK1_B = 875, + FN_IP15_3_0 = 876, + FN_SSI_SDATA1_A = 877, + FN_IP12_7_4 = 878, + FN_CTS0_N = 879, + FN_HCTS1_N_B = 880, + FN_MSIOF1_SYNC_B = 881, + FN_TS_SPSYNC1_C = 882, + FN_STP_ISSYNC_1_C = 883, + FN_RIF1_SYNC_B = 884, + FN_AUDIO_CLKOUT_C = 885, + FN_ADICS_SAMP = 886, + FN_IP13_7_4 = 887, + FN_RX2_A = 888, + FN_SD2_WP_B = 889, + FN_SDA1_A = 890, + FN_FMIN_A = 891, + FN_RIF1_SYNC_C = 892, + FN_FSO_CFE_1_N = 893, + FN_IP14_7_4 = 894, + FN_MSIOF0_SS2 = 895, + FN_TX5_A = 896, + FN_MSIOF1_SS2_D = 897, + FN_AUDIO_CLKC_A = 898, + FN_SSI_WS2_A = 899, + FN_STP_OPWM_0_D = 900, + FN_AUDIO_CLKOUT_D = 901, + FN_SPEEDIN_B = 902, + FN_IP15_7_4 = 903, + FN_SSI_SDATA2_A = 904, + FN_SSI_SCK1_B = 905, + FN_IP12_11_8 = 906, + FN_RTS0_N = 907, + FN_HRTS1_N_B = 908, + FN_MSIOF1_SS1_B = 909, + FN_AUDIO_CLKA_B = 910, + FN_SCL2_A = 911, + FN_STP_IVCXO27_1_C = 912, + FN_RIF0_SYNC_B = 913, + FN_ADICHS1 = 914, + FN_IP13_11_8 = 915, + FN_HSCK0 = 916, + FN_MSIOF1_SCK_D = 917, + FN_AUDIO_CLKB_A = 918, + FN_SSI_SDATA1_B = 919, + FN_TS_SCK0_D = 920, + FN_STP_ISCLK_0_D = 921, + FN_RIF0_CLK_C = 922, + FN_RX5_B = 923, + FN_IP14_11_8 = 924, + FN_MLB_CLK = 925, + FN_MSIOF1_SCK_F = 926, + FN_SCL1_B = 927, + FN_IP15_11_8 = 928, + FN_SSI_SCK349 = 929, + FN_MSIOF1_SS1_A = 930, + FN_STP_OPWM_0_A = 931, + FN_IP12_15_12 = 932, + FN_RX1_A = 933, + FN_HRX1_A = 934, + FN_TS_SDAT0_C = 935, + FN_STP_ISD_0_C = 936, + FN_RIF1_CLK_C = 937, + FN_IP13_15_12 = 938, + FN_HRX0 = 939, + FN_MSIOF1_RXD_D = 940, + FN_SSI_SDATA2_B = 941, + FN_TS_SDEN0_D = 942, + FN_STP_ISEN_0_D = 943, + FN_RIF0_D0_C = 944, + FN_IP14_15_12 = 945, + FN_MLB_SIG = 946, + FN_RX1_B = 947, + FN_MSIOF1_SYNC_F = 948, + FN_SDA1_B = 949, + FN_IP15_15_12 = 950, + FN_SSI_WS349 = 951, + FN_HCTS2_N_A = 952, + FN_MSIOF1_SS2_A = 953, + FN_STP_IVCXO27_0_A = 954, + FN_IP12_19_16 = 955, + FN_TX1_A = 956, + FN_HTX1_A = 957, + FN_TS_SDEN0_C = 958, + FN_STP_ISEN_0_C = 959, + FN_RIF1_D0_C = 960, + FN_IP13_19_16 = 961, + FN_HTX0 = 962, + FN_MSIOF1_TXD_D = 963, + FN_SSI_SDATA9_B = 964, + FN_TS_SDAT0_D = 965, + FN_STP_ISD_0_D = 966, + FN_RIF0_D1_C = 967, + FN_IP14_19_16 = 968, + FN_MLB_DAT = 969, + FN_TX1_B = 970, + FN_MSIOF1_RXD_F = 971, + FN_IP15_19_16 = 972, + FN_SSI_SDATA3 = 973, + FN_HRTS2_N_A = 974, + FN_MSIOF1_TXD_A = 975, + FN_TS_SCK0_A = 976, + FN_STP_ISCLK_0_A = 977, + FN_RIF0_D1_A = 978, + FN_RIF2_D0_A = 979, + FN_IP12_23_20 = 980, + FN_CTS1_N = 981, + FN_HCTS1_N_A = 982, + FN_MSIOF1_RXD_B = 983, + FN_TS_SDEN1_C = 984, + FN_STP_ISEN_1_C = 985, + FN_RIF1_D0_B = 986, + FN_ADIDATA = 987, + FN_IP13_23_20 = 988, + FN_HCTS0_N = 989, + FN_RX2_B = 990, + FN_MSIOF1_SYNC_D = 991, + FN_SSI_SCK9_A = 992, + FN_TS_SPSYNC0_D = 993, + FN_STP_ISSYNC_0_D = 994, + FN_RIF0_SYNC_C = 995, + FN_AUDIO_CLKOUT1_A = 996, + FN_IP14_23_20 = 997, + FN_SSI_SCK01239 = 998, + FN_MSIOF1_TXD_F = 999, + FN_IP15_23_20 = 1000, + FN_SSI_SCK4 = 1001, + FN_HRX2_A = 1002, + FN_MSIOF1_SCK_A = 1003, + FN_TS_SDAT0_A = 1004, + FN_STP_ISD_0_A = 1005, + FN_RIF0_CLK_A = 1006, + FN_RIF2_CLK_A = 1007, + FN_IP12_27_24 = 1008, + FN_RTS1_N = 1009, + FN_HRTS1_N_A = 1010, + FN_MSIOF1_TXD_B = 1011, + FN_TS_SDAT1_C = 1012, + FN_STP_ISD_1_C = 1013, + FN_RIF1_D1_B = 1014, + FN_ADICHS0 = 1015, + FN_IP13_27_24 = 1016, + FN_HRTS0_N = 1017, + FN_TX2_B = 1018, + FN_MSIOF1_SS1_D = 1019, + FN_SSI_WS9_A = 1020, + FN_STP_IVCXO27_0_D = 1021, + FN_BPFCLK_A = 1022, + FN_AUDIO_CLKOUT2_A = 1023, + FN_IP14_27_24 = 1024, + FN_SSI_WS01239 = 1025, + FN_MSIOF1_SS1_F = 1026, + FN_IP15_27_24 = 1027, + FN_SSI_WS4 = 1028, + FN_HTX2_A = 1029, + FN_MSIOF1_SYNC_A = 1030, + FN_TS_SDEN0_A = 1031, + FN_STP_ISEN_0_A = 1032, + FN_RIF0_SYNC_A = 1033, + FN_RIF2_SYNC_A = 1034, + FN_IP12_31_28 = 1035, + FN_SCK2 = 1036, + FN_SCIF_CLK_B = 1037, + FN_MSIOF1_SCK_B = 1038, + FN_TS_SCK1_C = 1039, + FN_STP_ISCLK_1_C = 1040, + FN_RIF1_CLK_B = 1041, + FN_ADICLK = 1042, + FN_IP13_31_28 = 1043, + FN_MSIOF0_SYNC = 1044, + FN_AUDIO_CLKOUT_A = 1045, + FN_TX5_B = 1046, + FN_BPFCLK_D = 1047, + FN_IP14_31_28 = 1048, + FN_SSI_SDATA0 = 1049, + FN_MSIOF1_SS2_F = 1050, + FN_IP15_31_28 = 1051, + FN_SSI_SDATA4 = 1052, + FN_HSCK2_A = 1053, + FN_MSIOF1_RXD_A = 1054, + FN_TS_SPSYNC0_A = 1055, + FN_STP_ISSYNC_0_A = 1056, + FN_RIF0_D0_A = 1057, + FN_RIF2_D1_A = 1058, + FN_IP16_3_0 = 1059, + FN_SSI_SCK6 = 1060, + FN_SIM0_RST_D = 1061, + FN_IP17_3_0 = 1062, + FN_AUDIO_CLKA_A = 1063, + FN_IP18_3_0 = 1064, + FN_GP6_30 = 1065, + FN_AUDIO_CLKOUT2_B = 1066, + FN_SSI_SCK9_B = 1067, + FN_TS_SDEN0_E = 1068, + FN_STP_ISEN_0_E = 1069, + FN_RIF2_D0_B = 1070, + FN_TPU0TO2 = 1071, + FN_FMCLK_C = 1072, + FN_FMCLK_D = 1073, + FN_IP16_7_4 = 1074, + FN_SSI_WS6 = 1075, + FN_SIM0_D_D = 1076, + FN_IP17_7_4 = 1077, + FN_AUDIO_CLKB_B = 1078, + FN_SCIF_CLK_A = 1079, + FN_STP_IVCXO27_1_D = 1080, + FN_REMOCON_A = 1081, + FN_TCLK1_A = 1082, + FN_IP18_7_4 = 1083, + FN_GP6_31 = 1084, + FN_AUDIO_CLKOUT3_B = 1085, + FN_SSI_WS9_B = 1086, + FN_TS_SPSYNC0_E = 1087, + FN_STP_ISSYNC_0_E = 1088, + FN_RIF2_D1_B = 1089, + FN_TPU0TO3 = 1090, + FN_FMIN_C = 1091, + FN_FMIN_D = 1092, + FN_IP16_11_8 = 1093, + FN_SSI_SDATA6 = 1094, + FN_SIM0_CLK_D = 1095, + FN_IP17_11_8 = 1096, + FN_USB0_PWEN = 1097, + FN_SIM0_RST_C = 1098, + FN_TS_SCK1_D = 1099, + FN_STP_ISCLK_1_D = 1100, + FN_BPFCLK_B = 1101, + FN_RIF3_CLK_B = 1102, + FN_HSCK2_C = 1103, + FN_IP16_15_12 = 1104, + FN_SSI_SCK78 = 1105, + FN_HRX2_B = 1106, + FN_MSIOF1_SCK_C = 1107, + FN_TS_SCK1_A = 1108, + FN_STP_ISCLK_1_A = 1109, + FN_RIF1_CLK_A = 1110, + FN_RIF3_CLK_A = 1111, + FN_IP17_15_12 = 1112, + FN_USB0_OVC = 1113, + FN_SIM0_D_C = 1114, + FN_TS_SDAT1_D = 1115, + FN_STP_ISD_1_D = 1116, + FN_RIF3_SYNC_B = 1117, + FN_HRX2_C = 1118, + FN_IP16_19_16 = 1119, + FN_SSI_WS78 = 1120, + FN_HTX2_B = 1121, + FN_MSIOF1_SYNC_C = 1122, + FN_TS_SDAT1_A = 1123, + FN_STP_ISD_1_A = 1124, + FN_RIF1_SYNC_A = 1125, + FN_RIF3_SYNC_A = 1126, + FN_IP17_19_16 = 1127, + FN_USB1_PWEN = 1128, + FN_SIM0_CLK_C = 1129, + FN_SSI_SCK1_A = 1130, + FN_TS_SCK0_E = 1131, + FN_STP_ISCLK_0_E = 1132, + FN_FMCLK_B = 1133, + FN_RIF2_CLK_B = 1134, + FN_SPEEDIN_A = 1135, + FN_HTX2_C = 1136, + FN_IP16_23_20 = 1137, + FN_SSI_SDATA7 = 1138, + FN_HCTS2_N_B = 1139, + FN_MSIOF1_RXD_C = 1140, + FN_TS_SDEN1_A = 1141, + FN_STP_ISEN_1_A = 1142, + FN_RIF1_D0_A = 1143, + FN_RIF3_D0_A = 1144, + FN_TCLK2_A = 1145, + FN_IP17_23_20 = 1146, + FN_USB1_OVC = 1147, + FN_MSIOF1_SS2_C = 1148, + FN_SSI_WS1_A = 1149, + FN_TS_SDAT0_E = 1150, + FN_STP_ISD_0_E = 1151, + FN_FMIN_B = 1152, + FN_RIF2_SYNC_B = 1153, + FN_REMOCON_B = 1154, + FN_HCTS2_N_C = 1155, + FN_IP16_27_24 = 1156, + FN_SSI_SDATA8 = 1157, + FN_HRTS2_N_B = 1158, + FN_MSIOF1_TXD_C = 1159, + FN_TS_SPSYNC1_A = 1160, + FN_STP_ISSYNC_1_A = 1161, + FN_RIF1_D1_A = 1162, + FN_RIF3_D1_A = 1163, + FN_IP17_27_24 = 1164, + FN_USB30_PWEN = 1165, + FN_AUDIO_CLKOUT_B = 1166, + FN_SSI_SCK2_B = 1167, + FN_TS_SDEN1_D = 1168, + FN_STP_ISEN_1_D = 1169, + FN_STP_OPWM_0_E = 1170, + FN_RIF3_D0_B = 1171, + FN_TCLK2_B = 1172, + FN_TPU0TO0 = 1173, + FN_BPFCLK_C = 1174, + FN_HRTS2_N_C = 1175, + FN_IP16_31_28 = 1176, + FN_SSI_SDATA9_A = 1177, + FN_HSCK2_B = 1178, + FN_MSIOF1_SS1_C = 1179, + FN_HSCK1_A = 1180, + FN_SSI_WS1_B = 1181, + FN_SCK1 = 1182, + FN_STP_IVCXO27_1_A = 1183, + FN_SCK5_A = 1184, + FN_IP17_31_28 = 1185, + FN_USB30_OVC = 1186, + FN_AUDIO_CLKOUT1_B = 1187, + FN_SSI_WS2_B = 1188, + FN_TS_SPSYNC1_D = 1189, + FN_STP_ISSYNC_1_D = 1190, + FN_STP_IVCXO27_0_E = 1191, + FN_RIF3_D1_B = 1192, + FN_FSO_TOE_N = 1193, + FN_TPU0TO1 = 1194, + FN_SEL_MSIOF3_0 = 1195, + FN_SEL_MSIOF3_1 = 1196, + FN_SEL_MSIOF3_2 = 1197, + FN_SEL_MSIOF3_3 = 1198, + FN_SEL_MSIOF3_4 = 1199, + FN_SEL_TSIF1_0 = 1200, + FN_SEL_TSIF1_1 = 1201, + FN_SEL_TSIF1_2 = 1202, + FN_SEL_TSIF1_3 = 1203, + FN_I2C_SEL_5_0 = 1204, + FN_I2C_SEL_5_1 = 1205, + FN_I2C_SEL_3_0 = 1206, + FN_I2C_SEL_3_1 = 1207, + FN_SEL_TSIF0_0 = 1208, + FN_SEL_TSIF0_1 = 1209, + FN_SEL_TSIF0_2 = 1210, + FN_SEL_TSIF0_3 = 1211, + FN_SEL_TSIF0_4 = 1212, + FN_I2C_SEL_0_0 = 1213, + FN_I2C_SEL_0_1 = 1214, + FN_SEL_MSIOF2_0 = 1215, + FN_SEL_MSIOF2_1 = 1216, + FN_SEL_MSIOF2_2 = 1217, + FN_SEL_MSIOF2_3 = 1218, + FN_SEL_FM_0 = 1219, + FN_SEL_FM_1 = 1220, + FN_SEL_FM_2 = 1221, + FN_SEL_FM_3 = 1222, + FN_SEL_MSIOF1_0 = 1223, + FN_SEL_MSIOF1_1 = 1224, + FN_SEL_MSIOF1_2 = 1225, + FN_SEL_MSIOF1_3 = 1226, + FN_SEL_MSIOF1_4 = 1227, + FN_SEL_MSIOF1_5 = 1228, + FN_SEL_MSIOF1_6 = 1229, + FN_SEL_TIMER_TMU_0 = 1230, + FN_SEL_TIMER_TMU_1 = 1231, + FN_SEL_SCIF5_0 = 1232, + FN_SEL_SCIF5_1 = 1233, + FN_SEL_SSP1_1_0 = 1234, + FN_SEL_SSP1_1_1 = 1235, + FN_SEL_SSP1_1_2 = 1236, + FN_SEL_SSP1_1_3 = 1237, + FN_SEL_I2C6_0 = 1238, + FN_SEL_I2C6_1 = 1239, + FN_SEL_I2C6_2 = 1240, + FN_SEL_LBSC_0 = 1241, + FN_SEL_LBSC_1 = 1242, + FN_SEL_SSP1_0_0 = 1243, + FN_SEL_SSP1_0_1 = 1244, + FN_SEL_SSP1_0_2 = 1245, + FN_SEL_SSP1_0_3 = 1246, + FN_SEL_SSP1_0_4 = 1247, + FN_SEL_IEBUS_0 = 1248, + FN_SEL_IEBUS_1 = 1249, + FN_SEL_NDF_0 = 1250, + FN_SEL_NDF_1 = 1251, + FN_SEL_I2C2_0 = 1252, + FN_SEL_I2C2_1 = 1253, + FN_SEL_SSI2_0 = 1254, + FN_SEL_SSI2_1 = 1255, + FN_SEL_I2C1_0 = 1256, + FN_SEL_I2C1_1 = 1257, + FN_SEL_SSI1_0 = 1258, + FN_SEL_SSI1_1 = 1259, + FN_SEL_SSI9_0 = 1260, + FN_SEL_SSI9_1 = 1261, + FN_SEL_HSCIF4_0 = 1262, + FN_SEL_HSCIF4_1 = 1263, + FN_SEL_SPEED_PULSE_0 = 1264, + FN_SEL_SPEED_PULSE_1 = 1265, + FN_SEL_TIMER_TMU2_0 = 1266, + FN_SEL_TIMER_TMU2_1 = 1267, + FN_SEL_HSCIF3_0 = 1268, + FN_SEL_HSCIF3_1 = 1269, + FN_SEL_HSCIF3_2 = 1270, + FN_SEL_HSCIF3_3 = 1271, + FN_SEL_SIMCARD_0 = 1272, + FN_SEL_SIMCARD_1 = 1273, + FN_SEL_SIMCARD_2 = 1274, + FN_SEL_SIMCARD_3 = 1275, + FN_SEL_ADGB_0 = 1276, + FN_SEL_ADGB_1 = 1277, + FN_SEL_ADGC_0 = 1278, + FN_SEL_ADGC_1 = 1279, + FN_SEL_HSCIF1_0 = 1280, + FN_SEL_HSCIF1_1 = 1281, + FN_SEL_SDHI2_0 = 1282, + FN_SEL_SDHI2_1 = 1283, + FN_SEL_SCIF4_0 = 1284, + FN_SEL_SCIF4_1 = 1285, + FN_SEL_SCIF4_2 = 1286, + FN_SEL_HSCIF2_0 = 1287, + FN_SEL_HSCIF2_1 = 1288, + FN_SEL_HSCIF2_2 = 1289, + FN_SEL_SCIF3_0 = 1290, + FN_SEL_SCIF3_1 = 1291, + FN_SEL_ETHERAVB_0 = 1292, + FN_SEL_ETHERAVB_1 = 1293, + FN_SEL_SCIF2_0 = 1294, + FN_SEL_SCIF2_1 = 1295, + FN_SEL_DRIF3_0 = 1296, + FN_SEL_DRIF3_1 = 1297, + FN_SEL_SCIF1_0 = 1298, + FN_SEL_SCIF1_1 = 1299, + FN_SEL_DRIF2_0 = 1300, + FN_SEL_DRIF2_1 = 1301, + FN_SEL_SCIF_0 = 1302, + FN_SEL_SCIF_1 = 1303, + FN_SEL_DRIF1_0 = 1304, + FN_SEL_DRIF1_1 = 1305, + FN_SEL_DRIF1_2 = 1306, + FN_SEL_REMOCON_0 = 1307, + FN_SEL_REMOCON_1 = 1308, + FN_SEL_DRIF0_0 = 1309, + FN_SEL_DRIF0_1 = 1310, + FN_SEL_DRIF0_2 = 1311, + FN_SEL_RCAN0_0 = 1312, + FN_SEL_RCAN0_1 = 1313, + FN_SEL_CANFD0_0 = 1314, + FN_SEL_CANFD0_1 = 1315, + FN_SEL_PWM6_0 = 1316, + FN_SEL_PWM6_1 = 1317, + FN_SEL_ADGA_0 = 1318, + FN_SEL_ADGA_1 = 1319, + FN_SEL_ADGA_2 = 1320, + FN_SEL_ADGA_3 = 1321, + FN_SEL_PWM5_0 = 1322, + FN_SEL_PWM5_1 = 1323, + FN_SEL_PWM4_0 = 1324, + FN_SEL_PWM4_1 = 1325, + FN_SEL_PWM3_0 = 1326, + FN_SEL_PWM3_1 = 1327, + FN_SEL_PWM2_0 = 1328, + FN_SEL_PWM2_1 = 1329, + FN_SEL_PWM1_0 = 1330, + FN_SEL_PWM1_1 = 1331, + FN_SEL_VIN4_0 = 1332, + FN_SEL_VIN4_1 = 1333, + PINMUX_FUNCTION_END = 1334, + PINMUX_MARK_BEGIN = 1335, + CLKOUT_MARK = 1336, + MSIOF0_RXD_MARK = 1337, + MSIOF0_TXD_MARK = 1338, + MSIOF0_SCK_MARK = 1339, + SSI_SDATA5_MARK = 1340, + SSI_WS5_MARK = 1341, + SSI_SCK5_MARK = 1342, + GP7_03_MARK = 1343, + GP7_02_MARK = 1344, + AVS2_MARK = 1345, + AVS1_MARK = 1346, + IP0_3_0_MARK = 1347, + AVB_MDC_MARK = 1348, + MSIOF2_SS2_C_MARK = 1349, + IP1_3_0_MARK = 1350, + IRQ2_MARK = 1351, + QCPV_QDE_MARK = 1352, + DU_EXODDF_DU_ODDF_DISP_CDE_MARK = 1353, + VI4_DATA2_B_MARK = 1354, + MSIOF3_SYNC_E_MARK = 1355, + PWM3_B_MARK = 1356, + IP2_3_0_MARK = 1357, + A1_MARK = 1358, + LCDOUT17_MARK = 1359, + MSIOF3_TXD_B_MARK = 1360, + VI4_DATA9_MARK = 1361, + DU_DB1_MARK = 1362, + PWM4_A_MARK = 1363, + IP3_3_0_MARK = 1364, + A9_MARK = 1365, + MSIOF2_SCK_A_MARK = 1366, + CTS4_N_B_MARK = 1367, + VI5_VSYNC_N_MARK = 1368, + IP0_7_4_MARK = 1369, + AVB_MAGIC_MARK = 1370, + MSIOF2_SS1_C_MARK = 1371, + SCK4_A_MARK = 1372, + IP1_7_4_MARK = 1373, + IRQ3_MARK = 1374, + QSTVB_QVE_MARK = 1375, + DU_DOTCLKOUT1_MARK = 1376, + VI4_DATA3_B_MARK = 1377, + MSIOF3_SCK_E_MARK = 1378, + PWM4_B_MARK = 1379, + IP2_7_4_MARK = 1380, + A2_MARK = 1381, + LCDOUT18_MARK = 1382, + MSIOF3_SCK_B_MARK = 1383, + VI4_DATA10_MARK = 1384, + DU_DB2_MARK = 1385, + PWM5_A_MARK = 1386, + IP3_7_4_MARK = 1387, + A10_MARK = 1388, + MSIOF2_RXD_A_MARK = 1389, + RTS4_N_B_MARK = 1390, + VI5_HSYNC_N_MARK = 1391, + IP0_11_8_MARK = 1392, + AVB_PHY_INT_MARK = 1393, + MSIOF2_SYNC_C_MARK = 1394, + RX4_A_MARK = 1395, + IP1_11_8_MARK = 1396, + IRQ4_MARK = 1397, + QSTH_QHS_MARK = 1398, + DU_EXHSYNC_DU_HSYNC_MARK = 1399, + VI4_DATA4_B_MARK = 1400, + MSIOF3_RXD_E_MARK = 1401, + PWM5_B_MARK = 1402, + IP2_11_8_MARK = 1403, + A3_MARK = 1404, + LCDOUT19_MARK = 1405, + MSIOF3_RXD_B_MARK = 1406, + VI4_DATA11_MARK = 1407, + DU_DB3_MARK = 1408, + PWM6_A_MARK = 1409, + IP3_11_8_MARK = 1410, + A11_MARK = 1411, + TX3_B_MARK = 1412, + MSIOF2_TXD_A_MARK = 1413, + HTX4_B_MARK = 1414, + HSCK4_MARK = 1415, + VI5_FIELD_MARK = 1416, + SCL6_A_MARK = 1417, + AVB_AVTP_CAPTURE_B_MARK = 1418, + PWM2_B_MARK = 1419, + IP0_15_12_MARK = 1420, + AVB_LINK_MARK = 1421, + MSIOF2_SCK_C_MARK = 1422, + TX4_A_MARK = 1423, + IP1_15_12_MARK = 1424, + IRQ5_MARK = 1425, + QSTB_QHE_MARK = 1426, + DU_EXVSYNC_DU_VSYNC_MARK = 1427, + VI4_DATA5_B_MARK = 1428, + MSIOF3_TXD_E_MARK = 1429, + PWM6_B_MARK = 1430, + IP2_15_12_MARK = 1431, + A4_MARK = 1432, + LCDOUT20_MARK = 1433, + MSIOF3_SS1_B_MARK = 1434, + VI4_DATA12_MARK = 1435, + VI5_DATA12_MARK = 1436, + DU_DB4_MARK = 1437, + IP3_15_12_MARK = 1438, + A12_MARK = 1439, + LCDOUT12_MARK = 1440, + MSIOF3_SCK_C_MARK = 1441, + HRX4_A_MARK = 1442, + VI5_DATA8_MARK = 1443, + DU_DG4_MARK = 1444, + IP0_19_16_MARK = 1445, + AVB_AVTP_MATCH_A_MARK = 1446, + MSIOF2_RXD_C_MARK = 1447, + CTS4_N_A_MARK = 1448, + IP1_19_16_MARK = 1449, + PWM0_MARK = 1450, + AVB_AVTP_PPS_MARK = 1451, + VI4_DATA6_B_MARK = 1452, + IECLK_B_MARK = 1453, + IP2_19_16_MARK = 1454, + A5_MARK = 1455, + LCDOUT21_MARK = 1456, + MSIOF3_SS2_B_MARK = 1457, + SCK4_B_MARK = 1458, + VI4_DATA13_MARK = 1459, + VI5_DATA13_MARK = 1460, + DU_DB5_MARK = 1461, + IP3_19_16_MARK = 1462, + A13_MARK = 1463, + LCDOUT13_MARK = 1464, + MSIOF3_SYNC_C_MARK = 1465, + HTX4_A_MARK = 1466, + VI5_DATA9_MARK = 1467, + DU_DG5_MARK = 1468, + IP0_23_20_MARK = 1469, + AVB_AVTP_CAPTURE_A_MARK = 1470, + MSIOF2_TXD_C_MARK = 1471, + RTS4_N_A_MARK = 1472, + IP1_23_20_MARK = 1473, + PWM1_A_MARK = 1474, + HRX3_D_MARK = 1475, + VI4_DATA7_B_MARK = 1476, + IERX_B_MARK = 1477, + IP2_23_20_MARK = 1478, + A6_MARK = 1479, + LCDOUT22_MARK = 1480, + MSIOF2_SS1_A_MARK = 1481, + RX4_B_MARK = 1482, + VI4_DATA14_MARK = 1483, + VI5_DATA14_MARK = 1484, + DU_DB6_MARK = 1485, + IP3_23_20_MARK = 1486, + A14_MARK = 1487, + LCDOUT14_MARK = 1488, + MSIOF3_RXD_C_MARK = 1489, + HCTS4_N_MARK = 1490, + VI5_DATA10_MARK = 1491, + DU_DG6_MARK = 1492, + IP0_27_24_MARK = 1493, + IRQ0_MARK = 1494, + QPOLB_MARK = 1495, + DU_CDE_MARK = 1496, + VI4_DATA0_B_MARK = 1497, + CAN0_TX_B_MARK = 1498, + CANFD0_TX_B_MARK = 1499, + MSIOF3_SS2_E_MARK = 1500, + IP1_27_24_MARK = 1501, + PWM2_A_MARK = 1502, + HTX3_D_MARK = 1503, + IETX_B_MARK = 1504, + IP2_27_24_MARK = 1505, + A7_MARK = 1506, + LCDOUT23_MARK = 1507, + MSIOF2_SS2_A_MARK = 1508, + TX4_B_MARK = 1509, + VI4_DATA15_MARK = 1510, + VI5_DATA15_MARK = 1511, + DU_DB7_MARK = 1512, + IP3_27_24_MARK = 1513, + A15_MARK = 1514, + LCDOUT15_MARK = 1515, + MSIOF3_TXD_C_MARK = 1516, + HRTS4_N_MARK = 1517, + VI5_DATA11_MARK = 1518, + DU_DG7_MARK = 1519, + IP0_31_28_MARK = 1520, + IRQ1_MARK = 1521, + QPOLA_MARK = 1522, + DU_DISP_MARK = 1523, + VI4_DATA1_B_MARK = 1524, + CAN0_RX_B_MARK = 1525, + CANFD0_RX_B_MARK = 1526, + MSIOF3_SS1_E_MARK = 1527, + IP1_31_28_MARK = 1528, + A0_MARK = 1529, + LCDOUT16_MARK = 1530, + MSIOF3_SYNC_B_MARK = 1531, + VI4_DATA8_MARK = 1532, + DU_DB0_MARK = 1533, + PWM3_A_MARK = 1534, + IP2_31_28_MARK = 1535, + A8_MARK = 1536, + RX3_B_MARK = 1537, + MSIOF2_SYNC_A_MARK = 1538, + HRX4_B_MARK = 1539, + SDA6_A_MARK = 1540, + AVB_AVTP_MATCH_B_MARK = 1541, + PWM1_B_MARK = 1542, + IP3_31_28_MARK = 1543, + A16_MARK = 1544, + LCDOUT8_MARK = 1545, + VI4_FIELD_MARK = 1546, + DU_DG0_MARK = 1547, + IP4_3_0_MARK = 1548, + A17_MARK = 1549, + LCDOUT9_MARK = 1550, + VI4_VSYNC_N_MARK = 1551, + DU_DG1_MARK = 1552, + IP5_3_0_MARK = 1553, + WE0_N_MARK = 1554, + MSIOF3_TXD_D_MARK = 1555, + CTS3_N_MARK = 1556, + HCTS3_N_MARK = 1557, + SCL6_B_MARK = 1558, + CAN_CLK_MARK = 1559, + IECLK_A_MARK = 1560, + IP6_3_0_MARK = 1561, + D5_MARK = 1562, + MSIOF2_SYNC_B_MARK = 1563, + VI4_DATA21_MARK = 1564, + VI5_DATA5_MARK = 1565, + IP7_3_0_MARK = 1566, + D13_MARK = 1567, + LCDOUT5_MARK = 1568, + MSIOF2_SS2_D_MARK = 1569, + TX4_C_MARK = 1570, + VI4_DATA5_A_MARK = 1571, + DU_DR5_MARK = 1572, + IP4_7_4_MARK = 1573, + A18_MARK = 1574, + LCDOUT10_MARK = 1575, + VI4_HSYNC_N_MARK = 1576, + DU_DG2_MARK = 1577, + IP5_7_4_MARK = 1578, + WE1_N_MARK = 1579, + MSIOF3_SS1_D_MARK = 1580, + RTS3_N_MARK = 1581, + HRTS3_N_MARK = 1582, + SDA6_B_MARK = 1583, + CAN1_RX_MARK = 1584, + CANFD1_RX_MARK = 1585, + IERX_A_MARK = 1586, + IP6_7_4_MARK = 1587, + D6_MARK = 1588, + MSIOF2_RXD_B_MARK = 1589, + VI4_DATA22_MARK = 1590, + VI5_DATA6_MARK = 1591, + IP7_7_4_MARK = 1592, + D14_MARK = 1593, + LCDOUT6_MARK = 1594, + MSIOF3_SS1_A_MARK = 1595, + HRX3_C_MARK = 1596, + VI4_DATA6_A_MARK = 1597, + DU_DR6_MARK = 1598, + SCL6_C_MARK = 1599, + IP4_11_8_MARK = 1600, + A19_MARK = 1601, + LCDOUT11_MARK = 1602, + VI4_CLKENB_MARK = 1603, + DU_DG3_MARK = 1604, + IP5_11_8_MARK = 1605, + EX_WAIT0_A_MARK = 1606, + QCLK_MARK = 1607, + VI4_CLK_MARK = 1608, + DU_DOTCLKOUT0_MARK = 1609, + IP6_11_8_MARK = 1610, + D7_MARK = 1611, + MSIOF2_TXD_B_MARK = 1612, + VI4_DATA23_MARK = 1613, + VI5_DATA7_MARK = 1614, + IP7_11_8_MARK = 1615, + D15_MARK = 1616, + LCDOUT7_MARK = 1617, + MSIOF3_SS2_A_MARK = 1618, + HTX3_C_MARK = 1619, + VI4_DATA7_A_MARK = 1620, + DU_DR7_MARK = 1621, + SDA6_C_MARK = 1622, + IP4_15_12_MARK = 1623, + CS0_N_MARK = 1624, + VI5_CLKENB_MARK = 1625, + IP5_15_12_MARK = 1626, + D0_MARK = 1627, + MSIOF2_SS1_B_MARK = 1628, + MSIOF3_SCK_A_MARK = 1629, + VI4_DATA16_MARK = 1630, + VI5_DATA0_MARK = 1631, + IP6_15_12_MARK = 1632, + D8_MARK = 1633, + LCDOUT0_MARK = 1634, + MSIOF2_SCK_D_MARK = 1635, + SCK4_C_MARK = 1636, + VI4_DATA0_A_MARK = 1637, + DU_DR0_MARK = 1638, + IP4_19_16_MARK = 1639, + CS1_N_MARK = 1640, + VI5_CLK_MARK = 1641, + EX_WAIT0_B_MARK = 1642, + IP5_19_16_MARK = 1643, + D1_MARK = 1644, + MSIOF2_SS2_B_MARK = 1645, + MSIOF3_SYNC_A_MARK = 1646, + VI4_DATA17_MARK = 1647, + VI5_DATA1_MARK = 1648, + IP6_19_16_MARK = 1649, + D9_MARK = 1650, + LCDOUT1_MARK = 1651, + MSIOF2_SYNC_D_MARK = 1652, + VI4_DATA1_A_MARK = 1653, + DU_DR1_MARK = 1654, + IP7_19_16_MARK = 1655, + SD0_CLK_MARK = 1656, + MSIOF1_SCK_E_MARK = 1657, + STP_OPWM_0_B_MARK = 1658, + IP4_23_20_MARK = 1659, + BS_N_MARK = 1660, + QSTVA_QVS_MARK = 1661, + MSIOF3_SCK_D_MARK = 1662, + SCK3_MARK = 1663, + HSCK3_MARK = 1664, + CAN1_TX_MARK = 1665, + CANFD1_TX_MARK = 1666, + IETX_A_MARK = 1667, + IP5_23_20_MARK = 1668, + D2_MARK = 1669, + MSIOF3_RXD_A_MARK = 1670, + VI4_DATA18_MARK = 1671, + VI5_DATA2_MARK = 1672, + IP6_23_20_MARK = 1673, + D10_MARK = 1674, + LCDOUT2_MARK = 1675, + MSIOF2_RXD_D_MARK = 1676, + HRX3_B_MARK = 1677, + VI4_DATA2_A_MARK = 1678, + CTS4_N_C_MARK = 1679, + DU_DR2_MARK = 1680, + IP7_23_20_MARK = 1681, + SD0_CMD_MARK = 1682, + MSIOF1_SYNC_E_MARK = 1683, + STP_IVCXO27_0_B_MARK = 1684, + IP4_27_24_MARK = 1685, + RD_N_MARK = 1686, + MSIOF3_SYNC_D_MARK = 1687, + RX3_A_MARK = 1688, + HRX3_A_MARK = 1689, + CAN0_TX_A_MARK = 1690, + CANFD0_TX_A_MARK = 1691, + IP5_27_24_MARK = 1692, + D3_MARK = 1693, + MSIOF3_TXD_A_MARK = 1694, + VI4_DATA19_MARK = 1695, + VI5_DATA3_MARK = 1696, + IP6_27_24_MARK = 1697, + D11_MARK = 1698, + LCDOUT3_MARK = 1699, + MSIOF2_TXD_D_MARK = 1700, + HTX3_B_MARK = 1701, + VI4_DATA3_A_MARK = 1702, + RTS4_N_C_MARK = 1703, + DU_DR3_MARK = 1704, + IP7_27_24_MARK = 1705, + SD0_DAT0_MARK = 1706, + MSIOF1_RXD_E_MARK = 1707, + TS_SCK0_B_MARK = 1708, + STP_ISCLK_0_B_MARK = 1709, + IP4_31_28_MARK = 1710, + RD_WR_N_MARK = 1711, + MSIOF3_RXD_D_MARK = 1712, + TX3_A_MARK = 1713, + HTX3_A_MARK = 1714, + CAN0_RX_A_MARK = 1715, + CANFD0_RX_A_MARK = 1716, + IP5_31_28_MARK = 1717, + D4_MARK = 1718, + MSIOF2_SCK_B_MARK = 1719, + VI4_DATA20_MARK = 1720, + VI5_DATA4_MARK = 1721, + IP6_31_28_MARK = 1722, + D12_MARK = 1723, + LCDOUT4_MARK = 1724, + MSIOF2_SS1_D_MARK = 1725, + RX4_C_MARK = 1726, + VI4_DATA4_A_MARK = 1727, + DU_DR4_MARK = 1728, + IP7_31_28_MARK = 1729, + SD0_DAT1_MARK = 1730, + MSIOF1_TXD_E_MARK = 1731, + TS_SPSYNC0_B_MARK = 1732, + STP_ISSYNC_0_B_MARK = 1733, + IP8_3_0_MARK = 1734, + SD0_DAT2_MARK = 1735, + MSIOF1_SS1_E_MARK = 1736, + TS_SDAT0_B_MARK = 1737, + STP_ISD_0_B_MARK = 1738, + IP9_3_0_MARK = 1739, + SD2_CLK_MARK = 1740, + NFDATA8_MARK = 1741, + IP10_3_0_MARK = 1742, + SD3_CMD_MARK = 1743, + NFRE_N_MARK = 1744, + IP11_3_0_MARK = 1745, + SD3_DAT7_MARK = 1746, + SD3_WP_MARK = 1747, + NFDATA7_MARK = 1748, + IP8_7_4_MARK = 1749, + SD0_DAT3_MARK = 1750, + MSIOF1_SS2_E_MARK = 1751, + TS_SDEN0_B_MARK = 1752, + STP_ISEN_0_B_MARK = 1753, + IP9_7_4_MARK = 1754, + SD2_CMD_MARK = 1755, + NFDATA9_MARK = 1756, + IP10_7_4_MARK = 1757, + SD3_DAT0_MARK = 1758, + NFDATA0_MARK = 1759, + IP11_7_4_MARK = 1760, + SD3_DS_MARK = 1761, + NFCLE_MARK = 1762, + IP8_11_8_MARK = 1763, + SD1_CLK_MARK = 1764, + MSIOF1_SCK_G_MARK = 1765, + SIM0_CLK_A_MARK = 1766, + IP9_11_8_MARK = 1767, + SD2_DAT0_MARK = 1768, + NFDATA10_MARK = 1769, + IP10_11_8_MARK = 1770, + SD3_DAT1_MARK = 1771, + NFDATA1_MARK = 1772, + IP11_11_8_MARK = 1773, + SD0_CD_MARK = 1774, + NFDATA14_A_MARK = 1775, + SCL2_B_MARK = 1776, + SIM0_RST_A_MARK = 1777, + IP8_15_12_MARK = 1778, + SD1_CMD_MARK = 1779, + MSIOF1_SYNC_G_MARK = 1780, + NFCE_N_B_MARK = 1781, + SIM0_D_A_MARK = 1782, + STP_IVCXO27_1_B_MARK = 1783, + IP9_15_12_MARK = 1784, + SD2_DAT1_MARK = 1785, + NFDATA11_MARK = 1786, + IP10_15_12_MARK = 1787, + SD3_DAT2_MARK = 1788, + NFDATA2_MARK = 1789, + IP11_15_12_MARK = 1790, + SD0_WP_MARK = 1791, + NFDATA15_A_MARK = 1792, + SDA2_B_MARK = 1793, + IP8_19_16_MARK = 1794, + SD1_DAT0_MARK = 1795, + SD2_DAT4_MARK = 1796, + MSIOF1_RXD_G_MARK = 1797, + NFWP_N_B_MARK = 1798, + TS_SCK1_B_MARK = 1799, + STP_ISCLK_1_B_MARK = 1800, + IP9_19_16_MARK = 1801, + SD2_DAT2_MARK = 1802, + NFDATA12_MARK = 1803, + IP10_19_16_MARK = 1804, + SD3_DAT3_MARK = 1805, + NFDATA3_MARK = 1806, + IP11_19_16_MARK = 1807, + SD1_CD_MARK = 1808, + NFRB_N_A_MARK = 1809, + SIM0_CLK_B_MARK = 1810, + IP8_23_20_MARK = 1811, + SD1_DAT1_MARK = 1812, + SD2_DAT5_MARK = 1813, + MSIOF1_TXD_G_MARK = 1814, + NFDATA14_B_MARK = 1815, + TS_SPSYNC1_B_MARK = 1816, + STP_ISSYNC_1_B_MARK = 1817, + IP9_23_20_MARK = 1818, + SD2_DAT3_MARK = 1819, + NFDATA13_MARK = 1820, + IP10_23_20_MARK = 1821, + SD3_DAT4_MARK = 1822, + SD2_CD_A_MARK = 1823, + NFDATA4_MARK = 1824, + IP11_23_20_MARK = 1825, + SD1_WP_MARK = 1826, + NFCE_N_A_MARK = 1827, + SIM0_D_B_MARK = 1828, + IP8_27_24_MARK = 1829, + SD1_DAT2_MARK = 1830, + SD2_DAT6_MARK = 1831, + MSIOF1_SS1_G_MARK = 1832, + NFDATA15_B_MARK = 1833, + TS_SDAT1_B_MARK = 1834, + STP_ISD_1_B_MARK = 1835, + IP9_27_24_MARK = 1836, + SD2_DS_MARK = 1837, + NFALE_MARK = 1838, + IP10_27_24_MARK = 1839, + SD3_DAT5_MARK = 1840, + SD2_WP_A_MARK = 1841, + NFDATA5_MARK = 1842, + IP11_27_24_MARK = 1843, + SCK0_MARK = 1844, + HSCK1_B_MARK = 1845, + MSIOF1_SS2_B_MARK = 1846, + AUDIO_CLKC_B_MARK = 1847, + SDA2_A_MARK = 1848, + SIM0_RST_B_MARK = 1849, + STP_OPWM_0_C_MARK = 1850, + RIF0_CLK_B_MARK = 1851, + ADICHS2_MARK = 1852, + SCK5_B_MARK = 1853, + IP8_31_28_MARK = 1854, + SD1_DAT3_MARK = 1855, + SD2_DAT7_MARK = 1856, + MSIOF1_SS2_G_MARK = 1857, + NFRB_N_B_MARK = 1858, + TS_SDEN1_B_MARK = 1859, + STP_ISEN_1_B_MARK = 1860, + IP9_31_28_MARK = 1861, + SD3_CLK_MARK = 1862, + NFWE_N_MARK = 1863, + IP10_31_28_MARK = 1864, + SD3_DAT6_MARK = 1865, + SD3_CD_MARK = 1866, + NFDATA6_MARK = 1867, + IP11_31_28_MARK = 1868, + RX0_MARK = 1869, + HRX1_B_MARK = 1870, + TS_SCK0_C_MARK = 1871, + STP_ISCLK_0_C_MARK = 1872, + RIF0_D0_B_MARK = 1873, + IP12_3_0_MARK = 1874, + TX0_MARK = 1875, + HTX1_B_MARK = 1876, + TS_SPSYNC0_C_MARK = 1877, + STP_ISSYNC_0_C_MARK = 1878, + RIF0_D1_B_MARK = 1879, + IP13_3_0_MARK = 1880, + TX2_A_MARK = 1881, + SD2_CD_B_MARK = 1882, + SCL1_A_MARK = 1883, + FMCLK_A_MARK = 1884, + RIF1_D1_C_MARK = 1885, + FSO_CFE_0_N_MARK = 1886, + IP14_3_0_MARK = 1887, + MSIOF0_SS1_MARK = 1888, + RX5_A_MARK = 1889, + NFWP_N_A_MARK = 1890, + AUDIO_CLKA_C_MARK = 1891, + SSI_SCK2_A_MARK = 1892, + STP_IVCXO27_0_C_MARK = 1893, + AUDIO_CLKOUT3_A_MARK = 1894, + TCLK1_B_MARK = 1895, + IP15_3_0_MARK = 1896, + SSI_SDATA1_A_MARK = 1897, + IP12_7_4_MARK = 1898, + CTS0_N_MARK = 1899, + HCTS1_N_B_MARK = 1900, + MSIOF1_SYNC_B_MARK = 1901, + TS_SPSYNC1_C_MARK = 1902, + STP_ISSYNC_1_C_MARK = 1903, + RIF1_SYNC_B_MARK = 1904, + AUDIO_CLKOUT_C_MARK = 1905, + ADICS_SAMP_MARK = 1906, + IP13_7_4_MARK = 1907, + RX2_A_MARK = 1908, + SD2_WP_B_MARK = 1909, + SDA1_A_MARK = 1910, + FMIN_A_MARK = 1911, + RIF1_SYNC_C_MARK = 1912, + FSO_CFE_1_N_MARK = 1913, + IP14_7_4_MARK = 1914, + MSIOF0_SS2_MARK = 1915, + TX5_A_MARK = 1916, + MSIOF1_SS2_D_MARK = 1917, + AUDIO_CLKC_A_MARK = 1918, + SSI_WS2_A_MARK = 1919, + STP_OPWM_0_D_MARK = 1920, + AUDIO_CLKOUT_D_MARK = 1921, + SPEEDIN_B_MARK = 1922, + IP15_7_4_MARK = 1923, + SSI_SDATA2_A_MARK = 1924, + SSI_SCK1_B_MARK = 1925, + IP12_11_8_MARK = 1926, + RTS0_N_MARK = 1927, + HRTS1_N_B_MARK = 1928, + MSIOF1_SS1_B_MARK = 1929, + AUDIO_CLKA_B_MARK = 1930, + SCL2_A_MARK = 1931, + STP_IVCXO27_1_C_MARK = 1932, + RIF0_SYNC_B_MARK = 1933, + ADICHS1_MARK = 1934, + IP13_11_8_MARK = 1935, + HSCK0_MARK = 1936, + MSIOF1_SCK_D_MARK = 1937, + AUDIO_CLKB_A_MARK = 1938, + SSI_SDATA1_B_MARK = 1939, + TS_SCK0_D_MARK = 1940, + STP_ISCLK_0_D_MARK = 1941, + RIF0_CLK_C_MARK = 1942, + RX5_B_MARK = 1943, + IP14_11_8_MARK = 1944, + MLB_CLK_MARK = 1945, + MSIOF1_SCK_F_MARK = 1946, + SCL1_B_MARK = 1947, + IP15_11_8_MARK = 1948, + SSI_SCK349_MARK = 1949, + MSIOF1_SS1_A_MARK = 1950, + STP_OPWM_0_A_MARK = 1951, + IP12_15_12_MARK = 1952, + RX1_A_MARK = 1953, + HRX1_A_MARK = 1954, + TS_SDAT0_C_MARK = 1955, + STP_ISD_0_C_MARK = 1956, + RIF1_CLK_C_MARK = 1957, + IP13_15_12_MARK = 1958, + HRX0_MARK = 1959, + MSIOF1_RXD_D_MARK = 1960, + SSI_SDATA2_B_MARK = 1961, + TS_SDEN0_D_MARK = 1962, + STP_ISEN_0_D_MARK = 1963, + RIF0_D0_C_MARK = 1964, + IP14_15_12_MARK = 1965, + MLB_SIG_MARK = 1966, + RX1_B_MARK = 1967, + MSIOF1_SYNC_F_MARK = 1968, + SDA1_B_MARK = 1969, + IP15_15_12_MARK = 1970, + SSI_WS349_MARK = 1971, + HCTS2_N_A_MARK = 1972, + MSIOF1_SS2_A_MARK = 1973, + STP_IVCXO27_0_A_MARK = 1974, + IP12_19_16_MARK = 1975, + TX1_A_MARK = 1976, + HTX1_A_MARK = 1977, + TS_SDEN0_C_MARK = 1978, + STP_ISEN_0_C_MARK = 1979, + RIF1_D0_C_MARK = 1980, + IP13_19_16_MARK = 1981, + HTX0_MARK = 1982, + MSIOF1_TXD_D_MARK = 1983, + SSI_SDATA9_B_MARK = 1984, + TS_SDAT0_D_MARK = 1985, + STP_ISD_0_D_MARK = 1986, + RIF0_D1_C_MARK = 1987, + IP14_19_16_MARK = 1988, + MLB_DAT_MARK = 1989, + TX1_B_MARK = 1990, + MSIOF1_RXD_F_MARK = 1991, + IP15_19_16_MARK = 1992, + SSI_SDATA3_MARK = 1993, + HRTS2_N_A_MARK = 1994, + MSIOF1_TXD_A_MARK = 1995, + TS_SCK0_A_MARK = 1996, + STP_ISCLK_0_A_MARK = 1997, + RIF0_D1_A_MARK = 1998, + RIF2_D0_A_MARK = 1999, + IP12_23_20_MARK = 2000, + CTS1_N_MARK = 2001, + HCTS1_N_A_MARK = 2002, + MSIOF1_RXD_B_MARK = 2003, + TS_SDEN1_C_MARK = 2004, + STP_ISEN_1_C_MARK = 2005, + RIF1_D0_B_MARK = 2006, + ADIDATA_MARK = 2007, + IP13_23_20_MARK = 2008, + HCTS0_N_MARK = 2009, + RX2_B_MARK = 2010, + MSIOF1_SYNC_D_MARK = 2011, + SSI_SCK9_A_MARK = 2012, + TS_SPSYNC0_D_MARK = 2013, + STP_ISSYNC_0_D_MARK = 2014, + RIF0_SYNC_C_MARK = 2015, + AUDIO_CLKOUT1_A_MARK = 2016, + IP14_23_20_MARK = 2017, + SSI_SCK01239_MARK = 2018, + MSIOF1_TXD_F_MARK = 2019, + IP15_23_20_MARK = 2020, + SSI_SCK4_MARK = 2021, + HRX2_A_MARK = 2022, + MSIOF1_SCK_A_MARK = 2023, + TS_SDAT0_A_MARK = 2024, + STP_ISD_0_A_MARK = 2025, + RIF0_CLK_A_MARK = 2026, + RIF2_CLK_A_MARK = 2027, + IP12_27_24_MARK = 2028, + RTS1_N_MARK = 2029, + HRTS1_N_A_MARK = 2030, + MSIOF1_TXD_B_MARK = 2031, + TS_SDAT1_C_MARK = 2032, + STP_ISD_1_C_MARK = 2033, + RIF1_D1_B_MARK = 2034, + ADICHS0_MARK = 2035, + IP13_27_24_MARK = 2036, + HRTS0_N_MARK = 2037, + TX2_B_MARK = 2038, + MSIOF1_SS1_D_MARK = 2039, + SSI_WS9_A_MARK = 2040, + STP_IVCXO27_0_D_MARK = 2041, + BPFCLK_A_MARK = 2042, + AUDIO_CLKOUT2_A_MARK = 2043, + IP14_27_24_MARK = 2044, + SSI_WS01239_MARK = 2045, + MSIOF1_SS1_F_MARK = 2046, + IP15_27_24_MARK = 2047, + SSI_WS4_MARK = 2048, + HTX2_A_MARK = 2049, + MSIOF1_SYNC_A_MARK = 2050, + TS_SDEN0_A_MARK = 2051, + STP_ISEN_0_A_MARK = 2052, + RIF0_SYNC_A_MARK = 2053, + RIF2_SYNC_A_MARK = 2054, + IP12_31_28_MARK = 2055, + SCK2_MARK = 2056, + SCIF_CLK_B_MARK = 2057, + MSIOF1_SCK_B_MARK = 2058, + TS_SCK1_C_MARK = 2059, + STP_ISCLK_1_C_MARK = 2060, + RIF1_CLK_B_MARK = 2061, + ADICLK_MARK = 2062, + IP13_31_28_MARK = 2063, + MSIOF0_SYNC_MARK = 2064, + AUDIO_CLKOUT_A_MARK = 2065, + TX5_B_MARK = 2066, + BPFCLK_D_MARK = 2067, + IP14_31_28_MARK = 2068, + SSI_SDATA0_MARK = 2069, + MSIOF1_SS2_F_MARK = 2070, + IP15_31_28_MARK = 2071, + SSI_SDATA4_MARK = 2072, + HSCK2_A_MARK = 2073, + MSIOF1_RXD_A_MARK = 2074, + TS_SPSYNC0_A_MARK = 2075, + STP_ISSYNC_0_A_MARK = 2076, + RIF0_D0_A_MARK = 2077, + RIF2_D1_A_MARK = 2078, + IP16_3_0_MARK = 2079, + SSI_SCK6_MARK = 2080, + SIM0_RST_D_MARK = 2081, + IP17_3_0_MARK = 2082, + AUDIO_CLKA_A_MARK = 2083, + IP18_3_0_MARK = 2084, + GP6_30_MARK = 2085, + AUDIO_CLKOUT2_B_MARK = 2086, + SSI_SCK9_B_MARK = 2087, + TS_SDEN0_E_MARK = 2088, + STP_ISEN_0_E_MARK = 2089, + RIF2_D0_B_MARK = 2090, + TPU0TO2_MARK = 2091, + FMCLK_C_MARK = 2092, + FMCLK_D_MARK = 2093, + IP16_7_4_MARK = 2094, + SSI_WS6_MARK = 2095, + SIM0_D_D_MARK = 2096, + IP17_7_4_MARK = 2097, + AUDIO_CLKB_B_MARK = 2098, + SCIF_CLK_A_MARK = 2099, + STP_IVCXO27_1_D_MARK = 2100, + REMOCON_A_MARK = 2101, + TCLK1_A_MARK = 2102, + IP18_7_4_MARK = 2103, + GP6_31_MARK = 2104, + AUDIO_CLKOUT3_B_MARK = 2105, + SSI_WS9_B_MARK = 2106, + TS_SPSYNC0_E_MARK = 2107, + STP_ISSYNC_0_E_MARK = 2108, + RIF2_D1_B_MARK = 2109, + TPU0TO3_MARK = 2110, + FMIN_C_MARK = 2111, + FMIN_D_MARK = 2112, + IP16_11_8_MARK = 2113, + SSI_SDATA6_MARK = 2114, + SIM0_CLK_D_MARK = 2115, + IP17_11_8_MARK = 2116, + USB0_PWEN_MARK = 2117, + SIM0_RST_C_MARK = 2118, + TS_SCK1_D_MARK = 2119, + STP_ISCLK_1_D_MARK = 2120, + BPFCLK_B_MARK = 2121, + RIF3_CLK_B_MARK = 2122, + HSCK2_C_MARK = 2123, + IP16_15_12_MARK = 2124, + SSI_SCK78_MARK = 2125, + HRX2_B_MARK = 2126, + MSIOF1_SCK_C_MARK = 2127, + TS_SCK1_A_MARK = 2128, + STP_ISCLK_1_A_MARK = 2129, + RIF1_CLK_A_MARK = 2130, + RIF3_CLK_A_MARK = 2131, + IP17_15_12_MARK = 2132, + USB0_OVC_MARK = 2133, + SIM0_D_C_MARK = 2134, + TS_SDAT1_D_MARK = 2135, + STP_ISD_1_D_MARK = 2136, + RIF3_SYNC_B_MARK = 2137, + HRX2_C_MARK = 2138, + IP16_19_16_MARK = 2139, + SSI_WS78_MARK = 2140, + HTX2_B_MARK = 2141, + MSIOF1_SYNC_C_MARK = 2142, + TS_SDAT1_A_MARK = 2143, + STP_ISD_1_A_MARK = 2144, + RIF1_SYNC_A_MARK = 2145, + RIF3_SYNC_A_MARK = 2146, + IP17_19_16_MARK = 2147, + USB1_PWEN_MARK = 2148, + SIM0_CLK_C_MARK = 2149, + SSI_SCK1_A_MARK = 2150, + TS_SCK0_E_MARK = 2151, + STP_ISCLK_0_E_MARK = 2152, + FMCLK_B_MARK = 2153, + RIF2_CLK_B_MARK = 2154, + SPEEDIN_A_MARK = 2155, + HTX2_C_MARK = 2156, + IP16_23_20_MARK = 2157, + SSI_SDATA7_MARK = 2158, + HCTS2_N_B_MARK = 2159, + MSIOF1_RXD_C_MARK = 2160, + TS_SDEN1_A_MARK = 2161, + STP_ISEN_1_A_MARK = 2162, + RIF1_D0_A_MARK = 2163, + RIF3_D0_A_MARK = 2164, + TCLK2_A_MARK = 2165, + IP17_23_20_MARK = 2166, + USB1_OVC_MARK = 2167, + MSIOF1_SS2_C_MARK = 2168, + SSI_WS1_A_MARK = 2169, + TS_SDAT0_E_MARK = 2170, + STP_ISD_0_E_MARK = 2171, + FMIN_B_MARK = 2172, + RIF2_SYNC_B_MARK = 2173, + REMOCON_B_MARK = 2174, + HCTS2_N_C_MARK = 2175, + IP16_27_24_MARK = 2176, + SSI_SDATA8_MARK = 2177, + HRTS2_N_B_MARK = 2178, + MSIOF1_TXD_C_MARK = 2179, + TS_SPSYNC1_A_MARK = 2180, + STP_ISSYNC_1_A_MARK = 2181, + RIF1_D1_A_MARK = 2182, + RIF3_D1_A_MARK = 2183, + IP17_27_24_MARK = 2184, + USB30_PWEN_MARK = 2185, + AUDIO_CLKOUT_B_MARK = 2186, + SSI_SCK2_B_MARK = 2187, + TS_SDEN1_D_MARK = 2188, + STP_ISEN_1_D_MARK = 2189, + STP_OPWM_0_E_MARK = 2190, + RIF3_D0_B_MARK = 2191, + TCLK2_B_MARK = 2192, + TPU0TO0_MARK = 2193, + BPFCLK_C_MARK = 2194, + HRTS2_N_C_MARK = 2195, + IP16_31_28_MARK = 2196, + SSI_SDATA9_A_MARK = 2197, + HSCK2_B_MARK = 2198, + MSIOF1_SS1_C_MARK = 2199, + HSCK1_A_MARK = 2200, + SSI_WS1_B_MARK = 2201, + SCK1_MARK = 2202, + STP_IVCXO27_1_A_MARK = 2203, + SCK5_A_MARK = 2204, + IP17_31_28_MARK = 2205, + USB30_OVC_MARK = 2206, + AUDIO_CLKOUT1_B_MARK = 2207, + SSI_WS2_B_MARK = 2208, + TS_SPSYNC1_D_MARK = 2209, + STP_ISSYNC_1_D_MARK = 2210, + STP_IVCXO27_0_E_MARK = 2211, + RIF3_D1_B_MARK = 2212, + FSO_TOE_N_MARK = 2213, + TPU0TO1_MARK = 2214, + SEL_MSIOF3_0_MARK = 2215, + SEL_MSIOF3_1_MARK = 2216, + SEL_MSIOF3_2_MARK = 2217, + SEL_MSIOF3_3_MARK = 2218, + SEL_MSIOF3_4_MARK = 2219, + SEL_TSIF1_0_MARK = 2220, + SEL_TSIF1_1_MARK = 2221, + SEL_TSIF1_2_MARK = 2222, + SEL_TSIF1_3_MARK = 2223, + I2C_SEL_5_0_MARK = 2224, + I2C_SEL_5_1_MARK = 2225, + I2C_SEL_3_0_MARK = 2226, + I2C_SEL_3_1_MARK = 2227, + SEL_TSIF0_0_MARK = 2228, + SEL_TSIF0_1_MARK = 2229, + SEL_TSIF0_2_MARK = 2230, + SEL_TSIF0_3_MARK = 2231, + SEL_TSIF0_4_MARK = 2232, + I2C_SEL_0_0_MARK = 2233, + I2C_SEL_0_1_MARK = 2234, + SEL_MSIOF2_0_MARK = 2235, + SEL_MSIOF2_1_MARK = 2236, + SEL_MSIOF2_2_MARK = 2237, + SEL_MSIOF2_3_MARK = 2238, + SEL_FM_0_MARK = 2239, + SEL_FM_1_MARK = 2240, + SEL_FM_2_MARK = 2241, + SEL_FM_3_MARK = 2242, + SEL_MSIOF1_0_MARK = 2243, + SEL_MSIOF1_1_MARK = 2244, + SEL_MSIOF1_2_MARK = 2245, + SEL_MSIOF1_3_MARK = 2246, + SEL_MSIOF1_4_MARK = 2247, + SEL_MSIOF1_5_MARK = 2248, + SEL_MSIOF1_6_MARK = 2249, + SEL_TIMER_TMU_0_MARK = 2250, + SEL_TIMER_TMU_1_MARK = 2251, + SEL_SCIF5_0_MARK = 2252, + SEL_SCIF5_1_MARK = 2253, + SEL_SSP1_1_0_MARK = 2254, + SEL_SSP1_1_1_MARK = 2255, + SEL_SSP1_1_2_MARK = 2256, + SEL_SSP1_1_3_MARK = 2257, + SEL_I2C6_0_MARK = 2258, + SEL_I2C6_1_MARK = 2259, + SEL_I2C6_2_MARK = 2260, + SEL_LBSC_0_MARK = 2261, + SEL_LBSC_1_MARK = 2262, + SEL_SSP1_0_0_MARK = 2263, + SEL_SSP1_0_1_MARK = 2264, + SEL_SSP1_0_2_MARK = 2265, + SEL_SSP1_0_3_MARK = 2266, + SEL_SSP1_0_4_MARK = 2267, + SEL_IEBUS_0_MARK = 2268, + SEL_IEBUS_1_MARK = 2269, + SEL_NDF_0_MARK = 2270, + SEL_NDF_1_MARK = 2271, + SEL_I2C2_0_MARK = 2272, + SEL_I2C2_1_MARK = 2273, + SEL_SSI2_0_MARK = 2274, + SEL_SSI2_1_MARK = 2275, + SEL_I2C1_0_MARK = 2276, + SEL_I2C1_1_MARK = 2277, + SEL_SSI1_0_MARK = 2278, + SEL_SSI1_1_MARK = 2279, + SEL_SSI9_0_MARK = 2280, + SEL_SSI9_1_MARK = 2281, + SEL_HSCIF4_0_MARK = 2282, + SEL_HSCIF4_1_MARK = 2283, + SEL_SPEED_PULSE_0_MARK = 2284, + SEL_SPEED_PULSE_1_MARK = 2285, + SEL_TIMER_TMU2_0_MARK = 2286, + SEL_TIMER_TMU2_1_MARK = 2287, + SEL_HSCIF3_0_MARK = 2288, + SEL_HSCIF3_1_MARK = 2289, + SEL_HSCIF3_2_MARK = 2290, + SEL_HSCIF3_3_MARK = 2291, + SEL_SIMCARD_0_MARK = 2292, + SEL_SIMCARD_1_MARK = 2293, + SEL_SIMCARD_2_MARK = 2294, + SEL_SIMCARD_3_MARK = 2295, + SEL_ADGB_0_MARK = 2296, + SEL_ADGB_1_MARK = 2297, + SEL_ADGC_0_MARK = 2298, + SEL_ADGC_1_MARK = 2299, + SEL_HSCIF1_0_MARK = 2300, + SEL_HSCIF1_1_MARK = 2301, + SEL_SDHI2_0_MARK = 2302, + SEL_SDHI2_1_MARK = 2303, + SEL_SCIF4_0_MARK = 2304, + SEL_SCIF4_1_MARK = 2305, + SEL_SCIF4_2_MARK = 2306, + SEL_HSCIF2_0_MARK = 2307, + SEL_HSCIF2_1_MARK = 2308, + SEL_HSCIF2_2_MARK = 2309, + SEL_SCIF3_0_MARK = 2310, + SEL_SCIF3_1_MARK = 2311, + SEL_ETHERAVB_0_MARK = 2312, + SEL_ETHERAVB_1_MARK = 2313, + SEL_SCIF2_0_MARK = 2314, + SEL_SCIF2_1_MARK = 2315, + SEL_DRIF3_0_MARK = 2316, + SEL_DRIF3_1_MARK = 2317, + SEL_SCIF1_0_MARK = 2318, + SEL_SCIF1_1_MARK = 2319, + SEL_DRIF2_0_MARK = 2320, + SEL_DRIF2_1_MARK = 2321, + SEL_SCIF_0_MARK = 2322, + SEL_SCIF_1_MARK = 2323, + SEL_DRIF1_0_MARK = 2324, + SEL_DRIF1_1_MARK = 2325, + SEL_DRIF1_2_MARK = 2326, + SEL_REMOCON_0_MARK = 2327, + SEL_REMOCON_1_MARK = 2328, + SEL_DRIF0_0_MARK = 2329, + SEL_DRIF0_1_MARK = 2330, + SEL_DRIF0_2_MARK = 2331, + SEL_RCAN0_0_MARK = 2332, + SEL_RCAN0_1_MARK = 2333, + SEL_CANFD0_0_MARK = 2334, + SEL_CANFD0_1_MARK = 2335, + SEL_PWM6_0_MARK = 2336, + SEL_PWM6_1_MARK = 2337, + SEL_ADGA_0_MARK = 2338, + SEL_ADGA_1_MARK = 2339, + SEL_ADGA_2_MARK = 2340, + SEL_ADGA_3_MARK = 2341, + SEL_PWM5_0_MARK = 2342, + SEL_PWM5_1_MARK = 2343, + SEL_PWM4_0_MARK = 2344, + SEL_PWM4_1_MARK = 2345, + SEL_PWM3_0_MARK = 2346, + SEL_PWM3_1_MARK = 2347, + SEL_PWM2_0_MARK = 2348, + SEL_PWM2_1_MARK = 2349, + SEL_PWM1_0_MARK = 2350, + SEL_PWM1_1_MARK = 2351, + SEL_VIN4_0_MARK = 2352, + SEL_VIN4_1_MARK = 2353, + QSPI0_SPCLK_MARK = 2354, + QSPI0_SSL_MARK = 2355, + QSPI0_MOSI_IO0_MARK = 2356, + QSPI0_MISO_IO1_MARK = 2357, + QSPI0_IO2_MARK = 2358, + QSPI0_IO3_MARK = 2359, + QSPI1_SPCLK_MARK = 2360, + QSPI1_SSL_MARK = 2361, + QSPI1_MOSI_IO0_MARK = 2362, + QSPI1_MISO_IO1_MARK = 2363, + QSPI1_IO2_MARK = 2364, + QSPI1_IO3_MARK = 2365, + RPC_INT_MARK = 2366, + RPC_WP_MARK = 2367, + RPC_RESET_MARK = 2368, + AVB_TX_CTL_MARK = 2369, + AVB_TXC_MARK = 2370, + AVB_TD0_MARK = 2371, + AVB_TD1_MARK = 2372, + AVB_TD2_MARK = 2373, + AVB_TD3_MARK = 2374, + AVB_RX_CTL_MARK = 2375, + AVB_RXC_MARK = 2376, + AVB_RD0_MARK = 2377, + AVB_RD1_MARK = 2378, + AVB_RD2_MARK = 2379, + AVB_RD3_MARK = 2380, + AVB_TXCREFCLK_MARK = 2381, + AVB_MDIO_MARK = 2382, + PRESETOUT_MARK = 2383, + DU_DOTCLKIN0_MARK = 2384, + DU_DOTCLKIN1_MARK = 2385, + DU_DOTCLKIN2_MARK = 2386, + TMS_MARK = 2387, + TDO_MARK = 2388, + ASEBRK_MARK = 2389, + MLB_REF_MARK = 2390, + TDI_MARK = 2391, + TCK_MARK = 2392, + TRST_MARK = 2393, + EXTALR_MARK = 2394, + SCL0_MARK = 2395, + SDA0_MARK = 2396, + SCL3_MARK = 2397, + SDA3_MARK = 2398, + SCL5_MARK = 2399, + SDA5_MARK = 2400, + PINMUX_MARK_END = 2401, +}; + +enum { + PINMUX_RESERVED___2 = 0, + PINMUX_DATA_BEGIN___2 = 1, + GP_0_0_DATA___2 = 2, + GP_0_1_DATA___2 = 3, + GP_0_2_DATA___2 = 4, + GP_0_3_DATA___2 = 5, + GP_0_4_DATA___2 = 6, + GP_0_5_DATA___2 = 7, + GP_0_6_DATA___2 = 8, + GP_0_7_DATA___2 = 9, + GP_0_8_DATA___2 = 10, + GP_0_9_DATA___2 = 11, + GP_0_10_DATA___2 = 12, + GP_0_11_DATA___2 = 13, + GP_0_12_DATA___2 = 14, + GP_0_13_DATA___2 = 15, + GP_0_14_DATA___2 = 16, + GP_0_15_DATA___2 = 17, + GP_1_0_DATA___2 = 18, + GP_1_1_DATA___2 = 19, + GP_1_2_DATA___2 = 20, + GP_1_3_DATA___2 = 21, + GP_1_4_DATA___2 = 22, + GP_1_5_DATA___2 = 23, + GP_1_6_DATA___2 = 24, + GP_1_7_DATA___2 = 25, + GP_1_8_DATA___2 = 26, + GP_1_9_DATA___2 = 27, + GP_1_10_DATA___2 = 28, + GP_1_11_DATA___2 = 29, + GP_1_12_DATA___2 = 30, + GP_1_13_DATA___2 = 31, + GP_1_14_DATA___2 = 32, + GP_1_15_DATA___2 = 33, + GP_1_16_DATA___2 = 34, + GP_1_17_DATA___2 = 35, + GP_1_18_DATA___2 = 36, + GP_1_19_DATA___2 = 37, + GP_1_20_DATA___2 = 38, + GP_1_21_DATA___2 = 39, + GP_1_22_DATA___2 = 40, + GP_1_23_DATA___2 = 41, + GP_1_24_DATA___2 = 42, + GP_1_25_DATA___2 = 43, + GP_1_26_DATA___2 = 44, + GP_1_27_DATA___2 = 45, + GP_1_28_DATA___2 = 46, + GP_2_0_DATA___2 = 47, + GP_2_1_DATA___2 = 48, + GP_2_2_DATA___2 = 49, + GP_2_3_DATA___2 = 50, + GP_2_4_DATA___2 = 51, + GP_2_5_DATA___2 = 52, + GP_2_6_DATA___2 = 53, + GP_2_7_DATA___2 = 54, + GP_2_8_DATA___2 = 55, + GP_2_9_DATA___2 = 56, + GP_2_10_DATA___2 = 57, + GP_2_11_DATA___2 = 58, + GP_2_12_DATA___2 = 59, + GP_2_13_DATA___2 = 60, + GP_2_14_DATA___2 = 61, + GP_3_0_DATA___2 = 62, + GP_3_1_DATA___2 = 63, + GP_3_2_DATA___2 = 64, + GP_3_3_DATA___2 = 65, + GP_3_4_DATA___2 = 66, + GP_3_5_DATA___2 = 67, + GP_3_6_DATA___2 = 68, + GP_3_7_DATA___2 = 69, + GP_3_8_DATA___2 = 70, + GP_3_9_DATA___2 = 71, + GP_3_10_DATA___2 = 72, + GP_3_11_DATA___2 = 73, + GP_3_12_DATA___2 = 74, + GP_3_13_DATA___2 = 75, + GP_3_14_DATA___2 = 76, + GP_3_15_DATA___2 = 77, + GP_4_0_DATA___2 = 78, + GP_4_1_DATA___2 = 79, + GP_4_2_DATA___2 = 80, + GP_4_3_DATA___2 = 81, + GP_4_4_DATA___2 = 82, + GP_4_5_DATA___2 = 83, + GP_4_6_DATA___2 = 84, + GP_4_7_DATA___2 = 85, + GP_4_8_DATA___2 = 86, + GP_4_9_DATA___2 = 87, + GP_4_10_DATA___2 = 88, + GP_4_11_DATA___2 = 89, + GP_4_12_DATA___2 = 90, + GP_4_13_DATA___2 = 91, + GP_4_14_DATA___2 = 92, + GP_4_15_DATA___2 = 93, + GP_4_16_DATA___2 = 94, + GP_4_17_DATA___2 = 95, + GP_5_0_DATA___2 = 96, + GP_5_1_DATA___2 = 97, + GP_5_2_DATA___2 = 98, + GP_5_3_DATA___2 = 99, + GP_5_4_DATA___2 = 100, + GP_5_5_DATA___2 = 101, + GP_5_6_DATA___2 = 102, + GP_5_7_DATA___2 = 103, + GP_5_8_DATA___2 = 104, + GP_5_9_DATA___2 = 105, + GP_5_10_DATA___2 = 106, + GP_5_11_DATA___2 = 107, + GP_5_12_DATA___2 = 108, + GP_5_13_DATA___2 = 109, + GP_5_14_DATA___2 = 110, + GP_5_15_DATA___2 = 111, + GP_5_16_DATA___2 = 112, + GP_5_17_DATA___2 = 113, + GP_5_18_DATA___2 = 114, + GP_5_19_DATA___2 = 115, + GP_5_20_DATA___2 = 116, + GP_5_21_DATA___2 = 117, + GP_5_22_DATA___2 = 118, + GP_5_23_DATA___2 = 119, + GP_5_24_DATA___2 = 120, + GP_5_25_DATA___2 = 121, + GP_6_0_DATA___2 = 122, + GP_6_1_DATA___2 = 123, + GP_6_2_DATA___2 = 124, + GP_6_3_DATA___2 = 125, + GP_6_4_DATA___2 = 126, + GP_6_5_DATA___2 = 127, + GP_6_6_DATA___2 = 128, + GP_6_7_DATA___2 = 129, + GP_6_8_DATA___2 = 130, + GP_6_9_DATA___2 = 131, + GP_6_10_DATA___2 = 132, + GP_6_11_DATA___2 = 133, + GP_6_12_DATA___2 = 134, + GP_6_13_DATA___2 = 135, + GP_6_14_DATA___2 = 136, + GP_6_15_DATA___2 = 137, + GP_6_16_DATA___2 = 138, + GP_6_17_DATA___2 = 139, + GP_6_18_DATA___2 = 140, + GP_6_19_DATA___2 = 141, + GP_6_20_DATA___2 = 142, + GP_6_21_DATA___2 = 143, + GP_6_22_DATA___2 = 144, + GP_6_23_DATA___2 = 145, + GP_6_24_DATA___2 = 146, + GP_6_25_DATA___2 = 147, + GP_6_26_DATA___2 = 148, + GP_6_27_DATA___2 = 149, + GP_6_28_DATA___2 = 150, + GP_6_29_DATA___2 = 151, + GP_6_30_DATA___2 = 152, + GP_6_31_DATA___2 = 153, + GP_7_0_DATA___2 = 154, + GP_7_1_DATA___2 = 155, + GP_7_2_DATA___2 = 156, + GP_7_3_DATA___2 = 157, + PINMUX_DATA_END___2 = 158, + PINMUX_FUNCTION_BEGIN___2 = 159, + GP_0_0_FN___2 = 160, + GP_0_1_FN___2 = 161, + GP_0_2_FN___2 = 162, + GP_0_3_FN___2 = 163, + GP_0_4_FN___2 = 164, + GP_0_5_FN___2 = 165, + GP_0_6_FN___2 = 166, + GP_0_7_FN___2 = 167, + GP_0_8_FN___2 = 168, + GP_0_9_FN___2 = 169, + GP_0_10_FN___2 = 170, + GP_0_11_FN___2 = 171, + GP_0_12_FN___2 = 172, + GP_0_13_FN___2 = 173, + GP_0_14_FN___2 = 174, + GP_0_15_FN___2 = 175, + GP_1_0_FN___2 = 176, + GP_1_1_FN___2 = 177, + GP_1_2_FN___2 = 178, + GP_1_3_FN___2 = 179, + GP_1_4_FN___2 = 180, + GP_1_5_FN___2 = 181, + GP_1_6_FN___2 = 182, + GP_1_7_FN___2 = 183, + GP_1_8_FN___2 = 184, + GP_1_9_FN___2 = 185, + GP_1_10_FN___2 = 186, + GP_1_11_FN___2 = 187, + GP_1_12_FN___2 = 188, + GP_1_13_FN___2 = 189, + GP_1_14_FN___2 = 190, + GP_1_15_FN___2 = 191, + GP_1_16_FN___2 = 192, + GP_1_17_FN___2 = 193, + GP_1_18_FN___2 = 194, + GP_1_19_FN___2 = 195, + GP_1_20_FN___2 = 196, + GP_1_21_FN___2 = 197, + GP_1_22_FN___2 = 198, + GP_1_23_FN___2 = 199, + GP_1_24_FN___2 = 200, + GP_1_25_FN___2 = 201, + GP_1_26_FN___2 = 202, + GP_1_27_FN___2 = 203, + GP_1_28_FN___2 = 204, + GP_2_0_FN___2 = 205, + GP_2_1_FN___2 = 206, + GP_2_2_FN___2 = 207, + GP_2_3_FN___2 = 208, + GP_2_4_FN___2 = 209, + GP_2_5_FN___2 = 210, + GP_2_6_FN___2 = 211, + GP_2_7_FN___2 = 212, + GP_2_8_FN___2 = 213, + GP_2_9_FN___2 = 214, + GP_2_10_FN___2 = 215, + GP_2_11_FN___2 = 216, + GP_2_12_FN___2 = 217, + GP_2_13_FN___2 = 218, + GP_2_14_FN___2 = 219, + GP_3_0_FN___2 = 220, + GP_3_1_FN___2 = 221, + GP_3_2_FN___2 = 222, + GP_3_3_FN___2 = 223, + GP_3_4_FN___2 = 224, + GP_3_5_FN___2 = 225, + GP_3_6_FN___2 = 226, + GP_3_7_FN___2 = 227, + GP_3_8_FN___2 = 228, + GP_3_9_FN___2 = 229, + GP_3_10_FN___2 = 230, + GP_3_11_FN___2 = 231, + GP_3_12_FN___2 = 232, + GP_3_13_FN___2 = 233, + GP_3_14_FN___2 = 234, + GP_3_15_FN___2 = 235, + GP_4_0_FN___2 = 236, + GP_4_1_FN___2 = 237, + GP_4_2_FN___2 = 238, + GP_4_3_FN___2 = 239, + GP_4_4_FN___2 = 240, + GP_4_5_FN___2 = 241, + GP_4_6_FN___2 = 242, + GP_4_7_FN___2 = 243, + GP_4_8_FN___2 = 244, + GP_4_9_FN___2 = 245, + GP_4_10_FN___2 = 246, + GP_4_11_FN___2 = 247, + GP_4_12_FN___2 = 248, + GP_4_13_FN___2 = 249, + GP_4_14_FN___2 = 250, + GP_4_15_FN___2 = 251, + GP_4_16_FN___2 = 252, + GP_4_17_FN___2 = 253, + GP_5_0_FN___2 = 254, + GP_5_1_FN___2 = 255, + GP_5_2_FN___2 = 256, + GP_5_3_FN___2 = 257, + GP_5_4_FN___2 = 258, + GP_5_5_FN___2 = 259, + GP_5_6_FN___2 = 260, + GP_5_7_FN___2 = 261, + GP_5_8_FN___2 = 262, + GP_5_9_FN___2 = 263, + GP_5_10_FN___2 = 264, + GP_5_11_FN___2 = 265, + GP_5_12_FN___2 = 266, + GP_5_13_FN___2 = 267, + GP_5_14_FN___2 = 268, + GP_5_15_FN___2 = 269, + GP_5_16_FN___2 = 270, + GP_5_17_FN___2 = 271, + GP_5_18_FN___2 = 272, + GP_5_19_FN___2 = 273, + GP_5_20_FN___2 = 274, + GP_5_21_FN___2 = 275, + GP_5_22_FN___2 = 276, + GP_5_23_FN___2 = 277, + GP_5_24_FN___2 = 278, + GP_5_25_FN___2 = 279, + GP_6_0_FN___2 = 280, + GP_6_1_FN___2 = 281, + GP_6_2_FN___2 = 282, + GP_6_3_FN___2 = 283, + GP_6_4_FN___2 = 284, + GP_6_5_FN___2 = 285, + GP_6_6_FN___2 = 286, + GP_6_7_FN___2 = 287, + GP_6_8_FN___2 = 288, + GP_6_9_FN___2 = 289, + GP_6_10_FN___2 = 290, + GP_6_11_FN___2 = 291, + GP_6_12_FN___2 = 292, + GP_6_13_FN___2 = 293, + GP_6_14_FN___2 = 294, + GP_6_15_FN___2 = 295, + GP_6_16_FN___2 = 296, + GP_6_17_FN___2 = 297, + GP_6_18_FN___2 = 298, + GP_6_19_FN___2 = 299, + GP_6_20_FN___2 = 300, + GP_6_21_FN___2 = 301, + GP_6_22_FN___2 = 302, + GP_6_23_FN___2 = 303, + GP_6_24_FN___2 = 304, + GP_6_25_FN___2 = 305, + GP_6_26_FN___2 = 306, + GP_6_27_FN___2 = 307, + GP_6_28_FN___2 = 308, + GP_6_29_FN___2 = 309, + GP_6_30_FN___2 = 310, + GP_6_31_FN___2 = 311, + GP_7_0_FN___2 = 312, + GP_7_1_FN___2 = 313, + GP_7_2_FN___2 = 314, + GP_7_3_FN___2 = 315, + FN_CLKOUT___2 = 316, + FN_MSIOF0_RXD___2 = 317, + FN_MSIOF0_TXD___2 = 318, + FN_MSIOF0_SCK___2 = 319, + FN_SSI_SDATA5___2 = 320, + FN_SSI_WS5___2 = 321, + FN_SSI_SCK5___2 = 322, + FN_GP7_03___2 = 323, + FN_GP7_02___2 = 324, + FN_AVS2___2 = 325, + FN_AVS1___2 = 326, + FN_IP0_3_0___2 = 327, + FN_AVB_MDC___2 = 328, + FN_MSIOF2_SS2_C___2 = 329, + FN_IP1_3_0___2 = 330, + FN_IRQ2___2 = 331, + FN_QCPV_QDE___2 = 332, + FN_DU_EXODDF_DU_ODDF_DISP_CDE___2 = 333, + FN_VI4_DATA2_B___2 = 334, + FN_MSIOF3_SYNC_E___2 = 335, + FN_PWM3_B___2 = 336, + FN_IP2_3_0___2 = 337, + FN_A1___2 = 338, + FN_LCDOUT17___2 = 339, + FN_MSIOF3_TXD_B___2 = 340, + FN_VI4_DATA9___2 = 341, + FN_DU_DB1___2 = 342, + FN_PWM4_A___2 = 343, + FN_IP3_3_0___2 = 344, + FN_A9___2 = 345, + FN_MSIOF2_SCK_A___2 = 346, + FN_CTS4_N_B___2 = 347, + FN_VI5_VSYNC_N___2 = 348, + FN_IP0_7_4___2 = 349, + FN_AVB_MAGIC___2 = 350, + FN_MSIOF2_SS1_C___2 = 351, + FN_SCK4_A___2 = 352, + FN_IP1_7_4___2 = 353, + FN_IRQ3___2 = 354, + FN_QSTVB_QVE___2 = 355, + FN_DU_DOTCLKOUT1___2 = 356, + FN_VI4_DATA3_B___2 = 357, + FN_MSIOF3_SCK_E___2 = 358, + FN_PWM4_B___2 = 359, + FN_IP2_7_4___2 = 360, + FN_A2___2 = 361, + FN_LCDOUT18___2 = 362, + FN_MSIOF3_SCK_B___2 = 363, + FN_VI4_DATA10___2 = 364, + FN_DU_DB2___2 = 365, + FN_PWM5_A___2 = 366, + FN_IP3_7_4___2 = 367, + FN_A10___2 = 368, + FN_MSIOF2_RXD_A___2 = 369, + FN_RTS4_N_B___2 = 370, + FN_VI5_HSYNC_N___2 = 371, + FN_IP0_11_8___2 = 372, + FN_AVB_PHY_INT___2 = 373, + FN_MSIOF2_SYNC_C___2 = 374, + FN_RX4_A___2 = 375, + FN_IP1_11_8___2 = 376, + FN_IRQ4___2 = 377, + FN_QSTH_QHS___2 = 378, + FN_DU_EXHSYNC_DU_HSYNC___2 = 379, + FN_VI4_DATA4_B___2 = 380, + FN_MSIOF3_RXD_E___2 = 381, + FN_PWM5_B___2 = 382, + FN_IP2_11_8___2 = 383, + FN_A3___2 = 384, + FN_LCDOUT19___2 = 385, + FN_MSIOF3_RXD_B___2 = 386, + FN_VI4_DATA11___2 = 387, + FN_DU_DB3___2 = 388, + FN_PWM6_A___2 = 389, + FN_IP3_11_8___2 = 390, + FN_A11___2 = 391, + FN_TX3_B___2 = 392, + FN_MSIOF2_TXD_A___2 = 393, + FN_HTX4_B___2 = 394, + FN_HSCK4___2 = 395, + FN_VI5_FIELD___2 = 396, + FN_SCL6_A___2 = 397, + FN_AVB_AVTP_CAPTURE_B___2 = 398, + FN_PWM2_B___2 = 399, + FN_IP0_15_12___2 = 400, + FN_AVB_LINK___2 = 401, + FN_MSIOF2_SCK_C___2 = 402, + FN_TX4_A___2 = 403, + FN_IP1_15_12___2 = 404, + FN_IRQ5___2 = 405, + FN_QSTB_QHE___2 = 406, + FN_DU_EXVSYNC_DU_VSYNC___2 = 407, + FN_VI4_DATA5_B___2 = 408, + FN_FSCLKST2_N_B = 409, + FN_MSIOF3_TXD_E___2 = 410, + FN_PWM6_B___2 = 411, + FN_IP2_15_12___2 = 412, + FN_A4___2 = 413, + FN_LCDOUT20___2 = 414, + FN_MSIOF3_SS1_B___2 = 415, + FN_VI4_DATA12___2 = 416, + FN_VI5_DATA12___2 = 417, + FN_DU_DB4___2 = 418, + FN_IP3_15_12___2 = 419, + FN_A12___2 = 420, + FN_LCDOUT12___2 = 421, + FN_MSIOF3_SCK_C___2 = 422, + FN_HRX4_A___2 = 423, + FN_VI5_DATA8___2 = 424, + FN_DU_DG4___2 = 425, + FN_IP0_19_16___2 = 426, + FN_AVB_AVTP_MATCH_A___2 = 427, + FN_MSIOF2_RXD_C___2 = 428, + FN_CTS4_N_A___2 = 429, + FN_FSCLKST2_N_A = 430, + FN_IP1_19_16___2 = 431, + FN_PWM0___2 = 432, + FN_AVB_AVTP_PPS___2 = 433, + FN_VI4_DATA6_B___2 = 434, + FN_IECLK_B___2 = 435, + FN_IP2_19_16___2 = 436, + FN_A5___2 = 437, + FN_LCDOUT21___2 = 438, + FN_MSIOF3_SS2_B___2 = 439, + FN_SCK4_B___2 = 440, + FN_VI4_DATA13___2 = 441, + FN_VI5_DATA13___2 = 442, + FN_DU_DB5___2 = 443, + FN_IP3_19_16___2 = 444, + FN_A13___2 = 445, + FN_LCDOUT13___2 = 446, + FN_MSIOF3_SYNC_C___2 = 447, + FN_HTX4_A___2 = 448, + FN_VI5_DATA9___2 = 449, + FN_DU_DG5___2 = 450, + FN_IP0_23_20___2 = 451, + FN_AVB_AVTP_CAPTURE_A___2 = 452, + FN_MSIOF2_TXD_C___2 = 453, + FN_RTS4_N_A___2 = 454, + FN_IP1_23_20___2 = 455, + FN_PWM1_A___2 = 456, + FN_HRX3_D___2 = 457, + FN_VI4_DATA7_B___2 = 458, + FN_IERX_B___2 = 459, + FN_IP2_23_20___2 = 460, + FN_A6___2 = 461, + FN_LCDOUT22___2 = 462, + FN_MSIOF2_SS1_A___2 = 463, + FN_RX4_B___2 = 464, + FN_VI4_DATA14___2 = 465, + FN_VI5_DATA14___2 = 466, + FN_DU_DB6___2 = 467, + FN_IP3_23_20___2 = 468, + FN_A14___2 = 469, + FN_LCDOUT14___2 = 470, + FN_MSIOF3_RXD_C___2 = 471, + FN_HCTS4_N___2 = 472, + FN_VI5_DATA10___2 = 473, + FN_DU_DG6___2 = 474, + FN_IP0_27_24___2 = 475, + FN_IRQ0___2 = 476, + FN_QPOLB___2 = 477, + FN_DU_CDE___2 = 478, + FN_VI4_DATA0_B___2 = 479, + FN_CAN0_TX_B___2 = 480, + FN_CANFD0_TX_B___2 = 481, + FN_MSIOF3_SS2_E___2 = 482, + FN_IP1_27_24___2 = 483, + FN_PWM2_A___2 = 484, + FN_HTX3_D___2 = 485, + FN_IETX_B___2 = 486, + FN_IP2_27_24___2 = 487, + FN_A7___2 = 488, + FN_LCDOUT23___2 = 489, + FN_MSIOF2_SS2_A___2 = 490, + FN_TX4_B___2 = 491, + FN_VI4_DATA15___2 = 492, + FN_VI5_DATA15___2 = 493, + FN_DU_DB7___2 = 494, + FN_IP3_27_24___2 = 495, + FN_A15___2 = 496, + FN_LCDOUT15___2 = 497, + FN_MSIOF3_TXD_C___2 = 498, + FN_HRTS4_N___2 = 499, + FN_VI5_DATA11___2 = 500, + FN_DU_DG7___2 = 501, + FN_IP0_31_28___2 = 502, + FN_IRQ1___2 = 503, + FN_QPOLA___2 = 504, + FN_DU_DISP___2 = 505, + FN_VI4_DATA1_B___2 = 506, + FN_CAN0_RX_B___2 = 507, + FN_CANFD0_RX_B___2 = 508, + FN_MSIOF3_SS1_E___2 = 509, + FN_IP1_31_28___2 = 510, + FN_A0___2 = 511, + FN_LCDOUT16___2 = 512, + FN_MSIOF3_SYNC_B___2 = 513, + FN_VI4_DATA8___2 = 514, + FN_DU_DB0___2 = 515, + FN_PWM3_A___2 = 516, + FN_IP2_31_28___2 = 517, + FN_A8___2 = 518, + FN_RX3_B___2 = 519, + FN_MSIOF2_SYNC_A___2 = 520, + FN_HRX4_B___2 = 521, + FN_SDA6_A___2 = 522, + FN_AVB_AVTP_MATCH_B___2 = 523, + FN_PWM1_B___2 = 524, + FN_IP3_31_28___2 = 525, + FN_A16___2 = 526, + FN_LCDOUT8___2 = 527, + FN_VI4_FIELD___2 = 528, + FN_DU_DG0___2 = 529, + FN_IP4_3_0___2 = 530, + FN_A17___2 = 531, + FN_LCDOUT9___2 = 532, + FN_VI4_VSYNC_N___2 = 533, + FN_DU_DG1___2 = 534, + FN_IP5_3_0___2 = 535, + FN_WE0_N___2 = 536, + FN_MSIOF3_TXD_D___2 = 537, + FN_CTS3_N___2 = 538, + FN_HCTS3_N___2 = 539, + FN_SCL6_B___2 = 540, + FN_CAN_CLK___2 = 541, + FN_IECLK_A___2 = 542, + FN_IP6_3_0___2 = 543, + FN_D5___2 = 544, + FN_MSIOF2_SYNC_B___2 = 545, + FN_VI4_DATA21___2 = 546, + FN_VI5_DATA5___2 = 547, + FN_IP7_3_0___2 = 548, + FN_D13___2 = 549, + FN_LCDOUT5___2 = 550, + FN_MSIOF2_SS2_D___2 = 551, + FN_TX4_C___2 = 552, + FN_VI4_DATA5_A___2 = 553, + FN_DU_DR5___2 = 554, + FN_IP4_7_4___2 = 555, + FN_A18___2 = 556, + FN_LCDOUT10___2 = 557, + FN_VI4_HSYNC_N___2 = 558, + FN_DU_DG2___2 = 559, + FN_IP5_7_4___2 = 560, + FN_WE1_N___2 = 561, + FN_MSIOF3_SS1_D___2 = 562, + FN_RTS3_N___2 = 563, + FN_HRTS3_N___2 = 564, + FN_SDA6_B___2 = 565, + FN_CAN1_RX___2 = 566, + FN_CANFD1_RX___2 = 567, + FN_IERX_A___2 = 568, + FN_IP6_7_4___2 = 569, + FN_D6___2 = 570, + FN_MSIOF2_RXD_B___2 = 571, + FN_VI4_DATA22___2 = 572, + FN_VI5_DATA6___2 = 573, + FN_IP7_7_4___2 = 574, + FN_D14___2 = 575, + FN_LCDOUT6___2 = 576, + FN_MSIOF3_SS1_A___2 = 577, + FN_HRX3_C___2 = 578, + FN_VI4_DATA6_A___2 = 579, + FN_DU_DR6___2 = 580, + FN_SCL6_C___2 = 581, + FN_IP4_11_8___2 = 582, + FN_A19___2 = 583, + FN_LCDOUT11___2 = 584, + FN_VI4_CLKENB___2 = 585, + FN_DU_DG3___2 = 586, + FN_IP5_11_8___2 = 587, + FN_EX_WAIT0_A___2 = 588, + FN_QCLK___2 = 589, + FN_VI4_CLK___2 = 590, + FN_DU_DOTCLKOUT0___2 = 591, + FN_IP6_11_8___2 = 592, + FN_D7___2 = 593, + FN_MSIOF2_TXD_B___2 = 594, + FN_VI4_DATA23___2 = 595, + FN_VI5_DATA7___2 = 596, + FN_IP7_11_8___2 = 597, + FN_D15___2 = 598, + FN_LCDOUT7___2 = 599, + FN_MSIOF3_SS2_A___2 = 600, + FN_HTX3_C___2 = 601, + FN_VI4_DATA7_A___2 = 602, + FN_DU_DR7___2 = 603, + FN_SDA6_C___2 = 604, + FN_IP4_15_12___2 = 605, + FN_CS0_N___2 = 606, + FN_VI5_CLKENB___2 = 607, + FN_IP5_15_12___2 = 608, + FN_D0___2 = 609, + FN_MSIOF2_SS1_B___2 = 610, + FN_MSIOF3_SCK_A___2 = 611, + FN_VI4_DATA16___2 = 612, + FN_VI5_DATA0___2 = 613, + FN_IP6_15_12___2 = 614, + FN_D8___2 = 615, + FN_LCDOUT0___2 = 616, + FN_MSIOF2_SCK_D___2 = 617, + FN_SCK4_C___2 = 618, + FN_VI4_DATA0_A___2 = 619, + FN_DU_DR0___2 = 620, + FN_IP4_19_16___2 = 621, + FN_CS1_N___2 = 622, + FN_VI5_CLK___2 = 623, + FN_EX_WAIT0_B___2 = 624, + FN_IP5_19_16___2 = 625, + FN_D1___2 = 626, + FN_MSIOF2_SS2_B___2 = 627, + FN_MSIOF3_SYNC_A___2 = 628, + FN_VI4_DATA17___2 = 629, + FN_VI5_DATA1___2 = 630, + FN_IP6_19_16___2 = 631, + FN_D9___2 = 632, + FN_LCDOUT1___2 = 633, + FN_MSIOF2_SYNC_D___2 = 634, + FN_VI4_DATA1_A___2 = 635, + FN_DU_DR1___2 = 636, + FN_IP7_19_16___2 = 637, + FN_SD0_CLK___2 = 638, + FN_MSIOF1_SCK_E___2 = 639, + FN_STP_OPWM_0_B___2 = 640, + FN_IP4_23_20___2 = 641, + FN_BS_N___2 = 642, + FN_QSTVA_QVS___2 = 643, + FN_MSIOF3_SCK_D___2 = 644, + FN_SCK3___2 = 645, + FN_HSCK3___2 = 646, + FN_CAN1_TX___2 = 647, + FN_CANFD1_TX___2 = 648, + FN_IETX_A___2 = 649, + FN_IP5_23_20___2 = 650, + FN_D2___2 = 651, + FN_MSIOF3_RXD_A___2 = 652, + FN_VI4_DATA18___2 = 653, + FN_VI5_DATA2___2 = 654, + FN_IP6_23_20___2 = 655, + FN_D10___2 = 656, + FN_LCDOUT2___2 = 657, + FN_MSIOF2_RXD_D___2 = 658, + FN_HRX3_B___2 = 659, + FN_VI4_DATA2_A___2 = 660, + FN_CTS4_N_C___2 = 661, + FN_DU_DR2___2 = 662, + FN_IP7_23_20___2 = 663, + FN_SD0_CMD___2 = 664, + FN_MSIOF1_SYNC_E___2 = 665, + FN_STP_IVCXO27_0_B___2 = 666, + FN_IP4_27_24___2 = 667, + FN_RD_N___2 = 668, + FN_MSIOF3_SYNC_D___2 = 669, + FN_RX3_A___2 = 670, + FN_HRX3_A___2 = 671, + FN_CAN0_TX_A___2 = 672, + FN_CANFD0_TX_A___2 = 673, + FN_IP5_27_24___2 = 674, + FN_D3___2 = 675, + FN_MSIOF3_TXD_A___2 = 676, + FN_VI4_DATA19___2 = 677, + FN_VI5_DATA3___2 = 678, + FN_IP6_27_24___2 = 679, + FN_D11___2 = 680, + FN_LCDOUT3___2 = 681, + FN_MSIOF2_TXD_D___2 = 682, + FN_HTX3_B___2 = 683, + FN_VI4_DATA3_A___2 = 684, + FN_RTS4_N_C___2 = 685, + FN_DU_DR3___2 = 686, + FN_IP7_27_24___2 = 687, + FN_SD0_DAT0___2 = 688, + FN_MSIOF1_RXD_E___2 = 689, + FN_TS_SCK0_B___2 = 690, + FN_STP_ISCLK_0_B___2 = 691, + FN_IP4_31_28___2 = 692, + FN_RD_WR_N___2 = 693, + FN_MSIOF3_RXD_D___2 = 694, + FN_TX3_A___2 = 695, + FN_HTX3_A___2 = 696, + FN_CAN0_RX_A___2 = 697, + FN_CANFD0_RX_A___2 = 698, + FN_IP5_31_28___2 = 699, + FN_D4___2 = 700, + FN_MSIOF2_SCK_B___2 = 701, + FN_VI4_DATA20___2 = 702, + FN_VI5_DATA4___2 = 703, + FN_IP6_31_28___2 = 704, + FN_D12___2 = 705, + FN_LCDOUT4___2 = 706, + FN_MSIOF2_SS1_D___2 = 707, + FN_RX4_C___2 = 708, + FN_VI4_DATA4_A___2 = 709, + FN_DU_DR4___2 = 710, + FN_IP7_31_28___2 = 711, + FN_SD0_DAT1___2 = 712, + FN_MSIOF1_TXD_E___2 = 713, + FN_TS_SPSYNC0_B___2 = 714, + FN_STP_ISSYNC_0_B___2 = 715, + FN_IP8_3_0___2 = 716, + FN_SD0_DAT2___2 = 717, + FN_MSIOF1_SS1_E___2 = 718, + FN_TS_SDAT0_B___2 = 719, + FN_STP_ISD_0_B___2 = 720, + FN_IP9_3_0___2 = 721, + FN_SD2_CLK___2 = 722, + FN_NFDATA8___2 = 723, + FN_IP10_3_0___2 = 724, + FN_SD3_CMD___2 = 725, + FN_NFRE_N___2 = 726, + FN_IP11_3_0___2 = 727, + FN_SD3_DAT7___2 = 728, + FN_SD3_WP___2 = 729, + FN_NFDATA7___2 = 730, + FN_IP8_7_4___2 = 731, + FN_SD0_DAT3___2 = 732, + FN_MSIOF1_SS2_E___2 = 733, + FN_TS_SDEN0_B___2 = 734, + FN_STP_ISEN_0_B___2 = 735, + FN_IP9_7_4___2 = 736, + FN_SD2_CMD___2 = 737, + FN_NFDATA9___2 = 738, + FN_IP10_7_4___2 = 739, + FN_SD3_DAT0___2 = 740, + FN_NFDATA0___2 = 741, + FN_IP11_7_4___2 = 742, + FN_SD3_DS___2 = 743, + FN_NFCLE___2 = 744, + FN_IP8_11_8___2 = 745, + FN_SD1_CLK___2 = 746, + FN_MSIOF1_SCK_G___2 = 747, + FN_SIM0_CLK_A___2 = 748, + FN_IP9_11_8___2 = 749, + FN_SD2_DAT0___2 = 750, + FN_NFDATA10___2 = 751, + FN_IP10_11_8___2 = 752, + FN_SD3_DAT1___2 = 753, + FN_NFDATA1___2 = 754, + FN_IP11_11_8___2 = 755, + FN_SD0_CD___2 = 756, + FN_NFDATA14_A___2 = 757, + FN_SCL2_B___2 = 758, + FN_SIM0_RST_A___2 = 759, + FN_IP8_15_12___2 = 760, + FN_SD1_CMD___2 = 761, + FN_MSIOF1_SYNC_G___2 = 762, + FN_NFCE_N_B___2 = 763, + FN_SIM0_D_A___2 = 764, + FN_STP_IVCXO27_1_B___2 = 765, + FN_IP9_15_12___2 = 766, + FN_SD2_DAT1___2 = 767, + FN_NFDATA11___2 = 768, + FN_IP10_15_12___2 = 769, + FN_SD3_DAT2___2 = 770, + FN_NFDATA2___2 = 771, + FN_IP11_15_12___2 = 772, + FN_SD0_WP___2 = 773, + FN_NFDATA15_A___2 = 774, + FN_SDA2_B___2 = 775, + FN_IP8_19_16___2 = 776, + FN_SD1_DAT0___2 = 777, + FN_SD2_DAT4___2 = 778, + FN_MSIOF1_RXD_G___2 = 779, + FN_NFWP_N_B___2 = 780, + FN_TS_SCK1_B___2 = 781, + FN_STP_ISCLK_1_B___2 = 782, + FN_IP9_19_16___2 = 783, + FN_SD2_DAT2___2 = 784, + FN_NFDATA12___2 = 785, + FN_IP10_19_16___2 = 786, + FN_SD3_DAT3___2 = 787, + FN_NFDATA3___2 = 788, + FN_IP11_19_16___2 = 789, + FN_SD1_CD___2 = 790, + FN_NFRB_N_A___2 = 791, + FN_SIM0_CLK_B___2 = 792, + FN_IP8_23_20___2 = 793, + FN_SD1_DAT1___2 = 794, + FN_SD2_DAT5___2 = 795, + FN_MSIOF1_TXD_G___2 = 796, + FN_NFDATA14_B___2 = 797, + FN_TS_SPSYNC1_B___2 = 798, + FN_STP_ISSYNC_1_B___2 = 799, + FN_IP9_23_20___2 = 800, + FN_SD2_DAT3___2 = 801, + FN_NFDATA13___2 = 802, + FN_IP10_23_20___2 = 803, + FN_SD3_DAT4___2 = 804, + FN_SD2_CD_A___2 = 805, + FN_NFDATA4___2 = 806, + FN_IP11_23_20___2 = 807, + FN_SD1_WP___2 = 808, + FN_NFCE_N_A___2 = 809, + FN_SIM0_D_B___2 = 810, + FN_IP8_27_24___2 = 811, + FN_SD1_DAT2___2 = 812, + FN_SD2_DAT6___2 = 813, + FN_MSIOF1_SS1_G___2 = 814, + FN_NFDATA15_B___2 = 815, + FN_TS_SDAT1_B___2 = 816, + FN_STP_ISD_1_B___2 = 817, + FN_IP9_27_24___2 = 818, + FN_SD2_DS___2 = 819, + FN_NFALE___2 = 820, + FN_SATA_DEVSLP_B = 821, + FN_IP10_27_24___2 = 822, + FN_SD3_DAT5___2 = 823, + FN_SD2_WP_A___2 = 824, + FN_NFDATA5___2 = 825, + FN_IP11_27_24___2 = 826, + FN_SCK0___2 = 827, + FN_HSCK1_B___2 = 828, + FN_MSIOF1_SS2_B___2 = 829, + FN_AUDIO_CLKC_B___2 = 830, + FN_SDA2_A___2 = 831, + FN_SIM0_RST_B___2 = 832, + FN_STP_OPWM_0_C___2 = 833, + FN_RIF0_CLK_B___2 = 834, + FN_ADICHS2___2 = 835, + FN_SCK5_B___2 = 836, + FN_IP8_31_28___2 = 837, + FN_SD1_DAT3___2 = 838, + FN_SD2_DAT7___2 = 839, + FN_MSIOF1_SS2_G___2 = 840, + FN_NFRB_N_B___2 = 841, + FN_TS_SDEN1_B___2 = 842, + FN_STP_ISEN_1_B___2 = 843, + FN_IP9_31_28___2 = 844, + FN_SD3_CLK___2 = 845, + FN_NFWE_N___2 = 846, + FN_IP10_31_28___2 = 847, + FN_SD3_DAT6___2 = 848, + FN_SD3_CD___2 = 849, + FN_NFDATA6___2 = 850, + FN_IP11_31_28___2 = 851, + FN_RX0___2 = 852, + FN_HRX1_B___2 = 853, + FN_TS_SCK0_C___2 = 854, + FN_STP_ISCLK_0_C___2 = 855, + FN_RIF0_D0_B___2 = 856, + FN_IP12_3_0___2 = 857, + FN_TX0___2 = 858, + FN_HTX1_B___2 = 859, + FN_TS_SPSYNC0_C___2 = 860, + FN_STP_ISSYNC_0_C___2 = 861, + FN_RIF0_D1_B___2 = 862, + FN_IP13_3_0___2 = 863, + FN_TX2_A___2 = 864, + FN_SD2_CD_B___2 = 865, + FN_SCL1_A___2 = 866, + FN_FMCLK_A___2 = 867, + FN_RIF1_D1_C___2 = 868, + FN_FSO_CFE_0_N___2 = 869, + FN_IP14_3_0___2 = 870, + FN_MSIOF0_SS1___2 = 871, + FN_RX5_A___2 = 872, + FN_NFWP_N_A___2 = 873, + FN_AUDIO_CLKA_C___2 = 874, + FN_SSI_SCK2_A___2 = 875, + FN_STP_IVCXO27_0_C___2 = 876, + FN_AUDIO_CLKOUT3_A___2 = 877, + FN_TCLK1_B___2 = 878, + FN_IP15_3_0___2 = 879, + FN_SSI_SDATA1_A___2 = 880, + FN_IP12_7_4___2 = 881, + FN_CTS0_N___2 = 882, + FN_HCTS1_N_B___2 = 883, + FN_MSIOF1_SYNC_B___2 = 884, + FN_TS_SPSYNC1_C___2 = 885, + FN_STP_ISSYNC_1_C___2 = 886, + FN_RIF1_SYNC_B___2 = 887, + FN_AUDIO_CLKOUT_C___2 = 888, + FN_ADICS_SAMP___2 = 889, + FN_IP13_7_4___2 = 890, + FN_RX2_A___2 = 891, + FN_SD2_WP_B___2 = 892, + FN_SDA1_A___2 = 893, + FN_FMIN_A___2 = 894, + FN_RIF1_SYNC_C___2 = 895, + FN_FSO_CFE_1_N___2 = 896, + FN_IP14_7_4___2 = 897, + FN_MSIOF0_SS2___2 = 898, + FN_TX5_A___2 = 899, + FN_MSIOF1_SS2_D___2 = 900, + FN_AUDIO_CLKC_A___2 = 901, + FN_SSI_WS2_A___2 = 902, + FN_STP_OPWM_0_D___2 = 903, + FN_AUDIO_CLKOUT_D___2 = 904, + FN_SPEEDIN_B___2 = 905, + FN_IP15_7_4___2 = 906, + FN_SSI_SDATA2_A___2 = 907, + FN_SSI_SCK1_B___2 = 908, + FN_IP12_11_8___2 = 909, + FN_RTS0_N___2 = 910, + FN_HRTS1_N_B___2 = 911, + FN_MSIOF1_SS1_B___2 = 912, + FN_AUDIO_CLKA_B___2 = 913, + FN_SCL2_A___2 = 914, + FN_STP_IVCXO27_1_C___2 = 915, + FN_RIF0_SYNC_B___2 = 916, + FN_ADICHS1___2 = 917, + FN_IP13_11_8___2 = 918, + FN_HSCK0___2 = 919, + FN_MSIOF1_SCK_D___2 = 920, + FN_AUDIO_CLKB_A___2 = 921, + FN_SSI_SDATA1_B___2 = 922, + FN_TS_SCK0_D___2 = 923, + FN_STP_ISCLK_0_D___2 = 924, + FN_RIF0_CLK_C___2 = 925, + FN_RX5_B___2 = 926, + FN_IP14_11_8___2 = 927, + FN_MLB_CLK___2 = 928, + FN_MSIOF1_SCK_F___2 = 929, + FN_SCL1_B___2 = 930, + FN_IP15_11_8___2 = 931, + FN_SSI_SCK349___2 = 932, + FN_MSIOF1_SS1_A___2 = 933, + FN_STP_OPWM_0_A___2 = 934, + FN_IP12_15_12___2 = 935, + FN_RX1_A___2 = 936, + FN_HRX1_A___2 = 937, + FN_TS_SDAT0_C___2 = 938, + FN_STP_ISD_0_C___2 = 939, + FN_RIF1_CLK_C___2 = 940, + FN_IP13_15_12___2 = 941, + FN_HRX0___2 = 942, + FN_MSIOF1_RXD_D___2 = 943, + FN_SSI_SDATA2_B___2 = 944, + FN_TS_SDEN0_D___2 = 945, + FN_STP_ISEN_0_D___2 = 946, + FN_RIF0_D0_C___2 = 947, + FN_IP14_15_12___2 = 948, + FN_MLB_SIG___2 = 949, + FN_RX1_B___2 = 950, + FN_MSIOF1_SYNC_F___2 = 951, + FN_SDA1_B___2 = 952, + FN_IP15_15_12___2 = 953, + FN_SSI_WS349___2 = 954, + FN_HCTS2_N_A___2 = 955, + FN_MSIOF1_SS2_A___2 = 956, + FN_STP_IVCXO27_0_A___2 = 957, + FN_IP12_19_16___2 = 958, + FN_TX1_A___2 = 959, + FN_HTX1_A___2 = 960, + FN_TS_SDEN0_C___2 = 961, + FN_STP_ISEN_0_C___2 = 962, + FN_RIF1_D0_C___2 = 963, + FN_IP13_19_16___2 = 964, + FN_HTX0___2 = 965, + FN_MSIOF1_TXD_D___2 = 966, + FN_SSI_SDATA9_B___2 = 967, + FN_TS_SDAT0_D___2 = 968, + FN_STP_ISD_0_D___2 = 969, + FN_RIF0_D1_C___2 = 970, + FN_IP14_19_16___2 = 971, + FN_MLB_DAT___2 = 972, + FN_TX1_B___2 = 973, + FN_MSIOF1_RXD_F___2 = 974, + FN_IP15_19_16___2 = 975, + FN_SSI_SDATA3___2 = 976, + FN_HRTS2_N_A___2 = 977, + FN_MSIOF1_TXD_A___2 = 978, + FN_TS_SCK0_A___2 = 979, + FN_STP_ISCLK_0_A___2 = 980, + FN_RIF0_D1_A___2 = 981, + FN_RIF2_D0_A___2 = 982, + FN_IP12_23_20___2 = 983, + FN_CTS1_N___2 = 984, + FN_HCTS1_N_A___2 = 985, + FN_MSIOF1_RXD_B___2 = 986, + FN_TS_SDEN1_C___2 = 987, + FN_STP_ISEN_1_C___2 = 988, + FN_RIF1_D0_B___2 = 989, + FN_ADIDATA___2 = 990, + FN_IP13_23_20___2 = 991, + FN_HCTS0_N___2 = 992, + FN_RX2_B___2 = 993, + FN_MSIOF1_SYNC_D___2 = 994, + FN_SSI_SCK9_A___2 = 995, + FN_TS_SPSYNC0_D___2 = 996, + FN_STP_ISSYNC_0_D___2 = 997, + FN_RIF0_SYNC_C___2 = 998, + FN_AUDIO_CLKOUT1_A___2 = 999, + FN_IP14_23_20___2 = 1000, + FN_SSI_SCK01239___2 = 1001, + FN_MSIOF1_TXD_F___2 = 1002, + FN_IP15_23_20___2 = 1003, + FN_SSI_SCK4___2 = 1004, + FN_HRX2_A___2 = 1005, + FN_MSIOF1_SCK_A___2 = 1006, + FN_TS_SDAT0_A___2 = 1007, + FN_STP_ISD_0_A___2 = 1008, + FN_RIF0_CLK_A___2 = 1009, + FN_RIF2_CLK_A___2 = 1010, + FN_IP12_27_24___2 = 1011, + FN_RTS1_N___2 = 1012, + FN_HRTS1_N_A___2 = 1013, + FN_MSIOF1_TXD_B___2 = 1014, + FN_TS_SDAT1_C___2 = 1015, + FN_STP_ISD_1_C___2 = 1016, + FN_RIF1_D1_B___2 = 1017, + FN_ADICHS0___2 = 1018, + FN_IP13_27_24___2 = 1019, + FN_HRTS0_N___2 = 1020, + FN_TX2_B___2 = 1021, + FN_MSIOF1_SS1_D___2 = 1022, + FN_SSI_WS9_A___2 = 1023, + FN_STP_IVCXO27_0_D___2 = 1024, + FN_BPFCLK_A___2 = 1025, + FN_AUDIO_CLKOUT2_A___2 = 1026, + FN_IP14_27_24___2 = 1027, + FN_SSI_WS01239___2 = 1028, + FN_MSIOF1_SS1_F___2 = 1029, + FN_IP15_27_24___2 = 1030, + FN_SSI_WS4___2 = 1031, + FN_HTX2_A___2 = 1032, + FN_MSIOF1_SYNC_A___2 = 1033, + FN_TS_SDEN0_A___2 = 1034, + FN_STP_ISEN_0_A___2 = 1035, + FN_RIF0_SYNC_A___2 = 1036, + FN_RIF2_SYNC_A___2 = 1037, + FN_IP12_31_28___2 = 1038, + FN_SCK2___2 = 1039, + FN_SCIF_CLK_B___2 = 1040, + FN_MSIOF1_SCK_B___2 = 1041, + FN_TS_SCK1_C___2 = 1042, + FN_STP_ISCLK_1_C___2 = 1043, + FN_RIF1_CLK_B___2 = 1044, + FN_ADICLK___2 = 1045, + FN_IP13_31_28___2 = 1046, + FN_MSIOF0_SYNC___2 = 1047, + FN_AUDIO_CLKOUT_A___2 = 1048, + FN_TX5_B___2 = 1049, + FN_BPFCLK_D___2 = 1050, + FN_IP14_31_28___2 = 1051, + FN_SSI_SDATA0___2 = 1052, + FN_MSIOF1_SS2_F___2 = 1053, + FN_IP15_31_28___2 = 1054, + FN_SSI_SDATA4___2 = 1055, + FN_HSCK2_A___2 = 1056, + FN_MSIOF1_RXD_A___2 = 1057, + FN_TS_SPSYNC0_A___2 = 1058, + FN_STP_ISSYNC_0_A___2 = 1059, + FN_RIF0_D0_A___2 = 1060, + FN_RIF2_D1_A___2 = 1061, + FN_IP16_3_0___2 = 1062, + FN_SSI_SCK6___2 = 1063, + FN_USB2_PWEN = 1064, + FN_SIM0_RST_D___2 = 1065, + FN_IP17_3_0___2 = 1066, + FN_AUDIO_CLKA_A___2 = 1067, + FN_IP18_3_0___2 = 1068, + FN_USB2_CH3_PWEN = 1069, + FN_AUDIO_CLKOUT2_B___2 = 1070, + FN_SSI_SCK9_B___2 = 1071, + FN_TS_SDEN0_E___2 = 1072, + FN_STP_ISEN_0_E___2 = 1073, + FN_RIF2_D0_B___2 = 1074, + FN_TPU0TO2___2 = 1075, + FN_FMCLK_C___2 = 1076, + FN_FMCLK_D___2 = 1077, + FN_IP16_7_4___2 = 1078, + FN_SSI_WS6___2 = 1079, + FN_USB2_OVC = 1080, + FN_SIM0_D_D___2 = 1081, + FN_IP17_7_4___2 = 1082, + FN_AUDIO_CLKB_B___2 = 1083, + FN_SCIF_CLK_A___2 = 1084, + FN_STP_IVCXO27_1_D___2 = 1085, + FN_REMOCON_A___2 = 1086, + FN_TCLK1_A___2 = 1087, + FN_IP18_7_4___2 = 1088, + FN_USB2_CH3_OVC = 1089, + FN_AUDIO_CLKOUT3_B___2 = 1090, + FN_SSI_WS9_B___2 = 1091, + FN_TS_SPSYNC0_E___2 = 1092, + FN_STP_ISSYNC_0_E___2 = 1093, + FN_RIF2_D1_B___2 = 1094, + FN_TPU0TO3___2 = 1095, + FN_FMIN_C___2 = 1096, + FN_FMIN_D___2 = 1097, + FN_IP16_11_8___2 = 1098, + FN_SSI_SDATA6___2 = 1099, + FN_SIM0_CLK_D___2 = 1100, + FN_SATA_DEVSLP_A = 1101, + FN_IP17_11_8___2 = 1102, + FN_USB0_PWEN___2 = 1103, + FN_SIM0_RST_C___2 = 1104, + FN_TS_SCK1_D___2 = 1105, + FN_STP_ISCLK_1_D___2 = 1106, + FN_BPFCLK_B___2 = 1107, + FN_RIF3_CLK_B___2 = 1108, + FN_HSCK2_C___2 = 1109, + FN_IP16_15_12___2 = 1110, + FN_SSI_SCK78___2 = 1111, + FN_HRX2_B___2 = 1112, + FN_MSIOF1_SCK_C___2 = 1113, + FN_TS_SCK1_A___2 = 1114, + FN_STP_ISCLK_1_A___2 = 1115, + FN_RIF1_CLK_A___2 = 1116, + FN_RIF3_CLK_A___2 = 1117, + FN_IP17_15_12___2 = 1118, + FN_USB0_OVC___2 = 1119, + FN_SIM0_D_C___2 = 1120, + FN_TS_SDAT1_D___2 = 1121, + FN_STP_ISD_1_D___2 = 1122, + FN_RIF3_SYNC_B___2 = 1123, + FN_HRX2_C___2 = 1124, + FN_IP16_19_16___2 = 1125, + FN_SSI_WS78___2 = 1126, + FN_HTX2_B___2 = 1127, + FN_MSIOF1_SYNC_C___2 = 1128, + FN_TS_SDAT1_A___2 = 1129, + FN_STP_ISD_1_A___2 = 1130, + FN_RIF1_SYNC_A___2 = 1131, + FN_RIF3_SYNC_A___2 = 1132, + FN_IP17_19_16___2 = 1133, + FN_USB1_PWEN___2 = 1134, + FN_SIM0_CLK_C___2 = 1135, + FN_SSI_SCK1_A___2 = 1136, + FN_TS_SCK0_E___2 = 1137, + FN_STP_ISCLK_0_E___2 = 1138, + FN_FMCLK_B___2 = 1139, + FN_RIF2_CLK_B___2 = 1140, + FN_SPEEDIN_A___2 = 1141, + FN_HTX2_C___2 = 1142, + FN_IP16_23_20___2 = 1143, + FN_SSI_SDATA7___2 = 1144, + FN_HCTS2_N_B___2 = 1145, + FN_MSIOF1_RXD_C___2 = 1146, + FN_TS_SDEN1_A___2 = 1147, + FN_STP_ISEN_1_A___2 = 1148, + FN_RIF1_D0_A___2 = 1149, + FN_RIF3_D0_A___2 = 1150, + FN_TCLK2_A___2 = 1151, + FN_IP17_23_20___2 = 1152, + FN_USB1_OVC___2 = 1153, + FN_MSIOF1_SS2_C___2 = 1154, + FN_SSI_WS1_A___2 = 1155, + FN_TS_SDAT0_E___2 = 1156, + FN_STP_ISD_0_E___2 = 1157, + FN_FMIN_B___2 = 1158, + FN_RIF2_SYNC_B___2 = 1159, + FN_REMOCON_B___2 = 1160, + FN_HCTS2_N_C___2 = 1161, + FN_IP16_27_24___2 = 1162, + FN_SSI_SDATA8___2 = 1163, + FN_HRTS2_N_B___2 = 1164, + FN_MSIOF1_TXD_C___2 = 1165, + FN_TS_SPSYNC1_A___2 = 1166, + FN_STP_ISSYNC_1_A___2 = 1167, + FN_RIF1_D1_A___2 = 1168, + FN_RIF3_D1_A___2 = 1169, + FN_IP17_27_24___2 = 1170, + FN_USB30_PWEN___2 = 1171, + FN_AUDIO_CLKOUT_B___2 = 1172, + FN_SSI_SCK2_B___2 = 1173, + FN_TS_SDEN1_D___2 = 1174, + FN_STP_ISEN_1_D___2 = 1175, + FN_STP_OPWM_0_E___2 = 1176, + FN_RIF3_D0_B___2 = 1177, + FN_TCLK2_B___2 = 1178, + FN_TPU0TO0___2 = 1179, + FN_BPFCLK_C___2 = 1180, + FN_HRTS2_N_C___2 = 1181, + FN_IP16_31_28___2 = 1182, + FN_SSI_SDATA9_A___2 = 1183, + FN_HSCK2_B___2 = 1184, + FN_MSIOF1_SS1_C___2 = 1185, + FN_HSCK1_A___2 = 1186, + FN_SSI_WS1_B___2 = 1187, + FN_SCK1___2 = 1188, + FN_STP_IVCXO27_1_A___2 = 1189, + FN_SCK5_A___2 = 1190, + FN_IP17_31_28___2 = 1191, + FN_USB30_OVC___2 = 1192, + FN_AUDIO_CLKOUT1_B___2 = 1193, + FN_SSI_WS2_B___2 = 1194, + FN_TS_SPSYNC1_D___2 = 1195, + FN_STP_ISSYNC_1_D___2 = 1196, + FN_STP_IVCXO27_0_E___2 = 1197, + FN_RIF3_D1_B___2 = 1198, + FN_FSO_TOE_N___2 = 1199, + FN_TPU0TO1___2 = 1200, + FN_SEL_MSIOF3_0___2 = 1201, + FN_SEL_MSIOF3_1___2 = 1202, + FN_SEL_MSIOF3_2___2 = 1203, + FN_SEL_MSIOF3_3___2 = 1204, + FN_SEL_MSIOF3_4___2 = 1205, + FN_SEL_TSIF1_0___2 = 1206, + FN_SEL_TSIF1_1___2 = 1207, + FN_SEL_TSIF1_2___2 = 1208, + FN_SEL_TSIF1_3___2 = 1209, + FN_I2C_SEL_5_0___2 = 1210, + FN_I2C_SEL_5_1___2 = 1211, + FN_I2C_SEL_3_0___2 = 1212, + FN_I2C_SEL_3_1___2 = 1213, + FN_SEL_TSIF0_0___2 = 1214, + FN_SEL_TSIF0_1___2 = 1215, + FN_SEL_TSIF0_2___2 = 1216, + FN_SEL_TSIF0_3___2 = 1217, + FN_SEL_TSIF0_4___2 = 1218, + FN_I2C_SEL_0_0___2 = 1219, + FN_I2C_SEL_0_1___2 = 1220, + FN_SEL_MSIOF2_0___2 = 1221, + FN_SEL_MSIOF2_1___2 = 1222, + FN_SEL_MSIOF2_2___2 = 1223, + FN_SEL_MSIOF2_3___2 = 1224, + FN_SEL_FM_0___2 = 1225, + FN_SEL_FM_1___2 = 1226, + FN_SEL_FM_2___2 = 1227, + FN_SEL_FM_3___2 = 1228, + FN_SEL_MSIOF1_0___2 = 1229, + FN_SEL_MSIOF1_1___2 = 1230, + FN_SEL_MSIOF1_2___2 = 1231, + FN_SEL_MSIOF1_3___2 = 1232, + FN_SEL_MSIOF1_4___2 = 1233, + FN_SEL_MSIOF1_5___2 = 1234, + FN_SEL_MSIOF1_6___2 = 1235, + FN_SEL_TIMER_TMU1_0 = 1236, + FN_SEL_TIMER_TMU1_1 = 1237, + FN_SEL_SCIF5_0___2 = 1238, + FN_SEL_SCIF5_1___2 = 1239, + FN_SEL_SSP1_1_0___2 = 1240, + FN_SEL_SSP1_1_1___2 = 1241, + FN_SEL_SSP1_1_2___2 = 1242, + FN_SEL_SSP1_1_3___2 = 1243, + FN_SEL_I2C6_0___2 = 1244, + FN_SEL_I2C6_1___2 = 1245, + FN_SEL_I2C6_2___2 = 1246, + FN_SEL_LBSC_0___2 = 1247, + FN_SEL_LBSC_1___2 = 1248, + FN_SEL_SSP1_0_0___2 = 1249, + FN_SEL_SSP1_0_1___2 = 1250, + FN_SEL_SSP1_0_2___2 = 1251, + FN_SEL_SSP1_0_3___2 = 1252, + FN_SEL_SSP1_0_4___2 = 1253, + FN_SEL_IEBUS_0___2 = 1254, + FN_SEL_IEBUS_1___2 = 1255, + FN_SEL_I2C2_0___2 = 1256, + FN_SEL_I2C2_1___2 = 1257, + FN_SEL_SSI2_0___2 = 1258, + FN_SEL_SSI2_1___2 = 1259, + FN_SEL_I2C1_0___2 = 1260, + FN_SEL_I2C1_1___2 = 1261, + FN_SEL_SSI1_0___2 = 1262, + FN_SEL_SSI1_1___2 = 1263, + FN_SEL_SSI9_0___2 = 1264, + FN_SEL_SSI9_1___2 = 1265, + FN_SEL_HSCIF4_0___2 = 1266, + FN_SEL_HSCIF4_1___2 = 1267, + FN_SEL_SPEED_PULSE_0___2 = 1268, + FN_SEL_SPEED_PULSE_1___2 = 1269, + FN_SEL_TIMER_TMU2_0___2 = 1270, + FN_SEL_TIMER_TMU2_1___2 = 1271, + FN_SEL_HSCIF3_0___2 = 1272, + FN_SEL_HSCIF3_1___2 = 1273, + FN_SEL_HSCIF3_2___2 = 1274, + FN_SEL_HSCIF3_3___2 = 1275, + FN_SEL_SIMCARD_0___2 = 1276, + FN_SEL_SIMCARD_1___2 = 1277, + FN_SEL_SIMCARD_2___2 = 1278, + FN_SEL_SIMCARD_3___2 = 1279, + FN_SEL_ADGB_0___2 = 1280, + FN_SEL_ADGB_1___2 = 1281, + FN_SEL_ADGC_0___2 = 1282, + FN_SEL_ADGC_1___2 = 1283, + FN_SEL_HSCIF1_0___2 = 1284, + FN_SEL_HSCIF1_1___2 = 1285, + FN_SEL_SDHI2_0___2 = 1286, + FN_SEL_SDHI2_1___2 = 1287, + FN_SEL_SCIF4_0___2 = 1288, + FN_SEL_SCIF4_1___2 = 1289, + FN_SEL_SCIF4_2___2 = 1290, + FN_SEL_HSCIF2_0___2 = 1291, + FN_SEL_HSCIF2_1___2 = 1292, + FN_SEL_HSCIF2_2___2 = 1293, + FN_SEL_SCIF3_0___2 = 1294, + FN_SEL_SCIF3_1___2 = 1295, + FN_SEL_ETHERAVB_0___2 = 1296, + FN_SEL_ETHERAVB_1___2 = 1297, + FN_SEL_SCIF2_0___2 = 1298, + FN_SEL_SCIF2_1___2 = 1299, + FN_SEL_DRIF3_0___2 = 1300, + FN_SEL_DRIF3_1___2 = 1301, + FN_SEL_SCIF1_0___2 = 1302, + FN_SEL_SCIF1_1___2 = 1303, + FN_SEL_DRIF2_0___2 = 1304, + FN_SEL_DRIF2_1___2 = 1305, + FN_SEL_SCIF_0___2 = 1306, + FN_SEL_SCIF_1___2 = 1307, + FN_SEL_DRIF1_0___2 = 1308, + FN_SEL_DRIF1_1___2 = 1309, + FN_SEL_DRIF1_2___2 = 1310, + FN_SEL_REMOCON_0___2 = 1311, + FN_SEL_REMOCON_1___2 = 1312, + FN_SEL_DRIF0_0___2 = 1313, + FN_SEL_DRIF0_1___2 = 1314, + FN_SEL_DRIF0_2___2 = 1315, + FN_SEL_RCAN0_0___2 = 1316, + FN_SEL_RCAN0_1___2 = 1317, + FN_SEL_CANFD0_0___2 = 1318, + FN_SEL_CANFD0_1___2 = 1319, + FN_SEL_PWM6_0___2 = 1320, + FN_SEL_PWM6_1___2 = 1321, + FN_SEL_ADGA_0___2 = 1322, + FN_SEL_ADGA_1___2 = 1323, + FN_SEL_ADGA_2___2 = 1324, + FN_SEL_ADGA_3___2 = 1325, + FN_SEL_PWM5_0___2 = 1326, + FN_SEL_PWM5_1___2 = 1327, + FN_SEL_PWM4_0___2 = 1328, + FN_SEL_PWM4_1___2 = 1329, + FN_SEL_PWM3_0___2 = 1330, + FN_SEL_PWM3_1___2 = 1331, + FN_SEL_PWM2_0___2 = 1332, + FN_SEL_PWM2_1___2 = 1333, + FN_SEL_PWM1_0___2 = 1334, + FN_SEL_PWM1_1___2 = 1335, + FN_SEL_VIN4_0___2 = 1336, + FN_SEL_VIN4_1___2 = 1337, + PINMUX_FUNCTION_END___2 = 1338, + PINMUX_MARK_BEGIN___2 = 1339, + CLKOUT_MARK___2 = 1340, + MSIOF0_RXD_MARK___2 = 1341, + MSIOF0_TXD_MARK___2 = 1342, + MSIOF0_SCK_MARK___2 = 1343, + SSI_SDATA5_MARK___2 = 1344, + SSI_WS5_MARK___2 = 1345, + SSI_SCK5_MARK___2 = 1346, + GP7_03_MARK___2 = 1347, + GP7_02_MARK___2 = 1348, + AVS2_MARK___2 = 1349, + AVS1_MARK___2 = 1350, + IP0_3_0_MARK___2 = 1351, + AVB_MDC_MARK___2 = 1352, + MSIOF2_SS2_C_MARK___2 = 1353, + IP1_3_0_MARK___2 = 1354, + IRQ2_MARK___2 = 1355, + QCPV_QDE_MARK___2 = 1356, + DU_EXODDF_DU_ODDF_DISP_CDE_MARK___2 = 1357, + VI4_DATA2_B_MARK___2 = 1358, + MSIOF3_SYNC_E_MARK___2 = 1359, + PWM3_B_MARK___2 = 1360, + IP2_3_0_MARK___2 = 1361, + A1_MARK___2 = 1362, + LCDOUT17_MARK___2 = 1363, + MSIOF3_TXD_B_MARK___2 = 1364, + VI4_DATA9_MARK___2 = 1365, + DU_DB1_MARK___2 = 1366, + PWM4_A_MARK___2 = 1367, + IP3_3_0_MARK___2 = 1368, + A9_MARK___2 = 1369, + MSIOF2_SCK_A_MARK___2 = 1370, + CTS4_N_B_MARK___2 = 1371, + VI5_VSYNC_N_MARK___2 = 1372, + IP0_7_4_MARK___2 = 1373, + AVB_MAGIC_MARK___2 = 1374, + MSIOF2_SS1_C_MARK___2 = 1375, + SCK4_A_MARK___2 = 1376, + IP1_7_4_MARK___2 = 1377, + IRQ3_MARK___2 = 1378, + QSTVB_QVE_MARK___2 = 1379, + DU_DOTCLKOUT1_MARK___2 = 1380, + VI4_DATA3_B_MARK___2 = 1381, + MSIOF3_SCK_E_MARK___2 = 1382, + PWM4_B_MARK___2 = 1383, + IP2_7_4_MARK___2 = 1384, + A2_MARK___2 = 1385, + LCDOUT18_MARK___2 = 1386, + MSIOF3_SCK_B_MARK___2 = 1387, + VI4_DATA10_MARK___2 = 1388, + DU_DB2_MARK___2 = 1389, + PWM5_A_MARK___2 = 1390, + IP3_7_4_MARK___2 = 1391, + A10_MARK___2 = 1392, + MSIOF2_RXD_A_MARK___2 = 1393, + RTS4_N_B_MARK___2 = 1394, + VI5_HSYNC_N_MARK___2 = 1395, + IP0_11_8_MARK___2 = 1396, + AVB_PHY_INT_MARK___2 = 1397, + MSIOF2_SYNC_C_MARK___2 = 1398, + RX4_A_MARK___2 = 1399, + IP1_11_8_MARK___2 = 1400, + IRQ4_MARK___2 = 1401, + QSTH_QHS_MARK___2 = 1402, + DU_EXHSYNC_DU_HSYNC_MARK___2 = 1403, + VI4_DATA4_B_MARK___2 = 1404, + MSIOF3_RXD_E_MARK___2 = 1405, + PWM5_B_MARK___2 = 1406, + IP2_11_8_MARK___2 = 1407, + A3_MARK___2 = 1408, + LCDOUT19_MARK___2 = 1409, + MSIOF3_RXD_B_MARK___2 = 1410, + VI4_DATA11_MARK___2 = 1411, + DU_DB3_MARK___2 = 1412, + PWM6_A_MARK___2 = 1413, + IP3_11_8_MARK___2 = 1414, + A11_MARK___2 = 1415, + TX3_B_MARK___2 = 1416, + MSIOF2_TXD_A_MARK___2 = 1417, + HTX4_B_MARK___2 = 1418, + HSCK4_MARK___2 = 1419, + VI5_FIELD_MARK___2 = 1420, + SCL6_A_MARK___2 = 1421, + AVB_AVTP_CAPTURE_B_MARK___2 = 1422, + PWM2_B_MARK___2 = 1423, + IP0_15_12_MARK___2 = 1424, + AVB_LINK_MARK___2 = 1425, + MSIOF2_SCK_C_MARK___2 = 1426, + TX4_A_MARK___2 = 1427, + IP1_15_12_MARK___2 = 1428, + IRQ5_MARK___2 = 1429, + QSTB_QHE_MARK___2 = 1430, + DU_EXVSYNC_DU_VSYNC_MARK___2 = 1431, + VI4_DATA5_B_MARK___2 = 1432, + FSCLKST2_N_B_MARK = 1433, + MSIOF3_TXD_E_MARK___2 = 1434, + PWM6_B_MARK___2 = 1435, + IP2_15_12_MARK___2 = 1436, + A4_MARK___2 = 1437, + LCDOUT20_MARK___2 = 1438, + MSIOF3_SS1_B_MARK___2 = 1439, + VI4_DATA12_MARK___2 = 1440, + VI5_DATA12_MARK___2 = 1441, + DU_DB4_MARK___2 = 1442, + IP3_15_12_MARK___2 = 1443, + A12_MARK___2 = 1444, + LCDOUT12_MARK___2 = 1445, + MSIOF3_SCK_C_MARK___2 = 1446, + HRX4_A_MARK___2 = 1447, + VI5_DATA8_MARK___2 = 1448, + DU_DG4_MARK___2 = 1449, + IP0_19_16_MARK___2 = 1450, + AVB_AVTP_MATCH_A_MARK___2 = 1451, + MSIOF2_RXD_C_MARK___2 = 1452, + CTS4_N_A_MARK___2 = 1453, + FSCLKST2_N_A_MARK = 1454, + IP1_19_16_MARK___2 = 1455, + PWM0_MARK___2 = 1456, + AVB_AVTP_PPS_MARK___2 = 1457, + VI4_DATA6_B_MARK___2 = 1458, + IECLK_B_MARK___2 = 1459, + IP2_19_16_MARK___2 = 1460, + A5_MARK___2 = 1461, + LCDOUT21_MARK___2 = 1462, + MSIOF3_SS2_B_MARK___2 = 1463, + SCK4_B_MARK___2 = 1464, + VI4_DATA13_MARK___2 = 1465, + VI5_DATA13_MARK___2 = 1466, + DU_DB5_MARK___2 = 1467, + IP3_19_16_MARK___2 = 1468, + A13_MARK___2 = 1469, + LCDOUT13_MARK___2 = 1470, + MSIOF3_SYNC_C_MARK___2 = 1471, + HTX4_A_MARK___2 = 1472, + VI5_DATA9_MARK___2 = 1473, + DU_DG5_MARK___2 = 1474, + IP0_23_20_MARK___2 = 1475, + AVB_AVTP_CAPTURE_A_MARK___2 = 1476, + MSIOF2_TXD_C_MARK___2 = 1477, + RTS4_N_A_MARK___2 = 1478, + IP1_23_20_MARK___2 = 1479, + PWM1_A_MARK___2 = 1480, + HRX3_D_MARK___2 = 1481, + VI4_DATA7_B_MARK___2 = 1482, + IERX_B_MARK___2 = 1483, + IP2_23_20_MARK___2 = 1484, + A6_MARK___2 = 1485, + LCDOUT22_MARK___2 = 1486, + MSIOF2_SS1_A_MARK___2 = 1487, + RX4_B_MARK___2 = 1488, + VI4_DATA14_MARK___2 = 1489, + VI5_DATA14_MARK___2 = 1490, + DU_DB6_MARK___2 = 1491, + IP3_23_20_MARK___2 = 1492, + A14_MARK___2 = 1493, + LCDOUT14_MARK___2 = 1494, + MSIOF3_RXD_C_MARK___2 = 1495, + HCTS4_N_MARK___2 = 1496, + VI5_DATA10_MARK___2 = 1497, + DU_DG6_MARK___2 = 1498, + IP0_27_24_MARK___2 = 1499, + IRQ0_MARK___2 = 1500, + QPOLB_MARK___2 = 1501, + DU_CDE_MARK___2 = 1502, + VI4_DATA0_B_MARK___2 = 1503, + CAN0_TX_B_MARK___2 = 1504, + CANFD0_TX_B_MARK___2 = 1505, + MSIOF3_SS2_E_MARK___2 = 1506, + IP1_27_24_MARK___2 = 1507, + PWM2_A_MARK___2 = 1508, + HTX3_D_MARK___2 = 1509, + IETX_B_MARK___2 = 1510, + IP2_27_24_MARK___2 = 1511, + A7_MARK___2 = 1512, + LCDOUT23_MARK___2 = 1513, + MSIOF2_SS2_A_MARK___2 = 1514, + TX4_B_MARK___2 = 1515, + VI4_DATA15_MARK___2 = 1516, + VI5_DATA15_MARK___2 = 1517, + DU_DB7_MARK___2 = 1518, + IP3_27_24_MARK___2 = 1519, + A15_MARK___2 = 1520, + LCDOUT15_MARK___2 = 1521, + MSIOF3_TXD_C_MARK___2 = 1522, + HRTS4_N_MARK___2 = 1523, + VI5_DATA11_MARK___2 = 1524, + DU_DG7_MARK___2 = 1525, + IP0_31_28_MARK___2 = 1526, + IRQ1_MARK___2 = 1527, + QPOLA_MARK___2 = 1528, + DU_DISP_MARK___2 = 1529, + VI4_DATA1_B_MARK___2 = 1530, + CAN0_RX_B_MARK___2 = 1531, + CANFD0_RX_B_MARK___2 = 1532, + MSIOF3_SS1_E_MARK___2 = 1533, + IP1_31_28_MARK___2 = 1534, + A0_MARK___2 = 1535, + LCDOUT16_MARK___2 = 1536, + MSIOF3_SYNC_B_MARK___2 = 1537, + VI4_DATA8_MARK___2 = 1538, + DU_DB0_MARK___2 = 1539, + PWM3_A_MARK___2 = 1540, + IP2_31_28_MARK___2 = 1541, + A8_MARK___2 = 1542, + RX3_B_MARK___2 = 1543, + MSIOF2_SYNC_A_MARK___2 = 1544, + HRX4_B_MARK___2 = 1545, + SDA6_A_MARK___2 = 1546, + AVB_AVTP_MATCH_B_MARK___2 = 1547, + PWM1_B_MARK___2 = 1548, + IP3_31_28_MARK___2 = 1549, + A16_MARK___2 = 1550, + LCDOUT8_MARK___2 = 1551, + VI4_FIELD_MARK___2 = 1552, + DU_DG0_MARK___2 = 1553, + IP4_3_0_MARK___2 = 1554, + A17_MARK___2 = 1555, + LCDOUT9_MARK___2 = 1556, + VI4_VSYNC_N_MARK___2 = 1557, + DU_DG1_MARK___2 = 1558, + IP5_3_0_MARK___2 = 1559, + WE0_N_MARK___2 = 1560, + MSIOF3_TXD_D_MARK___2 = 1561, + CTS3_N_MARK___2 = 1562, + HCTS3_N_MARK___2 = 1563, + SCL6_B_MARK___2 = 1564, + CAN_CLK_MARK___2 = 1565, + IECLK_A_MARK___2 = 1566, + IP6_3_0_MARK___2 = 1567, + D5_MARK___2 = 1568, + MSIOF2_SYNC_B_MARK___2 = 1569, + VI4_DATA21_MARK___2 = 1570, + VI5_DATA5_MARK___2 = 1571, + IP7_3_0_MARK___2 = 1572, + D13_MARK___2 = 1573, + LCDOUT5_MARK___2 = 1574, + MSIOF2_SS2_D_MARK___2 = 1575, + TX4_C_MARK___2 = 1576, + VI4_DATA5_A_MARK___2 = 1577, + DU_DR5_MARK___2 = 1578, + IP4_7_4_MARK___2 = 1579, + A18_MARK___2 = 1580, + LCDOUT10_MARK___2 = 1581, + VI4_HSYNC_N_MARK___2 = 1582, + DU_DG2_MARK___2 = 1583, + IP5_7_4_MARK___2 = 1584, + WE1_N_MARK___2 = 1585, + MSIOF3_SS1_D_MARK___2 = 1586, + RTS3_N_MARK___2 = 1587, + HRTS3_N_MARK___2 = 1588, + SDA6_B_MARK___2 = 1589, + CAN1_RX_MARK___2 = 1590, + CANFD1_RX_MARK___2 = 1591, + IERX_A_MARK___2 = 1592, + IP6_7_4_MARK___2 = 1593, + D6_MARK___2 = 1594, + MSIOF2_RXD_B_MARK___2 = 1595, + VI4_DATA22_MARK___2 = 1596, + VI5_DATA6_MARK___2 = 1597, + IP7_7_4_MARK___2 = 1598, + D14_MARK___2 = 1599, + LCDOUT6_MARK___2 = 1600, + MSIOF3_SS1_A_MARK___2 = 1601, + HRX3_C_MARK___2 = 1602, + VI4_DATA6_A_MARK___2 = 1603, + DU_DR6_MARK___2 = 1604, + SCL6_C_MARK___2 = 1605, + IP4_11_8_MARK___2 = 1606, + A19_MARK___2 = 1607, + LCDOUT11_MARK___2 = 1608, + VI4_CLKENB_MARK___2 = 1609, + DU_DG3_MARK___2 = 1610, + IP5_11_8_MARK___2 = 1611, + EX_WAIT0_A_MARK___2 = 1612, + QCLK_MARK___2 = 1613, + VI4_CLK_MARK___2 = 1614, + DU_DOTCLKOUT0_MARK___2 = 1615, + IP6_11_8_MARK___2 = 1616, + D7_MARK___2 = 1617, + MSIOF2_TXD_B_MARK___2 = 1618, + VI4_DATA23_MARK___2 = 1619, + VI5_DATA7_MARK___2 = 1620, + IP7_11_8_MARK___2 = 1621, + D15_MARK___2 = 1622, + LCDOUT7_MARK___2 = 1623, + MSIOF3_SS2_A_MARK___2 = 1624, + HTX3_C_MARK___2 = 1625, + VI4_DATA7_A_MARK___2 = 1626, + DU_DR7_MARK___2 = 1627, + SDA6_C_MARK___2 = 1628, + IP4_15_12_MARK___2 = 1629, + CS0_N_MARK___2 = 1630, + VI5_CLKENB_MARK___2 = 1631, + IP5_15_12_MARK___2 = 1632, + D0_MARK___2 = 1633, + MSIOF2_SS1_B_MARK___2 = 1634, + MSIOF3_SCK_A_MARK___2 = 1635, + VI4_DATA16_MARK___2 = 1636, + VI5_DATA0_MARK___2 = 1637, + IP6_15_12_MARK___2 = 1638, + D8_MARK___2 = 1639, + LCDOUT0_MARK___2 = 1640, + MSIOF2_SCK_D_MARK___2 = 1641, + SCK4_C_MARK___2 = 1642, + VI4_DATA0_A_MARK___2 = 1643, + DU_DR0_MARK___2 = 1644, + IP4_19_16_MARK___2 = 1645, + CS1_N_MARK___2 = 1646, + VI5_CLK_MARK___2 = 1647, + EX_WAIT0_B_MARK___2 = 1648, + IP5_19_16_MARK___2 = 1649, + D1_MARK___2 = 1650, + MSIOF2_SS2_B_MARK___2 = 1651, + MSIOF3_SYNC_A_MARK___2 = 1652, + VI4_DATA17_MARK___2 = 1653, + VI5_DATA1_MARK___2 = 1654, + IP6_19_16_MARK___2 = 1655, + D9_MARK___2 = 1656, + LCDOUT1_MARK___2 = 1657, + MSIOF2_SYNC_D_MARK___2 = 1658, + VI4_DATA1_A_MARK___2 = 1659, + DU_DR1_MARK___2 = 1660, + IP7_19_16_MARK___2 = 1661, + SD0_CLK_MARK___2 = 1662, + MSIOF1_SCK_E_MARK___2 = 1663, + STP_OPWM_0_B_MARK___2 = 1664, + IP4_23_20_MARK___2 = 1665, + BS_N_MARK___2 = 1666, + QSTVA_QVS_MARK___2 = 1667, + MSIOF3_SCK_D_MARK___2 = 1668, + SCK3_MARK___2 = 1669, + HSCK3_MARK___2 = 1670, + CAN1_TX_MARK___2 = 1671, + CANFD1_TX_MARK___2 = 1672, + IETX_A_MARK___2 = 1673, + IP5_23_20_MARK___2 = 1674, + D2_MARK___2 = 1675, + MSIOF3_RXD_A_MARK___2 = 1676, + VI4_DATA18_MARK___2 = 1677, + VI5_DATA2_MARK___2 = 1678, + IP6_23_20_MARK___2 = 1679, + D10_MARK___2 = 1680, + LCDOUT2_MARK___2 = 1681, + MSIOF2_RXD_D_MARK___2 = 1682, + HRX3_B_MARK___2 = 1683, + VI4_DATA2_A_MARK___2 = 1684, + CTS4_N_C_MARK___2 = 1685, + DU_DR2_MARK___2 = 1686, + IP7_23_20_MARK___2 = 1687, + SD0_CMD_MARK___2 = 1688, + MSIOF1_SYNC_E_MARK___2 = 1689, + STP_IVCXO27_0_B_MARK___2 = 1690, + IP4_27_24_MARK___2 = 1691, + RD_N_MARK___2 = 1692, + MSIOF3_SYNC_D_MARK___2 = 1693, + RX3_A_MARK___2 = 1694, + HRX3_A_MARK___2 = 1695, + CAN0_TX_A_MARK___2 = 1696, + CANFD0_TX_A_MARK___2 = 1697, + IP5_27_24_MARK___2 = 1698, + D3_MARK___2 = 1699, + MSIOF3_TXD_A_MARK___2 = 1700, + VI4_DATA19_MARK___2 = 1701, + VI5_DATA3_MARK___2 = 1702, + IP6_27_24_MARK___2 = 1703, + D11_MARK___2 = 1704, + LCDOUT3_MARK___2 = 1705, + MSIOF2_TXD_D_MARK___2 = 1706, + HTX3_B_MARK___2 = 1707, + VI4_DATA3_A_MARK___2 = 1708, + RTS4_N_C_MARK___2 = 1709, + DU_DR3_MARK___2 = 1710, + IP7_27_24_MARK___2 = 1711, + SD0_DAT0_MARK___2 = 1712, + MSIOF1_RXD_E_MARK___2 = 1713, + TS_SCK0_B_MARK___2 = 1714, + STP_ISCLK_0_B_MARK___2 = 1715, + IP4_31_28_MARK___2 = 1716, + RD_WR_N_MARK___2 = 1717, + MSIOF3_RXD_D_MARK___2 = 1718, + TX3_A_MARK___2 = 1719, + HTX3_A_MARK___2 = 1720, + CAN0_RX_A_MARK___2 = 1721, + CANFD0_RX_A_MARK___2 = 1722, + IP5_31_28_MARK___2 = 1723, + D4_MARK___2 = 1724, + MSIOF2_SCK_B_MARK___2 = 1725, + VI4_DATA20_MARK___2 = 1726, + VI5_DATA4_MARK___2 = 1727, + IP6_31_28_MARK___2 = 1728, + D12_MARK___2 = 1729, + LCDOUT4_MARK___2 = 1730, + MSIOF2_SS1_D_MARK___2 = 1731, + RX4_C_MARK___2 = 1732, + VI4_DATA4_A_MARK___2 = 1733, + DU_DR4_MARK___2 = 1734, + IP7_31_28_MARK___2 = 1735, + SD0_DAT1_MARK___2 = 1736, + MSIOF1_TXD_E_MARK___2 = 1737, + TS_SPSYNC0_B_MARK___2 = 1738, + STP_ISSYNC_0_B_MARK___2 = 1739, + IP8_3_0_MARK___2 = 1740, + SD0_DAT2_MARK___2 = 1741, + MSIOF1_SS1_E_MARK___2 = 1742, + TS_SDAT0_B_MARK___2 = 1743, + STP_ISD_0_B_MARK___2 = 1744, + IP9_3_0_MARK___2 = 1745, + SD2_CLK_MARK___2 = 1746, + NFDATA8_MARK___2 = 1747, + IP10_3_0_MARK___2 = 1748, + SD3_CMD_MARK___2 = 1749, + NFRE_N_MARK___2 = 1750, + IP11_3_0_MARK___2 = 1751, + SD3_DAT7_MARK___2 = 1752, + SD3_WP_MARK___2 = 1753, + NFDATA7_MARK___2 = 1754, + IP8_7_4_MARK___2 = 1755, + SD0_DAT3_MARK___2 = 1756, + MSIOF1_SS2_E_MARK___2 = 1757, + TS_SDEN0_B_MARK___2 = 1758, + STP_ISEN_0_B_MARK___2 = 1759, + IP9_7_4_MARK___2 = 1760, + SD2_CMD_MARK___2 = 1761, + NFDATA9_MARK___2 = 1762, + IP10_7_4_MARK___2 = 1763, + SD3_DAT0_MARK___2 = 1764, + NFDATA0_MARK___2 = 1765, + IP11_7_4_MARK___2 = 1766, + SD3_DS_MARK___2 = 1767, + NFCLE_MARK___2 = 1768, + IP8_11_8_MARK___2 = 1769, + SD1_CLK_MARK___2 = 1770, + MSIOF1_SCK_G_MARK___2 = 1771, + SIM0_CLK_A_MARK___2 = 1772, + IP9_11_8_MARK___2 = 1773, + SD2_DAT0_MARK___2 = 1774, + NFDATA10_MARK___2 = 1775, + IP10_11_8_MARK___2 = 1776, + SD3_DAT1_MARK___2 = 1777, + NFDATA1_MARK___2 = 1778, + IP11_11_8_MARK___2 = 1779, + SD0_CD_MARK___2 = 1780, + NFDATA14_A_MARK___2 = 1781, + SCL2_B_MARK___2 = 1782, + SIM0_RST_A_MARK___2 = 1783, + IP8_15_12_MARK___2 = 1784, + SD1_CMD_MARK___2 = 1785, + MSIOF1_SYNC_G_MARK___2 = 1786, + NFCE_N_B_MARK___2 = 1787, + SIM0_D_A_MARK___2 = 1788, + STP_IVCXO27_1_B_MARK___2 = 1789, + IP9_15_12_MARK___2 = 1790, + SD2_DAT1_MARK___2 = 1791, + NFDATA11_MARK___2 = 1792, + IP10_15_12_MARK___2 = 1793, + SD3_DAT2_MARK___2 = 1794, + NFDATA2_MARK___2 = 1795, + IP11_15_12_MARK___2 = 1796, + SD0_WP_MARK___2 = 1797, + NFDATA15_A_MARK___2 = 1798, + SDA2_B_MARK___2 = 1799, + IP8_19_16_MARK___2 = 1800, + SD1_DAT0_MARK___2 = 1801, + SD2_DAT4_MARK___2 = 1802, + MSIOF1_RXD_G_MARK___2 = 1803, + NFWP_N_B_MARK___2 = 1804, + TS_SCK1_B_MARK___2 = 1805, + STP_ISCLK_1_B_MARK___2 = 1806, + IP9_19_16_MARK___2 = 1807, + SD2_DAT2_MARK___2 = 1808, + NFDATA12_MARK___2 = 1809, + IP10_19_16_MARK___2 = 1810, + SD3_DAT3_MARK___2 = 1811, + NFDATA3_MARK___2 = 1812, + IP11_19_16_MARK___2 = 1813, + SD1_CD_MARK___2 = 1814, + NFRB_N_A_MARK___2 = 1815, + SIM0_CLK_B_MARK___2 = 1816, + IP8_23_20_MARK___2 = 1817, + SD1_DAT1_MARK___2 = 1818, + SD2_DAT5_MARK___2 = 1819, + MSIOF1_TXD_G_MARK___2 = 1820, + NFDATA14_B_MARK___2 = 1821, + TS_SPSYNC1_B_MARK___2 = 1822, + STP_ISSYNC_1_B_MARK___2 = 1823, + IP9_23_20_MARK___2 = 1824, + SD2_DAT3_MARK___2 = 1825, + NFDATA13_MARK___2 = 1826, + IP10_23_20_MARK___2 = 1827, + SD3_DAT4_MARK___2 = 1828, + SD2_CD_A_MARK___2 = 1829, + NFDATA4_MARK___2 = 1830, + IP11_23_20_MARK___2 = 1831, + SD1_WP_MARK___2 = 1832, + NFCE_N_A_MARK___2 = 1833, + SIM0_D_B_MARK___2 = 1834, + IP8_27_24_MARK___2 = 1835, + SD1_DAT2_MARK___2 = 1836, + SD2_DAT6_MARK___2 = 1837, + MSIOF1_SS1_G_MARK___2 = 1838, + NFDATA15_B_MARK___2 = 1839, + TS_SDAT1_B_MARK___2 = 1840, + STP_ISD_1_B_MARK___2 = 1841, + IP9_27_24_MARK___2 = 1842, + SD2_DS_MARK___2 = 1843, + NFALE_MARK___2 = 1844, + SATA_DEVSLP_B_MARK = 1845, + IP10_27_24_MARK___2 = 1846, + SD3_DAT5_MARK___2 = 1847, + SD2_WP_A_MARK___2 = 1848, + NFDATA5_MARK___2 = 1849, + IP11_27_24_MARK___2 = 1850, + SCK0_MARK___2 = 1851, + HSCK1_B_MARK___2 = 1852, + MSIOF1_SS2_B_MARK___2 = 1853, + AUDIO_CLKC_B_MARK___2 = 1854, + SDA2_A_MARK___2 = 1855, + SIM0_RST_B_MARK___2 = 1856, + STP_OPWM_0_C_MARK___2 = 1857, + RIF0_CLK_B_MARK___2 = 1858, + ADICHS2_MARK___2 = 1859, + SCK5_B_MARK___2 = 1860, + IP8_31_28_MARK___2 = 1861, + SD1_DAT3_MARK___2 = 1862, + SD2_DAT7_MARK___2 = 1863, + MSIOF1_SS2_G_MARK___2 = 1864, + NFRB_N_B_MARK___2 = 1865, + TS_SDEN1_B_MARK___2 = 1866, + STP_ISEN_1_B_MARK___2 = 1867, + IP9_31_28_MARK___2 = 1868, + SD3_CLK_MARK___2 = 1869, + NFWE_N_MARK___2 = 1870, + IP10_31_28_MARK___2 = 1871, + SD3_DAT6_MARK___2 = 1872, + SD3_CD_MARK___2 = 1873, + NFDATA6_MARK___2 = 1874, + IP11_31_28_MARK___2 = 1875, + RX0_MARK___2 = 1876, + HRX1_B_MARK___2 = 1877, + TS_SCK0_C_MARK___2 = 1878, + STP_ISCLK_0_C_MARK___2 = 1879, + RIF0_D0_B_MARK___2 = 1880, + IP12_3_0_MARK___2 = 1881, + TX0_MARK___2 = 1882, + HTX1_B_MARK___2 = 1883, + TS_SPSYNC0_C_MARK___2 = 1884, + STP_ISSYNC_0_C_MARK___2 = 1885, + RIF0_D1_B_MARK___2 = 1886, + IP13_3_0_MARK___2 = 1887, + TX2_A_MARK___2 = 1888, + SD2_CD_B_MARK___2 = 1889, + SCL1_A_MARK___2 = 1890, + FMCLK_A_MARK___2 = 1891, + RIF1_D1_C_MARK___2 = 1892, + FSO_CFE_0_N_MARK___2 = 1893, + IP14_3_0_MARK___2 = 1894, + MSIOF0_SS1_MARK___2 = 1895, + RX5_A_MARK___2 = 1896, + NFWP_N_A_MARK___2 = 1897, + AUDIO_CLKA_C_MARK___2 = 1898, + SSI_SCK2_A_MARK___2 = 1899, + STP_IVCXO27_0_C_MARK___2 = 1900, + AUDIO_CLKOUT3_A_MARK___2 = 1901, + TCLK1_B_MARK___2 = 1902, + IP15_3_0_MARK___2 = 1903, + SSI_SDATA1_A_MARK___2 = 1904, + IP12_7_4_MARK___2 = 1905, + CTS0_N_MARK___2 = 1906, + HCTS1_N_B_MARK___2 = 1907, + MSIOF1_SYNC_B_MARK___2 = 1908, + TS_SPSYNC1_C_MARK___2 = 1909, + STP_ISSYNC_1_C_MARK___2 = 1910, + RIF1_SYNC_B_MARK___2 = 1911, + AUDIO_CLKOUT_C_MARK___2 = 1912, + ADICS_SAMP_MARK___2 = 1913, + IP13_7_4_MARK___2 = 1914, + RX2_A_MARK___2 = 1915, + SD2_WP_B_MARK___2 = 1916, + SDA1_A_MARK___2 = 1917, + FMIN_A_MARK___2 = 1918, + RIF1_SYNC_C_MARK___2 = 1919, + FSO_CFE_1_N_MARK___2 = 1920, + IP14_7_4_MARK___2 = 1921, + MSIOF0_SS2_MARK___2 = 1922, + TX5_A_MARK___2 = 1923, + MSIOF1_SS2_D_MARK___2 = 1924, + AUDIO_CLKC_A_MARK___2 = 1925, + SSI_WS2_A_MARK___2 = 1926, + STP_OPWM_0_D_MARK___2 = 1927, + AUDIO_CLKOUT_D_MARK___2 = 1928, + SPEEDIN_B_MARK___2 = 1929, + IP15_7_4_MARK___2 = 1930, + SSI_SDATA2_A_MARK___2 = 1931, + SSI_SCK1_B_MARK___2 = 1932, + IP12_11_8_MARK___2 = 1933, + RTS0_N_MARK___2 = 1934, + HRTS1_N_B_MARK___2 = 1935, + MSIOF1_SS1_B_MARK___2 = 1936, + AUDIO_CLKA_B_MARK___2 = 1937, + SCL2_A_MARK___2 = 1938, + STP_IVCXO27_1_C_MARK___2 = 1939, + RIF0_SYNC_B_MARK___2 = 1940, + ADICHS1_MARK___2 = 1941, + IP13_11_8_MARK___2 = 1942, + HSCK0_MARK___2 = 1943, + MSIOF1_SCK_D_MARK___2 = 1944, + AUDIO_CLKB_A_MARK___2 = 1945, + SSI_SDATA1_B_MARK___2 = 1946, + TS_SCK0_D_MARK___2 = 1947, + STP_ISCLK_0_D_MARK___2 = 1948, + RIF0_CLK_C_MARK___2 = 1949, + RX5_B_MARK___2 = 1950, + IP14_11_8_MARK___2 = 1951, + MLB_CLK_MARK___2 = 1952, + MSIOF1_SCK_F_MARK___2 = 1953, + SCL1_B_MARK___2 = 1954, + IP15_11_8_MARK___2 = 1955, + SSI_SCK349_MARK___2 = 1956, + MSIOF1_SS1_A_MARK___2 = 1957, + STP_OPWM_0_A_MARK___2 = 1958, + IP12_15_12_MARK___2 = 1959, + RX1_A_MARK___2 = 1960, + HRX1_A_MARK___2 = 1961, + TS_SDAT0_C_MARK___2 = 1962, + STP_ISD_0_C_MARK___2 = 1963, + RIF1_CLK_C_MARK___2 = 1964, + IP13_15_12_MARK___2 = 1965, + HRX0_MARK___2 = 1966, + MSIOF1_RXD_D_MARK___2 = 1967, + SSI_SDATA2_B_MARK___2 = 1968, + TS_SDEN0_D_MARK___2 = 1969, + STP_ISEN_0_D_MARK___2 = 1970, + RIF0_D0_C_MARK___2 = 1971, + IP14_15_12_MARK___2 = 1972, + MLB_SIG_MARK___2 = 1973, + RX1_B_MARK___2 = 1974, + MSIOF1_SYNC_F_MARK___2 = 1975, + SDA1_B_MARK___2 = 1976, + IP15_15_12_MARK___2 = 1977, + SSI_WS349_MARK___2 = 1978, + HCTS2_N_A_MARK___2 = 1979, + MSIOF1_SS2_A_MARK___2 = 1980, + STP_IVCXO27_0_A_MARK___2 = 1981, + IP12_19_16_MARK___2 = 1982, + TX1_A_MARK___2 = 1983, + HTX1_A_MARK___2 = 1984, + TS_SDEN0_C_MARK___2 = 1985, + STP_ISEN_0_C_MARK___2 = 1986, + RIF1_D0_C_MARK___2 = 1987, + IP13_19_16_MARK___2 = 1988, + HTX0_MARK___2 = 1989, + MSIOF1_TXD_D_MARK___2 = 1990, + SSI_SDATA9_B_MARK___2 = 1991, + TS_SDAT0_D_MARK___2 = 1992, + STP_ISD_0_D_MARK___2 = 1993, + RIF0_D1_C_MARK___2 = 1994, + IP14_19_16_MARK___2 = 1995, + MLB_DAT_MARK___2 = 1996, + TX1_B_MARK___2 = 1997, + MSIOF1_RXD_F_MARK___2 = 1998, + IP15_19_16_MARK___2 = 1999, + SSI_SDATA3_MARK___2 = 2000, + HRTS2_N_A_MARK___2 = 2001, + MSIOF1_TXD_A_MARK___2 = 2002, + TS_SCK0_A_MARK___2 = 2003, + STP_ISCLK_0_A_MARK___2 = 2004, + RIF0_D1_A_MARK___2 = 2005, + RIF2_D0_A_MARK___2 = 2006, + IP12_23_20_MARK___2 = 2007, + CTS1_N_MARK___2 = 2008, + HCTS1_N_A_MARK___2 = 2009, + MSIOF1_RXD_B_MARK___2 = 2010, + TS_SDEN1_C_MARK___2 = 2011, + STP_ISEN_1_C_MARK___2 = 2012, + RIF1_D0_B_MARK___2 = 2013, + ADIDATA_MARK___2 = 2014, + IP13_23_20_MARK___2 = 2015, + HCTS0_N_MARK___2 = 2016, + RX2_B_MARK___2 = 2017, + MSIOF1_SYNC_D_MARK___2 = 2018, + SSI_SCK9_A_MARK___2 = 2019, + TS_SPSYNC0_D_MARK___2 = 2020, + STP_ISSYNC_0_D_MARK___2 = 2021, + RIF0_SYNC_C_MARK___2 = 2022, + AUDIO_CLKOUT1_A_MARK___2 = 2023, + IP14_23_20_MARK___2 = 2024, + SSI_SCK01239_MARK___2 = 2025, + MSIOF1_TXD_F_MARK___2 = 2026, + IP15_23_20_MARK___2 = 2027, + SSI_SCK4_MARK___2 = 2028, + HRX2_A_MARK___2 = 2029, + MSIOF1_SCK_A_MARK___2 = 2030, + TS_SDAT0_A_MARK___2 = 2031, + STP_ISD_0_A_MARK___2 = 2032, + RIF0_CLK_A_MARK___2 = 2033, + RIF2_CLK_A_MARK___2 = 2034, + IP12_27_24_MARK___2 = 2035, + RTS1_N_MARK___2 = 2036, + HRTS1_N_A_MARK___2 = 2037, + MSIOF1_TXD_B_MARK___2 = 2038, + TS_SDAT1_C_MARK___2 = 2039, + STP_ISD_1_C_MARK___2 = 2040, + RIF1_D1_B_MARK___2 = 2041, + ADICHS0_MARK___2 = 2042, + IP13_27_24_MARK___2 = 2043, + HRTS0_N_MARK___2 = 2044, + TX2_B_MARK___2 = 2045, + MSIOF1_SS1_D_MARK___2 = 2046, + SSI_WS9_A_MARK___2 = 2047, + STP_IVCXO27_0_D_MARK___2 = 2048, + BPFCLK_A_MARK___2 = 2049, + AUDIO_CLKOUT2_A_MARK___2 = 2050, + IP14_27_24_MARK___2 = 2051, + SSI_WS01239_MARK___2 = 2052, + MSIOF1_SS1_F_MARK___2 = 2053, + IP15_27_24_MARK___2 = 2054, + SSI_WS4_MARK___2 = 2055, + HTX2_A_MARK___2 = 2056, + MSIOF1_SYNC_A_MARK___2 = 2057, + TS_SDEN0_A_MARK___2 = 2058, + STP_ISEN_0_A_MARK___2 = 2059, + RIF0_SYNC_A_MARK___2 = 2060, + RIF2_SYNC_A_MARK___2 = 2061, + IP12_31_28_MARK___2 = 2062, + SCK2_MARK___2 = 2063, + SCIF_CLK_B_MARK___2 = 2064, + MSIOF1_SCK_B_MARK___2 = 2065, + TS_SCK1_C_MARK___2 = 2066, + STP_ISCLK_1_C_MARK___2 = 2067, + RIF1_CLK_B_MARK___2 = 2068, + ADICLK_MARK___2 = 2069, + IP13_31_28_MARK___2 = 2070, + MSIOF0_SYNC_MARK___2 = 2071, + AUDIO_CLKOUT_A_MARK___2 = 2072, + TX5_B_MARK___2 = 2073, + BPFCLK_D_MARK___2 = 2074, + IP14_31_28_MARK___2 = 2075, + SSI_SDATA0_MARK___2 = 2076, + MSIOF1_SS2_F_MARK___2 = 2077, + IP15_31_28_MARK___2 = 2078, + SSI_SDATA4_MARK___2 = 2079, + HSCK2_A_MARK___2 = 2080, + MSIOF1_RXD_A_MARK___2 = 2081, + TS_SPSYNC0_A_MARK___2 = 2082, + STP_ISSYNC_0_A_MARK___2 = 2083, + RIF0_D0_A_MARK___2 = 2084, + RIF2_D1_A_MARK___2 = 2085, + IP16_3_0_MARK___2 = 2086, + SSI_SCK6_MARK___2 = 2087, + USB2_PWEN_MARK = 2088, + SIM0_RST_D_MARK___2 = 2089, + IP17_3_0_MARK___2 = 2090, + AUDIO_CLKA_A_MARK___2 = 2091, + IP18_3_0_MARK___2 = 2092, + USB2_CH3_PWEN_MARK = 2093, + AUDIO_CLKOUT2_B_MARK___2 = 2094, + SSI_SCK9_B_MARK___2 = 2095, + TS_SDEN0_E_MARK___2 = 2096, + STP_ISEN_0_E_MARK___2 = 2097, + RIF2_D0_B_MARK___2 = 2098, + TPU0TO2_MARK___2 = 2099, + FMCLK_C_MARK___2 = 2100, + FMCLK_D_MARK___2 = 2101, + IP16_7_4_MARK___2 = 2102, + SSI_WS6_MARK___2 = 2103, + USB2_OVC_MARK = 2104, + SIM0_D_D_MARK___2 = 2105, + IP17_7_4_MARK___2 = 2106, + AUDIO_CLKB_B_MARK___2 = 2107, + SCIF_CLK_A_MARK___2 = 2108, + STP_IVCXO27_1_D_MARK___2 = 2109, + REMOCON_A_MARK___2 = 2110, + TCLK1_A_MARK___2 = 2111, + IP18_7_4_MARK___2 = 2112, + USB2_CH3_OVC_MARK = 2113, + AUDIO_CLKOUT3_B_MARK___2 = 2114, + SSI_WS9_B_MARK___2 = 2115, + TS_SPSYNC0_E_MARK___2 = 2116, + STP_ISSYNC_0_E_MARK___2 = 2117, + RIF2_D1_B_MARK___2 = 2118, + TPU0TO3_MARK___2 = 2119, + FMIN_C_MARK___2 = 2120, + FMIN_D_MARK___2 = 2121, + IP16_11_8_MARK___2 = 2122, + SSI_SDATA6_MARK___2 = 2123, + SIM0_CLK_D_MARK___2 = 2124, + SATA_DEVSLP_A_MARK = 2125, + IP17_11_8_MARK___2 = 2126, + USB0_PWEN_MARK___2 = 2127, + SIM0_RST_C_MARK___2 = 2128, + TS_SCK1_D_MARK___2 = 2129, + STP_ISCLK_1_D_MARK___2 = 2130, + BPFCLK_B_MARK___2 = 2131, + RIF3_CLK_B_MARK___2 = 2132, + HSCK2_C_MARK___2 = 2133, + IP16_15_12_MARK___2 = 2134, + SSI_SCK78_MARK___2 = 2135, + HRX2_B_MARK___2 = 2136, + MSIOF1_SCK_C_MARK___2 = 2137, + TS_SCK1_A_MARK___2 = 2138, + STP_ISCLK_1_A_MARK___2 = 2139, + RIF1_CLK_A_MARK___2 = 2140, + RIF3_CLK_A_MARK___2 = 2141, + IP17_15_12_MARK___2 = 2142, + USB0_OVC_MARK___2 = 2143, + SIM0_D_C_MARK___2 = 2144, + TS_SDAT1_D_MARK___2 = 2145, + STP_ISD_1_D_MARK___2 = 2146, + RIF3_SYNC_B_MARK___2 = 2147, + HRX2_C_MARK___2 = 2148, + IP16_19_16_MARK___2 = 2149, + SSI_WS78_MARK___2 = 2150, + HTX2_B_MARK___2 = 2151, + MSIOF1_SYNC_C_MARK___2 = 2152, + TS_SDAT1_A_MARK___2 = 2153, + STP_ISD_1_A_MARK___2 = 2154, + RIF1_SYNC_A_MARK___2 = 2155, + RIF3_SYNC_A_MARK___2 = 2156, + IP17_19_16_MARK___2 = 2157, + USB1_PWEN_MARK___2 = 2158, + SIM0_CLK_C_MARK___2 = 2159, + SSI_SCK1_A_MARK___2 = 2160, + TS_SCK0_E_MARK___2 = 2161, + STP_ISCLK_0_E_MARK___2 = 2162, + FMCLK_B_MARK___2 = 2163, + RIF2_CLK_B_MARK___2 = 2164, + SPEEDIN_A_MARK___2 = 2165, + HTX2_C_MARK___2 = 2166, + IP16_23_20_MARK___2 = 2167, + SSI_SDATA7_MARK___2 = 2168, + HCTS2_N_B_MARK___2 = 2169, + MSIOF1_RXD_C_MARK___2 = 2170, + TS_SDEN1_A_MARK___2 = 2171, + STP_ISEN_1_A_MARK___2 = 2172, + RIF1_D0_A_MARK___2 = 2173, + RIF3_D0_A_MARK___2 = 2174, + TCLK2_A_MARK___2 = 2175, + IP17_23_20_MARK___2 = 2176, + USB1_OVC_MARK___2 = 2177, + MSIOF1_SS2_C_MARK___2 = 2178, + SSI_WS1_A_MARK___2 = 2179, + TS_SDAT0_E_MARK___2 = 2180, + STP_ISD_0_E_MARK___2 = 2181, + FMIN_B_MARK___2 = 2182, + RIF2_SYNC_B_MARK___2 = 2183, + REMOCON_B_MARK___2 = 2184, + HCTS2_N_C_MARK___2 = 2185, + IP16_27_24_MARK___2 = 2186, + SSI_SDATA8_MARK___2 = 2187, + HRTS2_N_B_MARK___2 = 2188, + MSIOF1_TXD_C_MARK___2 = 2189, + TS_SPSYNC1_A_MARK___2 = 2190, + STP_ISSYNC_1_A_MARK___2 = 2191, + RIF1_D1_A_MARK___2 = 2192, + RIF3_D1_A_MARK___2 = 2193, + IP17_27_24_MARK___2 = 2194, + USB30_PWEN_MARK___2 = 2195, + AUDIO_CLKOUT_B_MARK___2 = 2196, + SSI_SCK2_B_MARK___2 = 2197, + TS_SDEN1_D_MARK___2 = 2198, + STP_ISEN_1_D_MARK___2 = 2199, + STP_OPWM_0_E_MARK___2 = 2200, + RIF3_D0_B_MARK___2 = 2201, + TCLK2_B_MARK___2 = 2202, + TPU0TO0_MARK___2 = 2203, + BPFCLK_C_MARK___2 = 2204, + HRTS2_N_C_MARK___2 = 2205, + IP16_31_28_MARK___2 = 2206, + SSI_SDATA9_A_MARK___2 = 2207, + HSCK2_B_MARK___2 = 2208, + MSIOF1_SS1_C_MARK___2 = 2209, + HSCK1_A_MARK___2 = 2210, + SSI_WS1_B_MARK___2 = 2211, + SCK1_MARK___2 = 2212, + STP_IVCXO27_1_A_MARK___2 = 2213, + SCK5_A_MARK___2 = 2214, + IP17_31_28_MARK___2 = 2215, + USB30_OVC_MARK___2 = 2216, + AUDIO_CLKOUT1_B_MARK___2 = 2217, + SSI_WS2_B_MARK___2 = 2218, + TS_SPSYNC1_D_MARK___2 = 2219, + STP_ISSYNC_1_D_MARK___2 = 2220, + STP_IVCXO27_0_E_MARK___2 = 2221, + RIF3_D1_B_MARK___2 = 2222, + FSO_TOE_N_MARK___2 = 2223, + TPU0TO1_MARK___2 = 2224, + SEL_MSIOF3_0_MARK___2 = 2225, + SEL_MSIOF3_1_MARK___2 = 2226, + SEL_MSIOF3_2_MARK___2 = 2227, + SEL_MSIOF3_3_MARK___2 = 2228, + SEL_MSIOF3_4_MARK___2 = 2229, + SEL_TSIF1_0_MARK___2 = 2230, + SEL_TSIF1_1_MARK___2 = 2231, + SEL_TSIF1_2_MARK___2 = 2232, + SEL_TSIF1_3_MARK___2 = 2233, + I2C_SEL_5_0_MARK___2 = 2234, + I2C_SEL_5_1_MARK___2 = 2235, + I2C_SEL_3_0_MARK___2 = 2236, + I2C_SEL_3_1_MARK___2 = 2237, + SEL_TSIF0_0_MARK___2 = 2238, + SEL_TSIF0_1_MARK___2 = 2239, + SEL_TSIF0_2_MARK___2 = 2240, + SEL_TSIF0_3_MARK___2 = 2241, + SEL_TSIF0_4_MARK___2 = 2242, + I2C_SEL_0_0_MARK___2 = 2243, + I2C_SEL_0_1_MARK___2 = 2244, + SEL_MSIOF2_0_MARK___2 = 2245, + SEL_MSIOF2_1_MARK___2 = 2246, + SEL_MSIOF2_2_MARK___2 = 2247, + SEL_MSIOF2_3_MARK___2 = 2248, + SEL_FM_0_MARK___2 = 2249, + SEL_FM_1_MARK___2 = 2250, + SEL_FM_2_MARK___2 = 2251, + SEL_FM_3_MARK___2 = 2252, + SEL_MSIOF1_0_MARK___2 = 2253, + SEL_MSIOF1_1_MARK___2 = 2254, + SEL_MSIOF1_2_MARK___2 = 2255, + SEL_MSIOF1_3_MARK___2 = 2256, + SEL_MSIOF1_4_MARK___2 = 2257, + SEL_MSIOF1_5_MARK___2 = 2258, + SEL_MSIOF1_6_MARK___2 = 2259, + SEL_TIMER_TMU1_0_MARK = 2260, + SEL_TIMER_TMU1_1_MARK = 2261, + SEL_SCIF5_0_MARK___2 = 2262, + SEL_SCIF5_1_MARK___2 = 2263, + SEL_SSP1_1_0_MARK___2 = 2264, + SEL_SSP1_1_1_MARK___2 = 2265, + SEL_SSP1_1_2_MARK___2 = 2266, + SEL_SSP1_1_3_MARK___2 = 2267, + SEL_I2C6_0_MARK___2 = 2268, + SEL_I2C6_1_MARK___2 = 2269, + SEL_I2C6_2_MARK___2 = 2270, + SEL_LBSC_0_MARK___2 = 2271, + SEL_LBSC_1_MARK___2 = 2272, + SEL_SSP1_0_0_MARK___2 = 2273, + SEL_SSP1_0_1_MARK___2 = 2274, + SEL_SSP1_0_2_MARK___2 = 2275, + SEL_SSP1_0_3_MARK___2 = 2276, + SEL_SSP1_0_4_MARK___2 = 2277, + SEL_IEBUS_0_MARK___2 = 2278, + SEL_IEBUS_1_MARK___2 = 2279, + SEL_I2C2_0_MARK___2 = 2280, + SEL_I2C2_1_MARK___2 = 2281, + SEL_SSI2_0_MARK___2 = 2282, + SEL_SSI2_1_MARK___2 = 2283, + SEL_I2C1_0_MARK___2 = 2284, + SEL_I2C1_1_MARK___2 = 2285, + SEL_SSI1_0_MARK___2 = 2286, + SEL_SSI1_1_MARK___2 = 2287, + SEL_SSI9_0_MARK___2 = 2288, + SEL_SSI9_1_MARK___2 = 2289, + SEL_HSCIF4_0_MARK___2 = 2290, + SEL_HSCIF4_1_MARK___2 = 2291, + SEL_SPEED_PULSE_0_MARK___2 = 2292, + SEL_SPEED_PULSE_1_MARK___2 = 2293, + SEL_TIMER_TMU2_0_MARK___2 = 2294, + SEL_TIMER_TMU2_1_MARK___2 = 2295, + SEL_HSCIF3_0_MARK___2 = 2296, + SEL_HSCIF3_1_MARK___2 = 2297, + SEL_HSCIF3_2_MARK___2 = 2298, + SEL_HSCIF3_3_MARK___2 = 2299, + SEL_SIMCARD_0_MARK___2 = 2300, + SEL_SIMCARD_1_MARK___2 = 2301, + SEL_SIMCARD_2_MARK___2 = 2302, + SEL_SIMCARD_3_MARK___2 = 2303, + SEL_ADGB_0_MARK___2 = 2304, + SEL_ADGB_1_MARK___2 = 2305, + SEL_ADGC_0_MARK___2 = 2306, + SEL_ADGC_1_MARK___2 = 2307, + SEL_HSCIF1_0_MARK___2 = 2308, + SEL_HSCIF1_1_MARK___2 = 2309, + SEL_SDHI2_0_MARK___2 = 2310, + SEL_SDHI2_1_MARK___2 = 2311, + SEL_SCIF4_0_MARK___2 = 2312, + SEL_SCIF4_1_MARK___2 = 2313, + SEL_SCIF4_2_MARK___2 = 2314, + SEL_HSCIF2_0_MARK___2 = 2315, + SEL_HSCIF2_1_MARK___2 = 2316, + SEL_HSCIF2_2_MARK___2 = 2317, + SEL_SCIF3_0_MARK___2 = 2318, + SEL_SCIF3_1_MARK___2 = 2319, + SEL_ETHERAVB_0_MARK___2 = 2320, + SEL_ETHERAVB_1_MARK___2 = 2321, + SEL_SCIF2_0_MARK___2 = 2322, + SEL_SCIF2_1_MARK___2 = 2323, + SEL_DRIF3_0_MARK___2 = 2324, + SEL_DRIF3_1_MARK___2 = 2325, + SEL_SCIF1_0_MARK___2 = 2326, + SEL_SCIF1_1_MARK___2 = 2327, + SEL_DRIF2_0_MARK___2 = 2328, + SEL_DRIF2_1_MARK___2 = 2329, + SEL_SCIF_0_MARK___2 = 2330, + SEL_SCIF_1_MARK___2 = 2331, + SEL_DRIF1_0_MARK___2 = 2332, + SEL_DRIF1_1_MARK___2 = 2333, + SEL_DRIF1_2_MARK___2 = 2334, + SEL_REMOCON_0_MARK___2 = 2335, + SEL_REMOCON_1_MARK___2 = 2336, + SEL_DRIF0_0_MARK___2 = 2337, + SEL_DRIF0_1_MARK___2 = 2338, + SEL_DRIF0_2_MARK___2 = 2339, + SEL_RCAN0_0_MARK___2 = 2340, + SEL_RCAN0_1_MARK___2 = 2341, + SEL_CANFD0_0_MARK___2 = 2342, + SEL_CANFD0_1_MARK___2 = 2343, + SEL_PWM6_0_MARK___2 = 2344, + SEL_PWM6_1_MARK___2 = 2345, + SEL_ADGA_0_MARK___2 = 2346, + SEL_ADGA_1_MARK___2 = 2347, + SEL_ADGA_2_MARK___2 = 2348, + SEL_ADGA_3_MARK___2 = 2349, + SEL_PWM5_0_MARK___2 = 2350, + SEL_PWM5_1_MARK___2 = 2351, + SEL_PWM4_0_MARK___2 = 2352, + SEL_PWM4_1_MARK___2 = 2353, + SEL_PWM3_0_MARK___2 = 2354, + SEL_PWM3_1_MARK___2 = 2355, + SEL_PWM2_0_MARK___2 = 2356, + SEL_PWM2_1_MARK___2 = 2357, + SEL_PWM1_0_MARK___2 = 2358, + SEL_PWM1_1_MARK___2 = 2359, + SEL_VIN4_0_MARK___2 = 2360, + SEL_VIN4_1_MARK___2 = 2361, + QSPI0_SPCLK_MARK___2 = 2362, + QSPI0_SSL_MARK___2 = 2363, + QSPI0_MOSI_IO0_MARK___2 = 2364, + QSPI0_MISO_IO1_MARK___2 = 2365, + QSPI0_IO2_MARK___2 = 2366, + QSPI0_IO3_MARK___2 = 2367, + QSPI1_SPCLK_MARK___2 = 2368, + QSPI1_SSL_MARK___2 = 2369, + QSPI1_MOSI_IO0_MARK___2 = 2370, + QSPI1_MISO_IO1_MARK___2 = 2371, + QSPI1_IO2_MARK___2 = 2372, + QSPI1_IO3_MARK___2 = 2373, + RPC_INT_MARK___2 = 2374, + RPC_WP_MARK___2 = 2375, + RPC_RESET_MARK___2 = 2376, + AVB_TX_CTL_MARK___2 = 2377, + AVB_TXC_MARK___2 = 2378, + AVB_TD0_MARK___2 = 2379, + AVB_TD1_MARK___2 = 2380, + AVB_TD2_MARK___2 = 2381, + AVB_TD3_MARK___2 = 2382, + AVB_RX_CTL_MARK___2 = 2383, + AVB_RXC_MARK___2 = 2384, + AVB_RD0_MARK___2 = 2385, + AVB_RD1_MARK___2 = 2386, + AVB_RD2_MARK___2 = 2387, + AVB_RD3_MARK___2 = 2388, + AVB_TXCREFCLK_MARK___2 = 2389, + AVB_MDIO_MARK___2 = 2390, + PRESETOUT_MARK___2 = 2391, + DU_DOTCLKIN0_MARK___2 = 2392, + DU_DOTCLKIN1_MARK___2 = 2393, + DU_DOTCLKIN2_MARK___2 = 2394, + DU_DOTCLKIN3_MARK = 2395, + TMS_MARK___2 = 2396, + TDO_MARK___2 = 2397, + ASEBRK_MARK___2 = 2398, + MLB_REF_MARK___2 = 2399, + TDI_MARK___2 = 2400, + TCK_MARK___2 = 2401, + TRST_MARK___2 = 2402, + EXTALR_MARK___2 = 2403, + SCL0_MARK___2 = 2404, + SDA0_MARK___2 = 2405, + SCL3_MARK___2 = 2406, + SDA3_MARK___2 = 2407, + SCL5_MARK___2 = 2408, + SDA5_MARK___2 = 2409, + PINMUX_MARK_END___2 = 2410, +}; + +enum { + PINMUX_RESERVED___3 = 0, + PINMUX_DATA_BEGIN___3 = 1, + GP_0_0_DATA___3 = 2, + GP_0_1_DATA___3 = 3, + GP_0_2_DATA___3 = 4, + GP_0_3_DATA___3 = 5, + GP_0_4_DATA___3 = 6, + GP_0_5_DATA___3 = 7, + GP_0_6_DATA___3 = 8, + GP_0_7_DATA___3 = 9, + GP_0_8_DATA___3 = 10, + GP_0_9_DATA___3 = 11, + GP_0_10_DATA___3 = 12, + GP_0_11_DATA___3 = 13, + GP_0_12_DATA___3 = 14, + GP_0_13_DATA___3 = 15, + GP_0_14_DATA___3 = 16, + GP_0_15_DATA___3 = 17, + GP_0_16_DATA = 18, + GP_0_17_DATA = 19, + GP_0_18_DATA = 20, + GP_0_19_DATA = 21, + GP_0_20_DATA = 22, + GP_0_21_DATA = 23, + GP_1_0_DATA___3 = 24, + GP_1_1_DATA___3 = 25, + GP_1_2_DATA___3 = 26, + GP_1_3_DATA___3 = 27, + GP_1_4_DATA___3 = 28, + GP_1_5_DATA___3 = 29, + GP_1_6_DATA___3 = 30, + GP_1_7_DATA___3 = 31, + GP_1_8_DATA___3 = 32, + GP_1_9_DATA___3 = 33, + GP_1_10_DATA___3 = 34, + GP_1_11_DATA___3 = 35, + GP_1_12_DATA___3 = 36, + GP_1_13_DATA___3 = 37, + GP_1_14_DATA___3 = 38, + GP_1_15_DATA___3 = 39, + GP_1_16_DATA___3 = 40, + GP_1_17_DATA___3 = 41, + GP_1_18_DATA___3 = 42, + GP_1_19_DATA___3 = 43, + GP_1_20_DATA___3 = 44, + GP_1_21_DATA___3 = 45, + GP_1_22_DATA___3 = 46, + GP_1_23_DATA___3 = 47, + GP_1_24_DATA___3 = 48, + GP_1_25_DATA___3 = 49, + GP_1_26_DATA___3 = 50, + GP_1_27_DATA___3 = 51, + GP_2_0_DATA___3 = 52, + GP_2_1_DATA___3 = 53, + GP_2_2_DATA___3 = 54, + GP_2_3_DATA___3 = 55, + GP_2_4_DATA___3 = 56, + GP_2_5_DATA___3 = 57, + GP_2_6_DATA___3 = 58, + GP_2_7_DATA___3 = 59, + GP_2_8_DATA___3 = 60, + GP_2_9_DATA___3 = 61, + GP_2_10_DATA___3 = 62, + GP_2_11_DATA___3 = 63, + GP_2_12_DATA___3 = 64, + GP_2_13_DATA___3 = 65, + GP_2_14_DATA___3 = 66, + GP_2_15_DATA = 67, + GP_2_16_DATA = 68, + GP_2_17_DATA = 69, + GP_2_18_DATA = 70, + GP_2_19_DATA = 71, + GP_2_20_DATA = 72, + GP_2_21_DATA = 73, + GP_2_22_DATA = 74, + GP_2_23_DATA = 75, + GP_2_24_DATA = 76, + GP_2_25_DATA = 77, + GP_2_26_DATA = 78, + GP_2_27_DATA = 79, + GP_2_28_DATA = 80, + GP_2_29_DATA = 81, + GP_3_0_DATA___3 = 82, + GP_3_1_DATA___3 = 83, + GP_3_2_DATA___3 = 84, + GP_3_3_DATA___3 = 85, + GP_3_4_DATA___3 = 86, + GP_3_5_DATA___3 = 87, + GP_3_6_DATA___3 = 88, + GP_3_7_DATA___3 = 89, + GP_3_8_DATA___3 = 90, + GP_3_9_DATA___3 = 91, + GP_3_10_DATA___3 = 92, + GP_3_11_DATA___3 = 93, + GP_3_12_DATA___3 = 94, + GP_3_13_DATA___3 = 95, + GP_3_14_DATA___3 = 96, + GP_3_15_DATA___3 = 97, + GP_3_16_DATA = 98, + GP_4_0_DATA___3 = 99, + GP_4_1_DATA___3 = 100, + GP_4_2_DATA___3 = 101, + GP_4_3_DATA___3 = 102, + GP_4_4_DATA___3 = 103, + GP_4_5_DATA___3 = 104, + GP_4_6_DATA___3 = 105, + GP_4_7_DATA___3 = 106, + GP_4_8_DATA___3 = 107, + GP_4_9_DATA___3 = 108, + GP_4_10_DATA___3 = 109, + GP_4_11_DATA___3 = 110, + GP_4_12_DATA___3 = 111, + GP_4_13_DATA___3 = 112, + GP_4_14_DATA___3 = 113, + GP_4_15_DATA___3 = 114, + GP_4_16_DATA___3 = 115, + GP_4_17_DATA___3 = 116, + GP_4_18_DATA = 117, + GP_4_19_DATA = 118, + GP_4_20_DATA = 119, + GP_4_21_DATA = 120, + GP_4_22_DATA = 121, + GP_4_23_DATA = 122, + GP_4_24_DATA = 123, + GP_5_0_DATA___3 = 124, + GP_5_1_DATA___3 = 125, + GP_5_2_DATA___3 = 126, + GP_5_3_DATA___3 = 127, + GP_5_4_DATA___3 = 128, + GP_5_5_DATA___3 = 129, + GP_5_6_DATA___3 = 130, + GP_5_7_DATA___3 = 131, + GP_5_8_DATA___3 = 132, + GP_5_9_DATA___3 = 133, + GP_5_10_DATA___3 = 134, + GP_5_11_DATA___3 = 135, + GP_5_12_DATA___3 = 136, + GP_5_13_DATA___3 = 137, + GP_5_14_DATA___3 = 138, + PINMUX_DATA_END___3 = 139, + PINMUX_FUNCTION_BEGIN___3 = 140, + GP_0_0_FN___3 = 141, + GP_0_1_FN___3 = 142, + GP_0_2_FN___3 = 143, + GP_0_3_FN___3 = 144, + GP_0_4_FN___3 = 145, + GP_0_5_FN___3 = 146, + GP_0_6_FN___3 = 147, + GP_0_7_FN___3 = 148, + GP_0_8_FN___3 = 149, + GP_0_9_FN___3 = 150, + GP_0_10_FN___3 = 151, + GP_0_11_FN___3 = 152, + GP_0_12_FN___3 = 153, + GP_0_13_FN___3 = 154, + GP_0_14_FN___3 = 155, + GP_0_15_FN___3 = 156, + GP_0_16_FN = 157, + GP_0_17_FN = 158, + GP_0_18_FN = 159, + GP_0_19_FN = 160, + GP_0_20_FN = 161, + GP_0_21_FN = 162, + GP_1_0_FN___3 = 163, + GP_1_1_FN___3 = 164, + GP_1_2_FN___3 = 165, + GP_1_3_FN___3 = 166, + GP_1_4_FN___3 = 167, + GP_1_5_FN___3 = 168, + GP_1_6_FN___3 = 169, + GP_1_7_FN___3 = 170, + GP_1_8_FN___3 = 171, + GP_1_9_FN___3 = 172, + GP_1_10_FN___3 = 173, + GP_1_11_FN___3 = 174, + GP_1_12_FN___3 = 175, + GP_1_13_FN___3 = 176, + GP_1_14_FN___3 = 177, + GP_1_15_FN___3 = 178, + GP_1_16_FN___3 = 179, + GP_1_17_FN___3 = 180, + GP_1_18_FN___3 = 181, + GP_1_19_FN___3 = 182, + GP_1_20_FN___3 = 183, + GP_1_21_FN___3 = 184, + GP_1_22_FN___3 = 185, + GP_1_23_FN___3 = 186, + GP_1_24_FN___3 = 187, + GP_1_25_FN___3 = 188, + GP_1_26_FN___3 = 189, + GP_1_27_FN___3 = 190, + GP_2_0_FN___3 = 191, + GP_2_1_FN___3 = 192, + GP_2_2_FN___3 = 193, + GP_2_3_FN___3 = 194, + GP_2_4_FN___3 = 195, + GP_2_5_FN___3 = 196, + GP_2_6_FN___3 = 197, + GP_2_7_FN___3 = 198, + GP_2_8_FN___3 = 199, + GP_2_9_FN___3 = 200, + GP_2_10_FN___3 = 201, + GP_2_11_FN___3 = 202, + GP_2_12_FN___3 = 203, + GP_2_13_FN___3 = 204, + GP_2_14_FN___3 = 205, + GP_2_15_FN = 206, + GP_2_16_FN = 207, + GP_2_17_FN = 208, + GP_2_18_FN = 209, + GP_2_19_FN = 210, + GP_2_20_FN = 211, + GP_2_21_FN = 212, + GP_2_22_FN = 213, + GP_2_23_FN = 214, + GP_2_24_FN = 215, + GP_2_25_FN = 216, + GP_2_26_FN = 217, + GP_2_27_FN = 218, + GP_2_28_FN = 219, + GP_2_29_FN = 220, + GP_3_0_FN___3 = 221, + GP_3_1_FN___3 = 222, + GP_3_2_FN___3 = 223, + GP_3_3_FN___3 = 224, + GP_3_4_FN___3 = 225, + GP_3_5_FN___3 = 226, + GP_3_6_FN___3 = 227, + GP_3_7_FN___3 = 228, + GP_3_8_FN___3 = 229, + GP_3_9_FN___3 = 230, + GP_3_10_FN___3 = 231, + GP_3_11_FN___3 = 232, + GP_3_12_FN___3 = 233, + GP_3_13_FN___3 = 234, + GP_3_14_FN___3 = 235, + GP_3_15_FN___3 = 236, + GP_3_16_FN = 237, + GP_4_0_FN___3 = 238, + GP_4_1_FN___3 = 239, + GP_4_2_FN___3 = 240, + GP_4_3_FN___3 = 241, + GP_4_4_FN___3 = 242, + GP_4_5_FN___3 = 243, + GP_4_6_FN___3 = 244, + GP_4_7_FN___3 = 245, + GP_4_8_FN___3 = 246, + GP_4_9_FN___3 = 247, + GP_4_10_FN___3 = 248, + GP_4_11_FN___3 = 249, + GP_4_12_FN___3 = 250, + GP_4_13_FN___3 = 251, + GP_4_14_FN___3 = 252, + GP_4_15_FN___3 = 253, + GP_4_16_FN___3 = 254, + GP_4_17_FN___3 = 255, + GP_4_18_FN = 256, + GP_4_19_FN = 257, + GP_4_20_FN = 258, + GP_4_21_FN = 259, + GP_4_22_FN = 260, + GP_4_23_FN = 261, + GP_4_24_FN = 262, + GP_5_0_FN___3 = 263, + GP_5_1_FN___3 = 264, + GP_5_2_FN___3 = 265, + GP_5_3_FN___3 = 266, + GP_5_4_FN___3 = 267, + GP_5_5_FN___3 = 268, + GP_5_6_FN___3 = 269, + GP_5_7_FN___3 = 270, + GP_5_8_FN___3 = 271, + GP_5_9_FN___3 = 272, + GP_5_10_FN___3 = 273, + GP_5_11_FN___3 = 274, + GP_5_12_FN___3 = 275, + GP_5_13_FN___3 = 276, + GP_5_14_FN___3 = 277, + FN_GETHER_LINK_A = 278, + FN_GETHER_PHY_INT_A = 279, + FN_GETHER_MAGIC = 280, + FN_GETHER_MDC_A = 281, + FN_GETHER_MDIO_A = 282, + FN_GETHER_TXCREFCLK_MEGA = 283, + FN_AVB_LINK___3 = 284, + FN_GETHER_TXCREFCLK = 285, + FN_AVB_PHY_INT___3 = 286, + FN_GETHER_TD3 = 287, + FN_AVB_MAGIC___3 = 288, + FN_GETHER_TD2 = 289, + FN_AVB_MDC___3 = 290, + FN_GETHER_TD1 = 291, + FN_AVB_MDIO = 292, + FN_GETHER_TD0 = 293, + FN_RPC_INT_N = 294, + FN_AVB_TXCREFCLK = 295, + FN_GETHER_TXC = 296, + FN_RPC_WP_N = 297, + FN_AVB_TD3 = 298, + FN_GETHER_TX_CTL = 299, + FN_RPC_RESET_N = 300, + FN_AVB_TD2 = 301, + FN_GETHER_RD3 = 302, + FN_QSPI1_SSL = 303, + FN_AVB_TD1 = 304, + FN_GETHER_RD2 = 305, + FN_QSPI1_IO3 = 306, + FN_AVB_TD0 = 307, + FN_GETHER_RD1 = 308, + FN_QSPI1_IO2 = 309, + FN_AVB_TXC = 310, + FN_GETHER_RD0 = 311, + FN_QSPI1_MISO_IO1 = 312, + FN_AVB_TX_CTL = 313, + FN_GETHER_RXC = 314, + FN_QSPI1_MOSI_IO0 = 315, + FN_AVB_RD3 = 316, + FN_GETHER_RX_CTL = 317, + FN_QSPI1_SPCLK = 318, + FN_AVB_RD2 = 319, + FN_QSPI0_SSL = 320, + FN_AVB_RD1 = 321, + FN_QSPI0_IO3 = 322, + FN_AVB_RD0 = 323, + FN_QSPI0_IO2 = 324, + FN_AVB_RXC = 325, + FN_QSPI0_MISO_IO1 = 326, + FN_AVB_RX_CTL = 327, + FN_QSPI0_MOSI_IO0 = 328, + FN_QSPI0_SPCLK = 329, + FN_IP0_3_0___3 = 330, + FN_DU_DR2___3 = 331, + FN_SCK4 = 332, + FN_GETHER_RMII_CRS_DV = 333, + FN_A0___3 = 334, + FN_IP1_3_0___3 = 335, + FN_DU_DG4___3 = 336, + FN_SCL5 = 337, + FN_A8___3 = 338, + FN_IP2_3_0___3 = 339, + FN_DU_DB6___3 = 340, + FN_MSIOF3_RXD = 341, + FN_A16___3 = 342, + FN_IP3_3_0___3 = 343, + FN_VI0_CLKENB = 344, + FN_MSIOF2_RXD = 345, + FN_RX3 = 346, + FN_RD_WR_N___3 = 347, + FN_HCTS3_N___3 = 348, + FN_IP0_7_4___3 = 349, + FN_DU_DR3___3 = 350, + FN_RX4 = 351, + FN_GETHER_RMII_RX_ER = 352, + FN_A1___3 = 353, + FN_IP1_7_4___3 = 354, + FN_DU_DG5___3 = 355, + FN_SDA5 = 356, + FN_GETHER_MDC_B = 357, + FN_A9___3 = 358, + FN_IP2_7_4___3 = 359, + FN_DU_DB7___3 = 360, + FN_MSIOF3_TXD = 361, + FN_A17___3 = 362, + FN_IP3_7_4___3 = 363, + FN_VI0_HSYNC_N = 364, + FN_MSIOF2_TXD = 365, + FN_TX3 = 366, + FN_HRTS3_N___3 = 367, + FN_IP0_11_8___3 = 368, + FN_DU_DR4___3 = 369, + FN_TX4 = 370, + FN_GETHER_RMII_RXD0 = 371, + FN_A2___3 = 372, + FN_IP1_11_8___3 = 373, + FN_DU_DG6___3 = 374, + FN_SCIF_CLK_A___3 = 375, + FN_GETHER_MDIO_B = 376, + FN_A10___3 = 377, + FN_IP2_11_8___3 = 378, + FN_DU_DOTCLKOUT = 379, + FN_MSIOF3_SS1 = 380, + FN_GETHER_LINK_B = 381, + FN_A18___3 = 382, + FN_IP3_11_8___3 = 383, + FN_VI0_VSYNC_N = 384, + FN_MSIOF2_SYNC = 385, + FN_CTS3_N___3 = 386, + FN_HTX3 = 387, + FN_IP0_15_12___3 = 388, + FN_DU_DR5___3 = 389, + FN_CTS4_N = 390, + FN_GETHER_RMII_RXD1 = 391, + FN_A3___3 = 392, + FN_IP1_15_12___3 = 393, + FN_DU_DG7___3 = 394, + FN_HRX0_A = 395, + FN_A11___3 = 396, + FN_IP2_15_12___3 = 397, + FN_DU_EXHSYNC_DU_HSYNC___3 = 398, + FN_MSIOF3_SS2 = 399, + FN_GETHER_PHY_INT_B = 400, + FN_A19___3 = 401, + FN_FXR_TXENA_N = 402, + FN_IP3_15_12___3 = 403, + FN_VI0_DATA0 = 404, + FN_MSIOF2_SS1 = 405, + FN_RTS3_N___3 = 406, + FN_HRX3 = 407, + FN_IP0_19_16___3 = 408, + FN_DU_DR6___3 = 409, + FN_RTS4_N = 410, + FN_GETHER_RMII_TXD_EN = 411, + FN_A4___3 = 412, + FN_IP1_19_16___3 = 413, + FN_DU_DB2___3 = 414, + FN_HSCK0_A = 415, + FN_A12___3 = 416, + FN_IRQ1___3 = 417, + FN_IP2_19_16___3 = 418, + FN_DU_EXVSYNC_DU_VSYNC___3 = 419, + FN_MSIOF3_SCK = 420, + FN_FXR_TXENB_N = 421, + FN_IP3_19_16___3 = 422, + FN_VI0_DATA1 = 423, + FN_MSIOF2_SS2 = 424, + FN_SCK1___3 = 425, + FN_SPEEDIN_A___3 = 426, + FN_IP0_23_20___3 = 427, + FN_DU_DR7___3 = 428, + FN_GETHER_RMII_TXD0 = 429, + FN_A5___3 = 430, + FN_IP1_23_20___3 = 431, + FN_DU_DB3___3 = 432, + FN_HRTS0_N_A = 433, + FN_A13___3 = 434, + FN_IRQ2___3 = 435, + FN_IP2_23_20___3 = 436, + FN_DU_EXODDF_DU_ODDF_DISP_CDE___3 = 437, + FN_MSIOF3_SYNC = 438, + FN_IP3_23_20___3 = 439, + FN_VI0_DATA2 = 440, + FN_AVB_AVTP_PPS___3 = 441, + FN_IP0_27_24___3 = 442, + FN_DU_DG2___3 = 443, + FN_GETHER_RMII_TXD1 = 444, + FN_A6___3 = 445, + FN_IP1_27_24___3 = 446, + FN_DU_DB4___3 = 447, + FN_HCTS0_N_A = 448, + FN_A14___3 = 449, + FN_IRQ3___3 = 450, + FN_IP2_27_24___3 = 451, + FN_IRQ0___3 = 452, + FN_IP3_27_24___3 = 453, + FN_VI0_DATA3 = 454, + FN_HSCK1 = 455, + FN_IP0_31_28___3 = 456, + FN_DU_DG3___3 = 457, + FN_CPG_CPCKOUT = 458, + FN_GETHER_RMII_REFCLK = 459, + FN_A7___3 = 460, + FN_PWMFSW0 = 461, + FN_IP1_31_28___3 = 462, + FN_DU_DB5___3 = 463, + FN_HTX0_A = 464, + FN_PWM0_A = 465, + FN_A15___3 = 466, + FN_IP2_31_28___3 = 467, + FN_VI0_CLK = 468, + FN_MSIOF2_SCK = 469, + FN_SCK3___3 = 470, + FN_HSCK3___3 = 471, + FN_IP3_31_28___3 = 472, + FN_VI0_DATA4 = 473, + FN_HRTS1_N = 474, + FN_RX1_A___3 = 475, + FN_IP4_3_0___3 = 476, + FN_VI0_DATA5 = 477, + FN_HCTS1_N = 478, + FN_TX1_A___3 = 479, + FN_IP5_3_0___3 = 480, + FN_VI1_CLK = 481, + FN_MSIOF1_RXD = 482, + FN_CS0_N___3 = 483, + FN_IP6_3_0___3 = 484, + FN_VI1_DATA4 = 485, + FN_CANFD_CLK_B = 486, + FN_D7___3 = 487, + FN_MMC_D0 = 488, + FN_IP7_3_0___3 = 489, + FN_VI1_FIELD = 490, + FN_SDA4 = 491, + FN_D15___3 = 492, + FN_MMC_D7 = 493, + FN_IP4_7_4___3 = 494, + FN_VI0_DATA6 = 495, + FN_HTX1 = 496, + FN_CTS1_N___3 = 497, + FN_IP5_7_4___3 = 498, + FN_VI1_CLKENB = 499, + FN_MSIOF1_TXD = 500, + FN_D0___3 = 501, + FN_IP6_7_4___3 = 502, + FN_VI1_DATA5 = 503, + FN_D8___3 = 504, + FN_MMC_D1 = 505, + FN_IP7_7_4___3 = 506, + FN_SCL0 = 507, + FN_CLKOUT___3 = 508, + FN_IP4_11_8___3 = 509, + FN_VI0_DATA7 = 510, + FN_HRX1 = 511, + FN_RTS1_N___3 = 512, + FN_IP5_11_8___3 = 513, + FN_VI1_HSYNC_N = 514, + FN_MSIOF1_SCK = 515, + FN_D1___3 = 516, + FN_IP6_11_8___3 = 517, + FN_VI1_DATA6 = 518, + FN_D9___3 = 519, + FN_MMC_D2 = 520, + FN_IP7_11_8___3 = 521, + FN_SDA0 = 522, + FN_BS_N___3 = 523, + FN_SCK0___3 = 524, + FN_HSCK0_B = 525, + FN_IP4_15_12___3 = 526, + FN_VI0_DATA8 = 527, + FN_HSCK2 = 528, + FN_IP5_15_12___3 = 529, + FN_VI1_VSYNC_N = 530, + FN_MSIOF1_SYNC = 531, + FN_D2___3 = 532, + FN_IP6_15_12___3 = 533, + FN_VI1_DATA7 = 534, + FN_D10___3 = 535, + FN_MMC_D3 = 536, + FN_IP7_15_12 = 537, + FN_SCL1 = 538, + FN_TPU0TO2___3 = 539, + FN_RD_N___3 = 540, + FN_CTS0_N___3 = 541, + FN_HCTS0_N_B = 542, + FN_IP4_19_16___3 = 543, + FN_VI0_DATA9 = 544, + FN_HCTS2_N = 545, + FN_PWM1_A___3 = 546, + FN_IP5_19_16___3 = 547, + FN_VI1_DATA0 = 548, + FN_MSIOF1_SS1 = 549, + FN_D3___3 = 550, + FN_MMC_WP = 551, + FN_IP6_19_16___3 = 552, + FN_VI1_DATA8 = 553, + FN_D11___3 = 554, + FN_MMC_CLK = 555, + FN_IP7_19_16___3 = 556, + FN_SDA1 = 557, + FN_TPU0TO3___3 = 558, + FN_WE0_N___3 = 559, + FN_RTS0_N___3 = 560, + FN_HRTS0_N_B = 561, + FN_IP4_23_20___3 = 562, + FN_VI0_DATA10 = 563, + FN_HRTS2_N = 564, + FN_PWM2_A___3 = 565, + FN_IP5_23_20___3 = 566, + FN_VI1_DATA1 = 567, + FN_MSIOF1_SS2 = 568, + FN_D4___3 = 569, + FN_MMC_CD = 570, + FN_IP6_23_20___3 = 571, + FN_VI1_DATA9 = 572, + FN_TCLK1_A___3 = 573, + FN_D12___3 = 574, + FN_MMC_D4 = 575, + FN_IP7_23_20___3 = 576, + FN_SCL2 = 577, + FN_WE1_N___3 = 578, + FN_RX0___3 = 579, + FN_HRX0_B = 580, + FN_IP4_27_24___3 = 581, + FN_VI0_DATA11 = 582, + FN_HTX2 = 583, + FN_PWM3_A___3 = 584, + FN_IP5_27_24___3 = 585, + FN_VI1_DATA2 = 586, + FN_CANFD0_TX_B___3 = 587, + FN_D5___3 = 588, + FN_MMC_DS = 589, + FN_IP6_27_24___3 = 590, + FN_VI1_DATA10 = 591, + FN_TCLK2_A___3 = 592, + FN_D13___3 = 593, + FN_MMC_D5 = 594, + FN_IP7_27_24___3 = 595, + FN_SDA2 = 596, + FN_EX_WAIT0 = 597, + FN_TX0___3 = 598, + FN_HTX0_B = 599, + FN_IP4_31_28___3 = 600, + FN_VI0_FIELD = 601, + FN_HRX2 = 602, + FN_PWM4_A___3 = 603, + FN_CS1_N___3 = 604, + FN_IP5_31_28___3 = 605, + FN_VI1_DATA3 = 606, + FN_CANFD0_RX_B___3 = 607, + FN_D6___3 = 608, + FN_MMC_CMD = 609, + FN_IP6_31_28___3 = 610, + FN_VI1_DATA11 = 611, + FN_SCL4 = 612, + FN_D14___3 = 613, + FN_MMC_D6 = 614, + FN_IP7_31_28___3 = 615, + FN_AVB_AVTP_MATCH = 616, + FN_TPU0TO0___3 = 617, + FN_IP8_3_0___3 = 618, + FN_AVB_AVTP_CAPTURE = 619, + FN_TPU0TO1___3 = 620, + FN_IP9_3_0___3 = 621, + FN_IRQ4___3 = 622, + FN_VI0_DATA12 = 623, + FN_IP10_3_0___3 = 624, + FN_SCL3 = 625, + FN_VI0_DATA20 = 626, + FN_IP8_7_4___3 = 627, + FN_CANFD0_TX_A___3 = 628, + FN_FXR_TXDA = 629, + FN_PWM0_B = 630, + FN_DU_DISP___3 = 631, + FN_IP9_7_4___3 = 632, + FN_IRQ5___3 = 633, + FN_VI0_DATA13 = 634, + FN_IP10_7_4___3 = 635, + FN_SDA3 = 636, + FN_VI0_DATA21 = 637, + FN_IP8_11_8___3 = 638, + FN_CANFD0_RX_A___3 = 639, + FN_RXDA_EXTFXR = 640, + FN_PWM1_B___3 = 641, + FN_DU_CDE___3 = 642, + FN_IP9_11_8___3 = 643, + FN_MSIOF0_RXD___3 = 644, + FN_DU_DR0___3 = 645, + FN_VI0_DATA14 = 646, + FN_IP10_11_8___3 = 647, + FN_FSO_CFE_0_N___3 = 648, + FN_VI0_DATA22 = 649, + FN_IP8_15_12___3 = 650, + FN_CANFD1_TX___3 = 651, + FN_FXR_TXDB = 652, + FN_PWM2_B___3 = 653, + FN_TCLK1_B___3 = 654, + FN_TX1_B___3 = 655, + FN_IP9_15_12___3 = 656, + FN_MSIOF0_TXD___3 = 657, + FN_DU_DR1___3 = 658, + FN_VI0_DATA15 = 659, + FN_IP10_15_12___3 = 660, + FN_FSO_CFE_1_N___3 = 661, + FN_VI0_DATA23 = 662, + FN_IP8_19_16___3 = 663, + FN_CANFD1_RX___3 = 664, + FN_RXDB_EXTFXR = 665, + FN_PWM3_B___3 = 666, + FN_TCLK2_B___3 = 667, + FN_RX1_B___3 = 668, + FN_IP9_19_16___3 = 669, + FN_MSIOF0_SCK___3 = 670, + FN_DU_DG0___3 = 671, + FN_VI0_DATA16 = 672, + FN_IP10_19_16___3 = 673, + FN_FSO_TOE_N___3 = 674, + FN_IP8_23_20___3 = 675, + FN_CANFD_CLK_A = 676, + FN_CLK_EXTFXR = 677, + FN_PWM4_B___3 = 678, + FN_SPEEDIN_B___3 = 679, + FN_SCIF_CLK_B___3 = 680, + FN_IP9_23_20___3 = 681, + FN_MSIOF0_SYNC___3 = 682, + FN_DU_DG1___3 = 683, + FN_VI0_DATA17 = 684, + FN_IP8_27_24___3 = 685, + FN_DIGRF_CLKIN = 686, + FN_DIGRF_CLKEN_IN = 687, + FN_IP9_27_24___3 = 688, + FN_MSIOF0_SS1___3 = 689, + FN_DU_DB0___3 = 690, + FN_TCLK3 = 691, + FN_VI0_DATA18 = 692, + FN_IP8_31_28___3 = 693, + FN_DIGRF_CLKOUT = 694, + FN_DIGRF_CLKEN_OUT = 695, + FN_IP9_31_28___3 = 696, + FN_MSIOF0_SS2___3 = 697, + FN_DU_DB1___3 = 698, + FN_TCLK4 = 699, + FN_VI0_DATA19 = 700, + FN_SEL_CANFD0_0___3 = 701, + FN_SEL_CANFD0_1___3 = 702, + FN_SEL_GETHER_0 = 703, + FN_SEL_GETHER_1 = 704, + FN_SEL_HSCIF0_0 = 705, + FN_SEL_HSCIF0_1 = 706, + FN_SEL_PWM0_0 = 707, + FN_SEL_PWM0_1 = 708, + FN_SEL_PWM1_0___3 = 709, + FN_SEL_PWM1_1___3 = 710, + FN_SEL_PWM2_0___3 = 711, + FN_SEL_PWM2_1___3 = 712, + FN_SEL_PWM3_0___3 = 713, + FN_SEL_PWM3_1___3 = 714, + FN_SEL_PWM4_0___3 = 715, + FN_SEL_PWM4_1___3 = 716, + FN_SEL_RSP_0 = 717, + FN_SEL_RSP_1 = 718, + FN_SEL_SCIF1_0___3 = 719, + FN_SEL_SCIF1_1___3 = 720, + FN_SEL_TMU_0 = 721, + FN_SEL_TMU_1 = 722, + PINMUX_FUNCTION_END___3 = 723, + PINMUX_MARK_BEGIN___3 = 724, + GETHER_LINK_A_MARK = 725, + GETHER_PHY_INT_A_MARK = 726, + GETHER_MAGIC_MARK = 727, + GETHER_MDC_A_MARK = 728, + GETHER_MDIO_A_MARK = 729, + GETHER_TXCREFCLK_MEGA_MARK = 730, + AVB_LINK_MARK___3 = 731, + GETHER_TXCREFCLK_MARK = 732, + AVB_PHY_INT_MARK___3 = 733, + GETHER_TD3_MARK = 734, + AVB_MAGIC_MARK___3 = 735, + GETHER_TD2_MARK = 736, + AVB_MDC_MARK___3 = 737, + GETHER_TD1_MARK = 738, + AVB_MDIO_MARK___3 = 739, + GETHER_TD0_MARK = 740, + RPC_INT_N_MARK = 741, + AVB_TXCREFCLK_MARK___3 = 742, + GETHER_TXC_MARK = 743, + RPC_WP_N_MARK = 744, + AVB_TD3_MARK___3 = 745, + GETHER_TX_CTL_MARK = 746, + RPC_RESET_N_MARK = 747, + AVB_TD2_MARK___3 = 748, + GETHER_RD3_MARK = 749, + QSPI1_SSL_MARK___3 = 750, + AVB_TD1_MARK___3 = 751, + GETHER_RD2_MARK = 752, + QSPI1_IO3_MARK___3 = 753, + AVB_TD0_MARK___3 = 754, + GETHER_RD1_MARK = 755, + QSPI1_IO2_MARK___3 = 756, + AVB_TXC_MARK___3 = 757, + GETHER_RD0_MARK = 758, + QSPI1_MISO_IO1_MARK___3 = 759, + AVB_TX_CTL_MARK___3 = 760, + GETHER_RXC_MARK = 761, + QSPI1_MOSI_IO0_MARK___3 = 762, + AVB_RD3_MARK___3 = 763, + GETHER_RX_CTL_MARK = 764, + QSPI1_SPCLK_MARK___3 = 765, + AVB_RD2_MARK___3 = 766, + QSPI0_SSL_MARK___3 = 767, + AVB_RD1_MARK___3 = 768, + QSPI0_IO3_MARK___3 = 769, + AVB_RD0_MARK___3 = 770, + QSPI0_IO2_MARK___3 = 771, + AVB_RXC_MARK___3 = 772, + QSPI0_MISO_IO1_MARK___3 = 773, + AVB_RX_CTL_MARK___3 = 774, + QSPI0_MOSI_IO0_MARK___3 = 775, + QSPI0_SPCLK_MARK___3 = 776, + IP0_3_0_MARK___3 = 777, + DU_DR2_MARK___3 = 778, + SCK4_MARK = 779, + GETHER_RMII_CRS_DV_MARK = 780, + A0_MARK___3 = 781, + IP1_3_0_MARK___3 = 782, + DU_DG4_MARK___3 = 783, + SCL5_MARK___3 = 784, + A8_MARK___3 = 785, + IP2_3_0_MARK___3 = 786, + DU_DB6_MARK___3 = 787, + MSIOF3_RXD_MARK = 788, + A16_MARK___3 = 789, + IP3_3_0_MARK___3 = 790, + VI0_CLKENB_MARK = 791, + MSIOF2_RXD_MARK = 792, + RX3_MARK = 793, + RD_WR_N_MARK___3 = 794, + HCTS3_N_MARK___3 = 795, + IP0_7_4_MARK___3 = 796, + DU_DR3_MARK___3 = 797, + RX4_MARK = 798, + GETHER_RMII_RX_ER_MARK = 799, + A1_MARK___3 = 800, + IP1_7_4_MARK___3 = 801, + DU_DG5_MARK___3 = 802, + SDA5_MARK___3 = 803, + GETHER_MDC_B_MARK = 804, + A9_MARK___3 = 805, + IP2_7_4_MARK___3 = 806, + DU_DB7_MARK___3 = 807, + MSIOF3_TXD_MARK = 808, + A17_MARK___3 = 809, + IP3_7_4_MARK___3 = 810, + VI0_HSYNC_N_MARK = 811, + MSIOF2_TXD_MARK = 812, + TX3_MARK = 813, + HRTS3_N_MARK___3 = 814, + IP0_11_8_MARK___3 = 815, + DU_DR4_MARK___3 = 816, + TX4_MARK = 817, + GETHER_RMII_RXD0_MARK = 818, + A2_MARK___3 = 819, + IP1_11_8_MARK___3 = 820, + DU_DG6_MARK___3 = 821, + SCIF_CLK_A_MARK___3 = 822, + GETHER_MDIO_B_MARK = 823, + A10_MARK___3 = 824, + IP2_11_8_MARK___3 = 825, + DU_DOTCLKOUT_MARK = 826, + MSIOF3_SS1_MARK = 827, + GETHER_LINK_B_MARK = 828, + A18_MARK___3 = 829, + IP3_11_8_MARK___3 = 830, + VI0_VSYNC_N_MARK = 831, + MSIOF2_SYNC_MARK = 832, + CTS3_N_MARK___3 = 833, + HTX3_MARK = 834, + IP0_15_12_MARK___3 = 835, + DU_DR5_MARK___3 = 836, + CTS4_N_MARK = 837, + GETHER_RMII_RXD1_MARK = 838, + A3_MARK___3 = 839, + IP1_15_12_MARK___3 = 840, + DU_DG7_MARK___3 = 841, + HRX0_A_MARK = 842, + A11_MARK___3 = 843, + IP2_15_12_MARK___3 = 844, + DU_EXHSYNC_DU_HSYNC_MARK___3 = 845, + MSIOF3_SS2_MARK = 846, + GETHER_PHY_INT_B_MARK = 847, + A19_MARK___3 = 848, + FXR_TXENA_N_MARK = 849, + IP3_15_12_MARK___3 = 850, + VI0_DATA0_MARK = 851, + MSIOF2_SS1_MARK = 852, + RTS3_N_MARK___3 = 853, + HRX3_MARK = 854, + IP0_19_16_MARK___3 = 855, + DU_DR6_MARK___3 = 856, + RTS4_N_MARK = 857, + GETHER_RMII_TXD_EN_MARK = 858, + A4_MARK___3 = 859, + IP1_19_16_MARK___3 = 860, + DU_DB2_MARK___3 = 861, + HSCK0_A_MARK = 862, + A12_MARK___3 = 863, + IRQ1_MARK___3 = 864, + IP2_19_16_MARK___3 = 865, + DU_EXVSYNC_DU_VSYNC_MARK___3 = 866, + MSIOF3_SCK_MARK = 867, + FXR_TXENB_N_MARK = 868, + IP3_19_16_MARK___3 = 869, + VI0_DATA1_MARK = 870, + MSIOF2_SS2_MARK = 871, + SCK1_MARK___3 = 872, + SPEEDIN_A_MARK___3 = 873, + IP0_23_20_MARK___3 = 874, + DU_DR7_MARK___3 = 875, + GETHER_RMII_TXD0_MARK = 876, + A5_MARK___3 = 877, + IP1_23_20_MARK___3 = 878, + DU_DB3_MARK___3 = 879, + HRTS0_N_A_MARK = 880, + A13_MARK___3 = 881, + IRQ2_MARK___3 = 882, + IP2_23_20_MARK___3 = 883, + DU_EXODDF_DU_ODDF_DISP_CDE_MARK___3 = 884, + MSIOF3_SYNC_MARK = 885, + IP3_23_20_MARK___3 = 886, + VI0_DATA2_MARK = 887, + AVB_AVTP_PPS_MARK___3 = 888, + IP0_27_24_MARK___3 = 889, + DU_DG2_MARK___3 = 890, + GETHER_RMII_TXD1_MARK = 891, + A6_MARK___3 = 892, + IP1_27_24_MARK___3 = 893, + DU_DB4_MARK___3 = 894, + HCTS0_N_A_MARK = 895, + A14_MARK___3 = 896, + IRQ3_MARK___3 = 897, + IP2_27_24_MARK___3 = 898, + IRQ0_MARK___3 = 899, + IP3_27_24_MARK___3 = 900, + VI0_DATA3_MARK = 901, + HSCK1_MARK = 902, + IP0_31_28_MARK___3 = 903, + DU_DG3_MARK___3 = 904, + CPG_CPCKOUT_MARK = 905, + GETHER_RMII_REFCLK_MARK = 906, + A7_MARK___3 = 907, + PWMFSW0_MARK = 908, + IP1_31_28_MARK___3 = 909, + DU_DB5_MARK___3 = 910, + HTX0_A_MARK = 911, + PWM0_A_MARK = 912, + A15_MARK___3 = 913, + IP2_31_28_MARK___3 = 914, + VI0_CLK_MARK = 915, + MSIOF2_SCK_MARK = 916, + SCK3_MARK___3 = 917, + HSCK3_MARK___3 = 918, + IP3_31_28_MARK___3 = 919, + VI0_DATA4_MARK = 920, + HRTS1_N_MARK = 921, + RX1_A_MARK___3 = 922, + IP4_3_0_MARK___3 = 923, + VI0_DATA5_MARK = 924, + HCTS1_N_MARK = 925, + TX1_A_MARK___3 = 926, + IP5_3_0_MARK___3 = 927, + VI1_CLK_MARK = 928, + MSIOF1_RXD_MARK = 929, + CS0_N_MARK___3 = 930, + IP6_3_0_MARK___3 = 931, + VI1_DATA4_MARK = 932, + CANFD_CLK_B_MARK = 933, + D7_MARK___3 = 934, + MMC_D0_MARK = 935, + IP7_3_0_MARK___3 = 936, + VI1_FIELD_MARK = 937, + SDA4_MARK = 938, + D15_MARK___3 = 939, + MMC_D7_MARK = 940, + IP4_7_4_MARK___3 = 941, + VI0_DATA6_MARK = 942, + HTX1_MARK = 943, + CTS1_N_MARK___3 = 944, + IP5_7_4_MARK___3 = 945, + VI1_CLKENB_MARK = 946, + MSIOF1_TXD_MARK = 947, + D0_MARK___3 = 948, + IP6_7_4_MARK___3 = 949, + VI1_DATA5_MARK = 950, + D8_MARK___3 = 951, + MMC_D1_MARK = 952, + IP7_7_4_MARK___3 = 953, + SCL0_MARK___3 = 954, + CLKOUT_MARK___3 = 955, + IP4_11_8_MARK___3 = 956, + VI0_DATA7_MARK = 957, + HRX1_MARK = 958, + RTS1_N_MARK___3 = 959, + IP5_11_8_MARK___3 = 960, + VI1_HSYNC_N_MARK = 961, + MSIOF1_SCK_MARK = 962, + D1_MARK___3 = 963, + IP6_11_8_MARK___3 = 964, + VI1_DATA6_MARK = 965, + D9_MARK___3 = 966, + MMC_D2_MARK = 967, + IP7_11_8_MARK___3 = 968, + SDA0_MARK___3 = 969, + BS_N_MARK___3 = 970, + SCK0_MARK___3 = 971, + HSCK0_B_MARK = 972, + IP4_15_12_MARK___3 = 973, + VI0_DATA8_MARK = 974, + HSCK2_MARK = 975, + IP5_15_12_MARK___3 = 976, + VI1_VSYNC_N_MARK = 977, + MSIOF1_SYNC_MARK = 978, + D2_MARK___3 = 979, + IP6_15_12_MARK___3 = 980, + VI1_DATA7_MARK = 981, + D10_MARK___3 = 982, + MMC_D3_MARK = 983, + IP7_15_12_MARK = 984, + SCL1_MARK = 985, + TPU0TO2_MARK___3 = 986, + RD_N_MARK___3 = 987, + CTS0_N_MARK___3 = 988, + HCTS0_N_B_MARK = 989, + IP4_19_16_MARK___3 = 990, + VI0_DATA9_MARK = 991, + HCTS2_N_MARK = 992, + PWM1_A_MARK___3 = 993, + IP5_19_16_MARK___3 = 994, + VI1_DATA0_MARK = 995, + MSIOF1_SS1_MARK = 996, + D3_MARK___3 = 997, + MMC_WP_MARK = 998, + IP6_19_16_MARK___3 = 999, + VI1_DATA8_MARK = 1000, + D11_MARK___3 = 1001, + MMC_CLK_MARK = 1002, + IP7_19_16_MARK___3 = 1003, + SDA1_MARK = 1004, + TPU0TO3_MARK___3 = 1005, + WE0_N_MARK___3 = 1006, + RTS0_N_MARK___3 = 1007, + HRTS0_N_B_MARK = 1008, + IP4_23_20_MARK___3 = 1009, + VI0_DATA10_MARK = 1010, + HRTS2_N_MARK = 1011, + PWM2_A_MARK___3 = 1012, + IP5_23_20_MARK___3 = 1013, + VI1_DATA1_MARK = 1014, + MSIOF1_SS2_MARK = 1015, + D4_MARK___3 = 1016, + MMC_CD_MARK = 1017, + IP6_23_20_MARK___3 = 1018, + VI1_DATA9_MARK = 1019, + TCLK1_A_MARK___3 = 1020, + D12_MARK___3 = 1021, + MMC_D4_MARK = 1022, + IP7_23_20_MARK___3 = 1023, + SCL2_MARK = 1024, + WE1_N_MARK___3 = 1025, + RX0_MARK___3 = 1026, + HRX0_B_MARK = 1027, + IP4_27_24_MARK___3 = 1028, + VI0_DATA11_MARK = 1029, + HTX2_MARK = 1030, + PWM3_A_MARK___3 = 1031, + IP5_27_24_MARK___3 = 1032, + VI1_DATA2_MARK = 1033, + CANFD0_TX_B_MARK___3 = 1034, + D5_MARK___3 = 1035, + MMC_DS_MARK = 1036, + IP6_27_24_MARK___3 = 1037, + VI1_DATA10_MARK = 1038, + TCLK2_A_MARK___3 = 1039, + D13_MARK___3 = 1040, + MMC_D5_MARK = 1041, + IP7_27_24_MARK___3 = 1042, + SDA2_MARK = 1043, + EX_WAIT0_MARK = 1044, + TX0_MARK___3 = 1045, + HTX0_B_MARK = 1046, + IP4_31_28_MARK___3 = 1047, + VI0_FIELD_MARK = 1048, + HRX2_MARK = 1049, + PWM4_A_MARK___3 = 1050, + CS1_N_MARK___3 = 1051, + IP5_31_28_MARK___3 = 1052, + VI1_DATA3_MARK = 1053, + CANFD0_RX_B_MARK___3 = 1054, + D6_MARK___3 = 1055, + MMC_CMD_MARK = 1056, + IP6_31_28_MARK___3 = 1057, + VI1_DATA11_MARK = 1058, + SCL4_MARK = 1059, + D14_MARK___3 = 1060, + MMC_D6_MARK = 1061, + IP7_31_28_MARK___3 = 1062, + AVB_AVTP_MATCH_MARK = 1063, + TPU0TO0_MARK___3 = 1064, + IP8_3_0_MARK___3 = 1065, + AVB_AVTP_CAPTURE_MARK = 1066, + TPU0TO1_MARK___3 = 1067, + IP9_3_0_MARK___3 = 1068, + IRQ4_MARK___3 = 1069, + VI0_DATA12_MARK = 1070, + IP10_3_0_MARK___3 = 1071, + SCL3_MARK___3 = 1072, + VI0_DATA20_MARK = 1073, + IP8_7_4_MARK___3 = 1074, + CANFD0_TX_A_MARK___3 = 1075, + FXR_TXDA_MARK = 1076, + PWM0_B_MARK = 1077, + DU_DISP_MARK___3 = 1078, + IP9_7_4_MARK___3 = 1079, + IRQ5_MARK___3 = 1080, + VI0_DATA13_MARK = 1081, + IP10_7_4_MARK___3 = 1082, + SDA3_MARK___3 = 1083, + VI0_DATA21_MARK = 1084, + IP8_11_8_MARK___3 = 1085, + CANFD0_RX_A_MARK___3 = 1086, + RXDA_EXTFXR_MARK = 1087, + PWM1_B_MARK___3 = 1088, + DU_CDE_MARK___3 = 1089, + IP9_11_8_MARK___3 = 1090, + MSIOF0_RXD_MARK___3 = 1091, + DU_DR0_MARK___3 = 1092, + VI0_DATA14_MARK = 1093, + IP10_11_8_MARK___3 = 1094, + FSO_CFE_0_N_MARK___3 = 1095, + VI0_DATA22_MARK = 1096, + IP8_15_12_MARK___3 = 1097, + CANFD1_TX_MARK___3 = 1098, + FXR_TXDB_MARK = 1099, + PWM2_B_MARK___3 = 1100, + TCLK1_B_MARK___3 = 1101, + TX1_B_MARK___3 = 1102, + IP9_15_12_MARK___3 = 1103, + MSIOF0_TXD_MARK___3 = 1104, + DU_DR1_MARK___3 = 1105, + VI0_DATA15_MARK = 1106, + IP10_15_12_MARK___3 = 1107, + FSO_CFE_1_N_MARK___3 = 1108, + VI0_DATA23_MARK = 1109, + IP8_19_16_MARK___3 = 1110, + CANFD1_RX_MARK___3 = 1111, + RXDB_EXTFXR_MARK = 1112, + PWM3_B_MARK___3 = 1113, + TCLK2_B_MARK___3 = 1114, + RX1_B_MARK___3 = 1115, + IP9_19_16_MARK___3 = 1116, + MSIOF0_SCK_MARK___3 = 1117, + DU_DG0_MARK___3 = 1118, + VI0_DATA16_MARK = 1119, + IP10_19_16_MARK___3 = 1120, + FSO_TOE_N_MARK___3 = 1121, + IP8_23_20_MARK___3 = 1122, + CANFD_CLK_A_MARK = 1123, + CLK_EXTFXR_MARK = 1124, + PWM4_B_MARK___3 = 1125, + SPEEDIN_B_MARK___3 = 1126, + SCIF_CLK_B_MARK___3 = 1127, + IP9_23_20_MARK___3 = 1128, + MSIOF0_SYNC_MARK___3 = 1129, + DU_DG1_MARK___3 = 1130, + VI0_DATA17_MARK = 1131, + IP8_27_24_MARK___3 = 1132, + DIGRF_CLKIN_MARK = 1133, + DIGRF_CLKEN_IN_MARK = 1134, + IP9_27_24_MARK___3 = 1135, + MSIOF0_SS1_MARK___3 = 1136, + DU_DB0_MARK___3 = 1137, + TCLK3_MARK = 1138, + VI0_DATA18_MARK = 1139, + IP8_31_28_MARK___3 = 1140, + DIGRF_CLKOUT_MARK = 1141, + DIGRF_CLKEN_OUT_MARK = 1142, + IP9_31_28_MARK___3 = 1143, + MSIOF0_SS2_MARK___3 = 1144, + DU_DB1_MARK___3 = 1145, + TCLK4_MARK = 1146, + VI0_DATA19_MARK = 1147, + SEL_CANFD0_0_MARK___3 = 1148, + SEL_CANFD0_1_MARK___3 = 1149, + SEL_GETHER_0_MARK = 1150, + SEL_GETHER_1_MARK = 1151, + SEL_HSCIF0_0_MARK = 1152, + SEL_HSCIF0_1_MARK = 1153, + SEL_PWM0_0_MARK = 1154, + SEL_PWM0_1_MARK = 1155, + SEL_PWM1_0_MARK___3 = 1156, + SEL_PWM1_1_MARK___3 = 1157, + SEL_PWM2_0_MARK___3 = 1158, + SEL_PWM2_1_MARK___3 = 1159, + SEL_PWM3_0_MARK___3 = 1160, + SEL_PWM3_1_MARK___3 = 1161, + SEL_PWM4_0_MARK___3 = 1162, + SEL_PWM4_1_MARK___3 = 1163, + SEL_RSP_0_MARK = 1164, + SEL_RSP_1_MARK = 1165, + SEL_SCIF1_0_MARK___3 = 1166, + SEL_SCIF1_1_MARK___3 = 1167, + SEL_TMU_0_MARK = 1168, + SEL_TMU_1_MARK = 1169, + PINMUX_MARK_END___3 = 1170, +}; + +enum { + PINMUX_RESERVED___4 = 0, + PINMUX_DATA_BEGIN___4 = 1, + GP_0_0_DATA___4 = 2, + GP_0_1_DATA___4 = 3, + GP_0_2_DATA___4 = 4, + GP_0_3_DATA___4 = 5, + GP_0_4_DATA___4 = 6, + GP_0_5_DATA___4 = 7, + GP_0_6_DATA___4 = 8, + GP_0_7_DATA___4 = 9, + GP_0_8_DATA___4 = 10, + GP_0_9_DATA___4 = 11, + GP_0_10_DATA___4 = 12, + GP_0_11_DATA___4 = 13, + GP_0_12_DATA___4 = 14, + GP_0_13_DATA___4 = 15, + GP_0_14_DATA___4 = 16, + GP_0_15_DATA___4 = 17, + GP_1_0_DATA___4 = 18, + GP_1_1_DATA___4 = 19, + GP_1_2_DATA___4 = 20, + GP_1_3_DATA___4 = 21, + GP_1_4_DATA___4 = 22, + GP_1_5_DATA___4 = 23, + GP_1_6_DATA___4 = 24, + GP_1_7_DATA___4 = 25, + GP_1_8_DATA___4 = 26, + GP_1_9_DATA___4 = 27, + GP_1_10_DATA___4 = 28, + GP_1_11_DATA___4 = 29, + GP_1_12_DATA___4 = 30, + GP_1_13_DATA___4 = 31, + GP_1_14_DATA___4 = 32, + GP_1_15_DATA___4 = 33, + GP_1_16_DATA___4 = 34, + GP_1_17_DATA___4 = 35, + GP_1_18_DATA___4 = 36, + GP_1_19_DATA___4 = 37, + GP_1_20_DATA___4 = 38, + GP_1_21_DATA___4 = 39, + GP_1_22_DATA___4 = 40, + GP_1_23_DATA___4 = 41, + GP_1_24_DATA___4 = 42, + GP_1_25_DATA___4 = 43, + GP_1_26_DATA___4 = 44, + GP_1_27_DATA___4 = 45, + GP_1_28_DATA___3 = 46, + GP_2_0_DATA___4 = 47, + GP_2_1_DATA___4 = 48, + GP_2_2_DATA___4 = 49, + GP_2_3_DATA___4 = 50, + GP_2_4_DATA___4 = 51, + GP_2_5_DATA___4 = 52, + GP_2_6_DATA___4 = 53, + GP_2_7_DATA___4 = 54, + GP_2_8_DATA___4 = 55, + GP_2_9_DATA___4 = 56, + GP_2_10_DATA___4 = 57, + GP_2_11_DATA___4 = 58, + GP_2_12_DATA___4 = 59, + GP_2_13_DATA___4 = 60, + GP_2_14_DATA___4 = 61, + GP_3_0_DATA___4 = 62, + GP_3_1_DATA___4 = 63, + GP_3_2_DATA___4 = 64, + GP_3_3_DATA___4 = 65, + GP_3_4_DATA___4 = 66, + GP_3_5_DATA___4 = 67, + GP_3_6_DATA___4 = 68, + GP_3_7_DATA___4 = 69, + GP_3_8_DATA___4 = 70, + GP_3_9_DATA___4 = 71, + GP_3_10_DATA___4 = 72, + GP_3_11_DATA___4 = 73, + GP_3_12_DATA___4 = 74, + GP_3_13_DATA___4 = 75, + GP_3_14_DATA___4 = 76, + GP_3_15_DATA___4 = 77, + GP_4_0_DATA___4 = 78, + GP_4_1_DATA___4 = 79, + GP_4_2_DATA___4 = 80, + GP_4_3_DATA___4 = 81, + GP_4_4_DATA___4 = 82, + GP_4_5_DATA___4 = 83, + GP_4_6_DATA___4 = 84, + GP_4_7_DATA___4 = 85, + GP_4_8_DATA___4 = 86, + GP_4_9_DATA___4 = 87, + GP_4_10_DATA___4 = 88, + GP_4_11_DATA___4 = 89, + GP_4_12_DATA___4 = 90, + GP_4_13_DATA___4 = 91, + GP_4_14_DATA___4 = 92, + GP_4_15_DATA___4 = 93, + GP_4_16_DATA___4 = 94, + GP_4_17_DATA___4 = 95, + GP_5_0_DATA___4 = 96, + GP_5_1_DATA___4 = 97, + GP_5_2_DATA___4 = 98, + GP_5_3_DATA___4 = 99, + GP_5_4_DATA___4 = 100, + GP_5_5_DATA___4 = 101, + GP_5_6_DATA___4 = 102, + GP_5_7_DATA___4 = 103, + GP_5_8_DATA___4 = 104, + GP_5_9_DATA___4 = 105, + GP_5_10_DATA___4 = 106, + GP_5_11_DATA___4 = 107, + GP_5_12_DATA___4 = 108, + GP_5_13_DATA___4 = 109, + GP_5_14_DATA___4 = 110, + GP_5_15_DATA___3 = 111, + GP_5_16_DATA___3 = 112, + GP_5_17_DATA___3 = 113, + GP_5_18_DATA___3 = 114, + GP_5_19_DATA___3 = 115, + GP_5_20_DATA___3 = 116, + GP_5_21_DATA___3 = 117, + GP_5_22_DATA___3 = 118, + GP_5_23_DATA___3 = 119, + GP_5_24_DATA___3 = 120, + GP_5_25_DATA___3 = 121, + GP_6_0_DATA___3 = 122, + GP_6_1_DATA___3 = 123, + GP_6_2_DATA___3 = 124, + GP_6_3_DATA___3 = 125, + GP_6_4_DATA___3 = 126, + GP_6_5_DATA___3 = 127, + GP_6_6_DATA___3 = 128, + GP_6_7_DATA___3 = 129, + GP_6_8_DATA___3 = 130, + GP_6_9_DATA___3 = 131, + GP_6_10_DATA___3 = 132, + GP_6_11_DATA___3 = 133, + GP_6_12_DATA___3 = 134, + GP_6_13_DATA___3 = 135, + GP_6_14_DATA___3 = 136, + GP_6_15_DATA___3 = 137, + GP_6_16_DATA___3 = 138, + GP_6_17_DATA___3 = 139, + GP_6_18_DATA___3 = 140, + GP_6_19_DATA___3 = 141, + GP_6_20_DATA___3 = 142, + GP_6_21_DATA___3 = 143, + GP_6_22_DATA___3 = 144, + GP_6_23_DATA___3 = 145, + GP_6_24_DATA___3 = 146, + GP_6_25_DATA___3 = 147, + GP_6_26_DATA___3 = 148, + GP_6_27_DATA___3 = 149, + GP_6_28_DATA___3 = 150, + GP_6_29_DATA___3 = 151, + GP_6_30_DATA___3 = 152, + GP_6_31_DATA___3 = 153, + GP_7_0_DATA___3 = 154, + GP_7_1_DATA___3 = 155, + GP_7_2_DATA___3 = 156, + GP_7_3_DATA___3 = 157, + PINMUX_DATA_END___4 = 158, + PINMUX_FUNCTION_BEGIN___4 = 159, + GP_0_0_FN___4 = 160, + GP_0_1_FN___4 = 161, + GP_0_2_FN___4 = 162, + GP_0_3_FN___4 = 163, + GP_0_4_FN___4 = 164, + GP_0_5_FN___4 = 165, + GP_0_6_FN___4 = 166, + GP_0_7_FN___4 = 167, + GP_0_8_FN___4 = 168, + GP_0_9_FN___4 = 169, + GP_0_10_FN___4 = 170, + GP_0_11_FN___4 = 171, + GP_0_12_FN___4 = 172, + GP_0_13_FN___4 = 173, + GP_0_14_FN___4 = 174, + GP_0_15_FN___4 = 175, + GP_1_0_FN___4 = 176, + GP_1_1_FN___4 = 177, + GP_1_2_FN___4 = 178, + GP_1_3_FN___4 = 179, + GP_1_4_FN___4 = 180, + GP_1_5_FN___4 = 181, + GP_1_6_FN___4 = 182, + GP_1_7_FN___4 = 183, + GP_1_8_FN___4 = 184, + GP_1_9_FN___4 = 185, + GP_1_10_FN___4 = 186, + GP_1_11_FN___4 = 187, + GP_1_12_FN___4 = 188, + GP_1_13_FN___4 = 189, + GP_1_14_FN___4 = 190, + GP_1_15_FN___4 = 191, + GP_1_16_FN___4 = 192, + GP_1_17_FN___4 = 193, + GP_1_18_FN___4 = 194, + GP_1_19_FN___4 = 195, + GP_1_20_FN___4 = 196, + GP_1_21_FN___4 = 197, + GP_1_22_FN___4 = 198, + GP_1_23_FN___4 = 199, + GP_1_24_FN___4 = 200, + GP_1_25_FN___4 = 201, + GP_1_26_FN___4 = 202, + GP_1_27_FN___4 = 203, + GP_1_28_FN___3 = 204, + GP_2_0_FN___4 = 205, + GP_2_1_FN___4 = 206, + GP_2_2_FN___4 = 207, + GP_2_3_FN___4 = 208, + GP_2_4_FN___4 = 209, + GP_2_5_FN___4 = 210, + GP_2_6_FN___4 = 211, + GP_2_7_FN___4 = 212, + GP_2_8_FN___4 = 213, + GP_2_9_FN___4 = 214, + GP_2_10_FN___4 = 215, + GP_2_11_FN___4 = 216, + GP_2_12_FN___4 = 217, + GP_2_13_FN___4 = 218, + GP_2_14_FN___4 = 219, + GP_3_0_FN___4 = 220, + GP_3_1_FN___4 = 221, + GP_3_2_FN___4 = 222, + GP_3_3_FN___4 = 223, + GP_3_4_FN___4 = 224, + GP_3_5_FN___4 = 225, + GP_3_6_FN___4 = 226, + GP_3_7_FN___4 = 227, + GP_3_8_FN___4 = 228, + GP_3_9_FN___4 = 229, + GP_3_10_FN___4 = 230, + GP_3_11_FN___4 = 231, + GP_3_12_FN___4 = 232, + GP_3_13_FN___4 = 233, + GP_3_14_FN___4 = 234, + GP_3_15_FN___4 = 235, + GP_4_0_FN___4 = 236, + GP_4_1_FN___4 = 237, + GP_4_2_FN___4 = 238, + GP_4_3_FN___4 = 239, + GP_4_4_FN___4 = 240, + GP_4_5_FN___4 = 241, + GP_4_6_FN___4 = 242, + GP_4_7_FN___4 = 243, + GP_4_8_FN___4 = 244, + GP_4_9_FN___4 = 245, + GP_4_10_FN___4 = 246, + GP_4_11_FN___4 = 247, + GP_4_12_FN___4 = 248, + GP_4_13_FN___4 = 249, + GP_4_14_FN___4 = 250, + GP_4_15_FN___4 = 251, + GP_4_16_FN___4 = 252, + GP_4_17_FN___4 = 253, + GP_5_0_FN___4 = 254, + GP_5_1_FN___4 = 255, + GP_5_2_FN___4 = 256, + GP_5_3_FN___4 = 257, + GP_5_4_FN___4 = 258, + GP_5_5_FN___4 = 259, + GP_5_6_FN___4 = 260, + GP_5_7_FN___4 = 261, + GP_5_8_FN___4 = 262, + GP_5_9_FN___4 = 263, + GP_5_10_FN___4 = 264, + GP_5_11_FN___4 = 265, + GP_5_12_FN___4 = 266, + GP_5_13_FN___4 = 267, + GP_5_14_FN___4 = 268, + GP_5_15_FN___3 = 269, + GP_5_16_FN___3 = 270, + GP_5_17_FN___3 = 271, + GP_5_18_FN___3 = 272, + GP_5_19_FN___3 = 273, + GP_5_20_FN___3 = 274, + GP_5_21_FN___3 = 275, + GP_5_22_FN___3 = 276, + GP_5_23_FN___3 = 277, + GP_5_24_FN___3 = 278, + GP_5_25_FN___3 = 279, + GP_6_0_FN___3 = 280, + GP_6_1_FN___3 = 281, + GP_6_2_FN___3 = 282, + GP_6_3_FN___3 = 283, + GP_6_4_FN___3 = 284, + GP_6_5_FN___3 = 285, + GP_6_6_FN___3 = 286, + GP_6_7_FN___3 = 287, + GP_6_8_FN___3 = 288, + GP_6_9_FN___3 = 289, + GP_6_10_FN___3 = 290, + GP_6_11_FN___3 = 291, + GP_6_12_FN___3 = 292, + GP_6_13_FN___3 = 293, + GP_6_14_FN___3 = 294, + GP_6_15_FN___3 = 295, + GP_6_16_FN___3 = 296, + GP_6_17_FN___3 = 297, + GP_6_18_FN___3 = 298, + GP_6_19_FN___3 = 299, + GP_6_20_FN___3 = 300, + GP_6_21_FN___3 = 301, + GP_6_22_FN___3 = 302, + GP_6_23_FN___3 = 303, + GP_6_24_FN___3 = 304, + GP_6_25_FN___3 = 305, + GP_6_26_FN___3 = 306, + GP_6_27_FN___3 = 307, + GP_6_28_FN___3 = 308, + GP_6_29_FN___3 = 309, + GP_6_30_FN___3 = 310, + GP_6_31_FN___3 = 311, + GP_7_0_FN___3 = 312, + GP_7_1_FN___3 = 313, + GP_7_2_FN___3 = 314, + GP_7_3_FN___3 = 315, + FN_CLKOUT___4 = 316, + FN_MSIOF0_RXD___4 = 317, + FN_MSIOF0_TXD___4 = 318, + FN_MSIOF0_SCK___4 = 319, + FN_SSI_SDATA5___3 = 320, + FN_SSI_WS5___3 = 321, + FN_SSI_SCK5___3 = 322, + FN_GP7_03___3 = 323, + FN_GP7_02___3 = 324, + FN_AVS2___3 = 325, + FN_AVS1___3 = 326, + FN_IP0_3_0___4 = 327, + FN_AVB_MDC___4 = 328, + FN_MSIOF2_SS2_C___3 = 329, + FN_IP1_3_0___4 = 330, + FN_IRQ2___4 = 331, + FN_QCPV_QDE___3 = 332, + FN_DU_EXODDF_DU_ODDF_DISP_CDE___4 = 333, + FN_VI4_DATA2_B___3 = 334, + FN_MSIOF3_SYNC_E___3 = 335, + FN_PWM3_B___4 = 336, + FN_IP2_3_0___4 = 337, + FN_A1___4 = 338, + FN_LCDOUT17___3 = 339, + FN_MSIOF3_TXD_B___3 = 340, + FN_VI4_DATA9___3 = 341, + FN_DU_DB1___4 = 342, + FN_PWM4_A___4 = 343, + FN_IP3_3_0___4 = 344, + FN_A9___4 = 345, + FN_MSIOF2_SCK_A___3 = 346, + FN_CTS4_N_B___3 = 347, + FN_VI5_VSYNC_N___3 = 348, + FN_IP0_7_4___4 = 349, + FN_AVB_MAGIC___4 = 350, + FN_MSIOF2_SS1_C___3 = 351, + FN_SCK4_A___3 = 352, + FN_IP1_7_4___4 = 353, + FN_IRQ3___4 = 354, + FN_QSTVB_QVE___3 = 355, + FN_DU_DOTCLKOUT1___3 = 356, + FN_VI4_DATA3_B___3 = 357, + FN_MSIOF3_SCK_E___3 = 358, + FN_PWM4_B___4 = 359, + FN_IP2_7_4___4 = 360, + FN_A2___4 = 361, + FN_LCDOUT18___3 = 362, + FN_MSIOF3_SCK_B___3 = 363, + FN_VI4_DATA10___3 = 364, + FN_DU_DB2___4 = 365, + FN_PWM5_A___3 = 366, + FN_IP3_7_4___4 = 367, + FN_A10___4 = 368, + FN_MSIOF2_RXD_A___3 = 369, + FN_RTS4_N_B___3 = 370, + FN_VI5_HSYNC_N___3 = 371, + FN_IP0_11_8___4 = 372, + FN_AVB_PHY_INT___4 = 373, + FN_MSIOF2_SYNC_C___3 = 374, + FN_RX4_A___3 = 375, + FN_IP1_11_8___4 = 376, + FN_IRQ4___4 = 377, + FN_QSTH_QHS___3 = 378, + FN_DU_EXHSYNC_DU_HSYNC___4 = 379, + FN_VI4_DATA4_B___3 = 380, + FN_MSIOF3_RXD_E___3 = 381, + FN_PWM5_B___3 = 382, + FN_IP2_11_8___4 = 383, + FN_A3___4 = 384, + FN_LCDOUT19___3 = 385, + FN_MSIOF3_RXD_B___3 = 386, + FN_VI4_DATA11___3 = 387, + FN_DU_DB3___4 = 388, + FN_PWM6_A___3 = 389, + FN_IP3_11_8___4 = 390, + FN_A11___4 = 391, + FN_TX3_B___3 = 392, + FN_MSIOF2_TXD_A___3 = 393, + FN_HTX4_B___3 = 394, + FN_HSCK4___3 = 395, + FN_VI5_FIELD___3 = 396, + FN_SCL6_A___3 = 397, + FN_AVB_AVTP_CAPTURE_B___3 = 398, + FN_PWM2_B___4 = 399, + FN_IP0_15_12___4 = 400, + FN_AVB_LINK___4 = 401, + FN_MSIOF2_SCK_C___3 = 402, + FN_TX4_A___3 = 403, + FN_IP1_15_12___4 = 404, + FN_IRQ5___4 = 405, + FN_QSTB_QHE___3 = 406, + FN_DU_EXVSYNC_DU_VSYNC___4 = 407, + FN_VI4_DATA5_B___3 = 408, + FN_FSCLKST2_N_B___2 = 409, + FN_MSIOF3_TXD_E___3 = 410, + FN_PWM6_B___3 = 411, + FN_IP2_15_12___4 = 412, + FN_A4___4 = 413, + FN_LCDOUT20___3 = 414, + FN_MSIOF3_SS1_B___3 = 415, + FN_VI4_DATA12___3 = 416, + FN_VI5_DATA12___3 = 417, + FN_DU_DB4___4 = 418, + FN_IP3_15_12___4 = 419, + FN_A12___4 = 420, + FN_LCDOUT12___3 = 421, + FN_MSIOF3_SCK_C___3 = 422, + FN_HRX4_A___3 = 423, + FN_VI5_DATA8___3 = 424, + FN_DU_DG4___4 = 425, + FN_IP0_19_16___4 = 426, + FN_AVB_AVTP_MATCH_A___3 = 427, + FN_MSIOF2_RXD_C___3 = 428, + FN_CTS4_N_A___3 = 429, + FN_FSCLKST2_N_A___2 = 430, + FN_IP1_19_16___4 = 431, + FN_PWM0___3 = 432, + FN_AVB_AVTP_PPS___4 = 433, + FN_VI4_DATA6_B___3 = 434, + FN_IECLK_B___3 = 435, + FN_IP2_19_16___4 = 436, + FN_A5___4 = 437, + FN_LCDOUT21___3 = 438, + FN_MSIOF3_SS2_B___3 = 439, + FN_SCK4_B___3 = 440, + FN_VI4_DATA13___3 = 441, + FN_VI5_DATA13___3 = 442, + FN_DU_DB5___4 = 443, + FN_IP3_19_16___4 = 444, + FN_A13___4 = 445, + FN_LCDOUT13___3 = 446, + FN_MSIOF3_SYNC_C___3 = 447, + FN_HTX4_A___3 = 448, + FN_VI5_DATA9___3 = 449, + FN_DU_DG5___4 = 450, + FN_IP0_23_20___4 = 451, + FN_AVB_AVTP_CAPTURE_A___3 = 452, + FN_MSIOF2_TXD_C___3 = 453, + FN_RTS4_N_A___3 = 454, + FN_IP1_23_20___4 = 455, + FN_PWM1_A___4 = 456, + FN_HRX3_D___3 = 457, + FN_VI4_DATA7_B___3 = 458, + FN_IERX_B___3 = 459, + FN_IP2_23_20___4 = 460, + FN_A6___4 = 461, + FN_LCDOUT22___3 = 462, + FN_MSIOF2_SS1_A___3 = 463, + FN_RX4_B___3 = 464, + FN_VI4_DATA14___3 = 465, + FN_VI5_DATA14___3 = 466, + FN_DU_DB6___4 = 467, + FN_IP3_23_20___4 = 468, + FN_A14___4 = 469, + FN_LCDOUT14___3 = 470, + FN_MSIOF3_RXD_C___3 = 471, + FN_HCTS4_N___3 = 472, + FN_VI5_DATA10___3 = 473, + FN_DU_DG6___4 = 474, + FN_IP0_27_24___4 = 475, + FN_IRQ0___4 = 476, + FN_QPOLB___3 = 477, + FN_DU_CDE___4 = 478, + FN_VI4_DATA0_B___3 = 479, + FN_CAN0_TX_B___3 = 480, + FN_CANFD0_TX_B___4 = 481, + FN_MSIOF3_SS2_E___3 = 482, + FN_IP1_27_24___4 = 483, + FN_PWM2_A___4 = 484, + FN_HTX3_D___3 = 485, + FN_IETX_B___3 = 486, + FN_IP2_27_24___4 = 487, + FN_A7___4 = 488, + FN_LCDOUT23___3 = 489, + FN_MSIOF2_SS2_A___3 = 490, + FN_TX4_B___3 = 491, + FN_VI4_DATA15___3 = 492, + FN_VI5_DATA15___3 = 493, + FN_DU_DB7___4 = 494, + FN_IP3_27_24___4 = 495, + FN_A15___4 = 496, + FN_LCDOUT15___3 = 497, + FN_MSIOF3_TXD_C___3 = 498, + FN_HRTS4_N___3 = 499, + FN_VI5_DATA11___3 = 500, + FN_DU_DG7___4 = 501, + FN_IP0_31_28___4 = 502, + FN_IRQ1___4 = 503, + FN_QPOLA___3 = 504, + FN_DU_DISP___4 = 505, + FN_VI4_DATA1_B___3 = 506, + FN_CAN0_RX_B___3 = 507, + FN_CANFD0_RX_B___4 = 508, + FN_MSIOF3_SS1_E___3 = 509, + FN_IP1_31_28___4 = 510, + FN_A0___4 = 511, + FN_LCDOUT16___3 = 512, + FN_MSIOF3_SYNC_B___3 = 513, + FN_VI4_DATA8___3 = 514, + FN_DU_DB0___4 = 515, + FN_PWM3_A___4 = 516, + FN_IP2_31_28___4 = 517, + FN_A8___4 = 518, + FN_RX3_B___3 = 519, + FN_MSIOF2_SYNC_A___3 = 520, + FN_HRX4_B___3 = 521, + FN_SDA6_A___3 = 522, + FN_AVB_AVTP_MATCH_B___3 = 523, + FN_PWM1_B___4 = 524, + FN_IP3_31_28___4 = 525, + FN_A16___4 = 526, + FN_LCDOUT8___3 = 527, + FN_VI4_FIELD___3 = 528, + FN_DU_DG0___4 = 529, + FN_IP4_3_0___4 = 530, + FN_A17___4 = 531, + FN_LCDOUT9___3 = 532, + FN_VI4_VSYNC_N___3 = 533, + FN_DU_DG1___4 = 534, + FN_IP5_3_0___4 = 535, + FN_WE0_N___4 = 536, + FN_MSIOF3_TXD_D___3 = 537, + FN_CTS3_N___4 = 538, + FN_HCTS3_N___4 = 539, + FN_SCL6_B___3 = 540, + FN_CAN_CLK___3 = 541, + FN_IECLK_A___3 = 542, + FN_IP6_3_0___4 = 543, + FN_D5___4 = 544, + FN_MSIOF2_SYNC_B___3 = 545, + FN_VI4_DATA21___3 = 546, + FN_VI5_DATA5___3 = 547, + FN_IP7_3_0___4 = 548, + FN_D13___4 = 549, + FN_LCDOUT5___3 = 550, + FN_MSIOF2_SS2_D___3 = 551, + FN_TX4_C___3 = 552, + FN_VI4_DATA5_A___3 = 553, + FN_DU_DR5___4 = 554, + FN_IP4_7_4___4 = 555, + FN_A18___4 = 556, + FN_LCDOUT10___3 = 557, + FN_VI4_HSYNC_N___3 = 558, + FN_DU_DG2___4 = 559, + FN_IP5_7_4___4 = 560, + FN_WE1_N___4 = 561, + FN_MSIOF3_SS1_D___3 = 562, + FN_RTS3_N___4 = 563, + FN_HRTS3_N___4 = 564, + FN_SDA6_B___3 = 565, + FN_CAN1_RX___3 = 566, + FN_CANFD1_RX___4 = 567, + FN_IERX_A___3 = 568, + FN_IP6_7_4___4 = 569, + FN_D6___4 = 570, + FN_MSIOF2_RXD_B___3 = 571, + FN_VI4_DATA22___3 = 572, + FN_VI5_DATA6___3 = 573, + FN_IP7_7_4___4 = 574, + FN_D14___4 = 575, + FN_LCDOUT6___3 = 576, + FN_MSIOF3_SS1_A___3 = 577, + FN_HRX3_C___3 = 578, + FN_VI4_DATA6_A___3 = 579, + FN_DU_DR6___4 = 580, + FN_SCL6_C___3 = 581, + FN_IP4_11_8___4 = 582, + FN_A19___4 = 583, + FN_LCDOUT11___3 = 584, + FN_VI4_CLKENB___3 = 585, + FN_DU_DG3___4 = 586, + FN_IP5_11_8___4 = 587, + FN_EX_WAIT0_A___3 = 588, + FN_QCLK___3 = 589, + FN_VI4_CLK___3 = 590, + FN_DU_DOTCLKOUT0___3 = 591, + FN_IP6_11_8___4 = 592, + FN_D7___4 = 593, + FN_MSIOF2_TXD_B___3 = 594, + FN_VI4_DATA23___3 = 595, + FN_VI5_DATA7___3 = 596, + FN_IP7_11_8___4 = 597, + FN_D15___4 = 598, + FN_LCDOUT7___3 = 599, + FN_MSIOF3_SS2_A___3 = 600, + FN_HTX3_C___3 = 601, + FN_VI4_DATA7_A___3 = 602, + FN_DU_DR7___4 = 603, + FN_SDA6_C___3 = 604, + FN_IP4_15_12___4 = 605, + FN_CS0_N___4 = 606, + FN_VI5_CLKENB___3 = 607, + FN_IP5_15_12___4 = 608, + FN_D0___4 = 609, + FN_MSIOF2_SS1_B___3 = 610, + FN_MSIOF3_SCK_A___3 = 611, + FN_VI4_DATA16___3 = 612, + FN_VI5_DATA0___3 = 613, + FN_IP6_15_12___4 = 614, + FN_D8___4 = 615, + FN_LCDOUT0___3 = 616, + FN_MSIOF2_SCK_D___3 = 617, + FN_SCK4_C___3 = 618, + FN_VI4_DATA0_A___3 = 619, + FN_DU_DR0___4 = 620, + FN_IP4_19_16___4 = 621, + FN_CS1_N___4 = 622, + FN_VI5_CLK___3 = 623, + FN_EX_WAIT0_B___3 = 624, + FN_IP5_19_16___4 = 625, + FN_D1___4 = 626, + FN_MSIOF2_SS2_B___3 = 627, + FN_MSIOF3_SYNC_A___3 = 628, + FN_VI4_DATA17___3 = 629, + FN_VI5_DATA1___3 = 630, + FN_IP6_19_16___4 = 631, + FN_D9___4 = 632, + FN_LCDOUT1___3 = 633, + FN_MSIOF2_SYNC_D___3 = 634, + FN_VI4_DATA1_A___3 = 635, + FN_DU_DR1___4 = 636, + FN_IP7_19_16___4 = 637, + FN_SD0_CLK___3 = 638, + FN_MSIOF1_SCK_E___3 = 639, + FN_STP_OPWM_0_B___3 = 640, + FN_IP4_23_20___4 = 641, + FN_BS_N___4 = 642, + FN_QSTVA_QVS___3 = 643, + FN_MSIOF3_SCK_D___3 = 644, + FN_SCK3___4 = 645, + FN_HSCK3___4 = 646, + FN_CAN1_TX___3 = 647, + FN_CANFD1_TX___4 = 648, + FN_IETX_A___3 = 649, + FN_IP5_23_20___4 = 650, + FN_D2___4 = 651, + FN_MSIOF3_RXD_A___3 = 652, + FN_VI4_DATA18___3 = 653, + FN_VI5_DATA2___3 = 654, + FN_IP6_23_20___4 = 655, + FN_D10___4 = 656, + FN_LCDOUT2___3 = 657, + FN_MSIOF2_RXD_D___3 = 658, + FN_HRX3_B___3 = 659, + FN_VI4_DATA2_A___3 = 660, + FN_CTS4_N_C___3 = 661, + FN_DU_DR2___4 = 662, + FN_IP7_23_20___4 = 663, + FN_SD0_CMD___3 = 664, + FN_MSIOF1_SYNC_E___3 = 665, + FN_STP_IVCXO27_0_B___3 = 666, + FN_IP4_27_24___4 = 667, + FN_RD_N___4 = 668, + FN_MSIOF3_SYNC_D___3 = 669, + FN_RX3_A___3 = 670, + FN_HRX3_A___3 = 671, + FN_CAN0_TX_A___3 = 672, + FN_CANFD0_TX_A___4 = 673, + FN_IP5_27_24___4 = 674, + FN_D3___4 = 675, + FN_MSIOF3_TXD_A___3 = 676, + FN_VI4_DATA19___3 = 677, + FN_VI5_DATA3___3 = 678, + FN_IP6_27_24___4 = 679, + FN_D11___4 = 680, + FN_LCDOUT3___3 = 681, + FN_MSIOF2_TXD_D___3 = 682, + FN_HTX3_B___3 = 683, + FN_VI4_DATA3_A___3 = 684, + FN_RTS4_N_C___3 = 685, + FN_DU_DR3___4 = 686, + FN_IP7_27_24___4 = 687, + FN_SD0_DAT0___3 = 688, + FN_MSIOF1_RXD_E___3 = 689, + FN_TS_SCK0_B___3 = 690, + FN_STP_ISCLK_0_B___3 = 691, + FN_IP4_31_28___4 = 692, + FN_RD_WR_N___4 = 693, + FN_MSIOF3_RXD_D___3 = 694, + FN_TX3_A___3 = 695, + FN_HTX3_A___3 = 696, + FN_CAN0_RX_A___3 = 697, + FN_CANFD0_RX_A___4 = 698, + FN_IP5_31_28___4 = 699, + FN_D4___4 = 700, + FN_MSIOF2_SCK_B___3 = 701, + FN_VI4_DATA20___3 = 702, + FN_VI5_DATA4___3 = 703, + FN_IP6_31_28___4 = 704, + FN_D12___4 = 705, + FN_LCDOUT4___3 = 706, + FN_MSIOF2_SS1_D___3 = 707, + FN_RX4_C___3 = 708, + FN_VI4_DATA4_A___3 = 709, + FN_DU_DR4___4 = 710, + FN_IP7_31_28___4 = 711, + FN_SD0_DAT1___3 = 712, + FN_MSIOF1_TXD_E___3 = 713, + FN_TS_SPSYNC0_B___3 = 714, + FN_STP_ISSYNC_0_B___3 = 715, + FN_IP8_3_0___4 = 716, + FN_SD0_DAT2___3 = 717, + FN_MSIOF1_SS1_E___3 = 718, + FN_TS_SDAT0_B___3 = 719, + FN_STP_ISD_0_B___3 = 720, + FN_IP9_3_0___4 = 721, + FN_SD2_CLK___3 = 722, + FN_NFDATA8___3 = 723, + FN_IP10_3_0___4 = 724, + FN_SD3_CMD___3 = 725, + FN_NFRE_N___3 = 726, + FN_IP11_3_0___3 = 727, + FN_SD3_DAT7___3 = 728, + FN_SD3_WP___3 = 729, + FN_NFDATA7___3 = 730, + FN_IP8_7_4___4 = 731, + FN_SD0_DAT3___3 = 732, + FN_MSIOF1_SS2_E___3 = 733, + FN_TS_SDEN0_B___3 = 734, + FN_STP_ISEN_0_B___3 = 735, + FN_IP9_7_4___4 = 736, + FN_SD2_CMD___3 = 737, + FN_NFDATA9___3 = 738, + FN_IP10_7_4___4 = 739, + FN_SD3_DAT0___3 = 740, + FN_NFDATA0___3 = 741, + FN_IP11_7_4___3 = 742, + FN_SD3_DS___3 = 743, + FN_NFCLE___3 = 744, + FN_IP8_11_8___4 = 745, + FN_SD1_CLK___3 = 746, + FN_MSIOF1_SCK_G___3 = 747, + FN_SIM0_CLK_A___3 = 748, + FN_IP9_11_8___4 = 749, + FN_SD2_DAT0___3 = 750, + FN_NFDATA10___3 = 751, + FN_IP10_11_8___4 = 752, + FN_SD3_DAT1___3 = 753, + FN_NFDATA1___3 = 754, + FN_IP11_11_8___3 = 755, + FN_SD0_CD___3 = 756, + FN_NFDATA14_A___3 = 757, + FN_SCL2_B___3 = 758, + FN_SIM0_RST_A___3 = 759, + FN_IP8_15_12___4 = 760, + FN_SD1_CMD___3 = 761, + FN_MSIOF1_SYNC_G___3 = 762, + FN_NFCE_N_B___3 = 763, + FN_SIM0_D_A___3 = 764, + FN_STP_IVCXO27_1_B___3 = 765, + FN_IP9_15_12___4 = 766, + FN_SD2_DAT1___3 = 767, + FN_NFDATA11___3 = 768, + FN_IP10_15_12___4 = 769, + FN_SD3_DAT2___3 = 770, + FN_NFDATA2___3 = 771, + FN_IP11_15_12___3 = 772, + FN_SD0_WP___3 = 773, + FN_NFDATA15_A___3 = 774, + FN_SDA2_B___3 = 775, + FN_IP8_19_16___4 = 776, + FN_SD1_DAT0___3 = 777, + FN_SD2_DAT4___3 = 778, + FN_MSIOF1_RXD_G___3 = 779, + FN_NFWP_N_B___3 = 780, + FN_TS_SCK1_B___3 = 781, + FN_STP_ISCLK_1_B___3 = 782, + FN_IP9_19_16___4 = 783, + FN_SD2_DAT2___3 = 784, + FN_NFDATA12___3 = 785, + FN_IP10_19_16___4 = 786, + FN_SD3_DAT3___3 = 787, + FN_NFDATA3___3 = 788, + FN_IP11_19_16___3 = 789, + FN_SD1_CD___3 = 790, + FN_NFRB_N_A___3 = 791, + FN_SIM0_CLK_B___3 = 792, + FN_IP8_23_20___4 = 793, + FN_SD1_DAT1___3 = 794, + FN_SD2_DAT5___3 = 795, + FN_MSIOF1_TXD_G___3 = 796, + FN_NFDATA14_B___3 = 797, + FN_TS_SPSYNC1_B___3 = 798, + FN_STP_ISSYNC_1_B___3 = 799, + FN_IP9_23_20___4 = 800, + FN_SD2_DAT3___3 = 801, + FN_NFDATA13___3 = 802, + FN_IP10_23_20___3 = 803, + FN_SD3_DAT4___3 = 804, + FN_SD2_CD_A___3 = 805, + FN_NFDATA4___3 = 806, + FN_IP11_23_20___3 = 807, + FN_SD1_WP___3 = 808, + FN_NFCE_N_A___3 = 809, + FN_SIM0_D_B___3 = 810, + FN_IP8_27_24___4 = 811, + FN_SD1_DAT2___3 = 812, + FN_SD2_DAT6___3 = 813, + FN_MSIOF1_SS1_G___3 = 814, + FN_NFDATA15_B___3 = 815, + FN_TS_SDAT1_B___3 = 816, + FN_STP_ISD_1_B___3 = 817, + FN_IP9_27_24___4 = 818, + FN_SD2_DS___3 = 819, + FN_NFALE___3 = 820, + FN_SATA_DEVSLP_B___2 = 821, + FN_IP10_27_24___3 = 822, + FN_SD3_DAT5___3 = 823, + FN_SD2_WP_A___3 = 824, + FN_NFDATA5___3 = 825, + FN_IP11_27_24___3 = 826, + FN_SCK0___4 = 827, + FN_HSCK1_B___3 = 828, + FN_MSIOF1_SS2_B___3 = 829, + FN_AUDIO_CLKC_B___3 = 830, + FN_SDA2_A___3 = 831, + FN_SIM0_RST_B___3 = 832, + FN_STP_OPWM_0_C___3 = 833, + FN_RIF0_CLK_B___3 = 834, + FN_ADICHS2___3 = 835, + FN_SCK5_B___3 = 836, + FN_IP8_31_28___4 = 837, + FN_SD1_DAT3___3 = 838, + FN_SD2_DAT7___3 = 839, + FN_MSIOF1_SS2_G___3 = 840, + FN_NFRB_N_B___3 = 841, + FN_TS_SDEN1_B___3 = 842, + FN_STP_ISEN_1_B___3 = 843, + FN_IP9_31_28___4 = 844, + FN_SD3_CLK___3 = 845, + FN_NFWE_N___3 = 846, + FN_IP10_31_28___3 = 847, + FN_SD3_DAT6___3 = 848, + FN_SD3_CD___3 = 849, + FN_NFDATA6___3 = 850, + FN_IP11_31_28___3 = 851, + FN_RX0___4 = 852, + FN_HRX1_B___3 = 853, + FN_TS_SCK0_C___3 = 854, + FN_STP_ISCLK_0_C___3 = 855, + FN_RIF0_D0_B___3 = 856, + FN_IP12_3_0___3 = 857, + FN_TX0___4 = 858, + FN_HTX1_B___3 = 859, + FN_TS_SPSYNC0_C___3 = 860, + FN_STP_ISSYNC_0_C___3 = 861, + FN_RIF0_D1_B___3 = 862, + FN_IP13_3_0___3 = 863, + FN_TX2_A___3 = 864, + FN_SD2_CD_B___3 = 865, + FN_SCL1_A___3 = 866, + FN_FMCLK_A___3 = 867, + FN_RIF1_D1_C___3 = 868, + FN_FSO_CFE_0_N___4 = 869, + FN_IP14_3_0___3 = 870, + FN_MSIOF0_SS1___4 = 871, + FN_RX5_A___3 = 872, + FN_NFWP_N_A___3 = 873, + FN_AUDIO_CLKA_C___3 = 874, + FN_SSI_SCK2_A___3 = 875, + FN_STP_IVCXO27_0_C___3 = 876, + FN_AUDIO_CLKOUT3_A___3 = 877, + FN_TCLK1_B___4 = 878, + FN_IP15_3_0___3 = 879, + FN_SSI_SDATA1_A___3 = 880, + FN_IP12_7_4___3 = 881, + FN_CTS0_N___4 = 882, + FN_HCTS1_N_B___3 = 883, + FN_MSIOF1_SYNC_B___3 = 884, + FN_TS_SPSYNC1_C___3 = 885, + FN_STP_ISSYNC_1_C___3 = 886, + FN_RIF1_SYNC_B___3 = 887, + FN_AUDIO_CLKOUT_C___3 = 888, + FN_ADICS_SAMP___3 = 889, + FN_IP13_7_4___3 = 890, + FN_RX2_A___3 = 891, + FN_SD2_WP_B___3 = 892, + FN_SDA1_A___3 = 893, + FN_FMIN_A___3 = 894, + FN_RIF1_SYNC_C___3 = 895, + FN_FSO_CFE_1_N___4 = 896, + FN_IP14_7_4___3 = 897, + FN_MSIOF0_SS2___4 = 898, + FN_TX5_A___3 = 899, + FN_MSIOF1_SS2_D___3 = 900, + FN_AUDIO_CLKC_A___3 = 901, + FN_SSI_WS2_A___3 = 902, + FN_STP_OPWM_0_D___3 = 903, + FN_AUDIO_CLKOUT_D___3 = 904, + FN_SPEEDIN_B___4 = 905, + FN_IP15_7_4___3 = 906, + FN_SSI_SDATA2_A___3 = 907, + FN_SSI_SCK1_B___3 = 908, + FN_IP12_11_8___3 = 909, + FN_RTS0_N___4 = 910, + FN_HRTS1_N_B___3 = 911, + FN_MSIOF1_SS1_B___3 = 912, + FN_AUDIO_CLKA_B___3 = 913, + FN_SCL2_A___3 = 914, + FN_STP_IVCXO27_1_C___3 = 915, + FN_RIF0_SYNC_B___3 = 916, + FN_ADICHS1___3 = 917, + FN_IP13_11_8___3 = 918, + FN_HSCK0___3 = 919, + FN_MSIOF1_SCK_D___3 = 920, + FN_AUDIO_CLKB_A___3 = 921, + FN_SSI_SDATA1_B___3 = 922, + FN_TS_SCK0_D___3 = 923, + FN_STP_ISCLK_0_D___3 = 924, + FN_RIF0_CLK_C___3 = 925, + FN_RX5_B___3 = 926, + FN_IP14_11_8___3 = 927, + FN_MLB_CLK___3 = 928, + FN_MSIOF1_SCK_F___3 = 929, + FN_SCL1_B___3 = 930, + FN_IP15_11_8___3 = 931, + FN_SSI_SCK349___3 = 932, + FN_MSIOF1_SS1_A___3 = 933, + FN_STP_OPWM_0_A___3 = 934, + FN_IP12_15_12___3 = 935, + FN_RX1_A___4 = 936, + FN_HRX1_A___3 = 937, + FN_TS_SDAT0_C___3 = 938, + FN_STP_ISD_0_C___3 = 939, + FN_RIF1_CLK_C___3 = 940, + FN_IP13_15_12___3 = 941, + FN_HRX0___3 = 942, + FN_MSIOF1_RXD_D___3 = 943, + FN_SSI_SDATA2_B___3 = 944, + FN_TS_SDEN0_D___3 = 945, + FN_STP_ISEN_0_D___3 = 946, + FN_RIF0_D0_C___3 = 947, + FN_IP14_15_12___3 = 948, + FN_MLB_SIG___3 = 949, + FN_RX1_B___4 = 950, + FN_MSIOF1_SYNC_F___3 = 951, + FN_SDA1_B___3 = 952, + FN_IP15_15_12___3 = 953, + FN_SSI_WS349___3 = 954, + FN_HCTS2_N_A___3 = 955, + FN_MSIOF1_SS2_A___3 = 956, + FN_STP_IVCXO27_0_A___3 = 957, + FN_IP12_19_16___3 = 958, + FN_TX1_A___4 = 959, + FN_HTX1_A___3 = 960, + FN_TS_SDEN0_C___3 = 961, + FN_STP_ISEN_0_C___3 = 962, + FN_RIF1_D0_C___3 = 963, + FN_IP13_19_16___3 = 964, + FN_HTX0___3 = 965, + FN_MSIOF1_TXD_D___3 = 966, + FN_SSI_SDATA9_B___3 = 967, + FN_TS_SDAT0_D___3 = 968, + FN_STP_ISD_0_D___3 = 969, + FN_RIF0_D1_C___3 = 970, + FN_IP14_19_16___3 = 971, + FN_MLB_DAT___3 = 972, + FN_TX1_B___4 = 973, + FN_MSIOF1_RXD_F___3 = 974, + FN_IP15_19_16___3 = 975, + FN_SSI_SDATA3___3 = 976, + FN_HRTS2_N_A___3 = 977, + FN_MSIOF1_TXD_A___3 = 978, + FN_TS_SCK0_A___3 = 979, + FN_STP_ISCLK_0_A___3 = 980, + FN_RIF0_D1_A___3 = 981, + FN_RIF2_D0_A___3 = 982, + FN_IP12_23_20___3 = 983, + FN_CTS1_N___4 = 984, + FN_HCTS1_N_A___3 = 985, + FN_MSIOF1_RXD_B___3 = 986, + FN_TS_SDEN1_C___3 = 987, + FN_STP_ISEN_1_C___3 = 988, + FN_RIF1_D0_B___3 = 989, + FN_ADIDATA___3 = 990, + FN_IP13_23_20___3 = 991, + FN_HCTS0_N___3 = 992, + FN_RX2_B___3 = 993, + FN_MSIOF1_SYNC_D___3 = 994, + FN_SSI_SCK9_A___3 = 995, + FN_TS_SPSYNC0_D___3 = 996, + FN_STP_ISSYNC_0_D___3 = 997, + FN_RIF0_SYNC_C___3 = 998, + FN_AUDIO_CLKOUT1_A___3 = 999, + FN_IP14_23_20___3 = 1000, + FN_SSI_SCK01239___3 = 1001, + FN_MSIOF1_TXD_F___3 = 1002, + FN_IP15_23_20___3 = 1003, + FN_SSI_SCK4___3 = 1004, + FN_HRX2_A___3 = 1005, + FN_MSIOF1_SCK_A___3 = 1006, + FN_TS_SDAT0_A___3 = 1007, + FN_STP_ISD_0_A___3 = 1008, + FN_RIF0_CLK_A___3 = 1009, + FN_RIF2_CLK_A___3 = 1010, + FN_IP12_27_24___3 = 1011, + FN_RTS1_N___4 = 1012, + FN_HRTS1_N_A___3 = 1013, + FN_MSIOF1_TXD_B___3 = 1014, + FN_TS_SDAT1_C___3 = 1015, + FN_STP_ISD_1_C___3 = 1016, + FN_RIF1_D1_B___3 = 1017, + FN_ADICHS0___3 = 1018, + FN_IP13_27_24___3 = 1019, + FN_HRTS0_N___3 = 1020, + FN_TX2_B___3 = 1021, + FN_MSIOF1_SS1_D___3 = 1022, + FN_SSI_WS9_A___3 = 1023, + FN_STP_IVCXO27_0_D___3 = 1024, + FN_BPFCLK_A___3 = 1025, + FN_AUDIO_CLKOUT2_A___3 = 1026, + FN_IP14_27_24___3 = 1027, + FN_SSI_WS01239___3 = 1028, + FN_MSIOF1_SS1_F___3 = 1029, + FN_IP15_27_24___3 = 1030, + FN_SSI_WS4___3 = 1031, + FN_HTX2_A___3 = 1032, + FN_MSIOF1_SYNC_A___3 = 1033, + FN_TS_SDEN0_A___3 = 1034, + FN_STP_ISEN_0_A___3 = 1035, + FN_RIF0_SYNC_A___3 = 1036, + FN_RIF2_SYNC_A___3 = 1037, + FN_IP12_31_28___3 = 1038, + FN_SCK2___3 = 1039, + FN_SCIF_CLK_B___4 = 1040, + FN_MSIOF1_SCK_B___3 = 1041, + FN_TS_SCK1_C___3 = 1042, + FN_STP_ISCLK_1_C___3 = 1043, + FN_RIF1_CLK_B___3 = 1044, + FN_ADICLK___3 = 1045, + FN_IP13_31_28___3 = 1046, + FN_MSIOF0_SYNC___4 = 1047, + FN_AUDIO_CLKOUT_A___3 = 1048, + FN_TX5_B___3 = 1049, + FN_BPFCLK_D___3 = 1050, + FN_IP14_31_28___3 = 1051, + FN_SSI_SDATA0___3 = 1052, + FN_MSIOF1_SS2_F___3 = 1053, + FN_IP15_31_28___3 = 1054, + FN_SSI_SDATA4___3 = 1055, + FN_HSCK2_A___3 = 1056, + FN_MSIOF1_RXD_A___3 = 1057, + FN_TS_SPSYNC0_A___3 = 1058, + FN_STP_ISSYNC_0_A___3 = 1059, + FN_RIF0_D0_A___3 = 1060, + FN_RIF2_D1_A___3 = 1061, + FN_IP16_3_0___3 = 1062, + FN_SSI_SCK6___3 = 1063, + FN_SIM0_RST_D___3 = 1064, + FN_IP17_3_0___3 = 1065, + FN_AUDIO_CLKA_A___3 = 1066, + FN_IP18_3_0___3 = 1067, + FN_GP6_30___2 = 1068, + FN_AUDIO_CLKOUT2_B___3 = 1069, + FN_SSI_SCK9_B___3 = 1070, + FN_TS_SDEN0_E___3 = 1071, + FN_STP_ISEN_0_E___3 = 1072, + FN_RIF2_D0_B___3 = 1073, + FN_TPU0TO2___4 = 1074, + FN_FMCLK_C___3 = 1075, + FN_FMCLK_D___3 = 1076, + FN_IP16_7_4___3 = 1077, + FN_SSI_WS6___3 = 1078, + FN_SIM0_D_D___3 = 1079, + FN_IP17_7_4___3 = 1080, + FN_AUDIO_CLKB_B___3 = 1081, + FN_SCIF_CLK_A___4 = 1082, + FN_STP_IVCXO27_1_D___3 = 1083, + FN_REMOCON_A___3 = 1084, + FN_TCLK1_A___4 = 1085, + FN_IP18_7_4___3 = 1086, + FN_GP6_31___2 = 1087, + FN_AUDIO_CLKOUT3_B___3 = 1088, + FN_SSI_WS9_B___3 = 1089, + FN_TS_SPSYNC0_E___3 = 1090, + FN_STP_ISSYNC_0_E___3 = 1091, + FN_RIF2_D1_B___3 = 1092, + FN_TPU0TO3___4 = 1093, + FN_FMIN_C___3 = 1094, + FN_FMIN_D___3 = 1095, + FN_IP16_11_8___3 = 1096, + FN_SSI_SDATA6___3 = 1097, + FN_SIM0_CLK_D___3 = 1098, + FN_SATA_DEVSLP_A___2 = 1099, + FN_IP17_11_8___3 = 1100, + FN_USB0_PWEN___3 = 1101, + FN_SIM0_RST_C___3 = 1102, + FN_TS_SCK1_D___3 = 1103, + FN_STP_ISCLK_1_D___3 = 1104, + FN_BPFCLK_B___3 = 1105, + FN_RIF3_CLK_B___3 = 1106, + FN_HSCK2_C___3 = 1107, + FN_IP16_15_12___3 = 1108, + FN_SSI_SCK78___3 = 1109, + FN_HRX2_B___3 = 1110, + FN_MSIOF1_SCK_C___3 = 1111, + FN_TS_SCK1_A___3 = 1112, + FN_STP_ISCLK_1_A___3 = 1113, + FN_RIF1_CLK_A___3 = 1114, + FN_RIF3_CLK_A___3 = 1115, + FN_IP17_15_12___3 = 1116, + FN_USB0_OVC___3 = 1117, + FN_SIM0_D_C___3 = 1118, + FN_TS_SDAT1_D___3 = 1119, + FN_STP_ISD_1_D___3 = 1120, + FN_RIF3_SYNC_B___3 = 1121, + FN_HRX2_C___3 = 1122, + FN_IP16_19_16___3 = 1123, + FN_SSI_WS78___3 = 1124, + FN_HTX2_B___3 = 1125, + FN_MSIOF1_SYNC_C___3 = 1126, + FN_TS_SDAT1_A___3 = 1127, + FN_STP_ISD_1_A___3 = 1128, + FN_RIF1_SYNC_A___3 = 1129, + FN_RIF3_SYNC_A___3 = 1130, + FN_IP17_19_16___3 = 1131, + FN_USB1_PWEN___3 = 1132, + FN_SIM0_CLK_C___3 = 1133, + FN_SSI_SCK1_A___3 = 1134, + FN_TS_SCK0_E___3 = 1135, + FN_STP_ISCLK_0_E___3 = 1136, + FN_FMCLK_B___3 = 1137, + FN_RIF2_CLK_B___3 = 1138, + FN_SPEEDIN_A___4 = 1139, + FN_HTX2_C___3 = 1140, + FN_IP16_23_20___3 = 1141, + FN_SSI_SDATA7___3 = 1142, + FN_HCTS2_N_B___3 = 1143, + FN_MSIOF1_RXD_C___3 = 1144, + FN_TS_SDEN1_A___3 = 1145, + FN_STP_ISEN_1_A___3 = 1146, + FN_RIF1_D0_A___3 = 1147, + FN_RIF3_D0_A___3 = 1148, + FN_TCLK2_A___4 = 1149, + FN_IP17_23_20___3 = 1150, + FN_USB1_OVC___3 = 1151, + FN_MSIOF1_SS2_C___3 = 1152, + FN_SSI_WS1_A___3 = 1153, + FN_TS_SDAT0_E___3 = 1154, + FN_STP_ISD_0_E___3 = 1155, + FN_FMIN_B___3 = 1156, + FN_RIF2_SYNC_B___3 = 1157, + FN_REMOCON_B___3 = 1158, + FN_HCTS2_N_C___3 = 1159, + FN_IP16_27_24___3 = 1160, + FN_SSI_SDATA8___3 = 1161, + FN_HRTS2_N_B___3 = 1162, + FN_MSIOF1_TXD_C___3 = 1163, + FN_TS_SPSYNC1_A___3 = 1164, + FN_STP_ISSYNC_1_A___3 = 1165, + FN_RIF1_D1_A___3 = 1166, + FN_RIF3_D1_A___3 = 1167, + FN_IP17_27_24___3 = 1168, + FN_USB30_PWEN___3 = 1169, + FN_AUDIO_CLKOUT_B___3 = 1170, + FN_SSI_SCK2_B___3 = 1171, + FN_TS_SDEN1_D___3 = 1172, + FN_STP_ISEN_1_D___3 = 1173, + FN_STP_OPWM_0_E___3 = 1174, + FN_RIF3_D0_B___3 = 1175, + FN_TCLK2_B___4 = 1176, + FN_TPU0TO0___4 = 1177, + FN_BPFCLK_C___3 = 1178, + FN_HRTS2_N_C___3 = 1179, + FN_IP16_31_28___3 = 1180, + FN_SSI_SDATA9_A___3 = 1181, + FN_HSCK2_B___3 = 1182, + FN_MSIOF1_SS1_C___3 = 1183, + FN_HSCK1_A___3 = 1184, + FN_SSI_WS1_B___3 = 1185, + FN_SCK1___4 = 1186, + FN_STP_IVCXO27_1_A___3 = 1187, + FN_SCK5_A___3 = 1188, + FN_IP17_31_28___3 = 1189, + FN_USB30_OVC___3 = 1190, + FN_AUDIO_CLKOUT1_B___3 = 1191, + FN_SSI_WS2_B___3 = 1192, + FN_TS_SPSYNC1_D___3 = 1193, + FN_STP_ISSYNC_1_D___3 = 1194, + FN_STP_IVCXO27_0_E___3 = 1195, + FN_RIF3_D1_B___3 = 1196, + FN_FSO_TOE_N___4 = 1197, + FN_TPU0TO1___4 = 1198, + FN_SEL_MSIOF3_0___3 = 1199, + FN_SEL_MSIOF3_1___3 = 1200, + FN_SEL_MSIOF3_2___3 = 1201, + FN_SEL_MSIOF3_3___3 = 1202, + FN_SEL_MSIOF3_4___3 = 1203, + FN_SEL_TSIF1_0___3 = 1204, + FN_SEL_TSIF1_1___3 = 1205, + FN_SEL_TSIF1_2___3 = 1206, + FN_SEL_TSIF1_3___3 = 1207, + FN_I2C_SEL_5_0___3 = 1208, + FN_I2C_SEL_5_1___3 = 1209, + FN_I2C_SEL_3_0___3 = 1210, + FN_I2C_SEL_3_1___3 = 1211, + FN_SEL_TSIF0_0___3 = 1212, + FN_SEL_TSIF0_1___3 = 1213, + FN_SEL_TSIF0_2___3 = 1214, + FN_SEL_TSIF0_3___3 = 1215, + FN_SEL_TSIF0_4___3 = 1216, + FN_I2C_SEL_0_0___3 = 1217, + FN_I2C_SEL_0_1___3 = 1218, + FN_SEL_MSIOF2_0___3 = 1219, + FN_SEL_MSIOF2_1___3 = 1220, + FN_SEL_MSIOF2_2___3 = 1221, + FN_SEL_MSIOF2_3___3 = 1222, + FN_SEL_FM_0___3 = 1223, + FN_SEL_FM_1___3 = 1224, + FN_SEL_FM_2___3 = 1225, + FN_SEL_FM_3___3 = 1226, + FN_SEL_MSIOF1_0___3 = 1227, + FN_SEL_MSIOF1_1___3 = 1228, + FN_SEL_MSIOF1_2___3 = 1229, + FN_SEL_MSIOF1_3___3 = 1230, + FN_SEL_MSIOF1_4___3 = 1231, + FN_SEL_MSIOF1_5___3 = 1232, + FN_SEL_MSIOF1_6___3 = 1233, + FN_SEL_TIMER_TMU_0___2 = 1234, + FN_SEL_TIMER_TMU_1___2 = 1235, + FN_SEL_SCIF5_0___3 = 1236, + FN_SEL_SCIF5_1___3 = 1237, + FN_SEL_SSP1_1_0___3 = 1238, + FN_SEL_SSP1_1_1___3 = 1239, + FN_SEL_SSP1_1_2___3 = 1240, + FN_SEL_SSP1_1_3___3 = 1241, + FN_SEL_I2C6_0___3 = 1242, + FN_SEL_I2C6_1___3 = 1243, + FN_SEL_I2C6_2___3 = 1244, + FN_SEL_LBSC_0___3 = 1245, + FN_SEL_LBSC_1___3 = 1246, + FN_SEL_SSP1_0_0___3 = 1247, + FN_SEL_SSP1_0_1___3 = 1248, + FN_SEL_SSP1_0_2___3 = 1249, + FN_SEL_SSP1_0_3___3 = 1250, + FN_SEL_SSP1_0_4___3 = 1251, + FN_SEL_IEBUS_0___3 = 1252, + FN_SEL_IEBUS_1___3 = 1253, + FN_SEL_NDF_0___2 = 1254, + FN_SEL_NDF_1___2 = 1255, + FN_SEL_I2C2_0___3 = 1256, + FN_SEL_I2C2_1___3 = 1257, + FN_SEL_SSI2_0___3 = 1258, + FN_SEL_SSI2_1___3 = 1259, + FN_SEL_I2C1_0___3 = 1260, + FN_SEL_I2C1_1___3 = 1261, + FN_SEL_SSI1_0___3 = 1262, + FN_SEL_SSI1_1___3 = 1263, + FN_SEL_SSI9_0___3 = 1264, + FN_SEL_SSI9_1___3 = 1265, + FN_SEL_HSCIF4_0___3 = 1266, + FN_SEL_HSCIF4_1___3 = 1267, + FN_SEL_SPEED_PULSE_0___3 = 1268, + FN_SEL_SPEED_PULSE_1___3 = 1269, + FN_SEL_TIMER_TMU2_0___3 = 1270, + FN_SEL_TIMER_TMU2_1___3 = 1271, + FN_SEL_HSCIF3_0___3 = 1272, + FN_SEL_HSCIF3_1___3 = 1273, + FN_SEL_HSCIF3_2___3 = 1274, + FN_SEL_HSCIF3_3___3 = 1275, + FN_SEL_SIMCARD_0___3 = 1276, + FN_SEL_SIMCARD_1___3 = 1277, + FN_SEL_SIMCARD_2___3 = 1278, + FN_SEL_SIMCARD_3___3 = 1279, + FN_SEL_ADGB_0___3 = 1280, + FN_SEL_ADGB_1___3 = 1281, + FN_SEL_ADGC_0___3 = 1282, + FN_SEL_ADGC_1___3 = 1283, + FN_SEL_HSCIF1_0___3 = 1284, + FN_SEL_HSCIF1_1___3 = 1285, + FN_SEL_SDHI2_0___3 = 1286, + FN_SEL_SDHI2_1___3 = 1287, + FN_SEL_SCIF4_0___3 = 1288, + FN_SEL_SCIF4_1___3 = 1289, + FN_SEL_SCIF4_2___3 = 1290, + FN_SEL_HSCIF2_0___3 = 1291, + FN_SEL_HSCIF2_1___3 = 1292, + FN_SEL_HSCIF2_2___3 = 1293, + FN_SEL_SCIF3_0___3 = 1294, + FN_SEL_SCIF3_1___3 = 1295, + FN_SEL_ETHERAVB_0___3 = 1296, + FN_SEL_ETHERAVB_1___3 = 1297, + FN_SEL_SCIF2_0___3 = 1298, + FN_SEL_SCIF2_1___3 = 1299, + FN_SEL_DRIF3_0___3 = 1300, + FN_SEL_DRIF3_1___3 = 1301, + FN_SEL_SCIF1_0___4 = 1302, + FN_SEL_SCIF1_1___4 = 1303, + FN_SEL_DRIF2_0___3 = 1304, + FN_SEL_DRIF2_1___3 = 1305, + FN_SEL_SCIF_0___3 = 1306, + FN_SEL_SCIF_1___3 = 1307, + FN_SEL_DRIF1_0___3 = 1308, + FN_SEL_DRIF1_1___3 = 1309, + FN_SEL_DRIF1_2___3 = 1310, + FN_SEL_REMOCON_0___3 = 1311, + FN_SEL_REMOCON_1___3 = 1312, + FN_SEL_DRIF0_0___3 = 1313, + FN_SEL_DRIF0_1___3 = 1314, + FN_SEL_DRIF0_2___3 = 1315, + FN_SEL_RCAN0_0___3 = 1316, + FN_SEL_RCAN0_1___3 = 1317, + FN_SEL_CANFD0_0___4 = 1318, + FN_SEL_CANFD0_1___4 = 1319, + FN_SEL_PWM6_0___3 = 1320, + FN_SEL_PWM6_1___3 = 1321, + FN_SEL_ADGA_0___3 = 1322, + FN_SEL_ADGA_1___3 = 1323, + FN_SEL_ADGA_2___3 = 1324, + FN_SEL_ADGA_3___3 = 1325, + FN_SEL_PWM5_0___3 = 1326, + FN_SEL_PWM5_1___3 = 1327, + FN_SEL_PWM4_0___4 = 1328, + FN_SEL_PWM4_1___4 = 1329, + FN_SEL_PWM3_0___4 = 1330, + FN_SEL_PWM3_1___4 = 1331, + FN_SEL_PWM2_0___4 = 1332, + FN_SEL_PWM2_1___4 = 1333, + FN_SEL_PWM1_0___4 = 1334, + FN_SEL_PWM1_1___4 = 1335, + FN_SEL_VIN4_0___3 = 1336, + FN_SEL_VIN4_1___3 = 1337, + PINMUX_FUNCTION_END___4 = 1338, + PINMUX_MARK_BEGIN___4 = 1339, + CLKOUT_MARK___4 = 1340, + MSIOF0_RXD_MARK___4 = 1341, + MSIOF0_TXD_MARK___4 = 1342, + MSIOF0_SCK_MARK___4 = 1343, + SSI_SDATA5_MARK___3 = 1344, + SSI_WS5_MARK___3 = 1345, + SSI_SCK5_MARK___3 = 1346, + GP7_03_MARK___3 = 1347, + GP7_02_MARK___3 = 1348, + AVS2_MARK___3 = 1349, + AVS1_MARK___3 = 1350, + IP0_3_0_MARK___4 = 1351, + AVB_MDC_MARK___4 = 1352, + MSIOF2_SS2_C_MARK___3 = 1353, + IP1_3_0_MARK___4 = 1354, + IRQ2_MARK___4 = 1355, + QCPV_QDE_MARK___3 = 1356, + DU_EXODDF_DU_ODDF_DISP_CDE_MARK___4 = 1357, + VI4_DATA2_B_MARK___3 = 1358, + MSIOF3_SYNC_E_MARK___3 = 1359, + PWM3_B_MARK___4 = 1360, + IP2_3_0_MARK___4 = 1361, + A1_MARK___4 = 1362, + LCDOUT17_MARK___3 = 1363, + MSIOF3_TXD_B_MARK___3 = 1364, + VI4_DATA9_MARK___3 = 1365, + DU_DB1_MARK___4 = 1366, + PWM4_A_MARK___4 = 1367, + IP3_3_0_MARK___4 = 1368, + A9_MARK___4 = 1369, + MSIOF2_SCK_A_MARK___3 = 1370, + CTS4_N_B_MARK___3 = 1371, + VI5_VSYNC_N_MARK___3 = 1372, + IP0_7_4_MARK___4 = 1373, + AVB_MAGIC_MARK___4 = 1374, + MSIOF2_SS1_C_MARK___3 = 1375, + SCK4_A_MARK___3 = 1376, + IP1_7_4_MARK___4 = 1377, + IRQ3_MARK___4 = 1378, + QSTVB_QVE_MARK___3 = 1379, + DU_DOTCLKOUT1_MARK___3 = 1380, + VI4_DATA3_B_MARK___3 = 1381, + MSIOF3_SCK_E_MARK___3 = 1382, + PWM4_B_MARK___4 = 1383, + IP2_7_4_MARK___4 = 1384, + A2_MARK___4 = 1385, + LCDOUT18_MARK___3 = 1386, + MSIOF3_SCK_B_MARK___3 = 1387, + VI4_DATA10_MARK___3 = 1388, + DU_DB2_MARK___4 = 1389, + PWM5_A_MARK___3 = 1390, + IP3_7_4_MARK___4 = 1391, + A10_MARK___4 = 1392, + MSIOF2_RXD_A_MARK___3 = 1393, + RTS4_N_B_MARK___3 = 1394, + VI5_HSYNC_N_MARK___3 = 1395, + IP0_11_8_MARK___4 = 1396, + AVB_PHY_INT_MARK___4 = 1397, + MSIOF2_SYNC_C_MARK___3 = 1398, + RX4_A_MARK___3 = 1399, + IP1_11_8_MARK___4 = 1400, + IRQ4_MARK___4 = 1401, + QSTH_QHS_MARK___3 = 1402, + DU_EXHSYNC_DU_HSYNC_MARK___4 = 1403, + VI4_DATA4_B_MARK___3 = 1404, + MSIOF3_RXD_E_MARK___3 = 1405, + PWM5_B_MARK___3 = 1406, + IP2_11_8_MARK___4 = 1407, + A3_MARK___4 = 1408, + LCDOUT19_MARK___3 = 1409, + MSIOF3_RXD_B_MARK___3 = 1410, + VI4_DATA11_MARK___3 = 1411, + DU_DB3_MARK___4 = 1412, + PWM6_A_MARK___3 = 1413, + IP3_11_8_MARK___4 = 1414, + A11_MARK___4 = 1415, + TX3_B_MARK___3 = 1416, + MSIOF2_TXD_A_MARK___3 = 1417, + HTX4_B_MARK___3 = 1418, + HSCK4_MARK___3 = 1419, + VI5_FIELD_MARK___3 = 1420, + SCL6_A_MARK___3 = 1421, + AVB_AVTP_CAPTURE_B_MARK___3 = 1422, + PWM2_B_MARK___4 = 1423, + IP0_15_12_MARK___4 = 1424, + AVB_LINK_MARK___4 = 1425, + MSIOF2_SCK_C_MARK___3 = 1426, + TX4_A_MARK___3 = 1427, + IP1_15_12_MARK___4 = 1428, + IRQ5_MARK___4 = 1429, + QSTB_QHE_MARK___3 = 1430, + DU_EXVSYNC_DU_VSYNC_MARK___4 = 1431, + VI4_DATA5_B_MARK___3 = 1432, + FSCLKST2_N_B_MARK___2 = 1433, + MSIOF3_TXD_E_MARK___3 = 1434, + PWM6_B_MARK___3 = 1435, + IP2_15_12_MARK___4 = 1436, + A4_MARK___4 = 1437, + LCDOUT20_MARK___3 = 1438, + MSIOF3_SS1_B_MARK___3 = 1439, + VI4_DATA12_MARK___3 = 1440, + VI5_DATA12_MARK___3 = 1441, + DU_DB4_MARK___4 = 1442, + IP3_15_12_MARK___4 = 1443, + A12_MARK___4 = 1444, + LCDOUT12_MARK___3 = 1445, + MSIOF3_SCK_C_MARK___3 = 1446, + HRX4_A_MARK___3 = 1447, + VI5_DATA8_MARK___3 = 1448, + DU_DG4_MARK___4 = 1449, + IP0_19_16_MARK___4 = 1450, + AVB_AVTP_MATCH_A_MARK___3 = 1451, + MSIOF2_RXD_C_MARK___3 = 1452, + CTS4_N_A_MARK___3 = 1453, + FSCLKST2_N_A_MARK___2 = 1454, + IP1_19_16_MARK___4 = 1455, + PWM0_MARK___3 = 1456, + AVB_AVTP_PPS_MARK___4 = 1457, + VI4_DATA6_B_MARK___3 = 1458, + IECLK_B_MARK___3 = 1459, + IP2_19_16_MARK___4 = 1460, + A5_MARK___4 = 1461, + LCDOUT21_MARK___3 = 1462, + MSIOF3_SS2_B_MARK___3 = 1463, + SCK4_B_MARK___3 = 1464, + VI4_DATA13_MARK___3 = 1465, + VI5_DATA13_MARK___3 = 1466, + DU_DB5_MARK___4 = 1467, + IP3_19_16_MARK___4 = 1468, + A13_MARK___4 = 1469, + LCDOUT13_MARK___3 = 1470, + MSIOF3_SYNC_C_MARK___3 = 1471, + HTX4_A_MARK___3 = 1472, + VI5_DATA9_MARK___3 = 1473, + DU_DG5_MARK___4 = 1474, + IP0_23_20_MARK___4 = 1475, + AVB_AVTP_CAPTURE_A_MARK___3 = 1476, + MSIOF2_TXD_C_MARK___3 = 1477, + RTS4_N_A_MARK___3 = 1478, + IP1_23_20_MARK___4 = 1479, + PWM1_A_MARK___4 = 1480, + HRX3_D_MARK___3 = 1481, + VI4_DATA7_B_MARK___3 = 1482, + IERX_B_MARK___3 = 1483, + IP2_23_20_MARK___4 = 1484, + A6_MARK___4 = 1485, + LCDOUT22_MARK___3 = 1486, + MSIOF2_SS1_A_MARK___3 = 1487, + RX4_B_MARK___3 = 1488, + VI4_DATA14_MARK___3 = 1489, + VI5_DATA14_MARK___3 = 1490, + DU_DB6_MARK___4 = 1491, + IP3_23_20_MARK___4 = 1492, + A14_MARK___4 = 1493, + LCDOUT14_MARK___3 = 1494, + MSIOF3_RXD_C_MARK___3 = 1495, + HCTS4_N_MARK___3 = 1496, + VI5_DATA10_MARK___3 = 1497, + DU_DG6_MARK___4 = 1498, + IP0_27_24_MARK___4 = 1499, + IRQ0_MARK___4 = 1500, + QPOLB_MARK___3 = 1501, + DU_CDE_MARK___4 = 1502, + VI4_DATA0_B_MARK___3 = 1503, + CAN0_TX_B_MARK___3 = 1504, + CANFD0_TX_B_MARK___4 = 1505, + MSIOF3_SS2_E_MARK___3 = 1506, + IP1_27_24_MARK___4 = 1507, + PWM2_A_MARK___4 = 1508, + HTX3_D_MARK___3 = 1509, + IETX_B_MARK___3 = 1510, + IP2_27_24_MARK___4 = 1511, + A7_MARK___4 = 1512, + LCDOUT23_MARK___3 = 1513, + MSIOF2_SS2_A_MARK___3 = 1514, + TX4_B_MARK___3 = 1515, + VI4_DATA15_MARK___3 = 1516, + VI5_DATA15_MARK___3 = 1517, + DU_DB7_MARK___4 = 1518, + IP3_27_24_MARK___4 = 1519, + A15_MARK___4 = 1520, + LCDOUT15_MARK___3 = 1521, + MSIOF3_TXD_C_MARK___3 = 1522, + HRTS4_N_MARK___3 = 1523, + VI5_DATA11_MARK___3 = 1524, + DU_DG7_MARK___4 = 1525, + IP0_31_28_MARK___4 = 1526, + IRQ1_MARK___4 = 1527, + QPOLA_MARK___3 = 1528, + DU_DISP_MARK___4 = 1529, + VI4_DATA1_B_MARK___3 = 1530, + CAN0_RX_B_MARK___3 = 1531, + CANFD0_RX_B_MARK___4 = 1532, + MSIOF3_SS1_E_MARK___3 = 1533, + IP1_31_28_MARK___4 = 1534, + A0_MARK___4 = 1535, + LCDOUT16_MARK___3 = 1536, + MSIOF3_SYNC_B_MARK___3 = 1537, + VI4_DATA8_MARK___3 = 1538, + DU_DB0_MARK___4 = 1539, + PWM3_A_MARK___4 = 1540, + IP2_31_28_MARK___4 = 1541, + A8_MARK___4 = 1542, + RX3_B_MARK___3 = 1543, + MSIOF2_SYNC_A_MARK___3 = 1544, + HRX4_B_MARK___3 = 1545, + SDA6_A_MARK___3 = 1546, + AVB_AVTP_MATCH_B_MARK___3 = 1547, + PWM1_B_MARK___4 = 1548, + IP3_31_28_MARK___4 = 1549, + A16_MARK___4 = 1550, + LCDOUT8_MARK___3 = 1551, + VI4_FIELD_MARK___3 = 1552, + DU_DG0_MARK___4 = 1553, + IP4_3_0_MARK___4 = 1554, + A17_MARK___4 = 1555, + LCDOUT9_MARK___3 = 1556, + VI4_VSYNC_N_MARK___3 = 1557, + DU_DG1_MARK___4 = 1558, + IP5_3_0_MARK___4 = 1559, + WE0_N_MARK___4 = 1560, + MSIOF3_TXD_D_MARK___3 = 1561, + CTS3_N_MARK___4 = 1562, + HCTS3_N_MARK___4 = 1563, + SCL6_B_MARK___3 = 1564, + CAN_CLK_MARK___3 = 1565, + IECLK_A_MARK___3 = 1566, + IP6_3_0_MARK___4 = 1567, + D5_MARK___4 = 1568, + MSIOF2_SYNC_B_MARK___3 = 1569, + VI4_DATA21_MARK___3 = 1570, + VI5_DATA5_MARK___3 = 1571, + IP7_3_0_MARK___4 = 1572, + D13_MARK___4 = 1573, + LCDOUT5_MARK___3 = 1574, + MSIOF2_SS2_D_MARK___3 = 1575, + TX4_C_MARK___3 = 1576, + VI4_DATA5_A_MARK___3 = 1577, + DU_DR5_MARK___4 = 1578, + IP4_7_4_MARK___4 = 1579, + A18_MARK___4 = 1580, + LCDOUT10_MARK___3 = 1581, + VI4_HSYNC_N_MARK___3 = 1582, + DU_DG2_MARK___4 = 1583, + IP5_7_4_MARK___4 = 1584, + WE1_N_MARK___4 = 1585, + MSIOF3_SS1_D_MARK___3 = 1586, + RTS3_N_MARK___4 = 1587, + HRTS3_N_MARK___4 = 1588, + SDA6_B_MARK___3 = 1589, + CAN1_RX_MARK___3 = 1590, + CANFD1_RX_MARK___4 = 1591, + IERX_A_MARK___3 = 1592, + IP6_7_4_MARK___4 = 1593, + D6_MARK___4 = 1594, + MSIOF2_RXD_B_MARK___3 = 1595, + VI4_DATA22_MARK___3 = 1596, + VI5_DATA6_MARK___3 = 1597, + IP7_7_4_MARK___4 = 1598, + D14_MARK___4 = 1599, + LCDOUT6_MARK___3 = 1600, + MSIOF3_SS1_A_MARK___3 = 1601, + HRX3_C_MARK___3 = 1602, + VI4_DATA6_A_MARK___3 = 1603, + DU_DR6_MARK___4 = 1604, + SCL6_C_MARK___3 = 1605, + IP4_11_8_MARK___4 = 1606, + A19_MARK___4 = 1607, + LCDOUT11_MARK___3 = 1608, + VI4_CLKENB_MARK___3 = 1609, + DU_DG3_MARK___4 = 1610, + IP5_11_8_MARK___4 = 1611, + EX_WAIT0_A_MARK___3 = 1612, + QCLK_MARK___3 = 1613, + VI4_CLK_MARK___3 = 1614, + DU_DOTCLKOUT0_MARK___3 = 1615, + IP6_11_8_MARK___4 = 1616, + D7_MARK___4 = 1617, + MSIOF2_TXD_B_MARK___3 = 1618, + VI4_DATA23_MARK___3 = 1619, + VI5_DATA7_MARK___3 = 1620, + IP7_11_8_MARK___4 = 1621, + D15_MARK___4 = 1622, + LCDOUT7_MARK___3 = 1623, + MSIOF3_SS2_A_MARK___3 = 1624, + HTX3_C_MARK___3 = 1625, + VI4_DATA7_A_MARK___3 = 1626, + DU_DR7_MARK___4 = 1627, + SDA6_C_MARK___3 = 1628, + IP4_15_12_MARK___4 = 1629, + CS0_N_MARK___4 = 1630, + VI5_CLKENB_MARK___3 = 1631, + IP5_15_12_MARK___4 = 1632, + D0_MARK___4 = 1633, + MSIOF2_SS1_B_MARK___3 = 1634, + MSIOF3_SCK_A_MARK___3 = 1635, + VI4_DATA16_MARK___3 = 1636, + VI5_DATA0_MARK___3 = 1637, + IP6_15_12_MARK___4 = 1638, + D8_MARK___4 = 1639, + LCDOUT0_MARK___3 = 1640, + MSIOF2_SCK_D_MARK___3 = 1641, + SCK4_C_MARK___3 = 1642, + VI4_DATA0_A_MARK___3 = 1643, + DU_DR0_MARK___4 = 1644, + IP4_19_16_MARK___4 = 1645, + CS1_N_MARK___4 = 1646, + VI5_CLK_MARK___3 = 1647, + EX_WAIT0_B_MARK___3 = 1648, + IP5_19_16_MARK___4 = 1649, + D1_MARK___4 = 1650, + MSIOF2_SS2_B_MARK___3 = 1651, + MSIOF3_SYNC_A_MARK___3 = 1652, + VI4_DATA17_MARK___3 = 1653, + VI5_DATA1_MARK___3 = 1654, + IP6_19_16_MARK___4 = 1655, + D9_MARK___4 = 1656, + LCDOUT1_MARK___3 = 1657, + MSIOF2_SYNC_D_MARK___3 = 1658, + VI4_DATA1_A_MARK___3 = 1659, + DU_DR1_MARK___4 = 1660, + IP7_19_16_MARK___4 = 1661, + SD0_CLK_MARK___3 = 1662, + MSIOF1_SCK_E_MARK___3 = 1663, + STP_OPWM_0_B_MARK___3 = 1664, + IP4_23_20_MARK___4 = 1665, + BS_N_MARK___4 = 1666, + QSTVA_QVS_MARK___3 = 1667, + MSIOF3_SCK_D_MARK___3 = 1668, + SCK3_MARK___4 = 1669, + HSCK3_MARK___4 = 1670, + CAN1_TX_MARK___3 = 1671, + CANFD1_TX_MARK___4 = 1672, + IETX_A_MARK___3 = 1673, + IP5_23_20_MARK___4 = 1674, + D2_MARK___4 = 1675, + MSIOF3_RXD_A_MARK___3 = 1676, + VI4_DATA18_MARK___3 = 1677, + VI5_DATA2_MARK___3 = 1678, + IP6_23_20_MARK___4 = 1679, + D10_MARK___4 = 1680, + LCDOUT2_MARK___3 = 1681, + MSIOF2_RXD_D_MARK___3 = 1682, + HRX3_B_MARK___3 = 1683, + VI4_DATA2_A_MARK___3 = 1684, + CTS4_N_C_MARK___3 = 1685, + DU_DR2_MARK___4 = 1686, + IP7_23_20_MARK___4 = 1687, + SD0_CMD_MARK___3 = 1688, + MSIOF1_SYNC_E_MARK___3 = 1689, + STP_IVCXO27_0_B_MARK___3 = 1690, + IP4_27_24_MARK___4 = 1691, + RD_N_MARK___4 = 1692, + MSIOF3_SYNC_D_MARK___3 = 1693, + RX3_A_MARK___3 = 1694, + HRX3_A_MARK___3 = 1695, + CAN0_TX_A_MARK___3 = 1696, + CANFD0_TX_A_MARK___4 = 1697, + IP5_27_24_MARK___4 = 1698, + D3_MARK___4 = 1699, + MSIOF3_TXD_A_MARK___3 = 1700, + VI4_DATA19_MARK___3 = 1701, + VI5_DATA3_MARK___3 = 1702, + IP6_27_24_MARK___4 = 1703, + D11_MARK___4 = 1704, + LCDOUT3_MARK___3 = 1705, + MSIOF2_TXD_D_MARK___3 = 1706, + HTX3_B_MARK___3 = 1707, + VI4_DATA3_A_MARK___3 = 1708, + RTS4_N_C_MARK___3 = 1709, + DU_DR3_MARK___4 = 1710, + IP7_27_24_MARK___4 = 1711, + SD0_DAT0_MARK___3 = 1712, + MSIOF1_RXD_E_MARK___3 = 1713, + TS_SCK0_B_MARK___3 = 1714, + STP_ISCLK_0_B_MARK___3 = 1715, + IP4_31_28_MARK___4 = 1716, + RD_WR_N_MARK___4 = 1717, + MSIOF3_RXD_D_MARK___3 = 1718, + TX3_A_MARK___3 = 1719, + HTX3_A_MARK___3 = 1720, + CAN0_RX_A_MARK___3 = 1721, + CANFD0_RX_A_MARK___4 = 1722, + IP5_31_28_MARK___4 = 1723, + D4_MARK___4 = 1724, + MSIOF2_SCK_B_MARK___3 = 1725, + VI4_DATA20_MARK___3 = 1726, + VI5_DATA4_MARK___3 = 1727, + IP6_31_28_MARK___4 = 1728, + D12_MARK___4 = 1729, + LCDOUT4_MARK___3 = 1730, + MSIOF2_SS1_D_MARK___3 = 1731, + RX4_C_MARK___3 = 1732, + VI4_DATA4_A_MARK___3 = 1733, + DU_DR4_MARK___4 = 1734, + IP7_31_28_MARK___4 = 1735, + SD0_DAT1_MARK___3 = 1736, + MSIOF1_TXD_E_MARK___3 = 1737, + TS_SPSYNC0_B_MARK___3 = 1738, + STP_ISSYNC_0_B_MARK___3 = 1739, + IP8_3_0_MARK___4 = 1740, + SD0_DAT2_MARK___3 = 1741, + MSIOF1_SS1_E_MARK___3 = 1742, + TS_SDAT0_B_MARK___3 = 1743, + STP_ISD_0_B_MARK___3 = 1744, + IP9_3_0_MARK___4 = 1745, + SD2_CLK_MARK___3 = 1746, + NFDATA8_MARK___3 = 1747, + IP10_3_0_MARK___4 = 1748, + SD3_CMD_MARK___3 = 1749, + NFRE_N_MARK___3 = 1750, + IP11_3_0_MARK___3 = 1751, + SD3_DAT7_MARK___3 = 1752, + SD3_WP_MARK___3 = 1753, + NFDATA7_MARK___3 = 1754, + IP8_7_4_MARK___4 = 1755, + SD0_DAT3_MARK___3 = 1756, + MSIOF1_SS2_E_MARK___3 = 1757, + TS_SDEN0_B_MARK___3 = 1758, + STP_ISEN_0_B_MARK___3 = 1759, + IP9_7_4_MARK___4 = 1760, + SD2_CMD_MARK___3 = 1761, + NFDATA9_MARK___3 = 1762, + IP10_7_4_MARK___4 = 1763, + SD3_DAT0_MARK___3 = 1764, + NFDATA0_MARK___3 = 1765, + IP11_7_4_MARK___3 = 1766, + SD3_DS_MARK___3 = 1767, + NFCLE_MARK___3 = 1768, + IP8_11_8_MARK___4 = 1769, + SD1_CLK_MARK___3 = 1770, + MSIOF1_SCK_G_MARK___3 = 1771, + SIM0_CLK_A_MARK___3 = 1772, + IP9_11_8_MARK___4 = 1773, + SD2_DAT0_MARK___3 = 1774, + NFDATA10_MARK___3 = 1775, + IP10_11_8_MARK___4 = 1776, + SD3_DAT1_MARK___3 = 1777, + NFDATA1_MARK___3 = 1778, + IP11_11_8_MARK___3 = 1779, + SD0_CD_MARK___3 = 1780, + NFDATA14_A_MARK___3 = 1781, + SCL2_B_MARK___3 = 1782, + SIM0_RST_A_MARK___3 = 1783, + IP8_15_12_MARK___4 = 1784, + SD1_CMD_MARK___3 = 1785, + MSIOF1_SYNC_G_MARK___3 = 1786, + NFCE_N_B_MARK___3 = 1787, + SIM0_D_A_MARK___3 = 1788, + STP_IVCXO27_1_B_MARK___3 = 1789, + IP9_15_12_MARK___4 = 1790, + SD2_DAT1_MARK___3 = 1791, + NFDATA11_MARK___3 = 1792, + IP10_15_12_MARK___4 = 1793, + SD3_DAT2_MARK___3 = 1794, + NFDATA2_MARK___3 = 1795, + IP11_15_12_MARK___3 = 1796, + SD0_WP_MARK___3 = 1797, + NFDATA15_A_MARK___3 = 1798, + SDA2_B_MARK___3 = 1799, + IP8_19_16_MARK___4 = 1800, + SD1_DAT0_MARK___3 = 1801, + SD2_DAT4_MARK___3 = 1802, + MSIOF1_RXD_G_MARK___3 = 1803, + NFWP_N_B_MARK___3 = 1804, + TS_SCK1_B_MARK___3 = 1805, + STP_ISCLK_1_B_MARK___3 = 1806, + IP9_19_16_MARK___4 = 1807, + SD2_DAT2_MARK___3 = 1808, + NFDATA12_MARK___3 = 1809, + IP10_19_16_MARK___4 = 1810, + SD3_DAT3_MARK___3 = 1811, + NFDATA3_MARK___3 = 1812, + IP11_19_16_MARK___3 = 1813, + SD1_CD_MARK___3 = 1814, + NFRB_N_A_MARK___3 = 1815, + SIM0_CLK_B_MARK___3 = 1816, + IP8_23_20_MARK___4 = 1817, + SD1_DAT1_MARK___3 = 1818, + SD2_DAT5_MARK___3 = 1819, + MSIOF1_TXD_G_MARK___3 = 1820, + NFDATA14_B_MARK___3 = 1821, + TS_SPSYNC1_B_MARK___3 = 1822, + STP_ISSYNC_1_B_MARK___3 = 1823, + IP9_23_20_MARK___4 = 1824, + SD2_DAT3_MARK___3 = 1825, + NFDATA13_MARK___3 = 1826, + IP10_23_20_MARK___3 = 1827, + SD3_DAT4_MARK___3 = 1828, + SD2_CD_A_MARK___3 = 1829, + NFDATA4_MARK___3 = 1830, + IP11_23_20_MARK___3 = 1831, + SD1_WP_MARK___3 = 1832, + NFCE_N_A_MARK___3 = 1833, + SIM0_D_B_MARK___3 = 1834, + IP8_27_24_MARK___4 = 1835, + SD1_DAT2_MARK___3 = 1836, + SD2_DAT6_MARK___3 = 1837, + MSIOF1_SS1_G_MARK___3 = 1838, + NFDATA15_B_MARK___3 = 1839, + TS_SDAT1_B_MARK___3 = 1840, + STP_ISD_1_B_MARK___3 = 1841, + IP9_27_24_MARK___4 = 1842, + SD2_DS_MARK___3 = 1843, + NFALE_MARK___3 = 1844, + SATA_DEVSLP_B_MARK___2 = 1845, + IP10_27_24_MARK___3 = 1846, + SD3_DAT5_MARK___3 = 1847, + SD2_WP_A_MARK___3 = 1848, + NFDATA5_MARK___3 = 1849, + IP11_27_24_MARK___3 = 1850, + SCK0_MARK___4 = 1851, + HSCK1_B_MARK___3 = 1852, + MSIOF1_SS2_B_MARK___3 = 1853, + AUDIO_CLKC_B_MARK___3 = 1854, + SDA2_A_MARK___3 = 1855, + SIM0_RST_B_MARK___3 = 1856, + STP_OPWM_0_C_MARK___3 = 1857, + RIF0_CLK_B_MARK___3 = 1858, + ADICHS2_MARK___3 = 1859, + SCK5_B_MARK___3 = 1860, + IP8_31_28_MARK___4 = 1861, + SD1_DAT3_MARK___3 = 1862, + SD2_DAT7_MARK___3 = 1863, + MSIOF1_SS2_G_MARK___3 = 1864, + NFRB_N_B_MARK___3 = 1865, + TS_SDEN1_B_MARK___3 = 1866, + STP_ISEN_1_B_MARK___3 = 1867, + IP9_31_28_MARK___4 = 1868, + SD3_CLK_MARK___3 = 1869, + NFWE_N_MARK___3 = 1870, + IP10_31_28_MARK___3 = 1871, + SD3_DAT6_MARK___3 = 1872, + SD3_CD_MARK___3 = 1873, + NFDATA6_MARK___3 = 1874, + IP11_31_28_MARK___3 = 1875, + RX0_MARK___4 = 1876, + HRX1_B_MARK___3 = 1877, + TS_SCK0_C_MARK___3 = 1878, + STP_ISCLK_0_C_MARK___3 = 1879, + RIF0_D0_B_MARK___3 = 1880, + IP12_3_0_MARK___3 = 1881, + TX0_MARK___4 = 1882, + HTX1_B_MARK___3 = 1883, + TS_SPSYNC0_C_MARK___3 = 1884, + STP_ISSYNC_0_C_MARK___3 = 1885, + RIF0_D1_B_MARK___3 = 1886, + IP13_3_0_MARK___3 = 1887, + TX2_A_MARK___3 = 1888, + SD2_CD_B_MARK___3 = 1889, + SCL1_A_MARK___3 = 1890, + FMCLK_A_MARK___3 = 1891, + RIF1_D1_C_MARK___3 = 1892, + FSO_CFE_0_N_MARK___4 = 1893, + IP14_3_0_MARK___3 = 1894, + MSIOF0_SS1_MARK___4 = 1895, + RX5_A_MARK___3 = 1896, + NFWP_N_A_MARK___3 = 1897, + AUDIO_CLKA_C_MARK___3 = 1898, + SSI_SCK2_A_MARK___3 = 1899, + STP_IVCXO27_0_C_MARK___3 = 1900, + AUDIO_CLKOUT3_A_MARK___3 = 1901, + TCLK1_B_MARK___4 = 1902, + IP15_3_0_MARK___3 = 1903, + SSI_SDATA1_A_MARK___3 = 1904, + IP12_7_4_MARK___3 = 1905, + CTS0_N_MARK___4 = 1906, + HCTS1_N_B_MARK___3 = 1907, + MSIOF1_SYNC_B_MARK___3 = 1908, + TS_SPSYNC1_C_MARK___3 = 1909, + STP_ISSYNC_1_C_MARK___3 = 1910, + RIF1_SYNC_B_MARK___3 = 1911, + AUDIO_CLKOUT_C_MARK___3 = 1912, + ADICS_SAMP_MARK___3 = 1913, + IP13_7_4_MARK___3 = 1914, + RX2_A_MARK___3 = 1915, + SD2_WP_B_MARK___3 = 1916, + SDA1_A_MARK___3 = 1917, + FMIN_A_MARK___3 = 1918, + RIF1_SYNC_C_MARK___3 = 1919, + FSO_CFE_1_N_MARK___4 = 1920, + IP14_7_4_MARK___3 = 1921, + MSIOF0_SS2_MARK___4 = 1922, + TX5_A_MARK___3 = 1923, + MSIOF1_SS2_D_MARK___3 = 1924, + AUDIO_CLKC_A_MARK___3 = 1925, + SSI_WS2_A_MARK___3 = 1926, + STP_OPWM_0_D_MARK___3 = 1927, + AUDIO_CLKOUT_D_MARK___3 = 1928, + SPEEDIN_B_MARK___4 = 1929, + IP15_7_4_MARK___3 = 1930, + SSI_SDATA2_A_MARK___3 = 1931, + SSI_SCK1_B_MARK___3 = 1932, + IP12_11_8_MARK___3 = 1933, + RTS0_N_MARK___4 = 1934, + HRTS1_N_B_MARK___3 = 1935, + MSIOF1_SS1_B_MARK___3 = 1936, + AUDIO_CLKA_B_MARK___3 = 1937, + SCL2_A_MARK___3 = 1938, + STP_IVCXO27_1_C_MARK___3 = 1939, + RIF0_SYNC_B_MARK___3 = 1940, + ADICHS1_MARK___3 = 1941, + IP13_11_8_MARK___3 = 1942, + HSCK0_MARK___3 = 1943, + MSIOF1_SCK_D_MARK___3 = 1944, + AUDIO_CLKB_A_MARK___3 = 1945, + SSI_SDATA1_B_MARK___3 = 1946, + TS_SCK0_D_MARK___3 = 1947, + STP_ISCLK_0_D_MARK___3 = 1948, + RIF0_CLK_C_MARK___3 = 1949, + RX5_B_MARK___3 = 1950, + IP14_11_8_MARK___3 = 1951, + MLB_CLK_MARK___3 = 1952, + MSIOF1_SCK_F_MARK___3 = 1953, + SCL1_B_MARK___3 = 1954, + IP15_11_8_MARK___3 = 1955, + SSI_SCK349_MARK___3 = 1956, + MSIOF1_SS1_A_MARK___3 = 1957, + STP_OPWM_0_A_MARK___3 = 1958, + IP12_15_12_MARK___3 = 1959, + RX1_A_MARK___4 = 1960, + HRX1_A_MARK___3 = 1961, + TS_SDAT0_C_MARK___3 = 1962, + STP_ISD_0_C_MARK___3 = 1963, + RIF1_CLK_C_MARK___3 = 1964, + IP13_15_12_MARK___3 = 1965, + HRX0_MARK___3 = 1966, + MSIOF1_RXD_D_MARK___3 = 1967, + SSI_SDATA2_B_MARK___3 = 1968, + TS_SDEN0_D_MARK___3 = 1969, + STP_ISEN_0_D_MARK___3 = 1970, + RIF0_D0_C_MARK___3 = 1971, + IP14_15_12_MARK___3 = 1972, + MLB_SIG_MARK___3 = 1973, + RX1_B_MARK___4 = 1974, + MSIOF1_SYNC_F_MARK___3 = 1975, + SDA1_B_MARK___3 = 1976, + IP15_15_12_MARK___3 = 1977, + SSI_WS349_MARK___3 = 1978, + HCTS2_N_A_MARK___3 = 1979, + MSIOF1_SS2_A_MARK___3 = 1980, + STP_IVCXO27_0_A_MARK___3 = 1981, + IP12_19_16_MARK___3 = 1982, + TX1_A_MARK___4 = 1983, + HTX1_A_MARK___3 = 1984, + TS_SDEN0_C_MARK___3 = 1985, + STP_ISEN_0_C_MARK___3 = 1986, + RIF1_D0_C_MARK___3 = 1987, + IP13_19_16_MARK___3 = 1988, + HTX0_MARK___3 = 1989, + MSIOF1_TXD_D_MARK___3 = 1990, + SSI_SDATA9_B_MARK___3 = 1991, + TS_SDAT0_D_MARK___3 = 1992, + STP_ISD_0_D_MARK___3 = 1993, + RIF0_D1_C_MARK___3 = 1994, + IP14_19_16_MARK___3 = 1995, + MLB_DAT_MARK___3 = 1996, + TX1_B_MARK___4 = 1997, + MSIOF1_RXD_F_MARK___3 = 1998, + IP15_19_16_MARK___3 = 1999, + SSI_SDATA3_MARK___3 = 2000, + HRTS2_N_A_MARK___3 = 2001, + MSIOF1_TXD_A_MARK___3 = 2002, + TS_SCK0_A_MARK___3 = 2003, + STP_ISCLK_0_A_MARK___3 = 2004, + RIF0_D1_A_MARK___3 = 2005, + RIF2_D0_A_MARK___3 = 2006, + IP12_23_20_MARK___3 = 2007, + CTS1_N_MARK___4 = 2008, + HCTS1_N_A_MARK___3 = 2009, + MSIOF1_RXD_B_MARK___3 = 2010, + TS_SDEN1_C_MARK___3 = 2011, + STP_ISEN_1_C_MARK___3 = 2012, + RIF1_D0_B_MARK___3 = 2013, + ADIDATA_MARK___3 = 2014, + IP13_23_20_MARK___3 = 2015, + HCTS0_N_MARK___3 = 2016, + RX2_B_MARK___3 = 2017, + MSIOF1_SYNC_D_MARK___3 = 2018, + SSI_SCK9_A_MARK___3 = 2019, + TS_SPSYNC0_D_MARK___3 = 2020, + STP_ISSYNC_0_D_MARK___3 = 2021, + RIF0_SYNC_C_MARK___3 = 2022, + AUDIO_CLKOUT1_A_MARK___3 = 2023, + IP14_23_20_MARK___3 = 2024, + SSI_SCK01239_MARK___3 = 2025, + MSIOF1_TXD_F_MARK___3 = 2026, + IP15_23_20_MARK___3 = 2027, + SSI_SCK4_MARK___3 = 2028, + HRX2_A_MARK___3 = 2029, + MSIOF1_SCK_A_MARK___3 = 2030, + TS_SDAT0_A_MARK___3 = 2031, + STP_ISD_0_A_MARK___3 = 2032, + RIF0_CLK_A_MARK___3 = 2033, + RIF2_CLK_A_MARK___3 = 2034, + IP12_27_24_MARK___3 = 2035, + RTS1_N_MARK___4 = 2036, + HRTS1_N_A_MARK___3 = 2037, + MSIOF1_TXD_B_MARK___3 = 2038, + TS_SDAT1_C_MARK___3 = 2039, + STP_ISD_1_C_MARK___3 = 2040, + RIF1_D1_B_MARK___3 = 2041, + ADICHS0_MARK___3 = 2042, + IP13_27_24_MARK___3 = 2043, + HRTS0_N_MARK___3 = 2044, + TX2_B_MARK___3 = 2045, + MSIOF1_SS1_D_MARK___3 = 2046, + SSI_WS9_A_MARK___3 = 2047, + STP_IVCXO27_0_D_MARK___3 = 2048, + BPFCLK_A_MARK___3 = 2049, + AUDIO_CLKOUT2_A_MARK___3 = 2050, + IP14_27_24_MARK___3 = 2051, + SSI_WS01239_MARK___3 = 2052, + MSIOF1_SS1_F_MARK___3 = 2053, + IP15_27_24_MARK___3 = 2054, + SSI_WS4_MARK___3 = 2055, + HTX2_A_MARK___3 = 2056, + MSIOF1_SYNC_A_MARK___3 = 2057, + TS_SDEN0_A_MARK___3 = 2058, + STP_ISEN_0_A_MARK___3 = 2059, + RIF0_SYNC_A_MARK___3 = 2060, + RIF2_SYNC_A_MARK___3 = 2061, + IP12_31_28_MARK___3 = 2062, + SCK2_MARK___3 = 2063, + SCIF_CLK_B_MARK___4 = 2064, + MSIOF1_SCK_B_MARK___3 = 2065, + TS_SCK1_C_MARK___3 = 2066, + STP_ISCLK_1_C_MARK___3 = 2067, + RIF1_CLK_B_MARK___3 = 2068, + ADICLK_MARK___3 = 2069, + IP13_31_28_MARK___3 = 2070, + MSIOF0_SYNC_MARK___4 = 2071, + AUDIO_CLKOUT_A_MARK___3 = 2072, + TX5_B_MARK___3 = 2073, + BPFCLK_D_MARK___3 = 2074, + IP14_31_28_MARK___3 = 2075, + SSI_SDATA0_MARK___3 = 2076, + MSIOF1_SS2_F_MARK___3 = 2077, + IP15_31_28_MARK___3 = 2078, + SSI_SDATA4_MARK___3 = 2079, + HSCK2_A_MARK___3 = 2080, + MSIOF1_RXD_A_MARK___3 = 2081, + TS_SPSYNC0_A_MARK___3 = 2082, + STP_ISSYNC_0_A_MARK___3 = 2083, + RIF0_D0_A_MARK___3 = 2084, + RIF2_D1_A_MARK___3 = 2085, + IP16_3_0_MARK___3 = 2086, + SSI_SCK6_MARK___3 = 2087, + SIM0_RST_D_MARK___3 = 2088, + IP17_3_0_MARK___3 = 2089, + AUDIO_CLKA_A_MARK___3 = 2090, + IP18_3_0_MARK___3 = 2091, + GP6_30_MARK___2 = 2092, + AUDIO_CLKOUT2_B_MARK___3 = 2093, + SSI_SCK9_B_MARK___3 = 2094, + TS_SDEN0_E_MARK___3 = 2095, + STP_ISEN_0_E_MARK___3 = 2096, + RIF2_D0_B_MARK___3 = 2097, + TPU0TO2_MARK___4 = 2098, + FMCLK_C_MARK___3 = 2099, + FMCLK_D_MARK___3 = 2100, + IP16_7_4_MARK___3 = 2101, + SSI_WS6_MARK___3 = 2102, + SIM0_D_D_MARK___3 = 2103, + IP17_7_4_MARK___3 = 2104, + AUDIO_CLKB_B_MARK___3 = 2105, + SCIF_CLK_A_MARK___4 = 2106, + STP_IVCXO27_1_D_MARK___3 = 2107, + REMOCON_A_MARK___3 = 2108, + TCLK1_A_MARK___4 = 2109, + IP18_7_4_MARK___3 = 2110, + GP6_31_MARK___2 = 2111, + AUDIO_CLKOUT3_B_MARK___3 = 2112, + SSI_WS9_B_MARK___3 = 2113, + TS_SPSYNC0_E_MARK___3 = 2114, + STP_ISSYNC_0_E_MARK___3 = 2115, + RIF2_D1_B_MARK___3 = 2116, + TPU0TO3_MARK___4 = 2117, + FMIN_C_MARK___3 = 2118, + FMIN_D_MARK___3 = 2119, + IP16_11_8_MARK___3 = 2120, + SSI_SDATA6_MARK___3 = 2121, + SIM0_CLK_D_MARK___3 = 2122, + SATA_DEVSLP_A_MARK___2 = 2123, + IP17_11_8_MARK___3 = 2124, + USB0_PWEN_MARK___3 = 2125, + SIM0_RST_C_MARK___3 = 2126, + TS_SCK1_D_MARK___3 = 2127, + STP_ISCLK_1_D_MARK___3 = 2128, + BPFCLK_B_MARK___3 = 2129, + RIF3_CLK_B_MARK___3 = 2130, + HSCK2_C_MARK___3 = 2131, + IP16_15_12_MARK___3 = 2132, + SSI_SCK78_MARK___3 = 2133, + HRX2_B_MARK___3 = 2134, + MSIOF1_SCK_C_MARK___3 = 2135, + TS_SCK1_A_MARK___3 = 2136, + STP_ISCLK_1_A_MARK___3 = 2137, + RIF1_CLK_A_MARK___3 = 2138, + RIF3_CLK_A_MARK___3 = 2139, + IP17_15_12_MARK___3 = 2140, + USB0_OVC_MARK___3 = 2141, + SIM0_D_C_MARK___3 = 2142, + TS_SDAT1_D_MARK___3 = 2143, + STP_ISD_1_D_MARK___3 = 2144, + RIF3_SYNC_B_MARK___3 = 2145, + HRX2_C_MARK___3 = 2146, + IP16_19_16_MARK___3 = 2147, + SSI_WS78_MARK___3 = 2148, + HTX2_B_MARK___3 = 2149, + MSIOF1_SYNC_C_MARK___3 = 2150, + TS_SDAT1_A_MARK___3 = 2151, + STP_ISD_1_A_MARK___3 = 2152, + RIF1_SYNC_A_MARK___3 = 2153, + RIF3_SYNC_A_MARK___3 = 2154, + IP17_19_16_MARK___3 = 2155, + USB1_PWEN_MARK___3 = 2156, + SIM0_CLK_C_MARK___3 = 2157, + SSI_SCK1_A_MARK___3 = 2158, + TS_SCK0_E_MARK___3 = 2159, + STP_ISCLK_0_E_MARK___3 = 2160, + FMCLK_B_MARK___3 = 2161, + RIF2_CLK_B_MARK___3 = 2162, + SPEEDIN_A_MARK___4 = 2163, + HTX2_C_MARK___3 = 2164, + IP16_23_20_MARK___3 = 2165, + SSI_SDATA7_MARK___3 = 2166, + HCTS2_N_B_MARK___3 = 2167, + MSIOF1_RXD_C_MARK___3 = 2168, + TS_SDEN1_A_MARK___3 = 2169, + STP_ISEN_1_A_MARK___3 = 2170, + RIF1_D0_A_MARK___3 = 2171, + RIF3_D0_A_MARK___3 = 2172, + TCLK2_A_MARK___4 = 2173, + IP17_23_20_MARK___3 = 2174, + USB1_OVC_MARK___3 = 2175, + MSIOF1_SS2_C_MARK___3 = 2176, + SSI_WS1_A_MARK___3 = 2177, + TS_SDAT0_E_MARK___3 = 2178, + STP_ISD_0_E_MARK___3 = 2179, + FMIN_B_MARK___3 = 2180, + RIF2_SYNC_B_MARK___3 = 2181, + REMOCON_B_MARK___3 = 2182, + HCTS2_N_C_MARK___3 = 2183, + IP16_27_24_MARK___3 = 2184, + SSI_SDATA8_MARK___3 = 2185, + HRTS2_N_B_MARK___3 = 2186, + MSIOF1_TXD_C_MARK___3 = 2187, + TS_SPSYNC1_A_MARK___3 = 2188, + STP_ISSYNC_1_A_MARK___3 = 2189, + RIF1_D1_A_MARK___3 = 2190, + RIF3_D1_A_MARK___3 = 2191, + IP17_27_24_MARK___3 = 2192, + USB30_PWEN_MARK___3 = 2193, + AUDIO_CLKOUT_B_MARK___3 = 2194, + SSI_SCK2_B_MARK___3 = 2195, + TS_SDEN1_D_MARK___3 = 2196, + STP_ISEN_1_D_MARK___3 = 2197, + STP_OPWM_0_E_MARK___3 = 2198, + RIF3_D0_B_MARK___3 = 2199, + TCLK2_B_MARK___4 = 2200, + TPU0TO0_MARK___4 = 2201, + BPFCLK_C_MARK___3 = 2202, + HRTS2_N_C_MARK___3 = 2203, + IP16_31_28_MARK___3 = 2204, + SSI_SDATA9_A_MARK___3 = 2205, + HSCK2_B_MARK___3 = 2206, + MSIOF1_SS1_C_MARK___3 = 2207, + HSCK1_A_MARK___3 = 2208, + SSI_WS1_B_MARK___3 = 2209, + SCK1_MARK___4 = 2210, + STP_IVCXO27_1_A_MARK___3 = 2211, + SCK5_A_MARK___3 = 2212, + IP17_31_28_MARK___3 = 2213, + USB30_OVC_MARK___3 = 2214, + AUDIO_CLKOUT1_B_MARK___3 = 2215, + SSI_WS2_B_MARK___3 = 2216, + TS_SPSYNC1_D_MARK___3 = 2217, + STP_ISSYNC_1_D_MARK___3 = 2218, + STP_IVCXO27_0_E_MARK___3 = 2219, + RIF3_D1_B_MARK___3 = 2220, + FSO_TOE_N_MARK___4 = 2221, + TPU0TO1_MARK___4 = 2222, + SEL_MSIOF3_0_MARK___3 = 2223, + SEL_MSIOF3_1_MARK___3 = 2224, + SEL_MSIOF3_2_MARK___3 = 2225, + SEL_MSIOF3_3_MARK___3 = 2226, + SEL_MSIOF3_4_MARK___3 = 2227, + SEL_TSIF1_0_MARK___3 = 2228, + SEL_TSIF1_1_MARK___3 = 2229, + SEL_TSIF1_2_MARK___3 = 2230, + SEL_TSIF1_3_MARK___3 = 2231, + I2C_SEL_5_0_MARK___3 = 2232, + I2C_SEL_5_1_MARK___3 = 2233, + I2C_SEL_3_0_MARK___3 = 2234, + I2C_SEL_3_1_MARK___3 = 2235, + SEL_TSIF0_0_MARK___3 = 2236, + SEL_TSIF0_1_MARK___3 = 2237, + SEL_TSIF0_2_MARK___3 = 2238, + SEL_TSIF0_3_MARK___3 = 2239, + SEL_TSIF0_4_MARK___3 = 2240, + I2C_SEL_0_0_MARK___3 = 2241, + I2C_SEL_0_1_MARK___3 = 2242, + SEL_MSIOF2_0_MARK___3 = 2243, + SEL_MSIOF2_1_MARK___3 = 2244, + SEL_MSIOF2_2_MARK___3 = 2245, + SEL_MSIOF2_3_MARK___3 = 2246, + SEL_FM_0_MARK___3 = 2247, + SEL_FM_1_MARK___3 = 2248, + SEL_FM_2_MARK___3 = 2249, + SEL_FM_3_MARK___3 = 2250, + SEL_MSIOF1_0_MARK___3 = 2251, + SEL_MSIOF1_1_MARK___3 = 2252, + SEL_MSIOF1_2_MARK___3 = 2253, + SEL_MSIOF1_3_MARK___3 = 2254, + SEL_MSIOF1_4_MARK___3 = 2255, + SEL_MSIOF1_5_MARK___3 = 2256, + SEL_MSIOF1_6_MARK___3 = 2257, + SEL_TIMER_TMU_0_MARK___2 = 2258, + SEL_TIMER_TMU_1_MARK___2 = 2259, + SEL_SCIF5_0_MARK___3 = 2260, + SEL_SCIF5_1_MARK___3 = 2261, + SEL_SSP1_1_0_MARK___3 = 2262, + SEL_SSP1_1_1_MARK___3 = 2263, + SEL_SSP1_1_2_MARK___3 = 2264, + SEL_SSP1_1_3_MARK___3 = 2265, + SEL_I2C6_0_MARK___3 = 2266, + SEL_I2C6_1_MARK___3 = 2267, + SEL_I2C6_2_MARK___3 = 2268, + SEL_LBSC_0_MARK___3 = 2269, + SEL_LBSC_1_MARK___3 = 2270, + SEL_SSP1_0_0_MARK___3 = 2271, + SEL_SSP1_0_1_MARK___3 = 2272, + SEL_SSP1_0_2_MARK___3 = 2273, + SEL_SSP1_0_3_MARK___3 = 2274, + SEL_SSP1_0_4_MARK___3 = 2275, + SEL_IEBUS_0_MARK___3 = 2276, + SEL_IEBUS_1_MARK___3 = 2277, + SEL_NDF_0_MARK___2 = 2278, + SEL_NDF_1_MARK___2 = 2279, + SEL_I2C2_0_MARK___3 = 2280, + SEL_I2C2_1_MARK___3 = 2281, + SEL_SSI2_0_MARK___3 = 2282, + SEL_SSI2_1_MARK___3 = 2283, + SEL_I2C1_0_MARK___3 = 2284, + SEL_I2C1_1_MARK___3 = 2285, + SEL_SSI1_0_MARK___3 = 2286, + SEL_SSI1_1_MARK___3 = 2287, + SEL_SSI9_0_MARK___3 = 2288, + SEL_SSI9_1_MARK___3 = 2289, + SEL_HSCIF4_0_MARK___3 = 2290, + SEL_HSCIF4_1_MARK___3 = 2291, + SEL_SPEED_PULSE_0_MARK___3 = 2292, + SEL_SPEED_PULSE_1_MARK___3 = 2293, + SEL_TIMER_TMU2_0_MARK___3 = 2294, + SEL_TIMER_TMU2_1_MARK___3 = 2295, + SEL_HSCIF3_0_MARK___3 = 2296, + SEL_HSCIF3_1_MARK___3 = 2297, + SEL_HSCIF3_2_MARK___3 = 2298, + SEL_HSCIF3_3_MARK___3 = 2299, + SEL_SIMCARD_0_MARK___3 = 2300, + SEL_SIMCARD_1_MARK___3 = 2301, + SEL_SIMCARD_2_MARK___3 = 2302, + SEL_SIMCARD_3_MARK___3 = 2303, + SEL_ADGB_0_MARK___3 = 2304, + SEL_ADGB_1_MARK___3 = 2305, + SEL_ADGC_0_MARK___3 = 2306, + SEL_ADGC_1_MARK___3 = 2307, + SEL_HSCIF1_0_MARK___3 = 2308, + SEL_HSCIF1_1_MARK___3 = 2309, + SEL_SDHI2_0_MARK___3 = 2310, + SEL_SDHI2_1_MARK___3 = 2311, + SEL_SCIF4_0_MARK___3 = 2312, + SEL_SCIF4_1_MARK___3 = 2313, + SEL_SCIF4_2_MARK___3 = 2314, + SEL_HSCIF2_0_MARK___3 = 2315, + SEL_HSCIF2_1_MARK___3 = 2316, + SEL_HSCIF2_2_MARK___3 = 2317, + SEL_SCIF3_0_MARK___3 = 2318, + SEL_SCIF3_1_MARK___3 = 2319, + SEL_ETHERAVB_0_MARK___3 = 2320, + SEL_ETHERAVB_1_MARK___3 = 2321, + SEL_SCIF2_0_MARK___3 = 2322, + SEL_SCIF2_1_MARK___3 = 2323, + SEL_DRIF3_0_MARK___3 = 2324, + SEL_DRIF3_1_MARK___3 = 2325, + SEL_SCIF1_0_MARK___4 = 2326, + SEL_SCIF1_1_MARK___4 = 2327, + SEL_DRIF2_0_MARK___3 = 2328, + SEL_DRIF2_1_MARK___3 = 2329, + SEL_SCIF_0_MARK___3 = 2330, + SEL_SCIF_1_MARK___3 = 2331, + SEL_DRIF1_0_MARK___3 = 2332, + SEL_DRIF1_1_MARK___3 = 2333, + SEL_DRIF1_2_MARK___3 = 2334, + SEL_REMOCON_0_MARK___3 = 2335, + SEL_REMOCON_1_MARK___3 = 2336, + SEL_DRIF0_0_MARK___3 = 2337, + SEL_DRIF0_1_MARK___3 = 2338, + SEL_DRIF0_2_MARK___3 = 2339, + SEL_RCAN0_0_MARK___3 = 2340, + SEL_RCAN0_1_MARK___3 = 2341, + SEL_CANFD0_0_MARK___4 = 2342, + SEL_CANFD0_1_MARK___4 = 2343, + SEL_PWM6_0_MARK___3 = 2344, + SEL_PWM6_1_MARK___3 = 2345, + SEL_ADGA_0_MARK___3 = 2346, + SEL_ADGA_1_MARK___3 = 2347, + SEL_ADGA_2_MARK___3 = 2348, + SEL_ADGA_3_MARK___3 = 2349, + SEL_PWM5_0_MARK___3 = 2350, + SEL_PWM5_1_MARK___3 = 2351, + SEL_PWM4_0_MARK___4 = 2352, + SEL_PWM4_1_MARK___4 = 2353, + SEL_PWM3_0_MARK___4 = 2354, + SEL_PWM3_1_MARK___4 = 2355, + SEL_PWM2_0_MARK___4 = 2356, + SEL_PWM2_1_MARK___4 = 2357, + SEL_PWM1_0_MARK___4 = 2358, + SEL_PWM1_1_MARK___4 = 2359, + SEL_VIN4_0_MARK___3 = 2360, + SEL_VIN4_1_MARK___3 = 2361, + QSPI0_SPCLK_MARK___4 = 2362, + QSPI0_SSL_MARK___4 = 2363, + QSPI0_MOSI_IO0_MARK___4 = 2364, + QSPI0_MISO_IO1_MARK___4 = 2365, + QSPI0_IO2_MARK___4 = 2366, + QSPI0_IO3_MARK___4 = 2367, + QSPI1_SPCLK_MARK___4 = 2368, + QSPI1_SSL_MARK___4 = 2369, + QSPI1_MOSI_IO0_MARK___4 = 2370, + QSPI1_MISO_IO1_MARK___4 = 2371, + QSPI1_IO2_MARK___4 = 2372, + QSPI1_IO3_MARK___4 = 2373, + RPC_INT_MARK___3 = 2374, + RPC_WP_MARK___3 = 2375, + RPC_RESET_MARK___3 = 2376, + AVB_TX_CTL_MARK___4 = 2377, + AVB_TXC_MARK___4 = 2378, + AVB_TD0_MARK___4 = 2379, + AVB_TD1_MARK___4 = 2380, + AVB_TD2_MARK___4 = 2381, + AVB_TD3_MARK___4 = 2382, + AVB_RX_CTL_MARK___4 = 2383, + AVB_RXC_MARK___4 = 2384, + AVB_RD0_MARK___4 = 2385, + AVB_RD1_MARK___4 = 2386, + AVB_RD2_MARK___4 = 2387, + AVB_RD3_MARK___4 = 2388, + AVB_TXCREFCLK_MARK___4 = 2389, + AVB_MDIO_MARK___4 = 2390, + PRESETOUT_MARK___3 = 2391, + DU_DOTCLKIN0_MARK___3 = 2392, + DU_DOTCLKIN1_MARK___3 = 2393, + DU_DOTCLKIN3_MARK___2 = 2394, + TMS_MARK___3 = 2395, + TDO_MARK___3 = 2396, + ASEBRK_MARK___3 = 2397, + MLB_REF_MARK___3 = 2398, + TDI_MARK___3 = 2399, + TCK_MARK___3 = 2400, + TRST_MARK___3 = 2401, + EXTALR_MARK___3 = 2402, + SCL0_MARK___4 = 2403, + SDA0_MARK___4 = 2404, + SCL3_MARK___4 = 2405, + SDA3_MARK___4 = 2406, + SCL5_MARK___4 = 2407, + SDA5_MARK___4 = 2408, + PINMUX_MARK_END___4 = 2409, +}; + +enum { + PINMUX_RESERVED___5 = 0, + PINMUX_DATA_BEGIN___5 = 1, + GP_0_0_DATA___5 = 2, + GP_0_1_DATA___5 = 3, + GP_0_2_DATA___5 = 4, + GP_0_3_DATA___5 = 5, + GP_0_4_DATA___5 = 6, + GP_0_5_DATA___5 = 7, + GP_0_6_DATA___5 = 8, + GP_0_7_DATA___5 = 9, + GP_0_8_DATA___5 = 10, + GP_0_9_DATA___5 = 11, + GP_0_10_DATA___5 = 12, + GP_0_11_DATA___5 = 13, + GP_0_12_DATA___5 = 14, + GP_0_13_DATA___5 = 15, + GP_0_14_DATA___5 = 16, + GP_0_15_DATA___5 = 17, + GP_0_16_DATA___2 = 18, + GP_0_17_DATA___2 = 19, + GP_0_18_DATA___2 = 20, + GP_1_0_DATA___5 = 21, + GP_1_1_DATA___5 = 22, + GP_1_2_DATA___5 = 23, + GP_1_3_DATA___5 = 24, + GP_1_4_DATA___5 = 25, + GP_1_5_DATA___5 = 26, + GP_1_6_DATA___5 = 27, + GP_1_7_DATA___5 = 28, + GP_1_8_DATA___5 = 29, + GP_1_9_DATA___5 = 30, + GP_1_10_DATA___5 = 31, + GP_1_11_DATA___5 = 32, + GP_1_12_DATA___5 = 33, + GP_1_13_DATA___5 = 34, + GP_1_14_DATA___5 = 35, + GP_1_15_DATA___5 = 36, + GP_1_16_DATA___5 = 37, + GP_1_17_DATA___5 = 38, + GP_1_18_DATA___5 = 39, + GP_1_19_DATA___5 = 40, + GP_1_20_DATA___5 = 41, + GP_1_21_DATA___5 = 42, + GP_1_22_DATA___5 = 43, + GP_1_23_DATA___5 = 44, + GP_1_24_DATA___5 = 45, + GP_1_25_DATA___5 = 46, + GP_1_26_DATA___5 = 47, + GP_1_27_DATA___5 = 48, + GP_1_28_DATA___4 = 49, + GP_2_0_DATA___5 = 50, + GP_2_1_DATA___5 = 51, + GP_2_2_DATA___5 = 52, + GP_2_3_DATA___5 = 53, + GP_2_4_DATA___5 = 54, + GP_2_5_DATA___5 = 55, + GP_2_6_DATA___5 = 56, + GP_2_7_DATA___5 = 57, + GP_2_8_DATA___5 = 58, + GP_2_9_DATA___5 = 59, + GP_2_10_DATA___5 = 60, + GP_2_11_DATA___5 = 61, + GP_2_12_DATA___5 = 62, + GP_2_13_DATA___5 = 63, + GP_2_14_DATA___5 = 64, + GP_2_15_DATA___2 = 65, + GP_2_16_DATA___2 = 66, + GP_2_17_DATA___2 = 67, + GP_2_18_DATA___2 = 68, + GP_2_19_DATA___2 = 69, + GP_3_0_DATA___5 = 70, + GP_3_1_DATA___5 = 71, + GP_3_2_DATA___5 = 72, + GP_3_3_DATA___5 = 73, + GP_3_4_DATA___5 = 74, + GP_3_5_DATA___5 = 75, + GP_3_6_DATA___5 = 76, + GP_3_7_DATA___5 = 77, + GP_3_8_DATA___5 = 78, + GP_3_9_DATA___5 = 79, + GP_3_10_DATA___5 = 80, + GP_3_11_DATA___5 = 81, + GP_3_12_DATA___5 = 82, + GP_3_13_DATA___5 = 83, + GP_3_14_DATA___5 = 84, + GP_3_15_DATA___5 = 85, + GP_3_16_DATA___2 = 86, + GP_3_17_DATA = 87, + GP_3_18_DATA = 88, + GP_3_19_DATA = 89, + GP_3_20_DATA = 90, + GP_3_21_DATA = 91, + GP_3_22_DATA = 92, + GP_3_23_DATA = 93, + GP_3_24_DATA = 94, + GP_3_25_DATA = 95, + GP_3_26_DATA = 96, + GP_3_27_DATA = 97, + GP_3_28_DATA = 98, + GP_3_29_DATA = 99, + GP_4_0_DATA___5 = 100, + GP_4_1_DATA___5 = 101, + GP_4_2_DATA___5 = 102, + GP_4_3_DATA___5 = 103, + GP_4_4_DATA___5 = 104, + GP_4_5_DATA___5 = 105, + GP_4_6_DATA___5 = 106, + GP_4_7_DATA___5 = 107, + GP_4_8_DATA___5 = 108, + GP_4_9_DATA___5 = 109, + GP_4_10_DATA___5 = 110, + GP_4_11_DATA___5 = 111, + GP_4_12_DATA___5 = 112, + GP_4_13_DATA___5 = 113, + GP_4_14_DATA___5 = 114, + GP_4_15_DATA___5 = 115, + GP_4_16_DATA___5 = 116, + GP_4_17_DATA___5 = 117, + GP_4_18_DATA___2 = 118, + GP_4_19_DATA___2 = 119, + GP_4_20_DATA___2 = 120, + GP_4_21_DATA___2 = 121, + GP_4_22_DATA___2 = 122, + GP_4_23_DATA___2 = 123, + GP_4_24_DATA___2 = 124, + GP_5_0_DATA___5 = 125, + GP_5_1_DATA___5 = 126, + GP_5_2_DATA___5 = 127, + GP_5_3_DATA___5 = 128, + GP_5_4_DATA___5 = 129, + GP_5_5_DATA___5 = 130, + GP_5_6_DATA___5 = 131, + GP_5_7_DATA___5 = 132, + GP_5_8_DATA___5 = 133, + GP_5_9_DATA___5 = 134, + GP_5_10_DATA___5 = 135, + GP_5_11_DATA___5 = 136, + GP_5_12_DATA___5 = 137, + GP_5_13_DATA___5 = 138, + GP_5_14_DATA___5 = 139, + GP_5_15_DATA___4 = 140, + GP_5_16_DATA___4 = 141, + GP_5_17_DATA___4 = 142, + GP_5_18_DATA___4 = 143, + GP_5_19_DATA___4 = 144, + GP_5_20_DATA___4 = 145, + GP_6_0_DATA___4 = 146, + GP_6_1_DATA___4 = 147, + GP_6_2_DATA___4 = 148, + GP_6_3_DATA___4 = 149, + GP_6_4_DATA___4 = 150, + GP_6_5_DATA___4 = 151, + GP_6_6_DATA___4 = 152, + GP_6_7_DATA___4 = 153, + GP_6_8_DATA___4 = 154, + GP_6_9_DATA___4 = 155, + GP_6_10_DATA___4 = 156, + GP_6_11_DATA___4 = 157, + GP_6_12_DATA___4 = 158, + GP_6_13_DATA___4 = 159, + GP_6_14_DATA___4 = 160, + GP_6_15_DATA___4 = 161, + GP_6_16_DATA___4 = 162, + GP_6_17_DATA___4 = 163, + GP_6_18_DATA___4 = 164, + GP_6_19_DATA___4 = 165, + GP_6_20_DATA___4 = 166, + GP_7_0_DATA___4 = 167, + GP_7_1_DATA___4 = 168, + GP_7_2_DATA___4 = 169, + GP_7_3_DATA___4 = 170, + GP_7_4_DATA = 171, + GP_7_5_DATA = 172, + GP_7_6_DATA = 173, + GP_7_7_DATA = 174, + GP_7_8_DATA = 175, + GP_7_9_DATA = 176, + GP_7_10_DATA = 177, + GP_7_11_DATA = 178, + GP_7_12_DATA = 179, + GP_7_13_DATA = 180, + GP_7_14_DATA = 181, + GP_7_15_DATA = 182, + GP_7_16_DATA = 183, + GP_7_17_DATA = 184, + GP_7_18_DATA = 185, + GP_7_19_DATA = 186, + GP_7_20_DATA = 187, + GP_8_0_DATA = 188, + GP_8_1_DATA = 189, + GP_8_2_DATA = 190, + GP_8_3_DATA = 191, + GP_8_4_DATA = 192, + GP_8_5_DATA = 193, + GP_8_6_DATA = 194, + GP_8_7_DATA = 195, + GP_8_8_DATA = 196, + GP_8_9_DATA = 197, + GP_8_10_DATA = 198, + GP_8_11_DATA = 199, + GP_8_12_DATA = 200, + GP_8_13_DATA = 201, + PINMUX_DATA_END___5 = 202, + PINMUX_FUNCTION_BEGIN___5 = 203, + GP_0_0_FN___5 = 204, + GP_0_1_FN___5 = 205, + GP_0_2_FN___5 = 206, + GP_0_3_FN___5 = 207, + GP_0_4_FN___5 = 208, + GP_0_5_FN___5 = 209, + GP_0_6_FN___5 = 210, + GP_0_7_FN___5 = 211, + GP_0_8_FN___5 = 212, + GP_0_9_FN___5 = 213, + GP_0_10_FN___5 = 214, + GP_0_11_FN___5 = 215, + GP_0_12_FN___5 = 216, + GP_0_13_FN___5 = 217, + GP_0_14_FN___5 = 218, + GP_0_15_FN___5 = 219, + GP_0_16_FN___2 = 220, + GP_0_17_FN___2 = 221, + GP_0_18_FN___2 = 222, + GP_1_0_FN___5 = 223, + GP_1_1_FN___5 = 224, + GP_1_2_FN___5 = 225, + GP_1_3_FN___5 = 226, + GP_1_4_FN___5 = 227, + GP_1_5_FN___5 = 228, + GP_1_6_FN___5 = 229, + GP_1_7_FN___5 = 230, + GP_1_8_FN___5 = 231, + GP_1_9_FN___5 = 232, + GP_1_10_FN___5 = 233, + GP_1_11_FN___5 = 234, + GP_1_12_FN___5 = 235, + GP_1_13_FN___5 = 236, + GP_1_14_FN___5 = 237, + GP_1_15_FN___5 = 238, + GP_1_16_FN___5 = 239, + GP_1_17_FN___5 = 240, + GP_1_18_FN___5 = 241, + GP_1_19_FN___5 = 242, + GP_1_20_FN___5 = 243, + GP_1_21_FN___5 = 244, + GP_1_22_FN___5 = 245, + GP_1_23_FN___5 = 246, + GP_1_24_FN___5 = 247, + GP_1_25_FN___5 = 248, + GP_1_26_FN___5 = 249, + GP_1_27_FN___5 = 250, + GP_1_28_FN___4 = 251, + GP_2_0_FN___5 = 252, + GP_2_1_FN___5 = 253, + GP_2_2_FN___5 = 254, + GP_2_3_FN___5 = 255, + GP_2_4_FN___5 = 256, + GP_2_5_FN___5 = 257, + GP_2_6_FN___5 = 258, + GP_2_7_FN___5 = 259, + GP_2_8_FN___5 = 260, + GP_2_9_FN___5 = 261, + GP_2_10_FN___5 = 262, + GP_2_11_FN___5 = 263, + GP_2_12_FN___5 = 264, + GP_2_13_FN___5 = 265, + GP_2_14_FN___5 = 266, + GP_2_15_FN___2 = 267, + GP_2_16_FN___2 = 268, + GP_2_17_FN___2 = 269, + GP_2_18_FN___2 = 270, + GP_2_19_FN___2 = 271, + GP_3_0_FN___5 = 272, + GP_3_1_FN___5 = 273, + GP_3_2_FN___5 = 274, + GP_3_3_FN___5 = 275, + GP_3_4_FN___5 = 276, + GP_3_5_FN___5 = 277, + GP_3_6_FN___5 = 278, + GP_3_7_FN___5 = 279, + GP_3_8_FN___5 = 280, + GP_3_9_FN___5 = 281, + GP_3_10_FN___5 = 282, + GP_3_11_FN___5 = 283, + GP_3_12_FN___5 = 284, + GP_3_13_FN___5 = 285, + GP_3_14_FN___5 = 286, + GP_3_15_FN___5 = 287, + GP_3_16_FN___2 = 288, + GP_3_17_FN = 289, + GP_3_18_FN = 290, + GP_3_19_FN = 291, + GP_3_20_FN = 292, + GP_3_21_FN = 293, + GP_3_22_FN = 294, + GP_3_23_FN = 295, + GP_3_24_FN = 296, + GP_3_25_FN = 297, + GP_3_26_FN = 298, + GP_3_27_FN = 299, + GP_3_28_FN = 300, + GP_3_29_FN = 301, + GP_4_0_FN___5 = 302, + GP_4_1_FN___5 = 303, + GP_4_2_FN___5 = 304, + GP_4_3_FN___5 = 305, + GP_4_4_FN___5 = 306, + GP_4_5_FN___5 = 307, + GP_4_6_FN___5 = 308, + GP_4_7_FN___5 = 309, + GP_4_8_FN___5 = 310, + GP_4_9_FN___5 = 311, + GP_4_10_FN___5 = 312, + GP_4_11_FN___5 = 313, + GP_4_12_FN___5 = 314, + GP_4_13_FN___5 = 315, + GP_4_14_FN___5 = 316, + GP_4_15_FN___5 = 317, + GP_4_16_FN___5 = 318, + GP_4_17_FN___5 = 319, + GP_4_18_FN___2 = 320, + GP_4_19_FN___2 = 321, + GP_4_20_FN___2 = 322, + GP_4_21_FN___2 = 323, + GP_4_22_FN___2 = 324, + GP_4_23_FN___2 = 325, + GP_4_24_FN___2 = 326, + GP_5_0_FN___5 = 327, + GP_5_1_FN___5 = 328, + GP_5_2_FN___5 = 329, + GP_5_3_FN___5 = 330, + GP_5_4_FN___5 = 331, + GP_5_5_FN___5 = 332, + GP_5_6_FN___5 = 333, + GP_5_7_FN___5 = 334, + GP_5_8_FN___5 = 335, + GP_5_9_FN___5 = 336, + GP_5_10_FN___5 = 337, + GP_5_11_FN___5 = 338, + GP_5_12_FN___5 = 339, + GP_5_13_FN___5 = 340, + GP_5_14_FN___5 = 341, + GP_5_15_FN___4 = 342, + GP_5_16_FN___4 = 343, + GP_5_17_FN___4 = 344, + GP_5_18_FN___4 = 345, + GP_5_19_FN___4 = 346, + GP_5_20_FN___4 = 347, + GP_6_0_FN___4 = 348, + GP_6_1_FN___4 = 349, + GP_6_2_FN___4 = 350, + GP_6_3_FN___4 = 351, + GP_6_4_FN___4 = 352, + GP_6_5_FN___4 = 353, + GP_6_6_FN___4 = 354, + GP_6_7_FN___4 = 355, + GP_6_8_FN___4 = 356, + GP_6_9_FN___4 = 357, + GP_6_10_FN___4 = 358, + GP_6_11_FN___4 = 359, + GP_6_12_FN___4 = 360, + GP_6_13_FN___4 = 361, + GP_6_14_FN___4 = 362, + GP_6_15_FN___4 = 363, + GP_6_16_FN___4 = 364, + GP_6_17_FN___4 = 365, + GP_6_18_FN___4 = 366, + GP_6_19_FN___4 = 367, + GP_6_20_FN___4 = 368, + GP_7_0_FN___4 = 369, + GP_7_1_FN___4 = 370, + GP_7_2_FN___4 = 371, + GP_7_3_FN___4 = 372, + GP_7_4_FN = 373, + GP_7_5_FN = 374, + GP_7_6_FN = 375, + GP_7_7_FN = 376, + GP_7_8_FN = 377, + GP_7_9_FN = 378, + GP_7_10_FN = 379, + GP_7_11_FN = 380, + GP_7_12_FN = 381, + GP_7_13_FN = 382, + GP_7_14_FN = 383, + GP_7_15_FN = 384, + GP_7_16_FN = 385, + GP_7_17_FN = 386, + GP_7_18_FN = 387, + GP_7_19_FN = 388, + GP_7_20_FN = 389, + GP_8_0_FN = 390, + GP_8_1_FN = 391, + GP_8_2_FN = 392, + GP_8_3_FN = 393, + GP_8_4_FN = 394, + GP_8_5_FN = 395, + GP_8_6_FN = 396, + GP_8_7_FN = 397, + GP_8_8_FN = 398, + GP_8_9_FN = 399, + GP_8_10_FN = 400, + GP_8_11_FN = 401, + GP_8_12_FN = 402, + GP_8_13_FN = 403, + FN_IP0SR0_3_0 = 404, + FN_ERROROUTC_N_B = 405, + FN_TCLK2_B___5 = 406, + FN_IP1SR0_3_0 = 407, + FN_MSIOF5_SS1 = 408, + FN_IP2SR0_3_0 = 409, + FN_MSIOF2_TXD___2 = 410, + FN_HCTS1_N_A___4 = 411, + FN_CTS1_N_A = 412, + FN_IP0SR0_7_4 = 413, + FN_MSIOF3_SS1___2 = 414, + FN_IP1SR0_7_4 = 415, + FN_MSIOF5_SYNC = 416, + FN_IP2SR0_7_4 = 417, + FN_MSIOF2_SCK___2 = 418, + FN_HRTS1_N_A___4 = 419, + FN_RTS1_N_A = 420, + FN_IP0SR0_11_8 = 421, + FN_MSIOF3_SS2___2 = 422, + FN_IP1SR0_11_8 = 423, + FN_MSIOF5_TXD = 424, + FN_IP2SR0_11_8 = 425, + FN_MSIOF2_RXD___2 = 426, + FN_HSCK1_A___4 = 427, + FN_SCK1_A = 428, + FN_IP0SR0_15_12 = 429, + FN_IRQ3_A = 430, + FN_MSIOF3_SCK___2 = 431, + FN_IP1SR0_15_12 = 432, + FN_MSIOF5_SCK = 433, + FN_IP0SR0_19_16 = 434, + FN_IRQ2_A = 435, + FN_MSIOF3_TXD___2 = 436, + FN_IP1SR0_19_16 = 437, + FN_MSIOF5_RXD = 438, + FN_IP0SR0_23_20 = 439, + FN_IRQ1_A = 440, + FN_MSIOF3_RXD___2 = 441, + FN_IP1SR0_23_20 = 442, + FN_MSIOF2_SS2___2 = 443, + FN_TCLK1_A___5 = 444, + FN_IRQ2_B = 445, + FN_IP0SR0_27_24 = 446, + FN_IRQ0_A = 447, + FN_MSIOF3_SYNC___2 = 448, + FN_IP1SR0_27_24 = 449, + FN_MSIOF2_SS1___2 = 450, + FN_HTX1_A___4 = 451, + FN_TX1_A___5 = 452, + FN_IP0SR0_31_28 = 453, + FN_MSIOF5_SS2 = 454, + FN_IP1SR0_31_28 = 455, + FN_MSIOF2_SYNC___2 = 456, + FN_HRX1_A___4 = 457, + FN_RX1_A___5 = 458, + FN_IP0SR1_3_0 = 459, + FN_MSIOF1_SS2___2 = 460, + FN_HTX3_B___4 = 461, + FN_TX3_B___4 = 462, + FN_IP1SR1_3_0 = 463, + FN_MSIOF0_SYNC___5 = 464, + FN_HCTS1_N_B___4 = 465, + FN_CTS1_N_B = 466, + FN_CANFD5_TX_B = 467, + FN_IP2SR1_3_0 = 468, + FN_HRX0___4 = 469, + FN_RX0___5 = 470, + FN_IP3SR1_3_0 = 471, + FN_HRX3_A___4 = 472, + FN_SCK3_A = 473, + FN_MSIOF4_SS2 = 474, + FN_IP0SR1_7_4 = 475, + FN_MSIOF1_SS1___2 = 476, + FN_HCTS3_N_B = 477, + FN_RX3_B___4 = 478, + FN_IP1SR1_7_4 = 479, + FN_MSIOF0_TXD___5 = 480, + FN_HRTS1_N_B___4 = 481, + FN_RTS1_N_B = 482, + FN_CANFD5_RX_B = 483, + FN_IP2SR1_7_4 = 484, + FN_SCIF_CLK = 485, + FN_IRQ4_A = 486, + FN_IP3SR1_7_4 = 487, + FN_HSCK3_A = 488, + FN_CTS3_N_A = 489, + FN_MSIOF4_SCK = 490, + FN_TPU0TO0_B = 491, + FN_IP0SR1_11_8 = 492, + FN_MSIOF1_SYNC___2 = 493, + FN_HRTS3_N_B = 494, + FN_RTS3_N_B = 495, + FN_IP1SR1_11_8 = 496, + FN_MSIOF0_SCK___5 = 497, + FN_HSCK1_B___4 = 498, + FN_SCK1_B = 499, + FN_IP2SR1_11_8 = 500, + FN_SSI_SCK = 501, + FN_TCLK3_B = 502, + FN_IP3SR1_11_8 = 503, + FN_HRTS3_N_A = 504, + FN_RTS3_N_A = 505, + FN_MSIOF4_TXD = 506, + FN_TPU0TO1_B = 507, + FN_IP0SR1_15_12 = 508, + FN_MSIOF1_SCK___2 = 509, + FN_HSCK3_B = 510, + FN_CTS3_N_B = 511, + FN_IP1SR1_15_12 = 512, + FN_MSIOF0_RXD___5 = 513, + FN_IP2SR1_15_12 = 514, + FN_SSI_WS = 515, + FN_TCLK4_B = 516, + FN_IP3SR1_15_12 = 517, + FN_HCTS3_N_A = 518, + FN_RX3_A___4 = 519, + FN_MSIOF4_RXD = 520, + FN_IP0SR1_19_16 = 521, + FN_MSIOF1_TXD___2 = 522, + FN_HRX3_B___4 = 523, + FN_SCK3_B = 524, + FN_IP1SR1_19_16 = 525, + FN_HTX0___4 = 526, + FN_TX0___5 = 527, + FN_IP2SR1_19_16 = 528, + FN_SSI_SD = 529, + FN_IRQ0_B = 530, + FN_IP3SR1_19_16 = 531, + FN_HTX3_A___4 = 532, + FN_TX3_A___4 = 533, + FN_MSIOF4_SYNC = 534, + FN_IP0SR1_23_20 = 535, + FN_MSIOF1_RXD___2 = 536, + FN_IP1SR1_23_20 = 537, + FN_HCTS0_N___4 = 538, + FN_CTS0_N___5 = 539, + FN_PWM8 = 540, + FN_IP2SR1_23_20 = 541, + FN_AUDIO_CLKOUT = 542, + FN_IRQ1_B = 543, + FN_IP0SR1_27_24 = 544, + FN_MSIOF0_SS2___5 = 545, + FN_HTX1_B___4 = 546, + FN_TX1_B___5 = 547, + FN_IP1SR1_27_24 = 548, + FN_HRTS0_N___4 = 549, + FN_RTS0_N___5 = 550, + FN_PWM9 = 551, + FN_IP2SR1_27_24 = 552, + FN_AUDIO_CLKIN = 553, + FN_PWM3_A___5 = 554, + FN_IP0SR1_31_28 = 555, + FN_MSIOF0_SS1___5 = 556, + FN_HRX1_B___4 = 557, + FN_RX1_B___5 = 558, + FN_IP1SR1_31_28 = 559, + FN_HSCK0___4 = 560, + FN_SCK0___5 = 561, + FN_PWM0___4 = 562, + FN_IP2SR1_31_28 = 563, + FN_TCLK2_A___5 = 564, + FN_MSIOF4_SS1 = 565, + FN_IRQ3_B = 566, + FN_IP0SR2_3_0 = 567, + FN_FXR_TXDA___2 = 568, + FN_CANFD1_TX___5 = 569, + FN_TPU0TO2_B = 570, + FN_IP1SR2_3_0 = 571, + FN_TPU0TO0_A = 572, + FN_CANFD6_RX = 573, + FN_TCLK1_B___5 = 574, + FN_IP2SR2_3_0 = 575, + FN_CANFD4_TX = 576, + FN_PWM4 = 577, + FN_IP0SR2_7_4 = 578, + FN_FXR_TXENA_N_A = 579, + FN_CANFD1_RX___5 = 580, + FN_TPU0TO3_B = 581, + FN_IP1SR2_7_4 = 582, + FN_CAN_CLK___4 = 583, + FN_FXR_TXENA_N_B = 584, + FN_IP2SR2_7_4 = 585, + FN_CANFD4_RX = 586, + FN_PWM5 = 587, + FN_IP0SR2_11_8 = 588, + FN_RXDA_EXTFXR___2 = 589, + FN_CANFD5_TX_A = 590, + FN_IRQ5___5 = 591, + FN_IP1SR2_11_8 = 592, + FN_CANFD0_TX = 593, + FN_FXR_TXENB_N_B = 594, + FN_IP2SR2_11_8 = 595, + FN_CANFD7_TX = 596, + FN_PWM6 = 597, + FN_IP0SR2_15_12 = 598, + FN_CLK_EXTFXR___2 = 599, + FN_CANFD5_RX_A = 600, + FN_IRQ4_B = 601, + FN_IP1SR2_15_12 = 602, + FN_CANFD0_RX = 603, + FN_STPWT_EXTFXR = 604, + FN_IP2SR2_15_12 = 605, + FN_CANFD7_RX = 606, + FN_PWM7 = 607, + FN_IP0SR2_19_16 = 608, + FN_RXDB_EXTFXR___2 = 609, + FN_IP1SR2_19_16 = 610, + FN_CANFD2_TX = 611, + FN_TPU0TO2_A = 612, + FN_TCLK3_C = 613, + FN_IP0SR2_23_20 = 614, + FN_FXR_TXENB_N_A = 615, + FN_IP1SR2_23_20 = 616, + FN_CANFD2_RX = 617, + FN_TPU0TO3_A = 618, + FN_PWM1_B___5 = 619, + FN_TCLK4_C = 620, + FN_IP0SR2_27_24 = 621, + FN_FXR_TXDB___2 = 622, + FN_IP1SR2_27_24 = 623, + FN_CANFD3_TX = 624, + FN_PWM2 = 625, + FN_IP0SR2_31_28 = 626, + FN_TPU0TO1_A = 627, + FN_CANFD6_TX = 628, + FN_TCLK2_C = 629, + FN_IP1SR2_31_28 = 630, + FN_CANFD3_RX = 631, + FN_PWM3_B___5 = 632, + FN_IP0SR3_3_0 = 633, + FN_MMC_SD_D1 = 634, + FN_IP1SR3_3_0 = 635, + FN_MMC_D7___2 = 636, + FN_IP2SR3_3_0 = 637, + FN_QSPI0_IO3___2 = 638, + FN_IP3SR3_3_0 = 639, + FN_QSPI1_IO2___2 = 640, + FN_IP0SR3_7_4 = 641, + FN_MMC_SD_D0 = 642, + FN_IP1SR3_7_4 = 643, + FN_MMC_D6___2 = 644, + FN_IP2SR3_7_4 = 645, + FN_QSPI0_IO2___2 = 646, + FN_IP3SR3_7_4 = 647, + FN_QSPI1_SSL___2 = 648, + FN_IP0SR3_11_8 = 649, + FN_MMC_SD_D2 = 650, + FN_IP1SR3_11_8 = 651, + FN_MMC_SD_CMD = 652, + FN_IP2SR3_11_8 = 653, + FN_QSPI0_MISO_IO1___2 = 654, + FN_IP3SR3_11_8 = 655, + FN_QSPI1_IO3___2 = 656, + FN_IP0SR3_15_12 = 657, + FN_MMC_SD_CLK = 658, + FN_IP1SR3_15_12 = 659, + FN_SD_CD = 660, + FN_IP2SR3_15_12 = 661, + FN_QSPI0_MOSI_IO0___2 = 662, + FN_IP3SR3_15_12 = 663, + FN_RPC_RESET_N___2 = 664, + FN_IP0SR3_19_16 = 665, + FN_MMC_DS___2 = 666, + FN_IP1SR3_19_16 = 667, + FN_SD_WP = 668, + FN_IP2SR3_19_16 = 669, + FN_QSPI0_SPCLK___2 = 670, + FN_IP3SR3_19_16 = 671, + FN_RPC_WP_N___2 = 672, + FN_IP0SR3_23_20 = 673, + FN_MMC_SD_D3 = 674, + FN_IP1SR3_23_20 = 675, + FN_IPC_CLKIN = 676, + FN_IPC_CLKEN_IN = 677, + FN_PWM1_A___5 = 678, + FN_TCLK3_A = 679, + FN_IP2SR3_23_20 = 680, + FN_QSPI1_MOSI_IO0___2 = 681, + FN_IP3SR3_23_20 = 682, + FN_RPC_INT_N___2 = 683, + FN_IP0SR3_27_24 = 684, + FN_MMC_D5___2 = 685, + FN_IP1SR3_27_24 = 686, + FN_IPC_CLKOUT = 687, + FN_IPC_CLKEN_OUT = 688, + FN_ERROROUTC_N_A = 689, + FN_TCLK4_A = 690, + FN_IP2SR3_27_24 = 691, + FN_QSPI1_SPCLK___2 = 692, + FN_IP0SR3_31_28 = 693, + FN_MMC_D4___2 = 694, + FN_IP1SR3_31_28 = 695, + FN_QSPI0_SSL___2 = 696, + FN_IP2SR3_31_28 = 697, + FN_QSPI1_MISO_IO1___2 = 698, + FN_IP0SR4_3_0 = 699, + FN_TSN0_MDIO = 700, + FN_IP1SR4_3_0 = 701, + FN_TSN0_AVTP_PPS0 = 702, + FN_IP2SR4_3_0 = 703, + FN_TSN0_RD3 = 704, + FN_IP3SR4_3_0 = 705, + FN_AVS1___4 = 706, + FN_IP0SR4_7_4 = 707, + FN_TSN0_MDC = 708, + FN_IP1SR4_7_4 = 709, + FN_TSN0_TX_CTL = 710, + FN_IP2SR4_7_4 = 711, + FN_TSN0_RD2 = 712, + FN_IP0SR4_11_8 = 713, + FN_TSN0_AVTP_PPS1 = 714, + FN_IP1SR4_11_8 = 715, + FN_TSN0_RD0 = 716, + FN_IP2SR4_11_8 = 717, + FN_TSN0_TD3 = 718, + FN_IP0SR4_15_12 = 719, + FN_TSN0_PHY_INT = 720, + FN_IP1SR4_15_12 = 721, + FN_TSN0_RXC = 722, + FN_IP2SR4_15_12 = 723, + FN_TSN0_TD2 = 724, + FN_IP0SR4_19_16 = 725, + FN_TSN0_LINK = 726, + FN_IP1SR4_19_16 = 727, + FN_TSN0_TXC = 728, + FN_IP2SR4_19_16 = 729, + FN_TSN0_TXCREFCLK = 730, + FN_IP0SR4_23_20 = 731, + FN_TSN0_AVTP_MATCH = 732, + FN_IP1SR4_23_20 = 733, + FN_TSN0_RD1 = 734, + FN_IP2SR4_23_20 = 735, + FN_PCIE0_CLKREQ_N = 736, + FN_IP0SR4_27_24 = 737, + FN_TSN0_AVTP_CAPTURE = 738, + FN_IP1SR4_27_24 = 739, + FN_TSN0_TD1 = 740, + FN_IP2SR4_27_24 = 741, + FN_PCIE1_CLKREQ_N = 742, + FN_IP0SR4_31_28 = 743, + FN_TSN0_RX_CTL = 744, + FN_IP1SR4_31_28 = 745, + FN_TSN0_TD0 = 746, + FN_IP2SR4_31_28 = 747, + FN_AVS0 = 748, + FN_IP0SR5_3_0 = 749, + FN_AVB2_AVTP_PPS = 750, + FN_IP1SR5_3_0 = 751, + FN_AVB2_TD3 = 752, + FN_IP2SR5_3_0 = 753, + FN_AVB2_TXC = 754, + FN_IP0SR5_7_4 = 755, + FN_AVB2_AVTP_CAPTURE = 756, + FN_IP1SR5_7_4 = 757, + FN_AVB2_RD3 = 758, + FN_IP2SR5_7_4 = 759, + FN_AVB2_RD0 = 760, + FN_IP0SR5_11_8 = 761, + FN_AVB2_AVTP_MATCH = 762, + FN_IP1SR5_11_8 = 763, + FN_AVB2_MDIO = 764, + FN_IP2SR5_11_8 = 765, + FN_AVB2_RXC = 766, + FN_IP0SR5_15_12 = 767, + FN_AVB2_LINK = 768, + FN_IP1SR5_15_12 = 769, + FN_AVB2_TD2 = 770, + FN_IP2SR5_15_12 = 771, + FN_AVB2_TX_CTL = 772, + FN_IP0SR5_19_16 = 773, + FN_AVB2_PHY_INT = 774, + FN_IP1SR5_19_16 = 775, + FN_AVB2_TD1 = 776, + FN_IP2SR5_19_16 = 777, + FN_AVB2_RX_CTL = 778, + FN_IP0SR5_23_20 = 779, + FN_AVB2_MAGIC = 780, + FN_IP1SR5_23_20 = 781, + FN_AVB2_RD2 = 782, + FN_IP0SR5_27_24 = 783, + FN_AVB2_MDC = 784, + FN_IP1SR5_27_24 = 785, + FN_AVB2_RD1 = 786, + FN_IP0SR5_31_28 = 787, + FN_AVB2_TXCREFCLK = 788, + FN_IP1SR5_31_28 = 789, + FN_AVB2_TD0 = 790, + FN_IP0SR6_3_0 = 791, + FN_AVB1_MDIO = 792, + FN_IP1SR6_3_0 = 793, + FN_AVB1_RXC = 794, + FN_AVB1_MII_RXC = 795, + FN_IP2SR6_3_0 = 796, + FN_AVB1_TD2 = 797, + FN_AVB1_MII_TD2 = 798, + FN_IP0SR6_7_4 = 799, + FN_AVB1_MAGIC = 800, + FN_IP1SR6_7_4 = 801, + FN_AVB1_RX_CTL = 802, + FN_AVB1_MII_RX_DV = 803, + FN_IP2SR6_7_4 = 804, + FN_AVB1_RD2 = 805, + FN_AVB1_MII_RD2 = 806, + FN_IP0SR6_11_8 = 807, + FN_AVB1_MDC = 808, + FN_IP1SR6_11_8 = 809, + FN_AVB1_AVTP_PPS = 810, + FN_AVB1_MII_COL = 811, + FN_IP2SR6_11_8 = 812, + FN_AVB1_TD3 = 813, + FN_AVB1_MII_TD3 = 814, + FN_IP0SR6_15_12 = 815, + FN_AVB1_PHY_INT = 816, + FN_IP1SR6_15_12 = 817, + FN_AVB1_AVTP_CAPTURE = 818, + FN_AVB1_MII_CRS = 819, + FN_IP2SR6_15_12 = 820, + FN_AVB1_RD3 = 821, + FN_AVB1_MII_RD3 = 822, + FN_IP0SR6_19_16 = 823, + FN_AVB1_LINK = 824, + FN_AVB1_MII_TX_ER = 825, + FN_IP1SR6_19_16 = 826, + FN_AVB1_TD1 = 827, + FN_AVB1_MII_TD1 = 828, + FN_IP2SR6_19_16 = 829, + FN_AVB1_TXCREFCLK = 830, + FN_IP0SR6_23_20 = 831, + FN_AVB1_AVTP_MATCH = 832, + FN_AVB1_MII_RX_ER = 833, + FN_IP1SR6_23_20 = 834, + FN_AVB1_TD0 = 835, + FN_AVB1_MII_TD0 = 836, + FN_IP0SR6_27_24 = 837, + FN_AVB1_TXC = 838, + FN_AVB1_MII_TXC = 839, + FN_IP1SR6_27_24 = 840, + FN_AVB1_RD1 = 841, + FN_AVB1_MII_RD1 = 842, + FN_IP0SR6_31_28 = 843, + FN_AVB1_TX_CTL = 844, + FN_AVB1_MII_TX_EN = 845, + FN_IP1SR6_31_28 = 846, + FN_AVB1_RD0 = 847, + FN_AVB1_MII_RD0 = 848, + FN_IP0SR7_3_0 = 849, + FN_AVB0_AVTP_PPS = 850, + FN_AVB0_MII_COL = 851, + FN_IP1SR7_3_0 = 852, + FN_AVB0_RD3 = 853, + FN_AVB0_MII_RD3 = 854, + FN_IP2SR7_3_0 = 855, + FN_AVB0_TX_CTL = 856, + FN_AVB0_MII_TX_EN = 857, + FN_IP0SR7_7_4 = 858, + FN_AVB0_AVTP_CAPTURE = 859, + FN_AVB0_MII_CRS = 860, + FN_IP1SR7_7_4 = 861, + FN_AVB0_TXCREFCLK = 862, + FN_IP2SR7_7_4 = 863, + FN_AVB0_RD1 = 864, + FN_AVB0_MII_RD1 = 865, + FN_IP0SR7_11_8 = 866, + FN_AVB0_AVTP_MATCH = 867, + FN_AVB0_MII_RX_ER = 868, + FN_CC5_OSCOUT = 869, + FN_IP1SR7_11_8 = 870, + FN_AVB0_MAGIC = 871, + FN_IP2SR7_11_8 = 872, + FN_AVB0_RD0 = 873, + FN_AVB0_MII_RD0 = 874, + FN_IP0SR7_15_12 = 875, + FN_AVB0_TD3 = 876, + FN_AVB0_MII_TD3 = 877, + FN_IP1SR7_15_12 = 878, + FN_AVB0_TD0 = 879, + FN_AVB0_MII_TD0 = 880, + FN_IP2SR7_15_12 = 881, + FN_AVB0_RXC = 882, + FN_AVB0_MII_RXC = 883, + FN_IP0SR7_19_16 = 884, + FN_AVB0_LINK = 885, + FN_AVB0_MII_TX_ER = 886, + FN_IP1SR7_19_16 = 887, + FN_AVB0_RD2 = 888, + FN_AVB0_MII_RD2 = 889, + FN_IP2SR7_19_16 = 890, + FN_AVB0_RX_CTL = 891, + FN_AVB0_MII_RX_DV = 892, + FN_IP0SR7_23_20 = 893, + FN_AVB0_PHY_INT = 894, + FN_IP1SR7_23_20 = 895, + FN_AVB0_MDC = 896, + FN_IP0SR7_27_24 = 897, + FN_AVB0_TD2 = 898, + FN_AVB0_MII_TD2 = 899, + FN_IP1SR7_27_24 = 900, + FN_AVB0_MDIO = 901, + FN_IP0SR7_31_28 = 902, + FN_AVB0_TD1 = 903, + FN_AVB0_MII_TD1 = 904, + FN_IP1SR7_31_28 = 905, + FN_AVB0_TXC = 906, + FN_AVB0_MII_TXC = 907, + FN_IP0SR8_3_0 = 908, + FN_SCL0___2 = 909, + FN_IP1SR8_3_0 = 910, + FN_SCL4___2 = 911, + FN_HRX2___2 = 912, + FN_SCK4___2 = 913, + FN_IP0SR8_7_4 = 914, + FN_SDA0___2 = 915, + FN_IP1SR8_7_4 = 916, + FN_SDA4___2 = 917, + FN_HTX2___2 = 918, + FN_CTS4_N___2 = 919, + FN_IP0SR8_11_8 = 920, + FN_SCL1___2 = 921, + FN_IP1SR8_11_8 = 922, + FN_SCL5___2 = 923, + FN_HRTS2_N___2 = 924, + FN_RTS4_N___2 = 925, + FN_IP0SR8_15_12 = 926, + FN_SDA1___2 = 927, + FN_IP1SR8_15_12 = 928, + FN_SDA5___2 = 929, + FN_SCIF_CLK2 = 930, + FN_IP0SR8_19_16 = 931, + FN_SCL2___2 = 932, + FN_IP1SR8_19_16 = 933, + FN_HCTS2_N___2 = 934, + FN_TX4___2 = 935, + FN_IP0SR8_23_20 = 936, + FN_SDA2___2 = 937, + FN_IP1SR8_23_20 = 938, + FN_HSCK2___2 = 939, + FN_RX4___2 = 940, + FN_IP0SR8_27_24 = 941, + FN_SCL3___2 = 942, + FN_IP0SR8_31_28 = 943, + FN_SDA3___2 = 944, + FN_SEL_SDA5_0 = 945, + FN_SEL_SDA5_1 = 946, + FN_SEL_SCL5_0 = 947, + FN_SEL_SCL5_1 = 948, + FN_SEL_SDA4_0 = 949, + FN_SEL_SDA4_1 = 950, + FN_SEL_SCL4_0 = 951, + FN_SEL_SCL4_1 = 952, + FN_SEL_SDA3_0 = 953, + FN_SEL_SDA3_1 = 954, + FN_SEL_SCL3_0 = 955, + FN_SEL_SCL3_1 = 956, + FN_SEL_SDA2_0 = 957, + FN_SEL_SDA2_1 = 958, + FN_SEL_SCL2_0 = 959, + FN_SEL_SCL2_1 = 960, + FN_SEL_SDA1_0 = 961, + FN_SEL_SDA1_1 = 962, + FN_SEL_SCL1_0 = 963, + FN_SEL_SCL1_1 = 964, + FN_SEL_SDA0_0 = 965, + FN_SEL_SDA0_1 = 966, + FN_SEL_SCL0_0 = 967, + FN_SEL_SCL0_1 = 968, + PINMUX_FUNCTION_END___5 = 969, + PINMUX_MARK_BEGIN___5 = 970, + IP0SR0_3_0_MARK = 971, + ERROROUTC_N_B_MARK = 972, + TCLK2_B_MARK___5 = 973, + IP1SR0_3_0_MARK = 974, + MSIOF5_SS1_MARK = 975, + IP2SR0_3_0_MARK = 976, + MSIOF2_TXD_MARK___2 = 977, + HCTS1_N_A_MARK___4 = 978, + CTS1_N_A_MARK = 979, + IP0SR0_7_4_MARK = 980, + MSIOF3_SS1_MARK___2 = 981, + IP1SR0_7_4_MARK = 982, + MSIOF5_SYNC_MARK = 983, + IP2SR0_7_4_MARK = 984, + MSIOF2_SCK_MARK___2 = 985, + HRTS1_N_A_MARK___4 = 986, + RTS1_N_A_MARK = 987, + IP0SR0_11_8_MARK = 988, + MSIOF3_SS2_MARK___2 = 989, + IP1SR0_11_8_MARK = 990, + MSIOF5_TXD_MARK = 991, + IP2SR0_11_8_MARK = 992, + MSIOF2_RXD_MARK___2 = 993, + HSCK1_A_MARK___4 = 994, + SCK1_A_MARK = 995, + IP0SR0_15_12_MARK = 996, + IRQ3_A_MARK = 997, + MSIOF3_SCK_MARK___2 = 998, + IP1SR0_15_12_MARK = 999, + MSIOF5_SCK_MARK = 1000, + IP0SR0_19_16_MARK = 1001, + IRQ2_A_MARK = 1002, + MSIOF3_TXD_MARK___2 = 1003, + IP1SR0_19_16_MARK = 1004, + MSIOF5_RXD_MARK = 1005, + IP0SR0_23_20_MARK = 1006, + IRQ1_A_MARK = 1007, + MSIOF3_RXD_MARK___2 = 1008, + IP1SR0_23_20_MARK = 1009, + MSIOF2_SS2_MARK___2 = 1010, + TCLK1_A_MARK___5 = 1011, + IRQ2_B_MARK = 1012, + IP0SR0_27_24_MARK = 1013, + IRQ0_A_MARK = 1014, + MSIOF3_SYNC_MARK___2 = 1015, + IP1SR0_27_24_MARK = 1016, + MSIOF2_SS1_MARK___2 = 1017, + HTX1_A_MARK___4 = 1018, + TX1_A_MARK___5 = 1019, + IP0SR0_31_28_MARK = 1020, + MSIOF5_SS2_MARK = 1021, + IP1SR0_31_28_MARK = 1022, + MSIOF2_SYNC_MARK___2 = 1023, + HRX1_A_MARK___4 = 1024, + RX1_A_MARK___5 = 1025, + IP0SR1_3_0_MARK = 1026, + MSIOF1_SS2_MARK___2 = 1027, + HTX3_B_MARK___4 = 1028, + TX3_B_MARK___4 = 1029, + IP1SR1_3_0_MARK = 1030, + MSIOF0_SYNC_MARK___5 = 1031, + HCTS1_N_B_MARK___4 = 1032, + CTS1_N_B_MARK = 1033, + CANFD5_TX_B_MARK = 1034, + IP2SR1_3_0_MARK = 1035, + HRX0_MARK___4 = 1036, + RX0_MARK___5 = 1037, + IP3SR1_3_0_MARK = 1038, + HRX3_A_MARK___4 = 1039, + SCK3_A_MARK = 1040, + MSIOF4_SS2_MARK = 1041, + IP0SR1_7_4_MARK = 1042, + MSIOF1_SS1_MARK___2 = 1043, + HCTS3_N_B_MARK = 1044, + RX3_B_MARK___4 = 1045, + IP1SR1_7_4_MARK = 1046, + MSIOF0_TXD_MARK___5 = 1047, + HRTS1_N_B_MARK___4 = 1048, + RTS1_N_B_MARK = 1049, + CANFD5_RX_B_MARK = 1050, + IP2SR1_7_4_MARK = 1051, + SCIF_CLK_MARK = 1052, + IRQ4_A_MARK = 1053, + IP3SR1_7_4_MARK = 1054, + HSCK3_A_MARK = 1055, + CTS3_N_A_MARK = 1056, + MSIOF4_SCK_MARK = 1057, + TPU0TO0_B_MARK = 1058, + IP0SR1_11_8_MARK = 1059, + MSIOF1_SYNC_MARK___2 = 1060, + HRTS3_N_B_MARK = 1061, + RTS3_N_B_MARK = 1062, + IP1SR1_11_8_MARK = 1063, + MSIOF0_SCK_MARK___5 = 1064, + HSCK1_B_MARK___4 = 1065, + SCK1_B_MARK = 1066, + IP2SR1_11_8_MARK = 1067, + SSI_SCK_MARK = 1068, + TCLK3_B_MARK = 1069, + IP3SR1_11_8_MARK = 1070, + HRTS3_N_A_MARK = 1071, + RTS3_N_A_MARK = 1072, + MSIOF4_TXD_MARK = 1073, + TPU0TO1_B_MARK = 1074, + IP0SR1_15_12_MARK = 1075, + MSIOF1_SCK_MARK___2 = 1076, + HSCK3_B_MARK = 1077, + CTS3_N_B_MARK = 1078, + IP1SR1_15_12_MARK = 1079, + MSIOF0_RXD_MARK___5 = 1080, + IP2SR1_15_12_MARK = 1081, + SSI_WS_MARK = 1082, + TCLK4_B_MARK = 1083, + IP3SR1_15_12_MARK = 1084, + HCTS3_N_A_MARK = 1085, + RX3_A_MARK___4 = 1086, + MSIOF4_RXD_MARK = 1087, + IP0SR1_19_16_MARK = 1088, + MSIOF1_TXD_MARK___2 = 1089, + HRX3_B_MARK___4 = 1090, + SCK3_B_MARK = 1091, + IP1SR1_19_16_MARK = 1092, + HTX0_MARK___4 = 1093, + TX0_MARK___5 = 1094, + IP2SR1_19_16_MARK = 1095, + SSI_SD_MARK = 1096, + IRQ0_B_MARK = 1097, + IP3SR1_19_16_MARK = 1098, + HTX3_A_MARK___4 = 1099, + TX3_A_MARK___4 = 1100, + MSIOF4_SYNC_MARK = 1101, + IP0SR1_23_20_MARK = 1102, + MSIOF1_RXD_MARK___2 = 1103, + IP1SR1_23_20_MARK = 1104, + HCTS0_N_MARK___4 = 1105, + CTS0_N_MARK___5 = 1106, + PWM8_MARK = 1107, + IP2SR1_23_20_MARK = 1108, + AUDIO_CLKOUT_MARK = 1109, + IRQ1_B_MARK = 1110, + IP0SR1_27_24_MARK = 1111, + MSIOF0_SS2_MARK___5 = 1112, + HTX1_B_MARK___4 = 1113, + TX1_B_MARK___5 = 1114, + IP1SR1_27_24_MARK = 1115, + HRTS0_N_MARK___4 = 1116, + RTS0_N_MARK___5 = 1117, + PWM9_MARK = 1118, + IP2SR1_27_24_MARK = 1119, + AUDIO_CLKIN_MARK = 1120, + PWM3_A_MARK___5 = 1121, + IP0SR1_31_28_MARK = 1122, + MSIOF0_SS1_MARK___5 = 1123, + HRX1_B_MARK___4 = 1124, + RX1_B_MARK___5 = 1125, + IP1SR1_31_28_MARK = 1126, + HSCK0_MARK___4 = 1127, + SCK0_MARK___5 = 1128, + PWM0_MARK___4 = 1129, + IP2SR1_31_28_MARK = 1130, + TCLK2_A_MARK___5 = 1131, + MSIOF4_SS1_MARK = 1132, + IRQ3_B_MARK = 1133, + IP0SR2_3_0_MARK = 1134, + FXR_TXDA_MARK___2 = 1135, + CANFD1_TX_MARK___5 = 1136, + TPU0TO2_B_MARK = 1137, + IP1SR2_3_0_MARK = 1138, + TPU0TO0_A_MARK = 1139, + CANFD6_RX_MARK = 1140, + TCLK1_B_MARK___5 = 1141, + IP2SR2_3_0_MARK = 1142, + CANFD4_TX_MARK = 1143, + PWM4_MARK = 1144, + IP0SR2_7_4_MARK = 1145, + FXR_TXENA_N_A_MARK = 1146, + CANFD1_RX_MARK___5 = 1147, + TPU0TO3_B_MARK = 1148, + IP1SR2_7_4_MARK = 1149, + CAN_CLK_MARK___4 = 1150, + FXR_TXENA_N_B_MARK = 1151, + IP2SR2_7_4_MARK = 1152, + CANFD4_RX_MARK = 1153, + PWM5_MARK = 1154, + IP0SR2_11_8_MARK = 1155, + RXDA_EXTFXR_MARK___2 = 1156, + CANFD5_TX_A_MARK = 1157, + IRQ5_MARK___5 = 1158, + IP1SR2_11_8_MARK = 1159, + CANFD0_TX_MARK = 1160, + FXR_TXENB_N_B_MARK = 1161, + IP2SR2_11_8_MARK = 1162, + CANFD7_TX_MARK = 1163, + PWM6_MARK = 1164, + IP0SR2_15_12_MARK = 1165, + CLK_EXTFXR_MARK___2 = 1166, + CANFD5_RX_A_MARK = 1167, + IRQ4_B_MARK = 1168, + IP1SR2_15_12_MARK = 1169, + CANFD0_RX_MARK = 1170, + STPWT_EXTFXR_MARK = 1171, + IP2SR2_15_12_MARK = 1172, + CANFD7_RX_MARK = 1173, + PWM7_MARK = 1174, + IP0SR2_19_16_MARK = 1175, + RXDB_EXTFXR_MARK___2 = 1176, + IP1SR2_19_16_MARK = 1177, + CANFD2_TX_MARK = 1178, + TPU0TO2_A_MARK = 1179, + TCLK3_C_MARK = 1180, + IP0SR2_23_20_MARK = 1181, + FXR_TXENB_N_A_MARK = 1182, + IP1SR2_23_20_MARK = 1183, + CANFD2_RX_MARK = 1184, + TPU0TO3_A_MARK = 1185, + PWM1_B_MARK___5 = 1186, + TCLK4_C_MARK = 1187, + IP0SR2_27_24_MARK = 1188, + FXR_TXDB_MARK___2 = 1189, + IP1SR2_27_24_MARK = 1190, + CANFD3_TX_MARK = 1191, + PWM2_MARK = 1192, + IP0SR2_31_28_MARK = 1193, + TPU0TO1_A_MARK = 1194, + CANFD6_TX_MARK = 1195, + TCLK2_C_MARK = 1196, + IP1SR2_31_28_MARK = 1197, + CANFD3_RX_MARK = 1198, + PWM3_B_MARK___5 = 1199, + IP0SR3_3_0_MARK = 1200, + MMC_SD_D1_MARK = 1201, + IP1SR3_3_0_MARK = 1202, + MMC_D7_MARK___2 = 1203, + IP2SR3_3_0_MARK = 1204, + QSPI0_IO3_MARK___5 = 1205, + IP3SR3_3_0_MARK = 1206, + QSPI1_IO2_MARK___5 = 1207, + IP0SR3_7_4_MARK = 1208, + MMC_SD_D0_MARK = 1209, + IP1SR3_7_4_MARK = 1210, + MMC_D6_MARK___2 = 1211, + IP2SR3_7_4_MARK = 1212, + QSPI0_IO2_MARK___5 = 1213, + IP3SR3_7_4_MARK = 1214, + QSPI1_SSL_MARK___5 = 1215, + IP0SR3_11_8_MARK = 1216, + MMC_SD_D2_MARK = 1217, + IP1SR3_11_8_MARK = 1218, + MMC_SD_CMD_MARK = 1219, + IP2SR3_11_8_MARK = 1220, + QSPI0_MISO_IO1_MARK___5 = 1221, + IP3SR3_11_8_MARK = 1222, + QSPI1_IO3_MARK___5 = 1223, + IP0SR3_15_12_MARK = 1224, + MMC_SD_CLK_MARK = 1225, + IP1SR3_15_12_MARK = 1226, + SD_CD_MARK = 1227, + IP2SR3_15_12_MARK = 1228, + QSPI0_MOSI_IO0_MARK___5 = 1229, + IP3SR3_15_12_MARK = 1230, + RPC_RESET_N_MARK___2 = 1231, + IP0SR3_19_16_MARK = 1232, + MMC_DS_MARK___2 = 1233, + IP1SR3_19_16_MARK = 1234, + SD_WP_MARK = 1235, + IP2SR3_19_16_MARK = 1236, + QSPI0_SPCLK_MARK___5 = 1237, + IP3SR3_19_16_MARK = 1238, + RPC_WP_N_MARK___2 = 1239, + IP0SR3_23_20_MARK = 1240, + MMC_SD_D3_MARK = 1241, + IP1SR3_23_20_MARK = 1242, + IPC_CLKIN_MARK = 1243, + IPC_CLKEN_IN_MARK = 1244, + PWM1_A_MARK___5 = 1245, + TCLK3_A_MARK = 1246, + IP2SR3_23_20_MARK = 1247, + QSPI1_MOSI_IO0_MARK___5 = 1248, + IP3SR3_23_20_MARK = 1249, + RPC_INT_N_MARK___2 = 1250, + IP0SR3_27_24_MARK = 1251, + MMC_D5_MARK___2 = 1252, + IP1SR3_27_24_MARK = 1253, + IPC_CLKOUT_MARK = 1254, + IPC_CLKEN_OUT_MARK = 1255, + ERROROUTC_N_A_MARK = 1256, + TCLK4_A_MARK = 1257, + IP2SR3_27_24_MARK = 1258, + QSPI1_SPCLK_MARK___5 = 1259, + IP0SR3_31_28_MARK = 1260, + MMC_D4_MARK___2 = 1261, + IP1SR3_31_28_MARK = 1262, + QSPI0_SSL_MARK___5 = 1263, + IP2SR3_31_28_MARK = 1264, + QSPI1_MISO_IO1_MARK___5 = 1265, + IP0SR4_3_0_MARK = 1266, + TSN0_MDIO_MARK = 1267, + IP1SR4_3_0_MARK = 1268, + TSN0_AVTP_PPS0_MARK = 1269, + IP2SR4_3_0_MARK = 1270, + TSN0_RD3_MARK = 1271, + IP3SR4_3_0_MARK = 1272, + AVS1_MARK___4 = 1273, + IP0SR4_7_4_MARK = 1274, + TSN0_MDC_MARK = 1275, + IP1SR4_7_4_MARK = 1276, + TSN0_TX_CTL_MARK = 1277, + IP2SR4_7_4_MARK = 1278, + TSN0_RD2_MARK = 1279, + IP0SR4_11_8_MARK = 1280, + TSN0_AVTP_PPS1_MARK = 1281, + IP1SR4_11_8_MARK = 1282, + TSN0_RD0_MARK = 1283, + IP2SR4_11_8_MARK = 1284, + TSN0_TD3_MARK = 1285, + IP0SR4_15_12_MARK = 1286, + TSN0_PHY_INT_MARK = 1287, + IP1SR4_15_12_MARK = 1288, + TSN0_RXC_MARK = 1289, + IP2SR4_15_12_MARK = 1290, + TSN0_TD2_MARK = 1291, + IP0SR4_19_16_MARK = 1292, + TSN0_LINK_MARK = 1293, + IP1SR4_19_16_MARK = 1294, + TSN0_TXC_MARK = 1295, + IP2SR4_19_16_MARK = 1296, + TSN0_TXCREFCLK_MARK = 1297, + IP0SR4_23_20_MARK = 1298, + TSN0_AVTP_MATCH_MARK = 1299, + IP1SR4_23_20_MARK = 1300, + TSN0_RD1_MARK = 1301, + IP2SR4_23_20_MARK = 1302, + PCIE0_CLKREQ_N_MARK = 1303, + IP0SR4_27_24_MARK = 1304, + TSN0_AVTP_CAPTURE_MARK = 1305, + IP1SR4_27_24_MARK = 1306, + TSN0_TD1_MARK = 1307, + IP2SR4_27_24_MARK = 1308, + PCIE1_CLKREQ_N_MARK = 1309, + IP0SR4_31_28_MARK = 1310, + TSN0_RX_CTL_MARK = 1311, + IP1SR4_31_28_MARK = 1312, + TSN0_TD0_MARK = 1313, + IP2SR4_31_28_MARK = 1314, + AVS0_MARK = 1315, + IP0SR5_3_0_MARK = 1316, + AVB2_AVTP_PPS_MARK = 1317, + IP1SR5_3_0_MARK = 1318, + AVB2_TD3_MARK = 1319, + IP2SR5_3_0_MARK = 1320, + AVB2_TXC_MARK = 1321, + IP0SR5_7_4_MARK = 1322, + AVB2_AVTP_CAPTURE_MARK = 1323, + IP1SR5_7_4_MARK = 1324, + AVB2_RD3_MARK = 1325, + IP2SR5_7_4_MARK = 1326, + AVB2_RD0_MARK = 1327, + IP0SR5_11_8_MARK = 1328, + AVB2_AVTP_MATCH_MARK = 1329, + IP1SR5_11_8_MARK = 1330, + AVB2_MDIO_MARK = 1331, + IP2SR5_11_8_MARK = 1332, + AVB2_RXC_MARK = 1333, + IP0SR5_15_12_MARK = 1334, + AVB2_LINK_MARK = 1335, + IP1SR5_15_12_MARK = 1336, + AVB2_TD2_MARK = 1337, + IP2SR5_15_12_MARK = 1338, + AVB2_TX_CTL_MARK = 1339, + IP0SR5_19_16_MARK = 1340, + AVB2_PHY_INT_MARK = 1341, + IP1SR5_19_16_MARK = 1342, + AVB2_TD1_MARK = 1343, + IP2SR5_19_16_MARK = 1344, + AVB2_RX_CTL_MARK = 1345, + IP0SR5_23_20_MARK = 1346, + AVB2_MAGIC_MARK = 1347, + IP1SR5_23_20_MARK = 1348, + AVB2_RD2_MARK = 1349, + IP0SR5_27_24_MARK = 1350, + AVB2_MDC_MARK = 1351, + IP1SR5_27_24_MARK = 1352, + AVB2_RD1_MARK = 1353, + IP0SR5_31_28_MARK = 1354, + AVB2_TXCREFCLK_MARK = 1355, + IP1SR5_31_28_MARK = 1356, + AVB2_TD0_MARK = 1357, + IP0SR6_3_0_MARK = 1358, + AVB1_MDIO_MARK = 1359, + IP1SR6_3_0_MARK = 1360, + AVB1_RXC_MARK = 1361, + AVB1_MII_RXC_MARK = 1362, + IP2SR6_3_0_MARK = 1363, + AVB1_TD2_MARK = 1364, + AVB1_MII_TD2_MARK = 1365, + IP0SR6_7_4_MARK = 1366, + AVB1_MAGIC_MARK = 1367, + IP1SR6_7_4_MARK = 1368, + AVB1_RX_CTL_MARK = 1369, + AVB1_MII_RX_DV_MARK = 1370, + IP2SR6_7_4_MARK = 1371, + AVB1_RD2_MARK = 1372, + AVB1_MII_RD2_MARK = 1373, + IP0SR6_11_8_MARK = 1374, + AVB1_MDC_MARK = 1375, + IP1SR6_11_8_MARK = 1376, + AVB1_AVTP_PPS_MARK = 1377, + AVB1_MII_COL_MARK = 1378, + IP2SR6_11_8_MARK = 1379, + AVB1_TD3_MARK = 1380, + AVB1_MII_TD3_MARK = 1381, + IP0SR6_15_12_MARK = 1382, + AVB1_PHY_INT_MARK = 1383, + IP1SR6_15_12_MARK = 1384, + AVB1_AVTP_CAPTURE_MARK = 1385, + AVB1_MII_CRS_MARK = 1386, + IP2SR6_15_12_MARK = 1387, + AVB1_RD3_MARK = 1388, + AVB1_MII_RD3_MARK = 1389, + IP0SR6_19_16_MARK = 1390, + AVB1_LINK_MARK = 1391, + AVB1_MII_TX_ER_MARK = 1392, + IP1SR6_19_16_MARK = 1393, + AVB1_TD1_MARK = 1394, + AVB1_MII_TD1_MARK = 1395, + IP2SR6_19_16_MARK = 1396, + AVB1_TXCREFCLK_MARK = 1397, + IP0SR6_23_20_MARK = 1398, + AVB1_AVTP_MATCH_MARK = 1399, + AVB1_MII_RX_ER_MARK = 1400, + IP1SR6_23_20_MARK = 1401, + AVB1_TD0_MARK = 1402, + AVB1_MII_TD0_MARK = 1403, + IP0SR6_27_24_MARK = 1404, + AVB1_TXC_MARK = 1405, + AVB1_MII_TXC_MARK = 1406, + IP1SR6_27_24_MARK = 1407, + AVB1_RD1_MARK = 1408, + AVB1_MII_RD1_MARK = 1409, + IP0SR6_31_28_MARK = 1410, + AVB1_TX_CTL_MARK = 1411, + AVB1_MII_TX_EN_MARK = 1412, + IP1SR6_31_28_MARK = 1413, + AVB1_RD0_MARK = 1414, + AVB1_MII_RD0_MARK = 1415, + IP0SR7_3_0_MARK = 1416, + AVB0_AVTP_PPS_MARK = 1417, + AVB0_MII_COL_MARK = 1418, + IP1SR7_3_0_MARK = 1419, + AVB0_RD3_MARK = 1420, + AVB0_MII_RD3_MARK = 1421, + IP2SR7_3_0_MARK = 1422, + AVB0_TX_CTL_MARK = 1423, + AVB0_MII_TX_EN_MARK = 1424, + IP0SR7_7_4_MARK = 1425, + AVB0_AVTP_CAPTURE_MARK = 1426, + AVB0_MII_CRS_MARK = 1427, + IP1SR7_7_4_MARK = 1428, + AVB0_TXCREFCLK_MARK = 1429, + IP2SR7_7_4_MARK = 1430, + AVB0_RD1_MARK = 1431, + AVB0_MII_RD1_MARK = 1432, + IP0SR7_11_8_MARK = 1433, + AVB0_AVTP_MATCH_MARK = 1434, + AVB0_MII_RX_ER_MARK = 1435, + CC5_OSCOUT_MARK = 1436, + IP1SR7_11_8_MARK = 1437, + AVB0_MAGIC_MARK = 1438, + IP2SR7_11_8_MARK = 1439, + AVB0_RD0_MARK = 1440, + AVB0_MII_RD0_MARK = 1441, + IP0SR7_15_12_MARK = 1442, + AVB0_TD3_MARK = 1443, + AVB0_MII_TD3_MARK = 1444, + IP1SR7_15_12_MARK = 1445, + AVB0_TD0_MARK = 1446, + AVB0_MII_TD0_MARK = 1447, + IP2SR7_15_12_MARK = 1448, + AVB0_RXC_MARK = 1449, + AVB0_MII_RXC_MARK = 1450, + IP0SR7_19_16_MARK = 1451, + AVB0_LINK_MARK = 1452, + AVB0_MII_TX_ER_MARK = 1453, + IP1SR7_19_16_MARK = 1454, + AVB0_RD2_MARK = 1455, + AVB0_MII_RD2_MARK = 1456, + IP2SR7_19_16_MARK = 1457, + AVB0_RX_CTL_MARK = 1458, + AVB0_MII_RX_DV_MARK = 1459, + IP0SR7_23_20_MARK = 1460, + AVB0_PHY_INT_MARK = 1461, + IP1SR7_23_20_MARK = 1462, + AVB0_MDC_MARK = 1463, + IP0SR7_27_24_MARK = 1464, + AVB0_TD2_MARK = 1465, + AVB0_MII_TD2_MARK = 1466, + IP1SR7_27_24_MARK = 1467, + AVB0_MDIO_MARK = 1468, + IP0SR7_31_28_MARK = 1469, + AVB0_TD1_MARK = 1470, + AVB0_MII_TD1_MARK = 1471, + IP1SR7_31_28_MARK = 1472, + AVB0_TXC_MARK = 1473, + AVB0_MII_TXC_MARK = 1474, + IP0SR8_3_0_MARK = 1475, + SCL0_MARK___5 = 1476, + IP1SR8_3_0_MARK = 1477, + SCL4_MARK___2 = 1478, + HRX2_MARK___2 = 1479, + SCK4_MARK___2 = 1480, + IP0SR8_7_4_MARK = 1481, + SDA0_MARK___5 = 1482, + IP1SR8_7_4_MARK = 1483, + SDA4_MARK___2 = 1484, + HTX2_MARK___2 = 1485, + CTS4_N_MARK___2 = 1486, + IP0SR8_11_8_MARK = 1487, + SCL1_MARK___2 = 1488, + IP1SR8_11_8_MARK = 1489, + SCL5_MARK___5 = 1490, + HRTS2_N_MARK___2 = 1491, + RTS4_N_MARK___2 = 1492, + IP0SR8_15_12_MARK = 1493, + SDA1_MARK___2 = 1494, + IP1SR8_15_12_MARK = 1495, + SDA5_MARK___5 = 1496, + SCIF_CLK2_MARK = 1497, + IP0SR8_19_16_MARK = 1498, + SCL2_MARK___2 = 1499, + IP1SR8_19_16_MARK = 1500, + HCTS2_N_MARK___2 = 1501, + TX4_MARK___2 = 1502, + IP0SR8_23_20_MARK = 1503, + SDA2_MARK___2 = 1504, + IP1SR8_23_20_MARK = 1505, + HSCK2_MARK___2 = 1506, + RX4_MARK___2 = 1507, + IP0SR8_27_24_MARK = 1508, + SCL3_MARK___5 = 1509, + IP0SR8_31_28_MARK = 1510, + SDA3_MARK___5 = 1511, + SEL_SDA5_0_MARK = 1512, + SEL_SDA5_1_MARK = 1513, + SEL_SCL5_0_MARK = 1514, + SEL_SCL5_1_MARK = 1515, + SEL_SDA4_0_MARK = 1516, + SEL_SDA4_1_MARK = 1517, + SEL_SCL4_0_MARK = 1518, + SEL_SCL4_1_MARK = 1519, + SEL_SDA3_0_MARK = 1520, + SEL_SDA3_1_MARK = 1521, + SEL_SCL3_0_MARK = 1522, + SEL_SCL3_1_MARK = 1523, + SEL_SDA2_0_MARK = 1524, + SEL_SDA2_1_MARK = 1525, + SEL_SCL2_0_MARK = 1526, + SEL_SCL2_1_MARK = 1527, + SEL_SDA1_0_MARK = 1528, + SEL_SDA1_1_MARK = 1529, + SEL_SCL1_0_MARK = 1530, + SEL_SCL1_1_MARK = 1531, + SEL_SDA0_0_MARK = 1532, + SEL_SDA0_1_MARK = 1533, + SEL_SCL0_0_MARK = 1534, + SEL_SCL0_1_MARK = 1535, + PINMUX_MARK_END___5 = 1536, +}; + +enum { + PINMUX_RESERVED___6 = 0, + PINMUX_DATA_BEGIN___6 = 1, + GP_0_0_DATA___6 = 2, + GP_0_1_DATA___6 = 3, + GP_0_2_DATA___6 = 4, + GP_0_3_DATA___6 = 5, + GP_0_4_DATA___6 = 6, + GP_0_5_DATA___6 = 7, + GP_0_6_DATA___6 = 8, + GP_0_7_DATA___6 = 9, + GP_0_8_DATA___6 = 10, + GP_0_9_DATA___6 = 11, + GP_0_10_DATA___6 = 12, + GP_0_11_DATA___6 = 13, + GP_0_12_DATA___6 = 14, + GP_0_13_DATA___6 = 15, + GP_0_14_DATA___6 = 16, + GP_0_15_DATA___6 = 17, + GP_0_16_DATA___3 = 18, + GP_0_17_DATA___3 = 19, + GP_0_18_DATA___3 = 20, + GP_0_19_DATA___2 = 21, + GP_0_20_DATA___2 = 22, + GP_1_0_DATA___6 = 23, + GP_1_1_DATA___6 = 24, + GP_1_2_DATA___6 = 25, + GP_1_3_DATA___6 = 26, + GP_1_4_DATA___6 = 27, + GP_1_5_DATA___6 = 28, + GP_1_6_DATA___6 = 29, + GP_1_7_DATA___6 = 30, + GP_1_8_DATA___6 = 31, + GP_1_9_DATA___6 = 32, + GP_1_10_DATA___6 = 33, + GP_1_11_DATA___6 = 34, + GP_1_12_DATA___6 = 35, + GP_1_13_DATA___6 = 36, + GP_1_14_DATA___6 = 37, + GP_1_15_DATA___6 = 38, + GP_1_16_DATA___6 = 39, + GP_1_17_DATA___6 = 40, + GP_1_18_DATA___6 = 41, + GP_1_19_DATA___6 = 42, + GP_1_20_DATA___6 = 43, + GP_1_21_DATA___6 = 44, + GP_1_22_DATA___6 = 45, + GP_1_23_DATA___6 = 46, + GP_1_24_DATA___6 = 47, + GP_2_0_DATA___6 = 48, + GP_2_1_DATA___6 = 49, + GP_2_2_DATA___6 = 50, + GP_2_3_DATA___6 = 51, + GP_2_4_DATA___6 = 52, + GP_2_5_DATA___6 = 53, + GP_2_6_DATA___6 = 54, + GP_2_7_DATA___6 = 55, + GP_2_8_DATA___6 = 56, + GP_2_9_DATA___6 = 57, + GP_2_10_DATA___6 = 58, + GP_2_11_DATA___6 = 59, + GP_2_12_DATA___6 = 60, + GP_2_13_DATA___6 = 61, + GP_2_14_DATA___6 = 62, + GP_2_15_DATA___3 = 63, + GP_2_16_DATA___3 = 64, + GP_3_0_DATA___6 = 65, + GP_3_1_DATA___6 = 66, + GP_3_2_DATA___6 = 67, + GP_3_3_DATA___6 = 68, + GP_3_4_DATA___6 = 69, + GP_3_5_DATA___6 = 70, + GP_3_6_DATA___6 = 71, + GP_3_7_DATA___6 = 72, + GP_3_8_DATA___6 = 73, + GP_3_9_DATA___6 = 74, + GP_3_10_DATA___6 = 75, + GP_3_11_DATA___6 = 76, + GP_3_12_DATA___6 = 77, + GP_3_13_DATA___6 = 78, + GP_3_14_DATA___6 = 79, + GP_3_15_DATA___6 = 80, + GP_3_16_DATA___3 = 81, + GP_3_17_DATA___2 = 82, + GP_3_18_DATA___2 = 83, + PINMUX_DATA_END___6 = 84, + PINMUX_FUNCTION_BEGIN___6 = 85, + GP_0_0_FN___6 = 86, + GP_0_1_FN___6 = 87, + GP_0_2_FN___6 = 88, + GP_0_3_FN___6 = 89, + GP_0_4_FN___6 = 90, + GP_0_5_FN___6 = 91, + GP_0_6_FN___6 = 92, + GP_0_7_FN___6 = 93, + GP_0_8_FN___6 = 94, + GP_0_9_FN___6 = 95, + GP_0_10_FN___6 = 96, + GP_0_11_FN___6 = 97, + GP_0_12_FN___6 = 98, + GP_0_13_FN___6 = 99, + GP_0_14_FN___6 = 100, + GP_0_15_FN___6 = 101, + GP_0_16_FN___3 = 102, + GP_0_17_FN___3 = 103, + GP_0_18_FN___3 = 104, + GP_0_19_FN___2 = 105, + GP_0_20_FN___2 = 106, + GP_1_0_FN___6 = 107, + GP_1_1_FN___6 = 108, + GP_1_2_FN___6 = 109, + GP_1_3_FN___6 = 110, + GP_1_4_FN___6 = 111, + GP_1_5_FN___6 = 112, + GP_1_6_FN___6 = 113, + GP_1_7_FN___6 = 114, + GP_1_8_FN___6 = 115, + GP_1_9_FN___6 = 116, + GP_1_10_FN___6 = 117, + GP_1_11_FN___6 = 118, + GP_1_12_FN___6 = 119, + GP_1_13_FN___6 = 120, + GP_1_14_FN___6 = 121, + GP_1_15_FN___6 = 122, + GP_1_16_FN___6 = 123, + GP_1_17_FN___6 = 124, + GP_1_18_FN___6 = 125, + GP_1_19_FN___6 = 126, + GP_1_20_FN___6 = 127, + GP_1_21_FN___6 = 128, + GP_1_22_FN___6 = 129, + GP_1_23_FN___6 = 130, + GP_1_24_FN___6 = 131, + GP_2_0_FN___6 = 132, + GP_2_1_FN___6 = 133, + GP_2_2_FN___6 = 134, + GP_2_3_FN___6 = 135, + GP_2_4_FN___6 = 136, + GP_2_5_FN___6 = 137, + GP_2_6_FN___6 = 138, + GP_2_7_FN___6 = 139, + GP_2_8_FN___6 = 140, + GP_2_9_FN___6 = 141, + GP_2_10_FN___6 = 142, + GP_2_11_FN___6 = 143, + GP_2_12_FN___6 = 144, + GP_2_13_FN___6 = 145, + GP_2_14_FN___6 = 146, + GP_2_15_FN___3 = 147, + GP_2_16_FN___3 = 148, + GP_3_0_FN___6 = 149, + GP_3_1_FN___6 = 150, + GP_3_2_FN___6 = 151, + GP_3_3_FN___6 = 152, + GP_3_4_FN___6 = 153, + GP_3_5_FN___6 = 154, + GP_3_6_FN___6 = 155, + GP_3_7_FN___6 = 156, + GP_3_8_FN___6 = 157, + GP_3_9_FN___6 = 158, + GP_3_10_FN___6 = 159, + GP_3_11_FN___6 = 160, + GP_3_12_FN___6 = 161, + GP_3_13_FN___6 = 162, + GP_3_14_FN___6 = 163, + GP_3_15_FN___6 = 164, + GP_3_16_FN___3 = 165, + GP_3_17_FN___2 = 166, + GP_3_18_FN___2 = 167, + FN_SD_WP___2 = 168, + FN_SD_CD___2 = 169, + FN_MMC_SD_CMD___2 = 170, + FN_MMC_D7___3 = 171, + FN_MMC_DS___3 = 172, + FN_MMC_D6___3 = 173, + FN_MMC_D4___3 = 174, + FN_TSN0_AVTP_CAPTURE_B = 175, + FN_MMC_D5___3 = 176, + FN_TSN0_AVTP_MATCH_B = 177, + FN_MMC_SD_D3___2 = 178, + FN_PCIE1_CLKREQ_N___2 = 179, + FN_TSN0_AVTP_PPS = 180, + FN_MMC_SD_D2___2 = 181, + FN_PCIE0_CLKREQ_N___2 = 182, + FN_TSN1_AVTP_CAPTURE_B = 183, + FN_MMC_SD_D1___2 = 184, + FN_QSPI0_IO3___3 = 185, + FN_TSN1_AVTP_MATCH_B = 186, + FN_MMC_SD_D0___2 = 187, + FN_QSPI0_SSL___3 = 188, + FN_TSN1_AVTP_PPS = 189, + FN_MMC_SD_CLK___2 = 190, + FN_QSPI0_MISO_IO1___3 = 191, + FN_TSN0_MAGIC_B = 192, + FN_GP1_11 = 193, + FN_QSPI0_IO2___3 = 194, + FN_TSN1_PHY_INT_B = 195, + FN_GP1_10 = 196, + FN_QSPI0_SPCLK___3 = 197, + FN_TSN0_PHY_INT_B = 198, + FN_GP1_09 = 199, + FN_QSPI0_MOSI_IO0___3 = 200, + FN_TSN2_PHY_INT_B = 201, + FN_GP1_08 = 202, + FN_QSPI1_SPCLK___3 = 203, + FN_TSN0_LINK_B = 204, + FN_QSPI1_MOSI_IO0___3 = 205, + FN_TSN2_LINK_B = 206, + FN_QSPI1_IO2___3 = 207, + FN_TSN1_LINK_B = 208, + FN_QSPI1_MISO_IO1___3 = 209, + FN_TSN1_MDC_B = 210, + FN_QSPI1_IO3___3 = 211, + FN_TSN0_MDC_B = 212, + FN_QSPI1_SSL___3 = 213, + FN_TSN2_MDC_B = 214, + FN_RPC_RESET_N___3 = 215, + FN_TSN0_MDIO_B = 216, + FN_RPC_WP_N___3 = 217, + FN_TSN2_MDIO_B = 218, + FN_RPC_INT_N___3 = 219, + FN_TSN1_MDIO_B = 220, + FN_IP0SR0_3_0___2 = 221, + FN_SCIF_CLK___2 = 222, + FN_IP1SR0_3_0___2 = 223, + FN_SCK0___6 = 224, + FN_HSCK1___2 = 225, + FN_MSIOF1_SCK___3 = 226, + FN_IP2SR0_3_0___2 = 227, + FN_MSIOF0_SS2___6 = 228, + FN_TSN2_LINK_A = 229, + FN_IP0SR0_7_4___2 = 230, + FN_HSCK0___5 = 231, + FN_SCK3___5 = 232, + FN_MSIOF3_SCK___3 = 233, + FN_TSN0_AVTP_CAPTURE_A = 234, + FN_IP1SR0_7_4___2 = 235, + FN_RTS0_N___6 = 236, + FN_HRTS1_N___2 = 237, + FN_MSIOF3_SYNC___3 = 238, + FN_TSN1_MDIO_A = 239, + FN_IP2SR0_7_4___2 = 240, + FN_IRQ0___5 = 241, + FN_MSIOF1_SS1___3 = 242, + FN_TSN0_MAGIC_A = 243, + FN_IP0SR0_11_8___2 = 244, + FN_HRX0___5 = 245, + FN_RX3___2 = 246, + FN_MSIOF3_RXD___3 = 247, + FN_TSN0_AVTP_MATCH_A = 248, + FN_IP1SR0_11_8___2 = 249, + FN_CTS0_N___6 = 250, + FN_HCTS1_N___2 = 251, + FN_MSIOF1_SYNC___3 = 252, + FN_TSN1_MDC_A = 253, + FN_IP2SR0_11_8___2 = 254, + FN_IRQ1___5 = 255, + FN_MSIOF1_SS2___3 = 256, + FN_TSN0_PHY_INT_A = 257, + FN_IP0SR0_15_12___2 = 258, + FN_HTX0___5 = 259, + FN_TX3___2 = 260, + FN_MSIOF3_TXD___3 = 261, + FN_IP1SR0_15_12___2 = 262, + FN_MSIOF0_SYNC___6 = 263, + FN_HCTS3_N___5 = 264, + FN_CTS1_N___5 = 265, + FN_IRQ4___5 = 266, + FN_TSN0_LINK_A = 267, + FN_IP2SR0_15_12 = 268, + FN_IRQ2___5 = 269, + FN_TSN1_PHY_INT_A = 270, + FN_IP0SR0_19_16___2 = 271, + FN_HCTS0_N___5 = 272, + FN_CTS3_N___5 = 273, + FN_MSIOF3_SS1___3 = 274, + FN_TSN0_MDC_A = 275, + FN_IP1SR0_19_16___2 = 276, + FN_MSIOF0_RXD___6 = 277, + FN_HRX3___2 = 278, + FN_RX1 = 279, + FN_IP2SR0_19_16 = 280, + FN_IRQ3___5 = 281, + FN_TSN2_PHY_INT_A = 282, + FN_IP0SR0_23_20___2 = 283, + FN_HRTS0_N___5 = 284, + FN_RTS3_N___5 = 285, + FN_MSIOF3_SS2___3 = 286, + FN_TSN0_MDIO_A = 287, + FN_IP1SR0_23_20___2 = 288, + FN_MSIOF0_TXD___6 = 289, + FN_HTX3___2 = 290, + FN_TX1 = 291, + FN_IP0SR0_27_24___2 = 292, + FN_RX0___6 = 293, + FN_HRX1___2 = 294, + FN_MSIOF1_RXD___3 = 295, + FN_TSN1_AVTP_MATCH_A = 296, + FN_IP1SR0_27_24___2 = 297, + FN_MSIOF0_SCK___6 = 298, + FN_HSCK3___5 = 299, + FN_SCK1___5 = 300, + FN_IP0SR0_31_28___2 = 301, + FN_TX0___6 = 302, + FN_HTX1___2 = 303, + FN_MSIOF1_TXD___3 = 304, + FN_TSN1_AVTP_CAPTURE_A = 305, + FN_IP1SR0_31_28___2 = 306, + FN_MSIOF0_SS1___6 = 307, + FN_HRTS3_N___5 = 308, + FN_RTS1_N___5 = 309, + FN_IRQ5___6 = 310, + FN_TSN1_LINK_A = 311, + FN_IP0SR1_3_0___2 = 312, + FN_GP1_00 = 313, + FN_TCLK1 = 314, + FN_HSCK2___3 = 315, + FN_IP0SR1_7_4___2 = 316, + FN_GP1_01 = 317, + FN_TCLK4___2 = 318, + FN_HRX2___3 = 319, + FN_IP0SR1_11_8___2 = 320, + FN_GP1_02 = 321, + FN_HTX2___3 = 322, + FN_MSIOF2_SS1___3 = 323, + FN_TSN2_MDC_A = 324, + FN_IP0SR1_15_12___2 = 325, + FN_GP1_03 = 326, + FN_TCLK2 = 327, + FN_HCTS2_N___3 = 328, + FN_MSIOF2_SS2___3 = 329, + FN_CTS4_N___3 = 330, + FN_TSN2_MDIO_A = 331, + FN_IP0SR1_19_16___2 = 332, + FN_GP1_04 = 333, + FN_TCLK3___2 = 334, + FN_HRTS2_N___3 = 335, + FN_MSIOF2_SYNC___3 = 336, + FN_RTS4_N___3 = 337, + FN_IP0SR1_23_20___2 = 338, + FN_GP1_05 = 339, + FN_MSIOF2_SCK___3 = 340, + FN_SCK4___3 = 341, + FN_IP0SR1_27_24___2 = 342, + FN_GP1_06 = 343, + FN_MSIOF2_RXD___3 = 344, + FN_RX4___3 = 345, + FN_IP0SR1_31_28___2 = 346, + FN_GP1_07 = 347, + FN_MSIOF2_TXD___3 = 348, + FN_TX4___3 = 349, + FN_SEL_I2C5_0 = 350, + FN_SEL_I2C5_3 = 351, + FN_SEL_I2C4_0 = 352, + FN_SEL_I2C4_3 = 353, + FN_SEL_I2C3_0 = 354, + FN_SEL_I2C3_3 = 355, + FN_SEL_I2C2_0___4 = 356, + FN_SEL_I2C2_3 = 357, + FN_SEL_I2C1_0___4 = 358, + FN_SEL_I2C1_3 = 359, + FN_SEL_I2C0_0 = 360, + FN_SEL_I2C0_3 = 361, + PINMUX_FUNCTION_END___6 = 362, + PINMUX_MARK_BEGIN___6 = 363, + SD_WP_MARK___2 = 364, + SD_CD_MARK___2 = 365, + MMC_SD_CMD_MARK___2 = 366, + MMC_D7_MARK___3 = 367, + MMC_DS_MARK___3 = 368, + MMC_D6_MARK___3 = 369, + MMC_D4_MARK___3 = 370, + TSN0_AVTP_CAPTURE_B_MARK = 371, + MMC_D5_MARK___3 = 372, + TSN0_AVTP_MATCH_B_MARK = 373, + MMC_SD_D3_MARK___2 = 374, + PCIE1_CLKREQ_N_MARK___2 = 375, + TSN0_AVTP_PPS_MARK = 376, + MMC_SD_D2_MARK___2 = 377, + PCIE0_CLKREQ_N_MARK___2 = 378, + TSN1_AVTP_CAPTURE_B_MARK = 379, + MMC_SD_D1_MARK___2 = 380, + QSPI0_IO3_MARK___6 = 381, + TSN1_AVTP_MATCH_B_MARK = 382, + MMC_SD_D0_MARK___2 = 383, + QSPI0_SSL_MARK___6 = 384, + TSN1_AVTP_PPS_MARK = 385, + MMC_SD_CLK_MARK___2 = 386, + QSPI0_MISO_IO1_MARK___6 = 387, + TSN0_MAGIC_B_MARK = 388, + GP1_11_MARK = 389, + QSPI0_IO2_MARK___6 = 390, + TSN1_PHY_INT_B_MARK = 391, + GP1_10_MARK = 392, + QSPI0_SPCLK_MARK___6 = 393, + TSN0_PHY_INT_B_MARK = 394, + GP1_09_MARK = 395, + QSPI0_MOSI_IO0_MARK___6 = 396, + TSN2_PHY_INT_B_MARK = 397, + GP1_08_MARK = 398, + QSPI1_SPCLK_MARK___6 = 399, + TSN0_LINK_B_MARK = 400, + QSPI1_MOSI_IO0_MARK___6 = 401, + TSN2_LINK_B_MARK = 402, + QSPI1_IO2_MARK___6 = 403, + TSN1_LINK_B_MARK = 404, + QSPI1_MISO_IO1_MARK___6 = 405, + TSN1_MDC_B_MARK = 406, + QSPI1_IO3_MARK___6 = 407, + TSN0_MDC_B_MARK = 408, + QSPI1_SSL_MARK___6 = 409, + TSN2_MDC_B_MARK = 410, + RPC_RESET_N_MARK___3 = 411, + TSN0_MDIO_B_MARK = 412, + RPC_WP_N_MARK___3 = 413, + TSN2_MDIO_B_MARK = 414, + RPC_INT_N_MARK___3 = 415, + TSN1_MDIO_B_MARK = 416, + IP0SR0_3_0_MARK___2 = 417, + SCIF_CLK_MARK___2 = 418, + IP1SR0_3_0_MARK___2 = 419, + SCK0_MARK___6 = 420, + HSCK1_MARK___2 = 421, + MSIOF1_SCK_MARK___3 = 422, + IP2SR0_3_0_MARK___2 = 423, + MSIOF0_SS2_MARK___6 = 424, + TSN2_LINK_A_MARK = 425, + IP0SR0_7_4_MARK___2 = 426, + HSCK0_MARK___5 = 427, + SCK3_MARK___5 = 428, + MSIOF3_SCK_MARK___3 = 429, + TSN0_AVTP_CAPTURE_A_MARK = 430, + IP1SR0_7_4_MARK___2 = 431, + RTS0_N_MARK___6 = 432, + HRTS1_N_MARK___2 = 433, + MSIOF3_SYNC_MARK___3 = 434, + TSN1_MDIO_A_MARK = 435, + IP2SR0_7_4_MARK___2 = 436, + IRQ0_MARK___5 = 437, + MSIOF1_SS1_MARK___3 = 438, + TSN0_MAGIC_A_MARK = 439, + IP0SR0_11_8_MARK___2 = 440, + HRX0_MARK___5 = 441, + RX3_MARK___2 = 442, + MSIOF3_RXD_MARK___3 = 443, + TSN0_AVTP_MATCH_A_MARK = 444, + IP1SR0_11_8_MARK___2 = 445, + CTS0_N_MARK___6 = 446, + HCTS1_N_MARK___2 = 447, + MSIOF1_SYNC_MARK___3 = 448, + TSN1_MDC_A_MARK = 449, + IP2SR0_11_8_MARK___2 = 450, + IRQ1_MARK___5 = 451, + MSIOF1_SS2_MARK___3 = 452, + TSN0_PHY_INT_A_MARK = 453, + IP0SR0_15_12_MARK___2 = 454, + HTX0_MARK___5 = 455, + TX3_MARK___2 = 456, + MSIOF3_TXD_MARK___3 = 457, + IP1SR0_15_12_MARK___2 = 458, + MSIOF0_SYNC_MARK___6 = 459, + HCTS3_N_MARK___5 = 460, + CTS1_N_MARK___5 = 461, + IRQ4_MARK___5 = 462, + TSN0_LINK_A_MARK = 463, + IP2SR0_15_12_MARK = 464, + IRQ2_MARK___5 = 465, + TSN1_PHY_INT_A_MARK = 466, + IP0SR0_19_16_MARK___2 = 467, + HCTS0_N_MARK___5 = 468, + CTS3_N_MARK___5 = 469, + MSIOF3_SS1_MARK___3 = 470, + TSN0_MDC_A_MARK = 471, + IP1SR0_19_16_MARK___2 = 472, + MSIOF0_RXD_MARK___6 = 473, + HRX3_MARK___2 = 474, + RX1_MARK = 475, + IP2SR0_19_16_MARK = 476, + IRQ3_MARK___5 = 477, + TSN2_PHY_INT_A_MARK = 478, + IP0SR0_23_20_MARK___2 = 479, + HRTS0_N_MARK___5 = 480, + RTS3_N_MARK___5 = 481, + MSIOF3_SS2_MARK___3 = 482, + TSN0_MDIO_A_MARK = 483, + IP1SR0_23_20_MARK___2 = 484, + MSIOF0_TXD_MARK___6 = 485, + HTX3_MARK___2 = 486, + TX1_MARK = 487, + IP0SR0_27_24_MARK___2 = 488, + RX0_MARK___6 = 489, + HRX1_MARK___2 = 490, + MSIOF1_RXD_MARK___3 = 491, + TSN1_AVTP_MATCH_A_MARK = 492, + IP1SR0_27_24_MARK___2 = 493, + MSIOF0_SCK_MARK___6 = 494, + HSCK3_MARK___5 = 495, + SCK1_MARK___5 = 496, + IP0SR0_31_28_MARK___2 = 497, + TX0_MARK___6 = 498, + HTX1_MARK___2 = 499, + MSIOF1_TXD_MARK___3 = 500, + TSN1_AVTP_CAPTURE_A_MARK = 501, + IP1SR0_31_28_MARK___2 = 502, + MSIOF0_SS1_MARK___6 = 503, + HRTS3_N_MARK___5 = 504, + RTS1_N_MARK___5 = 505, + IRQ5_MARK___6 = 506, + TSN1_LINK_A_MARK = 507, + IP0SR1_3_0_MARK___2 = 508, + GP1_00_MARK = 509, + TCLK1_MARK = 510, + HSCK2_MARK___3 = 511, + IP0SR1_7_4_MARK___2 = 512, + GP1_01_MARK = 513, + TCLK4_MARK___2 = 514, + HRX2_MARK___3 = 515, + IP0SR1_11_8_MARK___2 = 516, + GP1_02_MARK = 517, + HTX2_MARK___3 = 518, + MSIOF2_SS1_MARK___3 = 519, + TSN2_MDC_A_MARK = 520, + IP0SR1_15_12_MARK___2 = 521, + GP1_03_MARK = 522, + TCLK2_MARK = 523, + HCTS2_N_MARK___3 = 524, + MSIOF2_SS2_MARK___3 = 525, + CTS4_N_MARK___3 = 526, + TSN2_MDIO_A_MARK = 527, + IP0SR1_19_16_MARK___2 = 528, + GP1_04_MARK = 529, + TCLK3_MARK___2 = 530, + HRTS2_N_MARK___3 = 531, + MSIOF2_SYNC_MARK___3 = 532, + RTS4_N_MARK___3 = 533, + IP0SR1_23_20_MARK___2 = 534, + GP1_05_MARK = 535, + MSIOF2_SCK_MARK___3 = 536, + SCK4_MARK___3 = 537, + IP0SR1_27_24_MARK___2 = 538, + GP1_06_MARK = 539, + MSIOF2_RXD_MARK___3 = 540, + RX4_MARK___3 = 541, + IP0SR1_31_28_MARK___2 = 542, + GP1_07_MARK = 543, + MSIOF2_TXD_MARK___3 = 544, + TX4_MARK___3 = 545, + SEL_I2C5_0_MARK = 546, + SEL_I2C5_3_MARK = 547, + SEL_I2C4_0_MARK = 548, + SEL_I2C4_3_MARK = 549, + SEL_I2C3_0_MARK = 550, + SEL_I2C3_3_MARK = 551, + SEL_I2C2_0_MARK___4 = 552, + SEL_I2C2_3_MARK = 553, + SEL_I2C1_0_MARK___4 = 554, + SEL_I2C1_3_MARK = 555, + SEL_I2C0_0_MARK = 556, + SEL_I2C0_3_MARK = 557, + SCL0_MARK___6 = 558, + SDA0_MARK___6 = 559, + SCL1_MARK___3 = 560, + SDA1_MARK___3 = 561, + SCL2_MARK___3 = 562, + SDA2_MARK___3 = 563, + SCL3_MARK___6 = 564, + SDA3_MARK___6 = 565, + SCL4_MARK___3 = 566, + SDA4_MARK___3 = 567, + SCL5_MARK___6 = 568, + SDA5_MARK___6 = 569, + PINMUX_MARK_END___6 = 570, +}; + +enum { + PINMUX_RESERVED___7 = 0, + PINMUX_DATA_BEGIN___7 = 1, + GP_0_0_DATA___7 = 2, + GP_0_1_DATA___7 = 3, + GP_0_2_DATA___7 = 4, + GP_0_3_DATA___7 = 5, + GP_0_4_DATA___7 = 6, + GP_0_5_DATA___7 = 7, + GP_0_6_DATA___7 = 8, + GP_0_7_DATA___7 = 9, + GP_0_8_DATA___7 = 10, + GP_1_0_DATA___7 = 11, + GP_1_1_DATA___7 = 12, + GP_1_2_DATA___7 = 13, + GP_1_3_DATA___7 = 14, + GP_1_4_DATA___7 = 15, + GP_1_5_DATA___7 = 16, + GP_1_6_DATA___7 = 17, + GP_1_7_DATA___7 = 18, + GP_1_8_DATA___7 = 19, + GP_1_9_DATA___7 = 20, + GP_1_10_DATA___7 = 21, + GP_1_11_DATA___7 = 22, + GP_1_12_DATA___7 = 23, + GP_1_13_DATA___7 = 24, + GP_1_14_DATA___7 = 25, + GP_1_15_DATA___7 = 26, + GP_1_16_DATA___7 = 27, + GP_1_17_DATA___7 = 28, + GP_1_18_DATA___7 = 29, + GP_1_19_DATA___7 = 30, + GP_1_20_DATA___7 = 31, + GP_1_21_DATA___7 = 32, + GP_1_22_DATA___7 = 33, + GP_1_23_DATA___7 = 34, + GP_1_24_DATA___7 = 35, + GP_1_25_DATA___6 = 36, + GP_1_26_DATA___6 = 37, + GP_1_27_DATA___6 = 38, + GP_1_28_DATA___5 = 39, + GP_1_29_DATA = 40, + GP_1_30_DATA = 41, + GP_1_31_DATA = 42, + GP_2_0_DATA___7 = 43, + GP_2_1_DATA___7 = 44, + GP_2_2_DATA___7 = 45, + GP_2_3_DATA___7 = 46, + GP_2_4_DATA___7 = 47, + GP_2_5_DATA___7 = 48, + GP_2_6_DATA___7 = 49, + GP_2_7_DATA___7 = 50, + GP_2_8_DATA___7 = 51, + GP_2_9_DATA___7 = 52, + GP_2_10_DATA___7 = 53, + GP_2_11_DATA___7 = 54, + GP_2_12_DATA___7 = 55, + GP_2_13_DATA___7 = 56, + GP_2_14_DATA___7 = 57, + GP_2_15_DATA___4 = 58, + GP_2_16_DATA___4 = 59, + GP_2_17_DATA___3 = 60, + GP_2_18_DATA___3 = 61, + GP_2_19_DATA___3 = 62, + GP_2_20_DATA___2 = 63, + GP_2_21_DATA___2 = 64, + GP_2_22_DATA___2 = 65, + GP_2_23_DATA___2 = 66, + GP_2_24_DATA___2 = 67, + GP_2_25_DATA___2 = 68, + GP_2_26_DATA___2 = 69, + GP_2_27_DATA___2 = 70, + GP_2_28_DATA___2 = 71, + GP_2_29_DATA___2 = 72, + GP_2_30_DATA = 73, + GP_2_31_DATA = 74, + GP_3_0_DATA___7 = 75, + GP_3_1_DATA___7 = 76, + GP_3_2_DATA___7 = 77, + GP_3_3_DATA___7 = 78, + GP_3_4_DATA___7 = 79, + GP_3_5_DATA___7 = 80, + GP_3_6_DATA___7 = 81, + GP_3_7_DATA___7 = 82, + GP_3_8_DATA___7 = 83, + GP_3_9_DATA___7 = 84, + GP_4_0_DATA___6 = 85, + GP_4_1_DATA___6 = 86, + GP_4_2_DATA___6 = 87, + GP_4_3_DATA___6 = 88, + GP_4_4_DATA___6 = 89, + GP_4_5_DATA___6 = 90, + GP_4_6_DATA___6 = 91, + GP_4_7_DATA___6 = 92, + GP_4_8_DATA___6 = 93, + GP_4_9_DATA___6 = 94, + GP_4_10_DATA___6 = 95, + GP_4_11_DATA___6 = 96, + GP_4_12_DATA___6 = 97, + GP_4_13_DATA___6 = 98, + GP_4_14_DATA___6 = 99, + GP_4_15_DATA___6 = 100, + GP_4_16_DATA___6 = 101, + GP_4_17_DATA___6 = 102, + GP_4_18_DATA___3 = 103, + GP_4_19_DATA___3 = 104, + GP_4_20_DATA___3 = 105, + GP_4_21_DATA___3 = 106, + GP_4_22_DATA___3 = 107, + GP_4_23_DATA___3 = 108, + GP_4_24_DATA___3 = 109, + GP_4_25_DATA = 110, + GP_4_26_DATA = 111, + GP_4_27_DATA = 112, + GP_4_28_DATA = 113, + GP_4_29_DATA = 114, + GP_4_30_DATA = 115, + GP_4_31_DATA = 116, + GP_5_0_DATA___6 = 117, + GP_5_1_DATA___6 = 118, + GP_5_2_DATA___6 = 119, + GP_5_3_DATA___6 = 120, + GP_5_4_DATA___6 = 121, + GP_5_5_DATA___6 = 122, + GP_5_6_DATA___6 = 123, + GP_5_7_DATA___6 = 124, + GP_5_8_DATA___6 = 125, + GP_5_9_DATA___6 = 126, + GP_5_10_DATA___6 = 127, + GP_5_11_DATA___6 = 128, + GP_5_12_DATA___6 = 129, + GP_5_13_DATA___6 = 130, + GP_5_14_DATA___6 = 131, + GP_5_15_DATA___5 = 132, + GP_5_16_DATA___5 = 133, + GP_5_17_DATA___5 = 134, + GP_5_18_DATA___5 = 135, + GP_5_19_DATA___5 = 136, + GP_5_20_DATA___5 = 137, + GP_6_0_DATA___5 = 138, + GP_6_1_DATA___5 = 139, + GP_6_2_DATA___5 = 140, + GP_6_3_DATA___5 = 141, + GP_6_4_DATA___5 = 142, + GP_6_5_DATA___5 = 143, + GP_6_6_DATA___5 = 144, + GP_6_7_DATA___5 = 145, + GP_6_8_DATA___5 = 146, + GP_6_9_DATA___5 = 147, + GP_6_10_DATA___5 = 148, + GP_6_11_DATA___5 = 149, + GP_6_12_DATA___5 = 150, + GP_6_13_DATA___5 = 151, + PINMUX_DATA_END___7 = 152, + PINMUX_FUNCTION_BEGIN___7 = 153, + GP_0_0_FN___7 = 154, + GP_0_1_FN___7 = 155, + GP_0_2_FN___7 = 156, + GP_0_3_FN___7 = 157, + GP_0_4_FN___7 = 158, + GP_0_5_FN___7 = 159, + GP_0_6_FN___7 = 160, + GP_0_7_FN___7 = 161, + GP_0_8_FN___7 = 162, + GP_1_0_FN___7 = 163, + GP_1_1_FN___7 = 164, + GP_1_2_FN___7 = 165, + GP_1_3_FN___7 = 166, + GP_1_4_FN___7 = 167, + GP_1_5_FN___7 = 168, + GP_1_6_FN___7 = 169, + GP_1_7_FN___7 = 170, + GP_1_8_FN___7 = 171, + GP_1_9_FN___7 = 172, + GP_1_10_FN___7 = 173, + GP_1_11_FN___7 = 174, + GP_1_12_FN___7 = 175, + GP_1_13_FN___7 = 176, + GP_1_14_FN___7 = 177, + GP_1_15_FN___7 = 178, + GP_1_16_FN___7 = 179, + GP_1_17_FN___7 = 180, + GP_1_18_FN___7 = 181, + GP_1_19_FN___7 = 182, + GP_1_20_FN___7 = 183, + GP_1_21_FN___7 = 184, + GP_1_22_FN___7 = 185, + GP_1_23_FN___7 = 186, + GP_1_24_FN___7 = 187, + GP_1_25_FN___6 = 188, + GP_1_26_FN___6 = 189, + GP_1_27_FN___6 = 190, + GP_1_28_FN___5 = 191, + GP_1_29_FN = 192, + GP_1_30_FN = 193, + GP_1_31_FN = 194, + GP_2_0_FN___7 = 195, + GP_2_1_FN___7 = 196, + GP_2_2_FN___7 = 197, + GP_2_3_FN___7 = 198, + GP_2_4_FN___7 = 199, + GP_2_5_FN___7 = 200, + GP_2_6_FN___7 = 201, + GP_2_7_FN___7 = 202, + GP_2_8_FN___7 = 203, + GP_2_9_FN___7 = 204, + GP_2_10_FN___7 = 205, + GP_2_11_FN___7 = 206, + GP_2_12_FN___7 = 207, + GP_2_13_FN___7 = 208, + GP_2_14_FN___7 = 209, + GP_2_15_FN___4 = 210, + GP_2_16_FN___4 = 211, + GP_2_17_FN___3 = 212, + GP_2_18_FN___3 = 213, + GP_2_19_FN___3 = 214, + GP_2_20_FN___2 = 215, + GP_2_21_FN___2 = 216, + GP_2_22_FN___2 = 217, + GP_2_23_FN___2 = 218, + GP_2_24_FN___2 = 219, + GP_2_25_FN___2 = 220, + GP_2_26_FN___2 = 221, + GP_2_27_FN___2 = 222, + GP_2_28_FN___2 = 223, + GP_2_29_FN___2 = 224, + GP_2_30_FN = 225, + GP_2_31_FN = 226, + GP_3_0_FN___7 = 227, + GP_3_1_FN___7 = 228, + GP_3_2_FN___7 = 229, + GP_3_3_FN___7 = 230, + GP_3_4_FN___7 = 231, + GP_3_5_FN___7 = 232, + GP_3_6_FN___7 = 233, + GP_3_7_FN___7 = 234, + GP_3_8_FN___7 = 235, + GP_3_9_FN___7 = 236, + GP_4_0_FN___6 = 237, + GP_4_1_FN___6 = 238, + GP_4_2_FN___6 = 239, + GP_4_3_FN___6 = 240, + GP_4_4_FN___6 = 241, + GP_4_5_FN___6 = 242, + GP_4_6_FN___6 = 243, + GP_4_7_FN___6 = 244, + GP_4_8_FN___6 = 245, + GP_4_9_FN___6 = 246, + GP_4_10_FN___6 = 247, + GP_4_11_FN___6 = 248, + GP_4_12_FN___6 = 249, + GP_4_13_FN___6 = 250, + GP_4_14_FN___6 = 251, + GP_4_15_FN___6 = 252, + GP_4_16_FN___6 = 253, + GP_4_17_FN___6 = 254, + GP_4_18_FN___3 = 255, + GP_4_19_FN___3 = 256, + GP_4_20_FN___3 = 257, + GP_4_21_FN___3 = 258, + GP_4_22_FN___3 = 259, + GP_4_23_FN___3 = 260, + GP_4_24_FN___3 = 261, + GP_4_25_FN = 262, + GP_4_26_FN = 263, + GP_4_27_FN = 264, + GP_4_28_FN = 265, + GP_4_29_FN = 266, + GP_4_30_FN = 267, + GP_4_31_FN = 268, + GP_5_0_FN___6 = 269, + GP_5_1_FN___6 = 270, + GP_5_2_FN___6 = 271, + GP_5_3_FN___6 = 272, + GP_5_4_FN___6 = 273, + GP_5_5_FN___6 = 274, + GP_5_6_FN___6 = 275, + GP_5_7_FN___6 = 276, + GP_5_8_FN___6 = 277, + GP_5_9_FN___6 = 278, + GP_5_10_FN___6 = 279, + GP_5_11_FN___6 = 280, + GP_5_12_FN___6 = 281, + GP_5_13_FN___6 = 282, + GP_5_14_FN___6 = 283, + GP_5_15_FN___5 = 284, + GP_5_16_FN___5 = 285, + GP_5_17_FN___5 = 286, + GP_5_18_FN___5 = 287, + GP_5_19_FN___5 = 288, + GP_5_20_FN___5 = 289, + GP_6_0_FN___5 = 290, + GP_6_1_FN___5 = 291, + GP_6_2_FN___5 = 292, + GP_6_3_FN___5 = 293, + GP_6_4_FN___5 = 294, + GP_6_5_FN___5 = 295, + GP_6_6_FN___5 = 296, + GP_6_7_FN___5 = 297, + GP_6_8_FN___5 = 298, + GP_6_9_FN___5 = 299, + GP_6_10_FN___5 = 300, + GP_6_11_FN___5 = 301, + GP_6_12_FN___5 = 302, + GP_6_13_FN___5 = 303, + FN_TX2 = 304, + FN_RX2 = 305, + FN_AVB0_LINK___2 = 306, + FN_AVB0_PHY_INT___2 = 307, + FN_AVB0_MAGIC___2 = 308, + FN_AVB0_MDC___2 = 309, + FN_AVB0_MDIO___2 = 310, + FN_MSIOF0_RXD___7 = 311, + FN_AVB0_TXCREFCLK___2 = 312, + FN_MSIOF0_TXD___7 = 313, + FN_AVB0_TD3___2 = 314, + FN_MSIOF0_SYNC___7 = 315, + FN_AVB0_TD2___2 = 316, + FN_RPC_INT_N___4 = 317, + FN_MSIOF0_SCK___7 = 318, + FN_AVB0_TD1___2 = 319, + FN_RPC_RESET_N___4 = 320, + FN_AVB0_TD0___2 = 321, + FN_QSPI1_SSL___4 = 322, + FN_AVB0_TXC___2 = 323, + FN_QSPI1_IO3___4 = 324, + FN_SDA0___3 = 325, + FN_AVB0_TX_CTL___2 = 326, + FN_QSPI1_IO2___4 = 327, + FN_SCL0___3 = 328, + FN_AVB0_RD3___2 = 329, + FN_QSPI1_MISO_IO1___4 = 330, + FN_AVB0_RD2___2 = 331, + FN_QSPI1_MOSI_IO0___4 = 332, + FN_AVB0_RD1___2 = 333, + FN_QSPI1_SPCLK___4 = 334, + FN_VI4_DATA4 = 335, + FN_AVB0_RD0___2 = 336, + FN_QSPI0_SSL___4 = 337, + FN_AVB0_RXC___2 = 338, + FN_QSPI0_IO3___4 = 339, + FN_AVB0_RX_CTL___2 = 340, + FN_QSPI0_IO2___4 = 341, + FN_QSPI0_MISO_IO1___4 = 342, + FN_USB0_OVC___4 = 343, + FN_QSPI0_MOSI_IO0___4 = 344, + FN_USB0_PWEN___4 = 345, + FN_VI4_CLK___4 = 346, + FN_QSPI0_SPCLK___4 = 347, + FN_IP0_3_0___5 = 348, + FN_IRQ0_A___2 = 349, + FN_MSIOF2_SYNC_B___4 = 350, + FN_IP1_3_0___5 = 351, + FN_DU_DB1___5 = 352, + FN_LCDOUT1___4 = 353, + FN_MSIOF3_RXD_B___4 = 354, + FN_IP2_3_0___5 = 355, + FN_DU_DG1___5 = 356, + FN_LCDOUT9___4 = 357, + FN_MSIOF3_SYNC_B___4 = 358, + FN_IP3_3_0___5 = 359, + FN_DU_DR1___5 = 360, + FN_LCDOUT17___4 = 361, + FN_TX4_B___4 = 362, + FN_IP0_7_4___5 = 363, + FN_MSIOF2_SCK___4 = 364, + FN_IP1_7_4___5 = 365, + FN_DU_DB2___5 = 366, + FN_LCDOUT2___4 = 367, + FN_IRQ0_B___2 = 368, + FN_IP2_7_4___5 = 369, + FN_DU_DG2___5 = 370, + FN_LCDOUT10___4 = 371, + FN_IP3_7_4___5 = 372, + FN_DU_DR2___5 = 373, + FN_LCDOUT18___4 = 374, + FN_PWM0_B___2 = 375, + FN_IP0_11_8___5 = 376, + FN_MSIOF2_TXD___4 = 377, + FN_SCL3_A = 378, + FN_IP1_11_8___5 = 379, + FN_DU_DB3___5 = 380, + FN_LCDOUT3___4 = 381, + FN_SCK5_B___4 = 382, + FN_IP2_11_8___5 = 383, + FN_DU_DG3___5 = 384, + FN_LCDOUT11___4 = 385, + FN_IRQ1_A___2 = 386, + FN_IP3_11_8___5 = 387, + FN_DU_DR3___5 = 388, + FN_LCDOUT19___4 = 389, + FN_PWM1_B___6 = 390, + FN_IP0_15_12___5 = 391, + FN_MSIOF2_RXD___4 = 392, + FN_SDA3_A = 393, + FN_IP1_15_12___5 = 394, + FN_DU_DB4___5 = 395, + FN_LCDOUT4___4 = 396, + FN_RX5_B___4 = 397, + FN_IP2_15_12___5 = 398, + FN_DU_DG4___5 = 399, + FN_LCDOUT12___4 = 400, + FN_HSCK3_B___2 = 401, + FN_IP3_15_12___5 = 402, + FN_DU_DR4___5 = 403, + FN_LCDOUT20___4 = 404, + FN_TCLK2_B___6 = 405, + FN_IP0_19_16___5 = 406, + FN_MLB_CLK___4 = 407, + FN_MSIOF2_SYNC_A___4 = 408, + FN_SCK5_A___4 = 409, + FN_IP1_19_16___5 = 410, + FN_DU_DB5___5 = 411, + FN_LCDOUT5___4 = 412, + FN_TX5_B___4 = 413, + FN_IP2_19_16___5 = 414, + FN_DU_DG5___5 = 415, + FN_LCDOUT13___4 = 416, + FN_HTX3_B___5 = 417, + FN_IP3_19_16___5 = 418, + FN_DU_DR5___5 = 419, + FN_LCDOUT21___4 = 420, + FN_NMI = 421, + FN_IP0_23_20___5 = 422, + FN_MLB_DAT___4 = 423, + FN_MSIOF2_SS1___4 = 424, + FN_RX5_A___4 = 425, + FN_SCL3_B = 426, + FN_IP1_23_20___5 = 427, + FN_DU_DB6___5 = 428, + FN_LCDOUT6___4 = 429, + FN_MSIOF3_SS1_B___4 = 430, + FN_IP2_23_20___5 = 431, + FN_DU_DG6___5 = 432, + FN_LCDOUT14___4 = 433, + FN_HRX3_B___5 = 434, + FN_IP3_23_20___5 = 435, + FN_DU_DR6___5 = 436, + FN_LCDOUT22___4 = 437, + FN_PWM2_B___5 = 438, + FN_IP0_27_24___5 = 439, + FN_MLB_SIG___4 = 440, + FN_MSIOF2_SS2___4 = 441, + FN_TX5_A___4 = 442, + FN_SDA3_B = 443, + FN_IP1_27_24___5 = 444, + FN_DU_DB7___5 = 445, + FN_LCDOUT7___4 = 446, + FN_MSIOF3_SS2_B___4 = 447, + FN_IP2_27_24___5 = 448, + FN_DU_DG7___5 = 449, + FN_LCDOUT15___4 = 450, + FN_SCK4_B___4 = 451, + FN_IP3_27_24___5 = 452, + FN_DU_DR7___5 = 453, + FN_LCDOUT23___4 = 454, + FN_TCLK1_B___6 = 455, + FN_IP0_31_28___5 = 456, + FN_DU_DB0___5 = 457, + FN_LCDOUT0___4 = 458, + FN_MSIOF3_TXD_B___4 = 459, + FN_IP1_31_28___5 = 460, + FN_DU_DG0___5 = 461, + FN_LCDOUT8___4 = 462, + FN_MSIOF3_SCK_B___4 = 463, + FN_IP2_31_28___5 = 464, + FN_DU_DR0___5 = 465, + FN_LCDOUT16___4 = 466, + FN_RX4_B___4 = 467, + FN_IP3_31_28___5 = 468, + FN_DU_DOTCLKOUT0___4 = 469, + FN_QCLK___4 = 470, + FN_IP4_3_0___5 = 471, + FN_DU_HSYNC = 472, + FN_QSTH_QHS___4 = 473, + FN_IRQ3_A___2 = 474, + FN_IP5_3_0___5 = 475, + FN_VI4_DATA1 = 476, + FN_PWM1_A___6 = 477, + FN_IP6_3_0___5 = 478, + FN_VI4_DATA10___4 = 479, + FN_RX4_A___4 = 480, + FN_IP7_3_0___5 = 481, + FN_VI4_DATA18___4 = 482, + FN_HSCK3_A___2 = 483, + FN_IP4_7_4___5 = 484, + FN_DU_VSYNC = 485, + FN_QSTVA_QVS___4 = 486, + FN_IRQ4_A___2 = 487, + FN_IP5_7_4___5 = 488, + FN_VI4_DATA2 = 489, + FN_PWM2_A___5 = 490, + FN_IP6_7_4___5 = 491, + FN_VI4_DATA11___4 = 492, + FN_TX4_A___4 = 493, + FN_IP7_7_4___5 = 494, + FN_VI4_DATA19___4 = 495, + FN_SSI_WS4_B = 496, + FN_NFDATA15 = 497, + FN_IP4_11_8___5 = 498, + FN_DU_DISP___5 = 499, + FN_QSTVB_QVE___4 = 500, + FN_PWM3_B___6 = 501, + FN_IP5_11_8___5 = 502, + FN_VI4_DATA3 = 503, + FN_PWM3_A___6 = 504, + FN_IP6_11_8___5 = 505, + FN_VI4_DATA12___4 = 506, + FN_TCLK1_A___6 = 507, + FN_IP7_11_8___5 = 508, + FN_VI4_DATA20___4 = 509, + FN_MSIOF3_SYNC_A___4 = 510, + FN_NFDATA14 = 511, + FN_IP4_15_12___5 = 512, + FN_DU_DISP_CDE = 513, + FN_QCPV_QDE___4 = 514, + FN_IRQ2_B___2 = 515, + FN_DU_DOTCLKIN1 = 516, + FN_IP5_15_12___5 = 517, + FN_VI4_DATA5 = 518, + FN_SCK4_A___4 = 519, + FN_IP6_15_12___5 = 520, + FN_VI4_DATA13___4 = 521, + FN_MSIOF3_SS1_A___4 = 522, + FN_HCTS3_N___6 = 523, + FN_IP7_15_12___2 = 524, + FN_VI4_DATA21___4 = 525, + FN_MSIOF3_TXD_A___4 = 526, + FN_NFDATA13___4 = 527, + FN_IP4_19_16___5 = 528, + FN_DU_CDE___5 = 529, + FN_QSTB_QHE___4 = 530, + FN_SCK3_B___2 = 531, + FN_IP5_19_16___5 = 532, + FN_VI4_DATA6 = 533, + FN_IRQ2_A___2 = 534, + FN_IP6_19_16___5 = 535, + FN_VI4_DATA14___4 = 536, + FN_SSI_SCK4_B = 537, + FN_HRTS3_N___6 = 538, + FN_IP7_19_16___5 = 539, + FN_VI4_DATA22___4 = 540, + FN_MSIOF3_RXD_A___4 = 541, + FN_NFDATA12___4 = 542, + FN_IP4_23_20___5 = 543, + FN_QPOLA___4 = 544, + FN_RX3_B___5 = 545, + FN_IP5_23_20___5 = 546, + FN_VI4_DATA7 = 547, + FN_TCLK2_A___6 = 548, + FN_IP6_23_20___5 = 549, + FN_VI4_DATA15___4 = 550, + FN_SSI_SDATA4_B = 551, + FN_IP7_23_20___5 = 552, + FN_VI4_DATA23___4 = 553, + FN_MSIOF3_SCK_A___4 = 554, + FN_NFDATA11___4 = 555, + FN_IP4_27_24___5 = 556, + FN_QPOLB___4 = 557, + FN_TX3_B___5 = 558, + FN_IP5_27_24___5 = 559, + FN_VI4_DATA8___4 = 560, + FN_IP6_27_24___5 = 561, + FN_VI4_DATA16___4 = 562, + FN_HRX3_A___5 = 563, + FN_IP7_27_24___5 = 564, + FN_VI4_VSYNC_N___4 = 565, + FN_SCK1_B___2 = 566, + FN_NFDATA10___4 = 567, + FN_IP4_31_28___5 = 568, + FN_VI4_DATA0 = 569, + FN_PWM0_A___2 = 570, + FN_IP5_31_28___5 = 571, + FN_VI4_DATA9___4 = 572, + FN_MSIOF3_SS2_A___4 = 573, + FN_IRQ1_B___2 = 574, + FN_IP6_31_28___5 = 575, + FN_VI4_DATA17___4 = 576, + FN_HTX3_A___5 = 577, + FN_IP7_31_28___5 = 578, + FN_VI4_HSYNC_N___4 = 579, + FN_RX1_B___6 = 580, + FN_NFDATA9___4 = 581, + FN_IP8_3_0___5 = 582, + FN_VI4_FIELD___4 = 583, + FN_AUDIO_CLKB = 584, + FN_IRQ5_A = 585, + FN_SCIF_CLK___3 = 586, + FN_NFDATA8___4 = 587, + FN_IP9_3_0___5 = 588, + FN_NFDATA0___4 = 589, + FN_MMC_D0___2 = 590, + FN_IP10_3_0___5 = 591, + FN_AUDIO_CLKA = 592, + FN_DVC_MUTE_B = 593, + FN_IP11_3_0___4 = 594, + FN_SDA1___3 = 595, + FN_RTS1_N___6 = 596, + FN_IP8_7_4___5 = 597, + FN_VI4_CLKENB___4 = 598, + FN_TX1_B___6 = 599, + FN_NFWP_N = 600, + FN_DVC_MUTE_A = 601, + FN_IP9_7_4___5 = 602, + FN_NFDATA1___4 = 603, + FN_MMC_D1___2 = 604, + FN_IP10_7_4___5 = 605, + FN_SSI_SCK34 = 606, + FN_FSO_CFE_0_N_A = 607, + FN_IP11_7_4___4 = 608, + FN_MSIOF1_SCK___4 = 609, + FN_AVB0_AVTP_PPS_B = 610, + FN_IP8_11_8___5 = 611, + FN_NFALE___4 = 612, + FN_SCL2_B___4 = 613, + FN_IRQ3_B___2 = 614, + FN_PWM0_C = 615, + FN_IP9_11_8___5 = 616, + FN_NFDATA2___4 = 617, + FN_MMC_D2___2 = 618, + FN_IP10_11_8___5 = 619, + FN_SSI_SDATA3___4 = 620, + FN_FSO_CFE_1_N_A = 621, + FN_IP11_11_8___4 = 622, + FN_MSIOF1_TXD___4 = 623, + FN_AVB0_AVTP_CAPTURE_B = 624, + FN_IP8_15_12___5 = 625, + FN_NFCLE___4 = 626, + FN_SDA2_B___4 = 627, + FN_SCK3_A___2 = 628, + FN_PWM1_C = 629, + FN_IP9_15_12___5 = 630, + FN_NFDATA3___4 = 631, + FN_MMC_D3___2 = 632, + FN_IP10_15_12___5 = 633, + FN_SSI_WS34 = 634, + FN_FSO_TOE_N_A = 635, + FN_IP11_15_12___4 = 636, + FN_MSIOF1_RXD___4 = 637, + FN_AVB0_AVTP_MATCH_B = 638, + FN_IP8_19_16___5 = 639, + FN_NFCE_N = 640, + FN_RX3_A___5 = 641, + FN_PWM2_C = 642, + FN_IP9_19_16___5 = 643, + FN_NFDATA4___4 = 644, + FN_MMC_D4___4 = 645, + FN_IP10_19_16___5 = 646, + FN_SSI_SCK4_A = 647, + FN_HSCK0___6 = 648, + FN_AUDIO_CLKOUT___2 = 649, + FN_CAN0_RX_B___4 = 650, + FN_IRQ4_B___2 = 651, + FN_IP11_19_16___4 = 652, + FN_SCK0_A = 653, + FN_MSIOF1_SYNC___4 = 654, + FN_FSO_CFE_0_N_B = 655, + FN_IP8_23_20___5 = 656, + FN_NFRB_N = 657, + FN_TX3_A___5 = 658, + FN_PWM3_C = 659, + FN_IP9_23_20___5 = 660, + FN_NFDATA5___4 = 661, + FN_MMC_D5___4 = 662, + FN_IP10_23_20___4 = 663, + FN_SSI_SDATA4_A = 664, + FN_HTX0___6 = 665, + FN_SCL2_A___4 = 666, + FN_CAN1_RX_B = 667, + FN_IP11_23_20___4 = 668, + FN_RX0_A = 669, + FN_MSIOF0_SS1___7 = 670, + FN_FSO_CFE_1_N_B = 671, + FN_IP8_27_24___5 = 672, + FN_NFRE_N___4 = 673, + FN_MMC_CMD___2 = 674, + FN_IP9_27_24___5 = 675, + FN_NFDATA6___4 = 676, + FN_MMC_D6___4 = 677, + FN_IP10_27_24___4 = 678, + FN_SSI_WS4_A = 679, + FN_HRX0___6 = 680, + FN_SDA2_A___4 = 681, + FN_CAN1_TX_B = 682, + FN_IP11_27_24___4 = 683, + FN_TX0_A = 684, + FN_MSIOF0_SS2___7 = 685, + FN_FSO_TOE_N_B = 686, + FN_IP8_31_28___5 = 687, + FN_NFWE_N___4 = 688, + FN_MMC_CLK___2 = 689, + FN_IP9_31_28___5 = 690, + FN_NFDATA7___4 = 691, + FN_MMC_D7___4 = 692, + FN_IP10_31_28___4 = 693, + FN_SCL1___3 = 694, + FN_CTS1_N___6 = 695, + FN_IP11_31_28___4 = 696, + FN_SCK1_A___2 = 697, + FN_MSIOF1_SS2___4 = 698, + FN_TPU0TO2_B___2 = 699, + FN_CAN0_TX_B___4 = 700, + FN_AUDIO_CLKOUT1 = 701, + FN_IP12_3_0___4 = 702, + FN_RX1_A___6 = 703, + FN_CTS0_N___7 = 704, + FN_TPU0TO0_B___2 = 705, + FN_IP13_3_0___4 = 706, + FN_CAN1_RX_A = 707, + FN_CANFD1_RX___6 = 708, + FN_TPU0TO2_A___2 = 709, + FN_IP12_7_4___4 = 710, + FN_TX1_A___6 = 711, + FN_RTS0_N___7 = 712, + FN_TPU0TO1_B___2 = 713, + FN_IP13_7_4___4 = 714, + FN_CAN1_TX_A = 715, + FN_CANFD1_TX___6 = 716, + FN_TPU0TO3_A___2 = 717, + FN_IP12_11_8___4 = 718, + FN_SCK2___4 = 719, + FN_MSIOF1_SS1___4 = 720, + FN_TPU0TO3_B___2 = 721, + FN_IP12_15_12___4 = 722, + FN_TPU0TO0_A___2 = 723, + FN_AVB0_AVTP_CAPTURE_A = 724, + FN_HCTS0_N___6 = 725, + FN_IP12_19_16___4 = 726, + FN_TPU0TO1_A___2 = 727, + FN_AVB0_AVTP_MATCH_A = 728, + FN_HRTS0_N___6 = 729, + FN_IP12_23_20___4 = 730, + FN_CAN_CLK___5 = 731, + FN_AVB0_AVTP_PPS_A = 732, + FN_SCK0_B = 733, + FN_IRQ5_B = 734, + FN_IP12_27_24___4 = 735, + FN_CAN0_RX_A___4 = 736, + FN_CANFD0_RX___2 = 737, + FN_RX0_B = 738, + FN_IP12_31_28___4 = 739, + FN_CAN0_TX_A___4 = 740, + FN_CANFD0_TX___2 = 741, + FN_TX0_B = 742, + FN_SEL_CAN0_0 = 743, + FN_SEL_CAN0_1 = 744, + FN_SEL_MSIOF2_0___4 = 745, + FN_SEL_MSIOF2_1___4 = 746, + FN_SEL_CAN1_0 = 747, + FN_SEL_CAN1_1 = 748, + FN_SEL_I2C3_0___2 = 749, + FN_SEL_I2C3_1 = 750, + FN_SEL_I2C2_0___5 = 751, + FN_SEL_I2C2_1___4 = 752, + FN_SEL_SCIF5_0___4 = 753, + FN_SEL_SCIF5_1___4 = 754, + FN_SEL_ETHERAVB_0___4 = 755, + FN_SEL_ETHERAVB_1___4 = 756, + FN_SEL_MSIOF3_0___4 = 757, + FN_SEL_MSIOF3_1___4 = 758, + FN_SEL_SCIF0_0 = 759, + FN_SEL_SCIF0_1 = 760, + FN_SEL_HSCIF3_0___4 = 761, + FN_SEL_HSCIF3_1___4 = 762, + FN_SEL_SSIF4_0 = 763, + FN_SEL_SSIF4_1 = 764, + FN_SEL_SCIF4_0___4 = 765, + FN_SEL_SCIF4_1___4 = 766, + FN_SEL_PWM0_0___2 = 767, + FN_SEL_PWM0_2 = 768, + FN_SEL_PWM0_1___2 = 769, + FN_SEL_PWM1_0___5 = 770, + FN_SEL_PWM1_2 = 771, + FN_SEL_PWM1_1___5 = 772, + FN_SEL_PWM2_0___5 = 773, + FN_SEL_PWM2_2 = 774, + FN_SEL_PWM2_1___5 = 775, + FN_SEL_PWM3_0___5 = 776, + FN_SEL_PWM3_2 = 777, + FN_SEL_PWM3_1___5 = 778, + FN_SEL_IRQ_0_0 = 779, + FN_SEL_IRQ_0_1 = 780, + FN_SEL_IRQ_1_0 = 781, + FN_SEL_IRQ_1_1 = 782, + FN_SEL_IRQ_2_0 = 783, + FN_SEL_IRQ_2_1 = 784, + FN_SEL_IRQ_3_0 = 785, + FN_SEL_IRQ_3_1 = 786, + FN_SEL_IRQ_4_0 = 787, + FN_SEL_IRQ_4_1 = 788, + FN_SEL_IRQ_5_0 = 789, + FN_SEL_IRQ_5_1 = 790, + FN_SEL_TMU_0_0 = 791, + FN_SEL_TMU_0_1 = 792, + FN_SEL_TMU_1_0 = 793, + FN_SEL_TMU_1_1 = 794, + FN_SEL_SCIF3_0___4 = 795, + FN_SEL_SCIF3_1___4 = 796, + FN_SEL_SCIF1_0___5 = 797, + FN_SEL_SCIF1_1___5 = 798, + FN_SEL_SCU_0 = 799, + FN_SEL_SCU_1 = 800, + FN_SEL_RFSO_0 = 801, + FN_SEL_RFSO_1 = 802, + PINMUX_FUNCTION_END___7 = 803, + PINMUX_MARK_BEGIN___7 = 804, + TX2_MARK = 805, + RX2_MARK = 806, + AVB0_LINK_MARK___2 = 807, + AVB0_PHY_INT_MARK___2 = 808, + AVB0_MAGIC_MARK___2 = 809, + AVB0_MDC_MARK___2 = 810, + AVB0_MDIO_MARK___2 = 811, + MSIOF0_RXD_MARK___7 = 812, + AVB0_TXCREFCLK_MARK___2 = 813, + MSIOF0_TXD_MARK___7 = 814, + AVB0_TD3_MARK___2 = 815, + MSIOF0_SYNC_MARK___7 = 816, + AVB0_TD2_MARK___2 = 817, + RPC_INT_N_MARK___4 = 818, + MSIOF0_SCK_MARK___7 = 819, + AVB0_TD1_MARK___2 = 820, + RPC_RESET_N_MARK___4 = 821, + AVB0_TD0_MARK___2 = 822, + QSPI1_SSL_MARK___7 = 823, + AVB0_TXC_MARK___2 = 824, + QSPI1_IO3_MARK___7 = 825, + SDA0_MARK___7 = 826, + AVB0_TX_CTL_MARK___2 = 827, + QSPI1_IO2_MARK___7 = 828, + SCL0_MARK___7 = 829, + AVB0_RD3_MARK___2 = 830, + QSPI1_MISO_IO1_MARK___7 = 831, + AVB0_RD2_MARK___2 = 832, + QSPI1_MOSI_IO0_MARK___7 = 833, + AVB0_RD1_MARK___2 = 834, + QSPI1_SPCLK_MARK___7 = 835, + VI4_DATA4_MARK = 836, + AVB0_RD0_MARK___2 = 837, + QSPI0_SSL_MARK___7 = 838, + AVB0_RXC_MARK___2 = 839, + QSPI0_IO3_MARK___7 = 840, + AVB0_RX_CTL_MARK___2 = 841, + QSPI0_IO2_MARK___7 = 842, + QSPI0_MISO_IO1_MARK___7 = 843, + USB0_OVC_MARK___4 = 844, + QSPI0_MOSI_IO0_MARK___7 = 845, + USB0_PWEN_MARK___4 = 846, + VI4_CLK_MARK___4 = 847, + QSPI0_SPCLK_MARK___7 = 848, + IP0_3_0_MARK___5 = 849, + IRQ0_A_MARK___2 = 850, + MSIOF2_SYNC_B_MARK___4 = 851, + IP1_3_0_MARK___5 = 852, + DU_DB1_MARK___5 = 853, + LCDOUT1_MARK___4 = 854, + MSIOF3_RXD_B_MARK___4 = 855, + IP2_3_0_MARK___5 = 856, + DU_DG1_MARK___5 = 857, + LCDOUT9_MARK___4 = 858, + MSIOF3_SYNC_B_MARK___4 = 859, + IP3_3_0_MARK___5 = 860, + DU_DR1_MARK___5 = 861, + LCDOUT17_MARK___4 = 862, + TX4_B_MARK___4 = 863, + IP0_7_4_MARK___5 = 864, + MSIOF2_SCK_MARK___4 = 865, + IP1_7_4_MARK___5 = 866, + DU_DB2_MARK___5 = 867, + LCDOUT2_MARK___4 = 868, + IRQ0_B_MARK___2 = 869, + IP2_7_4_MARK___5 = 870, + DU_DG2_MARK___5 = 871, + LCDOUT10_MARK___4 = 872, + IP3_7_4_MARK___5 = 873, + DU_DR2_MARK___5 = 874, + LCDOUT18_MARK___4 = 875, + PWM0_B_MARK___2 = 876, + IP0_11_8_MARK___5 = 877, + MSIOF2_TXD_MARK___4 = 878, + SCL3_A_MARK = 879, + IP1_11_8_MARK___5 = 880, + DU_DB3_MARK___5 = 881, + LCDOUT3_MARK___4 = 882, + SCK5_B_MARK___4 = 883, + IP2_11_8_MARK___5 = 884, + DU_DG3_MARK___5 = 885, + LCDOUT11_MARK___4 = 886, + IRQ1_A_MARK___2 = 887, + IP3_11_8_MARK___5 = 888, + DU_DR3_MARK___5 = 889, + LCDOUT19_MARK___4 = 890, + PWM1_B_MARK___6 = 891, + IP0_15_12_MARK___5 = 892, + MSIOF2_RXD_MARK___4 = 893, + SDA3_A_MARK = 894, + IP1_15_12_MARK___5 = 895, + DU_DB4_MARK___5 = 896, + LCDOUT4_MARK___4 = 897, + RX5_B_MARK___4 = 898, + IP2_15_12_MARK___5 = 899, + DU_DG4_MARK___5 = 900, + LCDOUT12_MARK___4 = 901, + HSCK3_B_MARK___2 = 902, + IP3_15_12_MARK___5 = 903, + DU_DR4_MARK___5 = 904, + LCDOUT20_MARK___4 = 905, + TCLK2_B_MARK___6 = 906, + IP0_19_16_MARK___5 = 907, + MLB_CLK_MARK___4 = 908, + MSIOF2_SYNC_A_MARK___4 = 909, + SCK5_A_MARK___4 = 910, + IP1_19_16_MARK___5 = 911, + DU_DB5_MARK___5 = 912, + LCDOUT5_MARK___4 = 913, + TX5_B_MARK___4 = 914, + IP2_19_16_MARK___5 = 915, + DU_DG5_MARK___5 = 916, + LCDOUT13_MARK___4 = 917, + HTX3_B_MARK___5 = 918, + IP3_19_16_MARK___5 = 919, + DU_DR5_MARK___5 = 920, + LCDOUT21_MARK___4 = 921, + NMI_MARK = 922, + IP0_23_20_MARK___5 = 923, + MLB_DAT_MARK___4 = 924, + MSIOF2_SS1_MARK___4 = 925, + RX5_A_MARK___4 = 926, + SCL3_B_MARK = 927, + IP1_23_20_MARK___5 = 928, + DU_DB6_MARK___5 = 929, + LCDOUT6_MARK___4 = 930, + MSIOF3_SS1_B_MARK___4 = 931, + IP2_23_20_MARK___5 = 932, + DU_DG6_MARK___5 = 933, + LCDOUT14_MARK___4 = 934, + HRX3_B_MARK___5 = 935, + IP3_23_20_MARK___5 = 936, + DU_DR6_MARK___5 = 937, + LCDOUT22_MARK___4 = 938, + PWM2_B_MARK___5 = 939, + IP0_27_24_MARK___5 = 940, + MLB_SIG_MARK___4 = 941, + MSIOF2_SS2_MARK___4 = 942, + TX5_A_MARK___4 = 943, + SDA3_B_MARK = 944, + IP1_27_24_MARK___5 = 945, + DU_DB7_MARK___5 = 946, + LCDOUT7_MARK___4 = 947, + MSIOF3_SS2_B_MARK___4 = 948, + IP2_27_24_MARK___5 = 949, + DU_DG7_MARK___5 = 950, + LCDOUT15_MARK___4 = 951, + SCK4_B_MARK___4 = 952, + IP3_27_24_MARK___5 = 953, + DU_DR7_MARK___5 = 954, + LCDOUT23_MARK___4 = 955, + TCLK1_B_MARK___6 = 956, + IP0_31_28_MARK___5 = 957, + DU_DB0_MARK___5 = 958, + LCDOUT0_MARK___4 = 959, + MSIOF3_TXD_B_MARK___4 = 960, + IP1_31_28_MARK___5 = 961, + DU_DG0_MARK___5 = 962, + LCDOUT8_MARK___4 = 963, + MSIOF3_SCK_B_MARK___4 = 964, + IP2_31_28_MARK___5 = 965, + DU_DR0_MARK___5 = 966, + LCDOUT16_MARK___4 = 967, + RX4_B_MARK___4 = 968, + IP3_31_28_MARK___5 = 969, + DU_DOTCLKOUT0_MARK___4 = 970, + QCLK_MARK___4 = 971, + IP4_3_0_MARK___5 = 972, + DU_HSYNC_MARK = 973, + QSTH_QHS_MARK___4 = 974, + IRQ3_A_MARK___2 = 975, + IP5_3_0_MARK___5 = 976, + VI4_DATA1_MARK = 977, + PWM1_A_MARK___6 = 978, + IP6_3_0_MARK___5 = 979, + VI4_DATA10_MARK___4 = 980, + RX4_A_MARK___4 = 981, + IP7_3_0_MARK___5 = 982, + VI4_DATA18_MARK___4 = 983, + HSCK3_A_MARK___2 = 984, + IP4_7_4_MARK___5 = 985, + DU_VSYNC_MARK = 986, + QSTVA_QVS_MARK___4 = 987, + IRQ4_A_MARK___2 = 988, + IP5_7_4_MARK___5 = 989, + VI4_DATA2_MARK = 990, + PWM2_A_MARK___5 = 991, + IP6_7_4_MARK___5 = 992, + VI4_DATA11_MARK___4 = 993, + TX4_A_MARK___4 = 994, + IP7_7_4_MARK___5 = 995, + VI4_DATA19_MARK___4 = 996, + SSI_WS4_B_MARK = 997, + NFDATA15_MARK = 998, + IP4_11_8_MARK___5 = 999, + DU_DISP_MARK___5 = 1000, + QSTVB_QVE_MARK___4 = 1001, + PWM3_B_MARK___6 = 1002, + IP5_11_8_MARK___5 = 1003, + VI4_DATA3_MARK = 1004, + PWM3_A_MARK___6 = 1005, + IP6_11_8_MARK___5 = 1006, + VI4_DATA12_MARK___4 = 1007, + TCLK1_A_MARK___6 = 1008, + IP7_11_8_MARK___5 = 1009, + VI4_DATA20_MARK___4 = 1010, + MSIOF3_SYNC_A_MARK___4 = 1011, + NFDATA14_MARK = 1012, + IP4_15_12_MARK___5 = 1013, + DU_DISP_CDE_MARK = 1014, + QCPV_QDE_MARK___4 = 1015, + IRQ2_B_MARK___2 = 1016, + DU_DOTCLKIN1_MARK___4 = 1017, + IP5_15_12_MARK___5 = 1018, + VI4_DATA5_MARK = 1019, + SCK4_A_MARK___4 = 1020, + IP6_15_12_MARK___5 = 1021, + VI4_DATA13_MARK___4 = 1022, + MSIOF3_SS1_A_MARK___4 = 1023, + HCTS3_N_MARK___6 = 1024, + IP7_15_12_MARK___2 = 1025, + VI4_DATA21_MARK___4 = 1026, + MSIOF3_TXD_A_MARK___4 = 1027, + NFDATA13_MARK___4 = 1028, + IP4_19_16_MARK___5 = 1029, + DU_CDE_MARK___5 = 1030, + QSTB_QHE_MARK___4 = 1031, + SCK3_B_MARK___2 = 1032, + IP5_19_16_MARK___5 = 1033, + VI4_DATA6_MARK = 1034, + IRQ2_A_MARK___2 = 1035, + IP6_19_16_MARK___5 = 1036, + VI4_DATA14_MARK___4 = 1037, + SSI_SCK4_B_MARK = 1038, + HRTS3_N_MARK___6 = 1039, + IP7_19_16_MARK___5 = 1040, + VI4_DATA22_MARK___4 = 1041, + MSIOF3_RXD_A_MARK___4 = 1042, + NFDATA12_MARK___4 = 1043, + IP4_23_20_MARK___5 = 1044, + QPOLA_MARK___4 = 1045, + RX3_B_MARK___5 = 1046, + IP5_23_20_MARK___5 = 1047, + VI4_DATA7_MARK = 1048, + TCLK2_A_MARK___6 = 1049, + IP6_23_20_MARK___5 = 1050, + VI4_DATA15_MARK___4 = 1051, + SSI_SDATA4_B_MARK = 1052, + IP7_23_20_MARK___5 = 1053, + VI4_DATA23_MARK___4 = 1054, + MSIOF3_SCK_A_MARK___4 = 1055, + NFDATA11_MARK___4 = 1056, + IP4_27_24_MARK___5 = 1057, + QPOLB_MARK___4 = 1058, + TX3_B_MARK___5 = 1059, + IP5_27_24_MARK___5 = 1060, + VI4_DATA8_MARK___4 = 1061, + IP6_27_24_MARK___5 = 1062, + VI4_DATA16_MARK___4 = 1063, + HRX3_A_MARK___5 = 1064, + IP7_27_24_MARK___5 = 1065, + VI4_VSYNC_N_MARK___4 = 1066, + SCK1_B_MARK___2 = 1067, + NFDATA10_MARK___4 = 1068, + IP4_31_28_MARK___5 = 1069, + VI4_DATA0_MARK = 1070, + PWM0_A_MARK___2 = 1071, + IP5_31_28_MARK___5 = 1072, + VI4_DATA9_MARK___4 = 1073, + MSIOF3_SS2_A_MARK___4 = 1074, + IRQ1_B_MARK___2 = 1075, + IP6_31_28_MARK___5 = 1076, + VI4_DATA17_MARK___4 = 1077, + HTX3_A_MARK___5 = 1078, + IP7_31_28_MARK___5 = 1079, + VI4_HSYNC_N_MARK___4 = 1080, + RX1_B_MARK___6 = 1081, + NFDATA9_MARK___4 = 1082, + IP8_3_0_MARK___5 = 1083, + VI4_FIELD_MARK___4 = 1084, + AUDIO_CLKB_MARK = 1085, + IRQ5_A_MARK = 1086, + SCIF_CLK_MARK___3 = 1087, + NFDATA8_MARK___4 = 1088, + IP9_3_0_MARK___5 = 1089, + NFDATA0_MARK___4 = 1090, + MMC_D0_MARK___2 = 1091, + IP10_3_0_MARK___5 = 1092, + AUDIO_CLKA_MARK = 1093, + DVC_MUTE_B_MARK = 1094, + IP11_3_0_MARK___4 = 1095, + SDA1_MARK___4 = 1096, + RTS1_N_MARK___6 = 1097, + IP8_7_4_MARK___5 = 1098, + VI4_CLKENB_MARK___4 = 1099, + TX1_B_MARK___6 = 1100, + NFWP_N_MARK = 1101, + DVC_MUTE_A_MARK = 1102, + IP9_7_4_MARK___5 = 1103, + NFDATA1_MARK___4 = 1104, + MMC_D1_MARK___2 = 1105, + IP10_7_4_MARK___5 = 1106, + SSI_SCK34_MARK = 1107, + FSO_CFE_0_N_A_MARK = 1108, + IP11_7_4_MARK___4 = 1109, + MSIOF1_SCK_MARK___4 = 1110, + AVB0_AVTP_PPS_B_MARK = 1111, + IP8_11_8_MARK___5 = 1112, + NFALE_MARK___4 = 1113, + SCL2_B_MARK___4 = 1114, + IRQ3_B_MARK___2 = 1115, + PWM0_C_MARK = 1116, + IP9_11_8_MARK___5 = 1117, + NFDATA2_MARK___4 = 1118, + MMC_D2_MARK___2 = 1119, + IP10_11_8_MARK___5 = 1120, + SSI_SDATA3_MARK___4 = 1121, + FSO_CFE_1_N_A_MARK = 1122, + IP11_11_8_MARK___4 = 1123, + MSIOF1_TXD_MARK___4 = 1124, + AVB0_AVTP_CAPTURE_B_MARK = 1125, + IP8_15_12_MARK___5 = 1126, + NFCLE_MARK___4 = 1127, + SDA2_B_MARK___4 = 1128, + SCK3_A_MARK___2 = 1129, + PWM1_C_MARK = 1130, + IP9_15_12_MARK___5 = 1131, + NFDATA3_MARK___4 = 1132, + MMC_D3_MARK___2 = 1133, + IP10_15_12_MARK___5 = 1134, + SSI_WS34_MARK = 1135, + FSO_TOE_N_A_MARK = 1136, + IP11_15_12_MARK___4 = 1137, + MSIOF1_RXD_MARK___4 = 1138, + AVB0_AVTP_MATCH_B_MARK = 1139, + IP8_19_16_MARK___5 = 1140, + NFCE_N_MARK = 1141, + RX3_A_MARK___5 = 1142, + PWM2_C_MARK = 1143, + IP9_19_16_MARK___5 = 1144, + NFDATA4_MARK___4 = 1145, + MMC_D4_MARK___4 = 1146, + IP10_19_16_MARK___5 = 1147, + SSI_SCK4_A_MARK = 1148, + HSCK0_MARK___6 = 1149, + AUDIO_CLKOUT_MARK___2 = 1150, + CAN0_RX_B_MARK___4 = 1151, + IRQ4_B_MARK___2 = 1152, + IP11_19_16_MARK___4 = 1153, + SCK0_A_MARK = 1154, + MSIOF1_SYNC_MARK___4 = 1155, + FSO_CFE_0_N_B_MARK = 1156, + IP8_23_20_MARK___5 = 1157, + NFRB_N_MARK = 1158, + TX3_A_MARK___5 = 1159, + PWM3_C_MARK = 1160, + IP9_23_20_MARK___5 = 1161, + NFDATA5_MARK___4 = 1162, + MMC_D5_MARK___4 = 1163, + IP10_23_20_MARK___4 = 1164, + SSI_SDATA4_A_MARK = 1165, + HTX0_MARK___6 = 1166, + SCL2_A_MARK___4 = 1167, + CAN1_RX_B_MARK = 1168, + IP11_23_20_MARK___4 = 1169, + RX0_A_MARK = 1170, + MSIOF0_SS1_MARK___7 = 1171, + FSO_CFE_1_N_B_MARK = 1172, + IP8_27_24_MARK___5 = 1173, + NFRE_N_MARK___4 = 1174, + MMC_CMD_MARK___2 = 1175, + IP9_27_24_MARK___5 = 1176, + NFDATA6_MARK___4 = 1177, + MMC_D6_MARK___4 = 1178, + IP10_27_24_MARK___4 = 1179, + SSI_WS4_A_MARK = 1180, + HRX0_MARK___6 = 1181, + SDA2_A_MARK___4 = 1182, + CAN1_TX_B_MARK = 1183, + IP11_27_24_MARK___4 = 1184, + TX0_A_MARK = 1185, + MSIOF0_SS2_MARK___7 = 1186, + FSO_TOE_N_B_MARK = 1187, + IP8_31_28_MARK___5 = 1188, + NFWE_N_MARK___4 = 1189, + MMC_CLK_MARK___2 = 1190, + IP9_31_28_MARK___5 = 1191, + NFDATA7_MARK___4 = 1192, + MMC_D7_MARK___4 = 1193, + IP10_31_28_MARK___4 = 1194, + SCL1_MARK___4 = 1195, + CTS1_N_MARK___6 = 1196, + IP11_31_28_MARK___4 = 1197, + SCK1_A_MARK___2 = 1198, + MSIOF1_SS2_MARK___4 = 1199, + TPU0TO2_B_MARK___2 = 1200, + CAN0_TX_B_MARK___4 = 1201, + AUDIO_CLKOUT1_MARK = 1202, + IP12_3_0_MARK___4 = 1203, + RX1_A_MARK___6 = 1204, + CTS0_N_MARK___7 = 1205, + TPU0TO0_B_MARK___2 = 1206, + IP13_3_0_MARK___4 = 1207, + CAN1_RX_A_MARK = 1208, + CANFD1_RX_MARK___6 = 1209, + TPU0TO2_A_MARK___2 = 1210, + IP12_7_4_MARK___4 = 1211, + TX1_A_MARK___6 = 1212, + RTS0_N_MARK___7 = 1213, + TPU0TO1_B_MARK___2 = 1214, + IP13_7_4_MARK___4 = 1215, + CAN1_TX_A_MARK = 1216, + CANFD1_TX_MARK___6 = 1217, + TPU0TO3_A_MARK___2 = 1218, + IP12_11_8_MARK___4 = 1219, + SCK2_MARK___4 = 1220, + MSIOF1_SS1_MARK___4 = 1221, + TPU0TO3_B_MARK___2 = 1222, + IP12_15_12_MARK___4 = 1223, + TPU0TO0_A_MARK___2 = 1224, + AVB0_AVTP_CAPTURE_A_MARK = 1225, + HCTS0_N_MARK___6 = 1226, + IP12_19_16_MARK___4 = 1227, + TPU0TO1_A_MARK___2 = 1228, + AVB0_AVTP_MATCH_A_MARK = 1229, + HRTS0_N_MARK___6 = 1230, + IP12_23_20_MARK___4 = 1231, + CAN_CLK_MARK___5 = 1232, + AVB0_AVTP_PPS_A_MARK = 1233, + SCK0_B_MARK = 1234, + IRQ5_B_MARK = 1235, + IP12_27_24_MARK___4 = 1236, + CAN0_RX_A_MARK___4 = 1237, + CANFD0_RX_MARK___2 = 1238, + RX0_B_MARK = 1239, + IP12_31_28_MARK___4 = 1240, + CAN0_TX_A_MARK___4 = 1241, + CANFD0_TX_MARK___2 = 1242, + TX0_B_MARK = 1243, + SEL_CAN0_0_MARK = 1244, + SEL_CAN0_1_MARK = 1245, + SEL_MSIOF2_0_MARK___4 = 1246, + SEL_MSIOF2_1_MARK___4 = 1247, + SEL_CAN1_0_MARK = 1248, + SEL_CAN1_1_MARK = 1249, + SEL_I2C3_0_MARK___2 = 1250, + SEL_I2C3_1_MARK = 1251, + SEL_I2C2_0_MARK___5 = 1252, + SEL_I2C2_1_MARK___4 = 1253, + SEL_SCIF5_0_MARK___4 = 1254, + SEL_SCIF5_1_MARK___4 = 1255, + SEL_ETHERAVB_0_MARK___4 = 1256, + SEL_ETHERAVB_1_MARK___4 = 1257, + SEL_MSIOF3_0_MARK___4 = 1258, + SEL_MSIOF3_1_MARK___4 = 1259, + SEL_SCIF0_0_MARK = 1260, + SEL_SCIF0_1_MARK = 1261, + SEL_HSCIF3_0_MARK___4 = 1262, + SEL_HSCIF3_1_MARK___4 = 1263, + SEL_SSIF4_0_MARK = 1264, + SEL_SSIF4_1_MARK = 1265, + SEL_SCIF4_0_MARK___4 = 1266, + SEL_SCIF4_1_MARK___4 = 1267, + SEL_PWM0_0_MARK___2 = 1268, + SEL_PWM0_2_MARK = 1269, + SEL_PWM0_1_MARK___2 = 1270, + SEL_PWM1_0_MARK___5 = 1271, + SEL_PWM1_2_MARK = 1272, + SEL_PWM1_1_MARK___5 = 1273, + SEL_PWM2_0_MARK___5 = 1274, + SEL_PWM2_2_MARK = 1275, + SEL_PWM2_1_MARK___5 = 1276, + SEL_PWM3_0_MARK___5 = 1277, + SEL_PWM3_2_MARK = 1278, + SEL_PWM3_1_MARK___5 = 1279, + SEL_IRQ_0_0_MARK = 1280, + SEL_IRQ_0_1_MARK = 1281, + SEL_IRQ_1_0_MARK = 1282, + SEL_IRQ_1_1_MARK = 1283, + SEL_IRQ_2_0_MARK = 1284, + SEL_IRQ_2_1_MARK = 1285, + SEL_IRQ_3_0_MARK = 1286, + SEL_IRQ_3_1_MARK = 1287, + SEL_IRQ_4_0_MARK = 1288, + SEL_IRQ_4_1_MARK = 1289, + SEL_IRQ_5_0_MARK = 1290, + SEL_IRQ_5_1_MARK = 1291, + SEL_TMU_0_0_MARK = 1292, + SEL_TMU_0_1_MARK = 1293, + SEL_TMU_1_0_MARK = 1294, + SEL_TMU_1_1_MARK = 1295, + SEL_SCIF3_0_MARK___4 = 1296, + SEL_SCIF3_1_MARK___4 = 1297, + SEL_SCIF1_0_MARK___5 = 1298, + SEL_SCIF1_1_MARK___5 = 1299, + SEL_SCU_0_MARK = 1300, + SEL_SCU_1_MARK = 1301, + SEL_RFSO_0_MARK = 1302, + SEL_RFSO_1_MARK = 1303, + PINMUX_MARK_END___7 = 1304, +}; + +enum { + PINMUX_RESERVED___8 = 0, + PINMUX_DATA_BEGIN___8 = 1, + GP_0_0_DATA___8 = 2, + GP_0_1_DATA___8 = 3, + GP_0_2_DATA___8 = 4, + GP_0_3_DATA___8 = 5, + GP_0_4_DATA___8 = 6, + GP_0_5_DATA___8 = 7, + GP_0_6_DATA___8 = 8, + GP_0_7_DATA___8 = 9, + GP_0_8_DATA___8 = 10, + GP_0_9_DATA___7 = 11, + GP_0_10_DATA___7 = 12, + GP_0_11_DATA___7 = 13, + GP_0_12_DATA___7 = 14, + GP_0_13_DATA___7 = 15, + GP_0_14_DATA___7 = 16, + GP_0_15_DATA___7 = 17, + GP_0_16_DATA___4 = 18, + GP_0_17_DATA___4 = 19, + GP_0_18_DATA___4 = 20, + GP_1_0_DATA___8 = 21, + GP_1_1_DATA___8 = 22, + GP_1_2_DATA___8 = 23, + GP_1_3_DATA___8 = 24, + GP_1_4_DATA___8 = 25, + GP_1_5_DATA___8 = 26, + GP_1_6_DATA___8 = 27, + GP_1_7_DATA___8 = 28, + GP_1_8_DATA___8 = 29, + GP_1_9_DATA___8 = 30, + GP_1_10_DATA___8 = 31, + GP_1_11_DATA___8 = 32, + GP_1_12_DATA___8 = 33, + GP_1_13_DATA___8 = 34, + GP_1_14_DATA___8 = 35, + GP_1_15_DATA___8 = 36, + GP_1_16_DATA___8 = 37, + GP_1_17_DATA___8 = 38, + GP_1_18_DATA___8 = 39, + GP_1_19_DATA___8 = 40, + GP_1_20_DATA___8 = 41, + GP_1_21_DATA___8 = 42, + GP_1_22_DATA___8 = 43, + GP_1_23_DATA___8 = 44, + GP_1_24_DATA___8 = 45, + GP_1_25_DATA___7 = 46, + GP_1_26_DATA___7 = 47, + GP_1_27_DATA___7 = 48, + GP_1_28_DATA___6 = 49, + GP_1_29_DATA___2 = 50, + GP_2_0_DATA___8 = 51, + GP_2_1_DATA___8 = 52, + GP_2_2_DATA___8 = 53, + GP_2_3_DATA___8 = 54, + GP_2_4_DATA___8 = 55, + GP_2_5_DATA___8 = 56, + GP_2_6_DATA___8 = 57, + GP_2_7_DATA___8 = 58, + GP_2_8_DATA___8 = 59, + GP_2_9_DATA___8 = 60, + GP_2_10_DATA___8 = 61, + GP_2_11_DATA___8 = 62, + GP_2_12_DATA___8 = 63, + GP_2_13_DATA___8 = 64, + GP_2_14_DATA___8 = 65, + GP_2_15_DATA___5 = 66, + GP_2_17_DATA___4 = 67, + GP_2_19_DATA___4 = 68, + GP_3_0_DATA___8 = 69, + GP_3_1_DATA___8 = 70, + GP_3_2_DATA___8 = 71, + GP_3_3_DATA___8 = 72, + GP_3_4_DATA___8 = 73, + GP_3_5_DATA___8 = 74, + GP_3_6_DATA___8 = 75, + GP_3_7_DATA___8 = 76, + GP_3_8_DATA___8 = 77, + GP_3_9_DATA___8 = 78, + GP_3_10_DATA___7 = 79, + GP_3_11_DATA___7 = 80, + GP_3_12_DATA___7 = 81, + GP_3_13_DATA___7 = 82, + GP_3_14_DATA___7 = 83, + GP_3_15_DATA___7 = 84, + GP_3_16_DATA___4 = 85, + GP_3_17_DATA___3 = 86, + GP_3_18_DATA___3 = 87, + GP_3_19_DATA___2 = 88, + GP_3_20_DATA___2 = 89, + GP_3_21_DATA___2 = 90, + GP_3_22_DATA___2 = 91, + GP_3_23_DATA___2 = 92, + GP_3_24_DATA___2 = 93, + GP_3_25_DATA___2 = 94, + GP_3_26_DATA___2 = 95, + GP_3_27_DATA___2 = 96, + GP_3_28_DATA___2 = 97, + GP_3_29_DATA___2 = 98, + GP_3_30_DATA = 99, + GP_3_31_DATA = 100, + GP_4_0_DATA___7 = 101, + GP_4_1_DATA___7 = 102, + GP_4_2_DATA___7 = 103, + GP_4_3_DATA___7 = 104, + GP_4_4_DATA___7 = 105, + GP_4_5_DATA___7 = 106, + GP_4_6_DATA___7 = 107, + GP_4_7_DATA___7 = 108, + GP_4_8_DATA___7 = 109, + GP_4_9_DATA___7 = 110, + GP_4_10_DATA___7 = 111, + GP_4_11_DATA___7 = 112, + GP_4_12_DATA___7 = 113, + GP_4_13_DATA___7 = 114, + GP_4_14_DATA___7 = 115, + GP_4_15_DATA___7 = 116, + GP_4_21_DATA___4 = 117, + GP_4_23_DATA___4 = 118, + GP_4_24_DATA___4 = 119, + GP_5_0_DATA___7 = 120, + GP_5_1_DATA___7 = 121, + GP_5_2_DATA___7 = 122, + GP_5_3_DATA___7 = 123, + GP_5_4_DATA___7 = 124, + GP_5_5_DATA___7 = 125, + GP_5_6_DATA___7 = 126, + GP_5_7_DATA___7 = 127, + GP_5_8_DATA___7 = 128, + GP_5_9_DATA___7 = 129, + GP_5_10_DATA___7 = 130, + GP_5_11_DATA___7 = 131, + GP_5_12_DATA___7 = 132, + GP_5_13_DATA___7 = 133, + GP_5_14_DATA___7 = 134, + GP_5_15_DATA___6 = 135, + GP_5_16_DATA___6 = 136, + GP_5_17_DATA___6 = 137, + GP_5_18_DATA___6 = 138, + GP_5_19_DATA___6 = 139, + GP_5_20_DATA___6 = 140, + GP_6_0_DATA___6 = 141, + GP_6_1_DATA___6 = 142, + GP_6_2_DATA___6 = 143, + GP_6_3_DATA___6 = 144, + GP_6_4_DATA___6 = 145, + GP_6_5_DATA___6 = 146, + GP_6_6_DATA___6 = 147, + GP_6_7_DATA___6 = 148, + GP_6_8_DATA___6 = 149, + GP_6_9_DATA___6 = 150, + GP_6_10_DATA___6 = 151, + GP_6_11_DATA___6 = 152, + GP_6_12_DATA___6 = 153, + GP_6_13_DATA___6 = 154, + GP_6_14_DATA___5 = 155, + GP_6_15_DATA___5 = 156, + GP_6_16_DATA___5 = 157, + GP_6_17_DATA___5 = 158, + GP_6_18_DATA___5 = 159, + GP_6_19_DATA___5 = 160, + GP_6_20_DATA___5 = 161, + GP_7_0_DATA___5 = 162, + GP_7_1_DATA___5 = 163, + GP_7_2_DATA___5 = 164, + GP_7_3_DATA___5 = 165, + GP_7_4_DATA___2 = 166, + GP_7_5_DATA___2 = 167, + GP_7_6_DATA___2 = 168, + GP_7_7_DATA___2 = 169, + GP_7_8_DATA___2 = 170, + GP_7_9_DATA___2 = 171, + GP_7_10_DATA___2 = 172, + GP_7_11_DATA___2 = 173, + GP_7_12_DATA___2 = 174, + GP_7_13_DATA___2 = 175, + GP_7_14_DATA___2 = 176, + GP_7_15_DATA___2 = 177, + GP_7_16_DATA___2 = 178, + GP_7_17_DATA___2 = 179, + GP_7_18_DATA___2 = 180, + GP_7_19_DATA___2 = 181, + GP_7_20_DATA___2 = 182, + PINMUX_DATA_END___8 = 183, + PINMUX_FUNCTION_BEGIN___8 = 184, + GP_0_0_FN___8 = 185, + GP_0_1_FN___8 = 186, + GP_0_2_FN___8 = 187, + GP_0_3_FN___8 = 188, + GP_0_4_FN___8 = 189, + GP_0_5_FN___8 = 190, + GP_0_6_FN___8 = 191, + GP_0_7_FN___8 = 192, + GP_0_8_FN___8 = 193, + GP_0_9_FN___7 = 194, + GP_0_10_FN___7 = 195, + GP_0_11_FN___7 = 196, + GP_0_12_FN___7 = 197, + GP_0_13_FN___7 = 198, + GP_0_14_FN___7 = 199, + GP_0_15_FN___7 = 200, + GP_0_16_FN___4 = 201, + GP_0_17_FN___4 = 202, + GP_0_18_FN___4 = 203, + GP_1_0_FN___8 = 204, + GP_1_1_FN___8 = 205, + GP_1_2_FN___8 = 206, + GP_1_3_FN___8 = 207, + GP_1_4_FN___8 = 208, + GP_1_5_FN___8 = 209, + GP_1_6_FN___8 = 210, + GP_1_7_FN___8 = 211, + GP_1_8_FN___8 = 212, + GP_1_9_FN___8 = 213, + GP_1_10_FN___8 = 214, + GP_1_11_FN___8 = 215, + GP_1_12_FN___8 = 216, + GP_1_13_FN___8 = 217, + GP_1_14_FN___8 = 218, + GP_1_15_FN___8 = 219, + GP_1_16_FN___8 = 220, + GP_1_17_FN___8 = 221, + GP_1_18_FN___8 = 222, + GP_1_19_FN___8 = 223, + GP_1_20_FN___8 = 224, + GP_1_21_FN___8 = 225, + GP_1_22_FN___8 = 226, + GP_1_23_FN___8 = 227, + GP_1_24_FN___8 = 228, + GP_1_25_FN___7 = 229, + GP_1_26_FN___7 = 230, + GP_1_27_FN___7 = 231, + GP_1_28_FN___6 = 232, + GP_1_29_FN___2 = 233, + GP_2_0_FN___8 = 234, + GP_2_1_FN___8 = 235, + GP_2_2_FN___8 = 236, + GP_2_3_FN___8 = 237, + GP_2_4_FN___8 = 238, + GP_2_5_FN___8 = 239, + GP_2_6_FN___8 = 240, + GP_2_7_FN___8 = 241, + GP_2_8_FN___8 = 242, + GP_2_9_FN___8 = 243, + GP_2_10_FN___8 = 244, + GP_2_11_FN___8 = 245, + GP_2_12_FN___8 = 246, + GP_2_13_FN___8 = 247, + GP_2_14_FN___8 = 248, + GP_2_15_FN___5 = 249, + GP_2_17_FN___4 = 250, + GP_2_19_FN___4 = 251, + GP_3_0_FN___8 = 252, + GP_3_1_FN___8 = 253, + GP_3_2_FN___8 = 254, + GP_3_3_FN___8 = 255, + GP_3_4_FN___8 = 256, + GP_3_5_FN___8 = 257, + GP_3_6_FN___8 = 258, + GP_3_7_FN___8 = 259, + GP_3_8_FN___8 = 260, + GP_3_9_FN___8 = 261, + GP_3_10_FN___7 = 262, + GP_3_11_FN___7 = 263, + GP_3_12_FN___7 = 264, + GP_3_13_FN___7 = 265, + GP_3_14_FN___7 = 266, + GP_3_15_FN___7 = 267, + GP_3_16_FN___4 = 268, + GP_3_17_FN___3 = 269, + GP_3_18_FN___3 = 270, + GP_3_19_FN___2 = 271, + GP_3_20_FN___2 = 272, + GP_3_21_FN___2 = 273, + GP_3_22_FN___2 = 274, + GP_3_23_FN___2 = 275, + GP_3_24_FN___2 = 276, + GP_3_25_FN___2 = 277, + GP_3_26_FN___2 = 278, + GP_3_27_FN___2 = 279, + GP_3_28_FN___2 = 280, + GP_3_29_FN___2 = 281, + GP_3_30_FN = 282, + GP_3_31_FN = 283, + GP_4_0_FN___7 = 284, + GP_4_1_FN___7 = 285, + GP_4_2_FN___7 = 286, + GP_4_3_FN___7 = 287, + GP_4_4_FN___7 = 288, + GP_4_5_FN___7 = 289, + GP_4_6_FN___7 = 290, + GP_4_7_FN___7 = 291, + GP_4_8_FN___7 = 292, + GP_4_9_FN___7 = 293, + GP_4_10_FN___7 = 294, + GP_4_11_FN___7 = 295, + GP_4_12_FN___7 = 296, + GP_4_13_FN___7 = 297, + GP_4_14_FN___7 = 298, + GP_4_15_FN___7 = 299, + GP_4_21_FN___4 = 300, + GP_4_23_FN___4 = 301, + GP_4_24_FN___4 = 302, + GP_5_0_FN___7 = 303, + GP_5_1_FN___7 = 304, + GP_5_2_FN___7 = 305, + GP_5_3_FN___7 = 306, + GP_5_4_FN___7 = 307, + GP_5_5_FN___7 = 308, + GP_5_6_FN___7 = 309, + GP_5_7_FN___7 = 310, + GP_5_8_FN___7 = 311, + GP_5_9_FN___7 = 312, + GP_5_10_FN___7 = 313, + GP_5_11_FN___7 = 314, + GP_5_12_FN___7 = 315, + GP_5_13_FN___7 = 316, + GP_5_14_FN___7 = 317, + GP_5_15_FN___6 = 318, + GP_5_16_FN___6 = 319, + GP_5_17_FN___6 = 320, + GP_5_18_FN___6 = 321, + GP_5_19_FN___6 = 322, + GP_5_20_FN___6 = 323, + GP_6_0_FN___6 = 324, + GP_6_1_FN___6 = 325, + GP_6_2_FN___6 = 326, + GP_6_3_FN___6 = 327, + GP_6_4_FN___6 = 328, + GP_6_5_FN___6 = 329, + GP_6_6_FN___6 = 330, + GP_6_7_FN___6 = 331, + GP_6_8_FN___6 = 332, + GP_6_9_FN___6 = 333, + GP_6_10_FN___6 = 334, + GP_6_11_FN___6 = 335, + GP_6_12_FN___6 = 336, + GP_6_13_FN___6 = 337, + GP_6_14_FN___5 = 338, + GP_6_15_FN___5 = 339, + GP_6_16_FN___5 = 340, + GP_6_17_FN___5 = 341, + GP_6_18_FN___5 = 342, + GP_6_19_FN___5 = 343, + GP_6_20_FN___5 = 344, + GP_7_0_FN___5 = 345, + GP_7_1_FN___5 = 346, + GP_7_2_FN___5 = 347, + GP_7_3_FN___5 = 348, + GP_7_4_FN___2 = 349, + GP_7_5_FN___2 = 350, + GP_7_6_FN___2 = 351, + GP_7_7_FN___2 = 352, + GP_7_8_FN___2 = 353, + GP_7_9_FN___2 = 354, + GP_7_10_FN___2 = 355, + GP_7_11_FN___2 = 356, + GP_7_12_FN___2 = 357, + GP_7_13_FN___2 = 358, + GP_7_14_FN___2 = 359, + GP_7_15_FN___2 = 360, + GP_7_16_FN___2 = 361, + GP_7_17_FN___2 = 362, + GP_7_18_FN___2 = 363, + GP_7_19_FN___2 = 364, + GP_7_20_FN___2 = 365, + FN_IP0SR0_3_0___3 = 366, + FN_ERROROUTC_N_B___2 = 367, + FN_TCLK2_B___7 = 368, + FN_IP1SR0_3_0___3 = 369, + FN_MSIOF5_SS1___2 = 370, + FN_IP2SR0_3_0___3 = 371, + FN_MSIOF2_TXD___5 = 372, + FN_HCTS1_N_A___5 = 373, + FN_CTS1_N_A___2 = 374, + FN_IP0SR0_7_4___3 = 375, + FN_MSIOF3_SS1___4 = 376, + FN_IP1SR0_7_4___3 = 377, + FN_MSIOF5_SYNC___2 = 378, + FN_IP2SR0_7_4___3 = 379, + FN_MSIOF2_SCK___5 = 380, + FN_HRTS1_N_A___5 = 381, + FN_RTS1_N_A___2 = 382, + FN_IP0SR0_11_8___3 = 383, + FN_MSIOF3_SS2___4 = 384, + FN_IP1SR0_11_8___3 = 385, + FN_MSIOF5_TXD___2 = 386, + FN_IP2SR0_11_8___3 = 387, + FN_MSIOF2_RXD___5 = 388, + FN_HSCK1_A___5 = 389, + FN_SCK1_A___3 = 390, + FN_IP0SR0_15_12___3 = 391, + FN_IRQ3_A___3 = 392, + FN_MSIOF3_SCK___4 = 393, + FN_IP1SR0_15_12___3 = 394, + FN_MSIOF5_SCK___2 = 395, + FN_IP0SR0_19_16___3 = 396, + FN_IRQ2_A___3 = 397, + FN_MSIOF3_TXD___4 = 398, + FN_IP1SR0_19_16___3 = 399, + FN_MSIOF5_RXD___2 = 400, + FN_IP0SR0_23_20___3 = 401, + FN_IRQ1_A___3 = 402, + FN_MSIOF3_RXD___4 = 403, + FN_IP1SR0_23_20___3 = 404, + FN_MSIOF2_SS2___5 = 405, + FN_TCLK1_A___7 = 406, + FN_IRQ2_B___3 = 407, + FN_IP0SR0_27_24___3 = 408, + FN_IRQ0_A___3 = 409, + FN_MSIOF3_SYNC___4 = 410, + FN_IP1SR0_27_24___3 = 411, + FN_MSIOF2_SS1___5 = 412, + FN_HTX1_A___5 = 413, + FN_TX1_A___7 = 414, + FN_IP0SR0_31_28___3 = 415, + FN_MSIOF5_SS2___2 = 416, + FN_IP1SR0_31_28___3 = 417, + FN_MSIOF2_SYNC___4 = 418, + FN_HRX1_A___5 = 419, + FN_RX1_A___7 = 420, + FN_IP0SR1_3_0___3 = 421, + FN_MSIOF1_SS2___5 = 422, + FN_HTX3_B___6 = 423, + FN_TX3_B___6 = 424, + FN_IP1SR1_3_0___2 = 425, + FN_MSIOF0_SYNC___8 = 426, + FN_HCTS1_N_B___5 = 427, + FN_CTS1_N_B___2 = 428, + FN_IP2SR1_3_0___2 = 429, + FN_HRX0___7 = 430, + FN_RX0___7 = 431, + FN_IP3SR1_3_0___2 = 432, + FN_HRX3_A___6 = 433, + FN_SCK3_A___3 = 434, + FN_MSIOF4_SS2___2 = 435, + FN_IP0SR1_7_4___3 = 436, + FN_MSIOF1_SS1___5 = 437, + FN_HCTS3_N_B___2 = 438, + FN_RX3_B___6 = 439, + FN_IP1SR1_7_4___2 = 440, + FN_MSIOF0_TXD___8 = 441, + FN_HRTS1_N_B___5 = 442, + FN_RTS1_N_B___2 = 443, + FN_IP2SR1_7_4___2 = 444, + FN_SCIF_CLK___4 = 445, + FN_IRQ4_A___3 = 446, + FN_IP3SR1_7_4___2 = 447, + FN_HSCK3_A___3 = 448, + FN_CTS3_N_A___2 = 449, + FN_MSIOF4_SCK___2 = 450, + FN_TPU0TO0_B___3 = 451, + FN_IP0SR1_11_8___3 = 452, + FN_MSIOF1_SYNC___5 = 453, + FN_HRTS3_N_B___2 = 454, + FN_RTS3_N_B___2 = 455, + FN_IP1SR1_11_8___2 = 456, + FN_MSIOF0_SCK___8 = 457, + FN_HSCK1_B___5 = 458, + FN_SCK1_B___3 = 459, + FN_IP2SR1_11_8___2 = 460, + FN_SSI_SCK___2 = 461, + FN_TCLK3_B___2 = 462, + FN_IP3SR1_11_8___2 = 463, + FN_HRTS3_N_A___2 = 464, + FN_RTS3_N_A___2 = 465, + FN_MSIOF4_TXD___2 = 466, + FN_TPU0TO1_B___3 = 467, + FN_IP0SR1_15_12___3 = 468, + FN_MSIOF1_SCK___5 = 469, + FN_HSCK3_B___3 = 470, + FN_CTS3_N_B___2 = 471, + FN_IP1SR1_15_12___2 = 472, + FN_MSIOF0_RXD___8 = 473, + FN_IP2SR1_15_12___2 = 474, + FN_SSI_WS___2 = 475, + FN_TCLK4_B___2 = 476, + FN_IP3SR1_15_12___2 = 477, + FN_HCTS3_N_A___2 = 478, + FN_RX3_A___6 = 479, + FN_MSIOF4_RXD___2 = 480, + FN_IP0SR1_19_16___3 = 481, + FN_MSIOF1_TXD___5 = 482, + FN_HRX3_B___6 = 483, + FN_SCK3_B___3 = 484, + FN_IP1SR1_19_16___2 = 485, + FN_HTX0___7 = 486, + FN_TX0___7 = 487, + FN_IP2SR1_19_16___2 = 488, + FN_SSI_SD___2 = 489, + FN_IRQ0_B___3 = 490, + FN_IP3SR1_19_16___2 = 491, + FN_HTX3_A___6 = 492, + FN_TX3_A___6 = 493, + FN_MSIOF4_SYNC___2 = 494, + FN_IP0SR1_23_20___3 = 495, + FN_MSIOF1_RXD___5 = 496, + FN_IP1SR1_23_20___2 = 497, + FN_HCTS0_N___7 = 498, + FN_CTS0_N___8 = 499, + FN_IP2SR1_23_20___2 = 500, + FN_AUDIO_CLKOUT___3 = 501, + FN_IRQ1_B___3 = 502, + FN_IP3SR1_23_20 = 503, + FN_ERROROUTC_N_A___2 = 504, + FN_IP0SR1_27_24___3 = 505, + FN_MSIOF0_SS2___8 = 506, + FN_HTX1_B___5 = 507, + FN_TX1_B___7 = 508, + FN_IP1SR1_27_24___2 = 509, + FN_HRTS0_N___7 = 510, + FN_RTS0_N___8 = 511, + FN_PWM0_B___3 = 512, + FN_IP2SR1_27_24___2 = 513, + FN_AUDIO_CLKIN___2 = 514, + FN_PWM3_C___2 = 515, + FN_IP0SR1_31_28___3 = 516, + FN_MSIOF0_SS1___8 = 517, + FN_HRX1_B___5 = 518, + FN_RX1_B___7 = 519, + FN_IP1SR1_31_28___2 = 520, + FN_HSCK0___7 = 521, + FN_SCK0___7 = 522, + FN_PWM0_A___3 = 523, + FN_IP2SR1_31_28___2 = 524, + FN_TCLK2_A___7 = 525, + FN_MSIOF4_SS1___2 = 526, + FN_IRQ3_B___3 = 527, + FN_IP0SR2_3_0___2 = 528, + FN_FXR_TXDA___3 = 529, + FN_TPU0TO2_B___3 = 530, + FN_IP1SR2_3_0___2 = 531, + FN_TPU0TO0_A___3 = 532, + FN_TCLK1_B___7 = 533, + FN_IP0SR2_7_4___2 = 534, + FN_FXR_TXENA_N_A___2 = 535, + FN_TPU0TO3_B___3 = 536, + FN_IP1SR2_7_4___2 = 537, + FN_CAN_CLK___6 = 538, + FN_FXR_TXENA_N_B___2 = 539, + FN_IP2SR2_7_4___2 = 540, + FN_CANFD1_TX___7 = 541, + FN_PWM1_C___2 = 542, + FN_IP0SR2_11_8___2 = 543, + FN_RXDA_EXTFXR___3 = 544, + FN_IRQ5___7 = 545, + FN_IP1SR2_11_8___2 = 546, + FN_CANFD0_TX___3 = 547, + FN_FXR_TXENB_N_B___2 = 548, + FN_IP0SR2_15_12___2 = 549, + FN_CLK_EXTFXR___3 = 550, + FN_IRQ4_B___3 = 551, + FN_IP1SR2_15_12___2 = 552, + FN_CANFD0_RX___3 = 553, + FN_STPWT_EXTFXR___2 = 554, + FN_IP2SR2_15_12___2 = 555, + FN_CANFD1_RX___7 = 556, + FN_PWM2_C___2 = 557, + FN_IP0SR2_19_16___2 = 558, + FN_RXDB_EXTFXR___3 = 559, + FN_IP1SR2_19_16___2 = 560, + FN_CANFD2_TX___2 = 561, + FN_TPU0TO2_A___3 = 562, + FN_TCLK3_C___2 = 563, + FN_IP0SR2_23_20___2 = 564, + FN_FXR_TXENB_N_A___2 = 565, + FN_IP1SR2_23_20___2 = 566, + FN_CANFD2_RX___2 = 567, + FN_TPU0TO3_A___3 = 568, + FN_PWM1_B___7 = 569, + FN_TCLK4_C___2 = 570, + FN_IP0SR2_27_24___2 = 571, + FN_FXR_TXDB___3 = 572, + FN_IP1SR2_27_24___2 = 573, + FN_CANFD3_TX___2 = 574, + FN_PWM2_B___6 = 575, + FN_IP0SR2_31_28___2 = 576, + FN_TPU0TO1_A___3 = 577, + FN_TCLK2_C___2 = 578, + FN_IP1SR2_31_28___2 = 579, + FN_CANFD3_RX___2 = 580, + FN_PWM3_B___7 = 581, + FN_IP0SR3_3_0___2 = 582, + FN_MMC_SD_D1___3 = 583, + FN_IP1SR3_3_0___2 = 584, + FN_MMC_D7___5 = 585, + FN_IP2SR3_3_0___2 = 586, + FN_QSPI0_IO3___5 = 587, + FN_IP3SR3_3_0___2 = 588, + FN_QSPI1_IO2___5 = 589, + FN_IP0SR3_7_4___2 = 590, + FN_MMC_SD_D0___3 = 591, + FN_IP1SR3_7_4___2 = 592, + FN_MMC_D6___5 = 593, + FN_IP2SR3_7_4___2 = 594, + FN_QSPI0_IO2___5 = 595, + FN_IP3SR3_7_4___2 = 596, + FN_QSPI1_SSL___5 = 597, + FN_IP0SR3_11_8___2 = 598, + FN_MMC_SD_D2___3 = 599, + FN_IP1SR3_11_8___2 = 600, + FN_MMC_SD_CMD___3 = 601, + FN_IP2SR3_11_8___2 = 602, + FN_QSPI0_MISO_IO1___5 = 603, + FN_IP3SR3_11_8___2 = 604, + FN_QSPI1_IO3___5 = 605, + FN_IP0SR3_15_12___2 = 606, + FN_MMC_SD_CLK___3 = 607, + FN_IP1SR3_15_12___2 = 608, + FN_SD_CD___3 = 609, + FN_IP2SR3_15_12___2 = 610, + FN_QSPI0_MOSI_IO0___5 = 611, + FN_IP3SR3_15_12___2 = 612, + FN_RPC_RESET_N___5 = 613, + FN_IP0SR3_19_16___2 = 614, + FN_MMC_DS___4 = 615, + FN_IP1SR3_19_16___2 = 616, + FN_SD_WP___3 = 617, + FN_IP2SR3_19_16___2 = 618, + FN_QSPI0_SPCLK___5 = 619, + FN_IP3SR3_19_16___2 = 620, + FN_RPC_WP_N___4 = 621, + FN_IP0SR3_23_20___2 = 622, + FN_MMC_SD_D3___3 = 623, + FN_IP1SR3_23_20___2 = 624, + FN_PWM1_A___7 = 625, + FN_IP2SR3_23_20___2 = 626, + FN_QSPI1_MOSI_IO0___5 = 627, + FN_IP3SR3_23_20___2 = 628, + FN_RPC_INT_N___5 = 629, + FN_IP0SR3_27_24___2 = 630, + FN_MMC_D5___5 = 631, + FN_IP1SR3_27_24___2 = 632, + FN_PWM2_A___6 = 633, + FN_IP2SR3_27_24___2 = 634, + FN_QSPI1_SPCLK___5 = 635, + FN_IP3SR3_27_24 = 636, + FN_TCLK3_A___2 = 637, + FN_IP0SR3_31_28___2 = 638, + FN_MMC_D4___5 = 639, + FN_IP1SR3_31_28___2 = 640, + FN_QSPI0_SSL___5 = 641, + FN_IP2SR3_31_28___2 = 642, + FN_QSPI1_MISO_IO1___5 = 643, + FN_IP3SR3_31_28 = 644, + FN_TCLK4_A___2 = 645, + FN_IP0SR4_3_0___2 = 646, + FN_SCL0___4 = 647, + FN_IP1SR4_3_0___2 = 648, + FN_HRX2___4 = 649, + FN_SCK4___4 = 650, + FN_IP3SR4_3_0___2 = 651, + FN_AVS1___5 = 652, + FN_IP0SR4_7_4___2 = 653, + FN_SDA0___4 = 654, + FN_IP1SR4_7_4___2 = 655, + FN_HTX2___4 = 656, + FN_CTS4_N___4 = 657, + FN_IP0SR4_11_8___2 = 658, + FN_SCL1___4 = 659, + FN_IP1SR4_11_8___2 = 660, + FN_HRTS2_N___4 = 661, + FN_RTS4_N___4 = 662, + FN_IP0SR4_15_12___2 = 663, + FN_SDA1___4 = 664, + FN_IP1SR4_15_12___2 = 665, + FN_SCIF_CLK2___2 = 666, + FN_IP0SR4_19_16___2 = 667, + FN_SCL2___3 = 668, + FN_IP1SR4_19_16___2 = 669, + FN_HCTS2_N___4 = 670, + FN_TX4___4 = 671, + FN_IP0SR4_23_20___2 = 672, + FN_SDA2___3 = 673, + FN_IP1SR4_23_20___2 = 674, + FN_HSCK2___4 = 675, + FN_RX4___4 = 676, + FN_IP2SR4_23_20___2 = 677, + FN_PCIE0_CLKREQ_N___3 = 678, + FN_IP0SR4_27_24___2 = 679, + FN_SCL3___3 = 680, + FN_IP1SR4_27_24___2 = 681, + FN_PWM3_A___7 = 682, + FN_IP0SR4_31_28___2 = 683, + FN_SDA3___3 = 684, + FN_IP1SR4_31_28___2 = 685, + FN_PWM4___2 = 686, + FN_IP2SR4_31_28___2 = 687, + FN_AVS0___2 = 688, + FN_IP0SR5_3_0___2 = 689, + FN_AVB2_AVTP_PPS___2 = 690, + FN_Ether_GPTP_PPS0 = 691, + FN_IP1SR5_3_0___2 = 692, + FN_AVB2_TD3___2 = 693, + FN_IP2SR5_3_0___2 = 694, + FN_AVB2_TXC___2 = 695, + FN_IP0SR5_7_4___2 = 696, + FN_AVB2_AVTP_CAPTURE___2 = 697, + FN_Ether_GPTP_CAPTURE = 698, + FN_IP1SR5_7_4___2 = 699, + FN_AVB2_RD3___2 = 700, + FN_IP2SR5_7_4___2 = 701, + FN_AVB2_RD0___2 = 702, + FN_IP0SR5_11_8___2 = 703, + FN_AVB2_AVTP_MATCH___2 = 704, + FN_Ether_GPTP_MATCH = 705, + FN_IP1SR5_11_8___2 = 706, + FN_AVB2_MDIO___2 = 707, + FN_IP2SR5_11_8___2 = 708, + FN_AVB2_RXC___2 = 709, + FN_IP0SR5_15_12___2 = 710, + FN_AVB2_LINK___2 = 711, + FN_IP1SR5_15_12___2 = 712, + FN_AVB2_TD2___2 = 713, + FN_IP2SR5_15_12___2 = 714, + FN_AVB2_TX_CTL___2 = 715, + FN_IP0SR5_19_16___2 = 716, + FN_AVB2_PHY_INT___2 = 717, + FN_IP1SR5_19_16___2 = 718, + FN_AVB2_TD1___2 = 719, + FN_IP2SR5_19_16___2 = 720, + FN_AVB2_RX_CTL___2 = 721, + FN_IP0SR5_23_20___2 = 722, + FN_AVB2_MAGIC___2 = 723, + FN_Ether_GPTP_PPS1 = 724, + FN_IP1SR5_23_20___2 = 725, + FN_AVB2_RD2___2 = 726, + FN_IP0SR5_27_24___2 = 727, + FN_AVB2_MDC___2 = 728, + FN_IP1SR5_27_24___2 = 729, + FN_AVB2_RD1___2 = 730, + FN_IP0SR5_31_28___2 = 731, + FN_AVB2_TXCREFCLK___2 = 732, + FN_IP1SR5_31_28___2 = 733, + FN_AVB2_TD0___2 = 734, + FN_IP0SR6_3_0___2 = 735, + FN_AVB1_MDIO___2 = 736, + FN_IP1SR6_3_0___2 = 737, + FN_AVB1_RXC___2 = 738, + FN_AVB1_MII_RXC___2 = 739, + FN_IP2SR6_3_0___2 = 740, + FN_AVB1_TD2___2 = 741, + FN_AVB1_MII_TD2___2 = 742, + FN_IP0SR6_7_4___2 = 743, + FN_AVB1_MAGIC___2 = 744, + FN_IP1SR6_7_4___2 = 745, + FN_AVB1_RX_CTL___2 = 746, + FN_AVB1_MII_RX_DV___2 = 747, + FN_IP2SR6_7_4___2 = 748, + FN_AVB1_RD2___2 = 749, + FN_AVB1_MII_RD2___2 = 750, + FN_IP0SR6_11_8___2 = 751, + FN_AVB1_MDC___2 = 752, + FN_IP1SR6_11_8___2 = 753, + FN_AVB1_AVTP_PPS___2 = 754, + FN_AVB1_MII_COL___2 = 755, + FN_IP2SR6_11_8___2 = 756, + FN_AVB1_TD3___2 = 757, + FN_AVB1_MII_TD3___2 = 758, + FN_IP0SR6_15_12___2 = 759, + FN_AVB1_PHY_INT___2 = 760, + FN_IP1SR6_15_12___2 = 761, + FN_AVB1_AVTP_CAPTURE___2 = 762, + FN_AVB1_MII_CRS___2 = 763, + FN_IP2SR6_15_12___2 = 764, + FN_AVB1_RD3___2 = 765, + FN_AVB1_MII_RD3___2 = 766, + FN_IP0SR6_19_16___2 = 767, + FN_AVB1_LINK___2 = 768, + FN_AVB1_MII_TX_ER___2 = 769, + FN_IP1SR6_19_16___2 = 770, + FN_AVB1_TD1___2 = 771, + FN_AVB1_MII_TD1___2 = 772, + FN_IP2SR6_19_16___2 = 773, + FN_AVB1_TXCREFCLK___2 = 774, + FN_IP0SR6_23_20___2 = 775, + FN_AVB1_AVTP_MATCH___2 = 776, + FN_AVB1_MII_RX_ER___2 = 777, + FN_IP1SR6_23_20___2 = 778, + FN_AVB1_TD0___2 = 779, + FN_AVB1_MII_TD0___2 = 780, + FN_IP0SR6_27_24___2 = 781, + FN_AVB1_TXC___2 = 782, + FN_AVB1_MII_TXC___2 = 783, + FN_IP1SR6_27_24___2 = 784, + FN_AVB1_RD1___2 = 785, + FN_AVB1_MII_RD1___2 = 786, + FN_IP0SR6_31_28___2 = 787, + FN_AVB1_TX_CTL___2 = 788, + FN_AVB1_MII_TX_EN___2 = 789, + FN_IP1SR6_31_28___2 = 790, + FN_AVB1_RD0___2 = 791, + FN_AVB1_MII_RD0___2 = 792, + FN_IP0SR7_3_0___2 = 793, + FN_AVB0_AVTP_PPS___2 = 794, + FN_AVB0_MII_COL___2 = 795, + FN_IP1SR7_3_0___2 = 796, + FN_AVB0_RD3___3 = 797, + FN_AVB0_MII_RD3___2 = 798, + FN_IP2SR7_3_0___2 = 799, + FN_AVB0_TX_CTL___3 = 800, + FN_AVB0_MII_TX_EN___2 = 801, + FN_IP0SR7_7_4___2 = 802, + FN_AVB0_AVTP_CAPTURE___2 = 803, + FN_AVB0_MII_CRS___2 = 804, + FN_IP1SR7_7_4___2 = 805, + FN_AVB0_TXCREFCLK___3 = 806, + FN_IP2SR7_7_4___2 = 807, + FN_AVB0_RD1___3 = 808, + FN_AVB0_MII_RD1___2 = 809, + FN_IP0SR7_11_8___2 = 810, + FN_AVB0_AVTP_MATCH___2 = 811, + FN_AVB0_MII_RX_ER___2 = 812, + FN_CC5_OSCOUT___2 = 813, + FN_IP1SR7_11_8___2 = 814, + FN_AVB0_MAGIC___3 = 815, + FN_IP2SR7_11_8___2 = 816, + FN_AVB0_RD0___3 = 817, + FN_AVB0_MII_RD0___2 = 818, + FN_IP0SR7_15_12___2 = 819, + FN_AVB0_TD3___3 = 820, + FN_AVB0_MII_TD3___2 = 821, + FN_IP1SR7_15_12___2 = 822, + FN_AVB0_TD0___3 = 823, + FN_AVB0_MII_TD0___2 = 824, + FN_IP2SR7_15_12___2 = 825, + FN_AVB0_RXC___3 = 826, + FN_AVB0_MII_RXC___2 = 827, + FN_IP0SR7_19_16___2 = 828, + FN_AVB0_LINK___3 = 829, + FN_AVB0_MII_TX_ER___2 = 830, + FN_IP1SR7_19_16___2 = 831, + FN_AVB0_RD2___3 = 832, + FN_AVB0_MII_RD2___2 = 833, + FN_IP2SR7_19_16___2 = 834, + FN_AVB0_RX_CTL___3 = 835, + FN_AVB0_MII_RX_DV___2 = 836, + FN_IP0SR7_23_20___2 = 837, + FN_AVB0_PHY_INT___3 = 838, + FN_IP1SR7_23_20___2 = 839, + FN_AVB0_MDC___3 = 840, + FN_IP0SR7_27_24___2 = 841, + FN_AVB0_TD2___3 = 842, + FN_AVB0_MII_TD2___2 = 843, + FN_IP1SR7_27_24___2 = 844, + FN_AVB0_MDIO___3 = 845, + FN_IP0SR7_31_28___2 = 846, + FN_AVB0_TD1___3 = 847, + FN_AVB0_MII_TD1___2 = 848, + FN_IP1SR7_31_28___2 = 849, + FN_AVB0_TXC___3 = 850, + FN_AVB0_MII_TXC___2 = 851, + FN_SEL_SDA3_0___2 = 852, + FN_SEL_SDA3_1___2 = 853, + FN_SEL_SCL3_0___2 = 854, + FN_SEL_SCL3_1___2 = 855, + FN_SEL_SDA2_0___2 = 856, + FN_SEL_SDA2_1___2 = 857, + FN_SEL_SCL2_0___2 = 858, + FN_SEL_SCL2_1___2 = 859, + FN_SEL_SDA1_0___2 = 860, + FN_SEL_SDA1_1___2 = 861, + FN_SEL_SCL1_0___2 = 862, + FN_SEL_SCL1_1___2 = 863, + FN_SEL_SDA0_0___2 = 864, + FN_SEL_SDA0_1___2 = 865, + FN_SEL_SCL0_0___2 = 866, + FN_SEL_SCL0_1___2 = 867, + PINMUX_FUNCTION_END___8 = 868, + PINMUX_MARK_BEGIN___8 = 869, + IP0SR0_3_0_MARK___3 = 870, + ERROROUTC_N_B_MARK___2 = 871, + TCLK2_B_MARK___7 = 872, + IP1SR0_3_0_MARK___3 = 873, + MSIOF5_SS1_MARK___2 = 874, + IP2SR0_3_0_MARK___3 = 875, + MSIOF2_TXD_MARK___5 = 876, + HCTS1_N_A_MARK___5 = 877, + CTS1_N_A_MARK___2 = 878, + IP0SR0_7_4_MARK___3 = 879, + MSIOF3_SS1_MARK___4 = 880, + IP1SR0_7_4_MARK___3 = 881, + MSIOF5_SYNC_MARK___2 = 882, + IP2SR0_7_4_MARK___3 = 883, + MSIOF2_SCK_MARK___5 = 884, + HRTS1_N_A_MARK___5 = 885, + RTS1_N_A_MARK___2 = 886, + IP0SR0_11_8_MARK___3 = 887, + MSIOF3_SS2_MARK___4 = 888, + IP1SR0_11_8_MARK___3 = 889, + MSIOF5_TXD_MARK___2 = 890, + IP2SR0_11_8_MARK___3 = 891, + MSIOF2_RXD_MARK___5 = 892, + HSCK1_A_MARK___5 = 893, + SCK1_A_MARK___3 = 894, + IP0SR0_15_12_MARK___3 = 895, + IRQ3_A_MARK___3 = 896, + MSIOF3_SCK_MARK___4 = 897, + IP1SR0_15_12_MARK___3 = 898, + MSIOF5_SCK_MARK___2 = 899, + IP0SR0_19_16_MARK___3 = 900, + IRQ2_A_MARK___3 = 901, + MSIOF3_TXD_MARK___4 = 902, + IP1SR0_19_16_MARK___3 = 903, + MSIOF5_RXD_MARK___2 = 904, + IP0SR0_23_20_MARK___3 = 905, + IRQ1_A_MARK___3 = 906, + MSIOF3_RXD_MARK___4 = 907, + IP1SR0_23_20_MARK___3 = 908, + MSIOF2_SS2_MARK___5 = 909, + TCLK1_A_MARK___7 = 910, + IRQ2_B_MARK___3 = 911, + IP0SR0_27_24_MARK___3 = 912, + IRQ0_A_MARK___3 = 913, + MSIOF3_SYNC_MARK___4 = 914, + IP1SR0_27_24_MARK___3 = 915, + MSIOF2_SS1_MARK___5 = 916, + HTX1_A_MARK___5 = 917, + TX1_A_MARK___7 = 918, + IP0SR0_31_28_MARK___3 = 919, + MSIOF5_SS2_MARK___2 = 920, + IP1SR0_31_28_MARK___3 = 921, + MSIOF2_SYNC_MARK___4 = 922, + HRX1_A_MARK___5 = 923, + RX1_A_MARK___7 = 924, + IP0SR1_3_0_MARK___3 = 925, + MSIOF1_SS2_MARK___5 = 926, + HTX3_B_MARK___6 = 927, + TX3_B_MARK___6 = 928, + IP1SR1_3_0_MARK___2 = 929, + MSIOF0_SYNC_MARK___8 = 930, + HCTS1_N_B_MARK___5 = 931, + CTS1_N_B_MARK___2 = 932, + IP2SR1_3_0_MARK___2 = 933, + HRX0_MARK___7 = 934, + RX0_MARK___7 = 935, + IP3SR1_3_0_MARK___2 = 936, + HRX3_A_MARK___6 = 937, + SCK3_A_MARK___3 = 938, + MSIOF4_SS2_MARK___2 = 939, + IP0SR1_7_4_MARK___3 = 940, + MSIOF1_SS1_MARK___5 = 941, + HCTS3_N_B_MARK___2 = 942, + RX3_B_MARK___6 = 943, + IP1SR1_7_4_MARK___2 = 944, + MSIOF0_TXD_MARK___8 = 945, + HRTS1_N_B_MARK___5 = 946, + RTS1_N_B_MARK___2 = 947, + IP2SR1_7_4_MARK___2 = 948, + SCIF_CLK_MARK___4 = 949, + IRQ4_A_MARK___3 = 950, + IP3SR1_7_4_MARK___2 = 951, + HSCK3_A_MARK___3 = 952, + CTS3_N_A_MARK___2 = 953, + MSIOF4_SCK_MARK___2 = 954, + TPU0TO0_B_MARK___3 = 955, + IP0SR1_11_8_MARK___3 = 956, + MSIOF1_SYNC_MARK___5 = 957, + HRTS3_N_B_MARK___2 = 958, + RTS3_N_B_MARK___2 = 959, + IP1SR1_11_8_MARK___2 = 960, + MSIOF0_SCK_MARK___8 = 961, + HSCK1_B_MARK___5 = 962, + SCK1_B_MARK___3 = 963, + IP2SR1_11_8_MARK___2 = 964, + SSI_SCK_MARK___2 = 965, + TCLK3_B_MARK___2 = 966, + IP3SR1_11_8_MARK___2 = 967, + HRTS3_N_A_MARK___2 = 968, + RTS3_N_A_MARK___2 = 969, + MSIOF4_TXD_MARK___2 = 970, + TPU0TO1_B_MARK___3 = 971, + IP0SR1_15_12_MARK___3 = 972, + MSIOF1_SCK_MARK___5 = 973, + HSCK3_B_MARK___3 = 974, + CTS3_N_B_MARK___2 = 975, + IP1SR1_15_12_MARK___2 = 976, + MSIOF0_RXD_MARK___8 = 977, + IP2SR1_15_12_MARK___2 = 978, + SSI_WS_MARK___2 = 979, + TCLK4_B_MARK___2 = 980, + IP3SR1_15_12_MARK___2 = 981, + HCTS3_N_A_MARK___2 = 982, + RX3_A_MARK___6 = 983, + MSIOF4_RXD_MARK___2 = 984, + IP0SR1_19_16_MARK___3 = 985, + MSIOF1_TXD_MARK___5 = 986, + HRX3_B_MARK___6 = 987, + SCK3_B_MARK___3 = 988, + IP1SR1_19_16_MARK___2 = 989, + HTX0_MARK___7 = 990, + TX0_MARK___7 = 991, + IP2SR1_19_16_MARK___2 = 992, + SSI_SD_MARK___2 = 993, + IRQ0_B_MARK___3 = 994, + IP3SR1_19_16_MARK___2 = 995, + HTX3_A_MARK___6 = 996, + TX3_A_MARK___6 = 997, + MSIOF4_SYNC_MARK___2 = 998, + IP0SR1_23_20_MARK___3 = 999, + MSIOF1_RXD_MARK___5 = 1000, + IP1SR1_23_20_MARK___2 = 1001, + HCTS0_N_MARK___7 = 1002, + CTS0_N_MARK___8 = 1003, + IP2SR1_23_20_MARK___2 = 1004, + AUDIO_CLKOUT_MARK___3 = 1005, + IRQ1_B_MARK___3 = 1006, + IP3SR1_23_20_MARK = 1007, + ERROROUTC_N_A_MARK___2 = 1008, + IP0SR1_27_24_MARK___3 = 1009, + MSIOF0_SS2_MARK___8 = 1010, + HTX1_B_MARK___5 = 1011, + TX1_B_MARK___7 = 1012, + IP1SR1_27_24_MARK___2 = 1013, + HRTS0_N_MARK___7 = 1014, + RTS0_N_MARK___8 = 1015, + PWM0_B_MARK___3 = 1016, + IP2SR1_27_24_MARK___2 = 1017, + AUDIO_CLKIN_MARK___2 = 1018, + PWM3_C_MARK___2 = 1019, + IP0SR1_31_28_MARK___3 = 1020, + MSIOF0_SS1_MARK___8 = 1021, + HRX1_B_MARK___5 = 1022, + RX1_B_MARK___7 = 1023, + IP1SR1_31_28_MARK___2 = 1024, + HSCK0_MARK___7 = 1025, + SCK0_MARK___7 = 1026, + PWM0_A_MARK___3 = 1027, + IP2SR1_31_28_MARK___2 = 1028, + TCLK2_A_MARK___7 = 1029, + MSIOF4_SS1_MARK___2 = 1030, + IRQ3_B_MARK___3 = 1031, + IP0SR2_3_0_MARK___2 = 1032, + FXR_TXDA_MARK___3 = 1033, + TPU0TO2_B_MARK___3 = 1034, + IP1SR2_3_0_MARK___2 = 1035, + TPU0TO0_A_MARK___3 = 1036, + TCLK1_B_MARK___7 = 1037, + IP0SR2_7_4_MARK___2 = 1038, + FXR_TXENA_N_A_MARK___2 = 1039, + TPU0TO3_B_MARK___3 = 1040, + IP1SR2_7_4_MARK___2 = 1041, + CAN_CLK_MARK___6 = 1042, + FXR_TXENA_N_B_MARK___2 = 1043, + IP2SR2_7_4_MARK___2 = 1044, + CANFD1_TX_MARK___7 = 1045, + PWM1_C_MARK___2 = 1046, + IP0SR2_11_8_MARK___2 = 1047, + RXDA_EXTFXR_MARK___3 = 1048, + IRQ5_MARK___7 = 1049, + IP1SR2_11_8_MARK___2 = 1050, + CANFD0_TX_MARK___3 = 1051, + FXR_TXENB_N_B_MARK___2 = 1052, + IP0SR2_15_12_MARK___2 = 1053, + CLK_EXTFXR_MARK___3 = 1054, + IRQ4_B_MARK___3 = 1055, + IP1SR2_15_12_MARK___2 = 1056, + CANFD0_RX_MARK___3 = 1057, + STPWT_EXTFXR_MARK___2 = 1058, + IP2SR2_15_12_MARK___2 = 1059, + CANFD1_RX_MARK___7 = 1060, + PWM2_C_MARK___2 = 1061, + IP0SR2_19_16_MARK___2 = 1062, + RXDB_EXTFXR_MARK___3 = 1063, + IP1SR2_19_16_MARK___2 = 1064, + CANFD2_TX_MARK___2 = 1065, + TPU0TO2_A_MARK___3 = 1066, + TCLK3_C_MARK___2 = 1067, + IP0SR2_23_20_MARK___2 = 1068, + FXR_TXENB_N_A_MARK___2 = 1069, + IP1SR2_23_20_MARK___2 = 1070, + CANFD2_RX_MARK___2 = 1071, + TPU0TO3_A_MARK___3 = 1072, + PWM1_B_MARK___7 = 1073, + TCLK4_C_MARK___2 = 1074, + IP0SR2_27_24_MARK___2 = 1075, + FXR_TXDB_MARK___3 = 1076, + IP1SR2_27_24_MARK___2 = 1077, + CANFD3_TX_MARK___2 = 1078, + PWM2_B_MARK___6 = 1079, + IP0SR2_31_28_MARK___2 = 1080, + TPU0TO1_A_MARK___3 = 1081, + TCLK2_C_MARK___2 = 1082, + IP1SR2_31_28_MARK___2 = 1083, + CANFD3_RX_MARK___2 = 1084, + PWM3_B_MARK___7 = 1085, + IP0SR3_3_0_MARK___2 = 1086, + MMC_SD_D1_MARK___3 = 1087, + IP1SR3_3_0_MARK___2 = 1088, + MMC_D7_MARK___5 = 1089, + IP2SR3_3_0_MARK___2 = 1090, + QSPI0_IO3_MARK___8 = 1091, + IP3SR3_3_0_MARK___2 = 1092, + QSPI1_IO2_MARK___8 = 1093, + IP0SR3_7_4_MARK___2 = 1094, + MMC_SD_D0_MARK___3 = 1095, + IP1SR3_7_4_MARK___2 = 1096, + MMC_D6_MARK___5 = 1097, + IP2SR3_7_4_MARK___2 = 1098, + QSPI0_IO2_MARK___8 = 1099, + IP3SR3_7_4_MARK___2 = 1100, + QSPI1_SSL_MARK___8 = 1101, + IP0SR3_11_8_MARK___2 = 1102, + MMC_SD_D2_MARK___3 = 1103, + IP1SR3_11_8_MARK___2 = 1104, + MMC_SD_CMD_MARK___3 = 1105, + IP2SR3_11_8_MARK___2 = 1106, + QSPI0_MISO_IO1_MARK___8 = 1107, + IP3SR3_11_8_MARK___2 = 1108, + QSPI1_IO3_MARK___8 = 1109, + IP0SR3_15_12_MARK___2 = 1110, + MMC_SD_CLK_MARK___3 = 1111, + IP1SR3_15_12_MARK___2 = 1112, + SD_CD_MARK___3 = 1113, + IP2SR3_15_12_MARK___2 = 1114, + QSPI0_MOSI_IO0_MARK___8 = 1115, + IP3SR3_15_12_MARK___2 = 1116, + RPC_RESET_N_MARK___5 = 1117, + IP0SR3_19_16_MARK___2 = 1118, + MMC_DS_MARK___4 = 1119, + IP1SR3_19_16_MARK___2 = 1120, + SD_WP_MARK___3 = 1121, + IP2SR3_19_16_MARK___2 = 1122, + QSPI0_SPCLK_MARK___8 = 1123, + IP3SR3_19_16_MARK___2 = 1124, + RPC_WP_N_MARK___4 = 1125, + IP0SR3_23_20_MARK___2 = 1126, + MMC_SD_D3_MARK___3 = 1127, + IP1SR3_23_20_MARK___2 = 1128, + PWM1_A_MARK___7 = 1129, + IP2SR3_23_20_MARK___2 = 1130, + QSPI1_MOSI_IO0_MARK___8 = 1131, + IP3SR3_23_20_MARK___2 = 1132, + RPC_INT_N_MARK___5 = 1133, + IP0SR3_27_24_MARK___2 = 1134, + MMC_D5_MARK___5 = 1135, + IP1SR3_27_24_MARK___2 = 1136, + PWM2_A_MARK___6 = 1137, + IP2SR3_27_24_MARK___2 = 1138, + QSPI1_SPCLK_MARK___8 = 1139, + IP3SR3_27_24_MARK = 1140, + TCLK3_A_MARK___2 = 1141, + IP0SR3_31_28_MARK___2 = 1142, + MMC_D4_MARK___5 = 1143, + IP1SR3_31_28_MARK___2 = 1144, + QSPI0_SSL_MARK___8 = 1145, + IP2SR3_31_28_MARK___2 = 1146, + QSPI1_MISO_IO1_MARK___8 = 1147, + IP3SR3_31_28_MARK = 1148, + TCLK4_A_MARK___2 = 1149, + IP0SR4_3_0_MARK___2 = 1150, + SCL0_MARK___8 = 1151, + IP1SR4_3_0_MARK___2 = 1152, + HRX2_MARK___4 = 1153, + SCK4_MARK___4 = 1154, + IP3SR4_3_0_MARK___2 = 1155, + AVS1_MARK___5 = 1156, + IP0SR4_7_4_MARK___2 = 1157, + SDA0_MARK___8 = 1158, + IP1SR4_7_4_MARK___2 = 1159, + HTX2_MARK___4 = 1160, + CTS4_N_MARK___4 = 1161, + IP0SR4_11_8_MARK___2 = 1162, + SCL1_MARK___5 = 1163, + IP1SR4_11_8_MARK___2 = 1164, + HRTS2_N_MARK___4 = 1165, + RTS4_N_MARK___4 = 1166, + IP0SR4_15_12_MARK___2 = 1167, + SDA1_MARK___5 = 1168, + IP1SR4_15_12_MARK___2 = 1169, + SCIF_CLK2_MARK___2 = 1170, + IP0SR4_19_16_MARK___2 = 1171, + SCL2_MARK___4 = 1172, + IP1SR4_19_16_MARK___2 = 1173, + HCTS2_N_MARK___4 = 1174, + TX4_MARK___4 = 1175, + IP0SR4_23_20_MARK___2 = 1176, + SDA2_MARK___4 = 1177, + IP1SR4_23_20_MARK___2 = 1178, + HSCK2_MARK___4 = 1179, + RX4_MARK___4 = 1180, + IP2SR4_23_20_MARK___2 = 1181, + PCIE0_CLKREQ_N_MARK___3 = 1182, + IP0SR4_27_24_MARK___2 = 1183, + SCL3_MARK___7 = 1184, + IP1SR4_27_24_MARK___2 = 1185, + PWM3_A_MARK___7 = 1186, + IP0SR4_31_28_MARK___2 = 1187, + SDA3_MARK___7 = 1188, + IP1SR4_31_28_MARK___2 = 1189, + PWM4_MARK___2 = 1190, + IP2SR4_31_28_MARK___2 = 1191, + AVS0_MARK___2 = 1192, + IP0SR5_3_0_MARK___2 = 1193, + AVB2_AVTP_PPS_MARK___2 = 1194, + Ether_GPTP_PPS0_MARK = 1195, + IP1SR5_3_0_MARK___2 = 1196, + AVB2_TD3_MARK___2 = 1197, + IP2SR5_3_0_MARK___2 = 1198, + AVB2_TXC_MARK___2 = 1199, + IP0SR5_7_4_MARK___2 = 1200, + AVB2_AVTP_CAPTURE_MARK___2 = 1201, + Ether_GPTP_CAPTURE_MARK = 1202, + IP1SR5_7_4_MARK___2 = 1203, + AVB2_RD3_MARK___2 = 1204, + IP2SR5_7_4_MARK___2 = 1205, + AVB2_RD0_MARK___2 = 1206, + IP0SR5_11_8_MARK___2 = 1207, + AVB2_AVTP_MATCH_MARK___2 = 1208, + Ether_GPTP_MATCH_MARK = 1209, + IP1SR5_11_8_MARK___2 = 1210, + AVB2_MDIO_MARK___2 = 1211, + IP2SR5_11_8_MARK___2 = 1212, + AVB2_RXC_MARK___2 = 1213, + IP0SR5_15_12_MARK___2 = 1214, + AVB2_LINK_MARK___2 = 1215, + IP1SR5_15_12_MARK___2 = 1216, + AVB2_TD2_MARK___2 = 1217, + IP2SR5_15_12_MARK___2 = 1218, + AVB2_TX_CTL_MARK___2 = 1219, + IP0SR5_19_16_MARK___2 = 1220, + AVB2_PHY_INT_MARK___2 = 1221, + IP1SR5_19_16_MARK___2 = 1222, + AVB2_TD1_MARK___2 = 1223, + IP2SR5_19_16_MARK___2 = 1224, + AVB2_RX_CTL_MARK___2 = 1225, + IP0SR5_23_20_MARK___2 = 1226, + AVB2_MAGIC_MARK___2 = 1227, + Ether_GPTP_PPS1_MARK = 1228, + IP1SR5_23_20_MARK___2 = 1229, + AVB2_RD2_MARK___2 = 1230, + IP0SR5_27_24_MARK___2 = 1231, + AVB2_MDC_MARK___2 = 1232, + IP1SR5_27_24_MARK___2 = 1233, + AVB2_RD1_MARK___2 = 1234, + IP0SR5_31_28_MARK___2 = 1235, + AVB2_TXCREFCLK_MARK___2 = 1236, + IP1SR5_31_28_MARK___2 = 1237, + AVB2_TD0_MARK___2 = 1238, + IP0SR6_3_0_MARK___2 = 1239, + AVB1_MDIO_MARK___2 = 1240, + IP1SR6_3_0_MARK___2 = 1241, + AVB1_RXC_MARK___2 = 1242, + AVB1_MII_RXC_MARK___2 = 1243, + IP2SR6_3_0_MARK___2 = 1244, + AVB1_TD2_MARK___2 = 1245, + AVB1_MII_TD2_MARK___2 = 1246, + IP0SR6_7_4_MARK___2 = 1247, + AVB1_MAGIC_MARK___2 = 1248, + IP1SR6_7_4_MARK___2 = 1249, + AVB1_RX_CTL_MARK___2 = 1250, + AVB1_MII_RX_DV_MARK___2 = 1251, + IP2SR6_7_4_MARK___2 = 1252, + AVB1_RD2_MARK___2 = 1253, + AVB1_MII_RD2_MARK___2 = 1254, + IP0SR6_11_8_MARK___2 = 1255, + AVB1_MDC_MARK___2 = 1256, + IP1SR6_11_8_MARK___2 = 1257, + AVB1_AVTP_PPS_MARK___2 = 1258, + AVB1_MII_COL_MARK___2 = 1259, + IP2SR6_11_8_MARK___2 = 1260, + AVB1_TD3_MARK___2 = 1261, + AVB1_MII_TD3_MARK___2 = 1262, + IP0SR6_15_12_MARK___2 = 1263, + AVB1_PHY_INT_MARK___2 = 1264, + IP1SR6_15_12_MARK___2 = 1265, + AVB1_AVTP_CAPTURE_MARK___2 = 1266, + AVB1_MII_CRS_MARK___2 = 1267, + IP2SR6_15_12_MARK___2 = 1268, + AVB1_RD3_MARK___2 = 1269, + AVB1_MII_RD3_MARK___2 = 1270, + IP0SR6_19_16_MARK___2 = 1271, + AVB1_LINK_MARK___2 = 1272, + AVB1_MII_TX_ER_MARK___2 = 1273, + IP1SR6_19_16_MARK___2 = 1274, + AVB1_TD1_MARK___2 = 1275, + AVB1_MII_TD1_MARK___2 = 1276, + IP2SR6_19_16_MARK___2 = 1277, + AVB1_TXCREFCLK_MARK___2 = 1278, + IP0SR6_23_20_MARK___2 = 1279, + AVB1_AVTP_MATCH_MARK___2 = 1280, + AVB1_MII_RX_ER_MARK___2 = 1281, + IP1SR6_23_20_MARK___2 = 1282, + AVB1_TD0_MARK___2 = 1283, + AVB1_MII_TD0_MARK___2 = 1284, + IP0SR6_27_24_MARK___2 = 1285, + AVB1_TXC_MARK___2 = 1286, + AVB1_MII_TXC_MARK___2 = 1287, + IP1SR6_27_24_MARK___2 = 1288, + AVB1_RD1_MARK___2 = 1289, + AVB1_MII_RD1_MARK___2 = 1290, + IP0SR6_31_28_MARK___2 = 1291, + AVB1_TX_CTL_MARK___2 = 1292, + AVB1_MII_TX_EN_MARK___2 = 1293, + IP1SR6_31_28_MARK___2 = 1294, + AVB1_RD0_MARK___2 = 1295, + AVB1_MII_RD0_MARK___2 = 1296, + IP0SR7_3_0_MARK___2 = 1297, + AVB0_AVTP_PPS_MARK___2 = 1298, + AVB0_MII_COL_MARK___2 = 1299, + IP1SR7_3_0_MARK___2 = 1300, + AVB0_RD3_MARK___3 = 1301, + AVB0_MII_RD3_MARK___2 = 1302, + IP2SR7_3_0_MARK___2 = 1303, + AVB0_TX_CTL_MARK___3 = 1304, + AVB0_MII_TX_EN_MARK___2 = 1305, + IP0SR7_7_4_MARK___2 = 1306, + AVB0_AVTP_CAPTURE_MARK___2 = 1307, + AVB0_MII_CRS_MARK___2 = 1308, + IP1SR7_7_4_MARK___2 = 1309, + AVB0_TXCREFCLK_MARK___3 = 1310, + IP2SR7_7_4_MARK___2 = 1311, + AVB0_RD1_MARK___3 = 1312, + AVB0_MII_RD1_MARK___2 = 1313, + IP0SR7_11_8_MARK___2 = 1314, + AVB0_AVTP_MATCH_MARK___2 = 1315, + AVB0_MII_RX_ER_MARK___2 = 1316, + CC5_OSCOUT_MARK___2 = 1317, + IP1SR7_11_8_MARK___2 = 1318, + AVB0_MAGIC_MARK___3 = 1319, + IP2SR7_11_8_MARK___2 = 1320, + AVB0_RD0_MARK___3 = 1321, + AVB0_MII_RD0_MARK___2 = 1322, + IP0SR7_15_12_MARK___2 = 1323, + AVB0_TD3_MARK___3 = 1324, + AVB0_MII_TD3_MARK___2 = 1325, + IP1SR7_15_12_MARK___2 = 1326, + AVB0_TD0_MARK___3 = 1327, + AVB0_MII_TD0_MARK___2 = 1328, + IP2SR7_15_12_MARK___2 = 1329, + AVB0_RXC_MARK___3 = 1330, + AVB0_MII_RXC_MARK___2 = 1331, + IP0SR7_19_16_MARK___2 = 1332, + AVB0_LINK_MARK___3 = 1333, + AVB0_MII_TX_ER_MARK___2 = 1334, + IP1SR7_19_16_MARK___2 = 1335, + AVB0_RD2_MARK___3 = 1336, + AVB0_MII_RD2_MARK___2 = 1337, + IP2SR7_19_16_MARK___2 = 1338, + AVB0_RX_CTL_MARK___3 = 1339, + AVB0_MII_RX_DV_MARK___2 = 1340, + IP0SR7_23_20_MARK___2 = 1341, + AVB0_PHY_INT_MARK___3 = 1342, + IP1SR7_23_20_MARK___2 = 1343, + AVB0_MDC_MARK___3 = 1344, + IP0SR7_27_24_MARK___2 = 1345, + AVB0_TD2_MARK___3 = 1346, + AVB0_MII_TD2_MARK___2 = 1347, + IP1SR7_27_24_MARK___2 = 1348, + AVB0_MDIO_MARK___3 = 1349, + IP0SR7_31_28_MARK___2 = 1350, + AVB0_TD1_MARK___3 = 1351, + AVB0_MII_TD1_MARK___2 = 1352, + IP1SR7_31_28_MARK___2 = 1353, + AVB0_TXC_MARK___3 = 1354, + AVB0_MII_TXC_MARK___2 = 1355, + SEL_SDA3_0_MARK___2 = 1356, + SEL_SDA3_1_MARK___2 = 1357, + SEL_SCL3_0_MARK___2 = 1358, + SEL_SCL3_1_MARK___2 = 1359, + SEL_SDA2_0_MARK___2 = 1360, + SEL_SDA2_1_MARK___2 = 1361, + SEL_SCL2_0_MARK___2 = 1362, + SEL_SCL2_1_MARK___2 = 1363, + SEL_SDA1_0_MARK___2 = 1364, + SEL_SDA1_1_MARK___2 = 1365, + SEL_SCL1_0_MARK___2 = 1366, + SEL_SCL1_1_MARK___2 = 1367, + SEL_SDA0_0_MARK___2 = 1368, + SEL_SDA0_1_MARK___2 = 1369, + SEL_SCL0_0_MARK___2 = 1370, + SEL_SCL0_1_MARK___2 = 1371, + PINMUX_MARK_END___8 = 1372, +}; + +enum { + PINMUX_RESERVED___9 = 0, + PINMUX_DATA_BEGIN___9 = 1, + GP_0_0_DATA___9 = 2, + GP_0_1_DATA___9 = 3, + GP_0_2_DATA___9 = 4, + GP_0_3_DATA___9 = 5, + GP_0_4_DATA___9 = 6, + GP_0_5_DATA___9 = 7, + GP_0_6_DATA___9 = 8, + GP_0_7_DATA___9 = 9, + GP_0_8_DATA___9 = 10, + GP_0_9_DATA___8 = 11, + GP_0_10_DATA___8 = 12, + GP_0_11_DATA___8 = 13, + GP_0_12_DATA___8 = 14, + GP_0_13_DATA___8 = 15, + GP_0_14_DATA___8 = 16, + GP_0_15_DATA___8 = 17, + GP_0_16_DATA___5 = 18, + GP_0_17_DATA___5 = 19, + GP_1_0_DATA___9 = 20, + GP_1_1_DATA___9 = 21, + GP_1_2_DATA___9 = 22, + GP_1_3_DATA___9 = 23, + GP_1_4_DATA___9 = 24, + GP_1_5_DATA___9 = 25, + GP_1_6_DATA___9 = 26, + GP_1_7_DATA___9 = 27, + GP_1_8_DATA___9 = 28, + GP_1_9_DATA___9 = 29, + GP_1_10_DATA___9 = 30, + GP_1_11_DATA___9 = 31, + GP_1_12_DATA___9 = 32, + GP_1_13_DATA___9 = 33, + GP_1_14_DATA___9 = 34, + GP_1_15_DATA___9 = 35, + GP_1_16_DATA___9 = 36, + GP_1_17_DATA___9 = 37, + GP_1_18_DATA___9 = 38, + GP_1_19_DATA___9 = 39, + GP_1_20_DATA___9 = 40, + GP_1_21_DATA___9 = 41, + GP_1_22_DATA___9 = 42, + GP_2_0_DATA___9 = 43, + GP_2_1_DATA___9 = 44, + GP_2_2_DATA___9 = 45, + GP_2_3_DATA___9 = 46, + GP_2_4_DATA___9 = 47, + GP_2_5_DATA___9 = 48, + GP_2_6_DATA___9 = 49, + GP_2_7_DATA___9 = 50, + GP_2_8_DATA___9 = 51, + GP_2_9_DATA___9 = 52, + GP_2_10_DATA___9 = 53, + GP_2_11_DATA___9 = 54, + GP_2_12_DATA___9 = 55, + GP_2_13_DATA___9 = 56, + GP_2_14_DATA___9 = 57, + GP_2_15_DATA___6 = 58, + GP_2_16_DATA___5 = 59, + GP_2_17_DATA___5 = 60, + GP_2_18_DATA___4 = 61, + GP_2_19_DATA___5 = 62, + GP_2_20_DATA___3 = 63, + GP_2_21_DATA___3 = 64, + GP_2_22_DATA___3 = 65, + GP_2_23_DATA___3 = 66, + GP_2_24_DATA___3 = 67, + GP_2_25_DATA___3 = 68, + GP_3_0_DATA___9 = 69, + GP_3_1_DATA___9 = 70, + GP_3_2_DATA___9 = 71, + GP_3_3_DATA___9 = 72, + GP_3_4_DATA___9 = 73, + GP_3_5_DATA___9 = 74, + GP_3_6_DATA___9 = 75, + GP_3_7_DATA___9 = 76, + GP_3_8_DATA___9 = 77, + GP_3_9_DATA___9 = 78, + GP_3_10_DATA___8 = 79, + GP_3_11_DATA___8 = 80, + GP_3_12_DATA___8 = 81, + GP_3_13_DATA___8 = 82, + GP_3_14_DATA___8 = 83, + GP_3_15_DATA___8 = 84, + GP_4_0_DATA___8 = 85, + GP_4_1_DATA___8 = 86, + GP_4_2_DATA___8 = 87, + GP_4_3_DATA___8 = 88, + GP_4_4_DATA___8 = 89, + GP_4_5_DATA___8 = 90, + GP_4_6_DATA___8 = 91, + GP_4_7_DATA___8 = 92, + GP_4_8_DATA___8 = 93, + GP_4_9_DATA___8 = 94, + GP_4_10_DATA___8 = 95, + GP_5_0_DATA___8 = 96, + GP_5_1_DATA___8 = 97, + GP_5_2_DATA___8 = 98, + GP_5_3_DATA___8 = 99, + GP_5_4_DATA___8 = 100, + GP_5_5_DATA___8 = 101, + GP_5_6_DATA___8 = 102, + GP_5_7_DATA___8 = 103, + GP_5_8_DATA___8 = 104, + GP_5_9_DATA___8 = 105, + GP_5_10_DATA___8 = 106, + GP_5_11_DATA___8 = 107, + GP_5_12_DATA___8 = 108, + GP_5_13_DATA___8 = 109, + GP_5_14_DATA___8 = 110, + GP_5_15_DATA___7 = 111, + GP_5_16_DATA___7 = 112, + GP_5_17_DATA___7 = 113, + GP_5_18_DATA___7 = 114, + GP_5_19_DATA___7 = 115, + GP_6_0_DATA___7 = 116, + GP_6_1_DATA___7 = 117, + GP_6_2_DATA___7 = 118, + GP_6_3_DATA___7 = 119, + GP_6_4_DATA___7 = 120, + GP_6_5_DATA___7 = 121, + GP_6_6_DATA___7 = 122, + GP_6_7_DATA___7 = 123, + GP_6_8_DATA___7 = 124, + GP_6_9_DATA___7 = 125, + GP_6_10_DATA___7 = 126, + GP_6_11_DATA___7 = 127, + GP_6_12_DATA___7 = 128, + GP_6_13_DATA___7 = 129, + GP_6_14_DATA___6 = 130, + GP_6_15_DATA___6 = 131, + GP_6_16_DATA___6 = 132, + GP_6_17_DATA___6 = 133, + PINMUX_DATA_END___9 = 134, + PINMUX_FUNCTION_BEGIN___9 = 135, + GP_0_0_FN___9 = 136, + GP_0_1_FN___9 = 137, + GP_0_2_FN___9 = 138, + GP_0_3_FN___9 = 139, + GP_0_4_FN___9 = 140, + GP_0_5_FN___9 = 141, + GP_0_6_FN___9 = 142, + GP_0_7_FN___9 = 143, + GP_0_8_FN___9 = 144, + GP_0_9_FN___8 = 145, + GP_0_10_FN___8 = 146, + GP_0_11_FN___8 = 147, + GP_0_12_FN___8 = 148, + GP_0_13_FN___8 = 149, + GP_0_14_FN___8 = 150, + GP_0_15_FN___8 = 151, + GP_0_16_FN___5 = 152, + GP_0_17_FN___5 = 153, + GP_1_0_FN___9 = 154, + GP_1_1_FN___9 = 155, + GP_1_2_FN___9 = 156, + GP_1_3_FN___9 = 157, + GP_1_4_FN___9 = 158, + GP_1_5_FN___9 = 159, + GP_1_6_FN___9 = 160, + GP_1_7_FN___9 = 161, + GP_1_8_FN___9 = 162, + GP_1_9_FN___9 = 163, + GP_1_10_FN___9 = 164, + GP_1_11_FN___9 = 165, + GP_1_12_FN___9 = 166, + GP_1_13_FN___9 = 167, + GP_1_14_FN___9 = 168, + GP_1_15_FN___9 = 169, + GP_1_16_FN___9 = 170, + GP_1_17_FN___9 = 171, + GP_1_18_FN___9 = 172, + GP_1_19_FN___9 = 173, + GP_1_20_FN___9 = 174, + GP_1_21_FN___9 = 175, + GP_1_22_FN___9 = 176, + GP_2_0_FN___9 = 177, + GP_2_1_FN___9 = 178, + GP_2_2_FN___9 = 179, + GP_2_3_FN___9 = 180, + GP_2_4_FN___9 = 181, + GP_2_5_FN___9 = 182, + GP_2_6_FN___9 = 183, + GP_2_7_FN___9 = 184, + GP_2_8_FN___9 = 185, + GP_2_9_FN___9 = 186, + GP_2_10_FN___9 = 187, + GP_2_11_FN___9 = 188, + GP_2_12_FN___9 = 189, + GP_2_13_FN___9 = 190, + GP_2_14_FN___9 = 191, + GP_2_15_FN___6 = 192, + GP_2_16_FN___5 = 193, + GP_2_17_FN___5 = 194, + GP_2_18_FN___4 = 195, + GP_2_19_FN___5 = 196, + GP_2_20_FN___3 = 197, + GP_2_21_FN___3 = 198, + GP_2_22_FN___3 = 199, + GP_2_23_FN___3 = 200, + GP_2_24_FN___3 = 201, + GP_2_25_FN___3 = 202, + GP_3_0_FN___9 = 203, + GP_3_1_FN___9 = 204, + GP_3_2_FN___9 = 205, + GP_3_3_FN___9 = 206, + GP_3_4_FN___9 = 207, + GP_3_5_FN___9 = 208, + GP_3_6_FN___9 = 209, + GP_3_7_FN___9 = 210, + GP_3_8_FN___9 = 211, + GP_3_9_FN___9 = 212, + GP_3_10_FN___8 = 213, + GP_3_11_FN___8 = 214, + GP_3_12_FN___8 = 215, + GP_3_13_FN___8 = 216, + GP_3_14_FN___8 = 217, + GP_3_15_FN___8 = 218, + GP_4_0_FN___8 = 219, + GP_4_1_FN___8 = 220, + GP_4_2_FN___8 = 221, + GP_4_3_FN___8 = 222, + GP_4_4_FN___8 = 223, + GP_4_5_FN___8 = 224, + GP_4_6_FN___8 = 225, + GP_4_7_FN___8 = 226, + GP_4_8_FN___8 = 227, + GP_4_9_FN___8 = 228, + GP_4_10_FN___8 = 229, + GP_5_0_FN___8 = 230, + GP_5_1_FN___8 = 231, + GP_5_2_FN___8 = 232, + GP_5_3_FN___8 = 233, + GP_5_4_FN___8 = 234, + GP_5_5_FN___8 = 235, + GP_5_6_FN___8 = 236, + GP_5_7_FN___8 = 237, + GP_5_8_FN___8 = 238, + GP_5_9_FN___8 = 239, + GP_5_10_FN___8 = 240, + GP_5_11_FN___8 = 241, + GP_5_12_FN___8 = 242, + GP_5_13_FN___8 = 243, + GP_5_14_FN___8 = 244, + GP_5_15_FN___7 = 245, + GP_5_16_FN___7 = 246, + GP_5_17_FN___7 = 247, + GP_5_18_FN___7 = 248, + GP_5_19_FN___7 = 249, + GP_6_0_FN___7 = 250, + GP_6_1_FN___7 = 251, + GP_6_2_FN___7 = 252, + GP_6_3_FN___7 = 253, + GP_6_4_FN___7 = 254, + GP_6_5_FN___7 = 255, + GP_6_6_FN___7 = 256, + GP_6_7_FN___7 = 257, + GP_6_8_FN___7 = 258, + GP_6_9_FN___7 = 259, + GP_6_10_FN___7 = 260, + GP_6_11_FN___7 = 261, + GP_6_12_FN___7 = 262, + GP_6_13_FN___7 = 263, + GP_6_14_FN___6 = 264, + GP_6_15_FN___6 = 265, + GP_6_16_FN___6 = 266, + GP_6_17_FN___6 = 267, + FN_AVB_PHY_INT___5 = 268, + FN_CLKOUT___5 = 269, + FN_AVB_RD3___2 = 270, + FN_AVB_RXC___2 = 271, + FN_AVB_RX_CTL___2 = 272, + FN_QSPI0_SSL___6 = 273, + FN_IP0_3_0___6 = 274, + FN_QSPI0_SPCLK___6 = 275, + FN_HSCK4_A = 276, + FN_IP1_3_0___6 = 277, + FN_QSPI1_IO2___6 = 278, + FN_RIF2_D1_A___4 = 279, + FN_HTX3_C___4 = 280, + FN_VI4_DATA3_A___4 = 281, + FN_IP2_3_0___6 = 282, + FN_AVB_TXCREFCLK___2 = 283, + FN_IP3_3_0___6 = 284, + FN_A1___5 = 285, + FN_IRQ1___6 = 286, + FN_PWM3_A___8 = 287, + FN_DU_DOTCLKIN1___2 = 288, + FN_VI5_DATA0_A = 289, + FN_DU_DISP_CDE___2 = 290, + FN_SDA6_B___4 = 291, + FN_IETX = 292, + FN_QCPV_QDE___5 = 293, + FN_IP0_7_4___6 = 294, + FN_QSPI0_MOSI_IO0___6 = 295, + FN_HCTS4_N_A = 296, + FN_IP1_7_4___6 = 297, + FN_QSPI1_IO3___6 = 298, + FN_RIF3_CLK_A___4 = 299, + FN_HRX3_C___4 = 300, + FN_VI4_DATA4_A___4 = 301, + FN_IP2_7_4___6 = 302, + FN_AVB_MDIO___2 = 303, + FN_IP3_7_4___6 = 304, + FN_A2___5 = 305, + FN_IRQ2___6 = 306, + FN_AVB_AVTP_PPS___5 = 307, + FN_VI4_CLKENB___5 = 308, + FN_VI5_DATA1_A = 309, + FN_DU_DISP___6 = 310, + FN_SCL6_B___4 = 311, + FN_QSTVB_QVE___5 = 312, + FN_IP0_11_8___6 = 313, + FN_QSPI0_MISO_IO1___6 = 314, + FN_HRTS4_N_A = 315, + FN_IP1_11_8___6 = 316, + FN_QSPI1_SSL___6 = 317, + FN_RIF3_SYNC_A___4 = 318, + FN_HSCK3_C = 319, + FN_VI4_DATA5_A___4 = 320, + FN_IP2_11_8___6 = 321, + FN_AVB_MDC___5 = 322, + FN_IP3_11_8___6 = 323, + FN_A3___5 = 324, + FN_CTS4_N_A___4 = 325, + FN_PWM4_A___5 = 326, + FN_VI4_DATA12___5 = 327, + FN_DU_DOTCLKOUT0___5 = 328, + FN_HTX3_D___4 = 329, + FN_IECLK = 330, + FN_LCDOUT12___5 = 331, + FN_IP0_15_12___6 = 332, + FN_QSPI0_IO2___6 = 333, + FN_HTX4_A___4 = 334, + FN_IP1_15_12___6 = 335, + FN_RPC_INT_N___6 = 336, + FN_RIF3_D0_A___4 = 337, + FN_HCTS3_N_C = 338, + FN_VI4_DATA6_A___4 = 339, + FN_IP2_15_12___6 = 340, + FN_BS_N___5 = 341, + FN_PWM0_A___4 = 342, + FN_AVB_MAGIC___5 = 343, + FN_VI4_CLK___5 = 344, + FN_TX3_C = 345, + FN_VI5_CLK_B = 346, + FN_IP3_15_12___6 = 347, + FN_A4___5 = 348, + FN_RTS4_N_A___4 = 349, + FN_MSIOF3_SYNC_B___5 = 350, + FN_VI4_DATA8___5 = 351, + FN_PWM2_B___7 = 352, + FN_DU_DG4___6 = 353, + FN_RIF2_CLK_B___4 = 354, + FN_IP0_19_16___6 = 355, + FN_QSPI0_IO3___6 = 356, + FN_HRX4_A___4 = 357, + FN_IP1_19_16___6 = 358, + FN_RPC_RESET_N___6 = 359, + FN_RIF3_D1_A___4 = 360, + FN_HRTS3_N_C = 361, + FN_VI4_DATA7_A___4 = 362, + FN_IP2_19_16___6 = 363, + FN_RD_N___5 = 364, + FN_PWM1_A___8 = 365, + FN_AVB_LINK___5 = 366, + FN_VI4_FIELD___5 = 367, + FN_RX3_C = 368, + FN_FSCLKST2_N_A___3 = 369, + FN_VI5_DATA0_B = 370, + FN_IP3_19_16___6 = 371, + FN_A5___5 = 372, + FN_SCK4_A___5 = 373, + FN_MSIOF3_SCK_B___5 = 374, + FN_VI4_DATA9___5 = 375, + FN_PWM3_B___8 = 376, + FN_RIF2_SYNC_B___4 = 377, + FN_QPOLA___5 = 378, + FN_IP0_23_20___6 = 379, + FN_QSPI1_SPCLK___6 = 380, + FN_RIF2_CLK_A___4 = 381, + FN_HSCK4_B = 382, + FN_VI4_DATA0_A___4 = 383, + FN_IP1_23_20___6 = 384, + FN_AVB_RD0___2 = 385, + FN_IP2_23_20___6 = 386, + FN_RD_WR_N___5 = 387, + FN_SCL7_A = 388, + FN_AVB_AVTP_MATCH___2 = 389, + FN_VI4_VSYNC_N___5 = 390, + FN_TX5_B___5 = 391, + FN_SCK3_C = 392, + FN_PWM5_A___4 = 393, + FN_IP3_23_20___6 = 394, + FN_A6___5 = 395, + FN_RX4_A___5 = 396, + FN_MSIOF3_RXD_B___5 = 397, + FN_VI4_DATA10___5 = 398, + FN_RIF2_D0_B___4 = 399, + FN_IP0_27_24___6 = 400, + FN_QSPI1_MOSI_IO0___6 = 401, + FN_RIF2_SYNC_A___4 = 402, + FN_HTX4_B___4 = 403, + FN_VI4_DATA1_A___4 = 404, + FN_IP1_27_24___6 = 405, + FN_AVB_RD1___2 = 406, + FN_IP2_27_24___6 = 407, + FN_EX_WAIT0___2 = 408, + FN_SDA7_A = 409, + FN_AVB_AVTP_CAPTURE___2 = 410, + FN_VI4_HSYNC_N___5 = 411, + FN_RX5_B___5 = 412, + FN_PWM6_A___4 = 413, + FN_IP3_27_24___6 = 414, + FN_A7___5 = 415, + FN_TX4_A___5 = 416, + FN_MSIOF3_TXD_B___5 = 417, + FN_VI4_DATA11___5 = 418, + FN_RIF2_D1_B___4 = 419, + FN_IP0_31_28___6 = 420, + FN_QSPI1_MISO_IO1___6 = 421, + FN_RIF2_D0_A___4 = 422, + FN_HRX4_B___4 = 423, + FN_VI4_DATA2_A___4 = 424, + FN_IP1_31_28___6 = 425, + FN_AVB_RD2___2 = 426, + FN_IP2_31_28___6 = 427, + FN_A0___5 = 428, + FN_IRQ0___6 = 429, + FN_PWM2_A___7 = 430, + FN_MSIOF3_SS1_B___5 = 431, + FN_VI5_CLK_A = 432, + FN_DU_CDE___6 = 433, + FN_HRX3_D___4 = 434, + FN_IERX = 435, + FN_QSTB_QHE___5 = 436, + FN_IP3_31_28___6 = 437, + FN_A8___5 = 438, + FN_SDA6_A___4 = 439, + FN_RX3_B___7 = 440, + FN_HRX4_C = 441, + FN_VI5_HSYNC_N_A = 442, + FN_DU_HSYNC___2 = 443, + FN_VI4_DATA0_B___4 = 444, + FN_QSTH_QHS___5 = 445, + FN_IP4_3_0___6 = 446, + FN_A9___5 = 447, + FN_TX5_A___5 = 448, + FN_IRQ3___6 = 449, + FN_VI4_DATA16___5 = 450, + FN_VI5_VSYNC_N_A = 451, + FN_DU_DG7___6 = 452, + FN_LCDOUT15___5 = 453, + FN_IP5_3_0___6 = 454, + FN_A17___5 = 455, + FN_MSIOF1_RXD___6 = 456, + FN_VI4_DATA20___5 = 457, + FN_VI5_DATA6_A = 458, + FN_DU_DB6___6 = 459, + FN_LCDOUT6___5 = 460, + FN_IP6_3_0___6 = 461, + FN_D3___5 = 462, + FN_MSIOF3_TXD_A___5 = 463, + FN_TX5_C = 464, + FN_VI5_DATA15_A = 465, + FN_DU_DR4___6 = 466, + FN_TX4_C___4 = 467, + FN_LCDOUT20___5 = 468, + FN_IP7_3_0___6 = 469, + FN_D11___5 = 470, + FN_MSIOF2_TXD_A___4 = 471, + FN_VI5_DATA11_A = 472, + FN_DU_DG2___6 = 473, + FN_RIF3_D1_B___4 = 474, + FN_HRTS3_N_E = 475, + FN_LCDOUT10___5 = 476, + FN_IP4_7_4___6 = 477, + FN_A10___5 = 478, + FN_IRQ4___6 = 479, + FN_MSIOF2_SYNC_B___5 = 480, + FN_VI4_DATA13___5 = 481, + FN_VI5_FIELD_A = 482, + FN_DU_DG5___6 = 483, + FN_FSCLKST2_N_B___3 = 484, + FN_LCDOUT13___5 = 485, + FN_IP5_7_4___6 = 486, + FN_A18___5 = 487, + FN_MSIOF1_TXD___6 = 488, + FN_VI4_DATA21___5 = 489, + FN_VI5_DATA7_A = 490, + FN_DU_DB0___6 = 491, + FN_HRX4_E = 492, + FN_LCDOUT0___5 = 493, + FN_IP6_7_4___6 = 494, + FN_D4___5 = 495, + FN_CANFD1_TX___8 = 496, + FN_HSCK3_B___4 = 497, + FN_CAN1_TX___4 = 498, + FN_RTS3_N_A___3 = 499, + FN_MSIOF3_SS2_A___5 = 500, + FN_VI5_DATA1_B = 501, + FN_IP7_7_4___6 = 502, + FN_D12___5 = 503, + FN_CANFD0_TX___4 = 504, + FN_TX4_B___5 = 505, + FN_CAN0_TX = 506, + FN_VI5_DATA8_A = 507, + FN_VI5_DATA3_B = 508, + FN_IP4_11_8___6 = 509, + FN_A11___5 = 510, + FN_SCL6_A___4 = 511, + FN_TX3_B___7 = 512, + FN_HTX4_C = 513, + FN_DU_VSYNC___2 = 514, + FN_VI4_DATA1_B___4 = 515, + FN_QSTVA_QVS___5 = 516, + FN_IP5_11_8___6 = 517, + FN_A19___5 = 518, + FN_MSIOF1_SCK___6 = 519, + FN_VI4_DATA22___5 = 520, + FN_VI5_DATA2_A = 521, + FN_DU_DB1___6 = 522, + FN_HTX4_E = 523, + FN_LCDOUT1___5 = 524, + FN_IP6_11_8___6 = 525, + FN_D5___5 = 526, + FN_RX3_A___7 = 527, + FN_HRX3_B___7 = 528, + FN_DU_DR5___6 = 529, + FN_VI4_DATA4_B___4 = 530, + FN_LCDOUT21___5 = 531, + FN_IP7_11_8___6 = 532, + FN_D13___5 = 533, + FN_CANFD0_RX___4 = 534, + FN_RX4_B___5 = 535, + FN_CAN0_RX = 536, + FN_VI5_DATA9_A = 537, + FN_SCL7_B = 538, + FN_VI5_DATA4_B = 539, + FN_IP4_15_12___6 = 540, + FN_A12___5 = 541, + FN_RX5_A___5 = 542, + FN_MSIOF2_SS2_B___4 = 543, + FN_VI4_DATA17___5 = 544, + FN_VI5_DATA3_A = 545, + FN_DU_DG6___6 = 546, + FN_LCDOUT14___5 = 547, + FN_IP5_15_12___6 = 548, + FN_CS0_N___5 = 549, + FN_SCL5___3 = 550, + FN_DU_DR0___6 = 551, + FN_VI4_DATA2_B___4 = 552, + FN_LCDOUT16___5 = 553, + FN_IP6_15_12___6 = 554, + FN_D6___5 = 555, + FN_TX3_A___7 = 556, + FN_HTX3_B___7 = 557, + FN_DU_DR6___6 = 558, + FN_VI4_DATA5_B___4 = 559, + FN_LCDOUT22___5 = 560, + FN_IP7_15_12___3 = 561, + FN_D14___5 = 562, + FN_CAN_CLK___7 = 563, + FN_HRX3_A___7 = 564, + FN_MSIOF2_SS2_A___4 = 565, + FN_SDA7_B = 566, + FN_VI5_DATA5_B = 567, + FN_IP4_19_16___6 = 568, + FN_A13___5 = 569, + FN_SCK5_A___5 = 570, + FN_MSIOF2_SCK_B___4 = 571, + FN_VI4_DATA14___5 = 572, + FN_HRX4_D = 573, + FN_DU_DB2___6 = 574, + FN_LCDOUT2___5 = 575, + FN_IP5_19_16___6 = 576, + FN_WE0_N___5 = 577, + FN_SDA5___3 = 578, + FN_DU_DR1___6 = 579, + FN_VI4_DATA3_B___4 = 580, + FN_LCDOUT17___5 = 581, + FN_IP6_19_16___6 = 582, + FN_D7___5 = 583, + FN_CANFD1_RX___8 = 584, + FN_IRQ5___8 = 585, + FN_CAN1_RX___4 = 586, + FN_CTS3_N_A___3 = 587, + FN_VI5_DATA2_B = 588, + FN_IP7_19_16___6 = 589, + FN_D15___5 = 590, + FN_MSIOF2_SS1_A___4 = 591, + FN_HTX3_A___7 = 592, + FN_MSIOF3_SS1_A___5 = 593, + FN_DU_DG3___6 = 594, + FN_LCDOUT11___5 = 595, + FN_IP4_23_20___6 = 596, + FN_A14___5 = 597, + FN_MSIOF1_SS1___6 = 598, + FN_MSIOF2_RXD_B___4 = 599, + FN_VI4_DATA15___5 = 600, + FN_HTX4_D = 601, + FN_DU_DB3___6 = 602, + FN_LCDOUT3___5 = 603, + FN_IP5_23_20___6 = 604, + FN_D0___5 = 605, + FN_MSIOF3_SCK_A___5 = 606, + FN_DU_DR2___6 = 607, + FN_CTS4_N_C___4 = 608, + FN_LCDOUT18___5 = 609, + FN_IP6_23_20___6 = 610, + FN_D8___5 = 611, + FN_MSIOF2_SCK_A___4 = 612, + FN_SCK4_B___5 = 613, + FN_VI5_DATA12_A = 614, + FN_DU_DR7___6 = 615, + FN_RIF3_CLK_B___4 = 616, + FN_HCTS3_N_E = 617, + FN_LCDOUT23___5 = 618, + FN_IP7_23_20___6 = 619, + FN_SCL4___3 = 620, + FN_CS1_N_A26 = 621, + FN_DU_DOTCLKIN0 = 622, + FN_VI4_DATA6_B___4 = 623, + FN_VI5_DATA6_B = 624, + FN_QCLK___5 = 625, + FN_IP4_27_24___6 = 626, + FN_A15___5 = 627, + FN_MSIOF1_SS2___6 = 628, + FN_MSIOF2_TXD_B___4 = 629, + FN_VI4_DATA18___5 = 630, + FN_VI5_DATA4_A = 631, + FN_DU_DB4___6 = 632, + FN_LCDOUT4___5 = 633, + FN_IP5_27_24___6 = 634, + FN_D1___5 = 635, + FN_MSIOF3_SYNC_A___5 = 636, + FN_SCK3_A___4 = 637, + FN_VI4_DATA23___5 = 638, + FN_VI5_CLKENB_A = 639, + FN_DU_DB7___6 = 640, + FN_RTS4_N_C___4 = 641, + FN_LCDOUT7___5 = 642, + FN_IP6_27_24___6 = 643, + FN_D9___5 = 644, + FN_MSIOF2_SYNC_A___5 = 645, + FN_VI5_DATA10_A = 646, + FN_DU_DG0___6 = 647, + FN_RIF3_SYNC_B___4 = 648, + FN_HRX3_E = 649, + FN_LCDOUT8___5 = 650, + FN_IP7_27_24___6 = 651, + FN_SDA4___3 = 652, + FN_WE1_N___5 = 653, + FN_VI4_DATA7_B___4 = 654, + FN_VI5_DATA7_B = 655, + FN_QPOLB___5 = 656, + FN_IP4_31_28___6 = 657, + FN_A16___5 = 658, + FN_MSIOF1_SYNC___6 = 659, + FN_MSIOF2_SS1_B___4 = 660, + FN_VI4_DATA19___5 = 661, + FN_VI5_DATA5_A = 662, + FN_DU_DB5___6 = 663, + FN_LCDOUT5___5 = 664, + FN_IP5_31_28___6 = 665, + FN_D2___5 = 666, + FN_MSIOF3_RXD_A___5 = 667, + FN_RX5_C = 668, + FN_VI5_DATA14_A = 669, + FN_DU_DR3___6 = 670, + FN_RX4_C___4 = 671, + FN_LCDOUT19___5 = 672, + FN_IP6_31_28___6 = 673, + FN_D10___5 = 674, + FN_MSIOF2_RXD_A___4 = 675, + FN_VI5_DATA13_A = 676, + FN_DU_DG1___6 = 677, + FN_RIF3_D0_B___4 = 678, + FN_HTX3_E = 679, + FN_LCDOUT9___5 = 680, + FN_IP7_31_28___6 = 681, + FN_SD0_CLK___4 = 682, + FN_NFDATA8___5 = 683, + FN_SCL1_C = 684, + FN_HSCK1_B___6 = 685, + FN_SDA2_E = 686, + FN_FMCLK_B___4 = 687, + FN_IP8_3_0___6 = 688, + FN_SD0_CMD___4 = 689, + FN_NFDATA9___5 = 690, + FN_HRX1_B___6 = 691, + FN_SPEEDIN_B___5 = 692, + FN_IP9_3_0___6 = 693, + FN_SD1_DAT1___4 = 694, + FN_NFCE_N_B___4 = 695, + FN_IP10_3_0___6 = 696, + FN_SD3_DAT3___4 = 697, + FN_NFDATA3___5 = 698, + FN_IP11_3_0___5 = 699, + FN_SD1_CD___4 = 700, + FN_NFCE_N_A___4 = 701, + FN_SSI_SCK1 = 702, + FN_RIF0_D1_B___4 = 703, + FN_TS_SDEN0 = 704, + FN_IP8_7_4___6 = 705, + FN_SD0_DAT0___4 = 706, + FN_NFDATA10___5 = 707, + FN_HTX1_B___6 = 708, + FN_REMOCON_B___4 = 709, + FN_IP9_7_4___6 = 710, + FN_SD1_DAT2___4 = 711, + FN_NFALE_B = 712, + FN_IP10_7_4___6 = 713, + FN_SD3_DAT4___4 = 714, + FN_NFDATA4___5 = 715, + FN_IP11_7_4___5 = 716, + FN_SD1_WP___4 = 717, + FN_NFWP_N_A___4 = 718, + FN_SSI_WS1 = 719, + FN_RIF0_SYNC_B___4 = 720, + FN_TS_SPSYNC0 = 721, + FN_IP8_11_8___6 = 722, + FN_SD0_DAT1___4 = 723, + FN_NFDATA11___5 = 724, + FN_SDA2_C = 725, + FN_HCTS1_N_B___6 = 726, + FN_FMIN_B___4 = 727, + FN_IP9_11_8___6 = 728, + FN_SD1_DAT3___4 = 729, + FN_NFRB_N_B___4 = 730, + FN_IP10_11_8___6 = 731, + FN_SD3_DAT5___4 = 732, + FN_NFDATA5___5 = 733, + FN_IP11_11_8___5 = 734, + FN_RX0_A___2 = 735, + FN_HRX1_A___6 = 736, + FN_SSI_SCK2_A___4 = 737, + FN_RIF1_SYNC = 738, + FN_TS_SCK1 = 739, + FN_IP8_15_12___6 = 740, + FN_SD0_DAT2___4 = 741, + FN_NFDATA12___5 = 742, + FN_SCL2_C = 743, + FN_HRTS1_N_B___6 = 744, + FN_BPFCLK_B___4 = 745, + FN_IP9_15_12___6 = 746, + FN_SD3_CLK___4 = 747, + FN_NFWE_N___5 = 748, + FN_IP10_15_12___6 = 749, + FN_SD3_DAT6___4 = 750, + FN_NFDATA6___5 = 751, + FN_IP11_15_12___5 = 752, + FN_TX0_A___2 = 753, + FN_HTX1_A___6 = 754, + FN_SSI_WS2_A___4 = 755, + FN_RIF1_D0 = 756, + FN_TS_SDAT1 = 757, + FN_IP8_19_16___6 = 758, + FN_SD0_DAT3___4 = 759, + FN_NFDATA13___5 = 760, + FN_SDA1_C = 761, + FN_SCL2_E = 762, + FN_SPEEDIN_C = 763, + FN_REMOCON_C = 764, + FN_IP9_19_16___6 = 765, + FN_SD3_CMD___4 = 766, + FN_NFRE_N___5 = 767, + FN_IP10_19_16___6 = 768, + FN_SD3_DAT7___4 = 769, + FN_NFDATA7___5 = 770, + FN_IP11_19_16___5 = 771, + FN_CTS0_N_A = 772, + FN_NFDATA14_A___4 = 773, + FN_AUDIO_CLKOUT_A___4 = 774, + FN_RIF1_D1 = 775, + FN_SCIF_CLK_A___5 = 776, + FN_FMCLK_A___4 = 777, + FN_IP8_23_20___6 = 778, + FN_SD1_CLK___4 = 779, + FN_NFDATA14_B___4 = 780, + FN_IP9_23_20___6 = 781, + FN_SD3_DAT0___4 = 782, + FN_NFDATA0___5 = 783, + FN_IP10_23_20___5 = 784, + FN_SD3_DS___4 = 785, + FN_NFCLE___5 = 786, + FN_IP11_23_20___5 = 787, + FN_RTS0_N_A = 788, + FN_NFDATA15_A___4 = 789, + FN_AUDIO_CLKOUT1_A___4 = 790, + FN_RIF1_CLK = 791, + FN_SCL2_A___5 = 792, + FN_FMIN_A___4 = 793, + FN_IP8_27_24___6 = 794, + FN_SD1_CMD___4 = 795, + FN_NFDATA15_B___4 = 796, + FN_IP9_27_24___6 = 797, + FN_SD3_DAT1___4 = 798, + FN_NFDATA1___5 = 799, + FN_IP10_27_24___5 = 800, + FN_SD0_CD___4 = 801, + FN_NFALE_A = 802, + FN_SD3_CD___4 = 803, + FN_RIF0_CLK_B___4 = 804, + FN_SCL2_B___5 = 805, + FN_TCLK1_A___8 = 806, + FN_SSI_SCK2_B___4 = 807, + FN_TS_SCK0 = 808, + FN_IP11_27_24___5 = 809, + FN_SCK0_A___2 = 810, + FN_HSCK1_A___6 = 811, + FN_USB3HS0_ID = 812, + FN_RTS1_N___7 = 813, + FN_SDA2_A___5 = 814, + FN_FMCLK_C___4 = 815, + FN_USB0_ID = 816, + FN_IP8_31_28___6 = 817, + FN_SD1_DAT0___4 = 818, + FN_NFWP_N_B___4 = 819, + FN_IP9_31_28___6 = 820, + FN_SD3_DAT2___4 = 821, + FN_NFDATA2___5 = 822, + FN_IP10_31_28___5 = 823, + FN_SD0_WP___4 = 824, + FN_NFRB_N_A___4 = 825, + FN_SD3_WP___4 = 826, + FN_RIF0_D0_B___4 = 827, + FN_SDA2_B___5 = 828, + FN_TCLK2_A___8 = 829, + FN_SSI_WS2_B___4 = 830, + FN_TS_SDAT0 = 831, + FN_IP11_31_28___5 = 832, + FN_RX1___2 = 833, + FN_HRX2_B___4 = 834, + FN_SSI_SCK9_B___4 = 835, + FN_AUDIO_CLKOUT1_B___4 = 836, + FN_IP12_3_0___5 = 837, + FN_TX1___2 = 838, + FN_HTX2_B___4 = 839, + FN_SSI_WS9_B___4 = 840, + FN_AUDIO_CLKOUT3_B___4 = 841, + FN_IP13_3_0___5 = 842, + FN_MSIOF0_SS1___9 = 843, + FN_HRX2_A___4 = 844, + FN_SSI_SCK4___4 = 845, + FN_HCTS0_N_A___2 = 846, + FN_BPFCLK_C___4 = 847, + FN_SPEEDIN_A___5 = 848, + FN_IP14_3_0___4 = 849, + FN_SSI_SDATA0___4 = 850, + FN_IP15_3_0___4 = 851, + FN_SSI_WS5___4 = 852, + FN_HTX0_B___2 = 853, + FN_USB0_OVC_B = 854, + FN_SDA2_D = 855, + FN_IP12_7_4___5 = 856, + FN_SCK2_A = 857, + FN_HSCK0_A___2 = 858, + FN_AUDIO_CLKB_A___4 = 859, + FN_CTS1_N___7 = 860, + FN_RIF0_CLK_A___4 = 861, + FN_REMOCON_A___4 = 862, + FN_SCIF_CLK_B___5 = 863, + FN_IP13_7_4___5 = 864, + FN_MSIOF0_SS2___9 = 865, + FN_HTX2_A___4 = 866, + FN_SSI_WS4___4 = 867, + FN_HRTS0_N_A___2 = 868, + FN_FMIN_C___4 = 869, + FN_BPFCLK_A___4 = 870, + FN_IP14_7_4___4 = 871, + FN_SSI_SDATA1 = 872, + FN_AUDIO_CLKC_B___4 = 873, + FN_PWM0_B___4 = 874, + FN_IP15_7_4___4 = 875, + FN_SSI_SDATA5___4 = 876, + FN_HSCK0_B___2 = 877, + FN_AUDIO_CLKB_C = 878, + FN_TPU0TO0___5 = 879, + FN_IP12_11_8___5 = 880, + FN_TX2_A___4 = 881, + FN_HRX0_A___2 = 882, + FN_AUDIO_CLKOUT2_A___4 = 883, + FN_SCL1_A___4 = 884, + FN_FSO_CFE_0_N_A___2 = 885, + FN_TS_SDEN1 = 886, + FN_IP13_11_8___4 = 887, + FN_SSI_SDATA9 = 888, + FN_AUDIO_CLKC_A___4 = 889, + FN_SCK1___6 = 890, + FN_IP14_11_8___4 = 891, + FN_SSI_SDATA2 = 892, + FN_AUDIO_CLKOUT2_B___4 = 893, + FN_SSI_SCK9_A___4 = 894, + FN_PWM1_B___8 = 895, + FN_IP15_11_8___4 = 896, + FN_SSI_SCK6___4 = 897, + FN_HSCK2_A___4 = 898, + FN_AUDIO_CLKC_C = 899, + FN_TPU0TO1___5 = 900, + FN_FSO_CFE_0_N_B___2 = 901, + FN_SIM0_RST_B___4 = 902, + FN_IP12_15_12___5 = 903, + FN_RX2_A___4 = 904, + FN_HTX0_A___2 = 905, + FN_AUDIO_CLKOUT3_A___4 = 906, + FN_SDA1_A___4 = 907, + FN_FSO_CFE_1_N_A___2 = 908, + FN_TS_SPSYNC1 = 909, + FN_IP13_15_12___4 = 910, + FN_MLB_CLK___5 = 911, + FN_RX0_B___2 = 912, + FN_RIF0_D0_A___4 = 913, + FN_SCL1_B___4 = 914, + FN_TCLK1_B___8 = 915, + FN_SIM0_RST_A___4 = 916, + FN_IP14_15_12___4 = 917, + FN_SSI_SCK349___4 = 918, + FN_PWM2_C___3 = 919, + FN_IP15_15_12___4 = 920, + FN_SSI_WS6___4 = 921, + FN_HCTS2_N_A___4 = 922, + FN_AUDIO_CLKOUT2_C = 923, + FN_TPU0TO2___5 = 924, + FN_SDA1_D = 925, + FN_FSO_CFE_1_N_B___2 = 926, + FN_SIM0_D_B___4 = 927, + FN_IP12_19_16___5 = 928, + FN_MSIOF0_SCK___9 = 929, + FN_SSI_SCK78___4 = 930, + FN_IP13_19_16___4 = 931, + FN_MLB_SIG___5 = 932, + FN_SCK0_B___2 = 933, + FN_RIF0_D1_A___4 = 934, + FN_SDA1_B___4 = 935, + FN_TCLK2_B___8 = 936, + FN_SIM0_D_A___4 = 937, + FN_IP14_19_16___4 = 938, + FN_SSI_WS349___4 = 939, + FN_PWM3_C___3 = 940, + FN_IP15_19_16___4 = 941, + FN_SSI_SDATA6___4 = 942, + FN_HRTS2_N_A___4 = 943, + FN_AUDIO_CLKOUT3_C = 944, + FN_TPU0TO3___5 = 945, + FN_SCL1_D = 946, + FN_FSO_TOE_N_B___2 = 947, + FN_SIM0_CLK_B___4 = 948, + FN_IP12_23_20___5 = 949, + FN_MSIOF0_RXD___9 = 950, + FN_SSI_WS78___4 = 951, + FN_TX2_B___4 = 952, + FN_IP13_23_20___4 = 953, + FN_MLB_DAT___5 = 954, + FN_TX0_B___2 = 955, + FN_RIF0_SYNC_A___4 = 956, + FN_SIM0_CLK_A___4 = 957, + FN_IP14_23_20___4 = 958, + FN_SSI_SDATA3___5 = 959, + FN_AUDIO_CLKOUT1_C = 960, + FN_AUDIO_CLKB_B___4 = 961, + FN_PWM4_B___5 = 962, + FN_IP15_23_20___4 = 963, + FN_AUDIO_CLKA___2 = 964, + FN_IP12_27_24___5 = 965, + FN_MSIOF0_TXD___9 = 966, + FN_SSI_SDATA7___4 = 967, + FN_RX2_B___4 = 968, + FN_IP13_27_24___4 = 969, + FN_SSI_SCK01239___4 = 970, + FN_IP14_27_24___4 = 971, + FN_SSI_SDATA4___4 = 972, + FN_SSI_WS9_A___4 = 973, + FN_PWM5_B___4 = 974, + FN_IP15_27_24___4 = 975, + FN_USB30_PWEN___4 = 976, + FN_USB0_PWEN_A = 977, + FN_IP12_31_28___5 = 978, + FN_MSIOF0_SYNC___9 = 979, + FN_AUDIO_CLKOUT_B___4 = 980, + FN_SSI_SDATA8___4 = 981, + FN_IP13_31_28___4 = 982, + FN_SSI_WS01239___4 = 983, + FN_IP14_31_28___4 = 984, + FN_SSI_SCK5___4 = 985, + FN_HRX0_B___2 = 986, + FN_USB0_PWEN_B = 987, + FN_SCL2_D = 988, + FN_PWM6_B___4 = 989, + FN_IP15_31_28___4 = 990, + FN_USB30_OVC___4 = 991, + FN_USB0_OVC_A = 992, + FN_FSO_TOE_N_A___2 = 993, + FN_SEL_SIMCARD_0___4 = 994, + FN_SEL_SIMCARD_1___4 = 995, + FN_SEL_ADGB_0___4 = 996, + FN_SEL_ADGB_2 = 997, + FN_SEL_ADGB_1___4 = 998, + FN_SEL_SSI2_0___4 = 999, + FN_SEL_SSI2_1___4 = 1000, + FN_SEL_TIMER_TMU_0___3 = 1001, + FN_SEL_TIMER_TMU_1___3 = 1002, + FN_SEL_DRIF0_0___4 = 1003, + FN_SEL_DRIF0_1___4 = 1004, + FN_SEL_USB_20_CH0_0 = 1005, + FN_SEL_USB_20_CH0_1 = 1006, + FN_SEL_FM_0___4 = 1007, + FN_SEL_FM_2___4 = 1008, + FN_SEL_FM_1___4 = 1009, + FN_SEL_DRIF2_0___4 = 1010, + FN_SEL_DRIF2_1___4 = 1011, + FN_SEL_FSO_0 = 1012, + FN_SEL_FSO_1 = 1013, + FN_SEL_DRIF3_0___4 = 1014, + FN_SEL_DRIF3_1___4 = 1015, + FN_SEL_HSCIF0_0___2 = 1016, + FN_SEL_HSCIF0_1___2 = 1017, + FN_SEL_HSCIF3_0___5 = 1018, + FN_SEL_HSCIF3_4 = 1019, + FN_SEL_HSCIF3_2___4 = 1020, + FN_SEL_HSCIF3_1___5 = 1021, + FN_SEL_HSCIF3_3___4 = 1022, + FN_SEL_HSCIF1_0___4 = 1023, + FN_SEL_HSCIF1_1___4 = 1024, + FN_SEL_HSCIF2_0___4 = 1025, + FN_SEL_HSCIF2_1___4 = 1026, + FN_SEL_I2C1_0___5 = 1027, + FN_SEL_I2C1_2 = 1028, + FN_SEL_I2C1_1___4 = 1029, + FN_SEL_I2C1_3___2 = 1030, + FN_SEL_HSCIF4_0___4 = 1031, + FN_SEL_HSCIF4_4 = 1032, + FN_SEL_HSCIF4_2 = 1033, + FN_SEL_HSCIF4_1___4 = 1034, + FN_SEL_HSCIF4_3 = 1035, + FN_SEL_I2C2_0___6 = 1036, + FN_SEL_I2C2_4 = 1037, + FN_SEL_I2C2_2 = 1038, + FN_SEL_I2C2_1___5 = 1039, + FN_SEL_I2C2_3___2 = 1040, + FN_SEL_I2C6_0___4 = 1041, + FN_SEL_I2C6_1___4 = 1042, + FN_SEL_I2C7_0 = 1043, + FN_SEL_I2C7_1 = 1044, + FN_SEL_NDF_0___3 = 1045, + FN_SEL_NDF_1___3 = 1046, + FN_SEL_MSIOF2_0___5 = 1047, + FN_SEL_MSIOF2_1___5 = 1048, + FN_SEL_PWM0_0___3 = 1049, + FN_SEL_PWM0_1___3 = 1050, + FN_SEL_MSIOF3_0___5 = 1051, + FN_SEL_MSIOF3_1___5 = 1052, + FN_SEL_PWM1_0___6 = 1053, + FN_SEL_PWM1_1___6 = 1054, + FN_SEL_SCIF3_0___5 = 1055, + FN_SEL_SCIF3_2 = 1056, + FN_SEL_SCIF3_1___5 = 1057, + FN_SEL_PWM2_0___6 = 1058, + FN_SEL_PWM2_2___2 = 1059, + FN_SEL_PWM2_1___6 = 1060, + FN_SEL_SCIF4_0___5 = 1061, + FN_SEL_SCIF4_2___4 = 1062, + FN_SEL_SCIF4_1___5 = 1063, + FN_SEL_PWM3_0___6 = 1064, + FN_SEL_PWM3_2___2 = 1065, + FN_SEL_PWM3_1___6 = 1066, + FN_SEL_SCIF5_0___5 = 1067, + FN_SEL_SCIF5_2 = 1068, + FN_SEL_SCIF5_1___5 = 1069, + FN_SEL_PWM4_0___5 = 1070, + FN_SEL_PWM4_1___5 = 1071, + FN_SEL_PWM5_0___4 = 1072, + FN_SEL_PWM5_1___4 = 1073, + FN_SEL_VIN4_0___4 = 1074, + FN_SEL_VIN4_1___4 = 1075, + FN_SEL_PWM6_0___4 = 1076, + FN_SEL_PWM6_1___4 = 1077, + FN_SEL_VIN5_0 = 1078, + FN_SEL_VIN5_1 = 1079, + FN_SEL_REMOCON_0___4 = 1080, + FN_SEL_REMOCON_2 = 1081, + FN_SEL_REMOCON_1___4 = 1082, + FN_SEL_ADGC_0___4 = 1083, + FN_SEL_ADGC_2 = 1084, + FN_SEL_ADGC_1___4 = 1085, + FN_SEL_SCIF_0___4 = 1086, + FN_SEL_SCIF_1___4 = 1087, + FN_SEL_SSI9_0___4 = 1088, + FN_SEL_SSI9_1___4 = 1089, + FN_SEL_SCIF0_0___2 = 1090, + FN_SEL_SCIF0_1___2 = 1091, + FN_SEL_SCIF2_0___4 = 1092, + FN_SEL_SCIF2_1___4 = 1093, + FN_SEL_SPEED_PULSE_IF_0 = 1094, + FN_SEL_SPEED_PULSE_IF_2 = 1095, + FN_SEL_SPEED_PULSE_IF_1 = 1096, + PINMUX_FUNCTION_END___9 = 1097, + PINMUX_MARK_BEGIN___9 = 1098, + AVB_PHY_INT_MARK___5 = 1099, + CLKOUT_MARK___5 = 1100, + AVB_RD3_MARK___5 = 1101, + AVB_RXC_MARK___5 = 1102, + AVB_RX_CTL_MARK___5 = 1103, + QSPI0_SSL_MARK___9 = 1104, + IP0_3_0_MARK___6 = 1105, + QSPI0_SPCLK_MARK___9 = 1106, + HSCK4_A_MARK = 1107, + IP1_3_0_MARK___6 = 1108, + QSPI1_IO2_MARK___9 = 1109, + RIF2_D1_A_MARK___4 = 1110, + HTX3_C_MARK___4 = 1111, + VI4_DATA3_A_MARK___4 = 1112, + IP2_3_0_MARK___6 = 1113, + AVB_TXCREFCLK_MARK___5 = 1114, + IP3_3_0_MARK___6 = 1115, + A1_MARK___5 = 1116, + IRQ1_MARK___6 = 1117, + PWM3_A_MARK___8 = 1118, + DU_DOTCLKIN1_MARK___5 = 1119, + VI5_DATA0_A_MARK = 1120, + DU_DISP_CDE_MARK___2 = 1121, + SDA6_B_MARK___4 = 1122, + IETX_MARK = 1123, + QCPV_QDE_MARK___5 = 1124, + IP0_7_4_MARK___6 = 1125, + QSPI0_MOSI_IO0_MARK___9 = 1126, + HCTS4_N_A_MARK = 1127, + IP1_7_4_MARK___6 = 1128, + QSPI1_IO3_MARK___9 = 1129, + RIF3_CLK_A_MARK___4 = 1130, + HRX3_C_MARK___4 = 1131, + VI4_DATA4_A_MARK___4 = 1132, + IP2_7_4_MARK___6 = 1133, + AVB_MDIO_MARK___5 = 1134, + IP3_7_4_MARK___6 = 1135, + A2_MARK___5 = 1136, + IRQ2_MARK___6 = 1137, + AVB_AVTP_PPS_MARK___5 = 1138, + VI4_CLKENB_MARK___5 = 1139, + VI5_DATA1_A_MARK = 1140, + DU_DISP_MARK___6 = 1141, + SCL6_B_MARK___4 = 1142, + QSTVB_QVE_MARK___5 = 1143, + IP0_11_8_MARK___6 = 1144, + QSPI0_MISO_IO1_MARK___9 = 1145, + HRTS4_N_A_MARK = 1146, + IP1_11_8_MARK___6 = 1147, + QSPI1_SSL_MARK___9 = 1148, + RIF3_SYNC_A_MARK___4 = 1149, + HSCK3_C_MARK = 1150, + VI4_DATA5_A_MARK___4 = 1151, + IP2_11_8_MARK___6 = 1152, + AVB_MDC_MARK___5 = 1153, + IP3_11_8_MARK___6 = 1154, + A3_MARK___5 = 1155, + CTS4_N_A_MARK___4 = 1156, + PWM4_A_MARK___5 = 1157, + VI4_DATA12_MARK___5 = 1158, + DU_DOTCLKOUT0_MARK___5 = 1159, + HTX3_D_MARK___4 = 1160, + IECLK_MARK = 1161, + LCDOUT12_MARK___5 = 1162, + IP0_15_12_MARK___6 = 1163, + QSPI0_IO2_MARK___9 = 1164, + HTX4_A_MARK___4 = 1165, + IP1_15_12_MARK___6 = 1166, + RPC_INT_N_MARK___6 = 1167, + RIF3_D0_A_MARK___4 = 1168, + HCTS3_N_C_MARK = 1169, + VI4_DATA6_A_MARK___4 = 1170, + IP2_15_12_MARK___6 = 1171, + BS_N_MARK___5 = 1172, + PWM0_A_MARK___4 = 1173, + AVB_MAGIC_MARK___5 = 1174, + VI4_CLK_MARK___5 = 1175, + TX3_C_MARK = 1176, + VI5_CLK_B_MARK = 1177, + IP3_15_12_MARK___6 = 1178, + A4_MARK___5 = 1179, + RTS4_N_A_MARK___4 = 1180, + MSIOF3_SYNC_B_MARK___5 = 1181, + VI4_DATA8_MARK___5 = 1182, + PWM2_B_MARK___7 = 1183, + DU_DG4_MARK___6 = 1184, + RIF2_CLK_B_MARK___4 = 1185, + IP0_19_16_MARK___6 = 1186, + QSPI0_IO3_MARK___9 = 1187, + HRX4_A_MARK___4 = 1188, + IP1_19_16_MARK___6 = 1189, + RPC_RESET_N_MARK___6 = 1190, + RIF3_D1_A_MARK___4 = 1191, + HRTS3_N_C_MARK = 1192, + VI4_DATA7_A_MARK___4 = 1193, + IP2_19_16_MARK___6 = 1194, + RD_N_MARK___5 = 1195, + PWM1_A_MARK___8 = 1196, + AVB_LINK_MARK___5 = 1197, + VI4_FIELD_MARK___5 = 1198, + RX3_C_MARK = 1199, + FSCLKST2_N_A_MARK___3 = 1200, + VI5_DATA0_B_MARK = 1201, + IP3_19_16_MARK___6 = 1202, + A5_MARK___5 = 1203, + SCK4_A_MARK___5 = 1204, + MSIOF3_SCK_B_MARK___5 = 1205, + VI4_DATA9_MARK___5 = 1206, + PWM3_B_MARK___8 = 1207, + RIF2_SYNC_B_MARK___4 = 1208, + QPOLA_MARK___5 = 1209, + IP0_23_20_MARK___6 = 1210, + QSPI1_SPCLK_MARK___9 = 1211, + RIF2_CLK_A_MARK___4 = 1212, + HSCK4_B_MARK = 1213, + VI4_DATA0_A_MARK___4 = 1214, + IP1_23_20_MARK___6 = 1215, + AVB_RD0_MARK___5 = 1216, + IP2_23_20_MARK___6 = 1217, + RD_WR_N_MARK___5 = 1218, + SCL7_A_MARK = 1219, + AVB_AVTP_MATCH_MARK___2 = 1220, + VI4_VSYNC_N_MARK___5 = 1221, + TX5_B_MARK___5 = 1222, + SCK3_C_MARK = 1223, + PWM5_A_MARK___4 = 1224, + IP3_23_20_MARK___6 = 1225, + A6_MARK___5 = 1226, + RX4_A_MARK___5 = 1227, + MSIOF3_RXD_B_MARK___5 = 1228, + VI4_DATA10_MARK___5 = 1229, + RIF2_D0_B_MARK___4 = 1230, + IP0_27_24_MARK___6 = 1231, + QSPI1_MOSI_IO0_MARK___9 = 1232, + RIF2_SYNC_A_MARK___4 = 1233, + HTX4_B_MARK___4 = 1234, + VI4_DATA1_A_MARK___4 = 1235, + IP1_27_24_MARK___6 = 1236, + AVB_RD1_MARK___5 = 1237, + IP2_27_24_MARK___6 = 1238, + EX_WAIT0_MARK___2 = 1239, + SDA7_A_MARK = 1240, + AVB_AVTP_CAPTURE_MARK___2 = 1241, + VI4_HSYNC_N_MARK___5 = 1242, + RX5_B_MARK___5 = 1243, + PWM6_A_MARK___4 = 1244, + IP3_27_24_MARK___6 = 1245, + A7_MARK___5 = 1246, + TX4_A_MARK___5 = 1247, + MSIOF3_TXD_B_MARK___5 = 1248, + VI4_DATA11_MARK___5 = 1249, + RIF2_D1_B_MARK___4 = 1250, + IP0_31_28_MARK___6 = 1251, + QSPI1_MISO_IO1_MARK___9 = 1252, + RIF2_D0_A_MARK___4 = 1253, + HRX4_B_MARK___4 = 1254, + VI4_DATA2_A_MARK___4 = 1255, + IP1_31_28_MARK___6 = 1256, + AVB_RD2_MARK___5 = 1257, + IP2_31_28_MARK___6 = 1258, + A0_MARK___5 = 1259, + IRQ0_MARK___6 = 1260, + PWM2_A_MARK___7 = 1261, + MSIOF3_SS1_B_MARK___5 = 1262, + VI5_CLK_A_MARK = 1263, + DU_CDE_MARK___6 = 1264, + HRX3_D_MARK___4 = 1265, + IERX_MARK = 1266, + QSTB_QHE_MARK___5 = 1267, + IP3_31_28_MARK___6 = 1268, + A8_MARK___5 = 1269, + SDA6_A_MARK___4 = 1270, + RX3_B_MARK___7 = 1271, + HRX4_C_MARK = 1272, + VI5_HSYNC_N_A_MARK = 1273, + DU_HSYNC_MARK___2 = 1274, + VI4_DATA0_B_MARK___4 = 1275, + QSTH_QHS_MARK___5 = 1276, + IP4_3_0_MARK___6 = 1277, + A9_MARK___5 = 1278, + TX5_A_MARK___5 = 1279, + IRQ3_MARK___6 = 1280, + VI4_DATA16_MARK___5 = 1281, + VI5_VSYNC_N_A_MARK = 1282, + DU_DG7_MARK___6 = 1283, + LCDOUT15_MARK___5 = 1284, + IP5_3_0_MARK___6 = 1285, + A17_MARK___5 = 1286, + MSIOF1_RXD_MARK___6 = 1287, + VI4_DATA20_MARK___5 = 1288, + VI5_DATA6_A_MARK = 1289, + DU_DB6_MARK___6 = 1290, + LCDOUT6_MARK___5 = 1291, + IP6_3_0_MARK___6 = 1292, + D3_MARK___5 = 1293, + MSIOF3_TXD_A_MARK___5 = 1294, + TX5_C_MARK = 1295, + VI5_DATA15_A_MARK = 1296, + DU_DR4_MARK___6 = 1297, + TX4_C_MARK___4 = 1298, + LCDOUT20_MARK___5 = 1299, + IP7_3_0_MARK___6 = 1300, + D11_MARK___5 = 1301, + MSIOF2_TXD_A_MARK___4 = 1302, + VI5_DATA11_A_MARK = 1303, + DU_DG2_MARK___6 = 1304, + RIF3_D1_B_MARK___4 = 1305, + HRTS3_N_E_MARK = 1306, + LCDOUT10_MARK___5 = 1307, + IP4_7_4_MARK___6 = 1308, + A10_MARK___5 = 1309, + IRQ4_MARK___6 = 1310, + MSIOF2_SYNC_B_MARK___5 = 1311, + VI4_DATA13_MARK___5 = 1312, + VI5_FIELD_A_MARK = 1313, + DU_DG5_MARK___6 = 1314, + FSCLKST2_N_B_MARK___3 = 1315, + LCDOUT13_MARK___5 = 1316, + IP5_7_4_MARK___6 = 1317, + A18_MARK___5 = 1318, + MSIOF1_TXD_MARK___6 = 1319, + VI4_DATA21_MARK___5 = 1320, + VI5_DATA7_A_MARK = 1321, + DU_DB0_MARK___6 = 1322, + HRX4_E_MARK = 1323, + LCDOUT0_MARK___5 = 1324, + IP6_7_4_MARK___6 = 1325, + D4_MARK___5 = 1326, + CANFD1_TX_MARK___8 = 1327, + HSCK3_B_MARK___4 = 1328, + CAN1_TX_MARK___4 = 1329, + RTS3_N_A_MARK___3 = 1330, + MSIOF3_SS2_A_MARK___5 = 1331, + VI5_DATA1_B_MARK = 1332, + IP7_7_4_MARK___6 = 1333, + D12_MARK___5 = 1334, + CANFD0_TX_MARK___4 = 1335, + TX4_B_MARK___5 = 1336, + CAN0_TX_MARK = 1337, + VI5_DATA8_A_MARK = 1338, + VI5_DATA3_B_MARK = 1339, + IP4_11_8_MARK___6 = 1340, + A11_MARK___5 = 1341, + SCL6_A_MARK___4 = 1342, + TX3_B_MARK___7 = 1343, + HTX4_C_MARK = 1344, + DU_VSYNC_MARK___2 = 1345, + VI4_DATA1_B_MARK___4 = 1346, + QSTVA_QVS_MARK___5 = 1347, + IP5_11_8_MARK___6 = 1348, + A19_MARK___5 = 1349, + MSIOF1_SCK_MARK___6 = 1350, + VI4_DATA22_MARK___5 = 1351, + VI5_DATA2_A_MARK = 1352, + DU_DB1_MARK___6 = 1353, + HTX4_E_MARK = 1354, + LCDOUT1_MARK___5 = 1355, + IP6_11_8_MARK___6 = 1356, + D5_MARK___5 = 1357, + RX3_A_MARK___7 = 1358, + HRX3_B_MARK___7 = 1359, + DU_DR5_MARK___6 = 1360, + VI4_DATA4_B_MARK___4 = 1361, + LCDOUT21_MARK___5 = 1362, + IP7_11_8_MARK___6 = 1363, + D13_MARK___5 = 1364, + CANFD0_RX_MARK___4 = 1365, + RX4_B_MARK___5 = 1366, + CAN0_RX_MARK = 1367, + VI5_DATA9_A_MARK = 1368, + SCL7_B_MARK = 1369, + VI5_DATA4_B_MARK = 1370, + IP4_15_12_MARK___6 = 1371, + A12_MARK___5 = 1372, + RX5_A_MARK___5 = 1373, + MSIOF2_SS2_B_MARK___4 = 1374, + VI4_DATA17_MARK___5 = 1375, + VI5_DATA3_A_MARK = 1376, + DU_DG6_MARK___6 = 1377, + LCDOUT14_MARK___5 = 1378, + IP5_15_12_MARK___6 = 1379, + CS0_N_MARK___5 = 1380, + SCL5_MARK___7 = 1381, + DU_DR0_MARK___6 = 1382, + VI4_DATA2_B_MARK___4 = 1383, + LCDOUT16_MARK___5 = 1384, + IP6_15_12_MARK___6 = 1385, + D6_MARK___5 = 1386, + TX3_A_MARK___7 = 1387, + HTX3_B_MARK___7 = 1388, + DU_DR6_MARK___6 = 1389, + VI4_DATA5_B_MARK___4 = 1390, + LCDOUT22_MARK___5 = 1391, + IP7_15_12_MARK___3 = 1392, + D14_MARK___5 = 1393, + CAN_CLK_MARK___7 = 1394, + HRX3_A_MARK___7 = 1395, + MSIOF2_SS2_A_MARK___4 = 1396, + SDA7_B_MARK = 1397, + VI5_DATA5_B_MARK = 1398, + IP4_19_16_MARK___6 = 1399, + A13_MARK___5 = 1400, + SCK5_A_MARK___5 = 1401, + MSIOF2_SCK_B_MARK___4 = 1402, + VI4_DATA14_MARK___5 = 1403, + HRX4_D_MARK = 1404, + DU_DB2_MARK___6 = 1405, + LCDOUT2_MARK___5 = 1406, + IP5_19_16_MARK___6 = 1407, + WE0_N_MARK___5 = 1408, + SDA5_MARK___7 = 1409, + DU_DR1_MARK___6 = 1410, + VI4_DATA3_B_MARK___4 = 1411, + LCDOUT17_MARK___5 = 1412, + IP6_19_16_MARK___6 = 1413, + D7_MARK___5 = 1414, + CANFD1_RX_MARK___8 = 1415, + IRQ5_MARK___8 = 1416, + CAN1_RX_MARK___4 = 1417, + CTS3_N_A_MARK___3 = 1418, + VI5_DATA2_B_MARK = 1419, + IP7_19_16_MARK___6 = 1420, + D15_MARK___5 = 1421, + MSIOF2_SS1_A_MARK___4 = 1422, + HTX3_A_MARK___7 = 1423, + MSIOF3_SS1_A_MARK___5 = 1424, + DU_DG3_MARK___6 = 1425, + LCDOUT11_MARK___5 = 1426, + IP4_23_20_MARK___6 = 1427, + A14_MARK___5 = 1428, + MSIOF1_SS1_MARK___6 = 1429, + MSIOF2_RXD_B_MARK___4 = 1430, + VI4_DATA15_MARK___5 = 1431, + HTX4_D_MARK = 1432, + DU_DB3_MARK___6 = 1433, + LCDOUT3_MARK___5 = 1434, + IP5_23_20_MARK___6 = 1435, + D0_MARK___5 = 1436, + MSIOF3_SCK_A_MARK___5 = 1437, + DU_DR2_MARK___6 = 1438, + CTS4_N_C_MARK___4 = 1439, + LCDOUT18_MARK___5 = 1440, + IP6_23_20_MARK___6 = 1441, + D8_MARK___5 = 1442, + MSIOF2_SCK_A_MARK___4 = 1443, + SCK4_B_MARK___5 = 1444, + VI5_DATA12_A_MARK = 1445, + DU_DR7_MARK___6 = 1446, + RIF3_CLK_B_MARK___4 = 1447, + HCTS3_N_E_MARK = 1448, + LCDOUT23_MARK___5 = 1449, + IP7_23_20_MARK___6 = 1450, + SCL4_MARK___4 = 1451, + CS1_N_A26_MARK = 1452, + DU_DOTCLKIN0_MARK___4 = 1453, + VI4_DATA6_B_MARK___4 = 1454, + VI5_DATA6_B_MARK = 1455, + QCLK_MARK___5 = 1456, + IP4_27_24_MARK___6 = 1457, + A15_MARK___5 = 1458, + MSIOF1_SS2_MARK___6 = 1459, + MSIOF2_TXD_B_MARK___4 = 1460, + VI4_DATA18_MARK___5 = 1461, + VI5_DATA4_A_MARK = 1462, + DU_DB4_MARK___6 = 1463, + LCDOUT4_MARK___5 = 1464, + IP5_27_24_MARK___6 = 1465, + D1_MARK___5 = 1466, + MSIOF3_SYNC_A_MARK___5 = 1467, + SCK3_A_MARK___4 = 1468, + VI4_DATA23_MARK___5 = 1469, + VI5_CLKENB_A_MARK = 1470, + DU_DB7_MARK___6 = 1471, + RTS4_N_C_MARK___4 = 1472, + LCDOUT7_MARK___5 = 1473, + IP6_27_24_MARK___6 = 1474, + D9_MARK___5 = 1475, + MSIOF2_SYNC_A_MARK___5 = 1476, + VI5_DATA10_A_MARK = 1477, + DU_DG0_MARK___6 = 1478, + RIF3_SYNC_B_MARK___4 = 1479, + HRX3_E_MARK = 1480, + LCDOUT8_MARK___5 = 1481, + IP7_27_24_MARK___6 = 1482, + SDA4_MARK___4 = 1483, + WE1_N_MARK___5 = 1484, + VI4_DATA7_B_MARK___4 = 1485, + VI5_DATA7_B_MARK = 1486, + QPOLB_MARK___5 = 1487, + IP4_31_28_MARK___6 = 1488, + A16_MARK___5 = 1489, + MSIOF1_SYNC_MARK___6 = 1490, + MSIOF2_SS1_B_MARK___4 = 1491, + VI4_DATA19_MARK___5 = 1492, + VI5_DATA5_A_MARK = 1493, + DU_DB5_MARK___6 = 1494, + LCDOUT5_MARK___5 = 1495, + IP5_31_28_MARK___6 = 1496, + D2_MARK___5 = 1497, + MSIOF3_RXD_A_MARK___5 = 1498, + RX5_C_MARK = 1499, + VI5_DATA14_A_MARK = 1500, + DU_DR3_MARK___6 = 1501, + RX4_C_MARK___4 = 1502, + LCDOUT19_MARK___5 = 1503, + IP6_31_28_MARK___6 = 1504, + D10_MARK___5 = 1505, + MSIOF2_RXD_A_MARK___4 = 1506, + VI5_DATA13_A_MARK = 1507, + DU_DG1_MARK___6 = 1508, + RIF3_D0_B_MARK___4 = 1509, + HTX3_E_MARK = 1510, + LCDOUT9_MARK___5 = 1511, + IP7_31_28_MARK___6 = 1512, + SD0_CLK_MARK___4 = 1513, + NFDATA8_MARK___5 = 1514, + SCL1_C_MARK = 1515, + HSCK1_B_MARK___6 = 1516, + SDA2_E_MARK = 1517, + FMCLK_B_MARK___4 = 1518, + IP8_3_0_MARK___6 = 1519, + SD0_CMD_MARK___4 = 1520, + NFDATA9_MARK___5 = 1521, + HRX1_B_MARK___6 = 1522, + SPEEDIN_B_MARK___5 = 1523, + IP9_3_0_MARK___6 = 1524, + SD1_DAT1_MARK___4 = 1525, + NFCE_N_B_MARK___4 = 1526, + IP10_3_0_MARK___6 = 1527, + SD3_DAT3_MARK___4 = 1528, + NFDATA3_MARK___5 = 1529, + IP11_3_0_MARK___5 = 1530, + SD1_CD_MARK___4 = 1531, + NFCE_N_A_MARK___4 = 1532, + SSI_SCK1_MARK = 1533, + RIF0_D1_B_MARK___4 = 1534, + TS_SDEN0_MARK = 1535, + IP8_7_4_MARK___6 = 1536, + SD0_DAT0_MARK___4 = 1537, + NFDATA10_MARK___5 = 1538, + HTX1_B_MARK___6 = 1539, + REMOCON_B_MARK___4 = 1540, + IP9_7_4_MARK___6 = 1541, + SD1_DAT2_MARK___4 = 1542, + NFALE_B_MARK = 1543, + IP10_7_4_MARK___6 = 1544, + SD3_DAT4_MARK___4 = 1545, + NFDATA4_MARK___5 = 1546, + IP11_7_4_MARK___5 = 1547, + SD1_WP_MARK___4 = 1548, + NFWP_N_A_MARK___4 = 1549, + SSI_WS1_MARK = 1550, + RIF0_SYNC_B_MARK___4 = 1551, + TS_SPSYNC0_MARK = 1552, + IP8_11_8_MARK___6 = 1553, + SD0_DAT1_MARK___4 = 1554, + NFDATA11_MARK___5 = 1555, + SDA2_C_MARK = 1556, + HCTS1_N_B_MARK___6 = 1557, + FMIN_B_MARK___4 = 1558, + IP9_11_8_MARK___6 = 1559, + SD1_DAT3_MARK___4 = 1560, + NFRB_N_B_MARK___4 = 1561, + IP10_11_8_MARK___6 = 1562, + SD3_DAT5_MARK___4 = 1563, + NFDATA5_MARK___5 = 1564, + IP11_11_8_MARK___5 = 1565, + RX0_A_MARK___2 = 1566, + HRX1_A_MARK___6 = 1567, + SSI_SCK2_A_MARK___4 = 1568, + RIF1_SYNC_MARK = 1569, + TS_SCK1_MARK = 1570, + IP8_15_12_MARK___6 = 1571, + SD0_DAT2_MARK___4 = 1572, + NFDATA12_MARK___5 = 1573, + SCL2_C_MARK = 1574, + HRTS1_N_B_MARK___6 = 1575, + BPFCLK_B_MARK___4 = 1576, + IP9_15_12_MARK___6 = 1577, + SD3_CLK_MARK___4 = 1578, + NFWE_N_MARK___5 = 1579, + IP10_15_12_MARK___6 = 1580, + SD3_DAT6_MARK___4 = 1581, + NFDATA6_MARK___5 = 1582, + IP11_15_12_MARK___5 = 1583, + TX0_A_MARK___2 = 1584, + HTX1_A_MARK___6 = 1585, + SSI_WS2_A_MARK___4 = 1586, + RIF1_D0_MARK = 1587, + TS_SDAT1_MARK = 1588, + IP8_19_16_MARK___6 = 1589, + SD0_DAT3_MARK___4 = 1590, + NFDATA13_MARK___5 = 1591, + SDA1_C_MARK = 1592, + SCL2_E_MARK = 1593, + SPEEDIN_C_MARK = 1594, + REMOCON_C_MARK = 1595, + IP9_19_16_MARK___6 = 1596, + SD3_CMD_MARK___4 = 1597, + NFRE_N_MARK___5 = 1598, + IP10_19_16_MARK___6 = 1599, + SD3_DAT7_MARK___4 = 1600, + NFDATA7_MARK___5 = 1601, + IP11_19_16_MARK___5 = 1602, + CTS0_N_A_MARK = 1603, + NFDATA14_A_MARK___4 = 1604, + AUDIO_CLKOUT_A_MARK___4 = 1605, + RIF1_D1_MARK = 1606, + SCIF_CLK_A_MARK___5 = 1607, + FMCLK_A_MARK___4 = 1608, + IP8_23_20_MARK___6 = 1609, + SD1_CLK_MARK___4 = 1610, + NFDATA14_B_MARK___4 = 1611, + IP9_23_20_MARK___6 = 1612, + SD3_DAT0_MARK___4 = 1613, + NFDATA0_MARK___5 = 1614, + IP10_23_20_MARK___5 = 1615, + SD3_DS_MARK___4 = 1616, + NFCLE_MARK___5 = 1617, + IP11_23_20_MARK___5 = 1618, + RTS0_N_A_MARK = 1619, + NFDATA15_A_MARK___4 = 1620, + AUDIO_CLKOUT1_A_MARK___4 = 1621, + RIF1_CLK_MARK = 1622, + SCL2_A_MARK___5 = 1623, + FMIN_A_MARK___4 = 1624, + IP8_27_24_MARK___6 = 1625, + SD1_CMD_MARK___4 = 1626, + NFDATA15_B_MARK___4 = 1627, + IP9_27_24_MARK___6 = 1628, + SD3_DAT1_MARK___4 = 1629, + NFDATA1_MARK___5 = 1630, + IP10_27_24_MARK___5 = 1631, + SD0_CD_MARK___4 = 1632, + NFALE_A_MARK = 1633, + SD3_CD_MARK___4 = 1634, + RIF0_CLK_B_MARK___4 = 1635, + SCL2_B_MARK___5 = 1636, + TCLK1_A_MARK___8 = 1637, + SSI_SCK2_B_MARK___4 = 1638, + TS_SCK0_MARK = 1639, + IP11_27_24_MARK___5 = 1640, + SCK0_A_MARK___2 = 1641, + HSCK1_A_MARK___6 = 1642, + USB3HS0_ID_MARK = 1643, + RTS1_N_MARK___7 = 1644, + SDA2_A_MARK___5 = 1645, + FMCLK_C_MARK___4 = 1646, + USB0_ID_MARK = 1647, + IP8_31_28_MARK___6 = 1648, + SD1_DAT0_MARK___4 = 1649, + NFWP_N_B_MARK___4 = 1650, + IP9_31_28_MARK___6 = 1651, + SD3_DAT2_MARK___4 = 1652, + NFDATA2_MARK___5 = 1653, + IP10_31_28_MARK___5 = 1654, + SD0_WP_MARK___4 = 1655, + NFRB_N_A_MARK___4 = 1656, + SD3_WP_MARK___4 = 1657, + RIF0_D0_B_MARK___4 = 1658, + SDA2_B_MARK___5 = 1659, + TCLK2_A_MARK___8 = 1660, + SSI_WS2_B_MARK___4 = 1661, + TS_SDAT0_MARK = 1662, + IP11_31_28_MARK___5 = 1663, + RX1_MARK___2 = 1664, + HRX2_B_MARK___4 = 1665, + SSI_SCK9_B_MARK___4 = 1666, + AUDIO_CLKOUT1_B_MARK___4 = 1667, + IP12_3_0_MARK___5 = 1668, + TX1_MARK___2 = 1669, + HTX2_B_MARK___4 = 1670, + SSI_WS9_B_MARK___4 = 1671, + AUDIO_CLKOUT3_B_MARK___4 = 1672, + IP13_3_0_MARK___5 = 1673, + MSIOF0_SS1_MARK___9 = 1674, + HRX2_A_MARK___4 = 1675, + SSI_SCK4_MARK___4 = 1676, + HCTS0_N_A_MARK___2 = 1677, + BPFCLK_C_MARK___4 = 1678, + SPEEDIN_A_MARK___5 = 1679, + IP14_3_0_MARK___4 = 1680, + SSI_SDATA0_MARK___4 = 1681, + IP15_3_0_MARK___4 = 1682, + SSI_WS5_MARK___4 = 1683, + HTX0_B_MARK___2 = 1684, + USB0_OVC_B_MARK = 1685, + SDA2_D_MARK = 1686, + IP12_7_4_MARK___5 = 1687, + SCK2_A_MARK = 1688, + HSCK0_A_MARK___2 = 1689, + AUDIO_CLKB_A_MARK___4 = 1690, + CTS1_N_MARK___7 = 1691, + RIF0_CLK_A_MARK___4 = 1692, + REMOCON_A_MARK___4 = 1693, + SCIF_CLK_B_MARK___5 = 1694, + IP13_7_4_MARK___5 = 1695, + MSIOF0_SS2_MARK___9 = 1696, + HTX2_A_MARK___4 = 1697, + SSI_WS4_MARK___4 = 1698, + HRTS0_N_A_MARK___2 = 1699, + FMIN_C_MARK___4 = 1700, + BPFCLK_A_MARK___4 = 1701, + IP14_7_4_MARK___4 = 1702, + SSI_SDATA1_MARK = 1703, + AUDIO_CLKC_B_MARK___4 = 1704, + PWM0_B_MARK___4 = 1705, + IP15_7_4_MARK___4 = 1706, + SSI_SDATA5_MARK___4 = 1707, + HSCK0_B_MARK___2 = 1708, + AUDIO_CLKB_C_MARK = 1709, + TPU0TO0_MARK___5 = 1710, + IP12_11_8_MARK___5 = 1711, + TX2_A_MARK___4 = 1712, + HRX0_A_MARK___2 = 1713, + AUDIO_CLKOUT2_A_MARK___4 = 1714, + SCL1_A_MARK___4 = 1715, + FSO_CFE_0_N_A_MARK___2 = 1716, + TS_SDEN1_MARK = 1717, + IP13_11_8_MARK___4 = 1718, + SSI_SDATA9_MARK = 1719, + AUDIO_CLKC_A_MARK___4 = 1720, + SCK1_MARK___6 = 1721, + IP14_11_8_MARK___4 = 1722, + SSI_SDATA2_MARK = 1723, + AUDIO_CLKOUT2_B_MARK___4 = 1724, + SSI_SCK9_A_MARK___4 = 1725, + PWM1_B_MARK___8 = 1726, + IP15_11_8_MARK___4 = 1727, + SSI_SCK6_MARK___4 = 1728, + HSCK2_A_MARK___4 = 1729, + AUDIO_CLKC_C_MARK = 1730, + TPU0TO1_MARK___5 = 1731, + FSO_CFE_0_N_B_MARK___2 = 1732, + SIM0_RST_B_MARK___4 = 1733, + IP12_15_12_MARK___5 = 1734, + RX2_A_MARK___4 = 1735, + HTX0_A_MARK___2 = 1736, + AUDIO_CLKOUT3_A_MARK___4 = 1737, + SDA1_A_MARK___4 = 1738, + FSO_CFE_1_N_A_MARK___2 = 1739, + TS_SPSYNC1_MARK = 1740, + IP13_15_12_MARK___4 = 1741, + MLB_CLK_MARK___5 = 1742, + RX0_B_MARK___2 = 1743, + RIF0_D0_A_MARK___4 = 1744, + SCL1_B_MARK___4 = 1745, + TCLK1_B_MARK___8 = 1746, + SIM0_RST_A_MARK___4 = 1747, + IP14_15_12_MARK___4 = 1748, + SSI_SCK349_MARK___4 = 1749, + PWM2_C_MARK___3 = 1750, + IP15_15_12_MARK___4 = 1751, + SSI_WS6_MARK___4 = 1752, + HCTS2_N_A_MARK___4 = 1753, + AUDIO_CLKOUT2_C_MARK = 1754, + TPU0TO2_MARK___5 = 1755, + SDA1_D_MARK = 1756, + FSO_CFE_1_N_B_MARK___2 = 1757, + SIM0_D_B_MARK___4 = 1758, + IP12_19_16_MARK___5 = 1759, + MSIOF0_SCK_MARK___9 = 1760, + SSI_SCK78_MARK___4 = 1761, + IP13_19_16_MARK___4 = 1762, + MLB_SIG_MARK___5 = 1763, + SCK0_B_MARK___2 = 1764, + RIF0_D1_A_MARK___4 = 1765, + SDA1_B_MARK___4 = 1766, + TCLK2_B_MARK___8 = 1767, + SIM0_D_A_MARK___4 = 1768, + IP14_19_16_MARK___4 = 1769, + SSI_WS349_MARK___4 = 1770, + PWM3_C_MARK___3 = 1771, + IP15_19_16_MARK___4 = 1772, + SSI_SDATA6_MARK___4 = 1773, + HRTS2_N_A_MARK___4 = 1774, + AUDIO_CLKOUT3_C_MARK = 1775, + TPU0TO3_MARK___5 = 1776, + SCL1_D_MARK = 1777, + FSO_TOE_N_B_MARK___2 = 1778, + SIM0_CLK_B_MARK___4 = 1779, + IP12_23_20_MARK___5 = 1780, + MSIOF0_RXD_MARK___9 = 1781, + SSI_WS78_MARK___4 = 1782, + TX2_B_MARK___4 = 1783, + IP13_23_20_MARK___4 = 1784, + MLB_DAT_MARK___5 = 1785, + TX0_B_MARK___2 = 1786, + RIF0_SYNC_A_MARK___4 = 1787, + SIM0_CLK_A_MARK___4 = 1788, + IP14_23_20_MARK___4 = 1789, + SSI_SDATA3_MARK___5 = 1790, + AUDIO_CLKOUT1_C_MARK = 1791, + AUDIO_CLKB_B_MARK___4 = 1792, + PWM4_B_MARK___5 = 1793, + IP15_23_20_MARK___4 = 1794, + AUDIO_CLKA_MARK___2 = 1795, + IP12_27_24_MARK___5 = 1796, + MSIOF0_TXD_MARK___9 = 1797, + SSI_SDATA7_MARK___4 = 1798, + RX2_B_MARK___4 = 1799, + IP13_27_24_MARK___4 = 1800, + SSI_SCK01239_MARK___4 = 1801, + IP14_27_24_MARK___4 = 1802, + SSI_SDATA4_MARK___4 = 1803, + SSI_WS9_A_MARK___4 = 1804, + PWM5_B_MARK___4 = 1805, + IP15_27_24_MARK___4 = 1806, + USB30_PWEN_MARK___4 = 1807, + USB0_PWEN_A_MARK = 1808, + IP12_31_28_MARK___5 = 1809, + MSIOF0_SYNC_MARK___9 = 1810, + AUDIO_CLKOUT_B_MARK___4 = 1811, + SSI_SDATA8_MARK___4 = 1812, + IP13_31_28_MARK___4 = 1813, + SSI_WS01239_MARK___4 = 1814, + IP14_31_28_MARK___4 = 1815, + SSI_SCK5_MARK___4 = 1816, + HRX0_B_MARK___2 = 1817, + USB0_PWEN_B_MARK = 1818, + SCL2_D_MARK = 1819, + PWM6_B_MARK___4 = 1820, + IP15_31_28_MARK___4 = 1821, + USB30_OVC_MARK___4 = 1822, + USB0_OVC_A_MARK = 1823, + FSO_TOE_N_A_MARK___2 = 1824, + SEL_SIMCARD_0_MARK___4 = 1825, + SEL_SIMCARD_1_MARK___4 = 1826, + SEL_ADGB_0_MARK___4 = 1827, + SEL_ADGB_2_MARK = 1828, + SEL_ADGB_1_MARK___4 = 1829, + SEL_SSI2_0_MARK___4 = 1830, + SEL_SSI2_1_MARK___4 = 1831, + SEL_TIMER_TMU_0_MARK___3 = 1832, + SEL_TIMER_TMU_1_MARK___3 = 1833, + SEL_DRIF0_0_MARK___4 = 1834, + SEL_DRIF0_1_MARK___4 = 1835, + SEL_USB_20_CH0_0_MARK = 1836, + SEL_USB_20_CH0_1_MARK = 1837, + SEL_FM_0_MARK___4 = 1838, + SEL_FM_2_MARK___4 = 1839, + SEL_FM_1_MARK___4 = 1840, + SEL_DRIF2_0_MARK___4 = 1841, + SEL_DRIF2_1_MARK___4 = 1842, + SEL_FSO_0_MARK = 1843, + SEL_FSO_1_MARK = 1844, + SEL_DRIF3_0_MARK___4 = 1845, + SEL_DRIF3_1_MARK___4 = 1846, + SEL_HSCIF0_0_MARK___2 = 1847, + SEL_HSCIF0_1_MARK___2 = 1848, + SEL_HSCIF3_0_MARK___5 = 1849, + SEL_HSCIF3_4_MARK = 1850, + SEL_HSCIF3_2_MARK___4 = 1851, + SEL_HSCIF3_1_MARK___5 = 1852, + SEL_HSCIF3_3_MARK___4 = 1853, + SEL_HSCIF1_0_MARK___4 = 1854, + SEL_HSCIF1_1_MARK___4 = 1855, + SEL_HSCIF2_0_MARK___4 = 1856, + SEL_HSCIF2_1_MARK___4 = 1857, + SEL_I2C1_0_MARK___5 = 1858, + SEL_I2C1_2_MARK = 1859, + SEL_I2C1_1_MARK___4 = 1860, + SEL_I2C1_3_MARK___2 = 1861, + SEL_HSCIF4_0_MARK___4 = 1862, + SEL_HSCIF4_4_MARK = 1863, + SEL_HSCIF4_2_MARK = 1864, + SEL_HSCIF4_1_MARK___4 = 1865, + SEL_HSCIF4_3_MARK = 1866, + SEL_I2C2_0_MARK___6 = 1867, + SEL_I2C2_4_MARK = 1868, + SEL_I2C2_2_MARK = 1869, + SEL_I2C2_1_MARK___5 = 1870, + SEL_I2C2_3_MARK___2 = 1871, + SEL_I2C6_0_MARK___4 = 1872, + SEL_I2C6_1_MARK___4 = 1873, + SEL_I2C7_0_MARK = 1874, + SEL_I2C7_1_MARK = 1875, + SEL_NDF_0_MARK___3 = 1876, + SEL_NDF_1_MARK___3 = 1877, + SEL_MSIOF2_0_MARK___5 = 1878, + SEL_MSIOF2_1_MARK___5 = 1879, + SEL_PWM0_0_MARK___3 = 1880, + SEL_PWM0_1_MARK___3 = 1881, + SEL_MSIOF3_0_MARK___5 = 1882, + SEL_MSIOF3_1_MARK___5 = 1883, + SEL_PWM1_0_MARK___6 = 1884, + SEL_PWM1_1_MARK___6 = 1885, + SEL_SCIF3_0_MARK___5 = 1886, + SEL_SCIF3_2_MARK = 1887, + SEL_SCIF3_1_MARK___5 = 1888, + SEL_PWM2_0_MARK___6 = 1889, + SEL_PWM2_2_MARK___2 = 1890, + SEL_PWM2_1_MARK___6 = 1891, + SEL_SCIF4_0_MARK___5 = 1892, + SEL_SCIF4_2_MARK___4 = 1893, + SEL_SCIF4_1_MARK___5 = 1894, + SEL_PWM3_0_MARK___6 = 1895, + SEL_PWM3_2_MARK___2 = 1896, + SEL_PWM3_1_MARK___6 = 1897, + SEL_SCIF5_0_MARK___5 = 1898, + SEL_SCIF5_2_MARK = 1899, + SEL_SCIF5_1_MARK___5 = 1900, + SEL_PWM4_0_MARK___5 = 1901, + SEL_PWM4_1_MARK___5 = 1902, + SEL_PWM5_0_MARK___4 = 1903, + SEL_PWM5_1_MARK___4 = 1904, + SEL_VIN4_0_MARK___4 = 1905, + SEL_VIN4_1_MARK___4 = 1906, + SEL_PWM6_0_MARK___4 = 1907, + SEL_PWM6_1_MARK___4 = 1908, + SEL_VIN5_0_MARK = 1909, + SEL_VIN5_1_MARK = 1910, + SEL_REMOCON_0_MARK___4 = 1911, + SEL_REMOCON_2_MARK = 1912, + SEL_REMOCON_1_MARK___4 = 1913, + SEL_ADGC_0_MARK___4 = 1914, + SEL_ADGC_2_MARK = 1915, + SEL_ADGC_1_MARK___4 = 1916, + SEL_SCIF_0_MARK___4 = 1917, + SEL_SCIF_1_MARK___4 = 1918, + SEL_SSI9_0_MARK___4 = 1919, + SEL_SSI9_1_MARK___4 = 1920, + SEL_SCIF0_0_MARK___2 = 1921, + SEL_SCIF0_1_MARK___2 = 1922, + SEL_SCIF2_0_MARK___4 = 1923, + SEL_SCIF2_1_MARK___4 = 1924, + SEL_SPEED_PULSE_IF_0_MARK = 1925, + SEL_SPEED_PULSE_IF_2_MARK = 1926, + SEL_SPEED_PULSE_IF_1_MARK = 1927, + AVB_TX_CTL_MARK___5 = 1928, + AVB_TXC_MARK___5 = 1929, + AVB_TD0_MARK___5 = 1930, + AVB_TD1_MARK___5 = 1931, + AVB_TD2_MARK___5 = 1932, + AVB_TD3_MARK___5 = 1933, + PRESETOUT_N_MARK = 1934, + FSCLKST_N_MARK = 1935, + TRST_N_MARK = 1936, + TCK_MARK___4 = 1937, + TMS_MARK___4 = 1938, + TDI_MARK___4 = 1939, + ASEBRK_MARK___4 = 1940, + MLB_REF_MARK___4 = 1941, + VDDQ_AVB0_MARK = 1942, + PINMUX_MARK_END___9 = 1943, +}; + +enum { + PINMUX_RESERVED___10 = 0, + PINMUX_DATA_BEGIN___10 = 1, + GP_0_0_DATA___10 = 2, + GP_0_1_DATA___10 = 3, + GP_0_2_DATA___10 = 4, + GP_0_3_DATA___10 = 5, + GP_0_4_DATA___10 = 6, + GP_0_5_DATA___10 = 7, + GP_0_6_DATA___10 = 8, + GP_0_7_DATA___10 = 9, + GP_0_8_DATA___10 = 10, + GP_0_9_DATA___9 = 11, + GP_0_10_DATA___9 = 12, + GP_0_11_DATA___9 = 13, + GP_0_12_DATA___9 = 14, + GP_0_13_DATA___9 = 15, + GP_0_14_DATA___9 = 16, + GP_0_15_DATA___9 = 17, + GP_0_16_DATA___6 = 18, + GP_0_17_DATA___6 = 19, + GP_0_18_DATA___5 = 20, + GP_0_19_DATA___3 = 21, + GP_0_20_DATA___3 = 22, + GP_0_21_DATA___2 = 23, + GP_0_22_DATA = 24, + GP_0_23_DATA = 25, + GP_0_24_DATA = 26, + GP_0_25_DATA = 27, + GP_0_26_DATA = 28, + GP_0_27_DATA = 29, + GP_1_0_DATA___10 = 30, + GP_1_1_DATA___10 = 31, + GP_1_2_DATA___10 = 32, + GP_1_3_DATA___10 = 33, + GP_1_4_DATA___10 = 34, + GP_1_5_DATA___10 = 35, + GP_1_6_DATA___10 = 36, + GP_1_7_DATA___10 = 37, + GP_1_8_DATA___10 = 38, + GP_1_9_DATA___10 = 39, + GP_1_10_DATA___10 = 40, + GP_1_11_DATA___10 = 41, + GP_1_12_DATA___10 = 42, + GP_1_13_DATA___10 = 43, + GP_1_14_DATA___10 = 44, + GP_1_15_DATA___10 = 45, + GP_1_16_DATA___10 = 46, + GP_1_17_DATA___10 = 47, + GP_1_18_DATA___10 = 48, + GP_1_19_DATA___10 = 49, + GP_1_20_DATA___10 = 50, + GP_1_21_DATA___10 = 51, + GP_1_22_DATA___10 = 52, + GP_1_23_DATA___9 = 53, + GP_1_24_DATA___9 = 54, + GP_1_25_DATA___8 = 55, + GP_1_26_DATA___8 = 56, + GP_1_27_DATA___8 = 57, + GP_1_28_DATA___7 = 58, + GP_1_29_DATA___3 = 59, + GP_1_30_DATA___2 = 60, + GP_2_0_DATA___10 = 61, + GP_2_1_DATA___10 = 62, + GP_2_2_DATA___10 = 63, + GP_2_3_DATA___10 = 64, + GP_2_4_DATA___10 = 65, + GP_2_5_DATA___10 = 66, + GP_2_6_DATA___10 = 67, + GP_2_7_DATA___10 = 68, + GP_2_8_DATA___10 = 69, + GP_2_9_DATA___10 = 70, + GP_2_10_DATA___10 = 71, + GP_2_11_DATA___10 = 72, + GP_2_12_DATA___10 = 73, + GP_2_13_DATA___10 = 74, + GP_2_14_DATA___10 = 75, + GP_2_15_DATA___7 = 76, + GP_2_16_DATA___6 = 77, + GP_2_17_DATA___6 = 78, + GP_2_18_DATA___5 = 79, + GP_2_19_DATA___6 = 80, + GP_2_20_DATA___4 = 81, + GP_2_21_DATA___4 = 82, + GP_2_22_DATA___4 = 83, + GP_2_23_DATA___4 = 84, + GP_2_24_DATA___4 = 85, + GP_3_0_DATA___10 = 86, + GP_3_1_DATA___10 = 87, + GP_3_2_DATA___10 = 88, + GP_3_3_DATA___10 = 89, + GP_3_4_DATA___10 = 90, + GP_3_5_DATA___10 = 91, + GP_3_6_DATA___10 = 92, + GP_3_7_DATA___10 = 93, + GP_3_8_DATA___10 = 94, + GP_3_9_DATA___10 = 95, + GP_3_10_DATA___9 = 96, + GP_3_11_DATA___9 = 97, + GP_3_12_DATA___9 = 98, + GP_3_13_DATA___9 = 99, + GP_3_14_DATA___9 = 100, + GP_3_15_DATA___9 = 101, + GP_3_16_DATA___5 = 102, + GP_4_0_DATA___9 = 103, + GP_4_1_DATA___9 = 104, + GP_4_2_DATA___9 = 105, + GP_4_3_DATA___9 = 106, + GP_4_4_DATA___9 = 107, + GP_4_5_DATA___9 = 108, + GP_4_6_DATA___9 = 109, + GP_4_7_DATA___9 = 110, + GP_4_8_DATA___9 = 111, + GP_4_9_DATA___9 = 112, + GP_4_10_DATA___9 = 113, + GP_4_11_DATA___8 = 114, + GP_4_12_DATA___8 = 115, + GP_4_13_DATA___8 = 116, + GP_4_14_DATA___8 = 117, + GP_4_15_DATA___8 = 118, + GP_4_16_DATA___7 = 119, + GP_4_17_DATA___7 = 120, + GP_4_18_DATA___4 = 121, + GP_4_19_DATA___4 = 122, + GP_4_20_DATA___4 = 123, + GP_4_21_DATA___5 = 124, + GP_4_22_DATA___4 = 125, + GP_4_23_DATA___5 = 126, + GP_4_24_DATA___5 = 127, + GP_4_25_DATA___2 = 128, + GP_4_26_DATA___2 = 129, + GP_5_0_DATA___9 = 130, + GP_5_1_DATA___9 = 131, + GP_5_2_DATA___9 = 132, + GP_5_3_DATA___9 = 133, + GP_5_4_DATA___9 = 134, + GP_5_5_DATA___9 = 135, + GP_5_6_DATA___9 = 136, + GP_5_7_DATA___9 = 137, + GP_5_8_DATA___9 = 138, + GP_5_9_DATA___9 = 139, + GP_5_10_DATA___9 = 140, + GP_5_11_DATA___9 = 141, + GP_5_12_DATA___9 = 142, + GP_5_13_DATA___9 = 143, + GP_5_14_DATA___9 = 144, + GP_5_15_DATA___8 = 145, + GP_5_16_DATA___8 = 146, + GP_5_17_DATA___8 = 147, + GP_5_18_DATA___8 = 148, + GP_5_19_DATA___8 = 149, + GP_5_20_DATA___7 = 150, + GP_6_0_DATA___8 = 151, + GP_6_1_DATA___8 = 152, + GP_6_2_DATA___8 = 153, + GP_6_3_DATA___8 = 154, + GP_6_4_DATA___8 = 155, + GP_6_5_DATA___8 = 156, + GP_6_6_DATA___8 = 157, + GP_6_7_DATA___8 = 158, + GP_6_8_DATA___8 = 159, + GP_6_9_DATA___8 = 160, + GP_6_10_DATA___8 = 161, + GP_6_11_DATA___8 = 162, + GP_6_12_DATA___8 = 163, + GP_6_13_DATA___8 = 164, + GP_6_14_DATA___7 = 165, + GP_6_15_DATA___7 = 166, + GP_6_16_DATA___7 = 167, + GP_6_17_DATA___7 = 168, + GP_6_18_DATA___6 = 169, + GP_6_19_DATA___6 = 170, + GP_6_20_DATA___6 = 171, + GP_7_0_DATA___6 = 172, + GP_7_1_DATA___6 = 173, + GP_7_2_DATA___6 = 174, + GP_7_3_DATA___6 = 175, + GP_7_4_DATA___3 = 176, + GP_7_5_DATA___3 = 177, + GP_7_6_DATA___3 = 178, + GP_7_7_DATA___3 = 179, + GP_7_8_DATA___3 = 180, + GP_7_9_DATA___3 = 181, + GP_7_10_DATA___3 = 182, + GP_7_11_DATA___3 = 183, + GP_7_12_DATA___3 = 184, + GP_7_13_DATA___3 = 185, + GP_7_14_DATA___3 = 186, + GP_7_15_DATA___3 = 187, + GP_7_16_DATA___3 = 188, + GP_7_17_DATA___3 = 189, + GP_7_18_DATA___3 = 190, + GP_7_19_DATA___3 = 191, + GP_7_20_DATA___3 = 192, + GP_8_0_DATA___2 = 193, + GP_8_1_DATA___2 = 194, + GP_8_2_DATA___2 = 195, + GP_8_3_DATA___2 = 196, + GP_8_4_DATA___2 = 197, + GP_8_5_DATA___2 = 198, + GP_8_6_DATA___2 = 199, + GP_8_7_DATA___2 = 200, + GP_8_8_DATA___2 = 201, + GP_8_9_DATA___2 = 202, + GP_8_10_DATA___2 = 203, + GP_8_11_DATA___2 = 204, + GP_8_12_DATA___2 = 205, + GP_8_13_DATA___2 = 206, + GP_8_14_DATA = 207, + GP_8_15_DATA = 208, + GP_8_16_DATA = 209, + GP_8_17_DATA = 210, + GP_8_18_DATA = 211, + GP_8_19_DATA = 212, + GP_8_20_DATA = 213, + GP_9_0_DATA = 214, + GP_9_1_DATA = 215, + GP_9_2_DATA = 216, + GP_9_3_DATA = 217, + GP_9_4_DATA = 218, + GP_9_5_DATA = 219, + GP_9_6_DATA = 220, + GP_9_7_DATA = 221, + GP_9_8_DATA = 222, + GP_9_9_DATA = 223, + GP_9_10_DATA = 224, + GP_9_11_DATA = 225, + GP_9_12_DATA = 226, + GP_9_13_DATA = 227, + GP_9_14_DATA = 228, + GP_9_15_DATA = 229, + GP_9_16_DATA = 230, + GP_9_17_DATA = 231, + GP_9_18_DATA = 232, + GP_9_19_DATA = 233, + GP_9_20_DATA = 234, + PINMUX_DATA_END___10 = 235, + PINMUX_FUNCTION_BEGIN___10 = 236, + GP_0_0_FN___10 = 237, + GP_0_1_FN___10 = 238, + GP_0_2_FN___10 = 239, + GP_0_3_FN___10 = 240, + GP_0_4_FN___10 = 241, + GP_0_5_FN___10 = 242, + GP_0_6_FN___10 = 243, + GP_0_7_FN___10 = 244, + GP_0_8_FN___10 = 245, + GP_0_9_FN___9 = 246, + GP_0_10_FN___9 = 247, + GP_0_11_FN___9 = 248, + GP_0_12_FN___9 = 249, + GP_0_13_FN___9 = 250, + GP_0_14_FN___9 = 251, + GP_0_15_FN___9 = 252, + GP_0_16_FN___6 = 253, + GP_0_17_FN___6 = 254, + GP_0_18_FN___5 = 255, + GP_0_19_FN___3 = 256, + GP_0_20_FN___3 = 257, + GP_0_21_FN___2 = 258, + GP_0_22_FN = 259, + GP_0_23_FN = 260, + GP_0_24_FN = 261, + GP_0_25_FN = 262, + GP_0_26_FN = 263, + GP_0_27_FN = 264, + GP_1_0_FN___10 = 265, + GP_1_1_FN___10 = 266, + GP_1_2_FN___10 = 267, + GP_1_3_FN___10 = 268, + GP_1_4_FN___10 = 269, + GP_1_5_FN___10 = 270, + GP_1_6_FN___10 = 271, + GP_1_7_FN___10 = 272, + GP_1_8_FN___10 = 273, + GP_1_9_FN___10 = 274, + GP_1_10_FN___10 = 275, + GP_1_11_FN___10 = 276, + GP_1_12_FN___10 = 277, + GP_1_13_FN___10 = 278, + GP_1_14_FN___10 = 279, + GP_1_15_FN___10 = 280, + GP_1_16_FN___10 = 281, + GP_1_17_FN___10 = 282, + GP_1_18_FN___10 = 283, + GP_1_19_FN___10 = 284, + GP_1_20_FN___10 = 285, + GP_1_21_FN___10 = 286, + GP_1_22_FN___10 = 287, + GP_1_23_FN___9 = 288, + GP_1_24_FN___9 = 289, + GP_1_25_FN___8 = 290, + GP_1_26_FN___8 = 291, + GP_1_27_FN___8 = 292, + GP_1_28_FN___7 = 293, + GP_1_29_FN___3 = 294, + GP_1_30_FN___2 = 295, + GP_2_0_FN___10 = 296, + GP_2_1_FN___10 = 297, + GP_2_2_FN___10 = 298, + GP_2_3_FN___10 = 299, + GP_2_4_FN___10 = 300, + GP_2_5_FN___10 = 301, + GP_2_6_FN___10 = 302, + GP_2_7_FN___10 = 303, + GP_2_8_FN___10 = 304, + GP_2_9_FN___10 = 305, + GP_2_10_FN___10 = 306, + GP_2_11_FN___10 = 307, + GP_2_12_FN___10 = 308, + GP_2_13_FN___10 = 309, + GP_2_14_FN___10 = 310, + GP_2_15_FN___7 = 311, + GP_2_16_FN___6 = 312, + GP_2_17_FN___6 = 313, + GP_2_18_FN___5 = 314, + GP_2_19_FN___6 = 315, + GP_2_20_FN___4 = 316, + GP_2_21_FN___4 = 317, + GP_2_22_FN___4 = 318, + GP_2_23_FN___4 = 319, + GP_2_24_FN___4 = 320, + GP_3_0_FN___10 = 321, + GP_3_1_FN___10 = 322, + GP_3_2_FN___10 = 323, + GP_3_3_FN___10 = 324, + GP_3_4_FN___10 = 325, + GP_3_5_FN___10 = 326, + GP_3_6_FN___10 = 327, + GP_3_7_FN___10 = 328, + GP_3_8_FN___10 = 329, + GP_3_9_FN___10 = 330, + GP_3_10_FN___9 = 331, + GP_3_11_FN___9 = 332, + GP_3_12_FN___9 = 333, + GP_3_13_FN___9 = 334, + GP_3_14_FN___9 = 335, + GP_3_15_FN___9 = 336, + GP_3_16_FN___5 = 337, + GP_4_0_FN___9 = 338, + GP_4_1_FN___9 = 339, + GP_4_2_FN___9 = 340, + GP_4_3_FN___9 = 341, + GP_4_4_FN___9 = 342, + GP_4_5_FN___9 = 343, + GP_4_6_FN___9 = 344, + GP_4_7_FN___9 = 345, + GP_4_8_FN___9 = 346, + GP_4_9_FN___9 = 347, + GP_4_10_FN___9 = 348, + GP_4_11_FN___8 = 349, + GP_4_12_FN___8 = 350, + GP_4_13_FN___8 = 351, + GP_4_14_FN___8 = 352, + GP_4_15_FN___8 = 353, + GP_4_16_FN___7 = 354, + GP_4_17_FN___7 = 355, + GP_4_18_FN___4 = 356, + GP_4_19_FN___4 = 357, + GP_4_20_FN___4 = 358, + GP_4_21_FN___5 = 359, + GP_4_22_FN___4 = 360, + GP_4_23_FN___5 = 361, + GP_4_24_FN___5 = 362, + GP_4_25_FN___2 = 363, + GP_4_26_FN___2 = 364, + GP_5_0_FN___9 = 365, + GP_5_1_FN___9 = 366, + GP_5_2_FN___9 = 367, + GP_5_3_FN___9 = 368, + GP_5_4_FN___9 = 369, + GP_5_5_FN___9 = 370, + GP_5_6_FN___9 = 371, + GP_5_7_FN___9 = 372, + GP_5_8_FN___9 = 373, + GP_5_9_FN___9 = 374, + GP_5_10_FN___9 = 375, + GP_5_11_FN___9 = 376, + GP_5_12_FN___9 = 377, + GP_5_13_FN___9 = 378, + GP_5_14_FN___9 = 379, + GP_5_15_FN___8 = 380, + GP_5_16_FN___8 = 381, + GP_5_17_FN___8 = 382, + GP_5_18_FN___8 = 383, + GP_5_19_FN___8 = 384, + GP_5_20_FN___7 = 385, + GP_6_0_FN___8 = 386, + GP_6_1_FN___8 = 387, + GP_6_2_FN___8 = 388, + GP_6_3_FN___8 = 389, + GP_6_4_FN___8 = 390, + GP_6_5_FN___8 = 391, + GP_6_6_FN___8 = 392, + GP_6_7_FN___8 = 393, + GP_6_8_FN___8 = 394, + GP_6_9_FN___8 = 395, + GP_6_10_FN___8 = 396, + GP_6_11_FN___8 = 397, + GP_6_12_FN___8 = 398, + GP_6_13_FN___8 = 399, + GP_6_14_FN___7 = 400, + GP_6_15_FN___7 = 401, + GP_6_16_FN___7 = 402, + GP_6_17_FN___7 = 403, + GP_6_18_FN___6 = 404, + GP_6_19_FN___6 = 405, + GP_6_20_FN___6 = 406, + GP_7_0_FN___6 = 407, + GP_7_1_FN___6 = 408, + GP_7_2_FN___6 = 409, + GP_7_3_FN___6 = 410, + GP_7_4_FN___3 = 411, + GP_7_5_FN___3 = 412, + GP_7_6_FN___3 = 413, + GP_7_7_FN___3 = 414, + GP_7_8_FN___3 = 415, + GP_7_9_FN___3 = 416, + GP_7_10_FN___3 = 417, + GP_7_11_FN___3 = 418, + GP_7_12_FN___3 = 419, + GP_7_13_FN___3 = 420, + GP_7_14_FN___3 = 421, + GP_7_15_FN___3 = 422, + GP_7_16_FN___3 = 423, + GP_7_17_FN___3 = 424, + GP_7_18_FN___3 = 425, + GP_7_19_FN___3 = 426, + GP_7_20_FN___3 = 427, + GP_8_0_FN___2 = 428, + GP_8_1_FN___2 = 429, + GP_8_2_FN___2 = 430, + GP_8_3_FN___2 = 431, + GP_8_4_FN___2 = 432, + GP_8_5_FN___2 = 433, + GP_8_6_FN___2 = 434, + GP_8_7_FN___2 = 435, + GP_8_8_FN___2 = 436, + GP_8_9_FN___2 = 437, + GP_8_10_FN___2 = 438, + GP_8_11_FN___2 = 439, + GP_8_12_FN___2 = 440, + GP_8_13_FN___2 = 441, + GP_8_14_FN = 442, + GP_8_15_FN = 443, + GP_8_16_FN = 444, + GP_8_17_FN = 445, + GP_8_18_FN = 446, + GP_8_19_FN = 447, + GP_8_20_FN = 448, + GP_9_0_FN = 449, + GP_9_1_FN = 450, + GP_9_2_FN = 451, + GP_9_3_FN = 452, + GP_9_4_FN = 453, + GP_9_5_FN = 454, + GP_9_6_FN = 455, + GP_9_7_FN = 456, + GP_9_8_FN = 457, + GP_9_9_FN = 458, + GP_9_10_FN = 459, + GP_9_11_FN = 460, + GP_9_12_FN = 461, + GP_9_13_FN = 462, + GP_9_14_FN = 463, + GP_9_15_FN = 464, + GP_9_16_FN = 465, + GP_9_17_FN = 466, + GP_9_18_FN = 467, + GP_9_19_FN = 468, + GP_9_20_FN = 469, + FN_MMC_D7___6 = 470, + FN_MMC_D6___6 = 471, + FN_AVS1___6 = 472, + FN_MMC_D5___6 = 473, + FN_AVS0___3 = 474, + FN_MMC_D4___6 = 475, + FN_TCLK2_A___9 = 476, + FN_PCIE3_CLKREQ_N = 477, + FN_MMC_SD_CLK___4 = 478, + FN_PCIE2_CLKREQ_N = 479, + FN_MMC_SD_D3___4 = 480, + FN_PCIE1_CLKREQ_N___3 = 481, + FN_MMC_SD_D2___4 = 482, + FN_PCIE0_CLKREQ_N___4 = 483, + FN_MMC_SD_D1___4 = 484, + FN_AVB2_AVTP_PPS___3 = 485, + FN_AVB3_AVTP_PPS = 486, + FN_AVB4_AVTP_PPS = 487, + FN_AVB5_AVTP_PPS = 488, + FN_MMC_SD_D0___4 = 489, + FN_AVB2_AVTP_CAPTURE___3 = 490, + FN_AVB3_AVTP_CAPTURE = 491, + FN_AVB4_AVTP_CAPTURE = 492, + FN_AVB5_AVTP_CAPTURE = 493, + FN_MMC_SD_CMD___4 = 494, + FN_AVB2_AVTP_MATCH___3 = 495, + FN_AVB3_AVTP_MATCH = 496, + FN_AVB4_AVTP_MATCH = 497, + FN_AVB5_AVTP_MATCH = 498, + FN_MMC_DS___5 = 499, + FN_AVB2_LINK___3 = 500, + FN_AVB3_LINK = 501, + FN_AVB4_LINK = 502, + FN_AVB5_LINK = 503, + FN_SD_CD___4 = 504, + FN_CANFD7_RX___2 = 505, + FN_AVB0_PHY_INT___4 = 506, + FN_AVB1_PHY_INT___3 = 507, + FN_AVB2_PHY_INT___3 = 508, + FN_AVB3_PHY_INT = 509, + FN_AVB4_PHY_INT = 510, + FN_AVB5_PHY_INT = 511, + FN_SD_WP___4 = 512, + FN_CANFD7_TX___2 = 513, + FN_AVB2_MAGIC___3 = 514, + FN_AVB3_MAGIC = 515, + FN_AVB4_MAGIC = 516, + FN_AVB5_MAGIC = 517, + FN_RPC_INT_N___7 = 518, + FN_CANFD6_RX___2 = 519, + FN_AVB2_MDC___3 = 520, + FN_AVB3_MDC = 521, + FN_AVB4_MDC = 522, + FN_AVB5_MDC = 523, + FN_RPC_WP_N___5 = 524, + FN_AVB2_MDIO___3 = 525, + FN_AVB3_MDIO = 526, + FN_AVB4_MDIO = 527, + FN_AVB5_MDIO = 528, + FN_RPC_RESET_N___7 = 529, + FN_AVB2_TXCREFCLK___3 = 530, + FN_AVB3_TXCREFCLK = 531, + FN_AVB4_TXCREFCLK = 532, + FN_AVB5_TXCREFCLK = 533, + FN_QSPI1_SSL___7 = 534, + FN_AVB2_TD3___3 = 535, + FN_AVB3_TD3 = 536, + FN_AVB4_TD3 = 537, + FN_AVB5_TD3 = 538, + FN_QSPI1_IO3___7 = 539, + FN_AVB2_TD2___3 = 540, + FN_AVB3_TD2 = 541, + FN_AVB4_TD2 = 542, + FN_AVB5_TD2 = 543, + FN_QSPI1_IO2___7 = 544, + FN_AVB2_TD1___3 = 545, + FN_AVB3_TD1 = 546, + FN_AVB4_TD1 = 547, + FN_AVB5_TD1 = 548, + FN_QSPI1_MISO_IO1___7 = 549, + FN_AVB2_TD0___3 = 550, + FN_AVB3_TD0 = 551, + FN_AVB4_TD0 = 552, + FN_AVB5_TD0 = 553, + FN_QSPI1_MOSI_IO0___7 = 554, + FN_AVB2_TXC___3 = 555, + FN_AVB3_TXC = 556, + FN_AVB4_TXC = 557, + FN_AVB5_TXC = 558, + FN_QSPI1_SPCLK___7 = 559, + FN_AVB2_TX_CTL___3 = 560, + FN_AVB3_TX_CTL = 561, + FN_AVB4_TX_CTL = 562, + FN_AVB5_TX_CTL = 563, + FN_QSPI0_SSL___7 = 564, + FN_AVB2_RD3___3 = 565, + FN_AVB3_RD3 = 566, + FN_AVB4_RD3 = 567, + FN_AVB5_RD3 = 568, + FN_QSPI0_IO3___7 = 569, + FN_CANFD1_RX___9 = 570, + FN_AVB2_RD2___3 = 571, + FN_AVB3_RD2 = 572, + FN_AVB4_RD2 = 573, + FN_AVB5_RD2 = 574, + FN_QSPI0_IO2___7 = 575, + FN_CANFD1_TX___9 = 576, + FN_AVB2_RD1___3 = 577, + FN_AVB3_RD1 = 578, + FN_AVB4_RD1 = 579, + FN_AVB5_RD1 = 580, + FN_QSPI0_MISO_IO1___7 = 581, + FN_AVB2_RD0___3 = 582, + FN_AVB3_RD0 = 583, + FN_AVB4_RD0 = 584, + FN_AVB5_RD0 = 585, + FN_QSPI0_MOSI_IO0___7 = 586, + FN_AVB2_RXC___3 = 587, + FN_AVB3_RXC = 588, + FN_AVB4_RXC = 589, + FN_AVB5_RXC = 590, + FN_QSPI0_SPCLK___7 = 591, + FN_CAN_CLK___8 = 592, + FN_AVB2_RX_CTL___3 = 593, + FN_AVB3_RX_CTL = 594, + FN_AVB4_RX_CTL = 595, + FN_AVB5_RX_CTL = 596, + FN_IP0SR1_3_0___4 = 597, + FN_SCIF_CLK___5 = 598, + FN_A0___6 = 599, + FN_IP1SR1_3_0___3 = 600, + FN_MSIOF0_SCK___10 = 601, + FN_DU_DR4___7 = 602, + FN_A8___6 = 603, + FN_IP2SR1_3_0___3 = 604, + FN_MSIOF1_SS1___7 = 605, + FN_HCTS3_N___7 = 606, + FN_RX3___3 = 607, + FN_DU_DG6___7 = 608, + FN_A16___6 = 609, + FN_IP3SR1_3_0___3 = 610, + FN_IRQ0___7 = 611, + FN_DU_DOTCLKOUT___2 = 612, + FN_A24 = 613, + FN_IP0SR1_7_4___4 = 614, + FN_HRX0___8 = 615, + FN_RX0___8 = 616, + FN_A1___6 = 617, + FN_IP1SR1_7_4___3 = 618, + FN_MSIOF0_SYNC___10 = 619, + FN_DU_DR5___7 = 620, + FN_A9___6 = 621, + FN_IP2SR1_7_4___3 = 622, + FN_MSIOF1_SS2___7 = 623, + FN_HTX3___3 = 624, + FN_TX3___3 = 625, + FN_DU_DG7___7 = 626, + FN_A17___6 = 627, + FN_IP3SR1_7_4___3 = 628, + FN_IRQ1___7 = 629, + FN_DU_HSYNC___3 = 630, + FN_A25 = 631, + FN_IP0SR1_11_8___4 = 632, + FN_HSCK0___8 = 633, + FN_SCK0___8 = 634, + FN_A2___6 = 635, + FN_IP1SR1_11_8___3 = 636, + FN_MSIOF0_SS1___10 = 637, + FN_DU_DR6___7 = 638, + FN_A10___6 = 639, + FN_IP2SR1_11_8___3 = 640, + FN_MSIOF2_RXD___6 = 641, + FN_HSCK1___3 = 642, + FN_SCK1___7 = 643, + FN_DU_DB2___7 = 644, + FN_A18___6 = 645, + FN_IP3SR1_11_8___3 = 646, + FN_IRQ2___7 = 647, + FN_DU_VSYNC___3 = 648, + FN_CS1_N_A26___2 = 649, + FN_IP0SR1_15_12___4 = 650, + FN_HRTS0_N___8 = 651, + FN_RTS0_N___9 = 652, + FN_A3___6 = 653, + FN_IP1SR1_15_12___3 = 654, + FN_MSIOF0_SS2___10 = 655, + FN_DU_DR7___7 = 656, + FN_A11___6 = 657, + FN_IP2SR1_15_12___3 = 658, + FN_MSIOF2_TXD___6 = 659, + FN_HCTS1_N___3 = 660, + FN_CTS1_N___8 = 661, + FN_DU_DB3___7 = 662, + FN_A19___6 = 663, + FN_IP3SR1_15_12___3 = 664, + FN_IRQ3___7 = 665, + FN_DU_ODDF_DISP_CDE = 666, + FN_CS0_N___6 = 667, + FN_IP0SR1_19_16___4 = 668, + FN_HCTS0_N___8 = 669, + FN_CTS0_N___9 = 670, + FN_A4___6 = 671, + FN_IP1SR1_19_16___3 = 672, + FN_MSIOF1_RXD___7 = 673, + FN_DU_DG2___7 = 674, + FN_A12___6 = 675, + FN_IP2SR1_19_16___3 = 676, + FN_MSIOF2_SCK___6 = 677, + FN_HRTS1_N___3 = 678, + FN_RTS1_N___8 = 679, + FN_DU_DB4___7 = 680, + FN_A20 = 681, + FN_IP3SR1_19_16___3 = 682, + FN_GP1_28 = 683, + FN_D0___6 = 684, + FN_IP0SR1_23_20___4 = 685, + FN_HTX0___8 = 686, + FN_TX0___8 = 687, + FN_A5___6 = 688, + FN_IP1SR1_23_20___3 = 689, + FN_MSIOF1_TXD___7 = 690, + FN_HRX3___3 = 691, + FN_SCK3___6 = 692, + FN_DU_DG3___7 = 693, + FN_A13___6 = 694, + FN_IP2SR1_23_20___3 = 695, + FN_MSIOF2_SYNC___5 = 696, + FN_HRX1___3 = 697, + FN_RX1_A___8 = 698, + FN_DU_DB5___7 = 699, + FN_A21 = 700, + FN_IP3SR1_23_20___2 = 701, + FN_GP1_29 = 702, + FN_D1___6 = 703, + FN_IP0SR1_27_24___4 = 704, + FN_MSIOF0_RXD___10 = 705, + FN_DU_DR2___7 = 706, + FN_A6___6 = 707, + FN_IP1SR1_27_24___3 = 708, + FN_MSIOF1_SCK___7 = 709, + FN_HSCK3___6 = 710, + FN_CTS3_N___6 = 711, + FN_DU_DG4___7 = 712, + FN_A14___6 = 713, + FN_IP2SR1_27_24___3 = 714, + FN_MSIOF2_SS1___6 = 715, + FN_HTX1___3 = 716, + FN_TX1_A___8 = 717, + FN_DU_DB6___7 = 718, + FN_A22 = 719, + FN_IP3SR1_27_24 = 720, + FN_GP1_30 = 721, + FN_D2___6 = 722, + FN_IP0SR1_31_28___4 = 723, + FN_MSIOF0_TXD___10 = 724, + FN_DU_DR3___7 = 725, + FN_A7___6 = 726, + FN_IP1SR1_31_28___3 = 727, + FN_MSIOF1_SYNC___7 = 728, + FN_HRTS3_N___7 = 729, + FN_RTS3_N___6 = 730, + FN_DU_DG5___7 = 731, + FN_A15___6 = 732, + FN_IP2SR1_31_28___3 = 733, + FN_MSIOF2_SS2___6 = 734, + FN_TCLK1_B___9 = 735, + FN_DU_DB7___7 = 736, + FN_A23 = 737, + FN_IP0SR2_3_0___3 = 738, + FN_IPC_CLKIN___2 = 739, + FN_IPC_CLKEN_IN___2 = 740, + FN_DU_DOTCLKIN = 741, + FN_IP1SR2_3_0___3 = 742, + FN_GP2_08 = 743, + FN_HRX2___5 = 744, + FN_MSIOF4_SS1___3 = 745, + FN_RX4___5 = 746, + FN_D9___6 = 747, + FN_IP2SR2_3_0___2 = 748, + FN_FXR_TXDA_A = 749, + FN_MSIOF3_SS1___5 = 750, + FN_IP0SR2_7_4___3 = 751, + FN_IPC_CLKOUT___2 = 752, + FN_IPC_CLKEN_OUT___2 = 753, + FN_IP1SR2_7_4___3 = 754, + FN_GP2_09 = 755, + FN_HTX2___5 = 756, + FN_MSIOF4_SS2___3 = 757, + FN_TX4___5 = 758, + FN_D10___6 = 759, + FN_IP2SR2_7_4___3 = 760, + FN_RXDA_EXTFXR_A = 761, + FN_MSIOF3_SS2___5 = 762, + FN_BS_N___6 = 763, + FN_IP0SR2_11_8___3 = 764, + FN_GP2_02 = 765, + FN_D3___6 = 766, + FN_IP1SR2_11_8___3 = 767, + FN_GP2_10 = 768, + FN_TCLK2_B___9 = 769, + FN_MSIOF5_RXD___3 = 770, + FN_D11___6 = 771, + FN_IP2SR2_11_8___2 = 772, + FN_FXR_TXDB___4 = 773, + FN_MSIOF3_RXD___5 = 774, + FN_RD_N___6 = 775, + FN_IP0SR2_15_12___3 = 776, + FN_GP2_03 = 777, + FN_D4___6 = 778, + FN_IP1SR2_15_12___3 = 779, + FN_GP2_11 = 780, + FN_TCLK3___3 = 781, + FN_MSIOF5_TXD___3 = 782, + FN_D12___6 = 783, + FN_IP2SR2_15_12___3 = 784, + FN_RXDB_EXTFXR___4 = 785, + FN_MSIOF3_TXD___5 = 786, + FN_WE0_N___6 = 787, + FN_IP0SR2_19_16___3 = 788, + FN_GP2_04 = 789, + FN_MSIOF4_RXD___3 = 790, + FN_D5___6 = 791, + FN_IP1SR2_19_16___3 = 792, + FN_GP2_12 = 793, + FN_TCLK4___3 = 794, + FN_MSIOF5_SCK___3 = 795, + FN_D13___6 = 796, + FN_IP2SR2_19_16 = 797, + FN_CLK_EXTFXR___4 = 798, + FN_MSIOF3_SCK___5 = 799, + FN_WE1_N___6 = 800, + FN_IP0SR2_23_20___3 = 801, + FN_GP2_05 = 802, + FN_HSCK2___5 = 803, + FN_MSIOF4_TXD___3 = 804, + FN_SCK4___5 = 805, + FN_D6___6 = 806, + FN_IP1SR2_23_20___3 = 807, + FN_GP2_13 = 808, + FN_MSIOF5_SYNC___3 = 809, + FN_D14___6 = 810, + FN_IP2SR2_23_20 = 811, + FN_TPU0TO0___6 = 812, + FN_MSIOF3_SYNC___5 = 813, + FN_RD_WR_N___6 = 814, + FN_IP0SR2_27_24___3 = 815, + FN_GP2_06 = 816, + FN_HCTS2_N___5 = 817, + FN_MSIOF4_SCK___3 = 818, + FN_CTS4_N___5 = 819, + FN_D7___6 = 820, + FN_IP1SR2_27_24___3 = 821, + FN_GP2_14 = 822, + FN_IRQ4___7 = 823, + FN_MSIOF5_SS1___3 = 824, + FN_D15___6 = 825, + FN_IP2SR2_27_24 = 826, + FN_TPU0TO1___6 = 827, + FN_CLKOUT___6 = 828, + FN_IP0SR2_31_28___3 = 829, + FN_GP2_07 = 830, + FN_HRTS2_N___5 = 831, + FN_MSIOF4_SYNC___3 = 832, + FN_RTS4_N___5 = 833, + FN_D8___6 = 834, + FN_IP1SR2_31_28___3 = 835, + FN_GP2_15 = 836, + FN_IRQ5___9 = 837, + FN_MSIOF5_SS2___3 = 838, + FN_CPG_CPCKOUT___2 = 839, + FN_IP2SR2_31_28 = 840, + FN_TCLK1_A___9 = 841, + FN_EX_WAIT0___3 = 842, + FN_IP1SR3_3_0___3 = 843, + FN_CANFD3_RX___3 = 844, + FN_PWM3 = 845, + FN_IP0SR3_7_4___3 = 846, + FN_CANFD0_TX___5 = 847, + FN_FXR_TXDA_B = 848, + FN_TX1_B___8 = 849, + FN_IP1SR3_7_4___3 = 850, + FN_CANFD4_TX___2 = 851, + FN_PWM4___3 = 852, + FN_FXR_CLKOUT1 = 853, + FN_IP0SR3_11_8___3 = 854, + FN_CANFD0_RX___5 = 855, + FN_RXDA_EXTFXR_B = 856, + FN_RX1_B___8 = 857, + FN_IP1SR3_11_8___3 = 858, + FN_CANFD4_RX___2 = 859, + FN_FXR_CLKOUT2 = 860, + FN_IP1SR3_15_12___3 = 861, + FN_CANFD5_TX = 862, + FN_FXR_TXENA_N___2 = 863, + FN_IP1SR3_19_16___3 = 864, + FN_CANFD5_RX = 865, + FN_FXR_TXENB_N___2 = 866, + FN_IP0SR3_23_20___3 = 867, + FN_CANFD2_TX___3 = 868, + FN_TPU0TO2___6 = 869, + FN_PWM0___5 = 870, + FN_IP1SR3_23_20___3 = 871, + FN_CANFD6_TX___2 = 872, + FN_STPWT_EXTFXR___3 = 873, + FN_IP0SR3_27_24___3 = 874, + FN_CANFD2_RX___3 = 875, + FN_TPU0TO3___6 = 876, + FN_PWM1 = 877, + FN_IP0SR3_31_28___3 = 878, + FN_CANFD3_TX___3 = 879, + FN_PWM2___2 = 880, + FN_IP0SR4_3_0___3 = 881, + FN_AVB0_RX_CTL___4 = 882, + FN_AVB0_MII_RX_DV___3 = 883, + FN_IP1SR4_3_0___3 = 884, + FN_AVB0_TD0___4 = 885, + FN_AVB0_MII_TD0___3 = 886, + FN_IP0SR4_7_4___3 = 887, + FN_AVB0_RXC___4 = 888, + FN_AVB0_MII_RXC___3 = 889, + FN_IP1SR4_7_4___3 = 890, + FN_AVB0_TD1___4 = 891, + FN_AVB0_MII_TD1___3 = 892, + FN_IP2SR4_7_4___2 = 893, + FN_AVB0_LINK___4 = 894, + FN_AVB0_MII_TX_ER___3 = 895, + FN_IP0SR4_11_8___3 = 896, + FN_AVB0_RD0___4 = 897, + FN_AVB0_MII_RD0___3 = 898, + FN_IP1SR4_11_8___3 = 899, + FN_AVB0_TD2___4 = 900, + FN_AVB0_MII_TD2___3 = 901, + FN_IP2SR4_11_8___2 = 902, + FN_AVB0_AVTP_MATCH___3 = 903, + FN_AVB0_MII_RX_ER___3 = 904, + FN_CC5_OSCOUT___3 = 905, + FN_IP0SR4_15_12___3 = 906, + FN_AVB0_RD1___4 = 907, + FN_AVB0_MII_RD1___3 = 908, + FN_IP1SR4_15_12___3 = 909, + FN_AVB0_TD3___4 = 910, + FN_AVB0_MII_TD3___3 = 911, + FN_IP2SR4_15_12___2 = 912, + FN_AVB0_AVTP_CAPTURE___3 = 913, + FN_AVB0_MII_CRS___3 = 914, + FN_IP0SR4_19_16___3 = 915, + FN_AVB0_RD2___4 = 916, + FN_AVB0_MII_RD2___3 = 917, + FN_IP1SR4_19_16___3 = 918, + FN_AVB0_TXCREFCLK___4 = 919, + FN_IP2SR4_19_16___2 = 920, + FN_AVB0_AVTP_PPS___3 = 921, + FN_AVB0_MII_COL___3 = 922, + FN_IP0SR4_23_20___3 = 923, + FN_AVB0_RD3___4 = 924, + FN_AVB0_MII_RD3___3 = 925, + FN_IP1SR4_23_20___3 = 926, + FN_AVB0_MDIO___4 = 927, + FN_IP0SR4_27_24___3 = 928, + FN_AVB0_TX_CTL___4 = 929, + FN_AVB0_MII_TX_EN___3 = 930, + FN_IP1SR4_27_24___3 = 931, + FN_AVB0_MDC___4 = 932, + FN_IP0SR4_31_28___3 = 933, + FN_AVB0_TXC___4 = 934, + FN_AVB0_MII_TXC___3 = 935, + FN_IP1SR4_31_28___3 = 936, + FN_AVB0_MAGIC___4 = 937, + FN_IP0SR5_3_0___3 = 938, + FN_AVB1_RX_CTL___3 = 939, + FN_AVB1_MII_RX_DV___3 = 940, + FN_IP1SR5_3_0___3 = 941, + FN_AVB1_TD0___3 = 942, + FN_AVB1_MII_TD0___3 = 943, + FN_IP0SR5_7_4___3 = 944, + FN_AVB1_RXC___3 = 945, + FN_AVB1_MII_RXC___3 = 946, + FN_IP1SR5_7_4___3 = 947, + FN_AVB1_TD1___3 = 948, + FN_AVB1_MII_TD1___3 = 949, + FN_IP2SR5_7_4___3 = 950, + FN_AVB1_LINK___3 = 951, + FN_AVB1_MII_TX_ER___3 = 952, + FN_IP0SR5_11_8___3 = 953, + FN_AVB1_RD0___3 = 954, + FN_AVB1_MII_RD0___3 = 955, + FN_IP1SR5_11_8___3 = 956, + FN_AVB1_TD2___3 = 957, + FN_AVB1_MII_TD2___3 = 958, + FN_IP2SR5_11_8___3 = 959, + FN_AVB1_AVTP_MATCH___3 = 960, + FN_AVB1_MII_RX_ER___3 = 961, + FN_IP0SR5_15_12___3 = 962, + FN_AVB1_RD1___3 = 963, + FN_AVB1_MII_RD1___3 = 964, + FN_IP1SR5_15_12___3 = 965, + FN_AVB1_TD3___3 = 966, + FN_AVB1_MII_TD3___3 = 967, + FN_IP2SR5_15_12___3 = 968, + FN_AVB1_AVTP_CAPTURE___3 = 969, + FN_AVB1_MII_CRS___3 = 970, + FN_IP0SR5_19_16___3 = 971, + FN_AVB1_RD2___3 = 972, + FN_AVB1_MII_RD2___3 = 973, + FN_IP1SR5_19_16___3 = 974, + FN_AVB1_TXCREFCLK___3 = 975, + FN_IP2SR5_19_16___3 = 976, + FN_AVB1_AVTP_PPS___3 = 977, + FN_AVB1_MII_COL___3 = 978, + FN_IP0SR5_23_20___3 = 979, + FN_AVB1_RD3___3 = 980, + FN_AVB1_MII_RD3___3 = 981, + FN_IP1SR5_23_20___3 = 982, + FN_AVB1_MDIO___3 = 983, + FN_IP0SR5_27_24___3 = 984, + FN_AVB1_TX_CTL___3 = 985, + FN_AVB1_MII_TX_EN___3 = 986, + FN_IP1SR5_27_24___3 = 987, + FN_AVB1_MDC___3 = 988, + FN_IP0SR5_31_28___3 = 989, + FN_AVB1_TXC___3 = 990, + FN_AVB1_MII_TXC___3 = 991, + FN_IP1SR5_31_28___3 = 992, + FN_AVB1_MAGIC___3 = 993, + FN_SEL_I2C6_0___5 = 994, + FN_SEL_I2C6_3 = 995, + FN_SEL_I2C5_0___2 = 996, + FN_SEL_I2C5_3___2 = 997, + FN_SEL_I2C4_0___2 = 998, + FN_SEL_I2C4_3___2 = 999, + FN_SEL_I2C3_0___3 = 1000, + FN_SEL_I2C3_3___2 = 1001, + FN_SEL_I2C2_0___7 = 1002, + FN_SEL_I2C2_3___3 = 1003, + FN_SEL_I2C1_0___6 = 1004, + FN_SEL_I2C1_3___3 = 1005, + FN_SEL_I2C0_0___2 = 1006, + FN_SEL_I2C0_3___2 = 1007, + PINMUX_FUNCTION_END___10 = 1008, + PINMUX_MARK_BEGIN___10 = 1009, + MMC_D7_MARK___6 = 1010, + MMC_D6_MARK___6 = 1011, + AVS1_MARK___6 = 1012, + MMC_D5_MARK___6 = 1013, + AVS0_MARK___3 = 1014, + MMC_D4_MARK___6 = 1015, + TCLK2_A_MARK___9 = 1016, + PCIE3_CLKREQ_N_MARK = 1017, + MMC_SD_CLK_MARK___4 = 1018, + PCIE2_CLKREQ_N_MARK = 1019, + MMC_SD_D3_MARK___4 = 1020, + PCIE1_CLKREQ_N_MARK___3 = 1021, + MMC_SD_D2_MARK___4 = 1022, + PCIE0_CLKREQ_N_MARK___4 = 1023, + MMC_SD_D1_MARK___4 = 1024, + AVB2_AVTP_PPS_MARK___3 = 1025, + AVB3_AVTP_PPS_MARK = 1026, + AVB4_AVTP_PPS_MARK = 1027, + AVB5_AVTP_PPS_MARK = 1028, + MMC_SD_D0_MARK___4 = 1029, + AVB2_AVTP_CAPTURE_MARK___3 = 1030, + AVB3_AVTP_CAPTURE_MARK = 1031, + AVB4_AVTP_CAPTURE_MARK = 1032, + AVB5_AVTP_CAPTURE_MARK = 1033, + MMC_SD_CMD_MARK___4 = 1034, + AVB2_AVTP_MATCH_MARK___3 = 1035, + AVB3_AVTP_MATCH_MARK = 1036, + AVB4_AVTP_MATCH_MARK = 1037, + AVB5_AVTP_MATCH_MARK = 1038, + MMC_DS_MARK___5 = 1039, + AVB2_LINK_MARK___3 = 1040, + AVB3_LINK_MARK = 1041, + AVB4_LINK_MARK = 1042, + AVB5_LINK_MARK = 1043, + SD_CD_MARK___4 = 1044, + CANFD7_RX_MARK___2 = 1045, + AVB0_PHY_INT_MARK___4 = 1046, + AVB1_PHY_INT_MARK___3 = 1047, + AVB2_PHY_INT_MARK___3 = 1048, + AVB3_PHY_INT_MARK = 1049, + AVB4_PHY_INT_MARK = 1050, + AVB5_PHY_INT_MARK = 1051, + SD_WP_MARK___4 = 1052, + CANFD7_TX_MARK___2 = 1053, + AVB2_MAGIC_MARK___3 = 1054, + AVB3_MAGIC_MARK = 1055, + AVB4_MAGIC_MARK = 1056, + AVB5_MAGIC_MARK = 1057, + RPC_INT_N_MARK___7 = 1058, + CANFD6_RX_MARK___2 = 1059, + AVB2_MDC_MARK___3 = 1060, + AVB3_MDC_MARK = 1061, + AVB4_MDC_MARK = 1062, + AVB5_MDC_MARK = 1063, + RPC_WP_N_MARK___5 = 1064, + AVB2_MDIO_MARK___3 = 1065, + AVB3_MDIO_MARK = 1066, + AVB4_MDIO_MARK = 1067, + AVB5_MDIO_MARK = 1068, + RPC_RESET_N_MARK___7 = 1069, + AVB2_TXCREFCLK_MARK___3 = 1070, + AVB3_TXCREFCLK_MARK = 1071, + AVB4_TXCREFCLK_MARK = 1072, + AVB5_TXCREFCLK_MARK = 1073, + QSPI1_SSL_MARK___10 = 1074, + AVB2_TD3_MARK___3 = 1075, + AVB3_TD3_MARK = 1076, + AVB4_TD3_MARK = 1077, + AVB5_TD3_MARK = 1078, + QSPI1_IO3_MARK___10 = 1079, + AVB2_TD2_MARK___3 = 1080, + AVB3_TD2_MARK = 1081, + AVB4_TD2_MARK = 1082, + AVB5_TD2_MARK = 1083, + QSPI1_IO2_MARK___10 = 1084, + AVB2_TD1_MARK___3 = 1085, + AVB3_TD1_MARK = 1086, + AVB4_TD1_MARK = 1087, + AVB5_TD1_MARK = 1088, + QSPI1_MISO_IO1_MARK___10 = 1089, + AVB2_TD0_MARK___3 = 1090, + AVB3_TD0_MARK = 1091, + AVB4_TD0_MARK = 1092, + AVB5_TD0_MARK = 1093, + QSPI1_MOSI_IO0_MARK___10 = 1094, + AVB2_TXC_MARK___3 = 1095, + AVB3_TXC_MARK = 1096, + AVB4_TXC_MARK = 1097, + AVB5_TXC_MARK = 1098, + QSPI1_SPCLK_MARK___10 = 1099, + AVB2_TX_CTL_MARK___3 = 1100, + AVB3_TX_CTL_MARK = 1101, + AVB4_TX_CTL_MARK = 1102, + AVB5_TX_CTL_MARK = 1103, + QSPI0_SSL_MARK___10 = 1104, + AVB2_RD3_MARK___3 = 1105, + AVB3_RD3_MARK = 1106, + AVB4_RD3_MARK = 1107, + AVB5_RD3_MARK = 1108, + QSPI0_IO3_MARK___10 = 1109, + CANFD1_RX_MARK___9 = 1110, + AVB2_RD2_MARK___3 = 1111, + AVB3_RD2_MARK = 1112, + AVB4_RD2_MARK = 1113, + AVB5_RD2_MARK = 1114, + QSPI0_IO2_MARK___10 = 1115, + CANFD1_TX_MARK___9 = 1116, + AVB2_RD1_MARK___3 = 1117, + AVB3_RD1_MARK = 1118, + AVB4_RD1_MARK = 1119, + AVB5_RD1_MARK = 1120, + QSPI0_MISO_IO1_MARK___10 = 1121, + AVB2_RD0_MARK___3 = 1122, + AVB3_RD0_MARK = 1123, + AVB4_RD0_MARK = 1124, + AVB5_RD0_MARK = 1125, + QSPI0_MOSI_IO0_MARK___10 = 1126, + AVB2_RXC_MARK___3 = 1127, + AVB3_RXC_MARK = 1128, + AVB4_RXC_MARK = 1129, + AVB5_RXC_MARK = 1130, + QSPI0_SPCLK_MARK___10 = 1131, + CAN_CLK_MARK___8 = 1132, + AVB2_RX_CTL_MARK___3 = 1133, + AVB3_RX_CTL_MARK = 1134, + AVB4_RX_CTL_MARK = 1135, + AVB5_RX_CTL_MARK = 1136, + IP0SR1_3_0_MARK___4 = 1137, + SCIF_CLK_MARK___5 = 1138, + A0_MARK___6 = 1139, + IP1SR1_3_0_MARK___3 = 1140, + MSIOF0_SCK_MARK___10 = 1141, + DU_DR4_MARK___7 = 1142, + A8_MARK___6 = 1143, + IP2SR1_3_0_MARK___3 = 1144, + MSIOF1_SS1_MARK___7 = 1145, + HCTS3_N_MARK___7 = 1146, + RX3_MARK___3 = 1147, + DU_DG6_MARK___7 = 1148, + A16_MARK___6 = 1149, + IP3SR1_3_0_MARK___3 = 1150, + IRQ0_MARK___7 = 1151, + DU_DOTCLKOUT_MARK___2 = 1152, + A24_MARK = 1153, + IP0SR1_7_4_MARK___4 = 1154, + HRX0_MARK___8 = 1155, + RX0_MARK___8 = 1156, + A1_MARK___6 = 1157, + IP1SR1_7_4_MARK___3 = 1158, + MSIOF0_SYNC_MARK___10 = 1159, + DU_DR5_MARK___7 = 1160, + A9_MARK___6 = 1161, + IP2SR1_7_4_MARK___3 = 1162, + MSIOF1_SS2_MARK___7 = 1163, + HTX3_MARK___3 = 1164, + TX3_MARK___3 = 1165, + DU_DG7_MARK___7 = 1166, + A17_MARK___6 = 1167, + IP3SR1_7_4_MARK___3 = 1168, + IRQ1_MARK___7 = 1169, + DU_HSYNC_MARK___3 = 1170, + A25_MARK = 1171, + IP0SR1_11_8_MARK___4 = 1172, + HSCK0_MARK___8 = 1173, + SCK0_MARK___8 = 1174, + A2_MARK___6 = 1175, + IP1SR1_11_8_MARK___3 = 1176, + MSIOF0_SS1_MARK___10 = 1177, + DU_DR6_MARK___7 = 1178, + A10_MARK___6 = 1179, + IP2SR1_11_8_MARK___3 = 1180, + MSIOF2_RXD_MARK___6 = 1181, + HSCK1_MARK___3 = 1182, + SCK1_MARK___7 = 1183, + DU_DB2_MARK___7 = 1184, + A18_MARK___6 = 1185, + IP3SR1_11_8_MARK___3 = 1186, + IRQ2_MARK___7 = 1187, + DU_VSYNC_MARK___3 = 1188, + CS1_N_A26_MARK___2 = 1189, + IP0SR1_15_12_MARK___4 = 1190, + HRTS0_N_MARK___8 = 1191, + RTS0_N_MARK___9 = 1192, + A3_MARK___6 = 1193, + IP1SR1_15_12_MARK___3 = 1194, + MSIOF0_SS2_MARK___10 = 1195, + DU_DR7_MARK___7 = 1196, + A11_MARK___6 = 1197, + IP2SR1_15_12_MARK___3 = 1198, + MSIOF2_TXD_MARK___6 = 1199, + HCTS1_N_MARK___3 = 1200, + CTS1_N_MARK___8 = 1201, + DU_DB3_MARK___7 = 1202, + A19_MARK___6 = 1203, + IP3SR1_15_12_MARK___3 = 1204, + IRQ3_MARK___7 = 1205, + DU_ODDF_DISP_CDE_MARK = 1206, + CS0_N_MARK___6 = 1207, + IP0SR1_19_16_MARK___4 = 1208, + HCTS0_N_MARK___8 = 1209, + CTS0_N_MARK___9 = 1210, + A4_MARK___6 = 1211, + IP1SR1_19_16_MARK___3 = 1212, + MSIOF1_RXD_MARK___7 = 1213, + DU_DG2_MARK___7 = 1214, + A12_MARK___6 = 1215, + IP2SR1_19_16_MARK___3 = 1216, + MSIOF2_SCK_MARK___6 = 1217, + HRTS1_N_MARK___3 = 1218, + RTS1_N_MARK___8 = 1219, + DU_DB4_MARK___7 = 1220, + A20_MARK = 1221, + IP3SR1_19_16_MARK___3 = 1222, + GP1_28_MARK = 1223, + D0_MARK___6 = 1224, + IP0SR1_23_20_MARK___4 = 1225, + HTX0_MARK___8 = 1226, + TX0_MARK___8 = 1227, + A5_MARK___6 = 1228, + IP1SR1_23_20_MARK___3 = 1229, + MSIOF1_TXD_MARK___7 = 1230, + HRX3_MARK___3 = 1231, + SCK3_MARK___6 = 1232, + DU_DG3_MARK___7 = 1233, + A13_MARK___6 = 1234, + IP2SR1_23_20_MARK___3 = 1235, + MSIOF2_SYNC_MARK___5 = 1236, + HRX1_MARK___3 = 1237, + RX1_A_MARK___8 = 1238, + DU_DB5_MARK___7 = 1239, + A21_MARK = 1240, + IP3SR1_23_20_MARK___2 = 1241, + GP1_29_MARK = 1242, + D1_MARK___6 = 1243, + IP0SR1_27_24_MARK___4 = 1244, + MSIOF0_RXD_MARK___10 = 1245, + DU_DR2_MARK___7 = 1246, + A6_MARK___6 = 1247, + IP1SR1_27_24_MARK___3 = 1248, + MSIOF1_SCK_MARK___7 = 1249, + HSCK3_MARK___6 = 1250, + CTS3_N_MARK___6 = 1251, + DU_DG4_MARK___7 = 1252, + A14_MARK___6 = 1253, + IP2SR1_27_24_MARK___3 = 1254, + MSIOF2_SS1_MARK___6 = 1255, + HTX1_MARK___3 = 1256, + TX1_A_MARK___8 = 1257, + DU_DB6_MARK___7 = 1258, + A22_MARK = 1259, + IP3SR1_27_24_MARK = 1260, + GP1_30_MARK = 1261, + D2_MARK___6 = 1262, + IP0SR1_31_28_MARK___4 = 1263, + MSIOF0_TXD_MARK___10 = 1264, + DU_DR3_MARK___7 = 1265, + A7_MARK___6 = 1266, + IP1SR1_31_28_MARK___3 = 1267, + MSIOF1_SYNC_MARK___7 = 1268, + HRTS3_N_MARK___7 = 1269, + RTS3_N_MARK___6 = 1270, + DU_DG5_MARK___7 = 1271, + A15_MARK___6 = 1272, + IP2SR1_31_28_MARK___3 = 1273, + MSIOF2_SS2_MARK___6 = 1274, + TCLK1_B_MARK___9 = 1275, + DU_DB7_MARK___7 = 1276, + A23_MARK = 1277, + IP0SR2_3_0_MARK___3 = 1278, + IPC_CLKIN_MARK___2 = 1279, + IPC_CLKEN_IN_MARK___2 = 1280, + DU_DOTCLKIN_MARK = 1281, + IP1SR2_3_0_MARK___3 = 1282, + GP2_08_MARK = 1283, + HRX2_MARK___5 = 1284, + MSIOF4_SS1_MARK___3 = 1285, + RX4_MARK___5 = 1286, + D9_MARK___6 = 1287, + IP2SR2_3_0_MARK___2 = 1288, + FXR_TXDA_A_MARK = 1289, + MSIOF3_SS1_MARK___5 = 1290, + IP0SR2_7_4_MARK___3 = 1291, + IPC_CLKOUT_MARK___2 = 1292, + IPC_CLKEN_OUT_MARK___2 = 1293, + IP1SR2_7_4_MARK___3 = 1294, + GP2_09_MARK = 1295, + HTX2_MARK___5 = 1296, + MSIOF4_SS2_MARK___3 = 1297, + TX4_MARK___5 = 1298, + D10_MARK___6 = 1299, + IP2SR2_7_4_MARK___3 = 1300, + RXDA_EXTFXR_A_MARK = 1301, + MSIOF3_SS2_MARK___5 = 1302, + BS_N_MARK___6 = 1303, + IP0SR2_11_8_MARK___3 = 1304, + GP2_02_MARK = 1305, + D3_MARK___6 = 1306, + IP1SR2_11_8_MARK___3 = 1307, + GP2_10_MARK = 1308, + TCLK2_B_MARK___9 = 1309, + MSIOF5_RXD_MARK___3 = 1310, + D11_MARK___6 = 1311, + IP2SR2_11_8_MARK___2 = 1312, + FXR_TXDB_MARK___4 = 1313, + MSIOF3_RXD_MARK___5 = 1314, + RD_N_MARK___6 = 1315, + IP0SR2_15_12_MARK___3 = 1316, + GP2_03_MARK = 1317, + D4_MARK___6 = 1318, + IP1SR2_15_12_MARK___3 = 1319, + GP2_11_MARK = 1320, + TCLK3_MARK___3 = 1321, + MSIOF5_TXD_MARK___3 = 1322, + D12_MARK___6 = 1323, + IP2SR2_15_12_MARK___3 = 1324, + RXDB_EXTFXR_MARK___4 = 1325, + MSIOF3_TXD_MARK___5 = 1326, + WE0_N_MARK___6 = 1327, + IP0SR2_19_16_MARK___3 = 1328, + GP2_04_MARK = 1329, + MSIOF4_RXD_MARK___3 = 1330, + D5_MARK___6 = 1331, + IP1SR2_19_16_MARK___3 = 1332, + GP2_12_MARK = 1333, + TCLK4_MARK___3 = 1334, + MSIOF5_SCK_MARK___3 = 1335, + D13_MARK___6 = 1336, + IP2SR2_19_16_MARK = 1337, + CLK_EXTFXR_MARK___4 = 1338, + MSIOF3_SCK_MARK___5 = 1339, + WE1_N_MARK___6 = 1340, + IP0SR2_23_20_MARK___3 = 1341, + GP2_05_MARK = 1342, + HSCK2_MARK___5 = 1343, + MSIOF4_TXD_MARK___3 = 1344, + SCK4_MARK___5 = 1345, + D6_MARK___6 = 1346, + IP1SR2_23_20_MARK___3 = 1347, + GP2_13_MARK = 1348, + MSIOF5_SYNC_MARK___3 = 1349, + D14_MARK___6 = 1350, + IP2SR2_23_20_MARK = 1351, + TPU0TO0_MARK___6 = 1352, + MSIOF3_SYNC_MARK___5 = 1353, + RD_WR_N_MARK___6 = 1354, + IP0SR2_27_24_MARK___3 = 1355, + GP2_06_MARK = 1356, + HCTS2_N_MARK___5 = 1357, + MSIOF4_SCK_MARK___3 = 1358, + CTS4_N_MARK___5 = 1359, + D7_MARK___6 = 1360, + IP1SR2_27_24_MARK___3 = 1361, + GP2_14_MARK = 1362, + IRQ4_MARK___7 = 1363, + MSIOF5_SS1_MARK___3 = 1364, + D15_MARK___6 = 1365, + IP2SR2_27_24_MARK = 1366, + TPU0TO1_MARK___6 = 1367, + CLKOUT_MARK___6 = 1368, + IP0SR2_31_28_MARK___3 = 1369, + GP2_07_MARK = 1370, + HRTS2_N_MARK___5 = 1371, + MSIOF4_SYNC_MARK___3 = 1372, + RTS4_N_MARK___5 = 1373, + D8_MARK___6 = 1374, + IP1SR2_31_28_MARK___3 = 1375, + GP2_15_MARK = 1376, + IRQ5_MARK___9 = 1377, + MSIOF5_SS2_MARK___3 = 1378, + CPG_CPCKOUT_MARK___2 = 1379, + IP2SR2_31_28_MARK = 1380, + TCLK1_A_MARK___9 = 1381, + EX_WAIT0_MARK___3 = 1382, + IP1SR3_3_0_MARK___3 = 1383, + CANFD3_RX_MARK___3 = 1384, + PWM3_MARK = 1385, + IP0SR3_7_4_MARK___3 = 1386, + CANFD0_TX_MARK___5 = 1387, + FXR_TXDA_B_MARK = 1388, + TX1_B_MARK___8 = 1389, + IP1SR3_7_4_MARK___3 = 1390, + CANFD4_TX_MARK___2 = 1391, + PWM4_MARK___3 = 1392, + FXR_CLKOUT1_MARK = 1393, + IP0SR3_11_8_MARK___3 = 1394, + CANFD0_RX_MARK___5 = 1395, + RXDA_EXTFXR_B_MARK = 1396, + RX1_B_MARK___8 = 1397, + IP1SR3_11_8_MARK___3 = 1398, + CANFD4_RX_MARK___2 = 1399, + FXR_CLKOUT2_MARK = 1400, + IP1SR3_15_12_MARK___3 = 1401, + CANFD5_TX_MARK = 1402, + FXR_TXENA_N_MARK___2 = 1403, + IP1SR3_19_16_MARK___3 = 1404, + CANFD5_RX_MARK = 1405, + FXR_TXENB_N_MARK___2 = 1406, + IP0SR3_23_20_MARK___3 = 1407, + CANFD2_TX_MARK___3 = 1408, + TPU0TO2_MARK___6 = 1409, + PWM0_MARK___5 = 1410, + IP1SR3_23_20_MARK___3 = 1411, + CANFD6_TX_MARK___2 = 1412, + STPWT_EXTFXR_MARK___3 = 1413, + IP0SR3_27_24_MARK___3 = 1414, + CANFD2_RX_MARK___3 = 1415, + TPU0TO3_MARK___6 = 1416, + PWM1_MARK = 1417, + IP0SR3_31_28_MARK___3 = 1418, + CANFD3_TX_MARK___3 = 1419, + PWM2_MARK___2 = 1420, + IP0SR4_3_0_MARK___3 = 1421, + AVB0_RX_CTL_MARK___4 = 1422, + AVB0_MII_RX_DV_MARK___3 = 1423, + IP1SR4_3_0_MARK___3 = 1424, + AVB0_TD0_MARK___4 = 1425, + AVB0_MII_TD0_MARK___3 = 1426, + IP0SR4_7_4_MARK___3 = 1427, + AVB0_RXC_MARK___4 = 1428, + AVB0_MII_RXC_MARK___3 = 1429, + IP1SR4_7_4_MARK___3 = 1430, + AVB0_TD1_MARK___4 = 1431, + AVB0_MII_TD1_MARK___3 = 1432, + IP2SR4_7_4_MARK___2 = 1433, + AVB0_LINK_MARK___4 = 1434, + AVB0_MII_TX_ER_MARK___3 = 1435, + IP0SR4_11_8_MARK___3 = 1436, + AVB0_RD0_MARK___4 = 1437, + AVB0_MII_RD0_MARK___3 = 1438, + IP1SR4_11_8_MARK___3 = 1439, + AVB0_TD2_MARK___4 = 1440, + AVB0_MII_TD2_MARK___3 = 1441, + IP2SR4_11_8_MARK___2 = 1442, + AVB0_AVTP_MATCH_MARK___3 = 1443, + AVB0_MII_RX_ER_MARK___3 = 1444, + CC5_OSCOUT_MARK___3 = 1445, + IP0SR4_15_12_MARK___3 = 1446, + AVB0_RD1_MARK___4 = 1447, + AVB0_MII_RD1_MARK___3 = 1448, + IP1SR4_15_12_MARK___3 = 1449, + AVB0_TD3_MARK___4 = 1450, + AVB0_MII_TD3_MARK___3 = 1451, + IP2SR4_15_12_MARK___2 = 1452, + AVB0_AVTP_CAPTURE_MARK___3 = 1453, + AVB0_MII_CRS_MARK___3 = 1454, + IP0SR4_19_16_MARK___3 = 1455, + AVB0_RD2_MARK___4 = 1456, + AVB0_MII_RD2_MARK___3 = 1457, + IP1SR4_19_16_MARK___3 = 1458, + AVB0_TXCREFCLK_MARK___4 = 1459, + IP2SR4_19_16_MARK___2 = 1460, + AVB0_AVTP_PPS_MARK___3 = 1461, + AVB0_MII_COL_MARK___3 = 1462, + IP0SR4_23_20_MARK___3 = 1463, + AVB0_RD3_MARK___4 = 1464, + AVB0_MII_RD3_MARK___3 = 1465, + IP1SR4_23_20_MARK___3 = 1466, + AVB0_MDIO_MARK___4 = 1467, + IP0SR4_27_24_MARK___3 = 1468, + AVB0_TX_CTL_MARK___4 = 1469, + AVB0_MII_TX_EN_MARK___3 = 1470, + IP1SR4_27_24_MARK___3 = 1471, + AVB0_MDC_MARK___4 = 1472, + IP0SR4_31_28_MARK___3 = 1473, + AVB0_TXC_MARK___4 = 1474, + AVB0_MII_TXC_MARK___3 = 1475, + IP1SR4_31_28_MARK___3 = 1476, + AVB0_MAGIC_MARK___4 = 1477, + IP0SR5_3_0_MARK___3 = 1478, + AVB1_RX_CTL_MARK___3 = 1479, + AVB1_MII_RX_DV_MARK___3 = 1480, + IP1SR5_3_0_MARK___3 = 1481, + AVB1_TD0_MARK___3 = 1482, + AVB1_MII_TD0_MARK___3 = 1483, + IP0SR5_7_4_MARK___3 = 1484, + AVB1_RXC_MARK___3 = 1485, + AVB1_MII_RXC_MARK___3 = 1486, + IP1SR5_7_4_MARK___3 = 1487, + AVB1_TD1_MARK___3 = 1488, + AVB1_MII_TD1_MARK___3 = 1489, + IP2SR5_7_4_MARK___3 = 1490, + AVB1_LINK_MARK___3 = 1491, + AVB1_MII_TX_ER_MARK___3 = 1492, + IP0SR5_11_8_MARK___3 = 1493, + AVB1_RD0_MARK___3 = 1494, + AVB1_MII_RD0_MARK___3 = 1495, + IP1SR5_11_8_MARK___3 = 1496, + AVB1_TD2_MARK___3 = 1497, + AVB1_MII_TD2_MARK___3 = 1498, + IP2SR5_11_8_MARK___3 = 1499, + AVB1_AVTP_MATCH_MARK___3 = 1500, + AVB1_MII_RX_ER_MARK___3 = 1501, + IP0SR5_15_12_MARK___3 = 1502, + AVB1_RD1_MARK___3 = 1503, + AVB1_MII_RD1_MARK___3 = 1504, + IP1SR5_15_12_MARK___3 = 1505, + AVB1_TD3_MARK___3 = 1506, + AVB1_MII_TD3_MARK___3 = 1507, + IP2SR5_15_12_MARK___3 = 1508, + AVB1_AVTP_CAPTURE_MARK___3 = 1509, + AVB1_MII_CRS_MARK___3 = 1510, + IP0SR5_19_16_MARK___3 = 1511, + AVB1_RD2_MARK___3 = 1512, + AVB1_MII_RD2_MARK___3 = 1513, + IP1SR5_19_16_MARK___3 = 1514, + AVB1_TXCREFCLK_MARK___3 = 1515, + IP2SR5_19_16_MARK___3 = 1516, + AVB1_AVTP_PPS_MARK___3 = 1517, + AVB1_MII_COL_MARK___3 = 1518, + IP0SR5_23_20_MARK___3 = 1519, + AVB1_RD3_MARK___3 = 1520, + AVB1_MII_RD3_MARK___3 = 1521, + IP1SR5_23_20_MARK___3 = 1522, + AVB1_MDIO_MARK___3 = 1523, + IP0SR5_27_24_MARK___3 = 1524, + AVB1_TX_CTL_MARK___3 = 1525, + AVB1_MII_TX_EN_MARK___3 = 1526, + IP1SR5_27_24_MARK___3 = 1527, + AVB1_MDC_MARK___3 = 1528, + IP0SR5_31_28_MARK___3 = 1529, + AVB1_TXC_MARK___3 = 1530, + AVB1_MII_TXC_MARK___3 = 1531, + IP1SR5_31_28_MARK___3 = 1532, + AVB1_MAGIC_MARK___3 = 1533, + SEL_I2C6_0_MARK___5 = 1534, + SEL_I2C6_3_MARK = 1535, + SEL_I2C5_0_MARK___2 = 1536, + SEL_I2C5_3_MARK___2 = 1537, + SEL_I2C4_0_MARK___2 = 1538, + SEL_I2C4_3_MARK___2 = 1539, + SEL_I2C3_0_MARK___3 = 1540, + SEL_I2C3_3_MARK___2 = 1541, + SEL_I2C2_0_MARK___7 = 1542, + SEL_I2C2_3_MARK___3 = 1543, + SEL_I2C1_0_MARK___6 = 1544, + SEL_I2C1_3_MARK___3 = 1545, + SEL_I2C0_0_MARK___2 = 1546, + SEL_I2C0_3_MARK___2 = 1547, + SCL0_MARK___9 = 1548, + SDA0_MARK___9 = 1549, + SCL1_MARK___6 = 1550, + SDA1_MARK___6 = 1551, + SCL2_MARK___5 = 1552, + SDA2_MARK___5 = 1553, + SCL3_MARK___8 = 1554, + SDA3_MARK___8 = 1555, + SCL4_MARK___5 = 1556, + SDA4_MARK___5 = 1557, + SCL5_MARK___8 = 1558, + SDA5_MARK___8 = 1559, + SCL6_MARK = 1560, + SDA6_MARK = 1561, + PINMUX_MARK_END___10 = 1562, +}; + +enum { + PINMUX_RESERVED___11 = 0, + PINMUX_DATA_BEGIN___11 = 1, + GP_0_0_DATA___11 = 2, + GP_0_1_DATA___11 = 3, + GP_0_2_DATA___11 = 4, + GP_0_3_DATA___11 = 5, + GP_0_4_DATA___11 = 6, + GP_0_5_DATA___11 = 7, + GP_0_6_DATA___11 = 8, + GP_0_7_DATA___11 = 9, + GP_0_8_DATA___11 = 10, + GP_0_9_DATA___10 = 11, + GP_0_10_DATA___10 = 12, + GP_0_11_DATA___10 = 13, + GP_0_12_DATA___10 = 14, + GP_0_13_DATA___10 = 15, + GP_0_14_DATA___10 = 16, + GP_0_15_DATA___10 = 17, + GP_0_16_DATA___7 = 18, + GP_0_17_DATA___7 = 19, + GP_0_18_DATA___6 = 20, + GP_0_19_DATA___4 = 21, + GP_0_20_DATA___4 = 22, + GP_0_21_DATA___3 = 23, + GP_1_0_DATA___11 = 24, + GP_1_1_DATA___11 = 25, + GP_1_2_DATA___11 = 26, + GP_1_3_DATA___11 = 27, + GP_1_4_DATA___11 = 28, + GP_1_5_DATA___11 = 29, + GP_1_6_DATA___11 = 30, + GP_1_7_DATA___11 = 31, + GP_1_8_DATA___11 = 32, + GP_1_9_DATA___11 = 33, + GP_1_10_DATA___11 = 34, + GP_1_11_DATA___11 = 35, + GP_1_12_DATA___11 = 36, + GP_1_13_DATA___11 = 37, + GP_1_14_DATA___11 = 38, + GP_1_15_DATA___11 = 39, + GP_1_16_DATA___11 = 40, + GP_1_17_DATA___11 = 41, + GP_1_18_DATA___11 = 42, + GP_1_19_DATA___11 = 43, + GP_1_20_DATA___11 = 44, + GP_1_21_DATA___11 = 45, + GP_1_22_DATA___11 = 46, + GP_1_23_DATA___10 = 47, + GP_1_24_DATA___10 = 48, + GP_1_25_DATA___9 = 49, + GP_1_26_DATA___9 = 50, + GP_1_27_DATA___9 = 51, + GP_2_0_DATA___11 = 52, + GP_2_1_DATA___11 = 53, + GP_2_2_DATA___11 = 54, + GP_2_3_DATA___11 = 55, + GP_2_4_DATA___11 = 56, + GP_2_5_DATA___11 = 57, + GP_2_6_DATA___11 = 58, + GP_2_7_DATA___11 = 59, + GP_2_8_DATA___11 = 60, + GP_2_9_DATA___11 = 61, + GP_2_10_DATA___11 = 62, + GP_2_11_DATA___11 = 63, + GP_2_12_DATA___11 = 64, + GP_2_13_DATA___11 = 65, + GP_2_14_DATA___11 = 66, + GP_2_15_DATA___8 = 67, + GP_2_16_DATA___7 = 68, + GP_3_0_DATA___11 = 69, + GP_3_1_DATA___11 = 70, + GP_3_2_DATA___11 = 71, + GP_3_3_DATA___11 = 72, + GP_3_4_DATA___11 = 73, + GP_3_5_DATA___11 = 74, + GP_3_6_DATA___11 = 75, + GP_3_7_DATA___11 = 76, + GP_3_8_DATA___11 = 77, + GP_3_9_DATA___11 = 78, + GP_3_10_DATA___10 = 79, + GP_3_11_DATA___10 = 80, + GP_3_12_DATA___10 = 81, + GP_3_13_DATA___10 = 82, + GP_3_14_DATA___10 = 83, + GP_3_15_DATA___10 = 84, + GP_3_16_DATA___6 = 85, + GP_4_0_DATA___10 = 86, + GP_4_1_DATA___10 = 87, + GP_4_2_DATA___10 = 88, + GP_4_3_DATA___10 = 89, + GP_4_4_DATA___10 = 90, + GP_4_5_DATA___10 = 91, + GP_5_0_DATA___10 = 92, + GP_5_1_DATA___10 = 93, + GP_5_2_DATA___10 = 94, + GP_5_3_DATA___10 = 95, + GP_5_4_DATA___10 = 96, + GP_5_5_DATA___10 = 97, + GP_5_6_DATA___10 = 98, + GP_5_7_DATA___10 = 99, + GP_5_8_DATA___10 = 100, + GP_5_9_DATA___10 = 101, + GP_5_10_DATA___10 = 102, + GP_5_11_DATA___10 = 103, + GP_5_12_DATA___10 = 104, + GP_5_13_DATA___10 = 105, + GP_5_14_DATA___10 = 106, + PINMUX_DATA_END___11 = 107, + PINMUX_FUNCTION_BEGIN___11 = 108, + GP_0_0_FN___11 = 109, + GP_0_1_FN___11 = 110, + GP_0_2_FN___11 = 111, + GP_0_3_FN___11 = 112, + GP_0_4_FN___11 = 113, + GP_0_5_FN___11 = 114, + GP_0_6_FN___11 = 115, + GP_0_7_FN___11 = 116, + GP_0_8_FN___11 = 117, + GP_0_9_FN___10 = 118, + GP_0_10_FN___10 = 119, + GP_0_11_FN___10 = 120, + GP_0_12_FN___10 = 121, + GP_0_13_FN___10 = 122, + GP_0_14_FN___10 = 123, + GP_0_15_FN___10 = 124, + GP_0_16_FN___7 = 125, + GP_0_17_FN___7 = 126, + GP_0_18_FN___6 = 127, + GP_0_19_FN___4 = 128, + GP_0_20_FN___4 = 129, + GP_0_21_FN___3 = 130, + GP_1_0_FN___11 = 131, + GP_1_1_FN___11 = 132, + GP_1_2_FN___11 = 133, + GP_1_3_FN___11 = 134, + GP_1_4_FN___11 = 135, + GP_1_5_FN___11 = 136, + GP_1_6_FN___11 = 137, + GP_1_7_FN___11 = 138, + GP_1_8_FN___11 = 139, + GP_1_9_FN___11 = 140, + GP_1_10_FN___11 = 141, + GP_1_11_FN___11 = 142, + GP_1_12_FN___11 = 143, + GP_1_13_FN___11 = 144, + GP_1_14_FN___11 = 145, + GP_1_15_FN___11 = 146, + GP_1_16_FN___11 = 147, + GP_1_17_FN___11 = 148, + GP_1_18_FN___11 = 149, + GP_1_19_FN___11 = 150, + GP_1_20_FN___11 = 151, + GP_1_21_FN___11 = 152, + GP_1_22_FN___11 = 153, + GP_1_23_FN___10 = 154, + GP_1_24_FN___10 = 155, + GP_1_25_FN___9 = 156, + GP_1_26_FN___9 = 157, + GP_1_27_FN___9 = 158, + GP_2_0_FN___11 = 159, + GP_2_1_FN___11 = 160, + GP_2_2_FN___11 = 161, + GP_2_3_FN___11 = 162, + GP_2_4_FN___11 = 163, + GP_2_5_FN___11 = 164, + GP_2_6_FN___11 = 165, + GP_2_7_FN___11 = 166, + GP_2_8_FN___11 = 167, + GP_2_9_FN___11 = 168, + GP_2_10_FN___11 = 169, + GP_2_11_FN___11 = 170, + GP_2_12_FN___11 = 171, + GP_2_13_FN___11 = 172, + GP_2_14_FN___11 = 173, + GP_2_15_FN___8 = 174, + GP_2_16_FN___7 = 175, + GP_3_0_FN___11 = 176, + GP_3_1_FN___11 = 177, + GP_3_2_FN___11 = 178, + GP_3_3_FN___11 = 179, + GP_3_4_FN___11 = 180, + GP_3_5_FN___11 = 181, + GP_3_6_FN___11 = 182, + GP_3_7_FN___11 = 183, + GP_3_8_FN___11 = 184, + GP_3_9_FN___11 = 185, + GP_3_10_FN___10 = 186, + GP_3_11_FN___10 = 187, + GP_3_12_FN___10 = 188, + GP_3_13_FN___10 = 189, + GP_3_14_FN___10 = 190, + GP_3_15_FN___10 = 191, + GP_3_16_FN___6 = 192, + GP_4_0_FN___10 = 193, + GP_4_1_FN___10 = 194, + GP_4_2_FN___10 = 195, + GP_4_3_FN___10 = 196, + GP_4_4_FN___10 = 197, + GP_4_5_FN___10 = 198, + GP_5_0_FN___10 = 199, + GP_5_1_FN___10 = 200, + GP_5_2_FN___10 = 201, + GP_5_3_FN___10 = 202, + GP_5_4_FN___10 = 203, + GP_5_5_FN___10 = 204, + GP_5_6_FN___10 = 205, + GP_5_7_FN___10 = 206, + GP_5_8_FN___10 = 207, + GP_5_9_FN___10 = 208, + GP_5_10_FN___10 = 209, + GP_5_11_FN___10 = 210, + GP_5_12_FN___10 = 211, + GP_5_13_FN___10 = 212, + GP_5_14_FN___10 = 213, + FN_AVB0_AVTP_MATCH___4 = 214, + FN_AVB0_LINK___5 = 215, + FN_AVB0_PHY_INT___5 = 216, + FN_AVB0_MAGIC___5 = 217, + FN_AVB0_MDC___5 = 218, + FN_AVB0_MDIO___5 = 219, + FN_RPC_INT_N___8 = 220, + FN_AVB0_TXCREFCLK___5 = 221, + FN_RPC_WP_N___6 = 222, + FN_AVB0_TD3___5 = 223, + FN_RPC_RESET_N___8 = 224, + FN_AVB0_TD2___5 = 225, + FN_QSPI1_SSL___8 = 226, + FN_AVB0_TD1___5 = 227, + FN_QSPI1_IO3___8 = 228, + FN_AVB0_TD0___5 = 229, + FN_QSPI1_IO2___8 = 230, + FN_AVB0_TXC___5 = 231, + FN_QSPI1_MISO_IO1___8 = 232, + FN_AVB0_TX_CTL___5 = 233, + FN_QSPI1_MOSI_IO0___8 = 234, + FN_AVB0_RD3___5 = 235, + FN_QSPI1_SPCLK___8 = 236, + FN_AVB0_RD2___5 = 237, + FN_QSPI0_SSL___8 = 238, + FN_AVB0_RD1___5 = 239, + FN_QSPI0_IO3___8 = 240, + FN_AVB0_RD0___5 = 241, + FN_QSPI0_IO2___8 = 242, + FN_AVB0_RXC___5 = 243, + FN_QSPI0_MISO_IO1___8 = 244, + FN_AVB0_RX_CTL___5 = 245, + FN_QSPI0_MOSI_IO0___8 = 246, + FN_QSPI0_SPCLK___8 = 247, + FN_IP0_3_0___7 = 248, + FN_DU_DR2___8 = 249, + FN_HSCK0___9 = 250, + FN_A0___7 = 251, + FN_IP1_3_0___7 = 252, + FN_DU_DG4___8 = 253, + FN_A8___7 = 254, + FN_FSO_CFE_0_N_A___3 = 255, + FN_IP2_3_0___7 = 256, + FN_DU_DB6___8 = 257, + FN_A16___7 = 258, + FN_FXR_TXENB_N___3 = 259, + FN_IP3_3_0___7 = 260, + FN_VI0_CLKENB___2 = 261, + FN_MSIOF2_RXD___7 = 262, + FN_RX3___4 = 263, + FN_RD_WR_N___7 = 264, + FN_HCTS3_N___8 = 265, + FN_IP0_7_4___7 = 266, + FN_DU_DR3___8 = 267, + FN_HRTS0_N___9 = 268, + FN_A1___7 = 269, + FN_IP1_7_4___7 = 270, + FN_DU_DG5___8 = 271, + FN_A9___7 = 272, + FN_FSO_CFE_1_N_A___3 = 273, + FN_IP2_7_4___7 = 274, + FN_DU_DB7___8 = 275, + FN_A17___7 = 276, + FN_IP3_7_4___7 = 277, + FN_VI0_HSYNC_N___2 = 278, + FN_MSIOF2_TXD___7 = 279, + FN_TX3___4 = 280, + FN_HRTS3_N___8 = 281, + FN_IP0_11_8___7 = 282, + FN_DU_DR4___8 = 283, + FN_HCTS0_N___9 = 284, + FN_A2___7 = 285, + FN_IP1_11_8___7 = 286, + FN_DU_DG6___8 = 287, + FN_A10___7 = 288, + FN_FSO_TOE_N_A___3 = 289, + FN_IP2_11_8___7 = 290, + FN_DU_DOTCLKOUT___3 = 291, + FN_SCIF_CLK_A___6 = 292, + FN_A18___7 = 293, + FN_IP3_11_8___7 = 294, + FN_VI0_VSYNC_N___2 = 295, + FN_MSIOF2_SYNC___6 = 296, + FN_CTS3_N___7 = 297, + FN_HTX3___4 = 298, + FN_IP0_15_12___7 = 299, + FN_DU_DR5___8 = 300, + FN_HTX0___9 = 301, + FN_A3___7 = 302, + FN_IP1_15_12___7 = 303, + FN_DU_DG7___8 = 304, + FN_A11___7 = 305, + FN_IRQ1___8 = 306, + FN_IP2_15_12___7 = 307, + FN_DU_EXHSYNC_DU_HSYNC___5 = 308, + FN_HRX0___9 = 309, + FN_A19___7 = 310, + FN_IRQ3___8 = 311, + FN_IP3_15_12___7 = 312, + FN_VI0_DATA0___2 = 313, + FN_MSIOF2_SS1___7 = 314, + FN_RTS3_N___7 = 315, + FN_HRX3___4 = 316, + FN_IP0_19_16___7 = 317, + FN_DU_DR6___8 = 318, + FN_MSIOF3_RXD___6 = 319, + FN_A4___7 = 320, + FN_IP1_19_16___7 = 321, + FN_DU_DB2___8 = 322, + FN_A12___7 = 323, + FN_IRQ2___8 = 324, + FN_IP2_19_16___7 = 325, + FN_DU_EXVSYNC_DU_VSYNC___5 = 326, + FN_MSIOF3_SCK___6 = 327, + FN_IP3_19_16___7 = 328, + FN_VI0_DATA1___2 = 329, + FN_MSIOF2_SS2___7 = 330, + FN_SCK1___8 = 331, + FN_SPEEDIN_A___6 = 332, + FN_IP0_23_20___7 = 333, + FN_DU_DR7___8 = 334, + FN_MSIOF3_TXD___6 = 335, + FN_A5___7 = 336, + FN_IP1_23_20___7 = 337, + FN_DU_DB3___8 = 338, + FN_A13___7 = 339, + FN_FXR_CLKOUT1___2 = 340, + FN_IP2_23_20___7 = 341, + FN_DU_EXODDF_DU_ODDF_DISP_CDE___5 = 342, + FN_MSIOF3_SYNC___6 = 343, + FN_IP3_23_20___7 = 344, + FN_VI0_DATA2___2 = 345, + FN_AVB0_AVTP_PPS___4 = 346, + FN_SDA3_A___2 = 347, + FN_IP0_27_24___7 = 348, + FN_DU_DG2___8 = 349, + FN_MSIOF3_SS1___6 = 350, + FN_A6___7 = 351, + FN_IP1_27_24___7 = 352, + FN_DU_DB4___8 = 353, + FN_A14___7 = 354, + FN_FXR_CLKOUT2___2 = 355, + FN_IP2_27_24___7 = 356, + FN_IRQ0___8 = 357, + FN_IP3_27_24___7 = 358, + FN_VI0_DATA3___2 = 359, + FN_HSCK1___4 = 360, + FN_SCL3_A___2 = 361, + FN_IP0_31_28___7 = 362, + FN_DU_DG3___8 = 363, + FN_MSIOF3_SS2___6 = 364, + FN_A7___7 = 365, + FN_PWMFSW0___2 = 366, + FN_IP1_31_28___7 = 367, + FN_DU_DB5___8 = 368, + FN_A15___7 = 369, + FN_FXR_TXENA_N___3 = 370, + FN_IP2_31_28___7 = 371, + FN_VI0_CLK___2 = 372, + FN_MSIOF2_SCK___7 = 373, + FN_SCK3___7 = 374, + FN_HSCK3___7 = 375, + FN_IP3_31_28___7 = 376, + FN_VI0_DATA4___2 = 377, + FN_HRTS1_N___4 = 378, + FN_RX1_A___9 = 379, + FN_IP4_3_0___7 = 380, + FN_VI0_DATA5___2 = 381, + FN_HCTS1_N___4 = 382, + FN_TX1_A___9 = 383, + FN_IP5_3_0___7 = 384, + FN_VI1_CLK___2 = 385, + FN_MSIOF1_RXD___8 = 386, + FN_CS0_N___7 = 387, + FN_IP6_3_0___7 = 388, + FN_VI1_DATA4___2 = 389, + FN_CANFD_CLK_B___2 = 390, + FN_D7___7 = 391, + FN_MMC_D2___3 = 392, + FN_IP7_3_0___7 = 393, + FN_VI1_FIELD___2 = 394, + FN_SDA4___4 = 395, + FN_IRQ5___10 = 396, + FN_D15___7 = 397, + FN_IP4_7_4___7 = 398, + FN_VI0_DATA6___2 = 399, + FN_HTX1___4 = 400, + FN_CTS1_N___9 = 401, + FN_IP5_7_4___7 = 402, + FN_VI1_CLKENB___2 = 403, + FN_MSIOF1_TXD___8 = 404, + FN_D0___7 = 405, + FN_IP6_7_4___7 = 406, + FN_VI1_DATA5___2 = 407, + FN_SCK4___6 = 408, + FN_D8___7 = 409, + FN_MMC_D3___3 = 410, + FN_IP7_7_4___7 = 411, + FN_SCL0___5 = 412, + FN_DU_DR0___7 = 413, + FN_TPU0TO0___7 = 414, + FN_CLKOUT___7 = 415, + FN_MSIOF0_RXD___11 = 416, + FN_IP4_11_8___7 = 417, + FN_VI0_DATA7___2 = 418, + FN_HRX1___4 = 419, + FN_RTS1_N___9 = 420, + FN_IP5_11_8___7 = 421, + FN_VI1_HSYNC_N___2 = 422, + FN_MSIOF1_SCK___8 = 423, + FN_D1___7 = 424, + FN_IP6_11_8___7 = 425, + FN_VI1_DATA6___2 = 426, + FN_RX4___6 = 427, + FN_D9___7 = 428, + FN_MMC_CLK___3 = 429, + FN_IP7_11_8___7 = 430, + FN_SDA0___5 = 431, + FN_DU_DR1___7 = 432, + FN_TPU0TO1___7 = 433, + FN_BS_N___7 = 434, + FN_SCK0___9 = 435, + FN_MSIOF0_TXD___11 = 436, + FN_IP4_15_12___7 = 437, + FN_VI0_DATA8___2 = 438, + FN_HSCK2___6 = 439, + FN_PWM0_A___5 = 440, + FN_A22___2 = 441, + FN_IP5_15_12___7 = 442, + FN_VI1_VSYNC_N___2 = 443, + FN_MSIOF1_SYNC___8 = 444, + FN_D2___7 = 445, + FN_IP6_15_12___7 = 446, + FN_VI1_DATA7___2 = 447, + FN_TX4___6 = 448, + FN_D10___7 = 449, + FN_MMC_D4___7 = 450, + FN_IP7_15_12___4 = 451, + FN_SCL1___5 = 452, + FN_DU_DG0___7 = 453, + FN_TPU0TO2___7 = 454, + FN_RD_N___7 = 455, + FN_CTS0_N___10 = 456, + FN_MSIOF0_SCK___11 = 457, + FN_IP4_19_16___7 = 458, + FN_VI0_DATA9___2 = 459, + FN_HCTS2_N___6 = 460, + FN_PWM1_A___9 = 461, + FN_A23___2 = 462, + FN_FSO_CFE_0_N_B___3 = 463, + FN_IP5_19_16___7 = 464, + FN_VI1_DATA0___2 = 465, + FN_MSIOF1_SS1___8 = 466, + FN_D3___7 = 467, + FN_IP6_19_16___7 = 468, + FN_VI1_DATA8___2 = 469, + FN_CTS4_N___6 = 470, + FN_D11___7 = 471, + FN_MMC_D5___7 = 472, + FN_IP7_19_16___7 = 473, + FN_SDA1___5 = 474, + FN_DU_DG1___7 = 475, + FN_TPU0TO3___7 = 476, + FN_WE0_N___7 = 477, + FN_RTS0_N___10 = 478, + FN_MSIOF0_SYNC___11 = 479, + FN_IP4_23_20___7 = 480, + FN_VI0_DATA10___2 = 481, + FN_HRTS2_N___6 = 482, + FN_PWM2_A___8 = 483, + FN_A24___2 = 484, + FN_FSO_CFE_1_N_B___3 = 485, + FN_IP5_23_20___7 = 486, + FN_VI1_DATA1___2 = 487, + FN_MSIOF1_SS2___8 = 488, + FN_D4___7 = 489, + FN_MMC_CMD___3 = 490, + FN_IP6_23_20___7 = 491, + FN_VI1_DATA9___2 = 492, + FN_RTS4_N___6 = 493, + FN_D12___7 = 494, + FN_MMC_D6___7 = 495, + FN_SCL3_B___2 = 496, + FN_IP7_23_20___7 = 497, + FN_SCL2___4 = 498, + FN_DU_DB0___7 = 499, + FN_TCLK1_A___10 = 500, + FN_WE1_N___7 = 501, + FN_RX0___9 = 502, + FN_MSIOF0_SS1___11 = 503, + FN_IP4_27_24___7 = 504, + FN_VI0_DATA11___2 = 505, + FN_HTX2___6 = 506, + FN_PWM3_A___9 = 507, + FN_A25___2 = 508, + FN_FSO_TOE_N_B___3 = 509, + FN_IP5_27_24___7 = 510, + FN_VI1_DATA2___2 = 511, + FN_CANFD0_TX_B___5 = 512, + FN_D5___7 = 513, + FN_MMC_D0___3 = 514, + FN_IP6_27_24___7 = 515, + FN_VI1_DATA10___2 = 516, + FN_D13___7 = 517, + FN_MMC_D7___7 = 518, + FN_SDA3_B___2 = 519, + FN_IP7_27_24___7 = 520, + FN_SDA2___4 = 521, + FN_DU_DB1___7 = 522, + FN_TCLK2_A___10 = 523, + FN_EX_WAIT0___4 = 524, + FN_TX0___9 = 525, + FN_MSIOF0_SS2___11 = 526, + FN_IP4_31_28___7 = 527, + FN_VI0_FIELD___2 = 528, + FN_HRX2___6 = 529, + FN_PWM4_A___6 = 530, + FN_CS1_N___5 = 531, + FN_FSCLKST2_N_A___4 = 532, + FN_IP5_31_28___7 = 533, + FN_VI1_DATA3___2 = 534, + FN_CANFD0_RX_B___5 = 535, + FN_D6___7 = 536, + FN_MMC_D1___3 = 537, + FN_IP6_31_28___7 = 538, + FN_VI1_DATA11___2 = 539, + FN_SCL4___4 = 540, + FN_IRQ4___8 = 541, + FN_D14___7 = 542, + FN_IP7_31_28___7 = 543, + FN_AVB0_AVTP_CAPTURE___4 = 544, + FN_FSCLKST2_N_B___4 = 545, + FN_IP8_3_0___7 = 546, + FN_CANFD0_TX_A___5 = 547, + FN_FXR_TXDA___4 = 548, + FN_PWM0_B___5 = 549, + FN_DU_DISP___7 = 550, + FN_FSCLKST2_N_C = 551, + FN_IP8_7_4___7 = 552, + FN_CANFD0_RX_A___5 = 553, + FN_RXDA_EXTFXR___4 = 554, + FN_PWM1_B___9 = 555, + FN_DU_CDE___7 = 556, + FN_IP8_11_8___7 = 557, + FN_CANFD1_TX___10 = 558, + FN_FXR_TXDB___5 = 559, + FN_PWM2_B___8 = 560, + FN_TCLK1_B___10 = 561, + FN_TX1_B___9 = 562, + FN_IP8_15_12___7 = 563, + FN_CANFD1_RX___10 = 564, + FN_RXDB_EXTFXR___5 = 565, + FN_PWM3_B___9 = 566, + FN_TCLK2_B___10 = 567, + FN_RX1_B___9 = 568, + FN_IP8_19_16___7 = 569, + FN_CANFD_CLK_A___2 = 570, + FN_CLK_EXTFXR___5 = 571, + FN_PWM4_B___6 = 572, + FN_SPEEDIN_B___6 = 573, + FN_SCIF_CLK_B___6 = 574, + FN_IP8_23_20___7 = 575, + FN_DIGRF_CLKIN___2 = 576, + FN_DIGRF_CLKEN_IN___2 = 577, + FN_IP8_27_24___7 = 578, + FN_DIGRF_CLKOUT___2 = 579, + FN_DIGRF_CLKEN_OUT___2 = 580, + FN_SEL_I2C3_0___4 = 581, + FN_SEL_I2C3_1___2 = 582, + FN_SEL_HSCIF0_0___3 = 583, + FN_SEL_HSCIF0_1___3 = 584, + FN_SEL_SCIF1_0___6 = 585, + FN_SEL_SCIF1_1___6 = 586, + FN_SEL_CANFD0_0___5 = 587, + FN_SEL_CANFD0_1___5 = 588, + FN_SEL_PWM4_0___6 = 589, + FN_SEL_PWM4_1___6 = 590, + FN_SEL_PWM3_0___7 = 591, + FN_SEL_PWM3_1___7 = 592, + FN_SEL_PWM2_0___7 = 593, + FN_SEL_PWM2_1___7 = 594, + FN_SEL_PWM1_0___7 = 595, + FN_SEL_PWM1_1___7 = 596, + FN_SEL_PWM0_0___4 = 597, + FN_SEL_PWM0_1___4 = 598, + FN_SEL_RFSO_0___2 = 599, + FN_SEL_RFSO_1___2 = 600, + FN_SEL_RSP_0___2 = 601, + FN_SEL_RSP_1___2 = 602, + FN_SEL_TMU_0___2 = 603, + FN_SEL_TMU_1___2 = 604, + PINMUX_FUNCTION_END___11 = 605, + PINMUX_MARK_BEGIN___11 = 606, + AVB0_AVTP_MATCH_MARK___4 = 607, + AVB0_LINK_MARK___5 = 608, + AVB0_PHY_INT_MARK___5 = 609, + AVB0_MAGIC_MARK___5 = 610, + AVB0_MDC_MARK___5 = 611, + AVB0_MDIO_MARK___5 = 612, + RPC_INT_N_MARK___8 = 613, + AVB0_TXCREFCLK_MARK___5 = 614, + RPC_WP_N_MARK___6 = 615, + AVB0_TD3_MARK___5 = 616, + RPC_RESET_N_MARK___8 = 617, + AVB0_TD2_MARK___5 = 618, + QSPI1_SSL_MARK___11 = 619, + AVB0_TD1_MARK___5 = 620, + QSPI1_IO3_MARK___11 = 621, + AVB0_TD0_MARK___5 = 622, + QSPI1_IO2_MARK___11 = 623, + AVB0_TXC_MARK___5 = 624, + QSPI1_MISO_IO1_MARK___11 = 625, + AVB0_TX_CTL_MARK___5 = 626, + QSPI1_MOSI_IO0_MARK___11 = 627, + AVB0_RD3_MARK___5 = 628, + QSPI1_SPCLK_MARK___11 = 629, + AVB0_RD2_MARK___5 = 630, + QSPI0_SSL_MARK___11 = 631, + AVB0_RD1_MARK___5 = 632, + QSPI0_IO3_MARK___11 = 633, + AVB0_RD0_MARK___5 = 634, + QSPI0_IO2_MARK___11 = 635, + AVB0_RXC_MARK___5 = 636, + QSPI0_MISO_IO1_MARK___11 = 637, + AVB0_RX_CTL_MARK___5 = 638, + QSPI0_MOSI_IO0_MARK___11 = 639, + QSPI0_SPCLK_MARK___11 = 640, + IP0_3_0_MARK___7 = 641, + DU_DR2_MARK___8 = 642, + HSCK0_MARK___9 = 643, + A0_MARK___7 = 644, + IP1_3_0_MARK___7 = 645, + DU_DG4_MARK___8 = 646, + A8_MARK___7 = 647, + FSO_CFE_0_N_A_MARK___3 = 648, + IP2_3_0_MARK___7 = 649, + DU_DB6_MARK___8 = 650, + A16_MARK___7 = 651, + FXR_TXENB_N_MARK___3 = 652, + IP3_3_0_MARK___7 = 653, + VI0_CLKENB_MARK___2 = 654, + MSIOF2_RXD_MARK___7 = 655, + RX3_MARK___4 = 656, + RD_WR_N_MARK___7 = 657, + HCTS3_N_MARK___8 = 658, + IP0_7_4_MARK___7 = 659, + DU_DR3_MARK___8 = 660, + HRTS0_N_MARK___9 = 661, + A1_MARK___7 = 662, + IP1_7_4_MARK___7 = 663, + DU_DG5_MARK___8 = 664, + A9_MARK___7 = 665, + FSO_CFE_1_N_A_MARK___3 = 666, + IP2_7_4_MARK___7 = 667, + DU_DB7_MARK___8 = 668, + A17_MARK___7 = 669, + IP3_7_4_MARK___7 = 670, + VI0_HSYNC_N_MARK___2 = 671, + MSIOF2_TXD_MARK___7 = 672, + TX3_MARK___4 = 673, + HRTS3_N_MARK___8 = 674, + IP0_11_8_MARK___7 = 675, + DU_DR4_MARK___8 = 676, + HCTS0_N_MARK___9 = 677, + A2_MARK___7 = 678, + IP1_11_8_MARK___7 = 679, + DU_DG6_MARK___8 = 680, + A10_MARK___7 = 681, + FSO_TOE_N_A_MARK___3 = 682, + IP2_11_8_MARK___7 = 683, + DU_DOTCLKOUT_MARK___3 = 684, + SCIF_CLK_A_MARK___6 = 685, + A18_MARK___7 = 686, + IP3_11_8_MARK___7 = 687, + VI0_VSYNC_N_MARK___2 = 688, + MSIOF2_SYNC_MARK___6 = 689, + CTS3_N_MARK___7 = 690, + HTX3_MARK___4 = 691, + IP0_15_12_MARK___7 = 692, + DU_DR5_MARK___8 = 693, + HTX0_MARK___9 = 694, + A3_MARK___7 = 695, + IP1_15_12_MARK___7 = 696, + DU_DG7_MARK___8 = 697, + A11_MARK___7 = 698, + IRQ1_MARK___8 = 699, + IP2_15_12_MARK___7 = 700, + DU_EXHSYNC_DU_HSYNC_MARK___5 = 701, + HRX0_MARK___9 = 702, + A19_MARK___7 = 703, + IRQ3_MARK___8 = 704, + IP3_15_12_MARK___7 = 705, + VI0_DATA0_MARK___2 = 706, + MSIOF2_SS1_MARK___7 = 707, + RTS3_N_MARK___7 = 708, + HRX3_MARK___4 = 709, + IP0_19_16_MARK___7 = 710, + DU_DR6_MARK___8 = 711, + MSIOF3_RXD_MARK___6 = 712, + A4_MARK___7 = 713, + IP1_19_16_MARK___7 = 714, + DU_DB2_MARK___8 = 715, + A12_MARK___7 = 716, + IRQ2_MARK___8 = 717, + IP2_19_16_MARK___7 = 718, + DU_EXVSYNC_DU_VSYNC_MARK___5 = 719, + MSIOF3_SCK_MARK___6 = 720, + IP3_19_16_MARK___7 = 721, + VI0_DATA1_MARK___2 = 722, + MSIOF2_SS2_MARK___7 = 723, + SCK1_MARK___8 = 724, + SPEEDIN_A_MARK___6 = 725, + IP0_23_20_MARK___7 = 726, + DU_DR7_MARK___8 = 727, + MSIOF3_TXD_MARK___6 = 728, + A5_MARK___7 = 729, + IP1_23_20_MARK___7 = 730, + DU_DB3_MARK___8 = 731, + A13_MARK___7 = 732, + FXR_CLKOUT1_MARK___2 = 733, + IP2_23_20_MARK___7 = 734, + DU_EXODDF_DU_ODDF_DISP_CDE_MARK___5 = 735, + MSIOF3_SYNC_MARK___6 = 736, + IP3_23_20_MARK___7 = 737, + VI0_DATA2_MARK___2 = 738, + AVB0_AVTP_PPS_MARK___4 = 739, + SDA3_A_MARK___2 = 740, + IP0_27_24_MARK___7 = 741, + DU_DG2_MARK___8 = 742, + MSIOF3_SS1_MARK___6 = 743, + A6_MARK___7 = 744, + IP1_27_24_MARK___7 = 745, + DU_DB4_MARK___8 = 746, + A14_MARK___7 = 747, + FXR_CLKOUT2_MARK___2 = 748, + IP2_27_24_MARK___7 = 749, + IRQ0_MARK___8 = 750, + IP3_27_24_MARK___7 = 751, + VI0_DATA3_MARK___2 = 752, + HSCK1_MARK___4 = 753, + SCL3_A_MARK___2 = 754, + IP0_31_28_MARK___7 = 755, + DU_DG3_MARK___8 = 756, + MSIOF3_SS2_MARK___6 = 757, + A7_MARK___7 = 758, + PWMFSW0_MARK___2 = 759, + IP1_31_28_MARK___7 = 760, + DU_DB5_MARK___8 = 761, + A15_MARK___7 = 762, + FXR_TXENA_N_MARK___3 = 763, + IP2_31_28_MARK___7 = 764, + VI0_CLK_MARK___2 = 765, + MSIOF2_SCK_MARK___7 = 766, + SCK3_MARK___7 = 767, + HSCK3_MARK___7 = 768, + IP3_31_28_MARK___7 = 769, + VI0_DATA4_MARK___2 = 770, + HRTS1_N_MARK___4 = 771, + RX1_A_MARK___9 = 772, + IP4_3_0_MARK___7 = 773, + VI0_DATA5_MARK___2 = 774, + HCTS1_N_MARK___4 = 775, + TX1_A_MARK___9 = 776, + IP5_3_0_MARK___7 = 777, + VI1_CLK_MARK___2 = 778, + MSIOF1_RXD_MARK___8 = 779, + CS0_N_MARK___7 = 780, + IP6_3_0_MARK___7 = 781, + VI1_DATA4_MARK___2 = 782, + CANFD_CLK_B_MARK___2 = 783, + D7_MARK___7 = 784, + MMC_D2_MARK___3 = 785, + IP7_3_0_MARK___7 = 786, + VI1_FIELD_MARK___2 = 787, + SDA4_MARK___6 = 788, + IRQ5_MARK___10 = 789, + D15_MARK___7 = 790, + IP4_7_4_MARK___7 = 791, + VI0_DATA6_MARK___2 = 792, + HTX1_MARK___4 = 793, + CTS1_N_MARK___9 = 794, + IP5_7_4_MARK___7 = 795, + VI1_CLKENB_MARK___2 = 796, + MSIOF1_TXD_MARK___8 = 797, + D0_MARK___7 = 798, + IP6_7_4_MARK___7 = 799, + VI1_DATA5_MARK___2 = 800, + SCK4_MARK___6 = 801, + D8_MARK___7 = 802, + MMC_D3_MARK___3 = 803, + IP7_7_4_MARK___7 = 804, + SCL0_MARK___10 = 805, + DU_DR0_MARK___7 = 806, + TPU0TO0_MARK___7 = 807, + CLKOUT_MARK___7 = 808, + MSIOF0_RXD_MARK___11 = 809, + IP4_11_8_MARK___7 = 810, + VI0_DATA7_MARK___2 = 811, + HRX1_MARK___4 = 812, + RTS1_N_MARK___9 = 813, + IP5_11_8_MARK___7 = 814, + VI1_HSYNC_N_MARK___2 = 815, + MSIOF1_SCK_MARK___8 = 816, + D1_MARK___7 = 817, + IP6_11_8_MARK___7 = 818, + VI1_DATA6_MARK___2 = 819, + RX4_MARK___6 = 820, + D9_MARK___7 = 821, + MMC_CLK_MARK___3 = 822, + IP7_11_8_MARK___7 = 823, + SDA0_MARK___10 = 824, + DU_DR1_MARK___7 = 825, + TPU0TO1_MARK___7 = 826, + BS_N_MARK___7 = 827, + SCK0_MARK___9 = 828, + MSIOF0_TXD_MARK___11 = 829, + IP4_15_12_MARK___7 = 830, + VI0_DATA8_MARK___2 = 831, + HSCK2_MARK___6 = 832, + PWM0_A_MARK___5 = 833, + A22_MARK___2 = 834, + IP5_15_12_MARK___7 = 835, + VI1_VSYNC_N_MARK___2 = 836, + MSIOF1_SYNC_MARK___8 = 837, + D2_MARK___7 = 838, + IP6_15_12_MARK___7 = 839, + VI1_DATA7_MARK___2 = 840, + TX4_MARK___6 = 841, + D10_MARK___7 = 842, + MMC_D4_MARK___7 = 843, + IP7_15_12_MARK___4 = 844, + SCL1_MARK___7 = 845, + DU_DG0_MARK___7 = 846, + TPU0TO2_MARK___7 = 847, + RD_N_MARK___7 = 848, + CTS0_N_MARK___10 = 849, + MSIOF0_SCK_MARK___11 = 850, + IP4_19_16_MARK___7 = 851, + VI0_DATA9_MARK___2 = 852, + HCTS2_N_MARK___6 = 853, + PWM1_A_MARK___9 = 854, + A23_MARK___2 = 855, + FSO_CFE_0_N_B_MARK___3 = 856, + IP5_19_16_MARK___7 = 857, + VI1_DATA0_MARK___2 = 858, + MSIOF1_SS1_MARK___8 = 859, + D3_MARK___7 = 860, + IP6_19_16_MARK___7 = 861, + VI1_DATA8_MARK___2 = 862, + CTS4_N_MARK___6 = 863, + D11_MARK___7 = 864, + MMC_D5_MARK___7 = 865, + IP7_19_16_MARK___7 = 866, + SDA1_MARK___7 = 867, + DU_DG1_MARK___7 = 868, + TPU0TO3_MARK___7 = 869, + WE0_N_MARK___7 = 870, + RTS0_N_MARK___10 = 871, + MSIOF0_SYNC_MARK___11 = 872, + IP4_23_20_MARK___7 = 873, + VI0_DATA10_MARK___2 = 874, + HRTS2_N_MARK___6 = 875, + PWM2_A_MARK___8 = 876, + A24_MARK___2 = 877, + FSO_CFE_1_N_B_MARK___3 = 878, + IP5_23_20_MARK___7 = 879, + VI1_DATA1_MARK___2 = 880, + MSIOF1_SS2_MARK___8 = 881, + D4_MARK___7 = 882, + MMC_CMD_MARK___3 = 883, + IP6_23_20_MARK___7 = 884, + VI1_DATA9_MARK___2 = 885, + RTS4_N_MARK___6 = 886, + D12_MARK___7 = 887, + MMC_D6_MARK___7 = 888, + SCL3_B_MARK___2 = 889, + IP7_23_20_MARK___7 = 890, + SCL2_MARK___6 = 891, + DU_DB0_MARK___7 = 892, + TCLK1_A_MARK___10 = 893, + WE1_N_MARK___7 = 894, + RX0_MARK___9 = 895, + MSIOF0_SS1_MARK___11 = 896, + IP4_27_24_MARK___7 = 897, + VI0_DATA11_MARK___2 = 898, + HTX2_MARK___6 = 899, + PWM3_A_MARK___9 = 900, + A25_MARK___2 = 901, + FSO_TOE_N_B_MARK___3 = 902, + IP5_27_24_MARK___7 = 903, + VI1_DATA2_MARK___2 = 904, + CANFD0_TX_B_MARK___5 = 905, + D5_MARK___7 = 906, + MMC_D0_MARK___3 = 907, + IP6_27_24_MARK___7 = 908, + VI1_DATA10_MARK___2 = 909, + D13_MARK___7 = 910, + MMC_D7_MARK___7 = 911, + SDA3_B_MARK___2 = 912, + IP7_27_24_MARK___7 = 913, + SDA2_MARK___6 = 914, + DU_DB1_MARK___7 = 915, + TCLK2_A_MARK___10 = 916, + EX_WAIT0_MARK___4 = 917, + TX0_MARK___9 = 918, + MSIOF0_SS2_MARK___11 = 919, + IP4_31_28_MARK___7 = 920, + VI0_FIELD_MARK___2 = 921, + HRX2_MARK___6 = 922, + PWM4_A_MARK___6 = 923, + CS1_N_MARK___5 = 924, + FSCLKST2_N_A_MARK___4 = 925, + IP5_31_28_MARK___7 = 926, + VI1_DATA3_MARK___2 = 927, + CANFD0_RX_B_MARK___5 = 928, + D6_MARK___7 = 929, + MMC_D1_MARK___3 = 930, + IP6_31_28_MARK___7 = 931, + VI1_DATA11_MARK___2 = 932, + SCL4_MARK___6 = 933, + IRQ4_MARK___8 = 934, + D14_MARK___7 = 935, + IP7_31_28_MARK___7 = 936, + AVB0_AVTP_CAPTURE_MARK___4 = 937, + FSCLKST2_N_B_MARK___4 = 938, + IP8_3_0_MARK___7 = 939, + CANFD0_TX_A_MARK___5 = 940, + FXR_TXDA_MARK___4 = 941, + PWM0_B_MARK___5 = 942, + DU_DISP_MARK___7 = 943, + FSCLKST2_N_C_MARK = 944, + IP8_7_4_MARK___7 = 945, + CANFD0_RX_A_MARK___5 = 946, + RXDA_EXTFXR_MARK___4 = 947, + PWM1_B_MARK___9 = 948, + DU_CDE_MARK___7 = 949, + IP8_11_8_MARK___7 = 950, + CANFD1_TX_MARK___10 = 951, + FXR_TXDB_MARK___5 = 952, + PWM2_B_MARK___8 = 953, + TCLK1_B_MARK___10 = 954, + TX1_B_MARK___9 = 955, + IP8_15_12_MARK___7 = 956, + CANFD1_RX_MARK___10 = 957, + RXDB_EXTFXR_MARK___5 = 958, + PWM3_B_MARK___9 = 959, + TCLK2_B_MARK___10 = 960, + RX1_B_MARK___9 = 961, + IP8_19_16_MARK___7 = 962, + CANFD_CLK_A_MARK___2 = 963, + CLK_EXTFXR_MARK___5 = 964, + PWM4_B_MARK___6 = 965, + SPEEDIN_B_MARK___6 = 966, + SCIF_CLK_B_MARK___6 = 967, + IP8_23_20_MARK___7 = 968, + DIGRF_CLKIN_MARK___2 = 969, + DIGRF_CLKEN_IN_MARK___2 = 970, + IP8_27_24_MARK___7 = 971, + DIGRF_CLKOUT_MARK___2 = 972, + DIGRF_CLKEN_OUT_MARK___2 = 973, + SEL_I2C3_0_MARK___4 = 974, + SEL_I2C3_1_MARK___2 = 975, + SEL_HSCIF0_0_MARK___3 = 976, + SEL_HSCIF0_1_MARK___3 = 977, + SEL_SCIF1_0_MARK___6 = 978, + SEL_SCIF1_1_MARK___6 = 979, + SEL_CANFD0_0_MARK___5 = 980, + SEL_CANFD0_1_MARK___5 = 981, + SEL_PWM4_0_MARK___6 = 982, + SEL_PWM4_1_MARK___6 = 983, + SEL_PWM3_0_MARK___7 = 984, + SEL_PWM3_1_MARK___7 = 985, + SEL_PWM2_0_MARK___7 = 986, + SEL_PWM2_1_MARK___7 = 987, + SEL_PWM1_0_MARK___7 = 988, + SEL_PWM1_1_MARK___7 = 989, + SEL_PWM0_0_MARK___4 = 990, + SEL_PWM0_1_MARK___4 = 991, + SEL_RFSO_0_MARK___2 = 992, + SEL_RFSO_1_MARK___2 = 993, + SEL_RSP_0_MARK___2 = 994, + SEL_RSP_1_MARK___2 = 995, + SEL_TMU_0_MARK___2 = 996, + SEL_TMU_1_MARK___2 = 997, + PINMUX_MARK_END___11 = 998, +}; + +enum { + PINMUX_TYPE_NONE = 0, + PINMUX_TYPE_FUNCTION = 1, + PINMUX_TYPE_GPIO = 2, + PINMUX_TYPE_OUTPUT = 3, + PINMUX_TYPE_INPUT = 4, +}; + +enum { + PL08X_AHB1 = 1, + PL08X_AHB2 = 2, +}; + +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, +}; + +enum { + PLL_OFF_L_VAL = 0, + PLL_OFF_CAL_L_VAL = 1, + PLL_OFF_ALPHA_VAL = 2, + PLL_OFF_ALPHA_VAL_U = 3, + PLL_OFF_USER_CTL = 4, + PLL_OFF_USER_CTL_U = 5, + PLL_OFF_USER_CTL_U1 = 6, + PLL_OFF_CONFIG_CTL = 7, + PLL_OFF_CONFIG_CTL_U = 8, + PLL_OFF_CONFIG_CTL_U1 = 9, + PLL_OFF_CONFIG_CTL_U2 = 10, + PLL_OFF_TEST_CTL = 11, + PLL_OFF_TEST_CTL_U = 12, + PLL_OFF_TEST_CTL_U1 = 13, + PLL_OFF_TEST_CTL_U2 = 14, + PLL_OFF_TEST_CTL_U3 = 15, + PLL_OFF_STATE = 16, + PLL_OFF_STATUS = 17, + PLL_OFF_OPMODE = 18, + PLL_OFF_FRAC = 19, + PLL_OFF_CAL_VAL = 20, + PLL_OFF_MAX_REGS = 21, +}; + +enum { + PM8607_IRQ_ONKEY = 0, + PM8607_IRQ_EXTON = 1, + PM8607_IRQ_CHG = 2, + PM8607_IRQ_BAT = 3, + PM8607_IRQ_RTC = 4, + PM8607_IRQ_CC = 5, + PM8607_IRQ_VBAT = 6, + PM8607_IRQ_VCHG = 7, + PM8607_IRQ_VSYS = 8, + PM8607_IRQ_TINT = 9, + PM8607_IRQ_GPADC0 = 10, + PM8607_IRQ_GPADC1 = 11, + PM8607_IRQ_GPADC2 = 12, + PM8607_IRQ_GPADC3 = 13, + PM8607_IRQ_AUDIO_SHORT = 14, + PM8607_IRQ_PEN = 15, + PM8607_IRQ_HEADSET = 16, + PM8607_IRQ_HOOK = 17, + PM8607_IRQ_MICIN = 18, + PM8607_IRQ_CHG_FAIL = 19, + PM8607_IRQ_CHG_DONE = 20, + PM8607_IRQ_CHG_FAULT = 21, +}; + +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_USERSPACE_INITIAL_CONTEXT = 8, + POLICYDB_CAP_NETLINK_XPERM = 9, + __POLICYDB_CAP_MAX = 10, +}; + +enum { + POOL_BITS = 256, + POOL_READY_BITS = 256, + POOL_EARLY_BITS = 128, +}; + +enum { + POWERCAP_FC_CAP = 0, + POWERCAP_FC_PAI = 1, + POWERCAP_FC_MAX = 2, +}; + +enum { + POWERON_SECS = 3, +}; + +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_HEALTH_UNKNOWN = 0, + POWER_SUPPLY_HEALTH_GOOD = 1, + POWER_SUPPLY_HEALTH_OVERHEAT = 2, + POWER_SUPPLY_HEALTH_DEAD = 3, + POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4, + POWER_SUPPLY_HEALTH_UNDERVOLTAGE = 5, + POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 6, + POWER_SUPPLY_HEALTH_COLD = 7, + POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 8, + POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 9, + POWER_SUPPLY_HEALTH_OVERCURRENT = 10, + POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED = 11, + POWER_SUPPLY_HEALTH_WARM = 12, + POWER_SUPPLY_HEALTH_COOL = 13, + POWER_SUPPLY_HEALTH_HOT = 14, + POWER_SUPPLY_HEALTH_NO_BATTERY = 15, +}; + +enum { + POWER_SUPPLY_SCOPE_UNKNOWN = 0, + POWER_SUPPLY_SCOPE_SYSTEM = 1, + POWER_SUPPLY_SCOPE_DEVICE = 2, +}; + +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_TECHNOLOGY_UNKNOWN = 0, + POWER_SUPPLY_TECHNOLOGY_NiMH = 1, + POWER_SUPPLY_TECHNOLOGY_LION = 2, + POWER_SUPPLY_TECHNOLOGY_LIPO = 3, + POWER_SUPPLY_TECHNOLOGY_LiFe = 4, + POWER_SUPPLY_TECHNOLOGY_NiCd = 5, + POWER_SUPPLY_TECHNOLOGY_LiMn = 6, +}; + +enum { + PREFIX_UNSPEC = 0, + PREFIX_ADDRESS = 1, + PREFIX_CACHEINFO = 2, + __PREFIX_MAX = 3, +}; + +enum { + PROC_ENTRY_PERMANENT = 1, + PROC_ENTRY_proc_read_iter = 2, + PROC_ENTRY_proc_compat_ioctl = 4, +}; + +enum { + PROC_ROOT_INO = 1, + PROC_IPC_INIT_INO = 4026531839, + PROC_UTS_INIT_INO = 4026531838, + PROC_USER_INIT_INO = 4026531837, + PROC_PID_INIT_INO = 4026531836, + PROC_CGROUP_INIT_INO = 4026531835, + PROC_TIME_INIT_INO = 4026531834, +}; + +enum { + PWMF_REQUESTED = 0, + PWMF_EXPORTED = 1, +}; + +enum { + PWR_REG11 = 0, + PWR_REG18 = 1, + PWR_USB33 = 2, + STM32PWR_REG_NUM_REGS = 3, +}; + +enum { + P_BI_TCXO = 0, + P_GCC_GPLL0_OUT_EVEN = 1, + P_GCC_GPLL0_OUT_MAIN = 2, + P_GCC_GPLL0_OUT_ODD = 3, + P_GCC_GPLL10_OUT_MAIN = 4, + P_GCC_GPLL4_OUT_MAIN = 5, + P_GCC_GPLL9_OUT_MAIN = 6, + P_PCIE_0_PIPE_CLK = 7, + P_PCIE_1_PIPE_CLK = 8, + P_SLEEP_CLK = 9, + P_UFS_PHY_RX_SYMBOL_0_CLK = 10, + P_UFS_PHY_RX_SYMBOL_1_CLK = 11, + P_UFS_PHY_TX_SYMBOL_0_CLK = 12, + P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK = 13, + P_GCC_MSS_GPLL0_MAIN_DIV_CLK = 14, +}; + +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, +}; + +enum { + QOS_ENABLE = 0, + QOS_CTRL = 1, + NR_QOS_CTRL_PARAMS = 2, +}; + +enum { + QOS_RPPM = 0, + QOS_RLAT = 1, + QOS_WPPM = 2, + QOS_WLAT = 3, + QOS_MIN = 4, + QOS_MAX = 5, + NR_QOS_PARAMS = 6, +}; + +enum { + QUEUE_FLAG_DYING = 0, + QUEUE_FLAG_NOMERGES = 1, + QUEUE_FLAG_SAME_COMP = 2, + QUEUE_FLAG_FAIL_IO = 3, + QUEUE_FLAG_NOXMERGES = 4, + QUEUE_FLAG_SAME_FORCE = 5, + QUEUE_FLAG_INIT_DONE = 6, + QUEUE_FLAG_STATS = 7, + QUEUE_FLAG_REGISTERED = 8, + QUEUE_FLAG_QUIESCED = 9, + QUEUE_FLAG_RQ_ALLOC_TIME = 10, + QUEUE_FLAG_HCTX_ACTIVE = 11, + QUEUE_FLAG_SQ_SCHED = 12, + QUEUE_FLAG_MAX = 13, +}; + +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 { + QUOTA_NL_C_UNSPEC = 0, + QUOTA_NL_C_WARNING = 1, + __QUOTA_NL_C_MAX = 2, +}; + +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, +}; + +enum { + RADIX_TREE_ITER_TAG_MASK = 15, + RADIX_TREE_ITER_TAGGED = 16, + RADIX_TREE_ITER_CONTIG = 32, +}; + +enum { + RB_ADD_STAMP_NONE = 0, + RB_ADD_STAMP_EXTEND = 2, + RB_ADD_STAMP_ABSOLUTE = 4, + RB_ADD_STAMP_FORCE = 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_LEN_TIME_EXTEND = 8, + RB_LEN_TIME_STAMP = 8, +}; + +enum { + RC5T583_DS_NONE = 0, + RC5T583_DS_DC0 = 1, + RC5T583_DS_DC1 = 2, + RC5T583_DS_DC2 = 3, + RC5T583_DS_DC3 = 4, + RC5T583_DS_LDO0 = 5, + RC5T583_DS_LDO1 = 6, + RC5T583_DS_LDO2 = 7, + RC5T583_DS_LDO3 = 8, + RC5T583_DS_LDO4 = 9, + RC5T583_DS_LDO5 = 10, + RC5T583_DS_LDO6 = 11, + RC5T583_DS_LDO7 = 12, + RC5T583_DS_LDO8 = 13, + RC5T583_DS_LDO9 = 14, + RC5T583_DS_PSO0 = 15, + RC5T583_DS_PSO1 = 16, + RC5T583_DS_PSO2 = 17, + RC5T583_DS_PSO3 = 18, + RC5T583_DS_PSO4 = 19, + RC5T583_DS_PSO5 = 20, + RC5T583_DS_PSO6 = 21, + RC5T583_DS_PSO7 = 22, + RC5T583_DS_MAX = 23, +}; + +enum { + RC5T583_EXT_PWRREQ1_CONTROL = 1, + RC5T583_EXT_PWRREQ2_CONTROL = 2, +}; + +enum { + RC5T583_GPIO0 = 0, + RC5T583_GPIO1 = 1, + RC5T583_GPIO2 = 2, + RC5T583_GPIO3 = 3, + RC5T583_GPIO4 = 4, + RC5T583_GPIO5 = 5, + RC5T583_GPIO6 = 6, + RC5T583_GPIO7 = 7, + RC5T583_MAX_GPIO = 8, +}; + +enum { + RC5T583_IRQ_ONKEY = 0, + RC5T583_IRQ_ACOK = 1, + RC5T583_IRQ_LIDOPEN = 2, + RC5T583_IRQ_PREOT = 3, + RC5T583_IRQ_CLKSTP = 4, + RC5T583_IRQ_ONKEY_OFF = 5, + RC5T583_IRQ_WD = 6, + RC5T583_IRQ_EN_PWRREQ1 = 7, + RC5T583_IRQ_EN_PWRREQ2 = 8, + RC5T583_IRQ_PRE_VINDET = 9, + RC5T583_IRQ_DC0LIM = 10, + RC5T583_IRQ_DC1LIM = 11, + RC5T583_IRQ_DC2LIM = 12, + RC5T583_IRQ_DC3LIM = 13, + RC5T583_IRQ_CTC = 14, + RC5T583_IRQ_YALE = 15, + RC5T583_IRQ_DALE = 16, + RC5T583_IRQ_WALE = 17, + RC5T583_IRQ_AIN1L = 18, + RC5T583_IRQ_AIN2L = 19, + RC5T583_IRQ_AIN3L = 20, + RC5T583_IRQ_VBATL = 21, + RC5T583_IRQ_VIN3L = 22, + RC5T583_IRQ_VIN8L = 23, + RC5T583_IRQ_AIN1H = 24, + RC5T583_IRQ_AIN2H = 25, + RC5T583_IRQ_AIN3H = 26, + RC5T583_IRQ_VBATH = 27, + RC5T583_IRQ_VIN3H = 28, + RC5T583_IRQ_VIN8H = 29, + RC5T583_IRQ_ADCEND = 30, + RC5T583_IRQ_GPIO0 = 31, + RC5T583_IRQ_GPIO1 = 32, + RC5T583_IRQ_GPIO2 = 33, + RC5T583_IRQ_GPIO3 = 34, + RC5T583_IRQ_GPIO4 = 35, + RC5T583_IRQ_GPIO5 = 36, + RC5T583_IRQ_GPIO6 = 37, + RC5T583_IRQ_GPIO7 = 38, + RC5T583_MAX_IRQS = 39, +}; + +enum { + RC5T583_REGULATOR_DC0 = 0, + RC5T583_REGULATOR_DC1 = 1, + RC5T583_REGULATOR_DC2 = 2, + RC5T583_REGULATOR_DC3 = 3, + RC5T583_REGULATOR_LDO0 = 4, + RC5T583_REGULATOR_LDO1 = 5, + RC5T583_REGULATOR_LDO2 = 6, + RC5T583_REGULATOR_LDO3 = 7, + RC5T583_REGULATOR_LDO4 = 8, + RC5T583_REGULATOR_LDO5 = 9, + RC5T583_REGULATOR_LDO6 = 10, + RC5T583_REGULATOR_LDO7 = 11, + RC5T583_REGULATOR_LDO8 = 12, + RC5T583_REGULATOR_LDO9 = 13, + RC5T583_REGULATOR_MAX = 14, +}; + +enum { + RCAR_PCI_ACCESS_READ = 0, + RCAR_PCI_ACCESS_WRITE = 1, +}; + +enum { + RCD = 0, + RCH_DP = 1, + DEVICE = 2, + LD = 3, + FMLD = 4, + RP = 5, + DSP = 6, + USP = 7, +}; + +enum { + REASON_BOUNDS = -1, + REASON_TYPE = -2, + REASON_PATHS = -3, + REASON_LIMIT = -4, + REASON_STACK = -5, +}; + +enum { + REGION_INTERSECTS = 0, + REGION_DISJOINT = 1, + REGION_MIXED = 2, +}; + +enum { + REGULATOR_ERROR_CLEARED = 0, + REGULATOR_FAILED_RETRY = 1, + REGULATOR_ERROR_ON = 2, +}; + +enum { + REG_DR = 0, + REG_ST_DMAWM = 1, + REG_ST_TIMEOUT = 2, + REG_FR = 3, + REG_LCRH_RX = 4, + REG_LCRH_TX = 5, + REG_IBRD = 6, + REG_FBRD = 7, + REG_CR = 8, + REG_IFLS = 9, + REG_IMSC = 10, + REG_RIS = 11, + REG_MIS = 12, + REG_ICR = 13, + REG_DMACR = 14, + REG_ST_XFCR = 15, + REG_ST_XON1 = 16, + REG_ST_XON2 = 17, + REG_ST_XOFF1 = 18, + REG_ST_XOFF2 = 19, + REG_ST_ITCR = 20, + REG_ST_ITIP = 21, + REG_ST_ABCR = 22, + REG_ST_ABIMSC = 23, + REG_ARRAY_SIZE = 24, +}; + +enum { + REG_GENL_ATTR_UNSPEC = 0, + REG_GENL_ATTR_EVENT = 1, + __REG_GENL_ATTR_MAX = 2, +}; + +enum { + REG_GENL_CMD_UNSPEC = 0, + REG_GENL_CMD_EVENT = 1, + __REG_GENL_CMD_MAX = 2, +}; + +enum { + REG_IBE = 0, + REG_IEV = 1, + REG_IS = 2, + REG_IE = 3, + REG_DIRECT = 4, +}; + +enum { + REG_INPUT_DATA = 0, + REG_PORT_CONFIG = 1, + REG_PORT_ENABLE = 2, + REG_SIO_CONFIG = 3, + REG_SIO_CLOCK = 4, + REG_INT_POLARITY = 5, + REG_INT_TRIGGER = 6, + REG_INT_ACK = 7, + REG_INT_ENABLE = 8, + REG_INT_IDENT = 9, + MAXREG = 10, +}; + +enum { + REG_RE = 0, + REG_FE = 1, + REG_IE___2 = 2, +}; + +enum { + REQUEST_ANY = 0, + REQUEST_BY_ID = 1, + REQUEST_BY_CAP = 2, + REQUEST_BY_NODE = 3, +}; + +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 { + REQ_F_FIXED_FILE = 1ULL, + REQ_F_IO_DRAIN = 2ULL, + REQ_F_LINK = 4ULL, + REQ_F_HARDLINK = 8ULL, + REQ_F_FORCE_ASYNC = 16ULL, + REQ_F_BUFFER_SELECT = 32ULL, + REQ_F_CQE_SKIP = 64ULL, + REQ_F_FAIL = 256ULL, + REQ_F_INFLIGHT = 512ULL, + REQ_F_CUR_POS = 1024ULL, + REQ_F_NOWAIT = 2048ULL, + REQ_F_LINK_TIMEOUT = 4096ULL, + REQ_F_NEED_CLEANUP = 8192ULL, + REQ_F_POLLED = 16384ULL, + REQ_F_IOPOLL_STATE = 32768ULL, + REQ_F_BUFFER_SELECTED = 65536ULL, + REQ_F_BUFFER_RING = 131072ULL, + REQ_F_REISSUE = 262144ULL, + REQ_F_SUPPORT_NOWAIT = 536870912ULL, + REQ_F_ISREG = 1073741824ULL, + REQ_F_CREDS = 524288ULL, + REQ_F_REFCOUNT = 1048576ULL, + REQ_F_ARM_LTIMEOUT = 2097152ULL, + REQ_F_ASYNC_DATA = 4194304ULL, + REQ_F_SKIP_LINK_CQES = 8388608ULL, + REQ_F_SINGLE_POLL = 16777216ULL, + REQ_F_DOUBLE_POLL = 33554432ULL, + REQ_F_MULTISHOT = 67108864ULL, + REQ_F_APOLL_MULTISHOT = 134217728ULL, + REQ_F_CLEAR_POLLIN = 268435456ULL, + REQ_F_POLL_NO_LAZY = 2147483648ULL, + REQ_F_CAN_POLL = 4294967296ULL, + REQ_F_BL_EMPTY = 8589934592ULL, + REQ_F_BL_NO_RECYCLE = 17179869184ULL, + REQ_F_BUFFERS_COMMIT = 34359738368ULL, + REQ_F_BUF_NODE = 68719476736ULL, + REQ_F_HAS_METADATA = 137438953472ULL, +}; + +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_HYBRID_IOPOLL_STATE_BIT = 15, + REQ_F_BUFFER_SELECTED_BIT = 16, + REQ_F_BUFFER_RING_BIT = 17, + REQ_F_REISSUE_BIT = 18, + REQ_F_CREDS_BIT = 19, + REQ_F_REFCOUNT_BIT = 20, + REQ_F_ARM_LTIMEOUT_BIT = 21, + REQ_F_ASYNC_DATA_BIT = 22, + REQ_F_SKIP_LINK_CQES_BIT = 23, + REQ_F_SINGLE_POLL_BIT = 24, + REQ_F_DOUBLE_POLL_BIT = 25, + REQ_F_MULTISHOT_BIT = 26, + REQ_F_APOLL_MULTISHOT_BIT = 27, + REQ_F_CLEAR_POLLIN_BIT = 28, + REQ_F_SUPPORT_NOWAIT_BIT = 29, + REQ_F_ISREG_BIT = 30, + REQ_F_POLL_NO_LAZY_BIT = 31, + REQ_F_CAN_POLL_BIT = 32, + REQ_F_BL_EMPTY_BIT = 33, + REQ_F_BL_NO_RECYCLE_BIT = 34, + REQ_F_BUFFERS_COMMIT_BIT = 35, + REQ_F_BUF_NODE_BIT = 36, + REQ_F_HAS_METADATA_BIT = 37, + __REQ_F_LAST_BIT = 38, +}; + +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 { + 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 { + RSC_DRV_TCS_OFFSET = 0, + RSC_DRV_CMD_OFFSET = 1, + DRV_SOLVER_CONFIG = 2, + DRV_PRNT_CHLD_CONFIG = 3, + RSC_DRV_IRQ_ENABLE = 4, + RSC_DRV_IRQ_STATUS = 5, + RSC_DRV_IRQ_CLEAR = 6, + RSC_DRV_CMD_WAIT_FOR_CMPL = 7, + RSC_DRV_CONTROL = 8, + RSC_DRV_STATUS = 9, + RSC_DRV_CMD_ENABLE = 10, + RSC_DRV_CMD_MSGID = 11, + RSC_DRV_CMD_ADDR = 12, + RSC_DRV_CMD_DATA = 13, + RSC_DRV_CMD_STATUS = 14, + RSC_DRV_CMD_RESP_DATA = 15, +}; + +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 { + 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_NEWMULTICAST = 56, + RTM_DELMULTICAST = 57, + RTM_GETMULTICAST = 58, + RTM_NEWANYCAST = 60, + RTM_DELANYCAST = 61, + 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 { + 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 { + RWB_DEF_DEPTH = 16, + RWB_WINDOW_NSEC = 100000000, + RWB_MIN_WRITE_SAMPLES = 3, + RWB_UNKNOWN_BUMP = 5, +}; + +enum { + RX_XDP_REDIRECT = 0, + RX_XDP_PASS = 1, + RX_XDP_DROP = 2, + RX_XDP_TX = 3, + RX_XDP_TX_ERRORS = 4, + TX_XDP_XMIT = 5, + TX_XDP_XMIT_ERRORS = 6, + XDP_STATS_TOTAL = 7, +}; + +enum { + Root_NFS = 255, + Root_CIFS = 254, + Root_Generic = 253, + Root_RAM0 = 1048576, +}; + +enum { + S1SA = 0, + S2SA = 1, + SP = 2, + DSA = 3, + CNT = 4, + DP_OCTL = 5, + CLR = 6, + BI = 8, + MBC = 9, + BLTCTL = 10, + HES = 12, + HEB = 13, + HSB = 14, + HT = 15, + VES = 16, + VEB = 17, + VSB = 18, + VT = 19, + HCIV = 20, + VCIV = 21, + TCDR = 22, + VIL = 23, + STGCTL = 24, + SSR = 25, + HRIR = 26, + SPR = 27, + CMR = 28, + SRGCTL = 29, + RRCIV = 30, + RRSC = 31, + RRCR = 34, + GIOE = 32, + GIO = 33, + SCR = 35, + SSTATUS = 36, + PRC = 37, +}; + +enum { + SATA_PHY_CR_CLOCK_CRCMP_LT_LIMIT = 1, + SATA_PHY_CR_CLOCK_DAC_CTL = 8, + SATA_PHY_CR_CLOCK_RTUNE_CTL = 9, + SATA_PHY_CR_CLOCK_ADC_OUT = 10, + SATA_PHY_CR_CLOCK_MPLL_TST = 23, +}; + +enum { + SB_UNFROZEN = 0, + SB_FREEZE_WRITE = 1, + SB_FREEZE_PAGEFAULT = 2, + SB_FREEZE_FS = 3, + SB_FREEZE_COMPLETE = 4, +}; + +enum { + SCIx_ERI_IRQ = 0, + SCIx_RXI_IRQ = 1, + SCIx_TXI_IRQ = 2, + SCIx_BRI_IRQ = 3, + SCIx_DRI_IRQ = 4, + SCIx_TEI_IRQ = 5, + SCIx_NR_IRQS = 6, + SCIx_MUX_IRQ = 6, +}; + +enum { + SCIx_PROBE_REGTYPE = 0, + SCIx_SCI_REGTYPE = 1, + SCIx_IRDA_REGTYPE = 2, + SCIx_SCIFA_REGTYPE = 3, + SCIx_SCIFB_REGTYPE = 4, + SCIx_SH2_SCIF_FIFODATA_REGTYPE = 5, + SCIx_SH3_SCIF_REGTYPE = 6, + SCIx_SH4_SCIF_REGTYPE = 7, + SCIx_SH4_SCIF_BRG_REGTYPE = 8, + SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE = 9, + SCIx_SH4_SCIF_FIFODATA_REGTYPE = 10, + SCIx_SH7705_SCIF_REGTYPE = 11, + SCIx_HSCIF_REGTYPE = 12, + SCIx_RZ_SCIFA_REGTYPE = 13, + SCIx_RZV2H_SCIF_REGTYPE = 14, + SCIx_NR_REGTYPES = 15, +}; + +enum { + SCMI_RAW_REPLY_QUEUE = 0, + SCMI_RAW_NOTIF_QUEUE = 1, + SCMI_RAW_ERRS_QUEUE = 2, + SCMI_RAW_MAX_QUEUE = 3, +}; + +enum { + SCM_TSTAMP_SND = 0, + SCM_TSTAMP_SCHED = 1, + SCM_TSTAMP_ACK = 2, +}; + +enum { + SCSI_DH_OK = 0, + SCSI_DH_DEV_FAILED = 1, + SCSI_DH_DEV_TEMP_BUSY = 2, + SCSI_DH_DEV_UNSUPP = 3, + SCSI_DH_DEVICE_MAX = 4, + SCSI_DH_NOTCONN = 5, + SCSI_DH_CONN_FAILURE = 6, + SCSI_DH_TRANSPORT_MAX = 7, + SCSI_DH_IO = 8, + SCSI_DH_INVALID_IO = 9, + SCSI_DH_RETRY = 10, + SCSI_DH_IMM_RETRY = 11, + SCSI_DH_TIMED_OUT = 12, + SCSI_DH_RES_TEMP_UNAVAIL = 13, + SCSI_DH_DEV_OFFLINED = 14, + SCSI_DH_NOMEM = 15, + SCSI_DH_NOSYS = 16, + SCSI_DH_DRIVER_MAX = 17, +}; + +enum { + SCSMR = 0, + SCBRR = 1, + SCSCR = 2, + SCxSR = 3, + SCFCR = 4, + SCFDR = 5, + SCxTDR = 6, + SCxRDR = 7, + SCLSR = 8, + SCTFDR = 9, + SCRFDR = 10, + SCSPTR = 11, + HSSRR = 12, + SCPCR = 13, + SCPDR = 14, + SCDL = 15, + SCCKS = 16, + HSRTRGR = 17, + HSTTRGR = 18, + SEMR = 19, + SCIx_NR_REGS = 20, +}; + +enum { + SCTP_AUTH_HMAC_ID_RESERVED_0 = 0, + SCTP_AUTH_HMAC_ID_SHA1 = 1, + SCTP_AUTH_HMAC_ID_RESERVED_2 = 2, + SCTP_AUTH_HMAC_ID_SHA256 = 3, + __SCTP_AUTH_HMAC_MAX = 4, +}; + +enum { + SCTP_MAX_DUP_TSNS = 16, +}; + +enum { + SCTP_MAX_STREAM = 65535, +}; + +enum { + SD_BALANCE_NEWIDLE = 1, + SD_BALANCE_EXEC = 2, + SD_BALANCE_FORK = 4, + SD_BALANCE_WAKE = 8, + SD_WAKE_AFFINE = 16, + SD_ASYM_CPUCAPACITY = 32, + SD_ASYM_CPUCAPACITY_FULL = 64, + SD_SHARE_CPUCAPACITY = 128, + SD_CLUSTER = 256, + SD_SHARE_LLC = 512, + SD_SERIALIZE = 1024, + SD_ASYM_PACKING = 2048, + SD_PREFER_SIBLING = 4096, + SD_OVERLAP = 8192, + SD_NUMA = 16384, +}; + +enum { + SD_DEF_XFER_BLOCKS = 65535, + SD_MAX_XFER_BLOCKS = 4294967295, + SD_MAX_WS10_BLOCKS = 65535, + SD_MAX_WS16_BLOCKS = 8388607, +}; + +enum { + SD_EXT_CDB_SIZE = 32, + SD_MEMPOOL_SIZE = 2, +}; + +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 { + SD_ZERO_WRITE = 0, + SD_ZERO_WS = 1, + SD_ZERO_WS16_UNMAP = 2, + SD_ZERO_WS10_UNMAP = 3, +}; + +enum { + SEAL_keytype = 1, + SRK_keytype = 4, +}; + +enum { + SECTION_MARKED_PRESENT_BIT = 0, + SECTION_HAS_MEM_MAP_BIT = 1, + SECTION_IS_ONLINE_BIT = 2, + SECTION_IS_EARLY_BIT = 3, + SECTION_TAINT_ZONE_DEVICE_BIT = 4, + SECTION_MAP_LAST_BIT = 5, +}; + +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, +}; + +enum { + SEG6_HMAC_ALGO_SHA1 = 1, + SEG6_HMAC_ALGO_SHA256 = 2, +}; + +enum { + SEG6_IPTUNNEL_UNSPEC = 0, + SEG6_IPTUNNEL_SRH = 1, + __SEG6_IPTUNNEL_MAX = 2, +}; + +enum { + SEG6_IPTUN_MODE_INLINE = 0, + SEG6_IPTUN_MODE_ENCAP = 1, + SEG6_IPTUN_MODE_L2ENCAP = 2, + SEG6_IPTUN_MODE_ENCAP_RED = 3, + SEG6_IPTUN_MODE_L2ENCAP_RED = 4, +}; + +enum { + SEG6_LOCAL_ACTION_UNSPEC = 0, + SEG6_LOCAL_ACTION_END = 1, + SEG6_LOCAL_ACTION_END_X = 2, + SEG6_LOCAL_ACTION_END_T = 3, + SEG6_LOCAL_ACTION_END_DX2 = 4, + SEG6_LOCAL_ACTION_END_DX6 = 5, + SEG6_LOCAL_ACTION_END_DX4 = 6, + SEG6_LOCAL_ACTION_END_DT6 = 7, + SEG6_LOCAL_ACTION_END_DT4 = 8, + SEG6_LOCAL_ACTION_END_B6 = 9, + SEG6_LOCAL_ACTION_END_B6_ENCAP = 10, + SEG6_LOCAL_ACTION_END_BM = 11, + SEG6_LOCAL_ACTION_END_S = 12, + SEG6_LOCAL_ACTION_END_AS = 13, + SEG6_LOCAL_ACTION_END_AM = 14, + SEG6_LOCAL_ACTION_END_BPF = 15, + SEG6_LOCAL_ACTION_END_DT46 = 16, + __SEG6_LOCAL_ACTION_MAX = 17, +}; + +enum { + SEG6_LOCAL_BPF_PROG_UNSPEC = 0, + SEG6_LOCAL_BPF_PROG = 1, + SEG6_LOCAL_BPF_PROG_NAME = 2, + __SEG6_LOCAL_BPF_PROG_MAX = 3, +}; + +enum { + SEG6_LOCAL_CNT_UNSPEC = 0, + SEG6_LOCAL_CNT_PAD = 1, + SEG6_LOCAL_CNT_PACKETS = 2, + SEG6_LOCAL_CNT_BYTES = 3, + SEG6_LOCAL_CNT_ERRORS = 4, + __SEG6_LOCAL_CNT_MAX = 5, +}; + +enum { + SEG6_LOCAL_FLV_OP_UNSPEC = 0, + SEG6_LOCAL_FLV_OP_PSP = 1, + SEG6_LOCAL_FLV_OP_USP = 2, + SEG6_LOCAL_FLV_OP_USD = 3, + SEG6_LOCAL_FLV_OP_NEXT_CSID = 4, + __SEG6_LOCAL_FLV_OP_MAX = 5, +}; + +enum { + SEG6_LOCAL_FLV_UNSPEC = 0, + SEG6_LOCAL_FLV_OPERATION = 1, + SEG6_LOCAL_FLV_LCBLOCK_BITS = 2, + SEG6_LOCAL_FLV_LCNODE_FN_BITS = 3, + __SEG6_LOCAL_FLV_MAX = 4, +}; + +enum { + SEG6_LOCAL_UNSPEC = 0, + SEG6_LOCAL_ACTION = 1, + SEG6_LOCAL_SRH = 2, + SEG6_LOCAL_TABLE = 3, + SEG6_LOCAL_NH4 = 4, + SEG6_LOCAL_NH6 = 5, + SEG6_LOCAL_IIF = 6, + SEG6_LOCAL_OIF = 7, + SEG6_LOCAL_BPF = 8, + SEG6_LOCAL_VRFTABLE = 9, + SEG6_LOCAL_COUNTERS = 10, + SEG6_LOCAL_FLAVORS = 11, + __SEG6_LOCAL_MAX = 12, +}; + +enum { + SELNL_MSG_SETENFORCE = 16, + SELNL_MSG_POLICYLOAD = 17, + SELNL_MSG_MAX = 18, +}; + +enum { + SFF8024_ID_UNK = 0, + SFF8024_ID_SFF_8472 = 2, + SFF8024_ID_SFP = 3, + SFF8024_ID_DWDM_SFP = 11, + SFF8024_ID_QSFP_8438 = 12, + SFF8024_ID_QSFP_8436_8636 = 13, + SFF8024_ID_QSFP28_8636 = 17, + SFF8024_ID_QSFP_DD = 24, + SFF8024_ID_OSFP = 25, + SFF8024_ID_DSFP = 27, + SFF8024_ID_QSFP_PLUS_CMIS = 30, + SFF8024_ID_SFP_DD_CMIS = 31, + SFF8024_ID_SFP_PLUS_CMIS = 32, + SFF8024_ENCODING_UNSPEC = 0, + SFF8024_ENCODING_8B10B = 1, + SFF8024_ENCODING_4B5B = 2, + SFF8024_ENCODING_NRZ = 3, + SFF8024_ENCODING_8472_MANCHESTER = 4, + SFF8024_ENCODING_8472_SONET = 5, + SFF8024_ENCODING_8472_64B66B = 6, + SFF8024_ENCODING_8436_MANCHESTER = 6, + SFF8024_ENCODING_8436_SONET = 4, + SFF8024_ENCODING_8436_64B66B = 5, + SFF8024_ENCODING_256B257B = 7, + SFF8024_ENCODING_PAM4 = 8, + SFF8024_CONNECTOR_UNSPEC = 0, + SFF8024_CONNECTOR_SC = 1, + SFF8024_CONNECTOR_FIBERJACK = 6, + SFF8024_CONNECTOR_LC = 7, + SFF8024_CONNECTOR_MT_RJ = 8, + SFF8024_CONNECTOR_MU = 9, + SFF8024_CONNECTOR_SG = 10, + SFF8024_CONNECTOR_OPTICAL_PIGTAIL = 11, + SFF8024_CONNECTOR_MPO_1X12 = 12, + SFF8024_CONNECTOR_MPO_2X16 = 13, + SFF8024_CONNECTOR_HSSDC_II = 32, + SFF8024_CONNECTOR_COPPER_PIGTAIL = 33, + SFF8024_CONNECTOR_RJ45 = 34, + SFF8024_CONNECTOR_NOSEPARATE = 35, + SFF8024_CONNECTOR_MXC_2X16 = 36, + SFF8024_ECC_UNSPEC = 0, + SFF8024_ECC_100G_25GAUI_C2M_AOC = 1, + SFF8024_ECC_100GBASE_SR4_25GBASE_SR = 2, + SFF8024_ECC_100GBASE_LR4_25GBASE_LR = 3, + SFF8024_ECC_100GBASE_ER4_25GBASE_ER = 4, + SFF8024_ECC_100GBASE_SR10 = 5, + SFF8024_ECC_100GBASE_CR4 = 11, + SFF8024_ECC_25GBASE_CR_S = 12, + SFF8024_ECC_25GBASE_CR_N = 13, + SFF8024_ECC_10GBASE_T_SFI = 22, + SFF8024_ECC_10GBASE_T_SR = 28, + SFF8024_ECC_5GBASE_T = 29, + SFF8024_ECC_2_5GBASE_T = 30, +}; + +enum { + SFP_PHYS_ID = 0, + SFP_PHYS_EXT_ID = 1, + SFP_PHYS_EXT_ID_SFP = 4, + SFP_CONNECTOR = 2, + SFP_COMPLIANCE = 3, + SFP_ENCODING = 11, + SFP_BR_NOMINAL = 12, + SFP_RATE_ID = 13, + SFF_RID_8079 = 1, + SFF_RID_8431_RX_ONLY = 2, + SFF_RID_8431_TX_ONLY = 4, + SFF_RID_8431 = 6, + SFF_RID_10G8G = 14, + SFP_LINK_LEN_SM_KM = 14, + SFP_LINK_LEN_SM_100M = 15, + SFP_LINK_LEN_50UM_OM2_10M = 16, + SFP_LINK_LEN_62_5UM_OM1_10M = 17, + SFP_LINK_LEN_COPPER_1M = 18, + SFP_LINK_LEN_50UM_OM4_10M = 18, + SFP_LINK_LEN_50UM_OM3_10M = 19, + SFP_VENDOR_NAME = 20, + SFP_VENDOR_OUI = 37, + SFP_VENDOR_PN = 40, + SFP_VENDOR_REV = 56, + SFP_OPTICAL_WAVELENGTH_MSB = 60, + SFP_OPTICAL_WAVELENGTH_LSB = 61, + SFP_CABLE_SPEC = 60, + SFP_CC_BASE = 63, + SFP_OPTIONS = 64, + SFP_OPTIONS_HIGH_POWER_LEVEL = 8192, + SFP_OPTIONS_PAGING_A2 = 4096, + SFP_OPTIONS_RETIMER = 2048, + SFP_OPTIONS_COOLED_XCVR = 1024, + SFP_OPTIONS_POWER_DECL = 512, + SFP_OPTIONS_RX_LINEAR_OUT = 256, + SFP_OPTIONS_RX_DECISION_THRESH = 128, + SFP_OPTIONS_TUNABLE_TX = 64, + SFP_OPTIONS_RATE_SELECT = 32, + SFP_OPTIONS_TX_DISABLE = 16, + SFP_OPTIONS_TX_FAULT = 8, + SFP_OPTIONS_LOS_INVERTED = 4, + SFP_OPTIONS_LOS_NORMAL = 2, + SFP_BR_MAX = 66, + SFP_BR_MIN = 67, + SFP_VENDOR_SN = 68, + SFP_DATECODE = 84, + SFP_DIAGMON = 92, + SFP_DIAGMON_DDM = 64, + SFP_DIAGMON_INT_CAL = 32, + SFP_DIAGMON_EXT_CAL = 16, + SFP_DIAGMON_RXPWR_AVG = 8, + SFP_DIAGMON_ADDRMODE = 4, + SFP_ENHOPTS = 93, + SFP_ENHOPTS_ALARMWARN = 128, + SFP_ENHOPTS_SOFT_TX_DISABLE = 64, + SFP_ENHOPTS_SOFT_TX_FAULT = 32, + SFP_ENHOPTS_SOFT_RX_LOS = 16, + SFP_ENHOPTS_SOFT_RATE_SELECT = 8, + SFP_ENHOPTS_APP_SELECT_SFF8079 = 4, + SFP_ENHOPTS_SOFT_RATE_SFF8431 = 2, + SFP_SFF8472_COMPLIANCE = 94, + SFP_SFF8472_COMPLIANCE_NONE = 0, + SFP_SFF8472_COMPLIANCE_REV9_3 = 1, + SFP_SFF8472_COMPLIANCE_REV9_5 = 2, + SFP_SFF8472_COMPLIANCE_REV10_2 = 3, + SFP_SFF8472_COMPLIANCE_REV10_4 = 4, + SFP_SFF8472_COMPLIANCE_REV11_0 = 5, + SFP_SFF8472_COMPLIANCE_REV11_3 = 6, + SFP_SFF8472_COMPLIANCE_REV11_4 = 7, + SFP_SFF8472_COMPLIANCE_REV12_0 = 8, + SFP_CC_EXT = 95, +}; + +enum { + SGPIO_ARCH_LUTON = 0, + SGPIO_ARCH_OCELOT = 1, + SGPIO_ARCH_SPARX5 = 2, +}; + +enum { + SGPIO_FLAGS_HAS_IRQ = 1, +}; + +enum { + SKBFL_ZEROCOPY_ENABLE = 1, + SKBFL_SHARED_FRAG = 2, + SKBFL_PURE_ZEROCOPY = 4, + SKBFL_DONT_ORPHAN = 8, + SKBFL_MANAGED_FRAG_REFS = 16, +}; + +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 { + SKB_FCLONE_UNAVAILABLE = 0, + SKB_FCLONE_ORIG = 1, + SKB_FCLONE_CLONE = 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 { + SKCIPHER_WALK_SLOW = 1, + SKCIPHER_WALK_COPY = 2, + SKCIPHER_WALK_DIFF = 4, + SKCIPHER_WALK_SLEEP = 8, +}; + +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 { + SK_DIAG_BPF_STORAGE_REP_NONE = 0, + SK_DIAG_BPF_STORAGE = 1, + __SK_DIAG_BPF_STORAGE_REP_MAX = 2, +}; + +enum { + SK_DIAG_BPF_STORAGE_REQ_NONE = 0, + SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, + __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, +}; + +enum { + SK_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 { + SM_EFUSE_READ = 0, + SM_EFUSE_WRITE = 1, + SM_EFUSE_USER_MAX = 2, + SM_GET_CHIP_ID = 3, + SM_A1_PWRC_SET = 4, + SM_A1_PWRC_GET = 5, +}; + +enum { + SOCK_WAKE_IO = 0, + SOCK_WAKE_WAITD = 1, + SOCK_WAKE_SPACE = 2, + SOCK_WAKE_URG = 3, +}; + +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_OPT_RX_FILTER = 131072, + SOF_TIMESTAMPING_LAST = 131072, + SOF_TIMESTAMPING_MASK = 262143, +}; + +enum { + SPI_BLIST_NOIUS = 1, +}; + +enum { + STMPE_IDX_CHIP_ID = 0, + STMPE_IDX_SYS_CTRL = 1, + STMPE_IDX_SYS_CTRL2 = 2, + STMPE_IDX_ICR_LSB = 3, + STMPE_IDX_IER_LSB = 4, + STMPE_IDX_IER_MSB = 5, + STMPE_IDX_ISR_LSB = 6, + STMPE_IDX_ISR_MSB = 7, + STMPE_IDX_GPMR_LSB = 8, + STMPE_IDX_GPMR_CSB = 9, + STMPE_IDX_GPMR_MSB = 10, + STMPE_IDX_GPSR_LSB = 11, + STMPE_IDX_GPSR_CSB = 12, + STMPE_IDX_GPSR_MSB = 13, + STMPE_IDX_GPCR_LSB = 14, + STMPE_IDX_GPCR_CSB = 15, + STMPE_IDX_GPCR_MSB = 16, + STMPE_IDX_GPDR_LSB = 17, + STMPE_IDX_GPDR_CSB = 18, + STMPE_IDX_GPDR_MSB = 19, + STMPE_IDX_GPEDR_LSB = 20, + STMPE_IDX_GPEDR_CSB = 21, + STMPE_IDX_GPEDR_MSB = 22, + STMPE_IDX_GPRER_LSB = 23, + STMPE_IDX_GPRER_CSB = 24, + STMPE_IDX_GPRER_MSB = 25, + STMPE_IDX_GPFER_LSB = 26, + STMPE_IDX_GPFER_CSB = 27, + STMPE_IDX_GPFER_MSB = 28, + STMPE_IDX_GPPUR_LSB = 29, + STMPE_IDX_GPPDR_LSB = 30, + STMPE_IDX_GPAFR_U_MSB = 31, + STMPE_IDX_IEGPIOR_LSB = 32, + STMPE_IDX_IEGPIOR_CSB = 33, + STMPE_IDX_IEGPIOR_MSB = 34, + STMPE_IDX_ISGPIOR_LSB = 35, + STMPE_IDX_ISGPIOR_CSB = 36, + STMPE_IDX_ISGPIOR_MSB = 37, + STMPE_IDX_MAX = 38, +}; + +enum { + SUNXI_SRC_TYPE_LEVEL_LOW = 0, + SUNXI_SRC_TYPE_EDGE_FALLING = 1, + SUNXI_SRC_TYPE_LEVEL_HIGH = 2, + SUNXI_SRC_TYPE_EDGE_RISING = 3, +}; + +enum { + SUN_WHOLE_DISK = 5, + LINUX_RAID_PARTITION___2 = 253, +}; + +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, +}; + +enum { + SWMII_SPEED_10 = 0, + SWMII_SPEED_100 = 1, + SWMII_SPEED_1000 = 2, + SWMII_DUPLEX_HALF = 0, + SWMII_DUPLEX_FULL = 1, +}; + +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, +}; + +enum { + SX150X_123 = 0, + SX150X_456 = 1, + SX150X_789 = 2, +}; + +enum { + SX150X_789_REG_MISC_AUTOCLEAR_OFF = 1, + SX150X_MAX_REGISTER = 173, + SX150X_IRQ_TYPE_EDGE_RISING = 1, + SX150X_IRQ_TYPE_EDGE_FALLING = 2, + SX150X_789_RESET_KEY1 = 18, + SX150X_789_RESET_KEY2 = 52, +}; + +enum { + SYNTH_ERR_BAD_NAME = 0, + SYNTH_ERR_INVALID_CMD = 1, + SYNTH_ERR_INVALID_DYN_CMD = 2, + SYNTH_ERR_EVENT_EXISTS = 3, + SYNTH_ERR_TOO_MANY_FIELDS = 4, + SYNTH_ERR_INCOMPLETE_TYPE = 5, + SYNTH_ERR_INVALID_TYPE = 6, + SYNTH_ERR_INVALID_FIELD = 7, + SYNTH_ERR_INVALID_ARRAY_SPEC = 8, +}; + +enum { + SYSTAB = 0, + MMBASE = 1, + MMSIZE = 2, + DCSIZE = 3, + DCVERS = 4, + SCBOOT = 5, + PARAMCOUNT = 6, +}; + +enum { + TASKLET_STATE_SCHED = 0, + TASKLET_STATE_RUN = 1, +}; + +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 { + 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 { + TASK_COMM_LEN = 16, +}; + +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 { + TCA_EMATCH_TREE_UNSPEC = 0, + TCA_EMATCH_TREE_HDR = 1, + TCA_EMATCH_TREE_LIST = 2, + __TCA_EMATCH_TREE_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, + TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM = 4, + TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT = 8, + TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM = 16, + TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT = 32, + __TCA_FLOWER_KEY_FLAGS_MAX = 33, +}; + +enum { + TCA_ROOT_UNSPEC = 0, + TCA_ROOT_TAB = 1, + TCA_ROOT_FLAGS = 2, + TCA_ROOT_COUNT = 3, + TCA_ROOT_TIME_DELTA = 4, + TCA_ROOT_EXT_WARN_MSG = 5, + __TCA_ROOT_MAX = 6, +}; + +enum { + TCA_STAB_UNSPEC = 0, + TCA_STAB_BASE = 1, + TCA_STAB_DATA = 2, + __TCA_STAB_MAX = 3, +}; + +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, +}; + +enum { + TCA_UNSPEC = 0, + TCA_KIND = 1, + TCA_OPTIONS = 2, + TCA_STATS = 3, + TCA_XSTATS = 4, + TCA_RATE = 5, + TCA_FCNT = 6, + TCA_STATS2 = 7, + TCA_STAB = 8, + TCA_PAD = 9, + TCA_DUMP_INVISIBLE = 10, + TCA_CHAIN = 11, + TCA_HW_OFFLOAD = 12, + TCA_INGRESS_BLOCK = 13, + TCA_EGRESS_BLOCK = 14, + TCA_DUMP_FLAGS = 15, + TCA_EXT_WARN_MSG = 16, + __TCA_MAX = 17, +}; + +enum { + TCG_SECP_00 = 0, + TCG_SECP_01 = 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, + TCPF_BOUND_INACTIVE = 8192, +}; + +enum { + TCP_BPF_BASE = 0, + TCP_BPF_TX = 1, + TCP_BPF_RX = 2, + TCP_BPF_TXRX = 3, + TCP_BPF_NUM_CFGS = 4, +}; + +enum { + TCP_BPF_IPV4 = 0, + TCP_BPF_IPV6 = 1, + TCP_BPF_NUM_PROTS = 2, +}; + +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, + TCP_BPF_SOCK_OPS_CB_FLAGS = 1008, +}; + +enum { + TCP_CMSG_INQ = 1, + TCP_CMSG_TS = 2, +}; + +enum { + TCP_ESTABLISHED = 1, + TCP_SYN_SENT = 2, + TCP_SYN_RECV = 3, + TCP_FIN_WAIT1 = 4, + TCP_FIN_WAIT2 = 5, + TCP_TIME_WAIT = 6, + TCP_CLOSE = 7, + TCP_CLOSE_WAIT = 8, + TCP_LAST_ACK = 9, + TCP_LISTEN = 10, + TCP_CLOSING = 11, + TCP_NEW_SYN_RECV = 12, + TCP_BOUND_INACTIVE = 13, + TCP_MAX_STATES = 14, +}; + +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_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, +}; + +enum { + TCP_MIB_NUM = 0, + TCP_MIB_RTOALGORITHM = 1, + TCP_MIB_RTOMIN = 2, + TCP_MIB_RTOMAX = 3, + TCP_MIB_MAXCONN = 4, + TCP_MIB_ACTIVEOPENS = 5, + TCP_MIB_PASSIVEOPENS = 6, + TCP_MIB_ATTEMPTFAILS = 7, + TCP_MIB_ESTABRESETS = 8, + TCP_MIB_CURRESTAB = 9, + TCP_MIB_INSEGS = 10, + TCP_MIB_OUTSEGS = 11, + TCP_MIB_RETRANSSEGS = 12, + TCP_MIB_INERRS = 13, + TCP_MIB_OUTRSTS = 14, + TCP_MIB_CSUMERRORS = 15, + __TCP_MIB_MAX = 16, +}; + +enum { + TCP_NLA_PAD = 0, + TCP_NLA_BUSY = 1, + TCP_NLA_RWND_LIMITED = 2, + TCP_NLA_SNDBUF_LIMITED = 3, + TCP_NLA_DATA_SEGS_OUT = 4, + TCP_NLA_TOTAL_RETRANS = 5, + TCP_NLA_PACING_RATE = 6, + TCP_NLA_DELIVERY_RATE = 7, + TCP_NLA_SND_CWND = 8, + TCP_NLA_REORDERING = 9, + TCP_NLA_MIN_RTT = 10, + TCP_NLA_RECUR_RETRANS = 11, + TCP_NLA_DELIVERY_RATE_APP_LMT = 12, + TCP_NLA_SNDQ_SIZE = 13, + TCP_NLA_CA_STATE = 14, + TCP_NLA_SND_SSTHRESH = 15, + TCP_NLA_DELIVERED = 16, + TCP_NLA_DELIVERED_CE = 17, + TCP_NLA_BYTES_SENT = 18, + TCP_NLA_BYTES_RETRANS = 19, + TCP_NLA_DSACK_DUPS = 20, + TCP_NLA_REORD_SEEN = 21, + TCP_NLA_SRTT = 22, + TCP_NLA_TIMEOUT_REHASH = 23, + TCP_NLA_BYTES_NOTSENT = 24, + TCP_NLA_EDT = 25, + TCP_NLA_TTL = 26, + TCP_NLA_REHASH = 27, +}; + +enum { + TCP_NO_QUEUE = 0, + TCP_RECV_QUEUE = 1, + TCP_SEND_QUEUE = 2, + TCP_QUEUES_NR = 3, +}; + +enum { + TEGRA_PIN_CAN0_DOUT_PAA0 = 0, + TEGRA_PIN_CAN0_DIN_PAA1 = 1, + TEGRA_PIN_CAN1_DOUT_PAA2 = 2, + TEGRA_PIN_CAN1_DIN_PAA3 = 3, + TEGRA_PIN_CAN0_STB_PAA4 = 4, + TEGRA_PIN_CAN0_EN_PAA5 = 5, + TEGRA_PIN_SOC_GPIO49_PAA6 = 6, + TEGRA_PIN_CAN0_ERR_PAA7 = 7, + TEGRA_PIN_CAN1_STB_PBB0 = 8, + TEGRA_PIN_CAN1_EN_PBB1 = 9, + TEGRA_PIN_SOC_GPIO50_PBB2 = 10, + TEGRA_PIN_CAN1_ERR_PBB3 = 11, + TEGRA_PIN_SPI2_SCK_PCC0 = 12, + TEGRA_PIN_SPI2_MISO_PCC1 = 13, + TEGRA_PIN_SPI2_MOSI_PCC2 = 14, + TEGRA_PIN_SPI2_CS0_PCC3 = 15, + TEGRA_PIN_TOUCH_CLK_PCC4 = 16, + TEGRA_PIN_UART3_TX_PCC5 = 17, + TEGRA_PIN_UART3_RX_PCC6 = 18, + TEGRA_PIN_GEN2_I2C_SCL_PCC7 = 19, + TEGRA_PIN_GEN2_I2C_SDA_PDD0 = 20, + TEGRA_PIN_GEN8_I2C_SCL_PDD1 = 21, + TEGRA_PIN_GEN8_I2C_SDA_PDD2 = 22, + TEGRA_PIN_SCE_ERROR_PEE0 = 23, + TEGRA_PIN_VCOMP_ALERT_PEE1 = 24, + TEGRA_PIN_AO_RETENTION_N_PEE2 = 25, + TEGRA_PIN_BATT_OC_PEE3 = 26, + TEGRA_PIN_POWER_ON_PEE4 = 27, + TEGRA_PIN_SOC_GPIO26_PEE5 = 28, + TEGRA_PIN_SOC_GPIO27_PEE6 = 29, + TEGRA_PIN_BOOTV_CTL_N_PEE7 = 30, + TEGRA_PIN_HDMI_CEC_PGG0 = 31, +}; + +enum { + TEGRA_PIN_CAN1_DOUT_PAA0 = 0, + TEGRA_PIN_CAN1_DIN_PAA1 = 1, + TEGRA_PIN_CAN0_DOUT_PAA2 = 2, + TEGRA_PIN_CAN0_DIN_PAA3 = 3, + TEGRA_PIN_CAN0_STB_PAA4___2 = 4, + TEGRA_PIN_CAN0_EN_PAA5___2 = 5, + TEGRA_PIN_CAN0_WAKE_PAA6 = 6, + TEGRA_PIN_CAN0_ERR_PAA7___2 = 7, + TEGRA_PIN_CAN1_STB_PBB0___2 = 8, + TEGRA_PIN_CAN1_EN_PBB1___2 = 9, + TEGRA_PIN_CAN1_WAKE_PBB2 = 10, + TEGRA_PIN_CAN1_ERR_PBB3___2 = 11, + TEGRA_PIN_SPI2_SCK_PCC0___2 = 12, + TEGRA_PIN_SPI2_MISO_PCC1___2 = 13, + TEGRA_PIN_SPI2_MOSI_PCC2___2 = 14, + TEGRA_PIN_SPI2_CS0_PCC3___2 = 15, + TEGRA_PIN_TOUCH_CLK_PCC4___2 = 16, + TEGRA_PIN_UART3_TX_PCC5___2 = 17, + TEGRA_PIN_UART3_RX_PCC6___2 = 18, + TEGRA_PIN_GEN2_I2C_SCL_PCC7___2 = 19, + TEGRA_PIN_GEN2_I2C_SDA_PDD0___2 = 20, + TEGRA_PIN_GEN8_I2C_SCL_PDD1___2 = 21, + TEGRA_PIN_GEN8_I2C_SDA_PDD2___2 = 22, + TEGRA_PIN_SAFE_STATE_PEE0 = 23, + TEGRA_PIN_VCOMP_ALERT_PEE1___2 = 24, + TEGRA_PIN_AO_RETENTION_N_PEE2___2 = 25, + TEGRA_PIN_BATT_OC_PEE3___2 = 26, + TEGRA_PIN_POWER_ON_PEE4___2 = 27, + TEGRA_PIN_PWR_I2C_SCL_PEE5 = 28, + TEGRA_PIN_PWR_I2C_SDA_PEE6 = 29, + TEGRA_PIN_SYS_RESET_N = 30, + TEGRA_PIN_SHUTDOWN_N = 31, + TEGRA_PIN_PMU_INT_N = 32, + TEGRA_PIN_SOC_PWR_REQ = 33, + TEGRA_PIN_CLK_32K_IN = 34, +}; + +enum { + TEGRA_PIN_DAP6_SCLK_PA0 = 0, + TEGRA_PIN_DAP6_DOUT_PA1 = 1, + TEGRA_PIN_DAP6_DIN_PA2 = 2, + TEGRA_PIN_DAP6_FS_PA3 = 3, + TEGRA_PIN_DAP4_SCLK_PA4 = 4, + TEGRA_PIN_DAP4_DOUT_PA5 = 5, + TEGRA_PIN_DAP4_DIN_PA6 = 6, + TEGRA_PIN_DAP4_FS_PA7 = 7, + TEGRA_PIN_SOC_GPIO08_PB0 = 8, + TEGRA_PIN_QSPI0_SCK_PC0 = 9, + TEGRA_PIN_QSPI0_CS_N_PC1 = 10, + TEGRA_PIN_QSPI0_IO0_PC2 = 11, + TEGRA_PIN_QSPI0_IO1_PC3 = 12, + TEGRA_PIN_QSPI0_IO2_PC4 = 13, + TEGRA_PIN_QSPI0_IO3_PC5 = 14, + TEGRA_PIN_QSPI1_SCK_PC6 = 15, + TEGRA_PIN_QSPI1_CS_N_PC7 = 16, + TEGRA_PIN_QSPI1_IO0_PD0 = 17, + TEGRA_PIN_QSPI1_IO1_PD1 = 18, + TEGRA_PIN_QSPI1_IO2_PD2 = 19, + TEGRA_PIN_QSPI1_IO3_PD3 = 20, + TEGRA_PIN_EQOS_TXC_PE0 = 21, + TEGRA_PIN_EQOS_TD0_PE1 = 22, + TEGRA_PIN_EQOS_TD1_PE2 = 23, + TEGRA_PIN_EQOS_TD2_PE3 = 24, + TEGRA_PIN_EQOS_TD3_PE4 = 25, + TEGRA_PIN_EQOS_TX_CTL_PE5 = 26, + TEGRA_PIN_EQOS_RD0_PE6 = 27, + TEGRA_PIN_EQOS_RD1_PE7 = 28, + TEGRA_PIN_EQOS_RD2_PF0 = 29, + TEGRA_PIN_EQOS_RD3_PF1 = 30, + TEGRA_PIN_EQOS_RX_CTL_PF2 = 31, + TEGRA_PIN_EQOS_RXC_PF3 = 32, + TEGRA_PIN_EQOS_SMA_MDIO_PF4 = 33, + TEGRA_PIN_EQOS_SMA_MDC_PF5 = 34, + TEGRA_PIN_SOC_GPIO13_PG0 = 35, + TEGRA_PIN_SOC_GPIO14_PG1 = 36, + TEGRA_PIN_SOC_GPIO15_PG2 = 37, + TEGRA_PIN_SOC_GPIO16_PG3 = 38, + TEGRA_PIN_SOC_GPIO17_PG4 = 39, + TEGRA_PIN_SOC_GPIO18_PG5 = 40, + TEGRA_PIN_SOC_GPIO19_PG6 = 41, + TEGRA_PIN_SOC_GPIO20_PG7 = 42, + TEGRA_PIN_SOC_GPIO21_PH0 = 43, + TEGRA_PIN_SOC_GPIO22_PH1 = 44, + TEGRA_PIN_SOC_GPIO06_PH2 = 45, + TEGRA_PIN_UART4_TX_PH3 = 46, + TEGRA_PIN_UART4_RX_PH4 = 47, + TEGRA_PIN_UART4_RTS_PH5 = 48, + TEGRA_PIN_UART4_CTS_PH6 = 49, + TEGRA_PIN_SOC_GPIO41_PH7 = 50, + TEGRA_PIN_SOC_GPIO42_PI0 = 51, + TEGRA_PIN_SOC_GPIO43_PI1 = 52, + TEGRA_PIN_SOC_GPIO44_PI2 = 53, + TEGRA_PIN_GEN1_I2C_SCL_PI3 = 54, + TEGRA_PIN_GEN1_I2C_SDA_PI4 = 55, + TEGRA_PIN_CPU_PWR_REQ_PI5 = 56, + TEGRA_PIN_SOC_GPIO07_PI6 = 57, + TEGRA_PIN_SDMMC1_CLK_PJ0 = 58, + TEGRA_PIN_SDMMC1_CMD_PJ1 = 59, + TEGRA_PIN_SDMMC1_DAT0_PJ2 = 60, + TEGRA_PIN_SDMMC1_DAT1_PJ3 = 61, + TEGRA_PIN_SDMMC1_DAT2_PJ4 = 62, + TEGRA_PIN_SDMMC1_DAT3_PJ5 = 63, + TEGRA_PIN_PEX_L0_CLKREQ_N_PK0 = 64, + TEGRA_PIN_PEX_L0_RST_N_PK1 = 65, + TEGRA_PIN_PEX_L1_CLKREQ_N_PK2 = 66, + TEGRA_PIN_PEX_L1_RST_N_PK3 = 67, + TEGRA_PIN_PEX_L2_CLKREQ_N_PK4 = 68, + TEGRA_PIN_PEX_L2_RST_N_PK5 = 69, + TEGRA_PIN_PEX_L3_CLKREQ_N_PK6 = 70, + TEGRA_PIN_PEX_L3_RST_N_PK7 = 71, + TEGRA_PIN_PEX_L4_CLKREQ_N_PL0 = 72, + TEGRA_PIN_PEX_L4_RST_N_PL1 = 73, + TEGRA_PIN_PEX_WAKE_N_PL2 = 74, + TEGRA_PIN_SOC_GPIO34_PL3 = 75, + TEGRA_PIN_DP_AUX_CH0_HPD_PM0 = 76, + TEGRA_PIN_DP_AUX_CH1_HPD_PM1 = 77, + TEGRA_PIN_DP_AUX_CH2_HPD_PM2 = 78, + TEGRA_PIN_DP_AUX_CH3_HPD_PM3 = 79, + TEGRA_PIN_SOC_GPIO55_PM4 = 80, + TEGRA_PIN_SOC_GPIO36_PM5 = 81, + TEGRA_PIN_SOC_GPIO53_PM6 = 82, + TEGRA_PIN_SOC_GPIO38_PM7 = 83, + TEGRA_PIN_DP_AUX_CH3_N_PN0 = 84, + TEGRA_PIN_SOC_GPIO39_PN1 = 85, + TEGRA_PIN_SOC_GPIO40_PN2 = 86, + TEGRA_PIN_DP_AUX_CH1_P_PN3 = 87, + TEGRA_PIN_DP_AUX_CH1_N_PN4 = 88, + TEGRA_PIN_DP_AUX_CH2_P_PN5 = 89, + TEGRA_PIN_DP_AUX_CH2_N_PN6 = 90, + TEGRA_PIN_DP_AUX_CH3_P_PN7 = 91, + TEGRA_PIN_EXTPERIPH1_CLK_PP0 = 92, + TEGRA_PIN_EXTPERIPH2_CLK_PP1 = 93, + TEGRA_PIN_CAM_I2C_SCL_PP2 = 94, + TEGRA_PIN_CAM_I2C_SDA_PP3 = 95, + TEGRA_PIN_SOC_GPIO23_PP4 = 96, + TEGRA_PIN_SOC_GPIO24_PP5 = 97, + TEGRA_PIN_SOC_GPIO25_PP6 = 98, + TEGRA_PIN_PWR_I2C_SCL_PP7 = 99, + TEGRA_PIN_PWR_I2C_SDA_PQ0 = 100, + TEGRA_PIN_SOC_GPIO28_PQ1 = 101, + TEGRA_PIN_SOC_GPIO29_PQ2 = 102, + TEGRA_PIN_SOC_GPIO30_PQ3 = 103, + TEGRA_PIN_SOC_GPIO31_PQ4 = 104, + TEGRA_PIN_SOC_GPIO32_PQ5 = 105, + TEGRA_PIN_SOC_GPIO33_PQ6 = 106, + TEGRA_PIN_SOC_GPIO35_PQ7 = 107, + TEGRA_PIN_SOC_GPIO37_PR0 = 108, + TEGRA_PIN_SOC_GPIO56_PR1 = 109, + TEGRA_PIN_UART1_TX_PR2 = 110, + TEGRA_PIN_UART1_RX_PR3 = 111, + TEGRA_PIN_UART1_RTS_PR4 = 112, + TEGRA_PIN_UART1_CTS_PR5 = 113, + TEGRA_PIN_GPU_PWR_REQ_PX0 = 114, + TEGRA_PIN_CV_PWR_REQ_PX1 = 115, + TEGRA_PIN_GP_PWM2_PX2 = 116, + TEGRA_PIN_GP_PWM3_PX3 = 117, + TEGRA_PIN_UART2_TX_PX4 = 118, + TEGRA_PIN_UART2_RX_PX5 = 119, + TEGRA_PIN_UART2_RTS_PX6 = 120, + TEGRA_PIN_UART2_CTS_PX7 = 121, + TEGRA_PIN_SPI3_SCK_PY0 = 122, + TEGRA_PIN_SPI3_MISO_PY1 = 123, + TEGRA_PIN_SPI3_MOSI_PY2 = 124, + TEGRA_PIN_SPI3_CS0_PY3 = 125, + TEGRA_PIN_SPI3_CS1_PY4 = 126, + TEGRA_PIN_UART5_TX_PY5 = 127, + TEGRA_PIN_UART5_RX_PY6 = 128, + TEGRA_PIN_UART5_RTS_PY7 = 129, + TEGRA_PIN_UART5_CTS_PZ0 = 130, + TEGRA_PIN_USB_VBUS_EN0_PZ1 = 131, + TEGRA_PIN_USB_VBUS_EN1_PZ2 = 132, + TEGRA_PIN_SPI1_SCK_PZ3 = 133, + TEGRA_PIN_SPI1_MISO_PZ4 = 134, + TEGRA_PIN_SPI1_MOSI_PZ5 = 135, + TEGRA_PIN_SPI1_CS0_PZ6 = 136, + TEGRA_PIN_SPI1_CS1_PZ7 = 137, + TEGRA_PIN_SPI5_SCK_PAC0 = 138, + TEGRA_PIN_SPI5_MISO_PAC1 = 139, + TEGRA_PIN_SPI5_MOSI_PAC2 = 140, + TEGRA_PIN_SPI5_CS0_PAC3 = 141, + TEGRA_PIN_SOC_GPIO57_PAC4 = 142, + TEGRA_PIN_SOC_GPIO58_PAC5 = 143, + TEGRA_PIN_SOC_GPIO59_PAC6 = 144, + TEGRA_PIN_SOC_GPIO60_PAC7 = 145, + TEGRA_PIN_SOC_GPIO45_PAD0 = 146, + TEGRA_PIN_SOC_GPIO46_PAD1 = 147, + TEGRA_PIN_SOC_GPIO47_PAD2 = 148, + TEGRA_PIN_SOC_GPIO48_PAD3 = 149, + TEGRA_PIN_UFS0_REF_CLK_PAE0 = 150, + TEGRA_PIN_UFS0_RST_N_PAE1 = 151, + TEGRA_PIN_PEX_L5_CLKREQ_N_PAF0 = 152, + TEGRA_PIN_PEX_L5_RST_N_PAF1 = 153, + TEGRA_PIN_PEX_L6_CLKREQ_N_PAF2 = 154, + TEGRA_PIN_PEX_L6_RST_N_PAF3 = 155, + TEGRA_PIN_PEX_L7_CLKREQ_N_PAG0 = 156, + TEGRA_PIN_PEX_L7_RST_N_PAG1 = 157, + TEGRA_PIN_PEX_L8_CLKREQ_N_PAG2 = 158, + TEGRA_PIN_PEX_L8_RST_N_PAG3 = 159, + TEGRA_PIN_PEX_L9_CLKREQ_N_PAG4 = 160, + TEGRA_PIN_PEX_L9_RST_N_PAG5 = 161, + TEGRA_PIN_PEX_L10_CLKREQ_N_PAG6 = 162, + TEGRA_PIN_PEX_L10_RST_N_PAG7 = 163, + TEGRA_PIN_EQOS_COMP = 164, + TEGRA_PIN_QSPI_COMP = 165, + TEGRA_PIN_SDMMC1_COMP = 166, +}; + +enum { + TEGRA_PIN_DAP6_SCLK_PA0___2 = 0, + TEGRA_PIN_DAP6_DOUT_PA1___2 = 1, + TEGRA_PIN_DAP6_DIN_PA2___2 = 2, + TEGRA_PIN_DAP6_FS_PA3___2 = 3, + TEGRA_PIN_DAP4_SCLK_PA4___2 = 4, + TEGRA_PIN_DAP4_DOUT_PA5___2 = 5, + TEGRA_PIN_DAP4_DIN_PA6___2 = 6, + TEGRA_PIN_DAP4_FS_PA7___2 = 7, + TEGRA_PIN_CPU_PWR_REQ_0_PB0 = 8, + TEGRA_PIN_CPU_PWR_REQ_1_PB1 = 9, + TEGRA_PIN_QSPI0_SCK_PC0___2 = 10, + TEGRA_PIN_QSPI0_CS_N_PC1___2 = 11, + TEGRA_PIN_QSPI0_IO0_PC2___2 = 12, + TEGRA_PIN_QSPI0_IO1_PC3___2 = 13, + TEGRA_PIN_QSPI0_IO2_PC4___2 = 14, + TEGRA_PIN_QSPI0_IO3_PC5___2 = 15, + TEGRA_PIN_QSPI1_SCK_PC6___2 = 16, + TEGRA_PIN_QSPI1_CS_N_PC7___2 = 17, + TEGRA_PIN_QSPI1_IO0_PD0___2 = 18, + TEGRA_PIN_QSPI1_IO1_PD1___2 = 19, + TEGRA_PIN_QSPI1_IO2_PD2___2 = 20, + TEGRA_PIN_QSPI1_IO3_PD3___2 = 21, + TEGRA_PIN_EQOS_TXC_PE0___2 = 22, + TEGRA_PIN_EQOS_TD0_PE1___2 = 23, + TEGRA_PIN_EQOS_TD1_PE2___2 = 24, + TEGRA_PIN_EQOS_TD2_PE3___2 = 25, + TEGRA_PIN_EQOS_TD3_PE4___2 = 26, + TEGRA_PIN_EQOS_TX_CTL_PE5___2 = 27, + TEGRA_PIN_EQOS_RD0_PE6___2 = 28, + TEGRA_PIN_EQOS_RD1_PE7___2 = 29, + TEGRA_PIN_EQOS_RD2_PF0___2 = 30, + TEGRA_PIN_EQOS_RD3_PF1___2 = 31, + TEGRA_PIN_EQOS_RX_CTL_PF2___2 = 32, + TEGRA_PIN_EQOS_RXC_PF3___2 = 33, + TEGRA_PIN_EQOS_SMA_MDIO_PF4___2 = 34, + TEGRA_PIN_EQOS_SMA_MDC_PF5___2 = 35, + TEGRA_PIN_SOC_GPIO00_PG0 = 36, + TEGRA_PIN_SOC_GPIO01_PG1 = 37, + TEGRA_PIN_SOC_GPIO02_PG2 = 38, + TEGRA_PIN_SOC_GPIO03_PG3 = 39, + TEGRA_PIN_SOC_GPIO08_PG4 = 40, + TEGRA_PIN_SOC_GPIO09_PG5 = 41, + TEGRA_PIN_SOC_GPIO10_PG6 = 42, + TEGRA_PIN_SOC_GPIO11_PG7 = 43, + TEGRA_PIN_SOC_GPIO12_PH0 = 44, + TEGRA_PIN_SOC_GPIO13_PH1 = 45, + TEGRA_PIN_SOC_GPIO14_PH2 = 46, + TEGRA_PIN_UART4_TX_PH3___2 = 47, + TEGRA_PIN_UART4_RX_PH4___2 = 48, + TEGRA_PIN_UART4_RTS_PH5___2 = 49, + TEGRA_PIN_UART4_CTS_PH6___2 = 50, + TEGRA_PIN_DAP2_SCLK_PH7 = 51, + TEGRA_PIN_DAP2_DOUT_PI0 = 52, + TEGRA_PIN_DAP2_DIN_PI1 = 53, + TEGRA_PIN_DAP2_FS_PI2 = 54, + TEGRA_PIN_GEN1_I2C_SCL_PI3___2 = 55, + TEGRA_PIN_GEN1_I2C_SDA_PI4___2 = 56, + TEGRA_PIN_SDMMC1_CLK_PJ0___2 = 57, + TEGRA_PIN_SDMMC1_CMD_PJ1___2 = 58, + TEGRA_PIN_SDMMC1_DAT0_PJ2___2 = 59, + TEGRA_PIN_SDMMC1_DAT1_PJ3___2 = 60, + TEGRA_PIN_SDMMC1_DAT2_PJ4___2 = 61, + TEGRA_PIN_SDMMC1_DAT3_PJ5___2 = 62, + TEGRA_PIN_PEX_L0_CLKREQ_N_PK0___2 = 63, + TEGRA_PIN_PEX_L0_RST_N_PK1___2 = 64, + TEGRA_PIN_PEX_L1_CLKREQ_N_PK2___2 = 65, + TEGRA_PIN_PEX_L1_RST_N_PK3___2 = 66, + TEGRA_PIN_PEX_L2_CLKREQ_N_PK4___2 = 67, + TEGRA_PIN_PEX_L2_RST_N_PK5___2 = 68, + TEGRA_PIN_PEX_L3_CLKREQ_N_PK6___2 = 69, + TEGRA_PIN_PEX_L3_RST_N_PK7___2 = 70, + TEGRA_PIN_PEX_L4_CLKREQ_N_PL0___2 = 71, + TEGRA_PIN_PEX_L4_RST_N_PL1___2 = 72, + TEGRA_PIN_PEX_WAKE_N_PL2___2 = 73, + TEGRA_PIN_SATA_DEV_SLP_PL3 = 74, + TEGRA_PIN_DP_AUX_CH0_HPD_PM0___2 = 75, + TEGRA_PIN_DP_AUX_CH1_HPD_PM1___2 = 76, + TEGRA_PIN_DP_AUX_CH2_HPD_PM2___2 = 77, + TEGRA_PIN_DP_AUX_CH3_HPD_PM3___2 = 78, + TEGRA_PIN_HDMI_CEC_PM4 = 79, + TEGRA_PIN_SOC_GPIO50_PM5 = 80, + TEGRA_PIN_SOC_GPIO51_PM6 = 81, + TEGRA_PIN_SOC_GPIO52_PM7 = 82, + TEGRA_PIN_SOC_GPIO53_PN0 = 83, + TEGRA_PIN_SOC_GPIO54_PN1 = 84, + TEGRA_PIN_SOC_GPIO55_PN2 = 85, + TEGRA_PIN_SDMMC3_CLK_PO0 = 86, + TEGRA_PIN_SDMMC3_CMD_PO1 = 87, + TEGRA_PIN_SDMMC3_DAT0_PO2 = 88, + TEGRA_PIN_SDMMC3_DAT1_PO3 = 89, + TEGRA_PIN_SDMMC3_DAT2_PO4 = 90, + TEGRA_PIN_SDMMC3_DAT3_PO5 = 91, + TEGRA_PIN_EXTPERIPH1_CLK_PP0___2 = 92, + TEGRA_PIN_EXTPERIPH2_CLK_PP1___2 = 93, + TEGRA_PIN_CAM_I2C_SCL_PP2___2 = 94, + TEGRA_PIN_CAM_I2C_SDA_PP3___2 = 95, + TEGRA_PIN_SOC_GPIO04_PP4 = 96, + TEGRA_PIN_SOC_GPIO05_PP5 = 97, + TEGRA_PIN_SOC_GPIO06_PP6 = 98, + TEGRA_PIN_SOC_GPIO07_PP7 = 99, + TEGRA_PIN_SOC_GPIO20_PQ0 = 100, + TEGRA_PIN_SOC_GPIO21_PQ1 = 101, + TEGRA_PIN_SOC_GPIO22_PQ2 = 102, + TEGRA_PIN_SOC_GPIO23_PQ3 = 103, + TEGRA_PIN_SOC_GPIO40_PQ4 = 104, + TEGRA_PIN_SOC_GPIO41_PQ5 = 105, + TEGRA_PIN_SOC_GPIO42_PQ6 = 106, + TEGRA_PIN_SOC_GPIO43_PQ7 = 107, + TEGRA_PIN_SOC_GPIO44_PR0 = 108, + TEGRA_PIN_SOC_GPIO45_PR1 = 109, + TEGRA_PIN_UART1_TX_PR2___2 = 110, + TEGRA_PIN_UART1_RX_PR3___2 = 111, + TEGRA_PIN_UART1_RTS_PR4___2 = 112, + TEGRA_PIN_UART1_CTS_PR5___2 = 113, + TEGRA_PIN_DAP1_SCLK_PS0 = 114, + TEGRA_PIN_DAP1_DOUT_PS1 = 115, + TEGRA_PIN_DAP1_DIN_PS2 = 116, + TEGRA_PIN_DAP1_FS_PS3 = 117, + TEGRA_PIN_AUD_MCLK_PS4 = 118, + TEGRA_PIN_SOC_GPIO30_PS5 = 119, + TEGRA_PIN_SOC_GPIO31_PS6 = 120, + TEGRA_PIN_SOC_GPIO32_PS7 = 121, + TEGRA_PIN_SOC_GPIO33_PT0 = 122, + TEGRA_PIN_DAP3_SCLK_PT1 = 123, + TEGRA_PIN_DAP3_DOUT_PT2 = 124, + TEGRA_PIN_DAP3_DIN_PT3 = 125, + TEGRA_PIN_DAP3_FS_PT4 = 126, + TEGRA_PIN_DAP5_SCLK_PT5 = 127, + TEGRA_PIN_DAP5_DOUT_PT6 = 128, + TEGRA_PIN_DAP5_DIN_PT7 = 129, + TEGRA_PIN_DAP5_FS_PU0 = 130, + TEGRA_PIN_DIRECTDC1_CLK_PV0 = 131, + TEGRA_PIN_DIRECTDC1_IN_PV1 = 132, + TEGRA_PIN_DIRECTDC1_OUT0_PV2 = 133, + TEGRA_PIN_DIRECTDC1_OUT1_PV3 = 134, + TEGRA_PIN_DIRECTDC1_OUT2_PV4 = 135, + TEGRA_PIN_DIRECTDC1_OUT3_PV5 = 136, + TEGRA_PIN_DIRECTDC1_OUT4_PV6 = 137, + TEGRA_PIN_DIRECTDC1_OUT5_PV7 = 138, + TEGRA_PIN_DIRECTDC1_OUT6_PW0 = 139, + TEGRA_PIN_DIRECTDC1_OUT7_PW1 = 140, + TEGRA_PIN_GPU_PWR_REQ_PX0___2 = 141, + TEGRA_PIN_CV_PWR_REQ_PX1___2 = 142, + TEGRA_PIN_GP_PWM2_PX2___2 = 143, + TEGRA_PIN_GP_PWM3_PX3___2 = 144, + TEGRA_PIN_UART2_TX_PX4___2 = 145, + TEGRA_PIN_UART2_RX_PX5___2 = 146, + TEGRA_PIN_UART2_RTS_PX6___2 = 147, + TEGRA_PIN_UART2_CTS_PX7___2 = 148, + TEGRA_PIN_SPI3_SCK_PY0___2 = 149, + TEGRA_PIN_SPI3_MISO_PY1___2 = 150, + TEGRA_PIN_SPI3_MOSI_PY2___2 = 151, + TEGRA_PIN_SPI3_CS0_PY3___2 = 152, + TEGRA_PIN_SPI3_CS1_PY4___2 = 153, + TEGRA_PIN_UART5_TX_PY5___2 = 154, + TEGRA_PIN_UART5_RX_PY6___2 = 155, + TEGRA_PIN_UART5_RTS_PY7___2 = 156, + TEGRA_PIN_UART5_CTS_PZ0___2 = 157, + TEGRA_PIN_USB_VBUS_EN0_PZ1___2 = 158, + TEGRA_PIN_USB_VBUS_EN1_PZ2___2 = 159, + TEGRA_PIN_SPI1_SCK_PZ3___2 = 160, + TEGRA_PIN_SPI1_MISO_PZ4___2 = 161, + TEGRA_PIN_SPI1_MOSI_PZ5___2 = 162, + TEGRA_PIN_SPI1_CS0_PZ6___2 = 163, + TEGRA_PIN_SPI1_CS1_PZ7___2 = 164, + TEGRA_PIN_UFS0_REF_CLK_PFF0 = 165, + TEGRA_PIN_UFS0_RST_PFF1 = 166, + TEGRA_PIN_PEX_L5_CLKREQ_N_PGG0 = 167, + TEGRA_PIN_PEX_L5_RST_N_PGG1 = 168, + TEGRA_PIN_DIRECTDC_COMP = 169, + TEGRA_PIN_SDMMC4_CLK = 170, + TEGRA_PIN_SDMMC4_CMD = 171, + TEGRA_PIN_SDMMC4_DQS = 172, + TEGRA_PIN_SDMMC4_DAT7 = 173, + TEGRA_PIN_SDMMC4_DAT6 = 174, + TEGRA_PIN_SDMMC4_DAT5 = 175, + TEGRA_PIN_SDMMC4_DAT4 = 176, + TEGRA_PIN_SDMMC4_DAT3 = 177, + TEGRA_PIN_SDMMC4_DAT2 = 178, + TEGRA_PIN_SDMMC4_DAT1 = 179, + TEGRA_PIN_SDMMC4_DAT0 = 180, + TEGRA_PIN_SDMMC1_COMP___2 = 181, + TEGRA_PIN_SDMMC1_HV_TRIM = 182, + TEGRA_PIN_SDMMC3_COMP = 183, + TEGRA_PIN_SDMMC3_HV_TRIM = 184, + TEGRA_PIN_EQOS_COMP___2 = 185, + TEGRA_PIN_QSPI_COMP___2 = 186, +}; + +enum { + TEST_NONE = 0, + TEST_CORE = 1, + TEST_CPUS = 2, + TEST_PLATFORM = 3, + TEST_DEVICES = 4, + TEST_FREEZER = 5, + __TEST_AFTER_LAST = 6, +}; + +enum { + THRESHOLD_INDEX_0 = 0, + THRESHOLD_INDEX_1 = 1, + THRESHOLD_INDEX_COUNT = 2, +}; + +enum { + TLS_ALERT_DESC_CLOSE_NOTIFY = 0, + TLS_ALERT_DESC_UNEXPECTED_MESSAGE = 10, + TLS_ALERT_DESC_BAD_RECORD_MAC = 20, + TLS_ALERT_DESC_RECORD_OVERFLOW = 22, + TLS_ALERT_DESC_HANDSHAKE_FAILURE = 40, + TLS_ALERT_DESC_BAD_CERTIFICATE = 42, + TLS_ALERT_DESC_UNSUPPORTED_CERTIFICATE = 43, + TLS_ALERT_DESC_CERTIFICATE_REVOKED = 44, + TLS_ALERT_DESC_CERTIFICATE_EXPIRED = 45, + TLS_ALERT_DESC_CERTIFICATE_UNKNOWN = 46, + TLS_ALERT_DESC_ILLEGAL_PARAMETER = 47, + TLS_ALERT_DESC_UNKNOWN_CA = 48, + TLS_ALERT_DESC_ACCESS_DENIED = 49, + TLS_ALERT_DESC_DECODE_ERROR = 50, + TLS_ALERT_DESC_DECRYPT_ERROR = 51, + TLS_ALERT_DESC_TOO_MANY_CIDS_REQUESTED = 52, + TLS_ALERT_DESC_PROTOCOL_VERSION = 70, + TLS_ALERT_DESC_INSUFFICIENT_SECURITY = 71, + TLS_ALERT_DESC_INTERNAL_ERROR = 80, + TLS_ALERT_DESC_INAPPROPRIATE_FALLBACK = 86, + TLS_ALERT_DESC_USER_CANCELED = 90, + TLS_ALERT_DESC_MISSING_EXTENSION = 109, + TLS_ALERT_DESC_UNSUPPORTED_EXTENSION = 110, + TLS_ALERT_DESC_UNRECOGNIZED_NAME = 112, + TLS_ALERT_DESC_BAD_CERTIFICATE_STATUS_RESPONSE = 113, + TLS_ALERT_DESC_UNKNOWN_PSK_IDENTITY = 115, + TLS_ALERT_DESC_CERTIFICATE_REQUIRED = 116, + TLS_ALERT_DESC_NO_APPLICATION_PROTOCOL = 120, +}; + +enum { + TLS_ALERT_LEVEL_WARNING = 1, + TLS_ALERT_LEVEL_FATAL = 2, +}; + +enum { + TLS_NO_KEYRING = 0, + TLS_NO_PEERID = 0, + TLS_NO_CERT = 0, + TLS_NO_PRIVKEY = 0, +}; + +enum { + TLS_RECORD_TYPE_CHANGE_CIPHER_SPEC = 20, + TLS_RECORD_TYPE_ALERT = 21, + TLS_RECORD_TYPE_HANDSHAKE = 22, + TLS_RECORD_TYPE_DATA = 23, + TLS_RECORD_TYPE_HEARTBEAT = 24, + TLS_RECORD_TYPE_TLS12_CID = 25, + TLS_RECORD_TYPE_ACK = 26, +}; + +enum { + TOO_MANY_CLOSE = -1, + TOO_MANY_OPEN = -2, + MISSING_QUOTE = -3, +}; + +enum { + TPS65090_IRQ_INTERRUPT = 0, + TPS65090_IRQ_VAC_STATUS_CHANGE = 1, + TPS65090_IRQ_VSYS_STATUS_CHANGE = 2, + TPS65090_IRQ_BAT_STATUS_CHANGE = 3, + TPS65090_IRQ_CHARGING_STATUS_CHANGE = 4, + TPS65090_IRQ_CHARGING_COMPLETE = 5, + TPS65090_IRQ_OVERLOAD_DCDC1 = 6, + TPS65090_IRQ_OVERLOAD_DCDC2 = 7, + TPS65090_IRQ_OVERLOAD_DCDC3 = 8, + TPS65090_IRQ_OVERLOAD_FET1 = 9, + TPS65090_IRQ_OVERLOAD_FET2 = 10, + TPS65090_IRQ_OVERLOAD_FET3 = 11, + TPS65090_IRQ_OVERLOAD_FET4 = 12, + TPS65090_IRQ_OVERLOAD_FET5 = 13, + TPS65090_IRQ_OVERLOAD_FET6 = 14, + TPS65090_IRQ_OVERLOAD_FET7 = 15, +}; + +enum { + TPS65090_REGULATOR_DCDC1 = 0, + TPS65090_REGULATOR_DCDC2 = 1, + TPS65090_REGULATOR_DCDC3 = 2, + TPS65090_REGULATOR_FET1 = 3, + TPS65090_REGULATOR_FET2 = 4, + TPS65090_REGULATOR_FET3 = 5, + TPS65090_REGULATOR_FET4 = 6, + TPS65090_REGULATOR_FET5 = 7, + TPS65090_REGULATOR_FET6 = 8, + TPS65090_REGULATOR_FET7 = 9, + TPS65090_REGULATOR_LDO1 = 10, + TPS65090_REGULATOR_LDO2 = 11, + TPS65090_REGULATOR_MAX = 12, +}; + +enum { + TPS6586X_ID_SYS = 0, + TPS6586X_ID_SM_0 = 1, + TPS6586X_ID_SM_1 = 2, + TPS6586X_ID_SM_2 = 3, + TPS6586X_ID_LDO_0 = 4, + TPS6586X_ID_LDO_1 = 5, + TPS6586X_ID_LDO_2 = 6, + TPS6586X_ID_LDO_3 = 7, + TPS6586X_ID_LDO_4 = 8, + TPS6586X_ID_LDO_5 = 9, + TPS6586X_ID_LDO_6 = 10, + TPS6586X_ID_LDO_7 = 11, + TPS6586X_ID_LDO_8 = 12, + TPS6586X_ID_LDO_9 = 13, + TPS6586X_ID_LDO_RTC = 14, + TPS6586X_ID_MAX_REGULATOR = 15, +}; + +enum { + TPS6586X_INT_PLDO_0 = 0, + TPS6586X_INT_PLDO_1 = 1, + TPS6586X_INT_PLDO_2 = 2, + TPS6586X_INT_PLDO_3 = 3, + TPS6586X_INT_PLDO_4 = 4, + TPS6586X_INT_PLDO_5 = 5, + TPS6586X_INT_PLDO_6 = 6, + TPS6586X_INT_PLDO_7 = 7, + TPS6586X_INT_COMP_DET = 8, + TPS6586X_INT_ADC = 9, + TPS6586X_INT_PLDO_8 = 10, + TPS6586X_INT_PLDO_9 = 11, + TPS6586X_INT_PSM_0 = 12, + TPS6586X_INT_PSM_1 = 13, + TPS6586X_INT_PSM_2 = 14, + TPS6586X_INT_PSM_3 = 15, + TPS6586X_INT_RTC_ALM1 = 16, + TPS6586X_INT_ACUSB_OVP = 17, + TPS6586X_INT_USB_DET = 18, + TPS6586X_INT_AC_DET = 19, + TPS6586X_INT_BAT_DET = 20, + TPS6586X_INT_CHG_STAT = 21, + TPS6586X_INT_CHG_TEMP = 22, + TPS6586X_INT_PP = 23, + TPS6586X_INT_RESUME = 24, + TPS6586X_INT_LOW_SYS = 25, + TPS6586X_INT_RTC_ALM2 = 26, +}; + +enum { + TP_ERR_FILE_NOT_FOUND = 0, + TP_ERR_NO_REGULAR_FILE = 1, + TP_ERR_BAD_REFCNT = 2, + TP_ERR_REFCNT_OPEN_BRACE = 3, + TP_ERR_BAD_REFCNT_SUFFIX = 4, + TP_ERR_BAD_UPROBE_OFFS = 5, + TP_ERR_BAD_MAXACT_TYPE = 6, + TP_ERR_BAD_MAXACT = 7, + TP_ERR_MAXACT_TOO_BIG = 8, + TP_ERR_BAD_PROBE_ADDR = 9, + TP_ERR_NON_UNIQ_SYMBOL = 10, + TP_ERR_BAD_RETPROBE = 11, + TP_ERR_NO_TRACEPOINT = 12, + TP_ERR_BAD_TP_NAME = 13, + TP_ERR_BAD_ADDR_SUFFIX = 14, + TP_ERR_NO_GROUP_NAME = 15, + TP_ERR_GROUP_TOO_LONG = 16, + TP_ERR_BAD_GROUP_NAME = 17, + TP_ERR_NO_EVENT_NAME = 18, + TP_ERR_EVENT_TOO_LONG = 19, + TP_ERR_BAD_EVENT_NAME = 20, + TP_ERR_EVENT_EXIST = 21, + TP_ERR_RETVAL_ON_PROBE = 22, + TP_ERR_NO_RETVAL = 23, + TP_ERR_BAD_STACK_NUM = 24, + TP_ERR_BAD_ARG_NUM = 25, + TP_ERR_BAD_VAR = 26, + TP_ERR_BAD_REG_NAME = 27, + TP_ERR_BAD_MEM_ADDR = 28, + TP_ERR_BAD_IMM = 29, + TP_ERR_IMMSTR_NO_CLOSE = 30, + TP_ERR_FILE_ON_KPROBE = 31, + TP_ERR_BAD_FILE_OFFS = 32, + TP_ERR_SYM_ON_UPROBE = 33, + TP_ERR_TOO_MANY_OPS = 34, + TP_ERR_DEREF_NEED_BRACE = 35, + TP_ERR_BAD_DEREF_OFFS = 36, + TP_ERR_DEREF_OPEN_BRACE = 37, + TP_ERR_COMM_CANT_DEREF = 38, + TP_ERR_BAD_FETCH_ARG = 39, + TP_ERR_ARRAY_NO_CLOSE = 40, + TP_ERR_BAD_ARRAY_SUFFIX = 41, + TP_ERR_BAD_ARRAY_NUM = 42, + TP_ERR_ARRAY_TOO_BIG = 43, + TP_ERR_BAD_TYPE = 44, + TP_ERR_BAD_STRING = 45, + TP_ERR_BAD_SYMSTRING = 46, + TP_ERR_BAD_BITFIELD = 47, + TP_ERR_ARG_NAME_TOO_LONG = 48, + TP_ERR_NO_ARG_NAME = 49, + TP_ERR_BAD_ARG_NAME = 50, + TP_ERR_USED_ARG_NAME = 51, + TP_ERR_ARG_TOO_LONG = 52, + TP_ERR_NO_ARG_BODY = 53, + TP_ERR_BAD_INSN_BNDRY = 54, + TP_ERR_FAIL_REG_PROBE = 55, + TP_ERR_DIFF_PROBE_TYPE = 56, + TP_ERR_DIFF_ARG_TYPE = 57, + TP_ERR_SAME_PROBE = 58, + TP_ERR_NO_EVENT_INFO = 59, + TP_ERR_BAD_ATTACH_EVENT = 60, + TP_ERR_BAD_ATTACH_ARG = 61, + TP_ERR_NO_EP_FILTER = 62, + TP_ERR_NOSUP_BTFARG = 63, + TP_ERR_NO_BTFARG = 64, + TP_ERR_NO_BTF_ENTRY = 65, + TP_ERR_BAD_VAR_ARGS = 66, + TP_ERR_NOFENTRY_ARGS = 67, + TP_ERR_DOUBLE_ARGS = 68, + TP_ERR_ARGS_2LONG = 69, + TP_ERR_ARGIDX_2BIG = 70, + TP_ERR_NO_PTR_STRCT = 71, + TP_ERR_NOSUP_DAT_ARG = 72, + TP_ERR_BAD_HYPHEN = 73, + TP_ERR_NO_BTF_FIELD = 74, + TP_ERR_BAD_BTF_TID = 75, + TP_ERR_BAD_TYPE4STR = 76, + TP_ERR_NEED_STRING_TYPE = 77, + TP_ERR_TOO_MANY_ARGS = 78, + TP_ERR_TOO_MANY_EARGS = 79, +}; + +enum { + TRACEFS_EVENT_INODE = 2, + TRACEFS_GID_PERM_SET = 4, + TRACEFS_UID_PERM_SET = 8, + TRACEFS_INSTANCE_INODE = 16, +}; + +enum { + TRACE_ARRAY_FL_GLOBAL = 1, + TRACE_ARRAY_FL_BOOT = 2, + TRACE_ARRAY_FL_LAST_BOOT = 4, + TRACE_ARRAY_FL_MOD_INIT = 8, +}; + +enum { + TRACE_CTX_NMI = 0, + TRACE_CTX_IRQ = 1, + TRACE_CTX_SOFTIRQ = 2, + TRACE_CTX_NORMAL = 3, + TRACE_CTX_TRANSITION = 4, +}; + +enum { + TRACE_EVENT_FL_CAP_ANY = 1, + TRACE_EVENT_FL_NO_SET_FILTER = 2, + TRACE_EVENT_FL_IGNORE_ENABLE = 4, + TRACE_EVENT_FL_TRACEPOINT = 8, + TRACE_EVENT_FL_DYNAMIC = 16, + TRACE_EVENT_FL_KPROBE = 32, + TRACE_EVENT_FL_UPROBE = 64, + TRACE_EVENT_FL_EPROBE = 128, + TRACE_EVENT_FL_FPROBE = 256, + TRACE_EVENT_FL_CUSTOM = 512, + TRACE_EVENT_FL_TEST_STR = 1024, +}; + +enum { + TRACE_EVENT_FL_CAP_ANY_BIT = 0, + TRACE_EVENT_FL_NO_SET_FILTER_BIT = 1, + TRACE_EVENT_FL_IGNORE_ENABLE_BIT = 2, + TRACE_EVENT_FL_TRACEPOINT_BIT = 3, + TRACE_EVENT_FL_DYNAMIC_BIT = 4, + TRACE_EVENT_FL_KPROBE_BIT = 5, + TRACE_EVENT_FL_UPROBE_BIT = 6, + TRACE_EVENT_FL_EPROBE_BIT = 7, + TRACE_EVENT_FL_FPROBE_BIT = 8, + TRACE_EVENT_FL_CUSTOM_BIT = 9, + TRACE_EVENT_FL_TEST_STR_BIT = 10, +}; + +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_RECORD_RECURSION_BIT = 12, +}; + +enum { + TRACE_FUNC_NO_OPTS = 0, + TRACE_FUNC_OPT_STACK = 1, + TRACE_FUNC_OPT_NO_REPEATS = 2, + TRACE_FUNC_OPT_HIGHEST_BIT = 4, +}; + +enum { + TRACE_GRAPH_FL = 1, + TRACE_GRAPH_DEPTH_START_BIT = 2, + TRACE_GRAPH_DEPTH_END_BIT = 3, + TRACE_GRAPH_NOTRACE_BIT = 4, +}; + +enum { + TRACE_NOP_OPT_ACCEPT = 1, + TRACE_NOP_OPT_REFUSE = 2, +}; + +enum { + TRACE_PIDS = 1, + TRACE_NO_PIDS = 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 { + TVPADDRW = 0, + TVPPDATA = 4, + TVPPMASK = 8, + TVPPADRR = 12, + TVPCADRW = 16, + TVPCDATA = 20, + TVPCADRR = 28, + TVPDCCTL = 36, + TVPIDATA = 40, + TVPCRDAT = 44, + TVPCXPOL = 48, + TVPCXPOH = 52, + TVPCYPOL = 56, + TVPCYPOH = 60, +}; + +enum { + TVPIRREV = 1, + TVPIRICC = 6, + TVPIRBRC = 7, + TVPIRLAC = 15, + TVPIRTCC = 24, + TVPIRMXC = 25, + TVPIRCLS = 26, + TVPIRPPG = 28, + TVPIRGEC = 29, + TVPIRMIC = 30, + TVPIRPLA = 44, + TVPIRPPD = 45, + TVPIRMPD = 46, + TVPIRLPD = 47, + TVPIRCKL = 48, + TVPIRCKH = 49, + TVPIRCRL = 50, + TVPIRCRH = 51, + TVPIRCGL = 52, + TVPIRCGH = 53, + TVPIRCBL = 54, + TVPIRCBH = 55, + TVPIRCKC = 56, + TVPIRMLC = 57, + TVPIRSEN = 58, + TVPIRTMD = 59, + TVPIRRML = 60, + TVPIRRMM = 61, + TVPIRRMS = 62, + TVPIRDID = 63, + TVPIRRES = 255, +}; + +enum { + TYPE_MAX8998 = 0, + TYPE_LP3974 = 1, + TYPE_LP3979 = 2, +}; + +enum { + UARTDM_1P1 = 1, + UARTDM_1P2 = 2, + UARTDM_1P3 = 3, + UARTDM_1P4 = 4, +}; + +enum { + UART_IRQ_SUM = 0, + UART_RX_IRQ = 0, + UART_TX_IRQ = 1, + UART_IRQ_COUNT = 2, +}; + +enum { + UDP_BPF_IPV4 = 0, + UDP_BPF_IPV6 = 1, + UDP_BPF_NUM_PROTS = 2, +}; + +enum { + UDP_FLAGS_CORK = 0, + UDP_FLAGS_NO_CHECK6_TX = 1, + UDP_FLAGS_NO_CHECK6_RX = 2, + UDP_FLAGS_GRO_ENABLED = 3, + UDP_FLAGS_ACCEPT_FRAGLIST = 4, + UDP_FLAGS_ACCEPT_L4 = 5, + UDP_FLAGS_ENCAP_ENABLED = 6, + UDP_FLAGS_UDPLITE_SEND_CC = 7, + UDP_FLAGS_UDPLITE_RECV_CC = 8, +}; + +enum { + UDP_MIB_NUM = 0, + UDP_MIB_INDATAGRAMS = 1, + UDP_MIB_NOPORTS = 2, + UDP_MIB_INERRORS = 3, + UDP_MIB_OUTDATAGRAMS = 4, + UDP_MIB_RCVBUFERRORS = 5, + UDP_MIB_SNDBUFERRORS = 6, + UDP_MIB_CSUMERRORS = 7, + UDP_MIB_IGNOREDMULTI = 8, + UDP_MIB_MEMERRORS = 9, + __UDP_MIB_MAX = 10, +}; + +enum { + 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 { + VP_MSIX_CONFIG_VECTOR = 0, + VP_MSIX_VQ_VECTOR = 1, +}; + +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 { + V_ARMADA_7K = 1, + V_ARMADA_8K_CPM = 2, + V_ARMADA_8K_CPS = 4, + V_CP115_STANDALONE = 8, + V_ARMADA_7K_8K_CPM = 3, + V_ARMADA_7K_8K_CPS = 5, +}; + +enum { + WALK_TRAILING = 1, + WALK_MORE = 2, + WALK_NOFOLLOW = 4, +}; + +enum { + WBT_RWQ_BG = 0, + WBT_RWQ_SWAP = 1, + WBT_RWQ_DISCARD = 2, + WBT_NUM_RWQ = 3, +}; + +enum { + WBT_STATE_ON_DEFAULT = 1, + WBT_STATE_ON_MANUAL = 2, + WBT_STATE_OFF_DEFAULT = 3, + WBT_STATE_OFF_MANUAL = 4, +}; + +enum { + XA_CHECK_SCHED = 4096, +}; + +enum { + XDP_ATTACHED_NONE = 0, + XDP_ATTACHED_DRV = 1, + XDP_ATTACHED_SKB = 2, + XDP_ATTACHED_HW = 3, + XDP_ATTACHED_MULTI = 4, +}; + +enum { + XFRM_DEV_OFFLOAD_FLAG_ACQ = 1, +}; + +enum { + XFRM_DEV_OFFLOAD_IN = 1, + XFRM_DEV_OFFLOAD_OUT = 2, + XFRM_DEV_OFFLOAD_FWD = 3, +}; + +enum { + XFRM_DEV_OFFLOAD_UNSPECIFIED = 0, + XFRM_DEV_OFFLOAD_CRYPTO = 1, + XFRM_DEV_OFFLOAD_PACKET = 2, +}; + +enum { + XFRM_LOOKUP_ICMP = 1, + XFRM_LOOKUP_QUEUE = 2, + XFRM_LOOKUP_KEEP_DST_REF = 4, +}; + +enum { + XFRM_MODE_FLAG_TUNNEL = 1, +}; + +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_POLICY_IN = 0, + XFRM_POLICY_OUT = 1, + XFRM_POLICY_FWD = 2, + XFRM_POLICY_MASK = 3, + XFRM_POLICY_MAX = 3, +}; + +enum { + XFRM_POLICY_TYPE_MAIN = 0, + XFRM_POLICY_TYPE_SUB = 1, + XFRM_POLICY_TYPE_MAX = 2, + XFRM_POLICY_TYPE_ANY = 255, +}; + +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 { + ZONELIST_FALLBACK = 0, + ZONELIST_NOFALLBACK = 1, + MAX_ZONELISTS = 2, +}; + +enum { + ZSTDbss_compress = 0, + ZSTDbss_noCompress = 1, +}; + +enum { + _DQUOT_USAGE_ENABLED = 0, + _DQUOT_LIMITS_ENABLED = 1, + _DQUOT_SUSPENDED = 2, + _DQUOT_STATE_FLAGS = 3, +}; + +enum { + _IRQ_DEFAULT_INIT_FLAGS = 0, + _IRQ_PER_CPU = 512, + _IRQ_LEVEL = 256, + _IRQ_NOPROBE = 1024, + _IRQ_NOREQUEST = 2048, + _IRQ_NOTHREAD = 65536, + _IRQ_NOAUTOEN = 4096, + _IRQ_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 = 2080527, +}; + +enum { + __IOAM6_IPTUNNEL_MODE_MIN = 0, + IOAM6_IPTUNNEL_MODE_INLINE = 1, + IOAM6_IPTUNNEL_MODE_ENCAP = 2, + IOAM6_IPTUNNEL_MODE_AUTO = 3, + __IOAM6_IPTUNNEL_MODE_MAX = 4, +}; + +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 { + __PERCPU_REF_ATOMIC = 1, + __PERCPU_REF_DEAD = 2, + __PERCPU_REF_ATOMIC_DEAD = 3, + __PERCPU_REF_FLAG_BITS = 2, +}; + +enum { + __SCHED_FEAT_PLACE_LAG = 0, + __SCHED_FEAT_PLACE_DEADLINE_INITIAL = 1, + __SCHED_FEAT_PLACE_REL_DEADLINE = 2, + __SCHED_FEAT_RUN_TO_PARITY = 3, + __SCHED_FEAT_PREEMPT_SHORT = 4, + __SCHED_FEAT_NEXT_BUDDY = 5, + __SCHED_FEAT_PICK_BUDDY = 6, + __SCHED_FEAT_CACHE_HOT_BUDDY = 7, + __SCHED_FEAT_DELAY_DEQUEUE = 8, + __SCHED_FEAT_DELAY_ZERO = 9, + __SCHED_FEAT_WAKEUP_PREEMPTION = 10, + __SCHED_FEAT_HRTICK = 11, + __SCHED_FEAT_HRTICK_DL = 12, + __SCHED_FEAT_NONTASK_CAPACITY = 13, + __SCHED_FEAT_TTWU_QUEUE = 14, + __SCHED_FEAT_SIS_UTIL = 15, + __SCHED_FEAT_WARN_DOUBLE_CLOCK = 16, + __SCHED_FEAT_RT_PUSH_IPI = 17, + __SCHED_FEAT_RT_RUNTIME_SHARE = 18, + __SCHED_FEAT_LB_MIN = 19, + __SCHED_FEAT_ATTACH_AGE_LOAD = 20, + __SCHED_FEAT_WA_IDLE = 21, + __SCHED_FEAT_WA_WEIGHT = 22, + __SCHED_FEAT_WA_BIAS = 23, + __SCHED_FEAT_UTIL_EST = 24, + __SCHED_FEAT_LATENCY_WARN = 25, + __SCHED_FEAT_NR = 26, +}; + +enum { + __SD_BALANCE_NEWIDLE = 0, + __SD_BALANCE_EXEC = 1, + __SD_BALANCE_FORK = 2, + __SD_BALANCE_WAKE = 3, + __SD_WAKE_AFFINE = 4, + __SD_ASYM_CPUCAPACITY = 5, + __SD_ASYM_CPUCAPACITY_FULL = 6, + __SD_SHARE_CPUCAPACITY = 7, + __SD_CLUSTER = 8, + __SD_SHARE_LLC = 9, + __SD_SERIALIZE = 10, + __SD_ASYM_PACKING = 11, + __SD_PREFER_SIBLING = 12, + __SD_OVERLAP = 13, + __SD_NUMA = 14, + __SD_FLAG_CNT = 15, +}; + +enum { + ___GFP_DMA_BIT = 0, + ___GFP_HIGHMEM_BIT = 1, + ___GFP_DMA32_BIT = 2, + ___GFP_MOVABLE_BIT = 3, + ___GFP_RECLAIMABLE_BIT = 4, + ___GFP_HIGH_BIT = 5, + ___GFP_IO_BIT = 6, + ___GFP_FS_BIT = 7, + ___GFP_ZERO_BIT = 8, + ___GFP_UNUSED_BIT = 9, + ___GFP_DIRECT_RECLAIM_BIT = 10, + ___GFP_KSWAPD_RECLAIM_BIT = 11, + ___GFP_WRITE_BIT = 12, + ___GFP_NOWARN_BIT = 13, + ___GFP_RETRY_MAYFAIL_BIT = 14, + ___GFP_NOFAIL_BIT = 15, + ___GFP_NORETRY_BIT = 16, + ___GFP_MEMALLOC_BIT = 17, + ___GFP_COMP_BIT = 18, + ___GFP_NOMEMALLOC_BIT = 19, + ___GFP_HARDWALL_BIT = 20, + ___GFP_THISNODE_BIT = 21, + ___GFP_ACCOUNT_BIT = 22, + ___GFP_ZEROTAGS_BIT = 23, + ___GFP_NO_OBJ_EXT_BIT = 24, + ___GFP_LAST_BIT = 25, +}; + +enum { + __ctx_convertBPF_PROG_TYPE_SOCKET_FILTER = 0, + __ctx_convertBPF_PROG_TYPE_SCHED_CLS = 1, + __ctx_convertBPF_PROG_TYPE_SCHED_ACT = 2, + __ctx_convertBPF_PROG_TYPE_XDP = 3, + __ctx_convertBPF_PROG_TYPE_CGROUP_SKB = 4, + __ctx_convertBPF_PROG_TYPE_CGROUP_SOCK = 5, + __ctx_convertBPF_PROG_TYPE_CGROUP_SOCK_ADDR = 6, + __ctx_convertBPF_PROG_TYPE_LWT_IN = 7, + __ctx_convertBPF_PROG_TYPE_LWT_OUT = 8, + __ctx_convertBPF_PROG_TYPE_LWT_XMIT = 9, + __ctx_convertBPF_PROG_TYPE_LWT_SEG6LOCAL = 10, + __ctx_convertBPF_PROG_TYPE_SOCK_OPS = 11, + __ctx_convertBPF_PROG_TYPE_SK_SKB = 12, + __ctx_convertBPF_PROG_TYPE_SK_MSG = 13, + __ctx_convertBPF_PROG_TYPE_FLOW_DISSECTOR = 14, + __ctx_convertBPF_PROG_TYPE_KPROBE = 15, + __ctx_convertBPF_PROG_TYPE_TRACEPOINT = 16, + __ctx_convertBPF_PROG_TYPE_PERF_EVENT = 17, + __ctx_convertBPF_PROG_TYPE_RAW_TRACEPOINT = 18, + __ctx_convertBPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 19, + __ctx_convertBPF_PROG_TYPE_TRACING = 20, + __ctx_convertBPF_PROG_TYPE_CGROUP_DEVICE = 21, + __ctx_convertBPF_PROG_TYPE_CGROUP_SYSCTL = 22, + __ctx_convertBPF_PROG_TYPE_CGROUP_SOCKOPT = 23, + __ctx_convertBPF_PROG_TYPE_SK_REUSEPORT = 24, + __ctx_convertBPF_PROG_TYPE_SK_LOOKUP = 25, + __ctx_convertBPF_PROG_TYPE_STRUCT_OPS = 26, + __ctx_convertBPF_PROG_TYPE_EXT = 27, + __ctx_convertBPF_PROG_TYPE_LSM = 28, + __ctx_convertBPF_PROG_TYPE_SYSCALL = 29, + __ctx_convertBPF_PROG_TYPE_NETFILTER = 30, + __ctx_convert_unused = 31, +}; + +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_clusters_in_group = 10, + attr_mb_order = 11, + attr_feature = 12, + attr_pointer_pi = 13, + attr_pointer_ui = 14, + attr_pointer_ul = 15, + attr_pointer_u64 = 16, + attr_pointer_u8 = 17, + attr_pointer_string = 18, + attr_pointer_atomic = 19, + attr_journal_task = 20, +}; + +enum { + blank_off = 0, + blank_normal_wait = 1, + blank_vesa_wait = 2, +}; + +enum { + cpuset = 0, + possible = 1, + fail = 2, +}; + +enum { + dns_key_data = 0, + dns_key_error = 1, +}; + +enum { + false = 0, + true = 1, +}; + +enum { + kvm_ioeventfd_flag_nr_datamatch = 0, + kvm_ioeventfd_flag_nr_pio = 1, + kvm_ioeventfd_flag_nr_deassign = 2, + kvm_ioeventfd_flag_nr_virtio_ccw_notify = 3, + kvm_ioeventfd_flag_nr_fast_mmio = 4, + kvm_ioeventfd_flag_nr_max = 5, +}; + +enum { + mechtype_caddy = 0, + mechtype_tray = 1, + mechtype_popup = 2, + mechtype_individual_changer = 4, + mechtype_cartridge_changer = 5, +}; + +enum { + ncsi_dev_state_major = 65280, + ncsi_dev_state_minor = 255, + ncsi_dev_state_probe_deselect = 513, + ncsi_dev_state_probe_package = 514, + ncsi_dev_state_probe_channel = 515, + ncsi_dev_state_probe_mlx_gma = 516, + ncsi_dev_state_probe_mlx_smaf = 517, + ncsi_dev_state_probe_cis = 518, + ncsi_dev_state_probe_keep_phy = 519, + ncsi_dev_state_probe_gvi = 520, + ncsi_dev_state_probe_gc = 521, + ncsi_dev_state_probe_gls = 522, + ncsi_dev_state_probe_dp = 523, + ncsi_dev_state_config_sp = 769, + ncsi_dev_state_config_cis = 770, + ncsi_dev_state_config_oem_gma = 771, + ncsi_dev_state_config_apply_mac = 772, + ncsi_dev_state_config_clear_vids = 773, + ncsi_dev_state_config_svf = 774, + ncsi_dev_state_config_ev = 775, + ncsi_dev_state_config_sma = 776, + ncsi_dev_state_config_ebf = 777, + ncsi_dev_state_config_dgmf = 778, + ncsi_dev_state_config_ecnt = 779, + ncsi_dev_state_config_ec = 780, + ncsi_dev_state_config_ae = 781, + ncsi_dev_state_config_gls = 782, + ncsi_dev_state_config_done = 783, + ncsi_dev_state_suspend_select = 1025, + ncsi_dev_state_suspend_gls = 1026, + ncsi_dev_state_suspend_dcnt = 1027, + ncsi_dev_state_suspend_dc = 1028, + ncsi_dev_state_suspend_deselect = 1029, + ncsi_dev_state_suspend_done = 1030, +}; + +enum { + ncsi_dev_state_registered = 0, + ncsi_dev_state_functional = 256, + ncsi_dev_state_probe = 512, + ncsi_dev_state_config = 768, + ncsi_dev_state_suspend = 1024, +}; + +enum { + none = 0, + day = 1, + month = 2, + year = 3, +}; + +enum { + pci_channel_io_normal = 1, + pci_channel_io_frozen = 2, + pci_channel_io_perm_failure = 3, +}; + +enum { + preempt_dynamic_undefined = -1, + preempt_dynamic_none = 0, + preempt_dynamic_voluntary = 1, + preempt_dynamic_full = 2, + preempt_dynamic_lazy = 3, +}; + +enum { + ptr_explicit = 0, + ptr_ext4_sb_info_offset = 1, + ptr_ext4_super_block_offset = 2, +}; + +enum { + type_kind_int = 0, + type_kind_float = 1, + type_unknown = 65535, +}; + +typedef enum { + BIT_DStream_unfinished = 0, + BIT_DStream_endOfBuffer = 1, + BIT_DStream_completed = 2, + BIT_DStream_overflow = 3, +} BIT_DStream_status; + +typedef enum { + EfiPciIoWidthUint8 = 0, + EfiPciIoWidthUint16 = 1, + EfiPciIoWidthUint32 = 2, + EfiPciIoWidthUint64 = 3, + EfiPciIoWidthFifoUint8 = 4, + EfiPciIoWidthFifoUint16 = 5, + EfiPciIoWidthFifoUint32 = 6, + EfiPciIoWidthFifoUint64 = 7, + EfiPciIoWidthFillUint8 = 8, + EfiPciIoWidthFillUint16 = 9, + EfiPciIoWidthFillUint32 = 10, + EfiPciIoWidthFillUint64 = 11, + EfiPciIoWidthMaximum = 12, +} EFI_PCI_IO_PROTOCOL_WIDTH; + +typedef enum { + EfiTimerCancel = 0, + EfiTimerPeriodic = 1, + EfiTimerRelative = 2, +} EFI_TIMER_DELAY; + +typedef enum { + ZSTD_error_no_error = 0, + ZSTD_error_GENERIC = 1, + ZSTD_error_prefix_unknown = 10, + ZSTD_error_version_unsupported = 12, + ZSTD_error_frameParameter_unsupported = 14, + ZSTD_error_frameParameter_windowTooLarge = 16, + ZSTD_error_corruption_detected = 20, + ZSTD_error_checksum_wrong = 22, + ZSTD_error_dictionary_corrupted = 30, + ZSTD_error_dictionary_wrong = 32, + ZSTD_error_dictionaryCreation_failed = 34, + ZSTD_error_parameter_unsupported = 40, + ZSTD_error_parameter_outOfBound = 42, + ZSTD_error_tableLog_tooLarge = 44, + ZSTD_error_maxSymbolValue_tooLarge = 46, + ZSTD_error_maxSymbolValue_tooSmall = 48, + ZSTD_error_stage_wrong = 60, + ZSTD_error_init_missing = 62, + ZSTD_error_memory_allocation = 64, + ZSTD_error_workSpace_tooSmall = 66, + ZSTD_error_dstSize_tooSmall = 70, + ZSTD_error_srcSize_wrong = 72, + ZSTD_error_dstBuffer_null = 74, + ZSTD_error_frameIndex_tooLarge = 100, + ZSTD_error_seekableIO = 102, + ZSTD_error_dstBuffer_wrong = 104, + ZSTD_error_srcBuffer_wrong = 105, + ZSTD_error_maxCode = 120, +} ZSTD_ErrorCode; + +typedef ZSTD_ErrorCode ERR_enum; + +typedef enum { + FSE_repeat_none = 0, + FSE_repeat_check = 1, + FSE_repeat_valid = 2, +} FSE_repeat; + +typedef enum { + trustInput = 0, + checkMaxSymbolValue = 1, +} HIST_checkInput_e; + +typedef enum { + HUF_singleStream = 0, + HUF_fourStreams = 1, +} HUF_nbStreams_e; + +typedef enum { + HUF_repeat_none = 0, + HUF_repeat_check = 1, + HUF_repeat_valid = 2, +} HUF_repeat; + +typedef enum { + ZSTD_e_continue = 0, + ZSTD_e_flush = 1, + ZSTD_e_end = 2, +} ZSTD_EndDirective; + +typedef enum { + zop_dynamic = 0, + zop_predef = 1, +} ZSTD_OptPrice_e; + +typedef enum { + ZSTD_reset_session_only = 1, + ZSTD_reset_parameters = 2, + ZSTD_reset_session_and_parameters = 3, +} ZSTD_ResetDirective; + +typedef enum { + ZSTD_bm_buffered = 0, + ZSTD_bm_stable = 1, +} ZSTD_bufferMode_e; + +typedef enum { + ZSTDb_not_buffered = 0, + ZSTDb_buffered = 1, +} ZSTD_buffered_policy_e; + +typedef enum { + ZSTD_cpm_noAttachDict = 0, + ZSTD_cpm_attachDict = 1, + ZSTD_cpm_createCDict = 2, + ZSTD_cpm_unknown = 3, +} ZSTD_cParamMode_e; + +typedef enum { + ZSTD_c_compressionLevel = 100, + ZSTD_c_windowLog = 101, + ZSTD_c_hashLog = 102, + ZSTD_c_chainLog = 103, + ZSTD_c_searchLog = 104, + ZSTD_c_minMatch = 105, + ZSTD_c_targetLength = 106, + ZSTD_c_strategy = 107, + ZSTD_c_enableLongDistanceMatching = 160, + ZSTD_c_ldmHashLog = 161, + ZSTD_c_ldmMinMatch = 162, + ZSTD_c_ldmBucketSizeLog = 163, + ZSTD_c_ldmHashRateLog = 164, + ZSTD_c_contentSizeFlag = 200, + ZSTD_c_checksumFlag = 201, + ZSTD_c_dictIDFlag = 202, + ZSTD_c_nbWorkers = 400, + ZSTD_c_jobSize = 401, + ZSTD_c_overlapLog = 402, + ZSTD_c_experimentalParam1 = 500, + ZSTD_c_experimentalParam2 = 10, + ZSTD_c_experimentalParam3 = 1000, + ZSTD_c_experimentalParam4 = 1001, + ZSTD_c_experimentalParam5 = 1002, + ZSTD_c_experimentalParam6 = 1003, + ZSTD_c_experimentalParam7 = 1004, + ZSTD_c_experimentalParam8 = 1005, + ZSTD_c_experimentalParam9 = 1006, + ZSTD_c_experimentalParam10 = 1007, + ZSTD_c_experimentalParam11 = 1008, + ZSTD_c_experimentalParam12 = 1009, + ZSTD_c_experimentalParam13 = 1010, + ZSTD_c_experimentalParam14 = 1011, + ZSTD_c_experimentalParam15 = 1012, +} ZSTD_cParameter; + +typedef enum { + zcss_init = 0, + zcss_load = 1, + zcss_flush = 2, +} ZSTD_cStreamStage; + +typedef enum { + ZSTDcrp_makeClean = 0, + ZSTDcrp_leaveDirty = 1, +} ZSTD_compResetPolicy_e; + +typedef enum { + ZSTDcs_created = 0, + ZSTDcs_init = 1, + ZSTDcs_ongoing = 2, + ZSTDcs_ending = 3, +} ZSTD_compressionStage_e; + +typedef enum { + ZSTD_cwksp_alloc_objects = 0, + ZSTD_cwksp_alloc_buffers = 1, + ZSTD_cwksp_alloc_aligned = 2, +} ZSTD_cwksp_alloc_phase_e; + +typedef enum { + ZSTD_cwksp_dynamic_alloc = 0, + ZSTD_cwksp_static_alloc = 1, +} ZSTD_cwksp_static_alloc_e; + +typedef enum { + ZSTD_d_windowLogMax = 100, + ZSTD_d_experimentalParam1 = 1000, + ZSTD_d_experimentalParam2 = 1001, + ZSTD_d_experimentalParam3 = 1002, + ZSTD_d_experimentalParam4 = 1003, +} ZSTD_dParameter; + +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 { + zdss_init = 0, + zdss_loadHeader = 1, + zdss_read = 2, + zdss_load = 3, + zdss_flush = 4, +} ZSTD_dStreamStage; + +typedef enum { + ZSTD_defaultDisallowed = 0, + ZSTD_defaultAllowed = 1, +} ZSTD_defaultPolicy_e; + +typedef enum { + ZSTD_dictDefaultAttach = 0, + ZSTD_dictForceAttach = 1, + ZSTD_dictForceCopy = 2, + ZSTD_dictForceLoad = 3, +} ZSTD_dictAttachPref_e; + +typedef enum { + ZSTD_dct_auto = 0, + ZSTD_dct_rawContent = 1, + ZSTD_dct_fullDict = 2, +} ZSTD_dictContentType_e; + +typedef enum { + ZSTD_dlm_byCopy = 0, + ZSTD_dlm_byRef = 1, +} ZSTD_dictLoadMethod_e; + +typedef enum { + ZSTD_noDict = 0, + ZSTD_extDict = 1, + ZSTD_dictMatchState = 2, + ZSTD_dedicatedDictSearch = 3, +} ZSTD_dictMode_e; + +typedef enum { + ZSTD_dtlm_fast = 0, + ZSTD_dtlm_full = 1, +} ZSTD_dictTableLoadMethod_e; + +typedef enum { + ZSTD_use_indefinitely = -1, + ZSTD_dont_use = 0, + ZSTD_use_once = 1, +} ZSTD_dictUses_e; + +typedef enum { + ZSTD_d_validateChecksum = 0, + ZSTD_d_ignoreChecksum = 1, +} ZSTD_forceIgnoreChecksum_e; + +typedef enum { + ZSTD_f_zstd1 = 0, + ZSTD_f_zstd1_magicless = 1, +} ZSTD_format_e; + +typedef enum { + ZSTD_frame = 0, + ZSTD_skippableFrame = 1, +} ZSTD_frameType_e; + +typedef enum { + ZSTDirp_continue = 0, + ZSTDirp_reset = 1, +} ZSTD_indexResetPolicy_e; + +typedef enum { + ZSTD_not_in_dst = 0, + ZSTD_in_dst = 1, + ZSTD_split = 2, +} ZSTD_litLocation_e; + +typedef enum { + ZSTD_llt_none = 0, + ZSTD_llt_literalLength = 1, + ZSTD_llt_matchLength = 2, +} ZSTD_longLengthType_e; + +typedef enum { + ZSTD_lo_isRegularOffset = 0, + ZSTD_lo_isLongOffset = 1, +} ZSTD_longOffset_e; + +typedef enum { + ZSTDnit_frameHeader = 0, + ZSTDnit_blockHeader = 1, + ZSTDnit_block = 2, + ZSTDnit_lastBlock = 3, + ZSTDnit_checksum = 4, + ZSTDnit_skippableFrame = 5, +} ZSTD_nextInputType_e; + +typedef enum { + ZSTD_no_overlap = 0, + ZSTD_overlap_src_before_dst = 1, +} ZSTD_overlap_e; + +typedef enum { + ZSTD_ps_auto = 0, + ZSTD_ps_enable = 1, + ZSTD_ps_disable = 2, +} ZSTD_paramSwitch_e; + +typedef enum { + ZSTD_rmd_refSingleDDict = 0, + ZSTD_rmd_refMultipleDDicts = 1, +} ZSTD_refMultipleDDicts_e; + +typedef enum { + ZSTD_resetTarget_CDict = 0, + ZSTD_resetTarget_CCtx = 1, +} ZSTD_resetTarget_e; + +typedef enum { + ZSTD_sf_noBlockDelimiters = 0, + ZSTD_sf_explicitBlockDelimiters = 1, +} ZSTD_sequenceFormat_e; + +typedef enum { + ZSTD_fast = 1, + ZSTD_dfast = 2, + ZSTD_greedy = 3, + ZSTD_lazy = 4, + ZSTD_lazy2 = 5, + ZSTD_btlazy2 = 6, + ZSTD_btopt = 7, + ZSTD_btultra = 8, + ZSTD_btultra2 = 9, +} ZSTD_strategy; + +typedef 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 enum { + ACPI_IMODE_LOAD_PASS1 = 1, + ACPI_IMODE_LOAD_PASS2 = 2, + ACPI_IMODE_EXECUTE = 3, +} acpi_interpreter_mode; + +typedef enum { + ACPI_TRACE_AML_METHOD = 0, + ACPI_TRACE_AML_OPCODE = 1, + ACPI_TRACE_AML_REGION = 2, +} acpi_trace_event_type; + +typedef enum { + bt_raw = 0, + bt_rle = 1, + bt_compressed = 2, + bt_reserved = 3, +} blockType_e; + +typedef enum { + need_more = 0, + block_done = 1, + finish_started = 2, + finish_done = 3, +} block_state; + +typedef enum { + CODES = 0, + LENS = 1, + DISTS = 2, +} codetype; + +typedef enum { + FILE_MEMORY_MIGRATE = 0, + FILE_CPULIST = 1, + FILE_MEMLIST = 2, + FILE_EFFECTIVE_CPULIST = 3, + FILE_EFFECTIVE_MEMLIST = 4, + FILE_SUBPARTS_CPULIST = 5, + FILE_EXCLUSIVE_CPULIST = 6, + FILE_EFFECTIVE_XCPULIST = 7, + FILE_ISOLATED_CPULIST = 8, + FILE_CPU_EXCLUSIVE = 9, + FILE_MEM_EXCLUSIVE = 10, + FILE_MEM_HARDWALL = 11, + FILE_SCHED_LOAD_BALANCE = 12, + FILE_PARTITION_ROOT = 13, + FILE_SCHED_RELAX_DOMAIN_LEVEL = 14, + FILE_MEMORY_PRESSURE_ENABLED = 15, + FILE_MEMORY_PRESSURE = 16, + FILE_SPREAD_PAGE = 17, + FILE_SPREAD_SLAB = 18, +} cpuset_filetype_t; + +typedef enum { + CS_ONLINE = 0, + CS_CPU_EXCLUSIVE = 1, + CS_MEM_EXCLUSIVE = 2, + CS_MEM_HARDWALL = 3, + CS_MEMORY_MIGRATE = 4, + CS_SCHED_LOAD_BALANCE = 5, + CS_SPREAD_PAGE = 6, + CS_SPREAD_SLAB = 7, +} cpuset_flagbits_t; + +typedef enum { + noDict = 0, + withPrefix64k = 1, + usingExtDict = 2, +} dict_directive; + +typedef enum { + EITHER = 0, + INDEX = 1, + DIRENT = 2, + DIRENT_HTREE = 3, +} dirblock_type_t; + +typedef enum { + decode_full_block = 0, + partial_decode = 1, +} earlyEnd_directive; + +typedef enum { + endOnOutputSize = 0, + endOnInputSize = 1, +} endCondition_directive; + +typedef enum { + EXT4_IGET_NORMAL = 0, + EXT4_IGET_SPECIAL = 1, + EXT4_IGET_HANDLE = 2, + EXT4_IGET_BAD = 4, + EXT4_IGET_EA_INODE = 8, +} ext4_iget_flags; + +typedef enum { + FS_DECRYPT = 0, + FS_ENCRYPT = 1, +} fscrypt_direction_t; + +typedef enum { + HEAD = 0, + FLAGS = 1, + TIME = 2, + OS = 3, + EXLEN = 4, + EXTRA = 5, + NAME = 6, + COMMENT = 7, + HCRC = 8, + DICTID = 9, + DICT = 10, + TYPE = 11, + TYPEDO = 12, + STORED = 13, + COPY = 14, + TABLE = 15, + LENLENS = 16, + CODELENS = 17, + LEN = 18, + LENEXT = 19, + DIST = 20, + DISTEXT = 21, + MATCH = 22, + LIT = 23, + CHECK = 24, + LENGTH = 25, + DONE = 26, + BAD = 27, + MEM = 28, + SYNC = 29, +} inflate_mode; + +typedef enum { + ISOLATE_ABORT = 0, + ISOLATE_NONE = 1, + ISOLATE_SUCCESS = 2, +} isolate_migrate_t; + +typedef enum { + KDB_ENABLE_ALL = 1, + KDB_ENABLE_MEM_READ = 2, + KDB_ENABLE_MEM_WRITE = 4, + KDB_ENABLE_REG_READ = 8, + KDB_ENABLE_REG_WRITE = 16, + KDB_ENABLE_INSPECT = 32, + KDB_ENABLE_FLOW_CTRL = 64, + KDB_ENABLE_SIGNAL = 128, + KDB_ENABLE_REBOOT = 256, + KDB_ENABLE_ALWAYS_SAFE = 512, + KDB_ENABLE_MASK = 1023, + KDB_ENABLE_ALL_NO_ARGS = 1024, + KDB_ENABLE_MEM_READ_NO_ARGS = 2048, + KDB_ENABLE_MEM_WRITE_NO_ARGS = 4096, + KDB_ENABLE_REG_READ_NO_ARGS = 8192, + KDB_ENABLE_REG_WRITE_NO_ARGS = 16384, + KDB_ENABLE_INSPECT_NO_ARGS = 32768, + KDB_ENABLE_FLOW_CTRL_NO_ARGS = 65536, + KDB_ENABLE_SIGNAL_NO_ARGS = 131072, + KDB_ENABLE_REBOOT_NO_ARGS = 262144, + KDB_ENABLE_ALWAYS_SAFE_NO_ARGS = 524288, + KDB_ENABLE_MASK_NO_ARGS = 1047552, + KDB_REPEAT_NO_ARGS = 1073741824, + KDB_REPEAT_WITH_ARGS = 2147483648, +} kdb_cmdflags_t; + +typedef enum { + KDB_DB_BPT = 0, + KDB_DB_SS = 1, + KDB_DB_SSBPT = 2, + KDB_DB_NOBPT = 3, +} kdb_dbtrap_t; + +typedef enum { + KDB_REASON_ENTER = 1, + KDB_REASON_ENTER_SLAVE = 2, + KDB_REASON_BREAK = 3, + KDB_REASON_DEBUG = 4, + KDB_REASON_OOPS = 5, + KDB_REASON_SWITCH = 6, + KDB_REASON_KEYBOARD = 7, + KDB_REASON_NMI = 8, + KDB_REASON_RECURSE = 9, + KDB_REASON_SSTEP = 10, + KDB_REASON_SYSTEM_NMI = 11, +} kdb_reason_t; + +typedef enum { + MAP_CHG_REUSE = 0, + MAP_CHG_NEEDED = 1, + MAP_CHG_ENFORCED = 2, +} map_chg_state; + +typedef enum { + PAGE_KEEP = 0, + PAGE_ACTIVATE = 1, + PAGE_SUCCESS = 2, + PAGE_CLEAN = 3, +} pageout_t; + +typedef enum { + PCI_BRIDGE_EMUL_HANDLED = 0, + PCI_BRIDGE_EMUL_NOT_HANDLED = 1, +} pci_bridge_emul_read_status_t; + +typedef enum { + PHY_INTERFACE_MODE_NA = 0, + PHY_INTERFACE_MODE_INTERNAL = 1, + PHY_INTERFACE_MODE_MII = 2, + PHY_INTERFACE_MODE_GMII = 3, + PHY_INTERFACE_MODE_SGMII = 4, + PHY_INTERFACE_MODE_TBI = 5, + PHY_INTERFACE_MODE_REVMII = 6, + PHY_INTERFACE_MODE_RMII = 7, + PHY_INTERFACE_MODE_REVRMII = 8, + PHY_INTERFACE_MODE_RGMII = 9, + PHY_INTERFACE_MODE_RGMII_ID = 10, + PHY_INTERFACE_MODE_RGMII_RXID = 11, + PHY_INTERFACE_MODE_RGMII_TXID = 12, + PHY_INTERFACE_MODE_RTBI = 13, + PHY_INTERFACE_MODE_SMII = 14, + PHY_INTERFACE_MODE_XGMII = 15, + PHY_INTERFACE_MODE_XLGMII = 16, + PHY_INTERFACE_MODE_MOCA = 17, + PHY_INTERFACE_MODE_PSGMII = 18, + PHY_INTERFACE_MODE_QSGMII = 19, + PHY_INTERFACE_MODE_TRGMII = 20, + PHY_INTERFACE_MODE_100BASEX = 21, + PHY_INTERFACE_MODE_1000BASEX = 22, + PHY_INTERFACE_MODE_2500BASEX = 23, + PHY_INTERFACE_MODE_5GBASER = 24, + PHY_INTERFACE_MODE_RXAUI = 25, + PHY_INTERFACE_MODE_XAUI = 26, + PHY_INTERFACE_MODE_10GBASER = 27, + PHY_INTERFACE_MODE_25GBASER = 28, + PHY_INTERFACE_MODE_USXGMII = 29, + PHY_INTERFACE_MODE_10GKR = 30, + PHY_INTERFACE_MODE_QUSGMII = 31, + PHY_INTERFACE_MODE_1000BASEKX = 32, + PHY_INTERFACE_MODE_10G_QXGMII = 33, + PHY_INTERFACE_MODE_MAX = 34, +} phy_interface_t; + +typedef enum { + search_hashChain = 0, + search_binaryTree = 1, + search_rowHash = 2, +} searchMethod_e; + +typedef enum { + SS_FREE = 0, + SS_UNCONNECTED = 1, + SS_CONNECTING = 2, + SS_CONNECTED = 3, + SS_DISCONNECTING = 4, +} socket_state; + +typedef enum { + STATUSTYPE_INFO = 0, + STATUSTYPE_TABLE = 1, + STATUSTYPE_IMA = 2, +} status_type_t; + +typedef enum { + not_streaming = 0, + is_streaming = 1, +} streaming_operation; + +typedef enum { + set_basic = 0, + set_rle = 1, + set_compressed = 2, + set_repeat = 3, +} symbolEncodingType_e; + +typedef ZSTD_ErrorCode zstd_error_code; + +enum CSI_J { + CSI_J_CURSOR_TO_END = 0, + CSI_J_START_TO_CURSOR = 1, + CSI_J_VISIBLE = 2, + CSI_J_FULL = 3, +}; + +enum CSI_right_square_bracket { + CSI_RSB_COLOR_FOR_UNDERLINE = 1, + CSI_RSB_COLOR_FOR_HALF_BRIGHT = 2, + CSI_RSB_MAKE_CUR_COLOR_DEFAULT = 8, + CSI_RSB_BLANKING_INTERVAL = 9, + CSI_RSB_BELL_FREQUENCY = 10, + CSI_RSB_BELL_DURATION = 11, + CSI_RSB_BRING_CONSOLE_TO_FRONT = 12, + CSI_RSB_UNBLANK = 13, + CSI_RSB_VESA_OFF_INTERVAL = 14, + CSI_RSB_BRING_PREV_CONSOLE_TO_FRONT = 15, + CSI_RSB_CURSOR_BLINK_INTERVAL = 16, +}; + +enum DTPM_NODE_TYPE { + DTPM_NODE_VIRTUAL = 0, + DTPM_NODE_DT = 1, +}; + +enum KTHREAD_BITS { + KTHREAD_IS_PER_CPU = 0, + KTHREAD_SHOULD_STOP = 1, + KTHREAD_SHOULD_PARK = 2, +}; + +enum NPmode { + NPMODE_PASS = 0, + NPMODE_DROP = 1, + NPMODE_ERROR = 2, + NPMODE_QUEUE = 3, +}; + +enum OID { + OID_id_dsa_with_sha1 = 0, + OID_id_dsa = 1, + OID_id_ecPublicKey = 2, + OID_id_prime192v1 = 3, + OID_id_prime256v1 = 4, + OID_id_ecdsa_with_sha1 = 5, + OID_id_ecdsa_with_sha224 = 6, + OID_id_ecdsa_with_sha256 = 7, + OID_id_ecdsa_with_sha384 = 8, + OID_id_ecdsa_with_sha512 = 9, + OID_rsaEncryption = 10, + OID_sha1WithRSAEncryption = 11, + OID_sha256WithRSAEncryption = 12, + OID_sha384WithRSAEncryption = 13, + OID_sha512WithRSAEncryption = 14, + OID_sha224WithRSAEncryption = 15, + OID_data = 16, + OID_signed_data = 17, + OID_email_address = 18, + OID_contentType = 19, + OID_messageDigest = 20, + OID_signingTime = 21, + OID_smimeCapabilites = 22, + OID_smimeAuthenticatedAttrs = 23, + OID_mskrb5 = 24, + OID_krb5 = 25, + OID_krb5u2u = 26, + OID_msIndirectData = 27, + OID_msStatementType = 28, + OID_msSpOpusInfo = 29, + OID_msPeImageDataObjId = 30, + OID_msIndividualSPKeyPurpose = 31, + OID_msOutlookExpress = 32, + OID_ntlmssp = 33, + OID_negoex = 34, + OID_spnego = 35, + OID_IAKerb = 36, + OID_PKU2U = 37, + OID_Scram = 38, + OID_certAuthInfoAccess = 39, + OID_sha1 = 40, + OID_id_ansip384r1 = 41, + OID_id_ansip521r1 = 42, + OID_sha256 = 43, + OID_sha384 = 44, + OID_sha512 = 45, + OID_sha224 = 46, + OID_commonName = 47, + OID_surname = 48, + OID_countryName = 49, + OID_locality = 50, + OID_stateOrProvinceName = 51, + OID_organizationName = 52, + OID_organizationUnitName = 53, + OID_title = 54, + OID_description = 55, + OID_name = 56, + OID_givenName = 57, + OID_initials = 58, + OID_generationalQualifier = 59, + OID_subjectKeyIdentifier = 60, + OID_keyUsage = 61, + OID_subjectAltName = 62, + OID_issuerAltName = 63, + OID_basicConstraints = 64, + OID_crlDistributionPoints = 65, + OID_certPolicies = 66, + OID_authorityKeyIdentifier = 67, + OID_extKeyUsage = 68, + OID_NetlogonMechanism = 69, + OID_appleLocalKdcSupported = 70, + OID_gostCPSignA = 71, + OID_gostCPSignB = 72, + OID_gostCPSignC = 73, + OID_gost2012PKey256 = 74, + OID_gost2012PKey512 = 75, + OID_gost2012Digest256 = 76, + OID_gost2012Digest512 = 77, + OID_gost2012Signature256 = 78, + OID_gost2012Signature512 = 79, + OID_gostTC26Sign256A = 80, + OID_gostTC26Sign256B = 81, + OID_gostTC26Sign256C = 82, + OID_gostTC26Sign256D = 83, + OID_gostTC26Sign512A = 84, + OID_gostTC26Sign512B = 85, + OID_gostTC26Sign512C = 86, + OID_sm2 = 87, + OID_sm3 = 88, + OID_SM2_with_SM3 = 89, + OID_sm3WithRSAEncryption = 90, + OID_TPMLoadableKey = 91, + OID_TPMImportableKey = 92, + OID_TPMSealedData = 93, + OID_sha3_256 = 94, + OID_sha3_384 = 95, + OID_sha3_512 = 96, + OID_id_ecdsa_with_sha3_256 = 97, + OID_id_ecdsa_with_sha3_384 = 98, + OID_id_ecdsa_with_sha3_512 = 99, + OID_id_rsassa_pkcs1_v1_5_with_sha3_256 = 100, + OID_id_rsassa_pkcs1_v1_5_with_sha3_384 = 101, + OID_id_rsassa_pkcs1_v1_5_with_sha3_512 = 102, + OID__NR = 103, +}; + +enum Opt_errors { + Opt_errors_continue = 0, + Opt_errors_panic = 1, +}; + +enum S2MPU02_reg { + S2MPU02_REG_ID = 0, + S2MPU02_REG_INT1 = 1, + S2MPU02_REG_INT2 = 2, + S2MPU02_REG_INT3 = 3, + S2MPU02_REG_INT1M = 4, + S2MPU02_REG_INT2M = 5, + S2MPU02_REG_INT3M = 6, + S2MPU02_REG_ST1 = 7, + S2MPU02_REG_ST2 = 8, + S2MPU02_REG_PWRONSRC = 9, + S2MPU02_REG_OFFSRC = 10, + S2MPU02_REG_BU_CHG = 11, + S2MPU02_REG_RTCCTRL = 12, + S2MPU02_REG_PMCTRL1 = 13, + S2MPU02_REG_RSVD1 = 14, + S2MPU02_REG_RSVD2 = 15, + S2MPU02_REG_RSVD3 = 16, + S2MPU02_REG_RSVD4 = 17, + S2MPU02_REG_RSVD5 = 18, + S2MPU02_REG_RSVD6 = 19, + S2MPU02_REG_RSVD7 = 20, + S2MPU02_REG_WRSTEN = 21, + S2MPU02_REG_RSVD8 = 22, + S2MPU02_REG_RSVD9 = 23, + S2MPU02_REG_RSVD10 = 24, + S2MPU02_REG_B1CTRL1 = 25, + S2MPU02_REG_B1CTRL2 = 26, + S2MPU02_REG_B2CTRL1 = 27, + S2MPU02_REG_B2CTRL2 = 28, + S2MPU02_REG_B3CTRL1 = 29, + S2MPU02_REG_B3CTRL2 = 30, + S2MPU02_REG_B4CTRL1 = 31, + S2MPU02_REG_B4CTRL2 = 32, + S2MPU02_REG_B5CTRL1 = 33, + S2MPU02_REG_B5CTRL2 = 34, + S2MPU02_REG_B5CTRL3 = 35, + S2MPU02_REG_B5CTRL4 = 36, + S2MPU02_REG_B5CTRL5 = 37, + S2MPU02_REG_B6CTRL1 = 38, + S2MPU02_REG_B6CTRL2 = 39, + S2MPU02_REG_B7CTRL1 = 40, + S2MPU02_REG_B7CTRL2 = 41, + S2MPU02_REG_RAMP1 = 42, + S2MPU02_REG_RAMP2 = 43, + S2MPU02_REG_L1CTRL = 44, + S2MPU02_REG_L2CTRL1 = 45, + S2MPU02_REG_L2CTRL2 = 46, + S2MPU02_REG_L2CTRL3 = 47, + S2MPU02_REG_L2CTRL4 = 48, + S2MPU02_REG_L3CTRL = 49, + S2MPU02_REG_L4CTRL = 50, + S2MPU02_REG_L5CTRL = 51, + S2MPU02_REG_L6CTRL = 52, + S2MPU02_REG_L7CTRL = 53, + S2MPU02_REG_L8CTRL = 54, + S2MPU02_REG_L9CTRL = 55, + S2MPU02_REG_L10CTRL = 56, + S2MPU02_REG_L11CTRL = 57, + S2MPU02_REG_L12CTRL = 58, + S2MPU02_REG_L13CTRL = 59, + S2MPU02_REG_L14CTRL = 60, + S2MPU02_REG_L15CTRL = 61, + S2MPU02_REG_L16CTRL = 62, + S2MPU02_REG_L17CTRL = 63, + S2MPU02_REG_L18CTRL = 64, + S2MPU02_REG_L19CTRL = 65, + S2MPU02_REG_L20CTRL = 66, + S2MPU02_REG_L21CTRL = 67, + S2MPU02_REG_L22CTRL = 68, + S2MPU02_REG_L23CTRL = 69, + S2MPU02_REG_L24CTRL = 70, + S2MPU02_REG_L25CTRL = 71, + S2MPU02_REG_L26CTRL = 72, + S2MPU02_REG_L27CTRL = 73, + S2MPU02_REG_L28CTRL = 74, + S2MPU02_REG_LDODSCH1 = 75, + S2MPU02_REG_LDODSCH2 = 76, + S2MPU02_REG_LDODSCH3 = 77, + S2MPU02_REG_LDODSCH4 = 78, + S2MPU02_REG_SELMIF = 79, + S2MPU02_REG_RSVD11 = 80, + S2MPU02_REG_RSVD12 = 81, + S2MPU02_REG_RSVD13 = 82, + S2MPU02_REG_DVSSEL = 83, + S2MPU02_REG_DVSPTR = 84, + S2MPU02_REG_DVSDATA = 85, +}; + +enum SCI_CLKS { + SCI_FCK = 0, + SCI_SCK = 1, + SCI_BRG_INT = 2, + SCI_SCIF_CLK = 3, + SCI_NUM_CLKS = 4, +}; + +enum SHIFT_DIRECTION { + SHIFT_LEFT = 0, + SHIFT_RIGHT = 1, +}; + +enum TPM_OPS_FLAGS { + TPM_OPS_AUTO_STARTUP = 1, +}; + +enum UART_TX_FLAGS { + UART_TX_NOSTOP = 1, +}; + +enum __kvm_host_smccc_func { + __KVM_HOST_SMCCC_FUNC___pkvm_init = 1, + __KVM_HOST_SMCCC_FUNC___pkvm_create_private_mapping = 2, + __KVM_HOST_SMCCC_FUNC___pkvm_cpu_set_vector = 3, + __KVM_HOST_SMCCC_FUNC___kvm_enable_ssbs = 4, + __KVM_HOST_SMCCC_FUNC___vgic_v3_init_lrs = 5, + __KVM_HOST_SMCCC_FUNC___vgic_v3_get_gic_config = 6, + __KVM_HOST_SMCCC_FUNC___pkvm_prot_finalize = 7, + __KVM_HOST_SMCCC_FUNC___pkvm_host_share_hyp = 8, + __KVM_HOST_SMCCC_FUNC___pkvm_host_unshare_hyp = 9, + __KVM_HOST_SMCCC_FUNC___pkvm_host_share_guest = 10, + __KVM_HOST_SMCCC_FUNC___pkvm_host_unshare_guest = 11, + __KVM_HOST_SMCCC_FUNC___pkvm_host_relax_perms_guest = 12, + __KVM_HOST_SMCCC_FUNC___pkvm_host_wrprotect_guest = 13, + __KVM_HOST_SMCCC_FUNC___pkvm_host_test_clear_young_guest = 14, + __KVM_HOST_SMCCC_FUNC___pkvm_host_mkyoung_guest = 15, + __KVM_HOST_SMCCC_FUNC___kvm_adjust_pc = 16, + __KVM_HOST_SMCCC_FUNC___kvm_vcpu_run = 17, + __KVM_HOST_SMCCC_FUNC___kvm_flush_vm_context = 18, + __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid_ipa = 19, + __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid_ipa_nsh = 20, + __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid = 21, + __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid_range = 22, + __KVM_HOST_SMCCC_FUNC___kvm_flush_cpu_context = 23, + __KVM_HOST_SMCCC_FUNC___kvm_timer_set_cntvoff = 24, + __KVM_HOST_SMCCC_FUNC___vgic_v3_save_vmcr_aprs = 25, + __KVM_HOST_SMCCC_FUNC___vgic_v3_restore_vmcr_aprs = 26, + __KVM_HOST_SMCCC_FUNC___pkvm_init_vm = 27, + __KVM_HOST_SMCCC_FUNC___pkvm_init_vcpu = 28, + __KVM_HOST_SMCCC_FUNC___pkvm_teardown_vm = 29, + __KVM_HOST_SMCCC_FUNC___pkvm_vcpu_load = 30, + __KVM_HOST_SMCCC_FUNC___pkvm_vcpu_put = 31, + __KVM_HOST_SMCCC_FUNC___pkvm_tlb_flush_vmid = 32, +}; + +enum __sk_action { + __SK_DROP = 0, + __SK_PASS = 1, + __SK_REDIRECT = 2, + __SK_NONE = 3, +}; + +enum _slab_flag_bits { + _SLAB_CONSISTENCY_CHECKS = 0, + _SLAB_RED_ZONE = 1, + _SLAB_POISON = 2, + _SLAB_KMALLOC = 3, + _SLAB_HWCACHE_ALIGN = 4, + _SLAB_CACHE_DMA = 5, + _SLAB_CACHE_DMA32 = 6, + _SLAB_STORE_USER = 7, + _SLAB_PANIC = 8, + _SLAB_TYPESAFE_BY_RCU = 9, + _SLAB_TRACE = 10, + _SLAB_NOLEAKTRACE = 11, + _SLAB_NO_MERGE = 12, + _SLAB_ACCOUNT = 13, + _SLAB_NO_USER_FLAGS = 14, + _SLAB_SKIP_KFENCE = 15, + _SLAB_RECLAIM_ACCOUNT = 16, + _SLAB_OBJECT_POISON = 17, + _SLAB_CMPXCHG_DOUBLE = 18, + _SLAB_NO_OBJ_EXT = 19, + _SLAB_FLAGS_LAST_BIT = 20, +}; + +enum aa_code { + AA_U8 = 0, + AA_U16 = 1, + AA_U32 = 2, + AA_U64 = 3, + AA_NAME = 4, + AA_STRING = 5, + AA_BLOB = 6, + AA_STRUCT = 7, + AA_STRUCTEND = 8, + AA_LIST = 9, + AA_LISTEND = 10, + AA_ARRAY = 11, + AA_ARRAYEND = 12, +}; + +enum aa_sfs_type { + AA_SFS_TYPE_BOOLEAN = 0, + AA_SFS_TYPE_BOOLEAN_INTPRINT = 1, + AA_SFS_TYPE_STRING = 2, + AA_SFS_TYPE_U64 = 3, + AA_SFS_TYPE_FOPS = 4, + AA_SFS_TYPE_DIR = 5, +}; + +enum aafs_ns_type { + AAFS_NS_DIR = 0, + AAFS_NS_PROFS = 1, + AAFS_NS_NS = 2, + AAFS_NS_RAW_DATA = 3, + AAFS_NS_LOAD = 4, + AAFS_NS_REPLACE = 5, + AAFS_NS_REMOVE = 6, + AAFS_NS_REVISION = 7, + AAFS_NS_COUNT = 8, + AAFS_NS_MAX_COUNT = 9, + AAFS_NS_SIZE = 10, + AAFS_NS_MAX_SIZE = 11, + AAFS_NS_OWNER = 12, + AAFS_NS_SIZEOF = 13, +}; + +enum aafs_prof_type { + AAFS_PROF_DIR = 0, + AAFS_PROF_PROFS = 1, + AAFS_PROF_NAME = 2, + AAFS_PROF_MODE = 3, + AAFS_PROF_ATTACH = 4, + AAFS_PROF_HASH = 5, + AAFS_PROF_RAW_DATA = 6, + AAFS_PROF_RAW_HASH = 7, + AAFS_PROF_RAW_ABI = 8, + AAFS_PROF_LEARNING_COUNT = 9, + AAFS_PROF_SIZEOF = 10, +}; + +enum aarch32_map { + AA32_MAP_VECTORS = 0, + AA32_MAP_SIGPAGE = 1, + AA32_MAP_VDSO = 2, +}; + +enum aarch64_insn_adr_type { + AARCH64_INSN_ADR_TYPE_ADRP = 0, + AARCH64_INSN_ADR_TYPE_ADR = 1, +}; + +enum aarch64_insn_adsb_type { + AARCH64_INSN_ADSB_ADD = 0, + AARCH64_INSN_ADSB_SUB = 1, + AARCH64_INSN_ADSB_ADD_SETFLAGS = 2, + AARCH64_INSN_ADSB_SUB_SETFLAGS = 3, +}; + +enum aarch64_insn_bitfield_type { + AARCH64_INSN_BITFIELD_MOVE = 0, + AARCH64_INSN_BITFIELD_MOVE_UNSIGNED = 1, + AARCH64_INSN_BITFIELD_MOVE_SIGNED = 2, +}; + +enum aarch64_insn_branch_type { + AARCH64_INSN_BRANCH_NOLINK = 0, + AARCH64_INSN_BRANCH_LINK = 1, + AARCH64_INSN_BRANCH_RETURN = 2, + AARCH64_INSN_BRANCH_COMP_ZERO = 3, + AARCH64_INSN_BRANCH_COMP_NONZERO = 4, +}; + +enum aarch64_insn_condition { + AARCH64_INSN_COND_EQ = 0, + AARCH64_INSN_COND_NE = 1, + AARCH64_INSN_COND_CS = 2, + AARCH64_INSN_COND_CC = 3, + AARCH64_INSN_COND_MI = 4, + AARCH64_INSN_COND_PL = 5, + AARCH64_INSN_COND_VS = 6, + AARCH64_INSN_COND_VC = 7, + AARCH64_INSN_COND_HI = 8, + AARCH64_INSN_COND_LS = 9, + AARCH64_INSN_COND_GE = 10, + AARCH64_INSN_COND_LT = 11, + AARCH64_INSN_COND_GT = 12, + AARCH64_INSN_COND_LE = 13, + AARCH64_INSN_COND_AL = 14, +}; + +enum aarch64_insn_data1_type { + AARCH64_INSN_DATA1_REVERSE_16 = 0, + AARCH64_INSN_DATA1_REVERSE_32 = 1, + AARCH64_INSN_DATA1_REVERSE_64 = 2, +}; + +enum aarch64_insn_data2_type { + AARCH64_INSN_DATA2_UDIV = 0, + AARCH64_INSN_DATA2_SDIV = 1, + AARCH64_INSN_DATA2_LSLV = 2, + AARCH64_INSN_DATA2_LSRV = 3, + AARCH64_INSN_DATA2_ASRV = 4, + AARCH64_INSN_DATA2_RORV = 5, +}; + +enum aarch64_insn_data3_type { + AARCH64_INSN_DATA3_MADD = 0, + AARCH64_INSN_DATA3_MSUB = 1, +}; + +enum aarch64_insn_hint_cr_op { + AARCH64_INSN_HINT_NOP = 0, + AARCH64_INSN_HINT_YIELD = 32, + AARCH64_INSN_HINT_WFE = 64, + AARCH64_INSN_HINT_WFI = 96, + AARCH64_INSN_HINT_SEV = 128, + AARCH64_INSN_HINT_SEVL = 160, + AARCH64_INSN_HINT_XPACLRI = 224, + AARCH64_INSN_HINT_PACIA_1716 = 256, + AARCH64_INSN_HINT_PACIB_1716 = 320, + AARCH64_INSN_HINT_AUTIA_1716 = 384, + AARCH64_INSN_HINT_AUTIB_1716 = 448, + AARCH64_INSN_HINT_PACIAZ = 768, + AARCH64_INSN_HINT_PACIASP = 800, + AARCH64_INSN_HINT_PACIBZ = 832, + AARCH64_INSN_HINT_PACIBSP = 864, + AARCH64_INSN_HINT_AUTIAZ = 896, + AARCH64_INSN_HINT_AUTIASP = 928, + AARCH64_INSN_HINT_AUTIBZ = 960, + AARCH64_INSN_HINT_AUTIBSP = 992, + AARCH64_INSN_HINT_ESB = 512, + AARCH64_INSN_HINT_PSB = 544, + AARCH64_INSN_HINT_TSB = 576, + AARCH64_INSN_HINT_CSDB = 640, + AARCH64_INSN_HINT_CLEARBHB = 704, + AARCH64_INSN_HINT_BTI = 1024, + AARCH64_INSN_HINT_BTIC = 1088, + AARCH64_INSN_HINT_BTIJ = 1152, + AARCH64_INSN_HINT_BTIJC = 1216, +}; + +enum aarch64_insn_imm_type { + AARCH64_INSN_IMM_ADR = 0, + AARCH64_INSN_IMM_26 = 1, + AARCH64_INSN_IMM_19 = 2, + AARCH64_INSN_IMM_16 = 3, + AARCH64_INSN_IMM_14 = 4, + AARCH64_INSN_IMM_12 = 5, + AARCH64_INSN_IMM_9 = 6, + AARCH64_INSN_IMM_7 = 7, + AARCH64_INSN_IMM_6 = 8, + AARCH64_INSN_IMM_S = 9, + AARCH64_INSN_IMM_R = 10, + AARCH64_INSN_IMM_N = 11, + AARCH64_INSN_IMM_MAX = 12, +}; + +enum aarch64_insn_ldst_type { + AARCH64_INSN_LDST_LOAD_REG_OFFSET = 0, + AARCH64_INSN_LDST_STORE_REG_OFFSET = 1, + AARCH64_INSN_LDST_LOAD_IMM_OFFSET = 2, + AARCH64_INSN_LDST_STORE_IMM_OFFSET = 3, + AARCH64_INSN_LDST_LOAD_PAIR_PRE_INDEX = 4, + AARCH64_INSN_LDST_STORE_PAIR_PRE_INDEX = 5, + AARCH64_INSN_LDST_LOAD_PAIR_POST_INDEX = 6, + AARCH64_INSN_LDST_STORE_PAIR_POST_INDEX = 7, + AARCH64_INSN_LDST_LOAD_EX = 8, + AARCH64_INSN_LDST_LOAD_ACQ_EX = 9, + AARCH64_INSN_LDST_STORE_EX = 10, + AARCH64_INSN_LDST_STORE_REL_EX = 11, + AARCH64_INSN_LDST_SIGNED_LOAD_IMM_OFFSET = 12, + AARCH64_INSN_LDST_SIGNED_LOAD_REG_OFFSET = 13, +}; + +enum aarch64_insn_logic_type { + AARCH64_INSN_LOGIC_AND = 0, + AARCH64_INSN_LOGIC_BIC = 1, + AARCH64_INSN_LOGIC_ORR = 2, + AARCH64_INSN_LOGIC_ORN = 3, + AARCH64_INSN_LOGIC_EOR = 4, + AARCH64_INSN_LOGIC_EON = 5, + AARCH64_INSN_LOGIC_AND_SETFLAGS = 6, + AARCH64_INSN_LOGIC_BIC_SETFLAGS = 7, +}; + +enum aarch64_insn_mb_type { + AARCH64_INSN_MB_SY = 0, + AARCH64_INSN_MB_ST = 1, + AARCH64_INSN_MB_LD = 2, + AARCH64_INSN_MB_ISH = 3, + AARCH64_INSN_MB_ISHST = 4, + AARCH64_INSN_MB_ISHLD = 5, + AARCH64_INSN_MB_NSH = 6, + AARCH64_INSN_MB_NSHST = 7, + AARCH64_INSN_MB_NSHLD = 8, + AARCH64_INSN_MB_OSH = 9, + AARCH64_INSN_MB_OSHST = 10, + AARCH64_INSN_MB_OSHLD = 11, +}; + +enum aarch64_insn_mem_atomic_op { + AARCH64_INSN_MEM_ATOMIC_ADD = 0, + AARCH64_INSN_MEM_ATOMIC_CLR = 1, + AARCH64_INSN_MEM_ATOMIC_EOR = 2, + AARCH64_INSN_MEM_ATOMIC_SET = 3, + AARCH64_INSN_MEM_ATOMIC_SWP = 4, +}; + +enum aarch64_insn_mem_order_type { + AARCH64_INSN_MEM_ORDER_NONE = 0, + AARCH64_INSN_MEM_ORDER_ACQ = 1, + AARCH64_INSN_MEM_ORDER_REL = 2, + AARCH64_INSN_MEM_ORDER_ACQREL = 3, +}; + +enum aarch64_insn_movewide_type { + AARCH64_INSN_MOVEWIDE_ZERO = 0, + AARCH64_INSN_MOVEWIDE_KEEP = 1, + AARCH64_INSN_MOVEWIDE_INVERSE = 2, +}; + +enum aarch64_insn_movw_imm_type { + AARCH64_INSN_IMM_MOVNZ = 0, + AARCH64_INSN_IMM_MOVKZ = 1, +}; + +enum aarch64_insn_register { + AARCH64_INSN_REG_0 = 0, + AARCH64_INSN_REG_1 = 1, + AARCH64_INSN_REG_2 = 2, + AARCH64_INSN_REG_3 = 3, + AARCH64_INSN_REG_4 = 4, + AARCH64_INSN_REG_5 = 5, + AARCH64_INSN_REG_6 = 6, + AARCH64_INSN_REG_7 = 7, + AARCH64_INSN_REG_8 = 8, + AARCH64_INSN_REG_9 = 9, + AARCH64_INSN_REG_10 = 10, + AARCH64_INSN_REG_11 = 11, + AARCH64_INSN_REG_12 = 12, + AARCH64_INSN_REG_13 = 13, + AARCH64_INSN_REG_14 = 14, + AARCH64_INSN_REG_15 = 15, + AARCH64_INSN_REG_16 = 16, + AARCH64_INSN_REG_17 = 17, + AARCH64_INSN_REG_18 = 18, + AARCH64_INSN_REG_19 = 19, + AARCH64_INSN_REG_20 = 20, + AARCH64_INSN_REG_21 = 21, + AARCH64_INSN_REG_22 = 22, + AARCH64_INSN_REG_23 = 23, + AARCH64_INSN_REG_24 = 24, + AARCH64_INSN_REG_25 = 25, + AARCH64_INSN_REG_26 = 26, + AARCH64_INSN_REG_27 = 27, + AARCH64_INSN_REG_28 = 28, + AARCH64_INSN_REG_29 = 29, + AARCH64_INSN_REG_FP = 29, + AARCH64_INSN_REG_30 = 30, + AARCH64_INSN_REG_LR = 30, + AARCH64_INSN_REG_ZR = 31, + AARCH64_INSN_REG_SP = 31, +}; + +enum aarch64_insn_register_type { + AARCH64_INSN_REGTYPE_RT = 0, + AARCH64_INSN_REGTYPE_RN = 1, + AARCH64_INSN_REGTYPE_RT2 = 2, + AARCH64_INSN_REGTYPE_RM = 3, + AARCH64_INSN_REGTYPE_RD = 4, + AARCH64_INSN_REGTYPE_RA = 5, + AARCH64_INSN_REGTYPE_RS = 6, +}; + +enum aarch64_insn_size_type { + AARCH64_INSN_SIZE_8 = 0, + AARCH64_INSN_SIZE_16 = 1, + AARCH64_INSN_SIZE_32 = 2, + AARCH64_INSN_SIZE_64 = 3, +}; + +enum aarch64_insn_special_register { + AARCH64_INSN_SPCLREG_SPSR_EL1 = 49664, + AARCH64_INSN_SPCLREG_ELR_EL1 = 49665, + AARCH64_INSN_SPCLREG_SP_EL0 = 49672, + AARCH64_INSN_SPCLREG_SPSEL = 49680, + AARCH64_INSN_SPCLREG_CURRENTEL = 49682, + AARCH64_INSN_SPCLREG_DAIF = 55825, + AARCH64_INSN_SPCLREG_NZCV = 55824, + AARCH64_INSN_SPCLREG_FPCR = 55840, + AARCH64_INSN_SPCLREG_DSPSR_EL0 = 55848, + AARCH64_INSN_SPCLREG_DLR_EL0 = 55849, + AARCH64_INSN_SPCLREG_SPSR_EL2 = 57856, + AARCH64_INSN_SPCLREG_ELR_EL2 = 57857, + AARCH64_INSN_SPCLREG_SP_EL1 = 57864, + AARCH64_INSN_SPCLREG_SPSR_INQ = 57880, + AARCH64_INSN_SPCLREG_SPSR_ABT = 57881, + AARCH64_INSN_SPCLREG_SPSR_UND = 57882, + AARCH64_INSN_SPCLREG_SPSR_FIQ = 57883, + AARCH64_INSN_SPCLREG_SPSR_EL3 = 61952, + AARCH64_INSN_SPCLREG_ELR_EL3 = 61953, + AARCH64_INSN_SPCLREG_SP_EL2 = 61968, +}; + +enum aarch64_insn_system_register { + AARCH64_INSN_SYSREG_TPIDR_EL1 = 18052, + AARCH64_INSN_SYSREG_TPIDR_EL2 = 26242, + AARCH64_INSN_SYSREG_SP_EL0 = 16904, +}; + +enum aarch64_insn_variant { + AARCH64_INSN_VARIANT_32BIT = 0, + AARCH64_INSN_VARIANT_64BIT = 1, +}; + +enum aarch64_regset { + REGSET_GPR = 0, + REGSET_FPR = 1, + REGSET_TLS = 2, + REGSET_HW_BREAK = 3, + REGSET_HW_WATCH = 4, + REGSET_FPMR = 5, + REGSET_SYSTEM_CALL = 6, + REGSET_SVE = 7, + REGSET_PAC_MASK = 8, + REGSET_PAC_ENABLED_KEYS = 9, + REGSET_PACA_KEYS = 10, + REGSET_PACG_KEYS = 11, + REGSET_TAGGED_ADDR_CTRL = 12, + REGSET_POE = 13, +}; + +enum aarch64_reloc_op { + RELOC_OP_NONE = 0, + RELOC_OP_ABS = 1, + RELOC_OP_PREL = 2, + RELOC_OP_PAGE = 3, +}; + +enum aat2870_id { + AAT2870_ID_BL = 0, + AAT2870_ID_LDOA = 1, + AAT2870_ID_LDOB = 2, + AAT2870_ID_LDOC = 3, + AAT2870_ID_LDOD = 4, +}; + +enum access_coordinate_class { + ACCESS_COORDINATE_LOCAL = 0, + ACCESS_COORDINATE_CPU = 1, + ACCESS_COORDINATE_MAX = 2, +}; + +enum acpi_attr_enum { + ACPI_ATTR_LABEL_SHOW = 0, + ACPI_ATTR_INDEX_SHOW = 1, +}; + +enum acpi_bridge_type { + ACPI_BRIDGE_TYPE_PCIE = 1, + ACPI_BRIDGE_TYPE_CXL = 2, +}; + +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_cdat_type { + ACPI_CDAT_TYPE_DSMAS = 0, + ACPI_CDAT_TYPE_DSLBIS = 1, + ACPI_CDAT_TYPE_DSMSCIS = 2, + ACPI_CDAT_TYPE_DSIS = 3, + ACPI_CDAT_TYPE_DSEMTS = 4, + ACPI_CDAT_TYPE_SSLBIS = 5, + ACPI_CDAT_TYPE_RESERVED = 6, +}; + +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_device_swnode_dev_props { + ACPI_DEVICE_SWNODE_DEV_ROTATION = 0, + ACPI_DEVICE_SWNODE_DEV_CLOCK_FREQUENCY = 1, + ACPI_DEVICE_SWNODE_DEV_LED_MAX_MICROAMP = 2, + ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_MICROAMP = 3, + ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_TIMEOUT_US = 4, + ACPI_DEVICE_SWNODE_DEV_NUM_OF = 5, + ACPI_DEVICE_SWNODE_DEV_NUM_ENTRIES = 6, +}; + +enum acpi_device_swnode_ep_props { + ACPI_DEVICE_SWNODE_EP_REMOTE_EP = 0, + ACPI_DEVICE_SWNODE_EP_BUS_TYPE = 1, + ACPI_DEVICE_SWNODE_EP_REG = 2, + ACPI_DEVICE_SWNODE_EP_CLOCK_LANES = 3, + ACPI_DEVICE_SWNODE_EP_DATA_LANES = 4, + ACPI_DEVICE_SWNODE_EP_LANE_POLARITIES = 5, + ACPI_DEVICE_SWNODE_EP_LINK_FREQUENCIES = 6, + ACPI_DEVICE_SWNODE_EP_NUM_OF = 7, + ACPI_DEVICE_SWNODE_EP_NUM_ENTRIES = 8, +}; + +enum acpi_device_swnode_port_props { + ACPI_DEVICE_SWNODE_PORT_REG = 0, + ACPI_DEVICE_SWNODE_PORT_NUM_OF = 1, + ACPI_DEVICE_SWNODE_PORT_NUM_ENTRIES = 2, +}; + +enum acpi_ec_event_state { + EC_EVENT_READY = 0, + EC_EVENT_IN_PROGRESS = 1, + EC_EVENT_COMPLETE = 2, +}; + +enum acpi_erst_actions { + ACPI_ERST_BEGIN_WRITE = 0, + ACPI_ERST_BEGIN_READ = 1, + ACPI_ERST_BEGIN_CLEAR = 2, + ACPI_ERST_END = 3, + ACPI_ERST_SET_RECORD_OFFSET = 4, + ACPI_ERST_EXECUTE_OPERATION = 5, + ACPI_ERST_CHECK_BUSY_STATUS = 6, + ACPI_ERST_GET_COMMAND_STATUS = 7, + ACPI_ERST_GET_RECORD_ID = 8, + ACPI_ERST_SET_RECORD_ID = 9, + ACPI_ERST_GET_RECORD_COUNT = 10, + ACPI_ERST_BEGIN_DUMMY_WRIITE = 11, + ACPI_ERST_NOT_USED = 12, + ACPI_ERST_GET_ERROR_RANGE = 13, + ACPI_ERST_GET_ERROR_LENGTH = 14, + ACPI_ERST_GET_ERROR_ATTRIBUTES = 15, + ACPI_ERST_EXECUTE_TIMINGS = 16, + ACPI_ERST_ACTION_RESERVED = 17, +}; + +enum acpi_erst_instructions { + ACPI_ERST_READ_REGISTER = 0, + ACPI_ERST_READ_REGISTER_VALUE = 1, + ACPI_ERST_WRITE_REGISTER = 2, + ACPI_ERST_WRITE_REGISTER_VALUE = 3, + ACPI_ERST_NOOP = 4, + ACPI_ERST_LOAD_VAR1 = 5, + ACPI_ERST_LOAD_VAR2 = 6, + ACPI_ERST_STORE_VAR1 = 7, + ACPI_ERST_ADD = 8, + ACPI_ERST_SUBTRACT = 9, + ACPI_ERST_ADD_VALUE = 10, + ACPI_ERST_SUBTRACT_VALUE = 11, + ACPI_ERST_STALL = 12, + ACPI_ERST_STALL_WHILE_TRUE = 13, + ACPI_ERST_SKIP_NEXT_IF_TRUE = 14, + ACPI_ERST_GOTO = 15, + ACPI_ERST_SET_SRC_ADDRESS_BASE = 16, + ACPI_ERST_SET_DST_ADDRESS_BASE = 17, + ACPI_ERST_MOVE_DATA = 18, + ACPI_ERST_INSTRUCTION_RESERVED = 19, +}; + +enum acpi_gtdt_type { + ACPI_GTDT_TYPE_TIMER_BLOCK = 0, + ACPI_GTDT_TYPE_WATCHDOG = 1, + ACPI_GTDT_TYPE_RESERVED = 2, +}; + +enum acpi_hest_notify_types { + ACPI_HEST_NOTIFY_POLLED = 0, + ACPI_HEST_NOTIFY_EXTERNAL = 1, + ACPI_HEST_NOTIFY_LOCAL = 2, + ACPI_HEST_NOTIFY_SCI = 3, + ACPI_HEST_NOTIFY_NMI = 4, + ACPI_HEST_NOTIFY_CMCI = 5, + ACPI_HEST_NOTIFY_MCE = 6, + ACPI_HEST_NOTIFY_GPIO = 7, + ACPI_HEST_NOTIFY_SEA = 8, + ACPI_HEST_NOTIFY_SEI = 9, + ACPI_HEST_NOTIFY_GSIV = 10, + ACPI_HEST_NOTIFY_SOFTWARE_DELEGATED = 11, + ACPI_HEST_NOTIFY_RESERVED = 12, +}; + +enum acpi_hest_types { + ACPI_HEST_TYPE_IA32_CHECK = 0, + ACPI_HEST_TYPE_IA32_CORRECTED_CHECK = 1, + ACPI_HEST_TYPE_IA32_NMI = 2, + ACPI_HEST_TYPE_NOT_USED3 = 3, + ACPI_HEST_TYPE_NOT_USED4 = 4, + ACPI_HEST_TYPE_NOT_USED5 = 5, + ACPI_HEST_TYPE_AER_ROOT_PORT = 6, + ACPI_HEST_TYPE_AER_ENDPOINT = 7, + ACPI_HEST_TYPE_AER_BRIDGE = 8, + ACPI_HEST_TYPE_GENERIC_ERROR = 9, + ACPI_HEST_TYPE_GENERIC_ERROR_V2 = 10, + ACPI_HEST_TYPE_IA32_DEFERRED_CHECK = 11, + ACPI_HEST_TYPE_RESERVED = 12, +}; + +enum acpi_hmat_type { + ACPI_HMAT_TYPE_PROXIMITY = 0, + ACPI_HMAT_TYPE_LOCALITY = 1, + ACPI_HMAT_TYPE_CACHE = 2, + ACPI_HMAT_TYPE_RESERVED = 3, +}; + +enum acpi_iort_node_type { + ACPI_IORT_NODE_ITS_GROUP = 0, + ACPI_IORT_NODE_NAMED_COMPONENT = 1, + ACPI_IORT_NODE_PCI_ROOT_COMPLEX = 2, + ACPI_IORT_NODE_SMMU = 3, + ACPI_IORT_NODE_SMMU_V3 = 4, + ACPI_IORT_NODE_PMCG = 5, + ACPI_IORT_NODE_RMR = 6, +}; + +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_RINTC = 6, + ACPI_IRQ_MODEL_COUNT = 7, +}; + +enum acpi_madt_gic_version { + ACPI_MADT_GIC_VERSION_NONE = 0, + ACPI_MADT_GIC_VERSION_V1 = 1, + ACPI_MADT_GIC_VERSION_V2 = 2, + ACPI_MADT_GIC_VERSION_V3 = 3, + ACPI_MADT_GIC_VERSION_V4 = 4, + ACPI_MADT_GIC_VERSION_RESERVED = 5, +}; + +enum acpi_madt_multiproc_wakeup_version { + ACPI_MADT_MP_WAKEUP_VERSION_NONE = 0, + ACPI_MADT_MP_WAKEUP_VERSION_V1 = 1, + ACPI_MADT_MP_WAKEUP_VERSION_RESERVED = 2, +}; + +enum acpi_madt_type { + ACPI_MADT_TYPE_LOCAL_APIC = 0, + ACPI_MADT_TYPE_IO_APIC = 1, + ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2, + ACPI_MADT_TYPE_NMI_SOURCE = 3, + ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4, + ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5, + ACPI_MADT_TYPE_IO_SAPIC = 6, + ACPI_MADT_TYPE_LOCAL_SAPIC = 7, + ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, + ACPI_MADT_TYPE_LOCAL_X2APIC = 9, + ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, + ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, + ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, + ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, + ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, + ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, + ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, + ACPI_MADT_TYPE_CORE_PIC = 17, + ACPI_MADT_TYPE_LIO_PIC = 18, + ACPI_MADT_TYPE_HT_PIC = 19, + ACPI_MADT_TYPE_EIO_PIC = 20, + ACPI_MADT_TYPE_MSI_PIC = 21, + ACPI_MADT_TYPE_BIO_PIC = 22, + ACPI_MADT_TYPE_LPC_PIC = 23, + ACPI_MADT_TYPE_RINTC = 24, + ACPI_MADT_TYPE_IMSIC = 25, + ACPI_MADT_TYPE_APLIC = 26, + ACPI_MADT_TYPE_PLIC = 27, + ACPI_MADT_TYPE_RESERVED = 28, + ACPI_MADT_TYPE_OEM_RESERVED = 128, +}; + +enum 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, +}; + +enum acpi_pptt_type { + ACPI_PPTT_TYPE_PROCESSOR = 0, + ACPI_PPTT_TYPE_CACHE = 1, + ACPI_PPTT_TYPE_ID = 2, + ACPI_PPTT_TYPE_RESERVED = 3, +}; + +enum acpi_predicate { + all_versions = 0, + less_than_or_equal = 1, + equal = 2, + greater_than_or_equal = 3, +}; + +enum acpi_reconfig_event { + ACPI_RECONFIG_DEVICE_ADD = 0, + ACPI_RECONFIG_DEVICE_REMOVE = 1, +}; + +enum acpi_return_package_types { + ACPI_PTYPE1_FIXED = 1, + ACPI_PTYPE1_VAR = 2, + ACPI_PTYPE1_OPTION = 3, + ACPI_PTYPE2 = 4, + ACPI_PTYPE2_COUNT = 5, + ACPI_PTYPE2_PKG_COUNT = 6, + ACPI_PTYPE2_FIXED = 7, + ACPI_PTYPE2_MIN = 8, + ACPI_PTYPE2_REV_FIXED = 9, + ACPI_PTYPE2_FIX_VAR = 10, + ACPI_PTYPE2_VAR_VAR = 11, + ACPI_PTYPE2_UUID_PAIR = 12, + ACPI_PTYPE_CUSTOM = 13, +}; + +enum acpi_srat_type { + ACPI_SRAT_TYPE_CPU_AFFINITY = 0, + ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, + ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, + ACPI_SRAT_TYPE_GICC_AFFINITY = 3, + ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, + ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, + ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, + ACPI_SRAT_TYPE_RINTC_AFFINITY = 7, + ACPI_SRAT_TYPE_RESERVED = 8, +}; + +enum acpi_subtable_type { + ACPI_SUBTABLE_COMMON = 0, + ACPI_SUBTABLE_HMAT = 1, + ACPI_SUBTABLE_PRMT = 2, + ACPI_SUBTABLE_CEDT = 3, + CDAT_SUBTABLE = 4, +}; + +enum acpi_viot_node_type { + ACPI_VIOT_NODE_PCI_RANGE = 1, + ACPI_VIOT_NODE_MMIO = 2, + ACPI_VIOT_NODE_VIRTIO_IOMMU_PCI = 3, + ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO = 4, + ACPI_VIOT_RESERVED = 5, +}; + +enum action_id { + ACTION_SAVE = 1, + ACTION_TRACE = 2, + ACTION_SNAPSHOT = 3, +}; + +enum actions { + REGISTER = 0, + DEREGISTER = 1, + CPU_DONT_CARE = 2, +}; + +enum addr_type { + ADDR_LOCAL = 0, + ADDR_LOCAL_PRIV = 1, + ADDR_REMOTE = 2, +}; + +enum addr_type_t { + UNICAST_ADDR = 0, + MULTICAST_ADDR = 1, + ANYCAST_ADDR = 2, +}; + +enum ahci_imx_type { + AHCI_IMX53 = 0, + AHCI_IMX6Q = 1, + AHCI_IMX6QP = 2, + AHCI_IMX8QM = 3, +}; + +enum al_fic_state { + AL_FIC_UNCONFIGURED = 0, + AL_FIC_CONFIGURED_LEVEL = 1, + AL_FIC_CONFIGURED_RISING_EDGE = 2, +}; + +enum alarmtimer_type { + ALARM_REALTIME = 0, + ALARM_BOOTTIME = 1, + ALARM_NUMTYPE = 2, + ALARM_REALTIME_FREEZER = 3, + ALARM_BOOTTIME_FREEZER = 4, +}; + +enum alloc_loc { + ALLOC_ERR = 0, + ALLOC_BEFORE = 1, + ALLOC_MID = 2, + ALLOC_AFTER = 3, +}; + +enum altera_pcie_version { + ALTERA_PCIE_V1 = 0, + ALTERA_PCIE_V2 = 1, +}; + +enum amd_chipset_gen { + NOT_AMD_CHIPSET = 0, + AMD_CHIPSET_SB600 = 1, + AMD_CHIPSET_SB700 = 2, + AMD_CHIPSET_SB800 = 3, + AMD_CHIPSET_HUDSON2 = 4, + AMD_CHIPSET_BOLTON = 5, + AMD_CHIPSET_YANGTZE = 6, + AMD_CHIPSET_TAISHAN = 7, + AMD_CHIPSET_UNKNOWN = 8, +}; + +enum amd_functions { + IMX_F0_GPIO0 = 0, + IMX_F1_GPIO0 = 1, + IMX_F2_GPIO0 = 2, + IMX_F3_GPIO0 = 3, + IMX_F0_GPIO1 = 4, + IMX_F1_GPIO1 = 5, + IMX_F2_GPIO1 = 6, + IMX_F3_GPIO1 = 7, + IMX_F0_GPIO2 = 8, + IMX_F1_GPIO2 = 9, + IMX_F2_GPIO2 = 10, + IMX_F3_GPIO2 = 11, + IMX_F0_GPIO3 = 12, + IMX_F1_GPIO3 = 13, + IMX_F2_GPIO3 = 14, + IMX_F3_GPIO3 = 15, + IMX_F0_GPIO4 = 16, + IMX_F1_GPIO4 = 17, + IMX_F2_GPIO4 = 18, + IMX_F3_GPIO4 = 19, + IMX_F0_GPIO5 = 20, + IMX_F1_GPIO5 = 21, + IMX_F2_GPIO5 = 22, + IMX_F3_GPIO5 = 23, + IMX_F0_GPIO6 = 24, + IMX_F1_GPIO6 = 25, + IMX_F2_GPIO6 = 26, + IMX_F3_GPIO6 = 27, + IMX_F0_GPIO7 = 28, + IMX_F1_GPIO7 = 29, + IMX_F2_GPIO7 = 30, + IMX_F3_GPIO7 = 31, + IMX_F0_GPIO8 = 32, + IMX_F1_GPIO8 = 33, + IMX_F2_GPIO8 = 34, + IMX_F3_GPIO8 = 35, + IMX_F0_GPIO9 = 36, + IMX_F1_GPIO9 = 37, + IMX_F2_GPIO9 = 38, + IMX_F3_GPIO9 = 39, + IMX_F0_GPIO10 = 40, + IMX_F1_GPIO10 = 41, + IMX_F2_GPIO10 = 42, + IMX_F3_GPIO10 = 43, + IMX_F0_GPIO11 = 44, + IMX_F1_GPIO11 = 45, + IMX_F2_GPIO11 = 46, + IMX_F3_GPIO11 = 47, + IMX_F0_GPIO12 = 48, + IMX_F1_GPIO12 = 49, + IMX_F2_GPIO12 = 50, + IMX_F3_GPIO12 = 51, + IMX_F0_GPIO13 = 52, + IMX_F1_GPIO13 = 53, + IMX_F2_GPIO13 = 54, + IMX_F3_GPIO13 = 55, + IMX_F0_GPIO14 = 56, + IMX_F1_GPIO14 = 57, + IMX_F2_GPIO14 = 58, + IMX_F3_GPIO14 = 59, + IMX_F0_GPIO15 = 60, + IMX_F1_GPIO15 = 61, + IMX_F2_GPIO15 = 62, + IMX_F3_GPIO15 = 63, + IMX_F0_GPIO16 = 64, + IMX_F1_GPIO16 = 65, + IMX_F2_GPIO16 = 66, + IMX_F3_GPIO16 = 67, + IMX_F0_GPIO17 = 68, + IMX_F1_GPIO17 = 69, + IMX_F2_GPIO17 = 70, + IMX_F3_GPIO17 = 71, + IMX_F0_GPIO18 = 72, + IMX_F1_GPIO18 = 73, + IMX_F2_GPIO18 = 74, + IMX_F3_GPIO18 = 75, + IMX_F0_GPIO19 = 76, + IMX_F1_GPIO19 = 77, + IMX_F2_GPIO19 = 78, + IMX_F3_GPIO19 = 79, + IMX_F0_GPIO20 = 80, + IMX_F1_GPIO20 = 81, + IMX_F2_GPIO20 = 82, + IMX_F3_GPIO20 = 83, + IMX_F0_GPIO21 = 84, + IMX_F1_GPIO21 = 85, + IMX_F2_GPIO21 = 86, + IMX_F3_GPIO21 = 87, + IMX_F0_GPIO22 = 88, + IMX_F1_GPIO22 = 89, + IMX_F2_GPIO22 = 90, + IMX_F3_GPIO22 = 91, + IMX_F0_GPIO23 = 92, + IMX_F1_GPIO23 = 93, + IMX_F2_GPIO23 = 94, + IMX_F3_GPIO23 = 95, + IMX_F0_GPIO24 = 96, + IMX_F1_GPIO24 = 97, + IMX_F2_GPIO24 = 98, + IMX_F3_GPIO24 = 99, + IMX_F0_GPIO25 = 100, + IMX_F1_GPIO25 = 101, + IMX_F2_GPIO25 = 102, + IMX_F3_GPIO25 = 103, + IMX_F0_GPIO26 = 104, + IMX_F1_GPIO26 = 105, + IMX_F2_GPIO26 = 106, + IMX_F3_GPIO26 = 107, + IMX_F0_GPIO27 = 108, + IMX_F1_GPIO27 = 109, + IMX_F2_GPIO27 = 110, + IMX_F3_GPIO27 = 111, + IMX_F0_GPIO28 = 112, + IMX_F1_GPIO28 = 113, + IMX_F2_GPIO28 = 114, + IMX_F3_GPIO28 = 115, + IMX_F0_GPIO29 = 116, + IMX_F1_GPIO29 = 117, + IMX_F2_GPIO29 = 118, + IMX_F3_GPIO29 = 119, + IMX_F0_GPIO30 = 120, + IMX_F1_GPIO30 = 121, + IMX_F2_GPIO30 = 122, + IMX_F3_GPIO30 = 123, + IMX_F0_GPIO31 = 124, + IMX_F1_GPIO31 = 125, + IMX_F2_GPIO31 = 126, + IMX_F3_GPIO31 = 127, + IMX_F0_GPIO32 = 128, + IMX_F1_GPIO32 = 129, + IMX_F2_GPIO32 = 130, + IMX_F3_GPIO32 = 131, + IMX_F0_GPIO33 = 132, + IMX_F1_GPIO33 = 133, + IMX_F2_GPIO33 = 134, + IMX_F3_GPIO33 = 135, + IMX_F0_GPIO34 = 136, + IMX_F1_GPIO34 = 137, + IMX_F2_GPIO34 = 138, + IMX_F3_GPIO34 = 139, + IMX_F0_GPIO35 = 140, + IMX_F1_GPIO35 = 141, + IMX_F2_GPIO35 = 142, + IMX_F3_GPIO35 = 143, + IMX_F0_GPIO36 = 144, + IMX_F1_GPIO36 = 145, + IMX_F2_GPIO36 = 146, + IMX_F3_GPIO36 = 147, + IMX_F0_GPIO37 = 148, + IMX_F1_GPIO37 = 149, + IMX_F2_GPIO37 = 150, + IMX_F3_GPIO37 = 151, + IMX_F0_GPIO38 = 152, + IMX_F1_GPIO38 = 153, + IMX_F2_GPIO38 = 154, + IMX_F3_GPIO38 = 155, + IMX_F0_GPIO39 = 156, + IMX_F1_GPIO39 = 157, + IMX_F2_GPIO39 = 158, + IMX_F3_GPIO39 = 159, + IMX_F0_GPIO40 = 160, + IMX_F1_GPIO40 = 161, + IMX_F2_GPIO40 = 162, + IMX_F3_GPIO40 = 163, + IMX_F0_GPIO41 = 164, + IMX_F1_GPIO41 = 165, + IMX_F2_GPIO41 = 166, + IMX_F3_GPIO41 = 167, + IMX_F0_GPIO42 = 168, + IMX_F1_GPIO42 = 169, + IMX_F2_GPIO42 = 170, + IMX_F3_GPIO42 = 171, + IMX_F0_GPIO43 = 172, + IMX_F1_GPIO43 = 173, + IMX_F2_GPIO43 = 174, + IMX_F3_GPIO43 = 175, + IMX_F0_GPIO44 = 176, + IMX_F1_GPIO44 = 177, + IMX_F2_GPIO44 = 178, + IMX_F3_GPIO44 = 179, + IMX_F0_GPIO45 = 180, + IMX_F1_GPIO45 = 181, + IMX_F2_GPIO45 = 182, + IMX_F3_GPIO45 = 183, + IMX_F0_GPIO46 = 184, + IMX_F1_GPIO46 = 185, + IMX_F2_GPIO46 = 186, + IMX_F3_GPIO46 = 187, + IMX_F0_GPIO47 = 188, + IMX_F1_GPIO47 = 189, + IMX_F2_GPIO47 = 190, + IMX_F3_GPIO47 = 191, + IMX_F0_GPIO48 = 192, + IMX_F1_GPIO48 = 193, + IMX_F2_GPIO48 = 194, + IMX_F3_GPIO48 = 195, + IMX_F0_GPIO49 = 196, + IMX_F1_GPIO49 = 197, + IMX_F2_GPIO49 = 198, + IMX_F3_GPIO49 = 199, + IMX_F0_GPIO50 = 200, + IMX_F1_GPIO50 = 201, + IMX_F2_GPIO50 = 202, + IMX_F3_GPIO50 = 203, + IMX_F0_GPIO51 = 204, + IMX_F1_GPIO51 = 205, + IMX_F2_GPIO51 = 206, + IMX_F3_GPIO51 = 207, + IMX_F0_GPIO52 = 208, + IMX_F1_GPIO52 = 209, + IMX_F2_GPIO52 = 210, + IMX_F3_GPIO52 = 211, + IMX_F0_GPIO53 = 212, + IMX_F1_GPIO53 = 213, + IMX_F2_GPIO53 = 214, + IMX_F3_GPIO53 = 215, + IMX_F0_GPIO54 = 216, + IMX_F1_GPIO54 = 217, + IMX_F2_GPIO54 = 218, + IMX_F3_GPIO54 = 219, + IMX_F0_GPIO55 = 220, + IMX_F1_GPIO55 = 221, + IMX_F2_GPIO55 = 222, + IMX_F3_GPIO55 = 223, + IMX_F0_GPIO56 = 224, + IMX_F1_GPIO56 = 225, + IMX_F2_GPIO56 = 226, + IMX_F3_GPIO56 = 227, + IMX_F0_GPIO57 = 228, + IMX_F1_GPIO57 = 229, + IMX_F2_GPIO57 = 230, + IMX_F3_GPIO57 = 231, + IMX_F0_GPIO58 = 232, + IMX_F1_GPIO58 = 233, + IMX_F2_GPIO58 = 234, + IMX_F3_GPIO58 = 235, + IMX_F0_GPIO59 = 236, + IMX_F1_GPIO59 = 237, + IMX_F2_GPIO59 = 238, + IMX_F3_GPIO59 = 239, + IMX_F0_GPIO60 = 240, + IMX_F1_GPIO60 = 241, + IMX_F2_GPIO60 = 242, + IMX_F3_GPIO60 = 243, + IMX_F0_GPIO61 = 244, + IMX_F1_GPIO61 = 245, + IMX_F2_GPIO61 = 246, + IMX_F3_GPIO61 = 247, + IMX_F0_GPIO62 = 248, + IMX_F1_GPIO62 = 249, + IMX_F2_GPIO62 = 250, + IMX_F3_GPIO62 = 251, + IMX_F0_GPIO64 = 252, + IMX_F1_GPIO64 = 253, + IMX_F2_GPIO64 = 254, + IMX_F3_GPIO64 = 255, + IMX_F0_GPIO65 = 256, + IMX_F1_GPIO65 = 257, + IMX_F2_GPIO65 = 258, + IMX_F3_GPIO65 = 259, + IMX_F0_GPIO66 = 260, + IMX_F1_GPIO66 = 261, + IMX_F2_GPIO66 = 262, + IMX_F3_GPIO66 = 263, + IMX_F0_GPIO67 = 264, + IMX_F1_GPIO67 = 265, + IMX_F2_GPIO67 = 266, + IMX_F3_GPIO67 = 267, + IMX_F0_GPIO68 = 268, + IMX_F1_GPIO68 = 269, + IMX_F2_GPIO68 = 270, + IMX_F3_GPIO68 = 271, + IMX_F0_GPIO69 = 272, + IMX_F1_GPIO69 = 273, + IMX_F2_GPIO69 = 274, + IMX_F3_GPIO69 = 275, + IMX_F0_GPIO70 = 276, + IMX_F1_GPIO70 = 277, + IMX_F2_GPIO70 = 278, + IMX_F3_GPIO70 = 279, + IMX_F0_GPIO71 = 280, + IMX_F1_GPIO71 = 281, + IMX_F2_GPIO71 = 282, + IMX_F3_GPIO71 = 283, + IMX_F0_GPIO72 = 284, + IMX_F1_GPIO72 = 285, + IMX_F2_GPIO72 = 286, + IMX_F3_GPIO72 = 287, + IMX_F0_GPIO73 = 288, + IMX_F1_GPIO73 = 289, + IMX_F2_GPIO73 = 290, + IMX_F3_GPIO73 = 291, + IMX_F0_GPIO74 = 292, + IMX_F1_GPIO74 = 293, + IMX_F2_GPIO74 = 294, + IMX_F3_GPIO74 = 295, + IMX_F0_GPIO75 = 296, + IMX_F1_GPIO75 = 297, + IMX_F2_GPIO75 = 298, + IMX_F3_GPIO75 = 299, + IMX_F0_GPIO76 = 300, + IMX_F1_GPIO76 = 301, + IMX_F2_GPIO76 = 302, + IMX_F3_GPIO76 = 303, + IMX_F0_GPIO77 = 304, + IMX_F1_GPIO77 = 305, + IMX_F2_GPIO77 = 306, + IMX_F3_GPIO77 = 307, + IMX_F0_GPIO78 = 308, + IMX_F1_GPIO78 = 309, + IMX_F2_GPIO78 = 310, + IMX_F3_GPIO78 = 311, + IMX_F0_GPIO79 = 312, + IMX_F1_GPIO79 = 313, + IMX_F2_GPIO79 = 314, + IMX_F3_GPIO79 = 315, + IMX_F0_GPIO80 = 316, + IMX_F1_GPIO80 = 317, + IMX_F2_GPIO80 = 318, + IMX_F3_GPIO80 = 319, + IMX_F0_GPIO81 = 320, + IMX_F1_GPIO81 = 321, + IMX_F2_GPIO81 = 322, + IMX_F3_GPIO81 = 323, + IMX_F0_GPIO82 = 324, + IMX_F1_GPIO82 = 325, + IMX_F2_GPIO82 = 326, + IMX_F3_GPIO82 = 327, + IMX_F0_GPIO83 = 328, + IMX_F1_GPIO83 = 329, + IMX_F2_GPIO83 = 330, + IMX_F3_GPIO83 = 331, + IMX_F0_GPIO84 = 332, + IMX_F1_GPIO84 = 333, + IMX_F2_GPIO84 = 334, + IMX_F3_GPIO84 = 335, + IMX_F0_GPIO85 = 336, + IMX_F1_GPIO85 = 337, + IMX_F2_GPIO85 = 338, + IMX_F3_GPIO85 = 339, + IMX_F0_GPIO86 = 340, + IMX_F1_GPIO86 = 341, + IMX_F2_GPIO86 = 342, + IMX_F3_GPIO86 = 343, + IMX_F0_GPIO87 = 344, + IMX_F1_GPIO87 = 345, + IMX_F2_GPIO87 = 346, + IMX_F3_GPIO87 = 347, + IMX_F0_GPIO88 = 348, + IMX_F1_GPIO88 = 349, + IMX_F2_GPIO88 = 350, + IMX_F3_GPIO88 = 351, + IMX_F0_GPIO89 = 352, + IMX_F1_GPIO89 = 353, + IMX_F2_GPIO89 = 354, + IMX_F3_GPIO89 = 355, + IMX_F0_GPIO90 = 356, + IMX_F1_GPIO90 = 357, + IMX_F2_GPIO90 = 358, + IMX_F3_GPIO90 = 359, + IMX_F0_GPIO91 = 360, + IMX_F1_GPIO91 = 361, + IMX_F2_GPIO91 = 362, + IMX_F3_GPIO91 = 363, + IMX_F0_GPIO92 = 364, + IMX_F1_GPIO92 = 365, + IMX_F2_GPIO92 = 366, + IMX_F3_GPIO92 = 367, + IMX_F0_GPIO93 = 368, + IMX_F1_GPIO93 = 369, + IMX_F2_GPIO93 = 370, + IMX_F3_GPIO93 = 371, + IMX_F0_GPIO94 = 372, + IMX_F1_GPIO94 = 373, + IMX_F2_GPIO94 = 374, + IMX_F3_GPIO94 = 375, + IMX_F0_GPIO95 = 376, + IMX_F1_GPIO95 = 377, + IMX_F2_GPIO95 = 378, + IMX_F3_GPIO95 = 379, + IMX_F0_GPIO96 = 380, + IMX_F1_GPIO96 = 381, + IMX_F2_GPIO96 = 382, + IMX_F3_GPIO96 = 383, + IMX_F0_GPIO97 = 384, + IMX_F1_GPIO97 = 385, + IMX_F2_GPIO97 = 386, + IMX_F3_GPIO97 = 387, + IMX_F0_GPIO98 = 388, + IMX_F1_GPIO98 = 389, + IMX_F2_GPIO98 = 390, + IMX_F3_GPIO98 = 391, + IMX_F0_GPIO99 = 392, + IMX_F1_GPIO99 = 393, + IMX_F2_GPIO99 = 394, + IMX_F3_GPIO99 = 395, + IMX_F0_GPIO100 = 396, + IMX_F1_GPIO100 = 397, + IMX_F2_GPIO100 = 398, + IMX_F3_GPIO100 = 399, + IMX_F0_GPIO101 = 400, + IMX_F1_GPIO101 = 401, + IMX_F2_GPIO101 = 402, + IMX_F3_GPIO101 = 403, + IMX_F0_GPIO102 = 404, + IMX_F1_GPIO102 = 405, + IMX_F2_GPIO102 = 406, + IMX_F3_GPIO102 = 407, + IMX_F0_GPIO103 = 408, + IMX_F1_GPIO103 = 409, + IMX_F2_GPIO103 = 410, + IMX_F3_GPIO103 = 411, + IMX_F0_GPIO104 = 412, + IMX_F1_GPIO104 = 413, + IMX_F2_GPIO104 = 414, + IMX_F3_GPIO104 = 415, + IMX_F0_GPIO105 = 416, + IMX_F1_GPIO105 = 417, + IMX_F2_GPIO105 = 418, + IMX_F3_GPIO105 = 419, + IMX_F0_GPIO106 = 420, + IMX_F1_GPIO106 = 421, + IMX_F2_GPIO106 = 422, + IMX_F3_GPIO106 = 423, + IMX_F0_GPIO107 = 424, + IMX_F1_GPIO107 = 425, + IMX_F2_GPIO107 = 426, + IMX_F3_GPIO107 = 427, + IMX_F0_GPIO108 = 428, + IMX_F1_GPIO108 = 429, + IMX_F2_GPIO108 = 430, + IMX_F3_GPIO108 = 431, + IMX_F0_GPIO109 = 432, + IMX_F1_GPIO109 = 433, + IMX_F2_GPIO109 = 434, + IMX_F3_GPIO109 = 435, + IMX_F0_GPIO110 = 436, + IMX_F1_GPIO110 = 437, + IMX_F2_GPIO110 = 438, + IMX_F3_GPIO110 = 439, + IMX_F0_GPIO111 = 440, + IMX_F1_GPIO111 = 441, + IMX_F2_GPIO111 = 442, + IMX_F3_GPIO111 = 443, + IMX_F0_GPIO112 = 444, + IMX_F1_GPIO112 = 445, + IMX_F2_GPIO112 = 446, + IMX_F3_GPIO112 = 447, + IMX_F0_GPIO113 = 448, + IMX_F1_GPIO113 = 449, + IMX_F2_GPIO113 = 450, + IMX_F3_GPIO113 = 451, + IMX_F0_GPIO114 = 452, + IMX_F1_GPIO114 = 453, + IMX_F2_GPIO114 = 454, + IMX_F3_GPIO114 = 455, + IMX_F0_GPIO115 = 456, + IMX_F1_GPIO115 = 457, + IMX_F2_GPIO115 = 458, + IMX_F3_GPIO115 = 459, + IMX_F0_GPIO116 = 460, + IMX_F1_GPIO116 = 461, + IMX_F2_GPIO116 = 462, + IMX_F3_GPIO116 = 463, + IMX_F0_GPIO117 = 464, + IMX_F1_GPIO117 = 465, + IMX_F2_GPIO117 = 466, + IMX_F3_GPIO117 = 467, + IMX_F0_GPIO118 = 468, + IMX_F1_GPIO118 = 469, + IMX_F2_GPIO118 = 470, + IMX_F3_GPIO118 = 471, + IMX_F0_GPIO119 = 472, + IMX_F1_GPIO119 = 473, + IMX_F2_GPIO119 = 474, + IMX_F3_GPIO119 = 475, + IMX_F0_GPIO120 = 476, + IMX_F1_GPIO120 = 477, + IMX_F2_GPIO120 = 478, + IMX_F3_GPIO120 = 479, + IMX_F0_GPIO121 = 480, + IMX_F1_GPIO121 = 481, + IMX_F2_GPIO121 = 482, + IMX_F3_GPIO121 = 483, + IMX_F0_GPIO122 = 484, + IMX_F1_GPIO122 = 485, + IMX_F2_GPIO122 = 486, + IMX_F3_GPIO122 = 487, + IMX_F0_GPIO123 = 488, + IMX_F1_GPIO123 = 489, + IMX_F2_GPIO123 = 490, + IMX_F3_GPIO123 = 491, + IMX_F0_GPIO124 = 492, + IMX_F1_GPIO124 = 493, + IMX_F2_GPIO124 = 494, + IMX_F3_GPIO124 = 495, + IMX_F0_GPIO125 = 496, + IMX_F1_GPIO125 = 497, + IMX_F2_GPIO125 = 498, + IMX_F3_GPIO125 = 499, + IMX_F0_GPIO126 = 500, + IMX_F1_GPIO126 = 501, + IMX_F2_GPIO126 = 502, + IMX_F3_GPIO126 = 503, + IMX_F0_GPIO127 = 504, + IMX_F1_GPIO127 = 505, + IMX_F2_GPIO127 = 506, + IMX_F3_GPIO127 = 507, + IMX_F0_GPIO128 = 508, + IMX_F1_GPIO128 = 509, + IMX_F2_GPIO128 = 510, + IMX_F3_GPIO128 = 511, + IMX_F0_GPIO129 = 512, + IMX_F1_GPIO129 = 513, + IMX_F2_GPIO129 = 514, + IMX_F3_GPIO129 = 515, + IMX_F0_GPIO130 = 516, + IMX_F1_GPIO130 = 517, + IMX_F2_GPIO130 = 518, + IMX_F3_GPIO130 = 519, + IMX_F0_GPIO131 = 520, + IMX_F1_GPIO131 = 521, + IMX_F2_GPIO131 = 522, + IMX_F3_GPIO131 = 523, + IMX_F0_GPIO132 = 524, + IMX_F1_GPIO132 = 525, + IMX_F2_GPIO132 = 526, + IMX_F3_GPIO132 = 527, + IMX_F0_GPIO133 = 528, + IMX_F1_GPIO133 = 529, + IMX_F2_GPIO133 = 530, + IMX_F3_GPIO133 = 531, + IMX_F0_GPIO134 = 532, + IMX_F1_GPIO134 = 533, + IMX_F2_GPIO134 = 534, + IMX_F3_GPIO134 = 535, + IMX_F0_GPIO135 = 536, + IMX_F1_GPIO135 = 537, + IMX_F2_GPIO135 = 538, + IMX_F3_GPIO135 = 539, + IMX_F0_GPIO136 = 540, + IMX_F1_GPIO136 = 541, + IMX_F2_GPIO136 = 542, + IMX_F3_GPIO136 = 543, + IMX_F0_GPIO137 = 544, + IMX_F1_GPIO137 = 545, + IMX_F2_GPIO137 = 546, + IMX_F3_GPIO137 = 547, + IMX_F0_GPIO138 = 548, + IMX_F1_GPIO138 = 549, + IMX_F2_GPIO138 = 550, + IMX_F3_GPIO138 = 551, + IMX_F0_GPIO139 = 552, + IMX_F1_GPIO139 = 553, + IMX_F2_GPIO139 = 554, + IMX_F3_GPIO139 = 555, + IMX_F0_GPIO140 = 556, + IMX_F1_GPIO140 = 557, + IMX_F2_GPIO140 = 558, + IMX_F3_GPIO140 = 559, + IMX_F0_GPIO141 = 560, + IMX_F1_GPIO141 = 561, + IMX_F2_GPIO141 = 562, + IMX_F3_GPIO141 = 563, + IMX_F0_GPIO142 = 564, + IMX_F1_GPIO142 = 565, + IMX_F2_GPIO142 = 566, + IMX_F3_GPIO142 = 567, + IMX_F0_GPIO143 = 568, + IMX_F1_GPIO143 = 569, + IMX_F2_GPIO143 = 570, + IMX_F3_GPIO143 = 571, + IMX_F0_GPIO144 = 572, + IMX_F1_GPIO144 = 573, + IMX_F2_GPIO144 = 574, + IMX_F3_GPIO144 = 575, +}; + +enum apparmor_notif_type { + APPARMOR_NOTIF_RESP_PERM = 0, + APPARMOR_NOTIF_CANCEL = 1, + APPARMOR_NOTIF_INTERUPT = 2, + APPARMOR_NOTIF_ALIVE = 3, + APPARMOR_NOTIF_OP = 4, + APPARMOR_NOTIF_RESP_NAME = 5, +}; + +enum arch_timer_erratum_match_type { + ate_match_dt = 0, + ate_match_local_cap_id = 1, + ate_match_acpi_oem_info = 2, +}; + +enum arch_timer_ppi_nr { + ARCH_TIMER_PHYS_SECURE_PPI = 0, + ARCH_TIMER_PHYS_NONSECURE_PPI = 1, + ARCH_TIMER_VIRT_PPI = 2, + ARCH_TIMER_HYP_PPI = 3, + ARCH_TIMER_HYP_VIRT_PPI = 4, + ARCH_TIMER_MAX_TIMER_PPI = 5, +}; + +enum arch_timer_reg { + ARCH_TIMER_REG_CTRL = 0, + ARCH_TIMER_REG_CVAL = 1, +}; + +enum arch_timer_spi_nr { + ARCH_TIMER_PHYS_SPI = 0, + ARCH_TIMER_VIRT_SPI = 1, + ARCH_TIMER_MAX_TIMER_SPI = 2, +}; + +enum arm64_bp_harden_el1_vectors { + EL1_VECTOR_BHB_LOOP = 0, + EL1_VECTOR_BHB_FW = 1, + EL1_VECTOR_BHB_CLEAR_INSN = 2, + EL1_VECTOR_KPTI = 3, +}; + +enum arm64_hyp_spectre_vector { + HYP_VECTOR_DIRECT = 0, + HYP_VECTOR_SPECTRE_DIRECT = 1, + HYP_VECTOR_INDIRECT = 2, + HYP_VECTOR_SPECTRE_INDIRECT = 3, +}; + +enum arm_smccc_conduit { + SMCCC_CONDUIT_NONE = 0, + SMCCC_CONDUIT_SMC = 1, + SMCCC_CONDUIT_HVC = 2, +}; + +enum arm_smmu_arch_version { + ARM_SMMU_V1 = 0, + ARM_SMMU_V1_64K = 1, + ARM_SMMU_V2 = 2, +}; + +enum arm_smmu_cbar_type { + CBAR_TYPE_S2_TRANS = 0, + CBAR_TYPE_S1_TRANS_S2_BYPASS = 1, + CBAR_TYPE_S1_TRANS_S2_FAULT = 2, + CBAR_TYPE_S1_TRANS_S2_TRANS = 3, +}; + +enum arm_smmu_context_fmt { + ARM_SMMU_CTX_FMT_NONE = 0, + ARM_SMMU_CTX_FMT_AARCH64 = 1, + ARM_SMMU_CTX_FMT_AARCH32_L = 2, + ARM_SMMU_CTX_FMT_AARCH32_S = 3, +}; + +enum arm_smmu_domain_stage { + ARM_SMMU_DOMAIN_S1 = 0, + ARM_SMMU_DOMAIN_S2 = 1, +}; + +enum arm_smmu_domain_stage___2 { + ARM_SMMU_DOMAIN_S1___2 = 0, + ARM_SMMU_DOMAIN_S2___2 = 1, + ARM_SMMU_DOMAIN_NESTED = 2, +}; + +enum arm_smmu_implementation { + GENERIC_SMMU = 0, + ARM_MMU500 = 1, + CAVIUM_SMMUV2 = 2, + QCOM_SMMUV2 = 3, +}; + +enum arm_smmu_msi_index { + EVTQ_MSI_INDEX = 0, + GERROR_MSI_INDEX = 1, + PRIQ_MSI_INDEX = 2, + ARM_SMMU_MAX_MSIS = 3, +}; + +enum arm_smmu_s2cr_privcfg { + S2CR_PRIVCFG_DEFAULT = 0, + S2CR_PRIVCFG_DIPAN = 1, + S2CR_PRIVCFG_UNPRIV = 2, + S2CR_PRIVCFG_PRIV = 3, +}; + +enum arm_smmu_s2cr_type { + S2CR_TYPE_TRANS = 0, + S2CR_TYPE_BYPASS = 1, + S2CR_TYPE_FAULT = 2, +}; + +enum armpmu_attr_groups { + ARMPMU_ATTR_GROUP_COMMON = 0, + ARMPMU_ATTR_GROUP_EVENTS = 1, + ARMPMU_ATTR_GROUP_FORMATS = 2, + ARMPMU_ATTR_GROUP_CAPS = 3, + ARMPMU_NR_ATTR_GROUPS = 4, +}; + +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, +}; + +enum as3711_su2_fbprot { + AS3711_SU2_LX_SD4 = 0, + AS3711_SU2_GPIO2 = 1, + AS3711_SU2_GPIO3 = 2, + AS3711_SU2_GPIO4 = 3, +}; + +enum as3711_su2_feedback { + AS3711_SU2_VOLTAGE = 0, + AS3711_SU2_CURR1 = 1, + AS3711_SU2_CURR2 = 2, + AS3711_SU2_CURR3 = 3, + AS3711_SU2_CURR_AUTO = 4, +}; + +enum as3722_irq { + AS3722_IRQ_LID = 0, + AS3722_IRQ_ACOK = 1, + AS3722_IRQ_ENABLE1 = 2, + AS3722_IRQ_OCCUR_ALARM_SD0 = 3, + AS3722_IRQ_ONKEY_LONG_PRESS = 4, + AS3722_IRQ_ONKEY = 5, + AS3722_IRQ_OVTMP = 6, + AS3722_IRQ_LOWBAT = 7, + AS3722_IRQ_SD0_LV = 8, + AS3722_IRQ_SD1_LV = 9, + AS3722_IRQ_SD2_LV = 10, + AS3722_IRQ_PWM1_OV_PROT = 11, + AS3722_IRQ_PWM2_OV_PROT = 12, + AS3722_IRQ_ENABLE2 = 13, + AS3722_IRQ_SD6_LV = 14, + AS3722_IRQ_RTC_REP = 15, + AS3722_IRQ_RTC_ALARM = 16, + AS3722_IRQ_GPIO1 = 17, + AS3722_IRQ_GPIO2 = 18, + AS3722_IRQ_GPIO3 = 19, + AS3722_IRQ_GPIO4 = 20, + AS3722_IRQ_GPIO5 = 21, + AS3722_IRQ_WATCHDOG = 22, + AS3722_IRQ_ENABLE3 = 23, + AS3722_IRQ_TEMP_SD0_SHUTDOWN = 24, + AS3722_IRQ_TEMP_SD1_SHUTDOWN = 25, + AS3722_IRQ_TEMP_SD2_SHUTDOWN = 26, + AS3722_IRQ_TEMP_SD0_ALARM = 27, + AS3722_IRQ_TEMP_SD1_ALARM = 28, + AS3722_IRQ_TEMP_SD6_ALARM = 29, + AS3722_IRQ_OCCUR_ALARM_SD6 = 30, + AS3722_IRQ_ADC = 31, + AS3722_IRQ_MAX = 32, +}; + +enum as3722_pinmux_option { + AS3722_PINMUX_GPIO = 0, + AS3722_PINMUX_INTERRUPT_OUT = 1, + AS3722_PINMUX_VSUB_VBAT_UNDEB_LOW_OUT = 2, + AS3722_PINMUX_GPIO_INTERRUPT = 3, + AS3722_PINMUX_PWM_INPUT = 4, + AS3722_PINMUX_VOLTAGE_IN_STBY = 5, + AS3722_PINMUX_OC_PG_SD0 = 6, + AS3722_PINMUX_PG_OUT = 7, + AS3722_PINMUX_CLK32K_OUT = 8, + AS3722_PINMUX_WATCHDOG_INPUT = 9, + AS3722_PINMUX_SOFT_RESET_IN = 11, + AS3722_PINMUX_PWM_OUTPUT = 12, + AS3722_PINMUX_VSUB_VBAT_LOW_DEB_OUT = 13, + AS3722_PINMUX_OC_PG_SD6 = 14, +}; + +enum asn1_class { + ASN1_UNIV = 0, + ASN1_APPL = 1, + ASN1_CONT = 2, + ASN1_PRIV = 3, +}; + +enum asn1_method { + ASN1_PRIM = 0, + ASN1_CONS = 1, +}; + +enum asn1_opcode { + ASN1_OP_MATCH = 0, + ASN1_OP_MATCH_OR_SKIP = 1, + ASN1_OP_MATCH_ACT = 2, + ASN1_OP_MATCH_ACT_OR_SKIP = 3, + ASN1_OP_MATCH_JUMP = 4, + ASN1_OP_MATCH_JUMP_OR_SKIP = 5, + ASN1_OP_MATCH_ANY = 8, + ASN1_OP_MATCH_ANY_OR_SKIP = 9, + ASN1_OP_MATCH_ANY_ACT = 10, + ASN1_OP_MATCH_ANY_ACT_OR_SKIP = 11, + ASN1_OP_COND_MATCH_OR_SKIP = 17, + ASN1_OP_COND_MATCH_ACT_OR_SKIP = 19, + ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 21, + ASN1_OP_COND_MATCH_ANY = 24, + ASN1_OP_COND_MATCH_ANY_OR_SKIP = 25, + ASN1_OP_COND_MATCH_ANY_ACT = 26, + ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP = 27, + ASN1_OP_COND_FAIL = 28, + ASN1_OP_COMPLETE = 29, + ASN1_OP_ACT = 30, + ASN1_OP_MAYBE_ACT = 31, + ASN1_OP_END_SEQ = 32, + ASN1_OP_END_SET = 33, + ASN1_OP_END_SEQ_OF = 34, + ASN1_OP_END_SET_OF = 35, + ASN1_OP_END_SEQ_ACT = 36, + ASN1_OP_END_SET_ACT = 37, + ASN1_OP_END_SEQ_OF_ACT = 38, + ASN1_OP_END_SET_OF_ACT = 39, + ASN1_OP_RETURN = 40, + ASN1_OP__NR = 41, +}; + +enum asn1_tag { + ASN1_EOC = 0, + ASN1_BOOL = 1, + ASN1_INT = 2, + ASN1_BTS = 3, + ASN1_OTS = 4, + ASN1_NULL = 5, + ASN1_OID = 6, + ASN1_ODE = 7, + ASN1_EXT = 8, + ASN1_REAL = 9, + ASN1_ENUM = 10, + ASN1_EPDV = 11, + ASN1_UTF8STR = 12, + ASN1_RELOID = 13, + ASN1_SEQ = 16, + ASN1_SET = 17, + ASN1_NUMSTR = 18, + ASN1_PRNSTR = 19, + ASN1_TEXSTR = 20, + ASN1_VIDSTR = 21, + ASN1_IA5STR = 22, + ASN1_UNITIM = 23, + ASN1_GENTIM = 24, + ASN1_GRASTR = 25, + ASN1_VISSTR = 26, + ASN1_GENSTR = 27, + ASN1_UNISTR = 28, + ASN1_CHRSTR = 29, + ASN1_BMPSTR = 30, + ASN1_LONG_TAG = 31, +}; + +enum assoc_array_walk_status { + assoc_array_walk_tree_empty = 0, + assoc_array_walk_found_terminal_node = 1, + assoc_array_walk_found_wrong_shortcut = 2, +}; + +enum asymmetric_payload_bits { + asym_crypto = 0, + asym_subtype = 1, + asym_key_ids = 2, + asym_auth = 3, +}; + +enum ata_completion_errors { + AC_ERR_OK = 0, + AC_ERR_DEV = 1, + AC_ERR_HSM = 2, + AC_ERR_TIMEOUT = 4, + AC_ERR_MEDIA = 8, + AC_ERR_ATA_BUS = 16, + AC_ERR_HOST_BUS = 32, + AC_ERR_SYSTEM = 64, + AC_ERR_INVALID = 128, + AC_ERR_OTHER = 256, + AC_ERR_NODEV_HINT = 512, + AC_ERR_NCQ = 1024, +}; + +enum ata_dev_iter_mode { + ATA_DITER_ENABLED = 0, + ATA_DITER_ENABLED_REVERSE = 1, + ATA_DITER_ALL = 2, + ATA_DITER_ALL_REVERSE = 3, +}; + +enum ata_link_iter_mode { + ATA_LITER_EDGE = 0, + ATA_LITER_HOST_FIRST = 1, + ATA_LITER_PMP_FIRST = 2, +}; + +enum ata_lpm_hints { + ATA_LPM_EMPTY = 1, + ATA_LPM_HIPM = 2, + ATA_LPM_WAKE_ONLY = 4, +}; + +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 ata_prot_flags { + ATA_PROT_FLAG_PIO = 1, + ATA_PROT_FLAG_DMA = 2, + ATA_PROT_FLAG_NCQ = 4, + ATA_PROT_FLAG_ATAPI = 8, + ATA_PROT_UNKNOWN = 255, + ATA_PROT_NODATA = 0, + ATA_PROT_PIO = 1, + ATA_PROT_DMA = 2, + ATA_PROT_NCQ_NODATA = 4, + ATA_PROT_NCQ = 6, + ATAPI_PROT_NODATA = 8, + ATAPI_PROT_PIO = 9, + ATAPI_PROT_DMA = 10, +}; + +enum ata_quirks { + __ATA_QUIRK_DIAGNOSTIC = 0, + __ATA_QUIRK_NODMA = 1, + __ATA_QUIRK_NONCQ = 2, + __ATA_QUIRK_MAX_SEC_128 = 3, + __ATA_QUIRK_BROKEN_HPA = 4, + __ATA_QUIRK_DISABLE = 5, + __ATA_QUIRK_HPA_SIZE = 6, + __ATA_QUIRK_IVB = 7, + __ATA_QUIRK_STUCK_ERR = 8, + __ATA_QUIRK_BRIDGE_OK = 9, + __ATA_QUIRK_ATAPI_MOD16_DMA = 10, + __ATA_QUIRK_FIRMWARE_WARN = 11, + __ATA_QUIRK_1_5_GBPS = 12, + __ATA_QUIRK_NOSETXFER = 13, + __ATA_QUIRK_BROKEN_FPDMA_AA = 14, + __ATA_QUIRK_DUMP_ID = 15, + __ATA_QUIRK_MAX_SEC_LBA48 = 16, + __ATA_QUIRK_ATAPI_DMADIR = 17, + __ATA_QUIRK_NO_NCQ_TRIM = 18, + __ATA_QUIRK_NOLPM = 19, + __ATA_QUIRK_WD_BROKEN_LPM = 20, + __ATA_QUIRK_ZERO_AFTER_TRIM = 21, + __ATA_QUIRK_NO_DMA_LOG = 22, + __ATA_QUIRK_NOTRIM = 23, + __ATA_QUIRK_MAX_SEC_1024 = 24, + __ATA_QUIRK_MAX_TRIM_128M = 25, + __ATA_QUIRK_NO_NCQ_ON_ATI = 26, + __ATA_QUIRK_NO_LPM_ON_ATI = 27, + __ATA_QUIRK_NO_ID_DEV_LOG = 28, + __ATA_QUIRK_NO_LOG_DIR = 29, + __ATA_QUIRK_NO_FUA = 30, + __ATA_QUIRK_MAX = 31, +}; + +enum ata_xfer_mask { + ATA_MASK_PIO = 127, + ATA_MASK_MWDMA = 3968, + ATA_MASK_UDMA = 1044480, +}; + +enum audit_mode { + AUDIT_NORMAL = 0, + AUDIT_QUIET_DENIED = 1, + AUDIT_QUIET = 2, + AUDIT_NOQUIET = 3, + AUDIT_ALL = 4, +}; + +enum audit_nfcfgop { + AUDIT_XT_OP_REGISTER = 0, + AUDIT_XT_OP_REPLACE = 1, + AUDIT_XT_OP_UNREGISTER = 2, + AUDIT_NFT_OP_TABLE_REGISTER = 3, + AUDIT_NFT_OP_TABLE_UNREGISTER = 4, + AUDIT_NFT_OP_CHAIN_REGISTER = 5, + AUDIT_NFT_OP_CHAIN_UNREGISTER = 6, + AUDIT_NFT_OP_RULE_REGISTER = 7, + AUDIT_NFT_OP_RULE_UNREGISTER = 8, + AUDIT_NFT_OP_SET_REGISTER = 9, + AUDIT_NFT_OP_SET_UNREGISTER = 10, + AUDIT_NFT_OP_SETELEM_REGISTER = 11, + AUDIT_NFT_OP_SETELEM_UNREGISTER = 12, + AUDIT_NFT_OP_GEN_REGISTER = 13, + AUDIT_NFT_OP_OBJ_REGISTER = 14, + AUDIT_NFT_OP_OBJ_UNREGISTER = 15, + AUDIT_NFT_OP_OBJ_RESET = 16, + AUDIT_NFT_OP_FLOWTABLE_REGISTER = 17, + AUDIT_NFT_OP_FLOWTABLE_UNREGISTER = 18, + AUDIT_NFT_OP_SETELEM_RESET = 19, + AUDIT_NFT_OP_RULE_RESET = 20, + AUDIT_NFT_OP_INVALID = 21, +}; + +enum audit_nlgrps { + AUDIT_NLGRP_NONE = 0, + AUDIT_NLGRP_READLOG = 1, + __AUDIT_NLGRP_MAX = 2, +}; + +enum audit_ntp_type { + AUDIT_NTP_OFFSET = 0, + AUDIT_NTP_FREQ = 1, + AUDIT_NTP_STATUS = 2, + AUDIT_NTP_TAI = 3, + AUDIT_NTP_TICK = 4, + AUDIT_NTP_ADJUST = 5, + AUDIT_NTP_NVALS = 6, +}; + +enum audit_state { + AUDIT_STATE_DISABLED = 0, + AUDIT_STATE_BUILD = 1, + AUDIT_STATE_RECORD = 2, +}; + +enum audit_type { + AUDIT_APPARMOR_AUDIT = 0, + AUDIT_APPARMOR_ALLOWED = 1, + AUDIT_APPARMOR_DENIED = 2, + AUDIT_APPARMOR_HINT = 3, + AUDIT_APPARMOR_STATUS = 4, + AUDIT_APPARMOR_ERROR = 5, + AUDIT_APPARMOR_KILL = 6, + AUDIT_APPARMOR_USER = 7, + AUDIT_APPARMOR_AUTO = 8, +}; + +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, +}; + +enum backlight_scale { + BACKLIGHT_SCALE_UNKNOWN = 0, + BACKLIGHT_SCALE_LINEAR = 1, + BACKLIGHT_SCALE_NON_LINEAR = 2, +}; + +enum backlight_type { + BACKLIGHT_RAW = 1, + BACKLIGHT_PLATFORM = 2, + BACKLIGHT_FIRMWARE = 3, + BACKLIGHT_TYPE_MAX = 4, +}; + +enum backlight_update_reason { + BACKLIGHT_UPDATE_HOTKEY = 0, + BACKLIGHT_UPDATE_SYSFS = 1, +}; + +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, +}; + +enum behavior { + EXCLUSIVE = 0, + SHARED = 1, + DROP = 2, +}; + +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 bhb_mitigation_bits { + BHB_LOOP = 0, + BHB_FW = 1, + BHB_HW = 2, + BHB_INSN = 3, +}; + +enum bio_merge_status { + BIO_MERGE_OK = 0, + BIO_MERGE_NONE = 1, + BIO_MERGE_FAILED = 2, +}; + +enum bio_post_read_step { + STEP_INITIAL = 0, + STEP_DECRYPT = 1, + STEP_VERITY = 2, + STEP_MAX = 3, +}; + +enum bios_platform_class { + BIOS_CLIENT = 0, + BIOS_SERVER = 1, +}; + +enum bip_flags { + BIP_BLOCK_INTEGRITY = 1, + BIP_MAPPED_INTEGRITY = 2, + BIP_DISK_NOCHECK = 4, + BIP_IP_CHECKSUM = 8, + BIP_COPY_USER = 16, + BIP_CHECK_GUARD = 32, + BIP_CHECK_REFTAG = 64, + BIP_CHECK_APPTAG = 128, +}; + +enum bitmap_page_attr { + BITMAP_PAGE_DIRTY = 0, + BITMAP_PAGE_PENDING = 1, + BITMAP_PAGE_NEEDWRITE = 2, +}; + +enum bitmap_state { + BITMAP_STALE = 1, + BITMAP_WRITE_ERROR = 2, + BITMAP_HOSTENDIAN = 15, +}; + +enum blacklist_hash_type { + BLACKLIST_HASH_X509_TBS = 1, + BLACKLIST_HASH_BINARY = 2, +}; + +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 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 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 blk_default_limits { + BLK_MAX_SEGMENTS = 128, + BLK_SAFE_MAX_SECTORS = 255, + BLK_MAX_SEGMENT_SIZE = 65536, + BLK_SEG_BOUNDARY_MASK = 4294967295, +}; + +enum blk_eh_timer_return { + BLK_EH_DONE = 0, + BLK_EH_RESET_TIMER = 1, +}; + +enum blk_integrity_checksum { + BLK_INTEGRITY_CSUM_NONE = 0, + BLK_INTEGRITY_CSUM_IP = 1, + BLK_INTEGRITY_CSUM_CRC = 2, + BLK_INTEGRITY_CSUM_CRC64 = 3, +} __attribute__((mode(byte))); + +enum blk_integrity_flags { + BLK_INTEGRITY_NOVERIFY = 1, + BLK_INTEGRITY_NOGENERATE = 2, + BLK_INTEGRITY_DEVICE_CAPABLE = 4, + BLK_INTEGRITY_REF_TAG = 8, + BLK_INTEGRITY_STACKED = 16, +}; + +enum blk_req_status { + REQ_PROCESSING = 0, + REQ_WAITING = 1, + REQ_DONE = 2, + REQ_ERROR = 3, + REQ_EOPNOTSUPP = 4, +}; + +enum blk_unique_id { + BLK_UID_T10 = 1, + BLK_UID_EUI64 = 2, + BLK_UID_NAA = 3, +}; + +enum blk_zone_cond { + BLK_ZONE_COND_NOT_WP = 0, + BLK_ZONE_COND_EMPTY = 1, + BLK_ZONE_COND_IMP_OPEN = 2, + BLK_ZONE_COND_EXP_OPEN = 3, + BLK_ZONE_COND_CLOSED = 4, + BLK_ZONE_COND_READONLY = 13, + BLK_ZONE_COND_FULL = 14, + BLK_ZONE_COND_OFFLINE = 15, +}; + +enum blk_zone_report_flags { + BLK_ZONE_REP_CAPACITY = 1, +}; + +enum blk_zone_type { + BLK_ZONE_TYPE_CONVENTIONAL = 1, + BLK_ZONE_TYPE_SEQWRITE_REQ = 2, + BLK_ZONE_TYPE_SEQWRITE_PREF = 3, +}; + +enum blkg_iostat_type { + BLKG_IOSTAT_READ = 0, + BLKG_IOSTAT_WRITE = 1, + BLKG_IOSTAT_DISCARD = 2, + BLKG_IOSTAT_NR = 3, +}; + +enum blkg_rwstat_type { + BLKG_RWSTAT_READ = 0, + BLKG_RWSTAT_WRITE = 1, + BLKG_RWSTAT_SYNC = 2, + BLKG_RWSTAT_ASYNC = 3, + BLKG_RWSTAT_DISCARD = 4, + BLKG_RWSTAT_NR = 5, + BLKG_RWSTAT_TOTAL = 5, +}; + +enum blkif_state { + BLKIF_STATE_DISCONNECTED = 0, + BLKIF_STATE_CONNECTED = 1, + BLKIF_STATE_SUSPENDED = 2, + BLKIF_STATE_ERROR = 3, +}; + +enum blktrace_act { + __BLK_TA_QUEUE = 1, + __BLK_TA_BACKMERGE = 2, + __BLK_TA_FRONTMERGE = 3, + __BLK_TA_GETRQ = 4, + __BLK_TA_SLEEPRQ = 5, + __BLK_TA_REQUEUE = 6, + __BLK_TA_ISSUE = 7, + __BLK_TA_COMPLETE = 8, + __BLK_TA_PLUG = 9, + __BLK_TA_UNPLUG_IO = 10, + __BLK_TA_UNPLUG_TIMER = 11, + __BLK_TA_INSERT = 12, + __BLK_TA_SPLIT = 13, + __BLK_TA_BOUNCE = 14, + __BLK_TA_REMAP = 15, + __BLK_TA_ABORT = 16, + __BLK_TA_DRV_DATA = 17, + __BLK_TA_CGROUP = 256, +}; + +enum 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 bm1880_pinmux_functions { + F_nand = 0, + F_spi = 1, + F_emmc = 2, + F_sdio = 3, + F_eth0 = 4, + F_pwm0 = 5, + F_pwm1 = 6, + F_pwm2 = 7, + F_pwm3 = 8, + F_pwm4 = 9, + F_pwm5 = 10, + F_pwm6 = 11, + F_pwm7 = 12, + F_pwm8 = 13, + F_pwm9 = 14, + F_pwm10 = 15, + F_pwm11 = 16, + F_pwm12 = 17, + F_pwm13 = 18, + F_pwm14 = 19, + F_pwm15 = 20, + F_pwm16 = 21, + F_pwm17 = 22, + F_pwm18 = 23, + F_pwm19 = 24, + F_pwm20 = 25, + F_pwm21 = 26, + F_pwm22 = 27, + F_pwm23 = 28, + F_pwm24 = 29, + F_pwm25 = 30, + F_pwm26 = 31, + F_pwm27 = 32, + F_pwm28 = 33, + F_pwm29 = 34, + F_pwm30 = 35, + F_pwm31 = 36, + F_pwm32 = 37, + F_pwm33 = 38, + F_pwm34 = 39, + F_pwm35 = 40, + F_pwm36 = 41, + F_pwm37 = 42, + F_i2c0 = 43, + F_i2c1 = 44, + F_i2c2 = 45, + F_i2c3 = 46, + F_i2c4 = 47, + F_uart0 = 48, + F_uart1 = 49, + F_uart2 = 50, + F_uart3 = 51, + F_uart4 = 52, + F_uart5 = 53, + F_uart6 = 54, + F_uart7 = 55, + F_uart8 = 56, + F_uart9 = 57, + F_uart10 = 58, + F_uart11 = 59, + F_uart12 = 60, + F_uart13 = 61, + F_uart14 = 62, + F_uart15 = 63, + F_gpio0 = 64, + F_gpio1 = 65, + F_gpio2 = 66, + F_gpio3 = 67, + F_gpio4 = 68, + F_gpio5 = 69, + F_gpio6 = 70, + F_gpio7 = 71, + F_gpio8 = 72, + F_gpio9 = 73, + F_gpio10 = 74, + F_gpio11 = 75, + F_gpio12 = 76, + F_gpio13 = 77, + F_gpio14 = 78, + F_gpio15 = 79, + F_gpio16 = 80, + F_gpio17 = 81, + F_gpio18 = 82, + F_gpio19 = 83, + F_gpio20 = 84, + F_gpio21 = 85, + F_gpio22 = 86, + F_gpio23 = 87, + F_gpio24 = 88, + F_gpio25 = 89, + F_gpio26 = 90, + F_gpio27 = 91, + F_gpio28 = 92, + F_gpio29 = 93, + F_gpio30 = 94, + F_gpio31 = 95, + F_gpio32 = 96, + F_gpio33 = 97, + F_gpio34 = 98, + F_gpio35 = 99, + F_gpio36 = 100, + F_gpio37 = 101, + F_gpio38 = 102, + F_gpio39 = 103, + F_gpio40 = 104, + F_gpio41 = 105, + F_gpio42 = 106, + F_gpio43 = 107, + F_gpio44 = 108, + F_gpio45 = 109, + F_gpio46 = 110, + F_gpio47 = 111, + F_gpio48 = 112, + F_gpio49 = 113, + F_gpio50 = 114, + F_gpio51 = 115, + F_gpio52 = 116, + F_gpio53 = 117, + F_gpio54 = 118, + F_gpio55 = 119, + F_gpio56 = 120, + F_gpio57 = 121, + F_gpio58 = 122, + F_gpio59 = 123, + F_gpio60 = 124, + F_gpio61 = 125, + F_gpio62 = 126, + F_gpio63 = 127, + F_gpio64 = 128, + F_gpio65 = 129, + F_gpio66 = 130, + F_gpio67 = 131, + F_eth1 = 132, + F_i2s0 = 133, + F_i2s0_mclkin = 134, + F_i2s1 = 135, + F_i2s1_mclkin = 136, + F_spi0 = 137, + F_max = 138, +}; + +enum bm_rcr_cmode { + bm_rcr_cci = 0, + bm_rcr_cce = 1, +}; + +enum bm_rcr_pmode { + bm_rcr_pci = 0, + bm_rcr_pce = 1, + bm_rcr_pvb = 2, +}; + +enum bp_state { + BP_DONE = 0, + BP_WAIT = 1, + BP_EAGAIN = 2, + BP_ECANCELED = 3, +}; + +enum bp_type_idx { + TYPE_INST = 0, + TYPE_DATA = 1, + TYPE_MAX = 2, +}; + +enum bpf_access_src { + ACCESS_DIRECT = 1, + ACCESS_HELPER = 2, +}; + +enum bpf_access_type { + BPF_READ = 1, + BPF_WRITE = 2, +}; + +enum bpf_addr_space_cast { + BPF_ADDR_SPACE_CAST = 1, +}; + +enum bpf_adj_room_mode { + BPF_ADJ_ROOM_NET = 0, + BPF_ADJ_ROOM_MAC = 1, +}; + +enum bpf_arg_type { + ARG_DONTCARE = 0, + ARG_CONST_MAP_PTR = 1, + ARG_PTR_TO_MAP_KEY = 2, + ARG_PTR_TO_MAP_VALUE = 3, + ARG_PTR_TO_MEM = 4, + ARG_PTR_TO_ARENA = 5, + ARG_CONST_SIZE = 6, + ARG_CONST_SIZE_OR_ZERO = 7, + ARG_PTR_TO_CTX = 8, + ARG_ANYTHING = 9, + ARG_PTR_TO_SPIN_LOCK = 10, + ARG_PTR_TO_SOCK_COMMON = 11, + ARG_PTR_TO_SOCKET = 12, + ARG_PTR_TO_BTF_ID = 13, + ARG_PTR_TO_RINGBUF_MEM = 14, + ARG_CONST_ALLOC_SIZE_OR_ZERO = 15, + ARG_PTR_TO_BTF_ID_SOCK_COMMON = 16, + ARG_PTR_TO_PERCPU_BTF_ID = 17, + ARG_PTR_TO_FUNC = 18, + ARG_PTR_TO_STACK = 19, + ARG_PTR_TO_CONST_STR = 20, + ARG_PTR_TO_TIMER = 21, + ARG_KPTR_XCHG_DEST = 22, + ARG_PTR_TO_DYNPTR = 23, + __BPF_ARG_TYPE_MAX = 24, + ARG_PTR_TO_MAP_VALUE_OR_NULL = 259, + ARG_PTR_TO_MEM_OR_NULL = 260, + ARG_PTR_TO_CTX_OR_NULL = 264, + ARG_PTR_TO_SOCKET_OR_NULL = 268, + ARG_PTR_TO_STACK_OR_NULL = 275, + ARG_PTR_TO_BTF_ID_OR_NULL = 269, + ARG_PTR_TO_UNINIT_MEM = 67141636, + ARG_PTR_TO_FIXED_SIZE_MEM = 262148, + __BPF_ARG_TYPE_LIMIT = 134217727, +}; + +enum bpf_async_type { + BPF_ASYNC_TYPE_TIMER = 0, + BPF_ASYNC_TYPE_WQ = 1, +}; + +enum bpf_attach_type { + BPF_CGROUP_INET_INGRESS = 0, + BPF_CGROUP_INET_EGRESS = 1, + BPF_CGROUP_INET_SOCK_CREATE = 2, + BPF_CGROUP_SOCK_OPS = 3, + BPF_SK_SKB_STREAM_PARSER = 4, + BPF_SK_SKB_STREAM_VERDICT = 5, + BPF_CGROUP_DEVICE = 6, + BPF_SK_MSG_VERDICT = 7, + BPF_CGROUP_INET4_BIND = 8, + BPF_CGROUP_INET6_BIND = 9, + BPF_CGROUP_INET4_CONNECT = 10, + BPF_CGROUP_INET6_CONNECT = 11, + BPF_CGROUP_INET4_POST_BIND = 12, + BPF_CGROUP_INET6_POST_BIND = 13, + BPF_CGROUP_UDP4_SENDMSG = 14, + BPF_CGROUP_UDP6_SENDMSG = 15, + BPF_LIRC_MODE2 = 16, + BPF_FLOW_DISSECTOR = 17, + BPF_CGROUP_SYSCTL = 18, + BPF_CGROUP_UDP4_RECVMSG = 19, + BPF_CGROUP_UDP6_RECVMSG = 20, + BPF_CGROUP_GETSOCKOPT = 21, + BPF_CGROUP_SETSOCKOPT = 22, + BPF_TRACE_RAW_TP = 23, + BPF_TRACE_FENTRY = 24, + BPF_TRACE_FEXIT = 25, + BPF_MODIFY_RETURN = 26, + BPF_LSM_MAC = 27, + BPF_TRACE_ITER = 28, + BPF_CGROUP_INET4_GETPEERNAME = 29, + BPF_CGROUP_INET6_GETPEERNAME = 30, + BPF_CGROUP_INET4_GETSOCKNAME = 31, + BPF_CGROUP_INET6_GETSOCKNAME = 32, + BPF_XDP_DEVMAP = 33, + BPF_CGROUP_INET_SOCK_RELEASE = 34, + BPF_XDP_CPUMAP = 35, + BPF_SK_LOOKUP = 36, + BPF_XDP = 37, + BPF_SK_SKB_VERDICT = 38, + BPF_SK_REUSEPORT_SELECT = 39, + BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, + BPF_PERF_EVENT = 41, + BPF_TRACE_KPROBE_MULTI = 42, + BPF_LSM_CGROUP = 43, + BPF_STRUCT_OPS = 44, + BPF_NETFILTER = 45, + BPF_TCX_INGRESS = 46, + BPF_TCX_EGRESS = 47, + BPF_TRACE_UPROBE_MULTI = 48, + BPF_CGROUP_UNIX_CONNECT = 49, + BPF_CGROUP_UNIX_SENDMSG = 50, + BPF_CGROUP_UNIX_RECVMSG = 51, + BPF_CGROUP_UNIX_GETPEERNAME = 52, + BPF_CGROUP_UNIX_GETSOCKNAME = 53, + BPF_NETKIT_PRIMARY = 54, + BPF_NETKIT_PEER = 55, + BPF_TRACE_KPROBE_SESSION = 56, + BPF_TRACE_UPROBE_SESSION = 57, + __MAX_BPF_ATTACH_TYPE = 58, +}; + +enum bpf_audit { + BPF_AUDIT_LOAD = 0, + BPF_AUDIT_UNLOAD = 1, + BPF_AUDIT_MAX = 2, +}; + +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_cgroup_storage_type { + BPF_CGROUP_STORAGE_SHARED = 0, + BPF_CGROUP_STORAGE_PERCPU = 1, + __BPF_CGROUP_STORAGE_MAX = 2, +}; + +enum bpf_check_mtu_flags { + BPF_MTU_CHK_SEGS = 1, +}; + +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_cmd { + BPF_MAP_CREATE = 0, + BPF_MAP_LOOKUP_ELEM = 1, + BPF_MAP_UPDATE_ELEM = 2, + BPF_MAP_DELETE_ELEM = 3, + BPF_MAP_GET_NEXT_KEY = 4, + BPF_PROG_LOAD = 5, + BPF_OBJ_PIN = 6, + BPF_OBJ_GET = 7, + BPF_PROG_ATTACH = 8, + BPF_PROG_DETACH = 9, + BPF_PROG_TEST_RUN = 10, + BPF_PROG_RUN = 10, + BPF_PROG_GET_NEXT_ID = 11, + BPF_MAP_GET_NEXT_ID = 12, + BPF_PROG_GET_FD_BY_ID = 13, + BPF_MAP_GET_FD_BY_ID = 14, + BPF_OBJ_GET_INFO_BY_FD = 15, + BPF_PROG_QUERY = 16, + BPF_RAW_TRACEPOINT_OPEN = 17, + BPF_BTF_LOAD = 18, + BPF_BTF_GET_FD_BY_ID = 19, + BPF_TASK_FD_QUERY = 20, + BPF_MAP_LOOKUP_AND_DELETE_ELEM = 21, + BPF_MAP_FREEZE = 22, + BPF_BTF_GET_NEXT_ID = 23, + BPF_MAP_LOOKUP_BATCH = 24, + BPF_MAP_LOOKUP_AND_DELETE_BATCH = 25, + BPF_MAP_UPDATE_BATCH = 26, + BPF_MAP_DELETE_BATCH = 27, + BPF_LINK_CREATE = 28, + BPF_LINK_UPDATE = 29, + BPF_LINK_GET_FD_BY_ID = 30, + BPF_LINK_GET_NEXT_ID = 31, + BPF_ENABLE_STATS = 32, + BPF_ITER_CREATE = 33, + BPF_LINK_DETACH = 34, + BPF_PROG_BIND_MAP = 35, + BPF_TOKEN_CREATE = 36, + __MAX_BPF_CMD = 37, +}; + +enum bpf_cond_pseudo_jmp { + BPF_MAY_GOTO = 0, +}; + +enum bpf_core_relo_kind { + BPF_CORE_FIELD_BYTE_OFFSET = 0, + BPF_CORE_FIELD_BYTE_SIZE = 1, + BPF_CORE_FIELD_EXISTS = 2, + BPF_CORE_FIELD_SIGNED = 3, + BPF_CORE_FIELD_LSHIFT_U64 = 4, + BPF_CORE_FIELD_RSHIFT_U64 = 5, + BPF_CORE_TYPE_ID_LOCAL = 6, + BPF_CORE_TYPE_ID_TARGET = 7, + BPF_CORE_TYPE_EXISTS = 8, + BPF_CORE_TYPE_SIZE = 9, + BPF_CORE_ENUMVAL_EXISTS = 10, + BPF_CORE_ENUMVAL_VALUE = 11, + BPF_CORE_TYPE_MATCHES = 12, +}; + +enum bpf_dynptr_type { + BPF_DYNPTR_TYPE_INVALID = 0, + BPF_DYNPTR_TYPE_LOCAL = 1, + BPF_DYNPTR_TYPE_RINGBUF = 2, + BPF_DYNPTR_TYPE_SKB = 3, + BPF_DYNPTR_TYPE_XDP = 4, +}; + +enum bpf_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_hdr_start_off { + BPF_HDR_START_MAC = 0, + BPF_HDR_START_NET = 1, +}; + +enum bpf_iter_feature { + BPF_ITER_RESCHED = 1, +}; + +enum bpf_iter_state { + BPF_ITER_STATE_INVALID = 0, + BPF_ITER_STATE_ACTIVE = 1, + BPF_ITER_STATE_DRAINED = 2, +}; + +enum bpf_iter_task_type { + BPF_TASK_ITER_ALL = 0, + BPF_TASK_ITER_TID = 1, + BPF_TASK_ITER_TGID = 2, +}; + +enum bpf_jit_poke_reason { + BPF_POKE_REASON_TAIL_CALL = 0, +}; + +enum bpf_kfunc_flags { + BPF_F_PAD_ZEROS = 1, +}; + +enum bpf_link_type { + BPF_LINK_TYPE_UNSPEC = 0, + BPF_LINK_TYPE_RAW_TRACEPOINT = 1, + BPF_LINK_TYPE_TRACING = 2, + BPF_LINK_TYPE_CGROUP = 3, + BPF_LINK_TYPE_ITER = 4, + BPF_LINK_TYPE_NETNS = 5, + BPF_LINK_TYPE_XDP = 6, + BPF_LINK_TYPE_PERF_EVENT = 7, + BPF_LINK_TYPE_KPROBE_MULTI = 8, + BPF_LINK_TYPE_STRUCT_OPS = 9, + BPF_LINK_TYPE_NETFILTER = 10, + BPF_LINK_TYPE_TCX = 11, + BPF_LINK_TYPE_UPROBE_MULTI = 12, + BPF_LINK_TYPE_NETKIT = 13, + BPF_LINK_TYPE_SOCKMAP = 14, + __MAX_BPF_LINK_TYPE = 15, +}; + +enum bpf_lru_list_type { + BPF_LRU_LIST_T_ACTIVE = 0, + BPF_LRU_LIST_T_INACTIVE = 1, + BPF_LRU_LIST_T_FREE = 2, + BPF_LRU_LOCAL_LIST_T_FREE = 3, + BPF_LRU_LOCAL_LIST_T_PENDING = 4, +}; + +enum bpf_lwt_encap_mode { + BPF_LWT_ENCAP_SEG6 = 0, + BPF_LWT_ENCAP_SEG6_INLINE = 1, + BPF_LWT_ENCAP_IP = 2, +}; + +enum bpf_map_type { + BPF_MAP_TYPE_UNSPEC = 0, + BPF_MAP_TYPE_HASH = 1, + BPF_MAP_TYPE_ARRAY = 2, + BPF_MAP_TYPE_PROG_ARRAY = 3, + BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4, + BPF_MAP_TYPE_PERCPU_HASH = 5, + BPF_MAP_TYPE_PERCPU_ARRAY = 6, + BPF_MAP_TYPE_STACK_TRACE = 7, + BPF_MAP_TYPE_CGROUP_ARRAY = 8, + BPF_MAP_TYPE_LRU_HASH = 9, + BPF_MAP_TYPE_LRU_PERCPU_HASH = 10, + BPF_MAP_TYPE_LPM_TRIE = 11, + BPF_MAP_TYPE_ARRAY_OF_MAPS = 12, + BPF_MAP_TYPE_HASH_OF_MAPS = 13, + BPF_MAP_TYPE_DEVMAP = 14, + BPF_MAP_TYPE_SOCKMAP = 15, + BPF_MAP_TYPE_CPUMAP = 16, + BPF_MAP_TYPE_XSKMAP = 17, + BPF_MAP_TYPE_SOCKHASH = 18, + BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19, + BPF_MAP_TYPE_CGROUP_STORAGE = 19, + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21, + BPF_MAP_TYPE_QUEUE = 22, + BPF_MAP_TYPE_STACK = 23, + BPF_MAP_TYPE_SK_STORAGE = 24, + BPF_MAP_TYPE_DEVMAP_HASH = 25, + BPF_MAP_TYPE_STRUCT_OPS = 26, + BPF_MAP_TYPE_RINGBUF = 27, + BPF_MAP_TYPE_INODE_STORAGE = 28, + BPF_MAP_TYPE_TASK_STORAGE = 29, + BPF_MAP_TYPE_BLOOM_FILTER = 30, + BPF_MAP_TYPE_USER_RINGBUF = 31, + BPF_MAP_TYPE_CGRP_STORAGE = 32, + BPF_MAP_TYPE_ARENA = 33, + __MAX_BPF_MAP_TYPE = 34, +}; + +enum bpf_netdev_command { + XDP_SETUP_PROG = 0, + XDP_SETUP_PROG_HW = 1, + BPF_OFFLOAD_MAP_ALLOC = 2, + BPF_OFFLOAD_MAP_FREE = 3, + XDP_SETUP_XSK_POOL = 4, +}; + +enum bpf_perf_event_type { + BPF_PERF_EVENT_UNSPEC = 0, + BPF_PERF_EVENT_UPROBE = 1, + BPF_PERF_EVENT_URETPROBE = 2, + BPF_PERF_EVENT_KPROBE = 3, + BPF_PERF_EVENT_KRETPROBE = 4, + BPF_PERF_EVENT_TRACEPOINT = 5, + BPF_PERF_EVENT_EVENT = 6, +}; + +enum bpf_prog_type { + BPF_PROG_TYPE_UNSPEC = 0, + BPF_PROG_TYPE_SOCKET_FILTER = 1, + BPF_PROG_TYPE_KPROBE = 2, + BPF_PROG_TYPE_SCHED_CLS = 3, + BPF_PROG_TYPE_SCHED_ACT = 4, + BPF_PROG_TYPE_TRACEPOINT = 5, + BPF_PROG_TYPE_XDP = 6, + BPF_PROG_TYPE_PERF_EVENT = 7, + BPF_PROG_TYPE_CGROUP_SKB = 8, + BPF_PROG_TYPE_CGROUP_SOCK = 9, + BPF_PROG_TYPE_LWT_IN = 10, + BPF_PROG_TYPE_LWT_OUT = 11, + BPF_PROG_TYPE_LWT_XMIT = 12, + BPF_PROG_TYPE_SOCK_OPS = 13, + BPF_PROG_TYPE_SK_SKB = 14, + BPF_PROG_TYPE_CGROUP_DEVICE = 15, + BPF_PROG_TYPE_SK_MSG = 16, + BPF_PROG_TYPE_RAW_TRACEPOINT = 17, + BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18, + BPF_PROG_TYPE_LWT_SEG6LOCAL = 19, + BPF_PROG_TYPE_LIRC_MODE2 = 20, + BPF_PROG_TYPE_SK_REUSEPORT = 21, + BPF_PROG_TYPE_FLOW_DISSECTOR = 22, + BPF_PROG_TYPE_CGROUP_SYSCTL = 23, + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24, + BPF_PROG_TYPE_CGROUP_SOCKOPT = 25, + BPF_PROG_TYPE_TRACING = 26, + BPF_PROG_TYPE_STRUCT_OPS = 27, + BPF_PROG_TYPE_EXT = 28, + BPF_PROG_TYPE_LSM = 29, + BPF_PROG_TYPE_SK_LOOKUP = 30, + BPF_PROG_TYPE_SYSCALL = 31, + BPF_PROG_TYPE_NETFILTER = 32, + __MAX_BPF_PROG_TYPE = 33, +}; + +enum bpf_reg_liveness { + REG_LIVE_NONE = 0, + REG_LIVE_READ32 = 1, + REG_LIVE_READ64 = 2, + REG_LIVE_READ = 3, + REG_LIVE_WRITTEN = 4, + REG_LIVE_DONE = 8, +}; + +enum bpf_reg_type { + NOT_INIT = 0, + SCALAR_VALUE = 1, + PTR_TO_CTX = 2, + CONST_PTR_TO_MAP = 3, + PTR_TO_MAP_VALUE = 4, + PTR_TO_MAP_KEY = 5, + PTR_TO_STACK = 6, + PTR_TO_PACKET_META = 7, + PTR_TO_PACKET = 8, + PTR_TO_PACKET_END = 9, + PTR_TO_FLOW_KEYS = 10, + PTR_TO_SOCKET = 11, + PTR_TO_SOCK_COMMON = 12, + PTR_TO_TCP_SOCK = 13, + PTR_TO_TP_BUFFER = 14, + PTR_TO_XDP_SOCK = 15, + PTR_TO_BTF_ID = 16, + PTR_TO_MEM = 17, + PTR_TO_ARENA = 18, + PTR_TO_BUF = 19, + PTR_TO_FUNC = 20, + CONST_PTR_TO_DYNPTR = 21, + __BPF_REG_TYPE_MAX = 22, + PTR_TO_MAP_VALUE_OR_NULL = 260, + PTR_TO_SOCKET_OR_NULL = 267, + PTR_TO_SOCK_COMMON_OR_NULL = 268, + PTR_TO_TCP_SOCK_OR_NULL = 269, + PTR_TO_BTF_ID_OR_NULL = 272, + __BPF_REG_TYPE_LIMIT = 134217727, +}; + +enum bpf_ret_code { + BPF_OK = 0, + BPF_DROP = 2, + BPF_REDIRECT = 7, + BPF_LWT_REROUTE = 128, + BPF_FLOW_DISSECTOR_CONTINUE = 129, +}; + +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 = 134217727, +}; + +enum bpf_stack_build_id_status { + BPF_STACK_BUILD_ID_EMPTY = 0, + BPF_STACK_BUILD_ID_VALID = 1, + BPF_STACK_BUILD_ID_IP = 2, +}; + +enum bpf_stack_slot_type { + STACK_INVALID = 0, + STACK_SPILL = 1, + STACK_MISC = 2, + STACK_ZERO = 3, + STACK_DYNPTR = 4, + STACK_ITER = 5, + STACK_IRQ_FLAG = 6, +}; + +enum bpf_stats_type { + BPF_STATS_RUN_TIME = 0, +}; + +enum bpf_struct_ops_state { + BPF_STRUCT_OPS_STATE_INIT = 0, + BPF_STRUCT_OPS_STATE_INUSE = 1, + BPF_STRUCT_OPS_STATE_TOBEFREE = 2, + BPF_STRUCT_OPS_STATE_READY = 3, +}; + +enum bpf_struct_walk_result { + WALK_SCALAR = 0, + WALK_PTR = 1, + WALK_STRUCT = 2, +}; + +enum bpf_task_fd_type { + BPF_FD_TYPE_RAW_TRACEPOINT = 0, + BPF_FD_TYPE_TRACEPOINT = 1, + BPF_FD_TYPE_KPROBE = 2, + BPF_FD_TYPE_KRETPROBE = 3, + BPF_FD_TYPE_UPROBE = 4, + BPF_FD_TYPE_URETPROBE = 5, +}; + +enum bpf_task_vma_iter_find_op { + task_vma_iter_first_vma = 0, + task_vma_iter_next_vma = 1, + task_vma_iter_find_vma = 2, +}; + +enum bpf_text_poke_type { + BPF_MOD_CALL = 0, + BPF_MOD_JUMP = 1, +}; + +enum bpf_tramp_prog_type { + BPF_TRAMP_FENTRY = 0, + BPF_TRAMP_FEXIT = 1, + BPF_TRAMP_MODIFY_RETURN = 2, + BPF_TRAMP_MAX = 3, + BPF_TRAMP_REPLACE = 4, +}; + +enum bpf_type { + BPF_TYPE_UNSPEC = 0, + BPF_TYPE_PROG = 1, + BPF_TYPE_MAP = 2, + BPF_TYPE_LINK = 3, +}; + +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, + MEM_ALIGNED = 33554432, + MEM_WRITE = 67108864, + __BPF_TYPE_FLAG_MAX = 67108865, + __BPF_TYPE_LAST_FLAG = 67108864, +}; + +enum bpf_xdp_mode { + XDP_MODE_SKB = 0, + XDP_MODE_DRV = 1, + XDP_MODE_HW = 2, + __MAX_XDP_MODE = 3, +}; + +enum btf_arg_tag { + ARG_TAG_CTX = 1, + ARG_TAG_NONNULL = 2, + ARG_TAG_TRUSTED = 4, + ARG_TAG_NULLABLE = 8, + ARG_TAG_ARENA = 16, +}; + +enum btf_field_iter_kind { + BTF_FIELD_ITER_IDS = 0, + BTF_FIELD_ITER_STRS = 1, +}; + +enum btf_field_type { + BPF_SPIN_LOCK = 1, + BPF_TIMER = 2, + BPF_KPTR_UNREF = 4, + BPF_KPTR_REF = 8, + BPF_KPTR_PERCPU = 16, + BPF_KPTR = 28, + BPF_LIST_HEAD = 32, + BPF_LIST_NODE = 64, + BPF_RB_ROOT = 128, + BPF_RB_NODE = 256, + BPF_GRAPH_NODE = 320, + BPF_GRAPH_ROOT = 160, + BPF_REFCOUNT = 512, + BPF_WORKQUEUE = 1024, + BPF_UPTR = 2048, +}; + +enum btf_func_linkage { + BTF_FUNC_STATIC = 0, + BTF_FUNC_GLOBAL = 1, + BTF_FUNC_EXTERN = 2, +}; + +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 = 7, + BTF_KFUNC_HOOK_SCHED_ACT = 8, + BTF_KFUNC_HOOK_SK_SKB = 9, + BTF_KFUNC_HOOK_SOCKET_FILTER = 10, + BTF_KFUNC_HOOK_LWT = 11, + BTF_KFUNC_HOOK_NETFILTER = 12, + BTF_KFUNC_HOOK_KPROBE = 13, + BTF_KFUNC_HOOK_MAX = 14, +}; + +enum buddy { + FIRST = 0, + LAST = 1, +}; + +enum bug_trap_type { + BUG_TRAP_TYPE_NONE = 0, + BUG_TRAP_TYPE_WARN = 1, + BUG_TRAP_TYPE_BUG = 2, +}; + +enum bus_notifier_event { + BUS_NOTIFY_ADD_DEVICE = 0, + BUS_NOTIFY_DEL_DEVICE = 1, + BUS_NOTIFY_REMOVED_DEVICE = 2, + BUS_NOTIFY_BIND_DRIVER = 3, + BUS_NOTIFY_BOUND_DRIVER = 4, + BUS_NOTIFY_UNBIND_DRIVER = 5, + BUS_NOTIFY_UNBOUND_DRIVER = 6, + BUS_NOTIFY_DRIVER_NOT_BOUND = 7, +}; + +enum cache_indexing { + NODE_CACHE_DIRECT_MAP = 0, + NODE_CACHE_INDEXED = 1, + NODE_CACHE_OTHER = 2, +}; + +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_write_policy { + NODE_CACHE_WRITE_BACK = 0, + NODE_CACHE_WRITE_THROUGH = 1, + NODE_CACHE_WRITE_OTHER = 2, +}; + +enum cc_attr { + CC_ATTR_MEM_ENCRYPT = 0, + CC_ATTR_HOST_MEM_ENCRYPT = 1, + CC_ATTR_GUEST_MEM_ENCRYPT = 2, + CC_ATTR_GUEST_STATE_ENCRYPT = 3, + CC_ATTR_GUEST_UNROLL_STRING_IO = 4, + CC_ATTR_GUEST_SEV_SNP = 5, + CC_ATTR_GUEST_SNP_SECURE_TSC = 6, + CC_ATTR_HOST_SEV_SNP = 7, +}; + +enum cci400_perf_events { + CCI400_PMU_CYCLES = 255, +}; + +enum cci_models { + CCI400_R0 = 0, + CCI400_R1 = 1, + CCI500_R0 = 2, + CCI550_R0 = 3, + CCI_MODEL_MAX = 4, +}; + +enum cdns_pcie_msg_code { + MSG_CODE_ASSERT_INTA = 32, + MSG_CODE_ASSERT_INTB = 33, + MSG_CODE_ASSERT_INTC = 34, + MSG_CODE_ASSERT_INTD = 35, + MSG_CODE_DEASSERT_INTA = 36, + MSG_CODE_DEASSERT_INTB = 37, + MSG_CODE_DEASSERT_INTC = 38, + MSG_CODE_DEASSERT_INTD = 39, +}; + +enum cdns_pcie_msg_routing { + MSG_ROUTING_TO_RC = 0, + MSG_ROUTING_BY_ADDR = 1, + MSG_ROUTING_BY_ID = 2, + MSG_ROUTING_BCAST = 3, + MSG_ROUTING_LOCAL = 4, + MSG_ROUTING_GATHER = 5, +}; + +enum cdns_pcie_rp_bar { + RP_BAR_UNDEFINED = -1, + RP_BAR0 = 0, + RP_BAR1 = 1, + RP_NO_BAR = 2, +}; + +enum cdrom_print_option { + CTL_NAME = 0, + CTL_SPEED = 1, + CTL_SLOTS = 2, + CTL_CAPABILITY = 3, +}; + +enum cee_attrs { + DCB_ATTR_CEE_UNSPEC = 0, + DCB_ATTR_CEE_PEER_PG = 1, + DCB_ATTR_CEE_PEER_PFC = 2, + DCB_ATTR_CEE_PEER_APP_TABLE = 3, + DCB_ATTR_CEE_TX_PG = 4, + DCB_ATTR_CEE_RX_PG = 5, + DCB_ATTR_CEE_PFC = 6, + DCB_ATTR_CEE_APP_TABLE = 7, + DCB_ATTR_CEE_FEAT = 8, + __DCB_ATTR_CEE_MAX = 9, +}; + +enum cfg80211_signal_type { + CFG80211_SIGNAL_TYPE_NONE = 0, + CFG80211_SIGNAL_TYPE_MBM = 1, + CFG80211_SIGNAL_TYPE_UNSPEC = 2, +}; + +enum cgroup1_param { + Opt_all = 0, + Opt_clone_children = 1, + Opt_cpuset_v2_mode = 2, + Opt_name = 3, + Opt_none = 4, + Opt_noprefix = 5, + Opt_release_agent = 6, + Opt_xattr = 7, + Opt_favordynmods = 8, + Opt_nofavordynmods = 9, +}; + +enum cgroup2_param { + Opt_nsdelegate = 0, + Opt_favordynmods___2 = 1, + Opt_memory_localevents = 2, + Opt_memory_recursiveprot = 3, + Opt_memory_hugetlb_accounting = 4, + Opt_pids_localevents = 5, + nr__cgroup2_params = 6, +}; + +enum cgroup_bpf_attach_type { + CGROUP_BPF_ATTACH_TYPE_INVALID = -1, + CGROUP_INET_INGRESS = 0, + CGROUP_INET_EGRESS = 1, + CGROUP_INET_SOCK_CREATE = 2, + CGROUP_SOCK_OPS = 3, + CGROUP_DEVICE = 4, + CGROUP_INET4_BIND = 5, + CGROUP_INET6_BIND = 6, + CGROUP_INET4_CONNECT = 7, + CGROUP_INET6_CONNECT = 8, + CGROUP_UNIX_CONNECT = 9, + CGROUP_INET4_POST_BIND = 10, + CGROUP_INET6_POST_BIND = 11, + CGROUP_UDP4_SENDMSG = 12, + CGROUP_UDP6_SENDMSG = 13, + CGROUP_UNIX_SENDMSG = 14, + CGROUP_SYSCTL = 15, + CGROUP_UDP4_RECVMSG = 16, + CGROUP_UDP6_RECVMSG = 17, + CGROUP_UNIX_RECVMSG = 18, + CGROUP_GETSOCKOPT = 19, + CGROUP_SETSOCKOPT = 20, + CGROUP_INET4_GETPEERNAME = 21, + CGROUP_INET6_GETPEERNAME = 22, + CGROUP_UNIX_GETPEERNAME = 23, + CGROUP_INET4_GETSOCKNAME = 24, + CGROUP_INET6_GETSOCKNAME = 25, + CGROUP_UNIX_GETSOCKNAME = 26, + CGROUP_INET_SOCK_RELEASE = 27, + CGROUP_LSM_START = 28, + CGROUP_LSM_END = 37, + MAX_CGROUP_BPF_ATTACH_TYPE = 38, +}; + +enum cgroup_filetype { + CGROUP_FILE_PROCS = 0, + CGROUP_FILE_TASKS = 1, +}; + +enum cgroup_opt_features { + OPT_FEATURE_PRESSURE = 0, + OPT_FEATURE_COUNT = 1, +}; + +enum cgroup_subsys_id { + cpuset_cgrp_id = 0, + cpu_cgrp_id = 1, + cpuacct_cgrp_id = 2, + io_cgrp_id = 3, + memory_cgrp_id = 4, + devices_cgrp_id = 5, + freezer_cgrp_id = 6, + net_cls_cgrp_id = 7, + perf_event_cgrp_id = 8, + net_prio_cgrp_id = 9, + hugetlb_cgrp_id = 10, + pids_cgrp_id = 11, + rdma_cgrp_id = 12, + misc_cgrp_id = 13, + dmem_cgrp_id = 14, + CGROUP_SUBSYS_COUNT = 15, +}; + +enum cgt_group_id { + __RESERVED__ = 0, + CGT_HCR_TID1 = 1, + CGT_HCR_TID2 = 2, + CGT_HCR_TID3 = 3, + CGT_HCR_IMO = 4, + CGT_HCR_FMO = 5, + CGT_HCR_TIDCP = 6, + CGT_HCR_TACR = 7, + CGT_HCR_TSW = 8, + CGT_HCR_TPC = 9, + CGT_HCR_TPU = 10, + CGT_HCR_TTLB = 11, + CGT_HCR_TVM = 12, + CGT_HCR_TDZ = 13, + CGT_HCR_TRVM = 14, + CGT_HCR_TLOR = 15, + CGT_HCR_TERR = 16, + CGT_HCR_APK = 17, + CGT_HCR_NV = 18, + CGT_HCR_NV_nNV2 = 19, + CGT_HCR_NV1_nNV2 = 20, + CGT_HCR_AT = 21, + CGT_HCR_nFIEN = 22, + CGT_HCR_TID4 = 23, + CGT_HCR_TICAB = 24, + CGT_HCR_TOCU = 25, + CGT_HCR_ENSCXT = 26, + CGT_HCR_TTLBIS = 27, + CGT_HCR_TTLBOS = 28, + CGT_MDCR_TPMCR = 29, + CGT_MDCR_TPM = 30, + CGT_MDCR_TDE = 31, + CGT_MDCR_TDA = 32, + CGT_MDCR_TDOSA = 33, + CGT_MDCR_TDRA = 34, + CGT_MDCR_E2PB = 35, + CGT_MDCR_TPMS = 36, + CGT_MDCR_TTRF = 37, + CGT_MDCR_E2TB = 38, + CGT_MDCR_TDCC = 39, + CGT_CPTR_TAM = 40, + CGT_CPTR_TCPAC = 41, + CGT_HCRX_EnFPM = 42, + CGT_HCRX_TCR2En = 43, + CGT_CNTHCTL_EL1TVT = 44, + CGT_CNTHCTL_EL1TVCT = 45, + CGT_ICH_HCR_TC = 46, + CGT_ICH_HCR_TALL0 = 47, + CGT_ICH_HCR_TALL1 = 48, + CGT_ICH_HCR_TDIR = 49, + __MULTIPLE_CONTROL_BITS__ = 50, + CGT_HCR_IMO_FMO_ICH_HCR_TC = 50, + CGT_HCR_TID2_TID4 = 51, + CGT_HCR_TTLB_TTLBIS = 52, + CGT_HCR_TTLB_TTLBOS = 53, + CGT_HCR_TVM_TRVM = 54, + CGT_HCR_TVM_TRVM_HCRX_TCR2En = 55, + CGT_HCR_TPU_TICAB = 56, + CGT_HCR_TPU_TOCU = 57, + CGT_HCR_NV1_nNV2_ENSCXT = 58, + CGT_MDCR_TPM_TPMCR = 59, + CGT_MDCR_TPM_HPMN = 60, + CGT_MDCR_TDE_TDA = 61, + CGT_MDCR_TDE_TDOSA = 62, + CGT_MDCR_TDE_TDRA = 63, + CGT_MDCR_TDCC_TDE_TDA = 64, + CGT_ICH_HCR_TC_TDIR = 65, + __COMPLEX_CONDITIONS__ = 66, + CGT_CNTHCTL_EL1PCTEN = 66, + CGT_CNTHCTL_EL1PTEN = 67, + CGT_CNTHCTL_EL1NVPCT = 68, + CGT_CNTHCTL_EL1NVVCT = 69, + CGT_CPTR_TTA = 70, + CGT_MDCR_HPMN = 71, + __NR_CGT_GROUP_IDS__ = 72, +}; + +enum chacha_constants { + CHACHA_CONSTANT_EXPA = 1634760805, + CHACHA_CONSTANT_ND_3 = 857760878, + CHACHA_CONSTANT_2_BY = 2036477234, + CHACHA_CONSTANT_TE_K = 1797285236, +}; + +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 class_stat_type { + ZS_OBJS_ALLOCATED = 12, + ZS_OBJS_INUSE = 13, + NR_CLASS_STAT_TYPES = 14, +}; + +enum cleanup_prefix_rt_t { + CLEANUP_PREFIX_RT_NOP = 0, + CLEANUP_PREFIX_RT_DEL = 1, + CLEANUP_PREFIX_RT_EXPIRE = 2, +}; + +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, +}; + +enum clk_id { + tegra_clk_actmon = 0, + tegra_clk_adx = 1, + tegra_clk_adx1 = 2, + tegra_clk_afi = 3, + tegra_clk_amx = 4, + tegra_clk_amx1 = 5, + tegra_clk_apb2ape = 6, + tegra_clk_ahbdma = 7, + tegra_clk_apbdma = 8, + tegra_clk_apbif = 9, + tegra_clk_ape = 10, + tegra_clk_audio0 = 11, + tegra_clk_audio0_2x = 12, + tegra_clk_audio0_mux = 13, + tegra_clk_audio1 = 14, + tegra_clk_audio1_2x = 15, + tegra_clk_audio1_mux = 16, + tegra_clk_audio2 = 17, + tegra_clk_audio2_2x = 18, + tegra_clk_audio2_mux = 19, + tegra_clk_audio3 = 20, + tegra_clk_audio3_2x = 21, + tegra_clk_audio3_mux = 22, + tegra_clk_audio4 = 23, + tegra_clk_audio4_2x = 24, + tegra_clk_audio4_mux = 25, + tegra_clk_bsea = 26, + tegra_clk_bsev = 27, + tegra_clk_cclk_g = 28, + tegra_clk_cclk_lp = 29, + tegra_clk_cilab = 30, + tegra_clk_cilcd = 31, + tegra_clk_cile = 32, + tegra_clk_clk_32k = 33, + tegra_clk_clk72Mhz = 34, + tegra_clk_clk72Mhz_8 = 35, + tegra_clk_clk_m = 36, + tegra_clk_osc = 37, + tegra_clk_osc_div2 = 38, + tegra_clk_osc_div4 = 39, + tegra_clk_cml0 = 40, + tegra_clk_cml1 = 41, + tegra_clk_csi = 42, + tegra_clk_csite = 43, + tegra_clk_csite_8 = 44, + tegra_clk_csus = 45, + tegra_clk_cve = 46, + tegra_clk_dam0 = 47, + tegra_clk_dam1 = 48, + tegra_clk_dam2 = 49, + tegra_clk_d_audio = 50, + tegra_clk_dbgapb = 51, + tegra_clk_dds = 52, + tegra_clk_dfll_ref = 53, + tegra_clk_dfll_soc = 54, + tegra_clk_disp1 = 55, + tegra_clk_disp1_8 = 56, + tegra_clk_disp2 = 57, + tegra_clk_disp2_8 = 58, + tegra_clk_dp2 = 59, + tegra_clk_dpaux = 60, + tegra_clk_dpaux1 = 61, + tegra_clk_dsialp = 62, + tegra_clk_dsia_mux = 63, + tegra_clk_dsiblp = 64, + tegra_clk_dsib_mux = 65, + tegra_clk_dtv = 66, + tegra_clk_emc = 67, + tegra_clk_entropy = 68, + tegra_clk_entropy_8 = 69, + tegra_clk_epp = 70, + tegra_clk_epp_8 = 71, + tegra_clk_extern1 = 72, + tegra_clk_extern2 = 73, + tegra_clk_extern3 = 74, + tegra_clk_fuse = 75, + tegra_clk_fuse_burn = 76, + tegra_clk_gpu = 77, + tegra_clk_gr2d = 78, + tegra_clk_gr2d_8 = 79, + tegra_clk_gr3d = 80, + tegra_clk_gr3d_8 = 81, + tegra_clk_hclk = 82, + tegra_clk_hda = 83, + tegra_clk_hda_8 = 84, + tegra_clk_hda2codec_2x = 85, + tegra_clk_hda2codec_2x_8 = 86, + tegra_clk_hda2hdmi = 87, + tegra_clk_hdmi = 88, + tegra_clk_hdmi_audio = 89, + tegra_clk_host1x = 90, + tegra_clk_host1x_8 = 91, + tegra_clk_host1x_9 = 92, + tegra_clk_hsic_trk = 93, + tegra_clk_i2c1 = 94, + tegra_clk_i2c2 = 95, + tegra_clk_i2c3 = 96, + tegra_clk_i2c4 = 97, + tegra_clk_i2c5 = 98, + tegra_clk_i2c6 = 99, + tegra_clk_i2cslow = 100, + tegra_clk_i2s0 = 101, + tegra_clk_i2s0_sync = 102, + tegra_clk_i2s1 = 103, + tegra_clk_i2s1_sync = 104, + tegra_clk_i2s2 = 105, + tegra_clk_i2s2_sync = 106, + tegra_clk_i2s3 = 107, + tegra_clk_i2s3_sync = 108, + tegra_clk_i2s4 = 109, + tegra_clk_i2s4_sync = 110, + tegra_clk_isp = 111, + tegra_clk_isp_8 = 112, + tegra_clk_isp_9 = 113, + tegra_clk_ispb = 114, + tegra_clk_kbc = 115, + tegra_clk_kfuse = 116, + tegra_clk_la = 117, + tegra_clk_maud = 118, + tegra_clk_mipi = 119, + tegra_clk_mipibif = 120, + tegra_clk_mipi_cal = 121, + tegra_clk_mpe = 122, + tegra_clk_mselect = 123, + tegra_clk_msenc = 124, + tegra_clk_ndflash = 125, + tegra_clk_ndflash_8 = 126, + tegra_clk_ndspeed = 127, + tegra_clk_ndspeed_8 = 128, + tegra_clk_nor = 129, + tegra_clk_nvdec = 130, + tegra_clk_nvenc = 131, + tegra_clk_nvjpg = 132, + tegra_clk_owr = 133, + tegra_clk_owr_8 = 134, + tegra_clk_pcie = 135, + tegra_clk_pclk = 136, + tegra_clk_pll_a = 137, + tegra_clk_pll_a_out0 = 138, + tegra_clk_pll_a1 = 139, + tegra_clk_pll_c = 140, + tegra_clk_pll_c2 = 141, + tegra_clk_pll_c3 = 142, + tegra_clk_pll_c4 = 143, + tegra_clk_pll_c4_out0 = 144, + tegra_clk_pll_c4_out1 = 145, + tegra_clk_pll_c4_out2 = 146, + tegra_clk_pll_c4_out3 = 147, + tegra_clk_pll_c_out1 = 148, + tegra_clk_pll_d = 149, + tegra_clk_pll_d2 = 150, + tegra_clk_pll_d2_out0 = 151, + tegra_clk_pll_d_out0 = 152, + tegra_clk_pll_dp = 153, + tegra_clk_pll_e_out0 = 154, + tegra_clk_pll_g_ref = 155, + tegra_clk_pll_m = 156, + tegra_clk_pll_m_out1 = 157, + tegra_clk_pll_mb = 158, + tegra_clk_pll_p = 159, + tegra_clk_pll_p_out1 = 160, + tegra_clk_pll_p_out2 = 161, + tegra_clk_pll_p_out2_int = 162, + tegra_clk_pll_p_out3 = 163, + tegra_clk_pll_p_out4 = 164, + tegra_clk_pll_p_out4_cpu = 165, + tegra_clk_pll_p_out5 = 166, + tegra_clk_pll_p_out_hsio = 167, + tegra_clk_pll_p_out_xusb = 168, + tegra_clk_pll_p_out_cpu = 169, + tegra_clk_pll_p_out_adsp = 170, + tegra_clk_pll_ref = 171, + tegra_clk_pll_re_out = 172, + tegra_clk_pll_re_vco = 173, + tegra_clk_pll_u = 174, + tegra_clk_pll_u_out = 175, + tegra_clk_pll_u_out1 = 176, + tegra_clk_pll_u_out2 = 177, + tegra_clk_pll_u_12m = 178, + tegra_clk_pll_u_480m = 179, + tegra_clk_pll_u_48m = 180, + tegra_clk_pll_u_60m = 181, + tegra_clk_pll_x = 182, + tegra_clk_pll_x_out0 = 183, + tegra_clk_pwm = 184, + tegra_clk_qspi = 185, + tegra_clk_rtc = 186, + tegra_clk_sata = 187, + tegra_clk_sata_8 = 188, + tegra_clk_sata_cold = 189, + tegra_clk_sata_oob = 190, + tegra_clk_sata_oob_8 = 191, + tegra_clk_sbc1 = 192, + tegra_clk_sbc1_8 = 193, + tegra_clk_sbc1_9 = 194, + tegra_clk_sbc2 = 195, + tegra_clk_sbc2_8 = 196, + tegra_clk_sbc2_9 = 197, + tegra_clk_sbc3 = 198, + tegra_clk_sbc3_8 = 199, + tegra_clk_sbc3_9 = 200, + tegra_clk_sbc4 = 201, + tegra_clk_sbc4_8 = 202, + tegra_clk_sbc4_9 = 203, + tegra_clk_sbc5 = 204, + tegra_clk_sbc5_8 = 205, + tegra_clk_sbc6 = 206, + tegra_clk_sbc6_8 = 207, + tegra_clk_sclk = 208, + tegra_clk_sdmmc_legacy = 209, + tegra_clk_sdmmc1 = 210, + tegra_clk_sdmmc1_8 = 211, + tegra_clk_sdmmc1_9 = 212, + tegra_clk_sdmmc2 = 213, + tegra_clk_sdmmc2_8 = 214, + tegra_clk_sdmmc3 = 215, + tegra_clk_sdmmc3_8 = 216, + tegra_clk_sdmmc3_9 = 217, + tegra_clk_sdmmc4 = 218, + tegra_clk_sdmmc4_8 = 219, + tegra_clk_se = 220, + tegra_clk_se_10 = 221, + tegra_clk_soc_therm = 222, + tegra_clk_soc_therm_8 = 223, + tegra_clk_sor0 = 224, + tegra_clk_sor0_out = 225, + tegra_clk_sor1 = 226, + tegra_clk_sor1_out = 227, + tegra_clk_spdif = 228, + tegra_clk_spdif_2x = 229, + tegra_clk_spdif_in = 230, + tegra_clk_spdif_in_8 = 231, + tegra_clk_spdif_in_sync = 232, + tegra_clk_spdif_mux = 233, + tegra_clk_spdif_out = 234, + tegra_clk_timer = 235, + tegra_clk_trace = 236, + tegra_clk_tsec = 237, + tegra_clk_tsec_8 = 238, + tegra_clk_tsecb = 239, + tegra_clk_tsensor = 240, + tegra_clk_tvdac = 241, + tegra_clk_tvo = 242, + tegra_clk_uarta = 243, + tegra_clk_uarta_8 = 244, + tegra_clk_uartb = 245, + tegra_clk_uartb_8 = 246, + tegra_clk_uartc = 247, + tegra_clk_uartc_8 = 248, + tegra_clk_uartd = 249, + tegra_clk_uartd_8 = 250, + tegra_clk_uarte = 251, + tegra_clk_uarte_8 = 252, + tegra_clk_uartape = 253, + tegra_clk_usb2 = 254, + tegra_clk_usb2_hsic_trk = 255, + tegra_clk_usb2_trk = 256, + tegra_clk_usb3 = 257, + tegra_clk_usbd = 258, + tegra_clk_vcp = 259, + tegra_clk_vde = 260, + tegra_clk_vde_8 = 261, + tegra_clk_vfir = 262, + tegra_clk_vi = 263, + tegra_clk_vi_8 = 264, + tegra_clk_vi_9 = 265, + tegra_clk_vi_10 = 266, + tegra_clk_vi_i2c = 267, + tegra_clk_vic03 = 268, + tegra_clk_vic03_8 = 269, + tegra_clk_vim2_clk = 270, + tegra_clk_vimclk_sync = 271, + tegra_clk_vi_sensor = 272, + tegra_clk_vi_sensor_8 = 273, + tegra_clk_vi_sensor_9 = 274, + tegra_clk_vi_sensor2 = 275, + tegra_clk_vi_sensor2_8 = 276, + tegra_clk_xusb_dev = 277, + tegra_clk_xusb_dev_src = 278, + tegra_clk_xusb_dev_src_8 = 279, + tegra_clk_xusb_falcon_src = 280, + tegra_clk_xusb_falcon_src_8 = 281, + tegra_clk_xusb_fs_src = 282, + tegra_clk_xusb_gate = 283, + tegra_clk_xusb_host = 284, + tegra_clk_xusb_host_src = 285, + tegra_clk_xusb_host_src_8 = 286, + tegra_clk_xusb_hs_src = 287, + tegra_clk_xusb_hs_src_4 = 288, + tegra_clk_xusb_ss = 289, + tegra_clk_xusb_ss_src = 290, + tegra_clk_xusb_ss_src_8 = 291, + tegra_clk_xusb_ss_div2 = 292, + tegra_clk_xusb_ssp_src = 293, + tegra_clk_sclk_mux = 294, + tegra_clk_sor_safe = 295, + tegra_clk_cec = 296, + tegra_clk_ispa = 297, + tegra_clk_dmic1 = 298, + tegra_clk_dmic2 = 299, + tegra_clk_dmic3 = 300, + tegra_clk_dmic1_sync_clk = 301, + tegra_clk_dmic2_sync_clk = 302, + tegra_clk_dmic3_sync_clk = 303, + tegra_clk_dmic1_sync_clk_mux = 304, + tegra_clk_dmic2_sync_clk_mux = 305, + tegra_clk_dmic3_sync_clk_mux = 306, + tegra_clk_iqc1 = 307, + tegra_clk_iqc2 = 308, + tegra_clk_pll_a_out_adsp = 309, + tegra_clk_pll_a_out0_out_adsp = 310, + tegra_clk_adsp = 311, + tegra_clk_adsp_neon = 312, + tegra_clk_max = 313, +}; + +enum clk_id___2 { + CLK_NONE = 0, + CLK_MM = 1, + CLK_MFG = 2, + CLK_VENC = 3, + CLK_VENC_LT = 4, + CLK_ETHIF = 5, + CLK_VDEC = 6, + CLK_HIFSEL = 7, + CLK_JPGDEC = 8, + CLK_AUDIO = 9, + CLK_MAX = 10, +}; + +enum clk_ids { + LAST_DT_CORE_CLK = 18, + CLK_EXTAL = 19, + CLK_OSC_DIV1000 = 20, + CLK_PLL1 = 21, + CLK_PLL2 = 22, + CLK_PLL2_DIV2 = 23, + CLK_PLL2_DIV2_8 = 24, + CLK_PLL2_DIV2_10 = 25, + CLK_PLL3 = 26, + CLK_PLL3_400 = 27, + CLK_PLL3_533 = 28, + CLK_PLL3_DIV2 = 29, + CLK_PLL3_DIV2_4 = 30, + CLK_PLL3_DIV2_4_2 = 31, + CLK_SEL_PLL3_3 = 32, + CLK_DIV_PLL3_C = 33, + CLK_M2_DIV2 = 34, + CLK_PLL5 = 35, + CLK_PLL5_500 = 36, + CLK_PLL5_250 = 37, + CLK_PLL5_FOUTPOSTDIV = 38, + CLK_DSI_DIV = 39, + CLK_PLL6 = 40, + CLK_PLL6_250 = 41, + CLK_P1_DIV2 = 42, + CLK_PLL2_800 = 43, + CLK_PLL2_SDHI_533 = 44, + CLK_PLL2_SDHI_400 = 45, + CLK_PLL2_SDHI_266 = 46, + CLK_SD0_DIV4 = 47, + CLK_SD1_DIV4 = 48, + MOD_CLK_BASE = 49, +}; + +enum clk_ids___2 { + LAST_DT_CORE_CLK___2 = 8, + CLK_AUDIO_EXTAL = 9, + CLK_RTXIN = 10, + CLK_QEXTAL = 11, + CLK_PLLCM33 = 12, + CLK_PLLCLN = 13, + CLK_PLLDTY = 14, + CLK_PLLCA55 = 15, + CLK_PLLVDO = 16, + CLK_PLLCM33_DIV16 = 17, + CLK_PLLCLN_DIV2 = 18, + CLK_PLLCLN_DIV8 = 19, + CLK_PLLCLN_DIV16 = 20, + CLK_PLLDTY_ACPU = 21, + CLK_PLLDTY_ACPU_DIV2 = 22, + CLK_PLLDTY_ACPU_DIV4 = 23, + CLK_PLLDTY_DIV16 = 24, + CLK_PLLVDO_CRU0 = 25, + CLK_PLLVDO_CRU1 = 26, + CLK_PLLVDO_CRU2 = 27, + CLK_PLLVDO_CRU3 = 28, + MOD_CLK_BASE___2 = 29, +}; + +enum clk_ids___3 { + LAST_DT_CORE_CLK___3 = 25, + CLK_EXTAL___2 = 26, + CLK_OSC_DIV1000___2 = 27, + CLK_PLL1___2 = 28, + CLK_PLL2___2 = 29, + CLK_PLL2_DIV2___2 = 30, + CLK_PLL2_DIV2_8___2 = 31, + CLK_PLL2_DIV2_10___2 = 32, + CLK_PLL3___2 = 33, + CLK_PLL3_400___2 = 34, + CLK_PLL3_533___2 = 35, + CLK_M2_DIV2___2 = 36, + CLK_PLL3_DIV2___2 = 37, + CLK_PLL3_DIV2_2 = 38, + CLK_PLL3_DIV2_4___2 = 39, + CLK_PLL3_DIV2_4_2___2 = 40, + CLK_SEL_PLL3_3___2 = 41, + CLK_DIV_PLL3_C___2 = 42, + CLK_PLL4 = 43, + CLK_PLL5___2 = 44, + CLK_PLL5_FOUTPOSTDIV___2 = 45, + CLK_PLL5_FOUT1PH0 = 46, + CLK_PLL5_FOUT3 = 47, + CLK_PLL5_250___2 = 48, + CLK_PLL6___2 = 49, + CLK_PLL6_250___2 = 50, + CLK_P1_DIV2___2 = 51, + CLK_PLL2_800___2 = 52, + CLK_PLL2_SDHI_533___2 = 53, + CLK_PLL2_SDHI_400___2 = 54, + CLK_PLL2_SDHI_266___2 = 55, + CLK_SD0_DIV4___2 = 56, + CLK_SD1_DIV4___2 = 57, + CLK_SEL_GPU2 = 58, + CLK_SEL_PLL5_4 = 59, + CLK_DSI_DIV___2 = 60, + CLK_PLL2_533 = 61, + CLK_PLL2_533_DIV2 = 62, + CLK_DIV_DSI_LPCLK = 63, + MOD_CLK_BASE___3 = 64, +}; + +enum clk_ids___4 { + LAST_DT_CORE_CLK___4 = 42, + CLK_EXTAL___3 = 43, + CLK_EXTALR = 44, + CLK_MAIN = 45, + CLK_PLL1___3 = 46, + CLK_PLL20 = 47, + CLK_PLL21 = 48, + CLK_PLL30 = 49, + CLK_PLL31 = 50, + CLK_PLL5___3 = 51, + CLK_PLL1_DIV2 = 52, + CLK_PLL20_DIV2 = 53, + CLK_PLL21_DIV2 = 54, + CLK_PLL30_DIV2 = 55, + CLK_PLL31_DIV2 = 56, + CLK_PLL5_DIV2 = 57, + CLK_PLL5_DIV4 = 58, + CLK_S1 = 59, + CLK_S3 = 60, + CLK_SDSRC = 61, + CLK_RPCSRC = 62, + CLK_OCO = 63, + MOD_CLK_BASE___4 = 64, +}; + +enum clk_ids___5 { + LAST_DT_CORE_CLK___5 = 30, + CLK_EXTAL___4 = 31, + CLK_EXTALR___2 = 32, + CLK_MAIN___2 = 33, + CLK_PLL0 = 34, + CLK_PLL1___4 = 35, + CLK_PLL3___3 = 36, + CLK_PLL1_DIV2___2 = 37, + CLK_PLL1_DIV4 = 38, + MOD_CLK_BASE___5 = 39, +}; + +enum clk_ids___6 { + LAST_DT_CORE_CLK___6 = 77, + CLK_EXTAL___5 = 78, + CLK_EXTALR___3 = 79, + CLK_MAIN___3 = 80, + CLK_PLL1___5 = 81, + CLK_PLL2___3 = 82, + CLK_PLL3___4 = 83, + CLK_PLL4___2 = 84, + CLK_PLL5___4 = 85, + CLK_PLL6___3 = 86, + CLK_PLL1_DIV2___3 = 87, + CLK_PLL2_DIV2___3 = 88, + CLK_PLL3_DIV2___3 = 89, + CLK_PLL4_DIV2 = 90, + CLK_PLL5_DIV2___2 = 91, + CLK_PLL5_DIV4___2 = 92, + CLK_PLL6_DIV2 = 93, + CLK_S0 = 94, + CLK_S0_VIO = 95, + CLK_S0_VC = 96, + CLK_S0_HSC = 97, + CLK_SASYNCPER = 98, + CLK_SV_VIP = 99, + CLK_SV_IR = 100, + CLK_SDSRC___2 = 101, + CLK_RPCSRC___2 = 102, + CLK_VIO = 103, + CLK_VC = 104, + CLK_OCO___2 = 105, + MOD_CLK_BASE___6 = 106, +}; + +enum clk_ids___7 { + LAST_DT_CORE_CLK___7 = 24, + CLK_EXTAL___6 = 25, + CLK_OSC_DIV1000___3 = 26, + CLK_PLL1___6 = 27, + CLK_PLL2___4 = 28, + CLK_PLL2_DIV2___4 = 29, + CLK_PLL2_DIV2_8___3 = 30, + CLK_PLL2_DIV6 = 31, + CLK_PLL3___5 = 32, + CLK_PLL3_DIV2___4 = 33, + CLK_PLL3_DIV2_4___3 = 34, + CLK_PLL3_DIV2_8 = 35, + CLK_PLL3_DIV6 = 36, + CLK_PLL4___3 = 37, + CLK_PLL6___4 = 38, + CLK_PLL6_DIV2___2 = 39, + CLK_SEL_SDHI0 = 40, + CLK_SEL_SDHI1 = 41, + CLK_SEL_SDHI2 = 42, + CLK_SEL_PLL4 = 43, + CLK_P1_DIV2___3 = 44, + CLK_P3_DIV2 = 45, + CLK_SD0_DIV4___3 = 46, + CLK_SD1_DIV4___3 = 47, + CLK_SD2_DIV4 = 48, + MOD_CLK_BASE___7 = 49, +}; + +enum clk_ids___8 { + LAST_DT_CORE_CLK___8 = 49, + CLK_EXTAL___7 = 50, + CLK_EXTALR___4 = 51, + CLK_MAIN___4 = 52, + CLK_PLL0___2 = 53, + CLK_PLL1___7 = 54, + CLK_PLL3___6 = 55, + CLK_PLL4___4 = 56, + CLK_PLL1_DIV2___4 = 57, + CLK_PLL1_DIV4___2 = 58, + CLK_S0___2 = 59, + CLK_S1___2 = 60, + CLK_S2 = 61, + CLK_S3___2 = 62, + CLK_SDSRC___3 = 63, + CLK_SSPSRC = 64, + CLK_RPCSRC___3 = 65, + CLK_RINT = 66, + MOD_CLK_BASE___8 = 67, +}; + +enum clk_ids___9 { + LAST_DT_CORE_CLK___9 = 41, + CLK_EXTAL___8 = 42, + CLK_MAIN___5 = 43, + CLK_PLL0___3 = 44, + CLK_PLL1___8 = 45, + CLK_PLL3___7 = 46, + CLK_PLL0D2 = 47, + CLK_PLL0D3 = 48, + CLK_PLL0D5 = 49, + CLK_PLL1D2 = 50, + CLK_PE = 51, + CLK_S0___3 = 52, + CLK_S1___3 = 53, + CLK_S2___2 = 54, + CLK_S3___3 = 55, + CLK_SDSRC___4 = 56, + CLK_RPCSRC___4 = 57, + CLK_RINT___2 = 58, + CLK_OCO___3 = 59, + MOD_CLK_BASE___9 = 60, +}; + +enum clk_ids___10 { + LAST_DT_CORE_CLK___10 = 51, + CLK_EXTAL___9 = 52, + CLK_EXTALR___5 = 53, + CLK_MAIN___6 = 54, + CLK_PLL0___4 = 55, + CLK_PLL1___9 = 56, + CLK_PLL2___5 = 57, + CLK_PLL3___8 = 58, + CLK_PLL4___5 = 59, + CLK_PLL1_DIV2___5 = 60, + CLK_PLL1_DIV4___3 = 61, + CLK_S0___4 = 62, + CLK_S1___4 = 63, + CLK_S2___3 = 64, + CLK_S3___4 = 65, + CLK_SDSRC___5 = 66, + CLK_SSPSRC___2 = 67, + CLK_RPCSRC___5 = 68, + CLK_RINT___3 = 69, + MOD_CLK_BASE___10 = 70, +}; + +enum clk_ids___11 { + LAST_DT_CORE_CLK___11 = 52, + CLK_EXTAL___10 = 53, + CLK_EXTALR___6 = 54, + CLK_MAIN___7 = 55, + CLK_PLL0___5 = 56, + CLK_PLL1___10 = 57, + CLK_PLL2___6 = 58, + CLK_PLL3___9 = 59, + CLK_PLL4___6 = 60, + CLK_PLL1_DIV2___6 = 61, + CLK_PLL1_DIV4___4 = 62, + CLK_S0___5 = 63, + CLK_S1___5 = 64, + CLK_S2___4 = 65, + CLK_S3___5 = 66, + CLK_SDSRC___6 = 67, + CLK_SSPSRC___3 = 68, + CLK_RPCSRC___6 = 69, + CLK_RINT___4 = 70, + MOD_CLK_BASE___11 = 71, +}; + +enum clk_ids___12 { + LAST_DT_CORE_CLK___12 = 0, + CLK_EXTAL___11 = 1, + CLK_MAIN___8 = 2, + CLK_MAIN_24 = 3, + CLK_MAIN_2 = 4, + CLK_PLL1___11 = 5, + CLK_PLL2___7 = 6, + CLK_PLL2_800___3 = 7, + CLK_PLL2_400 = 8, + CLK_PLL2_200 = 9, + CLK_PLL2_100 = 10, + CLK_PLL4___7 = 11, + CLK_DIV_A = 12, + CLK_DIV_B = 13, + CLK_DIV_D = 14, + CLK_DIV_E = 15, + CLK_DIV_W = 16, + CLK_SEL_B = 17, + CLK_SEL_B_D2 = 18, + CLK_SEL_CSI0 = 19, + CLK_SEL_CSI4 = 20, + CLK_SEL_D = 21, + CLK_SEL_E = 22, + CLK_SEL_SDI = 23, + CLK_SEL_W0 = 24, + MOD_CLK_BASE___12 = 25, +}; + +enum clk_ids___13 { + LAST_DT_CORE_CLK___13 = 48, + CLK_EXTAL___12 = 49, + CLK_MAIN___9 = 50, + CLK_PLL0___6 = 51, + CLK_PLL1___12 = 52, + CLK_PLL3___10 = 53, + CLK_PLL0D4 = 54, + CLK_PLL0D6 = 55, + CLK_PLL0D8 = 56, + CLK_PLL0D20 = 57, + CLK_PLL0D24 = 58, + CLK_PLL1D2___2 = 59, + CLK_PE___2 = 60, + CLK_S0___6 = 61, + CLK_S1___6 = 62, + CLK_S2___5 = 63, + CLK_S3___6 = 64, + CLK_SDSRC___7 = 65, + CLK_RPCSRC___7 = 66, + CLK_RINT___5 = 67, + CLK_OCO___4 = 68, + MOD_CLK_BASE___13 = 69, +}; + +enum clk_ids___14 { + LAST_DT_CORE_CLK___14 = 49, + CLK_EXTAL___13 = 50, + CLK_MAIN___10 = 51, + CLK_PLL0___7 = 52, + CLK_PLL1___13 = 53, + CLK_PLL3___11 = 54, + CLK_PLL0D4___2 = 55, + CLK_PLL0D6___2 = 56, + CLK_PLL0D8___2 = 57, + CLK_PLL0D20___2 = 58, + CLK_PLL0D24___2 = 59, + CLK_PLL1D2___3 = 60, + CLK_PE___3 = 61, + CLK_S0___7 = 62, + CLK_S1___7 = 63, + CLK_S2___6 = 64, + CLK_S3___7 = 65, + CLK_SDSRC___8 = 66, + CLK_RPCSRC___8 = 67, + CLK_RINT___6 = 68, + CLK_OCO___5 = 69, + MOD_CLK_BASE___14 = 70, +}; + +enum clk_ids___15 { + LAST_DT_CORE_CLK___15 = 50, + CLK_EXTAL___14 = 51, + CLK_EXTALR___7 = 52, + CLK_MAIN___11 = 53, + CLK_PLL1___14 = 54, + CLK_PLL2___8 = 55, + CLK_PLL3___12 = 56, + CLK_PLL5___5 = 57, + CLK_PLL6___5 = 58, + CLK_PLL1_DIV2___7 = 59, + CLK_PLL2_DIV2___5 = 60, + CLK_PLL3_DIV2___5 = 61, + CLK_PLL5_DIV2___3 = 62, + CLK_PLL5_DIV4___3 = 63, + CLK_PLL6_DIV2___3 = 64, + CLK_S0___8 = 65, + CLK_SASYNCPER___2 = 66, + CLK_SDSRC___9 = 67, + CLK_RPCSRC___9 = 68, + CLK_OCO___6 = 69, + MOD_CLK_BASE___15 = 70, +}; + +enum clk_ids___16 { + LAST_DT_CORE_CLK___16 = 46, + CLK_EXTAL___15 = 47, + CLK_EXTALR___8 = 48, + CLK_MAIN___12 = 49, + CLK_PLL0___8 = 50, + CLK_PLL1___15 = 51, + CLK_PLL2___9 = 52, + CLK_PLL3___13 = 53, + CLK_PLL4___8 = 54, + CLK_PLL1_DIV2___8 = 55, + CLK_PLL1_DIV4___5 = 56, + CLK_S0___9 = 57, + CLK_S1___8 = 58, + CLK_S2___7 = 59, + CLK_S3___8 = 60, + CLK_SDSRC___10 = 61, + CLK_RPCSRC___10 = 62, + CLK_RINT___7 = 63, + MOD_CLK_BASE___16 = 64, +}; + +enum clk_ids___17 { + LAST_DT_CORE_CLK___17 = 37, + CLK_EXTAL___16 = 38, + CLK_EXTALR___9 = 39, + CLK_MAIN___13 = 40, + CLK_PLL1___16 = 41, + CLK_PLL2___10 = 42, + CLK_PLL3___14 = 43, + CLK_PLL1_DIV2___9 = 44, + CLK_PLL1_DIV4___6 = 45, + CLK_S0___10 = 46, + CLK_S1___9 = 47, + CLK_S2___8 = 48, + CLK_S3___9 = 49, + CLK_SDSRC___11 = 50, + CLK_RPCSRC___11 = 51, + CLK_OCO___7 = 52, + MOD_CLK_BASE___17 = 53, +}; + +enum clk_ids___18 { + LAST_DT_CORE_CLK___18 = 44, + CLK_EXTAL___17 = 45, + CLK_EXTALR___10 = 46, + CLK_MAIN___14 = 47, + CLK_PLL0___9 = 48, + CLK_PLL1___17 = 49, + CLK_PLL3___15 = 50, + CLK_PLL4___9 = 51, + CLK_PLL1_DIV2___10 = 52, + CLK_PLL1_DIV4___7 = 53, + CLK_S0___11 = 54, + CLK_S1___10 = 55, + CLK_S2___9 = 56, + CLK_S3___10 = 57, + CLK_SDSRC___12 = 58, + CLK_RPCSRC___12 = 59, + CLK_RINT___8 = 60, + MOD_CLK_BASE___18 = 61, +}; + +enum clk_ids___19 { + LAST_DT_CORE_CLK___19 = 8, + CLK_AUDIO_EXTAL___2 = 9, + CLK_RTXIN___2 = 10, + CLK_QEXTAL___2 = 11, + CLK_PLLCM33___2 = 12, + CLK_PLLCLN___2 = 13, + CLK_PLLDTY___2 = 14, + CLK_PLLCA55___2 = 15, + CLK_PLLCM33_DIV16___2 = 16, + CLK_PLLCLN_DIV16___2 = 17, + CLK_PLLDTY_ACPU___2 = 18, + CLK_PLLDTY_ACPU_DIV4___2 = 19, + MOD_CLK_BASE___19 = 20, +}; + +enum clk_ids___20 { + LAST_DT_CORE_CLK___20 = 82, + CLK_EXTAL___18 = 83, + CLK_EXTALR___11 = 84, + CLK_MAIN___15 = 85, + CLK_PLL1___18 = 86, + CLK_PLL2___11 = 87, + CLK_PLL3___16 = 88, + CLK_PLL4___10 = 89, + CLK_PLL5___6 = 90, + CLK_PLL6___6 = 91, + CLK_PLL1_DIV2___11 = 92, + CLK_PLL3_DIV2___6 = 93, + CLK_PLL4_DIV2___2 = 94, + CLK_PLL4_DIV5 = 95, + CLK_PLL5_DIV2___4 = 96, + CLK_PLL5_DIV4___4 = 97, + CLK_PLL6_DIV2___4 = 98, + CLK_S0___12 = 99, + CLK_S0_VIO___2 = 100, + CLK_S0_VC___2 = 101, + CLK_S0_HSC___2 = 102, + CLK_SASYNCPER___3 = 103, + CLK_SV_VIP___2 = 104, + CLK_SV_IR___2 = 105, + CLK_IMPASRC = 106, + CLK_IMPBSRC = 107, + CLK_VIOSRC = 108, + CLK_VCSRC = 109, + CLK_SDSRC___13 = 110, + CLK_RPCSRC___13 = 111, + CLK_OCO___8 = 112, + MOD_CLK_BASE___20 = 113, +}; + +enum clk_reg_layout { + CLK_REG_LAYOUT_RCAR_GEN2_AND_GEN3 = 0, + CLK_REG_LAYOUT_RZ_A = 1, + CLK_REG_LAYOUT_RCAR_GEN4 = 2, +}; + +enum clk_state { + CLK_STATE_DISABLE = 0, + CLK_STATE_ENABLE = 1, + CLK_STATE_RESERVED = 2, + CLK_STATE_UNCHANGED = 3, +}; + +enum clk_type { + CLK_TYPE_OUTPUT = 0, + CLK_TYPE_EXTERNAL = 1, +}; + +enum clk_type_t { + CLK_EXT_DIFF = 0, + CLK_INT_DIFF = 1, + CLK_INT_SING = 2, +}; + +enum clk_types { + CLK_TYPE_IN = 0, + CLK_TYPE_FF = 1, + CLK_TYPE_PLL = 2, + CLK_TYPE_DDIV = 3, +}; + +enum clk_types___2 { + CLK_TYPE_IN___2 = 0, + CLK_TYPE_FF___2 = 1, + CLK_TYPE_SAM_PLL = 2, + CLK_TYPE_G3S_PLL = 3, + CLK_TYPE_DIV = 4, + CLK_TYPE_G3S_DIV = 5, + CLK_TYPE_MUX = 6, + CLK_TYPE_SD_MUX = 7, + CLK_TYPE_SIPLL5 = 8, + CLK_TYPE_PLL5_4_MUX = 9, + CLK_TYPE_DSI_DIV = 10, +}; + +enum clk_types___3 { + CLK_TYPE_IN___3 = 0, + CLK_TYPE_FF___3 = 1, + CLK_TYPE_DIV6P1 = 2, + CLK_TYPE_DIV6_RO = 3, + CLK_TYPE_FR = 4, + CLK_TYPE_CUSTOM = 5, +}; + +enum clock_event_state { + CLOCK_EVT_STATE_DETACHED = 0, + CLOCK_EVT_STATE_SHUTDOWN = 1, + CLOCK_EVT_STATE_PERIODIC = 2, + CLOCK_EVT_STATE_ONESHOT = 3, + CLOCK_EVT_STATE_ONESHOT_STOPPED = 4, +}; + +enum clocksource_ids { + CSID_GENERIC = 0, + CSID_ARM_ARCH_COUNTER = 1, + CSID_S390_TOD = 2, + CSID_X86_TSC_EARLY = 3, + CSID_X86_TSC = 4, + CSID_X86_KVM_CLK = 5, + CSID_X86_ART = 6, + CSID_MAX = 7, +}; + +enum closure_state { + CLOSURE_BITS_START = 67108864, + CLOSURE_DESTRUCTOR = 67108864, + CLOSURE_WAITING = 268435456, + CLOSURE_RUNNING = 1073741824, +}; + +enum cm_batt_temp { + CM_BATT_OK = 0, + CM_BATT_OVERHEAT = 1, + CM_BATT_COLD = 2, +}; + +enum cmd_db_hw_type { + CMD_DB_HW_INVALID = 0, + CMD_DB_HW_MIN = 3, + CMD_DB_HW_ARC = 3, + CMD_DB_HW_VRM = 4, + CMD_DB_HW_BCM = 5, + CMD_DB_HW_MAX = 5, + CMD_DB_HW_ALL = 255, +}; + +enum cmd_type { + CMD_ADDR = 1, + CMD_LISTEN = 2, + CMD_OPT = 4, +}; + +enum cmis_cdb_fw_write_mechanism { + CMIS_CDB_FW_WRITE_MECHANISM_NONE = 0, + CMIS_CDB_FW_WRITE_MECHANISM_LPL = 1, + CMIS_CDB_FW_WRITE_MECHANISM_EPL = 16, + CMIS_CDB_FW_WRITE_MECHANISM_BOTH = 17, +}; + +enum cmu_type_t { + REF_CMU = 0, + PHY_CMU = 1, +}; + +enum comm_dir { + COMM_DIR_NONE = 0, + COMM_DIR_RX = 1, + COMM_DIR_TX = 2, + COMM_DIR_RX_AND_TX = 3, +}; + +enum compact_priority { + COMPACT_PRIO_SYNC_FULL = 0, + MIN_COMPACT_PRIORITY = 0, + COMPACT_PRIO_SYNC_LIGHT = 1, + MIN_COMPACT_COSTLY_PRIORITY = 1, + DEF_COMPACT_PRIORITY = 1, + COMPACT_PRIO_ASYNC = 2, + INIT_COMPACT_PRIORITY = 2, +}; + +enum compact_result { + COMPACT_NOT_SUITABLE_ZONE = 0, + COMPACT_SKIPPED = 1, + COMPACT_DEFERRED = 2, + COMPACT_NO_SUITABLE_PAGE = 3, + COMPACT_CONTINUE = 4, + COMPACT_COMPLETE = 5, + COMPACT_PARTIAL_SKIPPED = 6, + COMPACT_CONTENDED = 7, + COMPACT_SUCCESS = 8, +}; + +enum compat_regset { + REGSET_COMPAT_GPR = 0, + REGSET_COMPAT_VFP = 1, +}; + +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, +}; + +enum con_scroll { + SM_UP = 0, + SM_DOWN = 1, +}; + +enum cons_flags { + CON_PRINTBUFFER = 1, + CON_CONSDEV = 2, + CON_ENABLED = 4, + CON_BOOT = 8, + CON_ANYTIME = 16, + CON_BRL = 32, + CON_EXTENDED = 64, + CON_SUSPENDED = 128, + CON_NBCON = 256, +}; + +enum cpio_fields { + C_MAGIC = 0, + C_INO = 1, + C_MODE = 2, + C_UID = 3, + C_GID = 4, + C_NLINK = 5, + C_MTIME = 6, + C_FILESIZE = 7, + C_MAJ = 8, + C_MIN = 9, + C_RMAJ = 10, + C_RMIN = 11, + C_NAMESIZE = 12, + C_CHKSUM = 13, + C_NFIELDS = 14, +}; + +enum 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, +}; + +enum cppi5_tr_event_size { + CPPI5_TR_EVENT_SIZE_COMPLETION = 0, + CPPI5_TR_EVENT_SIZE_ICNT1_DEC = 1, + CPPI5_TR_EVENT_SIZE_ICNT2_DEC = 2, + CPPI5_TR_EVENT_SIZE_ICNT3_DEC = 3, + CPPI5_TR_EVENT_SIZE_MAX = 4, +}; + +enum cppi5_tr_trigger { + CPPI5_TR_TRIGGER_NONE = 0, + CPPI5_TR_TRIGGER_GLOBAL0 = 1, + CPPI5_TR_TRIGGER_GLOBAL1 = 2, + CPPI5_TR_TRIGGER_LOCAL_EVENT = 3, + CPPI5_TR_TRIGGER_MAX = 4, +}; + +enum cppi5_tr_trigger_type { + CPPI5_TR_TRIGGER_TYPE_ICNT1_DEC = 0, + CPPI5_TR_TRIGGER_TYPE_ICNT2_DEC = 1, + CPPI5_TR_TRIGGER_TYPE_ICNT3_DEC = 2, + CPPI5_TR_TRIGGER_TYPE_ALL = 3, + CPPI5_TR_TRIGGER_TYPE_MAX = 4, +}; + +enum cppi5_tr_types { + CPPI5_TR_TYPE0 = 0, + CPPI5_TR_TYPE1 = 1, + CPPI5_TR_TYPE2 = 2, + CPPI5_TR_TYPE3 = 3, + CPPI5_TR_TYPE4 = 4, + CPPI5_TR_TYPE5 = 5, + CPPI5_TR_TYPE8 = 8, + CPPI5_TR_TYPE9 = 9, + CPPI5_TR_TYPE10 = 10, + CPPI5_TR_TYPE11 = 11, + CPPI5_TR_TYPE15 = 15, + CPPI5_TR_TYPE_MAX = 16, +}; + +enum cpu_idle_type { + __CPU_NOT_IDLE = 0, + CPU_IDLE = 1, + CPU_NEWLY_IDLE = 2, + CPU_MAX_IDLE_TYPES = 3, +}; + +enum cpu_led_event { + CPU_LED_IDLE_START = 0, + CPU_LED_IDLE_END = 1, + CPU_LED_START = 2, + CPU_LED_STOP = 3, + CPU_LED_HALTED = 4, +}; + +enum cpu_mitigations { + CPU_MITIGATIONS_OFF = 0, + CPU_MITIGATIONS_AUTO = 1, + CPU_MITIGATIONS_AUTO_NOSMT = 2, +}; + +enum cpu_pm_event { + CPU_PM_ENTER = 0, + CPU_PM_ENTER_FAILED = 1, + CPU_PM_EXIT = 2, + CPU_CLUSTER_PM_ENTER = 3, + CPU_CLUSTER_PM_ENTER_FAILED = 4, + CPU_CLUSTER_PM_EXIT = 5, +}; + +enum 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, + CPUTIME_FORCEIDLE = 10, + NR_STATS = 11, +}; + +enum cpuacct_stat_index { + CPUACCT_STAT_USER = 0, + CPUACCT_STAT_SYSTEM = 1, + CPUACCT_STAT_NSTATS = 2, +}; + +enum cpufreq_table_sorting { + CPUFREQ_TABLE_UNSORTED = 0, + CPUFREQ_TABLE_SORTED_ASCENDING = 1, + CPUFREQ_TABLE_SORTED_DESCENDING = 2, +}; + +enum cpuhp_smt_control { + CPU_SMT_ENABLED = 0, + CPU_SMT_DISABLED = 1, + CPU_SMT_FORCE_DISABLED = 2, + CPU_SMT_NOT_SUPPORTED = 3, + CPU_SMT_NOT_IMPLEMENTED = 4, +}; + +enum cpuhp_state { + CPUHP_INVALID = -1, + CPUHP_OFFLINE = 0, + CPUHP_CREATE_THREADS = 1, + CPUHP_PERF_PREPARE = 2, + CPUHP_PERF_X86_PREPARE = 3, + CPUHP_PERF_X86_AMD_UNCORE_PREP = 4, + CPUHP_PERF_POWER = 5, + CPUHP_PERF_SUPERH = 6, + CPUHP_X86_HPET_DEAD = 7, + CPUHP_X86_MCE_DEAD = 8, + CPUHP_VIRT_NET_DEAD = 9, + CPUHP_IBMVNIC_DEAD = 10, + CPUHP_SLUB_DEAD = 11, + CPUHP_DEBUG_OBJ_DEAD = 12, + CPUHP_MM_WRITEBACK_DEAD = 13, + CPUHP_MM_VMSTAT_DEAD = 14, + CPUHP_SOFTIRQ_DEAD = 15, + CPUHP_NET_MVNETA_DEAD = 16, + CPUHP_CPUIDLE_DEAD = 17, + CPUHP_ARM64_FPSIMD_DEAD = 18, + CPUHP_ARM_OMAP_WAKE_DEAD = 19, + CPUHP_IRQ_POLL_DEAD = 20, + CPUHP_BLOCK_SOFTIRQ_DEAD = 21, + CPUHP_BIO_DEAD = 22, + CPUHP_ACPI_CPUDRV_DEAD = 23, + CPUHP_S390_PFAULT_DEAD = 24, + CPUHP_BLK_MQ_DEAD = 25, + CPUHP_FS_BUFF_DEAD = 26, + CPUHP_PRINTK_DEAD = 27, + CPUHP_MM_MEMCQ_DEAD = 28, + CPUHP_PERCPU_CNT_DEAD = 29, + CPUHP_RADIX_DEAD = 30, + CPUHP_PAGE_ALLOC = 31, + CPUHP_NET_DEV_DEAD = 32, + CPUHP_PCI_XGENE_DEAD = 33, + CPUHP_IOMMU_IOVA_DEAD = 34, + CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 35, + CPUHP_PADATA_DEAD = 36, + CPUHP_AP_DTPM_CPU_DEAD = 37, + CPUHP_RANDOM_PREPARE = 38, + CPUHP_WORKQUEUE_PREP = 39, + CPUHP_POWER_NUMA_PREPARE = 40, + CPUHP_HRTIMERS_PREPARE = 41, + CPUHP_X2APIC_PREPARE = 42, + CPUHP_SMPCFD_PREPARE = 43, + CPUHP_RELAY_PREPARE = 44, + CPUHP_MD_RAID5_PREPARE = 45, + CPUHP_RCUTREE_PREP = 46, + CPUHP_CPUIDLE_COUPLED_PREPARE = 47, + CPUHP_POWERPC_PMAC_PREPARE = 48, + CPUHP_POWERPC_MMU_CTX_PREPARE = 49, + CPUHP_XEN_PREPARE = 50, + CPUHP_XEN_EVTCHN_PREPARE = 51, + CPUHP_ARM_SHMOBILE_SCU_PREPARE = 52, + CPUHP_SH_SH3X_PREPARE = 53, + CPUHP_TOPOLOGY_PREPARE = 54, + CPUHP_NET_IUCV_PREPARE = 55, + CPUHP_ARM_BL_PREPARE = 56, + CPUHP_TRACE_RB_PREPARE = 57, + CPUHP_MM_ZS_PREPARE = 58, + CPUHP_MM_ZSWP_POOL_PREPARE = 59, + CPUHP_KVM_PPC_BOOK3S_PREPARE = 60, + CPUHP_ZCOMP_PREPARE = 61, + CPUHP_TIMERS_PREPARE = 62, + CPUHP_TMIGR_PREPARE = 63, + CPUHP_MIPS_SOC_PREPARE = 64, + CPUHP_BP_PREPARE_DYN = 65, + CPUHP_BP_PREPARE_DYN_END = 85, + CPUHP_BP_KICK_AP = 86, + CPUHP_BRINGUP_CPU = 87, + CPUHP_AP_IDLE_DEAD = 88, + CPUHP_AP_OFFLINE = 89, + CPUHP_AP_CACHECTRL_STARTING = 90, + CPUHP_AP_SCHED_STARTING = 91, + CPUHP_AP_RCUTREE_DYING = 92, + CPUHP_AP_CPU_PM_STARTING = 93, + CPUHP_AP_IRQ_GIC_STARTING = 94, + CPUHP_AP_IRQ_HIP04_STARTING = 95, + CPUHP_AP_IRQ_APPLE_AIC_STARTING = 96, + CPUHP_AP_IRQ_ARMADA_XP_STARTING = 97, + CPUHP_AP_IRQ_BCM2836_STARTING = 98, + CPUHP_AP_IRQ_MIPS_GIC_STARTING = 99, + CPUHP_AP_IRQ_EIOINTC_STARTING = 100, + CPUHP_AP_IRQ_AVECINTC_STARTING = 101, + CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 102, + CPUHP_AP_IRQ_THEAD_ACLINT_SSWI_STARTING = 103, + CPUHP_AP_IRQ_RISCV_IMSIC_STARTING = 104, + CPUHP_AP_IRQ_RISCV_SBI_IPI_STARTING = 105, + CPUHP_AP_ARM_MVEBU_COHERENCY = 106, + CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 107, + CPUHP_AP_PERF_X86_STARTING = 108, + CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 109, + CPUHP_AP_PERF_XTENSA_STARTING = 110, + CPUHP_AP_ARM_VFP_STARTING = 111, + CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 112, + CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 113, + CPUHP_AP_PERF_ARM_ACPI_STARTING = 114, + CPUHP_AP_PERF_ARM_STARTING = 115, + CPUHP_AP_PERF_RISCV_STARTING = 116, + CPUHP_AP_ARM_L2X0_STARTING = 117, + CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 118, + CPUHP_AP_ARM_ARCH_TIMER_STARTING = 119, + CPUHP_AP_ARM_ARCH_TIMER_EVTSTRM_STARTING = 120, + CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 121, + CPUHP_AP_JCORE_TIMER_STARTING = 122, + CPUHP_AP_ARM_TWD_STARTING = 123, + CPUHP_AP_QCOM_TIMER_STARTING = 124, + CPUHP_AP_TEGRA_TIMER_STARTING = 125, + CPUHP_AP_ARMADA_TIMER_STARTING = 126, + CPUHP_AP_MIPS_GIC_TIMER_STARTING = 127, + CPUHP_AP_ARC_TIMER_STARTING = 128, + CPUHP_AP_REALTEK_TIMER_STARTING = 129, + CPUHP_AP_RISCV_TIMER_STARTING = 130, + CPUHP_AP_CLINT_TIMER_STARTING = 131, + CPUHP_AP_CSKY_TIMER_STARTING = 132, + CPUHP_AP_TI_GP_TIMER_STARTING = 133, + CPUHP_AP_HYPERV_TIMER_STARTING = 134, + CPUHP_AP_DUMMY_TIMER_STARTING = 135, + CPUHP_AP_ARM_XEN_STARTING = 136, + CPUHP_AP_ARM_XEN_RUNSTATE_STARTING = 137, + CPUHP_AP_ARM_CORESIGHT_STARTING = 138, + CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 139, + CPUHP_AP_ARM64_ISNDEP_STARTING = 140, + CPUHP_AP_SMPCFD_DYING = 141, + CPUHP_AP_HRTIMERS_DYING = 142, + CPUHP_AP_TICK_DYING = 143, + CPUHP_AP_X86_TBOOT_DYING = 144, + CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 145, + CPUHP_AP_ONLINE = 146, + CPUHP_TEARDOWN_CPU = 147, + CPUHP_AP_ONLINE_IDLE = 148, + CPUHP_AP_HYPERV_ONLINE = 149, + CPUHP_AP_KVM_ONLINE = 150, + CPUHP_AP_SCHED_WAIT_EMPTY = 151, + CPUHP_AP_SMPBOOT_THREADS = 152, + CPUHP_AP_IRQ_AFFINITY_ONLINE = 153, + CPUHP_AP_BLK_MQ_ONLINE = 154, + CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 155, + CPUHP_AP_X86_INTEL_EPB_ONLINE = 156, + CPUHP_AP_PERF_ONLINE = 157, + CPUHP_AP_PERF_X86_ONLINE = 158, + CPUHP_AP_PERF_X86_UNCORE_ONLINE = 159, + CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 160, + CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 161, + CPUHP_AP_PERF_S390_CF_ONLINE = 162, + CPUHP_AP_PERF_S390_SF_ONLINE = 163, + CPUHP_AP_PERF_ARM_CCI_ONLINE = 164, + CPUHP_AP_PERF_ARM_CCN_ONLINE = 165, + CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 166, + CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 167, + CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 168, + CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 169, + CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 170, + CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 171, + CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 172, + CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 173, + CPUHP_AP_PERF_ARM_L2X0_ONLINE = 174, + CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 175, + CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 176, + CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 177, + CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 178, + CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 179, + CPUHP_AP_PERF_ARM_MRVL_PEM_ONLINE = 180, + CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 181, + CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 182, + CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 183, + CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 184, + CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 185, + CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 186, + CPUHP_AP_PERF_CSKY_ONLINE = 187, + CPUHP_AP_TMIGR_ONLINE = 188, + CPUHP_AP_WATCHDOG_ONLINE = 189, + CPUHP_AP_WORKQUEUE_ONLINE = 190, + CPUHP_AP_RANDOM_ONLINE = 191, + CPUHP_AP_RCUTREE_ONLINE = 192, + CPUHP_AP_KTHREADS_ONLINE = 193, + CPUHP_AP_BASE_CACHEINFO_ONLINE = 194, + CPUHP_AP_ONLINE_DYN = 195, + CPUHP_AP_ONLINE_DYN_END = 235, + CPUHP_AP_X86_HPET_ONLINE = 236, + CPUHP_AP_X86_KVM_CLK_ONLINE = 237, + CPUHP_AP_ACTIVE = 238, + CPUHP_ONLINE = 239, +}; + +enum cpuhp_sync_state { + SYNC_STATE_DEAD = 0, + SYNC_STATE_KICKED = 1, + SYNC_STATE_SHOULD_DIE = 2, + SYNC_STATE_ALIVE = 3, + SYNC_STATE_SHOULD_ONLINE = 4, + SYNC_STATE_ONLINE = 5, +}; + +enum crb_cancel { + CRB_CANCEL_INVOKE = 1, +}; + +enum crb_ctrl_req { + CRB_CTRL_REQ_CMD_READY = 1, + CRB_CTRL_REQ_GO_IDLE = 2, +}; + +enum crb_ctrl_sts { + CRB_CTRL_STS_ERROR = 1, + CRB_CTRL_STS_TPM_IDLE = 2, +}; + +enum crb_defaults { + CRB_ACPI_START_REVISION_ID = 1, + CRB_ACPI_START_INDEX = 1, +}; + +enum crb_loc_ctrl { + CRB_LOC_CTRL_REQUEST_ACCESS = 1, + CRB_LOC_CTRL_RELINQUISH = 2, +}; + +enum crb_loc_state { + CRB_LOC_STATE_LOC_ASSIGNED = 2, + CRB_LOC_STATE_TPM_REG_VALID_STS = 128, +}; + +enum crb_start { + CRB_START_INVOKE = 1, +}; + +enum crb_status { + CRB_DRV_STS_COMPLETE = 1, +}; + +enum criteria { + CR_POWER2_ALIGNED = 0, + CR_GOAL_LEN_FAST = 1, + CR_BEST_AVAIL_LEN = 2, + CR_GOAL_LEN_SLOW = 3, + CR_ANY_FREE = 4, + EXT4_MB_NUM_CRS = 5, +}; + +enum 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_REPORT_SIG = 22, + __CRYPTOCFGA_MAX = 23, +}; + +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, +}; + +enum ctrl_offsets { + BASE_OFFSET = 0, + SLOT_AVAIL1 = 4, + SLOT_AVAIL2 = 8, + SLOT_CONFIG = 12, + SEC_BUS_CONFIG = 16, + MSI_CTRL = 18, + PROG_INTERFACE = 19, + CMD = 20, + CMD_STATUS = 22, + INTR_LOC = 24, + SERR_LOC = 28, + SERR_INTR_ENABLE = 32, + SLOT1 = 36, +}; + +enum ctx_state { + CT_STATE_DISABLED = -1, + CT_STATE_KERNEL = 0, + CT_STATE_IDLE = 1, + CT_STATE_USER = 2, + CT_STATE_GUEST = 3, + CT_STATE_MAX = 4, +}; + +enum cxl_event_type { + CXL_CPER_EVENT_GENERIC = 0, + CXL_CPER_EVENT_GEN_MEDIA = 1, + CXL_CPER_EVENT_DRAM = 2, + CXL_CPER_EVENT_MEM_MODULE = 3, +}; + +enum d_real_type { + D_REAL_DATA = 0, + D_REAL_METADATA = 1, +}; + +enum d_walk_ret { + D_WALK_CONTINUE = 0, + D_WALK_QUIT = 1, + D_WALK_NORETRY = 2, + D_WALK_SKIP = 3, +}; + +enum da9052_chip_id { + DA9052 = 0, + DA9053_AA = 1, + DA9053_BA = 2, + DA9053_BB = 3, + DA9053_BC = 4, +}; + +enum da9063_irqs { + DA9063_IRQ_ONKEY = 0, + DA9063_IRQ_ALARM = 1, + DA9063_IRQ_TICK = 2, + DA9063_IRQ_ADC_RDY = 3, + DA9063_IRQ_SEQ_RDY = 4, + DA9063_IRQ_WAKE = 5, + DA9063_IRQ_TEMP = 6, + DA9063_IRQ_COMP_1V2 = 7, + DA9063_IRQ_LDO_LIM = 8, + DA9063_IRQ_REG_UVOV = 9, + DA9063_IRQ_DVC_RDY = 10, + DA9063_IRQ_VDD_MON = 11, + DA9063_IRQ_WARN = 12, + DA9063_IRQ_GPI0 = 13, + DA9063_IRQ_GPI1 = 14, + DA9063_IRQ_GPI2 = 15, + DA9063_IRQ_GPI3 = 16, + DA9063_IRQ_GPI4 = 17, + DA9063_IRQ_GPI5 = 18, + DA9063_IRQ_GPI6 = 19, + DA9063_IRQ_GPI7 = 20, + DA9063_IRQ_GPI8 = 21, + DA9063_IRQ_GPI9 = 22, + DA9063_IRQ_GPI10 = 23, + DA9063_IRQ_GPI11 = 24, + DA9063_IRQ_GPI12 = 25, + DA9063_IRQ_GPI13 = 26, + DA9063_IRQ_GPI14 = 27, + DA9063_IRQ_GPI15 = 28, +}; + +enum da9063_page_sel_buf_fmt { + DA9063_PAGE_SEL_BUF_PAGE_REG = 0, + DA9063_PAGE_SEL_BUF_PAGE_VAL = 1, + DA9063_PAGE_SEL_BUF_SIZE = 2, +}; + +enum da9063_paged_read_msgs { + DA9063_PAGED_READ_MSG_PAGE_SEL = 0, + DA9063_PAGED_READ_MSG_REG_SEL = 1, + DA9063_PAGED_READ_MSG_DATA = 2, + DA9063_PAGED_READ_MSG_CNT = 3, +}; + +enum da9063_type { + PMIC_TYPE_DA9063 = 0, + PMIC_TYPE_DA9063L = 1, +}; + +enum da9063_variant_codes { + PMIC_DA9063_AD = 3, + PMIC_DA9063_BB = 5, + PMIC_DA9063_CA = 6, + PMIC_DA9063_DA = 7, + PMIC_DA9063_EA = 8, +}; + +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 data_source { + CM_BATTERY_PRESENT = 0, + CM_NO_BATTERY = 1, + CM_FUEL_GAUGE = 2, + CM_CHARGER_STAT = 3, +}; + +enum dax_access_mode { + DAX_ACCESS = 0, + DAX_RECOVERY_WRITE = 1, +}; + +enum dax_device_flags { + DAXDEV_ALIVE = 0, + DAXDEV_WRITE_CACHE = 1, + DAXDEV_SYNC = 2, + DAXDEV_NOCACHE = 3, + DAXDEV_NOMC = 4, +}; + +enum dax_driver_type { + DAXDRV_KMEM_TYPE = 0, + DAXDRV_DEVICE_TYPE = 1, +}; + +enum dax_wake_mode { + WAKE_ALL = 0, + WAKE_NEXT = 1, +}; + +enum dbc_state { + DS_DISABLED = 0, + DS_INITIALIZED = 1, + DS_ENABLED = 2, + DS_CONNECTED = 3, + DS_CONFIGURED = 4, + DS_MAX = 5, +}; + +enum dbg_active_el { + DBG_ACTIVE_EL0 = 0, + DBG_ACTIVE_EL1 = 1, +}; + +enum dbgfs_get_mode { + DBGFS_GET_ALREADY = 0, + DBGFS_GET_REGULAR = 1, + DBGFS_GET_SHORT = 2, +}; + +enum dcb_general_attr_values { + DCB_ATTR_VALUE_UNDEFINED = 255, +}; + +enum dcbevent_notif_type { + DCB_APP_EVENT = 1, +}; + +enum dcbnl_app_attrs { + DCB_APP_ATTR_UNDEFINED = 0, + DCB_APP_ATTR_IDTYPE = 1, + DCB_APP_ATTR_ID = 2, + DCB_APP_ATTR_PRIORITY = 3, + __DCB_APP_ATTR_ENUM_MAX = 4, + DCB_APP_ATTR_MAX = 3, +}; + +enum dcbnl_attrs { + DCB_ATTR_UNDEFINED = 0, + DCB_ATTR_IFNAME = 1, + DCB_ATTR_STATE = 2, + DCB_ATTR_PFC_STATE = 3, + DCB_ATTR_PFC_CFG = 4, + DCB_ATTR_NUM_TC = 5, + DCB_ATTR_PG_CFG = 6, + DCB_ATTR_SET_ALL = 7, + DCB_ATTR_PERM_HWADDR = 8, + DCB_ATTR_CAP = 9, + DCB_ATTR_NUMTCS = 10, + DCB_ATTR_BCN = 11, + DCB_ATTR_APP = 12, + DCB_ATTR_IEEE = 13, + DCB_ATTR_DCBX = 14, + DCB_ATTR_FEATCFG = 15, + DCB_ATTR_CEE = 16, + __DCB_ATTR_ENUM_MAX = 17, + DCB_ATTR_MAX = 16, +}; + +enum dcbnl_bcn_attrs { + DCB_BCN_ATTR_UNDEFINED = 0, + DCB_BCN_ATTR_RP_0 = 1, + DCB_BCN_ATTR_RP_1 = 2, + DCB_BCN_ATTR_RP_2 = 3, + DCB_BCN_ATTR_RP_3 = 4, + DCB_BCN_ATTR_RP_4 = 5, + DCB_BCN_ATTR_RP_5 = 6, + DCB_BCN_ATTR_RP_6 = 7, + DCB_BCN_ATTR_RP_7 = 8, + DCB_BCN_ATTR_RP_ALL = 9, + DCB_BCN_ATTR_BCNA_0 = 10, + DCB_BCN_ATTR_BCNA_1 = 11, + DCB_BCN_ATTR_ALPHA = 12, + DCB_BCN_ATTR_BETA = 13, + DCB_BCN_ATTR_GD = 14, + DCB_BCN_ATTR_GI = 15, + DCB_BCN_ATTR_TMAX = 16, + DCB_BCN_ATTR_TD = 17, + DCB_BCN_ATTR_RMIN = 18, + DCB_BCN_ATTR_W = 19, + DCB_BCN_ATTR_RD = 20, + DCB_BCN_ATTR_RU = 21, + DCB_BCN_ATTR_WRTT = 22, + DCB_BCN_ATTR_RI = 23, + DCB_BCN_ATTR_C = 24, + DCB_BCN_ATTR_ALL = 25, + __DCB_BCN_ATTR_ENUM_MAX = 26, + DCB_BCN_ATTR_MAX = 25, +}; + +enum dcbnl_cap_attrs { + DCB_CAP_ATTR_UNDEFINED = 0, + DCB_CAP_ATTR_ALL = 1, + DCB_CAP_ATTR_PG = 2, + DCB_CAP_ATTR_PFC = 3, + DCB_CAP_ATTR_UP2TC = 4, + DCB_CAP_ATTR_PG_TCS = 5, + DCB_CAP_ATTR_PFC_TCS = 6, + DCB_CAP_ATTR_GSP = 7, + DCB_CAP_ATTR_BCN = 8, + DCB_CAP_ATTR_DCBX = 9, + __DCB_CAP_ATTR_ENUM_MAX = 10, + DCB_CAP_ATTR_MAX = 9, +}; + +enum dcbnl_commands { + DCB_CMD_UNDEFINED = 0, + DCB_CMD_GSTATE = 1, + DCB_CMD_SSTATE = 2, + DCB_CMD_PGTX_GCFG = 3, + DCB_CMD_PGTX_SCFG = 4, + DCB_CMD_PGRX_GCFG = 5, + DCB_CMD_PGRX_SCFG = 6, + DCB_CMD_PFC_GCFG = 7, + DCB_CMD_PFC_SCFG = 8, + DCB_CMD_SET_ALL = 9, + DCB_CMD_GPERM_HWADDR = 10, + DCB_CMD_GCAP = 11, + DCB_CMD_GNUMTCS = 12, + DCB_CMD_SNUMTCS = 13, + DCB_CMD_PFC_GSTATE = 14, + DCB_CMD_PFC_SSTATE = 15, + DCB_CMD_BCN_GCFG = 16, + DCB_CMD_BCN_SCFG = 17, + DCB_CMD_GAPP = 18, + DCB_CMD_SAPP = 19, + DCB_CMD_IEEE_SET = 20, + DCB_CMD_IEEE_GET = 21, + DCB_CMD_GDCBX = 22, + DCB_CMD_SDCBX = 23, + DCB_CMD_GFEATCFG = 24, + DCB_CMD_SFEATCFG = 25, + DCB_CMD_CEE_GET = 26, + DCB_CMD_IEEE_DEL = 27, + __DCB_CMD_ENUM_MAX = 28, + DCB_CMD_MAX = 27, +}; + +enum dcbnl_featcfg_attrs { + DCB_FEATCFG_ATTR_UNDEFINED = 0, + DCB_FEATCFG_ATTR_ALL = 1, + DCB_FEATCFG_ATTR_PG = 2, + DCB_FEATCFG_ATTR_PFC = 3, + DCB_FEATCFG_ATTR_APP = 4, + __DCB_FEATCFG_ATTR_ENUM_MAX = 5, + DCB_FEATCFG_ATTR_MAX = 4, +}; + +enum dcbnl_numtcs_attrs { + DCB_NUMTCS_ATTR_UNDEFINED = 0, + DCB_NUMTCS_ATTR_ALL = 1, + DCB_NUMTCS_ATTR_PG = 2, + DCB_NUMTCS_ATTR_PFC = 3, + __DCB_NUMTCS_ATTR_ENUM_MAX = 4, + DCB_NUMTCS_ATTR_MAX = 3, +}; + +enum dcbnl_pfc_up_attrs { + DCB_PFC_UP_ATTR_UNDEFINED = 0, + DCB_PFC_UP_ATTR_0 = 1, + DCB_PFC_UP_ATTR_1 = 2, + DCB_PFC_UP_ATTR_2 = 3, + DCB_PFC_UP_ATTR_3 = 4, + DCB_PFC_UP_ATTR_4 = 5, + DCB_PFC_UP_ATTR_5 = 6, + DCB_PFC_UP_ATTR_6 = 7, + DCB_PFC_UP_ATTR_7 = 8, + DCB_PFC_UP_ATTR_ALL = 9, + __DCB_PFC_UP_ATTR_ENUM_MAX = 10, + DCB_PFC_UP_ATTR_MAX = 9, +}; + +enum dcbnl_pg_attrs { + DCB_PG_ATTR_UNDEFINED = 0, + DCB_PG_ATTR_TC_0 = 1, + DCB_PG_ATTR_TC_1 = 2, + DCB_PG_ATTR_TC_2 = 3, + DCB_PG_ATTR_TC_3 = 4, + DCB_PG_ATTR_TC_4 = 5, + DCB_PG_ATTR_TC_5 = 6, + DCB_PG_ATTR_TC_6 = 7, + DCB_PG_ATTR_TC_7 = 8, + DCB_PG_ATTR_TC_MAX = 9, + DCB_PG_ATTR_TC_ALL = 10, + DCB_PG_ATTR_BW_ID_0 = 11, + DCB_PG_ATTR_BW_ID_1 = 12, + DCB_PG_ATTR_BW_ID_2 = 13, + DCB_PG_ATTR_BW_ID_3 = 14, + DCB_PG_ATTR_BW_ID_4 = 15, + DCB_PG_ATTR_BW_ID_5 = 16, + DCB_PG_ATTR_BW_ID_6 = 17, + DCB_PG_ATTR_BW_ID_7 = 18, + DCB_PG_ATTR_BW_ID_MAX = 19, + DCB_PG_ATTR_BW_ID_ALL = 20, + __DCB_PG_ATTR_ENUM_MAX = 21, + DCB_PG_ATTR_MAX = 20, +}; + +enum dcbnl_tc_attrs { + DCB_TC_ATTR_PARAM_UNDEFINED = 0, + DCB_TC_ATTR_PARAM_PGID = 1, + DCB_TC_ATTR_PARAM_UP_MAPPING = 2, + DCB_TC_ATTR_PARAM_STRICT_PRIO = 3, + DCB_TC_ATTR_PARAM_BW_PCT = 4, + DCB_TC_ATTR_PARAM_ALL = 5, + __DCB_TC_ATTR_PARAM_ENUM_MAX = 6, + DCB_TC_ATTR_PARAM_MAX = 5, +}; + +enum dccp_state { + DCCP_OPEN = 1, + DCCP_REQUESTING = 2, + DCCP_LISTEN = 10, + DCCP_RESPOND = 3, + DCCP_ACTIVE_CLOSEREQ = 4, + DCCP_PASSIVE_CLOSE = 8, + DCCP_CLOSING = 11, + DCCP_TIME_WAIT = 6, + DCCP_CLOSED = 7, + DCCP_NEW_SYN_RECV = 12, + DCCP_PARTOPEN = 14, + DCCP_PASSIVE_CLOSEREQ = 15, + DCCP_MAX_STATES = 16, +}; + +enum dd_data_dir { + DD_READ = 0, + DD_WRITE = 1, +}; + +enum dd_prio { + DD_RT_PRIO = 0, + DD_BE_PRIO = 1, + DD_IDLE_PRIO = 2, + DD_PRIO_MAX = 2, +}; + +enum debug_counters { + SENT_OK = 0, + SENT_FAIL = 1, + SENT_FAIL_POLLING_UNSUPPORTED = 2, + SENT_FAIL_CHANNEL_NOT_FOUND = 3, + RESPONSE_OK = 4, + NOTIFICATION_OK = 5, + DELAYED_RESPONSE_OK = 6, + XFERS_RESPONSE_TIMEOUT = 7, + XFERS_RESPONSE_POLLED_TIMEOUT = 8, + RESPONSE_POLLED_OK = 9, + ERR_MSG_UNEXPECTED = 10, + ERR_MSG_INVALID = 11, + ERR_MSG_NOMEM = 12, + ERR_PROTOCOL = 13, + SCMI_DEBUG_COUNTERS_LAST = 14, +}; + +enum dentry_d_lock_class { + DENTRY_D_LOCK_NORMAL = 0, + DENTRY_D_LOCK_NESTED = 1, +}; + +enum depot_counter_id { + DEPOT_COUNTER_REFD_ALLOCS = 0, + DEPOT_COUNTER_REFD_FREES = 1, + DEPOT_COUNTER_REFD_INUSE = 2, + DEPOT_COUNTER_FREELIST_SIZE = 3, + DEPOT_COUNTER_PERSIST_COUNT = 4, + DEPOT_COUNTER_PERSIST_BYTES = 5, + DEPOT_COUNTER_COUNT = 6, +}; + +enum derived_key_type { + ENC_KEY = 0, + AUTH_KEY = 1, +}; + +enum desc_state { + desc_miss = -1, + desc_reserved = 0, + desc_committed = 1, + desc_finalized = 2, + desc_reusable = 3, +}; + +enum dev_dma_attr { + DEV_DMA_NOT_SUPPORTED = 0, + DEV_DMA_NON_COHERENT = 1, + DEV_DMA_COHERENT = 2, +}; + +enum dev_pm_opp_event { + OPP_EVENT_ADD = 0, + OPP_EVENT_REMOVE = 1, + OPP_EVENT_ENABLE = 2, + OPP_EVENT_DISABLE = 3, + OPP_EVENT_ADJUST_VOLTAGE = 4, +}; + +enum dev_pm_qos_req_type { + DEV_PM_QOS_RESUME_LATENCY = 1, + DEV_PM_QOS_LATENCY_TOLERANCE = 2, + DEV_PM_QOS_MIN_FREQUENCY = 3, + DEV_PM_QOS_MAX_FREQUENCY = 4, + DEV_PM_QOS_FLAGS = 5, +}; + +enum 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 dev_type { + DEV_UNKNOWN = 0, + DEV_X1 = 1, + DEV_X2 = 2, + DEV_X4 = 3, + DEV_X8 = 4, + DEV_X16 = 5, + DEV_X32 = 6, + DEV_X64 = 7, +}; + +enum devcg_behavior { + DEVCG_DEFAULT_NONE = 0, + DEVCG_DEFAULT_ALLOW = 1, + DEVCG_DEFAULT_DENY = 2, +}; + +enum devfreq_parent_dev_type { + DEVFREQ_PARENT_DEV = 0, + CPUFREQ_PARENT_DEV = 1, +}; + +enum devfreq_timer { + DEVFREQ_TIMER_DEFERRABLE = 0, + DEVFREQ_TIMER_DELAYED = 1, + DEVFREQ_TIMER_NUM = 2, +}; + +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 device_physical_location_horizontal_position { + DEVICE_HORI_POS_LEFT = 0, + DEVICE_HORI_POS_CENTER = 1, + DEVICE_HORI_POS_RIGHT = 2, +}; + +enum device_physical_location_panel { + DEVICE_PANEL_TOP = 0, + DEVICE_PANEL_BOTTOM = 1, + DEVICE_PANEL_LEFT = 2, + DEVICE_PANEL_RIGHT = 3, + DEVICE_PANEL_FRONT = 4, + DEVICE_PANEL_BACK = 5, + DEVICE_PANEL_UNKNOWN = 6, +}; + +enum device_physical_location_vertical_position { + DEVICE_VERT_POS_UPPER = 0, + DEVICE_VERT_POS_CENTER = 1, + DEVICE_VERT_POS_LOWER = 2, +}; + +enum device_removable { + DEVICE_REMOVABLE_NOT_SUPPORTED = 0, + DEVICE_REMOVABLE_UNKNOWN = 1, + DEVICE_FIXED = 2, + DEVICE_REMOVABLE = 3, +}; + +enum devkmsg_log_bits { + __DEVKMSG_LOG_BIT_ON = 0, + __DEVKMSG_LOG_BIT_OFF = 1, + __DEVKMSG_LOG_BIT_LOCK = 2, +}; + +enum devkmsg_log_masks { + DEVKMSG_LOG_MASK_ON = 1, + DEVKMSG_LOG_MASK_OFF = 2, + DEVKMSG_LOG_MASK_LOCK = 4, +}; + +enum devlink_attr { + DEVLINK_ATTR_UNSPEC = 0, + DEVLINK_ATTR_BUS_NAME = 1, + DEVLINK_ATTR_DEV_NAME = 2, + DEVLINK_ATTR_PORT_INDEX = 3, + DEVLINK_ATTR_PORT_TYPE = 4, + DEVLINK_ATTR_PORT_DESIRED_TYPE = 5, + DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 6, + DEVLINK_ATTR_PORT_NETDEV_NAME = 7, + DEVLINK_ATTR_PORT_IBDEV_NAME = 8, + DEVLINK_ATTR_PORT_SPLIT_COUNT = 9, + DEVLINK_ATTR_PORT_SPLIT_GROUP = 10, + DEVLINK_ATTR_SB_INDEX = 11, + DEVLINK_ATTR_SB_SIZE = 12, + DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 13, + DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 14, + DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 15, + DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 16, + DEVLINK_ATTR_SB_POOL_INDEX = 17, + DEVLINK_ATTR_SB_POOL_TYPE = 18, + DEVLINK_ATTR_SB_POOL_SIZE = 19, + DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 20, + DEVLINK_ATTR_SB_THRESHOLD = 21, + DEVLINK_ATTR_SB_TC_INDEX = 22, + DEVLINK_ATTR_SB_OCC_CUR = 23, + DEVLINK_ATTR_SB_OCC_MAX = 24, + DEVLINK_ATTR_ESWITCH_MODE = 25, + DEVLINK_ATTR_ESWITCH_INLINE_MODE = 26, + DEVLINK_ATTR_DPIPE_TABLES = 27, + DEVLINK_ATTR_DPIPE_TABLE = 28, + DEVLINK_ATTR_DPIPE_TABLE_NAME = 29, + DEVLINK_ATTR_DPIPE_TABLE_SIZE = 30, + DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 31, + DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 32, + DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 33, + DEVLINK_ATTR_DPIPE_ENTRIES = 34, + DEVLINK_ATTR_DPIPE_ENTRY = 35, + DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 36, + DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 37, + DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 38, + DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 39, + DEVLINK_ATTR_DPIPE_MATCH = 40, + DEVLINK_ATTR_DPIPE_MATCH_VALUE = 41, + DEVLINK_ATTR_DPIPE_MATCH_TYPE = 42, + DEVLINK_ATTR_DPIPE_ACTION = 43, + DEVLINK_ATTR_DPIPE_ACTION_VALUE = 44, + DEVLINK_ATTR_DPIPE_ACTION_TYPE = 45, + DEVLINK_ATTR_DPIPE_VALUE = 46, + DEVLINK_ATTR_DPIPE_VALUE_MASK = 47, + DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 48, + DEVLINK_ATTR_DPIPE_HEADERS = 49, + DEVLINK_ATTR_DPIPE_HEADER = 50, + DEVLINK_ATTR_DPIPE_HEADER_NAME = 51, + DEVLINK_ATTR_DPIPE_HEADER_ID = 52, + DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 53, + DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 54, + DEVLINK_ATTR_DPIPE_HEADER_INDEX = 55, + DEVLINK_ATTR_DPIPE_FIELD = 56, + DEVLINK_ATTR_DPIPE_FIELD_NAME = 57, + DEVLINK_ATTR_DPIPE_FIELD_ID = 58, + DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 59, + DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 60, + DEVLINK_ATTR_PAD = 61, + DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 62, + DEVLINK_ATTR_RESOURCE_LIST = 63, + DEVLINK_ATTR_RESOURCE = 64, + DEVLINK_ATTR_RESOURCE_NAME = 65, + DEVLINK_ATTR_RESOURCE_ID = 66, + DEVLINK_ATTR_RESOURCE_SIZE = 67, + DEVLINK_ATTR_RESOURCE_SIZE_NEW = 68, + DEVLINK_ATTR_RESOURCE_SIZE_VALID = 69, + DEVLINK_ATTR_RESOURCE_SIZE_MIN = 70, + DEVLINK_ATTR_RESOURCE_SIZE_MAX = 71, + DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 72, + DEVLINK_ATTR_RESOURCE_UNIT = 73, + DEVLINK_ATTR_RESOURCE_OCC = 74, + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 75, + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 76, + DEVLINK_ATTR_PORT_FLAVOUR = 77, + DEVLINK_ATTR_PORT_NUMBER = 78, + DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 79, + DEVLINK_ATTR_PARAM = 80, + DEVLINK_ATTR_PARAM_NAME = 81, + DEVLINK_ATTR_PARAM_GENERIC = 82, + DEVLINK_ATTR_PARAM_TYPE = 83, + DEVLINK_ATTR_PARAM_VALUES_LIST = 84, + DEVLINK_ATTR_PARAM_VALUE = 85, + DEVLINK_ATTR_PARAM_VALUE_DATA = 86, + DEVLINK_ATTR_PARAM_VALUE_CMODE = 87, + DEVLINK_ATTR_REGION_NAME = 88, + DEVLINK_ATTR_REGION_SIZE = 89, + DEVLINK_ATTR_REGION_SNAPSHOTS = 90, + DEVLINK_ATTR_REGION_SNAPSHOT = 91, + DEVLINK_ATTR_REGION_SNAPSHOT_ID = 92, + DEVLINK_ATTR_REGION_CHUNKS = 93, + DEVLINK_ATTR_REGION_CHUNK = 94, + DEVLINK_ATTR_REGION_CHUNK_DATA = 95, + DEVLINK_ATTR_REGION_CHUNK_ADDR = 96, + DEVLINK_ATTR_REGION_CHUNK_LEN = 97, + DEVLINK_ATTR_INFO_DRIVER_NAME = 98, + DEVLINK_ATTR_INFO_SERIAL_NUMBER = 99, + DEVLINK_ATTR_INFO_VERSION_FIXED = 100, + DEVLINK_ATTR_INFO_VERSION_RUNNING = 101, + DEVLINK_ATTR_INFO_VERSION_STORED = 102, + DEVLINK_ATTR_INFO_VERSION_NAME = 103, + DEVLINK_ATTR_INFO_VERSION_VALUE = 104, + DEVLINK_ATTR_SB_POOL_CELL_SIZE = 105, + DEVLINK_ATTR_FMSG = 106, + DEVLINK_ATTR_FMSG_OBJ_NEST_START = 107, + DEVLINK_ATTR_FMSG_PAIR_NEST_START = 108, + DEVLINK_ATTR_FMSG_ARR_NEST_START = 109, + DEVLINK_ATTR_FMSG_NEST_END = 110, + DEVLINK_ATTR_FMSG_OBJ_NAME = 111, + DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 112, + DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 113, + DEVLINK_ATTR_HEALTH_REPORTER = 114, + DEVLINK_ATTR_HEALTH_REPORTER_NAME = 115, + DEVLINK_ATTR_HEALTH_REPORTER_STATE = 116, + DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 117, + DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 118, + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 119, + DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 120, + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 121, + DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 122, + DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 123, + DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 124, + DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 125, + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 126, + DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 127, + DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 128, + DEVLINK_ATTR_STATS = 129, + DEVLINK_ATTR_TRAP_NAME = 130, + DEVLINK_ATTR_TRAP_ACTION = 131, + DEVLINK_ATTR_TRAP_TYPE = 132, + DEVLINK_ATTR_TRAP_GENERIC = 133, + DEVLINK_ATTR_TRAP_METADATA = 134, + DEVLINK_ATTR_TRAP_GROUP_NAME = 135, + DEVLINK_ATTR_RELOAD_FAILED = 136, + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 137, + DEVLINK_ATTR_NETNS_FD = 138, + DEVLINK_ATTR_NETNS_PID = 139, + DEVLINK_ATTR_NETNS_ID = 140, + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 141, + DEVLINK_ATTR_TRAP_POLICER_ID = 142, + DEVLINK_ATTR_TRAP_POLICER_RATE = 143, + DEVLINK_ATTR_TRAP_POLICER_BURST = 144, + DEVLINK_ATTR_PORT_FUNCTION = 145, + DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 146, + DEVLINK_ATTR_PORT_LANES = 147, + DEVLINK_ATTR_PORT_SPLITTABLE = 148, + DEVLINK_ATTR_PORT_EXTERNAL = 149, + DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 150, + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 151, + DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 152, + DEVLINK_ATTR_RELOAD_ACTION = 153, + DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 154, + DEVLINK_ATTR_RELOAD_LIMITS = 155, + DEVLINK_ATTR_DEV_STATS = 156, + DEVLINK_ATTR_RELOAD_STATS = 157, + DEVLINK_ATTR_RELOAD_STATS_ENTRY = 158, + DEVLINK_ATTR_RELOAD_STATS_LIMIT = 159, + DEVLINK_ATTR_RELOAD_STATS_VALUE = 160, + DEVLINK_ATTR_REMOTE_RELOAD_STATS = 161, + DEVLINK_ATTR_RELOAD_ACTION_INFO = 162, + DEVLINK_ATTR_RELOAD_ACTION_STATS = 163, + DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 164, + DEVLINK_ATTR_RATE_TYPE = 165, + DEVLINK_ATTR_RATE_TX_SHARE = 166, + DEVLINK_ATTR_RATE_TX_MAX = 167, + DEVLINK_ATTR_RATE_NODE_NAME = 168, + DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 169, + DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 170, + DEVLINK_ATTR_LINECARD_INDEX = 171, + DEVLINK_ATTR_LINECARD_STATE = 172, + DEVLINK_ATTR_LINECARD_TYPE = 173, + DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 174, + DEVLINK_ATTR_NESTED_DEVLINK = 175, + DEVLINK_ATTR_SELFTESTS = 176, + DEVLINK_ATTR_RATE_TX_PRIORITY = 177, + DEVLINK_ATTR_RATE_TX_WEIGHT = 178, + DEVLINK_ATTR_REGION_DIRECT = 179, + __DEVLINK_ATTR_MAX = 180, + DEVLINK_ATTR_MAX = 179, +}; + +enum 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, +}; + +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_NOTIFY_FILTER_SET = 84, + __DEVLINK_CMD_MAX = 85, + DEVLINK_CMD_MAX = 84, +}; + +enum devlink_dpipe_action_type { + DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0, +}; + +enum devlink_dpipe_field_ethernet_id { + DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0, +}; + +enum devlink_dpipe_field_ipv4_id { + DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0, +}; + +enum devlink_dpipe_field_ipv6_id { + DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0, +}; + +enum devlink_dpipe_field_mapping_type { + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0, + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 1, +}; + +enum devlink_dpipe_header_id { + DEVLINK_DPIPE_HEADER_ETHERNET = 0, + DEVLINK_DPIPE_HEADER_IPV4 = 1, + DEVLINK_DPIPE_HEADER_IPV6 = 2, +}; + +enum devlink_dpipe_match_type { + DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0, +}; + +enum devlink_eswitch_encap_mode { + DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0, + DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1, +}; + +enum devlink_health_reporter_state { + DEVLINK_HEALTH_REPORTER_STATE_HEALTHY = 0, + DEVLINK_HEALTH_REPORTER_STATE_ERROR = 1, +}; + +enum devlink_info_version_type { + DEVLINK_INFO_VERSION_TYPE_NONE = 0, + DEVLINK_INFO_VERSION_TYPE_COMPONENT = 1, +}; + +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, +}; + +enum devlink_multicast_groups { + DEVLINK_MCGRP_CONFIG = 0, +}; + +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, +}; + +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 devlink_param_type { + DEVLINK_PARAM_TYPE_U8 = 0, + DEVLINK_PARAM_TYPE_U16 = 1, + DEVLINK_PARAM_TYPE_U32 = 2, + DEVLINK_PARAM_TYPE_STRING = 3, + DEVLINK_PARAM_TYPE_BOOL = 4, +}; + +enum devlink_port_flavour { + DEVLINK_PORT_FLAVOUR_PHYSICAL = 0, + DEVLINK_PORT_FLAVOUR_CPU = 1, + DEVLINK_PORT_FLAVOUR_DSA = 2, + DEVLINK_PORT_FLAVOUR_PCI_PF = 3, + DEVLINK_PORT_FLAVOUR_PCI_VF = 4, + DEVLINK_PORT_FLAVOUR_VIRTUAL = 5, + DEVLINK_PORT_FLAVOUR_UNUSED = 6, + DEVLINK_PORT_FLAVOUR_PCI_SF = 7, +}; + +enum devlink_port_fn_attr_cap { + DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT = 0, + DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT = 1, + DEVLINK_PORT_FN_ATTR_CAP_IPSEC_CRYPTO_BIT = 2, + DEVLINK_PORT_FN_ATTR_CAP_IPSEC_PACKET_BIT = 3, + __DEVLINK_PORT_FN_ATTR_CAPS_MAX = 4, +}; + +enum devlink_port_fn_opstate { + DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, + DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, +}; + +enum devlink_port_fn_state { + DEVLINK_PORT_FN_STATE_INACTIVE = 0, + DEVLINK_PORT_FN_STATE_ACTIVE = 1, +}; + +enum devlink_port_function_attr { + DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0, + DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 1, + DEVLINK_PORT_FN_ATTR_STATE = 2, + DEVLINK_PORT_FN_ATTR_OPSTATE = 3, + DEVLINK_PORT_FN_ATTR_CAPS = 4, + DEVLINK_PORT_FN_ATTR_DEVLINK = 5, + DEVLINK_PORT_FN_ATTR_MAX_IO_EQS = 6, + __DEVLINK_PORT_FUNCTION_ATTR_MAX = 7, + DEVLINK_PORT_FUNCTION_ATTR_MAX = 6, +}; + +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_rate_type { + DEVLINK_RATE_TYPE_LEAF = 0, + DEVLINK_RATE_TYPE_NODE = 1, +}; + +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_resource_unit { + DEVLINK_RESOURCE_UNIT_ENTRY = 0, +}; + +enum devlink_sb_pool_type { + DEVLINK_SB_POOL_TYPE_INGRESS = 0, + DEVLINK_SB_POOL_TYPE_EGRESS = 1, +}; + +enum devlink_sb_threshold_type { + DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0, + DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 1, +}; + +enum devlink_selftest_status { + DEVLINK_SELFTEST_STATUS_SKIP = 0, + DEVLINK_SELFTEST_STATUS_PASS = 1, + DEVLINK_SELFTEST_STATUS_FAIL = 2, +}; + +enum devlink_trap_action { + DEVLINK_TRAP_ACTION_DROP = 0, + DEVLINK_TRAP_ACTION_TRAP = 1, + DEVLINK_TRAP_ACTION_MIRROR = 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, +}; + +enum devlink_trap_type { + DEVLINK_TRAP_TYPE_DROP = 0, + DEVLINK_TRAP_TYPE_EXCEPTION = 1, + DEVLINK_TRAP_TYPE_CONTROL = 2, +}; + +enum devm_ioremap_type { + DEVM_IOREMAP = 0, + DEVM_IOREMAP_UC = 1, + DEVM_IOREMAP_WC = 2, + DEVM_IOREMAP_NP = 3, +}; + +enum dfa_accept_flags { + ACCEPT_FLAG_OWNER = 1, +}; + +enum dfll_ctrl_mode { + DFLL_UNINITIALIZED = 0, + DFLL_DISABLED = 1, + DFLL_OPEN_LOOP = 2, + DFLL_CLOSED_LOOP = 3, +}; + +enum dfll_tune_range { + DFLL_TUNE_UNINITIALIZED = 0, + DFLL_TUNE_LOW = 1, +}; + +enum die_val { + DIE_UNUSED = 0, + DIE_OOPS = 1, +}; + +enum digest_type { + DIGEST_TYPE_IMA = 0, + DIGEST_TYPE_VERITY = 1, + DIGEST_TYPE__LAST = 2, +}; + +enum dim_cq_period_mode { + DIM_CQ_PERIOD_MODE_START_FROM_EQE = 0, + DIM_CQ_PERIOD_MODE_START_FROM_CQE = 1, + DIM_CQ_PERIOD_NUM_MODES = 2, +}; + +enum dim_state { + DIM_START_MEASURE = 0, + DIM_MEASURE_IN_PROGRESS = 1, + DIM_APPLY_NEW_PROFILE = 2, +}; + +enum dim_stats_state { + DIM_STATS_WORSE = 0, + DIM_STATS_SAME = 1, + DIM_STATS_BETTER = 2, +}; + +enum dim_step_result { + DIM_STEPPED = 0, + DIM_TOO_TIRED = 1, + DIM_ON_EDGE = 2, +}; + +enum dim_tune_state { + DIM_PARKING_ON_TOP = 0, + DIM_PARKING_TIRED = 1, + DIM_GOING_RIGHT = 2, + DIM_GOING_LEFT = 3, +}; + +enum display_flags { + DISPLAY_FLAGS_HSYNC_LOW = 1, + DISPLAY_FLAGS_HSYNC_HIGH = 2, + DISPLAY_FLAGS_VSYNC_LOW = 4, + DISPLAY_FLAGS_VSYNC_HIGH = 8, + DISPLAY_FLAGS_DE_LOW = 16, + DISPLAY_FLAGS_DE_HIGH = 32, + DISPLAY_FLAGS_PIXDATA_POSEDGE = 64, + DISPLAY_FLAGS_PIXDATA_NEGEDGE = 128, + DISPLAY_FLAGS_INTERLACED = 256, + DISPLAY_FLAGS_DOUBLESCAN = 512, + DISPLAY_FLAGS_DOUBLECLK = 1024, + DISPLAY_FLAGS_SYNC_POSEDGE = 2048, + DISPLAY_FLAGS_SYNC_NEGEDGE = 4096, +}; + +enum dl_bw_request { + dl_bw_req_deactivate = 0, + dl_bw_req_alloc = 1, + dl_bw_req_free = 2, +}; + +enum dl_dev_state { + DL_DEV_NO_DRIVER = 0, + DL_DEV_PROBING = 1, + DL_DEV_DRIVER_BOUND = 2, + DL_DEV_UNBINDING = 3, +}; + +enum dl_param { + DL_RUNTIME = 0, + DL_PERIOD = 1, +}; + +enum dm_io_mem_type { + DM_IO_PAGE_LIST = 0, + DM_IO_BIO = 1, + DM_IO_VMA = 2, + DM_IO_KMEM = 3, +}; + +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 dm_uevent_type { + DM_UEVENT_PATH_FAILED = 0, + DM_UEVENT_PATH_REINSTATED = 1, +}; + +enum dma_ctrl_flags { + DMA_PREP_INTERRUPT = 1, + DMA_CTRL_ACK = 2, + DMA_PREP_PQ_DISABLE_P = 4, + DMA_PREP_PQ_DISABLE_Q = 8, + DMA_PREP_CONTINUE = 16, + DMA_PREP_FENCE = 32, + DMA_CTRL_REUSE = 64, + DMA_PREP_CMD = 128, + DMA_PREP_REPEAT = 256, + DMA_PREP_LOAD_EOT = 512, +}; + +enum dma_data_direction { + DMA_BIDIRECTIONAL = 0, + DMA_TO_DEVICE = 1, + DMA_FROM_DEVICE = 2, + DMA_NONE = 3, +}; + +enum dma_desc_metadata_mode { + DESC_METADATA_NONE = 0, + DESC_METADATA_CLIENT = 1, + DESC_METADATA_ENGINE = 2, +}; + +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 dma_residue_granularity { + DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, + DMA_RESIDUE_GRANULARITY_SEGMENT = 1, + DMA_RESIDUE_GRANULARITY_BURST = 2, +}; + +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 dma_rx_status { + DMA_RX_START = 0, + DMA_RX_RUNNING = 1, + DMA_RX_SHUTDOWN = 2, +}; + +enum dma_slave_buswidth { + DMA_SLAVE_BUSWIDTH_UNDEFINED = 0, + DMA_SLAVE_BUSWIDTH_1_BYTE = 1, + DMA_SLAVE_BUSWIDTH_2_BYTES = 2, + DMA_SLAVE_BUSWIDTH_3_BYTES = 3, + DMA_SLAVE_BUSWIDTH_4_BYTES = 4, + DMA_SLAVE_BUSWIDTH_8_BYTES = 8, + DMA_SLAVE_BUSWIDTH_16_BYTES = 16, + DMA_SLAVE_BUSWIDTH_32_BYTES = 32, + DMA_SLAVE_BUSWIDTH_64_BYTES = 64, + DMA_SLAVE_BUSWIDTH_128_BYTES = 128, +}; + +enum dma_status { + DMA_COMPLETE = 0, + DMA_IN_PROGRESS = 1, + DMA_PAUSED = 2, + DMA_ERROR = 3, + DMA_OUT_OF_ORDER = 4, +}; + +enum 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 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 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 dmaengine_tx_result { + DMA_TRANS_NOERROR = 0, + DMA_TRANS_READ_FAILED = 1, + DMA_TRANS_WRITE_FAILED = 2, + DMA_TRANS_ABORTED = 3, +}; + +enum dmi_device_type { + DMI_DEV_TYPE_ANY = 0, + DMI_DEV_TYPE_OTHER = 1, + DMI_DEV_TYPE_UNKNOWN = 2, + DMI_DEV_TYPE_VIDEO = 3, + DMI_DEV_TYPE_SCSI = 4, + DMI_DEV_TYPE_ETHERNET = 5, + DMI_DEV_TYPE_TOKENRING = 6, + DMI_DEV_TYPE_SOUND = 7, + DMI_DEV_TYPE_PATA = 8, + DMI_DEV_TYPE_SATA = 9, + DMI_DEV_TYPE_SAS = 10, + DMI_DEV_TYPE_IPMI = -1, + DMI_DEV_TYPE_OEM_STRING = -2, + DMI_DEV_TYPE_DEV_ONBOARD = -3, + DMI_DEV_TYPE_DEV_SLOT = -4, +}; + +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 dmi_field { + DMI_NONE = 0, + DMI_BIOS_VENDOR = 1, + DMI_BIOS_VERSION = 2, + DMI_BIOS_DATE = 3, + DMI_BIOS_RELEASE = 4, + DMI_EC_FIRMWARE_RELEASE = 5, + DMI_SYS_VENDOR = 6, + DMI_PRODUCT_NAME = 7, + DMI_PRODUCT_VERSION = 8, + DMI_PRODUCT_SERIAL = 9, + DMI_PRODUCT_UUID = 10, + DMI_PRODUCT_SKU = 11, + DMI_PRODUCT_FAMILY = 12, + DMI_BOARD_VENDOR = 13, + DMI_BOARD_NAME = 14, + DMI_BOARD_VERSION = 15, + DMI_BOARD_SERIAL = 16, + DMI_BOARD_ASSET_TAG = 17, + DMI_CHASSIS_VENDOR = 18, + DMI_CHASSIS_TYPE = 19, + DMI_CHASSIS_VERSION = 20, + DMI_CHASSIS_SERIAL = 21, + DMI_CHASSIS_ASSET_TAG = 22, + DMI_STRING_MAX = 23, + DMI_OEM_STRING = 24, +}; + +enum dns_lookup_status { + DNS_LOOKUP_NOT_DONE = 0, + DNS_LOOKUP_GOOD = 1, + DNS_LOOKUP_GOOD_WITH_BAD = 2, + DNS_LOOKUP_BAD = 3, + DNS_LOOKUP_GOT_NOT_FOUND = 4, + DNS_LOOKUP_GOT_LOCAL_FAILURE = 5, + DNS_LOOKUP_GOT_TEMP_FAILURE = 6, + DNS_LOOKUP_GOT_NS_FAILURE = 7, + NR__dns_lookup_status = 8, +}; + +enum dns_payload_content_type { + DNS_PAYLOAD_IS_SERVER_LIST = 0, +}; + +enum dock_callback_type { + DOCK_CALL_HANDLER = 0, + DOCK_CALL_FIXUP = 1, + DOCK_CALL_UEVENT = 2, +}; + +enum dpll_a { + DPLL_A_ID = 1, + DPLL_A_MODULE_NAME = 2, + DPLL_A_PAD = 3, + DPLL_A_CLOCK_ID = 4, + DPLL_A_MODE = 5, + DPLL_A_MODE_SUPPORTED = 6, + DPLL_A_LOCK_STATUS = 7, + DPLL_A_TEMP = 8, + DPLL_A_TYPE = 9, + DPLL_A_LOCK_STATUS_ERROR = 10, + DPLL_A_CLOCK_QUALITY_LEVEL = 11, + __DPLL_A_MAX = 12, + DPLL_A_MAX = 11, +}; + +enum dpll_a_pin { + DPLL_A_PIN_ID = 1, + DPLL_A_PIN_PARENT_ID = 2, + DPLL_A_PIN_MODULE_NAME = 3, + DPLL_A_PIN_PAD = 4, + DPLL_A_PIN_CLOCK_ID = 5, + DPLL_A_PIN_BOARD_LABEL = 6, + DPLL_A_PIN_PANEL_LABEL = 7, + DPLL_A_PIN_PACKAGE_LABEL = 8, + DPLL_A_PIN_TYPE = 9, + DPLL_A_PIN_DIRECTION = 10, + DPLL_A_PIN_FREQUENCY = 11, + DPLL_A_PIN_FREQUENCY_SUPPORTED = 12, + DPLL_A_PIN_FREQUENCY_MIN = 13, + DPLL_A_PIN_FREQUENCY_MAX = 14, + DPLL_A_PIN_PRIO = 15, + DPLL_A_PIN_STATE = 16, + DPLL_A_PIN_CAPABILITIES = 17, + DPLL_A_PIN_PARENT_DEVICE = 18, + DPLL_A_PIN_PARENT_PIN = 19, + DPLL_A_PIN_PHASE_ADJUST_MIN = 20, + DPLL_A_PIN_PHASE_ADJUST_MAX = 21, + DPLL_A_PIN_PHASE_ADJUST = 22, + DPLL_A_PIN_PHASE_OFFSET = 23, + DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET = 24, + DPLL_A_PIN_ESYNC_FREQUENCY = 25, + DPLL_A_PIN_ESYNC_FREQUENCY_SUPPORTED = 26, + DPLL_A_PIN_ESYNC_PULSE = 27, + __DPLL_A_PIN_MAX = 28, + DPLL_A_PIN_MAX = 27, +}; + +enum dpll_clock_quality_level { + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_PRC = 1, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_SSU_A = 2, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_SSU_B = 3, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EEC1 = 4, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_PRTC = 5, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EPRTC = 6, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EEEC = 7, + DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EPRC = 8, + __DPLL_CLOCK_QUALITY_LEVEL_MAX = 9, + DPLL_CLOCK_QUALITY_LEVEL_MAX = 8, +}; + +enum dpll_cmd { + DPLL_CMD_DEVICE_ID_GET = 1, + DPLL_CMD_DEVICE_GET = 2, + DPLL_CMD_DEVICE_SET = 3, + DPLL_CMD_DEVICE_CREATE_NTF = 4, + DPLL_CMD_DEVICE_DELETE_NTF = 5, + DPLL_CMD_DEVICE_CHANGE_NTF = 6, + DPLL_CMD_PIN_ID_GET = 7, + DPLL_CMD_PIN_GET = 8, + DPLL_CMD_PIN_SET = 9, + DPLL_CMD_PIN_CREATE_NTF = 10, + DPLL_CMD_PIN_DELETE_NTF = 11, + DPLL_CMD_PIN_CHANGE_NTF = 12, + __DPLL_CMD_MAX = 13, + DPLL_CMD_MAX = 12, +}; + +enum dpll_lock_status { + DPLL_LOCK_STATUS_UNLOCKED = 1, + DPLL_LOCK_STATUS_LOCKED = 2, + DPLL_LOCK_STATUS_LOCKED_HO_ACQ = 3, + DPLL_LOCK_STATUS_HOLDOVER = 4, + __DPLL_LOCK_STATUS_MAX = 5, + DPLL_LOCK_STATUS_MAX = 4, +}; + +enum dpll_lock_status_error { + DPLL_LOCK_STATUS_ERROR_NONE = 1, + DPLL_LOCK_STATUS_ERROR_UNDEFINED = 2, + DPLL_LOCK_STATUS_ERROR_MEDIA_DOWN = 3, + DPLL_LOCK_STATUS_ERROR_FRACTIONAL_FREQUENCY_OFFSET_TOO_HIGH = 4, + __DPLL_LOCK_STATUS_ERROR_MAX = 5, + DPLL_LOCK_STATUS_ERROR_MAX = 4, +}; + +enum dpll_mode { + DPLL_MODE_MANUAL = 1, + DPLL_MODE_AUTOMATIC = 2, + __DPLL_MODE_MAX = 3, + DPLL_MODE_MAX = 2, +}; + +enum dpll_pin_capabilities { + DPLL_PIN_CAPABILITIES_DIRECTION_CAN_CHANGE = 1, + DPLL_PIN_CAPABILITIES_PRIORITY_CAN_CHANGE = 2, + DPLL_PIN_CAPABILITIES_STATE_CAN_CHANGE = 4, +}; + +enum dpll_pin_direction { + DPLL_PIN_DIRECTION_INPUT = 1, + DPLL_PIN_DIRECTION_OUTPUT = 2, + __DPLL_PIN_DIRECTION_MAX = 3, + DPLL_PIN_DIRECTION_MAX = 2, +}; + +enum dpll_pin_state { + DPLL_PIN_STATE_CONNECTED = 1, + DPLL_PIN_STATE_DISCONNECTED = 2, + DPLL_PIN_STATE_SELECTABLE = 3, + __DPLL_PIN_STATE_MAX = 4, + DPLL_PIN_STATE_MAX = 3, +}; + +enum dpll_pin_type { + DPLL_PIN_TYPE_MUX = 1, + DPLL_PIN_TYPE_EXT = 2, + DPLL_PIN_TYPE_SYNCE_ETH_PORT = 3, + DPLL_PIN_TYPE_INT_OSCILLATOR = 4, + DPLL_PIN_TYPE_GNSS = 5, + __DPLL_PIN_TYPE_MAX = 6, + DPLL_PIN_TYPE_MAX = 5, +}; + +enum dpll_type { + DPLL_TYPE_PPS = 1, + DPLL_TYPE_EEC = 2, + __DPLL_TYPE_MAX = 3, + DPLL_TYPE_MAX = 2, +}; + +enum dpm_order { + DPM_ORDER_NONE = 0, + DPM_ORDER_DEV_AFTER_PARENT = 1, + DPM_ORDER_PARENT_BEFORE_DEV = 2, + DPM_ORDER_DEV_LAST = 3, +}; + +enum dprc_region_type { + DPRC_REGION_TYPE_MC_PORTAL = 0, + DPRC_REGION_TYPE_QBMAN_PORTAL = 1, + DPRC_REGION_TYPE_QBMAN_MEM_BACKED_PORTAL = 2, +}; + +enum drbg_prefixes { + DRBG_PREFIX0 = 0, + DRBG_PREFIX1 = 1, + DRBG_PREFIX2 = 2, + DRBG_PREFIX3 = 3, +}; + +enum drbg_seed_state { + DRBG_SEED_STATE_UNSEEDED = 0, + DRBG_SEED_STATE_PARTIAL = 1, + DRBG_SEED_STATE_FULL = 2, +}; + +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, + DRM_BRIDGE_OP_HDMI = 16, +}; + +enum drm_bus_flags { + DRM_BUS_FLAG_DE_LOW = 1, + DRM_BUS_FLAG_DE_HIGH = 2, + DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE = 4, + DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE = 8, + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE = 8, + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE = 4, + DRM_BUS_FLAG_DATA_MSB_TO_LSB = 16, + DRM_BUS_FLAG_DATA_LSB_TO_MSB = 32, + DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE = 64, + DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE = 128, + DRM_BUS_FLAG_SYNC_SAMPLE_POSEDGE = 128, + DRM_BUS_FLAG_SYNC_SAMPLE_NEGEDGE = 64, + DRM_BUS_FLAG_SHARP_SIGNALS = 256, +}; + +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_lut_tests { + DRM_COLOR_LUT_EQUAL_CHANNELS = 1, + DRM_COLOR_LUT_NON_DECREASING = 2, +}; + +enum drm_color_range { + DRM_COLOR_YCBCR_LIMITED_RANGE = 0, + DRM_COLOR_YCBCR_FULL_RANGE = 1, + DRM_COLOR_RANGE_MAX = 2, +}; + +enum drm_colorspace { + DRM_MODE_COLORIMETRY_DEFAULT = 0, + DRM_MODE_COLORIMETRY_NO_DATA = 0, + DRM_MODE_COLORIMETRY_SMPTE_170M_YCC = 1, + DRM_MODE_COLORIMETRY_BT709_YCC = 2, + DRM_MODE_COLORIMETRY_XVYCC_601 = 3, + DRM_MODE_COLORIMETRY_XVYCC_709 = 4, + DRM_MODE_COLORIMETRY_SYCC_601 = 5, + DRM_MODE_COLORIMETRY_OPYCC_601 = 6, + DRM_MODE_COLORIMETRY_OPRGB = 7, + DRM_MODE_COLORIMETRY_BT2020_CYCC = 8, + DRM_MODE_COLORIMETRY_BT2020_RGB = 9, + DRM_MODE_COLORIMETRY_BT2020_YCC = 10, + DRM_MODE_COLORIMETRY_DCI_P3_RGB_D65 = 11, + DRM_MODE_COLORIMETRY_DCI_P3_RGB_THEATER = 12, + DRM_MODE_COLORIMETRY_RGB_WIDE_FIXED = 13, + DRM_MODE_COLORIMETRY_RGB_WIDE_FLOAT = 14, + DRM_MODE_COLORIMETRY_BT601_YCC = 15, + DRM_MODE_COLORIMETRY_COUNT = 16, +}; + +enum drm_connector_force { + DRM_FORCE_UNSPECIFIED = 0, + DRM_FORCE_OFF = 1, + DRM_FORCE_ON = 2, + DRM_FORCE_ON_DIGITAL = 3, +}; + +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 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_MONOCHROME = 7, + DRM_MODE_TV_MODE_MAX = 8, +}; + +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_driver_feature { + DRIVER_GEM = 1, + DRIVER_MODESET = 2, + DRIVER_RENDER = 8, + DRIVER_ATOMIC = 16, + DRIVER_SYNCOBJ = 32, + DRIVER_SYNCOBJ_TIMELINE = 64, + DRIVER_COMPUTE_ACCEL = 128, + DRIVER_GEM_GPUVA = 256, + DRIVER_CURSOR_HOTSPOT = 512, + DRIVER_USE_AGP = 33554432, + DRIVER_LEGACY = 67108864, + DRIVER_PCI_DMA = 134217728, + DRIVER_SG = 268435456, + DRIVER_HAVE_DMA = 536870912, + DRIVER_HAVE_IRQ = 1073741824, +}; + +enum drm_gem_object_status { + DRM_GEM_OBJECT_RESIDENT = 1, + DRM_GEM_OBJECT_PURGEABLE = 2, + DRM_GEM_OBJECT_ACTIVE = 4, +}; + +enum drm_gpuva_flags { + DRM_GPUVA_INVALIDATED = 1, + DRM_GPUVA_SPARSE = 2, + DRM_GPUVA_USERBITS = 4, +}; + +enum drm_gpuva_op_type { + DRM_GPUVA_OP_MAP = 0, + DRM_GPUVA_OP_REMAP = 1, + DRM_GPUVA_OP_UNMAP = 2, + DRM_GPUVA_OP_PREFETCH = 3, +}; + +enum drm_gpuvm_flags { + DRM_GPUVM_RESV_PROTECTED = 1, + DRM_GPUVM_USERBITS = 2, +}; + +enum drm_hdmi_broadcast_rgb { + DRM_HDMI_BROADCAST_RGB_AUTO = 0, + DRM_HDMI_BROADCAST_RGB_FULL = 1, + DRM_HDMI_BROADCAST_RGB_LIMITED = 2, +}; + +enum drm_ioctl_flags { + DRM_AUTH = 1, + DRM_MASTER = 2, + DRM_ROOT_ONLY = 4, + DRM_RENDER_ALLOW = 32, +}; + +enum drm_link_status { + DRM_LINK_STATUS_GOOD = 0, + DRM_LINK_STATUS_BAD = 1, +}; + +enum drm_lvds_dual_link_pixels { + DRM_LVDS_DUAL_LINK_EVEN_ODD_PIXELS = 0, + DRM_LVDS_DUAL_LINK_ODD_EVEN_PIXELS = 1, +}; + +enum drm_minor_type { + DRM_MINOR_PRIMARY = 0, + DRM_MINOR_CONTROL = 1, + DRM_MINOR_RENDER = 2, + DRM_MINOR_ACCEL = 32, +}; + +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 drm_mode_analog { + DRM_MODE_ANALOG_NTSC = 0, + DRM_MODE_ANALOG_PAL = 1, +}; + +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 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_of_lvds_pixels { + DRM_OF_LVDS_EVEN = 1, + DRM_OF_LVDS_ODD = 2, +}; + +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_plane_type { + DRM_PLANE_TYPE_OVERLAY = 0, + DRM_PLANE_TYPE_PRIMARY = 1, + DRM_PLANE_TYPE_CURSOR = 2, +}; + +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_scaling_filter { + DRM_SCALING_FILTER_DEFAULT = 0, + DRM_SCALING_FILTER_NEAREST_NEIGHBOR = 1, +}; + +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, +}; + +enum drvtype { + LEGACY = 0, + SYSCON = 1, +}; + +enum dsa_db_type { + DSA_DB_PORT = 0, + DSA_DB_LAG = 1, + DSA_DB_BRIDGE = 2, +}; + +enum dsa_tag_protocol { + DSA_TAG_PROTO_NONE = 0, + DSA_TAG_PROTO_BRCM = 1, + DSA_TAG_PROTO_BRCM_LEGACY = 22, + DSA_TAG_PROTO_BRCM_PREPEND = 2, + DSA_TAG_PROTO_DSA = 3, + DSA_TAG_PROTO_EDSA = 4, + DSA_TAG_PROTO_GSWIP = 5, + DSA_TAG_PROTO_KSZ9477 = 6, + DSA_TAG_PROTO_KSZ9893 = 7, + DSA_TAG_PROTO_LAN9303 = 8, + DSA_TAG_PROTO_MTK = 9, + DSA_TAG_PROTO_QCA = 10, + DSA_TAG_PROTO_TRAILER = 11, + DSA_TAG_PROTO_8021Q = 12, + DSA_TAG_PROTO_SJA1105 = 13, + DSA_TAG_PROTO_KSZ8795 = 14, + DSA_TAG_PROTO_OCELOT = 15, + DSA_TAG_PROTO_AR9331 = 16, + DSA_TAG_PROTO_RTL4_A = 17, + DSA_TAG_PROTO_HELLCREEK = 18, + DSA_TAG_PROTO_XRS700X = 19, + DSA_TAG_PROTO_OCELOT_8021Q = 20, + DSA_TAG_PROTO_SEVILLE = 21, + DSA_TAG_PROTO_SJA1110 = 23, + DSA_TAG_PROTO_RTL8_4 = 24, + DSA_TAG_PROTO_RTL8_4T = 25, + DSA_TAG_PROTO_RZN1_A5PSW = 26, + DSA_TAG_PROTO_LAN937X = 27, + DSA_TAG_PROTO_VSC73XX_8021Q = 28, +}; + +enum dw_edma_chip_flags { + DW_EDMA_CHIP_LOCAL = 1, +}; + +enum dw_edma_map_format { + EDMA_MF_EDMA_LEGACY = 0, + EDMA_MF_EDMA_UNROLL = 1, + EDMA_MF_HDMA_COMPAT = 5, + EDMA_MF_HDMA_NATIVE = 7, +}; + +enum dw_pcie_app_clk { + DW_PCIE_DBI_CLK = 0, + DW_PCIE_MSTR_CLK = 1, + DW_PCIE_SLV_CLK = 2, + DW_PCIE_NUM_APP_CLKS = 3, +}; + +enum dw_pcie_app_rst { + DW_PCIE_DBI_RST = 0, + DW_PCIE_MSTR_RST = 1, + DW_PCIE_SLV_RST = 2, + DW_PCIE_NUM_APP_RSTS = 3, +}; + +enum dw_pcie_core_clk { + DW_PCIE_PIPE_CLK = 0, + DW_PCIE_CORE_CLK = 1, + DW_PCIE_AUX_CLK = 2, + DW_PCIE_REF_CLK = 3, + DW_PCIE_NUM_CORE_CLKS = 4, +}; + +enum dw_pcie_core_rst { + DW_PCIE_NON_STICKY_RST = 0, + DW_PCIE_STICKY_RST = 1, + DW_PCIE_CORE_RST = 2, + DW_PCIE_PIPE_RST = 3, + DW_PCIE_PHY_RST = 4, + DW_PCIE_HOT_RST = 5, + DW_PCIE_PWR_RST = 6, + DW_PCIE_NUM_CORE_RSTS = 7, +}; + +enum dw_pcie_device_mode { + DW_PCIE_UNKNOWN_TYPE = 0, + DW_PCIE_EP_TYPE = 1, + DW_PCIE_LEG_EP_TYPE = 2, + DW_PCIE_RC_TYPE = 3, +}; + +enum dw_pcie_ltssm { + DW_PCIE_LTSSM_DETECT_QUIET = 0, + DW_PCIE_LTSSM_DETECT_ACT = 1, + DW_PCIE_LTSSM_DETECT_WAIT = 6, + DW_PCIE_LTSSM_L0 = 17, + DW_PCIE_LTSSM_L2_IDLE = 21, + DW_PCIE_LTSSM_UNKNOWN = 4294967295, +}; + +enum dwc2_control_phase { + DWC2_CONTROL_SETUP = 0, + DWC2_CONTROL_DATA = 1, + DWC2_CONTROL_STATUS = 2, +}; + +enum dwc2_halt_status { + DWC2_HC_XFER_NO_HALT_STATUS = 0, + DWC2_HC_XFER_COMPLETE = 1, + DWC2_HC_XFER_URB_COMPLETE = 2, + DWC2_HC_XFER_ACK = 3, + DWC2_HC_XFER_NAK = 4, + DWC2_HC_XFER_NYET = 5, + DWC2_HC_XFER_STALL = 6, + DWC2_HC_XFER_XACT_ERR = 7, + DWC2_HC_XFER_FRAME_OVERRUN = 8, + DWC2_HC_XFER_BABBLE_ERR = 9, + DWC2_HC_XFER_DATA_TOGGLE_ERR = 10, + DWC2_HC_XFER_AHB_ERR = 11, + DWC2_HC_XFER_PERIODIC_INCOMPLETE = 12, + DWC2_HC_XFER_URB_DEQUEUE = 13, +}; + +enum dwc2_hsotg_dmamode { + S3C_HSOTG_DMA_NONE = 0, + S3C_HSOTG_DMA_ONLY = 1, + S3C_HSOTG_DMA_DRV = 2, +}; + +enum dwc2_lx_state { + DWC2_L0 = 0, + DWC2_L1 = 1, + DWC2_L2 = 2, + DWC2_L3 = 3, +}; + +enum dwc2_transaction_type { + DWC2_TRANSACTION_NONE = 0, + DWC2_TRANSACTION_PERIODIC = 1, + DWC2_TRANSACTION_NON_PERIODIC = 2, + DWC2_TRANSACTION_ALL = 3, +}; + +enum dynevent_type { + DYNEVENT_TYPE_SYNTH = 1, + DYNEVENT_TYPE_KPROBE = 2, + DYNEVENT_TYPE_NONE = 3, +}; + +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_comms_status { + EC_COMMS_STATUS_PROCESSING = 1, +}; + +enum ec_mkbp_event { + EC_MKBP_EVENT_KEY_MATRIX = 0, + EC_MKBP_EVENT_HOST_EVENT = 1, + EC_MKBP_EVENT_SENSOR_FIFO = 2, + EC_MKBP_EVENT_BUTTON = 3, + EC_MKBP_EVENT_SWITCH = 4, + EC_MKBP_EVENT_FINGERPRINT = 5, + EC_MKBP_EVENT_SYSRQ = 6, + EC_MKBP_EVENT_HOST_EVENT64 = 7, + EC_MKBP_EVENT_CEC_EVENT = 8, + EC_MKBP_EVENT_CEC_MESSAGE = 9, + EC_MKBP_EVENT_PCHG = 12, + EC_MKBP_EVENT_COUNT = 13, +}; + +enum ec_status { + EC_RES_SUCCESS = 0, + EC_RES_INVALID_COMMAND = 1, + EC_RES_ERROR = 2, + EC_RES_INVALID_PARAM = 3, + EC_RES_ACCESS_DENIED = 4, + EC_RES_INVALID_RESPONSE = 5, + EC_RES_INVALID_VERSION = 6, + EC_RES_INVALID_CHECKSUM = 7, + EC_RES_IN_PROGRESS = 8, + EC_RES_UNAVAILABLE = 9, + EC_RES_TIMEOUT = 10, + EC_RES_OVERFLOW = 11, + EC_RES_INVALID_HEADER = 12, + EC_RES_REQUEST_TRUNCATED = 13, + EC_RES_RESPONSE_TOO_BIG = 14, + EC_RES_BUS_ERROR = 15, + EC_RES_BUSY = 16, + EC_RES_INVALID_HEADER_VERSION = 17, + EC_RES_INVALID_HEADER_CRC = 18, + EC_RES_INVALID_DATA_CRC = 19, + EC_RES_DUP_UNAVAILABLE = 20, +}; + +enum ecryptfs_token_types { + ECRYPTFS_PASSWORD = 0, + ECRYPTFS_PRIVATE_KEY = 1, +}; + +enum edac_mc_layer_type { + EDAC_MC_LAYER_BRANCH = 0, + EDAC_MC_LAYER_CHANNEL = 1, + EDAC_MC_LAYER_SLOT = 2, + EDAC_MC_LAYER_CHIP_SELECT = 3, + EDAC_MC_LAYER_ALL_MEM = 4, +}; + +enum edac_type { + EDAC_UNKNOWN = 0, + EDAC_NONE = 1, + EDAC_RESERVED = 2, + EDAC_PARITY = 3, + EDAC_EC = 4, + EDAC_SECDED = 5, + EDAC_S2ECD2ED = 6, + EDAC_S4ECD4ED = 7, + EDAC_S8ECD8ED = 8, + EDAC_S16ECD16ED = 9, +}; + +enum 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, +}; + +enum efi_cmdline_option { + EFI_CMDLINE_NONE = 0, + EFI_CMDLINE_MODE_NUM = 1, + EFI_CMDLINE_RES = 2, + EFI_CMDLINE_AUTO = 3, + EFI_CMDLINE_LIST = 4, +}; + +enum efi_rts_ids { + EFI_NONE = 0, + EFI_GET_TIME = 1, + EFI_SET_TIME = 2, + EFI_GET_WAKEUP_TIME = 3, + EFI_SET_WAKEUP_TIME = 4, + EFI_GET_VARIABLE = 5, + EFI_GET_NEXT_VARIABLE = 6, + EFI_SET_VARIABLE = 7, + EFI_QUERY_VARIABLE_INFO = 8, + EFI_GET_NEXT_HIGH_MONO_COUNT = 9, + EFI_RESET_SYSTEM = 10, + EFI_UPDATE_CAPSULE = 11, + EFI_QUERY_CAPSULE_CAPS = 12, + EFI_ACPI_PRM_HANDLER = 13, +}; + +enum efi_secureboot_mode { + efi_secureboot_mode_unset = 0, + efi_secureboot_mode_unknown = 1, + efi_secureboot_mode_disabled = 2, + efi_secureboot_mode_enabled = 3, +}; + +enum efistub_event_type { + EFISTUB_EVT_INITRD = 0, + EFISTUB_EVT_LOAD_OPTIONS = 1, + EFISTUB_EVT_COUNT = 2, +}; + +enum efuse_access { + EFUSE_READ = 0, + EFUSE_WRITE = 1, +}; + +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, +}; + +enum elv_merge { + ELEVATOR_NO_MERGE = 0, + ELEVATOR_FRONT_MERGE = 1, + ELEVATOR_BACK_MERGE = 2, + ELEVATOR_DISCARD_MERGE = 3, +}; + +enum enable_type { + undefined = -1, + user_disabled = 0, + auto_disabled = 1, + user_enabled = 2, + auto_enabled = 3, +}; + +enum enum_gate_cfg { + GATE_ADC12 = 0, + GATE_ADC3 = 1, + GATE_ADF1 = 2, + GATE_CCI = 3, + GATE_CRC = 4, + GATE_CRYP1 = 5, + GATE_CRYP2 = 6, + GATE_CSI = 7, + GATE_DCMIPP = 8, + GATE_DSI = 9, + GATE_DTS = 10, + GATE_ETH1 = 11, + GATE_ETH1MAC = 12, + GATE_ETH1RX = 13, + GATE_ETH1STP = 14, + GATE_ETH1TX = 15, + GATE_ETH2 = 16, + GATE_ETH2MAC = 17, + GATE_ETH2RX = 18, + GATE_ETH2STP = 19, + GATE_ETH2TX = 20, + GATE_ETHSW = 21, + GATE_ETHSWACMCFG = 22, + GATE_ETHSWACMMSG = 23, + GATE_ETHSWMAC = 24, + GATE_ETHSWREF = 25, + GATE_FDCAN = 26, + GATE_GPU = 27, + GATE_HASH = 28, + GATE_HDP = 29, + GATE_I2C1 = 30, + GATE_I2C2 = 31, + GATE_I2C3 = 32, + GATE_I2C4 = 33, + GATE_I2C5 = 34, + GATE_I2C6 = 35, + GATE_I2C7 = 36, + GATE_I2C8 = 37, + GATE_I3C1 = 38, + GATE_I3C2 = 39, + GATE_I3C3 = 40, + GATE_I3C4 = 41, + GATE_IS2M = 42, + GATE_IWDG1 = 43, + GATE_IWDG2 = 44, + GATE_IWDG3 = 45, + GATE_IWDG4 = 46, + GATE_IWDG5 = 47, + GATE_LPTIM1 = 48, + GATE_LPTIM2 = 49, + GATE_LPTIM3 = 50, + GATE_LPTIM4 = 51, + GATE_LPTIM5 = 52, + GATE_LPUART1 = 53, + GATE_LTDC = 54, + GATE_LVDS = 55, + GATE_MCO1 = 56, + GATE_MCO2 = 57, + GATE_MDF1 = 58, + GATE_OSPIIOM = 59, + GATE_PCIE = 60, + GATE_PKA = 61, + GATE_RNG = 62, + GATE_SAES = 63, + GATE_SAI1 = 64, + GATE_SAI2 = 65, + GATE_SAI3 = 66, + GATE_SAI4 = 67, + GATE_SDMMC1 = 68, + GATE_SDMMC2 = 69, + GATE_SDMMC3 = 70, + GATE_SERC = 71, + GATE_SPDIFRX = 72, + GATE_SPI1 = 73, + GATE_SPI2 = 74, + GATE_SPI3 = 75, + GATE_SPI4 = 76, + GATE_SPI5 = 77, + GATE_SPI6 = 78, + GATE_SPI7 = 79, + GATE_SPI8 = 80, + GATE_TIM1 = 81, + GATE_TIM10 = 82, + GATE_TIM11 = 83, + GATE_TIM12 = 84, + GATE_TIM13 = 85, + GATE_TIM14 = 86, + GATE_TIM15 = 87, + GATE_TIM16 = 88, + GATE_TIM17 = 89, + GATE_TIM2 = 90, + GATE_TIM20 = 91, + GATE_TIM3 = 92, + GATE_TIM4 = 93, + GATE_TIM5 = 94, + GATE_TIM6 = 95, + GATE_TIM7 = 96, + GATE_TIM8 = 97, + GATE_UART4 = 98, + GATE_UART5 = 99, + GATE_UART7 = 100, + GATE_UART8 = 101, + GATE_UART9 = 102, + GATE_USART1 = 103, + GATE_USART2 = 104, + GATE_USART3 = 105, + GATE_USART6 = 106, + GATE_USBH = 107, + GATE_USB2PHY1 = 108, + GATE_USB2PHY2 = 109, + GATE_USB3DR = 110, + GATE_USB3PCIEPHY = 111, + GATE_USBTC = 112, + GATE_VDEC = 113, + GATE_VENC = 114, + GATE_VREF = 115, + GATE_WWDG1 = 116, + GATE_WWDG2 = 117, + GATE_NB = 118, +}; + +enum enum_mux_cfg { + MUX_ADC12 = 0, + MUX_ADC3 = 1, + MUX_DSIBLANE = 2, + MUX_DSIPHY = 3, + MUX_DTS = 4, + MUX_LVDSPHY = 5, + MUX_MCO1 = 6, + MUX_MCO2 = 7, + MUX_USB2PHY1 = 8, + MUX_USB2PHY2 = 9, + MUX_USB3PCIEPHY = 10, + MUX_NB = 11, +}; + +enum environment_cap { + ENVIRON_ANY = 0, + ENVIRON_INDOOR = 1, + ENVIRON_OUTDOOR = 2, +}; + +enum error_detector { + ERROR_DETECTOR_KFENCE = 0, + ERROR_DETECTOR_KASAN = 1, + ERROR_DETECTOR_WARN = 2, +}; + +enum ethnl_sock_type { + ETHTOOL_SOCK_TYPE_MODULE_FW_FLASH = 0, +}; + +enum ethtool_c33_pse_admin_state { + ETHTOOL_C33_PSE_ADMIN_STATE_UNKNOWN = 1, + ETHTOOL_C33_PSE_ADMIN_STATE_DISABLED = 2, + ETHTOOL_C33_PSE_ADMIN_STATE_ENABLED = 3, +}; + +enum ethtool_c33_pse_ext_state { + ETHTOOL_C33_PSE_EXT_STATE_ERROR_CONDITION = 1, + ETHTOOL_C33_PSE_EXT_STATE_MR_MPS_VALID = 2, + ETHTOOL_C33_PSE_EXT_STATE_MR_PSE_ENABLE = 3, + ETHTOOL_C33_PSE_EXT_STATE_OPTION_DETECT_TED = 4, + ETHTOOL_C33_PSE_EXT_STATE_OPTION_VPORT_LIM = 5, + ETHTOOL_C33_PSE_EXT_STATE_OVLD_DETECTED = 6, + ETHTOOL_C33_PSE_EXT_STATE_PD_DLL_POWER_TYPE = 7, + ETHTOOL_C33_PSE_EXT_STATE_POWER_NOT_AVAILABLE = 8, + ETHTOOL_C33_PSE_EXT_STATE_SHORT_DETECTED = 9, +}; + +enum ethtool_c33_pse_ext_substate_error_condition { + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_NON_EXISTING_PORT = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNDEFINED_PORT = 2, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_INTERNAL_HW_FAULT = 3, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_COMM_ERROR_AFTER_FORCE_ON = 4, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNKNOWN_PORT_STATUS = 5, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_TURN_OFF = 6, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_FORCE_SHUTDOWN = 7, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_CONFIG_CHANGE = 8, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_DETECTED_OVER_TEMP = 9, +}; + +enum ethtool_c33_pse_ext_substate_mr_pse_enable { + ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_PSE_ENABLE_DISABLE_PIN_ACTIVE = 1, +}; + +enum ethtool_c33_pse_ext_substate_option_detect_ted { + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_DET_IN_PROCESS = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_CONNECTION_CHECK_ERROR = 2, +}; + +enum ethtool_c33_pse_ext_substate_option_vport_lim { + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_HIGH_VOLTAGE = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_LOW_VOLTAGE = 2, + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_VOLTAGE_INJECTION = 3, +}; + +enum ethtool_c33_pse_ext_substate_ovld_detected { + ETHTOOL_C33_PSE_EXT_SUBSTATE_OVLD_DETECTED_OVERLOAD = 1, +}; + +enum ethtool_c33_pse_ext_substate_power_not_available { + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_BUDGET_EXCEEDED = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PORT_PW_LIMIT_EXCEEDS_CONTROLLER_BUDGET = 2, + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PD_REQUEST_EXCEEDS_PORT_LIMIT = 3, + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_HW_PW_LIMIT = 4, +}; + +enum ethtool_c33_pse_ext_substate_short_detected { + ETHTOOL_C33_PSE_EXT_SUBSTATE_SHORT_DETECTED_SHORT_CONDITION = 1, +}; + +enum ethtool_c33_pse_pw_d_status { + ETHTOOL_C33_PSE_PW_D_STATUS_UNKNOWN = 1, + ETHTOOL_C33_PSE_PW_D_STATUS_DISABLED = 2, + ETHTOOL_C33_PSE_PW_D_STATUS_SEARCHING = 3, + ETHTOOL_C33_PSE_PW_D_STATUS_DELIVERING = 4, + ETHTOOL_C33_PSE_PW_D_STATUS_TEST = 5, + ETHTOOL_C33_PSE_PW_D_STATUS_FAULT = 6, + ETHTOOL_C33_PSE_PW_D_STATUS_OTHERFAULT = 7, +}; + +enum ethtool_cmis_cdb_cmd_id { + ETHTOOL_CMIS_CDB_CMD_QUERY_STATUS = 0, + ETHTOOL_CMIS_CDB_CMD_MODULE_FEATURES = 64, + ETHTOOL_CMIS_CDB_CMD_FW_MANAGMENT_FEATURES = 65, + ETHTOOL_CMIS_CDB_CMD_START_FW_DOWNLOAD = 257, + ETHTOOL_CMIS_CDB_CMD_WRITE_FW_BLOCK_LPL = 259, + ETHTOOL_CMIS_CDB_CMD_WRITE_FW_BLOCK_EPL = 260, + ETHTOOL_CMIS_CDB_CMD_COMPLETE_FW_DOWNLOAD = 263, + ETHTOOL_CMIS_CDB_CMD_RUN_FW_IMAGE = 265, + ETHTOOL_CMIS_CDB_CMD_COMMIT_FW_IMAGE = 266, +}; + +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_flags { + ETH_FLAG_TXVLAN = 128, + ETH_FLAG_RXVLAN = 256, + ETH_FLAG_LRO = 32768, + ETH_FLAG_NTUPLE = 134217728, + ETH_FLAG_RXHASH = 268435456, +}; + +enum ethtool_header_flags { + ETHTOOL_FLAG_COMPACT_BITSETS = 1, + ETHTOOL_FLAG_OMIT_REPLY = 2, + ETHTOOL_FLAG_STATS = 4, +}; + +enum ethtool_link_ext_state { + ETHTOOL_LINK_EXT_STATE_AUTONEG = 0, + ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 1, + ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 2, + ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 3, + ETHTOOL_LINK_EXT_STATE_NO_CABLE = 4, + ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 5, + ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 6, + ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 7, + ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 8, + ETHTOOL_LINK_EXT_STATE_OVERHEAT = 9, + ETHTOOL_LINK_EXT_STATE_MODULE = 10, +}; + +enum 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_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_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_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_module { + ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1, +}; + +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_10baseT1BRR_Full_BIT = 102, + __ETHTOOL_LINK_MODE_MASK_NBITS = 103, +}; + +enum ethtool_mac_stats_src { + ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0, + ETHTOOL_MAC_STATS_SRC_EMAC = 1, + ETHTOOL_MAC_STATS_SRC_PMAC = 2, +}; + +enum ethtool_mm_verify_status { + ETHTOOL_MM_VERIFY_STATUS_UNKNOWN = 0, + ETHTOOL_MM_VERIFY_STATUS_INITIAL = 1, + ETHTOOL_MM_VERIFY_STATUS_VERIFYING = 2, + ETHTOOL_MM_VERIFY_STATUS_SUCCEEDED = 3, + ETHTOOL_MM_VERIFY_STATUS_FAILED = 4, + ETHTOOL_MM_VERIFY_STATUS_DISABLED = 5, +}; + +enum ethtool_module_fw_flash_status { + ETHTOOL_MODULE_FW_FLASH_STATUS_STARTED = 1, + ETHTOOL_MODULE_FW_FLASH_STATUS_IN_PROGRESS = 2, + ETHTOOL_MODULE_FW_FLASH_STATUS_COMPLETED = 3, + ETHTOOL_MODULE_FW_FLASH_STATUS_ERROR = 4, +}; + +enum ethtool_module_power_mode { + ETHTOOL_MODULE_POWER_MODE_LOW = 1, + ETHTOOL_MODULE_POWER_MODE_HIGH = 2, +}; + +enum ethtool_module_power_mode_policy { + ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1, + ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2, +}; + +enum ethtool_multicast_groups { + ETHNL_MCGRP_MONITOR = 0, +}; + +enum ethtool_phys_id_state { + ETHTOOL_ID_INACTIVE = 0, + ETHTOOL_ID_ACTIVE = 1, + ETHTOOL_ID_ON = 2, + ETHTOOL_ID_OFF = 3, +}; + +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_pse_types { + ETHTOOL_PSE_UNKNOWN = 1, + ETHTOOL_PSE_PODL = 2, + ETHTOOL_PSE_C33 = 4, +}; + +enum ethtool_reset_flags { + ETH_RESET_MGMT = 1, + ETH_RESET_IRQ = 2, + ETH_RESET_DMA = 4, + ETH_RESET_FILTER = 8, + ETH_RESET_OFFLOAD = 16, + ETH_RESET_MAC = 32, + ETH_RESET_PHY = 64, + ETH_RESET_RAM = 128, + ETH_RESET_AP = 256, + ETH_RESET_DEDICATED = 65535, + ETH_RESET_ALL = 4294967295, +}; + +enum ethtool_sfeatures_retval_bits { + ETHTOOL_F_UNSUPPORTED__BIT = 0, + ETHTOOL_F_WISH__BIT = 1, + ETHTOOL_F_COMPAT__BIT = 2, +}; + +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_STATS_PHY = 21, + ETH_SS_TS_FLAGS = 22, + ETH_SS_COUNT = 23, +}; + +enum ethtool_supported_ring_param { + ETHTOOL_RING_USE_RX_BUF_LEN = 1, + ETHTOOL_RING_USE_CQE_SIZE = 2, + ETHTOOL_RING_USE_TX_PUSH = 4, + ETHTOOL_RING_USE_RX_PUSH = 8, + ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, + ETHTOOL_RING_USE_TCP_DATA_SPLIT = 32, + ETHTOOL_RING_USE_HDS_THRS = 64, +}; + +enum ethtool_tcp_data_split { + ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, + ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, + ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, +}; + +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 event_command_flags { + EVENT_CMD_FL_POST_TRIGGER = 1, + EVENT_CMD_FL_NEEDS_REC = 2, +}; + +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 event_type_t { + EVENT_FLEXIBLE = 1, + EVENT_PINNED = 2, + EVENT_TIME = 4, + EVENT_FROZEN = 8, + EVENT_CPU = 16, + EVENT_CGROUP = 32, + EVENT_ALL = 3, + EVENT_TIME_FROZEN = 12, +}; + +enum events_wwnr { + switch_in_wwnr = 0, + switch_out_wwnr = 1, + wakeup_wwnr = 2, + event_max_wwnr = 3, +}; + +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, +}; + +enum evtreturn { + EVT_ERR = -1, + EVT_DONE = 0, + EVT_XFER_DONE = 1, + EVT_GSER = 2, + EVT_DISC = 3, +}; + +enum exact_level { + NOT_EXACT = 0, + EXACT = 1, + RANGE_WITHIN = 2, +}; + +enum exception_type { + except_type_sync = 0, + except_type_irq = 128, + except_type_fiq = 256, + except_type_serror = 384, +}; + +enum execmem_range_flags { + EXECMEM_KASAN_SHADOW = 1, + EXECMEM_ROX_CACHE = 2, +}; + +enum execmem_type { + EXECMEM_DEFAULT = 0, + EXECMEM_MODULE_TEXT = 0, + EXECMEM_KPROBES = 1, + EXECMEM_FTRACE = 2, + EXECMEM_BPF = 3, + EXECMEM_MODULE_DATA = 4, + EXECMEM_TYPE_MAX = 5, +}; + +enum ext4_journal_trigger_type { + EXT4_JTR_ORPHAN_FILE = 0, + EXT4_JTR_NONE = 1, +}; + +enum ext4_li_mode { + EXT4_LI_MODE_PREFETCH_BBITMAP = 0, + EXT4_LI_MODE_ITABLE = 1, +}; + +enum fail_dup_mod_reason { + FAIL_DUP_MOD_BECOMING = 0, + FAIL_DUP_MOD_LOAD = 1, +}; + +enum fanotify_event_type { + FANOTIFY_EVENT_TYPE_FID = 0, + FANOTIFY_EVENT_TYPE_FID_NAME = 1, + FANOTIFY_EVENT_TYPE_PATH = 2, + FANOTIFY_EVENT_TYPE_PATH_PERM = 3, + FANOTIFY_EVENT_TYPE_OVERFLOW = 4, + FANOTIFY_EVENT_TYPE_FS_ERROR = 5, + __FANOTIFY_EVENT_TYPE_NUM = 6, +}; + +enum fault_flag { + FAULT_FLAG_WRITE = 1, + FAULT_FLAG_MKWRITE = 2, + FAULT_FLAG_ALLOW_RETRY = 4, + FAULT_FLAG_RETRY_NOWAIT = 8, + FAULT_FLAG_KILLABLE = 16, + FAULT_FLAG_TRIED = 32, + FAULT_FLAG_USER = 64, + FAULT_FLAG_REMOTE = 128, + FAULT_FLAG_INSTRUCTION = 256, + FAULT_FLAG_INTERRUPTIBLE = 512, + FAULT_FLAG_UNSHARE = 1024, + FAULT_FLAG_ORIG_PTE_VALID = 2048, + FAULT_FLAG_VMA_LOCK = 4096, +}; + +enum fbq_type { + regular = 0, + remote = 1, + all = 2, +}; + +enum fec_txbuf_type { + FEC_TXBUF_T_SKB = 0, + FEC_TXBUF_T_XDP_NDO = 1, + FEC_TXBUF_T_XDP_TX = 2, +}; + +enum fetch_op { + FETCH_OP_NOP = 0, + FETCH_OP_REG = 1, + FETCH_OP_STACK = 2, + FETCH_OP_STACKP = 3, + FETCH_OP_RETVAL = 4, + FETCH_OP_IMM = 5, + FETCH_OP_COMM = 6, + FETCH_OP_ARG = 7, + FETCH_OP_FOFFS = 8, + FETCH_OP_DATA = 9, + FETCH_OP_EDATA = 10, + FETCH_OP_DEREF = 11, + FETCH_OP_UDEREF = 12, + FETCH_OP_ST_RAW = 13, + FETCH_OP_ST_MEM = 14, + FETCH_OP_ST_UMEM = 15, + FETCH_OP_ST_STRING = 16, + FETCH_OP_ST_USTRING = 17, + FETCH_OP_ST_SYMSTR = 18, + FETCH_OP_ST_EDATA = 19, + FETCH_OP_MOD_BF = 20, + FETCH_OP_LP_ARRAY = 21, + FETCH_OP_TP_ARG = 22, + FETCH_OP_END = 23, + FETCH_NOP_SYMBOL = 24, +}; + +enum fg_filter_id { + __NO_FGF__ = 0, + HCRX_FGTnXS = 1, + __NR_FG_FILTER_IDS__ = 2, +}; + +enum fgt_group_id { + __NO_FGT_GROUP__ = 0, + HFGxTR_GROUP = 1, + HDFGRTR_GROUP = 2, + HDFGWTR_GROUP = 2, + HFGITR_GROUP = 3, + HAFGRTR_GROUP = 4, + __NR_FGT_GROUP_IDS__ = 5, +}; + +enum fh_pll_id { + FH_ARMCA7PLL = 0, + FH_ARMCA15PLL = 1, + FH_MAINPLL = 2, + FH_MPLL = 3, + FH_MSDCPLL = 4, + FH_MMPLL = 5, + FH_VENCPLL = 6, + FH_TVDPLL = 7, + FH_VCODECPLL = 8, + FH_LVDSPLL = 9, + FH_MSDC2PLL = 10, + FH_NR_FH = 11, +}; + +enum fh_pll_id___2 { + FH_ARMPLL_LL = 0, + FH_ARMPLL_BL = 1, + FH_MEMPLL = 2, + FH_ADSPPLL = 3, + FH_NNAPLL = 4, + FH_CCIPLL = 5, + FH_MFGPLL = 6, + FH_TVDPLL2 = 7, + FH_MPLL___2 = 8, + FH_MMPLL___2 = 9, + FH_MAINPLL___2 = 10, + FH_MSDCPLL___2 = 11, + FH_IMGPLL = 12, + FH_VDECPLL = 13, + FH_TVDPLL1 = 14, + FH_NR_FH___2 = 15, +}; + +enum fh_pll_id___3 { + FH_ARMPLL_LL___2 = 0, + FH_ARMPLL_BL0 = 1, + FH_ARMPLL_BL1 = 2, + FH_ARMPLL_BL2 = 3, + FH_ARMPLL_BL3 = 4, + FH_CCIPLL___2 = 5, + FH_MFGPLL___2 = 6, + FH_MEMPLL___2 = 7, + FH_MPLL___3 = 8, + FH_MMPLL___3 = 9, + FH_MAINPLL___3 = 10, + FH_MSDCPLL___3 = 11, + FH_ADSPPLL___2 = 12, + FH_APUPLL = 13, + FH_TVDPLL___2 = 14, + FH_NR_FH___3 = 15, +}; + +enum fh_pll_id___4 { + FH_ARMPLL_LL___3 = 0, + FH_ARMPLL_BL___2 = 1, + FH_CCIPLL___3 = 2, + FH_MAINPLL___4 = 3, + FH_MMPLL___4 = 4, + FH_TVDPLL___3 = 5, + FH_RESERVE6 = 6, + FH_ADSPPLL___3 = 7, + FH_MFGPLL___3 = 8, + FH_NNAPLL___2 = 9, + FH_NNA2PLL = 10, + FH_MSDCPLL___4 = 11, + FH_RESERVE12 = 12, + FH_NR_FH___4 = 13, +}; + +enum fhctl_variant { + FHCTL_PLLFH_V1 = 0, + FHCTL_PLLFH_V2 = 1, +}; + +enum fib6_walk_state { + FWS_S = 0, + FWS_L = 1, + FWS_R = 2, + FWS_C = 3, + FWS_U = 4, +}; + +enum fib_event_type { + FIB_EVENT_ENTRY_REPLACE = 0, + FIB_EVENT_ENTRY_APPEND = 1, + FIB_EVENT_ENTRY_ADD = 2, + FIB_EVENT_ENTRY_DEL = 3, + FIB_EVENT_RULE_ADD = 4, + FIB_EVENT_RULE_DEL = 5, + FIB_EVENT_NH_ADD = 6, + FIB_EVENT_NH_DEL = 7, + FIB_EVENT_VIF_ADD = 8, + FIB_EVENT_VIF_DEL = 9, +}; + +enum fid_type { + FILEID_ROOT = 0, + FILEID_INO32_GEN = 1, + FILEID_INO32_GEN_PARENT = 2, + FILEID_BTRFS_WITHOUT_PARENT = 77, + FILEID_BTRFS_WITH_PARENT = 78, + FILEID_BTRFS_WITH_PARENT_ROOT = 79, + FILEID_UDF_WITHOUT_PARENT = 81, + FILEID_UDF_WITH_PARENT = 82, + FILEID_NILFS_WITHOUT_PARENT = 97, + FILEID_NILFS_WITH_PARENT = 98, + FILEID_FAT_WITHOUT_PARENT = 113, + FILEID_FAT_WITH_PARENT = 114, + FILEID_INO64_GEN = 129, + FILEID_INO64_GEN_PARENT = 130, + FILEID_LUSTRE = 151, + FILEID_BCACHEFS_WITHOUT_PARENT = 177, + FILEID_BCACHEFS_WITH_PARENT = 178, + FILEID_KERNFS = 254, + FILEID_INVALID = 255, +}; + +enum field_op_id { + FIELD_OP_NONE = 0, + FIELD_OP_PLUS = 1, + FIELD_OP_MINUS = 2, + FIELD_OP_UNARY_MINUS = 3, + FIELD_OP_DIV = 4, + FIELD_OP_MULT = 5, +}; + +enum file_time_flags { + S_ATIME = 1, + S_MTIME = 2, + S_CTIME = 4, + S_VERSION = 8, +}; + +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 filter_pred_fn { + FILTER_PRED_FN_NOP = 0, + FILTER_PRED_FN_64 = 1, + FILTER_PRED_FN_64_CPUMASK = 2, + FILTER_PRED_FN_S64 = 3, + FILTER_PRED_FN_U64 = 4, + FILTER_PRED_FN_32 = 5, + FILTER_PRED_FN_32_CPUMASK = 6, + FILTER_PRED_FN_S32 = 7, + FILTER_PRED_FN_U32 = 8, + FILTER_PRED_FN_16 = 9, + FILTER_PRED_FN_16_CPUMASK = 10, + FILTER_PRED_FN_S16 = 11, + FILTER_PRED_FN_U16 = 12, + FILTER_PRED_FN_8 = 13, + FILTER_PRED_FN_8_CPUMASK = 14, + FILTER_PRED_FN_S8 = 15, + FILTER_PRED_FN_U8 = 16, + FILTER_PRED_FN_COMM = 17, + FILTER_PRED_FN_STRING = 18, + FILTER_PRED_FN_STRLOC = 19, + FILTER_PRED_FN_STRRELLOC = 20, + FILTER_PRED_FN_PCHAR_USER = 21, + FILTER_PRED_FN_PCHAR = 22, + FILTER_PRED_FN_CPU = 23, + FILTER_PRED_FN_CPU_CPUMASK = 24, + FILTER_PRED_FN_CPUMASK = 25, + FILTER_PRED_FN_CPUMASK_CPU = 26, + FILTER_PRED_FN_FUNCTION = 27, + FILTER_PRED_FN_ = 28, + FILTER_PRED_TEST_VISITED = 29, +}; + +enum fiq_hwirq { + AIC_TMR_EL0_PHYS = 0, + AIC_TMR_EL0_VIRT = 1, + AIC_TMR_EL02_PHYS = 2, + AIC_TMR_EL02_VIRT = 3, + AIC_CPU_PMU_Effi = 4, + AIC_CPU_PMU_Perf = 5, + AIC_VGIC_MI = 6, + AIC_NR_FIQ = 7, +}; + +enum fit_type { + NOTHING_FIT = 0, + FL_FIT_TYPE = 1, + LE_FIT_TYPE = 2, + RE_FIT_TYPE = 3, + NE_FIT_TYPE = 4, +}; + +enum fixed_addresses { + FIX_HOLE = 0, + FIX_FDT_END = 1, + FIX_FDT = 514, + FIX_EARLYCON_MEM_BASE = 515, + FIX_TEXT_POKE0 = 516, + FIX_APEI_GHES_IRQ = 517, + FIX_APEI_GHES_SEA = 518, + FIX_APEI_GHES_SDEI_NORMAL = 519, + FIX_APEI_GHES_SDEI_CRITICAL = 520, + FIX_ENTRY_TRAMP_TEXT4 = 521, + FIX_ENTRY_TRAMP_TEXT3 = 522, + FIX_ENTRY_TRAMP_TEXT2 = 523, + FIX_ENTRY_TRAMP_TEXT1 = 524, + __end_of_permanent_fixed_addresses = 525, + FIX_BTMAP_END = 525, + FIX_BTMAP_BEGIN = 972, + FIX_PTE = 973, + FIX_PMD = 974, + FIX_PUD = 975, + FIX_P4D = 976, + FIX_PGD = 977, + __end_of_fixed_addresses = 978, +}; + +enum flag_bits { + Faulty = 0, + In_sync = 1, + Bitmap_sync = 2, + WriteMostly = 3, + AutoDetected = 4, + Blocked = 5, + WriteErrorSeen = 6, + FaultRecorded = 7, + BlockedBadBlocks = 8, + WantReplacement = 9, + Replacement = 10, + Candidate = 11, + Journal = 12, + ClusterRemove = 13, + ExternalBbl = 14, + FailFast = 15, + LastDev = 16, + CollisionCheck = 17, + Nonrot = 18, +}; + +enum 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_hw_stats_bit { + FLOW_ACTION_HW_STATS_IMMEDIATE_BIT = 0, + FLOW_ACTION_HW_STATS_DELAYED_BIT = 1, + FLOW_ACTION_HW_STATS_DISABLED_BIT = 2, + FLOW_ACTION_HW_STATS_NUM_BITS = 3, +}; + +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_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 flow_block_binder_type { + FLOW_BLOCK_BINDER_TYPE_UNSPEC = 0, + FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS = 1, + FLOW_BLOCK_BINDER_TYPE_CLSACT_EGRESS = 2, + FLOW_BLOCK_BINDER_TYPE_RED_EARLY_DROP = 3, + FLOW_BLOCK_BINDER_TYPE_RED_MARK = 4, +}; + +enum flow_block_command { + FLOW_BLOCK_BIND = 0, + FLOW_BLOCK_UNBIND = 1, +}; + +enum flow_cls_command { + FLOW_CLS_REPLACE = 0, + FLOW_CLS_DESTROY = 1, + FLOW_CLS_STATS = 2, + FLOW_CLS_TMPLT_CREATE = 3, + FLOW_CLS_TMPLT_DESTROY = 4, +}; + +enum flow_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 flow_dissector_ctrl_flags { + FLOW_DIS_IS_FRAGMENT = 1, + FLOW_DIS_FIRST_FRAG = 2, + FLOW_DIS_F_TUNNEL_CSUM = 4, + FLOW_DIS_F_TUNNEL_DONT_FRAGMENT = 8, + FLOW_DIS_F_TUNNEL_OAM = 16, + FLOW_DIS_F_TUNNEL_CRIT_OPT = 32, + FLOW_DIS_ENCAPSULATION = 64, +}; + +enum flow_dissector_key_id { + FLOW_DISSECTOR_KEY_CONTROL = 0, + FLOW_DISSECTOR_KEY_BASIC = 1, + FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, + FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, + FLOW_DISSECTOR_KEY_PORTS = 4, + FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, + FLOW_DISSECTOR_KEY_ICMP = 6, + FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, + FLOW_DISSECTOR_KEY_TIPC = 8, + FLOW_DISSECTOR_KEY_ARP = 9, + FLOW_DISSECTOR_KEY_VLAN = 10, + FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, + FLOW_DISSECTOR_KEY_GRE_KEYID = 12, + FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, + FLOW_DISSECTOR_KEY_ENC_KEYID = 14, + FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, + FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, + FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, + FLOW_DISSECTOR_KEY_ENC_PORTS = 18, + FLOW_DISSECTOR_KEY_MPLS = 19, + FLOW_DISSECTOR_KEY_TCP = 20, + FLOW_DISSECTOR_KEY_IP = 21, + FLOW_DISSECTOR_KEY_CVLAN = 22, + FLOW_DISSECTOR_KEY_ENC_IP = 23, + FLOW_DISSECTOR_KEY_ENC_OPTS = 24, + FLOW_DISSECTOR_KEY_META = 25, + FLOW_DISSECTOR_KEY_CT = 26, + FLOW_DISSECTOR_KEY_HASH = 27, + FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, + FLOW_DISSECTOR_KEY_PPPOE = 29, + FLOW_DISSECTOR_KEY_L2TPV3 = 30, + FLOW_DISSECTOR_KEY_CFM = 31, + FLOW_DISSECTOR_KEY_IPSEC = 32, + FLOW_DISSECTOR_KEY_MAX = 33, +}; + +enum flowlabel_reflect { + FLOWLABEL_REFLECT_ESTABLISHED = 1, + FLOWLABEL_REFLECT_TCP_RESET = 2, + FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4, +}; + +enum fman_dma_aid_mode { + FMAN_DMA_AID_OUT_PORT_ID = 0, + FMAN_DMA_AID_OUT_TNUM = 1, +}; + +enum fman_event_modules { + FMAN_MOD_MAC = 0, + FMAN_MOD_FMAN_CTRL = 1, + FMAN_MOD_DUMMY_LAST = 2, +}; + +enum fman_exceptions { + FMAN_EX_DMA_BUS_ERROR = 0, + FMAN_EX_DMA_READ_ECC = 1, + FMAN_EX_DMA_SYSTEM_WRITE_ECC = 2, + FMAN_EX_DMA_FM_WRITE_ECC = 3, + FMAN_EX_DMA_SINGLE_PORT_ECC = 4, + FMAN_EX_FPM_STALL_ON_TASKS = 5, + FMAN_EX_FPM_SINGLE_ECC = 6, + FMAN_EX_FPM_DOUBLE_ECC = 7, + FMAN_EX_QMI_SINGLE_ECC = 8, + FMAN_EX_QMI_DOUBLE_ECC = 9, + FMAN_EX_QMI_DEQ_FROM_UNKNOWN_PORTID = 10, + FMAN_EX_BMI_LIST_RAM_ECC = 11, + FMAN_EX_BMI_STORAGE_PROFILE_ECC = 12, + FMAN_EX_BMI_STATISTICS_RAM_ECC = 13, + FMAN_EX_BMI_DISPATCH_RAM_ECC = 14, + FMAN_EX_IRAM_ECC = 15, + FMAN_EX_MURAM_ECC = 16, +}; + +enum fman_inter_module_event { + FMAN_EV_ERR_MAC0 = 0, + FMAN_EV_ERR_MAC1 = 1, + FMAN_EV_ERR_MAC2 = 2, + FMAN_EV_ERR_MAC3 = 3, + FMAN_EV_ERR_MAC4 = 4, + FMAN_EV_ERR_MAC5 = 5, + FMAN_EV_ERR_MAC6 = 6, + FMAN_EV_ERR_MAC7 = 7, + FMAN_EV_ERR_MAC8 = 8, + FMAN_EV_ERR_MAC9 = 9, + FMAN_EV_MAC0 = 10, + FMAN_EV_MAC1 = 11, + FMAN_EV_MAC2 = 12, + FMAN_EV_MAC3 = 13, + FMAN_EV_MAC4 = 14, + FMAN_EV_MAC5 = 15, + FMAN_EV_MAC6 = 16, + FMAN_EV_MAC7 = 17, + FMAN_EV_MAC8 = 18, + FMAN_EV_MAC9 = 19, + FMAN_EV_FMAN_CTRL_0 = 20, + FMAN_EV_FMAN_CTRL_1 = 21, + FMAN_EV_FMAN_CTRL_2 = 22, + FMAN_EV_FMAN_CTRL_3 = 23, + FMAN_EV_CNT = 24, +}; + +enum fman_intr_type { + FMAN_INTR_TYPE_ERR = 0, + FMAN_INTR_TYPE_NORMAL = 1, +}; + +enum fman_mac_exceptions { + FM_MAC_EX_10G_MDIO_SCAN_EVENT = 0, + FM_MAC_EX_10G_MDIO_CMD_CMPL = 1, + FM_MAC_EX_10G_REM_FAULT = 2, + FM_MAC_EX_10G_LOC_FAULT = 3, + FM_MAC_EX_10G_TX_ECC_ER = 4, + FM_MAC_EX_10G_TX_FIFO_UNFL = 5, + FM_MAC_EX_10G_TX_FIFO_OVFL = 6, + FM_MAC_EX_10G_TX_ER = 7, + FM_MAC_EX_10G_RX_FIFO_OVFL = 8, + FM_MAC_EX_10G_RX_ECC_ER = 9, + FM_MAC_EX_10G_RX_JAB_FRM = 10, + FM_MAC_EX_10G_RX_OVRSZ_FRM = 11, + FM_MAC_EX_10G_RX_RUNT_FRM = 12, + FM_MAC_EX_10G_RX_FRAG_FRM = 13, + FM_MAC_EX_10G_RX_LEN_ER = 14, + FM_MAC_EX_10G_RX_CRC_ER = 15, + FM_MAC_EX_10G_RX_ALIGN_ER = 16, + FM_MAC_EX_1G_BAB_RX = 17, + FM_MAC_EX_1G_RX_CTL = 18, + FM_MAC_EX_1G_GRATEFUL_TX_STP_COMPLET = 19, + FM_MAC_EX_1G_BAB_TX = 20, + FM_MAC_EX_1G_TX_CTL = 21, + FM_MAC_EX_1G_TX_ERR = 22, + FM_MAC_EX_1G_LATE_COL = 23, + FM_MAC_EX_1G_COL_RET_LMT = 24, + FM_MAC_EX_1G_TX_FIFO_UNDRN = 25, + FM_MAC_EX_1G_MAG_PCKT = 26, + FM_MAC_EX_1G_MII_MNG_RD_COMPLET = 27, + FM_MAC_EX_1G_MII_MNG_WR_COMPLET = 28, + FM_MAC_EX_1G_GRATEFUL_RX_STP_COMPLET = 29, + FM_MAC_EX_1G_DATA_ERR = 30, + FM_MAC_1G_RX_DATA_ERR = 31, + FM_MAC_EX_1G_1588_TS_RX_ERR = 32, + FM_MAC_EX_1G_RX_MIB_CNT_OVFL = 33, + FM_MAC_EX_TS_FIFO_ECC_ERR = 34, + FM_MAC_EX_MAGIC_PACKET_INDICATION = 26, +}; + +enum fman_port_color { + FMAN_PORT_COLOR_GREEN = 0, + FMAN_PORT_COLOR_YELLOW = 1, + FMAN_PORT_COLOR_RED = 2, + FMAN_PORT_COLOR_OVERRIDE = 3, +}; + +enum fman_port_deq_prefetch { + FMAN_PORT_DEQ_NO_PREFETCH = 0, + FMAN_PORT_DEQ_PART_PREFETCH = 1, + FMAN_PORT_DEQ_FULL_PREFETCH = 2, +}; + +enum fman_port_deq_type { + FMAN_PORT_DEQ_BY_PRI = 0, + FMAN_PORT_DEQ_ACTIVE_FQ = 1, + FMAN_PORT_DEQ_ACTIVE_FQ_NO_ICS = 2, +}; + +enum fman_port_dma_swap { + FMAN_PORT_DMA_NO_SWAP = 0, + FMAN_PORT_DMA_SWAP_LE = 1, + FMAN_PORT_DMA_SWAP_BE = 2, +}; + +enum fman_port_type { + FMAN_PORT_TYPE_TX = 0, + FMAN_PORT_TYPE_RX = 1, +}; + +enum folio_references { + FOLIOREF_RECLAIM = 0, + FOLIOREF_RECLAIM_CLEAN = 1, + FOLIOREF_KEEP = 2, + FOLIOREF_ACTIVATE = 3, +}; + +enum folio_walk_level { + FW_LEVEL_PTE = 0, + FW_LEVEL_PMD = 1, + FW_LEVEL_PUD = 2, +}; + +enum format_state { + FORMAT_STATE_NONE = 0, + FORMAT_STATE_NUM = 1, + FORMAT_STATE_WIDTH = 2, + FORMAT_STATE_PRECISION = 3, + FORMAT_STATE_CHAR = 4, + FORMAT_STATE_STR = 5, + FORMAT_STATE_PTR = 6, + FORMAT_STATE_PERCENT_CHAR = 7, + FORMAT_STATE_INVALID = 8, +}; + +enum fortify_func { + FORTIFY_FUNC_strncpy = 0, + FORTIFY_FUNC_strnlen = 1, + FORTIFY_FUNC_strlen = 2, + FORTIFY_FUNC_strscpy = 3, + FORTIFY_FUNC_strlcat = 4, + FORTIFY_FUNC_strcat = 5, + FORTIFY_FUNC_strncat = 6, + FORTIFY_FUNC_memset = 7, + FORTIFY_FUNC_memcpy = 8, + FORTIFY_FUNC_memmove = 9, + FORTIFY_FUNC_memscan = 10, + FORTIFY_FUNC_memcmp = 11, + FORTIFY_FUNC_memchr = 12, + FORTIFY_FUNC_memchr_inv = 13, + FORTIFY_FUNC_kmemdup = 14, + FORTIFY_FUNC_strcpy = 15, + FORTIFY_FUNC_UNKNOWN = 16, +}; + +enum fp_type { + FP_STATE_CURRENT = 0, + FP_STATE_FPSIMD = 1, + FP_STATE_SVE = 2, +}; + +enum fpdt_record_type { + RECORD_S3_RESUME = 0, + RECORD_S3_SUSPEND = 1, + RECORD_BOOT = 2, +}; + +enum fpdt_subtable_type { + SUBTABLE_FBPT = 0, + SUBTABLE_S3PT = 1, +}; + +enum framer_clock_type { + FRAMER_CLOCK_EXT = 0, + FRAMER_CLOCK_INT = 1, +}; + +enum framer_event { + FRAMER_EVENT_STATUS = 0, +}; + +enum framer_iface { + FRAMER_IFACE_E1 = 0, + FRAMER_IFACE_T1 = 1, +}; + +enum freeze_holder { + FREEZE_HOLDER_KERNEL = 1, + FREEZE_HOLDER_USERSPACE = 2, + FREEZE_MAY_NEST = 4, +}; + +enum freezer_state_flags { + CGROUP_FREEZER_ONLINE = 1, + CGROUP_FREEZING_SELF = 2, + CGROUP_FREEZING_PARENT = 4, + CGROUP_FROZEN = 8, + CGROUP_FREEZING = 6, +}; + +enum freq_policy { + FLOOR = 0, + CEIL = 1, +}; + +enum freq_qos_req_type { + FREQ_QOS_MIN = 1, + FREQ_QOS_MAX = 2, +}; + +enum fs_context_phase { + FS_CONTEXT_CREATE_PARAMS = 0, + FS_CONTEXT_CREATING = 1, + FS_CONTEXT_AWAITING_MOUNT = 2, + FS_CONTEXT_AWAITING_RECONF = 3, + FS_CONTEXT_RECONF_PARAMS = 4, + FS_CONTEXT_RECONFIGURING = 5, + FS_CONTEXT_FAILED = 6, +}; + +enum fs_context_purpose { + FS_CONTEXT_FOR_MOUNT = 0, + FS_CONTEXT_FOR_SUBMOUNT = 1, + FS_CONTEXT_FOR_RECONFIGURE = 2, +}; + +enum fs_value_type { + fs_value_is_undefined = 0, + fs_value_is_flag = 1, + fs_value_is_string = 2, + fs_value_is_blob = 3, + fs_value_is_filename = 4, + fs_value_is_file = 5, +}; + +enum fsconfig_command { + FSCONFIG_SET_FLAG = 0, + FSCONFIG_SET_STRING = 1, + FSCONFIG_SET_BINARY = 2, + FSCONFIG_SET_PATH = 3, + FSCONFIG_SET_PATH_EMPTY = 4, + FSCONFIG_SET_FD = 5, + FSCONFIG_CMD_CREATE = 6, + FSCONFIG_CMD_RECONFIGURE = 7, + FSCONFIG_CMD_CREATE_EXCL = 8, +}; + +enum fsl_mc_cmd_index { + DPDBG_DUMP = 0, + DPDBG_SET = 1, + DPRC_GET_CONTAINER_ID = 2, + DPRC_CREATE_CONT = 3, + DPRC_DESTROY_CONT = 4, + DPRC_ASSIGN = 5, + DPRC_UNASSIGN = 6, + DPRC_GET_OBJ_COUNT = 7, + DPRC_GET_OBJ = 8, + DPRC_GET_RES_COUNT = 9, + DPRC_GET_RES_IDS = 10, + DPRC_SET_OBJ_LABEL = 11, + DPRC_SET_LOCKED = 12, + DPRC_CONNECT = 13, + DPRC_DISCONNECT = 14, + DPRC_GET_POOL = 15, + DPRC_GET_POOL_COUNT = 16, + DPRC_GET_CONNECTION = 17, + DPCI_GET_LINK_STATE = 18, + DPCI_GET_PEER_ATTR = 19, + DPAIOP_GET_SL_VERSION = 20, + DPAIOP_GET_STATE = 21, + DPMNG_GET_VERSION = 22, + DPSECI_GET_TX_QUEUE = 23, + DPMAC_GET_COUNTER = 24, + DPMAC_GET_MAC_ADDR = 25, + DPNI_SET_PRIM_MAC = 26, + DPNI_GET_PRIM_MAC = 27, + DPNI_GET_STATISTICS = 28, + DPNI_GET_LINK_STATE = 29, + DPNI_GET_MAX_FRAME_LENGTH = 30, + DPSW_GET_TAILDROP = 31, + DPSW_SET_TAILDROP = 32, + DPSW_IF_GET_COUNTER = 33, + DPSW_IF_GET_MAX_FRAME_LENGTH = 34, + DPDMUX_GET_COUNTER = 35, + DPDMUX_IF_GET_MAX_FRAME_LENGTH = 36, + GET_ATTR = 37, + GET_IRQ_MASK = 38, + GET_IRQ_STATUS = 39, + CLOSE = 40, + OPEN = 41, + GET_API_VERSION = 42, + DESTROY = 43, + CREATE = 44, +}; + +enum fsl_mc_pool_type { + FSL_MC_POOL_DPMCP = 0, + FSL_MC_POOL_DPBP = 1, + FSL_MC_POOL_DPCON = 2, + FSL_MC_POOL_IRQ = 3, + FSL_MC_NUM_POOL_TYPES = 4, +}; + +enum fsnotify_data_type { + FSNOTIFY_EVENT_NONE = 0, + FSNOTIFY_EVENT_FILE_RANGE = 1, + FSNOTIFY_EVENT_PATH = 2, + FSNOTIFY_EVENT_INODE = 3, + FSNOTIFY_EVENT_DENTRY = 4, + FSNOTIFY_EVENT_ERROR = 5, +}; + +enum fsnotify_group_prio { + FSNOTIFY_PRIO_NORMAL = 0, + FSNOTIFY_PRIO_CONTENT = 1, + FSNOTIFY_PRIO_PRE_CONTENT = 2, + __FSNOTIFY_PRIO_NUM = 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 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 ftr_type { + FTR_EXACT = 0, + FTR_LOWER_SAFE = 1, + FTR_HIGHER_SAFE = 2, + FTR_HIGHER_OR_ZERO_SAFE = 3, +}; + +enum ftrace_bug_type { + FTRACE_BUG_UNKNOWN = 0, + FTRACE_BUG_INIT = 1, + FTRACE_BUG_NOP = 2, + FTRACE_BUG_CALL = 3, + FTRACE_BUG_UPDATE = 4, +}; + +enum ftrace_dump_mode { + DUMP_NONE = 0, + DUMP_ALL = 1, + DUMP_ORIG = 2, + DUMP_PARAM = 3, +}; + +enum ftrace_ops_cmd { + FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_SELF = 0, + FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_PEER = 1, + FTRACE_OPS_CMD_DISABLE_SHARE_IPMODIFY_PEER = 2, +}; + +enum fullness_group { + ZS_INUSE_RATIO_0 = 0, + ZS_INUSE_RATIO_10 = 1, + ZS_INUSE_RATIO_99 = 10, + ZS_INUSE_RATIO_100 = 11, + NR_FULLNESS_GROUPS = 12, +}; + +enum fuse_dax_mode { + FUSE_DAX_INODE_DEFAULT = 0, + FUSE_DAX_ALWAYS = 1, + FUSE_DAX_NEVER = 2, + FUSE_DAX_INODE_USER = 3, +}; + +enum fuse_ext_type { + FUSE_MAX_NR_SECCTX = 31, + FUSE_EXT_GROUPS = 32, +}; + +enum fuse_notify_code { + FUSE_NOTIFY_POLL = 1, + FUSE_NOTIFY_INVAL_INODE = 2, + FUSE_NOTIFY_INVAL_ENTRY = 3, + FUSE_NOTIFY_STORE = 4, + FUSE_NOTIFY_RETRIEVE = 5, + FUSE_NOTIFY_DELETE = 6, + FUSE_NOTIFY_RESEND = 7, + FUSE_NOTIFY_CODE_MAX = 8, +}; + +enum fuse_opcode { + FUSE_LOOKUP = 1, + FUSE_FORGET = 2, + FUSE_GETATTR = 3, + FUSE_SETATTR = 4, + FUSE_READLINK = 5, + FUSE_SYMLINK = 6, + FUSE_MKNOD = 8, + FUSE_MKDIR = 9, + FUSE_UNLINK = 10, + FUSE_RMDIR = 11, + FUSE_RENAME = 12, + FUSE_LINK = 13, + FUSE_OPEN = 14, + FUSE_READ = 15, + FUSE_WRITE = 16, + FUSE_STATFS = 17, + FUSE_RELEASE = 18, + FUSE_FSYNC = 20, + FUSE_SETXATTR = 21, + FUSE_GETXATTR = 22, + FUSE_LISTXATTR = 23, + FUSE_REMOVEXATTR = 24, + FUSE_FLUSH = 25, + FUSE_INIT = 26, + FUSE_OPENDIR = 27, + FUSE_READDIR = 28, + FUSE_RELEASEDIR = 29, + FUSE_FSYNCDIR = 30, + FUSE_GETLK = 31, + FUSE_SETLK = 32, + FUSE_SETLKW = 33, + FUSE_ACCESS = 34, + FUSE_CREATE = 35, + FUSE_INTERRUPT = 36, + FUSE_BMAP = 37, + FUSE_DESTROY = 38, + FUSE_IOCTL = 39, + FUSE_POLL = 40, + FUSE_NOTIFY_REPLY = 41, + FUSE_BATCH_FORGET = 42, + FUSE_FALLOCATE = 43, + FUSE_READDIRPLUS = 44, + FUSE_RENAME2 = 45, + FUSE_LSEEK = 46, + FUSE_COPY_FILE_RANGE = 47, + FUSE_SETUPMAPPING = 48, + FUSE_REMOVEMAPPING = 49, + FUSE_SYNCFS = 50, + FUSE_TMPFILE = 51, + FUSE_STATX = 52, + CUSE_INIT = 4096, + CUSE_INIT_BSWAP_RESERVED = 1048576, + FUSE_INIT_BSWAP_RESERVED = 436207616, +}; + +enum fuse_parse_result { + FOUND_ERR = -1, + FOUND_NONE = 0, + FOUND_SOME = 1, + FOUND_ALL = 2, +}; + +enum fuse_req_flag { + FR_ISREPLY = 0, + FR_FORCE = 1, + FR_BACKGROUND = 2, + FR_WAITING = 3, + FR_ABORTED = 4, + FR_INTERRUPTED = 5, + FR_LOCKED = 6, + FR_PENDING = 7, + FR_SENT = 8, + FR_FINISHED = 9, + FR_PRIVATE = 10, + FR_ASYNC = 11, + FR_URING = 12, +}; + +enum fuse_ring_req_state { + FRRS_INVALID = 0, + FRRS_COMMIT = 1, + FRRS_AVAILABLE = 2, + FRRS_FUSE_REQ = 3, + FRRS_USERSPACE = 4, + FRRS_TEARDOWN = 5, + FRRS_RELEASED = 6, +}; + +enum fuse_uring_cmd { + FUSE_IO_URING_CMD_INVALID = 0, + FUSE_IO_URING_CMD_REGISTER = 1, + FUSE_IO_URING_CMD_COMMIT_AND_FETCH = 2, +}; + +enum futex_access { + FUTEX_READ = 0, + FUTEX_WRITE = 1, +}; + +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, +}; + +enum fw_resource_type { + RSC_CARVEOUT = 0, + RSC_DEVMEM = 1, + RSC_TRACE = 2, + RSC_VDEV = 3, + RSC_LAST = 4, + RSC_VENDOR_START = 128, + RSC_VENDOR_END = 512, +}; + +enum fw_status { + FW_STATUS_UNKNOWN = 0, + FW_STATUS_LOADING = 1, + FW_STATUS_DONE = 2, + FW_STATUS_ABORTED = 3, +}; + +enum fw_upload_err { + FW_UPLOAD_ERR_NONE = 0, + FW_UPLOAD_ERR_HW_ERROR = 1, + FW_UPLOAD_ERR_TIMEOUT = 2, + FW_UPLOAD_ERR_CANCELED = 3, + FW_UPLOAD_ERR_BUSY = 4, + FW_UPLOAD_ERR_INVALID_SIZE = 5, + FW_UPLOAD_ERR_RW_ERROR = 6, + FW_UPLOAD_ERR_WEAROUT = 7, + FW_UPLOAD_ERR_FW_INVALID = 8, + FW_UPLOAD_ERR_MAX = 9, +}; + +enum fw_upload_prog { + FW_UPLOAD_PROG_IDLE = 0, + FW_UPLOAD_PROG_RECEIVING = 1, + FW_UPLOAD_PROG_PREPARING = 2, + FW_UPLOAD_PROG_TRANSFERRING = 3, + FW_UPLOAD_PROG_PROGRAMMING = 4, + FW_UPLOAD_PROG_MAX = 5, +}; + +enum gdsc_status { + GDSC_OFF = 0, + GDSC_ON = 1, +}; + +enum geni_icc_path_index { + GENI_TO_CORE = 0, + CPU_TO_GENI = 1, + GENI_TO_DDR = 2, +}; + +enum geni_se_protocol_type { + GENI_SE_NONE = 0, + GENI_SE_SPI = 1, + GENI_SE_UART = 2, + GENI_SE_I2C = 3, + GENI_SE_I3C = 4, + GENI_SE_SPI_SLAVE = 5, +}; + +enum geni_se_xfer_mode { + GENI_SE_INVALID = 0, + GENI_SE_FIFO = 1, + GENI_SE_DMA = 2, + GENI_GPI_DMA = 3, +}; + +enum genl_validate_flags { + GENL_DONT_VALIDATE_STRICT = 1, + GENL_DONT_VALIDATE_DUMP = 2, + GENL_DONT_VALIDATE_DUMP_STRICT = 4, +}; + +enum genpd_notication { + GENPD_NOTIFY_PRE_OFF = 0, + GENPD_NOTIFY_OFF = 1, + GENPD_NOTIFY_PRE_ON = 2, + GENPD_NOTIFY_ON = 3, +}; + +enum gic_intid_range { + SGI_RANGE = 0, + PPI_RANGE = 1, + SPI_RANGE = 2, + EPPI_RANGE = 3, + ESPI_RANGE = 4, + LPI_RANGE = 5, + __INVALID_RANGE__ = 6, +}; + +enum gic_type { + GIC_V2 = 0, + GIC_V3 = 1, +}; + +enum gpd_status { + GENPD_STATE_ON = 0, + GENPD_STATE_OFF = 1, +}; + +enum gpio_lookup_flags { + GPIO_ACTIVE_HIGH = 0, + GPIO_ACTIVE_LOW = 1, + GPIO_OPEN_DRAIN = 2, + GPIO_OPEN_SOURCE = 4, + GPIO_PERSISTENT = 0, + GPIO_TRANSITORY = 8, + GPIO_PULL_UP = 16, + GPIO_PULL_DOWN = 32, + GPIO_PULL_DISABLE = 64, + GPIO_LOOKUP_FLAGS_DEFAULT = 0, +}; + +enum gpio_select { + NO_GPIO = 0, + GPIO_1 = 1, + GPIO_2 = 2, +}; + +enum gpio_v2_line_attr_id { + GPIO_V2_LINE_ATTR_ID_FLAGS = 1, + GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 2, + GPIO_V2_LINE_ATTR_ID_DEBOUNCE = 3, +}; + +enum gpio_v2_line_changed_type { + GPIO_V2_LINE_CHANGED_REQUESTED = 1, + GPIO_V2_LINE_CHANGED_RELEASED = 2, + GPIO_V2_LINE_CHANGED_CONFIG = 3, +}; + +enum gpio_v2_line_event_id { + GPIO_V2_LINE_EVENT_RISING_EDGE = 1, + GPIO_V2_LINE_EVENT_FALLING_EDGE = 2, +}; + +enum gpio_v2_line_flag { + GPIO_V2_LINE_FLAG_USED = 1, + GPIO_V2_LINE_FLAG_ACTIVE_LOW = 2, + GPIO_V2_LINE_FLAG_INPUT = 4, + GPIO_V2_LINE_FLAG_OUTPUT = 8, + GPIO_V2_LINE_FLAG_EDGE_RISING = 16, + GPIO_V2_LINE_FLAG_EDGE_FALLING = 32, + GPIO_V2_LINE_FLAG_OPEN_DRAIN = 64, + GPIO_V2_LINE_FLAG_OPEN_SOURCE = 128, + GPIO_V2_LINE_FLAG_BIAS_PULL_UP = 256, + GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = 512, + GPIO_V2_LINE_FLAG_BIAS_DISABLED = 1024, + GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = 2048, + GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE = 4096, +}; + +enum gpiod_flags { + GPIOD_ASIS = 0, + GPIOD_IN = 1, + GPIOD_OUT_LOW = 3, + GPIOD_OUT_HIGH = 7, + GPIOD_OUT_LOW_OPEN_DRAIN = 11, + GPIOD_OUT_HIGH_OPEN_DRAIN = 15, +}; + +enum gpmc_clk_domain { + GPMC_CD_FCLK = 0, + GPMC_CD_CLK = 1, +}; + +enum graph_filter_type { + GRAPH_FILTER_NOTRACE = 0, + GRAPH_FILTER_FUNCTION = 1, +}; + +enum gre_conntrack { + GRE_CT_UNREPLIED = 0, + GRE_CT_REPLIED = 1, + GRE_CT_MAX = 2, +}; + +enum gro_result { + GRO_MERGED = 0, + GRO_MERGED_FREE = 1, + GRO_HELD = 2, + GRO_NORMAL = 3, + GRO_CONSUMED = 4, +}; + +typedef enum gro_result gro_result_t; + +enum group_type { + group_has_spare = 0, + group_fully_busy = 1, + group_misfit_task = 2, + group_smt_balance = 3, + group_asym_packing = 4, + group_imbalanced = 5, + group_overloaded = 6, +}; + +enum handle_to_path_flags { + HANDLE_CHECK_PERMS = 1, + HANDLE_CHECK_SUBTREE = 2, +}; + +enum handler_id { + HANDLER_ONMATCH = 1, + HANDLER_ONMAX = 2, + HANDLER_ONCHANGE = 3, +}; + +enum handshake_auth { + HANDSHAKE_AUTH_UNSPEC = 0, + HANDSHAKE_AUTH_UNAUTH = 1, + HANDSHAKE_AUTH_PSK = 2, + HANDSHAKE_AUTH_X509 = 3, +}; + +enum handshake_handler_class { + HANDSHAKE_HANDLER_CLASS_NONE = 0, + HANDSHAKE_HANDLER_CLASS_TLSHD = 1, + HANDSHAKE_HANDLER_CLASS_MAX = 2, +}; + +enum handshake_msg_type { + HANDSHAKE_MSG_TYPE_UNSPEC = 0, + HANDSHAKE_MSG_TYPE_CLIENTHELLO = 1, + HANDSHAKE_MSG_TYPE_SERVERHELLO = 2, +}; + +enum hash_algo { + HASH_ALGO_MD4 = 0, + HASH_ALGO_MD5 = 1, + HASH_ALGO_SHA1 = 2, + HASH_ALGO_RIPE_MD_160 = 3, + HASH_ALGO_SHA256 = 4, + HASH_ALGO_SHA384 = 5, + HASH_ALGO_SHA512 = 6, + HASH_ALGO_SHA224 = 7, + HASH_ALGO_RIPE_MD_128 = 8, + HASH_ALGO_RIPE_MD_256 = 9, + HASH_ALGO_RIPE_MD_320 = 10, + HASH_ALGO_WP_256 = 11, + HASH_ALGO_WP_384 = 12, + HASH_ALGO_WP_512 = 13, + HASH_ALGO_TGR_128 = 14, + HASH_ALGO_TGR_160 = 15, + HASH_ALGO_TGR_192 = 16, + HASH_ALGO_SM3_256 = 17, + HASH_ALGO_STREEBOG_256 = 18, + HASH_ALGO_STREEBOG_512 = 19, + HASH_ALGO_SHA3_256 = 20, + HASH_ALGO_SHA3_384 = 21, + HASH_ALGO_SHA3_512 = 22, + HASH_ALGO__LAST = 23, +}; + +enum hctx_type { + HCTX_TYPE_DEFAULT = 0, + HCTX_TYPE_READ = 1, + HCTX_TYPE_POLL = 2, + HCTX_MAX_TYPES = 3, +}; + +enum hdmi_3d_structure { + HDMI_3D_STRUCTURE_INVALID = -1, + HDMI_3D_STRUCTURE_FRAME_PACKING = 0, + HDMI_3D_STRUCTURE_FIELD_ALTERNATIVE = 1, + HDMI_3D_STRUCTURE_LINE_ALTERNATIVE = 2, + HDMI_3D_STRUCTURE_SIDE_BY_SIDE_FULL = 3, + HDMI_3D_STRUCTURE_L_DEPTH = 4, + HDMI_3D_STRUCTURE_L_DEPTH_GFX_GFX_DEPTH = 5, + HDMI_3D_STRUCTURE_TOP_AND_BOTTOM = 6, + HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF = 8, +}; + +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_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_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_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_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_colorimetry { + HDMI_COLORIMETRY_NONE = 0, + HDMI_COLORIMETRY_ITU_601 = 1, + HDMI_COLORIMETRY_ITU_709 = 2, + HDMI_COLORIMETRY_EXTENDED = 3, +}; + +enum hdmi_colorspace { + HDMI_COLORSPACE_RGB = 0, + HDMI_COLORSPACE_YUV422 = 1, + HDMI_COLORSPACE_YUV444 = 2, + HDMI_COLORSPACE_YUV420 = 3, + HDMI_COLORSPACE_RESERVED4 = 4, + HDMI_COLORSPACE_RESERVED5 = 5, + HDMI_COLORSPACE_RESERVED6 = 6, + HDMI_COLORSPACE_IDO_DEFINED = 7, +}; + +enum 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_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_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_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_metadata_type { + HDMI_STATIC_METADATA_TYPE1 = 0, +}; + +enum hdmi_nups { + HDMI_NUPS_UNKNOWN = 0, + HDMI_NUPS_HORIZONTAL = 1, + HDMI_NUPS_VERTICAL = 2, + HDMI_NUPS_BOTH = 3, +}; + +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 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_scan_mode { + HDMI_SCAN_MODE_NONE = 0, + HDMI_SCAN_MODE_OVERSCAN = 1, + HDMI_SCAN_MODE_UNDERSCAN = 2, + HDMI_SCAN_MODE_RESERVED = 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_ycc_quantization_range { + HDMI_YCC_QUANTIZATION_RANGE_LIMITED = 0, + HDMI_YCC_QUANTIZATION_RANGE_FULL = 1, +}; + +enum header_fields { + HDR_PCR = 0, + HDR_DIGEST = 1, + HDR_TEMPLATE_NAME = 2, + HDR_TEMPLATE_DATA = 3, + HDR__LAST = 4, +}; + +enum header_opt { + IPE_HEADER_POLICY_NAME = 0, + IPE_HEADER_POLICY_VERSION = 1, + __IPE_HEADER_MAX = 2, +}; + +enum hest_status { + HEST_ENABLED = 0, + HEST_DISABLED = 1, + HEST_NOT_FOUND = 2, +}; + +enum hid_battery_status { + HID_BATTERY_UNKNOWN = 0, + HID_BATTERY_QUERIED = 1, + HID_BATTERY_REPORTED = 2, +}; + +enum hid_class_request { + HID_REQ_GET_REPORT = 1, + HID_REQ_GET_IDLE = 2, + HID_REQ_GET_PROTOCOL = 3, + HID_REQ_SET_REPORT = 9, + HID_REQ_SET_IDLE = 10, + HID_REQ_SET_PROTOCOL = 11, +}; + +enum hid_report_type { + HID_INPUT_REPORT = 0, + HID_OUTPUT_REPORT = 1, + HID_FEATURE_REPORT = 2, + HID_REPORT_TYPES = 3, +}; + +enum hid_type { + HID_TYPE_OTHER = 0, + HID_TYPE_USBMOUSE = 1, + HID_TYPE_USBNONE = 2, +}; + +enum hisi_pcie_err_severity { + HISI_PCIE_ERR_SEV_RECOVERABLE = 0, + HISI_PCIE_ERR_SEV_FATAL = 1, + HISI_PCIE_ERR_SEV_CORRECTED = 2, + HISI_PCIE_ERR_SEV_NONE = 3, +}; + +enum hisi_pcie_submodule_id { + HISI_PCIE_SUB_MODULE_ID_AP = 0, + HISI_PCIE_SUB_MODULE_ID_TL = 1, + HISI_PCIE_SUB_MODULE_ID_MAC = 2, + HISI_PCIE_SUB_MODULE_ID_DL = 3, + HISI_PCIE_SUB_MODULE_ID_SDI = 4, +}; + +enum hist_field_flags { + HIST_FIELD_FL_HITCOUNT = 1, + HIST_FIELD_FL_KEY = 2, + HIST_FIELD_FL_STRING = 4, + HIST_FIELD_FL_HEX = 8, + HIST_FIELD_FL_SYM = 16, + HIST_FIELD_FL_SYM_OFFSET = 32, + HIST_FIELD_FL_EXECNAME = 64, + HIST_FIELD_FL_SYSCALL = 128, + HIST_FIELD_FL_STACKTRACE = 256, + HIST_FIELD_FL_LOG2 = 512, + HIST_FIELD_FL_TIMESTAMP = 1024, + HIST_FIELD_FL_TIMESTAMP_USECS = 2048, + HIST_FIELD_FL_VAR = 4096, + HIST_FIELD_FL_EXPR = 8192, + HIST_FIELD_FL_VAR_REF = 16384, + HIST_FIELD_FL_CPU = 32768, + HIST_FIELD_FL_ALIAS = 65536, + HIST_FIELD_FL_BUCKET = 131072, + HIST_FIELD_FL_CONST = 262144, + HIST_FIELD_FL_PERCENT = 524288, + HIST_FIELD_FL_GRAPH = 1048576, +}; + +enum hist_field_fn { + HIST_FIELD_FN_NOP = 0, + HIST_FIELD_FN_VAR_REF = 1, + HIST_FIELD_FN_COUNTER = 2, + HIST_FIELD_FN_CONST = 3, + HIST_FIELD_FN_LOG2 = 4, + HIST_FIELD_FN_BUCKET = 5, + HIST_FIELD_FN_TIMESTAMP = 6, + HIST_FIELD_FN_CPU = 7, + HIST_FIELD_FN_STRING = 8, + HIST_FIELD_FN_DYNSTRING = 9, + HIST_FIELD_FN_RELDYNSTRING = 10, + HIST_FIELD_FN_PSTRING = 11, + HIST_FIELD_FN_S64 = 12, + HIST_FIELD_FN_U64 = 13, + HIST_FIELD_FN_S32 = 14, + HIST_FIELD_FN_U32 = 15, + HIST_FIELD_FN_S16 = 16, + HIST_FIELD_FN_U16 = 17, + HIST_FIELD_FN_S8 = 18, + HIST_FIELD_FN_U8 = 19, + HIST_FIELD_FN_UMINUS = 20, + HIST_FIELD_FN_MINUS = 21, + HIST_FIELD_FN_PLUS = 22, + HIST_FIELD_FN_DIV = 23, + HIST_FIELD_FN_MULT = 24, + HIST_FIELD_FN_DIV_POWER2 = 25, + HIST_FIELD_FN_DIV_NOT_POWER2 = 26, + HIST_FIELD_FN_DIV_MULT_SHIFT = 27, + HIST_FIELD_FN_EXECNAME = 28, + HIST_FIELD_FN_STACK = 29, +}; + +enum hk_flags { + HK_FLAG_DOMAIN = 1, + HK_FLAG_MANAGED_IRQ = 2, + HK_FLAG_KERNEL_NOISE = 4, +}; + +enum hk_type { + HK_TYPE_DOMAIN = 0, + HK_TYPE_MANAGED_IRQ = 1, + HK_TYPE_KERNEL_NOISE = 2, + HK_TYPE_MAX = 3, + HK_TYPE_TICK = 2, + HK_TYPE_TIMER = 2, + HK_TYPE_RCU = 2, + HK_TYPE_MISC = 2, + HK_TYPE_WQ = 2, + HK_TYPE_KTHREAD = 2, +}; + +enum hmm_pfn_flags { + HMM_PFN_VALID = 9223372036854775808ULL, + HMM_PFN_WRITE = 4611686018427387904ULL, + HMM_PFN_ERROR = 2305843009213693952ULL, + HMM_PFN_ORDER_SHIFT = 56ULL, + HMM_PFN_REQ_FAULT = 9223372036854775808ULL, + HMM_PFN_REQ_WRITE = 4611686018427387904ULL, + HMM_PFN_FLAGS = 18374686479671623680ULL, +}; + +enum hn_flags_bits { + HANDSHAKE_F_NET_DRAINING = 0, +}; + +enum host_event_code { + EC_HOST_EVENT_LID_CLOSED = 1, + EC_HOST_EVENT_LID_OPEN = 2, + EC_HOST_EVENT_POWER_BUTTON = 3, + EC_HOST_EVENT_AC_CONNECTED = 4, + EC_HOST_EVENT_AC_DISCONNECTED = 5, + EC_HOST_EVENT_BATTERY_LOW = 6, + EC_HOST_EVENT_BATTERY_CRITICAL = 7, + EC_HOST_EVENT_BATTERY = 8, + EC_HOST_EVENT_THERMAL_THRESHOLD = 9, + EC_HOST_EVENT_DEVICE = 10, + EC_HOST_EVENT_THERMAL = 11, + EC_HOST_EVENT_USB_CHARGER = 12, + EC_HOST_EVENT_KEY_PRESSED = 13, + EC_HOST_EVENT_INTERFACE_READY = 14, + EC_HOST_EVENT_KEYBOARD_RECOVERY = 15, + EC_HOST_EVENT_THERMAL_SHUTDOWN = 16, + EC_HOST_EVENT_BATTERY_SHUTDOWN = 17, + EC_HOST_EVENT_THROTTLE_START = 18, + EC_HOST_EVENT_THROTTLE_STOP = 19, + EC_HOST_EVENT_HANG_DETECT = 20, + EC_HOST_EVENT_HANG_REBOOT = 21, + EC_HOST_EVENT_PD_MCU = 22, + EC_HOST_EVENT_BATTERY_STATUS = 23, + EC_HOST_EVENT_PANIC = 24, + EC_HOST_EVENT_KEYBOARD_FASTBOOT = 25, + EC_HOST_EVENT_RTC = 26, + EC_HOST_EVENT_MKBP = 27, + EC_HOST_EVENT_USB_MUX = 28, + EC_HOST_EVENT_MODE_CHANGE = 29, + EC_HOST_EVENT_KEYBOARD_RECOVERY_HW_REINIT = 30, + EC_HOST_EVENT_WOV = 31, + EC_HOST_EVENT_INVALID = 32, +}; + +enum hp_flags_bits { + HANDSHAKE_F_PROTO_NOTIFY = 0, +}; + +enum hprobe_state { + HPROBE_LEASED = 0, + HPROBE_STABLE = 1, + HPROBE_GONE = 2, + HPROBE_CONSUMED = 3, +}; + +enum hpx_type3_cfg_loc { + HPX_CFG_PCICFG = 0, + HPX_CFG_PCIE_CAP = 1, + HPX_CFG_PCIE_CAP_EXT = 2, + HPX_CFG_VEND_CAP = 3, + HPX_CFG_DVSEC = 4, + HPX_CFG_MAX = 5, +}; + +enum hpx_type3_dev_type { + HPX_TYPE_ENDPOINT = 1, + HPX_TYPE_LEG_END = 2, + HPX_TYPE_RC_END = 4, + HPX_TYPE_RC_EC = 8, + HPX_TYPE_ROOT_PORT = 16, + HPX_TYPE_UPSTREAM = 32, + HPX_TYPE_DOWNSTREAM = 64, + HPX_TYPE_PCI_BRIDGE = 128, + HPX_TYPE_PCIE_BRIDGE = 256, +}; + +enum hpx_type3_fn_type { + HPX_FN_NORMAL = 1, + HPX_FN_SRIOV_PHYS = 2, + HPX_FN_SRIOV_VIRT = 4, +}; + +enum hr_flags_bits { + HANDSHAKE_F_REQ_COMPLETED = 0, + HANDSHAKE_F_REQ_SESSION = 1, +}; + +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 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, +}; + +enum hrtimer_restart { + HRTIMER_NORESTART = 0, + HRTIMER_RESTART = 1, +}; + +enum hsm_task_states { + HSM_ST_IDLE = 0, + HSM_ST_FIRST = 1, + HSM_ST = 2, + HSM_ST_LAST = 3, + HSM_ST_ERR = 4, +}; + +enum hte_edge { + HTE_EDGE_NO_SETUP = 1, + HTE_RISING_EDGE_TS = 2, + HTE_FALLING_EDGE_TS = 4, +}; + +enum hte_return { + HTE_CB_HANDLED = 0, + HTE_RUN_SECOND_CB = 1, +}; + +enum hub_activation_type { + HUB_INIT = 0, + HUB_INIT2 = 1, + HUB_INIT3 = 2, + HUB_POST_RESET = 3, + HUB_RESUME = 4, + HUB_RESET_RESUME = 5, +}; + +enum hub_led_mode { + INDICATOR_AUTO = 0, + INDICATOR_CYCLE = 1, + INDICATOR_GREEN_BLINK = 2, + INDICATOR_GREEN_BLINK_OFF = 3, + INDICATOR_AMBER_BLINK = 4, + INDICATOR_AMBER_BLINK_OFF = 5, + INDICATOR_ALT_BLINK = 6, + INDICATOR_ALT_BLINK_OFF = 7, +} __attribute__((mode(byte))); + +enum hub_quiescing_type { + HUB_DISCONNECT = 0, + HUB_PRE_RESET = 1, + HUB_SUSPEND = 2, +}; + +enum hugetlb_memory_event { + HUGETLB_MAX = 0, + HUGETLB_NR_MEMORY_EVENTS = 1, +}; + +enum hugetlb_page_flags { + HPG_restore_reserve = 0, + HPG_migratable = 1, + HPG_temporary = 2, + HPG_freed = 3, + HPG_vmemmap_optimized = 4, + HPG_raw_hwp_unreliable = 5, + __NR_HPAGEFLAGS = 6, +}; + +enum hugetlb_param { + Opt_gid___6 = 0, + Opt_min_size = 1, + Opt_mode___4 = 2, + Opt_nr_inodes = 3, + Opt_pagesize = 4, + Opt_size = 5, + Opt_uid___6 = 6, +}; + +enum hugetlbfs_size_type { + NO_SIZE = 0, + SIZE_STD = 1, + SIZE_PERCENT = 2, +}; + +enum hv_register_name { + HV_REGISTER_EXPLICIT_SUSPEND = 0, + HV_REGISTER_INTERCEPT_SUSPEND = 1, + HV_REGISTER_DISPATCH_SUSPEND = 3, + HV_REGISTER_HYPERVISOR_VERSION = 256, + HV_REGISTER_PRIVILEGES_AND_FEATURES_INFO = 512, + HV_REGISTER_FEATURES_INFO = 513, + HV_REGISTER_IMPLEMENTATION_LIMITS_INFO = 514, + HV_REGISTER_HARDWARE_FEATURES_INFO = 515, + HV_REGISTER_CPU_MANAGEMENT_FEATURES_INFO = 516, + HV_REGISTER_SVM_FEATURES_INFO = 517, + HV_REGISTER_SKIP_LEVEL_FEATURES_INFO = 518, + HV_REGISTER_NESTED_VIRT_FEATURES_INFO = 519, + HV_REGISTER_IPT_FEATURES_INFO = 520, + HV_REGISTER_GUEST_CRASH_P0 = 528, + HV_REGISTER_GUEST_CRASH_P1 = 529, + HV_REGISTER_GUEST_CRASH_P2 = 530, + HV_REGISTER_GUEST_CRASH_P3 = 531, + HV_REGISTER_GUEST_CRASH_P4 = 532, + HV_REGISTER_GUEST_CRASH_CTL = 533, + HV_REGISTER_VP_RUNTIME = 589824, + HV_REGISTER_GUEST_OS_ID = 589826, + HV_REGISTER_VP_INDEX = 589827, + HV_REGISTER_TIME_REF_COUNT = 589828, + HV_REGISTER_CPU_MANAGEMENT_VERSION = 589831, + HV_REGISTER_VP_ASSIST_PAGE = 589843, + HV_REGISTER_VP_ROOT_SIGNAL_COUNT = 589844, + HV_REGISTER_REFERENCE_TSC = 589847, + HV_REGISTER_SINT0 = 655360, + HV_REGISTER_SINT1 = 655361, + HV_REGISTER_SINT2 = 655362, + HV_REGISTER_SINT3 = 655363, + HV_REGISTER_SINT4 = 655364, + HV_REGISTER_SINT5 = 655365, + HV_REGISTER_SINT6 = 655366, + HV_REGISTER_SINT7 = 655367, + HV_REGISTER_SINT8 = 655368, + HV_REGISTER_SINT9 = 655369, + HV_REGISTER_SINT10 = 655370, + HV_REGISTER_SINT11 = 655371, + HV_REGISTER_SINT12 = 655372, + HV_REGISTER_SINT13 = 655373, + HV_REGISTER_SINT14 = 655374, + HV_REGISTER_SINT15 = 655375, + HV_REGISTER_SCONTROL = 655376, + HV_REGISTER_SVERSION = 655377, + HV_REGISTER_SIEFP = 655378, + HV_REGISTER_SIMP = 655379, + HV_REGISTER_EOM = 655380, + HV_REGISTER_SIRBP = 655381, + HV_REGISTER_NESTED_SINT0 = 659456, + HV_REGISTER_NESTED_SINT1 = 659457, + HV_REGISTER_NESTED_SINT2 = 659458, + HV_REGISTER_NESTED_SINT3 = 659459, + HV_REGISTER_NESTED_SINT4 = 659460, + HV_REGISTER_NESTED_SINT5 = 659461, + HV_REGISTER_NESTED_SINT6 = 659462, + HV_REGISTER_NESTED_SINT7 = 659463, + HV_REGISTER_NESTED_SINT8 = 659464, + HV_REGISTER_NESTED_SINT9 = 659465, + HV_REGISTER_NESTED_SINT10 = 659466, + HV_REGISTER_NESTED_SINT11 = 659467, + HV_REGISTER_NESTED_SINT12 = 659468, + HV_REGISTER_NESTED_SINT13 = 659469, + HV_REGISTER_NESTED_SINT14 = 659470, + HV_REGISTER_NESTED_SINT15 = 659471, + HV_REGISTER_NESTED_SCONTROL = 659472, + HV_REGISTER_NESTED_SVERSION = 659473, + HV_REGISTER_NESTED_SIFP = 659474, + HV_REGISTER_NESTED_SIPP = 659475, + HV_REGISTER_NESTED_EOM = 659476, + HV_REGISTER_NESTED_SIRBP = 659477, + HV_REGISTER_STIMER0_CONFIG = 720896, + HV_REGISTER_STIMER0_COUNT = 720897, + HV_REGISTER_VSM_VP_STATUS = 851971, +}; + +enum hw_breakpoint_ops { + HW_BREAKPOINT_INSTALL = 0, + HW_BREAKPOINT_UNINSTALL = 1, + HW_BREAKPOINT_RESTORE = 2, +}; + +enum hw_event_mc_err_type { + HW_EVENT_ERR_CORRECTED = 0, + HW_EVENT_ERR_UNCORRECTED = 1, + HW_EVENT_ERR_DEFERRED = 2, + HW_EVENT_ERR_FATAL = 3, + HW_EVENT_ERR_INFO = 4, +}; + +enum hw_protection_action { + HWPROT_ACT_SHUTDOWN = 0, + HWPROT_ACT_REBOOT = 1, +}; + +enum hwmon_chip_attributes { + hwmon_chip_temp_reset_history = 0, + hwmon_chip_in_reset_history = 1, + hwmon_chip_curr_reset_history = 2, + hwmon_chip_power_reset_history = 3, + hwmon_chip_register_tz = 4, + hwmon_chip_update_interval = 5, + hwmon_chip_alarms = 6, + hwmon_chip_samples = 7, + hwmon_chip_curr_samples = 8, + hwmon_chip_in_samples = 9, + hwmon_chip_power_samples = 10, + hwmon_chip_temp_samples = 11, + hwmon_chip_beep_enable = 12, + hwmon_chip_pec = 13, +}; + +enum hwmon_curr_attributes { + hwmon_curr_enable = 0, + hwmon_curr_input = 1, + hwmon_curr_min = 2, + hwmon_curr_max = 3, + hwmon_curr_lcrit = 4, + hwmon_curr_crit = 5, + hwmon_curr_average = 6, + hwmon_curr_lowest = 7, + hwmon_curr_highest = 8, + hwmon_curr_reset_history = 9, + hwmon_curr_label = 10, + hwmon_curr_alarm = 11, + hwmon_curr_min_alarm = 12, + hwmon_curr_max_alarm = 13, + hwmon_curr_lcrit_alarm = 14, + hwmon_curr_crit_alarm = 15, + hwmon_curr_rated_min = 16, + hwmon_curr_rated_max = 17, + hwmon_curr_beep = 18, +}; + +enum hwmon_energy_attributes { + hwmon_energy_enable = 0, + hwmon_energy_input = 1, + hwmon_energy_label = 2, +}; + +enum hwmon_fan_attributes { + hwmon_fan_enable = 0, + hwmon_fan_input = 1, + hwmon_fan_label = 2, + hwmon_fan_min = 3, + hwmon_fan_max = 4, + hwmon_fan_div = 5, + hwmon_fan_pulses = 6, + hwmon_fan_target = 7, + hwmon_fan_alarm = 8, + hwmon_fan_min_alarm = 9, + hwmon_fan_max_alarm = 10, + hwmon_fan_fault = 11, + hwmon_fan_beep = 12, +}; + +enum hwmon_humidity_attributes { + hwmon_humidity_enable = 0, + hwmon_humidity_input = 1, + hwmon_humidity_label = 2, + hwmon_humidity_min = 3, + hwmon_humidity_min_hyst = 4, + hwmon_humidity_max = 5, + hwmon_humidity_max_hyst = 6, + hwmon_humidity_alarm = 7, + hwmon_humidity_fault = 8, + hwmon_humidity_rated_min = 9, + hwmon_humidity_rated_max = 10, + hwmon_humidity_min_alarm = 11, + hwmon_humidity_max_alarm = 12, +}; + +enum hwmon_in_attributes { + hwmon_in_enable = 0, + hwmon_in_input = 1, + hwmon_in_min = 2, + hwmon_in_max = 3, + hwmon_in_lcrit = 4, + hwmon_in_crit = 5, + hwmon_in_average = 6, + hwmon_in_lowest = 7, + hwmon_in_highest = 8, + hwmon_in_reset_history = 9, + hwmon_in_label = 10, + hwmon_in_alarm = 11, + hwmon_in_min_alarm = 12, + hwmon_in_max_alarm = 13, + hwmon_in_lcrit_alarm = 14, + hwmon_in_crit_alarm = 15, + hwmon_in_rated_min = 16, + hwmon_in_rated_max = 17, + hwmon_in_beep = 18, + hwmon_in_fault = 19, +}; + +enum hwmon_intrusion_attributes { + hwmon_intrusion_alarm = 0, + hwmon_intrusion_beep = 1, +}; + +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_pwm_attributes { + hwmon_pwm_input = 0, + hwmon_pwm_enable = 1, + hwmon_pwm_mode = 2, + hwmon_pwm_freq = 3, + hwmon_pwm_auto_channels_temp = 4, +}; + +enum hwmon_sensor_types { + hwmon_chip = 0, + hwmon_temp = 1, + hwmon_in = 2, + hwmon_curr = 3, + hwmon_power = 4, + hwmon_energy = 5, + hwmon_humidity = 6, + hwmon_fan = 7, + hwmon_pwm = 8, + hwmon_intrusion = 9, + hwmon_max = 10, +}; + +enum hwmon_temp_attributes { + hwmon_temp_enable = 0, + hwmon_temp_input = 1, + hwmon_temp_type = 2, + hwmon_temp_lcrit = 3, + hwmon_temp_lcrit_hyst = 4, + hwmon_temp_min = 5, + hwmon_temp_min_hyst = 6, + hwmon_temp_max = 7, + hwmon_temp_max_hyst = 8, + hwmon_temp_crit = 9, + hwmon_temp_crit_hyst = 10, + hwmon_temp_emergency = 11, + hwmon_temp_emergency_hyst = 12, + hwmon_temp_alarm = 13, + hwmon_temp_lcrit_alarm = 14, + hwmon_temp_min_alarm = 15, + hwmon_temp_max_alarm = 16, + hwmon_temp_crit_alarm = 17, + hwmon_temp_emergency_alarm = 18, + hwmon_temp_fault = 19, + hwmon_temp_offset = 20, + hwmon_temp_label = 21, + hwmon_temp_lowest = 22, + hwmon_temp_highest = 23, + hwmon_temp_reset_history = 24, + hwmon_temp_rated_min = 25, + hwmon_temp_rated_max = 26, + hwmon_temp_beep = 27, +}; + +enum hwparam_type { + hwparam_ioport = 0, + hwparam_iomem = 1, + hwparam_ioport_or_iomem = 2, + hwparam_irq = 3, + hwparam_dma = 4, + hwparam_dma_addr = 5, + hwparam_other = 6, +}; + +enum hwtstamp_flags { + HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, + HWTSTAMP_FLAG_LAST = 1, + HWTSTAMP_FLAG_MASK = 1, +}; + +enum hwtstamp_provider_qualifier { + HWTSTAMP_PROVIDER_QUALIFIER_PRECISE = 0, + HWTSTAMP_PROVIDER_QUALIFIER_APPROX = 1, + HWTSTAMP_PROVIDER_QUALIFIER_CNT = 2, +}; + +enum hwtstamp_rx_filters { + HWTSTAMP_FILTER_NONE = 0, + HWTSTAMP_FILTER_ALL = 1, + HWTSTAMP_FILTER_SOME = 2, + HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3, + HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4, + HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5, + HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6, + HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7, + HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8, + HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9, + HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10, + HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11, + HWTSTAMP_FILTER_PTP_V2_EVENT = 12, + HWTSTAMP_FILTER_PTP_V2_SYNC = 13, + HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14, + HWTSTAMP_FILTER_NTP_ALL = 15, + __HWTSTAMP_FILTER_CNT = 16, +}; + +enum hwtstamp_source { + HWTSTAMP_SOURCE_UNSPEC = 0, + HWTSTAMP_SOURCE_NETDEV = 1, + HWTSTAMP_SOURCE_PHYLIB = 2, +}; + +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 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 i2c_slave_event { + I2C_SLAVE_READ_REQUESTED = 0, + I2C_SLAVE_WRITE_REQUESTED = 1, + I2C_SLAVE_READ_PROCESSED = 2, + I2C_SLAVE_WRITE_RECEIVED = 3, + I2C_SLAVE_STOP = 4, +}; + +enum ib_atomic_cap { + IB_ATOMIC_NONE = 0, + IB_ATOMIC_HCA = 1, + IB_ATOMIC_GLOB = 2, +}; + +enum ib_cq_notify_flags { + IB_CQ_SOLICITED = 1, + IB_CQ_NEXT_COMP = 2, + IB_CQ_SOLICITED_MASK = 3, + IB_CQ_REPORT_MISSED_EVENTS = 4, +}; + +enum 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, +}; + +enum ib_flow_action_type { + IB_FLOW_ACTION_UNSPECIFIED = 0, + IB_FLOW_ACTION_ESP = 1, +}; + +enum ib_flow_attr_type { + IB_FLOW_ATTR_NORMAL = 0, + IB_FLOW_ATTR_ALL_DEFAULT = 1, + IB_FLOW_ATTR_MC_DEFAULT = 2, + IB_FLOW_ATTR_SNIFFER = 3, +}; + +enum ib_flow_spec_type { + IB_FLOW_SPEC_ETH = 32, + IB_FLOW_SPEC_IB = 34, + IB_FLOW_SPEC_IPV4 = 48, + IB_FLOW_SPEC_IPV6 = 49, + IB_FLOW_SPEC_ESP = 52, + IB_FLOW_SPEC_TCP = 64, + IB_FLOW_SPEC_UDP = 65, + IB_FLOW_SPEC_VXLAN_TUNNEL = 80, + IB_FLOW_SPEC_GRE = 81, + IB_FLOW_SPEC_MPLS = 96, + IB_FLOW_SPEC_INNER = 256, + IB_FLOW_SPEC_ACTION_TAG = 4096, + IB_FLOW_SPEC_ACTION_DROP = 4097, + IB_FLOW_SPEC_ACTION_HANDLE = 4098, + IB_FLOW_SPEC_ACTION_COUNT = 4099, +}; + +enum 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, +}; + +enum ib_mig_state { + IB_MIG_MIGRATED = 0, + IB_MIG_REARM = 1, + IB_MIG_ARMED = 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_mtu { + IB_MTU_256 = 1, + IB_MTU_512 = 2, + IB_MTU_1024 = 3, + IB_MTU_2048 = 4, + IB_MTU_4096 = 5, +}; + +enum ib_mw_type { + IB_MW_TYPE_1 = 1, + IB_MW_TYPE_2 = 2, +}; + +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, +}; + +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_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_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 ib_sig_err_type { + IB_SIG_BAD_GUARD = 0, + IB_SIG_BAD_REFTAG = 1, + IB_SIG_BAD_APPTAG = 2, +}; + +enum ib_sig_type { + IB_SIGNAL_ALL_WR = 0, + IB_SIGNAL_REQ_WR = 1, +}; + +enum ib_signature_type { + IB_SIG_TYPE_NONE = 0, + IB_SIG_TYPE_T10_DIF = 1, +}; + +enum ib_srq_attr_mask { + IB_SRQ_MAX_WR = 1, + IB_SRQ_LIMIT = 2, +}; + +enum ib_srq_type { + IB_SRQT_BASIC = 0, + IB_SRQT_XRC = 1, + IB_SRQT_TM = 2, +}; + +enum ib_t10_dif_bg_type { + IB_T10DIF_CRC = 0, + IB_T10DIF_CSUM = 1, +}; + +enum ib_uverbs_access_flags { + IB_UVERBS_ACCESS_LOCAL_WRITE = 1, + IB_UVERBS_ACCESS_REMOTE_WRITE = 2, + IB_UVERBS_ACCESS_REMOTE_READ = 4, + IB_UVERBS_ACCESS_REMOTE_ATOMIC = 8, + IB_UVERBS_ACCESS_MW_BIND = 16, + IB_UVERBS_ACCESS_ZERO_BASED = 32, + IB_UVERBS_ACCESS_ON_DEMAND = 64, + IB_UVERBS_ACCESS_HUGETLB = 128, + IB_UVERBS_ACCESS_FLUSH_GLOBAL = 256, + IB_UVERBS_ACCESS_FLUSH_PERSISTENT = 512, + IB_UVERBS_ACCESS_RELAXED_ORDERING = 1048576, + IB_UVERBS_ACCESS_OPTIONAL_RANGE = 1072693248, +}; + +enum ib_uverbs_advise_mr_advice { + IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH = 0, + IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE = 1, + IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_NO_FAULT = 2, +}; + +enum ib_uverbs_create_qp_mask { + IB_UVERBS_CREATE_QP_MASK_IND_TABLE = 1, +}; + +enum ib_uverbs_device_cap_flags { + IB_UVERBS_DEVICE_RESIZE_MAX_WR = 1ULL, + IB_UVERBS_DEVICE_BAD_PKEY_CNTR = 2ULL, + IB_UVERBS_DEVICE_BAD_QKEY_CNTR = 4ULL, + IB_UVERBS_DEVICE_RAW_MULTI = 8ULL, + IB_UVERBS_DEVICE_AUTO_PATH_MIG = 16ULL, + IB_UVERBS_DEVICE_CHANGE_PHY_PORT = 32ULL, + IB_UVERBS_DEVICE_UD_AV_PORT_ENFORCE = 64ULL, + IB_UVERBS_DEVICE_CURR_QP_STATE_MOD = 128ULL, + IB_UVERBS_DEVICE_SHUTDOWN_PORT = 256ULL, + IB_UVERBS_DEVICE_PORT_ACTIVE_EVENT = 1024ULL, + IB_UVERBS_DEVICE_SYS_IMAGE_GUID = 2048ULL, + IB_UVERBS_DEVICE_RC_RNR_NAK_GEN = 4096ULL, + IB_UVERBS_DEVICE_SRQ_RESIZE = 8192ULL, + IB_UVERBS_DEVICE_N_NOTIFY_CQ = 16384ULL, + IB_UVERBS_DEVICE_MEM_WINDOW = 131072ULL, + IB_UVERBS_DEVICE_UD_IP_CSUM = 262144ULL, + IB_UVERBS_DEVICE_XRC = 1048576ULL, + IB_UVERBS_DEVICE_MEM_MGT_EXTENSIONS = 2097152ULL, + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2A = 8388608ULL, + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2B = 16777216ULL, + IB_UVERBS_DEVICE_RC_IP_CSUM = 33554432ULL, + IB_UVERBS_DEVICE_RAW_IP_CSUM = 67108864ULL, + IB_UVERBS_DEVICE_MANAGED_FLOW_STEERING = 536870912ULL, + IB_UVERBS_DEVICE_RAW_SCATTER_FCS = 17179869184ULL, + IB_UVERBS_DEVICE_PCI_WRITE_END_PADDING = 68719476736ULL, + IB_UVERBS_DEVICE_FLUSH_GLOBAL = 274877906944ULL, + IB_UVERBS_DEVICE_FLUSH_PERSISTENT = 549755813888ULL, + IB_UVERBS_DEVICE_ATOMIC_WRITE = 1099511627776ULL, +}; + +enum ib_uverbs_gid_type { + IB_UVERBS_GID_TYPE_IB = 0, + IB_UVERBS_GID_TYPE_ROCE_V1 = 1, + IB_UVERBS_GID_TYPE_ROCE_V2 = 2, +}; + +enum ib_uverbs_qp_create_flags { + IB_UVERBS_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 2, + IB_UVERBS_QP_CREATE_SCATTER_FCS = 256, + IB_UVERBS_QP_CREATE_CVLAN_STRIPPING = 512, + IB_UVERBS_QP_CREATE_PCI_WRITE_END_PADDING = 2048, + IB_UVERBS_QP_CREATE_SQ_SIG_ALL = 4096, +}; + +enum ib_uverbs_qp_type { + IB_UVERBS_QPT_RC = 2, + IB_UVERBS_QPT_UC = 3, + IB_UVERBS_QPT_UD = 4, + IB_UVERBS_QPT_RAW_PACKET = 8, + IB_UVERBS_QPT_XRC_INI = 9, + IB_UVERBS_QPT_XRC_TGT = 10, + IB_UVERBS_QPT_DRIVER = 255, +}; + +enum ib_uverbs_raw_packet_caps { + IB_UVERBS_RAW_PACKET_CAP_CVLAN_STRIPPING = 1, + IB_UVERBS_RAW_PACKET_CAP_SCATTER_FCS = 2, + IB_UVERBS_RAW_PACKET_CAP_IP_CSUM = 4, + IB_UVERBS_RAW_PACKET_CAP_DELAY_DROP = 8, +}; + +enum ib_uverbs_srq_type { + IB_UVERBS_SRQT_BASIC = 0, + IB_UVERBS_SRQT_XRC = 1, + IB_UVERBS_SRQT_TM = 2, +}; + +enum ib_uverbs_wc_opcode { + IB_UVERBS_WC_SEND = 0, + IB_UVERBS_WC_RDMA_WRITE = 1, + IB_UVERBS_WC_RDMA_READ = 2, + IB_UVERBS_WC_COMP_SWAP = 3, + IB_UVERBS_WC_FETCH_ADD = 4, + IB_UVERBS_WC_BIND_MW = 5, + IB_UVERBS_WC_LOCAL_INV = 6, + IB_UVERBS_WC_TSO = 7, + IB_UVERBS_WC_FLUSH = 8, + IB_UVERBS_WC_ATOMIC_WRITE = 9, +}; + +enum ib_uverbs_wq_flags { + IB_UVERBS_WQ_FLAGS_CVLAN_STRIPPING = 1, + IB_UVERBS_WQ_FLAGS_SCATTER_FCS = 2, + IB_UVERBS_WQ_FLAGS_DELAY_DROP = 4, + IB_UVERBS_WQ_FLAGS_PCI_WRITE_END_PADDING = 8, +}; + +enum ib_uverbs_wq_type { + IB_UVERBS_WQT_RQ = 0, +}; + +enum ib_uverbs_wr_opcode { + IB_UVERBS_WR_RDMA_WRITE = 0, + IB_UVERBS_WR_RDMA_WRITE_WITH_IMM = 1, + IB_UVERBS_WR_SEND = 2, + IB_UVERBS_WR_SEND_WITH_IMM = 3, + IB_UVERBS_WR_RDMA_READ = 4, + IB_UVERBS_WR_ATOMIC_CMP_AND_SWP = 5, + IB_UVERBS_WR_ATOMIC_FETCH_AND_ADD = 6, + IB_UVERBS_WR_LOCAL_INV = 7, + IB_UVERBS_WR_BIND_MW = 8, + IB_UVERBS_WR_SEND_WITH_INV = 9, + IB_UVERBS_WR_TSO = 10, + IB_UVERBS_WR_RDMA_READ_WITH_INV = 11, + IB_UVERBS_WR_MASKED_ATOMIC_CMP_AND_SWP = 12, + IB_UVERBS_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13, + IB_UVERBS_WR_FLUSH = 14, + IB_UVERBS_WR_ATOMIC_WRITE = 15, +}; + +enum ib_uverbs_write_cmds { + IB_USER_VERBS_CMD_GET_CONTEXT = 0, + IB_USER_VERBS_CMD_QUERY_DEVICE = 1, + IB_USER_VERBS_CMD_QUERY_PORT = 2, + IB_USER_VERBS_CMD_ALLOC_PD = 3, + IB_USER_VERBS_CMD_DEALLOC_PD = 4, + IB_USER_VERBS_CMD_CREATE_AH = 5, + IB_USER_VERBS_CMD_MODIFY_AH = 6, + IB_USER_VERBS_CMD_QUERY_AH = 7, + IB_USER_VERBS_CMD_DESTROY_AH = 8, + IB_USER_VERBS_CMD_REG_MR = 9, + IB_USER_VERBS_CMD_REG_SMR = 10, + IB_USER_VERBS_CMD_REREG_MR = 11, + IB_USER_VERBS_CMD_QUERY_MR = 12, + IB_USER_VERBS_CMD_DEREG_MR = 13, + IB_USER_VERBS_CMD_ALLOC_MW = 14, + IB_USER_VERBS_CMD_BIND_MW = 15, + IB_USER_VERBS_CMD_DEALLOC_MW = 16, + IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL = 17, + IB_USER_VERBS_CMD_CREATE_CQ = 18, + IB_USER_VERBS_CMD_RESIZE_CQ = 19, + IB_USER_VERBS_CMD_DESTROY_CQ = 20, + IB_USER_VERBS_CMD_POLL_CQ = 21, + IB_USER_VERBS_CMD_PEEK_CQ = 22, + IB_USER_VERBS_CMD_REQ_NOTIFY_CQ = 23, + IB_USER_VERBS_CMD_CREATE_QP = 24, + IB_USER_VERBS_CMD_QUERY_QP = 25, + IB_USER_VERBS_CMD_MODIFY_QP = 26, + IB_USER_VERBS_CMD_DESTROY_QP = 27, + IB_USER_VERBS_CMD_POST_SEND = 28, + IB_USER_VERBS_CMD_POST_RECV = 29, + IB_USER_VERBS_CMD_ATTACH_MCAST = 30, + IB_USER_VERBS_CMD_DETACH_MCAST = 31, + IB_USER_VERBS_CMD_CREATE_SRQ = 32, + IB_USER_VERBS_CMD_MODIFY_SRQ = 33, + IB_USER_VERBS_CMD_QUERY_SRQ = 34, + IB_USER_VERBS_CMD_DESTROY_SRQ = 35, + IB_USER_VERBS_CMD_POST_SRQ_RECV = 36, + IB_USER_VERBS_CMD_OPEN_XRCD = 37, + IB_USER_VERBS_CMD_CLOSE_XRCD = 38, + IB_USER_VERBS_CMD_CREATE_XSRQ = 39, + IB_USER_VERBS_CMD_OPEN_QP = 40, +}; + +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, +}; + +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_wq_state { + IB_WQS_RESET = 0, + IB_WQS_RDY = 1, + IB_WQS_ERR = 2, +}; + +enum ib_wq_type { + IB_WQT_RQ = 0, +}; + +enum ib_wr_opcode { + IB_WR_RDMA_WRITE = 0, + IB_WR_RDMA_WRITE_WITH_IMM = 1, + IB_WR_SEND = 2, + IB_WR_SEND_WITH_IMM = 3, + IB_WR_RDMA_READ = 4, + IB_WR_ATOMIC_CMP_AND_SWP = 5, + IB_WR_ATOMIC_FETCH_AND_ADD = 6, + IB_WR_BIND_MW = 8, + IB_WR_LSO = 10, + IB_WR_SEND_WITH_INV = 9, + IB_WR_RDMA_READ_WITH_INV = 11, + IB_WR_LOCAL_INV = 7, + IB_WR_MASKED_ATOMIC_CMP_AND_SWP = 12, + IB_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13, + IB_WR_FLUSH = 14, + IB_WR_ATOMIC_WRITE = 15, + IB_WR_REG_MR = 32, + IB_WR_REG_MR_INTEGRITY = 33, + IB_WR_RESERVED1 = 240, + IB_WR_RESERVED2 = 241, + IB_WR_RESERVED3 = 242, + IB_WR_RESERVED4 = 243, + IB_WR_RESERVED5 = 244, + IB_WR_RESERVED6 = 245, + IB_WR_RESERVED7 = 246, + IB_WR_RESERVED8 = 247, + IB_WR_RESERVED9 = 248, + IB_WR_RESERVED10 = 249, +}; + +enum icst_control_type { + ICST_VERSATILE = 0, + ICST_INTEGRATOR_AP_CM = 1, + ICST_INTEGRATOR_AP_SYS = 2, + ICST_INTEGRATOR_AP_PCI = 3, + ICST_INTEGRATOR_CP_CM_CORE = 4, + ICST_INTEGRATOR_CP_CM_MEM = 5, + ICST_INTEGRATOR_IM_PD1 = 6, +}; + +enum id_action { + ID_REMOVE = 0, + ID_ADD = 1, +}; + +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, +}; + +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, +}; + +enum ieee802154_filtering_level { + IEEE802154_FILTERING_NONE = 0, + IEEE802154_FILTERING_1_FCS = 1, + IEEE802154_FILTERING_2_PROMISCUOUS = 2, + IEEE802154_FILTERING_3_SCAN = 3, + IEEE802154_FILTERING_4_FRAME_FIELDS = 4, +}; + +enum ieee8021q_traffic_type { + IEEE8021Q_TT_BK = 0, + IEEE8021Q_TT_BE = 1, + IEEE8021Q_TT_EE = 2, + IEEE8021Q_TT_CA = 3, + IEEE8021Q_TT_VI = 4, + IEEE8021Q_TT_VO = 5, + IEEE8021Q_TT_IC = 6, + IEEE8021Q_TT_NC = 7, + IEEE8021Q_TT_MAX = 8, +}; + +enum ieee_attrs { + DCB_ATTR_IEEE_UNSPEC = 0, + DCB_ATTR_IEEE_ETS = 1, + DCB_ATTR_IEEE_PFC = 2, + DCB_ATTR_IEEE_APP_TABLE = 3, + DCB_ATTR_IEEE_PEER_ETS = 4, + DCB_ATTR_IEEE_PEER_PFC = 5, + DCB_ATTR_IEEE_PEER_APP = 6, + DCB_ATTR_IEEE_MAXRATE = 7, + DCB_ATTR_IEEE_QCN = 8, + DCB_ATTR_IEEE_QCN_STATS = 9, + DCB_ATTR_DCB_BUFFER = 10, + DCB_ATTR_DCB_APP_TRUST_TABLE = 11, + DCB_ATTR_DCB_REWR_TABLE = 12, + __DCB_ATTR_IEEE_MAX = 13, +}; + +enum ieee_attrs_app { + DCB_ATTR_IEEE_APP_UNSPEC = 0, + DCB_ATTR_IEEE_APP = 1, + DCB_ATTR_DCB_APP = 2, + __DCB_ATTR_IEEE_APP_MAX = 3, +}; + +enum ima_fs_flags { + IMA_FS_BUSY = 0, +}; + +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, +}; + +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, +}; + +enum imx7_src_registers { + SRC_A7RCR0 = 4, + SRC_M4RCR = 12, + SRC_ERCR = 20, + SRC_HSICPHY_RCR = 28, + SRC_USBOPHY1_RCR = 32, + SRC_USBOPHY2_RCR = 36, + SRC_MIPIPHY_RCR = 40, + SRC_PCIEPHY_RCR = 44, + SRC_DDRC_RCR = 4096, +}; + +enum imx8mm_pads { + MX8MM_PAD_RESERVE0 = 0, + MX8MM_PAD_RESERVE1 = 1, + MX8MM_PAD_RESERVE2 = 2, + MX8MM_PAD_RESERVE3 = 3, + MX8MM_PAD_RESERVE4 = 4, + MX8MM_PAD_RESERVE5 = 5, + MX8MM_PAD_RESERVE6 = 6, + MX8MM_PAD_RESERVE7 = 7, + MX8MM_PAD_RESERVE8 = 8, + MX8MM_PAD_RESERVE9 = 9, + MX8MM_IOMUXC_GPIO1_IO00 = 10, + MX8MM_IOMUXC_GPIO1_IO01 = 11, + MX8MM_IOMUXC_GPIO1_IO02 = 12, + MX8MM_IOMUXC_GPIO1_IO03 = 13, + MX8MM_IOMUXC_GPIO1_IO04 = 14, + MX8MM_IOMUXC_GPIO1_IO05 = 15, + MX8MM_IOMUXC_GPIO1_IO06 = 16, + MX8MM_IOMUXC_GPIO1_IO07 = 17, + MX8MM_IOMUXC_GPIO1_IO08 = 18, + MX8MM_IOMUXC_GPIO1_IO09 = 19, + MX8MM_IOMUXC_GPIO1_IO10 = 20, + MX8MM_IOMUXC_GPIO1_IO11 = 21, + MX8MM_IOMUXC_GPIO1_IO12 = 22, + MX8MM_IOMUXC_GPIO1_IO13 = 23, + MX8MM_IOMUXC_GPIO1_IO14 = 24, + MX8MM_IOMUXC_GPIO1_IO15 = 25, + MX8MM_IOMUXC_ENET_MDC = 26, + MX8MM_IOMUXC_ENET_MDIO = 27, + MX8MM_IOMUXC_ENET_TD3 = 28, + MX8MM_IOMUXC_ENET_TD2 = 29, + MX8MM_IOMUXC_ENET_TD1 = 30, + MX8MM_IOMUXC_ENET_TD0 = 31, + MX8MM_IOMUXC_ENET_TX_CTL = 32, + MX8MM_IOMUXC_ENET_TXC = 33, + MX8MM_IOMUXC_ENET_RX_CTL = 34, + MX8MM_IOMUXC_ENET_RXC = 35, + MX8MM_IOMUXC_ENET_RD0 = 36, + MX8MM_IOMUXC_ENET_RD1 = 37, + MX8MM_IOMUXC_ENET_RD2 = 38, + MX8MM_IOMUXC_ENET_RD3 = 39, + MX8MM_IOMUXC_SD1_CLK = 40, + MX8MM_IOMUXC_SD1_CMD = 41, + MX8MM_IOMUXC_SD1_DATA0 = 42, + MX8MM_IOMUXC_SD1_DATA1 = 43, + MX8MM_IOMUXC_SD1_DATA2 = 44, + MX8MM_IOMUXC_SD1_DATA3 = 45, + MX8MM_IOMUXC_SD1_DATA4 = 46, + MX8MM_IOMUXC_SD1_DATA5 = 47, + MX8MM_IOMUXC_SD1_DATA6 = 48, + MX8MM_IOMUXC_SD1_DATA7 = 49, + MX8MM_IOMUXC_SD1_RESET_B = 50, + MX8MM_IOMUXC_SD1_STROBE = 51, + MX8MM_IOMUXC_SD2_CD_B = 52, + MX8MM_IOMUXC_SD2_CLK = 53, + MX8MM_IOMUXC_SD2_CMD = 54, + MX8MM_IOMUXC_SD2_DATA0 = 55, + MX8MM_IOMUXC_SD2_DATA1 = 56, + MX8MM_IOMUXC_SD2_DATA2 = 57, + MX8MM_IOMUXC_SD2_DATA3 = 58, + MX8MM_IOMUXC_SD2_RESET_B = 59, + MX8MM_IOMUXC_SD2_WP = 60, + MX8MM_IOMUXC_NAND_ALE = 61, + MX8MM_IOMUXC_NAND_CE0 = 62, + MX8MM_IOMUXC_NAND_CE1 = 63, + MX8MM_IOMUXC_NAND_CE2 = 64, + MX8MM_IOMUXC_NAND_CE3 = 65, + MX8MM_IOMUXC_NAND_CLE = 66, + MX8MM_IOMUXC_NAND_DATA00 = 67, + MX8MM_IOMUXC_NAND_DATA01 = 68, + MX8MM_IOMUXC_NAND_DATA02 = 69, + MX8MM_IOMUXC_NAND_DATA03 = 70, + MX8MM_IOMUXC_NAND_DATA04 = 71, + MX8MM_IOMUXC_NAND_DATA05 = 72, + MX8MM_IOMUXC_NAND_DATA06 = 73, + MX8MM_IOMUXC_NAND_DATA07 = 74, + MX8MM_IOMUXC_NAND_DQS = 75, + MX8MM_IOMUXC_NAND_RE_B = 76, + MX8MM_IOMUXC_NAND_READY_B = 77, + MX8MM_IOMUXC_NAND_WE_B = 78, + MX8MM_IOMUXC_NAND_WP_B = 79, + MX8MM_IOMUXC_SAI5_RXFS = 80, + MX8MM_IOMUXC_SAI5_RXC = 81, + MX8MM_IOMUXC_SAI5_RXD0 = 82, + MX8MM_IOMUXC_SAI5_RXD1 = 83, + MX8MM_IOMUXC_SAI5_RXD2 = 84, + MX8MM_IOMUXC_SAI5_RXD3 = 85, + MX8MM_IOMUXC_SAI5_MCLK = 86, + MX8MM_IOMUXC_SAI1_RXFS = 87, + MX8MM_IOMUXC_SAI1_RXC = 88, + MX8MM_IOMUXC_SAI1_RXD0 = 89, + MX8MM_IOMUXC_SAI1_RXD1 = 90, + MX8MM_IOMUXC_SAI1_RXD2 = 91, + MX8MM_IOMUXC_SAI1_RXD3 = 92, + MX8MM_IOMUXC_SAI1_RXD4 = 93, + MX8MM_IOMUXC_SAI1_RXD5 = 94, + MX8MM_IOMUXC_SAI1_RXD6 = 95, + MX8MM_IOMUXC_SAI1_RXD7 = 96, + MX8MM_IOMUXC_SAI1_TXFS = 97, + MX8MM_IOMUXC_SAI1_TXC = 98, + MX8MM_IOMUXC_SAI1_TXD0 = 99, + MX8MM_IOMUXC_SAI1_TXD1 = 100, + MX8MM_IOMUXC_SAI1_TXD2 = 101, + MX8MM_IOMUXC_SAI1_TXD3 = 102, + MX8MM_IOMUXC_SAI1_TXD4 = 103, + MX8MM_IOMUXC_SAI1_TXD5 = 104, + MX8MM_IOMUXC_SAI1_TXD6 = 105, + MX8MM_IOMUXC_SAI1_TXD7 = 106, + MX8MM_IOMUXC_SAI1_MCLK = 107, + MX8MM_IOMUXC_SAI2_RXFS = 108, + MX8MM_IOMUXC_SAI2_RXC = 109, + MX8MM_IOMUXC_SAI2_RXD0 = 110, + MX8MM_IOMUXC_SAI2_TXFS = 111, + MX8MM_IOMUXC_SAI2_TXC = 112, + MX8MM_IOMUXC_SAI2_TXD0 = 113, + MX8MM_IOMUXC_SAI2_MCLK = 114, + MX8MM_IOMUXC_SAI3_RXFS = 115, + MX8MM_IOMUXC_SAI3_RXC = 116, + MX8MM_IOMUXC_SAI3_RXD = 117, + MX8MM_IOMUXC_SAI3_TXFS = 118, + MX8MM_IOMUXC_SAI3_TXC = 119, + MX8MM_IOMUXC_SAI3_TXD = 120, + MX8MM_IOMUXC_SAI3_MCLK = 121, + MX8MM_IOMUXC_SPDIF_TX = 122, + MX8MM_IOMUXC_SPDIF_RX = 123, + MX8MM_IOMUXC_SPDIF_EXT_CLK = 124, + MX8MM_IOMUXC_ECSPI1_SCLK = 125, + MX8MM_IOMUXC_ECSPI1_MOSI = 126, + MX8MM_IOMUXC_ECSPI1_MISO = 127, + MX8MM_IOMUXC_ECSPI1_SS0 = 128, + MX8MM_IOMUXC_ECSPI2_SCLK = 129, + MX8MM_IOMUXC_ECSPI2_MOSI = 130, + MX8MM_IOMUXC_ECSPI2_MISO = 131, + MX8MM_IOMUXC_ECSPI2_SS0 = 132, + MX8MM_IOMUXC_I2C1_SCL = 133, + MX8MM_IOMUXC_I2C1_SDA = 134, + MX8MM_IOMUXC_I2C2_SCL = 135, + MX8MM_IOMUXC_I2C2_SDA = 136, + MX8MM_IOMUXC_I2C3_SCL = 137, + MX8MM_IOMUXC_I2C3_SDA = 138, + MX8MM_IOMUXC_I2C4_SCL = 139, + MX8MM_IOMUXC_I2C4_SDA = 140, + MX8MM_IOMUXC_UART1_RXD = 141, + MX8MM_IOMUXC_UART1_TXD = 142, + MX8MM_IOMUXC_UART2_RXD = 143, + MX8MM_IOMUXC_UART2_TXD = 144, + MX8MM_IOMUXC_UART3_RXD = 145, + MX8MM_IOMUXC_UART3_TXD = 146, + MX8MM_IOMUXC_UART4_RXD = 147, + MX8MM_IOMUXC_UART4_TXD = 148, +}; + +enum imx8mn_pads { + MX8MN_PAD_RESERVE0 = 0, + MX8MN_PAD_RESERVE1 = 1, + MX8MN_PAD_RESERVE2 = 2, + MX8MN_PAD_RESERVE3 = 3, + MX8MN_PAD_RESERVE4 = 4, + MX8MN_PAD_RESERVE5 = 5, + MX8MN_PAD_RESERVE6 = 6, + MX8MN_PAD_RESERVE7 = 7, + MX8MN_IOMUXC_BOOT_MODE2 = 8, + MX8MN_IOMUXC_BOOT_MODE3 = 9, + MX8MN_IOMUXC_GPIO1_IO00 = 10, + MX8MN_IOMUXC_GPIO1_IO01 = 11, + MX8MN_IOMUXC_GPIO1_IO02 = 12, + MX8MN_IOMUXC_GPIO1_IO03 = 13, + MX8MN_IOMUXC_GPIO1_IO04 = 14, + MX8MN_IOMUXC_GPIO1_IO05 = 15, + MX8MN_IOMUXC_GPIO1_IO06 = 16, + MX8MN_IOMUXC_GPIO1_IO07 = 17, + MX8MN_IOMUXC_GPIO1_IO08 = 18, + MX8MN_IOMUXC_GPIO1_IO09 = 19, + MX8MN_IOMUXC_GPIO1_IO10 = 20, + MX8MN_IOMUXC_GPIO1_IO11 = 21, + MX8MN_IOMUXC_GPIO1_IO12 = 22, + MX8MN_IOMUXC_GPIO1_IO13 = 23, + MX8MN_IOMUXC_GPIO1_IO14 = 24, + MX8MN_IOMUXC_GPIO1_IO15 = 25, + MX8MN_IOMUXC_ENET_MDC = 26, + MX8MN_IOMUXC_ENET_MDIO = 27, + MX8MN_IOMUXC_ENET_TD3 = 28, + MX8MN_IOMUXC_ENET_TD2 = 29, + MX8MN_IOMUXC_ENET_TD1 = 30, + MX8MN_IOMUXC_ENET_TD0 = 31, + MX8MN_IOMUXC_ENET_TX_CTL = 32, + MX8MN_IOMUXC_ENET_TXC = 33, + MX8MN_IOMUXC_ENET_RX_CTL = 34, + MX8MN_IOMUXC_ENET_RXC = 35, + MX8MN_IOMUXC_ENET_RD0 = 36, + MX8MN_IOMUXC_ENET_RD1 = 37, + MX8MN_IOMUXC_ENET_RD2 = 38, + MX8MN_IOMUXC_ENET_RD3 = 39, + MX8MN_IOMUXC_SD1_CLK = 40, + MX8MN_IOMUXC_SD1_CMD = 41, + MX8MN_IOMUXC_SD1_DATA0 = 42, + MX8MN_IOMUXC_SD1_DATA1 = 43, + MX8MN_IOMUXC_SD1_DATA2 = 44, + MX8MN_IOMUXC_SD1_DATA3 = 45, + MX8MN_IOMUXC_SD1_DATA4 = 46, + MX8MN_IOMUXC_SD1_DATA5 = 47, + MX8MN_IOMUXC_SD1_DATA6 = 48, + MX8MN_IOMUXC_SD1_DATA7 = 49, + MX8MN_IOMUXC_SD1_RESET_B = 50, + MX8MN_IOMUXC_SD1_STROBE = 51, + MX8MN_IOMUXC_SD2_CD_B = 52, + MX8MN_IOMUXC_SD2_CLK = 53, + MX8MN_IOMUXC_SD2_CMD = 54, + MX8MN_IOMUXC_SD2_DATA0 = 55, + MX8MN_IOMUXC_SD2_DATA1 = 56, + MX8MN_IOMUXC_SD2_DATA2 = 57, + MX8MN_IOMUXC_SD2_DATA3 = 58, + MX8MN_IOMUXC_SD2_RESET_B = 59, + MX8MN_IOMUXC_SD2_WP = 60, + MX8MN_IOMUXC_NAND_ALE = 61, + MX8MN_IOMUXC_NAND_CE0 = 62, + MX8MN_IOMUXC_NAND_CE1 = 63, + MX8MN_IOMUXC_NAND_CE2 = 64, + MX8MN_IOMUXC_NAND_CE3 = 65, + MX8MN_IOMUXC_NAND_CLE = 66, + MX8MN_IOMUXC_NAND_DATA00 = 67, + MX8MN_IOMUXC_NAND_DATA01 = 68, + MX8MN_IOMUXC_NAND_DATA02 = 69, + MX8MN_IOMUXC_NAND_DATA03 = 70, + MX8MN_IOMUXC_NAND_DATA04 = 71, + MX8MN_IOMUXC_NAND_DATA05 = 72, + MX8MN_IOMUXC_NAND_DATA06 = 73, + MX8MN_IOMUXC_NAND_DATA07 = 74, + MX8MN_IOMUXC_NAND_DQS = 75, + MX8MN_IOMUXC_NAND_RE_B = 76, + MX8MN_IOMUXC_NAND_READY_B = 77, + MX8MN_IOMUXC_NAND_WE_B = 78, + MX8MN_IOMUXC_NAND_WP_B = 79, + MX8MN_IOMUXC_SAI5_RXFS = 80, + MX8MN_IOMUXC_SAI5_RXC = 81, + MX8MN_IOMUXC_SAI5_RXD0 = 82, + MX8MN_IOMUXC_SAI5_RXD1 = 83, + MX8MN_IOMUXC_SAI5_RXD2 = 84, + MX8MN_IOMUXC_SAI5_RXD3 = 85, + MX8MN_IOMUXC_SAI5_MCLK = 86, + MX8MN_IOMUXC_SAI1_RXFS = 87, + MX8MN_IOMUXC_SAI1_RXC = 88, + MX8MN_IOMUXC_SAI1_RXD0 = 89, + MX8MN_IOMUXC_SAI1_RXD1 = 90, + MX8MN_IOMUXC_SAI1_RXD2 = 91, + MX8MN_IOMUXC_SAI1_RXD3 = 92, + MX8MN_IOMUXC_SAI1_RXD4 = 93, + MX8MN_IOMUXC_SAI1_RXD5 = 94, + MX8MN_IOMUXC_SAI1_RXD6 = 95, + MX8MN_IOMUXC_SAI1_RXD7 = 96, + MX8MN_IOMUXC_SAI1_TXFS = 97, + MX8MN_IOMUXC_SAI1_TXC = 98, + MX8MN_IOMUXC_SAI1_TXD0 = 99, + MX8MN_IOMUXC_SAI1_TXD1 = 100, + MX8MN_IOMUXC_SAI1_TXD2 = 101, + MX8MN_IOMUXC_SAI1_TXD3 = 102, + MX8MN_IOMUXC_SAI1_TXD4 = 103, + MX8MN_IOMUXC_SAI1_TXD5 = 104, + MX8MN_IOMUXC_SAI1_TXD6 = 105, + MX8MN_IOMUXC_SAI1_TXD7 = 106, + MX8MN_IOMUXC_SAI1_MCLK = 107, + MX8MN_IOMUXC_SAI2_RXFS = 108, + MX8MN_IOMUXC_SAI2_RXC = 109, + MX8MN_IOMUXC_SAI2_RXD0 = 110, + MX8MN_IOMUXC_SAI2_TXFS = 111, + MX8MN_IOMUXC_SAI2_TXC = 112, + MX8MN_IOMUXC_SAI2_TXD0 = 113, + MX8MN_IOMUXC_SAI2_MCLK = 114, + MX8MN_IOMUXC_SAI3_RXFS = 115, + MX8MN_IOMUXC_SAI3_RXC = 116, + MX8MN_IOMUXC_SAI3_RXD = 117, + MX8MN_IOMUXC_SAI3_TXFS = 118, + MX8MN_IOMUXC_SAI3_TXC = 119, + MX8MN_IOMUXC_SAI3_TXD = 120, + MX8MN_IOMUXC_SAI3_MCLK = 121, + MX8MN_IOMUXC_SPDIF_TX = 122, + MX8MN_IOMUXC_SPDIF_RX = 123, + MX8MN_IOMUXC_SPDIF_EXT_CLK = 124, + MX8MN_IOMUXC_ECSPI1_SCLK = 125, + MX8MN_IOMUXC_ECSPI1_MOSI = 126, + MX8MN_IOMUXC_ECSPI1_MISO = 127, + MX8MN_IOMUXC_ECSPI1_SS0 = 128, + MX8MN_IOMUXC_ECSPI2_SCLK = 129, + MX8MN_IOMUXC_ECSPI2_MOSI = 130, + MX8MN_IOMUXC_ECSPI2_MISO = 131, + MX8MN_IOMUXC_ECSPI2_SS0 = 132, + MX8MN_IOMUXC_I2C1_SCL = 133, + MX8MN_IOMUXC_I2C1_SDA = 134, + MX8MN_IOMUXC_I2C2_SCL = 135, + MX8MN_IOMUXC_I2C2_SDA = 136, + MX8MN_IOMUXC_I2C3_SCL = 137, + MX8MN_IOMUXC_I2C3_SDA = 138, + MX8MN_IOMUXC_I2C4_SCL = 139, + MX8MN_IOMUXC_I2C4_SDA = 140, + MX8MN_IOMUXC_UART1_RXD = 141, + MX8MN_IOMUXC_UART1_TXD = 142, + MX8MN_IOMUXC_UART2_RXD = 143, + MX8MN_IOMUXC_UART2_TXD = 144, + MX8MN_IOMUXC_UART3_RXD = 145, + MX8MN_IOMUXC_UART3_TXD = 146, + MX8MN_IOMUXC_UART4_RXD = 147, + MX8MN_IOMUXC_UART4_TXD = 148, +}; + +enum imx8mp_pads { + MX8MP_IOMUXC_RESERVE0 = 0, + MX8MP_IOMUXC_RESERVE1 = 1, + MX8MP_IOMUXC_RESERVE2 = 2, + MX8MP_IOMUXC_RESERVE3 = 3, + MX8MP_IOMUXC_RESERVE4 = 4, + MX8MP_IOMUXC_GPIO1_IO00 = 5, + MX8MP_IOMUXC_GPIO1_IO01 = 6, + MX8MP_IOMUXC_GPIO1_IO02 = 7, + MX8MP_IOMUXC_GPIO1_IO03 = 8, + MX8MP_IOMUXC_GPIO1_IO04 = 9, + MX8MP_IOMUXC_GPIO1_IO05 = 10, + MX8MP_IOMUXC_GPIO1_IO06 = 11, + MX8MP_IOMUXC_GPIO1_IO07 = 12, + MX8MP_IOMUXC_GPIO1_IO08 = 13, + MX8MP_IOMUXC_GPIO1_IO09 = 14, + MX8MP_IOMUXC_GPIO1_IO10 = 15, + MX8MP_IOMUXC_GPIO1_IO11 = 16, + MX8MP_IOMUXC_GPIO1_IO12 = 17, + MX8MP_IOMUXC_GPIO1_IO13 = 18, + MX8MP_IOMUXC_GPIO1_IO14 = 19, + MX8MP_IOMUXC_GPIO1_IO15 = 20, + MX8MP_IOMUXC_ENET_MDC = 21, + MX8MP_IOMUXC_ENET_MDIO = 22, + MX8MP_IOMUXC_ENET_TD3 = 23, + MX8MP_IOMUXC_ENET_TD2 = 24, + MX8MP_IOMUXC_ENET_TD1 = 25, + MX8MP_IOMUXC_ENET_TD0 = 26, + MX8MP_IOMUXC_ENET_TX_CTL = 27, + MX8MP_IOMUXC_ENET_TXC = 28, + MX8MP_IOMUXC_ENET_RX_CTL = 29, + MX8MP_IOMUXC_ENET_RXC = 30, + MX8MP_IOMUXC_ENET_RD0 = 31, + MX8MP_IOMUXC_ENET_RD1 = 32, + MX8MP_IOMUXC_ENET_RD2 = 33, + MX8MP_IOMUXC_ENET_RD3 = 34, + MX8MP_IOMUXC_SD1_CLK = 35, + MX8MP_IOMUXC_SD1_CMD = 36, + MX8MP_IOMUXC_SD1_DATA0 = 37, + MX8MP_IOMUXC_SD1_DATA1 = 38, + MX8MP_IOMUXC_SD1_DATA2 = 39, + MX8MP_IOMUXC_SD1_DATA3 = 40, + MX8MP_IOMUXC_SD1_DATA4 = 41, + MX8MP_IOMUXC_SD1_DATA5 = 42, + MX8MP_IOMUXC_SD1_DATA6 = 43, + MX8MP_IOMUXC_SD1_DATA7 = 44, + MX8MP_IOMUXC_SD1_RESET_B = 45, + MX8MP_IOMUXC_SD1_STROBE = 46, + MX8MP_IOMUXC_SD2_CD_B = 47, + MX8MP_IOMUXC_SD2_CLK = 48, + MX8MP_IOMUXC_SD2_CMD = 49, + MX8MP_IOMUXC_SD2_DATA0 = 50, + MX8MP_IOMUXC_SD2_DATA1 = 51, + MX8MP_IOMUXC_SD2_DATA2 = 52, + MX8MP_IOMUXC_SD2_DATA3 = 53, + MX8MP_IOMUXC_SD2_RESET_B = 54, + MX8MP_IOMUXC_SD2_WP = 55, + MX8MP_IOMUXC_NAND_ALE = 56, + MX8MP_IOMUXC_NAND_CE0_B = 57, + MX8MP_IOMUXC_NAND_CE1_B = 58, + MX8MP_IOMUXC_NAND_CE2_B = 59, + MX8MP_IOMUXC_NAND_CE3_B = 60, + MX8MP_IOMUXC_NAND_CLE = 61, + MX8MP_IOMUXC_NAND_DATA00 = 62, + MX8MP_IOMUXC_NAND_DATA01 = 63, + MX8MP_IOMUXC_NAND_DATA02 = 64, + MX8MP_IOMUXC_NAND_DATA03 = 65, + MX8MP_IOMUXC_NAND_DATA04 = 66, + MX8MP_IOMUXC_NAND_DATA05 = 67, + MX8MP_IOMUXC_NAND_DATA06 = 68, + MX8MP_IOMUXC_NAND_DATA07 = 69, + MX8MP_IOMUXC_NAND_DQS = 70, + MX8MP_IOMUXC_NAND_RE_B = 71, + MX8MP_IOMUXC_NAND_READY_B = 72, + MX8MP_IOMUXC_NAND_WE_B = 73, + MX8MP_IOMUXC_NAND_WP_B = 74, + MX8MP_IOMUXC_SAI5_RXFS = 75, + MX8MP_IOMUXC_SAI5_RXC = 76, + MX8MP_IOMUXC_SAI5_RXD0 = 77, + MX8MP_IOMUXC_SAI5_RXD1 = 78, + MX8MP_IOMUXC_SAI5_RXD2 = 79, + MX8MP_IOMUXC_SAI5_RXD3 = 80, + MX8MP_IOMUXC_SAI5_MCLK = 81, + MX8MP_IOMUXC_SAI1_RXFS = 82, + MX8MP_IOMUXC_SAI1_RXC = 83, + MX8MP_IOMUXC_SAI1_RXD0 = 84, + MX8MP_IOMUXC_SAI1_RXD1 = 85, + MX8MP_IOMUXC_SAI1_RXD2 = 86, + MX8MP_IOMUXC_SAI1_RXD3 = 87, + MX8MP_IOMUXC_SAI1_RXD4 = 88, + MX8MP_IOMUXC_SAI1_RXD5 = 89, + MX8MP_IOMUXC_SAI1_RXD6 = 90, + MX8MP_IOMUXC_SAI1_RXD7 = 91, + MX8MP_IOMUXC_SAI1_TXFS = 92, + MX8MP_IOMUXC_SAI1_TXC = 93, + MX8MP_IOMUXC_SAI1_TXD0 = 94, + MX8MP_IOMUXC_SAI1_TXD1 = 95, + MX8MP_IOMUXC_SAI1_TXD2 = 96, + MX8MP_IOMUXC_SAI1_TXD3 = 97, + MX8MP_IOMUXC_SAI1_TXD4 = 98, + MX8MP_IOMUXC_SAI1_TXD5 = 99, + MX8MP_IOMUXC_SAI1_TXD6 = 100, + MX8MP_IOMUXC_SAI1_TXD7 = 101, + MX8MP_IOMUXC_SAI1_MCLK = 102, + MX8MP_IOMUXC_SAI2_RXFS = 103, + MX8MP_IOMUXC_SAI2_RXC = 104, + MX8MP_IOMUXC_SAI2_RXD0 = 105, + MX8MP_IOMUXC_SAI2_TXFS = 106, + MX8MP_IOMUXC_SAI2_TXC = 107, + MX8MP_IOMUXC_SAI2_TXD0 = 108, + MX8MP_IOMUXC_SAI2_MCLK = 109, + MX8MP_IOMUXC_SAI3_RXFS = 110, + MX8MP_IOMUXC_SAI3_RXC = 111, + MX8MP_IOMUXC_SAI3_RXD = 112, + MX8MP_IOMUXC_SAI3_TXFS = 113, + MX8MP_IOMUXC_SAI3_TXC = 114, + MX8MP_IOMUXC_SAI3_TXD = 115, + MX8MP_IOMUXC_SAI3_MCLK = 116, + MX8MP_IOMUXC_SPDIF_TX = 117, + MX8MP_IOMUXC_SPDIF_RX = 118, + MX8MP_IOMUXC_SPDIF_EXT_CLK = 119, + MX8MP_IOMUXC_ECSPI1_SCLK = 120, + MX8MP_IOMUXC_ECSPI1_MOSI = 121, + MX8MP_IOMUXC_ECSPI1_MISO = 122, + MX8MP_IOMUXC_ECSPI1_SS0 = 123, + MX8MP_IOMUXC_ECSPI2_SCLK = 124, + MX8MP_IOMUXC_ECSPI2_MOSI = 125, + MX8MP_IOMUXC_ECSPI2_MISO = 126, + MX8MP_IOMUXC_ECSPI2_SS0 = 127, + MX8MP_IOMUXC_I2C1_SCL = 128, + MX8MP_IOMUXC_I2C1_SDA = 129, + MX8MP_IOMUXC_I2C2_SCL = 130, + MX8MP_IOMUXC_I2C2_SDA = 131, + MX8MP_IOMUXC_I2C3_SCL = 132, + MX8MP_IOMUXC_I2C3_SDA = 133, + MX8MP_IOMUXC_I2C4_SCL = 134, + MX8MP_IOMUXC_I2C4_SDA = 135, + MX8MP_IOMUXC_UART1_RXD = 136, + MX8MP_IOMUXC_UART1_TXD = 137, + MX8MP_IOMUXC_UART2_RXD = 138, + MX8MP_IOMUXC_UART2_TXD = 139, + MX8MP_IOMUXC_UART3_RXD = 140, + MX8MP_IOMUXC_UART3_TXD = 141, + MX8MP_IOMUXC_UART4_RXD = 142, + MX8MP_IOMUXC_UART4_TXD = 143, + MX8MP_IOMUXC_HDMI_DDC_SCL = 144, + MX8MP_IOMUXC_HDMI_DDC_SDA = 145, + MX8MP_IOMUXC_HDMI_CEC = 146, + MX8MP_IOMUXC_HDMI_HPD = 147, +}; + +enum imx8mp_src_registers { + SRC_SUPERMIX_RCR = 24, + SRC_AUDIOMIX_RCR = 28, + SRC_MLMIX_RCR = 40, + SRC_GPU2D_RCR = 56, + SRC_GPU3D_RCR = 60, + SRC_VPU_G1_RCR = 72, + SRC_VPU_G2_RCR = 76, + SRC_VPUVC8KE_RCR = 80, + SRC_NOC_RCR = 84, +}; + +enum imx8mq_pads { + MX8MQ_PAD_RESERVE0 = 0, + MX8MQ_PAD_RESERVE1 = 1, + MX8MQ_PAD_RESERVE2 = 2, + MX8MQ_PAD_RESERVE3 = 3, + MX8MQ_PAD_RESERVE4 = 4, + MX8MQ_IOMUXC_PMIC_STBY_REQ_CCMSRCGPCMIX = 5, + MX8MQ_IOMUXC_PMIC_ON_REQ_SNVSMIX = 6, + MX8MQ_IOMUXC_ONOFF_SNVSMIX = 7, + MX8MQ_IOMUXC_POR_B_SNVSMIX = 8, + MX8MQ_IOMUXC_RTC_RESET_B_SNVSMIX = 9, + MX8MQ_IOMUXC_GPIO1_IO00 = 10, + MX8MQ_IOMUXC_GPIO1_IO01 = 11, + MX8MQ_IOMUXC_GPIO1_IO02 = 12, + MX8MQ_IOMUXC_GPIO1_IO03 = 13, + MX8MQ_IOMUXC_GPIO1_IO04 = 14, + MX8MQ_IOMUXC_GPIO1_IO05 = 15, + MX8MQ_IOMUXC_GPIO1_IO06 = 16, + MX8MQ_IOMUXC_GPIO1_IO07 = 17, + MX8MQ_IOMUXC_GPIO1_IO08 = 18, + MX8MQ_IOMUXC_GPIO1_IO09 = 19, + MX8MQ_IOMUXC_GPIO1_IO10 = 20, + MX8MQ_IOMUXC_GPIO1_IO11 = 21, + MX8MQ_IOMUXC_GPIO1_IO12 = 22, + MX8MQ_IOMUXC_GPIO1_IO13 = 23, + MX8MQ_IOMUXC_GPIO1_IO14 = 24, + MX8MQ_IOMUXC_GPIO1_IO15 = 25, + MX8MQ_IOMUXC_ENET_MDC = 26, + MX8MQ_IOMUXC_ENET_MDIO = 27, + MX8MQ_IOMUXC_ENET_TD3 = 28, + MX8MQ_IOMUXC_ENET_TD2 = 29, + MX8MQ_IOMUXC_ENET_TD1 = 30, + MX8MQ_IOMUXC_ENET_TD0 = 31, + MX8MQ_IOMUXC_ENET_TX_CTL = 32, + MX8MQ_IOMUXC_ENET_TXC = 33, + MX8MQ_IOMUXC_ENET_RX_CTL = 34, + MX8MQ_IOMUXC_ENET_RXC = 35, + MX8MQ_IOMUXC_ENET_RD0 = 36, + MX8MQ_IOMUXC_ENET_RD1 = 37, + MX8MQ_IOMUXC_ENET_RD2 = 38, + MX8MQ_IOMUXC_ENET_RD3 = 39, + MX8MQ_IOMUXC_SD1_CLK = 40, + MX8MQ_IOMUXC_SD1_CMD = 41, + MX8MQ_IOMUXC_SD1_DATA0 = 42, + MX8MQ_IOMUXC_SD1_DATA1 = 43, + MX8MQ_IOMUXC_SD1_DATA2 = 44, + MX8MQ_IOMUXC_SD1_DATA3 = 45, + MX8MQ_IOMUXC_SD1_DATA4 = 46, + MX8MQ_IOMUXC_SD1_DATA5 = 47, + MX8MQ_IOMUXC_SD1_DATA6 = 48, + MX8MQ_IOMUXC_SD1_DATA7 = 49, + MX8MQ_IOMUXC_SD1_RESET_B = 50, + MX8MQ_IOMUXC_SD1_STROBE = 51, + MX8MQ_IOMUXC_SD2_CD_B = 52, + MX8MQ_IOMUXC_SD2_CLK = 53, + MX8MQ_IOMUXC_SD2_CMD = 54, + MX8MQ_IOMUXC_SD2_DATA0 = 55, + MX8MQ_IOMUXC_SD2_DATA1 = 56, + MX8MQ_IOMUXC_SD2_DATA2 = 57, + MX8MQ_IOMUXC_SD2_DATA3 = 58, + MX8MQ_IOMUXC_SD2_RESET_B = 59, + MX8MQ_IOMUXC_SD2_WP = 60, + MX8MQ_IOMUXC_NAND_ALE = 61, + MX8MQ_IOMUXC_NAND_CE0_B = 62, + MX8MQ_IOMUXC_NAND_CE1_B = 63, + MX8MQ_IOMUXC_NAND_CE2_B = 64, + MX8MQ_IOMUXC_NAND_CE3_B = 65, + MX8MQ_IOMUXC_NAND_CLE = 66, + MX8MQ_IOMUXC_NAND_DATA00 = 67, + MX8MQ_IOMUXC_NAND_DATA01 = 68, + MX8MQ_IOMUXC_NAND_DATA02 = 69, + MX8MQ_IOMUXC_NAND_DATA03 = 70, + MX8MQ_IOMUXC_NAND_DATA04 = 71, + MX8MQ_IOMUXC_NAND_DATA05 = 72, + MX8MQ_IOMUXC_NAND_DATA06 = 73, + MX8MQ_IOMUXC_NAND_DATA07 = 74, + MX8MQ_IOMUXC_NAND_DQS = 75, + MX8MQ_IOMUXC_NAND_RE_B = 76, + MX8MQ_IOMUXC_NAND_READY_B = 77, + MX8MQ_IOMUXC_NAND_WE_B = 78, + MX8MQ_IOMUXC_NAND_WP_B = 79, + MX8MQ_IOMUXC_SAI5_RXFS = 80, + MX8MQ_IOMUXC_SAI5_RXC = 81, + MX8MQ_IOMUXC_SAI5_RXD0 = 82, + MX8MQ_IOMUXC_SAI5_RXD1 = 83, + MX8MQ_IOMUXC_SAI5_RXD2 = 84, + MX8MQ_IOMUXC_SAI5_RXD3 = 85, + MX8MQ_IOMUXC_SAI5_MCLK = 86, + MX8MQ_IOMUXC_SAI1_RXFS = 87, + MX8MQ_IOMUXC_SAI1_RXC = 88, + MX8MQ_IOMUXC_SAI1_RXD0 = 89, + MX8MQ_IOMUXC_SAI1_RXD1 = 90, + MX8MQ_IOMUXC_SAI1_RXD2 = 91, + MX8MQ_IOMUXC_SAI1_RXD3 = 92, + MX8MQ_IOMUXC_SAI1_RXD4 = 93, + MX8MQ_IOMUXC_SAI1_RXD5 = 94, + MX8MQ_IOMUXC_SAI1_RXD6 = 95, + MX8MQ_IOMUXC_SAI1_RXD7 = 96, + MX8MQ_IOMUXC_SAI1_TXFS = 97, + MX8MQ_IOMUXC_SAI1_TXC = 98, + MX8MQ_IOMUXC_SAI1_TXD0 = 99, + MX8MQ_IOMUXC_SAI1_TXD1 = 100, + MX8MQ_IOMUXC_SAI1_TXD2 = 101, + MX8MQ_IOMUXC_SAI1_TXD3 = 102, + MX8MQ_IOMUXC_SAI1_TXD4 = 103, + MX8MQ_IOMUXC_SAI1_TXD5 = 104, + MX8MQ_IOMUXC_SAI1_TXD6 = 105, + MX8MQ_IOMUXC_SAI1_TXD7 = 106, + MX8MQ_IOMUXC_SAI1_MCLK = 107, + MX8MQ_IOMUXC_SAI2_RXFS = 108, + MX8MQ_IOMUXC_SAI2_RXC = 109, + MX8MQ_IOMUXC_SAI2_RXD0 = 110, + MX8MQ_IOMUXC_SAI2_TXFS = 111, + MX8MQ_IOMUXC_SAI2_TXC = 112, + MX8MQ_IOMUXC_SAI2_TXD0 = 113, + MX8MQ_IOMUXC_SAI2_MCLK = 114, + MX8MQ_IOMUXC_SAI3_RXFS = 115, + MX8MQ_IOMUXC_SAI3_RXC = 116, + MX8MQ_IOMUXC_SAI3_RXD = 117, + MX8MQ_IOMUXC_SAI3_TXFS = 118, + MX8MQ_IOMUXC_SAI3_TXC = 119, + MX8MQ_IOMUXC_SAI3_TXD = 120, + MX8MQ_IOMUXC_SAI3_MCLK = 121, + MX8MQ_IOMUXC_SPDIF_TX = 122, + MX8MQ_IOMUXC_SPDIF_RX = 123, + MX8MQ_IOMUXC_SPDIF_EXT_CLK = 124, + MX8MQ_IOMUXC_ECSPI1_SCLK = 125, + MX8MQ_IOMUXC_ECSPI1_MOSI = 126, + MX8MQ_IOMUXC_ECSPI1_MISO = 127, + MX8MQ_IOMUXC_ECSPI1_SS0 = 128, + MX8MQ_IOMUXC_ECSPI2_SCLK = 129, + MX8MQ_IOMUXC_ECSPI2_MOSI = 130, + MX8MQ_IOMUXC_ECSPI2_MISO = 131, + MX8MQ_IOMUXC_ECSPI2_SS0 = 132, + MX8MQ_IOMUXC_I2C1_SCL = 133, + MX8MQ_IOMUXC_I2C1_SDA = 134, + MX8MQ_IOMUXC_I2C2_SCL = 135, + MX8MQ_IOMUXC_I2C2_SDA = 136, + MX8MQ_IOMUXC_I2C3_SCL = 137, + MX8MQ_IOMUXC_I2C3_SDA = 138, + MX8MQ_IOMUXC_I2C4_SCL = 139, + MX8MQ_IOMUXC_I2C4_SDA = 140, + MX8MQ_IOMUXC_UART1_RXD = 141, + MX8MQ_IOMUXC_UART1_TXD = 142, + MX8MQ_IOMUXC_UART2_RXD = 143, + MX8MQ_IOMUXC_UART2_TXD = 144, + MX8MQ_IOMUXC_UART3_RXD = 145, + MX8MQ_IOMUXC_UART3_TXD = 146, + MX8MQ_IOMUXC_UART4_RXD = 147, + MX8MQ_IOMUXC_UART4_TXD = 148, +}; + +enum imx8mq_src_registers { + SRC_A53RCR0 = 4, + SRC_HDMI_RCR = 48, + SRC_DISP_RCR = 52, + SRC_GPU_RCR = 64, + SRC_VPU_RCR = 68, + SRC_PCIE2_RCR = 72, + SRC_MIPIPHY1_RCR = 76, + SRC_MIPIPHY2_RCR = 80, + SRC_DDRC2_RCR = 4100, +}; + +enum imx_misc_func { + IMX_SC_MISC_FUNC_UNKNOWN = 0, + IMX_SC_MISC_FUNC_SET_CONTROL = 1, + IMX_SC_MISC_FUNC_GET_CONTROL = 2, + IMX_SC_MISC_FUNC_SET_MAX_DMA_GROUP = 4, + IMX_SC_MISC_FUNC_SET_DMA_GROUP = 5, + IMX_SC_MISC_FUNC_SECO_IMAGE_LOAD = 8, + IMX_SC_MISC_FUNC_SECO_AUTHENTICATE = 9, + IMX_SC_MISC_FUNC_DEBUG_OUT = 10, + IMX_SC_MISC_FUNC_WAVEFORM_CAPTURE = 6, + IMX_SC_MISC_FUNC_BUILD_INFO = 15, + IMX_SC_MISC_FUNC_UNIQUE_ID = 19, + IMX_SC_MISC_FUNC_SET_ARI = 3, + IMX_SC_MISC_FUNC_BOOT_STATUS = 7, + IMX_SC_MISC_FUNC_BOOT_DONE = 14, + IMX_SC_MISC_FUNC_OTP_FUSE_READ = 11, + IMX_SC_MISC_FUNC_OTP_FUSE_WRITE = 17, + IMX_SC_MISC_FUNC_SET_TEMP = 12, + IMX_SC_MISC_FUNC_GET_TEMP = 13, + IMX_SC_MISC_FUNC_GET_BOOT_DEV = 16, + IMX_SC_MISC_FUNC_GET_BUTTON_STATUS = 18, +}; + +enum imx_pcie_variants { + IMX6Q = 0, + IMX6SX = 1, + IMX6QP = 2, + IMX7D = 3, + IMX8MQ = 4, + IMX8MM = 5, + IMX8MP = 6, + IMX8Q = 7, + IMX95 = 8, + IMX8MQ_EP = 9, + IMX8MM_EP = 10, + IMX8MP_EP = 11, + IMX8Q_EP = 12, + IMX95_EP = 13, +}; + +enum imx_pfdv2_type { + IMX_PFDV2_IMX7ULP = 0, + IMX_PFDV2_IMX8ULP = 1, +}; + +enum imx_pll14xx_type { + PLL_1416X = 0, + PLL_1443X = 1, +}; + +enum imx_pllv1_type { + IMX_PLLV1_IMX1 = 0, + IMX_PLLV1_IMX21 = 1, + IMX_PLLV1_IMX25 = 2, + IMX_PLLV1_IMX27 = 3, + IMX_PLLV1_IMX31 = 4, + IMX_PLLV1_IMX35 = 5, +}; + +enum imx_pllv3_type { + IMX_PLLV3_GENERIC = 0, + IMX_PLLV3_SYS = 1, + IMX_PLLV3_USB = 2, + IMX_PLLV3_USB_VF610 = 3, + IMX_PLLV3_AV = 4, + IMX_PLLV3_ENET = 5, + IMX_PLLV3_ENET_IMX7 = 6, + IMX_PLLV3_SYS_VF610 = 7, + IMX_PLLV3_DDR_IMX7 = 8, + IMX_PLLV3_AV_IMX7 = 9, +}; + +enum imx_pllv4_type { + IMX_PLLV4_IMX7ULP = 0, + IMX_PLLV4_IMX8ULP = 1, + IMX_PLLV4_IMX8ULP_1GHZ = 2, +}; + +enum imx_sc_error_codes { + IMX_SC_ERR_NONE = 0, + IMX_SC_ERR_VERSION = 1, + IMX_SC_ERR_CONFIG = 2, + IMX_SC_ERR_PARM = 3, + IMX_SC_ERR_NOACCESS = 4, + IMX_SC_ERR_LOCKED = 5, + IMX_SC_ERR_UNAVAILABLE = 6, + IMX_SC_ERR_NOTFOUND = 7, + IMX_SC_ERR_NOPOWER = 8, + IMX_SC_ERR_IPC = 9, + IMX_SC_ERR_BUSY = 10, + IMX_SC_ERR_FAIL = 11, + IMX_SC_ERR_LAST = 12, +}; + +enum imx_sc_pm_func { + IMX_SC_PM_FUNC_UNKNOWN = 0, + IMX_SC_PM_FUNC_SET_SYS_POWER_MODE = 19, + IMX_SC_PM_FUNC_SET_PARTITION_POWER_MODE = 1, + IMX_SC_PM_FUNC_GET_SYS_POWER_MODE = 2, + IMX_SC_PM_FUNC_SET_RESOURCE_POWER_MODE = 3, + IMX_SC_PM_FUNC_GET_RESOURCE_POWER_MODE = 4, + IMX_SC_PM_FUNC_REQ_LOW_POWER_MODE = 16, + IMX_SC_PM_FUNC_SET_CPU_RESUME_ADDR = 17, + IMX_SC_PM_FUNC_REQ_SYS_IF_POWER_MODE = 18, + IMX_SC_PM_FUNC_SET_CLOCK_RATE = 5, + IMX_SC_PM_FUNC_GET_CLOCK_RATE = 6, + IMX_SC_PM_FUNC_CLOCK_ENABLE = 7, + IMX_SC_PM_FUNC_SET_CLOCK_PARENT = 14, + IMX_SC_PM_FUNC_GET_CLOCK_PARENT = 15, + IMX_SC_PM_FUNC_RESET = 13, + IMX_SC_PM_FUNC_RESET_REASON = 10, + IMX_SC_PM_FUNC_BOOT = 8, + IMX_SC_PM_FUNC_REBOOT = 9, + IMX_SC_PM_FUNC_REBOOT_PARTITION = 12, + IMX_SC_PM_FUNC_CPU_START = 11, +}; + +enum imx_sc_rm_func { + IMX_SC_RM_FUNC_UNKNOWN = 0, + IMX_SC_RM_FUNC_PARTITION_ALLOC = 1, + IMX_SC_RM_FUNC_SET_CONFIDENTIAL = 31, + IMX_SC_RM_FUNC_PARTITION_FREE = 2, + IMX_SC_RM_FUNC_GET_DID = 26, + IMX_SC_RM_FUNC_PARTITION_STATIC = 3, + IMX_SC_RM_FUNC_PARTITION_LOCK = 4, + IMX_SC_RM_FUNC_GET_PARTITION = 5, + IMX_SC_RM_FUNC_SET_PARENT = 6, + IMX_SC_RM_FUNC_MOVE_ALL = 7, + IMX_SC_RM_FUNC_ASSIGN_RESOURCE = 8, + IMX_SC_RM_FUNC_SET_RESOURCE_MOVABLE = 9, + IMX_SC_RM_FUNC_SET_SUBSYS_RSRC_MOVABLE = 28, + IMX_SC_RM_FUNC_SET_MASTER_ATTRIBUTES = 10, + IMX_SC_RM_FUNC_SET_MASTER_SID = 11, + IMX_SC_RM_FUNC_SET_PERIPHERAL_PERMISSIONS = 12, + IMX_SC_RM_FUNC_IS_RESOURCE_OWNED = 13, + IMX_SC_RM_FUNC_GET_RESOURCE_OWNER = 33, + IMX_SC_RM_FUNC_IS_RESOURCE_MASTER = 14, + IMX_SC_RM_FUNC_IS_RESOURCE_PERIPHERAL = 15, + IMX_SC_RM_FUNC_GET_RESOURCE_INFO = 16, + IMX_SC_RM_FUNC_MEMREG_ALLOC = 17, + IMX_SC_RM_FUNC_MEMREG_SPLIT = 29, + IMX_SC_RM_FUNC_MEMREG_FRAG = 32, + IMX_SC_RM_FUNC_MEMREG_FREE = 18, + IMX_SC_RM_FUNC_FIND_MEMREG = 30, + IMX_SC_RM_FUNC_ASSIGN_MEMREG = 19, + IMX_SC_RM_FUNC_SET_MEMREG_PERMISSIONS = 20, + IMX_SC_RM_FUNC_IS_MEMREG_OWNED = 21, + IMX_SC_RM_FUNC_GET_MEMREG_INFO = 22, + IMX_SC_RM_FUNC_ASSIGN_PAD = 23, + IMX_SC_RM_FUNC_SET_PAD_MOVABLE = 24, + IMX_SC_RM_FUNC_IS_PAD_OWNED = 25, + IMX_SC_RM_FUNC_DUMP = 27, +}; + +enum imx_sc_rpc_svc { + IMX_SC_RPC_SVC_UNKNOWN = 0, + IMX_SC_RPC_SVC_RETURN = 1, + IMX_SC_RPC_SVC_PM = 2, + IMX_SC_RPC_SVC_RM = 3, + IMX_SC_RPC_SVC_TIMER = 5, + IMX_SC_RPC_SVC_PAD = 6, + IMX_SC_RPC_SVC_MISC = 7, + IMX_SC_RPC_SVC_IRQ = 8, +}; + +enum imx_tx_state { + OFF = 0, + WAIT_AFTER_RTS = 1, + SEND = 2, + WAIT_AFTER_SEND = 3, +}; + +enum imx_uart_type { + IMX1_UART = 0, + IMX21_UART = 1, +}; + +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 inet_csk_ack_state_t { + ICSK_ACK_SCHED = 1, + ICSK_ACK_TIMER = 2, + ICSK_ACK_PUSHED = 4, + ICSK_ACK_PUSHED2 = 8, + ICSK_ACK_NOW = 16, + ICSK_ACK_NOMEM = 32, +}; + +enum 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 input_clock_type { + INPUT_CLK_REAL = 0, + INPUT_CLK_MONO = 1, + INPUT_CLK_BOOT = 2, + INPUT_CLK_MAX = 3, +}; + +enum insn_emulation_mode { + INSN_UNDEF = 0, + INSN_EMULATE = 1, + INSN_HW = 2, +}; + +enum int_type { + SYS_INT = 1, + DCDC_INT = 2, + RTC_INT = 4, + ADC_INT = 8, + GPIO_INT = 16, +}; + +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, +}; + +enum io_pgtable_caps { + IO_PGTABLE_CAP_CUSTOM_ALLOCATOR = 1, +}; + +enum io_pgtable_fmt { + ARM_32_LPAE_S1 = 0, + ARM_32_LPAE_S2 = 1, + ARM_64_LPAE_S1 = 2, + ARM_64_LPAE_S2 = 3, + ARM_V7S = 4, + ARM_MALI_LPAE = 5, + AMD_IOMMU_V1 = 6, + AMD_IOMMU_V2 = 7, + APPLE_DART = 8, + APPLE_DART2 = 9, + IO_PGTABLE_NUM_FMTS = 10, +}; + +enum io_uring_cmd_flags { + IO_URING_F_COMPLETE_DEFER = 1, + IO_URING_F_UNLOCKED = 2, + IO_URING_F_MULTISHOT = 4, + IO_URING_F_IOWQ = 8, + IO_URING_F_NONBLOCK = -2147483648, + IO_URING_F_SQE128 = 256, + IO_URING_F_CQE32 = 512, + IO_URING_F_IOPOLL = 1024, + IO_URING_F_CANCEL = 2048, + IO_URING_F_COMPAT = 4096, + IO_URING_F_TASK_DEAD = 8192, +}; + +enum io_uring_msg_ring_flags { + IORING_MSG_DATA = 0, + IORING_MSG_SEND_FD = 1, +}; + +enum io_uring_napi_op { + IO_URING_NAPI_REGISTER_OP = 0, + IO_URING_NAPI_STATIC_ADD_ID = 1, + IO_URING_NAPI_STATIC_DEL_ID = 2, +}; + +enum io_uring_napi_tracking_strategy { + IO_URING_NAPI_TRACKING_DYNAMIC = 0, + IO_URING_NAPI_TRACKING_STATIC = 1, + IO_URING_NAPI_TRACKING_INACTIVE = 255, +}; + +enum io_uring_op { + IORING_OP_NOP = 0, + IORING_OP_READV = 1, + IORING_OP_WRITEV = 2, + IORING_OP_FSYNC = 3, + IORING_OP_READ_FIXED = 4, + IORING_OP_WRITE_FIXED = 5, + IORING_OP_POLL_ADD = 6, + IORING_OP_POLL_REMOVE = 7, + IORING_OP_SYNC_FILE_RANGE = 8, + IORING_OP_SENDMSG = 9, + IORING_OP_RECVMSG = 10, + IORING_OP_TIMEOUT = 11, + IORING_OP_TIMEOUT_REMOVE = 12, + IORING_OP_ACCEPT = 13, + IORING_OP_ASYNC_CANCEL = 14, + IORING_OP_LINK_TIMEOUT = 15, + IORING_OP_CONNECT = 16, + IORING_OP_FALLOCATE = 17, + IORING_OP_OPENAT = 18, + IORING_OP_CLOSE = 19, + IORING_OP_FILES_UPDATE = 20, + IORING_OP_STATX = 21, + IORING_OP_READ = 22, + IORING_OP_WRITE = 23, + IORING_OP_FADVISE = 24, + IORING_OP_MADVISE = 25, + IORING_OP_SEND = 26, + IORING_OP_RECV = 27, + IORING_OP_OPENAT2 = 28, + IORING_OP_EPOLL_CTL = 29, + IORING_OP_SPLICE = 30, + IORING_OP_PROVIDE_BUFFERS = 31, + IORING_OP_REMOVE_BUFFERS = 32, + IORING_OP_TEE = 33, + IORING_OP_SHUTDOWN = 34, + IORING_OP_RENAMEAT = 35, + IORING_OP_UNLINKAT = 36, + IORING_OP_MKDIRAT = 37, + IORING_OP_SYMLINKAT = 38, + IORING_OP_LINKAT = 39, + IORING_OP_MSG_RING = 40, + IORING_OP_FSETXATTR = 41, + IORING_OP_SETXATTR = 42, + IORING_OP_FGETXATTR = 43, + IORING_OP_GETXATTR = 44, + IORING_OP_SOCKET = 45, + IORING_OP_URING_CMD = 46, + IORING_OP_SEND_ZC = 47, + IORING_OP_SENDMSG_ZC = 48, + IORING_OP_READ_MULTISHOT = 49, + IORING_OP_WAITID = 50, + IORING_OP_FUTEX_WAIT = 51, + IORING_OP_FUTEX_WAKE = 52, + IORING_OP_FUTEX_WAITV = 53, + IORING_OP_FIXED_FD_INSTALL = 54, + IORING_OP_FTRUNCATE = 55, + IORING_OP_BIND = 56, + IORING_OP_LISTEN = 57, + IORING_OP_LAST = 58, +}; + +enum io_uring_register_op { + IORING_REGISTER_BUFFERS = 0, + IORING_UNREGISTER_BUFFERS = 1, + IORING_REGISTER_FILES = 2, + IORING_UNREGISTER_FILES = 3, + IORING_REGISTER_EVENTFD = 4, + IORING_UNREGISTER_EVENTFD = 5, + IORING_REGISTER_FILES_UPDATE = 6, + IORING_REGISTER_EVENTFD_ASYNC = 7, + IORING_REGISTER_PROBE = 8, + IORING_REGISTER_PERSONALITY = 9, + IORING_UNREGISTER_PERSONALITY = 10, + IORING_REGISTER_RESTRICTIONS = 11, + IORING_REGISTER_ENABLE_RINGS = 12, + IORING_REGISTER_FILES2 = 13, + IORING_REGISTER_FILES_UPDATE2 = 14, + IORING_REGISTER_BUFFERS2 = 15, + IORING_REGISTER_BUFFERS_UPDATE = 16, + IORING_REGISTER_IOWQ_AFF = 17, + IORING_UNREGISTER_IOWQ_AFF = 18, + IORING_REGISTER_IOWQ_MAX_WORKERS = 19, + IORING_REGISTER_RING_FDS = 20, + IORING_UNREGISTER_RING_FDS = 21, + IORING_REGISTER_PBUF_RING = 22, + IORING_UNREGISTER_PBUF_RING = 23, + IORING_REGISTER_SYNC_CANCEL = 24, + IORING_REGISTER_FILE_ALLOC_RANGE = 25, + IORING_REGISTER_PBUF_STATUS = 26, + IORING_REGISTER_NAPI = 27, + IORING_UNREGISTER_NAPI = 28, + IORING_REGISTER_CLOCK = 29, + IORING_REGISTER_CLONE_BUFFERS = 30, + IORING_REGISTER_SEND_MSG_RING = 31, + IORING_REGISTER_RESIZE_RINGS = 33, + IORING_REGISTER_MEM_REGION = 34, + IORING_REGISTER_LAST = 35, + IORING_REGISTER_USE_REGISTERED_RING = 2147483648, +}; + +enum io_uring_register_pbuf_ring_flags { + IOU_PBUF_RING_MMAP = 1, + IOU_PBUF_RING_INC = 2, +}; + +enum io_uring_register_restriction_op { + IORING_RESTRICTION_REGISTER_OP = 0, + IORING_RESTRICTION_SQE_OP = 1, + IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, + IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, + IORING_RESTRICTION_LAST = 4, +}; + +enum io_uring_socket_op { + SOCKET_URING_OP_SIOCINQ = 0, + SOCKET_URING_OP_SIOCOUTQ = 1, + SOCKET_URING_OP_GETSOCKOPT = 2, + SOCKET_URING_OP_SETSOCKOPT = 3, +}; + +enum io_uring_sqe_flags_bit { + 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 io_wq_cancel { + IO_WQ_CANCEL_OK = 0, + IO_WQ_CANCEL_RUNNING = 1, + IO_WQ_CANCEL_NOTFOUND = 2, +}; + +enum io_wq_type { + IO_WQ_BOUND = 0, + IO_WQ_UNBOUND = 1, +}; + +enum ioam6_event_attr { + IOAM6_EVENT_ATTR_UNSPEC = 0, + IOAM6_EVENT_ATTR_TRACE_NAMESPACE = 1, + IOAM6_EVENT_ATTR_TRACE_NODELEN = 2, + IOAM6_EVENT_ATTR_TRACE_TYPE = 3, + IOAM6_EVENT_ATTR_TRACE_DATA = 4, + __IOAM6_EVENT_ATTR_MAX = 5, +}; + +enum ioam6_event_type { + IOAM6_EVENT_UNSPEC = 0, + IOAM6_EVENT_TRACE = 1, +}; + +enum ioc_running { + IOC_IDLE = 0, + IOC_RUNNING = 1, + IOC_STOP = 2, +}; + +enum ioctrl_regs { + POC0 = 0, + POC1 = 1, + POC3 = 2, + POC4 = 3, + POC5 = 4, + POC6 = 5, + POC7 = 6, + POC8 = 7, +}; + +enum ioctrl_regs___2 { + POC0___2 = 0, + POC1___2 = 1, + POC2 = 2, + POC4___2 = 3, + POC5___2 = 4, + POC6___2 = 5, + POC7___2 = 6, + POC8___2 = 7, + POC9 = 8, + TD1SEL0 = 9, +}; + +enum ioctrl_regs___3 { + POC0___3 = 0, + POC1___3 = 1, + POC3___2 = 2, + POC4___3 = 3, + POC5___3 = 4, + POC6___3 = 5, + POC7___3 = 6, +}; + +enum ioctrl_regs___4 { + POCCTRL = 0, + TDSELCTRL = 1, +}; + +enum ioctrl_regs___5 { + POCCTRL0 = 0, + POCCTRL1 = 1, + POCCTRL2 = 2, + POCCTRL3 = 3, + TDSELCTRL___2 = 4, +}; + +enum ioctrl_regs___6 { + POCCTRL0___2 = 0, + POCCTRL2___2 = 1, + TDSELCTRL___3 = 2, +}; + +enum ioctrl_regs___7 { + POC0___4 = 0, + POC1___4 = 1, + POC3___3 = 2, + TD0SEL1 = 3, +}; + +enum ioctrl_regs___8 { + POCCTRL0___3 = 0, + POCCTRL1___2 = 1, + POCCTRL2___3 = 2, + TDSELCTRL___4 = 3, +}; + +enum iodev_type { + IODEV_CPUIF = 0, + IODEV_DIST = 1, + IODEV_REDIST = 2, + IODEV_ITS = 3, +}; + +enum iommu_cap { + IOMMU_CAP_CACHE_COHERENCY = 0, + IOMMU_CAP_NOEXEC = 1, + IOMMU_CAP_PRE_BOOT_PROTECTION = 2, + IOMMU_CAP_ENFORCE_CACHE_COHERENCY = 3, + IOMMU_CAP_DEFERRED_FLUSH = 4, + IOMMU_CAP_DIRTY_TRACKING = 5, +}; + +enum iommu_dev_features { + IOMMU_DEV_FEAT_SVA = 0, + IOMMU_DEV_FEAT_IOPF = 1, +}; + +enum iommu_dma_cookie_type { + IOMMU_DMA_IOVA_COOKIE = 0, + IOMMU_DMA_MSI_COOKIE = 1, +}; + +enum iommu_dma_queue_type { + IOMMU_DMA_OPTS_PER_CPU_QUEUE = 0, + IOMMU_DMA_OPTS_SINGLE_QUEUE = 1, +}; + +enum iommu_fault_type { + IOMMU_FAULT_PAGE_REQ = 1, +}; + +enum iommu_page_response_code { + IOMMU_PAGE_RESP_SUCCESS = 0, + IOMMU_PAGE_RESP_INVALID = 1, + IOMMU_PAGE_RESP_FAILURE = 2, +}; + +enum iommu_resv_type { + IOMMU_RESV_DIRECT = 0, + IOMMU_RESV_DIRECT_RELAXABLE = 1, + IOMMU_RESV_RESERVED = 2, + IOMMU_RESV_MSI = 3, + IOMMU_RESV_SW_MSI = 4, +}; + +enum iommufd_hwpt_alloc_flags { + IOMMU_HWPT_ALLOC_NEST_PARENT = 1, + IOMMU_HWPT_ALLOC_DIRTY_TRACKING = 2, + IOMMU_HWPT_FAULT_ID_VALID = 4, + IOMMU_HWPT_ALLOC_PASID = 8, +}; + +enum iommufd_object_type { + IOMMUFD_OBJ_NONE = 0, + IOMMUFD_OBJ_ANY = 0, + IOMMUFD_OBJ_DEVICE = 1, + IOMMUFD_OBJ_HWPT_PAGING = 2, + IOMMUFD_OBJ_HWPT_NESTED = 3, + IOMMUFD_OBJ_IOAS = 4, + IOMMUFD_OBJ_ACCESS = 5, + IOMMUFD_OBJ_FAULT = 6, + IOMMUFD_OBJ_VIOMMU = 7, + IOMMUFD_OBJ_VDEVICE = 8, + IOMMUFD_OBJ_MAX = 9, +}; + +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, +}; + +enum ip_conntrack_dir { + IP_CT_DIR_ORIGINAL = 0, + IP_CT_DIR_REPLY = 1, + IP_CT_DIR_MAX = 2, +}; + +enum ip_conntrack_info { + IP_CT_ESTABLISHED = 0, + IP_CT_RELATED = 1, + IP_CT_NEW = 2, + IP_CT_IS_REPLY = 3, + IP_CT_ESTABLISHED_REPLY = 3, + IP_CT_RELATED_REPLY = 4, + IP_CT_NUMBER = 5, + IP_CT_UNTRACKED = 7, +}; + +enum 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 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 ipe_action_type { + IPE_ACTION_ALLOW = 0, + IPE_ACTION_DENY = 1, + __IPE_ACTION_MAX = 2, +}; + +enum ipe_hook_type { + IPE_HOOK_BPRM_CHECK = 0, + IPE_HOOK_MMAP = 1, + IPE_HOOK_MPROTECT = 2, + IPE_HOOK_KERNEL_READ = 3, + IPE_HOOK_KERNEL_LOAD = 4, + __IPE_HOOK_MAX = 5, +}; + +enum ipe_match { + IPE_MATCH_RULE = 0, + IPE_MATCH_TABLE = 1, + IPE_MATCH_GLOBAL = 2, + __IPE_MATCH_MAX = 3, +}; + +enum ipe_op_type { + IPE_OP_EXEC = 0, + IPE_OP_FIRMWARE = 1, + IPE_OP_KERNEL_MODULE = 2, + IPE_OP_KEXEC_IMAGE = 3, + IPE_OP_KEXEC_INITRAMFS = 4, + IPE_OP_POLICY = 5, + IPE_OP_X509 = 6, + __IPE_OP_MAX = 7, +}; + +enum ipe_prop_type { + IPE_PROP_BOOT_VERIFIED_FALSE = 0, + IPE_PROP_BOOT_VERIFIED_TRUE = 1, + IPE_PROP_DMV_ROOTHASH = 2, + IPE_PROP_DMV_SIG_FALSE = 3, + IPE_PROP_DMV_SIG_TRUE = 4, + IPE_PROP_FSV_DIGEST = 5, + IPE_PROP_FSV_SIG_FALSE = 6, + IPE_PROP_FSV_SIG_TRUE = 7, + __IPE_PROP_MAX = 8, +}; + +enum ipi_msg_type { + IPI_RESCHEDULE = 0, + IPI_CALL_FUNC = 1, + IPI_CPU_STOP = 2, + IPI_CPU_STOP_NMI = 3, + IPI_TIMER = 4, + IPI_IRQ_WORK = 5, + NR_IPI = 6, + IPI_CPU_BACKTRACE = 6, + IPI_KGDB_ROUNDUP = 7, + MAX_IPI = 8, +}; + +enum ipi_vector { + XEN_PLACEHOLDER_VECTOR = 0, + XEN_NR_IPIS = 1, +}; + +enum ipmi_addr_space { + IPMI_IO_ADDR_SPACE = 0, + IPMI_MEM_ADDR_SPACE = 1, +}; + +enum ipmi_addr_src { + SI_INVALID = 0, + SI_HOTMOD = 1, + SI_HARDCODED = 2, + SI_SPMI = 3, + SI_ACPI = 4, + SI_SMBIOS = 5, + SI_PCI = 6, + SI_DEVICETREE = 7, + SI_PLATFORM = 8, + SI_LAST = 9, +}; + +enum ipmi_plat_interface_type { + IPMI_PLAT_IF_SI = 0, + IPMI_PLAT_IF_SSIF = 1, +}; + +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_DEVICE_MSI = 15, + DOMAIN_BUS_WIRED_TO_MSI = 16, +}; + +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 irqchip_irq_state { + IRQCHIP_STATE_PENDING = 0, + IRQCHIP_STATE_ACTIVE = 1, + IRQCHIP_STATE_MASKED = 2, + IRQCHIP_STATE_LINE_LEVEL = 3, +}; + +enum irqreturn { + IRQ_NONE = 0, + IRQ_HANDLED = 1, + IRQ_WAKE_THREAD = 2, +}; + +typedef enum irqreturn irqreturn_t; + +enum iter_type { + ITER_UBUF = 0, + ITER_IOVEC = 1, + ITER_BVEC = 2, + ITER_KVEC = 3, + ITER_FOLIOQ = 4, + ITER_XARRAY = 5, + ITER_DISCARD = 6, +}; + +enum its_vcpu_info_cmd_type { + MAP_VLPI = 0, + GET_VLPI = 1, + PROP_UPDATE_VLPI = 2, + PROP_UPDATE_AND_INV_VLPI = 3, + SCHEDULE_VPE = 4, + DESCHEDULE_VPE = 5, + COMMIT_VPE = 6, + INVALL_VPE = 7, + PROP_UPDATE_VSGI = 8, +}; + +enum j721e_pcie_mode { + PCI_MODE_RC = 0, + PCI_MODE_EP = 1, +}; + +enum jbd2_shrink_type { + JBD2_SHRINK_DESTROY = 0, + JBD2_SHRINK_BUSY_STOP = 1, + JBD2_SHRINK_BUSY_SKIP = 2, +}; + +enum jbd_state_bits { + BH_JBD = 16, + BH_JWrite = 17, + BH_Freed = 18, + BH_Revoked = 19, + BH_RevokeValid = 20, + BH_JBDDirty = 21, + BH_JournalHead = 22, + BH_Shadow = 23, + BH_Verified = 24, + BH_JBDPrivateStart = 25, +}; + +enum jump_label_type { + JUMP_LABEL_NOP = 0, + JUMP_LABEL_JMP = 1, +}; + +enum k3_dma_type { + DMA_TYPE_UDMA = 0, + DMA_TYPE_BCDMA = 1, + DMA_TYPE_PKTDMA = 2, +}; + +enum k3_ring_mode { + K3_RINGACC_RING_MODE_RING = 0, + K3_RINGACC_RING_MODE_MESSAGE = 1, + K3_RINGACC_RING_MODE_CREDENTIALS = 2, + K3_RINGACC_RING_MODE_INVALID = 3, +}; + +enum k3_ring_size { + K3_RINGACC_RING_ELSIZE_4 = 0, + K3_RINGACC_RING_ELSIZE_8 = 1, + K3_RINGACC_RING_ELSIZE_16 = 2, + K3_RINGACC_RING_ELSIZE_32 = 3, + K3_RINGACC_RING_ELSIZE_64 = 4, + K3_RINGACC_RING_ELSIZE_128 = 5, + K3_RINGACC_RING_ELSIZE_256 = 6, + K3_RINGACC_RING_ELSIZE_INVALID = 7, +}; + +enum k3_ringacc_access_mode { + K3_RINGACC_ACCESS_MODE_PUSH_HEAD = 0, + K3_RINGACC_ACCESS_MODE_POP_HEAD = 1, + K3_RINGACC_ACCESS_MODE_PUSH_TAIL = 2, + K3_RINGACC_ACCESS_MODE_POP_TAIL = 3, + K3_RINGACC_ACCESS_MODE_PEEK_HEAD = 4, + K3_RINGACC_ACCESS_MODE_PEEK_TAIL = 5, +}; + +enum k3_ringacc_proxy_access_mode { + PROXY_ACCESS_MODE_HEAD = 0, + PROXY_ACCESS_MODE_TAIL = 1, + PROXY_ACCESS_MODE_PEEK_HEAD = 2, + PROXY_ACCESS_MODE_PEEK_TAIL = 3, +}; + +enum kcmp_type { + KCMP_FILE = 0, + KCMP_VM = 1, + KCMP_FILES = 2, + KCMP_FS = 3, + KCMP_SIGHAND = 4, + KCMP_IO = 5, + KCMP_SYSVSEM = 6, + KCMP_EPOLL_TFD = 7, + KCMP_TYPES = 8, +}; + +enum kcore_type { + KCORE_TEXT = 0, + KCORE_VMALLOC = 1, + KCORE_RAM = 2, + KCORE_VMEMMAP = 3, + KCORE_USER = 4, +}; + +enum kdb_msgsrc { + KDB_MSGSRC_INTERNAL = 0, + KDB_MSGSRC_PRINTK = 1, +}; + +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 kernel_pkey_operation { + kernel_pkey_encrypt = 0, + kernel_pkey_decrypt = 1, + kernel_pkey_sign = 2, + kernel_pkey_verify = 3, +}; + +enum kernel_read_file_id { + READING_UNKNOWN = 0, + READING_FIRMWARE = 1, + READING_MODULE = 2, + READING_KEXEC_IMAGE = 3, + READING_KEXEC_INITRAMFS = 4, + READING_POLICY = 5, + READING_X509_CERTIFICATE = 6, + READING_MAX_ID = 7, +}; + +enum 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, +}; + +enum kernfs_root_flag { + KERNFS_ROOT_CREATE_DEACTIVATED = 1, + KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK = 2, + KERNFS_ROOT_SUPPORT_EXPORTOP = 4, + KERNFS_ROOT_SUPPORT_USER_XATTR = 8, +}; + +enum 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 key_lookup_flag { + KEY_LOOKUP_CREATE = 1, + KEY_LOOKUP_PARTIAL = 2, + KEY_LOOKUP_ALL = 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_notification_subtype { + NOTIFY_KEY_INSTANTIATED = 0, + NOTIFY_KEY_UPDATED = 1, + NOTIFY_KEY_LINKED = 2, + NOTIFY_KEY_UNLINKED = 3, + NOTIFY_KEY_CLEARED = 4, + NOTIFY_KEY_REVOKED = 5, + NOTIFY_KEY_INVALIDATED = 6, + NOTIFY_KEY_SETATTR = 7, +}; + +enum key_state { + KEY_IS_UNINSTANTIATED = 0, + KEY_IS_POSITIVE = 1, +}; + +enum kfence_counter_id { + KFENCE_COUNTER_ALLOCATED = 0, + KFENCE_COUNTER_ALLOCS = 1, + KFENCE_COUNTER_FREES = 2, + KFENCE_COUNTER_ZOMBIES = 3, + KFENCE_COUNTER_BUGS = 4, + KFENCE_COUNTER_SKIP_INCOMPAT = 5, + KFENCE_COUNTER_SKIP_CAPACITY = 6, + KFENCE_COUNTER_SKIP_COVERED = 7, + KFENCE_COUNTER_COUNT = 8, +}; + +enum kfence_error_type { + KFENCE_ERROR_OOB = 0, + KFENCE_ERROR_UAF = 1, + KFENCE_ERROR_CORRUPTION = 2, + KFENCE_ERROR_INVALID = 3, + KFENCE_ERROR_INVALID_FREE = 4, +}; + +enum kfence_object_state { + KFENCE_OBJECT_UNUSED = 0, + KFENCE_OBJECT_ALLOCATED = 1, + KFENCE_OBJECT_RCU_FREEING = 2, + KFENCE_OBJECT_FREED = 3, +}; + +enum kfunc_ptr_arg_type { + KF_ARG_PTR_TO_CTX = 0, + KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, + KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, + KF_ARG_PTR_TO_DYNPTR = 3, + KF_ARG_PTR_TO_ITER = 4, + KF_ARG_PTR_TO_LIST_HEAD = 5, + KF_ARG_PTR_TO_LIST_NODE = 6, + KF_ARG_PTR_TO_BTF_ID = 7, + KF_ARG_PTR_TO_MEM = 8, + KF_ARG_PTR_TO_MEM_SIZE = 9, + KF_ARG_PTR_TO_CALLBACK = 10, + KF_ARG_PTR_TO_RB_ROOT = 11, + KF_ARG_PTR_TO_RB_NODE = 12, + KF_ARG_PTR_TO_NULL = 13, + KF_ARG_PTR_TO_CONST_STR = 14, + KF_ARG_PTR_TO_MAP = 15, + KF_ARG_PTR_TO_WORKQUEUE = 16, + KF_ARG_PTR_TO_IRQ_FLAG = 17, +}; + +enum kgdb_bpstate { + BP_UNDEFINED = 0, + BP_REMOVED = 1, + BP_SET = 2, + BP_ACTIVE = 3, +}; + +enum kgdb_bptype { + BP_BREAKPOINT = 0, + BP_HARDWARE_BREAKPOINT = 1, + BP_WRITE_WATCHPOINT = 2, + BP_READ_WATCHPOINT = 3, + BP_ACCESS_WATCHPOINT = 4, + BP_POKE_BREAKPOINT = 5, +}; + +enum kmalloc_cache_type { + KMALLOC_NORMAL = 0, + KMALLOC_RANDOM_START = 0, + KMALLOC_RANDOM_END = 15, + KMALLOC_RECLAIM = 16, + KMALLOC_DMA = 17, + KMALLOC_CGROUP = 18, + NR_KMALLOC_TYPES = 19, +}; + +enum kmsg_dump_reason { + KMSG_DUMP_UNDEF = 0, + KMSG_DUMP_PANIC = 1, + KMSG_DUMP_OOPS = 2, + KMSG_DUMP_EMERG = 3, + KMSG_DUMP_SHUTDOWN = 4, + KMSG_DUMP_MAX = 5, +}; + +enum kobj_ns_type { + KOBJ_NS_TYPE_NONE = 0, + KOBJ_NS_TYPE_NET = 1, + KOBJ_NS_TYPES = 2, +}; + +enum kobject_action { + KOBJ_ADD = 0, + KOBJ_REMOVE = 1, + KOBJ_CHANGE = 2, + KOBJ_MOVE = 3, + KOBJ_ONLINE = 4, + KOBJ_OFFLINE = 5, + KOBJ_BIND = 6, + KOBJ_UNBIND = 7, +}; + +enum kprobe_slot_state { + SLOT_CLEAN = 0, + SLOT_DIRTY = 1, + SLOT_USED = 2, +}; + +enum ksm_advisor_type { + KSM_ADVISOR_NONE = 0, + KSM_ADVISOR_SCAN_TIME = 1, +}; + +enum ksm_get_folio_flags { + KSM_GET_FOLIO_NOLOCK = 0, + KSM_GET_FOLIO_LOCK = 1, + KSM_GET_FOLIO_TRYLOCK = 2, +}; + +enum kunwind_source { + KUNWIND_SOURCE_UNKNOWN = 0, + KUNWIND_SOURCE_FRAME = 1, + KUNWIND_SOURCE_CALLER = 2, + KUNWIND_SOURCE_TASK = 3, + KUNWIND_SOURCE_REGS_PC = 4, +}; + +enum kvm_arch_timer_regs { + TIMER_REG_CNT = 0, + TIMER_REG_CVAL = 1, + TIMER_REG_TVAL = 2, + TIMER_REG_CTL = 3, + TIMER_REG_VOFF = 4, +}; + +enum kvm_arch_timers { + TIMER_PTIMER = 0, + TIMER_VTIMER = 1, + NR_KVM_EL0_TIMERS = 2, + TIMER_HVTIMER = 2, + TIMER_HPTIMER = 3, + NR_KVM_TIMERS = 4, +}; + +enum kvm_bus { + KVM_MMIO_BUS = 0, + KVM_PIO_BUS = 1, + KVM_VIRTIO_CCW_NOTIFY_BUS = 2, + KVM_FAST_MMIO_BUS = 3, + KVM_IOCSR_BUS = 4, + KVM_NR_BUSES = 5, +}; + +enum kvm_device_type { + KVM_DEV_TYPE_FSL_MPIC_20 = 1, + KVM_DEV_TYPE_FSL_MPIC_42 = 2, + KVM_DEV_TYPE_XICS = 3, + KVM_DEV_TYPE_VFIO = 4, + KVM_DEV_TYPE_ARM_VGIC_V2 = 5, + KVM_DEV_TYPE_FLIC = 6, + KVM_DEV_TYPE_ARM_VGIC_V3 = 7, + KVM_DEV_TYPE_ARM_VGIC_ITS = 8, + KVM_DEV_TYPE_XIVE = 9, + KVM_DEV_TYPE_ARM_PV_TIME = 10, + KVM_DEV_TYPE_RISCV_AIA = 11, + KVM_DEV_TYPE_LOONGARCH_IPI = 12, + KVM_DEV_TYPE_LOONGARCH_EIOINTC = 13, + KVM_DEV_TYPE_LOONGARCH_PCHPIC = 14, + KVM_DEV_TYPE_MAX = 15, +}; + +enum kvm_gfn_range_filter { + KVM_FILTER_SHARED = 1, + KVM_FILTER_PRIVATE = 2, +}; + +enum kvm_mode { + KVM_MODE_DEFAULT = 0, + KVM_MODE_PROTECTED = 1, + KVM_MODE_NV = 2, + KVM_MODE_NONE = 3, +}; + +enum kvm_mr_change { + KVM_MR_CREATE = 0, + KVM_MR_DELETE = 1, + KVM_MR_MOVE = 2, + KVM_MR_FLAGS_ONLY = 3, +}; + +enum kvm_pgtable_prot { + KVM_PGTABLE_PROT_X = 1ULL, + KVM_PGTABLE_PROT_W = 2ULL, + KVM_PGTABLE_PROT_R = 4ULL, + KVM_PGTABLE_PROT_DEVICE = 8ULL, + KVM_PGTABLE_PROT_NORMAL_NC = 16ULL, + KVM_PGTABLE_PROT_SW0 = 36028797018963968ULL, + KVM_PGTABLE_PROT_SW1 = 72057594037927936ULL, + KVM_PGTABLE_PROT_SW2 = 144115188075855872ULL, + KVM_PGTABLE_PROT_SW3 = 288230376151711744ULL, +}; + +enum kvm_pgtable_stage2_flags { + KVM_PGTABLE_S2_NOFWB = 1, + KVM_PGTABLE_S2_IDMAP = 2, +}; + +enum kvm_pgtable_walk_flags { + KVM_PGTABLE_WALK_LEAF = 1, + KVM_PGTABLE_WALK_TABLE_PRE = 2, + KVM_PGTABLE_WALK_TABLE_POST = 4, + KVM_PGTABLE_WALK_SHARED = 8, + KVM_PGTABLE_WALK_HANDLE_FAULT = 16, + KVM_PGTABLE_WALK_SKIP_BBM_TLBI = 32, + KVM_PGTABLE_WALK_SKIP_CMO = 64, +}; + +enum kvm_smccc_filter_action { + KVM_SMCCC_FILTER_HANDLE = 0, + KVM_SMCCC_FILTER_DENY = 1, + KVM_SMCCC_FILTER_FWD_TO_USER = 2, + NR_SMCCC_FILTER_ACTIONS = 3, +}; + +enum kvm_stat_kind { + KVM_STAT_VM = 0, + KVM_STAT_VCPU = 1, +}; + +enum kvm_wfx_trap_policy { + KVM_WFX_NOTRAP_SINGLE_TASK = 0, + KVM_WFX_NOTRAP = 1, + KVM_WFX_TRAP = 2, +}; + +enum l2tp_debug_flags { + L2TP_MSG_DEBUG = 1, + L2TP_MSG_CONTROL = 2, + L2TP_MSG_SEQ = 4, + L2TP_MSG_DATA = 8, +}; + +enum l3mdev_type { + L3MDEV_TYPE_UNSPEC = 0, + L3MDEV_TYPE_VRF = 1, + __L3MDEV_TYPE_MAX = 2, +}; + +enum label_flags { + FLAG_HAT = 1, + FLAG_UNCONFINED = 2, + FLAG_NULL = 4, + FLAG_IX_ON_NAME_ERROR = 8, + FLAG_IMMUTIBLE = 16, + FLAG_USER_DEFINED = 32, + FLAG_NO_LIST_REF = 64, + FLAG_NS_COUNT = 128, + FLAG_IN_TREE = 256, + FLAG_PROFILE = 512, + FLAG_EXPLICIT = 1024, + FLAG_STALE = 2048, + FLAG_INTERRUPTIBLE = 4096, + FLAG_REVOKED = 8192, + FLAG_DEBUG1 = 16384, + FLAG_DEBUG2 = 32768, +}; + +enum label_initialized { + LABEL_INVALID = 0, + LABEL_INITIALIZED = 1, + LABEL_PENDING = 2, +}; + +enum landlock_key_type { + LANDLOCK_KEY_INODE = 1, + LANDLOCK_KEY_NET_PORT = 2, +}; + +enum landlock_rule_type { + LANDLOCK_RULE_PATH_BENEATH = 1, + LANDLOCK_RULE_NET_PORT = 2, +}; + +enum led_brightness { + LED_OFF = 0, + LED_ON = 1, + LED_HALF = 127, + LED_FULL = 255, +}; + +enum led_default_state { + LEDS_DEFSTATE_OFF = 0, + LEDS_DEFSTATE_ON = 1, + LEDS_DEFSTATE_KEEP = 2, +}; + +enum legacy_fs_param { + LEGACY_FS_UNSET_PARAMS = 0, + LEGACY_FS_MONOLITHIC_PARAMS = 1, + LEGACY_FS_INDIVIDUAL_PARAMS = 2, +}; + +enum legacy_insn_status { + INSN_DEPRECATED = 0, + INSN_OBSOLETE = 1, + INSN_UNAVAILABLE = 2, +}; + +enum link_inband_signalling { + LINK_INBAND_DISABLE = 1, + LINK_INBAND_ENABLE = 2, + LINK_INBAND_BYPASS = 4, +}; + +enum link_status { + NO_RECEIVERS_DETECTED = 0, + LINK_TRAINING_IN_PROGRESS = 1, + LINK_UP_DL_IN_PROGRESS = 2, + LINK_UP_DL_COMPLETED = 3, +}; + +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_MPCAPABLEACTIVEDROP = 7, + MPTCP_MIB_MPCAPABLEACTIVEDISABLED = 8, + MPTCP_MIB_MPCAPABLEENDPATTEMPT = 9, + MPTCP_MIB_TOKENFALLBACKINIT = 10, + MPTCP_MIB_RETRANSSEGS = 11, + MPTCP_MIB_JOINNOTOKEN = 12, + MPTCP_MIB_JOINSYNRX = 13, + MPTCP_MIB_JOINSYNBACKUPRX = 14, + MPTCP_MIB_JOINSYNACKRX = 15, + MPTCP_MIB_JOINSYNACKBACKUPRX = 16, + MPTCP_MIB_JOINSYNACKMAC = 17, + MPTCP_MIB_JOINACKRX = 18, + MPTCP_MIB_JOINACKMAC = 19, + MPTCP_MIB_JOINSYNTX = 20, + MPTCP_MIB_JOINSYNTXCREATSKERR = 21, + MPTCP_MIB_JOINSYNTXBINDERR = 22, + MPTCP_MIB_JOINSYNTXCONNECTERR = 23, + MPTCP_MIB_DSSNOMATCH = 24, + MPTCP_MIB_DSSCORRUPTIONFALLBACK = 25, + MPTCP_MIB_DSSCORRUPTIONRESET = 26, + MPTCP_MIB_INFINITEMAPTX = 27, + MPTCP_MIB_INFINITEMAPRX = 28, + MPTCP_MIB_DSSTCPMISMATCH = 29, + MPTCP_MIB_DATACSUMERR = 30, + MPTCP_MIB_OFOQUEUETAIL = 31, + MPTCP_MIB_OFOQUEUE = 32, + MPTCP_MIB_OFOMERGE = 33, + MPTCP_MIB_NODSSWINDOW = 34, + MPTCP_MIB_DUPDATA = 35, + MPTCP_MIB_ADDADDR = 36, + MPTCP_MIB_ADDADDRTX = 37, + MPTCP_MIB_ADDADDRTXDROP = 38, + MPTCP_MIB_ECHOADD = 39, + MPTCP_MIB_ECHOADDTX = 40, + MPTCP_MIB_ECHOADDTXDROP = 41, + MPTCP_MIB_PORTADD = 42, + MPTCP_MIB_ADDADDRDROP = 43, + MPTCP_MIB_JOINPORTSYNRX = 44, + MPTCP_MIB_JOINPORTSYNACKRX = 45, + MPTCP_MIB_JOINPORTACKRX = 46, + MPTCP_MIB_MISMATCHPORTSYNRX = 47, + MPTCP_MIB_MISMATCHPORTACKRX = 48, + MPTCP_MIB_RMADDR = 49, + MPTCP_MIB_RMADDRDROP = 50, + MPTCP_MIB_RMADDRTX = 51, + MPTCP_MIB_RMADDRTXDROP = 52, + MPTCP_MIB_RMSUBFLOW = 53, + MPTCP_MIB_MPPRIOTX = 54, + MPTCP_MIB_MPPRIORX = 55, + MPTCP_MIB_MPFAILTX = 56, + MPTCP_MIB_MPFAILRX = 57, + MPTCP_MIB_MPFASTCLOSETX = 58, + MPTCP_MIB_MPFASTCLOSERX = 59, + MPTCP_MIB_MPRSTTX = 60, + MPTCP_MIB_MPRSTRX = 61, + MPTCP_MIB_RCVPRUNED = 62, + MPTCP_MIB_SUBFLOWSTALE = 63, + MPTCP_MIB_SUBFLOWRECOVER = 64, + MPTCP_MIB_SNDWNDSHARED = 65, + MPTCP_MIB_RCVWNDSHARED = 66, + MPTCP_MIB_RCVWNDCONFLICTUPDATE = 67, + MPTCP_MIB_RCVWNDCONFLICT = 68, + MPTCP_MIB_CURRESTAB = 69, + MPTCP_MIB_BLACKHOLE = 70, + __MPTCP_MIB_MAX = 71, +}; + +enum locality_types { + WRITE_LATENCY = 0, + READ_LATENCY = 1, + WRITE_BANDWIDTH = 2, + READ_BANDWIDTH = 3, +}; + +enum lochnagar_type { + LOCHNAGAR1 = 0, + LOCHNAGAR2 = 1, +}; + +enum lockdep_ok { + LOCKDEP_STILL_OK = 0, + LOCKDEP_NOW_UNRELIABLE = 1, +}; + +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 lp8788_alarm_sel { + LP8788_ALARM_1 = 0, + LP8788_ALARM_2 = 1, + LP8788_ALARM_MAX = 2, +}; + +enum lp8788_charger_event { + NO_CHARGER = 0, + CHARGER_DETECTED = 1, +}; + +enum lp8788_dvs_sel { + DVS_SEL_V0 = 0, + DVS_SEL_V1 = 1, + DVS_SEL_V2 = 2, + DVS_SEL_V3 = 3, +}; + +enum lp8788_int_id { + LP8788_INT_TSDL = 0, + LP8788_INT_TSDH = 1, + LP8788_INT_UVLO = 2, + LP8788_INT_FLAGMON = 3, + LP8788_INT_PWRON_TIME = 4, + LP8788_INT_PWRON = 5, + LP8788_INT_COMP1 = 6, + LP8788_INT_COMP2 = 7, + LP8788_INT_CHG_INPUT_STATE = 8, + LP8788_INT_CHG_STATE = 9, + LP8788_INT_EOC = 10, + LP8788_INT_CHG_RESTART = 11, + LP8788_INT_RESTART_TIMEOUT = 12, + LP8788_INT_FULLCHG_TIMEOUT = 13, + LP8788_INT_PRECHG_TIMEOUT = 14, + LP8788_INT_RTC_ALARM1 = 17, + LP8788_INT_RTC_ALARM2 = 18, + LP8788_INT_ENTER_SYS_SUPPORT = 19, + LP8788_INT_EXIT_SYS_SUPPORT = 20, + LP8788_INT_BATT_LOW = 21, + LP8788_INT_NO_BATT = 22, + LP8788_INT_MAX = 24, +}; + +enum lp8788_isink_number { + LP8788_ISINK_1 = 0, + LP8788_ISINK_2 = 1, + LP8788_ISINK_3 = 2, +}; + +enum lp8788_isink_scale { + LP8788_ISINK_SCALE_100mA = 0, + LP8788_ISINK_SCALE_120mA = 1, +}; + +enum lru_list { + LRU_INACTIVE_ANON = 0, + LRU_ACTIVE_ANON = 1, + LRU_INACTIVE_FILE = 2, + LRU_ACTIVE_FILE = 3, + LRU_UNEVICTABLE = 4, + NR_LRU_LISTS = 5, +}; + +enum lru_status { + LRU_REMOVED = 0, + LRU_REMOVED_RETRY = 1, + LRU_ROTATE = 2, + LRU_SKIP = 3, + LRU_RETRY = 4, + LRU_STOP = 5, +}; + +enum lruvec_flags { + LRUVEC_CGROUP_CONGESTED = 0, + LRUVEC_NODE_CONGESTED = 1, +}; + +enum lsm_event { + LSM_POLICY_CHANGE = 0, +}; + +enum lsm_integrity_type { + LSM_INT_DMVERITY_SIG_VALID = 0, + LSM_INT_DMVERITY_ROOTHASH = 1, + LSM_INT_FSVERITY_BUILTINSIG_VALID = 2, +}; + +enum lsm_order { + LSM_ORDER_FIRST = -1, + LSM_ORDER_MUTABLE = 0, + LSM_ORDER_LAST = 1, +}; + +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, +}; + +enum lw_bits { + LW_URGENT = 0, +}; + +enum lwtunnel_encap_types { + LWTUNNEL_ENCAP_NONE = 0, + LWTUNNEL_ENCAP_MPLS = 1, + LWTUNNEL_ENCAP_IP = 2, + LWTUNNEL_ENCAP_ILA = 3, + LWTUNNEL_ENCAP_IP6 = 4, + LWTUNNEL_ENCAP_SEG6 = 5, + LWTUNNEL_ENCAP_BPF = 6, + LWTUNNEL_ENCAP_SEG6_LOCAL = 7, + LWTUNNEL_ENCAP_RPL = 8, + LWTUNNEL_ENCAP_IOAM6 = 9, + LWTUNNEL_ENCAP_XFRM = 10, + __LWTUNNEL_ENCAP_MAX = 11, +}; + +enum lwtunnel_ip6_t { + LWTUNNEL_IP6_UNSPEC = 0, + LWTUNNEL_IP6_ID = 1, + LWTUNNEL_IP6_DST = 2, + LWTUNNEL_IP6_SRC = 3, + LWTUNNEL_IP6_HOPLIMIT = 4, + LWTUNNEL_IP6_TC = 5, + LWTUNNEL_IP6_FLAGS = 6, + LWTUNNEL_IP6_PAD = 7, + LWTUNNEL_IP6_OPTS = 8, + __LWTUNNEL_IP6_MAX = 9, +}; + +enum 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 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, +}; + +enum m1_pmu_events { + M1_PMU_PERFCTR_RETIRE_UOP = 1, + M1_PMU_PERFCTR_CORE_ACTIVE_CYCLE = 2, + M1_PMU_PERFCTR_L1I_TLB_FILL = 4, + M1_PMU_PERFCTR_L1D_TLB_FILL = 5, + M1_PMU_PERFCTR_MMU_TABLE_WALK_INSTRUCTION = 7, + M1_PMU_PERFCTR_MMU_TABLE_WALK_DATA = 8, + M1_PMU_PERFCTR_L2_TLB_MISS_INSTRUCTION = 10, + M1_PMU_PERFCTR_L2_TLB_MISS_DATA = 11, + M1_PMU_PERFCTR_MMU_VIRTUAL_MEMORY_FAULT_NONSPEC = 13, + M1_PMU_PERFCTR_SCHEDULE_UOP = 82, + M1_PMU_PERFCTR_INTERRUPT_PENDING = 108, + M1_PMU_PERFCTR_MAP_STALL_DISPATCH = 112, + M1_PMU_PERFCTR_MAP_REWIND = 117, + M1_PMU_PERFCTR_MAP_STALL = 118, + M1_PMU_PERFCTR_MAP_INT_UOP = 124, + M1_PMU_PERFCTR_MAP_LDST_UOP = 125, + M1_PMU_PERFCTR_MAP_SIMD_UOP = 126, + M1_PMU_PERFCTR_FLUSH_RESTART_OTHER_NONSPEC = 132, + M1_PMU_PERFCTR_INST_ALL = 140, + M1_PMU_PERFCTR_INST_BRANCH = 141, + M1_PMU_PERFCTR_INST_BRANCH_CALL = 142, + M1_PMU_PERFCTR_INST_BRANCH_RET = 143, + M1_PMU_PERFCTR_INST_BRANCH_TAKEN = 144, + M1_PMU_PERFCTR_INST_BRANCH_INDIR = 147, + M1_PMU_PERFCTR_INST_BRANCH_COND = 148, + M1_PMU_PERFCTR_INST_INT_LD = 149, + M1_PMU_PERFCTR_INST_INT_ST = 150, + M1_PMU_PERFCTR_INST_INT_ALU = 151, + M1_PMU_PERFCTR_INST_SIMD_LD = 152, + M1_PMU_PERFCTR_INST_SIMD_ST = 153, + M1_PMU_PERFCTR_INST_SIMD_ALU = 154, + M1_PMU_PERFCTR_INST_LDST = 155, + M1_PMU_PERFCTR_INST_BARRIER = 156, + M1_PMU_PERFCTR_UNKNOWN_9f = 159, + M1_PMU_PERFCTR_L1D_TLB_ACCESS = 160, + M1_PMU_PERFCTR_L1D_TLB_MISS = 161, + M1_PMU_PERFCTR_L1D_CACHE_MISS_ST = 162, + M1_PMU_PERFCTR_L1D_CACHE_MISS_LD = 163, + M1_PMU_PERFCTR_LD_UNIT_UOP = 166, + M1_PMU_PERFCTR_ST_UNIT_UOP = 167, + M1_PMU_PERFCTR_L1D_CACHE_WRITEBACK = 168, + M1_PMU_PERFCTR_LDST_X64_UOP = 177, + M1_PMU_PERFCTR_LDST_XPG_UOP = 178, + M1_PMU_PERFCTR_ATOMIC_OR_EXCLUSIVE_SUCC = 179, + M1_PMU_PERFCTR_ATOMIC_OR_EXCLUSIVE_FAIL = 180, + M1_PMU_PERFCTR_L1D_CACHE_MISS_LD_NONSPEC = 191, + M1_PMU_PERFCTR_L1D_CACHE_MISS_ST_NONSPEC = 192, + M1_PMU_PERFCTR_L1D_TLB_MISS_NONSPEC = 193, + M1_PMU_PERFCTR_ST_MEMORY_ORDER_VIOLATION_NONSPEC = 196, + M1_PMU_PERFCTR_BRANCH_COND_MISPRED_NONSPEC = 197, + M1_PMU_PERFCTR_BRANCH_INDIR_MISPRED_NONSPEC = 198, + M1_PMU_PERFCTR_BRANCH_RET_INDIR_MISPRED_NONSPEC = 200, + M1_PMU_PERFCTR_BRANCH_CALL_INDIR_MISPRED_NONSPEC = 202, + M1_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC = 203, + M1_PMU_PERFCTR_L1I_TLB_MISS_DEMAND = 212, + M1_PMU_PERFCTR_MAP_DISPATCH_BUBBLE = 214, + M1_PMU_PERFCTR_L1I_CACHE_MISS_DEMAND = 219, + M1_PMU_PERFCTR_FETCH_RESTART = 222, + M1_PMU_PERFCTR_ST_NT_UOP = 229, + M1_PMU_PERFCTR_LD_NT_UOP = 230, + M1_PMU_PERFCTR_UNKNOWN_f5 = 245, + M1_PMU_PERFCTR_UNKNOWN_f6 = 246, + M1_PMU_PERFCTR_UNKNOWN_f7 = 247, + M1_PMU_PERFCTR_UNKNOWN_f8 = 248, + M1_PMU_PERFCTR_UNKNOWN_fd = 253, + M1_PMU_PERFCTR_LAST = 255, + M1_PMU_CFG_COUNT_USER = 256, + M1_PMU_CFG_COUNT_KERNEL = 512, +}; + +enum macsec_offload { + MACSEC_OFFLOAD_OFF = 0, + MACSEC_OFFLOAD_PHY = 1, + MACSEC_OFFLOAD_MAC = 2, + __MACSEC_OFFLOAD_END = 3, + MACSEC_OFFLOAD_MAX = 2, +}; + +enum macsec_validation_type { + MACSEC_VALIDATE_DISABLED = 0, + MACSEC_VALIDATE_CHECK = 1, + MACSEC_VALIDATE_STRICT = 2, + __MACSEC_VALIDATE_END = 3, + MACSEC_VALIDATE_MAX = 2, +}; + +enum maple_status { + ma_active = 0, + ma_start = 1, + ma_root = 2, + ma_none = 3, + ma_pause = 4, + ma_overflow = 5, + ma_underflow = 6, + ma_error = 7, +}; + +enum maple_type { + maple_dense = 0, + maple_leaf_64 = 1, + maple_range_64 = 2, + maple_arange_64 = 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_RELEASE_ALWAYS = 6, + AS_STABLE_WRITES = 7, + AS_INACCESSIBLE = 8, + AS_FOLIO_ORDER_BITS = 5, + AS_FOLIO_ORDER_MIN = 16, + AS_FOLIO_ORDER_MAX = 21, +}; + +enum mapping_status { + MAPPING_OK = 0, + MAPPING_INVALID = 1, + MAPPING_EMPTY = 2, + MAPPING_DATA_FIN = 3, + MAPPING_DUMMY = 4, + MAPPING_BAD_CSUM = 5, + MAPPING_NODSS = 6, +}; + +enum max14577_reg { + MAX14577_REG_DEVICEID = 0, + MAX14577_REG_INT1 = 1, + MAX14577_REG_INT2 = 2, + MAX14577_REG_INT3 = 3, + MAX14577_REG_STATUS1 = 4, + MAX14577_REG_STATUS2 = 5, + MAX14577_REG_STATUS3 = 6, + MAX14577_REG_INTMASK1 = 7, + MAX14577_REG_INTMASK2 = 8, + MAX14577_REG_INTMASK3 = 9, + MAX14577_REG_CDETCTRL1 = 10, + MAX14577_REG_RFU = 11, + MAX14577_REG_CONTROL1 = 12, + MAX14577_REG_CONTROL2 = 13, + MAX14577_REG_CONTROL3 = 14, + MAX14577_REG_CHGCTRL1 = 15, + MAX14577_REG_CHGCTRL2 = 16, + MAX14577_REG_CHGCTRL3 = 17, + MAX14577_REG_CHGCTRL4 = 18, + MAX14577_REG_CHGCTRL5 = 19, + MAX14577_REG_CHGCTRL6 = 20, + MAX14577_REG_CHGCTRL7 = 21, + MAX14577_REG_END = 22, +}; + +enum max77620_chip_id { + MAX77620 = 0, + MAX20024 = 1, + MAX77663 = 2, +}; + +enum max77686_irq_source { + PMIC_INT1 = 0, + PMIC_INT2 = 1, + RTC_INT___2 = 2, + MAX77686_IRQ_GROUP_NR = 3, +}; + +enum max77686_pmic_reg { + MAX77686_REG_DEVICE_ID = 0, + MAX77686_REG_INTSRC = 1, + MAX77686_REG_INT1 = 2, + MAX77686_REG_INT2 = 3, + MAX77686_REG_INT1MSK = 4, + MAX77686_REG_INT2MSK = 5, + MAX77686_REG_STATUS1 = 6, + MAX77686_REG_STATUS2 = 7, + MAX77686_REG_PWRON = 8, + MAX77686_REG_ONOFF_DELAY = 9, + MAX77686_REG_MRSTB = 10, + MAX77686_REG_BUCK1CTRL = 16, + MAX77686_REG_BUCK1OUT = 17, + MAX77686_REG_BUCK2CTRL1 = 18, + MAX77686_REG_BUCK234FREQ = 19, + MAX77686_REG_BUCK2DVS1 = 20, + MAX77686_REG_BUCK2DVS2 = 21, + MAX77686_REG_BUCK2DVS3 = 22, + MAX77686_REG_BUCK2DVS4 = 23, + MAX77686_REG_BUCK2DVS5 = 24, + MAX77686_REG_BUCK2DVS6 = 25, + MAX77686_REG_BUCK2DVS7 = 26, + MAX77686_REG_BUCK2DVS8 = 27, + MAX77686_REG_BUCK3CTRL1 = 28, + MAX77686_REG_BUCK3DVS1 = 30, + MAX77686_REG_BUCK3DVS2 = 31, + MAX77686_REG_BUCK3DVS3 = 32, + MAX77686_REG_BUCK3DVS4 = 33, + MAX77686_REG_BUCK3DVS5 = 34, + MAX77686_REG_BUCK3DVS6 = 35, + MAX77686_REG_BUCK3DVS7 = 36, + MAX77686_REG_BUCK3DVS8 = 37, + MAX77686_REG_BUCK4CTRL1 = 38, + MAX77686_REG_BUCK4DVS1 = 40, + MAX77686_REG_BUCK4DVS2 = 41, + MAX77686_REG_BUCK4DVS3 = 42, + MAX77686_REG_BUCK4DVS4 = 43, + MAX77686_REG_BUCK4DVS5 = 44, + MAX77686_REG_BUCK4DVS6 = 45, + MAX77686_REG_BUCK4DVS7 = 46, + MAX77686_REG_BUCK4DVS8 = 47, + MAX77686_REG_BUCK5CTRL = 48, + MAX77686_REG_BUCK5OUT = 49, + MAX77686_REG_BUCK6CTRL = 50, + MAX77686_REG_BUCK6OUT = 51, + MAX77686_REG_BUCK7CTRL = 52, + MAX77686_REG_BUCK7OUT = 53, + MAX77686_REG_BUCK8CTRL = 54, + MAX77686_REG_BUCK8OUT = 55, + MAX77686_REG_BUCK9CTRL = 56, + MAX77686_REG_BUCK9OUT = 57, + MAX77686_REG_LDO1CTRL1 = 64, + MAX77686_REG_LDO2CTRL1 = 65, + MAX77686_REG_LDO3CTRL1 = 66, + MAX77686_REG_LDO4CTRL1 = 67, + MAX77686_REG_LDO5CTRL1 = 68, + MAX77686_REG_LDO6CTRL1 = 69, + MAX77686_REG_LDO7CTRL1 = 70, + MAX77686_REG_LDO8CTRL1 = 71, + MAX77686_REG_LDO9CTRL1 = 72, + MAX77686_REG_LDO10CTRL1 = 73, + MAX77686_REG_LDO11CTRL1 = 74, + MAX77686_REG_LDO12CTRL1 = 75, + MAX77686_REG_LDO13CTRL1 = 76, + MAX77686_REG_LDO14CTRL1 = 77, + MAX77686_REG_LDO15CTRL1 = 78, + MAX77686_REG_LDO16CTRL1 = 79, + MAX77686_REG_LDO17CTRL1 = 80, + MAX77686_REG_LDO18CTRL1 = 81, + MAX77686_REG_LDO19CTRL1 = 82, + MAX77686_REG_LDO20CTRL1 = 83, + MAX77686_REG_LDO21CTRL1 = 84, + MAX77686_REG_LDO22CTRL1 = 85, + MAX77686_REG_LDO23CTRL1 = 86, + MAX77686_REG_LDO24CTRL1 = 87, + MAX77686_REG_LDO25CTRL1 = 88, + MAX77686_REG_LDO26CTRL1 = 89, + MAX77686_REG_LDO1CTRL2 = 96, + MAX77686_REG_LDO2CTRL2 = 97, + MAX77686_REG_LDO3CTRL2 = 98, + MAX77686_REG_LDO4CTRL2 = 99, + MAX77686_REG_LDO5CTRL2 = 100, + MAX77686_REG_LDO6CTRL2 = 101, + MAX77686_REG_LDO7CTRL2 = 102, + MAX77686_REG_LDO8CTRL2 = 103, + MAX77686_REG_LDO9CTRL2 = 104, + MAX77686_REG_LDO10CTRL2 = 105, + MAX77686_REG_LDO11CTRL2 = 106, + MAX77686_REG_LDO12CTRL2 = 107, + MAX77686_REG_LDO13CTRL2 = 108, + MAX77686_REG_LDO14CTRL2 = 109, + MAX77686_REG_LDO15CTRL2 = 110, + MAX77686_REG_LDO16CTRL2 = 111, + MAX77686_REG_LDO17CTRL2 = 112, + MAX77686_REG_LDO18CTRL2 = 113, + MAX77686_REG_LDO19CTRL2 = 114, + MAX77686_REG_LDO20CTRL2 = 115, + MAX77686_REG_LDO21CTRL2 = 116, + MAX77686_REG_LDO22CTRL2 = 117, + MAX77686_REG_LDO23CTRL2 = 118, + MAX77686_REG_LDO24CTRL2 = 119, + MAX77686_REG_LDO25CTRL2 = 120, + MAX77686_REG_LDO26CTRL2 = 121, + MAX77686_REG_BBAT_CHG = 126, + MAX77686_REG_32KHZ = 127, + MAX77686_REG_PMIC_END = 128, +}; + +enum max77686_types { + TYPE_MAX77686 = 0, + TYPE_MAX77802 = 1, +}; + +enum max77693_haptic_reg { + MAX77693_HAPTIC_REG_STATUS = 0, + MAX77693_HAPTIC_REG_CONFIG1 = 1, + MAX77693_HAPTIC_REG_CONFIG2 = 2, + MAX77693_HAPTIC_REG_CONFIG_CHNL = 3, + MAX77693_HAPTIC_REG_CONFG_CYC1 = 4, + MAX77693_HAPTIC_REG_CONFG_CYC2 = 5, + MAX77693_HAPTIC_REG_CONFIG_PER1 = 6, + MAX77693_HAPTIC_REG_CONFIG_PER2 = 7, + MAX77693_HAPTIC_REG_CONFIG_PER3 = 8, + MAX77693_HAPTIC_REG_CONFIG_PER4 = 9, + MAX77693_HAPTIC_REG_CONFIG_DUTY1 = 10, + MAX77693_HAPTIC_REG_CONFIG_DUTY2 = 11, + MAX77693_HAPTIC_REG_CONFIG_PWM1 = 12, + MAX77693_HAPTIC_REG_CONFIG_PWM2 = 13, + MAX77693_HAPTIC_REG_CONFIG_PWM3 = 14, + MAX77693_HAPTIC_REG_CONFIG_PWM4 = 15, + MAX77693_HAPTIC_REG_REV = 16, + MAX77693_HAPTIC_REG_END = 17, +}; + +enum max77693_muic_reg { + MAX77693_MUIC_REG_ID = 0, + MAX77693_MUIC_REG_INT1 = 1, + MAX77693_MUIC_REG_INT2 = 2, + MAX77693_MUIC_REG_INT3 = 3, + MAX77693_MUIC_REG_STATUS1 = 4, + MAX77693_MUIC_REG_STATUS2 = 5, + MAX77693_MUIC_REG_STATUS3 = 6, + MAX77693_MUIC_REG_INTMASK1 = 7, + MAX77693_MUIC_REG_INTMASK2 = 8, + MAX77693_MUIC_REG_INTMASK3 = 9, + MAX77693_MUIC_REG_CDETCTRL1 = 10, + MAX77693_MUIC_REG_CDETCTRL2 = 11, + MAX77693_MUIC_REG_CTRL1 = 12, + MAX77693_MUIC_REG_CTRL2 = 13, + MAX77693_MUIC_REG_CTRL3 = 14, + MAX77693_MUIC_REG_END = 15, +}; + +enum max77693_pmic_reg { + MAX77693_LED_REG_IFLASH1 = 0, + MAX77693_LED_REG_IFLASH2 = 1, + MAX77693_LED_REG_ITORCH = 2, + MAX77693_LED_REG_ITORCHTIMER = 3, + MAX77693_LED_REG_FLASH_TIMER = 4, + MAX77693_LED_REG_FLASH_EN = 5, + MAX77693_LED_REG_MAX_FLASH1 = 6, + MAX77693_LED_REG_MAX_FLASH2 = 7, + MAX77693_LED_REG_MAX_FLASH3 = 8, + MAX77693_LED_REG_MAX_FLASH4 = 9, + MAX77693_LED_REG_VOUT_CNTL = 10, + MAX77693_LED_REG_VOUT_FLASH1 = 11, + MAX77693_LED_REG_VOUT_FLASH2 = 12, + MAX77693_LED_REG_FLASH_INT = 14, + MAX77693_LED_REG_FLASH_INT_MASK = 15, + MAX77693_LED_REG_FLASH_STATUS = 16, + MAX77693_PMIC_REG_PMIC_ID1 = 32, + MAX77693_PMIC_REG_PMIC_ID2 = 33, + MAX77693_PMIC_REG_INTSRC = 34, + MAX77693_PMIC_REG_INTSRC_MASK = 35, + MAX77693_PMIC_REG_TOPSYS_INT = 36, + MAX77693_PMIC_REG_TOPSYS_INT_MASK = 38, + MAX77693_PMIC_REG_TOPSYS_STAT = 40, + MAX77693_PMIC_REG_MAINCTRL1 = 42, + MAX77693_PMIC_REG_LSCNFG = 43, + MAX77693_CHG_REG_CHG_INT = 176, + MAX77693_CHG_REG_CHG_INT_MASK = 177, + MAX77693_CHG_REG_CHG_INT_OK = 178, + MAX77693_CHG_REG_CHG_DETAILS_00 = 179, + MAX77693_CHG_REG_CHG_DETAILS_01 = 180, + MAX77693_CHG_REG_CHG_DETAILS_02 = 181, + MAX77693_CHG_REG_CHG_DETAILS_03 = 182, + MAX77693_CHG_REG_CHG_CNFG_00 = 183, + MAX77693_CHG_REG_CHG_CNFG_01 = 184, + MAX77693_CHG_REG_CHG_CNFG_02 = 185, + MAX77693_CHG_REG_CHG_CNFG_03 = 186, + MAX77693_CHG_REG_CHG_CNFG_04 = 187, + MAX77693_CHG_REG_CHG_CNFG_05 = 188, + MAX77693_CHG_REG_CHG_CNFG_06 = 189, + MAX77693_CHG_REG_CHG_CNFG_07 = 190, + MAX77693_CHG_REG_CHG_CNFG_08 = 191, + MAX77693_CHG_REG_CHG_CNFG_09 = 192, + MAX77693_CHG_REG_CHG_CNFG_10 = 193, + MAX77693_CHG_REG_CHG_CNFG_11 = 194, + MAX77693_CHG_REG_CHG_CNFG_12 = 195, + MAX77693_CHG_REG_CHG_CNFG_13 = 196, + MAX77693_CHG_REG_CHG_CNFG_14 = 197, + MAX77693_CHG_REG_SAFEOUT_CTRL = 198, + MAX77693_PMIC_REG_END = 199, +}; + +enum max77693_types { + TYPE_MAX77693_UNKNOWN = 0, + TYPE_MAX77693 = 1, + TYPE_MAX77843 = 2, + TYPE_MAX77693_NUM = 3, +}; + +enum max77802_pmic_reg { + MAX77802_REG_DEVICE_ID = 0, + MAX77802_REG_INTSRC = 1, + MAX77802_REG_INT1 = 2, + MAX77802_REG_INT2 = 3, + MAX77802_REG_INT1MSK = 4, + MAX77802_REG_INT2MSK = 5, + MAX77802_REG_STATUS1 = 6, + MAX77802_REG_STATUS2 = 7, + MAX77802_REG_PWRON = 8, + MAX77802_REG_MRSTB = 10, + MAX77802_REG_EPWRHOLD = 11, + MAX77802_REG_BOOSTCTRL = 14, + MAX77802_REG_BOOSTOUT = 15, + MAX77802_REG_BUCK1CTRL = 16, + MAX77802_REG_BUCK1DVS1 = 17, + MAX77802_REG_BUCK1DVS2 = 18, + MAX77802_REG_BUCK1DVS3 = 19, + MAX77802_REG_BUCK1DVS4 = 20, + MAX77802_REG_BUCK1DVS5 = 21, + MAX77802_REG_BUCK1DVS6 = 22, + MAX77802_REG_BUCK1DVS7 = 23, + MAX77802_REG_BUCK1DVS8 = 24, + MAX77802_REG_BUCK2CTRL1 = 26, + MAX77802_REG_BUCK2CTRL2 = 27, + MAX77802_REG_BUCK2PHTRAN = 28, + MAX77802_REG_BUCK2DVS1 = 29, + MAX77802_REG_BUCK2DVS2 = 30, + MAX77802_REG_BUCK2DVS3 = 31, + MAX77802_REG_BUCK2DVS4 = 32, + MAX77802_REG_BUCK2DVS5 = 33, + MAX77802_REG_BUCK2DVS6 = 34, + MAX77802_REG_BUCK2DVS7 = 35, + MAX77802_REG_BUCK2DVS8 = 36, + MAX77802_REG_BUCK3CTRL1 = 39, + MAX77802_REG_BUCK3DVS1 = 40, + MAX77802_REG_BUCK3DVS2 = 41, + MAX77802_REG_BUCK3DVS3 = 42, + MAX77802_REG_BUCK3DVS4 = 43, + MAX77802_REG_BUCK3DVS5 = 44, + MAX77802_REG_BUCK3DVS6 = 45, + MAX77802_REG_BUCK3DVS7 = 46, + MAX77802_REG_BUCK3DVS8 = 47, + MAX77802_REG_BUCK4CTRL1 = 55, + MAX77802_REG_BUCK4DVS1 = 56, + MAX77802_REG_BUCK4DVS2 = 57, + MAX77802_REG_BUCK4DVS3 = 58, + MAX77802_REG_BUCK4DVS4 = 59, + MAX77802_REG_BUCK4DVS5 = 60, + MAX77802_REG_BUCK4DVS6 = 61, + MAX77802_REG_BUCK4DVS7 = 62, + MAX77802_REG_BUCK4DVS8 = 63, + MAX77802_REG_BUCK5CTRL = 65, + MAX77802_REG_BUCK5OUT = 66, + MAX77802_REG_BUCK6CTRL = 68, + MAX77802_REG_BUCK6DVS1 = 69, + MAX77802_REG_BUCK6DVS2 = 70, + MAX77802_REG_BUCK6DVS3 = 71, + MAX77802_REG_BUCK6DVS4 = 72, + MAX77802_REG_BUCK6DVS5 = 73, + MAX77802_REG_BUCK6DVS6 = 74, + MAX77802_REG_BUCK6DVS7 = 75, + MAX77802_REG_BUCK6DVS8 = 76, + MAX77802_REG_BUCK7CTRL = 78, + MAX77802_REG_BUCK7OUT = 79, + MAX77802_REG_BUCK8CTRL = 81, + MAX77802_REG_BUCK8OUT = 82, + MAX77802_REG_BUCK9CTRL = 84, + MAX77802_REG_BUCK9OUT = 85, + MAX77802_REG_BUCK10CTRL = 87, + MAX77802_REG_BUCK10OUT = 88, + MAX77802_REG_LDO1CTRL1 = 96, + MAX77802_REG_LDO2CTRL1 = 97, + MAX77802_REG_LDO3CTRL1 = 98, + MAX77802_REG_LDO4CTRL1 = 99, + MAX77802_REG_LDO5CTRL1 = 100, + MAX77802_REG_LDO6CTRL1 = 101, + MAX77802_REG_LDO7CTRL1 = 102, + MAX77802_REG_LDO8CTRL1 = 103, + MAX77802_REG_LDO9CTRL1 = 104, + MAX77802_REG_LDO10CTRL1 = 105, + MAX77802_REG_LDO11CTRL1 = 106, + MAX77802_REG_LDO12CTRL1 = 107, + MAX77802_REG_LDO13CTRL1 = 108, + MAX77802_REG_LDO14CTRL1 = 109, + MAX77802_REG_LDO15CTRL1 = 110, + MAX77802_REG_LDO17CTRL1 = 112, + MAX77802_REG_LDO18CTRL1 = 113, + MAX77802_REG_LDO19CTRL1 = 114, + MAX77802_REG_LDO20CTRL1 = 115, + MAX77802_REG_LDO21CTRL1 = 116, + MAX77802_REG_LDO22CTRL1 = 117, + MAX77802_REG_LDO23CTRL1 = 118, + MAX77802_REG_LDO24CTRL1 = 119, + MAX77802_REG_LDO25CTRL1 = 120, + MAX77802_REG_LDO26CTRL1 = 121, + MAX77802_REG_LDO27CTRL1 = 122, + MAX77802_REG_LDO28CTRL1 = 123, + MAX77802_REG_LDO29CTRL1 = 124, + MAX77802_REG_LDO30CTRL1 = 125, + MAX77802_REG_LDO32CTRL1 = 127, + MAX77802_REG_LDO33CTRL1 = 128, + MAX77802_REG_LDO34CTRL1 = 129, + MAX77802_REG_LDO35CTRL1 = 130, + MAX77802_REG_LDO1CTRL2 = 144, + MAX77802_REG_LDO2CTRL2 = 145, + MAX77802_REG_LDO3CTRL2 = 146, + MAX77802_REG_LDO4CTRL2 = 147, + MAX77802_REG_LDO5CTRL2 = 148, + MAX77802_REG_LDO6CTRL2 = 149, + MAX77802_REG_LDO7CTRL2 = 150, + MAX77802_REG_LDO8CTRL2 = 151, + MAX77802_REG_LDO9CTRL2 = 152, + MAX77802_REG_LDO10CTRL2 = 153, + MAX77802_REG_LDO11CTRL2 = 154, + MAX77802_REG_LDO12CTRL2 = 155, + MAX77802_REG_LDO13CTRL2 = 156, + MAX77802_REG_LDO14CTRL2 = 157, + MAX77802_REG_LDO15CTRL2 = 158, + MAX77802_REG_LDO17CTRL2 = 160, + MAX77802_REG_LDO18CTRL2 = 161, + MAX77802_REG_LDO19CTRL2 = 162, + MAX77802_REG_LDO20CTRL2 = 163, + MAX77802_REG_LDO21CTRL2 = 164, + MAX77802_REG_LDO22CTRL2 = 165, + MAX77802_REG_LDO23CTRL2 = 166, + MAX77802_REG_LDO24CTRL2 = 167, + MAX77802_REG_LDO25CTRL2 = 168, + MAX77802_REG_LDO26CTRL2 = 169, + MAX77802_REG_LDO27CTRL2 = 170, + MAX77802_REG_LDO28CTRL2 = 171, + MAX77802_REG_LDO29CTRL2 = 172, + MAX77802_REG_LDO30CTRL2 = 173, + MAX77802_REG_LDO32CTRL2 = 175, + MAX77802_REG_LDO33CTRL2 = 176, + MAX77802_REG_LDO34CTRL2 = 177, + MAX77802_REG_LDO35CTRL2 = 178, + MAX77802_REG_BBAT_CHG = 180, + MAX77802_REG_32KHZ = 181, + MAX77802_REG_PMIC_END = 182, +}; + +enum max77802_rtc_reg { + MAX77802_RTC_INT = 192, + MAX77802_RTC_INTM = 193, + MAX77802_RTC_CONTROLM = 194, + MAX77802_RTC_CONTROL = 195, + MAX77802_RTC_UPDATE0 = 196, + MAX77802_RTC_UPDATE1 = 197, + MAX77802_WTSR_SMPL_CNTL = 198, + MAX77802_RTC_SEC = 199, + MAX77802_RTC_MIN = 200, + MAX77802_RTC_HOUR = 201, + MAX77802_RTC_WEEKDAY = 202, + MAX77802_RTC_MONTH = 203, + MAX77802_RTC_YEAR = 204, + MAX77802_RTC_MONTHDAY = 205, + MAX77802_RTC_AE1 = 206, + MAX77802_ALARM1_SEC = 207, + MAX77802_ALARM1_MIN = 208, + MAX77802_ALARM1_HOUR = 209, + MAX77802_ALARM1_WEEKDAY = 210, + MAX77802_ALARM1_MONTH = 211, + MAX77802_ALARM1_YEAR = 212, + MAX77802_ALARM1_DATE = 213, + MAX77802_RTC_AE2 = 214, + MAX77802_ALARM2_SEC = 215, + MAX77802_ALARM2_MIN = 216, + MAX77802_ALARM2_HOUR = 217, + MAX77802_ALARM2_WEEKDAY = 218, + MAX77802_ALARM2_MONTH = 219, + MAX77802_ALARM2_YEAR = 220, + MAX77802_ALARM2_DATE = 221, + MAX77802_RTC_END = 223, +}; + +enum max77836_fg_reg { + MAX77836_FG_REG_VCELL_MSB = 2, + MAX77836_FG_REG_VCELL_LSB = 3, + MAX77836_FG_REG_SOC_MSB = 4, + MAX77836_FG_REG_SOC_LSB = 5, + MAX77836_FG_REG_MODE_H = 6, + MAX77836_FG_REG_MODE_L = 7, + MAX77836_FG_REG_VERSION_MSB = 8, + MAX77836_FG_REG_VERSION_LSB = 9, + MAX77836_FG_REG_HIBRT_H = 10, + MAX77836_FG_REG_HIBRT_L = 11, + MAX77836_FG_REG_CONFIG_H = 12, + MAX77836_FG_REG_CONFIG_L = 13, + MAX77836_FG_REG_VALRT_MIN = 20, + MAX77836_FG_REG_VALRT_MAX = 21, + MAX77836_FG_REG_CRATE_MSB = 22, + MAX77836_FG_REG_CRATE_LSB = 23, + MAX77836_FG_REG_VRESET = 24, + MAX77836_FG_REG_FGID = 25, + MAX77836_FG_REG_STATUS_H = 26, + MAX77836_FG_REG_STATUS_L = 27, + MAX77836_FG_REG_END = 28, +}; + +enum max77836_pmic_reg { + MAX77836_PMIC_REG_PMIC_ID = 32, + MAX77836_PMIC_REG_PMIC_REV = 33, + MAX77836_PMIC_REG_INTSRC = 34, + MAX77836_PMIC_REG_INTSRC_MASK = 35, + MAX77836_PMIC_REG_TOPSYS_INT = 36, + MAX77836_PMIC_REG_TOPSYS_INT_MASK = 38, + MAX77836_PMIC_REG_TOPSYS_STAT = 40, + MAX77836_PMIC_REG_MRSTB_CNTL = 42, + MAX77836_PMIC_REG_LSCNFG = 43, + MAX77836_LDO_REG_CNFG1_LDO1 = 81, + MAX77836_LDO_REG_CNFG2_LDO1 = 82, + MAX77836_LDO_REG_CNFG1_LDO2 = 83, + MAX77836_LDO_REG_CNFG2_LDO2 = 84, + MAX77836_LDO_REG_CNFG_LDO_BIAS = 85, + MAX77836_COMP_REG_COMP1 = 96, + MAX77836_PMIC_REG_END = 97, +}; + +enum max77843_charger_reg { + MAX77843_CHG_REG_CHG_INT = 176, + MAX77843_CHG_REG_CHG_INT_MASK = 177, + MAX77843_CHG_REG_CHG_INT_OK = 178, + MAX77843_CHG_REG_CHG_DTLS_00 = 179, + MAX77843_CHG_REG_CHG_DTLS_01 = 180, + MAX77843_CHG_REG_CHG_DTLS_02 = 181, + MAX77843_CHG_REG_CHG_CNFG_00 = 183, + MAX77843_CHG_REG_CHG_CNFG_01 = 184, + MAX77843_CHG_REG_CHG_CNFG_02 = 185, + MAX77843_CHG_REG_CHG_CNFG_03 = 186, + MAX77843_CHG_REG_CHG_CNFG_04 = 187, + MAX77843_CHG_REG_CHG_CNFG_06 = 189, + MAX77843_CHG_REG_CHG_CNFG_07 = 190, + MAX77843_CHG_REG_CHG_CNFG_09 = 192, + MAX77843_CHG_REG_CHG_CNFG_10 = 193, + MAX77843_CHG_REG_CHG_CNFG_11 = 194, + MAX77843_CHG_REG_CHG_CNFG_12 = 195, + MAX77843_CHG_REG_END = 196, +}; + +enum max77843_sys_reg { + MAX77843_SYS_REG_PMICID = 0, + MAX77843_SYS_REG_PMICREV = 1, + MAX77843_SYS_REG_MAINCTRL1 = 2, + MAX77843_SYS_REG_INTSRC = 34, + MAX77843_SYS_REG_INTSRCMASK = 35, + MAX77843_SYS_REG_SYSINTSRC = 36, + MAX77843_SYS_REG_SYSINTMASK = 38, + MAX77843_SYS_REG_TOPSYS_STAT = 40, + MAX77843_SYS_REG_SAFEOUTCTRL = 198, + MAX77843_SYS_REG_END = 199, +}; + +enum max8997_haptic_motor_type { + MAX8997_HAPTIC_ERM = 0, + MAX8997_HAPTIC_LRA = 1, +}; + +enum max8997_haptic_pulse_mode { + MAX8997_EXTERNAL_MODE = 0, + MAX8997_INTERNAL_MODE = 1, +}; + +enum max8997_haptic_pwm_divisor { + MAX8997_PWM_DIVISOR_32 = 0, + MAX8997_PWM_DIVISOR_64 = 1, + MAX8997_PWM_DIVISOR_128 = 2, + MAX8997_PWM_DIVISOR_256 = 3, +}; + +enum max8997_haptic_reg { + MAX8997_HAPTIC_REG_GENERAL = 0, + MAX8997_HAPTIC_REG_CONF1 = 1, + MAX8997_HAPTIC_REG_CONF2 = 2, + MAX8997_HAPTIC_REG_DRVCONF = 3, + MAX8997_HAPTIC_REG_CYCLECONF1 = 4, + MAX8997_HAPTIC_REG_CYCLECONF2 = 5, + MAX8997_HAPTIC_REG_SIGCONF1 = 6, + MAX8997_HAPTIC_REG_SIGCONF2 = 7, + MAX8997_HAPTIC_REG_SIGCONF3 = 8, + MAX8997_HAPTIC_REG_SIGCONF4 = 9, + MAX8997_HAPTIC_REG_SIGDC1 = 10, + MAX8997_HAPTIC_REG_SIGDC2 = 11, + MAX8997_HAPTIC_REG_SIGPWMDC1 = 12, + MAX8997_HAPTIC_REG_SIGPWMDC2 = 13, + MAX8997_HAPTIC_REG_SIGPWMDC3 = 14, + MAX8997_HAPTIC_REG_SIGPWMDC4 = 15, + MAX8997_HAPTIC_REG_MTR_REV = 16, + MAX8997_HAPTIC_REG_END = 17, +}; + +enum max8997_irq { + MAX8997_PMICIRQ_PWRONR = 0, + MAX8997_PMICIRQ_PWRONF = 1, + MAX8997_PMICIRQ_PWRON1SEC = 2, + MAX8997_PMICIRQ_JIGONR = 3, + MAX8997_PMICIRQ_JIGONF = 4, + MAX8997_PMICIRQ_LOWBAT2 = 5, + MAX8997_PMICIRQ_LOWBAT1 = 6, + MAX8997_PMICIRQ_JIGR = 7, + MAX8997_PMICIRQ_JIGF = 8, + MAX8997_PMICIRQ_MR = 9, + MAX8997_PMICIRQ_DVS1OK = 10, + MAX8997_PMICIRQ_DVS2OK = 11, + MAX8997_PMICIRQ_DVS3OK = 12, + MAX8997_PMICIRQ_DVS4OK = 13, + MAX8997_PMICIRQ_CHGINS = 14, + MAX8997_PMICIRQ_CHGRM = 15, + MAX8997_PMICIRQ_DCINOVP = 16, + MAX8997_PMICIRQ_TOPOFFR = 17, + MAX8997_PMICIRQ_CHGRSTF = 18, + MAX8997_PMICIRQ_MBCHGTMEXPD = 19, + MAX8997_PMICIRQ_RTC60S = 20, + MAX8997_PMICIRQ_RTCA1 = 21, + MAX8997_PMICIRQ_RTCA2 = 22, + MAX8997_PMICIRQ_SMPL_INT = 23, + MAX8997_PMICIRQ_RTC1S = 24, + MAX8997_PMICIRQ_WTSR = 25, + MAX8997_MUICIRQ_ADCError = 26, + MAX8997_MUICIRQ_ADCLow = 27, + MAX8997_MUICIRQ_ADC = 28, + MAX8997_MUICIRQ_VBVolt = 29, + MAX8997_MUICIRQ_DBChg = 30, + MAX8997_MUICIRQ_DCDTmr = 31, + MAX8997_MUICIRQ_ChgDetRun = 32, + MAX8997_MUICIRQ_ChgTyp = 33, + MAX8997_MUICIRQ_OVP = 34, + MAX8997_IRQ_NR = 35, +}; + +enum max8997_irq_source { + PMIC_INT1___2 = 0, + PMIC_INT2___2 = 1, + PMIC_INT3 = 2, + PMIC_INT4 = 3, + FUEL_GAUGE = 4, + MUIC_INT1 = 5, + MUIC_INT2 = 6, + MUIC_INT3 = 7, + GPIO_LOW = 8, + GPIO_HI = 9, + FLASH_STATUS = 10, + MAX8997_IRQ_GROUP_NR = 11, +}; + +enum max8997_led_mode { + MAX8997_NONE = 0, + MAX8997_FLASH_MODE = 1, + MAX8997_MOVIE_MODE = 2, + MAX8997_FLASH_PIN_CONTROL_MODE = 3, + MAX8997_MOVIE_PIN_CONTROL_MODE = 4, +}; + +enum max8997_muic_reg { + MAX8997_MUIC_REG_ID = 0, + MAX8997_MUIC_REG_INT1 = 1, + MAX8997_MUIC_REG_INT2 = 2, + MAX8997_MUIC_REG_INT3 = 3, + MAX8997_MUIC_REG_STATUS1 = 4, + MAX8997_MUIC_REG_STATUS2 = 5, + MAX8997_MUIC_REG_STATUS3 = 6, + MAX8997_MUIC_REG_INTMASK1 = 7, + MAX8997_MUIC_REG_INTMASK2 = 8, + MAX8997_MUIC_REG_INTMASK3 = 9, + MAX8997_MUIC_REG_CDETCTRL = 10, + MAX8997_MUIC_REG_CONTROL1 = 12, + MAX8997_MUIC_REG_CONTROL2 = 13, + MAX8997_MUIC_REG_CONTROL3 = 14, + MAX8997_MUIC_REG_END = 15, +}; + +enum max8997_pmic_reg { + MAX8997_REG_PMIC_ID0 = 0, + MAX8997_REG_PMIC_ID1 = 1, + MAX8997_REG_INTSRC = 2, + MAX8997_REG_INT1 = 3, + MAX8997_REG_INT2 = 4, + MAX8997_REG_INT3 = 5, + MAX8997_REG_INT4 = 6, + MAX8997_REG_INT1MSK = 8, + MAX8997_REG_INT2MSK = 9, + MAX8997_REG_INT3MSK = 10, + MAX8997_REG_INT4MSK = 11, + MAX8997_REG_STATUS1 = 13, + MAX8997_REG_STATUS2 = 14, + MAX8997_REG_STATUS3 = 15, + MAX8997_REG_STATUS4 = 16, + MAX8997_REG_MAINCON1 = 19, + MAX8997_REG_MAINCON2 = 20, + MAX8997_REG_BUCKRAMP = 21, + MAX8997_REG_BUCK1CTRL = 24, + MAX8997_REG_BUCK1DVS1 = 25, + MAX8997_REG_BUCK1DVS2 = 26, + MAX8997_REG_BUCK1DVS3 = 27, + MAX8997_REG_BUCK1DVS4 = 28, + MAX8997_REG_BUCK1DVS5 = 29, + MAX8997_REG_BUCK1DVS6 = 30, + MAX8997_REG_BUCK1DVS7 = 31, + MAX8997_REG_BUCK1DVS8 = 32, + MAX8997_REG_BUCK2CTRL = 33, + MAX8997_REG_BUCK2DVS1 = 34, + MAX8997_REG_BUCK2DVS2 = 35, + MAX8997_REG_BUCK2DVS3 = 36, + MAX8997_REG_BUCK2DVS4 = 37, + MAX8997_REG_BUCK2DVS5 = 38, + MAX8997_REG_BUCK2DVS6 = 39, + MAX8997_REG_BUCK2DVS7 = 40, + MAX8997_REG_BUCK2DVS8 = 41, + MAX8997_REG_BUCK3CTRL = 42, + MAX8997_REG_BUCK3DVS = 43, + MAX8997_REG_BUCK4CTRL = 44, + MAX8997_REG_BUCK4DVS = 45, + MAX8997_REG_BUCK5CTRL = 46, + MAX8997_REG_BUCK5DVS1 = 47, + MAX8997_REG_BUCK5DVS2 = 48, + MAX8997_REG_BUCK5DVS3 = 49, + MAX8997_REG_BUCK5DVS4 = 50, + MAX8997_REG_BUCK5DVS5 = 51, + MAX8997_REG_BUCK5DVS6 = 52, + MAX8997_REG_BUCK5DVS7 = 53, + MAX8997_REG_BUCK5DVS8 = 54, + MAX8997_REG_BUCK6CTRL = 55, + MAX8997_REG_BUCK6BPSKIPCTRL = 56, + MAX8997_REG_BUCK7CTRL = 57, + MAX8997_REG_BUCK7DVS = 58, + MAX8997_REG_LDO1CTRL = 59, + MAX8997_REG_LDO2CTRL = 60, + MAX8997_REG_LDO3CTRL = 61, + MAX8997_REG_LDO4CTRL = 62, + MAX8997_REG_LDO5CTRL = 63, + MAX8997_REG_LDO6CTRL = 64, + MAX8997_REG_LDO7CTRL = 65, + MAX8997_REG_LDO8CTRL = 66, + MAX8997_REG_LDO9CTRL = 67, + MAX8997_REG_LDO10CTRL = 68, + MAX8997_REG_LDO11CTRL = 69, + MAX8997_REG_LDO12CTRL = 70, + MAX8997_REG_LDO13CTRL = 71, + MAX8997_REG_LDO14CTRL = 72, + MAX8997_REG_LDO15CTRL = 73, + MAX8997_REG_LDO16CTRL = 74, + MAX8997_REG_LDO17CTRL = 75, + MAX8997_REG_LDO18CTRL = 76, + MAX8997_REG_LDO21CTRL = 77, + MAX8997_REG_MBCCTRL1 = 80, + MAX8997_REG_MBCCTRL2 = 81, + MAX8997_REG_MBCCTRL3 = 82, + MAX8997_REG_MBCCTRL4 = 83, + MAX8997_REG_MBCCTRL5 = 84, + MAX8997_REG_MBCCTRL6 = 85, + MAX8997_REG_OTPCGHCVS = 86, + MAX8997_REG_SAFEOUTCTRL = 90, + MAX8997_REG_LBCNFG1 = 94, + MAX8997_REG_LBCNFG2 = 95, + MAX8997_REG_BBCCTRL = 96, + MAX8997_REG_FLASH1_CUR = 99, + MAX8997_REG_FLASH2_CUR = 100, + MAX8997_REG_MOVIE_CUR = 101, + MAX8997_REG_GSMB_CUR = 102, + MAX8997_REG_BOOST_CNTL = 103, + MAX8997_REG_LEN_CNTL = 104, + MAX8997_REG_FLASH_CNTL = 105, + MAX8997_REG_WDT_CNTL = 106, + MAX8997_REG_MAXFLASH1 = 107, + MAX8997_REG_MAXFLASH2 = 108, + MAX8997_REG_FLASHSTATUS = 109, + MAX8997_REG_FLASHSTATUSMASK = 110, + MAX8997_REG_GPIOCNTL1 = 112, + MAX8997_REG_GPIOCNTL2 = 113, + MAX8997_REG_GPIOCNTL3 = 114, + MAX8997_REG_GPIOCNTL4 = 115, + MAX8997_REG_GPIOCNTL5 = 116, + MAX8997_REG_GPIOCNTL6 = 117, + MAX8997_REG_GPIOCNTL7 = 118, + MAX8997_REG_GPIOCNTL8 = 119, + MAX8997_REG_GPIOCNTL9 = 120, + MAX8997_REG_GPIOCNTL10 = 121, + MAX8997_REG_GPIOCNTL11 = 122, + MAX8997_REG_GPIOCNTL12 = 123, + MAX8997_REG_LDO1CONFIG = 128, + MAX8997_REG_LDO2CONFIG = 129, + MAX8997_REG_LDO3CONFIG = 130, + MAX8997_REG_LDO4CONFIG = 131, + MAX8997_REG_LDO5CONFIG = 132, + MAX8997_REG_LDO6CONFIG = 133, + MAX8997_REG_LDO7CONFIG = 134, + MAX8997_REG_LDO8CONFIG = 135, + MAX8997_REG_LDO9CONFIG = 136, + MAX8997_REG_LDO10CONFIG = 137, + MAX8997_REG_LDO11CONFIG = 138, + MAX8997_REG_LDO12CONFIG = 139, + MAX8997_REG_LDO13CONFIG = 140, + MAX8997_REG_LDO14CONFIG = 141, + MAX8997_REG_LDO15CONFIG = 142, + MAX8997_REG_LDO16CONFIG = 143, + MAX8997_REG_LDO17CONFIG = 144, + MAX8997_REG_LDO18CONFIG = 145, + MAX8997_REG_LDO21CONFIG = 146, + MAX8997_REG_DVSOKTIMER1 = 151, + MAX8997_REG_DVSOKTIMER2 = 152, + MAX8997_REG_DVSOKTIMER4 = 153, + MAX8997_REG_DVSOKTIMER5 = 154, + MAX8997_REG_PMIC_END = 155, +}; + +enum max8997_types { + TYPE_MAX8997 = 0, + TYPE_MAX8966 = 1, +}; + +enum maxim_device_type { + MAXIM_DEVICE_TYPE_UNKNOWN = 0, + MAXIM_DEVICE_TYPE_MAX14577 = 1, + MAXIM_DEVICE_TYPE_MAX77836 = 2, + MAXIM_DEVICE_TYPE_NUM = 3, +}; + +enum mc_cmd_status { + MC_CMD_STATUS_OK = 0, + MC_CMD_STATUS_READY = 1, + MC_CMD_STATUS_AUTH_ERR = 3, + MC_CMD_STATUS_NO_PRIVILEGE = 4, + MC_CMD_STATUS_DMA_ERR = 5, + MC_CMD_STATUS_CONFIG_ERR = 6, + MC_CMD_STATUS_TIMEOUT = 7, + MC_CMD_STATUS_NO_RESOURCE = 8, + MC_CMD_STATUS_NO_MEMORY = 9, + MC_CMD_STATUS_BUSY = 10, + MC_CMD_STATUS_UNSUPPORTED_OP = 11, + MC_CMD_STATUS_INVALID_STATE = 12, +}; + +enum mctp_neigh_source { + MCTP_NEIGH_STATIC = 0, + MCTP_NEIGH_DISCOVER = 1, +}; + +enum mctp_phys_binding { + MCTP_PHYS_BINDING_UNSPEC = 0, + MCTP_PHYS_BINDING_SMBUS = 1, + MCTP_PHYS_BINDING_PCIE_VDM = 2, + MCTP_PHYS_BINDING_USB = 3, + MCTP_PHYS_BINDING_KCS = 4, + MCTP_PHYS_BINDING_SERIAL = 5, + MCTP_PHYS_BINDING_I3C = 6, + MCTP_PHYS_BINDING_MMBI = 7, + MCTP_PHYS_BINDING_PCC = 8, + MCTP_PHYS_BINDING_UCIE = 9, + MCTP_PHYS_BINDING_VENDOR = 255, +}; + +enum mctrl_gpio_idx { + UART_GPIO_CTS = 0, + UART_GPIO_DSR = 1, + UART_GPIO_DCD = 2, + UART_GPIO_RNG = 3, + UART_GPIO_RI = 3, + UART_GPIO_RTS = 4, + UART_GPIO_DTR = 5, + UART_GPIO_MAX = 6, +}; + +enum md_ro_state { + MD_RDWR = 0, + MD_RDONLY = 1, + MD_AUTO_READ = 2, + MD_MAX_STATE = 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_NOT_READY = 8, + MD_BROKEN = 9, + MD_DELETED = 10, +}; + +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 mem_type { + MEM_EMPTY = 0, + MEM_RESERVED = 1, + MEM_UNKNOWN = 2, + MEM_FPM = 3, + MEM_EDO = 4, + MEM_BEDO = 5, + MEM_SDR = 6, + MEM_RDR = 7, + MEM_DDR = 8, + MEM_RDDR = 9, + MEM_RMBS = 10, + MEM_DDR2 = 11, + MEM_FB_DDR2 = 12, + MEM_RDDR2 = 13, + MEM_XDR = 14, + MEM_DDR3 = 15, + MEM_RDDR3 = 16, + MEM_LRDDR3 = 17, + MEM_LPDDR3 = 18, + MEM_DDR4 = 19, + MEM_RDDR4 = 20, + MEM_LRDDR4 = 21, + MEM_LPDDR4 = 22, + MEM_DDR5 = 23, + MEM_RDDR5 = 24, + MEM_LRDDR5 = 25, + MEM_NVDIMM = 26, + MEM_WIO2 = 27, + MEM_HBM2 = 28, + MEM_HBM3 = 29, +}; + +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 memblock_flags { + MEMBLOCK_NONE = 0, + MEMBLOCK_HOTPLUG = 1, + MEMBLOCK_MIRROR = 2, + MEMBLOCK_NOMAP = 4, + MEMBLOCK_DRIVER_MANAGED = 8, + MEMBLOCK_RSRV_NOINIT = 16, +}; + +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 memcg_stat_item { + MEMCG_SWAP = 49, + MEMCG_SOCK = 50, + MEMCG_PERCPU_B = 51, + MEMCG_VMALLOC = 52, + MEMCG_KMEM = 53, + MEMCG_ZSWAP_B = 54, + MEMCG_ZSWAPPED = 55, + MEMCG_NR_STAT = 56, +}; + +enum meminit_context { + MEMINIT_EARLY = 0, + MEMINIT_HOTPLUG = 1, +}; + +enum memory_type { + MEMORY_DEVICE_PRIVATE = 1, + MEMORY_DEVICE_COHERENT = 2, + MEMORY_DEVICE_FS_DAX = 3, + MEMORY_DEVICE_GENERIC = 4, + MEMORY_DEVICE_PCI_P2PDMA = 5, +}; + +enum meson_pinconf_drv { + MESON_PINCONF_DRV_500UA = 0, + MESON_PINCONF_DRV_2500UA = 1, + MESON_PINCONF_DRV_3000UA = 2, + MESON_PINCONF_DRV_4000UA = 3, +}; + +enum meson_reg_type { + MESON_REG_PULLEN = 0, + MESON_REG_PULL = 1, + MESON_REG_DIR = 2, + MESON_REG_OUT = 3, + MESON_REG_IN = 4, + MESON_REG_DS = 5, + MESON_NUM_REG = 6, +}; + +enum metadata_type { + METADATA_IP_TUNNEL = 0, + METADATA_HW_PORT_MUX = 1, + METADATA_MACSEC = 2, + METADATA_XFRM = 3, +}; + +enum mf_action_page_type { + MF_MSG_KERNEL = 0, + MF_MSG_KERNEL_HIGH_ORDER = 1, + MF_MSG_DIFFERENT_COMPOUND = 2, + MF_MSG_HUGE = 3, + MF_MSG_FREE_HUGE = 4, + MF_MSG_GET_HWPOISON = 5, + MF_MSG_UNMAP_FAILED = 6, + MF_MSG_DIRTY_SWAPCACHE = 7, + MF_MSG_CLEAN_SWAPCACHE = 8, + MF_MSG_DIRTY_MLOCKED_LRU = 9, + MF_MSG_CLEAN_MLOCKED_LRU = 10, + MF_MSG_DIRTY_UNEVICTABLE_LRU = 11, + MF_MSG_CLEAN_UNEVICTABLE_LRU = 12, + MF_MSG_DIRTY_LRU = 13, + MF_MSG_CLEAN_LRU = 14, + MF_MSG_TRUNCATED_LRU = 15, + MF_MSG_BUDDY = 16, + MF_MSG_DAX = 17, + MF_MSG_UNSPLIT_THP = 18, + MF_MSG_ALREADY_POISONED = 19, + MF_MSG_UNKNOWN = 20, +}; + +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, + MF_MEM_PRE_REMOVE = 128, +}; + +enum mf_result { + MF_IGNORED = 0, + MF_FAILED = 1, + MF_DELAYED = 2, + MF_RECOVERED = 3, +}; + +enum mfill_atomic_mode { + MFILL_ATOMIC_COPY = 0, + MFILL_ATOMIC_ZEROPAGE = 1, + MFILL_ATOMIC_CONTINUE = 2, + MFILL_ATOMIC_POISON = 3, + NR_MFILL_ATOMIC_MODES = 4, +}; + +enum migrate_mode { + MIGRATE_ASYNC = 0, + MIGRATE_SYNC_LIGHT = 1, + MIGRATE_SYNC = 2, +}; + +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_DAMON = 9, + MR_TYPES = 10, +}; + +enum migrate_vma_direction { + MIGRATE_VMA_SELECT_SYSTEM = 1, + MIGRATE_VMA_SELECT_DEVICE_PRIVATE = 2, + MIGRATE_VMA_SELECT_DEVICE_COHERENT = 4, +}; + +enum migratetype { + MIGRATE_UNMOVABLE = 0, + MIGRATE_MOVABLE = 1, + MIGRATE_RECLAIMABLE = 2, + MIGRATE_PCPTYPES = 3, + MIGRATE_HIGHATOMIC = 3, + MIGRATE_CMA = 4, + MIGRATE_ISOLATE = 5, + MIGRATE_TYPES = 6, +}; + +enum migration_type { + migrate_load = 0, + migrate_util = 1, + migrate_task = 2, + migrate_misfit = 3, +}; + +enum mipi_dsi_compression_algo { + MIPI_DSI_COMPRESSION_DSC = 0, + MIPI_DSI_COMPRESSION_VENDOR = 3, +}; + +enum mipi_dsi_dcs_tear_mode { + MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0, + MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1, +}; + +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 misc_res_type { + MISC_CG_RES_TYPES = 0, +}; + +enum mitigation_state { + SPECTRE_UNAFFECTED = 0, + SPECTRE_MITIGATED = 1, + SPECTRE_VULNERABLE = 2, +}; + +enum mm_cid_state { + MM_CID_UNSET = 4294967295, + MM_CID_LAZY_PUT = 2147483648, +}; + +enum mmc_busy_cmd { + MMC_BUSY_CMD6 = 0, + MMC_BUSY_ERASE = 1, + MMC_BUSY_HPI = 2, + MMC_BUSY_EXTR_SINGLE = 3, + MMC_BUSY_IO = 4, +}; + +enum mmc_drv_op { + MMC_DRV_OP_IOCTL = 0, + MMC_DRV_OP_IOCTL_RPMB = 1, + MMC_DRV_OP_BOOT_WP = 2, + MMC_DRV_OP_GET_CARD_STATUS = 3, + MMC_DRV_OP_GET_EXT_CSD = 4, +}; + +enum mmc_err_stat { + MMC_ERR_CMD_TIMEOUT = 0, + MMC_ERR_CMD_CRC = 1, + MMC_ERR_DAT_TIMEOUT = 2, + MMC_ERR_DAT_CRC = 3, + MMC_ERR_AUTO_CMD = 4, + MMC_ERR_ADMA = 5, + MMC_ERR_TUNING = 6, + MMC_ERR_CMDQ_RED = 7, + MMC_ERR_CMDQ_GCE = 8, + MMC_ERR_CMDQ_ICCE = 9, + MMC_ERR_REQ_TIMEOUT = 10, + MMC_ERR_CMDQ_REQ_TIMEOUT = 11, + MMC_ERR_ICE_CFG = 12, + MMC_ERR_CTRL_TIMEOUT = 13, + MMC_ERR_UNEXPECTED_IRQ = 14, + MMC_ERR_MAX = 15, +}; + +enum mmc_issue_type { + MMC_ISSUE_SYNC = 0, + MMC_ISSUE_DCMD = 1, + MMC_ISSUE_ASYNC = 2, + MMC_ISSUE_MAX = 3, +}; + +enum mmci_busy_state { + MMCI_BUSY_WAITING_FOR_START_IRQ = 0, + MMCI_BUSY_WAITING_FOR_END_IRQ = 1, + MMCI_BUSY_DONE = 2, +}; + +enum mminit_level { + MMINIT_WARNING = 0, + MMINIT_VERIFY = 1, + MMINIT_TRACE = 2, +}; + +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, +}; + +enum mnt_tree_flags_t { + MNT_TREE_MOVE = 1, + MNT_TREE_BENEATH = 2, +}; + +enum mod_license { + NOT_GPL_ONLY = 0, + GPL_ONLY = 1, +}; + +enum mod_mem_type { + MOD_TEXT = 0, + MOD_DATA = 1, + MOD_RODATA = 2, + MOD_RO_AFTER_INIT = 3, + MOD_INIT_TEXT = 4, + MOD_INIT_DATA = 5, + MOD_INIT_RODATA = 6, + MOD_MEM_NUM_TYPES = 7, + MOD_INVALID = -1, +}; + +enum mode_set_atomic { + LEAVE_ATOMIC_MODE_SET = 0, + ENTER_ATOMIC_MODE_SET = 1, +}; + +enum module_state { + MODULE_STATE_LIVE = 0, + MODULE_STATE_COMING = 1, + MODULE_STATE_GOING = 2, + MODULE_STATE_UNFORMED = 3, +}; + +enum motionsense_command { + MOTIONSENSE_CMD_DUMP = 0, + MOTIONSENSE_CMD_INFO = 1, + MOTIONSENSE_CMD_EC_RATE = 2, + MOTIONSENSE_CMD_SENSOR_ODR = 3, + MOTIONSENSE_CMD_SENSOR_RANGE = 4, + MOTIONSENSE_CMD_KB_WAKE_ANGLE = 5, + MOTIONSENSE_CMD_DATA = 6, + MOTIONSENSE_CMD_FIFO_INFO = 7, + MOTIONSENSE_CMD_FIFO_FLUSH = 8, + MOTIONSENSE_CMD_FIFO_READ = 9, + MOTIONSENSE_CMD_PERFORM_CALIB = 10, + MOTIONSENSE_CMD_SENSOR_OFFSET = 11, + MOTIONSENSE_CMD_LIST_ACTIVITIES = 12, + MOTIONSENSE_CMD_SET_ACTIVITY = 13, + MOTIONSENSE_CMD_LID_ANGLE = 14, + MOTIONSENSE_CMD_FIFO_INT_ENABLE = 15, + MOTIONSENSE_CMD_SPOOF = 16, + MOTIONSENSE_CMD_TABLET_MODE_LID_ANGLE = 17, + MOTIONSENSE_CMD_SENSOR_SCALE = 18, + MOTIONSENSE_NUM_CMDS = 19, +}; + +enum mount_flags { + MNT_NOSUID = 1, + MNT_NODEV = 2, + MNT_NOEXEC = 4, + MNT_NOATIME = 8, + MNT_NODIRATIME = 16, + MNT_RELATIME = 32, + MNT_READONLY = 64, + MNT_NOSYMFOLLOW = 128, + MNT_SHRINKABLE = 256, + MNT_WRITE_HOLD = 512, + MNT_SHARED = 4096, + MNT_UNBINDABLE = 8192, + MNT_INTERNAL = 16384, + MNT_LOCK_ATIME = 262144, + MNT_LOCK_NOEXEC = 524288, + MNT_LOCK_NOSUID = 1048576, + MNT_LOCK_NODEV = 2097152, + MNT_LOCK_READONLY = 4194304, + MNT_LOCKED = 8388608, + MNT_DOOMED = 16777216, + MNT_SYNC_UMOUNT = 33554432, + MNT_MARKED = 67108864, + MNT_UMOUNT = 134217728, + MNT_SHARED_MASK = 8192, + MNT_USER_SETTABLE_MASK = 255, + MNT_ATIME_MASK = 56, + MNT_INTERNAL_FLAGS = 125850112, +}; + +enum mousedev_emul { + MOUSEDEV_EMUL_PS2 = 0, + MOUSEDEV_EMUL_IMPS = 1, + MOUSEDEV_EMUL_EXPS = 2, +}; + +enum mptcp_addr_signal_status { + MPTCP_ADD_ADDR_SIGNAL = 0, + MPTCP_ADD_ADDR_ECHO = 1, + MPTCP_RM_ADDR_SIGNAL = 2, +}; + +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_MAX = 19, +}; + +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_pm_type { + MPTCP_PM_TYPE_KERNEL = 0, + MPTCP_PM_TYPE_USERSPACE = 1, + __MPTCP_PM_TYPE_NR = 2, + __MPTCP_PM_TYPE_MAX = 1, +}; + +enum mq_rq_state { + MQ_RQ_IDLE = 0, + MQ_RQ_IN_FLIGHT = 1, + MQ_RQ_COMPLETE = 2, +}; + +enum mrq_bwmgr_int_cmd { + CMD_BWMGR_INT_QUERY_ABI = 1, + CMD_BWMGR_INT_CALC_AND_SET = 2, + CMD_BWMGR_INT_CAP_SET = 3, +}; + +enum mrq_debug_commands { + CMD_DEBUG_OPEN_RO = 0, + CMD_DEBUG_OPEN_WO = 1, + CMD_DEBUG_READ = 2, + CMD_DEBUG_WRITE = 3, + CMD_DEBUG_CLOSE = 4, + CMD_DEBUG_MAX = 5, +}; + +enum mrq_debugfs_commands { + CMD_DEBUGFS_READ = 1, + CMD_DEBUGFS_WRITE = 2, + CMD_DEBUGFS_DUMPDIR = 3, + CMD_DEBUGFS_MAX = 4, +}; + +enum mrq_pg_cmd { + CMD_PG_QUERY_ABI = 0, + CMD_PG_SET_STATE = 1, + CMD_PG_GET_STATE = 2, + CMD_PG_GET_NAME = 3, + CMD_PG_GET_MAX_ID = 4, +}; + +enum mrq_reset_commands { + CMD_RESET_ASSERT = 1, + CMD_RESET_DEASSERT = 2, + CMD_RESET_MODULE = 3, + CMD_RESET_GET_MAX_ID = 4, + CMD_RESET_MAX = 5, +}; + +enum mscode_actions { + ACT_mscode_note_content_type = 0, + ACT_mscode_note_digest = 1, + ACT_mscode_note_digest_algo = 2, + NR__mscode_actions = 3, +}; + +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___3 = 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, +}; + +enum msi_desc_filter { + MSI_DESC_ALL = 0, + MSI_DESC_NOTASSOCIATED = 1, + MSI_DESC_ASSOCIATED = 2, +}; + +enum msi_domain_ids { + MSI_DEFAULT_DOMAIN = 0, + MSI_MAX_DEVICE_IRQDOMAINS = 1, +}; + +enum mthp_stat_item { + MTHP_STAT_ANON_FAULT_ALLOC = 0, + MTHP_STAT_ANON_FAULT_FALLBACK = 1, + MTHP_STAT_ANON_FAULT_FALLBACK_CHARGE = 2, + MTHP_STAT_ZSWPOUT = 3, + MTHP_STAT_SWPIN = 4, + MTHP_STAT_SWPIN_FALLBACK = 5, + MTHP_STAT_SWPIN_FALLBACK_CHARGE = 6, + MTHP_STAT_SWPOUT = 7, + MTHP_STAT_SWPOUT_FALLBACK = 8, + MTHP_STAT_SHMEM_ALLOC = 9, + MTHP_STAT_SHMEM_FALLBACK = 10, + MTHP_STAT_SHMEM_FALLBACK_CHARGE = 11, + MTHP_STAT_SPLIT = 12, + MTHP_STAT_SPLIT_FAILED = 13, + MTHP_STAT_SPLIT_DEFERRED = 14, + MTHP_STAT_NR_ANON = 15, + MTHP_STAT_NR_ANON_PARTIALLY_MAPPED = 16, + __MTHP_STAT_COUNT = 17, +}; + +enum mtk_cirq_regoffs_index { + CIRQ_STA = 0, + CIRQ_ACK = 1, + CIRQ_MASK_SET = 2, + CIRQ_MASK_CLR = 3, + CIRQ_SENS_SET = 4, + CIRQ_SENS_CLR = 5, + CIRQ_POL_SET = 6, + CIRQ_POL_CLR = 7, + CIRQ_CONTROL = 8, +}; + +enum mtk_reset_version { + MTK_RST_SIMPLE = 0, + MTK_RST_SET_CLR = 1, + MTK_RST_MAX = 2, +}; + +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, +}; + +enum mv_xor_mode { + XOR_MODE_IN_REG = 0, + XOR_MODE_IN_DESC = 1, +}; + +enum mv_xor_type { + XOR_ORION = 0, + XOR_ARMADA_38X = 1, + XOR_ARMADA_37XX = 2, +}; + +enum mxs_dma_devtype { + MXS_DMA_APBH = 0, + MXS_DMA_APBX = 1, +}; + +enum mxs_dma_id { + IMX23_DMA = 0, + IMX28_DMA = 1, +}; + +enum nbcon_prio { + NBCON_PRIO_NONE = 0, + NBCON_PRIO_NORMAL = 1, + NBCON_PRIO_EMERGENCY = 2, + NBCON_PRIO_PANIC = 3, + NBCON_PRIO_MAX = 4, +}; + +enum ncsi_nl_attrs { + NCSI_ATTR_UNSPEC = 0, + NCSI_ATTR_IFINDEX = 1, + NCSI_ATTR_PACKAGE_LIST = 2, + NCSI_ATTR_PACKAGE_ID = 3, + NCSI_ATTR_CHANNEL_ID = 4, + NCSI_ATTR_DATA = 5, + NCSI_ATTR_MULTI_FLAG = 6, + NCSI_ATTR_PACKAGE_MASK = 7, + NCSI_ATTR_CHANNEL_MASK = 8, + __NCSI_ATTR_AFTER_LAST = 9, + NCSI_ATTR_MAX = 8, +}; + +enum ncsi_nl_channel_attrs { + NCSI_CHANNEL_ATTR_UNSPEC = 0, + NCSI_CHANNEL_ATTR = 1, + NCSI_CHANNEL_ATTR_ID = 2, + NCSI_CHANNEL_ATTR_VERSION_MAJOR = 3, + NCSI_CHANNEL_ATTR_VERSION_MINOR = 4, + NCSI_CHANNEL_ATTR_VERSION_STR = 5, + NCSI_CHANNEL_ATTR_LINK_STATE = 6, + NCSI_CHANNEL_ATTR_ACTIVE = 7, + NCSI_CHANNEL_ATTR_FORCED = 8, + NCSI_CHANNEL_ATTR_VLAN_LIST = 9, + NCSI_CHANNEL_ATTR_VLAN_ID = 10, + __NCSI_CHANNEL_ATTR_AFTER_LAST = 11, + NCSI_CHANNEL_ATTR_MAX = 10, +}; + +enum ncsi_nl_commands { + NCSI_CMD_UNSPEC = 0, + NCSI_CMD_PKG_INFO = 1, + NCSI_CMD_SET_INTERFACE = 2, + NCSI_CMD_CLEAR_INTERFACE = 3, + NCSI_CMD_SEND_CMD = 4, + NCSI_CMD_SET_PACKAGE_MASK = 5, + NCSI_CMD_SET_CHANNEL_MASK = 6, + __NCSI_CMD_AFTER_LAST = 7, + NCSI_CMD_MAX = 6, +}; + +enum ncsi_nl_pkg_attrs { + NCSI_PKG_ATTR_UNSPEC = 0, + NCSI_PKG_ATTR = 1, + NCSI_PKG_ATTR_ID = 2, + NCSI_PKG_ATTR_FORCED = 3, + NCSI_PKG_ATTR_CHANNEL_LIST = 4, + __NCSI_PKG_ATTR_AFTER_LAST = 5, + NCSI_PKG_ATTR_MAX = 4, +}; + +enum nd_async_mode { + ND_SYNC = 0, + ND_ASYNC = 1, +}; + +enum nd_driver_flags { + ND_DRIVER_DIMM = 2, + ND_DRIVER_REGION_PMEM = 4, + ND_DRIVER_REGION_BLK = 8, + ND_DRIVER_NAMESPACE_IO = 16, + ND_DRIVER_NAMESPACE_PMEM = 32, + ND_DRIVER_DAX_PMEM = 128, +}; + +enum nd_ioctl_mode { + BUS_IOCTL = 0, + DIMM_IOCTL = 1, +}; + +enum nd_label_flags { + ND_LABEL_REAP = 0, +}; + +enum nd_pfn_mode { + PFN_MODE_NONE = 0, + PFN_MODE_RAM = 1, + PFN_MODE_PMEM = 2, +}; + +enum net_device_flags { + IFF_UP = 1, + IFF_BROADCAST = 2, + IFF_DEBUG = 4, + IFF_LOOPBACK = 8, + IFF_POINTOPOINT = 16, + IFF_NOTRAILERS = 32, + IFF_RUNNING = 64, + IFF_NOARP = 128, + IFF_PROMISC = 256, + IFF_ALLMULTI = 512, + IFF_MASTER = 1024, + IFF_SLAVE = 2048, + IFF_MULTICAST = 4096, + IFF_PORTSEL = 8192, + IFF_AUTOMEDIA = 16384, + IFF_DYNAMIC = 32768, + IFF_LOWER_UP = 65536, + IFF_DORMANT = 131072, + IFF_ECHO = 262144, +}; + +enum net_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, +}; + +enum net_dm_alert_mode { + NET_DM_ALERT_MODE_SUMMARY = 0, + NET_DM_ALERT_MODE_PACKET = 1, +}; + +enum net_dm_attr { + NET_DM_ATTR_UNSPEC = 0, + NET_DM_ATTR_ALERT_MODE = 1, + NET_DM_ATTR_PC = 2, + NET_DM_ATTR_SYMBOL = 3, + NET_DM_ATTR_IN_PORT = 4, + NET_DM_ATTR_TIMESTAMP = 5, + NET_DM_ATTR_PROTO = 6, + NET_DM_ATTR_PAYLOAD = 7, + NET_DM_ATTR_PAD = 8, + NET_DM_ATTR_TRUNC_LEN = 9, + NET_DM_ATTR_ORIG_LEN = 10, + NET_DM_ATTR_QUEUE_LEN = 11, + NET_DM_ATTR_STATS = 12, + NET_DM_ATTR_HW_STATS = 13, + NET_DM_ATTR_ORIGIN = 14, + NET_DM_ATTR_HW_TRAP_GROUP_NAME = 15, + NET_DM_ATTR_HW_TRAP_NAME = 16, + NET_DM_ATTR_HW_ENTRIES = 17, + NET_DM_ATTR_HW_ENTRY = 18, + NET_DM_ATTR_HW_TRAP_COUNT = 19, + NET_DM_ATTR_SW_DROPS = 20, + NET_DM_ATTR_HW_DROPS = 21, + NET_DM_ATTR_FLOW_ACTION_COOKIE = 22, + NET_DM_ATTR_REASON = 23, + __NET_DM_ATTR_MAX = 24, + NET_DM_ATTR_MAX = 23, +}; + +enum net_dm_origin { + NET_DM_ORIGIN_SW = 0, + NET_DM_ORIGIN_HW = 1, +}; + +enum net_shaper_binding_type { + NET_SHAPER_BINDING_TYPE_NETDEV = 0, +}; + +enum net_shaper_metric { + NET_SHAPER_METRIC_BPS = 0, + NET_SHAPER_METRIC_PPS = 1, +}; + +enum net_shaper_scope { + NET_SHAPER_SCOPE_UNSPEC = 0, + NET_SHAPER_SCOPE_NETDEV = 1, + NET_SHAPER_SCOPE_QUEUE = 2, + NET_SHAPER_SCOPE_NODE = 3, + __NET_SHAPER_SCOPE_MAX = 4, + NET_SHAPER_SCOPE_MAX = 3, +}; + +enum net_xmit_qdisc_t { + __NET_XMIT_STOLEN = 65536, + __NET_XMIT_BYPASS = 131072, +}; + +enum netdev_cmd { + NETDEV_UP = 1, + NETDEV_DOWN = 2, + NETDEV_REBOOT = 3, + NETDEV_CHANGE = 4, + NETDEV_REGISTER = 5, + NETDEV_UNREGISTER = 6, + NETDEV_CHANGEMTU = 7, + NETDEV_CHANGEADDR = 8, + NETDEV_PRE_CHANGEADDR = 9, + NETDEV_GOING_DOWN = 10, + NETDEV_CHANGENAME = 11, + NETDEV_FEAT_CHANGE = 12, + NETDEV_BONDING_FAILOVER = 13, + NETDEV_PRE_UP = 14, + NETDEV_PRE_TYPE_CHANGE = 15, + NETDEV_POST_TYPE_CHANGE = 16, + NETDEV_POST_INIT = 17, + NETDEV_PRE_UNINIT = 18, + NETDEV_RELEASE = 19, + NETDEV_NOTIFY_PEERS = 20, + NETDEV_JOIN = 21, + NETDEV_CHANGEUPPER = 22, + NETDEV_RESEND_IGMP = 23, + NETDEV_PRECHANGEMTU = 24, + NETDEV_CHANGEINFODATA = 25, + NETDEV_BONDING_INFO = 26, + NETDEV_PRECHANGEUPPER = 27, + NETDEV_CHANGELOWERSTATE = 28, + NETDEV_UDP_TUNNEL_PUSH_INFO = 29, + NETDEV_UDP_TUNNEL_DROP_INFO = 30, + NETDEV_CHANGE_TX_QUEUE_LEN = 31, + NETDEV_CVLAN_FILTER_PUSH_INFO = 32, + NETDEV_CVLAN_FILTER_DROP_INFO = 33, + NETDEV_SVLAN_FILTER_PUSH_INFO = 34, + NETDEV_SVLAN_FILTER_DROP_INFO = 35, + NETDEV_OFFLOAD_XSTATS_ENABLE = 36, + NETDEV_OFFLOAD_XSTATS_DISABLE = 37, + NETDEV_OFFLOAD_XSTATS_REPORT_USED = 38, + NETDEV_OFFLOAD_XSTATS_REPORT_DELTA = 39, + NETDEV_XDP_FEAT_CHANGE = 40, +}; + +enum netdev_lag_hash { + NETDEV_LAG_HASH_NONE = 0, + NETDEV_LAG_HASH_L2 = 1, + NETDEV_LAG_HASH_L34 = 2, + NETDEV_LAG_HASH_L23 = 3, + NETDEV_LAG_HASH_E23 = 4, + NETDEV_LAG_HASH_E34 = 5, + NETDEV_LAG_HASH_VLAN_SRCMAC = 6, + NETDEV_LAG_HASH_UNKNOWN = 7, +}; + +enum 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_ml_priv_type { + ML_PRIV_NONE = 0, + ML_PRIV_CAN = 1, +}; + +enum netdev_offload_xstats_type { + NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, +}; + +enum netdev_priv_flags { + IFF_802_1Q_VLAN = 1, + IFF_EBRIDGE = 2, + IFF_BONDING = 4, + IFF_ISATAP = 8, + IFF_WAN_HDLC = 16, + IFF_XMIT_DST_RELEASE = 32, + IFF_DONT_BRIDGE = 64, + IFF_DISABLE_NETPOLL = 128, + IFF_MACVLAN_PORT = 256, + IFF_BRIDGE_PORT = 512, + IFF_OVS_DATAPATH = 1024, + IFF_TX_SKB_SHARING = 2048, + IFF_UNICAST_FLT = 4096, + IFF_TEAM_PORT = 8192, + IFF_SUPP_NOFCS = 16384, + IFF_LIVE_ADDR_CHANGE = 32768, + IFF_MACVLAN = 65536, + IFF_XMIT_DST_RELEASE_PERM = 131072, + IFF_L3MDEV_MASTER = 262144, + IFF_NO_QUEUE = 524288, + IFF_OPENVSWITCH = 1048576, + IFF_L3MDEV_SLAVE = 2097152, + IFF_TEAM = 4194304, + IFF_RXFH_CONFIGURED = 8388608, + IFF_PHONY_HEADROOM = 16777216, + IFF_MACSEC = 33554432, + IFF_NO_RX_HANDLER = 67108864, + IFF_FAILOVER = 134217728, + IFF_FAILOVER_SLAVE = 268435456, + IFF_L3MDEV_RX_HANDLER = 536870912, + IFF_NO_ADDRCONF = 1073741824, + IFF_TX_SKB_NO_LINEAR = 2147483648, +}; + +enum netdev_qstats_scope { + NETDEV_QSTATS_SCOPE_QUEUE = 1, +}; + +enum netdev_queue_state_t { + __QUEUE_STATE_DRV_XOFF = 0, + __QUEUE_STATE_STACK_XOFF = 1, + __QUEUE_STATE_FROZEN = 2, +}; + +enum netdev_queue_type { + NETDEV_QUEUE_TYPE_RX = 0, + NETDEV_QUEUE_TYPE_TX = 1, +}; + +enum netdev_reg_state { + NETREG_UNINITIALIZED = 0, + NETREG_REGISTERED = 1, + NETREG_UNREGISTERING = 2, + NETREG_UNREGISTERED = 3, + NETREG_RELEASED = 4, + NETREG_DUMMY = 5, +}; + +enum netdev_stat_type { + NETDEV_PCPU_STAT_NONE = 0, + NETDEV_PCPU_STAT_LSTATS = 1, + NETDEV_PCPU_STAT_TSTATS = 2, + NETDEV_PCPU_STAT_DSTATS = 3, +}; + +enum netdev_state_t { + __LINK_STATE_START = 0, + __LINK_STATE_PRESENT = 1, + __LINK_STATE_NOCARRIER = 2, + __LINK_STATE_LINKWATCH_PENDING = 3, + __LINK_STATE_DORMANT = 4, + __LINK_STATE_TESTING = 5, +}; + +enum netdev_tx { + __NETDEV_TX_MIN = -2147483648, + NETDEV_TX_OK = 0, + NETDEV_TX_BUSY = 16, +}; + +typedef enum netdev_tx netdev_tx_t; + +enum netdev_xdp_act { + NETDEV_XDP_ACT_BASIC = 1, + NETDEV_XDP_ACT_REDIRECT = 2, + NETDEV_XDP_ACT_NDO_XMIT = 4, + NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, + NETDEV_XDP_ACT_HW_OFFLOAD = 16, + NETDEV_XDP_ACT_RX_SG = 32, + NETDEV_XDP_ACT_NDO_XMIT_SG = 64, + NETDEV_XDP_ACT_MASK = 127, +}; + +enum netdev_xdp_rx_metadata { + NETDEV_XDP_RX_METADATA_TIMESTAMP = 1, + NETDEV_XDP_RX_METADATA_HASH = 2, + NETDEV_XDP_RX_METADATA_VLAN_TAG = 4, +}; + +enum netdev_xsk_flags { + NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1, + NETDEV_XSK_FLAGS_TX_CHECKSUM = 2, + NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO = 4, +}; + +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 netkit_action { + NETKIT_NEXT = -1, + NETKIT_PASS = 0, + NETKIT_DROP = 2, + NETKIT_REDIRECT = 7, +}; + +enum netkit_mode { + NETKIT_L2 = 0, + NETKIT_L3 = 1, +}; + +enum netkit_scrub { + NETKIT_SCRUB_NONE = 0, + NETKIT_SCRUB_DEFAULT = 1, +}; + +enum netlink_attribute_type { + NL_ATTR_TYPE_INVALID = 0, + NL_ATTR_TYPE_FLAG = 1, + NL_ATTR_TYPE_U8 = 2, + NL_ATTR_TYPE_U16 = 3, + NL_ATTR_TYPE_U32 = 4, + NL_ATTR_TYPE_U64 = 5, + NL_ATTR_TYPE_S8 = 6, + NL_ATTR_TYPE_S16 = 7, + NL_ATTR_TYPE_S32 = 8, + NL_ATTR_TYPE_S64 = 9, + NL_ATTR_TYPE_BINARY = 10, + NL_ATTR_TYPE_STRING = 11, + NL_ATTR_TYPE_NUL_STRING = 12, + NL_ATTR_TYPE_NESTED = 13, + NL_ATTR_TYPE_NESTED_ARRAY = 14, + NL_ATTR_TYPE_BITFIELD32 = 15, + NL_ATTR_TYPE_SINT = 16, + NL_ATTR_TYPE_UINT = 17, +}; + +enum netlink_policy_type_attr { + NL_POLICY_TYPE_ATTR_UNSPEC = 0, + NL_POLICY_TYPE_ATTR_TYPE = 1, + NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2, + NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3, + NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4, + NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5, + NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6, + NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7, + NL_POLICY_TYPE_ATTR_POLICY_IDX = 8, + NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9, + NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10, + NL_POLICY_TYPE_ATTR_PAD = 11, + NL_POLICY_TYPE_ATTR_MASK = 12, + __NL_POLICY_TYPE_ATTR_MAX = 13, + NL_POLICY_TYPE_ATTR_MAX = 12, +}; + +enum netlink_skb_flags { + NETLINK_SKB_DST = 8, +}; + +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 netns_bpf_attach_type { + NETNS_BPF_INVALID = -1, + NETNS_BPF_FLOW_DISSECTOR = 0, + NETNS_BPF_SK_LOOKUP = 1, + MAX_NETNS_BPF_ATTACH_TYPE = 2, +}; + +enum nexthop_event_type { + NEXTHOP_EVENT_DEL = 0, + NEXTHOP_EVENT_REPLACE = 1, + NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, + NEXTHOP_EVENT_BUCKET_REPLACE = 3, + NEXTHOP_EVENT_HW_STATS_REPORT_DELTA = 4, +}; + +enum 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_SYNPROXY = 8, + NF_CT_EXT_ACT_CT = 9, + NF_CT_EXT_NUM = 10, +}; + +enum nf_dev_hooks { + NF_NETDEV_INGRESS = 0, + NF_NETDEV_EGRESS = 1, + NF_NETDEV_NUMHOOKS = 2, +}; + +enum nf_hook_ops_type { + NF_HOOK_OP_UNDEFINED = 0, + NF_HOOK_OP_NF_TABLES = 1, + NF_HOOK_OP_BPF = 2, +}; + +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_ip6_hook_priorities { + NF_IP6_PRI_FIRST = -2147483648, + NF_IP6_PRI_RAW_BEFORE_DEFRAG = -450, + NF_IP6_PRI_CONNTRACK_DEFRAG = -400, + NF_IP6_PRI_RAW = -300, + NF_IP6_PRI_SELINUX_FIRST = -225, + NF_IP6_PRI_CONNTRACK = -200, + NF_IP6_PRI_MANGLE = -150, + NF_IP6_PRI_NAT_DST = -100, + NF_IP6_PRI_FILTER = 0, + NF_IP6_PRI_SECURITY = 50, + NF_IP6_PRI_NAT_SRC = 100, + NF_IP6_PRI_SELINUX_LAST = 225, + NF_IP6_PRI_CONNTRACK_HELPER = 300, + NF_IP6_PRI_LAST = 2147483647, +}; + +enum nf_ip_hook_priorities { + NF_IP_PRI_FIRST = -2147483648, + NF_IP_PRI_RAW_BEFORE_DEFRAG = -450, + NF_IP_PRI_CONNTRACK_DEFRAG = -400, + NF_IP_PRI_RAW = -300, + NF_IP_PRI_SELINUX_FIRST = -225, + NF_IP_PRI_CONNTRACK = -200, + NF_IP_PRI_MANGLE = -150, + NF_IP_PRI_NAT_DST = -100, + NF_IP_PRI_FILTER = 0, + NF_IP_PRI_SECURITY = 50, + NF_IP_PRI_NAT_SRC = 100, + NF_IP_PRI_SELINUX_LAST = 225, + NF_IP_PRI_CONNTRACK_HELPER = 300, + NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647, + NF_IP_PRI_LAST = 2147483647, +}; + +enum nf_log_type { + NF_LOG_TYPE_LOG = 0, + NF_LOG_TYPE_ULOG = 1, + NF_LOG_TYPE_MAX = 2, +}; + +enum nf_nat_manip_type; + +enum nfs3_stable_how { + NFS_UNSTABLE = 0, + NFS_DATA_SYNC = 1, + NFS_FILE_SYNC = 2, + NFS_INVALID_STABLE_HOW = -1, +}; + +enum nfs4_change_attr_type { + NFS4_CHANGE_TYPE_IS_MONOTONIC_INCR = 0, + NFS4_CHANGE_TYPE_IS_VERSION_COUNTER = 1, + NFS4_CHANGE_TYPE_IS_VERSION_COUNTER_NOPNFS = 2, + NFS4_CHANGE_TYPE_IS_TIME_METADATA = 3, + NFS4_CHANGE_TYPE_IS_UNDEFINED = 4, +}; + +enum 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 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_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 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, + NFS4ERR_FIRST_FREE = 10097, +}; + +enum nh_notifier_info_type { + NH_NOTIFIER_INFO_TYPE_SINGLE = 0, + NH_NOTIFIER_INFO_TYPE_GRP = 1, + NH_NOTIFIER_INFO_TYPE_RES_TABLE = 2, + NH_NOTIFIER_INFO_TYPE_RES_BUCKET = 3, + NH_NOTIFIER_INFO_TYPE_GRP_HW_STATS = 4, +}; + +enum 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_band { + NL80211_BAND_2GHZ = 0, + NL80211_BAND_5GHZ = 1, + NL80211_BAND_60GHZ = 2, + NL80211_BAND_6GHZ = 3, + NL80211_BAND_S1GHZ = 4, + NL80211_BAND_LC = 5, + NUM_NL80211_BANDS = 6, +}; + +enum nl80211_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_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 nl80211_dfs_regions { + NL80211_DFS_UNSET = 0, + NL80211_DFS_FCC = 1, + NL80211_DFS_ETSI = 2, + NL80211_DFS_JP = 3, +}; + +enum nl80211_dfs_state { + NL80211_DFS_USABLE = 0, + NL80211_DFS_UNAVAILABLE = 1, + NL80211_DFS_AVAILABLE = 2, +}; + +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 nl80211_key_mode { + NL80211_KEY_RX_TX = 0, + NL80211_KEY_NO_TX = 1, + NL80211_KEY_SET_TX = 2, +}; + +enum nl80211_mfp { + NL80211_MFP_NO = 0, + NL80211_MFP_REQUIRED = 1, + NL80211_MFP_OPTIONAL = 2, +}; + +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_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_sar_type { + NL80211_SAR_TYPE_POWER = 0, + NUM_NL80211_SAR_TYPE = 1, +}; + +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 nl802154_cca_modes { + __NL802154_CCA_INVALID = 0, + NL802154_CCA_ENERGY = 1, + NL802154_CCA_CARRIER = 2, + NL802154_CCA_ENERGY_CARRIER = 3, + NL802154_CCA_ALOHA = 4, + NL802154_CCA_UWB_SHR = 5, + NL802154_CCA_UWB_MULTIPLEXED = 6, + __NL802154_CCA_ATTR_AFTER_LAST = 7, + NL802154_CCA_ATTR_MAX = 6, +}; + +enum nl802154_cca_opts { + NL802154_CCA_OPT_ENERGY_CARRIER_AND = 0, + NL802154_CCA_OPT_ENERGY_CARRIER_OR = 1, + __NL802154_CCA_OPT_ATTR_AFTER_LAST = 2, + NL802154_CCA_OPT_ATTR_MAX = 1, +}; + +enum nl802154_supported_bool_states { + NL802154_SUPPORTED_BOOL_FALSE = 0, + NL802154_SUPPORTED_BOOL_TRUE = 1, + __NL802154_SUPPORTED_BOOL_INVALD = 2, + NL802154_SUPPORTED_BOOL_BOTH = 3, + __NL802154_SUPPORTED_BOOL_AFTER_LAST = 4, + NL802154_SUPPORTED_BOOL_MAX = 3, +}; + +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 nlmsgerr_attrs { + NLMSGERR_ATTR_UNUSED = 0, + NLMSGERR_ATTR_MSG = 1, + NLMSGERR_ATTR_OFFS = 2, + NLMSGERR_ATTR_COOKIE = 3, + NLMSGERR_ATTR_POLICY = 4, + NLMSGERR_ATTR_MISS_TYPE = 5, + NLMSGERR_ATTR_MISS_NEST = 6, + __NLMSGERR_ATTR_MAX = 7, + NLMSGERR_ATTR_MAX = 6, +}; + +enum 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_KERNEL_SCS_KB = 38, + NR_PAGETABLE = 39, + NR_SECONDARY_PAGETABLE = 40, + NR_IOMMU_PAGES = 41, + NR_SWAPCACHE = 42, + PGPROMOTE_SUCCESS = 43, + PGPROMOTE_CANDIDATE = 44, + PGDEMOTE_KSWAPD = 45, + PGDEMOTE_DIRECT = 46, + PGDEMOTE_KHUGEPAGED = 47, + NR_HUGETLB = 48, + NR_VM_NODE_STAT_ITEMS = 49, +}; + +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 notify_state { + SECCOMP_NOTIFY_INIT = 0, + SECCOMP_NOTIFY_SENT = 1, + SECCOMP_NOTIFY_REPLIED = 2, +}; + +enum npcm_sgpio_reg { + READ_DATA = 0, + WRITE_DATA = 1, + EVENT_CFG = 2, + EVENT_STS = 3, +}; + +enum numa_faults_stats { + NUMA_MEM = 0, + NUMA_CPU = 1, + NUMA_MEMBUF = 2, + NUMA_CPUBUF = 3, +}; + +enum numa_stat_item { + NUMA_HIT = 0, + NUMA_MISS = 1, + NUMA_FOREIGN = 2, + NUMA_INTERLEAVE_HIT = 3, + NUMA_LOCAL = 4, + NUMA_OTHER = 5, + NR_VM_NUMA_EVENT_ITEMS = 6, +}; + +enum numa_topology_type { + NUMA_DIRECT = 0, + NUMA_GLUELESS_MESH = 1, + NUMA_BACKPLANE = 2, +}; + +enum numa_type { + node_has_spare = 0, + node_fully_busy = 1, + node_overloaded = 2, +}; + +enum numa_vmaskip_reason { + NUMAB_SKIP_UNSUITABLE = 0, + NUMAB_SKIP_SHARED_RO = 1, + NUMAB_SKIP_INACCESSIBLE = 2, + NUMAB_SKIP_SCAN_DELAY = 3, + NUMAB_SKIP_PID_INACTIVE = 4, + NUMAB_SKIP_IGNORE_PID = 5, + NUMAB_SKIP_SEQ_COMPLETED = 6, +}; + +enum nvdimm_claim_class { + NVDIMM_CCLASS_NONE = 0, + NVDIMM_CCLASS_BTT = 1, + NVDIMM_CCLASS_BTT2 = 2, + NVDIMM_CCLASS_PFN = 3, + NVDIMM_CCLASS_DAX = 4, + NVDIMM_CCLASS_UNKNOWN = 5, +}; + +enum nvdimm_event { + NVDIMM_REVALIDATE_POISON = 0, + NVDIMM_REVALIDATE_REGION = 1, +}; + +enum nvdimm_fwa_capability { + NVDIMM_FWA_CAP_INVALID = 0, + NVDIMM_FWA_CAP_NONE = 1, + NVDIMM_FWA_CAP_QUIESCE = 2, + NVDIMM_FWA_CAP_LIVE = 3, +}; + +enum nvdimm_fwa_result { + NVDIMM_FWA_RESULT_INVALID = 0, + NVDIMM_FWA_RESULT_NONE = 1, + NVDIMM_FWA_RESULT_SUCCESS = 2, + NVDIMM_FWA_RESULT_NOTSTAGED = 3, + NVDIMM_FWA_RESULT_NEEDRESET = 4, + NVDIMM_FWA_RESULT_FAIL = 5, +}; + +enum nvdimm_fwa_state { + NVDIMM_FWA_INVALID = 0, + NVDIMM_FWA_IDLE = 1, + NVDIMM_FWA_ARMED = 2, + NVDIMM_FWA_BUSY = 3, + NVDIMM_FWA_ARM_OVERFLOW = 4, +}; + +enum nvdimm_fwa_trigger { + NVDIMM_FWA_ARM = 0, + NVDIMM_FWA_DISARM = 1, +}; + +enum nvdimm_passphrase_type { + NVDIMM_USER = 0, + NVDIMM_MASTER = 1, +}; + +enum nvdimm_security_bits { + NVDIMM_SECURITY_DISABLED = 0, + NVDIMM_SECURITY_UNLOCKED = 1, + NVDIMM_SECURITY_LOCKED = 2, + NVDIMM_SECURITY_FROZEN = 3, + NVDIMM_SECURITY_OVERWRITE = 4, +}; + +enum nvdimmsec_op_ids { + OP_FREEZE = 0, + OP_DISABLE = 1, + OP_DISABLE_MASTER = 2, + OP_UPDATE = 3, + OP_ERASE = 4, + OP_OVERWRITE = 5, + OP_MASTER_UPDATE = 6, + OP_MASTER_ERASE = 7, +}; + +enum nvmem_type { + NVMEM_TYPE_UNKNOWN = 0, + NVMEM_TYPE_EEPROM = 1, + NVMEM_TYPE_OTP = 2, + NVMEM_TYPE_BATTERY_BACKED = 3, + NVMEM_TYPE_FRAM = 4, +}; + +enum objext_flags { + OBJEXTS_ALLOC_FAIL = 4, + __NR_OBJEXTS_FLAGS = 8, +}; + +enum octep_hp_intr_type { + OCTEP_HP_INTR_INVALID = -1, + OCTEP_HP_INTR_ENA = 0, + OCTEP_HP_INTR_DIS = 1, + OCTEP_HP_INTR_MAX = 2, +}; + +enum odd_mech_type { + ODD_MECH_TYPE_SLOT = 0, + ODD_MECH_TYPE_DRAWER = 1, + ODD_MECH_TYPE_UNSUPPORTED = 2, +}; + +enum of_gpio_flags { + OF_GPIO_ACTIVE_LOW = 1, + OF_GPIO_SINGLE_ENDED = 2, + OF_GPIO_OPEN_DRAIN = 4, + OF_GPIO_TRANSITORY = 8, + OF_GPIO_PULL_UP = 16, + OF_GPIO_PULL_DOWN = 32, + OF_GPIO_PULL_DISABLE = 64, +}; + +enum of_overlay_notify_action { + OF_OVERLAY_INIT = 0, + OF_OVERLAY_PRE_APPLY = 1, + OF_OVERLAY_POST_APPLY = 2, + OF_OVERLAY_PRE_REMOVE = 3, + OF_OVERLAY_POST_REMOVE = 4, +}; + +enum of_reconfig_change { + OF_RECONFIG_NO_CHANGE = 0, + OF_RECONFIG_CHANGE_ADD = 1, + OF_RECONFIG_CHANGE_REMOVE = 2, +}; + +enum offload_act_command { + FLOW_ACT_REPLACE = 0, + FLOW_ACT_DESTROY = 1, + FLOW_ACT_STATS = 2, +}; + +enum ohci_rh_state { + OHCI_RH_HALTED = 0, + OHCI_RH_SUSPENDED = 1, + OHCI_RH_RUNNING = 2, +}; + +enum oom_constraint { + CONSTRAINT_NONE = 0, + CONSTRAINT_CPUSET = 1, + CONSTRAINT_MEMORY_POLICY = 2, + CONSTRAINT_MEMCG = 3, +}; + +enum opal_atom_width { + OPAL_WIDTH_TINY = 0, + OPAL_WIDTH_SHORT = 1, + OPAL_WIDTH_MEDIUM = 2, + OPAL_WIDTH_LONG = 3, + OPAL_WIDTH_TOKEN = 4, +}; + +enum opal_key_type { + OPAL_INCLUDED = 0, + OPAL_KEYRING = 1, +}; + +enum opal_lock_flags { + OPAL_SAVE_FOR_LOCK = 1, +}; + +enum opal_lock_state { + OPAL_RO = 1, + OPAL_RW = 2, + OPAL_LK = 4, +}; + +enum opal_mbr { + OPAL_MBR_ENABLE = 0, + OPAL_MBR_DISABLE = 1, +}; + +enum opal_mbr_done_flag { + OPAL_MBR_NOT_DONE = 0, + OPAL_MBR_DONE = 1, +}; + +enum opal_method { + OPAL_PROPERTIES = 0, + OPAL_STARTSESSION = 1, + OPAL_REVERT = 2, + OPAL_ACTIVATE = 3, + OPAL_EGET = 4, + OPAL_ESET = 5, + OPAL_NEXT = 6, + OPAL_EAUTHENTICATE = 7, + OPAL_GETACL = 8, + OPAL_GENKEY = 9, + OPAL_REVERTSP = 10, + OPAL_GET = 11, + OPAL_SET = 12, + OPAL_AUTHENTICATE = 13, + OPAL_RANDOM = 14, + OPAL_ERASE = 15, +}; + +enum opal_parameter { + OPAL_SUM_SET_LIST = 393216, +}; + +enum opal_response_token { + OPAL_DTA_TOKENID_BYTESTRING = 224, + OPAL_DTA_TOKENID_SINT = 225, + OPAL_DTA_TOKENID_UINT = 226, + OPAL_DTA_TOKENID_TOKEN = 227, + OPAL_DTA_TOKENID_INVALID = 0, +}; + +enum opal_revert_lsp_opts { + OPAL_PRESERVE = 1, +}; + +enum opal_revertlsp { + OPAL_KEEP_GLOBAL_RANGE_KEY = 393216, +}; + +enum opal_table_ops { + OPAL_READ_TABLE = 0, + OPAL_WRITE_TABLE = 1, +}; + +enum opal_token { + OPAL_TRUE = 1, + OPAL_FALSE = 0, + OPAL_BOOLEAN_EXPR = 3, + OPAL_TABLE = 0, + OPAL_STARTROW = 1, + OPAL_ENDROW = 2, + OPAL_STARTCOLUMN = 3, + OPAL_ENDCOLUMN = 4, + OPAL_VALUES = 1, + OPAL_TABLE_UID = 0, + OPAL_TABLE_NAME = 1, + OPAL_TABLE_COMMON = 2, + OPAL_TABLE_TEMPLATE = 3, + OPAL_TABLE_KIND = 4, + OPAL_TABLE_COLUMN = 5, + OPAL_TABLE_COLUMNS = 6, + OPAL_TABLE_ROWS = 7, + OPAL_TABLE_ROWS_FREE = 8, + OPAL_TABLE_ROW_BYTES = 9, + OPAL_TABLE_LASTID = 10, + OPAL_TABLE_MIN = 11, + OPAL_TABLE_MAX = 12, + OPAL_PIN = 3, + OPAL_RANGESTART = 3, + OPAL_RANGELENGTH = 4, + OPAL_READLOCKENABLED = 5, + OPAL_WRITELOCKENABLED = 6, + OPAL_READLOCKED = 7, + OPAL_WRITELOCKED = 8, + OPAL_ACTIVEKEY = 10, + OPAL_LIFECYCLE = 6, + OPAL_MAXRANGES = 4, + OPAL_MBRENABLE = 1, + OPAL_MBRDONE = 2, + OPAL_HOSTPROPERTIES = 0, + OPAL_STARTLIST = 240, + OPAL_ENDLIST = 241, + OPAL_STARTNAME = 242, + OPAL_ENDNAME = 243, + OPAL_CALL = 248, + OPAL_ENDOFDATA = 249, + OPAL_ENDOFSESSION = 250, + OPAL_STARTTRANSACTON = 251, + OPAL_ENDTRANSACTON = 252, + OPAL_EMPTYATOM = 255, + OPAL_WHERE = 0, +}; + +enum opal_uid { + OPAL_SMUID_UID = 0, + OPAL_THISSP_UID = 1, + OPAL_ADMINSP_UID = 2, + OPAL_LOCKINGSP_UID = 3, + OPAL_ENTERPRISE_LOCKINGSP_UID = 4, + OPAL_ANYBODY_UID = 5, + OPAL_SID_UID = 6, + OPAL_ADMIN1_UID = 7, + OPAL_USER1_UID = 8, + OPAL_USER2_UID = 9, + OPAL_PSID_UID = 10, + OPAL_ENTERPRISE_BANDMASTER0_UID = 11, + OPAL_ENTERPRISE_ERASEMASTER_UID = 12, + OPAL_TABLE_TABLE = 13, + OPAL_LOCKINGRANGE_GLOBAL = 14, + OPAL_LOCKINGRANGE_ACE_START_TO_KEY = 15, + OPAL_LOCKINGRANGE_ACE_RDLOCKED = 16, + OPAL_LOCKINGRANGE_ACE_WRLOCKED = 17, + OPAL_MBRCONTROL = 18, + OPAL_MBR = 19, + OPAL_AUTHORITY_TABLE = 20, + OPAL_C_PIN_TABLE = 21, + OPAL_LOCKING_INFO_TABLE = 22, + OPAL_ENTERPRISE_LOCKING_INFO_TABLE = 23, + OPAL_DATASTORE = 24, + OPAL_C_PIN_MSID = 25, + OPAL_C_PIN_SID = 26, + OPAL_C_PIN_ADMIN1 = 27, + OPAL_HALF_UID_AUTHORITY_OBJ_REF = 28, + OPAL_HALF_UID_BOOLEAN_ACE = 29, + OPAL_UID_HEXFF = 30, +}; + +enum opal_user { + OPAL_ADMIN1 = 0, + OPAL_USER1 = 1, + OPAL_USER2 = 2, + OPAL_USER3 = 3, + OPAL_USER4 = 4, + OPAL_USER5 = 5, + OPAL_USER6 = 6, + OPAL_USER7 = 7, + OPAL_USER8 = 8, + OPAL_USER9 = 9, +}; + +enum opp_table_access { + OPP_TABLE_ACCESS_UNKNOWN = 0, + OPP_TABLE_ACCESS_EXCLUSIVE = 1, + OPP_TABLE_ACCESS_SHARED = 2, +}; + +enum orion_ehci_phy_ver { + EHCI_PHY_ORION = 0, + EHCI_PHY_DD = 1, + EHCI_PHY_KW = 2, + EHCI_PHY_NA = 3, +}; + +enum osnoise_options_index { + OSN_DEFAULTS = 0, + OSN_WORKLOAD = 1, + OSN_PANIC_ON_STOP = 2, + OSN_PREEMPT_DISABLE = 3, + OSN_IRQ_DISABLE = 4, + OSN_MAX = 5, +}; + +enum owl_pinconf_drv { + OWL_PINCONF_DRV_2MA = 0, + OWL_PINCONF_DRV_4MA = 1, + OWL_PINCONF_DRV_8MA = 2, + OWL_PINCONF_DRV_12MA = 3, +}; + +enum owner_state { + OWNER_NULL = 1, + OWNER_WRITER = 2, + OWNER_READER = 4, + OWNER_NONSPINNABLE = 8, +}; + +enum packet_sock_flags { + PACKET_SOCK_ORIGDEV = 0, + PACKET_SOCK_AUXDATA = 1, + PACKET_SOCK_TX_HAS_OFF = 2, + PACKET_SOCK_TP_LOSS = 3, + PACKET_SOCK_RUNNING = 4, + PACKET_SOCK_PRESSURE = 5, + PACKET_SOCK_QDISC_BYPASS = 6, +}; + +enum packing_op { + PACK = 0, + UNPACK = 1, +}; + +enum pad_func_e { + IMX_SC_PAD_FUNC_SET = 15, + IMX_SC_PAD_FUNC_GET = 16, +}; + +enum page_memcg_data_flags { + MEMCG_DATA_OBJEXTS = 1, + MEMCG_DATA_KMEM = 2, + __NR_MEMCG_DATA_FLAGS = 4, +}; + +enum page_size_enum { + __PAGE_SIZE = 4096, +}; + +enum page_walk_action { + ACTION_SUBTREE = 0, + ACTION_CONTINUE = 1, + ACTION_AGAIN = 2, +}; + +enum page_walk_lock { + PGWALK_RDLOCK = 0, + PGWALK_WRLOCK = 1, + PGWALK_WRLOCK_VERIFY = 2, +}; + +enum pageblock_bits { + PB_migrate = 0, + PB_migrate_end = 2, + PB_migrate_skip = 3, + NR_PAGEBLOCK_BITS = 4, +}; + +enum pageflags { + PG_locked = 0, + PG_writeback = 1, + PG_referenced = 2, + PG_uptodate = 3, + PG_dirty = 4, + PG_lru = 5, + PG_head = 6, + PG_waiters = 7, + PG_active = 8, + PG_workingset = 9, + PG_owner_priv_1 = 10, + PG_owner_2 = 11, + PG_arch_1 = 12, + PG_reserved = 13, + PG_private = 14, + PG_private_2 = 15, + PG_reclaim = 16, + PG_swapbacked = 17, + PG_unevictable = 18, + PG_dropbehind = 19, + PG_mlocked = 20, + PG_hwpoison = 21, + PG_young = 22, + PG_idle = 23, + PG_arch_2 = 24, + PG_arch_3 = 25, + __NR_PAGEFLAGS = 26, + PG_readahead = 16, + PG_swapcache = 10, + PG_checked = 10, + PG_anon_exclusive = 11, + PG_mappedtodisk = 11, + PG_fscache = 15, + PG_pinned = 10, + PG_savepinned = 4, + PG_foreign = 10, + PG_xen_remapped = 10, + PG_isolated = 16, + PG_reported = 3, + PG_vmemmap_self_hosted = 10, + PG_has_hwpoisoned = 8, + PG_large_rmappable = 9, + PG_partially_mapped = 16, +}; + +enum pagetype { + PGTY_buddy = 240, + PGTY_offline = 241, + PGTY_table = 242, + PGTY_guard = 243, + PGTY_hugetlb = 244, + PGTY_slab = 245, + PGTY_zsmalloc = 246, + PGTY_unaccepted = 247, + PGTY_mapcount_underflow = 255, +}; + +enum palmas_external_requestor_id { + PALMAS_EXTERNAL_REQSTR_ID_REGEN1 = 0, + PALMAS_EXTERNAL_REQSTR_ID_REGEN2 = 1, + PALMAS_EXTERNAL_REQSTR_ID_SYSEN1 = 2, + PALMAS_EXTERNAL_REQSTR_ID_SYSEN2 = 3, + PALMAS_EXTERNAL_REQSTR_ID_CLK32KG = 4, + PALMAS_EXTERNAL_REQSTR_ID_CLK32KGAUDIO = 5, + PALMAS_EXTERNAL_REQSTR_ID_REGEN3 = 6, + PALMAS_EXTERNAL_REQSTR_ID_SMPS12 = 7, + PALMAS_EXTERNAL_REQSTR_ID_SMPS3 = 8, + PALMAS_EXTERNAL_REQSTR_ID_SMPS45 = 9, + PALMAS_EXTERNAL_REQSTR_ID_SMPS6 = 10, + PALMAS_EXTERNAL_REQSTR_ID_SMPS7 = 11, + PALMAS_EXTERNAL_REQSTR_ID_SMPS8 = 12, + PALMAS_EXTERNAL_REQSTR_ID_SMPS9 = 13, + PALMAS_EXTERNAL_REQSTR_ID_SMPS10 = 14, + PALMAS_EXTERNAL_REQSTR_ID_LDO1 = 15, + PALMAS_EXTERNAL_REQSTR_ID_LDO2 = 16, + PALMAS_EXTERNAL_REQSTR_ID_LDO3 = 17, + PALMAS_EXTERNAL_REQSTR_ID_LDO4 = 18, + PALMAS_EXTERNAL_REQSTR_ID_LDO5 = 19, + PALMAS_EXTERNAL_REQSTR_ID_LDO6 = 20, + PALMAS_EXTERNAL_REQSTR_ID_LDO7 = 21, + PALMAS_EXTERNAL_REQSTR_ID_LDO8 = 22, + PALMAS_EXTERNAL_REQSTR_ID_LDO9 = 23, + PALMAS_EXTERNAL_REQSTR_ID_LDOLN = 24, + PALMAS_EXTERNAL_REQSTR_ID_LDOUSB = 25, + PALMAS_EXTERNAL_REQSTR_ID_MAX = 26, +}; + +enum palmas_irqs { + PALMAS_CHARG_DET_N_VBUS_OVV_IRQ = 0, + PALMAS_PWRON_IRQ = 1, + PALMAS_LONG_PRESS_KEY_IRQ = 2, + PALMAS_RPWRON_IRQ = 3, + PALMAS_PWRDOWN_IRQ = 4, + PALMAS_HOTDIE_IRQ = 5, + PALMAS_VSYS_MON_IRQ = 6, + PALMAS_VBAT_MON_IRQ = 7, + PALMAS_RTC_ALARM_IRQ = 8, + PALMAS_RTC_TIMER_IRQ = 9, + PALMAS_WDT_IRQ = 10, + PALMAS_BATREMOVAL_IRQ = 11, + PALMAS_RESET_IN_IRQ = 12, + PALMAS_FBI_BB_IRQ = 13, + PALMAS_SHORT_IRQ = 14, + PALMAS_VAC_ACOK_IRQ = 15, + PALMAS_GPADC_AUTO_0_IRQ = 16, + PALMAS_GPADC_AUTO_1_IRQ = 17, + PALMAS_GPADC_EOC_SW_IRQ = 18, + PALMAS_GPADC_EOC_RT_IRQ = 19, + PALMAS_ID_OTG_IRQ = 20, + PALMAS_ID_IRQ = 21, + PALMAS_VBUS_OTG_IRQ = 22, + PALMAS_VBUS_IRQ = 23, + PALMAS_GPIO_0_IRQ = 24, + PALMAS_GPIO_1_IRQ = 25, + PALMAS_GPIO_2_IRQ = 26, + PALMAS_GPIO_3_IRQ = 27, + PALMAS_GPIO_4_IRQ = 28, + PALMAS_GPIO_5_IRQ = 29, + PALMAS_GPIO_6_IRQ = 30, + PALMAS_GPIO_7_IRQ = 31, + PALMAS_NUM_IRQ = 32, +}; + +enum palmas_pinmux { + PALMAS_PINMUX_OPTION0 = 0, + PALMAS_PINMUX_OPTION1 = 1, + PALMAS_PINMUX_OPTION2 = 2, + PALMAS_PINMUX_OPTION3 = 3, + PALMAS_PINMUX_GPIO = 4, + PALMAS_PINMUX_LED = 5, + PALMAS_PINMUX_PWM = 6, + PALMAS_PINMUX_REGEN = 7, + PALMAS_PINMUX_SYSEN = 8, + PALMAS_PINMUX_CLK32KGAUDIO = 9, + PALMAS_PINMUX_ID = 10, + PALMAS_PINMUX_VBUS_DET = 11, + PALMAS_PINMUX_CHRG_DET = 12, + PALMAS_PINMUX_VAC = 13, + PALMAS_PINMUX_VACOK = 14, + PALMAS_PINMUX_POWERGOOD = 15, + PALMAS_PINMUX_USB_PSEL = 16, + PALMAS_PINMUX_MSECURE = 17, + PALMAS_PINMUX_PWRHOLD = 18, + PALMAS_PINMUX_INT = 19, + PALMAS_PINMUX_NRESWARM = 20, + PALMAS_PINMUX_SIMRSTO = 21, + PALMAS_PINMUX_SIMRSTI = 22, + PALMAS_PINMUX_LOW_VBAT = 23, + PALMAS_PINMUX_WIRELESS_CHRG1 = 24, + PALMAS_PINMUX_RCM = 25, + PALMAS_PINMUX_PWRDOWN = 26, + PALMAS_PINMUX_GPADC_START = 27, + PALMAS_PINMUX_RESET_IN = 28, + PALMAS_PINMUX_NSLEEP = 29, + PALMAS_PINMUX_ENABLE = 30, + PALMAS_PINMUX_NA = 65535, +}; + +enum palmas_regulators { + PALMAS_REG_SMPS12 = 0, + PALMAS_REG_SMPS123 = 1, + PALMAS_REG_SMPS3 = 2, + PALMAS_REG_SMPS45 = 3, + PALMAS_REG_SMPS457 = 4, + PALMAS_REG_SMPS6 = 5, + PALMAS_REG_SMPS7 = 6, + PALMAS_REG_SMPS8 = 7, + PALMAS_REG_SMPS9 = 8, + PALMAS_REG_SMPS10_OUT2 = 9, + PALMAS_REG_SMPS10_OUT1 = 10, + PALMAS_REG_LDO1 = 11, + PALMAS_REG_LDO2 = 12, + PALMAS_REG_LDO3 = 13, + PALMAS_REG_LDO4 = 14, + PALMAS_REG_LDO5 = 15, + PALMAS_REG_LDO6 = 16, + PALMAS_REG_LDO7 = 17, + PALMAS_REG_LDO8 = 18, + PALMAS_REG_LDO9 = 19, + PALMAS_REG_LDOLN = 20, + PALMAS_REG_LDOUSB = 21, + PALMAS_REG_REGEN1 = 22, + PALMAS_REG_REGEN2 = 23, + PALMAS_REG_REGEN3 = 24, + PALMAS_REG_SYSEN1 = 25, + PALMAS_REG_SYSEN2 = 26, + PALMAS_NUM_REGS = 27, +}; + +enum palmas_usb_state { + PALMAS_USB_STATE_DISCONNECT = 0, + PALMAS_USB_STATE_VBUS = 1, + PALMAS_USB_STATE_ID = 2, +}; + +enum partition_cmd { + partcmd_enable = 0, + partcmd_enablei = 1, + partcmd_disable = 2, + partcmd_update = 3, + partcmd_invalidate = 4, +}; + +enum passtype { + PASS_SCAN = 0, + PASS_REVOKE = 1, + PASS_REPLAY = 2, +}; + +enum path_flags { + PATH_IS_DIR = 1, + PATH_SOCK_COND = 2, + PATH_CONNECT_PATH = 4, + PATH_CHROOT_REL = 8, + PATH_CHROOT_NSCONNECT = 16, + PATH_CONNECT_IPC_PATH = 32, + PATH_DELEGATE_DELETED = 65536, + PATH_MEDIATE_DELETED = 131072, +}; + +enum pce_status { + PCE_STATUS_NONE = 0, + PCE_STATUS_ACQUIRED = 1, + PCE_STATUS_PREPARED = 2, + PCE_STATUS_ENABLED = 3, + PCE_STATUS_ERROR = 4, +}; + +enum pci_bar_type { + pci_bar_unknown = 0, + pci_bar_io = 1, + pci_bar_mem32 = 2, + pci_bar_mem64 = 3, +}; + +enum pci_barno { + NO_BAR = -1, + BAR_0 = 0, + BAR_1 = 1, + BAR_2 = 2, + BAR_3 = 3, + BAR_4 = 4, + BAR_5 = 5, +}; + +enum pci_board_num_t { + pbn_default = 0, + pbn_b0_1_115200 = 1, + pbn_b0_2_115200 = 2, + pbn_b0_4_115200 = 3, + pbn_b0_5_115200 = 4, + pbn_b0_8_115200 = 5, + pbn_b0_1_921600 = 6, + pbn_b0_2_921600 = 7, + pbn_b0_4_921600 = 8, + pbn_b0_2_1130000 = 9, + pbn_b0_4_1152000 = 10, + pbn_b0_4_1250000 = 11, + pbn_b0_2_1843200 = 12, + pbn_b0_4_1843200 = 13, + pbn_b0_1_15625000 = 14, + pbn_b0_bt_1_115200 = 15, + pbn_b0_bt_2_115200 = 16, + pbn_b0_bt_4_115200 = 17, + pbn_b0_bt_8_115200 = 18, + pbn_b0_bt_1_460800 = 19, + pbn_b0_bt_2_460800 = 20, + pbn_b0_bt_4_460800 = 21, + pbn_b0_bt_1_921600 = 22, + pbn_b0_bt_2_921600 = 23, + pbn_b0_bt_4_921600 = 24, + pbn_b0_bt_8_921600 = 25, + pbn_b1_1_115200 = 26, + pbn_b1_2_115200 = 27, + pbn_b1_4_115200 = 28, + pbn_b1_8_115200 = 29, + pbn_b1_16_115200 = 30, + pbn_b1_1_921600 = 31, + pbn_b1_2_921600 = 32, + pbn_b1_4_921600 = 33, + pbn_b1_8_921600 = 34, + pbn_b1_2_1250000 = 35, + pbn_b1_bt_1_115200 = 36, + pbn_b1_bt_2_115200 = 37, + pbn_b1_bt_4_115200 = 38, + pbn_b1_bt_2_921600 = 39, + pbn_b1_1_1382400 = 40, + pbn_b1_2_1382400 = 41, + pbn_b1_4_1382400 = 42, + pbn_b1_8_1382400 = 43, + pbn_b2_1_115200 = 44, + pbn_b2_2_115200 = 45, + pbn_b2_4_115200 = 46, + pbn_b2_8_115200 = 47, + pbn_b2_1_460800 = 48, + pbn_b2_4_460800 = 49, + pbn_b2_8_460800 = 50, + pbn_b2_16_460800 = 51, + pbn_b2_1_921600 = 52, + pbn_b2_4_921600 = 53, + pbn_b2_8_921600 = 54, + pbn_b2_8_1152000 = 55, + pbn_b2_bt_1_115200 = 56, + pbn_b2_bt_2_115200 = 57, + pbn_b2_bt_4_115200 = 58, + pbn_b2_bt_2_921600 = 59, + pbn_b2_bt_4_921600 = 60, + pbn_b3_2_115200 = 61, + pbn_b3_4_115200 = 62, + pbn_b3_8_115200 = 63, + pbn_b4_bt_2_921600 = 64, + pbn_b4_bt_4_921600 = 65, + pbn_b4_bt_8_921600 = 66, + pbn_panacom = 67, + pbn_panacom2 = 68, + pbn_panacom4 = 69, + pbn_plx_romulus = 70, + pbn_oxsemi = 71, + pbn_oxsemi_1_15625000 = 72, + pbn_oxsemi_2_15625000 = 73, + pbn_oxsemi_4_15625000 = 74, + pbn_oxsemi_8_15625000 = 75, + pbn_intel_i960 = 76, + pbn_sgi_ioc3 = 77, + pbn_computone_4 = 78, + pbn_computone_6 = 79, + pbn_computone_8 = 80, + pbn_sbsxrsio = 81, + pbn_pasemi_1682M = 82, + pbn_ni8430_2 = 83, + pbn_ni8430_4 = 84, + pbn_ni8430_8 = 85, + pbn_ni8430_16 = 86, + pbn_ADDIDATA_PCIe_1_3906250 = 87, + pbn_ADDIDATA_PCIe_2_3906250 = 88, + pbn_ADDIDATA_PCIe_4_3906250 = 89, + pbn_ADDIDATA_PCIe_8_3906250 = 90, + pbn_ce4100_1_115200 = 91, + pbn_omegapci = 92, + pbn_NETMOS9900_2s_115200 = 93, + pbn_brcm_trumanage = 94, + pbn_fintek_4 = 95, + pbn_fintek_8 = 96, + pbn_fintek_12 = 97, + pbn_fintek_F81504A = 98, + pbn_fintek_F81508A = 99, + pbn_fintek_F81512A = 100, + pbn_wch382_2 = 101, + pbn_wch384_4 = 102, + pbn_wch384_8 = 103, + pbn_sunix_pci_1s = 104, + pbn_sunix_pci_2s = 105, + pbn_sunix_pci_4s = 106, + pbn_sunix_pci_8s = 107, + pbn_sunix_pci_16s = 108, + pbn_titan_1_4000000 = 109, + pbn_titan_2_4000000 = 110, + pbn_titan_4_4000000 = 111, + pbn_titan_8_4000000 = 112, + pbn_moxa_2 = 113, + pbn_moxa_4 = 114, + pbn_moxa_8 = 115, +}; + +enum pci_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 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, + PCI_DEV_FLAGS_MSIX_TOUCH_ENTRY_DATA_FIRST = 8192, + PCI_DEV_FLAGS_NO_RRS_SV = 16384, +}; + +enum pci_epc_bar_type { + BAR_PROGRAMMABLE = 0, + BAR_FIXED = 1, + BAR_RESERVED = 2, +}; + +enum pci_epc_interface_type { + UNKNOWN_INTERFACE = -1, + PRIMARY_INTERFACE = 0, + SECONDARY_INTERFACE = 1, +}; + +enum pci_ers_result { + PCI_ERS_RESULT_NONE = 1, + PCI_ERS_RESULT_CAN_RECOVER = 2, + PCI_ERS_RESULT_NEED_RESET = 3, + PCI_ERS_RESULT_DISCONNECT = 4, + PCI_ERS_RESULT_RECOVERED = 5, + PCI_ERS_RESULT_NO_AER_DRIVER = 6, +}; + +enum pci_fixup_pass { + pci_fixup_early = 0, + pci_fixup_header = 1, + pci_fixup_final = 2, + pci_fixup_enable = 3, + pci_fixup_resume = 4, + pci_fixup_suspend = 5, + pci_fixup_resume_early = 6, + pci_fixup_suspend_late = 7, +}; + +enum pci_interrupt_pin { + PCI_INTERRUPT_UNKNOWN = 0, + PCI_INTERRUPT_INTA = 1, + PCI_INTERRUPT_INTB = 2, + PCI_INTERRUPT_INTC = 3, + PCI_INTERRUPT_INTD = 4, +}; + +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_p2pdma_map_type { + PCI_P2PDMA_MAP_UNKNOWN = 0, + PCI_P2PDMA_MAP_NOT_SUPPORTED = 1, + PCI_P2PDMA_MAP_BUS_ADDR = 2, + PCI_P2PDMA_MAP_THRU_HOST_BRIDGE = 3, +}; + +enum 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, +}; + +enum pcie_kirin_phy_type { + PCIE_KIRIN_INTERNAL_PHY = 0, + PCIE_KIRIN_EXTERNAL_PHY = 1, +}; + +enum pcie_link_width { + PCIE_LNK_WIDTH_RESRV = 0, + PCIE_LNK_X1 = 1, + PCIE_LNK_X2 = 2, + PCIE_LNK_X4 = 4, + PCIE_LNK_X8 = 8, + PCIE_LNK_X12 = 12, + PCIE_LNK_X16 = 16, + PCIE_LNK_X32 = 32, + PCIE_LNK_WIDTH_UNKNOWN = 255, +}; + +enum pcie_reset_state { + pcie_deassert_reset = 1, + pcie_warm_reset = 2, + pcie_hot_reset = 3, +}; + +enum pcim_addr_devres_type { + PCIM_ADDR_DEVRES_TYPE_INVALID = 0, + PCIM_ADDR_DEVRES_TYPE_REGION = 1, + PCIM_ADDR_DEVRES_TYPE_REGION_MAPPING = 2, + PCIM_ADDR_DEVRES_TYPE_MAPPING = 3, +}; + +enum pcpu_fc { + PCPU_FC_AUTO = 0, + PCPU_FC_EMBED = 1, + PCPU_FC_PAGE = 2, + PCPU_FC_NR = 3, +}; + +enum pdc_irq_config_bits { + PDC_LEVEL_LOW = 0, + PDC_EDGE_FALLING = 2, + PDC_LEVEL_HIGH = 4, + PDC_EDGE_RISING = 6, + PDC_EDGE_DUAL = 7, +}; + +enum pedit_cmd { + TCA_PEDIT_KEY_EX_CMD_SET = 0, + TCA_PEDIT_KEY_EX_CMD_ADD = 1, + __PEDIT_CMD_MAX = 2, +}; + +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 peer_app_attr { + DCB_ATTR_CEE_PEER_APP_UNSPEC = 0, + DCB_ATTR_CEE_PEER_APP_INFO = 1, + DCB_ATTR_CEE_PEER_APP = 2, + __DCB_ATTR_CEE_PEER_APP_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, +}; + +enum perf_bpf_event_type { + PERF_BPF_EVENT_UNKNOWN = 0, + PERF_BPF_EVENT_PROG_LOAD = 1, + PERF_BPF_EVENT_PROG_UNLOAD = 2, + PERF_BPF_EVENT_MAX = 3, +}; + +enum perf_branch_sample_type { + PERF_SAMPLE_BRANCH_USER = 1, + PERF_SAMPLE_BRANCH_KERNEL = 2, + PERF_SAMPLE_BRANCH_HV = 4, + PERF_SAMPLE_BRANCH_ANY = 8, + PERF_SAMPLE_BRANCH_ANY_CALL = 16, + PERF_SAMPLE_BRANCH_ANY_RETURN = 32, + PERF_SAMPLE_BRANCH_IND_CALL = 64, + PERF_SAMPLE_BRANCH_ABORT_TX = 128, + PERF_SAMPLE_BRANCH_IN_TX = 256, + PERF_SAMPLE_BRANCH_NO_TX = 512, + PERF_SAMPLE_BRANCH_COND = 1024, + PERF_SAMPLE_BRANCH_CALL_STACK = 2048, + PERF_SAMPLE_BRANCH_IND_JUMP = 4096, + PERF_SAMPLE_BRANCH_CALL = 8192, + PERF_SAMPLE_BRANCH_NO_FLAGS = 16384, + PERF_SAMPLE_BRANCH_NO_CYCLES = 32768, + PERF_SAMPLE_BRANCH_TYPE_SAVE = 65536, + PERF_SAMPLE_BRANCH_HW_INDEX = 131072, + PERF_SAMPLE_BRANCH_PRIV_SAVE = 262144, + PERF_SAMPLE_BRANCH_COUNTERS = 524288, + PERF_SAMPLE_BRANCH_MAX = 1048576, +}; + +enum perf_branch_sample_type_shift { + PERF_SAMPLE_BRANCH_USER_SHIFT = 0, + PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 1, + PERF_SAMPLE_BRANCH_HV_SHIFT = 2, + PERF_SAMPLE_BRANCH_ANY_SHIFT = 3, + PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 4, + PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 5, + PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 6, + PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 7, + PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 8, + PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 9, + PERF_SAMPLE_BRANCH_COND_SHIFT = 10, + PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 11, + PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 12, + PERF_SAMPLE_BRANCH_CALL_SHIFT = 13, + PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14, + PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15, + PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16, + PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17, + PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 18, + PERF_SAMPLE_BRANCH_COUNTERS_SHIFT = 19, + PERF_SAMPLE_BRANCH_MAX_SHIFT = 20, +}; + +enum perf_callchain_context { + PERF_CONTEXT_HV = 18446744073709551584ULL, + PERF_CONTEXT_KERNEL = 18446744073709551488ULL, + PERF_CONTEXT_USER = 18446744073709551104ULL, + PERF_CONTEXT_GUEST = 18446744073709549568ULL, + PERF_CONTEXT_GUEST_KERNEL = 18446744073709549440ULL, + PERF_CONTEXT_GUEST_USER = 18446744073709549056ULL, + PERF_CONTEXT_MAX = 18446744073709547521ULL, +}; + +enum perf_event_arm_regs { + PERF_REG_ARM64_X0 = 0, + PERF_REG_ARM64_X1 = 1, + PERF_REG_ARM64_X2 = 2, + PERF_REG_ARM64_X3 = 3, + PERF_REG_ARM64_X4 = 4, + PERF_REG_ARM64_X5 = 5, + PERF_REG_ARM64_X6 = 6, + PERF_REG_ARM64_X7 = 7, + PERF_REG_ARM64_X8 = 8, + PERF_REG_ARM64_X9 = 9, + PERF_REG_ARM64_X10 = 10, + PERF_REG_ARM64_X11 = 11, + PERF_REG_ARM64_X12 = 12, + PERF_REG_ARM64_X13 = 13, + PERF_REG_ARM64_X14 = 14, + PERF_REG_ARM64_X15 = 15, + PERF_REG_ARM64_X16 = 16, + PERF_REG_ARM64_X17 = 17, + PERF_REG_ARM64_X18 = 18, + PERF_REG_ARM64_X19 = 19, + PERF_REG_ARM64_X20 = 20, + PERF_REG_ARM64_X21 = 21, + PERF_REG_ARM64_X22 = 22, + PERF_REG_ARM64_X23 = 23, + PERF_REG_ARM64_X24 = 24, + PERF_REG_ARM64_X25 = 25, + PERF_REG_ARM64_X26 = 26, + PERF_REG_ARM64_X27 = 27, + PERF_REG_ARM64_X28 = 28, + PERF_REG_ARM64_X29 = 29, + PERF_REG_ARM64_LR = 30, + PERF_REG_ARM64_SP = 31, + PERF_REG_ARM64_PC = 32, + PERF_REG_ARM64_MAX = 33, + PERF_REG_ARM64_VG = 46, + PERF_REG_ARM64_EXTENDED_MAX = 47, +}; + +enum perf_event_ioc_flags { + PERF_IOC_FLAG_GROUP = 1, +}; + +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_event_sample_format { + PERF_SAMPLE_IP = 1, + PERF_SAMPLE_TID = 2, + PERF_SAMPLE_TIME = 4, + PERF_SAMPLE_ADDR = 8, + PERF_SAMPLE_READ = 16, + PERF_SAMPLE_CALLCHAIN = 32, + PERF_SAMPLE_ID = 64, + PERF_SAMPLE_CPU = 128, + PERF_SAMPLE_PERIOD = 256, + PERF_SAMPLE_STREAM_ID = 512, + PERF_SAMPLE_RAW = 1024, + PERF_SAMPLE_BRANCH_STACK = 2048, + PERF_SAMPLE_REGS_USER = 4096, + PERF_SAMPLE_STACK_USER = 8192, + PERF_SAMPLE_WEIGHT = 16384, + PERF_SAMPLE_DATA_SRC = 32768, + PERF_SAMPLE_IDENTIFIER = 65536, + PERF_SAMPLE_TRANSACTION = 131072, + PERF_SAMPLE_REGS_INTR = 262144, + PERF_SAMPLE_PHYS_ADDR = 524288, + PERF_SAMPLE_AUX = 1048576, + PERF_SAMPLE_CGROUP = 2097152, + PERF_SAMPLE_DATA_PAGE_SIZE = 4194304, + PERF_SAMPLE_CODE_PAGE_SIZE = 8388608, + PERF_SAMPLE_WEIGHT_STRUCT = 16777216, + PERF_SAMPLE_MAX = 33554432, +}; + +enum perf_event_state { + PERF_EVENT_STATE_DEAD = -4, + PERF_EVENT_STATE_EXIT = -3, + PERF_EVENT_STATE_ERROR = -2, + PERF_EVENT_STATE_OFF = -1, + PERF_EVENT_STATE_INACTIVE = 0, + PERF_EVENT_STATE_ACTIVE = 1, +}; + +enum perf_event_task_context { + perf_invalid_context = -1, + perf_hw_context = 0, + perf_sw_context = 1, + perf_nr_task_contexts = 2, +}; + +enum perf_event_type { + PERF_RECORD_MMAP = 1, + PERF_RECORD_LOST = 2, + PERF_RECORD_COMM = 3, + PERF_RECORD_EXIT = 4, + PERF_RECORD_THROTTLE = 5, + PERF_RECORD_UNTHROTTLE = 6, + PERF_RECORD_FORK = 7, + PERF_RECORD_READ = 8, + PERF_RECORD_SAMPLE = 9, + PERF_RECORD_MMAP2 = 10, + PERF_RECORD_AUX = 11, + PERF_RECORD_ITRACE_START = 12, + PERF_RECORD_LOST_SAMPLES = 13, + PERF_RECORD_SWITCH = 14, + PERF_RECORD_SWITCH_CPU_WIDE = 15, + PERF_RECORD_NAMESPACES = 16, + PERF_RECORD_KSYMBOL = 17, + PERF_RECORD_BPF_EVENT = 18, + PERF_RECORD_CGROUP = 19, + PERF_RECORD_TEXT_POKE = 20, + PERF_RECORD_AUX_OUTPUT_HW_ID = 21, + PERF_RECORD_MAX = 22, +}; + +enum 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 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_pmu_scope { + PERF_PMU_SCOPE_NONE = 0, + PERF_PMU_SCOPE_CORE = 1, + PERF_PMU_SCOPE_DIE = 2, + PERF_PMU_SCOPE_CLUSTER = 3, + PERF_PMU_SCOPE_PKG = 4, + PERF_PMU_SCOPE_SYS_WIDE = 5, + PERF_PMU_MAX_SCOPE = 6, +}; + +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_record_ksymbol_type { + PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, + PERF_RECORD_KSYMBOL_TYPE_BPF = 1, + PERF_RECORD_KSYMBOL_TYPE_OOL = 2, + PERF_RECORD_KSYMBOL_TYPE_MAX = 3, +}; + +enum perf_sample_regs_abi { + PERF_SAMPLE_REGS_ABI_NONE = 0, + PERF_SAMPLE_REGS_ABI_32 = 1, + PERF_SAMPLE_REGS_ABI_64 = 2, +}; + +enum perf_sw_ids { + PERF_COUNT_SW_CPU_CLOCK = 0, + PERF_COUNT_SW_TASK_CLOCK = 1, + PERF_COUNT_SW_PAGE_FAULTS = 2, + PERF_COUNT_SW_CONTEXT_SWITCHES = 3, + PERF_COUNT_SW_CPU_MIGRATIONS = 4, + PERF_COUNT_SW_PAGE_FAULTS_MIN = 5, + PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6, + PERF_COUNT_SW_ALIGNMENT_FAULTS = 7, + PERF_COUNT_SW_EMULATION_FAULTS = 8, + PERF_COUNT_SW_DUMMY = 9, + PERF_COUNT_SW_BPF_OUTPUT = 10, + PERF_COUNT_SW_CGROUP_SWITCHES = 11, + PERF_COUNT_SW_MAX = 12, +}; + +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 pg_states { + PG_STATE_OFF = 0, + PG_STATE_ON = 1, + PG_STATE_RUNNING = 2, +}; + +enum pgdat_flags { + PGDAT_DIRTY = 0, + PGDAT_WRITEBACK = 1, + PGDAT_RECLAIM_LOCKED = 2, +}; + +enum pgt_entry { + NORMAL_PMD = 0, + HPAGE_PMD = 1, + NORMAL_PUD = 2, + HPAGE_PUD = 3, +}; + +enum phy_led_modes { + PHY_LED_ACTIVE_HIGH = 0, + PHY_LED_ACTIVE_LOW = 1, + PHY_LED_INACTIVE_HIGH_IMPEDANCE = 2, + __PHY_LED_MODES_NUM = 3, +}; + +enum phy_media { + PHY_MEDIA_DEFAULT = 0, + PHY_MEDIA_SR = 1, + PHY_MEDIA_DAC = 2, +}; + +enum phy_mode { + PHY_MODE_INVALID = 0, + PHY_MODE_USB_HOST = 1, + PHY_MODE_USB_HOST_LS = 2, + PHY_MODE_USB_HOST_FS = 3, + PHY_MODE_USB_HOST_HS = 4, + PHY_MODE_USB_HOST_SS = 5, + PHY_MODE_USB_DEVICE = 6, + PHY_MODE_USB_DEVICE_LS = 7, + PHY_MODE_USB_DEVICE_FS = 8, + PHY_MODE_USB_DEVICE_HS = 9, + PHY_MODE_USB_DEVICE_SS = 10, + PHY_MODE_USB_OTG = 11, + PHY_MODE_UFS_HS_A = 12, + PHY_MODE_UFS_HS_B = 13, + PHY_MODE_PCIE = 14, + PHY_MODE_ETHERNET = 15, + PHY_MODE_MIPI_DPHY = 16, + PHY_MODE_SATA = 17, + PHY_MODE_LVDS = 18, + PHY_MODE_DP = 19, +}; + +enum phy_state { + PHY_DOWN = 0, + PHY_READY = 1, + PHY_HALTED = 2, + PHY_ERROR = 3, + PHY_UP = 4, + PHY_RUNNING = 5, + PHY_NOLINK = 6, + PHY_CABLETEST = 7, +}; + +enum phy_state_work { + PHY_STATE_WORK_NONE = 0, + PHY_STATE_WORK_ANEG = 1, + PHY_STATE_WORK_SUSPEND = 2, +}; + +enum phy_tunable_id { + ETHTOOL_PHY_ID_UNSPEC = 0, + ETHTOOL_PHY_DOWNSHIFT = 1, + ETHTOOL_PHY_FAST_LINK_DOWN = 2, + ETHTOOL_PHY_EDPD = 3, + __ETHTOOL_PHY_TUNABLE_COUNT = 4, +}; + +enum phy_upstream { + PHY_UPSTREAM_MAC = 0, + PHY_UPSTREAM_PHY = 1, +}; + +enum phylink_op_type { + PHYLINK_NETDEV = 0, + PHYLINK_DEV = 1, +}; + +enum pid_type { + PIDTYPE_PID = 0, + PIDTYPE_TGID = 1, + PIDTYPE_PGID = 2, + PIDTYPE_SID = 3, + PIDTYPE_MAX = 4, +}; + +enum pidcg_event { + PIDCG_MAX = 0, + PIDCG_FORKFAIL = 1, + NR_PIDCG_EVENTS = 2, +}; + +enum pin_config_param { + PIN_CONFIG_BIAS_BUS_HOLD = 0, + PIN_CONFIG_BIAS_DISABLE = 1, + PIN_CONFIG_BIAS_HIGH_IMPEDANCE = 2, + PIN_CONFIG_BIAS_PULL_DOWN = 3, + PIN_CONFIG_BIAS_PULL_PIN_DEFAULT = 4, + PIN_CONFIG_BIAS_PULL_UP = 5, + PIN_CONFIG_DRIVE_OPEN_DRAIN = 6, + PIN_CONFIG_DRIVE_OPEN_SOURCE = 7, + PIN_CONFIG_DRIVE_PUSH_PULL = 8, + PIN_CONFIG_DRIVE_STRENGTH = 9, + PIN_CONFIG_DRIVE_STRENGTH_UA = 10, + PIN_CONFIG_INPUT_DEBOUNCE = 11, + PIN_CONFIG_INPUT_ENABLE = 12, + PIN_CONFIG_INPUT_SCHMITT = 13, + PIN_CONFIG_INPUT_SCHMITT_ENABLE = 14, + PIN_CONFIG_INPUT_SCHMITT_UV = 15, + PIN_CONFIG_MODE_LOW_POWER = 16, + PIN_CONFIG_MODE_PWM = 17, + PIN_CONFIG_OUTPUT = 18, + PIN_CONFIG_OUTPUT_ENABLE = 19, + PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS = 20, + PIN_CONFIG_PERSIST_STATE = 21, + PIN_CONFIG_POWER_SOURCE = 22, + PIN_CONFIG_SKEW_DELAY = 23, + PIN_CONFIG_SLEEP_HARDWARE_STATE = 24, + PIN_CONFIG_SLEW_RATE = 25, + PIN_CONFIG_END = 127, + PIN_CONFIG_MAX = 255, +}; + +enum pin_func_sel { + PIN_FUNC_1 = 0, + PIN_FUNC_2 = 1, + PIN_FUNC_3 = 2, + PIN_FUNC_4 = 3, + PIN_FUNC_MAX = 4, +}; + +enum pin_sleep_mode { + AP_SLEEP = 1, + PUBCP_SLEEP = 2, + TGLDSP_SLEEP = 4, + AGDSP_SLEEP = 8, + CM4_SLEEP = 16, +}; + +enum pin_type { + GLOBAL_CTRL_PIN = 0, + COMMON_PIN = 1, + MISC_PIN = 2, +}; + +enum pinctrl_map_type { + PIN_MAP_TYPE_INVALID = 0, + PIN_MAP_TYPE_DUMMY_STATE = 1, + PIN_MAP_TYPE_MUX_GROUP = 2, + PIN_MAP_TYPE_CONFIGS_PIN = 3, + PIN_MAP_TYPE_CONFIGS_GROUP = 4, +}; + +enum pkcs7_actions { + ACT_pkcs7_check_content_type = 0, + ACT_pkcs7_extract_cert = 1, + ACT_pkcs7_note_OID = 2, + ACT_pkcs7_note_certificate_list = 3, + ACT_pkcs7_note_content = 4, + ACT_pkcs7_note_data = 5, + ACT_pkcs7_note_signed_info = 6, + ACT_pkcs7_note_signeddata_version = 7, + ACT_pkcs7_note_signerinfo_version = 8, + ACT_pkcs7_sig_note_authenticated_attr = 9, + ACT_pkcs7_sig_note_digest_algo = 10, + ACT_pkcs7_sig_note_issuer = 11, + ACT_pkcs7_sig_note_pkey_algo = 12, + ACT_pkcs7_sig_note_serial = 13, + ACT_pkcs7_sig_note_set_of_authattrs = 14, + ACT_pkcs7_sig_note_signature = 15, + ACT_pkcs7_sig_note_skid = 16, + NR__pkcs7_actions = 17, +}; + +enum pkey_id_type { + PKEY_ID_PGP = 0, + PKEY_ID_X509 = 1, + PKEY_ID_PKCS7 = 2, +}; + +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 pkvm_component_id { + PKVM_ID_HOST = 0, + PKVM_ID_HYP = 1, + PKVM_ID_FFA = 2, +}; + +enum pkvm_page_state { + PKVM_PAGE_OWNED = 0, + PKVM_PAGE_SHARED_OWNED = 1, + PKVM_PAGE_SHARED_BORROWED = 2, + __PKVM_PAGE_RESERVED = 3, + PKVM_NOPAGE = 4, +}; + +enum pl011_rs485_tx_state { + OFF___2 = 0, + WAIT_AFTER_RTS___2 = 1, + SEND___2 = 2, + WAIT_AFTER_SEND___2 = 3, +}; + +enum pl08x_burst_size { + PL08X_BURST_SZ_1 = 0, + PL08X_BURST_SZ_4 = 1, + PL08X_BURST_SZ_8 = 2, + PL08X_BURST_SZ_16 = 3, + PL08X_BURST_SZ_32 = 4, + PL08X_BURST_SZ_64 = 5, + PL08X_BURST_SZ_128 = 6, + PL08X_BURST_SZ_256 = 7, +}; + +enum pl08x_bus_width { + PL08X_BUS_WIDTH_8_BITS = 0, + PL08X_BUS_WIDTH_16_BITS = 1, + PL08X_BUS_WIDTH_32_BITS = 2, +}; + +enum pl08x_dma_chan_state { + PL08X_CHAN_IDLE = 0, + PL08X_CHAN_RUNNING = 1, + PL08X_CHAN_PAUSED = 2, + PL08X_CHAN_WAITING = 3, +}; + +enum plda_int_event { + PLDA_AXI_POST_ERR = 0, + PLDA_AXI_FETCH_ERR = 1, + PLDA_AXI_DISCARD_ERR = 2, + PLDA_AXI_DOORBELL = 3, + PLDA_PCIE_POST_ERR = 4, + PLDA_PCIE_FETCH_ERR = 5, + PLDA_PCIE_DISCARD_ERR = 6, + PLDA_PCIE_DOORBELL = 7, + PLDA_INTX = 8, + PLDA_MSI = 9, + PLDA_AER_EVENT = 10, + PLDA_MISC_EVENTS = 11, + PLDA_SYS_ERR = 12, + PLDA_INT_EVENT_NUM = 13, +}; + +enum pldmfw_update_mode { + PLDMFW_UPDATE_MODE_FULL = 0, + PLDMFW_UPDATE_MODE_SINGLE_COMPONENT = 1, +}; + +enum pll_mode { + PLL_MODE_INT = 0, + PLL_MODE_FRAC = 1, + PLL_MODE_ERROR = 2, +}; + +enum pm8606_ref_gp_and_osc_clients { + REF_GP_NO_CLIENTS = 0, + WLED1_DUTY = 1, + WLED2_DUTY = 2, + WLED3_DUTY = 4, + RGB1_ENABLE = 8, + RGB2_ENABLE = 16, + LDO_VBR_EN = 32, + REF_GP_MAX_CLIENT = 65535, +}; + +enum pm_api_cb_id { + PM_INIT_SUSPEND_CB = 30, + PM_ACKNOWLEDGE_CB = 31, + PM_NOTIFY_CB = 32, +}; + +enum pm_api_id { + PM_API_FEATURES = 0, + PM_GET_API_VERSION = 1, + PM_REGISTER_NOTIFIER = 5, + PM_FORCE_POWERDOWN = 8, + PM_REQUEST_WAKEUP = 10, + PM_SYSTEM_SHUTDOWN = 12, + PM_REQUEST_NODE = 13, + PM_RELEASE_NODE = 14, + PM_SET_REQUIREMENT = 15, + PM_RESET_ASSERT = 17, + PM_RESET_GET_STATUS = 18, + PM_MMIO_WRITE = 19, + PM_MMIO_READ = 20, + PM_PM_INIT_FINALIZE = 21, + PM_FPGA_LOAD = 22, + PM_FPGA_GET_STATUS = 23, + PM_GET_CHIPID = 24, + PM_SECURE_SHA = 26, + PM_PINCTRL_REQUEST = 28, + PM_PINCTRL_RELEASE = 29, + PM_PINCTRL_SET_FUNCTION = 31, + PM_PINCTRL_CONFIG_PARAM_GET = 32, + PM_PINCTRL_CONFIG_PARAM_SET = 33, + PM_IOCTL = 34, + PM_QUERY_DATA = 35, + PM_CLOCK_ENABLE = 36, + PM_CLOCK_DISABLE = 37, + PM_CLOCK_GETSTATE = 38, + PM_CLOCK_SETDIVIDER = 39, + PM_CLOCK_GETDIVIDER = 40, + PM_CLOCK_SETPARENT = 43, + PM_CLOCK_GETPARENT = 44, + PM_FPGA_READ = 46, + PM_SECURE_AES = 47, + PM_EFUSE_ACCESS = 53, + PM_FEATURE_CHECK = 63, +}; + +enum pm_feature_config_id { + PM_FEATURE_INVALID = 0, + PM_FEATURE_OVERTEMP_STATUS = 1, + PM_FEATURE_OVERTEMP_VALUE = 2, + PM_FEATURE_EXTWDT_STATUS = 3, + PM_FEATURE_EXTWDT_VALUE = 4, +}; + +enum pm_gem_config_type { + GEM_CONFIG_SGMII_MODE = 1, + GEM_CONFIG_FIXED = 2, +}; + +enum pm_ioctl_id { + IOCTL_GET_RPU_OPER_MODE = 0, + IOCTL_SET_RPU_OPER_MODE = 1, + IOCTL_RPU_BOOT_ADDR_CONFIG = 2, + IOCTL_TCM_COMB_CONFIG = 3, + IOCTL_SET_TAPDELAY_BYPASS = 4, + IOCTL_SD_DLL_RESET = 6, + IOCTL_SET_SD_TAPDELAY = 7, + IOCTL_SET_PLL_FRAC_MODE = 8, + IOCTL_GET_PLL_FRAC_MODE = 9, + IOCTL_SET_PLL_FRAC_DATA = 10, + IOCTL_GET_PLL_FRAC_DATA = 11, + IOCTL_WRITE_GGS = 12, + IOCTL_READ_GGS = 13, + IOCTL_WRITE_PGGS = 14, + IOCTL_READ_PGGS = 15, + IOCTL_SET_BOOT_HEALTH_STATUS = 17, + IOCTL_OSPI_MUX_SELECT = 21, + IOCTL_REGISTER_SGI = 25, + IOCTL_SET_FEATURE_CONFIG = 26, + IOCTL_GET_FEATURE_CONFIG = 27, + IOCTL_READ_REG = 28, + IOCTL_SET_SD_CONFIG = 30, + IOCTL_SET_GEM_CONFIG = 31, + IOCTL_GET_QOS = 34, +}; + +enum pm_module_id { + PM_MODULE_ID = 0, + XPM_MODULE_ID = 2, + XSEM_MODULE_ID = 3, + TF_A_MODULE_ID = 10, +}; + +enum pm_node_id { + NODE_SD_0 = 39, + NODE_SD_1 = 40, +}; + +enum pm_pinctrl_config_param { + PM_PINCTRL_CONFIG_SLEW_RATE = 0, + PM_PINCTRL_CONFIG_BIAS_STATUS = 1, + PM_PINCTRL_CONFIG_PULL_CTRL = 2, + PM_PINCTRL_CONFIG_SCHMITT_CMOS = 3, + PM_PINCTRL_CONFIG_DRIVE_STRENGTH = 4, + PM_PINCTRL_CONFIG_VOLTAGE_STATUS = 5, + PM_PINCTRL_CONFIG_TRI_STATE = 6, + PM_PINCTRL_CONFIG_MAX = 7, +}; + +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, +}; + +enum pm_qos_req_action { + PM_QOS_ADD_REQ = 0, + PM_QOS_UPDATE_REQ = 1, + PM_QOS_REMOVE_REQ = 2, +}; + +enum pm_qos_type { + PM_QOS_UNITIALIZED = 0, + PM_QOS_MAX = 1, + PM_QOS_MIN = 2, +}; + +enum pm_query_id { + PM_QID_INVALID = 0, + PM_QID_CLOCK_GET_NAME = 1, + PM_QID_CLOCK_GET_TOPOLOGY = 2, + PM_QID_CLOCK_GET_FIXEDFACTOR_PARAMS = 3, + PM_QID_CLOCK_GET_PARENTS = 4, + PM_QID_CLOCK_GET_ATTRIBUTES = 5, + PM_QID_PINCTRL_GET_NUM_PINS = 6, + PM_QID_PINCTRL_GET_NUM_FUNCTIONS = 7, + PM_QID_PINCTRL_GET_NUM_FUNCTION_GROUPS = 8, + PM_QID_PINCTRL_GET_FUNCTION_NAME = 9, + PM_QID_PINCTRL_GET_FUNCTION_GROUPS = 10, + PM_QID_PINCTRL_GET_PIN_GROUPS = 11, + PM_QID_CLOCK_GET_NUM_CLOCKS = 12, + PM_QID_CLOCK_GET_MAX_DIVISOR = 13, + PM_QID_PINCTRL_GET_ATTRIBUTES = 15, +}; + +enum pm_ret_status { + XST_PM_SUCCESS = 0, + XST_PM_INVALID_VERSION = 4, + XST_PM_NO_FEATURE = 19, + XST_PM_INVALID_CRC = 301, + XST_PM_INTERNAL = 2000, + XST_PM_CONFLICT = 2001, + XST_PM_NO_ACCESS = 2002, + XST_PM_INVALID_NODE = 2003, + XST_PM_DOUBLE_REQ = 2004, + XST_PM_ABORT_SUSPEND = 2005, + XST_PM_MULT_USER = 2008, +}; + +enum pm_sd_config_type { + SD_CONFIG_EMMC_SEL = 1, + SD_CONFIG_BASECLK = 2, + SD_CONFIG_8BIT = 3, + SD_CONFIG_FIXED = 4, +}; + +enum pm_sleep_mode { + PM_SLEEP_MODE_STBY = 0, + PM_SLEEP_MODE_RET = 1, + PM_SLEEP_MODE_SPC = 2, + PM_SLEEP_MODE_PC = 3, + PM_SLEEP_MODE_NR = 4, +}; + +enum pm_suspend_mode { + PM_SUSPEND_MODE_FIRST = 0, + PM_SUSPEND_MODE_STD = 0, + PM_SUSPEND_MODE_POWER_OFF = 1, +}; + +enum poison_cmd_enabled_bits { + CXL_POISON_ENABLED_LIST = 0, + CXL_POISON_ENABLED_INJECT = 1, + CXL_POISON_ENABLED_CLEAR = 2, + CXL_POISON_ENABLED_SCAN_CAPS = 3, + CXL_POISON_ENABLED_SCAN_MEDIA = 4, + CXL_POISON_ENABLED_SCAN_RESULTS = 5, + CXL_POISON_ENABLED_MAX = 6, +}; + +enum policy_opt { + Opt_measure = 0, + Opt_dont_measure = 1, + Opt_appraise = 2, + Opt_dont_appraise = 3, + Opt_audit = 4, + Opt_hash___3 = 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___8 = 45, +}; + +enum policy_rule_list { + IMA_DEFAULT_POLICY = 1, + IMA_CUSTOM_POLICY = 2, +}; + +enum policy_types { + ORIGINAL_TCB = 1, + DEFAULT_TCB = 2, +}; + +enum poll_states { + VIO_MSG_NOT_POLLED = 0, + VIO_MSG_POLL_TIMEOUT = 1, + VIO_MSG_POLLING = 2, + VIO_MSG_POLL_DONE = 3, +}; + +enum poll_time_type { + PT_TIMEVAL = 0, + PT_OLD_TIMEVAL = 1, + PT_TIMESPEC = 2, + PT_OLD_TIMESPEC = 3, +}; + +enum polling_modes { + CM_POLL_DISABLE = 0, + CM_POLL_ALWAYS = 1, + CM_POLL_EXTERNAL_POWER_ONLY = 2, + CM_POLL_CHARGING_ONLY = 3, +}; + +enum pool_workqueue_stats { + PWQ_STAT_STARTED = 0, + PWQ_STAT_COMPLETED = 1, + PWQ_STAT_CPU_TIME = 2, + PWQ_STAT_CPU_INTENSIVE = 3, + PWQ_STAT_CM_WAKEUP = 4, + PWQ_STAT_REPATRIATED = 5, + PWQ_STAT_MAYDAY = 6, + PWQ_STAT_RESCUED = 7, + PWQ_NR_STATS = 8, +}; + +enum port_pkey_state { + IB_PORT_PKEY_NOT_VALID = 0, + IB_PORT_PKEY_VALID = 1, + IB_PORT_PKEY_LISTED = 2, +}; + +enum positive_aop_returns { + AOP_WRITEPAGE_ACTIVATE = 524288, + AOP_TRUNCATED_PAGE = 524289, +}; + +enum posix_timer_state { + POSIX_TIMER_DISARMED = 0, + POSIX_TIMER_ARMED = 1, + POSIX_TIMER_REQUEUE_PENDING = 2, +}; + +enum power_supply_charge_behaviour { + POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, + POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, + POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, +}; + +enum power_supply_charge_type { + POWER_SUPPLY_CHARGE_TYPE_UNKNOWN = 0, + POWER_SUPPLY_CHARGE_TYPE_NONE = 1, + POWER_SUPPLY_CHARGE_TYPE_TRICKLE = 2, + POWER_SUPPLY_CHARGE_TYPE_FAST = 3, + POWER_SUPPLY_CHARGE_TYPE_STANDARD = 4, + POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE = 5, + POWER_SUPPLY_CHARGE_TYPE_CUSTOM = 6, + POWER_SUPPLY_CHARGE_TYPE_LONGLIFE = 7, + POWER_SUPPLY_CHARGE_TYPE_BYPASS = 8, +}; + +enum power_supply_notifier_events { + PSY_EVENT_PROP_CHANGED = 0, +}; + +enum power_supply_property { + POWER_SUPPLY_PROP_STATUS = 0, + POWER_SUPPLY_PROP_CHARGE_TYPE = 1, + POWER_SUPPLY_PROP_CHARGE_TYPES = 2, + POWER_SUPPLY_PROP_HEALTH = 3, + POWER_SUPPLY_PROP_PRESENT = 4, + POWER_SUPPLY_PROP_ONLINE = 5, + POWER_SUPPLY_PROP_AUTHENTIC = 6, + POWER_SUPPLY_PROP_TECHNOLOGY = 7, + POWER_SUPPLY_PROP_CYCLE_COUNT = 8, + POWER_SUPPLY_PROP_VOLTAGE_MAX = 9, + POWER_SUPPLY_PROP_VOLTAGE_MIN = 10, + POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 11, + POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 12, + POWER_SUPPLY_PROP_VOLTAGE_NOW = 13, + POWER_SUPPLY_PROP_VOLTAGE_AVG = 14, + POWER_SUPPLY_PROP_VOLTAGE_OCV = 15, + POWER_SUPPLY_PROP_VOLTAGE_BOOT = 16, + POWER_SUPPLY_PROP_CURRENT_MAX = 17, + POWER_SUPPLY_PROP_CURRENT_NOW = 18, + POWER_SUPPLY_PROP_CURRENT_AVG = 19, + POWER_SUPPLY_PROP_CURRENT_BOOT = 20, + POWER_SUPPLY_PROP_POWER_NOW = 21, + POWER_SUPPLY_PROP_POWER_AVG = 22, + POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 23, + POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 24, + POWER_SUPPLY_PROP_CHARGE_FULL = 25, + POWER_SUPPLY_PROP_CHARGE_EMPTY = 26, + POWER_SUPPLY_PROP_CHARGE_NOW = 27, + POWER_SUPPLY_PROP_CHARGE_AVG = 28, + POWER_SUPPLY_PROP_CHARGE_COUNTER = 29, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT = 30, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX = 31, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE = 32, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX = 33, + POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT = 34, + POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX = 35, + POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD = 36, + POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD = 37, + POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR = 38, + POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT = 39, + POWER_SUPPLY_PROP_INPUT_VOLTAGE_LIMIT = 40, + POWER_SUPPLY_PROP_INPUT_POWER_LIMIT = 41, + POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 42, + POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 43, + POWER_SUPPLY_PROP_ENERGY_FULL = 44, + POWER_SUPPLY_PROP_ENERGY_EMPTY = 45, + POWER_SUPPLY_PROP_ENERGY_NOW = 46, + POWER_SUPPLY_PROP_ENERGY_AVG = 47, + POWER_SUPPLY_PROP_CAPACITY = 48, + POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN = 49, + POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX = 50, + POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN = 51, + POWER_SUPPLY_PROP_CAPACITY_LEVEL = 52, + POWER_SUPPLY_PROP_TEMP = 53, + POWER_SUPPLY_PROP_TEMP_MAX = 54, + POWER_SUPPLY_PROP_TEMP_MIN = 55, + POWER_SUPPLY_PROP_TEMP_ALERT_MIN = 56, + POWER_SUPPLY_PROP_TEMP_ALERT_MAX = 57, + POWER_SUPPLY_PROP_TEMP_AMBIENT = 58, + POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN = 59, + POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX = 60, + POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 61, + POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 62, + POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 63, + POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 64, + POWER_SUPPLY_PROP_TYPE = 65, + POWER_SUPPLY_PROP_USB_TYPE = 66, + POWER_SUPPLY_PROP_SCOPE = 67, + POWER_SUPPLY_PROP_PRECHARGE_CURRENT = 68, + POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT = 69, + POWER_SUPPLY_PROP_CALIBRATE = 70, + POWER_SUPPLY_PROP_MANUFACTURE_YEAR = 71, + POWER_SUPPLY_PROP_MANUFACTURE_MONTH = 72, + POWER_SUPPLY_PROP_MANUFACTURE_DAY = 73, + POWER_SUPPLY_PROP_MODEL_NAME = 74, + POWER_SUPPLY_PROP_MANUFACTURER = 75, + POWER_SUPPLY_PROP_SERIAL_NUMBER = 76, +}; + +enum power_supply_type { + POWER_SUPPLY_TYPE_UNKNOWN = 0, + POWER_SUPPLY_TYPE_BATTERY = 1, + POWER_SUPPLY_TYPE_UPS = 2, + POWER_SUPPLY_TYPE_MAINS = 3, + POWER_SUPPLY_TYPE_USB = 4, + POWER_SUPPLY_TYPE_USB_DCP = 5, + POWER_SUPPLY_TYPE_USB_CDP = 6, + POWER_SUPPLY_TYPE_USB_ACA = 7, + POWER_SUPPLY_TYPE_USB_TYPE_C = 8, + POWER_SUPPLY_TYPE_USB_PD = 9, + POWER_SUPPLY_TYPE_USB_PD_DRP = 10, + POWER_SUPPLY_TYPE_APPLE_BRICK_ID = 11, + POWER_SUPPLY_TYPE_WIRELESS = 12, +}; + +enum power_supply_usb_type { + POWER_SUPPLY_USB_TYPE_UNKNOWN = 0, + POWER_SUPPLY_USB_TYPE_SDP = 1, + POWER_SUPPLY_USB_TYPE_DCP = 2, + POWER_SUPPLY_USB_TYPE_CDP = 3, + POWER_SUPPLY_USB_TYPE_ACA = 4, + POWER_SUPPLY_USB_TYPE_C = 5, + POWER_SUPPLY_USB_TYPE_PD = 6, + POWER_SUPPLY_USB_TYPE_PD_DRP = 7, + POWER_SUPPLY_USB_TYPE_PD_PPS = 8, + POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9, +}; + +enum 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 pr_type { + PR_WRITE_EXCLUSIVE = 1, + PR_EXCLUSIVE_ACCESS = 2, + PR_WRITE_EXCLUSIVE_REG_ONLY = 3, + PR_EXCLUSIVE_ACCESS_REG_ONLY = 4, + PR_WRITE_EXCLUSIVE_ALL_REGS = 5, + PR_EXCLUSIVE_ACCESS_ALL_REGS = 6, +}; + +enum prep_dispatch { + PREP_DISPATCH_OK = 0, + PREP_DISPATCH_NO_TAG = 1, + PREP_DISPATCH_NO_BUDGET = 2, +}; + +enum pri_resp { + PRI_RESP_DENY = 0, + PRI_RESP_FAIL = 1, + PRI_RESP_SUCC = 2, +}; + +enum print_line_t { + TRACE_TYPE_PARTIAL_LINE = 0, + TRACE_TYPE_HANDLED = 1, + TRACE_TYPE_UNHANDLED = 2, + TRACE_TYPE_NO_CONSUME = 3, +}; + +enum printk_info_flags { + LOG_FORCE_CON = 1, + LOG_NEWLINE = 2, + LOG_CONT = 8, +}; + +enum prio_policy { + POLICY_NO_CHANGE = 0, + POLICY_PROMOTE_TO_RT = 1, + POLICY_RESTRICT_TO_BE = 2, + POLICY_ALL_TO_IDLE = 3, + POLICY_NONE_TO_RT = 4, +}; + +enum priv_stack_mode { + PRIV_STACK_UNKNOWN = 0, + NO_PRIV_STACK = 1, + PRIV_STACK_ADAPTIVE = 2, +}; + +enum probe_insn { + INSN_REJECTED = 0, + INSN_GOOD_NO_SLOT = 1, + INSN_GOOD = 2, +}; + +enum probe_print_type { + PROBE_PRINT_NORMAL = 0, + PROBE_PRINT_RETURN = 1, + PROBE_PRINT_EVENT = 2, +}; + +enum probe_type { + PROBE_DEFAULT_STRATEGY = 0, + PROBE_PREFER_ASYNCHRONOUS = 1, + PROBE_FORCE_SYNCHRONOUS = 2, +}; + +enum proc_cn_event { + PROC_EVENT_NONE = 0, + PROC_EVENT_FORK = 1, + PROC_EVENT_EXEC = 2, + PROC_EVENT_UID = 4, + PROC_EVENT_GID = 64, + PROC_EVENT_SID = 128, + PROC_EVENT_PTRACE = 256, + PROC_EVENT_COMM = 512, + PROC_EVENT_NONZERO_EXIT = 536870912, + PROC_EVENT_COREDUMP = 1073741824, + PROC_EVENT_EXIT = 2147483648, +}; + +enum proc_cn_mcast_op { + PROC_CN_MCAST_LISTEN = 1, + PROC_CN_MCAST_IGNORE = 2, +}; + +enum proc_hidepid { + HIDEPID_OFF = 0, + HIDEPID_NO_ACCESS = 1, + HIDEPID_INVISIBLE = 2, + HIDEPID_NOT_PTRACEABLE = 4, +}; + +enum proc_mem_force { + PROC_MEM_FORCE_ALWAYS = 0, + PROC_MEM_FORCE_PTRACE = 1, + PROC_MEM_FORCE_NEVER = 2, +}; + +enum proc_param { + Opt_gid___7 = 0, + Opt_hidepid = 1, + Opt_subset = 2, +}; + +enum proc_pidonly { + PROC_PIDONLY_OFF = 0, + PROC_PIDONLY_ON = 1, +}; + +enum procmap_query_flags { + PROCMAP_QUERY_VMA_READABLE = 1, + PROCMAP_QUERY_VMA_WRITABLE = 2, + PROCMAP_QUERY_VMA_EXECUTABLE = 4, + PROCMAP_QUERY_VMA_SHARED = 8, + PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16, + PROCMAP_QUERY_FILE_BACKED_VMA = 32, +}; + +enum profile_mode { + APPARMOR_ENFORCE = 0, + APPARMOR_COMPLAIN = 1, + APPARMOR_KILL = 2, + APPARMOR_UNCONFINED = 3, + APPARMOR_USER = 4, +}; + +enum prs_errcode { + PERR_NONE = 0, + PERR_INVCPUS = 1, + PERR_INVPARENT = 2, + PERR_NOTPART = 3, + PERR_NOTEXCL = 4, + PERR_NOCPUS = 5, + PERR_HOTPLUG = 6, + PERR_CPUSEMPTY = 7, + PERR_HKEEPING = 8, + PERR_ACCESS = 9, + PERR_REMOTE = 10, +}; + +enum ps2_disposition { + PS2_PROCESS = 0, + PS2_IGNORE = 1, + PS2_ERROR = 2, +}; + +enum pse_pi_pairset_pinout { + ALTERNATIVE_A = 0, + ALTERNATIVE_B = 1, +}; + +enum psi_aggregators { + PSI_AVGS = 0, + PSI_POLL = 1, + NR_PSI_AGGREGATORS = 2, +}; + +enum psi_res { + PSI_IO = 0, + PSI_MEM = 1, + PSI_CPU = 2, + NR_PSI_RESOURCES = 3, +}; + +enum psi_states { + PSI_IO_SOME = 0, + PSI_IO_FULL = 1, + PSI_MEM_SOME = 2, + PSI_MEM_FULL = 3, + PSI_CPU_SOME = 4, + PSI_CPU_FULL = 5, + PSI_NONIDLE = 6, + NR_PSI_STATES = 7, +}; + +enum psi_task_count { + NR_IOWAIT = 0, + NR_MEMSTALL = 1, + NR_RUNNING = 2, + NR_MEMSTALL_RUNNING = 3, + NR_PSI_TASK_COUNTS = 4, +}; + +enum psil_endpoint_type { + PSIL_EP_NATIVE = 0, + PSIL_EP_PDMA_XY = 1, + PSIL_EP_PDMA_MCAN = 2, + PSIL_EP_PDMA_AASRC = 3, +}; + +enum pstore_type_id { + PSTORE_TYPE_DMESG = 0, + PSTORE_TYPE_MCE = 1, + PSTORE_TYPE_CONSOLE = 2, + PSTORE_TYPE_FTRACE = 3, + PSTORE_TYPE_PPC_RTAS = 4, + PSTORE_TYPE_PPC_OF = 5, + PSTORE_TYPE_PPC_COMMON = 6, + PSTORE_TYPE_PMSG = 7, + PSTORE_TYPE_PPC_OPAL = 8, + PSTORE_TYPE_MAX = 9, +}; + +enum ptp_clock_events { + PTP_CLOCK_ALARM = 0, + PTP_CLOCK_EXTTS = 1, + PTP_CLOCK_EXTOFF = 2, + PTP_CLOCK_PPS = 3, + PTP_CLOCK_PPSUSR = 4, +}; + +enum ptp_pin_function { + PTP_PF_NONE = 0, + PTP_PF_EXTTS = 1, + PTP_PF_PEROUT = 2, + PTP_PF_PHYSYNC = 3, +}; + +enum ptrace_syscall_dir { + PTRACE_SYSCALL_ENTER = 0, + PTRACE_SYSCALL_EXIT = 1, +}; + +enum pubkey_algo { + PUBKEY_ALGO_RSA = 0, + PUBKEY_ALGO_MAX = 1, +}; + +enum pwm_polarity { + PWM_POLARITY_NORMAL = 0, + PWM_POLARITY_INVERSED = 1, +}; + +enum px30_plls { + apll = 0, + dpll = 1, + cpll = 2, + npll = 3, + apll_b_h = 4, + apll_b_l = 5, +}; + +enum px30_pmu_plls { + gpll = 0, +}; + +enum qcom_iommu_clk { + CLK_IFACE = 0, + CLK_BUS = 1, + CLK_TBU = 2, + CLK_NUM = 3, +}; + +enum qcom_scm_arg_types { + QCOM_SCM_VAL = 0, + QCOM_SCM_RO = 1, + QCOM_SCM_RW = 2, + QCOM_SCM_BUFVAL = 3, +}; + +enum qcom_scm_convention { + SMC_CONVENTION_UNKNOWN = 0, + SMC_CONVENTION_LEGACY = 1, + SMC_CONVENTION_ARM_32 = 2, + SMC_CONVENTION_ARM_64 = 3, +}; + +enum qcom_scm_ice_cipher { + QCOM_SCM_ICE_CIPHER_AES_128_XTS = 0, + QCOM_SCM_ICE_CIPHER_AES_128_CBC = 1, + QCOM_SCM_ICE_CIPHER_AES_256_XTS = 3, + QCOM_SCM_ICE_CIPHER_AES_256_CBC = 4, +}; + +enum qcom_scm_ocmem_client { + QCOM_SCM_OCMEM_UNUSED_ID = 0, + QCOM_SCM_OCMEM_GRAPHICS_ID = 1, + QCOM_SCM_OCMEM_VIDEO_ID = 2, + QCOM_SCM_OCMEM_LP_AUDIO_ID = 3, + QCOM_SCM_OCMEM_SENSORS_ID = 4, + QCOM_SCM_OCMEM_OTHER_OS_ID = 5, + QCOM_SCM_OCMEM_DEBUG_ID = 6, +}; + +enum qcom_scm_qseecom_resp_type { + QSEECOM_SCM_RES_APP_ID = 60929, + QSEECOM_SCM_RES_QSEOS_LISTENER_ID = 60930, +}; + +enum qcom_scm_qseecom_result { + QSEECOM_RESULT_SUCCESS = 0, + QSEECOM_RESULT_INCOMPLETE = 1, + QSEECOM_RESULT_BLOCKED_ON_LISTENER = 2, + QSEECOM_RESULT_FAILURE = 4294967295, +}; + +enum qcom_scm_qseecom_tz_cmd_app { + QSEECOM_TZ_CMD_APP_SEND = 1, + QSEECOM_TZ_CMD_APP_LOOKUP = 3, +}; + +enum qcom_scm_qseecom_tz_cmd_info { + QSEECOM_TZ_CMD_INFO_VERSION = 3, +}; + +enum qcom_scm_qseecom_tz_owner { + QSEECOM_TZ_OWNER_SIP = 2, + QSEECOM_TZ_OWNER_TZ_APPS = 48, + QSEECOM_TZ_OWNER_QSEE_OS = 50, +}; + +enum qcom_scm_qseecom_tz_svc { + QSEECOM_TZ_SVC_APP_ID_PLACEHOLDER = 0, + QSEECOM_TZ_SVC_APP_MGR = 1, + QSEECOM_TZ_SVC_INFO = 6, +}; + +enum qcom_smmu_impl_reg_offset { + QCOM_SMMU_TBU_PWR_STATUS = 0, + QCOM_SMMU_STATS_SYNC_INV_TBU_ACK = 1, + QCOM_SMMU_MMU2QSS_AND_SAFE_WAIT_CNTR = 2, +}; + +enum qcom_tzmem_policy { + QCOM_TZMEM_POLICY_STATIC = 1, + QCOM_TZMEM_POLICY_MULTIPLIER = 2, + QCOM_TZMEM_POLICY_ON_DEMAND = 3, +}; + +enum qdisc_class_ops_flags { + QDISC_CLASS_OPS_DOIT_UNLOCKED = 1, +}; + +enum qdisc_state2_t { + __QDISC_STATE2_RUNNING = 0, +}; + +enum qdisc_state_t { + __QDISC_STATE_SCHED = 0, + __QDISC_STATE_DEACTIVATED = 1, + __QDISC_STATE_MISSED = 2, + __QDISC_STATE_DRAINING = 3, +}; + +enum qe_clock { + QE_CLK_NONE = 0, + QE_BRG1 = 1, + QE_BRG2 = 2, + QE_BRG3 = 3, + QE_BRG4 = 4, + QE_BRG5 = 5, + QE_BRG6 = 6, + QE_BRG7 = 7, + QE_BRG8 = 8, + QE_BRG9 = 9, + QE_BRG10 = 10, + QE_BRG11 = 11, + QE_BRG12 = 12, + QE_BRG13 = 13, + QE_BRG14 = 14, + QE_BRG15 = 15, + QE_BRG16 = 16, + QE_CLK1 = 17, + QE_CLK2 = 18, + QE_CLK3 = 19, + QE_CLK4 = 20, + QE_CLK5 = 21, + QE_CLK6 = 22, + QE_CLK7 = 23, + QE_CLK8 = 24, + QE_CLK9 = 25, + QE_CLK10 = 26, + QE_CLK11 = 27, + QE_CLK12 = 28, + QE_CLK13 = 29, + QE_CLK14 = 30, + QE_CLK15 = 31, + QE_CLK16 = 32, + QE_CLK17 = 33, + QE_CLK18 = 34, + QE_CLK19 = 35, + QE_CLK20 = 36, + QE_CLK21 = 37, + QE_CLK22 = 38, + QE_CLK23 = 39, + QE_CLK24 = 40, + QE_RSYNC_PIN = 41, + QE_TSYNC_PIN = 42, + QE_CLK_DUMMY = 43, +}; + +enum qe_fltr_tbl_lookup_key_size { + QE_FLTR_TABLE_LOOKUP_KEY_SIZE_8_BYTES = 63, + QE_FLTR_TABLE_LOOKUP_KEY_SIZE_16_BYTES = 95, +}; + +enum qm_dc_portal { + qm_dc_portal_fman0 = 0, + qm_dc_portal_fman1 = 1, +}; + +enum qm_dqrr_cmode { + qm_dqrr_cci = 0, + qm_dqrr_cce = 1, + qm_dqrr_cdc = 2, +}; + +enum qm_dqrr_dmode { + qm_dqrr_dpush = 0, + qm_dqrr_dpull = 1, +}; + +enum qm_dqrr_pmode { + qm_dqrr_pci = 0, + qm_dqrr_pce = 1, + qm_dqrr_pvb = 2, +}; + +enum qm_eqcr_pmode { + qm_eqcr_pci = 0, + qm_eqcr_pce = 1, + qm_eqcr_pvb = 2, +}; + +enum qm_memory { + qm_memory_fqd = 0, + qm_memory_pfdr = 1, +}; + +enum qm_mr_cmode { + qm_mr_cci = 0, + qm_mr_cce = 1, +}; + +enum qm_mr_pmode { + qm_mr_pci = 0, + qm_mr_pce = 1, + qm_mr_pvb = 2, +}; + +enum qm_wq_class { + qm_wq_portal = 0, + qm_wq_pool = 1, + qm_wq_fman0 = 2, + qm_wq_fman1 = 3, + qm_wq_caam = 4, + qm_wq_pme = 5, + qm_wq_first = 0, + qm_wq_last = 5, +}; + +enum qman_cb_dqrr_result { + qman_cb_dqrr_consume = 0, + qman_cb_dqrr_park = 1, + qman_cb_dqrr_defer = 2, + qman_cb_dqrr_stop = 3, + qman_cb_dqrr_consume_stop = 4, +}; + +enum qman_fq_state { + qman_fq_state_oos = 0, + qman_fq_state_parked = 1, + qman_fq_state_sched = 2, + qman_fq_state_retired = 3, +}; + +enum quota_type { + USRQUOTA = 0, + GRPQUOTA = 1, + PRJQUOTA = 2, +}; + +enum r8a77970_clk_types { + CLK_TYPE_R8A77970_SD0H = 23, + CLK_TYPE_R8A77970_SD0 = 24, +}; + +enum ramfs_param { + Opt_mode___5 = 0, +}; + +enum rcar_gen3_clk_types { + CLK_TYPE_GEN3_MAIN = 5, + CLK_TYPE_GEN3_PLL0 = 6, + CLK_TYPE_GEN3_PLL1 = 7, + CLK_TYPE_GEN3_PLL2 = 8, + CLK_TYPE_GEN3_PLL3 = 9, + CLK_TYPE_GEN3_PLL4 = 10, + CLK_TYPE_GEN3_SDH = 11, + CLK_TYPE_GEN3_SD = 12, + CLK_TYPE_GEN3_R = 13, + CLK_TYPE_GEN3_MDSEL = 14, + CLK_TYPE_GEN3_Z = 15, + CLK_TYPE_GEN3_ZG = 16, + CLK_TYPE_GEN3_OSC = 17, + CLK_TYPE_GEN3_RCKSEL = 18, + CLK_TYPE_GEN3_RPCSRC = 19, + CLK_TYPE_GEN3_E3_RPCSRC = 20, + CLK_TYPE_GEN3_RPC = 21, + CLK_TYPE_GEN3_RPCD2 = 22, + CLK_TYPE_GEN3_SOC_BASE = 23, +}; + +enum rcar_gen4_clk_types { + CLK_TYPE_GEN4_MAIN = 5, + CLK_TYPE_GEN4_PLL1 = 6, + CLK_TYPE_GEN4_PLL2X_3X = 7, + CLK_TYPE_GEN4_PLL5 = 8, + CLK_TYPE_GEN4_PLL_F8_25 = 9, + CLK_TYPE_GEN4_PLL_V8_25 = 10, + CLK_TYPE_GEN4_PLL_F9_24 = 11, + CLK_TYPE_GEN4_PLL_V9_24 = 12, + CLK_TYPE_GEN4_SDSRC = 13, + CLK_TYPE_GEN4_SDH = 14, + CLK_TYPE_GEN4_SD = 15, + CLK_TYPE_GEN4_MDSEL = 16, + CLK_TYPE_GEN4_Z = 17, + CLK_TYPE_GEN4_OSC = 18, + CLK_TYPE_GEN4_RPCSRC = 19, + CLK_TYPE_GEN4_RPC = 20, + CLK_TYPE_GEN4_RPCD2 = 21, + CLK_TYPE_GEN4_SOC_BASE = 22, +}; + +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, +}; + +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 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 rdma_nl_counter_mask { + RDMA_COUNTER_MASK_QP_TYPE = 1, + RDMA_COUNTER_MASK_PID = 2, +}; + +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_dev_type { + RDMA_DEVICE_TYPE_SMI = 1, +}; + +enum rdma_nl_name_assign_type { + RDMA_NAME_ASSIGN_TYPE_UNKNOWN = 0, + RDMA_NAME_ASSIGN_TYPE_USER = 1, +}; + +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, +}; + +enum rdmacg_file_type { + RDMACG_RESOURCE_TYPE_MAX = 0, + RDMACG_RESOURCE_TYPE_STAT = 1, +}; + +enum rdmacg_resource_type { + RDMACG_RESOURCE_HCA_HANDLE = 0, + RDMACG_RESOURCE_HCA_OBJECT = 1, + RDMACG_RESOURCE_MAX = 2, +}; + +enum reboot_mode { + REBOOT_UNDEFINED = -1, + REBOOT_COLD = 0, + REBOOT_WARM = 1, + REBOOT_HARD = 2, + REBOOT_SOFT = 3, + REBOOT_GPIO = 4, +}; + +enum reboot_type { + BOOT_TRIPLE = 116, + BOOT_KBD = 107, + BOOT_BIOS = 98, + BOOT_ACPI = 97, + BOOT_EFI = 101, + BOOT_CF9_FORCE = 112, + BOOT_CF9_SAFE = 113, +}; + +enum recovery_flags { + MD_RECOVERY_NEEDED = 0, + MD_RECOVERY_RUNNING = 1, + MD_RECOVERY_INTR = 2, + MD_RECOVERY_DONE = 3, + MD_RECOVERY_FROZEN = 4, + MD_RECOVERY_WAIT = 5, + MD_RECOVERY_ERROR = 6, + MD_RECOVERY_SYNC = 7, + MD_RECOVERY_REQUESTED = 8, + MD_RECOVERY_CHECK = 9, + MD_RECOVERY_RECOVER = 10, + MD_RECOVERY_RESHAPE = 11, + MD_RESYNCING_REMOTE = 12, +}; + +enum ref_state_type { + REF_TYPE_PTR = 1, + REF_TYPE_IRQ = 2, + REF_TYPE_LOCK = 3, +}; + +enum refcount_saturation_type { + REFCOUNT_ADD_NOT_ZERO_OVF = 0, + REFCOUNT_ADD_OVF = 1, + REFCOUNT_ADD_UAF = 2, + REFCOUNT_SUB_UAF = 3, + REFCOUNT_DEC_LEAK = 4, +}; + +enum reg_arg_type { + SRC_OP = 0, + DST_OP = 1, + DST_OP_NO_MARK = 2, +}; + +enum regcache_type { + REGCACHE_NONE = 0, + REGCACHE_RBTREE = 1, + REGCACHE_FLAT = 2, + REGCACHE_MAPLE = 3, +}; + +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 regmap_endian { + REGMAP_ENDIAN_DEFAULT = 0, + REGMAP_ENDIAN_BIG = 1, + REGMAP_ENDIAN_LITTLE = 2, + REGMAP_ENDIAN_NATIVE = 3, +}; + +enum regulator_active_discharge { + REGULATOR_ACTIVE_DISCHARGE_DEFAULT = 0, + REGULATOR_ACTIVE_DISCHARGE_DISABLE = 1, + REGULATOR_ACTIVE_DISCHARGE_ENABLE = 2, +}; + +enum regulator_detection_severity { + REGULATOR_SEVERITY_PROT = 0, + REGULATOR_SEVERITY_ERR = 1, + REGULATOR_SEVERITY_WARN = 2, +}; + +enum regulator_get_type { + NORMAL_GET = 0, + EXCLUSIVE_GET = 1, + OPTIONAL_GET = 2, + MAX_GET_TYPE = 3, +}; + +enum regulator_status { + REGULATOR_STATUS_OFF = 0, + REGULATOR_STATUS_ON = 1, + REGULATOR_STATUS_ERROR = 2, + REGULATOR_STATUS_FAST = 3, + REGULATOR_STATUS_NORMAL = 4, + REGULATOR_STATUS_IDLE = 5, + REGULATOR_STATUS_STANDBY = 6, + REGULATOR_STATUS_BYPASS = 7, + REGULATOR_STATUS_UNDEFINED = 8, +}; + +enum regulator_type { + REGULATOR_VOLTAGE = 0, + REGULATOR_CURRENT = 1, +}; + +enum release_type { + leaf_only = 0, + whole_subtree = 1, +}; + +enum req_flag_bits { + __REQ_FAILFAST_DEV = 8, + __REQ_FAILFAST_TRANSPORT = 9, + __REQ_FAILFAST_DRIVER = 10, + __REQ_SYNC = 11, + __REQ_META = 12, + __REQ_PRIO = 13, + __REQ_NOMERGE = 14, + __REQ_IDLE = 15, + __REQ_INTEGRITY = 16, + __REQ_FUA = 17, + __REQ_PREFLUSH = 18, + __REQ_RAHEAD = 19, + __REQ_BACKGROUND = 20, + __REQ_NOWAIT = 21, + __REQ_POLLED = 22, + __REQ_ALLOC_CACHE = 23, + __REQ_SWAP = 24, + __REQ_DRV = 25, + __REQ_FS_PRIVATE = 26, + __REQ_ATOMIC = 27, + __REQ_NOUNMAP = 28, + __REQ_NR_BITS = 29, +}; + +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_ZONE_APPEND = 7, + REQ_OP_WRITE_ZEROES = 9, + REQ_OP_ZONE_OPEN = 10, + REQ_OP_ZONE_CLOSE = 11, + REQ_OP_ZONE_FINISH = 12, + REQ_OP_ZONE_RESET = 13, + REQ_OP_ZONE_RESET_ALL = 15, + REQ_OP_DRV_IN = 34, + REQ_OP_DRV_OUT = 35, + REQ_OP_LAST = 36, +}; + +enum resctrl_conf_type { + CDP_NONE = 0, + CDP_CODE = 1, + CDP_DATA = 2, +}; + +enum reset_control_flags { + RESET_CONTROL_EXCLUSIVE = 4, + RESET_CONTROL_EXCLUSIVE_DEASSERTED = 12, + RESET_CONTROL_EXCLUSIVE_RELEASED = 0, + RESET_CONTROL_SHARED = 1, + RESET_CONTROL_SHARED_DEASSERTED = 9, + RESET_CONTROL_OPTIONAL_EXCLUSIVE = 6, + RESET_CONTROL_OPTIONAL_EXCLUSIVE_DEASSERTED = 14, + RESET_CONTROL_OPTIONAL_EXCLUSIVE_RELEASED = 2, + RESET_CONTROL_OPTIONAL_SHARED = 3, + RESET_CONTROL_OPTIONAL_SHARED_DEASSERTED = 11, +}; + +enum resolve_mode { + RESOLVE_TBD = 0, + RESOLVE_PTR = 1, + RESOLVE_STRUCT_OR_ARRAY = 2, +}; + +enum rfkill_hard_block_reasons { + RFKILL_HARD_BLOCK_SIGNAL = 1, + RFKILL_HARD_BLOCK_NOT_OWNER = 2, +}; + +enum rfkill_input_master_mode { + RFKILL_INPUT_MASTER_UNLOCK = 0, + RFKILL_INPUT_MASTER_RESTORE = 1, + RFKILL_INPUT_MASTER_UNBLOCKALL = 2, + NUM_RFKILL_INPUT_MASTER_MODES = 3, +}; + +enum rfkill_operation { + RFKILL_OP_ADD = 0, + RFKILL_OP_DEL = 1, + RFKILL_OP_CHANGE = 2, + RFKILL_OP_CHANGE_ALL = 3, +}; + +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_type { + RFKILL_TYPE_ALL = 0, + RFKILL_TYPE_WLAN = 1, + RFKILL_TYPE_BLUETOOTH = 2, + RFKILL_TYPE_UWB = 3, + RFKILL_TYPE_WIMAX = 4, + RFKILL_TYPE_WWAN = 5, + RFKILL_TYPE_GPS = 6, + RFKILL_TYPE_FM = 7, + RFKILL_TYPE_NFC = 8, + NUM_RFKILL_TYPES = 9, +}; + +enum rfkill_user_states { + RFKILL_USER_STATE_SOFT_BLOCKED = 0, + RFKILL_USER_STATE_UNBLOCKED = 1, + RFKILL_USER_STATE_HARD_BLOCKED = 2, +}; + +enum ring_buffer_flags { + RB_FL_OVERWRITE = 1, +}; + +enum ring_buffer_type { + RINGBUF_TYPE_DATA_TYPE_LEN_MAX = 28, + RINGBUF_TYPE_PADDING = 29, + RINGBUF_TYPE_TIME_EXTEND = 30, + RINGBUF_TYPE_TIME_STAMP = 31, +}; + +enum rio_device_state { + RIO_DEVICE_INITIALIZING = 0, + RIO_DEVICE_RUNNING = 1, + RIO_DEVICE_GONE = 2, + RIO_DEVICE_SHUTDOWN = 3, +}; + +enum rio_write_type { + RDW_DEFAULT = 0, + RDW_ALL_NWRITE = 1, + RDW_ALL_NWRITE_R = 2, + RDW_LAST_NWRITE_R = 3, +}; + +enum ripas { + RSI_RIPAS_EMPTY = 0, + RSI_RIPAS_RAM = 1, + RSI_RIPAS_DESTROYED = 2, + RSI_RIPAS_DEV = 3, +}; + +enum rk3308_plls { + apll___2 = 0, + dpll___2 = 1, + vpll0 = 2, + vpll1 = 3, +}; + +enum rk3328_plls { + apll___3 = 0, + dpll___3 = 1, + cpll___2 = 2, + gpll___2 = 3, + npll___2 = 4, +}; + +enum rk3368_plls { + apllb = 0, + aplll = 1, + dpll___4 = 2, + cpll___3 = 3, + gpll___3 = 4, + npll___3 = 5, +}; + +enum rk3399_plls { + lpll = 0, + bpll = 1, + dpll___5 = 2, + cpll___4 = 3, + gpll___4 = 4, + npll___4 = 5, + vpll = 6, +}; + +enum rk3399_pmu_plls { + ppll = 0, +}; + +enum rk3568_plls { + apll___4 = 0, + dpll___6 = 1, + gpll___5 = 2, + cpll___5 = 3, + npll___5 = 4, + vpll___2 = 5, +}; + +enum rk3568_pmu_plls { + ppll___2 = 0, + hpll = 1, +}; + +enum rk3576_plls { + bpll___2 = 0, + lpll___2 = 1, + vpll___3 = 2, + aupll = 3, + cpll___6 = 4, + gpll___6 = 5, + ppll___3 = 6, +}; + +enum rk3588_plls { + b0pll = 0, + b1pll = 1, + lpll___3 = 2, + v0pll = 3, + aupll___2 = 4, + cpll___7 = 5, + gpll___7 = 6, + npll___6 = 7, + ppll___4 = 8, +}; + +enum rk817_reg_id { + RK817_ID_DCDC1 = 0, + RK817_ID_DCDC2 = 1, + RK817_ID_DCDC3 = 2, + RK817_ID_DCDC4 = 3, + RK817_ID_LDO1 = 4, + RK817_ID_LDO2 = 5, + RK817_ID_LDO3 = 6, + RK817_ID_LDO4 = 7, + RK817_ID_LDO5 = 8, + RK817_ID_LDO6 = 9, + RK817_ID_LDO7 = 10, + RK817_ID_LDO8 = 11, + RK817_ID_LDO9 = 12, + RK817_ID_BOOST = 13, + RK817_ID_BOOST_OTG_SW = 14, + RK817_NUM_REGULATORS = 15, +}; + +enum rlimit_type { + UCOUNT_RLIMIT_NPROC = 0, + UCOUNT_RLIMIT_MSGQUEUE = 1, + UCOUNT_RLIMIT_SIGPENDING = 2, + UCOUNT_RLIMIT_MEMLOCK = 3, + UCOUNT_RLIMIT_COUNTS = 4, +}; + +enum rmap_level { + RMAP_LEVEL_PTE = 0, + RMAP_LEVEL_PMD = 1, +}; + +enum rmp_flags { + RMP_LOCKED = 1, + RMP_USE_SHARED_ZEROPAGE = 2, +}; + +enum rmqueue_mode { + RMQUEUE_NORMAL = 0, + RMQUEUE_CMA = 1, + RMQUEUE_CLAIM = 2, + RMQUEUE_STEAL = 3, +}; + +enum rockchip_clk_branch_type { + branch_composite = 0, + branch_mux = 1, + branch_muxgrf = 2, + branch_divider = 3, + branch_fraction_divider = 4, + branch_gate = 5, + branch_linked_gate = 6, + branch_mmc = 7, + branch_inverter = 8, + branch_factor = 9, + branch_ddrclk = 10, + branch_half_divider = 11, +}; + +enum rockchip_mux_route_location { + ROCKCHIP_ROUTE_SAME = 0, + ROCKCHIP_ROUTE_PMU = 1, + ROCKCHIP_ROUTE_GRF = 2, +}; + +enum rockchip_pin_drv_type { + DRV_TYPE_IO_DEFAULT = 0, + DRV_TYPE_IO_1V8_OR_3V0 = 1, + DRV_TYPE_IO_1V8_ONLY = 2, + DRV_TYPE_IO_1V8_3V0_AUTO = 3, + DRV_TYPE_IO_3V3_ONLY = 4, + DRV_TYPE_MAX = 5, +}; + +enum rockchip_pin_pull_type { + PULL_TYPE_IO_DEFAULT = 0, + PULL_TYPE_IO_1V8_ONLY = 1, + PULL_TYPE_MAX = 2, +}; + +enum rockchip_pinctrl_type { + PX30 = 0, + RV1108 = 1, + RV1126 = 2, + RK2928 = 3, + RK3066B = 4, + RK3128 = 5, + RK3188 = 6, + RK3288 = 7, + RK3308 = 8, + RK3328 = 9, + RK3368 = 10, + RK3399 = 11, + RK3562 = 12, + RK3568 = 13, + RK3576 = 14, + RK3588 = 15, +}; + +enum rockchip_pll_type { + pll_rk3036 = 0, + pll_rk3066 = 1, + pll_rk3328 = 2, + pll_rk3399 = 3, + pll_rk3588 = 4, + pll_rk3588_core = 5, + pll_rk3588_ddr = 6, +}; + +enum rp_check { + RP_CHECK_CALL = 0, + RP_CHECK_CHAIN_CALL = 1, + RP_CHECK_RET = 2, +}; + +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, +}; + +enum rpm_request { + RPM_REQ_NONE = 0, + RPM_REQ_IDLE = 1, + RPM_REQ_SUSPEND = 2, + RPM_REQ_AUTOSUSPEND = 3, + RPM_REQ_RESUME = 4, +}; + +enum rpm_status { + RPM_INVALID = -1, + RPM_ACTIVE = 0, + RPM_RESUMING = 1, + RPM_SUSPENDED = 2, + RPM_SUSPENDING = 3, +}; + +enum rpmh_state { + RPMH_SLEEP_STATE = 0, + RPMH_WAKE_ONLY_STATE = 1, + RPMH_ACTIVE_ONLY_STATE = 2, +}; + +enum rproc_crash_type { + RPROC_MMUFAULT = 0, + RPROC_WATCHDOG = 1, + RPROC_FATAL_ERROR = 2, +}; + +enum rproc_dump_mechanism { + RPROC_COREDUMP_DISABLED = 0, + RPROC_COREDUMP_ENABLED = 1, + RPROC_COREDUMP_INLINE = 2, +}; + +enum rproc_features { + RPROC_FEAT_ATTACH_ON_RECOVERY = 0, + RPROC_MAX_FEATURES = 1, +}; + +enum rproc_state { + RPROC_OFFLINE = 0, + RPROC_SUSPENDED = 1, + RPROC_RUNNING = 2, + RPROC_CRASHED = 3, + RPROC_DELETED = 4, + RPROC_ATTACHED = 5, + RPROC_DETACHED = 6, + RPROC_LAST = 7, +}; + +enum rpu_oper_mode { + PM_RPU_MODE_LOCKSTEP = 0, + PM_RPU_MODE_SPLIT = 1, +}; + +enum rpu_tcm_comb { + PM_RPU_TCM_SPLIT = 0, + PM_RPU_TCM_COMB = 1, +}; + +enum rq_end_io_ret { + RQ_END_IO_NONE = 0, + RQ_END_IO_FREE = 1, +}; + +enum rq_qos_id { + RQ_QOS_WBT = 0, + RQ_QOS_LATENCY = 1, + RQ_QOS_COST = 2, +}; + +enum rqf_flags { + __RQF_STARTED = 0, + __RQF_FLUSH_SEQ = 1, + __RQF_MIXED_MERGE = 2, + __RQF_DONTPREP = 3, + __RQF_SCHED_TAGS = 4, + __RQF_USE_SCHED = 5, + __RQF_FAILED = 6, + __RQF_QUIET = 7, + __RQF_IO_STAT = 8, + __RQF_PM = 9, + __RQF_HASHED = 10, + __RQF_STATS = 11, + __RQF_SPECIAL_PAYLOAD = 12, + __RQF_ZONE_WRITE_PLUGGING = 13, + __RQF_TIMED_OUT = 14, + __RQF_RESV = 15, + __RQF_BITS = 16, +}; + +enum rsaprivkey_actions { + ACT_rsa_get_d = 0, + ACT_rsa_get_dp = 1, + ACT_rsa_get_dq = 2, + ACT_rsa_get_e = 3, + ACT_rsa_get_n = 4, + ACT_rsa_get_p = 5, + ACT_rsa_get_q = 6, + ACT_rsa_get_qinv = 7, + NR__rsaprivkey_actions = 8, +}; + +enum rsapubkey_actions { + ACT_rsa_get_e___2 = 0, + ACT_rsa_get_n___2 = 1, + NR__rsapubkey_actions = 2, +}; + +enum rsc_handling_status { + RSC_HANDLED = 0, + RSC_IGNORED = 1, +}; + +enum rseq_cpu_id_state { + RSEQ_CPU_ID_UNINITIALIZED = -1, + RSEQ_CPU_ID_REGISTRATION_FAILED = -2, +}; + +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_cs_flags_bit { + RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT_BIT = 0, + RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL_BIT = 1, + RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE_BIT = 2, +}; + +enum rseq_event_mask_bits { + RSEQ_EVENT_PREEMPT_BIT = 0, + RSEQ_EVENT_SIGNAL_BIT = 1, + RSEQ_EVENT_MIGRATE_BIT = 2, +}; + +enum rseq_flags { + RSEQ_FLAG_UNREGISTER = 1, +}; + +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 rt_class_t { + RT_TABLE_UNSPEC = 0, + RT_TABLE_COMPAT = 252, + RT_TABLE_DEFAULT = 253, + RT_TABLE_MAIN = 254, + RT_TABLE_LOCAL = 255, + RT_TABLE_MAX = 4294967295, +}; + +enum rt_scope_t { + RT_SCOPE_UNIVERSE = 0, + RT_SCOPE_SITE = 200, + RT_SCOPE_LINK = 253, + RT_SCOPE_HOST = 254, + RT_SCOPE_NOWHERE = 255, +}; + +enum rtattr_type_t { + RTA_UNSPEC = 0, + RTA_DST = 1, + RTA_SRC = 2, + RTA_IIF = 3, + RTA_OIF = 4, + RTA_GATEWAY = 5, + RTA_PRIORITY = 6, + RTA_PREFSRC = 7, + RTA_METRICS = 8, + RTA_MULTIPATH = 9, + RTA_PROTOINFO = 10, + RTA_FLOW = 11, + RTA_CACHEINFO = 12, + RTA_SESSION = 13, + RTA_MP_ALGO = 14, + RTA_TABLE = 15, + RTA_MARK = 16, + RTA_MFC_STATS = 17, + RTA_VIA = 18, + RTA_NEWDST = 19, + RTA_PREF = 20, + RTA_ENCAP_TYPE = 21, + RTA_ENCAP = 22, + RTA_EXPIRES = 23, + RTA_PAD = 24, + RTA_UID = 25, + RTA_TTL_PROPAGATE = 26, + RTA_IP_PROTO = 27, + RTA_SPORT = 28, + RTA_DPORT = 29, + RTA_NH_ID = 30, + RTA_FLOWLABEL = 31, + __RTA_MAX = 32, +}; + +enum rtmutex_chainwalk { + RT_MUTEX_MIN_CHAINWALK = 0, + RT_MUTEX_FULL_CHAINWALK = 1, +}; + +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_IPV4_MCADDR = 37, + RTNLGRP_IPV6_MCADDR = 38, + RTNLGRP_IPV6_ACADDR = 39, + __RTNLGRP_MAX = 40, +}; + +enum rtnl_kinds { + RTNL_KIND_NEW = 0, + RTNL_KIND_DEL = 1, + RTNL_KIND_GET = 2, + RTNL_KIND_SET = 3, +}; + +enum rtnl_link_flags { + RTNL_FLAG_DOIT_UNLOCKED = 1, + RTNL_FLAG_BULK_DEL_SUPPORTED = 2, + RTNL_FLAG_DUMP_UNLOCKED = 4, + RTNL_FLAG_DUMP_SPLIT_NLM_DONE = 8, +}; + +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, +} __attribute__((mode(byte))); + +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 rwsig_action { + RWSIG_ACTION_ABORT = 0, + RWSIG_ACTION_CONTINUE = 1, +}; + +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; + +enum rz_mtu3_channels { + RZ_MTU3_CHAN_0 = 0, + RZ_MTU3_CHAN_1 = 1, + RZ_MTU3_CHAN_2 = 2, + RZ_MTU3_CHAN_3 = 3, + RZ_MTU3_CHAN_4 = 4, + RZ_MTU3_CHAN_5 = 5, + RZ_MTU3_CHAN_6 = 6, + RZ_MTU3_CHAN_7 = 7, + RZ_MTU3_CHAN_8 = 8, + RZ_MTU_NUM_CHANNELS = 9, +}; + +enum rzg2l_iolh_index { + RZG2L_IOLH_IDX_1V8 = 0, + RZG2L_IOLH_IDX_2V5 = 4, + RZG2L_IOLH_IDX_3V3 = 8, + RZG2L_IOLH_IDX_MAX = 12, +}; + +enum s2idle_states { + S2IDLE_STATE_NONE = 0, + S2IDLE_STATE_ENTER = 1, + S2IDLE_STATE_WAKE = 2, +}; + +enum s2mpa01_reg { + S2MPA01_REG_ID = 0, + S2MPA01_REG_INT1 = 1, + S2MPA01_REG_INT2 = 2, + S2MPA01_REG_INT3 = 3, + S2MPA01_REG_INT1M = 4, + S2MPA01_REG_INT2M = 5, + S2MPA01_REG_INT3M = 6, + S2MPA01_REG_ST1 = 7, + S2MPA01_REG_ST2 = 8, + S2MPA01_REG_PWRONSRC = 9, + S2MPA01_REG_OFFSRC = 10, + S2MPA01_REG_RTC_BUF = 11, + S2MPA01_REG_CTRL1 = 12, + S2MPA01_REG_ETC_TEST = 13, + S2MPA01_REG_RSVD1 = 14, + S2MPA01_REG_BU_CHG = 15, + S2MPA01_REG_RAMP1 = 16, + S2MPA01_REG_RAMP2 = 17, + S2MPA01_REG_LDO_DSCH1 = 18, + S2MPA01_REG_LDO_DSCH2 = 19, + S2MPA01_REG_LDO_DSCH3 = 20, + S2MPA01_REG_LDO_DSCH4 = 21, + S2MPA01_REG_OTP_ADRL = 22, + S2MPA01_REG_OTP_ADRH = 23, + S2MPA01_REG_OTP_DATA = 24, + S2MPA01_REG_MON1SEL = 25, + S2MPA01_REG_MON2SEL = 26, + S2MPA01_REG_LEE = 27, + S2MPA01_REG_RSVD2 = 28, + S2MPA01_REG_RSVD3 = 29, + S2MPA01_REG_RSVD4 = 30, + S2MPA01_REG_RSVD5 = 31, + S2MPA01_REG_RSVD6 = 32, + S2MPA01_REG_TOP_RSVD = 33, + S2MPA01_REG_DVS_SEL = 34, + S2MPA01_REG_DVS_PTR = 35, + S2MPA01_REG_DVS_DATA = 36, + S2MPA01_REG_RSVD_NO = 37, + S2MPA01_REG_UVLO = 38, + S2MPA01_REG_LEE_NO = 39, + S2MPA01_REG_B1CTRL1 = 40, + S2MPA01_REG_B1CTRL2 = 41, + S2MPA01_REG_B2CTRL1 = 42, + S2MPA01_REG_B2CTRL2 = 43, + S2MPA01_REG_B3CTRL1 = 44, + S2MPA01_REG_B3CTRL2 = 45, + S2MPA01_REG_B4CTRL1 = 46, + S2MPA01_REG_B4CTRL2 = 47, + S2MPA01_REG_B5CTRL1 = 48, + S2MPA01_REG_B5CTRL2 = 49, + S2MPA01_REG_B5CTRL3 = 50, + S2MPA01_REG_B5CTRL4 = 51, + S2MPA01_REG_B5CTRL5 = 52, + S2MPA01_REG_B5CTRL6 = 53, + S2MPA01_REG_B6CTRL1 = 54, + S2MPA01_REG_B6CTRL2 = 55, + S2MPA01_REG_B7CTRL1 = 56, + S2MPA01_REG_B7CTRL2 = 57, + S2MPA01_REG_B8CTRL1 = 58, + S2MPA01_REG_B8CTRL2 = 59, + S2MPA01_REG_B9CTRL1 = 60, + S2MPA01_REG_B9CTRL2 = 61, + S2MPA01_REG_B10CTRL1 = 62, + S2MPA01_REG_B10CTRL2 = 63, + S2MPA01_REG_L1CTRL = 64, + S2MPA01_REG_L2CTRL = 65, + S2MPA01_REG_L3CTRL = 66, + S2MPA01_REG_L4CTRL = 67, + S2MPA01_REG_L5CTRL = 68, + S2MPA01_REG_L6CTRL = 69, + S2MPA01_REG_L7CTRL = 70, + S2MPA01_REG_L8CTRL = 71, + S2MPA01_REG_L9CTRL = 72, + S2MPA01_REG_L10CTRL = 73, + S2MPA01_REG_L11CTRL = 74, + S2MPA01_REG_L12CTRL = 75, + S2MPA01_REG_L13CTRL = 76, + S2MPA01_REG_L14CTRL = 77, + S2MPA01_REG_L15CTRL = 78, + S2MPA01_REG_L16CTRL = 79, + S2MPA01_REG_L17CTRL = 80, + S2MPA01_REG_L18CTRL = 81, + S2MPA01_REG_L19CTRL = 82, + S2MPA01_REG_L20CTRL = 83, + S2MPA01_REG_L21CTRL = 84, + S2MPA01_REG_L22CTRL = 85, + S2MPA01_REG_L23CTRL = 86, + S2MPA01_REG_L24CTRL = 87, + S2MPA01_REG_L25CTRL = 88, + S2MPA01_REG_L26CTRL = 89, + S2MPA01_REG_LDO_OVCB1 = 90, + S2MPA01_REG_LDO_OVCB2 = 91, + S2MPA01_REG_LDO_OVCB3 = 92, + S2MPA01_REG_LDO_OVCB4 = 93, +}; + +enum s2mps11_irq { + S2MPS11_IRQ_PWRONF = 0, + S2MPS11_IRQ_PWRONR = 1, + S2MPS11_IRQ_JIGONBF = 2, + S2MPS11_IRQ_JIGONBR = 3, + S2MPS11_IRQ_ACOKBF = 4, + S2MPS11_IRQ_ACOKBR = 5, + S2MPS11_IRQ_PWRON1S = 6, + S2MPS11_IRQ_MRB = 7, + S2MPS11_IRQ_RTC60S = 8, + S2MPS11_IRQ_RTCA1 = 9, + S2MPS11_IRQ_RTCA0 = 10, + S2MPS11_IRQ_SMPL = 11, + S2MPS11_IRQ_RTC1S = 12, + S2MPS11_IRQ_WTSR = 13, + S2MPS11_IRQ_INT120C = 14, + S2MPS11_IRQ_INT140C = 15, + S2MPS11_IRQ_NR = 16, +}; + +enum s2mps11_reg { + S2MPS11_REG_ID = 0, + S2MPS11_REG_INT1 = 1, + S2MPS11_REG_INT2 = 2, + S2MPS11_REG_INT3 = 3, + S2MPS11_REG_INT1M = 4, + S2MPS11_REG_INT2M = 5, + S2MPS11_REG_INT3M = 6, + S2MPS11_REG_ST1 = 7, + S2MPS11_REG_ST2 = 8, + S2MPS11_REG_OFFSRC = 9, + S2MPS11_REG_PWRONSRC = 10, + S2MPS11_REG_RTC_CTRL = 11, + S2MPS11_REG_CTRL1 = 12, + S2MPS11_REG_ETC_TEST = 13, + S2MPS11_REG_RSVD3 = 14, + S2MPS11_REG_BU_CHG = 15, + S2MPS11_REG_RAMP = 16, + S2MPS11_REG_RAMP_BUCK = 17, + S2MPS11_REG_LDO1_8 = 18, + S2MPS11_REG_LDO9_16 = 19, + S2MPS11_REG_LDO17_24 = 20, + S2MPS11_REG_LDO25_32 = 21, + S2MPS11_REG_LDO33_38 = 22, + S2MPS11_REG_LDO1_8_1 = 23, + S2MPS11_REG_LDO9_16_1 = 24, + S2MPS11_REG_LDO17_24_1 = 25, + S2MPS11_REG_LDO25_32_1 = 26, + S2MPS11_REG_LDO33_38_1 = 27, + S2MPS11_REG_OTP_ADRL = 28, + S2MPS11_REG_OTP_ADRH = 29, + S2MPS11_REG_OTP_DATA = 30, + S2MPS11_REG_MON1SEL = 31, + S2MPS11_REG_MON2SEL = 32, + S2MPS11_REG_LEE = 33, + S2MPS11_REG_RSVD_NO = 34, + S2MPS11_REG_UVLO = 35, + S2MPS11_REG_LEE_NO = 36, + S2MPS11_REG_B1CTRL1 = 37, + S2MPS11_REG_B1CTRL2 = 38, + S2MPS11_REG_B2CTRL1 = 39, + S2MPS11_REG_B2CTRL2 = 40, + S2MPS11_REG_B3CTRL1 = 41, + S2MPS11_REG_B3CTRL2 = 42, + S2MPS11_REG_B4CTRL1 = 43, + S2MPS11_REG_B4CTRL2 = 44, + S2MPS11_REG_B5CTRL1 = 45, + S2MPS11_REG_BUCK5_SW = 46, + S2MPS11_REG_B5CTRL2 = 47, + S2MPS11_REG_B5CTRL3 = 48, + S2MPS11_REG_B5CTRL4 = 49, + S2MPS11_REG_B5CTRL5 = 50, + S2MPS11_REG_B6CTRL1 = 51, + S2MPS11_REG_B6CTRL2 = 52, + S2MPS11_REG_B7CTRL1 = 53, + S2MPS11_REG_B7CTRL2 = 54, + S2MPS11_REG_B8CTRL1 = 55, + S2MPS11_REG_B8CTRL2 = 56, + S2MPS11_REG_B9CTRL1 = 57, + S2MPS11_REG_B9CTRL2 = 58, + S2MPS11_REG_B10CTRL1 = 59, + S2MPS11_REG_B10CTRL2 = 60, + S2MPS11_REG_L1CTRL = 61, + S2MPS11_REG_L2CTRL = 62, + S2MPS11_REG_L3CTRL = 63, + S2MPS11_REG_L4CTRL = 64, + S2MPS11_REG_L5CTRL = 65, + S2MPS11_REG_L6CTRL = 66, + S2MPS11_REG_L7CTRL = 67, + S2MPS11_REG_L8CTRL = 68, + S2MPS11_REG_L9CTRL = 69, + S2MPS11_REG_L10CTRL = 70, + S2MPS11_REG_L11CTRL = 71, + S2MPS11_REG_L12CTRL = 72, + S2MPS11_REG_L13CTRL = 73, + S2MPS11_REG_L14CTRL = 74, + S2MPS11_REG_L15CTRL = 75, + S2MPS11_REG_L16CTRL = 76, + S2MPS11_REG_L17CTRL = 77, + S2MPS11_REG_L18CTRL = 78, + S2MPS11_REG_L19CTRL = 79, + S2MPS11_REG_L20CTRL = 80, + S2MPS11_REG_L21CTRL = 81, + S2MPS11_REG_L22CTRL = 82, + S2MPS11_REG_L23CTRL = 83, + S2MPS11_REG_L24CTRL = 84, + S2MPS11_REG_L25CTRL = 85, + S2MPS11_REG_L26CTRL = 86, + S2MPS11_REG_L27CTRL = 87, + S2MPS11_REG_L28CTRL = 88, + S2MPS11_REG_L29CTRL = 89, + S2MPS11_REG_L30CTRL = 90, + S2MPS11_REG_L31CTRL = 91, + S2MPS11_REG_L32CTRL = 92, + S2MPS11_REG_L33CTRL = 93, + S2MPS11_REG_L34CTRL = 94, + S2MPS11_REG_L35CTRL = 95, + S2MPS11_REG_L36CTRL = 96, + S2MPS11_REG_L37CTRL = 97, + S2MPS11_REG_L38CTRL = 98, +}; + +enum s2mps13_reg { + S2MPS13_REG_ID = 0, + S2MPS13_REG_INT1 = 1, + S2MPS13_REG_INT2 = 2, + S2MPS13_REG_INT3 = 3, + S2MPS13_REG_INT1M = 4, + S2MPS13_REG_INT2M = 5, + S2MPS13_REG_INT3M = 6, + S2MPS13_REG_ST1 = 7, + S2MPS13_REG_ST2 = 8, + S2MPS13_REG_PWRONSRC = 9, + S2MPS13_REG_OFFSRC = 10, + S2MPS13_REG_BU_CHG = 11, + S2MPS13_REG_RTCCTRL = 12, + S2MPS13_REG_CTRL1 = 13, + S2MPS13_REG_CTRL2 = 14, + S2MPS13_REG_RSVD1 = 15, + S2MPS13_REG_RSVD2 = 16, + S2MPS13_REG_RSVD3 = 17, + S2MPS13_REG_RSVD4 = 18, + S2MPS13_REG_RSVD5 = 19, + S2MPS13_REG_RSVD6 = 20, + S2MPS13_REG_CTRL3 = 21, + S2MPS13_REG_RSVD7 = 22, + S2MPS13_REG_RSVD8 = 23, + S2MPS13_REG_WRSTBI = 24, + S2MPS13_REG_B1CTRL = 25, + S2MPS13_REG_B1OUT = 26, + S2MPS13_REG_B2CTRL = 27, + S2MPS13_REG_B2OUT = 28, + S2MPS13_REG_B3CTRL = 29, + S2MPS13_REG_B3OUT = 30, + S2MPS13_REG_B4CTRL = 31, + S2MPS13_REG_B4OUT = 32, + S2MPS13_REG_B5CTRL = 33, + S2MPS13_REG_B5OUT = 34, + S2MPS13_REG_B6CTRL = 35, + S2MPS13_REG_B6OUT = 36, + S2MPS13_REG_B7CTRL = 37, + S2MPS13_REG_B7SW = 38, + S2MPS13_REG_B7OUT = 39, + S2MPS13_REG_B8CTRL = 40, + S2MPS13_REG_B8OUT = 41, + S2MPS13_REG_B9CTRL = 42, + S2MPS13_REG_B9OUT = 43, + S2MPS13_REG_B10CTRL = 44, + S2MPS13_REG_B10OUT = 45, + S2MPS13_REG_BB1CTRL = 46, + S2MPS13_REG_BB1OUT = 47, + S2MPS13_REG_BUCK_RAMP1 = 48, + S2MPS13_REG_BUCK_RAMP2 = 49, + S2MPS13_REG_LDO_DVS1 = 50, + S2MPS13_REG_LDO_DVS2 = 51, + S2MPS13_REG_LDO_DVS3 = 52, + S2MPS13_REG_B6OUT2 = 53, + S2MPS13_REG_L1CTRL = 54, + S2MPS13_REG_L2CTRL = 55, + S2MPS13_REG_L3CTRL = 56, + S2MPS13_REG_L4CTRL = 57, + S2MPS13_REG_L5CTRL = 58, + S2MPS13_REG_L6CTRL = 59, + S2MPS13_REG_L7CTRL = 60, + S2MPS13_REG_L8CTRL = 61, + S2MPS13_REG_L9CTRL = 62, + S2MPS13_REG_L10CTRL = 63, + S2MPS13_REG_L11CTRL = 64, + S2MPS13_REG_L12CTRL = 65, + S2MPS13_REG_L13CTRL = 66, + S2MPS13_REG_L14CTRL = 67, + S2MPS13_REG_L15CTRL = 68, + S2MPS13_REG_L16CTRL = 69, + S2MPS13_REG_L17CTRL = 70, + S2MPS13_REG_L18CTRL = 71, + S2MPS13_REG_L19CTRL = 72, + S2MPS13_REG_L20CTRL = 73, + S2MPS13_REG_L21CTRL = 74, + S2MPS13_REG_L22CTRL = 75, + S2MPS13_REG_L23CTRL = 76, + S2MPS13_REG_L24CTRL = 77, + S2MPS13_REG_L25CTRL = 78, + S2MPS13_REG_L26CTRL = 79, + S2MPS13_REG_L27CTRL = 80, + S2MPS13_REG_L28CTRL = 81, + S2MPS13_REG_L29CTRL = 82, + S2MPS13_REG_L30CTRL = 83, + S2MPS13_REG_L31CTRL = 84, + S2MPS13_REG_L32CTRL = 85, + S2MPS13_REG_L33CTRL = 86, + S2MPS13_REG_L34CTRL = 87, + S2MPS13_REG_L35CTRL = 88, + S2MPS13_REG_L36CTRL = 89, + S2MPS13_REG_L37CTRL = 90, + S2MPS13_REG_L38CTRL = 91, + S2MPS13_REG_L39CTRL = 92, + S2MPS13_REG_L40CTRL = 93, + S2MPS13_REG_LDODSCH1 = 94, + S2MPS13_REG_LDODSCH2 = 95, + S2MPS13_REG_LDODSCH3 = 96, + S2MPS13_REG_LDODSCH4 = 97, + S2MPS13_REG_LDODSCH5 = 98, +}; + +enum s2mps14_irq { + S2MPS14_IRQ_PWRONF = 0, + S2MPS14_IRQ_PWRONR = 1, + S2MPS14_IRQ_JIGONBF = 2, + S2MPS14_IRQ_JIGONBR = 3, + S2MPS14_IRQ_ACOKBF = 4, + S2MPS14_IRQ_ACOKBR = 5, + S2MPS14_IRQ_PWRON1S = 6, + S2MPS14_IRQ_MRB = 7, + S2MPS14_IRQ_RTC60S = 8, + S2MPS14_IRQ_RTCA1 = 9, + S2MPS14_IRQ_RTCA0 = 10, + S2MPS14_IRQ_SMPL = 11, + S2MPS14_IRQ_RTC1S = 12, + S2MPS14_IRQ_WTSR = 13, + S2MPS14_IRQ_INT120C = 14, + S2MPS14_IRQ_INT140C = 15, + S2MPS14_IRQ_TSD = 16, + S2MPS14_IRQ_NR = 17, +}; + +enum s2mps14_reg { + S2MPS14_REG_ID = 0, + S2MPS14_REG_INT1 = 1, + S2MPS14_REG_INT2 = 2, + S2MPS14_REG_INT3 = 3, + S2MPS14_REG_INT1M = 4, + S2MPS14_REG_INT2M = 5, + S2MPS14_REG_INT3M = 6, + S2MPS14_REG_ST1 = 7, + S2MPS14_REG_ST2 = 8, + S2MPS14_REG_PWRONSRC = 9, + S2MPS14_REG_OFFSRC = 10, + S2MPS14_REG_BU_CHG = 11, + S2MPS14_REG_RTCCTRL = 12, + S2MPS14_REG_CTRL1 = 13, + S2MPS14_REG_CTRL2 = 14, + S2MPS14_REG_RSVD1 = 15, + S2MPS14_REG_RSVD2 = 16, + S2MPS14_REG_RSVD3 = 17, + S2MPS14_REG_RSVD4 = 18, + S2MPS14_REG_RSVD5 = 19, + S2MPS14_REG_RSVD6 = 20, + S2MPS14_REG_CTRL3 = 21, + S2MPS14_REG_RSVD7 = 22, + S2MPS14_REG_RSVD8 = 23, + S2MPS14_REG_WRSTBI = 24, + S2MPS14_REG_B1CTRL1 = 25, + S2MPS14_REG_B1CTRL2 = 26, + S2MPS14_REG_B2CTRL1 = 27, + S2MPS14_REG_B2CTRL2 = 28, + S2MPS14_REG_B3CTRL1 = 29, + S2MPS14_REG_B3CTRL2 = 30, + S2MPS14_REG_B4CTRL1 = 31, + S2MPS14_REG_B4CTRL2 = 32, + S2MPS14_REG_B5CTRL1 = 33, + S2MPS14_REG_B5CTRL2 = 34, + S2MPS14_REG_L1CTRL = 35, + S2MPS14_REG_L2CTRL = 36, + S2MPS14_REG_L3CTRL = 37, + S2MPS14_REG_L4CTRL = 38, + S2MPS14_REG_L5CTRL = 39, + S2MPS14_REG_L6CTRL = 40, + S2MPS14_REG_L7CTRL = 41, + S2MPS14_REG_L8CTRL = 42, + S2MPS14_REG_L9CTRL = 43, + S2MPS14_REG_L10CTRL = 44, + S2MPS14_REG_L11CTRL = 45, + S2MPS14_REG_L12CTRL = 46, + S2MPS14_REG_L13CTRL = 47, + S2MPS14_REG_L14CTRL = 48, + S2MPS14_REG_L15CTRL = 49, + S2MPS14_REG_L16CTRL = 50, + S2MPS14_REG_L17CTRL = 51, + S2MPS14_REG_L18CTRL = 52, + S2MPS14_REG_L19CTRL = 53, + S2MPS14_REG_L20CTRL = 54, + S2MPS14_REG_L21CTRL = 55, + S2MPS14_REG_L22CTRL = 56, + S2MPS14_REG_L23CTRL = 57, + S2MPS14_REG_L24CTRL = 58, + S2MPS14_REG_L25CTRL = 59, + S2MPS14_REG_LDODSCH1 = 60, + S2MPS14_REG_LDODSCH2 = 61, + S2MPS14_REG_LDODSCH3 = 62, +}; + +enum s2mps15_reg { + S2MPS15_REG_ID = 0, + S2MPS15_REG_INT1 = 1, + S2MPS15_REG_INT2 = 2, + S2MPS15_REG_INT3 = 3, + S2MPS15_REG_INT1M = 4, + S2MPS15_REG_INT2M = 5, + S2MPS15_REG_INT3M = 6, + S2MPS15_REG_ST1 = 7, + S2MPS15_REG_ST2 = 8, + S2MPS15_REG_PWRONSRC = 9, + S2MPS15_REG_OFFSRC = 10, + S2MPS15_REG_BU_CHG = 11, + S2MPS15_REG_RTC_BUF = 12, + S2MPS15_REG_CTRL1 = 13, + S2MPS15_REG_CTRL2 = 14, + S2MPS15_REG_RSVD1 = 15, + S2MPS15_REG_RSVD2 = 16, + S2MPS15_REG_RSVD3 = 17, + S2MPS15_REG_RSVD4 = 18, + S2MPS15_REG_RSVD5 = 19, + S2MPS15_REG_RSVD6 = 20, + S2MPS15_REG_CTRL3 = 21, + S2MPS15_REG_RSVD7 = 22, + S2MPS15_REG_RSVD8 = 23, + S2MPS15_REG_RSVD9 = 24, + S2MPS15_REG_B1CTRL1 = 25, + S2MPS15_REG_B1CTRL2 = 26, + S2MPS15_REG_B2CTRL1 = 27, + S2MPS15_REG_B2CTRL2 = 28, + S2MPS15_REG_B3CTRL1 = 29, + S2MPS15_REG_B3CTRL2 = 30, + S2MPS15_REG_B4CTRL1 = 31, + S2MPS15_REG_B4CTRL2 = 32, + S2MPS15_REG_B5CTRL1 = 33, + S2MPS15_REG_B5CTRL2 = 34, + S2MPS15_REG_B6CTRL1 = 35, + S2MPS15_REG_B6CTRL2 = 36, + S2MPS15_REG_B7CTRL1 = 37, + S2MPS15_REG_B7CTRL2 = 38, + S2MPS15_REG_B8CTRL1 = 39, + S2MPS15_REG_B8CTRL2 = 40, + S2MPS15_REG_B9CTRL1 = 41, + S2MPS15_REG_B9CTRL2 = 42, + S2MPS15_REG_B10CTRL1 = 43, + S2MPS15_REG_B10CTRL2 = 44, + S2MPS15_REG_BBCTRL1 = 45, + S2MPS15_REG_BBCTRL2 = 46, + S2MPS15_REG_BRAMP = 47, + S2MPS15_REG_LDODVS1 = 48, + S2MPS15_REG_LDODVS2 = 49, + S2MPS15_REG_LDODVS3 = 50, + S2MPS15_REG_LDODVS4 = 51, + S2MPS15_REG_L1CTRL = 52, + S2MPS15_REG_L2CTRL = 53, + S2MPS15_REG_L3CTRL = 54, + S2MPS15_REG_L4CTRL = 55, + S2MPS15_REG_L5CTRL = 56, + S2MPS15_REG_L6CTRL = 57, + S2MPS15_REG_L7CTRL = 58, + S2MPS15_REG_L8CTRL = 59, + S2MPS15_REG_L9CTRL = 60, + S2MPS15_REG_L10CTRL = 61, + S2MPS15_REG_L11CTRL = 62, + S2MPS15_REG_L12CTRL = 63, + S2MPS15_REG_L13CTRL = 64, + S2MPS15_REG_L14CTRL = 65, + S2MPS15_REG_L15CTRL = 66, + S2MPS15_REG_L16CTRL = 67, + S2MPS15_REG_L17CTRL = 68, + S2MPS15_REG_L18CTRL = 69, + S2MPS15_REG_L19CTRL = 70, + S2MPS15_REG_L20CTRL = 71, + S2MPS15_REG_L21CTRL = 72, + S2MPS15_REG_L22CTRL = 73, + S2MPS15_REG_L23CTRL = 74, + S2MPS15_REG_L24CTRL = 75, + S2MPS15_REG_L25CTRL = 76, + S2MPS15_REG_L26CTRL = 77, + S2MPS15_REG_L27CTRL = 78, + S2MPS15_REG_LDODSCH1 = 79, + S2MPS15_REG_LDODSCH2 = 80, + S2MPS15_REG_LDODSCH3 = 81, + S2MPS15_REG_LDODSCH4 = 82, +}; + +enum s2mpu02_irq { + S2MPU02_IRQ_PWRONF = 0, + S2MPU02_IRQ_PWRONR = 1, + S2MPU02_IRQ_JIGONBF = 2, + S2MPU02_IRQ_JIGONBR = 3, + S2MPU02_IRQ_ACOKBF = 4, + S2MPU02_IRQ_ACOKBR = 5, + S2MPU02_IRQ_PWRON1S = 6, + S2MPU02_IRQ_MRB = 7, + S2MPU02_IRQ_RTC60S = 8, + S2MPU02_IRQ_RTCA1 = 9, + S2MPU02_IRQ_RTCA0 = 10, + S2MPU02_IRQ_SMPL = 11, + S2MPU02_IRQ_RTC1S = 12, + S2MPU02_IRQ_WTSR = 13, + S2MPU02_IRQ_INT120C = 14, + S2MPU02_IRQ_INT140C = 15, + S2MPU02_IRQ_TSD = 16, + S2MPU02_IRQ_NR = 17, +}; + +enum s32_pins { + S32G_MSCR_PA_00 = 0, + S32G_MSCR_PA_01 = 1, + S32G_MSCR_PA_02 = 2, + S32G_MSCR_PA_03 = 3, + S32G_MSCR_PA_04 = 4, + S32G_MSCR_PA_05 = 5, + S32G_MSCR_PA_06 = 6, + S32G_MSCR_PA_07 = 7, + S32G_MSCR_PA_08 = 8, + S32G_MSCR_PA_09 = 9, + S32G_MSCR_PA_10 = 10, + S32G_MSCR_PA_11 = 11, + S32G_MSCR_PA_12 = 12, + S32G_MSCR_PA_13 = 13, + S32G_MSCR_PA_14 = 14, + S32G_MSCR_PA_15 = 15, + S32G_MSCR_PB_00 = 16, + S32G_MSCR_PB_01 = 17, + S32G_MSCR_PB_02 = 18, + S32G_MSCR_PB_03 = 19, + S32G_MSCR_PB_04 = 20, + S32G_MSCR_PB_05 = 21, + S32G_MSCR_PB_06 = 22, + S32G_MSCR_PB_07 = 23, + S32G_MSCR_PB_08 = 24, + S32G_MSCR_PB_09 = 25, + S32G_MSCR_PB_10 = 26, + S32G_MSCR_PB_11 = 27, + S32G_MSCR_PB_12 = 28, + S32G_MSCR_PB_13 = 29, + S32G_MSCR_PB_14 = 30, + S32G_MSCR_PB_15 = 31, + S32G_MSCR_PC_00 = 32, + S32G_MSCR_PC_01 = 33, + S32G_MSCR_PC_02 = 34, + S32G_MSCR_PC_03 = 35, + S32G_MSCR_PC_04 = 36, + S32G_MSCR_PC_05 = 37, + S32G_MSCR_PC_06 = 38, + S32G_MSCR_PC_07 = 39, + S32G_MSCR_PC_08 = 40, + S32G_MSCR_PC_09 = 41, + S32G_MSCR_PC_10 = 42, + S32G_MSCR_PC_11 = 43, + S32G_MSCR_PC_12 = 44, + S32G_MSCR_PC_13 = 45, + S32G_MSCR_PC_14 = 46, + S32G_MSCR_PC_15 = 47, + S32G_MSCR_PD_00 = 48, + S32G_MSCR_PD_01 = 49, + S32G_MSCR_PD_02 = 50, + S32G_MSCR_PD_03 = 51, + S32G_MSCR_PD_04 = 52, + S32G_MSCR_PD_05 = 53, + S32G_MSCR_PD_06 = 54, + S32G_MSCR_PD_07 = 55, + S32G_MSCR_PD_08 = 56, + S32G_MSCR_PD_09 = 57, + S32G_MSCR_PD_10 = 58, + S32G_MSCR_PD_11 = 59, + S32G_MSCR_PD_12 = 60, + S32G_MSCR_PD_13 = 61, + S32G_MSCR_PD_14 = 62, + S32G_MSCR_PD_15 = 63, + S32G_MSCR_PE_00 = 64, + S32G_MSCR_PE_01 = 65, + S32G_MSCR_PE_02 = 66, + S32G_MSCR_PE_03 = 67, + S32G_MSCR_PE_04 = 68, + S32G_MSCR_PE_05 = 69, + S32G_MSCR_PE_06 = 70, + S32G_MSCR_PE_07 = 71, + S32G_MSCR_PE_08 = 72, + S32G_MSCR_PE_09 = 73, + S32G_MSCR_PE_10 = 74, + S32G_MSCR_PE_11 = 75, + S32G_MSCR_PE_12 = 76, + S32G_MSCR_PE_13 = 77, + S32G_MSCR_PE_14 = 78, + S32G_MSCR_PE_15 = 79, + S32G_MSCR_PF_00 = 80, + S32G_MSCR_PF_01 = 81, + S32G_MSCR_PF_02 = 82, + S32G_MSCR_PF_03 = 83, + S32G_MSCR_PF_04 = 84, + S32G_MSCR_PF_05 = 85, + S32G_MSCR_PF_06 = 86, + S32G_MSCR_PF_07 = 87, + S32G_MSCR_PF_08 = 88, + S32G_MSCR_PF_09 = 89, + S32G_MSCR_PF_10 = 90, + S32G_MSCR_PF_11 = 91, + S32G_MSCR_PF_12 = 92, + S32G_MSCR_PF_13 = 93, + S32G_MSCR_PF_14 = 94, + S32G_MSCR_PF_15 = 95, + S32G_MSCR_PG_00 = 96, + S32G_MSCR_PG_01 = 97, + S32G_MSCR_PG_02 = 98, + S32G_MSCR_PG_03 = 99, + S32G_MSCR_PG_04 = 100, + S32G_MSCR_PG_05 = 101, + S32G_MSCR_PH_00 = 112, + S32G_MSCR_PH_01 = 113, + S32G_MSCR_PH_02 = 114, + S32G_MSCR_PH_03 = 115, + S32G_MSCR_PH_04 = 116, + S32G_MSCR_PH_05 = 117, + S32G_MSCR_PH_06 = 118, + S32G_MSCR_PH_07 = 119, + S32G_MSCR_PH_08 = 120, + S32G_MSCR_PH_09 = 121, + S32G_MSCR_PH_10 = 122, + S32G_MSCR_PJ_00 = 144, + S32G_MSCR_PJ_01 = 145, + S32G_MSCR_PJ_02 = 146, + S32G_MSCR_PJ_03 = 147, + S32G_MSCR_PJ_04 = 148, + S32G_MSCR_PJ_05 = 149, + S32G_MSCR_PJ_06 = 150, + S32G_MSCR_PJ_07 = 151, + S32G_MSCR_PJ_08 = 152, + S32G_MSCR_PJ_09 = 153, + S32G_MSCR_PJ_10 = 154, + S32G_MSCR_PJ_11 = 155, + S32G_MSCR_PJ_12 = 156, + S32G_MSCR_PJ_13 = 157, + S32G_MSCR_PJ_14 = 158, + S32G_MSCR_PJ_15 = 159, + S32G_MSCR_PK_00 = 160, + S32G_MSCR_PK_01 = 161, + S32G_MSCR_PK_02 = 162, + S32G_MSCR_PK_03 = 163, + S32G_MSCR_PK_04 = 164, + S32G_MSCR_PK_05 = 165, + S32G_MSCR_PK_06 = 166, + S32G_MSCR_PK_07 = 167, + S32G_MSCR_PK_08 = 168, + S32G_MSCR_PK_09 = 169, + S32G_MSCR_PK_10 = 170, + S32G_MSCR_PK_11 = 171, + S32G_MSCR_PK_12 = 172, + S32G_MSCR_PK_13 = 173, + S32G_MSCR_PK_14 = 174, + S32G_MSCR_PK_15 = 175, + S32G_MSCR_PL_00 = 176, + S32G_MSCR_PL_01 = 177, + S32G_MSCR_PL_02 = 178, + S32G_MSCR_PL_03 = 179, + S32G_MSCR_PL_04 = 180, + S32G_MSCR_PL_05 = 181, + S32G_MSCR_PL_06 = 182, + S32G_MSCR_PL_07 = 183, + S32G_MSCR_PL_08 = 184, + S32G_MSCR_PL_09 = 185, + S32G_MSCR_PL_10 = 186, + S32G_MSCR_PL_11 = 187, + S32G_MSCR_PL_12 = 188, + S32G_MSCR_PL_13 = 189, + S32G_MSCR_PL_14 = 190, + S32G_IMCR_QSPI_A_DATA0 = 540, + S32G_IMCR_QSPI_A_DATA1 = 541, + S32G_IMCR_QSPI_A_DATA2 = 542, + S32G_IMCR_QSPI_A_DATA3 = 543, + S32G_IMCR_QSPI_A_DATA4 = 544, + S32G_IMCR_QSPI_A_DATA5 = 545, + S32G_IMCR_QSPI_A_DATA6 = 546, + S32G_IMCR_QSPI_A_DATA7 = 547, + S32G_IMCR_QSPI_DQS_A = 548, + S32G_IMCR_QSPI_B_DATA0 = 552, + S32G_IMCR_QSPI_B_DATA1 = 554, + S32G_IMCR_QSPI_B_DATA2 = 551, + S32G_IMCR_QSPI_B_DATA3 = 553, + S32G_IMCR_QSPI_B_DATA4 = 557, + S32G_IMCR_QSPI_B_DATA5 = 550, + S32G_IMCR_QSPI_B_DATA6 = 556, + S32G_IMCR_QSPI_B_DATA7 = 555, + S32G_IMCR_QSPI_DQS_B = 558, + S32G_IMCR_BOOT_BOOTMOD0 = 560, + S32G_IMCR_BOOT_BOOTMOD1 = 561, + S32G_IMCR_I2C0_SCL = 566, + S32G_IMCR_I2C0_SDA = 565, + S32G_IMCR_LIN0_RX = 512, + S32G_IMCR_USDHC_CMD = 515, + S32G_IMCR_USDHC_DAT0 = 516, + S32G_IMCR_USDHC_DAT1 = 517, + S32G_IMCR_USDHC_DAT2 = 520, + S32G_IMCR_USDHC_DAT3 = 521, + S32G_IMCR_USDHC_DAT4 = 522, + S32G_IMCR_USDHC_DAT5 = 523, + S32G_IMCR_USDHC_DAT6 = 519, + S32G_IMCR_USDHC_DAT7 = 518, + S32G_IMCR_USDHC_DQS = 524, + S32G_IMCR_CAN0_RXD = 513, + S32G_IMCR_CAN1_RXD = 631, + S32G_IMCR_CAN2_RXD = 632, + S32G_IMCR_CAN3_RXD = 633, + S32G_IMCR_JTAG_TMS = 562, + S32G_IMCR_JTAG_TCK = 572, + S32G_IMCR_JTAG_TDI = 573, + S32G_IMCR_Ethernet_MDIO = 527, + S32G_IMCR_Ethernet_CRS = 526, + S32G_IMCR_Ethernet_COL = 525, + S32G_IMCR_Ethernet_RX_D0 = 531, + S32G_IMCR_Ethernet_RX_D1 = 532, + S32G_IMCR_Ethernet_RX_D2 = 533, + S32G_IMCR_Ethernet_RX_D3 = 534, + S32G_IMCR_Ethernet_RX_ER = 528, + S32G_IMCR_Ethernet_RX_CLK = 529, + S32G_IMCR_Ethernet_RX_DV = 530, + S32G_IMCR_Ethernet_TX_CLK = 538, + S32G_IMCR_Ethernet_REF_CLK = 535, + S32G_IMCR_PFE_EMAC_0_MDIO = 837, + S32G_IMCR_PFE_EMAC_0_CRS = 836, + S32G_IMCR_PFE_EMAC_0_COL = 835, + S32G_IMCR_PFE_EMAC_0_RX_D0 = 841, + S32G_IMCR_PFE_EMAC_0_RX_D1 = 842, + S32G_IMCR_PFE_EMAC_0_RX_D2 = 843, + S32G_IMCR_PFE_EMAC_0_RX_D3 = 844, + S32G_IMCR_PFE_EMAC_0_RX_ER = 840, + S32G_IMCR_PFE_EMAC_0_RX_CLK = 839, + S32G_IMCR_PFE_EMAC_0_RX_DV = 845, + S32G_IMCR_PFE_EMAC_0_TX_CLK = 846, + S32G_IMCR_PFE_EMAC_0_REF_CLK = 838, + S32G_IMCR_PFE_EMAC_1_MDIO = 857, + S32G_IMCR_PFE_EMAC_1_CRS = 856, + S32G_IMCR_PFE_EMAC_1_COL = 855, + S32G_IMCR_PFE_EMAC_1_RX_D0 = 861, + S32G_IMCR_PFE_EMAC_1_RX_D1 = 862, + S32G_IMCR_PFE_EMAC_1_RX_D2 = 863, + S32G_IMCR_PFE_EMAC_1_RX_D3 = 864, + S32G_IMCR_PFE_EMAC_1_RX_ER = 860, + S32G_IMCR_PFE_EMAC_1_RX_CLK = 859, + S32G_IMCR_PFE_EMAC_1_RX_DV = 865, + S32G_IMCR_PFE_EMAC_1_TX_CLK = 866, + S32G_IMCR_PFE_EMAC_1_REF_CLK = 858, + S32G_IMCR_PFE_EMAC_2_MDIO = 877, + S32G_IMCR_PFE_EMAC_2_CRS = 876, + S32G_IMCR_PFE_EMAC_2_COL = 875, + S32G_IMCR_PFE_EMAC_2_RX_D0 = 881, + S32G_IMCR_PFE_EMAC_2_RX_D1 = 882, + S32G_IMCR_PFE_EMAC_2_RX_D2 = 883, + S32G_IMCR_PFE_EMAC_2_RX_D3 = 884, + S32G_IMCR_PFE_EMAC_2_RX_ER = 880, + S32G_IMCR_PFE_EMAC_2_RX_CLK = 879, + S32G_IMCR_PFE_EMAC_2_RX_DV = 885, + S32G_IMCR_PFE_EMAC_2_TX_CLK = 886, + S32G_IMCR_PFE_EMAC_2_REF_CLK = 878, + S32G_IMCR_FlexRay0_A_RX = 785, + S32G_IMCR_FlexRay0_B_RX = 786, + S32G_IMCR_FlexTimer0_CH0 = 655, + S32G_IMCR_FlexTimer1_CH0 = 665, + S32G_IMCR_FlexTimer0_CH1 = 656, + S32G_IMCR_FlexTimer1_CH1 = 666, + S32G_IMCR_FlexTimer0_CH2 = 657, + S32G_IMCR_FlexTimer1_CH2 = 667, + S32G_IMCR_FlexTimer0_CH3 = 658, + S32G_IMCR_FlexTimer1_CH3 = 668, + S32G_IMCR_FlexTimer0_CH4 = 659, + S32G_IMCR_FlexTimer1_CH4 = 669, + S32G_IMCR_FlexTimer0_CH5 = 660, + S32G_IMCR_FlexTimer1_CH5 = 670, + S32G_IMCR_FlexTimer0_EXTCLK = 661, + S32G_IMCR_FlexTimer1_EXTCLK = 671, + S32G_IMCR_I2C1_SCL = 717, + S32G_IMCR_I2C1_SDA = 718, + S32G_IMCR_I2C2_SCL = 719, + S32G_IMCR_I2C2_SDA = 720, + S32G_IMCR_I2C3_SCL = 721, + S32G_IMCR_I2C3_SDA = 722, + S32G_IMCR_I2C4_SCL = 723, + S32G_IMCR_I2C4_SDA = 724, + S32G_IMCR_LIN1_RX = 736, + S32G_IMCR_LIN2_RX = 737, + S32G_IMCR_DSPI0_PCS0 = 980, + S32G_IMCR_DSPI0_SCK = 981, + S32G_IMCR_DSPI0_SIN = 982, + S32G_IMCR_DSPI1_PCS0 = 985, + S32G_IMCR_DSPI1_SCK = 986, + S32G_IMCR_DSPI1_SIN = 987, + S32G_IMCR_DSPI2_PCS0 = 990, + S32G_IMCR_DSPI2_SCK = 991, + S32G_IMCR_DSPI2_SIN = 992, + S32G_IMCR_DSPI3_PCS0 = 995, + S32G_IMCR_DSPI3_SCK = 996, + S32G_IMCR_DSPI3_SIN = 997, + S32G_IMCR_DSPI4_PCS0 = 1000, + S32G_IMCR_DSPI4_SCK = 1001, + S32G_IMCR_DSPI4_SIN = 1002, + S32G_IMCR_DSPI5_PCS0 = 1005, + S32G_IMCR_DSPI5_SCK = 1006, + S32G_IMCR_DSPI5_SIN = 1007, + S32G_IMCR_LLCE_CAN0_RXD = 745, + S32G_IMCR_LLCE_CAN1_RXD = 746, + S32G_IMCR_LLCE_CAN2_RXD = 747, + S32G_IMCR_LLCE_CAN3_RXD = 748, + S32G_IMCR_LLCE_CAN4_RXD = 749, + S32G_IMCR_LLCE_CAN5_RXD = 750, + S32G_IMCR_LLCE_CAN6_RXD = 751, + S32G_IMCR_LLCE_CAN7_RXD = 752, + S32G_IMCR_LLCE_CAN8_RXD = 753, + S32G_IMCR_LLCE_CAN9_RXD = 754, + S32G_IMCR_LLCE_CAN10_RXD = 755, + S32G_IMCR_LLCE_CAN11_RXD = 756, + S32G_IMCR_LLCE_CAN12_RXD = 757, + S32G_IMCR_LLCE_CAN13_RXD = 758, + S32G_IMCR_LLCE_CAN14_RXD = 759, + S32G_IMCR_LLCE_CAN15_RXD = 760, + S32G_IMCR_LLCE_UART0_RXD = 790, + S32G_IMCR_LLCE_UART1_RXD = 791, + S32G_IMCR_LLCE_UART2_RXD = 792, + S32G_IMCR_LLCE_UART3_RXD = 793, + S32G_IMCR_LLCE_LPSPI2_PCS0 = 811, + S32G_IMCR_LLCE_LPSPI2_SCK = 816, + S32G_IMCR_LLCE_LPSPI2_SIN = 817, + S32G_IMCR_USB_CLK = 895, + S32G_IMCR_USB_DATA0 = 896, + S32G_IMCR_USB_DATA1 = 897, + S32G_IMCR_USB_DATA2 = 898, + S32G_IMCR_USB_DATA3 = 899, + S32G_IMCR_USB_DATA4 = 900, + S32G_IMCR_USB_DATA5 = 901, + S32G_IMCR_USB_DATA6 = 902, + S32G_IMCR_USB_DATA7 = 903, + S32G_IMCR_USB_DIR = 904, + S32G_IMCR_USB_NXT = 905, + S32G_IMCR_SIUL_EIRQ0 = 910, + S32G_IMCR_SIUL_EIRQ1 = 911, + S32G_IMCR_SIUL_EIRQ2 = 912, + S32G_IMCR_SIUL_EIRQ3 = 913, + S32G_IMCR_SIUL_EIRQ4 = 914, + S32G_IMCR_SIUL_EIRQ5 = 915, + S32G_IMCR_SIUL_EIRQ6 = 916, + S32G_IMCR_SIUL_EIRQ7 = 917, + S32G_IMCR_SIUL_EIRQ8 = 918, + S32G_IMCR_SIUL_EIRQ9 = 919, + S32G_IMCR_SIUL_EIRQ10 = 920, + S32G_IMCR_SIUL_EIRQ11 = 921, + S32G_IMCR_SIUL_EIRQ12 = 922, + S32G_IMCR_SIUL_EIRQ13 = 923, + S32G_IMCR_SIUL_EIRQ14 = 924, + S32G_IMCR_SIUL_EIRQ15 = 925, + S32G_IMCR_SIUL_EIRQ16 = 926, + S32G_IMCR_SIUL_EIRQ17 = 927, + S32G_IMCR_SIUL_EIRQ18 = 928, + S32G_IMCR_SIUL_EIRQ19 = 929, + S32G_IMCR_SIUL_EIRQ20 = 930, + S32G_IMCR_SIUL_EIRQ21 = 931, + S32G_IMCR_SIUL_EIRQ22 = 932, + S32G_IMCR_SIUL_EIRQ23 = 933, + S32G_IMCR_SIUL_EIRQ24 = 934, + S32G_IMCR_SIUL_EIRQ25 = 935, + S32G_IMCR_SIUL_EIRQ26 = 936, + S32G_IMCR_SIUL_EIRQ27 = 937, + S32G_IMCR_SIUL_EIRQ28 = 938, + S32G_IMCR_SIUL_EIRQ29 = 939, + S32G_IMCR_SIUL_EIRQ30 = 940, + S32G_IMCR_SIUL_EIRQ31 = 941, +}; + +enum s32_write_type { + S32_PINCONF_UPDATE_ONLY = 0, + S32_PINCONF_OVERWRITE = 1, +}; + +enum s5m8767_irq { + S5M8767_IRQ_PWRR = 0, + S5M8767_IRQ_PWRF = 1, + S5M8767_IRQ_PWR1S = 2, + S5M8767_IRQ_JIGR = 3, + S5M8767_IRQ_JIGF = 4, + S5M8767_IRQ_LOWBAT2 = 5, + S5M8767_IRQ_LOWBAT1 = 6, + S5M8767_IRQ_MRB = 7, + S5M8767_IRQ_DVSOK2 = 8, + S5M8767_IRQ_DVSOK3 = 9, + S5M8767_IRQ_DVSOK4 = 10, + S5M8767_IRQ_RTC60S = 11, + S5M8767_IRQ_RTCA1 = 12, + S5M8767_IRQ_RTCA2 = 13, + S5M8767_IRQ_SMPL = 14, + S5M8767_IRQ_RTC1S = 15, + S5M8767_IRQ_WTSR = 16, + S5M8767_IRQ_NR = 17, +}; + +enum s5m8767_reg { + S5M8767_REG_ID = 0, + S5M8767_REG_INT1 = 1, + S5M8767_REG_INT2 = 2, + S5M8767_REG_INT3 = 3, + S5M8767_REG_INT1M = 4, + S5M8767_REG_INT2M = 5, + S5M8767_REG_INT3M = 6, + S5M8767_REG_STATUS1 = 7, + S5M8767_REG_STATUS2 = 8, + S5M8767_REG_STATUS3 = 9, + S5M8767_REG_CTRL1 = 10, + S5M8767_REG_CTRL2 = 11, + S5M8767_REG_LOWBAT1 = 12, + S5M8767_REG_LOWBAT2 = 13, + S5M8767_REG_BUCHG = 14, + S5M8767_REG_DVSRAMP = 15, + S5M8767_REG_DVSTIMER2 = 16, + S5M8767_REG_DVSTIMER3 = 17, + S5M8767_REG_DVSTIMER4 = 18, + S5M8767_REG_LDO1 = 19, + S5M8767_REG_LDO2 = 20, + S5M8767_REG_LDO3 = 21, + S5M8767_REG_LDO4 = 22, + S5M8767_REG_LDO5 = 23, + S5M8767_REG_LDO6 = 24, + S5M8767_REG_LDO7 = 25, + S5M8767_REG_LDO8 = 26, + S5M8767_REG_LDO9 = 27, + S5M8767_REG_LDO10 = 28, + S5M8767_REG_LDO11 = 29, + S5M8767_REG_LDO12 = 30, + S5M8767_REG_LDO13 = 31, + S5M8767_REG_LDO14 = 32, + S5M8767_REG_LDO15 = 33, + S5M8767_REG_LDO16 = 34, + S5M8767_REG_LDO17 = 35, + S5M8767_REG_LDO18 = 36, + S5M8767_REG_LDO19 = 37, + S5M8767_REG_LDO20 = 38, + S5M8767_REG_LDO21 = 39, + S5M8767_REG_LDO22 = 40, + S5M8767_REG_LDO23 = 41, + S5M8767_REG_LDO24 = 42, + S5M8767_REG_LDO25 = 43, + S5M8767_REG_LDO26 = 44, + S5M8767_REG_LDO27 = 45, + S5M8767_REG_LDO28 = 46, + S5M8767_REG_UVLO = 49, + S5M8767_REG_BUCK1CTRL1 = 50, + S5M8767_REG_BUCK1CTRL2 = 51, + S5M8767_REG_BUCK2CTRL = 52, + S5M8767_REG_BUCK2DVS1 = 53, + S5M8767_REG_BUCK2DVS2 = 54, + S5M8767_REG_BUCK2DVS3 = 55, + S5M8767_REG_BUCK2DVS4 = 56, + S5M8767_REG_BUCK2DVS5 = 57, + S5M8767_REG_BUCK2DVS6 = 58, + S5M8767_REG_BUCK2DVS7 = 59, + S5M8767_REG_BUCK2DVS8 = 60, + S5M8767_REG_BUCK3CTRL = 61, + S5M8767_REG_BUCK3DVS1 = 62, + S5M8767_REG_BUCK3DVS2 = 63, + S5M8767_REG_BUCK3DVS3 = 64, + S5M8767_REG_BUCK3DVS4 = 65, + S5M8767_REG_BUCK3DVS5 = 66, + S5M8767_REG_BUCK3DVS6 = 67, + S5M8767_REG_BUCK3DVS7 = 68, + S5M8767_REG_BUCK3DVS8 = 69, + S5M8767_REG_BUCK4CTRL = 70, + S5M8767_REG_BUCK4DVS1 = 71, + S5M8767_REG_BUCK4DVS2 = 72, + S5M8767_REG_BUCK4DVS3 = 73, + S5M8767_REG_BUCK4DVS4 = 74, + S5M8767_REG_BUCK4DVS5 = 75, + S5M8767_REG_BUCK4DVS6 = 76, + S5M8767_REG_BUCK4DVS7 = 77, + S5M8767_REG_BUCK4DVS8 = 78, + S5M8767_REG_BUCK5CTRL1 = 79, + S5M8767_REG_BUCK5CTRL2 = 80, + S5M8767_REG_BUCK5CTRL3 = 81, + S5M8767_REG_BUCK5CTRL4 = 82, + S5M8767_REG_BUCK5CTRL5 = 83, + S5M8767_REG_BUCK6CTRL1 = 84, + S5M8767_REG_BUCK6CTRL2 = 85, + S5M8767_REG_BUCK7CTRL1 = 86, + S5M8767_REG_BUCK7CTRL2 = 87, + S5M8767_REG_BUCK8CTRL1 = 88, + S5M8767_REG_BUCK8CTRL2 = 89, + S5M8767_REG_BUCK9CTRL1 = 90, + S5M8767_REG_BUCK9CTRL2 = 91, + S5M8767_REG_LDO1CTRL = 92, + S5M8767_REG_LDO2_1CTRL = 93, + S5M8767_REG_LDO2_2CTRL = 94, + S5M8767_REG_LDO2_3CTRL = 95, + S5M8767_REG_LDO2_4CTRL = 96, + S5M8767_REG_LDO3CTRL = 97, + S5M8767_REG_LDO4CTRL = 98, + S5M8767_REG_LDO5CTRL = 99, + S5M8767_REG_LDO6CTRL = 100, + S5M8767_REG_LDO7CTRL = 101, + S5M8767_REG_LDO8CTRL = 102, + S5M8767_REG_LDO9CTRL = 103, + S5M8767_REG_LDO10CTRL = 104, + S5M8767_REG_LDO11CTRL = 105, + S5M8767_REG_LDO12CTRL = 106, + S5M8767_REG_LDO13CTRL = 107, + S5M8767_REG_LDO14CTRL = 108, + S5M8767_REG_LDO15CTRL = 109, + S5M8767_REG_LDO16CTRL = 110, + S5M8767_REG_LDO17CTRL = 111, + S5M8767_REG_LDO18CTRL = 112, + S5M8767_REG_LDO19CTRL = 113, + S5M8767_REG_LDO20CTRL = 114, + S5M8767_REG_LDO21CTRL = 115, + S5M8767_REG_LDO22CTRL = 116, + S5M8767_REG_LDO23CTRL = 117, + S5M8767_REG_LDO24CTRL = 118, + S5M8767_REG_LDO25CTRL = 119, + S5M8767_REG_LDO26CTRL = 120, + S5M8767_REG_LDO27CTRL = 121, + S5M8767_REG_LDO28CTRL = 122, +}; + +enum s700_pinconf_pull { + OWL_PINCONF_PULL_DOWN = 0, + OWL_PINCONF_PULL_UP = 1, +}; + +enum s700_pinmux_functions { + S700_MUX_NOR = 0, + S700_MUX_ETH_RGMII = 1, + S700_MUX_ETH_SGMII = 2, + S700_MUX_SPI0 = 3, + S700_MUX_SPI1 = 4, + S700_MUX_SPI2 = 5, + S700_MUX_SPI3 = 6, + S700_MUX_SENS0 = 7, + S700_MUX_SENS1 = 8, + S700_MUX_UART0 = 9, + S700_MUX_UART1 = 10, + S700_MUX_UART2 = 11, + S700_MUX_UART3 = 12, + S700_MUX_UART4 = 13, + S700_MUX_UART5 = 14, + S700_MUX_UART6 = 15, + S700_MUX_I2S0 = 16, + S700_MUX_I2S1 = 17, + S700_MUX_PCM1 = 18, + S700_MUX_PCM0 = 19, + S700_MUX_KS = 20, + S700_MUX_JTAG = 21, + S700_MUX_PWM0 = 22, + S700_MUX_PWM1 = 23, + S700_MUX_PWM2 = 24, + S700_MUX_PWM3 = 25, + S700_MUX_PWM4 = 26, + S700_MUX_PWM5 = 27, + S700_MUX_P0 = 28, + S700_MUX_SD0 = 29, + S700_MUX_SD1 = 30, + S700_MUX_SD2 = 31, + S700_MUX_I2C0 = 32, + S700_MUX_I2C1 = 33, + S700_MUX_I2C2 = 34, + S700_MUX_I2C3 = 35, + S700_MUX_DSI = 36, + S700_MUX_LVDS = 37, + S700_MUX_USB30 = 38, + S700_MUX_CLKO_25M = 39, + S700_MUX_MIPI_CSI = 40, + S700_MUX_NAND = 41, + S700_MUX_SPDIF = 42, + S700_MUX_SIRQ0 = 43, + S700_MUX_SIRQ1 = 44, + S700_MUX_SIRQ2 = 45, + S700_MUX_BT = 46, + S700_MUX_LCD0 = 47, + S700_MUX_RESERVED = 48, +}; + +enum s900_pinconf_pull { + OWL_PINCONF_PULL_HIZ = 0, + OWL_PINCONF_PULL_DOWN___2 = 1, + OWL_PINCONF_PULL_UP___2 = 2, + OWL_PINCONF_PULL_HOLD = 3, +}; + +enum s900_pinmux_functions { + S900_MUX_ERAM = 0, + S900_MUX_ETH_RMII = 1, + S900_MUX_ETH_SMII = 2, + S900_MUX_SPI0 = 3, + S900_MUX_SPI1 = 4, + S900_MUX_SPI2 = 5, + S900_MUX_SPI3 = 6, + S900_MUX_SENS0 = 7, + S900_MUX_UART0 = 8, + S900_MUX_UART1 = 9, + S900_MUX_UART2 = 10, + S900_MUX_UART3 = 11, + S900_MUX_UART4 = 12, + S900_MUX_UART5 = 13, + S900_MUX_UART6 = 14, + S900_MUX_I2S0 = 15, + S900_MUX_I2S1 = 16, + S900_MUX_PCM0 = 17, + S900_MUX_PCM1 = 18, + S900_MUX_JTAG = 19, + S900_MUX_PWM0 = 20, + S900_MUX_PWM1 = 21, + S900_MUX_PWM2 = 22, + S900_MUX_PWM3 = 23, + S900_MUX_PWM4 = 24, + S900_MUX_PWM5 = 25, + S900_MUX_SD0 = 26, + S900_MUX_SD1 = 27, + S900_MUX_SD2 = 28, + S900_MUX_SD3 = 29, + S900_MUX_I2C0 = 30, + S900_MUX_I2C1 = 31, + S900_MUX_I2C2 = 32, + S900_MUX_I2C3 = 33, + S900_MUX_I2C4 = 34, + S900_MUX_I2C5 = 35, + S900_MUX_LVDS = 36, + S900_MUX_USB20 = 37, + S900_MUX_USB30 = 38, + S900_MUX_GPU = 39, + S900_MUX_MIPI_CSI0 = 40, + S900_MUX_MIPI_CSI1 = 41, + S900_MUX_MIPI_DSI = 42, + S900_MUX_NAND0 = 43, + S900_MUX_NAND1 = 44, + S900_MUX_SPDIF = 45, + S900_MUX_SIRQ0 = 46, + S900_MUX_SIRQ1 = 47, + S900_MUX_SIRQ2 = 48, + S900_MUX_AUX_START = 49, + S900_MUX_MAX = 50, + S900_MUX_RESERVED = 51, +}; + +enum s_alloc { + sa_rootdomain = 0, + sa_sd = 1, + sa_sd_storage = 2, + sa_none = 3, +}; + +enum sam_status { + SAM_STAT_GOOD = 0, + SAM_STAT_CHECK_CONDITION = 2, + SAM_STAT_CONDITION_MET = 4, + SAM_STAT_BUSY = 8, + SAM_STAT_INTERMEDIATE = 16, + SAM_STAT_INTERMEDIATE_CONDITION_MET = 20, + SAM_STAT_RESERVATION_CONFLICT = 24, + SAM_STAT_COMMAND_TERMINATED = 34, + SAM_STAT_TASK_SET_FULL = 40, + SAM_STAT_ACA_ACTIVE = 48, + SAM_STAT_TASK_ABORTED = 64, +}; + +enum scale_freq_source { + SCALE_FREQ_SOURCE_CPUFREQ = 0, + SCALE_FREQ_SOURCE_ARCH = 1, + SCALE_FREQ_SOURCE_CPPC = 2, + SCALE_FREQ_SOURCE_VIRT = 3, +}; + +enum scan_balance { + SCAN_EQUAL = 0, + SCAN_FRACT = 1, + SCAN_ANON = 2, + SCAN_FILE = 3, +}; + +enum scan_result { + SCAN_FAIL = 0, + SCAN_SUCCEED = 1, + SCAN_PMD_NULL = 2, + SCAN_PMD_NONE = 3, + SCAN_PMD_MAPPED = 4, + SCAN_EXCEED_NONE_PTE = 5, + SCAN_EXCEED_SWAP_PTE = 6, + SCAN_EXCEED_SHARED_PTE = 7, + SCAN_PTE_NON_PRESENT = 8, + SCAN_PTE_UFFD_WP = 9, + SCAN_PTE_MAPPED_HUGEPAGE = 10, + SCAN_PAGE_RO = 11, + SCAN_LACK_REFERENCED_PAGE = 12, + SCAN_PAGE_NULL = 13, + SCAN_SCAN_ABORT = 14, + SCAN_PAGE_COUNT = 15, + SCAN_PAGE_LRU = 16, + SCAN_PAGE_LOCK = 17, + SCAN_PAGE_ANON = 18, + SCAN_PAGE_COMPOUND = 19, + SCAN_ANY_PROCESS = 20, + SCAN_VMA_NULL = 21, + SCAN_VMA_CHECK = 22, + SCAN_ADDRESS_RANGE = 23, + SCAN_DEL_PAGE_LRU = 24, + SCAN_ALLOC_HUGE_PAGE_FAIL = 25, + SCAN_CGROUP_CHARGE_FAIL = 26, + SCAN_TRUNCATED = 27, + SCAN_PAGE_HAS_PRIVATE = 28, + SCAN_STORE_FAILED = 29, + SCAN_COPY_MC = 30, + SCAN_PAGE_FILLED = 31, +}; + +enum sched_tunable_scaling { + SCHED_TUNABLESCALING_NONE = 0, + SCHED_TUNABLESCALING_LOG = 1, + SCHED_TUNABLESCALING_LINEAR = 2, + SCHED_TUNABLESCALING_END = 3, +}; + +enum scmi_bad_msg { + MSG_UNEXPECTED = -1, + MSG_INVALID = -2, + MSG_UNKNOWN = -3, + MSG_NOMEM = -4, + MSG_MBOX_SPURIOUS = -5, +}; + +enum scmi_base_protocol_cmd { + BASE_DISCOVER_VENDOR = 3, + BASE_DISCOVER_SUB_VENDOR = 4, + BASE_DISCOVER_IMPLEMENT_VERSION = 5, + BASE_DISCOVER_LIST_PROTOCOLS = 6, + BASE_DISCOVER_AGENT = 7, + BASE_NOTIFY_ERRORS = 8, + BASE_SET_DEVICE_PERMISSIONS = 9, + BASE_SET_PROTOCOL_PERMISSIONS = 10, + BASE_RESET_AGENT_CONFIGURATION = 11, +}; + +enum scmi_clk_feats { + SCMI_CLK_ATOMIC_SUPPORTED = 0, + SCMI_CLK_STATE_CTRL_SUPPORTED = 1, + SCMI_CLK_RATE_CTRL_SUPPORTED = 2, + SCMI_CLK_PARENT_CTRL_SUPPORTED = 3, + SCMI_CLK_DUTY_CYCLE_SUPPORTED = 4, + SCMI_CLK_FEATS_COUNT = 5, +}; + +enum scmi_clock_oem_config { + SCMI_CLOCK_CFG_DUTY_CYCLE = 1, + SCMI_CLOCK_CFG_PHASE = 2, + SCMI_CLOCK_CFG_OEM_START = 128, + SCMI_CLOCK_CFG_OEM_END = 255, +}; + +enum scmi_clock_protocol_cmd { + CLOCK_ATTRIBUTES = 3, + CLOCK_DESCRIBE_RATES = 4, + CLOCK_RATE_SET = 5, + CLOCK_RATE_GET = 6, + CLOCK_CONFIG_SET = 7, + CLOCK_NAME_GET = 8, + CLOCK_RATE_NOTIFY = 9, + CLOCK_RATE_CHANGE_REQUESTED_NOTIFY = 10, + CLOCK_CONFIG_GET = 11, + CLOCK_POSSIBLE_PARENTS_GET = 12, + CLOCK_PARENT_SET = 13, + CLOCK_PARENT_GET = 14, + CLOCK_GET_PERMISSIONS = 15, +}; + +enum scmi_common_cmd { + PROTOCOL_VERSION = 0, + PROTOCOL_ATTRIBUTES = 1, + PROTOCOL_MESSAGE_ATTRIBUTES = 2, + NEGOTIATE_PROTOCOL_VERSION = 16, +}; + +enum scmi_error_codes { + SCMI_SUCCESS = 0, + SCMI_ERR_SUPPORT = -1, + SCMI_ERR_PARAMS = -2, + SCMI_ERR_ACCESS = -3, + SCMI_ERR_ENTRY = -4, + SCMI_ERR_RANGE = -5, + SCMI_ERR_BUSY = -6, + SCMI_ERR_COMMS = -7, + SCMI_ERR_GENERIC = -8, + SCMI_ERR_HARDWARE = -9, + SCMI_ERR_PROTOCOL = -10, +}; + +enum scmi_imx_bbm_protocol_cmd { + IMX_BBM_GPR_SET = 3, + IMX_BBM_GPR_GET = 4, + IMX_BBM_RTC_ATTRIBUTES = 5, + IMX_BBM_RTC_TIME_SET = 6, + IMX_BBM_RTC_TIME_GET = 7, + IMX_BBM_RTC_ALARM_SET = 8, + IMX_BBM_BUTTON_GET = 9, + IMX_BBM_RTC_NOTIFY = 10, + IMX_BBM_BUTTON_NOTIFY = 11, +}; + +enum scmi_notification_events { + SCMI_EVENT_POWER_STATE_CHANGED = 0, + SCMI_EVENT_CLOCK_RATE_CHANGED = 0, + SCMI_EVENT_CLOCK_RATE_CHANGE_REQUESTED = 1, + SCMI_EVENT_PERFORMANCE_LIMITS_CHANGED = 0, + SCMI_EVENT_PERFORMANCE_LEVEL_CHANGED = 1, + SCMI_EVENT_SENSOR_TRIP_POINT_EVENT = 0, + SCMI_EVENT_SENSOR_UPDATE = 1, + SCMI_EVENT_RESET_ISSUED = 0, + SCMI_EVENT_BASE_ERROR_EVENT = 0, + SCMI_EVENT_SYSTEM_POWER_STATE_NOTIFIER = 0, + SCMI_EVENT_POWERCAP_CAP_CHANGED = 0, + SCMI_EVENT_POWERCAP_MEASUREMENTS_CHANGED = 1, +}; + +enum scmi_nxp_notification_events { + SCMI_EVENT_IMX_BBM_RTC = 0, + SCMI_EVENT_IMX_BBM_BUTTON = 1, + SCMI_EVENT_IMX_MISC_CONTROL = 0, +}; + +enum scmi_performance_protocol_cmd { + PERF_DOMAIN_ATTRIBUTES = 3, + PERF_DESCRIBE_LEVELS = 4, + PERF_LIMITS_SET = 5, + PERF_LIMITS_GET = 6, + PERF_LEVEL_SET = 7, + PERF_LEVEL_GET = 8, + PERF_NOTIFY_LIMITS = 9, + PERF_NOTIFY_LEVEL = 10, + PERF_DESCRIBE_FASTCHANNEL = 11, + PERF_DOMAIN_NAME_GET = 12, +}; + +enum scmi_pinctrl_conf_type { + SCMI_PIN_DEFAULT = 0, + SCMI_PIN_BIAS_BUS_HOLD = 1, + SCMI_PIN_BIAS_DISABLE = 2, + SCMI_PIN_BIAS_HIGH_IMPEDANCE = 3, + SCMI_PIN_BIAS_PULL_UP = 4, + SCMI_PIN_BIAS_PULL_DEFAULT = 5, + SCMI_PIN_BIAS_PULL_DOWN = 6, + SCMI_PIN_DRIVE_OPEN_DRAIN = 7, + SCMI_PIN_DRIVE_OPEN_SOURCE = 8, + SCMI_PIN_DRIVE_PUSH_PULL = 9, + SCMI_PIN_DRIVE_STRENGTH = 10, + SCMI_PIN_INPUT_DEBOUNCE = 11, + SCMI_PIN_INPUT_MODE = 12, + SCMI_PIN_PULL_MODE = 13, + SCMI_PIN_INPUT_VALUE = 14, + SCMI_PIN_INPUT_SCHMITT = 15, + SCMI_PIN_LOW_POWER_MODE = 16, + SCMI_PIN_OUTPUT_MODE = 17, + SCMI_PIN_OUTPUT_VALUE = 18, + SCMI_PIN_POWER_SOURCE = 19, + SCMI_PIN_SLEW_RATE = 20, + SCMI_PIN_OEM_START = 192, + SCMI_PIN_OEM_END = 255, +}; + +enum scmi_pinctrl_protocol_cmd { + PINCTRL_ATTRIBUTES = 3, + PINCTRL_LIST_ASSOCIATIONS = 4, + PINCTRL_SETTINGS_GET = 5, + PINCTRL_SETTINGS_CONFIGURE = 6, + PINCTRL_REQUEST = 7, + PINCTRL_RELEASE = 8, + PINCTRL_NAME_GET = 9, + PINCTRL_SET_PERMISSIONS = 10, +}; + +enum scmi_pinctrl_selector_type { + PIN_TYPE = 0, + GROUP_TYPE = 1, + FUNCTION_TYPE = 2, +}; + +enum scmi_power_protocol_cmd { + POWER_DOMAIN_ATTRIBUTES = 3, + POWER_STATE_SET = 4, + POWER_STATE_GET = 5, + POWER_STATE_NOTIFY = 6, + POWER_DOMAIN_NAME_GET = 8, +}; + +enum scmi_power_scale { + SCMI_POWER_BOGOWATTS = 0, + SCMI_POWER_MILLIWATTS = 1, + SCMI_POWER_MICROWATTS = 2, +}; + +enum scmi_powercap_protocol_cmd { + POWERCAP_DOMAIN_ATTRIBUTES = 3, + POWERCAP_CAP_GET = 4, + POWERCAP_CAP_SET = 5, + POWERCAP_PAI_GET = 6, + POWERCAP_PAI_SET = 7, + POWERCAP_DOMAIN_NAME_GET = 8, + POWERCAP_MEASUREMENTS_GET = 9, + POWERCAP_CAP_NOTIFY = 10, + POWERCAP_MEASUREMENTS_NOTIFY = 11, + POWERCAP_DESCRIBE_FASTCHANNEL = 12, +}; + +enum scmi_reset_protocol_cmd { + RESET_DOMAIN_ATTRIBUTES = 3, + RESET = 4, + RESET_NOTIFY = 5, + RESET_DOMAIN_NAME_GET = 6, +}; + +enum scmi_sensor_protocol_cmd { + SENSOR_DESCRIPTION_GET = 3, + SENSOR_TRIP_POINT_NOTIFY = 4, + SENSOR_TRIP_POINT_CONFIG = 5, + SENSOR_READING_GET = 6, + SENSOR_AXIS_DESCRIPTION_GET = 7, + SENSOR_LIST_UPDATE_INTERVALS = 8, + SENSOR_CONFIG_GET = 9, + SENSOR_CONFIG_SET = 10, + SENSOR_CONTINUOUS_UPDATE_NOTIFY = 11, + SENSOR_NAME_GET = 12, + SENSOR_AXIS_NAME_GET = 13, +}; + +enum scmi_std_protocol { + SCMI_PROTOCOL_BASE = 16, + SCMI_PROTOCOL_POWER = 17, + SCMI_PROTOCOL_SYSTEM = 18, + SCMI_PROTOCOL_PERF = 19, + SCMI_PROTOCOL_CLOCK = 20, + SCMI_PROTOCOL_SENSOR = 21, + SCMI_PROTOCOL_RESET = 22, + SCMI_PROTOCOL_VOLTAGE = 23, + SCMI_PROTOCOL_POWERCAP = 24, + SCMI_PROTOCOL_PINCTRL = 25, +}; + +enum scmi_system_events { + SCMI_SYSTEM_SHUTDOWN = 0, + SCMI_SYSTEM_COLDRESET = 1, + SCMI_SYSTEM_WARMRESET = 2, + SCMI_SYSTEM_POWERUP = 3, + SCMI_SYSTEM_SUSPEND = 4, + SCMI_SYSTEM_MAX = 5, +}; + +enum scmi_system_protocol_cmd { + SYSTEM_POWER_STATE_NOTIFY = 5, +}; + +enum scmi_voltage_level_mode { + SCMI_VOLTAGE_LEVEL_SET_AUTO = 0, + SCMI_VOLTAGE_LEVEL_SET_SYNC = 1, +}; + +enum scmi_voltage_protocol_cmd { + VOLTAGE_DOMAIN_ATTRIBUTES = 3, + VOLTAGE_DESCRIBE_LEVELS = 4, + VOLTAGE_CONFIG_SET = 5, + VOLTAGE_CONFIG_GET = 6, + VOLTAGE_LEVEL_SET = 7, + VOLTAGE_LEVEL_GET = 8, + VOLTAGE_DOMAIN_NAME_GET = 9, +}; + +enum scpsys_bus_prot_flags { + BUS_PROT_REG_UPDATE = 2, + BUS_PROT_IGNORE_CLR_ACK = 4, + BUS_PROT_INVERTED = 8, + BUS_PROT_COMPONENT_INFRA = 16, + BUS_PROT_COMPONENT_SMI = 32, + BUS_PROT_STA_COMPONENT_INFRA_NAO = 64, +}; + +enum scrub_type { + SCRUB_UNKNOWN = 0, + SCRUB_NONE = 1, + SCRUB_SW_PROG = 2, + SCRUB_SW_SRC = 3, + SCRUB_SW_PROG_SRC = 4, + SCRUB_SW_TUNABLE = 5, + SCRUB_HW_PROG = 6, + SCRUB_HW_SRC = 7, + SCRUB_HW_PROG_SRC = 8, + SCRUB_HW_TUNABLE = 9, +}; + +enum scsi_cmnd_submitter { + SUBMITTED_BY_BLOCK_LAYER = 0, + SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, + SUBMITTED_BY_SCSI_RESET_IOCTL = 2, +} __attribute__((mode(byte))); + +enum scsi_device_event { + SDEV_EVT_MEDIA_CHANGE = 1, + SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2, + SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3, + SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4, + SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5, + SDEV_EVT_LUN_CHANGE_REPORTED = 6, + SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7, + SDEV_EVT_POWER_ON_RESET_OCCURRED = 8, + SDEV_EVT_FIRST = 1, + SDEV_EVT_LAST = 8, + SDEV_EVT_MAXBITS = 9, +}; + +enum scsi_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_devinfo_key { + SCSI_DEVINFO_GLOBAL = 0, + SCSI_DEVINFO_SPI = 1, +}; + +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_host_guard_type { + SHOST_DIX_GUARD_CRC = 1, + SHOST_DIX_GUARD_IP = 2, +}; + +enum scsi_host_prot_capabilities { + SHOST_DIF_TYPE1_PROTECTION = 1, + SHOST_DIF_TYPE2_PROTECTION = 2, + SHOST_DIF_TYPE3_PROTECTION = 4, + SHOST_DIX_TYPE0_PROTECTION = 8, + SHOST_DIX_TYPE1_PROTECTION = 16, + SHOST_DIX_TYPE2_PROTECTION = 32, + SHOST_DIX_TYPE3_PROTECTION = 64, +}; + +enum scsi_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, + SCSIML_STAT_DL_TIMEOUT = 5, +}; + +enum scsi_msg_byte { + COMMAND_COMPLETE = 0, + EXTENDED_MESSAGE = 1, + SAVE_POINTERS = 2, + RESTORE_POINTERS = 3, + DISCONNECT = 4, + INITIATOR_ERROR = 5, + ABORT_TASK_SET = 6, + MESSAGE_REJECT = 7, + NOP = 8, + MSG_PARITY_ERROR = 9, + LINKED_CMD_COMPLETE = 10, + LINKED_FLG_CMD_COMPLETE = 11, + TARGET_RESET = 12, + ABORT_TASK = 13, + CLEAR_TASK_SET = 14, + INITIATE_RECOVERY = 15, + RELEASE_RECOVERY = 16, + TERMINATE_IO_PROC = 17, + CLEAR_ACA = 22, + LOGICAL_UNIT_RESET = 23, + SIMPLE_QUEUE_TAG = 32, + HEAD_OF_QUEUE_TAG = 33, + ORDERED_QUEUE_TAG = 34, + IGNORE_WIDE_RESIDUE = 35, + ACA = 36, + QAS_REQUEST = 85, + BUS_DEVICE_RESET = 12, + ABORT = 6, +}; + +enum scsi_pr_type { + SCSI_PR_WRITE_EXCLUSIVE = 1, + SCSI_PR_EXCLUSIVE_ACCESS = 3, + SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, + SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, + SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, + SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, +}; + +enum 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 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 scsi_scan_mode { + SCSI_SCAN_INITIAL = 0, + SCSI_SCAN_RESCAN = 1, + SCSI_SCAN_MANUAL = 2, +}; + +enum scsi_target_state { + STARGET_CREATED = 1, + STARGET_RUNNING = 2, + STARGET_REMOVE = 3, + STARGET_CREATED_REMOVE = 4, + STARGET_DEL = 5, +}; + +enum scsi_timeout_action { + SCSI_EH_DONE = 0, + SCSI_EH_RESET_TIMER = 1, + SCSI_EH_NOT_HANDLED = 2, +}; + +enum scsi_timeouts { + SCSI_DEFAULT_EH_TIMEOUT = 10000, +}; + +enum scsi_vpd_parameters { + SCSI_VPD_HEADER_SIZE = 4, + SCSI_VPD_LIST_SIZE = 36, +}; + +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_conntrack { + SCTP_CONNTRACK_NONE = 0, + SCTP_CONNTRACK_CLOSED = 1, + SCTP_CONNTRACK_COOKIE_WAIT = 2, + SCTP_CONNTRACK_COOKIE_ECHOED = 3, + SCTP_CONNTRACK_ESTABLISHED = 4, + SCTP_CONNTRACK_SHUTDOWN_SENT = 5, + SCTP_CONNTRACK_SHUTDOWN_RECD = 6, + SCTP_CONNTRACK_SHUTDOWN_ACK_SENT = 7, + SCTP_CONNTRACK_HEARTBEAT_SENT = 8, + SCTP_CONNTRACK_HEARTBEAT_ACKED = 9, + SCTP_CONNTRACK_MAX = 10, +}; + +enum sctp_endpoint_type { + SCTP_EP_TYPE_SOCKET = 0, + SCTP_EP_TYPE_ASSOCIATION = 1, +}; + +enum sctp_event_timeout { + SCTP_EVENT_TIMEOUT_NONE = 0, + SCTP_EVENT_TIMEOUT_T1_COOKIE = 1, + SCTP_EVENT_TIMEOUT_T1_INIT = 2, + SCTP_EVENT_TIMEOUT_T2_SHUTDOWN = 3, + SCTP_EVENT_TIMEOUT_T3_RTX = 4, + SCTP_EVENT_TIMEOUT_T4_RTO = 5, + SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD = 6, + SCTP_EVENT_TIMEOUT_HEARTBEAT = 7, + SCTP_EVENT_TIMEOUT_RECONF = 8, + SCTP_EVENT_TIMEOUT_PROBE = 9, + SCTP_EVENT_TIMEOUT_SACK = 10, + SCTP_EVENT_TIMEOUT_AUTOCLOSE = 11, +}; + +enum sctp_msg_flags { + MSG_NOTIFICATION = 32768, +}; + +enum sctp_param { + SCTP_PARAM_HEARTBEAT_INFO = 256, + SCTP_PARAM_IPV4_ADDRESS = 1280, + SCTP_PARAM_IPV6_ADDRESS = 1536, + SCTP_PARAM_STATE_COOKIE = 1792, + SCTP_PARAM_UNRECOGNIZED_PARAMETERS = 2048, + SCTP_PARAM_COOKIE_PRESERVATIVE = 2304, + SCTP_PARAM_HOST_NAME_ADDRESS = 2816, + SCTP_PARAM_SUPPORTED_ADDRESS_TYPES = 3072, + SCTP_PARAM_ECN_CAPABLE = 128, + SCTP_PARAM_RANDOM = 640, + SCTP_PARAM_CHUNKS = 896, + SCTP_PARAM_HMAC_ALGO = 1152, + SCTP_PARAM_SUPPORTED_EXT = 2176, + SCTP_PARAM_FWD_TSN_SUPPORT = 192, + SCTP_PARAM_ADD_IP = 448, + SCTP_PARAM_DEL_IP = 704, + SCTP_PARAM_ERR_CAUSE = 960, + SCTP_PARAM_SET_PRIMARY = 1216, + SCTP_PARAM_SUCCESS_REPORT = 1472, + SCTP_PARAM_ADAPTATION_LAYER_IND = 1728, + SCTP_PARAM_RESET_OUT_REQUEST = 3328, + SCTP_PARAM_RESET_IN_REQUEST = 3584, + SCTP_PARAM_RESET_TSN_REQUEST = 3840, + SCTP_PARAM_RESET_RESPONSE = 4096, + SCTP_PARAM_RESET_ADD_OUT_STREAMS = 4352, + SCTP_PARAM_RESET_ADD_IN_STREAMS = 4608, +}; + +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_socket_type { + SCTP_SOCKET_UDP = 0, + SCTP_SOCKET_UDP_HIGH_BANDWIDTH = 1, + SCTP_SOCKET_TCP = 2, +}; + +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, +}; + +enum scx_consts { + SCX_DSP_DFL_MAX_BATCH = 32, + SCX_DSP_MAX_LOOPS = 32, + SCX_WATCHDOG_MAX_TIMEOUT = 30000, + SCX_EXIT_BT_LEN = 64, + SCX_EXIT_MSG_LEN = 1024, + SCX_EXIT_DUMP_DFL_LEN = 32768, + SCX_CPUPERF_ONE = 1024, + SCX_OPS_TASK_ITER_BATCH = 32, +}; + +enum scx_cpu_preempt_reason { + SCX_CPU_PREEMPT_RT = 0, + SCX_CPU_PREEMPT_DL = 1, + SCX_CPU_PREEMPT_STOP = 2, + SCX_CPU_PREEMPT_UNKNOWN = 3, +}; + +enum scx_deq_flags { + SCX_DEQ_SLEEP = 1ULL, + SCX_DEQ_CORE_SCHED_EXEC = 4294967296ULL, +}; + +enum scx_dsq_id_flags { + SCX_DSQ_FLAG_BUILTIN = 9223372036854775808ULL, + SCX_DSQ_FLAG_LOCAL_ON = 4611686018427387904ULL, + SCX_DSQ_INVALID = 9223372036854775808ULL, + SCX_DSQ_GLOBAL = 9223372036854775809ULL, + SCX_DSQ_LOCAL = 9223372036854775810ULL, + SCX_DSQ_LOCAL_ON = 13835058055282163712ULL, + SCX_DSQ_LOCAL_CPU_MASK = 4294967295ULL, +}; + +enum scx_dsq_iter_flags { + SCX_DSQ_ITER_REV = 65536, + __SCX_DSQ_ITER_HAS_SLICE = 1073741824, + __SCX_DSQ_ITER_HAS_VTIME = 2147483648, + __SCX_DSQ_ITER_USER_FLAGS = 65536, + __SCX_DSQ_ITER_ALL_FLAGS = 3221291008, +}; + +enum scx_dsq_lnode_flags { + SCX_DSQ_LNODE_ITER_CURSOR = 1, + __SCX_DSQ_LNODE_PRIV_SHIFT = 16, +}; + +enum scx_enq_flags { + SCX_ENQ_WAKEUP = 1ULL, + SCX_ENQ_HEAD = 16ULL, + SCX_ENQ_CPU_SELECTED = 1024ULL, + SCX_ENQ_PREEMPT = 4294967296ULL, + SCX_ENQ_REENQ = 1099511627776ULL, + SCX_ENQ_LAST = 2199023255552ULL, + __SCX_ENQ_INTERNAL_MASK = 18374686479671623680ULL, + SCX_ENQ_CLEAR_OPSS = 72057594037927936ULL, + SCX_ENQ_DSQ_PRIQ = 144115188075855872ULL, +}; + +enum scx_ent_dsq_flags { + SCX_TASK_DSQ_ON_PRIQ = 1, +}; + +enum scx_ent_flags { + SCX_TASK_QUEUED = 1, + SCX_TASK_RESET_RUNNABLE_AT = 4, + SCX_TASK_DEQD_FOR_SLEEP = 8, + SCX_TASK_STATE_SHIFT = 8, + SCX_TASK_STATE_BITS = 2, + SCX_TASK_STATE_MASK = 768, + SCX_TASK_CURSOR = -2147483648, +}; + +enum scx_exit_code { + SCX_ECODE_RSN_HOTPLUG = 4294967296ULL, + SCX_ECODE_ACT_RESTART = 281474976710656ULL, +}; + +enum scx_exit_kind { + SCX_EXIT_NONE = 0, + SCX_EXIT_DONE = 1, + SCX_EXIT_UNREG = 64, + SCX_EXIT_UNREG_BPF = 65, + SCX_EXIT_UNREG_KERN = 66, + SCX_EXIT_SYSRQ = 67, + SCX_EXIT_ERROR = 1024, + SCX_EXIT_ERROR_BPF = 1025, + SCX_EXIT_ERROR_STALL = 1026, +}; + +enum scx_kf_mask { + SCX_KF_UNLOCKED = 0, + SCX_KF_CPU_RELEASE = 1, + SCX_KF_DISPATCH = 2, + SCX_KF_ENQUEUE = 4, + SCX_KF_SELECT_CPU = 8, + SCX_KF_REST = 16, + __SCX_KF_RQ_LOCKED = 31, + __SCX_KF_TERMINAL = 28, +}; + +enum scx_kick_flags { + SCX_KICK_IDLE = 1, + SCX_KICK_PREEMPT = 2, + SCX_KICK_WAIT = 4, +}; + +enum scx_opi { + SCX_OPI_BEGIN = 0, + SCX_OPI_NORMAL_BEGIN = 0, + SCX_OPI_NORMAL_END = 29, + SCX_OPI_CPU_HOTPLUG_BEGIN = 29, + SCX_OPI_CPU_HOTPLUG_END = 31, + SCX_OPI_END = 31, +}; + +enum scx_ops_enable_state { + SCX_OPS_ENABLING = 0, + SCX_OPS_ENABLED = 1, + SCX_OPS_DISABLING = 2, + SCX_OPS_DISABLED = 3, +}; + +enum scx_ops_flags { + SCX_OPS_KEEP_BUILTIN_IDLE = 1, + SCX_OPS_ENQ_LAST = 2, + SCX_OPS_ENQ_EXITING = 4, + SCX_OPS_SWITCH_PARTIAL = 8, + SCX_OPS_ENQ_MIGRATION_DISABLED = 16, + SCX_OPS_HAS_CGROUP_WEIGHT = 65536, + SCX_OPS_ALL_FLAGS = 65567, +}; + +enum scx_ops_state { + SCX_OPSS_NONE = 0, + SCX_OPSS_QUEUEING = 1, + SCX_OPSS_QUEUED = 2, + SCX_OPSS_DISPATCHING = 3, + SCX_OPSS_QSEQ_SHIFT = 2, +}; + +enum scx_pick_idle_cpu_flags { + SCX_PICK_IDLE_CORE = 1, +}; + +enum scx_public_consts { + SCX_OPS_NAME_LEN = 128ULL, + SCX_SLICE_DFL = 20000000ULL, + SCX_SLICE_INF = 18446744073709551615ULL, +}; + +enum scx_rq_flags { + SCX_RQ_ONLINE = 1, + SCX_RQ_CAN_STOP_TICK = 2, + SCX_RQ_BAL_PENDING = 4, + SCX_RQ_BAL_KEEP = 8, + SCX_RQ_BYPASSING = 16, + SCX_RQ_CLK_VALID = 32, + SCX_RQ_IN_WAKEUP = 65536, + SCX_RQ_IN_BALANCE = 131072, +}; + +enum scx_task_state { + SCX_TASK_NONE = 0, + SCX_TASK_INIT = 1, + SCX_TASK_READY = 2, + SCX_TASK_ENABLED = 3, + SCX_TASK_NR_STATES = 4, +}; + +enum scx_tg_flags { + SCX_TG_ONLINE = 1, + SCX_TG_INITED = 2, +}; + +enum scx_wake_flags { + SCX_WAKE_FORK = 4, + SCX_WAKE_TTWU = 8, + SCX_WAKE_SYNC = 16, +}; + +enum sd_uhs2_operation { + UHS2_PHY_INIT = 0, + UHS2_SET_CONFIG = 1, + UHS2_ENABLE_INT = 2, + UHS2_DISABLE_INT = 3, + UHS2_ENABLE_CLK = 4, + UHS2_DISABLE_CLK = 5, + UHS2_CHECK_DORMANT = 6, + UHS2_SET_IOS = 7, +}; + +enum sec_device_type { + S5M8767X = 0, + S2DOS05 = 1, + S2MPA01 = 2, + S2MPS11X = 3, + S2MPS13X = 4, + S2MPS14X = 5, + S2MPS15X = 6, + S2MPU02 = 7, +}; + +enum security_cmd_enabled_bits { + CXL_SEC_ENABLED_SANITIZE = 0, + CXL_SEC_ENABLED_SECURE_ERASE = 1, + CXL_SEC_ENABLED_GET_SECURITY_STATE = 2, + CXL_SEC_ENABLED_SET_PASSPHRASE = 3, + CXL_SEC_ENABLED_DISABLE_PASSPHRASE = 4, + CXL_SEC_ENABLED_UNLOCK = 5, + CXL_SEC_ENABLED_FREEZE_SECURITY = 6, + CXL_SEC_ENABLED_PASSPHRASE_SECURE_ERASE = 7, + CXL_SEC_ENABLED_MAX = 8, +}; + +enum seg6_end_dt_mode { + DT_INVALID_MODE = -22, + DT_LEGACY_MODE = 0, + DT_VRF_MODE = 1, +}; + +enum seg6_local_flv_action { + SEG6_LOCAL_FLV_ACT_UNSPEC = 0, + SEG6_LOCAL_FLV_ACT_END = 1, + SEG6_LOCAL_FLV_ACT_PSP = 2, + SEG6_LOCAL_FLV_ACT_USP = 3, + SEG6_LOCAL_FLV_ACT_USD = 4, + __SEG6_LOCAL_FLV_ACT_MAX = 5, +}; + +enum seg6_local_pktinfo { + SEG6_LOCAL_PKTINFO_NOHDR = 0, + SEG6_LOCAL_PKTINFO_SL_ZERO = 1, + SEG6_LOCAL_PKTINFO_SL_ONE = 2, + SEG6_LOCAL_PKTINFO_SL_MORE = 3, + __SEG6_LOCAL_PKTINFO_MAX = 4, +}; + +enum sel_inos { + SEL_ROOT_INO = 2, + SEL_LOAD = 3, + SEL_ENFORCE = 4, + SEL_CONTEXT = 5, + SEL_ACCESS = 6, + SEL_CREATE = 7, + SEL_RELABEL = 8, + SEL_USER = 9, + SEL_POLICYVERS = 10, + SEL_COMMIT_BOOLS = 11, + SEL_MLS = 12, + SEL_DISABLE = 13, + SEL_MEMBER = 14, + SEL_CHECKREQPROT = 15, + SEL_COMPAT_NET = 16, + SEL_REJECT_UNKNOWN = 17, + SEL_DENY_UNKNOWN = 18, + SEL_STATUS = 19, + SEL_POLICY = 20, + SEL_VALIDATE_TRANS = 21, + SEL_INO_NEXT = 22, +}; + +enum selinux_nlgroups { + SELNLGRP_NONE = 0, + SELNLGRP_AVC = 1, + __SELNLGRP_MAX = 2, +}; + +enum serdev_parity { + SERDEV_PARITY_NONE = 0, + SERDEV_PARITY_EVEN = 1, + SERDEV_PARITY_ODD = 2, +}; + +enum serio_event_type { + SERIO_RESCAN_PORT = 0, + SERIO_RECONNECT_PORT = 1, + SERIO_RECONNECT_SUBTREE = 2, + SERIO_REGISTER_PORT = 3, + SERIO_ATTACH_DRIVER = 4, +}; + +enum set_event_iter_type { + SET_EVENT_FILE = 0, + SET_EVENT_MOD = 1, +}; + +enum setid_type { + UID = 0, + GID = 1, +}; + +enum sgmii_speed { + SGMII_SPEED_10 = 0, + SGMII_SPEED_100 = 1, + SGMII_SPEED_1000 = 2, + SGMII_SPEED_2500 = 2, +}; + +enum sgp_type { + SGP_READ = 0, + SGP_NOALLOC = 1, + SGP_CACHE = 2, + SGP_WRITE = 3, + SGP_FALLOC = 4, +}; + +enum sh_cmt_model { + SH_CMT_16BIT = 0, + SH_CMT_32BIT = 1, + SH_CMT_48BIT = 2, + SH_CMT0_RCAR_GEN2 = 3, + SH_CMT1_RCAR_GEN2 = 4, +}; + +enum sh_tmu_model { + SH_TMU = 0, + SH_TMU_SH3 = 1, +}; + +enum shmem_param { + Opt_gid___8 = 0, + Opt_huge = 1, + Opt_mode___6 = 2, + Opt_mpol = 3, + Opt_nr_blocks = 4, + Opt_nr_inodes___2 = 5, + Opt_size___2 = 6, + Opt_uid___7 = 7, + Opt_inode32 = 8, + Opt_inode64 = 9, + Opt_noswap = 10, + Opt_quota___2 = 11, + Opt_usrquota___2 = 12, + Opt_grpquota___2 = 13, + Opt_usrquota_block_hardlimit = 14, + Opt_usrquota_inode_hardlimit = 15, + Opt_grpquota_block_hardlimit = 16, + Opt_grpquota_inode_hardlimit = 17, + Opt_casefold_version = 18, + Opt_casefold = 19, + Opt_strict_encoding = 20, +}; + +enum shutdown_state { + SHUTDOWN_INVALID = -1, + SHUTDOWN_POWEROFF = 0, + SHUTDOWN_SUSPEND = 2, + SHUTDOWN_HALT = 4, +}; + +enum si_type { + SI_TYPE_INVALID = 0, + SI_KCS = 1, + SI_SMIC = 2, + SI_BT = 3, + SI_TYPE_MAX = 4, +}; + +enum sid_policy_type { + SIDPOL_DEFAULT = 0, + SIDPOL_CONSTRAINED = 1, + SIDPOL_ALLOWED = 2, +}; + +enum sig_handler { + HANDLER_CURRENT = 0, + HANDLER_SIG_DFL = 1, + HANDLER_EXIT = 2, +}; + +enum siginfo_layout { + SIL_KILL = 0, + SIL_TIMER = 1, + SIL_POLL = 2, + SIL_FAULT = 3, + SIL_FAULT_TRAPNO = 4, + SIL_FAULT_MCEERR = 5, + SIL_FAULT_BNDERR = 6, + SIL_FAULT_PKUERR = 7, + SIL_FAULT_PERF_EVENT = 8, + SIL_CHLD = 9, + SIL_RT = 10, + SIL_SYS = 11, +}; + +enum sk_action { + SK_DROP = 0, + SK_PASS = 1, +}; + +enum sk_pacing { + SK_PACING_NONE = 0, + SK_PACING_NEEDED = 1, + SK_PACING_FQ = 2, +}; + +enum sk_psock_state_bits { + SK_PSOCK_TX_ENABLED = 0, + SK_PSOCK_RX_STRP_ENABLED = 1, +}; + +enum sk_rst_reason { + SK_RST_REASON_NOT_SPECIFIED = 0, + SK_RST_REASON_NO_SOCKET = 1, + SK_RST_REASON_TCP_INVALID_ACK_SEQUENCE = 2, + SK_RST_REASON_TCP_RFC7323_PAWS = 3, + SK_RST_REASON_TCP_TOO_OLD_ACK = 4, + SK_RST_REASON_TCP_ACK_UNSENT_DATA = 5, + SK_RST_REASON_TCP_FLAGS = 6, + SK_RST_REASON_TCP_OLD_ACK = 7, + SK_RST_REASON_TCP_ABORT_ON_DATA = 8, + SK_RST_REASON_TCP_TIMEWAIT_SOCKET = 9, + SK_RST_REASON_INVALID_SYN = 10, + SK_RST_REASON_TCP_ABORT_ON_CLOSE = 11, + SK_RST_REASON_TCP_ABORT_ON_LINGER = 12, + SK_RST_REASON_TCP_ABORT_ON_MEMORY = 13, + SK_RST_REASON_TCP_STATE = 14, + SK_RST_REASON_TCP_KEEPALIVE_TIMEOUT = 15, + SK_RST_REASON_TCP_DISCONNECT_WITH_DATA = 16, + SK_RST_REASON_MPTCP_RST_EUNSPEC = 17, + SK_RST_REASON_MPTCP_RST_EMPTCP = 18, + SK_RST_REASON_MPTCP_RST_ERESOURCE = 19, + SK_RST_REASON_MPTCP_RST_EPROHIBIT = 20, + SK_RST_REASON_MPTCP_RST_EWQ2BIG = 21, + SK_RST_REASON_MPTCP_RST_EBADPERF = 22, + SK_RST_REASON_MPTCP_RST_EMIDDLEBOX = 23, + SK_RST_REASON_ERROR = 24, + SK_RST_REASON_MAX = 25, +}; + +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_SOCKET_CLOSE = 4, + SKB_DROP_REASON_SOCKET_FILTER = 5, + SKB_DROP_REASON_SOCKET_RCVBUFF = 6, + SKB_DROP_REASON_UNIX_DISCONNECT = 7, + SKB_DROP_REASON_UNIX_SKIP_OOB = 8, + SKB_DROP_REASON_PKT_TOO_SMALL = 9, + SKB_DROP_REASON_TCP_CSUM = 10, + SKB_DROP_REASON_UDP_CSUM = 11, + SKB_DROP_REASON_NETFILTER_DROP = 12, + SKB_DROP_REASON_OTHERHOST = 13, + SKB_DROP_REASON_IP_CSUM = 14, + SKB_DROP_REASON_IP_INHDR = 15, + SKB_DROP_REASON_IP_RPFILTER = 16, + SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 17, + SKB_DROP_REASON_XFRM_POLICY = 18, + SKB_DROP_REASON_IP_NOPROTO = 19, + SKB_DROP_REASON_PROTO_MEM = 20, + SKB_DROP_REASON_TCP_AUTH_HDR = 21, + SKB_DROP_REASON_TCP_MD5NOTFOUND = 22, + SKB_DROP_REASON_TCP_MD5UNEXPECTED = 23, + SKB_DROP_REASON_TCP_MD5FAILURE = 24, + SKB_DROP_REASON_TCP_AONOTFOUND = 25, + SKB_DROP_REASON_TCP_AOUNEXPECTED = 26, + SKB_DROP_REASON_TCP_AOKEYNOTFOUND = 27, + SKB_DROP_REASON_TCP_AOFAILURE = 28, + SKB_DROP_REASON_SOCKET_BACKLOG = 29, + SKB_DROP_REASON_TCP_FLAGS = 30, + SKB_DROP_REASON_TCP_ABORT_ON_DATA = 31, + SKB_DROP_REASON_TCP_ZEROWINDOW = 32, + SKB_DROP_REASON_TCP_OLD_DATA = 33, + SKB_DROP_REASON_TCP_OVERWINDOW = 34, + SKB_DROP_REASON_TCP_OFOMERGE = 35, + SKB_DROP_REASON_TCP_RFC7323_PAWS = 36, + SKB_DROP_REASON_TCP_RFC7323_PAWS_ACK = 37, + SKB_DROP_REASON_TCP_OLD_SEQUENCE = 38, + SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 39, + SKB_DROP_REASON_TCP_INVALID_ACK_SEQUENCE = 40, + SKB_DROP_REASON_TCP_RESET = 41, + SKB_DROP_REASON_TCP_INVALID_SYN = 42, + SKB_DROP_REASON_TCP_CLOSE = 43, + SKB_DROP_REASON_TCP_FASTOPEN = 44, + SKB_DROP_REASON_TCP_OLD_ACK = 45, + SKB_DROP_REASON_TCP_TOO_OLD_ACK = 46, + SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 47, + SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 48, + SKB_DROP_REASON_TCP_OFO_DROP = 49, + SKB_DROP_REASON_IP_OUTNOROUTES = 50, + SKB_DROP_REASON_BPF_CGROUP_EGRESS = 51, + SKB_DROP_REASON_IPV6DISABLED = 52, + SKB_DROP_REASON_NEIGH_CREATEFAIL = 53, + SKB_DROP_REASON_NEIGH_FAILED = 54, + SKB_DROP_REASON_NEIGH_QUEUEFULL = 55, + SKB_DROP_REASON_NEIGH_DEAD = 56, + SKB_DROP_REASON_TC_EGRESS = 57, + SKB_DROP_REASON_SECURITY_HOOK = 58, + SKB_DROP_REASON_QDISC_DROP = 59, + SKB_DROP_REASON_QDISC_OVERLIMIT = 60, + SKB_DROP_REASON_QDISC_CONGESTED = 61, + SKB_DROP_REASON_CAKE_FLOOD = 62, + SKB_DROP_REASON_FQ_BAND_LIMIT = 63, + SKB_DROP_REASON_FQ_HORIZON_LIMIT = 64, + SKB_DROP_REASON_FQ_FLOW_LIMIT = 65, + SKB_DROP_REASON_CPU_BACKLOG = 66, + SKB_DROP_REASON_XDP = 67, + SKB_DROP_REASON_TC_INGRESS = 68, + SKB_DROP_REASON_UNHANDLED_PROTO = 69, + SKB_DROP_REASON_SKB_CSUM = 70, + SKB_DROP_REASON_SKB_GSO_SEG = 71, + SKB_DROP_REASON_SKB_UCOPY_FAULT = 72, + SKB_DROP_REASON_DEV_HDR = 73, + SKB_DROP_REASON_DEV_READY = 74, + SKB_DROP_REASON_FULL_RING = 75, + SKB_DROP_REASON_NOMEM = 76, + SKB_DROP_REASON_HDR_TRUNC = 77, + SKB_DROP_REASON_TAP_FILTER = 78, + SKB_DROP_REASON_TAP_TXFILTER = 79, + SKB_DROP_REASON_ICMP_CSUM = 80, + SKB_DROP_REASON_INVALID_PROTO = 81, + SKB_DROP_REASON_IP_INADDRERRORS = 82, + SKB_DROP_REASON_IP_INNOROUTES = 83, + SKB_DROP_REASON_IP_LOCAL_SOURCE = 84, + SKB_DROP_REASON_IP_INVALID_SOURCE = 85, + SKB_DROP_REASON_IP_LOCALNET = 86, + SKB_DROP_REASON_IP_INVALID_DEST = 87, + SKB_DROP_REASON_PKT_TOO_BIG = 88, + SKB_DROP_REASON_DUP_FRAG = 89, + SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 90, + SKB_DROP_REASON_FRAG_TOO_FAR = 91, + SKB_DROP_REASON_TCP_MINTTL = 92, + SKB_DROP_REASON_IPV6_BAD_EXTHDR = 93, + SKB_DROP_REASON_IPV6_NDISC_FRAG = 94, + SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT = 95, + SKB_DROP_REASON_IPV6_NDISC_BAD_CODE = 96, + SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS = 97, + SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST = 98, + SKB_DROP_REASON_QUEUE_PURGE = 99, + SKB_DROP_REASON_TC_COOKIE_ERROR = 100, + SKB_DROP_REASON_PACKET_SOCK_ERROR = 101, + SKB_DROP_REASON_TC_CHAIN_NOTFOUND = 102, + SKB_DROP_REASON_TC_RECLASSIFY_LOOP = 103, + SKB_DROP_REASON_VXLAN_INVALID_HDR = 104, + SKB_DROP_REASON_VXLAN_VNI_NOT_FOUND = 105, + SKB_DROP_REASON_MAC_INVALID_SOURCE = 106, + SKB_DROP_REASON_VXLAN_ENTRY_EXISTS = 107, + SKB_DROP_REASON_NO_TX_TARGET = 108, + SKB_DROP_REASON_IP_TUNNEL_ECN = 109, + SKB_DROP_REASON_TUNNEL_TXINFO = 110, + SKB_DROP_REASON_LOCAL_MAC = 111, + SKB_DROP_REASON_ARP_PVLAN_DISABLE = 112, + SKB_DROP_REASON_MAC_IEEE_MAC_CONTROL = 113, + SKB_DROP_REASON_BRIDGE_INGRESS_STP_STATE = 114, + SKB_DROP_REASON_MAX = 115, + SKB_DROP_REASON_SUBSYS_MASK = 4294901760, +}; + +enum skb_drop_reason_subsys { + SKB_DROP_REASON_SUBSYS_CORE = 0, + SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, + SKB_DROP_REASON_SUBSYS_OPENVSWITCH = 2, + SKB_DROP_REASON_SUBSYS_NUM = 3, +}; + +enum skb_ext_id { + SKB_EXT_BRIDGE_NF = 0, + SKB_EXT_SEC_PATH = 1, + TC_SKB_EXT = 2, + SKB_EXT_MPTCP = 3, + SKB_EXT_MCTP = 4, + SKB_EXT_NUM = 5, +}; + +enum skb_tstamp_type { + SKB_CLOCK_REALTIME = 0, + SKB_CLOCK_MONOTONIC = 1, + SKB_CLOCK_TAI = 2, + __SKB_CLOCK_MAX = 2, +}; + +enum sknetlink_groups { + SKNLGRP_NONE = 0, + SKNLGRP_INET_TCP_DESTROY = 1, + SKNLGRP_INET_UDP_DESTROY = 2, + SKNLGRP_INET6_TCP_DESTROY = 3, + SKNLGRP_INET6_UDP_DESTROY = 4, + __SKNLGRP_MAX = 5, +}; + +enum slab_stat_type { + SL_ALL = 0, + SL_PARTIAL = 1, + SL_CPU = 2, + SL_OBJECTS = 3, + SL_TOTAL = 4, +}; + +enum slab_state { + DOWN___2 = 0, + PARTIAL = 1, + UP___2 = 2, + FULL = 3, +}; + +enum smbios_attr_enum { + SMBIOS_ATTR_NONE = 0, + SMBIOS_ATTR_LABEL_SHOW = 1, + SMBIOS_ATTR_INSTANCE_SHOW = 2, +}; + +enum smk_inos { + SMK_ROOT_INO = 2, + SMK_LOAD = 3, + SMK_CIPSO = 4, + SMK_DOI = 5, + SMK_DIRECT = 6, + SMK_AMBIENT = 7, + SMK_NET4ADDR = 8, + SMK_ONLYCAP = 9, + SMK_LOGGING = 10, + SMK_LOAD_SELF = 11, + SMK_ACCESSES = 12, + SMK_MAPPED = 13, + SMK_LOAD2 = 14, + SMK_LOAD_SELF2 = 15, + SMK_ACCESS2 = 16, + SMK_CIPSO2 = 17, + SMK_REVOKE_SUBJ = 18, + SMK_CHANGE_RULE = 19, + SMK_SYSLOG = 20, + SMK_PTRACE = 21, + SMK_NET6ADDR = 23, + SMK_RELABEL_SELF = 24, +}; + +enum snoop_when { + SUBMIT = 0, + COMPLETE = 1, +}; + +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, + SOCK_RCVPRIORITY = 28, +}; + +enum sock_shutdown_cmd { + SHUT_RD = 0, + SHUT_WR = 1, + SHUT_RDWR = 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 special_kfunc_type { + KF_bpf_obj_new_impl = 0, + KF_bpf_obj_drop_impl = 1, + KF_bpf_refcount_acquire_impl = 2, + KF_bpf_list_push_front_impl = 3, + KF_bpf_list_push_back_impl = 4, + KF_bpf_list_pop_front = 5, + KF_bpf_list_pop_back = 6, + KF_bpf_cast_to_kern_ctx = 7, + KF_bpf_rdonly_cast = 8, + KF_bpf_rcu_read_lock = 9, + KF_bpf_rcu_read_unlock = 10, + KF_bpf_rbtree_remove = 11, + KF_bpf_rbtree_add_impl = 12, + KF_bpf_rbtree_first = 13, + KF_bpf_dynptr_from_skb = 14, + KF_bpf_dynptr_from_xdp = 15, + KF_bpf_dynptr_slice = 16, + KF_bpf_dynptr_slice_rdwr = 17, + KF_bpf_dynptr_clone = 18, + KF_bpf_percpu_obj_new_impl = 19, + KF_bpf_percpu_obj_drop_impl = 20, + KF_bpf_throw = 21, + KF_bpf_wq_set_callback_impl = 22, + KF_bpf_preempt_disable = 23, + KF_bpf_preempt_enable = 24, + KF_bpf_iter_css_task_new = 25, + KF_bpf_session_cookie = 26, + KF_bpf_get_kmem_cache = 27, + KF_bpf_local_irq_save = 28, + KF_bpf_local_irq_restore = 29, + KF_bpf_iter_num_new = 30, + KF_bpf_iter_num_next = 31, + KF_bpf_iter_num_destroy = 32, +}; + +enum spectre_v4_policy { + SPECTRE_V4_POLICY_MITIGATION_DYNAMIC = 0, + SPECTRE_V4_POLICY_MITIGATION_ENABLED = 1, + SPECTRE_V4_POLICY_MITIGATION_DISABLED = 2, +}; + +enum spi_compare_returns { + SPI_COMPARE_SUCCESS = 0, + SPI_COMPARE_FAILURE = 1, + SPI_COMPARE_SKIP_TEST = 2, +}; + +enum spi_mem_data_dir { + SPI_MEM_NO_DATA = 0, + SPI_MEM_DATA_IN = 1, + SPI_MEM_DATA_OUT = 2, +}; + +enum spi_signal_type { + SPI_SIGNAL_UNKNOWN = 1, + SPI_SIGNAL_SE = 2, + SPI_SIGNAL_LVD = 3, + SPI_SIGNAL_HVD = 4, +}; + +enum spm_reg { + SPM_REG_CFG = 0, + SPM_REG_SPM_CTL = 1, + SPM_REG_DLY = 2, + SPM_REG_PMIC_DLY = 3, + SPM_REG_PMIC_DATA_0 = 4, + SPM_REG_PMIC_DATA_1 = 5, + SPM_REG_VCTL = 6, + SPM_REG_SEQ_ENTRY = 7, + SPM_REG_STS0 = 8, + SPM_REG_STS1 = 9, + SPM_REG_PMIC_STS = 10, + SPM_REG_AVS_CTL = 11, + SPM_REG_AVS_LIMIT = 12, + SPM_REG_RST = 13, + SPM_REG_NR = 14, +}; + +enum sprd_sc9860_pins { + SC9860_VIO28_0_IRTE = 2832, + SC9860_VIO_SD2_IRTE = 1051152, + SC9860_VIO_SD0_IRTE = 2099472, + SC9860_VIO_SIM2_IRTE = 3147792, + SC9860_VIO_SIM1_IRTE = 4196112, + SC9860_VIO_SIM0_IRTE = 5244432, + SC9860_VIO28_0_MS = 6292752, + SC9860_VIO_SD2_MS = 7341072, + SC9860_VIO_SD0_MS = 8389392, + SC9860_VIO_SIM2_MS = 9437712, + SC9860_VIO_SIM1_MS = 10486032, + SC9860_VIO_SIM0_MS = 11534352, + SC9860_SPSPI_PIN_IN_SEL = 12590866, + SC9860_UART1_USB30_PHY_SEL = 13639186, + SC9860_USB30_PHY_DM_OE = 14687506, + SC9860_USB30_PHY_DP_OE = 15735826, + SC9860_UART5_SYS_SEL = 16783666, + SC9860_ORP_URXD_PIN_IN_SEL = 17831954, + SC9860_SIM2_SYS_SEL = 18880274, + SC9860_SIM1_SYS_SEL = 19928594, + SC9860_SIM0_SYS_SEL = 20976914, + SC9860_CLK26MHZ_BUF_OUT_SEL = 22025234, + SC9860_UART4_SYS_SEL = 23072818, + SC9860_UART3_SYS_SEL = 24120626, + SC9860_UART2_SYS_SEL = 25168434, + SC9860_UART1_SYS_SEL = 26216242, + SC9860_UART0_SYS_SEL = 27264050, + SC9860_UART24_LOOP_SEL = 28312338, + SC9860_UART23_LOOP_SEL = 29360658, + SC9860_UART14_LOOP_SEL = 30408978, + SC9860_UART13_LOOP_SEL = 31457298, + SC9860_IIS3_SYS_SEL = 32510531, + SC9860_IIS2_SYS_SEL = 33558083, + SC9860_IIS1_SYS_SEL = 34605635, + SC9860_IIS0_SYS_SEL = 35653187, + SC9860_IIS23_LOOP_SEL = 36701459, + SC9860_IIS13_LOOP_SEL = 37749779, + SC9860_IIS12_LOOP_SEL = 38798099, + SC9860_IIS03_LOOP_SEL = 39846419, + SC9860_IIS02_LOOP_SEL = 40894739, + SC9860_IIS01_LOOP_SEL = 41943059, + SC9860_IIS6_SYS_SEL = 42998596, + SC9860_IIS5_SYS_SEL = 44046148, + SC9860_IIS4_SYS_SEL = 45093700, + SC9860_I2C_INF6_SYS_SEL = 46139428, + SC9860_I2C_INF4_SYS_SEL = 47187492, + SC9860_I2C_INF2_SYS_SEL = 48235556, + SC9860_I2C_INF1_SYS_SEL = 49283620, + SC9860_I2C_INF0_SYS_SEL = 50331684, + SC9860_GPIO_INF7_SYS_SEL = 51387157, + SC9860_GPIO_INF6_SYS_SEL = 52435477, + SC9860_GPIO_INF5_SYS_SEL = 53483797, + SC9860_GPIO_INF4_SYS_SEL = 54532117, + SC9860_GPIO_INF3_SYS_SEL = 55580437, + SC9860_GPIO_INF2_SYS_SEL = 56628757, + SC9860_GPIO_INF1_SYS_SEL = 57677077, + SC9860_GPIO_INF0_SYS_SEL = 58725397, + SC9860_WDRST_OUT_SEL = 59772981, + SC9860_ADI_SYNC_PIN_OUT_SEL = 60821013, + SC9860_CMRST_SEL = 61869333, + SC9860_CMPD_SEL = 62917653, + SC9860_TEST_DBG_MODE11 = 63965973, + SC9860_TEST_DBG_MODE10 = 65014293, + SC9860_TEST_DBG_MODE9 = 66062613, + SC9860_TEST_DBG_MODE8 = 67110933, + SC9860_TEST_DBG_MODE7 = 68159253, + SC9860_TEST_DBG_MODE6 = 69207573, + SC9860_TEST_DBG_MODE5 = 70255893, + SC9860_TEST_DBG_MODE4 = 71304213, + SC9860_TEST_DBG_MODE3 = 72352533, + SC9860_TEST_DBG_MODE2 = 73400853, + SC9860_TEST_DBG_MODE1 = 74449173, + SC9860_TEST_DBG_MODE0 = 75497493, + SC9860_SP_EIC_DPAD3_SEL = 76552326, + SC9860_SP_EIC_DPAD2_SEL = 77598854, + SC9860_SP_EIC_DPAD1_SEL = 78645382, + SC9860_SP_EIC_DPAD0_SEL = 79691910, + SC9860_SP_EIC_DPAD7_SEL = 80746631, + SC9860_SP_EIC_DPAD6_SEL = 81793159, + SC9860_SP_EIC_DPAD5_SEL = 82839687, + SC9860_SP_EIC_DPAD4_SEL = 83886215, + SC9860_RFCTL20 = 85000192, + SC9860_RFCTL21 = 87097344, + SC9860_RFCTL30 = 89194496, + SC9860_RFCTL31 = 91291648, + SC9860_RFCTL32 = 93388800, + SC9860_RFCTL33 = 95485952, + SC9860_RFCTL34 = 97583104, + SC9860_RFCTL35 = 99680256, + SC9860_RFCTL36 = 101777408, + SC9860_RFCTL37 = 103874560, + SC9860_RFCTL22 = 105971712, + SC9860_RFCTL23 = 108068864, + SC9860_RFCTL24 = 110166016, + SC9860_RFCTL25 = 112263168, + SC9860_RFCTL26 = 114360320, + SC9860_RFCTL27 = 116457472, + SC9860_RFCTL28 = 118554624, + SC9860_RFCTL29 = 120651776, + SC9860_SCL2 = 122748928, + SC9860_SDA2 = 124846080, + SC9860_MTCK_ARM = 126943232, + SC9860_MTMS_ARM = 129040384, + SC9860_XTL_EN0 = 131137536, + SC9860_PTEST = 133234688, + SC9860_AUD_DAD1 = 135331840, + SC9860_AUD_ADD0 = 137428992, + SC9860_AUD_ADSYNC = 139526144, + SC9860_AUD_SCLK = 141623296, + SC9860_CHIP_SLEEP = 143720448, + SC9860_CLK_32K = 145817600, + SC9860_DCDC_ARM_EN = 147914752, + SC9860_EXT_RST_B = 150011904, + SC9860_ADI_D = 152109056, + SC9860_ADI_SCLK = 154206208, + SC9860_XTL_EN1 = 156303360, + SC9860_ANA_INT = 158400512, + SC9860_AUD_DAD0 = 160497664, + SC9860_AUD_DASYNC = 162594816, + SC9860_LCM_RSTN = 164691968, + SC9860_DSI_TE = 166789120, + SC9860_PWMA = 168886272, + SC9860_EXTINT0 = 170983424, + SC9860_EXTINT1 = 173080576, + SC9860_SDA1 = 175177728, + SC9860_SCL1 = 177274880, + SC9860_SIMCLK2 = 179372032, + SC9860_SIMDA2 = 181469184, + SC9860_SIMRST2 = 183566336, + SC9860_SIMCLK1 = 185663488, + SC9860_SIMDA1 = 187760640, + SC9860_SIMRST1 = 189857792, + SC9860_SIMCLK0 = 191954944, + SC9860_SIMDA0 = 194052096, + SC9860_SIMRST0 = 196149248, + SC9860_SD2_CMD = 198246400, + SC9860_SD2_D0 = 200343552, + SC9860_SD2_D1 = 202440704, + SC9860_SD2_CLK = 204537856, + SC9860_SD2_D2 = 206635008, + SC9860_SD2_D3 = 208732160, + SC9860_SD0_D3 = 210829312, + SC9860_SD0_D2 = 212926464, + SC9860_SD0_CMD = 215023616, + SC9860_SD0_D0 = 217120768, + SC9860_SD0_D1 = 219217920, + SC9860_SD0_CLK = 221315072, + SC9860_EMMC_CMD_reserved = 223412224, + SC9860_EMMC_CMD = 225509376, + SC9860_EMMC_D6 = 227606528, + SC9860_EMMC_D7 = 229703680, + SC9860_EMMC_CLK = 231800832, + SC9860_EMMC_D5 = 233897984, + SC9860_EMMC_D4 = 235995136, + SC9860_EMMC_DS = 238092288, + SC9860_EMMC_D3_reserved = 240189440, + SC9860_EMMC_D3 = 242286592, + SC9860_EMMC_RST = 244383744, + SC9860_EMMC_D1 = 246480896, + SC9860_EMMC_D2 = 248578048, + SC9860_EMMC_D0 = 250675200, + SC9860_IIS0DI = 252772352, + SC9860_IIS0DO = 254869504, + SC9860_IIS0CLK = 256966656, + SC9860_IIS0LRCK = 259063808, + SC9860_SD1_CLK = 261160960, + SC9860_SD1_CMD = 263258112, + SC9860_SD1_D0 = 265355264, + SC9860_SD1_D1 = 267452416, + SC9860_SD1_D2 = 269549568, + SC9860_SD1_D3 = 271646720, + SC9860_CLK_AUX0 = 273743872, + SC9860_WIFI_COEXIST = 275841024, + SC9860_BEIDOU_COEXIST = 277938176, + SC9860_U3TXD = 280035328, + SC9860_U3RXD = 282132480, + SC9860_U3CTS = 284229632, + SC9860_U3RTS = 286326784, + SC9860_U0TXD = 288423936, + SC9860_U0RXD = 290521088, + SC9860_U0CTS = 292618240, + SC9860_U0RTS = 294715392, + SC9860_IIS1DI = 296812544, + SC9860_IIS1DO = 298909696, + SC9860_IIS1CLK = 301006848, + SC9860_IIS1LRCK = 303104000, + SC9860_SPI0_CSN = 305201152, + SC9860_SPI0_DO = 307298304, + SC9860_SPI0_DI = 309395456, + SC9860_SPI0_CLK = 311492608, + SC9860_U2TXD = 313589760, + SC9860_U2RXD = 315686912, + SC9860_U4TXD = 317784064, + SC9860_U4RXD = 319881216, + SC9860_CMMCLK1 = 321978368, + SC9860_CMRST1 = 324075520, + SC9860_CMMCLK0 = 326172672, + SC9860_CMRST0 = 328269824, + SC9860_CMPD0 = 330366976, + SC9860_CMPD1 = 332464128, + SC9860_SCL0 = 334561280, + SC9860_SDA0 = 336658432, + SC9860_SDA6 = 338755584, + SC9860_SCL6 = 340852736, + SC9860_U1TXD = 342949888, + SC9860_U1RXD = 345047040, + SC9860_KEYOUT0 = 347144192, + SC9860_KEYOUT1 = 349241344, + SC9860_KEYOUT2 = 351338496, + SC9860_KEYIN0 = 353435648, + SC9860_KEYIN1 = 355532800, + SC9860_KEYIN2 = 357629952, + SC9860_IIS3DI = 359727104, + SC9860_IIS3DO = 361824256, + SC9860_IIS3CLK = 363921408, + SC9860_IIS3LRCK = 366018560, + SC9860_RFCTL0 = 368115712, + SC9860_RFCTL1 = 370212864, + SC9860_RFCTL10 = 372310016, + SC9860_RFCTL11 = 374407168, + SC9860_RFCTL12 = 376504320, + SC9860_RFCTL13 = 378601472, + SC9860_RFCTL14 = 380698624, + SC9860_RFCTL15 = 382795776, + SC9860_RFCTL16 = 384892928, + SC9860_RFCTL17 = 386990080, + SC9860_RFCTL18 = 389087232, + SC9860_RFCTL19 = 391184384, + SC9860_RFCTL2 = 393281536, + SC9860_EXTINT5 = 395378688, + SC9860_EXTINT6 = 397475840, + SC9860_EXTINT7 = 399572992, + SC9860_GPIO30 = 401670144, + SC9860_GPIO31 = 403767296, + SC9860_GPIO32 = 405864448, + SC9860_GPIO33 = 407961600, + SC9860_GPIO34 = 410058752, + SC9860_RFCTL3 = 412155904, + SC9860_RFCTL4 = 414253056, + SC9860_RFCTL5 = 416350208, + SC9860_RFCTL6 = 418447360, + SC9860_RFCTL7 = 420544512, + SC9860_RFCTL8 = 422641664, + SC9860_RFCTL9 = 424738816, + SC9860_RFFE0_SCK0 = 426835968, + SC9860_GPIO38 = 428933120, + SC9860_RFFE0_SDA0 = 431030272, + SC9860_GPIO39 = 433127424, + SC9860_RFFE1_SCK0 = 435224576, + SC9860_GPIO181 = 437321728, + SC9860_RFFE1_SDA0 = 439418880, + SC9860_GPIO182 = 441516032, + SC9860_RF_LVDS0_ADC_ON = 443613184, + SC9860_RF_LVDS0_DAC_ON = 445710336, + SC9860_RFSCK0 = 447807488, + SC9860_RFSDA0 = 449904640, + SC9860_RFSEN0 = 452001792, + SC9860_RF_LVDS1_ADC_ON = 454098944, + SC9860_RF_LVDS1_DAC_ON = 456196096, + SC9860_RFSCK1 = 458293248, + SC9860_RFSDA1 = 460390400, + SC9860_RFSEN1 = 462487552, + SC9860_RFCTL38 = 464584704, + SC9860_RFCTL39 = 466681856, + SC9860_RFCTL20_MISC = 86114304, + SC9860_RFCTL21_MISC = 88211456, + SC9860_RFCTL30_MISC = 90308608, + SC9860_RFCTL31_MISC = 92405760, + SC9860_RFCTL32_MISC = 94502912, + SC9860_RFCTL33_MISC = 96600064, + SC9860_RFCTL34_MISC = 98697216, + SC9860_RFCTL35_MISC = 100794368, + SC9860_RFCTL36_MISC = 102891520, + SC9860_RFCTL37_MISC = 104988672, + SC9860_RFCTL22_MISC = 107085824, + SC9860_RFCTL23_MISC = 109182976, + SC9860_RFCTL24_MISC = 111280128, + SC9860_RFCTL25_MISC = 113377280, + SC9860_RFCTL26_MISC = 115474432, + SC9860_RFCTL27_MISC = 117571584, + SC9860_RFCTL28_MISC = 119668736, + SC9860_RFCTL29_MISC = 121765888, + SC9860_SCL2_MISC = 123863040, + SC9860_SDA2_MISC = 125960192, + SC9860_MTCK_ARM_MISC = 128057344, + SC9860_MTMS_ARM_MISC = 130154496, + SC9860_XTL_EN0_MISC = 132251648, + SC9860_PTEST_MISC = 134348800, + SC9860_AUD_DAD1_MISC = 136445952, + SC9860_AUD_ADD0_MISC = 138543104, + SC9860_AUD_ADSYNC_MISC = 140640256, + SC9860_AUD_SCLK_MISC = 142737408, + SC9860_CHIP_SLEEP_MISC = 144834560, + SC9860_CLK_32K_MISC = 146931712, + SC9860_DCDC_ARM_EN_MISC = 149028864, + SC9860_EXT_RST_B_MISC = 151126016, + SC9860_ADI_D_MISC = 153223168, + SC9860_ADI_SCLK_MISC = 155320320, + SC9860_XTL_EN1_MISC = 157417472, + SC9860_ANA_INT_MISC = 159514624, + SC9860_AUD_DAD0_MISC = 161611776, + SC9860_AUD_DASYNC_MISC = 163708928, + SC9860_LCM_RSTN_MISC = 165806080, + SC9860_DSI_TE_MISC = 167903232, + SC9860_PWMA_MISC = 170000384, + SC9860_EXTINT0_MISC = 172097536, + SC9860_EXTINT1_MISC = 174194688, + SC9860_SDA1_MISC = 176291840, + SC9860_SCL1_MISC = 178388992, + SC9860_SIMCLK2_MISC = 180486144, + SC9860_SIMDA2_MISC = 182583296, + SC9860_SIMRST2_MISC = 184680448, + SC9860_SIMCLK1_MISC = 186777600, + SC9860_SIMDA1_MISC = 188874752, + SC9860_SIMRST1_MISC = 190971904, + SC9860_SIMCLK0_MISC = 193069056, + SC9860_SIMDA0_MISC = 195166208, + SC9860_SIMRST0_MISC = 197263360, + SC9860_SD2_CMD_MISC = 199360512, + SC9860_SD2_D0_MISC = 201457664, + SC9860_SD2_D1_MISC = 203554816, + SC9860_SD2_CLK_MISC = 205651968, + SC9860_SD2_D2_MISC = 207749120, + SC9860_SD2_D3_MISC = 209846272, + SC9860_SD0_D3_MISC = 211943424, + SC9860_SD0_D2_MISC = 214040576, + SC9860_SD0_CMD_MISC = 216137728, + SC9860_SD0_D0_MISC = 218234880, + SC9860_SD0_D1_MISC = 220332032, + SC9860_SD0_CLK_MISC = 222429184, + SC9860_EMMC_CMD_reserved_MISC = 224526336, + SC9860_EMMC_CMD_MISC = 226623488, + SC9860_EMMC_D6_MISC = 228720640, + SC9860_EMMC_D7_MISC = 230817792, + SC9860_EMMC_CLK_MISC = 232914944, + SC9860_EMMC_D5_MISC = 235012096, + SC9860_EMMC_D4_MISC = 237109248, + SC9860_EMMC_DS_MISC = 239206400, + SC9860_EMMC_D3_reserved_MISC = 241303552, + SC9860_EMMC_D3_MISC = 243400704, + SC9860_EMMC_RST_MISC = 245497856, + SC9860_EMMC_D1_MISC = 247595008, + SC9860_EMMC_D2_MISC = 249692160, + SC9860_EMMC_D0_MISC = 251789312, + SC9860_IIS0DI_MISC = 253886464, + SC9860_IIS0DO_MISC = 255983616, + SC9860_IIS0CLK_MISC = 258080768, + SC9860_IIS0LRCK_MISC = 260177920, + SC9860_SD1_CLK_MISC = 262275072, + SC9860_SD1_CMD_MISC = 264372224, + SC9860_SD1_D0_MISC = 266469376, + SC9860_SD1_D1_MISC = 268566528, + SC9860_SD1_D2_MISC = 270663680, + SC9860_SD1_D3_MISC = 272760832, + SC9860_CLK_AUX0_MISC = 274857984, + SC9860_WIFI_COEXIST_MISC = 276955136, + SC9860_BEIDOU_COEXIST_MISC = 279052288, + SC9860_U3TXD_MISC = 281149440, + SC9860_U3RXD_MISC = 283246592, + SC9860_U3CTS_MISC = 285343744, + SC9860_U3RTS_MISC = 287440896, + SC9860_U0TXD_MISC = 289538048, + SC9860_U0RXD_MISC = 291635200, + SC9860_U0CTS_MISC = 293732352, + SC9860_U0RTS_MISC = 295829504, + SC9860_IIS1DI_MISC = 297926656, + SC9860_IIS1DO_MISC = 300023808, + SC9860_IIS1CLK_MISC = 302120960, + SC9860_IIS1LRCK_MISC = 304218112, + SC9860_SPI0_CSN_MISC = 306315264, + SC9860_SPI0_DO_MISC = 308412416, + SC9860_SPI0_DI_MISC = 310509568, + SC9860_SPI0_CLK_MISC = 312606720, + SC9860_U2TXD_MISC = 314703872, + SC9860_U2RXD_MISC = 316801024, + SC9860_U4TXD_MISC = 318898176, + SC9860_U4RXD_MISC = 320995328, + SC9860_CMMCLK1_MISC = 323092480, + SC9860_CMRST1_MISC = 325189632, + SC9860_CMMCLK0_MISC = 327286784, + SC9860_CMRST0_MISC = 329383936, + SC9860_CMPD0_MISC = 331481088, + SC9860_CMPD1_MISC = 333578240, + SC9860_SCL0_MISC = 335675392, + SC9860_SDA0_MISC = 337772544, + SC9860_SDA6_MISC = 339869696, + SC9860_SCL6_MISC = 341966848, + SC9860_U1TXD_MISC = 344064000, + SC9860_U1RXD_MISC = 346161152, + SC9860_KEYOUT0_MISC = 348258304, + SC9860_KEYOUT1_MISC = 350355456, + SC9860_KEYOUT2_MISC = 352452608, + SC9860_KEYIN0_MISC = 354549760, + SC9860_KEYIN1_MISC = 356646912, + SC9860_KEYIN2_MISC = 358744064, + SC9860_IIS3DI_MISC = 360841216, + SC9860_IIS3DO_MISC = 362938368, + SC9860_IIS3CLK_MISC = 365035520, + SC9860_IIS3LRCK_MISC = 367132672, + SC9860_RFCTL0_MISC = 369229824, + SC9860_RFCTL1_MISC = 371326976, + SC9860_RFCTL10_MISC = 373424128, + SC9860_RFCTL11_MISC = 375521280, + SC9860_RFCTL12_MISC = 377618432, + SC9860_RFCTL13_MISC = 379715584, + SC9860_RFCTL14_MISC = 381812736, + SC9860_RFCTL15_MISC = 383909888, + SC9860_RFCTL16_MISC = 386007040, + SC9860_RFCTL17_MISC = 388104192, + SC9860_RFCTL18_MISC = 390201344, + SC9860_RFCTL19_MISC = 392298496, + SC9860_RFCTL2_MISC = 394395648, + SC9860_EXTINT5_MISC = 396492800, + SC9860_EXTINT6_MISC = 398589952, + SC9860_EXTINT7_MISC = 400687104, + SC9860_GPIO30_MISC = 402784256, + SC9860_GPIO31_MISC = 404881408, + SC9860_GPIO32_MISC = 406978560, + SC9860_GPIO33_MISC = 409075712, + SC9860_GPIO34_MISC = 411172864, + SC9860_RFCTL3_MISC = 413270016, + SC9860_RFCTL4_MISC = 415367168, + SC9860_RFCTL5_MISC = 417464320, + SC9860_RFCTL6_MISC = 419561472, + SC9860_RFCTL7_MISC = 421658624, + SC9860_RFCTL8_MISC = 423755776, + SC9860_RFCTL9_MISC = 425852928, + SC9860_RFFE0_SCK0_MISC = 427950080, + SC9860_GPIO38_MISC = 430047232, + SC9860_RFFE0_SDA0_MISC = 432144384, + SC9860_GPIO39_MISC = 434241536, + SC9860_RFFE1_SCK0_MISC = 436338688, + SC9860_GPIO181_MISC = 438435840, + SC9860_RFFE1_SDA0_MISC = 440532992, + SC9860_GPIO182_MISC = 442630144, + SC9860_RF_LVDS0_ADC_ON_MISC = 444727296, + SC9860_RF_LVDS0_DAC_ON_MISC = 446824448, + SC9860_RFSCK0_MISC = 448921600, + SC9860_RFSDA0_MISC = 451018752, + SC9860_RFSEN0_MISC = 453115904, + SC9860_RF_LVDS1_ADC_ON_MISC = 455213056, + SC9860_RF_LVDS1_DAC_ON_MISC = 457310208, + SC9860_RFSCK1_MISC = 459407360, + SC9860_RFSDA1_MISC = 461504512, + SC9860_RFSEN1_MISC = 463601664, + SC9860_RFCTL38_MISC = 465698816, + SC9860_RFCTL39_MISC = 467795968, +}; + +enum squashfs_param { + Opt_errors___3 = 0, + Opt_threads = 1, +}; + +enum stat_group { + STAT_READ = 0, + STAT_WRITE = 1, + STAT_DISCARD = 2, + STAT_FLUSH = 3, + NR_STAT_GROUPS = 4, +}; + +enum stat_item { + ALLOC_FASTPATH = 0, + ALLOC_SLOWPATH = 1, + FREE_FASTPATH = 2, + FREE_SLOWPATH = 3, + FREE_FROZEN = 4, + FREE_ADD_PARTIAL = 5, + FREE_REMOVE_PARTIAL = 6, + ALLOC_FROM_PARTIAL = 7, + ALLOC_SLAB = 8, + ALLOC_REFILL = 9, + ALLOC_NODE_MISMATCH = 10, + FREE_SLAB = 11, + CPUSLAB_FLUSH = 12, + DEACTIVATE_FULL = 13, + DEACTIVATE_EMPTY = 14, + DEACTIVATE_TO_HEAD = 15, + DEACTIVATE_TO_TAIL = 16, + DEACTIVATE_REMOTE_FREES = 17, + DEACTIVATE_BYPASS = 18, + ORDER_FALLBACK = 19, + CMPXCHG_DOUBLE_CPU_FAIL = 20, + CMPXCHG_DOUBLE_FAIL = 21, + CPU_PARTIAL_ALLOC = 22, + CPU_PARTIAL_FREE = 23, + CPU_PARTIAL_NODE = 24, + CPU_PARTIAL_DRAIN = 25, + NR_SLUB_STAT_ITEMS = 26, +}; + +enum state { + Start = 0, + Collect = 1, + GotHeader = 2, + SkipIt = 3, + GotName = 4, + CopyFile = 5, + GotSymlink = 6, + Reset = 7, +}; + +enum states_wwnr { + not_running_wwnr = 0, + running_wwnr = 1, + state_max_wwnr = 2, +}; + +enum stm32_dma_burst_size { + STM32_DMA_BURST_SINGLE = 0, + STM32_DMA_BURST_INCR4 = 1, + STM32_DMA_BURST_INCR8 = 2, + STM32_DMA_BURST_INCR16 = 3, +}; + +enum stm32_dma_width { + STM32_DMA_BYTE = 0, + STM32_DMA_HALF_WORD = 1, + STM32_DMA_WORD = 2, +}; + +enum stm32_mdma_inc_mode { + STM32_MDMA_FIXED = 0, + STM32_MDMA_INC = 2, + STM32_MDMA_DEC = 3, +}; + +enum stm32_mdma_trigger_mode { + STM32_MDMA_BUFFER = 0, + STM32_MDMA_BLOCK = 1, + STM32_MDMA_BLOCK_REP = 2, + STM32_MDMA_LINKED_LIST = 3, +}; + +enum stmpe_block { + STMPE_BLOCK_GPIO = 1, + STMPE_BLOCK_KEYPAD = 2, + STMPE_BLOCK_TOUCHSCREEN = 4, + STMPE_BLOCK_ADC = 8, + STMPE_BLOCK_PWM = 16, + STMPE_BLOCK_ROTATOR = 32, +}; + +enum stmpe_partnum { + STMPE610 = 0, + STMPE801 = 1, + STMPE811 = 2, + STMPE1600 = 3, + STMPE1601 = 4, + STMPE1801 = 5, + STMPE2401 = 6, + STMPE2403 = 7, + STMPE_NBR_PARTS = 8, +}; + +enum store_type { + wr_invalid = 0, + wr_new_root = 1, + wr_store_root = 2, + wr_exact_fit = 3, + wr_spanning_store = 4, + wr_split_store = 5, + wr_rebalance = 6, + wr_append = 7, + wr_node_store = 8, + wr_slot_store = 9, +}; + +enum string_size_units { + STRING_UNITS_10 = 0, + STRING_UNITS_2 = 1, + STRING_UNITS_MASK = 1, + STRING_UNITS_NO_SPACE = 1073741824, + STRING_UNITS_NO_BYTES = 2147483648, +}; + +enum subpixel_order { + SubPixelUnknown = 0, + SubPixelHorizontalRGB = 1, + SubPixelHorizontalBGR = 2, + SubPixelVerticalRGB = 3, + SubPixelVerticalBGR = 4, + SubPixelNone = 5, +}; + +enum sum_check_bits { + SUM_CHECK_P = 0, + SUM_CHECK_Q = 1, +}; + +enum sum_check_flags { + SUM_CHECK_P_RESULT = 1, + SUM_CHECK_Q_RESULT = 2, +}; + +enum sun50i_iommu_aci { + SUN50I_IOMMU_ACI_DO_NOT_USE = 0, + SUN50I_IOMMU_ACI_NONE = 1, + SUN50I_IOMMU_ACI_RD = 2, + SUN50I_IOMMU_ACI_WR = 3, + SUN50I_IOMMU_ACI_RD_WR = 4, +}; + +enum sunxi_desc_bias_voltage { + BIAS_VOLTAGE_NONE = 0, + BIAS_VOLTAGE_GRP_CONFIG = 1, + BIAS_VOLTAGE_PIO_POW_MODE_SEL = 2, + BIAS_VOLTAGE_PIO_POW_MODE_CTL = 3, +}; + +enum support_mode { + ALLOW_LEGACY = 0, + DENY_LEGACY = 1, +}; + +enum suspend_mode { + PRESUSPEND = 0, + PRESUSPEND_UNDO = 1, + POSTSUSPEND = 2, +}; + +enum suspend_stat_step { + SUSPEND_WORKING = 0, + SUSPEND_FREEZE = 1, + SUSPEND_PREPARE = 2, + SUSPEND_SUSPEND = 3, + SUSPEND_SUSPEND_LATE = 4, + SUSPEND_SUSPEND_NOIRQ = 5, + SUSPEND_RESUME_NOIRQ = 6, + SUSPEND_RESUME_EARLY = 7, + SUSPEND_RESUME = 8, +}; + +enum svc_auth_status { + SVC_GARBAGE = 1, + SVC_SYSERR = 2, + SVC_VALID = 3, + SVC_NEGATIVE = 4, + SVC_OK = 5, + SVC_DROP = 6, + SVC_CLOSE = 7, + SVC_DENIED = 8, + SVC_PENDING = 9, + SVC_COMPLETE = 10, +}; + +enum sw_activity { + OFF___3 = 0, + BLINK_ON = 1, + BLINK_OFF = 2, +}; + +enum swap_cluster_flags { + CLUSTER_FLAG_NONE = 0, + CLUSTER_FLAG_FREE = 1, + CLUSTER_FLAG_NONFULL = 2, + CLUSTER_FLAG_FRAG = 3, + CLUSTER_FLAG_USABLE = 3, + CLUSTER_FLAG_FULL = 4, + CLUSTER_FLAG_DISCARD = 5, + CLUSTER_FLAG_MAX = 6, +}; + +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 switchdev_attr_id { + SWITCHDEV_ATTR_ID_UNDEFINED = 0, + SWITCHDEV_ATTR_ID_PORT_STP_STATE = 1, + SWITCHDEV_ATTR_ID_PORT_MST_STATE = 2, + SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS = 3, + SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS = 4, + SWITCHDEV_ATTR_ID_PORT_MROUTER = 5, + SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME = 6, + SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING = 7, + SWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL = 8, + SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED = 9, + SWITCHDEV_ATTR_ID_BRIDGE_MROUTER = 10, + SWITCHDEV_ATTR_ID_BRIDGE_MST = 11, + SWITCHDEV_ATTR_ID_MRP_PORT_ROLE = 12, + SWITCHDEV_ATTR_ID_VLAN_MSTI = 13, +}; + +enum switchdev_notifier_type { + SWITCHDEV_FDB_ADD_TO_BRIDGE = 1, + SWITCHDEV_FDB_DEL_TO_BRIDGE = 2, + SWITCHDEV_FDB_ADD_TO_DEVICE = 3, + SWITCHDEV_FDB_DEL_TO_DEVICE = 4, + SWITCHDEV_FDB_OFFLOADED = 5, + SWITCHDEV_FDB_FLUSH_TO_BRIDGE = 6, + SWITCHDEV_PORT_OBJ_ADD = 7, + SWITCHDEV_PORT_OBJ_DEL = 8, + SWITCHDEV_PORT_ATTR_SET = 9, + SWITCHDEV_VXLAN_FDB_ADD_TO_BRIDGE = 10, + SWITCHDEV_VXLAN_FDB_DEL_TO_BRIDGE = 11, + SWITCHDEV_VXLAN_FDB_ADD_TO_DEVICE = 12, + SWITCHDEV_VXLAN_FDB_DEL_TO_DEVICE = 13, + SWITCHDEV_VXLAN_FDB_OFFLOADED = 14, + SWITCHDEV_BRPORT_OFFLOADED = 15, + SWITCHDEV_BRPORT_UNOFFLOADED = 16, + SWITCHDEV_BRPORT_REPLAY = 17, +}; + +enum switchdev_obj_id { + SWITCHDEV_OBJ_ID_UNDEFINED = 0, + SWITCHDEV_OBJ_ID_PORT_VLAN = 1, + SWITCHDEV_OBJ_ID_PORT_MDB = 2, + SWITCHDEV_OBJ_ID_HOST_MDB = 3, + SWITCHDEV_OBJ_ID_MRP = 4, + SWITCHDEV_OBJ_ID_RING_TEST_MRP = 5, + SWITCHDEV_OBJ_ID_RING_ROLE_MRP = 6, + SWITCHDEV_OBJ_ID_RING_STATE_MRP = 7, + SWITCHDEV_OBJ_ID_IN_TEST_MRP = 8, + SWITCHDEV_OBJ_ID_IN_ROLE_MRP = 9, + SWITCHDEV_OBJ_ID_IN_STATE_MRP = 10, +}; + +enum sync_action { + ACTION_RESYNC = 0, + ACTION_RECOVER = 1, + ACTION_CHECK = 2, + ACTION_REPAIR = 3, + ACTION_RESHAPE = 4, + ACTION_FROZEN = 5, + ACTION_IDLE = 6, + NR_SYNC_ACTIONS = 7, +}; + +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, +}; + +enum sysc_clocks { + SYSC_FCK = 0, + SYSC_ICK = 1, + SYSC_OPTFCK0 = 2, + SYSC_OPTFCK1 = 3, + SYSC_OPTFCK2 = 4, + SYSC_OPTFCK3 = 5, + SYSC_OPTFCK4 = 6, + SYSC_OPTFCK5 = 7, + SYSC_OPTFCK6 = 8, + SYSC_OPTFCK7 = 9, + SYSC_MAX_CLOCKS = 10, +}; + +enum sysc_registers { + SYSC_REVISION = 0, + SYSC_SYSCONFIG = 1, + SYSC_SYSSTATUS = 2, + SYSC_MAX_REGS = 3, +}; + +enum sysc_soc { + SOC_UNKNOWN = 0, + SOC_2420 = 1, + SOC_2430 = 2, + SOC_3430 = 3, + SOC_AM35 = 4, + SOC_3630 = 5, + SOC_4430 = 6, + SOC_4460 = 7, + SOC_4470 = 8, + SOC_5430 = 9, + SOC_AM3 = 10, + SOC_AM4 = 11, + SOC_DRA7 = 12, +}; + +enum sysctl_writes_mode { + SYSCTL_WRITES_LEGACY = -1, + SYSCTL_WRITES_WARN = 0, + SYSCTL_WRITES_STRICT = 1, +}; + +enum system_states { + SYSTEM_BOOTING = 0, + SYSTEM_SCHEDULING = 1, + SYSTEM_FREEING_INITMEM = 2, + SYSTEM_RUNNING = 3, + SYSTEM_HALT = 4, + SYSTEM_POWER_OFF = 5, + SYSTEM_RESTART = 6, + SYSTEM_SUSPEND = 7, +}; + +enum t10_dif_type { + T10_PI_TYPE0_PROTECTION = 0, + T10_PI_TYPE1_PROTECTION = 1, + T10_PI_TYPE2_PROTECTION = 2, + T10_PI_TYPE3_PROTECTION = 3, +}; + +enum tap_delay_type { + PM_TAPDELAY_INPUT = 0, + PM_TAPDELAY_OUTPUT = 1, +}; + +enum task_work_notify_mode { + TWA_NONE = 0, + TWA_RESUME = 1, + TWA_SIGNAL = 2, + TWA_SIGNAL_NO_IPI = 3, + TWA_NMI_CURRENT = 4, +}; + +enum tc3589x_version { + TC3589X_TC35890 = 0, + TC3589X_TC35892 = 1, + TC3589X_TC35893 = 2, + TC3589X_TC35894 = 3, + TC3589X_TC35895 = 4, + TC3589X_TC35896 = 5, + TC3589X_UNKNOWN = 6, +}; + +enum tc_fifo_command { + TC_FIFO_REPLACE = 0, + TC_FIFO_DESTROY = 1, + TC_FIFO_STATS = 2, +}; + +enum tc_link_layer { + TC_LINKLAYER_UNAWARE = 0, + TC_LINKLAYER_ETHERNET = 1, + TC_LINKLAYER_ATM = 2, +}; + +enum tc_mq_command { + TC_MQ_CREATE = 0, + TC_MQ_DESTROY = 1, + TC_MQ_STATS = 2, + TC_MQ_GRAFT = 3, +}; + +enum tc_root_command { + TC_ROOT_GRAFT = 0, +}; + +enum tc_setup_type { + TC_QUERY_CAPS = 0, + TC_SETUP_QDISC_MQPRIO = 1, + TC_SETUP_CLSU32 = 2, + TC_SETUP_CLSFLOWER = 3, + TC_SETUP_CLSMATCHALL = 4, + TC_SETUP_CLSBPF = 5, + TC_SETUP_BLOCK = 6, + TC_SETUP_QDISC_CBS = 7, + TC_SETUP_QDISC_RED = 8, + TC_SETUP_QDISC_PRIO = 9, + TC_SETUP_QDISC_MQ = 10, + TC_SETUP_QDISC_ETF = 11, + TC_SETUP_ROOT_QDISC = 12, + TC_SETUP_QDISC_GRED = 13, + TC_SETUP_QDISC_TAPRIO = 14, + TC_SETUP_FT = 15, + TC_SETUP_QDISC_ETS = 16, + TC_SETUP_QDISC_TBF = 17, + TC_SETUP_QDISC_FIFO = 18, + TC_SETUP_QDISC_HTB = 19, + TC_SETUP_ACT = 20, +}; + +enum tca_id { + TCA_ID_UNSPEC = 0, + TCA_ID_POLICE = 1, + TCA_ID_GACT = 5, + TCA_ID_IPT = 6, + TCA_ID_PEDIT = 7, + TCA_ID_MIRRED = 8, + TCA_ID_NAT = 9, + TCA_ID_XT = 10, + TCA_ID_SKBEDIT = 11, + TCA_ID_VLAN = 12, + TCA_ID_BPF = 13, + TCA_ID_CONNMARK = 14, + TCA_ID_SKBMOD = 15, + TCA_ID_CSUM = 16, + TCA_ID_TUNNEL_KEY = 17, + TCA_ID_SIMP = 22, + TCA_ID_IFE = 25, + TCA_ID_SAMPLE = 26, + TCA_ID_CTINFO = 27, + TCA_ID_MPLS = 28, + TCA_ID_CT = 29, + TCA_ID_GATE = 30, + __TCA_ID_MAX = 255, +}; + +enum tcf_proto_ops_flags { + TCF_PROTO_OPS_DOIT_UNLOCKED = 1, +}; + +enum tcp_ca_ack_event_flags { + CA_ACK_SLOWPATH = 1, + CA_ACK_WIN_UPDATE = 2, + CA_ACK_ECE = 4, +}; + +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, +}; + +enum tcp_ca_state { + TCP_CA_Open = 0, + TCP_CA_Disorder = 1, + TCP_CA_CWR = 2, + TCP_CA_Recovery = 3, + TCP_CA_Loss = 4, +}; + +enum tcp_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_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 tcp_fastopen_client_fail { + TFO_STATUS_UNSPEC = 0, + TFO_COOKIE_UNAVAILABLE = 1, + TFO_DATA_NOT_ACKED = 2, + TFO_SYN_RETRANSMITTED = 3, +}; + +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_queue { + TCP_FRAG_IN_WRITE_QUEUE = 0, + TCP_FRAG_IN_RTX_QUEUE = 1, +}; + +enum tcp_seq_states { + TCP_SEQ_STATE_LISTENING = 0, + TCP_SEQ_STATE_ESTABLISHED = 1, +}; + +enum tcp_skb_cb_sacked_flags { + TCPCB_SACKED_ACKED = 1, + TCPCB_SACKED_RETRANS = 2, + TCPCB_LOST = 4, + TCPCB_TAGBITS = 7, + TCPCB_REPAIRED = 16, + TCPCB_EVER_RETRANS = 128, + TCPCB_RETRANS = 146, +}; + +enum tcp_synack_type { + TCP_SYNACK_NORMAL = 0, + TCP_SYNACK_FASTOPEN = 1, + TCP_SYNACK_COOKIE = 2, +}; + +enum tcp_tw_status { + TCP_TW_SUCCESS = 0, + TCP_TW_RST = 1, + TCP_TW_ACK = 2, + TCP_TW_SYN = 3, +}; + +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, +}; + +enum tcx_action_base { + TCX_NEXT = -1, + TCX_PASS = 0, + TCX_DROP = 2, + TCX_REDIRECT = 7, +}; + +enum tdm_framer_t { + TDM_FRAMER_T1 = 0, + TDM_FRAMER_E1 = 1, +}; + +enum tdm_mode_t { + TDM_INTERNAL_LOOPBACK = 0, + TDM_NORMAL = 1, +}; + +enum tegra124_function { + TEGRA124_FUNC_SNPS = 0, + TEGRA124_FUNC_XUSB = 1, + TEGRA124_FUNC_UART = 2, + TEGRA124_FUNC_PCIE = 3, + TEGRA124_FUNC_USB3 = 4, + TEGRA124_FUNC_SATA = 5, + TEGRA124_FUNC_RSVD = 6, +}; + +enum tegra210_emc_refresh { + TEGRA210_EMC_REFRESH_NOMINAL = 0, + TEGRA210_EMC_REFRESH_2X = 1, + TEGRA210_EMC_REFRESH_4X = 2, + TEGRA210_EMC_REFRESH_THROTTLE = 3, +}; + +enum tegra234_cbb_fabric_ids { + CBB_FAB_ID = 0, + SCE_FAB_ID = 1, + RCE_FAB_ID = 2, + DCE_FAB_ID = 3, + AON_FAB_ID = 4, + PSC_FAB_ID = 5, + BPMP_FAB_ID = 6, + FSI_FAB_ID = 7, + MAX_FAB_ID = 8, +}; + +enum tegra_dfll_pmu_if { + TEGRA_DFLL_PMU_I2C = 0, + TEGRA_DFLL_PMU_PWM = 1, +}; + +enum tegra_icc_client_type { + TEGRA_ICC_NONE = 0, + TEGRA_ICC_NISO = 1, + TEGRA_ICC_ISO_DISPLAY = 2, + TEGRA_ICC_ISO_VI = 3, + TEGRA_ICC_ISO_AUDIO = 4, + TEGRA_ICC_ISO_VIFAL = 5, +}; + +enum tegra_io_pad { + TEGRA_IO_PAD_AUDIO = 0, + TEGRA_IO_PAD_AUDIO_HV = 1, + TEGRA_IO_PAD_BB = 2, + TEGRA_IO_PAD_CAM = 3, + TEGRA_IO_PAD_COMP = 4, + TEGRA_IO_PAD_CONN = 5, + TEGRA_IO_PAD_CSIA = 6, + TEGRA_IO_PAD_CSIB = 7, + TEGRA_IO_PAD_CSIC = 8, + TEGRA_IO_PAD_CSID = 9, + TEGRA_IO_PAD_CSIE = 10, + TEGRA_IO_PAD_CSIF = 11, + TEGRA_IO_PAD_CSIG = 12, + TEGRA_IO_PAD_CSIH = 13, + TEGRA_IO_PAD_DAP3 = 14, + TEGRA_IO_PAD_DAP5 = 15, + TEGRA_IO_PAD_DBG = 16, + TEGRA_IO_PAD_DEBUG_NONAO = 17, + TEGRA_IO_PAD_DMIC = 18, + TEGRA_IO_PAD_DMIC_HV = 19, + TEGRA_IO_PAD_DP = 20, + TEGRA_IO_PAD_DSI = 21, + TEGRA_IO_PAD_DSIB = 22, + TEGRA_IO_PAD_DSIC = 23, + TEGRA_IO_PAD_DSID = 24, + TEGRA_IO_PAD_EDP = 25, + TEGRA_IO_PAD_EMMC = 26, + TEGRA_IO_PAD_EMMC2 = 27, + TEGRA_IO_PAD_EQOS = 28, + TEGRA_IO_PAD_GPIO = 29, + TEGRA_IO_PAD_GP_PWM2 = 30, + TEGRA_IO_PAD_GP_PWM3 = 31, + TEGRA_IO_PAD_HDMI = 32, + TEGRA_IO_PAD_HDMI_DP0 = 33, + TEGRA_IO_PAD_HDMI_DP1 = 34, + TEGRA_IO_PAD_HDMI_DP2 = 35, + TEGRA_IO_PAD_HDMI_DP3 = 36, + TEGRA_IO_PAD_HSIC = 37, + TEGRA_IO_PAD_HV = 38, + TEGRA_IO_PAD_LVDS = 39, + TEGRA_IO_PAD_MIPI_BIAS = 40, + TEGRA_IO_PAD_NAND = 41, + TEGRA_IO_PAD_PEX_BIAS = 42, + TEGRA_IO_PAD_PEX_CLK_BIAS = 43, + TEGRA_IO_PAD_PEX_CLK1 = 44, + TEGRA_IO_PAD_PEX_CLK2 = 45, + TEGRA_IO_PAD_PEX_CLK3 = 46, + TEGRA_IO_PAD_PEX_CLK_2_BIAS = 47, + TEGRA_IO_PAD_PEX_CLK_2 = 48, + TEGRA_IO_PAD_PEX_CNTRL = 49, + TEGRA_IO_PAD_PEX_CTL2 = 50, + TEGRA_IO_PAD_PEX_L0_RST = 51, + TEGRA_IO_PAD_PEX_L1_RST = 52, + TEGRA_IO_PAD_PEX_L5_RST = 53, + TEGRA_IO_PAD_PWR_CTL = 54, + TEGRA_IO_PAD_SDMMC1 = 55, + TEGRA_IO_PAD_SDMMC1_HV = 56, + TEGRA_IO_PAD_SDMMC2 = 57, + TEGRA_IO_PAD_SDMMC2_HV = 58, + TEGRA_IO_PAD_SDMMC3 = 59, + TEGRA_IO_PAD_SDMMC3_HV = 60, + TEGRA_IO_PAD_SDMMC4 = 61, + TEGRA_IO_PAD_SOC_GPIO10 = 62, + TEGRA_IO_PAD_SOC_GPIO12 = 63, + TEGRA_IO_PAD_SOC_GPIO13 = 64, + TEGRA_IO_PAD_SOC_GPIO53 = 65, + TEGRA_IO_PAD_SPI = 66, + TEGRA_IO_PAD_SPI_HV = 67, + TEGRA_IO_PAD_SYS_DDC = 68, + TEGRA_IO_PAD_UART = 69, + TEGRA_IO_PAD_UART4 = 70, + TEGRA_IO_PAD_UART5 = 71, + TEGRA_IO_PAD_UFS = 72, + TEGRA_IO_PAD_USB0 = 73, + TEGRA_IO_PAD_USB1 = 74, + TEGRA_IO_PAD_USB2 = 75, + TEGRA_IO_PAD_USB3 = 76, + TEGRA_IO_PAD_USB_BIAS = 77, + TEGRA_IO_PAD_AO_HV = 78, +}; + +enum tegra_ivc_state { + TEGRA_IVC_STATE_ESTABLISHED = 0, + TEGRA_IVC_STATE_SYNC = 1, + TEGRA_IVC_STATE_ACK = 2, +}; + +enum tegra_mux { + TEGRA_MUX_AUD = 0, + TEGRA_MUX_BCL = 1, + TEGRA_MUX_BLINK = 2, + TEGRA_MUX_CCLA = 3, + TEGRA_MUX_CEC = 4, + TEGRA_MUX_CLDVFS = 5, + TEGRA_MUX_CLK = 6, + TEGRA_MUX_CORE = 7, + TEGRA_MUX_CPU = 8, + TEGRA_MUX_DISPLAYA = 9, + TEGRA_MUX_DISPLAYB = 10, + TEGRA_MUX_DMIC1 = 11, + TEGRA_MUX_DMIC2 = 12, + TEGRA_MUX_DMIC3 = 13, + TEGRA_MUX_DP = 14, + TEGRA_MUX_DTV = 15, + TEGRA_MUX_EXTPERIPH3 = 16, + TEGRA_MUX_I2C1 = 17, + TEGRA_MUX_I2C2 = 18, + TEGRA_MUX_I2C3 = 19, + TEGRA_MUX_I2CPMU = 20, + TEGRA_MUX_I2CVI = 21, + TEGRA_MUX_I2S1 = 22, + TEGRA_MUX_I2S2 = 23, + TEGRA_MUX_I2S3 = 24, + TEGRA_MUX_I2S4A = 25, + TEGRA_MUX_I2S4B = 26, + TEGRA_MUX_I2S5A = 27, + TEGRA_MUX_I2S5B = 28, + TEGRA_MUX_IQC0 = 29, + TEGRA_MUX_IQC1 = 30, + TEGRA_MUX_JTAG = 31, + TEGRA_MUX_PE = 32, + TEGRA_MUX_PE0 = 33, + TEGRA_MUX_PE1 = 34, + TEGRA_MUX_PMI = 35, + TEGRA_MUX_PWM0 = 36, + TEGRA_MUX_PWM1 = 37, + TEGRA_MUX_PWM2 = 38, + TEGRA_MUX_PWM3 = 39, + TEGRA_MUX_QSPI = 40, + TEGRA_MUX_RSVD0 = 41, + TEGRA_MUX_RSVD1 = 42, + TEGRA_MUX_RSVD2 = 43, + TEGRA_MUX_RSVD3 = 44, + TEGRA_MUX_SATA = 45, + TEGRA_MUX_SDMMC1 = 46, + TEGRA_MUX_SDMMC3 = 47, + TEGRA_MUX_SHUTDOWN = 48, + TEGRA_MUX_SOC = 49, + TEGRA_MUX_SOR0 = 50, + TEGRA_MUX_SOR1 = 51, + TEGRA_MUX_SPDIF = 52, + TEGRA_MUX_SPI1 = 53, + TEGRA_MUX_SPI2 = 54, + TEGRA_MUX_SPI3 = 55, + TEGRA_MUX_SPI4 = 56, + TEGRA_MUX_SYS = 57, + TEGRA_MUX_TOUCH = 58, + TEGRA_MUX_UART = 59, + TEGRA_MUX_UARTA = 60, + TEGRA_MUX_UARTB = 61, + TEGRA_MUX_UARTC = 62, + TEGRA_MUX_UARTD = 63, + TEGRA_MUX_USB = 64, + TEGRA_MUX_VGP1 = 65, + TEGRA_MUX_VGP2 = 66, + TEGRA_MUX_VGP3 = 67, + TEGRA_MUX_VGP4 = 68, + TEGRA_MUX_VGP5 = 69, + TEGRA_MUX_VGP6 = 70, + TEGRA_MUX_VIMCLK = 71, + TEGRA_MUX_VIMCLK2 = 72, +}; + +enum tegra_mux___2 { + TEGRA_MUX_BLINK___2 = 0, + TEGRA_MUX_CCLA___2 = 1, + TEGRA_MUX_CEC___2 = 2, + TEGRA_MUX_CLDVFS___2 = 3, + TEGRA_MUX_CLK___2 = 4, + TEGRA_MUX_CLK12 = 5, + TEGRA_MUX_CPU___2 = 6, + TEGRA_MUX_CSI = 7, + TEGRA_MUX_DAP = 8, + TEGRA_MUX_DAP1 = 9, + TEGRA_MUX_DAP2 = 10, + TEGRA_MUX_DEV3 = 11, + TEGRA_MUX_DISPLAYA___2 = 12, + TEGRA_MUX_DISPLAYA_ALT = 13, + TEGRA_MUX_DISPLAYB___2 = 14, + TEGRA_MUX_DP___2 = 15, + TEGRA_MUX_DSI_B = 16, + TEGRA_MUX_DTV___2 = 17, + TEGRA_MUX_EXTPERIPH1 = 18, + TEGRA_MUX_EXTPERIPH2 = 19, + TEGRA_MUX_EXTPERIPH3___2 = 20, + TEGRA_MUX_GMI = 21, + TEGRA_MUX_GMI_ALT = 22, + TEGRA_MUX_HDA = 23, + TEGRA_MUX_HSI = 24, + TEGRA_MUX_I2C1___2 = 25, + TEGRA_MUX_I2C2___2 = 26, + TEGRA_MUX_I2C3___2 = 27, + TEGRA_MUX_I2C4 = 28, + TEGRA_MUX_I2CPWR = 29, + TEGRA_MUX_I2S0 = 30, + TEGRA_MUX_I2S1___2 = 31, + TEGRA_MUX_I2S2___2 = 32, + TEGRA_MUX_I2S3___2 = 33, + TEGRA_MUX_I2S4 = 34, + TEGRA_MUX_IRDA = 35, + TEGRA_MUX_KBC = 36, + TEGRA_MUX_OWR = 37, + TEGRA_MUX_PE___2 = 38, + TEGRA_MUX_PE0___2 = 39, + TEGRA_MUX_PE1___2 = 40, + TEGRA_MUX_PMI___2 = 41, + TEGRA_MUX_PWM0___2 = 42, + TEGRA_MUX_PWM1___2 = 43, + TEGRA_MUX_PWM2___2 = 44, + TEGRA_MUX_PWM3___2 = 45, + TEGRA_MUX_PWRON = 46, + TEGRA_MUX_RESET_OUT_N = 47, + TEGRA_MUX_RSVD1___2 = 48, + TEGRA_MUX_RSVD2___2 = 49, + TEGRA_MUX_RSVD3___2 = 50, + TEGRA_MUX_RSVD4 = 51, + TEGRA_MUX_RTCK = 52, + TEGRA_MUX_SATA___2 = 53, + TEGRA_MUX_SDMMC1___2 = 54, + TEGRA_MUX_SDMMC2 = 55, + TEGRA_MUX_SDMMC3___2 = 56, + TEGRA_MUX_SDMMC4 = 57, + TEGRA_MUX_SOC___2 = 58, + TEGRA_MUX_SPDIF___2 = 59, + TEGRA_MUX_SPI1___2 = 60, + TEGRA_MUX_SPI2___2 = 61, + TEGRA_MUX_SPI3___2 = 62, + TEGRA_MUX_SPI4___2 = 63, + TEGRA_MUX_SPI5 = 64, + TEGRA_MUX_SPI6 = 65, + TEGRA_MUX_SYS___2 = 66, + TEGRA_MUX_TMDS = 67, + TEGRA_MUX_TRACE = 68, + TEGRA_MUX_UARTA___2 = 69, + TEGRA_MUX_UARTB___2 = 70, + TEGRA_MUX_UARTC___2 = 71, + TEGRA_MUX_UARTD___2 = 72, + TEGRA_MUX_ULPI = 73, + TEGRA_MUX_USB___2 = 74, + TEGRA_MUX_VGP1___2 = 75, + TEGRA_MUX_VGP2___2 = 76, + TEGRA_MUX_VGP3___2 = 77, + TEGRA_MUX_VGP4___2 = 78, + TEGRA_MUX_VGP5___2 = 79, + TEGRA_MUX_VGP6___2 = 80, + TEGRA_MUX_VI = 81, + TEGRA_MUX_VI_ALT1 = 82, + TEGRA_MUX_VI_ALT3 = 83, + TEGRA_MUX_VIMCLK2___2 = 84, + TEGRA_MUX_VIMCLK2_ALT = 85, +}; + +enum tegra_mux_dt { + TEGRA_MUX_RSVD0___2 = 0, + TEGRA_MUX_RSVD1___3 = 1, + TEGRA_MUX_RSVD2___3 = 2, + TEGRA_MUX_RSVD3___3 = 3, + TEGRA_MUX_TOUCH___2 = 4, + TEGRA_MUX_UARTC___3 = 5, + TEGRA_MUX_I2C8 = 6, + TEGRA_MUX_UARTG = 7, + TEGRA_MUX_SPI2___3 = 8, + TEGRA_MUX_GP = 9, + TEGRA_MUX_DCA = 10, + TEGRA_MUX_WDT = 11, + TEGRA_MUX_I2C2___3 = 12, + TEGRA_MUX_CAN1 = 13, + TEGRA_MUX_CAN0 = 14, + TEGRA_MUX_DMIC3___2 = 15, + TEGRA_MUX_DMIC5 = 16, + TEGRA_MUX_GPIO = 17, + TEGRA_MUX_DSPK1 = 18, + TEGRA_MUX_DSPK0 = 19, + TEGRA_MUX_SPDIF___3 = 20, + TEGRA_MUX_AUD___2 = 21, + TEGRA_MUX_I2S1___3 = 22, + TEGRA_MUX_DMIC1___2 = 23, + TEGRA_MUX_DMIC2___2 = 24, + TEGRA_MUX_I2S3___3 = 25, + TEGRA_MUX_DMIC4 = 26, + TEGRA_MUX_I2S4___2 = 27, + TEGRA_MUX_EXTPERIPH2___2 = 28, + TEGRA_MUX_EXTPERIPH1___2 = 29, + TEGRA_MUX_I2C3___3 = 30, + TEGRA_MUX_VGP1___3 = 31, + TEGRA_MUX_VGP2___3 = 32, + TEGRA_MUX_VGP3___3 = 33, + TEGRA_MUX_VGP4___3 = 34, + TEGRA_MUX_VGP5___3 = 35, + TEGRA_MUX_VGP6___3 = 36, + TEGRA_MUX_SLVS = 37, + TEGRA_MUX_EXTPERIPH3___3 = 38, + TEGRA_MUX_EXTPERIPH4 = 39, + TEGRA_MUX_I2S2___3 = 40, + TEGRA_MUX_UARTD___3 = 41, + TEGRA_MUX_I2C1___3 = 42, + TEGRA_MUX_UARTA___3 = 43, + TEGRA_MUX_DIRECTDC1 = 44, + TEGRA_MUX_DIRECTDC = 45, + TEGRA_MUX_IQC1___2 = 46, + TEGRA_MUX_IQC2 = 47, + TEGRA_MUX_I2S6 = 48, + TEGRA_MUX_SDMMC3___3 = 49, + TEGRA_MUX_SDMMC1___3 = 50, + TEGRA_MUX_DP___3 = 51, + TEGRA_MUX_HDMI = 52, + TEGRA_MUX_PE2 = 53, + TEGRA_MUX_IGPU = 54, + TEGRA_MUX_SATA___3 = 55, + TEGRA_MUX_PE1___3 = 56, + TEGRA_MUX_PE0___3 = 57, + TEGRA_MUX_PE3 = 58, + TEGRA_MUX_PE4 = 59, + TEGRA_MUX_PE5 = 60, + TEGRA_MUX_SOC___3 = 61, + TEGRA_MUX_EQOS = 62, + TEGRA_MUX_QSPI___2 = 63, + TEGRA_MUX_QSPI0 = 64, + TEGRA_MUX_QSPI1 = 65, + TEGRA_MUX_MIPI = 66, + TEGRA_MUX_SCE = 67, + TEGRA_MUX_I2C5 = 68, + TEGRA_MUX_DISPLAYA___3 = 69, + TEGRA_MUX_DISPLAYB___3 = 70, + TEGRA_MUX_DCB = 71, + TEGRA_MUX_SPI1___3 = 72, + TEGRA_MUX_UARTB___3 = 73, + TEGRA_MUX_UARTE = 74, + TEGRA_MUX_SPI3___3 = 75, + TEGRA_MUX_NV = 76, + TEGRA_MUX_CCLA___3 = 77, + TEGRA_MUX_I2S5 = 78, + TEGRA_MUX_USB___3 = 79, + TEGRA_MUX_UFS0 = 80, + TEGRA_MUX_DGPU = 81, + TEGRA_MUX_SDMMC4___2 = 82, +}; + +enum tegra_mux_dt___2 { + TEGRA_MUX_GP___2 = 0, + TEGRA_MUX_UARTC___4 = 1, + TEGRA_MUX_I2C8___2 = 2, + TEGRA_MUX_SPI2___4 = 3, + TEGRA_MUX_I2C2___4 = 4, + TEGRA_MUX_CAN1___2 = 5, + TEGRA_MUX_CAN0___2 = 6, + TEGRA_MUX_RSVD0___3 = 7, + TEGRA_MUX_ETH0 = 8, + TEGRA_MUX_ETH2 = 9, + TEGRA_MUX_ETH1 = 10, + TEGRA_MUX_DP___4 = 11, + TEGRA_MUX_ETH3 = 12, + TEGRA_MUX_I2C4___2 = 13, + TEGRA_MUX_I2C7 = 14, + TEGRA_MUX_I2C9 = 15, + TEGRA_MUX_EQOS___2 = 16, + TEGRA_MUX_PE2___2 = 17, + TEGRA_MUX_PE1___4 = 18, + TEGRA_MUX_PE0___4 = 19, + TEGRA_MUX_PE3___2 = 20, + TEGRA_MUX_PE4___2 = 21, + TEGRA_MUX_PE5___2 = 22, + TEGRA_MUX_PE6 = 23, + TEGRA_MUX_PE10 = 24, + TEGRA_MUX_PE7 = 25, + TEGRA_MUX_PE8 = 26, + TEGRA_MUX_PE9 = 27, + TEGRA_MUX_QSPI0___2 = 28, + TEGRA_MUX_QSPI1___2 = 29, + TEGRA_MUX_QSPI___3 = 30, + TEGRA_MUX_SDMMC1___4 = 31, + TEGRA_MUX_SCE___2 = 32, + TEGRA_MUX_SOC___4 = 33, + TEGRA_MUX_GPIO___2 = 34, + TEGRA_MUX_HDMI___2 = 35, + TEGRA_MUX_UFS0___2 = 36, + TEGRA_MUX_SPI3___4 = 37, + TEGRA_MUX_SPI1___4 = 38, + TEGRA_MUX_UARTB___4 = 39, + TEGRA_MUX_UARTE___2 = 40, + TEGRA_MUX_USB___4 = 41, + TEGRA_MUX_EXTPERIPH2___3 = 42, + TEGRA_MUX_EXTPERIPH1___3 = 43, + TEGRA_MUX_I2C3___4 = 44, + TEGRA_MUX_VI0 = 45, + TEGRA_MUX_I2C5___2 = 46, + TEGRA_MUX_UARTA___4 = 47, + TEGRA_MUX_UARTD___4 = 48, + TEGRA_MUX_I2C1___4 = 49, + TEGRA_MUX_I2S4___3 = 50, + TEGRA_MUX_I2S6___2 = 51, + TEGRA_MUX_AUD___3 = 52, + TEGRA_MUX_SPI5___2 = 53, + TEGRA_MUX_TOUCH___3 = 54, + TEGRA_MUX_UARTJ = 55, + TEGRA_MUX_RSVD1___4 = 56, + TEGRA_MUX_WDT___2 = 57, + TEGRA_MUX_TSC = 58, + TEGRA_MUX_DMIC3___3 = 59, + TEGRA_MUX_LED = 60, + TEGRA_MUX_VI0_ALT = 61, + TEGRA_MUX_I2S5___2 = 62, + TEGRA_MUX_NV___2 = 63, + TEGRA_MUX_EXTPERIPH3___4 = 64, + TEGRA_MUX_EXTPERIPH4___2 = 65, + TEGRA_MUX_SPI4___3 = 66, + TEGRA_MUX_CCLA___4 = 67, + TEGRA_MUX_I2S2___4 = 68, + TEGRA_MUX_I2S1___4 = 69, + TEGRA_MUX_I2S8 = 70, + TEGRA_MUX_I2S3___4 = 71, + TEGRA_MUX_RSVD2___4 = 72, + TEGRA_MUX_DMIC5___2 = 73, + TEGRA_MUX_DCA___2 = 74, + TEGRA_MUX_DISPLAYB___4 = 75, + TEGRA_MUX_DISPLAYA___4 = 76, + TEGRA_MUX_VI1 = 77, + TEGRA_MUX_DCB___2 = 78, + TEGRA_MUX_DMIC1___3 = 79, + TEGRA_MUX_DMIC4___2 = 80, + TEGRA_MUX_I2S7 = 81, + TEGRA_MUX_DMIC2___3 = 82, + TEGRA_MUX_DSPK0___2 = 83, + TEGRA_MUX_RSVD3___4 = 84, + TEGRA_MUX_TSC_ALT = 85, + TEGRA_MUX_ISTCTRL = 86, + TEGRA_MUX_VI1_ALT = 87, + TEGRA_MUX_DSPK1___2 = 88, + TEGRA_MUX_IGPU___2 = 89, +}; + +enum tegra_pinconf_param { + TEGRA_PINCONF_PARAM_PULL = 0, + TEGRA_PINCONF_PARAM_TRISTATE = 1, + TEGRA_PINCONF_PARAM_ENABLE_INPUT = 2, + TEGRA_PINCONF_PARAM_OPEN_DRAIN = 3, + TEGRA_PINCONF_PARAM_LOCK = 4, + TEGRA_PINCONF_PARAM_IORESET = 5, + TEGRA_PINCONF_PARAM_RCV_SEL = 6, + TEGRA_PINCONF_PARAM_HIGH_SPEED_MODE = 7, + TEGRA_PINCONF_PARAM_SCHMITT = 8, + TEGRA_PINCONF_PARAM_LOW_POWER_MODE = 9, + TEGRA_PINCONF_PARAM_DRIVE_DOWN_STRENGTH = 10, + TEGRA_PINCONF_PARAM_DRIVE_UP_STRENGTH = 11, + TEGRA_PINCONF_PARAM_SLEW_RATE_FALLING = 12, + TEGRA_PINCONF_PARAM_SLEW_RATE_RISING = 13, + TEGRA_PINCONF_PARAM_DRIVE_TYPE = 14, +}; + +enum tegra_platform { + TEGRA_PLATFORM_SILICON = 0, + TEGRA_PLATFORM_QT = 1, + TEGRA_PLATFORM_SYSTEM_FPGA = 2, + TEGRA_PLATFORM_UNIT_FPGA = 3, + TEGRA_PLATFORM_ASIM_QT = 4, + TEGRA_PLATFORM_ASIM_LINSIM = 5, + TEGRA_PLATFORM_DSIM_ASIM_LINSIM = 6, + TEGRA_PLATFORM_VERIFICATION_SIMULATION = 7, + TEGRA_PLATFORM_VDK = 8, + TEGRA_PLATFORM_VSP = 9, + TEGRA_PLATFORM_MAX = 10, +}; + +enum tegra_revision { + TEGRA_REVISION_UNKNOWN = 0, + TEGRA_REVISION_A01 = 1, + TEGRA_REVISION_A02 = 2, + TEGRA_REVISION_A03 = 3, + TEGRA_REVISION_A03p = 4, + TEGRA_REVISION_A04 = 5, + TEGRA_REVISION_MAX = 6, +}; + +enum tegra_super_gen { + gen4 = 4, + gen5 = 5, +}; + +enum tegra_suspend_mode { + TEGRA_SUSPEND_NONE = 0, + TEGRA_SUSPEND_LP2 = 1, + TEGRA_SUSPEND_LP1 = 2, + TEGRA_SUSPEND_LP0 = 3, + TEGRA_MAX_SUSPEND_MODE = 4, + TEGRA_SUSPEND_NOT_READY = 5, +}; + +enum tegra_xusb_padctl_param { + TEGRA_XUSB_PADCTL_IDDQ = 0, +}; + +enum tg_state_flags { + THROTL_TG_PENDING = 1, + THROTL_TG_WAS_EMPTY = 2, + THROTL_TG_CANCELING = 4, +}; + +enum thermal_device_mode { + THERMAL_DEVICE_DISABLED = 0, + THERMAL_DEVICE_ENABLED = 1, +}; + +enum thermal_genl_attr { + THERMAL_GENL_ATTR_UNSPEC = 0, + THERMAL_GENL_ATTR_TZ = 1, + THERMAL_GENL_ATTR_TZ_ID = 2, + THERMAL_GENL_ATTR_TZ_TEMP = 3, + THERMAL_GENL_ATTR_TZ_TRIP = 4, + THERMAL_GENL_ATTR_TZ_TRIP_ID = 5, + THERMAL_GENL_ATTR_TZ_TRIP_TYPE = 6, + THERMAL_GENL_ATTR_TZ_TRIP_TEMP = 7, + THERMAL_GENL_ATTR_TZ_TRIP_HYST = 8, + THERMAL_GENL_ATTR_TZ_MODE = 9, + THERMAL_GENL_ATTR_TZ_NAME = 10, + THERMAL_GENL_ATTR_TZ_CDEV_WEIGHT = 11, + THERMAL_GENL_ATTR_TZ_GOV = 12, + THERMAL_GENL_ATTR_TZ_GOV_NAME = 13, + THERMAL_GENL_ATTR_CDEV = 14, + THERMAL_GENL_ATTR_CDEV_ID = 15, + THERMAL_GENL_ATTR_CDEV_CUR_STATE = 16, + THERMAL_GENL_ATTR_CDEV_MAX_STATE = 17, + THERMAL_GENL_ATTR_CDEV_NAME = 18, + THERMAL_GENL_ATTR_GOV_NAME = 19, + THERMAL_GENL_ATTR_CPU_CAPABILITY = 20, + THERMAL_GENL_ATTR_CPU_CAPABILITY_ID = 21, + THERMAL_GENL_ATTR_CPU_CAPABILITY_PERFORMANCE = 22, + THERMAL_GENL_ATTR_CPU_CAPABILITY_EFFICIENCY = 23, + THERMAL_GENL_ATTR_THRESHOLD = 24, + THERMAL_GENL_ATTR_THRESHOLD_TEMP = 25, + THERMAL_GENL_ATTR_THRESHOLD_DIRECTION = 26, + THERMAL_GENL_ATTR_TZ_PREV_TEMP = 27, + __THERMAL_GENL_ATTR_MAX = 28, +}; + +enum thermal_genl_cmd { + THERMAL_GENL_CMD_UNSPEC = 0, + THERMAL_GENL_CMD_TZ_GET_ID = 1, + THERMAL_GENL_CMD_TZ_GET_TRIP = 2, + THERMAL_GENL_CMD_TZ_GET_TEMP = 3, + THERMAL_GENL_CMD_TZ_GET_GOV = 4, + THERMAL_GENL_CMD_TZ_GET_MODE = 5, + THERMAL_GENL_CMD_CDEV_GET = 6, + THERMAL_GENL_CMD_THRESHOLD_GET = 7, + THERMAL_GENL_CMD_THRESHOLD_ADD = 8, + THERMAL_GENL_CMD_THRESHOLD_DELETE = 9, + THERMAL_GENL_CMD_THRESHOLD_FLUSH = 10, + __THERMAL_GENL_CMD_MAX = 11, +}; + +enum thermal_genl_event { + THERMAL_GENL_EVENT_UNSPEC = 0, + THERMAL_GENL_EVENT_TZ_CREATE = 1, + THERMAL_GENL_EVENT_TZ_DELETE = 2, + THERMAL_GENL_EVENT_TZ_DISABLE = 3, + THERMAL_GENL_EVENT_TZ_ENABLE = 4, + THERMAL_GENL_EVENT_TZ_TRIP_UP = 5, + THERMAL_GENL_EVENT_TZ_TRIP_DOWN = 6, + THERMAL_GENL_EVENT_TZ_TRIP_CHANGE = 7, + THERMAL_GENL_EVENT_TZ_TRIP_ADD = 8, + THERMAL_GENL_EVENT_TZ_TRIP_DELETE = 9, + THERMAL_GENL_EVENT_CDEV_ADD = 10, + THERMAL_GENL_EVENT_CDEV_DELETE = 11, + THERMAL_GENL_EVENT_CDEV_STATE_UPDATE = 12, + THERMAL_GENL_EVENT_TZ_GOV_CHANGE = 13, + THERMAL_GENL_EVENT_CPU_CAPABILITY_CHANGE = 14, + THERMAL_GENL_EVENT_THRESHOLD_ADD = 15, + THERMAL_GENL_EVENT_THRESHOLD_DELETE = 16, + THERMAL_GENL_EVENT_THRESHOLD_FLUSH = 17, + THERMAL_GENL_EVENT_THRESHOLD_UP = 18, + THERMAL_GENL_EVENT_THRESHOLD_DOWN = 19, + __THERMAL_GENL_EVENT_MAX = 20, +}; + +enum thermal_genl_multicast_groups { + THERMAL_GENL_SAMPLING_GROUP = 0, + THERMAL_GENL_EVENT_GROUP = 1, + THERMAL_GENL_MAX_GROUP = 1, +}; + +enum thermal_genl_sampling { + THERMAL_GENL_SAMPLING_TEMP = 0, + __THERMAL_GENL_SAMPLING_MAX = 1, +}; + +enum thermal_notify_event { + THERMAL_EVENT_UNSPECIFIED = 0, + THERMAL_EVENT_TEMP_SAMPLE = 1, + THERMAL_TRIP_VIOLATED = 2, + THERMAL_TRIP_CHANGED = 3, + THERMAL_DEVICE_DOWN = 4, + THERMAL_DEVICE_UP = 5, + THERMAL_DEVICE_POWER_CAPABILITY_CHANGED = 6, + THERMAL_TABLE_CHANGED = 7, + THERMAL_EVENT_KEEP_ALIVE = 8, + THERMAL_TZ_BIND_CDEV = 9, + THERMAL_TZ_UNBIND_CDEV = 10, + THERMAL_INSTANCE_WEIGHT_CHANGED = 11, + THERMAL_TZ_RESUME = 12, + THERMAL_TZ_ADD_THRESHOLD = 13, + THERMAL_TZ_DEL_THRESHOLD = 14, + THERMAL_TZ_FLUSH_THRESHOLDS = 15, +}; + +enum thermal_trend { + THERMAL_TREND_STABLE = 0, + THERMAL_TREND_RAISING = 1, + THERMAL_TREND_DROPPING = 2, +}; + +enum thermal_trip_type { + THERMAL_TRIP_ACTIVE = 0, + THERMAL_TRIP_PASSIVE = 1, + THERMAL_TRIP_HOT = 2, + THERMAL_TRIP_CRITICAL = 3, +}; + +enum ti_sysc_module_type { + TI_SYSC_OMAP2 = 0, + TI_SYSC_OMAP2_TIMER = 1, + TI_SYSC_OMAP3_SHAM = 2, + TI_SYSC_OMAP3_AES = 3, + TI_SYSC_OMAP4 = 4, + TI_SYSC_OMAP4_TIMER = 5, + TI_SYSC_OMAP4_SIMPLE = 6, + TI_SYSC_OMAP34XX_SR = 7, + TI_SYSC_OMAP36XX_SR = 8, + TI_SYSC_OMAP4_SR = 9, + TI_SYSC_OMAP4_MCASP = 10, + TI_SYSC_OMAP4_USB_HOST_FS = 11, + TI_SYSC_DRA7_MCAN = 12, + TI_SYSC_PRUSS = 13, +}; + +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, +}; + +enum tick_dep_bits { + TICK_DEP_BIT_POSIX_TIMER = 0, + TICK_DEP_BIT_PERF_EVENTS = 1, + TICK_DEP_BIT_SCHED = 2, + TICK_DEP_BIT_CLOCK_UNSTABLE = 3, + TICK_DEP_BIT_RCU = 4, + TICK_DEP_BIT_RCU_EXP = 5, +}; + +enum tick_device_mode { + TICKDEV_MODE_PERIODIC = 0, + TICKDEV_MODE_ONESHOT = 1, +}; + +enum timekeeping_adv_mode { + TK_ADV_TICK = 0, + TK_ADV_FREQ = 1, +}; + +enum timespec_type { + TT_NONE = 0, + TT_NATIVE = 1, + TT_COMPAT = 2, +}; + +enum tis_access { + TPM_ACCESS_VALID = 128, + TPM_ACCESS_ACTIVE_LOCALITY = 32, + TPM_ACCESS_REQUEST_PENDING = 4, + TPM_ACCESS_REQUEST_USE = 2, +}; + +enum tis_defaults { + TIS_MEM_LEN = 20480, + TIS_SHORT_TIMEOUT = 750, + TIS_LONG_TIMEOUT = 4000, + TIS_TIMEOUT_MIN_ATML = 14700, + TIS_TIMEOUT_MAX_ATML = 15000, +}; + +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_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_RESPONSE_RETRY = 2, + TPM_STS_READ_ZERO = 35, +}; + +enum tk_offsets { + TK_OFFS_REAL = 0, + TK_OFFS_BOOT = 1, + TK_OFFS_TAI = 2, + TK_OFFS_MAX = 3, +}; + +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, + TLB_REMOTE_WRONG_CPU = 5, + NR_TLB_FLUSH_REASONS = 6, +}; + +enum tls_offload_ctx_dir { + TLS_OFFLOAD_CTX_DIR_RX = 0, + TLS_OFFLOAD_CTX_DIR_TX = 1, +}; + +enum tomoyo_acl_entry_type_index { + TOMOYO_TYPE_PATH_ACL = 0, + TOMOYO_TYPE_PATH2_ACL = 1, + TOMOYO_TYPE_PATH_NUMBER_ACL = 2, + TOMOYO_TYPE_MKDEV_ACL = 3, + TOMOYO_TYPE_MOUNT_ACL = 4, + TOMOYO_TYPE_INET_ACL = 5, + TOMOYO_TYPE_UNIX_ACL = 6, + TOMOYO_TYPE_ENV_ACL = 7, + TOMOYO_TYPE_MANUAL_TASK_ACL = 8, +}; + +enum tomoyo_conditions_index { + TOMOYO_TASK_UID = 0, + TOMOYO_TASK_EUID = 1, + TOMOYO_TASK_SUID = 2, + TOMOYO_TASK_FSUID = 3, + TOMOYO_TASK_GID = 4, + TOMOYO_TASK_EGID = 5, + TOMOYO_TASK_SGID = 6, + TOMOYO_TASK_FSGID = 7, + TOMOYO_TASK_PID = 8, + TOMOYO_TASK_PPID = 9, + TOMOYO_EXEC_ARGC = 10, + TOMOYO_EXEC_ENVC = 11, + TOMOYO_TYPE_IS_SOCKET = 12, + TOMOYO_TYPE_IS_SYMLINK = 13, + TOMOYO_TYPE_IS_FILE = 14, + TOMOYO_TYPE_IS_BLOCK_DEV = 15, + TOMOYO_TYPE_IS_DIRECTORY = 16, + TOMOYO_TYPE_IS_CHAR_DEV = 17, + TOMOYO_TYPE_IS_FIFO = 18, + TOMOYO_MODE_SETUID = 19, + TOMOYO_MODE_SETGID = 20, + TOMOYO_MODE_STICKY = 21, + TOMOYO_MODE_OWNER_READ = 22, + TOMOYO_MODE_OWNER_WRITE = 23, + TOMOYO_MODE_OWNER_EXECUTE = 24, + TOMOYO_MODE_GROUP_READ = 25, + TOMOYO_MODE_GROUP_WRITE = 26, + TOMOYO_MODE_GROUP_EXECUTE = 27, + TOMOYO_MODE_OTHERS_READ = 28, + TOMOYO_MODE_OTHERS_WRITE = 29, + TOMOYO_MODE_OTHERS_EXECUTE = 30, + TOMOYO_EXEC_REALPATH = 31, + TOMOYO_SYMLINK_TARGET = 32, + TOMOYO_PATH1_UID = 33, + TOMOYO_PATH1_GID = 34, + TOMOYO_PATH1_INO = 35, + TOMOYO_PATH1_MAJOR = 36, + TOMOYO_PATH1_MINOR = 37, + TOMOYO_PATH1_PERM = 38, + TOMOYO_PATH1_TYPE = 39, + TOMOYO_PATH1_DEV_MAJOR = 40, + TOMOYO_PATH1_DEV_MINOR = 41, + TOMOYO_PATH2_UID = 42, + TOMOYO_PATH2_GID = 43, + TOMOYO_PATH2_INO = 44, + TOMOYO_PATH2_MAJOR = 45, + TOMOYO_PATH2_MINOR = 46, + TOMOYO_PATH2_PERM = 47, + TOMOYO_PATH2_TYPE = 48, + TOMOYO_PATH2_DEV_MAJOR = 49, + TOMOYO_PATH2_DEV_MINOR = 50, + TOMOYO_PATH1_PARENT_UID = 51, + TOMOYO_PATH1_PARENT_GID = 52, + TOMOYO_PATH1_PARENT_INO = 53, + TOMOYO_PATH1_PARENT_PERM = 54, + TOMOYO_PATH2_PARENT_UID = 55, + TOMOYO_PATH2_PARENT_GID = 56, + TOMOYO_PATH2_PARENT_INO = 57, + TOMOYO_PATH2_PARENT_PERM = 58, + TOMOYO_MAX_CONDITION_KEYWORD = 59, + TOMOYO_NUMBER_UNION = 60, + TOMOYO_NAME_UNION = 61, + TOMOYO_ARGV_ENTRY = 62, + TOMOYO_ENVP_ENTRY = 63, +}; + +enum tomoyo_domain_info_flags_index { + TOMOYO_DIF_QUOTA_WARNED = 0, + TOMOYO_DIF_TRANSITION_FAILED = 1, + TOMOYO_MAX_DOMAIN_INFO_FLAGS = 2, +}; + +enum tomoyo_grant_log { + TOMOYO_GRANTLOG_AUTO = 0, + TOMOYO_GRANTLOG_NO = 1, + TOMOYO_GRANTLOG_YES = 2, +}; + +enum tomoyo_group_id { + TOMOYO_PATH_GROUP = 0, + TOMOYO_NUMBER_GROUP = 1, + TOMOYO_ADDRESS_GROUP = 2, + TOMOYO_MAX_GROUP = 3, +}; + +enum tomoyo_mac_category_index { + TOMOYO_MAC_CATEGORY_FILE = 0, + TOMOYO_MAC_CATEGORY_NETWORK = 1, + TOMOYO_MAC_CATEGORY_MISC = 2, + TOMOYO_MAX_MAC_CATEGORY_INDEX = 3, +}; + +enum tomoyo_mac_index { + TOMOYO_MAC_FILE_EXECUTE = 0, + TOMOYO_MAC_FILE_OPEN = 1, + TOMOYO_MAC_FILE_CREATE = 2, + TOMOYO_MAC_FILE_UNLINK = 3, + TOMOYO_MAC_FILE_GETATTR = 4, + TOMOYO_MAC_FILE_MKDIR = 5, + TOMOYO_MAC_FILE_RMDIR = 6, + TOMOYO_MAC_FILE_MKFIFO = 7, + TOMOYO_MAC_FILE_MKSOCK = 8, + TOMOYO_MAC_FILE_TRUNCATE = 9, + TOMOYO_MAC_FILE_SYMLINK = 10, + TOMOYO_MAC_FILE_MKBLOCK = 11, + TOMOYO_MAC_FILE_MKCHAR = 12, + TOMOYO_MAC_FILE_LINK = 13, + TOMOYO_MAC_FILE_RENAME = 14, + TOMOYO_MAC_FILE_CHMOD = 15, + TOMOYO_MAC_FILE_CHOWN = 16, + TOMOYO_MAC_FILE_CHGRP = 17, + TOMOYO_MAC_FILE_IOCTL = 18, + TOMOYO_MAC_FILE_CHROOT = 19, + TOMOYO_MAC_FILE_MOUNT = 20, + TOMOYO_MAC_FILE_UMOUNT = 21, + TOMOYO_MAC_FILE_PIVOT_ROOT = 22, + TOMOYO_MAC_NETWORK_INET_STREAM_BIND = 23, + TOMOYO_MAC_NETWORK_INET_STREAM_LISTEN = 24, + TOMOYO_MAC_NETWORK_INET_STREAM_CONNECT = 25, + TOMOYO_MAC_NETWORK_INET_DGRAM_BIND = 26, + TOMOYO_MAC_NETWORK_INET_DGRAM_SEND = 27, + TOMOYO_MAC_NETWORK_INET_RAW_BIND = 28, + TOMOYO_MAC_NETWORK_INET_RAW_SEND = 29, + TOMOYO_MAC_NETWORK_UNIX_STREAM_BIND = 30, + TOMOYO_MAC_NETWORK_UNIX_STREAM_LISTEN = 31, + TOMOYO_MAC_NETWORK_UNIX_STREAM_CONNECT = 32, + TOMOYO_MAC_NETWORK_UNIX_DGRAM_BIND = 33, + TOMOYO_MAC_NETWORK_UNIX_DGRAM_SEND = 34, + TOMOYO_MAC_NETWORK_UNIX_SEQPACKET_BIND = 35, + TOMOYO_MAC_NETWORK_UNIX_SEQPACKET_LISTEN = 36, + TOMOYO_MAC_NETWORK_UNIX_SEQPACKET_CONNECT = 37, + TOMOYO_MAC_ENVIRON = 38, + TOMOYO_MAX_MAC_INDEX = 39, +}; + +enum tomoyo_memory_stat_type { + TOMOYO_MEMORY_POLICY = 0, + TOMOYO_MEMORY_AUDIT = 1, + TOMOYO_MEMORY_QUERY = 2, + TOMOYO_MAX_MEMORY_STAT = 3, +}; + +enum tomoyo_mkdev_acl_index { + TOMOYO_TYPE_MKBLOCK = 0, + TOMOYO_TYPE_MKCHAR = 1, + TOMOYO_MAX_MKDEV_OPERATION = 2, +}; + +enum tomoyo_mode_index { + TOMOYO_CONFIG_DISABLED = 0, + TOMOYO_CONFIG_LEARNING = 1, + TOMOYO_CONFIG_PERMISSIVE = 2, + TOMOYO_CONFIG_ENFORCING = 3, + TOMOYO_CONFIG_MAX_MODE = 4, + TOMOYO_CONFIG_WANT_REJECT_LOG = 64, + TOMOYO_CONFIG_WANT_GRANT_LOG = 128, + TOMOYO_CONFIG_USE_DEFAULT = 255, +}; + +enum tomoyo_network_acl_index { + TOMOYO_NETWORK_BIND = 0, + TOMOYO_NETWORK_LISTEN = 1, + TOMOYO_NETWORK_CONNECT = 2, + TOMOYO_NETWORK_SEND = 3, + TOMOYO_MAX_NETWORK_OPERATION = 4, +}; + +enum tomoyo_path2_acl_index { + TOMOYO_TYPE_LINK = 0, + TOMOYO_TYPE_RENAME = 1, + TOMOYO_TYPE_PIVOT_ROOT = 2, + TOMOYO_MAX_PATH2_OPERATION = 3, +}; + +enum tomoyo_path_acl_index { + TOMOYO_TYPE_EXECUTE = 0, + TOMOYO_TYPE_READ = 1, + TOMOYO_TYPE_WRITE = 2, + TOMOYO_TYPE_APPEND = 3, + TOMOYO_TYPE_UNLINK = 4, + TOMOYO_TYPE_GETATTR = 5, + TOMOYO_TYPE_RMDIR = 6, + TOMOYO_TYPE_TRUNCATE = 7, + TOMOYO_TYPE_SYMLINK = 8, + TOMOYO_TYPE_CHROOT = 9, + TOMOYO_TYPE_UMOUNT = 10, + TOMOYO_MAX_PATH_OPERATION = 11, +}; + +enum tomoyo_path_number_acl_index { + TOMOYO_TYPE_CREATE = 0, + TOMOYO_TYPE_MKDIR = 1, + TOMOYO_TYPE_MKFIFO = 2, + TOMOYO_TYPE_MKSOCK = 3, + TOMOYO_TYPE_IOCTL = 4, + TOMOYO_TYPE_CHMOD = 5, + TOMOYO_TYPE_CHOWN = 6, + TOMOYO_TYPE_CHGRP = 7, + TOMOYO_MAX_PATH_NUMBER_OPERATION = 8, +}; + +enum tomoyo_path_stat_index { + TOMOYO_PATH1 = 0, + TOMOYO_PATH1_PARENT = 1, + TOMOYO_PATH2 = 2, + TOMOYO_PATH2_PARENT = 3, + TOMOYO_MAX_PATH_STAT = 4, +}; + +enum tomoyo_policy_id { + TOMOYO_ID_GROUP = 0, + TOMOYO_ID_ADDRESS_GROUP = 1, + TOMOYO_ID_PATH_GROUP = 2, + TOMOYO_ID_NUMBER_GROUP = 3, + TOMOYO_ID_TRANSITION_CONTROL = 4, + TOMOYO_ID_AGGREGATOR = 5, + TOMOYO_ID_MANAGER = 6, + TOMOYO_ID_CONDITION = 7, + TOMOYO_ID_NAME = 8, + TOMOYO_ID_ACL = 9, + TOMOYO_ID_DOMAIN = 10, + TOMOYO_MAX_POLICY = 11, +}; + +enum tomoyo_policy_stat_type { + TOMOYO_STAT_POLICY_UPDATES = 0, + TOMOYO_STAT_POLICY_LEARNING = 1, + TOMOYO_STAT_POLICY_PERMISSIVE = 2, + TOMOYO_STAT_POLICY_ENFORCING = 3, + TOMOYO_MAX_POLICY_STAT = 4, +}; + +enum tomoyo_pref_index { + TOMOYO_PREF_MAX_AUDIT_LOG = 0, + TOMOYO_PREF_MAX_LEARNING_ENTRY = 1, + TOMOYO_MAX_PREF = 2, +}; + +enum tomoyo_securityfs_interface_index { + TOMOYO_DOMAINPOLICY = 0, + TOMOYO_EXCEPTIONPOLICY = 1, + TOMOYO_PROCESS_STATUS = 2, + TOMOYO_STAT = 3, + TOMOYO_AUDIT = 4, + TOMOYO_VERSION = 5, + TOMOYO_PROFILE = 6, + TOMOYO_QUERY = 7, + TOMOYO_MANAGER = 8, +}; + +enum tomoyo_special_mount { + TOMOYO_MOUNT_BIND = 0, + TOMOYO_MOUNT_MOVE = 1, + TOMOYO_MOUNT_REMOUNT = 2, + TOMOYO_MOUNT_MAKE_UNBINDABLE = 3, + TOMOYO_MOUNT_MAKE_PRIVATE = 4, + TOMOYO_MOUNT_MAKE_SLAVE = 5, + TOMOYO_MOUNT_MAKE_SHARED = 6, + TOMOYO_MAX_SPECIAL_MOUNT = 7, +}; + +enum tomoyo_transition_type { + TOMOYO_TRANSITION_CONTROL_NO_RESET = 0, + TOMOYO_TRANSITION_CONTROL_RESET = 1, + TOMOYO_TRANSITION_CONTROL_NO_INITIALIZE = 2, + TOMOYO_TRANSITION_CONTROL_INITIALIZE = 3, + TOMOYO_TRANSITION_CONTROL_NO_KEEP = 4, + TOMOYO_TRANSITION_CONTROL_KEEP = 5, + TOMOYO_MAX_TRANSITION_TYPE = 6, +}; + +enum tomoyo_value_type { + TOMOYO_VALUE_TYPE_INVALID = 0, + TOMOYO_VALUE_TYPE_DECIMAL = 1, + TOMOYO_VALUE_TYPE_OCTAL = 2, + TOMOYO_VALUE_TYPE_HEXADECIMAL = 3, +}; + +enum topology_type { + TYPE_INVALID = 0, + TYPE_MUX = 1, + TYPE_PLL = 2, + TYPE_FIXEDFACTOR = 3, + TYPE_DIV1 = 4, + TYPE_DIV2 = 5, + TYPE_GATE = 6, +}; + +enum 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, +}; + +enum tpacket_versions { + TPACKET_V1 = 0, + TPACKET_V2 = 1, + TPACKET_V3 = 2, +}; + +enum tph_mem_type { + TPH_MEM_TYPE_VM = 0, + TPH_MEM_TYPE_PM = 1, +}; + +enum tpm2_capabilities { + TPM2_CAP_HANDLES = 1, + TPM2_CAP_COMMANDS = 2, + TPM2_CAP_PCRS = 5, + TPM2_CAP_TPM_PROPERTIES = 6, +}; + +enum tpm2_cc_attrs { + TPM2_CC_ATTR_CHANDLES = 25, + TPM2_CC_ATTR_RHANDLE = 28, + TPM2_CC_ATTR_VENDOR = 29, +}; + +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_READ_PUBLIC = 371, + TPM2_CC_START_AUTH_SESS = 374, + 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 tpm2_const { + TPM2_PLATFORM_PCR = 24, + TPM2_PCR_SELECT_MIN = 3, +}; + +enum tpm2_handle_types { + TPM2_HT_HMAC_SESSION = 33554432, + TPM2_HT_POLICY_SESSION = 50331648, + TPM2_HT_TRANSIENT = 2147483648, +}; + +enum tpm2_object_attributes { + TPM2_OA_FIXED_TPM = 2, + TPM2_OA_ST_CLEAR = 4, + TPM2_OA_FIXED_PARENT = 16, + TPM2_OA_SENSITIVE_DATA_ORIGIN = 32, + TPM2_OA_USER_WITH_AUTH = 64, + TPM2_OA_ADMIN_WITH_POLICY = 128, + TPM2_OA_NO_DA = 1024, + TPM2_OA_ENCRYPTED_DUPLICATION = 2048, + TPM2_OA_RESTRICTED = 65536, + TPM2_OA_DECRYPT = 131072, + TPM2_OA_SIGN = 262144, +}; + +enum tpm2_permanent_handles { + TPM2_RH_NULL = 1073741831, + TPM2_RS_PW = 1073741833, +}; + +enum tpm2_properties { + TPM_PT_TOTAL_COMMANDS = 297, +}; + +enum tpm2_return_codes { + TPM2_RC_SUCCESS = 0, + TPM2_RC_HASH = 131, + TPM2_RC_HANDLE = 139, + TPM2_RC_INTEGRITY = 159, + 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, + TPM2_RC_SESSION_MEMORY = 2307, +}; + +enum tpm2_session_attributes { + TPM2_SA_CONTINUE_SESSION = 1, + TPM2_SA_AUDIT_EXCLUSIVE = 2, + TPM2_SA_AUDIT_RESET = 8, + TPM2_SA_DECRYPT = 32, + TPM2_SA_ENCRYPT = 64, + TPM2_SA_AUDIT = 128, +}; + +enum tpm2_startup_types { + TPM2_SU_CLEAR = 0, + TPM2_SU_STATE = 1, +}; + +enum tpm2_structures { + TPM2_ST_NO_SESSIONS = 32769, + TPM2_ST_SESSIONS = 32770, + TPM2_ST_CREATION = 32801, +}; + +enum tpm2_timeouts { + TPM2_TIMEOUT_A = 750, + TPM2_TIMEOUT_B = 4000, + 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 tpm2key_actions { + ACT_tpm2_key_parent = 0, + ACT_tpm2_key_priv = 1, + ACT_tpm2_key_pub = 2, + ACT_tpm2_key_type = 3, + NR__tpm2key_actions = 4, +}; + +enum tpm_algorithms { + TPM_ALG_ERROR = 0, + TPM_ALG_SHA1 = 4, + TPM_ALG_AES = 6, + 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, + TPM_ALG_ECC = 35, + TPM_ALG_CFB = 67, +}; + +enum tpm_buf_flags { + TPM_BUF_OVERFLOW = 1, + TPM_BUF_TPM2B = 2, + TPM_BUF_BOUNDARY_ERROR = 4, +}; + +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_chip_flags { + TPM_CHIP_FLAG_BOOTSTRAPPED = 1, + TPM_CHIP_FLAG_TPM2 = 2, + TPM_CHIP_FLAG_IRQ = 4, + TPM_CHIP_FLAG_VIRTUAL = 8, + TPM_CHIP_FLAG_HAVE_TIMEOUTS = 16, + TPM_CHIP_FLAG_ALWAYS_POWERED = 32, + TPM_CHIP_FLAG_FIRMWARE_POWER_MANAGED = 64, + TPM_CHIP_FLAG_FIRMWARE_UPGRADE = 128, + TPM_CHIP_FLAG_SUSPENDED = 256, + TPM_CHIP_FLAG_HWRNG_DISABLED = 512, + TPM_CHIP_FLAG_DISABLE = 1024, +}; + +enum tpm_duration { + TPM_SHORT = 0, + TPM_MEDIUM = 1, + TPM_LONG = 2, + TPM_LONG_LONG = 3, + TPM_UNDEFINED = 4, + TPM_NUM_DURATIONS = 4, +}; + +enum tpm_pcrs { + TPM_PCR0 = 0, + TPM_PCR8 = 8, + TPM_PCR10 = 10, +}; + +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_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, +}; + +enum tpm_tis_flags { + TPM_TIS_ITPM_WORKAROUND = 0, + TPM_TIS_INVALID_STATUS = 1, + TPM_TIS_DEFAULT_CANCELLATION = 2, + TPM_TIS_IRQ_TESTED = 3, + TPM_TIS_STATUS_VALID_RETRY = 4, +}; + +enum tpm_tis_io_mode { + TPM_TIS_PHYS_8 = 0, + TPM_TIS_PHYS_16 = 1, + TPM_TIS_PHYS_32 = 2, +}; + +enum tps65090_cells { + PMIC = 0, + CHARGER = 1, +}; + +enum tps65912_irqs { + TPS65912_IRQ_PWRHOLD_F = 0, + TPS65912_IRQ_VMON = 1, + TPS65912_IRQ_PWRON = 2, + TPS65912_IRQ_PWRON_LP = 3, + TPS65912_IRQ_PWRHOLD_R = 4, + TPS65912_IRQ_HOTDIE = 5, + TPS65912_IRQ_GPIO1_R = 6, + TPS65912_IRQ_GPIO1_F = 7, + TPS65912_IRQ_GPIO2_R = 8, + TPS65912_IRQ_GPIO2_F = 9, + TPS65912_IRQ_GPIO3_R = 10, + TPS65912_IRQ_GPIO3_F = 11, + TPS65912_IRQ_GPIO4_R = 12, + TPS65912_IRQ_GPIO4_F = 13, + TPS65912_IRQ_GPIO5_R = 14, + TPS65912_IRQ_GPIO5_F = 15, + TPS65912_IRQ_PGOOD_DCDC1 = 16, + TPS65912_IRQ_PGOOD_DCDC2 = 17, + TPS65912_IRQ_PGOOD_DCDC3 = 18, + TPS65912_IRQ_PGOOD_DCDC4 = 19, + TPS65912_IRQ_PGOOD_LDO1 = 20, + TPS65912_IRQ_PGOOD_LDO2 = 21, + TPS65912_IRQ_PGOOD_LDO3 = 22, + TPS65912_IRQ_PGOOD_LDO4 = 23, + TPS65912_IRQ_PGOOD_LDO5 = 24, + TPS65912_IRQ_PGOOD_LDO6 = 25, + TPS65912_IRQ_PGOOD_LDO7 = 26, + TPS65912_IRQ_PGOOD_LDO8 = 27, + TPS65912_IRQ_PGOOD_LDO9 = 28, + TPS65912_IRQ_PGOOD_LDO10 = 29, +}; + +enum tps65917_irqs { + TPS65917_RESERVED1 = 0, + TPS65917_PWRON_IRQ = 1, + TPS65917_LONG_PRESS_KEY_IRQ = 2, + TPS65917_RESERVED2 = 3, + TPS65917_PWRDOWN_IRQ = 4, + TPS65917_HOTDIE_IRQ = 5, + TPS65917_VSYS_MON_IRQ = 6, + TPS65917_RESERVED3 = 7, + TPS65917_RESERVED4 = 8, + TPS65917_OTP_ERROR_IRQ = 9, + TPS65917_WDT_IRQ = 10, + TPS65917_RESERVED5 = 11, + TPS65917_RESET_IN_IRQ = 12, + TPS65917_FSD_IRQ = 13, + TPS65917_SHORT_IRQ = 14, + TPS65917_RESERVED6 = 15, + TPS65917_GPADC_AUTO_0_IRQ = 16, + TPS65917_GPADC_AUTO_1_IRQ = 17, + TPS65917_GPADC_EOC_SW_IRQ = 18, + TPS65917_RESREVED6 = 19, + TPS65917_RESERVED7 = 20, + TPS65917_RESERVED8 = 21, + TPS65917_RESERVED9 = 22, + TPS65917_VBUS_IRQ = 23, + TPS65917_GPIO_0_IRQ = 24, + TPS65917_GPIO_1_IRQ = 25, + TPS65917_GPIO_2_IRQ = 26, + TPS65917_GPIO_3_IRQ = 27, + TPS65917_GPIO_4_IRQ = 28, + TPS65917_GPIO_5_IRQ = 29, + TPS65917_GPIO_6_IRQ = 30, + TPS65917_RESERVED10 = 31, + TPS65917_NUM_IRQ = 32, +}; + +enum trace_flag_type { + TRACE_FLAG_IRQS_OFF = 1, + TRACE_FLAG_NEED_RESCHED_LAZY = 2, + TRACE_FLAG_NEED_RESCHED = 4, + TRACE_FLAG_HARDIRQ = 8, + TRACE_FLAG_SOFTIRQ = 16, + TRACE_FLAG_PREEMPT_RESCHED = 32, + TRACE_FLAG_NMI = 64, + TRACE_FLAG_BH_OFF = 128, +}; + +enum trace_iter_flags { + TRACE_FILE_LAT_FMT = 1, + TRACE_FILE_ANNOTATE = 2, + TRACE_FILE_TIME_IN_NS = 4, +}; + +enum trace_iterator_bits { + TRACE_ITER_PRINT_PARENT_BIT = 0, + TRACE_ITER_SYM_OFFSET_BIT = 1, + TRACE_ITER_SYM_ADDR_BIT = 2, + TRACE_ITER_VERBOSE_BIT = 3, + TRACE_ITER_RAW_BIT = 4, + TRACE_ITER_HEX_BIT = 5, + TRACE_ITER_BIN_BIT = 6, + TRACE_ITER_BLOCK_BIT = 7, + TRACE_ITER_FIELDS_BIT = 8, + TRACE_ITER_PRINTK_BIT = 9, + TRACE_ITER_ANNOTATE_BIT = 10, + TRACE_ITER_USERSTACKTRACE_BIT = 11, + TRACE_ITER_SYM_USEROBJ_BIT = 12, + TRACE_ITER_PRINTK_MSGONLY_BIT = 13, + TRACE_ITER_CONTEXT_INFO_BIT = 14, + TRACE_ITER_LATENCY_FMT_BIT = 15, + TRACE_ITER_RECORD_CMD_BIT = 16, + TRACE_ITER_RECORD_TGID_BIT = 17, + TRACE_ITER_OVERWRITE_BIT = 18, + TRACE_ITER_STOP_ON_FREE_BIT = 19, + TRACE_ITER_IRQ_INFO_BIT = 20, + TRACE_ITER_MARKERS_BIT = 21, + TRACE_ITER_EVENT_FORK_BIT = 22, + TRACE_ITER_TRACE_PRINTK_BIT = 23, + TRACE_ITER_PAUSE_ON_TRACE_BIT = 24, + TRACE_ITER_HASH_PTR_BIT = 25, + TRACE_ITER_FUNCTION_BIT = 26, + TRACE_ITER_FUNC_FORK_BIT = 27, + TRACE_ITER_DISPLAY_GRAPH_BIT = 28, + TRACE_ITER_STACKTRACE_BIT = 29, + TRACE_ITER_LAST_BIT = 30, +}; + +enum trace_iterator_flags { + TRACE_ITER_PRINT_PARENT = 1, + TRACE_ITER_SYM_OFFSET = 2, + TRACE_ITER_SYM_ADDR = 4, + TRACE_ITER_VERBOSE = 8, + TRACE_ITER_RAW = 16, + TRACE_ITER_HEX = 32, + TRACE_ITER_BIN = 64, + TRACE_ITER_BLOCK = 128, + TRACE_ITER_FIELDS = 256, + TRACE_ITER_PRINTK = 512, + TRACE_ITER_ANNOTATE = 1024, + TRACE_ITER_USERSTACKTRACE = 2048, + TRACE_ITER_SYM_USEROBJ = 4096, + TRACE_ITER_PRINTK_MSGONLY = 8192, + TRACE_ITER_CONTEXT_INFO = 16384, + TRACE_ITER_LATENCY_FMT = 32768, + TRACE_ITER_RECORD_CMD = 65536, + TRACE_ITER_RECORD_TGID = 131072, + TRACE_ITER_OVERWRITE = 262144, + TRACE_ITER_STOP_ON_FREE = 524288, + TRACE_ITER_IRQ_INFO = 1048576, + TRACE_ITER_MARKERS = 2097152, + TRACE_ITER_EVENT_FORK = 4194304, + TRACE_ITER_TRACE_PRINTK = 8388608, + TRACE_ITER_PAUSE_ON_TRACE = 16777216, + TRACE_ITER_HASH_PTR = 33554432, + TRACE_ITER_FUNCTION = 67108864, + TRACE_ITER_FUNC_FORK = 134217728, + TRACE_ITER_DISPLAY_GRAPH = 268435456, + TRACE_ITER_STACKTRACE = 536870912, +}; + +enum trace_reg { + TRACE_REG_REGISTER = 0, + TRACE_REG_UNREGISTER = 1, + TRACE_REG_PERF_REGISTER = 2, + TRACE_REG_PERF_UNREGISTER = 3, + TRACE_REG_PERF_OPEN = 4, + TRACE_REG_PERF_CLOSE = 5, + TRACE_REG_PERF_ADD = 6, + TRACE_REG_PERF_DEL = 7, +}; + +enum 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_GRAPH_RETADDR_ENT = 12, + TRACE_USER_STACK = 13, + TRACE_BLK = 14, + TRACE_BPUTS = 15, + TRACE_HWLAT = 16, + TRACE_OSNOISE = 17, + TRACE_TIMERLAT = 18, + TRACE_RAW_DATA = 19, + TRACE_FUNC_REPEATS = 20, + __TRACE_LAST_TYPE = 21, +}; + +enum track_item { + TRACK_ALLOC = 0, + TRACK_FREE = 1, +}; + +enum trans_regime { + TR_EL10 = 0, + TR_EL20 = 1, + TR_EL2 = 2, +}; + +enum translation_map { + LAT1_MAP = 0, + GRAF_MAP = 1, + IBMPC_MAP = 2, + USER_MAP = 3, + FIRST_MAP = 0, + LAST_MAP = 3, +}; + +enum transparent_hugepage_flag { + TRANSPARENT_HUGEPAGE_UNSUPPORTED = 0, + TRANSPARENT_HUGEPAGE_FLAG = 1, + TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG = 2, + TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG = 3, + TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG = 4, + TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG = 5, + TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG = 6, + TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG = 7, + TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG = 8, +}; + +enum trap_behaviour { + BEHAVE_HANDLE_LOCALLY = 0, + BEHAVE_FORWARD_READ = 1, + BEHAVE_FORWARD_WRITE = 2, + BEHAVE_FORWARD_RW = 3, + BEHAVE_FORWARD_IN_HOST_EL0 = 4, +}; + +enum tsq_enum { + TSQ_THROTTLED = 0, + TSQ_QUEUED = 1, + TCP_TSQ_DEFERRED = 2, + TCP_WRITE_TIMER_DEFERRED = 3, + TCP_DELACK_TIMER_DEFERRED = 4, + TCP_MTU_REDUCED_DEFERRED = 5, + TCP_ACK_DEFERRED = 6, +}; + +enum tsq_flags { + TSQF_THROTTLED = 1, + TSQF_QUEUED = 2, + TCPF_TSQ_DEFERRED = 4, + TCPF_WRITE_TIMER_DEFERRED = 8, + TCPF_DELACK_TIMER_DEFERRED = 16, + TCPF_MTU_REDUCED_DEFERRED = 32, + TCPF_ACK_DEFERRED = 64, +}; + +enum ttu_flags { + TTU_SPLIT_HUGE_PMD = 4, + TTU_IGNORE_MLOCK = 8, + TTU_SYNC = 16, + TTU_HWPOISON = 32, + TTU_BATCH_FLUSH = 64, + TTU_RMAP_LOCKED = 128, +}; + +enum tty_flow_change { + TTY_FLOW_NO_CHANGE = 0, + TTY_THROTTLE_SAFE = 1, + TTY_UNTHROTTLE_SAFE = 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 twl4030_audio_res { + TWL4030_AUDIO_RES_POWER = 0, + TWL4030_AUDIO_RES_APLL = 1, + TWL4030_AUDIO_RES_MAX = 2, +}; + +enum twl4030_module_ids { + TWL4030_MODULE_AUDIO_VOICE = 9, + TWL4030_MODULE_GPIO = 10, + TWL4030_MODULE_INTBR = 11, + TWL4030_MODULE_TEST = 12, + TWL4030_MODULE_KEYPAD = 13, + TWL4030_MODULE_MADC = 14, + TWL4030_MODULE_INTERRUPTS = 15, + TWL4030_MODULE_PRECHARGE = 16, + TWL4030_MODULE_BACKUP = 17, + TWL4030_MODULE_INT = 18, + TWL5031_MODULE_ACCESSORY = 19, + TWL5031_MODULE_INTERRUPTS = 20, + TWL4030_MODULE_LAST = 21, +}; + +enum twl6030_module_ids { + TWL6030_MODULE_ID0 = 9, + TWL6030_MODULE_ID1 = 10, + TWL6030_MODULE_ID2 = 11, + TWL6030_MODULE_GPADC = 12, + TWL6030_MODULE_GASGAUGE = 13, + TWL6032_MODULE_CHARGE = 14, + TWL6030_MODULE_LAST = 15, +}; + +enum twl_module_ids { + TWL_MODULE_USB = 0, + TWL_MODULE_PIH = 1, + TWL_MODULE_MAIN_CHARGE = 2, + TWL_MODULE_PM_MASTER = 3, + TWL_MODULE_PM_RECEIVER = 4, + TWL_MODULE_RTC = 5, + TWL_MODULE_PWM = 6, + TWL_MODULE_LED = 7, + TWL_MODULE_SECURED_REG = 8, + TWL_MODULE_LAST = 9, +}; + +enum tx3589x_block { + TC3589x_BLOCK_GPIO = 1, + TC3589x_BLOCK_KEYPAD = 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 uart_pm_state { + UART_PM_STATE_ON = 0, + UART_PM_STATE_OFF = 3, + UART_PM_STATE_UNDEFINED = 4, +}; + +enum ucc_fast_channel_protocol_mode { + UCC_FAST_PROTOCOL_MODE_HDLC = 0, + UCC_FAST_PROTOCOL_MODE_RESERVED01 = 1, + UCC_FAST_PROTOCOL_MODE_RESERVED_QMC = 2, + UCC_FAST_PROTOCOL_MODE_RESERVED02 = 3, + UCC_FAST_PROTOCOL_MODE_RESERVED_UART = 4, + UCC_FAST_PROTOCOL_MODE_RESERVED03 = 5, + UCC_FAST_PROTOCOL_MODE_RESERVED_EX_MAC_1 = 6, + UCC_FAST_PROTOCOL_MODE_RESERVED_EX_MAC_2 = 7, + UCC_FAST_PROTOCOL_MODE_RESERVED_BISYNC = 8, + UCC_FAST_PROTOCOL_MODE_RESERVED04 = 9, + UCC_FAST_PROTOCOL_MODE_ATM = 10, + UCC_FAST_PROTOCOL_MODE_RESERVED05 = 11, + UCC_FAST_PROTOCOL_MODE_ETHERNET = 12, + UCC_FAST_PROTOCOL_MODE_RESERVED06 = 13, + UCC_FAST_PROTOCOL_MODE_POS = 14, + UCC_FAST_PROTOCOL_MODE_RESERVED07 = 15, +}; + +enum ucc_fast_rx_decoding_method { + UCC_FAST_RX_ENCODING_NRZ = 0, + UCC_FAST_RX_ENCODING_NRZI = 2048, + UCC_FAST_RX_ENCODING_RESERVED0 = 4096, + UCC_FAST_RX_ENCODING_RESERVED1 = 6144, +}; + +enum ucc_fast_sync_len { + UCC_FAST_SYNC_LEN_NOT_USED = 0, + UCC_FAST_SYNC_LEN_AUTOMATIC = 16384, + UCC_FAST_SYNC_LEN_8_BIT = 32768, + UCC_FAST_SYNC_LEN_16_BIT = 49152, +}; + +enum ucc_fast_transparent_tcrc { + UCC_FAST_16_BIT_CRC = 0, + UCC_FAST_CRC_RESERVED0 = 64, + UCC_FAST_32_BIT_CRC = 128, + UCC_FAST_CRC_RESERVED1 = 192, +}; + +enum ucc_fast_transparent_txrx { + UCC_FAST_GUMR_TRANSPARENT_TTX_TRX_NORMAL = 0, + UCC_FAST_GUMR_TRANSPARENT_TTX_TRX_TRANSPARENT = 402653184, +}; + +enum ucc_fast_tx_encoding_method { + UCC_FAST_TX_ENCODING_NRZ = 0, + UCC_FAST_TX_ENCODING_NRZI = 256, + UCC_FAST_TX_ENCODING_RESERVED0 = 512, + UCC_FAST_TX_ENCODING_RESERVED1 = 768, +}; + +enum ucc_slow_channel_protocol_mode { + UCC_SLOW_CHANNEL_PROTOCOL_MODE_QMC = 2, + UCC_SLOW_CHANNEL_PROTOCOL_MODE_UART = 4, + UCC_SLOW_CHANNEL_PROTOCOL_MODE_BISYNC = 8, +}; + +enum ucc_slow_diag_mode { + UCC_SLOW_DIAG_MODE_NORMAL = 0, + UCC_SLOW_DIAG_MODE_LOOPBACK = 64, + UCC_SLOW_DIAG_MODE_ECHO = 128, + UCC_SLOW_DIAG_MODE_LOOPBACK_ECHO = 192, +}; + +enum ucc_slow_rx_decoding_method { + UCC_SLOW_RECEIVER_DECODING_METHOD_RENC_NRZ = 0, + UCC_SLOW_RECEIVER_DECODING_METHOD_RENC_NRZI = 2048, +}; + +enum ucc_slow_rx_oversampling_rate { + UCC_SLOW_OVERSAMPLING_RATE_RX_RDCR_1 = 0, + UCC_SLOW_OVERSAMPLING_RATE_RX_RDCR_8 = 16384, + UCC_SLOW_OVERSAMPLING_RATE_RX_RDCR_16 = 32768, + UCC_SLOW_OVERSAMPLING_RATE_RX_RDCR_32 = 49152, +}; + +enum ucc_slow_transparent_tcrc { + UCC_SLOW_TRANSPARENT_TCRC_CCITT_CRC16 = 0, + UCC_SLOW_TRANSPARENT_TCRC_CRC16 = 16384, + UCC_SLOW_TRANSPARENT_TCRC_CCITT_CRC32 = 32768, +}; + +enum ucc_slow_tx_encoding_method { + UCC_SLOW_TRANSMITTER_ENCODING_METHOD_TENC_NRZ = 0, + UCC_SLOW_TRANSMITTER_ENCODING_METHOD_TENC_NRZI = 256, +}; + +enum ucc_slow_tx_oversampling_rate { + UCC_SLOW_OVERSAMPLING_RATE_TX_TDCR_1 = 0, + UCC_SLOW_OVERSAMPLING_RATE_TX_TDCR_8 = 65536, + UCC_SLOW_OVERSAMPLING_RATE_TX_TDCR_16 = 131072, + UCC_SLOW_OVERSAMPLING_RATE_TX_TDCR_32 = 196608, +}; + +enum ucc_speed_type { + UCC_SPEED_TYPE_FAST = 3, + UCC_SPEED_TYPE_SLOW = 0, +}; + +enum uclamp_id { + UCLAMP_MIN = 0, + UCLAMP_MAX = 1, + UCLAMP_CNT = 2, +}; + +enum ucount_type { + UCOUNT_USER_NAMESPACES = 0, + UCOUNT_PID_NAMESPACES = 1, + UCOUNT_UTS_NAMESPACES = 2, + UCOUNT_IPC_NAMESPACES = 3, + UCOUNT_NET_NAMESPACES = 4, + UCOUNT_MNT_NAMESPACES = 5, + UCOUNT_CGROUP_NAMESPACES = 6, + UCOUNT_TIME_NAMESPACES = 7, + UCOUNT_INOTIFY_INSTANCES = 8, + UCOUNT_INOTIFY_WATCHES = 9, + UCOUNT_FANOTIFY_GROUPS = 10, + UCOUNT_FANOTIFY_MARKS = 11, + UCOUNT_COUNTS = 12, +}; + +enum udma_chan_state { + UDMA_CHAN_IS_IDLE = 0, + UDMA_CHAN_IS_ACTIVE = 1, + UDMA_CHAN_IS_TERMINATING = 2, +}; + +enum udma_mmr { + MMR_GCFG = 0, + MMR_BCHANRT = 1, + MMR_RCHANRT = 2, + MMR_TCHANRT = 3, + MMR_LAST = 4, +}; + +enum udma_rm_range { + RM_RANGE_BCHAN = 0, + RM_RANGE_TCHAN = 1, + RM_RANGE_RCHAN = 2, + RM_RANGE_RFLOW = 3, + RM_RANGE_TFLOW = 4, + RM_RANGE_LAST = 5, +}; + +enum udma_tp_level { + UDMA_TP_NORMAL = 0, + UDMA_TP_HIGH = 1, + UDMA_TP_ULTRAHIGH = 2, + UDMA_TP_LAST = 3, +}; + +enum udp_conntrack { + UDP_CT_UNREPLIED = 0, + UDP_CT_REPLIED = 1, + UDP_CT_MAX = 2, +}; + +enum udp_parsable_tunnel_type { + UDP_TUNNEL_TYPE_VXLAN = 1, + UDP_TUNNEL_TYPE_GENEVE = 2, + UDP_TUNNEL_TYPE_VXLAN_GPE = 4, +}; + +enum udp_tunnel_nic_info_flags { + UDP_TUNNEL_NIC_INFO_MAY_SLEEP = 1, + UDP_TUNNEL_NIC_INFO_OPEN_ONLY = 2, + UDP_TUNNEL_NIC_INFO_IPV4_ONLY = 4, + UDP_TUNNEL_NIC_INFO_STATIC_IANA_VXLAN = 8, +}; + +enum 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 uinput_state { + UIST_NEW_DEVICE = 0, + UIST_SETUP_COMPLETE = 1, + UIST_CREATED = 2, +}; + +enum umh_disable_depth { + UMH_ENABLED = 0, + UMH_FREEZING = 1, + UMH_DISABLED = 2, +}; + +enum umount_tree_flags { + UMOUNT_SYNC = 1, + UMOUNT_PROPAGATE = 2, + UMOUNT_CONNECTED = 4, +}; + +enum unix_vertex_index { + UNIX_VERTEX_INDEX_MARK1 = 0, + UNIX_VERTEX_INDEX_MARK2 = 1, + UNIX_VERTEX_INDEX_START = 2, +}; + +enum uprobe_task_state { + UTASK_RUNNING = 0, + UTASK_SSTEP = 1, + UTASK_SSTEP_ACK = 2, + UTASK_SSTEP_TRAPPED = 3, +}; + +enum usb3_link_state { + USB3_LPM_U0 = 0, + USB3_LPM_U1 = 1, + USB3_LPM_U2 = 2, + USB3_LPM_U3 = 3, +}; + +enum usb_charger_state { + USB_CHARGER_DEFAULT = 0, + USB_CHARGER_PRESENT = 1, + USB_CHARGER_ABSENT = 2, +}; + +enum usb_charger_type { + UNKNOWN_TYPE = 0, + SDP_TYPE = 1, + DCP_TYPE = 2, + CDP_TYPE = 3, + ACA_TYPE = 4, +}; + +enum usb_dev_authorize_policy { + USB_DEVICE_AUTHORIZE_NONE = 0, + USB_DEVICE_AUTHORIZE_ALL = 1, + USB_DEVICE_AUTHORIZE_INTERNAL = 2, +}; + +enum usb_device_speed { + USB_SPEED_UNKNOWN = 0, + USB_SPEED_LOW = 1, + USB_SPEED_FULL = 2, + USB_SPEED_HIGH = 3, + USB_SPEED_WIRELESS = 4, + USB_SPEED_SUPER = 5, + USB_SPEED_SUPER_PLUS = 6, +}; + +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_dr_mode { + USB_DR_MODE_UNKNOWN = 0, + USB_DR_MODE_HOST = 1, + USB_DR_MODE_PERIPHERAL = 2, + USB_DR_MODE_OTG = 3, +}; + +enum usb_interface_condition { + USB_INTERFACE_UNBOUND = 0, + USB_INTERFACE_BINDING = 1, + USB_INTERFACE_BOUND = 2, + USB_INTERFACE_UNBINDING = 3, +}; + +enum usb_led_event { + USB_LED_EVENT_HOST = 0, + USB_LED_EVENT_GADGET = 1, +}; + +enum usb_link_tunnel_mode { + USB_LINK_UNKNOWN = 0, + USB_LINK_NATIVE = 1, + USB_LINK_TUNNELED = 2, +}; + +enum usb_otg_state { + OTG_STATE_UNDEFINED = 0, + OTG_STATE_B_IDLE = 1, + OTG_STATE_B_SRP_INIT = 2, + OTG_STATE_B_PERIPHERAL = 3, + OTG_STATE_B_WAIT_ACON = 4, + OTG_STATE_B_HOST = 5, + OTG_STATE_A_IDLE = 6, + OTG_STATE_A_WAIT_VRISE = 7, + OTG_STATE_A_WAIT_BCON = 8, + OTG_STATE_A_HOST = 9, + OTG_STATE_A_SUSPEND = 10, + OTG_STATE_A_PERIPHERAL = 11, + OTG_STATE_A_WAIT_VFALL = 12, + OTG_STATE_A_VBUS_ERR = 13, +}; + +enum usb_phy_events { + USB_EVENT_NONE = 0, + USB_EVENT_VBUS = 1, + USB_EVENT_ID = 2, + USB_EVENT_CHARGER = 3, + USB_EVENT_ENUMERATED = 4, +}; + +enum usb_phy_interface { + USBPHY_INTERFACE_MODE_UNKNOWN = 0, + USBPHY_INTERFACE_MODE_UTMI = 1, + USBPHY_INTERFACE_MODE_UTMIW = 2, + USBPHY_INTERFACE_MODE_ULPI = 3, + USBPHY_INTERFACE_MODE_SERIAL = 4, + USBPHY_INTERFACE_MODE_HSIC = 5, +}; + +enum usb_phy_type { + USB_PHY_TYPE_UNDEFINED = 0, + USB_PHY_TYPE_USB2 = 1, + USB_PHY_TYPE_USB3 = 2, +}; + +enum usb_port_connect_type { + USB_PORT_CONNECT_TYPE_UNKNOWN = 0, + USB_PORT_CONNECT_TYPE_HOT_PLUG = 1, + USB_PORT_CONNECT_TYPE_HARD_WIRED = 2, + USB_PORT_NOT_USED = 3, +}; + +enum usb_role { + USB_ROLE_NONE = 0, + USB_ROLE_HOST = 1, + USB_ROLE_DEVICE = 2, +}; + +enum usb_ssp_rate { + USB_SSP_GEN_UNKNOWN = 0, + USB_SSP_GEN_2x1 = 1, + USB_SSP_GEN_1x2 = 2, + USB_SSP_GEN_2x2 = 3, +}; + +enum usb_wireless_status { + USB_WIRELESS_STATUS_NA = 0, + USB_WIRELESS_STATUS_DISCONNECTED = 1, + USB_WIRELESS_STATUS_CONNECTED = 2, +}; + +enum user_reg_flag { + USER_EVENT_REG_PERSIST = 1, + USER_EVENT_REG_MULTI_FORMAT = 2, + USER_EVENT_REG_MAX = 4, +}; + +enum utf16_endian { + UTF16_HOST_ENDIAN = 0, + UTF16_LITTLE_ENDIAN = 1, + UTF16_BIG_ENDIAN = 2, +}; + +enum utf8_normalization { + UTF8_NFDI = 0, + UTF8_NFDICF = 1, + UTF8_NMAX = 2, +}; + +enum uts_proc { + UTS_PROC_ARCH = 0, + UTS_PROC_OSTYPE = 1, + UTS_PROC_OSRELEASE = 2, + UTS_PROC_VERSION = 3, + UTS_PROC_HOSTNAME = 4, + UTS_PROC_DOMAINNAME = 5, +}; + +enum v4l2_av1_segment_feature { + V4L2_AV1_SEG_LVL_ALT_Q = 0, + V4L2_AV1_SEG_LVL_ALT_LF_Y_V = 1, + V4L2_AV1_SEG_LVL_REF_FRAME = 5, + V4L2_AV1_SEG_LVL_REF_SKIP = 6, + V4L2_AV1_SEG_LVL_REF_GLOBALMV = 7, + V4L2_AV1_SEG_LVL_MAX = 8, +}; + +enum v4l2_fwnode_bus_type { + V4L2_FWNODE_BUS_TYPE_GUESS = 0, + V4L2_FWNODE_BUS_TYPE_CSI2_CPHY = 1, + V4L2_FWNODE_BUS_TYPE_CSI1 = 2, + V4L2_FWNODE_BUS_TYPE_CCP2 = 3, + V4L2_FWNODE_BUS_TYPE_CSI2_DPHY = 4, + V4L2_FWNODE_BUS_TYPE_PARALLEL = 5, + V4L2_FWNODE_BUS_TYPE_BT656 = 6, + V4L2_FWNODE_BUS_TYPE_DPI = 7, + NR_OF_V4L2_FWNODE_BUS_TYPE = 8, +}; + +enum v4l2_preemphasis { + V4L2_PREEMPHASIS_DISABLED = 0, + V4L2_PREEMPHASIS_50_uS = 1, + V4L2_PREEMPHASIS_75_uS = 2, +}; + +enum vc_ctl_state { + ESnormal = 0, + ESesc = 1, + ESsquare = 2, + ESgetpars = 3, + ESfunckey = 4, + EShash = 5, + ESsetG0 = 6, + ESsetG1 = 7, + ESpercent = 8, + EScsiignore = 9, + ESnonstd = 10, + ESpalette = 11, + ESosc = 12, + ESANSI_first = 12, + ESapc = 13, + ESpm = 14, + ESdcs = 15, + ESANSI_last = 15, +}; + +enum vc_intensity { + VCI_HALF_BRIGHT = 0, + VCI_NORMAL = 1, + VCI_BOLD = 2, + VCI_MASK = 3, +}; + +enum vcap_action_field { + VCAP_AF_NO_VALUE = 0, + VCAP_AF_ACL_ID = 1, + VCAP_AF_CLS_VID_SEL = 2, + VCAP_AF_CNT_ID = 3, + VCAP_AF_COPY_PORT_NUM = 4, + VCAP_AF_COPY_QUEUE_NUM = 5, + VCAP_AF_CPU_COPY_ENA = 6, + VCAP_AF_CPU_QU = 7, + VCAP_AF_CPU_QUEUE_NUM = 8, + VCAP_AF_CUSTOM_ACE_TYPE_ENA = 9, + VCAP_AF_DEI_A_VAL = 10, + VCAP_AF_DEI_B_VAL = 11, + VCAP_AF_DEI_C_VAL = 12, + VCAP_AF_DEI_ENA = 13, + VCAP_AF_DEI_VAL = 14, + VCAP_AF_DLR_SEL = 15, + VCAP_AF_DP_ENA = 16, + VCAP_AF_DP_VAL = 17, + VCAP_AF_DSCP_ENA = 18, + VCAP_AF_DSCP_SEL = 19, + VCAP_AF_DSCP_VAL = 20, + VCAP_AF_ES2_REW_CMD = 21, + VCAP_AF_ESDX = 22, + VCAP_AF_FWD_KILL_ENA = 23, + VCAP_AF_FWD_MODE = 24, + VCAP_AF_FWD_SEL = 25, + VCAP_AF_HIT_ME_ONCE = 26, + VCAP_AF_HOST_MATCH = 27, + VCAP_AF_IGNORE_PIPELINE_CTRL = 28, + VCAP_AF_INTR_ENA = 29, + VCAP_AF_ISDX_ADD_REPLACE_SEL = 30, + VCAP_AF_ISDX_ADD_VAL = 31, + VCAP_AF_ISDX_ENA = 32, + VCAP_AF_ISDX_REPLACE_ENA = 33, + VCAP_AF_ISDX_VAL = 34, + VCAP_AF_LOOP_ENA = 35, + VCAP_AF_LRN_DIS = 36, + VCAP_AF_MAP_IDX = 37, + VCAP_AF_MAP_KEY = 38, + VCAP_AF_MAP_LOOKUP_SEL = 39, + VCAP_AF_MASK_MODE = 40, + VCAP_AF_MATCH_ID = 41, + VCAP_AF_MATCH_ID_MASK = 42, + VCAP_AF_MIRROR_ENA = 43, + VCAP_AF_MIRROR_PROBE = 44, + VCAP_AF_MIRROR_PROBE_ID = 45, + VCAP_AF_MRP_SEL = 46, + VCAP_AF_NXT_IDX = 47, + VCAP_AF_NXT_IDX_CTRL = 48, + VCAP_AF_OAM_SEL = 49, + VCAP_AF_PAG_OVERRIDE_MASK = 50, + VCAP_AF_PAG_VAL = 51, + VCAP_AF_PCP_A_VAL = 52, + VCAP_AF_PCP_B_VAL = 53, + VCAP_AF_PCP_C_VAL = 54, + VCAP_AF_PCP_ENA = 55, + VCAP_AF_PCP_VAL = 56, + VCAP_AF_PIPELINE_ACT = 57, + VCAP_AF_PIPELINE_FORCE_ENA = 58, + VCAP_AF_PIPELINE_PT = 59, + VCAP_AF_POLICE_ENA = 60, + VCAP_AF_POLICE_IDX = 61, + VCAP_AF_POLICE_REMARK = 62, + VCAP_AF_POLICE_VCAP_ONLY = 63, + VCAP_AF_POP_VAL = 64, + VCAP_AF_PORT_MASK = 65, + VCAP_AF_PUSH_CUSTOMER_TAG = 66, + VCAP_AF_PUSH_INNER_TAG = 67, + VCAP_AF_PUSH_OUTER_TAG = 68, + VCAP_AF_QOS_ENA = 69, + VCAP_AF_QOS_VAL = 70, + VCAP_AF_REW_OP = 71, + VCAP_AF_RT_DIS = 72, + VCAP_AF_SFID_ENA = 73, + VCAP_AF_SFID_VAL = 74, + VCAP_AF_SGID_ENA = 75, + VCAP_AF_SGID_VAL = 76, + VCAP_AF_SWAP_MACS_ENA = 77, + VCAP_AF_TAG_A_DEI_SEL = 78, + VCAP_AF_TAG_A_PCP_SEL = 79, + VCAP_AF_TAG_A_TPID_SEL = 80, + VCAP_AF_TAG_A_VID_SEL = 81, + VCAP_AF_TAG_B_DEI_SEL = 82, + VCAP_AF_TAG_B_PCP_SEL = 83, + VCAP_AF_TAG_B_TPID_SEL = 84, + VCAP_AF_TAG_B_VID_SEL = 85, + VCAP_AF_TAG_C_DEI_SEL = 86, + VCAP_AF_TAG_C_PCP_SEL = 87, + VCAP_AF_TAG_C_TPID_SEL = 88, + VCAP_AF_TAG_C_VID_SEL = 89, + VCAP_AF_TYPE = 90, + VCAP_AF_UNTAG_VID_ENA = 91, + VCAP_AF_VID_A_VAL = 92, + VCAP_AF_VID_B_VAL = 93, + VCAP_AF_VID_C_VAL = 94, + VCAP_AF_VID_REPLACE_ENA = 95, + VCAP_AF_VID_VAL = 96, + VCAP_AF_VLAN_POP_CNT = 97, + VCAP_AF_VLAN_POP_CNT_ENA = 98, +}; + +enum vcap_actionfield_set { + VCAP_AFS_NO_VALUE = 0, + VCAP_AFS_BASE_TYPE = 1, + VCAP_AFS_CLASSIFICATION = 2, + VCAP_AFS_CLASS_REDUCED = 3, + VCAP_AFS_ES0 = 4, + VCAP_AFS_FULL = 5, + VCAP_AFS_S1 = 6, + VCAP_AFS_SMAC_SIP = 7, + VCAP_AFS_VID = 8, +}; + +enum vcap_arp_opcode { + VCAP_ARP_OP_RESERVED = 0, + VCAP_ARP_OP_REQUEST = 1, + VCAP_ARP_OP_REPLY = 2, +}; + +enum vcap_bit { + VCAP_BIT_ANY = 0, + VCAP_BIT_0 = 1, + VCAP_BIT_1 = 2, +}; + +enum vcap_command { + VCAP_CMD_WRITE = 0, + VCAP_CMD_READ = 1, + VCAP_CMD_MOVE_DOWN = 2, + VCAP_CMD_MOVE_UP = 3, + VCAP_CMD_INITIALIZE = 4, +}; + +enum vcap_field_type { + VCAP_FIELD_BIT = 0, + VCAP_FIELD_U32 = 1, + VCAP_FIELD_U48 = 2, + VCAP_FIELD_U56 = 3, + VCAP_FIELD_U64 = 4, + VCAP_FIELD_U72 = 5, + VCAP_FIELD_U112 = 6, + VCAP_FIELD_U128 = 7, +}; + +enum vcap_is2_arp_opcode { + VCAP_IS2_ARP_REQUEST = 0, + VCAP_IS2_ARP_REPLY = 1, + VCAP_IS2_RARP_REQUEST = 2, + VCAP_IS2_RARP_REPLY = 3, +}; + +enum vcap_key_field { + VCAP_KF_NO_VALUE = 0, + VCAP_KF_8021BR_ECID_BASE = 1, + VCAP_KF_8021BR_ECID_EXT = 2, + VCAP_KF_8021BR_E_TAGGED = 3, + VCAP_KF_8021BR_GRP = 4, + VCAP_KF_8021BR_IGR_ECID_BASE = 5, + VCAP_KF_8021BR_IGR_ECID_EXT = 6, + VCAP_KF_8021CB_R_TAGGED_IS = 7, + VCAP_KF_8021Q_DEI0 = 8, + VCAP_KF_8021Q_DEI1 = 9, + VCAP_KF_8021Q_DEI2 = 10, + VCAP_KF_8021Q_DEI_CLS = 11, + VCAP_KF_8021Q_PCP0 = 12, + VCAP_KF_8021Q_PCP1 = 13, + VCAP_KF_8021Q_PCP2 = 14, + VCAP_KF_8021Q_PCP_CLS = 15, + VCAP_KF_8021Q_TPID = 16, + VCAP_KF_8021Q_TPID0 = 17, + VCAP_KF_8021Q_TPID1 = 18, + VCAP_KF_8021Q_TPID2 = 19, + VCAP_KF_8021Q_VID0 = 20, + VCAP_KF_8021Q_VID1 = 21, + VCAP_KF_8021Q_VID2 = 22, + VCAP_KF_8021Q_VID_CLS = 23, + VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS = 24, + VCAP_KF_8021Q_VLAN_TAGGED_IS = 25, + VCAP_KF_8021Q_VLAN_TAGS = 26, + VCAP_KF_ACL_GRP_ID = 27, + VCAP_KF_ARP_ADDR_SPACE_OK_IS = 28, + VCAP_KF_ARP_LEN_OK_IS = 29, + VCAP_KF_ARP_OPCODE = 30, + VCAP_KF_ARP_OPCODE_UNKNOWN_IS = 31, + VCAP_KF_ARP_PROTO_SPACE_OK_IS = 32, + VCAP_KF_ARP_SENDER_MATCH_IS = 33, + VCAP_KF_ARP_TGT_MATCH_IS = 34, + VCAP_KF_COSID_CLS = 35, + VCAP_KF_ES0_ISDX_KEY_ENA = 36, + VCAP_KF_ETYPE = 37, + VCAP_KF_ETYPE_LEN_IS = 38, + VCAP_KF_HOST_MATCH = 39, + VCAP_KF_IF_EGR_PORT_MASK = 40, + VCAP_KF_IF_EGR_PORT_MASK_RNG = 41, + VCAP_KF_IF_EGR_PORT_NO = 42, + VCAP_KF_IF_IGR_PORT = 43, + VCAP_KF_IF_IGR_PORT_MASK = 44, + VCAP_KF_IF_IGR_PORT_MASK_L3 = 45, + VCAP_KF_IF_IGR_PORT_MASK_RNG = 46, + VCAP_KF_IF_IGR_PORT_MASK_SEL = 47, + VCAP_KF_IF_IGR_PORT_SEL = 48, + VCAP_KF_IP4_IS = 49, + VCAP_KF_IP_MC_IS = 50, + VCAP_KF_IP_PAYLOAD_5TUPLE = 51, + VCAP_KF_IP_PAYLOAD_S1_IP6 = 52, + VCAP_KF_IP_SNAP_IS = 53, + VCAP_KF_ISDX_CLS = 54, + VCAP_KF_ISDX_GT0_IS = 55, + VCAP_KF_L2_BC_IS = 56, + VCAP_KF_L2_DMAC = 57, + VCAP_KF_L2_FRM_TYPE = 58, + VCAP_KF_L2_FWD_IS = 59, + VCAP_KF_L2_LLC = 60, + VCAP_KF_L2_MAC = 61, + VCAP_KF_L2_MC_IS = 62, + VCAP_KF_L2_PAYLOAD0 = 63, + VCAP_KF_L2_PAYLOAD1 = 64, + VCAP_KF_L2_PAYLOAD2 = 65, + VCAP_KF_L2_PAYLOAD_ETYPE = 66, + VCAP_KF_L2_SMAC = 67, + VCAP_KF_L2_SNAP = 68, + VCAP_KF_L3_DIP_EQ_SIP_IS = 69, + VCAP_KF_L3_DPL_CLS = 70, + VCAP_KF_L3_DSCP = 71, + VCAP_KF_L3_DST_IS = 72, + VCAP_KF_L3_FRAGMENT = 73, + VCAP_KF_L3_FRAGMENT_TYPE = 74, + VCAP_KF_L3_FRAG_INVLD_L4_LEN = 75, + VCAP_KF_L3_FRAG_OFS_GT0 = 76, + VCAP_KF_L3_IP4_DIP = 77, + VCAP_KF_L3_IP4_SIP = 78, + VCAP_KF_L3_IP6_DIP = 79, + VCAP_KF_L3_IP6_DIP_MSB = 80, + VCAP_KF_L3_IP6_SIP = 81, + VCAP_KF_L3_IP6_SIP_MSB = 82, + VCAP_KF_L3_IP_PROTO = 83, + VCAP_KF_L3_OPTIONS_IS = 84, + VCAP_KF_L3_PAYLOAD = 85, + VCAP_KF_L3_RT_IS = 86, + VCAP_KF_L3_TOS = 87, + VCAP_KF_L3_TTL_GT0 = 88, + VCAP_KF_L4_1588_DOM = 89, + VCAP_KF_L4_1588_VER = 90, + VCAP_KF_L4_ACK = 91, + VCAP_KF_L4_DPORT = 92, + VCAP_KF_L4_FIN = 93, + VCAP_KF_L4_PAYLOAD = 94, + VCAP_KF_L4_PSH = 95, + VCAP_KF_L4_RNG = 96, + VCAP_KF_L4_RST = 97, + VCAP_KF_L4_SEQUENCE_EQ0_IS = 98, + VCAP_KF_L4_SPORT = 99, + VCAP_KF_L4_SPORT_EQ_DPORT_IS = 100, + VCAP_KF_L4_SYN = 101, + VCAP_KF_L4_URG = 102, + VCAP_KF_LOOKUP_FIRST_IS = 103, + VCAP_KF_LOOKUP_GEN_IDX = 104, + VCAP_KF_LOOKUP_GEN_IDX_SEL = 105, + VCAP_KF_LOOKUP_INDEX = 106, + VCAP_KF_LOOKUP_PAG = 107, + VCAP_KF_MIRROR_PROBE = 108, + VCAP_KF_OAM_CCM_CNTS_EQ0 = 109, + VCAP_KF_OAM_DETECTED = 110, + VCAP_KF_OAM_FLAGS = 111, + VCAP_KF_OAM_MEL_FLAGS = 112, + VCAP_KF_OAM_MEPID = 113, + VCAP_KF_OAM_OPCODE = 114, + VCAP_KF_OAM_VER = 115, + VCAP_KF_OAM_Y1731_IS = 116, + VCAP_KF_PDU_TYPE = 117, + VCAP_KF_PROT_ACTIVE = 118, + VCAP_KF_RTP_ID = 119, + VCAP_KF_RT_FRMID = 120, + VCAP_KF_RT_TYPE = 121, + VCAP_KF_RT_VLAN_IDX = 122, + VCAP_KF_TCP_IS = 123, + VCAP_KF_TCP_UDP_IS = 124, + VCAP_KF_TYPE = 125, +}; + +enum vcap_keyfield_set { + VCAP_KFS_NO_VALUE = 0, + VCAP_KFS_5TUPLE_IP4 = 1, + VCAP_KFS_5TUPLE_IP6 = 2, + VCAP_KFS_7TUPLE = 3, + VCAP_KFS_ARP = 4, + VCAP_KFS_DBL_VID = 5, + VCAP_KFS_DMAC_VID = 6, + VCAP_KFS_ETAG = 7, + VCAP_KFS_IP4_OTHER = 8, + VCAP_KFS_IP4_TCP_UDP = 9, + VCAP_KFS_IP4_VID = 10, + VCAP_KFS_IP6_OTHER = 11, + VCAP_KFS_IP6_STD = 12, + VCAP_KFS_IP6_TCP_UDP = 13, + VCAP_KFS_IP6_VID = 14, + VCAP_KFS_IP_7TUPLE = 15, + VCAP_KFS_ISDX = 16, + VCAP_KFS_LL_FULL = 17, + VCAP_KFS_MAC_ETYPE = 18, + VCAP_KFS_MAC_LLC = 19, + VCAP_KFS_MAC_SNAP = 20, + VCAP_KFS_NORMAL = 21, + VCAP_KFS_NORMAL_5TUPLE_IP4 = 22, + VCAP_KFS_NORMAL_7TUPLE = 23, + VCAP_KFS_NORMAL_IP6 = 24, + VCAP_KFS_OAM = 25, + VCAP_KFS_PURE_5TUPLE_IP4 = 26, + VCAP_KFS_RT = 27, + VCAP_KFS_SMAC_SIP4 = 28, + VCAP_KFS_SMAC_SIP6 = 29, + VCAP_KFS_VID = 30, +}; + +enum vcap_rule_error { + VCAP_ERR_NONE = 0, + VCAP_ERR_NO_ADMIN = 1, + VCAP_ERR_NO_NETDEV = 2, + VCAP_ERR_NO_KEYSET_MATCH = 3, + VCAP_ERR_NO_ACTIONSET_MATCH = 4, + VCAP_ERR_NO_PORT_KEYSET_MATCH = 5, +}; + +enum vcap_rule_state { + VCAP_RS_PERMANENT = 0, + VCAP_RS_ENABLED = 1, + VCAP_RS_DISABLED = 2, +}; + +enum vcap_selection { + VCAP_SEL_ENTRY = 1, + VCAP_SEL_ACTION = 2, + VCAP_SEL_COUNTER = 4, + VCAP_SEL_ALL = 255, +}; + +enum vcap_type { + VCAP_TYPE_ES0 = 0, + VCAP_TYPE_ES2 = 1, + VCAP_TYPE_IS0 = 2, + VCAP_TYPE_IS1 = 3, + VCAP_TYPE_IS2 = 4, + VCAP_TYPE_MAX = 5, +}; + +enum vcap_user { + VCAP_USER_PTP = 0, + VCAP_USER_MRP = 1, + VCAP_USER_CFM = 2, + VCAP_USER_VLAN = 3, + VCAP_USER_QOS = 4, + VCAP_USER_VCAP_UTIL = 5, + VCAP_USER_TC = 6, + VCAP_USER_TC_EXTRA = 7, + __VCAP_USER_AFTER_LAST = 8, + VCAP_USER_MAX = 7, +}; + +enum vcpu_sysreg { + __INVALID_SYSREG__ = 0, + MPIDR_EL1 = 1, + CLIDR_EL1 = 2, + CSSELR_EL1 = 3, + TPIDR_EL0 = 4, + TPIDRRO_EL0 = 5, + TPIDR_EL1 = 6, + CNTKCTL_EL1 = 7, + PAR_EL1 = 8, + MDCCINT_EL1 = 9, + OSLSR_EL1 = 10, + DISR_EL1 = 11, + PMCR_EL0 = 12, + PMSELR_EL0 = 13, + PMEVCNTR0_EL0 = 14, + PMEVCNTR30_EL0 = 44, + PMCCNTR_EL0 = 45, + PMEVTYPER0_EL0 = 46, + PMEVTYPER30_EL0 = 76, + PMCCFILTR_EL0 = 77, + PMCNTENSET_EL0 = 78, + PMINTENSET_EL1 = 79, + PMOVSSET_EL0 = 80, + PMUSERENR_EL0 = 81, + APIAKEYLO_EL1 = 82, + APIAKEYHI_EL1 = 83, + APIBKEYLO_EL1 = 84, + APIBKEYHI_EL1 = 85, + APDAKEYLO_EL1 = 86, + APDAKEYHI_EL1 = 87, + APDBKEYLO_EL1 = 88, + APDBKEYHI_EL1 = 89, + APGAKEYLO_EL1 = 90, + APGAKEYHI_EL1 = 91, + RGSR_EL1 = 92, + GCR_EL1 = 93, + TFSRE0_EL1 = 94, + POR_EL0 = 95, + SVCR = 96, + FPMR = 97, + DACR32_EL2 = 98, + IFSR32_EL2 = 99, + FPEXC32_EL2 = 100, + DBGVCR32_EL2 = 101, + SCTLR_EL2 = 102, + ACTLR_EL2 = 103, + CPTR_EL2 = 104, + HACR_EL2 = 105, + ZCR_EL2 = 106, + TTBR0_EL2 = 107, + TTBR1_EL2 = 108, + TCR_EL2 = 109, + PIRE0_EL2 = 110, + PIR_EL2 = 111, + POR_EL2 = 112, + SPSR_EL2 = 113, + ELR_EL2 = 114, + AFSR0_EL2 = 115, + AFSR1_EL2 = 116, + ESR_EL2 = 117, + FAR_EL2 = 118, + HPFAR_EL2 = 119, + MAIR_EL2 = 120, + AMAIR_EL2 = 121, + VBAR_EL2 = 122, + RVBAR_EL2 = 123, + CONTEXTIDR_EL2 = 124, + SP_EL2 = 125, + CNTHP_CTL_EL2 = 126, + CNTHP_CVAL_EL2 = 127, + CNTHV_CTL_EL2 = 128, + CNTHV_CVAL_EL2 = 129, + __SANITISED_REG_START__ = 130, + __after___SANITISED_REG_START__ = 129, + TCR2_EL2 = 130, + MDCR_EL2 = 131, + CNTHCTL_EL2 = 132, + __VNCR_START__ = 133, + __after___VNCR_START__ = 132, + __before_SCTLR_EL1 = 133, + SCTLR_EL1 = 167, + __after_SCTLR_EL1 = 167, + __before_ACTLR_EL1 = 168, + ACTLR_EL1 = 168, + __after_ACTLR_EL1 = 168, + __before_CPACR_EL1 = 169, + CPACR_EL1 = 165, + __after_CPACR_EL1 = 168, + __before_ZCR_EL1 = 169, + ZCR_EL1 = 193, + __after_ZCR_EL1 = 193, + __before_TTBR0_EL1 = 194, + TTBR0_EL1 = 197, + __after_TTBR0_EL1 = 197, + __before_TTBR1_EL1 = 198, + TTBR1_EL1 = 199, + __after_TTBR1_EL1 = 199, + __before_TCR_EL1 = 200, + TCR_EL1 = 169, + __after_TCR_EL1 = 199, + __before_TCR2_EL1 = 200, + TCR2_EL1 = 211, + __after_TCR2_EL1 = 211, + __before_ESR_EL1 = 212, + ESR_EL1 = 172, + __after_ESR_EL1 = 211, + __before_AFSR0_EL1 = 212, + AFSR0_EL1 = 170, + __after_AFSR0_EL1 = 211, + __before_AFSR1_EL1 = 212, + AFSR1_EL1 = 171, + __after_AFSR1_EL1 = 211, + __before_FAR_EL1 = 212, + FAR_EL1 = 201, + __after_FAR_EL1 = 211, + __before_MAIR_EL1 = 212, + MAIR_EL1 = 173, + __after_MAIR_EL1 = 211, + __before_VBAR_EL1 = 212, + VBAR_EL1 = 207, + __after_VBAR_EL1 = 211, + __before_CONTEXTIDR_EL1 = 212, + CONTEXTIDR_EL1 = 166, + __after_CONTEXTIDR_EL1 = 211, + __before_AMAIR_EL1 = 212, + AMAIR_EL1 = 174, + __after_AMAIR_EL1 = 211, + __before_MDSCR_EL1 = 212, + MDSCR_EL1 = 176, + __after_MDSCR_EL1 = 211, + __before_ELR_EL1 = 212, + ELR_EL1 = 203, + __after_ELR_EL1 = 211, + __before_SP_EL1 = 212, + SP_EL1 = 205, + __after_SP_EL1 = 211, + __before_SPSR_EL1 = 212, + SPSR_EL1 = 177, + __after_SPSR_EL1 = 211, + __before_TFSR_EL1 = 212, + TFSR_EL1 = 183, + __after_TFSR_EL1 = 211, + __before_VPIDR_EL2 = 212, + VPIDR_EL2 = 150, + __after_VPIDR_EL2 = 211, + __before_VMPIDR_EL2 = 212, + VMPIDR_EL2 = 143, + __after_VMPIDR_EL2 = 211, + __before_HCR_EL2 = 212, + HCR_EL2 = 148, + __after_HCR_EL2 = 211, + __before_HSTR_EL2 = 212, + HSTR_EL2 = 149, + __after_HSTR_EL2 = 211, + __before_VTTBR_EL2 = 212, + VTTBR_EL2 = 137, + __after_VTTBR_EL2 = 211, + __before_VTCR_EL2 = 212, + VTCR_EL2 = 141, + __after_VTCR_EL2 = 211, + __before_TPIDR_EL2 = 212, + TPIDR_EL2 = 151, + __after_TPIDR_EL2 = 211, + __before_HCRX_EL2 = 212, + HCRX_EL2 = 153, + __after_HCRX_EL2 = 211, + __before_PIR_EL1 = 212, + PIR_EL1 = 217, + __after_PIR_EL1 = 217, + __before_PIRE0_EL1 = 218, + PIRE0_EL1 = 215, + __after_PIRE0_EL1 = 217, + __before_POR_EL1 = 218, + POR_EL1 = 218, + __after_POR_EL1 = 218, + __before_HFGRTR_EL2 = 219, + HFGRTR_EL2 = 188, + __after_HFGRTR_EL2 = 218, + __before_HFGWTR_EL2 = 219, + HFGWTR_EL2 = 189, + __after_HFGWTR_EL2 = 218, + __before_HFGITR_EL2 = 219, + HFGITR_EL2 = 190, + __after_HFGITR_EL2 = 218, + __before_HDFGRTR_EL2 = 219, + HDFGRTR_EL2 = 191, + __after_HDFGRTR_EL2 = 218, + __before_HDFGWTR_EL2 = 219, + HDFGWTR_EL2 = 192, + __after_HDFGWTR_EL2 = 218, + __before_HAFGRTR_EL2 = 219, + HAFGRTR_EL2 = 194, + __after_HAFGRTR_EL2 = 218, + __before_CNTVOFF_EL2 = 219, + CNTVOFF_EL2 = 145, + __after_CNTVOFF_EL2 = 218, + __before_CNTV_CVAL_EL0 = 219, + CNTV_CVAL_EL0 = 178, + __after_CNTV_CVAL_EL0 = 218, + __before_CNTV_CTL_EL0 = 219, + CNTV_CTL_EL0 = 179, + __after_CNTV_CTL_EL0 = 218, + __before_CNTP_CVAL_EL0 = 219, + CNTP_CVAL_EL0 = 180, + __after_CNTP_CVAL_EL0 = 218, + __before_CNTP_CTL_EL0 = 219, + CNTP_CTL_EL0 = 181, + __after_CNTP_CTL_EL0 = 218, + __before_ICH_HCR_EL2 = 219, + ICH_HCR_EL2 = 285, + __after_ICH_HCR_EL2 = 285, + NR_SYS_REGS = 286, +}; + +enum vdso_abi { + VDSO_ABI_AA64 = 0, + VDSO_ABI_AA32 = 1, +}; + +enum vdso_clock_mode { + VDSO_CLOCKMODE_NONE = 0, + VDSO_CLOCKMODE_ARCHTIMER = 1, + VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT = 2, + VDSO_CLOCKMODE_MAX = 3, + VDSO_CLOCKMODE_TIMENS = 2147483647, +}; + +enum vec_type { + ARM64_VEC_SVE = 0, + ARM64_VEC_SME = 1, + ARM64_VEC_MAX = 2, +}; + +enum verifier_phase { + CHECK_META = 0, + CHECK_TYPE = 1, +}; + +enum vesa_blank_mode { + VESA_NO_BLANKING = 0, + VESA_VSYNC_SUSPEND = 1, + VESA_HSYNC_SUSPEND = 2, + VESA_POWERDOWN = 3, + VESA_BLANK_MAX = 3, +}; + +enum vexpress_reset_func { + FUNC_RESET = 0, + FUNC_SHUTDOWN = 1, + FUNC_REBOOT = 2, +}; + +enum vgic_irq_config { + VGIC_CONFIG_EDGE = 0, + VGIC_CONFIG_LEVEL = 1, +}; + +enum vgic_type { + VGIC_V2 = 0, + VGIC_V3 = 1, +}; + +enum vhost_task_flags { + VHOST_TASK_FLAGS_STOP = 0, + VHOST_TASK_FLAGS_KILLED = 1, +}; + +enum virtio_balloon_config_read { + VIRTIO_BALLOON_CONFIG_READ_CMD_ID = 0, +}; + +enum virtio_balloon_vq { + VIRTIO_BALLOON_VQ_INFLATE = 0, + VIRTIO_BALLOON_VQ_DEFLATE = 1, + VIRTIO_BALLOON_VQ_STATS = 2, + VIRTIO_BALLOON_VQ_FREE_PAGE = 3, + VIRTIO_BALLOON_VQ_REPORTING = 4, + VIRTIO_BALLOON_VQ_MAX = 5, +}; + +enum virtnet_xmit_type { + VIRTNET_XMIT_TYPE_SKB = 0, + VIRTNET_XMIT_TYPE_SKB_ORPHAN = 1, + VIRTNET_XMIT_TYPE_XDP = 2, + VIRTNET_XMIT_TYPE_XSK = 3, +}; + +enum visit_state { + NOT_VISITED = 0, + VISITED = 1, + RESOLVED = 2, +}; + +enum vlan_flags { + VLAN_FLAG_REORDER_HDR = 1, + VLAN_FLAG_GVRP = 2, + VLAN_FLAG_LOOSE_BINDING = 4, + VLAN_FLAG_MVRP = 8, + VLAN_FLAG_BRIDGE_BINDING = 16, +}; + +enum vlan_protos { + VLAN_PROTO_8021Q = 0, + VLAN_PROTO_8021AD = 1, + VLAN_PROTO_NUM = 2, +}; + +enum vm_event_item { + PGPGIN = 0, + PGPGOUT = 1, + PSWPIN = 2, + PSWPOUT = 3, + PGALLOC_DMA = 4, + PGALLOC_DMA32 = 5, + PGALLOC_NORMAL = 6, + PGALLOC_MOVABLE = 7, + PGALLOC_DEVICE = 8, + ALLOCSTALL_DMA = 9, + ALLOCSTALL_DMA32 = 10, + ALLOCSTALL_NORMAL = 11, + ALLOCSTALL_MOVABLE = 12, + ALLOCSTALL_DEVICE = 13, + PGSCAN_SKIP_DMA = 14, + PGSCAN_SKIP_DMA32 = 15, + PGSCAN_SKIP_NORMAL = 16, + PGSCAN_SKIP_MOVABLE = 17, + PGSCAN_SKIP_DEVICE = 18, + PGFREE = 19, + PGACTIVATE = 20, + PGDEACTIVATE = 21, + PGLAZYFREE = 22, + PGFAULT = 23, + PGMAJFAULT = 24, + PGLAZYFREED = 25, + PGREFILL = 26, + PGREUSE = 27, + PGSTEAL_KSWAPD = 28, + PGSTEAL_DIRECT = 29, + PGSTEAL_KHUGEPAGED = 30, + PGSCAN_KSWAPD = 31, + PGSCAN_DIRECT = 32, + PGSCAN_KHUGEPAGED = 33, + PGSCAN_DIRECT_THROTTLE = 34, + PGSCAN_ANON = 35, + PGSCAN_FILE = 36, + PGSTEAL_ANON = 37, + PGSTEAL_FILE = 38, + PGSCAN_ZONE_RECLAIM_SUCCESS = 39, + PGSCAN_ZONE_RECLAIM_FAILED = 40, + PGINODESTEAL = 41, + SLABS_SCANNED = 42, + KSWAPD_INODESTEAL = 43, + KSWAPD_LOW_WMARK_HIT_QUICKLY = 44, + KSWAPD_HIGH_WMARK_HIT_QUICKLY = 45, + PAGEOUTRUN = 46, + PGROTATED = 47, + DROP_PAGECACHE = 48, + DROP_SLAB = 49, + OOM_KILL = 50, + NUMA_PTE_UPDATES = 51, + NUMA_HUGE_PTE_UPDATES = 52, + NUMA_HINT_FAULTS = 53, + NUMA_HINT_FAULTS_LOCAL = 54, + NUMA_PAGE_MIGRATE = 55, + PGMIGRATE_SUCCESS = 56, + PGMIGRATE_FAIL = 57, + THP_MIGRATION_SUCCESS = 58, + THP_MIGRATION_FAIL = 59, + THP_MIGRATION_SPLIT = 60, + COMPACTMIGRATE_SCANNED = 61, + COMPACTFREE_SCANNED = 62, + COMPACTISOLATED = 63, + COMPACTSTALL = 64, + COMPACTFAIL = 65, + COMPACTSUCCESS = 66, + KCOMPACTD_WAKE = 67, + KCOMPACTD_MIGRATE_SCANNED = 68, + KCOMPACTD_FREE_SCANNED = 69, + HTLB_BUDDY_PGALLOC = 70, + HTLB_BUDDY_PGALLOC_FAIL = 71, + CMA_ALLOC_SUCCESS = 72, + CMA_ALLOC_FAIL = 73, + UNEVICTABLE_PGCULLED = 74, + UNEVICTABLE_PGSCANNED = 75, + UNEVICTABLE_PGRESCUED = 76, + UNEVICTABLE_PGMLOCKED = 77, + UNEVICTABLE_PGMUNLOCKED = 78, + UNEVICTABLE_PGCLEARED = 79, + UNEVICTABLE_PGSTRANDED = 80, + THP_FAULT_ALLOC = 81, + THP_FAULT_FALLBACK = 82, + THP_FAULT_FALLBACK_CHARGE = 83, + THP_COLLAPSE_ALLOC = 84, + THP_COLLAPSE_ALLOC_FAILED = 85, + THP_FILE_ALLOC = 86, + THP_FILE_FALLBACK = 87, + THP_FILE_FALLBACK_CHARGE = 88, + THP_FILE_MAPPED = 89, + THP_SPLIT_PAGE = 90, + THP_SPLIT_PAGE_FAILED = 91, + THP_DEFERRED_SPLIT_PAGE = 92, + THP_UNDERUSED_SPLIT_PAGE = 93, + THP_SPLIT_PMD = 94, + THP_SCAN_EXCEED_NONE_PTE = 95, + THP_SCAN_EXCEED_SWAP_PTE = 96, + THP_SCAN_EXCEED_SHARED_PTE = 97, + THP_ZERO_PAGE_ALLOC = 98, + THP_ZERO_PAGE_ALLOC_FAILED = 99, + THP_SWPOUT = 100, + THP_SWPOUT_FALLBACK = 101, + BALLOON_INFLATE = 102, + BALLOON_DEFLATE = 103, + BALLOON_MIGRATE = 104, + SWAP_RA = 105, + SWAP_RA_HIT = 106, + SWPIN_ZERO = 107, + SWPOUT_ZERO = 108, + KSM_SWPIN_COPY = 109, + COW_KSM = 110, + ZSWPIN = 111, + ZSWPOUT = 112, + ZSWPWB = 113, + NR_VM_EVENT_ITEMS = 114, +}; + +enum vm_fault_reason { + VM_FAULT_OOM = 1, + VM_FAULT_SIGBUS = 2, + VM_FAULT_MAJOR = 4, + VM_FAULT_HWPOISON = 16, + VM_FAULT_HWPOISON_LARGE = 32, + VM_FAULT_SIGSEGV = 64, + VM_FAULT_NOPAGE = 256, + VM_FAULT_LOCKED = 512, + VM_FAULT_RETRY = 1024, + VM_FAULT_FALLBACK = 2048, + VM_FAULT_DONE_COW = 4096, + VM_FAULT_NEEDDSYNC = 8192, + VM_FAULT_COMPLETED = 16384, + VM_FAULT_HINDEX_MASK = 983040, +}; + +enum vm_stat_item { + NR_DIRTY_THRESHOLD = 0, + NR_DIRTY_BG_THRESHOLD = 1, + NR_MEMMAP_PAGES = 2, + NR_MEMMAP_BOOT_PAGES = 3, + NR_VM_STAT_ITEMS = 4, +}; + +enum vma_merge_flags { + VMG_FLAG_DEFAULT = 0, + VMG_FLAG_JUST_EXPAND = 1, +}; + +enum vma_merge_state { + VMA_MERGE_START = 0, + VMA_MERGE_ERROR_NOMEM = 1, + VMA_MERGE_NOMERGE = 2, + VMA_MERGE_SUCCESS = 3, +}; + +enum vma_resv_mode { + VMA_NEEDS_RESV = 0, + VMA_COMMIT_RESV = 1, + VMA_END_RESV = 2, + VMA_ADD_RESV = 3, + VMA_DEL_RESV = 4, +}; + +enum vme_resource_type { + VME_MASTER = 0, + VME_SLAVE = 1, + VME_DMA = 2, + VME_LM = 3, +}; + +enum vmpressure_levels { + VMPRESSURE_LOW = 0, + VMPRESSURE_MEDIUM = 1, + VMPRESSURE_CRITICAL = 2, + VMPRESSURE_NUM_LEVELS = 3, +}; + +enum vmpressure_modes { + VMPRESSURE_NO_PASSTHROUGH = 0, + VMPRESSURE_HIERARCHY = 1, + VMPRESSURE_LOCAL = 2, + VMPRESSURE_NUM_MODES = 3, +}; + +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 vp_vq_vector_policy { + VP_VQ_VECTOR_POLICY_EACH = 0, + VP_VQ_VECTOR_POLICY_SHARED_SLOW = 1, + VP_VQ_VECTOR_POLICY_SHARED = 2, +}; + +enum vtime_state { + VTIME_INACTIVE = 0, + VTIME_IDLE = 1, + VTIME_SYS = 2, + VTIME_USER = 3, + VTIME_GUEST = 4, +}; + +enum vvar_pages { + VVAR_DATA_PAGE_OFFSET = 0, + VVAR_TIMENS_PAGE_OFFSET = 1, + VVAR_NR_PAGES = 2, +}; + +enum watch_meta_notification_subtype { + WATCH_META_REMOVAL_NOTIFICATION = 0, + WATCH_META_LOSS_NOTIFICATION = 1, +}; + +enum watch_notification_type { + WATCH_TYPE_META = 0, + WATCH_TYPE_KEY_NOTIFY = 1, + WATCH_TYPE__NR = 2, +}; + +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, +}; + +enum wb_stat_item { + WB_RECLAIMABLE = 0, + WB_WRITEBACK = 1, + WB_DIRTIED = 2, + WB_WRITTEN = 3, + NR_WB_STAT_ITEMS = 4, +}; + +enum wb_state { + WB_registered = 0, + WB_writeback_running = 1, + WB_has_dirty_io = 2, + WB_start_all = 3, +}; + +enum wbt_flags { + WBT_TRACKED = 1, + WBT_READ = 2, + WBT_SWAP = 4, + WBT_DISCARD = 8, + WBT_NR_BITS = 4, +}; + +enum wiphy_flags { + WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK = 1, + WIPHY_FLAG_SUPPORTS_MLO = 2, + WIPHY_FLAG_SPLIT_SCAN_6GHZ = 4, + WIPHY_FLAG_NETNS_OK = 8, + WIPHY_FLAG_PS_ON_BY_DEFAULT = 16, + WIPHY_FLAG_4ADDR_AP = 32, + WIPHY_FLAG_4ADDR_STATION = 64, + WIPHY_FLAG_CONTROL_PORT_PROTOCOL = 128, + WIPHY_FLAG_IBSS_RSN = 256, + WIPHY_FLAG_DISABLE_WEXT = 512, + WIPHY_FLAG_MESH_AUTH = 1024, + WIPHY_FLAG_SUPPORTS_EXT_KCK_32 = 2048, + WIPHY_FLAG_SUPPORTS_NSTR_NONPRIMARY = 4096, + WIPHY_FLAG_SUPPORTS_FW_ROAM = 8192, + WIPHY_FLAG_AP_UAPSD = 16384, + WIPHY_FLAG_SUPPORTS_TDLS = 32768, + WIPHY_FLAG_TDLS_EXTERNAL_SETUP = 65536, + WIPHY_FLAG_HAVE_AP_SME = 131072, + WIPHY_FLAG_REPORTS_OBSS = 262144, + WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = 524288, + WIPHY_FLAG_OFFCHAN_TX = 1048576, + WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = 2097152, + WIPHY_FLAG_SUPPORTS_5_10_MHZ = 4194304, + WIPHY_FLAG_HAS_CHANNEL_SWITCH = 8388608, + WIPHY_FLAG_NOTIFY_REGDOM_BY_DRIVER = 16777216, + WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON = 33554432, +}; + +enum wm831x_auxadc { + WM831X_AUX_CAL = 15, + WM831X_AUX_BKUP_BATT = 10, + WM831X_AUX_WALL = 9, + WM831X_AUX_BATT = 8, + WM831X_AUX_USB = 7, + WM831X_AUX_SYSVDD = 6, + WM831X_AUX_BATT_TEMP = 5, + WM831X_AUX_CHIP_TEMP = 4, + WM831X_AUX_AUX4 = 3, + WM831X_AUX_AUX3 = 2, + WM831X_AUX_AUX2 = 1, + WM831X_AUX_AUX1 = 0, +}; + +enum wm831x_parent { + WM8310 = 33552, + WM8311 = 33553, + WM8312 = 33554, + WM8320 = 33568, + WM8321 = 33569, + WM8325 = 33573, + WM8326 = 33574, +}; + +enum wm831x_status_src { + WM831X_STATUS_PRESERVE = 0, + WM831X_STATUS_OTP = 1, + WM831X_STATUS_POWER = 2, + WM831X_STATUS_CHARGER = 3, + WM831X_STATUS_MANUAL = 4, +}; + +enum wm831x_watchdog_action { + WM831X_WDOG_NONE = 0, + WM831X_WDOG_INTERRUPT = 1, + WM831X_WDOG_RESET = 2, + WM831X_WDOG_WAKE = 3, +}; + +enum work_bits { + WORK_STRUCT_PENDING_BIT = 0, + WORK_STRUCT_INACTIVE_BIT = 1, + WORK_STRUCT_PWQ_BIT = 2, + WORK_STRUCT_LINKED_BIT = 3, + WORK_STRUCT_FLAG_BITS = 4, + WORK_STRUCT_COLOR_SHIFT = 4, + WORK_STRUCT_COLOR_BITS = 4, + WORK_STRUCT_PWQ_SHIFT = 8, + WORK_OFFQ_FLAG_SHIFT = 4, + WORK_OFFQ_BH_BIT = 4, + WORK_OFFQ_FLAG_END = 5, + WORK_OFFQ_FLAG_BITS = 1, + WORK_OFFQ_DISABLE_SHIFT = 5, + WORK_OFFQ_DISABLE_BITS = 16, + WORK_OFFQ_POOL_SHIFT = 21, + WORK_OFFQ_LEFT = 43, + WORK_OFFQ_POOL_BITS = 31, +}; + +enum work_cancel_flags { + WORK_CANCEL_DELAYED = 1, + WORK_CANCEL_DISABLE = 2, +}; + +enum work_flags { + WORK_STRUCT_PENDING = 1, + WORK_STRUCT_INACTIVE = 2, + WORK_STRUCT_PWQ = 4, + WORK_STRUCT_LINKED = 8, + WORK_STRUCT_STATIC = 0, +}; + +enum worker_flags { + WORKER_DIE = 2, + WORKER_IDLE = 4, + WORKER_PREP = 8, + WORKER_CPU_INTENSIVE = 64, + WORKER_UNBOUND = 128, + WORKER_REBOUND = 256, + WORKER_NOT_RUNNING = 456, +}; + +enum worker_pool_flags { + POOL_BH = 1, + POOL_MANAGER_ACTIVE = 2, + POOL_DISASSOCIATED = 4, + POOL_BH_DRAINING = 8, +}; + +enum wq_affn_scope { + WQ_AFFN_DFL = 0, + WQ_AFFN_CPU = 1, + WQ_AFFN_SMT = 2, + WQ_AFFN_CACHE = 3, + WQ_AFFN_NUMA = 4, + WQ_AFFN_SYSTEM = 5, + WQ_AFFN_NR_TYPES = 6, +}; + +enum wq_consts { + WQ_MAX_ACTIVE = 2048, + WQ_UNBOUND_MAX_ACTIVE = 2048, + WQ_DFL_ACTIVE = 1024, + WQ_DFL_MIN_ACTIVE = 8, +}; + +enum wq_flags { + WQ_BH = 1, + 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_BH_ALLOWS = 17, +}; + +enum wq_internal_consts { + NR_STD_WORKER_POOLS = 2, + UNBOUND_POOL_HASH_ORDER = 6, + BUSY_WORKER_HASH_ORDER = 6, + MAX_IDLE_WORKERS_RATIO = 4, + IDLE_WORKER_TIMEOUT = 300000, + MAYDAY_INITIAL_TIMEOUT = 10, + MAYDAY_INTERVAL = 100, + CREATE_COOLDOWN = 1000, + RESCUER_NICE_LEVEL = -20, + HIGHPRI_NICE_LEVEL = -20, + WQ_NAME_LEN = 32, + WORKER_ID_LEN = 42, +}; + +enum wq_misc_consts { + WORK_NR_COLORS = 16, + WORK_CPU_UNBOUND = 512, + WORK_BUSY_PENDING = 1, + WORK_BUSY_RUNNING = 2, + WORKER_DESC_LEN = 32, +}; + +enum writeback_sync_modes { + WB_SYNC_NONE = 0, + WB_SYNC_ALL = 1, +}; + +enum x509_actions { + ACT_x509_extract_key_data = 0, + ACT_x509_extract_name_segment = 1, + ACT_x509_note_OID = 2, + ACT_x509_note_issuer = 3, + ACT_x509_note_not_after = 4, + ACT_x509_note_not_before = 5, + ACT_x509_note_params = 6, + ACT_x509_note_serial = 7, + ACT_x509_note_sig_algo = 8, + ACT_x509_note_signature = 9, + ACT_x509_note_subject = 10, + ACT_x509_note_tbs_certificate = 11, + ACT_x509_process_extension = 12, + NR__x509_actions = 13, +}; + +enum x509_akid_actions { + ACT_x509_akid_note_kid = 0, + ACT_x509_akid_note_name = 1, + ACT_x509_akid_note_serial = 2, + ACT_x509_extract_name_segment___2 = 3, + ACT_x509_note_OID___2 = 4, + NR__x509_akid_actions = 5, +}; + +enum xa_lock_type { + XA_LOCK_IRQ = 1, + XA_LOCK_BH = 2, +}; + +enum xb_req_state { + xb_req_state_queued = 0, + xb_req_state_wait_reply = 1, + xb_req_state_got_reply = 2, + xb_req_state_aborted = 3, +}; + +enum xdp_action { + XDP_ABORTED = 0, + XDP_DROP = 1, + XDP_PASS = 2, + XDP_TX = 3, + XDP_REDIRECT = 4, +}; + +enum xdp_buff_flags { + XDP_FLAGS_HAS_FRAGS = 1, + XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, +}; + +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_rss_hash_type { + XDP_RSS_L3_IPV4 = 1, + XDP_RSS_L3_IPV6 = 2, + XDP_RSS_L3_DYNHDR = 4, + XDP_RSS_L4 = 8, + XDP_RSS_L4_TCP = 16, + XDP_RSS_L4_UDP = 32, + XDP_RSS_L4_SCTP = 64, + XDP_RSS_L4_IPSEC = 128, + XDP_RSS_L4_ICMP = 256, + XDP_RSS_TYPE_NONE = 0, + XDP_RSS_TYPE_L2 = 0, + XDP_RSS_TYPE_L3_IPV4 = 1, + XDP_RSS_TYPE_L3_IPV6 = 2, + XDP_RSS_TYPE_L3_IPV4_OPT = 5, + XDP_RSS_TYPE_L3_IPV6_EX = 6, + XDP_RSS_TYPE_L4_ANY = 8, + XDP_RSS_TYPE_L4_IPV4_TCP = 25, + XDP_RSS_TYPE_L4_IPV4_UDP = 41, + XDP_RSS_TYPE_L4_IPV4_SCTP = 73, + XDP_RSS_TYPE_L4_IPV4_IPSEC = 137, + XDP_RSS_TYPE_L4_IPV4_ICMP = 265, + XDP_RSS_TYPE_L4_IPV6_TCP = 26, + XDP_RSS_TYPE_L4_IPV6_UDP = 42, + XDP_RSS_TYPE_L4_IPV6_SCTP = 74, + XDP_RSS_TYPE_L4_IPV6_IPSEC = 138, + XDP_RSS_TYPE_L4_IPV6_ICMP = 266, + XDP_RSS_TYPE_L4_IPV6_TCP_EX = 30, + XDP_RSS_TYPE_L4_IPV6_UDP_EX = 46, + XDP_RSS_TYPE_L4_IPV6_SCTP_EX = 78, +}; + +enum xdp_rx_metadata { + XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, + XDP_METADATA_KFUNC_RX_HASH = 1, + XDP_METADATA_KFUNC_RX_VLAN_TAG = 2, + MAX_XDP_METADATA_KFUNC = 3, +}; + +enum xen_domain_type { + XEN_NATIVE = 0, + XEN_PV_DOMAIN = 1, + XEN_HVM_DOMAIN = 2, +}; + +enum xen_irq_type { + IRQT_UNBOUND = 0, + IRQT_PIRQ = 1, + IRQT_VIRQ = 2, + IRQT_IPI = 3, + IRQT_EVTCHN = 4, +}; + +enum xenbus_state { + XenbusStateUnknown = 0, + XenbusStateInitialising = 1, + XenbusStateInitWait = 2, + XenbusStateInitialised = 3, + XenbusStateConnected = 4, + XenbusStateClosing = 5, + XenbusStateClosed = 6, + XenbusStateReconfiguring = 7, + XenbusStateReconfigured = 8, +}; + +enum xenstore_init { + XS_UNKNOWN = 0, + XS_PV = 1, + XS_HVM = 2, + XS_LOCAL = 3, +}; + +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_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_SA_DIR = 33, + XFRMA_NAT_KEEPALIVE_INTERVAL = 34, + XFRMA_SA_PCPU = 35, + XFRMA_IPTFS_DROP_TIME = 36, + XFRMA_IPTFS_REORDER_WINDOW = 37, + XFRMA_IPTFS_DONT_FRAG = 38, + XFRMA_IPTFS_INIT_DELAY = 39, + XFRMA_IPTFS_MAX_QSIZE = 40, + XFRMA_IPTFS_PKT_SIZE = 41, + __XFRMA_MAX = 42, +}; + +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, +}; + +enum xfrm_pol_inexact_candidate_type { + XFRM_POL_CAND_BOTH = 0, + XFRM_POL_CAND_SADDR = 1, + XFRM_POL_CAND_DADDR = 2, + XFRM_POL_CAND_ANY = 3, + XFRM_POL_CAND_MAX = 4, +}; + +enum xfrm_replay_mode { + XFRM_REPLAY_MODE_LEGACY = 0, + XFRM_REPLAY_MODE_BMP = 1, + XFRM_REPLAY_MODE_ESN = 2, +}; + +enum xfrm_sa_dir { + XFRM_SA_DIR_IN = 1, + XFRM_SA_DIR_OUT = 2, +}; + +enum xgene_phy_mode { + MODE_SATA = 0, + MODE_SGMII = 1, + MODE_PCIE = 2, + MODE_USB = 3, + MODE_XFI = 4, + MODE_MAX___2 = 5, +}; + +enum xgene_pll_type { + PLL_TYPE_PCP = 0, + PLL_TYPE_SOC = 1, +}; + +enum xgene_pmu_dev_type { + PMU_TYPE_L3C = 0, + PMU_TYPE_IOB = 1, + PMU_TYPE_IOB_SLOW = 2, + PMU_TYPE_MCB = 3, + PMU_TYPE_MC = 4, +}; + +enum xgene_pmu_version { + PCP_PMU_V1 = 1, + PCP_PMU_V2 = 2, + PCP_PMU_V3 = 3, +}; + +enum xhci_cancelled_td_status { + TD_DIRTY = 0, + TD_HALTED = 1, + TD_CLEARING_CACHE = 2, + TD_CLEARING_CACHE_DEFERRED = 3, + TD_CLEARED = 4, +}; + +enum xhci_ep_reset_type { + EP_HARD_RESET = 0, + EP_SOFT_RESET = 1, +}; + +enum xhci_overhead_type { + LS_OVERHEAD_TYPE = 0, + FS_OVERHEAD_TYPE = 1, + HS_OVERHEAD_TYPE = 2, +}; + +enum xhci_ring_type { + TYPE_CTRL = 0, + TYPE_ISOC = 1, + TYPE_BULK = 2, + TYPE_INTR = 3, + TYPE_STREAM = 4, + TYPE_COMMAND = 5, + TYPE_EVENT = 6, +}; + +enum xhci_setup_dev { + SETUP_CONTEXT_ONLY = 0, + SETUP_CONTEXT_ADDRESS = 1, +}; + +enum xilinx_cpm_version { + CPM = 0, + CPM5 = 1, + CPM5_HOST1 = 2, +}; + +enum xilinx_pl_dma_version { + XDMA = 0, + QDMA = 1, +}; + +enum xprtsec_policies { + RPC_XPRTSEC_NONE = 0, + RPC_XPRTSEC_TLS_ANON = 1, + RPC_XPRTSEC_TLS_X509 = 2, +}; + +enum xps_map_type { + XPS_CPUS = 0, + XPS_RXQS = 1, + XPS_MAPS_MAX = 2, +}; + +enum xsd_sockmsg_type { + XS_CONTROL = 0, + XS_DIRECTORY = 1, + XS_READ = 2, + XS_GET_PERMS = 3, + XS_WATCH = 4, + XS_UNWATCH = 5, + XS_TRANSACTION_START = 6, + XS_TRANSACTION_END = 7, + XS_INTRODUCE = 8, + XS_RELEASE = 9, + XS_GET_DOMAIN_PATH = 10, + XS_WRITE = 11, + XS_MKDIR = 12, + XS_RM = 13, + XS_SET_PERMS = 14, + XS_WATCH_EVENT = 15, + XS_ERROR = 16, + XS_IS_DOMAIN_INTRODUCED = 17, + XS_RESUME = 18, + XS_SET_TARGET = 19, + XS_RESET_WATCHES = 21, + XS_DIRECTORY_PART = 22, + XS_TYPE_COUNT = 23, + XS_INVALID = 65535, +}; + +enum xz_check { + XZ_CHECK_NONE = 0, + XZ_CHECK_CRC32 = 1, + XZ_CHECK_CRC64 = 4, + XZ_CHECK_SHA256 = 10, +}; + +enum xz_mode { + XZ_SINGLE = 0, + XZ_PREALLOC = 1, + XZ_DYNALLOC = 2, +}; + +enum xz_ret { + XZ_OK = 0, + XZ_STREAM_END = 1, + XZ_UNSUPPORTED_CHECK = 2, + XZ_MEM_ERROR = 3, + XZ_MEMLIMIT_ERROR = 4, + XZ_FORMAT_ERROR = 5, + XZ_OPTIONS_ERROR = 6, + XZ_DATA_ERROR = 7, + XZ_BUF_ERROR = 8, +}; + +enum zbc_zone_alignment_method { + ZBC_CONSTANT_ZONE_LENGTH = 1, + ZBC_CONSTANT_ZONE_START_OFFSET = 8, +}; + +enum zbc_zone_cond { + ZBC_ZONE_COND_NO_WP = 0, + ZBC_ZONE_COND_EMPTY = 1, + ZBC_ZONE_COND_IMP_OPEN = 2, + ZBC_ZONE_COND_EXP_OPEN = 3, + ZBC_ZONE_COND_CLOSED = 4, + ZBC_ZONE_COND_READONLY = 13, + ZBC_ZONE_COND_FULL = 14, + ZBC_ZONE_COND_OFFLINE = 15, +}; + +enum zbc_zone_type { + ZBC_ZONE_TYPE_CONV = 1, + ZBC_ZONE_TYPE_SEQWRITE_REQ = 2, + ZBC_ZONE_TYPE_SEQWRITE_PREF = 3, + ZBC_ZONE_TYPE_SEQ_OR_BEFORE_REQ = 4, + ZBC_ZONE_TYPE_GAP = 5, +}; + +enum zone_flags { + ZONE_BOOSTED_WATERMARK = 0, + ZONE_RECLAIM_ACTIVE = 1, + ZONE_BELOW_HIGH = 2, +}; + +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_ZSPAGES = 9, + NR_FREE_CMA_PAGES = 10, + NR_VM_ZONE_STAT_ITEMS = 11, +}; + +enum zone_type { + ZONE_DMA = 0, + ZONE_DMA32 = 1, + ZONE_NORMAL = 2, + ZONE_MOVABLE = 3, + ZONE_DEVICE = 4, + __MAX_NR_ZONES = 5, +}; + +enum zone_watermarks { + WMARK_MIN = 0, + WMARK_LOW = 1, + WMARK_HIGH = 2, + WMARK_PROMO = 3, + NR_WMARK = 4, +}; + +enum zpool_mapmode { + ZPOOL_MM_RW = 0, + ZPOOL_MM_RO = 1, + ZPOOL_MM_WO = 2, + ZPOOL_MM_DEFAULT = 0, +}; + +enum zs_mapmode { + ZS_MM_RW = 0, + ZS_MM_RO = 1, + ZS_MM_WO = 2, +}; + +enum zswap_init_type { + ZSWAP_UNINIT = 0, + ZSWAP_INIT_SUCCEED = 1, + ZSWAP_INIT_FAILED = 2, +}; + +enum zynqmp_pm_request_ack { + ZYNQMP_PM_REQUEST_ACK_NO = 1, + ZYNQMP_PM_REQUEST_ACK_BLOCKING = 2, + ZYNQMP_PM_REQUEST_ACK_NON_BLOCKING = 3, +}; + +enum zynqmp_pm_reset { + ZYNQMP_PM_RESET_START = 1000, + ZYNQMP_PM_RESET_PCIE_CFG = 1000, + ZYNQMP_PM_RESET_PCIE_BRIDGE = 1001, + ZYNQMP_PM_RESET_PCIE_CTRL = 1002, + ZYNQMP_PM_RESET_DP = 1003, + ZYNQMP_PM_RESET_SWDT_CRF = 1004, + ZYNQMP_PM_RESET_AFI_FM5 = 1005, + ZYNQMP_PM_RESET_AFI_FM4 = 1006, + ZYNQMP_PM_RESET_AFI_FM3 = 1007, + ZYNQMP_PM_RESET_AFI_FM2 = 1008, + ZYNQMP_PM_RESET_AFI_FM1 = 1009, + ZYNQMP_PM_RESET_AFI_FM0 = 1010, + ZYNQMP_PM_RESET_GDMA = 1011, + ZYNQMP_PM_RESET_GPU_PP1 = 1012, + ZYNQMP_PM_RESET_GPU_PP0 = 1013, + ZYNQMP_PM_RESET_GPU = 1014, + ZYNQMP_PM_RESET_GT = 1015, + ZYNQMP_PM_RESET_SATA = 1016, + ZYNQMP_PM_RESET_ACPU3_PWRON = 1017, + ZYNQMP_PM_RESET_ACPU2_PWRON = 1018, + ZYNQMP_PM_RESET_ACPU1_PWRON = 1019, + ZYNQMP_PM_RESET_ACPU0_PWRON = 1020, + ZYNQMP_PM_RESET_APU_L2 = 1021, + ZYNQMP_PM_RESET_ACPU3 = 1022, + ZYNQMP_PM_RESET_ACPU2 = 1023, + ZYNQMP_PM_RESET_ACPU1 = 1024, + ZYNQMP_PM_RESET_ACPU0 = 1025, + ZYNQMP_PM_RESET_DDR = 1026, + ZYNQMP_PM_RESET_APM_FPD = 1027, + ZYNQMP_PM_RESET_SOFT = 1028, + ZYNQMP_PM_RESET_GEM0 = 1029, + ZYNQMP_PM_RESET_GEM1 = 1030, + ZYNQMP_PM_RESET_GEM2 = 1031, + ZYNQMP_PM_RESET_GEM3 = 1032, + ZYNQMP_PM_RESET_QSPI = 1033, + ZYNQMP_PM_RESET_UART0 = 1034, + ZYNQMP_PM_RESET_UART1 = 1035, + ZYNQMP_PM_RESET_SPI0 = 1036, + ZYNQMP_PM_RESET_SPI1 = 1037, + ZYNQMP_PM_RESET_SDIO0 = 1038, + ZYNQMP_PM_RESET_SDIO1 = 1039, + ZYNQMP_PM_RESET_CAN0 = 1040, + ZYNQMP_PM_RESET_CAN1 = 1041, + ZYNQMP_PM_RESET_I2C0 = 1042, + ZYNQMP_PM_RESET_I2C1 = 1043, + ZYNQMP_PM_RESET_TTC0 = 1044, + ZYNQMP_PM_RESET_TTC1 = 1045, + ZYNQMP_PM_RESET_TTC2 = 1046, + ZYNQMP_PM_RESET_TTC3 = 1047, + ZYNQMP_PM_RESET_SWDT_CRL = 1048, + ZYNQMP_PM_RESET_NAND = 1049, + ZYNQMP_PM_RESET_ADMA = 1050, + ZYNQMP_PM_RESET_GPIO = 1051, + ZYNQMP_PM_RESET_IOU_CC = 1052, + ZYNQMP_PM_RESET_TIMESTAMP = 1053, + ZYNQMP_PM_RESET_RPU_R50 = 1054, + ZYNQMP_PM_RESET_RPU_R51 = 1055, + ZYNQMP_PM_RESET_RPU_AMBA = 1056, + ZYNQMP_PM_RESET_OCM = 1057, + ZYNQMP_PM_RESET_RPU_PGE = 1058, + ZYNQMP_PM_RESET_USB0_CORERESET = 1059, + ZYNQMP_PM_RESET_USB1_CORERESET = 1060, + ZYNQMP_PM_RESET_USB0_HIBERRESET = 1061, + ZYNQMP_PM_RESET_USB1_HIBERRESET = 1062, + ZYNQMP_PM_RESET_USB0_APB = 1063, + ZYNQMP_PM_RESET_USB1_APB = 1064, + ZYNQMP_PM_RESET_IPI = 1065, + ZYNQMP_PM_RESET_APM_LPD = 1066, + ZYNQMP_PM_RESET_RTC = 1067, + ZYNQMP_PM_RESET_SYSMON = 1068, + ZYNQMP_PM_RESET_AFI_FM6 = 1069, + ZYNQMP_PM_RESET_LPD_SWDT = 1070, + ZYNQMP_PM_RESET_FPD = 1071, + ZYNQMP_PM_RESET_RPU_DBG1 = 1072, + ZYNQMP_PM_RESET_RPU_DBG0 = 1073, + ZYNQMP_PM_RESET_DBG_LPD = 1074, + ZYNQMP_PM_RESET_DBG_FPD = 1075, + ZYNQMP_PM_RESET_APLL = 1076, + ZYNQMP_PM_RESET_DPLL = 1077, + ZYNQMP_PM_RESET_VPLL = 1078, + ZYNQMP_PM_RESET_IOPLL = 1079, + ZYNQMP_PM_RESET_RPLL = 1080, + ZYNQMP_PM_RESET_GPO3_PL_0 = 1081, + ZYNQMP_PM_RESET_GPO3_PL_1 = 1082, + ZYNQMP_PM_RESET_GPO3_PL_2 = 1083, + ZYNQMP_PM_RESET_GPO3_PL_3 = 1084, + ZYNQMP_PM_RESET_GPO3_PL_4 = 1085, + ZYNQMP_PM_RESET_GPO3_PL_5 = 1086, + ZYNQMP_PM_RESET_GPO3_PL_6 = 1087, + ZYNQMP_PM_RESET_GPO3_PL_7 = 1088, + ZYNQMP_PM_RESET_GPO3_PL_8 = 1089, + ZYNQMP_PM_RESET_GPO3_PL_9 = 1090, + ZYNQMP_PM_RESET_GPO3_PL_10 = 1091, + ZYNQMP_PM_RESET_GPO3_PL_11 = 1092, + ZYNQMP_PM_RESET_GPO3_PL_12 = 1093, + ZYNQMP_PM_RESET_GPO3_PL_13 = 1094, + ZYNQMP_PM_RESET_GPO3_PL_14 = 1095, + ZYNQMP_PM_RESET_GPO3_PL_15 = 1096, + ZYNQMP_PM_RESET_GPO3_PL_16 = 1097, + ZYNQMP_PM_RESET_GPO3_PL_17 = 1098, + ZYNQMP_PM_RESET_GPO3_PL_18 = 1099, + ZYNQMP_PM_RESET_GPO3_PL_19 = 1100, + ZYNQMP_PM_RESET_GPO3_PL_20 = 1101, + ZYNQMP_PM_RESET_GPO3_PL_21 = 1102, + ZYNQMP_PM_RESET_GPO3_PL_22 = 1103, + ZYNQMP_PM_RESET_GPO3_PL_23 = 1104, + ZYNQMP_PM_RESET_GPO3_PL_24 = 1105, + ZYNQMP_PM_RESET_GPO3_PL_25 = 1106, + ZYNQMP_PM_RESET_GPO3_PL_26 = 1107, + ZYNQMP_PM_RESET_GPO3_PL_27 = 1108, + ZYNQMP_PM_RESET_GPO3_PL_28 = 1109, + ZYNQMP_PM_RESET_GPO3_PL_29 = 1110, + ZYNQMP_PM_RESET_GPO3_PL_30 = 1111, + ZYNQMP_PM_RESET_GPO3_PL_31 = 1112, + ZYNQMP_PM_RESET_RPU_LS = 1113, + ZYNQMP_PM_RESET_PS_ONLY = 1114, + ZYNQMP_PM_RESET_PL = 1115, + ZYNQMP_PM_RESET_PS_PL0 = 1116, + ZYNQMP_PM_RESET_PS_PL1 = 1117, + ZYNQMP_PM_RESET_PS_PL2 = 1118, + ZYNQMP_PM_RESET_PS_PL3 = 1119, + ZYNQMP_PM_RESET_END = 1119, +}; + +enum zynqmp_pm_reset_action { + PM_RESET_ACTION_RELEASE = 0, + PM_RESET_ACTION_ASSERT = 1, + PM_RESET_ACTION_PULSE = 2, +}; + +enum zynqmp_pm_shutdown_subtype { + ZYNQMP_PM_SHUTDOWN_SUBTYPE_SUBSYSTEM = 0, + ZYNQMP_PM_SHUTDOWN_SUBTYPE_PS_ONLY = 1, + ZYNQMP_PM_SHUTDOWN_SUBTYPE_SYSTEM = 2, +}; + +enum zynqmp_pm_shutdown_type { + ZYNQMP_PM_SHUTDOWN_TYPE_SHUTDOWN = 0, + ZYNQMP_PM_SHUTDOWN_TYPE_RESET = 1, + ZYNQMP_PM_SHUTDOWN_TYPE_SETSCOPE_ONLY = 2, +}; + +enum zynqmp_pm_suspend_reason { + SUSPEND_POWER_REQUEST = 201, + SUSPEND_ALERT = 202, + SUSPEND_SYSTEM_SHUTDOWN = 203, +}; + +typedef _Bool bool; + +typedef __int128 s_max; + +typedef __int128 unsigned __u128; + +typedef __u128 u128; + +typedef u128 freelist_full_t; + +typedef freelist_full_t pcp_op_T__; + +typedef __int128 unsigned u_max; + +typedef char acpi_bus_id[8]; + +typedef char acpi_device_class[20]; + +typedef char acpi_device_name[40]; + +typedef char *acpi_string; + +typedef const char (* const ethnl_string_array_t)[32]; + +typedef int __kernel_clockid_t; + +typedef int __kernel_daddr_t; + +typedef int __kernel_ipc_pid_t; + +typedef int __kernel_key_t; + +typedef int __kernel_mqd_t; + +typedef int __kernel_pid_t; + +typedef int __kernel_rwf_t; + +typedef int __kernel_timer_t; + +typedef int __s32; + +typedef int class_get_unused_fd_t; + +typedef __kernel_clockid_t clockid_t; + +typedef __s32 s32; + +typedef s32 compat_clock_t; + +typedef s32 compat_daddr_t; + +typedef s32 compat_int_t; + +typedef s32 compat_key_t; + +typedef s32 compat_long_t; + +typedef s32 compat_off_t; + +typedef s32 compat_pid_t; + +typedef s32 compat_ssize_t; + +typedef s32 compat_timer_t; + +typedef int cydp_t; + +typedef s32 dma_cookie_t; + +typedef int ext4_grpblk_t; + +typedef int folio_walk_flags_t; + +typedef int fpb_t; + +typedef int fpi_t; + +typedef int initcall_entry_t; + +typedef s32 int32_t; + +typedef int32_t key_serial_t; + +typedef __kernel_key_t key_t; + +typedef int mhp_t; + +typedef int mpi_size_t; + +typedef __kernel_mqd_t mqd_t; + +typedef s32 old_time32_t; + +typedef int pci_power_t; + +typedef __kernel_pid_t pid_t; + +typedef int rmap_t; + +typedef __kernel_rwf_t rwf_t; + +typedef __s32 sctp_assoc_t; + +typedef int suspend_state_t; + +typedef __kernel_timer_t timer_t; + +typedef const int tracepoint_ptr_t; + +typedef long int __kernel_long_t; + +typedef __kernel_long_t __kernel_clock_t; + +typedef __kernel_long_t __kernel_off_t; + +typedef __kernel_long_t __kernel_old_time_t; + +typedef __kernel_long_t __kernel_ptrdiff_t; + +typedef __kernel_long_t __kernel_ssize_t; + +typedef __kernel_long_t __kernel_suseconds_t; + +typedef __kernel_clock_t clock_t; + +typedef long int intptr_t; + +typedef long int mpi_limb_signed_t; + +typedef __kernel_off_t off_t; + +typedef volatile long int prel64_t; + +typedef __kernel_ptrdiff_t ptrdiff_t; + +typedef __kernel_ssize_t ssize_t; + +typedef __kernel_suseconds_t suseconds_t; + +typedef long long int __s64; + +typedef __s64 Elf64_Sxword; + +typedef long long int __kernel_loff_t; + +typedef long long int __kernel_time64_t; + +typedef __s64 s64; + +typedef s64 compat_loff_t; + +typedef s64 compat_s64; + +typedef s64 int64_t; + +typedef s64 ktime_t; + +typedef __kernel_loff_t loff_t; + +typedef long long int qsize_t; + +typedef __s64 time64_t; + +typedef int64_t xen_long_t; + +typedef long long unsigned int __u64; + +typedef __u64 Elf64_Addr; + +typedef __u64 Elf64_Off; + +typedef __u64 Elf64_Xword; + +typedef __u64 u64; + +typedef u64 uint64_t; + +typedef uint64_t U64; + +typedef U64 ZSTD_VecMask; + +typedef __u64 __addrpair; + +typedef __u64 __be64; + +typedef __u64 __le64; + +typedef __u64 __virtio64; + +typedef u64 acpi_bus_address; + +typedef u64 acpi_integer; + +typedef u64 acpi_io_address; + +typedef u64 acpi_physical_address; + +typedef u64 acpi_size; + +typedef u64 arm_lpae_iopte; + +typedef u64 async_cookie_t; + +typedef __u64 blist_flags_t; + +typedef u64 blkcnt_t; + +typedef uint64_t blkif_sector_t; + +typedef u64 compat_u64; + +typedef u64 dart_iopte; + +typedef u64 dma_addr_t; + +typedef u64 efi_physical_addr_t; + +typedef long long unsigned int ext4_fsblk_t; + +typedef __be64 fdt64_t; + +typedef u64 gfn_t; + +typedef u64 gpa_t; + +typedef u64 hfn_t; + +typedef u64 hpa_t; + +typedef u64 io_req_flags_t; + +typedef hfn_t kvm_pfn_t; + +typedef u64 kvm_pte_t; + +typedef kvm_pte_t *kvm_pteref_t; + +typedef long long unsigned int llu; + +typedef u64 netdev_features_t; + +typedef u64 p4dval_t; + +typedef u64 pci_bus_addr_t; + +typedef u64 pgdval_t; + +typedef u64 phys_addr_t; + +typedef u64 phys_cpuid_t; + +typedef u64 pmdval_t; + +typedef u64 pteval_t; + +typedef u64 pudval_t; + +typedef phys_addr_t resource_size_t; + +typedef u64 sci_t; + +typedef u64 sector_t; + +typedef __u64 timeu64_t; + +typedef u64 u_int64_t; + +typedef u64 upf_t; + +typedef uint64_t vli_type; + +typedef uint64_t xen_pfn_t; + +typedef uint64_t xen_ulong_t; + +typedef long unsigned int __kernel_ulong_t; + +typedef __kernel_ulong_t __kernel_size_t; + +typedef __kernel_size_t size_t; + +typedef size_t HUF_CElt; + +typedef long unsigned int mpi_limb_t; + +typedef mpi_limb_t UWtype; + +typedef __kernel_ulong_t aio_context_t; + +typedef long unsigned int cycles_t; + +typedef long unsigned int dax_entry_t; + +typedef long unsigned int efi_status_t; + +typedef long unsigned int elf_greg_t; + +typedef elf_greg_t elf_gregset_t[34]; + +typedef long unsigned int hva_t; + +typedef __kernel_ulong_t ino_t; + +typedef long unsigned int irq_hw_number_t; + +typedef long unsigned int kernel_ulong_t; + +typedef long unsigned int kimage_entry_t; + +typedef mpi_limb_t *mpi_ptr_t; + +typedef long unsigned int netmem_ref; + +typedef long unsigned int old_sigset_t; + +typedef long unsigned int perf_trace_t[1024]; + +typedef long unsigned int pte_marker; + +typedef long unsigned int uLong; + +typedef long unsigned int u_long; + +typedef long unsigned int uintptr_t; + +typedef long unsigned int ulg; + +typedef long unsigned int ulong; + +typedef uintptr_t uptrval; + +typedef long unsigned int vm_flags_t; + +typedef short int __s16; + +typedef __s16 s16; + +typedef s16 int16_t; + +typedef int16_t S16; + +typedef short unsigned int __u16; + +typedef __u16 Elf32_Half; + +typedef __u16 Elf64_Half; + +typedef short unsigned int ush; + +typedef ush Pos; + +typedef __u16 u16; + +typedef u16 uint16_t; + +typedef uint16_t U16; + +typedef __u16 __be16; + +typedef u16 __compat_gid16_t; + +typedef u16 __compat_gid_t; + +typedef u16 __compat_uid16_t; + +typedef u16 __compat_uid_t; + +typedef __u16 __hc16; + +typedef short unsigned int __kernel_gid16_t; + +typedef short unsigned int __kernel_old_gid_t; + +typedef short unsigned int __kernel_old_uid_t; + +typedef short unsigned int __kernel_sa_family_t; + +typedef short unsigned int __kernel_uid16_t; + +typedef __u16 __le16; + +typedef __u16 __sum16; + +typedef __u16 __virtio16; + +typedef u16 access_mask_t; + +typedef u16 acpi_owner_id; + +typedef u16 acpi_rs_length; + +typedef __u16 bitmap_counter_t; + +typedef u16 blk_short_t; + +typedef uint16_t blkif_vdev_t; + +typedef __u16 comp_t; + +typedef u16 compat_ipc_pid_t; + +typedef u16 compat_mode_t; + +typedef u16 compat_ushort_t; + +typedef uint16_t domid_t; + +typedef u16 efi_char16_t; + +typedef __kernel_gid16_t gid16_t; + +typedef uint16_t grant_status_t; + +typedef u16 layer_mask_t; + +typedef short unsigned int mifi_t; + +typedef __kernel_old_gid_t old_gid_t; + +typedef __kernel_old_uid_t old_uid_t; + +typedef short unsigned int pci_bus_flags_t; + +typedef short unsigned int pci_dev_flags_t; + +typedef __u16 port_id; + +typedef __kernel_sa_family_t sa_family_t; + +typedef u16 u_int16_t; + +typedef short unsigned int u_short; + +typedef u16 ucs2_char_t; + +typedef __kernel_uid16_t uid16_t; + +typedef __u16 uio_meta_flags_t; + +typedef short unsigned int umode_t; + +typedef short unsigned int ushort; + +typedef short unsigned int vifi_t; + +typedef u16 wchar_t; + +typedef signed char __s8; + +typedef __s8 s8; + +typedef s8 int8_t; + +typedef unsigned char __u8; + +typedef __u8 u8; + +typedef u8 uint8_t; + +typedef uint8_t BYTE; + +typedef unsigned char Byte; + +typedef uint8_t U8; + +typedef u8 acpi_adr_space_type; + +typedef u8 blk_status_t; + +typedef __u8 byte_t; + +typedef unsigned char cc_t; + +typedef u8 dscp_t; + +typedef __u8 dvd_challenge[10]; + +typedef __u8 dvd_key[5]; + +typedef u8 efi_bool_t; + +typedef u8 enet_addr_t[6]; + +typedef __u8 mctp_eid_t; + +typedef u8 rmap_age_t; + +typedef unsigned char u8___2; + +typedef unsigned char u_char; + +typedef u8 u_int8_t; + +typedef unsigned char uch; + +typedef const unsigned char utf8leaf_t; + +typedef const unsigned char utf8trie_t; + +typedef __u8 virtio_net_ctrl_ack; + +typedef uint8_t xen_domain_handle_t[16]; + +typedef unsigned int __u32; + +typedef __u32 Elf32_Addr; + +typedef __u32 Elf32_Off; + +typedef __u32 Elf32_Word; + +typedef __u32 Elf64_Word; + +typedef unsigned int FSE_CTable; + +typedef unsigned int FSE_DTable; + +typedef __u32 u32; + +typedef u32 uint32_t; + +typedef uint32_t U32; + +typedef U32 HUF_DTable; + +typedef unsigned int IPos; + +typedef unsigned int RING_IDX; + +typedef unsigned int UHWtype; + +typedef uint32_t XENCONS_RING_IDX; + +typedef uint32_t XENSTORE_RING_IDX; + +typedef __u32 __be32; + +typedef u32 __compat_gid32_t; + +typedef u32 __compat_uid32_t; + +typedef __u32 __hc32; + +typedef u32 __kernel_dev_t; + +typedef unsigned int __kernel_gid32_t; + +typedef unsigned int __kernel_gid_t; + +typedef unsigned int __kernel_mode_t; + +typedef unsigned int __kernel_old_dev_t; + +typedef unsigned int __kernel_uid32_t; + +typedef unsigned int __kernel_uid_t; + +typedef __u32 __le32; + +typedef unsigned int __poll_t; + +typedef __u32 __portpair; + +typedef __u32 __virtio32; + +typedef __u32 __wsum; + +typedef u32 acpi_event_status; + +typedef u32 acpi_mutex_handle; + +typedef u32 acpi_name; + +typedef u32 acpi_object_type; + +typedef u32 acpi_rsdesc_size; + +typedef u32 acpi_status; + +typedef u32 arm_v7s_iopte; + +typedef unsigned int blk_features_t; + +typedef unsigned int blk_flags_t; + +typedef unsigned int blk_insert_t; + +typedef unsigned int blk_mode_t; + +typedef __u32 blk_mq_req_flags_t; + +typedef __u32 blk_opf_t; + +typedef unsigned int blk_qc_t; + +typedef u32 compat_aio_context_t; + +typedef u32 compat_caddr_t; + +typedef u32 compat_dev_t; + +typedef unsigned int compat_elf_greg_t; + +typedef compat_elf_greg_t compat_elf_gregset_t[18]; + +typedef u32 compat_ino_t; + +typedef u32 compat_old_sigset_t; + +typedef u32 compat_sigset_word; + +typedef u32 compat_size_t; + +typedef u32 compat_uint_t; + +typedef u32 compat_ulong_t; + +typedef u32 compat_uptr_t; + +typedef u32 cppi5_tr_flags_t; + +typedef u32 depot_flags_t; + +typedef u32 depot_stack_handle_t; + +typedef __kernel_dev_t dev_t; + +typedef uint32_t drbg_flag_t; + +typedef unsigned int drm_magic_t; + +typedef u32 efi_cc_event_algorithm_bitmap_t; + +typedef u32 efi_cc_event_log_bitmap_t; + +typedef u32 efi_cc_event_log_format_t; + +typedef u32 efi_cc_mr_index_t; + +typedef u32 efi_tcg2_event_log_format; + +typedef u32 errseq_t; + +typedef uint32_t event_word_t; + +typedef uint32_t evtchn_port_t; + +typedef unsigned int ext4_group_t; + +typedef __u32 ext4_lblk_t; + +typedef __be32 fdt32_t; + +typedef unsigned int fgf_t; + +typedef unsigned int fmode_t; + +typedef unsigned int fop_flags_t; + +typedef unsigned int gfp_t; + +typedef __kernel_gid32_t gid_t; + +typedef uint32_t grant_handle_t; + +typedef uint32_t grant_ref_t; + +typedef __u32 if_mask; + +typedef __u32 int32; + +typedef unsigned int ioasid_t; + +typedef unsigned int iov_iter_extraction_t; + +typedef unsigned int isolate_mode_t; + +typedef unsigned int kasan_vmalloc_flags_t; + +typedef uint32_t key_perm_t; + +typedef __le32 kprobe_opcode_t; + +typedef unsigned int mmc_pm_flag_t; + +typedef __kernel_mode_t mode_t; + +typedef u32 nlink_t; + +typedef u32 note_buf_t[106]; + +typedef unsigned int pci_channel_state_t; + +typedef unsigned int pci_ers_result_t; + +typedef unsigned int pgtbl_mod_mask; + +typedef u32 phandle; + +typedef unsigned int pipe_index_t; + +typedef unsigned int pkvm_handle_t; + +typedef __kernel_uid32_t projid_t; + +typedef __kernel_uid32_t qid_t; + +typedef U32 rankValCol_t[13]; + +typedef __u32 req_flags_t; + +typedef u32 rpc_authflavor_t; + +typedef unsigned int sk_buff_data_t; + +typedef unsigned int slab_flags_t; + +typedef unsigned int speed_t; + +typedef u32 ssci_t; + +typedef unsigned int t_key; + +typedef unsigned int tcflag_t; + +typedef unsigned int tid_t; + +typedef unsigned int uInt; + +typedef unsigned int u_int; + +typedef u32 u_int32_t; + +typedef unsigned int uffd_flags_t; + +typedef __kernel_uid32_t uid_t; + +typedef unsigned int uint; + +typedef u32 unicode_t; + +typedef __le32 uprobe_opcode_t; + +typedef unsigned int upstat_t; + +typedef u32 usb_port_location_t; + +typedef unsigned int vm_fault_t; + +typedef unsigned int xa_mark_t; + +typedef u32 xdp_features_t; + +typedef unsigned int zap_flags_t; + +typedef struct { + size_t bitContainer; + unsigned int bitPos; + char *startPtr; + char *ptr; + char *endPtr; +} BIT_CStream_t; + +typedef struct { + size_t bitContainer; + unsigned int bitsConsumed; + const char *ptr; + const char *start; + const char *limitPtr; +} BIT_DStream_t; + +typedef struct { + BYTE maxTableLog; + BYTE tableType; + BYTE tableLog; + BYTE reserved; +} DTableDesc; + +typedef struct { + ptrdiff_t value; + const void *stateTable; + const void *symbolTT; + unsigned int stateLog; +} FSE_CState_t; + +typedef struct { + size_t state; + const void *table; +} FSE_DState_t; + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; + +typedef struct { + short int ncount[256]; + FSE_DTable dtable[0]; +} FSE_DecompressWksp; + +typedef struct { + short unsigned int newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; + +typedef struct { + int deltaFindState; + U32 deltaNbBits; +} FSE_symbolCompressionTransform; + +typedef struct { + size_t bitContainer[2]; + size_t bitPos[2]; + BYTE *startPtr; + BYTE *ptr; + BYTE *endPtr; +} HUF_CStream_t; + +typedef struct { + FSE_CTable CTable[59]; + U32 scratchBuffer[41]; + unsigned int count[13]; + S16 norm[13]; +} HUF_CompressWeightsWksp; + +typedef struct { + BYTE nbBits; + BYTE byte; +} HUF_DEltX1; + +typedef struct { + U16 sequence; + BYTE nbBits; + BYTE length; +} HUF_DEltX2; + +typedef struct { + U32 rankVal[13]; + U32 rankStart[13]; + U32 statsWksp[218]; + BYTE symbols[256]; + BYTE huffWeight[256]; +} HUF_ReadDTableX1_Workspace; + +typedef struct { + BYTE symbol; +} sortedSymbol_t; + +typedef struct { + U32 rankVal[156]; + U32 rankStats[13]; + U32 rankStart0[15]; + sortedSymbol_t sortedSymbol[256]; + BYTE weightList[256]; + U32 calleeWksp[218]; +} HUF_ReadDTableX2_Workspace; + +typedef struct { + HUF_CompressWeightsWksp wksp; + BYTE bitsToWeight[13]; + BYTE huffWeight[255]; +} HUF_WriteCTableWksp; + +struct nodeElt_s { + U32 count; + U16 parent; + BYTE byte; + BYTE nbBits; +}; + +typedef struct nodeElt_s nodeElt; + +typedef nodeElt huffNodeTable[512]; + +typedef struct { + U16 base; + U16 curr; +} rankPos; + +typedef struct { + huffNodeTable huffNodeTbl; + rankPos rankPosition[192]; +} HUF_buildCTable_wksp_tables; + +typedef struct { + unsigned int count[256]; + HUF_CElt CTable[257]; + union { + HUF_buildCTable_wksp_tables buildCTable_wksp; + HUF_WriteCTableWksp writeCTable_wksp; + U32 hist_wksp[1024]; + } wksps; +} HUF_compress_tables_t; + +struct buffer_head; + +typedef struct { + __le32 *p; + __le32 key; + struct buffer_head *bh; +} Indirect; + +typedef struct { + const uint8_t *externalDict; + size_t extDictSize; + const uint8_t *prefixEnd; + size_t prefixSize; +} LZ4_streamDecode_t_internal; + +typedef union { + long long unsigned int table[4]; + LZ4_streamDecode_t_internal internal_donotuse; +} LZ4_streamDecode_t; + +struct folio; + +typedef struct { + struct folio *v; +} Sector; + +typedef struct { + unsigned int offset; + unsigned int litLength; + unsigned int matchLength; + unsigned int rep; +} ZSTD_Sequence; + +typedef struct { + int collectSequences; + ZSTD_Sequence *seqStart; + size_t seqIndex; + size_t maxSequences; +} SeqCollector; + +typedef struct { + S16 norm[53]; + U32 wksp[285]; +} ZSTD_BuildCTableWksp; + +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; + +struct seqDef_s; + +typedef struct seqDef_s seqDef; + +typedef struct { + seqDef *sequencesStart; + seqDef *sequences; + BYTE *litStart; + BYTE *lit; + BYTE *llCode; + BYTE *mlCode; + BYTE *ofCode; + size_t maxNbSeq; + size_t maxNbLit; + ZSTD_longLengthType_e longLengthType; + U32 longLengthPos; +} seqStore_t; + +typedef struct { + symbolEncodingType_e hType; + BYTE hufDesBuffer[128]; + size_t hufDesSize; +} ZSTD_hufCTablesMetadata_t; + +typedef struct { + symbolEncodingType_e llType; + symbolEncodingType_e ofType; + symbolEncodingType_e mlType; + BYTE fseTablesBuffer[133]; + size_t fseTablesSize; + size_t lastCountSize; +} ZSTD_fseCTablesMetadata_t; + +typedef struct { + ZSTD_hufCTablesMetadata_t hufMetadata; + ZSTD_fseCTablesMetadata_t fseMetadata; +} ZSTD_entropyCTablesMetadata_t; + +typedef struct { + seqStore_t fullSeqStoreChunk; + seqStore_t firstHalfSeqStore; + seqStore_t secondHalfSeqStore; + seqStore_t currSeqStore; + seqStore_t nextSeqStore; + U32 partitions[196]; + ZSTD_entropyCTablesMetadata_t entropyMetadata; +} ZSTD_blockSplitCtx; + +typedef struct { + HUF_CElt CTable[257]; + HUF_repeat repeatMode; +} ZSTD_hufCTables_t; + +typedef struct { + FSE_CTable offcodeCTable[193]; + FSE_CTable matchlengthCTable[363]; + FSE_CTable litlengthCTable[329]; + FSE_repeat offcode_repeatMode; + FSE_repeat matchlength_repeatMode; + FSE_repeat litlength_repeatMode; +} ZSTD_fseCTables_t; + +typedef struct { + ZSTD_hufCTables_t huf; + ZSTD_fseCTables_t fse; +} ZSTD_entropyCTables_t; + +typedef struct { + ZSTD_entropyCTables_t entropy; + U32 rep[3]; +} ZSTD_compressedBlockState_t; + +typedef struct { + const BYTE *nextSrc; + const BYTE *base; + const BYTE *dictBase; + U32 dictLimit; + U32 lowLimit; + U32 nbOverflowCorrections; +} ZSTD_window_t; + +typedef struct { + U32 off; + U32 len; +} ZSTD_match_t; + +typedef struct { + int price; + U32 off; + U32 mlen; + U32 litlen; + U32 rep[3]; +} ZSTD_optimal_t; + +typedef struct { + unsigned int *litFreq; + unsigned int *litLengthFreq; + unsigned int *matchLengthFreq; + unsigned int *offCodeFreq; + ZSTD_match_t *matchTable; + ZSTD_optimal_t *priceTable; + U32 litSum; + U32 litLengthSum; + U32 matchLengthSum; + U32 offCodeSum; + U32 litSumBasePrice; + U32 litLengthSumBasePrice; + U32 matchLengthSumBasePrice; + U32 offCodeSumBasePrice; + ZSTD_OptPrice_e priceType; + const ZSTD_entropyCTables_t *symbolCosts; + ZSTD_paramSwitch_e literalCompressionMode; +} optState_t; + +typedef struct { + unsigned int windowLog; + unsigned int chainLog; + unsigned int hashLog; + unsigned int searchLog; + unsigned int minMatch; + unsigned int targetLength; + ZSTD_strategy strategy; +} ZSTD_compressionParameters; + +typedef struct { + U32 offset; + U32 litLength; + U32 matchLength; +} rawSeq; + +typedef struct { + rawSeq *seq; + size_t pos; + size_t posInSequence; + size_t size; + size_t capacity; +} rawSeqStore_t; + +struct ZSTD_matchState_t; + +typedef struct ZSTD_matchState_t ZSTD_matchState_t; + +struct ZSTD_matchState_t { + ZSTD_window_t window; + U32 loadedDictEnd; + U32 nextToUpdate; + U32 hashLog3; + U32 rowHashLog; + U16 *tagTable; + U32 hashCache[8]; + U32 *hashTable; + U32 *hashTable3; + U32 *chainTable; + U32 forceNonContiguous; + int dedicatedDictSearch; + optState_t opt; + const ZSTD_matchState_t *dictMatchState; + ZSTD_compressionParameters cParams; + const rawSeqStore_t *ldmSeqStore; +}; + +typedef struct { + ZSTD_compressedBlockState_t *prevCBlock; + ZSTD_compressedBlockState_t *nextCBlock; + ZSTD_matchState_t matchState; +} ZSTD_blockState_t; + +typedef struct { + size_t error; + int lowerBound; + int upperBound; +} ZSTD_bounds; + +typedef struct { + U32 f1c; + U32 f1d; + U32 f7b; + U32 f7c; +} ZSTD_cpuid_t; + +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 struct { + void *workspace; + void *workspaceEnd; + void *objectEnd; + void *tableEnd; + void *tableValidEnd; + void *allocStart; + BYTE allocFailed; + int workspaceOversizedDuration; + ZSTD_cwksp_alloc_phase_e phase; + ZSTD_cwksp_static_alloc_e isStatic; +} ZSTD_cwksp; + +typedef struct { + U16 nextState; + BYTE nbAdditionalBits; + BYTE nbBits; + U32 baseValue; +} ZSTD_seqSymbol; + +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 struct { + long long unsigned int frameContentSize; + long long unsigned int windowSize; + unsigned int blockSizeMax; + ZSTD_frameType_e frameType; + unsigned int headerSize; + unsigned int dictID; + unsigned int checksumFlag; +} ZSTD_frameHeader; + +typedef struct { + int contentSizeFlag; + int checksumFlag; + int noDictIDFlag; +} ZSTD_frameParameters; + +typedef struct { + long long unsigned int ingested; + long long unsigned int consumed; + long long unsigned int produced; + long long unsigned int flushed; + unsigned int currentJobID; + unsigned int nbActiveWorkers; +} ZSTD_frameProgression; + +typedef struct { + size_t compressedSize; + long long unsigned int decompressedBound; +} ZSTD_frameSizeInfo; + +typedef struct { + size_t state; + const ZSTD_seqSymbol *table; +} ZSTD_fseState; + +struct ZSTD_CDict_s; + +typedef struct ZSTD_CDict_s ZSTD_CDict; + +typedef struct { + void *dictBuffer; + const void *dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; + ZSTD_CDict *cdict; +} ZSTD_localDict; + +typedef struct { + rawSeqStore_t seqStore; + U32 startPosInBlock; + U32 endPosInBlock; + U32 offset; +} ZSTD_optLdm_t; + +typedef struct { + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; +} ZSTD_parameters; + +typedef struct { + U32 fastMode; + U32 tableLog; +} ZSTD_seqSymbol_header; + +typedef struct { + U32 litLength; + U32 matchLength; +} ZSTD_sequenceLength; + +typedef struct { + U32 idx; + U32 posInSequence; + size_t posInSrc; +} ZSTD_sequencePosition; + +typedef struct { + U32 LLtype; + U32 Offtype; + U32 MLtype; + size_t size; + size_t lastCountSize; +} ZSTD_symbolEncodingTypeStats_t; + +typedef struct { + union { + char *p; + uint64_t q; + }; +} __guest_handle_char; + +typedef struct { + union { + evtchn_port_t *p; + uint64_t q; + }; +} __guest_handle_evtchn_port_t; + +typedef struct { + union { + int *p; + uint64_t q; + }; +} __guest_handle_int; + +typedef struct { + union { + unsigned char *p; + uint64_t q; + }; +} __guest_handle_uchar; + +typedef struct { + union { + uint32_t *p; + uint64_t q; + }; +} __guest_handle_uint32_t; + +typedef struct { + union { + uint64_t *p; + uint64_t q; + }; +} __guest_handle_uint64_t; + +struct vcpu_runstate_info; + +typedef struct { + union { + struct vcpu_runstate_info *p; + uint64_t q; + }; +} __guest_handle_vcpu_runstate_info; + +typedef struct { + union { + void *p; + uint64_t q; + }; +} __guest_handle_void; + +typedef struct { + union { + xen_pfn_t *p; + uint64_t q; + }; +} __guest_handle_xen_pfn_t; + +struct xen_processor_csd; + +typedef struct { + union { + struct xen_processor_csd *p; + uint64_t q; + }; +} __guest_handle_xen_processor_csd; + +struct xen_processor_cx; + +typedef struct { + union { + struct xen_processor_cx *p; + uint64_t q; + }; +} __guest_handle_xen_processor_cx; + +struct xen_processor_px; + +typedef struct { + union { + struct xen_processor_px *p; + uint64_t q; + }; +} __guest_handle_xen_processor_px; + +typedef struct { + union { + xen_ulong_t *p; + uint64_t q; + }; +} __guest_handle_xen_ulong_t; + +typedef struct { + long unsigned int fds_bits[16]; +} __kernel_fd_set; + +typedef struct { + int val[2]; +} __kernel_fsid_t; + +typedef struct { + U32 tableTime; + U32 decode256Time; +} algo_time_t; + +typedef struct { + s64 counter; +} atomic64_t; + +typedef atomic64_t atomic_long_t; + +typedef struct { + int counter; +} atomic_t; + +typedef struct { + char ax25_call[7]; +} ax25_address; + +struct hlist_node { + struct hlist_node *next; + struct hlist_node **pprev; +}; + +struct timer_list { + struct hlist_node entry; + long unsigned int expires; + void (*function)(struct timer_list *); + u32 flags; +}; + +typedef struct { + char slave; + struct timer_list slave_timer; + short unsigned int slave_timeout; +} ax25_dama_info; + +typedef struct { + __be64 a; + __be64 b; +} be128; + +typedef struct { + blockType_e blockType; + U32 lastBlock; + U32 origSize; +} blockProperties_t; + +typedef struct { + union { + void *kernel; + void *user; + }; + bool is_kernel: 1; +} sockptr_t; + +typedef sockptr_t bpfptr_t; + +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; + +typedef struct { + unsigned int interval; + unsigned int timeout; +} cisco_proto; + +typedef struct { + int *lock; + long unsigned int flags; +} class_core_lock_t; + +typedef struct { + void *lock; +} class_cpus_read_lock_t; + +struct raw_spinlock; + +typedef struct raw_spinlock raw_spinlock_t; + +typedef struct { + raw_spinlock_t *lock; + raw_spinlock_t *lock2; +} class_double_raw_spinlock_t; + +struct rq; + +typedef struct { + struct rq *lock; + struct rq *lock2; +} class_double_rq_lock_t; + +typedef struct { + void *lock; +} class_irq_t; + +typedef struct { + void *lock; + long unsigned int flags; +} class_irqsave_t; + +typedef struct { + void *lock; +} class_jump_label_lock_t; + +typedef struct { + void *lock; +} class_preempt_notrace_t; + +typedef struct { + void *lock; +} class_preempt_t; + +typedef struct { + raw_spinlock_t *lock; +} class_raw_spinlock_irq_t; + +typedef struct { + raw_spinlock_t *lock; + long unsigned int flags; +} class_raw_spinlock_irqsave_t; + +typedef struct { + raw_spinlock_t *lock; +} class_raw_spinlock_t; + +typedef struct { + void *lock; +} class_rcu_t; + +typedef struct { + void *lock; +} class_rcu_tasks_trace_t; + +struct qspinlock { + union { + atomic_t val; + struct { + u8 locked; + u8 pending; + }; + struct { + u16 locked_pending; + u16 tail; + }; + }; +}; + +typedef struct qspinlock arch_spinlock_t; + +struct qrwlock { + union { + atomic_t cnts; + struct { + u8 wlocked; + u8 __lstate[3]; + }; + }; + arch_spinlock_t wait_lock; +}; + +typedef struct qrwlock arch_rwlock_t; + +typedef struct { + arch_rwlock_t raw_lock; +} rwlock_t; + +typedef struct { + rwlock_t *lock; + long unsigned int flags; +} class_read_lock_irqsave_t; + +struct pin_cookie {}; + +struct rq_flags { + long unsigned int flags; + struct pin_cookie cookie; + unsigned int clock_update_flags; +}; + +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irq_t; + +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irqsave_t; + +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_t; + +struct spinlock; + +typedef struct spinlock spinlock_t; + +typedef struct { + spinlock_t *lock; +} class_spinlock_irq_t; + +typedef struct { + spinlock_t *lock; + long unsigned int flags; +} class_spinlock_irqsave_t; + +typedef struct { + spinlock_t *lock; +} class_spinlock_t; + +struct srcu_struct; + +typedef struct { + struct srcu_struct *lock; + int idx; +} class_srcu_t; + +struct task_struct; + +typedef struct { + struct task_struct *lock; + struct rq *rq; + struct rq_flags rf; +} class_task_rq_lock_t; + +typedef struct { + rwlock_t *lock; +} class_write_lock_irq_t; + +typedef struct { + rwlock_t *lock; + long unsigned int flags; +} class_write_lock_irqsave_t; + +typedef struct { + unsigned char op; + unsigned char bits; + short unsigned int val; +} code; + +typedef __kernel_fsid_t compat_fsid_t; + +typedef struct { + compat_sigset_word sig[2]; +} compat_sigset_t; + +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 { + long unsigned int bits[1]; +} dma_cap_mask_t; + +struct dvd_lu_send_agid { + __u8 type; + unsigned int agid: 2; +}; + +struct dvd_host_send_challenge { + __u8 type; + unsigned int agid: 2; + dvd_challenge chal; +}; + +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; + +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 { + u64 length; + u64 data; +} efi_capsule_block_desc_t; + +typedef struct { + __u8 b[16]; +} guid_t; + +typedef guid_t efi_guid_t; + +typedef struct { + efi_guid_t guid; + u32 headersize; + u32 flags; + u32 imagesize; +} efi_capsule_header_t; + +typedef struct { + u8 major; + u8 minor; +} efi_cc_version_t; + +typedef struct { + u8 type; + u8 sub_type; +} efi_cc_type_t; + +typedef struct { + u8 size; + efi_cc_version_t structure_version; + efi_cc_version_t protocol_version; + efi_cc_event_algorithm_bitmap_t hash_algorithm_bitmap; + efi_cc_event_log_bitmap_t supported_event_logs; + efi_cc_type_t cc_type; +} efi_cc_boot_service_cap_t; + +typedef struct { + efi_guid_t guid; + u32 table; +} efi_config_table_32_t; + +typedef struct { + efi_guid_t guid; + u64 table; +} efi_config_table_64_t; + +typedef union { + struct { + efi_guid_t guid; + void *table; + }; + efi_config_table_32_t mixed_mode; +} efi_config_table_t; + +typedef struct { + efi_guid_t guid; + long unsigned int *ptr; + const char name[16]; +} efi_config_table_type_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 { + u64 size; + u64 file_size; + u64 phys_size; + efi_time_t create_time; + efi_time_t last_access_time; + efi_time_t modification_time; + __u64 attribute; + efi_char16_t filename[0]; +} efi_file_info_t; + +typedef struct { + u32 red_mask; + u32 green_mask; + u32 blue_mask; + u32 reserved_mask; +} efi_pixel_bitmask_t; + +typedef struct { + u32 version; + u32 horizontal_resolution; + u32 vertical_resolution; + int pixel_format; + efi_pixel_bitmask_t pixel_information; + u32 pixels_per_scan_line; +} efi_graphics_output_mode_info_t; + +typedef struct { + u16 scan_code; + efi_char16_t unicode_char; +} efi_input_key_t; + +typedef struct { + u32 attributes; + u16 file_path_list_length; + u8 variable_data[0]; +} __attribute__((packed)) efi_load_option_t; + +struct efi_generic_dev_path; + +typedef struct efi_generic_dev_path efi_device_path_protocol_t; + +typedef struct { + u32 attributes; + u16 file_path_list_length; + const efi_char16_t *description; + const efi_device_path_protocol_t *file_path_list; + u32 optional_data_size; + const void *optional_data; +} efi_load_option_unpacked_t; + +typedef void *efi_handle_t; + +typedef struct { + u64 signature; + u32 revision; + u32 headersize; + u32 crc32; + u32 reserved; +} efi_table_hdr_t; + +typedef struct { + u32 resolution; + u32 accuracy; + u8 sets_to_zero; +} efi_time_cap_t; + +typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *); + +typedef efi_status_t efi_set_time_t(efi_time_t *); + +typedef 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 struct { + u32 type; + u32 pad; + u64 phys_addr; + u64 virt_addr; + u64 num_pages; + u64 attribute; +} efi_memory_desc_t; + +typedef efi_status_t efi_set_virtual_address_map_t(long unsigned int, long unsigned int, u32, efi_memory_desc_t *); + +typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, long unsigned int *, void *); + +typedef efi_status_t efi_get_next_variable_t(long unsigned int *, efi_char16_t *, efi_guid_t *); + +typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, long unsigned int, void *); + +typedef efi_status_t efi_get_next_high_mono_count_t(u32 *); + +typedef void efi_reset_system_t(int, efi_status_t, long unsigned int, efi_char16_t *); + +typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, long unsigned int, long unsigned int); + +typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, long unsigned int, u64 *, int *); + +typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *); + +typedef struct { + efi_table_hdr_t hdr; + u32 get_time; + u32 set_time; + u32 get_wakeup_time; + u32 set_wakeup_time; + u32 set_virtual_address_map; + u32 convert_pointer; + u32 get_variable; + u32 get_next_variable; + u32 set_variable; + u32 get_next_high_mono_count; + u32 reset_system; + u32 update_capsule; + u32 query_capsule_caps; + u32 query_variable_info; +} efi_runtime_services_32_t; + +typedef union { + struct { + efi_table_hdr_t hdr; + efi_get_time_t *get_time; + efi_set_time_t *set_time; + efi_get_wakeup_time_t *get_wakeup_time; + efi_set_wakeup_time_t *set_wakeup_time; + efi_set_virtual_address_map_t *set_virtual_address_map; + void *convert_pointer; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; + efi_update_capsule_t *update_capsule; + efi_query_capsule_caps_t *query_capsule_caps; + efi_query_variable_info_t *query_variable_info; + }; + efi_runtime_services_32_t mixed_mode; +} efi_runtime_services_t; + +typedef struct { + efi_table_hdr_t hdr; + u32 fw_vendor; + u32 fw_revision; + u32 con_in_handle; + u32 con_in; + u32 con_out_handle; + u32 con_out; + u32 stderr_handle; + u32 stderr; + u32 runtime; + u32 boottime; + u32 nr_tables; + u32 tables; +} efi_system_table_32_t; + +union efi_simple_text_input_protocol; + +typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t; + +union efi_simple_text_output_protocol; + +typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t; + +union efi_boot_services; + +typedef union efi_boot_services efi_boot_services_t; + +typedef union { + struct { + efi_table_hdr_t hdr; + long unsigned int fw_vendor; + u32 fw_revision; + long unsigned int con_in_handle; + efi_simple_text_input_protocol_t *con_in; + long unsigned int con_out_handle; + efi_simple_text_output_protocol_t *con_out; + long unsigned int stderr_handle; + long unsigned int stderr; + efi_runtime_services_t *runtime; + efi_boot_services_t *boottime; + long unsigned int nr_tables; + long unsigned int tables; + }; + efi_system_table_32_t mixed_mode; +} efi_system_table_t; + +typedef union { + struct { + u32 revision; + efi_handle_t parent_handle; + efi_system_table_t *system_table; + efi_handle_t device_handle; + void *file_path; + void *reserved; + u32 load_options_size; + void *load_options; + void *image_base; + __u64 image_size; + unsigned int image_code_type; + unsigned int image_data_type; + efi_status_t (*unload)(efi_handle_t); + }; + struct { + u32 revision; + u32 parent_handle; + u32 system_table; + u32 device_handle; + u32 file_path; + u32 reserved; + u32 load_options_size; + u32 load_options; + u32 image_base; + __u64 image_size; + u32 image_code_type; + u32 image_data_type; + u32 unload; + } mixed_mode; +} efi_loaded_image_t; + +typedef struct { + u32 version; + u32 num_entries; + u32 desc_size; + u32 flags; + efi_memory_desc_t entry[0]; +} efi_memory_attributes_table_t; + +typedef struct { + u32 read; + u32 write; +} efi_pci_io_protocol_access_32_t; + +typedef struct { + void *read; + void *write; +} efi_pci_io_protocol_access_t; + +union efi_pci_io_protocol; + +typedef union efi_pci_io_protocol efi_pci_io_protocol_t; + +typedef efi_status_t (*efi_pci_io_protocol_cfg_t)(efi_pci_io_protocol_t *, EFI_PCI_IO_PROTOCOL_WIDTH, u32, long unsigned int, void *); + +typedef struct { + efi_pci_io_protocol_cfg_t read; + efi_pci_io_protocol_cfg_t write; +} efi_pci_io_protocol_config_access_t; + +typedef struct { + u16 version; + u16 length; + u32 runtime_services_supported; +} efi_rt_properties_table_t; + +typedef struct { + efi_guid_t signature_owner; + u8 signature_data[0]; +} efi_signature_data_t; + +typedef struct { + efi_guid_t signature_type; + u32 signature_list_size; + u32 signature_header_size; + u32 signature_size; + u8 signature_header[0]; +} efi_signature_list_t; + +typedef struct { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; +} ext4_acl_entry; + +typedef struct { + __le32 a_version; +} ext4_acl_header; + +typedef __kernel_fd_set fd_set; + +typedef struct { + long unsigned int *in; + long unsigned int *out; + long unsigned int *ex; + long unsigned int *res_in; + long unsigned int *res_out; + long unsigned int *res_ex; +} fd_set_bits; + +typedef struct { + atomic64_t refcnt; +} file_ref_t; + +typedef struct { + unsigned int t391; + unsigned int t392; + unsigned int n391; + unsigned int n392; + unsigned int n393; + short unsigned int lmi; + short unsigned int dce; +} fr_proto; + +typedef struct { + unsigned int dlci; +} fr_proto_pvc; + +typedef struct { + unsigned int dlci; + char master[16]; +} fr_proto_pvc_info; + +typedef union { + struct { + void *freelist; + long unsigned int counter; + }; + freelist_full_t full; +} freelist_aba_t; + +typedef struct { + long unsigned int v; +} freeptr_t; + +typedef struct { + long unsigned int key[2]; +} hsiphash_key_t; + +typedef struct { + unsigned int __softirq_pending; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +} irq_cpustat_t; + +typedef struct { + u64 val; +} kernel_cap_t; + +typedef struct { + gid_t val; +} kgid_t; + +typedef struct { + uid_t val; +} kuid_t; + +typedef union { + kuid_t uid; + kgid_t gid; +} kid_t; + +typedef struct { + projid_t val; +} kprojid_t; + +typedef struct { + U32 offset; + U32 checksum; +} ldmEntry_t; + +typedef struct { + const BYTE *split; + U32 hash; + U32 checksum; + ldmEntry_t *bucket; +} ldmMatchCandidate_t; + +typedef struct { + ZSTD_paramSwitch_e enableLdm; + U32 hashLog; + U32 bucketSizeLog; + U32 minMatchLength; + U32 hashRateLog; + U32 windowLog; +} ldmParams_t; + +typedef struct { + U64 rolling; + U64 stopMask; +} ldmRollingHashState_t; + +typedef struct { + ZSTD_window_t window; + ldmEntry_t *hashTable; + U32 loadedDictEnd; + BYTE *bucketOffsets; + size_t splitIndices[64]; + ldmMatchCandidate_t matchCandidates[64]; +} ldmState_t; + +typedef struct { + __le64 b; + __le64 a; +} le128; + +typedef struct { + atomic_long_t a; +} local_t; + +typedef struct { + local_t a; +} local64_t; + +typedef struct {} local_lock_t; + +typedef struct {} lockdep_map_p; + +struct refcount_struct { + atomic_t refs; +}; + +typedef struct refcount_struct refcount_t; + +typedef struct { + atomic64_t id; + void *sigpage; + refcount_t pinned; + void *vdso; + long unsigned int flags; + u8 pkey_allocation_map; +} mm_context_t; + +typedef struct {} netdevice_tracker; + +typedef struct {} netns_tracker; + +typedef struct { + char data[8]; +} nfs4_verifier; + +typedef struct { + long unsigned int bits[1]; +} nodemask_t; + +typedef struct { + pgdval_t pgd; +} pgd_t; + +typedef struct { + pgd_t pgd; +} p4d_t; + +typedef struct { + u64 pme; +} pagemap_entry_t; + +typedef struct { + u64 val; +} pfn_t; + +typedef struct { + pteval_t pgprot; +} pgprot_t; + +typedef struct { + pmdval_t pmd; +} pmd_t; + +typedef struct { + long unsigned int bits[4]; +} pnp_irq_mask_t; + +struct net; + +typedef struct { + struct net *net; +} possible_net_t; + +typedef struct { + pteval_t pte; +} pte_t; + +typedef struct { + pudval_t pud; +} pud_t; + +typedef struct { + short unsigned int encoding; + short unsigned int parity; +} raw_hdlc_proto; + +typedef struct { + atomic_t refcnt; +} rcuref_t; + +typedef struct { + size_t written; + size_t count; + union { + char *buf; + void *data; + } arg; + int error; +} read_descriptor_t; + +typedef union { +} release_pages_arg; + +typedef struct { + __u16 report_key_length; + __u8 reserved1; + __u8 reserved2; + __u8 ucca: 3; + __u8 vra: 3; + __u8 type_code: 2; + __u8 region_mask; + __u8 rpc_scheme; + __u8 reserved3; +} rpc_state_t; + +typedef struct { + BIT_DStream_t DStream; + ZSTD_fseState stateLL; + ZSTD_fseState stateOffb; + ZSTD_fseState stateML; + size_t prevOffset[3]; +} seqState_t; + +typedef struct { + U32 *splitLocations; + size_t idx; +} seqStoreSplits; + +typedef struct { + size_t litLength; + size_t matchLength; + size_t offset; +} seq_t; + +struct seqcount { + unsigned int sequence; +}; + +typedef struct seqcount seqcount_t; + +typedef struct { + seqcount_t seqcount; +} seqcount_latch_t; + +struct seqcount_spinlock { + seqcount_t seqcount; +}; + +typedef struct seqcount_spinlock seqcount_spinlock_t; + +struct raw_spinlock { + arch_spinlock_t raw_lock; +}; + +struct spinlock { + union { + struct raw_spinlock rlock; + }; +}; + +typedef struct { + seqcount_spinlock_t seqcount; + spinlock_t lock; +} seqlock_t; + +typedef struct { + long unsigned int sig[1]; +} sigset_t; + +typedef struct { + u64 key[2]; +} siphash_key_t; + +struct list_head { + struct list_head *next; + struct list_head *prev; +}; + +struct wait_queue_head { + spinlock_t lock; + struct list_head head; +}; + +typedef struct wait_queue_head wait_queue_head_t; + +typedef struct { + spinlock_t slock; + int owned; + wait_queue_head_t wq; +} socket_lock_t; + +typedef struct { + char *from; + char *to; +} substring_t; + +typedef struct { + long unsigned int val; +} swp_entry_t; + +typedef struct { + unsigned int clock_rate; + unsigned int clock_type; + short unsigned int loopback; +} sync_serial_settings; + +typedef struct { + unsigned int clock_rate; + unsigned int clock_type; + short unsigned int loopback; + unsigned int slot_map; +} te1_settings; + +typedef struct { + __be16 track_information_length; + __u8 track_lsb; + __u8 session_lsb; + __u8 reserved1; + __u8 track_mode: 4; + __u8 copy: 1; + __u8 damage: 1; + __u8 reserved2: 2; + __u8 data_mode: 4; + __u8 fp: 1; + __u8 packet: 1; + __u8 blank: 1; + __u8 rt: 1; + __u8 nwa_v: 1; + __u8 lra_v: 1; + __u8 reserved3: 6; + __be32 track_start; + __be32 next_writable; + __be32 free_blocks; + __be32 fixed_packet_size; + __be32 track_size; + __be32 last_rec_address; +} track_information; + +typedef struct { + int data; + int audio; + int cdi; + int xa; + long int error; +} tracktype; + +typedef struct { + local64_t v; +} u64_stats_t; + +typedef struct { + u64 m_low; + u64 m_high; +} uint128_t; + +typedef struct { + __u8 b[16]; +} uuid_t; + +typedef struct { + gid_t val; +} vfsgid_t; + +typedef struct { + uid_t val; +} vfsuid_t; + +typedef struct { + short unsigned int dce; + unsigned int modulo; + unsigned int window; + unsigned int t1; + unsigned int t2; + unsigned int n2; +} x25_hdlc_proto; + +struct in6_addr { + union { + __u8 u6_addr8[16]; + __be16 u6_addr16[8]; + __be32 u6_addr32[4]; + } in6_u; +}; + +typedef union { + __be32 a4; + __be32 a6[4]; + struct in6_addr in6; +} xfrm_address_t; + +typedef ZSTD_compressionParameters zstd_compression_parameters; + +typedef ZSTD_customMem zstd_custom_mem; + +typedef ZSTD_frameHeader zstd_frame_header; + +typedef ZSTD_parameters zstd_parameters; + +struct PartitionBlock { + __be32 pb_ID; + __be32 pb_SummedLongs; + __be32 pb_ChkSum; + __be32 pb_HostID; + __be32 pb_Next; + __be32 pb_Flags; + __be32 pb_Reserved1[2]; + __be32 pb_DevFlags; + __u8 pb_DriveName[32]; + __be32 pb_Reserved2[15]; + __be32 pb_Environment[17]; + __be32 pb_EReserved[15]; +}; + +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 qdisc_skb_head { + struct sk_buff *head; + struct sk_buff *tail; + __u32 qlen; + spinlock_t lock; +}; + +struct u64_stats_sync {}; + +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 callback_head { + struct callback_head *next; + void (*func)(struct callback_head *); +}; + +struct lock_class_key {}; + +struct Qdisc_ops; + +struct qdisc_size_table; + +struct netdev_queue; + +struct net_rate_estimator; + +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 *stab; + struct hlist_node hash; + u32 handle; + u32 parent; + struct netdev_queue *dev_queue; + struct net_rate_estimator *rate_est; + struct gnet_stats_basic_sync *cpu_bstats; + struct gnet_stats_queue *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; + int owner; + long unsigned int state; + long unsigned int 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; + struct lock_class_key root_lock_key; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long int privdata[0]; +}; + +struct Qdisc_class_common { + u32 classid; + unsigned int filter_cnt; + struct hlist_node hnode; +}; + +struct hlist_head; + +struct Qdisc_class_hash { + struct hlist_head *hash; + unsigned int hashsize; + unsigned int hashmask; + unsigned int hashelems; +}; + +struct tcmsg; + +struct netlink_ext_ack; + +struct nlattr; + +struct qdisc_walker; + +struct tcf_block; + +struct gnet_dump; + +struct Qdisc_class_ops { + unsigned int flags; + struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *); + int (*graft)(struct Qdisc *, long unsigned int, struct Qdisc *, struct Qdisc **, struct netlink_ext_ack *); + struct Qdisc * (*leaf)(struct Qdisc *, long unsigned int); + void (*qlen_notify)(struct Qdisc *, long unsigned int); + long unsigned int (*find)(struct Qdisc *, u32); + int (*change)(struct Qdisc *, u32, u32, struct nlattr **, long unsigned int *, struct netlink_ext_ack *); + int (*delete)(struct Qdisc *, long unsigned int, struct netlink_ext_ack *); + void (*walk)(struct Qdisc *, struct qdisc_walker *); + struct tcf_block * (*tcf_block)(struct Qdisc *, long unsigned int, struct netlink_ext_ack *); + long unsigned int (*bind_tcf)(struct Qdisc *, long unsigned int, u32); + void (*unbind_tcf)(struct Qdisc *, long unsigned int); + int (*dump)(struct Qdisc *, long unsigned int, struct sk_buff *, struct tcmsg *); + int (*dump_stats)(struct Qdisc *, long unsigned int, struct gnet_dump *); +}; + +struct module; + +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 RigidDiskBlock { + __be32 rdb_ID; + __be32 rdb_SummedLongs; + __be32 rdb_ChkSum; + __be32 rdb_HostID; + __be32 rdb_BlockBytes; + __be32 rdb_Flags; + __be32 rdb_BadBlockList; + __be32 rdb_PartitionList; + __be32 rdb_FileSysHeaderList; + __be32 rdb_DriveInit; + __be32 rdb_Reserved1[6]; + __be32 rdb_Cylinders; + __be32 rdb_Sectors; + __be32 rdb_Heads; + __be32 rdb_Interleave; + __be32 rdb_Park; + __be32 rdb_Reserved2[3]; + __be32 rdb_WritePreComp; + __be32 rdb_ReducedWrite; + __be32 rdb_StepRate; + __be32 rdb_Reserved3[5]; + __be32 rdb_RDBBlocksLo; + __be32 rdb_RDBBlocksHi; + __be32 rdb_LoCylinder; + __be32 rdb_HiCylinder; + __be32 rdb_CylBlocks; + __be32 rdb_AutoParkSeconds; + __be32 rdb_HighRDSKBlock; + __be32 rdb_Reserved4; + char rdb_DiskVendor[8]; + char rdb_DiskProduct[16]; + char rdb_DiskRevision[4]; + char rdb_ControllerVendor[8]; + char rdb_ControllerProduct[16]; + char rdb_ControllerRevision[4]; + __be32 rdb_Reserved5[10]; +}; + +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 kref { + refcount_t refcount; +}; + +struct swait_queue_head { + raw_spinlock_t lock; + struct list_head task_list; +}; + +struct completion { + unsigned int done; + struct swait_queue_head wait; +}; + +struct blk_mq_queue_map { + unsigned int *mq_map; + unsigned int nr_queues; + unsigned int queue_offset; +}; + +struct blk_mq_ops; + +struct blk_mq_tags; + +struct blk_mq_tag_set { + const struct blk_mq_ops *ops; + struct blk_mq_queue_map map[3]; + unsigned int nr_maps; + unsigned int nr_hw_queues; + unsigned int queue_depth; + unsigned int reserved_tags; + unsigned int cmd_size; + int numa_node; + unsigned int timeout; + unsigned int flags; + void *driver_data; + struct blk_mq_tags **tags; + struct blk_mq_tags *shared_tags; + struct mutex tag_list_lock; + struct list_head tag_list; + struct srcu_struct *srcu; +}; + +struct 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 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; + +struct rb_node { + long unsigned int __rb_parent_color; + struct rb_node *rb_right; + struct rb_node *rb_left; +}; + +struct timerqueue_node { + struct rb_node node; + ktime_t expires; +}; + +struct hrtimer_clock_base; + +struct hrtimer { + struct timerqueue_node node; + ktime_t _softexpires; + enum hrtimer_restart (*function)(struct hrtimer *); + struct hrtimer_clock_base *base; + u8 state; + u8 is_rel; + u8 is_soft; + u8 is_hard; +}; + +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 wakeup_source; + +struct wake_irq; + +struct pm_subsys_data; + +struct device; + +struct dev_pm_qos; + +struct dev_pm_info { + pm_message_t power_state; + bool can_wakeup: 1; + bool 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; + bool async_in_progress: 1; + bool must_resume: 1; + bool set_active: 1; + bool 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; + bool idle_notification: 1; + bool request_pending: 1; + bool deferred_resume: 1; + bool needs_force_resume: 1; + bool runtime_auto: 1; + bool ignore_children: 1; + bool no_callbacks: 1; + bool irq_safe: 1; + bool use_autosuspend: 1; + bool timer_autosuspends: 1; + bool memalloc_noio: 1; + unsigned int links_count; + enum rpm_request request; + enum rpm_status runtime_status; + enum rpm_status last_status; + int runtime_error; + int autosuspend_delay; + u64 last_busy; + u64 active_time; + u64 suspended_time; + u64 accounting_timestamp; + struct pm_subsys_data *subsys_data; + void (*set_latency_tolerance)(struct device *, s32); + struct dev_pm_qos *qos; +}; + +struct irq_domain; + +struct msi_device_data; + +struct dev_msi_info { + struct irq_domain *domain; + struct msi_device_data *data; +}; + +struct dev_archdata {}; + +struct device_private; + +struct device_type; + +struct bus_type; + +struct device_driver; + +struct dev_pm_domain; + +struct em_perf_domain; + +struct dev_pin_info; + +struct dma_map_ops; + +struct bus_dma_region; + +struct device_dma_parameters; + +struct dma_coherent_mem; + +struct cma; + +struct io_tlb_mem; + +struct device_node; + +struct fwnode_handle; + +struct class; + +struct attribute_group; + +struct iommu_group; + +struct dev_iommu; + +struct device_physical_location; + +struct device { + struct kobject kobj; + struct device *parent; + struct device_private *p; + const char *init_name; + const struct device_type *type; + const struct bus_type *bus; + struct device_driver *driver; + void *platform_data; + void *driver_data; + struct mutex mutex; + struct dev_links_info links; + struct dev_pm_info power; + struct dev_pm_domain *pm_domain; + struct em_perf_domain *em_pd; + struct dev_pin_info *pins; + 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 dma_coherent_mem *dma_mem; + struct cma *cma_area; + struct io_tlb_mem *dma_io_tlb_mem; + struct list_head dma_io_tlb_pools; + spinlock_t dma_io_tlb_lock; + bool dma_uses_io_tlb; + struct dev_archdata archdata; + struct device_node *of_node; + struct fwnode_handle *fwnode; + int numa_node; + dev_t devt; + u32 id; + spinlock_t devres_lock; + struct list_head devres_head; + const struct class *class; + const struct attribute_group **groups; + void (*release)(struct device *); + struct iommu_group *iommu_group; + struct dev_iommu *iommu; + struct device_physical_location *physical_location; + enum device_removable removable; + bool offline_disabled: 1; + bool offline: 1; + bool of_node_reused: 1; + bool state_synced: 1; + bool can_match: 1; + bool dma_coherent: 1; + bool dma_skip_sync: 1; + bool dma_iommu: 1; +}; + +struct scsi_host_template; + +struct scsi_transport_template; + +struct workqueue_struct; + +struct Scsi_Host { + struct list_head __devices; + struct list_head __targets; + struct list_head starved_list; + spinlock_t default_lock; + spinlock_t *host_lock; + struct mutex scan_mutex; + struct list_head eh_abort_list; + struct list_head eh_cmd_q; + struct task_struct *ehandler; + struct completion *eh_action; + wait_queue_head_t host_wait; + const struct scsi_host_template *hostt; + struct scsi_transport_template *transportt; + struct kref tagset_refcnt; + struct completion tagset_freed; + struct blk_mq_tag_set tag_set; + atomic_t host_blocked; + unsigned int host_failed; + unsigned int host_eh_scheduled; + unsigned int host_no; + int eh_deadline; + long unsigned int last_reset; + unsigned int max_channel; + unsigned int max_id; + u64 max_lun; + unsigned int unique_id; + short unsigned int max_cmd_len; + int this_id; + int can_queue; + short int cmd_per_lun; + short unsigned int sg_tablesize; + short unsigned int sg_prot_tablesize; + unsigned int max_sectors; + unsigned int opt_sectors; + unsigned int max_segment_size; + unsigned int dma_alignment; + long unsigned int dma_boundary; + long unsigned int virt_boundary_mask; + unsigned int nr_hw_queues; + unsigned int nr_maps; + unsigned int active_mode: 2; + unsigned int host_self_blocked: 1; + unsigned int reverse_ordering: 1; + unsigned int tmf_in_progress: 1; + unsigned int async_scan: 1; + unsigned int eh_noresume: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int queuecommand_may_block: 1; + unsigned int short_inquiry: 1; + unsigned int no_scsi2_lun_in_cdb: 1; + unsigned int no_highmem: 1; + 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; + long unsigned int base; + long unsigned int io_port; + unsigned char n_io_port; + unsigned char dma_channel; + unsigned int irq; + enum scsi_host_state shost_state; + struct device shost_gendev; + struct device shost_dev; + void *shost_data; + struct device *dma_dev; + int rpm_autosuspend_delay; + long unsigned int hostdata[0]; +}; + +struct Symbios_host { + u_short type; + u_short device_id; + u_short vendor_id; + u_char bus_nr; + u_char device_fn; + u_short word8; + u_short flags; + u_short io_port; +}; + +struct Symbios_target { + u_char flags; + u_char rsvd; + u_char bus_width; + u_char sync_offset; + u_short sync_period; + u_short timeout; +}; + +struct Symbios_scam { + u_short id; + u_short method; + u_short status; + u_char target_id; + u_char rsvd; +}; + +struct Symbios_nvram { + u_short type; + u_short byte_count; + u_short checksum; + u_char v_major; + u_char v_minor; + u32 boot_crc; + u_short flags; + u_short flags1; + u_short term_state; + u_short rmvbl_flags; + u_char host_id; + u_char num_hba; + u_char num_devices; + u_char max_scam_devices; + u_char num_valid_scam_devices; + u_char flags2; + struct Symbios_host host[4]; + struct Symbios_target target[16]; + struct Symbios_scam scam[4]; + u_char spare_devices[120]; + u_char trailer[6]; +}; + +typedef struct Symbios_nvram Symbios_nvram; + +typedef struct Symbios_target Symbios_target; + +struct Tekram_target { + u_char flags; + u_char sync_index; + u_short word2; +}; + +struct Tekram_nvram { + struct Tekram_target target[16]; + u_char host_id; + u_char flags; + u_char boot_delay_index; + u_char max_tags_index; + u_short flags1; + u_short spare[29]; +}; + +typedef struct Tekram_nvram Tekram_nvram; + +struct ZSTD_CCtx_params_s { + ZSTD_format_e format; + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; + int compressionLevel; + int forceWindow; + size_t targetCBlockSize; + int srcSizeHint; + ZSTD_dictAttachPref_e attachDictPref; + ZSTD_paramSwitch_e literalCompressionMode; + int nbWorkers; + size_t jobSize; + int overlapLog; + int rsyncable; + ldmParams_t ldmParams; + int enableDedicatedDictSearch; + ZSTD_bufferMode_e inBufferMode; + ZSTD_bufferMode_e outBufferMode; + ZSTD_sequenceFormat_e blockDelimiters; + int validateSequences; + ZSTD_paramSwitch_e useBlockSplitter; + ZSTD_paramSwitch_e useRowMatchFinder; + int deterministicRefPrefix; + ZSTD_customMem customMem; +}; + +typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params; + +struct xxh64_state { + uint64_t total_len; + uint64_t v1; + uint64_t v2; + uint64_t v3; + uint64_t v4; + uint64_t mem64[4]; + uint32_t memsize; +}; + +struct POOL_ctx_s; + +typedef struct POOL_ctx_s ZSTD_threadPool; + +struct ZSTD_inBuffer_s { + const void *src; + size_t size; + size_t pos; +}; + +typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; + +struct ZSTD_prefixDict_s { + const void *dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; +}; + +typedef struct ZSTD_prefixDict_s ZSTD_prefixDict; + +struct ZSTD_CCtx_s { + ZSTD_compressionStage_e stage; + int cParamsChanged; + int bmi2; + ZSTD_CCtx_params requestedParams; + ZSTD_CCtx_params appliedParams; + ZSTD_CCtx_params simpleApiParams; + U32 dictID; + size_t dictContentSize; + ZSTD_cwksp workspace; + size_t blockSize; + long long unsigned int pledgedSrcSizePlusOne; + long long unsigned int consumedSrcSize; + long long unsigned int producedCSize; + struct xxh64_state xxhState; + ZSTD_customMem customMem; + ZSTD_threadPool *pool; + size_t staticSize; + SeqCollector seqCollector; + int isFirstBlock; + int initialized; + seqStore_t seqStore; + ldmState_t ldmState; + rawSeq *ldmSequences; + size_t maxNbLdmSequences; + rawSeqStore_t externSeqStore; + ZSTD_blockState_t blockState; + U32 *entropyWorkspace; + ZSTD_buffered_policy_e bufferedPolicy; + char *inBuff; + size_t inBuffSize; + size_t inToCompress; + size_t inBuffPos; + size_t inBuffTarget; + char *outBuff; + size_t outBuffSize; + size_t outBuffContentSize; + size_t outBuffFlushedSize; + ZSTD_cStreamStage streamStage; + U32 frameEnded; + ZSTD_inBuffer expectedInBuffer; + size_t expectedOutBufferSize; + ZSTD_localDict localDict; + const ZSTD_CDict *cdict; + ZSTD_prefixDict prefixDict; + ZSTD_blockSplitCtx blockSplitCtx; +}; + +typedef struct ZSTD_CCtx_s ZSTD_CCtx; + +typedef ZSTD_CCtx ZSTD_CStream; + +typedef ZSTD_CCtx zstd_cctx; + +typedef ZSTD_CStream zstd_cstream; + +struct ZSTD_CDict_s { + const void *dictContent; + size_t dictContentSize; + ZSTD_dictContentType_e dictContentType; + U32 *entropyWorkspace; + ZSTD_cwksp workspace; + ZSTD_matchState_t matchState; + ZSTD_compressedBlockState_t cBlockState; + ZSTD_customMem customMem; + U32 dictID; + int compressionLevel; + ZSTD_paramSwitch_e useRowMatchFinder; +}; + +typedef ZSTD_CDict zstd_cdict; + +struct ZSTD_outBuffer_s { + void *dst; + size_t size; + size_t pos; +}; + +typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; + +struct ZSTD_DCtx_s { + const ZSTD_seqSymbol *LLTptr; + const ZSTD_seqSymbol *MLTptr; + const ZSTD_seqSymbol *OFTptr; + const HUF_DTable *HUFptr; + ZSTD_entropyDTables_t entropy; + U32 workspace[640]; + const void *previousDstEnd; + const void *prefixStart; + const void *virtualStart; + const void *dictEnd; + size_t expected; + ZSTD_frameHeader fParams; + U64 processedCSize; + U64 decodedSize; + blockType_e bType; + ZSTD_dStage stage; + U32 litEntropy; + U32 fseEntropy; + struct xxh64_state xxhState; + size_t headerSize; + ZSTD_format_e format; + ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum; + U32 validateChecksum; + const BYTE *litPtr; + ZSTD_customMem customMem; + size_t litSize; + size_t rleSize; + size_t staticSize; + ZSTD_DDict *ddictLocal; + const ZSTD_DDict *ddict; + U32 dictID; + int ddictIsCold; + ZSTD_dictUses_e dictUses; + ZSTD_DDictHashSet *ddictSet; + ZSTD_refMultipleDDicts_e refMultipleDDicts; + ZSTD_dStreamStage streamStage; + char *inBuff; + size_t inBuffSize; + size_t inPos; + size_t maxWindowSize; + char *outBuff; + size_t outBuffSize; + size_t outStart; + size_t outEnd; + size_t lhSize; + U32 hostageByte; + int noForwardProgress; + ZSTD_bufferMode_e outBufferMode; + ZSTD_outBuffer expectedOutBuffer; + BYTE *litBuffer; + const BYTE *litBufferEnd; + ZSTD_litLocation_e litBufferLocation; + BYTE litExtraBuffer[65568]; + BYTE headerBuffer[18]; + size_t oversizedDuration; +}; + +typedef struct ZSTD_DCtx_s ZSTD_DCtx; + +typedef ZSTD_DCtx ZSTD_DStream; + +typedef ZSTD_DCtx zstd_dctx; + +typedef ZSTD_DStream zstd_dstream; + +struct ZSTD_DDict_s { + void *dictBuffer; + const void *dictContent; + size_t dictSize; + ZSTD_entropyDTables_t entropy; + U32 dictID; + U32 entropyPresent; + ZSTD_customMem cMem; +}; + +typedef ZSTD_DDict zstd_ddict; + +typedef ZSTD_inBuffer zstd_in_buffer; + +typedef ZSTD_outBuffer zstd_out_buffer; + +struct __aio_sigset { + const sigset_t *sigmask; + size_t sigsetsize; +}; + +struct __arch_ftrace_regs { + long unsigned int regs[9]; + long unsigned int direct_tramp; + long unsigned int fp; + long unsigned int lr; + long unsigned int sp; + long unsigned int pc; +}; + +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; +}; + +typedef void (*smp_call_func_t)(void *); + +struct __call_single_data { + struct __call_single_node node; + smp_call_func_t func; + void *info; +}; + +typedef struct __call_single_data call_single_data_t; + +struct cpumask; + +struct __cmp_key { + const struct cpumask *cpus; + struct cpumask ***masks; + int node; + int cpu; + int w; +}; + +struct __compat_aio_sigset { + compat_uptr_t sigmask; + compat_size_t sigsetsize; +}; + +struct __compat_iw_event { + __u16 len; + __u16 cmd; + union { + compat_caddr_t pointer; + struct { + struct {} __empty_ptr_bytes; + __u8 ptr_bytes[0]; + }; + }; +}; + +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 *out_fence_ptr; +}; + +struct drm_crtc; + +struct drm_crtc_state; + +struct drm_crtc_commit; + +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 *out_fence_ptr; + u64 last_vblank_count; +}; + +struct drm_plane; + +struct drm_plane_state; + +struct __drm_planes_state { + struct drm_plane *ptr; + struct drm_plane_state *state; + struct drm_plane_state *old_state; + struct drm_plane_state *new_state; +}; + +struct drm_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 __extcon_info { + unsigned int type; + unsigned int id; + const char *name; +}; + +struct __fat_dirent { + long int d_ino; + __kernel_off_t d_off; + short unsigned int d_reclen; + char d_name[256]; +}; + +struct __fb_timings { + u32 dclk; + u32 hfreq; + u32 vfreq; + u32 hactive; + u32 vactive; + u32 hblank; + u32 vblank; + u32 htotal; + u32 vtotal; +}; + +struct tracepoint; + +struct __find_tracepoint_cb_data { + const char *tp_name; + struct tracepoint *tpoint; + struct module *mod; +}; + +union __fpsimd_vreg { + __int128 unsigned raw; + struct { + u64 lo; + u64 hi; + }; +}; + +struct arm64_ftr_reg; + +struct __ftr_reg_entry { + u32 sys_id; + struct arm64_ftr_reg *reg; +}; + +struct genradix_root; + +struct __genradix { + struct genradix_root *root; +}; + +struct pmu; + +struct cgroup; + +struct __group_key { + int cpu; + struct pmu *pmu; + struct cgroup *cgroup; +}; + +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; + long unsigned int i_flags[1]; + long unsigned int o_flags[1]; + __be32 i_key; + __be32 o_key; + __u32 fwmark; + __u32 index; + __u8 erspan_ver; + __u8 dir; + __u16 hwid; +}; + +struct __kernel_timespec { + __kernel_time64_t tv_sec; + long long int tv_nsec; +}; + +struct __kernel_itimerspec { + struct __kernel_timespec it_interval; + struct __kernel_timespec it_value; +}; + +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 __kernel_old_timespec { + __kernel_old_time_t tv_sec; + long int tv_nsec; +}; + +struct __kernel_sock_timeval { + __s64 tv_sec; + __s64 tv_usec; +}; + +struct __kernel_sockaddr_storage { + union { + struct { + __kernel_sa_family_t ss_family; + char __data[126]; + }; + void *__align; + }; +}; + +struct __kernel_timex_timeval { + __kernel_time64_t tv_sec; + long long int tv_usec; +}; + +struct __kernel_timex { + unsigned int modes; + long long int offset; + long long int freq; + long long int maxerror; + long long int esterror; + int status; + long long int constant; + long long int precision; + long long int tolerance; + struct __kernel_timex_timeval time; + long long int tick; + long long int ppsfreq; + long long int jitter; + int shift; + long long int stabil; + long long int jitcnt; + long long int calcnt; + long long int errcnt; + long long int stbcnt; + int tai; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct __kfifo { + unsigned int in; + unsigned int out; + unsigned int mask; + unsigned int esize; + void *data; +}; + +struct __ksymtab { + long unsigned int value; + const char *mod_name; + long unsigned int mod_start; + long unsigned int mod_end; + const char *sec_name; + long unsigned int sec_start; + long unsigned int sec_end; + const char *sym_name; + long unsigned int sym_start; + long unsigned int sym_end; +}; + +typedef struct __ksymtab kdb_symtab_t; + +struct __pldm_timestamp { + u8 b[13]; +}; + +struct __pldm_header { + uuid_t id; + u8 revision; + __le16 size; + struct __pldm_timestamp release_date; + __le16 component_bitmap_len; + u8 version_type; + u8 version_len; + u8 version_string[0]; +} __attribute__((packed)); + +struct __pldmfw_component_area { + __le16 component_image_count; + u8 components[0]; +}; + +struct __pldmfw_component_info { + __le16 classification; + __le16 identifier; + __le32 comparison_stamp; + __le16 options; + __le16 activation_method; + __le32 location_offset; + __le32 size; + u8 version_type; + u8 version_len; + u8 version_string[0]; +} __attribute__((packed)); + +struct __pldmfw_desc_tlv { + __le16 type; + __le16 size; + u8 data[0]; +}; + +struct __pldmfw_record_area { + u8 record_count; + u8 records[0]; +}; + +struct __pldmfw_record_info { + __le16 record_len; + u8 descriptor_count; + __le32 device_update_flags; + u8 version_type; + u8 version_len; + __le16 package_data_len; + u8 variable_record_data[0]; +} __attribute__((packed)); + +struct qm_cgr_wr_parm { + __be32 word; +}; + +struct qm_cgr_cs_thres { + __be16 word; +}; + +struct __qm_mc_cgr { + struct qm_cgr_wr_parm wr_parm_g; + struct qm_cgr_wr_parm wr_parm_y; + struct qm_cgr_wr_parm wr_parm_r; + u8 wr_en_g; + u8 wr_en_y; + u8 wr_en_r; + u8 cscn_en; + union { + struct { + __be16 cscn_targ_upd_ctrl; + __be16 cscn_targ_dcp_low; + }; + __be32 cscn_targ; + }; + u8 cstd_en; + u8 cs; + struct qm_cgr_cs_thres cs_thres; + u8 mode; +} __attribute__((packed)); + +struct __qm_mcr_querycongestion { + u32 state[8]; +}; + +struct net_device; + +struct __rt6_probe_work { + struct work_struct work; + struct in6_addr target; + struct net_device *dev; + netdevice_tracker dev_tracker; +}; + +union sigval { + int sival_int; + void *sival_ptr; +}; + +typedef union sigval sigval_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 *_addr; + union { + int _trapno; + short int _addr_lsb; + struct { + char _dummy_bnd[8]; + void *_lower; + void *_upper; + } _addr_bnd; + struct { + char _dummy_pkey[8]; + __u32 _pkey; + } _addr_pkey; + struct { + long unsigned int _data; + __u32 _type; + __u32 _flags; + } _perf; + }; + } _sigfault; + struct { + long int _band; + int _fd; + } _sigpoll; + struct { + void *_call_addr; + int _syscall; + unsigned int _arch; + } _sigsys; +}; + +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 dentry; + +struct __track_dentry_update_args { + struct dentry *dentry; + int op; +}; + +struct __track_range_args { + ext4_lblk_t start; + ext4_lblk_t end; +}; + +union __u128_halves { + u128 full; + struct { + u64 low; + u64 high; + }; +}; + +struct __una_u32 { + u32 x; +}; + +struct inode; + +struct __uprobe_key { + struct inode *inode; + loff_t offset; +}; + +struct __user_cap_data_struct { + __u32 effective; + __u32 permitted; + __u32 inheritable; +}; + +typedef struct __user_cap_data_struct *cap_user_data_t; + +struct __user_cap_header_struct { + __u32 version; + int pid; +}; + +typedef struct __user_cap_header_struct *cap_user_header_t; + +struct __va_list { + void *__stack; + void *__gr_top; + void *__vr_top; + int __gr_offs; + int __vr_offs; +}; + +typedef struct __va_list va_list; + +struct _aarch64_ctx { + __u32 magic; + __u32 size; +}; + +struct _bpf_dtab_netdev { + struct net_device *dev; +}; + +struct _ccu_mult { + long unsigned int mult; + long unsigned int min; + long unsigned int max; +}; + +struct _ccu_nk { + long unsigned int n; + long unsigned int min_n; + long unsigned int max_n; + long unsigned int k; + long unsigned int min_k; + long unsigned int max_k; +}; + +struct _ccu_nkm { + long unsigned int n; + long unsigned int min_n; + long unsigned int max_n; + long unsigned int k; + long unsigned int min_k; + long unsigned int max_k; + long unsigned int m; + long unsigned int min_m; + long unsigned int max_m; +}; + +struct _ccu_nkmp { + long unsigned int n; + long unsigned int min_n; + long unsigned int max_n; + long unsigned int k; + long unsigned int min_k; + long unsigned int max_k; + long unsigned int m; + long unsigned int min_m; + long unsigned int max_m; + long unsigned int p; + long unsigned int min_p; + long unsigned int max_p; +}; + +struct _ccu_nm { + long unsigned int n; + long unsigned int min_n; + long unsigned int max_n; + long unsigned int m; + long unsigned int min_m; + long unsigned int max_m; +}; + +struct jump_entry; + +struct static_key_mod; + +struct static_key { + atomic_t enabled; + union { + long unsigned int type; + struct jump_entry *entries; + struct static_key_mod *next; + }; +}; + +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 ddebug_class_map; + +struct _ddebug_info { + struct _ddebug *descs; + struct ddebug_class_map *classes; + unsigned int num_descs; + unsigned int num_classes; +}; + +struct _flow_keys_digest_data { + __be16 n_proto; + u8 ip_proto; + u8 padding; + __be32 ports; + __be32 src; + __be32 dst; +}; + +struct _gpiochip_for_each_data { + const char **label; + unsigned int *i; +}; + +typedef struct _gpiochip_for_each_data class__gpiochip_for_each_data_t; + +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_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_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 kvm_io_device_ops; + +struct kvm_io_device { + const struct kvm_io_device_ops *ops; +}; + +struct eventfd_ctx; + +struct _ioeventfd { + struct list_head list; + u64 addr; + int length; + struct eventfd_ctx *eventfd; + u64 datamatch; + struct kvm_io_device dev; + u8 bus_idx; + bool wildcard; +}; + +struct _kdb_bp { + long unsigned int bp_addr; + unsigned int bp_free: 1; + unsigned int bp_enabled: 1; + unsigned int bp_type: 4; + unsigned int bp_installed: 1; + unsigned int bp_delay: 1; + unsigned int bp_delayed: 1; + unsigned int bph_length; +}; + +typedef struct _kdb_bp kdb_bp_t; + +struct _kdbmsg { + int km_diag; + char *km_msg; +}; + +typedef struct _kdbmsg kdbmsg_t; + +typedef int (*kdb_func_t)(int, const char **); + +struct _kdbtab { + char *name; + kdb_func_t func; + char *usage; + char *help; + short int minlen; + kdb_cmdflags_t flags; + struct list_head list_node; +}; + +typedef struct _kdbtab kdbtab_t; + +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 _legacy_mbr { + u8 boot_code[440]; + __le32 unique_mbr_signature; + __le16 unknown; + gpt_mbr_record partition_record[4]; + __le16 signature; +} __attribute__((packed)); + +typedef struct _legacy_mbr legacy_mbr; + +struct strp_msg { + int full_len; + int offset; +}; + +struct _strp_msg { + struct strp_msg strp; + int accum_len; +}; + +struct a64fx_diag_priv { + void *mmsc_reg_base; + int irq; + bool has_nmi; +}; + +struct aa_policydb; + +struct aa_attachment { + const char *xmatch_str; + struct aa_policydb *xmatch; + unsigned int xmatch_len; + int xattr_count; + char **xattrs; +}; + +struct aa_audit_cache { + spinlock_t lock; + int size; + struct list_head head; +}; + +struct vfsmount; + +struct path { + struct vfsmount *mnt; + struct dentry *dentry; +}; + +struct lsm_network_audit; + +struct lsm_ioctlop_audit; + +struct file; + +struct lsm_ibpkey_audit; + +struct lsm_ibendport_audit; + +struct smack_audit_data; + +struct selinux_audit_data; + +struct apparmor_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; + u16 nlmsg_type; + } u; + union { + struct smack_audit_data *smack_audit_data; + struct selinux_audit_data *selinux_audit_data; + struct apparmor_audit_data *apparmor_audit_data; + }; +}; + +struct cred; + +struct aa_label; + +struct sock; + +struct aa_profile; + +struct apparmor_audit_data { + u32 flags; + int error; + int type; + u16 class; + const char *op; + const struct cred *subj_cred; + struct aa_label *subj_label; + const char *name; + const char *info; + u32 request; + u32 denied; + struct task_struct *subjtsk; + union { + struct { + struct aa_label *peer; + union { + struct { + const char *target; + kuid_t ouid; + } fs; + struct { + int rlim; + long unsigned int max; + } rlim; + struct { + int signal; + int unmappedsig; + }; + struct { + int type; + int protocol; + struct sock *peer_sk; + void *addr; + int addrlen; + } net; + struct { + const char *target; + } ns; + struct { + kuid_t fsuid; + kuid_t ouid; + } mq; + }; + }; + struct { + struct aa_profile *profile; + const char *ns; + long int pos; + } iface; + struct { + const char *src_name; + const char *type; + const char *trans; + const char *data; + long unsigned int flags; + } mnt; + struct { + struct aa_label *target; + } uring; + }; + struct common_audit_data common; +}; + +struct aa_knotif { + struct apparmor_audit_data *ad; + struct list_head list; + struct completion ready; + u64 id; + u16 ntype; + u16 flags; +}; + +struct aa_audit_node { + struct kref count; + struct apparmor_audit_data data; + struct list_head list; + struct aa_knotif knotif; +}; + +struct aa_audit_rule { + struct aa_label *label; +}; + +union aa_buffer { + struct list_head list; + struct { + struct {} __empty_buffer; + char buffer[0]; + }; +}; + +struct aa_caps { + kernel_cap_t allow; + kernel_cap_t audit; + kernel_cap_t denied; + kernel_cap_t quiet; + kernel_cap_t kill; + kernel_cap_t extended; +}; + +struct rhash_head { + struct rhash_head *next; +}; + +struct aa_data { + char *key; + u32 size; + char *data; + struct rhash_head head; +}; + +struct table_header; + +struct aa_dfa { + struct kref count; + u16 flags; + u32 max_oob; + struct table_header *tables[8]; +}; + +struct aa_ext { + void *start; + void *end; + void *pos; + u32 version; +}; + +struct aa_file_ctx { + spinlock_t lock; + struct aa_label *label; + u32 allow; +}; + +struct aa_inode_sec { + struct inode *inode; + struct aa_label *label; + u16 sclass; + bool initialized; + spinlock_t lock; +}; + +struct aa_proxy; + +struct aa_ruleset; + +struct aa_label { + struct kref count; + struct rb_node node; + struct callback_head rcu; + struct aa_proxy *proxy; + char *hname; + long int flags; + u32 secid; + int size; + u64 mediates; + union { + struct { + struct aa_profile *profile[2]; + struct { + struct {} __empty_rules; + struct aa_ruleset *rules[0]; + }; + }; + struct { + struct {} __empty_vec; + struct aa_profile *vec[0]; + }; + }; +}; + +struct rb_root { + struct rb_node *rb_node; +}; + +struct aa_labelset { + rwlock_t lock; + struct rb_root root; +}; + +struct aa_ns; + +struct aa_listener { + struct kref count; + spinlock_t lock; + wait_queue_head_t wait; + struct list_head ns_proxies; + struct list_head notifications; + struct list_head pending; + struct aa_ns *ns; + struct aa_dfa *filter; + u64 last_id; + u32 mask; + u32 flags; +}; + +struct aa_listener_proxy { + struct aa_ns *ns; + struct aa_listener *listener; + struct list_head llist; + struct list_head nslist; +}; + +struct aa_load_ent { + struct list_head list; + struct aa_profile *new; + struct aa_profile *old; + struct aa_profile *rename; + const char *ns_name; +}; + +struct aa_loaddata { + struct kref count; + struct list_head list; + struct work_struct work; + struct dentry *dents[6]; + struct aa_ns *ns; + char *name; + size_t size; + size_t compressed_size; + long int revision; + int abi; + unsigned char *hash; + char *data; +}; + +struct aa_local_cache { + unsigned int hold; + unsigned int count; + struct list_head head; +}; + +struct aa_net_compat { + u16 allow[46]; + u16 audit[46]; + u16 quiet[46]; +}; + +struct aa_policy { + const char *name; + char *hname; + struct list_head list; + struct list_head profiles; +}; + +struct aa_ns_acct { + int max_size; + int max_count; + int size; + int count; +}; + +struct aa_ns { + struct aa_policy base; + struct aa_ns *parent; + struct mutex lock; + struct aa_ns_acct acct; + struct aa_profile *unconfined; + struct list_head sub_ns; + atomic_t uniq_null; + long int uniq_id; + int level; + long int revision; + wait_queue_head_t wait; + spinlock_t listener_lock; + struct list_head listeners; + struct aa_labelset labels; + struct list_head rawdata_list; + struct dentry *dents[13]; +}; + +struct aa_perms { + u32 allow; + u32 deny; + u32 subtree; + u32 cond; + u32 kill; + u32 complain; + u32 prompt; + u32 audit; + u32 quiet; + u32 hide; + u32 xindex; + u32 tag; + u32 label; +}; + +struct aa_str_table { + int size; + char **table; +}; + +struct aa_policydb { + struct kref count; + struct aa_dfa *dfa; + struct { + struct aa_perms *perms; + u32 size; + }; + struct aa_str_table trans; + unsigned int start[33]; +}; + +struct rhashtable; + +struct aa_profile { + struct aa_policy base; + struct aa_profile *parent; + struct aa_ns *ns; + const char *rename; + enum audit_mode audit; + long int mode; + u32 path_flags; + int signal; + const char *disconnected; + const char *disconnected_ipc; + struct aa_attachment attach; + struct aa_net_compat *net_compat; + struct aa_audit_cache learning_cache; + struct aa_loaddata *rawdata; + unsigned char *hash; + char *dirname; + struct dentry *dents[10]; + struct rhashtable *data; + int n_rules; + struct aa_label label; +}; + +struct aa_proxy { + struct kref count; + struct aa_label *label; +}; + +struct aa_revision { + struct aa_ns *ns; + long int last_read; +}; + +struct rlimit { + __kernel_ulong_t rlim_cur; + __kernel_ulong_t rlim_max; +}; + +struct aa_rlimit { + unsigned int mask; + struct rlimit limits[16]; +}; + +struct aa_secmark; + +struct aa_ruleset { + int size; + struct aa_policydb *policy; + struct aa_policydb *file; + struct aa_caps caps; + struct aa_rlimit rlimits; + int secmark_count; + struct aa_secmark *secmark; +}; + +struct aa_secmark { + u8 audit; + u8 deny; + u32 secid; + char *label; +}; + +struct file_operations; + +struct aa_sfs_entry { + const char *name; + struct dentry *dentry; + umode_t mode; + enum aa_sfs_type v_type; + union { + bool boolean; + char *string; + long unsigned int u64; + struct aa_sfs_entry *files; + } v; + const struct file_operations *file_ops; +}; + +struct aa_sk_ctx { + struct aa_label *label; + struct aa_label *peer; +}; + +struct aa_task_ctx { + struct aa_label *nnp; + struct aa_label *onexec; + struct aa_label *previous; + u64 token; +}; + +struct aarch64_insn_patch { + void **text_addrs; + u32 *new_insns; + int insn_cnt; + atomic_t cpu_count; +}; + +struct i2c_client; + +struct aat2870_register; + +struct aat2870_data { + struct device *dev; + struct i2c_client *client; + struct mutex io_lock; + struct aat2870_register *reg_cache; + int en_pin; + bool is_enable; + int (*init)(struct aat2870_data *); + void (*uninit)(struct aat2870_data *); + int (*read)(struct aat2870_data *, u8, u8 *); + int (*write)(struct aat2870_data *, u8, u8); + int (*update)(struct aat2870_data *, u8, u8, u8); + struct dentry *dentry_root; +}; + +struct aat2870_subdev_info; + +struct aat2870_platform_data { + int en_pin; + struct aat2870_subdev_info *subdevs; + int num_subdevs; + int (*init)(struct aat2870_data *); + void (*uninit)(struct aat2870_data *); +}; + +struct aat2870_register { + bool readable; + bool writeable; + u8 value; +}; + +struct aat2870_subdev_info { + int id; + const char *name; + void *platform_data; +}; + +struct seq_net_private { + struct net *net; + netns_tracker ns_tracker; +}; + +struct ac6_iter_state { + struct seq_net_private p; + struct net_device *dev; +}; + +struct access_coordinate { + unsigned int read_bandwidth; + unsigned int write_bandwidth; + unsigned int read_latency; + unsigned int write_latency; +}; + +struct access_masks { + access_mask_t fs: 16; + access_mask_t net: 2; + access_mask_t scope: 2; +}; + +union access_masks_all { + struct access_masks masks; + u32 all; +}; + +struct access_report_info { + struct callback_head work; + const char *access; + struct task_struct *target; + struct task_struct *agent; +}; + +struct acct_v3 { + char ac_flag; + char ac_version; + __u16 ac_tty; + __u32 ac_exitcode; + __u32 ac_uid; + __u32 ac_gid; + __u32 ac_pid; + __u32 ac_ppid; + __u32 ac_btime; + __u32 ac_etime; + comp_t ac_utime; + comp_t ac_stime; + comp_t ac_mem; + comp_t ac_io; + comp_t ac_rw; + comp_t ac_minflt; + comp_t ac_majflt; + comp_t ac_swaps; + char ac_comm[16]; +}; + +typedef struct acct_v3 acct_t; + +struct ack_sample { + u32 pkts_acked; + s32 rtt_us; + u32 in_flight; +}; + +struct crypto_tfm; + +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 comp_alg_common { + struct crypto_alg base; +}; + +struct acomp_req; + +struct scatterlist; + +struct crypto_acomp; + +struct acomp_alg { + int (*compress)(struct acomp_req *); + int (*decompress)(struct acomp_req *); + void (*dst_free)(struct scatterlist *); + int (*init)(struct crypto_acomp *); + void (*exit)(struct crypto_acomp *); + unsigned int reqsize; + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; +}; + +typedef 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 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 power_supply; + +union power_supply_propval; + +struct power_supply_desc { + const char *name; + enum power_supply_type type; + u8 charge_behaviours; + u32 charge_types; + u32 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 notifier_block; + +typedef int (*notifier_fn_t)(struct notifier_block *, long unsigned int, void *); + +struct notifier_block { + notifier_fn_t notifier_call; + struct notifier_block *next; + int priority; +}; + +struct acpi_device; + +struct acpi_ac { + struct power_supply *charger; + struct power_supply_desc charger_desc; + struct acpi_device *device; + long long unsigned int state; + struct notifier_block battery_nb; +}; + +struct acpi_address16_attribute { + u16 granularity; + u16 minimum; + u16 maximum; + u16 translation_offset; + u16 address_length; +}; + +struct acpi_address32_attribute { + u32 granularity; + u32 minimum; + u32 maximum; + u32 translation_offset; + u32 address_length; +}; + +struct acpi_address64_attribute { + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; +}; + +struct acpi_namespace_node; + +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 acpi_apmt_node { + u16 length; + u8 flags; + u8 type; + u32 id; + u64 inst_primary; + u32 inst_secondary; + u64 base_address0; + u64 base_address1; + u32 ovflw_irq; + u32 reserved; + u32 ovflw_irq_flags; + u32 proc_affinity; + u32 impl_id; +} __attribute__((packed)); + +struct 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; + long unsigned int 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; + long unsigned int 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; +}; + +struct acpi_bert_region { + u32 block_status; + u32 raw_data_offset; + u32 raw_data_length; + u32 data_length; + u32 error_severity; +}; + +struct acpi_buffer { + acpi_size length; + void *pointer; +}; + +struct acpi_bus_event { + struct list_head node; + acpi_device_class device_class; + acpi_bus_id bus_id; + u32 type; + u32 data; +}; + +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 input_dev; + +struct acpi_button { + unsigned int type; + struct input_dev *input; + char phys[32]; + long unsigned int pushed; + int last_state; + ktime_t last_time; + bool suspended; + bool lid_state_initialized; +}; + +struct acpi_cdat_header { + u8 type; + u8 reserved; + u16 length; +}; + +struct acpi_cedt_header { + u8 type; + u8 reserved; + u16 length; +}; + +struct acpi_cedt_cfmws { + struct acpi_cedt_header header; + u32 reserved1; + u64 base_hpa; + u64 window_size; + u8 interleave_ways; + u8 interleave_arithmetic; + u16 reserved2; + u32 granularity; + u16 restrictions; + u16 qtg_id; + u32 interleave_targets[0]; +} __attribute__((packed)); + +struct acpi_comment_node { + char *comment; + struct acpi_comment_node *next; +}; + +struct acpi_common_descriptor { + void *common_pointer; + u8 descriptor_type; +}; + +struct acpi_common_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; +}; + +struct acpi_connection_info { + u8 *connection; + u16 length; + u8 access_length; +}; + +union acpi_parse_object; + +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_create_field_info { + struct acpi_namespace_node *region_node; + struct acpi_namespace_node *field_node; + struct acpi_namespace_node *register_node; + struct acpi_namespace_node *data_register_node; + struct acpi_namespace_node *connection_node; + u8 *resource_buffer; + u32 bank_value; + u32 field_bit_position; + u32 field_bit_length; + u16 resource_length; + u16 pin_number_index; + u8 field_flags; + u8 attribute; + u8 field_type; + u8 access_length; +}; + +struct acpi_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 attribute { + const char *name; + umode_t mode; +}; + +struct address_space; + +struct vm_area_struct; + +struct bin_attribute { + struct attribute attr; + size_t size; + void *private; + struct address_space * (*f_mapping)(void); + ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); + ssize_t (*read_new)(struct file *, struct kobject *, const struct bin_attribute *, char *, loff_t, size_t); + ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); + ssize_t (*write_new)(struct file *, struct kobject *, const struct bin_attribute *, char *, loff_t, size_t); + loff_t (*llseek)(struct file *, struct kobject *, const struct bin_attribute *, loff_t, int); + int (*mmap)(struct file *, struct kobject *, const struct bin_attribute *, struct vm_area_struct *); +}; + +struct acpi_data_attr { + struct bin_attribute attr; + u64 addr; +}; + +typedef void *acpi_handle; + +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; +}; + +union acpi_object; + +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_data_node { + struct list_head sibling; + const char *name; + acpi_handle handle; + struct fwnode_handle fwnode; + struct fwnode_handle *parent; + struct acpi_device_data data; + struct kobject kobj; + struct completion kobj_done; +}; + +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_obj { + char *name; + int (*fn)(void *, struct acpi_data_attr *); +}; + +struct acpi_data_table_mapping { + void *pointer; +}; + +struct acpi_dep_data { + struct list_head node; + acpi_handle supplier; + acpi_handle consumer; + bool honor_dep; + bool met; + bool free_when_met; +}; + +union acpi_operand_object; + +struct acpi_object_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; +}; + +struct acpi_object_integer { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 fill[3]; + u64 value; +}; + +struct acpi_object_string { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + char *pointer; + u32 length; +}; + +struct acpi_object_buffer { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 *pointer; + u32 length; + u32 aml_length; + u8 *aml_start; + struct acpi_namespace_node *node; +}; + +struct acpi_object_package { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + struct acpi_namespace_node *node; + union acpi_operand_object **elements; + u8 *aml_start; + u32 aml_length; + u32 count; +}; + +struct acpi_object_event { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + void *os_semaphore; +}; + +struct acpi_walk_state; + +typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *); + +struct acpi_object_method { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 info_flags; + u8 param_count; + u8 sync_level; + union acpi_operand_object *mutex; + union acpi_operand_object *node; + u8 *aml_start; + union { + acpi_internal_method implementation; + union acpi_operand_object *handler; + } dispatch; + u32 aml_length; + acpi_owner_id owner_id; + u8 thread_count; +}; + +struct acpi_thread_state; + +struct acpi_object_mutex { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 sync_level; + u16 acquisition_depth; + void *os_mutex; + u64 thread_id; + struct acpi_thread_state *owner_thread; + union acpi_operand_object *prev; + union acpi_operand_object *next; + struct acpi_namespace_node *node; + u8 original_sync_level; +}; + +struct acpi_object_region { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 space_id; + struct acpi_namespace_node *node; + union acpi_operand_object *handler; + union acpi_operand_object *next; + acpi_physical_address address; + u32 length; + void *pointer; +}; + +struct acpi_object_notify_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; +}; + +struct acpi_gpe_block_info; + +struct acpi_object_device { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + struct acpi_gpe_block_info *gpe_block; +}; + +struct acpi_object_power_resource { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + u32 system_level; + u32 resource_order; +}; + +struct acpi_object_processor { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 proc_id; + u8 length; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + acpi_io_address address; +}; + +struct acpi_object_thermal_zone { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; +}; + +struct acpi_object_field_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + union acpi_operand_object *region_obj; +}; + +struct acpi_object_region_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + u16 resource_length; + union acpi_operand_object *region_obj; + u8 *resource_buffer; + u16 pin_number_index; + u8 *internal_pcc_buffer; +}; + +struct acpi_object_buffer_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + u8 is_create_field; + union acpi_operand_object *buffer_obj; +}; + +struct acpi_object_bank_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + union acpi_operand_object *region_obj; + union acpi_operand_object *bank_obj; +}; + +struct acpi_object_index_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + union acpi_operand_object *index_obj; + union acpi_operand_object *data_obj; +}; + +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_name_union { + u32 integer; + char ascii[4]; +}; + +struct acpi_namespace_node { + union acpi_operand_object *object; + u8 descriptor_type; + u8 type; + u16 flags; + union acpi_name_union name; + struct acpi_namespace_node *parent; + struct acpi_namespace_node *child; + struct acpi_namespace_node *peer; + acpi_owner_id owner_id; +}; + +union acpi_operand_object { + struct acpi_object_common common; + struct acpi_object_integer integer; + struct acpi_object_string string; + struct acpi_object_buffer buffer; + struct acpi_object_package package; + struct acpi_object_event event; + struct acpi_object_method method; + struct acpi_object_mutex mutex; + struct acpi_object_region region; + struct acpi_object_notify_common common_notify; + struct acpi_object_device device; + struct acpi_object_power_resource power_resource; + struct acpi_object_processor processor; + struct acpi_object_thermal_zone thermal_zone; + struct acpi_object_field_common common_field; + struct acpi_object_region_field field; + struct acpi_object_buffer_field buffer_field; + struct acpi_object_bank_field bank_field; + struct acpi_object_index_field index_field; + struct acpi_object_notify_handler notify; + struct acpi_object_addr_handler address_space; + struct acpi_object_reference reference; + struct acpi_object_extra extra; + struct acpi_object_data data; + struct acpi_object_cache_list cache; + struct acpi_namespace_node node; +}; + +union acpi_parse_value { + u64 integer; + u32 size; + char *string; + u8 *buffer; + char *name; + union acpi_parse_object *arg; +}; + +struct acpi_parse_obj_common { + union acpi_parse_object *parent; + u8 descriptor_type; + u8 flags; + u16 aml_opcode; + u8 *aml; + union acpi_parse_object *next; + struct acpi_namespace_node *node; + union acpi_parse_value value; + u8 arg_list_length; +}; + +struct acpi_parse_obj_named { + union acpi_parse_object *parent; + u8 descriptor_type; + u8 flags; + u16 aml_opcode; + u8 *aml; + union acpi_parse_object *next; + struct acpi_namespace_node *node; + union acpi_parse_value value; + u8 arg_list_length; + char *path; + u8 *data; + u32 length; + u32 name; +}; + +struct acpi_parse_obj_asl { + union acpi_parse_object *parent; + u8 descriptor_type; + u8 flags; + u16 aml_opcode; + u8 *aml; + union acpi_parse_object *next; + struct acpi_namespace_node *node; + union acpi_parse_value value; + u8 arg_list_length; + union acpi_parse_object *child; + union acpi_parse_object *parent_method; + char *filename; + u8 file_changed; + char *parent_filename; + char *external_name; + char *namepath; + char name_seg[4]; + u32 extra_value; + u32 column; + u32 line_number; + u32 logical_line_number; + u32 logical_byte_offset; + u32 end_line; + u32 end_logical_line; + u32 acpi_btype; + u32 aml_length; + u32 aml_subtree_length; + u32 final_aml_length; + u32 final_aml_offset; + u32 compile_flags; + u16 parse_opcode; + u8 aml_opcode_length; + u8 aml_pkg_len_bytes; + u8 extra; + char parse_op_name[20]; +}; + +union acpi_parse_object { + struct acpi_parse_obj_common common; + struct acpi_parse_obj_named named; + struct acpi_parse_obj_asl asl; +}; + +union acpi_descriptor { + struct acpi_common_descriptor common; + union acpi_operand_object object; + struct acpi_namespace_node node; + union acpi_parse_object op; +}; + +struct acpi_device_id { + __u8 id[16]; + kernel_ulong_t driver_data; + __u32 cls; + __u32 cls_msk; +}; + +struct acpi_dev_match_info { + struct acpi_device_id hid[2]; + const char *uid; + s64 hrv; +}; + +struct acpi_dev_walk_context { + int (*fn)(struct acpi_device *, void *); + void *data; +}; + +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; +}; + +struct acpi_pnp_type { + u32 hardware_id: 1; + u32 bus_address: 1; + u32 platform_id: 1; + u32 backlight: 1; + u32 reserved: 28; +}; + +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; +}; + +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 list_head resources; + struct { + u8 valid: 1; + u8 explicit_set: 1; + u8 reserved: 6; + } flags; + int power; + int latency; +}; + +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 proc_dir_entry; + +struct acpi_device_dir { + struct proc_dir_entry *entry; +}; + +struct acpi_scan_handler; + +struct acpi_hotplug_context; + +struct acpi_device_software_nodes; + +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; + struct acpi_device_software_nodes *swnodes; + const struct acpi_gpio_mapping *driver_gpios; + void *driver_data; + struct device dev; + unsigned int physical_node_count; + unsigned int dep_unmet; + struct list_head physical_node_list; + struct mutex physical_node_lock; + void (*remove)(struct acpi_device *); +}; + +struct xarray { + spinlock_t xa_lock; + gfp_t xa_flags; + void *xa_head; +}; + +struct ida { + struct xarray xa; +}; + +struct acpi_device_bus_id { + const char *bus_id; + struct ida instance_ida; + struct list_head node; +}; + +struct acpi_pnp_device_id { + u32 length; + char *string; +}; + +struct acpi_pnp_device_id_list { + u32 count; + u32 list_size; + struct acpi_pnp_device_id ids[0]; +}; + +struct acpi_device_info { + u32 info_size; + u32 name; + acpi_object_type type; + u8 param_count; + u16 valid; + u8 flags; + u8 highest_dstates[4]; + u8 lowest_dstates[5]; + u64 address; + struct acpi_pnp_device_id hardware_id; + struct acpi_pnp_device_id unique_id; + struct acpi_pnp_device_id class_code; + struct acpi_pnp_device_id_list compatible_id_list; +}; + +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_device_perf_state { + struct { + u8 valid: 1; + u8 reserved: 7; + } flags; + u8 power; + u8 performance; + int latency; +}; + +struct acpi_device_physical_node { + struct list_head node; + struct device *dev; + unsigned int node_id; + bool put_online: 1; +}; + +struct acpi_device_properties { + struct list_head list; + const guid_t *guid; + union acpi_object *properties; + void **bufs; +}; + +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; + +struct software_node_ref_args { + const struct software_node *node; + unsigned int nargs; + u64 args[16]; +}; + +struct acpi_device_software_node_port { + char port_name[9]; + u32 data_lanes[8]; + u32 lane_polarities[9]; + u64 link_frequencies[8]; + unsigned int port_nr; + bool crs_csi2_local; + struct property_entry port_props[2]; + struct property_entry ep_props[8]; + struct software_node_ref_args remote_ep[1]; +}; + +struct acpi_device_software_nodes { + struct property_entry dev_props[6]; + struct software_node *nodes; + const struct software_node **nodeptrs; + struct acpi_device_software_node_port *ports; + unsigned int num_ports; +}; + +struct acpi_table_desc; + +struct acpi_evaluate_info; + +struct acpi_device_walk_info { + struct acpi_table_desc *table_desc; + struct acpi_evaluate_info *evaluate_info; + u32 device_count; + u32 num_STA; + u32 num_INI; +}; + +struct dma_chan; + +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; + short unsigned int base_request_line; + short unsigned int end_request_line; +}; + +typedef bool (*dma_filter_fn)(struct dma_chan *, void *); + +struct acpi_dma_filter_info { + dma_cap_mask_t dma_cap; + dma_filter_fn filter_fn; +}; + +struct acpi_dma_spec { + int chan_id; + int slave_id; + struct device *dev; +}; + +struct acpi_dma_parser_data { + struct acpi_dma_spec dma_spec; + size_t index; + size_t n; +}; + +struct of_device_id; + +struct dev_pm_ops; + +struct driver_private; + +struct device_driver { + const char *name; + const 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 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 transaction; + +struct acpi_ec { + acpi_handle handle; + int gpe; + int irq; + long unsigned int command_addr; + long unsigned int data_addr; + bool global_lock; + long unsigned int flags; + long unsigned int reference_count; + struct mutex mutex; + wait_queue_head_t wait; + struct list_head list; + struct transaction *curr; + spinlock_t lock; + struct work_struct work; + long unsigned int 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; + short unsigned int irq_count; + u8 command; + u8 wi; + u8 ri; + u8 wlen; + u8 rlen; + u8 flags; +}; + +struct acpi_ec_query_handler; + +struct acpi_ec_query { + struct transaction transaction; + struct work_struct work; + struct acpi_ec_query_handler *handler; + struct acpi_ec *ec; +}; + +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; +}; + +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_exception_info { + char *name; +}; + +struct acpi_fadt_info { + const char *name; + u16 address64; + u16 address32; + u16 length; + u8 default_length; + u8 flags; +}; + +struct acpi_generic_address; + +struct acpi_fadt_pm_info { + struct acpi_generic_address *target; + u16 source; + u8 register_num; +}; + +struct acpi_fan_fif { + u8 revision; + u8 fine_grain_ctrl; + u8 step_size; + u8 low_speed_notification; +}; + +struct device_attribute { + struct attribute attr; + ssize_t (*show)(struct device *, struct device_attribute *, char *); + ssize_t (*store)(struct device *, struct device_attribute *, const char *, size_t); +}; + +struct acpi_fan_fps; + +struct thermal_cooling_device; + +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 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_ffh_info { + u64 offset; + u64 length; +}; + +struct arm_smccc_res; + +struct arm_smccc_quirk; + +struct arm_smccc_1_2_regs; + +struct acpi_ffh_data { + struct acpi_ffh_info info; + void (*invoke_ffh_fn)(long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, struct arm_smccc_res *, struct arm_smccc_quirk *); + void (*invoke_ffh64_fn)(const struct arm_smccc_1_2_regs *, struct arm_smccc_1_2_regs *); +}; + +struct acpi_ged_device { + struct device *dev; + struct list_head event_list; +}; + +struct acpi_ged_event { + struct list_head node; + struct device *dev; + unsigned int gsi; + unsigned int irq; + acpi_handle handle; +}; + +struct acpi_ged_handler_info { + struct acpi_ged_handler_info *next; + u32 int_id; + struct acpi_namespace_node *evt_method; +}; + +struct acpi_generic_address { + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_width; + u64 address; +} __attribute__((packed)); + +struct acpi_update_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *object; +}; + +struct acpi_scope_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + struct acpi_namespace_node *node; +}; + +struct acpi_pscope_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u32 arg_count; + union acpi_parse_object *op; + u8 *arg_end; + u8 *pkg_end; + u32 arg_list; +}; + +struct acpi_pkg_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u32 index; + union acpi_operand_object *source_object; + union acpi_operand_object *dest_object; + struct acpi_walk_state *walk_state; + void *this_target_obj; + u32 num_packages; +}; + +struct acpi_thread_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u8 current_sync_level; + struct acpi_walk_state *walk_state_list; + union acpi_operand_object *acquired_mutex_list; + u64 thread_id; +}; + +struct acpi_result_values { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *obj_desc[8]; +}; + +struct acpi_global_notify_handler; + +struct acpi_notify_info { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u8 handler_list_id; + struct acpi_namespace_node *node; + union acpi_operand_object *handler_list_head; + struct acpi_global_notify_handler *global; +}; + +union acpi_generic_state { + struct acpi_common_state common; + struct acpi_control_state control; + struct acpi_update_state update; + struct acpi_scope_state scope; + struct acpi_pscope_state parse_scope; + struct acpi_pkg_state pkg; + struct acpi_thread_state thread; + struct acpi_result_values results; + struct acpi_notify_info notify; +}; + +struct acpi_genl_event { + acpi_device_class device_class; + char bus_id[15]; + u32 type; + u32 data; +}; + +typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); + +struct acpi_get_devices_info { + acpi_walk_callback user_function; + void *context; + const char *hid; +}; + +struct acpi_global_notify_handler { + acpi_notify_handler handler; + void *context; +}; + +struct acpi_gpe_address { + u8 space_id; + u64 address; +}; + +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_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_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_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 gpio_chip; + +struct acpi_gpio_chip { + struct acpi_connection_info conn_info; + struct list_head conns; + struct mutex conn_lock; + struct gpio_chip *chip; + struct list_head events; + struct list_head deferred_req_irqs_list_entry; +}; + +struct gpio_desc; + +struct acpi_gpio_connection { + struct list_head node; + unsigned int pin; + struct gpio_desc *desc; +}; + +typedef irqreturn_t (*irq_handler_t)(int, void *); + +struct acpi_gpio_event { + struct list_head node; + acpi_handle handle; + irq_handler_t handler; + unsigned int pin; + unsigned int irq; + long unsigned int irqflags; + bool irq_is_wake; + bool irq_requested; + struct gpio_desc *desc; +}; + +struct acpi_gpio_info { + struct acpi_device *adev; + enum gpiod_flags flags; + bool gpioint; + int pin_config; + int polarity; + int triggering; + bool wake_capable; + unsigned int debounce; + unsigned int quirks; +}; + +struct acpi_gpio_lookup { + struct acpi_gpio_info info; + int index; + u16 pin_index; + bool active_low; + struct gpio_desc *desc; + int n; +}; + +struct acpi_gpio_params; + +struct acpi_gpio_mapping { + const char *name; + const struct acpi_gpio_params *data; + unsigned int size; + unsigned int quirks; +}; + +struct acpi_gpio_params { + unsigned int crs_entry_index; + unsigned int line_index; + bool active_low; +}; + +struct acpi_gpiolib_dmi_quirk { + bool no_edge_events_on_boot; + char *ignore_wake; + char *ignore_interrupt; +}; + +struct acpi_table_gtdt; + +struct acpi_gtdt_descriptor { + struct acpi_table_gtdt *gtdt; + void *gtdt_end; + void *platform_timer; +}; + +struct acpi_gtdt_header { + u8 type; + u16 length; +} __attribute__((packed)); + +struct acpi_gtdt_timer_block { + struct acpi_gtdt_header header; + u8 reserved; + u64 block_address; + u32 timer_count; + u32 timer_offset; +} __attribute__((packed)); + +struct acpi_gtdt_timer_entry { + u8 frame_number; + u8 reserved[3]; + u64 base_address; + u64 el0_base_address; + u32 timer_interrupt; + u32 timer_flags; + u32 virtual_timer_interrupt; + u32 virtual_timer_flags; + u32 common_flags; +} __attribute__((packed)); + +struct acpi_gtdt_watchdog { + struct acpi_gtdt_header header; + u8 reserved; + u64 refresh_frame_address; + u64 control_frame_address; + u32 timer_interrupt; + u32 timer_flags; +} __attribute__((packed)); + +struct acpi_handle_list { + u32 count; + acpi_handle *handles; +}; + +struct acpi_hardware_id { + struct list_head list; + const char *id; +}; + +struct acpi_hest_header { + u16 type; + u16 source_id; +}; + +struct acpi_hest_notify { + u8 type; + u8 length; + u16 config_write_enable; + u32 poll_interval; + u32 vector; + u32 polling_threshold_value; + u32 polling_threshold_window; + u32 error_threshold_value; + u32 error_threshold_window; +}; + +struct acpi_hest_generic { + struct acpi_hest_header header; + u16 related_source_id; + u8 reserved; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + u32 max_raw_data_length; + struct acpi_generic_address error_status_address; + struct acpi_hest_notify notify; + u32 error_block_length; +}; + +struct acpi_hest_generic_data { + u8 section_type[16]; + u32 error_severity; + u16 revision; + u8 validation_bits; + u8 flags; + u32 error_data_length; + u8 fru_id[16]; + u8 fru_text[20]; +}; + +struct acpi_hest_generic_data_v300 { + u8 section_type[16]; + u32 error_severity; + u16 revision; + u8 validation_bits; + u8 flags; + u32 error_data_length; + u8 fru_id[16]; + u8 fru_text[20]; + u64 time_stamp; +}; + +struct acpi_hest_generic_status { + u32 block_status; + u32 raw_data_offset; + u32 raw_data_length; + u32 data_length; + u32 error_severity; +}; + +struct acpi_hest_generic_v2 { + struct acpi_hest_header header; + u16 related_source_id; + u8 reserved; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + u32 max_raw_data_length; + struct acpi_generic_address error_status_address; + struct acpi_hest_notify notify; + u32 error_block_length; + struct acpi_generic_address read_ack_register; + u64 read_ack_preserve; + u64 read_ack_write; +} __attribute__((packed)); + +struct acpi_hest_ia_corrected { + struct acpi_hest_header header; + u16 reserved1; + u8 flags; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + struct acpi_hest_notify notify; + u8 num_hardware_banks; + u8 reserved2[3]; +}; + +struct acpi_hest_ia_deferred_check { + struct acpi_hest_header header; + u16 reserved1; + u8 flags; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + struct acpi_hest_notify notify; + u8 num_hardware_banks; + u8 reserved2[3]; +}; + +struct acpi_hest_ia_machine_check { + struct acpi_hest_header header; + u16 reserved1; + u8 flags; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + u64 global_capability_data; + u64 global_control_data; + u8 num_hardware_banks; + u8 reserved3[7]; +}; + +struct acpi_hmat_structure { + u16 type; + u16 reserved; + u32 length; +}; + +struct acpi_hmat_cache { + struct acpi_hmat_structure header; + u32 memory_PD; + u32 reserved1; + u64 cache_size; + u32 cache_attributes; + u16 address_mode; + u16 number_of_SMBIOShandles; +}; + +struct acpi_hmat_locality { + struct acpi_hmat_structure header; + u8 flags; + u8 data_type; + u8 min_transfer_size; + u8 reserved1; + u32 number_of_initiator_Pds; + u32 number_of_target_Pds; + u32 reserved2; + u64 entry_base_unit; +}; + +struct acpi_hmat_proximity_domain { + struct acpi_hmat_structure header; + u16 flags; + u16 reserved1; + u32 processor_PD; + u32 memory_PD; + u32 reserved2; + u64 reserved3; + u64 reserved4; +}; + +typedef int (*acpi_hp_notify)(struct acpi_device *, u32); + +typedef void (*acpi_hp_uevent)(struct acpi_device *, u32); + +typedef void (*acpi_hp_fixup)(struct acpi_device *); + +struct acpi_hotplug_context { + struct acpi_device *self; + acpi_hp_notify notify; + acpi_hp_uevent uevent; + acpi_hp_fixup fixup; +}; + +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_hp_work { + struct work_struct work; + struct acpi_device *adev; + u32 src; +}; + +struct acpi_init_walk_info { + u32 table_index; + u32 object_count; + u32 method_count; + u32 serial_method_count; + u32 non_serial_method_count; + u32 serialized_method_count; + u32 device_count; + u32 op_region_count; + u32 field_count; + u32 buffer_count; + u32 package_count; + u32 op_region_init; + u32 field_init; + u32 buffer_init; + u32 package_init; + acpi_owner_id owner_id; +}; + +struct acpi_interface_info { + char *name; + struct acpi_interface_info *next; + u8 flags; + u8 value; +}; + +struct acpi_io_attribute { + u8 range_type; + u8 translation; + u8 translation_type; + u8 reserved1; +}; + +struct rcu_work { + struct work_struct work; + struct callback_head rcu; + struct workqueue_struct *wq; +}; + +struct acpi_ioremap { + struct list_head list; + void *virt; + acpi_physical_address phys; + acpi_size size; + union { + long unsigned int refcount; + struct rcu_work rwork; + } track; +}; + +struct acpi_iort_id_mapping { + u32 input_base; + u32 id_count; + u32 output_base; + u32 output_reference; + u32 flags; +}; + +struct acpi_iort_its_group { + u32 its_count; + u32 identifiers[0]; +}; + +struct acpi_iort_memory_access { + u32 cache_coherency; + u8 hints; + u16 reserved; + u8 memory_flags; +} __attribute__((packed)); + +struct acpi_iort_named_component { + u32 node_flags; + u64 memory_properties; + u8 memory_address_limit; + char device_name[0]; +} __attribute__((packed)); + +struct acpi_iort_node { + u8 type; + u16 length; + u8 revision; + u32 identifier; + u32 mapping_count; + u32 mapping_offset; + char node_data[0]; +} __attribute__((packed)); + +struct acpi_iort_pmcg { + u64 page0_base_address; + u32 overflow_gsiv; + u32 node_reference; + u64 page1_base_address; +}; + +struct acpi_iort_rmr { + u32 flags; + u32 rmr_count; + u32 rmr_offset; +}; + +struct acpi_iort_rmr_desc { + u64 base_address; + u64 length; + u32 reserved; +} __attribute__((packed)); + +struct acpi_iort_root_complex { + u64 memory_properties; + u32 ats_attribute; + u32 pci_segment_number; + u8 memory_address_limit; + u16 pasid_capabilities; + u8 reserved[0]; +} __attribute__((packed)); + +struct acpi_iort_smmu { + u64 base_address; + u64 span; + u32 model; + u32 flags; + u32 global_interrupt_offset; + u32 context_interrupt_count; + u32 context_interrupt_offset; + u32 pmu_interrupt_count; + u32 pmu_interrupt_offset; + u64 interrupts[0]; +} __attribute__((packed)); + +struct acpi_iort_smmu_v3 { + u64 base_address; + u32 flags; + u32 reserved; + u64 vatos_address; + u32 model; + u32 event_gsiv; + u32 pri_gsiv; + u32 gerr_gsiv; + u32 sync_gsiv; + u32 pxm; + u32 id_mapping_index; +} __attribute__((packed)); + +struct irq_fwspec; + +struct acpi_irq_parse_one_ctx { + int rc; + unsigned int index; + long unsigned int *res_flags; + struct irq_fwspec *fwspec; +}; + +struct acpi_lpat { + int temp; + int raw; +}; + +struct acpi_lpat_conversion_table { + struct acpi_lpat *lpat; + int lpat_count; +}; + +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_lpi_states_array { + unsigned int size; + unsigned int composite_states_size; + struct acpi_lpi_state *entries; + struct acpi_lpi_state *composite_states[8]; +}; + +struct acpi_subtable_header { + u8 type; + u8 length; +}; + +struct acpi_madt_core_pic { + struct acpi_subtable_header header; + u8 version; + u32 processor_id; + u32 core_id; + u32 flags; +} __attribute__((packed)); + +struct acpi_madt_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_generic_interrupt { + struct acpi_subtable_header header; + u16 reserved; + u32 cpu_interface_number; + u32 uid; + u32 flags; + u32 parking_version; + u32 performance_interrupt; + u64 parked_address; + u64 base_address; + u64 gicv_base_address; + u64 gich_base_address; + u32 vgic_interrupt; + u64 gicr_base_address; + u64 arm_mpidr; + u8 efficiency_class; + u8 reserved2[1]; + u16 spe_interrupt; + u16 trbe_interrupt; +} __attribute__((packed)); + +struct acpi_madt_generic_msi_frame { + struct acpi_subtable_header header; + u16 reserved; + u32 msi_frame_id; + u64 base_address; + u32 flags; + u16 spi_count; + u16 spi_base; +}; + +struct acpi_madt_generic_redistributor { + struct acpi_subtable_header header; + u8 flags; + u8 reserved; + u64 base_address; + u32 length; +} __attribute__((packed)); + +struct acpi_madt_generic_translator { + struct acpi_subtable_header header; + u8 flags; + u8 reserved; + u32 translation_id; + u64 base_address; + u32 reserved2; +} __attribute__((packed)); + +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_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_io_apic { + struct acpi_subtable_header header; + u8 id; + u8 reserved; + u32 address; + u32 global_irq_base; +}; + +struct acpi_madt_io_sapic { + struct acpi_subtable_header header; + u8 id; + u8 reserved; + u32 global_irq_base; + u64 address; +}; + +struct acpi_madt_local_apic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u32 lapic_flags; +}; + +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_apic_override { + struct acpi_subtable_header header; + u16 reserved; + u64 address; +} __attribute__((packed)); + +struct acpi_madt_local_sapic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u8 eid; + u8 reserved[3]; + u32 lapic_flags; + u32 uid; + char uid_string[0]; +}; + +struct acpi_madt_local_x2apic { + struct acpi_subtable_header header; + u16 reserved; + u32 local_apic_id; + u32 lapic_flags; + u32 uid; +}; + +struct acpi_madt_local_x2apic_nmi { + struct acpi_subtable_header header; + u16 inti_flags; + u32 uid; + u8 lint; + u8 reserved[3]; +}; + +struct acpi_madt_multiproc_wakeup { + struct acpi_subtable_header header; + u16 version; + u32 reserved; + u64 mailbox_address; + u64 reset_vector; +}; + +struct acpi_madt_nmi_source { + struct acpi_subtable_header header; + u16 inti_flags; + u32 global_irq; +}; + +struct acpi_madt_rintc { + struct acpi_subtable_header header; + u8 version; + u8 reserved; + u32 flags; + u64 hart_id; + u32 uid; + u32 ext_intc_id; + u64 imsic_addr; + u32 imsic_size; +} __attribute__((packed)); + +struct acpi_mcfg_allocation { + u64 address; + u16 pci_segment; + u8 start_bus_number; + u8 end_bus_number; + u32 reserved; +}; + +struct acpi_mem_mapping { + acpi_physical_address physical_address; + u8 *logical_address; + acpi_size length; + struct acpi_mem_mapping *next_mm; +}; + +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_memory_attribute { + u8 write_protect; + u8 caching; + u8 range_type; + u8 translation; +}; + +struct acpi_memory_device { + struct acpi_device *device; + struct list_head res_list; + int mgid; +}; + +struct acpi_memory_info { + struct list_head list; + u64 start_addr; + u64 length; + short unsigned int caching; + short unsigned int write_protect; + unsigned int enabled: 1; +}; + +struct acpi_mutex_info { + void *mutex; + u32 use_count; + u64 thread_id; +}; + +struct acpi_name_info { + char name[4]; + u16 argument_list; + u8 expected_btypes; +} __attribute__((packed)); + +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 acpi_nhlt_config { + u32 capabilities_size; + u8 capabilities[0]; +}; + +struct acpi_nhlt_gendevice_config { + u8 virtual_slot; + u8 config_type; +}; + +struct acpi_nhlt_micdevice_config { + u8 virtual_slot; + u8 config_type; + u8 array_type; +}; + +struct acpi_nhlt_vendor_mic_config { + u8 type; + u8 panel; + u16 speaker_position_distance; + u16 horizontal_offset; + u16 vertical_offset; + u8 frequency_low_band; + u8 frequency_high_band; + u16 direction_angle; + u16 elevation_angle; + u16 work_vertical_angle_begin; + u16 work_vertical_angle_end; + u16 work_horizontal_angle_begin; + u16 work_horizontal_angle_end; +}; + +struct acpi_nhlt_vendor_micdevice_config { + u8 virtual_slot; + u8 config_type; + u8 array_type; + u8 mics_count; + struct acpi_nhlt_vendor_mic_config mics[0]; +}; + +union acpi_nhlt_device_config { + u8 virtual_slot; + struct acpi_nhlt_gendevice_config gen; + struct acpi_nhlt_micdevice_config mic; + struct acpi_nhlt_vendor_micdevice_config vendor_mic; +}; + +struct acpi_nhlt_endpoint { + u32 length; + u8 link_type; + u8 instance_id; + u16 vendor_id; + u16 device_id; + u16 revision_id; + u32 subsystem_id; + u8 device_type; + u8 direction; + u8 virtual_bus_id; +} __attribute__((packed)); + +struct acpi_nhlt_wave_formatext { + u16 format_tag; + u16 channel_count; + u32 samples_per_sec; + u32 avg_bytes_per_sec; + u16 block_align; + u16 bits_per_sample; + u16 extra_format_size; + u16 valid_bits_per_sample; + u32 channel_mask; + u8 subformat[16]; +}; + +struct acpi_nhlt_format_config { + struct acpi_nhlt_wave_formatext format; + struct acpi_nhlt_config config; +}; + +struct acpi_nhlt_formats_config { + u8 formats_count; + struct acpi_nhlt_format_config formats[0]; +} __attribute__((packed)); + +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_object_list { + u32 count; + union acpi_object *pointer; +}; + +struct acpi_offsets { + size_t offset; + u8 mode; +}; + +struct acpi_opcode_info { + u32 parse_args; + u32 runtime_args; + u16 flags; + u8 object_type; + u8 class; + u8 type; +}; + +typedef void (*acpi_osd_exec_callback)(void *); + +struct acpi_os_dpc { + acpi_osd_exec_callback function; + void *context; + struct work_struct work; +}; + +struct acpi_osc_context { + char *uuid_str; + int rev; + struct acpi_buffer cap; + struct acpi_buffer ret; +}; + +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_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)); + +struct acpi_parse_state { + u8 *aml_start; + u8 *aml; + u8 *aml_end; + u8 *pkg_start; + u8 *pkg_end; + union acpi_parse_object *start_op; + struct acpi_namespace_node *start_node; + union acpi_generic_state *scope; + union acpi_parse_object *start_scope; + u32 aml_size; +}; + +struct acpi_pcc_info { + u8 subspace_id; + u16 length; + u8 *internal_buffer; +}; + +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_ext_pcc_shared_memory { + u32 signature; + u32 flags; + u32 length; + u32 command; +}; + +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_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 acpi_pcct_shared_memory { + u32 signature; + u16 command; + u16 status; +}; + +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_pci_device { + acpi_handle device; + struct acpi_pci_device *next; +}; + +struct acpi_pci_root; + +struct acpi_pci_root_ops; + +struct acpi_pci_root_info { + struct acpi_pci_root *root; + struct acpi_device *bridge; + struct acpi_pci_root_ops *ops; + struct list_head resources; + char name[16]; +}; + +struct pci_config_window; + +struct acpi_pci_generic_root_info { + struct acpi_pci_root_info common; + struct pci_config_window *cfg; +}; + +struct acpi_pci_id { + u16 segment; + u16 bus; + u16 device; + u16 function; +}; + +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 resource { + resource_size_t start; + resource_size_t end; + const char *name; + long unsigned int flags; + long unsigned int desc; + struct resource *parent; + struct resource *sibling; + struct resource *child; +}; + +struct pci_bus; + +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_ops; + +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_routing_table { + u32 length; + u32 pin; + u64 address; + u32 source_index; + union { + char pad[4]; + struct { + struct {} __Empty_source; + char source[0]; + }; + }; +}; + +struct pci_slot; + +struct acpi_pci_slot { + struct pci_slot *pci_slot; + struct list_head list; +}; + +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_pkg_info { + u8 *free_space; + acpi_size length; + u32 object_space; + u32 num_packages; +}; + +struct acpi_platform_list { + char oem_id[7]; + char oem_table_id[9]; + u32 oem_revision; + char *table; + enum acpi_predicate pred; + char *reason; + u32 data; +}; + +struct acpi_pld_info { + u8 revision; + u8 ignore_color; + u8 red; + u8 green; + u8 blue; + u16 width; + u16 height; + u8 user_visible; + u8 dock; + u8 lid; + u8 panel; + u8 vertical_position; + u8 horizontal_position; + u8 shape; + u8 group_orientation; + u8 group_token; + u8 group_position; + u8 bay; + u8 ejectable; + u8 ospm_eject_required; + u8 cabinet_number; + u8 card_cage_number; + u8 reference; + u8 rotation; + u8 order; + u8 reserved; + u16 vertical_offset; + u16 horizontal_offset; +}; + +struct acpi_port_info { + char *name; + u16 start; + u16 end; + u8 osi_dependency; +}; + +struct acpi_power_dependent_device { + struct device *dev; + struct list_head node; +}; + +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_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_resource_entry { + struct list_head node; + struct acpi_power_resource *resource; +}; + +struct acpi_pptt_cache { + struct acpi_subtable_header header; + u16 reserved; + u32 flags; + u32 next_level_of_cache; + u32 size; + u32 number_of_sets; + u8 associativity; + u8 attributes; + u16 line_size; +}; + +struct acpi_pptt_cache_v1 { + u32 cache_id; +}; + +struct acpi_pptt_processor { + struct acpi_subtable_header header; + u16 reserved; + u32 flags; + u32 parent; + u32 acpi_processor_id; + u32 number_of_priv_resources; +}; + +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_predefined_names { + const char *name; + u8 type; + char *val; +}; + +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 acpi_prmt_module_header { + u16 revision; + u16 length; +}; + +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_probe_entry; + +typedef bool (*acpi_probe_entry_validate_subtbl)(struct acpi_subtable_header *, struct acpi_probe_entry *); + +struct acpi_table_header; + +typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); + +union acpi_subtable_headers; + +typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const long unsigned int); + +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_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 previously_online: 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_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_tsd_package { + u64 num_entries; + u64 revision; + u64 domain; + u64 coord_type; + u64 num_processors; +}; + +typedef struct cpumask *cpumask_var_t; + +struct acpi_processor_tx { + u16 power; + u16 performance; +}; + +struct acpi_processor_tx_tss; + +struct acpi_processor; + +struct acpi_processor_throttling { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_tx_tss *states_tss; + struct acpi_tsd_package domain_info; + cpumask_var_t shared_cpu_map; + int (*acpi_processor_get_throttling)(struct acpi_processor *); + int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool); + u32 address; + u8 duty_offset; + u8 duty_width; + u8 tsd_valid_flag; + unsigned int shared_type; + struct acpi_processor_tx states[16]; +}; + +struct acpi_processor_lx { + int px; + int tx; +}; + +struct acpi_processor_limit { + struct acpi_processor_lx state; + struct acpi_processor_lx thermal; + struct acpi_processor_lx user; +}; + +struct plist_node { + int prio; + struct list_head prio_list; + struct list_head node_list; +}; + +struct freq_constraints; + +struct freq_qos_request { + enum freq_qos_req_type type; + struct plist_node pnode; + struct freq_constraints *qos; +}; + +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_processor_errata { + u8 smp; + struct { + u8 throttle: 1; + u8 fdma: 1; + u8 reserved: 6; + u32 bmisx; + } piix4; +}; + +struct acpi_psd_package { + u64 num_entries; + u64 revision; + u64 domain; + u64 coord_type; + u64 num_processors; +}; + +struct acpi_processor_px; + +struct acpi_processor_performance { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_px *states; + struct acpi_psd_package domain_info; + cpumask_var_t shared_cpu_map; + unsigned int shared_type; +}; + +struct acpi_processor_px { + u64 core_frequency; + u64 power; + u64 transition_latency; + u64 bus_master_latency; + u64 control; + u64 status; +}; + +struct acpi_processor_tx_tss { + u64 freqpercentage; + u64 power; + u64 transition_latency; + u64 control; + u64 status; +}; + +struct acpi_prt_entry { + struct acpi_pci_id id; + u8 pin; + acpi_handle link; + u32 index; +}; + +struct acpi_reg_walk_info { + u32 function; + u32 reg_run_count; + acpi_adr_space_type space_id; +}; + +typedef acpi_status (*acpi_repair_function)(struct acpi_evaluate_info *, union acpi_operand_object **); + +struct acpi_repair_info { + char name[4]; + acpi_repair_function repair_function; +}; + +struct acpi_resource_irq { + u8 descriptor_length; + u8 triggering; + u8 polarity; + u8 shareable; + u8 wake_capable; + u8 interrupt_count; + union { + u8 interrupt; + struct { + struct {} __Empty_interrupts; + u8 interrupts[0]; + }; + }; +}; + +struct acpi_resource_dma { + u8 type; + u8 bus_master; + u8 transfer; + u8 channel_count; + union { + u8 channel; + struct { + struct {} __Empty_channels; + u8 channels[0]; + }; + }; +}; + +struct acpi_resource_start_dependent { + u8 descriptor_length; + u8 compatibility_priority; + u8 performance_robustness; +}; + +struct acpi_resource_io { + u8 io_decode; + u8 alignment; + u8 address_length; + u16 minimum; + u16 maximum; +} __attribute__((packed)); + +struct acpi_resource_fixed_io { + u16 address; + u8 address_length; +} __attribute__((packed)); + +struct acpi_resource_fixed_dma { + u16 request_lines; + u16 channels; + u8 width; +} __attribute__((packed)); + +struct acpi_resource_vendor { + u16 byte_length; + u8 byte_data[0]; +}; + +struct acpi_resource_vendor_typed { + u16 byte_length; + u8 uuid_subtype; + u8 uuid[16]; + u8 byte_data[0]; +} __attribute__((packed)); + +struct acpi_resource_end_tag { + u8 checksum; +}; + +struct acpi_resource_memory24 { + u8 write_protect; + u16 minimum; + u16 maximum; + u16 alignment; + u16 address_length; +} __attribute__((packed)); + +struct acpi_resource_memory32 { + u8 write_protect; + u32 minimum; + u32 maximum; + u32 alignment; + u32 address_length; +} __attribute__((packed)); + +struct acpi_resource_fixed_memory32 { + u8 write_protect; + u32 address; + u32 address_length; +} __attribute__((packed)); + +union acpi_resource_attribute { + struct acpi_memory_attribute mem; + struct acpi_io_attribute io; + u8 type_specific; +}; + +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_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_resource_address64 { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; + struct acpi_address64_attribute address; + struct acpi_resource_source resource_source; +} __attribute__((packed)); + +struct acpi_resource_extended_address64 { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; + u8 revision_ID; + struct acpi_address64_attribute address; + u64 type_specific; +} __attribute__((packed)); + +struct acpi_resource_extended_irq { + u8 producer_consumer; + u8 triggering; + u8 polarity; + u8 shareable; + u8 wake_capable; + u8 interrupt_count; + struct acpi_resource_source resource_source; + union { + u32 interrupt; + struct { + struct {} __Empty_interrupts; + u32 interrupts[0]; + }; + }; +} __attribute__((packed)); + +struct acpi_resource_generic_register { + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +struct acpi_resource_gpio { + u8 revision_id; + u8 connection_type; + u8 producer_consumer; + u8 pin_config; + u8 shareable; + u8 wake_capable; + u8 io_restriction; + u8 triggering; + u8 polarity; + u16 drive_strength; + u16 debounce_timeout; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_i2c_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 access_mode; + u16 slave_address; + u32 connection_speed; +} __attribute__((packed)); + +struct acpi_resource_spi_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 wire_mode; + u8 device_polarity; + u8 data_bit_length; + u8 clock_phase; + u8 clock_polarity; + u16 device_selection; + u32 connection_speed; +} __attribute__((packed)); + +struct acpi_resource_uart_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 endian; + u8 data_bits; + u8 stop_bits; + u8 flow_control; + u8 parity; + u8 lines_enabled; + u16 rx_fifo_size; + u16 tx_fifo_size; + u32 default_baud_rate; +} __attribute__((packed)); + +struct acpi_resource_csi2_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 local_port_instance; + u8 phy_type; +} __attribute__((packed)); + +struct acpi_resource_common_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_function { + u8 revision_id; + u8 pin_config; + u8 shareable; + u16 function_number; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_config { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u8 pin_config_type; + u32 pin_config_value; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_label { + u16 string_length; + char *string_ptr; +} __attribute__((packed)); + +struct acpi_resource_pin_group { + u8 revision_id; + u8 producer_consumer; + u16 pin_table_length; + u16 vendor_length; + u16 *pin_table; + struct acpi_resource_label resource_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_group_function { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u16 function_number; + u16 vendor_length; + struct acpi_resource_source resource_source; + struct acpi_resource_label resource_source_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_group_config { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u8 pin_config_type; + u32 pin_config_value; + u16 vendor_length; + struct acpi_resource_source resource_source; + struct acpi_resource_label resource_source_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_clock_input { + u8 revision_id; + u8 mode; + u8 scale; + u16 frequency_divisor; + u32 frequency_numerator; + struct acpi_resource_source resource_source; +} __attribute__((packed)); + +struct acpi_resource_address { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; +}; + +union acpi_resource_data { + struct acpi_resource_irq irq; + struct acpi_resource_dma dma; + struct acpi_resource_start_dependent start_dpf; + struct acpi_resource_io io; + struct acpi_resource_fixed_io fixed_io; + struct acpi_resource_fixed_dma fixed_dma; + struct acpi_resource_vendor vendor; + struct acpi_resource_vendor_typed vendor_typed; + struct acpi_resource_end_tag end_tag; + struct acpi_resource_memory24 memory24; + struct acpi_resource_memory32 memory32; + struct acpi_resource_fixed_memory32 fixed_memory32; + struct acpi_resource_address16 address16; + struct acpi_resource_address32 address32; + struct acpi_resource_address64 address64; + struct acpi_resource_extended_address64 ext_address64; + struct acpi_resource_extended_irq extended_irq; + struct acpi_resource_generic_register generic_reg; + struct acpi_resource_gpio gpio; + struct acpi_resource_i2c_serialbus i2c_serial_bus; + struct acpi_resource_spi_serialbus spi_serial_bus; + struct acpi_resource_uart_serialbus uart_serial_bus; + struct acpi_resource_csi2_serialbus csi2_serial_bus; + struct acpi_resource_common_serialbus common_serial_bus; + struct acpi_resource_pin_function pin_function; + struct acpi_resource_pin_config pin_config; + struct acpi_resource_pin_group pin_group; + struct acpi_resource_pin_group_function pin_group_function; + struct acpi_resource_pin_group_config pin_group_config; + struct acpi_resource_clock_input clock_input; + struct acpi_resource_address address; +}; + +struct acpi_resource { + u32 type; + u32 length; + union acpi_resource_data data; +}; + +struct acpi_rsconvert_info { + u8 opcode; + u8 resource_offset; + u8 aml_offset; + u8 value; +}; + +struct acpi_rw_lock { + void *writer_mutex; + void *reader_mutex; + u32 num_readers; +}; + +struct acpi_scan_clear_dep_work { + struct work_struct work; + struct acpi_device *adev; +}; + +struct acpi_scan_handler { + struct list_head list_node; + const struct acpi_device_id *ids; + 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 (*post_eject)(struct acpi_device *); + void (*bind)(struct device *); + void (*unbind)(struct device *); + struct acpi_hotplug_profile hotplug; +}; + +typedef u32 (*acpi_sci_handler)(void *); + +struct acpi_sci_handler_info { + struct acpi_sci_handler_info *next; + acpi_sci_handler address; + void *context; +}; + +struct acpi_serdev_lookup { + acpi_handle device_handle; + acpi_handle controller_handle; + int n; + int index; +}; + +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; +}; + +struct spi_controller; + +struct acpi_spi_lookup { + struct spi_controller *ctlr; + u32 max_speed_hz; + u32 mode; + int irq; + u8 bits_per_word; + u8 chip_select; + int n; + int index; +}; + +struct acpi_srat_cpu_affinity { + struct acpi_subtable_header header; + u8 proximity_domain_lo; + u8 apic_id; + u32 flags; + u8 local_sapic_eid; + u8 proximity_domain_hi[3]; + u32 clock_domain; +}; + +struct acpi_srat_generic_affinity { + struct acpi_subtable_header header; + u8 reserved; + u8 device_handle_type; + u32 proximity_domain; + u8 device_handle[16]; + u32 flags; + u32 reserved1; +}; + +struct acpi_srat_gic_its_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u16 reserved; + u32 its_id; +} __attribute__((packed)); + +struct acpi_srat_gicc_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u32 acpi_processor_uid; + u32 flags; + u32 clock_domain; +} __attribute__((packed)); + +struct acpi_srat_mem_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u16 reserved; + u64 base_address; + u64 length; + u32 reserved1; + u32 flags; + u64 reserved2; +} __attribute__((packed)); + +struct acpi_srat_rintc_affinity { + struct acpi_subtable_header header; + u16 reserved; + u32 proximity_domain; + u32 acpi_processor_uid; + u32 flags; + u32 clock_domain; +}; + +struct acpi_srat_x2apic_cpu_affinity { + struct acpi_subtable_header header; + u16 reserved; + u32 proximity_domain; + u32 apic_id; + u32 flags; + u32 clock_domain; + u32 reserved2; +}; + +struct acpi_subtable_entry { + union acpi_subtable_headers *hdr; + enum acpi_subtable_type type; +}; + +union acpi_subtable_headers { + struct acpi_subtable_header common; + struct acpi_hmat_structure hmat; + struct acpi_prmt_module_header prmt; + struct acpi_cedt_header cedt; + struct acpi_cdat_header cdat; +}; + +typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const long unsigned int); + +struct acpi_subtable_proc { + int id; + acpi_tbl_entry_handler handler; + acpi_tbl_entry_handler_arg handler_arg; + void *arg; + int count; +}; + +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_agdi { + struct acpi_table_header header; + u8 flags; + u8 reserved[3]; + u32 sdei_event; + u32 gsiv; +}; + +struct acpi_table_apmt { + struct acpi_table_header header; +}; + +struct acpi_table_attr { + struct bin_attribute attr; + char name[4]; + int instance; + char filename[8]; + struct list_head node; +}; + +struct acpi_table_bert { + struct acpi_table_header header; + u32 region_length; + u64 address; +}; + +struct acpi_table_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 acpi_table_ccel { + struct acpi_table_header header; + u8 CCtype; + u8 Ccsub_type; + u16 reserved; + u64 log_area_minimum_length; + u64 log_area_start_address; +}; + +struct acpi_table_cdat { + u32 length; + u8 revision; + u8 checksum; + u8 reserved[6]; + u32 sequence; +}; + +struct acpi_table_csrt { + struct acpi_table_header header; +}; + +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_ecdt { + struct acpi_table_header header; + struct acpi_generic_address control; + struct acpi_generic_address data; + u32 uid; + u8 gpe; + u8 id[0]; +} __attribute__((packed)); + +struct acpi_table_erst { + struct acpi_table_header header; + u32 header_length; + u32 reserved; + u32 entries; +}; + +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_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_gtdt { + struct acpi_table_header header; + u64 counter_block_addresss; + u32 reserved; + u32 secure_el1_interrupt; + u32 secure_el1_flags; + u32 non_secure_el1_interrupt; + u32 non_secure_el1_flags; + u32 virtual_timer_interrupt; + u32 virtual_timer_flags; + u32 non_secure_el2_interrupt; + u32 non_secure_el2_flags; + u64 counter_read_block_address; + u32 platform_timer_count; + u32 platform_timer_offset; +} __attribute__((packed)); + +struct acpi_table_hest { + struct acpi_table_header header; + u32 error_source_count; +}; + +struct acpi_table_iort { + struct acpi_table_header header; + u32 node_count; + u32 node_offset; + u32 reserved; +}; + +struct acpi_table_list { + struct acpi_table_desc *tables; + u32 current_table_count; + u32 max_table_count; + u8 flags; +}; + +struct acpi_table_madt { + struct acpi_table_header header; + u32 address; + u32 flags; +}; + +struct acpi_table_mcfg { + struct acpi_table_header header; + u8 reserved[8]; +}; + +struct acpi_table_nhlt { + struct acpi_table_header header; + u8 endpoints_count; +} __attribute__((packed)); + +struct acpi_table_pcct { + struct acpi_table_header header; + u32 flags; + u64 reserved; +}; + +struct acpi_table_rsdp { + char signature[8]; + u8 checksum; + char oem_id[6]; + u8 revision; + u32 rsdt_physical_address; + u32 length; + u64 xsdt_physical_address; + u8 extended_checksum; + u8 reserved[3]; +} __attribute__((packed)); + +struct acpi_table_slit { + struct acpi_table_header header; + u64 locality_count; + u8 entry[0]; +} __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 language; + u16 pci_device_id; + u16 pci_vendor_id; + u8 pci_bus; + u8 pci_device; + u8 pci_function; + u32 pci_flags; + u8 pci_segment; + u32 uart_clk_freq; + u32 precise_baudrate; + u16 name_space_string_length; + u16 name_space_string_offset; + char name_space_string[0]; +} __attribute__((packed)); + +struct acpi_table_srat { + struct acpi_table_header header; + u32 table_revision; + u64 reserved; +}; + +struct acpi_table_stao { + struct acpi_table_header header; + u8 ignore_uart; +} __attribute__((packed)); + +struct acpi_table_tpm2 { + struct acpi_table_header header; + u16 platform_class; + u16 reserved; + u64 control_address; + u32 start_method; +} __attribute__((packed)); + +struct acpi_table_viot { + struct acpi_table_header header; + u16 node_count; + u16 node_offset; + u8 reserved[8]; +}; + +struct acpi_table_wdat { + struct acpi_table_header header; + u32 header_length; + u16 pci_segment; + u8 pci_bus; + u8 pci_device; + u8 pci_function; + u8 reserved[3]; + u32 timer_period; + u32 max_count; + u32 min_count; + u8 flags; + u8 reserved2[3]; + u32 entries; +}; + +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; + }; +}; + +struct acpi_thermal_trip { + long unsigned int temp_dk; + struct acpi_handle_list devices; +}; + +struct acpi_thermal_passive { + struct acpi_thermal_trip trip; + long unsigned int tc1; + long unsigned int tc2; + long unsigned int delay; +}; + +struct acpi_thermal_active { + struct acpi_thermal_trip trip; +}; + +struct acpi_thermal_trips { + struct acpi_thermal_passive passive; + struct acpi_thermal_active active[10]; +}; + +struct thermal_zone_device; + +struct acpi_thermal { + struct acpi_device *device; + acpi_bus_id name; + long unsigned int temp_dk; + long unsigned int last_temp_dk; + long unsigned int polling_frequency; + volatile u8 zombie; + struct acpi_thermal_trips trips; + struct thermal_zone_device *thermal_zone; + int kelvin_offset; + struct work_struct thermal_check_work; + struct mutex thermal_check_lock; + refcount_t thermal_check_count; +}; + +struct acpi_tpm2_phy { + u8 start_method_specific[12]; + u32 log_area_minimum_length; + u64 log_area_start_address; +}; + +struct acpi_vendor_uuid { + u8 subtype; + u8 data[16]; +}; + +struct acpi_vendor_walk_info { + struct acpi_vendor_uuid *uuid; + struct acpi_buffer *buffer; + acpi_status status; +}; + +struct acpi_viot_header { + u8 type; + u8 reserved; + u16 length; +}; + +struct acpi_viot_mmio { + struct acpi_viot_header header; + u32 endpoint; + u64 base_address; + u16 output_node; + u8 reserved[6]; +}; + +struct acpi_viot_pci_range { + struct acpi_viot_header header; + u32 endpoint_start; + u16 segment_start; + u16 segment_end; + u16 bdf_start; + u16 bdf_end; + u16 output_node; + u8 reserved[6]; +}; + +struct acpi_viot_virtio_iommu_mmio { + struct acpi_viot_header header; + u8 reserved[4]; + u64 base_address; +}; + +struct acpi_viot_virtio_iommu_pci { + struct acpi_viot_header header; + u16 segment; + u16 bdf; + u8 reserved[8]; +}; + +struct acpi_wakeup_handler { + struct list_head list_node; + bool (*wakeup)(void *); + void *context; +}; + +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_walk_state { + struct acpi_walk_state *next; + u8 descriptor_type; + u8 walk_type; + u16 opcode; + u8 next_op_info; + u8 num_operands; + u8 operand_index; + acpi_owner_id owner_id; + u8 last_predicate; + u8 current_result; + u8 return_used; + u8 scope_depth; + u8 pass_number; + u8 namespace_override; + u8 result_size; + u8 result_count; + u8 *aml; + u32 arg_types; + u32 method_breakpoint; + u32 user_breakpoint; + u32 parse_flags; + struct acpi_parse_state parser_state; + u32 prev_arg_types; + u32 arg_count; + u16 method_nesting_depth; + u8 method_is_nested; + struct acpi_namespace_node arguments[7]; + struct acpi_namespace_node local_variables[8]; + union acpi_operand_object *operands[9]; + union acpi_operand_object **params; + u8 *aml_last_while; + union acpi_operand_object **caller_return_desc; + union acpi_generic_state *control_state; + struct acpi_namespace_node *deferred_node; + union acpi_operand_object *implicit_return_obj; + struct acpi_namespace_node *method_call_node; + union acpi_parse_object *method_call_op; + union acpi_operand_object *method_desc; + struct acpi_namespace_node *method_node; + char *method_pathname; + union acpi_parse_object *op; + const struct acpi_opcode_info *op_info; + union acpi_parse_object *origin; + union acpi_operand_object *result_obj; + union acpi_generic_state *results; + union acpi_operand_object *return_desc; + union acpi_generic_state *scope_info; + union acpi_parse_object *prev_op; + union acpi_parse_object *next_op; + struct acpi_thread_state *thread; + acpi_parse_downwards descending_callback; + acpi_parse_upwards ascending_callback; +}; + +struct acpi_wdat_entry { + u8 action; + u8 instruction; + u16 reserved; + struct acpi_generic_address register_region; + u32 value; + u32 mask; +}; + +struct acpi_whea_header { + u8 action; + u8 instruction; + u8 flags; + u8 reserved; + struct acpi_generic_address register_region; + u64 value; + u64 mask; +}; + +struct hotplug_slot; + +struct acpiphp_attention_info { + int (*set_attn)(struct hotplug_slot *, u8); + int (*get_attn)(struct hotplug_slot *, u8 *); + struct module *owner; +}; + +struct acpiphp_context; + +struct pci_dev; + +struct acpiphp_bridge { + struct list_head list; + struct list_head slots; + struct kref ref; + struct acpiphp_context *context; + int nr_slots; + struct pci_bus *pci_bus; + struct pci_dev *pci_dev; + bool is_going_away; +}; + +struct acpiphp_slot; + +struct acpiphp_func { + struct acpiphp_bridge *parent; + struct acpiphp_slot *slot; + struct list_head sibling; + u8 function; + u32 flags; +}; + +struct acpiphp_context { + struct acpi_hotplug_context hp; + struct acpiphp_func func; + struct acpiphp_bridge *bridge; + unsigned int refcount; +}; + +struct acpiphp_root_context { + struct acpi_hotplug_context hp; + struct acpiphp_bridge *root_bridge; +}; + +struct slot; + +struct acpiphp_slot { + struct list_head node; + struct pci_bus *bus; + struct list_head funcs; + struct slot *slot; + u8 device; + u32 flags; +}; + +struct pnp_dev; + +struct acpipnp_parse_option_s { + struct pnp_dev *dev; + unsigned int option_flags; +}; + +struct action_cache { + long unsigned int allow_native[8]; + long unsigned int allow_compat[8]; +}; + +struct hist_trigger_data; + +struct tracing_map_elt; + +struct trace_buffer; + +struct ring_buffer_event; + +struct action_data; + +typedef void (*action_fn_t)(struct hist_trigger_data *, struct tracing_map_elt *, struct trace_buffer *, void *, struct ring_buffer_event *, void *, struct action_data *, u64 *); + +typedef bool (*check_track_val_fn_t)(u64, u64); + +struct synth_event; + +struct hist_field; + +struct action_data { + enum handler_id handler; + enum action_id action; + char *action_name; + action_fn_t fn; + unsigned int n_params; + char *params[64]; + unsigned int var_ref_idx[64]; + struct synth_event *synth_event; + bool use_trace_keyword; + char *synth_event_name; + union { + struct { + char *event; + char *event_system; + } match_data; + struct { + char *var_str; + struct hist_field *var_ref; + struct hist_field *track_var; + check_track_val_fn_t check_val; + action_fn_t save_data; + } track_data; + }; +}; + +struct action_devres { + void *data; + void (*action)(void *); +}; + +struct action_gate_entry { + u8 gate_state; + u32 interval; + s32 ipv; + s32 maxoctets; +}; + +struct addr_marker { + long unsigned int start_address; + char *name; +}; + +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_cached { + struct rb_root rb_root; + struct rb_node *rb_leftmost; +}; + +struct address_space_operations; + +struct address_space { + struct inode *host; + struct xarray i_pages; + struct rw_semaphore invalidate_lock; + gfp_t gfp_mask; + atomic_t i_mmap_writable; + struct rb_root_cached i_mmap; + long unsigned int nrpages; + long unsigned int writeback_index; + const struct address_space_operations *a_ops; + long unsigned int flags; + errseq_t wb_err; + spinlock_t i_private_lock; + struct list_head i_private_list; + struct rw_semaphore i_mmap_rwsem; + void *i_private_data; +}; + +struct page; + +struct writeback_control; + +struct readahead_control; + +struct kiocb; + +struct iov_iter; + +struct swap_info_struct; + +struct address_space_operations { + int (*writepage)(struct page *, struct writeback_control *); + int (*read_folio)(struct file *, struct folio *); + int (*writepages)(struct address_space *, struct writeback_control *); + bool (*dirty_folio)(struct address_space *, struct folio *); + void (*readahead)(struct readahead_control *); + int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, struct folio **, void **); + int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct folio *, 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_folio)(struct address_space *, struct folio *); + 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 adjust_trip_data { + struct acpi_thermal *tz; + u32 event; +}; + +struct adp5520_backlight_platform_data { + u8 fade_in; + u8 fade_out; + u8 fade_led_law; + u8 en_ambl_sens; + u8 abml_filt; + u8 l1_daylight_max; + u8 l1_daylight_dim; + u8 l2_office_max; + u8 l2_office_dim; + u8 l3_dark_max; + u8 l3_dark_dim; + u8 l2_trip; + u8 l2_hyst; + u8 l3_trip; + u8 l3_hyst; +}; + +struct blocking_notifier_head { + struct rw_semaphore rwsem; + struct notifier_block *head; +}; + +struct adp5520_chip { + struct i2c_client *client; + struct device *dev; + struct mutex lock; + struct blocking_notifier_head notifier_list; + int irq; + long unsigned int id; + uint8_t mode; +}; + +struct adp5520_gpio_platform_data { + unsigned int gpio_start; + u8 gpio_en_mask; + u8 gpio_pullup_mask; +}; + +struct adp5520_keys_platform_data { + int rows_en_mask; + int cols_en_mask; + const short unsigned int *keymap; + short unsigned int keymapsize; + unsigned int repeat: 1; +}; + +struct led_info; + +struct adp5520_leds_platform_data { + int num_leds; + struct led_info *leds; + u8 fade_in; + u8 fade_out; + u8 led_on_time; +}; + +struct adp5520_platform_data { + struct adp5520_keys_platform_data *keys; + struct adp5520_gpio_platform_data *gpio; + struct adp5520_leds_platform_data *leds; + struct adp5520_backlight_platform_data *backlight; +}; + +struct adreno_smmu_fault_info { + u64 far; + u64 ttbr0; + u32 contextidr; + u32 fsr; + u32 fsynr0; + u32 fsynr1; + u32 cbfrsynra; +}; + +struct io_pgtable_cfg; + +struct adreno_smmu_priv { + const void *cookie; + const struct io_pgtable_cfg * (*get_ttbr1_cfg)(const void *); + int (*set_ttbr0_cfg)(const void *, const struct io_pgtable_cfg *); + void (*get_fault_info)(const void *, struct adreno_smmu_fault_info *); + void (*set_stall)(const void *, bool); + void (*resume_translation)(const void *, bool); + void (*set_prr_bit)(const void *, bool); + void (*set_prr_addr)(const void *, phys_addr_t); +}; + +struct advisor_ctx { + ktime_t start_scan; + long unsigned int scan_time; + long unsigned int change; + long long unsigned int cpu_time; +}; + +struct irq_data; + +struct seq_file; + +struct msi_msg; + +struct irq_chip { + const char *name; + unsigned int (*irq_startup)(struct irq_data *); + void (*irq_shutdown)(struct irq_data *); + void (*irq_enable)(struct irq_data *); + void (*irq_disable)(struct irq_data *); + void (*irq_ack)(struct irq_data *); + void (*irq_mask)(struct irq_data *); + void (*irq_mask_ack)(struct irq_data *); + void (*irq_unmask)(struct irq_data *); + void (*irq_eoi)(struct irq_data *); + int (*irq_set_affinity)(struct irq_data *, const struct cpumask *, bool); + int (*irq_retrigger)(struct irq_data *); + int (*irq_set_type)(struct irq_data *, unsigned int); + int (*irq_set_wake)(struct irq_data *, unsigned int); + void (*irq_bus_lock)(struct irq_data *); + void (*irq_bus_sync_unlock)(struct irq_data *); + void (*irq_suspend)(struct irq_data *); + void (*irq_resume)(struct irq_data *); + void (*irq_pm_shutdown)(struct irq_data *); + void (*irq_calc_mask)(struct irq_data *); + void (*irq_print_chip)(struct irq_data *, struct seq_file *); + int (*irq_request_resources)(struct irq_data *); + void (*irq_release_resources)(struct irq_data *); + void (*irq_compose_msi_msg)(struct irq_data *, struct msi_msg *); + void (*irq_write_msi_msg)(struct irq_data *, struct msi_msg *); + int (*irq_get_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool *); + int (*irq_set_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool); + int (*irq_set_vcpu_affinity)(struct irq_data *, void *); + void (*ipi_send_single)(struct irq_data *, unsigned int); + void (*ipi_send_mask)(struct irq_data *, const struct cpumask *); + int (*irq_nmi_setup)(struct irq_data *); + void (*irq_nmi_teardown)(struct irq_data *); + long unsigned int flags; +}; + +struct pci_bridge_emul_conf { + __le16 vendor; + __le16 device; + __le16 command; + __le16 status; + __le32 class_revision; + u8 cache_line_size; + u8 latency_timer; + u8 header_type; + u8 bist; + __le32 bar[2]; + u8 primary_bus; + u8 secondary_bus; + u8 subordinate_bus; + u8 secondary_latency_timer; + u8 iobase; + u8 iolimit; + __le16 secondary_status; + __le16 membase; + __le16 memlimit; + __le16 pref_mem_base; + __le16 pref_mem_limit; + __le32 prefbaseupper; + __le32 preflimitupper; + __le16 iobaseupper; + __le16 iolimitupper; + u8 capabilities_pointer; + u8 reserve[3]; + __le32 romaddr; + u8 intline; + u8 intpin; + __le16 bridgectrl; +}; + +struct pci_bridge_emul_pcie_conf { + u8 cap_id; + u8 next; + __le16 cap; + __le32 devcap; + __le16 devctl; + __le16 devsta; + __le32 lnkcap; + __le16 lnkctl; + __le16 lnksta; + __le32 slotcap; + __le16 slotctl; + __le16 slotsta; + __le16 rootctl; + __le16 rootcap; + __le32 rootsta; + __le32 devcap2; + __le16 devctl2; + __le16 devsta2; + __le32 lnkcap2; + __le16 lnkctl2; + __le16 lnksta2; + __le32 slotcap2; + __le16 slotctl2; + __le16 slotsta2; +}; + +struct pci_bridge_emul_ops; + +struct pci_bridge_reg_behavior; + +struct pci_bridge_emul { + struct pci_bridge_emul_conf conf; + struct pci_bridge_emul_pcie_conf pcie_conf; + const struct pci_bridge_emul_ops *ops; + struct pci_bridge_reg_behavior *pci_regs_behavior; + struct pci_bridge_reg_behavior *pcie_cap_regs_behavior; + void *data; + u8 pcie_start; + u8 ssid_start; + bool has_pcie; + u16 subsystem_vendor_id; + u16 subsystem_id; +}; + +struct platform_device; + +struct phy; + +struct advk_pcie { + struct platform_device *pdev; + void *base; + struct { + phys_addr_t match; + phys_addr_t remap; + phys_addr_t mask; + u32 actions; + } wins[8]; + u8 wins_count; + struct irq_domain *rp_irq_domain; + struct irq_domain *irq_domain; + struct irq_chip irq_chip; + raw_spinlock_t irq_lock; + struct irq_domain *msi_domain; + struct irq_domain *msi_inner_domain; + raw_spinlock_t msi_irq_lock; + long unsigned int msi_used[1]; + struct mutex msi_used_lock; + int link_gen; + struct pci_bridge_emul bridge; + struct gpio_desc *reset_gpio; + struct phy *phy; +}; + +struct crypto_aead; + +struct aead_request; + +struct aead_alg { + int (*setkey)(struct crypto_aead *, const u8 *, unsigned int); + int (*setauthsize)(struct crypto_aead *, unsigned int); + int (*encrypt)(struct aead_request *); + int (*decrypt)(struct aead_request *); + int (*init)(struct crypto_aead *); + void (*exit)(struct crypto_aead *); + unsigned int ivsize; + unsigned int maxauthsize; + unsigned int chunksize; + struct crypto_alg base; +}; + +struct crypto_sync_skcipher; + +struct aead_geniv_ctx { + spinlock_t lock; + struct crypto_aead *child; + struct crypto_sync_skcipher *sknull; + u8 salt[0]; +}; + +struct crypto_template; + +struct crypto_spawn; + +struct crypto_instance { + struct crypto_alg alg; + struct crypto_template *tmpl; + union { + struct hlist_node list; + struct crypto_spawn *spawns; + }; + struct work_struct free_work; + void *__ctx[0]; +}; + +struct aead_instance { + void (*free)(struct aead_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct aead_alg alg; + }; +}; + +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 pcie_tlp_log { + u32 dw[4]; + u32 prefix[4]; +}; + +struct aer_capability_regs { + u32 header; + u32 uncor_status; + u32 uncor_mask; + u32 uncor_severity; + u32 cor_status; + u32 cor_mask; + u32 cap_control; + struct pcie_tlp_log header_log; + u32 root_command; + u32 root_status; + u16 cor_err_source; + u16 uncor_err_source; +}; + +struct aer_err_info { + struct pci_dev *dev[5]; + int error_dev_num; + unsigned int id: 16; + unsigned int severity: 2; + unsigned int __pad1: 5; + unsigned int multi_error_valid: 1; + unsigned int first_error: 5; + unsigned int __pad2: 2; + unsigned int tlp_header_valid: 1; + unsigned int status; + unsigned int mask; + struct pcie_tlp_log tlp; +}; + +struct aer_err_source { + u32 status; + u32 id; +}; + +struct aer_recover_entry { + u8 bus; + u8 devfn; + u16 domain; + int severity; + struct aer_capability_regs *regs; +}; + +struct aer_rpc { + struct pci_dev *rpd; + struct { + union { + struct __kfifo kfifo; + struct aer_err_source *type; + const struct aer_err_source *const_type; + char (*rectype)[0]; + struct aer_err_source *ptr; + const struct aer_err_source *ptr_const; + }; + struct aer_err_source buf[128]; + } aer_fifo; +}; + +struct aer_stats { + u64 dev_cor_errs[16]; + u64 dev_fatal_errs[27]; + u64 dev_nonfatal_errs[27]; + u64 dev_total_cor_errs; + u64 dev_total_fatal_errs; + u64 dev_total_nonfatal_errs; + u64 rootport_total_cor_errs; + u64 rootport_total_fatal_errs; + u64 rootport_total_nonfatal_errs; +}; + +struct affinity_context { + const struct cpumask *new_mask; + struct cpumask *user_mask; + unsigned int flags; +}; + +struct agdi_data { + int sdei_event; +}; + +typedef void (*event_cb_func_t)(const u32 *, void *); + +struct agent_cb { + void *agent_data; + event_cb_func_t eve_cb; + struct list_head list; +}; + +struct aggregate_control { + long int *aggregate; + long int *local; + long int *pending; + long int *ppending; + long int *cstat; + long int *cstat_prev; + int size; +}; + +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 hash_alg_common { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; +}; + +struct ahash_request; + +struct crypto_ahash; + +struct ahash_alg { + int (*init)(struct ahash_request *); + int (*update)(struct ahash_request *); + int (*final)(struct ahash_request *); + int (*finup)(struct ahash_request *); + int (*digest)(struct ahash_request *); + int (*export)(struct ahash_request *, void *); + int (*import)(struct ahash_request *, const void *); + int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_ahash *); + void (*exit_tfm)(struct crypto_ahash *); + int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); + unsigned int reqsize; + struct hash_alg_common halg; +}; + +struct ahash_instance { + void (*free)(struct ahash_instance *); + union { + struct { + char head[104]; + struct crypto_instance base; + } s; + struct ahash_alg alg; + }; +}; + +struct ahash_request { + struct crypto_async_request base; + unsigned int nbytes; + struct scatterlist *src; + u8 *result; + void *priv; + void *__ctx[0]; +}; + +struct ahci_cmd_hdr { + __le32 opts; + __le32 status; + __le32 tbl_addr; + __le32 tbl_addr_hi; + __le32 reserved[4]; +}; + +struct ata_link; + +struct ahci_em_priv { + enum sw_activity blink_policy; + struct timer_list timer; + long unsigned int saved_activity; + long unsigned int activity; + long unsigned int led_state; + struct ata_link *link; +}; + +struct clk_bulk_data; + +struct reset_control; + +struct regulator; + +struct ata_port; + +struct ata_host; + +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 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_sg { + __le32 addr; + __le32 addr_hi; + __le32 reserved; + __le32 flags_size; +}; + +struct aic_info { + int version; + u32 event; + u32 target_cpu; + u32 irq_cfg; + u32 sw_set; + u32 sw_clr; + u32 mask_set; + u32 mask_clr; + u32 die_stride; + bool fast_ipi; + bool local_fast_ipi; +}; + +struct cpumask { + long unsigned int bits[8]; +}; + +typedef struct cpumask cpumask_t; + +struct aic_irq_chip { + void *base; + void *event; + struct irq_domain *hw_domain; + struct { + cpumask_t aff; + } *fiq_aff[7]; + int nr_irq; + int max_irq; + int nr_die; + int max_die; + struct aic_info info; +}; + +struct wait_page_queue; + +struct kiocb { + struct file *ki_filp; + loff_t ki_pos; + void (*ki_complete)(struct kiocb *, long int); + void *private; + int ki_flags; + u16 ki_ioprio; + union { + struct wait_page_queue *ki_waitq; + ssize_t (*dio_complete)(void *); + }; +}; + +struct fsync_iocb { + struct file *file; + struct work_struct work; + bool datasync; + struct cred *creds; +}; + +struct wait_queue_entry; + +typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *); + +struct wait_queue_entry { + unsigned int flags; + void *private; + wait_queue_func_t func; + struct list_head entry; +}; + +struct 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 kioctx; + +struct aio_kiocb { + union { + struct file *ki_filp; + struct kiocb rw; + struct fsync_iocb fsync; + struct poll_iocb poll; + }; + struct kioctx *ki_ctx; + kiocb_cancel_fn *ki_cancel; + struct io_event ki_res; + struct list_head ki_list; + refcount_t ki_refcnt; + struct eventfd_ctx *ki_eventfd; +}; + +struct poll_table_struct; + +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 aio_poll_table { + struct poll_table_struct pt; + struct aio_kiocb *iocb; + bool queued; + int error; +}; + +struct aio_ring { + unsigned int id; + unsigned int nr; + unsigned int head; + unsigned int tail; + unsigned int magic; + unsigned int compat_features; + unsigned int incompat_features; + unsigned int header_length; + struct io_event io_events[0]; +}; + +struct aio_waiter { + struct wait_queue_entry w; + size_t min_nr; +}; + +struct akcipher_request; + +struct crypto_akcipher; + +struct akcipher_alg { + int (*encrypt)(struct akcipher_request *); + int (*decrypt)(struct akcipher_request *); + int (*set_pub_key)(struct crypto_akcipher *, const void *, unsigned int); + int (*set_priv_key)(struct crypto_akcipher *, const void *, unsigned int); + unsigned int (*max_size)(struct crypto_akcipher *); + int (*init)(struct crypto_akcipher *); + void (*exit)(struct crypto_akcipher *); + struct crypto_alg base; +}; + +struct akcipher_instance { + void (*free)(struct akcipher_instance *); + union { + struct { + char head[56]; + struct crypto_instance base; + } s; + struct akcipher_alg alg; + }; +}; + +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 al_fic { + void *base; + struct irq_domain *domain; + const char *name; + unsigned int parent_irq; + enum al_fic_state state; +}; + +struct al_pcie_reg_offsets { + unsigned int ob_ctrl; +}; + +struct al_pcie_target_bus_cfg { + u8 reg_val; + u8 reg_mask; + u8 ecam_mask; +}; + +struct dw_pcie; + +struct al_pcie { + struct dw_pcie *pci; + void *controller_base; + struct device *dev; + resource_size_t ecam_size; + unsigned int controller_rev_id; + struct al_pcie_reg_offsets reg_offsets; + struct al_pcie_target_bus_cfg target_bus_cfg; +}; + +struct al_pcie_acpi { + void *dbi_base; +}; + +struct alarm { + struct timerqueue_node node; + struct hrtimer timer; + void (*function)(struct alarm *, ktime_t); + enum alarmtimer_type type; + int state; + void *data; +}; + +struct timerqueue_head { + struct rb_root_cached rb_root; +}; + +struct timespec64; + +struct alarm_base { + spinlock_t lock; + struct timerqueue_head timerqueue; + ktime_t (*get_ktime)(void); + void (*get_timespec)(struct timespec64 *); + clockid_t base_clockid; +}; + +struct alias_prop { + struct list_head link; + const char *alias; + struct device_node *np; + int id; + char stem[0]; +}; + +struct source_location { + const char *file_name; + union { + long unsigned int reported; + struct { + u32 line; + u32 column; + }; + }; +}; + +struct type_descriptor; + +struct alignment_assumption_data { + struct source_location location; + struct source_location assumption_location; + struct type_descriptor *type; +}; + +struct zonelist; + +struct zoneref; + +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 codetag { + unsigned int flags; + unsigned int lineno; + const char *modname; + const char *function; + const char *filename; +}; + +struct alloc_tag_counters; + +struct alloc_tag { + struct codetag ct; + struct alloc_tag_counters *counters; +}; + +struct alloc_tag_counters { + u64 bytes; + u64 calls; +}; + +struct alpha_pll_config { + u32 l; + u32 alpha; + u32 alpha_hi; + u32 config_ctl_val; + u32 config_ctl_hi_val; + u32 config_ctl_hi1_val; + u32 config_ctl_hi2_val; + u32 user_ctl_val; + u32 user_ctl_hi_val; + u32 user_ctl_hi1_val; + u32 test_ctl_val; + u32 test_ctl_mask; + u32 test_ctl_hi_val; + u32 test_ctl_hi_mask; + u32 test_ctl_hi1_val; + u32 test_ctl_hi2_val; + u32 test_ctl_hi3_val; + u32 main_output_mask; + u32 aux_output_mask; + u32 aux2_output_mask; + u32 early_output_mask; + u32 alpha_en_mask; + u32 alpha_mode_mask; + u32 pre_div_val; + u32 pre_div_mask; + u32 post_div_val; + u32 post_div_mask; + u32 vco_val; + u32 vco_mask; + u32 status_val; + u32 status_mask; + u32 lock_det; +}; + +struct alt_instr { + s32 orig_offset; + s32 alt_offset; + u16 cpucap; + u8 orig_len; + u8 alt_len; +}; + +struct alt_region { + struct alt_instr *begin; + struct alt_instr *end; +}; + +struct altera_msi { + long unsigned int used[1]; + struct mutex lock; + struct platform_device *pdev; + struct irq_domain *msi_domain; + struct irq_domain *inner_domain; + void *csr_base; + void *vector_base; + phys_addr_t vector_phy; + u32 num_of_vectors; + int irq; +}; + +struct altera_pcie_data; + +struct altera_pcie { + struct platform_device *pdev; + void *cra_base; + void *hip_base; + int irq; + u8 root_bus_nr; + struct irq_domain *irq_domain; + struct resource bus_range; + const struct altera_pcie_data *pcie_data; +}; + +struct altera_pcie_ops; + +struct altera_pcie_data { + const struct altera_pcie_ops *ops; + enum altera_pcie_version version; + u32 cap_offset; + u32 cfgrd0; + u32 cfgrd1; + u32 cfgwr0; + u32 cfgwr1; +}; + +struct altera_pcie_ops { + int (*tlp_read_pkt)(struct altera_pcie *, u32 *); + void (*tlp_write_pkt)(struct altera_pcie *, u32 *, u32, bool); + bool (*get_link_status)(struct altera_pcie *); + int (*rp_read_cfg)(struct altera_pcie *, int, int, u32 *); + int (*rp_write_cfg)(struct altera_pcie *, u8, int, int, u32); +}; + +struct regmap; + +struct altr_a10sr { + struct device *dev; + struct regmap *regmap; +}; + +struct altr_arria10_edac { + struct device *dev; + struct regmap *ecc_mgr_map; + int sb_irq; + int db_irq; + struct irq_domain *domain; + struct irq_chip irq_chip; + struct list_head a10_ecc_devices; + struct notifier_block panic_notifier; +}; + +struct edac_device_prv_data; + +struct edac_device_ctl_info; + +struct altr_edac_device_dev { + struct list_head next; + void *base; + int sb_irq; + int db_irq; + const struct edac_device_prv_data *data; + struct dentry *debugfs_dir; + char *edac_dev_name; + struct altr_arria10_edac *edac; + struct edac_device_ctl_info *edac_dev; + struct device ddev; + int edac_idx; +}; + +struct altr_sdram_prv_data; + +struct altr_sdram_mc_data { + struct regmap *mc_vbase; + int sb_irq; + int db_irq; + const struct altr_sdram_prv_data *data; +}; + +struct edac_dev_sysfs_attribute; + +struct altr_sdram_prv_data { + int ecc_ctrl_offset; + int ecc_ctl_en_mask; + int ecc_cecnt_offset; + int ecc_uecnt_offset; + int ecc_stat_offset; + int ecc_stat_ce_mask; + int ecc_stat_ue_mask; + int ecc_saddr_offset; + int ecc_daddr_offset; + int ecc_irq_en_offset; + int ecc_irq_en_mask; + int ecc_irq_clr_offset; + int ecc_irq_clr_mask; + int ecc_cnt_rst_offset; + int ecc_cnt_rst_mask; + struct edac_dev_sysfs_attribute *eccmgr_sysfs_attr; + int ecc_enable_mask; + int ce_set_mask; + int ue_set_mask; + int ce_ue_trgr_offset; +}; + +struct altr_sysmgr { + struct regmap *regmap; +}; + +struct amba_cs_uci_id { + unsigned int devarch; + unsigned int devarch_mask; + unsigned int devtype; + void *data; +}; + +struct device_dma_parameters { + unsigned int max_segment_size; + unsigned int min_align_mask; + long unsigned int segment_boundary_mask; +}; + +struct clk; + +struct amba_device { + struct device dev; + struct resource res; + struct clk *pclk; + struct device_dma_parameters dma_parms; + unsigned int periphid; + struct mutex periphid_lock; + unsigned int cid; + struct amba_cs_uci_id uci; + unsigned int irq[9]; + const char *driver_override; +}; + +struct amba_id; + +struct amba_driver { + struct device_driver drv; + int (*probe)(struct amba_device *, const struct amba_id *); + void (*remove)(struct amba_device *); + void (*shutdown)(struct amba_device *); + const struct amba_id *id_table; + bool driver_managed_dma; +}; + +struct amba_id { + unsigned int id; + unsigned int mask; + void *data; +}; + +struct amba_pl011_data { + bool (*dma_filter)(struct dma_chan *, void *); + void *dma_rx_param; + void *dma_tx_param; + bool dma_rx_poll_enable; + unsigned int dma_rx_poll_rate; + unsigned int dma_rx_poll_timeout; + void (*init)(void); + void (*exit)(void); +}; + +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 amd_function { + const char *name; + const char * const groups[4]; + unsigned int ngroups; + int index; +}; + +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, long unsigned int *, 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 *, long unsigned int *, unsigned int *); +}; + +struct irq_desc; + +typedef void (*irq_flow_handler_t)(struct irq_desc *); + +union gpio_irq_fwspec; + +struct gpio_irq_chip { + struct irq_chip *chip; + struct irq_domain *domain; + struct fwnode_handle *fwnode; + struct irq_domain *parent_domain; + int (*child_to_parent_hwirq)(struct gpio_chip *, unsigned int, unsigned int, unsigned int *, unsigned int *); + int (*populate_parent_alloc_arg)(struct gpio_chip *, union gpio_irq_fwspec *, unsigned int, unsigned int); + unsigned int (*child_offset_to_irq)(struct gpio_chip *, unsigned int); + struct irq_domain_ops child_irq_domain_ops; + irq_flow_handler_t handler; + unsigned int default_type; + struct lock_class_key *lock_key; + struct lock_class_key *request_key; + irq_flow_handler_t parent_handler; + union { + void *parent_handler_data; + void **parent_handler_data_array; + }; + unsigned int num_parents; + unsigned int *parents; + unsigned int *map; + bool threaded; + bool per_parent_data; + bool initialized; + bool domain_is_allocated_externally; + int (*init_hw)(struct gpio_chip *); + void (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int); + long unsigned int *valid_mask; + unsigned int first; + void (*irq_enable)(struct irq_data *); + void (*irq_disable)(struct irq_data *); + void (*irq_unmask)(struct irq_data *); + void (*irq_mask)(struct irq_data *); +}; + +struct gpio_device; + +struct of_phandle_args; + +struct gpio_chip { + const char *label; + struct gpio_device *gpiodev; + struct device *parent; + struct fwnode_handle *fwnode; + struct module *owner; + int (*request)(struct gpio_chip *, unsigned int); + void (*free)(struct gpio_chip *, unsigned int); + int (*get_direction)(struct gpio_chip *, unsigned int); + int (*direction_input)(struct gpio_chip *, unsigned int); + int (*direction_output)(struct gpio_chip *, unsigned int, int); + int (*get)(struct gpio_chip *, unsigned int); + int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *); + void (*set)(struct gpio_chip *, unsigned int, int); + void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *); + int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int); + int (*to_irq)(struct gpio_chip *, unsigned int); + void (*dbg_show)(struct seq_file *, struct gpio_chip *); + int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int); + int (*add_pin_ranges)(struct gpio_chip *); + int (*en_hw_timestamp)(struct gpio_chip *, u32, long unsigned int); + int (*dis_hw_timestamp)(struct gpio_chip *, u32, long unsigned int); + int base; + u16 ngpio; + u16 offset; + const char * const *names; + bool can_sleep; + long unsigned int (*read_reg)(void *); + void (*write_reg)(void *, long unsigned int); + bool be_bits; + void *reg_dat; + void *reg_set; + void *reg_clr; + void *reg_dir_out; + void *reg_dir_in; + bool bgpio_dir_unreadable; + int bgpio_bits; + raw_spinlock_t bgpio_lock; + long unsigned int bgpio_data; + long unsigned int bgpio_dir; + struct gpio_irq_chip irq; + long unsigned int *valid_mask; + unsigned int of_gpio_n_cells; + int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *); +}; + +struct pingroup; + +struct pinctrl_dev; + +struct amd_gpio { + raw_spinlock_t lock; + void *base; + void *iomux_base; + const struct pingroup *groups; + u32 ngroups; + struct pinctrl_dev *pctrl; + struct gpio_chip gc; + unsigned int hwbank_num; + struct resource *res; + struct platform_device *pdev; + u32 *saved_regs; + int irq; +}; + +struct aml_resource_small_header { + u8 descriptor_type; +}; + +struct aml_resource_large_header { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); + +struct aml_resource_irq { + u8 descriptor_type; + u16 irq_mask; + u8 flags; +} __attribute__((packed)); + +struct aml_resource_dma { + u8 descriptor_type; + u8 dma_channel_mask; + u8 flags; +}; + +struct aml_resource_start_dependent { + u8 descriptor_type; + u8 flags; +}; + +struct aml_resource_end_dependent { + u8 descriptor_type; +}; + +struct aml_resource_io { + u8 descriptor_type; + u8 flags; + u16 minimum; + u16 maximum; + u8 alignment; + u8 address_length; +}; + +struct aml_resource_fixed_io { + u8 descriptor_type; + u16 address; + u8 address_length; +} __attribute__((packed)); + +struct aml_resource_fixed_dma { + u8 descriptor_type; + u16 request_lines; + u16 channels; + u8 width; +} __attribute__((packed)); + +struct aml_resource_vendor_small { + u8 descriptor_type; +}; + +struct aml_resource_end_tag { + u8 descriptor_type; + u8 checksum; +}; + +struct aml_resource_memory24 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u16 minimum; + u16 maximum; + u16 alignment; + u16 address_length; +} __attribute__((packed)); + +struct aml_resource_generic_register { + u8 descriptor_type; + u16 resource_length; + u8 address_space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +struct aml_resource_vendor_large { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); + +struct aml_resource_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 minimum; + u32 maximum; + u32 alignment; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_fixed_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 address; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_address16 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u16 granularity; + u16 minimum; + u16 maximum; + u16 translation_offset; + u16 address_length; +} __attribute__((packed)); + +struct aml_resource_address32 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u32 granularity; + u32 minimum; + u32 maximum; + u32 translation_offset; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_address64 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; +} __attribute__((packed)); + +struct aml_resource_extended_address64 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u8 revision_ID; + u8 reserved; + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; + u64 type_specific; +} __attribute__((packed)); + +struct aml_resource_extended_irq { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u8 interrupt_count; + union { + u32 interrupt; + struct { + struct {} __Empty_interrupts; + u32 interrupts[0]; + }; + }; +} __attribute__((packed)); + +struct aml_resource_gpio { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 connection_type; + u16 flags; + u16 int_flags; + u8 pin_config; + u16 drive_strength; + u16 debounce_timeout; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_i2c_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 connection_speed; + u16 slave_address; +} __attribute__((packed)); + +struct aml_resource_spi_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 connection_speed; + u8 data_bit_length; + u8 clock_phase; + u8 clock_polarity; + u16 device_selection; +} __attribute__((packed)); + +struct aml_resource_uart_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 default_baud_rate; + u16 rx_fifo_size; + u16 tx_fifo_size; + u8 parity; + u8 lines_enabled; +} __attribute__((packed)); + +struct aml_resource_csi2_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; +} __attribute__((packed)); + +struct aml_resource_common_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; +} __attribute__((packed)); + +struct aml_resource_pin_function { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config; + u16 function_number; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_config { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config_type; + u32 pin_config_value; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 pin_table_offset; + u16 label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group_function { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 function_number; + u8 res_source_index; + u16 res_source_offset; + u16 res_source_label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group_config { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config_type; + u32 pin_config_value; + u8 res_source_index; + u16 res_source_offset; + u16 res_source_label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_clock_input { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 frequency_divisor; + u32 frequency_numerator; +} __attribute__((packed)); + +struct aml_resource_address { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; +} __attribute__((packed)); + +union aml_resource { + u8 descriptor_type; + struct aml_resource_small_header small_header; + struct aml_resource_large_header large_header; + struct aml_resource_irq irq; + struct aml_resource_dma dma; + struct aml_resource_start_dependent start_dpf; + struct aml_resource_end_dependent end_dpf; + struct aml_resource_io io; + struct aml_resource_fixed_io fixed_io; + struct aml_resource_fixed_dma fixed_dma; + struct aml_resource_vendor_small vendor_small; + struct aml_resource_end_tag end_tag; + struct aml_resource_memory24 memory24; + struct aml_resource_generic_register generic_reg; + struct aml_resource_vendor_large vendor_large; + struct aml_resource_memory32 memory32; + struct aml_resource_fixed_memory32 fixed_memory32; + struct aml_resource_address16 address16; + struct aml_resource_address32 address32; + struct aml_resource_address64 address64; + struct aml_resource_extended_address64 ext_address64; + struct aml_resource_extended_irq extended_irq; + struct aml_resource_gpio gpio; + struct aml_resource_i2c_serialbus i2c_serial_bus; + struct aml_resource_spi_serialbus spi_serial_bus; + struct aml_resource_uart_serialbus uart_serial_bus; + struct aml_resource_csi2_serialbus csi2_serial_bus; + struct aml_resource_common_serialbus common_serial_bus; + struct aml_resource_pin_function pin_function; + struct aml_resource_pin_config pin_config; + struct aml_resource_pin_group pin_group; + struct aml_resource_pin_group_function pin_group_function; + struct aml_resource_pin_group_config pin_group_config; + struct aml_resource_clock_input clock_input; + struct aml_resource_address address; + u32 dword_item; + u16 word_item; + u8 byte_item; +}; + +struct analog_param_field { + unsigned int even; + unsigned int odd; +}; + +struct analog_param_range { + unsigned int min; + unsigned int typ; + unsigned int max; +}; + +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 kobj_uevent_env; + +struct kobj_ns_type_operations; + +struct class { + const char *name; + const struct attribute_group **class_groups; + const struct attribute_group **dev_groups; + int (*dev_uevent)(const struct device *, struct kobj_uevent_env *); + char * (*devnode)(const struct device *, umode_t *); + void (*class_release)(const 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 transport_container; + +struct transport_class { + struct class class; + int (*setup)(struct transport_container *, struct device *, struct device *); + int (*configure)(struct transport_container *, struct device *, struct device *); + int (*remove)(struct transport_container *, struct device *, struct device *); +}; + +struct klist_node; + +struct klist { + spinlock_t k_lock; + struct list_head k_list; + void (*get)(struct klist_node *); + void (*put)(struct klist_node *); +}; + +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 *); + long unsigned int flags; +}; + +struct anon_transport_class { + struct transport_class tclass; + struct attribute_container container; +}; + +struct anon_vma { + struct anon_vma *root; + struct rw_semaphore rwsem; + atomic_t refcount; + long unsigned int num_children; + long unsigned int num_active_vmas; + struct anon_vma *parent; + struct rb_root_cached rb_root; +}; + +struct anon_vma_chain { + struct vm_area_struct *vma; + struct anon_vma *anon_vma; + struct list_head same_vma; + struct rb_node rb; + long unsigned int rb_subtree_last; +}; + +struct anon_vma_name { + struct kref kref; + char name[0]; +}; + +struct clk_core; + +struct clk_init_data; + +struct clk_hw { + struct clk_core *core; + struct clk *clk; + const struct clk_init_data *init; +}; + +struct cpu_dfs_regs; + +struct ap_cpu_clk { + unsigned int cluster; + const char *clk_name; + struct device *dev; + struct clk_hw hw; + struct regmap *pll_cr_base; + const struct cpu_dfs_regs *pll_regs; +}; + +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 apei_exec_ins_type; + +struct apei_exec_context { + u32 ip; + u64 value; + u64 var1; + u64 var2; + u64 src_base; + u64 dst_base; + struct apei_exec_ins_type *ins_table; + u32 instructions; + struct acpi_whea_header *action_table; + u32 entries; +}; + +typedef int (*apei_exec_ins_func_t)(struct apei_exec_context *, struct acpi_whea_header *); + +struct apei_exec_ins_type { + u32 flags; + apei_exec_ins_func_t run; +}; + +struct apei_res { + struct list_head list; + long unsigned int start; + long unsigned int end; +}; + +struct apei_resources { + struct list_head iomem; + struct list_head ioport; +}; + +struct aperture_range { + struct device *dev; + resource_size_t base; + resource_size_t size; + struct list_head lh; + void (*detach)(struct device *); +}; + +struct api_context { + struct completion done; + int status; +}; + +struct apparmor_notif_common { + __u16 len; + __u16 version; +}; + +struct apparmor_notif { + struct apparmor_notif_common base; + __u16 ntype; + __u8 signalled; + __u8 flags; + __u64 id; + __s32 error; +} __attribute__((packed)); + +struct apparmor_notif_filter { + struct apparmor_notif_common base; + __u32 modeset; + __u32 ns; + __u32 filter; + __u8 data[0]; +}; + +struct apparmor_notif_op { + struct apparmor_notif base; + __u32 allow; + __u32 deny; + pid_t pid; + __u32 label; + __u16 class; + __u16 op; +}; + +struct apparmor_notif_file { + struct apparmor_notif_op base; + uid_t subj_uid; + uid_t obj_uid; + __u32 name; + __u8 data[0]; +}; + +struct apparmor_notif_resp_perm { + struct apparmor_notif base; + __s32 error; + __u32 allow; + __u32 deny; +}; + +struct apparmor_notif_resp_name { + union { + struct apparmor_notif base; + struct apparmor_notif_resp_perm perm; + }; + __u32 name; + __u8 data[0]; +}; + +union apparmor_notif_resp { + struct apparmor_notif base; + struct apparmor_notif_resp_perm perm; + struct apparmor_notif_resp_name name; +}; + +union apparmor_notif_all { + struct apparmor_notif_common common; + struct apparmor_notif_filter filter; + struct apparmor_notif base; + struct apparmor_notif_op op; + struct apparmor_notif_file file; + union apparmor_notif_resp respnse; +}; + +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 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 *); + int (*set_performance_state)(struct device *, unsigned int); +}; + +struct raw_notifier_head { + struct notifier_block *head; +}; + +struct gpd_dev_ops { + int (*start)(struct device *); + int (*stop)(struct device *); +}; + +struct dev_power_governor; + +struct genpd_governor_data; + +struct opp_table; + +struct genpd_power_state; + +struct genpd_lock_ops; + +struct generic_pm_domain { + struct device dev; + struct dev_pm_domain domain; + struct list_head gpd_list_node; + struct list_head parent_links; + struct list_head child_links; + struct list_head dev_list; + struct dev_power_governor *gov; + struct genpd_governor_data *gd; + struct work_struct power_off_work; + struct fwnode_handle *provider; + bool has_provider; + const char *name; + atomic_t sd_count; + enum gpd_status status; + unsigned int device_count; + unsigned int device_id; + unsigned int suspended_count; + unsigned int prepared_count; + unsigned int performance_state; + cpumask_var_t cpus; + bool synced_poweroff; + int (*power_off)(struct generic_pm_domain *); + int (*power_on)(struct generic_pm_domain *); + struct raw_notifier_head power_notifiers; + struct opp_table *opp_table; + int (*set_performance_state)(struct generic_pm_domain *, unsigned int); + struct gpd_dev_ops dev_ops; + int (*set_hwmode_dev)(struct generic_pm_domain *, struct device *, bool); + bool (*get_hwmode_dev)(struct generic_pm_domain *, struct device *); + int (*attach_dev)(struct generic_pm_domain *, struct device *); + void (*detach_dev)(struct generic_pm_domain *, struct device *); + unsigned int flags; + struct genpd_power_state *states; + void (*free_states)(struct genpd_power_state *, unsigned int); + unsigned int state_count; + unsigned int state_idx; + u64 on_time; + u64 accounting_time; + const struct genpd_lock_ops *lock_ops; + union { + struct mutex mlock; + struct { + spinlock_t slock; + long unsigned int lock_flags; + }; + struct { + raw_spinlock_t raw_slock; + long unsigned int raw_lock_flags; + }; + }; +}; + +struct reset_control_ops; + +struct reset_controller_dev { + const struct reset_control_ops *ops; + struct module *owner; + struct list_head list; + struct list_head reset_control_head; + struct device *dev; + struct device_node *of_node; + const struct of_phandle_args *of_args; + int of_reset_n_cells; + int (*of_xlate)(struct reset_controller_dev *, const struct of_phandle_args *); + unsigned int nr_resets; +}; + +struct apple_pmgr_ps { + struct device *dev; + struct generic_pm_domain genpd; + struct reset_controller_dev rcdev; + struct regmap *regmap; + u32 offset; + u32 min_state; +}; + +struct workqueue_attrs; + +struct pool_workqueue; + +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 arch_elf_state { + int flags; +}; + +struct arch_hw_breakpoint_ctrl { + u32 __reserved: 19; + u32 len: 8; + u32 type: 2; + u32 privilege: 2; + u32 enabled: 1; +}; + +struct arch_hw_breakpoint { + u64 address; + u64 trigger; + struct arch_hw_breakpoint_ctrl ctrl; +}; + +struct arch_io_reserve_memtype_wc_devres { + resource_size_t start; + resource_size_t size; +}; + +struct arch_msi_msg_addr_hi { + u32 address_hi; +}; + +typedef struct arch_msi_msg_addr_hi arch_msi_msg_addr_hi_t; + +struct arch_msi_msg_addr_lo { + u32 address_lo; +}; + +typedef struct arch_msi_msg_addr_lo arch_msi_msg_addr_lo_t; + +struct arch_msi_msg_data { + u32 data; +}; + +typedef struct arch_msi_msg_data arch_msi_msg_data_t; + +struct pt_regs; + +typedef void probes_handler_t(u32, long int, struct pt_regs *); + +struct arch_probe_insn { + probes_handler_t *handler; +}; + +struct arch_shared_info {}; + +struct arch_specific_insn { + struct arch_probe_insn api; + kprobe_opcode_t *xol_insn; + long unsigned int xol_restore; +}; + +struct clock_event_device { + void (*event_handler)(struct clock_event_device *); + int (*set_next_event)(long unsigned int, 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; + long unsigned int 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 *); + long unsigned int min_delta_ticks; + long unsigned int max_delta_ticks; + const char *name; + int rating; + int irq; + int bound_on; + const struct cpumask *cpumask; + struct list_head list; + struct module *owner; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct arch_timer { + void *base; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct clock_event_device evt; +}; + +struct arch_timer_offset { + u64 *vm_offset; + u64 *vcpu_offset; +}; + +struct kvm_vcpu; + +struct arch_timer_context { + struct kvm_vcpu *vcpu; + struct hrtimer hrtimer; + u64 ns_frac; + struct arch_timer_offset offset; + bool loaded; + struct { + bool level; + } irq; + u32 host_timer_irq; +}; + +struct arch_timer_cpu { + struct arch_timer_context timers[4]; + struct hrtimer bg_timer; + bool enabled; +}; + +struct arch_timer_erratum_workaround { + enum arch_timer_erratum_match_type match_type; + const void *id; + const char *desc; + u64 (*read_cntpct_el0)(void); + u64 (*read_cntvct_el0)(void); + int (*set_next_event_phys)(long unsigned int, struct clock_event_device *); + int (*set_next_event_virt)(long unsigned int, struct clock_event_device *); + bool disable_compat_vdso; +}; + +struct cyclecounter; + +struct timecounter { + const struct cyclecounter *cc; + u64 cycle_last; + u64 nsec; + u64 mask; + u64 frac; +}; + +struct arch_timer_kvm_info { + struct timecounter timecounter; + int virtual_irq; + int physical_irq; +}; + +struct arch_timer_mem_frame { + bool valid; + phys_addr_t cntbase; + size_t size; + int phys_irq; + int virt_irq; +}; + +struct arch_timer_mem { + phys_addr_t cntctlbase; + size_t size; + struct arch_timer_mem_frame frame[8]; +}; + +struct arch_timer_vm_data { + u64 voffset; + u64 poffset; + u8 ppi[4]; +}; + +struct arch_tlbflush_unmap_batch {}; + +struct arch_uprobe { + union { + __le32 insn; + __le32 ixol; + }; + struct arch_probe_insn api; + bool simulate; +}; + +struct arch_uprobe_task {}; + +struct arch_vcpu_info {}; + +struct arch_vdso_time_data {}; + +struct arg_dev_net_ip { + struct net *net; + struct in6_addr *addr; +}; + +struct arg_netdev_event { + const struct net_device *dev; + union { + unsigned char nh_flags; + long unsigned int event; + }; +}; + +struct midr_range { + u32 model; + u32 rv_min; + u32 rv_max; +}; + +struct arm64_midr_revidr; + +struct arm64_cpu_capabilities { + const char *desc; + u16 capability; + u16 type; + bool (*matches)(const struct arm64_cpu_capabilities *, int); + void (*cpu_enable)(const struct arm64_cpu_capabilities *); + union { + struct { + struct midr_range midr_range; + const struct arm64_midr_revidr * const fixed_revs; + }; + const struct midr_range *midr_range_list; + struct { + u32 sys_reg; + u8 field_pos; + u8 field_width; + u8 min_field_value; + u8 max_field_value; + u8 hwcap_type; + bool sign; + long unsigned int hwcap; + }; + }; + const struct arm64_cpu_capabilities *match_list; + const struct cpumask *cpus; +}; + +struct arm64_ftr_bits { + bool sign; + bool visible; + bool strict; + enum ftr_type type; + u8 shift; + u8 width; + s64 safe_val; +}; + +struct arm64_ftr_override { + u64 val; + u64 mask; +}; + +struct arm64_ftr_reg { + const char *name; + u64 strict_mask; + u64 user_mask; + u64 sys_val; + u64 user_val; + struct arm64_ftr_override *override; + const struct arm64_ftr_bits *ftr_bits; +}; + +struct arm64_image_header { + __le32 code0; + __le32 code1; + __le64 text_offset; + __le64 image_size; + __le64 flags; + __le64 res2; + __le64 res3; + __le64 res4; + __le32 magic; + __le32 res5; +}; + +struct bpf_prog; + +struct jit_ctx { + const struct bpf_prog *prog; + int idx; + int epilogue_offset; + int *offset; + int exentry_idx; + int nr_used_callee_reg; + u8 used_callee_reg[8]; + __le32 *image; + __le32 *ro_image; + u32 stack_size; + u64 user_vm_start; + u64 arena_vm_start; + bool fp_used; + bool write; +}; + +struct bpf_binary_header; + +struct arm64_jit_data { + struct bpf_binary_header *header; + u8 *ro_image; + struct bpf_binary_header *ro_header; + struct jit_ctx ctx; +}; + +struct arm64_mem_crypt_ops { + int (*encrypt)(long unsigned int, int); + int (*decrypt)(long unsigned int, int); +}; + +struct arm64_midr_revidr { + u32 midr_rv; + u32 revidr_mask; +}; + +struct perf_cpu_pmu_context; + +struct perf_event; + +struct mm_struct; + +struct perf_event_pmu_context; + +struct kmem_cache; + +struct perf_output_handle; + +struct pmu { + struct list_head entry; + struct module *module; + struct device *dev; + struct device *parent; + const struct attribute_group **attr_groups; + const struct attribute_group **attr_update; + const char *name; + int type; + int capabilities; + unsigned int scope; + int *pmu_disable_count; + struct perf_cpu_pmu_context *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 *, struct task_struct *, 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 int (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, long unsigned int); + int (*addr_filters_validate)(struct list_head *); + void (*addr_filters_sync)(struct perf_event *); + int (*aux_output_match)(struct perf_event *); + bool (*filter)(struct pmu *, int); + int (*check_period)(struct perf_event *, u64); +}; + +struct arm_ccn_component; + +struct arm_ccn_dt { + int id; + void *base; + spinlock_t config_lock; + long unsigned int pmu_counters_mask[1]; + struct { + struct arm_ccn_component *source; + struct perf_event *event; + } pmu_counters[9]; + struct { + u64 l; + u64 h; + } cmp_mask[12]; + struct hrtimer hrtimer; + unsigned int cpu; + struct hlist_node node; + struct pmu pmu; +}; + +struct arm_ccn { + struct device *dev; + void *base; + unsigned int irq; + unsigned int sbas_present: 1; + unsigned int sbsx_present: 1; + int num_nodes; + struct arm_ccn_component *node; + int num_xps; + struct arm_ccn_component *xp; + struct arm_ccn_dt dt; + int mn_id; +}; + +struct arm_ccn_component { + void *base; + u32 type; + long unsigned int pmu_events_mask[1]; + union { + struct { + long unsigned int dt_cmp_mask[1]; + } xp; + }; +}; + +struct arm_ccn_pmu_event { + struct device_attribute attr; + u32 type; + u32 event; + int num_ports; + int num_vcs; + const char *def; + int mask; +}; + +struct arm_cpuidle_irq_context { + long unsigned int pmr; + long unsigned int daif_bits; +}; + +struct iommu_flush_ops; + +struct io_pgtable_cfg { + long unsigned int quirks; + long unsigned int pgsize_bitmap; + unsigned int ias; + unsigned int oas; + bool coherent_walk; + const struct iommu_flush_ops *tlb; + struct device *iommu_dev; + void * (*alloc)(void *, size_t, gfp_t); + void (*free)(void *, void *, size_t); + 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 { + int nid; + } amd; + }; +}; + +struct iommu_iotlb_gather; + +struct iommu_dirty_bitmap; + +struct io_pgtable_ops { + int (*map_pages)(struct io_pgtable_ops *, long unsigned int, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); + size_t (*unmap_pages)(struct io_pgtable_ops *, long unsigned int, size_t, size_t, struct iommu_iotlb_gather *); + phys_addr_t (*iova_to_phys)(struct io_pgtable_ops *, long unsigned int); + int (*pgtable_walk)(struct io_pgtable_ops *, long unsigned int, void *); + int (*read_and_clear_dirty)(struct io_pgtable_ops *, long unsigned int, size_t, long unsigned int, struct iommu_dirty_bitmap *); +}; + +struct io_pgtable { + enum io_pgtable_fmt fmt; + void *cookie; + struct io_pgtable_cfg cfg; + struct io_pgtable_ops ops; +}; + +struct arm_lpae_io_pgtable { + struct io_pgtable iop; + int pgd_bits; + int start_level; + int bits_per_level; + void *pgd; +}; + +struct arm_lpae_io_pgtable_walk_data { + u64 ptes[4]; +}; + +struct pmu_hw_events; + +struct hw_perf_event; + +struct perf_event_attr; + +struct arm_pmu { + struct pmu pmu; + cpumask_t supported_cpus; + char *name; + int pmuver; + irqreturn_t (*handle_irq)(struct arm_pmu *); + void (*enable)(struct perf_event *); + void (*disable)(struct perf_event *); + int (*get_event_idx)(struct pmu_hw_events *, struct perf_event *); + void (*clear_event_idx)(struct pmu_hw_events *, struct perf_event *); + int (*set_event_filter)(struct hw_perf_event *, struct perf_event_attr *); + u64 (*read_counter)(struct perf_event *); + void (*write_counter)(struct perf_event *, u64); + void (*start)(struct arm_pmu *); + void (*stop)(struct arm_pmu *); + void (*reset)(void *); + int (*map_event)(struct perf_event *); + long unsigned int cntr_mask[1]; + bool secure_access; + long unsigned int pmceid_bitmap[1]; + long unsigned int pmceid_ext_bitmap[1]; + struct platform_device *plat_device; + struct pmu_hw_events *hw_events; + struct hlist_node node; + struct notifier_block cpu_pm_nb; + const struct attribute_group *attr_groups[5]; + u64 reg_pmmir; + long unsigned int acpi_cpuid; +}; + +struct arm_pmu_entry { + struct list_head entry; + struct arm_pmu *arm_pmu; +}; + +struct arm_smccc_1_2_regs { + long unsigned int a0; + long unsigned int a1; + long unsigned int a2; + long unsigned int a3; + long unsigned int a4; + long unsigned int a5; + long unsigned int a6; + long unsigned int a7; + long unsigned int a8; + long unsigned int a9; + long unsigned int a10; + long unsigned int a11; + long unsigned int a12; + long unsigned int a13; + long unsigned int a14; + long unsigned int a15; + long unsigned int a16; + long unsigned int a17; +}; + +struct arm_smccc_args { + long unsigned int args[8]; +}; + +struct arm_smccc_quirk { + int id; + union { + long unsigned int a6; + } state; +}; + +struct arm_smccc_res { + long unsigned int a0; + long unsigned int a1; + long unsigned int a2; + long unsigned int a3; +}; + +struct iommu_domain; + +struct arm_smmu_master; + +struct arm_smmu_attach_state { + struct iommu_domain *old_domain; + struct arm_smmu_master *master; + bool cd_needs_ats; + bool disable_ats; + ioasid_t ssid; + bool ats_enabled; +}; + +struct arm_smmu_cfg; + +struct arm_smmu_cb { + u64 ttbr[2]; + u32 tcr[2]; + u32 mair[2]; + struct arm_smmu_cfg *cfg; +}; + +struct arm_smmu_cd { + __le64 data[8]; +}; + +struct arm_smmu_entry_writer_ops; + +struct arm_smmu_entry_writer { + const struct arm_smmu_entry_writer_ops *ops; + struct arm_smmu_master *master; +}; + +struct arm_smmu_cd_writer { + struct arm_smmu_entry_writer writer; + unsigned int ssid; +}; + +struct arm_smmu_cdtab_l1 { + __le64 l2ptr; +}; + +struct arm_smmu_cdtab_l2 { + struct arm_smmu_cd cds[1024]; +}; + +struct arm_smmu_cfg { + u8 cbndx; + u8 irptndx; + union { + u16 asid; + u16 vmid; + }; + enum arm_smmu_cbar_type cbar; + enum arm_smmu_context_fmt fmt; + bool flush_walk_prefer_tlbiasid; +}; + +struct arm_smmu_ll_queue { + union { + u64 val; + struct { + u32 prod; + u32 cons; + }; + struct { + atomic_t prod; + atomic_t cons; + } atomic; + u8 __pad[64]; + }; + u32 max_n_shift; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct arm_smmu_queue { + struct arm_smmu_ll_queue llq; + int irq; + __le64 *base; + dma_addr_t base_dma; + u64 q_base; + size_t ent_dwords; + u32 *prod_reg; + u32 *cons_reg; + long: 64; +}; + +struct arm_smmu_cmdq_ent; + +struct arm_smmu_cmdq { + struct arm_smmu_queue q; + atomic_long_t *valid_map; + atomic_t owner_prod; + atomic_t lock; + bool (*supports_cmd)(struct arm_smmu_cmdq_ent *); + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct arm_smmu_cmdq_batch { + u64 cmds[128]; + struct arm_smmu_cmdq *cmdq; + int num; +}; + +struct arm_smmu_cmdq_ent { + u8 opcode; + bool substream_valid; + union { + struct { + u32 sid; + } prefetch; + struct { + u32 sid; + u32 ssid; + union { + bool leaf; + u8 span; + }; + } cfgi; + struct { + u8 num; + u8 scale; + u16 asid; + u16 vmid; + bool leaf; + u8 ttl; + u8 tg; + u64 addr; + } tlbi; + struct { + u32 sid; + u32 ssid; + u64 addr; + u8 size; + bool global; + } atc; + struct { + u32 sid; + u32 ssid; + u16 grpid; + enum pri_resp resp; + } pri; + struct { + u32 sid; + u16 stag; + u8 resp; + } resume; + struct { + u64 msiaddr; + } sync; + }; +}; + +struct arm_smmu_context_fault_info { + long unsigned int iova; + u32 fsr; + u32 fsynr; + u32 cbfrsynra; +}; + +struct arm_smmu_ctx_desc { + u16 asid; +}; + +struct arm_smmu_ctx_desc_cfg { + union { + struct { + struct arm_smmu_cd *table; + unsigned int num_ents; + } linear; + struct { + struct arm_smmu_cdtab_l1 *l1tab; + struct arm_smmu_cdtab_l2 **l2ptrs; + unsigned int num_l1_ents; + } l2; + }; + dma_addr_t cdtab_dma; + unsigned int used_ssids; + u8 in_ste; + u8 s1fmt; + u8 s1cdmax; +}; + +struct iopf_queue; + +struct arm_smmu_evtq { + struct arm_smmu_queue q; + struct iopf_queue *iopf; + u32 max_stalls; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct arm_smmu_priq { + struct arm_smmu_queue q; +}; + +struct arm_smmu_ste; + +struct arm_smmu_strtab_l1; + +struct arm_smmu_strtab_l2; + +struct arm_smmu_strtab_cfg { + union { + struct { + struct arm_smmu_ste *table; + dma_addr_t ste_dma; + unsigned int num_ents; + } linear; + struct { + struct arm_smmu_strtab_l1 *l1tab; + struct arm_smmu_strtab_l2 **l2ptrs; + dma_addr_t l1_dma; + unsigned int num_l1_ents; + } l2; + }; +}; + +struct iommu_ops; + +struct iommu_device { + struct list_head list; + const struct iommu_ops *ops; + struct fwnode_handle *fwnode; + struct device *dev; + struct iommu_group *singleton_group; + u32 max_pasids; + bool ready; +}; + +struct arm_smmu_impl_ops; + +struct arm_smmu_device { + struct device *dev; + struct device *impl_dev; + const struct arm_smmu_impl_ops *impl_ops; + void *base; + void *page1; + u32 features; + u32 options; + long: 64; + long: 64; + struct arm_smmu_cmdq cmdq; + struct arm_smmu_evtq evtq; + struct arm_smmu_priq priq; + int gerr_irq; + int combined_irq; + long unsigned int ias; + long unsigned int oas; + long unsigned int pgsize_bitmap; + unsigned int asid_bits; + unsigned int vmid_bits; + struct ida vmid_map; + unsigned int ssid_bits; + unsigned int sid_bits; + struct arm_smmu_strtab_cfg strtab_cfg; + struct iommu_device iommu; + struct rb_root streams; + struct mutex streams_mutex; +}; + +struct arm_smmu_impl; + +struct arm_smmu_smr; + +struct arm_smmu_s2cr; + +struct arm_smmu_device___2 { + struct device *dev; + void *base; + phys_addr_t ioaddr; + unsigned int numpage; + unsigned int pgshift; + u32 features; + enum arm_smmu_arch_version version; + enum arm_smmu_implementation model; + const struct arm_smmu_impl *impl; + u32 num_context_banks; + u32 num_s2_context_banks; + long unsigned int context_map[2]; + struct arm_smmu_cb *cbs; + atomic_t irptndx; + u32 num_mapping_groups; + u16 streamid_mask; + u16 smr_mask_mask; + struct arm_smmu_smr *smrs; + struct arm_smmu_s2cr *s2crs; + struct mutex stream_map_mutex; + long unsigned int va_size; + long unsigned int ipa_size; + long unsigned int pa_size; + long unsigned int pgsize_bitmap; + int num_context_irqs; + int num_clks; + unsigned int *irqs; + struct clk_bulk_data *clks; + spinlock_t global_sync_lock; + struct iommu_device iommu; +}; + +struct iommu_domain_geometry { + dma_addr_t aperture_start; + dma_addr_t aperture_end; + bool force_aperture; +}; + +typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, long unsigned int, int, void *); + +struct iommu_domain_ops; + +struct iommu_dirty_ops; + +struct iommu_dma_cookie; + +struct iopf_group; + +struct iommu_domain { + unsigned int type; + const struct iommu_domain_ops *ops; + const struct iommu_dirty_ops *dirty_ops; + const struct iommu_ops *owner; + long unsigned int pgsize_bitmap; + struct iommu_domain_geometry geometry; + struct iommu_dma_cookie *iova_cookie; + int (*iopf_handler)(struct iopf_group *); + void *fault_data; + union { + struct { + iommu_fault_handler_t handler; + void *handler_token; + }; + struct { + struct mm_struct *mm; + int users; + struct list_head next; + }; + }; +}; + +struct arm_smmu_domain { + struct arm_smmu_device___2 *smmu; + struct io_pgtable_ops *pgtbl_ops; + long unsigned int pgtbl_quirks; + const struct iommu_flush_ops *flush_ops; + struct arm_smmu_cfg cfg; + enum arm_smmu_domain_stage___2 stage; + struct mutex init_mutex; + spinlock_t cb_lock; + struct iommu_domain domain; +}; + +struct arm_smmu_s2_cfg { + u16 vmid; +}; + +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 arm_smmu_domain___2 { + struct arm_smmu_device *smmu; + struct io_pgtable_ops *pgtbl_ops; + atomic_t nr_ats_masters; + enum arm_smmu_domain_stage stage; + union { + struct arm_smmu_ctx_desc cd; + struct arm_smmu_s2_cfg s2_cfg; + }; + struct iommu_domain domain; + struct list_head devices; + spinlock_t devices_lock; + bool enforce_cache_coherency: 1; + bool nest_parent: 1; + struct mmu_notifier mmu_notifier; +}; + +struct arm_smmu_entry_writer_ops { + void (*get_used)(const __le64 *, __le64 *); + void (*sync)(struct arm_smmu_entry_writer *); +}; + +struct arm_smmu_event { + u8 stall: 1; + u8 ssv: 1; + u8 privileged: 1; + u8 instruction: 1; + u8 s2: 1; + u8 read: 1; + u8 ttrnw: 1; + u8 class_tt: 1; + u8 id; + u8 class; + u16 stag; + u32 sid; + u32 ssid; + u64 iova; + u64 ipa; + u64 fetch_addr; + struct device *dev; +}; + +struct arm_smmu_impl { + u32 (*read_reg)(struct arm_smmu_device___2 *, int, int); + void (*write_reg)(struct arm_smmu_device___2 *, int, int, u32); + u64 (*read_reg64)(struct arm_smmu_device___2 *, int, int); + void (*write_reg64)(struct arm_smmu_device___2 *, int, int, u64); + int (*cfg_probe)(struct arm_smmu_device___2 *); + int (*reset)(struct arm_smmu_device___2 *); + int (*init_context)(struct arm_smmu_domain *, struct io_pgtable_cfg *, struct device *); + void (*tlb_sync)(struct arm_smmu_device___2 *, int, int, int); + int (*def_domain_type)(struct device *); + irqreturn_t (*global_fault)(int, void *); + irqreturn_t (*context_fault)(int, void *); + bool context_fault_needs_threaded_irq; + int (*alloc_context_bank)(struct arm_smmu_domain *, struct arm_smmu_device___2 *, struct device *, int); + void (*write_s2cr)(struct arm_smmu_device___2 *, int); + void (*write_sctlr)(struct arm_smmu_device___2 *, int, u32); + void (*probe_finalize)(struct arm_smmu_device___2 *, struct device *); +}; + +struct arm_smmu_impl_ops { + int (*device_reset)(struct arm_smmu_device *); + void (*device_remove)(struct arm_smmu_device *); + int (*init_structures)(struct arm_smmu_device *); + struct arm_smmu_cmdq * (*get_secondary_cmdq)(struct arm_smmu_device *, struct arm_smmu_cmdq_ent *); +}; + +struct arm_smmu_stream; + +struct arm_smmu_master { + struct arm_smmu_device *smmu; + struct device *dev; + struct arm_smmu_stream *streams; + struct arm_smmu_ctx_desc_cfg cd_table; + unsigned int num_streams; + bool ats_enabled: 1; + bool ste_ats_enabled: 1; + bool stall_enabled; + bool sva_enabled; + bool iopf_enabled; + unsigned int ssid_bits; +}; + +struct arm_smmu_master_cfg { + struct arm_smmu_device___2 *smmu; + s16 smendx[0]; +}; + +struct arm_smmu_master_domain { + struct list_head devices_elm; + struct arm_smmu_master *master; + ioasid_t ssid; + bool nested_ats_flush: 1; +}; + +struct arm_smmu_match_data { + enum arm_smmu_arch_version version; + enum arm_smmu_implementation model; +}; + +struct arm_vsmmu; + +struct arm_smmu_nested_domain { + struct iommu_domain domain; + struct arm_vsmmu *vsmmu; + bool enable_ats: 1; + __le64 ste[2]; +}; + +struct arm_smmu_option_prop { + u32 opt; + const char *prop; +}; + +struct arm_smmu_queue_poll { + ktime_t timeout; + unsigned int delay; + unsigned int spin_cnt; + bool wfe; +}; + +struct arm_smmu_s2cr { + struct iommu_group *group; + int count; + enum arm_smmu_s2cr_type type; + enum arm_smmu_s2cr_privcfg privcfg; + u8 cbndx; +}; + +struct arm_smmu_smr { + u16 mask; + u16 id; + bool valid; + bool pinned; +}; + +struct arm_smmu_ste { + __le64 data[8]; +}; + +struct arm_smmu_ste_writer { + struct arm_smmu_entry_writer writer; + u32 sid; +}; + +struct arm_smmu_stream { + u32 id; + struct arm_smmu_master *master; + struct rb_node node; +}; + +struct arm_smmu_strtab_l1 { + __le64 l2ptr; +}; + +struct arm_smmu_strtab_l2 { + struct arm_smmu_ste stes[256]; +}; + +struct arm_v7s_io_pgtable { + struct io_pgtable iop; + arm_v7s_iopte *pgd; + struct kmem_cache *l2_tables; +}; + +struct iommufd_object { + refcount_t shortterm_users; + refcount_t users; + enum iommufd_object_type type; + unsigned int id; +}; + +struct iommufd_ctx; + +struct iommufd_hwpt_paging; + +struct iommufd_viommu_ops; + +struct iommufd_viommu { + struct iommufd_object obj; + struct iommufd_ctx *ictx; + struct iommu_device *iommu_dev; + struct iommufd_hwpt_paging *hwpt; + const struct iommufd_viommu_ops *ops; + struct xarray vdevs; + unsigned int type; +}; + +struct arm_vsmmu { + struct iommufd_viommu core; + struct arm_smmu_device *smmu; + struct arm_smmu_domain___2 *s2_parent; + u16 vmid; +}; + +struct armada8k_pcie { + struct dw_pcie *pci; + struct clk *clk; + struct clk *clk_reg; + struct phy *phy[4]; + unsigned int phy_count; +}; + +struct armada_37xx_pin_group; + +struct armada_37xx_pin_data { + u8 nr_pins; + char *name; + struct armada_37xx_pin_group *groups; + int ngroups; +}; + +struct armada_37xx_pin_group { + const char *name; + unsigned int start_pin; + unsigned int npins; + u32 reg_mask; + u32 val[3]; + unsigned int extra_pin; + unsigned int extra_npins; + const char *funcs[3]; + unsigned int *pins; +}; + +struct pinctrl_pin_desc; + +struct pinctrl_ops; + +struct pinmux_ops; + +struct pinconf_ops; + +struct pinconf_generic_params; + +struct pin_config_item; + +struct pinctrl_desc { + const char *name; + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct pinctrl_ops *pctlops; + const struct pinmux_ops *pmxops; + const struct pinconf_ops *confops; + struct module *owner; + unsigned int num_custom_params; + const struct pinconf_generic_params *custom_params; + const struct pin_config_item *custom_conf_items; + bool link_consumers; +}; + +struct armada_37xx_pm_state { + u32 out_en_l; + u32 out_en_h; + u32 out_val_l; + u32 out_val_h; + u32 irq_en_l; + u32 irq_en_h; + u32 irq_pol_l; + u32 irq_pol_h; + u32 selection; +}; + +struct armada_37xx_pmx_func; + +struct armada_37xx_pinctrl { + struct regmap *regmap; + void *base; + const struct armada_37xx_pin_data *data; + struct device *dev; + struct gpio_chip gpio_chip; + raw_spinlock_t irq_lock; + struct pinctrl_desc pctl; + struct pinctrl_dev *pctl_dev; + struct armada_37xx_pin_group *groups; + unsigned int ngroups; + struct armada_37xx_pmx_func *funcs; + unsigned int nfuncs; + struct armada_37xx_pm_state pm; +}; + +struct armada_37xx_pmx_func { + const char *name; + const char **groups; + unsigned int ngroups; +}; + +struct armada_thermal_priv; + +struct armada_drvdata { + enum drvtype type; + union { + struct armada_thermal_priv *priv; + struct thermal_zone_device *tz; + } data; +}; + +struct armada_thermal_data { + void (*init)(struct platform_device *, struct armada_thermal_priv *); + s64 coef_b; + s64 coef_m; + u32 coef_div; + bool inverted; + bool signed_sample; + unsigned int temp_shift; + unsigned int temp_mask; + unsigned int thresh_shift; + unsigned int hyst_shift; + unsigned int hyst_mask; + u32 is_valid_bit; + unsigned int syscon_control0_off; + unsigned int syscon_control1_off; + unsigned int syscon_status_off; + unsigned int dfx_irq_cause_off; + unsigned int dfx_irq_mask_off; + unsigned int dfx_overheat_irq; + unsigned int dfx_server_irq_mask_off; + unsigned int dfx_server_irq_en; + unsigned int cpu_nr; +}; + +struct armada_thermal_priv { + struct device *dev; + struct regmap *syscon; + char zone_name[20]; + struct mutex update_lock; + struct armada_thermal_data *data; + struct thermal_zone_device *overheat_sensor; + int interrupt_source; + int current_channel; + long int current_threshold; + long int current_hysteresis; +}; + +struct armada_thermal_sensor { + struct armada_thermal_priv *priv; + int id; +}; + +struct armv8pmu_probe_info { + struct arm_pmu *pmu; + bool present; +}; + +struct arphdr { + __be16 ar_hrd; + __be16 ar_pro; + unsigned char ar_hln; + unsigned char ar_pln; + __be16 ar_op; +}; + +struct sockaddr { + sa_family_t sa_family; + union { + char sa_data_min[14]; + struct { + struct {} __empty_sa_data; + char sa_data[0]; + }; + }; +}; + +struct arpreq { + struct sockaddr arp_pa; + struct sockaddr arp_ha; + int arp_flags; + struct sockaddr arp_netmask; + char arp_dev[16]; +}; + +struct trace_array; + +struct trace_array_cpu; + +struct array_buffer { + struct trace_array *tr; + struct trace_buffer *buffer; + struct trace_array_cpu *data; + u64 time_start; + int cpu; +}; + +struct as3711 { + struct device *dev; + struct regmap *regmap; +}; + +struct as3711_bl_pdata { + bool su1_fb; + int su1_max_uA; + bool su2_fb; + int su2_max_uA; + enum as3711_su2_feedback su2_feedback; + enum as3711_su2_fbprot su2_fbprot; + bool su2_auto_curr1; + bool su2_auto_curr2; + bool su2_auto_curr3; +}; + +struct regulator_init_data; + +struct as3711_regulator_pdata { + struct regulator_init_data *init_data[12]; +}; + +struct as3711_platform_data { + struct as3711_regulator_pdata regulator; + struct as3711_bl_pdata backlight; +}; + +struct regmap_irq_chip_data; + +struct as3722 { + struct device *dev; + struct regmap *regmap; + int chip_irq; + long unsigned int irq_flags; + bool en_intern_int_pullup; + bool en_intern_i2c_pullup; + bool en_ac_ok_pwr_on; + struct regmap_irq_chip_data *irq_data; +}; + +struct as3722_gpio_pin_control { + unsigned int mode_prop; + int io_function; +}; + +struct as3722_pin_function; + +struct as3722_pingroup; + +struct as3722_pctrl_info { + struct device *dev; + struct pinctrl_dev *pctl; + struct as3722 *as3722; + struct gpio_chip gpio_chip; + int pins_current_opt[8]; + const struct as3722_pin_function *functions; + unsigned int num_functions; + const struct as3722_pingroup *pin_groups; + int num_pin_groups; + const struct pinctrl_pin_desc *pins; + unsigned int num_pins; + struct as3722_gpio_pin_control gpio_control[8]; +}; + +struct as3722_pin_function { + const char *name; + const char * const *groups; + unsigned int ngroups; + int mux_option; +}; + +struct as3722_pingroup { + const char *name; + const unsigned int pins[1]; + unsigned int npins; +}; + +struct as3722_poweroff { + struct device *dev; + struct as3722 *as3722; +}; + +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 assoc_array_ptr; + +struct assoc_array { + struct assoc_array_ptr *root; + long unsigned int nr_leaves_on_tree; +}; + +struct assoc_array_node; + +struct assoc_array_delete_collapse_context { + struct assoc_array_node *node; + const void *skip_leaf; + int slot; +}; + +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 int 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_node { + struct assoc_array_ptr *back_pointer; + u8 parent_slot; + struct assoc_array_ptr *slots[16]; + long unsigned int nr_leaves_on_branch; +}; + +struct assoc_array_ops { + long unsigned int (*get_key_chunk)(const void *, int); + long unsigned int (*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_shortcut { + struct assoc_array_ptr *back_pointer; + int parent_slot; + int skip_to_level; + struct assoc_array_ptr *next_node; + long unsigned int index_key[0]; +}; + +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; + long unsigned int sc_segments; + long unsigned int dissimilarity; + } wrong_shortcut; +}; + +struct asym_cap_data { + struct list_head link; + struct callback_head rcu; + long unsigned int capacity; + long unsigned int cpus[0]; +}; + +struct asymmetric_key_id { + short unsigned int len; + unsigned char data[0]; +}; + +struct asymmetric_key_ids { + void *id[3]; +}; + +struct key_preparsed_payload; + +struct asymmetric_key_parser { + struct list_head link; + struct module *owner; + const char *name; + int (*parse)(struct key_preparsed_payload *); +}; + +struct key; + +struct kernel_pkey_params; + +struct kernel_pkey_query; + +struct public_key_signature; + +struct asymmetric_key_subtype { + struct module *owner; + const char *name; + short unsigned int name_len; + void (*describe)(const struct key *, struct seq_file *); + void (*destroy)(void *, void *); + int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *); + int (*eds_op)(struct kernel_pkey_params *, const void *, void *); + int (*verify_signature)(const struct key *, const struct public_key_signature *); +}; + +struct usb_dev_state; + +struct pid; + +struct urb; + +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 *userbuffer; + void *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 async_domain { + struct list_head pending; + unsigned int registered: 1; +}; + +typedef void (*async_func_t)(void *, async_cookie_t); + +struct async_entry { + struct list_head domain_list; + struct list_head global_list; + struct work_struct work; + async_cookie_t cookie; + async_func_t func; + void *data; + struct async_domain *domain; +}; + +struct io_poll { + struct file *file; + struct wait_queue_head *head; + __poll_t events; + int retries; + struct wait_queue_entry wait; +}; + +struct async_poll { + struct io_poll poll; + struct io_poll *double_poll; +}; + +struct async_scan_data { + struct list_head list; + struct Scsi_Host *shost; + struct completion prev_finished; +}; + +struct ata_acpi_drive { + u32 pio; + u32 dma; +}; + +struct ata_acpi_gtf { + u8 tf[7]; +}; + +struct ata_acpi_gtm { + struct ata_acpi_drive drive[2]; + u32 flags; +}; + +struct ata_device; + +struct ata_acpi_hotplug_context { + struct acpi_hotplug_context hp; + union { + struct ata_port *ap; + struct ata_device *dev; + } data; +}; + +struct ata_bmdma_prd { + __le32 addr; + __le32 flags_len; +}; + +struct ata_cdl { + u8 desc_log_buf[512]; + u8 ncq_sense_log_buf[1024]; +}; + +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_dev_quirks_entry { + const char *model_num; + const char *model_rev; + unsigned int quirks; +}; + +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 scsi_device; + +struct ata_device { + struct ata_link *link; + unsigned int devno; + unsigned int quirks; + long unsigned int flags; + struct scsi_device *sdev; + void *private_data; + union acpi_object *gtf_cache; + unsigned int gtf_filter; + void *zpodd; + struct device tdev; + u64 n_sectors; + u64 n_native_sectors; + unsigned int class; + long unsigned int unpark_deadline; + u8 pio_mode; + u8 dma_mode; + u8 xfer_mode; + unsigned int xfer_shift; + unsigned int multi_count; + unsigned int max_sectors; + unsigned int cdb_len; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + u16 cylinders; + u16 heads; + u16 sectors; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + union { + u16 id[256]; + u32 gscr[128]; + }; + u8 devslp_timing[8]; + u8 ncq_send_recv_cmds[20]; + u8 ncq_non_data_cmds[64]; + u32 zac_zoned_cap; + u32 zac_zones_optimal_open; + u32 zac_zones_optimal_nonseq; + u32 zac_zones_max_open; + struct ata_cpr_log *cpr_log; + struct ata_cdl *cdl; + int spdn_cnt; + struct ata_ering ering; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u8 sector_buf[512]; +}; + +struct ata_eh_cmd_timeout_ent { + const u8 *commands; + const unsigned int *timeouts; +}; + +struct ata_eh_info { + struct ata_device *dev; + u32 serror; + unsigned int err_mask; + unsigned int action; + unsigned int dev_action[2]; + unsigned int flags; + unsigned int probe_mask; + char desc[80]; + int desc_len; +}; + +struct ata_eh_context { + struct ata_eh_info i; + int tries[2]; + int cmd_timeout_idx[16]; + unsigned int classes[2]; + unsigned int did_probe_mask; + unsigned int unloaded_mask; + unsigned int saved_ncq_enabled; + u8 saved_xfer_mode[2]; + long unsigned int last_reset; +}; + +struct ata_force_param { + const char *name; + u8 cbl; + u8 spd_limit; + unsigned int xfer_mask; + unsigned int quirk_on; + unsigned int quirk_off; + unsigned int pflags_on; + u16 lflags_on; + u16 lflags_off; +}; + +struct ata_force_ent { + int port; + int device; + struct ata_force_param param; +}; + +struct ata_port_operations; + +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; + long unsigned int flags; + struct kref kref; + struct mutex eh_mutex; + struct task_struct *eh_owner; + struct ata_port *simplex_claimed; + struct ata_port *ports[0]; +}; + +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 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_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_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]; + long unsigned int last_lpm_change; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct delayed_work { + struct work_struct work; + struct timer_list timer; + struct workqueue_struct *wq; + int cpu; +}; + +struct ata_taskfile { + long unsigned int flags; + u8 protocol; + u8 ctl; + u8 hob_feature; + u8 hob_nsect; + u8 hob_lbal; + u8 hob_lbam; + u8 hob_lbah; + union { + u8 error; + u8 feature; + }; + u8 nsect; + u8 lbal; + u8 lbam; + u8 lbah; + u8 device; + union { + u8 status; + u8 command; + }; + u32 auxiliary; +}; + +struct scatterlist { + long unsigned int page_link; + unsigned int offset; + unsigned int length; + dma_addr_t dma_address; + unsigned int dma_length; + unsigned int dma_flags; +}; + +struct ata_queued_cmd; + +typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *); + +struct scsi_cmnd; + +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]; + long unsigned int 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_port_stats { + long unsigned int unhandled_irq; + long unsigned int idle_irq; + long unsigned int rw_reqbuf; +}; + +struct ata_port { + struct Scsi_Host *scsi_host; + struct ata_port_operations *ops; + spinlock_t *lock; + long unsigned int flags; + unsigned int pflags; + unsigned int print_id; + unsigned int port_no; + struct ata_ioports ioaddr; + u8 ctl; + u8 last_ctl; + struct ata_link *sff_pio_task_link; + struct delayed_work sff_pio_task; + struct ata_bmdma_prd *bmdma_prd; + dma_addr_t bmdma_prd_dma; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + unsigned int cbl; + struct ata_queued_cmd qcmd[33]; + u64 qc_active; + int nr_active_links; + long: 64; + long: 64; + struct ata_link link; + struct ata_link *slave_link; + int nr_pmp_links; + struct ata_link *pmp_link; + struct ata_link *excl_link; + struct ata_port_stats stats; + struct ata_host *host; + struct device *dev; + struct device tdev; + struct mutex scsi_scan_mutex; + struct delayed_work hotplug_task; + struct delayed_work scsi_rescan_task; + unsigned int hsm_task_state; + struct list_head eh_done_q; + wait_queue_head_t eh_wait_q; + int eh_tries; + struct completion park_req_pending; + pm_message_t pm_mesg; + enum ata_lpm_policy target_lpm_policy; + struct timer_list fastdrain_timer; + unsigned int fastdrain_cnt; + async_cookie_t cookie; + int em_message_type; + void *private_data; + struct ata_acpi_gtm __acpi_init_gtm; + long: 64; + long: 64; + long: 64; +}; + +struct ata_port_info { + long unsigned int flags; + long unsigned int link_flags; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + struct ata_port_operations *port_ops; + void *private_data; +}; + +typedef int (*ata_prereset_fn_t)(struct ata_link *, long unsigned int); + +typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, long unsigned int); + +typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); + +struct ata_port_operations { + int (*qc_defer)(struct ata_queued_cmd *); + int (*check_atapi_dma)(struct ata_queued_cmd *); + enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *); + unsigned int (*qc_issue)(struct ata_queued_cmd *); + void (*qc_fill_rtf)(struct ata_queued_cmd *); + void (*qc_ncq_fill_rtf)(struct ata_port *, u64); + int (*cable_detect)(struct ata_port *); + unsigned int (*mode_filter)(struct ata_device *, unsigned int); + void (*set_piomode)(struct ata_port *, struct ata_device *); + void (*set_dmamode)(struct ata_port *, struct ata_device *); + int (*set_mode)(struct ata_link *, struct ata_device **); + unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, __le16 *); + void (*dev_config)(struct ata_device *); + void (*freeze)(struct ata_port *); + void (*thaw)(struct ata_port *); + ata_prereset_fn_t prereset; + ata_reset_fn_t softreset; + ata_reset_fn_t hardreset; + ata_postreset_fn_t postreset; + ata_prereset_fn_t pmp_prereset; + ata_reset_fn_t pmp_softreset; + ata_reset_fn_t pmp_hardreset; + ata_postreset_fn_t pmp_postreset; + void (*error_handler)(struct ata_port *); + void (*lost_interrupt)(struct ata_port *); + void (*post_internal_cmd)(struct ata_queued_cmd *); + void (*sched_eh)(struct ata_port *); + void (*end_eh)(struct ata_port *); + int (*scr_read)(struct ata_link *, unsigned int, u32 *); + int (*scr_write)(struct ata_link *, unsigned int, u32); + void (*pmp_attach)(struct ata_port *); + void (*pmp_detach)(struct ata_port *); + int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int); + int (*port_suspend)(struct ata_port *, pm_message_t); + int (*port_resume)(struct ata_port *); + int (*port_start)(struct ata_port *); + void (*port_stop)(struct ata_port *); + void (*host_stop)(struct ata_host *); + void (*sff_dev_select)(struct ata_port *, unsigned int); + void (*sff_set_devctl)(struct ata_port *, u8); + u8 (*sff_check_status)(struct ata_port *); + u8 (*sff_check_altstatus)(struct ata_port *); + void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *); + void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *); + void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *); + unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int); + void (*sff_irq_on)(struct ata_port *); + bool (*sff_irq_check)(struct ata_port *); + void (*sff_irq_clear)(struct ata_port *); + void (*sff_drain_fifo)(struct ata_queued_cmd *); + void (*bmdma_setup)(struct ata_queued_cmd *); + void (*bmdma_start)(struct ata_queued_cmd *); + void (*bmdma_stop)(struct ata_queued_cmd *); + u8 (*bmdma_status)(struct ata_port *); + ssize_t (*em_show)(struct ata_port *, char *); + ssize_t (*em_store)(struct ata_port *, const char *, size_t); + ssize_t (*sw_activity_show)(struct ata_device *, char *); + ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity); + ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t); + const struct ata_port_operations *inherits; +}; + +struct ata_show_ering_arg { + char *buf; + int written; +}; + +struct ata_timing { + short unsigned int mode; + short unsigned int setup; + short unsigned int act8b; + short unsigned int rec8b; + short unsigned int cyc8b; + short unsigned int active; + short unsigned int recover; + short unsigned int dmack_hold; + short unsigned int cycle; + short unsigned int udma; +}; + +struct ata_xfer_ent { + int shift; + int bits; + u8 base; +}; + +struct ate_acpi_oem_info { + char oem_id[7]; + char oem_table_id[9]; + u32 oem_revision; +}; + +struct ps2dev; + +typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); + +typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); + +struct serio; + +struct ps2dev { + struct serio *serio; + struct mutex cmd_mutex; + wait_queue_head_t wait; + long unsigned int flags; + u8 cmdbuf[8]; + u8 cmdcnt; + u8 nak; + ps2_pre_receive_handler_t pre_receive_handler; + ps2_receive_handler_t receive_handler; +}; + +struct vivaldi_data { + u32 function_row_physmap[24]; + unsigned int num_function_row_keys; +}; + +struct atkbd { + struct ps2dev ps2dev; + struct input_dev *dev; + char name[64]; + char phys[32]; + short unsigned int id; + short unsigned int keycode[512]; + long unsigned int 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; + long unsigned int xl_bit; + unsigned int last; + long unsigned int time; + long unsigned int err_count; + struct delayed_work event_work; + long unsigned int event_jiffies; + long unsigned int event_mask; + struct mutex mutex; + struct vivaldi_data vdata; +}; + +struct atomic_notifier_head { + spinlock_t lock; + struct notifier_block *head; +}; + +struct attr_resp { + u32 attr[1]; +}; + +struct attribute_group { + const char *name; + umode_t (*is_visible)(struct kobject *, struct attribute *, int); + umode_t (*is_bin_visible)(struct kobject *, const struct bin_attribute *, int); + size_t (*bin_size)(struct kobject *, const struct bin_attribute *, int); + struct attribute **attrs; + union { + struct bin_attribute **bin_attrs; + const struct bin_attribute * const *bin_attrs_new; + }; +}; + +struct audit_aux_data { + struct audit_aux_data *next; + int type; +}; + +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_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 lsm_prop_selinux { + u32 secid; +}; + +struct smack_known; + +struct lsm_prop_smack { + struct smack_known *skp; +}; + +struct lsm_prop_apparmor { + struct aa_label *label; +}; + +struct lsm_prop_bpf { + u32 secid; +}; + +struct lsm_prop { + struct lsm_prop_selinux selinux; + struct lsm_prop_smack smack; + struct lsm_prop_apparmor apparmor; + struct lsm_prop_bpf bpf; +}; + +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]; + struct lsm_prop target_ref[16]; + char target_comm[256]; + int pid_count; +}; + +struct timespec64 { + time64_t tv_sec; + long int tv_nsec; +}; + +struct audit_stamp { + struct timespec64 ctime; + unsigned int serial; +}; + +struct audit_context; + +struct audit_buffer { + struct sk_buff *skb; + struct sk_buff_head skb_list; + struct audit_context *ctx; + struct audit_stamp stamp; + gfp_t gfp_mask; +}; + +struct audit_cache { + const struct cred *ad_subj_cred; + u64 ktime_ns_expiration[41]; +}; + +struct audit_tree; + +struct audit_node { + struct list_head list; + struct audit_tree *owner; + unsigned int index; +}; + +struct fsnotify_mark; + +struct audit_chunk { + struct list_head hash; + long unsigned int 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 filename; + +struct audit_names { + struct list_head list; + struct filename *name; + int name_len; + bool hidden; + long unsigned int ino; + dev_t dev; + umode_t mode; + kuid_t uid; + kgid_t gid; + dev_t rdev; + struct lsm_prop oprop; + struct audit_cap_data fcap; + unsigned int fcap_ver; + unsigned char type; + bool should_free; +}; + +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 open_how { + __u64 flags; + __u64 mode; + __u64 resolve; +}; + +struct audit_ntp_val { + long long int oldval; + long long int newval; +}; + +struct audit_ntp_data { + struct audit_ntp_val vals[6]; +}; + +struct audit_proctitle { + int len; + char *value; +}; + +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; + struct audit_stamp stamp; + int major; + int uring_op; + long unsigned int argv[4]; + long int 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; + long unsigned int personality; + int arch; + pid_t target_pid; + kuid_t target_auid; + kuid_t target_uid; + unsigned int target_sessionid; + struct lsm_prop target_ref; + 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 int args[6]; + } socketcall; + struct { + kuid_t uid; + kgid_t gid; + umode_t mode; + struct lsm_prop oprop; + int has_perm; + uid_t perm_uid; + gid_t perm_gid; + umode_t perm_mode; + long unsigned int qbytes; + } ipc; + struct { + mqd_t mqdes; + struct mq_attr mqstat; + } mq_getsetattr; + struct { + mqd_t mqdes; + int sigev_signo; + } mq_notify; + struct { + mqd_t mqdes; + size_t msg_len; + unsigned int msg_prio; + struct timespec64 abs_timeout; + } mq_sendrecv; + struct { + int oflag; + umode_t mode; + struct mq_attr attr; + } mq_open; + struct { + pid_t pid; + struct audit_cap_data cap; + } capset; + struct { + int fd; + int flags; + } mmap; + struct open_how openat2; + struct { + int argc; + } execve; + struct { + char *name; + } module; + struct { + struct audit_ntp_data ntp_data; + struct timespec64 tk_injoffset; + } time; + }; + int fds[2]; + struct audit_proctitle proctitle; +}; + +struct audit_ctl_mutex { + struct mutex lock; + void *owner; +}; + +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_entry { + struct list_head list; + struct callback_head rcu; + struct audit_krule rule; +}; + +struct audit_features { + __u32 vers; + __u32 mask; + __u32 features; + __u32 lock; +}; + +struct audit_field { + u32 type; + union { + u32 val; + kuid_t uid; + kgid_t gid; + struct { + char *lsm_str; + void *lsm_rule; + }; + }; + u32 op; +}; + +struct fsnotify_group; + +struct fsnotify_mark_connector; + +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 audit_fsnotify_mark { + dev_t dev; + long unsigned int ino; + char *path; + struct fsnotify_mark mark; + struct audit_krule *rule; +}; + +struct audit_net { + struct sock *sk; +}; + +struct audit_netlink_list { + __u32 portid; + struct net *net; + struct sk_buff_head q; +}; + +struct audit_nfcfgop_tab { + enum audit_nfcfgop op; + const char *s; +}; + +struct audit_parent { + struct list_head watches; + struct fsnotify_mark mark; +}; + +struct audit_reply { + __u32 portid; + struct net *net; + struct sk_buff *skb; +}; + +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_sig_info { + uid_t uid; + pid_t pid; + char ctx[0]; +}; + +struct audit_status { + __u32 mask; + __u32 enabled; + __u32 failure; + __u32 pid; + __u32 rate_limit; + __u32 backlog_limit; + __u32 lost; + __u32 backlog; + union { + __u32 version; + __u32 feature_bitmap; + }; + __u32 backlog_wait_time; + __u32 backlog_wait_time_actual; +}; + +struct 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_tree_refs { + struct audit_tree_refs *next; + struct audit_chunk *c[31]; +}; + +struct audit_tty_status { + __u32 enabled; + __u32 log_passwd; +}; + +struct audit_watch { + refcount_t count; + dev_t dev; + char *path; + long unsigned int ino; + struct audit_parent *parent; + struct list_head wlist; + struct list_head rules; +}; + +struct auditd_connection { + struct pid *pid; + u32 portid; + struct net *net; + struct callback_head rcu; +}; + +struct auth_cred { + const struct cred *cred; + const char *principal; +}; + +struct auth_ops; + +struct auth_domain { + struct kref ref; + struct hlist_node hash; + char *name; + struct auth_ops *flavour; + struct callback_head callback_head; +}; + +struct svc_rqst; + +struct auth_ops { + char *name; + struct module *owner; + int flavour; + enum svc_auth_status (*accept)(struct svc_rqst *); + int (*release)(struct svc_rqst *); + void (*domain_release)(struct auth_domain *); + enum svc_auth_status (*set_client)(struct svc_rqst *); + rpc_authflavor_t (*pseudoflavor)(struct svc_rqst *); +}; + +struct auto_mode_param { + int qp_type; +}; + +struct auto_movable_group_stats { + long unsigned int movable_pages; + long unsigned int req_kernel_early_pages; +}; + +struct auto_movable_stats { + long unsigned int kernel_early_pages; + long unsigned int movable_pages; +}; + +struct task_group; + +struct autogroup { + struct kref kref; + struct task_group *tg; + struct rw_semaphore lock; + long unsigned int id; + int nice; +}; + +struct automaton_wwnr { + char *state_names[2]; + char *event_names[3]; + unsigned char function[6]; + unsigned char initial_state; + bool final_states[2]; +}; + +struct auxiliary_device { + struct device dev; + const char *name; + u32 id; + struct { + struct xarray irqs; + struct mutex lock; + bool irq_dir_exists; + } sysfs; +}; + +struct auxiliary_device_id { + char name[32]; + kernel_ulong_t driver_data; +}; + +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_irq_info { + struct device_attribute sysfs_attr; + char name[11]; +}; + +struct av_decision { + u32 allowed; + u32 auditallow; + u32 auditdeny; + u32 seqno; + u32 flags; +}; + +struct hlist_head { + struct hlist_node *first; +}; + +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 avc_cache_stats { + unsigned int lookups; + unsigned int misses; + unsigned int allocations; + unsigned int reclaims; + unsigned int frees; +}; + +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 extended_perms_data; + +struct extended_perms_decision { + u8 used; + u8 driver; + u8 base_perm; + struct extended_perms_data *allowed; + struct extended_perms_data *auditallow; + struct extended_perms_data *dontaudit; +}; + +struct avc_xperms_decision_node { + struct extended_perms_decision xpd; + struct list_head xpd_list; +}; + +struct extended_perms_data { + u32 p[8]; +}; + +struct extended_perms { + u16 len; + u8 base_perms; + struct extended_perms_data drivers; +}; + +struct avc_xperms_node { + struct extended_perms xp; + struct list_head xpd_head; +}; + +struct avtab_node; + +struct avtab { + struct avtab_node **htable; + u32 nel; + u32 nslot; + u32 mask; +}; + +struct avtab_extended_perms; + +struct avtab_datum { + union { + u32 data; + struct avtab_extended_perms *xperms; + } u; +}; + +struct avtab_extended_perms { + u8 specified; + u8 driver; + struct extended_perms_data perms; +}; + +struct avtab_key { + u16 source_type; + u16 target_type; + u16 target_class; + u16 specified; +}; + +struct avtab_node { + struct avtab_key key; + struct avtab_datum datum; + struct avtab_node *next; +}; + +struct ctl_table_header; + +struct ax25_dev { + struct list_head list; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct net_device *forward; + struct ctl_table_header *sysheader; + int values[14]; + ax25_dama_info dama; + refcount_t refcount; + bool device_up; + struct callback_head rcu; +}; + +struct backing_aio { + struct kiocb iocb; + refcount_t ref; + struct kiocb *orig_iocb; + void (*end_write)(struct kiocb *, ssize_t); + struct work_struct work; + long int res; +}; + +struct percpu_counter { + raw_spinlock_t lock; + s64 count; + struct list_head list; + s32 *counters; +}; + +struct fprop_local_percpu { + struct percpu_counter events; + unsigned int period; + raw_spinlock_t lock; +}; + +struct percpu_ref_data; + +struct percpu_ref { + long unsigned int percpu_count_ptr; + struct percpu_ref_data *data; +}; + +struct backing_dev_info; + +struct cgroup_subsys_state; + +struct bdi_writeback { + struct backing_dev_info *bdi; + long unsigned int state; + long unsigned int 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]; + long unsigned int bw_time_stamp; + long unsigned int dirtied_stamp; + long unsigned int written_stamp; + long unsigned int write_bandwidth; + long unsigned int avg_write_bandwidth; + long unsigned int dirty_ratelimit; + long unsigned int balanced_dirty_ratelimit; + struct fprop_local_percpu completions; + int dirty_exceeded; + enum wb_reason start_all_reason; + spinlock_t work_lock; + struct list_head work_list; + struct delayed_work dwork; + struct delayed_work bw_dwork; + struct list_head bdi_node; + struct percpu_ref refcnt; + struct fprop_local_percpu memcg_completions; + struct cgroup_subsys_state *memcg_css; + struct cgroup_subsys_state *blkcg_css; + struct list_head memcg_node; + struct list_head blkcg_node; + struct list_head b_attached; + struct list_head offline_node; + union { + struct work_struct release_work; + struct callback_head rcu; + }; +}; + +struct backing_dev_info { + u64 id; + struct rb_node rb_node; + struct list_head bdi_list; + long unsigned int ra_pages; + long unsigned int io_pages; + struct kref refcnt; + unsigned int capabilities; + unsigned int min_ratio; + unsigned int max_ratio; + unsigned int max_prop_frac; + atomic_long_t tot_write_bandwidth; + long unsigned int last_bdp_sleep; + struct bdi_writeback wb; + struct list_head wb_list; + struct xarray cgwb_tree; + struct mutex cgwb_release_mutex; + struct rw_semaphore wb_switch_rwsem; + wait_queue_head_t wb_waitq; + struct device *dev; + char dev_name[64]; + struct device *owner; + struct timer_list laptop_mode_wb_timer; + struct dentry *debug_dir; +}; + +struct file_ra_state { + long unsigned int start; + unsigned int size; + unsigned int async_size; + unsigned int ra_pages; + unsigned int mmap_miss; + loff_t prev_pos; +}; + +struct fown_struct; + +struct file { + file_ref_t f_ref; + spinlock_t f_lock; + fmode_t f_mode; + const struct file_operations *f_op; + struct address_space *f_mapping; + void *private_data; + struct inode *f_inode; + unsigned int f_flags; + unsigned int f_iocb_flags; + const struct cred *f_cred; + struct path f_path; + union { + struct mutex f_pos_lock; + u64 f_pipe; + }; + loff_t f_pos; + void *f_security; + struct fown_struct *f_owner; + errseq_t f_wb_err; + errseq_t f_sb_err; + struct hlist_head *f_ep; + union { + struct callback_head f_task_work; + struct llist_node f_llist; + struct file_ra_state f_ra; + freeptr_t f_freeptr; + }; +}; + +struct backing_file { + struct file file; + union { + struct path user_path; + freeptr_t bf_freeptr; + }; +}; + +struct backing_file_ctx { + const struct cred *cred; + void (*accessed)(struct file *); + void (*end_write)(struct kiocb *, ssize_t); +}; + +struct backlight_properties { + int brightness; + int max_brightness; + int power; + enum backlight_type type; + unsigned int state; + enum backlight_scale scale; +}; + +struct backlight_ops; + +struct backlight_device { + struct backlight_properties props; + struct mutex update_lock; + struct mutex ops_lock; + const struct backlight_ops *ops; + struct notifier_block fb_notif; + struct list_head entry; + struct device dev; + bool fb_bl_on[32]; + int use_count; +}; + +struct backlight_ops { + unsigned int options; + int (*update_status)(struct backlight_device *); + int (*get_brightness)(struct backlight_device *); + bool (*controls_device)(struct backlight_device *, struct device *); +}; + +struct bpf_verifier_env; + +struct backtrack_state { + struct bpf_verifier_env *env; + u32 frame; + u32 reg_masks[8]; + u64 stack_masks[8]; +}; + +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 badblocks_context { + sector_t start; + sector_t len; + int ack; +}; + +struct badrange { + struct list_head list; + spinlock_t lock; +}; + +struct badrange_entry { + u64 start; + u64 length; + struct list_head list; +}; + +struct balance_callback { + struct balance_callback *next; + void (*func)(struct rq *); +}; + +struct balloon_dev_info { + long unsigned int isolated_pages; + spinlock_t pages_lock; + struct list_head pages; + int (*migratepage)(struct balloon_dev_info *, struct page *, struct page *, enum migrate_mode); +}; + +struct balloon_stats { + long unsigned int current_pages; + long unsigned int target_pages; + long unsigned int target_unpopulated; + long unsigned int balloon_low; + long unsigned int balloon_high; + long unsigned int total_pages; + long unsigned int schedule_delay; + long unsigned int max_schedule_delay; + long unsigned int retry_count; + long unsigned int max_retry_count; +}; + +struct batadv_unicast_packet { + __u8 packet_type; + __u8 version; + __u8 ttl; + __u8 ttvn; + __u8 dest[6]; +}; + +struct tcs_cmd; + +struct tcs_request { + enum rpmh_state state; + u32 wait_for_compl; + u32 num_cmds; + struct tcs_cmd *cmds; +}; + +struct tcs_cmd { + u32 addr; + u32 data; + u32 wait; +}; + +struct rpmh_request { + struct tcs_request msg; + struct tcs_cmd cmd[16]; + struct completion *completion; + const struct device *dev; + bool needs_free; +}; + +struct batch_cache_req { + struct list_head list; + int count; + struct rpmh_request rpm_msgs[0]; +}; + +struct batch_u16 { + u16 entropy[48]; + local_lock_t lock; + long unsigned int generation; + unsigned int position; +}; + +struct batch_u32 { + u32 entropy[24]; + local_lock_t lock; + long unsigned int generation; + unsigned int position; +}; + +struct batch_u64 { + u64 entropy[12]; + local_lock_t lock; + long unsigned int generation; + unsigned int position; +}; + +struct batch_u8 { + u8 entropy[96]; + local_lock_t lock; + long unsigned int generation; + unsigned int position; +}; + +struct bcm_db { + __le32 unit; + __le16 width; + u8 vcd; + u8 reserved; +}; + +struct bd_holder_disk { + struct list_head list; + struct kobject *holder_dir; + int refcnt; +}; + +struct gendisk; + +struct request_queue; + +struct disk_stats; + +struct blk_holder_ops; + +struct partition_meta_info; + +struct block_device { + sector_t bd_start_sect; + sector_t bd_nr_sectors; + struct gendisk *bd_disk; + struct request_queue *bd_queue; + struct disk_stats *bd_stats; + long unsigned int bd_stamp; + atomic_t __bd_flags; + dev_t bd_dev; + struct address_space *bd_mapping; + atomic_t bd_openers; + spinlock_t bd_size_lock; + void *bd_claiming; + void *bd_holder; + const struct blk_holder_ops *bd_holder_ops; + struct mutex bd_holder_lock; + int bd_holders; + struct kobject *bd_holder_dir; + atomic_t bd_fsfreeze_count; + struct mutex bd_fsfreeze_mutex; + struct partition_meta_info *bd_meta_info; + int bd_writers; + void *bd_security; + struct device bd_device; +}; + +struct posix_acl; + +struct inode_operations; + +struct super_block; + +struct file_lock_context; + +struct pipe_inode_info; + +struct cdev; + +struct fscrypt_inode_info; + +struct fsverity_info; + +struct inode { + umode_t i_mode; + short unsigned int 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; + long unsigned int i_ino; + union { + const unsigned int i_nlink; + unsigned int __i_nlink; + }; + dev_t i_rdev; + loff_t i_size; + time64_t i_atime_sec; + time64_t i_mtime_sec; + time64_t i_ctime_sec; + u32 i_atime_nsec; + u32 i_mtime_nsec; + u32 i_ctime_nsec; + u32 i_generation; + spinlock_t i_lock; + short unsigned int i_bytes; + u8 i_blkbits; + enum rw_hint i_write_hint; + blkcnt_t i_blocks; + u32 i_state; + struct rw_semaphore i_rwsem; + long unsigned int dirtied_when; + long unsigned int dirtied_time_when; + struct hlist_node i_hash; + struct list_head i_io_list; + struct bdi_writeback *i_wb; + int i_wb_frn_winner; + u16 i_wb_frn_avg_time; + u16 i_wb_frn_history; + struct list_head i_lru; + struct list_head i_sb_list; + struct list_head i_wb_list; + union { + 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; + union { + struct list_head i_devices; + int i_linklen; + }; + union { + struct pipe_inode_info *i_pipe; + struct cdev *i_cdev; + char *i_link; + unsigned int i_dir_seq; + }; + __u32 i_fsnotify_mask; + struct fsnotify_mark_connector *i_fsnotify_marks; + struct fscrypt_inode_info *i_crypt_info; + struct fsverity_info *i_verity_info; + void *i_private; +}; + +struct bdev_inode { + struct block_device bdev; + struct inode vfs_inode; +}; + +struct berlin2_avpll_channel { + struct clk_hw hw; + void *base; + u8 flags; + u8 index; +}; + +struct berlin2_avpll_vco { + struct clk_hw hw; + void *base; + u8 flags; +}; + +struct berlin2_div_map { + u16 pll_select_offs; + u16 pll_switch_offs; + u16 div_select_offs; + u16 div_switch_offs; + u16 div3_switch_offs; + u16 gate_offs; + u8 pll_select_shift; + u8 pll_switch_shift; + u8 div_select_shift; + u8 div_switch_shift; + u8 div3_switch_shift; + u8 gate_shift; +}; + +struct berlin2_div { + struct clk_hw hw; + void *base; + struct berlin2_div_map map; + spinlock_t *lock; +}; + +struct berlin2_pll_map { + const u8 vcodiv[16]; + u8 mult; + u8 fbdiv_shift; + u8 rfdiv_shift; + u8 divsel_shift; +}; + +struct berlin2_pll { + struct clk_hw hw; + void *base; + struct berlin2_pll_map map; +}; + +struct berlin_desc_function { + const char *name; + u8 muxval; +}; + +struct berlin_desc_group { + const char *name; + u8 offset; + u8 bit_width; + u8 lsb; + struct berlin_desc_function *functions; +}; + +struct berlin_pinctrl_desc; + +struct pinfunction; + +struct berlin_pinctrl { + struct regmap *regmap; + struct device *dev; + const struct berlin_pinctrl_desc *desc; + struct pinfunction *functions; + unsigned int nfunctions; + struct pinctrl_dev *pctrl_dev; +}; + +struct berlin_pinctrl_desc { + const struct berlin_desc_group *groups; + unsigned int ngroups; +}; + +struct berlin_reset_priv { + struct regmap *regmap; + struct reset_controller_dev rcdev; +}; + +struct bgl_lock { + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bgpio_pdata { + const char *label; + int base; + int ngpio; +}; + +struct bh_accounting { + int nr; + int ratelimit; +}; + +struct bh_lru { + struct buffer_head *bhs[16]; +}; + +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 binfmt_misc { + struct list_head entries; + rwlock_t entries_lock; + bool enabled; +}; + +struct bvec_iter { + sector_t bi_sector; + unsigned int bi_size; + unsigned int bi_idx; + unsigned int bi_bvec_done; +} __attribute__((packed)); + +struct bio; + +typedef void bio_end_io_t(struct bio *); + +struct bio_issue { + u64 value; +}; + +struct bio_vec { + struct page *bv_page; + unsigned int bv_len; + unsigned int bv_offset; +}; + +struct blkcg_gq; + +struct bio_crypt_ctx; + +struct bio_integrity_payload; + +struct bio_set; + +struct bio { + struct bio *bi_next; + struct block_device *bi_bdev; + blk_opf_t bi_opf; + short unsigned int bi_flags; + short unsigned int bi_ioprio; + enum rw_hint bi_write_hint; + blk_status_t bi_status; + atomic_t __bi_remaining; + struct bvec_iter bi_iter; + union { + blk_qc_t bi_cookie; + unsigned int __bi_nr_segments; + }; + bio_end_io_t *bi_end_io; + void *bi_private; + struct blkcg_gq *bi_blkg; + struct bio_issue bi_issue; + u64 bi_iocost_cost; + struct bio_crypt_ctx *bi_crypt_context; + struct bio_integrity_payload *bi_integrity; + short unsigned int bi_vcnt; + short unsigned int 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_crypto_key; + +struct bio_crypt_ctx { + const struct blk_crypto_key *bc_key; + u64 bc_dun[4]; +}; + +struct bio_fallback_crypt_ctx { + struct bio_crypt_ctx crypt_ctx; + struct bvec_iter crypt_iter; + union { + struct { + struct work_struct work; + struct bio *bio; + }; + struct { + void *bi_private_orig; + bio_end_io_t *bi_end_io_orig; + }; + }; +}; + +struct bio_integrity_payload { + struct bio *bip_bio; + struct bvec_iter bip_iter; + short unsigned int bip_vcnt; + short unsigned int bip_max_vcnt; + short unsigned int bip_flags; + u16 app_tag; + struct bvec_iter bio_iter; + struct work_struct bip_work; + struct bio_vec *bip_vec; + struct bio_vec bip_inline_vecs[0]; +}; + +struct bio_list { + struct bio *head; + struct bio *tail; +}; + +struct iovec { + void *iov_base; + __kernel_size_t iov_len; +}; + +struct kvec; + +struct folio_queue; + +struct iov_iter { + u8 iter_type; + bool nofault; + bool data_source; + size_t iov_offset; + union { + struct iovec __ubuf_iovec; + struct { + union { + const struct iovec *__iov; + const struct kvec *kvec; + const struct bio_vec *bvec; + const struct folio_queue *folioq; + struct xarray *xarray; + void *ubuf; + }; + size_t count; + }; + }; + union { + long unsigned int nr_segs; + u8 folioq_slot; + loff_t xarray_start; + }; +}; + +struct bio_map_data { + bool is_our_pages: 1; + bool is_null_mapped: 1; + struct iov_iter iter; + struct iovec iov[0]; +}; + +struct bio_post_read_ctx { + struct bio *bio; + struct work_struct work; + unsigned int cur_step; + unsigned int enabled_steps; +}; + +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_set { + struct kmem_cache *bio_slab; + unsigned int front_pad; + struct bio_alloc_cache *cache; + mempool_t bio_pool; + mempool_t bvec_pool; + mempool_t bio_integrity_pool; + mempool_t bvec_integrity_pool; + unsigned int back_pad; + spinlock_t rescue_lock; + struct bio_list rescue_list; + struct work_struct rescue_work; + struct workqueue_struct *rescue_workqueue; + struct hlist_node cpuhp_dead; +}; + +struct bio_slab { + struct kmem_cache *slab; + unsigned int slab_ref; + unsigned int slab_size; + char name[12]; +}; + +struct biovec_slab { + int nr_vecs; + char *name; + struct kmem_cache *slab; +}; + +struct bitmap_page; + +struct bitmap_counts { + spinlock_t lock; + struct bitmap_page *bp; + long unsigned int pages; + long unsigned int missing_pages; + long unsigned int chunkshift; + long unsigned int chunks; +}; + +struct bitmap_storage { + struct file *file; + struct page *sb_page; + long unsigned int sb_index; + struct page **filemap; + long unsigned int *filemap_attr; + long unsigned int file_pages; + long unsigned int bytes; +}; + +struct mddev; + +struct bitmap { + struct bitmap_counts counts; + struct mddev *mddev; + __u64 events_cleared; + int need_sync; + struct bitmap_storage storage; + long unsigned int flags; + int allclean; + atomic_t behind_writes; + long unsigned int behind_writes_used; + long unsigned int daemon_lastrun; + long unsigned int 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 md_bitmap_stats; + +struct bitmap_operations { + bool (*enabled)(struct mddev *); + int (*create)(struct mddev *, int); + int (*resize)(struct mddev *, sector_t, int, bool); + int (*load)(struct mddev *); + void (*destroy)(struct mddev *); + void (*flush)(struct mddev *); + void (*write_all)(struct mddev *); + void (*dirty_bits)(struct mddev *, long unsigned int, long unsigned int); + void (*unplug)(struct mddev *, bool); + void (*daemon_work)(struct mddev *); + void (*start_behind_write)(struct mddev *); + void (*end_behind_write)(struct mddev *); + void (*wait_behind_writes)(struct mddev *); + int (*startwrite)(struct mddev *, sector_t, long unsigned int); + void (*endwrite)(struct mddev *, sector_t, long unsigned int); + bool (*start_sync)(struct mddev *, sector_t, sector_t *, bool); + void (*end_sync)(struct mddev *, sector_t, sector_t *); + void (*cond_end_sync)(struct mddev *, sector_t, bool); + void (*close_sync)(struct mddev *); + void (*update_sb)(void *); + int (*get_stats)(void *, struct md_bitmap_stats *); + void (*sync_with_cluster)(struct mddev *, sector_t, sector_t, sector_t, sector_t); + void * (*get_from_slot)(struct mddev *, int); + int (*copy_from_slot)(struct mddev *, int, sector_t *, sector_t *, bool); + void (*set_pages)(void *, long unsigned int); + void (*free)(void *); +}; + +struct bitmap_page { + char *map; + unsigned int hijacked: 1; + unsigned int pending: 1; + unsigned int count: 30; +}; + +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 bitmap_unplug_work { + struct work_struct work; + struct bitmap *bitmap; + struct completion *done; +}; + +struct blacklist_entry { + struct list_head next; + char *buf; +}; + +struct blake2s_state { + u32 h[8]; + u32 t[2]; + u32 f[2]; + u8 buf[64]; + unsigned int buflen; + unsigned int outlen; +}; + +struct blk_crypto_profile; + +struct blk_crypto_attr { + struct attribute attr; + ssize_t (*show)(struct blk_crypto_profile *, struct blk_crypto_attr *, char *); +}; + +struct blk_crypto_config { + enum blk_crypto_mode_num crypto_mode; + unsigned int data_unit_size; + unsigned int dun_bytes; +}; + +struct crypto_skcipher; + +struct blk_crypto_fallback_keyslot { + enum blk_crypto_mode_num crypto_mode; + struct crypto_skcipher *tfms[5]; +}; + +union blk_crypto_iv { + __le64 dun[4]; + u8 bytes[32]; +}; + +struct blk_crypto_key { + struct blk_crypto_config crypto_cfg; + unsigned int data_unit_size_bits; + unsigned int size; + u8 raw[64]; +}; + +struct blk_crypto_keyslot { + atomic_t slot_refs; + struct list_head idle_slot_node; + struct hlist_node hash_node; + const struct blk_crypto_key *key; + struct blk_crypto_profile *profile; +}; + +struct blk_crypto_kobj { + struct kobject kobj; + struct blk_crypto_profile *profile; +}; + +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_mode { + const char *name; + const char *cipher_str; + unsigned int keysize; + unsigned int ivsize; +}; + +struct blk_crypto_profile { + struct blk_crypto_ll_ops ll_ops; + unsigned int max_dun_bytes_supported; + unsigned int modes_supported[5]; + struct device *dev; + unsigned int num_slots; + struct rw_semaphore lock; + struct lock_class_key lockdep_key; + wait_queue_head_t idle_slots_wait_queue; + struct list_head idle_slots; + spinlock_t idle_slots_lock; + struct hlist_head *slot_hashtable; + unsigned int log_slot_ht_size; + struct blk_crypto_keyslot *slots; +}; + +struct blk_expired_data { + bool has_timedout_rq; + long unsigned int next; + long unsigned int timeout_start; +}; + +struct request; + +struct blk_flush_queue { + spinlock_t mq_flush_lock; + unsigned int flush_pending_idx: 1; + unsigned int flush_running_idx: 1; + blk_status_t rq_status; + long unsigned int flush_pending_since; + struct list_head flush_queue[2]; + long unsigned int flush_data_in_flight; + struct request *flush_rq; +}; + +struct blk_holder_ops { + void (*mark_dead)(struct block_device *, bool); + void (*sync)(struct block_device *); + int (*freeze)(struct block_device *); + int (*thaw)(struct block_device *); +}; + +struct blk_independent_access_range; + +struct blk_ia_range_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_independent_access_range *, char *); +}; + +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 blk_integrity { + unsigned char flags; + enum blk_integrity_checksum csum_type; + unsigned char tuple_size; + unsigned char pi_offset; + unsigned char interval_exp; + unsigned char tag_size; +}; + +struct blk_integrity_iter { + void *prot_buf; + void *data_buf; + sector_t seed; + unsigned int data_size; + short unsigned int interval; + const char *disk_name; +}; + +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_io_trace_remap { + __be32 device_from; + __be32 device_to; + __be64 sector_from; +}; + +struct blk_iou_cmd { + int res; + bool nowait; +}; + +struct blk_major_name { + struct blk_major_name *next; + int major; + char name[16]; + void (*probe)(dev_t); +}; + +struct rq_list; + +struct blk_mq_ctx; + +struct blk_mq_hw_ctx; + +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 rq_list *cached_rqs; + struct blk_mq_ctx *ctx; + struct blk_mq_hw_ctx *hctx; +}; + +struct blk_mq_ctxs; + +struct blk_mq_ctx { + struct { + spinlock_t lock; + struct list_head rq_lists[3]; + long: 64; + }; + unsigned int cpu; + short unsigned int 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_mq_ctxs { + struct kobject kobj; + struct blk_mq_ctx *queue_ctx; +}; + +struct seq_operations; + +struct blk_mq_debugfs_attr { + const char *name; + umode_t mode; + int (*show)(void *, struct seq_file *); + ssize_t (*write)(void *, const char *, size_t, loff_t *); + const struct seq_operations *seq_ops; +}; + +struct sbitmap_word; + +struct sbitmap { + unsigned int depth; + unsigned int shift; + unsigned int map_nr; + bool round_robin; + struct sbitmap_word *map; + unsigned int *alloc_hint; +}; + +typedef struct wait_queue_entry wait_queue_entry_t; + +struct blk_mq_hw_ctx { + struct { + spinlock_t lock; + struct list_head dispatch; + long unsigned int 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; + long unsigned int 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; + short unsigned int type; + short unsigned int 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 int numa_node; + unsigned int queue_num; + atomic_t nr_active; + struct hlist_node cpuhp_online; + struct hlist_node cpuhp_dead; + struct kobject kobj; + struct dentry *debugfs_dir; + struct dentry *sched_debugfs_dir; + struct list_head hctx_list; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct blk_mq_hw_ctx_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_mq_hw_ctx *, char *); +}; + +struct blk_mq_queue_data; + +struct io_comp_batch; + +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 rq_list *); + 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 elevator_type; + +struct blk_mq_qe_pair { + struct list_head node; + struct request_queue *q; + struct elevator_type *type; +}; + +struct blk_mq_queue_data { + struct request *rq; + bool last; +}; + +struct sbq_wait_state; + +struct sbitmap_queue { + struct sbitmap sb; + unsigned int wake_batch; + atomic_t wake_index; + struct sbq_wait_state *ws; + atomic_t ws_active; + unsigned int min_shallow_depth; + atomic_t completion_cnt; + atomic_t wakeup_cnt; +}; + +struct blk_mq_tags { + unsigned int nr_tags; + unsigned int nr_reserved_tags; + unsigned int active_queues; + struct sbitmap_queue bitmap_tags; + struct sbitmap_queue breserved_tags; + struct request **rqs; + struct request **static_rqs; + struct list_head page_list; + spinlock_t lock; +}; + +struct rq_list { + struct request *head; + struct request *tail; +}; + +struct blk_plug { + struct rq_list mq_list; + struct rq_list cached_rqs; + u64 cur_ktime; + short unsigned int nr_ios; + short unsigned int rq_count; + bool multiple_queues; + bool has_elevator; + struct list_head cb_list; +}; + +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 blk_queue_stats { + struct list_head callbacks; + spinlock_t lock; + int accounting; +}; + +struct blk_revalidate_zone_args { + struct gendisk *disk; + long unsigned int *conv_zones_bitmap; + unsigned int nr_zones; + unsigned int zone_capacity; + unsigned int last_zone_capacity; + sector_t sector; +}; + +struct blk_rq_stat { + u64 mean; + u64 min; + u64 max; + u32 nr_samples; + u64 batch; +}; + +struct blk_rq_wait { + struct completion done; + blk_status_t ret; +}; + +struct blkif_request_segment { + grant_ref_t gref; + uint8_t first_sect; + uint8_t last_sect; +}; + +struct blkif_request_rw { + uint8_t nr_segments; + blkif_vdev_t handle; + uint32_t _pad1; + uint64_t id; + blkif_sector_t sector_number; + struct blkif_request_segment seg[11]; +} __attribute__((packed)); + +struct blkif_request_discard { + uint8_t flag; + blkif_vdev_t _pad1; + uint32_t _pad2; + uint64_t id; + blkif_sector_t sector_number; + uint64_t nr_sectors; + uint8_t _pad3; +} __attribute__((packed)); + +struct blkif_request_other { + uint8_t _pad1; + blkif_vdev_t _pad2; + uint32_t _pad3; + uint64_t id; +} __attribute__((packed)); + +struct blkif_request_indirect { + uint8_t indirect_op; + uint16_t nr_segments; + uint32_t _pad1; + uint64_t id; + blkif_sector_t sector_number; + blkif_vdev_t handle; + uint16_t _pad2; + grant_ref_t indirect_grefs[8]; + uint32_t _pad3; +} __attribute__((packed)); + +struct blkif_request { + uint8_t operation; + union { + struct blkif_request_rw rw; + struct blkif_request_discard discard; + struct blkif_request_other other; + struct blkif_request_indirect indirect; + } u; +}; + +struct grant; + +struct blk_shadow { + struct blkif_request req; + struct request *request; + struct grant **grants_used; + struct grant **indirect_grants; + struct scatterlist *sg; + unsigned int num_sg; + enum blk_req_status status; + long unsigned int associated_id; +}; + +struct blk_stat_callback { + struct list_head list; + struct timer_list timer; + struct blk_rq_stat *cpu_stat; + int (*bucket_fn)(const struct request *); + unsigned int buckets; + struct blk_rq_stat *stat; + void (*timer_fn)(struct blk_stat_callback *); + void *data; + struct callback_head rcu; +}; + +struct rchan; + +struct blk_trace { + int trace_state; + struct rchan *rchan; + long unsigned int *sequence; + unsigned char *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_user_trace_setup { + char name[32]; + __u16 act_mask; + __u32 buf_size; + __u32 buf_nr; + __u64 start_lba; + __u64 end_lba; + __u32 pid; +}; + +struct blk_zone { + __u64 start; + __u64 len; + __u64 wp; + __u8 type; + __u8 cond; + __u8 non_seq; + __u8 reset; + __u8 resv[4]; + __u64 capacity; + __u8 reserved[24]; +}; + +struct blk_zone_range { + __u64 sector; + __u64 nr_sectors; +}; + +struct blk_zone_report { + __u64 sector; + __u32 nr_zones; + __u32 flags; + struct blk_zone zones[0]; +}; + +struct blk_zone_wplug { + struct hlist_node node; + refcount_t ref; + spinlock_t lock; + unsigned int flags; + unsigned int zone_no; + unsigned int wp_offset; + struct bio_list bio_list; + struct work_struct bio_work; + struct callback_head callback_head; + struct gendisk *disk; +}; + +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; + int nr_descendants; +}; + +struct blkcg_policy_data; + +struct llist_head; + +struct blkcg { + struct cgroup_subsys_state css; + spinlock_t lock; + refcount_t online_pin; + atomic_t congestion_count; + struct xarray blkg_tree; + struct blkcg_gq *blkg_hint; + struct hlist_head blkg_list; + struct blkcg_policy_data *cpd[6]; + struct list_head all_blkcgs_node; + struct llist_head *lhead; + char fc_app_id[129]; + struct list_head cgwb_list; +}; + +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 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 *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; +}; + +typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); + +typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); + +typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t); + +typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); + +struct cftype; + +struct blkcg_policy { + int plid; + struct cftype *dfl_cftypes; + struct cftype *legacy_cftypes; + blkcg_pol_alloc_cpd_fn *cpd_alloc_fn; + blkcg_pol_free_cpd_fn *cpd_free_fn; + blkcg_pol_alloc_pd_fn *pd_alloc_fn; + blkcg_pol_init_pd_fn *pd_init_fn; + blkcg_pol_online_pd_fn *pd_online_fn; + blkcg_pol_offline_pd_fn *pd_offline_fn; + blkcg_pol_free_pd_fn *pd_free_fn; + blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; + blkcg_pol_stat_pd_fn *pd_stat_fn; +}; + +struct blkcg_policy_data { + struct blkcg *blkcg; + int plid; +}; + +struct blkdev_dio { + union { + struct kiocb *iocb; + struct task_struct *waiter; + }; + size_t size; + atomic_t ref; + unsigned int flags; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct bio bio; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct xenbus_device; + +struct blkfront_ring_info; + +struct blkfront_info { + struct mutex mutex; + struct xenbus_device *xbdev; + struct gendisk *gd; + u16 sector_size; + unsigned int physical_sector_size; + long unsigned int vdisk_info; + int vdevice; + blkif_vdev_t handle; + enum blkif_state connected; + unsigned int nr_ring_pages; + struct request_queue *rq; + unsigned int feature_flush: 1; + unsigned int feature_fua: 1; + unsigned int feature_discard: 1; + unsigned int feature_secdiscard: 1; + unsigned int feature_persistent_parm: 1; + unsigned int feature_persistent: 1; + unsigned int bounce: 1; + unsigned int discard_granularity; + unsigned int discard_alignment; + unsigned int max_indirect_segments; + int is_ready; + struct blk_mq_tag_set tag_set; + struct blkfront_ring_info *rinfo; + unsigned int nr_rings; + unsigned int rinfo_size; + struct list_head requests; + struct bio_list bio_list; + struct list_head info_list; +}; + +struct blkif_sring; + +struct blkif_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct blkif_sring *sring; +}; + +struct gnttab_free_callback { + struct gnttab_free_callback *next; + void (*fn)(void *); + void *arg; + u16 count; +}; + +struct blkfront_ring_info { + spinlock_t ring_lock; + struct blkif_front_ring ring; + unsigned int ring_ref[16]; + unsigned int evtchn; + unsigned int irq; + struct work_struct work; + struct gnttab_free_callback callback; + struct list_head indirect_pages; + struct list_head grants; + unsigned int persistent_gnts_c; + long unsigned int shadow_free; + struct blkfront_info *dev_info; + struct blk_shadow shadow[0]; +}; + +struct blkg_conf_ctx { + char *input; + char *body; + struct block_device *bdev; + struct blkcg_gq *blkg; +}; + +struct blkg_policy_data { + struct blkcg_gq *blkg; + int plid; + bool online; +}; + +struct blkg_rwstat { + struct percpu_counter cpu_cnt[5]; + atomic64_t aux_cnt[5]; +}; + +struct blkg_rwstat_sample { + u64 cnt[5]; +}; + +struct blkif_req { + blk_status_t error; +}; + +struct blkif_response { + uint64_t id; + uint8_t operation; + int16_t status; +}; + +union blkif_sring_entry { + struct blkif_request req; + struct blkif_response rsp; +}; + +struct blkif_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union blkif_sring_entry ring[0]; +}; + +struct blkpg_ioctl_arg { + int op; + int flags; + int datalen; + void *data; +}; + +struct blkpg_partition { + long long int start; + long long int length; + int pno; + char devname[64]; + char volname[64]; +}; + +struct block_buffer { + u32 filled; + bool is_root_hash; + u8 *data; +}; + +typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); + +struct hd_geometry; + +struct pr_ops; + +struct block_device_operations { + void (*submit_bio)(struct bio *); + int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int); + int (*open)(struct gendisk *, blk_mode_t); + void (*release)(struct gendisk *); + int (*ioctl)(struct block_device *, blk_mode_t, unsigned int, long unsigned int); + int (*compat_ioctl)(struct block_device *, blk_mode_t, unsigned int, long unsigned int); + 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 *, long unsigned int); + int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *); + char * (*devnode)(struct gendisk *, umode_t *); + int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id); + struct module *owner; + const struct pr_ops *pr_ops; + int (*alternative_gpt_sector)(struct gendisk *, sector_t *); +}; + +struct blockgroup_lock { + struct bgl_lock locks[128]; +}; + +struct clk_hw_onecell_data { + unsigned int num; + struct clk_hw *hws[0]; +}; + +struct bm1880_clock_data { + void *pll_base; + void *sys_base; + struct clk_hw_onecell_data hw_data; +}; + +struct clk_div_table; + +struct bm1880_composite_clock { + unsigned int id; + const char *name; + const char *parent; + const char * const *parents; + unsigned int num_parents; + long unsigned int flags; + u32 gate_reg; + u32 mux_reg; + u32 div_reg; + s8 gate_shift; + s8 mux_shift; + s8 div_shift; + s8 div_width; + s16 div_initval; + const struct clk_div_table *table; +}; + +struct bm1880_div_clock { + unsigned int id; + const char *name; + u32 reg; + u8 shift; + u8 width; + u32 initval; + const struct clk_div_table *table; + long unsigned int flags; +}; + +struct clk_ops; + +struct clk_parent_data; + +struct clk_init_data { + const char *name; + const struct clk_ops *ops; + const char * const *parent_names; + const struct clk_parent_data *parent_data; + const struct clk_hw **parent_hws; + u8 num_parents; + long unsigned int flags; +}; + +struct bm1880_div_hw_clock { + struct bm1880_div_clock div; + void *base; + spinlock_t *lock; + struct clk_hw hw; + struct clk_init_data init; +}; + +struct bm1880_gate_clock { + unsigned int id; + const char *name; + const char *parent; + u32 gate_reg; + s8 gate_shift; + long unsigned int flags; +}; + +struct bm1880_mux_clock { + unsigned int id; + const char *name; + const char * const *parents; + s8 num_parents; + u32 reg; + s8 shift; + long unsigned int flags; +}; + +struct bm1880_pctrl_group { + const char *name; + const unsigned int *pins; + const unsigned int npins; +}; + +struct bm1880_pinconf_data { + u32 drv_bits; +}; + +struct bm1880_pinmux_function; + +struct bm1880_pinctrl { + void *base; + struct pinctrl_dev *pctrldev; + const struct bm1880_pctrl_group *groups; + unsigned int ngroups; + const struct bm1880_pinmux_function *funcs; + unsigned int nfuncs; + const struct bm1880_pinconf_data *pinconf; +}; + +struct bm1880_pinmux_function { + const char *name; + const char * const *groups; + unsigned int ngroups; + u32 mux_val; + u32 mux; + u8 mux_shift; +}; + +struct bm1880_pll_clock { + unsigned int id; + const char *name; + u32 reg; + long unsigned int flags; +}; + +struct bm1880_pll_hw_clock { + struct bm1880_pll_clock pll; + void *base; + struct clk_hw hw; + struct clk_init_data init; +}; + +struct bm_addr { + void *ce; + __be32 *ce_be; + void *ci; +}; + +struct bm_buffer { + union { + struct { + __be16 bpid; + __be16 hi; + __be32 lo; + }; + __be64 data; + }; +}; + +struct bm_mc_command; + +union bm_mc_result; + +struct bm_mc { + struct bm_mc_command *cr; + union bm_mc_result *rr; + u8 rridx; + u8 vbit; + enum { + mc_idle = 0, + mc_user = 1, + mc_hw = 2, + } state; +}; + +struct bm_mc_command { + u8 _ncw_verb; + u8 bpid; + u8 __reserved[62]; +}; + +union bm_mc_result { + struct { + u8 verb; + u8 bpid; + u8 __reserved[62]; + }; + struct bm_buffer bufs[8]; +}; + +struct bm_rcr_entry; + +struct bm_rcr { + struct bm_rcr_entry *ring; + struct bm_rcr_entry *cursor; + u8 ci; + u8 available; + u8 ithresh; + u8 vbit; + u32 busy; + enum bm_rcr_pmode pmode; + enum bm_rcr_cmode cmode; +}; + +struct bm_portal { + struct bm_addr addr; + struct bm_rcr rcr; + struct bm_mc mc; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bm_portal_config { + void *addr_virt_ce; + void *addr_virt_ci; + struct list_head list; + struct device *dev; + int cpu; + int irq; +}; + +struct bm_rcr_entry { + union { + struct { + u8 _ncw_verb; + u8 bpid; + u8 __reserved1[62]; + }; + struct bm_buffer bufs[8]; + }; +}; + +struct bman_hwerr_txt { + u32 mask; + const char *txt; +}; + +struct bman_portal; + +struct bman_pool { + u32 bpid; + struct bman_portal *portal; + struct bman_pool *next; +}; + +struct bman_portal { + struct bm_portal p; + long unsigned int irq_sources; + const struct bm_portal_config *config; + char irqname[16]; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bmp_header { + u16 id; + u32 size; +} __attribute__((packed)); + +struct spi_board_info { + char modalias[32]; + const void *platform_data; + const struct software_node *swnode; + void *controller_data; + int irq; + u32 max_speed_hz; + u16 bus_num; + u16 chip_select; + u32 mode; +}; + +struct boardinfo { + struct list_head list; + struct spi_board_info board_info; +}; + +struct fpdt_record_header { + u16 type; + u8 length; + u8 revision; +}; + +struct boot_performance_record { + struct fpdt_record_header header; + u32 reserved; + u64 firmware_start; + u64 bootloader_load; + u64 bootloader_launch; + u64 exitbootservice_start; + u64 exitbootservice_end; +}; + +struct boot_triggers { + const char *event; + char *trigger; +}; + +struct bp_slots_histogram { + atomic_t *count; +}; + +struct bp_cpuinfo { + unsigned int cpu_pinned; + struct bp_slots_histogram tsk_pinned; +}; + +typedef void (*bp_hardening_cb_t)(void); + +struct bp_hardening_data { + enum arm64_hyp_spectre_vector slot; + bp_hardening_cb_t fn; +}; + +struct bpf_map_ops; + +struct btf_record; + +struct btf; + +struct obj_cgroup; + +struct btf_type; + +struct bpf_map { + const struct bpf_map_ops *ops; + struct bpf_map *inner_map_meta; + void *security; + enum bpf_map_type map_type; + u32 key_size; + u32 value_size; + u32 max_entries; + u64 map_extra; + u32 map_flags; + u32 id; + struct btf_record *record; + int numa_node; + u32 btf_key_type_id; + u32 btf_value_type_id; + u32 btf_vmlinux_value_type_id; + struct btf *btf; + struct obj_cgroup *objcg; + char name[16]; + struct mutex freeze_mutex; + atomic64_t refcnt; + atomic64_t usercnt; + union { + struct work_struct work; + struct callback_head rcu; + }; + atomic64_t writecnt; + struct { + const struct btf_type *attach_func_proto; + spinlock_t lock; + enum bpf_prog_type type; + bool jited; + bool xdp_has_frags; + } owner; + bool bypass_spec_v1; + bool frozen; + bool free_after_mult_rcu_gp; + bool free_after_rcu_gp; + atomic64_t sleepable_refcnt; + s64 *elem_count; +}; + +struct range_tree { + struct rb_root_cached it_root; + struct rb_root_cached range_size_root; +}; + +struct vm_struct; + +struct bpf_arena { + struct bpf_map map; + u64 user_vm_start; + u64 user_vm_end; + struct vm_struct *kern_vm; + struct range_tree rt; + struct list_head vma_list; + struct mutex lock; +}; + +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 *pptrs[0]; + }; + }; +}; + +struct bpf_array_aux { + struct list_head poke_progs; + struct bpf_map *map; + struct mutex poke_mutex; + struct work_struct work; +}; + +struct bpf_async_cb { + struct bpf_map *map; + struct bpf_prog *prog; + void *callback_fn; + void *value; + union { + struct callback_head rcu; + struct work_struct delete_work; + }; + u64 flags; +}; + +struct bpf_spin_lock { + __u32 val; +}; + +struct bpf_hrtimer; + +struct bpf_work; + +struct bpf_async_kern { + union { + struct bpf_async_cb *cb; + struct bpf_hrtimer *timer; + struct bpf_work *work; + }; + struct bpf_spin_lock lock; +}; + +struct btf_func_model { + u8 ret_size; + u8 ret_flags; + u8 nr_args; + u8 arg_size[12]; + u8 arg_flags[12]; +}; + +struct bpf_attach_target_info { + struct btf_func_model fmodel; + long int tgt_addr; + struct module *tgt_mod; + const char *tgt_name; + const struct btf_type *tgt_type; +}; + +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; + __s32 value_type_btf_obj_fd; + __s32 map_token_fd; + }; + struct { + __u32 map_fd; + __u64 key; + union { + __u64 value; + __u64 next_key; + }; + __u64 flags; + }; + struct { + __u64 in_batch; + __u64 out_batch; + __u64 keys; + __u64 values; + __u32 count; + __u32 map_fd; + __u64 elem_flags; + __u64 flags; + } batch; + struct { + __u32 prog_type; + __u32 insn_cnt; + __u64 insns; + __u64 license; + __u32 log_level; + __u32 log_size; + __u64 log_buf; + __u32 kern_version; + __u32 prog_flags; + char prog_name[16]; + __u32 prog_ifindex; + __u32 expected_attach_type; + __u32 prog_btf_fd; + __u32 func_info_rec_size; + __u64 func_info; + __u32 func_info_cnt; + __u32 line_info_rec_size; + __u64 line_info; + __u32 line_info_cnt; + __u32 attach_btf_id; + union { + __u32 attach_prog_fd; + __u32 attach_btf_obj_fd; + }; + __u32 core_relo_cnt; + __u64 fd_array; + __u64 core_relos; + __u32 core_relo_rec_size; + __u32 log_true_size; + __s32 prog_token_fd; + __u32 fd_array_cnt; + }; + struct { + __u64 pathname; + __u32 bpf_fd; + __u32 file_flags; + __s32 path_fd; + }; + struct { + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_bpf_fd; + __u32 attach_type; + __u32 attach_flags; + __u32 replace_bpf_fd; + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + }; + struct { + __u32 prog_fd; + __u32 retval; + __u32 data_size_in; + __u32 data_size_out; + __u64 data_in; + __u64 data_out; + __u32 repeat; + __u32 duration; + __u32 ctx_size_in; + __u32 ctx_size_out; + __u64 ctx_in; + __u64 ctx_out; + __u32 flags; + __u32 cpu; + __u32 batch_size; + } test; + struct { + union { + __u32 start_id; + __u32 prog_id; + __u32 map_id; + __u32 btf_id; + __u32 link_id; + }; + __u32 next_id; + __u32 open_flags; + }; + struct { + __u32 bpf_fd; + __u32 info_len; + __u64 info; + } info; + struct { + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_type; + __u32 query_flags; + __u32 attach_flags; + __u64 prog_ids; + union { + __u32 prog_cnt; + __u32 count; + }; + __u64 prog_attach_flags; + __u64 link_ids; + __u64 link_attach_flags; + __u64 revision; + } query; + struct { + __u64 name; + __u32 prog_fd; + __u64 cookie; + } raw_tracepoint; + struct { + __u64 btf; + __u64 btf_log_buf; + __u32 btf_size; + __u32 btf_log_size; + __u32 btf_log_level; + __u32 btf_log_true_size; + __u32 btf_flags; + __s32 btf_token_fd; + }; + struct { + __u32 pid; + __u32 fd; + __u32 flags; + __u32 buf_len; + __u64 buf; + __u32 prog_id; + __u32 fd_type; + __u64 probe_offset; + __u64 probe_addr; + } task_fd_query; + struct { + union { + __u32 prog_fd; + __u32 map_fd; + }; + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_type; + __u32 flags; + union { + __u32 target_btf_id; + struct { + __u64 iter_info; + __u32 iter_info_len; + }; + struct { + __u64 bpf_cookie; + } perf_event; + struct { + __u32 flags; + __u32 cnt; + __u64 syms; + __u64 addrs; + __u64 cookies; + } kprobe_multi; + struct { + __u32 target_btf_id; + __u64 cookie; + } tracing; + struct { + __u32 pf; + __u32 hooknum; + __s32 priority; + __u32 flags; + } netfilter; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + } tcx; + struct { + __u64 path; + __u64 offsets; + __u64 ref_ctr_offsets; + __u64 cookies; + __u32 cnt; + __u32 flags; + __u32 pid; + } uprobe_multi; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + } netkit; + }; + } link_create; + struct { + __u32 link_fd; + union { + __u32 new_prog_fd; + __u32 new_map_fd; + }; + __u32 flags; + union { + __u32 old_prog_fd; + __u32 old_map_fd; + }; + } link_update; + struct { + __u32 link_fd; + } link_detach; + struct { + __u32 type; + } enable_stats; + struct { + __u32 link_fd; + __u32 flags; + } iter_create; + struct { + __u32 prog_fd; + __u32 map_fd; + __u32 flags; + } prog_bind_map; + struct { + __u32 flags; + __u32 bpffs_fd; + } token_create; +}; + +struct bpf_binary_header { + u32 size; + long: 0; + u8 image[0]; +}; + +struct bpf_bloom_filter { + struct bpf_map map; + u32 bitset_mask; + u32 hash_seed; + u32 nr_hash_funcs; + long unsigned int bitset[0]; +}; + +struct bpf_bprintf_buffers { + char bin_args[512]; + char buf[1024]; +}; + +struct bpf_bprintf_data { + u32 *bin_args; + char *buf; + bool get_bin_args; + bool get_buf; +}; + +struct bpf_btf_info { + __u64 btf; + __u32 btf_size; + __u32 id; + __u64 name; + __u32 name_len; + __u32 kernel_btf; +}; + +struct btf_field; + +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; + s64 const_map_key; +}; + +struct bpf_cand_cache { + const char *name; + u32 name_len; + u16 kind; + u16 cnt; + struct { + const struct btf *btf; + u32 id; + } cands[0]; +}; + +struct bpf_run_ctx {}; + +struct bpf_prog_array_item; + +struct bpf_cg_run_ctx { + struct bpf_run_ctx run_ctx; + const struct bpf_prog_array_item *prog_item; + int retval; +}; + +struct bpf_cgroup_dev_ctx { + __u32 access_type; + __u32 major; + __u32 minor; +}; + +struct bpf_link_ops; + +struct bpf_link { + atomic64_t refcnt; + u32 id; + enum bpf_link_type type; + const struct bpf_link_ops *ops; + struct bpf_prog *prog; + bool sleepable; + union { + struct callback_head rcu; + struct work_struct work; + }; +}; + +struct bpf_cgroup_link { + struct bpf_link link; + struct cgroup *cgroup; + enum bpf_attach_type type; +}; + +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 *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_cgroup_storage_map { + struct bpf_map map; + spinlock_t lock; + struct rb_root root; + struct list_head list; +}; + +struct bpf_lru_list { + struct list_head lists[3]; + unsigned int counts[2]; + struct list_head *next_inactive_rotation; + raw_spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_lru_locallist; + +struct bpf_common_lru { + struct bpf_lru_list lru_list; + struct bpf_lru_locallist *local_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_core_accessor { + __u32 type_id; + __u32 idx; + const char *name; +}; + +struct bpf_core_cand { + const struct btf *btf; + __u32 id; +}; + +struct bpf_core_cand_list { + struct bpf_core_cand *cands; + int len; +}; + +struct bpf_verifier_log; + +struct bpf_core_ctx { + struct bpf_verifier_log *log; + const struct btf *btf; +}; + +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_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_cpu_map_entry; + +struct bpf_cpu_map { + struct bpf_map map; + struct bpf_cpu_map_entry **cpu_map; +}; + +struct bpf_cpumap_val { + __u32 qsize; + union { + int fd; + __u32 id; + } bpf_prog; +}; + +struct xdp_bulk_queue; + +struct ptr_ring; + +struct bpf_cpu_map_entry { + u32 cpu; + int map_id; + struct xdp_bulk_queue *bulkq; + struct ptr_ring *queue; + struct task_struct *kthread; + struct bpf_cpumap_val value; + struct bpf_prog *prog; + struct completion kthread_running; + struct rcu_work free_work; +}; + +struct bpf_cpumask { + cpumask_t cpumask; + refcount_t usage; +}; + +struct bpf_crypto_type; + +struct bpf_crypto_ctx { + const struct bpf_crypto_type *type; + void *tfm; + u32 siv_len; + struct callback_head rcu; + refcount_t usage; +}; + +struct bpf_crypto_params { + char type[14]; + u8 reserved[2]; + char algo[128]; + u8 key[256]; + u32 key_len; + u32 authsize; +}; + +struct bpf_crypto_type { + void * (*alloc_tfm)(const char *); + void (*free_tfm)(void *); + int (*has_algo)(const char *); + int (*setkey)(void *, const u8 *, unsigned int); + int (*setauthsize)(void *, unsigned int); + int (*encrypt)(void *, const u8 *, u8 *, unsigned int, u8 *); + int (*decrypt)(void *, const u8 *, u8 *, unsigned int, u8 *); + unsigned int (*ivsize)(void *); + unsigned int (*statesize)(void *); + u32 (*get_flags)(void *); + struct module *owner; + char name[14]; +}; + +struct bpf_crypto_type_list { + const struct bpf_crypto_type *type; + struct list_head list; +}; + +struct bpf_ctx_arg_aux { + u32 offset; + enum bpf_reg_type reg_type; + struct btf *btf; + u32 btf_id; +}; + +struct skb_ext; + +struct sk_buff { + union { + struct { + struct sk_buff *next; + struct sk_buff *prev; + union { + struct net_device *dev; + long unsigned int dev_scratch; + }; + }; + struct rb_node rbnode; + struct list_head list; + struct llist_node ll_node; + }; + struct sock *sk; + union { + ktime_t tstamp; + u64 skb_mstamp_ns; + }; + char cb[48]; + union { + struct { + long unsigned int _skb_refdst; + void (*destructor)(struct sk_buff *); + }; + struct list_head tcp_tsorted_anchor; + long unsigned int _sk_redir; + }; + long unsigned int _nfct; + unsigned int len; + unsigned int data_len; + __u16 mac_len; + __u16 hdr_len; + __u16 queue_mapping; + __u8 __cloned_offset[0]; + __u8 cloned: 1; + __u8 nohdr: 1; + __u8 fclone: 2; + __u8 peeked: 1; + __u8 head_frag: 1; + __u8 pfmemalloc: 1; + __u8 pp_recycle: 1; + __u8 active_extensions; + union { + struct { + __u8 __pkt_type_offset[0]; + __u8 pkt_type: 3; + __u8 ignore_df: 1; + __u8 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 tstamp_type: 2; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 ipvs_property: 1; + __u8 nf_trace: 1; + __u8 offload_fwd_mark: 1; + __u8 offload_l3_fwd_mark: 1; + __u8 redirected: 1; + __u8 from_ingress: 1; + __u8 nf_skip_egress: 1; + __u8 decrypted: 1; + __u8 slow_gro: 1; + __u8 csum_not_inet: 1; + __u8 unreadable: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + __u32 secmark; + union { + __u32 mark; + __u32 reserved_tailroom; + }; + union { + __be16 inner_protocol; + __u8 inner_ipproto; + }; + __u16 inner_transport_header; + __u16 inner_network_header; + __u16 inner_mac_header; + __be16 protocol; + __u16 transport_header; + __u16 network_header; + __u16 mac_header; + }; + struct { + __u8 __pkt_type_offset[0]; + __u8 pkt_type: 3; + __u8 ignore_df: 1; + __u8 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 tstamp_type: 2; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 ipvs_property: 1; + __u8 nf_trace: 1; + __u8 offload_fwd_mark: 1; + __u8 offload_l3_fwd_mark: 1; + __u8 redirected: 1; + __u8 from_ingress: 1; + __u8 nf_skip_egress: 1; + __u8 decrypted: 1; + __u8 slow_gro: 1; + __u8 csum_not_inet: 1; + __u8 unreadable: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + __u32 secmark; + union { + __u32 mark; + __u32 reserved_tailroom; + }; + union { + __be16 inner_protocol; + __u8 inner_ipproto; + }; + __u16 inner_transport_header; + __u16 inner_network_header; + __u16 inner_mac_header; + __be16 protocol; + __u16 transport_header; + __u16 network_header; + __u16 mac_header; + } headers; + }; + sk_buff_data_t tail; + sk_buff_data_t end; + unsigned char *head; + unsigned char *data; + unsigned int truesize; + refcount_t users; + struct skb_ext *extensions; +}; + +struct xdp_md { + __u32 data; + __u32 data_end; + __u32 data_meta; + __u32 ingress_ifindex; + __u32 rx_queue_index; + __u32 egress_ifindex; +}; + +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 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 hlist_nulls_node { + struct hlist_nulls_node *next; + struct hlist_nulls_node **pprev; +}; + +struct proto; + +struct inet_timewait_death_row; + +struct sock_common { + union { + __addrpair skc_addrpair; + struct { + __be32 skc_daddr; + __be32 skc_rcv_saddr; + }; + }; + union { + unsigned int skc_hash; + __u16 skc_u16hashes[2]; + }; + union { + __portpair skc_portpair; + struct { + __be16 skc_dport; + __u16 skc_num; + }; + }; + short unsigned int 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 { + long unsigned int 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; + }; + short unsigned int skc_tx_queue_mapping; + short unsigned int skc_rx_queue_mapping; + union { + int skc_incoming_cpu; + u32 skc_rcv_wnd; + u32 skc_tw_rcv_nxt; + }; + refcount_t skc_refcnt; + int skc_dontcopy_end[0]; + union { + u32 skc_rxhash; + u32 skc_window_clamp; + u32 skc_tw_snd_nxt; + }; +}; + +struct page_frag { + struct page *page; + __u32 offset; + __u32 size; +}; + +struct sock_cgroup_data { + struct cgroup *cgroup; + u32 classid; + u16 prioidx; +}; + +struct dst_entry; + +struct sk_filter; + +struct socket_wq; + +struct socket; + +struct mem_cgroup; + +struct xfrm_policy; + +struct sock_reuseport; + +struct bpf_local_storage; + +struct sock { + struct sock_common __sk_common; + __u8 __cacheline_group_begin__sock_write_rx[0]; + atomic_t sk_drops; + __s32 sk_peek_off; + struct sk_buff_head sk_error_queue; + struct sk_buff_head sk_receive_queue; + struct { + atomic_t rmem_alloc; + int len; + struct sk_buff *head; + struct sk_buff *tail; + } sk_backlog; + __u8 __cacheline_group_end__sock_write_rx[0]; + __u8 __cacheline_group_begin__sock_read_rx[0]; + struct dst_entry *sk_rx_dst; + int sk_rx_dst_ifindex; + u32 sk_rx_dst_cookie; + unsigned int sk_ll_usec; + unsigned int sk_napi_id; + u16 sk_busy_poll_budget; + u8 sk_prefer_busy_poll; + u8 sk_userlocks; + int sk_rcvbuf; + struct sk_filter *sk_filter; + union { + struct socket_wq *sk_wq; + struct socket_wq *sk_wq_raw; + }; + void (*sk_data_ready)(struct sock *); + long int sk_rcvtimeo; + int sk_rcvlowat; + __u8 __cacheline_group_end__sock_read_rx[0]; + __u8 __cacheline_group_begin__sock_read_rxtx[0]; + int sk_err; + struct socket *sk_socket; + struct mem_cgroup *sk_memcg; + struct xfrm_policy *sk_policy[2]; + __u8 __cacheline_group_end__sock_read_rxtx[0]; + __u8 __cacheline_group_begin__sock_write_rxtx[0]; + socket_lock_t sk_lock; + u32 sk_reserved_mem; + int sk_forward_alloc; + u32 sk_tsflags; + __u8 __cacheline_group_end__sock_write_rxtx[0]; + __u8 __cacheline_group_begin__sock_write_tx[0]; + int sk_write_pending; + atomic_t sk_omem_alloc; + int sk_sndbuf; + int sk_wmem_queued; + refcount_t sk_wmem_alloc; + long unsigned int sk_tsq_flags; + union { + struct sk_buff *sk_send_head; + struct rb_root tcp_rtx_queue; + }; + struct sk_buff_head sk_write_queue; + u32 sk_dst_pending_confirm; + u32 sk_pacing_status; + struct page_frag sk_frag; + struct timer_list sk_timer; + long unsigned int sk_pacing_rate; + atomic_t sk_zckey; + atomic_t sk_tskey; + __u8 __cacheline_group_end__sock_write_tx[0]; + __u8 __cacheline_group_begin__sock_read_tx[0]; + long unsigned int sk_max_pacing_rate; + long int sk_sndtimeo; + u32 sk_priority; + u32 sk_mark; + struct dst_entry *sk_dst_cache; + netdev_features_t sk_route_caps; + struct sk_buff * (*sk_validate_xmit_skb)(struct sock *, struct net_device *, struct sk_buff *); + u16 sk_gso_type; + u16 sk_gso_max_segs; + unsigned int sk_gso_max_size; + gfp_t sk_allocation; + u32 sk_txhash; + u8 sk_pacing_shift; + bool sk_use_task_frag; + __u8 __cacheline_group_end__sock_read_tx[0]; + u8 sk_gso_disabled: 1; + u8 sk_kern_sock: 1; + u8 sk_no_check_tx: 1; + u8 sk_no_check_rx: 1; + u8 sk_shutdown; + u16 sk_type; + u16 sk_protocol; + long unsigned int sk_lingertime; + struct proto *sk_prot_creator; + rwlock_t sk_callback_lock; + int sk_err_soft; + u32 sk_ack_backlog; + u32 sk_max_ack_backlog; + kuid_t sk_uid; + spinlock_t sk_peer_lock; + int sk_bind_phc; + struct pid *sk_peer_pid; + const struct cred *sk_peer_cred; + ktime_t sk_stamp; + int sk_disconnects; + u8 sk_txrehash; + u8 sk_clockid; + u8 sk_txtime_deadline_mode: 1; + u8 sk_txtime_report_errors: 1; + u8 sk_txtime_unused: 6; + void *sk_user_data; + void *sk_security; + struct sock_cgroup_data sk_cgrp_data; + void (*sk_state_change)(struct sock *); + void (*sk_write_space)(struct sock *); + void (*sk_error_report)(struct sock *); + int (*sk_backlog_rcv)(struct sock *, struct sk_buff *); + void (*sk_destruct)(struct sock *); + struct sock_reuseport *sk_reuseport_cb; + struct bpf_local_storage *sk_bpf_storage; + struct callback_head sk_rcu; + netns_tracker ns_tracker; + struct xarray sk_user_frags; +}; + +struct bpf_sock_addr { + __u32 user_family; + __u32 user_ip4; + __u32 user_ip6[4]; + __u32 user_port; + __u32 family; + __u32 type; + __u32 protocol; + __u32 msg_src_ip4; + __u32 msg_src_ip6[4]; + union { + struct bpf_sock *sk; + }; +}; + +struct bpf_sock_addr_kern { + struct sock *sk; + struct sockaddr *uaddr; + u64 tmp_reg; + void *t_ctx; + u32 uaddrlen; +}; + +struct bpf_sock_ops { + __u32 op; + union { + __u32 args[4]; + __u32 reply; + __u32 replylong[4]; + }; + __u32 family; + __u32 remote_ip4; + __u32 local_ip4; + __u32 remote_ip6[4]; + __u32 local_ip6[4]; + __u32 remote_port; + __u32 local_port; + __u32 is_fullsock; + __u32 snd_cwnd; + __u32 srtt_us; + __u32 bpf_sock_ops_cb_flags; + __u32 state; + __u32 rtt_min; + __u32 snd_ssthresh; + __u32 rcv_nxt; + __u32 snd_nxt; + __u32 snd_una; + __u32 mss_cache; + __u32 ecn_flags; + __u32 rate_delivered; + __u32 rate_interval_us; + __u32 packets_out; + __u32 retrans_out; + __u32 total_retrans; + __u32 segs_in; + __u32 data_segs_in; + __u32 segs_out; + __u32 data_segs_out; + __u32 lost_out; + __u32 sacked_out; + __u32 sk_txhash; + __u64 bytes_received; + __u64 bytes_acked; + union { + struct bpf_sock *sk; + }; + union { + void *skb_data; + }; + union { + void *skb_data_end; + }; + __u32 skb_len; + __u32 skb_tcp_flags; + __u64 skb_hwtstamp; +}; + +struct bpf_sock_ops_kern { + struct sock *sk; + union { + u32 args[4]; + u32 reply; + u32 replylong[4]; + }; + struct sk_buff *syn_skb; + struct sk_buff *skb; + void *skb_data_end; + u8 op; + u8 is_fullsock; + u8 remaining_opt_len; + u64 temp; +}; + +struct sk_msg_md { + union { + void *data; + }; + union { + void *data_end; + }; + __u32 family; + __u32 remote_ip4; + __u32 local_ip4; + __u32 remote_ip6[4]; + __u32 local_ip6[4]; + __u32 remote_port; + __u32 local_port; + __u32 size; + union { + struct bpf_sock *sk; + }; +}; + +struct sk_msg_sg { + u32 start; + u32 curr; + u32 end; + u32 size; + u32 copybreak; + long unsigned int 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; +}; + +struct bpf_flow_dissector { + struct bpf_flow_keys *flow_keys; + const struct sk_buff *skb; + const void *data; + const void *data_end; +}; + +struct user_pt_regs { + __u64 regs[31]; + __u64 sp; + __u64 pc; + __u64 pstate; +}; + +typedef struct user_pt_regs bpf_user_pt_regs_t; + +struct frame_record { + u64 fp; + u64 lr; +}; + +struct frame_record_meta { + struct frame_record record; + u64 type; +}; + +struct pt_regs { + union { + struct user_pt_regs user_regs; + struct { + u64 regs[31]; + u64 sp; + u64 pc; + u64 pstate; + }; + }; + u64 orig_x0; + s32 syscallno; + u32 pmr; + u64 sdei_ttbr1; + struct frame_record_meta stackframe; + u64 lockdep_hardirqs; + u64 exit_rcu; +}; + +struct bpf_perf_event_data { + bpf_user_pt_regs_t regs; + __u64 sample_period; + __u64 addr; +}; + +struct perf_sample_data; + +struct bpf_perf_event_data_kern { + bpf_user_pt_regs_t *regs; + struct perf_sample_data *data; + struct perf_event *event; +}; + +struct bpf_raw_tracepoint_args { + __u64 args[0]; +}; + +struct bpf_sysctl { + __u32 write; + __u32 file_pos; +}; + +struct ctl_table; + +struct bpf_sysctl_kern { + struct ctl_table_header *head; + const struct ctl_table *table; + void *cur_val; + size_t cur_len; + void *new_val; + size_t new_len; + int new_updated; + int write; + loff_t *ppos; + u64 tmp_reg; +}; + +struct bpf_sockopt { + union { + struct bpf_sock *sk; + }; + union { + void *optval; + }; + union { + void *optval_end; + }; + __s32 level; + __s32 optname; + __s32 optlen; + __s32 retval; +}; + +struct bpf_sockopt_kern { + struct sock *sk; + u8 *optval; + u8 *optval_end; + s32 level; + s32 optname; + s32 optlen; + struct task_struct *current_task; + u64 tmp_reg; +}; + +struct sk_reuseport_md { + union { + void *data; + }; + union { + void *data_end; + }; + __u32 len; + __u32 eth_protocol; + __u32 ip_protocol; + __u32 bind_inany; + __u32 hash; + union { + struct bpf_sock *sk; + }; + union { + struct bpf_sock *migrating_sk; + }; +}; + +struct sk_reuseport_kern { + struct sk_buff *skb; + struct sock *sk; + struct sock *selected_sk; + struct sock *migrating_sk; + void *data_end; + u32 hash; + u32 reuseport_id; + bool bind_inany; +}; + +struct bpf_sk_lookup { + union { + union { + struct bpf_sock *sk; + }; + __u64 cookie; + }; + __u32 family; + __u32 protocol; + __u32 remote_ip4; + __u32 remote_ip6[4]; + __be16 remote_port; + __u32 local_ip4; + __u32 local_ip6[4]; + __u32 local_port; + __u32 ingress_ifindex; +}; + +struct bpf_sk_lookup_kern { + u16 family; + u16 protocol; + __be16 sport; + u16 dport; + struct { + __be32 saddr; + __be32 daddr; + } v4; + struct { + const struct in6_addr *saddr; + const struct in6_addr *daddr; + } v6; + struct sock *selected_sk; + u32 ingress_ifindex; + bool no_reuseport; +}; + +struct nf_hook_state; + +struct bpf_nf_ctx { + const struct nf_hook_state *state; + struct sk_buff *skb; +}; + +struct bpf_ctx_convert { + struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog; + struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern; + struct xdp_md BPF_PROG_TYPE_XDP_prog; + struct xdp_buff BPF_PROG_TYPE_XDP_kern; + struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog; + struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern; + struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog; + struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern; + struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog; + struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog; + struct sk_buff BPF_PROG_TYPE_LWT_IN_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog; + struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern; + struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog; + struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern; + struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog; + struct sk_buff BPF_PROG_TYPE_SK_SKB_kern; + struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog; + struct sk_msg BPF_PROG_TYPE_SK_MSG_kern; + struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog; + struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern; + bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog; + struct pt_regs BPF_PROG_TYPE_KPROBE_kern; + __u64 BPF_PROG_TYPE_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_TRACEPOINT_kern; + struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog; + struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; + void *BPF_PROG_TYPE_TRACING_prog; + void *BPF_PROG_TYPE_TRACING_kern; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; + struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; + struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; + struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; + struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; + struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; + struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; + struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; + struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; + void *BPF_PROG_TYPE_STRUCT_OPS_prog; + void *BPF_PROG_TYPE_STRUCT_OPS_kern; + void *BPF_PROG_TYPE_EXT_prog; + void *BPF_PROG_TYPE_EXT_kern; + void *BPF_PROG_TYPE_LSM_prog; + void *BPF_PROG_TYPE_LSM_kern; + void *BPF_PROG_TYPE_SYSCALL_prog; + void *BPF_PROG_TYPE_SYSCALL_kern; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_prog; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_kern; +}; + +struct bpf_devmap_val { + __u32 ifindex; + union { + int fd; + __u32 id; + } bpf_prog; +}; + +struct bpf_dispatcher_prog { + struct bpf_prog *prog; + refcount_t users; +}; + +struct latch_tree_node { + struct rb_node node[2]; +}; + +struct bpf_ksym { + long unsigned int start; + long unsigned int end; + char name[512]; + struct list_head lnode; + struct latch_tree_node tnode; + bool prog; +}; + +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 bpf_dtab_netdev; + +struct bpf_dtab { + struct bpf_map map; + struct bpf_dtab_netdev **netdev_map; + struct list_head list; + struct hlist_head *dev_index_head; + spinlock_t index_lock; + unsigned int items; + u32 n_buckets; +}; + +struct bpf_dtab_netdev { + struct net_device *dev; + struct hlist_node index_hlist; + struct bpf_prog *xdp_prog; + struct callback_head rcu; + unsigned int idx; + struct bpf_devmap_val val; +}; + +struct bpf_dummy_ops_state; + +struct bpf_dummy_ops { + int (*test_1)(struct bpf_dummy_ops_state *); + int (*test_2)(struct bpf_dummy_ops_state *, int, short unsigned int, char, long unsigned int); + int (*test_sleepable)(struct bpf_dummy_ops_state *); +}; + +struct bpf_dummy_ops_state { + int val; +}; + +struct bpf_dummy_ops_test_args { + u64 args[12]; + struct bpf_dummy_ops_state state; +}; + +struct bpf_dynptr { + __u64 __opaque[2]; +}; + +struct bpf_dynptr_kern { + void *data; + u32 size; + u32 offset; +}; + +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_empty_prog_array { + struct bpf_prog_array hdr; + struct bpf_prog *null_prog; +}; + +struct bpf_event_entry { + struct perf_event *event; + struct file *perf_file; + struct file *map_file; + struct callback_head rcu; +}; + +struct bpf_fentry_test_t { + struct bpf_fentry_test_t *a; +}; + +struct bpf_fib_lookup { + __u8 family; + __u8 l4_protocol; + __be16 sport; + __be16 dport; + union { + __u16 tot_len; + __u16 mtu_result; + }; + __u32 ifindex; + union { + __u8 tos; + __be32 flowinfo; + __u32 rt_metric; + }; + union { + __be32 ipv4_src; + __u32 ipv6_src[4]; + }; + union { + __be32 ipv4_dst; + __u32 ipv6_dst[4]; + }; + union { + struct { + __be16 h_vlan_proto; + __be16 h_vlan_TCI; + }; + __u32 tbid; + }; + union { + struct { + __u32 mark; + }; + struct { + __u8 smac[6]; + __u8 dmac[6]; + }; + }; +}; + +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_func_info { + __u32 insn_off; + __u32 type_id; +}; + +struct bpf_func_info_aux { + u16 linkage; + bool unreliable; + bool called: 1; + bool verified: 1; +}; + +struct bpf_func_proto { + u64 (*func)(u64, u64, u64, u64, u64); + bool gpl_only; + bool pkt_access; + bool might_sleep; + bool allow_fastcall; + enum bpf_return_type ret_type; + union { + struct { + enum bpf_arg_type arg1_type; + enum bpf_arg_type arg2_type; + enum bpf_arg_type arg3_type; + enum bpf_arg_type arg4_type; + enum bpf_arg_type arg5_type; + }; + enum bpf_arg_type arg_type[5]; + }; + union { + struct { + u32 *arg1_btf_id; + u32 *arg2_btf_id; + u32 *arg3_btf_id; + u32 *arg4_btf_id; + u32 *arg5_btf_id; + }; + u32 *arg_btf_id[5]; + struct { + size_t arg1_size; + size_t arg2_size; + size_t arg3_size; + size_t arg4_size; + size_t arg5_size; + }; + size_t arg_size[5]; + }; + int *ret_btf_id; + bool (*allowed)(const struct bpf_prog *); +}; + +struct tnum { + u64 value; + u64 mask; +}; + +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 { + long unsigned int raw1; + long unsigned int 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_retval_range { + s32 minval; + s32 maxval; +}; + +struct bpf_stack_state; + +struct bpf_func_state { + struct bpf_reg_state regs[11]; + int callsite; + u32 frameno; + u32 subprogno; + u32 async_entry_cnt; + struct bpf_retval_range callback_ret_range; + bool in_callback_fn; + bool in_async_callback_fn; + bool in_exception_callback_fn; + u32 callback_depth; + struct bpf_stack_state *stack; + int allocated_stack; +}; + +struct bpf_hrtimer { + struct bpf_async_cb cb; + struct hrtimer timer; + atomic_t cancelling; +}; + +struct bpf_mem_caches; + +struct bpf_mem_cache; + +struct bpf_mem_alloc { + struct bpf_mem_caches *caches; + struct bpf_mem_cache *cache; + struct obj_cgroup *objcg; + bool percpu; + struct work_struct work; +}; + +struct pcpu_freelist_node; + +struct pcpu_freelist_head { + struct pcpu_freelist_node *first; + raw_spinlock_t lock; +}; + +struct pcpu_freelist { + struct pcpu_freelist_head *freelist; + struct pcpu_freelist_head extralist; +}; + +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 *percpu_lru; + }; + del_from_htab_func del_from_htab; + void *del_arg; + unsigned int hash_offset; + unsigned int nr_scans; + bool percpu; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bucket; + +struct htab_elem; + +struct bpf_htab { + struct bpf_map map; + struct bpf_mem_alloc ma; + struct bpf_mem_alloc pcpu_ma; + struct bucket *buckets; + void *elems; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + union { + struct pcpu_freelist freelist; + struct bpf_lru lru; + }; + struct htab_elem **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 *map_locked[8]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_id_pair { + u32 old; + u32 cur; +}; + +struct bpf_idmap { + u32 tmp_id_gen; + struct bpf_id_pair map[600]; +}; + +struct bpf_idset { + u32 count; + u32 ids[600]; +}; + +struct bpf_insn { + __u8 code; + __u8 dst_reg: 4; + __u8 src_reg: 4; + __s16 off; + __s32 imm; +}; + +struct bpf_insn_access_aux { + enum bpf_reg_type reg_type; + bool is_ldsx; + union { + int ctx_field_size; + struct { + struct btf *btf; + u32 btf_id; + }; + }; + struct bpf_verifier_log *log; + bool is_retval; +}; + +struct bpf_map_ptr_state { + struct bpf_map *map_ptr; + bool poison; + bool unpriv; +}; + +struct bpf_loop_inline_state { + unsigned int initialized: 1; + unsigned int fit_for_inline: 1; + u32 callback_subprogno; +}; + +struct btf_struct_meta; + +struct bpf_insn_aux_data { + union { + enum bpf_reg_type ptr_type; + struct bpf_map_ptr_state map_ptr_state; + s32 call_imm; + u32 alu_limit; + struct { + u32 map_index; + u32 map_off; + }; + struct { + enum bpf_reg_type reg_type; + union { + struct { + struct btf *btf; + u32 btf_id; + }; + u32 mem_size; + }; + } btf_var; + struct bpf_loop_inline_state loop_inline_state; + }; + union { + u64 obj_new_size; + u64 insert_off; + }; + struct btf_struct_meta *kptr_struct_meta; + u64 map_key_state; + int ctx_field_size; + u32 seen; + bool sanitize_stack_spill; + bool zext_dst; + bool needs_zext; + bool storage_get_func_atomic; + bool is_iter_next; + bool call_with_percpu_alloc_ptr; + u8 alu_state; + u8 fastcall_pattern: 1; + u8 fastcall_spills_num: 3; + unsigned int orig_idx; + bool jmp_point; + bool prune_point; + bool force_checkpoint; + bool calls_callback; +}; + +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 bpf_insn_hist_entry { + u32 idx; + u32 prev_idx: 20; + u32 flags: 12; + u64 linked_regs; +}; + +struct bpf_iter_meta; + +struct bpf_iter__bpf_link { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_link *link; + }; +}; + +struct bpf_iter__bpf_map { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; +}; + +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__bpf_prog { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_prog *prog; + }; +}; + +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__cgroup { + union { + struct bpf_iter_meta *meta; + }; + union { + struct cgroup *cgroup; + }; +}; + +struct fib6_info; + +struct bpf_iter__ipv6_route { + union { + struct bpf_iter_meta *meta; + }; + union { + struct fib6_info *rt; + }; +}; + +struct bpf_iter__kmem_cache { + union { + struct bpf_iter_meta *meta; + }; + union { + struct kmem_cache *s; + }; +}; + +struct kallsym_iter; + +struct bpf_iter__ksym { + union { + struct bpf_iter_meta *meta; + }; + union { + struct kallsym_iter *ksym; + }; +}; + +struct netlink_sock; + +struct bpf_iter__netlink { + union { + struct bpf_iter_meta *meta; + }; + union { + struct netlink_sock *sk; + }; +}; + +struct bpf_iter__sockmap { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + struct sock *sk; + }; +}; + +struct bpf_iter__task { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; +}; + +struct bpf_iter__task__safe_trusted { + struct bpf_iter_meta *meta; + struct task_struct *task; +}; + +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__task_vma { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; + union { + struct vm_area_struct *vma; + }; +}; + +struct bpf_iter__tcp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct sock_common *sk_common; + }; + uid_t uid; +}; + +struct udp_sock; + +struct bpf_iter__udp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct udp_sock *udp_sk; + }; + uid_t uid; + long: 0; + int bucket; +}; + +struct unix_sock; + +struct bpf_iter__unix { + union { + struct bpf_iter_meta *meta; + }; + union { + struct unix_sock *unix_sk; + }; + uid_t uid; +}; + +struct bpf_iter_aux_info { + struct bpf_map *map; + struct { + struct cgroup *start; + enum bpf_cgroup_iter_order order; + } cgroup; + struct { + enum bpf_iter_task_type type; + u32 pid; + } task; +}; + +struct bpf_iter_bits { + __u64 __opaque[2]; +}; + +struct bpf_iter_bits_kern { + union { + __u64 *bits; + __u64 bits_copy; + }; + int nr_bits; + int bit; +}; + +struct bpf_iter_css { + __u64 __opaque[3]; +}; + +struct bpf_iter_css_kern { + struct cgroup_subsys_state *start; + struct cgroup_subsys_state *pos; + unsigned int flags; +}; + +struct bpf_iter_css_task { + __u64 __opaque[1]; +}; + +struct css_task_iter; + +struct bpf_iter_css_task_kern { + struct css_task_iter *css_it; +}; + +struct bpf_iter_kmem_cache { + __u64 __opaque[1]; +}; + +struct bpf_iter_kmem_cache_kern { + struct kmem_cache *pos; +}; + +struct bpf_iter_target_info; + +struct bpf_iter_link { + struct bpf_link link; + struct bpf_iter_aux_info aux; + struct bpf_iter_target_info *tinfo; +}; + +union bpf_iter_link_info { + struct { + __u32 map_fd; + } map; + struct { + enum bpf_cgroup_iter_order order; + __u32 cgroup_fd; + __u64 cgroup_id; + } cgroup; + struct { + __u32 tid; + __u32 pid; + __u32 pid_fd; + } task; +}; + +struct bpf_iter_meta { + union { + struct seq_file *seq; + }; + u64 session_id; + u64 seq_num; +}; + +struct bpf_iter_meta__safe_trusted { + struct seq_file *seq; +}; + +struct bpf_iter_num { + __u64 __opaque[1]; +}; + +struct bpf_iter_num_kern { + int cur; + int end; +}; + +struct bpf_iter_seq_info; + +struct bpf_iter_priv_data { + struct bpf_iter_target_info *tinfo; + const struct bpf_iter_seq_info *seq_info; + struct bpf_prog *prog; + u64 session_id; + u64 seq_num; + bool done_stop; + long: 0; + u8 target_private[0]; +}; + +typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *); + +typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *); + +typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *); + +struct bpf_link_info; + +typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *); + +typedef const struct bpf_func_proto * (*bpf_iter_get_func_proto_t)(enum bpf_func_id, const struct bpf_prog *); + +struct bpf_iter_reg { + const char *target; + bpf_iter_attach_target_t attach_target; + bpf_iter_detach_target_t detach_target; + bpf_iter_show_fdinfo_t show_fdinfo; + bpf_iter_fill_link_info_t fill_link_info; + bpf_iter_get_func_proto_t get_func_proto; + u32 ctx_arg_info_size; + u32 feature; + struct bpf_ctx_arg_aux ctx_arg_info[2]; + const struct bpf_iter_seq_info *seq_info; +}; + +struct bpf_iter_scx_dsq { + u64 __opaque[6]; +}; + +struct scx_dsq_list_node { + struct list_head node; + u32 flags; + u32 priv; +}; + +struct scx_dispatch_q; + +struct bpf_iter_scx_dsq_kern { + struct scx_dsq_list_node cursor; + struct scx_dispatch_q *dsq; + u64 slice; + u64 vtime; +}; + +struct bpf_iter_seq_array_map_info { + struct bpf_map *map; + void *percpu_value_buf; + u32 index; +}; + +struct bpf_iter_seq_hash_map_info { + struct bpf_map *map; + struct bpf_htab *htab; + void *percpu_value_buf; + u32 bucket_id; + u32 skip_elems; +}; + +typedef int (*bpf_iter_init_seq_priv_t)(void *, struct bpf_iter_aux_info *); + +typedef void (*bpf_iter_fini_seq_priv_t)(void *); + +struct bpf_iter_seq_info { + const struct seq_operations *seq_ops; + bpf_iter_init_seq_priv_t init_seq_private; + bpf_iter_fini_seq_priv_t fini_seq_private; + u32 seq_priv_size; +}; + +struct bpf_iter_seq_link_info { + u32 link_id; +}; + +struct bpf_iter_seq_map_info { + u32 map_id; +}; + +struct bpf_iter_seq_prog_info { + u32 prog_id; +}; + +struct bpf_iter_seq_sk_storage_map_info { + struct bpf_map *map; + unsigned int bucket_id; + unsigned int skip_elems; +}; + +struct pid_namespace; + +struct bpf_iter_seq_task_common { + struct pid_namespace *ns; + enum bpf_iter_task_type type; + u32 pid; + u32 pid_visiting; +}; + +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_seq_task_info { + struct bpf_iter_seq_task_common common; + u32 tid; +}; + +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; + long unsigned int prev_vm_start; + long unsigned int prev_vm_end; +}; + +struct bpf_iter_target_info { + struct list_head list; + const struct bpf_iter_reg *reg_info; + u32 btf_id; +}; + +struct bpf_iter_task { + __u64 __opaque[3]; +}; + +struct bpf_iter_task_kern { + struct task_struct *task; + struct task_struct *pos; + unsigned int flags; +}; + +struct bpf_iter_task_vma { + __u64 __opaque[1]; +}; + +struct bpf_iter_task_vma_kern_data; + +struct bpf_iter_task_vma_kern { + struct bpf_iter_task_vma_kern_data *data; +}; + +struct maple_enode; + +struct maple_tree; + +struct maple_alloc; + +struct ma_state { + struct maple_tree *tree; + long unsigned int index; + long unsigned int last; + struct maple_enode *node; + long unsigned int min; + long unsigned int max; + struct maple_alloc *alloc; + enum maple_status status; + unsigned char depth; + unsigned char offset; + unsigned char mas_flags; + unsigned char end; + enum store_type store_type; +}; + +struct vma_iterator { + struct ma_state mas; +}; + +struct mmap_unlock_irq_work; + +struct bpf_iter_task_vma_kern_data { + struct task_struct *task; + struct mm_struct *mm; + struct mmap_unlock_irq_work *work; + struct vma_iterator vmi; +}; + +struct bpf_jit_poke_descriptor { + void *tailcall_target; + void *tailcall_bypass; + void *bypass_addr; + void *aux; + union { + struct { + struct bpf_map *map; + u32 key; + } tail_call; + }; + bool tailcall_target_stable; + u8 adj_off; + u16 reason; + u32 insn_idx; +}; + +struct bpf_key { + struct key *key; + bool has_ref; +}; + +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_kfunc_call_arg_meta { + struct btf *btf; + u32 func_id; + u32 kfunc_flags; + const struct btf_type *func_proto; + const char *func_name; + u32 ref_obj_id; + u8 release_regno; + bool r0_rdonly; + u32 ret_btf_id; + u64 r0_size; + u32 subprogno; + struct { + u64 value; + bool found; + } arg_constant; + struct btf *arg_btf; + u32 arg_btf_id; + bool arg_owning_ref; + struct { + struct btf_field *field; + } arg_list_head; + struct { + struct btf_field *field; + } arg_rbtree_root; + struct { + enum bpf_dynptr_type type; + u32 id; + u32 ref_obj_id; + } initialized_dynptr; + struct { + u8 spi; + u8 frameno; + } iter; + struct { + struct bpf_map *ptr; + int uid; + } map; + u64 mem_size; +}; + +struct bpf_kfunc_desc { + struct btf_func_model func_model; + u32 func_id; + s32 imm; + u16 offset; + long unsigned int addr; +}; + +struct bpf_kfunc_desc_tab { + struct bpf_kfunc_desc descs[256]; + u32 nr_descs; +}; + +struct fprobe; + +struct ftrace_regs; + +typedef int (*fprobe_entry_cb)(struct fprobe *, long unsigned int, long unsigned int, struct ftrace_regs *, void *); + +typedef void (*fprobe_exit_cb)(struct fprobe *, long unsigned int, long unsigned int, struct ftrace_regs *, void *); + +struct fprobe_hlist; + +struct fprobe { + long unsigned int nmissed; + unsigned int flags; + size_t entry_data_size; + fprobe_entry_cb entry_handler; + fprobe_exit_cb exit_handler; + struct fprobe_hlist *hlist_array; +}; + +struct bpf_kprobe_multi_link { + struct bpf_link link; + struct fprobe fp; + long unsigned int *addrs; + u64 *cookies; + u32 cnt; + u32 mods_cnt; + struct module **mods; + u32 flags; +}; + +struct bpf_session_run_ctx { + struct bpf_run_ctx run_ctx; + bool is_return; + void *data; +}; + +struct bpf_kprobe_multi_run_ctx { + struct bpf_session_run_ctx session_ctx; + struct bpf_kprobe_multi_link *link; + long unsigned int entry_ip; +}; + +struct bpf_line_info { + __u32 insn_off; + __u32 file_name_off; + __u32 line_off; + __u32 line_col; +}; + +struct bpf_link_info { + __u32 type; + __u32 id; + __u32 prog_id; + union { + struct { + __u64 tp_name; + __u32 tp_name_len; + } raw_tracepoint; + struct { + __u32 attach_type; + __u32 target_obj_id; + __u32 target_btf_id; + } tracing; + struct { + __u64 cgroup_id; + __u32 attach_type; + } cgroup; + struct { + __u64 target_name; + __u32 target_name_len; + union { + struct { + __u32 map_id; + } map; + }; + union { + struct { + __u64 cgroup_id; + __u32 order; + } cgroup; + struct { + __u32 tid; + __u32 pid; + } task; + }; + } iter; + struct { + __u32 netns_ino; + __u32 attach_type; + } netns; + struct { + __u32 ifindex; + } xdp; + struct { + __u32 map_id; + } struct_ops; + struct { + __u32 pf; + __u32 hooknum; + __s32 priority; + __u32 flags; + } netfilter; + struct { + __u64 addrs; + __u32 count; + __u32 flags; + __u64 missed; + __u64 cookies; + } kprobe_multi; + struct { + __u64 path; + __u64 offsets; + __u64 ref_ctr_offsets; + __u64 cookies; + __u32 path_size; + __u32 count; + __u32 flags; + __u32 pid; + } uprobe_multi; + struct { + __u32 type; + union { + struct { + __u64 file_name; + __u32 name_len; + __u32 offset; + __u64 cookie; + } uprobe; + struct { + __u64 func_name; + __u32 name_len; + __u32 offset; + __u64 addr; + __u64 missed; + __u64 cookie; + } kprobe; + struct { + __u64 tp_name; + __u32 name_len; + __u64 cookie; + } tracepoint; + struct { + __u64 config; + __u32 type; + __u64 cookie; + } event; + }; + } perf_event; + struct { + __u32 ifindex; + __u32 attach_type; + } tcx; + struct { + __u32 ifindex; + __u32 attach_type; + } netkit; + struct { + __u32 map_id; + __u32 attach_type; + } sockmap; + }; +}; + +struct bpf_link_ops { + void (*release)(struct bpf_link *); + void (*dealloc)(struct bpf_link *); + void (*dealloc_deferred)(struct bpf_link *); + int (*detach)(struct bpf_link *); + int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); + void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); + int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); + int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); + __poll_t (*poll)(struct file *, struct poll_table_struct *); +}; + +struct bpf_link_primer { + struct bpf_link *link; + struct file *file; + int fd; + u32 id; +}; + +struct bpf_list_head { + __u64 __opaque[2]; +}; + +struct bpf_list_node { + __u64 __opaque[3]; +}; + +struct bpf_list_node_kern { + struct list_head list_head; + void *owner; +}; + +struct bpf_local_storage_data; + +struct bpf_local_storage_map; + +struct bpf_local_storage { + struct bpf_local_storage_data *cache[16]; + struct bpf_local_storage_map *smap; + struct hlist_head list; + void *owner; + struct callback_head rcu; + raw_spinlock_t lock; +}; + +struct bpf_local_storage_cache { + spinlock_t idx_lock; + u64 idx_usage_counts[16]; +}; + +struct bpf_local_storage_data { + struct bpf_local_storage_map *smap; + u8 data[0]; +}; + +struct bpf_local_storage_elem { + struct hlist_node map_node; + struct hlist_node snode; + struct bpf_local_storage *local_storage; + union { + struct callback_head rcu; + struct hlist_node free_node; + }; + long: 64; + struct bpf_local_storage_data sdata; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_local_storage_map_bucket; + +struct bpf_local_storage_map { + struct bpf_map map; + struct bpf_local_storage_map_bucket *buckets; + u32 bucket_log; + u16 elem_size; + u16 cache_idx; + struct bpf_mem_alloc selem_ma; + struct bpf_mem_alloc storage_ma; + bool bpf_ma; +}; + +struct bpf_local_storage_map_bucket { + struct hlist_head list; + raw_spinlock_t lock; +}; + +struct bpf_lpm_trie_key_hdr { + __u32 prefixlen; +}; + +struct bpf_lpm_trie_key_u8 { + union { + struct bpf_lpm_trie_key_hdr hdr; + __u32 prefixlen; + }; + __u8 data[0]; +}; + +struct bpf_lru_locallist { + struct list_head lists[2]; + u16 next_steal; + raw_spinlock_t lock; +}; + +struct bpf_lru_node { + struct list_head list; + u16 cpu; + u8 type; + u8 ref; +}; + +struct bpf_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; +}; + +struct bpf_offloaded_map; + +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 bpf_map_info { + __u32 type; + __u32 id; + __u32 key_size; + __u32 value_size; + __u32 max_entries; + __u32 map_flags; + char name[16]; + __u32 ifindex; + __u32 btf_vmlinux_value_type_id; + __u64 netns_dev; + __u64 netns_ino; + __u32 btf_id; + __u32 btf_key_type_id; + __u32 btf_value_type_id; + __u32 btf_vmlinux_id; + __u64 map_extra; +}; + +typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64); + +struct bpf_prog_aux; + +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 *); + 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 *); + int (*map_update_batch)(struct bpf_map *, struct file *, const union bpf_attr *, union bpf_attr *); + int (*map_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *); + void * (*map_lookup_elem)(struct bpf_map *, void *); + long int (*map_update_elem)(struct bpf_map *, void *, void *, u64); + long int (*map_delete_elem)(struct bpf_map *, void *); + long int (*map_push_elem)(struct bpf_map *, void *, u64); + long int (*map_pop_elem)(struct bpf_map *, void *); + long 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)(struct bpf_map *, void *, bool); + int (*map_gen_lookup)(struct bpf_map *, struct bpf_insn *); + u32 (*map_fd_sys_lookup_elem)(void *); + void (*map_seq_show_elem)(struct bpf_map *, void *, struct seq_file *); + int (*map_check_btf)(const struct bpf_map *, const struct btf *, const struct btf_type *, const struct btf_type *); + int (*map_poke_track)(struct bpf_map *, struct bpf_prog_aux *); + void (*map_poke_untrack)(struct bpf_map *, struct bpf_prog_aux *); + void (*map_poke_run)(struct bpf_map *, u32, struct bpf_prog *, struct bpf_prog *); + int (*map_direct_value_addr)(const struct bpf_map *, u64 *, u32); + int (*map_direct_value_meta)(const struct bpf_map *, u64, u32 *); + int (*map_mmap)(struct bpf_map *, struct vm_area_struct *); + __poll_t (*map_poll)(struct bpf_map *, struct file *, struct poll_table_struct *); + long unsigned int (*map_get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + 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 ** (*map_owner_storage_ptr)(void *); + long 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 *); + long 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; +}; + +struct llist_head { + struct llist_node *first; +}; + +struct rcuwait { + struct task_struct *task; +}; + +struct irq_work { + struct __call_single_node node; + void (*func)(struct irq_work *); + struct rcuwait irqwait; +}; + +struct bpf_mem_cache { + struct llist_head free_llist; + local_t active; + struct llist_head free_llist_extra; + struct irq_work refill_work; + struct obj_cgroup *objcg; + int unit_size; + int free_cnt; + int low_watermark; + int high_watermark; + int batch; + int percpu_size; + bool draining; + struct bpf_mem_cache *tgt; + struct llist_head free_by_rcu; + struct llist_node *free_by_rcu_tail; + struct llist_head waiting_for_gp; + struct llist_node *waiting_for_gp_tail; + struct callback_head rcu; + atomic_t call_rcu_in_progress; + struct llist_head free_llist_extra_rcu; + struct llist_head free_by_rcu_ttrace; + struct llist_head waiting_for_gp_ttrace; + struct callback_head rcu_ttrace; + atomic_t call_rcu_ttrace_in_progress; +}; + +struct bpf_mem_caches { + struct bpf_mem_cache cache[11]; +}; + +struct bpf_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + u64 delegate_cmds; + u64 delegate_maps; + u64 delegate_progs; + u64 delegate_attachs; +}; + +struct bpf_mprog_fp { + struct bpf_prog *prog; +}; + +struct bpf_mprog_bundle; + +struct bpf_mprog_entry { + struct bpf_mprog_fp fp_items[64]; + struct bpf_mprog_bundle *parent; +}; + +struct bpf_mprog_cp { + struct bpf_link *link; +}; + +struct bpf_mprog_bundle { + struct bpf_mprog_entry a; + struct bpf_mprog_entry b; + struct bpf_mprog_cp cp_items[64]; + struct bpf_prog *ref; + atomic64_t revision; + u32 count; +}; + +struct bpf_nested_pt_regs { + struct pt_regs regs[3]; +}; + +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 map_id; + enum bpf_map_type map_type; + struct bpf_nh_params nh; + u32 kern_flags; +}; + +struct bpf_net_context { + struct bpf_redirect_info ri; + struct list_head cpu_map_flush_list; + struct list_head dev_map_flush_list; + struct list_head xskmap_map_flush_list; +}; + +struct bpf_netns_link { + struct bpf_link link; + enum bpf_attach_type type; + enum netns_bpf_attach_type netns_type; + struct net *net; + struct list_head node; +}; + +typedef unsigned int nf_hookfn(void *, struct sk_buff *, const struct nf_hook_state *); + +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_defrag_hook; + +struct bpf_nf_link { + struct bpf_link link; + struct nf_hook_ops hook_ops; + netns_tracker ns_tracker; + struct net *net; + u32 dead; + const struct nf_defrag_hook *defrag_hook; +}; + +struct bpf_prog_offload_ops; + +struct bpf_offload_dev { + const struct bpf_prog_offload_ops *ops; + struct list_head netdevs; + void *priv; +}; + +struct bpf_offload_netdev { + struct rhash_head l; + struct net_device *netdev; + struct bpf_offload_dev *offdev; + struct list_head progs; + struct list_head maps; + struct list_head offdev_netdevs; +}; + +struct 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; +}; + +struct bpf_perf_event_value { + __u64 counter; + __u64 enabled; + __u64 running; +}; + +struct bpf_perf_link { + struct bpf_link link; + struct file *perf_file; +}; + +struct bpf_pidns_info { + __u32 pid; + __u32 tgid; +}; + +struct bpf_plt { + u32 insn_ldr; + u32 insn_br; + u64 target; +}; + +struct bpf_preload_info { + char link_name[16]; + struct bpf_link *link; +}; + +struct bpf_preload_ops { + int (*preload)(struct bpf_preload_info *); + struct module *owner; +}; + +struct sock_filter { + __u16 code; + __u8 jt; + __u8 jf; + __u32 k; +}; + +struct bpf_prog_stats; + +struct sock_fprog_kern; + +struct bpf_prog { + u16 pages; + u16 jited: 1; + u16 jit_requested: 1; + u16 gpl_compatible: 1; + u16 cb_access: 1; + u16 dst_needed: 1; + u16 blinding_requested: 1; + u16 blinded: 1; + u16 is_func: 1; + u16 kprobe_override: 1; + u16 has_callchain_buf: 1; + u16 enforce_expected_attach_type: 1; + u16 call_get_stack: 1; + u16 call_get_func_ip: 1; + u16 tstamp_type_access: 1; + u16 sleepable: 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 *stats; + int *active; + unsigned int (*bpf_func)(const void *, const struct bpf_insn *); + struct bpf_prog_aux *aux; + struct sock_fprog_kern *orig_prog; + union { + struct { + struct {} __empty_insns; + struct sock_filter insns[0]; + }; + struct { + struct {} __empty_insnsi; + struct bpf_insn insnsi[0]; + }; + }; +}; + +struct bpf_trampoline; + +struct bpf_prog_ops; + +struct btf_mod_pair; + +struct user_struct; + +struct bpf_token; + +struct bpf_prog_offload; + +struct exception_table_entry; + +struct bpf_prog_aux { + atomic64_t refcnt; + u32 used_map_cnt; + u32 used_btf_cnt; + u32 max_ctx_offset; + u32 max_pkt_offset; + u32 max_tp_access; + u32 stack_depth; + u32 id; + u32 func_cnt; + u32 real_func_cnt; + u32 func_idx; + u32 attach_btf_id; + u32 ctx_arg_info_size; + u32 max_rdonly_access; + u32 max_rdwr_access; + struct btf *attach_btf; + struct bpf_ctx_arg_aux *ctx_arg_info; + void *priv_stack_ptr; + 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 attach_tracing_prog; + bool func_proto_unreliable; + bool tail_call_reachable; + bool xdp_has_frags; + bool exception_cb; + bool exception_boundary; + bool is_extended; + bool jits_use_priv_stack; + bool priv_stack_requested; + bool changes_pkt_data; + u64 prog_array_member_cnt; + struct mutex ext_mutex; + struct bpf_arena *arena; + void (*recursion_detected)(struct bpf_prog *); + 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]; + u64 (*bpf_exception_cb)(u64, u64, u64, u64, u64); + void *security; + struct bpf_token *token; + struct bpf_prog_offload *offload; + struct btf *btf; + struct bpf_func_info *func_info; + struct bpf_func_info_aux *func_info_aux; + struct bpf_line_info *linfo; + void **jited_linfo; + u32 func_info_cnt; + u32 nr_linfo; + u32 linfo_idx; + struct module *mod; + u32 num_exentries; + struct exception_table_entry *extable; + union { + struct work_struct work; + struct callback_head rcu; + }; +}; + +struct bpf_prog_dummy { + struct bpf_prog prog; +}; + +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_prog_kstats { + u64 nsecs; + u64 cnt; + u64 misses; +}; + +struct bpf_prog_list { + struct hlist_node node; + struct bpf_prog *prog; + struct bpf_cgroup_link *link; + struct bpf_cgroup_storage *storage[2]; + u32 flags; +}; + +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_prog_offload_ops { + int (*insn_hook)(struct bpf_verifier_env *, int, int); + int (*finalize)(struct bpf_verifier_env *); + int (*replace_insn)(struct bpf_verifier_env *, u32, struct bpf_insn *); + int (*remove_insns)(struct bpf_verifier_env *, u32, u32); + int (*prepare)(struct bpf_prog *); + int (*translate)(struct bpf_prog *); + void (*destroy)(struct bpf_prog *); +}; + +struct bpf_prog_ops { + int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr *); +}; + +struct bpf_prog_pack { + struct list_head list; + void *ptr; + long unsigned int bitmap[0]; +}; + +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_queue_stack { + struct bpf_map map; + raw_spinlock_t lock; + u32 head; + u32 tail; + u32 size; + char elements[0]; +}; + +struct bpf_raw_event_map { + struct tracepoint *tp; + void *bpf_func; + u32 num_args; + u32 writable_size; + long: 64; +}; + +struct bpf_raw_tp_link { + struct bpf_link link; + struct bpf_raw_event_map *btp; + u64 cookie; +}; + +struct bpf_raw_tp_null_args { + const char *func; + u64 mask; +}; + +struct bpf_raw_tp_regs { + struct pt_regs regs[3]; +}; + +struct bpf_raw_tp_test_run_info { + struct bpf_prog *prog; + void *ctx; + u32 retval; +}; + +struct bpf_rb_node { + __u64 __opaque[4]; +}; + +struct bpf_rb_node_kern { + struct rb_node rb_node; + void *owner; +}; + +struct bpf_rb_root { + __u64 __opaque[2]; +}; + +struct bpf_redir_neigh { + __u32 nh_family; + union { + __be32 ipv4_nh; + __u32 ipv6_nh[4]; + }; +}; + +struct bpf_refcount { + __u32 __opaque[1]; +}; + +struct bpf_reference_state { + enum ref_state_type type; + int id; + int insn_idx; + void *ptr; +}; + +struct bpf_reg_types { + const enum bpf_reg_type types[10]; + u32 *btf_id; +}; + +struct bpf_ringbuf { + wait_queue_head_t waitq; + struct irq_work work; + u64 mask; + struct page **pages; + int nr_pages; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + raw_spinlock_t spinlock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_t busy; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long unsigned int 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; + long unsigned int producer_pos; + long unsigned int pending_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; + char data[0]; +}; + +struct bpf_ringbuf_hdr { + u32 len; + u32 pg_off; +}; + +struct bpf_ringbuf_map { + struct bpf_map map; + struct bpf_ringbuf *rb; +}; + +struct bpf_sanitize_info { + struct bpf_insn_aux_data aux; + bool mask_to_left; +}; + +struct bpf_security_struct { + u32 sid; +}; + +struct bpf_tramp_link { + struct bpf_link link; + struct hlist_node tramp_hlist; + u64 cookie; +}; + +struct bpf_shim_tramp_link { + struct bpf_tramp_link link; + struct bpf_trampoline *trampoline; +}; + +struct sk_psock_progs { + struct bpf_prog *msg_parser; + struct bpf_prog *stream_parser; + struct bpf_prog *stream_verdict; + struct bpf_prog *skb_verdict; + struct bpf_link *msg_parser_link; + struct bpf_link *stream_parser_link; + struct bpf_link *stream_verdict_link; + struct bpf_link *skb_verdict_link; +}; + +struct bpf_shtab_bucket; + +struct bpf_shtab { + struct bpf_map map; + struct bpf_shtab_bucket *buckets; + u32 buckets_num; + u32 elem_size; + struct sk_psock_progs progs; + atomic_t count; +}; + +struct bpf_shtab_bucket { + struct hlist_head head; + spinlock_t lock; +}; + +struct bpf_shtab_elem { + struct callback_head rcu; + u32 hash; + struct sock *sk; + struct hlist_node node; + u8 key[0]; +}; + +struct bpf_sk_storage_diag { + u32 nr_maps; + struct bpf_map *maps[0]; +}; + +struct qdisc_skb_cb { + struct { + unsigned int pkt_len; + u16 slave_dev_queue_mapping; + u16 tc_classid; + }; + unsigned char data[20]; +}; + +struct bpf_skb_data_end { + struct qdisc_skb_cb qdisc_cb; + void *data_meta; + void *data_end; +}; + +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_sockopt_buf { + u8 data[32]; +}; + +struct bpf_stab { + struct bpf_map map; + struct sock **sks; + struct sk_psock_progs progs; + spinlock_t lock; +}; + +struct bpf_stack_build_id { + __s32 status; + unsigned char build_id[20]; + union { + __u64 offset; + __u64 ip; + }; +}; + +struct stack_map_bucket; + +struct bpf_stack_map { + struct bpf_map map; + void *elems; + struct pcpu_freelist freelist; + u32 n_buckets; + struct stack_map_bucket *buckets[0]; +}; + +struct bpf_stack_state { + struct bpf_reg_state spilled_ptr; + u8 slot_type[8]; +}; + +struct bpf_storage_blob { + struct bpf_local_storage *storage; +}; + +struct bpf_storage_buffer { + struct callback_head rcu; + char data[0]; +}; + +struct bpf_verifier_ops; + +struct btf_member; + +struct bpf_struct_ops { + const struct bpf_verifier_ops *verifier_ops; + int (*init)(struct btf *); + int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); + int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); + int (*reg)(void *, struct bpf_link *); + void (*unreg)(void *, struct bpf_link *); + int (*update)(void *, void *, struct bpf_link *); + int (*validate)(void *); + void *cfi_stubs; + struct module *owner; + const char *name; + struct btf_func_model func_models[64]; +}; + +struct bpf_struct_ops_arg_info { + struct bpf_ctx_arg_aux *info; + u32 cnt; +}; + +struct bpf_struct_ops_common_value { + refcount_t refcnt; + enum bpf_struct_ops_state state; +}; + +struct bpf_struct_ops_bpf_dummy_ops { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct bpf_dummy_ops data; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_struct_ops_desc { + struct bpf_struct_ops *st_ops; + const struct btf_type *type; + const struct btf_type *value_type; + u32 type_id; + u32 value_id; + struct bpf_struct_ops_arg_info *arg_info; +}; + +struct hid_bpf_ctx; + +struct hid_device; + +struct hid_bpf_ops { + int hid_id; + u32 flags; + struct list_head list; + int (*hid_device_event)(struct hid_bpf_ctx *, enum hid_report_type, u64); + int (*hid_rdesc_fixup)(struct hid_bpf_ctx *); + int (*hid_hw_request)(struct hid_bpf_ctx *, unsigned char, enum hid_report_type, enum hid_class_request, u64); + int (*hid_hw_output_report)(struct hid_bpf_ctx *, u64); + struct hid_device *hdev; +}; + +struct bpf_struct_ops_hid_bpf_ops { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct hid_bpf_ops data; +}; + +struct bpf_struct_ops_link { + struct bpf_link link; + struct bpf_map *map; + wait_queue_head_t wait_hup; +}; + +struct bpf_struct_ops_value { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + char data[0]; +}; + +struct bpf_struct_ops_map { + struct bpf_map map; + const struct bpf_struct_ops_desc *st_ops_desc; + struct mutex lock; + struct bpf_link **links; + struct bpf_ksym **ksyms; + u32 funcs_cnt; + u32 image_pages_cnt; + void *image_pages[8]; + struct btf *btf; + struct bpf_struct_ops_value *uvalue; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct bpf_struct_ops_value kvalue; +}; + +struct scx_cpu_acquire_args; + +struct scx_cpu_release_args; + +struct scx_init_task_args; + +struct scx_exit_task_args; + +struct scx_dump_ctx; + +struct scx_cgroup_init_args; + +struct scx_exit_info; + +struct sched_ext_ops { + s32 (*select_cpu)(struct task_struct *, s32, u64); + void (*enqueue)(struct task_struct *, u64); + void (*dequeue)(struct task_struct *, u64); + void (*dispatch)(s32, struct task_struct *); + void (*tick)(struct task_struct *); + void (*runnable)(struct task_struct *, u64); + void (*running)(struct task_struct *); + void (*stopping)(struct task_struct *, bool); + void (*quiescent)(struct task_struct *, u64); + bool (*yield)(struct task_struct *, struct task_struct *); + bool (*core_sched_before)(struct task_struct *, struct task_struct *); + void (*set_weight)(struct task_struct *, u32); + void (*set_cpumask)(struct task_struct *, const struct cpumask *); + void (*update_idle)(s32, bool); + void (*cpu_acquire)(s32, struct scx_cpu_acquire_args *); + void (*cpu_release)(s32, struct scx_cpu_release_args *); + s32 (*init_task)(struct task_struct *, struct scx_init_task_args *); + void (*exit_task)(struct task_struct *, struct scx_exit_task_args *); + void (*enable)(struct task_struct *); + void (*disable)(struct task_struct *); + void (*dump)(struct scx_dump_ctx *); + void (*dump_cpu)(struct scx_dump_ctx *, s32, bool); + void (*dump_task)(struct scx_dump_ctx *, struct task_struct *); + s32 (*cgroup_init)(struct cgroup *, struct scx_cgroup_init_args *); + void (*cgroup_exit)(struct cgroup *); + s32 (*cgroup_prep_move)(struct task_struct *, struct cgroup *, struct cgroup *); + void (*cgroup_move)(struct task_struct *, struct cgroup *, struct cgroup *); + void (*cgroup_cancel_move)(struct task_struct *, struct cgroup *, struct cgroup *); + void (*cgroup_set_weight)(struct cgroup *, u32); + void (*cpu_online)(s32); + void (*cpu_offline)(s32); + s32 (*init)(void); + void (*exit)(struct scx_exit_info *); + u32 dispatch_max_batch; + u64 flags; + u32 timeout_ms; + u32 exit_dump_len; + u64 hotplug_seq; + char name[128]; +}; + +struct bpf_struct_ops_sched_ext_ops { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sched_ext_ops data; + long: 64; + long: 64; + long: 64; +}; + +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 *, u32, int, 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 bpf_struct_ops_tcp_congestion_ops { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct tcp_congestion_ops data; +}; + +struct bpf_subprog_arg_info { + enum bpf_arg_type arg_type; + union { + u32 mem_size; + u32 btf_id; + }; +}; + +struct bpf_subprog_info { + u32 start; + u32 linfo_idx; + u16 stack_depth; + u16 stack_extra; + s16 fastcall_stack_off; + bool has_tail_call: 1; + bool tail_call_reachable: 1; + bool has_ld_abs: 1; + bool is_cb: 1; + bool is_async_cb: 1; + bool is_exception_cb: 1; + bool args_cached: 1; + bool keep_fastcall_stack: 1; + bool changes_pkt_data: 1; + enum priv_stack_mode priv_stack_mode; + u8 arg_cnt; + struct bpf_subprog_arg_info args[5]; +}; + +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_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 bpf_tcp_req_attrs { + u32 rcv_tsval; + u32 rcv_tsecr; + u16 mss; + u8 rcv_wscale; + u8 snd_wscale; + u8 ecn_ok; + u8 wscale_ok; + u8 sack_ok; + u8 tstamp_ok; + u8 usec_ts_ok; + u8 reserved[3]; +}; + +struct bpf_tcp_sock { + __u32 snd_cwnd; + __u32 srtt_us; + __u32 rtt_min; + __u32 snd_ssthresh; + __u32 rcv_nxt; + __u32 snd_nxt; + __u32 snd_una; + __u32 mss_cache; + __u32 ecn_flags; + __u32 rate_delivered; + __u32 rate_interval_us; + __u32 packets_out; + __u32 retrans_out; + __u32 total_retrans; + __u32 segs_in; + __u32 data_segs_in; + __u32 segs_out; + __u32 data_segs_out; + __u32 lost_out; + __u32 sacked_out; + __u64 bytes_received; + __u64 bytes_acked; + __u32 dsack_dups; + __u32 delivered; + __u32 delivered_ce; + __u32 icsk_retransmits; +}; + +struct bpf_test_timer { + enum { + NO_PREEMPT = 0, + NO_MIGRATE = 1, + } mode; + u32 i; + u64 time_start; + u64 time_spent; +}; + +struct bpf_throw_ctx { + struct bpf_prog_aux *aux; + u64 sp; + u64 bp; + int cnt; +}; + +struct bpf_timer { + __u64 __opaque[2]; +}; + +struct user_namespace; + +struct bpf_token { + struct work_struct work; + atomic64_t refcnt; + struct user_namespace *userns; + u64 allowed_cmds; + u64 allowed_maps; + u64 allowed_progs; + u64 allowed_attachs; + void *security; +}; + +struct bpf_trace_module { + struct module *module; + struct list_head list; +}; + +struct bpf_trace_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + bool is_uprobe; +}; + +union perf_sample_weight { + __u64 full; + struct { + __u32 var1_dw; + __u16 var2_w; + __u16 var3_w; + }; +}; + +union perf_mem_data_src { + __u64 val; + struct { + __u64 mem_op: 5; + __u64 mem_lvl: 14; + __u64 mem_snoop: 5; + __u64 mem_lock: 2; + __u64 mem_dtlb: 7; + __u64 mem_lvl_num: 4; + __u64 mem_remote: 1; + __u64 mem_snoopx: 2; + __u64 mem_blk: 3; + __u64 mem_hops: 3; + __u64 mem_rsvd: 18; + }; +}; + +struct perf_regs { + __u64 abi; + struct pt_regs *regs; +}; + +struct perf_callchain_entry; + +struct perf_raw_record; + +struct perf_branch_stack; + +struct perf_sample_data { + u64 sample_flags; + u64 period; + u64 dyn_size; + u64 type; + struct { + u32 pid; + u32 tid; + } tid_entry; + u64 time; + u64 id; + struct { + u32 cpu; + u32 reserved; + } cpu_entry; + u64 ip; + struct perf_callchain_entry *callchain; + struct perf_raw_record *raw; + struct perf_branch_stack *br_stack; + u64 *br_stack_cntr; + union perf_sample_weight weight; + union perf_mem_data_src data_src; + u64 txn; + struct perf_regs regs_user; + struct perf_regs regs_intr; + u64 stack_user_size; + u64 stream_id; + u64 cgroup; + u64 addr; + u64 phys_addr; + u64 data_page_size; + u64 code_page_size; + u64 aux_size; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_trace_sample_data { + struct perf_sample_data sds[3]; +}; + +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_tramp_image { + void *image; + int size; + 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 bpf_tramp_links { + struct bpf_tramp_link *links[38]; + int nr_links; +}; + +struct bpf_tramp_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + struct bpf_run_ctx *saved_run_ctx; +}; + +struct ftrace_ops; + +struct bpf_trampoline { + struct hlist_node hlist; + struct ftrace_ops *fops; + struct mutex mutex; + refcount_t refcnt; + u32 flags; + u64 key; + struct { + struct btf_func_model model; + void *addr; + bool ftrace_managed; + } func; + struct bpf_prog *extension_prog; + struct hlist_head progs_hlist[3]; + int progs_cnt[3]; + struct bpf_tramp_image *cur_image; +}; + +struct bpf_tunnel_key { + __u32 tunnel_id; + union { + __u32 remote_ipv4; + __u32 remote_ipv6[4]; + }; + __u8 tunnel_tos; + __u8 tunnel_ttl; + union { + __u16 tunnel_ext; + __be16 tunnel_flags; + }; + __u32 tunnel_label; + union { + __u32 local_ipv4; + __u32 local_ipv6[4]; + }; +}; + +struct bpf_tuple { + struct bpf_prog *prog; + struct bpf_link *link; +}; + +struct udp_iter_state { + struct seq_net_private p; + int bucket; +}; + +struct bpf_udp_iter_state { + struct udp_iter_state state; + unsigned int cur_sk; + unsigned int end_sk; + unsigned int max_sk; + int offset; + struct sock **batch; + bool st_bucket_done; +}; + +struct 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 bpf_unwind_consume_entry_data { + bool (*consume_entry)(void *, u64, u64, u64); + void *cookie; +}; + +struct uprobe_consumer { + int (*handler)(struct uprobe_consumer *, struct pt_regs *, __u64 *); + int (*ret_handler)(struct uprobe_consumer *, long unsigned int, struct pt_regs *, __u64 *); + bool (*filter)(struct uprobe_consumer *, struct mm_struct *); + struct list_head cons_node; + __u64 id; +}; + +struct bpf_uprobe_multi_link; + +struct uprobe; + +struct bpf_uprobe { + struct bpf_uprobe_multi_link *link; + loff_t offset; + long unsigned int ref_ctr_offset; + u64 cookie; + struct uprobe *uprobe; + struct uprobe_consumer consumer; + bool session; +}; + +struct bpf_uprobe_multi_link { + struct path path; + struct bpf_link link; + u32 cnt; + u32 flags; + struct bpf_uprobe *uprobes; + struct task_struct *task; +}; + +struct bpf_uprobe_multi_run_ctx { + struct bpf_session_run_ctx session_ctx; + long unsigned int entry_ip; + struct bpf_uprobe *uprobe; +}; + +struct btf_mod_pair { + struct btf *btf; + struct module *module; +}; + +struct bpf_verifier_log { + u64 start_pos; + u64 end_pos; + char *ubuf; + u32 level; + u32 len_total; + u32 len_max; + char kbuf[1024]; +}; + +struct bpf_verifier_stack_elem; + +struct bpf_verifier_state; + +struct bpf_verifier_state_list; + +struct bpf_verifier_env { + u32 insn_idx; + u32 prev_insn_idx; + struct bpf_prog *prog; + const struct bpf_verifier_ops *ops; + struct module *attach_btf_mod; + struct bpf_verifier_stack_elem *head; + int stack_size; + bool strict_alignment; + bool test_state_freq; + bool test_reg_invariants; + struct bpf_verifier_state *cur_state; + struct bpf_verifier_state_list **explored_states; + struct bpf_verifier_state_list *free_list; + struct bpf_map *used_maps[64]; + struct btf_mod_pair used_btfs[64]; + u32 used_map_cnt; + u32 used_btf_cnt; + u32 id_gen; + u32 hidden_subprog_cnt; + int exception_callback_subprog; + bool explore_alu_limits; + bool allow_ptr_leaks; + bool allow_uninit_stack; + bool bpf_capable; + bool bypass_spec_v1; + bool bypass_spec_v4; + bool seen_direct_write; + bool seen_exception; + struct bpf_insn_aux_data *insn_aux_data; + const struct bpf_line_info *prev_linfo; + struct bpf_verifier_log log; + struct bpf_subprog_info subprog_info[258]; + union { + struct bpf_idmap idmap_scratch; + struct bpf_idset idset_scratch; + }; + struct { + int *insn_state; + int *insn_stack; + int cur_stack; + } cfg; + struct backtrack_state bt; + struct bpf_insn_hist_entry *insn_hist; + struct bpf_insn_hist_entry *cur_hist_ent; + u32 insn_hist_cap; + u32 pass_cnt; + u32 subprog_cnt; + u32 prev_insn_processed; + u32 insn_processed; + u32 prev_jmps_processed; + u32 jmps_processed; + u64 verification_time; + u32 max_states_per_insn; + u32 total_states; + u32 peak_states; + u32 longest_mark_read_walk; + bpfptr_t fd_array; + u32 scratched_regs; + u64 scratched_stack_slots; + u64 prev_log_pos; + u64 prev_insn_print_pos; + struct bpf_reg_state fake_reg[2]; + char tmp_str_buf[320]; + struct bpf_insn insn_buf[32]; + struct bpf_insn epilogue_buf[32]; +}; + +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_epilogue)(struct bpf_insn *, const struct bpf_prog *, s16); + int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); + u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int); +}; + +struct bpf_verifier_state { + struct bpf_func_state *frame[8]; + struct bpf_verifier_state *parent; + struct bpf_reference_state *refs; + u32 branches; + u32 insn_idx; + u32 curframe; + u32 acquired_refs; + u32 active_locks; + u32 active_preempt_locks; + u32 active_irq_id; + bool active_rcu_lock; + bool speculative; + bool used_as_loop_entry; + bool in_sleepable; + u32 first_insn_idx; + u32 last_insn_idx; + struct bpf_verifier_state *loop_entry; + u32 insn_hist_start; + u32 insn_hist_end; + u32 dfs_depth; + u32 callback_unroll_depth; + u32 may_goto_depth; +}; + +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_verifier_state_list { + struct bpf_verifier_state state; + struct bpf_verifier_state_list *next; + int miss_cnt; + int hit_cnt; +}; + +struct bpf_work { + struct bpf_async_cb cb; + struct work_struct work; + struct work_struct delete_work; +}; + +struct bpf_wq { + __u64 __opaque[2]; +}; + +struct bpf_xdp_link; + +struct bpf_xdp_entity { + struct bpf_prog *prog; + struct bpf_xdp_link *link; +}; + +struct bpf_xdp_link { + struct bpf_link link; + struct net_device *dev; + int flags; +}; + +struct bpf_xdp_sock { + __u32 queue_id; +}; + +struct bpf_xfrm_state { + __u32 reqid; + __u32 spi; + __u16 family; + __u16 ext; + union { + __u32 remote_ipv4; + __u32 remote_ipv6[4]; + }; +}; + +struct bpf_xfrm_state_opts { + s32 error; + s32 netns_id; + u32 mark; + xfrm_address_t daddr; + __be32 spi; + u8 proto; + u16 family; +}; + +struct bpffs_btf_enums { + const struct btf *btf; + const struct btf_type *cmd_t; + const struct btf_type *map_t; + const struct btf_type *prog_t; + const struct btf_type *attach_t; +}; + +struct trace_entry { + short unsigned int type; + unsigned char flags; + unsigned char preempt_count; + int pid; +}; + +struct bprint_entry { + struct trace_entry ent; + long unsigned int ip; + const char *fmt; + u32 buf[0]; +}; + +struct bputs_entry { + struct trace_entry ent; + long unsigned int ip; + const char *str; +}; + +struct br_input_skb_cb { + struct net_device *brdev; + u16 frag_max_size; + u8 igmp; + u8 mrouters_only: 1; + u8 proxyarp_replied: 1; + u8 src_port_isolated: 1; + u8 promisc: 1; + u8 vlan_filtered: 1; + u8 br_netfilter_broute: 1; + u8 tx_fwd_offload: 1; + int src_hwdom; + long unsigned int fwd_hwdoms; + u32 backup_nhid; +}; + +struct br_ip { + union { + __be32 ip4; + struct in6_addr ip6; + } src; + union { + __be32 ip4; + struct in6_addr ip6; + unsigned char mac_addr[6]; + } dst; + __be16 proto; + __u16 vid; +}; + +struct br_mcast_stats { + __u64 igmp_v1queries[2]; + __u64 igmp_v2queries[2]; + __u64 igmp_v3queries[2]; + __u64 igmp_leaves[2]; + __u64 igmp_v1reports[2]; + __u64 igmp_v2reports[2]; + __u64 igmp_v3reports[2]; + __u64 igmp_parse_errors; + __u64 mld_v1queries[2]; + __u64 mld_v2queries[2]; + __u64 mld_leaves[2]; + __u64 mld_v1reports[2]; + __u64 mld_v2reports[2]; + __u64 mld_parse_errors; + __u64 mcast_bytes[2]; + __u64 mcast_packets[2]; +}; + +struct br_mdb_entry { + __u32 ifindex; + __u8 state; + __u8 flags; + __u16 vid; + struct { + union { + __be32 ip4; + struct in6_addr ip6; + unsigned char mac_addr[6]; + } u; + __be16 proto; + } addr; +}; + +struct br_port_msg { + __u8 family; + __u32 ifindex; +}; + +struct metadata_dst; + +struct br_tunnel_info { + __be64 tunnel_id; + struct metadata_dst *tunnel_dst; +}; + +struct break_hook { + struct list_head node; + int (*fn)(struct pt_regs *, long unsigned int); + u16 imm; + u16 mask; +}; + +struct bridge_id { + unsigned char prio[2]; + unsigned char addr[6]; +}; + +typedef struct bridge_id bridge_id; + +struct bridge_mcast_other_query { + struct timer_list timer; + struct timer_list delay_timer; +}; + +struct bridge_mcast_own_query { + struct timer_list timer; + u32 startup_sent; +}; + +struct bridge_mcast_querier { + struct br_ip addr; + int port_ifidx; + seqcount_spinlock_t seq; +}; + +struct bridge_mcast_stats { + struct br_mcast_stats mstats; + struct u64_stats_sync syncp; +}; + +struct bridge_stp_xstats { + __u64 transition_blk; + __u64 transition_fwd; + __u64 rx_bpdu; + __u64 tx_bpdu; + __u64 rx_tcn; + __u64 tx_tcn; +}; + +struct broadcast_sk { + struct sock *sk; + struct work_struct work; +}; + +struct broken_edid { + u8 manufacturer[4]; + u32 model; + u32 fix; +}; + +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 bsd_acct_struct { + struct fs_pin pin; + atomic_long_t count; + struct callback_head rcu; + struct mutex lock; + bool active; + bool check_space; + long unsigned int needcheck; + struct file *file; + struct pid_namespace *ns; + struct work_struct work; + struct completion done; + acct_t ac; +}; + +struct bsd_partition { + __le32 p_size; + __le32 p_offset; + __le32 p_fsize; + __u8 p_fstype; + __u8 p_frag; + __le16 p_cpg; +}; + +struct bsd_disklabel { + __le32 d_magic; + __s16 d_type; + __s16 d_subtype; + char d_typename[16]; + char d_packname[16]; + __u32 d_secsize; + __u32 d_nsectors; + __u32 d_ntracks; + __u32 d_ncylinders; + __u32 d_secpercyl; + __u32 d_secperunit; + __u16 d_sparespertrack; + __u16 d_sparespercyl; + __u32 d_acylinders; + __u16 d_rpm; + __u16 d_interleave; + __u16 d_trackskew; + __u16 d_cylskew; + __u32 d_headswitch; + __u32 d_trkseek; + __u32 d_flags; + __u32 d_drivedata[5]; + __u32 d_spare[5]; + __le32 d_magic2; + __le16 d_checksum; + __le16 d_npartitions; + __le32 d_bbsize; + __le32 d_sbsize; + struct bsd_partition d_partitions[16]; +}; + +struct bsg_buffer { + unsigned int payload_len; + int sg_cnt; + struct scatterlist *sg_list; +}; + +struct cdev { + struct kobject kobj; + struct module *owner; + const struct file_operations *ops; + struct list_head list; + dev_t dev; + unsigned int count; +}; + +struct sg_io_v4; + +typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int); + +struct bsg_device { + struct request_queue *queue; + struct device device; + struct cdev cdev; + int max_queue; + unsigned int timeout; + unsigned int reserved_size; + bsg_sg_io_fn *sg_io_fn; +}; + +struct bsg_job { + struct device *dev; + struct kref kref; + unsigned int timeout; + void *request; + void *reply; + unsigned int request_len; + unsigned int reply_len; + struct bsg_buffer request_payload; + struct bsg_buffer reply_payload; + int result; + unsigned int reply_payload_rcv_len; + struct request *bidi_rq; + struct bio *bidi_bio; + void *dd_data; +}; + +typedef int bsg_job_fn(struct bsg_job *); + +typedef enum blk_eh_timer_return bsg_timeout_fn(struct request *); + +struct bsg_set { + struct blk_mq_tag_set tag_set; + struct bsg_device *bd; + bsg_job_fn *job_fn; + bsg_timeout_fn *timeout_fn; +}; + +typedef bool busy_tag_iter_fn(struct request *, 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 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_struct_ops_tab; + +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_struct_ops_tab *struct_ops_tab; + struct btf *base_btf; + u32 start_id; + u32 start_str_off; + char name[56]; + bool kernel_btf; + __u32 *base_id_map; +}; + +struct btf_anon_stack { + u32 tid; + u32 offset; +}; + +struct btf_array { + __u32 type; + __u32 index_type; + __u32 nelems; +}; + +struct btf_decl_tag { + __s32 component_idx; +}; + +struct btf_enum { + __u32 name_off; + __s32 val; +}; + +struct btf_enum64 { + __u32 name_off; + __u32 val_lo32; + __u32 val_hi32; +}; + +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; + u32 size; + enum btf_field_type type; + union { + struct btf_field_kptr kptr; + struct btf_field_graph_root graph_root; + }; +}; + +struct btf_field_desc { + int t_off_cnt; + int t_offs[2]; + int m_sz; + int m_off_cnt; + int m_offs[1]; +}; + +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 btf_field_iter { + struct btf_field_desc desc; + void *p; + int m_idx; + int off_idx; + int vlen; +}; + +struct btf_id_dtor_kfunc { + u32 btf_id; + u32 kfunc_btf_id; +}; + +struct btf_id_dtor_kfunc_tab { + u32 cnt; + struct btf_id_dtor_kfunc dtors[0]; +}; + +struct btf_id_set { + u32 cnt; + u32 ids[0]; +}; + +struct btf_id_set8 { + u32 cnt; + u32 flags; + struct { + u32 id; + u32 flags; + } pairs[0]; +}; + +typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); + +struct btf_kfunc_hook_filter { + btf_kfunc_filter_t filters[16]; + u32 nr_filters; +}; + +struct btf_kfunc_id_set { + struct module *owner; + struct btf_id_set8 *set; + btf_kfunc_filter_t filter; +}; + +struct btf_kfunc_set_tab { + struct btf_id_set8 *sets[14]; + struct btf_kfunc_hook_filter hook_filters[14]; +}; + +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 btf_member { + __u32 name_off; + __u32 type; + __u32 offset; +}; + +struct btf_module { + struct list_head list; + struct module *module; + struct btf *btf; + struct bin_attribute *sysfs_attr; + int flags; +}; + +struct btf_name_info { + const char *name; + bool needs_size: 1; + unsigned int size: 31; + __u32 id; +}; + +struct btf_param { + __u32 name_off; + __u32 type; +}; + +struct btf_ptr { + void *ptr; + __u32 type_id; + __u32 flags; +}; + +struct btf_record { + u32 cnt; + u32 field_mask; + int spin_lock_off; + int timer_off; + int wq_off; + int refcount_off; + struct btf_field fields[0]; +}; + +struct btf_relocate { + struct btf *btf; + const struct btf *base_btf; + const struct btf *dist_base_btf; + unsigned int nr_base_types; + unsigned int nr_split_types; + unsigned int nr_dist_base_types; + int dist_str_len; + int base_str_len; + __u32 *id_map; + __u32 *str_map; +}; + +struct btf_sec_info { + u32 off; + u32 len; +}; + +struct btf_show { + u64 flags; + void *target; + void (*showfn)(struct btf_show *, const char *, va_list); + const struct btf *btf; + struct { + u8 depth; + u8 depth_to_show; + u8 depth_check; + u8 array_member: 1; + u8 array_terminated: 1; + u16 array_encoding; + u32 type_id; + int status; + const struct btf_type *type; + const struct btf_member *member; + char name[80]; + } state; + struct { + u32 size; + void *head; + void *data; + u8 safe[32]; + } obj; +}; + +struct btf_show_snprintf { + struct btf_show show; + int len_left; + int len; +}; + +struct btf_struct_meta { + u32 btf_id; + struct btf_record *record; +}; + +struct btf_struct_metas { + u32 cnt; + struct btf_struct_meta types[0]; +}; + +struct btf_struct_ops_tab { + u32 cnt; + u32 capacity; + struct bpf_struct_ops_desc ops[0]; +}; + +struct btf_type { + __u32 name_off; + __u32 info; + union { + __u32 size; + __u32 type; + }; +}; + +struct btf_var { + __u32 linkage; +}; + +struct btf_var_secinfo { + __u32 type; + __u32 offset; + __u32 size; +}; + +struct resolve_vertex { + const struct btf_type *t; + u32 type_id; + u16 next_member; +}; + +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 btree_geo { + int keylen; + int no_pairs; + int no_longs; +}; + +struct btree_head { + long unsigned int *node; + mempool_t *mempool; + int height; +}; + +struct nd_btt; + +struct nd_region; + +struct btt { + struct gendisk *btt_disk; + struct list_head arena_list; + struct dentry *debugfs_dir; + struct nd_btt *nd_btt; + u64 nlba; + long long unsigned int rawsize; + u32 lbasize; + u32 sector_size; + struct nd_region *nd_region; + struct mutex init_lock; + int init_state; + int num_arenas; + struct badblocks *phys_bb; +}; + +struct btt_sb { + u8 signature[16]; + u8 uuid[16]; + u8 parent_uuid[16]; + __le32 flags; + __le16 version_major; + __le16 version_minor; + __le32 external_lbasize; + __le32 external_nlba; + __le32 internal_lbasize; + __le32 internal_nlba; + __le32 nfree; + __le32 infosize; + __le64 nextoff; + __le64 dataoff; + __le64 mapoff; + __le64 logoff; + __le64 info2off; + u8 padding[3968]; + __le64 checksum; +}; + +struct hlist_nulls_head { + struct hlist_nulls_node *first; +}; + +struct bucket { + struct hlist_nulls_head head; + raw_spinlock_t raw_lock; +}; + +struct lockdep_map {}; + +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 *future_tbl; + struct lockdep_map dep_map; + long: 64; + struct rhash_lock_head *buckets[0]; +}; + +struct buf_sel_arg { + struct iovec *iovs; + size_t out_len; + size_t max_len; + short unsigned int nr_iovs; + short unsigned int mode; +}; + +struct bufdesc { + __le16 cbd_datlen; + __le16 cbd_sc; + __le32 cbd_bufaddr; +}; + +struct bufdesc_ex { + struct bufdesc desc; + __le32 cbd_esc; + __le32 cbd_prot; + __le32 cbd_bdu; + __le32 ts; + __le16 res0[4]; +}; + +struct bufdesc_prop { + int qid; + struct bufdesc *base; + struct bufdesc *last; + struct bufdesc *cur; + void *reg_desc_active; + dma_addr_t dma; + short unsigned int ring_size; + unsigned char dsize; + unsigned char dsize_log2; +}; + +struct buffer_data_page { + u64 time_stamp; + local_t commit; + unsigned char data[0]; +}; + +struct buffer_data_read_page { + unsigned int order; + struct buffer_data_page *data; +}; + +typedef void bh_end_io_t(struct buffer_head *, int); + +struct buffer_head { + long unsigned int 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 buffer_page { + struct list_head list; + local_t write; + unsigned int read; + local_t entries; + long unsigned int real_end; + unsigned int order; + u32 id: 30; + u32 range: 1; + struct buffer_data_page *page; +}; + +struct buffer_ref { + struct trace_buffer *buffer; + void *page; + int cpu; + refcount_t refcount; +}; + +struct bug_entry { + int bug_addr_disp; + int file_disp; + short unsigned int line; + short unsigned int flags; +}; + +struct builtin_fw { + char *name; + void *data; + long unsigned int size; +}; + +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 int (*fill)(void *, long unsigned int); + long int inbufCount; + long int 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 burst_table { + u32 burstwords; + u32 reg; +}; + +struct bus_attribute { + struct attribute attr; + ssize_t (*show)(const struct bus_type *, char *); + ssize_t (*store)(const struct bus_type *, const char *, size_t); +}; + +struct bus_dma_region { + phys_addr_t cpu_start; + dma_addr_t dma_start; + u64 size; +}; + +struct bus_type { + const char *name; + const char *dev_name; + const struct attribute_group **bus_groups; + const struct attribute_group **dev_groups; + const struct attribute_group **drv_groups; + int (*match)(struct device *, const 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 *); + const struct cpumask * (*irq_get_affinity)(struct device *, unsigned int); + 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; + bool need_parent_lock; +}; + +struct bvec_iter_all { + struct bio_vec bv; + int idx; + unsigned int done; +}; + +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 cache_head { + struct hlist_node cache_list; + time64_t expiry_time; + time64_t last_refresh; + struct kref ref; + long unsigned int flags; +}; + +struct cache_req { + struct cache_deferred_req * (*defer)(struct cache_req *); + long unsigned int thread_wait; +}; + +struct cache_req___2 { + u32 addr; + u32 sleep_val; + u32 wake_val; + struct list_head list; +}; + +struct cache_type_info { + const char *size_prop; + const char *line_size_props[2]; + const char *nr_sets_prop; +}; + +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 cacheline_padding { + char x[0]; +}; + +struct cachestat { + __u64 nr_cache; + __u64 nr_dirty; + __u64 nr_writeback; + __u64 nr_evicted; + __u64 nr_recently_evicted; +}; + +struct cachestat_range { + __u64 off; + __u64 len; +}; + +struct calipso_doi { + u32 doi; + u32 type; + refcount_t refcount; + struct list_head list; + struct callback_head rcu; +}; + +struct calipso_map_cache_bkt { + spinlock_t lock; + u32 size; + struct list_head list; +}; + +struct netlbl_lsm_cache; + +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; +}; + +struct call_function_data { + call_single_data_t *csd; + cpumask_var_t cpumask; + cpumask_var_t cpumask_ipi; +}; + +struct callchain_cpus_entries { + struct callback_head callback_head; + struct perf_callchain_entry *cpu_entries[0]; +}; + +struct compact_control; + +struct capture_control { + struct compact_control *cc; + struct page *page; +}; + +struct cat_datum { + u32 value; + unsigned char isalias; +}; + +struct cause { + const char *sym; + const char *str; +}; + +struct cavium_smmu { + struct arm_smmu_device___2 smmu; + u32 id_base; +}; + +struct cb_id { + __u32 idx; + __u32 val; +}; + +struct cci_pmu_hw_events { + struct perf_event **events; + long unsigned int *used_mask; + raw_spinlock_t pmu_lock; +}; + +struct cci_pmu_model; + +struct cci_pmu { + void *base; + void *ctrl_base; + struct pmu pmu; + int cpu; + int nr_irqs; + int *irqs; + long unsigned int active_irqs; + const struct cci_pmu_model *model; + struct cci_pmu_hw_events hw_events; + struct platform_device *plat_device; + int num_cntrs; + atomic_t active_events; + struct mutex reserve_mutex; +}; + +struct event_range { + u32 min; + u32 max; +}; + +struct cci_pmu_model { + char *name; + u32 fixed_hw_cntrs; + u32 num_hw_cntrs; + u32 cntr_size; + struct attribute **format_attrs; + struct attribute **event_attrs; + struct event_range event_ranges[3]; + int (*validate_hw_event)(struct cci_pmu *, long unsigned int); + int (*get_event_idx)(struct cci_pmu *, struct cci_pmu_hw_events *, long unsigned int); + void (*write_counters)(struct cci_pmu *, long unsigned int *); +}; + +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 ccsr_guts { + u32 porpllsr; + u32 porbmsr; + u32 porimpscr; + u32 pordevsr; + u32 pordbgmsr; + u32 pordevsr2; + u8 res018[8]; + u32 porcir; + u8 res024[12]; + u32 gpiocr; + u8 res034[12]; + u32 gpoutdr; + u8 res044[12]; + u32 gpindr; + u8 res054[12]; + u32 pmuxcr; + u32 pmuxcr2; + u32 dmuxcr; + u8 res06c[4]; + u32 devdisr; + u32 devdisr2; + u8 res078[4]; + u32 pmjcr; + u32 powmgtcsr; + u32 pmrccr; + u32 pmpdccr; + u32 pmcdr; + u32 mcpsumr; + u32 rstrscr; + u32 ectrstcr; + u32 autorstsr; + u32 pvr; + u32 svr; + u8 res0a8[8]; + u32 rstcr; + u8 res0b4[12]; + u32 iovselsr; + u8 res0c4[60]; + u32 rcwsr[16]; + u8 res140[228]; + u32 iodelay1; + u32 iodelay2; + u8 res22c[984]; + u32 pamubypenr; + u8 res608[504]; + u32 clkdvdr; + u8 res804[252]; + u32 ircr; + u8 res904[4]; + u32 dmacr; + u8 res90c[8]; + u32 elbccr; + u8 res918[520]; + u32 ddr1clkdr; + u32 ddr2clkdr; + u32 ddrclkdr; + u8 resb2c[724]; + u32 clkocr; + u8 rese04[12]; + u32 ddrdllcr; + u8 rese14[12]; + u32 lbcdllcr; + u32 cpfor; + u8 rese28[220]; + u32 srds1cr0; + u32 srds1cr1; + u8 resf0c[32]; + u32 itcr; + u8 resf30[16]; + u32 srds2cr0; + u32 srds2cr1; +}; + +struct ccu_common { + void *base; + u16 reg; + u16 lock_reg; + u32 prediv; + long unsigned int min_rate; + long unsigned int max_rate; + long unsigned int features; + spinlock_t *lock; + struct clk_hw hw; +}; + +struct ccu_div_internal { + u8 shift; + u8 width; + u32 max; + u32 offset; + u32 flags; + struct clk_div_table *table; +}; + +struct ccu_mux_fixed_prediv; + +struct ccu_mux_var_prediv; + +struct ccu_mux_internal { + u8 shift; + u8 width; + const u8 *table; + const struct ccu_mux_fixed_prediv *fixed_predivs; + u8 n_predivs; + const struct ccu_mux_var_prediv *var_predivs; + u8 n_var_predivs; +}; + +struct ccu_div { + u32 enable; + struct ccu_div_internal div; + struct ccu_mux_internal mux; + struct ccu_common common; + unsigned int fixed_post_div; +}; + +struct ccu_frac_internal { + u32 enable; + u32 select; + long unsigned int rates[2]; +}; + +struct ccu_gate { + u32 enable; + struct ccu_common common; +}; + +struct ccu_mp { + u32 enable; + struct ccu_div_internal m; + struct ccu_div_internal p; + struct ccu_mux_internal mux; + unsigned int fixed_post_div; + struct ccu_common common; +}; + +struct ccu_mult_internal { + u8 offset; + u8 shift; + u8 width; + u8 min; + u8 max; +}; + +struct ccu_mult { + u32 enable; + u32 lock; + struct ccu_frac_internal frac; + struct ccu_mult_internal mult; + struct ccu_mux_internal mux; + struct ccu_common common; +}; + +struct ccu_mux { + u32 enable; + struct ccu_mux_internal mux; + struct ccu_common common; +}; + +struct ccu_mux_fixed_prediv { + u8 index; + u16 div; +}; + +struct ccu_mux_nb { + struct notifier_block clk_nb; + struct ccu_common *common; + struct ccu_mux_internal *cm; + u32 delay_us; + u8 bypass_index; + u8 original_index; +}; + +struct ccu_mux_var_prediv { + u8 index; + u8 shift; + u8 width; +}; + +struct ccu_nk { + u16 reg; + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_mult_internal k; + unsigned int fixed_post_div; + struct ccu_common common; +}; + +struct ccu_nkm { + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_mult_internal k; + struct ccu_div_internal m; + struct ccu_mux_internal mux; + unsigned int fixed_post_div; + long unsigned int max_m_n_ratio; + long unsigned int min_parent_m_ratio; + struct ccu_common common; +}; + +struct ccu_nkmp { + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_mult_internal k; + struct ccu_div_internal m; + struct ccu_div_internal p; + unsigned int fixed_post_div; + unsigned int max_rate; + struct ccu_common common; +}; + +struct ccu_sdm_setting; + +struct ccu_sdm_internal { + struct ccu_sdm_setting *table; + u32 table_size; + u32 enable; + u32 tuning_enable; + u16 tuning_reg; +}; + +struct ccu_nm { + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_div_internal m; + struct ccu_frac_internal frac; + struct ccu_sdm_internal sdm; + unsigned int fixed_post_div; + unsigned int min_rate; + unsigned int max_rate; + struct ccu_common common; +}; + +struct ccu_phase { + u8 shift; + u8 width; + struct ccu_common common; +}; + +struct ccu_pll_nb { + struct notifier_block clk_nb; + struct ccu_common *common; + u32 enable; + u32 lock; +}; + +struct ccu_reset_map; + +struct ccu_reset { + void *base; + const struct ccu_reset_map *reset_map; + spinlock_t *lock; + struct reset_controller_dev rcdev; +}; + +struct ccu_reset_map { + u16 reg; + u32 bit; +}; + +struct ccu_sdm_setting { + long unsigned int rate; + u32 pattern; + u32 m; + u32 n; +}; + +struct device_link; + +struct cdns_pcie_ops; + +struct cdns_pcie { + void *reg_base; + struct resource *mem_res; + struct device *dev; + bool is_rc; + int phy_count; + struct phy **phy; + struct device_link **link; + const struct cdns_pcie_ops *ops; +}; + +struct cdns_pcie_epf; + +struct cdns_pcie_ep { + struct cdns_pcie pcie; + u32 max_regions; + long unsigned int ob_region_map; + phys_addr_t *ob_addr; + phys_addr_t irq_phys_addr; + void *irq_cpu_addr; + u64 irq_pci_addr; + u8 irq_pci_fn; + u8 irq_pending; + spinlock_t lock; + struct cdns_pcie_epf *epf; + unsigned int quirk_detect_quiet_flag: 1; + unsigned int quirk_disable_flr: 1; +}; + +struct pci_epf_bar; + +struct cdns_pcie_epf { + struct cdns_pcie_epf *epf; + struct pci_epf_bar *epf_bar[6]; +}; + +struct cdns_pcie_ops { + int (*start_link)(struct cdns_pcie *); + void (*stop_link)(struct cdns_pcie *); + bool (*link_up)(struct cdns_pcie *); + u64 (*cpu_addr_fixup)(struct cdns_pcie *, u64); +}; + +struct cdns_pcie_rc { + struct cdns_pcie pcie; + struct resource *cfg_res; + void *cfg_base; + u32 vendor_id; + u32 device_id; + bool avail_ib_bar[3]; + unsigned int quirk_retrain_flag: 1; + unsigned int quirk_detect_quiet_flag: 1; +}; + +struct cdns_plat_pcie { + struct cdns_pcie *pcie; +}; + +struct cdns_plat_pcie_of_data { + bool is_rc; +}; + +struct cdrom_msf0 { + __u8 minute; + __u8 second; + __u8 frame; +}; + +union cdrom_addr { + struct cdrom_msf0 msf; + int lba; +}; + +struct cdrom_blk { + unsigned int from; + short unsigned int len; +}; + +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]; +}; + +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; + short unsigned int mmc3_profile; + int (*exit)(struct cdrom_device_info *); + int mrw_mode_page; + bool opened_for_data; + __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 *, long unsigned 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 *, u32, u32, u8 *); + const int capability; +}; + +struct request_sense; + +struct cdrom_generic_command { + unsigned char cmd[12]; + unsigned char *buffer; + unsigned int buflen; + int stat; + struct request_sense *sense; + unsigned char data_direction; + int quiet; + int timeout; + union { + void *reserved[1]; + void *unused; + }; +}; + +struct cdrom_mcn { + __u8 medium_catalog_number[14]; +}; + +struct cdrom_msf { + __u8 cdmsf_min0; + __u8 cdmsf_sec0; + __u8 cdmsf_frame0; + __u8 cdmsf_min1; + __u8 cdmsf_sec1; + __u8 cdmsf_frame1; +}; + +struct cdrom_multisession { + union cdrom_addr addr; + __u8 xa_flag; + __u8 addr_format; +}; + +struct cdrom_read_audio { + union cdrom_addr addr; + __u8 addr_format; + int nframes; + __u8 *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_sysctl_settings { + char info[1000]; + int autoclose; + int autoeject; + int debug; + int lock; + int check; +}; + +struct cdrom_ti { + __u8 cdti_trk0; + __u8 cdti_ind0; + __u8 cdti_trk1; + __u8 cdti_ind1; +}; + +struct cdrom_timed_media_change_info { + __s64 last_media_change; + __u64 media_flags; +}; + +struct cdrom_tocentry { + __u8 cdte_track; + __u8 cdte_adr: 4; + __u8 cdte_ctrl: 4; + __u8 cdte_format; + union cdrom_addr cdte_addr; + __u8 cdte_datamode; +}; + +struct cdrom_tochdr { + __u8 cdth_trk0; + __u8 cdth_trk1; +}; + +struct cdrom_volctrl { + __u8 channel0; + __u8 channel1; + __u8 channel2; + __u8 channel3; +}; + +struct cdx_ops; + +struct cdx_controller { + struct device *dev; + void *priv; + struct irq_domain *msi_domain; + u32 id; + bool controller_registered; + struct cdx_ops *ops; +}; + +struct cdx_dev_params { + struct cdx_controller *cdx; + struct device *parent; + u16 vendor; + u16 device; + u16 subsys_vendor; + u16 subsys_device; + u8 bus_num; + u8 dev_num; + struct resource res[4]; + u8 res_count; + u32 req_id; + u32 class; + u8 revision; + u32 msi_dev_id; + u32 num_msi; +}; + +struct cdx_device { + struct device dev; + struct cdx_controller *cdx; + u16 vendor; + u16 device; + u16 subsystem_vendor; + u16 subsystem_device; + u32 class; + u8 revision; + u8 bus_num; + u8 dev_num; + struct resource res[4]; + struct bin_attribute *res_attr[4]; + struct dentry *debugfs_dir; + u8 res_count; + u64 dma_mask; + u16 flags; + u32 req_id; + bool is_bus; + bool enabled; + u32 msi_dev_id; + u32 num_msi; + const char *driver_override; + struct mutex irqchip_lock; + bool msi_write_pending; +}; + +struct cdx_msi_config { + u64 addr; + u32 data; + u16 msi_index; +}; + +struct cdx_device_config { + u8 type; + union { + struct cdx_msi_config msi; + bool bus_master_enable; + bool msi_enable; + }; +}; + +struct cdx_device_id { + __u16 vendor; + __u16 device; + __u16 subvendor; + __u16 subdevice; + __u32 class; + __u32 class_mask; + __u32 override_only; +}; + +struct cdx_driver { + struct device_driver driver; + const struct cdx_device_id *match_id_table; + int (*probe)(struct cdx_device *); + int (*remove)(struct cdx_device *); + void (*shutdown)(struct cdx_device *); + void (*reset_prepare)(struct cdx_device *); + void (*reset_done)(struct cdx_device *); + bool driver_managed_dma; +}; + +typedef int (*cdx_bus_enable_cb)(struct cdx_controller *, u8); + +typedef int (*cdx_bus_disable_cb)(struct cdx_controller *, u8); + +typedef int (*cdx_scan_cb)(struct cdx_controller *); + +typedef int (*cdx_dev_configure_cb)(struct cdx_controller *, u8, u8, struct cdx_device_config *); + +struct cdx_ops { + cdx_bus_enable_cb bus_enable; + cdx_bus_disable_cb bus_disable; + cdx_scan_cb scan; + cdx_dev_configure_cb dev_configure; +}; + +struct ce_unbind { + struct clock_event_device *ce; + int res; +}; + +struct cea_db { + u8 tag_length; + u8 data[0]; +}; + +struct drm_edid; + +struct drm_edid_iter { + const struct drm_edid *drm_edid; + int index; +}; + +struct displayid_iter { + const struct drm_edid *drm_edid; + const u8 *section; + int length; + int idx; + int ext_index; + u8 version; + u8 primary_use; +}; + +struct 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 cee_pfc { + __u8 willing; + __u8 error; + __u8 pfc_en; + __u8 tcs_supported; +}; + +struct cee_pg { + __u8 willing; + __u8 error; + __u8 pg_en; + __u8 tcs_supported; + __u8 pg_bw[8]; + __u8 prio_pg[8]; +}; + +struct cfg80211_bss_select_adjust { + enum nl80211_band band; + s8 delta; +}; + +struct cfg80211_bss_selection { + enum nl80211_bss_select_attr behaviour; + union { + enum nl80211_band band_pref; + struct cfg80211_bss_select_adjust adjust; + } param; +}; + +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; + u16 punctured; +}; + +struct cfg80211_crypto_settings { + u32 wpa_versions; + u32 cipher_group; + int n_ciphers_pairwise; + u32 ciphers_pairwise[5]; + int n_akm_suites; + u32 akm_suites[10]; + bool control_port; + __be16 control_port_ethertype; + bool control_port_no_encrypt; + bool control_port_over_nl80211; + bool control_port_no_preauth; + const u8 *psk; + const u8 *sae_pwd; + u8 sae_pwd_len; + enum nl80211_sae_pwe_mechanism sae_pwe; +}; + +struct ieee80211_mcs_info { + u8 rx_mask[10]; + __le16 rx_highest; + u8 tx_params; + u8 reserved[3]; +}; + +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_mcs_info { + __le16 rx_mcs_map; + __le16 rx_highest; + __le16 tx_mcs_map; + __le16 tx_highest; +}; + +struct ieee80211_vht_cap { + __le32 vht_cap_info; + struct ieee80211_vht_mcs_info supp_mcs; +}; + +struct cfg80211_connect_params { + struct ieee80211_channel *channel; + struct ieee80211_channel *channel_hint; + const u8 *bssid; + const u8 *bssid_hint; + const u8 *ssid; + size_t ssid_len; + enum nl80211_auth_type auth_type; + const u8 *ie; + size_t ie_len; + bool privacy; + enum nl80211_mfp mfp; + struct cfg80211_crypto_settings crypto; + const u8 *key; + u8 key_len; + u8 key_idx; + u32 flags; + int bg_scan_period; + struct ieee80211_ht_cap ht_capa; + struct ieee80211_ht_cap ht_capa_mask; + struct ieee80211_vht_cap vht_capa; + struct ieee80211_vht_cap vht_capa_mask; + bool pbss; + struct cfg80211_bss_selection bss_select; + const u8 *prev_bssid; + const u8 *fils_erp_username; + size_t fils_erp_username_len; + const u8 *fils_erp_realm; + size_t fils_erp_realm_len; + u16 fils_erp_next_seq_num; + const u8 *fils_erp_rrk; + size_t fils_erp_rrk_len; + bool want_1x; + struct ieee80211_edmg edmg; +}; + +struct key_params; + +struct cfg80211_ibss_params { + const u8 *ssid; + const u8 *bssid; + struct cfg80211_chan_def chandef; + const u8 *ie; + u8 ssid_len; + u8 ie_len; + u16 beacon_interval; + u32 basic_rates; + bool channel_fixed; + bool privacy; + bool control_port; + bool control_port_over_nl80211; + bool userspace_handles_dfs; + int mcast_rate[6]; + struct ieee80211_ht_cap ht_capa; + struct ieee80211_ht_cap ht_capa_mask; + struct key_params *wep_keys; + int wep_tx_key; +}; + +struct cfg80211_ssid { + u8 ssid[32]; + u8 ssid_len; +}; + +struct cfg80211_match_set { + struct cfg80211_ssid ssid; + u8 bssid[6]; + s32 rssi_thold; +}; + +struct cfg80211_pkt_pattern { + const u8 *mask; + const u8 *pattern; + int pattern_len; + int pkt_offset; +}; + +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; +}; + +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; +}; + +struct cfg80211_sched_scan_plan { + u32 interval; + u32 iterations; +}; + +struct wiphy; + +struct cfg80211_sched_scan_request { + u64 reqid; + struct cfg80211_ssid *ssids; + int n_ssids; + u32 n_channels; + 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; + long unsigned int 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_wowlan_tcp; + +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 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; +}; + +struct cfg_param { + const char *property; + enum tegra_pinconf_param param; +}; + +struct cfs_bandwidth { + raw_spinlock_t lock; + ktime_t period; + u64 quota; + u64 runtime; + u64 burst; + u64 runtime_snap; + s64 hierarchical_quota; + u8 idle; + u8 period_active; + u8 slack_started; + struct hrtimer period_timer; + struct hrtimer slack_timer; + struct list_head throttled_cfs_rq; + int nr_periods; + int nr_throttled; + int nr_burst; + u64 throttled_time; + u64 burst_time; +}; + +struct load_weight { + long unsigned int weight; + u32 inv_weight; +}; + +struct sched_avg { + u64 last_update_time; + u64 load_sum; + u64 runnable_sum; + u32 util_sum; + u32 period_contrib; + long unsigned int load_avg; + long unsigned int runnable_avg; + long unsigned int util_avg; + unsigned int util_est; +}; + +struct sched_entity; + +struct cfs_rq { + struct load_weight load; + unsigned int nr_queued; + unsigned int h_nr_queued; + unsigned int h_nr_runnable; + unsigned int h_nr_idle; + s64 avg_vruntime; + u64 avg_load; + u64 min_vruntime; + unsigned int forceidle_seq; + u64 min_vruntime_fi; + struct rb_root_cached tasks_timeline; + struct sched_entity *curr; + struct sched_entity *next; + long: 64; + long: 64; + long: 64; + struct sched_avg avg; + struct { + raw_spinlock_t lock; + int nr; + long unsigned int load_avg; + long unsigned int util_avg; + long unsigned int runnable_avg; + long: 64; + long: 64; + long: 64; + long: 64; + } removed; + u64 last_update_tg_load_avg; + long unsigned int tg_load_avg_contrib; + long int propagate; + long int prop_runnable_sum; + long unsigned int h_load; + u64 last_h_load_update; + struct sched_entity *h_load_next; + struct rq *rq; + int on_list; + struct list_head leaf_cfs_rq_list; + struct task_group *tg; + int idle; + int runtime_enabled; + s64 runtime_remaining; + u64 throttled_pelt_idle; + u64 throttled_clock; + u64 throttled_clock_pelt; + u64 throttled_clock_pelt_time; + u64 throttled_clock_self; + u64 throttled_clock_self_time; + int throttled; + int throttle_count; + struct list_head throttled_list; + struct list_head throttled_csd_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct cfs_schedulable_data { + struct task_group *tg; + u64 period; + u64 quota; +}; + +struct kernfs_ops; + +struct kernfs_open_file; + +struct cftype { + char name[64]; + long unsigned int 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 lock_class_key lockdep_key; +}; + +struct cgroup_file { + struct kernfs_node *kn; + long unsigned int notified_at; + struct timer_list notify_timer; +}; + +struct task_cputime { + u64 stime; + u64 utime; + long long unsigned int sum_exec_runtime; +}; + +struct cgroup_base_stat { + struct task_cputime cputime; + u64 forceidle_sum; + u64 ntime; +}; + +struct prev_cputime { + u64 utime; + u64 stime; + raw_spinlock_t lock; +}; + +struct cgroup_bpf { + struct bpf_prog_array *effective[38]; + struct hlist_head progs[38]; + u8 flags[38]; + struct list_head storages; + struct bpf_prog_array *inactive; + struct percpu_ref refcnt; + struct work_struct release_work; +}; + +struct cgroup_freezer_state { + bool freeze; + bool 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; + long unsigned int 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; + unsigned int kill_seq; + struct kernfs_node *kn; + struct cgroup_file procs_file; + struct cgroup_file events_file; + struct cgroup_file psi_files[3]; + u16 subtree_control; + u16 subtree_ss_mask; + u16 old_subtree_control; + u16 old_subtree_ss_mask; + struct cgroup_subsys_state *subsys[15]; + int nr_dying_subsys[15]; + struct cgroup_root *root; + struct list_head cset_links; + struct list_head e_csets[15]; + struct cgroup *dom_cgrp; + struct cgroup *old_dom_cgrp; + struct cgroup_rstat_cpu *rstat_cpu; + struct list_head rstat_css_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad_; + struct cgroup *rstat_flush_next; + 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; + struct cgroup_freezer_state freezer; + struct bpf_local_storage *bpf_cgrp_storage; + struct cgroup *ancestors[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct cgroup__safe_rcu { + struct kernfs_node *kn; +}; + +struct cgroup_cls_state { + struct cgroup_subsys_state css; + u32 classid; +}; + +struct css_set; + +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 cgroup_of_peak { + long unsigned int value; + struct list_head list; +}; + +struct cgroup_namespace; + +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; + struct cgroup_of_peak peak; +}; + +struct kernfs_root; + +struct kernfs_fs_context { + struct kernfs_root *root; + void *ns_tag; + long unsigned int magic; + bool new_sb_created; +}; + +struct cgroup_fs_context { + struct kernfs_fs_context kfc; + struct cgroup_root *root; + struct cgroup_namespace *ns; + unsigned int flags; + bool cpuset_clone_children; + bool none; + bool all_ss; + u16 subsys_mask; + char *name; + char *release_agent; +}; + +struct cgroup_iter_priv { + struct cgroup_subsys_state *start_css; + bool visited_all; + bool terminate; + int order; +}; + +struct cgroup_lsm_atype { + u32 attach_btf_id; + int refcnt; +}; + +struct cgroup_taskset { + struct list_head src_csets; + struct list_head dst_csets; + int nr_tasks; + int ssid; + struct list_head *csets; + struct css_set *cur_cset; + struct task_struct *cur_task; +}; + +struct cgroup_mgctx { + struct list_head preloaded_src_csets; + struct list_head preloaded_dst_csets; + struct cgroup_taskset tset; + u16 ss_mask; +}; + +struct proc_ns_operations; + +struct ns_common { + struct dentry *stashed; + const struct proc_ns_operations *ops; + unsigned int inum; + refcount_t count; +}; + +struct ucounts; + +struct cgroup_namespace { + struct ns_common ns; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct css_set *root_cset; +}; + +struct cgroup_pidlist { + struct { + enum cgroup_filetype type; + struct pid_namespace *ns; + } key; + pid_t *list; + int length; + struct list_head links; + struct cgroup *owner; + struct delayed_work destroy_dwork; +}; + +struct cgroup_root { + struct kernfs_root *kf_root; + unsigned int subsys_mask; + int hierarchy_id; + struct list_head root_list; + struct callback_head rcu; + long: 64; + long: 64; + struct cgroup cgrp; + struct cgroup *cgrp_ancestor_storage; + atomic_t nr_cgrps; + unsigned int flags; + char release_agent_path[4096]; + char name[64]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct cgroup_rstat_cpu { + struct u64_stats_sync bsync; + struct cgroup_base_stat bstat; + struct cgroup_base_stat last_bstat; + struct cgroup_base_stat subtree_bstat; + struct cgroup_base_stat last_subtree_bstat; + struct cgroup *updated_children; + struct cgroup *updated_next; +}; + +struct idr { + struct xarray idr_rt; + unsigned int idr_base; + unsigned int idr_next; +}; + +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_killed)(struct cgroup_subsys_state *); + void (*css_rstat_flush)(struct cgroup_subsys_state *, int); + int (*css_extra_stat_show)(struct seq_file *, struct cgroup_subsys_state *); + int (*css_local_stat_show)(struct seq_file *, struct cgroup_subsys_state *); + int (*can_attach)(struct cgroup_taskset *); + void (*cancel_attach)(struct cgroup_taskset *); + void (*attach)(struct cgroup_taskset *); + void (*post_attach)(void); + 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 cgroupstats { + __u64 nr_sleeping; + __u64 nr_running; + __u64 nr_stopped; + __u64 nr_uninterruptible; + __u64 nr_io_wait; +}; + +struct cgrp_cset_link { + struct cgroup *cgrp; + struct css_set *cset; + struct list_head cset_link; + struct list_head cgrp_link; +}; + +struct ppp_file { + enum { + INTERFACE = 1, + CHANNEL = 2, + } kind; + struct sk_buff_head xq; + struct sk_buff_head rq; + wait_queue_head_t rwait; + refcount_t refcnt; + int hdrlen; + int index; + int dead; +}; + +struct ppp_channel; + +struct ppp; + +struct channel { + struct ppp_file file; + struct list_head list; + struct ppp_channel *chan; + struct rw_semaphore chan_sem; + spinlock_t downl; + struct ppp *ppp; + struct net *chan_net; + netns_tracker ns_tracker; + struct list_head clist; + rwlock_t upl; + struct channel *bridge; + u8 avail; + u8 had_frag; + u32 lastseq; + int speed; +}; + +struct ethnl_reply_data { + struct net_device *dev; +}; + +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 channels_reply_data { + struct ethnl_reply_data base; + struct ethtool_channels channels; +}; + +struct char_device_struct { + struct char_device_struct *next; + unsigned int major; + unsigned int baseminor; + int minorct; + char name[64]; + struct cdev *cdev; +}; + +struct extcon_dev; + +struct charger_regulator; + +struct charger_manager; + +struct charger_cable { + const char *extcon_name; + const char *name; + struct extcon_dev *extcon_dev; + u64 extcon_type; + struct work_struct wq; + struct notifier_block nb; + bool attached; + struct charger_regulator *charger; + int min_uA; + int max_uA; + struct charger_manager *cm; +}; + +struct charger_desc { + const char *psy_name; + enum polling_modes polling_mode; + unsigned int polling_interval_ms; + unsigned int fullbatt_vchkdrop_uV; + unsigned int fullbatt_uV; + unsigned int fullbatt_soc; + unsigned int fullbatt_full_capacity; + enum data_source battery_present; + const char **psy_charger_stat; + int num_charger_regulators; + struct charger_regulator *charger_regulators; + const struct attribute_group **sysfs_groups; + const char *psy_fuel_gauge; + const char *thermal_zone; + int temp_min; + int temp_max; + int temp_diff; + bool measure_battery_temp; + u32 charging_max_duration_ms; + u32 discharging_max_duration_ms; +}; + +struct charger_manager { + struct list_head entry; + struct device *dev; + struct charger_desc *desc; + struct thermal_zone_device *tzd_batt; + bool charger_enabled; + int emergency_stop; + char psy_name_buf[31]; + struct power_supply_desc charger_psy_desc; + struct power_supply *charger_psy; + u64 charging_start_time; + u64 charging_end_time; + int battery_status; +}; + +struct charger_regulator { + const char *regulator_name; + struct regulator *consumer; + int externally_control; + struct charger_cable *cables; + int num_cables; + struct attribute_group attr_grp; + struct device_attribute attr_name; + struct device_attribute attr_state; + struct device_attribute attr_externally_control; + struct attribute *attrs[4]; + struct charger_manager *cm; +}; + +struct qdisc_walker { + int stop; + int skip; + int count; + int (*fn)(struct Qdisc *, long unsigned int, struct qdisc_walker *); +}; + +struct check_loop_arg { + struct qdisc_walker w; + struct Qdisc *p; + int depth; +}; + +struct check_mount { + struct vfsmount *mnt; + unsigned int mounted; +}; + +struct check_walk_data { + enum pkvm_page_state desired; + enum pkvm_page_state (*get_page_state)(kvm_pte_t, u64); +}; + +struct chips_init_reg { + unsigned char addr; + unsigned char data; +}; + +struct chksum_ctx { + u32 key; +}; + +struct chksum_desc_ctx { + __u16 crc; +}; + +struct chksum_desc_ctx___2 { + u32 crc; +}; + +struct cipher_context { + char iv[20]; + char rec_seq[8]; +}; + +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_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 { + u32 *cipso; + u32 *local; + u32 cipso_size; + u32 local_size; + } lvl; + struct { + u32 *cipso; + u32 *local; + u32 cipso_size; + u32 local_size; + } cat; +}; + +struct circ_buf { + char *buf; + int head; + int tail; +}; + +struct mmc_card; + +struct sdio_func; + +typedef int tpl_parse_t(struct mmc_card *, struct sdio_func *, const unsigned char *, unsigned int); + +struct cis_tpl { + unsigned char code; + unsigned char min_size; + tpl_parse_t *parse; +}; + +struct class_attribute { + struct attribute attr; + ssize_t (*show)(const struct class *, const struct class_attribute *, char *); + ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); +}; + +struct class_attribute_string { + struct class_attribute attr; + char *str; +}; + +struct class_compat { + struct kobject *kobj; +}; + +struct hashtab_node; + +struct hashtab { + struct hashtab_node **htable; + u32 size; + u32 nel; +}; + +struct symtab { + struct hashtab table; + u32 nprim; +}; + +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 klist_iter { + struct klist *i_klist; + struct klist_node *i_cur; +}; + +struct subsys_private; + +struct class_dev_iter { + struct klist_iter ki; + const struct device_type *type; + struct subsys_private *sp; +}; + +struct class_dir { + struct kobject kobj; + const struct class *class; +}; + +struct class_info { + int class; + char *class_name; +}; + +struct class_interface { + struct list_head node; + const struct class *class; + int (*add_dev)(struct device *); + void (*remove_dev)(struct device *); +}; + +struct mmu_notifier_range { + struct mm_struct *mm; + long unsigned int start; + long unsigned int end; + unsigned int flags; + enum mmu_notifier_event event; + void *owner; +}; + +struct wp_walk { + struct mmu_notifier_range range; + long unsigned int tlbflush_start; + long unsigned int tlbflush_end; + long unsigned int total; +}; + +struct clean_walk { + struct wp_walk base; + long unsigned int bitmap_pgoff; + long unsigned int *bitmap; + long unsigned int start; + long unsigned int end; +}; + +struct clear_badblocks_context { + resource_size_t phys; + resource_size_t cleared; +}; + +struct clear_refs_private { + enum clear_refs_types type; +}; + +struct clk { + struct clk_core *core; + struct device *dev; + const char *dev_id; + const char *con_id; + long unsigned int min_rate; + long unsigned int max_rate; + unsigned int exclusive_count; + struct hlist_node clks_node; +}; + +struct clk_regmap { + struct clk_hw hw; + struct regmap *regmap; + unsigned int enable_reg; + unsigned int enable_mask; + bool enable_is_inverted; +}; + +struct pll_vco; + +struct clk_alpha_pll { + u32 offset; + const u8 *regs; + const struct pll_vco *vco_table; + size_t num_vco; + u8 flags; + struct clk_regmap clkr; +}; + +struct clk_alpha_pll_postdiv { + u32 offset; + u8 width; + const u8 *regs; + struct clk_regmap clkr; + int post_div_shift; + const struct clk_div_table *post_div_table; + size_t num_post_div; +}; + +struct clk_branch { + u32 hwcg_reg; + u32 halt_reg; + u8 hwcg_bit; + u8 halt_bit; + u8 halt_check; + struct clk_regmap clkr; +}; + +struct clk_bulk_data { + const char *id; + struct clk *clk; +}; + +struct clk_bulk_devres { + struct clk_bulk_data *clks; + int num_clks; +}; + +struct clk_divider { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u16 flags; + const struct clk_div_table *table; + spinlock_t *lock; +}; + +struct clk_busy_divider { + struct clk_divider div; + const struct clk_ops *div_ops; + void *reg; + u8 shift; +}; + +struct clk_mux { + struct clk_hw hw; + void *reg; + const u32 *table; + u32 mask; + u8 shift; + u8 flags; + spinlock_t *lock; +}; + +struct clk_busy_mux { + struct clk_mux mux; + const struct clk_ops *mux_ops; + void *reg; + u8 shift; +}; + +struct clk_rate_request; + +struct clk_duty; + +struct clk_ops { + int (*prepare)(struct clk_hw *); + void (*unprepare)(struct clk_hw *); + int (*is_prepared)(struct clk_hw *); + void (*unprepare_unused)(struct clk_hw *); + int (*enable)(struct clk_hw *); + void (*disable)(struct clk_hw *); + int (*is_enabled)(struct clk_hw *); + void (*disable_unused)(struct clk_hw *); + int (*save_context)(struct clk_hw *); + void (*restore_context)(struct clk_hw *); + long unsigned int (*recalc_rate)(struct clk_hw *, long unsigned int); + long int (*round_rate)(struct clk_hw *, long unsigned int, long unsigned int *); + int (*determine_rate)(struct clk_hw *, struct clk_rate_request *); + int (*set_parent)(struct clk_hw *, u8); + u8 (*get_parent)(struct clk_hw *); + int (*set_rate)(struct clk_hw *, long unsigned int, long unsigned int); + int (*set_rate_and_parent)(struct clk_hw *, long unsigned int, long unsigned int, u8); + long unsigned int (*recalc_accuracy)(struct clk_hw *, long unsigned int); + int (*get_phase)(struct clk_hw *); + int (*set_phase)(struct clk_hw *, int); + int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*init)(struct clk_hw *); + void (*terminate)(struct clk_hw *); + void (*debug_init)(struct clk_hw *, struct dentry *); +}; + +struct clk_composite { + struct clk_hw hw; + struct clk_ops ops; + struct clk_hw *mux_hw; + struct clk_hw *rate_hw; + struct clk_hw *gate_hw; + const struct clk_ops *mux_ops; + const struct clk_ops *rate_ops; + const struct clk_ops *gate_ops; +}; + +struct clk_duty { + unsigned int num; + unsigned int den; +}; + +struct clk_parent_map; + +struct clk_core { + const char *name; + const struct clk_ops *ops; + struct clk_hw *hw; + struct module *owner; + struct device *dev; + struct hlist_node rpm_node; + struct device_node *of_node; + struct clk_core *parent; + struct clk_parent_map *parents; + u8 num_parents; + u8 new_parent_index; + long unsigned int rate; + long unsigned int req_rate; + long unsigned int new_rate; + struct clk_core *new_parent; + struct clk_core *new_child; + long unsigned int flags; + bool orphan; + bool rpm_enabled; + unsigned int enable_count; + unsigned int prepare_count; + unsigned int protect_count; + long unsigned int min_rate; + long unsigned int max_rate; + long unsigned int accuracy; + int phase; + struct clk_duty duty; + struct hlist_head children; + struct hlist_node child_node; + struct hlist_head clks; + unsigned int notifier_count; + struct dentry *dentry; + struct hlist_node debug_node; + struct kref ref; +}; + +struct clk_cpu { + struct clk_hw hw; + struct clk *div; + struct clk *mux; + struct clk *pll; + struct clk *step; +}; + +struct clk_div_table { + unsigned int val; + unsigned int div; +}; + +struct clk_divider_gate { + struct clk_divider divider; + u32 cached_val; +}; + +struct clk_double_div { + struct clk_hw hw; + void *reg1; + u8 shift1; + void *reg2; + u8 shift2; +}; + +struct mn { + u8 mnctr_en_bit; + u8 mnctr_reset_bit; + u8 mnctr_mode_shift; + u8 n_val_shift; + u8 m_val_shift; + u8 width; + bool reset_in_cc; +}; + +struct pre_div { + u8 pre_div_shift; + u8 pre_div_width; +}; + +struct parent_map; + +struct src_sel { + u8 src_sel_shift; + const struct parent_map *parent_map; +}; + +struct freq_tbl; + +struct clk_dyn_rcg { + u32 ns_reg[2]; + u32 md_reg[2]; + u32 bank_reg; + u8 mux_sel_bit; + struct mn mn[2]; + struct pre_div p[2]; + struct src_sel s[2]; + const struct freq_tbl *freq_tbl; + struct clk_regmap clkr; +}; + +struct clk_factor_table { + unsigned int val; + unsigned int mul; + unsigned int div; +}; + +struct clk_fixed_factor { + struct clk_hw hw; + unsigned int mult; + unsigned int div; + long unsigned int acc; + unsigned int flags; +}; + +struct clk_fixed_rate { + struct clk_hw hw; + long unsigned int fixed_rate; + long unsigned int fixed_accuracy; + long unsigned int flags; +}; + +struct clk_fixup_div { + struct clk_divider divider; + const struct clk_ops *ops; + void (*fixup)(u32 *); +}; + +struct clk_fixup_mux { + struct clk_mux mux; + const struct clk_ops *ops; + void (*fixup)(u32 *); +}; + +struct clk_frac_pll { + struct clk_hw hw; + void *base; +}; + +struct imx_fracn_gppll_rate_table; + +struct clk_fracn_gppll { + struct clk_hw hw; + void *base; + const struct imx_fracn_gppll_rate_table *rate_table; + int rate_count; + u32 flags; +}; + +struct clk_fractional_divider { + struct clk_hw hw; + void *reg; + u8 mshift; + u8 mwidth; + u8 nshift; + u8 nwidth; + u8 flags; + void (*approximation)(struct clk_hw *, long unsigned int, long unsigned int *, long unsigned int *, long unsigned int *); + spinlock_t *lock; +}; + +struct clk_gate { + struct clk_hw hw; + void *reg; + u8 bit_idx; + u8 flags; + spinlock_t *lock; +}; + +struct clk_gate2 { + struct clk_hw hw; + void *reg; + u8 bit_idx; + u8 cgr_val; + u8 cgr_mask; + u8 flags; + spinlock_t *lock; + unsigned int *share_count; +}; + +struct clk_gate_exclusive { + struct clk_gate gate; + u32 exclusive_mask; +}; + +struct clk_gpio { + struct clk_hw hw; + struct gpio_desc *gpiod; +}; + +struct clk_gated_fixed { + struct clk_gpio clk_gpio; + struct regulator *supply; + long unsigned int rate; +}; + +struct clk_gpr_scu { + struct clk_hw hw; + u16 rsrc_id; + u8 gpr_id; + u8 flags; + bool gate_invert; +}; + +struct hfpll_data; + +struct clk_hfpll { + const struct hfpll_data *d; + int init_done; + struct clk_regmap clkr; + spinlock_t lock; +}; + +struct clk_hisi_phase { + struct clk_hw hw; + void *reg; + u32 *phase_degrees; + u32 *phase_regvals; + u8 phase_num; + u32 mask; + u8 shift; + u8 flags; + spinlock_t *lock; +}; + +struct clk_hsio_pll { + struct clk_hw hw; + struct regmap *regmap; +}; + +struct rzg2l_cpg_priv; + +struct clk_hw_data { + struct clk_hw hw; + u32 conf; + u32 sconf; + struct rzg2l_cpg_priv *priv; +}; + +struct icst_params; + +struct clk_icst { + struct clk_hw hw; + struct regmap *map; + u32 vcoreg_off; + u32 lockreg_off; + struct icst_params *params; + long unsigned int rate; + enum icst_control_type ctype; +}; + +struct clk_icst_desc { + const struct icst_params *params; + u32 vco_offset; + u32 lock_offset; +}; + +struct clk_imx8_acm_sel { + const char *name; + int clkid; + const struct clk_parent_data *parents; + int num_parents; + u32 reg; + u8 shift; + u8 width; +}; + +struct clk_imx8mp_audiomix_priv { + void *base; + u32 regs_save[16]; + struct clk_hw_onecell_data clk_data; +}; + +struct clk_parent_data { + const struct clk_hw *hw; + const char *fw_name; + const char *name; + int index; +}; + +struct clk_imx8mp_audiomix_sel { + const char *name; + int clkid; + const struct clk_parent_data parent; + const struct clk_parent_data *parents; + int num_parents; + u16 reg; + u8 width; + u8 shift; +}; + +struct clk_imx_acm_pm_domains { + struct device **pd_dev; + struct device_link **pd_dev_link; + int num_domains; +}; + +struct clk_lookup { + struct list_head node; + const char *dev_id; + const char *con_id; + struct clk *clk; + struct clk_hw *clk_hw; +}; + +struct clk_lookup_alloc { + struct clk_lookup cl; + char dev_id[24]; + char con_id[16]; +}; + +struct clk_lpcg_scu { + struct clk_hw hw; + void *reg; + u8 bit_idx; + bool hw_gate; + u32 state; +}; + +struct clk_mem_branch { + u32 mem_enable_reg; + u32 mem_ack_reg; + u32 mem_enable_ack_mask; + struct clk_branch branch; +}; + +struct clk_multiplier { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u8 flags; + spinlock_t *lock; +}; + +struct srcu_node; + +struct srcu_usage { + 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; + long unsigned int srcu_gp_seq; + long unsigned int srcu_gp_seq_needed; + long unsigned int srcu_gp_seq_needed_exp; + long unsigned int srcu_gp_start; + long unsigned int srcu_last_gp_end; + long unsigned int srcu_size_jiffies; + long unsigned int srcu_n_lock_retries; + long unsigned int srcu_n_exp_nodelay; + bool sda_is_static; + long unsigned int srcu_barrier_seq; + struct mutex srcu_barrier_mutex; + struct completion srcu_barrier_completion; + atomic_t srcu_barrier_cpu_cnt; + long unsigned int reschedule_jiffies; + long unsigned int reschedule_count; + struct delayed_work work; + struct srcu_struct *srcu_ssp; +}; + +struct srcu_data; + +struct srcu_struct { + unsigned int srcu_idx; + struct srcu_data *sda; + struct lockdep_map dep_map; + struct srcu_usage *srcu_sup; +}; + +struct srcu_notifier_head { + struct mutex mutex; + struct srcu_usage srcuu; + struct srcu_struct srcu; + struct notifier_block *head; +}; + +struct clk_notifier { + struct clk *clk; + struct srcu_notifier_head notifier_head; + struct list_head node; +}; + +struct clk_notifier_data { + struct clk *clk; + long unsigned int old_rate; + long unsigned int new_rate; +}; + +struct clk_notifier_devres { + struct clk *clk; + struct notifier_block *nb; +}; + +struct clk_onecell_data { + struct clk **clks; + unsigned int clk_num; +}; + +struct clk_parent_map { + const struct clk_hw *hw; + struct clk_core *core; + const char *fw_name; + const char *name; + int index; +}; + +struct clk_periph_data { + const char *name; + const char * const *parent_names; + int num_parents; + struct clk_hw *mux_hw; + struct clk_hw *rate_hw; + struct clk_hw *gate_hw; + struct clk_hw *muxrate_hw; + bool is_double_div; +}; + +struct clk_periph_driver_data { + struct clk_hw_onecell_data *hw_data; + spinlock_t lock; + void *reg; + u32 tbg_sel; + u32 div_sel0; + u32 div_sel1; + u32 div_sel2; + u32 clk_sel; + u32 clk_dis; +}; + +struct clk_pfd { + struct clk_hw hw; + void *reg; + u8 idx; +}; + +struct clk_pfdv2 { + struct clk_hw hw; + void *reg; + u8 gate_bit; + u8 vld_bit; + u8 frac_off; +}; + +struct pll_freq_tbl; + +struct clk_pll { + u32 l_reg; + u32 m_reg; + u32 n_reg; + u32 config_reg; + u32 mode_reg; + u32 status_reg; + u8 status_bit; + u8 post_div_width; + u8 post_div_shift; + const struct pll_freq_tbl *freq_tbl; + struct clk_regmap clkr; +}; + +struct imx_pll14xx_rate_table; + +struct clk_pll14xx { + struct clk_hw hw; + void *base; + enum imx_pll14xx_type type; + const struct imx_pll14xx_rate_table *rate_table; + int rate_count; +}; + +struct clk_pll_table { + unsigned int val; + long unsigned int rate; +}; + +struct clk_pllv1 { + struct clk_hw hw; + void *base; + enum imx_pllv1_type type; +}; + +struct clk_pllv2 { + struct clk_hw hw; + void *base; +}; + +struct clk_pllv3 { + struct clk_hw hw; + void *base; + u32 power_bit; + bool powerup_set; + u32 div_mask; + u32 div_shift; + long unsigned int ref_clock; + u32 num_offset; + u32 denom_offset; +}; + +struct clk_pllv3_vf610_mf { + u32 mfi; + u32 mfn; + u32 mfd; +}; + +struct clk_pllv4 { + struct clk_hw hw; + void *base; + u32 cfg_offset; + u32 num_offset; + u32 denom_offset; + bool use_mult_range; +}; + +struct clk_pm_cpu { + struct clk_hw hw; + void *reg_mux; + u8 shift_mux; + u32 mask_mux; + void *reg_div; + u8 shift_div; + struct regmap *nb_pm_base; + long unsigned int l1_expiration; +}; + +struct clk_rate_request { + struct clk_core *core; + long unsigned int rate; + long unsigned int min_rate; + long unsigned int max_rate; + long unsigned int best_parent_rate; + struct clk_hw *best_parent_hw; +}; + +struct clk_rcg { + u32 ns_reg; + u32 md_reg; + struct mn mn; + struct pre_div p; + struct src_sel s; + const struct freq_tbl *freq_tbl; + struct clk_regmap clkr; +}; + +struct freq_multi_tbl; + +struct clk_rcg2 { + u32 cmd_rcgr; + u8 mnd_width; + u8 hid_width; + u8 safe_src_index; + const struct parent_map *parent_map; + union { + const struct freq_tbl *freq_tbl; + const struct freq_multi_tbl *freq_multi_tbl; + }; + struct clk_regmap clkr; + u8 cfg_off; + u32 parked_cfg; + bool hw_clk_ctrl; +}; + +struct clk_rcg2_gfx3d { + u8 div; + struct clk_rcg2 rcg; + struct clk_hw **hws; +}; + +struct clk_rcg_dfs_data { + struct clk_rcg2 *rcg; + struct clk_init_data *init; +}; + +struct clk_regmap___2 { + struct clk_hw hw; + struct regmap *map; + void *data; +}; + +struct clk_regmap_div { + u32 reg; + u32 shift; + u32 width; + struct clk_regmap clkr; +}; + +struct clk_regmap_div_data { + unsigned int offset; + u8 shift; + u8 width; + u8 flags; + const struct clk_div_table *table; +}; + +struct clk_regmap_gate_data { + unsigned int offset; + u8 bit_idx; + u8 flags; +}; + +struct clk_regmap_mux { + u32 reg; + u32 shift; + u32 width; + const struct parent_map *parent_map; + struct clk_regmap clkr; +}; + +struct clk_regmap_mux_data { + unsigned int offset; + u32 *table; + u32 mask; + u8 shift; + u8 flags; +}; + +struct clk_regmap_mux_div { + u32 reg_offset; + u32 hid_width; + u32 hid_shift; + u32 src_width; + u32 src_shift; + u32 div; + u32 src; + const u32 *parent_map; + struct clk_regmap clkr; + struct clk *pclk; + struct notifier_block clk_nb; +}; + +struct clk_regmap_phy_mux { + u32 reg; + struct clk_regmap clkr; +}; + +struct clk_rk3399_inits { + void (*inits)(struct device_node *); +}; + +struct clk_rk3568_inits { + void (*inits)(struct device_node *); +}; + +struct clk_rk3576_inits { + void (*inits)(struct device_node *); +}; + +struct clk_rpmh { + struct clk_hw hw; + const char *res_name; + u8 div; + u32 res_addr; + u32 res_on_val; + u32 state; + u32 aggr_state; + u32 last_sent_aggr_state; + u32 valid_state_mask; + u32 unit; + struct device *dev; + struct clk_rpmh *peer; +}; + +struct clk_rpmh_desc { + struct clk_hw **clks; + size_t num_clks; +}; + +struct clk_scu { + struct clk_hw hw; + u16 rsrc_id; + u8 clk_type; + struct clk_hw *parent; + u8 parent_index; + bool is_enabled; + u32 rate; +}; + +struct clk_sp810; + +struct clk_sp810_timerclken { + struct clk_hw hw; + struct clk *clk; + struct clk_sp810 *sp810; + int channel; +}; + +struct clk_sp810 { + struct device_node *node; + void *base; + spinlock_t lock; + struct clk_sp810_timerclken timerclken[4]; +}; + +struct clk_sscg_pll_setup { + int divr1; + int divf1; + int divr2; + int divf2; + int divq; + int bypass; + uint64_t vco1; + uint64_t vco2; + uint64_t fout; + uint64_t ref; + uint64_t ref_div1; + uint64_t ref_div2; + uint64_t fout_request; + int fout_error; +}; + +struct clk_sscg_pll { + struct clk_hw hw; + const struct clk_ops ops; + void *base; + struct clk_sscg_pll_setup setup; + u8 parent; + u8 bypass1; + u8 bypass2; +}; + +struct stm32_gate_cfg; + +struct stm32_mux_cfg; + +struct stm32_div_cfg; + +struct clk_stm32_clock_data { + u16 *gate_cpt; + const struct stm32_gate_cfg *gates; + const struct stm32_mux_cfg *muxes; + const struct stm32_div_cfg *dividers; + struct clk_hw * (*is_multi_mux)(struct clk_hw *); +}; + +struct clk_stm32_composite { + u16 gate_id; + u16 mux_id; + u16 div_id; + struct clk_hw hw; + void *base; + struct clk_stm32_clock_data *clock_data; + spinlock_t *lock; +}; + +struct clk_stm32_div { + u16 div_id; + struct clk_hw hw; + void *base; + struct clk_stm32_clock_data *clock_data; + spinlock_t *lock; +}; + +struct clk_stm32_gate { + u16 gate_id; + struct clk_hw hw; + void *base; + struct clk_stm32_clock_data *clock_data; + spinlock_t *lock; +}; + +struct clk_stm32_mux { + u16 mux_id; + struct clk_hw hw; + void *base; + struct clk_stm32_clock_data *clock_data; + spinlock_t *lock; +}; + +struct stm32_reset_cfg; + +struct clk_stm32_reset_data { + const struct reset_control_ops *ops; + const struct stm32_reset_cfg **reset_lines; + unsigned int nr_lines; + u32 clear_offset; +}; + +struct clkgate_separated { + struct clk_hw hw; + void *enable; + u8 bit_idx; + u8 flags; + spinlock_t *lock; +}; + +struct stm32_rcc_match_data; + +struct clock_config { + long unsigned int id; + int sec_id; + void *clock_cfg; + struct clk_hw * (*func)(struct device *, const struct stm32_rcc_match_data *, void *, spinlock_t *, const struct clock_config *); +}; + +struct clock_read_data { + u64 epoch_ns; + u64 epoch_cyc; + u64 sched_clock_mask; + u64 (*read_sched_clock)(void); + u32 mult; + u32 shift; +}; + +struct clock_data { + seqcount_latch_t seq; + struct clock_read_data read_data[2]; + ktime_t wrap_kt; + long unsigned int rate; + u64 (*actual_read_sched_clock)(void); +}; + +struct clock_identity { + u8 id[8]; +}; + +struct scmi_clock_info; + +struct scmi_protocol_handle; + +struct clock_info { + u32 version; + int num_clocks; + int max_async_req; + bool notify_rate_changed_cmd; + bool notify_rate_change_requested_cmd; + atomic_t cur_async_req; + struct scmi_clock_info *clk; + int (*clock_config_set)(const struct scmi_protocol_handle *, u32, enum clk_state, enum scmi_clock_oem_config, u32, bool); + int (*clock_config_get)(const struct scmi_protocol_handle *, u32, enum scmi_clock_oem_config, u32 *, bool *, u32 *, bool); +}; + +struct clock_parent { + char name[50]; + int id; + u32 flag; +}; + +struct clock_provider { + void (*clk_init_cb)(struct device_node *); + struct device_node *np; + struct list_head node; +}; + +struct clock_topology { + u32 type; + u32 flag; + u32 type_flag; + u8 custom_type_flag; +}; + +struct clockgen_muxinfo; + +struct clockgen; + +struct clockgen_chipinfo { + const char *compat; + const char *guts_compat; + const struct clockgen_muxinfo *cmux_groups[2]; + const struct clockgen_muxinfo *hwaccel[5]; + void (*init_periph)(struct clockgen *); + int cmux_to_group[9]; + u32 pll_mask; + u32 flags; +}; + +struct clockgen_pll_div { + struct clk *clk; + char name[32]; +}; + +struct clockgen_pll { + struct clockgen_pll_div div[32]; +}; + +struct clockgen { + struct device_node *node; + void *regs; + struct clockgen_chipinfo info; + struct clk *sysclk; + struct clk *coreclk; + struct clockgen_pll pll[6]; + struct clk *cmux[8]; + struct clk *hwaccel[5]; + struct clk *fman[2]; + struct ccsr_guts *guts; +}; + +struct clockgen_sourceinfo { + u32 flags; + int pll; + int div; +}; + +struct clockgen_muxinfo { + struct clockgen_sourceinfo clksel[16]; +}; + +struct clocksource_base; + +struct clocksource { + u64 (*read)(struct clocksource *); + u64 mask; + u32 mult; + u32 shift; + u64 max_idle_ns; + u32 maxadj; + u32 uncertainty_margin; + u64 max_cycles; + u64 max_raw_delta; + const char *name; + struct list_head list; + u32 freq_khz; + int rating; + enum clocksource_ids id; + enum vdso_clock_mode vdso_clock_mode; + long unsigned int flags; + struct clocksource_base *base; + int (*enable)(struct clocksource *); + void (*disable)(struct clocksource *); + void (*suspend)(struct clocksource *); + void (*resume)(struct clocksource *); + void (*mark_unstable)(struct clocksource *); + void (*tick_stable)(struct clocksource *); + struct module *owner; +}; + +struct clocksource_base { + enum clocksource_ids id; + u32 freq_khz; + u64 offset; + u32 numerator; + u32 denominator; +}; + +struct clocksource_mmio { + void *reg; + struct clocksource clksrc; +}; + +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 dm_table; + +struct dm_io; + +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; +}; + +typedef void closure_fn(struct work_struct *); + +struct closure_syncer; + +struct closure { + union { + struct { + struct workqueue_struct *wq; + struct closure_syncer *s; + struct llist_node list; + closure_fn *fn; + }; + struct work_struct work; + }; + struct closure *parent; + atomic_t remaining; + bool closure_get_happened; +}; + +struct closure_syncer { + struct task_struct *task; + int done; +}; + +struct closure_waitlist { + struct llist_head list; +}; + +struct l2cache_pmu; + +struct cluster_pmu { + struct list_head next; + struct perf_event *events[9]; + struct l2cache_pmu *l2cache_pmu; + long unsigned int used_counters[1]; + long unsigned int used_groups[1]; + int irq; + int cluster_id; + int on_cpu; + cpumask_t cluster_cpus; + spinlock_t pmu_lock; +}; + +struct cma_kobject; + +struct cma { + long unsigned int base_pfn; + long unsigned int count; + long unsigned int *bitmap; + unsigned int order_per_bit; + spinlock_t lock; + char name[64]; + atomic64_t nr_pages_succeeded; + atomic64_t nr_pages_failed; + atomic64_t nr_pages_released; + struct cma_kobject *cma_kobj; + bool reserve_pages_on_error; +}; + +struct dma_heap; + +struct cma_heap { + struct dma_heap *heap; + struct cma *cma; +}; + +struct cma_heap_buffer { + struct cma_heap *heap; + struct list_head attachments; + struct mutex lock; + long unsigned int len; + struct page *cma_pages; + struct page **pages; + long unsigned int pagecount; + int vmap_cnt; + void *vaddr; +}; + +struct cma_kobject { + struct kobject kobj; + struct cma *cma; +}; + +struct cmd_bwmgr_int_calc_and_set_request { + uint32_t client_id; + uint32_t niso_bw; + uint32_t iso_bw; + uint32_t mc_floor; + uint8_t floor_unit; +} __attribute__((packed)); + +struct cmd_bwmgr_int_calc_and_set_response { + uint64_t rate; +}; + +struct cmd_bwmgr_int_cap_set_request { + uint64_t rate; +}; + +struct cmd_bwmgr_int_query_abi_request { + uint32_t type; +}; + +struct cmd_clk_disable_request {}; + +struct cmd_clk_enable_request {}; + +struct cmd_clk_get_all_info_request {}; + +struct cmd_clk_get_all_info_response { + uint32_t flags; + uint32_t parent; + uint32_t parents[16]; + uint8_t num_parents; + uint8_t name[40]; +} __attribute__((packed)); + +struct cmd_clk_get_fmax_at_vmin_request {}; + +struct cmd_clk_get_max_clk_id_request {}; + +struct cmd_clk_get_max_clk_id_response { + uint32_t max_id; +}; + +struct cmd_clk_get_parent_request {}; + +struct cmd_clk_get_parent_response { + uint32_t parent_id; +}; + +struct cmd_clk_get_possible_parent_request { + uint8_t parent_idx; +}; + +struct cmd_clk_get_rate_request {}; + +struct cmd_clk_get_rate_response { + int64_t rate; +}; + +struct cmd_clk_is_enabled_request {}; + +struct cmd_clk_is_enabled_response { + int32_t state; +}; + +struct cmd_clk_num_possible_parents_request {}; + +struct cmd_clk_possible_parents_request {}; + +struct cmd_clk_properties_request {}; + +struct cmd_clk_round_rate_request { + int32_t unused; + int64_t rate; +} __attribute__((packed)); + +struct cmd_clk_round_rate_response { + int64_t rate; +}; + +struct cmd_clk_set_parent_request { + uint32_t parent_id; +}; + +struct cmd_clk_set_parent_response { + uint32_t parent_id; +}; + +struct cmd_clk_set_rate_request { + int32_t unused; + int64_t rate; +} __attribute__((packed)); + +struct cmd_clk_set_rate_response { + int64_t rate; +}; + +struct rsc_hdr { + __le16 slv_id; + __le16 header_offset; + __le16 data_offset; + __le16 cnt; + __le16 version; + __le16 reserved[3]; +}; + +struct cmd_db_header { + __le32 version; + u8 magic[4]; + struct rsc_hdr header[8]; + __le32 checksum; + __le32 reserved; + u8 data[0]; +}; + +struct cmd_debug_fclose_request { + uint32_t fd; +}; + +struct cmd_debug_fopen_request { + char name[116]; +}; + +struct cmd_debug_fopen_response { + uint32_t fd; + uint32_t datalen; +}; + +struct cmd_debug_fread_request { + uint32_t fd; +}; + +struct cmd_debug_fread_response { + uint32_t readlen; + char data[116]; +}; + +struct cmd_debug_fwrite_request { + uint32_t fd; + uint32_t datalen; + char data[108]; +}; + +struct cmd_debugfs_dumpdir_request { + uint32_t dataaddr; + uint32_t datalen; +}; + +struct cmd_debugfs_dumpdir_response { + uint32_t reserved; + uint32_t nbytes; +}; + +struct cmd_debugfs_fileop_request { + uint32_t fnameaddr; + uint32_t fnamelen; + uint32_t dataaddr; + uint32_t datalen; +}; + +struct cmd_debugfs_fileop_response { + uint32_t reserved; + uint32_t nbytes; +}; + +struct cmd_pg_get_max_id_response { + uint32_t max_id; +}; + +struct cmd_pg_get_name_response { + uint8_t name[40]; +}; + +struct cmd_pg_get_state_response { + uint32_t state; +}; + +struct cmd_pg_query_abi_request { + uint32_t type; +}; + +struct cmd_pg_set_state_request { + uint32_t state; +}; + +struct cmdline_subpart; + +struct cmdline_parts { + char name[32]; + unsigned int nr_subparts; + struct cmdline_subpart *subpart; + struct cmdline_parts *next_parts; +}; + +struct cmdline_subpart { + char name[32]; + sector_t from; + sector_t size; + int flags; + struct cmdline_subpart *next_subpart; +}; + +struct cmis_cdb_advert_rpl { + u8 inst_supported; + u8 read_write_len_ext; + u8 resv1; + u8 resv2; +}; + +struct cmis_cdb_fw_mng_features_rpl { + u8 resv1; + u8 resv2; + u8 start_cmd_payload_size; + u8 resv3; + u8 read_write_len_ext; + u8 write_mechanism; + u8 resv4; + u8 resv5; + __be16 max_duration_start; + __be16 resv6; + __be16 max_duration_write; + __be16 max_duration_complete; + __be16 resv7; +}; + +struct cmis_cdb_module_features_rpl { + u8 resv1[34]; + __be16 max_completion_time; +}; + +struct cmis_cdb_query_status_pl { + u16 response_delay; +}; + +struct cmis_cdb_query_status_rpl { + u8 length; + u8 status; +}; + +struct cmis_cdb_run_fw_image_pl { + u8 resv1; + u8 image_to_run; + u16 delay_to_reset; +}; + +struct cmis_cdb_start_fw_download_pl_h { + __be32 image_size; + __be32 resv1; +}; + +struct cmis_cdb_start_fw_download_pl { + union { + struct { + __be32 image_size; + __be32 resv1; + }; + struct cmis_cdb_start_fw_download_pl_h head; + }; + u8 vendor_data[112]; +}; + +struct cmis_cdb_write_fw_block_epl_pl { + u8 fw_block[2048]; +}; + +struct cmis_cdb_write_fw_block_lpl_pl { + __be32 block_address; + u8 fw_block[116]; +}; + +struct cmis_fw_update_fw_mng_features { + u8 start_cmd_payload_size; + u8 write_mechanism; + u16 max_duration_start; + u16 max_duration_write; + u16 max_duration_complete; +}; + +struct cmis_password_entry_pl { + __be32 password; +}; + +struct cmis_rev_rpl { + u8 rev; +}; + +struct cmis_wait_for_cond_rpl { + u8 state; +}; + +struct cmsghdr { + __kernel_size_t cmsg_len; + int cmsg_level; + int cmsg_type; +}; + +struct cn_callback_id { + unsigned char name[32]; + struct cb_id id; +}; + +struct cn_queue_dev; + +struct cn_msg; + +struct netlink_skb_parms; + +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_dev { + struct cb_id id; + u32 seq; + u32 groups; + struct sock *nls; + struct cn_queue_dev *cbdev; +}; + +struct cn_msg { + struct cb_id id; + __u32 seq; + __u32 ack; + __u16 len; + __u16 flags; + __u8 data[0]; +}; + +struct cn_queue_dev { + atomic_t refcnt; + unsigned char name[32]; + struct list_head queue_list; + spinlock_t queue_lock; + struct sock *nls; +}; + +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 coalesce_reply_data { + struct ethnl_reply_data base; + struct ethtool_coalesce coalesce; + struct kernel_ethtool_coalesce kernel_coalesce; + u32 supported_params; +}; + +struct collapse_control { + bool is_khugepaged; + u32 node_load[64]; + nodemask_t alloc_nmask; +}; + +struct combiner_reg { + void *addr; + long unsigned int enabled; +}; + +struct combiner { + struct irq_domain *domain; + int parent_irq; + u32 nirqs; + u32 nregs; + struct combiner_reg regs[0]; +}; + +struct comm_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + char comm[16]; +}; + +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 common_datum { + u32 value; + struct symtab permissions; +}; + +struct comp_opts { + int dict_size; +}; + +struct zone; + +struct compact_control { + struct list_head freepages[14]; + struct list_head migratepages; + unsigned int nr_freepages; + unsigned int nr_migratepages; + long unsigned int free_pfn; + long unsigned int migrate_pfn; + long unsigned int fast_start_pfn; + struct zone *zone; + long unsigned int total_migrate_scanned; + long unsigned int total_free_scanned; + short unsigned int fast_search_fail; + short int 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 compat_user_vfp { + compat_u64 fpregs[32]; + compat_ulong_t fpscr; +}; + +struct compat_user_vfp_exc { + compat_ulong_t fpexc; + compat_ulong_t fpinst; + compat_ulong_t fpinst2; +}; + +struct compat_vfp_sigframe { + compat_ulong_t magic; + compat_ulong_t size; + struct compat_user_vfp ufp; + struct compat_user_vfp_exc ufp_exc; +}; + +struct compat_aux_sigframe { + struct compat_vfp_sigframe vfp; + long unsigned int end_magic; +}; + +struct compat_blkpg_ioctl_arg { + compat_int_t op; + compat_int_t flags; + compat_int_t datalen; + compat_caddr_t data; +}; + +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 compat_cdrom_read_audio { + union cdrom_addr addr; + u8 addr_format; + compat_int_t nframes; + compat_caddr_t buf; +}; + +struct compat_cmsghdr { + compat_size_t cmsg_len; + compat_int_t cmsg_level; + compat_int_t cmsg_type; +}; + +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 compat_dirent { + u32 d_ino; + compat_off_t d_off; + u16 d_reclen; + char d_name[256]; +}; + +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 compat_elf_siginfo { + compat_int_t si_signo; + compat_int_t si_code; + compat_int_t si_errno; +}; + +struct old_timeval32 { + old_time32_t tv_sec; + s32 tv_usec; +}; + +struct compat_elf_prstatus_common { + struct compat_elf_siginfo pr_info; + short int 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 compat_elf_prstatus { + struct compat_elf_prstatus_common common; + compat_elf_gregset_t pr_reg; + compat_int_t pr_fpvalid; +}; + +struct compat_ext4_new_group_input { + u32 group; + compat_u64 block_bitmap; + compat_u64 inode_bitmap; + compat_u64 inode_table; + u32 blocks_count; + u16 reserved_blocks; + u16 unused; +}; + +struct compat_flock { + short int l_type; + short int l_whence; + compat_off_t l_start; + compat_off_t l_len; + compat_pid_t l_pid; +}; + +struct compat_flock64 { + short int l_type; + short int l_whence; + compat_loff_t l_start; + compat_loff_t l_len; + compat_pid_t l_pid; +}; + +struct compat_frame_tail { + compat_uptr_t fp; + u32 sp; + u32 lr; +}; + +struct dir_context; + +typedef bool (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int); + +struct dir_context { + filldir_t actor; + loff_t pos; +}; + +struct compat_linux_dirent; + +struct compat_getdents_callback { + struct dir_context ctx; + struct compat_linux_dirent *current_dir; + int prev_reclen; + int count; + int error; +}; + +struct compat_group_filter { + union { + struct { + __u32 gf_interface_aux; + struct __kernel_sockaddr_storage gf_group_aux; + __u32 gf_fmode_aux; + __u32 gf_numsrc_aux; + struct __kernel_sockaddr_storage gf_slist[1]; + } __attribute__((packed)); + struct { + __u32 gf_interface; + struct __kernel_sockaddr_storage gf_group; + __u32 gf_fmode; + __u32 gf_numsrc; + struct __kernel_sockaddr_storage gf_slist_flex[0]; + } __attribute__((packed)); + }; +}; + +struct compat_group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; +} __attribute__((packed)); + +struct compat_group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; +} __attribute__((packed)); + +struct compat_hd_geometry { + unsigned char heads; + unsigned char sectors; + short unsigned int cylinders; + u32 start; +}; + +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; +}; + +struct compat_if_settings { + unsigned int type; + unsigned int size; + compat_uptr_t ifs_ifsu; +}; + +struct compat_ifconf { + compat_int_t ifc_len; + compat_caddr_t ifcbuf; +}; + +struct compat_ifmap { + compat_ulong_t mem_start; + compat_ulong_t mem_end; + short unsigned int base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; +}; + +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 int 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 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 compat_iovec { + compat_uptr_t iov_base; + compat_size_t iov_len; +}; + +struct compat_ipc64_perm { + compat_key_t key; + __compat_uid32_t uid; + __compat_gid32_t gid; + __compat_uid32_t cuid; + __compat_gid32_t cgid; + compat_mode_t mode; + unsigned char __pad1[2]; + compat_ushort_t seq; + compat_ushort_t __pad2; + compat_ulong_t unused1; + compat_ulong_t unused2; +}; + +struct 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; + short unsigned int seq; +}; + +struct compat_iw_point { + compat_caddr_t pointer; + __u16 length; + __u16 flags; +}; + +struct compat_kexec_segment { + compat_uptr_t buf; + compat_size_t bufsz; + compat_ulong_t mem; + compat_size_t memsz; +}; + +struct compat_keyctl_kdf_params { + compat_uptr_t hashname; + compat_uptr_t otherinfo; + __u32 otherinfolen; + __u32 __spare[8]; +}; + +struct compat_linux_dirent { + compat_ulong_t d_ino; + compat_ulong_t d_off; + short unsigned int d_reclen; + char d_name[0]; +}; + +struct compat_loop_info { + compat_int_t lo_number; + compat_dev_t lo_device; + compat_ulong_t lo_inode; + compat_dev_t lo_rdevice; + compat_int_t lo_offset; + compat_int_t lo_encrypt_type; + compat_int_t lo_encrypt_key_size; + compat_int_t lo_flags; + char lo_name[64]; + unsigned char lo_encrypt_key[32]; + compat_ulong_t lo_init[2]; + char reserved[4]; +}; + +struct compat_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 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 compat_msgbuf { + compat_long_t mtype; + char mtext[0]; +}; + +struct compat_msqid64_ds { + struct compat_ipc64_perm msg_perm; + compat_ulong_t msg_stime; + compat_ulong_t msg_stime_high; + compat_ulong_t msg_rtime; + compat_ulong_t msg_rtime_high; + compat_ulong_t msg_ctime; + compat_ulong_t msg_ctime_high; + compat_ulong_t msg_cbytes; + compat_ulong_t msg_qnum; + compat_ulong_t msg_qbytes; + compat_pid_t msg_lspid; + compat_pid_t msg_lrpid; + compat_ulong_t __unused4; + compat_ulong_t __unused5; +}; + +struct 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; + short unsigned int msg_cbytes; + short unsigned int msg_qnum; + short unsigned int msg_qbytes; + compat_ipc_pid_t msg_lspid; + compat_ipc_pid_t msg_lrpid; +}; + +struct compat_old_linux_dirent { + compat_ulong_t d_ino; + compat_ulong_t d_offset; + short unsigned int d_namlen; + char d_name[0]; +}; + +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 compat_readdir_callback { + struct dir_context ctx; + struct compat_old_linux_dirent *dirent; + int result; +}; + +struct compat_rlimit { + compat_ulong_t rlim_cur; + compat_ulong_t rlim_max; +}; + +struct compat_robust_list { + compat_uptr_t next; +}; + +struct compat_robust_list_head { + struct compat_robust_list list; + compat_long_t futex_offset; + compat_uptr_t list_op_pending; +}; + +union compat_sigval { + compat_int_t sival_int; + compat_uptr_t sival_ptr; +}; + +typedef union compat_sigval compat_sigval_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 int _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; + +struct compat_sigcontext { + compat_ulong_t trap_no; + compat_ulong_t error_code; + compat_ulong_t oldmask; + compat_ulong_t arm_r0; + compat_ulong_t arm_r1; + compat_ulong_t arm_r2; + compat_ulong_t arm_r3; + compat_ulong_t arm_r4; + compat_ulong_t arm_r5; + compat_ulong_t arm_r6; + compat_ulong_t arm_r7; + compat_ulong_t arm_r8; + compat_ulong_t arm_r9; + compat_ulong_t arm_r10; + compat_ulong_t arm_fp; + compat_ulong_t arm_ip; + compat_ulong_t arm_sp; + compat_ulong_t arm_lr; + compat_ulong_t arm_pc; + compat_ulong_t arm_cpsr; + compat_ulong_t fault_address; +}; + +struct compat_ucontext { + compat_ulong_t uc_flags; + compat_uptr_t uc_link; + compat_stack_t uc_stack; + struct compat_sigcontext uc_mcontext; + compat_sigset_t uc_sigmask; + int __unused[30]; + compat_ulong_t uc_regspace[128]; +}; + +struct compat_sigframe { + struct compat_ucontext uc; + compat_ulong_t retcode[2]; +}; + +struct compat_rt_sigframe { + struct compat_siginfo info; + struct compat_sigframe sig; +}; + +struct compat_rtentry { + u32 rt_pad1; + struct sockaddr rt_dst; + struct sockaddr rt_gateway; + struct sockaddr rt_genmask; + short unsigned int rt_flags; + short int rt_pad2; + u32 rt_pad3; + unsigned char rt_tos; + unsigned char rt_class; + short int rt_pad4; + short int rt_metric; + compat_uptr_t rt_dev; + u32 rt_mtu; + u32 rt_window; + short unsigned int rt_irtt; +}; + +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 compat_sel_arg_struct { + compat_ulong_t n; + compat_uptr_t inp; + compat_uptr_t outp; + compat_uptr_t exp; + compat_uptr_t tvp; +}; + +struct 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; + short unsigned int sem_nsems; +}; + +struct compat_sg_io_hdr { + compat_int_t interface_id; + compat_int_t dxfer_direction; + unsigned char cmd_len; + unsigned char mx_sb_len; + short unsigned int 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; + short unsigned int host_status; + short unsigned int driver_status; + compat_int_t resid; + compat_uint_t duration; + compat_uint_t info; +}; + +struct compat_sg_req_info { + char req_state; + char orphan; + char sg_io_owned; + char problem; + int pack_id; + compat_uptr_t usr_ptr; + unsigned int duration; + int unused; +}; + +struct 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 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_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; + short unsigned int shm_nattch; + short unsigned int shm_unused; + compat_uptr_t shm_unused2; + compat_uptr_t shm_unused3; +}; + +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_sigaction { + compat_uptr_t sa_handler; + compat_ulong_t sa_flags; + compat_uptr_t sa_restorer; + compat_sigset_t sa_mask; +}; + +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; +}; + +typedef struct compat_siginfo compat_siginfo_t; + +struct compat_sigset_argpack { + compat_uptr_t p; + compat_size_t size; +}; + +struct compat_sioc_mif_req6 { + mifi_t mifi; + compat_ulong_t icount; + compat_ulong_t ocount; + compat_ulong_t ibytes; + compat_ulong_t obytes; +}; + +struct in_addr { + __be32 s_addr; +}; + +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 sockaddr_in6 { + short unsigned int sin6_family; + __be16 sin6_port; + __be32 sin6_flowinfo; + struct in6_addr sin6_addr; + __u32 sin6_scope_id; +}; + +struct compat_sioc_sg_req6 { + struct sockaddr_in6 src; + struct sockaddr_in6 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 compat_sock_fprog { + u16 len; + compat_uptr_t filter; +}; + +struct compat_stat { + compat_dev_t st_dev; + compat_ino_t st_ino; + compat_mode_t st_mode; + compat_ushort_t st_nlink; + __compat_uid16_t st_uid; + __compat_gid16_t st_gid; + compat_dev_t st_rdev; + compat_off_t st_size; + compat_off_t st_blksize; + compat_off_t st_blocks; + old_time32_t st_atime; + compat_ulong_t st_atime_nsec; + old_time32_t st_mtime; + compat_ulong_t st_mtime_nsec; + old_time32_t st_ctime; + compat_ulong_t st_ctime_nsec; + compat_ulong_t __unused4[2]; +}; + +struct compat_statfs { + int f_type; + int f_bsize; + int f_blocks; + int f_bfree; + int f_bavail; + int f_files; + int f_ffree; + compat_fsid_t f_fsid; + int f_namelen; + int f_frsize; + int f_flags; + int f_spare[4]; +}; + +struct compat_statfs64 { + __u32 f_type; + __u32 f_bsize; + __u64 f_blocks; + __u64 f_bfree; + __u64 f_bavail; + __u64 f_files; + __u64 f_ffree; + __kernel_fsid_t f_fsid; + __u32 f_namelen; + __u32 f_frsize; + __u32 f_flags; + __u32 f_spare[4]; +} __attribute__((packed)); + +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 compat_tms { + compat_clock_t tms_utime; + compat_clock_t tms_stime; + compat_clock_t tms_cutime; + compat_clock_t tms_cstime; +}; + +struct compat_unimapdesc { + short unsigned int entry_ct; + compat_caddr_t entries; +}; + +struct compat_ustat { + compat_daddr_t f_tfree; + compat_ino_t f_tinode; + char f_fname[6]; + char f_fpack[6]; +}; + +struct component_ops; + +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 { + 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 component_ops { + int (*bind)(struct device *, struct device *, void *); + void (*unbind)(struct device *, struct device *, void *); +}; + +typedef int (*decompress_fn)(unsigned char *, long int, long int (*)(void *, long unsigned int), long int (*)(void *, long unsigned int), unsigned char *, long int *, void (*)(char *)); + +struct compress_format { + unsigned char magic[2]; + const char *name; + decompress_fn decompressor; +}; + +struct compstat; + +struct compressor { + int compress_proto; + void * (*comp_alloc)(unsigned char *, int); + void (*comp_free)(void *); + int (*comp_init)(void *, unsigned char *, int, int, int, int); + void (*comp_reset)(void *); + int (*compress)(void *, unsigned char *, unsigned char *, int, int); + void (*comp_stat)(void *, struct compstat *); + void * (*decomp_alloc)(unsigned char *, int); + void (*decomp_free)(void *); + int (*decomp_init)(void *, unsigned char *, int, int, int, int, int); + void (*decomp_reset)(void *); + int (*decompress)(void *, unsigned char *, int, unsigned char *, int); + void (*incomp)(void *, unsigned char *, int); + void (*decomp_stat)(void *, struct compstat *); + struct module *owner; + unsigned int comp_extra; +}; + +struct compressor_entry { + struct list_head list; + struct compressor *comp; +}; + +struct compstat { + __u32 unc_bytes; + __u32 unc_packets; + __u32 comp_bytes; + __u32 comp_packets; + __u32 inc_bytes; + __u32 inc_packets; + __u32 in_count; + __u32 bytes_out; + double ratio; +}; + +struct consw; + +struct con_driver { + const struct consw *con; + const char *desc; + struct device *dev; + int node; + int first; + int last; + int flag; +}; + +struct cond_av_list { + struct avtab_node **nodes; + u32 len; +}; + +struct cond_bool_datum { + u32 value; + int state; +}; + +struct cond_expr_node; + +struct cond_expr { + struct cond_expr_node *nodes; + u32 len; +}; + +struct cond_expr_node { + u32 expr_type; + u32 boolean; +}; + +struct policydb; + +struct cond_insertf_data { + struct policydb *p; + struct avtab_node **dst; + struct cond_av_list *other; +}; + +struct cond_node { + int cur_state; + struct cond_expr expr; + struct cond_av_list true_list; + struct cond_av_list false_list; +}; + +typedef bool (*cond_update_fn_t)(struct trace_array *, void *); + +struct cond_snapshot { + void *cond_data; + cond_update_fn_t update; +}; + +struct config_group; + +struct config_item_type; + +struct config_item { + char *ci_name; + char ci_namebuf[20]; + struct kref ci_kref; + struct list_head ci_entry; + struct config_item *ci_parent; + struct config_group *ci_group; + const struct config_item_type *ci_type; + struct dentry *ci_dentry; +}; + +struct configfs_subsystem; + +struct config_group { + struct config_item cg_item; + struct list_head cg_children; + struct configfs_subsystem *cg_subsys; + struct list_head default_groups; + struct list_head group_entry; +}; + +struct configfs_item_operations; + +struct configfs_group_operations; + +struct configfs_attribute; + +struct configfs_bin_attribute; + +struct config_item_type { + struct module *ct_owner; + struct configfs_item_operations *ct_item_ops; + struct configfs_group_operations *ct_group_ops; + struct configfs_attribute **ct_attrs; + struct configfs_bin_attribute **ct_bin_attrs; +}; + +struct 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; + +struct configfs_attribute { + const char *ca_name; + struct module *ca_owner; + umode_t ca_mode; + ssize_t (*show)(struct config_item *, char *); + ssize_t (*store)(struct config_item *, const char *, size_t); +}; + +struct configfs_bin_attribute { + struct configfs_attribute cb_attr; + void *cb_private; + size_t cb_max_size; + ssize_t (*read)(struct config_item *, void *, size_t); + ssize_t (*write)(struct config_item *, const void *, size_t); +}; + +struct configfs_buffer { + size_t count; + loff_t pos; + char *page; + struct configfs_item_operations *ops; + struct mutex mutex; + int needs_read_fill; + bool read_in_progress; + bool write_in_progress; + char *bin_buffer; + int bin_buffer_size; + int cb_max_size; + struct config_item *item; + struct module *owner; + union { + struct configfs_attribute *attr; + struct configfs_bin_attribute *bin_attr; + }; +}; + +struct iattr; + +struct configfs_fragment; + +struct configfs_dirent { + atomic_t s_count; + int s_dependent_count; + struct list_head s_sibling; + struct list_head s_children; + int s_links; + void *s_element; + int s_type; + umode_t s_mode; + struct dentry *s_dentry; + struct iattr *s_iattr; + struct configfs_fragment *s_frag; +}; + +struct configfs_fragment { + atomic_t frag_count; + struct rw_semaphore frag_sem; + bool frag_dead; +}; + +struct configfs_group_operations { + struct config_item * (*make_item)(struct config_group *, const char *); + struct config_group * (*make_group)(struct config_group *, const char *); + void (*disconnect_notify)(struct config_group *, struct config_item *); + void (*drop_item)(struct config_group *, struct config_item *); + bool (*is_visible)(struct config_item *, struct configfs_attribute *, int); + bool (*is_bin_visible)(struct config_item *, struct configfs_bin_attribute *, int); +}; + +struct configfs_item_operations { + void (*release)(struct config_item *); + int (*allow_link)(struct config_item *, struct config_item *); + void (*drop_link)(struct config_item *, struct config_item *); +}; + +struct configfs_subsystem { + struct config_group su_group; + struct mutex su_mutex; +}; + +struct conflict_context { + struct nd_region *nd_region; + resource_size_t start; + resource_size_t size; +}; + +struct console; + +struct printk_buffers; + +struct nbcon_context { + struct console *console; + unsigned int spinwait_max_us; + enum nbcon_prio prio; + unsigned int allow_unsafe_takeover: 1; + unsigned int backlog: 1; + struct printk_buffers *pbufs; + u64 seq; +}; + +struct tty_driver; + +struct nbcon_write_context; + +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)(void); + int (*setup)(struct console *, char *); + int (*exit)(struct console *); + int (*match)(struct console *, char *, int, char *); + short int flags; + short int index; + int cflag; + uint ispeed; + uint ospeed; + u64 seq; + long unsigned int dropped; + void *data; + struct hlist_node node; + void (*write_atomic)(struct console *, struct nbcon_write_context *); + void (*write_thread)(struct console *, struct nbcon_write_context *); + void (*device_lock)(struct console *, long unsigned int *); + void (*device_unlock)(struct console *, long unsigned int); + atomic_t nbcon_state; + atomic_long_t nbcon_seq; + struct nbcon_context nbcon_device_ctxt; + atomic_long_t nbcon_prev_seq; + struct printk_buffers *pbufs; + struct task_struct *kthread; + struct rcuwait rcuwait; + struct irq_work irq_work; +}; + +struct winsize { + short unsigned int ws_row; + short unsigned int ws_col; + short unsigned int ws_xpixel; + short unsigned int ws_ypixel; +}; + +struct hvc_struct; + +struct console___2 { + struct list_head list; + struct hvc_struct *hvc; + struct winsize ws; + u32 vtermno; +}; + +struct console_cmdline { + char name[16]; + int index; + char devname[32]; + bool user_specified; + char *options; +}; + +struct console_flush_type { + bool nbcon_atomic; + bool nbcon_offload; + bool legacy_direct; + bool legacy_offload; +}; + +struct console_font { + unsigned int width; + unsigned int height; + unsigned int charcount; + unsigned char *data; +}; + +struct console_font_op { + unsigned int op; + unsigned int flags; + unsigned int width; + unsigned int height; + unsigned int charcount; + unsigned char *data; +}; + +struct constant_table { + const char *name; + int value; +}; + +struct ebitmap_node; + +struct ebitmap { + struct ebitmap_node *node; + u32 highbit; +}; + +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 constraint_node { + u32 permissions; + struct constraint_expr *expr; + struct constraint_node *next; +}; + +struct vc_data; + +struct consw { + struct module *owner; + const char * (*con_startup)(void); + void (*con_init)(struct vc_data *, bool); + void (*con_deinit)(struct vc_data *); + void (*con_clear)(struct vc_data *, unsigned int, unsigned int, unsigned int); + void (*con_putc)(struct vc_data *, u16, unsigned int, unsigned int); + void (*con_putcs)(struct vc_data *, const u16 *, unsigned int, unsigned int, unsigned int); + void (*con_cursor)(struct vc_data *, bool); + bool (*con_scroll)(struct vc_data *, unsigned int, unsigned int, enum con_scroll, unsigned int); + bool (*con_switch)(struct vc_data *); + bool (*con_blank)(struct vc_data *, enum vesa_blank_mode, bool); + int (*con_font_set)(struct vc_data *, const struct console_font *, unsigned int, unsigned int); + int (*con_font_get)(struct vc_data *, struct console_font *, unsigned int); + int (*con_font_default)(struct vc_data *, struct console_font *, const char *); + int (*con_resize)(struct vc_data *, unsigned int, unsigned int, bool); + void (*con_set_palette)(struct vc_data *, const unsigned char *); + void (*con_scrolldelta)(struct vc_data *, int); + bool (*con_set_origin)(struct vc_data *); + void (*con_save_screen)(struct vc_data *); + u8 (*con_build_attr)(struct vc_data *, u8, enum vc_intensity, bool, bool, bool, bool); + void (*con_invert_region)(struct vc_data *, u16 *, int); + void (*con_debug_enter)(struct vc_data *); + void (*con_debug_leave)(struct vc_data *); +}; + +struct container_dev { + struct device dev; + int (*offline)(struct container_dev *); +}; + +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 context_tracking { + bool active; + int recursion; + atomic_t state; + long int nesting; + long int nmi_nesting; +}; + +struct contig_page_info { + long unsigned int free_pages; + long unsigned int free_blocks_total; + long unsigned int free_blocks_suitable; +}; + +struct virtio_net_ctrl_hdr { + __u8 class; + __u8 cmd; +}; + +struct control_buf { + struct virtio_net_ctrl_hdr hdr; + virtio_net_ctrl_ack status; +}; + +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 pcie_device; + +struct controller { + struct pcie_device *pcie; + u64 dsn; + u32 slot_cap; + unsigned int inband_presence_disabled: 1; + u16 slot_ctrl; + struct mutex ctrl_lock; + long unsigned int cmd_started; + unsigned int cmd_busy: 1; + wait_queue_head_t queue; + atomic_t pending_events; + unsigned int notification_enabled: 1; + unsigned int power_fault_detected; + struct task_struct *poll_thread; + u8 state; + struct mutex state_lock; + struct delayed_work button_work; + struct hotplug_slot hotplug_slot; + struct rw_semaphore reset_lock; + unsigned int depth; + unsigned int ist_running; + int request_result; + wait_queue_head_t requester; +}; + +struct controller___2 { + struct mutex crit_sect; + struct mutex cmd_lock; + int num_slots; + int slot_num_inc; + struct pci_dev *pci_dev; + struct list_head slot_list; + wait_queue_head_t queue; + u8 slot_device_offset; + u32 pcix_misc2_reg; + u32 first_slot; + u32 cap_offset; + long unsigned int mmio_base; + long unsigned int mmio_size; + void *creg; + struct timer_list poll_timer; +}; + +struct convert_context_args { + struct policydb *oldp; + struct policydb *newp; +}; + +struct cooling_dev_stats { + spinlock_t lock; + unsigned int total_trans; + long unsigned int state; + ktime_t last_time; + ktime_t *time_in_state; + unsigned int *trans_table; +}; + +struct cooling_spec { + long unsigned int upper; + long unsigned int lower; + unsigned int weight; +}; + +struct copy_from_grant { + const struct blk_shadow *s; + unsigned int grant_idx; + unsigned int bvec_offset; + char *bvec_data; +}; + +struct copy_subpage_arg { + struct folio *dst; + struct folio *src; + struct vm_area_struct *vma; +}; + +struct core_name { + char *corename; + int used; + int size; +}; + +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 core_vma_metadata { + long unsigned int start; + long unsigned int end; + long unsigned int flags; + long unsigned int dump_size; + long unsigned int pgoff; + struct file *file; +}; + +struct kernel_siginfo; + +typedef struct kernel_siginfo kernel_siginfo_t; + +struct coredump_params { + const kernel_siginfo_t *siginfo; + struct file *file; + long unsigned int limit; + long unsigned int 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 pid *pid; +}; + +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 counted_str { + struct kref count; + char name[0]; +}; + +struct regulator_dev; + +struct regulator_coupler; + +struct coupling_desc { + struct regulator_dev **coupled_rdevs; + struct regulator_coupler *coupler; + int n_resolved; + int n_coupled; +}; + +struct cp110_gate_clk { + struct clk_hw hw; + struct regmap *regmap; + u8 bit_idx; +}; + +struct cp_qe { + __be32 cecr; + __be32 ceccr; + __be32 cecdr; + u8 res0[10]; + __be16 ceter; + u8 res1[2]; + __be16 cetmr; + __be32 cetscr; + __be32 cetsr1; + __be32 cetsr2; + u8 res2[8]; + __be32 cevter; + __be32 cevtmr; + __be16 cercr; + u8 res3[2]; + u8 res4[36]; + __be16 ceexe1; + u8 res5[2]; + __be16 ceexm1; + u8 res6[2]; + __be16 ceexe2; + u8 res7[2]; + __be16 ceexm2; + u8 res8[2]; + __be16 ceexe3; + u8 res9[2]; + __be16 ceexm3; + u8 res10[2]; + __be16 ceexe4; + u8 res11[2]; + __be16 ceexm4; + u8 res12[58]; + __be32 ceurnr; + u8 res13[580]; +}; + +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; + raw_spinlock_t rmw_lock; + struct cpc_register_resource cpc_regs[21]; + struct acpi_psd_package domain_info; + struct kobject kobj; +}; + +struct cpci_hp_controller_ops; + +struct cpci_hp_controller { + unsigned int irq; + long unsigned int irq_flags; + char *devname; + void *dev_id; + char *name; + struct cpci_hp_controller_ops *ops; +}; + +struct slot___2; + +struct cpci_hp_controller_ops { + int (*query_enum)(void); + int (*enable_irq)(void); + int (*disable_irq)(void); + int (*check_irq)(void *); + u8 (*get_power)(struct slot___2 *); + int (*set_power)(struct slot___2 *, int); +}; + +struct cper_arm_ctx_info { + u16 version; + u16 type; + u32 size; +}; + +struct cper_arm_err_info { + u8 version; + u8 length; + u16 validation_bits; + u8 type; + u16 multiple_error; + u8 flags; + u64 error_info; + u64 virt_fault_addr; + u64 physical_fault_addr; +} __attribute__((packed)); + +struct cper_cxl_event_devid { + u16 vendor_id; + u16 device_id; + u8 func_num; + u8 device_num; + u8 bus_num; + u16 segment_num; + u16 slot_num; + u8 reserved; +} __attribute__((packed)); + +struct cper_cxl_event_sn { + u32 lower_dw; + u32 upper_dw; +}; + +struct cper_mem_err_compact { + u64 validation_bits; + u16 node; + u16 card; + u16 module; + u16 bank; + u16 device; + u16 row; + u16 column; + u16 bit_pos; + u64 requestor_id; + u64 responder_id; + u64 target_id; + u16 rank; + u16 mem_array_handle; + u16 mem_dev_handle; + u8 extended; +} __attribute__((packed)); + +struct cper_record_header { + char signature[4]; + u16 revision; + u32 signature_end; + u16 section_count; + u32 error_severity; + u32 validation_bits; + u32 record_length; + u64 timestamp; + guid_t platform_id; + guid_t partition_id; + guid_t creator_id; + guid_t notification_type; + u64 record_id; + u32 flags; + u64 persistence_information; + u8 reserved[12]; +} __attribute__((packed)); + +struct cper_section_descriptor { + u32 section_offset; + u32 section_length; + u16 revision; + u8 validation_bits; + u8 reserved; + u32 flags; + guid_t section_type; + guid_t fru_id; + u32 section_severity; + u8 fru_text[20]; +}; + +struct cper_pstore_record { + struct cper_record_header hdr; + struct cper_section_descriptor sec_hdr; + char data[0]; +}; + +struct cper_sec_fw_err_rec_ref { + u8 record_type; + u8 revision; + u8 reserved[6]; + u64 record_identifier; + guid_t record_identifier_guid; +}; + +struct cper_sec_mem_err { + u64 validation_bits; + u64 error_status; + u64 physical_addr; + u64 physical_addr_mask; + u16 node; + u16 card; + u16 module; + u16 bank; + u16 device; + u16 row; + u16 column; + u16 bit_pos; + u64 requestor_id; + u64 responder_id; + u64 target_id; + u8 error_type; + u8 extended; + u16 rank; + u16 mem_array_handle; + u16 mem_dev_handle; +}; + +struct cper_sec_pcie { + u64 validation_bits; + u32 port_type; + struct { + u8 minor; + u8 major; + u8 reserved[2]; + } version; + u16 command; + u16 status; + u32 reserved; + struct { + u16 vendor_id; + u16 device_id; + u8 class_code[3]; + u8 function; + u8 device; + u16 segment; + u8 bus; + u8 secondary_bus; + u16 slot; + u8 reserved; + } __attribute__((packed)) device_id; + struct { + u32 lower; + u32 upper; + } serial_number; + struct { + u16 secondary_status; + u16 control; + } bridge; + u8 capability[60]; + u8 aer_info[96]; +}; + +struct cper_sec_proc_arm { + u32 validation_bits; + u16 err_info_num; + u16 context_info_num; + u32 section_length; + u8 affinity_level; + u8 reserved[3]; + u64 mpidr; + u64 midr; + u32 running_state; + u32 psci_state; +}; + +struct cper_sec_proc_generic { + u64 validation_bits; + u8 proc_type; + u8 proc_isa; + u8 proc_error_type; + u8 operation; + u8 flags; + u8 level; + u16 reserved; + u64 cpu_version; + char cpu_brand[128]; + u64 proc_id; + u64 target_addr; + u64 requestor_id; + u64 responder_id; + u64 ip; +}; + +struct cper_sec_prot_err { + u64 valid_bits; + u8 agent_type; + u8 reserved[7]; + union { + u64 rcrb_base_addr; + struct { + u8 function; + u8 device; + u8 bus; + u16 segment; + u8 reserved_1[3]; + } __attribute__((packed)); + } agent_addr; + struct { + u16 vendor_id; + u16 device_id; + u16 subsystem_vendor_id; + u16 subsystem_id; + u8 class_code[2]; + u16 slot; + u8 reserved_1[4]; + } device_id; + struct { + u32 lower_dw; + u32 upper_dw; + } dev_serial_num; + u8 capability[60]; + u16 dvsec_len; + u16 err_len; + u8 reserved_2[4]; +} __attribute__((packed)); + +struct cpg_core_clk { + const char *name; + unsigned int id; + unsigned int type; + unsigned int parent; + unsigned int div; + unsigned int mult; + unsigned int offset; +}; + +struct ddiv { + unsigned int offset: 11; + unsigned int shift: 4; + unsigned int width: 4; + unsigned int monbit: 5; +}; + +struct cpg_core_clk___2 { + const char *name; + unsigned int id; + unsigned int parent; + unsigned int div; + unsigned int mult; + unsigned int type; + union { + unsigned int conf; + struct ddiv ddiv; + } cfg; + const struct clk_div_table *dtable; + u32 flag; +}; + +struct cpg_core_clk___3 { + const char *name; + unsigned int id; + unsigned int parent; + unsigned int div; + unsigned int mult; + unsigned int type; + unsigned int conf; + unsigned int sconf; + const struct clk_div_table *dtable; + const u32 *mtable; + const long unsigned int invalid_rate; + union { + const long unsigned int max_rate; + const long unsigned int default_rate; + }; + const char * const *parent_names; + notifier_fn_t notifier; + u32 flag; + u32 mux_flags; + int num_parents; +}; + +struct cpg_mssr_clk_domain { + struct generic_pm_domain genpd; + unsigned int num_core_pm_clks; + unsigned int core_pm_clks[0]; +}; + +struct mssr_mod_clk; + +struct cpg_mssr_info { + const struct cpg_core_clk *early_core_clks; + unsigned int num_early_core_clks; + const struct mssr_mod_clk *early_mod_clks; + unsigned int num_early_mod_clks; + const struct cpg_core_clk *core_clks; + unsigned int num_core_clks; + unsigned int last_dt_core_clk; + unsigned int num_total_core_clks; + enum clk_reg_layout reg_layout; + const struct mssr_mod_clk *mod_clks; + unsigned int num_mod_clks; + unsigned int num_hw_mod_clks; + const unsigned int *crit_mod_clks; + unsigned int num_crit_mod_clks; + const unsigned int *core_pm_clks; + unsigned int num_core_pm_clks; + int (*init)(struct device *); + struct clk * (*cpg_clk_register)(struct device *, const struct cpg_core_clk *, const struct cpg_mssr_info *, struct clk **, void *, struct raw_notifier_head *); +}; + +struct cpg_mssr_priv { + struct reset_controller_dev rcdev; + struct device *dev; + void *base; + enum clk_reg_layout reg_layout; + spinlock_t rmw_lock; + struct device_node *np; + unsigned int num_core_clks; + unsigned int num_mod_clks; + unsigned int last_dt_core_clk; + struct raw_notifier_head notifiers; + const u16 *status_regs; + const u16 *control_regs; + const u16 *reset_regs; + const u16 *reset_clear_regs; + struct { + u32 mask; + u32 val; + } smstpcr_saved[30]; + unsigned int *reserved_ids; + unsigned int num_reserved_ids; + struct clk *clks[0]; +}; + +struct cpg_pll_clk { + struct clk_hw hw; + void *pllcr0_reg; + void *pllcr1_reg; + void *pllecr_reg; + u32 pllecr_pllst_mask; +}; + +struct cpg_pll_clk___2 { + struct clk_hw hw; + void *pllcr_reg; + void *pllecr_reg; + unsigned int fixed_mult; + u32 pllecr_pllst_mask; +}; + +struct cpg_simple_notifier { + struct notifier_block nb; + void *reg; + u32 saved; +}; + +struct cpg_z_clk { + struct clk_hw hw; + void *reg; + void *kick_reg; + long unsigned int max_rate; + unsigned int fixed_div; + u32 mask; +}; + +struct cpio_data { + void *data; + size_t size; + char name[18]; +}; + +struct cppc_perf_caps { + u32 guaranteed_perf; + u32 highest_perf; + u32 nominal_perf; + u32 lowest_perf; + u32 lowest_nonlinear_perf; + u32 lowest_freq; + u32 nominal_freq; + u32 energy_perf; + bool auto_sel; +}; + +struct 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 pcc_mbox_chan; + +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 cppi5_desc_hdr_t { + u32 pkt_info0; + u32 pkt_info1; + u32 pkt_info2; + u32 src_dst_tag; +}; + +struct cppi5_host_desc_t { + struct cppi5_desc_hdr_t hdr; + u64 next_desc; + u64 buf_ptr; + u32 buf_info1; + u32 org_buf_len; + u64 org_buf_ptr; + u32 epib[0]; +}; + +struct cppi5_tr_resp_t { + u8 status; + u8 _reserved; + u8 cmd_id; + u8 flags; +}; + +struct cppi5_tr_type15_t { + cppi5_tr_flags_t flags; + u16 icnt0; + u16 icnt1; + u64 addr; + s32 dim1; + u16 icnt2; + u16 icnt3; + s32 dim2; + s32 dim3; + u32 _reserved; + s32 ddim1; + u64 daddr; + s32 ddim2; + s32 ddim3; + u16 dicnt0; + u16 dicnt1; + u16 dicnt2; + u16 dicnt3; +}; + +struct cppi5_tr_type1_t { + cppi5_tr_flags_t flags; + u16 icnt0; + u16 icnt1; + u64 addr; + s32 dim1; + long: 64; +}; + +struct cpu { + int node_id; + int hotpluggable; + struct device dev; +}; + +struct cpu_attr { + struct device_attribute attr; + const struct cpumask * const map; +}; + +struct cpu_cacheinfo { + struct cacheinfo *info_list; + unsigned int per_cpu_data_slice_size; + unsigned int num_levels; + unsigned int num_leaves; + bool cpu_map_populated; + bool early_ci_levels; +}; + +struct cpu_clk_suspend_context { + u32 clk_csite_src; +}; + +struct cpu_clk_suspend_context___2 { + u32 clk_csite_src; + u32 cclkg_burst; + u32 cclkg_divider; +}; + +struct cpu_context { + long unsigned int x19; + long unsigned int x20; + long unsigned int x21; + long unsigned int x22; + long unsigned int x23; + long unsigned int x24; + long unsigned int x25; + long unsigned int x26; + long unsigned int x27; + long unsigned int x28; + long unsigned int fp; + long unsigned int sp; + long unsigned int pc; +}; + +struct update_util_data { + void (*func)(struct update_util_data *, u64, unsigned int); +}; + +struct policy_dbs_info; + +struct cpu_dbs_info { + u64 prev_cpu_idle; + u64 prev_update_time; + u64 prev_cpu_nice; + unsigned int prev_load; + struct update_util_data update_util; + struct policy_dbs_info *policy_dbs; +}; + +struct cpu_dfs_regs { + unsigned int divider_reg; + unsigned int force_reg; + unsigned int ratio_reg; + unsigned int ratio_state_reg; + unsigned int divider_mask; + unsigned int cluster_offset; + unsigned int force_mask; + int divider_offset; + int divider_ratio; + int ratio_offset; + int ratio_state_offset; + int ratio_state_cluster_offset; +}; + +struct cpu_down_work { + unsigned int cpu; + enum cpuhp_state target; +}; + +struct folio_batch { + unsigned char nr; + unsigned char i; + bool percpu_pvec_drained; + struct folio *folios[31]; +}; + +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 lru_activate; + local_lock_t lock_irq; + struct folio_batch lru_move_tail; +}; + +struct cpu_feature { + __u16 feature; +}; + +struct user_fpsimd_state; + +struct cpu_fp_state { + struct user_fpsimd_state *st; + void *sve_state; + void *sme_state; + u64 *svcr; + u64 *fpmr; + unsigned int sve_vl; + unsigned int sme_vl; + enum fp_type *fp_type; + enum fp_type to_save; +}; + +struct cpu_itimer { + u64 expires; + u64 incr; +}; + +struct cpu_lpi_count { + atomic_t managed; + atomic_t unmanaged; +}; + +struct parking_protocol_mailbox; + +struct cpu_mailbox_entry { + struct parking_protocol_mailbox *mailbox; + phys_addr_t mailbox_addr; + u8 version; + u8 gic_cpu_id; +}; + +struct cpu_operations { + const char *name; + int (*cpu_init)(unsigned int); + int (*cpu_prepare)(unsigned int); + int (*cpu_boot)(unsigned int); + void (*cpu_postboot)(void); + bool (*cpu_can_disable)(unsigned int); + int (*cpu_disable)(unsigned int); + void (*cpu_die)(unsigned int); + int (*cpu_kill)(unsigned int); +}; + +struct cpu_rmap { + struct kref refcount; + u16 size; + void **obj; + struct { + u16 index; + u16 dist; + } near[0]; +}; + +struct cpu_stop_done { + atomic_t nr_todo; + int ret; + struct completion completion; +}; + +typedef int (*cpu_stop_fn_t)(void *); + +struct cpu_stop_work { + struct list_head list; + cpu_stop_fn_t fn; + long unsigned int 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; + long unsigned int caller; + cpu_stop_fn_t fn; +}; + +struct cpu_suspend_ctx { + u64 ctx_regs[13]; + u64 sp; +}; + +struct cpu_sve_state { + __u64 zcr_el1; + __u32 fpsr; + __u32 fpcr; + __u8 sve_regs[0]; +}; + +struct cpu_timer { + struct timerqueue_node node; + struct timerqueue_head *head; + struct pid *pid; + struct list_head elist; + bool firing; + bool nanosleep; + struct task_struct *handling; +}; + +struct cpu_topology { + int thread_id; + int core_id; + int cluster_id; + int package_id; + cpumask_t thread_sibling; + cpumask_t core_sibling; + cpumask_t cluster_sibling; + cpumask_t llc_sibling; +}; + +struct cpu_vfs_cap_data { + __u32 magic_etc; + kuid_t rootid; + kernel_cap_t permitted; + kernel_cap_t inheritable; +}; + +struct kernel_cpustat; + +struct cpuacct { + struct cgroup_subsys_state css; + u64 *cpuusage; + struct kernel_cpustat *cpustat; +}; + +struct cpudl_item; + +struct cpudl { + raw_spinlock_t lock; + int size; + cpumask_var_t free_cpus; + struct cpudl_item *elements; +}; + +struct cpudl_item { + u64 dl; + int cpu; + int idx; +}; + +struct thermal_cooling_device_ops { + int (*get_max_state)(struct thermal_cooling_device *, long unsigned int *); + int (*get_cur_state)(struct thermal_cooling_device *, long unsigned int *); + int (*set_cur_state)(struct thermal_cooling_device *, long unsigned int); + int (*get_requested_power)(struct thermal_cooling_device *, u32 *); + int (*state2power)(struct thermal_cooling_device *, long unsigned int, u32 *); + int (*power2state)(struct thermal_cooling_device *, u32, long unsigned int *); +}; + +struct cpufreq_policy; + +struct cpufreq_cooling_device { + u32 last_load; + unsigned int cpufreq_state; + unsigned int max_level; + struct em_perf_domain *em; + struct cpufreq_policy *policy; + struct thermal_cooling_device_ops cooling_ops; + struct freq_qos_request qos_req; +}; + +struct cpufreq_cpuinfo { + unsigned int max_freq; + unsigned int min_freq; + unsigned int transition_latency; +}; + +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, long unsigned int, long unsigned int, long unsigned int); + 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 *); + void (*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_dt_platform_data { + bool have_governor_per_policy; + unsigned int (*get_intermediate)(struct cpufreq_policy *, unsigned int); + int (*target_intermediate)(struct cpufreq_policy *, unsigned int); + int (*suspend)(struct cpufreq_policy *); + int (*resume)(struct cpufreq_policy *); +}; + +struct cpufreq_freqs { + struct cpufreq_policy *policy; + unsigned int old; + unsigned int new; + u8 flags; +}; + +struct cpufreq_frequency_table { + unsigned int flags; + unsigned int driver_data; + unsigned int frequency; +}; + +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 plist_head { + struct list_head node_list; +}; + +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 cpufreq_stats; + +struct cpufreq_policy { + cpumask_var_t cpus; + cpumask_var_t related_cpus; + cpumask_var_t real_cpus; + unsigned int shared_type; + unsigned int cpu; + struct clk *clk; + struct cpufreq_cpuinfo cpuinfo; + unsigned int min; + unsigned int max; + unsigned int cur; + unsigned int suspend_freq; + unsigned int policy; + unsigned int last_policy; + struct cpufreq_governor *governor; + void *governor_data; + char last_governor[16]; + struct work_struct update; + struct freq_constraints constraints; + struct freq_qos_request *min_freq_req; + struct freq_qos_request *max_freq_req; + struct cpufreq_frequency_table *freq_table; + enum cpufreq_table_sorting freq_table_sorted; + struct list_head policy_list; + struct kobject kobj; + struct completion kobj_unregister; + struct rw_semaphore rwsem; + bool fast_switch_possible; + bool fast_switch_enabled; + bool strict_target; + bool efficiencies_available; + unsigned int transition_delay_us; + bool dvfs_possible_from_any_cpu; + bool boost_enabled; + bool boost_supported; + 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_policy_data { + struct cpufreq_cpuinfo cpuinfo; + struct cpufreq_frequency_table *freq_table; + unsigned int cpu; + unsigned int min; + unsigned int max; +}; + +struct cpufreq_stats { + unsigned int total_trans; + long long unsigned int last_time; + unsigned int max_state; + unsigned int state_num; + unsigned int last_index; + u64 *time_in_state; + unsigned int *freq_table; + unsigned int *trans_table; + unsigned int reset_pending; + long long unsigned int reset_time; +}; + +struct cpuhp_cpu_state { + enum cpuhp_state state; + enum cpuhp_state target; + enum cpuhp_state fail; + struct task_struct *thread; + bool should_run; + bool rollback; + bool single; + bool bringup; + struct hlist_node *node; + struct hlist_node *last; + enum cpuhp_state cb_state; + int result; + atomic_t ap_sync_state; + struct completion done_up; + struct completion done_down; +}; + +struct cpuhp_step { + const char *name; + union { + int (*single)(unsigned int); + int (*multi)(unsigned int, struct hlist_node *); + } startup; + union { + int (*single)(unsigned int); + int (*multi)(unsigned int, struct hlist_node *); + } teardown; + struct hlist_head list; + bool cant_stop; + bool multi_instance; +}; + +struct cpuidle_device; + +struct cpuidle_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_device *, char *); + ssize_t (*store)(struct cpuidle_device *, const char *, size_t); +}; + +struct idle_inject_device; + +struct cpuidle_cooling_device { + struct idle_inject_device *ii_dev; + long unsigned int state; +}; + +struct cpuidle_state_usage { + long long unsigned int disable; + long long unsigned int usage; + u64 time_ns; + long long unsigned int above; + long long unsigned int below; + long long unsigned int rejected; + long long unsigned int s2idle_usage; + long long unsigned int s2idle_time; +}; + +struct cpuidle_state_kobj; + +struct cpuidle_driver_kobj; + +struct cpuidle_device_kobj; + +struct cpuidle_device { + unsigned int registered: 1; + unsigned int enabled: 1; + unsigned int poll_time_limit: 1; + unsigned int cpu; + ktime_t next_hrtimer; + int last_state_idx; + u64 last_residency_ns; + u64 poll_limit_ns; + u64 forced_idle_latency_limit_ns; + struct cpuidle_state_usage states_usage[10]; + struct cpuidle_state_kobj *kobjs[10]; + struct cpuidle_driver_kobj *kobj_driver; + struct cpuidle_device_kobj *kobj_dev; + struct list_head device_list; +}; + +struct cpuidle_device_kobj { + struct cpuidle_device *dev; + struct completion kobj_unregister; + struct kobject kobj; +}; + +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); + void (*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_driver_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_driver *, char *); + ssize_t (*store)(struct cpuidle_driver *, const char *, size_t); +}; + +struct cpuidle_driver_kobj { + struct cpuidle_driver *drv; + struct completion kobj_unregister; + struct kobject kobj; +}; + +struct cpuidle_governor { + char name[16]; + struct list_head governor_list; + unsigned int rating; + int (*enable)(struct cpuidle_driver *, struct cpuidle_device *); + void (*disable)(struct cpuidle_driver *, struct cpuidle_device *); + int (*select)(struct cpuidle_driver *, struct cpuidle_device *, bool *); + void (*reflect)(struct cpuidle_device *, int); +}; + +struct cpuidle_state_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 cpuinfo_32bit { + u32 reg_id_dfr0; + u32 reg_id_dfr1; + u32 reg_id_isar0; + u32 reg_id_isar1; + u32 reg_id_isar2; + u32 reg_id_isar3; + u32 reg_id_isar4; + u32 reg_id_isar5; + u32 reg_id_isar6; + u32 reg_id_mmfr0; + u32 reg_id_mmfr1; + u32 reg_id_mmfr2; + u32 reg_id_mmfr3; + u32 reg_id_mmfr4; + u32 reg_id_mmfr5; + u32 reg_id_pfr0; + u32 reg_id_pfr1; + u32 reg_id_pfr2; + u32 reg_mvfr0; + u32 reg_mvfr1; + u32 reg_mvfr2; +}; + +struct cpuinfo_arm64 { + struct kobject kobj; + u64 reg_ctr; + u64 reg_cntfrq; + u64 reg_dczid; + u64 reg_midr; + u64 reg_revidr; + u64 reg_gmid; + u64 reg_smidr; + u64 reg_mpamidr; + u64 reg_id_aa64dfr0; + u64 reg_id_aa64dfr1; + u64 reg_id_aa64isar0; + u64 reg_id_aa64isar1; + u64 reg_id_aa64isar2; + u64 reg_id_aa64isar3; + u64 reg_id_aa64mmfr0; + u64 reg_id_aa64mmfr1; + u64 reg_id_aa64mmfr2; + u64 reg_id_aa64mmfr3; + u64 reg_id_aa64mmfr4; + u64 reg_id_aa64pfr0; + u64 reg_id_aa64pfr1; + u64 reg_id_aa64pfr2; + u64 reg_id_aa64zfr0; + u64 reg_id_aa64smfr0; + u64 reg_id_aa64fpfr0; + struct cpuinfo_32bit aarch32; +}; + +union cpumask_rcuhead { + cpumask_t cpumask; + struct callback_head rcu; +}; + +struct cpupri_vec { + atomic_t count; + cpumask_var_t mask; +}; + +struct cpupri { + struct cpupri_vec pri_to_cpu[101]; + int *cpu_to_pri; +}; + +struct fmeter { + int cnt; + int val; + time64_t time; + spinlock_t lock; +}; + +struct uf_node { + struct uf_node *parent; + unsigned int rank; +}; + +struct cpuset { + struct cgroup_subsys_state css; + long unsigned int flags; + cpumask_var_t cpus_allowed; + nodemask_t mems_allowed; + cpumask_var_t effective_cpus; + nodemask_t effective_mems; + cpumask_var_t effective_xcpus; + cpumask_var_t exclusive_cpus; + nodemask_t old_mems_allowed; + struct fmeter fmeter; + int attach_in_progress; + int relax_domain_level; + int nr_subparts; + int partition_root_state; + int nr_deadline_tasks; + int nr_migrate_dl_tasks; + u64 sum_migrate_dl_bw; + enum prs_errcode prs_err; + struct cgroup_file partition_file; + struct list_head remote_sibling; + struct uf_node node; +}; + +struct cpuset_migrate_mm_work { + struct work_struct work; + struct mm_struct *mm; + nodemask_t from; + nodemask_t to; +}; + +struct tpm_chip; + +struct tpm_tis_phy_ops; + +struct tpm_tis_data { + struct tpm_chip *chip; + u16 manufacturer_id; + struct mutex locality_count_mutex; + unsigned int locality_count; + int locality; + int irq; + struct work_struct free_irq_work; + long unsigned int last_unhandled_irq; + unsigned int unhandled_irqs; + unsigned int int_mask; + long unsigned int 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; + short unsigned int rng_quality; + unsigned int timeout_min; + unsigned int timeout_max; +}; + +struct spi_device; + +struct spi_transfer; + +struct tpm_tis_spi_phy { + struct tpm_tis_data priv; + struct spi_device *spi_device; + int (*flow_control)(struct tpm_tis_spi_phy *, struct spi_transfer *); + struct completion ready; + long unsigned int wake_after; + u8 *iobuf; +}; + +struct cr50_spi_phy { + struct tpm_tis_spi_phy spi_phy; + struct mutex time_track_mutex; + long unsigned int last_access; + long unsigned int access_delay; + unsigned int irq_confirmation_attempt; + bool irq_needs_confirmation; + bool irq_confirmed; +}; + +struct range { + u64 start; + u64 end; +}; + +struct crash_mem { + unsigned int max_nr_ranges; + unsigned int nr_ranges; + struct range ranges[0]; +}; + +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 crc64_pi_tuple { + __be64 guard_tag; + __be16 app_tag; + __u8 ref_tag[6]; +}; + +struct group_info; + +struct cred { + atomic_long_t usage; + kuid_t uid; + kgid_t gid; + kuid_t suid; + kgid_t sgid; + kuid_t euid; + kgid_t egid; + kuid_t fsuid; + kgid_t fsgid; + unsigned int securebits; + kernel_cap_t cap_inheritable; + kernel_cap_t cap_permitted; + kernel_cap_t cap_effective; + kernel_cap_t cap_bset; + kernel_cap_t cap_ambient; + unsigned char jit_keyring; + struct key *session_keyring; + struct key *process_keyring; + struct key *thread_keyring; + struct key *request_key_auth; + void *security; + struct user_struct *user; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct group_info *group_info; + union { + int non_rcu; + struct callback_head rcu; + }; +}; + +struct cred_label { + const struct cred *cred; + struct aa_label *label; +}; + +struct crng { + u8 key[32]; + long unsigned int generation; + local_lock_t lock; +}; + +struct cros_ec_command { + uint32_t version; + uint32_t command; + uint32_t outsize; + uint32_t insize; + uint32_t result; + uint8_t data[0]; +}; + +struct cros_ec_debugfs; + +struct ec_response_get_features { + uint32_t flags[2]; +}; + +struct cros_ec_device; + +struct cros_ec_dev { + struct device class_dev; + struct cros_ec_device *ec_dev; + struct device *dev; + struct cros_ec_debugfs *debug_info; + bool has_kb_wake_angle; + u16 cmd_offset; + struct ec_response_get_features features; +}; + +struct ec_response_motion_sense_fifo_info { + uint16_t size; + uint16_t count; + uint32_t timestamp; + uint16_t total_lost; + uint16_t lost[0]; +} __attribute__((packed)); + +union ec_response_get_next_data_v3 { + uint8_t key_matrix[18]; + uint32_t host_event; + uint64_t host_event64; + struct { + uint8_t reserved[3]; + struct ec_response_motion_sense_fifo_info info; + } sensor_fifo; + uint32_t buttons; + uint32_t switches; + uint32_t fp_events; + uint32_t sysrq; + uint32_t cec_events; + uint8_t cec_message[16]; +}; + +struct ec_response_get_next_event_v3 { + uint8_t event_type; + union ec_response_get_next_data_v3 data; +}; + +struct cros_ec_device { + const char *phys_name; + struct device *dev; + struct class *cros_class; + int (*cmd_readmem)(struct cros_ec_device *, unsigned int, unsigned int, void *); + u16 max_request; + u16 max_response; + u16 max_passthru; + u16 proto_version; + void *priv; + int irq; + u8 *din; + u8 *dout; + int din_size; + int dout_size; + bool wake_enabled; + bool suspended; + int (*cmd_xfer)(struct cros_ec_device *, struct cros_ec_command *); + int (*pkt_xfer)(struct cros_ec_device *, struct cros_ec_command *); + struct lock_class_key lockdep_key; + struct mutex lock; + u8 mkbp_event_supported; + bool host_sleep_v1; + struct blocking_notifier_head event_notifier; + struct ec_response_get_next_event_v3 event_data; + int event_size; + u32 host_event_wake_mask; + u32 last_resume_result; + u16 suspend_timeout_ms; + ktime_t last_event_time; + struct notifier_block notifier_ready; + struct platform_device *ec; + struct platform_device *pd; + struct blocking_notifier_head panic_notifier; +}; + +struct crs_csi2 { + struct list_head entry; + acpi_handle handle; + struct acpi_device_software_nodes *swnodes; + struct list_head connections; + u32 port_count; +}; + +struct crs_csi2_connection { + struct list_head entry; + struct acpi_resource_csi2_serialbus csi2_data; + acpi_handle remote_handle; + char remote_name[0]; +}; + +struct crypto_tfm { + refcount_t refcnt; + u32 crt_flags; + int node; + void (*exit)(struct crypto_tfm *); + struct crypto_alg *__crt_alg; + void *__crt_ctx[0]; +}; + +struct 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 crypto_wait { + struct completion completion; + int err; +}; + +struct crypto_acomp_ctx { + struct crypto_acomp *acomp; + struct acomp_req *req; + struct crypto_wait wait; + u8 *buffer; + struct mutex mutex; + bool is_sleepable; +}; + +struct crypto_aead { + unsigned int authsize; + unsigned int reqsize; + struct crypto_tfm base; +}; + +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 crypto_aead_spawn { + struct crypto_spawn base; +}; + +struct crypto_aes_ctx { + u32 key_enc[60]; + u32 key_dec[60]; + u32 key_length; +}; + +struct crypto_ahash { + bool using_shash; + unsigned int statesize; + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_ahash_spawn { + struct crypto_spawn base; +}; + +struct crypto_akcipher { + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_akcipher_spawn { + struct crypto_spawn base; +}; + +struct crypto_akcipher_sync_data { + struct crypto_akcipher *tfm; + const void *src; + void *dst; + unsigned int slen; + unsigned int dlen; + struct akcipher_request *req; + struct crypto_wait cwait; + struct scatterlist sg; + u8 *buf; +}; + +struct crypto_attr_alg { + char name[128]; +}; + +struct crypto_attr_type { + u32 type; + u32 mask; +}; + +struct crypto_cipher { + struct crypto_tfm base; +}; + +struct crypto_cipher_spawn { + struct crypto_spawn base; +}; + +struct crypto_comp { + struct crypto_tfm base; +}; + +struct crypto_cts_ctx { + struct crypto_skcipher *child; +}; + +struct skcipher_request { + unsigned int cryptlen; + u8 *iv; + struct scatterlist *src; + struct scatterlist *dst; + struct crypto_async_request base; + void *__ctx[0]; +}; + +struct crypto_cts_reqctx { + struct scatterlist sg[2]; + unsigned int offset; + struct skcipher_request subreq; +}; + +struct crypto_gcm_ctx { + struct crypto_skcipher *ctr; + struct crypto_ahash *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_hash_walk { + char *data; + unsigned int offset; + unsigned int flags; + struct page *pg; + unsigned int entrylen; + unsigned int total; + struct scatterlist *sg; +}; + +struct crypto_kpp { + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_kpp_spawn { + struct crypto_spawn base; +}; + +struct crypto_larval { + struct crypto_alg alg; + struct crypto_alg *adult; + struct completion completion; + u32 mask; + bool test_started; +}; + +struct crypto_lskcipher { + struct crypto_tfm base; +}; + +struct crypto_lskcipher_spawn { + struct crypto_spawn base; +}; + +struct crypto_queue { + struct list_head list; + struct list_head *backlog; + unsigned int qlen; + unsigned int max_qlen; +}; + +struct crypto_report_acomp { + char type[64]; +}; + +struct crypto_report_aead { + char type[64]; + char geniv[64]; + unsigned int blocksize; + unsigned int maxauthsize; + unsigned int ivsize; +}; + +struct crypto_report_akcipher { + char type[64]; +}; + +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 crypto_report_comp { + char type[64]; +}; + +struct crypto_report_hash { + char type[64]; + unsigned int blocksize; + unsigned int digestsize; +}; + +struct crypto_report_kpp { + char type[64]; +}; + +struct crypto_report_rng { + char type[64]; + unsigned int seedsize; +}; + +struct crypto_report_sig { + char type[64]; +}; + +struct crypto_rfc3686_ctx { + struct crypto_skcipher *child; + u8 nonce[4]; +}; + +struct crypto_rfc3686_req_ctx { + u8 iv[16]; + struct skcipher_request subreq; +}; + +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_ctx { + struct crypto_aead *child; + struct crypto_sync_skcipher *null; + u8 nonce[4]; +}; + +struct crypto_rfc4543_instance_ctx { + struct crypto_aead_spawn aead; +}; + +struct crypto_rfc4543_req_ctx { + struct aead_request subreq; +}; + +struct crypto_rng { + struct crypto_tfm base; +}; + +struct crypto_scomp { + struct crypto_tfm base; +}; + +struct crypto_shash { + unsigned int descsize; + struct crypto_tfm base; +}; + +struct crypto_shash_spawn { + struct crypto_spawn base; +}; + +struct crypto_sig { + struct crypto_tfm base; +}; + +struct crypto_sig_spawn { + struct crypto_spawn base; +}; + +struct crypto_skcipher { + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_skcipher_spawn { + struct crypto_spawn base; +}; + +struct crypto_sync_skcipher { + struct crypto_skcipher base; +}; + +struct rtattr; + +struct crypto_template { + struct list_head list; + struct hlist_head instances; + struct module *module; + int (*create)(struct crypto_template *, struct rtattr **); + char name[128]; +}; + +struct crypto_test_param { + char driver[128]; + char alg[128]; + u32 type; +}; + +struct crypto_type { + unsigned int (*ctxsize)(struct crypto_alg *, u32, u32); + unsigned int (*extsize)(struct crypto_alg *); + int (*init_tfm)(struct crypto_tfm *); + void (*show)(struct seq_file *, struct crypto_alg *); + int (*report)(struct sk_buff *, struct crypto_alg *); + void (*free)(struct crypto_instance *); + unsigned int type; + unsigned int maskclear; + unsigned int maskset; + unsigned int tfmsize; +}; + +struct rtattr { + short unsigned int rta_len; + short unsigned int rta_type; +}; + +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 cs_data { + u32 enable_mask; + u16 slow_cfg; + u16 fast_cfg; +}; + +struct cs_dbs_tuners { + unsigned int down_threshold; + unsigned int freq_step; +}; + +struct dbs_data; + +struct policy_dbs_info { + struct cpufreq_policy *policy; + struct mutex update_mutex; + u64 last_sample_time; + s64 sample_delay_ns; + atomic_t work_count; + struct irq_work irq_work; + struct work_struct work; + struct dbs_data *dbs_data; + struct list_head list; + unsigned int rate_mult; + unsigned int idle_periods; + bool is_shared; + bool work_in_progress; +}; + +struct cs_policy_dbs_info { + struct policy_dbs_info policy_dbs; + unsigned int down_skip; + unsigned int requested_freq; +}; + +struct cs_timing { + bool is_applied; + u32 regs[6]; +}; + +struct cs_timing_state { + struct cs_timing cs[6]; +}; + +struct csi2_resources_walk_data { + acpi_handle handle; + struct list_head connections; +}; + +struct mem_ctl_info; + +struct rank_info; + +struct csrow_info { + struct device dev; + long unsigned int first_page; + long unsigned int last_page; + long unsigned int page_mask; + int csrow_idx; + u32 ue_count; + u32 ce_count; + struct mem_ctl_info *mci; + u32 nr_channels; + struct rank_info **channels; +}; + +struct css_set { + struct cgroup_subsys_state *subsys[15]; + 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[15]; + 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 css_set__safe_rcu { + struct cgroup *dfl_cgrp; +}; + +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 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 cstate { + byte_t cs_this; + bool initialized; + struct cstate *next; + struct iphdr cs_ip; + struct tcphdr cs_tcp; + unsigned char cs_ipopt[64]; + unsigned char cs_tcpopt[64]; + int cs_hsize; +}; + +struct cstate___2 { + int state; + uint32_t rep0; + uint32_t rep1; + uint32_t rep2; + uint32_t rep3; +}; + +struct csum_pseudo_header { + __be64 data_seq; + __be32 subflow_seq; + __be16 data_len; + __sum16 csum; +}; + +struct csum_state { + __wsum csum; + size_t off; +}; + +struct ct_data_s { + union { + ush freq; + ush code; + } fc; + union { + ush dad; + ush len; + } dl; +}; + +typedef struct ct_data_s ct_data; + +struct ctl_table_root; + +struct ctl_table_set; + +struct ctl_dir; + +struct ctl_node; + +struct ctl_table_header { + union { + struct { + const struct ctl_table *ctl_table; + int ctl_table_size; + int used; + int count; + int nreg; + }; + struct callback_head rcu; + }; + struct completion *unregistering; + const 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; + enum { + SYSCTL_TABLE_TYPE_DEFAULT = 0, + SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY = 1, + } type; +}; + +struct ctl_dir { + struct ctl_table_header header; + struct rb_root root; +}; + +struct ctl_info_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_device_ctl_info *, char *); + ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); +}; + +struct ctl_node { + struct rb_node node; + struct ctl_table_header *header; +}; + +typedef int proc_handler(const 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; + proc_handler *proc_handler; + struct ctl_table_poll *poll; + void *extra1; + void *extra2; +}; + +struct ctl_table_poll { + atomic_t event; + wait_queue_head_t wait; +}; + +struct ctl_table_set { + int (*is_seen)(struct ctl_table_set *); + struct ctl_dir dir; +}; + +struct ctl_table_root { + struct ctl_table_set default_set; + struct ctl_table_set * (*lookup)(struct ctl_table_root *); + void (*set_ownership)(struct ctl_table_header *, kuid_t *, kgid_t *); + int (*permissions)(struct ctl_table_header *, const struct ctl_table *); +}; + +struct netlink_policy_dump_state; + +struct genl_family; + +struct genl_op_iter; + +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 ctrl_pos { + long unsigned int refaulted; + long unsigned int total; + int gain; +}; + +struct ctx_rq_wait { + struct completion comp; + atomic_t count; +}; + +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 cvb_coefficients { + int c0; + int c1; + int c2; +}; + +struct cvb_cpu_dfll_data { + u32 tune0_low; + u32 tune0_high; + u32 tune1; + unsigned int tune_high_min_millivolts; +}; + +struct cvb_table_freq_entry { + long unsigned int freq; + struct cvb_coefficients coefficients; +}; + +struct cvb_table { + int speedo_id; + int process_id; + int min_millivolts; + int max_millivolts; + int speedo_scale; + int voltage_scale; + struct cvb_table_freq_entry entries[40]; + struct cvb_cpu_dfll_data cpu_dfll_data; +}; + +struct cvt_timing { + u8 code[3]; +}; + +struct cxl_event_record_hdr { + u8 length; + u8 flags[3]; + __le16 handle; + __le16 related_handle; + __le64 timestamp; + u8 maint_op_class; + u8 maint_op_sub_class; + u8 reserved[14]; +}; + +struct cxl_event_generic { + struct cxl_event_record_hdr hdr; + u8 data[80]; +}; + +struct cxl_event_media_hdr { + struct cxl_event_record_hdr hdr; + __le64 phys_addr; + u8 descriptor; + u8 type; + u8 transaction_type; + u8 validity_flags[2]; + u8 channel; + u8 rank; +} __attribute__((packed)); + +struct cxl_event_gen_media { + struct cxl_event_media_hdr media_hdr; + u8 device[3]; + u8 component_id[16]; + u8 cme_threshold_ev_flags; + u8 cme_count[3]; + u8 sub_type; + u8 reserved[41]; +}; + +struct cxl_event_dram { + struct cxl_event_media_hdr media_hdr; + u8 nibble_mask[3]; + u8 bank_group; + u8 bank; + u8 row[3]; + u8 column[2]; + u8 correction_mask[32]; + u8 component_id[16]; + u8 sub_channel; + u8 cme_threshold_ev_flags; + u8 cvme_count[3]; + u8 sub_type; + u8 reserved; +}; + +struct cxl_get_health_info { + u8 health_status; + u8 media_status; + u8 add_status; + u8 life_used; + u8 device_temp[2]; + u8 dirty_shutdown_cnt[4]; + u8 cor_vol_err_cnt[4]; + u8 cor_per_err_cnt[4]; +}; + +struct cxl_event_mem_module { + struct cxl_event_record_hdr hdr; + u8 event_type; + struct cxl_get_health_info info; + u8 validity_flags[2]; + u8 component_id[16]; + u8 event_sub_type; + u8 reserved[42]; +}; + +union cxl_event { + struct cxl_event_generic generic; + struct cxl_event_gen_media gen_media; + struct cxl_event_dram dram; + struct cxl_event_mem_module mem_module; + struct cxl_event_media_hdr media_hdr; +}; + +struct cxl_cper_event_rec { + struct { + u32 length; + u64 validation_bits; + struct cper_cxl_event_devid device_id; + struct cper_cxl_event_sn dev_serial_num; + } __attribute__((packed)) hdr; + union cxl_event event; +}; + +struct cxl_cper_work_data { + enum cxl_event_type event_type; + struct cxl_cper_event_rec rec; +} __attribute__((packed)); + +struct cxl_mbox_cmd_rc { + int err; + const char *desc; +}; + +struct cxl_ras_capability_regs { + u32 uncor_status; + u32 uncor_mask; + u32 uncor_severity; + u32 cor_status; + u32 cor_mask; + u32 cap_control; + u32 header_log[16]; +}; + +struct cyclecounter { + u64 (*read)(const struct cyclecounter *); + u64 mask; + u32 mult; + u32 shift; +}; + +struct d0_features { + __be16 code; + u8 r_version; + u8 length; + u8 features[0]; +}; + +struct d0_geometry_features { + u8 header[4]; + u8 reserved01; + u8 reserved02[7]; + __be32 logical_block_size; + __be64 alignment_granularity; + __be64 lowest_aligned_lba; +}; + +struct d0_header { + __be32 length; + __be32 revision; + __be32 reserved01; + __be32 reserved02; + u8 ignored[32]; +}; + +struct d0_locking_features { + u8 supported_features; + u8 reserved01[3]; + __be32 reserved02; + __be32 reserved03; +}; + +struct d0_opal_v100 { + __be16 baseComID; + __be16 numComIDs; +}; + +struct d0_opal_v200 { + __be16 baseComID; + __be16 numComIDs; + u8 range_crossing; + u8 num_locking_admin_auth[2]; + u8 num_locking_user_auth[2]; + u8 initialPIN; + u8 revertedPIN; + u8 reserved01; + __be32 reserved02; +}; + +struct d0_single_user_mode { + __be32 num_locking_objects; + u8 reserved01; + u8 reserved02; + __be16 reserved03; + __be32 reserved04; +}; + +struct d0_tper_features { + u8 supported_features; + u8 reserved01[3]; + __be32 reserved02; + __be32 reserved03; +}; + +struct d_partition { + __le32 p_size; + __le32 p_offset; + __le32 p_fsize; + u8 p_fstype; + u8 p_frag; + __le16 p_cpg; +}; + +struct d_partition___2 { + __le32 p_res; + u8 p_fstype; + u8 p_res2[3]; + __le32 p_offset; + __le32 p_size; +}; + +struct da903x_chip_ops; + +struct da903x_chip { + struct i2c_client *client; + struct device *dev; + const struct da903x_chip_ops *ops; + int type; + uint32_t events_mask; + struct mutex lock; + struct work_struct irq_work; + struct blocking_notifier_head notifier_list; +}; + +struct da903x_chip_ops { + int (*init_chip)(struct da903x_chip *); + int (*unmask_events)(struct da903x_chip *, unsigned int); + int (*mask_events)(struct da903x_chip *, unsigned int); + int (*read_events)(struct da903x_chip *, unsigned int *); + int (*read_status)(struct da903x_chip *, unsigned int *); +}; + +struct da903x_subdev_info; + +struct da903x_platform_data { + int num_subdevs; + struct da903x_subdev_info *subdevs; +}; + +struct da903x_subdev_info { + int id; + const char *name; + void *platform_data; +}; + +struct da9052 { + struct device *dev; + struct regmap *regmap; + struct mutex auxadc_lock; + struct completion done; + int irq_base; + struct regmap_irq_chip_data *irq_data; + u8 chip_id; + int chip_irq; + int fault_log; + int (*fix_io)(struct da9052 *, unsigned char); +}; + +struct led_platform_data; + +struct da9052_pdata { + struct led_platform_data *pled; + int (*init)(struct da9052 *); + int irq_base; + int gpio_base; + int use_for_apm; + struct regulator_init_data *regulators[14]; +}; + +struct da9055 { + struct regmap *regmap; + struct regmap_irq_chip_data *irq_data; + struct device *dev; + struct i2c_client *i2c_client; + int irq_base; + int chip_irq; +}; + +struct da9055_pdata { + int (*init)(struct da9055 *); + int irq_base; + int gpio_base; + struct regulator_init_data *regulators[8]; + bool reset_enable; + enum gpio_select *reg_ren; + enum gpio_select *reg_rsel; +}; + +struct da9063 { + struct device *dev; + enum da9063_type type; + unsigned char variant_code; + unsigned int flags; + bool use_sw_pm; + struct regmap *regmap; + int chip_irq; + unsigned int irq_base; + struct regmap_irq_chip_data *regmap_irq; +}; + +struct da_monitor { + bool monitoring; + unsigned int curr_state; +}; + +struct dart_io_pgtable { + struct io_pgtable iop; + int tbl_bits; + int bits_per_level; + void *pgd[4]; +}; + +struct data_chunk { + size_t size; + size_t icg; + size_t dst_icg; + size_t src_icg; +}; + +struct data_dirent { + uint32_t virtual_address; + uint32_t size; +}; + +struct data_directory { + struct data_dirent exports; + struct data_dirent imports; + struct data_dirent resources; + struct data_dirent exceptions; + struct data_dirent certs; + struct data_dirent base_relocations; + struct data_dirent debug; + struct data_dirent arch; + struct data_dirent global_ptr; + struct data_dirent tls; + struct data_dirent load_config; + struct data_dirent bound_imports; + struct data_dirent import_addrs; + struct data_dirent delay_imports; + struct data_dirent clr_runtime_hdr; + struct data_dirent reserved; +}; + +struct davinci_gpio_regs { + u32 dir; + u32 out_data; + u32 set_data; + u32 clr_data; + u32 in_data; + u32 set_rising; + u32 clr_rising; + u32 set_falling; + u32 clr_falling; + u32 intstat; +}; + +struct davinci_gpio_controller { + struct gpio_chip chip; + struct irq_domain *irq_domain; + spinlock_t lock; + void *regs[5]; + int gpio_unbanked; + int irqs[32]; + struct davinci_gpio_regs context[5]; + u32 binten_context; +}; + +struct davinci_gpio_irq_data { + void *regs; + struct davinci_gpio_controller *chip; + int bank_num; +}; + +struct mdio_platform_data { + long unsigned int bus_freq; +}; + +struct mdiobb_ops; + +struct mdiobb_ctrl { + const struct mdiobb_ops *ops; + unsigned int override_op_c22; + u8 op_c22_read; + u8 op_c22_write; +}; + +struct davinci_mdio_regs; + +struct mii_bus; + +struct davinci_mdio_data { + struct mdio_platform_data pdata; + struct mdiobb_ctrl bb_ctrl; + struct davinci_mdio_regs *regs; + struct clk *clk; + struct device *dev; + struct mii_bus *bus; + bool active_in_suspend; + long unsigned int access_time; + bool skip_scan; + u32 clk_div; + bool manual_mode; +}; + +struct davinci_mdio_of_param { + int autosuspend_delay_ms; + bool manual_mode; +}; + +struct davinci_mdio_regs { + u32 version; + u32 control; + u32 alive; + u32 link; + u32 linkintraw; + u32 linkintmasked; + u32 __reserved_0[2]; + u32 userintraw; + u32 userintmasked; + u32 userintmaskset; + u32 userintmaskclr; + u32 manualif; + u32 poll; + u32 __reserved_1[18]; + struct { + u32 access; + u32 physel; + } user[0]; +}; + +struct dax_operations; + +struct dax_holder_operations; + +struct dax_device { + struct inode inode; + struct cdev cdev; + void *private; + long unsigned int flags; + const struct dax_operations *ops; + void *holder_data; + const struct dax_holder_operations *holder_ops; +}; + +struct dev_dax; + +struct dax_device_driver { + struct device_driver drv; + struct list_head ids; + enum dax_driver_type type; + int (*probe)(struct dev_dax *); + void (*remove)(struct dev_dax *); +}; + +struct dax_holder_operations { + int (*notify_failure)(struct dax_device *, u64, u64, int); +}; + +struct dax_id { + struct list_head list; + char dev_name[30]; +}; + +struct dax_mapping { + struct device dev; + int range_id; + int id; +}; + +struct dax_operations { + long int (*direct_access)(struct dax_device *, long unsigned int, long int, enum dax_access_mode, void **, pfn_t *); + int (*zero_page_range)(struct dax_device *, long unsigned int, size_t); + size_t (*recovery_write)(struct dax_device *, long unsigned int, void *, size_t, struct iov_iter *); +}; + +struct dax_region { + int id; + int target_node; + struct kref kref; + struct device *dev; + unsigned int align; + struct ida ida; + struct resource res; + struct device *seed; + struct device *youngest; +}; + +struct xhci_dbc; + +struct dbc_driver { + int (*configure)(struct xhci_dbc *); + void (*disconnect)(struct xhci_dbc *); +}; + +struct xhci_ring; + +struct dbc_ep { + struct xhci_dbc *dbc; + struct list_head list_pending; + struct xhci_ring *ring; + unsigned int direction: 1; + unsigned int halted: 1; +}; + +struct dbc_info_context { + __le64 string0; + __le64 manufacturer; + __le64 product; + __le64 serial; + __le32 length; + __le32 __reserved_0[7]; +}; + +struct tty_buffer { + union { + struct tty_buffer *next; + struct llist_node free; + }; + unsigned int used; + unsigned int size; + unsigned int commit; + unsigned int lookahead; + unsigned int read; + bool flags; + long: 0; + u8 data[0]; +}; + +struct tty_bufhead { + struct tty_buffer *head; + struct work_struct work; + struct mutex lock; + atomic_t priority; + struct tty_buffer sentinel; + struct llist_head free; + atomic_t mem_used; + int mem_limit; + struct tty_buffer *tail; +}; + +struct tty_struct; + +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; + long unsigned int flags; + long unsigned int iflags; + unsigned char console: 1; + struct mutex mutex; + struct mutex buf_mutex; + u8 *xmit_buf; + struct { + union { + struct __kfifo kfifo; + u8 *type; + const u8 *const_type; + char (*rectype)[0]; + u8 *ptr; + const u8 *ptr_const; + }; + u8 buf[0]; + } xmit_fifo; + unsigned int close_delay; + unsigned int closing_wait; + int drain_delay; + struct kref kref; + void *client_data; +}; + +struct tasklet_struct { + struct tasklet_struct *next; + long unsigned int state; + atomic_t count; + bool use_callback; + union { + void (*func)(long unsigned int); + void (*callback)(struct tasklet_struct *); + }; + long unsigned int data; +}; + +struct dbc_port { + struct tty_port port; + spinlock_t port_lock; + int minor; + struct list_head read_pool; + struct list_head read_queue; + unsigned int n_read; + struct tasklet_struct push; + struct list_head write_pool; + unsigned int tx_boundary; + bool registered; +}; + +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; +}; + +union xhci_trb; + +struct dbc_request { + void *buf; + unsigned int length; + dma_addr_t dma; + void (*complete)(struct xhci_dbc *, struct dbc_request *); + struct list_head list_pool; + int status; + unsigned int actual; + struct xhci_dbc *dbc; + struct list_head list_pending; + dma_addr_t trb_dma; + union xhci_trb *trb; + unsigned int direction: 1; +}; + +struct dbc_str_descs { + char string0[64]; + char manufacturer[64]; + char product[64]; + char serial[64]; +}; + +struct dbg { + __be32 bpdcr; + __be32 bpdsr; + __be32 bpdmr; + __be32 bprmrr0; + __be32 bprmrr1; + u8 res0[8]; + __be32 bprmtr0; + __be32 bprmtr1; + u8 res1[8]; + __be32 bprmir; + __be32 bprmsr; + __be32 bpemr; + u8 res2[72]; +}; + +struct dbg_reg_def_t { + char *name; + int size; + int offset; +}; + +struct gov_attr_set { + struct kobject kobj; + struct list_head policy_list; + struct mutex update_lock; + int usage_count; +}; + +struct dbs_governor; + +struct dbs_data { + struct gov_attr_set attr_set; + struct dbs_governor *gov; + void *tuners; + unsigned int ignore_nice_load; + unsigned int sampling_rate; + unsigned int sampling_down_factor; + unsigned int up_threshold; + unsigned int io_is_busy; +}; + +struct sysfs_ops; + +struct kobj_type { + void (*release)(struct kobject *); + const struct sysfs_ops *sysfs_ops; + const struct attribute_group **default_groups; + const struct kobj_ns_type_operations * (*child_ns_type)(const struct kobject *); + const void * (*namespace)(const struct kobject *); + void (*get_ownership)(const struct kobject *, kuid_t *, kgid_t *); +}; + +struct 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); + void (*free)(struct policy_dbs_info *); + int (*init)(struct dbs_data *); + void (*exit)(struct dbs_data *); + void (*start)(struct cpufreq_policy *); +}; + +struct dcb_app { + __u8 selector; + __u8 priority; + __u16 protocol; +}; + +struct dcb_app_type { + int ifindex; + struct dcb_app app; + struct list_head list; + u8 dcbx; +}; + +struct dcb_ieee_app_dscp_map { + u8 map[64]; +}; + +struct dcb_ieee_app_prio_map { + u64 map[8]; +}; + +struct dcb_peer_app_info { + __u8 willing; + __u8 error; +}; + +struct dcb_rewr_prio_pcp_map { + u16 map[8]; +}; + +struct dcbmsg { + __u8 dcb_family; + __u8 cmd; + __u16 dcb_pad; +}; + +struct dcbnl_buffer { + __u8 prio2buffer[8]; + __u32 buffer_size[8]; + __u32 total_size; +}; + +struct ieee_ets; + +struct ieee_maxrate; + +struct ieee_qcn; + +struct ieee_qcn_stats; + +struct ieee_pfc; + +struct dcbnl_rtnl_ops { + int (*ieee_getets)(struct net_device *, struct ieee_ets *); + int (*ieee_setets)(struct net_device *, struct ieee_ets *); + int (*ieee_getmaxrate)(struct net_device *, struct ieee_maxrate *); + int (*ieee_setmaxrate)(struct net_device *, struct ieee_maxrate *); + int (*ieee_getqcn)(struct net_device *, struct ieee_qcn *); + int (*ieee_setqcn)(struct net_device *, struct ieee_qcn *); + int (*ieee_getqcnstats)(struct net_device *, struct ieee_qcn_stats *); + int (*ieee_getpfc)(struct net_device *, struct ieee_pfc *); + int (*ieee_setpfc)(struct net_device *, struct ieee_pfc *); + int (*ieee_getapp)(struct net_device *, struct dcb_app *); + int (*ieee_setapp)(struct net_device *, struct dcb_app *); + int (*ieee_delapp)(struct net_device *, struct dcb_app *); + int (*ieee_peer_getets)(struct net_device *, struct ieee_ets *); + int (*ieee_peer_getpfc)(struct net_device *, struct ieee_pfc *); + u8 (*getstate)(struct net_device *); + u8 (*setstate)(struct net_device *, u8); + void (*getpermhwaddr)(struct net_device *, u8 *); + void (*setpgtccfgtx)(struct net_device *, int, u8, u8, u8, u8); + void (*setpgbwgcfgtx)(struct net_device *, int, u8); + void (*setpgtccfgrx)(struct net_device *, int, u8, u8, u8, u8); + void (*setpgbwgcfgrx)(struct net_device *, int, u8); + void (*getpgtccfgtx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *); + void (*getpgbwgcfgtx)(struct net_device *, int, u8 *); + void (*getpgtccfgrx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *); + void (*getpgbwgcfgrx)(struct net_device *, int, u8 *); + void (*setpfccfg)(struct net_device *, int, u8); + void (*getpfccfg)(struct net_device *, int, u8 *); + u8 (*setall)(struct net_device *); + u8 (*getcap)(struct net_device *, int, u8 *); + int (*getnumtcs)(struct net_device *, int, u8 *); + int (*setnumtcs)(struct net_device *, int, u8); + u8 (*getpfcstate)(struct net_device *); + void (*setpfcstate)(struct net_device *, u8); + void (*getbcncfg)(struct net_device *, int, u32 *); + void (*setbcncfg)(struct net_device *, int, u32); + void (*getbcnrp)(struct net_device *, int, u8 *); + void (*setbcnrp)(struct net_device *, int, u8); + int (*setapp)(struct net_device *, u8, u16, u8); + int (*getapp)(struct net_device *, u8, u16); + u8 (*getfeatcfg)(struct net_device *, int, u8 *); + u8 (*setfeatcfg)(struct net_device *, int, u8); + u8 (*getdcbx)(struct net_device *); + u8 (*setdcbx)(struct net_device *, u8); + int (*peer_getappinfo)(struct net_device *, struct dcb_peer_app_info *, u16 *); + int (*peer_getapptable)(struct net_device *, struct dcb_app *); + int (*cee_peer_getpg)(struct net_device *, struct cee_pg *); + int (*cee_peer_getpfc)(struct net_device *, struct cee_pfc *); + int (*dcbnl_getbuffer)(struct net_device *, struct dcbnl_buffer *); + int (*dcbnl_setbuffer)(struct net_device *, struct dcbnl_buffer *); + int (*dcbnl_setapptrust)(struct net_device *, u8 *, int); + int (*dcbnl_getapptrust)(struct net_device *, u8 *, int *); + int (*dcbnl_setrewr)(struct net_device *, struct dcb_app *); + int (*dcbnl_delrewr)(struct net_device *, struct dcb_app *); +}; + +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 io_stats_per_prio { + uint32_t inserted; + uint32_t merged; + uint32_t dispatched; + atomic_t completed; +}; + +struct dd_per_prio { + struct list_head dispatch; + struct rb_root sort_list[2]; + struct list_head fifo_list[2]; + sector_t latest_pos[2]; + struct io_stats_per_prio stats; +}; + +struct 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 ddebug_class_param { + union { + long unsigned int *bits; + unsigned int *lvl; + }; + char flags[8]; + const struct ddebug_class_map *map; +}; + +struct ddebug_table; + +struct ddebug_iter { + struct ddebug_table *table; + int idx; +}; + +struct ddebug_query { + const char *filename; + const char *module; + const char *function; + const char *format; + const char *class_string; + unsigned int first_lineno; + unsigned int last_lineno; +}; + +struct ddebug_table { + struct list_head link; + struct list_head maps; + const char *mod_name; + unsigned int num_ddebugs; + struct _ddebug *ddebugs; +}; + +struct rzv2h_cpg_priv; + +struct ddiv_clk { + struct rzv2h_cpg_priv *priv; + struct clk_divider div; + u8 mon; +}; + +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; +}; + +struct ohci_hcd; + +struct debug_buffer { + ssize_t (*fill_func)(struct debug_buffer *); + struct ohci_hcd *ohci; + struct mutex mutex; + size_t count; + char *page; +}; + +struct usb_bus; + +struct debug_buffer___2 { + ssize_t (*fill_func)(struct debug_buffer___2 *); + struct usb_bus *bus; + struct mutex mutex; + size_t count; + char *output_buf; + size_t alloc_size; +}; + +struct debug_info { + int suspended_step; + int bps_disabled; + int wps_disabled; + struct perf_event *hbp_break[16]; + struct perf_event *hbp_watch[16]; +}; + +struct debug_reply_data { + struct ethnl_reply_data base; + u32 msg_mask; +}; + +struct debugfs_blob_wrapper { + void *data; + long unsigned int size; +}; + +struct debugfs_cancellation { + struct list_head list; + void (*cancel)(struct dentry *, void *); + void *cancel_data; +}; + +struct debugfs_devm_entry { + int (*read)(struct seq_file *, void *); + struct device *dev; +}; + +struct debugfs_fs_info { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; +}; + +struct debugfs_short_fops; + +struct debugfs_fsdata { + const struct file_operations *real_fops; + const struct debugfs_short_fops *short_fops; + struct { + refcount_t active_users; + struct completion active_users_drained; + struct mutex cancellations_mtx; + struct list_head cancellations; + unsigned int methods; + }; +}; + +typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); + +struct debugfs_inode_info { + struct inode vfs_inode; + union { + const void *raw; + const struct file_operations *real_fops; + const struct debugfs_short_fops *short_fops; + debugfs_automount_t automount; + }; + const void *aux; +}; + +struct debugfs_reg32 { + char *name; + long unsigned int offset; +}; + +struct debugfs_regset32 { + const struct debugfs_reg32 *regs; + int nregs; + void *base; + struct device *dev; +}; + +struct debugfs_short_fops { + ssize_t (*read)(struct file *, char *, size_t, loff_t *); + ssize_t (*write)(struct file *, const char *, size_t, loff_t *); + loff_t (*llseek)(struct file *, loff_t, int); +}; + +struct debugfs_u32_array { + u32 *array; + u32 n_elements; +}; + +struct debuggerinfo_struct { + void *debuggerinfo; + struct task_struct *task; + int exception_state; + int ret_state; + int irq_depth; + int enter_kgdb; + bool rounding_up; +}; + +struct decomp_stream { + void *stream; + struct list_head list; +}; + +struct deepsleep_control_data { + u8 reg_add; + u8 ds_pos_bit; +}; + +struct dma_fence; + +struct dma_fence_cb; + +typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *); + +struct dma_fence_cb { + struct list_head node; + dma_fence_func_t func; +}; + +struct default_wait_cb { + struct dma_fence_cb base; + struct task_struct *task; +}; + +struct deferred_entry { + struct list_head list; + grant_ref_t ref; + uint16_t warn_delay; + struct page *page; +}; + +struct deferred_split { + spinlock_t split_queue_lock; + struct list_head split_queue; + long unsigned int split_queue_len; +}; + +struct internal_state; + +struct z_stream_s { + const Byte *next_in; + uLong avail_in; + uLong total_in; + Byte *next_out; + uLong avail_out; + uLong total_out; + char *msg; + struct internal_state *state; + void *workspace; + int data_type; + uLong adler; + uLong reserved; +}; + +struct deflate_ctx { + struct z_stream_s comp_stream; + struct z_stream_s decomp_stream; +}; + +typedef struct z_stream_s z_stream; + +typedef z_stream *z_streamp; + +struct static_tree_desc_s; + +typedef struct static_tree_desc_s static_tree_desc; + +struct tree_desc_s { + ct_data *dyn_tree; + int max_code; + static_tree_desc *stat_desc; +}; + +struct 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 int 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 deflate_workspace { + deflate_state deflate_memory; + Byte *window_memory; + Pos *prev_memory; + Pos *head_memory; + char *overlay_memory; +}; + +typedef struct deflate_workspace deflate_workspace; + +struct delayed_call { + void (*fn)(void *); + void *arg; +}; + +struct delayed_uprobe { + struct list_head list; + struct uprobe *uprobe; + struct mm_struct *mm; +}; + +struct demotion_nodes { + nodemask_t preferred; +}; + +struct hlist_bl_node { + struct hlist_bl_node *next; + struct hlist_bl_node **pprev; +}; + +struct qstr { + union { + struct { + u32 hash; + u32 len; + }; + u64 hash_len; + }; + const unsigned char *name; +}; + +union shortname_store { + unsigned char string[40]; + long unsigned int words[5]; +}; + +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; + union shortname_store d_shortname; + const struct dentry_operations *d_op; + struct super_block *d_sb; + long unsigned int d_time; + void *d_fsdata; + struct lockref d_lockref; + union { + struct list_head d_lru; + wait_queue_head_t *d_wait; + }; + struct hlist_node d_sib; + struct hlist_head d_children; + union { + struct hlist_node d_alias; + struct hlist_bl_node d_in_lookup_hash; + struct callback_head d_rcu; + } d_u; +}; + +struct dentry__safe_trusted { + struct inode *d_inode; +}; + +struct dentry_info_args { + int parent_ino; + int dname_len; + int ino; + int inode_len; + char *dname; +}; + +struct dentry_operations { + int (*d_revalidate)(struct inode *, const struct qstr *, 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 *, enum d_real_type); + bool (*d_unalias_trylock)(const struct dentry *); + void (*d_unalias_unlock)(const struct dentry *); + long: 64; +}; + +struct dentry_stat_t { + long int nr_dentry; + long int nr_unused; + long int age_limit; + long int want_pages; + long int nr_negative; + long int dummy; +}; + +struct slab; + +struct detached_freelist { + struct slab *slab; + void *tail; + void *freelist; + int cnt; + struct kmem_cache *s; +}; + +struct detailed_data_monitor_range { + u8 min_vfreq; + u8 max_vfreq; + u8 min_hfreq_khz; + u8 max_hfreq_khz; + u8 pixel_clock_mhz; + u8 flags; + union { + struct { + u8 reserved; + u8 hfreq_start_khz; + u8 c; + __le16 m; + u8 k; + u8 j; + } __attribute__((packed)) gtf2; + struct { + u8 version; + u8 data1; + u8 data2; + u8 supported_aspects; + u8 flags; + u8 supported_scalings; + u8 preferred_refresh; + } cvt; + } formula; +}; + +struct detailed_data_string { + u8 str[13]; +}; + +struct detailed_data_wpindex { + u8 white_yx_lo; + u8 white_x_hi; + u8 white_y_hi; + u8 gamma; +}; + +struct detailed_mode_closure { + struct drm_connector *connector; + const struct drm_edid *drm_edid; + bool preferred; + int modes; +}; + +struct std_timing { + u8 hsize; + u8 vfreq_aspect; +}; + +struct detailed_non_pixel { + u8 pad1; + u8 type; + u8 pad2; + union { + struct detailed_data_string str; + struct detailed_data_monitor_range range; + struct detailed_data_wpindex color; + struct std_timing timings[6]; + struct cvt_timing cvt[4]; + } data; +}; + +struct 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_timing { + __le16 pixel_clock; + union { + struct detailed_pixel_timing pixel_data; + struct detailed_non_pixel other_data; + } data; +}; + +struct detected_devices_node { + struct list_head list; + dev_t dev; +}; + +struct dev_cgroup { + struct cgroup_subsys_state css; + struct list_head exceptions; + enum devcg_behavior behavior; +}; + +struct dev_pagemap; + +struct dev_dax_range; + +struct dev_dax { + struct dax_region *region; + struct dax_device *dax_dev; + unsigned int align; + int target_node; + bool dyn_id; + int id; + struct ida ida; + struct device dev; + struct dev_pagemap *pgmap; + bool memmap_on_memory; + int nr_range; + struct dev_dax_range *ranges; +}; + +struct dev_dax_data { + struct dax_region *dax_region; + struct dev_pagemap *pgmap; + resource_size_t size; + int id; + bool memmap_on_memory; +}; + +struct dev_dax_range { + long unsigned int pgoff; + struct range range; + struct dax_mapping *mapping; +}; + +struct dev_exception_item { + u32 major; + u32 minor; + short int type; + short int access; + struct list_head list; + struct callback_head rcu; +}; + +struct dev_ext_attribute { + struct device_attribute attr; + void *var; +}; + +struct dev_ifalias { + struct callback_head rcuhead; + char ifalias[0]; +}; + +struct iommu_fault_param; + +struct iommu_fwspec; + +struct dev_iommu { + struct mutex lock; + struct iommu_fault_param *fault_param; + struct iommu_fwspec *fwspec; + struct iommu_device *iommu_dev; + void *priv; + u32 max_pasids; + u32 attach_deferred: 1; + u32 pci_32bit_workaround: 1; + u32 require_direct: 1; + u32 shadow_on_flush: 1; +}; + +struct dev_kfree_skb_cb { + enum skb_drop_reason reason; +}; + +struct vmem_altmap { + long unsigned int base_pfn; + const long unsigned int end_pfn; + const long unsigned int reserve; + long unsigned int free; + long unsigned int align; + long unsigned int alloc; + bool inaccessible; +}; + +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; + long unsigned int vmemmap_shift; + const struct dev_pagemap_ops *ops; + void *owner; + int nr_range; + union { + struct range range; + struct { + struct {} __empty_ranges; + struct range ranges[0]; + }; + }; +}; + +struct vm_fault; + +struct dev_pagemap_ops { + void (*page_free)(struct page *); + vm_fault_t (*migrate_to_ram)(struct vm_fault *); + int (*memory_failure)(struct dev_pagemap *, long unsigned int, long unsigned int, int); +}; + +struct pinctrl; + +struct pinctrl_state; + +struct dev_pin_info { + struct pinctrl *p; + struct pinctrl_state *default_state; + struct pinctrl_state *init_state; + struct pinctrl_state *sleep_state; + struct pinctrl_state *idle_state; +}; + +struct dev_pm_domain_attach_data { + const char * const *pd_names; + const u32 num_pd_names; + const u32 pd_flags; +}; + +struct dev_pm_domain_list { + struct device **pd_devs; + struct device_link **pd_links; + u32 *opp_tokens; + u32 num_pds; +}; + +struct dev_pm_opp_supply; + +struct dev_pm_opp_icc_bw; + +struct dev_pm_opp { + struct list_head node; + struct kref kref; + bool available; + bool dynamic; + bool turbo; + bool suspend; + bool removed; + long unsigned int *rates; + unsigned int level; + struct dev_pm_opp_supply *supplies; + struct dev_pm_opp_icc_bw *bandwidth; + long unsigned int clock_latency_ns; + struct dev_pm_opp **required_opps; + struct opp_table *opp_table; + struct device_node *np; + struct dentry *dentry; + const char *of_name; +}; + +typedef int (*config_clks_t)(struct device *, struct opp_table *, struct dev_pm_opp *, void *, bool); + +typedef int (*config_regulators_t)(struct device *, struct dev_pm_opp *, struct dev_pm_opp *, struct regulator **, unsigned int); + +struct dev_pm_opp_config { + const char * const *clk_names; + config_clks_t config_clks; + const char *prop_name; + config_regulators_t config_regulators; + const unsigned int *supported_hw; + unsigned int supported_hw_count; + const char * const *regulator_names; + struct device *required_dev; + unsigned int required_dev_index; +}; + +struct dev_pm_opp_data { + bool turbo; + unsigned int level; + long unsigned int freq; + long unsigned int u_volt; +}; + +struct dev_pm_opp_icc_bw { + u32 avg; + u32 peak; +}; + +struct dev_pm_opp_supply { + long unsigned int u_volt; + long unsigned int u_volt_min; + long unsigned int u_volt_max; + long unsigned int u_amp; + long unsigned int u_watt; +}; + +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; +}; + +struct dev_pm_qos_request { + enum dev_pm_qos_req_type type; + union { + struct plist_node pnode; + struct pm_qos_flags_request flr; + struct freq_qos_request freq; + } data; + struct device *dev; +}; + +struct dev_power_governor { + bool (*power_down_ok)(struct dev_pm_domain *); + bool (*suspend_ok)(struct device *); +}; + +struct dev_printk_info { + char subsystem[16]; + char device[48]; +}; + +struct devcd_entry { + struct device devcd_dev; + void *data; + size_t datalen; + struct mutex mutex; + bool delete_work; + struct module *owner; + ssize_t (*read)(char *, loff_t, size_t, void *, size_t); + void (*free)(void *); + struct delayed_work del_wk; + struct device *failing_dev; +}; + +struct devfreq_dev_status { + long unsigned int total_time; + long unsigned int busy_time; + long unsigned int current_frequency; + void *private_data; +}; + +struct devfreq_stats { + unsigned int total_trans; + unsigned int *trans_table; + u64 *time_in_state; + u64 last_update; +}; + +struct devfreq_dev_profile; + +struct devfreq_governor; + +struct devfreq { + struct list_head node; + struct mutex lock; + struct device dev; + struct devfreq_dev_profile *profile; + const struct devfreq_governor *governor; + struct opp_table *opp_table; + struct notifier_block nb; + struct delayed_work work; + long unsigned int *freq_table; + unsigned int max_state; + long unsigned int previous_freq; + struct devfreq_dev_status last_status; + void *data; + void *governor_data; + struct dev_pm_qos_request user_min_freq_req; + struct dev_pm_qos_request user_max_freq_req; + long unsigned int scaling_min_freq; + long unsigned int scaling_max_freq; + bool stop_polling; + long unsigned int suspend_freq; + long unsigned int resume_freq; + atomic_t suspend_count; + struct devfreq_stats stats; + struct srcu_notifier_head transition_notifier_list; + struct thermal_cooling_device *cdev; + struct notifier_block nb_min; + struct notifier_block nb_max; +}; + +struct devfreq_cooling_power; + +struct devfreq_cooling_device { + struct thermal_cooling_device *cdev; + struct thermal_cooling_device_ops cooling_ops; + struct devfreq *devfreq; + long unsigned int cooling_state; + u32 *freq_table; + size_t max_state; + struct devfreq_cooling_power *power_ops; + u32 res_util; + int capped_state; + struct dev_pm_qos_request req_max_freq; + struct em_perf_domain *em_pd; +}; + +struct devfreq_cooling_power { + int (*get_real_power)(struct devfreq *, u32 *, long unsigned int, long unsigned int); +}; + +struct devfreq_cpu_data { + struct list_head node; + struct device *dev; + unsigned int first_cpu; + struct opp_table *opp_table; + unsigned int cur_freq; + unsigned int min_freq; + unsigned int max_freq; +}; + +struct devfreq_dev_profile { + long unsigned int initial_freq; + unsigned int polling_ms; + enum devfreq_timer timer; + int (*target)(struct device *, long unsigned int *, u32); + int (*get_dev_status)(struct device *, struct devfreq_dev_status *); + int (*get_cur_freq)(struct device *, long unsigned int *); + void (*exit)(struct device *); + long unsigned int *freq_table; + unsigned int max_state; + bool is_cooling_device; +}; + +struct devfreq_event_data { + long unsigned int load_count; + long unsigned int total_count; +}; + +struct devfreq_event_ops; + +struct devfreq_event_desc { + const char *name; + u32 event_type; + void *driver_data; + const struct devfreq_event_ops *ops; +}; + +struct devfreq_event_dev { + struct list_head node; + struct device dev; + struct mutex lock; + u32 enable_count; + const struct devfreq_event_desc *desc; +}; + +struct devfreq_event_ops { + int (*enable)(struct devfreq_event_dev *); + int (*disable)(struct devfreq_event_dev *); + int (*reset)(struct devfreq_event_dev *); + int (*set_event)(struct devfreq_event_dev *); + int (*get_event)(struct devfreq_event_dev *, struct devfreq_event_data *); +}; + +struct devfreq_freqs { + long unsigned int old; + long unsigned int new; +}; + +struct devfreq_governor { + struct list_head node; + const char name[16]; + const u64 attrs; + const u64 flags; + int (*get_target_freq)(struct devfreq *, long unsigned int *); + int (*event_handler)(struct devfreq *, unsigned int, void *); +}; + +struct devfreq_notifier_devres { + struct devfreq *devfreq; + struct notifier_block *nb; + unsigned int list; +}; + +struct devfreq_passive_data { + struct devfreq *parent; + int (*get_target_freq)(struct devfreq *, long unsigned int *); + enum devfreq_parent_dev_type parent_type; + struct devfreq *this; + struct notifier_block nb; + struct list_head cpu_data_list; +}; + +struct devfreq_simple_ondemand_data { + unsigned int upthreshold; + unsigned int downdifferential; +}; + +typedef struct device *m_pool_ident_t; + +struct device_attach_data { + struct device *dev; + bool check_async; + bool want_async; + bool have_async; +}; + +union device_attr_group_devres { + const struct attribute_group *group; + const struct attribute_group **groups; +}; + +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 property; + +struct device_node { + const char *name; + phandle phandle; + const char *full_name; + struct fwnode_handle fwnode; + struct property *properties; + struct property *deadprops; + struct device_node *parent; + struct device_node *child; + struct device_node *sibling; + struct kobject kobj; + long unsigned int _flags; + void *data; +}; + +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 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; + const struct device_driver *async_driver; + char *deferred_probe_reason; + struct device *device; + u8 dead: 1; +}; + +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 devinet_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table devinet_vars[33]; +}; + +struct ratelimit_state { + raw_spinlock_t lock; + int interval; + int burst; + int printed; + int missed; + unsigned int flags; + long unsigned int begin; +}; + +struct printk_buffers { + char outbuf[2048]; + char scratchbuf[1024]; +}; + +struct devkmsg_user { + atomic64_t seq; + struct ratelimit_state rs; + struct mutex lock; + struct printk_buffers pbufs; +}; + +struct devlink_dev_stats { + u32 reload_stats[6]; + u32 remote_reload_stats[6]; +}; + +struct devlink_dpipe_headers; + +struct devlink_ops; + +struct devlink_rel; + +struct devlink { + u32 index; + struct xarray ports; + struct list_head rate_list; + struct list_head sb_list; + struct list_head dpipe_table_list; + struct list_head resource_list; + struct xarray params; + struct list_head region_list; + struct list_head reporter_list; + struct devlink_dpipe_headers *dpipe_headers; + struct list_head trap_list; + struct list_head trap_group_list; + struct list_head trap_policer_list; + struct list_head linecard_list; + const struct devlink_ops *ops; + struct xarray snapshot_ids; + struct devlink_dev_stats stats; + struct device *dev; + possible_net_t _net; + struct mutex lock; + struct lock_class_key lock_key; + u8 reload_failed: 1; + refcount_t refcount; + struct rcu_work rwork; + struct devlink_rel *rel; + struct xarray nested_rels; + char priv[0]; +}; + +struct devlink_dpipe_header; + +struct devlink_dpipe_action { + enum devlink_dpipe_action_type type; + unsigned int header_index; + struct devlink_dpipe_header *header; + unsigned int field_id; +}; + +struct genl_info; + +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_field { + const char *name; + unsigned int id; + unsigned int bitwidth; + enum devlink_dpipe_field_mapping_type mapping_type; +}; + +struct devlink_dpipe_header { + const char *name; + unsigned int id; + struct devlink_dpipe_field *fields; + unsigned int fields_count; + bool global; +}; + +struct devlink_dpipe_headers { + struct devlink_dpipe_header **headers; + unsigned int headers_count; +}; + +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_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; + const struct devlink_dpipe_table_ops *table_ops; + struct callback_head rcu; +}; + +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_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_flash_component_lookup_ctx { + const char *lookup_name; + bool lookup_name_found; +}; + +struct devlink_flash_notify { + const char *status_msg; + const char *component; + long unsigned int done; + long unsigned int total; + long unsigned int timeout; +}; + +struct firmware; + +struct devlink_flash_update_params { + const struct firmware *fw; + const char *component; + u32 overwrite_mask; +}; + +struct devlink_fmsg { + struct list_head item_list; + int err; + bool putting_binary; +}; + +struct devlink_fmsg_item { + struct list_head list; + int attrtype; + u8 nla_type; + u16 len; + int value[0]; +}; + +struct devlink_health_reporter_ops; + +struct devlink_port; + +struct devlink_health_reporter { + struct list_head list; + void *priv; + const struct devlink_health_reporter_ops *ops; + struct devlink *devlink; + struct devlink_port *devlink_port; + struct devlink_fmsg *dump_fmsg; + u64 graceful_period; + bool auto_recover; + bool auto_dump; + u8 health_state; + u64 dump_ts; + u64 dump_real_ts; + u64 error_count; + u64 recovery_count; + u64 last_recovery_ts; +}; + +struct devlink_health_reporter_ops { + char *name; + int (*recover)(struct devlink_health_reporter *, void *, struct netlink_ext_ack *); + int (*dump)(struct devlink_health_reporter *, struct devlink_fmsg *, void *, struct netlink_ext_ack *); + int (*diagnose)(struct devlink_health_reporter *, struct devlink_fmsg *, struct netlink_ext_ack *); + int (*test)(struct devlink_health_reporter *, struct netlink_ext_ack *); +}; + +struct devlink_info_req { + struct sk_buff *msg; + void (*version_cb)(const char *, enum devlink_info_version_type, void *); + void *version_cb_priv; +}; + +struct devlink_linecard_ops; + +struct devlink_linecard_type; + +struct devlink_linecard { + struct list_head list; + struct devlink *devlink; + unsigned int index; + const struct devlink_linecard_ops *ops; + void *priv; + enum devlink_linecard_state state; + struct mutex state_lock; + const char *type; + struct devlink_linecard_type *types; + unsigned int types_count; + u32 rel_index; +}; + +struct 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; +}; + +struct devlink_nl_dump_state { + long unsigned int instance; + int idx; + union { + struct { + u64 start_offset; + }; + struct { + u64 dump_ts; + }; + }; +}; + +struct devlink_obj_desc; + +struct devlink_nl_sock_priv { + struct devlink_obj_desc *flt; + spinlock_t flt_lock; +}; + +struct devlink_obj_desc { + struct callback_head rcu; + const char *bus_name; + const char *dev_name; + unsigned int port_index; + bool port_index_valid; + long int data[0]; +}; + +struct devlink_sb_pool_info; + +struct devlink_trap; + +struct devlink_trap_group; + +struct devlink_trap_policer; + +struct devlink_port_new_attrs; + +struct devlink_rate; + +struct devlink_ops { + u32 supported_flash_update_params; + long unsigned int reload_actions; + long unsigned int reload_limits; + int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *); + int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *); + int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *); + int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *); + int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *); + int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *); + int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *); + int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *); + int (*sb_occ_snapshot)(struct devlink *, unsigned int); + int (*sb_occ_max_clear)(struct devlink *, unsigned int); + int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *); + int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *); + int (*eswitch_mode_get)(struct devlink *, u16 *); + int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *); + int (*eswitch_inline_mode_get)(struct devlink *, u8 *); + int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *); + int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *); + int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *); + int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *); + int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *); + int (*trap_init)(struct devlink *, const struct devlink_trap *, void *); + void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *); + int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *); + int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *); + int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *); + int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *); + int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *); + int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *); + void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *); + int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *); + int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *); + int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, struct devlink_port **); + int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_leaf_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); + int (*rate_leaf_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); + int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_node_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); + int (*rate_node_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); + int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *); + int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *); + int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *); + int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *); + bool (*selftest_check)(struct devlink *, unsigned int, struct netlink_ext_ack *); + enum devlink_selftest_status (*selftest_run)(struct devlink *, unsigned int, struct netlink_ext_ack *); +}; + +struct devlink_param_gset_ctx; + +union devlink_param_value; + +struct devlink_param { + u32 id; + const char *name; + bool generic; + enum devlink_param_type type; + long unsigned int supported_cmodes; + int (*get)(struct devlink *, u32, struct devlink_param_gset_ctx *); + int (*set)(struct devlink *, u32, struct devlink_param_gset_ctx *, struct netlink_ext_ack *); + 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; +}; + +struct devlink_param_gset_ctx { + union devlink_param_value val; + enum devlink_param_cmode cmode; +}; + +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 netdev_phys_item_id { + unsigned char id[32]; + unsigned char id_len; +}; + +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_port_ops; + +struct ib_device; + +struct devlink_port { + struct list_head list; + struct list_head region_list; + struct devlink *devlink; + const struct devlink_port_ops *ops; + unsigned int index; + spinlock_t type_lock; + enum devlink_port_type type; + enum devlink_port_type desired_type; + union { + struct { + struct net_device *netdev; + int ifindex; + char ifname[16]; + } type_eth; + struct { + struct ib_device *ibdev; + } type_ib; + }; + struct devlink_port_attrs attrs; + u8 attrs_set: 1; + u8 switch_port: 1; + u8 registered: 1; + u8 initialized: 1; + struct delayed_work type_warn_dw; + struct list_head reporter_list; + struct devlink_rate *devlink_rate; + struct devlink_linecard *linecard; + u32 rel_index; +}; + +struct 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 devlink_port_ops { + int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); + int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_type_set)(struct devlink_port *, enum devlink_port_type); + int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); + int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); + int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_max_io_eqs_get)(struct devlink_port *, u32 *, struct netlink_ext_ack *); + int (*port_fn_max_io_eqs_set)(struct devlink_port *, u32, struct netlink_ext_ack *); +}; + +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_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 devlink_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_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; +}; + +typedef void devlink_rel_notify_cb_t(struct devlink *, u32); + +typedef void devlink_rel_cleanup_cb_t(struct devlink *, u32, u32); + +struct devlink_rel { + u32 index; + refcount_t refcount; + u32 devlink_index; + struct { + u32 devlink_index; + u32 obj_index; + devlink_rel_notify_cb_t *notify_cb; + devlink_rel_cleanup_cb_t *cleanup_cb; + struct delayed_work notify_work; + } nested_in; +}; + +struct devlink_reload_combination { + enum devlink_reload_action action; + enum devlink_reload_limit limit; +}; + +struct devlink_resource_size_params { + u64 size_min; + u64 size_max; + u64 size_granularity; + enum devlink_resource_unit unit; +}; + +typedef u64 devlink_resource_occ_get_t(void *); + +struct 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_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_sb_pool_info { + enum devlink_sb_pool_type pool_type; + u32 size; + enum devlink_sb_threshold_type threshold_type; + u32 cell_size; +}; + +struct devlink_snapshot { + struct list_head list; + struct devlink_region *region; + u8 *data; + u32 id; +}; + +struct devlink_stats { + u64_stats_t rx_bytes; + u64_stats_t rx_packets; + struct u64_stats_sync syncp; +}; + +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_item; + +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 *stats; +}; + +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 *stats; + void *priv; +}; + +struct flow_action_cookie; + +struct devlink_trap_metadata { + const char *trap_name; + const char *trap_group_name; + struct net_device *input_dev; + netdevice_tracker dev_tracker; + const struct flow_action_cookie *fa_cookie; + enum devlink_trap_type trap_type; +}; + +struct 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_trap_policer_item { + const struct devlink_trap_policer *policer; + u64 rate; + u64 burst; + struct list_head list; +}; + +struct devm_clk_state { + struct clk *clk; + void (*exit)(struct clk *); +}; + +struct of_regulator_match; + +struct devm_of_regulator_matches { + struct of_regulator_match *matches; + unsigned int num_matches; +}; + +typedef void (*dr_release_t)(struct device *, void *); + +struct devres_node { + struct list_head entry; + dr_release_t release; + const char *name; + size_t size; +}; + +struct devres { + struct devres_node node; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u8 data[0]; +}; + +struct devres_group { + struct devres_node node[2]; + void *id; + int color; +}; + +struct dfll_fcpu_data { + const long unsigned int *cpu_max_freq_table; + unsigned int cpu_max_freq_table_size; + const struct cvb_table *cpu_cvb_tables; + unsigned int cpu_cvb_tables_size; +}; + +struct dfll_rate_req { + long unsigned int rate; + long unsigned int dvco_target_rate; + int lut_index; + u8 mult_bits; + u8 scale_bits; +}; + +struct dh { + const void *key; + const void *p; + const void *g; + unsigned int key_size; + unsigned int p_size; + unsigned int g_size; +}; + +struct gcry_mpi; + +typedef struct gcry_mpi *MPI; + +struct dh_ctx { + MPI p; + MPI g; + MPI xa; +}; + +struct dh_safe_prime { + unsigned int max_strength; + unsigned int p_size; + const char *p; +}; + +struct dh_safe_prime_instance_ctx { + struct crypto_kpp_spawn dh_spawn; + const struct dh_safe_prime *safe_prime; +}; + +struct dh_safe_prime_tfm_ctx { + struct crypto_kpp *dh_tfm; +}; + +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 die_args { + struct pt_regs *regs; + const char *str; + long int err; + int trapnr; + int signr; +}; + +struct digest_info { + const char *alg; + const u8 *digest; + size_t digest_len; +}; + +struct dim_stats { + int ppms; + int bpms; + int epms; + int cpms; + int cpe_ratio; +}; + +struct dim_sample { + ktime_t time; + u32 pkt_ctr; + u32 byte_ctr; + u16 event_ctr; + u32 comp_ctr; +}; + +struct dim { + u8 state; + struct dim_stats prev_stats; + struct dim_sample start_sample; + struct dim_sample measuring_sample; + struct work_struct work; + void *priv; + u8 profile_ix; + u8 mode; + u8 tune_state; + u8 steps_right; + u8 steps_left; + u8 tired; +}; + +struct dim_cq_moder { + u16 usec; + u16 pkts; + u16 comps; + u8 cq_period_mode; + struct callback_head rcu; +}; + +struct dim_irq_moder { + u8 profile_flags; + u8 coal_flags; + u8 dim_rx_mode; + u8 dim_tx_mode; + struct dim_cq_moder *rx_profile; + struct dim_cq_moder *tx_profile; + void (*rx_dim_work)(struct work_struct *); + void (*tx_dim_work)(struct work_struct *); +}; + +struct dimm_info { + struct device dev; + char label[32]; + unsigned int location[3]; + struct mem_ctl_info *mci; + unsigned int idx; + u32 grain; + enum dev_type dtype; + enum mem_type mtype; + enum edac_type edac_mode; + u32 nr_pages; + unsigned int csrow; + unsigned int cschannel; + u16 smbios_handle; + u32 ce_count; + u32 ue_count; +}; + +typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); + +struct dio { + int flags; + blk_opf_t opf; + struct gendisk *bio_disk; + struct inode *inode; + loff_t i_size; + dio_iodone_t *end_io; + bool is_pinned; + void *private; + spinlock_t bio_lock; + int page_errors; + int is_async; + bool defer_completion; + bool should_dirty; + int io_error; + long unsigned int 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; +}; + +typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); + +struct dio_submit { + struct bio *bio; + unsigned int blkbits; + unsigned int blkfactor; + unsigned int start_zero_done; + int pages_in_io; + sector_t block_in_file; + unsigned int blocks_available; + int reap_counter; + sector_t final_block_in_request; + int boundary; + get_block_t *get_block; + loff_t logical_offset_in_bio; + sector_t final_block_in_bio; + sector_t next_block_for_io; + struct page *cur_page; + unsigned int cur_page_offset; + unsigned int cur_page_len; + sector_t cur_page_block; + loff_t cur_page_fs_offset; + struct iov_iter *iter; + unsigned int head; + unsigned int tail; + size_t from; + size_t to; +}; + +struct dir_entry { + struct list_head list; + time64_t mtime; + char name[0]; +}; + +struct fname; + +struct dir_private_info { + struct rb_root root; + struct rb_node *curr_node; + struct fname *extra_fname; + loff_t last_pos; + __u32 curr_hash; + __u32 curr_minor_hash; + __u32 next_hash; + u64 cookie; + bool initialized; +}; + +struct wb_domain; + +struct dirty_throttle_control { + struct wb_domain *dom; + struct dirty_throttle_control *gdtc; + struct bdi_writeback *wb; + struct fprop_local_percpu *wb_completions; + long unsigned int avail; + long unsigned int dirty; + long unsigned int thresh; + long unsigned int bg_thresh; + long unsigned int limit; + long unsigned int wb_dirty; + long unsigned int wb_thresh; + long unsigned int wb_bg_thresh; + long unsigned int pos_ratio; + bool freerun; + bool dirty_exceeded; +}; + +struct disk_comp_opts { + __le32 dictionary_size; + __le32 flags; +}; + +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 int poll_msecs; + struct delayed_work dwork; +}; + +struct disk_report_zones_cb_args { + struct gendisk *disk; + report_zones_cb user_cb; + void *user_data; +}; + +struct disk_stats { + u64 nsecs[4]; + long unsigned int sectors[4]; + long unsigned int ios[4]; + long unsigned int merges[4]; + long unsigned int io_ticks; + local_t in_flight[2]; +}; + +struct disklabel { + __le32 d_magic; + __le16 d_type; + __le16 d_subtype; + u8 d_typename[16]; + u8 d_packname[16]; + __le32 d_secsize; + __le32 d_nsectors; + __le32 d_ntracks; + __le32 d_ncylinders; + __le32 d_secpercyl; + __le32 d_secprtunit; + __le16 d_sparespertrack; + __le16 d_sparespercyl; + __le32 d_acylinders; + __le16 d_rpm; + __le16 d_interleave; + __le16 d_trackskew; + __le16 d_cylskew; + __le32 d_headswitch; + __le32 d_trkseek; + __le32 d_flags; + __le32 d_drivedata[5]; + __le32 d_spare[5]; + __le32 d_magic2; + __le16 d_checksum; + __le16 d_npartitions; + __le32 d_bbsize; + __le32 d_sbsize; + struct d_partition d_partitions[18]; +}; + +struct disklabel___2 { + u8 d_reserved[270]; + struct d_partition___2 d_partitions[2]; + u8 d_blank[208]; + __le16 d_magic; +} __attribute__((packed)); + +struct dispatch_rq_data { + struct blk_mq_hw_ctx *hctx; + struct request *rq; +}; + +struct timing_entry { + u32 min; + u32 typ; + u32 max; +}; + +struct display_timing { + struct timing_entry pixelclock; + struct timing_entry hactive; + struct timing_entry hfront_porch; + struct timing_entry hback_porch; + struct timing_entry hsync_len; + struct timing_entry vactive; + struct timing_entry vfront_porch; + struct timing_entry vback_porch; + struct timing_entry vsync_len; + enum display_flags flags; +}; + +struct display_timings { + unsigned int num_timings; + unsigned int native_mode; + struct display_timing **timings; +}; + +struct displayid_block { + u8 tag; + u8 rev; + u8 num_bytes; +}; + +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_header { + u8 rev; + u8 bytes; + u8 prod_id; + u8 ext_count; +}; + +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_vesa_vendor_specific_block { + struct displayid_block base; + u8 oui[3]; + u8 data_structure_type; + u8 mso; +}; + +struct div6_clock { + struct clk_hw hw; + void *reg; + unsigned int div; + u32 src_mask; + struct notifier_block nb; + u8 parents[0]; +}; + +struct div_hw_data { + struct clk_hw_data hw_data; + const struct clk_div_table *dtable; + long unsigned int invalid_rate; + long unsigned int max_rate; + u32 width; +}; + +struct div_nmp { + u8 divn_shift; + u8 divn_width; + u8 divm_shift; + u8 divm_width; + u8 divp_shift; + u8 divp_width; + u8 override_divn_shift; + u8 override_divm_shift; + u8 override_divp_shift; +}; + +struct volumeid { + u8 vid_unused[248]; + u8 vid_mac[8]; +}; + +struct dkconfig { + u8 ios_unused0[128]; + __be32 ios_slcblk; + __be16 ios_slccnt; + u8 ios_unused1[122]; +}; + +struct dkblk0 { + struct volumeid dk_vid; + struct dkconfig dk_ios; +}; + +struct dl_bw { + raw_spinlock_t lock; + u64 bw; + u64 total_bw; +}; + +struct dl_rq { + struct rb_root_cached root; + unsigned int dl_nr_running; + struct { + u64 curr; + u64 next; + } earliest_dl; + bool overloaded; + struct rb_root_cached pushable_dl_tasks_root; + u64 running_bw; + u64 this_bw; + u64 extra_bw; + u64 max_bw; + u64 bw_ratio; +}; + +struct dm_arg { + unsigned int min; + unsigned int max; + char *error; +}; + +struct dm_arg_set { + unsigned int argc; + char **argv; +}; + +struct dm_blkdev_id { + u8 *id; + enum blk_unique_id type; +}; + +struct mapped_device; + +struct dm_crypto_profile { + struct blk_crypto_profile profile; + struct mapped_device *md; +}; + +struct dm_dev { + struct block_device *bdev; + struct file *bdev_file; + struct dax_device *dax_dev; + blk_mode_t mode; + char name[16]; +}; + +struct dm_dev_internal { + struct list_head list; + refcount_t count; + struct dm_dev *dm_dev; +}; + +struct dm_ioctl { + __u32 version[3]; + __u32 data_size; + __u32 data_start; + __u32 target_count; + __s32 open_count; + __u32 flags; + __u32 event_nr; + __u32 padding; + __u64 dev; + char name[128]; + char uuid[129]; + char data[7]; +}; + +struct dm_target_spec; + +struct dm_device { + struct dm_ioctl dmi; + struct dm_target_spec *table[256]; + char *target_args_array[256]; + struct list_head list; +}; + +struct dm_device_zone_count { + sector_t start; + sector_t len; + unsigned int total_nr_seq_zones; + unsigned int target_nr_seq_zones; +}; + +struct dm_file { + volatile unsigned int global_event_nr; +}; + +struct dm_hw_stat_delta { + long unsigned int last_rx; + long unsigned int last_drop_val; + struct callback_head rcu; +}; + +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 dm_stats_aux { + bool merged; + long long unsigned int duration_ns; +}; + +struct dm_target; + +struct dm_target_io { + short unsigned int 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 dm_io { + short unsigned int magic; + blk_short_t flags; + spinlock_t lock; + long unsigned int 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 dm_io_client { + mempool_t pool; + struct bio_set bios; +}; + +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)(long unsigned int, void *); + +struct dm_io_notify { + io_notify_fn fn; + void *context; +}; + +struct dm_io_region { + struct block_device *bdev; + sector_t sector; + sector_t count; +}; + +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 dm_kcopyd_throttle; + +struct dm_kcopyd_client { + struct page_list *pages; + unsigned int nr_reserved_pages; + unsigned int nr_free_pages; + unsigned int sub_job_size; + struct dm_io_client *io_client; + wait_queue_head_t destroyq; + mempool_t job_pool; + struct workqueue_struct *kcopyd_wq; + struct work_struct kcopyd_work; + struct dm_kcopyd_throttle *throttle; + atomic_t nr_jobs; + spinlock_t job_lock; + struct list_head callback_jobs; + struct list_head complete_jobs; + struct list_head io_jobs; + struct list_head pages_jobs; +}; + +struct dm_kcopyd_throttle { + unsigned int throttle; + unsigned int num_io_jobs; + unsigned int io_period; + unsigned int total_period; + unsigned int last_jiffies; +}; + +struct dm_kobject_holder { + struct kobject kobj; + struct completion completion; +}; + +struct dm_md_mempools { + struct bio_set bs; + struct bio_set io_bs; +}; + +struct dm_name_list { + __u64 dev; + __u32 next; + char name[0]; +}; + +struct pr_keys; + +struct pr_held_reservation; + +struct dm_pr { + u64 old_key; + u64 new_key; + u32 flags; + bool abort; + bool fail_early; + int ret; + enum pr_type type; + struct pr_keys *read_keys; + struct pr_held_reservation *rsv; +}; + +struct dm_report_zones_args { + struct dm_target *tgt; + sector_t next_sector; + void *orig_data; + report_zones_cb orig_cb; + unsigned int zone_idx; + sector_t start; +}; + +struct dm_rq_target_io; + +struct dm_rq_clone_bio_info { + struct bio *orig; + struct dm_rq_target_io *tio; + struct bio clone; +}; + +struct kthread_work; + +typedef void (*kthread_work_func_t)(struct kthread_work *); + +struct kthread_worker; + +struct kthread_work { + struct list_head node; + kthread_work_func_t func; + struct kthread_worker *worker; + int canceling; +}; + +union map_info { + void *ptr; +}; + +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; + long unsigned int duration_jiffies; + unsigned int n_sectors; + unsigned int completed; +}; + +struct dm_stat_percpu { + long long unsigned int sectors[2]; + long long unsigned int ios[2]; + long long unsigned int merges[2]; + long long unsigned int ticks[2]; + long long unsigned int io_ticks[2]; + long long unsigned int io_ticks_total; + long long unsigned int time_in_queue; + long long unsigned int *histogram; +}; + +struct dm_stat_shared { + atomic_t in_flight[2]; + long long unsigned int 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; + long long unsigned int *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[512]; + struct dm_stat_shared stat_shared[0]; +}; + +struct dm_stats_last_position; + +struct dm_stats { + struct mutex mutex; + struct list_head list; + struct dm_stats_last_position *last; + bool precise_timestamps; +}; + +struct dm_stats_last_position { + sector_t last_sector; + unsigned int last_rw; +}; + +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 target_type; + +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; + bool flush_bypasses_map: 1; + blk_mode_t mode; + struct list_head devices; + struct rw_semaphore devices_lock; + void (*event_fn)(void *); + void *event_context; + struct dm_md_mempools *mempools; + struct blk_crypto_profile *crypto_profile; +}; + +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 zone_reset_all_supported: 1; + bool max_discard_granularity: 1; + bool limit_swap_bios: 1; + bool emulate_zone_append: 1; + bool accounts_remapped_io: 1; + bool needs_bio_set_dev: 1; + bool flush_bypasses_map: 1; + bool mempool_needs_integrity: 1; +}; + +struct dm_target_deps { + __u32 count; + __u32 padding; + __u64 dev[0]; +}; + +struct dm_target_msg { + __u64 sector; + char message[0]; +}; + +struct dm_target_spec { + __u64 sector_start; + __u64 length; + __s32 status; + __u32 next; + char target_type[16]; +}; + +struct dm_target_versions { + __u32 next; + __u32 version[3]; + char name[0]; +}; + +struct kobj_uevent_env { + char *argv[3]; + char *envp[64]; + int envp_idx; + char buf[2048]; + int buflen; +}; + +struct dm_uevent { + struct mapped_device *md; + enum kobject_action action; + struct kobj_uevent_env ku_env; + struct list_head elist; + char name[128]; + char uuid[129]; +}; + +struct dm_verity_digest { + const char *alg; + const u8 *digest; + size_t digest_len; +}; + +struct queue_limits; + +struct dm_zone_resource_limits { + unsigned int mapped_nr_seq_zones; + struct queue_limits *lim; + bool reliable_limits; +}; + +typedef void (*dma_async_tx_callback)(void *); + +struct dmaengine_result; + +typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); + +struct dmaengine_unmap_data; + +struct dma_descriptor_metadata_ops; + +struct dma_async_tx_descriptor { + dma_cookie_t cookie; + enum dma_ctrl_flags flags; + dma_addr_t phys; + struct dma_chan *chan; + dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *); + int (*desc_free)(struct dma_async_tx_descriptor *); + dma_async_tx_callback callback; + dma_async_tx_callback_result callback_result; + void *callback_param; + struct dmaengine_unmap_data *unmap; + enum dma_desc_metadata_mode desc_metadata_mode; + struct dma_descriptor_metadata_ops *metadata_ops; + struct dma_async_tx_descriptor *next; + struct dma_async_tx_descriptor *parent; + spinlock_t lock; +}; + +struct dma_block { + struct dma_block *next_block; + dma_addr_t dma; +}; + +struct iosys_map { + union { + void *vaddr_iomem; + void *vaddr; + }; + bool is_iomem; +}; + +struct dma_buf_poll_cb_t { + struct dma_fence_cb cb; + wait_queue_head_t *poll; + __poll_t active; +}; + +struct dma_buf_ops; + +struct dma_resv; + +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_attachment; + +struct dma_buf_attach_ops { + bool allow_peer2peer; + void (*move_notify)(struct dma_buf_attachment *); +}; + +struct sg_table; + +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_export_info { + const char *exp_name; + struct module *owner; + const struct dma_buf_ops *ops; + size_t size; + int flags; + struct dma_resv *resv; + void *priv; +}; + +struct dma_buf_export_sync_file { + __u32 flags; + __s32 fd; +}; + +struct dma_buf_import_sync_file { + __u32 flags; + __s32 fd; +}; + +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_sync { + __u64 flags; +}; + +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 *local; + int client_count; + int table_count; + struct dma_router *router; + void *route_data; + void *private; +}; + +struct dma_chan_dev { + struct dma_chan *chan; + struct device device; + int dev_id; + bool chan_dma_dev; +}; + +struct dma_chan_percpu { + long unsigned int memcpy_count; + long unsigned int bytes_transferred; +}; + +struct dma_chan_tbl_ent { + struct dma_chan *chan; +}; + +struct dma_coherent_mem { + void *virt_base; + dma_addr_t device_base; + long unsigned int pfn_base; + int size; + long unsigned int *bitmap; + spinlock_t spinlock; + bool use_dev_dma_pfn_offset; +}; + +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 dma_slave_map; + +struct dma_filter { + dma_filter_fn fn; + int mapcnt; + const struct dma_slave_map *map; +}; + +struct dma_vec; + +struct dma_interleaved_template; + +struct dma_slave_caps; + +struct dma_slave_config; + +struct dma_tx_state; + +struct dma_device { + struct kref ref; + unsigned int chancnt; + unsigned int privatecnt; + struct list_head channels; + struct list_head global_node; + struct dma_filter filter; + dma_cap_mask_t cap_mask; + enum dma_desc_metadata_mode desc_metadata_modes; + short unsigned int max_xor; + short unsigned int 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, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_xor)(struct dma_chan *, dma_addr_t, dma_addr_t *, unsigned int, size_t, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_xor_val)(struct dma_chan *, dma_addr_t *, unsigned int, size_t, enum sum_check_flags *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_pq)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_pq_val)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, enum sum_check_flags *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_memset)(struct dma_chan *, dma_addr_t, int, size_t, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_memset_sg)(struct dma_chan *, struct scatterlist *, unsigned int, int, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_interrupt)(struct dma_chan *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_peripheral_dma_vec)(struct dma_chan *, const struct dma_vec *, size_t, enum dma_transfer_direction, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_slave_sg)(struct dma_chan *, struct scatterlist *, unsigned int, enum dma_transfer_direction, long unsigned int, void *); + struct dma_async_tx_descriptor * (*device_prep_dma_cyclic)(struct dma_chan *, dma_addr_t, size_t, size_t, enum dma_transfer_direction, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_interleaved_dma)(struct dma_chan *, struct dma_interleaved_template *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_imm_data)(struct dma_chan *, dma_addr_t, u64, long unsigned int); + 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_devres { + size_t size; + void *vaddr; + dma_addr_t dma_handle; + long unsigned int attrs; +}; + +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; + long unsigned int flags; + struct kref refcount; + int error; +}; + +struct dma_fence_array; + +struct dma_fence_array_cb { + struct dma_fence_cb cb; + struct dma_fence_array *array; +}; + +struct dma_fence_array { + struct dma_fence base; + spinlock_t lock; + unsigned int num_fences; + atomic_t num_pending; + struct dma_fence **fences; + struct irq_work work; + struct dma_fence_array_cb callbacks[0]; +}; + +struct dma_fence_chain { + struct dma_fence base; + struct dma_fence *prev; + u64 prev_seqno; + struct dma_fence *fence; + union { + struct dma_fence_cb cb; + struct irq_work work; + }; + spinlock_t lock; +}; + +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 int (*wait)(struct dma_fence *, bool, long int); + void (*release)(struct dma_fence *); + void (*fence_value_str)(struct dma_fence *, char *, int); + void (*timeline_value_str)(struct dma_fence *, char *, int); + void (*set_deadline)(struct dma_fence *, ktime_t); +}; + +struct dma_fence_unwrap { + struct dma_fence *chain; + struct dma_fence *array; + unsigned int index; +}; + +struct dma_heap_ops; + +struct dma_heap { + const char *name; + const struct dma_heap_ops *ops; + void *priv; + dev_t heap_devt; + struct list_head list; + struct cdev heap_cdev; +}; + +struct dma_heap_allocation_data { + __u64 len; + __u32 fd; + __u32 fd_flags; + __u64 heap_flags; +}; + +struct dma_heap_attachment { + struct device *dev; + struct sg_table *table; + struct list_head list; + bool mapped; +}; + +struct sg_table { + struct scatterlist *sgl; + unsigned int nents; + unsigned int orig_nents; +}; + +struct dma_heap_attachment___2 { + struct device *dev; + struct sg_table table; + struct list_head list; + bool mapped; +}; + +struct dma_heap_export_info { + const char *name; + const struct dma_heap_ops *ops; + void *priv; +}; + +struct dma_heap_ops { + struct dma_buf * (*allocate)(struct dma_heap *, long unsigned int, u32, u64); +}; + +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_map_ops { + void * (*alloc)(struct device *, size_t, dma_addr_t *, gfp_t, long unsigned int); + void (*free)(struct device *, size_t, void *, dma_addr_t, long unsigned int); + struct page * (*alloc_pages_op)(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); + int (*mmap)(struct device *, struct vm_area_struct *, void *, dma_addr_t, size_t, long unsigned int); + int (*get_sgtable)(struct device *, struct sg_table *, void *, dma_addr_t, size_t, long unsigned int); + dma_addr_t (*map_page)(struct device *, struct page *, long unsigned int, size_t, enum dma_data_direction, long unsigned int); + void (*unmap_page)(struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + int (*map_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, long unsigned int); + void (*unmap_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, long unsigned int); + dma_addr_t (*map_resource)(struct device *, phys_addr_t, size_t, enum dma_data_direction, long unsigned int); + void (*unmap_resource)(struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + 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)(void); + long unsigned int (*get_merge_boundary)(struct device *); +}; + +struct dma_page { + struct list_head page_list; + void *vaddr; + dma_addr_t dma; +}; + +struct dma_pool { + struct list_head page_list; + spinlock_t lock; + struct dma_block *next_block; + size_t nr_blocks; + size_t nr_active; + size_t nr_pages; + struct device *dev; + unsigned int size; + unsigned int allocation; + unsigned int boundary; + char name[32]; + struct list_head pools; +}; + +struct ww_acquire_ctx; + +struct ww_mutex { + struct mutex base; + struct ww_acquire_ctx *ctx; +}; + +struct dma_resv_list; + +struct dma_resv { + struct ww_mutex lock; + struct dma_resv_list *fences; +}; + +struct dma_resv_iter { + struct dma_resv *obj; + enum dma_resv_usage usage; + struct dma_fence *fence; + enum dma_resv_usage fence_usage; + unsigned int index; + struct dma_resv_list *fences; + unsigned int num_fences; + bool is_restarted; +}; + +struct dma_resv_list { + struct callback_head rcu; + u32 num_fences; + u32 max_fences; + struct dma_fence *table[0]; +}; + +struct dma_router { + struct device *dev; + void (*route_free)(struct device *, void *); +}; + +struct dma_sgt_handle { + struct sg_table sgt; + struct page **pages; +}; + +struct dma_slave_caps { + u32 src_addr_widths; + u32 dst_addr_widths; + u32 directions; + u32 min_burst; + u32 max_burst; + u32 max_sg_burst; + bool cmd_pause; + bool cmd_resume; + bool cmd_terminate; + enum dma_residue_granularity residue_granularity; + bool descriptor_reuse; +}; + +struct dma_slave_config { + enum dma_transfer_direction direction; + phys_addr_t src_addr; + phys_addr_t dst_addr; + enum dma_slave_buswidth src_addr_width; + enum dma_slave_buswidth dst_addr_width; + u32 src_maxburst; + u32 dst_maxburst; + u32 src_port_window_size; + u32 dst_port_window_size; + bool device_fc; + void *peripheral_config; + size_t peripheral_size; +}; + +struct dma_slave_map { + const char *devname; + const char *slave; + void *param; +}; + +struct dma_tx_state { + dma_cookie_t last; + dma_cookie_t used; + u32 residue; + u32 in_flight_bytes; +}; + +struct dma_vec { + dma_addr_t addr; + size_t len; +}; + +struct dmabuf_cmsg { + __u64 frag_offset; + __u32 frag_size; + __u32 frag_token; + __u32 dmabuf_id; + __u32 flags; +}; + +struct net_iov; + +struct net_devmem_dmabuf_binding; + +struct dmabuf_genpool_chunk_owner { + long unsigned int base_virtual; + dma_addr_t base_dma_addr; + struct net_iov *niovs; + size_t num_niovs; + struct net_devmem_dmabuf_binding *binding; +}; + +struct dmabuf_token { + __u32 token_start; + __u32 token_count; +}; + +struct dmaengine_desc_callback { + dma_async_tx_callback callback; + dma_async_tx_callback_result callback_result; + void *callback_param; +}; + +struct dmaengine_result { + enum dmaengine_tx_result result; + u32 residue; +}; + +struct dmaengine_unmap_data { + u16 map_cnt; + u8 to_cnt; + u8 from_cnt; + u8 bidi_cnt; + struct device *dev; + struct kref kref; + size_t len; + dma_addr_t addr[0]; +}; + +struct dmaengine_unmap_pool { + struct kmem_cache *cache; + const char *name; + mempool_t *pool; + size_t size; +}; + +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_; + long unsigned int emin; + atomic_long_t min_usage; + atomic_long_t children_min_usage; + long unsigned int elow; + atomic_long_t low_usage; + atomic_long_t children_low_usage; + long unsigned int watermark; + long unsigned int local_watermark; + long unsigned int failcnt; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad2_; + bool protection_support; + long unsigned int min; + long unsigned int low; + long unsigned int high; + long unsigned int max; + struct page_counter *parent; + long: 64; + long: 64; +}; + +struct dmem_cgroup_region; + +struct dmemcg_state; + +struct dmem_cgroup_pool_state { + struct dmem_cgroup_region *region; + struct dmemcg_state *cs; + struct list_head css_node; + struct list_head region_node; + struct callback_head rcu; + struct page_counter cnt; + bool inited; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct dmem_cgroup_region { + struct kref ref; + struct callback_head rcu; + struct list_head region_node; + struct list_head pools; + u64 size; + char *name; + bool unregistered; +}; + +struct dmemcg_state { + struct cgroup_subsys_state css; + struct list_head pools; +}; + +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; +}; + +struct dmi_device_attribute { + struct device_attribute dev_attr; + int field; +}; + +struct dmi_header { + u8 type; + u8 length; + u16 handle; +}; + +struct dmi_memdev_info { + const char *device; + const char *bank; + u64 size; + u16 handle; + u8 type; +}; + +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 fb_videomode; + +struct dmt_videomode { + u32 dmt_id; + u32 std_2byte_code; + u32 cvt_3byte_code; + const struct fb_videomode *mode; +}; + +struct omap_dm_timer {}; + +struct timer_regs { + u32 ocp_cfg; + u32 tidr; + u32 tier; + u32 twer; + u32 tclr; + u32 tcrr; + u32 tldr; + u32 ttrg; + u32 twps; + u32 tmar; + u32 tcar1; + u32 tsicr; + u32 tcar2; + u32 tpir; + u32 tnir; + u32 tcvr; + u32 tocr; + u32 towr; +}; + +struct dmtimer { + struct omap_dm_timer cookie; + int id; + int irq; + struct clk *fclk; + void *io_base; + int irq_stat; + int irq_ena; + int irq_dis; + void *pend; + void *func_base; + atomic_t enabled; + unsigned int reserved: 1; + unsigned int posted: 1; + unsigned int omap1: 1; + struct timer_regs context; + int revision; + u32 capability; + u32 errata; + struct platform_device *pdev; + struct list_head node; + struct notifier_block nb; + struct notifier_block fclk_nb; + long unsigned int fclk_rate; +}; + +struct omap_dm_timer_ops; + +struct dmtimer_platform_data { + int (*set_timer_src)(struct platform_device *, int); + u32 timer_capability; + u32 timer_errata; + int (*get_context_loss_count)(struct device *); + const struct omap_dm_timer_ops *timer_ops; +}; + +struct dnotify_struct; + +struct dnotify_mark { + struct fsnotify_mark fsn_mark; + struct dnotify_struct *dn; +}; + +typedef void *fl_owner_t; + +struct dnotify_struct { + struct dnotify_struct *dn_next; + __u32 dn_mask; + int dn_fd; + struct file *dn_filp; + fl_owner_t dn_owner; +}; + +struct dns_payload_header { + __u8 zero; + __u8 content; + __u8 version; +}; + +struct dns_server_list_v1_header { + struct dns_payload_header hdr; + __u8 source; + __u8 status; + __u8 nr_servers; +}; + +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 dock_dependent_device { + struct list_head list; + struct acpi_device *adev; +}; + +struct dock_station { + acpi_handle handle; + long unsigned int last_dock_time; + u32 flags; + struct list_head dependent_devices; + struct list_head sibling; + struct platform_device *dock_device; +}; + +struct dom0_vga_console_info { + uint8_t video_type; + union { + struct { + uint16_t font_height; + uint16_t cursor_x; + uint16_t cursor_y; + uint16_t rows; + uint16_t columns; + } text_mode_3; + struct { + uint16_t width; + uint16_t height; + uint16_t bytes_per_line; + uint16_t bits_per_pixel; + uint32_t lfb_base; + uint32_t lfb_size; + uint8_t red_pos; + uint8_t red_size; + uint8_t green_pos; + uint8_t green_size; + uint8_t blue_pos; + uint8_t blue_size; + uint8_t rsvd_pos; + uint8_t rsvd_size; + uint32_t gbl_caps; + uint16_t mode_attrs; + uint16_t pad; + uint32_t ext_lfb_base; + } vesa_lfb; + } u; +}; + +struct double_list { + struct list_head *top; + struct list_head *bottom; +}; + +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 mac_device; + +struct dpaa_eth_data { + struct mac_device *mac_dev; + int mac_hw_id; + int fman_hw_id; +}; + +struct dpages { + void (*get_page)(struct dpages *, struct page **, long unsigned int *, unsigned int *); + void (*next_page)(struct dpages *); + union { + unsigned int context_u; + struct bvec_iter context_bi; + }; + void *context_ptr; + void *vma_invalidate_address; + long unsigned int vma_invalidate_size; +}; + +struct dpbp_attr { + int id; + u16 bpid; +}; + +struct dpbp_cmd_open { + __le32 dpbp_id; +}; + +struct dpbp_rsp_get_attributes { + __le16 pad; + __le16 bpid; + __le32 id; + __le16 version_major; + __le16 version_minor; +}; + +struct dpcon_attr { + int id; + u16 qbman_ch_id; + u8 num_priorities; +}; + +struct dpcon_cmd_open { + __le32 dpcon_id; +}; + +struct dpcon_cmd_set_notification { + __le32 dpio_id; + u8 priority; + u8 pad[3]; + __le64 user_ctx; +}; + +struct dpcon_notification_cfg { + int dpio_id; + u8 priority; + u64 user_ctx; +}; + +struct dpcon_rsp_get_attr { + __le32 id; + __le16 qbman_ch_id; + u8 num_priorities; + u8 pad; +}; + +struct dpll_device { + u32 id; + u32 device_idx; + u64 clock_id; + struct module *module; + enum dpll_type type; + struct xarray pin_refs; + refcount_t refcount; + struct list_head registration_list; +}; + +struct dpll_device_ops { + int (*mode_get)(const struct dpll_device *, void *, enum dpll_mode *, struct netlink_ext_ack *); + int (*lock_status_get)(const struct dpll_device *, void *, enum dpll_lock_status *, enum dpll_lock_status_error *, struct netlink_ext_ack *); + int (*temp_get)(const struct dpll_device *, void *, s32 *, struct netlink_ext_ack *); + int (*clock_quality_level_get)(const struct dpll_device *, void *, long unsigned int *, struct netlink_ext_ack *); +}; + +struct dpll_device_registration { + struct list_head list; + const struct dpll_device_ops *ops; + void *priv; +}; + +struct dpll_dump_ctx { + long unsigned int idx; +}; + +struct dpll_pin_phase_adjust_range { + s32 min; + s32 max; +}; + +struct dpll_pin_frequency; + +struct dpll_pin_properties { + const char *board_label; + const char *panel_label; + const char *package_label; + enum dpll_pin_type type; + long unsigned int capabilities; + u32 freq_supported_num; + struct dpll_pin_frequency *freq_supported; + struct dpll_pin_phase_adjust_range phase_range; +}; + +struct dpll_pin { + u32 id; + u32 pin_idx; + u64 clock_id; + struct module *module; + struct xarray dpll_refs; + struct xarray parent_refs; + struct dpll_pin_properties prop; + refcount_t refcount; + struct callback_head rcu; +}; + +struct dpll_pin_esync { + u64 freq; + const struct dpll_pin_frequency *range; + u8 range_num; + u8 pulse; +}; + +struct dpll_pin_frequency { + u64 min; + u64 max; +}; + +struct dpll_pin_ops { + int (*frequency_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, const u64, struct netlink_ext_ack *); + int (*frequency_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, u64 *, struct netlink_ext_ack *); + int (*direction_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, const enum dpll_pin_direction, struct netlink_ext_ack *); + int (*direction_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, enum dpll_pin_direction *, struct netlink_ext_ack *); + int (*state_on_pin_get)(const struct dpll_pin *, void *, const struct dpll_pin *, void *, enum dpll_pin_state *, struct netlink_ext_ack *); + int (*state_on_dpll_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, enum dpll_pin_state *, struct netlink_ext_ack *); + int (*state_on_pin_set)(const struct dpll_pin *, void *, const struct dpll_pin *, void *, const enum dpll_pin_state, struct netlink_ext_ack *); + int (*state_on_dpll_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, const enum dpll_pin_state, struct netlink_ext_ack *); + int (*prio_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, u32 *, struct netlink_ext_ack *); + int (*prio_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, const u32, struct netlink_ext_ack *); + int (*phase_offset_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, s64 *, struct netlink_ext_ack *); + int (*phase_adjust_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, s32 *, struct netlink_ext_ack *); + int (*phase_adjust_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, const s32, struct netlink_ext_ack *); + int (*ffo_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, s64 *, struct netlink_ext_ack *); + int (*esync_set)(const struct dpll_pin *, void *, const struct dpll_device *, void *, u64, struct netlink_ext_ack *); + int (*esync_get)(const struct dpll_pin *, void *, const struct dpll_device *, void *, struct dpll_pin_esync *, struct netlink_ext_ack *); +}; + +struct dpll_pin_ref { + union { + struct dpll_device *dpll; + struct dpll_pin *pin; + }; + struct list_head registration_list; + refcount_t refcount; +}; + +struct dpll_pin_registration { + struct list_head list; + const struct dpll_pin_ops *ops; + void *priv; + void *cookie; +}; + +struct dpmcp_cmd_open { + __le32 dpmcp_id; +}; + +struct dpmng_rsp_get_version { + __le32 revision; + __le32 version_major; + __le32 version_minor; +}; + +struct dprc_attributes { + int container_id; + u32 icid; + int portal_id; + u64 options; +}; + +struct dprc_cmd_clear_irq_status { + __le32 status; + u8 irq_index; +}; + +struct dprc_cmd_get_connection { + __le32 ep1_id; + __le16 ep1_interface_id; + u8 pad[2]; + u8 ep1_type[16]; +}; + +struct dprc_cmd_get_irq_status { + __le32 status; + u8 irq_index; +}; + +struct dprc_cmd_get_obj { + __le32 obj_index; +}; + +struct dprc_cmd_get_obj_region { + __le32 obj_id; + __le16 pad0; + u8 region_index; + u8 pad1; + __le64 pad2[2]; + u8 obj_type[16]; +}; + +struct dprc_cmd_open { + __le32 container_id; +}; + +struct dprc_cmd_reset_container { + __le32 child_container_id; + __le32 options; +}; + +struct dprc_cmd_set_irq { + __le32 irq_val; + u8 irq_index; + u8 pad[3]; + __le64 irq_addr; + __le32 irq_num; +}; + +struct dprc_cmd_set_irq_enable { + u8 enable; + u8 pad[3]; + u8 irq_index; +}; + +struct dprc_cmd_set_irq_mask { + __le32 mask; + u8 irq_index; +}; + +struct dprc_cmd_set_obj_irq { + __le32 irq_val; + u8 irq_index; + u8 pad[3]; + __le64 irq_addr; + __le32 irq_num; + __le32 obj_id; + u8 obj_type[16]; +}; + +struct dprc_endpoint { + char type[16]; + int id; + u16 if_id; +}; + +struct dprc_irq_cfg { + phys_addr_t paddr; + u32 val; + int irq_num; +}; + +struct dprc_region_desc { + u32 base_offset; + u32 size; + u32 flags; + enum dprc_region_type type; + u64 base_address; +}; + +struct dprc_rsp_get_attributes { + __le32 container_id; + __le32 icid; + __le32 options; + __le32 portal_id; +}; + +struct dprc_rsp_get_connection { + __le64 pad[3]; + __le32 ep2_id; + __le16 ep2_interface_id; + __le16 pad1; + u8 ep2_type[16]; + __le32 state; +}; + +struct dprc_rsp_get_irq_status { + __le32 status; +}; + +struct dprc_rsp_get_obj { + __le32 pad0; + __le32 id; + __le16 vendor; + u8 irq_count; + u8 region_count; + __le32 state; + __le16 version_major; + __le16 version_minor; + __le16 flags; + __le16 pad1; + u8 type[16]; + u8 label[16]; +}; + +struct dprc_rsp_get_obj_count { + __le32 pad; + __le32 obj_count; +}; + +struct dprc_rsp_get_obj_region { + __le64 pad0; + __le64 base_offset; + __le32 size; + u8 type; + u8 pad2[3]; + __le32 flags; + __le32 pad3; + __le64 base_addr; +}; + +struct dql { + unsigned int num_queued; + unsigned int adj_limit; + unsigned int last_obj_cnt; + short unsigned int stall_thrs; + long unsigned int history_head; + long unsigned int history[4]; + 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; + long unsigned int slack_start_time; + unsigned int max_limit; + unsigned int min_limit; + unsigned int slack_hold_time; + short unsigned int stall_max; + long unsigned int last_reap; + long unsigned int stall_cnt; +}; + +struct dqstats { + long unsigned int stat[8]; + struct percpu_counter counter[8]; +}; + +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; + long unsigned int dq_flags; + struct mem_dqblk dq_dqb; +}; + +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 dquot_warn { + struct super_block *w_sb; + struct kqid w_dq_id; + short int w_type; +}; + +struct drbg_core { + drbg_flag_t flags; + __u8 statelen; + __u8 blocklen_bytes; + char cra_name[128]; + char backend_cra_name[128]; +}; + +struct drbg_string { + const unsigned char *buf; + size_t len; + struct list_head list; +}; + +struct drbg_state_ops; + +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; + long unsigned int last_seed_time; + bool pr; + bool fips_primed; + unsigned char *prev; + struct crypto_rng *jent; + const struct drbg_state_ops *d_ops; + const struct drbg_core *core; + struct drbg_string test_data; +}; + +struct drbg_state_ops { + int (*update)(struct drbg_state *, struct list_head *, int); + int (*generate)(struct drbg_state *, unsigned char *, unsigned int, struct list_head *); + int (*crypto_init)(struct drbg_state *); + int (*crypto_fini)(struct drbg_state *); +}; + +struct driver_attribute { + struct attribute attr; + ssize_t (*show)(struct device_driver *, char *); + ssize_t (*store)(struct device_driver *, const char *, size_t); +}; + +struct module_kobject; + +struct driver_private { + struct kobject kobj; + struct klist klist_devices; + struct klist_node knode_bus; + struct module_kobject *mkobj; + struct device_driver *driver; +}; + +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_device; + +struct drm_format_info; + +struct drm_framebuffer_funcs; + +struct drm_gem_object; + +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; + struct list_head filp_head; + struct drm_gem_object *obj[4]; +}; + +struct drm_afbc_framebuffer { + struct drm_framebuffer base; + u32 block_width; + u32 block_height; + u32 aligned_width; + u32 aligned_height; + u32 offset; + u32 afbc_size; +}; + +struct drm_rect { + int x1; + int y1; + int x2; + int y2; +}; + +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 drm_modeset_acquire_ctx; + +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_auth { + drm_magic_t magic; +}; + +struct drm_modeset_lock { + struct ww_mutex mutex; + struct list_head head; +}; + +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_encoder; + +struct drm_bridge_timings; + +struct drm_bridge_funcs; + +struct i2c_adapter; + +struct drm_bridge { + struct drm_private_obj base; + struct drm_device *dev; + struct drm_encoder *encoder; + struct list_head chain_node; + struct device_node *of_node; + struct list_head list; + const struct drm_bridge_timings *timings; + const struct drm_bridge_funcs *funcs; + void *driver_private; + enum drm_bridge_ops ops; + int type; + bool interlace_allowed; + bool ycbcr_420_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; + const char *vendor; + const char *product; + unsigned int supported_formats; + unsigned int max_bpc; + struct device *hdmi_audio_dev; + int hdmi_audio_max_i2s_playback_channels; + unsigned int hdmi_audio_spdif_playback: 1; + int hdmi_audio_dai_port; +}; + +struct hdmi_codec_daifmt; + +struct hdmi_codec_params; + +struct drm_display_info; + +struct drm_display_mode; + +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 *); + const struct drm_edid * (*edid_read)(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 *); + enum drm_mode_status (*hdmi_tmds_char_rate_valid)(const struct drm_bridge *, const struct drm_display_mode *, long long unsigned int); + int (*hdmi_clear_infoframe)(struct drm_bridge *, enum hdmi_infoframe_type); + int (*hdmi_write_infoframe)(struct drm_bridge *, enum hdmi_infoframe_type, const u8 *, size_t); + int (*hdmi_audio_startup)(struct drm_connector *, struct drm_bridge *); + int (*hdmi_audio_prepare)(struct drm_connector *, struct drm_bridge *, struct hdmi_codec_daifmt *, struct hdmi_codec_params *); + void (*hdmi_audio_shutdown)(struct drm_connector *, struct drm_bridge *); + int (*hdmi_audio_mute_stream)(struct drm_connector *, struct drm_bridge *, bool, int); + void (*debugfs_init)(struct drm_bridge *, struct dentry *); +}; + +struct drm_private_state { + struct drm_atomic_state *state; + struct drm_private_obj *obj; +}; + +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 drm_bridge_timings { + u32 input_bus_flags; + u32 setup_time_ps; + u32 hold_time_ps; + bool dual_link; +}; + +struct drm_client { + int idx; + int auth; + long unsigned int pid; + long unsigned int uid; + long unsigned int magic; + long unsigned int iocs; +}; + +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_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 drm_client_funcs; + +struct drm_file; + +struct drm_mode_set; + +struct drm_client_dev { + struct drm_device *dev; + const char *name; + struct list_head list; + const struct drm_client_funcs *funcs; + struct drm_file *file; + struct mutex modeset_mutex; + struct drm_mode_set *modesets; + bool suspended; + 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 *); + int (*suspend)(struct drm_client_dev *, bool); + int (*resume)(struct drm_client_dev *, bool); +}; + +struct drm_client_offset { + int x; + int y; +}; + +struct drm_clip_rect { + short unsigned int x1; + short unsigned int y1; + short unsigned int x2; + short unsigned int y2; +}; + +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 drm_color_lut { + __u16 red; + __u16 green; + __u16 blue; + __u16 reserved; +}; + +struct drm_conn_prop_enum_list { + int type; + const char *name; + struct ida ida; +}; + +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; + long unsigned int y420_vdb_modes[4]; + long unsigned int 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_audio; + bool has_hdmi_infoframe; + bool rgb_quant_range_selectable; + u8 edid_hdmi_rgb444_dc_modes; + u8 edid_hdmi_ycbcr444_dc_modes; + u8 cea_rev; + struct drm_hdmi_info hdmi; + bool non_desktop; + struct drm_monitor_range_info monitor_range; + struct drm_luminance_range_info luminance_range; + u8 mso_stream_count; + u8 mso_pixel_overlap; + u32 max_dsc_bpp; + u8 *vics; + int vics_len; + u32 quirks; + u16 source_physical_address; +}; + +struct drm_property; + +struct drm_object_properties { + int count; + struct drm_property *properties[64]; + uint64_t values[64]; +}; + +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 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; + bool itc; + unsigned char pixel_repeat; + enum hdmi_colorspace colorspace; + enum hdmi_scan_mode scan_mode; + enum hdmi_colorimetry colorimetry; + enum hdmi_picture_aspect picture_aspect; + enum hdmi_active_aspect active_aspect; + enum hdmi_extended_colorimetry extended_colorimetry; + enum hdmi_quantization_range quantization_range; + enum hdmi_nups nups; + unsigned char video_code; + enum hdmi_ycc_quantization_range ycc_quantization_range; + enum hdmi_content_type content_type; + short unsigned int top_bar; + short unsigned int bottom_bar; + short unsigned int left_bar; + short unsigned int 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_connector_hdmi_infoframe { + union hdmi_infoframe data; + bool set; +}; + +struct drm_connector_hdmi_funcs; + +struct drm_connector_hdmi { + unsigned char vendor[8]; + unsigned char product[16]; + long unsigned int supported_formats; + const struct drm_connector_hdmi_funcs *funcs; + struct { + struct mutex lock; + struct drm_connector_hdmi_infoframe audio; + } infoframes; +}; + +struct drm_connector_hdmi_audio_funcs; + +struct drm_connector_hdmi_audio { + const struct drm_connector_hdmi_audio_funcs *funcs; + struct platform_device *codec_pdev; + struct mutex lock; + void (*plugged_cb)(struct device *, bool); + struct device *plugged_cb_dev; + bool last_state; + int dai_port; +}; + +struct drm_connector_funcs; + +struct drm_property_blob; + +struct drm_privacy_screen; + +struct drm_connector_helper_funcs; + +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; + unsigned int max_bpc; + 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; + struct drm_property *broadcast_rgb_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]; + struct mutex eld_mutex; + 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_hdmi hdmi; + struct drm_connector_hdmi_audio hdmi_audio; +}; + +struct drm_printer; + +struct drm_connector_funcs { + int (*dpms)(struct drm_connector *, int); + void (*reset)(struct drm_connector *); + enum drm_connector_status (*detect)(struct drm_connector *, bool); + void (*force)(struct drm_connector *); + int (*fill_modes)(struct drm_connector *, uint32_t, uint32_t); + int (*set_property)(struct drm_connector *, struct drm_property *, uint64_t); + int (*late_register)(struct drm_connector *); + void (*early_unregister)(struct drm_connector *); + void (*destroy)(struct drm_connector *); + struct drm_connector_state * (*atomic_duplicate_state)(struct drm_connector *); + void (*atomic_destroy_state)(struct drm_connector *, struct drm_connector_state *); + int (*atomic_set_property)(struct drm_connector *, struct drm_connector_state *, struct drm_property *, uint64_t); + int (*atomic_get_property)(struct drm_connector *, const struct drm_connector_state *, struct drm_property *, uint64_t *); + void (*atomic_print_state)(struct drm_printer *, const struct drm_connector_state *); + void (*oob_hotplug_event)(struct drm_connector *, enum drm_connector_status); + void (*debugfs_init)(struct drm_connector *, struct dentry *); +}; + +struct drm_connector_hdmi_audio_funcs { + int (*startup)(struct drm_connector *); + int (*prepare)(struct drm_connector *, struct hdmi_codec_daifmt *, struct hdmi_codec_params *); + void (*shutdown)(struct drm_connector *); + int (*mute_stream)(struct drm_connector *, bool, int); +}; + +struct drm_connector_hdmi_funcs { + enum drm_mode_status (*tmds_char_rate_valid)(const struct drm_connector *, const struct drm_display_mode *, long long unsigned int); + int (*clear_infoframe)(struct drm_connector *, enum hdmi_infoframe_type); + int (*write_infoframe)(struct drm_connector *, enum hdmi_infoframe_type, const u8 *, size_t); + const struct drm_edid * (*read_edid)(struct drm_connector *); +}; + +struct drm_connector_hdmi_state { + enum drm_hdmi_broadcast_rgb broadcast_rgb; + struct { + struct drm_connector_hdmi_infoframe avi; + struct drm_connector_hdmi_infoframe hdr_drm; + struct drm_connector_hdmi_infoframe spd; + struct drm_connector_hdmi_infoframe hdmi; + } infoframes; + bool is_limited_range; + unsigned int output_bpc; + enum hdmi_colorspace output_format; + long long unsigned int tmds_char_rate; +}; + +struct drm_writeback_connector; + +struct drm_writeback_job; + +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 drm_connector_list_iter { + struct drm_device *dev; + struct drm_connector *conn; +}; + +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_connector_state { + struct drm_connector *connector; + struct drm_crtc *crtc; + struct drm_encoder *best_encoder; + enum drm_link_status link_status; + struct drm_atomic_state *state; + struct drm_crtc_commit *commit; + struct drm_tv_connector_state tv; + bool self_refresh_aware; + enum hdmi_picture_aspect picture_aspect_ratio; + unsigned int content_type; + unsigned int hdcp_content_type; + unsigned int scaling_mode; + unsigned int content_protection; + enum drm_colorspace colorspace; + struct drm_writeback_job *writeback_job; + u8 max_requested_bpc; + u8 max_bpc; + enum drm_privacy_screen_status privacy_screen_sw_state; + struct drm_property_blob *hdr_output_metadata; + struct drm_connector_hdmi_state hdmi; +}; + +struct drm_display_mode { + int clock; + u16 hdisplay; + u16 hsync_start; + u16 hsync_end; + u16 htotal; + u16 hskew; + u16 vdisplay; + u16 vsync_start; + u16 vsync_end; + u16 vtotal; + u16 vscan; + u32 flags; + int crtc_clock; + u16 crtc_hdisplay; + u16 crtc_hblank_start; + u16 crtc_hblank_end; + u16 crtc_hsync_start; + u16 crtc_hsync_end; + u16 crtc_htotal; + u16 crtc_hskew; + u16 crtc_vdisplay; + u16 crtc_vblank_start; + u16 crtc_vblank_end; + u16 crtc_vsync_start; + u16 crtc_vsync_end; + u16 crtc_vtotal; + u16 width_mm; + u16 height_mm; + u8 type; + bool expose_to_userspace; + struct list_head head; + char name[32]; + enum drm_mode_status status; + enum hdmi_picture_aspect picture_aspect_ratio; +}; + +struct 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_crtc_funcs; + +struct drm_crtc_helper_funcs; + +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; + long unsigned int fence_seqno; + char timeline_name[32]; + struct drm_self_refresh_data *self_refresh_data; +}; + +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 drm_crtc_crc_entry { + bool has_frame_counter; + uint32_t frame; + uint32_t crcs[10]; +}; + +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_crtc_get_sequence { + __u32 crtc_id; + __u32 active; + __u64 sequence; + __s64 sequence_ns; +}; + +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_queue_sequence { + __u32 crtc_id; + __u32 flags; + __u64 sequence; + __u64 user_data; +}; + +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_debugfs_info { + const char *name; + int (*show)(struct seq_file *, void *); + u32 driver_features; + void *data; +}; + +struct drm_debugfs_entry { + struct drm_device *dev; + struct drm_debugfs_info file; + struct list_head list; +}; + +struct drm_mode_config_funcs; + +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; + struct raw_spinlock panic_lock; + int num_crtc; + struct list_head crtc_list; + struct list_head property_list; + struct list_head privobj_list; + int min_width; + int min_height; + int max_width; + int max_height; + const struct drm_mode_config_funcs *funcs; + bool poll_enabled; + bool poll_running; + bool delayed_event; + struct delayed_work output_poll_work; + struct mutex blob_lock; + struct list_head property_blob_list; + struct drm_property *edid_property; + struct drm_property *dpms_property; + struct drm_property *path_property; + struct drm_property *tile_property; + struct drm_property *link_status_property; + struct drm_property *plane_type_property; + struct drm_property *prop_src_x; + struct drm_property *prop_src_y; + struct drm_property *prop_src_w; + struct drm_property *prop_src_h; + struct drm_property *prop_crtc_x; + struct drm_property *prop_crtc_y; + struct drm_property *prop_crtc_w; + struct drm_property *prop_crtc_h; + struct drm_property *prop_fb_id; + struct drm_property *prop_in_fence_fd; + struct drm_property *prop_out_fence_ptr; + struct drm_property *prop_crtc_id; + struct drm_property *prop_fb_damage_clips; + struct drm_property *prop_active; + struct drm_property *prop_mode_id; + struct drm_property *prop_vrr_enabled; + struct drm_property *dvi_i_subconnector_property; + struct drm_property *dvi_i_select_subconnector_property; + struct drm_property *dp_subconnector_property; + struct drm_property *tv_subconnector_property; + struct drm_property *tv_select_subconnector_property; + struct drm_property *legacy_tv_mode_property; + struct drm_property *tv_mode_property; + struct drm_property *tv_left_margin_property; + struct drm_property *tv_right_margin_property; + struct drm_property *tv_top_margin_property; + struct drm_property *tv_bottom_margin_property; + struct drm_property *tv_brightness_property; + struct drm_property *tv_contrast_property; + struct drm_property *tv_flicker_reduction_property; + struct drm_property *tv_overscan_property; + struct drm_property *tv_saturation_property; + struct drm_property *tv_hue_property; + struct drm_property *scaling_mode_property; + struct drm_property *aspect_ratio_property; + struct drm_property *content_type_property; + struct drm_property *degamma_lut_property; + struct drm_property *degamma_lut_size_property; + struct drm_property *ctm_property; + struct drm_property *gamma_lut_property; + struct drm_property *gamma_lut_size_property; + struct drm_property *suggested_x_property; + struct drm_property *suggested_y_property; + struct drm_property *non_desktop_property; + struct drm_property *panel_orientation_property; + struct drm_property *writeback_fb_id_property; + struct drm_property *writeback_pixel_formats_property; + struct drm_property *writeback_out_fence_ptr_property; + struct drm_property *hdr_output_metadata_property; + struct drm_property *content_protection_property; + struct drm_property *hdcp_content_type_property; + uint32_t preferred_depth; + uint32_t prefer_shadow; + bool quirk_addfb_prefer_xbgr_30bpp; + bool quirk_addfb_prefer_host_byte_order; + bool async_page_flip; + bool fb_modifiers_not_supported; + bool normalize_zpos; + struct drm_property *modifiers_property; + struct drm_property *size_hints_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 dentry *debugfs_root; +}; + +struct drm_dmi_panel_orientation_data { + int width; + int height; + const char * const *bios_dates; + int orientation; +}; + +struct drm_mode_create_dumb; + +struct drm_fb_helper_surface_size; + +struct drm_ioctl_desc; + +struct drm_driver { + int (*load)(struct drm_device *, long unsigned int); + int (*open)(struct drm_device *, struct drm_file *); + void (*postclose)(struct drm_device *, struct drm_file *); + void (*unload)(struct drm_device *); + void (*release)(struct drm_device *); + void (*master_set)(struct drm_device *, struct drm_file *, bool); + void (*master_drop)(struct drm_device *, struct drm_file *); + void (*debugfs_init)(struct drm_minor *); + struct drm_gem_object * (*gem_create_object)(struct drm_device *, size_t); + int (*prime_handle_to_fd)(struct drm_device *, struct drm_file *, uint32_t, uint32_t, int *); + int (*prime_fd_to_handle)(struct drm_device *, struct drm_file *, int, uint32_t *); + struct drm_gem_object * (*gem_prime_import)(struct drm_device *, struct dma_buf *); + struct drm_gem_object * (*gem_prime_import_sg_table)(struct drm_device *, struct dma_buf_attachment *, struct sg_table *); + int (*dumb_create)(struct drm_file *, struct drm_device *, struct drm_mode_create_dumb *); + int (*dumb_map_offset)(struct drm_file *, struct drm_device *, uint32_t, uint64_t *); + int (*fbdev_probe)(struct drm_fb_helper *, struct drm_fb_helper_surface_size *); + void (*show_fdinfo)(struct drm_printer *, struct drm_file *); + int major; + int minor; + int patchlevel; + char *name; + char *desc; + u32 driver_features; + const struct drm_ioctl_desc *ioctls; + int num_ioctls; + const struct file_operations *fops; +}; + +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 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 edid; + +struct drm_edid { + size_t size; + const struct edid *edid; +}; + +struct drm_edid_ident { + u32 panel_id; + const char *name; +}; + +struct drm_edid_match_closure { + const struct drm_edid_ident *ident; + bool matched; +}; + +struct drm_edid_product_id { + __be16 manufacturer_name; + __le16 product_code; + __le32 serial_number; + u8 week_of_manufacture; + u8 year_of_manufacture; +} __attribute__((packed)); + +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 dentry *debugfs_entry; +}; + +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 *); + void (*debugfs_init)(struct drm_encoder *, struct dentry *); +}; + +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_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); +}; + +struct drm_event { + __u32 type; + __u32 length; +}; + +struct drm_event_crtc_sequence { + struct drm_event base; + __u64 user_data; + __s64 time_ns; + __u64 sequence; +}; + +struct drm_event_vblank { + struct drm_event base; + __u64 user_data; + __u32 tv_sec; + __u32 tv_usec; + __u32 sequence; + __u32 crtc_id; +}; + +struct ww_acquire_ctx { + struct task_struct *task; + long unsigned int stamp; + unsigned int acquired; + short unsigned int wounded; + short unsigned int is_wait_die; +}; + +struct drm_exec { + u32 flags; + struct ww_acquire_ctx ticket; + unsigned int num_objects; + unsigned int max_objects; + struct drm_gem_object **objects; + struct drm_gem_object *contended; + struct drm_gem_object *prelocked; +}; + +struct fb_info; + +struct fb_deferred_io { + long unsigned int delay; + bool sort_pagereflist; + int open_count; + struct mutex lock; + struct list_head pagereflist; + struct page * (*get_page)(struct fb_info *, long unsigned int); + void (*deferred_io)(struct fb_info *, struct list_head *); +}; + +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; + struct fb_deferred_io fbdefio; +}; + +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; +}; + +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; + bool supports_virtualized_cursor_plane; + struct drm_master *master; + spinlock_t master_lookup_lock; + struct pid *pid; + u64 client_id; + drm_magic_t magic; + struct list_head lhead; + struct drm_minor *minor; + struct idr object_idr; + spinlock_t table_lock; + struct idr syncobj_idr; + spinlock_t syncobj_table_lock; + struct file *filp; + void *driver_priv; + struct list_head fbs; + struct mutex fbs_lock; + struct list_head blobs; + wait_queue_head_t event_wait; + struct list_head pending_event_list; + struct list_head event_list; + int event_space; + struct mutex event_read_lock; + struct drm_prime_file_private prime; + const char *client_name; + struct mutex client_name_lock; +}; + +struct drm_flip_task { + struct list_head node; + void *data; +}; + +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_format_conv_state { + struct { + void *mem; + size_t size; + bool preallocated; + } tmp; +}; + +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_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_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_gem_close { + __u32 handle; + __u32 pad; +}; + +struct drm_gem_flink { + __u32 handle; + __u32 name; +}; + +struct drm_gem_lru { + struct mutex *lock; + long int count; + struct list_head list; +}; + +struct drm_mm; + +struct drm_mm_node { + long unsigned int 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; + long unsigned int flags; +}; + +struct drm_vma_offset_node { + rwlock_t vm_lock; + struct drm_mm_node vm_node; + struct rb_root vm_files; + void *driver_private; +}; + +struct drm_gem_object_funcs; + +struct drm_gem_object { + struct kref refcount; + unsigned int handle_count; + struct drm_device *dev; + struct file *filp; + struct drm_vma_offset_node vma_node; + size_t size; + int name; + struct dma_buf *dma_buf; + struct dma_buf_attachment *import_attach; + struct dma_resv *resv; + struct dma_resv _resv; + struct { + struct list_head list; + } gpuva; + const struct drm_gem_object_funcs *funcs; + struct list_head lru_node; + struct drm_gem_lru *lru; +}; + +struct vm_operations_struct; + +struct drm_gem_object_funcs { + void (*free)(struct drm_gem_object *); + int (*open)(struct drm_gem_object *, struct drm_file *); + void (*close)(struct drm_gem_object *, struct drm_file *); + void (*print_info)(struct drm_printer *, unsigned int, const struct drm_gem_object *); + struct dma_buf * (*export)(struct drm_gem_object *, int); + int (*pin)(struct drm_gem_object *); + void (*unpin)(struct drm_gem_object *); + struct sg_table * (*get_sg_table)(struct drm_gem_object *); + int (*vmap)(struct drm_gem_object *, struct iosys_map *); + void (*vunmap)(struct drm_gem_object *, struct iosys_map *); + int (*mmap)(struct drm_gem_object *, struct vm_area_struct *); + int (*evict)(struct drm_gem_object *); + enum drm_gem_object_status (*status)(struct drm_gem_object *); + size_t (*rss)(struct drm_gem_object *); + const struct vm_operations_struct *vm_ops; +}; + +struct drm_gem_open { + __u32 name; + __u32 handle; + __u64 size; +}; + +struct drm_gem_shmem_object { + struct drm_gem_object base; + struct page **pages; + unsigned int pages_use_count; + int madv; + struct list_head madv_list; + struct sg_table *sgt; + void *vaddr; + unsigned int vmap_use_count; + bool pages_mark_dirty_on_put: 1; + bool pages_mark_accessed_on_put: 1; + bool map_wc: 1; +}; + +struct drm_get_cap { + __u64 capability; + __u64 value; +}; + +struct drm_gpuvm; + +struct drm_gpuvm_bo; + +struct drm_gpuva { + struct drm_gpuvm *vm; + struct drm_gpuvm_bo *vm_bo; + enum drm_gpuva_flags flags; + struct { + u64 addr; + u64 range; + } va; + struct { + u64 offset; + struct drm_gem_object *obj; + struct list_head entry; + } gem; + struct { + struct rb_node node; + struct list_head entry; + u64 __subtree_last; + } rb; +}; + +struct drm_gpuva_op_map { + struct { + u64 addr; + u64 range; + } va; + struct { + u64 offset; + struct drm_gem_object *obj; + } gem; +}; + +struct drm_gpuva_op_unmap; + +struct drm_gpuva_op_remap { + struct drm_gpuva_op_map *prev; + struct drm_gpuva_op_map *next; + struct drm_gpuva_op_unmap *unmap; +}; + +struct drm_gpuva_op_unmap { + struct drm_gpuva *va; + bool keep; +}; + +struct drm_gpuva_op_prefetch { + struct drm_gpuva *va; +}; + +struct drm_gpuva_op { + struct list_head entry; + enum drm_gpuva_op_type op; + union { + struct drm_gpuva_op_map map; + struct drm_gpuva_op_remap remap; + struct drm_gpuva_op_unmap unmap; + struct drm_gpuva_op_prefetch prefetch; + }; +}; + +struct drm_gpuvm_ops; + +struct drm_gpuvm { + const char *name; + enum drm_gpuvm_flags flags; + struct drm_device *drm; + u64 mm_start; + u64 mm_range; + struct { + struct rb_root_cached tree; + struct list_head list; + } rb; + struct kref kref; + struct drm_gpuva kernel_alloc_node; + const struct drm_gpuvm_ops *ops; + struct drm_gem_object *r_obj; + struct { + struct list_head list; + struct list_head *local_list; + spinlock_t lock; + } extobj; + struct { + struct list_head list; + struct list_head *local_list; + spinlock_t lock; + } evict; +}; + +struct drm_gpuvm_bo { + struct drm_gpuvm *vm; + struct drm_gem_object *obj; + bool evicted; + struct kref kref; + struct { + struct list_head gpuva; + struct { + struct list_head gem; + struct list_head extobj; + struct list_head evict; + } entry; + } list; +}; + +struct drm_gpuvm_ops { + void (*vm_free)(struct drm_gpuvm *); + struct drm_gpuva_op * (*op_alloc)(void); + void (*op_free)(struct drm_gpuva_op *); + struct drm_gpuvm_bo * (*vm_bo_alloc)(void); + void (*vm_bo_free)(struct drm_gpuvm_bo *); + int (*vm_bo_validate)(struct drm_gpuvm_bo *, struct drm_exec *); + int (*sm_step_map)(struct drm_gpuva_op *, void *); + int (*sm_step_remap)(struct drm_gpuva_op *, void *); + int (*sm_step_unmap)(struct drm_gpuva_op *, void *); +}; + +struct i2c_device_id; + +struct i2c_board_info; + +struct i2c_driver { + unsigned int class; + int (*probe)(struct i2c_client *); + void (*remove)(struct i2c_client *); + void (*shutdown)(struct i2c_client *); + void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); + int (*command)(struct i2c_client *, unsigned int, void *); + struct device_driver driver; + const struct i2c_device_id *id_table; + int (*detect)(struct i2c_client *, struct i2c_board_info *); + const short unsigned int *address_list; + struct list_head clients; + u32 flags; +}; + +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_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; +}; + +typedef int drm_ioctl_t(struct drm_device *, void *, struct drm_file *); + +struct drm_ioctl_desc { + unsigned int cmd; + enum drm_ioctl_flags flags; + drm_ioctl_t *func; + const char *name; +}; + +struct drm_log_scanout; + +struct drm_log { + struct mutex lock; + struct drm_client_dev client; + struct console con; + bool probed; + u32 n_scanout; + struct drm_log_scanout *scanout; +}; + +struct font_desc; + +struct drm_log_scanout { + struct drm_client_buffer *buffer; + const struct font_desc *font; + u32 rows; + u32 columns; + u32 scaled_font_h; + u32 scaled_font_w; + u32 line; + u32 format; + u32 px_width; + u32 front_color; + u32 prefix_color; +}; + +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_memory_stats { + u64 shared; + u64 private; + u64 resident; + u64 purgeable; + u64 active; +}; + +struct drm_minor { + int index; + int type; + struct device *kdev; + struct drm_device *dev; + struct dentry *debugfs_symlink; + struct dentry *debugfs_root; +}; + +struct drm_mm { + void (*color_adjust)(const struct drm_mm_node *, long unsigned int, 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; + long unsigned int scan_active; +}; + +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; + long unsigned int color; + enum drm_mm_insert_mode mode; +}; + +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_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_mode_closefb { + __u32 fb_id; + __u32 pad; +}; + +struct drm_mode_fb_cmd2; + +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 *); + enum drm_mode_status (*mode_valid)(struct drm_device *, const struct drm_display_mode *); + int (*atomic_check)(struct drm_device *, struct drm_atomic_state *); + int (*atomic_commit)(struct drm_device *, struct drm_atomic_state *, bool); + struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device *); + void (*atomic_state_clear)(struct drm_atomic_state *); + void (*atomic_state_free)(struct drm_atomic_state *); +}; + +struct drm_mode_config_helper_funcs { + void (*atomic_commit_tail)(struct drm_atomic_state *); + int (*atomic_commit_setup)(struct drm_atomic_state *); +}; + +struct drm_mode_connector_set_property { + __u64 value; + __u32 prop_id; + __u32 connector_id; +}; + +struct drm_mode_create_blob { + __u64 data; + __u32 length; + __u32 blob_id; +}; + +struct drm_mode_create_dumb { + __u32 height; + __u32 width; + __u32 bpp; + __u32 flags; + __u32 handle; + __u32 pitch; + __u64 size; +}; + +struct drm_mode_create_lease { + __u64 object_ids; + __u32 object_count; + __u32 flags; + __u32 lessee_id; + __u32 fd; +}; + +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_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_mode_crtc_lut { + __u32 crtc_id; + __u32 gamma_size; + __u64 red; + __u64 green; + __u64 blue; +}; + +struct drm_mode_crtc_page_flip_target { + __u32 crtc_id; + __u32 fb_id; + __u32 flags; + __u32 sequence; + __u64 user_data; +}; + +struct drm_mode_cursor { + __u32 flags; + __u32 crtc_id; + __s32 x; + __s32 y; + __u32 width; + __u32 height; + __u32 handle; +}; + +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_destroy_blob { + __u32 blob_id; +}; + +struct drm_mode_destroy_dumb { + __u32 handle; +}; + +struct drm_mode_fb_cmd { + __u32 fb_id; + __u32 width; + __u32 height; + __u32 pitch; + __u32 bpp; + __u32 depth; + __u32 handle; +}; + +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_mode_fb_dirty_cmd { + __u32 fb_id; + __u32 flags; + __u32 color; + __u32 num_clips; + __u64 clips_ptr; +}; + +struct drm_mode_get_blob { + __u32 blob_id; + __u32 length; + __u64 data; +}; + +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 drm_mode_get_encoder { + __u32 encoder_id; + __u32 encoder_type; + __u32 crtc_id; + __u32 possible_crtcs; + __u32 possible_clones; +}; + +struct drm_mode_get_lease { + __u32 count_objects; + __u32 pad; + __u64 objects_ptr; +}; + +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_get_plane_res { + __u64 plane_id_ptr; + __u32 count_planes; +}; + +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_list_lessees { + __u32 count_lessees; + __u32 pad; + __u64 lessees_ptr; +}; + +struct drm_mode_map_dumb { + __u32 handle; + __u32 pad; + __u64 offset; +}; + +struct drm_mode_obj_get_properties { + __u64 props_ptr; + __u64 prop_values_ptr; + __u32 count_props; + __u32 obj_id; + __u32 obj_type; +}; + +struct drm_mode_obj_set_property { + __u64 value; + __u32 prop_id; + __u32 obj_id; + __u32 obj_type; +}; + +struct drm_mode_property_enum { + __u64 value; + char name[32]; +}; + +struct drm_mode_rect { + __s32 x1; + __s32 y1; + __s32 x2; + __s32 y2; +}; + +struct drm_mode_revoke_lease { + __u32 lessee_id; +}; + +struct drm_mode_rmfb_work { + struct work_struct work; + struct list_head fbs; +}; + +struct drm_mode_set { + struct drm_framebuffer *fb; + struct drm_crtc *crtc; + struct drm_display_mode *mode; + uint32_t x; + uint32_t y; + struct drm_connector **connectors; + size_t num_connectors; +}; + +struct drm_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_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_named_mode { + const char *name; + unsigned int pixel_clock_khz; + unsigned int xres; + unsigned int yres; + unsigned int flags; + unsigned int tv_mode; +}; + +struct sync_file; + +struct drm_out_fence_state { + s32 *out_fence_ptr; + struct sync_file *sync_file; + int fd; +}; + +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; + struct list_head followers; + struct mutex follower_lock; + bool prepare_prev_first; + bool prepared; + bool enabled; +}; + +struct drm_panel_follower_funcs; + +struct drm_panel_follower { + const struct drm_panel_follower_funcs *funcs; + struct list_head list; + struct drm_panel *panel; +}; + +struct drm_panel_follower_funcs { + int (*panel_prepared)(struct drm_panel_follower *); + int (*panel_unpreparing)(struct drm_panel_follower *); +}; + +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 drm_panic_line { + u32 len; + const char *txt; +}; + +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 kmsg_dump_detail; + +struct kmsg_dumper { + struct list_head list; + void (*dump)(struct kmsg_dumper *, struct kmsg_dump_detail *); + enum kmsg_dump_reason max_reason; + bool registered; +}; + +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_property *hotspot_x_property; + struct drm_property *hotspot_y_property; + struct kmsg_dumper kmsg_panic; +}; + +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_scanout_buffer; + +struct drm_plane_helper_funcs { + int (*prepare_fb)(struct drm_plane *, struct drm_plane_state *); + void (*cleanup_fb)(struct drm_plane *, struct drm_plane_state *); + int (*begin_fb_access)(struct drm_plane *, struct drm_plane_state *); + void (*end_fb_access)(struct drm_plane *, struct drm_plane_state *); + int (*atomic_check)(struct drm_plane *, struct drm_atomic_state *); + void (*atomic_update)(struct drm_plane *, struct drm_atomic_state *); + void (*atomic_enable)(struct drm_plane *, struct drm_atomic_state *); + void (*atomic_disable)(struct drm_plane *, struct drm_atomic_state *); + int (*atomic_async_check)(struct drm_plane *, struct drm_atomic_state *); + void (*atomic_async_update)(struct drm_plane *, struct drm_atomic_state *); + int (*get_scanout_buffer)(struct drm_plane *, struct drm_scanout_buffer *); + void (*panic_flush)(struct drm_plane *); +}; + +struct drm_plane_size_hint { + __u16 width; + __u16 height; +}; + +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; + int32_t hotspot_x; + int32_t hotspot_y; + 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; + bool ignore_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; + bool color_mgmt_changed: 1; +}; + +struct drm_prime_handle { + __u32 handle; + __u32 flags; + __s32 fd; +}; + +struct drm_prime_member { + struct dma_buf *dma_buf; + uint32_t handle; + struct rb_node dmabuf_rb; + struct rb_node handle_rb; +}; + +struct drm_print_iterator { + void *data; + ssize_t start; + ssize_t remain; + ssize_t offset; +}; + +struct va_format; + +struct drm_printer { + void (*printfn)(struct drm_printer *, struct va_format *); + void (*puts)(struct drm_printer *, const char *); + void *arg; + const void *origin; + const char *prefix; + struct { + unsigned int series; + unsigned int counter; + } line; + enum drm_debug_category category; +}; + +struct drm_privacy_screen_ops; + +struct drm_privacy_screen { + struct device dev; + struct mutex lock; + struct list_head list; + struct blocking_notifier_head notifier_head; + const struct drm_privacy_screen_ops *ops; + enum drm_privacy_screen_status sw_state; + enum drm_privacy_screen_status hw_state; + void *drvdata; +}; + +struct drm_privacy_screen_lookup { + struct list_head list; + const char *dev_id; + const char *con_id; + const char *provider; +}; + +struct drm_privacy_screen_ops { + int (*set_sw_state)(struct drm_privacy_screen *, enum drm_privacy_screen_status); + void (*get_hw_state)(struct drm_privacy_screen *); +}; + +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_prop_enum_list { + int type; + const char *name; +}; + +struct drm_property { + struct list_head head; + struct drm_mode_object base; + uint32_t flags; + char name[32]; + uint32_t num_values; + uint64_t *values; + struct drm_device *dev; + struct list_head enum_list; +}; + +struct 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_property_enum { + uint64_t value; + struct list_head head; + char name[32]; +}; + +struct drm_scanout_buffer { + const struct drm_format_info *format; + struct iosys_map map[4]; + unsigned int width; + unsigned int height; + unsigned int pitch[4]; + void (*set_pixel)(struct drm_scanout_buffer *, unsigned int, unsigned int, u32); +}; + +struct ewma_psr_time { + long unsigned int internal; +}; + +struct drm_self_refresh_data { + struct drm_crtc *crtc; + struct delayed_work entry_work; + struct mutex avg_mutex; + struct ewma_psr_time entry_avg_ms; + struct ewma_psr_time exit_avg_ms; +}; + +struct drm_set_client_cap { + __u64 capability; + __u64 value; +}; + +struct drm_set_client_name { + __u64 name_len; + __u64 name; +}; + +struct drm_set_version { + int drm_di_major; + int drm_di_minor; + int drm_dd_major; + int drm_dd_minor; +}; + +struct drm_shadow_plane_state { + struct drm_plane_state base; + struct drm_format_conv_state fmtcnv_state; + 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 drm_stats { + long unsigned int count; + struct { + long unsigned int value; + enum drm_stat_type type; + } data[15]; +}; + +struct drm_stats32 { + u32 count; + struct { + u32 value; + enum drm_stat_type type; + } data[15]; +}; + +typedef struct drm_stats32 drm_stats32_t; + +struct drm_syncobj { + struct kref refcount; + struct dma_fence *fence; + struct list_head cb_list; + struct list_head ev_fd_list; + spinlock_t lock; + struct file *file; +}; + +struct drm_syncobj_array { + __u64 handles; + __u32 count_handles; + __u32 pad; +}; + +struct drm_syncobj_create { + __u32 handle; + __u32 flags; +}; + +struct drm_syncobj_destroy { + __u32 handle; + __u32 pad; +}; + +struct drm_syncobj_eventfd { + __u32 handle; + __u32 flags; + __u64 point; + __s32 fd; + __u32 pad; +}; + +struct drm_syncobj_handle { + __u32 handle; + __u32 flags; + __s32 fd; + __u32 pad; +}; + +struct drm_syncobj_timeline_array { + __u64 handles; + __u64 points; + __u32 count_handles; + __u32 flags; +}; + +struct drm_syncobj_timeline_wait { + __u64 handles; + __u64 points; + __s64 timeout_nsec; + __u32 count_handles; + __u32 flags; + __u32 first_signaled; + __u32 pad; + __u64 deadline_nsec; +}; + +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; + __u64 deadline_nsec; +}; + +struct drm_tile_group { + struct kref refcount; + struct drm_device *dev; + int id; + u8 group_data[8]; +}; + +struct drm_unique { + __kernel_size_t unique_len; + char *unique; +}; + +struct drm_unique32 { + u32 unique_len; + u32 unique; +}; + +typedef struct drm_unique32 drm_unique32_t; + +struct drm_vblank_crtc_config { + int offdelay_ms; + bool disable_immediate; +}; + +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; + struct drm_vblank_crtc_config config; + bool enabled; + struct kthread_worker *worker; + struct list_head pending_work; + wait_queue_head_t work_wait_queue; +}; + +struct drm_vblank_work { + struct kthread_work base; + struct drm_vblank_crtc *vblank; + u64 count; + int cancelling; + struct list_head node; +}; + +struct drm_version { + int version_major; + int version_minor; + int version_patchlevel; + __kernel_size_t name_len; + char *name; + __kernel_size_t date_len; + char *date; + __kernel_size_t desc_len; + char *desc; +}; + +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_vma_offset_file { + struct rb_node vm_rb; + struct drm_file *vm_tag; + long unsigned int vm_count; +}; + +struct drm_vma_offset_manager { + rwlock_t vm_lock; + struct drm_mm vm_addr_space_mm; +}; + +struct drm_wait_vblank_request { + enum drm_vblank_seq_type type; + unsigned int sequence; + long unsigned int signal; +}; + +struct drm_wait_vblank_reply { + enum drm_vblank_seq_type type; + unsigned int sequence; + long int tval_sec; + long int tval_usec; +}; + +union drm_wait_vblank { + struct drm_wait_vblank_request request; + struct drm_wait_vblank_reply reply; +}; + +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_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; + long unsigned int fence_seqno; + char timeline_name[32]; +}; + +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; +}; + +typedef void (*drmres_release_t)(struct drm_device *, void *); + +struct drmres_node { + struct list_head entry; + drmres_release_t release; + const char *name; + size_t size; +}; + +struct drmres { + struct drmres_node node; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u8 data[0]; +}; + +struct drop_reason_list { + const char * const *reasons; + size_t n_reasons; +}; + +struct pci_driver; + +struct pci_device_id; + +struct drv_dev_and_id { + struct pci_driver *drv; + struct pci_dev *dev; + const struct pci_device_id *id; +}; + +struct dsa_bridge { + struct net_device *dev; + unsigned int num; + bool tx_fwd_offload; + refcount_t refcount; +}; + +struct dsa_chip_data { + struct device *host_dev; + int sw_addr; + struct device *netdev[12]; + int eeprom_len; + struct device_node *of_node; + char *port_names[12]; + struct device_node *port_dn[12]; + s8 rtable[4]; +}; + +struct dsa_lag { + struct net_device *dev; + unsigned int id; + struct mutex fdb_lock; + struct list_head fdbs; + refcount_t refcount; +}; + +struct dsa_port; + +struct dsa_db { + enum dsa_db_type type; + union { + const struct dsa_port *dp; + struct dsa_lag lag; + struct dsa_bridge bridge; + }; +}; + +struct dsa_switch; + +struct dsa_device_ops { + struct sk_buff * (*xmit)(struct sk_buff *, struct net_device *); + struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); + void (*flow_dissect)(const struct sk_buff *, __be16 *, int *); + int (*connect)(struct dsa_switch *); + void (*disconnect)(struct dsa_switch *); + unsigned int needed_headroom; + unsigned int needed_tailroom; + const char *name; + enum dsa_tag_protocol proto; + bool promisc_on_conduit; +}; + +struct dsa_mall_mirror_tc_entry { + u8 to_local_port; + bool ingress; +}; + +struct dsa_mall_policer_tc_entry { + u32 burst; + u64 rate_bytes_per_sec; +}; + +struct dsa_platform_data { + struct device *netdev; + struct net_device *of_netdev; + int nr_chips; + struct dsa_chip_data *chip; +}; + +struct phylink_link_state; + +struct phylink_config { + struct device *dev; + enum phylink_op_type type; + bool poll_fixed_state; + bool mac_managed_pm; + bool mac_requires_rxc; + bool default_an_inband; + bool eee_rx_clk_stop_enable; + void (*get_fixed_state)(struct phylink_config *, struct phylink_link_state *); + long unsigned int supported_interfaces[1]; + long unsigned int lpi_interfaces[1]; + long unsigned int mac_capabilities; + long unsigned int lpi_capabilities; + u32 lpi_timer_default; + bool eee_enabled_default; +}; + +struct dsa_switch_tree; + +struct phylink; + +struct ethtool_ops; + +struct dsa_port { + union { + struct net_device *conduit; + struct net_device *user; + }; + const struct dsa_device_ops *tag_ops; + struct dsa_switch_tree *dst; + struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); + struct dsa_switch *ds; + unsigned int index; + enum { + DSA_PORT_TYPE_UNUSED = 0, + DSA_PORT_TYPE_CPU = 1, + DSA_PORT_TYPE_DSA = 2, + DSA_PORT_TYPE_USER = 3, + } type; + const char *name; + struct dsa_port *cpu_dp; + u8 mac[6]; + u8 stp_state; + u8 vlan_filtering: 1; + u8 learning: 1; + u8 lag_tx_enabled: 1; + u8 conduit_admin_up: 1; + u8 conduit_oper_up: 1; + u8 cpu_port_in_lag: 1; + u8 setup: 1; + struct device_node *dn; + unsigned int ageing_time; + struct dsa_bridge *bridge; + struct devlink_port devlink_port; + struct phylink *pl; + struct phylink_config pl_config; + struct dsa_lag *lag; + struct net_device *hsr_dev; + struct list_head list; + const struct ethtool_ops *orig_ethtool_ops; + struct mutex addr_lists_lock; + struct list_head fdbs; + struct list_head mdbs; + struct mutex vlans_lock; + union { + struct list_head vlans; + struct list_head user_vlans; + }; +}; + +struct kernel_hwtstamp_config; + +struct dsa_stubs { + int (*conduit_hwtstamp_validate)(struct net_device *, const struct kernel_hwtstamp_config *, struct netlink_ext_ack *); +}; + +struct dsa_8021q_context; + +struct dsa_switch_ops; + +struct phylink_mac_ops; + +struct dsa_switch { + struct device *dev; + struct dsa_switch_tree *dst; + unsigned int index; + u32 setup: 1; + u32 vlan_filtering_is_global: 1; + u32 needs_standalone_vlan_filtering: 1; + u32 configure_vlan_while_not_filtering: 1; + u32 untag_bridge_pvid: 1; + u32 untag_vlan_aware_bridge_pvid: 1; + u32 assisted_learning_on_cpu_port: 1; + u32 vlan_filtering: 1; + u32 mtu_enforcement_ingress: 1; + u32 fdb_isolation: 1; + u32 dscp_prio_mapping_is_global: 1; + struct notifier_block nb; + void *priv; + void *tagger_data; + struct dsa_chip_data *cd; + const struct dsa_switch_ops *ops; + const struct phylink_mac_ops *phylink_mac_ops; + u32 phys_mii_mask; + struct mii_bus *user_mii_bus; + unsigned int ageing_time_min; + unsigned int ageing_time_max; + struct dsa_8021q_context *tag_8021q_ctx; + struct devlink *devlink; + unsigned int num_tx_queues; + unsigned int num_lag_ids; + unsigned int max_num_bridges; + unsigned int num_ports; +}; + +typedef int dsa_fdb_dump_cb_t(const unsigned char *, u16, bool, void *); + +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_ts_stats; + +struct rtnl_link_stats64; + +struct ethtool_pause_stats; + +struct ethtool_test; + +struct ethtool_wolinfo; + +struct kernel_ethtool_ts_info; + +struct ethtool_mm_state; + +struct ethtool_mm_cfg; + +struct ethtool_mm_stats; + +struct phy_device; + +struct ethtool_keee; + +struct ethtool_eeprom; + +struct ethtool_regs; + +struct netdev_notifier_changeupper_info; + +struct switchdev_mst_state; + +struct switchdev_brport_flags; + +struct switchdev_obj_port_vlan; + +struct switchdev_vlan_msti; + +struct switchdev_obj_port_mdb; + +struct ethtool_rxnfc; + +struct flow_cls_offload; + +struct netdev_lag_upper_info; + +struct ifreq; + +struct switchdev_obj_mrp; + +struct switchdev_obj_ring_role_mrp; + +struct dsa_switch_ops { + enum dsa_tag_protocol (*get_tag_protocol)(struct dsa_switch *, int, enum dsa_tag_protocol); + int (*change_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); + int (*connect_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); + int (*port_change_conduit)(struct dsa_switch *, int, struct net_device *, struct netlink_ext_ack *); + int (*setup)(struct dsa_switch *); + void (*teardown)(struct dsa_switch *); + int (*port_setup)(struct dsa_switch *, int); + void (*port_teardown)(struct dsa_switch *, int); + u32 (*get_phy_flags)(struct dsa_switch *, int); + int (*phy_read)(struct dsa_switch *, int, int); + int (*phy_write)(struct dsa_switch *, int, int, u16); + void (*phylink_get_caps)(struct dsa_switch *, int, struct phylink_config *); + void (*phylink_fixed_state)(struct dsa_switch *, int, struct phylink_link_state *); + void (*get_strings)(struct dsa_switch *, int, u32, uint8_t *); + void (*get_ethtool_stats)(struct dsa_switch *, int, uint64_t *); + int (*get_sset_count)(struct dsa_switch *, int, int); + void (*get_ethtool_phy_stats)(struct dsa_switch *, int, uint64_t *); + void (*get_eth_phy_stats)(struct dsa_switch *, int, struct ethtool_eth_phy_stats *); + void (*get_eth_mac_stats)(struct dsa_switch *, int, struct ethtool_eth_mac_stats *); + void (*get_eth_ctrl_stats)(struct dsa_switch *, int, struct ethtool_eth_ctrl_stats *); + void (*get_rmon_stats)(struct dsa_switch *, int, struct ethtool_rmon_stats *, const struct ethtool_rmon_hist_range **); + void (*get_ts_stats)(struct dsa_switch *, int, struct ethtool_ts_stats *); + void (*get_stats64)(struct dsa_switch *, int, struct rtnl_link_stats64 *); + void (*get_pause_stats)(struct dsa_switch *, int, struct ethtool_pause_stats *); + void (*self_test)(struct dsa_switch *, int, struct ethtool_test *, u64 *); + void (*get_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); + int (*set_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); + int (*get_ts_info)(struct dsa_switch *, int, struct kernel_ethtool_ts_info *); + int (*get_mm)(struct dsa_switch *, int, struct ethtool_mm_state *); + int (*set_mm)(struct dsa_switch *, int, struct ethtool_mm_cfg *, struct netlink_ext_ack *); + void (*get_mm_stats)(struct dsa_switch *, int, struct ethtool_mm_stats *); + int (*port_get_default_prio)(struct dsa_switch *, int); + int (*port_set_default_prio)(struct dsa_switch *, int, u8); + int (*port_get_dscp_prio)(struct dsa_switch *, int, u8); + int (*port_add_dscp_prio)(struct dsa_switch *, int, u8, u8); + int (*port_del_dscp_prio)(struct dsa_switch *, int, u8, u8); + int (*port_set_apptrust)(struct dsa_switch *, int, const u8 *, int); + int (*port_get_apptrust)(struct dsa_switch *, int, u8 *, int *); + int (*suspend)(struct dsa_switch *); + int (*resume)(struct dsa_switch *); + int (*port_enable)(struct dsa_switch *, int, struct phy_device *); + void (*port_disable)(struct dsa_switch *, int); + int (*port_set_mac_address)(struct dsa_switch *, int, const unsigned char *); + struct dsa_port * (*preferred_default_local_cpu_port)(struct dsa_switch *); + bool (*support_eee)(struct dsa_switch *, int); + int (*set_mac_eee)(struct dsa_switch *, int, struct ethtool_keee *); + int (*get_eeprom_len)(struct dsa_switch *); + int (*get_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); + int (*set_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); + int (*get_regs_len)(struct dsa_switch *, int); + void (*get_regs)(struct dsa_switch *, int, struct ethtool_regs *, void *); + int (*port_prechangeupper)(struct dsa_switch *, int, struct netdev_notifier_changeupper_info *); + int (*set_ageing_time)(struct dsa_switch *, unsigned int); + int (*port_bridge_join)(struct dsa_switch *, int, struct dsa_bridge, bool *, struct netlink_ext_ack *); + void (*port_bridge_leave)(struct dsa_switch *, int, struct dsa_bridge); + void (*port_stp_state_set)(struct dsa_switch *, int, u8); + int (*port_mst_state_set)(struct dsa_switch *, int, const struct switchdev_mst_state *); + void (*port_fast_age)(struct dsa_switch *, int); + int (*port_vlan_fast_age)(struct dsa_switch *, int, u16); + int (*port_pre_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); + int (*port_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); + void (*port_set_host_flood)(struct dsa_switch *, int, bool, bool); + int (*port_vlan_filtering)(struct dsa_switch *, int, bool, struct netlink_ext_ack *); + int (*port_vlan_add)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *, struct netlink_ext_ack *); + int (*port_vlan_del)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *); + int (*vlan_msti_set)(struct dsa_switch *, struct dsa_bridge, const struct switchdev_vlan_msti *); + int (*port_fdb_add)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); + int (*port_fdb_del)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); + int (*port_fdb_dump)(struct dsa_switch *, int, dsa_fdb_dump_cb_t *, void *); + int (*lag_fdb_add)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); + int (*lag_fdb_del)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); + int (*port_mdb_add)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); + int (*port_mdb_del)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); + int (*get_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *, u32 *); + int (*set_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *); + int (*cls_flower_add)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*cls_flower_del)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*cls_flower_stats)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*port_mirror_add)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *, bool, struct netlink_ext_ack *); + void (*port_mirror_del)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *); + int (*port_policer_add)(struct dsa_switch *, int, struct dsa_mall_policer_tc_entry *); + void (*port_policer_del)(struct dsa_switch *, int); + int (*port_setup_tc)(struct dsa_switch *, int, enum tc_setup_type, void *); + int (*crosschip_bridge_join)(struct dsa_switch *, int, int, int, struct dsa_bridge, struct netlink_ext_ack *); + void (*crosschip_bridge_leave)(struct dsa_switch *, int, int, int, struct dsa_bridge); + int (*crosschip_lag_change)(struct dsa_switch *, int, int); + int (*crosschip_lag_join)(struct dsa_switch *, int, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); + int (*crosschip_lag_leave)(struct dsa_switch *, int, int, struct dsa_lag); + int (*port_hwtstamp_get)(struct dsa_switch *, int, struct ifreq *); + int (*port_hwtstamp_set)(struct dsa_switch *, int, struct ifreq *); + void (*port_txtstamp)(struct dsa_switch *, int, struct sk_buff *); + bool (*port_rxtstamp)(struct dsa_switch *, int, struct sk_buff *, unsigned int); + int (*devlink_param_get)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); + int (*devlink_param_set)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); + int (*devlink_info_get)(struct dsa_switch *, struct devlink_info_req *, struct netlink_ext_ack *); + int (*devlink_sb_pool_get)(struct dsa_switch *, unsigned int, u16, struct devlink_sb_pool_info *); + int (*devlink_sb_pool_set)(struct dsa_switch *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *); + int (*devlink_sb_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *); + int (*devlink_sb_port_pool_set)(struct dsa_switch *, int, unsigned int, u16, u32, struct netlink_ext_ack *); + int (*devlink_sb_tc_pool_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *); + int (*devlink_sb_tc_pool_bind_set)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *); + int (*devlink_sb_occ_snapshot)(struct dsa_switch *, unsigned int); + int (*devlink_sb_occ_max_clear)(struct dsa_switch *, unsigned int); + int (*devlink_sb_occ_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *, u32 *); + int (*devlink_sb_occ_tc_port_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *); + int (*port_change_mtu)(struct dsa_switch *, int, int); + int (*port_max_mtu)(struct dsa_switch *, int); + int (*port_lag_change)(struct dsa_switch *, int); + int (*port_lag_join)(struct dsa_switch *, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); + int (*port_lag_leave)(struct dsa_switch *, int, struct dsa_lag); + int (*port_hsr_join)(struct dsa_switch *, int, struct net_device *, struct netlink_ext_ack *); + int (*port_hsr_leave)(struct dsa_switch *, int, struct net_device *); + int (*port_mrp_add)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); + int (*port_mrp_del)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); + int (*port_mrp_add_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); + int (*port_mrp_del_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); + int (*tag_8021q_vlan_add)(struct dsa_switch *, int, u16, u16); + int (*tag_8021q_vlan_del)(struct dsa_switch *, int, u16); + void (*conduit_state_change)(struct dsa_switch *, const struct net_device *, bool); +}; + +struct dsa_switch_tree { + struct list_head list; + struct list_head ports; + struct raw_notifier_head nh; + unsigned int index; + struct kref refcount; + struct dsa_lag **lags; + const struct dsa_device_ops *tag_ops; + enum dsa_tag_protocol default_proto; + bool setup; + struct dsa_platform_data *pd; + struct list_head rtable; + unsigned int lags_len; + unsigned int last_switch; +}; + +struct dsi_div_hw_data { + struct clk_hw hw; + u32 conf; + long unsigned int rate; + struct rzg2l_cpg_priv *priv; +}; + +struct dsm_output { + u16 status; + u8 function_specific_err; + u8 vendor_specific_err; + u32 state; +}; + +struct dst_cache_pcpu; + +struct dst_cache { + struct dst_cache_pcpu *cache; + long unsigned int reset_ts; +}; + +struct dst_cache_pcpu { + long unsigned int refresh_ts; + struct dst_entry *dst; + u32 cookie; + union { + struct in_addr in_saddr; + struct in6_addr in6_saddr; + }; +}; + +struct dst_ops; + +struct xfrm_state; + +struct uncached_list; + +struct lwtunnel_state; + +struct dst_entry { + struct net_device *dev; + struct dst_ops *ops; + long unsigned int _metrics; + long unsigned int expires; + struct xfrm_state *xfrm; + int (*input)(struct sk_buff *); + int (*output)(struct net *, struct sock *, struct sk_buff *); + short unsigned int flags; + short int obsolete; + short unsigned int header_len; + short unsigned int trailer_len; + rcuref_t __rcuref; + int __use; + long unsigned int lastuse; + struct callback_head callback_head; + short int error; + short int __pad; + __u32 tclassid; + netdevice_tracker dev_tracker; + struct list_head rt_uncached; + struct uncached_list *rt_uncached_list; + struct lwtunnel_state *lwtstate; +}; + +struct dst_metrics { + u32 metrics[17]; + refcount_t refcnt; +}; + +struct neighbour; + +struct dst_ops { + short unsigned int 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 *, long unsigned int); + void (*destroy)(struct dst_entry *); + void (*ifdown)(struct dst_entry *, struct net_device *); + void (*negative_advice)(struct sock *, 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 powercap_zone_ops; + +struct powercap_zone_constraint; + +struct powercap_zone { + int id; + char *name; + void *control_type_inst; + const struct powercap_zone_ops *ops; + struct device dev; + int const_id_cnt; + struct idr idr; + struct idr *parent_idr; + void *private_data; + struct attribute **zone_dev_attrs; + int zone_attr_count; + struct attribute_group dev_zone_attr_group; + const struct attribute_group *dev_attr_groups[2]; + bool allocated; + struct powercap_zone_constraint *constraints; +}; + +struct dtpm_ops; + +struct dtpm { + struct powercap_zone zone; + struct dtpm *parent; + struct list_head sibling; + struct list_head children; + struct dtpm_ops *ops; + long unsigned int flags; + u64 power_limit; + u64 power_max; + u64 power_min; + int weight; +}; + +struct dtpm_cpu { + struct dtpm dtpm; + struct freq_qos_request qos_req; + int cpu; +}; + +struct dtpm_node { + enum DTPM_NODE_TYPE type; + const char *name; + struct dtpm_node *parent; +}; + +struct dtpm_ops { + u64 (*set_power_uw)(struct dtpm *, u64); + u64 (*get_power_uw)(struct dtpm *); + int (*update_power_uw)(struct dtpm *); + void (*release)(struct dtpm *); +}; + +struct dtpm_subsys_ops { + const char *name; + int (*init)(void); + void (*exit)(void); + int (*setup)(struct dtpm *, struct device_node *); +}; + +struct dtsec_cfg { + u16 halfdup_retransmit; + u16 halfdup_coll_window; + bool tx_pad_crc; + u16 tx_pause_time; + bool ptp_tsu_en; + bool ptp_exception_en; + u32 preamble_len; + u32 rx_prepend; + u16 tx_pause_time_extd; + u16 maximum_frame; + u32 non_back_to_back_ipg1; + u32 non_back_to_back_ipg2; + u32 min_ifg_enforcement; + u32 back_to_back_ipg; +}; + +struct dtsec_regs { + u32 tsec_id; + u32 tsec_id2; + u32 ievent; + u32 imask; + u32 reserved0010[1]; + u32 ecntrl; + u32 ptv; + u32 tbipa; + u32 tmr_ctrl; + u32 tmr_pevent; + u32 tmr_pemask; + u32 reserved002c[5]; + u32 tctrl; + u32 reserved0044[3]; + u32 rctrl; + u32 reserved0054[11]; + u32 igaddr[8]; + u32 gaddr[8]; + u32 reserved00c0[16]; + u32 maccfg1; + u32 maccfg2; + u32 ipgifg; + u32 hafdup; + u32 maxfrm; + u32 reserved0114[10]; + u32 ifstat; + u32 macstnaddr1; + u32 macstnaddr2; + struct { + u32 exact_match1; + u32 exact_match2; + } macaddr[15]; + u32 reserved01c0[16]; + u32 tr64; + u32 tr127; + u32 tr255; + u32 tr511; + u32 tr1k; + u32 trmax; + u32 trmgv; + u32 rbyt; + u32 rpkt; + u32 rfcs; + u32 rmca; + u32 rbca; + u32 rxcf; + u32 rxpf; + u32 rxuo; + u32 raln; + u32 rflr; + u32 rcde; + u32 rcse; + u32 rund; + u32 rovr; + u32 rfrg; + u32 rjbr; + u32 rdrp; + u32 tbyt; + u32 tpkt; + u32 tmca; + u32 tbca; + u32 txpf; + u32 tdfr; + u32 tedf; + u32 tscl; + u32 tmcl; + u32 tlcl; + u32 txcl; + u32 tncl; + u32 reserved0290[1]; + u32 tdrp; + u32 tjbr; + u32 tfcs; + u32 txcf; + u32 tovr; + u32 tund; + u32 tfrg; + u32 car1; + u32 car2; + u32 cam1; + u32 cam2; + u32 reserved02c0[848]; +}; + +struct uart_8250_port; + +struct uart_8250_dma { + int (*tx_dma)(struct uart_8250_port *); + int (*rx_dma)(struct uart_8250_port *); + void (*prepare_tx_dma)(struct uart_8250_port *); + void (*prepare_rx_dma)(struct uart_8250_port *); + dma_filter_fn fn; + void *rx_param; + void *tx_param; + struct dma_slave_config rxconf; + struct dma_slave_config txconf; + struct dma_chan *rxchan; + struct dma_chan *txchan; + phys_addr_t rx_dma_addr; + phys_addr_t tx_dma_addr; + dma_addr_t rx_addr; + dma_addr_t tx_addr; + dma_cookie_t rx_cookie; + dma_cookie_t tx_cookie; + void *rx_buf; + size_t rx_size; + size_t tx_size; + unsigned char tx_running; + unsigned char tx_err; + unsigned char rx_running; +}; + +struct dw8250_port_data { + int line; + struct uart_8250_dma dma; + u32 cpr_value; + 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_value; + unsigned int quirks; +}; + +struct dw_apb_timer { + void *base; + long unsigned int freq; + int irq; +}; + +struct dw_apb_clock_event_device { + struct clock_event_device ced; + struct dw_apb_timer timer; + void (*eoi)(struct dw_apb_timer *); + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct dw_apb_clocksource { + struct dw_apb_timer timer; + struct clocksource cs; +}; + +struct dw_edma_region { + u64 paddr; + union { + void *mem; + void *io; + } vaddr; + size_t sz; +}; + +struct dw_edma; + +struct dw_edma_plat_ops; + +struct dw_edma_chip { + struct device *dev; + int nr_irqs; + const struct dw_edma_plat_ops *ops; + u32 flags; + void *reg_base; + u16 ll_wr_cnt; + u16 ll_rd_cnt; + struct dw_edma_region ll_region_wr[8]; + struct dw_edma_region ll_region_rd[8]; + struct dw_edma_region dt_region_wr[8]; + struct dw_edma_region dt_region_rd[8]; + enum dw_edma_map_format mf; + struct dw_edma *dw; +}; + +struct dw_edma_plat_ops { + int (*irq_vector)(struct device *, unsigned int); + u64 (*pci_address)(struct device *, phys_addr_t); +}; + +struct rt_mutex_base { + raw_spinlock_t wait_lock; + struct rb_root_cached waiters; + struct task_struct *owner; +}; + +struct rt_mutex { + struct rt_mutex_base rtmutex; +}; + +struct i2c_algorithm; + +struct i2c_lock_operations; + +struct i2c_bus_recovery_info; + +struct i2c_adapter_quirks; + +struct i2c_adapter { + struct module *owner; + unsigned int class; + const struct i2c_algorithm *algo; + void *algo_data; + const struct i2c_lock_operations *lock_ops; + struct rt_mutex bus_lock; + struct rt_mutex mux_lock; + int timeout; + int retries; + struct device dev; + long unsigned int locked_flags; + int nr; + char name[48]; + struct completion dev_released; + struct mutex userspace_clients_lock; + struct list_head userspace_clients; + struct i2c_bus_recovery_info *bus_recovery_info; + const struct i2c_adapter_quirks *quirks; + struct irq_domain *host_notify_domain; + struct regulator *bus_regulator; + struct dentry *debugfs; + long unsigned int addrs_in_instantiation[2]; +}; + +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_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_msg; + +struct dw_i2c_dev { + struct device *dev; + struct regmap *map; + struct regmap *sysmap; + void *base; + void *ext; + struct completion cmd_complete; + struct clk *clk; + struct clk *pclk; + struct reset_control *rst; + struct i2c_client *slave; + u32 (*get_clk_rate_khz)(struct dw_i2c_dev *); + int cmd_err; + struct i2c_msg *msgs; + int msgs_num; + int msg_write_idx; + u32 tx_buf_len; + u8 *tx_buf; + int msg_read_idx; + u32 rx_buf_len; + u8 *rx_buf; + int msg_err; + unsigned int status; + unsigned int abort_source; + unsigned int sw_mask; + int irq; + u32 flags; + struct i2c_adapter adapter; + u32 functionality; + u32 master_cfg; + u32 slave_cfg; + unsigned int tx_fifo_depth; + unsigned int rx_fifo_depth; + int rx_outstanding; + struct i2c_timings timings; + u32 sda_hold_time; + u16 ss_hcnt; + u16 ss_lcnt; + u16 fs_hcnt; + u16 fs_lcnt; + u16 fp_hcnt; + u16 fp_lcnt; + u16 hs_hcnt; + u16 hs_lcnt; + int (*acquire_lock)(void); + void (*release_lock)(void); + int semaphore_idx; + bool shared_with_punit; + int (*init)(struct dw_i2c_dev *); + int (*set_sda_hold_time)(struct dw_i2c_dev *); + int mode; + struct i2c_bus_recovery_info rinfo; + u32 bus_capacitance_pF; + bool clk_freq_optimized; +}; + +struct dw_pcie_host_ops; + +struct pci_host_bridge; + +struct dw_pcie_rp { + bool has_msi_ctrl: 1; + bool cfg0_io_shared: 1; + u64 cfg0_base; + void *va_cfg0_base; + u32 cfg0_size; + resource_size_t io_base; + phys_addr_t io_bus_addr; + u32 io_size; + int irq; + const struct dw_pcie_host_ops *ops; + int msi_irq[8]; + struct irq_domain *irq_domain; + struct irq_domain *msi_domain; + dma_addr_t msi_data; + struct irq_chip *msi_irq_chip; + u32 num_vectors; + u32 irq_mask[8]; + struct pci_host_bridge *bridge; + raw_spinlock_t lock; + long unsigned int msi_irq_in_use[4]; + bool use_atu_msg; + int msg_atu_index; + struct resource *msg_res; + bool use_linkup_irq; +}; + +struct pci_epc; + +struct dw_pcie_ep_ops; + +struct dw_pcie_ep { + struct pci_epc *epc; + struct list_head func_list; + const struct dw_pcie_ep_ops *ops; + phys_addr_t phys_base; + size_t addr_size; + size_t page_size; + u8 bar_to_atu[6]; + phys_addr_t *outbound_addr; + long unsigned int *ib_window_map; + long unsigned int *ob_window_map; + void *msi_mem; + phys_addr_t msi_mem_phys; + struct pci_epf_bar *epf_bar[6]; +}; + +struct reset_control_bulk_data { + const char *id; + struct reset_control *rstc; +}; + +struct dw_pcie_ops; + +struct dw_pcie { + struct device *dev; + void *dbi_base; + resource_size_t dbi_phys_addr; + void *dbi_base2; + void *atu_base; + resource_size_t atu_phys_addr; + size_t atu_size; + u32 num_ib_windows; + u32 num_ob_windows; + u32 region_align; + u64 region_limit; + struct dw_pcie_rp pp; + struct dw_pcie_ep ep; + const struct dw_pcie_ops *ops; + u32 version; + u32 type; + long unsigned int caps; + int num_lanes; + int max_link_speed; + u8 n_fts[2]; + struct dw_edma_chip edma; + struct clk_bulk_data app_clks[3]; + struct clk_bulk_data core_clks[4]; + struct reset_control_bulk_data app_rsts[3]; + struct reset_control_bulk_data core_rsts[7]; + struct gpio_desc *pe_rst; + bool suspended; +}; + +struct dw_pcie_ep_func { + struct list_head list; + u8 func_no; + u8 msi_cap; + u8 msix_cap; +}; + +struct pci_epc_features; + +struct dw_pcie_ep_ops { + void (*pre_init)(struct dw_pcie_ep *); + void (*init)(struct dw_pcie_ep *); + int (*raise_irq)(struct dw_pcie_ep *, u8, unsigned int, u16); + const struct pci_epc_features * (*get_features)(struct dw_pcie_ep *); + unsigned int (*get_dbi_offset)(struct dw_pcie_ep *, u8); + unsigned int (*get_dbi2_offset)(struct dw_pcie_ep *, u8); +}; + +struct dw_pcie_host_ops { + int (*init)(struct dw_pcie_rp *); + void (*deinit)(struct dw_pcie_rp *); + void (*post_init)(struct dw_pcie_rp *); + int (*msi_init)(struct dw_pcie_rp *); + void (*pme_turn_off)(struct dw_pcie_rp *); +}; + +struct dw_pcie_ob_atu_cfg { + int index; + int type; + u8 func_no; + u8 code; + u8 routing; + u64 cpu_addr; + u64 pci_addr; + u64 size; +}; + +struct dw_pcie_ops { + u64 (*cpu_addr_fixup)(struct dw_pcie *, u64); + u32 (*read_dbi)(struct dw_pcie *, void *, u32, size_t); + void (*write_dbi)(struct dw_pcie *, void *, u32, size_t, u32); + void (*write_dbi2)(struct dw_pcie *, void *, u32, size_t, u32); + int (*link_up)(struct dw_pcie *); + enum dw_pcie_ltssm (*get_ltssm)(struct dw_pcie *); + int (*start_link)(struct dw_pcie *); + void (*stop_link)(struct dw_pcie *); +}; + +struct dw_plat_pcie { + struct dw_pcie *pci; + enum dw_pcie_device_mode mode; +}; + +struct dw_plat_pcie_of_data { + enum dw_pcie_device_mode mode; +}; + +struct usb_otg_caps { + u16 otg_rev; + bool hnp_support; + bool srp_support; + bool adp_support; +}; + +struct dwc2_core_params { + struct usb_otg_caps otg_caps; + u8 phy_type; + u8 speed; + u8 phy_utmi_width; + bool eusb2_disc; + bool phy_ulpi_ddr; + bool phy_ulpi_ext_vbus; + bool enable_dynamic_fifo; + bool en_multiple_tx_fifo; + bool i2c_enable; + bool acg_enable; + bool ulpi_fs_ls; + bool ts_dline; + bool reload_ctl; + bool uframe_sched; + bool external_id_pin_ctl; + int power_down; + bool no_clock_gating; + bool lpm; + bool lpm_clock_gating; + bool besl; + bool hird_threshold_en; + bool service_interval; + u8 hird_threshold; + bool activate_stm_fs_transceiver; + bool activate_stm_id_vb_detection; + bool activate_ingenic_overcurrent_detection; + bool ipg_isoc_en; + u16 max_packet_count; + u32 max_transfer_size; + u32 ahbcfg; + u32 ref_clk_per; + u16 sof_cnt_wkup_alert; + bool host_dma; + bool dma_desc_enable; + bool dma_desc_fs_enable; + bool host_support_fs_ls_low_power; + bool host_ls_low_power_phy_clk; + bool oc_disable; + u8 host_channels; + u16 host_rx_fifo_size; + u16 host_nperio_tx_fifo_size; + u16 host_perio_tx_fifo_size; + bool g_dma; + bool g_dma_desc; + u32 g_rx_fifo_size; + u32 g_np_tx_fifo_size; + u32 g_tx_fifo_size[16]; + bool change_speed_quirk; +}; + +struct dwc2_dma_desc { + u32 status; + u32 buf; +}; + +struct dwc2_dregs_backup { + u32 dcfg; + u32 dctl; + u32 daintmsk; + u32 diepmsk; + u32 doepmsk; + u32 diepctl[16]; + u32 dieptsiz[16]; + u32 diepdma[16]; + u32 doepctl[16]; + u32 doeptsiz[16]; + u32 doepdma[16]; + u32 dtxfsiz[16]; + bool valid; +}; + +struct dwc2_gregs_backup { + u32 gotgctl; + u32 gintmsk; + u32 gahbcfg; + u32 gusbcfg; + u32 grxfsiz; + u32 gnptxfsiz; + u32 gi2cctl; + u32 glpmcfg; + u32 pcgcctl; + u32 pcgcctl1; + u32 gdfifocfg; + u32 gpwrdn; + bool valid; +}; + +union dwc2_hcd_internal_flags { + u32 d32; + struct { + unsigned int port_connect_status_change: 1; + unsigned int port_connect_status: 1; + unsigned int port_reset_change: 1; + unsigned int port_enable_change: 1; + unsigned int port_suspend_change: 1; + unsigned int port_over_current_change: 1; + unsigned int port_l1_change: 1; + unsigned int reserved: 25; + } b; +}; + +struct dwc2_hcd_iso_packet_desc { + u32 offset; + u32 length; + u32 actual_length; + u32 status; +}; + +struct dwc2_hcd_pipe_info { + u8 dev_addr; + u8 ep_num; + u8 pipe_type; + u8 pipe_dir; + u16 maxp; + u16 maxp_mult; +}; + +struct dwc2_qtd; + +struct dwc2_hcd_urb { + void *priv; + struct dwc2_qtd *qtd; + void *buf; + dma_addr_t dma; + void *setup_packet; + dma_addr_t setup_dma; + u32 length; + u32 actual_length; + u32 status; + u32 error_count; + u32 packet_count; + u32 flags; + u16 interval; + struct dwc2_hcd_pipe_info pipe_info; + struct dwc2_hcd_iso_packet_desc iso_descs[0]; +}; + +struct dwc2_qh; + +struct dwc2_host_chan { + u8 hc_num; + unsigned int dev_addr: 7; + unsigned int ep_num: 4; + unsigned int ep_is_in: 1; + unsigned int speed: 4; + unsigned int ep_type: 2; + int: 6; + unsigned int max_packet: 11; + unsigned int data_pid_start: 2; + unsigned int multi_count: 2; + u8 *xfer_buf; + dma_addr_t xfer_dma; + dma_addr_t align_buf; + u32 xfer_len; + u32 xfer_count; + u16 start_pkt_count; + u8 xfer_started; + u8 do_ping; + u8 error_state; + u8 halt_on_queue; + u8 halt_pending; + u8 do_split; + u8 complete_split; + u8 hub_addr; + u8 hub_port; + u8 xact_pos; + u8 requests; + u8 schinfo; + u16 ntd; + enum dwc2_halt_status halt_status; + u32 hcint; + struct dwc2_qh *qh; + struct list_head hc_list_entry; + dma_addr_t desc_list_addr; + u32 desc_list_sz; + struct list_head split_order_list_entry; +}; + +struct dwc2_hregs_backup { + u32 hcfg; + u32 hflbaddr; + u32 haintmsk; + u32 hcchar[16]; + u32 hcsplt[16]; + u32 hcintmsk[16]; + u32 hctsiz[16]; + u32 hcidma[16]; + u32 hcidmab[16]; + u32 hprt0; + u32 hfir; + u32 hptxfsiz; + bool valid; +}; + +struct dwc2_hs_transfer_time { + u32 start_schedule_us; + u16 duration_us; +}; + +struct dwc2_hw_params { + unsigned int op_mode: 3; + unsigned int arch: 2; + unsigned int dma_desc_enable: 1; + unsigned int enable_dynamic_fifo: 1; + unsigned int en_multiple_tx_fifo: 1; + unsigned int rx_fifo_size: 16; + int: 8; + unsigned int host_nperio_tx_fifo_size: 16; + unsigned int dev_nperio_tx_fifo_size: 16; + unsigned int host_perio_tx_fifo_size: 16; + unsigned int nperio_tx_q_depth: 3; + unsigned int host_perio_tx_q_depth: 3; + unsigned int dev_token_q_depth: 5; + int: 5; + unsigned int max_transfer_size: 26; + long: 6; + unsigned int max_packet_count: 11; + unsigned int host_channels: 5; + unsigned int hs_phy_type: 2; + unsigned int fs_phy_type: 2; + unsigned int i2c_enable: 1; + unsigned int acg_enable: 1; + unsigned int num_dev_ep: 4; + unsigned int num_dev_in_eps: 4; + int: 2; + unsigned int num_dev_perio_in_ep: 4; + unsigned int total_fifo_size: 16; + unsigned int power_optimized: 1; + unsigned int hibernation: 1; + unsigned int utmi_phy_data_width: 2; + unsigned int lpm_mode: 1; + unsigned int ipg_isoc_en: 1; + unsigned int service_interval_mode: 1; + u32 snpsid; + u32 dev_ep_dirs; + u32 g_tx_fifo_size[16]; +}; + +struct regulator_bulk_data { + const char *supply; + struct regulator *consumer; + int init_load_uA; + int ret; +}; + +struct usb_role_switch; + +struct usb_phy; + +struct dwc2_hsotg_plat; + +struct dwc2_hsotg { + struct device *dev; + void *regs; + struct dwc2_hw_params hw_params; + struct dwc2_core_params params; + enum usb_otg_state op_state; + enum usb_dr_mode dr_mode; + struct usb_role_switch *role_sw; + enum usb_dr_mode role_sw_default_mode; + unsigned int hcd_enabled: 1; + unsigned int gadget_enabled: 1; + unsigned int ll_hw_enabled: 1; + unsigned int hibernated: 1; + unsigned int in_ppd: 1; + bool bus_suspended; + unsigned int reset_phy_on_wake: 1; + unsigned int need_phy_for_wake: 1; + unsigned int phy_off_for_suspend: 1; + u16 frame_number; + struct phy *phy; + struct usb_phy *uphy; + struct dwc2_hsotg_plat *plat; + struct regulator_bulk_data supplies[2]; + struct regulator *vbus_supply; + struct regulator *usb33d; + spinlock_t lock; + void *priv; + int irq; + struct clk *clk; + struct clk *utmi_clk; + struct reset_control *reset; + struct reset_control *reset_ecc; + unsigned int queuing_high_bandwidth: 1; + unsigned int srp_success: 1; + struct workqueue_struct *wq_otg; + struct work_struct wf_otg; + struct timer_list wkp_timer; + enum dwc2_lx_state lx_state; + struct dwc2_gregs_backup gr_backup; + struct dwc2_dregs_backup dr_backup; + struct dwc2_hregs_backup hr_backup; + struct dentry *debug_root; + struct debugfs_regset32 *regset; + bool needs_byte_swap; + union dwc2_hcd_internal_flags flags; + struct list_head non_periodic_sched_inactive; + struct list_head non_periodic_sched_waiting; + struct list_head non_periodic_sched_active; + struct list_head *non_periodic_qh_ptr; + struct list_head periodic_sched_inactive; + struct list_head periodic_sched_ready; + struct list_head periodic_sched_assigned; + struct list_head periodic_sched_queued; + struct list_head split_order; + u16 periodic_usecs; + long unsigned int hs_periodic_bitmap[13]; + u16 periodic_qh_count; + bool new_connection; + u16 last_frame_num; + struct list_head free_hc_list; + int periodic_channels; + int non_periodic_channels; + int available_host_channels; + struct dwc2_host_chan *hc_ptr_array[16]; + u8 *status_buf; + dma_addr_t status_buf_dma; + struct delayed_work start_work; + struct delayed_work reset_work; + struct work_struct phy_reset_work; + u8 otg_port; + u32 *frame_list; + dma_addr_t frame_list_dma; + u32 frame_list_sz; + struct kmem_cache *desc_gen_cache; + struct kmem_cache *desc_hsisoc_cache; + struct kmem_cache *unaligned_cache; +}; + +struct dwc2_hsotg_plat { + enum dwc2_hsotg_dmamode dma; + unsigned int is_osc: 1; + int phy_type; + int (*phy_init)(struct platform_device *, int); + int (*phy_exit)(struct platform_device *, int); +}; + +struct dwc2_tt; + +struct dwc2_qh { + struct dwc2_hsotg *hsotg; + u8 ep_type; + u8 ep_is_in; + u16 maxp; + u16 maxp_mult; + u8 dev_speed; + u8 data_toggle; + u8 ping_state; + u8 do_split; + u8 td_first; + u8 td_last; + u16 host_us; + u16 device_us; + u16 host_interval; + u16 device_interval; + u16 next_active_frame; + u16 start_active_frame; + s16 num_hs_transfers; + struct dwc2_hs_transfer_time hs_transfers[8]; + u32 ls_start_schedule_slice; + u16 ntd; + u8 *dw_align_buf; + dma_addr_t dw_align_buf_dma; + struct list_head qtd_list; + struct dwc2_host_chan *channel; + struct list_head qh_list_entry; + struct dwc2_dma_desc *desc_list; + dma_addr_t desc_list_dma; + u32 desc_list_sz; + u32 *n_bytes; + struct timer_list unreserve_timer; + struct hrtimer wait_timer; + struct dwc2_tt *dwc_tt; + int ttport; + unsigned int tt_buffer_dirty: 1; + unsigned int unreserve_pending: 1; + unsigned int schedule_low_speed: 1; + unsigned int want_wait: 1; + unsigned int wait_timer_cancel: 1; +}; + +struct dwc2_qtd { + enum dwc2_control_phase control_phase; + u8 in_process; + u8 data_toggle; + u8 complete_split; + u8 isoc_split_pos; + u16 isoc_frame_index; + u16 isoc_split_offset; + u16 isoc_td_last; + u16 isoc_td_first; + u32 ssplit_out_xfer_count; + u8 error_count; + u8 n_desc; + u16 isoc_frame_index_last; + u16 num_naks; + struct dwc2_hcd_urb *urb; + struct dwc2_qh *qh; + struct list_head qtd_list_entry; +}; + +struct usb_tt; + +struct dwc2_tt { + int refcount; + struct usb_tt *usb_tt; + long unsigned int periodic_bitmaps[0]; +}; + +struct dx_countlimit { + __le16 limit; + __le16 count; +}; + +struct dx_entry { + __le32 hash; + __le32 block; +}; + +struct dx_frame { + struct buffer_head *bh; + struct dx_entry *entries; + struct dx_entry *at; +}; + +struct dx_hash_info { + u32 hash; + u32 minor_hash; + int hash_version; + u32 *seed; +}; + +struct dx_map_entry { + u32 hash; + u16 offs; + u16 size; +}; + +struct fake_dirent { + __le32 inode; + __le16 rec_len; + u8 name_len; + u8 file_type; +}; + +struct dx_node { + struct fake_dirent fake; + struct dx_entry entries[0]; +}; + +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_tail { + u32 dt_reserved; + __le32 dt_checksum; +}; + +struct dyn_arch_ftrace {}; + +struct dyn_event_operations; + +struct dyn_event { + struct list_head list; + struct dyn_event_operations *ops; +}; + +struct dyn_event_operations { + struct list_head list; + int (*create)(const char *); + int (*show)(struct seq_file *, struct dyn_event *); + bool (*is_busy)(struct dyn_event *); + int (*free)(struct dyn_event *); + bool (*match)(const char *, const char *, int, const char **, struct dyn_event *); +}; + +struct dyn_ftrace { + long unsigned int ip; + long unsigned int flags; + struct dyn_arch_ftrace arch; +}; + +struct dynevent_arg { + const char *str; + char separator; +}; + +struct dynevent_arg_pair { + const char *lhs; + const char *rhs; + char operator; + char separator; +}; + +struct seq_buf { + char *buffer; + size_t size; + size_t len; +}; + +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 usb_device; + +struct each_dev_arg { + void *data; + int (*fn)(struct usb_device *, void *); +}; + +struct uart_icount { + __u32 cts; + __u32 dsr; + __u32 rng; + __u32 dcd; + __u32 rx; + __u32 tx; + __u32 frame; + __u32 overrun; + __u32 parity; + __u32 brk; + __u32 buf_overrun; +}; + +struct 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 serial_iso7816 { + __u32 flags; + __u32 tg; + __u32 sc_fi; + __u32 sc_di; + __u32 clk; + __u32 reserved[5]; +}; + +struct ktermios; + +struct uart_state; + +struct uart_ops; + +struct serial_port_device; + +struct uart_port { + spinlock_t lock; + long unsigned int iobase; + unsigned char *membase; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + void (*set_mctrl)(struct uart_port *, unsigned int); + unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); + void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); + int (*startup)(struct uart_port *); + void (*shutdown)(struct uart_port *); + void (*throttle)(struct uart_port *); + void (*unthrottle)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); + int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); + int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); + unsigned int ctrl_id; + unsigned int port_id; + unsigned int irq; + long unsigned int irqflags; + unsigned int uartclk; + unsigned int fifosize; + unsigned char x_char; + unsigned char regshift; + unsigned char iotype; + unsigned char quirks; + unsigned int read_status_mask; + unsigned int ignore_status_mask; + struct uart_state *state; + struct uart_icount icount; + struct console *cons; + upf_t flags; + upstat_t status; + bool hw_stopped; + unsigned int mctrl; + unsigned int frame_time; + unsigned int type; + const struct uart_ops *ops; + unsigned int custom_divisor; + unsigned int line; + unsigned int minor; + resource_size_t mapbase; + resource_size_t mapsize; + struct device *dev; + struct serial_port_device *port_dev; + long unsigned int sysrq; + u8 sysrq_ch; + unsigned char has_sysrq; + unsigned char sysrq_seq; + unsigned char hub6; + unsigned char suspended; + unsigned char console_reinit; + const char *name; + struct attribute_group *attr_group; + const struct attribute_group **tty_groups; + struct serial_rs485 rs485; + struct serial_rs485 rs485_supported; + struct gpio_desc *rs485_term_gpio; + struct gpio_desc *rs485_rx_during_tx_gpio; + struct serial_iso7816 iso7816; + void *private_data; +}; + +struct earlycon_device { + struct console *con; + 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 ebi2_xmem_prop { + const char *prop; + u32 max; + bool slowreg; + u16 shift; +}; + +struct ebitmap_node { + struct ebitmap_node *next; + long unsigned int maps[6]; + u32 startbit; +}; + +struct ec_host_request { + uint8_t struct_version; + uint8_t checksum; + uint16_t command; + uint8_t command_version; + uint8_t reserved; + uint16_t data_len; +}; + +struct ec_motion_sense_activity { + uint8_t sensor_num; + uint8_t activity; + uint8_t enable; + uint8_t reserved; + uint16_t parameters[3]; +}; + +struct ec_params_get_cmd_versions { + uint8_t cmd; +}; + +struct ec_params_get_cmd_versions_v1 { + uint16_t cmd; +}; + +struct ec_params_hello { + uint32_t in_data; +}; + +struct ec_params_motion_sense { + uint8_t cmd; + union { + struct { + uint8_t max_sensor_count; + } dump; + struct { + int16_t data; + } kb_wake_angle; + struct { + uint8_t sensor_num; + } info; + struct { + uint8_t sensor_num; + } info_3; + struct { + uint8_t sensor_num; + } data; + struct { + uint8_t sensor_num; + } fifo_flush; + struct { + uint8_t sensor_num; + } perform_calib; + struct { + uint8_t sensor_num; + } list_activities; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } ec_rate; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } sensor_odr; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } sensor_range; + struct { + uint8_t sensor_num; + uint16_t flags; + int16_t temp; + int16_t offset[3]; + } __attribute__((packed)) sensor_offset; + struct { + uint8_t sensor_num; + uint16_t flags; + int16_t temp; + uint16_t scale[3]; + } __attribute__((packed)) sensor_scale; + struct { + uint32_t max_data_vector; + } fifo_read; + struct ec_motion_sense_activity set_activity; + struct { + int8_t enable; + } fifo_int_enable; + struct { + uint8_t sensor_id; + uint8_t spoof_enable; + uint8_t reserved; + int16_t components[3]; + } __attribute__((packed)) spoof; + struct { + int16_t lid_angle; + int16_t hys_degree; + } tablet_mode_threshold; + }; +} __attribute__((packed)); + +struct ec_params_read_memmap { + uint8_t offset; + uint8_t size; +}; + +struct ec_params_rwsig_action { + uint32_t action; +}; + +struct ec_response_get_cmd_versions { + uint32_t version_mask; +}; + +struct ec_response_get_comms_status { + uint32_t flags; +}; + +struct ec_response_get_protocol_info { + uint32_t protocol_versions; + uint16_t max_request_packet_size; + uint16_t max_response_packet_size; + uint32_t flags; +}; + +struct ec_response_hello { + uint32_t out_data; +}; + +struct ec_response_host_event_mask { + uint32_t mask; +}; + +struct ec_response_motion_sensor_data { + uint8_t flags; + uint8_t sensor_num; + union { + int16_t data[3]; + struct { + uint16_t reserved; + uint32_t timestamp; + } __attribute__((packed)); + struct { + uint8_t activity; + uint8_t state; + int16_t add_info[2]; + }; + }; +}; + +struct ec_response_motion_sense_fifo_data { + uint32_t number_data; + struct ec_response_motion_sensor_data data[0]; +}; + +struct ec_response_motion_sense { + union { + struct { + uint8_t module_flags; + uint8_t sensor_count; + struct { + struct {} __empty_sensor; + struct ec_response_motion_sensor_data sensor[0]; + }; + } dump; + struct { + uint8_t type; + uint8_t location; + uint8_t chip; + } info; + struct { + uint8_t type; + uint8_t location; + uint8_t chip; + uint32_t min_frequency; + uint32_t max_frequency; + uint32_t fifo_max_event_count; + } info_3; + struct ec_response_motion_sensor_data data; + struct { + int32_t ret; + } ec_rate; + struct { + int32_t ret; + } sensor_odr; + struct { + int32_t ret; + } sensor_range; + struct { + int32_t ret; + } kb_wake_angle; + struct { + int32_t ret; + } fifo_int_enable; + struct { + int32_t ret; + } spoof; + struct { + int16_t temp; + int16_t offset[3]; + } sensor_offset; + struct { + int16_t temp; + int16_t offset[3]; + } perform_calib; + struct { + int16_t temp; + uint16_t scale[3]; + } sensor_scale; + struct ec_response_motion_sense_fifo_info fifo_info; + struct ec_response_motion_sense_fifo_info fifo_flush; + struct ec_response_motion_sense_fifo_data fifo_read; + struct { + uint16_t reserved; + uint32_t enabled; + uint32_t disabled; + } __attribute__((packed)) list_activities; + struct { + uint16_t value; + } lid_angle; + struct { + uint16_t lid_angle; + uint16_t hys_degree; + } tablet_mode_threshold; + }; +}; + +struct ecc_point { + u64 *x; + u64 *y; + u8 ndigits; +}; + +struct ecc_curve { + char *name; + u32 nbits; + struct ecc_point g; + u64 *p; + u64 *n; + u64 *a; + u64 *b; +}; + +struct ecdh { + char *key; + short unsigned int key_size; +}; + +struct ecdh_ctx { + unsigned int curve_id; + unsigned int ndigits; + u64 private_key[9]; +}; + +struct ecryptfs_session_key { + u32 flags; + u32 encrypted_key_size; + u32 decrypted_key_size; + u8 encrypted_key[512]; + u8 decrypted_key[64]; +}; + +struct ecryptfs_password { + u32 password_bytes; + s32 hash_algo; + u32 hash_iterations; + u32 session_key_encryption_key_bytes; + u32 flags; + u8 session_key_encryption_key[64]; + u8 signature[17]; + u8 salt[8]; +}; + +struct ecryptfs_private_key { + u32 key_size; + u32 data_len; + u8 signature[17]; + char pki_type[17]; + u8 data[0]; +}; + +struct ecryptfs_auth_tok { + u16 version; + u16 token_type; + u32 flags; + struct ecryptfs_session_key session_key; + u8 reserved[32]; + union { + struct ecryptfs_password password; + struct ecryptfs_private_key private_key; + } token; +}; + +struct ecryptfs_auth_tok_list_item { + unsigned char encrypted_session_key[64]; + struct list_head list; + struct ecryptfs_auth_tok auth_tok; +}; + +struct ecryptfs_cache_info { + struct kmem_cache **cache; + const char *name; + size_t size; + slab_flags_t flags; + void (*ctor)(void *); +}; + +struct ecryptfs_cipher_code_str_map_elem { + char cipher_str[16]; + u8 cipher_code; +}; + +struct ecryptfs_mount_crypt_stat; + +struct ecryptfs_crypt_stat { + u32 flags; + unsigned int file_version; + size_t iv_bytes; + size_t metadata_size; + size_t extent_size; + size_t key_size; + size_t extent_shift; + unsigned int extent_mask; + struct ecryptfs_mount_crypt_stat *mount_crypt_stat; + struct crypto_skcipher *tfm; + struct crypto_shash *hash_tfm; + unsigned char cipher[32]; + unsigned char key[64]; + unsigned char root_iv[16]; + struct list_head keysig_list; + struct mutex keysig_list_mutex; + struct mutex cs_tfm_mutex; + struct mutex cs_mutex; +}; + +struct ecryptfs_daemon { + u32 flags; + u32 num_queued_msg_ctx; + struct file *file; + struct mutex mux; + struct list_head msg_ctx_out_queue; + wait_queue_head_t wait; + struct hlist_node euid_chain; +}; + +struct ecryptfs_dentry_info { + struct path lower_path; + struct callback_head rcu; +}; + +struct ecryptfs_file_info { + struct file *wfi_file; + struct ecryptfs_crypt_stat *crypt_stat; +}; + +struct ecryptfs_filename { + struct list_head crypt_stat_list; + u32 flags; + u32 seq_no; + char *filename; + char *encrypted_filename; + size_t filename_size; + size_t encrypted_filename_size; + char fnek_sig[16]; + char dentry_name[57]; +}; + +struct ecryptfs_flag_map_elem { + u32 file_flag; + u32 local_flag; +}; + +struct ecryptfs_fs_context { + bool check_ruid; + bool sig_set; + bool cipher_name_set; + bool cipher_key_bytes_set; + bool fn_cipher_name_set; + bool fn_cipher_key_bytes_set; +}; + +struct ecryptfs_getdents_callback { + struct dir_context ctx; + struct dir_context *caller; + struct super_block *sb; + int filldir_called; + int entries_written; +}; + +struct ecryptfs_global_auth_tok { + u32 flags; + struct list_head mount_crypt_stat_list; + struct key *global_auth_tok_key; + unsigned char sig[17]; +}; + +struct ecryptfs_inode_info { + struct inode vfs_inode; + struct inode *wii_inode; + struct mutex lower_file_mutex; + atomic_t lower_file_count; + struct file *lower_file; + struct ecryptfs_crypt_stat crypt_stat; +}; + +struct ecryptfs_key_record { + unsigned char type; + size_t enc_key_size; + unsigned char sig[8]; + unsigned char enc_key[512]; +}; + +struct ecryptfs_key_sig { + struct list_head crypt_stat_list; + char keysig[17]; +}; + +struct ecryptfs_key_tfm { + struct crypto_skcipher *key_tfm; + size_t key_size; + struct mutex key_tfm_mutex; + struct list_head key_tfm_list; + unsigned char cipher_name[32]; +}; + +struct ecryptfs_kthread_ctl { + u32 flags; + struct mutex mux; + struct list_head req_list; + wait_queue_head_t wait; +}; + +struct ecryptfs_message { + u32 index; + u32 data_len; + u8 data[0]; +}; + +struct ecryptfs_mount_crypt_stat { + u32 flags; + struct list_head global_auth_tok_list; + struct mutex global_auth_tok_list_mutex; + size_t global_default_cipher_key_size; + size_t global_default_fn_cipher_key_bytes; + unsigned char global_default_cipher_name[32]; + unsigned char global_default_fn_cipher_name[32]; + char global_default_fnek_sig[17]; +}; + +struct ecryptfs_msg_ctx { + u8 state; + u8 type; + u32 index; + u32 counter; + size_t msg_size; + struct ecryptfs_message *msg; + struct task_struct *task; + struct list_head node; + struct list_head daemon_out_list; + struct mutex mux; +}; + +struct ecryptfs_open_req { + struct file **lower_file; + struct path path; + struct completion done; + struct list_head kthread_ctl_list; +}; + +struct ecryptfs_parse_tag_70_packet_silly_stack { + u8 cipher_code; + size_t max_packet_size; + size_t packet_size_len; + size_t parsed_tag_70_packet_size; + size_t block_aligned_filename_size; + size_t block_size; + size_t i; + struct mutex *tfm_mutex; + char *decrypted_filename; + struct ecryptfs_auth_tok *auth_tok; + struct scatterlist src_sg[2]; + struct scatterlist dst_sg[2]; + struct crypto_skcipher *skcipher_tfm; + struct skcipher_request *skcipher_req; + char fnek_sig_hex[17]; + char iv[16]; + char cipher_string[32]; +}; + +struct ecryptfs_sb_info { + struct super_block *wsi_sb; + struct ecryptfs_mount_crypt_stat mount_crypt_stat; +}; + +struct shash_desc; + +struct ecryptfs_write_tag_70_packet_silly_stack { + u8 cipher_code; + size_t max_packet_size; + size_t packet_size_len; + size_t block_aligned_filename_size; + size_t block_size; + size_t i; + size_t j; + size_t num_rand_bytes; + struct mutex *tfm_mutex; + char *block_aligned_filename; + struct ecryptfs_auth_tok *auth_tok; + struct scatterlist src_sg[2]; + struct scatterlist dst_sg[2]; + struct crypto_skcipher *skcipher_tfm; + struct skcipher_request *skcipher_req; + char iv[16]; + char hash[16]; + char tmp_hash[16]; + struct crypto_shash *hash_tfm; + struct shash_desc *hash_desc; +}; + +struct td; + +struct ed { + __hc32 hwINFO; + __hc32 hwTailP; + __hc32 hwHeadP; + __hc32 hwNextED; + dma_addr_t dma; + struct td *dummy; + struct ed *ed_next; + struct ed *ed_prev; + struct list_head td_list; + struct list_head in_use_list; + u8 state; + u8 type; + u8 branch; + u16 interval; + u16 load; + u16 last_iso; + u16 tick; + unsigned int takeback_wdh_cnt; + struct td *pending_td; + long: 64; +}; + +struct edac_dev_sysfs_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_device_ctl_info *, char *); + ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); +}; + +struct edac_dev_sysfs_block_attribute { + struct attribute attr; + ssize_t (*show)(struct kobject *, struct attribute *, char *); +}; + +struct edac_device_counter { + u32 ue_count; + u32 ce_count; +}; + +struct edac_device_instance; + +struct edac_device_block { + struct edac_device_instance *instance; + char name[32]; + struct edac_device_counter counters; + int nr_attribs; + struct edac_dev_sysfs_block_attribute *block_attributes; + struct kobject kobj; +}; + +struct edac_device_ctl_info { + struct list_head link; + struct module *owner; + int dev_idx; + int log_ue; + int log_ce; + int panic_on_ue; + unsigned int poll_msec; + long unsigned int delay; + struct edac_dev_sysfs_attribute *sysfs_attributes; + const struct bus_type *edac_subsys; + int op_state; + struct delayed_work work; + void (*edac_check)(struct edac_device_ctl_info *); + struct device *dev; + const char *mod_name; + const char *ctl_name; + const char *dev_name; + void *pvt_info; + long unsigned int start_time; + char name[32]; + u32 nr_instances; + struct edac_device_instance *instances; + struct edac_device_block *blocks; + struct edac_device_counter counters; + struct kobject kobj; +}; + +struct edac_device_instance { + struct edac_device_ctl_info *ctl; + char name[35]; + struct edac_device_counter counters; + u32 nr_blocks; + struct edac_device_block *blocks; + struct kobject kobj; +}; + +struct edac_device_prv_data { + int (*setup)(struct altr_edac_device_dev *); + int ce_clear_mask; + int ue_clear_mask; + int irq_status_mask; + void * (*alloc_mem)(size_t, void **); + void (*free_mem)(void *, size_t, void *); + int ecc_enable_mask; + int ecc_en_ofst; + int ce_set_mask; + int ue_set_mask; + int set_err_ofst; + irqreturn_t (*ecc_irq_handler)(int, void *); + int trig_alloc_sz; + const struct file_operations *inject_fops; + bool panic; +}; + +struct edac_mc_layer { + enum edac_mc_layer_type type; + unsigned int size; + bool is_virt_csrow; +}; + +struct edac_pci_counter { + atomic_t pe_count; + atomic_t npe_count; +}; + +struct edac_pci_ctl_info { + struct list_head link; + int pci_idx; + int op_state; + struct delayed_work work; + void (*edac_check)(struct edac_pci_ctl_info *); + struct device *dev; + const char *mod_name; + const char *ctl_name; + const char *dev_name; + void *pvt_info; + long unsigned int start_time; + char name[32]; + struct edac_pci_counter counters; + struct kobject kobj; +}; + +struct edac_pci_dev_attribute { + struct attribute attr; + void *value; + ssize_t (*show)(void *, char *); + ssize_t (*store)(void *, const char *, size_t); +}; + +struct edac_pci_gen_data { + int edac_idx; +}; + +struct edac_raw_error_desc { + char location[256]; + char label[296]; + long int grain; + u16 error_count; + enum hw_event_mc_err_type type; + int top_layer; + int mid_layer; + int low_layer; + long unsigned int page_frame_number; + long unsigned int offset_in_page; + long unsigned int syndrome; + const char *msg; + const char *other_detail; +}; + +struct est_timings { + u8 t1; + u8 t2; + u8 mfg_rsvd; +}; + +struct edid { + u8 header[8]; + union { + struct drm_edid_product_id product_id; + struct { + u8 mfg_id[2]; + u8 prod_code[2]; + u32 serial; + u8 mfg_week; + u8 mfg_year; + } __attribute__((packed)); + }; + 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 edid_quirk { + const struct drm_edid_ident ident; + u32 quirks; +}; + +struct eee_config { + u32 tx_lpi_timer; + bool tx_lpi_enabled; + bool eee_enabled; +}; + +struct ethtool_keee { + long unsigned int supported[2]; + long unsigned int advertised[2]; + long unsigned int lp_advertised[2]; + u32 tx_lpi_timer; + bool tx_lpi_enabled; + bool eee_active; + bool eee_enabled; +}; + +struct eee_reply_data { + struct ethnl_reply_data base; + struct ethtool_keee eee; +}; + +struct eeprom_reply_data { + struct ethnl_reply_data base; + u32 length; + u8 *data; +}; + +struct ethnl_req_info { + struct net_device *dev; + netdevice_tracker dev_tracker; + u32 flags; + u32 phy_index; +}; + +struct eeprom_req_info { + struct ethnl_req_info base; + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; +}; + +struct efi_memory_map { + phys_addr_t phys_map; + void *map; + void *map_end; + int nr_map; + long unsigned int desc_version; + long unsigned int desc_size; + long unsigned int flags; +}; + +struct efi { + const efi_runtime_services_t *runtime; + unsigned int runtime_version; + unsigned int runtime_supported_mask; + long unsigned int acpi; + long unsigned int acpi20; + long unsigned int smbios; + long unsigned int smbios3; + long unsigned int esrt; + long unsigned int tpm_log; + long unsigned int tpm_final_log; + long unsigned int mokvar_table; + long unsigned int coco_secret; + long unsigned int unaccepted; + efi_get_time_t *get_time; + efi_set_time_t *set_time; + efi_get_wakeup_time_t *get_wakeup_time; + efi_set_wakeup_time_t *set_wakeup_time; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_info_t *query_variable_info; + efi_query_variable_info_t *query_variable_info_nonblocking; + efi_update_capsule_t *update_capsule; + efi_query_capsule_caps_t *query_capsule_caps; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; + struct efi_memory_map memmap; + long unsigned int flags; +}; + +struct efi_boot_memmap { + long unsigned int map_size; + long unsigned int desc_size; + u32 desc_ver; + long unsigned int map_key; + long unsigned int buff_size; + efi_memory_desc_t map[0]; +}; + +typedef void *efi_event_t; + +typedef void (*efi_event_notify_t)(efi_event_t, void *); + +union efi_boot_services { + struct { + efi_table_hdr_t hdr; + void *raise_tpl; + void *restore_tpl; + efi_status_t (*allocate_pages)(int, int, long unsigned int, efi_physical_addr_t *); + efi_status_t (*free_pages)(efi_physical_addr_t, long unsigned int); + efi_status_t (*get_memory_map)(long unsigned int *, void *, long unsigned int *, long unsigned int *, u32 *); + efi_status_t (*allocate_pool)(int, long unsigned int, void **); + efi_status_t (*free_pool)(void *); + efi_status_t (*create_event)(u32, long unsigned int, efi_event_notify_t, void *, efi_event_t *); + efi_status_t (*set_timer)(efi_event_t, EFI_TIMER_DELAY, u64); + efi_status_t (*wait_for_event)(long unsigned int, efi_event_t *, long unsigned int *); + efi_status_t (*signal_event)(efi_event_t); + efi_status_t (*close_event)(efi_event_t); + void *check_event; + void *install_protocol_interface; + void *reinstall_protocol_interface; + void *uninstall_protocol_interface; + efi_status_t (*handle_protocol)(efi_handle_t, efi_guid_t *, void **); + void *__reserved; + void *register_protocol_notify; + efi_status_t (*locate_handle)(int, efi_guid_t *, void *, long unsigned int *, efi_handle_t *); + efi_status_t (*locate_device_path)(efi_guid_t *, efi_device_path_protocol_t **, efi_handle_t *); + efi_status_t (*install_configuration_table)(efi_guid_t *, void *); + efi_status_t (*load_image)(bool, efi_handle_t, efi_device_path_protocol_t *, void *, long unsigned int, efi_handle_t *); + efi_status_t (*start_image)(efi_handle_t, long unsigned int *, efi_char16_t **); + efi_status_t (*exit)(efi_handle_t, efi_status_t, long unsigned int, efi_char16_t *); + efi_status_t (*unload_image)(efi_handle_t); + efi_status_t (*exit_boot_services)(efi_handle_t, long unsigned int); + void *get_next_monotonic_count; + efi_status_t (*stall)(long unsigned int); + void *set_watchdog_timer; + void *connect_controller; + efi_status_t (*disconnect_controller)(efi_handle_t, efi_handle_t, efi_handle_t); + void *open_protocol; + void *close_protocol; + void *open_protocol_information; + void *protocols_per_handle; + efi_status_t (*locate_handle_buffer)(int, efi_guid_t *, void *, long unsigned int *, efi_handle_t **); + efi_status_t (*locate_protocol)(efi_guid_t *, void *, void **); + efi_status_t (*install_multiple_protocol_interfaces)(efi_handle_t *, ...); + efi_status_t (*uninstall_multiple_protocol_interfaces)(efi_handle_t, ...); + void *calculate_crc32; + void (*copy_mem)(void *, const void *, long unsigned int); + void (*set_mem)(void *, long unsigned int, unsigned char); + efi_status_t (*create_event_ex)(u32, int, void *, void *, void *, efi_event_t *); + }; + struct { + efi_table_hdr_t hdr; + u32 raise_tpl; + u32 restore_tpl; + u32 allocate_pages; + u32 free_pages; + u32 get_memory_map; + u32 allocate_pool; + u32 free_pool; + u32 create_event; + u32 set_timer; + u32 wait_for_event; + u32 signal_event; + u32 close_event; + u32 check_event; + u32 install_protocol_interface; + u32 reinstall_protocol_interface; + u32 uninstall_protocol_interface; + u32 handle_protocol; + u32 __reserved; + u32 register_protocol_notify; + u32 locate_handle; + u32 locate_device_path; + u32 install_configuration_table; + u32 load_image; + u32 start_image; + u32 exit; + u32 unload_image; + u32 exit_boot_services; + u32 get_next_monotonic_count; + u32 stall; + u32 set_watchdog_timer; + u32 connect_controller; + u32 disconnect_controller; + u32 open_protocol; + u32 close_protocol; + u32 open_protocol_information; + u32 protocols_per_handle; + u32 locate_handle_buffer; + u32 locate_protocol; + u32 install_multiple_protocol_interfaces; + u32 uninstall_multiple_protocol_interfaces; + u32 calculate_crc32; + u32 copy_mem; + u32 set_mem; + u32 create_event_ex; + } mixed_mode; +}; + +struct efi_cc_event { + u32 event_size; + struct { + u32 header_size; + u16 header_version; + u32 mr_index; + u32 event_type; + } __attribute__((packed)) event_header; +} __attribute__((packed)); + +typedef struct efi_cc_event efi_cc_event_t; + +union efi_cc_protocol; + +typedef union efi_cc_protocol efi_cc_protocol_t; + +union efi_cc_protocol { + struct { + efi_status_t (*get_capability)(efi_cc_protocol_t *, efi_cc_boot_service_cap_t *); + efi_status_t (*get_event_log)(efi_cc_protocol_t *, efi_cc_event_log_format_t, efi_physical_addr_t *, efi_physical_addr_t *, efi_bool_t *); + efi_status_t (*hash_log_extend_event)(efi_cc_protocol_t *, u64, efi_physical_addr_t, u64, const efi_cc_event_t *); + efi_status_t (*map_pcr_to_mr_index)(efi_cc_protocol_t *, u32, efi_cc_mr_index_t *); + }; + struct { + u32 get_capability; + u32 get_event_log; + u32 hash_log_extend_event; + u32 map_pcr_to_mr_index; + } mixed_mode; +}; + +union efi_device_path_from_text_protocol { + struct { + efi_device_path_protocol_t * (*convert_text_to_device_node)(const efi_char16_t *); + efi_device_path_protocol_t * (*convert_text_to_device_path)(const efi_char16_t *); + }; + struct { + u32 convert_text_to_device_node; + u32 convert_text_to_device_path; + } mixed_mode; +}; + +typedef union efi_device_path_from_text_protocol efi_device_path_from_text_protocol_t; + +struct efi_error_code { + efi_status_t status; + int errno; + const char *description; +}; + +struct efi_generic_dev_path { + u8 type; + u8 sub_type; + u16 length; +}; + +struct efi_file_path_dev_path { + struct efi_generic_dev_path header; + efi_char16_t filename[0]; +}; + +union efi_file_protocol; + +typedef union efi_file_protocol efi_file_protocol_t; + +union efi_file_protocol { + struct { + u64 revision; + efi_status_t (*open)(efi_file_protocol_t *, efi_file_protocol_t **, efi_char16_t *, u64, u64); + efi_status_t (*close)(efi_file_protocol_t *); + efi_status_t (*delete)(efi_file_protocol_t *); + efi_status_t (*read)(efi_file_protocol_t *, long unsigned int *, void *); + efi_status_t (*write)(efi_file_protocol_t *, long unsigned int, void *); + efi_status_t (*get_position)(efi_file_protocol_t *, u64 *); + efi_status_t (*set_position)(efi_file_protocol_t *, u64); + efi_status_t (*get_info)(efi_file_protocol_t *, efi_guid_t *, long unsigned int *, void *); + efi_status_t (*set_info)(efi_file_protocol_t *, efi_guid_t *, long unsigned int, void *); + efi_status_t (*flush)(efi_file_protocol_t *); + }; + struct { + u64 revision; + u32 open; + u32 close; + u32 delete; + u32 read; + u32 write; + u32 get_position; + u32 set_position; + u32 get_info; + u32 set_info; + u32 flush; + } mixed_mode; +}; + +union efi_graphics_output_protocol; + +typedef union efi_graphics_output_protocol efi_graphics_output_protocol_t; + +union efi_graphics_output_protocol_mode; + +typedef union efi_graphics_output_protocol_mode efi_graphics_output_protocol_mode_t; + +union efi_graphics_output_protocol { + struct { + efi_status_t (*query_mode)(efi_graphics_output_protocol_t *, u32, long unsigned int *, efi_graphics_output_mode_info_t **); + efi_status_t (*set_mode)(efi_graphics_output_protocol_t *, u32); + void *blt; + efi_graphics_output_protocol_mode_t *mode; + }; + struct { + u32 query_mode; + u32 set_mode; + u32 blt; + u32 mode; + } mixed_mode; +}; + +union efi_graphics_output_protocol_mode { + struct { + u32 max_mode; + u32 mode; + efi_graphics_output_mode_info_t *info; + long unsigned int size_of_info; + efi_physical_addr_t frame_buffer_base; + long unsigned int frame_buffer_size; + }; + struct { + u32 max_mode; + u32 mode; + u32 info; + u32 size_of_info; + u64 frame_buffer_base; + u32 frame_buffer_size; + } mixed_mode; +}; + +union efi_load_file_protocol; + +typedef union efi_load_file_protocol efi_load_file_protocol_t; + +union efi_load_file_protocol { + struct { + efi_status_t (*load_file)(efi_load_file_protocol_t *, efi_device_path_protocol_t *, bool, long unsigned int *, void *); + }; + struct { + u32 load_file; + } mixed_mode; +}; + +typedef union efi_load_file_protocol efi_load_file2_protocol_t; + +union efi_memory_attribute_protocol; + +typedef union efi_memory_attribute_protocol efi_memory_attribute_protocol_t; + +union efi_memory_attribute_protocol { + struct { + efi_status_t (*get_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64 *); + efi_status_t (*set_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64); + efi_status_t (*clear_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64); + }; + struct { + u32 get_memory_attributes; + u32 set_memory_attributes; + u32 clear_memory_attributes; + } mixed_mode; +}; + +struct efi_memory_map_data { + phys_addr_t phys_map; + long unsigned int size; + long unsigned int desc_version; + long unsigned int desc_size; + long unsigned int flags; +}; + +struct efi_mokvar_sysfs_attr { + struct bin_attribute bin_attr; + struct list_head node; +}; + +struct efi_mokvar_table_entry { + char name[256]; + u64 data_size; + u8 data[0]; +}; + +union efi_pci_io_protocol { + struct { + void *poll_mem; + void *poll_io; + efi_pci_io_protocol_access_t mem; + efi_pci_io_protocol_access_t io; + efi_pci_io_protocol_config_access_t pci; + void *copy_mem; + void *map; + void *unmap; + void *allocate_buffer; + void *free_buffer; + void *flush; + efi_status_t (*get_location)(efi_pci_io_protocol_t *, long unsigned int *, long unsigned int *, long unsigned int *, long unsigned int *); + void *attributes; + void *get_bar_attributes; + void *set_bar_attributes; + uint64_t romsize; + void *romimage; + }; + struct { + u32 poll_mem; + u32 poll_io; + efi_pci_io_protocol_access_32_t mem; + efi_pci_io_protocol_access_32_t io; + efi_pci_io_protocol_access_32_t pci; + u32 copy_mem; + u32 map; + u32 unmap; + u32 allocate_buffer; + u32 free_buffer; + u32 flush; + u32 get_location; + u32 attributes; + u32 get_bar_attributes; + u32 set_bar_attributes; + u64 romsize; + u32 romimage; + } mixed_mode; +}; + +union efi_rng_protocol; + +typedef union efi_rng_protocol efi_rng_protocol_t; + +union efi_rng_protocol { + struct { + efi_status_t (*get_info)(efi_rng_protocol_t *, long unsigned int *, efi_guid_t *); + efi_status_t (*get_rng)(efi_rng_protocol_t *, efi_guid_t *, long unsigned int, u8 *); + }; + struct { + u32 get_info; + u32 get_rng; + } mixed_mode; +}; + +union efi_rts_args { + struct { + efi_time_t *time; + efi_time_cap_t *capabilities; + } GET_TIME; + struct { + efi_time_t *time; + } SET_TIME; + struct { + efi_bool_t *enabled; + efi_bool_t *pending; + efi_time_t *time; + } GET_WAKEUP_TIME; + struct { + efi_bool_t enable; + efi_time_t *time; + } SET_WAKEUP_TIME; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 *attr; + long unsigned int *data_size; + void *data; + } GET_VARIABLE; + struct { + long unsigned int *name_size; + efi_char16_t *name; + efi_guid_t *vendor; + } GET_NEXT_VARIABLE; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 attr; + long unsigned int data_size; + void *data; + } SET_VARIABLE; + struct { + u32 attr; + u64 *storage_space; + u64 *remaining_space; + u64 *max_variable_size; + } QUERY_VARIABLE_INFO; + struct { + u32 *high_count; + } GET_NEXT_HIGH_MONO_COUNT; + struct { + efi_capsule_header_t **capsules; + long unsigned int count; + long unsigned int sg_list; + } UPDATE_CAPSULE; + struct { + efi_capsule_header_t **capsules; + long unsigned int count; + u64 *max_size; + int *reset_type; + } QUERY_CAPSULE_CAPS; + struct { + efi_status_t (*acpi_prm_handler)(u64, void *); + u64 param_buffer_addr; + void *context; + } ACPI_PRM_HANDLER; +}; + +struct efi_runtime_work { + union efi_rts_args *args; + efi_status_t status; + struct work_struct work; + enum efi_rts_ids efi_rts_id; + struct completion efi_rts_comp; + const void *caller; +}; + +union efi_simple_file_system_protocol; + +typedef union efi_simple_file_system_protocol efi_simple_file_system_protocol_t; + +union efi_simple_file_system_protocol { + struct { + u64 revision; + efi_status_t (*open_volume)(efi_simple_file_system_protocol_t *, efi_file_protocol_t **); + }; + struct { + u64 revision; + u32 open_volume; + } mixed_mode; +}; + +union efi_simple_text_input_protocol { + struct { + void *reset; + efi_status_t (*read_keystroke)(efi_simple_text_input_protocol_t *, efi_input_key_t *); + efi_event_t wait_for_key; + }; + struct { + u32 reset; + u32 read_keystroke; + u32 wait_for_key; + } mixed_mode; +}; + +union efi_simple_text_output_protocol { + struct { + void *reset; + efi_status_t (*output_string)(efi_simple_text_output_protocol_t *, efi_char16_t *); + void *test_string; + }; + struct { + u32 reset; + u32 output_string; + u32 test_string; + } mixed_mode; +}; + +union efi_smbios_protocol; + +typedef union efi_smbios_protocol efi_smbios_protocol_t; + +struct efi_smbios_record; + +union efi_smbios_protocol { + struct { + efi_status_t (*add)(efi_smbios_protocol_t *, efi_handle_t, u16 *, struct efi_smbios_record *); + efi_status_t (*update_string)(efi_smbios_protocol_t *, u16 *, long unsigned int *, u8 *); + efi_status_t (*remove)(efi_smbios_protocol_t *, u16); + efi_status_t (*get_next)(efi_smbios_protocol_t *, u16 *, u8 *, struct efi_smbios_record **, efi_handle_t *); + u8 major_version; + u8 minor_version; + }; + struct { + u32 add; + u32 update_string; + u32 remove; + u32 get_next; + u8 major_version; + u8 minor_version; + } mixed_mode; +}; + +struct efi_smbios_record { + u8 type; + u8 length; + u16 handle; +}; + +struct efi_smbios_type4_record { + struct efi_smbios_record header; + u8 socket; + u8 processor_type; + u8 processor_family; + u8 processor_manufacturer; + u8 processor_id[8]; + u8 processor_version; + u8 voltage; + u16 external_clock; + u16 max_speed; + u16 current_speed; + u8 status; + u8 processor_upgrade; + u16 l1_cache_handle; + u16 l2_cache_handle; + u16 l3_cache_handle; + u8 serial_number; + u8 asset_tag; + u8 part_number; + u8 core_count; + u8 enabled_core_count; + u8 thread_count; + u16 processor_characteristics; + u16 processor_family2; + u16 core_count2; + u16 enabled_core_count2; + u16 thread_count2; + u16 thread_enabled; +}; + +struct 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 efi_system_resource_table { + u32 fw_resource_count; + u32 fw_resource_count_max; + u64 fw_resource_version; + u8 entries[0]; +}; + +struct efi_tcg2_event { + u32 event_size; + struct { + u32 header_size; + u16 header_version; + u32 pcr_index; + u32 event_type; + } __attribute__((packed)) event_header; +} __attribute__((packed)); + +typedef struct efi_tcg2_event efi_tcg2_event_t; + +struct efi_tcg2_final_events_table { + u64 version; + u64 nr_events; + u8 events[0]; +}; + +union efi_tcg2_protocol; + +typedef union efi_tcg2_protocol efi_tcg2_protocol_t; + +union efi_tcg2_protocol { + struct { + void *get_capability; + efi_status_t (*get_event_log)(efi_tcg2_protocol_t *, efi_tcg2_event_log_format, efi_physical_addr_t *, efi_physical_addr_t *, efi_bool_t *); + efi_status_t (*hash_log_extend_event)(efi_tcg2_protocol_t *, u64, efi_physical_addr_t, u64, const efi_tcg2_event_t *); + void *submit_command; + void *get_active_pcr_banks; + void *set_active_pcr_banks; + void *get_result_of_set_active_pcr_banks; + }; + struct { + u32 get_capability; + u32 get_event_log; + u32 hash_log_extend_event; + u32 submit_command; + u32 get_active_pcr_banks; + u32 set_active_pcr_banks; + u32 get_result_of_set_active_pcr_banks; + } mixed_mode; +}; + +struct efi_unaccepted_memory { + u32 version; + u32 unit_size; + u64 phys_base; + u64 size; + long unsigned int bitmap[0]; +}; + +struct efi_variable { + efi_char16_t VariableName[512]; + efi_guid_t VendorGuid; +}; + +struct efi_vendor_dev_path { + struct efi_generic_dev_path header; + efi_guid_t vendorguid; + u8 vendordata[0]; +}; + +struct efifb_dmi_info { + char *optname; + long unsigned int base; + int stride; + int width; + int height; + int flags; +}; + +union efistub_event { + efi_tcg2_event_t tcg2_data; + efi_cc_event_t cc_data; +}; + +struct tdTCG_PCClientTaggedEvent { + u32 tagged_event_id; + u32 tagged_event_data_size; + u8 tagged_event_data[0]; +}; + +typedef struct tdTCG_PCClientTaggedEvent TCG_PCClientTaggedEvent; + +struct efistub_measured_event { + union efistub_event event_data; + TCG_PCClientTaggedEvent tagged_event; +} __attribute__((packed)); + +struct efivar_entry { + struct efi_variable var; + struct inode vfs_inode; + long unsigned int open_count; + bool removed; +}; + +typedef efi_status_t efi_query_variable_store_t(u32, long unsigned int, bool); + +struct efivar_operations { + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_store_t *query_variable_store; + efi_query_variable_info_t *query_variable_info; +}; + +struct efivarfs_mount_opts { + kuid_t uid; + kgid_t gid; +}; + +struct efivarfs_fs_info { + struct efivarfs_mount_opts mount_opts; + struct super_block *sb; + struct notifier_block nb; +}; + +struct efivars { + struct kset *kset; + const struct efivar_operations *ops; +}; + +struct ehci_caps { + u32 hc_capbase; + u32 hcs_params; + u32 hcc_params; + u8 portroute[8]; +}; + +struct ehci_dbg_port { + u32 control; + u32 pids; + u32 data03; + u32 data47; + u32 address; +}; + +struct usb_hcd; + +struct ehci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*port_power)(struct usb_hcd *, int, bool); +}; + +struct ehci_qh; + +struct ehci_itd; + +struct ehci_sitd; + +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_fstn { + __le32 hw_next; + __le32 hw_prev; + dma_addr_t fstn_dma; + union ehci_shadow fstn_next; + long: 64; +}; + +struct ehci_stats { + long unsigned int normal; + long unsigned int error; + long unsigned int iaa; + long unsigned int lost_iaa; + long unsigned int complete; + long unsigned int unlink; +}; + +struct ehci_regs; + +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; + long unsigned int reset_done[15]; + long unsigned int bus_suspended; + long unsigned int companion_ports; + long unsigned int owned_ports; + long unsigned int port_c_suspend; + long unsigned int suspended_ports; + long unsigned int 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; + long unsigned int next_statechange; + ktime_t last_periodic_enable; + u32 command; + unsigned int no_selective_suspend: 1; + unsigned int has_fsl_port_bug: 1; + unsigned int has_fsl_hs_errata: 1; + unsigned int has_fsl_susp_errata: 1; + unsigned int has_ci_pec_bug: 1; + unsigned int big_endian_mmio: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_capbase: 1; + unsigned int has_amcc_usb23: 1; + unsigned int need_io_watchdog: 1; + unsigned int amd_pll_fix: 1; + unsigned int use_dummy_qh: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int frame_index_bug: 1; + unsigned int need_oc_pp_cycle: 1; + unsigned int imx28_write_fix: 1; + unsigned int spurious_oc: 1; + unsigned int is_aspeed: 1; + unsigned int zx_wakeup_clear_needed: 1; + __le32 *ohci_hcctrl_reg; + unsigned int has_hostpc: 1; + unsigned int has_tdi_phy_lpm: 1; + unsigned int has_ppcd: 1; + u8 sbrn; + struct ehci_stats stats; + struct dentry *debug_dir; + u8 bandwidth[64]; + u8 tt_budget[64]; + struct list_head tt_list; + long unsigned int priv[0]; +}; + +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 usb_host_endpoint; + +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_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_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_qtd; + +struct ehci_qh { + struct ehci_qh_hw *hw; + dma_addr_t qh_dma; + union ehci_shadow qh_next; + struct list_head qtd_list; + struct list_head intr_node; + struct ehci_qtd *dummy; + struct list_head unlink_node; + struct ehci_per_sched ps; + unsigned int unlink_cycle; + u8 qh_state; + u8 xacterrs; + u8 unlink_reason; + u8 gap_uf; + unsigned int is_out: 1; + unsigned int clearing_tt: 1; + unsigned int dequeue_during_giveback: 1; + unsigned int should_be_inactive: 1; +}; + +struct ehci_qh_hw { + __le32 hw_next; + __le32 hw_info1; + __le32 hw_info2; + __le32 hw_current; + __le32 hw_qtd_next; + __le32 hw_alt_next; + __le32 hw_token; + __le32 hw_buf[5]; + __le32 hw_buf_hi[5]; + long: 64; + long: 64; + long: 64; +}; + +struct ehci_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 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_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_tt { + u16 bandwidth[8]; + struct list_head tt_list; + struct list_head ps_list; + struct usb_tt *usb_tt; + int tt_port; +}; + +struct ei_entry { + struct list_head list; + long unsigned int start_addr; + long unsigned int end_addr; + int etype; + void *priv; +}; + +struct elevator_queue; + +struct io_cq; + +struct elevator_mq_ops { + int (*init_sched)(struct request_queue *, struct elevator_type *); + void (*exit_sched)(struct elevator_queue *); + int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*depth_updated)(struct blk_mq_hw_ctx *); + bool (*allow_merge)(struct request_queue *, struct request *, struct bio *); + bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int); + int (*request_merge)(struct request_queue *, struct request **, struct bio *); + void (*request_merged)(struct request_queue *, struct request *, enum elv_merge); + void (*requests_merged)(struct request_queue *, struct request *, struct request *); + void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *); + void (*prepare_request)(struct request *); + void (*finish_request)(struct request *); + void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, blk_insert_t); + struct request * (*dispatch_request)(struct blk_mq_hw_ctx *); + bool (*has_work)(struct blk_mq_hw_ctx *); + void (*completed_request)(struct request *, u64); + void (*requeue_request)(struct request *); + struct request * (*former_request)(struct request_queue *, struct request *); + struct request * (*next_request)(struct request_queue *, struct request *); + void (*init_icq)(struct io_cq *); + void (*exit_icq)(struct io_cq *); +}; + +struct elevator_queue { + struct elevator_type *type; + void *elevator_data; + struct kobject kobj; + struct mutex sysfs_lock; + long unsigned int flags; + struct hlist_head hash[64]; +}; + +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; + const struct elv_fs_entry *elevator_attrs; + const char *elevator_name; + const char *elevator_alias; + 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 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_note { + Elf32_Word n_namesz; + Elf32_Word n_descsz; + Elf32_Word n_type; +}; + +typedef struct elf32_note Elf32_Nhdr; + +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; + +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 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_note { + Elf64_Word n_namesz; + Elf64_Word n_descsz; + Elf64_Word n_type; +}; + +typedef struct elf64_note Elf64_Nhdr; + +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; + +struct elf64_rela { + Elf64_Addr r_offset; + Elf64_Xword r_info; + Elf64_Sxword r_addend; +}; + +typedef struct elf64_rela Elf64_Rela; + +struct elf64_shdr { + Elf64_Word sh_name; + Elf64_Word sh_type; + Elf64_Xword sh_flags; + Elf64_Addr sh_addr; + Elf64_Off sh_offset; + Elf64_Xword sh_size; + Elf64_Word sh_link; + Elf64_Word sh_info; + Elf64_Xword sh_addralign; + Elf64_Xword sh_entsize; +}; + +typedef struct elf64_shdr Elf64_Shdr; + +struct 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; +}; + +typedef struct elf64_sym Elf64_Sym; + +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 siginfo { + union { + struct { + int si_signo; + int si_errno; + int si_code; + union __sifields _sifields; + }; + int _si_pad[32]; + }; +}; + +typedef struct siginfo siginfo_t; + +struct 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_prpsinfo { + char pr_state; + char pr_sname; + char pr_zomb; + char pr_nice; + long unsigned int 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 int pr_cursig; + long unsigned int pr_sigpend; + long unsigned int pr_sighold; + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct __kernel_old_timeval pr_utime; + struct __kernel_old_timeval pr_stime; + struct __kernel_old_timeval pr_cutime; + struct __kernel_old_timeval pr_cstime; +}; + +struct elf_prstatus { + struct elf_prstatus_common common; + elf_gregset_t pr_reg; + int pr_fpvalid; +}; + +struct elf_thread_core_info___2 { + struct elf_thread_core_info___2 *next; + struct task_struct *task; + struct elf_prstatus prstatus; + struct memelfnote notes[0]; +}; + +struct elf_thread_core_info { + struct elf_thread_core_info *next; + struct task_struct *task; + struct compat_elf_prstatus prstatus; + struct memelfnote notes[0]; +}; + +struct elv_fs_entry { + struct attribute attr; + ssize_t (*show)(struct elevator_queue *, char *); + ssize_t (*store)(struct elevator_queue *, const char *, size_t); +}; + +struct em_data_callback { + int (*active_power)(struct device *, long unsigned int *, long unsigned int *); + int (*get_cost)(struct device *, long unsigned int, long unsigned int *); +}; + +struct em_dbg_info { + struct em_perf_domain *pd; + int ps_id; +}; + +struct em_perf_table; + +struct em_perf_domain { + struct em_perf_table *em_table; + int nr_perf_states; + int min_perf_state; + int max_perf_state; + long unsigned int flags; + long unsigned int cpus[0]; +}; + +struct em_perf_state { + long unsigned int performance; + long unsigned int frequency; + long unsigned int power; + long unsigned int cost; + long unsigned int flags; +}; + +struct em_perf_table { + struct callback_head rcu; + struct kref kref; + struct em_perf_state state[0]; +}; + +struct emc_dvfs_latency { + uint32_t freq; + uint32_t latency; +}; + +struct en_clk_desc { + int id; + const char *name; + u32 base_reg; + u8 base_bits; + u8 base_shift; + union { + const unsigned int *base_values; + unsigned int base_value; + }; + size_t n_base_values; + u16 div_reg; + u8 div_bits; + u8 div_shift; + u16 div_val0; + u8 div_step; + u8 div_offset; +}; + +struct en_clk_gate { + void *base; + struct clk_hw hw; +}; + +struct en_clk_soc_data { + u32 num_clocks; + const struct clk_ops pcie_ops; + int (*hw_init)(struct platform_device *, struct clk_hw_onecell_data *); +}; + +struct en_rst_data { + const u16 *bank_ofs; + const u16 *idx_map; + void *base; + struct reset_controller_dev rcdev; +}; + +struct trace_event_file; + +struct enable_trigger_data { + struct trace_event_file *file; + bool enable; + bool hist; +}; + +union trap_config { + u64 val; + struct { + long unsigned int cgt: 10; + long unsigned int fgt: 4; + long unsigned int bit: 6; + long unsigned int pol: 1; + long unsigned int fgf: 5; + long unsigned int sri: 10; + long unsigned int unused: 27; + long unsigned int mbz: 1; + }; +}; + +struct encoding_to_trap_config { + const u32 encoding; + const u32 end; + const union trap_config tc; + const unsigned int line; +}; + +struct encrypted_key_payload { + struct callback_head rcu; + char *format; + char *master_desc; + char *datalen; + u8 *iv; + u8 *encrypted_data; + short unsigned int datablob_len; + short unsigned int decrypted_datalen; + short unsigned int payload_datalen; + short unsigned int encrypted_key_format; + u8 *decrypted_data; + u8 payload_data[0]; +}; + +struct energy_env { + long unsigned int task_busy_time; + long unsigned int pd_busy_time; + long unsigned int cpu_cap; + long unsigned int pd_cap; +}; + +struct entropy_timer_state { + long unsigned int entropy; + struct timer_list timer; + atomic_t samples; + unsigned int samples_per_bit; +}; + +struct entry_header { + u8 id[8]; + __le32 priority[2]; + __le32 addr; + __le16 len; + __le16 offset; +}; + +struct usb_endpoint_descriptor; + +struct ep_device { + struct usb_endpoint_descriptor *desc; + struct usb_device *udev; + struct device dev; +}; + +typedef struct poll_table_struct poll_table; + +struct epitem; + +struct ep_pqueue { + poll_table pt; + struct epitem *epi; +}; + +struct epoll_filefd { + struct file *file; + int fd; +} __attribute__((packed)); + +struct epoll_event { + __poll_t events; + __u64 data; +}; + +struct eppoll_entry; + +struct eventpoll; + +struct epitem { + union { + struct rb_node rbn; + struct callback_head rcu; + }; + struct list_head rdllink; + struct epitem *next; + struct epoll_filefd ffd; + bool dying; + struct eppoll_entry *pwqlist; + struct eventpoll *ep; + struct hlist_node fllink; + struct wakeup_source *ws; + struct epoll_event event; +}; + +struct epitems_head { + struct hlist_head epitems; + struct epitems_head *next; +}; + +struct epoll_params { + __u32 busy_poll_usecs; + __u16 busy_poll_budget; + __u8 prefer_busy_poll; + __u8 __pad; +}; + +struct eppoll_entry { + struct eppoll_entry *next; + struct epitem *base; + wait_queue_entry_t wait; + wait_queue_head_t *whead; +}; + +struct trace_eprobe; + +struct eprobe_data { + struct trace_event_file *file; + struct trace_eprobe *ep; +}; + +struct eprobe_trace_entry_head { + struct trace_entry ent; +}; + +struct err_info { + const char **errs; + u8 type; + u16 pos; + u64 ts; +}; + +struct error_info { + short unsigned int code12; + short unsigned int size; +}; + +struct error_info2 { + unsigned char code1; + unsigned char code2_min; + unsigned char code2_max; + const char *str; + const char *fmt; +}; + +struct error_injection_entry { + long unsigned int addr; + int etype; +}; + +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 erst_erange { + u64 base; + u64 size; + void *vaddr; + u32 attr; + u64 timings; +}; + +struct erst_record_id_cache { + struct mutex lock; + u64 *entries; + int len; + int size; + int refcount; +}; + +struct strp_stats { + long long unsigned int msgs; + long long unsigned int bytes; + unsigned int mem_fail; + unsigned int need_more_hdr; + unsigned int msg_too_big; + unsigned int msg_timeouts; + unsigned int bad_hdr_len; +}; + +typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); + +struct strparser; + +struct strp_callbacks { + int (*parse_msg)(struct strparser *, struct sk_buff *); + void (*rcv_msg)(struct strparser *, struct sk_buff *); + int (*read_sock)(struct strparser *, read_descriptor_t *, sk_read_actor_t); + 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 espintcp_msg { + struct sk_buff *skb; + struct sk_msg skmsg; + int offset; + int len; +}; + +struct espintcp_ctx { + struct strparser strp; + struct sk_buff_head ike_queue; + struct sk_buff_head out_queue; + struct espintcp_msg partial; + void (*saved_data_ready)(struct sock *); + void (*saved_write_space)(struct sock *); + void (*saved_destruct)(struct sock *); + struct work_struct work; + bool tx_running; +}; + +struct esr_context { + struct _aarch64_ctx head; + __u64 esr; +}; + +struct esre_entry; + +struct esre_attribute { + struct attribute attr; + ssize_t (*show)(struct esre_entry *, char *); +}; + +struct esre_entry { + union { + struct efi_system_resource_entry_v1 *esre1; + } esre; + struct kobject kobj; + struct list_head list; +}; + +struct eth_hash_entry { + u64 addr; + struct list_head node; +}; + +struct eth_hash_t { + u16 size; + struct list_head *lsts; +}; + +struct ethhdr { + unsigned char h_dest[6]; + unsigned char h_source[6]; + __be16 h_proto; +}; + +struct ethnl_request_ops; + +struct ethnl_dump_ctx { + const struct ethnl_request_ops *ops; + struct ethnl_req_info *req_info; + struct ethnl_reply_data *reply_data; + long unsigned int pos_ifindex; +}; + +struct ethnl_module_fw_flash_ntf_params { + u32 portid; + u32 seq; + bool closed_sock; +}; + +struct phy_req_info; + +struct ethnl_phy_dump_ctx { + struct phy_req_info *phy_req_info; + long unsigned int ifindex; + long unsigned int phy_index; +}; + +struct ethnl_request_ops { + u8 request_cmd; + u8 reply_cmd; + u16 hdr_attr; + unsigned int req_info_size; + unsigned int reply_data_size; + bool allow_nodev_do; + u8 set_ntf_cmd; + int (*parse_request)(struct ethnl_req_info *, struct nlattr **, struct netlink_ext_ack *); + int (*prepare_data)(const struct ethnl_req_info *, struct ethnl_reply_data *, const struct genl_info *); + int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *); + int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *); + void (*cleanup_data)(struct ethnl_reply_data *); + int (*set_validate)(struct ethnl_req_info *, struct genl_info *); + int (*set)(struct ethnl_req_info *, struct genl_info *); +}; + +struct ethnl_sock_priv { + struct net_device *dev; + u32 portid; + enum ethnl_sock_type type; +}; + +struct tsinfo_req_info; + +struct tsinfo_reply_data; + +struct ethnl_tsinfo_dump_ctx { + struct tsinfo_req_info *req_info; + struct tsinfo_reply_data *reply_data; + long unsigned int pos_ifindex; + bool netdev_dump_done; + long unsigned int pos_phyindex; + enum hwtstamp_provider_qualifier pos_phcqualifier; +}; + +struct ethnl_tunnel_info_dump_ctx { + struct ethnl_req_info req_info; + long unsigned int ifindex; +}; + +struct ethtool_ah_espip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 spi; + __u8 tos; +}; + +struct ethtool_ah_espip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 spi; + __u8 tclass; +}; + +struct ethtool_c33_pse_ext_state_info { + enum ethtool_c33_pse_ext_state c33_pse_ext_state; + union { + enum ethtool_c33_pse_ext_substate_error_condition error_condition; + enum ethtool_c33_pse_ext_substate_mr_pse_enable mr_pse_enable; + enum ethtool_c33_pse_ext_substate_option_detect_ted option_detect_ted; + enum ethtool_c33_pse_ext_substate_option_vport_lim option_vport_lim; + enum ethtool_c33_pse_ext_substate_ovld_detected ovld_detected; + enum ethtool_c33_pse_ext_substate_power_not_available power_not_available; + enum ethtool_c33_pse_ext_substate_short_detected short_detected; + u32 __c33_pse_ext_substate; + }; +}; + +struct ethtool_c33_pse_pw_limit_range { + u32 min; + u32 max; +}; + +struct ethtool_cmd { + __u32 cmd; + __u32 supported; + __u32 advertising; + __u16 speed; + __u8 duplex; + __u8 port; + __u8 phy_address; + __u8 transceiver; + __u8 autoneg; + __u8 mdio_support; + __u32 maxtxpkt; + __u32 maxrxpkt; + __u16 speed_hi; + __u8 eth_tp_mdix; + __u8 eth_tp_mdix_ctrl; + __u32 lp_advertising; + __u32 reserved[2]; +}; + +struct ethtool_cmis_cdb { + u8 cmis_rev; + u8 read_write_len_ext; + u16 max_completion_time; +}; + +struct ethtool_cmis_cdb_request { + __be16 id; + union { + struct { + __be16 epl_len; + u8 lpl_len; + u8 chk_code; + u8 resv1; + u8 resv2; + u8 payload[120]; + }; + struct { + __be16 epl_len; + u8 lpl_len; + u8 chk_code; + u8 resv1; + u8 resv2; + u8 payload[120]; + } body; + }; + u8 *epl; +}; + +struct ethtool_cmis_cdb_cmd_args { + struct ethtool_cmis_cdb_request req; + u16 max_duration; + u8 read_write_len_ext; + u8 msleep_pre_rpl; + u8 rpl_exp_len; + u8 flags; + char *err_msg; +}; + +struct ethtool_cmis_cdb_rpl_hdr { + u8 rpl_len; + u8 rpl_chk_code; +}; + +struct ethtool_cmis_cdb_rpl { + struct ethtool_cmis_cdb_rpl_hdr hdr; + u8 payload[120]; +}; + +struct ethtool_module_fw_flash_params { + __be32 password; + u8 password_valid: 1; +}; + +struct ethtool_cmis_fw_update_params { + struct net_device *dev; + struct ethtool_module_fw_flash_params params; + struct ethnl_module_fw_flash_ntf_params ntf_params; + const struct firmware *fw; +}; + +struct ethtool_flash { + __u32 cmd; + __u32 region; + char data[128]; +}; + +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_devlink_compat { + struct devlink *devlink; + union { + struct ethtool_flash efl; + struct ethtool_drvinfo info; + }; +}; + +struct ethtool_dump { + __u32 cmd; + __u32 version; + __u32 flag; + __u32 len; + __u8 data[0]; +}; + +struct ethtool_eee { + __u32 cmd; + __u32 supported; + __u32 advertised; + __u32 lp_advertised; + __u32 eee_active; + __u32 eee_enabled; + __u32 tx_lpi_enabled; + __u32 tx_lpi_timer; + __u32 reserved[2]; +}; + +struct ethtool_eeprom { + __u32 cmd; + __u32 magic; + __u32 offset; + __u32 len; + __u8 data[0]; +}; + +struct ethtool_eth_ctrl_stats { + enum ethtool_mac_stats_src src; + union { + struct { + u64 MACControlFramesTransmitted; + u64 MACControlFramesReceived; + u64 UnsupportedOpcodesReceived; + }; + struct { + u64 MACControlFramesTransmitted; + u64 MACControlFramesReceived; + u64 UnsupportedOpcodesReceived; + } stats; + }; +}; + +struct 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_phy_stats { + enum ethtool_mac_stats_src src; + union { + struct { + u64 SymbolErrorDuringCarrier; + }; + struct { + u64 SymbolErrorDuringCarrier; + } stats; + }; +}; + +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_flow_ext { + __u8 padding[2]; + unsigned char h_dest[6]; + __be16 vlan_etype; + __be16 vlan_tci; + __be32 data[2]; +}; + +struct ethtool_tcpip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be16 psrc; + __be16 pdst; + __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_usrip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 l4_4_bytes; + __u8 tclass; + __u8 l4_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_forced_speed_map { + u32 speed; + long unsigned int caps[2]; + const u32 *cap_arr; + u32 arr_size; +}; + +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_gstrings { + __u32 cmd; + __u32 string_set; + __u32 len; + __u8 data[0]; +}; + +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_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]; +}; + +struct ethtool_link_ksettings { + struct ethtool_link_settings base; + struct { + long unsigned int supported[2]; + long unsigned int advertising[2]; + long unsigned int lp_advertising[2]; + } link_modes; + u32 lanes; +}; + +struct ethtool_link_usettings { + struct ethtool_link_settings base; + struct { + __u32 supported[4]; + __u32 advertising[4]; + __u32 lp_advertising[4]; + } link_modes; +}; + +struct ethtool_mm_cfg { + u32 verify_time; + bool verify_enabled; + bool tx_enabled; + bool pmac_enabled; + u32 tx_min_frag_size; +}; + +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_stats { + u64 MACMergeFrameAssErrorCount; + u64 MACMergeFrameSmdErrorCount; + u64 MACMergeFrameAssOkCount; + u64 MACMergeFragCountRx; + u64 MACMergeFragCountTx; + u64 MACMergeHoldCount; +}; + +struct ethtool_modinfo { + __u32 cmd; + __u32 type; + __u32 eeprom_len; + __u32 reserved[8]; +}; + +struct ethtool_module_eeprom { + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; + u8 *data; +}; + +struct ethtool_module_fw_flash { + struct list_head list; + netdevice_tracker dev_tracker; + struct work_struct work; + struct ethtool_cmis_fw_update_params fw_update; +}; + +struct ethtool_module_power_mode_params { + enum ethtool_module_power_mode_policy policy; + enum ethtool_module_power_mode mode; +}; + +struct ethtool_netdev_state { + struct xarray rss_ctx; + struct mutex rss_lock; + unsigned int wol_enabled: 1; + unsigned int module_fw_flash_in_progress: 1; +}; + +struct ethtool_ringparam; + +struct kernel_ethtool_ringparam; + +struct ethtool_pauseparam; + +struct ethtool_stats; + +struct ethtool_rxfh_param; + +struct ethtool_rxfh_context; + +struct ethtool_tunable; + +struct ethtool_ops { + u32 cap_link_lanes_supported: 1; + u32 cap_rss_ctx_supported: 1; + u32 cap_rss_sym_xor_supported: 1; + u32 rxfh_per_ctx_key: 1; + u32 cap_rss_rxnfc_adds: 1; + u32 rxfh_indir_space; + u16 rxfh_key_space; + u16 rxfh_priv_size; + u32 rxfh_max_num_contexts; + u32 supported_coalesce_params; + u32 supported_ring_params; + u32 supported_hwtstamp_qualifiers; + 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 *, struct ethtool_rxfh_param *); + int (*set_rxfh)(struct net_device *, struct ethtool_rxfh_param *, struct netlink_ext_ack *); + int (*create_rxfh_context)(struct net_device *, struct ethtool_rxfh_context *, const struct ethtool_rxfh_param *, struct netlink_ext_ack *); + int (*modify_rxfh_context)(struct net_device *, struct ethtool_rxfh_context *, const struct ethtool_rxfh_param *, struct netlink_ext_ack *); + int (*remove_rxfh_context)(struct net_device *, struct ethtool_rxfh_context *, u32, struct netlink_ext_ack *); + 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 kernel_ethtool_ts_info *); + void (*get_ts_stats)(struct net_device *, struct ethtool_ts_stats *); + 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_keee *); + int (*set_eee)(struct net_device *, struct ethtool_keee *); + 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 *); + int (*set_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 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_per_queue_op { + __u32 cmd; + __u32 sub_command; + __u32 queue_mask[128]; + char data[0]; +}; + +struct ethtool_perm_addr { + __u32 cmd; + __u32 size; + __u8 data[0]; +}; + +struct phy_plca_cfg; + +struct phy_plca_status; + +struct phy_tdr_config; + +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 ethtool_phy_stats { + u64 rx_packets; + u64 rx_bytes; + u64 rx_errors; + u64 tx_packets; + u64 tx_bytes; + u64 tx_errors; +}; + +struct ethtool_pse_control_status { + enum ethtool_podl_pse_admin_state podl_admin_state; + enum ethtool_podl_pse_pw_d_status podl_pw_status; + enum ethtool_c33_pse_admin_state c33_admin_state; + enum ethtool_c33_pse_pw_d_status c33_pw_status; + u32 c33_pw_class; + u32 c33_actual_pw; + struct ethtool_c33_pse_ext_state_info c33_ext_state_info; + u32 c33_avail_pw_limit; + struct ethtool_c33_pse_pw_limit_range *c33_pw_limit_ranges; + u32 c33_pw_limit_nb_ranges; +}; + +struct ethtool_regs { + __u32 cmd; + __u32 version; + __u32 len; + __u8 data[0]; +}; + +struct ethtool_ringparam { + __u32 cmd; + __u32 rx_max_pending; + __u32 rx_mini_max_pending; + __u32 rx_jumbo_max_pending; + __u32 tx_max_pending; + __u32 rx_pending; + __u32 rx_mini_pending; + __u32 rx_jumbo_pending; + __u32 tx_pending; +}; + +struct ethtool_rmon_hist_range { + u16 low; + u16 high; +}; + +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 flow_dissector_key_basic { + __be16 n_proto; + u8 ip_proto; + u8 padding; +}; + +struct flow_dissector_key_ipv4_addrs { + __be32 src; + __be32 dst; +}; + +struct flow_dissector_key_ipv6_addrs { + struct in6_addr src; + struct in6_addr dst; +}; + +struct flow_dissector_key_ports { + union { + __be32 ports; + struct { + __be16 src; + __be16 dst; + }; + }; +}; + +struct flow_dissector_key_ip { + __u8 tos; + __u8 ttl; +}; + +struct flow_dissector_key_vlan { + union { + struct { + u16 vlan_id: 12; + u16 vlan_dei: 1; + u16 vlan_priority: 3; + }; + __be16 vlan_tci; + }; + __be16 vlan_tpid; + __be16 vlan_eth_type; + u16 padding; +}; + +struct flow_dissector_key_eth_addrs { + unsigned char dst[6]; + unsigned char src[6]; +}; + +struct 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 flow_dissector { + long long unsigned int used_keys; + short unsigned int offset[33]; +}; + +struct ethtool_rx_flow_match { + struct flow_dissector dissector; + struct ethtool_rx_flow_key key; + struct ethtool_rx_flow_key mask; +}; + +struct flow_rule; + +struct ethtool_rx_flow_rule { + struct flow_rule *rule; + long unsigned int priv[0]; +}; + +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_rx_flow_spec_input { + const struct ethtool_rx_flow_spec *fs; + u32 rss_ctx; +}; + +struct ethtool_rxfh { + __u32 cmd; + __u32 rss_context; + __u32 indir_size; + __u32 key_size; + __u8 hfunc; + __u8 input_xfrm; + __u8 rsvd8[2]; + __u32 rsvd32; + __u32 rss_config[0]; +}; + +struct ethtool_rxfh_context { + u32 indir_size; + u32 key_size; + u16 priv_size; + u8 hfunc; + u8 input_xfrm; + u8 indir_configured: 1; + u8 key_configured: 1; + u32 key_off; + long: 0; + u8 data[0]; +}; + +struct ethtool_rxfh_param { + u8 hfunc; + u32 indir_size; + u32 *indir; + u32 key_size; + u8 *key; + u32 rss_context; + u8 rss_delete; + u8 input_xfrm; +}; + +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_set_features_block { + __u32 valid; + __u32 requested; +}; + +struct ethtool_sfeatures { + __u32 cmd; + __u32 size; + struct ethtool_set_features_block features[0]; +}; + +struct ethtool_sset_info { + __u32 cmd; + __u32 reserved; + __u64 sset_mask; + __u32 data[0]; +}; + +struct ethtool_stats { + __u32 cmd; + __u32 n_stats; + __u64 data[0]; +}; + +struct ethtool_test { + __u32 cmd; + __u32 flags; + __u32 reserved; + __u32 len; + __u64 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_ts_stats { + union { + struct { + u64 pkts; + u64 onestep_pkts_unconfirmed; + u64 lost; + u64 err; + }; + struct { + u64 pkts; + u64 onestep_pkts_unconfirmed; + u64 lost; + u64 err; + } tx_stats; + }; +}; + +struct ethtool_tunable { + __u32 cmd; + __u32 id; + __u32 type_id; + __u32 len; + void *data[0]; +}; + +struct ethtool_value { + __u32 cmd; + __u32 data; +}; + +struct ethtool_wolinfo { + __u32 cmd; + __u32 supported; + __u32 wolopts; + __u8 sopass[6]; +}; + +struct input_handler; + +struct input_value; + +struct input_handle { + void *private; + int open; + const char *name; + struct input_dev *dev; + struct input_handler *handler; + unsigned int (*handle_events)(struct input_handle *, struct input_value *, unsigned int); + struct list_head d_node; + struct list_head h_node; +}; + +struct evdev_client; + +struct evdev { + int open; + struct input_handle handle; + struct evdev_client *grab; + struct list_head client_list; + spinlock_t client_lock; + struct mutex mutex; + struct device dev; + struct cdev cdev; + bool exist; +}; + +struct input_event { + __kernel_ulong_t __sec; + __kernel_ulong_t __usec; + __u16 type; + __u16 code; + __s32 value; +}; + +struct fasync_struct; + +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; + long unsigned int *evmasks[32]; + unsigned int bufsize; + struct input_event buffer[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_counter { + u32 count; + u32 flags; +}; + +struct event_file_link { + struct trace_event_file *file; + struct list_head list; +}; + +struct prog_entry; + +struct event_filter { + struct prog_entry *prog; + char *filter_string; +}; + +struct perf_cpu_context; + +struct perf_event_context; + +typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *); + +struct event_function_struct { + struct perf_event *event; + event_f func; + void *data; +}; + +struct event_header { + __be16 data_len; + __u8 notification_class: 3; + __u8 reserved1: 4; + __u8 nea: 1; + __u8 supp_event_class; +}; + +struct slot___3; + +struct event_info { + u32 event_type; + struct slot___3 *p_slot; + struct work_struct work; +}; + +struct its_vm; + +struct its_vlpi_map; + +struct event_lpi_map { + long unsigned int *lpi_map; + u16 *col_map; + irq_hw_number_t lpi_base; + int nr_lpis; + raw_spinlock_t vlpi_lock; + struct its_vm *vm; + struct its_vlpi_map *vlpi_maps; + int nr_vlpis; +}; + +struct event_map { + u32 reg_mask; + u32 event_bit; +}; + +struct event_mod_load { + struct list_head list; + char *module; + char *match; + char *system; + char *event; +}; + +struct event_probe_data { + struct trace_event_file *file; + long unsigned int count; + int ref; + bool enable; +}; + +struct event_subsystem { + struct list_head list; + const char *name; + struct event_filter *filter; + int ref_count; +}; + +struct event_trigger_data { + long unsigned int count; + int ref; + int flags; + struct event_trigger_ops *ops; + struct event_command *cmd_ops; + struct event_filter *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 *); +}; + +struct eventfd_ctx { + struct kref kref; + wait_queue_head_t wqh; + __u64 count; + unsigned int flags; + int id; +}; + +struct eventfs_attr { + int mode; + kuid_t uid; + kgid_t gid; +}; + +typedef int (*eventfs_callback)(const char *, umode_t *, void **, const struct file_operations **); + +typedef void (*eventfs_release)(const char *, void *); + +struct eventfs_entry { + const char *name; + eventfs_callback callback; + eventfs_release release; +}; + +struct eventfs_inode { + union { + struct list_head list; + struct callback_head rcu; + }; + struct list_head children; + const struct eventfs_entry *entries; + const char *name; + struct eventfs_attr *entry_attrs; + void *data; + struct eventfs_attr attr; + struct kref kref; + unsigned int is_freed: 1; + unsigned int is_events: 1; + unsigned int nr_entries: 30; + unsigned int ino; +}; + +struct eventfs_root_inode { + struct eventfs_inode ei; + struct dentry *events_dir; +}; + +struct eventpoll { + struct mutex mtx; + wait_queue_head_t wq; + wait_queue_head_t poll_wait; + struct list_head rdllist; + rwlock_t lock; + struct rb_root_cached rbr; + struct epitem *ovflist; + struct wakeup_source *ws; + struct user_struct *user; + struct file *file; + u64 gen; + struct hlist_head refs; + refcount_t refcount; + unsigned int napi_id; + u32 busy_poll_usecs; + u16 busy_poll_budget; + bool prefer_busy_poll; +}; + +struct kfifo { + union { + struct __kfifo kfifo; + unsigned char *type; + const unsigned char *const_type; + char (*rectype)[0]; + void *ptr; + const void *ptr_const; + }; + unsigned char buf[0]; +}; + +struct events_queue { + size_t sz; + struct kfifo kfifo; + struct work_struct notify_work; + struct workqueue_struct *wq; +}; + +struct ima_digest_data_hdr { + u8 algo; + u8 length; + union { + struct { + u8 unused; + u8 type; + } sha1; + struct { + u8 type; + u8 algo; + } ng; + u8 data[2]; + } xattr; +}; + +struct evm_digest { + struct ima_digest_data_hdr hdr; + char digest[64]; +}; + +struct integrity_inode_attributes { + u64 version; + long unsigned int ino; + dev_t dev; +}; + +struct evm_iint_cache { + long unsigned int flags; + enum integrity_status evm_status: 4; + struct integrity_inode_attributes metadata_inode; +}; + +struct evm_ima_xattr_data_hdr { + u8 type; +}; + +struct evm_ima_xattr_data { + union { + struct { + u8 type; + }; + struct evm_ima_xattr_data_hdr hdr; + }; + u8 data[0]; +}; + +struct evm_xattr { + struct evm_ima_xattr_data_hdr data; + u8 digest[20]; +}; + +struct evtchn_alloc_unbound { + domid_t dom; + domid_t remote_dom; + evtchn_port_t port; +}; + +struct evtchn_bind_interdomain { + domid_t remote_dom; + evtchn_port_t remote_port; + evtchn_port_t local_port; +}; + +struct evtchn_bind_ipi { + uint32_t vcpu; + evtchn_port_t port; +}; + +struct evtchn_bind_pirq { + uint32_t pirq; + uint32_t flags; + evtchn_port_t port; +}; + +struct evtchn_bind_vcpu { + evtchn_port_t port; + uint32_t vcpu; +}; + +struct evtchn_bind_virq { + uint32_t virq; + uint32_t vcpu; + evtchn_port_t port; +}; + +struct evtchn_close { + evtchn_port_t port; +}; + +struct evtchn_expand_array { + uint64_t array_gfn; +}; + +struct evtchn_fifo_control_block { + uint32_t ready; + uint32_t _rsvd; + event_word_t head[16]; +}; + +struct evtchn_fifo_queue { + uint32_t head[16]; +}; + +struct evtchn_init_control { + uint64_t control_gfn; + uint32_t offset; + uint32_t vcpu; + uint8_t link_bits; + uint8_t _pad[7]; +}; + +struct evtchn_loop_ctrl { + ktime_t timeout; + unsigned int count; + bool defer_eoi; +}; + +struct evtchn_ops { + unsigned int (*max_channels)(void); + unsigned int (*nr_channels)(void); + int (*setup)(evtchn_port_t); + void (*remove)(evtchn_port_t, unsigned int); + void (*bind_to_cpu)(evtchn_port_t, unsigned int, unsigned int); + void (*clear_pending)(evtchn_port_t); + void (*set_pending)(evtchn_port_t); + bool (*is_pending)(evtchn_port_t); + void (*mask)(evtchn_port_t); + void (*unmask)(evtchn_port_t); + void (*handle_events)(unsigned int, struct evtchn_loop_ctrl *); + void (*resume)(void); + int (*percpu_init)(unsigned int); + int (*percpu_deinit)(unsigned int); +}; + +struct evtchn_send { + evtchn_port_t port; +}; + +struct evtchn_set_priority { + evtchn_port_t port; + uint32_t priority; +}; + +struct evtchn_status { + domid_t dom; + evtchn_port_t port; + uint32_t status; + uint32_t vcpu; + union { + struct { + domid_t dom; + } unbound; + struct { + domid_t dom; + evtchn_port_t port; + } interdomain; + uint32_t pirq; + uint32_t virq; + } u; +}; + +struct evtchn_unmask { + evtchn_port_t port; +}; + +struct ewma_pkt_len { + long unsigned int internal; +}; + +struct exception_table_entry { + int insn; + int fixup; + short int type; + short int data; +}; + +struct exceptional_entry_key { + struct xarray *xa; + long unsigned int entry_start; +}; + +struct exec_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; +}; + +struct execmem_range { + long unsigned int start; + long unsigned int end; + long unsigned int fallback_start; + long unsigned int fallback_end; + pgprot_t pgprot; + unsigned int alignment; + enum execmem_range_flags flags; +}; + +struct execmem_info { + struct execmem_range ranges[5]; +}; + +struct execute_work { + struct work_struct work; +}; + +struct exit_boot_struct { + struct efi_boot_memmap *boot_memmap; + efi_memory_desc_t *runtime_map; + int runtime_entry_count; + void *new_fdt_addr; +}; + +struct 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 exiu_irq_data { + void *base; + u32 spi_base; +}; + +struct fid; + +struct iomap; + +struct handle_to_path_ctx; + +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 *); + int (*permission)(struct handle_to_path_ctx *, unsigned int); + struct file * (*open)(struct path *, unsigned int); + long unsigned int flags; +}; + +struct expresswire_timing { + long unsigned int poweroff_us; + long unsigned int detect_delay_us; + long unsigned int detect_us; + long unsigned int data_start_us; + long unsigned int end_of_data_low_us; + long unsigned int end_of_data_high_us; + long unsigned int short_bitset_us; + long unsigned int long_bitset_us; +}; + +struct expresswire_common_props { + struct gpio_desc *ctrl_gpio; + struct expresswire_timing timing; +}; + +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_prealloc_space; + +struct ext4_locality_group; + +struct ext4_allocation_context { + struct inode *ac_inode; + struct super_block *ac_sb; + struct ext4_free_extent ac_o_ex; + struct ext4_free_extent ac_g_ex; + struct ext4_free_extent ac_b_ex; + struct ext4_free_extent ac_f_ex; + ext4_grpblk_t ac_orig_goal_len; + __u32 ac_flags; + __u32 ac_groups_linear_remaining; + __u16 ac_groups_scanned; + __u16 ac_found; + __u16 ac_cX_found[5]; + __u16 ac_tail; + __u16 ac_buddy; + __u8 ac_status; + __u8 ac_criteria; + __u8 ac_2order; + __u8 ac_op; + struct folio *ac_bitmap_folio; + struct folio *ac_buddy_folio; + struct ext4_prealloc_space *ac_pa; + struct ext4_locality_group *ac_lg; +}; + +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_attr { + struct attribute attr; + short int attr_id; + short int attr_ptr; + short unsigned int attr_size; + union { + int offset; + void *explicit_ptr; + } u; +}; + +struct ext4_group_info; + +struct ext4_buddy { + struct folio *bd_buddy_folio; + void *bd_buddy; + struct folio *bd_bitmap_folio; + void *bd_bitmap; + struct ext4_group_info *bd_info; + struct super_block *bd_sb; + __u16 bd_blkbits; + ext4_group_t bd_group; +}; + +struct ext4_dir_entry { + __le32 inode; + __le16 rec_len; + __le16 name_len; + char name[255]; +}; + +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 ext4_dir_entry_tail { + __le32 det_reserved_zero1; + __le16 det_rec_len; + __u8 det_reserved_zero2; + __u8 det_reserved_ft; + __le32 det_checksum; +}; + +struct ext4_err_translation { + int code; + int errno; +}; + +struct ext4_es_stats { + long unsigned int 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 extent_status; + +struct ext4_es_tree { + struct rb_root root; + struct extent_status *cache_es; +}; + +struct ext4_extent; + +struct ext4_extent_idx; + +struct ext4_extent_header; + +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 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_extent_tail { + __le32 et_checksum; +}; + +struct ext4_fc_add_range { + __le32 fc_ino; + __u8 fc_ex[12]; +}; + +struct ext4_fc_alloc_region { + ext4_lblk_t lblk; + ext4_fsblk_t pblk; + int ino; + int len; +}; + +struct ext4_fc_del_range { + __le32 fc_ino; + __le32 fc_lblk; + __le32 fc_len; +}; + +struct ext4_fc_dentry_info { + __le32 fc_parent_ino; + __le32 fc_ino; + __u8 fc_dname[0]; +}; + +struct name_snapshot { + struct qstr name; + union shortname_store inline_name; +}; + +struct ext4_fc_dentry_update { + int fcd_op; + int fcd_parent; + int fcd_ino; + struct name_snapshot fcd_name; + struct list_head fcd_list; + struct list_head fcd_dilist; +}; + +struct ext4_fc_head { + __le32 fc_features; + __le32 fc_tid; +}; + +struct ext4_fc_inode { + __le32 fc_ino; + __u8 fc_raw_inode[0]; +}; + +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_fc_stats { + unsigned int fc_ineligible_reason_count[10]; + long unsigned int fc_num_commits; + long unsigned int fc_ineligible_commits; + long unsigned int fc_failed_commits; + long unsigned int fc_skipped_commits; + long unsigned int fc_numblks; + u64 s_fc_avg_commit_time; +}; + +struct ext4_fc_tail { + __le32 fc_tid; + __le32 fc_crc; +}; + +struct ext4_fc_tl { + __le16 fc_tag; + __le16 fc_len; +}; + +struct ext4_fc_tl_mem { + u16 fc_tag; + u16 fc_len; +}; + +struct fscrypt_str { + unsigned char *name; + u32 len; +}; + +struct ext4_filename { + const struct qstr *usr_fname; + struct fscrypt_str disk_name; + struct dx_hash_info hinfo; + struct fscrypt_str crypto_buf; + struct qstr cf_name; +}; + +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; +}; + +union fscrypt_policy; + +struct fscrypt_dummy_policy { + const union fscrypt_policy *policy; +}; + +struct ext4_fs_context { + char *s_qf_names[3]; + struct fscrypt_dummy_policy dummy_enc_policy; + int s_jquota_fmt; + short unsigned int qname_spec; + long unsigned int vals_s_flags; + long unsigned int mask_s_flags; + long unsigned int journal_devnum; + long unsigned int s_commit_interval; + long unsigned int s_stripe; + unsigned int s_inode_readahead_blks; + unsigned int s_want_extra_isize; + unsigned int s_li_wait_mult; + unsigned int s_max_dir_size_kb; + unsigned int journal_ioprio; + unsigned int vals_s_mount_opt; + unsigned int mask_s_mount_opt; + unsigned int vals_s_mount_opt2; + unsigned int mask_s_mount_opt2; + unsigned int opt_flags; + unsigned int spec; + u32 s_max_batch_time; + u32 s_min_batch_time; + kuid_t s_resuid; + kgid_t s_resgid; + ext4_fsblk_t s_sb_block; +}; + +struct ext4_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 ext4_getfsmap_info; + +struct ext4_getfsmap_dev { + int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); + u32 gfd_dev; +}; + +typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); + +struct ext4_getfsmap_info { + struct ext4_fsmap_head *gfi_head; + ext4_fsmap_format_t gfi_formatter; + void *gfi_format_arg; + ext4_fsblk_t gfi_next_fsblk; + u32 gfi_dev; + ext4_group_t gfi_agno; + struct ext4_fsmap gfi_low; + struct ext4_fsmap gfi_high; + struct ext4_fsmap gfi_lastfree; + struct list_head gfi_meta_list; + bool gfi_last; +}; + +struct 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_group_info { + long unsigned int 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_iloc { + struct buffer_head *bh; + long unsigned int offset; + ext4_group_t block_group; +}; + +struct ext4_inode { + __le16 i_mode; + __le16 i_uid; + __le32 i_size_lo; + __le32 i_atime; + __le32 i_ctime; + __le32 i_mtime; + __le32 i_dtime; + __le16 i_gid; + __le16 i_links_count; + __le32 i_blocks_lo; + __le32 i_flags; + union { + struct { + __le32 l_i_version; + } linux1; + struct { + __u32 h_i_translator; + } hurd1; + struct { + __u32 m_i_reserved1; + } masix1; + } osd1; + __le32 i_block[15]; + __le32 i_generation; + __le32 i_file_acl_lo; + __le32 i_size_high; + __le32 i_obso_faddr; + union { + struct { + __le16 l_i_blocks_high; + __le16 l_i_file_acl_high; + __le16 l_i_uid_high; + __le16 l_i_gid_high; + __le16 l_i_checksum_lo; + __le16 l_i_reserved; + } linux2; + struct { + __le16 h_i_reserved1; + __u16 h_i_mode_high; + __u16 h_i_uid_high; + __u16 h_i_gid_high; + __u32 h_i_author; + } hurd2; + struct { + __le16 h_i_reserved1; + __le16 m_i_file_acl_high; + __u32 m_i_reserved2[2]; + } masix2; + } osd2; + __le16 i_extra_isize; + __le16 i_checksum_hi; + __le32 i_ctime_extra; + __le32 i_mtime_extra; + __le32 i_atime_extra; + __le32 i_crtime; + __le32 i_crtime_extra; + __le32 i_version_hi; + __le32 i_projid; +}; + +struct ext4_pending_tree { + struct rb_root root; +}; + +struct jbd2_inode; + +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; + long unsigned int 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; + atomic_t i_unwritten; + 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; + unsigned int i_reserved_data_blocks; + struct rb_root i_prealloc_node; + rwlock_t i_prealloc_lock; + struct ext4_es_tree i_es_tree; + rwlock_t i_es_lock; + struct list_head i_es_list; + unsigned int i_es_all_nr; + unsigned int i_es_shk_nr; + ext4_lblk_t i_es_shrink_lblk; + ext4_group_t i_last_alloc_group; + 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; + 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 jbd2_journal_handle; + +typedef struct jbd2_journal_handle handle_t; + +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 ext4_io_end_vec { + struct list_head list; + loff_t offset; + ssize_t size; +}; + +struct ext4_io_submit { + struct writeback_control *io_wbc; + struct bio *io_bio; + ext4_io_end_t *io_end; + sector_t io_next_block; +}; + +struct ext4_journal_cb_entry { + struct list_head jce_list; + void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); +}; + +struct jbd2_buffer_trigger_type { + void (*t_frozen)(struct jbd2_buffer_trigger_type *, struct buffer_head *, void *, size_t); + void (*t_abort)(struct jbd2_buffer_trigger_type *, struct buffer_head *); +}; + +struct ext4_journal_trigger { + struct jbd2_buffer_trigger_type tr_triggers; + struct super_block *sb; +}; + +struct ext4_lazy_init { + long unsigned int li_state; + struct list_head li_request_list; + struct mutex li_list_mtx; +}; + +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; + long unsigned int lr_next_sched; + long unsigned int lr_timeout; +}; + +struct ext4_locality_group { + struct mutex lg_mutex; + struct list_head lg_prealloc_list[10]; + spinlock_t lg_prealloc_lock; +}; + +struct ext4_map_blocks { + ext4_fsblk_t m_pblk; + ext4_lblk_t m_lblk; + unsigned int m_len; + unsigned int m_flags; +}; + +struct ext4_mount_options { + long unsigned int s_mount_opt; + long unsigned int s_mount_opt2; + kuid_t s_resuid; + kgid_t s_resgid; + long unsigned int s_commit_interval; + u32 s_min_batch_time; + u32 s_max_batch_time; + int s_jquota_fmt; + char *s_qf_names[3]; +}; + +struct ext4_new_group_data; + +struct ext4_new_flex_group_data { + struct ext4_new_group_data *groups; + __u16 *bg_flags; + ext4_group_t resize_bg; + ext4_group_t count; +}; + +struct ext4_new_group_data { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 mdata_blocks; + __u32 free_clusters_count; +}; + +struct ext4_new_group_input { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 unused; +}; + +struct ext4_orphan_block { + atomic_t ob_free_entries; + struct buffer_head *ob_bh; +}; + +struct ext4_orphan_block_tail { + __le32 ob_magic; + __le32 ob_checksum; +}; + +struct ext4_orphan_info { + int of_blocks; + __u32 of_csum_seed; + struct ext4_orphan_block *of_binfo; +}; + +struct ext4_prealloc_space { + union { + struct rb_node inode_node; + struct list_head lg_list; + } pa_node; + struct list_head pa_group_list; + union { + struct list_head pa_tmp_list; + struct callback_head pa_rcu; + } u; + spinlock_t pa_lock; + atomic_t pa_count; + unsigned int pa_deleted; + ext4_fsblk_t pa_pstart; + ext4_lblk_t pa_lstart; + ext4_grpblk_t pa_len; + ext4_grpblk_t pa_free; + short unsigned int pa_type; + union { + rwlock_t *inode_lock; + spinlock_t *lg_lock; + } pa_node_lock; + struct inode *pa_inode; +}; + +struct ext4_rcu_ptr { + struct callback_head rcu; + void *ptr; +}; + +struct ext4_renament { + struct inode *dir; + struct dentry *dentry; + struct inode *inode; + bool is_dir; + int dir_nlink_delta; + struct buffer_head *bh; + struct ext4_dir_entry_2 *de; + int inlined; + struct buffer_head *dir_bh; + struct ext4_dir_entry_2 *parent_de; + int dir_inlined; +}; + +struct ext4_sb_encodings { + __u16 magic; + char *name; + unsigned int version; +}; + +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 *read_count; + struct rcuwait writer; + wait_queue_head_t waiters; + atomic_t block; +}; + +struct ext4_super_block; + +struct journal_s; + +struct ext4_system_blocks; + +struct flex_groups; + +struct shrinker; + +struct mb_cache; + +struct ext4_sb_info { + long unsigned int s_desc_size; + long unsigned int s_inodes_per_block; + long unsigned int s_blocks_per_group; + long unsigned int s_clusters_per_group; + long unsigned int s_inodes_per_group; + long unsigned int s_itb_per_group; + long unsigned int s_gdb_count; + long unsigned int s_desc_per_block; + ext4_group_t s_groups_count; + ext4_group_t s_blockfile_groups; + long unsigned int 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 **s_group_desc; + unsigned int s_mount_opt; + unsigned int s_mount_opt2; + long unsigned int s_mount_flags; + unsigned int s_def_mount_opt; + unsigned int s_def_mount_opt2; + ext4_fsblk_t s_sb_block; + atomic64_t s_resv_clusters; + kuid_t s_resuid; + kgid_t s_resgid; + short unsigned int s_mount_state; + short unsigned int 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; + long unsigned int s_ext4_flags; + struct mutex s_orphan_lock; + struct list_head s_orphan; + struct ext4_orphan_info s_orphan_info; + long unsigned int s_commit_interval; + u32 s_max_batch_time; + u32 s_min_batch_time; + struct file *s_journal_bdev_file; + char *s_qf_names[3]; + int s_jquota_fmt; + unsigned int s_want_extra_isize; + struct ext4_system_blocks *s_system_blks; + struct ext4_group_info ***s_group_info; + struct inode *s_buddy_cache; + spinlock_t s_md_lock; + short unsigned int *s_mb_offsets; + unsigned int *s_mb_maxs; + unsigned int s_group_info_size; + unsigned int s_mb_free_pending; + struct list_head s_freed_data_list[2]; + struct list_head s_discard_list; + struct work_struct s_discard_work; + atomic_t s_retry_alloc_pending; + struct list_head *s_mb_avg_fragment_size; + rwlock_t *s_mb_avg_fragment_size_locks; + struct list_head *s_mb_largest_free_orders; + rwlock_t *s_mb_largest_free_orders_locks; + long unsigned int s_stripe; + unsigned int s_mb_max_linear_groups; + unsigned int s_mb_stream_request; + unsigned int s_mb_max_to_scan; + unsigned int s_mb_min_to_scan; + unsigned int s_mb_stats; + unsigned int s_mb_order2_reqs; + unsigned int s_mb_group_prealloc; + unsigned int s_max_dir_size_kb; + long unsigned int s_mb_last_group; + long unsigned int s_mb_last_start; + unsigned int s_mb_prefetch; + unsigned int s_mb_prefetch_limit; + unsigned int s_mb_best_avail_max_trim_order; + atomic_t s_bal_reqs; + atomic_t s_bal_success; + atomic_t s_bal_allocated; + atomic_t s_bal_ex_scanned; + atomic_t s_bal_cX_ex_scanned[5]; + atomic_t s_bal_groups_scanned; + atomic_t s_bal_goals; + atomic_t s_bal_len_goals; + atomic_t s_bal_breaks; + atomic_t s_bal_2orders; + atomic_t s_bal_p2_aligned_bad_suggestions; + atomic_t s_bal_goal_fast_bad_suggestions; + atomic_t s_bal_best_avail_bad_suggestions; + atomic64_t s_bal_cX_groups_considered[5]; + atomic64_t s_bal_cX_hits[5]; + atomic64_t s_bal_cX_failed[5]; + atomic_t s_mb_buddies_generated; + atomic64_t s_mb_generation_time; + atomic_t s_mb_lost_chunks; + atomic_t s_mb_preallocated; + atomic_t s_mb_discarded; + atomic_t s_lock_busy; + struct ext4_locality_group *s_locality_groups; + long unsigned int 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 **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; + long unsigned int s_last_trim_minblks; + __u32 s_csum_seed; + struct shrinker *s_es_shrinker; + struct list_head s_es_list; + long int s_es_nr_inode; + struct ext4_es_stats s_es_stats; + struct mb_cache *s_ea_block_cache; + struct mb_cache *s_ea_inode_cache; + long: 64; + long: 64; + spinlock_t s_es_lock; + struct ext4_journal_trigger s_journal_triggers[1]; + struct ratelimit_state s_err_ratelimit_state; + struct ratelimit_state s_warning_ratelimit_state; + struct ratelimit_state s_msg_ratelimit_state; + atomic_t s_warning_count; + atomic_t s_msg_count; + struct fscrypt_dummy_policy s_dummy_enc_policy; + struct percpu_rw_semaphore s_writepages_rwsem; + struct dax_device *s_daxdev; + u64 s_dax_part_off; + errseq_t s_bdev_wb_err; + spinlock_t s_bdev_wb_lock; + spinlock_t s_error_lock; + int s_add_error_count; + int s_first_error_code; + __u32 s_first_error_line; + __u32 s_first_error_ino; + __u64 s_first_error_block; + const char *s_first_error_func; + time64_t s_first_error_time; + int s_last_error_code; + __u32 s_last_error_line; + __u32 s_last_error_ino; + __u64 s_last_error_block; + const char *s_last_error_func; + time64_t s_last_error_time; + struct work_struct s_sb_upd_work; + unsigned int s_awu_min; + unsigned int s_awu_max; + 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; +}; + +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 ext4_system_blocks { + struct rb_root root; + struct callback_head rcu; +}; + +struct ext4_system_zone { + struct rb_node node; + ext4_fsblk_t start_blk; + unsigned int count; + u32 ino; +}; + +struct ext4_xattr_entry; + +struct ext4_xattr_search { + struct ext4_xattr_entry *first; + void *base; + void *end; + struct ext4_xattr_entry *here; + int not_found; +}; + +struct ext4_xattr_block_find { + struct ext4_xattr_search s; + struct buffer_head *bh; +}; + +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 ext4_xattr_ibody_find { + struct ext4_xattr_search s; + struct ext4_iloc iloc; +}; + +struct ext4_xattr_ibody_header { + __le32 h_magic; +}; + +struct ext4_xattr_info { + const char *name; + const void *value; + size_t value_len; + int name_index; + int in_inode; +}; + +struct ext4_xattr_inode_array { + unsigned int count; + struct inode *inodes[0]; +}; + +struct ext_arg { + size_t argsz; + struct timespec64 ts; + const sigset_t *sig; + ktime_t min_time; + bool ts_set; +}; + +struct msg_msg; + +struct ext_wait_queue { + struct task_struct *task; + struct list_head list; + struct msg_msg *msg; + int state; +}; + +union extcon_property_value { + int intval; +}; + +struct extcon_cable { + struct extcon_dev *edev; + int cable_index; + struct attribute_group attr_g; + struct device_attribute attr_name; + struct device_attribute attr_state; + struct attribute *attrs[3]; + union extcon_property_value usb_propval[3]; + union extcon_property_value chg_propval[1]; + union extcon_property_value jack_propval[1]; + union extcon_property_value disp_propval[2]; + long unsigned int usb_bits[1]; + long unsigned int chg_bits[1]; + long unsigned int jack_bits[1]; + long unsigned int disp_bits[1]; +}; + +struct extcon_dev { + const char *name; + const unsigned int *supported_cable; + const u32 *mutually_exclusive; + struct device dev; + unsigned int id; + struct raw_notifier_head nh_all; + struct raw_notifier_head *nh; + struct list_head entry; + int max_supported; + spinlock_t lock; + u32 state; + struct device_type extcon_dev_type; + struct extcon_cable *cables; + struct attribute_group attr_g_muex; + struct attribute **attrs_muex; + struct device_attribute *d_attrs_muex; +}; + +struct extcon_dev_notifier_devres { + struct extcon_dev *edev; + unsigned int id; + struct notifier_block *nb; +}; + +struct extent_status { + struct rb_node rb_node; + ext4_lblk_t es_lblk; + ext4_lblk_t es_len; + ext4_fsblk_t es_pblk; +}; + +struct external_name { + atomic_t count; + struct callback_head head; + unsigned char name[0]; +}; + +struct extra_context { + struct _aarch64_ctx head; + __u64 datap; + __u32 size; + __u32 __reserved[3]; +}; + +struct f815xxa_data { + spinlock_t lock; + int idx; +}; + +struct f_owner_ex { + int type; + __kernel_pid_t pid; +}; + +struct failover_ops; + +struct failover { + struct list_head list; + struct net_device *failover_dev; + netdevice_tracker dev_tracker; + struct failover_ops *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 fan_fsid { + struct super_block *sb; + __kernel_fsid_t id; + bool weak; +}; + +struct fsnotify_event { + struct list_head list; +}; + +struct fanotify_event { + struct fsnotify_event fse; + struct hlist_node merge_list; + u32 mask; + struct { + unsigned int type: 3; + unsigned int hash: 29; + }; + struct pid *pid; +}; + +struct fanotify_fh { + u8 type; + u8 len; + u8 flags; + u8 pad; + unsigned char buf[0]; +}; + +struct fanotify_error_event { + struct fanotify_event fae; + s32 error; + u32 err_count; + __kernel_fsid_t fsid; + struct { + struct fanotify_fh object_fh; + unsigned char _inline_fh_buf[128]; + }; +}; + +struct fanotify_event_info_header { + __u8 info_type; + __u8 pad; + __u16 len; +}; + +struct fanotify_event_info_error { + struct fanotify_event_info_header hdr; + __s32 error; + __u32 error_count; +}; + +struct fanotify_event_info_fid { + struct fanotify_event_info_header hdr; + __kernel_fsid_t fsid; + unsigned char handle[0]; +}; + +struct fanotify_event_info_pidfd { + struct fanotify_event_info_header hdr; + __s32 pidfd; +}; + +struct fanotify_event_info_range { + struct fanotify_event_info_header hdr; + __u32 pad; + __u64 offset; + __u64 count; +}; + +struct fanotify_event_metadata { + __u32 event_len; + __u8 vers; + __u8 reserved; + __u16 metadata_len; + __u64 mask; + __s32 fd; + __s32 pid; +}; + +struct fanotify_fid_event { + struct fanotify_event fae; + __kernel_fsid_t fsid; + struct { + struct fanotify_fh object_fh; + unsigned char _inline_fh_buf[12]; + }; +}; + +struct fanotify_group_private_data { + struct hlist_head *merge_hash; + struct list_head access_list; + wait_queue_head_t access_waitq; + int flags; + int f_flags; + struct ucounts *ucounts; + mempool_t error_events_pool; +}; + +struct fanotify_info { + u8 dir_fh_totlen; + u8 dir2_fh_totlen; + u8 file_fh_totlen; + u8 name_len; + u8 name2_len; + u8 pad[3]; + unsigned char buf[0]; +}; + +struct fanotify_mark { + struct fsnotify_mark fsn_mark; + __kernel_fsid_t fsid; +}; + +struct fanotify_name_event { + struct fanotify_event fae; + __kernel_fsid_t fsid; + struct fanotify_info info; +}; + +struct fanotify_path_event { + struct fanotify_event fae; + struct path path; +}; + +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 fanotify_perm_event { + struct fanotify_event fae; + struct path path; + const loff_t *ppos; + size_t count; + u32 response; + short unsigned int state; + int fd; + union { + struct fanotify_response_info_header hdr; + struct fanotify_response_info_audit_rule audit_rule; + }; +}; + +struct fanotify_response { + __s32 fd; + __u32 response; +}; + +struct fanout_args { + __u16 id; + __u16 type_flags; + __u32 max_num_members; +}; + +struct faraday_pci { + struct device *dev; + void *base; + struct irq_domain *irqdomain; + struct pci_bus *bus; + struct clk *bus_clk; +}; + +struct faraday_pci_variant { + bool cascaded_irq; +}; + +struct fast_pool { + long unsigned int pool[4]; + long unsigned int last; + unsigned int count; + struct timer_list mix; +}; + +struct request_sock; + +struct tcp_fastopen_context; + +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 *ctx; +}; + +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 fat_bios_param_block { + u16 fat_sector_size; + u8 fat_sec_per_clus; + u16 fat_reserved; + u8 fat_fats; + u16 fat_dir_entries; + u16 fat_sectors; + u16 fat_fat_length; + u32 fat_total_sect; + u8 fat16_state; + u32 fat16_vol_id; + u32 fat32_length; + u32 fat32_root_cluster; + u16 fat32_info_sector; + u8 fat32_state; + u32 fat32_vol_id; +}; + +struct fat_boot_fsinfo { + __le32 signature1; + __le32 reserved1[120]; + __le32 signature2; + __le32 free_clusters; + __le32 next_cluster; + __le32 reserved2[4]; +}; + +struct fat_boot_sector { + __u8 ignored[3]; + __u8 system_id[8]; + __u8 sector_size[2]; + __u8 sec_per_clus; + __le16 reserved; + __u8 fats; + __u8 dir_entries[2]; + __u8 sectors[2]; + __u8 media; + __le16 fat_length; + __le16 secs_track; + __le16 heads; + __le32 hidden; + __le32 total_sect; + union { + struct { + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat16; + struct { + __le32 length; + __le16 flags; + __u8 version[2]; + __le32 root_cluster; + __le16 info_sector; + __le16 backup_boot; + __le16 reserved2[6]; + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat32; + }; +}; + +struct 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 fat_entry { + int entry; + union { + u8 *ent12_p[2]; + __le16 *ent16_p; + __le32 *ent32_p; + } u; + int nr_bhs; + struct buffer_head *bhs[2]; + struct inode *fat_inode; +}; + +struct fat_fid { + u32 i_gen; + u32 i_pos_low; + u16 i_pos_hi; + u16 parent_i_pos_hi; + u32 parent_i_pos_low; + u32 parent_i_gen; +}; + +struct fat_floppy_defaults { + unsigned int nr_sectors; + unsigned int sec_per_clus; + unsigned int dir_entries; + unsigned int media; + unsigned int fat_length; +}; + +struct fat_ioctl_filldir_callback { + struct dir_context ctx; + void *dirent; + int result; + const char *longname; + int long_len; + const char *shortname; + int short_len; +}; + +struct fat_mount_options { + kuid_t fs_uid; + kgid_t fs_gid; + short unsigned int fs_fmask; + short unsigned int fs_dmask; + short unsigned int codepage; + int time_offset; + char *iocharset; + short unsigned int shortname; + unsigned char name_check; + unsigned char errors; + unsigned char nfs; + short unsigned int 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; + unsigned int debug: 1; +}; + +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 fatent_operations { + void (*ent_blocknr)(struct super_block *, int, int *, sector_t *); + void (*ent_set_ptr)(struct fat_entry *, int); + int (*ent_bread)(struct super_block *, struct fat_entry *, int, sector_t); + int (*ent_get)(struct fat_entry *); + void (*ent_put)(struct fat_entry *, int); + int (*ent_next)(struct fat_entry *); +}; + +struct 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 fault_info { + int (*fn)(long unsigned int, long unsigned int, struct pt_regs *); + int sig; + int code; + const char *name; +}; + +struct faux_device { + struct device dev; +}; + +struct faux_device_ops { + int (*probe)(struct faux_device *); + void (*remove)(struct faux_device *); +}; + +struct faux_object { + struct faux_device faux_dev; + const struct faux_device_ops *faux_ops; +}; + +struct fb_bitfield { + __u32 offset; + __u32 length; + __u32 msb_right; +}; + +struct fb_blit_caps { + long unsigned int x[1]; + long unsigned int y[2]; + u32 len; + u32 flags; +}; + +struct fb_chroma { + __u32 redx; + __u32 greenx; + __u32 bluex; + __u32 whitex; + __u32 redy; + __u32 greeny; + __u32 bluey; + __u32 whitey; +}; + +struct fb_cmap { + __u32 start; + __u32 len; + __u16 *red; + __u16 *green; + __u16 *blue; + __u16 *transp; +}; + +struct fb_cmap32 { + u32 start; + u32 len; + compat_caddr_t red; + compat_caddr_t green; + compat_caddr_t blue; + compat_caddr_t transp; +}; + +struct fb_cmap_user { + __u32 start; + __u32 len; + __u16 *red; + __u16 *green; + __u16 *blue; + __u16 *transp; +}; + +struct fb_con2fbmap { + __u32 console; + __u32 framebuffer; +}; + +struct fb_copyarea { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 sx; + __u32 sy; +}; + +struct fbcurpos { + __u16 x; + __u16 y; +}; + +struct fb_image { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 fg_color; + __u32 bg_color; + __u8 depth; + const char *data; + struct fb_cmap cmap; +}; + +struct fb_cursor { + __u16 set; + __u16 enable; + __u16 rop; + const char *mask; + struct fbcurpos hot; + struct fb_image image; +}; + +struct fb_cvt_data { + u32 xres; + u32 yres; + u32 refresh; + u32 f_refresh; + u32 pixclock; + u32 hperiod; + u32 hblank; + u32 hfreq; + u32 htotal; + u32 vtotal; + u32 vsync; + u32 hsync; + u32 h_front_porch; + u32 h_back_porch; + u32 v_front_porch; + u32 v_back_porch; + u32 h_margin; + u32 v_margin; + u32 interlace; + u32 aspect_ratio; + u32 active_pixels; + u32 flags; + u32 status; +}; + +struct fb_deferred_io_pageref { + struct page *page; + long unsigned int offset; + struct list_head list; +}; + +struct fb_event { + struct fb_info *info; + void *data; +}; + +struct fb_fillrect { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 color; + __u32 rop; +}; + +struct fb_fix_screeninfo { + char id[16]; + long unsigned int smem_start; + __u32 smem_len; + __u32 type; + __u32 type_aux; + __u32 visual; + __u16 xpanstep; + __u16 ypanstep; + __u16 ywrapstep; + __u32 line_length; + long unsigned int mmio_start; + __u32 mmio_len; + __u32 accel; + __u16 capabilities; + __u16 reserved[2]; +}; + +struct fb_fix_screeninfo32 { + char id[16]; + compat_caddr_t smem_start; + u32 smem_len; + u32 type; + u32 type_aux; + u32 visual; + u16 xpanstep; + u16 ypanstep; + u16 ywrapstep; + u32 line_length; + compat_caddr_t mmio_start; + u32 mmio_len; + u32 accel; + u16 reserved[3]; +}; + +struct 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_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; + long unsigned int blit_x[1]; + long unsigned int blit_y[2]; + void (*writeio)(struct fb_info *, void *, void *, unsigned int); + void (*readio)(struct fb_info *, void *, void *, unsigned int); +}; + +struct lcd_device; + +struct fb_ops; + +struct fb_tile_ops; + +struct fb_info { + refcount_t count; + int node; + int flags; + int fbcon_rotate_hint; + struct mutex lock; + struct mutex mm_lock; + struct fb_var_screeninfo var; + struct fb_fix_screeninfo fix; + struct fb_monspecs monspecs; + struct fb_pixmap pixmap; + struct fb_pixmap sprite; + struct fb_cmap cmap; + struct list_head modelist; + struct fb_videomode *mode; + struct backlight_device *bl_dev; + struct mutex bl_curve_mutex; + u8 bl_curve[128]; + struct lcd_device *lcd_dev; + struct delayed_work deferred_work; + long unsigned int npagerefs; + struct fb_deferred_io_pageref *pagerefs; + struct fb_deferred_io *fbdefio; + const struct fb_ops *fbops; + struct device *device; + struct device *dev; + int class_flag; + struct fb_tile_ops *tileops; + union { + char *screen_base; + char *screen_buffer; + }; + long unsigned int screen_size; + void *pseudo_palette; + u32 state; + void *fbcon_par; + void *par; + bool skip_vt_switch; + bool skip_panic; +}; + +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_modelist { + struct list_head list; + struct fb_videomode mode; +}; + +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 *, size_t, loff_t *); + ssize_t (*fb_write)(struct fb_info *, const char *, 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, long unsigned int); + int (*fb_compat_ioctl)(struct fb_info *, unsigned int, long unsigned int); + 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_tilemap; + +struct fb_tilearea; + +struct fb_tilerect; + +struct fb_tileblit; + +struct fb_tilecursor; + +struct fb_tile_ops { + void (*fb_settile)(struct fb_info *, struct fb_tilemap *); + void (*fb_tilecopy)(struct fb_info *, struct fb_tilearea *); + void (*fb_tilefill)(struct fb_info *, struct fb_tilerect *); + void (*fb_tileblit)(struct fb_info *, struct fb_tileblit *); + void (*fb_tilecursor)(struct fb_info *, struct fb_tilecursor *); + int (*fb_get_tilemax)(struct fb_info *); +}; + +struct fb_tilearea { + __u32 sx; + __u32 sy; + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; +}; + +struct fb_tileblit { + __u32 sx; + __u32 sy; + __u32 width; + __u32 height; + __u32 fg; + __u32 bg; + __u32 length; + __u32 *indices; +}; + +struct fb_tilecursor { + __u32 sx; + __u32 sy; + __u32 mode; + __u32 shape; + __u32 fg; + __u32 bg; +}; + +struct fb_tilemap { + __u32 width; + __u32 height; + __u32 depth; + __u32 length; + const __u8 *data; +}; + +struct fb_tilerect { + __u32 sx; + __u32 sy; + __u32 width; + __u32 height; + __u32 index; + __u32 fg; + __u32 bg; + __u32 rop; +}; + +struct fbcon_display { + const u_char *fontdata; + int userfont; + u_short inverse; + short int yscroll; + int vrows; + int cursor_shape; + int con_rotate; + u32 xres_virtual; + u32 yres_virtual; + u32 height; + u32 width; + u32 bits_per_pixel; + u32 grayscale; + u32 nonstd; + u32 accel_flags; + u32 rotate; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + const struct fb_videomode *mode; +}; + +struct fbcon_ops { + void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); + void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); + void (*putcs)(struct vc_data *, struct fb_info *, const short unsigned int *, int, int, int, int, int); + void (*clear_margins)(struct vc_data *, struct fb_info *, int, int); + void (*cursor)(struct vc_data *, struct fb_info *, bool, int, int); + int (*update_start)(struct fb_info *); + int (*rotate_font)(struct fb_info *, struct vc_data *); + struct fb_var_screeninfo var; + struct delayed_work cursor_work; + struct fb_cursor cursor_state; + struct fbcon_display *p; + struct fb_info *info; + int currcon; + int cur_blink_jiffies; + int cursor_flash; + int cursor_reset; + int blank_state; + int graphics; + int save_graphics; + bool initialized; + int rotate; + int cur_rotate; + char *cursor_data; + u8 *fontbuffer; + u8 *fontdata; + u8 *cursor_src; + u32 cursor_size; + u32 fd_size; +}; + +struct fc_log { + refcount_t usage; + u8 head; + u8 tail; + u8 need_free; + struct module *owner; + char *buffer[8]; +}; + +struct fch_hdr { + __u8 daddr[6]; + __u8 saddr[6]; +}; + +struct fcllc { + __u8 dsap; + __u8 ssap; + __u8 llc; + __u8 protid[3]; + __be16 ethertype; +}; + +struct fd { + long unsigned int word; +}; + +typedef struct fd class_fd_pos_t; + +typedef struct fd class_fd_raw_t; + +typedef struct fd class_fd_t; + +struct fd_data { + fmode_t mode; + unsigned int fd; +}; + +struct fd_range { + unsigned int from; + unsigned int to; +}; + +struct fddi_8022_1_hdr { + __u8 dsap; + __u8 ssap; + __u8 ctrl; +}; + +struct fddi_8022_2_hdr { + __u8 dsap; + __u8 ssap; + __u8 ctrl_1; + __u8 ctrl_2; +}; + +struct fddi_snap_hdr { + __u8 dsap; + __u8 ssap; + __u8 ctrl; + __u8 oui[3]; + __be16 ethertype; +}; + +struct fddihdr { + __u8 fc; + __u8 daddr[6]; + __u8 saddr[6]; + union { + struct fddi_8022_1_hdr llc_8022_1; + struct fddi_8022_2_hdr llc_8022_2; + struct fddi_snap_hdr llc_snap; + } hdr; +} __attribute__((packed)); + +struct fdma; + +struct fdma_ops { + int (*dataptr_cb)(struct fdma *, int, int, u64 *); + int (*nextptr_cb)(struct fdma *, int, u64 *); +}; + +struct fdma_dcb; + +struct fdma { + void *priv; + struct fdma_dcb *dcbs; + struct fdma_dcb *last_dcb; + dma_addr_t dma; + int size; + int db_index; + int dcb_index; + u32 n_dcbs; + u32 n_dbs; + u32 db_size; + u32 channel_id; + struct fdma_ops ops; +}; + +struct fdma_db { + u64 dataptr; + u64 status; +}; + +struct fdma_dcb { + u64 nextptr; + u64 info; + struct fdma_db db[15]; +}; + +struct fdt_errtabent { + const char *str; +}; + +struct fdt_header { + fdt32_t magic; + fdt32_t totalsize; + fdt32_t off_dt_struct; + fdt32_t off_dt_strings; + fdt32_t off_mem_rsvmap; + fdt32_t version; + fdt32_t last_comp_version; + fdt32_t boot_cpuid_phys; + fdt32_t size_dt_strings; + fdt32_t size_dt_struct; +}; + +struct fdt_node_header { + fdt32_t tag; + char name[0]; +}; + +struct fdt_property { + fdt32_t tag; + fdt32_t len; + fdt32_t nameoff; + char data[0]; +}; + +struct fdt_reserve_entry { + fdt64_t address; + fdt64_t size; +}; + +struct fdtable { + unsigned int max_fds; + struct file **fd; + long unsigned int *close_on_exec; + long unsigned int *open_fds; + long unsigned int *full_fds_bits; + struct callback_head rcu; +}; + +struct features_reply_data { + struct ethnl_reply_data base; + u32 hw[2]; + u32 wanted[2]; + u32 active[2]; + u32 nochange[2]; + u32 all[2]; +}; + +struct fec_devinfo { + u32 quirks; +}; + +struct fec_dma_devres { + size_t size; + void *vaddr; + dma_addr_t dma_handle; +}; + +struct fec_enet_priv_txrx_info { + int offset; + struct page *page; + struct sk_buff *skb; +}; + +struct xdp_mem_info { + u32 type; + u32 id; +}; + +struct xdp_rxq_info { + struct net_device *dev; + u32 queue_index; + u32 reg_state; + struct xdp_mem_info mem; + u32 frag_size; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct page_pool; + +struct fec_enet_priv_rx_q { + struct bufdesc_prop bd; + struct fec_enet_priv_txrx_info rx_skb_info[256]; + struct page_pool *page_pool; + struct xdp_rxq_info xdp_rxq; + u32 stats[7]; + u8 id; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct fec_tx_buffer { + void *buf_p; + enum fec_txbuf_type type; +}; + +struct fec_enet_priv_tx_q { + struct bufdesc_prop bd; + unsigned char *tx_bounce[1024]; + struct fec_tx_buffer tx_buf[1024]; + short unsigned int tx_stop_threshold; + short unsigned int tx_wake_threshold; + struct bufdesc *dirty_tx; + char *tso_hdrs; + dma_addr_t tso_hdrs_dma; +}; + +struct gro_list { + struct list_head list; + int count; +}; + +struct napi_config; + +struct napi_struct { + struct list_head poll_list; + long unsigned int state; + int weight; + u32 defer_hard_irqs_count; + long unsigned int gro_bitmask; + int (*poll)(struct napi_struct *, int); + int poll_owner; + int list_owner; + struct net_device *dev; + struct gro_list gro_hash[8]; + struct sk_buff *skb; + struct list_head rx_list; + int rx_count; + unsigned int napi_id; + struct hrtimer timer; + struct task_struct *thread; + long unsigned int gro_flush_timeout; + long unsigned int irq_suspend_timeout; + u32 defer_hard_irqs; + struct list_head dev_list; + struct hlist_node napi_hash_node; + int irq; + int index; + struct napi_config *config; +}; + +struct ptp_pin_desc; + +struct ptp_system_timestamp; + +struct system_device_crosststamp; + +struct ptp_clock_request; + +struct ptp_clock_info { + struct module *owner; + char name[32]; + s32 max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int n_pins; + int pps; + struct ptp_pin_desc *pin_config; + int (*adjfine)(struct ptp_clock_info *, long int); + int (*adjphase)(struct ptp_clock_info *, s32); + s32 (*getmaxphase)(struct ptp_clock_info *); + int (*adjtime)(struct ptp_clock_info *, s64); + int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); + int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); + int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); + int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); + int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); + long int (*do_aux_work)(struct ptp_clock_info *); +}; + +struct fec_stop_mode_gpr { + struct regmap *gpr; + u8 reg; + u8 bit; +}; + +struct pm_qos_request { + struct plist_node node; + struct pm_qos_constraints *qos; +}; + +struct ptp_clock; + +struct imx_sc_ipc; + +struct fec_enet_private { + void *hwp; + struct net_device *netdev; + struct clk *clk_ipg; + struct clk *clk_ahb; + struct clk *clk_ref; + struct clk *clk_enet_out; + struct clk *clk_ptp; + struct clk *clk_2x_txclk; + bool ptp_clk_on; + struct mutex ptp_clk_mutex; + unsigned int num_tx_queues; + unsigned int num_rx_queues; + struct fec_enet_priv_tx_q *tx_queue[3]; + struct fec_enet_priv_rx_q *rx_queue[3]; + unsigned int total_tx_ring_size; + unsigned int total_rx_ring_size; + struct platform_device *pdev; + int dev_id; + struct mii_bus *mii_bus; + uint phy_speed; + phy_interface_t phy_interface; + struct device_node *phy_node; + bool rgmii_txc_dly; + bool rgmii_rxc_dly; + bool rpm_active; + int link; + int full_duplex; + int speed; + int irq[3]; + bool bufdesc_ex; + int pause_flag; + int wol_flag; + int wake_irq; + u32 quirks; + struct napi_struct napi; + int csum_flags; + struct work_struct tx_timeout_work; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_caps; + spinlock_t tmreg_lock; + struct cyclecounter cc; + struct timecounter tc; + u32 cycle_speed; + int hwts_rx_en; + int hwts_tx_en; + struct delayed_work time_keep; + struct regulator *reg_phy; + struct fec_stop_mode_gpr stop_gpr; + struct pm_qos_request pm_qos_req; + unsigned int tx_align; + unsigned int rx_align; + unsigned int rx_pkts_itr; + unsigned int rx_time_itr; + unsigned int tx_pkts_itr; + unsigned int tx_time_itr; + unsigned int itr_clk_rate; + unsigned int clk_ref_rate; + unsigned int ptp_inc; + int pps_channel; + unsigned int reload_period; + int pps_enable; + unsigned int next_counter; + struct hrtimer perout_timer; + u64 perout_stime; + struct imx_sc_ipc *ipc_handle; + struct bpf_prog *xdp_prog; + struct { + int pps_enable; + u64 ns_sys; + u64 ns_phc; + u32 at_corr; + u8 at_inc_corr; + } ptp_saved_state; + u64 ethtool_stats[0]; +}; + +struct fec_platform_data { + phy_interface_t phy; + unsigned char mac[6]; + void (*sleep_mode_enable)(int); +}; + +struct fec_stat_grp { + u64 stats[9]; + u8 cnt; +}; + +struct fec_reply_data { + struct ethnl_reply_data base; + long unsigned int fec_link_modes[2]; + u32 active_fec; + u8 fec_auto; + struct fec_stat_grp corr; + struct fec_stat_grp uncorr; + struct fec_stat_grp corr_bits; +}; + +struct fec_stat { + char name[32]; + u16 offset; +}; + +struct fentry_trace_entry_head { + struct trace_entry ent; + long unsigned int ip; +}; + +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; + }; + long unsigned int immediate; + void *data; + }; +}; + +struct trace_seq; + +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 fexit_trace_entry_head { + struct trace_entry ent; + long unsigned int func; + long unsigned int ret_ip; +}; + +struct ff_condition_effect { + __u16 right_saturation; + __u16 left_saturation; + __s16 right_coeff; + __s16 left_coeff; + __u16 deadband; + __s16 center; +}; + +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_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; + long unsigned int ffbit[2]; + struct mutex mutex; + int max_effects; + struct ff_effect *effects; + struct file *effect_owners[0]; +}; + +struct ff_trigger { + __u16 button; + __u16 interval; +}; + +struct ff_replay { + __u16 length; + __u16 delay; +}; + +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 *custom_data; +}; + +struct ff_rumble_effect { + __u16 strong_magnitude; + __u16 weak_magnitude; +}; + +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 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 ffa_mem_region_addr_range { + u64 address; + u32 pg_cnt; + u32 reserved; +}; + +struct ffa_composite_mem_region { + u32 total_pg_cnt; + u32 addr_range_cnt; + u64 reserved; + struct ffa_mem_region_addr_range constituents[0]; +}; + +struct ffa_mem_region { + u16 sender_id; + u16 attributes; + u32 flags; + u64 handle; + u64 tag; + u32 ep_mem_size; + u32 ep_count; + u32 ep_mem_offset; + u32 reserved[3]; +}; + +struct ffa_mem_region_attributes { + u16 receiver; + u8 attrs; + u8 flag; + u32 composite_off; + u64 reserved; +}; + +struct fgraph_cpu_data { + pid_t last_pid; + int depth; + int depth_irq; + int ignore; + long unsigned int enter_funcs[50]; +}; + +struct ftrace_graph_ent { + long unsigned int func; + int depth; +} __attribute__((packed)); + +struct ftrace_graph_ent_entry { + struct trace_entry ent; + struct ftrace_graph_ent graph_ent; +}; + +struct fgraph_retaddr_ent { + long unsigned int func; + int depth; + long unsigned int retaddr; +} __attribute__((packed)); + +struct fgraph_retaddr_ent_entry { + struct trace_entry ent; + struct fgraph_retaddr_ent graph_ent; +}; + +struct ftrace_graph_ret { + long unsigned int func; + long unsigned int retval; + int depth; + unsigned int overrun; +}; + +struct ftrace_graph_ret_entry { + struct trace_entry ent; + struct ftrace_graph_ret ret; + long long unsigned int calltime; + long long unsigned int rettime; +}; + +struct fgraph_data { + struct fgraph_cpu_data *cpu_data; + union { + struct ftrace_graph_ent_entry ent; + struct fgraph_retaddr_ent_entry rent; + } ent; + struct ftrace_graph_ret_entry ret; + int failed; + int cpu; + long: 0; +} __attribute__((packed)); + +struct fgraph_ops; + +typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *, struct fgraph_ops *, struct ftrace_regs *); + +typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *, struct fgraph_ops *, struct ftrace_regs *); + +typedef void (*ftrace_func_t)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *); + +struct ftrace_hash; + +struct ftrace_ops_hash { + struct ftrace_hash *notrace_hash; + struct ftrace_hash *filter_hash; + struct mutex regex_lock; +}; + +typedef int (*ftrace_ops_func_t)(struct ftrace_ops *, enum ftrace_ops_cmd); + +struct ftrace_ops { + ftrace_func_t func; + struct ftrace_ops *next; + long unsigned int 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; + long unsigned int trampoline; + long unsigned int trampoline_size; + struct list_head list; + struct list_head subop_list; + ftrace_ops_func_t ops_func; + struct ftrace_ops *managed; + long unsigned int direct_call; +}; + +struct fgraph_ops { + trace_func_graph_ent_t entryfunc; + trace_func_graph_ret_t retfunc; + struct ftrace_ops ops; + void *private; + trace_func_graph_ent_t saved_func; + int idx; +}; + +struct fgraph_times { + long long unsigned int calltime; + long long unsigned int sleeptime; +}; + +struct mtk_fh; + +struct fh_operation { + int (*hopping)(struct mtk_fh *, unsigned int, unsigned int); + int (*ssc_enable)(struct mtk_fh *, u32); +}; + +struct fh_pll_data { + int pll_id; + int fh_id; + int fh_ver; + u32 fhx_offset; + u32 dds_mask; + u32 slope0_value; + u32 slope1_value; + u32 sfstrx_en; + u32 frddsx_en; + u32 fhctlx_en; + u32 tgl_org; + u32 dvfs_tri; + u32 pcwchg; + u32 dt_val; + u32 df_val; + u32 updnlmt_shft; + u32 msk_frddsx_dys; + u32 msk_frddsx_dts; +}; + +struct fh_pll_regs { + void *reg_hp_en; + void *reg_clk_con; + void *reg_rst_con; + void *reg_slope0; + void *reg_slope1; + void *reg_cfg; + void *reg_updnlmt; + void *reg_dds; + void *reg_dvfs; + void *reg_mon; +}; + +struct fh_pll_state { + void *base; + u32 fh_enable; + u32 ssc_rate; +}; + +struct fhctl_offset { + u32 offset_hp_en; + u32 offset_clk_con; + u32 offset_rst_con; + u32 offset_slope0; + u32 offset_slope1; + u32 offset_cfg; + u32 offset_updnlmt; + u32 offset_dds; + u32 offset_dvfs; + u32 offset_mon; +}; + +struct 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 *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 fib4_rule { + struct fib_rule common; + u8 dst_len; + u8 src_len; + dscp_t dscp; + u8 dscp_full: 1; + __be32 src; + __be32 srcmask; + __be32 dst; + __be32 dstmask; + u32 tclassid; +}; + +struct fib6_node; + +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 nlmsghdr; + +struct nl_info { + struct nlmsghdr *nlh; + struct net *nl_net; + u32 portid; + u8 skip_notify: 1; + u8 skip_notify_kernel: 1; +}; + +struct fib6_config { + u32 fc_table; + u32 fc_metric; + int fc_dst_len; + int fc_src_len; + int fc_ifindex; + u32 fc_flags; + u32 fc_protocol; + u16 fc_type; + u16 fc_delete_all_nh: 1; + u16 fc_ignore_dev_down: 1; + u16 __unused: 14; + u32 fc_nh_id; + struct in6_addr fc_dst; + struct in6_addr fc_src; + struct in6_addr fc_prefsrc; + struct in6_addr fc_gateway; + long unsigned int 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 fib6_dump_arg { + struct net *net; + struct notifier_block *nb; + struct netlink_ext_ack *extack; +}; + +struct fib_notifier_info { + int family; + struct netlink_ext_ack *extack; +}; + +struct fib6_entry_notifier_info { + struct fib_notifier_info info; + struct fib6_info *rt; + unsigned int nsiblings; +}; + +struct fib6_gc_args { + int timeout; + int more; +}; + +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 **nhc_pcpu_rth_output; + struct rtable *nhc_rth_input; + struct fnhe_hash_bucket *nhc_exceptions; +}; + +struct rt6_info; + +struct rt6_exception_bucket; + +struct fib6_nh { + struct fib_nh_common nh_common; + long unsigned int last_probe; + struct rt6_info **rt6i_pcpu; + struct rt6_exception_bucket *rt6i_exception_bucket; +}; + +struct fib6_table; + +struct nexthop; + +struct fib6_info { + struct fib6_table *fib6_table; + struct fib6_info *fib6_next; + struct fib6_node *fib6_node; + union { + struct list_head fib6_siblings; + struct list_head nh_list; + }; + unsigned int fib6_nsiblings; + refcount_t fib6_ref; + long unsigned int expires; + struct hlist_node gc_link; + struct dst_metrics *fib6_metrics; + struct rt6key fib6_dst; + u32 fib6_flags; + struct rt6key fib6_src; + struct rt6key fib6_prefsrc; + u32 fib6_metric; + u8 fib6_protocol; + u8 fib6_type; + u8 offload; + u8 trap; + u8 offload_failed; + u8 should_flush: 1; + u8 dst_nocount: 1; + u8 dst_nopolicy: 1; + u8 fib6_destroying: 1; + u8 unused: 4; + struct callback_head rcu; + struct nexthop *nh; + struct fib6_nh fib6_nh[0]; +}; + +struct fib6_nh_age_excptn_arg { + struct fib6_gc_args *gc_args; + long unsigned int now; +}; + +struct fib6_nh_del_cached_rt_arg { + struct fib6_config *cfg; + struct fib6_info *f6i; +}; + +struct fib6_nh_dm_arg { + struct net *net; + const struct in6_addr *saddr; + int oif; + int flags; + struct fib6_nh *nh; +}; + +struct rt6_rtnl_dump_arg; + +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_excptn_arg { + struct rt6_info *rt; + int plen; +}; + +struct fib6_nh_frl_arg { + u32 flags; + int oif; + int strict; + int *mpri; + bool *do_rr; + struct fib6_nh *nh; +}; + +struct fib6_nh_match_arg { + const struct net_device *dev; + const struct in6_addr *gw; + struct fib6_nh *match; +}; + +struct fib6_nh_pcpu_arg { + struct fib6_info *from; + const struct fib6_table *table; +}; + +struct fib6_result; + +struct flowi6; + +struct fib6_nh_rd_arg { + struct fib6_result *res; + struct flowi6 *fl6; + const struct in6_addr *gw; + struct rt6_info **ret; +}; + +struct fib6_node { + struct fib6_node *parent; + struct fib6_node *left; + struct fib6_node *right; + struct fib6_node *subtree; + struct fib6_info *leaf; + __u16 fn_bit; + __u16 fn_flags; + int fn_sernum; + struct fib6_info *rr_ptr; + struct callback_head rcu; +}; + +struct fib6_result { + struct fib6_nh *nh; + struct fib6_info *f6i; + u32 fib6_flags; + u8 fib6_type; + struct rt6_info *rt6; +}; + +struct fib6_rule { + struct fib_rule common; + struct rt6key src; + struct rt6key dst; + __be32 flowlabel; + __be32 flowlabel_mask; + dscp_t dscp; + u8 dscp_full: 1; +}; + +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 hlist_head tb6_gc_hlist; +}; + +struct fib_info; + +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 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 fib_dump_filter { + u32 table_id; + bool filter_set; + bool dump_routes; + bool dump_exceptions; + bool rtnl_held; + unsigned char protocol; + unsigned char rt_type; + unsigned int flags; + struct net_device *dev; +}; + +struct 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_nh { + struct fib_nh_common nh_common; + struct hlist_node nh_hash; + struct fib_info *nh_parent; + __u32 nh_tclassid; + __be32 nh_saddr; + int nh_saddr_genid; +}; + +struct fib_info { + struct hlist_node fib_hash; + struct hlist_node fib_lhash; + struct list_head nh_list; + struct net *fib_net; + refcount_t fib_treeref; + refcount_t fib_clntref; + unsigned int fib_flags; + unsigned char fib_dead; + unsigned char fib_protocol; + unsigned char fib_scope; + unsigned char fib_type; + __be32 fib_prefsrc; + u32 fib_tb_id; + u32 fib_priority; + struct dst_metrics *fib_metrics; + int fib_nhs; + bool fib_nh_is_v6; + bool nh_updated; + bool pfsrc_removed; + struct nexthop *nh; + struct callback_head rcu; + struct fib_nh fib_nh[0]; +}; + +struct fib_lookup_arg { + void *lookup_ptr; + const void *lookup_data; + void *result; + struct fib_rule *rule; + u32 table; + int flags; +}; + +struct fib_nh_exception { + struct fib_nh_exception *fnhe_next; + int fnhe_genid; + __be32 fnhe_daddr; + u32 fnhe_pmtu; + bool fnhe_mtu_locked; + __be32 fnhe_gw; + long unsigned int fnhe_expires; + struct rtable *fnhe_rth_input; + struct rtable *fnhe_rth_output; + long unsigned int fnhe_stamp; + struct callback_head rcu; +}; + +struct fib_nh_notifier_info { + struct fib_notifier_info info; + struct fib_nh *fib_nh; +}; + +struct fib_notifier_net { + struct list_head fib_notifier_ops; + struct atomic_notifier_head fib_chain; +}; + +struct fib_notifier_ops { + int family; + struct list_head list; + unsigned int (*fib_seq_read)(const struct net *); + int (*fib_dump)(struct net *, struct notifier_block *, struct netlink_ext_ack *); + struct module *owner; + struct callback_head rcu; +}; + +struct fib_prop { + int error; + u8 scope; +}; + +struct fib_table; + +struct fib_result { + __be32 prefix; + unsigned char prefixlen; + unsigned char nh_sel; + unsigned char type; + unsigned char scope; + u32 tclassid; + dscp_t dscp; + struct fib_nh_common *nhc; + struct fib_info *fi; + struct fib_table *table; + struct hlist_head *fa_head; +}; + +struct fib_result_nl { + __be32 fl_addr; + u32 fl_mark; + unsigned char fl_tos; + unsigned char fl_scope; + unsigned char tb_id_in; + unsigned char tb_id; + unsigned char prefixlen; + unsigned char nh_sel; + unsigned char type; + unsigned char scope; + int err; +}; + +struct key_vector; + +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 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_rule_hdr { + __u8 family; + __u8 dst_len; + __u8 src_len; + __u8 tos; + __u8 table; + __u8 res1; + __u8 res2; + __u8 action; + __u32 flags; +}; + +struct fib_rule_notifier_info { + struct fib_notifier_info info; + struct fib_rule *rule; +}; + +struct fib_rule_uid_range { + __u32 start; + __u32 end; +}; + +struct flowi; + +struct fib_rules_ops { + int family; + struct list_head list; + int rule_size; + int addr_size; + int unresolved_rules; + int nr_goto_rules; + unsigned int fib_rules_seq; + int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *); + bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *); + int (*match)(struct fib_rule *, struct flowi *, int); + int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *); + int (*delete)(struct fib_rule *); + int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **); + int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *); + size_t (*nlmsg_payload)(struct fib_rule *); + void (*flush_cache)(struct fib_rules_ops *); + int nlgroup; + struct list_head rules_list; + struct module *owner; + struct net *fro_net; + struct callback_head rcu; +}; + +struct fib_table { + struct hlist_node tb_hlist; + u32 tb_id; + int tb_num_default; + struct callback_head rcu; + long unsigned int *tb_data; + long unsigned int __data[0]; +}; + +struct fib_trie_iter { + struct seq_net_private p; + struct fib_table *tb; + struct key_vector *tnode; + unsigned int index; + unsigned int depth; +}; + +struct fid { + union { + struct { + u32 ino; + u32 gen; + u32 parent_ino; + u32 parent_gen; + } i32; + struct { + u64 ino; + u32 gen; + } __attribute__((packed)) i64; + struct { + u32 block; + u16 partref; + u16 parent_partref; + u32 generation; + u32 parent_block; + u32 parent_generation; + } udf; + struct { + struct {} __empty_raw; + __u32 raw[0]; + }; + }; +}; + +struct field_var { + struct hist_field *var; + struct hist_field *val; +}; + +struct field_var_hist { + struct hist_trigger_data *hist_data; + char *cmd; +}; + +struct fiemap_extent { + __u64 fe_logical; + __u64 fe_physical; + __u64 fe_length; + __u64 fe_reserved64[2]; + __u32 fe_flags; + __u32 fe_reserved[3]; +}; + +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 fiemap_extent_info { + unsigned int fi_flags; + unsigned int fi_extents_mapped; + unsigned int fi_extents_max; + struct fiemap_extent *fi_extents_start; +}; + +struct file__safe_trusted { + struct inode *f_inode; +}; + +struct file_clone_range { + __s64 src_fd; + __u64 src_offset; + __u64 src_length; + __u64 dest_offset; +}; + +struct file_dedupe_range_info { + __s64 dest_fd; + __u64 dest_offset; + __u64 bytes_deduped; + __s32 status; + __u32 reserved; +}; + +struct file_dedupe_range { + __u64 src_offset; + __u64 src_length; + __u16 dest_count; + __u16 reserved1; + __u32 reserved2; + struct file_dedupe_range_info info[0]; +}; + +struct file_handle { + __u32 handle_bytes; + int handle_type; + unsigned char f_handle[0]; +}; + +struct file_lock_core { + struct file_lock_core *flc_blocker; + struct list_head flc_list; + struct hlist_node flc_link; + struct list_head flc_blocked_requests; + struct list_head flc_blocked_member; + fl_owner_t flc_owner; + unsigned int flc_flags; + unsigned char flc_type; + pid_t flc_pid; + int flc_link_cpu; + wait_queue_head_t flc_wait; + struct file *flc_file; +}; + +struct lease_manager_operations; + +struct file_lease { + struct file_lock_core c; + struct fasync_struct *fl_fasync; + long unsigned int fl_break_time; + long unsigned int fl_downgrade_time; + const struct lease_manager_operations *fl_lmops; +}; + +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_core c; + loff_t fl_start; + loff_t fl_end; + const struct file_lock_operations *fl_ops; + const struct lock_manager_operations *fl_lmops; + union { + struct nfs_lock_info nfs_fl; + struct nfs4_lock_info nfs4_fl; + struct { + struct list_head link; + int state; + unsigned int debug_id; + } afs; + struct { + struct inode *inode; + } ceph; + } fl_u; +}; + +struct file_lock_context { + spinlock_t flc_lock; + struct list_head flc_flock; + struct list_head flc_posix; + struct list_head flc_lease; +}; + +struct file_lock_list_struct { + spinlock_t lock; + struct hlist_head hlist; +}; + +struct file_lock_operations { + void (*fl_copy_lock)(struct file_lock *, struct file_lock *); + void (*fl_release_private)(struct file_lock *); +}; + +struct io_uring_cmd; + +struct file_operations { + struct module *owner; + fop_flags_t fop_flags; + loff_t (*llseek)(struct file *, loff_t, int); + ssize_t (*read)(struct file *, char *, size_t, loff_t *); + ssize_t (*write)(struct file *, const char *, size_t, loff_t *); + ssize_t (*read_iter)(struct kiocb *, struct iov_iter *); + ssize_t (*write_iter)(struct kiocb *, struct iov_iter *); + int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int); + int (*iterate_shared)(struct file *, struct dir_context *); + __poll_t (*poll)(struct file *, struct poll_table_struct *); + long int (*unlocked_ioctl)(struct file *, unsigned int, long unsigned int); + long int (*compat_ioctl)(struct file *, unsigned int, long unsigned int); + int (*mmap)(struct file *, struct vm_area_struct *); + 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 *); + long unsigned int (*get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + int (*check_flags)(int); + int (*flock)(struct file *, int, struct file_lock *); + ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); + ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct file *); + int (*setlease)(struct file *, int, struct file_lease **, void **); + long int (*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 tpm_space; + +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 file_range { + const struct path *path; + loff_t pos; + size_t count; +}; + +struct file_region { + struct list_head link; + long int from; + long int to; + struct page_counter *reservation_counter; + struct cgroup_subsys_state *css; +}; + +struct file_security_struct { + u32 sid; + u32 fown_sid; + u32 isid; + u32 pseqno; +}; + +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 fileattr { + u32 flags; + u32 fsx_xflags; + u32 fsx_extsize; + u32 fsx_nextents; + u32 fsx_projid; + u32 fsx_cowextsize; + bool flags_valid: 1; + bool fsx_valid: 1; +}; + +struct filename { + const char *name; + const char *uptr; + atomic_t refcnt; + struct audit_names *aname; + const char iname[0]; +}; + +struct filename_trans_datum { + struct ebitmap stypes; + u32 otype; + struct filename_trans_datum *next; +}; + +struct filename_trans_key { + u32 ttype; + u16 tclass; + const char *name; +}; + +struct files_stat_struct { + long unsigned int nr_files; + long unsigned int nr_free_files; + long unsigned int max_files; +}; + +struct files_struct { + atomic_t count; + bool resize_in_progress; + wait_queue_head_t resize_wait; + struct fdtable *fdt; + struct fdtable fdtab; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t file_lock; + unsigned int next_fd; + long unsigned int close_on_exec_init[1]; + long unsigned int open_fds_init[1]; + long unsigned int full_fds_bits_init[1]; + struct file *fd_array[64]; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct filter_list { + struct list_head list; + struct event_filter *filter; +}; + +struct filter_match_data { + const char *filter; + const char *notfilter; + size_t index; + size_t size; + long unsigned int *addrs; + struct module **mods; +}; + +struct filter_parse_error { + int lasterr; + int lasterr_pos; +}; + +struct regex; + +struct ftrace_event_field; + +struct filter_pred { + struct regex *regex; + struct cpumask *mask; + short unsigned int *ops; + struct ftrace_event_field *field; + u64 val; + u64 val2; + enum filter_pred_fn fn_num; + int offset; + int not; + int op; +}; + +struct find_child_walk_data { + struct acpi_device *adev; + u64 address; + int score; + bool check_sta; + bool check_children; +}; + +struct find_interface_arg { + int minor; + struct device_driver *drv; +}; + +struct kernel_symbol; + +struct find_symbol_arg { + const char *name; + bool gplok; + bool warn; + struct module *owner; + const u32 *crc; + const struct kernel_symbol *sym; + enum mod_license license; +}; + +struct finfo { + efi_file_info_t info; + efi_char16_t filename[256]; +}; + +struct fintek_8250 { + u16 pid; + u16 base_port; + u8 index; + u8 key; +}; + +struct firmware { + size_t size; + const u8 *data; + void *priv; +}; + +struct firmware_cache { + spinlock_t lock; + struct list_head head; + int state; + spinlock_t name_lock; + struct list_head fw_names; + struct delayed_work work; + struct notifier_block pm_notify; +}; + +struct firmware_fallback_config { + unsigned int force_sysfs_fallback; + unsigned int ignore_sysfs_fallback; + int old_timeout; + int loading_timeout; +}; + +struct firmware_map_entry { + u64 start; + u64 end; + const char *type; + struct list_head list; + struct kobject kobj; +}; + +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 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; +}; + +struct fixed_voltage_config { + const char *supply_name; + const char *input_supply; + int microvolts; + unsigned int startup_delay; + unsigned int off_on_delay; + unsigned int enabled_at_boot: 1; + struct regulator_init_data *init_data; +}; + +struct regulator_state { + int uV; + int min_uV; + int max_uV; + unsigned int mode; + int enabled; + bool changeable; +}; + +struct notification_limit { + int prot; + int err; + int warn; +}; + +struct regulation_constraints { + const char *name; + int min_uV; + int max_uV; + int uV_offset; + int min_uA; + int max_uA; + int ilim_uA; + int pw_budget_mW; + int system_load; + u32 *max_spread; + int max_uV_step; + unsigned int valid_modes_mask; + unsigned int valid_ops_mask; + int input_uV; + struct regulator_state state_disk; + struct regulator_state state_mem; + struct regulator_state state_standby; + struct notification_limit over_curr_limits; + struct notification_limit over_voltage_limits; + struct notification_limit under_voltage_limits; + struct notification_limit temp_limits; + suspend_state_t initial_state; + unsigned int initial_mode; + unsigned int ramp_delay; + unsigned int settling_time; + unsigned int settling_time_up; + unsigned int settling_time_down; + unsigned int enable_time; + unsigned int uv_less_critical_window_ms; + unsigned int active_discharge; + unsigned int always_on: 1; + unsigned int boot_on: 1; + unsigned int apply_uV: 1; + unsigned int ramp_disable: 1; + unsigned int soft_start: 1; + unsigned int pull_down: 1; + unsigned int system_critical: 1; + unsigned int over_current_protection: 1; + unsigned int over_current_detection: 1; + unsigned int over_voltage_detection: 1; + unsigned int under_voltage_detection: 1; + unsigned int over_temp_detection: 1; +}; + +struct regulator_consumer_supply; + +struct regulator_init_data { + const char *supply_regulator; + struct regulation_constraints constraints; + int num_consumer_supplies; + struct regulator_consumer_supply *consumer_supplies; + void *driver_data; +}; + +struct pdev_archdata {}; + +struct platform_device_id; + +struct mfd_cell; + +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 fixed_regulator_data { + struct fixed_voltage_config cfg; + struct regulator_init_data init_data; + struct platform_device pdev; +}; + +struct flag_settings { + unsigned int flags; + unsigned int mask; +}; + +struct flagsbuf { + char buf[8]; +}; + +struct flex_groups { + atomic64_t free_clusters; + atomic_t free_inodes; + atomic_t used_dirs; +}; + +struct flock { + short int l_type; + short int l_whence; + __kernel_off_t l_start; + __kernel_off_t l_len; + __kernel_pid_t l_pid; +}; + +struct flock64 { + short int l_type; + short int l_whence; + __kernel_loff_t l_start; + __kernel_loff_t l_len; + __kernel_pid_t l_pid; +}; + +typedef void (*action_destr)(void *); + +struct nf_flowtable; + +struct ip_tunnel_info; + +struct psample_group; + +struct flow_action_entry { + enum flow_action_id id; + u32 hw_index; + long unsigned int 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 { + long unsigned int 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_action_cookie { + u32 cookie_len; + u8 cookie[0]; +}; + +struct flow_block { + struct list_head cb_list; +}; + +typedef int flow_setup_cb_t(enum tc_setup_type, 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 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 flow_cls_common_offload { + u32 chain_index; + __be16 protocol; + u32 prio; + bool skip_sw; + struct netlink_ext_ack *extack; +}; + +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_cls_offload { + struct flow_cls_common_offload common; + enum flow_cls_command command; + bool use_act_stats; + long unsigned int 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; +}; + +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_dissector_key_arp { + __u32 sip; + __u32 tip; + __u8 op; + unsigned char sha[6]; + unsigned char tha[6]; +}; + +struct flow_dissector_key_cfm { + u8 mdl_ver; + u8 opcode; +}; + +struct flow_dissector_key_control { + u16 thoff; + u16 addr_type; + u32 flags; +}; + +struct flow_dissector_key_ct { + u16 ct_state; + u16 ct_zone; + u32 ct_mark; + u32 ct_labels[4]; +}; + +struct flow_dissector_key_enc_opts { + u8 data[255]; + u8 len; + u32 dst_opt_type; +}; + +struct flow_dissector_key_hash { + u32 hash; +}; + +struct flow_dissector_key_icmp { + struct { + u8 type; + u8 code; + }; + u16 id; +}; + +struct flow_dissector_key_ipsec { + __be32 spi; +}; + +struct flow_dissector_key_keyid { + __be32 keyid; +}; + +struct flow_dissector_key_l2tpv3 { + __be32 session_id; +}; + +struct flow_dissector_key_meta { + int ingress_ifindex; + u16 ingress_iftype; + u8 l2_miss; +}; + +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_num_of_vlans { + u8 num_of_vlans; +}; + +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_pppoe { + __be16 session_id; + __be16 ppp_proto; + __be16 type; +}; + +struct flow_dissector_key_tags { + u32 flow_label; +}; + +struct flow_dissector_key_tcp { + __be16 flags; +}; + +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; +}; + +typedef int flow_indr_block_bind_cb_t(struct net_device *, struct Qdisc *, void *, enum tc_setup_type, void *, void *, void (*)(struct flow_block_cb *)); + +struct flow_indr_dev { + struct list_head list; + flow_indr_block_bind_cb_t *cb; + void *cb_priv; + refcount_t refcnt; +}; + +struct flow_keys { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; + struct flow_dissector_key_tags tags; + struct flow_dissector_key_vlan vlan; + struct flow_dissector_key_vlan cvlan; + struct flow_dissector_key_keyid keyid; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_addrs addrs; + long: 0; +}; + +struct flow_keys_basic { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; +}; + +struct flow_keys_digest { + u8 data[16]; +}; + +struct flow_match { + struct flow_dissector *dissector; + void *mask; + void *key; +}; + +struct flow_match_arp { + struct flow_dissector_key_arp *key; + struct flow_dissector_key_arp *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_ct { + struct flow_dissector_key_ct *key; + struct flow_dissector_key_ct *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_eth_addrs { + struct flow_dissector_key_eth_addrs *key; + struct flow_dissector_key_eth_addrs *mask; +}; + +struct flow_match_icmp { + struct flow_dissector_key_icmp *key; + struct flow_dissector_key_icmp *mask; +}; + +struct flow_match_ip { + struct flow_dissector_key_ip *key; + struct flow_dissector_key_ip *mask; +}; + +struct flow_match_ipsec { + struct flow_dissector_key_ipsec *key; + struct flow_dissector_key_ipsec *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_l2tpv3 { + struct flow_dissector_key_l2tpv3 *key; + struct flow_dissector_key_l2tpv3 *mask; +}; + +struct flow_match_meta { + struct flow_dissector_key_meta *key; + struct flow_dissector_key_meta *mask; +}; + +struct flow_match_mpls { + struct flow_dissector_key_mpls *key; + struct flow_dissector_key_mpls *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_pppoe { + struct flow_dissector_key_pppoe *key; + struct flow_dissector_key_pppoe *mask; +}; + +struct flow_match_tcp { + struct flow_dissector_key_tcp *key; + struct flow_dissector_key_tcp *mask; +}; + +struct flow_match_vlan { + struct flow_dissector_key_vlan *key; + struct flow_dissector_key_vlan *mask; +}; + +struct flow_offload_action { + struct netlink_ext_ack *extack; + enum offload_act_command command; + enum flow_action_id id; + u32 index; + long unsigned int cookie; + struct flow_stats stats; + struct flow_action action; +}; + +struct flow_rule { + struct flow_match match; + struct flow_action action; +}; + +struct flowi_tunnel { + __be64 tun_id; +}; + +struct flowi_common { + int flowic_oif; + int flowic_iif; + int flowic_l3mdev; + __u32 flowic_mark; + __u8 flowic_tos; + __u8 flowic_scope; + __u8 flowic_proto; + __u8 flowic_flags; + __u32 flowic_secid; + kuid_t flowic_uid; + __u32 flowic_multipath_hash; + struct flowi_tunnel flowic_tun_key; +}; + +union flowi_uli { + struct { + __be16 dport; + __be16 sport; + } ports; + struct { + __u8 type; + __u8 code; + } icmpt; + __be32 gre_key; + struct { + __u8 type; + } mht; +}; + +struct flowi4 { + struct flowi_common __fl_common; + __be32 saddr; + __be32 daddr; + union flowi_uli uli; +}; + +struct flowi6 { + struct flowi_common __fl_common; + struct in6_addr daddr; + struct in6_addr saddr; + __be32 flowlabel; + union flowi_uli uli; + __u32 mp_hash; +}; + +struct flowi { + union { + struct flowi_common __fl_common; + struct flowi4 ip4; + struct flowi6 ip6; + } u; +}; + +struct flush_backlogs { + cpumask_t flush_cpus; + struct work_struct w[0]; +}; + +struct flush_busy_ctx_data { + struct blk_mq_hw_ctx *hctx; + struct list_head *list; +}; + +struct fman_intr_src { + void (*isr_cb)(void *); + void *src_handle; +}; + +struct fman; + +typedef irqreturn_t fman_exceptions_cb(struct fman *, enum fman_exceptions); + +typedef irqreturn_t fman_bus_error_cb(struct fman *, u8, u64, u8, u16); + +struct fman_dts_params { + void *base_addr; + struct resource *res; + u8 id; + int err_irq; + u16 clk_freq; + u32 qman_channel_base; + u32 num_of_qman_channels; + struct resource muram_res; +}; + +struct fman_fpm_regs; + +struct fman_bmi_regs; + +struct fman_qmi_regs; + +struct fman_dma_regs; + +struct fman_hwp_regs; + +struct fman_kg_regs; + +struct fman_state_struct; + +struct fman_cfg; + +struct muram_info; + +struct fman_keygen; + +struct fman { + struct device *dev; + void *base_addr; + struct fman_intr_src intr_mng[24]; + struct fman_fpm_regs *fpm_regs; + struct fman_bmi_regs *bmi_regs; + struct fman_qmi_regs *qmi_regs; + struct fman_dma_regs *dma_regs; + struct fman_hwp_regs *hwp_regs; + struct fman_kg_regs *kg_regs; + fman_exceptions_cb *exception_cb; + fman_bus_error_cb *bus_error_cb; + spinlock_t spinlock; + struct fman_state_struct *state; + struct fman_cfg *cfg; + struct muram_info *muram; + struct fman_keygen *keygen; + long unsigned int cam_offset; + size_t cam_size; + long unsigned int fifo_offset; + size_t fifo_size; + u32 liodn_base[64]; + u32 liodn_offset[64]; + struct fman_dts_params dts_params; +}; + +struct fman_bmi_regs { + u32 fmbm_init; + u32 fmbm_cfg1; + u32 fmbm_cfg2; + u32 res000c[5]; + u32 fmbm_ievr; + u32 fmbm_ier; + u32 fmbm_ifr; + u32 res002c[5]; + u32 fmbm_arb[8]; + u32 res0060[12]; + u32 fmbm_dtc[3]; + u32 res009c; + u32 fmbm_dcv[12]; + u32 fmbm_dcm[12]; + u32 fmbm_gde; + u32 fmbm_pp[63]; + u32 res0200; + u32 fmbm_pfs[63]; + u32 res0300; + u32 fmbm_spliodn[63]; +}; + +struct fman_buf_pool_depletion { + bool pools_grp_mode_enable; + u8 num_of_pools; + bool pools_to_consider[64]; + bool single_pool_mode_enable; + bool pools_to_consider_for_single_mode[64]; +}; + +struct fman_buffer_prefix_content { + u16 priv_data_size; + bool pass_prs_result; + bool pass_time_stamp; + bool pass_hash_result; + u16 data_align; +}; + +struct fman_cfg { + u8 disp_limit_tsh; + u8 prs_disp_tsh; + u8 plcr_disp_tsh; + u8 kg_disp_tsh; + u8 bmi_disp_tsh; + u8 qmi_enq_disp_tsh; + u8 qmi_deq_disp_tsh; + u8 fm_ctl1_disp_tsh; + u8 fm_ctl2_disp_tsh; + int dma_cache_override; + enum fman_dma_aid_mode dma_aid_mode; + u32 dma_axi_dbg_num_of_beats; + u32 dma_cam_num_of_entries; + u32 dma_watchdog; + u8 dma_comm_qtsh_asrt_emer; + u32 dma_write_buf_tsh_asrt_emer; + u32 dma_read_buf_tsh_asrt_emer; + u8 dma_comm_qtsh_clr_emer; + u32 dma_write_buf_tsh_clr_emer; + u32 dma_read_buf_tsh_clr_emer; + u32 dma_sos_emergency; + int dma_dbg_cnt_mode; + int catastrophic_err; + int dma_err; + u32 exceptions; + u16 clk_freq; + u32 cam_base_addr; + u32 fifo_base_addr; + u32 total_fifo_size; + u32 total_num_of_tasks; + u32 qmi_def_tnums_thresh; +}; + +struct fman_dma_regs { + u32 fmdmsr; + u32 fmdmmr; + u32 fmdmtr; + u32 fmdmhy; + u32 fmdmsetr; + u32 fmdmtah; + u32 fmdmtal; + u32 fmdmtcid; + u32 fmdmra; + u32 fmdmrd; + u32 fmdmwcr; + u32 fmdmebcr; + u32 fmdmccqdr; + u32 fmdmccqvr1; + u32 fmdmccqvr2; + u32 fmdmcqvr3; + u32 fmdmcqvr4; + u32 fmdmcqvr5; + u32 fmdmsefrc; + u32 fmdmsqfrc; + u32 fmdmssrc; + u32 fmdmdcr; + u32 fmdmemsr; + u32 res005c; + u32 fmdmplr[32]; + u32 res00e0[968]; +}; + +struct fman_ext_pool_params { + u8 id; + u16 size; +}; + +struct fman_ext_pools { + u8 num_of_pools_used; + struct fman_ext_pool_params ext_buf_pool[8]; +}; + +struct fman_fpm_regs { + u32 fmfp_tnc; + u32 fmfp_prc; + u32 fmfp_brkc; + u32 fmfp_mxd; + u32 fmfp_dist1; + u32 fmfp_dist2; + u32 fm_epi; + u32 fm_rie; + u32 fmfp_fcev[4]; + u32 res0030[4]; + u32 fmfp_cee[4]; + u32 res0050[4]; + u32 fmfp_tsc1; + u32 fmfp_tsc2; + u32 fmfp_tsp; + u32 fmfp_tsf; + u32 fm_rcr; + u32 fmfp_extc; + u32 fmfp_ext1; + u32 fmfp_ext2; + u32 fmfp_drd[16]; + u32 fmfp_dra; + u32 fm_ip_rev_1; + u32 fm_ip_rev_2; + u32 fm_rstc; + u32 fm_cld; + u32 fm_npi; + u32 fmfp_exte; + u32 fmfp_ee; + u32 fmfp_cev[4]; + u32 res00f0[4]; + u32 fmfp_ps[50]; + u32 res01c8[14]; + u32 fmfp_clfabc; + u32 fmfp_clfcc; + u32 fmfp_clfaval; + u32 fmfp_clfbval; + u32 fmfp_clfcval; + u32 fmfp_clfamsk; + u32 fmfp_clfbmsk; + u32 fmfp_clfcmsk; + u32 fmfp_clfamc; + u32 fmfp_clfbmc; + u32 fmfp_clfcmc; + u32 fmfp_decceh; + u32 res0230[116]; + u32 fmfp_ts[128]; + u32 res0600[640]; +}; + +struct fman_hwp_regs { + u32 res0000[529]; + u32 fmprrpimac; + u32 res[494]; +}; + +struct fman_iram_regs { + u32 iadd; + u32 idata; + u32 itcfg; + u32 iready; +}; + +struct keygen_scheme { + bool used; + u8 hw_port_id; + u32 base_fqid; + u32 hash_fqid_count; + bool use_hashing; + bool symmetric_hash; + u8 hashShift; + u32 match_vector; +}; + +struct fman_keygen { + struct keygen_scheme schemes[32]; + struct fman_kg_regs *keygen_regs; +}; + +struct fman_kg_pe_regs { + u32 fmkg_pe_sp; + u32 fmkg_pe_cpp; +}; + +struct fman_kg_scheme_regs { + u32 kgse_mode; + u32 kgse_ekfc; + u32 kgse_ekdv; + u32 kgse_bmch; + u32 kgse_bmcl; + u32 kgse_fqb; + u32 kgse_hc; + u32 kgse_ppc; + u32 kgse_gec[8]; + u32 kgse_spc; + u32 kgse_dv0; + u32 kgse_dv1; + u32 kgse_ccbs; + u32 kgse_mv; + u32 kgse_om; + u32 kgse_vsp; +}; + +struct fman_kg_regs { + u32 fmkg_gcr; + u32 res004; + u32 res008; + u32 fmkg_eer; + u32 fmkg_eeer; + u32 res014; + u32 res018; + u32 fmkg_seer; + u32 fmkg_seeer; + u32 fmkg_gsr; + u32 fmkg_tpc; + u32 fmkg_serc; + u32 res030[4]; + u32 fmkg_fdor; + u32 fmkg_gdv0r; + u32 fmkg_gdv1r; + u32 res04c[6]; + u32 fmkg_feer; + u32 res068[38]; + union { + u32 fmkg_indirect[63]; + struct fman_kg_scheme_regs fmkg_sch; + struct fman_kg_pe_regs fmkg_pe; + }; + u32 fmkg_ar; +}; + +struct mac_device___2; + +typedef void fman_mac_exception_cb(struct mac_device___2 *, enum fman_mac_exceptions); + +struct fman_rev_info { + u8 major; + u8 minor; +}; + +struct memac_regs; + +struct memac_cfg; + +struct phylink_pcs; + +struct fman_mac { + struct memac_regs *regs; + u64 addr; + struct mac_device___2 *dev_id; + fman_mac_exception_cb *exception_cb; + fman_mac_exception_cb *event_cb; + struct eth_hash_t *multicast_addr_hash; + struct eth_hash_t *unicast_addr_hash; + u8 mac_id; + u32 exceptions; + struct memac_cfg *memac_drv_param; + void *fm; + struct fman_rev_info fm_rev_info; + struct phy *serdes; + struct phylink_pcs *sgmii_pcs; + struct phylink_pcs *qsgmii_pcs; + struct phylink_pcs *xfi_pcs; + bool allmulti_enabled; + bool rgmii_no_half_duplex; +}; + +struct mac_device___3; + +typedef void fman_mac_exception_cb___2(struct mac_device___3 *, enum fman_mac_exceptions); + +struct tgec_regs; + +struct tgec_cfg; + +struct fman_mac___2 { + struct tgec_regs *regs; + u64 addr; + u16 max_speed; + struct mac_device___3 *dev_id; + fman_mac_exception_cb___2 *exception_cb; + fman_mac_exception_cb___2 *event_cb; + struct eth_hash_t *multicast_addr_hash; + struct eth_hash_t *unicast_addr_hash; + u8 mac_id; + u32 exceptions; + struct tgec_cfg *cfg; + void *fm; + struct fman_rev_info fm_rev_info; + bool allmulti_enabled; +}; + +typedef void fman_mac_exception_cb___3(struct mac_device *, enum fman_mac_exceptions); + +struct phylink_pcs_ops; + +struct phylink_pcs { + long unsigned int supported_interfaces[1]; + const struct phylink_pcs_ops *ops; + struct phylink *phylink; + bool neg_mode; + bool poll; + bool rxc_always_on; +}; + +struct mdio_device; + +struct fman_mac___3 { + struct dtsec_regs *regs; + u64 addr; + phy_interface_t phy_if; + u16 max_speed; + struct mac_device *dev_id; + fman_mac_exception_cb___3 *exception_cb; + fman_mac_exception_cb___3 *event_cb; + u8 num_of_ind_addr_in_regs; + struct eth_hash_t *multicast_addr_hash; + struct eth_hash_t *unicast_addr_hash; + u8 mac_id; + u32 exceptions; + bool ptp_tsu_enabled; + bool en_tsu_err_exception; + struct dtsec_cfg *dtsec_drv_param; + void *fm; + struct fman_rev_info fm_rev_info; + bool basex_if; + struct mdio_device *tbidev; + struct phylink_pcs pcs; +}; + +struct fman_mac_params { + u8 mac_id; + void *fm; + fman_mac_exception_cb___3 *event_cb; + fman_mac_exception_cb___3 *exception_cb; +}; + +struct fman_mac_params___2 { + u8 mac_id; + void *fm; + fman_mac_exception_cb *event_cb; + fman_mac_exception_cb *exception_cb; +}; + +struct fman_mac_params___3 { + u8 mac_id; + void *fm; + fman_mac_exception_cb___2 *event_cb; + fman_mac_exception_cb___2 *exception_cb; +}; + +struct fman_sp_buffer_offsets { + u32 data_offset; + u32 prs_result_offset; + u32 time_stamp_offset; + u32 hash_result_offset; +}; + +struct fman_port_rsrc { + u32 num; + u32 extra; +}; + +struct fman_port_rx_pools_params { + u8 num_of_pools; + u16 largest_buf_size; +}; + +struct fman_port_dts_params { + void *base_addr; + enum fman_port_type type; + u16 speed; + u8 id; + u32 qman_channel_id; + struct fman *fman; +}; + +union fman_port_bmi_regs; + +struct fman_port_qmi_regs; + +struct fman_port_hwp_regs; + +struct fman_port_cfg; + +struct fman_port { + void *fm; + struct device *dev; + struct fman_rev_info rev_info; + u8 port_id; + enum fman_port_type port_type; + u16 port_speed; + union fman_port_bmi_regs *bmi_regs; + struct fman_port_qmi_regs *qmi_regs; + struct fman_port_hwp_regs *hwp_regs; + struct fman_sp_buffer_offsets buffer_offsets; + u8 internal_buf_offset; + struct fman_ext_pools ext_buf_pools; + u16 max_frame_length; + struct fman_port_rsrc open_dmas; + struct fman_port_rsrc tasks; + struct fman_port_rsrc fifo_bufs; + struct fman_port_rx_pools_params rx_pools_params; + struct fman_port_cfg *cfg; + struct fman_port_dts_params dts_params; + u8 ext_pools_num; + u32 max_port_fifo_size; + u32 max_num_of_ext_pools; + u32 max_num_of_sub_portals; + u32 bm_max_num_of_pools; +}; + +struct fman_port_rx_bmi_regs { + u32 fmbm_rcfg; + u32 fmbm_rst; + u32 fmbm_rda; + u32 fmbm_rfp; + u32 fmbm_rfed; + u32 fmbm_ricp; + u32 fmbm_rim; + u32 fmbm_rebm; + u32 fmbm_rfne; + u32 fmbm_rfca; + u32 fmbm_rfpne; + u32 fmbm_rpso; + u32 fmbm_rpp; + u32 fmbm_rccb; + u32 fmbm_reth; + u32 reserved003c[1]; + u32 fmbm_rprai[8]; + u32 fmbm_rfqid; + u32 fmbm_refqid; + u32 fmbm_rfsdm; + u32 fmbm_rfsem; + u32 fmbm_rfene; + u32 reserved0074[2]; + u32 fmbm_rcmne; + u32 reserved0080[32]; + u32 fmbm_ebmpi[8]; + u32 fmbm_acnt[8]; + u32 reserved0130[8]; + u32 fmbm_rcgm[8]; + u32 fmbm_mpd; + u32 reserved0184[31]; + u32 fmbm_rstc; + u32 fmbm_rfrc; + u32 fmbm_rfbc; + u32 fmbm_rlfc; + u32 fmbm_rffc; + u32 fmbm_rfdc; + u32 fmbm_rfldec; + u32 fmbm_rodc; + u32 fmbm_rbdc; + u32 fmbm_rpec; + u32 reserved0224[22]; + u32 fmbm_rpc; + u32 fmbm_rpcp; + u32 fmbm_rccn; + u32 fmbm_rtuc; + u32 fmbm_rrquc; + u32 fmbm_rduc; + u32 fmbm_rfuc; + u32 fmbm_rpac; + u32 reserved02a0[24]; + u32 fmbm_rdcfg[3]; + u32 fmbm_rgpr; + u32 reserved0310[58]; +}; + +struct fman_port_tx_bmi_regs { + u32 fmbm_tcfg; + u32 fmbm_tst; + u32 fmbm_tda; + u32 fmbm_tfp; + u32 fmbm_tfed; + u32 fmbm_ticp; + u32 fmbm_tfdne; + u32 fmbm_tfca; + u32 fmbm_tcfqid; + u32 fmbm_tefqid; + u32 fmbm_tfene; + u32 fmbm_trlmts; + u32 fmbm_trlmt; + u32 reserved0034[14]; + u32 fmbm_tccb; + u32 fmbm_tfne; + u32 fmbm_tpfcm[2]; + u32 fmbm_tcmne; + u32 reserved0080[96]; + u32 fmbm_tstc; + u32 fmbm_tfrc; + u32 fmbm_tfdc; + u32 fmbm_tfledc; + u32 fmbm_tfufdc; + u32 fmbm_tbdc; + u32 reserved0218[26]; + u32 fmbm_tpc; + u32 fmbm_tpcp; + u32 fmbm_tccn; + u32 fmbm_ttuc; + u32 fmbm_ttcquc; + u32 fmbm_tduc; + u32 fmbm_tfuc; + u32 reserved029c[16]; + u32 fmbm_tdcfg[3]; + u32 fmbm_tgpr; + u32 reserved0310[58]; +}; + +union fman_port_bmi_regs { + struct fman_port_rx_bmi_regs rx; + struct fman_port_tx_bmi_regs tx; +}; + +struct fman_port_bpools { + u8 count; + bool counters_enable; + u8 grp_bp_depleted_num; + struct { + u8 bpid; + u16 size; + bool is_backup; + bool grp_bp_depleted; + bool single_bp_depleted; + } bpool[8]; +}; + +struct fman_sp_buf_margins { + u16 start_margins; + u16 end_margins; +}; + +struct fman_sp_int_context_data_copy { + u16 ext_buf_offset; + u8 int_context_offset; + u16 size; +}; + +struct fman_port_cfg { + u32 dflt_fqid; + u32 err_fqid; + u32 pcd_base_fqid; + u32 pcd_fqs_count; + u8 deq_sp; + bool deq_high_priority; + enum fman_port_deq_type deq_type; + enum fman_port_deq_prefetch deq_prefetch_option; + u16 deq_byte_cnt; + u8 cheksum_last_bytes_ignore; + u8 rx_cut_end_bytes; + struct fman_buf_pool_depletion buf_pool_depletion; + struct fman_ext_pools ext_buf_pools; + u32 tx_fifo_min_level; + u32 tx_fifo_low_comf_level; + u32 rx_pri_elevation; + u32 rx_fifo_thr; + struct fman_sp_buf_margins buf_margins; + u32 int_buf_start_margin; + struct fman_sp_int_context_data_copy int_context; + u32 discard_mask; + u32 err_mask; + struct fman_buffer_prefix_content buffer_prefix_content; + bool dont_release_buf; + u8 rx_fd_bits; + u32 tx_fifo_deq_pipeline_depth; + bool errata_A006320; + bool excessive_threshold_register; + bool fmbm_tfne_has_features; + enum fman_port_dma_swap dma_swap_data; + enum fman_port_color color; +}; + +struct fman_port_hwp_regs { + struct { + u32 ssa; + u32 lcv; + } pmda[16]; + u32 reserved080[222]; + u32 fmpr_pcac; +}; + +struct fman_port_init_params { + u8 port_id; + enum fman_port_type port_type; + u16 port_speed; + u16 liodn_offset; + u8 num_of_tasks; + u8 num_of_extra_tasks; + u8 num_of_open_dmas; + u8 num_of_extra_open_dmas; + u32 size_of_fifo; + u32 extra_size_of_fifo; + u8 deq_pipeline_depth; + u16 max_frame_length; + u16 liodn_base; +}; + +struct fman_port_non_rx_params { + u32 err_fqid; + u32 dflt_fqid; +}; + +struct fman_port_rx_params { + u32 err_fqid; + u32 dflt_fqid; + u32 pcd_base_fqid; + u32 pcd_fqs_count; + struct fman_ext_pools ext_buf_pools; +}; + +union fman_port_specific_params { + struct fman_port_rx_params rx_params; + struct fman_port_non_rx_params non_rx_params; +}; + +struct fman_port_params { + void *fm; + union fman_port_specific_params specific_params; +}; + +struct fman_port_qmi_regs { + u32 fmqm_pnc; + u32 fmqm_pns; + u32 fmqm_pnts; + u32 reserved00c[4]; + u32 fmqm_pnen; + u32 fmqm_pnetfc; + u32 reserved024[2]; + u32 fmqm_pndn; + u32 fmqm_pndc; + u32 fmqm_pndtfc; + u32 fmqm_pndfdc; + u32 fmqm_pndcc; +}; + +struct fman_qmi_regs { + u32 fmqm_gc; + u32 res0004; + u32 fmqm_eie; + u32 fmqm_eien; + u32 fmqm_eif; + u32 fmqm_ie; + u32 fmqm_ien; + u32 fmqm_if; + u32 fmqm_gs; + u32 fmqm_ts; + u32 fmqm_etfc; + u32 fmqm_dtfc; + u32 fmqm_dc0; + u32 fmqm_dc1; + u32 fmqm_dc2; + u32 fmqm_dc3; + u32 fmqm_dfdc; + u32 fmqm_dfcc; + u32 fmqm_dffc; + u32 fmqm_dcc; + u32 res0050[7]; + u32 fmqm_tapc; + u32 fmqm_dmcvc; + u32 fmqm_difdcc; + u32 fmqm_da1v; + u32 res007c; + u32 fmqm_dtc; + u32 fmqm_efddd; + u32 res0088[2]; + struct { + u32 fmqm_dtcfg1; + u32 fmqm_dtval1; + u32 fmqm_dtm1; + u32 fmqm_dtc1; + u32 fmqm_dtcfg2; + u32 fmqm_dtval2; + u32 fmqm_dtm2; + u32 res001c; + } dbg_traps[3]; + u8 res00f0[784]; +}; + +struct fman_state_struct { + u8 fm_id; + u16 fm_clk_freq; + struct fman_rev_info rev_info; + bool enabled_time_stamp; + u8 count1_micro_bit; + u8 total_num_of_tasks; + u8 accumulated_num_of_tasks; + u32 accumulated_fifo_size; + u8 accumulated_num_of_open_dmas; + u8 accumulated_num_of_deq_tnums; + u32 exceptions; + u32 extra_fifo_pool_size; + u8 extra_tasks_pool_size; + u8 extra_open_dmas_pool_size; + u16 port_mfl[10]; + u16 mac_mfl[10]; + u32 fm_iram_size; + u32 dma_thresh_max_commq; + u32 dma_thresh_max_buf; + u32 max_num_of_open_dmas; + u32 qmi_max_num_of_tnums; + u32 qmi_def_tnums_thresh; + u32 bmi_max_num_of_tasks; + u32 bmi_max_fifo_size; + u32 fm_port_num_of_cg; + u32 num_of_rx_ports; + u32 total_fifo_size; + u32 qman_channel_base; + u32 num_of_qman_channels; + struct resource *res; +}; + +struct fmt { + const char *str; + unsigned char state; + unsigned char size; +}; + +struct fname { + __u32 hash; + __u32 minor_hash; + struct rb_node rb_hash; + struct fname *next; + __u32 inode; + __u8 name_len; + __u8 file_type; + char name[0]; +}; + +struct fnhe_hash_bucket { + struct fib_nh_exception *chain; +}; + +struct page { + long unsigned int 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 { + long unsigned int index; + long unsigned int share; + }; + long unsigned int private; + }; + struct { + long unsigned int pp_magic; + struct page_pool *pp; + long unsigned int _pp_mapping_pad; + long unsigned int dma_addr; + atomic_long_t pp_ref_count; + }; + struct { + long unsigned int compound_head; + }; + struct { + struct dev_pagemap *pgmap; + void *zone_device_data; + }; + struct callback_head callback_head; + }; + union { + unsigned int page_type; + atomic_t _mapcount; + }; + atomic_t _refcount; + long unsigned int memcg_data; +}; + +struct folio { + union { + struct { + long unsigned int flags; + union { + struct list_head lru; + struct { + void *__filler; + unsigned int mlock_count; + }; + }; + struct address_space *mapping; + long unsigned int index; + union { + void *private; + swp_entry_t swap; + }; + atomic_t _mapcount; + atomic_t _refcount; + long unsigned int memcg_data; + }; + struct page page; + }; + union { + struct { + long unsigned int _flags_1; + long unsigned int _head_1; + atomic_t _large_mapcount; + atomic_t _entire_mapcount; + atomic_t _nr_pages_mapped; + atomic_t _pincount; + unsigned int _folio_nr_pages; + }; + struct page __page_1; + }; + union { + struct { + long unsigned int _flags_2; + long unsigned int _head_2; + void *_hugetlb_subpool; + void *_hugetlb_cgroup; + void *_hugetlb_cgroup_rsvd; + void *_hugetlb_hwpoison; + }; + struct { + long unsigned int _flags_2a; + long unsigned int _head_2a; + struct list_head _deferred_list; + }; + struct page __page_2; + }; +}; + +struct folio_iter { + struct folio *folio; + size_t offset; + size_t length; + struct folio *_next; + size_t _seg_count; + int _i; +}; + +struct folio_queue { + struct folio_batch vec; + u8 orders[31]; + struct folio_queue *next; + struct folio_queue *prev; + long unsigned int marks; + long unsigned int marks2; + long unsigned int marks3; + unsigned int rreq_id; + unsigned int debug_id; +}; + +struct folio_referenced_arg { + int mapcount; + int referenced; + long unsigned int vm_flags; + struct mem_cgroup *memcg; +}; + +struct folio_walk { + struct page *page; + enum folio_walk_level level; + union { + pte_t *ptep; + pud_t *pudp; + pmd_t *pmdp; + }; + union { + pte_t pte; + pud_t pud; + pmd_t pmd; + }; + struct vm_area_struct *vma; + spinlock_t *ptl; +}; + +struct follow_page_context { + struct dev_pagemap *pgmap; + unsigned int page_mask; +}; + +struct follow_pfnmap_args { + struct vm_area_struct *vma; + long unsigned int address; + spinlock_t *lock; + pte_t *ptep; + long unsigned int pfn; + long unsigned int addr_mask; + pgprot_t pgprot; + bool writable; + bool special; +}; + +struct font_data { + unsigned int extra[4]; + const unsigned char data[0]; +}; + +struct font_desc { + int idx; + const char *name; + unsigned int width; + unsigned int height; + unsigned int charcount; + const void *data; + int pref; +}; + +struct memory_block; + +typedef int (*walk_memory_blocks_func_t)(struct memory_block *, void *); + +struct for_each_memory_block_cb_data { + walk_memory_blocks_func_t func; + void *arg; +}; + +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 format_state___2 { + unsigned char state; + unsigned char size; + unsigned char flags_or_double_size; + unsigned char base; +}; + +struct fown_struct { + struct file *file; + rwlock_t lock; + struct pid *pid; + enum pid_type pid_type; + kuid_t uid; + kuid_t euid; + int signum; +}; + +struct fpdt_subtable_entry { + u16 type; + u8 length; + u8 revision; + u32 reserved; + u64 address; +}; + +struct fpdt_subtable_header { + u32 signature; + u32 length; +}; + +struct fpmr_context { + struct _aarch64_ctx head; + __u64 fpmr; +}; + +struct fprobe_addr_list { + int index; + int size; + long unsigned int *addrs; +}; + +struct fprobe_hlist_node { + struct hlist_node hlist; + long unsigned int addr; + struct fprobe *fp; +}; + +struct fprobe_hlist { + struct hlist_node hlist; + struct callback_head rcu; + struct fprobe *fp; + int size; + struct fprobe_hlist_node array[0]; +}; + +struct fprop_global { + struct percpu_counter events; + unsigned int period; + seqcount_t sequence; +}; + +struct fpsimd_context { + struct _aarch64_ctx head; + __u32 fpsr; + __u32 fpcr; + __int128 unsigned vregs[32]; +}; + +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 rhashtable { + struct bucket_table *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 int high_thresh; + long int low_thresh; + int timeout; + int max_dist; + struct inet_frags *f; + struct net *net; + bool dead; + long: 64; + long: 64; + struct rhashtable rhashtable; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_long_t mem; + struct work_struct destroy_work; + struct llist_node free_list; + long: 64; + long: 64; +}; + +struct frac_entry { + int num; + int den; +}; + +struct frag { + struct list_head list; + u32 group; + u8 num; + u8 rec; + u8 map; + u8 data[0]; +}; + +struct frag_hdr { + __u8 nexthdr; + __u8 reserved; + __be16 frag_off; + __be32 identification; +}; + +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 tstamp_type; + __u8 flags; + u16 max_size; + struct fqdir *fqdir; + struct callback_head rcu; +}; + +struct frag_queue { + struct inet_frag_queue q; + int iif; + __u16 nhoffset; + u8 ecn; +}; + +struct fragment { + struct device_node *overlay; + struct device_node *target; +}; + +struct frame_tail { + struct frame_tail *fp; + long unsigned int lr; +}; + +struct framer_status { + bool link_is_on; +}; + +struct framer_ops; + +struct framer { + struct device dev; + int id; + const struct framer_ops *ops; + struct mutex mutex; + int init_count; + int power_count; + struct regulator *pwr; + struct work_struct notify_status_work; + struct blocking_notifier_head notifier_list; + struct delayed_work polling_work; + struct framer_status prev_status; +}; + +struct framer_config { + enum framer_iface iface; + enum framer_clock_type clock_type; + long unsigned int line_clock_rate; +}; + +struct framer_ops { + int (*init)(struct framer *); + void (*exit)(struct framer *); + int (*power_on)(struct framer *); + int (*power_off)(struct framer *); + int (*get_status)(struct framer *, struct framer_status *); + int (*set_config)(struct framer *, const struct framer_config *); + int (*get_config)(struct framer *, struct framer_config *); + u32 flags; + struct module *owner; +}; + +struct framer_provider { + struct device *dev; + struct module *owner; + struct list_head list; + struct framer * (*of_xlate)(struct device *, const struct of_phandle_args *); +}; + +struct freader { + void *buf; + u32 buf_sz; + int err; + union { + struct { + struct file *file; + struct folio *folio; + void *addr; + loff_t folio_off; + bool may_fault; + }; + struct { + const char *data; + u64 data_sz; + }; + }; +}; + +struct free_area { + struct list_head free_list[6]; + long unsigned int nr_free; +}; + +struct freezer { + struct cgroup_subsys_state css; + unsigned int state; +}; + +struct fregs_offset { + const char *name; + int offset; +}; + +struct freq_attr { + struct attribute attr; + ssize_t (*show)(struct cpufreq_policy *, char *); + ssize_t (*store)(struct cpufreq_policy *, const char *, size_t); +}; + +struct freq_conf { + u8 src; + u8 pre_div; + u16 m; + u16 n; +}; + +struct freq_multi_tbl { + long unsigned int freq; + size_t num_confs; + const struct freq_conf *confs; +}; + +struct freq_tbl { + long unsigned int freq; + u8 src; + u8 pre_div; + u16 m; + u16 n; +}; + +struct p_log { + const char *prefix; + struct fc_log *log; +}; + +struct fs_context_operations; + +struct fs_context { + const struct fs_context_operations *ops; + struct mutex uapi_mutex; + struct file_system_type *fs_type; + void *fs_private; + void *sget_key; + struct dentry *root; + struct user_namespace *user_ns; + struct net *net_ns; + const struct cred *cred; + struct p_log log; + const char *source; + void *security; + void *s_fs_info; + unsigned int sb_flags; + unsigned int sb_flags_mask; + unsigned int s_iflags; + enum fs_context_purpose purpose: 8; + enum fs_context_phase phase: 8; + bool need_free: 1; + bool global: 1; + bool oldapi: 1; + bool exclusive: 1; +}; + +struct fs_parameter; + +struct fs_context_operations { + void (*free)(struct fs_context *); + int (*dup)(struct fs_context *, struct fs_context *); + int (*parse_param)(struct fs_context *, struct fs_parameter *); + int (*parse_monolithic)(struct fs_context *, void *); + int (*get_tree)(struct fs_context *); + int (*reconfigure)(struct fs_context *); +}; + +struct fs_disk_quota { + __s8 d_version; + __s8 d_flags; + __u16 d_fieldmask; + __u32 d_id; + __u64 d_blk_hardlimit; + __u64 d_blk_softlimit; + __u64 d_ino_hardlimit; + __u64 d_ino_softlimit; + __u64 d_bcount; + __u64 d_icount; + __s32 d_itimer; + __s32 d_btimer; + __u16 d_iwarns; + __u16 d_bwarns; + __s8 d_itimer_hi; + __s8 d_btimer_hi; + __s8 d_rtbtimer_hi; + __s8 d_padding2; + __u64 d_rtb_hardlimit; + __u64 d_rtb_softlimit; + __u64 d_rtbcount; + __s32 d_rtbtimer; + __u16 d_rtbwarns; + __s16 d_padding3; + char d_padding4[8]; +}; + +struct fs_error_report { + int error; + struct inode *inode; + struct super_block *sb; +}; + +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 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; + short unsigned int flags; + const void *data; +}; + +struct fs_parse_result { + bool negated; + union { + bool boolean; + int int_32; + unsigned int uint_32; + u64 uint_64; + kuid_t uid; + kgid_t gid; + }; +}; + +struct fs_qfilestat { + __u64 qfs_ino; + __u64 qfs_nblks; + __u32 qfs_nextents; +}; + +typedef struct fs_qfilestat fs_qfilestat_t; + +struct fs_qfilestatv { + __u64 qfs_ino; + __u64 qfs_nblks; + __u32 qfs_nextents; + __u32 qfs_pad; +}; + +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 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_struct { + int users; + spinlock_t lock; + seqcount_spinlock_t seq; + int umask; + int in_exec; + struct path root; + struct path pwd; +}; + +struct fs_sysfs_path { + __u8 len; + __u8 name[128]; +}; + +struct fscrypt_key_specifier { + __u32 type; + __u32 __reserved; + union { + __u8 __reserved[32]; + __u8 descriptor[8]; + __u8 identifier[16]; + } u; +}; + +struct fscrypt_add_key_arg { + struct fscrypt_key_specifier key_spec; + __u32 raw_size; + __u32 key_id; + __u32 __reserved[8]; + __u8 raw[0]; +}; + +struct fscrypt_context_v1 { + u8 version; + u8 contents_encryption_mode; + u8 filenames_encryption_mode; + u8 flags; + u8 master_key_descriptor[8]; + u8 nonce[16]; +}; + +struct fscrypt_context_v2 { + u8 version; + u8 contents_encryption_mode; + u8 filenames_encryption_mode; + u8 flags; + u8 log2_data_unit_size; + u8 __reserved[3]; + u8 master_key_identifier[16]; + u8 nonce[16]; +}; + +union fscrypt_context { + u8 version; + struct fscrypt_context_v1 v1; + struct fscrypt_context_v2 v2; +}; + +struct fscrypt_prepared_key { + struct crypto_skcipher *tfm; + struct blk_crypto_key *blk_key; +}; + +struct fscrypt_mode; + +struct fscrypt_direct_key { + struct super_block *dk_sb; + struct hlist_node dk_node; + refcount_t dk_refcount; + const struct fscrypt_mode *dk_mode; + struct fscrypt_prepared_key dk_key; + u8 dk_descriptor[8]; + u8 dk_raw[64]; +}; + +struct fscrypt_get_key_status_arg { + struct fscrypt_key_specifier key_spec; + __u32 __reserved[6]; + __u32 status; + __u32 status_flags; + __u32 user_count; + __u32 __out_reserved[13]; +}; + +struct fscrypt_policy_v1 { + __u8 version; + __u8 contents_encryption_mode; + __u8 filenames_encryption_mode; + __u8 flags; + __u8 master_key_descriptor[8]; +}; + +struct fscrypt_policy_v2 { + __u8 version; + __u8 contents_encryption_mode; + __u8 filenames_encryption_mode; + __u8 flags; + __u8 log2_data_unit_size; + __u8 __reserved[3]; + __u8 master_key_identifier[16]; +}; + +struct fscrypt_get_policy_ex_arg { + __u64 policy_size; + union { + __u8 version; + struct fscrypt_policy_v1 v1; + struct fscrypt_policy_v2 v2; + } policy; +}; + +struct fscrypt_hkdf { + struct crypto_shash *hmac_tfm; +}; + +union fscrypt_policy { + u8 version; + struct fscrypt_policy_v1 v1; + struct fscrypt_policy_v2 v2; +}; + +struct fscrypt_master_key; + +struct fscrypt_inode_info { + struct fscrypt_prepared_key ci_enc_key; + u8 ci_owns_key: 1; + u8 ci_inlinecrypt: 1; + u8 ci_dirhash_key_initialized: 1; + u8 ci_data_unit_bits; + u8 ci_data_units_per_block_bits; + u32 ci_hashed_ino; + struct fscrypt_mode *ci_mode; + struct inode *ci_inode; + struct fscrypt_master_key *ci_master_key; + struct list_head ci_master_key_link; + struct fscrypt_direct_key *ci_direct_key; + siphash_key_t ci_dirhash_key; + union fscrypt_policy ci_policy; + u8 ci_nonce[16]; +}; + +union fscrypt_iv { + struct { + __le64 index; + u8 nonce[16]; + }; + u8 raw[32]; + __le64 dun[4]; +}; + +struct fscrypt_key { + __u32 mode; + __u8 raw[64]; + __u32 size; +}; + +struct fscrypt_keyring { + spinlock_t lock; + struct hlist_head key_hashtable[128]; +}; + +struct fscrypt_master_key_secret { + struct fscrypt_hkdf hkdf; + u32 size; + u8 raw[64]; +}; + +struct fscrypt_master_key { + struct hlist_node mk_node; + struct rw_semaphore mk_sem; + refcount_t mk_active_refs; + refcount_t mk_struct_refs; + struct callback_head mk_rcu_head; + struct fscrypt_master_key_secret mk_secret; + struct fscrypt_key_specifier mk_spec; + struct key *mk_users; + struct list_head mk_decrypted_inodes; + spinlock_t mk_decrypted_inodes_lock; + struct fscrypt_prepared_key mk_direct_keys[11]; + struct fscrypt_prepared_key mk_iv_ino_lblk_64_keys[11]; + struct fscrypt_prepared_key mk_iv_ino_lblk_32_keys[11]; + siphash_key_t mk_ino_hash_key; + bool mk_ino_hash_key_initialized; + bool mk_present; +}; + +struct fscrypt_mode { + const char *friendly_name; + const char *cipher_str; + int keysize; + int security_strength; + int ivsize; + int logged_cryptoapi_impl; + int logged_blk_crypto_native; + int logged_blk_crypto_fallback; + enum blk_crypto_mode_num blk_crypto_mode; +}; + +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 fscrypt_nokey_name { + u32 dirhash[2]; + u8 bytes[149]; + u8 sha256[32]; +}; + +struct fscrypt_operations { + unsigned int needs_bounce_pages: 1; + unsigned int has_32bit_inodes: 1; + unsigned int supports_subblock_data_units: 1; + const char *legacy_key_prefix; + int (*get_context)(struct inode *, void *, size_t); + int (*set_context)(struct inode *, const void *, size_t, void *); + const union fscrypt_policy * (*get_dummy_policy)(struct super_block *); + bool (*empty_dir)(struct inode *); + bool (*has_stable_inodes)(struct super_block *); + struct block_device ** (*get_devices)(struct super_block *, unsigned int *); +}; + +struct fscrypt_provisioning_key_payload { + __u32 type; + __u32 __reserved; + __u8 raw[0]; +}; + +struct fscrypt_remove_key_arg { + struct fscrypt_key_specifier key_spec; + __u32 removal_status_flags; + __u32 __reserved[5]; +}; + +struct fscrypt_symlink_data { + __le16 len; + char encrypted_path[0]; +}; + +struct fsl8250_data { + int line; +}; + +struct fsl_gpio_soc_data { + bool have_paddr; + bool have_dual_base; +}; + +struct fsl_ifc_global; + +struct fsl_ifc_runtime; + +struct fsl_ifc_ctrl { + struct device *dev; + struct fsl_ifc_global *gregs; + struct fsl_ifc_runtime *rregs; + int irq; + int nand_irq; + spinlock_t lock; + void *nand; + int version; + int banks; + u32 nand_stat; + wait_queue_head_t nand_wait; + bool little_endian; +}; + +struct fsl_ifc_global { + __be32 ifc_rev; + u32 res1[2]; + struct { + __be32 cspr_ext; + __be32 cspr; + u32 res2; + } cspr_cs[8]; + u32 res3[13]; + struct { + __be32 amask; + u32 res4[2]; + } amask_cs[8]; + u32 res5[12]; + struct { + __be32 csor; + __be32 csor_ext; + u32 res6; + } csor_cs[8]; + u32 res7[12]; + struct { + __be32 ftim[4]; + u32 res8[8]; + } ftim_cs[8]; + u32 res9[48]; + __be32 rb_stat; + __be32 rb_map; + __be32 wb_map; + __be32 ifc_gcr; + u32 res10[2]; + __be32 cm_evter_stat; + u32 res11[2]; + __be32 cm_evter_en; + u32 res12[2]; + __be32 cm_evter_intr_en; + u32 res13[2]; + __be32 cm_erattr0; + __be32 cm_erattr1; + u32 res14[2]; + __be32 ifc_ccr; + __be32 ifc_csr; + __be32 ddr_ccr_low; +}; + +struct fsl_ifc_gpcm { + __be32 gpcm_evter_stat; + u32 res1[2]; + __be32 gpcm_evter_en; + u32 res2[2]; + __be32 gpcm_evter_intr_en; + u32 res3[2]; + __be32 gpcm_erattr0; + __be32 gpcm_erattr1; + __be32 gpcm_erattr2; + __be32 gpcm_stat; +}; + +struct fsl_ifc_nand { + __be32 ncfgr; + u32 res1[4]; + __be32 nand_fcr0; + __be32 nand_fcr1; + u32 res2[8]; + __be32 row0; + u32 res3; + __be32 col0; + u32 res4; + __be32 row1; + u32 res5; + __be32 col1; + u32 res6; + __be32 row2; + u32 res7; + __be32 col2; + u32 res8; + __be32 row3; + u32 res9; + __be32 col3; + u32 res10[36]; + __be32 nand_fbcr; + u32 res11; + __be32 nand_fir0; + __be32 nand_fir1; + __be32 nand_fir2; + u32 res12[16]; + __be32 nand_csel; + u32 res13; + __be32 nandseq_strt; + u32 res14; + __be32 nand_evter_stat; + u32 res15; + __be32 pgrdcmpl_evt_stat; + u32 res16[2]; + __be32 nand_evter_en; + u32 res17[2]; + __be32 nand_evter_intr_en; + __be32 nand_vol_addr_stat; + u32 res18; + __be32 nand_erattr0; + __be32 nand_erattr1; + u32 res19[16]; + __be32 nand_fsr; + u32 res20; + __be32 nand_eccstat[8]; + u32 res21[28]; + __be32 nanndcr; + u32 res22[2]; + __be32 nand_autoboot_trgr; + u32 res23; + __be32 nand_mdr; + u32 res24[28]; + __be32 nand_dll_lowcfg0; + __be32 nand_dll_lowcfg1; + u32 res25; + __be32 nand_dll_lowstat; + u32 res26[60]; +}; + +struct fsl_ifc_nor { + __be32 nor_evter_stat; + u32 res1[2]; + __be32 nor_evter_en; + u32 res2[2]; + __be32 nor_evter_intr_en; + u32 res3[2]; + __be32 nor_erattr0; + __be32 nor_erattr1; + __be32 nor_erattr2; + u32 res4[4]; + __be32 norcr; + u32 res5[239]; +}; + +struct fsl_ifc_runtime { + struct fsl_ifc_nand ifc_nand; + struct fsl_ifc_nor ifc_nor; + struct fsl_ifc_gpcm ifc_gpcm; +}; + +struct fsl_mc_device; + +struct fsl_mc_addr_translation_range; + +struct fsl_mc { + struct fsl_mc_device *root_mc_bus_dev; + u8 num_translation_ranges; + struct fsl_mc_addr_translation_range *translation_ranges; + void *fsl_mc_regs; +}; + +struct fsl_mc_addr_translation_range { + enum dprc_region_type mc_region_type; + u64 start_mc_offset; + u64 end_mc_offset; + phys_addr_t start_phys_addr; +}; + +struct 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_bus; + +struct fsl_mc_resource_pool { + enum fsl_mc_pool_type type; + int max_count; + int free_count; + struct mutex mutex; + struct list_head free_list; + struct fsl_mc_bus *mc_bus; +}; + +struct miscdevice { + int minor; + const char *name; + const struct file_operations *fops; + struct list_head list; + struct device *parent; + struct device *this_device; + const struct attribute_group **groups; + const char *nodename; + umode_t mode; +}; + +struct fsl_mc_uapi { + struct miscdevice misc; + struct device *device; + struct mutex mutex; + u32 local_instance_in_use; + struct fsl_mc_io *static_mc_io; +}; + +struct fsl_mc_bus { + struct fsl_mc_device mc_dev; + struct fsl_mc_resource_pool resource_pools[4]; + struct fsl_mc_device_irq *irq_resources; + struct mutex scan_mutex; + struct dprc_attributes dprc_attr; + struct fsl_mc_uapi uapi_misc; + int irq_enabled; +}; + +struct fsl_mc_child_objs { + int child_count; + struct fsl_mc_obj_desc *child_array; +}; + +struct fsl_mc_cmd_desc { + u16 cmdid_value; + u16 cmdid_mask; + int size; + bool token; + int flags; +}; + +struct fsl_mc_command { + __le64 header; + __le64 params[7]; +}; + +struct fsl_mc_device_id { + __u16 vendor; + const char obj_type[16]; +}; + +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 fsl_mc_driver { + struct device_driver driver; + const struct fsl_mc_device_id *match_id_table; + int (*probe)(struct fsl_mc_device *); + void (*remove)(struct fsl_mc_device *); + void (*shutdown)(struct fsl_mc_device *); + int (*suspend)(struct fsl_mc_device *, pm_message_t); + int (*resume)(struct fsl_mc_device *); + bool driver_managed_dma; +}; + +struct 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_obj_cmd_open { + __le32 obj_id; +}; + +struct fsl_mc_version { + u32 major; + u32 minor; + u32 revision; +}; + +struct fsl_sai_clk { + struct clk_divider div; + struct clk_gate gate; + spinlock_t lock; +}; + +struct fsl_soc_data { + const char *sfp_compat; + u32 uid_offset; +}; + +struct fsl_soc_die_attr { + char *die; + u32 svr; + u32 mask; +}; + +struct fsl_spi_match_data { + int type; +}; + +struct fsl_spi_platform_data { + u32 initial_spmode; + s16 bus_num; + unsigned int flags; + u16 max_chipselect; + void (*cs_control)(struct spi_device *, bool); + u32 sysclk; +}; + +struct fsl_spi_reg { + __be32 cap; + u8 res1[28]; + __be32 mode; + __be32 event; + __be32 mask; + __be32 command; + __be32 transmit; + __be32 receive; + __be32 slvsel; +}; + +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 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; + enum fsnotify_group_prio priority; + bool shutdown; + int flags; + unsigned int owner_flags; + struct mutex mark_mutex; + atomic_t user_waits; + struct list_head marks_list; + struct fasync_struct *fsn_fa; + struct fsnotify_event *overflow_event; + struct mem_cgroup *memcg; + union { + void *private; + struct inotify_group_private_data inotify_data; + struct fanotify_group_private_data fanotify_data; + }; +}; + +struct fsnotify_iter_info { + struct fsnotify_mark *marks[5]; + struct fsnotify_group *current_group; + unsigned int report_mask; + int srcu_idx; +}; + +typedef struct fsnotify_mark_connector *fsnotify_connp_t; + +struct fsnotify_mark_connector { + spinlock_t lock; + unsigned char type; + unsigned char prio; + short unsigned int flags; + union { + void *obj; + struct fsnotify_mark_connector *destroy_next; + }; + struct hlist_head list; +}; + +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_sb_info { + struct fsnotify_mark_connector *sb_marks; + atomic_long_t watched_objects[3]; +}; + +struct fstrim_range { + __u64 start; + __u64 len; + __u64 minlen; +}; + +struct fsuuid { + __u32 fsu_len; + __u32 fsu_flags; + __u8 fsu_uuid[0]; +}; + +struct fsuuid2 { + __u8 len; + __u8 uuid[16]; +}; + +struct fsverity_descriptor { + __u8 version; + __u8 hash_algorithm; + __u8 log_blocksize; + __u8 salt_size; + __le32 sig_size; + __le64 data_size; + __u8 root_hash[64]; + __u8 salt[32]; + __u8 __reserved[144]; + __u8 signature[0]; +}; + +struct fsverity_digest { + __u16 digest_algorithm; + __u16 digest_size; + __u8 digest[0]; +}; + +struct fsverity_enable_arg { + __u32 version; + __u32 hash_algorithm; + __u32 block_size; + __u32 salt_size; + __u64 salt_ptr; + __u32 sig_size; + __u32 __reserved1; + __u64 sig_ptr; + __u64 __reserved2[11]; +}; + +struct fsverity_formatted_digest { + char magic[8]; + __le16 digest_algorithm; + __le16 digest_size; + __u8 digest[0]; +}; + +struct fsverity_hash_alg { + struct crypto_shash *tfm; + const char *name; + unsigned int digest_size; + unsigned int block_size; + enum hash_algo algo_id; +}; + +struct merkle_tree_params { + const struct fsverity_hash_alg *hash_alg; + const u8 *hashstate; + unsigned int digest_size; + unsigned int block_size; + unsigned int hashes_per_block; + unsigned int blocks_per_page; + u8 log_digestsize; + u8 log_blocksize; + u8 log_arity; + u8 log_blocks_per_page; + unsigned int num_levels; + u64 tree_size; + long unsigned int tree_pages; + long unsigned int level_start[8]; +}; + +struct fsverity_info { + struct merkle_tree_params tree_params; + u8 root_hash[64]; + u8 file_digest[64]; + const struct inode *inode; + long unsigned int *hash_block_verified; +}; + +struct fsverity_operations { + int (*begin_enable_verity)(struct file *); + int (*end_enable_verity)(struct file *, const void *, size_t, u64); + int (*get_verity_descriptor)(struct inode *, void *, size_t); + struct page * (*read_merkle_tree_page)(struct inode *, long unsigned int, long unsigned int); + int (*write_merkle_tree_block)(struct inode *, const void *, u64, unsigned int); +}; + +struct fsverity_read_metadata_arg { + __u64 metadata_type; + __u64 offset; + __u64 length; + __u64 buf_ptr; + __u64 __reserved; +}; + +struct fsxattr { + __u32 fsx_xflags; + __u32 fsx_extsize; + __u32 fsx_nextents; + __u32 fsx_projid; + __u32 fsx_cowextsize; + unsigned char fsx_pad[8]; +}; + +struct ftgpio_gpio { + struct device *dev; + struct gpio_chip gc; + void *base; + struct clk *clk; +}; + +typedef bool filter_t(u64); + +struct ftr_set_desc { + char name[20]; + union { + struct arm64_ftr_override *override; + prel64_t override_prel; + }; + struct { + char name[10]; + u8 shift; + u8 width; + union { + filter_t *filter; + prel64_t filter_prel; + }; + } fields[0]; +}; + +struct trace_seq { + char buffer[8156]; + struct seq_buf seq; + size_t readpos; + int full; +}; + +struct tracer; + +struct ring_buffer_iter; + +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; + long unsigned int iter_flags; + void *temp; + unsigned int temp_size; + char *fmt; + unsigned int fmt_size; + atomic_t wait_index; + struct trace_seq tmp_seq; + cpumask_var_t started; + bool closed; + bool snapshot; + struct trace_seq seq; + struct trace_entry *ent; + long unsigned int lost_events; + int leftover; + int ent_size; + int cpu; + u64 ts; + loff_t pos; + long int idx; +}; + +struct ftrace_buffer_info { + struct trace_iterator iter; + void *spare; + unsigned int spare_cpu; + unsigned int spare_size; + unsigned int read; +}; + +struct ftrace_entry { + struct trace_entry ent; + long unsigned int ip; + long unsigned int parent_ip; +}; + +struct ftrace_event_field { + struct list_head link; + const char *name; + const char *type; + int filter_type; + int offset; + int size; + unsigned int is_signed: 1; + unsigned int needs_test: 1; + int len; +}; + +struct ftrace_func_command { + struct list_head list; + char *name; + int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); +}; + +struct ftrace_func_entry { + struct hlist_node hlist; + long unsigned int ip; + long unsigned int direct; +}; + +struct ftrace_func_map { + struct ftrace_func_entry entry; + void *data; +}; + +struct ftrace_hash { + long unsigned int size_bits; + struct hlist_head *buckets; + long unsigned int count; + long unsigned int flags; + struct callback_head rcu; +}; + +struct ftrace_func_mapper { + struct ftrace_hash hash; +}; + +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_glob { + char *search; + unsigned int len; + int type; +}; + +struct trace_parser { + bool cont; + char *buffer; + unsigned int idx; + unsigned int size; +}; + +struct ftrace_graph_data { + struct ftrace_hash *hash; + struct ftrace_func_entry *entry; + int idx; + enum graph_filter_type type; + struct ftrace_hash *new_hash; + const struct seq_operations *seq_ops; + struct trace_parser parser; +}; + +struct ftrace_init_func { + struct list_head list; + long unsigned int ip; +}; + +struct ftrace_page; + +struct ftrace_iterator { + loff_t pos; + loff_t func_pos; + loff_t mod_pos; + struct ftrace_page *pg; + struct dyn_ftrace *func; + struct ftrace_func_probe *probe; + struct ftrace_func_entry *probe_entry; + struct trace_parser parser; + struct ftrace_hash *hash; + struct ftrace_ops *ops; + struct trace_array *tr; + struct list_head *mod_list; + int pidx; + int idx; + unsigned int flags; +}; + +struct ftrace_mod_func { + struct list_head list; + char *name; + long unsigned int ip; + unsigned int size; +}; + +struct ftrace_mod_load { + struct list_head list; + char *func; + char *module; + int enable; +}; + +struct ftrace_mod_map { + struct callback_head rcu; + struct list_head list; + struct module *mod; + long unsigned int start_addr; + long unsigned int end_addr; + struct list_head funcs; + unsigned int num_funcs; +}; + +struct ftrace_page { + struct ftrace_page *next; + struct dyn_ftrace *records; + int index; + int order; +}; + +struct ftrace_probe_ops { + void (*func)(long unsigned int, long unsigned int, struct trace_array *, struct ftrace_probe_ops *, void *); + int (*init)(struct ftrace_probe_ops *, struct trace_array *, long unsigned int, void *, void **); + void (*free)(struct ftrace_probe_ops *, struct trace_array *, long unsigned int, void *); + int (*print)(struct seq_file *, long unsigned int, struct ftrace_probe_ops *, void *); +}; + +struct ftrace_profile { + struct hlist_node node; + long unsigned int ip; + long unsigned int counter; + long long unsigned int time; + long long unsigned int time_squared; +}; + +struct ftrace_profile_page { + struct ftrace_profile_page *next; + long unsigned int index; + struct ftrace_profile records[0]; +}; + +typedef int (*cmp_func_t)(const void *, const void *); + +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 ftrace_profile_stat { + atomic_t disabled; + struct hlist_head *hash; + struct ftrace_profile_page *pages; + struct ftrace_profile_page *start; + struct tracer_stat stat; +}; + +struct ftrace_rec_iter { + struct ftrace_page *pg; + int index; +}; + +struct ftrace_regs {}; + +struct ftrace_ret_stack { + long unsigned int ret; + long unsigned int func; + long unsigned int fp; + long unsigned int *retp; +}; + +struct ftrace_stack { + long unsigned int calls[1024]; +}; + +struct ftrace_stacks { + struct ftrace_stack stacks[4]; +}; + +struct func_repeats_entry { + struct trace_entry ent; + long unsigned int ip; + long unsigned int parent_ip; + u16 count; + u16 top_delta_ts; + u32 bottom_delta_ts; +}; + +struct pinfunction { + const char *name; + const char * const *groups; + size_t ngroups; +}; + +struct function_desc { + struct pinfunction func; + void *data; +}; + +struct function_filter_data { + struct ftrace_ops *ops; + int first_filter; + int first_notrace; +}; + +struct fuse_access_in { + uint32_t mask; + uint32_t padding; +}; + +struct fuse_arg { + unsigned int size; + void *value; +}; + +struct fuse_in_arg { + unsigned int size; + const void *value; +}; + +struct fuse_mount; + +struct fuse_args { + uint64_t nodeid; + uint32_t opcode; + uint8_t in_numargs; + uint8_t out_numargs; + uint8_t ext_idx; + bool force: 1; + bool noreply: 1; + bool nocreds: 1; + bool in_pages: 1; + bool out_pages: 1; + bool user_pages: 1; + bool out_argvar: 1; + bool page_zeroing: 1; + bool page_replace: 1; + bool may_block: 1; + bool is_ext: 1; + bool is_pinned: 1; + bool invalidate_vmap: 1; + struct fuse_in_arg in_args[4]; + struct fuse_arg out_args[2]; + void (*end)(struct fuse_mount *, struct fuse_args *, int); + void *vmap_base; +}; + +struct fuse_folio_desc; + +struct fuse_args_pages { + struct fuse_args args; + struct folio **folios; + struct fuse_folio_desc *descs; + unsigned int num_folios; +}; + +struct fuse_attr { + uint64_t ino; + uint64_t size; + uint64_t blocks; + uint64_t atime; + uint64_t mtime; + uint64_t ctime; + uint32_t atimensec; + uint32_t mtimensec; + uint32_t ctimensec; + uint32_t mode; + uint32_t nlink; + uint32_t uid; + uint32_t gid; + uint32_t rdev; + uint32_t blksize; + uint32_t flags; +}; + +struct fuse_attr_out { + uint64_t attr_valid; + uint32_t attr_valid_nsec; + uint32_t dummy; + struct fuse_attr attr; +}; + +struct fuse_backing { + struct file *file; + struct cred *cred; + refcount_t count; + struct callback_head rcu; +}; + +struct fuse_backing_map { + int32_t fd; + uint32_t flags; + uint64_t padding; +}; + +struct fuse_batch_forget_in { + uint32_t count; + uint32_t dummy; +}; + +struct fuse_bmap_in { + uint64_t block; + uint32_t blocksize; + uint32_t padding; +}; + +struct fuse_bmap_out { + uint64_t block; +}; + +struct fuse_forget_one { + uint64_t nodeid; + uint64_t nlookup; +}; + +struct fuse_forget_link { + struct fuse_forget_one forget_one; + struct fuse_forget_link *next; +}; + +struct fuse_iqueue_ops; + +struct fuse_iqueue { + unsigned int connected; + spinlock_t lock; + wait_queue_head_t waitq; + u64 reqctr; + struct list_head pending; + struct list_head interrupts; + struct fuse_forget_link forget_list_head; + struct fuse_forget_link *forget_list_tail; + int forget_batch; + struct fasync_struct *fasync; + const struct fuse_iqueue_ops *ops; + void *priv; +}; + +struct fuse_conn_dax; + +struct fuse_sync_bucket; + +struct fuse_ring; + +struct fuse_conn { + spinlock_t lock; + refcount_t count; + atomic_t dev_count; + struct callback_head rcu; + kuid_t user_id; + kgid_t group_id; + struct pid_namespace *pid_ns; + struct user_namespace *user_ns; + unsigned int max_read; + unsigned int max_write; + unsigned int max_pages; + unsigned int max_pages_limit; + struct fuse_iqueue iq; + atomic64_t khctr; + struct rb_root polled_files; + unsigned int max_background; + unsigned int congestion_threshold; + unsigned int num_background; + unsigned int active_background; + struct list_head bg_queue; + spinlock_t bg_lock; + int initialized; + int blocked; + wait_queue_head_t blocked_waitq; + unsigned int connected; + bool aborted; + unsigned int conn_error: 1; + unsigned int conn_init: 1; + unsigned int async_read: 1; + unsigned int abort_err: 1; + unsigned int atomic_o_trunc: 1; + unsigned int export_support: 1; + unsigned int writeback_cache: 1; + unsigned int parallel_dirops: 1; + unsigned int handle_killpriv: 1; + unsigned int cache_symlinks: 1; + unsigned int legacy_opts_show: 1; + unsigned int handle_killpriv_v2: 1; + unsigned int no_open: 1; + unsigned int no_opendir: 1; + unsigned int no_fsync: 1; + unsigned int no_fsyncdir: 1; + unsigned int no_flush: 1; + unsigned int no_setxattr: 1; + unsigned int setxattr_ext: 1; + unsigned int no_getxattr: 1; + unsigned int no_listxattr: 1; + unsigned int no_removexattr: 1; + unsigned int no_lock: 1; + unsigned int no_access: 1; + unsigned int no_create: 1; + unsigned int no_interrupt: 1; + unsigned int no_bmap: 1; + unsigned int no_poll: 1; + unsigned int big_writes: 1; + unsigned int dont_mask: 1; + unsigned int no_flock: 1; + unsigned int no_fallocate: 1; + unsigned int no_rename2: 1; + unsigned int auto_inval_data: 1; + unsigned int explicit_inval_data: 1; + unsigned int do_readdirplus: 1; + unsigned int readdirplus_auto: 1; + unsigned int async_dio: 1; + unsigned int no_lseek: 1; + unsigned int posix_acl: 1; + unsigned int default_permissions: 1; + unsigned int allow_other: 1; + unsigned int no_copy_file_range: 1; + unsigned int destroy: 1; + unsigned int delete_stale: 1; + unsigned int no_control: 1; + unsigned int no_force_umount: 1; + unsigned int auto_submounts: 1; + unsigned int sync_fs: 1; + unsigned int init_security: 1; + unsigned int create_supp_group: 1; + unsigned int inode_dax: 1; + unsigned int no_tmpfile: 1; + unsigned int direct_io_allow_mmap: 1; + unsigned int no_statx: 1; + unsigned int passthrough: 1; + unsigned int use_pages_for_kvec_io: 1; + unsigned int io_uring; + int max_stack_depth; + atomic_t num_waiting; + unsigned int minor; + struct list_head entry; + dev_t dev; + struct dentry *ctl_dentry[5]; + int ctl_ndents; + u32 scramble_key[4]; + atomic64_t attr_version; + atomic64_t evict_ctr; + void (*release)(struct fuse_conn *); + struct rw_semaphore killsb; + struct list_head devices; + enum fuse_dax_mode dax_mode; + struct fuse_conn_dax *dax; + struct list_head mounts; + struct fuse_sync_bucket *curr_bucket; + struct idr backing_files_map; + struct fuse_ring *ring; +}; + +struct fuse_conn_dax { + struct dax_device *dev; + spinlock_t lock; + long unsigned int nr_busy_ranges; + struct list_head busy_ranges; + struct delayed_work free_work; + wait_queue_head_t range_waitq; + long int nr_free_ranges; + struct list_head free_ranges; + long unsigned int nr_ranges; +}; + +struct fuse_copy_file_range_in { + uint64_t fh_in; + uint64_t off_in; + uint64_t nodeid_out; + uint64_t fh_out; + uint64_t off_out; + uint64_t len; + uint64_t flags; +}; + +struct fuse_req; + +struct pipe_buffer; + +struct fuse_copy_state { + int write; + struct fuse_req *req; + struct iov_iter *iter; + struct pipe_buffer *pipebufs; + struct pipe_buffer *currbuf; + struct pipe_inode_info *pipe; + long unsigned int nr_segs; + struct page *pg; + unsigned int len; + unsigned int offset; + unsigned int move_pages: 1; + unsigned int is_uring: 1; + struct { + unsigned int copied_sz; + } ring; +}; + +struct fuse_create_in { + uint32_t flags; + uint32_t mode; + uint32_t umask; + uint32_t open_flags; +}; + +struct interval_tree_node { + struct rb_node rb; + long unsigned int start; + long unsigned int last; + long unsigned int __subtree_last; +}; + +struct fuse_dax_mapping { + struct inode *inode; + struct list_head list; + struct interval_tree_node itn; + struct list_head busy_list; + u64 window_offset; + loff_t length; + bool writable; + refcount_t refcnt; +}; + +struct fuse_pqueue { + unsigned int connected; + spinlock_t lock; + struct list_head *processing; + struct list_head io; +}; + +struct fuse_dev { + struct fuse_conn *fc; + struct fuse_pqueue pq; + struct list_head entry; +}; + +struct fuse_dirent { + uint64_t ino; + uint64_t off; + uint32_t namelen; + uint32_t type; + char name[0]; +}; + +struct fuse_entry_out { + uint64_t nodeid; + uint64_t generation; + uint64_t entry_valid; + uint64_t attr_valid; + uint32_t entry_valid_nsec; + uint32_t attr_valid_nsec; + struct fuse_attr attr; +}; + +struct fuse_direntplus { + struct fuse_entry_out entry_out; + struct fuse_dirent dirent; +}; + +struct fuse_ext_header { + uint32_t size; + uint32_t type; +}; + +struct fuse_fallocate_in { + uint64_t fh; + uint64_t offset; + uint64_t length; + uint32_t mode; + uint32_t padding; +}; + +union fuse_file_args; + +struct fuse_file { + struct fuse_mount *fm; + union fuse_file_args *args; + u64 kh; + u64 fh; + u64 nodeid; + refcount_t count; + u32 open_flags; + struct list_head write_entry; + struct { + loff_t pos; + loff_t cache_off; + u64 version; + } readdir; + struct rb_node polled_node; + wait_queue_head_t poll_wait; + enum { + IOM_NONE = 0, + IOM_CACHED = 1, + IOM_UNCACHED = 2, + } iomode; + struct file *passthrough; + const struct cred *cred; + bool flock: 1; +}; + +struct fuse_open_out { + uint64_t fh; + uint32_t open_flags; + int32_t backing_id; +}; + +struct fuse_release_in { + uint64_t fh; + uint32_t flags; + uint32_t release_flags; + uint64_t lock_owner; +}; + +struct fuse_release_args { + struct fuse_args args; + struct fuse_release_in inarg; + struct inode *inode; +}; + +union fuse_file_args { + struct fuse_open_out open_outarg; + struct fuse_release_args release_args; +}; + +struct fuse_file_lock { + uint64_t start; + uint64_t end; + uint32_t type; + uint32_t pid; +}; + +struct fuse_writepage_args; + +struct fuse_fill_wb_data { + struct fuse_writepage_args *wpa; + struct fuse_file *ff; + struct inode *inode; + struct folio **orig_folios; + unsigned int max_folios; +}; + +struct fuse_flush_in { + uint64_t fh; + uint32_t unused; + uint32_t padding; + uint64_t lock_owner; +}; + +struct fuse_folio_desc { + unsigned int length; + unsigned int offset; +}; + +struct fuse_forget_in { + uint64_t nlookup; +}; + +struct fuse_fs_context { + int fd; + struct file *file; + unsigned int rootmode; + kuid_t user_id; + kgid_t group_id; + bool is_bdev: 1; + bool fd_present: 1; + bool rootmode_present: 1; + bool user_id_present: 1; + bool group_id_present: 1; + bool default_permissions: 1; + bool allow_other: 1; + bool destroy: 1; + bool no_control: 1; + bool no_force_umount: 1; + bool legacy_opts_show: 1; + enum fuse_dax_mode dax_mode; + unsigned int max_read; + unsigned int blksize; + const char *subtype; + struct dax_device *dax_dev; + void **fudptr; +}; + +struct fuse_fsync_in { + uint64_t fh; + uint32_t fsync_flags; + uint32_t padding; +}; + +struct fuse_getattr_in { + uint32_t getattr_flags; + uint32_t dummy; + uint64_t fh; +}; + +struct fuse_getxattr_in { + uint32_t size; + uint32_t padding; +}; + +struct fuse_getxattr_out { + uint32_t size; + uint32_t padding; +}; + +struct fuse_in_header { + uint32_t len; + uint32_t opcode; + uint64_t unique; + uint64_t nodeid; + uint32_t uid; + uint32_t gid; + uint32_t pid; + uint16_t total_extlen; + uint16_t padding; +}; + +struct fuse_init_in { + uint32_t major; + uint32_t minor; + uint32_t max_readahead; + uint32_t flags; + uint32_t flags2; + uint32_t unused[11]; +}; + +struct fuse_init_out { + uint32_t major; + uint32_t minor; + uint32_t max_readahead; + uint32_t flags; + uint16_t max_background; + uint16_t congestion_threshold; + uint32_t max_write; + uint32_t time_gran; + uint16_t max_pages; + uint16_t map_alignment; + uint32_t flags2; + uint32_t max_stack_depth; + uint32_t unused[6]; +}; + +struct fuse_init_args { + struct fuse_args args; + struct fuse_init_in in; + struct fuse_init_out out; +}; + +struct fuse_inode_dax; + +struct fuse_submount_lookup; + +struct fuse_inode { + struct inode inode; + u64 nodeid; + u64 nlookup; + struct fuse_forget_link *forget; + u64 i_time; + u32 inval_mask; + umode_t orig_i_mode; + struct timespec64 i_btime; + u64 orig_ino; + u64 attr_version; + union { + struct { + struct list_head write_files; + struct list_head queued_writes; + int writectr; + int iocachectr; + wait_queue_head_t page_waitq; + wait_queue_head_t direct_io_waitq; + struct rb_root writepages; + }; + struct { + bool cached; + loff_t size; + loff_t pos; + u64 version; + struct timespec64 mtime; + u64 iversion; + spinlock_t lock; + } rdc; + }; + long unsigned int state; + struct mutex mutex; + spinlock_t lock; + struct fuse_inode_dax *dax; + struct fuse_submount_lookup *submount_lookup; + struct fuse_backing *fb; +}; + +struct fuse_inode_dax { + struct rw_semaphore sem; + struct rb_root_cached tree; + long unsigned int nr; +}; + +struct fuse_inode_handle { + u64 nodeid; + u32 generation; +}; + +struct fuse_interrupt_in { + uint64_t unique; +}; + +struct fuse_read_in { + uint64_t fh; + uint64_t offset; + uint32_t size; + uint32_t read_flags; + uint64_t lock_owner; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_write_in { + uint64_t fh; + uint64_t offset; + uint32_t size; + uint32_t write_flags; + uint64_t lock_owner; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_write_out { + uint32_t size; + uint32_t padding; +}; + +struct fuse_io_priv; + +struct fuse_io_args { + union { + struct { + struct fuse_read_in in; + u64 attr_ver; + } read; + struct { + struct fuse_write_in in; + struct fuse_write_out out; + bool folio_locked; + } write; + }; + struct fuse_args_pages ap; + struct fuse_io_priv *io; + struct fuse_file *ff; +}; + +struct fuse_io_priv { + struct kref refcnt; + int async; + spinlock_t lock; + unsigned int reqs; + ssize_t bytes; + size_t size; + __u64 offset; + bool write; + bool should_dirty; + int err; + struct kiocb *iocb; + struct completion *done; + bool blocking; +}; + +struct fuse_ioctl_in { + uint64_t fh; + uint32_t flags; + uint32_t cmd; + uint64_t arg; + uint32_t in_size; + uint32_t out_size; +}; + +struct fuse_ioctl_iovec { + uint64_t base; + uint64_t len; +}; + +struct fuse_ioctl_out { + int32_t result; + uint32_t flags; + uint32_t in_iovs; + uint32_t out_iovs; +}; + +struct fuse_iqueue_ops { + void (*send_forget)(struct fuse_iqueue *, struct fuse_forget_link *); + void (*send_interrupt)(struct fuse_iqueue *, struct fuse_req *); + void (*send_req)(struct fuse_iqueue *, struct fuse_req *); + void (*release)(struct fuse_iqueue *); +}; + +struct fuse_kstatfs { + uint64_t blocks; + uint64_t bfree; + uint64_t bavail; + uint64_t files; + uint64_t ffree; + uint32_t bsize; + uint32_t namelen; + uint32_t frsize; + uint32_t padding; + uint32_t spare[6]; +}; + +struct fuse_link_in { + uint64_t oldnodeid; +}; + +struct fuse_lk_in { + uint64_t fh; + uint64_t owner; + struct fuse_file_lock lk; + uint32_t lk_flags; + uint32_t padding; +}; + +struct fuse_lk_out { + struct fuse_file_lock lk; +}; + +struct fuse_lseek_in { + uint64_t fh; + uint64_t offset; + uint32_t whence; + uint32_t padding; +}; + +struct fuse_lseek_out { + uint64_t offset; +}; + +struct fuse_mkdir_in { + uint32_t mode; + uint32_t umask; +}; + +struct fuse_mknod_in { + uint32_t mode; + uint32_t rdev; + uint32_t umask; + uint32_t padding; +}; + +struct fuse_mount { + struct fuse_conn *fc; + struct super_block *sb; + struct list_head fc_entry; + struct callback_head rcu; +}; + +struct fuse_notify_delete_out { + uint64_t parent; + uint64_t child; + uint32_t namelen; + uint32_t padding; +}; + +struct fuse_notify_inval_entry_out { + uint64_t parent; + uint32_t namelen; + uint32_t flags; +}; + +struct fuse_notify_inval_inode_out { + uint64_t ino; + int64_t off; + int64_t len; +}; + +struct fuse_notify_poll_wakeup_out { + uint64_t kh; +}; + +struct fuse_notify_retrieve_in { + uint64_t dummy1; + uint64_t offset; + uint32_t size; + uint32_t dummy2; + uint64_t dummy3; + uint64_t dummy4; +}; + +struct fuse_notify_retrieve_out { + uint64_t notify_unique; + uint64_t nodeid; + uint64_t offset; + uint32_t size; + uint32_t padding; +}; + +struct fuse_notify_store_out { + uint64_t nodeid; + uint64_t offset; + uint32_t size; + uint32_t padding; +}; + +struct fuse_open_in { + uint32_t flags; + uint32_t open_flags; +}; + +struct fuse_out_header { + uint32_t len; + int32_t error; + uint64_t unique; +}; + +struct fuse_poll_in { + uint64_t fh; + uint64_t kh; + uint32_t flags; + uint32_t events; +}; + +struct fuse_poll_out { + uint32_t revents; + uint32_t padding; +}; + +struct fuse_removemapping_in { + uint32_t count; +}; + +struct fuse_removemapping_one { + uint64_t moffset; + uint64_t len; +}; + +struct fuse_rename2_in { + uint64_t newdir; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_req { + struct list_head list; + struct list_head intr_entry; + struct fuse_args *args; + refcount_t count; + long unsigned int flags; + struct { + struct fuse_in_header h; + } in; + struct { + struct fuse_out_header h; + } out; + wait_queue_head_t waitq; + void *argbuf; + struct fuse_mount *fm; + void *ring_entry; + void *ring_queue; +}; + +struct fuse_retrieve_args { + struct fuse_args_pages ap; + struct fuse_notify_retrieve_in inarg; +}; + +struct fuse_ring_queue; + +struct fuse_ring { + struct fuse_conn *fc; + size_t nr_queues; + size_t max_payload_sz; + struct fuse_ring_queue **queues; + unsigned int stop_debug_log: 1; + wait_queue_head_t stop_waitq; + struct delayed_work async_teardown_work; + long unsigned int teardown_time; + atomic_t queue_refs; + bool ready; +}; + +struct fuse_uring_req_header; + +struct fuse_ring_ent { + struct fuse_uring_req_header *headers; + void *payload; + struct fuse_ring_queue *queue; + struct io_uring_cmd *cmd; + struct list_head list; + enum fuse_ring_req_state state; + struct fuse_req *fuse_req; +}; + +struct fuse_ring_queue { + struct fuse_ring *ring; + unsigned int qid; + spinlock_t lock; + struct list_head ent_avail_queue; + struct list_head ent_w_req_queue; + struct list_head ent_commit_queue; + struct list_head ent_in_userspace; + struct list_head ent_released; + struct list_head fuse_req_queue; + struct list_head fuse_req_bg_queue; + struct fuse_pqueue fpq; + unsigned int active_background; + bool stopped; +}; + +struct fuse_secctx { + uint32_t size; + uint32_t padding; +}; + +struct fuse_secctx_header { + uint32_t size; + uint32_t nr_secctx; +}; + +struct fuse_setattr_in { + uint32_t valid; + uint32_t padding; + uint64_t fh; + uint64_t size; + uint64_t lock_owner; + uint64_t atime; + uint64_t mtime; + uint64_t ctime; + uint32_t atimensec; + uint32_t mtimensec; + uint32_t ctimensec; + uint32_t mode; + uint32_t unused4; + uint32_t uid; + uint32_t gid; + uint32_t unused5; +}; + +struct fuse_setupmapping_in { + uint64_t fh; + uint64_t foffset; + uint64_t len; + uint64_t flags; + uint64_t moffset; +}; + +struct fuse_setxattr_in { + uint32_t size; + uint32_t flags; + uint32_t setxattr_flags; + uint32_t padding; +}; + +struct fuse_statfs_out { + struct fuse_kstatfs st; +}; + +struct fuse_sx_time { + int64_t tv_sec; + uint32_t tv_nsec; + int32_t __reserved; +}; + +struct fuse_statx { + uint32_t mask; + uint32_t blksize; + uint64_t attributes; + uint32_t nlink; + uint32_t uid; + uint32_t gid; + uint16_t mode; + uint16_t __spare0[1]; + uint64_t ino; + uint64_t size; + uint64_t blocks; + uint64_t attributes_mask; + struct fuse_sx_time atime; + struct fuse_sx_time btime; + struct fuse_sx_time ctime; + struct fuse_sx_time mtime; + uint32_t rdev_major; + uint32_t rdev_minor; + uint32_t dev_major; + uint32_t dev_minor; + uint64_t __spare2[14]; +}; + +struct fuse_statx_in { + uint32_t getattr_flags; + uint32_t reserved; + uint64_t fh; + uint32_t sx_flags; + uint32_t sx_mask; +}; + +struct fuse_statx_out { + uint64_t attr_valid; + uint32_t attr_valid_nsec; + uint32_t flags; + uint64_t spare[2]; + struct fuse_statx stat; +}; + +struct fuse_submount_lookup { + refcount_t count; + u64 nodeid; + struct fuse_forget_link *forget; +}; + +struct fuse_supp_groups { + uint32_t nr_groups; + uint32_t groups[0]; +}; + +struct fuse_sync_bucket { + atomic_t count; + wait_queue_head_t waitq; + struct callback_head rcu; +}; + +struct fuse_syncfs_in { + uint64_t padding; +}; + +struct fuse_uring_cmd_req { + uint64_t flags; + uint64_t commit_id; + uint16_t qid; + uint8_t padding[6]; +}; + +struct fuse_uring_ent_in_out { + uint64_t flags; + uint64_t commit_id; + uint32_t payload_sz; + uint32_t padding; + uint64_t reserved; +}; + +struct fuse_uring_pdu { + struct fuse_ring_ent *ent; +}; + +struct fuse_uring_req_header { + char in_out[128]; + char op_in[128]; + struct fuse_uring_ent_in_out ring_ent_in_out; +}; + +struct fuse_writepage_args { + struct fuse_io_args ia; + struct rb_node writepages_entry; + struct list_head queue_entry; + struct fuse_writepage_args *next; + struct inode *inode; + struct fuse_sync_bucket *bucket; +}; + +struct futex_hash_bucket { + atomic_t waiters; + spinlock_t lock; + struct plist_head chain; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +union futex_key { + struct { + u64 i_seq; + long unsigned int pgoff; + unsigned int offset; + } shared; + struct { + union { + struct mm_struct *mm; + u64 __tmp; + }; + long unsigned int address; + unsigned int offset; + } private; + struct { + u64 ptr; + long unsigned int word; + unsigned int offset; + } both; +}; + +struct futex_pi_state { + struct list_head list; + struct rt_mutex_base pi_mutex; + struct task_struct *owner; + refcount_t refcount; + union futex_key key; +}; + +struct wake_q_head; + +struct futex_q; + +typedef void futex_wake_fn(struct wake_q_head *, struct futex_q *); + +struct rt_mutex_waiter; + +struct futex_q { + struct plist_node list; + struct task_struct *task; + spinlock_t *lock_ptr; + futex_wake_fn *wake; + void *wake_data; + union futex_key key; + struct futex_pi_state *pi_state; + struct rt_mutex_waiter *rt_waiter; + union futex_key *requeue_pi_key; + u32 bitset; + atomic_t requeue_state; +}; + +struct futex_waitv { + __u64 val; + __u64 uaddr; + __u32 flags; + __u32 __reserved; +}; + +struct futex_vector { + struct futex_waitv w; + struct futex_q q; +}; + +struct fw_cache_entry { + struct list_head list; + const char *name; +}; + +struct fw_name_devm { + long unsigned int magic; + const char *name; +}; + +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; + bool is_paged_buf; + struct page **pages; + int nr_pages; + int page_array_size; + bool need_uevent; + struct list_head pending_list; + const char *fw_name; +}; + +struct fw_rsc_carveout { + u32 da; + u32 pa; + u32 len; + u32 flags; + u32 reserved; + u8 name[32]; +}; + +struct fw_rsc_devmem { + u32 da; + u32 pa; + u32 len; + u32 flags; + u32 reserved; + u8 name[32]; +}; + +struct fw_rsc_hdr { + u32 type; + u8 data[0]; +}; + +struct fw_rsc_trace { + u32 da; + u32 len; + u32 reserved; + u8 name[32]; +}; + +struct fw_rsc_vdev_vring { + u32 da; + u32 align; + u32 num; + u32 notifyid; + u32 pa; +}; + +struct fw_rsc_vdev { + u32 id; + u32 notifyid; + u32 dfeatures; + u32 gfeatures; + u32 config_len; + u8 status; + u8 num_of_vrings; + u8 reserved[2]; + struct fw_rsc_vdev_vring vring[0]; +}; + +struct fw_sysfs { + bool nowait; + struct device dev; + struct fw_priv *fw_priv; + struct firmware *fw; + void *fw_upload_priv; +}; + +union fw_table_header { + struct acpi_table_header acpi; + struct acpi_table_cdat cdat; +}; + +struct fw_upload { + void *dd_handle; + void *priv; +}; + +struct fw_upload_ops { + enum fw_upload_err (*prepare)(struct fw_upload *, const u8 *, u32); + enum fw_upload_err (*write)(struct fw_upload *, const u8 *, u32, u32, u32 *); + enum fw_upload_err (*poll_complete)(struct fw_upload *); + void (*cancel)(struct fw_upload *); + void (*cleanup)(struct fw_upload *); +}; + +struct fw_upload_priv { + struct fw_upload *fw_upload; + struct module *module; + const char *name; + const struct fw_upload_ops *ops; + struct mutex lock; + struct work_struct work; + const u8 *data; + u32 remaining_size; + enum fw_upload_prog progress; + enum fw_upload_prog err_progress; + enum fw_upload_err err_code; +}; + +union fwnet_hwaddr { + u8 u[16]; + struct { + __be64 uniq_id; + u8 max_rec; + u8 sspd; + u8 fifo[6]; + } uc; +}; + +struct fwnode_endpoint { + unsigned int port; + unsigned int id; + const struct fwnode_handle *local_fwnode; +}; + +struct fwnode_link { + struct fwnode_handle *supplier; + struct list_head s_hook; + struct fwnode_handle *consumer; + struct list_head c_hook; + u8 flags; +}; + +struct fwnode_reference_args; + +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 *); + bool (*property_read_bool)(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[16]; +}; + +struct g12a_cpu_clk_postmux_nb_data { + struct notifier_block nb; + struct clk_hw *xtal; + struct clk_hw *cpu_clk_dyn; + struct clk_hw *cpu_clk_postmux0; + struct clk_hw *cpu_clk_postmux1; + struct clk_hw *cpu_clk_premux1; +}; + +struct g12a_sys_pll_nb_data { + struct notifier_block nb; + struct clk_hw *sys_pll; + struct clk_hw *cpu_clk; + struct clk_hw *cpu_clk_dyn; +}; + +struct gcm_instance_ctx { + struct crypto_skcipher_spawn ctr; + struct crypto_ahash_spawn ghash; +}; + +struct gcry_mpi { + int alloced; + int nlimbs; + int nbits; + int sign; + unsigned int flags; + mpi_limb_t *d; +}; + +struct gcs_context { + struct _aarch64_ctx head; + __u64 gcspr; + __u64 features_enabled; + __u64 reserved; +}; + +struct gdsc { + struct generic_pm_domain pd; + struct generic_pm_domain *parent; + struct regmap *regmap; + unsigned int gdscr; + unsigned int collapse_ctrl; + unsigned int collapse_mask; + unsigned int gds_hw_ctrl; + unsigned int clamp_io_ctrl; + unsigned int *cxcs; + unsigned int cxc_count; + unsigned int en_rest_wait_val; + unsigned int en_few_wait_val; + unsigned int clk_dis_wait_val; + const u8 pwrsts; + const u16 flags; + struct reset_controller_dev *rcdev; + unsigned int *resets; + unsigned int reset_count; + const char *supply; + struct regulator *rsupply; +}; + +struct gdsc_desc { + struct device *dev; + struct gdsc **scs; + size_t num; +}; + +struct pcpu_gen_cookie; + +struct gen_cookie { + struct pcpu_gen_cookie *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 gen_pool; + +typedef long unsigned int (*genpool_algo_t)(long unsigned int *, long unsigned int, long unsigned int, unsigned int, void *, struct gen_pool *, long unsigned int); + +struct gen_pool { + spinlock_t lock; + struct list_head chunks; + int min_alloc_order; + genpool_algo_t algo; + void *data; + const char *name; +}; + +struct gen_pool_chunk { + struct list_head next_chunk; + atomic_long_t avail; + phys_addr_t phys_addr; + void *owner; + long unsigned int start_addr; + long unsigned int end_addr; + long unsigned int bits[0]; +}; + +struct timer_rand_state; + +struct gendisk { + int major; + int first_minor; + int minors; + char disk_name[32]; + short unsigned int events; + short unsigned int 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; + long unsigned int 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; + unsigned int nr_zones; + unsigned int zone_capacity; + unsigned int last_zone_capacity; + long unsigned int *conv_zones_bitmap; + unsigned int zone_wplugs_hash_bits; + atomic_t nr_zone_wplugs; + spinlock_t zone_wplugs_lock; + struct mempool_s *zone_wplugs_pool; + struct hlist_head *zone_wplugs_hash; + struct workqueue_struct *zone_wplugs_wq; + struct cdrom_device_info *cdi; + int node_id; + struct badblocks *bb; + struct lockdep_map lockdep_map; + u64 diskseq; + blk_mode_t open_mode; + struct blk_independent_access_ranges *ia_ranges; +}; + +struct pm_domain_data { + struct list_head list_node; + struct device *dev; +}; + +struct gpd_timing_data; + +struct generic_pm_domain_data { + struct pm_domain_data base; + struct gpd_timing_data *td; + struct notifier_block nb; + struct notifier_block *power_nb; + int cpu; + unsigned int performance_state; + unsigned int default_pstate; + unsigned int rpm_pstate; + unsigned int opp_token; + bool hw_mode; + bool rpm_always_on; + void *data; +}; + +struct geneve_opt { + __be16 opt_class; + u8 type; + u8 length: 5; + u8 r3: 1; + u8 r2: 1; + u8 r1: 1; + u8 opt_data[0]; +}; + +struct ocontext; + +struct genfs { + char *fstype; + struct ocontext *head; + struct genfs *next; +}; + +struct icc_path; + +struct geni_icc_path { + struct icc_path *path; + unsigned int avg_bw; +}; + +struct geni_wrapper; + +struct geni_se { + void *base; + struct device *dev; + struct geni_wrapper *wrapper; + struct clk *clk; + unsigned int num_clk_levels; + long unsigned int *clk_perf_tbl; + struct geni_icc_path icc_paths[3]; +}; + +struct geni_se_desc { + unsigned int num_clks; + const char * const *clks; +}; + +struct geni_wrapper { + struct device *dev; + void *base; + struct clk_bulk_data clks[2]; + unsigned int num_clks; +}; + +struct netlink_callback; + +struct nla_policy; + +struct genl_split_ops { + union { + struct { + int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + int (*doit)(struct sk_buff *, struct genl_info *); + void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + }; + struct { + int (*start)(struct netlink_callback *); + int (*dumpit)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + }; + }; + const struct nla_policy *policy; + unsigned int maxattr; + u8 cmd; + u8 internal_flags; + u8 flags; + u8 validate; +}; + +struct genlmsghdr; + +struct genl_info { + u32 snd_seq; + u32 snd_portid; + const struct genl_family *family; + const struct nlmsghdr *nlhdr; + struct genlmsghdr *genlhdr; + struct nlattr **attrs; + possible_net_t _net; + union { + u8 ctx[48]; + void *user_ptr[2]; + }; + struct netlink_ext_ack *extack; +}; + +struct genl_dumpit_info { + struct genl_split_ops op; + struct genl_info info; +}; + +struct genl_ops; + +struct genl_small_ops; + +struct genl_multicast_group; + +struct genl_family { + unsigned int hdrsize; + char name[16]; + unsigned int version; + unsigned int maxattr; + u8 netnsok: 1; + u8 parallel_ops: 1; + u8 n_ops; + u8 n_small_ops; + u8 n_split_ops; + u8 n_mcgrps; + u8 resv_start_op; + const struct nla_policy *policy; + int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + int (*bind)(int); + void (*unbind)(int); + const struct genl_ops *ops; + const struct genl_small_ops *small_ops; + const struct genl_split_ops *split_ops; + const struct genl_multicast_group *mcgrps; + struct module *module; + size_t sock_priv_size; + void (*sock_priv_init)(void *); + void (*sock_priv_destroy)(void *); + int id; + unsigned int mcgrp_offset; + struct xarray *sock_privs; +}; + +struct genl_multicast_group { + char name[16]; + u8 flags; +}; + +struct genl_op_iter { + const struct genl_family *family; + struct genl_split_ops doit; + struct genl_split_ops dumpit; + int cmd_idx; + int entry_idx; + u32 cmd; + u8 flags; +}; + +struct 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_start_context { + const struct genl_family *family; + struct nlmsghdr *nlh; + struct netlink_ext_ack *extack; + const struct genl_split_ops *ops; + int hdrlen; +}; + +struct genlmsghdr { + __u8 cmd; + __u8 version; + __u16 reserved; +}; + +struct genpd_governor_data { + s64 max_off_time_ns; + bool max_off_time_changed; + ktime_t next_wakeup; + ktime_t next_hrtimer; + bool cached_power_down_ok; + bool cached_power_down_state_idx; +}; + +struct genpd_lock_ops { + void (*lock)(struct generic_pm_domain *); + void (*lock_nested)(struct generic_pm_domain *, int); + int (*lock_interruptible)(struct generic_pm_domain *); + void (*unlock)(struct generic_pm_domain *); +}; + +typedef struct generic_pm_domain * (*genpd_xlate_t)(const struct of_phandle_args *, void *); + +struct genpd_onecell_data { + struct generic_pm_domain **domains; + unsigned int num_domains; + genpd_xlate_t xlate; +}; + +struct genpd_power_state { + const char *name; + s64 power_off_latency_ns; + s64 power_on_latency_ns; + s64 residency_ns; + u64 usage; + u64 rejected; + struct fwnode_handle *fwnode; + u64 idle_time; + void *data; +}; + +struct genpool_data_align { + int align; +}; + +struct genpool_data_fixed { + long unsigned int offset; +}; + +struct genradix_iter { + size_t offset; + size_t pos; +}; + +struct genradix_node { + union { + struct genradix_node *children[64]; + u8 data[512]; + }; +}; + +struct get_registers_context { + struct device *dev; + struct combiner *combiner; + int err; +}; + +struct getcpu_cache { + long unsigned int blob[16]; +}; + +struct getdents_callback { + struct dir_context ctx; + char *name; + u64 ino; + int found; + int sequence; +}; + +struct linux_dirent; + +struct getdents_callback___2 { + struct dir_context ctx; + struct linux_dirent *current_dir; + int prev_reclen; + int count; + int error; +}; + +struct linux_dirent64; + +struct getdents_callback64 { + struct dir_context ctx; + struct linux_dirent64 *current_dir; + int prev_reclen; + int count; + int error; +}; + +struct getfsmap_info { + struct super_block *gi_sb; + struct fsmap_head *gi_data; + unsigned int gi_idx; + __u32 gi_last_flags; +}; + +struct input_keymap_entry { + __u8 flags; + __u8 len; + __u16 index; + __u32 keycode; + __u8 scancode[32]; +}; + +struct getset_keycode_data { + struct input_keymap_entry ke; + int error; +}; + +struct gf128mul_4k { + be128 t[256]; +}; + +struct gf128mul_64k { + struct gf128mul_4k *t[16]; +}; + +struct kvm_memory_slot; + +struct gfn_to_hva_cache { + u64 generation; + gpa_t gpa; + long unsigned int hva; + long unsigned int len; + struct kvm_memory_slot *memslot; +}; + +struct ghash_ctx { + struct gf128mul_4k *gf128; +}; + +struct ghash_desc_ctx { + u8 buffer[16]; + u32 bytes; +}; + +struct ghes { + union { + struct acpi_hest_generic *generic; + struct acpi_hest_generic_v2 *generic_v2; + }; + struct acpi_hest_generic_status *estatus; + long unsigned int flags; + union { + struct list_head list; + struct timer_list timer; + unsigned int irq; + }; + struct device *dev; + struct list_head elist; +}; + +struct ghes_arr { + struct platform_device **ghes_devs; + unsigned int count; +}; + +struct ghes_estatus_cache { + u32 estatus_len; + atomic_t count; + struct acpi_hest_generic *generic; + long long unsigned int time_in; + struct callback_head rcu; +}; + +struct ghes_estatus_node { + struct llist_node llnode; + struct acpi_hest_generic *generic; + struct ghes *ghes; + int task_work_cpu; + struct callback_head task_work; +}; + +struct ghes_hw_desc { + int num_dimms; + struct dimm_info *dimms; +}; + +struct ghes_pvt { + struct mem_ctl_info *mci; + char other_detail[400]; + char msg[80]; +}; + +struct ghes_vendor_record_entry { + struct work_struct work; + int error_severity; + char vendor_record[0]; +}; + +union gic_base { + void *common_base; + void **percpu_base; +}; + +struct gic_chip_data { + union gic_base dist_base; + union gic_base cpu_base; + void *raw_dist_base; + void *raw_cpu_base; + u32 percpu_offset; + u32 saved_spi_enable[32]; + u32 saved_spi_active[32]; + u32 saved_spi_conf[64]; + u32 saved_spi_target[255]; + u32 *saved_ppi_enable; + u32 *saved_ppi_active; + u32 *saved_ppi_conf; + struct irq_domain *domain; + unsigned int gic_irqs; +}; + +struct rdists { + struct { + raw_spinlock_t rd_lock; + void *rd_base; + struct page *pend_page; + phys_addr_t phys_base; + u64 flags; + cpumask_t *vpe_table_mask; + void *vpe_l1_base; + } *rdist; + phys_addr_t prop_table_pa; + void *prop_table_va; + u64 flags; + u32 gicd_typer; + u32 gicd_typer2; + int cpuhp_memreserve_state; + bool has_vlpis; + bool has_rvpeid; + bool has_direct_lpi; + bool has_vpend_valid_dirty; +}; + +struct redist_region; + +struct partition_desc; + +struct gic_chip_data___2 { + struct fwnode_handle *fwnode; + phys_addr_t dist_phys_base; + void *dist_base; + struct redist_region *redist_regions; + struct rdists rdists; + struct irq_domain *domain; + u64 redist_stride; + u32 nr_redist_regions; + u64 flags; + bool has_rss; + unsigned int ppi_nr; + struct partition_desc **ppi_descs; +}; + +struct gic_chip_data; + +struct gic_clk_data; + +struct gic_chip_pm { + struct gic_chip_data *chip_data; + const struct gic_clk_data *clk_data; + struct clk_bulk_data *clks; +}; + +struct gic_clk_data { + unsigned int num_clocks; + const char * const *clocks; +}; + +struct gic_kvm_info { + enum gic_type type; + struct resource vcpu; + unsigned int maint_irq; + bool no_maint_irq_mask; + struct resource vctrl; + bool has_v4; + bool has_v4_1; + bool no_hw_deactivation; +}; + +struct gic_quirk { + const char *desc; + const char *compatible; + const char *property; + bool (*init)(void *); + u32 iidr; + u32 mask; +}; + +struct giveback_urb_bh { + bool running; + bool high_prio; + spinlock_t lock; + struct list_head head; + struct work_struct bh; + struct usb_host_endpoint *completing_ep; +}; + +struct 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 gnet_estimator { + signed char interval; + unsigned char ewma_log; +}; + +struct gnet_stats_basic { + __u64 bytes; + __u32 packets; +}; + +struct gnet_stats_rate_est { + __u32 bps; + __u32 pps; +}; + +struct gnet_stats_rate_est64 { + __u64 bps; + __u64 pps; +}; + +struct gntab_unmap_queue_data; + +typedef void (*gnttab_unmap_refs_done)(int, struct gntab_unmap_queue_data *); + +struct gnttab_unmap_grant_ref; + +struct gntab_unmap_queue_data { + struct delayed_work gnttab_work; + void *data; + gnttab_unmap_refs_done done; + struct gnttab_unmap_grant_ref *unmap_ops; + struct gnttab_unmap_grant_ref *kunmap_ops; + struct page **pages; + unsigned int count; + unsigned int age; +}; + +struct gnttab_cache_flush { + union { + uint64_t dev_bus_addr; + grant_ref_t ref; + } a; + uint16_t offset; + uint16_t length; + uint32_t op; +}; + +struct gnttab_copy_ptr { + union { + grant_ref_t ref; + xen_pfn_t gmfn; + } u; + domid_t domid; + uint16_t offset; +}; + +struct gnttab_copy { + struct gnttab_copy_ptr source; + struct gnttab_copy_ptr dest; + uint16_t len; + uint16_t flags; + int16_t status; +}; + +struct gnttab_dma_alloc_args { + struct device *dev; + bool coherent; + int nr_pages; + struct page **pages; + xen_pfn_t *frames; + void *vaddr; + dma_addr_t dev_bus_addr; +}; + +struct gnttab_get_status_frames { + uint32_t nr_frames; + domid_t dom; + int16_t status; + __guest_handle_uint64_t frame_list; +}; + +struct gnttab_map_grant_ref { + uint64_t host_addr; + uint32_t flags; + grant_ref_t ref; + domid_t dom; + int16_t status; + grant_handle_t handle; + uint64_t dev_bus_addr; +}; + +struct gnttab_ops { + unsigned int version; + unsigned int grefs_per_grant_frame; + int (*map_frames)(xen_pfn_t *, unsigned int); + void (*unmap_frames)(void); + void (*update_entry)(grant_ref_t, domid_t, long unsigned int, unsigned int); + int (*end_foreign_access_ref)(grant_ref_t); + long unsigned int (*read_frame)(grant_ref_t); +}; + +struct gnttab_page_cache { + spinlock_t lock; + struct page *pages; + unsigned int num_pages; +}; + +struct gnttab_query_size { + domid_t dom; + uint32_t nr_frames; + uint32_t max_nr_frames; + int16_t status; +}; + +struct gnttab_set_version { + uint32_t version; +}; + +struct gnttab_setup_table { + domid_t dom; + uint32_t nr_frames; + int16_t status; + __guest_handle_xen_pfn_t frame_list; +}; + +struct gnttab_unmap_grant_ref { + uint64_t host_addr; + uint64_t dev_bus_addr; + grant_handle_t handle; + int16_t status; +}; + +struct gnu_property { + u32 pr_type; + u32 pr_datasz; +}; + +struct governor_attr { + struct attribute attr; + ssize_t (*show)(struct gov_attr_set *, char *); + ssize_t (*store)(struct gov_attr_set *, const char *, size_t); +}; + +struct watchdog_governor; + +struct governor_priv { + struct watchdog_governor *gov; + struct list_head entry; +}; + +struct gpcv2_irqchip_data { + struct raw_spinlock rlock; + void *gpc_base; + u32 wakeup_sources[4]; + u32 saved_irq_mask[4]; + u32 cpu2wakeup; +}; + +struct gpd_link { + struct generic_pm_domain *parent; + struct list_head parent_node; + struct generic_pm_domain *child; + struct list_head child_node; + unsigned int performance_state; + unsigned int prev_performance_state; +}; + +struct gpd_timing_data { + s64 suspend_latency_ns; + s64 resume_latency_ns; + s64 effective_constraint_ns; + ktime_t next_wakeup; + bool constraint_changed; + bool cached_suspend_ok; +}; + +struct gpio_array { + struct gpio_desc **desc; + unsigned int size; + struct gpio_device *gdev; + long unsigned int *get_mask; + long unsigned int *set_mask; + long unsigned int invert_mask[0]; +}; + +struct gpio_v2_line_attribute { + __u32 id; + __u32 padding; + union { + __u64 flags; + __u64 values; + __u32 debounce_period_us; + }; +}; + +struct gpio_v2_line_info { + char name[32]; + char consumer[32]; + __u32 offset; + __u32 num_attrs; + __u64 flags; + struct gpio_v2_line_attribute attrs[10]; + __u32 padding[4]; +}; + +struct gpio_v2_line_info_changed { + struct gpio_v2_line_info info; + __u64 timestamp_ns; + __u32 event_type; + __u32 padding[5]; +}; + +struct gpio_chardev_data { + struct gpio_device *gdev; + wait_queue_head_t wait; + struct { + union { + struct __kfifo kfifo; + struct gpio_v2_line_info_changed *type; + const struct gpio_v2_line_info_changed *const_type; + char (*rectype)[0]; + struct gpio_v2_line_info_changed *ptr; + const struct gpio_v2_line_info_changed *ptr_const; + }; + struct gpio_v2_line_info_changed buf[32]; + } events; + struct notifier_block lineinfo_changed_nb; + struct notifier_block device_unregistered_nb; + long unsigned int *watched_lines; + atomic_t watch_abi_version; + struct file *fp; +}; + +struct gpio_chip_guard { + struct gpio_device *gdev; + struct gpio_chip *gc; + int idx; +}; + +typedef struct gpio_chip_guard class_gpio_chip_guard_t; + +struct gpio_desc_label; + +struct gpio_desc { + struct gpio_device *gdev; + long unsigned int flags; + struct gpio_desc_label *label; + const char *name; + struct device_node *hog; + unsigned int debounce_period_us; +}; + +struct gpio_desc_label { + struct callback_head rh; + char str[0]; +}; + +struct gpio_descs { + struct gpio_array *info; + unsigned int ndescs; + struct gpio_desc *desc[0]; +}; + +struct gpio_device { + struct device dev; + struct cdev chrdev; + int id; + struct device *mockdev; + struct module *owner; + struct gpio_chip *chip; + struct gpio_desc *descs; + struct srcu_struct desc_srcu; + unsigned int base; + u16 ngpio; + bool can_sleep; + const char *label; + void *data; + struct list_head list; + struct raw_notifier_head line_state_notifier; + rwlock_t line_state_lock; + struct workqueue_struct *line_state_wq; + struct blocking_notifier_head device_notifier; + struct srcu_struct srcu; + struct list_head pin_ranges; +}; + +struct irq_fwspec { + struct fwnode_handle *fwnode; + int param_count; + u32 param[16]; +}; + +struct msi_desc; + +struct msi_alloc_info { + struct msi_desc *desc; + irq_hw_number_t hwirq; + long unsigned int flags; + union { + long unsigned int ul; + void *ptr; + } scratchpad[2]; +}; + +typedef struct msi_alloc_info msi_alloc_info_t; + +union gpio_irq_fwspec { + struct irq_fwspec fwspec; + msi_alloc_info_t msiinfo; +}; + +struct gpio_pin_config { + unsigned int pin_id; + unsigned int config; + struct list_head list; +}; + +struct pinctrl_gpio_range { + struct list_head node; + const char *name; + unsigned int id; + unsigned int base; + unsigned int pin_base; + unsigned int npins; + const unsigned int *pins; + struct gpio_chip *gc; +}; + +struct gpio_pin_range { + struct list_head node; + struct pinctrl_dev *pctldev; + struct pinctrl_gpio_range range; +}; + +struct gpio_poweroff { + struct gpio_desc *reset_gpio; + u32 timeout_ms; + u32 active_delay_ms; + u32 inactive_delay_ms; +}; + +struct gpio_restart { + struct gpio_desc *reset_gpio; + u32 active_delay_ms; + u32 inactive_delay_ms; + u32 wait_delay_ms; +}; + +struct gpio_v2_line_config_attribute { + struct gpio_v2_line_attribute attr; + __u64 mask; +}; + +struct gpio_v2_line_config { + __u64 flags; + __u32 num_attrs; + __u32 padding[5]; + struct gpio_v2_line_config_attribute attrs[10]; +}; + +struct gpio_v2_line_event { + __u64 timestamp_ns; + __u32 id; + __u32 offset; + __u32 seqno; + __u32 line_seqno; + __u32 padding[6]; +}; + +struct gpio_v2_line_request { + __u32 offsets[64]; + char consumer[32]; + struct gpio_v2_line_config config; + __u32 num_lines; + __u32 event_buffer_size; + __u32 padding[5]; + __s32 fd; +}; + +struct gpio_v2_line_values { + __u64 bits; + __u64 mask; +}; + +struct gpiochip_info { + char name[32]; + char label[32]; + __u32 lines; +}; + +struct gpiod_data { + struct gpio_desc *desc; + struct mutex mutex; + struct kernfs_node *value_kn; + int irq; + unsigned char irq_flags; + bool direction_can_change; +}; + +struct gpiod_hog { + struct list_head list; + const char *chip_label; + u16 chip_hwnum; + const char *line_name; + long unsigned int lflags; + int dflags; +}; + +struct gpiod_lookup { + const char *key; + u16 chip_hwnum; + const char *con_id; + unsigned int idx; + long unsigned int flags; +}; + +struct gpiod_lookup_table { + struct list_head list; + const char *dev_id; + struct gpiod_lookup table[0]; +}; + +struct gpioevent_data { + __u64 timestamp; + __u32 id; +}; + +struct gpioevent_request { + __u32 lineoffset; + __u32 handleflags; + __u32 eventflags; + char consumer_label[32]; + int fd; +}; + +struct gpiohandle_config { + __u32 flags; + __u8 default_values[64]; + __u32 padding[4]; +}; + +struct gpiohandle_data { + __u8 values[64]; +}; + +struct gpiohandle_request { + __u32 lineoffsets[64]; + __u32 flags; + __u8 default_values[64]; + char consumer_label[32]; + __u32 lines; + int fd; +}; + +struct gpiolib_seq_priv { + bool newline; + int idx; +}; + +struct gpioline_info { + __u32 line_offset; + __u32 flags; + char name[32]; + char consumer[32]; +}; + +struct gpioline_info_changed { + struct gpioline_info info; + __u64 timestamp; + __u32 event_type; + __u32 padding[5]; +}; + +struct gpmc_bool_timings { + bool cycle2cyclediffcsen; + bool cycle2cyclesamecsen; + bool we_extra_delay; + bool oe_extra_delay; + bool adv_extra_delay; + bool cs_extra_delay; + bool time_para_granularity; +}; + +struct gpmc_cs_config { + u32 config1; + u32 config2; + u32 config3; + u32 config4; + u32 config5; + u32 config6; + u32 config7; + int is_valid; +}; + +struct gpmc_cs_data { + const char *name; + u32 flags; + struct resource mem; +}; + +struct omap3_gpmc_regs { + u32 sysconfig; + u32 irqenable; + u32 timeout_ctrl; + u32 config; + u32 prefetch_config1; + u32 prefetch_config2; + u32 prefetch_control; + struct gpmc_cs_config cs_context[8]; +}; + +struct gpmc_waitpin; + +struct gpmc_device { + struct device *dev; + int irq; + struct irq_chip irq_chip; + struct gpio_chip gpio_chip; + struct notifier_block nb; + struct omap3_gpmc_regs context; + struct gpmc_waitpin *waitpins; + int nirqs; + unsigned int is_suspended: 1; + struct resource *data; +}; + +struct gpmc_device_timings { + u32 t_ceasu; + u32 t_avdasu; + u32 t_avdp_r; + u32 t_avdp_w; + u32 t_aavdh; + u32 t_oeasu; + u32 t_aa; + u32 t_iaa; + u32 t_oe; + u32 t_ce; + u32 t_rd_cycle; + u32 t_cez_r; + u32 t_cez_w; + u32 t_oez; + u32 t_weasu; + u32 t_wpl; + u32 t_wph; + u32 t_wr_cycle; + u32 clk; + u32 t_bacc; + u32 t_ces; + u32 t_avds; + u32 t_avdh; + u32 t_ach; + u32 t_rdyo; + u32 t_ce_rdyz; + u32 t_ce_avd; + u8 cyc_aavdh_oe; + u8 cyc_aavdh_we; + u8 cyc_oe; + u8 cyc_wpl; + u32 cyc_iaa; + bool ce_xdelay; + bool avd_xdelay; + bool oe_xdelay; + bool we_xdelay; +}; + +struct gpmc_nand_ops { + bool (*nand_writebuffer_empty)(void); +}; + +struct gpmc_nand_regs { + void *gpmc_nand_command; + void *gpmc_nand_address; + void *gpmc_nand_data; + void *gpmc_prefetch_config1; + void *gpmc_prefetch_config2; + void *gpmc_prefetch_control; + void *gpmc_prefetch_status; + void *gpmc_ecc_config; + void *gpmc_ecc_control; + void *gpmc_ecc_size_config; + void *gpmc_ecc1_result; + void *gpmc_bch_result0[8]; + void *gpmc_bch_result1[8]; + void *gpmc_bch_result2[8]; + void *gpmc_bch_result3[8]; + void *gpmc_bch_result4[8]; + void *gpmc_bch_result5[8]; + void *gpmc_bch_result6[8]; +}; + +struct gpmc_onenand_info { + bool sync_read; + bool sync_write; + int burst_len; +}; + +struct gpmc_settings { + bool burst_wrap; + bool burst_read; + bool burst_write; + bool device_nand; + bool sync_read; + bool sync_write; + bool wait_on_read; + bool wait_on_write; + u32 burst_len; + u32 device_width; + u32 mux_add_data; + u32 wait_pin; + u32 wait_pin_polarity; +}; + +struct gpmc_timings { + u32 sync_clk; + u32 cs_on; + u32 cs_rd_off; + u32 cs_wr_off; + u32 adv_on; + u32 adv_rd_off; + u32 adv_wr_off; + u32 adv_aad_mux_on; + u32 adv_aad_mux_rd_off; + u32 adv_aad_mux_wr_off; + u32 we_on; + u32 we_off; + u32 oe_on; + u32 oe_off; + u32 oe_aad_mux_on; + u32 oe_aad_mux_off; + u32 page_burst_access; + u32 access; + u32 rd_cycle; + u32 wr_cycle; + u32 bus_turnaround; + u32 cycle2cycle_delay; + u32 wait_monitoring; + u32 clk_activation; + u32 wr_access; + u32 wr_data_mux_bus; + struct gpmc_bool_timings bool_timings; +}; + +struct gpmc_waitpin { + u32 pin; + u32 polarity; + struct gpio_desc *desc; +}; + +struct grant { + grant_ref_t gref; + struct page *page; + struct list_head node; +}; + +struct grant_dma_iommu_device { + struct device *dev; + struct iommu_device iommu; +}; + +struct grant_entry_header { + uint16_t flags; + domid_t domid; +}; + +struct grant_entry_v1 { + uint16_t flags; + domid_t domid; + uint32_t frame; +}; + +union grant_entry_v2 { + struct grant_entry_header hdr; + struct { + struct grant_entry_header hdr; + uint32_t pad0; + uint64_t frame; + } full_page; + struct { + struct grant_entry_header hdr; + uint16_t page_off; + uint16_t length; + uint64_t frame; + } sub_page; + struct { + struct grant_entry_header hdr; + domid_t trans_domid; + uint16_t pad0; + grant_ref_t gref; + } transitive; + uint32_t __spacer[4]; +}; + +struct grant_frames { + xen_pfn_t *pfn; + unsigned int count; + void *vaddr; +}; + +struct gre_base_hdr { + __be16 flags; + __be16 protocol; +}; + +struct gre_full_hdr { + struct gre_base_hdr fixed_header; + __be16 csum; + __be16 reserved1; + __be32 key; + __be32 seq; +}; + +struct gro_cell { + struct sk_buff_head napi_skbs; + struct napi_struct napi; +}; + +struct gro_cells { + struct gro_cell *cells; +}; + +struct pingroup { + const char *name; + const unsigned int *pins; + size_t npins; +}; + +struct group_desc { + struct pingroup grp; + void *data; +}; + +struct group_device { + struct list_head list; + struct device *dev; + char *name; +}; + +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 group_for_pci_data { + struct pci_dev *pdev; + struct iommu_group *group; +}; + +struct group_info { + refcount_t usage; + int ngroups; + kgid_t gid[0]; +}; + +struct group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; +}; + +struct group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; +}; + +struct gsb_buffer { + u8 status; + u8 len; + union { + u16 wdata; + u8 bdata; + struct { + struct {} __empty_data; + u8 data[0]; + }; + }; +}; + +struct rpcsec_gss_oid { + unsigned int len; + u8 data[32]; +}; + +struct gss_api_ops; + +struct pf_desc; + +struct gss_api_mech { + struct list_head gm_list; + struct module *gm_owner; + struct rpcsec_gss_oid gm_oid; + char *gm_name; + const struct gss_api_ops *gm_ops; + int gm_pf_num; + struct pf_desc *gm_pfs; + const char *gm_upcall_enctypes; +}; + +struct gss_ctx; + +struct xdr_buf; + +struct xdr_netobj; + +struct gss_api_ops { + int (*gss_import_sec_context)(const void *, size_t, struct gss_ctx *, time64_t *, gfp_t); + u32 (*gss_get_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *); + u32 (*gss_verify_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *); + u32 (*gss_wrap)(struct gss_ctx *, int, struct xdr_buf *, struct page **); + u32 (*gss_unwrap)(struct gss_ctx *, int, int, struct xdr_buf *); + void (*gss_delete_sec_context)(void *); +}; + +struct gss_ctx { + struct gss_api_mech *mech_type; + void *internal_ctx_id; + unsigned int slack; + unsigned int align; +}; + +struct h_misc { + long unsigned int ino; + __u32 generation; + uid_t uid; + gid_t gid; + umode_t mode; +}; + +union handle_parts { + depot_stack_handle_t handle; + struct { + u32 pool_index_plus_1: 17; + u32 offset: 10; + u32 extra: 5; + }; +}; + +struct handle_to_path_ctx { + struct path root; + enum handle_to_path_flags flags; + unsigned int fh_flags; +}; + +struct handshake_net { + spinlock_t hn_lock; + int hn_pending; + int hn_pending_max; + struct list_head hn_requests; + long unsigned int hn_flags; +}; + +struct handshake_req; + +struct handshake_proto { + int hp_handler_class; + size_t hp_privsize; + long unsigned int hp_flags; + int (*hp_accept)(struct handshake_req *, struct genl_info *, int); + void (*hp_done)(struct handshake_req *, unsigned int, struct genl_info *); + void (*hp_destroy)(struct handshake_req *); +}; + +struct handshake_req { + struct list_head hr_list; + struct rhash_head hr_rhash; + long unsigned int hr_flags; + const struct handshake_proto *hr_proto; + struct sock *hr_sk; + void (*hr_odestruct)(struct sock *); + char hr_priv[0]; +}; + +struct hash { + int ino; + int minor; + int major; + umode_t mode; + struct hash *next; + char name[4098]; +}; + +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 hash_prefix { + const char *name; + const u8 *data; + size_t size; +}; + +struct hashtab_key_params { + u32 (*hash)(const void *); + int (*cmp)(const void *, const void *); +}; + +struct hashtab_node { + void *key; + void *datum; + struct hashtab_node *next; +}; + +struct hc_driver { + const char *description; + const char *product_desc; + size_t hcd_priv_size; + irqreturn_t (*irq)(struct usb_hcd *); + int flags; + int (*reset)(struct usb_hcd *); + int (*start)(struct usb_hcd *); + int (*pci_suspend)(struct usb_hcd *, bool); + int (*pci_resume)(struct usb_hcd *, pm_message_t); + int (*pci_poweroff_late)(struct usb_hcd *, bool); + void (*stop)(struct usb_hcd *); + void (*shutdown)(struct usb_hcd *); + int (*get_frame_number)(struct usb_hcd *); + int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); + int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); + int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); + void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); + void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); + void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); + int (*hub_status_data)(struct usb_hcd *, char *); + int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); + int (*bus_suspend)(struct usb_hcd *); + int (*bus_resume)(struct usb_hcd *); + int (*start_port_reset)(struct usb_hcd *, unsigned int); + long unsigned int (*get_resuming_ports)(struct usb_hcd *); + void (*relinquish_port)(struct usb_hcd *, int); + int (*port_handed_over)(struct usb_hcd *, int); + void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); + int (*alloc_dev)(struct usb_hcd *, struct usb_device *); + void (*free_dev)(struct usb_hcd *, struct usb_device *); + int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); + int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); + int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); + void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); + int (*address_device)(struct usb_hcd *, struct usb_device *, unsigned int); + int (*enable_device)(struct usb_hcd *, struct usb_device *); + int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t); + int (*reset_device)(struct usb_hcd *, struct usb_device *); + int (*update_device)(struct usb_hcd *, struct usb_device *); + int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int); + int (*enable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); + int (*disable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); + int (*find_raw_port_number)(struct usb_hcd *, int); + int (*port_power)(struct usb_hcd *, int, bool); + int (*submit_single_step_set_feature)(struct usb_hcd *, struct urb *, int); +}; + +struct hd_geometry { + unsigned char heads; + unsigned char sectors; + short unsigned int cylinders; + long unsigned int start; +}; + +struct hh_cache; + +struct header_ops { + int (*create)(struct sk_buff *, struct net_device *, short unsigned int, 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 hfpll_data { + u32 mode_reg; + u32 l_reg; + u32 m_reg; + u32 n_reg; + u32 user_reg; + u32 droop_reg; + u32 config_reg; + u32 status_reg; + u8 lock_bit; + u32 l_val; + u32 droop_val; + u32 config_val; + u32 user_val; + u32 user_vco_mask; + long unsigned int low_vco_max_rate; + long unsigned int min_rate; + long unsigned int max_rate; +}; + +struct hh_cache { + unsigned int hh_len; + seqlock_t hh_lock; + long unsigned int hh_data[16]; +}; + +struct hi3559av100_clk_pll { + struct clk_hw hw; + u32 id; + void *ctrl_reg1; + u8 frac_shift; + u8 frac_width; + u8 postdiv1_shift; + u8 postdiv1_width; + u8 postdiv2_shift; + u8 postdiv2_width; + void *ctrl_reg2; + u8 fbdiv_shift; + u8 fbdiv_width; + u8 refdiv_shift; + u8 refdiv_width; +}; + +struct hi3559av100_pll_clock { + u32 id; + const char *name; + const char *parent_name; + const u32 ctrl_reg1; + const u8 frac_shift; + const u8 frac_width; + const u8 postdiv1_shift; + const u8 postdiv1_width; + const u8 postdiv2_shift; + const u8 postdiv2_width; + const u32 ctrl_reg2; + const u8 fbdiv_shift; + const u8 fbdiv_width; + const u8 refdiv_shift; + const u8 refdiv_width; +}; + +struct hi3660_pcie_phy { + struct device *dev; + void *base; + struct regmap *crgctrl; + struct regmap *sysctrl; + struct clk *apb_sys_clk; + struct clk *apb_phy_clk; + struct clk *phy_ref_clk; + struct clk *aclk; + struct clk *aux_clk; +}; + +struct hi3660_stub_clk { + unsigned int id; + struct clk_hw hw; + unsigned int cmd; + unsigned int msg[8]; + unsigned int rate; +}; + +struct mbox_client { + struct device *dev; + bool tx_block; + long unsigned int 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 mbox_chan; + +struct hi3660_stub_clk_chan { + struct mbox_client cl; + struct mbox_chan *mbox; +}; + +struct hi6220_clk_divider { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u32 mask; + const struct clk_div_table *table; + spinlock_t *lock; +}; + +struct hi6220_divider_clock { + unsigned int id; + const char *name; + const char *parent_name; + long unsigned int flags; + long unsigned int offset; + u8 shift; + u8 width; + u32 mask_bit; + const char *alias; +}; + +struct hi6220_mbox_msg { + unsigned char type; + unsigned char cmd; + unsigned char obj; + unsigned char src; + unsigned char para[4]; +}; + +union hi6220_mbox_data { + unsigned int data[8]; + struct hi6220_mbox_msg msg; +}; + +struct hi6220_stub_clk { + u32 id; + struct device *dev; + struct clk_hw hw; + struct regmap *dfs_map; + struct mbox_client cl; + struct mbox_chan *mbox; +}; + +struct hid_bpf { + u8 *device_data; + u32 allocated_data; + bool destroyed; + struct hid_bpf_ops *rdesc_ops; + struct list_head prog_list; + struct mutex prog_list_lock; + struct srcu_struct srcu; +}; + +struct hid_bpf_ctx { + struct hid_device *hid; + __u32 allocated_size; + union { + __s32 retval; + __s32 size; + }; +}; + +struct hid_bpf_ctx_kern { + struct hid_bpf_ctx ctx; + u8 *data; + bool from_bpf; +}; + +struct hid_bpf_offset_write_range { + const char *struct_name; + u32 struct_length; + u32 start; + u32 end; +}; + +struct hid_collection { + int parent_idx; + unsigned int type; + unsigned int usage; + unsigned int level; +}; + +struct hid_report; + +struct hid_report_enum { + unsigned int numbered; + struct list_head report_list; + struct hid_report *report_id_hash[256]; +}; + +struct semaphore { + raw_spinlock_t lock; + unsigned int count; + struct list_head wait_list; +}; + +struct hid_driver; + +struct hid_ll_driver; + +struct hid_field; + +struct hid_usage; + +struct hid_device { + const __u8 *dev_rdesc; + const __u8 *bpf_rdesc; + const __u8 *rdesc; + unsigned int dev_rsize; + unsigned int bpf_rsize; + unsigned int rsize; + unsigned int collection_size; + struct hid_collection *collection; + unsigned int maxcollection; + unsigned int maxapplication; + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + __u32 version; + enum hid_type type; + unsigned int country; + struct hid_report_enum report_enum[3]; + struct work_struct led_work; + struct semaphore driver_input_lock; + struct device dev; + struct hid_driver *driver; + void *devres_group_id; + const struct hid_ll_driver *ll_driver; + struct mutex ll_open_lock; + unsigned int ll_open_count; + struct power_supply *battery; + __s32 battery_capacity; + __s32 battery_min; + __s32 battery_max; + __s32 battery_report_type; + __s32 battery_report_id; + __s32 battery_charge_status; + enum hid_battery_status battery_status; + bool battery_avoid_query; + ktime_t battery_ratelimit_time; + long unsigned int 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 *); + short unsigned int debug; + struct dentry *debug_dir; + struct dentry *debug_rdesc; + struct dentry *debug_events; + struct list_head debug_list; + spinlock_t debug_list_lock; + wait_queue_head_t debug_wait; + struct kref ref; + unsigned int id; + struct hid_bpf bpf; +}; + +struct hid_device_id { + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + kernel_ulong_t driver_data; +}; + +struct hid_report_id; + +struct hid_usage_id; + +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 *); + const __u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *); + int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, long unsigned int **, int *); + int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, long unsigned int **, 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_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_field_entry { + struct list_head list; + struct hid_field *field; + unsigned int index; + __s32 priority; +}; + +struct hid_input { + struct list_head list; + struct hid_report *report; + struct input_dev *input; + const char *name; + struct list_head reports; + unsigned int application; + bool registered; +}; + +struct hid_ll_driver { + int (*start)(struct hid_device *); + void (*stop)(struct hid_device *); + int (*open)(struct hid_device *); + void (*close)(struct hid_device *); + int (*power)(struct hid_device *, int); + int (*parse)(struct hid_device *); + void (*request)(struct hid_device *, struct hid_report *, int); + int (*wait)(struct hid_device *); + int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); + int (*output_report)(struct hid_device *, __u8 *, size_t); + int (*idle)(struct hid_device *, int, int, int); + bool (*may_wakeup)(struct hid_device *); + unsigned int max_buffer_size; +}; + +struct hid_ops { + struct hid_report * (*hid_get_report)(struct hid_report_enum *, const u8 *); + int (*hid_hw_raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, enum hid_report_type, enum hid_class_request, u64, bool); + int (*hid_hw_output_report)(struct hid_device *, __u8 *, size_t, u64, bool); + int (*hid_input_report)(struct hid_device *, enum hid_report_type, u8 *, u32, int, u64, bool, bool); + struct module *owner; + const struct bus_type *bus_type; +}; + +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_report_id { + __u32 report_type; +}; + +struct hid_usage { + unsigned int hid; + unsigned int collection_index; + unsigned int usage_index; + __s8 resolution_multiplier; + __s8 wheel_factor; + __u16 code; + __u8 type; + __s16 hat_min; + __s16 hat_max; + __s16 hat_dir; + __s16 wheel_accumulated; +}; + +struct hid_usage_id { + __u32 usage_hid; + __u32 usage_type; + __u32 usage_code; +}; + +struct hisi_clock_data { + struct clk_onecell_data clk_data; + void *base; +}; + +struct hisi_reset_controller; + +struct hisi_crg_funcs; + +struct hisi_crg_dev { + struct hisi_clock_data *clk_data; + struct hisi_reset_controller *rstc; + const struct hisi_crg_funcs *funcs; +}; + +struct hisi_crg_funcs { + struct hisi_clock_data * (*register_clks)(struct platform_device *); + void (*unregister_clks)(struct platform_device *); +}; + +struct hisi_divider_clock { + unsigned int id; + const char *name; + const char *parent_name; + long unsigned int flags; + long unsigned int offset; + u8 shift; + u8 width; + u8 div_flags; + struct clk_div_table *table; + const char *alias; +}; + +struct hisi_fixed_factor_clock { + unsigned int id; + char *name; + const char *parent_name; + long unsigned int mult; + long unsigned int div; + long unsigned int flags; +}; + +struct hisi_fixed_rate_clock { + unsigned int id; + char *name; + const char *parent_name; + long unsigned int flags; + long unsigned int fixed_rate; +}; + +struct hisi_gate_clock { + unsigned int id; + const char *name; + const char *parent_name; + long unsigned int flags; + long unsigned int offset; + u8 bit_idx; + u8 gate_flags; + const char *alias; +}; + +struct platform_device_info; + +struct hisi_lpc_acpi_cell { + const char *hid; + const struct platform_device_info *pdevinfo; +}; + +struct logic_pio_hwaddr; + +struct hisi_lpc_dev { + spinlock_t cycle_lock; + void *membase; + struct logic_pio_hwaddr *io_host; +}; + +struct hisi_mux_clock { + unsigned int id; + const char *name; + const char * const *parent_names; + u8 num_parents; + long unsigned int flags; + long unsigned int offset; + u8 shift; + u8 width; + u8 mux_flags; + const u32 *table; + const char *alias; +}; + +struct hisi_pcie { + void *reg_base; +}; + +struct hisi_pcie_error_data { + u64 val_bits; + u8 version; + u8 soc_id; + u8 socket_id; + u8 nimbus_id; + u8 sub_module_id; + u8 core_id; + u8 port_id; + u8 err_severity; + u16 err_type; + u8 reserv[2]; + u32 err_misc[33]; +}; + +struct hisi_pcie_error_private { + struct notifier_block nb; + struct device *dev; +}; + +struct hisi_phase_clock { + unsigned int id; + const char *name; + const char *parent_names; + long unsigned int flags; + long unsigned int offset; + u8 shift; + u8 width; + u32 *phase_degrees; + u32 *phase_regvals; + u8 phase_num; +}; + +struct hisi_reset_controller { + spinlock_t lock; + void *membase; + struct reset_controller_dev rcdev; +}; + +struct hist_elt_data { + char *comm; + u64 *var_ref_vals; + char **field_var_str; + int n_field_var_str; +}; + +struct hist_var { + char *name; + struct hist_trigger_data *hist_data; + unsigned int idx; +}; + +struct hist_field { + struct ftrace_event_field *field; + long unsigned int flags; + long unsigned int buckets; + const char *type; + struct hist_field *operands[2]; + struct hist_trigger_data *hist_data; + enum hist_field_fn fn_num; + unsigned int ref; + unsigned int size; + unsigned int offset; + unsigned int is_signed; + struct hist_var var; + enum field_op_id operator; + char *system; + char *event_name; + char *name; + unsigned int var_ref_idx; + bool read_once; + unsigned int var_str_idx; + u64 constant; + u64 div_multiplier; +}; + +struct hist_file_data { + struct file *file; + u64 last_read; + u64 last_act; +}; + +struct hist_pad { + long unsigned int entries[16]; + u64 var_ref_vals[16]; + char compound_key[384]; +}; + +struct var_defs { + unsigned int n_vars; + char *name[16]; + char *expr[16]; +}; + +struct hist_trigger_attrs { + char *keys_str; + char *vals_str; + char *sort_key_str; + char *name; + char *clock; + bool pause; + bool cont; + bool clear; + bool ts_in_usecs; + bool no_hitcount; + unsigned int map_bits; + char *assignment_str[16]; + unsigned int n_assignments; + char *action_str[8]; + unsigned int n_actions; + struct var_defs var_defs; +}; + +struct tracing_map_sort_key { + unsigned int field_idx; + bool descending; +}; + +struct tracing_map; + +struct hist_trigger_data { + struct hist_field *fields[22]; + unsigned int n_vals; + unsigned int n_keys; + unsigned int n_fields; + unsigned int n_vars; + unsigned int n_var_str; + unsigned int key_size; + struct tracing_map_sort_key sort_keys[2]; + unsigned int n_sort_keys; + struct trace_event_file *event_file; + struct hist_trigger_attrs *attrs; + struct tracing_map *map; + bool enable_timestamps; + bool remove; + struct hist_field *var_refs[16]; + unsigned int n_var_refs; + struct action_data *actions[8]; + unsigned int n_actions; + struct field_var *field_vars[64]; + unsigned int n_field_vars; + unsigned int n_field_var_str; + struct field_var_hist *field_var_hists[64]; + unsigned int n_field_var_hists; + struct field_var *save_vars[64]; + unsigned int n_save_vars; + unsigned int n_save_var_str; +}; + +struct hist_val_stat { + u64 max; + u64 total; +}; + +struct hist_var_data { + struct list_head list; + struct hist_trigger_data *hist_data; +}; + +struct histb_pcie { + struct dw_pcie *pci; + struct clk *aux_clk; + struct clk *pipe_clk; + struct clk *sys_clk; + struct clk *bus_clk; + struct phy *phy; + struct reset_control *soft_reset; + struct reset_control *sys_reset; + struct reset_control *bus_reset; + void *ctrl; + struct gpio_desc *reset_gpio; + struct regulator *vpcie; +}; + +struct hlist_bl_head { + struct hlist_bl_node *first; +}; + +struct hmac_ctx { + struct crypto_shash *hash; + u8 pads[0]; +}; + +struct mmu_interval_notifier; + +struct hmm_range { + struct mmu_interval_notifier *notifier; + long unsigned int notifier_seq; + long unsigned int start; + long unsigned int end; + long unsigned int *hmm_pfns; + long unsigned int default_flags; + long unsigned int pfn_flags_mask; + void *dev_private_owner; +}; + +struct hmm_vma_walk { + struct hmm_range *range; + long unsigned int last; +}; + +struct hop_jumbo_hdr { + u8 nexthdr; + u8 hdrlen; + u8 tlv_type; + u8 tlv_len; + __be32 jumbo_payload_len; +}; + +struct kvm_vmid { + atomic64_t id; +}; + +struct kvm_mmu_memory_cache { + gfp_t gfp_zero; + gfp_t gfp_custom; + u64 init_value; + struct kmem_cache *kmem_cache; + int capacity; + int nobjs; + void **objects; +}; + +struct kvm_pgtable; + +struct kvm_arch; + +struct kvm_s2_mmu { + struct kvm_vmid vmid; + phys_addr_t pgd_phys; + struct kvm_pgtable *pgt; + u64 vtcr; + int *last_vcpu_ran; + struct kvm_mmu_memory_cache split_page_cache; + uint64_t split_page_chunk_size; + struct kvm_arch *arch; + u64 tlb_vttbr; + u64 tlb_vtcr; + bool nested_stage2_enabled; + bool pending_unmap; + atomic_t refcnt; +}; + +struct vgic_its; + +struct vgic_register_region; + +struct vgic_io_device { + gpa_t base_addr; + union { + struct kvm_vcpu *redist_vcpu; + struct vgic_its *its; + }; + const struct vgic_register_region *regions; + enum iodev_type iodev_type; + int nr_regions; + struct kvm_io_device dev; +}; + +struct its_vpe; + +struct its_vm { + struct fwnode_handle *fwnode; + struct irq_domain *domain; + struct page *vprop_page; + struct its_vpe **vpes; + int nr_vpes; + irq_hw_number_t db_lpi_base; + long unsigned int *db_bitmap; + int nr_db_lpis; + raw_spinlock_t vmapp_lock; + u32 vlpi_count[16]; +}; + +struct vgic_irq; + +struct vgic_state_iter; + +struct vgic_dist { + bool in_kernel; + bool ready; + bool initialized; + u32 vgic_model; + u32 implementation_rev; + bool v2_groups_user_writable; + bool msis_require_devid; + int nr_spis; + gpa_t vgic_dist_base; + union { + gpa_t vgic_cpu_base; + struct list_head rd_regions; + }; + bool enabled; + bool nassgireq; + struct vgic_irq *spis; + struct vgic_io_device dist_iodev; + bool has_its; + bool table_write_in_progress; + u64 propbaser; + struct xarray lpi_xa; + struct vgic_state_iter *iter; + struct its_vm its_vm; +}; + +struct kvm_smccc_features { + long unsigned int std_bmap; + long unsigned int std_hyp_bmap; + long unsigned int vendor_hyp_bmap; +}; + +struct maple_tree { + union { + spinlock_t ma_lock; + lockdep_map_p ma_external_lock; + }; + unsigned int ma_flags; + void *ma_root; +}; + +struct pkvm_mapping; + +struct kvm_hyp_memcache { + phys_addr_t head; + long unsigned int nr_pages; + struct pkvm_mapping *mapping; +}; + +struct kvm_protected_vm { + pkvm_handle_t handle; + struct kvm_hyp_memcache teardown_mc; + bool enabled; +}; + +struct kvm_mpidr_data; + +struct kvm_sysreg_masks; + +struct kvm_arch { + struct kvm_s2_mmu mmu; + u64 fgu[5]; + struct kvm_s2_mmu *nested_mmus; + size_t nested_mmus_size; + int nested_mmus_next; + struct vgic_dist vgic; + struct arch_timer_vm_data timer_data; + u32 psci_version; + struct mutex config_lock; + long unsigned int flags; + long unsigned int vcpu_features[1]; + struct kvm_mpidr_data *mpidr_data; + long unsigned int *pmu_filter; + struct arm_pmu *arm_pmu; + cpumask_var_t supported_cpus; + u8 pmcr_n; + u8 idreg_debugfs_iter; + struct kvm_smccc_features smccc_feat; + struct maple_tree smccc_filter; + u64 id_regs[56]; + u64 ctr_el0; + struct kvm_sysreg_masks *sysreg_masks; + struct kvm_protected_vm pkvm; +}; + +typedef bool (*kvm_pgtable_force_pte_cb_t)(u64, u64, enum kvm_pgtable_prot); + +struct kvm_pgtable_mm_ops; + +struct kvm_pgtable { + union { + struct rb_root pkvm_mappings; + struct { + u32 ia_bits; + s8 start_level; + kvm_pteref_t pgd; + struct kvm_pgtable_mm_ops *mm_ops; + enum kvm_pgtable_stage2_flags flags; + kvm_pgtable_force_pte_cb_t force_pte_cb; + }; + }; + struct kvm_s2_mmu *mmu; +}; + +struct kvm_pgtable_mm_ops { + void * (*zalloc_page)(void *); + void * (*zalloc_pages_exact)(size_t); + void (*free_pages_exact)(void *, size_t); + void (*free_unlinked_table)(void *, s8); + void (*get_page)(void *); + void (*put_page)(void *); + int (*page_count)(void *); + void * (*phys_to_virt)(phys_addr_t); + phys_addr_t (*virt_to_phys)(void *); + void (*dcache_clean_inval_poc)(void *, size_t); + void (*icache_inval_pou)(void *, size_t); +}; + +union hyp_spinlock { + u32 __val; + struct { + u16 owner; + u16 next; + }; +}; + +typedef union hyp_spinlock hyp_spinlock_t; + +struct host_mmu { + struct kvm_arch arch; + struct kvm_pgtable pgt; + struct kvm_pgtable_mm_ops mm_ops; + hyp_spinlock_t lock; +}; + +struct hotplug_slot_ops { + int (*enable_slot)(struct hotplug_slot *); + int (*disable_slot)(struct hotplug_slot *); + int (*set_attention_status)(struct hotplug_slot *, u8); + int (*hardware_test)(struct hotplug_slot *, u32); + int (*get_power_status)(struct hotplug_slot *, u8 *); + int (*get_attention_status)(struct hotplug_slot *, u8 *); + int (*get_latch_status)(struct hotplug_slot *, u8 *); + int (*get_adapter_status)(struct hotplug_slot *, u8 *); + int (*reset_slot)(struct hotplug_slot *, bool); +}; + +struct housekeeping { + cpumask_var_t cpumasks[3]; + long unsigned int flags; +}; + +struct hprobe { + enum hprobe_state state; + int srcu_idx; + struct uprobe *uprobe; +}; + +struct hpx_type0 { + u32 revision; + u8 cache_line_size; + u8 latency_timer; + u8 enable_serr; + u8 enable_perr; +}; + +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 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)(void); + 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 online: 1; + unsigned int nr_events; + short unsigned int nr_retries; + short unsigned int 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]; + call_single_data_t csd; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct hrtimer_sleeper { + struct hrtimer timer; + struct task_struct *task; +}; + +struct hsr_tag { + __be16 path_and_LSDU_size; + __be16 sequence_nr; + __be16 encap_proto; +}; + +struct hstate { + struct mutex resize_lock; + struct lock_class_key resize_key; + int next_nid_to_alloc; + int next_nid_to_free; + unsigned int order; + unsigned int demote_order; + long unsigned int mask; + long unsigned int max_huge_pages; + long unsigned int nr_huge_pages; + long unsigned int free_huge_pages; + long unsigned int resv_huge_pages; + long unsigned int surplus_huge_pages; + long unsigned int nr_overcommit_huge_pages; + struct list_head hugepage_activelist; + struct list_head hugepage_freelists[64]; + unsigned int max_huge_pages_node[64]; + unsigned int nr_huge_pages_node[64]; + unsigned int free_huge_pages_node[64]; + unsigned int surplus_huge_pages_node[64]; + char name[32]; +}; + +struct pcpu_freelist_node { + struct pcpu_freelist_node *next; +}; + +struct htab_elem { + union { + struct hlist_nulls_node hash_node; + struct { + void *padding; + union { + struct pcpu_freelist_node fnode; + struct htab_elem *batch_flink; + }; + }; + }; + union { + void *ptr_to_pptr; + struct bpf_lru_node lru_node; + }; + u32 hash; + long: 0; + char key[0]; +}; + +struct hte_ops; + +struct hte_ts_desc; + +struct hte_device; + +struct hte_chip { + const char *name; + struct device *dev; + const struct hte_ops *ops; + u32 nlines; + int (*xlate_of)(struct hte_chip *, const struct of_phandle_args *, struct hte_ts_desc *, u32 *); + int (*xlate_plat)(struct hte_chip *, struct hte_ts_desc *, u32 *); + bool (*match_from_linedata)(const struct hte_chip *, const struct hte_ts_desc *); + u8 of_hte_n_cells; + struct hte_device *gdev; + void *data; +}; + +struct hte_clk_info { + u64 hz; + clockid_t type; +}; + +struct hte_ts_data; + +typedef enum hte_return (*hte_ts_cb_t)(struct hte_ts_data *, void *); + +typedef enum hte_return (*hte_ts_sec_cb_t)(void *); + +struct hte_ts_info { + u32 xlated_id; + long unsigned int flags; + long unsigned int hte_cb_flags; + u64 seq; + char *line_name; + bool free_attr_name; + hte_ts_cb_t cb; + hte_ts_sec_cb_t tcb; + atomic_t dropped_ts; + spinlock_t slock; + struct work_struct cb_work; + struct mutex req_mlock; + struct dentry *ts_dbg_root; + struct hte_device *gdev; + void *cl_data; +}; + +struct hte_device { + u32 nlines; + atomic_t ts_req; + struct device *sdev; + struct dentry *dbg_root; + struct list_head list; + struct hte_chip *chip; + struct module *owner; + struct hte_ts_info ei[0]; +}; + +struct hte_line_attr { + u32 line_id; + void *line_data; + long unsigned int edge_flags; + const char *name; +}; + +struct hte_ops { + int (*request)(struct hte_chip *, struct hte_ts_desc *, u32); + int (*release)(struct hte_chip *, struct hte_ts_desc *, u32); + int (*enable)(struct hte_chip *, u32); + int (*disable)(struct hte_chip *, u32); + int (*get_clk_src_info)(struct hte_chip *, struct hte_clk_info *); +}; + +struct hte_ts_data { + u64 tsc; + u64 seq; + int raw_level; +}; + +struct hte_ts_desc { + struct hte_line_attr attr; + void *hte_data; +}; + +struct huge_bootmem_page { + struct list_head list; + struct hstate *hstate; +}; + +struct hugepage_subpool { + spinlock_t lock; + long int count; + long int max_hpages; + long int used_hpages; + struct hstate *hstate; + long int min_hpages; + long int rsv_hpages; +}; + +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; + struct page_counter hugepage[4]; + struct page_counter rsvd_hugepage[4]; + atomic_long_t events[4]; + atomic_long_t events_local[4]; + struct cgroup_file events_file[4]; + struct cgroup_file events_local_file[4]; + struct hugetlb_cgroup_per_node *nodeinfo[0]; +}; + +struct hugetlb_cgroup_per_node { + long unsigned int usage[4]; +}; + +struct hugetlb_vma_lock { + struct kref refs; + struct rw_semaphore rw_sema; + struct vm_area_struct *vma; +}; + +struct hugetlbfs_fs_context { + struct hstate *hstate; + long long unsigned int max_size_opt; + long long unsigned int min_size_opt; + long int max_hpages; + long int nr_inodes; + long int 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 hugetlbfs_inode_info { + struct inode vfs_inode; + unsigned int seals; +}; + +struct hugetlbfs_sb_info { + long int max_inodes; + long int free_inodes; + spinlock_t stat_lock; + struct hstate *hstate; + struct hugepage_subpool *spool; + kuid_t uid; + kgid_t gid; + umode_t mode; +}; + +struct hv_get_vp_registers_output { + union { + struct { + u32 a; + u32 b; + u32 c; + u32 d; + } as32; + struct { + u64 low; + u64 high; + } as64; + }; +}; + +union hv_hypervisor_version_info { + struct { + u32 build_number; + u32 minor_version: 16; + u32 major_version: 16; + u32 service_pack; + u32 service_number: 24; + u32 service_branch: 8; + }; + struct { + u32 eax; + u32 ebx; + u32 ecx; + u32 edx; + }; +}; + +struct hv_ops { + ssize_t (*get_chars)(uint32_t, u8 *, size_t); + ssize_t (*put_chars)(uint32_t, const u8 *, size_t); + 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; + 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; + long unsigned int flags; + u8 outbuf[0]; +}; + +struct hw_perf_event_extra { + u64 config; + unsigned int reg; + int alloc; + int idx; +}; + +struct rhlist_head { + struct rhash_head rhead; + struct rhlist_head *next; +}; + +struct hw_perf_event { + union { + struct { + u64 config; + u64 last_tag; + long unsigned int config_base; + long unsigned int 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 { + u64 aux_config; + unsigned int aux_paused; + }; + 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; + long unsigned int 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 hw_pmu_info { + u32 type; + u32 enable_mask; + void *csr; +}; + +struct hw_port_info { + struct net_device *lower_dev; + u32 port_id; +}; + +struct hwlat_data { + struct mutex lock; + u64 count; + u64 sample_window; + u64 sample_width; + int thread_mode; +}; + +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 hwlat_kthread_data { + struct task_struct *kthread; + u64 nmi_ts_start; + u64 nmi_total_ts; + int nmi_count; + int nmi_cpu; +}; + +struct hwlat_sample { + u64 seqnum; + u64 duration; + u64 outer_duration; + u64 nmi_total_ts; + struct timespec64 timestamp; + int nmi_count; + int count; +}; + +struct hwmon_channel_info { + enum hwmon_sensor_types type; + const u32 *config; +}; + +struct hwmon_ops; + +struct hwmon_chip_info { + const struct hwmon_ops *ops; + const struct hwmon_channel_info * const *info; +}; + +struct hwmon_device { + const char *name; + const char *label; + struct device dev; + const struct hwmon_chip_info *chip; + struct list_head tzdata; + struct attribute_group group; + const struct attribute_group **groups; +}; + +struct hwmon_device_attribute { + struct device_attribute dev_attr; + const struct hwmon_ops *ops; + enum hwmon_sensor_types type; + u32 attr; + int index; + char name[32]; +}; + +struct hwmon_ops { + umode_t visible; + umode_t (*is_visible)(const void *, enum hwmon_sensor_types, u32, int); + int (*read)(struct device *, enum hwmon_sensor_types, u32, int, long int *); + int (*read_string)(struct device *, enum hwmon_sensor_types, u32, int, const char **); + int (*write)(struct device *, enum hwmon_sensor_types, u32, int, long int); +}; + +struct hwmon_thermal_data { + struct list_head node; + struct device *dev; + int index; + struct thermal_zone_device *tzd; +}; + +struct hwmon_type_attr_list { + const u32 *attrs; + size_t n_attrs; +}; + +struct to_kill { + struct list_head nd; + struct task_struct *tsk; + long unsigned int addr; + short int size_shift; +}; + +struct hwpoison_walk { + struct to_kill tk; + long unsigned int pfn; + int flags; +}; + +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); + long unsigned int priv; + short unsigned int quality; + struct list_head list; + struct kref ref; + struct completion cleanup_done; + struct completion dying; +}; + +struct hwspinlock_device; + +struct hwspinlock { + struct hwspinlock_device *bank; + spinlock_t lock; + void *priv; +}; + +struct hwspinlock_ops; + +struct hwspinlock_device { + struct device *dev; + const struct hwspinlock_ops *ops; + int base_id; + int num_locks; + struct hwspinlock lock[0]; +}; + +struct hwspinlock_ops { + int (*trylock)(struct hwspinlock *); + void (*unlock)(struct hwspinlock *); + int (*bust)(struct hwspinlock *, unsigned int); + void (*relax)(struct hwspinlock *); +}; + +struct hwtstamp_config { + int flags; + int tx_type; + int rx_filter; +}; + +struct hwtstamp_provider_desc { + int index; + enum hwtstamp_provider_qualifier qualifier; +}; + +struct hwtstamp_provider { + struct callback_head callback_head; + enum hwtstamp_source source; + struct phy_device *phydev; + struct hwtstamp_provider_desc desc; +}; + +struct hyp_fixmap_slot { + u64 addr; + kvm_pte_t *ptep; +}; + +struct hyp_map_data { + const u64 phys; + kvm_pte_t attr; +}; + +struct hyp_page { + u16 refcount; + u8 order; + enum pkvm_page_state host_state: 8; + u32 host_share_guest_count; +}; + +struct hyp_pool { + hyp_spinlock_t lock; + struct list_head free_area[14]; + phys_addr_t range_start; + phys_addr_t range_end; + u8 max_order; +}; + +struct hyp_shared_pfn { + u64 pfn; + int count; + struct rb_node node; +}; + +struct hyp_sysfs_attr { + struct attribute attr; + ssize_t (*show)(struct hyp_sysfs_attr *, char *); + ssize_t (*store)(struct hyp_sysfs_attr *, const char *, size_t); + union { + void *hyp_attr_data; + long unsigned int hyp_attr_value; + }; +}; + +struct i2c_acpi_handler_data { + struct acpi_connection_info info; + struct i2c_adapter *adapter; +}; + +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 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; +}; + +union i2c_smbus_data; + +struct i2c_algorithm { + union { + int (*xfer)(struct i2c_adapter *, struct i2c_msg *, int); + int (*master_xfer)(struct i2c_adapter *, struct i2c_msg *, int); + }; + union { + int (*xfer_atomic)(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, short unsigned int, char, u8, int, union i2c_smbus_data *); + int (*smbus_xfer_atomic)(struct i2c_adapter *, u16, short unsigned int, char, u8, int, union i2c_smbus_data *); + u32 (*functionality)(struct i2c_adapter *); + union { + int (*reg_target)(struct i2c_client *); + int (*reg_slave)(struct i2c_client *); + }; + union { + int (*unreg_target)(struct i2c_client *); + int (*unreg_slave)(struct i2c_client *); + }; +}; + +struct i2c_board_info { + char type[20]; + short unsigned int flags; + short unsigned int addr; + const char *dev_name; + void *platform_data; + struct device_node *of_node; + struct fwnode_handle *fwnode; + const struct software_node *swnode; + const struct resource *resources; + unsigned int num_resources; + int irq; +}; + +typedef int (*i2c_slave_cb_t)(struct i2c_client *, enum i2c_slave_event, u8 *); + +struct i2c_client { + short unsigned int flags; + short unsigned int addr; + char name[20]; + struct i2c_adapter *adapter; + struct device dev; + int init_irq; + int irq; + struct list_head detected; + i2c_slave_cb_t slave_cb; + void *devres_group_id; + struct dentry *debugfs; +}; + +struct i2c_cmd_arg { + unsigned int cmd; + void *arg; +}; + +struct i2c_dev { + struct list_head list; + struct i2c_adapter *adap; + struct device dev; + struct cdev cdev; +}; + +struct i2c_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; + +struct i2c_device_identity { + u16 manufacturer_id; + u16 part_id; + u8 die_revision; +}; + +struct i2c_devinfo { + struct list_head list; + int busnum; + struct i2c_board_info board_info; +}; + +struct i2c_dw_semaphore_callbacks { + int (*probe)(struct dw_i2c_dev *); + void (*remove)(struct dw_i2c_dev *); +}; + +struct i2c_lock_operations { + void (*lock_bus)(struct i2c_adapter *, unsigned int); + int (*trylock_bus)(struct i2c_adapter *, unsigned int); + void (*unlock_bus)(struct i2c_adapter *, unsigned int); +}; + +struct i2c_msg { + __u16 addr; + __u16 flags; + __u16 len; + __u8 *buf; +}; + +struct i2c_msg32 { + u16 addr; + u16 flags; + u16 len; + compat_caddr_t buf; +}; + +struct i2c_of_probe_ops; + +struct i2c_of_probe_cfg { + const struct i2c_of_probe_ops *ops; + const char *type; +}; + +struct i2c_of_probe_ops { + int (*enable)(struct device *, struct device_node *, void *); + void (*cleanup_early)(struct device *, void *); + void (*cleanup)(struct device *, void *); +}; + +struct i2c_of_probe_simple_opts; + +struct i2c_of_probe_simple_ctx { + const struct i2c_of_probe_simple_opts *opts; + struct regulator *supply; + struct gpio_desc *gpiod; +}; + +struct i2c_of_probe_simple_opts { + const char *res_node_compatible; + const char *supply_name; + const char *gpio_name; + unsigned int post_power_on_delay_ms; + unsigned int post_gpio_config_delay_ms; + bool gpio_assert_to_enable; +}; + +struct i2c_rdwr_ioctl_data { + struct i2c_msg *msgs; + __u32 nmsgs; +}; + +struct i2c_rdwr_ioctl_data32 { + compat_caddr_t msgs; + u32 nmsgs; +}; + +struct i2c_smbus_alert_setup { + int irq; +}; + +union i2c_smbus_data { + __u8 byte; + __u16 word; + __u8 block[34]; +}; + +struct i2c_smbus_ioctl_data { + __u8 read_write; + __u8 command; + __u32 size; + union i2c_smbus_data *data; +}; + +struct i2c_smbus_ioctl_data32 { + u8 read_write; + u8 command; + u32 size; + compat_caddr_t data; +}; + +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 ib_pd; + +struct ib_uobject; + +struct ib_gid_attr; + +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 ib_ah_attr { + u16 dlid; + u8 src_path_bits; +}; + +struct ib_core_device { + struct device dev; + possible_net_t rdma_net; + struct kobject *ports_kobj; + struct list_head port_list; + struct ib_device *owner; +}; + +struct ib_counters { + struct ib_device *device; + struct ib_uobject *uobject; + atomic_t usecnt; +}; + +struct ib_counters_read_attr { + u64 *counters_buff; + u32 ncounters; + u32 flags; +}; + +struct ib_ucq_object; + +struct ib_cq; + +typedef void (*ib_comp_handler)(struct ib_cq *, void *); + +struct irq_poll; + +typedef int irq_poll_fn(struct irq_poll *, int); + +struct irq_poll { + struct list_head list; + long unsigned int state; + int weight; + irq_poll_fn *poll; +}; + +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_wc; + +struct ib_cq { + struct ib_device *device; + struct ib_ucq_object *uobject; + ib_comp_handler comp_handler; + void (*event_handler)(struct ib_event *, void *); + void *cq_context; + int cqe; + unsigned int cqe_used; + atomic_t usecnt; + enum ib_poll_context poll_ctx; + struct ib_wc *wc; + struct list_head pool_entry; + union { + struct irq_poll iop; + struct work_struct work; + }; + struct workqueue_struct *comp_wq; + struct dim *dim; + ktime_t timestamp; + u8 interrupt: 1; + u8 shared: 1; + unsigned int comp_vector; + struct rdma_restrack_entry res; +}; + +struct ib_cq_caps { + u16 max_cq_moderation_count; + u16 max_cq_moderation_period; +}; + +struct ib_cq_init_attr { + unsigned int cqe; + u32 comp_vector; + u32 flags; +}; + +struct ib_cqe { + void (*done)(struct ib_cq *, struct ib_wc *); +}; + +struct ib_mad; + +struct uverbs_attr_bundle; + +struct rdma_cm_id; + +struct iw_cm_id; + +struct iw_cm_conn_param; + +struct ib_uverbs_file; + +struct ib_qp; + +struct ib_send_wr; + +struct ib_recv_wr; + +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_ucontext; + +struct rdma_user_mmap_entry; + +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_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 ifla_vf_info; + +struct ifla_vf_stats; + +struct ifla_vf_guid; + +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 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 uverbs_attr_bundle *); + 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 uverbs_attr_bundle *); + struct ib_mr * (*rereg_user_mr)(struct ib_mr *, int, u64, u64, u64, int, struct ib_pd *, struct ib_udata *); + int (*dereg_mr)(struct ib_mr *, struct ib_udata *); + struct ib_mr * (*alloc_mr)(struct ib_pd *, enum ib_mr_type, u32); + struct ib_mr * (*alloc_mr_integrity)(struct ib_pd *, u32, u32); + int (*advise_mr)(struct ib_pd *, enum ib_uverbs_advise_mr_advice, u32, struct ib_sge *, u32, struct uverbs_attr_bundle *); + int (*map_mr_sg)(struct ib_mr *, struct scatterlist *, int, unsigned int *); + int (*check_mr_status)(struct ib_mr *, u32, struct ib_mr_status *); + int (*alloc_mw)(struct ib_mw *, struct ib_udata *); + int (*dealloc_mw)(struct ib_mw *); + int (*attach_mcast)(struct ib_qp *, union ib_gid *, u16); + int (*detach_mcast)(struct ib_qp *, union ib_gid *, u16); + int (*alloc_xrcd)(struct ib_xrcd *, struct ib_udata *); + int (*dealloc_xrcd)(struct ib_xrcd *, struct ib_udata *); + struct ib_flow * (*create_flow)(struct ib_qp *, struct ib_flow_attr *, struct ib_udata *); + int (*destroy_flow)(struct ib_flow *); + int (*destroy_flow_action)(struct ib_flow_action *); + int (*set_vf_link_state)(struct ib_device *, int, u32, int); + int (*get_vf_config)(struct ib_device *, int, u32, struct ifla_vf_info *); + int (*get_vf_stats)(struct ib_device *, int, u32, struct ifla_vf_stats *); + int (*get_vf_guid)(struct ib_device *, int, u32, struct ifla_vf_guid *, struct ifla_vf_guid *); + int (*set_vf_guid)(struct ib_device *, int, u32, u64, int); + struct ib_wq * (*create_wq)(struct ib_pd *, struct ib_wq_init_attr *, struct ib_udata *); + int (*destroy_wq)(struct ib_wq *, struct ib_udata *); + int (*modify_wq)(struct ib_wq *, struct ib_wq_attr *, u32, struct ib_udata *); + int (*create_rwq_ind_table)(struct ib_rwq_ind_table *, struct ib_rwq_ind_table_init_attr *, struct ib_udata *); + int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *); + struct ib_dm * (*alloc_dm)(struct ib_device *, struct ib_ucontext *, struct ib_dm_alloc_attr *, struct uverbs_attr_bundle *); + int (*dealloc_dm)(struct ib_dm *, struct uverbs_attr_bundle *); + struct ib_mr * (*reg_dm_mr)(struct ib_pd *, struct ib_dm *, struct ib_dm_mr_attr *, struct uverbs_attr_bundle *); + int (*create_counters)(struct ib_counters *, struct uverbs_attr_bundle *); + int (*destroy_counters)(struct ib_counters *); + int (*read_counters)(struct ib_counters *, struct ib_counters_read_attr *, struct uverbs_attr_bundle *); + int (*map_mr_sg_pi)(struct ib_mr *, struct scatterlist *, int, unsigned int *, struct scatterlist *, int, unsigned int *); + struct rdma_hw_stats * (*alloc_hw_device_stats)(struct ib_device *); + struct rdma_hw_stats * (*alloc_hw_port_stats)(struct ib_device *, u32); + int (*get_hw_stats)(struct ib_device *, struct rdma_hw_stats *, u32, int); + int (*modify_hw_stat)(struct ib_device *, u32, unsigned int, bool); + int (*fill_res_mr_entry)(struct sk_buff *, struct ib_mr *); + int (*fill_res_mr_entry_raw)(struct sk_buff *, struct ib_mr *); + int (*fill_res_cq_entry)(struct sk_buff *, struct ib_cq *); + int (*fill_res_cq_entry_raw)(struct sk_buff *, struct ib_cq *); + int (*fill_res_qp_entry)(struct sk_buff *, struct ib_qp *); + int (*fill_res_qp_entry_raw)(struct sk_buff *, struct ib_qp *); + int (*fill_res_cm_id_entry)(struct sk_buff *, struct rdma_cm_id *); + int (*fill_res_srq_entry)(struct sk_buff *, struct ib_srq *); + int (*fill_res_srq_entry_raw)(struct sk_buff *, struct ib_srq *); + int (*enable_driver)(struct ib_device *); + void (*dealloc_driver)(struct ib_device *); + void (*iw_add_ref)(struct ib_qp *); + void (*iw_rem_ref)(struct ib_qp *); + struct ib_qp * (*iw_get_qp)(struct ib_device *, int); + int (*iw_connect)(struct iw_cm_id *, struct iw_cm_conn_param *); + int (*iw_accept)(struct iw_cm_id *, struct iw_cm_conn_param *); + int (*iw_reject)(struct iw_cm_id *, const void *, u8); + int (*iw_create_listen)(struct iw_cm_id *, int); + int (*iw_destroy_listen)(struct iw_cm_id *); + int (*counter_bind_qp)(struct rdma_counter *, struct ib_qp *); + int (*counter_unbind_qp)(struct ib_qp *); + int (*counter_dealloc)(struct rdma_counter *); + struct rdma_hw_stats * (*counter_alloc_stats)(struct rdma_counter *); + int (*counter_update_stats)(struct rdma_counter *); + int (*fill_stat_mr_entry)(struct sk_buff *, struct ib_mr *); + int (*query_ucontext)(struct ib_ucontext *, struct uverbs_attr_bundle *); + int (*get_numa_node)(struct ib_device *); + struct ib_device * (*add_sub_dev)(struct ib_device *, enum rdma_nl_dev_type, const char *); + void (*del_sub_dev)(struct ib_device *); + void (*ufile_hw_cleanup)(struct ib_uverbs_file *); + void (*report_port_event)(struct ib_device *, struct net_device *, long unsigned int); + size_t size_ib_ah; + size_t size_ib_counters; + size_t size_ib_cq; + size_t size_ib_mw; + size_t size_ib_pd; + size_t size_ib_qp; + size_t size_ib_rwq_ind_table; + size_t size_ib_srq; + size_t size_ib_ucontext; + size_t size_ib_xrcd; +}; + +struct 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_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 rdmacg_device { + struct list_head dev_node; + struct list_head rpools; + char *name; +}; + +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]; + u8 hw_stats_attr_index; + 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 mutex subdev_lock; + struct list_head subdev_list_head; + enum rdma_nl_dev_type type; + struct ib_device *parent; + struct list_head subdev_list; + enum rdma_nl_name_assign_type name_assign_type; +}; + +struct ib_device_modify { + u64 sys_image_guid; + char node_desc[64]; +}; + +struct ib_dm { + struct ib_device *device; + u32 length; + u32 flags; + struct ib_uobject *uobject; + atomic_t usecnt; +}; + +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_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_flow { + struct ib_qp *qp; + struct ib_device *device; + struct ib_uobject *uobject; +}; + +struct ib_flow_action { + struct ib_device *device; + struct ib_uobject *uobject; + enum ib_flow_action_type type; + atomic_t usecnt; +}; + +struct ib_flow_eth_filter { + u8 dst_mac[6]; + u8 src_mac[6]; + __be16 ether_type; + __be16 vlan_tag; +}; + +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; +}; + +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; +}; + +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; +}; + +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; +} __attribute__((packed)); + +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; +}; + +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; +}; + +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; +}; + +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; +}; + +struct ib_flow_spec_mpls { + u32 type; + u16 size; + struct ib_flow_mpls_filter val; + struct ib_flow_mpls_filter mask; +}; + +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]; +}; + +union ib_gid { + u8 raw[16]; + struct { + __be64 subnet_prefix; + __be64 interface_id; + } global; +}; + +struct ib_gid_attr { + struct net_device *ndev; + struct ib_device *device; + union ib_gid gid; + enum ib_gid_type gid_type; + u16 index; + u32 port_num; +}; + +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 ib_grh { + __be32 version_tclass_flow; + __be16 paylen; + u8 next_hdr; + u8 hop_limit; + union ib_gid sgid; + union ib_gid dgid; +}; + +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_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; +}; + +struct ib_mw { + struct ib_device *device; + struct ib_pd *pd; + struct ib_uobject *uobject; + u32 rkey; + enum ib_mw_type type; +}; + +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_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_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; + enum ib_port_state last_port_state; +}; + +struct ib_port_immutable { + int pkey_tbl_len; + int gid_tbl_len; + u32 core_cap_flags; + u32 max_mad_size; +}; + +struct rdma_counter_mode { + enum rdma_nl_counter_mode mode; + enum rdma_nl_counter_mask mask; + struct auto_mode_param param; +}; + +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 *netdev; + netdevice_tracker netdev_tracker; + struct hlist_node ndev_hash_link; + struct rdma_port_counter port_counter; + struct ib_port *sysfs; +}; + +struct ib_port_modify { + u32 set_port_cap_mask; + u32 clr_port_cap_mask; + u8 init_type; +}; + +struct ib_qp_security; + +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; +}; + +struct ib_uqp_object; + +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 completion srq_completion; + 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 (*registered_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_qp_cap { + u32 max_send_wr; + u32 max_recv_wr; + u32 max_send_sge; + u32 max_recv_sge; + u32 max_inline_data; + u32 max_rdma_ctxs; +}; + +struct roce_ah_attr { + u8 dmac[6]; +}; + +struct opa_ah_attr { + u32 dlid; + u8 src_path_bits; + bool make_grd; +}; + +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_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_qp_init_attr { + void (*event_handler)(struct ib_event *, void *); + void *qp_context; + struct ib_cq *send_cq; + struct ib_cq *recv_cq; + struct ib_srq *srq; + struct ib_xrcd *xrcd; + struct ib_qp_cap cap; + enum ib_sig_type sq_sig_type; + enum ib_qp_type qp_type; + u32 create_flags; + u32 port_num; + struct ib_rwq_ind_table *rwq_ind_tbl; + u32 source_qpn; +}; + +struct ib_qp_security { + struct ib_qp *qp; + struct ib_device *dev; + struct mutex mutex; + struct ib_ports_pkeys *ports_pkeys; + struct list_head shared_qp_list; + void *security; + bool destroying; + atomic_t error_list_count; + struct completion error_complete; + int error_comps_pending; +}; + +struct rdma_cgroup; + +struct ib_rdmacg_object { + struct rdma_cgroup *cg; +}; + +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_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_rwq_ind_table_init_attr { + u32 log_ind_tbl_size; + struct ib_wq **ind_tbl; +}; + +struct ib_security_struct { + u32 sid; +}; + +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_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 ib_usrq_object; + +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_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_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_udata { + const void *inbuf; + void *outbuf; + size_t inlen; + size_t outlen; +}; + +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_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_uwq_object; + +struct ib_wq { + struct ib_device *device; + struct ib_uwq_object *uobject; + void *wq_context; + void (*event_handler)(struct ib_event *, void *); + struct ib_pd *pd; + struct ib_cq *cq; + u32 wq_num; + enum ib_wq_state state; + enum ib_wq_type wq_type; + atomic_t usecnt; +}; + +struct ib_wq_attr { + enum ib_wq_state wq_state; + enum ib_wq_state curr_wq_state; + u32 flags; + u32 flags_mask; +}; + +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_xrcd { + struct ib_device *device; + atomic_t usecnt; + struct inode *inode; + struct rw_semaphore tgt_qps_rwsem; + struct xarray tgt_qps; +}; + +struct icc_bulk_data { + struct icc_path *path; + const char *name; + u32 avg_bw; + u32 peak_bw; +}; + +struct icc_bulk_devres { + struct icc_bulk_data *paths; + int num_paths; +}; + +struct icc_clk_data { + struct clk *clk; + const char *name; + unsigned int master_id; + unsigned int slave_id; +}; + +struct icc_clk_node { + struct clk *clk; + bool enabled; +}; + +struct icc_node; + +struct icc_node_data; + +struct icc_provider { + struct list_head provider_list; + struct list_head nodes; + int (*set)(struct icc_node *, struct icc_node *); + int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); + void (*pre_aggregate)(struct icc_node *); + int (*get_bw)(struct icc_node *, u32 *, u32 *); + struct icc_node * (*xlate)(const struct of_phandle_args *, void *); + struct icc_node_data * (*xlate_extended)(const struct of_phandle_args *, void *); + struct device *dev; + int users; + bool inter_set; + void *data; +}; + +struct icc_clk_provider { + struct icc_provider provider; + int num_clocks; + struct icc_clk_node clocks[0]; +}; + +struct icc_node { + int id; + const char *name; + struct icc_node **links; + size_t num_links; + struct icc_provider *provider; + struct list_head node_list; + struct list_head search_list; + struct icc_node *reverse; + u8 is_traversed: 1; + struct hlist_head req_list; + u32 avg_bw; + u32 peak_bw; + u32 init_avg; + u32 init_peak; + void *data; +}; + +struct icc_node_data { + struct icc_node *node; + u32 tag; +}; + +struct icc_onecell_data { + unsigned int num_nodes; + struct icc_node *nodes[0]; +}; + +struct icc_req { + struct hlist_node req_node; + struct icc_node *node; + struct device *dev; + bool enabled; + u32 tag; + u32 avg_bw; + u32 peak_bw; +}; + +struct icc_path { + const char *name; + size_t num_nodes; + struct icc_req reqs[0]; +}; + +struct icmp6_err { + int err; + int fatal; +}; + +struct icmp6_filter { + __u32 data[8]; +}; + +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 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 ip_options { + __be32 faddr; + __be32 nexthop; + unsigned char optlen; + unsigned char srr; + unsigned char rr; + unsigned char ts; + unsigned char is_strictroute: 1; + unsigned char srr_is_hit: 1; + unsigned char is_changed: 1; + unsigned char rr_needaddr: 1; + unsigned char ts_needtime: 1; + unsigned char ts_needaddr: 1; + unsigned char router_alert; + unsigned char cipso; + unsigned char __pad2; + unsigned char __data[0]; +}; + +struct ip_options_rcu { + struct callback_head rcu; + struct ip_options opt; +}; + +struct ip_options_data { + struct ip_options_rcu opt; + char data[40]; +}; + +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_control { + enum skb_drop_reason (*handler)(struct sk_buff *); + short int error; +}; + +struct icmp_err { + int errno; + unsigned int fatal: 1; +}; + +struct icmp_ext_echo_ctype3_hdr { + __be16 afi; + __u8 addrlen; + __u8 reserved; +}; + +struct icmp_extobj_hdr { + __be16 length; + __u8 class_num; + __u8 class_type; +}; + +struct icmp_ext_echo_iio { + struct icmp_extobj_hdr extobj_hdr; + union { + char name[16]; + __be32 ifindex; + struct { + struct icmp_ext_echo_ctype3_hdr ctype3_hdr; + union { + __be32 ipv4_addr; + struct in6_addr ipv6_addr; + } ip_addr; + } addr; + } ident; +}; + +struct icmp_ext_hdr { + __u8 reserved1: 4; + __u8 version: 4; + __u8 reserved2; + __sum16 checksum; +}; + +struct icmp_filter { + __u32 data; +}; + +struct icmp_mib { + long unsigned int mibs[30]; +}; + +struct icmpmsg_mib { + atomic_long_t mibs[512]; +}; + +struct icmpv6_mib { + long unsigned int mibs[7]; +}; + +struct icmpv6_mib_device { + atomic_long_t mibs[7]; +}; + +struct icmpv6_msg { + struct sk_buff *skb; + int offset; + uint8_t type; +}; + +struct icmpv6msg_mib { + atomic_long_t mibs[512]; +}; + +struct icmpv6msg_mib_device { + atomic_long_t mibs[512]; +}; + +struct icst_params { + long unsigned int ref; + long unsigned int vco_max; + long unsigned int vco_min; + short unsigned int vd_min; + short unsigned int vd_max; + unsigned char rd_min; + unsigned char rd_max; + const unsigned char *s2div; + const unsigned char *idx2s; +}; + +struct icst_vco { + short unsigned int v; + unsigned char r; + unsigned char s; +}; + +struct id_bitmap { + long unsigned int map[4]; +}; + +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 ida_bitmap { + long unsigned int bitmap[16]; +}; + +struct idempotent { + const void *cookie; + struct hlist_node entry; + struct completion complete; + int ret; +}; + +struct idle_inject_device { + struct hrtimer timer; + unsigned int idle_duration_us; + unsigned int run_duration_us; + unsigned int latency_us; + bool (*update)(void); + long unsigned int cpumask[0]; +}; + +struct idle_inject_thread { + struct task_struct *tsk; + int should_run; +}; + +struct idle_timer { + struct hrtimer timer; + int done; +}; + +struct idmap_key { + bool map_up; + u32 id; + u32 count; +}; + +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; + long unsigned int dfs_state_entered; + unsigned int dfs_cac_ms; + s8 psd; +}; + +struct ieee80211_eht_cap_elem_fixed { + u8 mac_cap_info[2]; + u8 phy_cap_info[9]; +}; + +struct ieee80211_eht_mcs_nss_supp_20mhz_only { + union { + struct { + u8 rx_tx_mcs7_max_nss; + u8 rx_tx_mcs9_max_nss; + u8 rx_tx_mcs11_max_nss; + u8 rx_tx_mcs13_max_nss; + }; + u8 rx_tx_max_nss[4]; + }; +}; + +struct ieee80211_eht_mcs_nss_supp_bw { + union { + struct { + u8 rx_tx_mcs9_max_nss; + u8 rx_tx_mcs11_max_nss; + u8 rx_tx_mcs13_max_nss; + }; + u8 rx_tx_max_nss[3]; + }; +}; + +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_freq_range { + u32 start_freq_khz; + u32 end_freq_khz; + u32 max_bandwidth_khz; +}; + +struct ieee80211_he_6ghz_capa { + __le16 capa; +}; + +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_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 ieee80211_power_rule { + u32 max_antenna_gain; + u32 max_eirp; +}; + +struct ieee80211_rate { + u32 flags; + u16 bitrate; + u16 hw_value; + u16 hw_value_short; +}; + +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; + s8 psd; +}; + +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_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_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)); + +struct ieee80211_sta_ht_cap { + u16 cap; + bool ht_supported; + u8 ampdu_factor; + u8 ampdu_density; + struct ieee80211_mcs_info mcs; + short: 0; +} __attribute__((packed)); + +struct ieee80211_sta_s1g_cap { + bool s1g; + u8 cap[10]; + u8 nss_mcs[5]; +}; + +struct ieee80211_sta_vht_cap { + bool vht_supported; + u32 cap; + struct ieee80211_vht_mcs_info vht_mcs; +}; + +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_txrx_stypes { + u16 tx; + u16 rx; +}; + +struct ieee802154_addr { + u8 mode; + __le16 pan_id; + union { + __le16 short_addr; + __le64 extended_addr; + }; +}; + +struct ieee802154_pan_device { + __le16 pan_id; + u8 mode; + __le16 short_addr; + __le64 extended_addr; + struct list_head node; +}; + +struct ieee_ets { + __u8 willing; + __u8 ets_cap; + __u8 cbs; + __u8 tc_tx_bw[8]; + __u8 tc_rx_bw[8]; + __u8 tc_tsa[8]; + __u8 prio_tc[8]; + __u8 tc_reco_bw[8]; + __u8 tc_reco_tsa[8]; + __u8 reco_prio_tc[8]; +}; + +struct ieee_maxrate { + __u64 tc_maxrate[8]; +}; + +struct ieee_pfc { + __u8 pfc_cap; + __u8 pfc_en; + __u8 mbc; + __u16 delay; + __u64 requests[8]; + __u64 indications[8]; +}; + +struct ieee_qcn { + __u8 rpg_enable[8]; + __u32 rppp_max_rps[8]; + __u32 rpg_time_reset[8]; + __u32 rpg_byte_reset[8]; + __u32 rpg_threshold[8]; + __u32 rpg_max_rate[8]; + __u32 rpg_ai_rate[8]; + __u32 rpg_hai_rate[8]; + __u32 rpg_gd[8]; + __u32 rpg_min_dec_fac[8]; + __u32 rpg_min_rate[8]; + __u32 cndd_state_machine[8]; +}; + +struct ieee_qcn_stats { + __u64 rppp_rp_centiseconds[8]; + __u32 rppp_created_rps[8]; +}; + +struct if6_iter_state { + struct seq_net_private p; + int bucket; + int offset; +}; + +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 if_dqinfo { + __u64 dqi_bgrace; + __u64 dqi_igrace; + __u32 dqi_flags; + __u32 dqi_valid; +}; + +struct if_nextdqblk { + __u64 dqb_bhardlimit; + __u64 dqb_bsoftlimit; + __u64 dqb_curspace; + __u64 dqb_ihardlimit; + __u64 dqb_isoftlimit; + __u64 dqb_curinodes; + __u64 dqb_btime; + __u64 dqb_itime; + __u32 dqb_valid; + __u32 dqb_id; +}; + +struct if_set { + if_mask ifs_bits[8]; +}; + +struct if_settings { + unsigned int type; + unsigned int size; + union { + raw_hdlc_proto *raw_hdlc; + cisco_proto *cisco; + fr_proto *fr; + fr_proto_pvc *fr_pvc; + fr_proto_pvc_info *fr_pvc_info; + x25_hdlc_proto *x25; + sync_serial_settings *sync; + te1_settings *te1; + } ifs_ifsu; +}; + +struct if_stats_msg { + __u8 family; + __u8 pad1; + __u16 pad2; + __u32 ifindex; + __u32 filter_mask; +}; + +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 ifa_cacheinfo { + __u32 ifa_prefered; + __u32 ifa_valid; + __u32 cstamp; + __u32 tstamp; +}; + +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; + long unsigned int aca_cstamp; + long unsigned int aca_tstamp; + 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 ifaddrmsg { + __u8 ifa_family; + __u8 ifa_prefixlen; + __u8 ifa_flags; + __u8 ifa_scope; + __u32 ifa_index; +}; + +struct ifbond { + __s32 bond_mode; + __s32 num_slaves; + __s32 miimon; +}; + +typedef struct ifbond ifbond; + +struct ifconf { + int ifc_len; + union { + char *ifcu_buf; + struct ifreq *ifcu_req; + } ifc_ifcu; +}; + +struct ifinfomsg { + unsigned char ifi_family; + unsigned char __ifi_pad; + short unsigned int ifi_type; + int ifi_index; + unsigned int ifi_flags; + unsigned int ifi_change; +}; + +struct ifla_cacheinfo { + __u32 max_reasm_len; + __u32 tstamp; + __u32 reachable_time; + __u32 retrans_time; +}; + +struct ifla_vf_broadcast { + __u8 broadcast[32]; +}; + +struct ifla_vf_guid { + __u32 vf; + __u64 guid; +}; + +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_link_state { + __u32 vf; + __u32 link_state; +}; + +struct ifla_vf_mac { + __u32 vf; + __u8 mac[32]; +}; + +struct ifla_vf_rate { + __u32 vf; + __u32 min_tx_rate; + __u32 max_tx_rate; +}; + +struct ifla_vf_rss_query_en { + __u32 vf; + __u32 setting; +}; + +struct ifla_vf_spoofchk { + __u32 vf; + __u32 setting; +}; + +struct ifla_vf_stats { + __u64 rx_packets; + __u64 tx_packets; + __u64 rx_bytes; + __u64 tx_bytes; + __u64 broadcast; + __u64 multicast; + __u64 rx_dropped; + __u64 tx_dropped; +}; + +struct ifla_vf_trust { + __u32 vf; + __u32 setting; +}; + +struct ifla_vf_tx_rate { + __u32 vf; + __u32 rate; +}; + +struct ifla_vf_vlan { + __u32 vf; + __u32 vlan; + __u32 qos; +}; + +struct ifla_vf_vlan_info { + __u32 vf; + __u32 vlan; + __u32 qos; + __be16 vlan_proto; +}; + +struct ifmap { + long unsigned int mem_start; + long unsigned int mem_end; + short unsigned int base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; +}; + +struct inet6_dev; + +struct ip6_sf_list; + +struct ifmcaddr6 { + struct in6_addr mca_addr; + struct inet6_dev *idev; + struct ifmcaddr6 *next; + struct ip6_sf_list *mca_sources; + struct ip6_sf_list *mca_tomb; + unsigned int mca_sfmode; + unsigned char mca_crcount; + long unsigned int mca_sfcount[2]; + struct delayed_work mca_work; + unsigned int mca_flags; + int mca_users; + refcount_t mca_refcnt; + long unsigned int mca_cstamp; + long unsigned int mca_tstamp; + struct callback_head rcu; +}; + +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 int ifru_flags; + int ifru_ivalue; + int ifru_mtu; + struct ifmap ifru_map; + char ifru_slave[16]; + char ifru_newname[16]; + void *ifru_data; + struct if_settings ifru_settings; + } ifr_ifru; +}; + +struct ifslave { + __s32 slave_id; + char slave_name[16]; + __s8 link; + __s8 state; + __u32 link_failure_count; +}; + +typedef struct ifslave ifslave; + +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 in_device; + +struct igmp_mc_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *in_dev; +}; + +struct ip_mc_list; + +struct igmp_mcf_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *idev; + struct ip_mc_list *im; +}; + +struct igmphdr { + __u8 type; + __u8 code; + __sum16 csum; + __be32 group; +}; + +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 igmpv3_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + __be32 grec_mca; + __be32 grec_src[0]; +}; + +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_report { + __u8 type; + __u8 resv1; + __sum16 csum; + __be16 resv2; + __be16 ngrec; + struct igmpv3_grec grec[0]; +}; + +struct ignore_section { + guid_t guid; + const char *name; +}; + +struct ima_algo_desc { + struct crypto_shash *tfm; + enum hash_algo algo; +}; + +struct ima_digest_data { + union { + struct { + u8 algo; + u8 length; + union { + struct { + u8 unused; + u8 type; + } sha1; + struct { + u8 type; + u8 algo; + } ng; + u8 data[2]; + } xattr; + }; + struct ima_digest_data_hdr hdr; + }; + u8 digest[0]; +}; + +struct ima_iint_cache; + +struct modsig; + +struct ima_event_data { + struct ima_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; +}; + +struct ima_field_data { + u8 *data; + u32 len; +}; + +struct ima_file_id { + __u8 hash_type; + __u8 hash_algorithm; + __u8 hash[64]; +}; + +struct ima_h_table { + atomic_long_t len; + atomic_long_t violations; + struct hlist_head queue[1024]; +}; + +struct ima_iint_cache { + struct mutex mutex; + struct integrity_inode_attributes real_inode; + long unsigned int flags; + long unsigned int measured_pcrs; + long unsigned int 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; + struct ima_digest_data *ima_hash; +}; + +struct ima_kexec_hdr { + u16 version; + u16 _reserved0; + u32 _reserved1; + u64 buffer_size; + u64 count; +}; + +struct ima_key_entry { + struct list_head list; + void *payload; + size_t payload_len; + char *keyring_name; +}; + +struct ima_max_digest_data { + struct ima_digest_data_hdr hdr; + u8 digest[64]; +}; + +struct ima_template_entry; + +struct ima_queue_entry { + struct hlist_node hnext; + struct list_head later; + struct ima_template_entry *entry; +}; + +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; + long unsigned int 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; +}; + +struct tpm_digest; + +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_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 imstt_regvals { + __u32 pitch; + __u16 hes; + __u16 heb; + __u16 hsb; + __u16 ht; + __u16 ves; + __u16 veb; + __u16 vsb; + __u16 vt; + __u16 vil; + __u8 pclk_m; + __u8 pclk_n; + __u8 pclk_p; + __u8 mlc[3]; + __u8 lckl_p[3]; +}; + +struct imstt_par { + struct imstt_regvals init; + __u32 *dc_regs; + long unsigned int cmap_regs_phys; + __u8 *cmap_regs; + __u32 ramdac; + __u32 palette[16]; +}; + +struct imx7_src_signal; + +struct imx7_src { + struct reset_controller_dev rcdev; + struct regmap *regmap; + const struct imx7_src_signal *signals; +}; + +struct imx7_src_signal { + unsigned int offset; + unsigned int bit; +}; + +struct reset_control_ops { + int (*reset)(struct reset_controller_dev *, long unsigned int); + int (*assert)(struct reset_controller_dev *, long unsigned int); + int (*deassert)(struct reset_controller_dev *, long unsigned int); + int (*status)(struct reset_controller_dev *, long unsigned int); +}; + +struct imx7_src_variant { + const struct imx7_src_signal *signals; + unsigned int signals_num; + struct reset_control_ops ops; +}; + +struct imx8_acm_soc_data; + +struct imx8_acm_priv { + struct clk_imx_acm_pm_domains dev_pm; + const struct imx8_acm_soc_data *soc_data; + void *reg; + u32 regs[25]; +}; + +struct imx8_acm_soc_data { + struct clk_imx8_acm_sel *sels; + unsigned int num_sels; + struct clk_parent_data *mclk_sels; +}; + +struct imx8_soc_data { + char *name; + int (*soc_revision)(u32 *, u64 *); +}; + +struct imx8m_blk_ctrl_domain; + +struct imx8m_blk_ctrl { + struct device *dev; + struct notifier_block power_nb; + struct device *bus_power_dev; + struct regmap *regmap; + struct imx8m_blk_ctrl_domain *domains; + struct genpd_onecell_data onecell_data; +}; + +struct imx8m_blk_ctrl_domain_data; + +struct imx8m_blk_ctrl_data { + int max_reg; + notifier_fn_t power_notifier_fn; + const struct imx8m_blk_ctrl_domain_data *domains; + int num_domains; +}; + +struct imx8m_blk_ctrl_domain { + struct generic_pm_domain genpd; + const struct imx8m_blk_ctrl_domain_data *data; + struct clk_bulk_data clks[4]; + struct icc_bulk_data paths[4]; + struct device *power_dev; + struct imx8m_blk_ctrl *bc; + int num_paths; +}; + +struct imx8m_blk_ctrl_domain_data { + const char *name; + const char * const *clk_names; + const char * const *path_names; + const char *gpc_name; + int num_clks; + int num_paths; + u32 rst_mask; + u32 clk_mask; + u32 mipi_phy_rst_mask; +}; + +struct imx8mp_blk_ctrl_domain; + +struct imx8mp_blk_ctrl { + struct device *dev; + struct notifier_block power_nb; + struct device *bus_power_dev; + struct regmap *regmap; + struct imx8mp_blk_ctrl_domain *domains; + struct genpd_onecell_data onecell_data; + void (*power_off)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); + void (*power_on)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); +}; + +struct imx8mp_blk_ctrl_domain_data; + +struct imx8mp_blk_ctrl_data { + int max_reg; + int (*probe)(struct imx8mp_blk_ctrl *); + notifier_fn_t power_notifier_fn; + void (*power_off)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); + void (*power_on)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); + const struct imx8mp_blk_ctrl_domain_data *domains; + int num_domains; +}; + +struct imx8mp_blk_ctrl_domain { + struct generic_pm_domain genpd; + const struct imx8mp_blk_ctrl_domain_data *data; + struct clk_bulk_data clks[3]; + struct icc_bulk_data paths[3]; + struct device *power_dev; + struct imx8mp_blk_ctrl *bc; + int num_paths; + int id; +}; + +struct imx8mp_blk_ctrl_domain_data { + const char *name; + const char * const *clk_names; + int num_clks; + const char * const *path_names; + int num_paths; + const char *gpc_name; +}; + +struct imx8mp_clock_constraints { + unsigned int clkid; + u32 maxrate; +}; + +struct imx8qxp_lpcg_data { + int id; + char *name; + char *parent; + long unsigned int flags; + u32 offset; + u8 bit_idx; + bool hw_gate; +}; + +struct imx8qxp_ss_lpcg { + const struct imx8qxp_lpcg_data *lpcg; + u8 num_lpcg; + u8 num_max; +}; + +struct imx93_blk_ctrl_domain; + +struct imx93_blk_ctrl { + struct device *dev; + struct regmap *regmap; + int num_clks; + struct clk_bulk_data clks[4]; + struct imx93_blk_ctrl_domain *domains; + struct genpd_onecell_data onecell_data; +}; + +struct imx93_blk_ctrl_domain_data; + +struct regmap_access_table; + +struct imx93_blk_ctrl_data { + const struct imx93_blk_ctrl_domain_data *domains; + int num_domains; + const char * const *clk_names; + int num_clks; + const struct regmap_access_table *reg_access_table; +}; + +struct imx93_blk_ctrl_domain { + struct generic_pm_domain genpd; + const struct imx93_blk_ctrl_domain_data *data; + struct clk_bulk_data clks[4]; + struct imx93_blk_ctrl *bc; +}; + +struct imx93_blk_ctrl_qos { + u32 reg; + u32 cfg_off; + u32 default_prio; + u32 cfg_prio; +}; + +struct imx93_blk_ctrl_domain_data { + const char *name; + const char * const *clk_names; + int num_clks; + u32 rst_mask; + u32 clk_mask; + int num_qos; + struct imx93_blk_ctrl_qos qos[4]; +}; + +struct imx93_clk_gate { + struct clk_hw hw; + void *reg; + u32 bit_idx; + u32 val; + u32 mask; + spinlock_t *lock; + unsigned int *share_count; +}; + +struct imx_ahci_priv { + struct platform_device *ahci_pdev; + enum ahci_imx_type type; + struct clk *sata_clk; + struct clk *sata_ref_clk; + struct clk *ahb_clk; + struct regmap *gpr; + struct phy *sata_phy; + struct phy *cali_phy0; + struct phy *cali_phy1; + bool no_device; + bool first_time; + u32 phy_params; + u32 imped_ratio; +}; + +struct imx_clk_gpr { + struct clk_hw hw; + struct regmap *regmap; + u32 mask; + u32 reg; + const u32 *mux_table; +}; + +struct imx_clk_scu_rsrc_table { + const u32 *rsrc; + u8 num; +}; + +struct imx_fracn_gppll_clk { + const struct imx_fracn_gppll_rate_table *rate_table; + int rate_count; + int flags; +}; + +struct imx_fracn_gppll_rate_table { + unsigned int rate; + unsigned int mfi; + unsigned int mfn; + unsigned int mfd; + unsigned int rdiv; + unsigned int odiv; +}; + +struct imx_lut_data { + u32 data1; + u32 data2; +}; + +struct imx_pcie_drvdata; + +struct imx_pcie { + struct dw_pcie *pci; + struct gpio_desc *reset_gpiod; + struct clk_bulk_data clks[6]; + struct regmap *iomuxc_gpr; + u16 msi_ctrl; + u32 controller_id; + struct reset_control *pciephy_reset; + struct reset_control *apps_reset; + u32 tx_deemph_gen1; + u32 tx_deemph_gen2_3p5db; + u32 tx_deemph_gen2_6db; + u32 tx_swing_full; + u32 tx_swing_low; + struct regulator *vpcie; + struct regulator *vph; + void *phy_base; + struct imx_lut_data luts[32]; + struct device *pd_pcie; + struct device *pd_pcie_phy; + struct phy *phy; + const struct imx_pcie_drvdata *drvdata; + struct mutex lock; +}; + +struct imx_pcie_drvdata { + enum imx_pcie_variants variant; + enum dw_pcie_device_mode mode; + u32 flags; + int dbi_length; + const char *gpr; + const char * const *clk_names; + const u32 clks_cnt; + const u32 clks_optional_cnt; + const u32 ltssm_off; + const u32 ltssm_mask; + const u32 mode_off[2]; + const u32 mode_mask[2]; + const struct pci_epc_features *epc_features; + int (*init_phy)(struct imx_pcie *); + int (*enable_ref_clk)(struct imx_pcie *, bool); + int (*core_reset)(struct imx_pcie *, bool); + const struct dw_pcie_host_ops *ops; +}; + +struct imx_pgc_regs; + +struct imx_pgc_domain { + struct generic_pm_domain genpd; + struct regmap *regmap; + const struct imx_pgc_regs *regs; + struct regulator *regulator; + struct reset_control *reset; + struct clk_bulk_data *clks; + int num_clks; + long unsigned int pgc; + const struct { + u32 pxx; + u32 map; + u32 hskreq; + u32 hskack; + } bits; + const int voltage; + const bool keep_clocks; + struct device *dev; + unsigned int pgc_sw_pup_reg; + unsigned int pgc_sw_pdn_reg; +}; + +struct imx_pgc_domain_data { + const struct imx_pgc_domain *domains; + size_t domains_num; + const struct regmap_access_table *reg_access_table; + const struct imx_pgc_regs *pgc_regs; +}; + +struct imx_pgc_regs { + u16 map; + u16 pup; + u16 pdn; + u16 hsk; +}; + +struct imx_pin_mmio { + unsigned int mux_mode; + u16 input_reg; + unsigned int input_val; + long unsigned int config; +}; + +struct imx_pin_scu { + unsigned int mux_mode; + long unsigned int config; +}; + +struct imx_pin { + unsigned int pin; + union { + struct imx_pin_mmio mmio; + struct imx_pin_scu scu; + } conf; +}; + +struct imx_pin_reg { + s16 mux_reg; + s16 conf_reg; +}; + +struct imx_pinctrl_soc_info; + +struct imx_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl; + void *base; + void *input_sel_base; + const struct imx_pinctrl_soc_info *info; + struct imx_pin_reg *pin_regs; + unsigned int group_index; + struct mutex mutex; +}; + +struct imx_pinctrl_soc_info { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + unsigned int flags; + const char *gpr_compatible; + unsigned int mux_mask; + u8 mux_shift; + int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); + int (*imx_pinconf_get)(struct pinctrl_dev *, unsigned int, long unsigned int *); + int (*imx_pinconf_set)(struct pinctrl_dev *, unsigned int, long unsigned int *, unsigned int); + void (*imx_pinctrl_parse_pin)(struct imx_pinctrl *, unsigned int *, struct imx_pin *, const __be32 **); +}; + +struct imx_pll14xx_clk { + enum imx_pll14xx_type type; + const struct imx_pll14xx_rate_table *rate_table; + int rate_count; + int flags; +}; + +struct imx_pll14xx_rate_table { + unsigned int rate; + unsigned int pdiv; + unsigned int mdiv; + unsigned int sdiv; + unsigned int kdiv; +}; + +struct imx_uart_data; + +struct mctrl_gpios; + +struct imx_port { + struct uart_port port; + struct timer_list timer; + unsigned int old_status; + unsigned int have_rtscts: 1; + unsigned int have_rtsgpio: 1; + unsigned int dte_mode: 1; + unsigned int inverted_tx: 1; + unsigned int inverted_rx: 1; + struct clk *clk_ipg; + struct clk *clk_per; + const struct imx_uart_data *devdata; + struct mctrl_gpios *gpios; + int idle_counter; + unsigned int dma_is_enabled: 1; + unsigned int dma_is_rxing: 1; + unsigned int dma_is_txing: 1; + struct dma_chan *dma_chan_rx; + struct dma_chan *dma_chan_tx; + struct scatterlist rx_sgl; + struct scatterlist tx_sgl[2]; + void *rx_buf; + struct circ_buf rx_ring; + unsigned int rx_buf_size; + unsigned int rx_period_length; + unsigned int rx_periods; + dma_cookie_t rx_cookie; + unsigned int tx_bytes; + unsigned int dma_tx_nents; + unsigned int saved_reg[10]; + bool context_saved; + bool last_putchar_was_newline; + enum imx_tx_state tx_state; + struct hrtimer trigger_start_tx; + struct hrtimer trigger_stop_tx; +}; + +struct imx_port_ucrs { + unsigned int ucr1; + unsigned int ucr2; + unsigned int ucr3; +}; + +struct imx_sc_chan { + struct imx_sc_ipc *sc_ipc; + struct mbox_client cl; + struct mbox_chan *ch; + int idx; + struct completion tx_done; +}; + +struct imx_sc_ipc { + struct imx_sc_chan chans[8]; + struct device *dev; + struct mutex lock; + struct completion done; + bool fast_ipc; + u32 *msg; + u8 rx_size; + u8 count; +}; + +struct imx_sc_rpc_msg { + uint8_t ver; + uint8_t size; + uint8_t svc; + uint8_t func; +}; + +struct req_get_clock_parent { + __le16 resource; + u8 clk; +}; + +struct resp_get_clock_parent { + u8 parent; +}; + +struct imx_sc_msg_get_clock_parent { + struct imx_sc_rpc_msg hdr; + union { + struct req_get_clock_parent req; + struct resp_get_clock_parent resp; + } data; +}; + +struct req_get_clock_rate { + __le16 resource; + u8 clk; +}; + +struct resp_get_clock_rate { + __le32 rate; +}; + +struct imx_sc_msg_get_clock_rate { + struct imx_sc_rpc_msg hdr; + union { + struct req_get_clock_rate req; + struct resp_get_clock_rate resp; + } data; +}; + +struct imx_sc_msg_gpio_set_pad_wakeup { + struct imx_sc_rpc_msg hdr; + u16 pad; + u8 wakeup; +}; + +struct imx_sc_msg_irq_enable { + struct imx_sc_rpc_msg hdr; + u32 mask; + u16 resource; + u8 group; + u8 enable; +}; + +struct imx_sc_msg_irq_get_status { + struct imx_sc_rpc_msg hdr; + union { + struct { + u16 resource; + u8 group; + u8 reserved; + } req; + struct { + u32 status; + } resp; + } data; +}; + +struct imx_sc_msg_misc_get_soc_id { + struct imx_sc_rpc_msg hdr; + union { + struct { + u32 control; + u16 resource; + } __attribute__((packed)) req; + struct { + u32 id; + } resp; + } data; +}; + +struct imx_sc_msg_misc_get_soc_uid { + struct imx_sc_rpc_msg hdr; + u32 uid_low; + u32 uid_high; +}; + +struct imx_sc_msg_req_clock_enable { + struct imx_sc_rpc_msg hdr; + __le16 resource; + u8 clk; + u8 enable; + u8 autog; + int: 0; +}; + +struct imx_sc_msg_req_cpu_start { + struct imx_sc_rpc_msg hdr; + u32 address_hi; + u32 address_lo; + u16 resource; + u8 enable; +}; + +struct req_get_resource_mode { + u16 resource; +}; + +struct resp_get_resource_mode { + u8 mode; +}; + +struct imx_sc_msg_req_get_resource_power_mode { + struct imx_sc_rpc_msg hdr; + union { + struct req_get_resource_mode req; + struct resp_get_resource_mode resp; + } data; + long: 0; +}; + +struct imx_sc_msg_req_misc_get_ctrl { + struct imx_sc_rpc_msg hdr; + u32 ctrl; + u16 resource; +}; + +struct imx_sc_msg_req_misc_set_ctrl { + struct imx_sc_rpc_msg hdr; + u32 ctrl; + u32 val; + u16 resource; +}; + +struct imx_sc_msg_req_pad_get { + struct imx_sc_rpc_msg hdr; + u16 pad; + long: 0; +}; + +struct imx_sc_msg_req_pad_set { + struct imx_sc_rpc_msg hdr; + u32 val; + u16 pad; +}; + +struct imx_sc_msg_req_set_clock_rate { + struct imx_sc_rpc_msg hdr; + __le32 rate; + __le16 resource; + u8 clk; +}; + +struct imx_sc_msg_req_set_resource_power_mode { + struct imx_sc_rpc_msg hdr; + u16 resource; + u8 mode; +}; + +struct imx_sc_msg_resp_misc_get_ctrl { + struct imx_sc_rpc_msg hdr; + u32 val; +}; + +struct imx_sc_msg_resp_pad_get { + struct imx_sc_rpc_msg hdr; + u32 val; +}; + +struct imx_sc_msg_rm_get_resource_owner { + struct imx_sc_rpc_msg hdr; + union { + struct { + u16 resource; + } req; + struct { + u8 val; + } resp; + } data; + long: 0; +}; + +struct imx_sc_msg_rm_rsrc_owned { + struct imx_sc_rpc_msg hdr; + u16 resource; + long: 0; +}; + +struct imx_sc_msg_set_clock_parent { + struct imx_sc_rpc_msg hdr; + __le16 resource; + u8 clk; + u8 parent; +}; + +struct imx_sc_pd_range { + char *name; + u32 rsrc; + u8 num; + bool postfix; + u8 start_from; +}; + +struct imx_sc_pd_soc { + const struct imx_sc_pd_range *pd_ranges; + u8 num_ranges; +}; + +struct imx_sc_pm_domain { + struct generic_pm_domain pd; + char name[20]; + u32 rsrc; +}; + +struct imx_scu_clk_node { + const char *name; + u32 rsrc; + u8 clk_type; + const char * const *parents; + int num_parents; + struct clk_hw *hw; + struct list_head node; +}; + +struct imx_uart_data { + unsigned int uts_reg; + enum imx_uart_type devtype; +}; + +struct imx_weim_devtype { + unsigned int cs_count; + unsigned int cs_regs_count; + unsigned int cs_stride; + unsigned int wcr_offset; + unsigned int wcr_bcm; + unsigned int wcr_cont_bclk; +}; + +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 in6_ifreq { + struct in6_addr ifr6_addr; + __u32 ifr6_prefixlen; + int ifr6_ifindex; +}; + +struct in6_pktinfo { + struct in6_addr ipi6_addr; + int ipi6_ifindex; +}; + +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; + long unsigned int rtmsg_info; + __u32 rtmsg_flags; + int rtmsg_ifindex; +}; + +struct in6_validator_info { + struct in6_addr i6vi_addr; + struct inet6_dev *i6vi_dev; + struct netlink_ext_ack *extack; +}; + +struct ipv4_devconf { + void *sysctl; + int data[33]; + long unsigned int state[1]; +}; + +struct in_ifaddr; + +struct neigh_parms; + +struct in_device { + struct net_device *dev; + netdevice_tracker dev_tracker; + refcount_t refcnt; + int dead; + struct in_ifaddr *ifa_list; + struct ip_mc_list *mc_list; + struct ip_mc_list **mc_hash; + int mc_count; + spinlock_t mc_tomb_lock; + struct ip_mc_list *mc_tomb; + long unsigned int mr_v1_seen; + long unsigned int mr_v2_seen; + long unsigned int mr_maxdelay; + long unsigned int mr_qi; + long unsigned int mr_qri; + unsigned char mr_qrv; + unsigned char mr_gq_running; + u32 mr_ifc_count; + struct timer_list mr_gq_timer; + struct timer_list mr_ifc_timer; + struct neigh_parms *arp_parms; + struct ipv4_devconf cnf; + struct callback_head callback_head; +}; + +struct in_ifaddr { + struct hlist_node addr_lst; + struct in_ifaddr *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; + long unsigned int ifa_cstamp; + long unsigned int ifa_tstamp; +}; + +struct in_pktinfo { + int ipi_ifindex; + struct in_addr ipi_spec_dst; + struct in_addr ipi_addr; +}; + +struct in_validator_info { + __be32 ivi_addr; + struct in_device *ivi_dev; + struct netlink_ext_ack *extack; +}; + +struct indication { + u32 bit; + const char *name; +}; + +struct ipv6_txoptions; + +struct inet6_cork { + struct ipv6_txoptions *opt; + u8 hop_limit; + u8 tclass; + u8 dontfrag: 1; +}; + +struct ipv6_stable_secret { + bool initialized; + struct in6_addr secret; +}; + +struct ipv6_devconf { + __u8 __cacheline_group_begin__ipv6_devconf_read_txrx[0]; + __s32 disable_ipv6; + __s32 hop_limit; + __s32 mtu6; + __s32 forwarding; + __s32 disable_policy; + __s32 proxy_ndp; + __u8 __cacheline_group_end__ipv6_devconf_read_txrx[0]; + __s32 accept_ra; + __s32 accept_redirects; + __s32 autoconf; + __s32 dad_transmits; + __s32 rtr_solicits; + __s32 rtr_solicit_interval; + __s32 rtr_solicit_max_interval; + __s32 rtr_solicit_delay; + __s32 force_mld_version; + __s32 mldv1_unsolicited_report_interval; + __s32 mldv2_unsolicited_report_interval; + __s32 use_tempaddr; + __s32 temp_valid_lft; + __s32 temp_prefered_lft; + __s32 regen_min_advance; + __s32 regen_max_retry; + __s32 max_desync_factor; + __s32 max_addresses; + __s32 accept_ra_defrtr; + __u32 ra_defrtr_metric; + __s32 accept_ra_min_hop_limit; + __s32 accept_ra_min_lft; + __s32 accept_ra_pinfo; + __s32 ignore_routes_with_linkdown; + __s32 accept_ra_rtr_pref; + __s32 rtr_probe_interval; + __s32 accept_ra_rt_info_min_plen; + __s32 accept_ra_rt_info_max_plen; + __s32 accept_source_route; + __s32 accept_ra_from_local; + atomic_t mc_forwarding; + __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; + __s32 seg6_require_hmac; + __u32 enhanced_dad; + __u32 addr_gen_mode; + __s32 ndisc_tclass; + __s32 rpl_seg_enabled; + __u32 ioam6_id; + __u32 ioam6_id_wide; + __u8 ioam6_enabled; + __u8 ndisc_evict_nocarrier; + __u8 ra_honor_pio_life; + __u8 ra_honor_pio_pflag; + struct ctl_table_header *sysctl_header; +}; + +struct ipstats_mib; + +struct ipv6_devstat { + struct proc_dir_entry *proc_dir_entry; + struct ipstats_mib *ipv6; + struct icmpv6_mib_device *icmpv6dev; + struct icmpv6msg_mib_device *icmpv6msgdev; +}; + +struct inet6_dev { + struct net_device *dev; + netdevice_tracker dev_tracker; + struct list_head addr_list; + struct ifmcaddr6 *mc_list; + struct ifmcaddr6 *mc_tomb; + unsigned char mc_qrv; + unsigned char mc_gq_running; + unsigned char mc_ifc_count; + unsigned char mc_dad_count; + long unsigned int mc_v1_seen; + long unsigned int mc_qi; + long unsigned int mc_qri; + long unsigned int 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; + long unsigned int tstamp; + struct callback_head rcu; + unsigned int ra_mtu; +}; + +struct inet6_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; + enum addr_type_t type; + bool force_rt_scope_universe; +}; + +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; + long unsigned int cstamp; + long unsigned int 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 inet6_skb_parm; + +struct inet6_protocol { + int (*handler)(struct sk_buff *); + int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32); + unsigned int flags; + u32 secret; +}; + +struct inet6_skb_parm { + int iif; + __be16 ra; + __u16 dst0; + __u16 srcrt; + __u16 dst1; + __u16 lastopt; + __u16 nhoff; + __u16 flags; + __u16 dsthao; + __u16 frag_max_size; + __u16 srhoff; +}; + +union inet_addr { + __u32 all[4]; + __be32 ip; + __be32 ip6[4]; + struct in_addr in; + struct in6_addr in6; +}; + +struct inet_bind2_bucket { + possible_net_t ib_net; + int l3mdev; + short unsigned int port; + short unsigned int addr_type; + struct in6_addr v6_rcv_saddr; + struct hlist_node node; + struct hlist_node bhash_node; + struct hlist_head owners; +}; + +struct inet_bind_bucket { + possible_net_t ib_net; + int l3mdev; + short unsigned int port; + signed char fastreuse; + signed char fastreuseport; + kuid_t fastuid; + struct in6_addr fast_v6_rcv_saddr; + __be32 fast_rcv_saddr; + short unsigned int fast_sk_family; + bool fast_ipv6_only; + struct hlist_node node; + struct hlist_head bhash2; +}; + +struct inet_bind_hashbucket { + spinlock_t lock; + struct hlist_head chain; +}; + +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; + u32 priority; + __u16 gso_size; + u32 ts_opt_id; + 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; + long unsigned int inet_flags; + __be32 inet_saddr; + __s16 uc_ttl; + __be16 inet_sport; + struct ip_options_rcu *inet_opt; + atomic_t inet_id; + __u8 tos; + __u8 min_ttl; + __u8 mc_ttl; + __u8 pmtudisc; + __u8 rcv_tos; + __u8 convert_csum; + int uc_index; + int mc_index; + __be32 mc_addr; + u32 local_port_range; + struct ip_mc_socklist *mc_list; + struct inet_cork_full cork; +}; + +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; + long unsigned int 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 *icsk_ulp_data; + void (*icsk_clean_acked)(struct sock *, u32); + unsigned int (*icsk_sync_mss)(struct sock *, u32); + __u8 icsk_ca_state: 5; + __u8 icsk_ca_initialized: 1; + __u8 icsk_ca_setsockopt: 1; + __u8 icsk_ca_dst_locked: 1; + __u8 icsk_retransmits; + __u8 icsk_pending; + __u8 icsk_backoff; + __u8 icsk_syn_retries; + __u8 icsk_probes_out; + __u16 icsk_ext_hdr_len; + struct { + __u8 pending; + __u8 quick; + __u8 pingpong; + __u8 retry; + __u32 ato: 8; + __u32 lrcv_flowlabel: 20; + __u32 unused: 4; + long unsigned int 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 sockaddr_len; + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char *, int *); + void (*addr2sockaddr)(struct sock *, struct sockaddr *); + void (*mtu_reduced)(struct sock *); +}; + +struct inet_ehash_bucket { + struct hlist_nulls_head chain; +}; + +struct inet_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; +}; + +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 inet_listen_hashbucket; + +struct inet_hashinfo { + struct inet_ehash_bucket *ehash; + spinlock_t *ehash_locks; + unsigned int ehash_mask; + unsigned int ehash_locks_mask; + struct kmem_cache *bind_bucket_cachep; + struct inet_bind_hashbucket *bhash; + struct kmem_cache *bind2_bucket_cachep; + struct inet_bind_hashbucket *bhash2; + unsigned int bhash_size; + unsigned int lhash2_mask; + struct inet_listen_hashbucket *lhash2; + bool pernet; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct inet_listen_hashbucket { + spinlock_t lock; + struct hlist_nulls_head nulls_head; +}; + +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; + long unsigned int rate_last; + union { + struct { + atomic_t rid; + }; + struct callback_head rcu; + }; + __u32 dtime; + refcount_t refcnt; +}; + +struct proto_ops; + +struct inet_protosw { + struct list_head list; + short unsigned int type; + short unsigned int protocol; + struct proto *prot; + const struct proto_ops *ops; + unsigned char flags; +}; + +struct request_sock_ops; + +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 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 *ireq_opt; + struct { + struct ipv6_txoptions *ipv6_opt; + struct sk_buff *pktopts; + }; + }; +}; + +struct inet_skb_parm { + int iif; + struct ip_options opt; + u16 flags; + u16 frag_max_size; +}; + +struct inet_timewait_death_row { + refcount_t tw_refcount; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct inet_hashinfo *hashinfo; + int sysctl_max_tw_buckets; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct inet_timewait_sock { + struct sock_common __tw_common; + __u32 tw_mark; + unsigned char tw_substate; + unsigned char tw_rcv_wscale; + __be16 tw_sport; + unsigned int tw_transparent: 1; + unsigned int tw_flowlabel: 20; + unsigned int tw_usec_ts: 1; + unsigned int tw_pad: 2; + unsigned int tw_tos: 8; + u32 tw_txhash; + u32 tw_priority; + u32 tw_entry_stamp; + struct timer_list tw_timer; + struct inet_bind_bucket *tw_tb; + struct inet_bind2_bucket *tw_tb2; +}; + +struct inflate_state { + inflate_mode mode; + int last; + int wrap; + int havedict; + int flags; + unsigned int dmax; + long unsigned int check; + long unsigned int total; + unsigned int wbits; + unsigned int wsize; + unsigned int whave; + unsigned int write; + unsigned char *window; + long unsigned int 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; + short unsigned int lens[320]; + short unsigned int work[288]; + code codes[2048]; +}; + +struct inflate_workspace { + struct inflate_state inflate_state; + unsigned char working_window[32768]; +}; + +struct initvalues { + __u8 addr; + __u8 value; +}; + +struct mnt_idmap; + +struct kstat; + +struct offset_ctx; + +struct inode_operations { + struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int); + const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *); + int (*permission)(struct mnt_idmap *, struct inode *, int); + struct posix_acl * (*get_inode_acl)(struct inode *, int, bool); + int (*readlink)(struct dentry *, char *, int); + int (*create)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, bool); + int (*link)(struct dentry *, struct inode *, struct dentry *); + int (*unlink)(struct inode *, struct dentry *); + int (*symlink)(struct mnt_idmap *, struct inode *, struct dentry *, const char *); + int (*mkdir)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t); + int (*rmdir)(struct inode *, struct dentry *); + int (*mknod)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, dev_t); + int (*rename)(struct mnt_idmap *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int); + int (*setattr)(struct mnt_idmap *, struct dentry *, struct iattr *); + int (*getattr)(struct mnt_idmap *, const struct path *, struct kstat *, u32, unsigned int); + ssize_t (*listxattr)(struct dentry *, char *, size_t); + int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64); + int (*update_time)(struct inode *, int); + int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t); + int (*tmpfile)(struct mnt_idmap *, struct inode *, struct file *, umode_t); + struct posix_acl * (*get_acl)(struct mnt_idmap *, struct dentry *, int); + int (*set_acl)(struct mnt_idmap *, struct dentry *, struct posix_acl *, int); + int (*fileattr_set)(struct mnt_idmap *, struct dentry *, struct fileattr *); + int (*fileattr_get)(struct dentry *, struct fileattr *); + struct offset_ctx * (*get_offset_ctx)(struct inode *); + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +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 inode_smack { + struct smack_known *smk_inode; + struct smack_known *smk_task; + struct smack_known *smk_mmap; + int smk_flags; +}; + +struct inode_switch_wbs_context { + struct rcu_work work; + struct bdi_writeback *new_wb; + struct inode *inodes[0]; +}; + +struct inodes_stat_t { + long int nr_inodes; + long int nr_unused; + long int dummy[5]; +}; + +struct inotify_event { + __s32 wd; + __u32 mask; + __u32 cookie; + __u32 len; + char name[0]; +}; + +struct inotify_event_info { + struct fsnotify_event fse; + u32 mask; + int wd; + u32 sync_cookie; + int name_len; + char name[0]; +}; + +struct inotify_inode_mark { + struct fsnotify_mark fsn_mark; + int wd; +}; + +struct input_absinfo { + __s32 value; + __s32 minimum; + __s32 maximum; + __s32 fuzz; + __s32 flat; + __s32 resolution; +}; + +struct input_id { + __u16 bustype; + __u16 vendor; + __u16 product; + __u16 version; +}; + +struct input_dev_poller; + +struct input_mt; + +struct input_dev { + const char *name; + const char *phys; + const char *uniq; + struct input_id id; + long unsigned int propbit[1]; + long unsigned int evbit[1]; + long unsigned int keybit[12]; + long unsigned int relbit[1]; + long unsigned int absbit[1]; + long unsigned int mscbit[1]; + long unsigned int ledbit[1]; + long unsigned int sndbit[1]; + long unsigned int ffbit[2]; + long unsigned int 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; + long unsigned int key[12]; + long unsigned int led[1]; + long unsigned int snd[1]; + long unsigned int 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 *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_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 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 input_devres { + struct input_dev *input; +}; + +struct input_event_compat { + compat_ulong_t sec; + compat_ulong_t usec; + __u16 type; + __u16 code; + __s32 value; +}; + +struct input_handler { + void *private; + void (*event)(struct input_handle *, unsigned int, unsigned int, int); + unsigned int (*events)(struct input_handle *, 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 passive_observer; + 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_mask { + __u32 type; + __u32 codes_size; + __u64 codes_ptr; +}; + +struct input_mt_slot { + int abs[14]; + unsigned int frame; + unsigned int key; +}; + +struct input_mt { + int trkid; + int num_slots; + int slot; + unsigned int flags; + unsigned int frame; + int *red; + struct input_mt_slot slots[0]; +}; + +struct input_mt_pos { + s16 x; + s16 y; +}; + +struct input_seq_state { + short unsigned int pos; + bool mutex_acquired; + int input_devices_state; +}; + +struct input_value { + __u16 type; + __u16 code; + __s32 value; +}; + +struct insn_emulation { + const char *name; + enum legacy_insn_status status; + bool (*try_emulate)(struct pt_regs *, u32); + int (*set_hw_mode)(bool); + int current_mode; + int min; + int max; + struct ctl_table sysctl; +}; + +struct instance_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_device_instance *, char *); + ssize_t (*store)(struct edac_device_instance *, const char *, size_t); +}; + +struct instance_attribute___2 { + struct attribute attr; + ssize_t (*show)(struct edac_pci_ctl_info *, char *); + ssize_t (*store)(struct edac_pci_ctl_info *, const char *, size_t); +}; + +struct internal_container { + struct klist_node node; + struct attribute_container *cont; + struct device classdev; +}; + +struct internal_state { + int dummy; +}; + +struct interval { + uint32_t first; + uint32_t last; +}; + +struct interval_tree_span_iter { + struct interval_tree_node *nodes[2]; + long unsigned int first_index; + long unsigned int last_index; + union { + long unsigned int start_hole; + long unsigned int start_used; + }; + union { + long unsigned int last_hole; + long unsigned int last_used; + }; + int is_hole; +}; + +struct intmux_irqchip_data { + u32 saved_reg; + int chanidx; + int irq; + struct irq_domain *domain; +}; + +struct intmux_data { + raw_spinlock_t lock; + void *regs; + struct clk *ipg_clk; + int channum; + struct intmux_irqchip_data irqchip_data[0]; +}; + +struct invalid_value_data { + struct source_location location; + struct type_descriptor *type; +}; + +struct io { + long unsigned int error_bits; + atomic_t count; + struct dm_io_client *client; + io_notify_fn callback; + void *context; + void *vma_invalidate_address; + long unsigned int vma_invalidate_size; + long: 64; +}; + +struct io_accept { + struct file *file; + struct sockaddr *addr; + int *addr_len; + int flags; + int iou_flags; + u32 file_slot; + long unsigned int nofile; +}; + +struct io_alloc_cache { + void **entries; + unsigned int nr_cached; + unsigned int max_cached; + unsigned int elem_size; + unsigned int init_clear; +}; + +struct ubuf_info; + +struct msghdr { + void *msg_name; + int msg_namelen; + int msg_inq; + struct iov_iter msg_iter; + union { + void *msg_control; + void *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 sk_buff *, struct iov_iter *, size_t); +}; + +struct io_async_msghdr { + struct iovec *free_iov; + int free_iov_nr; + union { + struct { + int namelen; + struct iovec fast_iov; + __kernel_size_t controllen; + __kernel_size_t payloadlen; + struct sockaddr *uaddr; + struct msghdr msg; + struct __kernel_sockaddr_storage addr; + }; + struct { + int namelen; + struct iovec fast_iov; + __kernel_size_t controllen; + __kernel_size_t payloadlen; + struct sockaddr *uaddr; + struct msghdr msg; + struct __kernel_sockaddr_storage addr; + } clear; + }; +}; + +struct iov_iter_state { + size_t iov_offset; + size_t count; + long unsigned int nr_segs; +}; + +struct wait_page_queue { + struct folio *folio; + int bit_nr; + wait_queue_entry_t wait; +}; + +struct uio_meta { + uio_meta_flags_t flags; + u16 app_tag; + u64 seed; + struct iov_iter iter; +}; + +struct io_meta_state { + u32 seed; + struct iov_iter_state iter_meta; +}; + +struct io_async_rw { + size_t bytes_done; + struct iovec *free_iovec; + union { + struct { + struct iov_iter iter; + struct iov_iter_state iter_state; + struct iovec fast_iov; + int free_iov_nr; + union { + struct wait_page_queue wpq; + struct { + struct uio_meta meta; + struct io_meta_state meta_state; + }; + }; + }; + struct { + struct iov_iter iter; + struct iov_iter_state iter_state; + struct iovec fast_iov; + int free_iov_nr; + union { + struct wait_page_queue wpq; + struct { + struct uio_meta meta; + struct io_meta_state meta_state; + }; + }; + } clear; + }; +}; + +struct io_bind { + struct file *file; + int addr_len; +}; + +struct io_buffer { + struct list_head list; + __u64 addr; + __u32 len; + __u16 bid; + __u16 bgid; +}; + +struct io_mapped_region { + struct page **pages; + void *ptr; + unsigned int nr_pages; + unsigned int flags; +}; + +struct io_uring_buf_ring; + +struct io_buffer_list { + union { + struct list_head buf_list; + struct io_uring_buf_ring *buf_ring; + }; + __u16 bgid; + __u16 buf_nr_pages; + __u16 nr_entries; + __u16 head; + __u16 mask; + __u16 flags; + struct io_mapped_region region; +}; + +struct io_cancel { + struct file *file; + u64 addr; + u32 flags; + s32 fd; + u8 opcode; +}; + +struct io_ring_ctx; + +struct io_cancel_data { + struct io_ring_ctx *ctx; + union { + u64 data; + struct file *file; + }; + u8 opcode; + u32 flags; + int seq; +}; + +struct io_wq_work; + +typedef bool work_cancel_fn(struct io_wq_work *, void *); + +struct io_cb_cancel_data { + work_cancel_fn *fn; + void *data; + int nr_running; + int nr_pending; + bool cancel_all; +}; + +struct io_close { + struct file *file; + int fd; + u32 file_slot; +}; + +struct io_cmd_data { + struct file *file; + __u8 data[56]; +}; + +struct io_kiocb; + +struct io_cold_def { + const char *name; + void (*cleanup)(struct io_kiocb *); + void (*fail)(struct io_kiocb *); +}; + +struct io_comp_batch { + struct rq_list req_list; + bool need_ts; + void (*complete)(struct io_comp_batch *); +}; + +struct io_connect { + struct file *file; + struct sockaddr *addr; + int addr_len; + bool in_progress; + bool seen_econnaborted; +}; + +struct io_context { + atomic_long_t refcount; + atomic_t active_ref; + short unsigned int ioprio; + spinlock_t lock; + struct xarray icq_tree; + struct io_cq *icq_hint; + struct hlist_head icq_list; + struct work_struct release_work; +}; + +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; +}; + +struct io_cqe { + __u64 user_data; + __s32 res; + union { + __u32 flags; + int fd; + }; +}; + +struct io_cqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 overflow; + __u32 cqes; + __u32 flags; + __u32 resv1; + __u64 user_addr; +}; + +struct io_defer_entry { + struct list_head list; + struct io_kiocb *req; + u32 seq; +}; + +struct io_epoll { + struct file *file; + int epfd; + int op; + int fd; + struct epoll_event event; +}; + +struct io_err_c { + struct dm_dev *dev; + sector_t start; +}; + +struct io_ev_fd { + struct eventfd_ctx *cq_ev_fd; + unsigned int eventfd_async; + unsigned int last_cq_tail; + refcount_t refs; + atomic_t ops; + struct callback_head rcu; +}; + +struct io_fadvise { + struct file *file; + u64 offset; + u64 len; + u32 advice; +}; + +struct io_rsrc_node; + +struct io_rsrc_data { + unsigned int nr; + struct io_rsrc_node **nodes; +}; + +struct io_file_table { + struct io_rsrc_data data; + long unsigned int *bitmap; + unsigned int alloc_hint; +}; + +struct io_fixed_install { + struct file *file; + unsigned int o_flags; +}; + +struct io_ftrunc { + struct file *file; + loff_t len; +}; + +struct io_futex { + struct file *file; + union { + u32 *uaddr; + struct futex_waitv *uwaitv; + }; + long unsigned int futex_val; + long unsigned int futex_mask; + long unsigned int futexv_owned; + u32 futex_flags; + unsigned int futex_nr; + bool futexv_unqueued; +}; + +struct io_futex_data { + struct futex_q q; + struct io_kiocb *req; +}; + +struct io_hash_bucket { + struct hlist_head list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct io_hash_table { + struct io_hash_bucket *hbs; + unsigned int hash_bits; +}; + +struct io_imu_folio_data { + unsigned int nr_pages_head; + unsigned int nr_pages_mid; + unsigned int folio_shift; + unsigned int nr_folios; +}; + +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 audit_skip: 1; + unsigned int ioprio: 1; + unsigned int iopoll: 1; + unsigned int iopoll_queue: 1; + unsigned int vectored: 1; + short unsigned int async_size; + int (*issue)(struct io_kiocb *, unsigned int); + int (*prep)(struct io_kiocb *, const struct io_uring_sqe *); +}; + +struct io_wq_work_node { + struct io_wq_work_node *next; +}; + +struct io_tw_state; + +typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *); + +struct io_task_work { + struct llist_node node; + io_req_tw_func_t func; +}; + +struct io_wq_work { + struct io_wq_work_node list; + atomic_t flags; + int cancel_seq; +}; + +struct io_uring_task; + +struct io_kiocb { + union { + struct file *file; + struct io_cmd_data cmd; + }; + u8 opcode; + u8 iopoll_completed; + u16 buf_index; + unsigned int nr_tw; + io_req_flags_t flags; + struct io_cqe cqe; + struct io_ring_ctx *ctx; + struct io_uring_task *tctx; + union { + struct io_buffer *kbuf; + struct io_buffer_list *buf_list; + struct io_rsrc_node *buf_node; + }; + union { + struct io_wq_work_node comp_list; + __poll_t apoll_events; + }; + struct io_rsrc_node *file_node; + atomic_t refs; + bool cancel_seq_set; + struct io_task_work io_task_work; + union { + struct hlist_node hash_node; + u64 iopoll_start; + }; + struct async_poll *apoll; + void *async_data; + atomic_t poll_refs; + struct io_kiocb *link; + const struct cred *creds; + struct io_wq_work work; + struct { + u64 extra1; + u64 extra2; + } big_cqe; +}; + +struct io_link { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct io_listen { + struct file *file; + int backlog; +}; + +struct io_madvise { + struct file *file; + u64 addr; + u64 len; + u32 advice; +}; + +struct io_mapped_ubuf { + u64 ubuf; + unsigned int len; + unsigned int nr_bvecs; + unsigned int folio_shift; + refcount_t refs; + long unsigned int acct_pages; + struct bio_vec bvec[0]; +}; + +struct io_mkdir { + struct file *file; + int dfd; + umode_t mode; + struct filename *filename; +}; + +struct io_msg { + struct file *file; + struct file *src_file; + struct callback_head tw; + u64 user_data; + u32 len; + u32 cmd; + u32 src_fd; + union { + u32 dst_fd; + u32 cqe_flags; + }; + u32 flags; +}; + +struct io_napi_entry { + unsigned int napi_id; + struct list_head list; + long unsigned int timeout; + struct hlist_node node; + struct callback_head rcu; +}; + +struct io_nop { + struct file *file; + int result; + int fd; + int buffer; + unsigned int flags; +}; + +struct ubuf_info_ops; + +struct ubuf_info { + const struct ubuf_info_ops *ops; + refcount_t refcnt; + u8 flags; +}; + +struct io_notif_data { + struct file *file; + struct ubuf_info uarg; + struct io_notif_data *next; + struct io_notif_data *head; + unsigned int account_pages; + bool zc_report; + bool zc_used; + bool zc_copied; +}; + +struct io_open { + struct file *file; + int dfd; + u32 file_slot; + struct filename *filename; + struct open_how how; + long unsigned int nofile; +}; + +struct io_uring_cqe { + __u64 user_data; + __s32 res; + __u32 flags; + __u64 big_cqe[0]; +}; + +struct io_overflow_cqe { + struct list_head list; + struct io_uring_cqe cqe; +}; + +struct io_pagetable { + struct rw_semaphore domains_rwsem; + struct xarray domains; + struct xarray access_list; + unsigned int next_domain_id; + struct rw_semaphore iova_rwsem; + struct rb_root_cached area_itree; + struct rb_root_cached allowed_itree; + struct rb_root_cached reserved_itree; + u8 disable_large_pages; + long unsigned int iova_alignment; +}; + +struct io_pgtable_init_fns { + struct io_pgtable * (*alloc)(struct io_pgtable_cfg *, void *); + void (*free)(struct io_pgtable *); + u32 caps; +}; + +struct io_pgtable_walk_data { + struct io_pgtable *iop; + void *data; + int (*visit)(struct io_pgtable_walk_data *, int, arm_lpae_iopte *, size_t); + long unsigned int flags; + u64 addr; + const u64 end; +}; + +struct io_poll_table { + struct poll_table_struct pt; + struct io_kiocb *req; + int nr_entries; + int error; + bool owning; + __poll_t result_mask; +}; + +struct io_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_provide_buf { + struct file *file; + __u64 addr; + __u32 len; + __u32 bgid; + __u32 nbufs; + __u16 bid; +}; + +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_rename { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct io_restriction { + long unsigned int register_op[1]; + long unsigned int sqe_op[1]; + u8 sqe_flags_allowed; + u8 sqe_flags_required; + bool registered; +}; + +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_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; + bool cq_flush; + short unsigned int submit_nr; + struct blk_plug plug; +}; + +struct io_rings; + +struct io_sq_data; + +struct io_wq_hash; + +struct io_ring_ctx { + struct { + unsigned int flags; + unsigned int drain_next: 1; + unsigned int restricted: 1; + unsigned int off_timeout_used: 1; + unsigned int drain_active: 1; + unsigned int has_evfd: 1; + unsigned int task_complete: 1; + unsigned int lockless_cq: 1; + unsigned int syscall_iopoll: 1; + unsigned int poll_activated: 1; + unsigned int drain_disabled: 1; + unsigned int compat: 1; + unsigned int iowq_limits_set: 1; + struct task_struct *submitter_task; + struct io_rings *rings; + struct percpu_ref refs; + clockid_t clockid; + enum tk_offsets clock_offset; + enum task_work_notify_mode notify_method; + unsigned int sq_thread_idle; + 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; + atomic_t cancel_seq; + bool poll_multi_queue; + struct io_wq_work_list iopoll_list; + struct io_file_table file_table; + struct io_rsrc_data buf_table; + struct io_submit_state submit_state; + struct xarray io_bl_xa; + struct io_hash_table cancel_table; + struct io_alloc_cache apoll_cache; + struct io_alloc_cache netmsg_cache; + struct io_alloc_cache rw_cache; + struct io_alloc_cache uring_cache; + struct hlist_head cancelable_uring_cmd; + u64 hybrid_poll_time; + }; + 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 *io_ev_fd; + unsigned int cq_extra; + void *cq_wait_arg; + size_t cq_wait_size; + long: 64; + }; + struct { + struct llist_head work_llist; + struct llist_head retry_llist; + long unsigned int check_cq; + atomic_t cq_wait_nr; + atomic_t cq_timeouts; + struct wait_queue_head cq_wait; + long: 64; + }; + struct { + raw_spinlock_t timeout_lock; + struct list_head timeout_list; + struct list_head ltimeout_list; + unsigned int cq_last_tm_flush; + long: 64; + long: 64; + }; + spinlock_t completion_lock; + struct list_head io_buffers_comp; + struct list_head cq_overflow_list; + struct hlist_head waitid_list; + struct hlist_head futex_list; + struct io_alloc_cache futex_cache; + const struct cred *sq_creds; + struct io_sq_data *sq_data; + struct wait_queue_head sqo_sq_wait; + struct list_head sqd_list; + unsigned int file_alloc_start; + unsigned int file_alloc_end; + struct list_head io_buffers_cache; + struct wait_queue_head poll_wq; + struct io_restriction restrictions; + u32 pers_next; + struct xarray personalities; + struct io_wq_hash *hash_map; + struct user_struct *user; + struct mm_struct *mm_account; + struct llist_head fallback_llist; + struct delayed_work fallback_work; + struct work_struct exit_work; + struct list_head tctx_list; + struct completion ref_comp; + u32 iowq_limits[2]; + struct callback_head poll_wq_task_work; + struct list_head defer_list; + struct io_alloc_cache msg_cache; + spinlock_t msg_lock; + struct list_head napi_list; + spinlock_t napi_lock; + ktime_t napi_busy_poll_dt; + bool napi_prefer_busy_poll; + u8 napi_track_mode; + struct hlist_head napi_ht[16]; + unsigned int evfd_last_cq_tail; + struct mutex mmap_lock; + struct io_mapped_region sq_region; + struct io_mapped_region ring_region; + struct io_mapped_region param_region; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct io_ring_ctx_rings { + struct io_rings *rings; + struct io_uring_sqe *sq_sqes; + struct io_mapped_region sq_region; + struct io_mapped_region ring_region; +}; + +struct io_uring { + u32 head; + u32 tail; +}; + +struct io_rings { + struct io_uring sq; + struct io_uring cq; + u32 sq_ring_mask; + u32 cq_ring_mask; + u32 sq_ring_entries; + u32 cq_ring_entries; + u32 sq_dropped; + atomic_t sq_flags; + u32 cq_flags; + u32 cq_overflow; + long: 64; + long: 64; + struct io_uring_cqe cqes[0]; +}; + +struct io_rsrc_node { + unsigned char type; + int refs; + u64 tag; + union { + long unsigned int file_ptr; + struct io_mapped_ubuf *buf; + }; +}; + +struct io_rsrc_update { + struct file *file; + u64 arg; + u32 nr_args; + u32 offset; +}; + +struct io_rw { + struct kiocb kiocb; + u64 addr; + u32 len; + rwf_t flags; +}; + +struct io_shutdown { + struct file *file; + int how; +}; + +struct io_socket { + struct file *file; + int domain; + int type; + int protocol; + int flags; + u32 file_slot; + long unsigned int nofile; +}; + +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 io_rsrc_node *rsrc_node; +}; + +struct io_sq_data { + refcount_t refs; + atomic_t park_pending; + struct mutex lock; + struct list_head ctx_list; + struct task_struct *thread; + struct wait_queue_head wait; + unsigned int sq_thread_idle; + int sq_cpu; + pid_t task_pid; + pid_t task_tgid; + u64 work_time; + long unsigned int state; + struct completion exited; +}; + +struct io_sqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 flags; + __u32 dropped; + __u32 array; + __u32 resv1; + __u64 user_addr; +}; + +struct user_msghdr; + +struct io_sr_msg { + struct file *file; + union { + struct compat_msghdr *umsg_compat; + struct user_msghdr *umsg; + void *buf; + }; + int len; + unsigned int done_io; + unsigned int msg_flags; + unsigned int nr_multishot_loops; + u16 flags; + u16 buf_group; + u16 buf_index; + bool retry; + bool imported; + void *msg_control; + struct io_kiocb *notif; +}; + +struct statx; + +struct io_statx { + struct file *file; + int dfd; + unsigned int mask; + unsigned int flags; + struct filename *filename; + struct statx *buffer; +}; + +struct io_sync { + struct file *file; + loff_t len; + loff_t off; + int flags; + int mode; +}; + +struct io_task_cancel { + struct io_uring_task *tctx; + bool all; +}; + +struct io_tctx_exit { + struct callback_head task_work; + struct completion completion; + struct io_ring_ctx *ctx; +}; + +struct io_tctx_node { + struct list_head ctx_node; + struct task_struct *task; + struct io_ring_ctx *ctx; +}; + +struct io_timeout { + struct file *file; + u32 off; + u32 target_seq; + u32 repeats; + struct list_head list; + struct io_kiocb *head; + struct io_kiocb *prev; +}; + +struct io_timeout_data { + struct io_kiocb *req; + struct hrtimer timer; + struct timespec64 ts; + enum hrtimer_mode mode; + u32 flags; +}; + +struct io_timeout_rem { + struct file *file; + u64 addr; + struct timespec64 ts; + u32 flags; + bool ltimeout; +}; + +struct io_tlb_area { + long unsigned int used; + unsigned int index; + spinlock_t lock; +}; + +struct io_tlb_slot; + +struct io_tlb_pool { + phys_addr_t start; + phys_addr_t end; + void *vaddr; + long unsigned int nslabs; + bool late_alloc; + unsigned int nareas; + unsigned int area_nslabs; + struct io_tlb_area *areas; + struct io_tlb_slot *slots; + struct list_head node; + struct callback_head rcu; + bool transient; +}; + +struct io_tlb_mem { + struct io_tlb_pool defpool; + long unsigned int nslabs; + struct dentry *debugfs; + bool force_bounce; + bool for_alloc; + bool can_grow; + u64 phys_limit; + spinlock_t lock; + struct list_head pools; + struct work_struct dyn_alloc; + atomic_long_t total_used; + atomic_long_t used_hiwater; + atomic_long_t transient_nslabs; +}; + +struct io_tlb_slot { + phys_addr_t orig_addr; + size_t alloc_size; + short unsigned int list; + short unsigned int pad_slots; +}; + +struct io_tw_state {}; + +struct io_unlink { + struct file *file; + int dfd; + int flags; + struct filename *filename; +}; + +struct io_uring_attr_pi { + __u16 flags; + __u16 app_tag; + __u32 len; + __u64 addr; + __u64 seed; + __u64 rsvd; +}; + +struct io_uring_buf { + __u64 addr; + __u32 len; + __u16 bid; + __u16 resv; +}; + +struct io_uring_buf_reg { + __u64 ring_addr; + __u32 ring_entries; + __u16 bgid; + __u16 flags; + __u64 resv[3]; +}; + +struct io_uring_buf_ring { + union { + struct { + __u64 resv1; + __u32 resv2; + __u16 resv3; + __u16 tail; + }; + struct { + struct {} __empty_bufs; + struct io_uring_buf bufs[0]; + }; + }; +}; + +struct io_uring_buf_status { + __u32 buf_group; + __u32 head; + __u32 resv[8]; +}; + +struct io_uring_clock_register { + __u32 clockid; + __u32 __resv[3]; +}; + +struct io_uring_clone_buffers { + __u32 src_fd; + __u32 flags; + __u32 src_off; + __u32 dst_off; + __u32 nr; + __u32 pad[3]; +}; + +struct io_uring_cmd { + struct file *file; + const struct io_uring_sqe *sqe; + void (*task_work_cb)(struct io_uring_cmd *, unsigned int); + u32 cmd_op; + u32 flags; + u8 pdu[32]; +}; + +struct io_uring_sqe { + __u8 opcode; + __u8 flags; + __u16 ioprio; + __s32 fd; + union { + __u64 off; + __u64 addr2; + struct { + __u32 cmd_op; + __u32 __pad1; + }; + }; + union { + __u64 addr; + __u64 splice_off_in; + struct { + __u32 level; + __u32 optname; + }; + }; + __u32 len; + union { + __kernel_rwf_t rw_flags; + __u32 fsync_flags; + __u16 poll_events; + __u32 poll32_events; + __u32 sync_range_flags; + __u32 msg_flags; + __u32 timeout_flags; + __u32 accept_flags; + __u32 cancel_flags; + __u32 open_flags; + __u32 statx_flags; + __u32 fadvise_advice; + __u32 splice_flags; + __u32 rename_flags; + __u32 unlink_flags; + __u32 hardlink_flags; + __u32 xattr_flags; + __u32 msg_ring_flags; + __u32 uring_cmd_flags; + __u32 waitid_flags; + __u32 futex_flags; + __u32 install_fd_flags; + __u32 nop_flags; + }; + __u64 user_data; + union { + __u16 buf_index; + __u16 buf_group; + }; + __u16 personality; + union { + __s32 splice_fd_in; + __u32 file_index; + __u32 optlen; + struct { + __u16 addr_len; + __u16 __pad3[1]; + }; + }; + union { + struct { + __u64 addr3; + __u64 __pad2[1]; + }; + struct { + __u64 attr_ptr; + __u64 attr_type_mask; + }; + __u64 optval; + __u8 cmd[0]; + }; +}; + +struct io_uring_cmd_data { + void *op_data; + struct io_uring_sqe sqes[2]; +}; + +struct io_uring_file_index_range { + __u32 off; + __u32 len; + __u64 resv; +}; + +struct io_uring_getevents_arg { + __u64 sigmask; + __u32 sigmask_sz; + __u32 min_wait_usec; + __u64 ts; +}; + +struct io_uring_mem_region_reg { + __u64 region_uptr; + __u64 flags; + __u64 __resv[2]; +}; + +struct io_uring_napi { + __u32 busy_poll_to; + __u8 prefer_busy_poll; + __u8 opcode; + __u8 pad[2]; + __u32 op_param; + __u32 resv; +}; + +struct io_uring_params { + __u32 sq_entries; + __u32 cq_entries; + __u32 flags; + __u32 sq_thread_cpu; + __u32 sq_thread_idle; + __u32 features; + __u32 wq_fd; + __u32 resv[3]; + struct io_sqring_offsets sq_off; + struct io_cqring_offsets cq_off; +}; + +struct 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_reg_wait { + struct __kernel_timespec ts; + __u32 min_wait_usec; + __u32 flags; + __u64 sigmask; + __u32 sigmask_sz; + __u32 pad[3]; + __u64 pad2[2]; +}; + +struct io_uring_region_desc { + __u64 user_addr; + __u64 size; + __u32 flags; + __u32 id; + __u64 mmap_offset; + __u64 __resv[4]; +}; + +struct io_uring_restriction { + __u16 opcode; + union { + __u8 register_op; + __u8 sqe_op; + __u8 sqe_flags; + }; + __u8 resv; + __u32 resv2[3]; +}; + +struct io_uring_rsrc_register { + __u32 nr; + __u32 flags; + __u64 resv2; + __u64 data; + __u64 tags; +}; + +struct io_uring_rsrc_update { + __u32 offset; + __u32 resv; + __u64 data; +}; + +struct io_uring_rsrc_update2 { + __u32 offset; + __u32 resv; + __u64 data; + __u64 tags; + __u32 nr; + __u32 resv2; +}; + +struct io_uring_sync_cancel_reg { + __u64 addr; + __s32 fd; + __u32 flags; + struct __kernel_timespec timeout; + __u8 opcode; + __u8 pad[7]; + __u64 pad2[3]; +}; + +struct io_wq; + +struct io_uring_task { + int cached_refs; + const struct io_ring_ctx *last; + struct task_struct *task; + struct io_wq *io_wq; + struct file *registered_rings[16]; + struct xarray xa; + struct wait_queue_head wait; + atomic_t in_cancel; + atomic_t inflight_tracked; + struct percpu_counter inflight; + long: 64; + struct { + struct llist_head task_list; + struct callback_head task_work; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; +}; + +struct io_wait_queue { + struct wait_queue_entry wq; + struct io_ring_ctx *ctx; + unsigned int cq_tail; + unsigned int cq_min_tail; + unsigned int nr_timeouts; + int hit_timeout; + ktime_t min_timeout; + ktime_t timeout; + struct hrtimer t; + ktime_t napi_busy_poll_dt; + bool napi_prefer_busy_poll; +}; + +struct waitid_info { + pid_t pid; + uid_t uid; + int status; + int cause; +}; + +struct io_waitid { + struct file *file; + int which; + pid_t upid; + int options; + atomic_t refs; + struct wait_queue_head *head; + struct siginfo *infop; + struct waitid_info info; +}; + +struct rusage; + +struct wait_opts { + enum pid_type wo_type; + int wo_flags; + struct pid *wo_pid; + struct waitid_info *wo_info; + int wo_stat; + struct rusage *wo_rusage; + wait_queue_entry_t child_wait; + int notask_error; +}; + +struct io_waitid_async { + struct io_kiocb *req; + struct wait_opts wo; +}; + +struct io_worker { + refcount_t ref; + int create_index; + long unsigned int flags; + struct hlist_nulls_node nulls_node; + struct list_head all_list; + struct task_struct *task; + struct io_wq *wq; + struct io_wq_work *cur_work; + raw_spinlock_t lock; + struct completion ref_done; + long unsigned int create_state; + struct callback_head create_work; + int init_retries; + union { + struct callback_head rcu; + struct delayed_work 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_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; + long unsigned int flags; +}; + +struct io_wq { + long unsigned int state; + free_work_fn *free_work; + io_wq_work_fn *do_work; + struct io_wq_hash *hash; + atomic_t worker_refs; + struct completion worker_done; + struct hlist_node cpuhp_node; + struct task_struct *task; + struct io_wq_acct acct[2]; + raw_spinlock_t lock; + struct hlist_nulls_head free_list; + struct list_head all_list; + struct wait_queue_entry wait; + struct io_wq_work *hash_tail[64]; + cpumask_var_t cpu_mask; +}; + +struct io_wq_data { + struct io_wq_hash *hash; + struct task_struct *task; + io_wq_work_fn *do_work; + free_work_fn *free_work; +}; + +struct io_wq_hash { + refcount_t refs; + long unsigned int map; + struct wait_queue_head wait; +}; + +struct xattr_name; + +struct kernel_xattr_ctx { + union { + const void *cvalue; + void *value; + }; + void *kvalue; + size_t size; + struct xattr_name *kname; + unsigned int flags; +}; + +struct io_xattr { + struct file *file; + struct kernel_xattr_ctx ctx; + struct filename *filename; +}; + +struct ioam6_hdr { + __u8 opt_type; + __u8 opt_len; + char: 8; + __u8 type; +}; + +struct ioam6_lwt_freq { + u32 k; + u32 n; +}; + +struct ipv6_opt_hdr { + __u8 nexthdr; + __u8 hdrlen; +}; + +struct ioam6_trace_hdr { + __be16 namespace_id; + char: 2; + __u8 overflow: 1; + __u8 nodelen: 5; + __u8 remlen: 7; + union { + __be32 type_be32; + struct { + __u32 bit7: 1; + __u32 bit6: 1; + __u32 bit5: 1; + __u32 bit4: 1; + __u32 bit3: 1; + __u32 bit2: 1; + __u32 bit1: 1; + __u32 bit0: 1; + __u32 bit15: 1; + __u32 bit14: 1; + __u32 bit13: 1; + __u32 bit12: 1; + __u32 bit11: 1; + __u32 bit10: 1; + __u32 bit9: 1; + __u32 bit8: 1; + __u32 bit23: 1; + __u32 bit22: 1; + __u32 bit21: 1; + __u32 bit20: 1; + __u32 bit19: 1; + __u32 bit18: 1; + __u32 bit17: 1; + __u32 bit16: 1; + } type; + }; + __u8 data[0]; +}; + +struct ioam6_lwt_encap { + struct ipv6_opt_hdr eh; + u8 pad[2]; + struct ioam6_hdr ioamh; + struct ioam6_trace_hdr traceh; +}; + +struct ioam6_lwt { + struct dst_cache cache; + struct ioam6_lwt_freq freq; + atomic_t pkt_cnt; + u8 mode; + bool has_tunsrc; + struct in6_addr tunsrc; + struct in6_addr tundst; + struct ioam6_lwt_encap tuninfo; +}; + +struct ioam6_schema; + +struct ioam6_namespace { + struct rhash_head head; + struct callback_head rcu; + struct ioam6_schema *schema; + __be16 id; + __be32 data; + __be64 data_wide; +}; + +struct ioam6_pernet_data { + struct mutex lock; + struct rhashtable namespaces; + struct rhashtable schemas; +}; + +struct ioam6_schema { + struct rhash_head head; + struct callback_head rcu; + struct ioam6_namespace *ns; + u32 id; + int len; + __be32 hdr; + u8 data[0]; +}; + +struct rq_qos_ops; + +struct rq_qos { + const struct rq_qos_ops *ops; + struct gendisk *disk; + enum rq_qos_id id; + struct rq_qos *next; + struct dentry *debugfs_dir; +}; + +struct 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; +}; + +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 *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_cgrp { + struct blkcg_policy_data cpd; + unsigned int dfl_weight; +}; + +struct iocg_stat { + u64 usage_us; + u64 wait_us; + u64 indebt_us; + u64 indelay_us; +}; + +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 *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_missed { + local_t nr_met; + local_t nr_missed; + u32 last_met; + u32 last_missed; +}; + +struct ioc_now { + u64 now_ns; + u64 now; + u64 vnow; +}; + +struct ioc_pcpu_stat { + struct ioc_missed missed[2]; + local64_t rq_wait_ns; + u64 last_rq_wait_ns; +}; + +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 iocg_pcpu_stat { + local64_t abs_vusage; +}; + +struct iocg_wait { + struct wait_queue_entry wait; + struct bio *bio; + u64 abs_cost; + bool committed; +}; + +struct iocg_wake_ctx { + struct ioc_gq *iocg; + u32 hw_inuse; + s64 vbudget; +}; + +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_dio_ops; + +struct iomap_dio { + struct kiocb *iocb; + const struct iomap_dio_ops *dops; + loff_t i_size; + loff_t size; + atomic_t ref; + unsigned int flags; + int error; + size_t done_before; + bool wait_for_completion; + union { + struct { + struct iov_iter *iter; + struct task_struct *waiter; + } submit; + struct { + struct work_struct work; + } aio; + }; +}; + +struct iomap_iter; + +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 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_folio_state { + spinlock_t state_lock; + unsigned int read_bytes_pending; + atomic_t write_bytes_pending; + long unsigned int state[0]; +}; + +struct iomap_ioend { + struct list_head io_list; + u16 io_type; + u16 io_flags; + struct inode *io_inode; + size_t io_size; + loff_t io_offset; + sector_t io_sector; + struct bio io_bio; +}; + +struct iomap_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 *); +}; + +struct iomap_readpage_ctx { + struct folio *cur_folio; + bool cur_folio_in_bio; + struct bio *bio; + struct readahead_control *rac; +}; + +struct iomap_swapfile_info { + struct iomap iomap; + struct swap_info_struct *sis; + uint64_t lowest_ppage; + uint64_t highest_ppage; + long unsigned int nr_pages; + int nr_extents; + struct file *file; +}; + +struct iomap_writepage_ctx; + +struct iomap_writeback_ops { + int (*map_blocks)(struct iomap_writepage_ctx *, struct inode *, loff_t, unsigned int); + int (*prepare_ioend)(struct iomap_ioend *, int); + void (*discard_folio)(struct folio *, loff_t); +}; + +struct iomap_writepage_ctx { + struct iomap iomap; + struct iomap_ioend *ioend; + const struct iomap_writeback_ops *ops; + u32 nr_folios; +}; + +struct iommu_attach_handle { + struct iommu_domain *domain; +}; + +struct iova_bitmap; + +struct iommu_dirty_bitmap { + struct iova_bitmap *bitmap; + struct iommu_iotlb_gather *gather; +}; + +struct iommu_dirty_ops { + int (*set_dirty_tracking)(struct iommu_domain *, bool); + int (*read_and_clear_dirty)(struct iommu_domain *, long unsigned int, size_t, long unsigned int, struct iommu_dirty_bitmap *); +}; + +struct iova { + struct rb_node node; + long unsigned int pfn_hi; + long unsigned int 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; + long unsigned int granule; + long unsigned int start_pfn; + long unsigned int dma_32bit_pfn; + long unsigned int max32_alloc_size; + struct iova anchor; + struct iova_rcache *rcaches; + struct hlist_node cpuhp_dead; +}; + +struct iommu_dma_options { + enum iommu_dma_queue_type qt; + size_t fq_size; + unsigned int fq_timeout; +}; + +struct iova_fq; + +struct iommu_dma_cookie { + enum iommu_dma_cookie_type type; + union { + struct { + struct iova_domain iovad; + union { + struct iova_fq *single_fq; + struct iova_fq *percpu_fq; + }; + atomic64_t fq_flush_start_cnt; + atomic64_t fq_flush_finish_cnt; + struct timer_list fq_timer; + atomic_t fq_timer_on; + }; + dma_addr_t msi_iova; + }; + struct list_head msi_page_list; + struct iommu_domain *fq_domain; + struct iommu_dma_options options; + struct mutex mutex; +}; + +struct iommu_dma_msi_page { + struct list_head list; + dma_addr_t iova; + phys_addr_t phys; +}; + +struct iommu_user_data_array; + +struct iommu_domain_ops { + int (*attach_dev)(struct iommu_domain *, struct device *); + int (*set_dev_pasid)(struct iommu_domain *, struct device *, ioasid_t, struct iommu_domain *); + int (*map_pages)(struct iommu_domain *, long unsigned int, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); + size_t (*unmap_pages)(struct iommu_domain *, long unsigned int, size_t, size_t, struct iommu_iotlb_gather *); + void (*flush_iotlb_all)(struct iommu_domain *); + int (*iotlb_sync_map)(struct iommu_domain *, long unsigned int, size_t); + void (*iotlb_sync)(struct iommu_domain *, struct iommu_iotlb_gather *); + int (*cache_invalidate_user)(struct iommu_domain *, struct iommu_user_data_array *); + phys_addr_t (*iova_to_phys)(struct iommu_domain *, dma_addr_t); + bool (*enforce_cache_coherency)(struct iommu_domain *); + int (*set_pgtable_quirks)(struct iommu_domain *, long unsigned int); + void (*free)(struct iommu_domain *); +}; + +struct iommu_fault_page_request { + u32 flags; + u32 pasid; + u32 grpid; + u32 perm; + u64 addr; + u64 private_data[2]; +}; + +struct iommu_fault { + u32 type; + struct iommu_fault_page_request prm; +}; + +struct iommu_fault_param { + struct mutex lock; + refcount_t users; + struct callback_head rcu; + struct device *dev; + struct iopf_queue *queue; + struct list_head queue_list; + struct list_head partial; + struct list_head faults; +}; + +struct iommu_flush_ops { + void (*tlb_flush_all)(void *); + void (*tlb_flush_walk)(long unsigned int, size_t, size_t, void *); + void (*tlb_add_page)(struct iommu_iotlb_gather *, long unsigned int, size_t, void *); +}; + +struct iommu_fwspec { + struct fwnode_handle *iommu_fwnode; + u32 flags; + unsigned int num_ids; + u32 ids[0]; +}; + +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); +}; + +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_iort_rmr_data { + struct iommu_resv_region rr; + const u32 *sids; + u32 num_sids; +}; + +struct iommu_iotlb_gather { + long unsigned int start; + long unsigned int end; + size_t pgsize; + struct list_head freelist; + bool queued; +}; + +struct iommu_mm_data { + u32 pasid; + struct list_head sva_domains; +}; + +struct iommu_user_data; + +struct iopf_fault; + +struct iommu_page_response; + +struct iommu_ops { + bool (*capable)(struct device *, enum iommu_cap); + void * (*hw_info)(struct device *, u32 *, u32 *); + struct iommu_domain * (*domain_alloc)(unsigned int); + struct iommu_domain * (*domain_alloc_paging_flags)(struct device *, u32, const struct iommu_user_data *); + struct iommu_domain * (*domain_alloc_paging)(struct device *); + struct iommu_domain * (*domain_alloc_sva)(struct device *, struct mm_struct *); + struct iommu_domain * (*domain_alloc_nested)(struct device *, struct iommu_domain *, u32, const struct iommu_user_data *); + struct iommu_device * (*probe_device)(struct device *); + void (*release_device)(struct device *); + void (*probe_finalize)(struct device *); + struct iommu_group * (*device_group)(struct device *); + void (*get_resv_regions)(struct device *, struct list_head *); + int (*of_xlate)(struct device *, const 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); + void (*page_response)(struct device *, struct iopf_fault *, struct iommu_page_response *); + int (*def_domain_type)(struct device *); + struct iommufd_viommu * (*viommu_alloc)(struct device *, struct iommu_domain *, struct iommufd_ctx *, unsigned int); + const struct iommu_domain_ops *default_domain_ops; + long unsigned int pgsize_bitmap; + struct module *owner; + struct iommu_domain *identity_domain; + struct iommu_domain *blocked_domain; + struct iommu_domain *release_domain; + struct iommu_domain *default_domain; + u8 user_pasid_table: 1; +}; + +struct iommu_page_response { + u32 pasid; + u32 grpid; + u32 code; +}; + +struct iommu_sva { + struct iommu_attach_handle handle; + struct device *dev; + refcount_t users; +}; + +struct iommu_user_data { + unsigned int type; + void *uptr; + size_t len; +}; + +struct iommu_user_data_array { + unsigned int type; + void *uptr; + size_t entry_len; + u32 entry_num; +}; + +struct iommufd_ioas; + +struct iommufd_ctx { + struct file *file; + struct xarray objects; + struct xarray groups; + wait_queue_head_t destroy_wait; + struct rw_semaphore ioas_creation_lock; + u8 account_mode; + u8 no_iommu_mode; + struct iommufd_ioas *vfio_ioas; +}; + +struct iommufd_fault { + struct iommufd_object obj; + struct iommufd_ctx *ictx; + struct file *filep; + spinlock_t lock; + struct list_head deliver; + struct mutex mutex; + struct xarray response; + struct wait_queue_head wait_queue; +}; + +struct iommufd_hw_pagetable { + struct iommufd_object obj; + struct iommu_domain *domain; + struct iommufd_fault *fault; +}; + +struct iommufd_hwpt_paging { + struct iommufd_hw_pagetable common; + struct iommufd_ioas *ioas; + bool auto_domain: 1; + bool enforce_cache_coherency: 1; + bool msi_cookie: 1; + bool nest_parent: 1; + struct list_head hwpt_item; +}; + +struct iommufd_ioas { + struct iommufd_object obj; + struct io_pagetable iopt; + struct mutex mutex; + struct list_head hwpt_list; +}; + +struct iommufd_vdevice { + struct iommufd_object obj; + struct iommufd_ctx *ictx; + struct iommufd_viommu *viommu; + struct device *dev; + u64 id; +}; + +struct iommufd_viommu_ops { + void (*destroy)(struct iommufd_viommu *); + struct iommu_domain * (*alloc_domain_nested)(struct iommufd_viommu *, u32, const struct iommu_user_data *); + int (*cache_invalidate)(struct iommufd_viommu *, struct iommu_user_data_array *); +}; + +struct iopf_fault { + struct iommu_fault fault; + struct list_head list; +}; + +struct iopf_group { + struct iopf_fault last_fault; + struct list_head faults; + size_t fault_count; + struct list_head pending_node; + struct work_struct work; + struct iommu_attach_handle *attach_handle; + struct iommu_fault_param *fault_param; + struct list_head node; + u32 cookie; +}; + +struct iopf_queue { + struct workqueue_struct *wq; + struct list_head devices; + struct mutex lock; +}; + +struct ioprio_blkcg { + struct blkcg_policy_data cpd; + enum prio_policy prio_policy; +}; + +struct iort_dev_config { + const char *name; + int (*dev_init)(struct acpi_iort_node *); + void (*dev_dma_configure)(struct device *, struct acpi_iort_node *); + int (*dev_count_resources)(struct acpi_iort_node *); + void (*dev_init_resources)(struct resource *, struct acpi_iort_node *); + int (*dev_set_proximity)(struct device *, struct acpi_iort_node *); + int (*dev_add_platdata)(struct platform_device *); +}; + +struct iort_fwnode { + struct list_head list; + struct acpi_iort_node *iort_node; + struct fwnode_handle *fwnode; +}; + +struct iort_its_msi_chip { + struct list_head list; + struct fwnode_handle *fw_node; + phys_addr_t base_addr; + u32 translation_id; +}; + +struct iort_pci_alias_info { + struct device *dev; + struct acpi_iort_node *node; +}; + +struct iova_bitmap_map { + long unsigned int iova; + long unsigned int length; + long unsigned int pgshift; + long unsigned int pgoff; + long unsigned int npages; + struct page **pages; +}; + +struct iova_bitmap { + struct iova_bitmap_map mapped; + u8 *bitmap; + long unsigned int mapped_base_index; + long unsigned int mapped_total_index; + long unsigned int iova; + size_t length; +}; + +struct iova_magazine; + +struct iova_cpu_rcache { + spinlock_t lock; + struct iova_magazine *loaded; + struct iova_magazine *prev; +}; + +struct iova_fq_entry { + long unsigned int iova_pfn; + long unsigned int pages; + struct list_head freelist; + u64 counter; +}; + +struct iova_fq { + spinlock_t lock; + unsigned int head; + unsigned int tail; + unsigned int mod_mask; + struct iova_fq_entry entries[0]; +}; + +struct iova_magazine { + union { + long unsigned int size; + struct iova_magazine *next; + }; + long unsigned int pfns[127]; +}; + +struct iova_rcache { + spinlock_t lock; + unsigned int depot_size; + struct iova_magazine *depot; + struct iova_cpu_rcache *cpu_rcaches; + struct iova_domain *iovad; + struct delayed_work work; +}; + +struct iova_to_phys_data { + arm_lpae_iopte pte; + int lvl; +}; + +struct ip6_flowlabel { + struct ip6_flowlabel *next; + __be32 label; + atomic_t users; + struct in6_addr dst; + struct ipv6_txoptions *opt; + long unsigned int linger; + struct callback_head rcu; + u8 share; + union { + struct pid *pid; + kuid_t uid; + } owner; + long unsigned int lastuse; + long unsigned int expires; + struct net *fl_net; +}; + +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 ipv6hdr; + +struct ip6_fraglist_iter { + struct ipv6hdr *tmp_hdr; + struct sk_buff *frag; + int offset; + unsigned int hlen; + __be32 frag_id; + u8 nexthdr; +}; + +struct ip6_mtuinfo { + struct sockaddr_in6 ip6m_addr; + __u32 ip6m_mtu; +}; + +struct ip6_ra_chain { + struct ip6_ra_chain *next; + struct sock *sk; + int sel; + void (*destructor)(struct sock *); +}; + +struct ip6_rt_info { + struct in6_addr daddr; + struct in6_addr saddr; + u_int32_t mark; +}; + +struct ip6_sf_list { + struct ip6_sf_list *sf_next; + struct in6_addr sf_addr; + long unsigned int sf_count[2]; + unsigned char sf_gsresp; + unsigned char sf_oldin; + unsigned char sf_crcount; + 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 ip_tunnel_encap { + u16 type; + u16 flags; + __be16 sport; + __be16 dport; +}; + +struct ip6_tnl { + struct ip6_tnl *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; + long unsigned int 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 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 ip6addrlbl_entry { + struct in6_addr prefix; + int prefixlen; + int ifindex; + int addrtype; + u32 label; + struct hlist_node list; + struct callback_head rcu; +}; + +struct ip6addrlbl_init_table { + const struct in6_addr *prefix; + int prefixlen; + u32 label; +}; + +struct ip6fl_iter_state { + struct seq_net_private p; + struct pid_namespace *pid_ns; + int bucket; +}; + +struct mr_table; + +struct ip6mr_result { + struct mr_table *mrt; +}; + +struct ip6rd_flowi { + struct flowi6 fl6; + struct in6_addr gateway; +}; + +struct ip_auth_hdr { + __u8 nexthdr; + __u8 hdrlen; + __be16 reserved; + __be32 spi; + __be32 seq_no; + __u8 auth_data[0]; +}; + +struct ip_beet_phdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 padlen; + __u8 reserved; +}; + +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 ip_ct_sctp { + enum sctp_conntrack state; + __be32 vtag[2]; + u8 init[2]; + u8 last_dir; + u8 flags; +}; + +struct ip_ct_tcp_state { + u_int32_t td_end; + u_int32_t td_maxend; + u_int32_t td_maxwin; + u_int32_t td_maxack; + u_int8_t td_scale; + u_int8_t flags; +}; + +struct ip_ct_tcp { + struct ip_ct_tcp_state seen[2]; + u_int8_t state; + u_int8_t last_dir; + u_int8_t retrans; + u_int8_t last_index; + u_int32_t last_seq; + u_int32_t last_ack; + u_int32_t last_end; + u_int16_t last_win; + u_int8_t last_wscale; + u_int8_t last_flags; +}; + +struct ip_esp_hdr { + __be32 spi; + __be32 seq_no; + __u8 enc_data[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 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; + long unsigned int sfcount[2]; + union { + struct ip_mc_list *next; + struct ip_mc_list *next_rcu; + }; + struct ip_mc_list *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; + long unsigned int mca_cstamp; + long unsigned int mca_tstamp; + struct callback_head rcu; +}; + +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 *next_rcu; + struct ip_mreqn multi; + unsigned int sfmode; + struct ip_sf_socklist *sflist; + struct callback_head rcu; +}; + +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 ip_ra_chain { + struct ip_ra_chain *next; + struct sock *sk; + union { + void (*destructor)(struct sock *); + struct sock *saved_sk; + }; + struct callback_head rcu; +}; + +struct kvec { + void *iov_base; + size_t iov_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 ip_rt_acct { + __u32 o_bytes; + __u32 o_packets; + __u32 i_bytes; + __u32 i_packets; +}; + +struct ip_rt_info { + __be32 daddr; + __be32 saddr; + u_int8_t tos; + u_int32_t mark; +}; + +struct ip_sf_list { + struct ip_sf_list *sf_next; + long unsigned int sf_count[2]; + __be32 sf_inaddr; + unsigned char sf_gsresp; + unsigned char sf_oldin; + unsigned char sf_crcount; +}; + +struct ip_sf_socklist { + unsigned int sl_max; + unsigned int sl_count; + struct callback_head rcu; + __be32 sl_addr[0]; +}; + +struct ip_tunnel_parm_kern { + char name[16]; + long unsigned int i_flags[1]; + long unsigned int o_flags[1]; + __be32 i_key; + __be32 o_key; + int link; + struct iphdr iph; +}; + +struct ip_tunnel_6rd_parm { + struct in6_addr prefix; + __be32 relay_prefix; + u16 prefixlen; + u16 relay_prefixlen; +}; + +struct ip_tunnel_fan { + struct list_head fan_maps; +}; + +struct ip_tunnel_prl_entry; + +struct ip_tunnel { + struct ip_tunnel *next; + struct hlist_node hash_node; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct net *net; + long unsigned int 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_kern parms; + int mlink; + int encap_hlen; + int hlen; + struct ip_tunnel_encap encap; + struct ip_tunnel_6rd_parm ip6rd; + struct ip_tunnel_prl_entry *prl; + unsigned int prl_count; + struct ip_tunnel_fan fan; + unsigned int ip_tnl_net_id; + struct gro_cells gro_cells; + __u32 fwmark; + bool collect_md; + bool ignore_df; +}; + +struct ip_tunnel_encap_ops { + size_t (*encap_hlen)(struct ip_tunnel_encap *); + int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *); + int (*err_handler)(struct sk_buff *, u32); +}; + +struct ip_tunnel_key { + __be64 tun_id; + union { + struct { + __be32 src; + __be32 dst; + } ipv4; + struct { + struct in6_addr src; + struct in6_addr dst; + } ipv6; + } u; + long unsigned int tun_flags[1]; + __be32 label; + u32 nhid; + u8 tos; + u8 ttl; + __be16 tp_src; + __be16 tp_dst; + __u8 flow_flags; +}; + +struct ip_tunnel_info { + struct ip_tunnel_key key; + struct ip_tunnel_encap encap; + struct dst_cache dst_cache; + u8 options_len; + u8 mode; +}; + +struct ip_tunnel_prl_entry { + struct ip_tunnel_prl_entry *next; + __be32 addr; + u16 flags; + struct callback_head callback_head; +}; + +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]; + short unsigned int seq; + short unsigned int __pad2; + __kernel_ulong_t __unused1; + __kernel_ulong_t __unused2; +}; + +struct ipc_ids { + int in_use; + short unsigned int seq; + struct rw_semaphore rwsem; + struct idr ipcs_idr; + int max_idx; + int last_idx; + int next_id; + 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; + long unsigned int shm_tot; + int shm_ctlmni; + int shm_rmid_forced; + struct notifier_block ipcns_nb; + struct vfsmount *mq_mnt; + unsigned int mq_queues_count; + unsigned int mq_queues_max; + unsigned int mq_msg_max; + unsigned int mq_msgsize_max; + unsigned int mq_msg_default; + unsigned int mq_msgsize_default; + struct ctl_table_set mq_set; + struct ctl_table_header *mq_sysctls; + struct ctl_table_set ipc_set; + struct ctl_table_header *ipc_sysctls; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct llist_node mnt_llist; + struct ns_common ns; +}; + +struct 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_params { + key_t key; + int flg; + union { + size_t size; + int nsems; + } u; +}; + +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; + short unsigned int seq; +}; + +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 ipc_security_struct { + u16 sclass; + u32 sid; +}; + +struct sockcm_cookie { + u64 transmit_time; + u32 mark; + u32 tsflags; + u32 ts_opt_id; + u32 priority; +}; + +struct ipcm6_cookie { + struct sockcm_cookie sockc; + __s16 hlimit; + __s16 tclass; + __u16 gso_size; + __s8 dontfrag; + struct ipv6_txoptions *opt; +}; + +struct ipcm_cookie { + struct sockcm_cookie sockc; + __be32 addr; + int oif; + struct ip_options_rcu *opt; + __u8 protocol; + __u8 ttl; + __s16 tos; + __u16 gso_size; +}; + +struct ipe_bdev { + bool dm_verity_signed; + struct digest_info *root_hash; +}; + +struct ipe_inode; + +struct ipe_eval_ctx { + enum ipe_op_type op; + enum ipe_hook_type hook; + const struct file *file; + bool initramfs; + const struct ipe_bdev *ipe_bdev; + const struct inode *ino; + const struct ipe_inode *ipe_inode; +}; + +struct ipe_inode { + bool fs_verity_signed; +}; + +struct ipe_op_table { + struct list_head rules; + enum ipe_action_type default_action; +}; + +struct ipe_parsed_policy { + const char *name; + struct { + u16 major; + u16 minor; + u16 rev; + } version; + enum ipe_action_type global_default_action; + struct ipe_op_table rules[7]; +}; + +struct ipe_policy { + const char *pkcs7; + size_t pkcs7len; + const char *text; + size_t textlen; + struct ipe_parsed_policy *parsed; + struct dentry *policyfs; +}; + +struct ipe_prop { + struct list_head next; + enum ipe_prop_type type; + void *value; +}; + +struct ipe_rule { + enum ipe_op_type op; + enum ipe_action_type action; + struct list_head props; + struct list_head next; +}; + +struct ipe_superblock { + bool initramfs; +}; + +struct ipefs_file { + const char *name; + umode_t access; + const struct file_operations *fops; +}; + +struct ipfrag_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + }; + struct sk_buff *next_frag; + int frag_run_len; + int ip_defrag_offset; +}; + +struct ipi_mux_cpu { + atomic_t enable; + atomic_t bits; +}; + +struct ipmi_dmi_info { + enum si_type si_type; + unsigned int space; + long unsigned int addr; + u8 slave_addr; + struct ipmi_dmi_info *next; +}; + +struct ipmi_plat_data { + enum ipmi_plat_interface_type iftype; + unsigned int type; + unsigned int space; + long unsigned int addr; + unsigned int regspacing; + unsigned int regsize; + unsigned int regshift; + unsigned int irq; + unsigned int slave_addr; + enum ipmi_addr_src addr_source; +}; + +struct ipmr_result { + struct mr_table *mrt; +}; + +struct ipq { + struct inet_frag_queue q; + u8 ecn; + u16 max_df_size; + int iif; + unsigned int rid; + struct inet_peer *peer; +}; + +struct ipstats_mib { + u64 mibs[38]; + struct u64_stats_sync syncp; +}; + +struct ipv6_ac_socklist { + struct in6_addr acl_addr; + int acl_ifindex; + struct ipv6_ac_socklist *acl_next; +}; + +struct udp_table; + +struct ipv6_bpf_stub { + int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32); + struct sock * (*udp6_lib_lookup)(const struct net *, const struct in6_addr *, __be16, const struct in6_addr *, __be16, int, int, struct udp_table *, struct sk_buff *); + int (*ipv6_setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*ipv6_getsockopt)(struct sock *, int, int, sockptr_t, sockptr_t); + int (*ipv6_dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *); +}; + +struct ipv6_destopt_hao { + __u8 type; + __u8 length; + struct in6_addr addr; +} __attribute__((packed)); + +struct ipv6_fl_socklist { + struct ipv6_fl_socklist *next; + struct ip6_flowlabel *fl; + struct callback_head rcu; +}; + +struct ipv6_mc_socklist { + struct in6_addr addr; + int ifindex; + unsigned int sfmode; + struct ipv6_mc_socklist *next; + struct ip6_sf_socklist *sflist; + struct callback_head rcu; +}; + +struct ipv6_mreq { + struct in6_addr ipv6mr_multiaddr; + int ipv6mr_ifindex; +}; + +struct ipv6_params { + __s32 disable_ipv6; + __s32 autoconf; +}; + +struct ipv6_pinfo { + struct in6_addr saddr; + struct in6_pktinfo sticky_pktinfo; + const struct in6_addr *daddr_cache; + const struct in6_addr *saddr_cache; + __be32 flow_label; + __u32 frag_size; + s16 hop_limit; + u8 mcast_hops; + int ucast_oif; + int mcast_oif; + union { + struct { + __u16 srcrt: 1; + __u16 osrcrt: 1; + __u16 rxinfo: 1; + __u16 rxoinfo: 1; + __u16 rxhlim: 1; + __u16 rxohlim: 1; + __u16 hopopts: 1; + __u16 ohopopts: 1; + __u16 dstopts: 1; + __u16 odstopts: 1; + __u16 rxflow: 1; + __u16 rxtclass: 1; + __u16 rxpmtu: 1; + __u16 rxorigdstaddr: 1; + __u16 recvfragsize: 1; + } bits; + __u16 all; + } rxopt; + __u8 srcprefs; + __u8 pmtudisc; + __u8 min_hopcount; + __u8 tclass; + __be32 rcv_flowinfo; + __u32 dst_cookie; + struct ipv6_mc_socklist *ipv6_mc_list; + struct ipv6_ac_socklist *ipv6_ac_list; + struct ipv6_fl_socklist *ipv6_fl_list; + struct ipv6_txoptions *opt; + struct sk_buff *pktoptions; + struct sk_buff *rxpmtu; + struct inet6_cork cork; +}; + +struct ipv6_route_iter { + struct seq_net_private p; + struct fib6_walker w; + loff_t skip; + struct fib6_table *tbl; + int sernum; +}; + +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 ipv6_rt_hdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 type; + __u8 segments_left; +}; + +struct ipv6_saddr_dst { + const struct in6_addr *addr; + int ifindex; + int scope; + int label; + unsigned int prefs; +}; + +struct ipv6_saddr_score { + int rule; + int addr_type; + struct inet6_ifaddr *ifa; + long unsigned int scorebits[1]; + int scopedist; + int matchlen; +}; + +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 neigh_table; + +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); + void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool); + void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32); + int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *); + struct sk_buff * (*xfrm6_gro_udp_encap_rcv)(struct sock *, struct list_head *, struct sk_buff *); + int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int); + struct neigh_table *nd_tbl; + int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *)); + struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *); + int (*ip6_xmit)(const struct sock *, struct sk_buff *, struct flowi6 *, __u32, struct ipv6_txoptions *, int, u32); +}; + +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 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 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 irq_affinity_desc { + struct cpumask mask; + unsigned int is_managed: 1; +}; + +struct irq_affinity_devres { + unsigned int count; + unsigned int irq[0]; +}; + +struct irq_affinity_notify { + unsigned int irq; + struct kref kref; + struct work_struct work; + void (*notify)(struct irq_affinity_notify *, const cpumask_t *); + void (*release)(struct kref *); +}; + +struct irq_bypass_producer; + +struct irq_bypass_consumer { + struct list_head node; + void *token; + int (*add_producer)(struct irq_bypass_consumer *, struct irq_bypass_producer *); + void (*del_producer)(struct irq_bypass_consumer *, struct irq_bypass_producer *); + void (*stop)(struct irq_bypass_consumer *); + void (*start)(struct irq_bypass_consumer *); +}; + +struct irq_bypass_producer { + struct list_head node; + void *token; + int irq; + int (*add_consumer)(struct irq_bypass_producer *, struct irq_bypass_consumer *); + void (*del_consumer)(struct irq_bypass_producer *, struct irq_bypass_consumer *); + void (*stop)(struct irq_bypass_producer *); + void (*start)(struct irq_bypass_producer *); +}; + +struct irq_chip_regs { + long unsigned int enable; + long unsigned int disable; + long unsigned int mask; + long unsigned int ack; + long unsigned int eoi; + long unsigned int type; +}; + +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 wake_enabled; + u32 wake_active; + unsigned int num_ct; + void *private; + long unsigned int installed; + long unsigned int unused; + struct irq_domain *domain; + struct list_head list; + struct irq_chip_type chip_types[0]; +}; + +struct irq_common_data { + unsigned int state_use_accessors; + unsigned int node; + void *handler_data; + struct msi_desc *msi_desc; + cpumask_var_t affinity; + cpumask_var_t effective_affinity; + unsigned int ipi_offset; +}; + +struct meson_gpio_irq_controller; + +struct irq_ctl_ops { + void (*gpio_irq_sel_pin)(struct meson_gpio_irq_controller *, unsigned int, long unsigned int); + void (*gpio_irq_init)(struct meson_gpio_irq_controller *); + int (*gpio_irq_set_type)(struct meson_gpio_irq_controller *, unsigned int, u32 *); +}; + +struct irq_data { + u32 mask; + unsigned int irq; + irq_hw_number_t hwirq; + struct irq_common_data *common; + struct irq_chip *chip; + struct irq_domain *domain; + struct irq_data *parent_data; + void *chip_data; +}; + +struct irqstat; + +struct irqaction; + +struct irq_desc { + struct irq_common_data irq_common_data; + struct irq_data irq_data; + struct irqstat *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; + long unsigned int 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; + long unsigned int threads_oneshot; + atomic_t threads_active; + wait_queue_head_t wait_for_threads; + unsigned int nr_actions; + unsigned int no_suspend_depth; + unsigned int cond_suspend_depth; + unsigned int force_resume_depth; + struct proc_dir_entry *dir; + struct callback_head rcu; + struct kobject kobj; + struct mutex request_mutex; + int parent_irq; + struct module *owner; + const char *name; + struct hlist_node resend_node; + long: 64; + long: 64; + long: 64; +}; + +struct irq_desc_devres { + unsigned int from; + unsigned int cnt; +}; + +struct irq_devres { + unsigned int irq; + void *dev_id; +}; + +struct irq_domain_chip_generic; + +struct msi_parent_ops; + +struct irq_domain { + struct list_head link; + const char *name; + const struct irq_domain_ops *ops; + void *host_data; + unsigned int flags; + unsigned int mapcount; + struct mutex mutex; + struct irq_domain *root; + struct fwnode_handle *fwnode; + enum irq_domain_bus_token bus_token; + struct irq_domain_chip_generic *gc; + struct device *dev; + struct device *pm_dev; + struct irq_domain *parent; + const struct msi_parent_ops *msi_parent_ops; + void (*exit)(struct irq_domain *); + irq_hw_number_t hwirq_max; + unsigned int revmap_size; + struct xarray revmap_tree; + struct irq_data *revmap[0]; +}; + +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; + void (*exit)(struct irq_chip_generic *); + struct irq_chip_generic *gc[0]; +}; + +struct irq_domain_chip_generic_info { + const char *name; + irq_flow_handler_t handler; + unsigned int irqs_per_chip; + unsigned int num_ct; + unsigned int irq_flags_to_clear; + unsigned int irq_flags_to_set; + enum irq_gc_flags gc_flags; + int (*init)(struct irq_chip_generic *); + void (*exit)(struct irq_chip_generic *); +}; + +struct irq_domain_info { + struct fwnode_handle *fwnode; + unsigned int domain_flags; + unsigned int size; + irq_hw_number_t hwirq_max; + int direct_max; + unsigned int hwirq_base; + unsigned int virq_base; + enum irq_domain_bus_token bus_token; + const char *name_suffix; + const struct irq_domain_ops *ops; + void *host_data; + struct irq_domain *parent; + struct irq_domain_chip_generic_info *dgc_info; + int (*init)(struct irq_domain *); + void (*exit)(struct irq_domain *); +}; + +struct irq_generic_chip_devres { + struct irq_chip_generic *gc; + u32 msk; + unsigned int clr; + unsigned int set; +}; + +struct irq_glue { + struct irq_affinity_notify notify; + struct cpu_rmap *rmap; + u16 index; +}; + +struct irq_info { + struct list_head list; + struct list_head eoi_list; + struct rcu_work rwork; + short int refcnt; + u8 spurious_cnt; + u8 is_accounted; + short int type; + u8 mask_reason; + u8 is_active; + unsigned int irq; + evtchn_port_t evtchn; + short unsigned int cpu; + short unsigned int eoi_cpu; + unsigned int irq_epoch; + u64 eoi_time; + raw_spinlock_t lock; + bool is_static; + union { + short unsigned int virq; + enum ipi_vector ipi; + struct { + short unsigned int pirq; + short unsigned int gsi; + unsigned char vector; + unsigned char flags; + uint16_t domid; + } pirq; + struct xenbus_device *interdomain; + } u; +}; + +struct irq_info___2 { + struct hlist_node node; + int irq; + spinlock_t lock; + struct list_head *head; +}; + +struct irq_ops { + long unsigned int flags; + bool (*get_input_level)(int); +}; + +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 irq_sim_work_ctx; + +struct irq_sim_irq_ctx { + bool enabled; + struct irq_sim_work_ctx *work_ctx; +}; + +struct irq_sim_ops { + int (*irq_sim_irq_requested)(struct irq_domain *, irq_hw_number_t, void *); + void (*irq_sim_irq_released)(struct irq_domain *, irq_hw_number_t, void *); +}; + +struct irq_sim_work_ctx { + struct irq_work work; + unsigned int irq_count; + long unsigned int *pending; + struct irq_domain *domain; + struct irq_sim_ops ops; + void *user_data; +}; + +struct irqaction { + irq_handler_t handler; + void *dev_id; + void *percpu_dev_id; + struct irqaction *next; + irq_handler_t thread_fn; + struct task_struct *thread; + struct irqaction *secondary; + unsigned int irq; + unsigned int flags; + long unsigned int thread_flags; + long unsigned int thread_mask; + const char *name; + struct proc_dir_entry *dir; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct irqc_priv; + +struct irqc_irq { + int hw_irq; + int requested_irq; + struct irqc_priv *p; +}; + +struct irqc_priv { + void *iomem; + void *cpu_int_base; + struct irqc_irq irq[32]; + unsigned int number_of_irqs; + struct device *dev; + struct irq_chip_generic *gc; + struct irq_domain *irq_domain; + atomic_t wakeup_path; +}; + +struct irqchip_fwid { + struct fwnode_handle fwnode; + unsigned int type; + char *name; + phys_addr_t *pa; +}; + +struct irqstat { + unsigned int cnt; +}; + +struct irqsteer_data { + void *regs; + struct clk *ipg_clk; + int irq[8]; + int irq_count; + raw_spinlock_t lock; + int reg_num; + int channel; + struct irq_domain *domain; + u32 *saved_reg; + struct device *dev; +}; + +struct itimerspec64 { + struct timespec64 it_interval; + struct timespec64 it_value; +}; + +struct its_baser { + void *base; + u64 val; + u32 order; + u32 psz; +}; + +struct its_cmd_block { + union { + u64 raw_cmd[4]; + __le64 raw_cmd_le[4]; + }; +}; + +struct its_device; + +struct its_collection; + +struct its_cmd_desc { + union { + struct { + struct its_device *dev; + u32 event_id; + } its_inv_cmd; + struct { + struct its_device *dev; + u32 event_id; + } its_clear_cmd; + struct { + struct its_device *dev; + u32 event_id; + } its_int_cmd; + struct { + struct its_device *dev; + int valid; + } its_mapd_cmd; + struct { + struct its_collection *col; + int valid; + } its_mapc_cmd; + struct { + struct its_device *dev; + u32 phys_id; + u32 event_id; + } its_mapti_cmd; + struct { + struct its_device *dev; + struct its_collection *col; + u32 event_id; + } its_movi_cmd; + struct { + struct its_device *dev; + u32 event_id; + } its_discard_cmd; + struct { + struct its_collection *col; + } its_invall_cmd; + struct { + struct its_vpe *vpe; + } its_vinvall_cmd; + struct { + struct its_vpe *vpe; + struct its_collection *col; + bool valid; + } its_vmapp_cmd; + struct { + struct its_vpe *vpe; + struct its_device *dev; + u32 virt_id; + u32 event_id; + bool db_enabled; + } its_vmapti_cmd; + struct { + struct its_vpe *vpe; + struct its_device *dev; + u32 event_id; + bool db_enabled; + } its_vmovi_cmd; + struct { + struct its_vpe *vpe; + struct its_collection *col; + u16 seq_num; + u16 its_list; + } its_vmovp_cmd; + struct { + struct its_vpe *vpe; + } its_invdb_cmd; + struct { + struct its_vpe *vpe; + u8 sgi; + u8 priority; + bool enable; + bool group; + bool clear; + } its_vsgi_cmd; + }; +}; + +struct its_cmd_info { + enum its_vcpu_info_cmd_type cmd_type; + union { + struct its_vlpi_map *map; + u8 config; + bool req_db; + struct { + bool g0en; + bool g1en; + }; + struct { + u8 priority; + bool group; + }; + }; +}; + +struct its_collection___2 { + struct list_head coll_list; + u32 collection_id; + u32 target_addr; +}; + +struct its_collection { + u64 target_address; + u16 col_id; +}; + +struct its_device___2 { + struct list_head dev_list; + struct list_head itt_head; + u32 num_eventid_bits; + gpa_t itt_addr; + u32 device_id; +}; + +struct its_node; + +struct its_device { + struct list_head entry; + struct its_node *its; + struct event_lpi_map event_map; + void *itt; + u32 itt_sz; + u32 nr_ites; + u32 device_id; + bool shared; +}; + +struct its_ite { + struct list_head ite_list; + struct vgic_irq *irq; + struct its_collection___2 *collection; + u32 event_id; +}; + +struct its_node { + raw_spinlock_t lock; + struct mutex dev_alloc_lock; + struct list_head entry; + void *base; + void *sgir_base; + phys_addr_t phys_base; + struct its_cmd_block *cmd_base; + struct its_cmd_block *cmd_write; + struct its_baser tables[8]; + struct its_collection *collections; + struct fwnode_handle *fwnode_handle; + u64 (*get_msi_base)(struct its_device *); + u64 typer; + u64 cbaser_save; + u32 ctlr_save; + u32 mpidr; + struct list_head its_device_list; + u64 flags; + long unsigned int list_nr; + int numa_node; + unsigned int msi_domain_flags; + u32 pre_its_base; + int vlpi_redist_offset; +}; + +struct its_srat_map { + u32 numa_node; + u32 its_id; +}; + +struct its_vlpi_map { + struct its_vm *vm; + struct its_vpe *vpe; + u32 vintid; + u8 properties; + bool db_enabled; +}; + +struct its_vpe { + struct page *vpt_page; + struct its_vm *its_vm; + atomic_t vlpi_count; + int irq; + irq_hw_number_t vpe_db_lpi; + bool resident; + bool ready; + union { + struct { + int vpe_proxy_event; + bool idai; + }; + struct { + struct fwnode_handle *fwnode; + struct irq_domain *sgi_domain; + struct { + u8 priority; + bool enabled; + bool group; + } sgi_config[16]; + }; + }; + atomic_t vmapp_count; + raw_spinlock_t vpe_lock; + u16 col_idx; + u16 vpe_id; + bool pending_last; +}; + +struct iw_discarded { + __u32 nwid; + __u32 code; + __u32 fragment; + __u32 retries; + __u32 misc; +}; + +struct iw_encode_ext { + __u32 ext_flags; + __u8 tx_seq[8]; + __u8 rx_seq[8]; + struct sockaddr addr; + __u16 alg; + __u16 key_len; + __u8 key[0]; +}; + +struct iw_point { + void *pointer; + __u16 length; + __u16 flags; +}; + +struct iw_param { + __s32 value; + __u8 fixed; + __u8 disabled; + __u16 flags; +}; + +struct iw_freq { + __s32 m; + __s16 e; + __u8 i; + __u8 flags; +}; + +struct iw_quality { + __u8 qual; + __u8 level; + __u8 noise; + __u8 updated; +}; + +union iwreq_data { + char name[16]; + struct iw_point essid; + struct iw_param nwid; + struct iw_freq freq; + struct iw_param sens; + struct iw_param bitrate; + struct iw_param txpower; + struct iw_param rts; + struct iw_param frag; + __u32 mode; + struct iw_param retry; + struct iw_point encoding; + struct iw_param power; + struct iw_quality qual; + struct sockaddr ap_addr; + struct sockaddr addr; + struct iw_param param; + struct iw_point data; +}; + +struct iw_event { + __u16 len; + __u16 cmd; + union iwreq_data u; +}; + +struct iw_request_info; + +typedef int (*iw_handler)(struct net_device *, struct iw_request_info *, union iwreq_data *, char *); + +struct iw_priv_args; + +struct iw_statistics; + +struct iw_handler_def { + const iw_handler *standard; + __u16 num_standard; + __u16 num_private; + __u16 num_private_args; + const iw_handler *private; + const struct iw_priv_args *private_args; + struct iw_statistics * (*get_wireless_stats)(struct net_device *); +}; + +struct iw_ioctl_description { + __u8 header_type; + __u8 flags; + __u16 token_size; + __u16 min_tokens; + __u16 max_tokens; +}; + +struct iw_missed { + __u32 beacon; +}; + +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 iw_node_attr { + struct kobj_attribute kobj_attr; + int nid; +}; + +struct iw_priv_args { + __u32 cmd; + __u16 set_args; + __u16 get_args; + char name[16]; +}; + +struct iw_request_info { + __u16 cmd; + __u16 flags; +}; + +struct iw_statistics { + __u16 status; + struct iw_quality qual; + struct iw_discarded discard; + struct iw_missed miss; +}; + +struct iwreq { + union { + char ifrn_name[16]; + } ifr_ifrn; + union iwreq_data u; +}; + +struct j721e_pcie { + struct cdns_pcie *cdns_pcie; + struct clk *refclk; + u32 mode; + u32 num_lanes; + u32 max_lanes; + struct gpio_desc *reset_gpio; + void *user_cfg_base; + void *intd_cfg_base; + u32 linkdown_irq_regfield; +}; + +struct j721e_pcie_data { + enum j721e_pcie_mode mode; + unsigned int quirk_retrain_flag: 1; + unsigned int quirk_detect_quiet_flag: 1; + unsigned int quirk_disable_flr: 1; + u32 linkdown_irq_regfield; + unsigned int byte_access_allowed: 1; + unsigned int max_lanes; +}; + +struct transaction_s; + +typedef struct transaction_s transaction_t; + +struct jbd2_inode { + transaction_t *i_transaction; + transaction_t *i_next_transaction; + struct list_head i_list; + struct inode *i_vfs_inode; + long unsigned int i_flags; + loff_t i_dirty_start; + loff_t i_dirty_end; +}; + +struct jbd2_journal_block_tail { + __be32 t_checksum; +}; + +typedef struct journal_s journal_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; + long unsigned int h_start_jiffies; + unsigned int h_requested_credits; + unsigned int saved_alloc_context; +}; + +struct journal_header_s { + __be32 h_magic; + __be32 h_blocktype; + __be32 h_sequence; +}; + +typedef struct journal_header_s journal_header_t; + +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 jbd2_revoke_record_s { + struct list_head hash; + tid_t sequence; + long long unsigned int blocknr; +}; + +struct jbd2_revoke_table_s { + int hash_size; + int hash_shift; + struct list_head *hash_table; +}; + +struct transaction_stats_s; + +struct jbd2_stats_proc_session { + journal_t *journal; + struct transaction_stats_s *stats; + int start; + int max; +}; + +struct rand_data; + +struct jitterentropy { + spinlock_t jent_lock; + struct rand_data *entropy_collector; + struct crypto_shash *tfm; + struct shash_desc *sdesc; +}; + +struct join_entry { + u32 token; + u32 remote_nonce; + u32 local_nonce; + u8 join_id; + u8 local_id; + u8 backup; + u8 valid; +}; + +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 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 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 transaction_run_stats_s { + long unsigned int rs_wait; + long unsigned int rs_request_delay; + long unsigned int rs_running; + long unsigned int rs_locked; + long unsigned int rs_flushing; + long unsigned int rs_logging; + __u32 rs_handle_count; + __u32 rs_blocks; + __u32 rs_blocks_logged; +}; + +struct transaction_stats_s { + long unsigned int ts_tid; + long unsigned int ts_requested; + struct transaction_run_stats_s run; +}; + +struct journal_superblock_s; + +typedef struct journal_superblock_s journal_superblock_t; + +struct journal_s { + long unsigned int j_flags; + int j_errno; + struct mutex j_abort_mutex; + struct buffer_head *j_sb_buffer; + journal_superblock_t *j_superblock; + rwlock_t j_state_lock; + int j_barrier_count; + struct mutex j_barrier; + transaction_t *j_running_transaction; + transaction_t *j_committing_transaction; + transaction_t *j_checkpoint_transactions; + wait_queue_head_t j_wait_transaction_locked; + wait_queue_head_t j_wait_done_commit; + wait_queue_head_t j_wait_commit; + wait_queue_head_t j_wait_updates; + wait_queue_head_t j_wait_reserved; + wait_queue_head_t j_fc_wait; + struct mutex j_checkpoint_mutex; + struct buffer_head *j_chkpt_bhs[64]; + struct shrinker *j_shrinker; + struct percpu_counter j_checkpoint_jh_count; + transaction_t *j_shrink_transaction; + long unsigned int j_head; + long unsigned int j_tail; + long unsigned int j_free; + long unsigned int j_first; + long unsigned int j_last; + long unsigned int j_fc_first; + long unsigned int j_fc_off; + long unsigned int j_fc_last; + struct block_device *j_dev; + int j_blocksize; + long long unsigned int j_blk_offset; + char j_devname[56]; + struct block_device *j_fs_dev; + errseq_t j_fs_dev_wb_err; + unsigned int j_total_len; + atomic_t j_reserved_credits; + spinlock_t j_list_lock; + struct inode *j_inode; + tid_t j_tail_sequence; + tid_t j_transaction_sequence; + tid_t j_commit_sequence; + tid_t j_commit_request; + __u8 j_uuid[16]; + struct task_struct *j_task; + int j_max_transaction_buffers; + int j_revoke_records_per_block; + int j_transaction_overhead_buffers; + long unsigned int 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; + __u32 j_csum_seed; + void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t); + int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t); + int (*j_bmap)(struct journal_s *, sector_t *); +}; + +struct journal_superblock_s { + journal_header_t s_header; + __be32 s_blocksize; + __be32 s_maxlen; + __be32 s_first; + __be32 s_sequence; + __be32 s_start; + __be32 s_errno; + __be32 s_feature_compat; + __be32 s_feature_incompat; + __be32 s_feature_ro_compat; + __u8 s_uuid[16]; + __be32 s_nr_users; + __be32 s_dynsuper; + __be32 s_max_transaction; + __be32 s_max_trans_data; + __u8 s_checksum_type; + __u8 s_padding2[3]; + __be32 s_num_fc_blks; + __be32 s_head; + __u32 s_padding[40]; + __be32 s_checksum; + __u8 s_users[768]; +}; + +struct jump_entry { + s32 code; + s32 target; + long int key; +}; + +struct k3_event_route_data { + void *priv; + int (*set_event)(void *, u32); +}; + +struct k3_mdio_soc_data { + bool manual_mode; +}; + +struct k3_ring_state { + u32 free; + u32 occ; + u32 windex; + u32 rindex; + u32 tdown_complete: 1; +}; + +struct k3_ring_rt_regs; + +struct k3_ring_fifo_regs; + +struct k3_ringacc_proxy_target_regs; + +struct k3_ring_ops; + +struct k3_ringacc; + +struct k3_ring { + struct k3_ring_rt_regs *rt; + struct k3_ring_fifo_regs *fifos; + struct k3_ringacc_proxy_target_regs *proxy; + dma_addr_t ring_mem_dma; + void *ring_mem_virt; + const struct k3_ring_ops *ops; + u32 size; + enum k3_ring_size elm_size; + enum k3_ring_mode mode; + u32 flags; + struct k3_ring_state state; + u32 ring_id; + struct k3_ringacc *parent; + u32 use_count; + int proxy_id; + struct device *dma_dev; + u32 asel; +}; + +struct k3_ring_cfg { + u32 size; + enum k3_ring_size elm_size; + enum k3_ring_mode mode; + u32 flags; + struct device *dma_dev; + u32 asel; +}; + +struct k3_ring_fifo_regs { + u32 head_data[128]; + u32 tail_data[128]; + u32 peek_head_data[128]; + u32 peek_tail_data[128]; +}; + +struct k3_ring_ops { + int (*push_tail)(struct k3_ring *, void *); + int (*push_head)(struct k3_ring *, void *); + int (*pop_tail)(struct k3_ring *, void *); + int (*pop_head)(struct k3_ring *, void *); +}; + +struct k3_ring_rt_regs { + u32 resv_16[4]; + u32 db; + u32 resv_4[1]; + u32 occ; + u32 indx; + u32 hwocc; + u32 hwindx; +}; + +struct k3_ringacc_proxy_gcfg_regs; + +struct ti_sci_resource; + +struct ti_sci_handle; + +struct ti_sci_rm_ringacc_ops; + +struct k3_ringacc_ops; + +struct k3_ringacc { + struct device *dev; + struct k3_ringacc_proxy_gcfg_regs *proxy_gcfg; + void *proxy_target_base; + u32 num_rings; + long unsigned int *rings_inuse; + struct ti_sci_resource *rm_gp_range; + bool dma_ring_reset_quirk; + u32 num_proxies; + long unsigned int *proxy_inuse; + struct k3_ring *rings; + struct list_head list; + struct mutex req_lock; + const struct ti_sci_handle *tisci; + const struct ti_sci_rm_ringacc_ops *tisci_ring_ops; + u32 tisci_dev_id; + const struct k3_ringacc_ops *ops; + bool dma_rings; +}; + +struct k3_ringacc_init_data { + const struct ti_sci_handle *tisci; + u32 tisci_dev_id; + u32 num_rings; +}; + +struct k3_ringacc_ops { + int (*init)(struct platform_device *, struct k3_ringacc *); +}; + +struct k3_ringacc_proxy_gcfg_regs { + u32 revision; + u32 config; +}; + +struct k3_ringacc_proxy_target_regs { + u32 control; + u32 status; + u8 resv_512[504]; + u32 data[128]; +}; + +struct k3_ringacc_soc_data { + unsigned int dma_ring_reset_quirk: 1; +}; + +struct k3_soc_id { + unsigned int id; + const char *family_name; +}; + +struct udma_dev; + +struct udma_tisci_rm; + +struct psil_endpoint_config; + +struct k3_udma_glue_common { + struct device *dev; + struct device chan_dev; + struct udma_dev *udmax; + const struct udma_tisci_rm *tisci_rm; + struct k3_ringacc *ringacc; + u32 src_thread; + u32 dst_thread; + u32 hdesc_size; + bool epib; + u32 psdata_size; + u32 swdata_size; + u32 atype_asel; + struct psil_endpoint_config *ep_config; +}; + +struct udma_rchan; + +struct k3_udma_glue_rx_flow; + +struct k3_udma_glue_rx_channel { + struct k3_udma_glue_common common; + struct udma_rchan *udma_rchanx; + int udma_rchan_id; + bool remote; + bool psil_paired; + u32 swdata_size; + int flow_id_base; + struct k3_udma_glue_rx_flow *flows; + u32 flow_num; + u32 flows_ready; + bool single_fdq; +}; + +struct k3_udma_glue_rx_flow_cfg; + +struct k3_udma_glue_rx_channel_cfg { + u32 swdata_size; + int flow_id_base; + int flow_id_num; + bool flow_id_use_rxchan_id; + bool remote; + struct k3_udma_glue_rx_flow_cfg *def_flow_cfg; +}; + +struct udma_rflow; + +struct k3_udma_glue_rx_flow { + struct udma_rflow *udma_rflow; + int udma_rflow_id; + struct k3_ring *ringrx; + struct k3_ring *ringrxfdq; + int virq; +}; + +struct k3_udma_glue_rx_flow_cfg { + struct k3_ring_cfg rx_cfg; + struct k3_ring_cfg rxfdq_cfg; + int ring_rxq_id; + int ring_rxfdq0_id; + bool rx_error_handling; + int src_tag_lo_sel; +}; + +struct udma_tchan; + +struct k3_udma_glue_tx_channel { + struct k3_udma_glue_common common; + struct udma_tchan *udma_tchanx; + int udma_tchan_id; + struct k3_ring *ringtx; + struct k3_ring *ringtxcq; + bool psil_paired; + int virq; + atomic_t free_pkts; + bool tx_pause_on_err; + bool tx_filt_einfo; + bool tx_filt_pswords; + bool tx_supr_tdpkt; + int udma_tflow_id; +}; + +struct k3_udma_glue_tx_channel_cfg { + struct k3_ring_cfg tx_cfg; + struct k3_ring_cfg txcq_cfg; + bool tx_pause_on_err; + bool tx_filt_einfo; + bool tx_filt_pswords; + bool tx_supr_tdpkt; + u32 swdata_size; +}; + +struct k_itimer; + +struct k_clock { + int (*clock_getres)(const clockid_t, struct timespec64 *); + int (*clock_set)(const clockid_t, const struct timespec64 *); + int (*clock_get_timespec)(const clockid_t, struct timespec64 *); + ktime_t (*clock_get_ktime)(const clockid_t); + int (*clock_adj)(const clockid_t, struct __kernel_timex *); + int (*timer_create)(struct k_itimer *); + int (*nsleep)(const clockid_t, int, const struct timespec64 *); + int (*timer_set)(struct k_itimer *, int, struct itimerspec64 *, struct itimerspec64 *); + int (*timer_del)(struct k_itimer *); + void (*timer_get)(struct k_itimer *, struct itimerspec64 *); + void (*timer_rearm)(struct k_itimer *); + s64 (*timer_forward)(struct k_itimer *, ktime_t); + ktime_t (*timer_remaining)(struct k_itimer *, ktime_t); + int (*timer_try_to_cancel)(struct k_itimer *); + void (*timer_arm)(struct k_itimer *, ktime_t, bool, bool); + void (*timer_wait_running)(struct k_itimer *); +}; + +struct kernel_siginfo { + struct { + int si_signo; + int si_errno; + int si_code; + union __sifields _sifields; + }; +}; + +struct sigqueue { + struct list_head list; + int flags; + kernel_siginfo_t info; + struct ucounts *ucounts; +}; + +struct signal_struct; + +struct k_itimer { + struct hlist_node list; + struct hlist_node ignored_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_status; + bool it_sig_periodic; + s64 it_overrun; + s64 it_overrun_last; + unsigned int it_signal_seq; + unsigned int it_sigqueue_seq; + int it_sigev_notify; + enum pid_type it_pid_type; + ktime_t it_interval; + struct signal_struct *it_signal; + union { + struct pid *it_pid; + struct task_struct *it_process; + }; + struct sigqueue sigq; + rcuref_t rcuref; + union { + struct { + struct hrtimer timer; + } real; + struct cpu_timer cpu; + struct { + struct alarm alarmtimer; + } alarm; + } it; + struct callback_head rcu; +}; + +typedef void __signalfn_t(int); + +typedef __signalfn_t *__sighandler_t; + +typedef void __restorefn_t(void); + +typedef __restorefn_t *__sigrestore_t; + +struct sigaction { + __sighandler_t sa_handler; + long unsigned int sa_flags; + __sigrestore_t sa_restorer; + sigset_t sa_mask; +}; + +struct k_sigaction { + struct sigaction sa; +}; + +struct kallsym_iter { + loff_t pos; + loff_t pos_mod_end; + loff_t pos_ftrace_mod_end; + loff_t pos_bpf_end; + long unsigned int value; + unsigned int nameoff; + char type; + char name[512]; + char module_name[56]; + int exported; + int show_value; +}; + +struct kallsyms_data { + long unsigned int *addrs; + const char **syms; + size_t cnt; + size_t found; +}; + +struct karatsuba_ctx { + struct karatsuba_ctx *next; + mpi_ptr_t tspace; + mpi_size_t tspace_size; + mpi_ptr_t tp; + mpi_size_t tp_size; +}; + +struct led_classdev; + +struct led_hw_trigger_type; + +struct led_trigger { + const char *name; + int (*activate)(struct led_classdev *); + void (*deactivate)(struct led_classdev *); + enum led_brightness brightness; + 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 kbd_led_trigger { + struct led_trigger trigger; + unsigned int mask; +}; + +struct kbd_repeat { + int delay; + int period; +}; + +struct kbd_struct { + unsigned char lockstate; + unsigned char slockstate; + unsigned char ledmode: 1; + unsigned char ledflagstate: 4; + char: 3; + unsigned char default_ledflagstate: 4; + unsigned char kbdmode: 3; + int: 1; + unsigned char modeflags: 5; +}; + +struct kbdiacr { + unsigned char diacr; + unsigned char base; + unsigned char result; +}; + +struct kbdiacrs { + unsigned int kb_cnt; + struct kbdiacr kbdiacr[256]; +}; + +struct kbdiacruc { + unsigned int diacr; + unsigned int base; + unsigned int result; +}; + +struct kbdiacrsuc { + unsigned int kb_cnt; + struct kbdiacruc kbdiacruc[256]; +}; + +struct kbentry { + unsigned char kb_table; + unsigned char kb_index; + short unsigned int kb_value; +}; + +struct kbkeycode { + unsigned int scancode; + unsigned int keycode; +}; + +struct kbsentry { + unsigned char kb_func; + unsigned char kb_string[512]; +}; + +struct kcmp_epoll_slot { + __u32 efd; + __u32 tfd; + __u32 toff; +}; + +typedef void (*dm_kcopyd_notify_fn)(int, long unsigned int, void *); + +struct kcopyd_job { + struct dm_kcopyd_client *kc; + struct list_head list; + unsigned int flags; + int read_err; + long unsigned int 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 kcore_list { + struct list_head list; + long unsigned int addr; + size_t size; + int type; +}; + +struct kcsan_scoped_access {}; + +struct kdb_macro { + kdbtab_t cmd; + struct list_head statements; +}; + +struct kdb_macro_statement { + char *statement; + struct list_head list_node; +}; + +struct tcp6_ao_context { + struct in6_addr saddr; + struct in6_addr daddr; + __be16 sport; + __be16 dport; + __be32 sisn; + __be32 disn; +}; + +struct kdf_input_block { + u8 counter; + u8 label[6]; + struct tcp6_ao_context ctx; + __be16 outlen; +} __attribute__((packed)); + +struct tcp4_ao_context { + __be32 saddr; + __be32 daddr; + __be16 sport; + __be16 dport; + __be32 sisn; + __be32 disn; +}; + +struct kdf_input_block___2 { + u8 counter; + u8 label[6]; + struct tcp4_ao_context ctx; + __be16 outlen; +} __attribute__((packed)); + +struct kdf_testvec { + unsigned char *key; + size_t keylen; + unsigned char *ikm; + size_t ikmlen; + struct kvec info; + unsigned char *expected; + size_t expectedlen; +}; + +struct keembay_pcie { + struct dw_pcie pci; + void *apb_base; + enum dw_pcie_device_mode mode; + struct clk *clk_master; + struct clk *clk_aux; + struct gpio_desc *reset; +}; + +struct keembay_pcie_of_data { + enum dw_pcie_device_mode mode; +}; + +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; + long unsigned int seq; + void *security; + struct rhash_head khtnode; + struct callback_head rcu; + refcount_t refcount; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct kernel_clone_args { + u64 flags; + int *pidfd; + int *child_tid; + int *parent_tid; + const char *name; + int exit_signal; + u32 kthread: 1; + u32 io_thread: 1; + u32 user_worker: 1; + u32 no_files: 1; + long unsigned int stack; + long unsigned int stack_size; + long unsigned int tls; + pid_t *set_tid; + size_t set_tid_size; + int cgroup; + int idle; + int (*fn)(void *); + void *fn_arg; + struct cgroup *cgrp; + struct css_set *cset; + unsigned int kill_seq; +}; + +struct kernel_cpustat { + u64 cpustat[11]; +}; + +struct kernel_ethtool_ringparam { + u32 rx_buf_len; + u8 tcp_data_split; + u8 tx_push; + u8 rx_push; + u32 cqe_size; + u32 tx_push_buf_len; + u32 tx_push_buf_max_len; + u32 hds_thresh; + u32 hds_thresh_max; +}; + +struct kernel_ethtool_ts_info { + u32 cmd; + u32 so_timestamping; + int phc_index; + enum hwtstamp_provider_qualifier phc_qualifier; + enum hwtstamp_tx_types tx_types; + enum hwtstamp_rx_filters rx_filters; +}; + +struct kernel_hwtstamp_config { + int flags; + int tx_type; + int rx_filter; + struct ifreq *ifr; + bool copied_to_user; + enum hwtstamp_source source; + enum hwtstamp_provider_qualifier qualifier; +}; + +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 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 kernel_stat { + long unsigned int irqs_sum; + unsigned int softirqs[10]; +}; + +struct kernel_symbol { + int value_offset; + int name_offset; + int namespace_offset; +}; + +struct kernfs_open_node; + +struct kernfs_elem_attr { + const struct kernfs_ops *ops; + struct kernfs_open_node *open; + loff_t size; + struct kernfs_node *notify_next; +}; + +struct kernfs_elem_dir { + long unsigned int subdirs; + struct rb_root children; + struct kernfs_root *root; + long unsigned int rev; +}; + +struct kernfs_elem_symlink { + struct kernfs_node *target_kn; +}; + +struct kernfs_global_locks { + struct mutex open_file_mutex[1024]; +}; + +struct simple_xattrs { + struct rb_root rb_root; + rwlock_t lock; +}; + +struct kernfs_iattrs { + kuid_t ia_uid; + kgid_t ia_gid; + struct timespec64 ia_atime; + struct timespec64 ia_mtime; + struct timespec64 ia_ctime; + struct simple_xattrs xattrs; + atomic_t nr_user_xattrs; + atomic_t user_xattr_size; +}; + +struct kernfs_node { + atomic_t count; + atomic_t active; + struct kernfs_node *parent; + const char *name; + struct rb_node rb; + const void *ns; + unsigned int hash; + short unsigned int flags; + umode_t mode; + union { + struct kernfs_elem_dir dir; + struct kernfs_elem_symlink symlink; + struct kernfs_elem_attr attr; + }; + u64 id; + void *priv; + struct kernfs_iattrs *iattr; + struct callback_head rcu; +}; + +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 kernfs_ops { + int (*open)(struct kernfs_open_file *); + void (*release)(struct kernfs_open_file *); + int (*seq_show)(struct seq_file *, void *); + void * (*seq_start)(struct seq_file *, loff_t *); + void * (*seq_next)(struct seq_file *, void *, loff_t *); + void (*seq_stop)(struct seq_file *, void *); + ssize_t (*read)(struct kernfs_open_file *, char *, size_t, loff_t); + size_t atomic_write_len; + bool prealloc; + ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t); + __poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *); + int (*mmap)(struct kernfs_open_file *, struct vm_area_struct *); + loff_t (*llseek)(struct kernfs_open_file *, loff_t, int); +}; + +struct kernfs_syscall_ops; + +struct kernfs_root { + struct kernfs_node *kn; + unsigned int flags; + struct idr ino_idr; + u32 last_id_lowbits; + u32 id_highbits; + struct kernfs_syscall_ops *syscall_ops; + struct list_head supers; + wait_queue_head_t deactivate_waitq; + struct rw_semaphore kernfs_rwsem; + struct rw_semaphore kernfs_iattr_rwsem; + struct rw_semaphore kernfs_supers_rwsem; + struct callback_head rcu; +}; + +struct kernfs_super_info { + struct super_block *sb; + struct kernfs_root *root; + const void *ns; + struct list_head node; +}; + +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 kimage; + +struct kexec_buf { + struct kimage *image; + void *buffer; + long unsigned int bufsz; + long unsigned int mem; + long unsigned int memsz; + long unsigned int buf_align; + long unsigned int buf_min; + long unsigned int buf_max; + bool top_down; +}; + +typedef int kexec_probe_t(const char *, long unsigned int); + +typedef void *kexec_load_t(struct kimage *, char *, long unsigned int, char *, long unsigned int, char *, long unsigned int); + +typedef int kexec_cleanup_t(void *); + +typedef int kexec_verify_sig_t(const char *, long unsigned int); + +struct kexec_file_ops { + kexec_probe_t *probe; + kexec_load_t *load; + kexec_cleanup_t *cleanup; + kexec_verify_sig_t *verify_sig; +}; + +struct kexec_load_limit { + struct mutex mutex; + int limit; +}; + +struct kexec_segment { + union { + void *buf; + void *kbuf; + }; + size_t bufsz; + long unsigned int mem; + size_t memsz; +}; + +struct kexec_sha_region { + long unsigned int start; + long unsigned int len; +}; + +struct key_type; + +struct key_tag; + +struct keyring_index_key { + long unsigned int hash; + union { + struct { + u16 desc_len; + char desc[6]; + }; + long unsigned int x; + }; + struct key_type *type; + struct key_tag *domain_tag; + const char *description; +}; + +union key_payload { + void *rcu_data0; + void *data[4]; +}; + +struct watch_list; + +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 watch_list *watchers; + 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; + short unsigned int quotalen; + short unsigned int datalen; + short int state; + long unsigned int flags; + union { + struct keyring_index_key index_key; + struct { + long unsigned int hash; + long unsigned int 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_match_data { + bool (*cmp)(const struct key *, const struct key_match_data *); + const void *raw_data; + void *preparsed; + unsigned int lookup_type; +}; + +struct watch_notification { + __u32 type: 24; + __u32 subtype: 8; + __u32 info; +}; + +struct key_notification { + struct watch_notification watch; + __u32 key_id; + __u32 aux; +}; + +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 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; +}; + +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; +}; + +struct key_security_struct { + u32 sid; +}; + +struct key_tag { + struct callback_head rcu; + refcount_t usage; + bool removed; +}; + +typedef int (*request_key_actor_t)(struct key *, void *); + +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 int (*read)(const struct key *, char *, size_t); + request_key_actor_t request_key; + struct key_restriction * (*lookup_restriction)(const char *); + int (*asym_query)(const struct kernel_pkey_params *, struct kernel_pkey_query *); + int (*asym_eds_op)(struct kernel_pkey_params *, const void *, void *); + int (*asym_verify_signature)(struct kernel_pkey_params *, const void *, const void *); + struct list_head link; + struct lock_class_key lock_class; +}; + +struct key_user { + struct rb_node node; + struct mutex cons_lock; + spinlock_t lock; + refcount_t usage; + atomic_t nkeys; + atomic_t nikeys; + kuid_t uid; + int qnkeys; + int qnbytes; +}; + +struct key_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 *tnode[0]; + }; + }; +}; + +struct keyboard_notifier_param { + struct vc_data *vc; + int down; + int shift; + int ledstate; + unsigned int value; +}; + +struct keyctl_dh_params { + union { + __s32 private; + __s32 priv; + }; + __s32 prime; + __s32 base; +}; + +struct keyctl_kdf_params { + char *hashname; + char *otherinfo; + __u32 otherinfolen; + __u32 __spare[8]; +}; + +struct keyctl_pkey_params { + __s32 key_id; + __u32 in_len; + union { + __u32 out_len; + __u32 in2_len; + }; + __u32 __spare[7]; +}; + +struct keyctl_pkey_query { + __u32 supported_ops; + __u32 key_size; + __u16 max_data_size; + __u16 max_sig_size; + __u16 max_enc_size; + __u16 max_dec_size; + __u32 __spare[10]; +}; + +struct keyring_read_iterator_context { + size_t buflen; + size_t count; + key_serial_t *buffer; +}; + +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 keystone_pcie { + struct dw_pcie *pci; + u32 device_id; + int intx_host_irqs[4]; + int msi_host_irq; + int num_lanes; + u32 num_viewport; + struct phy **phy; + struct device_link **link; + struct device_node *msi_intc_np; + struct irq_domain *intx_irq_domain; + struct device_node *np; + void *va_app_base; + struct resource app; + bool is_am6; +}; + +struct kfence_track { + pid_t pid; + int cpu; + u64 ts_nsec; + int num_stack_entries; + long unsigned int stack_entries[64]; +}; + +struct slabobj_ext { + struct obj_cgroup *objcg; +}; + +struct kfence_metadata { + struct list_head list; + struct callback_head callback_head; + raw_spinlock_t lock; + enum kfence_object_state state; + long unsigned int addr; + size_t size; + struct kmem_cache *cache; + long unsigned int unprotected_page; + struct kfence_track alloc_track; + struct kfence_track free_track; + u32 alloc_stack_hash; + struct slabobj_ext obj_exts; +}; + +struct rcu_gp_oldstate { + long unsigned int rgos_norm; + long unsigned int rgos_exp; +}; + +struct kfree_rcu_cpu; + +struct kfree_rcu_cpu_work { + struct rcu_work rcu_work; + struct callback_head *head_free; + struct rcu_gp_oldstate head_free_gp_snap; + struct list_head bulk_head_free[2]; + struct kfree_rcu_cpu *krcp; +}; + +struct kfree_rcu_cpu { + struct callback_head *head; + long unsigned int 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 kgdb_arch { + unsigned char gdb_bpt_instr[4]; + long unsigned int flags; + int (*set_breakpoint)(long unsigned int, char *); + int (*remove_breakpoint)(long unsigned int, char *); + int (*set_hw_breakpoint)(long unsigned int, int, enum kgdb_bptype); + int (*remove_hw_breakpoint)(long unsigned int, int, enum kgdb_bptype); + void (*disable_hw_break)(struct pt_regs *); + void (*remove_all_hw_break)(void); + void (*correct_hw_break)(void); + void (*enable_nmi)(bool); +}; + +struct kgdb_bkpt { + long unsigned int bpt_addr; + unsigned char saved_instr[4]; + enum kgdb_bptype type; + enum kgdb_bpstate state; +}; + +struct kgdb_io { + const char *name; + int (*read_char)(void); + void (*write_char)(u8); + void (*flush)(void); + int (*init)(void); + void (*deinit)(void); + void (*pre_exception)(void); + void (*post_exception)(void); + struct console *cons; +}; + +struct kgdb_nmi_tty_priv { + struct tty_port port; + struct timer_list timer; + struct { + union { + struct __kfifo kfifo; + char *type; + const char *const_type; + char (*rectype)[0]; + char *ptr; + const char *ptr_const; + }; + char buf[16]; + } fifo; +}; + +struct kgdb_state { + int ex_vector; + int signo; + int err_code; + int cpu; + int pass_exception; + long unsigned int thr_query; + long unsigned int threadid; + long int kgdb_usethreadid; + struct pt_regs *linux_regs; + atomic_t *send_ready; +}; + +struct mm_slot { + struct hlist_node hash; + struct list_head mm_node; + struct mm_struct *mm; +}; + +struct khugepaged_mm_slot { + struct mm_slot slot; +}; + +struct khugepaged_scan { + struct list_head mm_head; + struct khugepaged_mm_slot *mm_slot; + long unsigned int address; +}; + +struct kimage_arch { + void *dtb; + phys_addr_t dtb_mem; + phys_addr_t kern_reloc; + phys_addr_t el2_vectors; + phys_addr_t ttbr0; + phys_addr_t ttbr1; + phys_addr_t zero_page; + long unsigned int phys_offset; + long unsigned int t0sz; +}; + +struct purgatory_info { + const Elf64_Ehdr *ehdr; + Elf64_Shdr *sechdrs; + void *purgatory_buf; +}; + +struct kimage { + kimage_entry_t head; + kimage_entry_t *entry; + kimage_entry_t *last_entry; + long unsigned int start; + struct page *control_code_page; + struct page *swap_page; + void *vmcoreinfo_data_copy; + long unsigned int nr_segments; + struct kexec_segment segment[16]; + struct list_head control_pages; + struct list_head dest_pages; + struct list_head unusable_pages; + long unsigned int control_page; + unsigned int type: 1; + unsigned int preserve_context: 1; + unsigned int file_mode: 1; + struct kimage_arch arch; + void *kernel_buf; + long unsigned int kernel_buf_len; + void *initrd_buf; + long unsigned int initrd_buf_len; + char *cmdline_buf; + long unsigned int cmdline_buf_len; + const struct kexec_file_ops *fops; + void *image_loader_data; + struct purgatory_info purgatory_info; + void *ima_buffer; + phys_addr_t ima_buffer_addr; + size_t ima_buffer_size; + void *elf_headers; + long unsigned int elf_headers_sz; + long unsigned int elf_load_addr; +}; + +struct kioctx_cpu; + +struct kioctx { + struct percpu_ref users; + atomic_t dead; + struct percpu_ref reqs; + long unsigned int user_id; + struct kioctx_cpu *cpu; + unsigned int req_batch; + unsigned int max_reqs; + unsigned int nr_events; + long unsigned int mmap_base; + long unsigned int mmap_size; + struct folio **ring_folios; + long int nr_pages; + struct rcu_work free_rwork; + struct ctx_rq_wait *rq_wait; + long: 64; + long: 64; + long: 64; + struct { + atomic_t reqs_available; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct { + spinlock_t ctx_lock; + struct list_head active_reqs; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct { + struct mutex ring_lock; + wait_queue_head_t wait; + long: 64; + }; + struct { + unsigned int tail; + unsigned int completed_events; + spinlock_t completion_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct folio *internal_folios[8]; + struct file *aio_ring_file; + unsigned int id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct kioctx_cpu { + unsigned int reqs_available; +}; + +struct kioctx_table { + struct callback_head rcu; + unsigned int nr; + struct kioctx *table[0]; +}; + +struct kirin_pcie { + enum pcie_kirin_phy_type type; + struct dw_pcie *pci; + struct regmap *apb; + struct phy *phy; + void *phy_priv; + struct gpio_desc *id_dwc_perst_gpio; + int num_slots; + struct gpio_desc *id_reset_gpio[3]; + const char *reset_names[3]; + int n_gpio_clkreq; + struct gpio_desc *id_clkreq_gpio[3]; + const char *clkreq_names[3]; +}; + +struct kirin_pcie_data { + enum pcie_kirin_phy_type phy_type; +}; + +struct klist_waiter { + struct list_head list; + struct klist_node *node; + struct task_struct *process; + int woken; +}; + +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 kmalloc_info_struct { + const char *name[19]; + unsigned int size; +}; + +struct kmalloced_param { + struct list_head list; + char val[0]; +}; + +struct kmap_ctrl {}; + +typedef struct kmem_cache *kmem_buckets[14]; + +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 *cpu_slab; + slab_flags_t flags; + long unsigned int 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; + long unsigned int random; + unsigned int remote_node_defrag_ratio; + unsigned int *random_seq; + unsigned int useroffset; + unsigned int usersize; + struct kmem_cache_node *node[64]; +}; + +struct kmem_cache_args { + unsigned int align; + unsigned int useroffset; + unsigned int usersize; + unsigned int freeptr_offset; + bool use_freeptr_offset; + void (*ctor)(void *); +}; + +struct kmem_cache_cpu { + union { + struct { + void **freelist; + long unsigned int tid; + }; + freelist_aba_t freelist_tid; + }; + struct slab *slab; + struct slab *partial; + local_lock_t lock; +}; + +union kmem_cache_iter_priv { + struct bpf_iter_kmem_cache it; + struct bpf_iter_kmem_cache_kern kit; +}; + +struct kmem_cache_node { + spinlock_t list_lock; + long unsigned int nr_partial; + struct list_head partial; + atomic_long_t nr_slabs; + atomic_long_t total_objects; + struct list_head full; +}; + +struct kmem_obj_info { + void *kp_ptr; + struct slab *kp_slab; + void *kp_objp; + long unsigned int kp_data_offset; + struct kmem_cache *kp_slab_cache; + void *kp_ret; + void *kp_stack[16]; + void *kp_free_stack[16]; +}; + +struct kmsg_dump_detail { + enum kmsg_dump_reason reason; + const char *description; +}; + +struct kmsg_dump_iter { + u64 cur_seq; + u64 next_seq; +}; + +struct probe; + +struct kobj_map { + struct probe *probes[255]; + struct mutex *lock; +}; + +struct kobj_ns_type_operations { + enum kobj_ns_type type; + bool (*current_may_mount)(void); + void * (*grab_current_ns)(void); + const void * (*netlink_ns)(struct sock *); + const void * (*initial_ns)(void); + void (*drop_ns)(void *); +}; + +struct kparam_array { + unsigned int max; + unsigned int elemsize; + unsigned int *num; + const struct kernel_param_ops *ops; + void *elem; +}; + +struct kparam_string { + unsigned int maxlen; + char *string; +}; + +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_instance { + void (*free)(struct kpp_instance *); + union { + struct { + char head[48]; + struct crypto_instance base; + } s; + struct kpp_alg alg; + }; +}; + +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_secret { + short unsigned int type; + short unsigned int len; +}; + +struct kprobe; + +typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *); + +typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, long unsigned int); + +struct kprobe { + struct hlist_node hlist; + struct list_head list; + long unsigned int 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 kprobe_blacklist_entry { + struct list_head list; + long unsigned int start_addr; + long unsigned int end_addr; +}; + +struct prev_kprobe { + struct kprobe *kp; + unsigned int status; +}; + +struct kprobe_ctlblk { + unsigned int kprobe_status; + long unsigned int saved_irqflag; + struct prev_kprobe prev_kprobe; +}; + +struct kprobe_insn_cache { + struct mutex mutex; + void * (*alloc)(void); + void (*free)(void *); + const char *sym; + struct list_head pages; + size_t insn_size; + int nr_garbage; +}; + +struct kprobe_insn_page { + struct list_head list; + kprobe_opcode_t *insns; + struct kprobe_insn_cache *cache; + int nused; + int ngarbage; + char slot_used[0]; +}; + +struct kprobe_trace_entry_head { + struct trace_entry ent; + long unsigned int ip; +}; + +struct kretprobe_instance; + +typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *); + +struct kretprobe_holder; + +struct kretprobe { + struct kprobe kp; + kretprobe_handler_t handler; + kretprobe_handler_t entry_handler; + int maxactive; + int nmissed; + size_t data_size; + struct kretprobe_holder *rph; +}; + +struct objpool_head; + +typedef int (*objpool_fini_cb)(struct objpool_head *, void *); + +struct objpool_slot; + +struct objpool_head { + int obj_size; + int nr_objs; + int nr_possible_cpus; + int capacity; + gfp_t gfp; + refcount_t ref; + long unsigned int flags; + struct objpool_slot **cpu_slots; + objpool_fini_cb release; + void *context; +}; + +struct kretprobe_holder { + struct kretprobe *rp; + struct objpool_head pool; +}; + +struct kretprobe_instance { + struct callback_head rcu; + struct llist_node llist; + struct kretprobe_holder *rph; + kprobe_opcode_t *ret_addr; + void *fp; + char data[0]; +}; + +struct kretprobe_trace_entry_head { + struct trace_entry ent; + long unsigned int func; + long unsigned int ret_ip; +}; + +struct ks_pcie_of_data { + enum dw_pcie_device_mode mode; + const struct dw_pcie_host_ops *host_ops; + const struct dw_pcie_ep_ops *ep_ops; + u32 version; +}; + +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 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 ksignal { + struct k_sigaction ka; + kernel_siginfo_t info; + int sig; +}; + +struct ksm_rmap_item; + +struct ksm_mm_slot { + struct mm_slot slot; + struct ksm_rmap_item *rmap_list; +}; + +struct ksm_stable_node; + +struct ksm_rmap_item { + struct ksm_rmap_item *rmap_list; + union { + struct anon_vma *anon_vma; + int nid; + }; + struct mm_struct *mm; + long unsigned int address; + unsigned int oldchecksum; + rmap_age_t age; + rmap_age_t remaining_skips; + union { + struct rb_node node; + struct { + struct ksm_stable_node *head; + struct hlist_node hlist; + }; + }; +}; + +struct ksm_scan { + struct ksm_mm_slot *mm_slot; + long unsigned int address; + struct ksm_rmap_item **rmap_list; + long unsigned int seqnr; +}; + +struct ksm_stable_node { + union { + struct rb_node node; + struct { + struct list_head *head; + struct { + struct hlist_node hlist_dup; + struct list_head list; + }; + }; + }; + struct hlist_head hlist; + union { + long unsigned int kpfn; + long unsigned int chain_prune_time; + }; + int rmap_hlist_len; + int nid; +}; + +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; + u64 change_cookie; + u64 subvol; + u32 dio_mem_align; + u32 dio_offset_align; + u32 dio_read_offset_align; + u32 atomic_write_unit_min; + u32 atomic_write_unit_max; + u32 atomic_write_segments_max; +}; + +struct kstatfs { + long int f_type; + long int f_bsize; + u64 f_blocks; + u64 f_bfree; + u64 f_bavail; + u64 f_files; + u64 f_ffree; + __kernel_fsid_t f_fsid; + long int f_namelen; + long int f_frsize; + long int f_flags; + long int f_spare[4]; +}; + +struct statmount { + __u32 size; + __u32 mnt_opts; + __u64 mask; + __u32 sb_dev_major; + __u32 sb_dev_minor; + __u64 sb_magic; + __u32 sb_flags; + __u32 fs_type; + __u64 mnt_id; + __u64 mnt_parent_id; + __u32 mnt_id_old; + __u32 mnt_parent_id_old; + __u64 mnt_attr; + __u64 mnt_propagation; + __u64 mnt_peer_group; + __u64 mnt_master; + __u64 propagate_from; + __u32 mnt_root; + __u32 mnt_point; + __u64 mnt_ns_id; + __u32 fs_subtype; + __u32 sb_source; + __u32 opt_num; + __u32 opt_array; + __u32 opt_sec_num; + __u32 opt_sec_array; + __u64 __spare2[46]; + char str[0]; +}; + +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 kstatmount { + struct statmount *buf; + size_t bufsize; + struct vfsmount *mnt; + u64 mask; + struct path root; + struct statmount sm; + struct seq_file seq; +}; + +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 kthread { + long unsigned int flags; + unsigned int cpu; + unsigned int node; + int started; + int result; + int (*threadfn)(void *); + void *data; + struct completion parked; + struct completion exited; + struct cgroup_subsys_state *blkcg_css; + char *full_name; + struct task_struct *task; + struct list_head hotplug_node; + struct cpumask *preferred_affinity; +}; + +struct kthread_create_info { + char *full_name; + int (*threadfn)(void *); + void *data; + int node; + struct task_struct *result; + struct completion *done; + struct list_head list; +}; + +struct kthread_delayed_work { + struct kthread_work work; + struct timer_list timer; +}; + +struct kthread_flush_work { + struct kthread_work work; + struct completion done; +}; + +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 bool (*stack_trace_consume_fn)(void *, long unsigned int); + +struct kunwind_consume_entry_data { + stack_trace_consume_fn consume_entry; + void *cookie; +}; + +struct stack_info { + long unsigned int low; + long unsigned int high; +}; + +struct unwind_state { + long unsigned int fp; + long unsigned int pc; + struct stack_info stack; + struct stack_info *stacks; + int nr_stacks; +}; + +union unwind_flags { + long unsigned int all; + struct { + long unsigned int fgraph: 1; + long unsigned int kretprobe: 1; + }; +}; + +struct kunwind_state { + struct unwind_state common; + struct task_struct *task; + int graph_idx; + struct llist_node *kr_cur; + enum kunwind_source source; + union unwind_flags flags; + struct pt_regs *regs; +}; + +struct kvfree_rcu_bulk_data { + struct list_head list; + struct rcu_gp_oldstate gp_snap; + long unsigned int nr_records; + void *records[0]; +}; + +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; +}; + +struct kvm_io_bus; + +struct kvm_coalesced_mmio_ring; + +struct kvm_irq_routing_table; + +struct kvm_stat_data; + +struct kvm { + rwlock_t mmu_lock; + struct mutex slots_lock; + struct mutex slots_arch_lock; + struct mm_struct *mm; + long unsigned int nr_memslot_pages; + struct kvm_memslots __memslots[2]; + struct kvm_memslots *memslots[1]; + struct xarray vcpu_array; + atomic_t nr_memslots_dirty_logging; + spinlock_t mn_invalidate_lock; + long unsigned int 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 *buses[5]; + struct { + spinlock_t lock; + struct list_head items; + struct list_head resampler_list; + struct mutex resampler_lock; + } irqfds; + struct list_head ioeventfds; + struct kvm_vm_stat stat; + struct kvm_arch arch; + refcount_t users_count; + struct kvm_coalesced_mmio_ring *coalesced_mmio_ring; + spinlock_t ring_lock; + struct list_head coalesced_zones; + struct mutex irq_lock; + struct kvm_irq_routing_table *irq_routing; + struct hlist_head irq_ack_notifier_list; + struct mmu_notifier mmu_notifier; + long unsigned int mmu_invalidate_seq; + long int mmu_invalidate_in_progress; + gfn_t mmu_invalidate_range_start; + gfn_t 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_arch_memory_slot {}; + +struct kvm_arm_copy_mte_tags { + __u64 guest_ipa; + __u64 length; + void *addr; + __u64 flags; + __u64 reserved[2]; +}; + +struct kvm_arm_counter_offset { + __u64 counter_offset; + __u64 reserved; +}; + +struct kvm_arm_device_addr { + __u64 id; + __u64 addr; +}; + +struct kvm_clear_dirty_log { + __u32 slot; + __u32 num_pages; + __u64 first_page; + union { + void *dirty_bitmap; + __u64 padding2; + }; +}; + +struct kvm_coalesced_mmio { + __u64 phys_addr; + __u32 len; + union { + __u32 pad; + __u32 pio; + }; + __u8 data[8]; +}; + +struct kvm_coalesced_mmio_zone { + __u64 addr; + __u32 size; + union { + __u32 pad; + __u32 pio; + }; +}; + +struct kvm_coalesced_mmio_dev { + struct list_head list; + struct kvm_io_device dev; + struct kvm *kvm; + struct kvm_coalesced_mmio_zone zone; +}; + +struct kvm_coalesced_mmio_ring { + __u32 first; + __u32 last; + struct kvm_coalesced_mmio coalesced_mmio[0]; +}; + +struct user_fpsimd_state { + __int128 unsigned vregs[32]; + __u32 fpsr; + __u32 fpcr; + __u32 __reserved[2]; +}; + +struct kvm_cpu_context { + struct user_pt_regs regs; + u64 spsr_abt; + u64 spsr_und; + u64 spsr_irq; + u64 spsr_fiq; + struct user_fpsimd_state fp_regs; + u64 sys_regs[286]; + struct kvm_vcpu *__hyp_running_vcpu; + u64 *vncr_array; +}; + +struct kvm_create_device { + __u32 type; + __u32 fd; + __u32 flags; +}; + +struct kvm_debug_exit_arch { + __u32 hsr; + __u32 hsr_high; + __u64 far; +}; + +struct kvm_device_ops; + +struct kvm_device { + const struct kvm_device_ops *ops; + struct kvm *kvm; + void *private; + struct list_head vm_node; +}; + +struct kvm_device_attr { + __u32 flags; + __u32 group; + __u64 attr; + __u64 addr; +}; + +struct kvm_device_ops { + const char *name; + int (*create)(struct kvm_device *, u32); + void (*init)(struct kvm_device *); + void (*destroy)(struct kvm_device *); + void (*release)(struct kvm_device *); + int (*set_attr)(struct kvm_device *, struct kvm_device_attr *); + int (*get_attr)(struct kvm_device *, struct kvm_device_attr *); + int (*has_attr)(struct kvm_device *, struct kvm_device_attr *); + long int (*ioctl)(struct kvm_device *, unsigned int, long unsigned int); + int (*mmap)(struct kvm_device *, struct vm_area_struct *); +}; + +struct kvm_dirty_gfn { + __u32 flags; + __u32 slot; + __u64 offset; +}; + +struct kvm_dirty_log { + __u32 slot; + __u32 padding1; + union { + void *dirty_bitmap; + __u64 padding2; + }; +}; + +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_enable_cap { + __u32 cap; + __u32 flags; + __u64 args[4]; + __u8 pad[64]; +}; + +struct kvm_exception_table_entry { + int insn; + int fixup; +}; + +struct kvm_ffa_buffers { + hyp_spinlock_t lock; + void *tx; + void *rx; +}; + +struct kvm_ffa_descriptor_buffer { + void *buf; + size_t len; +}; + +struct kvm_follow_pfn { + const struct kvm_memory_slot *slot; + const gfn_t gfn; + long unsigned int hva; + unsigned int flags; + bool pin; + bool *map_writable; + struct page **refcounted_page; +}; + +struct kvm_fpu {}; + +union kvm_mmu_notifier_arg { + long unsigned int attributes; +}; + +struct kvm_gfn_range { + struct kvm_memory_slot *slot; + gfn_t start; + gfn_t end; + union kvm_mmu_notifier_arg arg; + enum kvm_gfn_range_filter attr_filter; + bool may_block; +}; + +struct kvm_guest_debug_arch { + __u64 dbg_bcr[16]; + __u64 dbg_bvr[16]; + __u64 dbg_wcr[16]; + __u64 dbg_wvr[16]; +}; + +struct kvm_guest_debug { + __u32 control; + __u32 pad; + struct kvm_guest_debug_arch arch; +}; + +struct kvm_host_data { + long unsigned int flags; + long: 64; + struct kvm_cpu_context host_ctxt; + struct cpu_sve_state *sve_state; + u64 fpmr; + enum { + FP_STATE_FREE = 0, + FP_STATE_HOST_OWNED = 1, + FP_STATE_GUEST_OWNED = 2, + } fp_owner; + struct { + struct kvm_guest_debug_arch regs; + u64 pmscr_el1; + u64 trfcr_el1; + u64 mdcr_el2; + } host_debug_state; + u64 trfcr_while_in_guest; + unsigned int nr_event_counters; + unsigned int debug_brps; + unsigned int debug_wrps; + long: 64; +}; + +struct kvm_host_map { + struct page *pinned_page; + struct page *page; + void *hva; + kvm_pfn_t pfn; + kvm_pfn_t gfn; + bool writable; +}; + +struct psci_0_1_function_ids { + u32 cpu_suspend; + u32 cpu_on; + u32 cpu_off; + u32 migrate; +}; + +struct kvm_host_psci_config { + u32 version; + u32 smccc_version; + struct psci_0_1_function_ids function_ids_0_1; + bool psci_0_1_cpu_suspend_implemented; + bool psci_0_1_cpu_on_implemented; + bool psci_0_1_cpu_off_implemented; + bool psci_0_1_migrate_implemented; +}; + +struct kvm_hv_sint { + u32 vcpu; + u32 sint; +}; + +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_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_io_device_ops { + int (*read)(struct kvm_vcpu *, struct kvm_io_device *, gpa_t, int, void *); + int (*write)(struct kvm_vcpu *, struct kvm_io_device *, gpa_t, int, const void *); + void (*destructor)(struct kvm_io_device *); +}; + +struct kvm_ioeventfd { + __u64 datamatch; + __u64 addr; + __u32 len; + __s32 fd; + __u32 flags; + __u8 pad[36]; +}; + +struct kvm_irq_ack_notifier { + struct hlist_node link; + unsigned int gsi; + void (*irq_acked)(struct kvm_irq_ack_notifier *); +}; + +struct kvm_irq_level { + union { + __u32 irq; + __s32 status; + }; + __u32 level; +}; + +struct kvm_irq_routing_irqchip { + __u32 irqchip; + __u32 pin; +}; + +struct kvm_irq_routing_msi { + __u32 address_lo; + __u32 address_hi; + __u32 data; + union { + __u32 pad; + __u32 devid; + }; +}; + +struct kvm_irq_routing_s390_adapter { + __u64 ind_addr; + __u64 summary_addr; + __u64 ind_offset; + __u32 summary_offset; + __u32 adapter_id; +}; + +struct kvm_irq_routing_hv_sint { + __u32 vcpu; + __u32 sint; +}; + +struct kvm_irq_routing_xen_evtchn { + __u32 port; + __u32 vcpu; + __u32 priority; +}; + +struct kvm_irq_routing_entry { + __u32 gsi; + __u32 type; + __u32 flags; + __u32 pad; + union { + struct kvm_irq_routing_irqchip irqchip; + struct kvm_irq_routing_msi msi; + struct kvm_irq_routing_s390_adapter adapter; + struct kvm_irq_routing_hv_sint hv_sint; + struct kvm_irq_routing_xen_evtchn xen_evtchn; + __u32 pad[8]; + } u; +}; + +struct kvm_irq_routing { + __u32 nr; + __u32 flags; + struct kvm_irq_routing_entry entries[0]; +}; + +struct kvm_irq_routing_table { + int chip[988]; + u32 nr_rt_entries; + struct hlist_head map[0]; +}; + +struct kvm_irqfd { + __u32 fd; + __u32 gsi; + __u32 flags; + __u32 resamplefd; + __u8 pad[16]; +}; + +struct kvm_s390_adapter_int { + u64 ind_addr; + u64 summary_addr; + u64 ind_offset; + u32 summary_offset; + u32 adapter_id; +}; + +struct kvm_xen_evtchn { + u32 port; + u32 vcpu_id; + int vcpu_idx; + u32 priority; +}; + +struct kvm_kernel_irq_routing_entry { + u32 gsi; + u32 type; + int (*set)(struct kvm_kernel_irq_routing_entry *, struct kvm *, int, int, bool); + union { + struct { + unsigned int irqchip; + unsigned int pin; + } irqchip; + struct { + u32 address_lo; + u32 address_hi; + u32 data; + u32 flags; + u32 devid; + } msi; + struct kvm_s390_adapter_int adapter; + struct kvm_hv_sint hv_sint; + struct kvm_xen_evtchn xen_evtchn; + }; + struct hlist_node link; +}; + +struct kvm_kernel_irqfd_resampler; + +struct kvm_kernel_irqfd { + struct kvm *kvm; + wait_queue_entry_t wait; + struct kvm_kernel_irq_routing_entry irq_entry; + seqcount_spinlock_t irq_entry_sc; + int gsi; + struct work_struct inject; + struct kvm_kernel_irqfd_resampler *resampler; + struct eventfd_ctx *resamplefd; + struct list_head resampler_link; + struct eventfd_ctx *eventfd; + struct list_head list; + poll_table pt; + struct work_struct shutdown; + struct irq_bypass_consumer consumer; + struct irq_bypass_producer *producer; +}; + +struct kvm_kernel_irqfd_resampler { + struct kvm *kvm; + struct list_head list; + struct kvm_irq_ack_notifier notifier; + struct list_head link; +}; + +struct kvm_mem_range { + u64 start; + u64 end; +}; + +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; + long unsigned int npages; + long unsigned int *dirty_bitmap; + struct kvm_arch_memory_slot arch; + long unsigned int userspace_addr; + u32 flags; + short int id; + u16 as_id; +}; + +struct kvm_memslot_iter { + struct kvm_memslots *slots; + struct rb_node *node; + struct kvm_memory_slot *slot; +}; + +struct kvm_mmio_fragment { + gpa_t gpa; + void *data; + unsigned int len; +}; + +typedef bool (*gfn_handler_t)(struct kvm *, struct kvm_gfn_range *); + +typedef void (*on_lock_fn_t)(struct kvm *); + +struct kvm_mmu_notifier_range { + u64 start; + u64 end; + union kvm_mmu_notifier_arg arg; + gfn_handler_t handler; + on_lock_fn_t on_lock; + bool flush_on_ret; + bool may_block; +}; + +struct kvm_mmu_notifier_return { + bool ret; + bool found_memslot; +}; + +typedef struct kvm_mmu_notifier_return kvm_mn_ret_t; + +struct kvm_mp_state { + __u32 mp_state; +}; + +struct kvm_mpidr_data { + u64 mpidr_mask; + struct { + struct {} __empty_cmpidr_to_idx; + u16 cmpidr_to_idx[0]; + }; +}; + +struct kvm_msi { + __u32 address_lo; + __u32 address_hi; + __u32 data; + __u32 flags; + __u32 devid; + __u8 pad[12]; +}; + +struct kvm_nvhe_init_params { + long unsigned int mair_el2; + long unsigned int tcr_el2; + long unsigned int tpidr_el2; + long unsigned int stack_hyp_va; + long unsigned int stack_pa; + phys_addr_t pgd_pa; + long unsigned int hcr_el2; + long unsigned int vttbr; + long unsigned int vtcr; + long unsigned int tmp; +}; + +struct kvm_nvhe_stacktrace_info { + long unsigned int stack_base; + long unsigned int overflow_stack_base; + long unsigned int fp; + long unsigned int pc; +}; + +struct kvm_one_reg { + __u64 id; + __u64 addr; +}; + +struct kvm_pgtable_visit_ctx { + kvm_pte_t *ptep; + kvm_pte_t old; + void *arg; + struct kvm_pgtable_mm_ops *mm_ops; + u64 start; + u64 addr; + u64 end; + s8 level; + enum kvm_pgtable_walk_flags flags; +}; + +struct kvm_pgtable_walker; + +struct kvm_pgtable_walk_data { + struct kvm_pgtable_walker *walker; + const u64 start; + u64 addr; + const u64 end; +}; + +typedef int (*kvm_pgtable_visitor_fn_t)(const struct kvm_pgtable_visit_ctx *, enum kvm_pgtable_walk_flags); + +struct kvm_pgtable_walker { + const kvm_pgtable_visitor_fn_t cb; + void * const arg; + const enum kvm_pgtable_walk_flags flags; +}; + +struct kvm_pmc { + u8 idx; + struct perf_event *perf_event; +}; + +struct kvm_pmu_events { + u64 events_host; + u64 events_guest; +}; + +struct kvm_pmu { + struct irq_work overflow_work; + struct kvm_pmu_events events; + struct kvm_pmc pmc[32]; + int irq_num; + bool created; + bool irq_level; +}; + +struct kvm_pmu_event_filter { + __u16 base_event; + __u16 nevents; + __u8 action; + __u8 pad[3]; +}; + +struct kvm_reg_list { + __u64 n; + __u64 reg[0]; +}; + +struct kvm_regs { + struct user_pt_regs regs; + __u64 sp_el1; + __u64 elr_el1; + __u64 spsr[5]; + long: 64; + struct user_fpsimd_state fp_regs; +}; + +struct kvm_xen_exit { + __u32 type; + union { + struct { + __u32 longmode; + __u32 cpl; + __u64 input; + __u64 result; + __u64 params[6]; + } hcall; + } u; +}; + +struct kvm_sync_regs { + __u64 device_irq_level; +}; + +struct kvm_run { + __u8 request_interrupt_window; + __u8 immediate_exit__unsafe; + __u8 padding1[6]; + __u32 exit_reason; + __u8 ready_for_interrupt_injection; + __u8 if_flag; + __u16 flags; + __u64 cr8; + __u64 apic_base; + union { + struct { + __u64 hardware_exit_reason; + } hw; + struct { + __u64 hardware_entry_failure_reason; + __u32 cpu; + } fail_entry; + struct { + __u32 exception; + __u32 error_code; + } ex; + struct { + __u8 direction; + __u8 size; + __u16 port; + __u32 count; + __u64 data_offset; + } io; + struct { + struct kvm_debug_exit_arch arch; + } debug; + struct { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } mmio; + struct { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } iocsr_io; + struct { + __u64 nr; + __u64 args[6]; + __u64 ret; + union { + __u64 flags; + }; + } hypercall; + struct { + __u64 rip; + __u32 is_write; + __u32 pad; + } tpr_access; + struct { + __u8 icptcode; + __u16 ipa; + __u32 ipb; + } s390_sieic; + __u64 s390_reset_flags; + struct { + __u64 trans_exc_code; + __u32 pgm_code; + } s390_ucontrol; + struct { + __u32 dcrn; + __u32 data; + __u8 is_write; + } dcr; + struct { + __u32 suberror; + __u32 ndata; + __u64 data[16]; + } internal; + struct { + __u32 suberror; + __u32 ndata; + __u64 flags; + union { + struct { + __u8 insn_size; + __u8 insn_bytes[15]; + }; + }; + } emulation_failure; + struct { + __u64 gprs[32]; + } osi; + struct { + __u64 nr; + __u64 ret; + __u64 args[9]; + } papr_hcall; + struct { + __u16 subchannel_id; + __u16 subchannel_nr; + __u32 io_int_parm; + __u32 io_int_word; + __u32 ipb; + __u8 dequeued; + } s390_tsch; + struct { + __u32 epr; + } epr; + struct { + __u32 type; + __u32 ndata; + union { + __u64 data[16]; + }; + } system_event; + struct { + __u64 addr; + __u8 ar; + __u8 reserved; + __u8 fc; + __u8 sel1; + __u16 sel2; + } s390_stsi; + struct { + __u8 vector; + } eoi; + struct kvm_hyperv_exit hyperv; + struct { + __u64 esr_iss; + __u64 fault_ipa; + } arm_nisv; + struct { + __u8 error; + __u8 pad[7]; + __u32 reason; + __u32 index; + __u64 data; + } msr; + struct kvm_xen_exit xen; + struct { + long unsigned int extension_id; + long unsigned int function_id; + long unsigned int args[6]; + long unsigned int ret[2]; + } riscv_sbi; + struct { + long unsigned int csr_num; + long unsigned int new_value; + long unsigned int write_mask; + long unsigned int ret_value; + } riscv_csr; + struct { + __u32 flags; + } notify; + struct { + __u64 flags; + __u64 gpa; + __u64 size; + } memory_fault; + char padding[256]; + }; + __u64 kvm_valid_regs; + __u64 kvm_dirty_regs; + union { + struct kvm_sync_regs regs; + char padding[2048]; + } s; +}; + +struct kvm_s2_trans { + phys_addr_t output; + long unsigned int block_size; + bool writable; + bool readable; + int level; + u32 esr; + u64 desc; +}; + +struct kvm_signal_mask { + __u32 len; + __u8 sigset[0]; +}; + +struct kvm_smccc_filter { + __u32 base; + __u32 nr_functions; + __u8 action; + __u8 pad[15]; +}; + +struct kvm_sregs {}; + +struct kvm_stat_data { + struct kvm *kvm; + const struct _kvm_stats_desc *desc; + enum kvm_stat_kind kind; +}; + +struct kvm_stats_header { + __u32 flags; + __u32 name_size; + __u32 num_desc; + __u32 id_offset; + __u32 desc_offset; + __u32 data_offset; +}; + +struct kvm_sysreg_masks { + struct { + u64 res0; + u64 res1; + } mask[156]; +}; + +struct kvm_translation { + __u64 linear_address; + __u64 physical_address; + __u8 valid; + __u8 writeable; + __u8 usermode; + __u8 pad[5]; +}; + +struct kvm_userspace_memory_region { + __u32 slot; + __u32 flags; + __u64 guest_phys_addr; + __u64 memory_size; + __u64 userspace_addr; +}; + +struct kvm_userspace_memory_region2 { + __u32 slot; + __u32 flags; + __u64 guest_phys_addr; + __u64 memory_size; + __u64 userspace_addr; + __u64 guest_memfd_offset; + __u32 guest_memfd; + __u32 pad1; + __u64 pad2[14]; +}; + +struct preempt_ops; + +struct preempt_notifier { + struct hlist_node link; + struct preempt_ops *ops; +}; + +struct kvm_vcpu_fault_info { + u64 esr_el2; + u64 far_el2; + u64 hpfar_el2; + u64 disr_el1; +}; + +struct vgic_v2_cpu_if { + u32 vgic_hcr; + u32 vgic_vmcr; + u32 vgic_apr; + u32 vgic_lr[64]; + unsigned int used_lrs; +}; + +struct vgic_v3_cpu_if { + u32 vgic_hcr; + u32 vgic_vmcr; + u32 vgic_sre; + u32 vgic_ap0r[4]; + u32 vgic_ap1r[4]; + u64 vgic_lr[16]; + struct its_vpe its_vpe; + unsigned int used_lrs; +}; + +struct vgic_redist_region; + +struct vgic_cpu { + union { + struct vgic_v2_cpu_if vgic_v2; + struct vgic_v3_cpu_if vgic_v3; + }; + struct vgic_irq *private_irqs; + raw_spinlock_t ap_list_lock; + struct list_head ap_list_head; + struct vgic_io_device rd_iodev; + struct vgic_redist_region *rdreg; + u32 rdreg_index; + atomic_t syncr_busy; + u64 pendbaser; + atomic_t ctlr; + u32 num_pri_bits; + u32 num_id_bits; +}; + +struct vcpu_reset_state { + long unsigned int pc; + long unsigned int r0; + bool be; + bool reset; +}; + +struct kvm_vcpu_arch { + struct kvm_cpu_context ctxt; + void *sve_state; + enum fp_type fp_type; + unsigned int sve_max_vl; + struct kvm_s2_mmu *hw_mmu; + u64 hcr_el2; + u64 hcrx_el2; + u64 mdcr_el2; + struct kvm_vcpu_fault_info fault; + u8 cflags; + u8 iflags; + u8 sflags; + bool pause; + struct kvm_guest_debug_arch vcpu_debug_state; + struct kvm_guest_debug_arch external_debug_state; + u64 external_mdscr_el1; + enum { + VCPU_DEBUG_FREE = 0, + VCPU_DEBUG_HOST_OWNED = 1, + VCPU_DEBUG_GUEST_OWNED = 2, + } debug_owner; + struct vgic_cpu vgic_cpu; + struct arch_timer_cpu timer_cpu; + struct kvm_pmu pmu; + struct kvm_mp_state mp_state; + spinlock_t mp_state_lock; + struct kvm_mmu_memory_cache mmu_page_cache; + struct kvm_hyp_memcache pkvm_memcache; + u64 vsesr_el2; + struct vcpu_reset_state reset_state; + struct { + u64 last_steal; + gpa_t base; + } steal; + u32 *ccsidr; + long: 64; +}; + +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 hvc_exit_stat; + u64 wfe_exit_stat; + u64 wfi_exit_stat; + u64 mmio_exit_user; + u64 mmio_exit_kernel; + u64 signal_exits; + u64 exits; +}; + +struct kvm_vcpu { + struct kvm *kvm; + struct preempt_notifier preempt_notifier; + int cpu; + int vcpu_id; + int vcpu_idx; + int ____srcu_idx; + int mode; + u64 requests; + long unsigned int guest_debug; + struct mutex mutex; + struct kvm_run *run; + struct rcuwait wait; + struct pid *pid; + rwlock_t pid_lock; + int sigset_active; + sigset_t sigset; + unsigned int halt_poll_ns; + bool valid_wakeup; + int mmio_needed; + int mmio_read_completed; + int mmio_is_write; + int mmio_cur_fragment; + int mmio_nr_fragments; + struct kvm_mmio_fragment mmio_fragments[2]; + struct { + bool in_spin_loop; + bool dy_eligible; + } spin_loop; + bool wants_to_run; + bool preempted; + bool ready; + bool scheduled_out; + struct kvm_vcpu_arch arch; + struct kvm_vcpu_stat stat; + char stats_id[48]; + struct kvm_dirty_ring dirty_ring; + struct kvm_memory_slot *last_used_slot; + u64 last_used_slot_gen; + long: 64; +}; + +struct kvm_vcpu_events { + struct { + __u8 serror_pending; + __u8 serror_has_esr; + __u8 ext_dabt_pending; + __u8 pad[5]; + __u64 serror_esr; + } exception; + __u32 reserved[12]; +}; + +struct kvm_vcpu_init { + __u32 target; + __u32 features[7]; +}; + +struct kvm_vfio { + struct list_head file_list; + struct mutex lock; + bool noncoherent; +}; + +struct kvm_vfio_file { + struct list_head node; + struct file *file; +}; + +struct l2cache_pmu { + struct hlist_node node; + u32 num_pmus; + struct pmu pmu; + int num_counters; + cpumask_t cpumask; + struct platform_device *pdev; + struct cluster_pmu **pmu_cluster; + struct list_head clusters; +}; + +struct l3cache_event_ops { + void (*start)(struct perf_event *); + void (*stop)(struct perf_event *, int); + void (*update)(struct perf_event *); +}; + +struct l3cache_pmu { + struct pmu pmu; + struct hlist_node node; + void *regs; + struct perf_event *events[8]; + long unsigned int used_mask[1]; + cpumask_t cpumask; +}; + +typedef int (*lookup_by_table_id_t)(struct net *, u32); + +struct l3mdev_handler { + lookup_by_table_id_t dev_lookup; +}; + +struct l3mdev_ops { + u32 (*l3mdev_fib_table)(const struct net_device *); + struct sk_buff * (*l3mdev_l3_rcv)(struct net_device *, struct sk_buff *, u16); + struct sk_buff * (*l3mdev_l3_out)(struct net_device *, struct sock *, struct sk_buff *, u16); + struct dst_entry * (*l3mdev_link_scope_lookup)(const struct net_device *, struct flowi6 *); +}; + +struct label_it { + int i; + int j; +}; + +struct ladder_device_state { + struct { + u32 promotion_count; + u32 demotion_count; + u64 promotion_time_ns; + u64 demotion_time_ns; + } threshold; + struct { + int promotion_count; + int demotion_count; + } stats; +}; + +struct ladder_device { + struct ladder_device_state states[10]; +}; + +struct landlock_ruleset; + +struct landlock_cred_security { + struct landlock_ruleset *domain; +}; + +struct landlock_erratum { + const int abi; + const u8 number; +}; + +struct landlock_file_security { + access_mask_t allowed_access; + struct landlock_ruleset *fown_domain; +}; + +struct landlock_hierarchy { + struct landlock_hierarchy *parent; + refcount_t usage; +}; + +struct landlock_object; + +union landlock_key { + struct landlock_object *object; + uintptr_t data; +}; + +struct landlock_id { + union landlock_key key; + const enum landlock_key_type type; +}; + +struct landlock_inode_security { + struct landlock_object *object; +}; + +struct landlock_layer { + u16 level; + access_mask_t access; +}; + +struct landlock_net_port_attr { + __u64 allowed_access; + __u64 port; +}; + +struct landlock_object_underops; + +struct landlock_object { + refcount_t usage; + spinlock_t lock; + void *underobj; + union { + struct callback_head rcu_free; + const struct landlock_object_underops *underops; + }; +}; + +struct landlock_object_underops { + void (*release)(struct landlock_object * const); +}; + +struct landlock_path_beneath_attr { + __u64 allowed_access; + __s32 parent_fd; +} __attribute__((packed)); + +struct landlock_rule { + struct rb_node node; + union landlock_key key; + u32 num_layers; + struct landlock_layer layers[0]; +}; + +struct landlock_ruleset { + struct rb_root root_inode; + struct rb_root root_net_port; + struct landlock_hierarchy *hierarchy; + union { + struct work_struct work_free; + struct { + struct mutex lock; + refcount_t usage; + u32 num_rules; + u32 num_layers; + struct access_masks access_masks[0]; + }; + }; +}; + +struct landlock_ruleset_attr { + __u64 handled_access_fs; + __u64 handled_access_net; + __u64 scoped; +}; + +struct landlock_superblock_security { + atomic_long_t inode_refs; +}; + +struct latch_tree_ops { + bool (*less)(struct latch_tree_node *, struct latch_tree_node *); + int (*comp)(void *, struct latch_tree_node *); +}; + +struct latch_tree_root { + seqcount_latch_t seq; + struct rb_root tree[2]; +}; + +struct latched_seq { + seqcount_latch_t latch; + u64 val[2]; +}; + +struct lateeoi_work { + struct delayed_work delayed; + spinlock_t eoi_list_lock; + struct list_head eoi_list; +}; + +struct latency_record { + long unsigned int backtrace[12]; + unsigned int count; + long unsigned int time; + long unsigned int max; +}; + +struct sched_domain; + +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 int 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 ld_semaphore { + atomic_long_t count; + raw_spinlock_t wait_lock; + unsigned int wait_readers; + struct list_head read_wait; + struct list_head write_wait; +}; + +struct privhead { + u16 ver_major; + u16 ver_minor; + u64 logical_disk_start; + u64 logical_disk_size; + u64 config_start; + u64 config_size; + uuid_t disk_id; +}; + +struct tocblock { + u8 bitmap1_name[16]; + u64 bitmap1_start; + u64 bitmap1_size; + u8 bitmap2_name[16]; + u64 bitmap2_start; + u64 bitmap2_size; +}; + +struct vmdb { + u16 ver_major; + u16 ver_minor; + u32 vblk_size; + u32 vblk_offset; + u32 last_vblk_seq; +}; + +struct ldmdb { + struct privhead ph; + struct tocblock toc; + struct vmdb vm; + struct list_head v_dgrp; + struct list_head v_disk; + struct list_head v_volu; + struct list_head v_comp; + struct list_head v_part; +}; + +struct ldsem_waiter { + struct list_head list; + struct task_struct *task; +}; + +struct leaf_walk_data { + kvm_pte_t pte; + s8 level; +}; + +struct lease_manager_operations { + bool (*lm_break)(struct file_lease *); + int (*lm_change)(struct file_lease *, int, struct list_head *); + void (*lm_setup)(struct file_lease *, void **); + bool (*lm_breaker_owns_lease)(struct file_lease *); +}; + +struct led_pattern; + +struct led_classdev { + const char *name; + unsigned int brightness; + unsigned int max_brightness; + unsigned int color; + int flags; + long unsigned int 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 *, long unsigned int *, long unsigned int *); + 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; + long unsigned int blink_delay_on; + long unsigned int blink_delay_off; + struct timer_list blink_timer; + int blink_brightness; + int new_blink_brightness; + void (*flash_resume)(struct led_classdev *); + struct workqueue_struct *wq; + struct work_struct set_brightness_work; + int delayed_set_value; + long unsigned int delayed_delay_on; + long unsigned int delayed_delay_off; + struct rw_semaphore trigger_lock; + struct led_trigger *trigger; + struct list_head trig_list; + void *trigger_data; + bool activated; + struct led_hw_trigger_type *trigger_type; + const char *hw_control_trigger; + int (*hw_control_is_supported)(struct led_classdev *, long unsigned int); + int (*hw_control_set)(struct led_classdev *, long unsigned int); + int (*hw_control_get)(struct led_classdev *, long unsigned int *); + struct device * (*hw_control_get_device)(struct led_classdev *); + int brightness_hw_changed; + struct kernfs_node *brightness_hw_changed_kn; + struct mutex led_access; +}; + +struct mc_subled; + +struct led_classdev_mc { + struct led_classdev led_cdev; + unsigned int num_colors; + struct mc_subled *subled_info; +}; + +struct led_hw_trigger_type { + int dummy; +}; + +struct led_init_data { + struct fwnode_handle *fwnode; + const char *default_label; + const char *devicename; + bool devname_mandatory; +}; + +struct led_lookup_data { + struct list_head list; + const char *provider; + const char *dev_id; + const char *con_id; +}; + +struct led_pattern { + u32 delta_t; + int brightness; +}; + +struct led_properties { + u32 color; + bool color_present; + const char *function; + u32 func_enum; + bool func_enum_present; + const char *label; +}; + +struct led_trigger_cpu { + bool is_active; + char name[8]; + struct led_trigger *_trig; +}; + +struct legacy_fs_context { + char *legacy_data; + size_t data_size; + enum legacy_fs_param param_type; +}; + +struct level_datum { + struct mls_level level; + unsigned char isalias; +}; + +struct limit_names { + const char *name; + const char *unit; +}; + +struct linereq; + +struct line { + struct gpio_desc *desc; + struct linereq *req; + unsigned int irq; + u64 edflags; + u64 timestamp_ns; + u32 req_seqno; + u32 line_seqno; + struct delayed_work work; + unsigned int sw_debounced; + unsigned int level; + struct hte_ts_desc hdesc; + int raw_level; + u32 total_discard_seq; + u32 last_seqno; +}; + +struct linear_c { + struct dm_dev *dev; + sector_t start; +}; + +struct linear_range { + unsigned int min; + unsigned int min_sel; + unsigned int max_sel; + unsigned int step; +}; + +struct lineevent_state { + struct gpio_device *gdev; + const char *label; + struct gpio_desc *desc; + u32 eflags; + int irq; + wait_queue_head_t wait; + struct notifier_block device_unregistered_nb; + struct { + union { + struct __kfifo kfifo; + struct gpioevent_data *type; + const struct gpioevent_data *const_type; + char (*rectype)[0]; + struct gpioevent_data *ptr; + const struct gpioevent_data *ptr_const; + }; + struct gpioevent_data buf[16]; + } events; + u64 timestamp; +}; + +struct linehandle_state { + struct gpio_device *gdev; + const char *label; + struct gpio_desc *descs[64]; + u32 num_descs; +}; + +struct lineinfo_changed_ctx { + struct work_struct work; + struct gpio_v2_line_info_changed chg; + struct gpio_device *gdev; + struct gpio_chardev_data *cdev; +}; + +struct linereq { + struct gpio_device *gdev; + const char *label; + u32 num_lines; + wait_queue_head_t wait; + struct notifier_block device_unregistered_nb; + u32 event_buffer_size; + struct { + union { + struct __kfifo kfifo; + struct gpio_v2_line_event *type; + const struct gpio_v2_line_event *const_type; + char (*rectype)[0]; + struct gpio_v2_line_event *ptr; + const struct gpio_v2_line_event *ptr_const; + }; + struct gpio_v2_line_event buf[0]; + } events; + atomic_t seqno; + struct mutex config_mutex; + struct line lines[0]; +}; + +struct linger { + int l_onoff; + int l_linger; +}; + +struct link_free { + union { + long unsigned int next; + long unsigned int handle; + }; +}; + +struct link_mode_info { + int speed; + u8 lanes; + u8 duplex; +}; + +struct linked_reg { + u8 frameno; + union { + u8 spi; + u8 regno; + }; + bool is_reg; +}; + +struct linked_regs { + int cnt; + struct linked_reg entries[6]; +}; + +struct linkinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; +}; + +struct linkmodes_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; + bool peer_empty; +}; + +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 linux_binprm; + +struct linux_binfmt { + struct list_head lh; + struct module *module; + int (*load_binary)(struct linux_binprm *); + int (*load_shlib)(struct file *); + int (*core_dump)(struct coredump_params *); + long unsigned int min_coredump; +}; + +struct linux_binprm { + struct vm_area_struct *vma; + long unsigned int vma_pages; + long unsigned int argmin; + struct mm_struct *mm; + long unsigned int p; + unsigned int have_execfd: 1; + unsigned int execfd_creds: 1; + unsigned int secureexec: 1; + unsigned int point_of_no_return: 1; + unsigned int comm_from_dentry: 1; + unsigned int is_check: 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; + long unsigned int loader; + long unsigned int exec; + struct rlimit rlim_stack; + char buf[256]; +}; + +struct linux_binprm__safe_trusted { + struct file *file; +}; + +struct linux_dirent { + long unsigned int d_ino; + long unsigned int d_off; + short unsigned int d_reclen; + char d_name[0]; +}; + +struct linux_dirent64 { + u64 d_ino; + s64 d_off; + short unsigned int d_reclen; + unsigned char d_type; + char d_name[0]; +}; + +struct linux_efi_initrd { + long unsigned int base; + long unsigned int size; +}; + +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]; +}; + +struct linux_efi_tpm_eventlog { + u32 size; + u32 final_events_preboot_size; + u8 version; + u8 log[0]; +}; + +struct linux_logo { + int type; + unsigned int width; + unsigned int height; + unsigned int clutsize; + const unsigned char *clut; + const unsigned char *data; +}; + +struct linux_mib { + long unsigned int mibs[134]; +}; + +struct linux_tls_mib { + long unsigned int mibs[18]; +}; + +struct linux_xfrm_mib { + long unsigned int mibs[33]; +}; + +struct list_lru_node; + +struct list_lru { + struct list_lru_node *node; + struct list_head list; + int shrinker_id; + bool memcg_aware; + struct xarray xa; +}; + +struct list_lru_one { + struct list_head list; + long int nr_items; + spinlock_t lock; +}; + +struct list_lru_memcg { + struct callback_head rcu; + struct list_lru_one node[0]; +}; + +struct list_lru_node { + struct list_lru_one lru; + atomic_long_t nr_items; + long: 64; + long: 64; + long: 64; +}; + +struct listener { + struct list_head list; + pid_t pid; + char valid; +}; + +struct listener_list { + struct rw_semaphore sem; + struct list_head list; +}; + +struct listeners { + struct callback_head rcu; + long unsigned int masks[0]; +}; + +struct load_info { + const char *name; + struct module *mod; + Elf64_Ehdr *hdr; + long unsigned int len; + Elf64_Shdr *sechdrs; + char *secstrings; + char *strtab; + long unsigned int symoffs; + long unsigned int stroffs; + long unsigned int init_typeoffs; + long unsigned int core_typeoffs; + bool sig_ok; + long unsigned int mod_kallsyms_init_off; + struct page **pages; + unsigned int max_pages; + unsigned int used_pages; + struct { + unsigned int sym; + unsigned int str; + unsigned int mod; + unsigned int vers; + unsigned int info; + unsigned int pcpu; + unsigned int vers_ext_crc; + unsigned int vers_ext_name; + } index; +}; + +struct location; + +struct loc_track { + long unsigned int max; + long unsigned int count; + struct location *loc; + loff_t idx; +}; + +struct local_event { + local_lock_t lock; + __u32 count; +}; + +struct local_ports { + u32 range; + bool warned; +}; + +struct location { + depot_stack_handle_t handle; + long unsigned int count; + long unsigned int addr; + long unsigned int waste; + long long int sum_time; + long int min_time; + long int max_time; + long int min_pid; + long int max_pid; + long unsigned int cpus[8]; + nodemask_t nodes; +}; + +struct lochnagar { + enum lochnagar_type type; + struct device *dev; + struct regmap *regmap; + struct mutex analogue_config_lock; +}; + +struct regmap_config; + +struct reg_sequence; + +struct lochnagar_config { + int id; + const char * const name; + enum lochnagar_type type; + const struct regmap_config *regmap; + const struct reg_sequence *patch; + int npatch; +}; + +struct lock_manager_operations { + void *lm_mod_owner; + fl_owner_t (*lm_get_owner)(fl_owner_t); + void (*lm_put_owner)(fl_owner_t); + void (*lm_notify)(struct file_lock *); + int (*lm_grant)(struct file_lock *, int); + bool (*lm_lock_expirable)(struct file_lock *); + void (*lm_expire_lock)(void); +}; + +struct locks_iterator { + int li_cpu; + loff_t li_pos; +}; + +struct logic_pio_host_ops { + u32 (*in)(void *, long unsigned int, size_t); + void (*out)(void *, long unsigned int, u32, size_t); + u32 (*ins)(void *, long unsigned int, void *, size_t, unsigned int); + void (*outs)(void *, long unsigned int, const void *, size_t, unsigned int); +}; + +struct logic_pio_hwaddr { + struct list_head list; + const struct fwnode_handle *fwnode; + resource_size_t hw_start; + resource_size_t io_start; + resource_size_t size; + long unsigned int flags; + void *hostdata; + const struct logic_pio_host_ops *ops; +}; + +struct lookup_args { + int offset; + const struct in6_addr *addr; +}; + +struct loop_cmd { + struct list_head list_entry; + bool use_aio; + atomic_t ref; + long int ret; + struct kiocb iocb; + struct bio_vec *bvec; + struct cgroup_subsys_state *blkcg_css; + struct cgroup_subsys_state *memcg_css; +}; + +struct loop_info64 { + __u64 lo_device; + __u64 lo_inode; + __u64 lo_rdevice; + __u64 lo_offset; + __u64 lo_sizelimit; + __u32 lo_number; + __u32 lo_encrypt_type; + __u32 lo_encrypt_key_size; + __u32 lo_flags; + __u8 lo_file_name[64]; + __u8 lo_crypt_name[64]; + __u8 lo_encrypt_key[32]; + __u64 lo_init[2]; +}; + +struct loop_config { + __u32 fd; + __u32 block_size; + struct loop_info64 info; + __u64 __reserved[8]; +}; + +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 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_info { + int lo_number; + __kernel_old_dev_t lo_device; + long unsigned int 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]; + long unsigned int lo_init[2]; + char reserved[4]; +}; + +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; + long unsigned int last_ran_at; +}; + +union lower_chunk { + union lower_chunk *next; + long unsigned int data[256]; +}; + +struct lp8788_platform_data; + +struct lp8788 { + struct device *dev; + struct regmap *regmap; + struct irq_domain *irqdm; + int irq; + struct lp8788_platform_data *pdata; +}; + +struct lp8788_buck1_dvs { + enum lp8788_dvs_sel vsel; +}; + +struct lp8788_buck2_dvs { + enum lp8788_dvs_sel vsel; +}; + +struct lp8788_chg_param; + +struct lp8788_charger_platform_data { + const char *adc_vbatt; + const char *adc_batt_temp; + unsigned int max_vbatt_mv; + struct lp8788_chg_param *chg_params; + int num_chg_params; + void (*charger_event)(struct lp8788 *, enum lp8788_charger_event); +}; + +struct lp8788_chg_param { + u8 addr; + u8 val; +}; + +struct lp8788_irq_data { + struct lp8788 *lp; + struct mutex irq_lock; + struct irq_domain *domain; + int enabled[24]; +}; + +struct lp8788_led_platform_data { + char *name; + enum lp8788_isink_scale scale; + enum lp8788_isink_number num; + int iout_code; +}; + +struct iio_map; + +struct lp8788_vib_platform_data; + +struct lp8788_platform_data { + int (*init_func)(struct lp8788 *); + struct regulator_init_data *buck_data[4]; + struct regulator_init_data *dldo_data[12]; + struct regulator_init_data *aldo_data[10]; + struct lp8788_buck1_dvs *buck1_dvs; + struct lp8788_buck2_dvs *buck2_dvs; + struct lp8788_charger_platform_data *chg_pdata; + enum lp8788_alarm_sel alarm_sel; + struct lp8788_led_platform_data *led_pdata; + struct lp8788_vib_platform_data *vib_pdata; + struct iio_map *adc_pdata; +}; + +struct lp8788_vib_platform_data { + char *name; + enum lp8788_isink_scale scale; + enum lp8788_isink_number num; + int iout_code; + int pwm_code; +}; + +struct lpc_cycle_para { + unsigned int opflags; + unsigned int csize; +}; + +struct lpi_range { + struct list_head entry; + u32 base_id; + u32 span; +}; + +struct lpm_trie_node; + +struct lpm_trie { + struct bpf_map map; + struct lpm_trie_node *root; + struct bpf_mem_alloc ma; + size_t n_entries; + size_t max_prefixlen; + size_t data_size; + raw_spinlock_t lock; +}; + +struct lpm_trie_node { + struct lpm_trie_node *child[2]; + u32 prefixlen; + u32 flags; + u8 data[0]; +}; + +struct lru_gen_folio { + long unsigned int max_seq; + long unsigned int min_seq[2]; + long unsigned int timestamps[4]; + struct list_head folios[40]; + long int nr_pages[40]; + long unsigned int avg_refaulted[8]; + long unsigned int avg_total[8]; + long unsigned int protected[8]; + atomic_long_t evicted[8]; + atomic_long_t refaulted[8]; + bool enabled; + u8 gen; + u8 seg; + struct hlist_nulls_node list; +}; + +struct lru_gen_memcg { + long unsigned int seq; + long unsigned int nr_memcgs[3]; + struct hlist_nulls_head fifo[24]; + spinlock_t lock; +}; + +struct lru_gen_mm_list { + struct list_head fifo; + spinlock_t lock; +}; + +struct lru_gen_mm_state { + long unsigned int seq; + struct list_head *head; + struct list_head *tail; + long unsigned int *filters[2]; + long unsigned int stats[4]; +}; + +struct lruvec; + +struct lru_gen_mm_walk { + struct lruvec *lruvec; + long unsigned int seq; + long unsigned int next_addr; + int nr_pages[40]; + int mm_stats[4]; + int batched; + int swappiness; + bool force_scan; +}; + +struct zswap_lruvec_state { + atomic_long_t nr_disk_swapins; +}; + +struct pglist_data; + +struct lruvec { + struct list_head lists[5]; + spinlock_t lru_lock; + long unsigned int anon_cost; + long unsigned int file_cost; + atomic_long_t nonresident_age; + long unsigned int refaults[2]; + long unsigned int flags; + struct lru_gen_folio lrugen; + struct lru_gen_mm_state mm_state; + struct pglist_data *pgdat; + struct zswap_lruvec_state zswap_lruvec_state; +}; + +struct lruvec_stats { + long int state[32]; + long int state_local[32]; + long int state_pending[32]; +}; + +struct lruvec_stats_percpu { + long int state[32]; + long int state_prev[32]; +}; + +struct ls_extirq_data { + void *intpcr; + raw_spinlock_t lock; + bool big_endian; + bool is_ls1021a_or_ls1043a; + u32 nirq; + struct irq_fwspec map[12]; +}; + +struct ls_pcie_drvdata; + +struct ls_pcie { + struct dw_pcie *pci; + const struct ls_pcie_drvdata *drvdata; + void *pf_lut_base; + struct regmap *scfg; + int index; + bool big_endian; +}; + +struct ls_pcie_drvdata { + const u32 pf_lut_off; + const struct dw_pcie_host_ops *ops; + int (*exit_from_l2)(struct dw_pcie_rp *); + bool scfg_support; + bool pm_support; +}; + +struct ls_pcie_ep_drvdata; + +struct ls_pcie_ep { + struct dw_pcie *pci; + struct pci_epc_features *ls_epc; + const struct ls_pcie_ep_drvdata *drvdata; + int irq; + u32 lnkcap; + bool big_endian; +}; + +struct ls_pcie_ep_drvdata { + u32 func_offset; + const struct dw_pcie_ep_ops *ops; + const struct dw_pcie_ops *dw_pcie_ops; +}; + +struct ls_scfg_msi_cfg; + +struct ls_scfg_msir; + +struct ls_scfg_msi { + spinlock_t lock; + struct platform_device *pdev; + struct irq_domain *parent; + struct irq_domain *msi_domain; + void *regs; + phys_addr_t msiir_addr; + struct ls_scfg_msi_cfg *cfg; + u32 msir_num; + struct ls_scfg_msir *msir; + u32 irqs_num; + long unsigned int *used; +}; + +struct ls_scfg_msi_cfg { + u32 ibs_shift; + u32 msir_irqs; + u32 msir_base; +}; + +struct ls_scfg_msir { + struct ls_scfg_msi *msi_data; + unsigned int index; + unsigned int gic_irq; + unsigned int bit_start; + unsigned int bit_end; + unsigned int srs; + void *reg; +}; + +struct skcipher_alg_common { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + unsigned int statesize; + struct crypto_alg base; +}; + +struct lskcipher_alg { + int (*setkey)(struct crypto_lskcipher *, const u8 *, unsigned int); + int (*encrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, u32); + int (*decrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, u32); + int (*init)(struct crypto_lskcipher *); + void (*exit)(struct crypto_lskcipher *); + struct skcipher_alg_common co; +}; + +struct lskcipher_instance { + void (*free)(struct lskcipher_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct lskcipher_alg alg; + }; +}; + +struct lsm_blob_sizes { + int lbs_cred; + int lbs_file; + int lbs_ib; + int lbs_inode; + int lbs_sock; + int lbs_superblock; + int lbs_ipc; + int lbs_key; + int lbs_msg_msg; + int lbs_perf_event; + int lbs_task; + int lbs_xattr_count; + int lbs_tun_dev; + int lbs_bdev; + bool lbs_secmark; +}; + +struct lsm_context { + char *context; + u32 len; + int id; +}; + +struct lsm_ctx { + __u64 id; + __u64 flags; + __u64 len; + __u64 ctx_len; + __u8 ctx[0]; +}; + +struct lsm_ibendport_audit { + const char *dev_name; + u8 port; +}; + +struct lsm_ibpkey_audit { + u64 subnet_prefix; + u16 pkey; +}; + +struct lsm_id { + const char *name; + u64 id; + bool lsmprop; +}; + +struct lsm_info { + const char *name; + enum lsm_order order; + long unsigned int flags; + int *enabled; + int (*init)(void); + struct lsm_blob_sizes *blobs; +}; + +struct lsm_ioctlop_audit { + struct path path; + u16 cmd; +}; + +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 ltc2952_poweroff { + struct hrtimer timer_trigger; + struct hrtimer timer_wde; + ktime_t trigger_delay; + ktime_t wde_interval; + struct device *dev; + struct gpio_desc *gpio_trigger; + struct gpio_desc *gpio_watchdog; + struct gpio_desc *gpio_kill; + bool kernel_panic; + struct notifier_block panic_notifier; +}; + +struct lv_info { + short unsigned int pps_per_lv; + short unsigned int pps_found; + unsigned char lv_is_contiguous; +}; + +struct lvd { + __be16 lv_ix; + __be16 res2; + __be16 res4; + __be16 maxsize; + __be16 lv_state; + __be16 mirror; + __be16 mirror_policy; + __be16 num_lps; + __be16 res10[8]; +}; + +struct lvm_rec { + char lvm_id[4]; + char reserved4[16]; + __be32 lvmarea_len; + __be32 vgda_len; + __be32 vgda_psn[2]; + char reserved36[10]; + __be16 pp_size; + char reserved46[12]; + __be16 version; +}; + +struct lvname { + char name[64]; +}; + +struct lwq { + spinlock_t lock; + struct llist_node *ready; + struct llist_head new; +}; + +struct lwq_node { + struct llist_node node; +}; + +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 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 lynx_pcs { + struct phylink_pcs pcs; + struct mdio_device *mdio; +}; + +struct lz4_comp_opts { + __le32 version; + __le32 flags; +}; + +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; + bool pedantic_microlzma; +}; + +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 lzma_header { + uint8_t pos; + uint32_t dict_size; + uint64_t dst_size; +} __attribute__((packed)); + +struct lzo_ctx { + void *lzo_comp_mem; +}; + +struct lzorle_ctx { + void *lzorle_comp_mem; +}; + +struct ma35_mux_desc { + const char *name; + u32 muxval; +}; + +struct ma35_pin_bank { + void *reg_base; + struct clk *clk; + int irq; + u8 bank_num; + u8 nr_pins; + bool valid; + const char *name; + struct fwnode_handle *fwnode; + struct gpio_chip chip; + u32 irqtype; + u32 irqinten; + struct regmap *regmap; + struct device *dev; +}; + +struct ma35_pin_ctrl { + struct ma35_pin_bank *pin_banks; + u32 nr_banks; + u32 nr_pins; +}; + +struct ma35_pin_data { + u32 offset; + u32 shift; + struct ma35_mux_desc *muxes; +}; + +struct ma35_pin_func { + const char *name; + const char **groups; + u32 ngroups; +}; + +struct ma35_pin_setting; + +struct ma35_pin_group { + const char *name; + unsigned int npins; + unsigned int *pins; + struct ma35_pin_setting *settings; +}; + +struct ma35_pin_setting { + u32 offset; + u32 shift; + u32 muxval; + long unsigned int *configs; + unsigned int nconfigs; +}; + +struct ma35_pinctrl_soc_info; + +struct ma35_pinctrl { + struct device *dev; + struct ma35_pin_ctrl *ctrl; + struct pinctrl_dev *pctl; + const struct ma35_pinctrl_soc_info *info; + struct regmap *regmap; + struct ma35_pin_group *groups; + unsigned int ngroups; + struct ma35_pin_func *functions; + unsigned int nfunctions; +}; + +struct ma35_pinctrl_soc_info { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + int (*get_pin_num)(int, int); +}; + +struct ma35d1_adc_clk_div { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u32 mask; + const struct clk_div_table *table; + spinlock_t *lock; +}; + +struct ma35d1_clk_pll { + struct clk_hw hw; + u32 id; + u8 mode; + void *ctl0_base; + void *ctl1_base; + void *ctl2_base; +}; + +struct ma35d1_reset_data { + struct reset_controller_dev rcdev; + struct notifier_block restart_handler; + void *base; + spinlock_t lock; +}; + +struct ma_topiary { + struct maple_enode *head; + struct maple_enode *tail; + struct maple_tree *mtree; +}; + +struct maple_node; + +struct ma_wr_state { + struct ma_state *mas; + struct maple_node *node; + long unsigned int r_min; + long unsigned int r_max; + enum maple_type type; + unsigned char offset_end; + long unsigned int *pivots; + long unsigned int end_piv; + void **slots; + void *entry; + void *content; +}; + +struct mac_addr { + unsigned char addr[6]; +}; + +typedef struct mac_addr mac_addr; + +struct mac_addr___2 { + u32 mac_addr_l; + u32 mac_addr_u; +}; + +struct mac_address { + u8 addr[6]; +}; + +struct mac_priv_s; + +struct mac_device { + void *vaddr; + struct device *dev; + struct resource *res; + u8 addr[6]; + struct fman_port *port[2]; + struct phylink *phylink; + struct phylink_config phylink_config; + phy_interface_t phy_if; + bool promisc; + bool allmulti; + const struct phylink_mac_ops *phylink_ops; + int (*enable)(struct fman_mac___3 *); + void (*disable)(struct fman_mac___3 *); + int (*set_promisc)(struct fman_mac___3 *, bool); + int (*change_addr)(struct fman_mac___3 *, u8(*)[6]); + int (*set_allmulti)(struct fman_mac___3 *, bool); + int (*set_tstamp)(struct fman_mac___3 *, bool); + int (*set_exception)(struct fman_mac___3 *, enum fman_mac_exceptions, bool); + int (*add_hash_mac_addr)(struct fman_mac___3 *, enet_addr_t *); + int (*remove_hash_mac_addr)(struct fman_mac___3 *, enet_addr_t *); + void (*update_speed)(struct mac_device *, int); + struct fman_mac___3 *fman_mac; + struct mac_priv_s *priv; + struct device *fman_dev; + struct device *fman_port_devs[2]; +}; + +struct mac_device___2 { + void *vaddr; + struct device *dev; + struct resource *res; + u8 addr[6]; + struct fman_port *port[2]; + struct phylink *phylink; + struct phylink_config phylink_config; + phy_interface_t phy_if; + bool promisc; + bool allmulti; + const struct phylink_mac_ops *phylink_ops; + int (*enable)(struct fman_mac *); + void (*disable)(struct fman_mac *); + int (*set_promisc)(struct fman_mac *, bool); + int (*change_addr)(struct fman_mac *, u8(*)[6]); + int (*set_allmulti)(struct fman_mac *, bool); + int (*set_tstamp)(struct fman_mac *, bool); + int (*set_exception)(struct fman_mac *, enum fman_mac_exceptions, bool); + int (*add_hash_mac_addr)(struct fman_mac *, enet_addr_t *); + int (*remove_hash_mac_addr)(struct fman_mac *, enet_addr_t *); + void (*update_speed)(struct mac_device___2 *, int); + struct fman_mac *fman_mac; + struct mac_priv_s *priv; + struct device *fman_dev; + struct device *fman_port_devs[2]; +}; + +struct mac_device___3 { + void *vaddr; + struct device *dev; + struct resource *res; + u8 addr[6]; + struct fman_port *port[2]; + struct phylink *phylink; + struct phylink_config phylink_config; + phy_interface_t phy_if; + bool promisc; + bool allmulti; + const struct phylink_mac_ops *phylink_ops; + int (*enable)(struct fman_mac___2 *); + void (*disable)(struct fman_mac___2 *); + int (*set_promisc)(struct fman_mac___2 *, bool); + int (*change_addr)(struct fman_mac___2 *, u8(*)[6]); + int (*set_allmulti)(struct fman_mac___2 *, bool); + int (*set_tstamp)(struct fman_mac___2 *, bool); + int (*set_exception)(struct fman_mac___2 *, enum fman_mac_exceptions, bool); + int (*add_hash_mac_addr)(struct fman_mac___2 *, enet_addr_t *); + int (*remove_hash_mac_addr)(struct fman_mac___2 *, enet_addr_t *); + void (*update_speed)(struct mac_device___3 *, int); + struct fman_mac___2 *fman_mac; + struct mac_priv_s *priv; + struct device *fman_dev; + struct device *fman_port_devs[2]; +}; + +struct mac_driver_desc { + __be16 signature; + __be16 block_size; + __be32 block_count; +}; + +struct mac_partition { + __be16 signature; + __be16 res1; + __be32 map_count; + __be32 start_block; + __be32 block_count; + char name[32]; + char type[32]; + __be32 data_start; + __be32 data_count; + __be32 status; + __be32 boot_start; + __be32 boot_size; + __be32 boot_load; + __be32 boot_load2; + __be32 boot_entry; + __be32 boot_entry2; + __be32 boot_cksum; + char processor[16]; +}; + +struct mac_priv_s { + u8 cell_index; + struct fman *fman; + struct platform_device *eth_dev; + u16 speed; +}; + +struct macsec_secy; + +struct macsec_rx_sc; + +struct macsec_rx_sa; + +struct macsec_tx_sa; + +struct macsec_tx_sc_stats; + +struct macsec_tx_sa_stats; + +struct macsec_rx_sc_stats; + +struct macsec_rx_sa_stats; + +struct macsec_dev_stats; + +struct macsec_context { + union { + struct net_device *netdev; + struct phy_device *phydev; + }; + enum macsec_offload offload; + struct macsec_secy *secy; + struct macsec_rx_sc *rx_sc; + struct { + bool update_pn; + unsigned char assoc_num; + u8 key[128]; + union { + struct macsec_rx_sa *rx_sa; + struct macsec_tx_sa *tx_sa; + }; + } sa; + union { + struct macsec_tx_sc_stats *tx_sc_stats; + struct macsec_tx_sa_stats *tx_sa_stats; + struct macsec_rx_sc_stats *rx_sc_stats; + struct macsec_rx_sa_stats *rx_sa_stats; + struct macsec_dev_stats *dev_stats; + } stats; +}; + +struct macsec_dev_stats { + __u64 OutPktsUntagged; + __u64 InPktsUntagged; + __u64 OutPktsTooLong; + __u64 InPktsNoTag; + __u64 InPktsBadTag; + __u64 InPktsUnknownSCI; + __u64 InPktsNoSCI; + __u64 InPktsOverrun; +}; + +struct macsec_info { + sci_t sci; +}; + +union salt { + struct { + ssci_t ssci; + __be64 pn; + } __attribute__((packed)); + u8 bytes[12]; +}; + +typedef union salt salt_t; + +struct macsec_key { + u8 id[16]; + struct crypto_aead *tfm; + salt_t salt; +}; + +struct macsec_ops { + int (*mdo_dev_open)(struct macsec_context *); + int (*mdo_dev_stop)(struct macsec_context *); + int (*mdo_add_secy)(struct macsec_context *); + int (*mdo_upd_secy)(struct macsec_context *); + int (*mdo_del_secy)(struct macsec_context *); + int (*mdo_add_rxsc)(struct macsec_context *); + int (*mdo_upd_rxsc)(struct macsec_context *); + int (*mdo_del_rxsc)(struct macsec_context *); + int (*mdo_add_rxsa)(struct macsec_context *); + int (*mdo_upd_rxsa)(struct macsec_context *); + int (*mdo_del_rxsa)(struct macsec_context *); + int (*mdo_add_txsa)(struct macsec_context *); + int (*mdo_upd_txsa)(struct macsec_context *); + int (*mdo_del_txsa)(struct macsec_context *); + int (*mdo_get_dev_stats)(struct macsec_context *); + int (*mdo_get_tx_sc_stats)(struct macsec_context *); + int (*mdo_get_tx_sa_stats)(struct macsec_context *); + int (*mdo_get_rx_sc_stats)(struct macsec_context *); + int (*mdo_get_rx_sa_stats)(struct macsec_context *); + int (*mdo_insert_tx_tag)(struct phy_device *, struct sk_buff *); + unsigned int needed_headroom; + unsigned int needed_tailroom; + bool rx_uses_md_dst; +}; + +union pn { + struct { + u32 lower; + u32 upper; + }; + u64 full64; +}; + +typedef union pn pn_t; + +struct macsec_rx_sa { + struct macsec_key key; + ssci_t ssci; + spinlock_t lock; + union { + pn_t next_pn_halves; + u64 next_pn; + }; + refcount_t refcnt; + bool active; + struct macsec_rx_sa_stats *stats; + struct macsec_rx_sc *sc; + struct callback_head rcu; +}; + +struct macsec_rx_sa_stats { + __u32 InPktsOK; + __u32 InPktsInvalid; + __u32 InPktsNotValid; + __u32 InPktsNotUsingSA; + __u32 InPktsUnusedSA; +}; + +struct pcpu_rx_sc_stats; + +struct macsec_rx_sc { + struct macsec_rx_sc *next; + sci_t sci; + bool active; + struct macsec_rx_sa *sa[4]; + struct pcpu_rx_sc_stats *stats; + refcount_t refcnt; + struct callback_head callback_head; +}; + +struct macsec_rx_sc_stats { + __u64 InOctetsValidated; + __u64 InOctetsDecrypted; + __u64 InPktsUnchecked; + __u64 InPktsDelayed; + __u64 InPktsOK; + __u64 InPktsInvalid; + __u64 InPktsLate; + __u64 InPktsNotValid; + __u64 InPktsNotUsingSA; + __u64 InPktsUnusedSA; +}; + +struct pcpu_tx_sc_stats; + +struct macsec_tx_sc { + bool active; + u8 encoding_sa; + bool encrypt; + bool send_sci; + bool end_station; + bool scb; + struct macsec_tx_sa *sa[4]; + struct pcpu_tx_sc_stats *stats; + struct metadata_dst *md_dst; +}; + +struct macsec_secy { + struct net_device *netdev; + unsigned int n_rx_sc; + sci_t sci; + u16 key_len; + u16 icv_len; + enum macsec_validation_type validate_frames; + bool xpn; + bool operational; + bool protect_frames; + bool replay_protect; + u32 replay_window; + struct macsec_tx_sc tx_sc; + struct macsec_rx_sc *rx_sc; +}; + +struct macsec_tx_sa { + struct macsec_key key; + ssci_t ssci; + spinlock_t lock; + union { + pn_t next_pn_halves; + u64 next_pn; + }; + refcount_t refcnt; + bool active; + struct macsec_tx_sa_stats *stats; + struct callback_head rcu; +}; + +struct macsec_tx_sa_stats { + __u32 OutPktsProtected; + __u32 OutPktsEncrypted; +}; + +struct macsec_tx_sc_stats { + __u64 OutPktsProtected; + __u64 OutPktsEncrypted; + __u64 OutOctetsProtected; + __u64 OutOctetsEncrypted; +}; + +struct mmu_gather; + +struct madvise_walk_private { + struct mmu_gather *tlb; + bool pageout; +}; + +struct mafield { + const char *prefix; + int field; +}; + +struct make_exclusive_args { + struct mm_struct *mm; + long unsigned int address; + void *owner; + bool valid; +}; + +struct map_balloon_pages { + xen_pfn_t *pfns; + unsigned int idx; +}; + +struct map_files_info { + long unsigned int start; + long unsigned int end; + fmode_t mode; +}; + +struct map_info___2 { + struct map_info___2 *next; + struct mm_struct *mm; + long unsigned int vaddr; +}; + +struct map_iter { + void *key; + bool done; +}; + +struct xenbus_map_node; + +struct map_ring_valloc { + struct xenbus_map_node *node; + long unsigned int addrs[16]; + phys_addr_t phys_addrs[16]; + struct gnttab_map_grant_ref map[16]; + struct gnttab_unmap_grant_ref unmap[16]; + unsigned int idx; +}; + +struct maple_alloc { + long unsigned int total; + unsigned char node_count; + unsigned int request_count; + struct maple_alloc *slot[30]; +}; + +struct maple_pnode; + +struct maple_metadata { + unsigned char end; + unsigned char gap; +}; + +struct maple_arange_64 { + struct maple_pnode *parent; + long unsigned int pivot[9]; + void *slot[10]; + long unsigned int gap[10]; + struct maple_metadata meta; +}; + +struct maple_big_node { + long unsigned int pivot[33]; + union { + struct maple_enode *slot[34]; + struct { + long unsigned int padding[21]; + long unsigned int gap[21]; + }; + }; + unsigned char b_end; + enum maple_type type; +}; + +struct maple_range_64 { + struct maple_pnode *parent; + long unsigned int pivot[15]; + union { + void *slot[16]; + struct { + void *pad[15]; + struct maple_metadata meta; + }; + }; +}; + +struct maple_node { + union { + struct { + struct maple_pnode *parent; + void *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_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 maple_topiary { + struct maple_pnode *parent; + struct maple_enode *next; +}; + +struct mapped_device { + struct mutex suspend_lock; + struct mutex table_devices_lock; + struct list_head table_devices; + void *map; + long unsigned int 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; + long unsigned int *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; + unsigned int nr_zones; + void *zone_revalidate_map; + struct task_struct *revalidate_map_task; + struct dm_ima_measurements ima; +}; + +struct mapping_area { + local_lock_t lock; + char *vm_buf; + char *vm_addr; + enum zs_mapmode vm_mm; +}; + +struct match { + u32 mode; + u32 area; + u8 depth; +}; + +struct match_addr { + const char *addrp; + enum addr_type addrtype; + int len; + __be16 port; +}; + +struct match_ids_walk_data { + struct acpi_device_id *ids; + struct acpi_device *adev; +}; + +struct match_token { + int token; + const char *pattern; +}; + +struct match_workbuf { + unsigned int count; + unsigned int pos; + unsigned int len; + unsigned int size; + unsigned int history[24]; +}; + +struct max14577 { + struct device *dev; + struct i2c_client *i2c; + struct i2c_client *i2c_pmic; + enum maxim_device_type dev_type; + struct regmap *regmap; + struct regmap *regmap_pmic; + struct regmap_irq_chip_data *irq_data; + struct regmap_irq_chip_data *irq_data_pmic; + int irq; +}; + +struct max14577_regulator_platform_data; + +struct max14577_platform_data { + int irq_base; + int gpio_pogo_vbatt_en; + int gpio_pogo_vbus_en; + int (*set_gpio_pogo_vbatt_en)(int); + int (*set_gpio_pogo_vbus_en)(int); + int (*set_gpio_pogo_cb)(int); + struct max14577_regulator_platform_data *regulators; +}; + +struct max14577_regulator_platform_data { + int id; + struct regulator_init_data *initdata; + struct device_node *of_node; +}; + +struct max310x_devtype { + struct { + short unsigned int min; + short unsigned int max; + } slave_addr; + int nr; + char name[9]; + u8 mode1; + u8 rev_id_val; + u8 rev_id_reg; + u8 power_reg; + u8 power_bit; +}; + +struct max310x_if_cfg { + int (*extended_reg_enable)(struct device *, bool); + u8 rev_id_offset; +}; + +struct max310x_one { + struct uart_port port; + struct work_struct tx_work; + struct work_struct md_work; + struct work_struct rs_work; + struct regmap *regmap; + u8 rx_buf[128]; +}; + +struct max310x_port { + const struct max310x_devtype *devtype; + const struct max310x_if_cfg *if_cfg; + struct regmap *regmap; + struct clk *clk; + struct gpio_chip gpio; + struct max310x_one p[0]; +}; + +struct max77620_chip { + struct device *dev; + struct regmap *rmap; + int chip_irq; + enum max77620_chip_id chip_id; + bool sleep_enable; + bool enable_global_lpm; + int shutdown_fps_period[3]; + int suspend_fps_period[3]; + struct regmap_irq_chip_data *top_irq_data; + struct regmap_irq_chip_data *gpio_irq_data; +}; + +struct max77686_dev { + struct device *dev; + struct i2c_client *i2c; + long unsigned int type; + struct regmap *regmap; + struct regmap_irq_chip_data *irq_data; + int irq; + struct mutex irqlock; + int irq_masks_cur[3]; + int irq_masks_cache[3]; +}; + +struct max77693_dev { + struct device *dev; + struct i2c_client *i2c; + struct i2c_client *i2c_muic; + struct i2c_client *i2c_haptic; + struct i2c_client *i2c_chg; + enum max77693_types type; + struct regmap *regmap; + struct regmap *regmap_muic; + struct regmap *regmap_haptic; + struct regmap *regmap_chg; + struct regmap_irq_chip_data *irq_data_led; + struct regmap_irq_chip_data *irq_data_topsys; + struct regmap_irq_chip_data *irq_data_chg; + struct regmap_irq_chip_data *irq_data_muic; + int irq; +}; + +struct max8925_backlight_pdata { + int lxw_scl; + int lxw_freq; + int dual_string; +}; + +struct max8925_chip { + struct device *dev; + struct i2c_client *i2c; + struct i2c_client *adc; + struct i2c_client *rtc; + struct mutex io_lock; + struct mutex irq_lock; + int irq_base; + int core_irq; + int tsc_irq; + unsigned int wakeup_flag; +}; + +struct max8925_irq_data { + int reg; + int mask_reg; + int enable; + int offs; + int flags; + int tsc_irq; +}; + +struct max8925_touch_pdata; + +struct max8925_power_pdata; + +struct max8925_platform_data { + struct max8925_backlight_pdata *backlight; + struct max8925_touch_pdata *touch; + struct max8925_power_pdata *power; + struct regulator_init_data *sd1; + struct regulator_init_data *sd2; + struct regulator_init_data *sd3; + struct regulator_init_data *ldo1; + struct regulator_init_data *ldo2; + struct regulator_init_data *ldo3; + struct regulator_init_data *ldo4; + struct regulator_init_data *ldo5; + struct regulator_init_data *ldo6; + struct regulator_init_data *ldo7; + struct regulator_init_data *ldo8; + struct regulator_init_data *ldo9; + struct regulator_init_data *ldo10; + struct regulator_init_data *ldo11; + struct regulator_init_data *ldo12; + struct regulator_init_data *ldo13; + struct regulator_init_data *ldo14; + struct regulator_init_data *ldo15; + struct regulator_init_data *ldo16; + struct regulator_init_data *ldo17; + struct regulator_init_data *ldo18; + struct regulator_init_data *ldo19; + struct regulator_init_data *ldo20; + int irq_base; + int tsc_irq; +}; + +struct max8925_power_pdata { + int (*set_charger)(int); + unsigned int batt_detect: 1; + unsigned int topoff_threshold: 2; + unsigned int fast_charge: 3; + unsigned int no_temp_support: 1; + unsigned int no_insert_detect: 1; + char **supplied_to; + int num_supplicants; +}; + +struct max8925_touch_pdata { + unsigned int flags; +}; + +struct max8997_platform_data; + +struct max8997_dev { + struct device *dev; + struct max8997_platform_data *pdata; + struct i2c_client *i2c; + struct i2c_client *rtc; + struct i2c_client *haptic; + struct i2c_client *muic; + struct mutex iolock; + long unsigned int type; + struct platform_device *battery; + int irq; + int ono; + struct irq_domain *irq_domain; + struct mutex irqlock; + int irq_masks_cur[11]; + int irq_masks_cache[11]; + u8 reg_dump[187]; + bool gpio_status[12]; +}; + +struct max8997_haptic_platform_data { + unsigned int pwm_period; + enum max8997_haptic_motor_type type; + enum max8997_haptic_pulse_mode mode; + enum max8997_haptic_pwm_divisor pwm_divisor; + unsigned int internal_mode_pattern; + unsigned int pattern_cycle; + unsigned int pattern_signal_period; +}; + +struct max8997_irq_data { + int mask; + enum max8997_irq_source group; +}; + +struct max8997_led_platform_data { + enum max8997_led_mode mode[2]; + u8 brightness[2]; +}; + +struct max8997_muic_reg_data; + +struct max8997_muic_platform_data { + struct max8997_muic_reg_data *init_data; + int num_init_data; + int detcable_delay_ms; + int path_usb; + int path_uart; +}; + +struct max8997_muic_reg_data { + u8 addr; + u8 data; +}; + +struct max8997_regulator_data; + +struct max8997_platform_data { + int ono; + struct max8997_regulator_data *regulators; + int num_regulators; + bool ignore_gpiodvs_side_effect; + int buck125_default_idx; + unsigned int buck1_voltage[8]; + bool buck1_gpiodvs; + unsigned int buck2_voltage[8]; + bool buck2_gpiodvs; + unsigned int buck5_voltage[8]; + bool buck5_gpiodvs; + int eoc_mA; + int timeout; + struct max8997_muic_platform_data *muic_pdata; + struct max8997_haptic_platform_data *haptic_pdata; + struct max8997_led_platform_data *led_pdata; +}; + +struct max8997_regulator_data { + int id; + struct regulator_init_data *initdata; + struct device_node *reg_node; +}; + +struct max8998_platform_data; + +struct max8998_dev { + struct device *dev; + struct max8998_platform_data *pdata; + struct i2c_client *i2c; + struct i2c_client *rtc; + struct mutex iolock; + struct mutex irqlock; + unsigned int irq_base; + struct irq_domain *irq_domain; + int irq; + int ono; + u8 irq_masks_cur[4]; + u8 irq_masks_cache[4]; + long unsigned int type; + bool wakeup; +}; + +struct max8998_irq_data { + int reg; + int mask; +}; + +struct max8998_regulator_data; + +struct max8998_platform_data { + struct max8998_regulator_data *regulators; + int num_regulators; + unsigned int irq_base; + int ono; + bool buck_voltage_lock; + int buck1_voltage[4]; + int buck2_voltage[2]; + int buck1_default_idx; + int buck2_default_idx; + bool wakeup; + bool rtc_delay; + int eoc; + int restart; + int timeout; +}; + +struct max8998_reg_dump { + u8 addr; + u8 val; +}; + +struct max8998_regulator_data { + int id; + struct regulator_init_data *initdata; + struct device_node *reg_node; +}; + +struct maxim_charger_current { + unsigned int min; + unsigned int high_start; + unsigned int high_step; + unsigned int max; +}; + +struct mb_cache { + struct hlist_bl_head *c_hash; + int c_bucket_bits; + long unsigned int c_max_entries; + spinlock_t c_list_lock; + struct list_head c_list; + long unsigned int c_entry_count; + struct shrinker *c_shrink; + struct work_struct c_shrink_work; +}; + +struct mb_cache_entry { + struct list_head e_list; + struct hlist_bl_node e_hash_list; + atomic_t e_refcnt; + u32 e_key; + long unsigned int e_flags; + u64 e_value; +}; + +struct mbi_range { + u32 spi_start; + u32 nr_spis; + long unsigned int *bm; +}; + +struct mbigen_device { + struct platform_device *pdev; + void *base; +}; + +struct mbox_controller; + +struct mbox_chan { + struct mbox_controller *mbox; + unsigned int txdone_method; + struct mbox_client *cl; + struct completion tx_complete; + void *active_req; + unsigned int msg_count; + unsigned int msg_free; + void *msg_data[20]; + spinlock_t lock; + void *con_priv; +}; + +struct mbox_chan_ops { + int (*send_data)(struct mbox_chan *, void *); + int (*flush)(struct mbox_chan *, long unsigned int); + 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_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 mbus_dram_window { + u8 cs_index; + u8 mbus_attr; + u64 base; + u64 size; +}; + +struct mbus_dram_target_info { + u8 mbus_dram_target_id; + int num_cs; + struct mbus_dram_window cs[4]; +}; + +struct mc_cmd_header { + u8 src_id; + u8 flags_hw; + u8 status; + u8 flags_sw; + __le16 token; + __le16 cmd_id; +}; + +struct plda_msi { + struct mutex lock; + struct irq_domain *msi_domain; + struct irq_domain *dev_domain; + u32 num_vectors; + u64 vector_phy; + long unsigned int used[1]; +}; + +struct plda_event_ops; + +struct plda_pcie_host_ops; + +struct plda_pcie_rp { + struct device *dev; + struct pci_host_bridge *bridge; + struct irq_domain *intx_domain; + struct irq_domain *event_domain; + raw_spinlock_t lock; + struct plda_msi msi; + const struct plda_event_ops *event_ops; + const struct irq_chip *event_irq_chip; + const struct plda_pcie_host_ops *host_ops; + void *bridge_addr; + void *config_base; + long unsigned int events_bitmap; + int irq; + int msi_irq; + int intx_irq; + int num_events; +}; + +struct mc_pcie { + struct plda_pcie_rp plda; + void *bridge_base_addr; + void *ctrl_base_addr; +}; + +struct mc_rsp_api_ver { + __le16 major_ver; + __le16 minor_ver; +}; + +struct mc_rsp_create { + __le32 object_id; +}; + +struct mc_subled { + unsigned int color_index; + unsigned int brightness; + unsigned int intensity; + unsigned int channel; +}; + +struct mcfg_entry { + struct list_head list; + phys_addr_t addr; + u16 segment; + u8 bus_start; + u8 bus_end; +}; + +struct pci_ecam_ops; + +struct mcfg_fixup { + char oem_id[7]; + char oem_table_id[9]; + u32 oem_revision; + u16 segment; + struct resource bus_range; + const struct pci_ecam_ops *ops; + struct resource cfgres; +}; + +struct reset_props; + +struct mchp_reset_context { + struct regmap *cpu_ctrl; + struct regmap *gcb_ctrl; + struct reset_controller_dev rcdev; + const struct reset_props *props; +}; + +struct mcs_spinlock { + struct mcs_spinlock *next; + int locked; + int count; +}; + +struct mctp_addr { + mctp_eid_t s_addr; +}; + +struct mctp_netdev_ops; + +struct mctp_dev { + struct net_device *dev; + refcount_t refs; + unsigned int net; + enum mctp_phys_binding binding; + const struct mctp_netdev_ops *ops; + u8 *addrs; + size_t num_addrs; + spinlock_t addrs_lock; + struct callback_head rcu; +}; + +struct mctp_dump_cb { + long unsigned int ifindex; + size_t a_idx; +}; + +struct mctp_sk_key; + +struct mctp_flow { + struct mctp_sk_key *key; +}; + +struct mctp_hdr { + u8 ver; + u8 dest; + u8 src; + u8 flags_seq_tag; +}; + +struct mctp_ioc_tag_ctl { + mctp_eid_t peer_addr; + __u8 tag; + __u16 flags; +}; + +struct mctp_ioc_tag_ctl2 { + unsigned int net; + mctp_eid_t peer_addr; + mctp_eid_t local_addr; + __u16 flags; + __u8 tag; +}; + +struct mctp_neigh { + struct mctp_dev *dev; + mctp_eid_t eid; + enum mctp_neigh_source source; + unsigned char ha[32]; + struct list_head list; + struct callback_head rcu; +}; + +struct mctp_netdev_ops { + void (*release_flow)(struct mctp_dev *, struct mctp_sk_key *); +}; + +struct mctp_route { + mctp_eid_t min; + mctp_eid_t max; + unsigned char type; + unsigned int mtu; + struct mctp_dev *dev; + int (*output)(struct mctp_route *, struct sk_buff *); + struct list_head list; + refcount_t refs; + struct callback_head rcu; +}; + +struct mctp_sk_key { + unsigned int net; + mctp_eid_t peer_addr; + mctp_eid_t local_addr; + __u8 tag; + struct sock *sk; + struct hlist_node hlist; + struct hlist_node sklist; + spinlock_t lock; + refcount_t refs; + struct sk_buff *reasm_head; + struct sk_buff **reasm_tailp; + bool reasm_dead; + u8 last_seq; + bool valid; + long unsigned int expiry; + long unsigned int dev_flow_state; + struct mctp_dev *dev; + bool manual_alloc; +}; + +struct mctp_skb_cb { + unsigned int magic; + unsigned int net; + int ifindex; + mctp_eid_t src; + unsigned char halen; + unsigned char haddr[32]; +}; + +struct mctp_sock { + struct sock sk; + unsigned int bind_net; + mctp_eid_t bind_addr; + __u8 bind_type; + bool addr_ext; + struct hlist_head keys; + struct timer_list key_expiry; +}; + +struct mctrl_gpios { + struct uart_port *port; + struct gpio_desc *gpio[6]; + int irq[6]; + unsigned int mctrl_prev; + bool mctrl_on; +}; + +struct md5_state { + u32 hash[4]; + u32 block[16]; + u64 byte_count; +}; + +struct md_bitmap_stats { + u64 events_cleared; + int behind_writes; + bool behind_wait; + long unsigned int missing_pages; + long unsigned int file_pages; + long unsigned int sync_size; + long unsigned int pages; + struct file *file; +}; + +struct md_rdev; + +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); + int (*resync_start_notify)(struct mddev *); + int (*resync_status_get)(struct mddev *); + 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 md_io_clone { + struct mddev *mddev; + struct bio *orig_bio; + long unsigned int start_time; + sector_t offset; + long unsigned int sectors; + struct bio bio_clone; +}; + +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, sector_t, int *); + int (*resize)(struct mddev *, sector_t); + sector_t (*size)(struct mddev *, sector_t, int); + int (*check_reshape)(struct mddev *); + int (*start_reshape)(struct mddev *); + void (*finish_reshape)(struct mddev *); + void (*update_reshape_pos)(struct mddev *); + void (*prepare_suspend)(struct mddev *); + void (*quiesce)(struct mddev *, int); + void * (*takeover)(struct mddev *); + int (*change_consistency_policy)(struct mddev *, const char *); + void (*bitmap_sector)(struct mddev *, sector_t *, long unsigned int *); +}; + +struct serial_in_rdev; + +struct md_rdev { + struct list_head same_set; + sector_t sectors; + struct mddev *mddev; + int last_events; + struct block_device *meta_bdev; + struct block_device *bdev; + struct file *bdev_file; + struct page *sb_page; + struct page *bb_page; + int sb_loaded; + __u64 sb_events; + sector_t data_offset; + sector_t new_data_offset; + sector_t sb_start; + int sb_size; + int preferred_minor; + struct kobject kobj; + long unsigned int flags; + wait_queue_head_t blocked_wait; + int desc_nr; + int raid_disk; + int new_raid_disk; + int saved_raid_disk; + union { + sector_t recovery_offset; + sector_t journal_tail; + }; + atomic_t nr_pending; + atomic_t read_errors; + time64_t last_read_error; + atomic_t corrected_errors; + struct serial_in_rdev *serial; + struct kernfs_node *sysfs_state; + struct kernfs_node *sysfs_unack_badblocks; + struct kernfs_node *sysfs_badblocks; + struct badblocks badblocks; + struct { + short int offset; + unsigned int size; + sector_t sector; + } ppl; +}; + +struct md_setup_args { + int minor; + int partitioned; + int level; + int chunk; + char *device_names; +}; + +struct md_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct mddev *, char *); + ssize_t (*store)(struct mddev *, const char *, size_t); +}; + +struct md_thread { + void (*run)(struct md_thread *); + struct mddev *mddev; + wait_queue_head_t wqueue; + long unsigned int flags; + struct task_struct *tsk; + long unsigned int timeout; + void *private; +}; + +struct md_cluster_info; + +struct mddev { + void *private; + struct md_personality *pers; + dev_t unit; + int md_minor; + struct list_head disks; + long unsigned int flags; + long unsigned int sb_flags; + int suspended; + struct mutex suspend_mutex; + struct percpu_ref active_io; + int ro; + int sysfs_active; + struct gendisk *gendisk; + struct kobject kobj; + int hold_active; + int major_version; + int minor_version; + int patch_version; + int persistent; + int external; + char metadata_type[17]; + int chunk_sectors; + time64_t ctime; + time64_t utime; + int level; + int layout; + char clevel[16]; + int raid_disks; + int max_disks; + sector_t dev_sectors; + sector_t array_sectors; + int external_size; + __u64 events; + int can_decrease_events; + char uuid[16]; + sector_t reshape_position; + int delta_disks; + int new_level; + int new_layout; + int new_chunk_sectors; + int reshape_backwards; + struct md_thread *thread; + struct md_thread *sync_thread; + enum sync_action last_sync_action; + sector_t curr_resync; + sector_t curr_resync_completed; + long unsigned int 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; + long unsigned int recovery; + int recovery_disabled; + int in_sync; + struct mutex open_mutex; + struct mutex reconfig_mutex; + atomic_t active; + atomic_t openers; + int changed; + int degraded; + atomic_t recovery_active; + wait_queue_head_t recovery_wait; + sector_t recovery_cp; + sector_t resync_min; + sector_t resync_max; + struct kernfs_node *sysfs_state; + struct kernfs_node *sysfs_action; + struct kernfs_node *sysfs_completed; + struct kernfs_node *sysfs_degraded; + struct kernfs_node *sysfs_level; + struct work_struct del_work; + struct work_struct sync_work; + spinlock_t lock; + wait_queue_head_t sb_wait; + atomic_t pending_writes; + unsigned int safemode; + unsigned int safemode_delay; + struct timer_list safemode_timer; + struct percpu_ref writes_pending; + int sync_checkers; + void *bitmap; + struct bitmap_operations *bitmap_ops; + struct { + struct file *file; + loff_t offset; + long unsigned int space; + loff_t default_offset; + long unsigned int default_space; + struct mutex mutex; + long unsigned int chunksize; + long unsigned int daemon_sleep; + long unsigned int max_write_behind; + int external; + int nodes; + char cluster_name[64]; + } bitmap_info; + atomic_t max_corr_read_errors; + struct list_head all_mddevs; + const struct attribute_group *to_remove; + struct bio_set bio_set; + struct bio_set sync_set; + struct bio_set io_clone_set; + struct work_struct event_work; + mempool_t *serial_info_pool; + void (*sync_super)(struct mddev *, struct md_rdev *); + struct md_cluster_info *cluster_info; + unsigned int good_device_nr; + unsigned int noio_flag; + struct list_head deleting; + atomic_t sync_seq; + bool has_superblocks: 1; + bool fail_last_dev: 1; + bool serialize_policy: 1; +}; + +struct mdio_board_info { + const char *bus_id; + char modalias[32]; + int mdio_addr; + const void *platform_data; +}; + +struct mdio_board_entry { + struct list_head list; + struct mdio_board_info board_info; +}; + +struct mdio_bus_stat_attr { + int addr; + unsigned int field_offset; +}; + +struct mdio_bus_stats { + u64_stats_t transfers; + u64_stats_t errors; + u64_stats_t writes; + u64_stats_t reads; + struct u64_stats_sync syncp; +}; + +struct mdio_device { + struct device dev; + struct mii_bus *bus; + char modalias[32]; + int (*bus_match)(struct device *, const struct device_driver *); + void (*device_free)(struct mdio_device *); + void (*device_remove)(struct mdio_device *); + int addr; + int flags; + int reset_state; + struct gpio_desc *reset_gpio; + struct reset_control *reset_ctrl; + unsigned int reset_assert_delay; + unsigned int reset_deassert_delay; +}; + +struct mdio_device_id { + __u32 phy_id; + __u32 phy_id_mask; +}; + +struct mdio_driver_common { + struct device_driver driver; + int flags; +}; + +struct mdio_driver { + struct mdio_driver_common mdiodrv; + int (*probe)(struct mdio_device *); + void (*remove)(struct mdio_device *); + void (*shutdown)(struct mdio_device *); +}; + +struct tgec_mdio_controller; + +struct mdio_fsl_priv { + struct tgec_mdio_controller *mdio_base; + struct clk *enet_clk; + u32 mdc_freq; + bool is_little_endian; + bool has_a009885; + bool has_a011043; +}; + +struct mdiobb_ops { + struct module *owner; + void (*set_mdc)(struct mdiobb_ctrl *, int); + void (*set_mdio_dir)(struct mdiobb_ctrl *, int); + void (*set_mdio_data)(struct mdiobb_ctrl *, int); + int (*get_mdio_data)(struct mdiobb_ctrl *); +}; + +struct mdiobus_devres { + struct mii_bus *mii; +}; + +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_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 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 mdu_array_info_s { + int major_version; + int minor_version; + int patch_version; + unsigned int ctime; + int level; + int size; + int nr_disks; + int raid_disks; + int md_minor; + int not_persistent; + unsigned int utime; + int state; + int active_disks; + int working_disks; + int failed_disks; + int spare_disks; + int layout; + int chunk_size; +}; + +typedef struct mdu_array_info_s mdu_array_info_t; + +struct mdu_bitmap_file_s { + char pathname[4096]; +}; + +typedef struct mdu_bitmap_file_s mdu_bitmap_file_t; + +struct mdu_disk_info_s { + int number; + int major; + int minor; + int raid_disk; + int state; +}; + +typedef struct mdu_disk_info_s mdu_disk_info_t; + +struct mdu_version_s { + int major; + int minor; + int patchlevel; +}; + +typedef struct mdu_version_s mdu_version_t; + +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 regulator_coupler { + struct list_head list; + int (*attach_regulator)(struct regulator_coupler *, struct regulator_dev *); + int (*detach_regulator)(struct regulator_coupler *, struct regulator_dev *); + int (*balance_voltage)(struct regulator_coupler *, struct regulator_dev *, suspend_state_t); +}; + +struct mediatek_regulator_coupler { + struct regulator_coupler coupler; + struct regulator_dev *vsram_rdev; +}; + +struct mem_cgroup_id { + int id; + refcount_t ref; +}; + +struct vmpressure { + long unsigned int scanned; + long unsigned int reclaimed; + long unsigned int tree_scanned; + long unsigned int tree_reclaimed; + spinlock_t sr_lock; + struct list_head events; + struct mutex events_lock; + struct work_struct work; +}; + +struct wb_domain { + spinlock_t lock; + struct fprop_global completions; + struct timer_list period_timer; + long unsigned int period_time; + long unsigned int dirty_limit_tstamp; + long unsigned int dirty_limit; +}; + +struct wb_completion { + atomic_t cnt; + wait_queue_head_t *waitq; +}; + +struct memcg_cgwb_frn { + u64 bdi_id; + int memcg_id; + u64 at; + struct wb_completion done; +}; + +struct memcg_vmstats; + +struct memcg_vmstats_percpu; + +struct mem_cgroup_per_node; + +struct mem_cgroup { + struct cgroup_subsys_state css; + struct mem_cgroup_id id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct page_counter memory; + union { + struct page_counter swap; + struct page_counter memsw; + }; + struct list_head memory_peaks; + struct list_head swap_peaks; + spinlock_t peaks_lock; + struct work_struct high_work; + long unsigned int zswap_max; + bool zswap_writeback; + struct vmpressure vmpressure; + bool oom_group; + int swappiness; + struct cgroup_file events_file; + struct cgroup_file events_local_file; + struct cgroup_file swap_events_file; + struct memcg_vmstats *vmstats; + atomic_long_t memory_events[9]; + atomic_long_t memory_events_local[9]; + long unsigned int socket_pressure; + int kmemcg_id; + struct obj_cgroup *objcg; + struct obj_cgroup *orig_objcg; + struct list_head objcg_list; + struct memcg_vmstats_percpu *vmstats_percpu; + struct list_head cgwb_list; + struct wb_domain cgwb_domain; + struct memcg_cgwb_frn cgwb_frn[4]; + struct deferred_split deferred_split_queue; + struct lru_gen_mm_list mm_list; + struct mem_cgroup_per_node *nodeinfo[0]; + long: 64; + long: 64; +}; + +struct mem_cgroup_reclaim_iter { + struct mem_cgroup *position; + atomic_t generation; +}; + +struct shrinker_info; + +struct mem_cgroup_per_node { + struct mem_cgroup *memcg; + struct lruvec_stats_percpu *lruvec_stats_percpu; + struct lruvec_stats *lruvec_stats; + struct shrinker_info *shrinker_info; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct lruvec lruvec; + long: 64; + long: 64; + struct cacheline_padding _pad2_; + long unsigned int lru_zone_size[25]; + struct mem_cgroup_reclaim_iter iter; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +typedef struct pglist_data pg_data_t; + +struct mem_cgroup_reclaim_cookie { + pg_data_t *pgdat; + int generation; +}; + +struct mcidev_sysfs_attribute; + +struct mem_ctl_info { + struct device dev; + const struct bus_type *bus; + struct list_head link; + struct module *owner; + long unsigned int mtype_cap; + long unsigned int edac_ctl_cap; + long unsigned int edac_cap; + long unsigned int scrub_cap; + enum scrub_type scrub_mode; + int (*set_sdram_scrub_rate)(struct mem_ctl_info *, u32); + int (*get_sdram_scrub_rate)(struct mem_ctl_info *); + void (*edac_check)(struct mem_ctl_info *); + long unsigned int (*ctl_page_to_phys)(struct mem_ctl_info *, long unsigned int); + int mc_idx; + struct csrow_info **csrows; + unsigned int nr_csrows; + unsigned int num_cschannel; + unsigned int n_layers; + struct edac_mc_layer *layers; + bool csbased; + unsigned int tot_dimms; + struct dimm_info **dimms; + struct device *pdev; + const char *mod_name; + const char *ctl_name; + const char *dev_name; + void *pvt_info; + long unsigned int start_time; + u32 ce_noinfo_count; + u32 ue_noinfo_count; + u32 ue_mc; + u32 ce_mc; + struct completion complete; + const struct mcidev_sysfs_attribute *mc_driver_sysfs_attributes; + struct delayed_work work; + struct edac_raw_error_desc error_desc; + int op_state; + struct dentry *debugfs; + u8 fake_inject_layer[3]; + bool fake_inject_ue; + u16 fake_inject_count; +}; + +struct quota_format_type; + +struct mem_dqinfo { + struct quota_format_type *dqi_format; + int dqi_fmt_id; + struct list_head dqi_dirty_list; + long unsigned int 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 mem_section_usage; + +struct mem_section { + long unsigned int section_mem_map; + struct mem_section_usage *usage; +}; + +struct mem_section_usage { + struct callback_head rcu; + long unsigned int subsection_map[1]; + long unsigned int pageblock_flags[0]; +}; + +struct mem_size_stats { + long unsigned int resident; + long unsigned int shared_clean; + long unsigned int shared_dirty; + long unsigned int private_clean; + long unsigned int private_dirty; + long unsigned int referenced; + long unsigned int anonymous; + long unsigned int lazyfree; + long unsigned int anonymous_thp; + long unsigned int shmem_thp; + long unsigned int file_thp; + long unsigned int swap; + long unsigned int shared_hugetlb; + long unsigned int private_hugetlb; + long unsigned int ksm; + u64 pss; + u64 pss_anon; + u64 pss_file; + u64 pss_shmem; + u64 pss_dirty; + u64 pss_locked; + u64 swap_pss; +}; + +struct memac_cfg { + bool reset_on_init; + bool pause_ignore; + bool promiscuous_mode_enable; + u16 max_frame_length; + u16 pause_quanta; + u32 tx_ipg_length; +}; + +struct memac_regs { + u32 res0000[2]; + u32 command_config; + struct mac_addr___2 mac_addr0; + u32 maxfrm; + u32 res0018[1]; + u32 rx_fifo_sections; + u32 tx_fifo_sections; + u32 res0024[2]; + u32 hashtable_ctrl; + u32 res0030[4]; + u32 ievent; + u32 tx_ipg_length; + u32 res0048; + u32 imask; + u32 res0050; + u32 pause_quanta[4]; + u32 pause_thresh[4]; + u32 rx_pause_status; + u32 res0078[2]; + struct mac_addr___2 mac_addr[7]; + u32 lpwake_timer; + u32 sleep_timer; + u32 res00c0[8]; + u32 statn_config; + u32 res00e4[7]; + u32 reoct_l; + u32 reoct_u; + u32 roct_l; + u32 roct_u; + u32 raln_l; + u32 raln_u; + u32 rxpf_l; + u32 rxpf_u; + u32 rfrm_l; + u32 rfrm_u; + u32 rfcs_l; + u32 rfcs_u; + u32 rvlan_l; + u32 rvlan_u; + u32 rerr_l; + u32 rerr_u; + u32 ruca_l; + u32 ruca_u; + u32 rmca_l; + u32 rmca_u; + u32 rbca_l; + u32 rbca_u; + u32 rdrp_l; + u32 rdrp_u; + u32 rpkt_l; + u32 rpkt_u; + u32 rund_l; + u32 rund_u; + u32 r64_l; + u32 r64_u; + u32 r127_l; + u32 r127_u; + u32 r255_l; + u32 r255_u; + u32 r511_l; + u32 r511_u; + u32 r1023_l; + u32 r1023_u; + u32 r1518_l; + u32 r1518_u; + u32 r1519x_l; + u32 r1519x_u; + u32 rovr_l; + u32 rovr_u; + u32 rjbr_l; + u32 rjbr_u; + u32 rfrg_l; + u32 rfrg_u; + u32 rcnp_l; + u32 rcnp_u; + u32 rdrntp_l; + u32 rdrntp_u; + u32 res01d0[12]; + u32 teoct_l; + u32 teoct_u; + u32 toct_l; + u32 toct_u; + u32 res0210[2]; + u32 txpf_l; + u32 txpf_u; + u32 tfrm_l; + u32 tfrm_u; + u32 tfcs_l; + u32 tfcs_u; + u32 tvlan_l; + u32 tvlan_u; + u32 terr_l; + u32 terr_u; + u32 tuca_l; + u32 tuca_u; + u32 tmca_l; + u32 tmca_u; + u32 tbca_l; + u32 tbca_u; + u32 res0258[2]; + u32 tpkt_l; + u32 tpkt_u; + u32 tund_l; + u32 tund_u; + u32 t64_l; + u32 t64_u; + u32 t127_l; + u32 t127_u; + u32 t255_l; + u32 t255_u; + u32 t511_l; + u32 t511_u; + u32 t1023_l; + u32 t1023_u; + u32 t1518_l; + u32 t1518_u; + u32 t1519x_l; + u32 t1519x_u; + u32 res02a8[6]; + u32 tcnp_l; + u32 tcnp_u; + u32 res02c8[14]; + u32 if_mode; + u32 if_status; + u32 res0308[14]; + u32 hg_config; + u32 res0344[3]; + u32 hg_pause_quanta; + u32 res0354[3]; + u32 hg_pause_thresh; + u32 res0364[3]; + u32 hgrx_pause_status; + u32 hg_fifos_status; + u32 rhm; + u32 thm; +}; + +struct memblock_region; + +struct memblock_type { + long unsigned int cnt; + long unsigned int max; + phys_addr_t total_size; + struct memblock_region *regions; + char *name; +}; + +struct memblock { + bool bottom_up; + phys_addr_t current_limit; + struct memblock_type memory; + struct memblock_type reserved; +}; + +struct memblock_region { + phys_addr_t base; + phys_addr_t size; + enum memblock_flags flags; + int nid; +}; + +struct membuf { + void *p; + size_t left; +}; + +struct memcg_stock_pcp { + local_lock_t stock_lock; + struct mem_cgroup *cached; + unsigned int nr_pages; + struct obj_cgroup *cached_objcg; + struct pglist_data *cached_pgdat; + unsigned int nr_bytes; + int nr_slab_reclaimable_b; + int nr_slab_unreclaimable_b; + struct work_struct work; + long unsigned int flags; +}; + +struct memcg_vmstats { + long int state[39]; + long unsigned int events[27]; + long int state_local[39]; + long unsigned int events_local[27]; + long int state_pending[39]; + long unsigned int events_pending[27]; + atomic64_t stats_updates; +}; + +struct memcg_vmstats_percpu { + unsigned int stats_updates; + struct memcg_vmstats_percpu *parent; + struct memcg_vmstats *vmstats; + long int state[39]; + long unsigned int events[27]; + long int state_prev[39]; + long unsigned int events_prev[27]; + long: 64; +}; + +struct memdev { + const char *name; + const struct file_operations *fops; + fmode_t fmode; + umode_t mode; +}; + +struct memdev_dmi_entry { + u8 type; + u8 length; + u16 handle; + u16 phys_mem_array_handle; + u16 mem_err_info_handle; + u16 total_width; + u16 data_width; + u16 size; + u8 form_factor; + u8 device_set; + u8 device_locator; + u8 bank_locator; + u8 memory_type; + u16 type_detail; + u16 speed; + u8 manufacturer; + u8 serial_number; + u8 asset_tag; + u8 part_number; + u8 attributes; + u32 extended_size; + u16 conf_mem_clk_speed; +} __attribute__((packed)); + +struct memmap_attribute { + struct attribute attr; + ssize_t (*show)(struct firmware_map_entry *, char *); +}; + +struct memory_group; + +struct memory_block { + long unsigned int start_section_nr; + long unsigned int state; + int online_type; + int nid; + struct zone *zone; + struct device dev; + struct vmem_altmap *altmap; + struct memory_group *group; + struct list_head group_next; + atomic_long_t nr_hwpoison; +}; + +struct memory_dev_type { + struct list_head tier_sibling; + struct list_head list; + int adistance; + nodemask_t nodes; + struct kref kref; +}; + +struct memory_failure_entry { + long unsigned int pfn; + int flags; +}; + +struct memory_failure_cpu { + struct { + union { + struct __kfifo kfifo; + struct memory_failure_entry *type; + const struct memory_failure_entry *const_type; + char (*rectype)[0]; + struct memory_failure_entry *ptr; + const struct memory_failure_entry *ptr_const; + }; + struct memory_failure_entry buf[16]; + } fifo; + raw_spinlock_t lock; + struct work_struct work; +}; + +struct memory_failure_stats { + long unsigned int total; + long unsigned int ignored; + long unsigned int failed; + long unsigned int delayed; + long unsigned int recovered; +}; + +struct memory_group { + int nid; + struct list_head memory_blocks; + long unsigned int present_kernel_pages; + long unsigned int present_movable_pages; + bool is_dynamic; + union { + struct { + long unsigned int max_pages; + } s; + struct { + long unsigned int unit_pages; + } d; + }; +}; + +struct memory_initiator { + struct list_head node; + unsigned int processor_pxm; + bool has_cpu; +}; + +struct memory_locality { + struct list_head node; + struct acpi_hmat_locality *hmat_loc; +}; + +struct memory_notify { + long unsigned int altmap_start_pfn; + long unsigned int altmap_nr_pages; + long unsigned int start_pfn; + long unsigned int nr_pages; + int status_change_nid_normal; + int status_change_nid; +}; + +struct memory_stat { + const char *name; + unsigned int idx; +}; + +struct node_cache_attrs { + enum cache_indexing indexing; + enum cache_write_policy write_policy; + u64 size; + u16 line_size; + u8 level; +}; + +struct memory_target { + struct list_head node; + unsigned int memory_pxm; + unsigned int processor_pxm; + struct resource memregions; + struct access_coordinate coord[4]; + struct list_head caches; + struct node_cache_attrs cache_attrs; + u8 gen_port_device_handle[16]; + bool registered; + bool ext_updated; +}; + +struct memory_tier { + struct list_head list; + struct list_head memory_types; + int adistance_start; + struct device dev; + nodemask_t lower_tier_mask; +}; + +struct mempolicy { + atomic_t refcnt; + short unsigned int mode; + short unsigned int flags; + nodemask_t nodes; + int home_node; + union { + nodemask_t cpuset_mems_allowed; + nodemask_t user_nodemask; + } w; +}; + +struct mempolicy_operations { + int (*create)(struct mempolicy *, const nodemask_t *); + void (*rebind)(struct mempolicy *, const nodemask_t *); +}; + +struct menu_device { + int needs_update; + int tick_wakeup; + u64 next_timer_ns; + unsigned int bucket; + unsigned int correction_factor[6]; + unsigned int intervals[8]; + int interval_ptr; +}; + +struct meson8_pmx_data { + bool is_gpio; + unsigned int reg; + unsigned int bit; +}; + +struct meson_clk_hw_data { + struct clk_hw **hws; + unsigned int num; +}; + +struct meson_aoclk_data { + const unsigned int reset_reg; + const int num_reset; + const unsigned int *reset; + const int num_clks; + struct clk_regmap___2 **clks; + struct meson_clk_hw_data hw_clks; +}; + +struct meson_aoclk_reset_controller { + struct reset_controller_dev reset; + const struct meson_aoclk_data *data; + struct regmap *regmap; +}; + +struct meson_pmx_bank; + +struct meson_axg_pmx_data { + const struct meson_pmx_bank *pmx_banks; + unsigned int num_pmx_banks; +}; + +struct meson_reg_desc { + unsigned int reg; + unsigned int bit; +}; + +struct meson_bank { + const char *name; + unsigned int first; + unsigned int last; + int irq_first; + int irq_last; + struct meson_reg_desc regs[6]; +}; + +struct parm { + u16 reg_off; + u8 shift; + u8 width; +}; + +struct meson_clk_cpu_dyndiv_data { + struct parm div; + struct parm dyn; +}; + +struct meson_clk_dualdiv_param; + +struct meson_clk_dualdiv_data { + struct parm n1; + struct parm n2; + struct parm m1; + struct parm m2; + struct parm dual; + const struct meson_clk_dualdiv_param *table; +}; + +struct meson_clk_dualdiv_param { + unsigned int n1; + unsigned int n2; + unsigned int m1; + unsigned int m2; + unsigned int dual; +}; + +struct meson_clk_mpll_data { + struct parm sdm; + struct parm sdm_en; + struct parm n2; + struct parm ssen; + struct parm misc; + const struct reg_sequence *init_regs; + unsigned int init_count; + u8 flags; +}; + +struct pll_params_table; + +struct pll_mult_range; + +struct meson_clk_pll_data { + struct parm en; + struct parm m; + struct parm n; + struct parm frac; + struct parm l; + struct parm rst; + struct parm current_en; + struct parm l_detect; + const struct reg_sequence *init_regs; + unsigned int init_count; + const struct pll_params_table *table; + const struct pll_mult_range *range; + unsigned int frac_max; + u8 flags; +}; + +struct meson_ee_pwrc_domain; + +struct meson_ee_pwrc { + struct regmap *regmap_ao; + struct regmap *regmap_hhi; + struct meson_ee_pwrc_domain *domains; + struct genpd_onecell_data xlate; +}; + +struct meson_ee_pwrc_top_domain; + +struct meson_ee_pwrc_mem_domain; + +struct meson_ee_pwrc_domain_desc { + char *name; + unsigned int reset_names_count; + unsigned int clk_names_count; + struct meson_ee_pwrc_top_domain *top_pd; + unsigned int mem_pd_count; + struct meson_ee_pwrc_mem_domain *mem_pd; + bool (*is_powered_off)(struct meson_ee_pwrc_domain *); +}; + +struct meson_ee_pwrc_domain { + struct generic_pm_domain base; + bool enabled; + struct meson_ee_pwrc *pwrc; + struct meson_ee_pwrc_domain_desc desc; + struct clk_bulk_data *clks; + int num_clks; + struct reset_control *rstc; + int num_rstc; +}; + +struct meson_ee_pwrc_domain_data { + unsigned int count; + struct meson_ee_pwrc_domain_desc *domains; +}; + +struct meson_ee_pwrc_mem_domain { + unsigned int reg; + unsigned int mask; +}; + +struct meson_ee_pwrc_top_domain { + unsigned int sleep_reg; + unsigned int sleep_mask; + unsigned int iso_reg; + unsigned int iso_mask; +}; + +struct meson_eeclkc_data { + struct clk_regmap___2 * const *regmap_clks; + unsigned int regmap_clk_num; + const struct reg_sequence *init_regs; + unsigned int init_count; + struct meson_clk_hw_data hw_clks; +}; + +struct meson_g12a_data { + const struct meson_eeclkc_data eeclkc_data; + int (*dvfs_setup)(struct platform_device *); +}; + +struct meson_gpio_irq_params; + +struct meson_gpio_irq_controller { + const struct meson_gpio_irq_params *params; + void *base; + u32 channel_irqs[64]; + long unsigned int channel_map[1]; + raw_spinlock_t lock; +}; + +struct meson_gpio_irq_params { + unsigned int nr_hwirq; + unsigned int nr_channels; + bool support_edge_both; + unsigned int edge_both_offset; + unsigned int edge_single_offset; + unsigned int pol_low_offset; + unsigned int pin_sel_mask; + struct irq_ctl_ops ops; +}; + +struct meson_gx_package_id { + const char *name; + unsigned int major_id; + unsigned int pack_id; + unsigned int pack_mask; +}; + +struct meson_gx_soc_id { + const char *name; + unsigned int id; +}; + +struct meson_msr; + +struct meson_msr_id { + struct meson_msr *priv; + unsigned int id; + const char *name; +}; + +struct meson_msr { + struct regmap *regmap; + struct meson_msr_id msr_table[128]; +}; + +struct meson_pinctrl_data; + +struct meson_pinctrl { + struct device *dev; + struct pinctrl_dev *pcdev; + struct pinctrl_desc desc; + struct meson_pinctrl_data *data; + struct regmap *reg_mux; + struct regmap *reg_pullen; + struct regmap *reg_pull; + struct regmap *reg_gpio; + struct regmap *reg_ds; + struct gpio_chip chip; + struct fwnode_handle *fwnode; +}; + +struct meson_pmx_group; + +struct meson_pmx_func; + +struct meson_pinctrl_data { + const char *name; + const struct pinctrl_pin_desc *pins; + const struct meson_pmx_group *groups; + const struct meson_pmx_func *funcs; + unsigned int num_pins; + unsigned int num_groups; + unsigned int num_funcs; + const struct meson_bank *banks; + unsigned int num_banks; + const struct pinmux_ops *pmx_ops; + const void *pmx_data; + int (*parse_dt)(struct meson_pinctrl *); +}; + +struct meson_pmx_axg_data { + unsigned int func; +}; + +struct meson_pmx_bank { + const char *name; + unsigned int first; + unsigned int last; + unsigned int reg; + unsigned int offset; +}; + +struct meson_pmx_func { + const char *name; + const char * const *groups; + unsigned int num_groups; +}; + +struct meson_pmx_group { + const char *name; + const unsigned int *pins; + unsigned int num_pins; + const void *data; +}; + +struct meson_reset_param; + +struct meson_reset { + const struct meson_reset_param *param; + struct reset_controller_dev rcdev; + struct regmap *map; +}; + +struct meson_reset_param { + const struct reset_control_ops *reset_ops; + unsigned int reset_num; + unsigned int reset_offset; + unsigned int level_offset; + bool level_low_reset; +}; + +struct meson_secure_pwrc_domain; + +struct meson_sm_firmware; + +struct meson_secure_pwrc { + struct meson_secure_pwrc_domain *domains; + struct genpd_onecell_data xlate; + struct meson_sm_firmware *fw; +}; + +struct meson_secure_pwrc_domain { + struct generic_pm_domain base; + unsigned int index; + unsigned int parent; + struct meson_secure_pwrc *pwrc; +}; + +struct meson_secure_pwrc_domain_desc; + +struct meson_secure_pwrc_domain_data { + unsigned int count; + const struct meson_secure_pwrc_domain_desc *domains; +}; + +struct meson_secure_pwrc_domain_desc { + unsigned int index; + unsigned int parent; + unsigned int flags; + char *name; + bool (*is_off)(struct meson_secure_pwrc_domain *); +}; + +struct meson_sm_cmd { + unsigned int index; + u32 smc_id; +}; + +struct meson_sm_chip { + unsigned int shmem_size; + u32 cmd_shmem_in_base; + u32 cmd_shmem_out_base; + struct meson_sm_cmd cmd[0]; +}; + +struct meson_sm_firmware { + const struct meson_sm_chip *chip; + void *sm_shmem_in_base; + void *sm_shmem_out_base; +}; + +struct uart_driver; + +struct meson_uart_data { + struct uart_driver *uart_driver; + bool has_xtal_div2; +}; + +struct meson_vclk_div_data { + struct parm div; + struct parm enable; + struct parm reset; + const struct clk_div_table *table; + u8 flags; +}; + +struct meson_vclk_gate_data { + struct parm enable; + struct parm reset; + u8 flags; +}; + +struct meson_vid_pll_div_data { + struct parm val; + struct parm sel; +}; + +struct meta_entry { + u64 data_block; + unsigned int index_block; + short unsigned int offset; + short unsigned int pad; +}; + +struct meta_index { + unsigned int inode_number; + unsigned int offset; + short unsigned int entries; + short unsigned int skip; + short unsigned int locked; + short unsigned int pad; + struct meta_entry meta_entry[127]; +}; + +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 mf6cctl { + struct sockaddr_in6 mf6cc_origin; + struct sockaddr_in6 mf6cc_mcastgrp; + mifi_t mf6cc_parent; + struct if_set mf6cc_ifset; +}; + +struct mr_mfc { + struct rhlist_head mnode; + short unsigned int mfc_parent; + int mfc_flags; + union { + struct { + long unsigned int expires; + struct sk_buff_head unresolved; + } unres; + struct { + long unsigned int last_assert; + int minvif; + int maxvif; + atomic_long_t bytes; + atomic_long_t pkt; + atomic_long_t wrong_if; + long unsigned int 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 mfc6_cache_cmp_arg { + struct in6_addr mf6c_mcastgrp; + struct in6_addr mf6c_origin; +}; + +struct mfc6_cache { + struct mr_mfc _c; + union { + struct { + struct in6_addr mf6c_mcastgrp; + struct in6_addr mf6c_origin; + }; + struct mfc6_cache_cmp_arg cmparg; + }; +}; + +struct mfc_cache_cmp_arg { + __be32 mfc_mcastgrp; + __be32 mfc_origin; +}; + +struct mfc_cache { + struct mr_mfc _c; + union { + struct { + __be32 mfc_mcastgrp; + __be32 mfc_origin; + }; + struct mfc_cache_cmp_arg cmparg; + }; +}; + +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 mfd_cell_acpi_match; + +struct mfd_cell { + const char *name; + int id; + int level; + int (*suspend)(struct platform_device *); + int (*resume)(struct platform_device *); + const void *platform_data; + size_t pdata_size; + const struct mfd_cell_acpi_match *acpi_match; + const struct software_node *swnode; + const char *of_compatible; + u64 of_reg; + bool use_of_reg; + int num_resources; + const struct resource *resources; + bool ignore_resource_conflicts; + bool pm_runtime_no_callbacks; + int num_parent_supplies; + const char * const *parent_supplies; +}; + +struct mfd_cell_acpi_match { + const char *pnpid; + const long long unsigned int adr; +}; + +struct mfd_of_node_entry { + struct list_head list; + struct device *dev; + struct device_node *np; +}; + +struct mhp_params { + struct vmem_altmap *altmap; + pgprot_t pgprot; + struct dev_pagemap *pgmap; +}; + +struct mif6ctl { + mifi_t mif6c_mifi; + unsigned char mif6c_flags; + unsigned char vifc_threshold; + __u16 mif6c_pifi; + unsigned int vifc_rate_limit; +}; + +struct migrate_pages_stats { + int nr_succeeded; + int nr_failed_pages; + int nr_thp_succeeded; + int nr_thp_failed; + int nr_thp_split; + int nr_split; +}; + +struct 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 migrate_vma { + struct vm_area_struct *vma; + long unsigned int *dst; + long unsigned int *src; + long unsigned int cpages; + long unsigned int npages; + long unsigned int start; + long unsigned int end; + void *pgmap_owner; + long unsigned int flags; + struct page *fault_page; +}; + +struct set_affinity_pending; + +struct migration_arg { + struct task_struct *task; + int dest_cpu; + struct set_affinity_pending *pending; +}; + +struct migration_mpol { + struct mempolicy *pol; + long unsigned int ilx; +}; + +struct migration_swap_arg { + struct task_struct *src_task; + struct task_struct *dst_task; + int src_cpu; + int dst_cpu; +}; + +struct migration_target_control { + int nid; + nodemask_t *nmask; + gfp_t gfp_mask; + enum migrate_reason reason; +}; + +struct phy_package_shared; + +struct mii_bus { + struct module *owner; + const char *name; + char id[61]; + void *priv; + int (*read)(struct mii_bus *, int, int); + int (*write)(struct mii_bus *, int, int, u16); + int (*read_c45)(struct mii_bus *, int, int, int); + int (*write_c45)(struct mii_bus *, int, int, int, u16); + int (*reset)(struct mii_bus *); + struct mdio_bus_stats stats[32]; + struct mutex mdio_lock; + struct device *parent; + enum { + MDIOBUS_ALLOCATED = 1, + MDIOBUS_REGISTERED = 2, + MDIOBUS_UNREGISTERED = 3, + MDIOBUS_RELEASED = 4, + } state; + struct device dev; + struct mdio_device *mdio_map[32]; + u32 phy_mask; + u32 phy_ignore_ta_mask; + int irq[32]; + int reset_delay_us; + int reset_post_delay_us; + struct gpio_desc *reset_gpiod; + struct mutex shared_lock; + struct phy_package_shared *shared[32]; +}; + +struct 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 mii_ioctl_data { + __u16 phy_id; + __u16 reg_num; + __u16 val_in; + __u16 val_out; +}; + +struct mii_timestamper { + bool (*rxtstamp)(struct mii_timestamper *, struct sk_buff *, int); + void (*txtstamp)(struct mii_timestamper *, struct sk_buff *, int); + int (*hwtstamp)(struct mii_timestamper *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); + void (*link_state)(struct mii_timestamper *, struct phy_device *); + int (*ts_info)(struct mii_timestamper *, struct kernel_ethtool_ts_info *); + struct device *device; +}; + +struct mii_timestamping_ctrl { + struct mii_timestamper * (*probe_channel)(struct device *, unsigned int); + void (*release_channel)(struct device *, struct mii_timestamper *); +}; + +struct mii_timestamping_desc { + struct list_head list; + struct mii_timestamping_ctrl *ctrl; + struct device *device; +}; + +struct min_heap_callbacks { + bool (*less)(const void *, const void *, void *); + void (*swp)(void *, void *, void *); +}; + +struct min_heap_char { + size_t nr; + size_t size; + char *data; + char preallocated[0]; +}; + +typedef struct min_heap_char min_heap_char; + +struct tcf_proto; + +struct mini_Qdisc { + struct tcf_proto *filter_list; + struct tcf_block *block; + struct gnet_stats_basic_sync *cpu_bstats; + struct gnet_stats_queue *cpu_qstats; + long unsigned int rcu_state; +}; + +struct mini_Qdisc_pair { + struct mini_Qdisc miniq1; + struct mini_Qdisc miniq2; + struct mini_Qdisc **p_miniq; +}; + +struct minimode { + short int w; + short int h; + short int r; + short int rb; +}; + +struct minmax_sample { + u32 t; + u32 v; +}; + +struct minmax { + struct minmax_sample s[3]; +}; + +struct mipi_dsi_host; + +struct mipi_dsi_device { + struct mipi_dsi_host *host; + struct device dev; + bool attached; + char name[20]; + unsigned int channel; + unsigned int lanes; + enum mipi_dsi_pixel_format format; + long unsigned int mode_flags; + long unsigned int hs_rate; + long unsigned int lp_rate; + struct drm_dsc_config *dsc; +}; + +struct mipi_dsi_device_info { + char type[20]; + u32 channel; + struct device_node *node; +}; + +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_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 mipi_dsi_multi_context { + struct mipi_dsi_device *dsi; + int accum_err; +}; + +struct mipi_dsi_packet { + size_t size; + u8 header[4]; + size_t payload_length; + const u8 *payload; +}; + +struct misc_res { + u64 max; + atomic64_t watermark; + atomic64_t usage; + atomic64_t events; + atomic64_t events_local; +}; + +struct misc_cg { + struct cgroup_subsys_state css; + struct cgroup_file events_file; + struct cgroup_file events_local_file; + struct misc_res res[0]; +}; + +struct mld2_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + struct in6_addr grec_mca; + struct in6_addr grec_src[0]; +}; + +struct 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 mld2_report { + struct icmp6hdr mld2r_hdr; + struct mld2_grec mld2r_grec[0]; +}; + +struct mld_msg { + struct icmp6hdr mld_hdr; + struct in6_addr mld_mca; +}; + +struct mlock_fbatch { + local_lock_t lock; + struct folio_batch fbatch; +}; + +struct mm_cid { + u64 time; + int cid; + int recent_cid; +}; + +struct mm_reply_data { + struct ethnl_reply_data base; + struct ethtool_mm_state state; + struct ethtool_mm_stats stats; +}; + +struct xol_area; + +struct uprobes_state { + struct xol_area *xol_area; +}; + +struct mmu_notifier_subscriptions; + +struct mm_struct { + struct { + struct { + atomic_t mm_count; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct maple_tree mm_mt; + long unsigned int mmap_base; + long unsigned int mmap_legacy_base; + long unsigned int task_size; + pgd_t *pgd; + atomic_t membarrier_state; + atomic_t mm_users; + struct mm_cid *pcpu_cid; + long unsigned int mm_cid_next_scan; + unsigned int nr_cpus_allowed; + atomic_t max_nr_cid; + raw_spinlock_t cpus_allowed_lock; + atomic_long_t pgtables_bytes; + int map_count; + spinlock_t page_table_lock; + struct rw_semaphore mmap_lock; + struct list_head mmlist; + seqcount_t mm_lock_seq; + long unsigned int hiwater_rss; + long unsigned int hiwater_vm; + long unsigned int total_vm; + long unsigned int locked_vm; + atomic64_t pinned_vm; + long unsigned int data_vm; + long unsigned int exec_vm; + long unsigned int stack_vm; + long unsigned int def_flags; + seqcount_t write_protect_seq; + spinlock_t arg_lock; + long unsigned int start_code; + long unsigned int end_code; + long unsigned int start_data; + long unsigned int end_data; + long unsigned int start_brk; + long unsigned int brk; + long unsigned int start_stack; + long unsigned int arg_start; + long unsigned int arg_end; + long unsigned int env_start; + long unsigned int env_end; + long unsigned int saved_auxv[50]; + struct percpu_counter rss_stat[4]; + struct linux_binfmt *binfmt; + mm_context_t context; + long unsigned int flags; + spinlock_t ioctx_lock; + struct kioctx_table *ioctx_table; + struct task_struct *owner; + struct user_namespace *user_ns; + struct file *exe_file; + struct mmu_notifier_subscriptions *notifier_subscriptions; + long unsigned int numa_next_scan; + long unsigned int numa_scan_offset; + int numa_scan_seq; + atomic_t tlb_flush_pending; + atomic_t tlb_flush_batched; + struct uprobes_state uprobes_state; + atomic_long_t hugetlb_usage; + struct work_struct async_put_work; + struct iommu_mm_data *iommu_mm; + long unsigned int ksm_merging_pages; + long unsigned int ksm_rmap_items; + atomic_long_t ksm_zero_pages; + struct { + struct list_head list; + long unsigned int bitmap; + struct mem_cgroup *memcg; + } lru_gen; + }; + long unsigned int cpu_bitmap[0]; +}; + +struct mm_struct__safe_rcu_or_null { + struct file *exe_file; +}; + +struct mm_walk_ops; + +struct mm_walk { + const struct mm_walk_ops *ops; + struct mm_struct *mm; + pgd_t *pgd; + struct vm_area_struct *vma; + enum page_walk_action action; + bool no_vma; + void *private; +}; + +struct mm_walk_ops { + int (*pgd_entry)(pgd_t *, long unsigned int, long unsigned int, struct mm_walk *); + int (*p4d_entry)(p4d_t *, long unsigned int, long unsigned int, struct mm_walk *); + int (*pud_entry)(pud_t *, long unsigned int, long unsigned int, struct mm_walk *); + int (*pmd_entry)(pmd_t *, long unsigned int, long unsigned int, struct mm_walk *); + int (*pte_entry)(pte_t *, long unsigned int, long unsigned int, struct mm_walk *); + int (*pte_hole)(long unsigned int, long unsigned int, int, struct mm_walk *); + int (*hugetlb_entry)(pte_t *, long unsigned int, long unsigned int, long unsigned int, struct mm_walk *); + int (*test_walk)(long unsigned int, long unsigned int, struct mm_walk *); + int (*pre_vma)(long unsigned int, long unsigned int, struct mm_walk *); + void (*post_vma)(struct mm_walk *); + int (*install_pte)(long unsigned int, long unsigned int, pte_t *, struct mm_walk *); + enum page_walk_lock walk_lock; +}; + +struct vma_munmap_struct { + struct vma_iterator *vmi; + struct vm_area_struct *vma; + struct vm_area_struct *prev; + struct vm_area_struct *next; + struct list_head *uf; + long unsigned int start; + long unsigned int end; + long unsigned int unmap_start; + long unsigned int unmap_end; + int vma_count; + bool unlock; + bool clear_ptes; + long unsigned int nr_pages; + long unsigned int locked_vm; + long unsigned int nr_accounted; + long unsigned int exec_vm; + long unsigned int stack_vm; + long unsigned int data_vm; +}; + +struct mmap_state { + struct mm_struct *mm; + struct vma_iterator *vmi; + long unsigned int addr; + long unsigned int end; + long unsigned int pgoff; + long unsigned int pglen; + long unsigned int flags; + struct file *file; + long unsigned int charged; + bool retry_merge; + struct vm_area_struct *prev; + struct vm_area_struct *next; + struct vma_munmap_struct vms; + struct ma_state mas_detach; + struct maple_tree mt_detach; +}; + +struct mmap_unlock_irq_work { + struct irq_work irq_work; + struct mm_struct *mm; +}; + +struct uhs2_command { + u16 header; + u16 arg; + __be32 payload[2]; + u8 payload_len; + u8 packet_len; + u8 tmode_half_duplex; + u8 uhs2_resp[20]; + u8 uhs2_resp_len; +}; + +struct mmc_command; + +struct mmc_data; + +struct mmc_host; + +struct mmc_request { + struct mmc_command *sbc; + struct mmc_command *cmd; + struct mmc_data *data; + struct mmc_command *stop; + struct completion completion; + struct completion cmd_completion; + void (*done)(struct mmc_request *); + void (*recovery_notifier)(struct mmc_request *); + struct mmc_host *host; + bool cap_cmd_during_tfr; + int tag; + const struct bio_crypt_ctx *crypto_ctx; + int crypto_key_slot; + struct uhs2_command uhs2_cmd; +}; + +struct mmc_command { + u32 opcode; + u32 arg; + u32 resp[4]; + unsigned int flags; + unsigned int retries; + int error; + unsigned int busy_timeout; + struct mmc_data *data; + struct mmc_request *mrq; + struct uhs2_command *uhs2_cmd; + bool has_ext_addr; + u8 ext_addr; +}; + +struct mmc_data { + unsigned int timeout_ns; + unsigned int timeout_clks; + unsigned int blksz; + unsigned int blocks; + unsigned int blk_addr; + int error; + unsigned int flags; + unsigned int bytes_xfered; + struct mmc_command *stop; + struct mmc_request *mrq; + unsigned int sg_len; + int sg_count; + struct scatterlist *sg; + s32 host_cookie; +}; + +struct mmc_blk_request { + struct mmc_request mrq; + struct mmc_command sbc; + struct mmc_command cmd; + struct mmc_command stop; + struct mmc_data data; +}; + +struct mmc_bus_ops { + void (*remove)(struct mmc_host *); + void (*detect)(struct mmc_host *); + int (*pre_suspend)(struct mmc_host *); + int (*suspend)(struct mmc_host *); + int (*resume)(struct mmc_host *); + int (*runtime_suspend)(struct mmc_host *); + int (*runtime_resume)(struct mmc_host *); + int (*alive)(struct mmc_host *); + int (*shutdown)(struct mmc_host *); + int (*hw_reset)(struct mmc_host *); + int (*sw_reset)(struct mmc_host *); + bool (*cache_enabled)(struct mmc_host *); + int (*flush_cache)(struct mmc_host *); +}; + +struct mmc_busy_data { + struct mmc_card *card; + bool retry_crc_err; + enum mmc_busy_cmd busy_cmd; +}; + +struct mmc_cid { + unsigned int manfid; + char prod_name[8]; + unsigned char prv; + unsigned int serial; + short unsigned int oemid; + short unsigned int year; + unsigned char hwrev; + unsigned char fwrev; + unsigned char month; +}; + +struct mmc_csd { + unsigned char structure; + unsigned char mmca_vsn; + short unsigned int cmdclass; + short unsigned int taac_clks; + unsigned int taac_ns; + unsigned int c_size; + unsigned int r2w_factor; + unsigned int max_dtr; + unsigned int erase_size; + unsigned int wp_grp_size; + unsigned int read_blkbits; + unsigned int write_blkbits; + sector_t capacity; + unsigned int read_partial: 1; + unsigned int read_misalign: 1; + unsigned int write_partial: 1; + unsigned int write_misalign: 1; + unsigned int dsr_imp: 1; +}; + +struct mmc_ext_csd { + u8 rev; + u8 erase_group_def; + u8 sec_feature_support; + u8 rel_sectors; + u8 rel_param; + bool enhanced_rpmb_supported; + u8 part_config; + u8 cache_ctrl; + u8 rst_n_function; + unsigned int part_time; + unsigned int sa_timeout; + unsigned int generic_cmd6_time; + unsigned int power_off_longtime; + u8 power_off_notification; + unsigned int hs_max_dtr; + unsigned int hs200_max_dtr; + unsigned int sectors; + unsigned int hc_erase_size; + unsigned int hc_erase_timeout; + unsigned int sec_trim_mult; + unsigned int sec_erase_mult; + unsigned int trim_timeout; + bool partition_setting_completed; + long long unsigned int enhanced_area_offset; + unsigned int enhanced_area_size; + unsigned int cache_size; + bool hpi_en; + bool hpi; + unsigned int hpi_cmd; + bool bkops; + bool man_bkops_en; + bool auto_bkops_en; + unsigned int data_sector_size; + unsigned int data_tag_unit_size; + unsigned int boot_ro_lock; + bool boot_ro_lockable; + bool ffu_capable; + bool cmdq_en; + bool cmdq_support; + unsigned int cmdq_depth; + u8 fwrev[8]; + u8 raw_exception_status; + u8 raw_partition_support; + u8 raw_rpmb_size_mult; + u8 raw_erased_mem_count; + u8 strobe_support; + u8 raw_ext_csd_structure; + u8 raw_card_type; + u8 raw_driver_strength; + u8 out_of_int_time; + u8 raw_pwr_cl_52_195; + u8 raw_pwr_cl_26_195; + u8 raw_pwr_cl_52_360; + u8 raw_pwr_cl_26_360; + u8 raw_s_a_timeout; + u8 raw_hc_erase_gap_size; + u8 raw_erase_timeout_mult; + u8 raw_hc_erase_grp_size; + u8 raw_boot_mult; + u8 raw_sec_trim_mult; + u8 raw_sec_erase_mult; + u8 raw_sec_feature_support; + u8 raw_trim_mult; + u8 raw_pwr_cl_200_195; + u8 raw_pwr_cl_200_360; + u8 raw_pwr_cl_ddr_52_195; + u8 raw_pwr_cl_ddr_52_360; + u8 raw_pwr_cl_ddr_200_360; + u8 raw_bkops_status; + u8 raw_sectors[4]; + u8 pre_eol_info; + u8 device_life_time_est_typ_a; + u8 device_life_time_est_typ_b; + unsigned int feature_support; +}; + +struct sd_scr { + unsigned char sda_vsn; + unsigned char sda_spec3; + unsigned char sda_spec4; + unsigned char sda_specx; + unsigned char bus_widths; + unsigned char cmds; +}; + +struct sd_ssr { + unsigned int au; + unsigned int erase_timeout; + unsigned int erase_offset; +}; + +struct sd_switch_caps { + unsigned int hs_max_dtr; + unsigned int uhs_max_dtr; + unsigned int sd3_bus_mode; + unsigned int sd3_drv_type; + unsigned int sd3_curr_limit; +}; + +struct sd_ext_reg { + u8 fno; + u8 page; + u16 offset; + u8 rev; + u8 feature_enabled; + u8 feature_support; +}; + +struct sd_uhs2_config { + u32 node_id; + u32 n_fcu; + u32 maxblk_len; + u8 n_lanes; + u8 dadr_len; + u8 app_type; + u8 phy_minor_rev; + u8 phy_major_rev; + u8 can_hibernate; + u8 n_lss_sync; + u8 n_lss_dir; + u8 link_minor_rev; + u8 link_major_rev; + u8 dev_type; + u8 n_data_gap; + u32 n_fcu_set; + u32 maxblk_len_set; + u8 n_lanes_set; + u8 speed_range_set; + u8 n_lss_sync_set; + u8 n_lss_dir_set; + u8 n_data_gap_set; + u8 max_retry_set; +}; + +struct sdio_cccr { + unsigned int sdio_vsn; + unsigned int sd_vsn; + unsigned int multi_block: 1; + unsigned int low_speed: 1; + unsigned int wide_bus: 1; + unsigned int high_power: 1; + unsigned int high_speed: 1; + unsigned int disable_cd: 1; + unsigned int enable_async_irq: 1; +}; + +struct sdio_cis { + short unsigned int vendor; + short unsigned int device; + short unsigned int blksize; + unsigned int max_dtr; +}; + +struct mmc_part { + u64 size; + unsigned int part_cfg; + char name[20]; + bool force_ro; + unsigned int area_type; +}; + +struct sdio_func_tuple; + +struct mmc_card { + struct mmc_host *host; + struct device dev; + u32 ocr; + unsigned int rca; + unsigned int type; + unsigned int state; + unsigned int quirks; + unsigned int quirk_max_rate; + bool written_flag; + bool reenable_cmdq; + unsigned int erase_size; + unsigned int erase_shift; + unsigned int pref_erase; + unsigned int eg_boundary; + unsigned int erase_arg; + u8 erased_byte; + unsigned int wp_grp_size; + u32 raw_cid[4]; + u32 raw_csd[4]; + u32 raw_scr[2]; + u32 raw_ssr[16]; + struct mmc_cid cid; + struct mmc_csd csd; + struct mmc_ext_csd ext_csd; + struct sd_scr scr; + struct sd_ssr ssr; + struct sd_switch_caps sw_caps; + struct sd_ext_reg ext_power; + struct sd_ext_reg ext_perf; + struct sd_uhs2_config uhs2_config; + unsigned int sdio_funcs; + atomic_t sdio_funcs_probed; + struct sdio_cccr cccr; + struct sdio_cis cis; + struct sdio_func *sdio_func[7]; + struct sdio_func *sdio_single_irq; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; + unsigned int sd_bus_speed; + unsigned int mmc_avail_type; + unsigned int drive_strength; + struct dentry *debugfs_root; + struct mmc_part part[7]; + unsigned int nr_parts; + struct workqueue_struct *complete_wq; +}; + +struct mmc_clk_phase { + bool valid; + u16 in_deg; + u16 out_deg; +}; + +struct mmc_clk_phase_map { + struct mmc_clk_phase phase[11]; +}; + +struct mmc_cqe_ops { + int (*cqe_enable)(struct mmc_host *, struct mmc_card *); + void (*cqe_disable)(struct mmc_host *); + int (*cqe_request)(struct mmc_host *, struct mmc_request *); + void (*cqe_post_req)(struct mmc_host *, struct mmc_request *); + void (*cqe_off)(struct mmc_host *); + int (*cqe_wait_for_idle)(struct mmc_host *); + bool (*cqe_timeout)(struct mmc_host *, struct mmc_request *, bool *); + void (*cqe_recovery_start)(struct mmc_host *); + void (*cqe_recovery_finish)(struct mmc_host *); +}; + +struct mmc_ctx { + struct task_struct *task; +}; + +struct mmc_driver { + struct device_driver drv; + int (*probe)(struct mmc_card *); + void (*remove)(struct mmc_card *); + void (*shutdown)(struct mmc_card *); +}; + +struct mmc_fixup { + const char *name; + u64 rev_start; + u64 rev_end; + unsigned int manfid; + short unsigned int oemid; + short unsigned int year; + unsigned char month; + u16 cis_vendor; + u16 cis_device; + unsigned int ext_csd_rev; + const char *of_compatible; + void (*vendor_fixup)(struct mmc_card *, int); + int data; +}; + +struct mmc_gpio { + struct gpio_desc *ro_gpio; + struct gpio_desc *cd_gpio; + irq_handler_t cd_gpio_isr; + char *ro_label; + char *cd_label; + u32 cd_debounce_delay_ms; + int cd_irq; +}; + +struct sd_uhs2_caps { + u32 dap; + u32 gap; + u32 group_desc; + u32 maxblk_len; + u32 n_fcu; + u8 n_lanes; + u8 addr64; + u8 card_type; + u8 phy_rev; + u8 speed_range; + u8 n_lss_sync; + u8 n_lss_dir; + u8 link_rev; + u8 host_type; + u8 n_data_gap; + u32 maxblk_len_set; + u32 n_fcu_set; + u8 n_lanes_set; + u8 n_lss_sync_set; + u8 n_lss_dir_set; + u8 n_data_gap_set; + u8 max_retry_set; +}; + +struct mmc_ios { + unsigned int clock; + short unsigned int vdd; + unsigned int power_delay_ms; + unsigned char bus_mode; + unsigned char chip_select; + unsigned char power_mode; + unsigned char bus_width; + unsigned char timing; + unsigned char signal_voltage; + unsigned char vqmmc2_voltage; + unsigned char drv_type; + bool enhanced_strobe; +}; + +struct mmc_slot { + int cd_irq; + bool cd_wake_enabled; + void *handler_priv; +}; + +struct mmc_supply { + struct regulator *vmmc; + struct regulator *vqmmc; + struct regulator *vqmmc2; +}; + +struct mmc_host_ops; + +struct mmc_pwrseq; + +struct mmc_host { + struct device *parent; + struct device class_dev; + int index; + const struct mmc_host_ops *ops; + struct mmc_pwrseq *pwrseq; + unsigned int f_min; + unsigned int f_max; + unsigned int f_init; + u32 ocr_avail; + u32 ocr_avail_sdio; + u32 ocr_avail_sd; + u32 ocr_avail_mmc; + struct wakeup_source *ws; + u32 max_current_330; + u32 max_current_300; + u32 max_current_180; + u32 caps; + u32 caps2; + bool uhs2_sd_tran; + bool uhs2_app_cmd; + struct sd_uhs2_caps uhs2_caps; + int fixed_drv_type; + mmc_pm_flag_t pm_caps; + unsigned int max_seg_size; + short unsigned int max_segs; + short unsigned int unused; + unsigned int max_req_size; + unsigned int max_blk_size; + unsigned int max_blk_count; + unsigned int max_busy_timeout; + spinlock_t lock; + struct mmc_ios ios; + unsigned int use_spi_crc: 1; + unsigned int claimed: 1; + unsigned int doing_init_tune: 1; + unsigned int can_retune: 1; + unsigned int doing_retune: 1; + unsigned int retune_now: 1; + unsigned int retune_paused: 1; + unsigned int retune_crc_disable: 1; + unsigned int can_dma_map_merge: 1; + unsigned int vqmmc_enabled: 1; + int rescan_disable; + int rescan_entered; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct timer_list retune_timer; + bool trigger_card_event; + struct mmc_card *card; + wait_queue_head_t wq; + struct mmc_ctx *claimer; + int claim_cnt; + struct mmc_ctx default_ctx; + struct delayed_work detect; + int detect_change; + struct mmc_slot slot; + const struct mmc_bus_ops *bus_ops; + unsigned int sdio_irqs; + struct task_struct *sdio_irq_thread; + struct work_struct sdio_irq_work; + bool sdio_irq_pending; + atomic_t sdio_irq_thread_abort; + mmc_pm_flag_t pm_flags; + struct led_trigger *led; + bool regulator_enabled; + struct mmc_supply supply; + struct dentry *debugfs_root; + struct mmc_request *ongoing_mrq; + unsigned int actual_clock; + unsigned int slotno; + int dsr_req; + u32 dsr; + const struct mmc_cqe_ops *cqe_ops; + void *cqe_private; + int cqe_qdepth; + bool cqe_enabled; + bool cqe_on; + struct blk_crypto_profile crypto_profile; + bool hsq_enabled; + int hsq_depth; + u32 err_stats[15]; + long: 64; + long: 64; + long: 64; + long unsigned int private[0]; +}; + +struct mmc_host_ops { + void (*post_req)(struct mmc_host *, struct mmc_request *, int); + void (*pre_req)(struct mmc_host *, struct mmc_request *); + void (*request)(struct mmc_host *, struct mmc_request *); + int (*request_atomic)(struct mmc_host *, struct mmc_request *); + void (*set_ios)(struct mmc_host *, struct mmc_ios *); + int (*get_ro)(struct mmc_host *); + int (*get_cd)(struct mmc_host *); + void (*enable_sdio_irq)(struct mmc_host *, int); + void (*ack_sdio_irq)(struct mmc_host *); + void (*init_card)(struct mmc_host *, struct mmc_card *); + int (*start_signal_voltage_switch)(struct mmc_host *, struct mmc_ios *); + int (*card_busy)(struct mmc_host *); + int (*execute_tuning)(struct mmc_host *, u32); + int (*prepare_hs400_tuning)(struct mmc_host *, struct mmc_ios *); + int (*execute_hs400_tuning)(struct mmc_host *, struct mmc_card *); + int (*prepare_sd_hs_tuning)(struct mmc_host *, struct mmc_card *); + int (*execute_sd_hs_tuning)(struct mmc_host *, struct mmc_card *); + int (*hs400_prepare_ddr)(struct mmc_host *); + void (*hs400_downgrade)(struct mmc_host *); + void (*hs400_complete)(struct mmc_host *); + void (*hs400_enhanced_strobe)(struct mmc_host *, struct mmc_ios *); + int (*select_drive_strength)(struct mmc_card *, unsigned int, int, int, int *); + void (*card_hw_reset)(struct mmc_host *); + void (*card_event)(struct mmc_host *); + int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); + int (*init_sd_express)(struct mmc_host *, struct mmc_ios *); + int (*uhs2_control)(struct mmc_host *, enum sd_uhs2_operation); +}; + +struct mmc_op_cond_busy_data { + struct mmc_host *host; + u32 ocr; + struct mmc_command *cmd; +}; + +struct mmc_pwrseq_ops; + +struct mmc_pwrseq { + const struct mmc_pwrseq_ops *ops; + struct device *dev; + struct list_head pwrseq_node; + struct module *owner; +}; + +struct mmc_pwrseq_ops { + void (*pre_power_on)(struct mmc_host *); + void (*post_power_on)(struct mmc_host *); + void (*power_off)(struct mmc_host *); + void (*reset)(struct mmc_host *); +}; + +struct mmc_queue_req { + struct mmc_blk_request brq; + struct scatterlist *sg; + enum mmc_drv_op drv_op; + int drv_op_result; + void *drv_op_data; + unsigned int ioc_count; + int retries; +}; + +struct mmci_dmae_next { + struct dma_async_tx_descriptor *desc; + struct dma_chan *chan; +}; + +struct mmci_dmae_priv { + struct dma_chan *cur; + struct dma_chan *rx_channel; + struct dma_chan *tx_channel; + struct dma_async_tx_descriptor *desc_current; + struct mmci_dmae_next next_data; +}; + +struct sg_page_iter { + struct scatterlist *sg; + unsigned int sg_pgoffset; + unsigned int __nents; + int __pg_advance; +}; + +struct sg_mapping_iter { + struct page *page; + void *addr; + size_t length; + size_t consumed; + struct sg_page_iter piter; + unsigned int __offset; + unsigned int __remaining; + unsigned int __flags; +}; + +struct mmci_platform_data; + +struct mmci_host_ops; + +struct variant_data; + +struct mmci_host { + phys_addr_t phybase; + void *base; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_command stop_abort; + struct mmc_data *data; + struct mmc_host *mmc; + struct clk *clk; + u8 singleirq: 1; + struct reset_control *rst; + spinlock_t lock; + unsigned int mclk; + unsigned int clock_cache; + unsigned int cclk; + u32 pwr_reg; + u32 pwr_reg_add; + u32 clk_reg; + u32 clk_reg_add; + u32 datactrl_reg; + enum mmci_busy_state busy_state; + u32 busy_status; + u32 mask1_reg; + u8 vqmmc_enabled: 1; + struct mmci_platform_data *plat; + struct mmc_host_ops *mmc_ops; + struct mmci_host_ops *ops; + struct variant_data *variant; + void *variant_priv; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_opendrain; + u8 hw_designer; + u8 hw_revision: 4; + struct timer_list timer; + unsigned int oldstat; + u32 irq_action; + struct sg_mapping_iter sg_miter; + unsigned int size; + int (*get_rx_fifocnt)(struct mmci_host *, u32, int); + u8 use_dma: 1; + u8 dma_in_progress: 1; + void *dma_priv; + s32 next_cookie; + struct delayed_work ux500_busy_timeout_work; +}; + +struct mmci_host_ops { + int (*validate_data)(struct mmci_host *, struct mmc_data *); + int (*prep_data)(struct mmci_host *, struct mmc_data *, bool); + void (*unprep_data)(struct mmci_host *, struct mmc_data *, int); + u32 (*get_datactrl_cfg)(struct mmci_host *); + void (*get_next_data)(struct mmci_host *, struct mmc_data *); + int (*dma_setup)(struct mmci_host *); + void (*dma_release)(struct mmci_host *); + int (*dma_start)(struct mmci_host *, unsigned int *); + void (*dma_finalize)(struct mmci_host *, struct mmc_data *); + void (*dma_error)(struct mmci_host *); + void (*set_clkreg)(struct mmci_host *, unsigned int); + void (*set_pwrreg)(struct mmci_host *, unsigned int); + bool (*busy_complete)(struct mmci_host *, struct mmc_command *, u32, u32); + void (*pre_sig_volt_switch)(struct mmci_host *); + int (*post_sig_volt_switch)(struct mmci_host *, struct mmc_ios *); +}; + +struct mmci_platform_data { + unsigned int ocr_mask; + unsigned int (*status)(struct device *); +}; + +struct mminit_pfnnid_cache { + long unsigned int last_start; + long unsigned int last_end; + int last_nid; +}; + +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 mmpin { + struct user_struct *user; + unsigned int num_pg; +}; + +struct user_msghdr { + void *msg_name; + int msg_namelen; + struct iovec *msg_iov; + __kernel_size_t msg_iovlen; + void *msg_control; + __kernel_size_t msg_controllen; + unsigned int msg_flags; +}; + +struct mmsghdr { + struct user_msghdr msg_hdr; + unsigned int msg_len; +}; + +struct mmu_config { + u64 ttbr0; + u64 ttbr1; + u64 tcr; + u64 mair; + u64 tcr2; + u64 pir; + u64 pire0; + u64 por_el0; + u64 por_el1; + u64 sctlr; + u64 vttbr; + u64 vtcr; + u64 hcr; +}; + +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_table_batch; + +struct mmu_gather { + struct mm_struct *mm; + struct mmu_table_batch *batch; + long unsigned int start; + long unsigned int 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 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; + long unsigned int invalidate_seq; +}; + +struct mmu_interval_notifier_ops { + bool (*invalidate)(struct mmu_interval_notifier *, const struct mmu_notifier_range *, long unsigned int); +}; + +struct mmu_notifier_ops { + void (*release)(struct mmu_notifier *, struct mm_struct *); + int (*clear_flush_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); + int (*clear_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); + int (*test_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int); + int (*invalidate_range_start)(struct mmu_notifier *, const struct mmu_notifier_range *); + void (*invalidate_range_end)(struct mmu_notifier *, const struct mmu_notifier_range *); + void (*arch_invalidate_secondary_tlbs)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); + 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; + long unsigned int invalidate_seq; + long unsigned int active_invalidate_ranges; + struct rb_root_cached itree; + wait_queue_head_t wq; + struct hlist_head deferred_list; +}; + +struct mmu_table_batch { + struct callback_head rcu; + unsigned int nr; + void *tables[0]; +}; + +struct mnt_id_req { + __u32 size; + __u32 spare; + __u64 mnt_id; + __u64 param; + __u64 mnt_ns_id; +}; + +struct uid_gid_extent { + u32 first; + u32 lower_first; + u32 count; +}; + +struct uid_gid_map { + union { + struct { + struct uid_gid_extent extent[5]; + u32 nr_extents; + }; + struct { + struct uid_gid_extent *forward; + struct uid_gid_extent *reverse; + }; + }; +}; + +struct mnt_idmap { + struct uid_gid_map uid_map; + struct uid_gid_map gid_map; + refcount_t count; +}; + +struct mount; + +struct mnt_namespace { + struct ns_common ns; + struct mount *root; + struct { + struct rb_root mounts; + struct rb_node *mnt_last_node; + struct rb_node *mnt_first_node; + }; + struct user_namespace *user_ns; + struct ucounts *ucounts; + u64 seq; + union { + wait_queue_head_t poll; + struct callback_head mnt_ns_rcu; + }; + u64 event; + unsigned int nr_mounts; + unsigned int pending_mounts; + struct rb_node mnt_ns_tree_node; + struct list_head mnt_ns_list; + refcount_t passive; +}; + +struct mnt_ns_info { + __u32 size; + __u32 nr_mounts; + __u64 mnt_ns_id; +}; + +struct mnt_pcp { + int mnt_count; + int mnt_writers; +}; + +struct mod_plt_sec { + int plt_shndx; + int plt_num_entries; + int plt_max_entries; +}; + +struct plt_entry; + +struct mod_arch_specific { + struct mod_plt_sec core; + struct mod_plt_sec init; + struct plt_entry *ftrace_trampolines; +}; + +struct mod_clock { + struct rzv2h_cpg_priv *priv; + unsigned int mstop_data; + struct clk_hw hw; + bool no_pm; + u8 on_index; + u8 on_bit; + s8 mon_index; + u8 mon_bit; +}; + +struct mod_initfree { + struct llist_node node; + void *init_text; + void *init_data; + void *init_rodata; +}; + +struct mod_kallsyms { + Elf64_Sym *symtab; + unsigned int num_symtab; + char *strtab; + char *typetab; +}; + +struct mod_tree_node { + struct module *mod; + struct latch_tree_node node; +}; + +struct mod_tree_root { + struct latch_tree_root root; + long unsigned int addr_min; + long unsigned int addr_max; +}; + +struct mode_page_header { + __be16 mode_data_length; + __u8 medium_type; + __u8 reserved1; + __u8 reserved2; + __u8 reserved3; + __be16 desc_length; +}; + +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 pkcs7_message; + +struct modsig { + struct pkcs7_message *pkcs7_msg; + enum hash_algo hash_algo; + const u8 *digest; + u32 digest_size; + int raw_pkcs7_len; + u8 raw_pkcs7[0]; +}; + +struct module_param_attrs; + +struct module_kobject { + struct kobject kobj; + struct module *mod; + struct kobject *drivers_dir; + struct module_param_attrs *mp; + struct completion *kobj_completion; +}; + +struct module_memory { + void *base; + void *rw_copy; + bool is_rox; + unsigned int size; + struct mod_tree_node mtn; +}; + +struct module_attribute; + +struct module_sect_attrs; + +struct module_notes_attrs; + +struct trace_event_call; + +struct trace_eval_map; + +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 u32 *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 u32 *gpl_crcs; + bool using_gplonly_symbols; + bool sig_ok; + bool async_probe_requested; + unsigned int num_exentries; + struct exception_table_entry *extable; + int (*init)(void); + struct module_memory mem[7]; + struct mod_arch_specific arch; + long unsigned int taints; + unsigned int num_bugs; + struct list_head bug_list; + struct bug_entry *bug_table; + struct mod_kallsyms *kallsyms; + struct mod_kallsyms core_kallsyms; + struct module_sect_attrs *sect_attrs; + struct module_notes_attrs *notes_attrs; + char *args; + void *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; + unsigned int btf_base_data_size; + void *btf_data; + void *btf_base_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; + long unsigned int *ftrace_callsites; + void *kprobes_text_start; + unsigned int kprobes_text_size; + long unsigned int *kprobe_blacklist; + unsigned int num_kprobe_blacklist; + struct list_head source_list; + struct list_head target_list; + void (*exit)(void); + atomic_t refcnt; + struct error_injection_entry *ei_funcs; + unsigned int num_ei_funcs; + struct _ddebug_info dyndbg_info; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct module_attribute { + struct attribute attr; + ssize_t (*show)(const struct module_attribute *, struct module_kobject *, char *); + ssize_t (*store)(const 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 module_notes_attrs { + struct attribute_group grp; + struct bin_attribute attrs[0]; +}; + +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]; +}; + +struct module_reply_data { + struct ethnl_reply_data base; + struct ethtool_module_power_mode_params power; +}; + +struct module_sect_attrs { + struct attribute_group grp; + struct bin_attribute attrs[0]; +}; + +struct module_signature { + u8 algo; + u8 hash; + u8 id_type; + u8 signer_len; + u8 key_id_len; + u8 __pad[3]; + __be32 sig_len; +}; + +struct module_string { + struct list_head next; + struct module *module; + char *str; +}; + +struct module_use { + struct list_head source_list; + struct list_head target_list; + struct module *source; + struct module *target; +}; + +struct module_version_attribute { + struct module_attribute mattr; + const char *module_name; + const char *version; +}; + +struct modules_array { + struct module **mods; + int mods_cnt; + int mods_cap; +}; + +struct modversion_info { + long unsigned int crc; + char name[56]; +}; + +struct modversion_info_ext { + size_t remaining; + const u32 *crc; + const char *name; +}; + +struct vfsmount { + struct dentry *mnt_root; + struct super_block *mnt_sb; + int mnt_flags; + struct mnt_idmap *mnt_idmap; +}; + +struct mountpoint; + +struct mount { + struct hlist_node mnt_hash; + struct mount *mnt_parent; + struct dentry *mnt_mountpoint; + struct vfsmount mnt; + union { + struct rb_node mnt_node; + struct callback_head mnt_rcu; + struct llist_node mnt_llist; + }; + struct mnt_pcp *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 *mnt_fsnotify_marks; + __u32 mnt_fsnotify_mask; + int mnt_id; + u64 mnt_id_unique; + int mnt_group_id; + int mnt_expiry_mark; + struct hlist_head mnt_pins; + struct hlist_head mnt_stuck_children; +}; + +struct 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 mount_opts { + int token; + int mount_opt; + int flags; +}; + +struct mountpoint { + struct hlist_node m_hash; + struct dentry *m_dentry; + struct hlist_head m_list; + int m_count; +}; + +struct mousedev_hw_data { + int dx; + int dy; + int dz; + int x; + int y; + int abs_event; + long unsigned int buttons; +}; + +struct mousedev { + int open; + struct input_handle handle; + wait_queue_head_t wait; + struct list_head client_list; + spinlock_t client_lock; + struct mutex mutex; + struct device dev; + struct cdev cdev; + bool exist; + struct list_head mixdev_node; + bool opened_by_mixdev; + struct mousedev_hw_data packet; + unsigned int pkt_count; + int old_x[4]; + int old_y[4]; + int frac_dx; + int frac_dy; + long unsigned int touch; + int (*open_device)(struct mousedev *); + void (*close_device)(struct mousedev *); +}; + +struct mousedev_motion { + int dx; + int dy; + int dz; + long unsigned int buttons; +}; + +struct mousedev_client { + struct fasync_struct *fasync; + struct mousedev *mousedev; + struct list_head node; + struct mousedev_motion packets[16]; + unsigned int head; + unsigned int tail; + spinlock_t packet_lock; + int pos_x; + int pos_y; + u8 ps2[6]; + unsigned char ready; + unsigned char buffer; + unsigned char bufsiz; + unsigned char imexseq; + unsigned char impsseq; + enum mousedev_emul mode; + long unsigned int last_buttons; +}; + +struct movable_operations { + bool (*isolate_page)(struct page *, isolate_mode_t); + int (*migrate_page)(struct page *, struct page *, enum migrate_mode); + void (*putback_page)(struct page *); +}; + +struct move_extent { + __u32 reserved; + __u32 donor_fd; + __u64 orig_start; + __u64 donor_start; + __u64 len; + __u64 moved_len; +}; + +struct mpage_da_data { + struct inode *inode; + struct writeback_control *wbc; + unsigned int can_map: 1; + long unsigned int first_page; + long unsigned int next_page; + long unsigned int last_page; + struct ext4_map_blocks map; + struct ext4_io_submit io_submit; + unsigned int do_map: 1; + unsigned int scanned_until_end: 1; + unsigned int journalled_more_data: 1; +}; + +struct mpage_data { + struct bio *bio; + sector_t last_block_in_bio; + get_block_t *get_block; +}; + +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; + long unsigned int first_logical_block; + get_block_t *get_block; +}; + +struct mpc8xxx_gpio_chip { + struct gpio_chip gc; + void *regs; + raw_spinlock_t lock; + int (*direction_output)(struct gpio_chip *, unsigned int, int); + struct irq_domain *irq; + int irqn; +}; + +struct mpc8xxx_gpio_devtype { + int (*gpio_dir_out)(struct gpio_chip *, unsigned int, int); + int (*gpio_get)(struct gpio_chip *, unsigned int); + int (*irq_set_type)(struct irq_data *, unsigned int); +}; + +struct spi_pram; + +struct mpc8xxx_spi { + struct device *dev; + void *reg_base; + const void *tx; + void *rx; + int subblock; + struct spi_pram *pram; + struct spi_transfer *xfer_in_progress; + dma_addr_t tx_dma; + dma_addr_t rx_dma; + bool map_tx_dma; + bool map_rx_dma; + dma_addr_t dma_dummy_tx; + dma_addr_t dma_dummy_rx; + void (*get_rx)(u32, struct mpc8xxx_spi *); + u32 (*get_tx)(struct mpc8xxx_spi *); + unsigned int count; + unsigned int irq; + unsigned int nsecs; + u32 spibrg; + u32 rx_shift; + u32 tx_shift; + unsigned int flags; + int type; + int native_chipselects; + u8 max_bits_per_word; + void (*set_shifts)(u32 *, u32 *, int, int); + struct completion done; +}; + +struct mpc8xxx_spi_probe_info { + struct fsl_spi_platform_data pdata; + __be32 *immr_spi_cs; +}; + +struct mpfs_gpio_reg_offsets; + +struct mpfs_gpio_chip { + struct regmap *regs; + const struct mpfs_gpio_reg_offsets *offsets; + struct gpio_chip gc; +}; + +struct mpfs_gpio_reg_offsets { + u8 inp; + u8 outp; +}; + +struct mpidr_hash { + u64 mask; + u32 shift_aff[4]; + u32 bits; +}; + +struct mpls_label { + __be32 entry; +}; + +struct mpls_shim_hdr { + __be32 label_stack_entry; +}; + +struct mptcp_addr_info { + u8 id; + sa_family_t family; + __be16 port; + union { + struct in_addr addr; + struct in6_addr addr6; + }; +}; + +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_delegated_action { + struct napi_struct napi; + struct list_head head; +}; + +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 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; + __u32 mptcpi_retransmits; + __u64 mptcpi_bytes_retrans; + __u64 mptcpi_bytes_sent; + __u64 mptcpi_bytes_received; + __u64 mptcpi_bytes_acked; + __u8 mptcpi_subflows_total; + __u8 reserved[3]; + __u32 mptcpi_last_data_sent; + __u32 mptcpi_last_data_recv; + __u32 mptcpi_last_ack_recv; +}; + +struct mptcp_full_info { + __u32 size_tcpinfo_kernel; + __u32 size_tcpinfo_user; + __u32 size_sfinfo_kernel; + __u32 size_sfinfo_user; + __u32 num_subflows; + __u32 size_arrays_user; + __u64 subflow_info; + __u64 tcp_info; + struct mptcp_info mptcp_info; +}; + +struct mptcp_mib { + long unsigned int mibs[71]; +}; + +struct mptcp_rm_list { + u8 ids[8]; + u8 nr; +}; + +struct mptcp_options_received { + u64 sndr_key; + u64 rcvr_key; + u64 data_ack; + u64 data_seq; + u32 subflow_seq; + u16 data_len; + __sum16 csum; + union { + struct { + u16 suboptions; + 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; + }; + struct { + u16 suboptions; + 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; + } status; + }; + u8 join_id; + u32 token; + u32 nonce; + u64 thmac; + u8 hmac[20]; + struct mptcp_addr_info addr; + struct mptcp_rm_list rm_list; + u64 ahmac; + u64 fail_seq; +}; + +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 mptcp_pernet { + struct ctl_table_header *ctl_table_hdr; + unsigned int add_addr_timeout; + unsigned int blackhole_timeout; + unsigned int close_timeout; + unsigned int stale_loss_cnt; + atomic_t active_disable_times; + u8 syn_retrans_before_tcp_fallback; + long unsigned int active_disable_stamp; + u8 mptcp_enabled; + u8 checksum_enabled; + u8 allow_join_initial_addr_port; + u8 pm_type; + char scheduler[16]; +}; + +struct mptcp_sock; + +struct mptcp_pm_add_entry { + struct list_head list; + struct mptcp_addr_info addr; + u8 retrans_times; + struct timer_list add_timer; + struct mptcp_sock *sock; +}; + +struct mptcp_pm_addr_entry { + struct list_head list; + struct mptcp_addr_info addr; + u8 flags; + int ifindex; + struct socket *lsk; +}; + +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; + long unsigned int id_avail_bitmap[4]; + struct mptcp_rm_list rm_list_tx; + struct mptcp_rm_list rm_list_rx; +}; + +struct mptcp_pm_local { + struct mptcp_addr_info addr; + u8 flags; + int ifindex; +}; + +struct mptcp_subflow_context; + +struct mptcp_sched_data { + bool reinject; + u8 subflows; + struct mptcp_subflow_context *contexts[8]; +}; + +struct mptcp_sched_ops { + int (*get_subflow)(struct mptcp_sock *, struct mptcp_sched_data *); + char name[16]; + struct module *owner; + struct list_head list; + void (*init)(struct mptcp_sock *); + void (*release)(struct mptcp_sock *); +}; + +struct mptcp_sendmsg_info { + int mss_now; + int size_goal; + u16 limit; + u16 sent; + unsigned int flags; + bool data_lock_held; +}; + +struct mptcp_skb_cb { + u64 map_seq; + u64 end_seq; + u32 offset; + u8 has_rxtstamp: 1; +}; + +struct mptcp_sock { + struct inet_connection_sock sk; + u64 local_key; + u64 remote_key; + u64 write_seq; + u64 bytes_sent; + u64 snd_nxt; + u64 bytes_received; + u64 ack_seq; + atomic64_t rcv_wnd_sent; + u64 rcv_data_fin_seq; + u64 bytes_retrans; + u64 bytes_consumed; + int rmem_fwd_alloc; + int snd_burst; + int old_wspace; + u64 recovery_snd_nxt; + u64 bytes_acked; + u64 snd_una; + u64 wnd_end; + u32 last_data_sent; + u32 last_data_recv; + u32 last_ack_recv; + long unsigned int timer_ival; + u32 token; + int rmem_released; + long unsigned int flags; + long unsigned int cb_flags; + 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 pending_state; + u8 mpc_endpoint_id; + u8 recvmsg_inq: 1; + u8 cork: 1; + u8 nodelay: 1; + u8 fastopening: 1; + u8 in_accept_queue: 1; + u8 free_first: 1; + u8 rcvspace_init: 1; + u32 notsent_lowat; + int keepalive_cnt; + int keepalive_idle; + int keepalive_intvl; + 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 sock *first; + struct mptcp_pm_data pm; + struct mptcp_sched_ops *sched; + struct { + u32 space; + u32 copied; + u64 time; + u64 rtt_us; + } rcvq_space; + u8 scaling_ratio; + u32 subflow_id; + u32 setsockopt_seq; + char ca_name[16]; +}; + +struct sockaddr_in { + __kernel_sa_family_t sin_family; + __be16 sin_port; + struct in_addr sin_addr; + unsigned char __pad[8]; +}; + +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 mptcp_subflow_context { + struct list_head node; + union { + struct { + long unsigned int 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 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 remote_key_valid: 1; + u32 disposable: 1; + u32 stale: 1; + u32 valid_csum_seen: 1; + u32 is_mptfo: 1; + u32 close_event_done: 1; + u32 mpc_drop: 1; + u32 __unused: 9; + bool data_avail; + bool scheduled; + bool pm_listener; + bool fully_established; + u32 remote_nonce; + u64 thmac; + u32 local_nonce; + u32 remote_token; + union { + u8 hmac[20]; + u64 iasn; + }; + s16 local_id; + u8 remote_id; + u8 reset_seen: 1; + u8 reset_transient: 1; + u8 reset_reason: 4; + u8 stale_count; + u32 subflow_id; + long int delegated_status; + long unsigned int fail_tout; + }; + struct { + long unsigned int 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 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 remote_key_valid: 1; + u32 disposable: 1; + u32 stale: 1; + u32 valid_csum_seen: 1; + u32 is_mptfo: 1; + u32 close_event_done: 1; + u32 mpc_drop: 1; + u32 __unused: 9; + bool data_avail; + bool scheduled; + bool pm_listener; + bool fully_established; + u32 remote_nonce; + u64 thmac; + u32 local_nonce; + u32 remote_token; + union { + u8 hmac[20]; + u64 iasn; + }; + s16 local_id; + u8 remote_id; + u8 reset_seen: 1; + u8 reset_transient: 1; + u8 reset_reason: 4; + u8 stale_count; + u32 subflow_id; + long int delegated_status; + long unsigned int fail_tout; + } reset; + }; + struct list_head delegated_node; + u32 setsockopt_seq; + u32 stale_rcv_tstamp; + int cached_sndbuf; + 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_subflow_data { + __u32 size_subflow_data; + __u32 num_subflows; + __u32 size_kernel; + __u32 size_user; +}; + +struct mptcp_subflow_info { + __u32 id; + struct mptcp_subflow_addrs addrs; +}; + +struct tcp_request_sock_ops; + +struct tcp_request_sock { + struct inet_request_sock req; + const struct tcp_request_sock_ops *af_specific; + u64 snt_synack; + bool tfo_listener; + bool is_mptcp; + bool req_usec_ts; + bool drop_req; + u32 txhash; + u32 rcv_isn; + u32 snt_isn; + u32 ts_off; + u32 snt_tsval_first; + u32 snt_tsval_last; + u32 last_oow_ack_time; + u32 rcv_nxt; + u8 syn_tos; + u8 ao_keyid; + u8 ao_rcv_next; + bool used_tcp_ao; +}; + +struct mptcp_subflow_request_sock { + struct tcp_request_sock sk; + u16 mp_capable: 1; + u16 mp_join: 1; + u16 backup: 1; + u16 request_bkup: 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 mq_inflight { + struct block_device *part; + unsigned int inflight[2]; +}; + +struct mq_sched { + struct Qdisc **qdiscs; +}; + +struct mqueue_fs_context { + struct ipc_namespace *ipc_ns; + bool newns; +}; + +struct sigevent { + sigval_t sigev_value; + int sigev_signo; + int sigev_notify; + union { + int _pad[12]; + int _tid; + struct { + void (*_function)(sigval_t); + void *_attribute; + } _sigev_thread; + } _sigev_un; +}; + +struct 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]; + long unsigned int qsize; +}; + +struct mr_mfc_iter { + struct seq_net_private p; + struct mr_table *mrt; + struct list_head *cache; + spinlock_t *lock; +}; + +struct mr_table_ops { + const struct rhashtable_params *rht_params; + void *cmparg_any; +}; + +struct vif_device { + struct net_device *dev; + netdevice_tracker dev_tracker; + long unsigned int bytes_in; + long unsigned int bytes_out; + long unsigned int pkt_in; + long unsigned int pkt_out; + long unsigned int rate_limit; + unsigned char threshold; + short unsigned int flags; + int link; + struct netdev_phys_item_id dev_parent_id; + __be32 local; + __be32 remote; +}; + +struct rhltable { + struct rhashtable ht; +}; + +struct mr_table { + struct list_head list; + possible_net_t net; + struct mr_table_ops ops; + u32 id; + struct sock *mroute_sk; + struct timer_list ipmr_expire_timer; + struct list_head mfc_unres_queue; + struct vif_device vif_table[32]; + struct rhltable mfc_hash; + struct list_head mfc_cache_list; + int maxvif; + atomic_t cache_resolve_queue_len; + bool mroute_do_assert; + bool mroute_do_pim; + bool mroute_do_wrvifwhole; + int mroute_reg_vif_num; +}; + +struct mr_vif_iter { + struct seq_net_private p; + struct mr_table *mrt; + int ct; +}; + +struct mrq_bwmgr_int_request { + uint32_t cmd; + union { + struct cmd_bwmgr_int_query_abi_request query_abi; + struct cmd_bwmgr_int_calc_and_set_request bwmgr_calc_set_req; + struct cmd_bwmgr_int_cap_set_request bwmgr_cap_set_req; + }; +} __attribute__((packed)); + +struct mrq_bwmgr_int_response { + union { + struct cmd_bwmgr_int_calc_and_set_response bwmgr_calc_set_resp; + }; +}; + +struct mrq_clk_request { + uint32_t cmd_and_id; + union { + struct cmd_clk_get_rate_request clk_get_rate; + struct cmd_clk_set_rate_request clk_set_rate; + struct cmd_clk_round_rate_request clk_round_rate; + struct cmd_clk_get_parent_request clk_get_parent; + struct cmd_clk_set_parent_request clk_set_parent; + struct cmd_clk_enable_request clk_enable; + struct cmd_clk_disable_request clk_disable; + struct cmd_clk_is_enabled_request clk_is_enabled; + struct cmd_clk_properties_request clk_properties; + struct cmd_clk_possible_parents_request clk_possible_parents; + struct cmd_clk_num_possible_parents_request clk_num_possible_parents; + struct cmd_clk_get_possible_parent_request clk_get_possible_parent; + struct cmd_clk_get_all_info_request clk_get_all_info; + struct cmd_clk_get_max_clk_id_request clk_get_max_clk_id; + struct cmd_clk_get_fmax_at_vmin_request clk_get_fmax_at_vmin; + }; +}; + +struct mrq_debug_request { + uint32_t cmd; + union { + struct cmd_debug_fopen_request fop; + struct cmd_debug_fread_request frd; + struct cmd_debug_fwrite_request fwr; + struct cmd_debug_fclose_request fcl; + }; +}; + +struct mrq_debug_response { + union { + struct cmd_debug_fopen_response fop; + struct cmd_debug_fread_response frd; + }; +}; + +struct mrq_debugfs_request { + uint32_t cmd; + union { + struct cmd_debugfs_fileop_request fop; + struct cmd_debugfs_dumpdir_request dumpdir; + }; +}; + +struct mrq_debugfs_response { + int32_t reserved; + union { + struct cmd_debugfs_fileop_response fop; + struct cmd_debugfs_dumpdir_response dumpdir; + }; +}; + +struct mrq_emc_dvfs_latency_response { + uint32_t num_pairs; + struct emc_dvfs_latency pairs[14]; +}; + +struct mrq_pg_request { + uint32_t cmd; + uint32_t id; + union { + struct cmd_pg_query_abi_request query_abi; + struct cmd_pg_set_state_request set_state; + }; +}; + +struct mrq_pg_response { + union { + struct cmd_pg_get_state_response get_state; + struct cmd_pg_get_name_response get_name; + struct cmd_pg_get_max_id_response get_max_id; + }; +}; + +struct mrq_ping_request { + uint32_t challenge; +}; + +struct mrq_ping_response { + uint32_t reply; +}; + +struct mrq_query_abi_request { + uint32_t mrq; +}; + +struct mrq_query_abi_response { + int32_t status; +}; + +struct mrq_query_fw_tag_response { + uint8_t tag[32]; +}; + +struct mrq_query_tag_request { + uint32_t addr; +}; + +struct mrq_reset_request { + uint32_t cmd; + uint32_t reset_id; +}; + +struct mrt6msg { + __u8 im6_mbz; + __u8 im6_msgtype; + __u16 im6_mif; + __u32 im6_pad; + struct in6_addr im6_src; + struct in6_addr im6_dst; +}; + +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 ms_hyperv_info { + u32 features; + u32 priv_high; + u32 misc_features; + u32 hints; + u32 nested_features; + u32 max_vp_index; + u32 max_lp_index; + u8 vtl; + union { + u32 isolation_config_a; + struct { + u32 paravisor_present: 1; + u32 reserved_a1: 31; + }; + }; + union { + u32 isolation_config_b; + struct { + u32 cvm_type: 4; + u32 reserved_b1: 1; + u32 shared_gpa_boundary_active: 1; + u32 shared_gpa_boundary_bits: 6; + u32 reserved_b2: 20; + }; + }; + u64 shared_gpa_boundary; +}; + +struct msdos_dir_entry { + __u8 name[11]; + __u8 attr; + __u8 lcase; + __u8 ctime_cs; + __le16 ctime; + __le16 cdate; + __le16 adate; + __le16 starthi; + __le16 time; + __le16 date; + __le16 start; + __le32 size; +}; + +struct msdos_dir_slot { + __u8 id; + __u8 name0_4[10]; + __u8 attr; + __u8 reserved; + __u8 alias_checksum; + __u8 name5_10[12]; + __le16 start; + __u8 name11_12[4]; +}; + +struct 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 msdos_partition { + u8 boot_ind; + u8 head; + u8 sector; + u8 cyl; + u8 sys_ind; + u8 end_head; + u8 end_sector; + u8 end_cyl; + __le32 start_sect; + __le32 nr_sects; +}; + +struct nls_table; + +struct msdos_sb_info { + short unsigned int sec_per_clus; + short unsigned int cluster_bits; + unsigned int cluster_size; + unsigned char fats; + unsigned char fat_bits; + short unsigned int fat_start; + long unsigned int fat_length; + long unsigned int dir_start; + short unsigned int dir_entries; + long unsigned int data_start; + long unsigned int max_cluster; + long unsigned int root_cluster; + long unsigned int fsinfo_sector; + struct mutex fat_lock; + struct mutex nfs_build_inode_lock; + struct mutex s_lock; + unsigned int prev_free; + unsigned int free_clusters; + unsigned int free_clus_valid; + struct fat_mount_options options; + struct nls_table *nls_disk; + struct nls_table *nls_io; + const void *dir_ops; + int dir_per_block; + int dir_per_block_bits; + unsigned int vol_id; + int fatent_shift; + const struct fatent_operations *fatent_ops; + struct inode *fat_inode; + struct inode *fsinfo_inode; + struct ratelimit_state ratelimit; + spinlock_t inode_hash_lock; + struct hlist_head inode_hashtable[256]; + spinlock_t dir_hash_lock; + struct hlist_head dir_hashtable[256]; + unsigned int dirty; + struct callback_head rcu; +}; + +struct msg_msgseg; + +struct msg_msg { + struct list_head m_list; + long int m_type; + size_t m_ts; + struct msg_msgseg *next; + void *security; +}; + +struct msg_msgseg { + struct msg_msgseg *next; +}; + +struct msg_queue { + struct kern_ipc_perm q_perm; + time64_t q_stime; + time64_t q_rtime; + time64_t q_ctime; + long unsigned int q_cbytes; + long unsigned int q_qnum; + long unsigned int q_qbytes; + struct pid *q_lspid; + struct pid *q_lrpid; + struct list_head q_messages; + struct list_head q_receivers; + struct list_head q_senders; + long: 64; + long: 64; +}; + +struct msg_receiver { + struct list_head r_list; + struct task_struct *r_tsk; + int r_mode; + long int r_msgtype; + long int r_maxsize; + struct msg_msg *r_msg; +}; + +struct msg_security_struct { + u32 sid; +}; + +struct msg_sender { + struct list_head list; + struct task_struct *tsk; + size_t msgsz; +}; + +struct msgbuf { + __kernel_long_t mtype; + char mtext[1]; +}; + +struct msginfo { + int msgpool; + int msgmap; + int msgmax; + int msgmnb; + int msgmni; + int msgssz; + int msgtql; + short unsigned int msgseg; +}; + +struct msi_ctrl { + unsigned int domid; + unsigned int first; + unsigned int last; + unsigned int nirqs; +}; + +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 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 msi_desc { + unsigned int irq; + unsigned int nvec_used; + struct device *dev; + struct msi_msg msg; + struct irq_affinity_desc *affinity; + u64 iommu_msi_iova: 58; + u64 iommu_msi_shift: 6; + 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 msi_dev_domain { + struct xarray store; + struct irq_domain *domain; +}; + +struct msi_device_data { + long unsigned int properties; + struct mutex mutex; + struct msi_dev_domain __domains[1]; + long unsigned int __iter_idx; +}; + +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 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 *); + int (*msi_translate)(struct irq_domain *, struct irq_fwspec *, irq_hw_number_t *, unsigned int *); +}; + +struct msi_domain_template { + char name[48]; + struct irq_chip chip; + struct msi_domain_ops ops; + struct msi_domain_info info; +}; + +struct msi_map { + int index; + int virq; +}; + +struct msi_parent_ops { + u32 supported_flags; + u32 required_flags; + u32 bus_select_token; + u32 bus_select_mask; + const char *prefix; + bool (*init_dev_msi_info)(struct device *, struct irq_domain *, struct irq_domain *, struct msi_domain_info *); +}; + +struct msix_entry { + u32 vector; + u16 entry; +}; + +struct msm_baud_map { + u16 divisor; + u8 code; + u8 rxstale; +}; + +struct msm_dma { + struct dma_chan *chan; + enum dma_data_direction dir; + union { + struct { + dma_addr_t phys; + unsigned char *virt; + unsigned int count; + } rx; + struct scatterlist tx_sg; + }; + dma_cookie_t cookie; + u32 enable_bit; + struct dma_async_tx_descriptor *desc; +}; + +struct msm_gpio_wakeirq_map { + unsigned int gpio; + unsigned int wakeirq; +}; + +struct msm_pinctrl_soc_data; + +struct msm_pinctrl { + struct device *dev; + struct pinctrl_dev *pctrl; + struct gpio_chip chip; + struct pinctrl_desc desc; + int irq; + bool intr_target_use_scm; + raw_spinlock_t lock; + long unsigned int dual_edge_irqs[5]; + long unsigned int enabled_irqs[5]; + long unsigned int skip_wake_irqs[5]; + long unsigned int disabled_for_mux[5]; + long unsigned int ever_gpio[5]; + const struct msm_pinctrl_soc_data *soc; + void *regs[4]; + u32 phys_base[4]; +}; + +struct msm_pingroup; + +struct msm_pinctrl_soc_data { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct pinfunction *functions; + unsigned int nfunctions; + const struct msm_pingroup *groups; + unsigned int ngroups; + unsigned int ngpios; + bool pull_no_keeper; + const char * const *tiles; + unsigned int ntiles; + const int *reserved_gpios; + const struct msm_gpio_wakeirq_map *wakeirq_map; + unsigned int nwakeirq_map; + bool wakeirq_dual_edge_errata; + unsigned int gpio_func; + unsigned int egpio_func; +}; + +struct msm_pingroup { + struct pingroup grp; + unsigned int *funcs; + unsigned int nfuncs; + u32 ctl_reg; + u32 io_reg; + u32 intr_cfg_reg; + u32 intr_status_reg; + u32 intr_target_reg; + unsigned int tile: 2; + unsigned int mux_bit: 5; + unsigned int pull_bit: 5; + unsigned int drv_bit: 5; + unsigned int i2c_pull_bit: 5; + unsigned int od_bit: 5; + unsigned int egpio_enable: 5; + unsigned int egpio_present: 5; + unsigned int oe_bit: 5; + unsigned int in_bit: 5; + unsigned int out_bit: 5; + unsigned int intr_enable_bit: 5; + unsigned int intr_status_bit: 5; + unsigned int intr_ack_high: 1; + long: 1; + unsigned int intr_wakeup_present_bit: 5; + unsigned int intr_wakeup_enable_bit: 5; + unsigned int intr_target_bit: 5; + unsigned int intr_target_width: 5; + unsigned int intr_target_kpss_val: 5; + unsigned int intr_raw_status_bit: 5; + int: 2; + unsigned int intr_polarity_bit: 5; + unsigned int intr_detection_bit: 5; + unsigned int intr_detection_width: 5; +}; + +struct msm_port { + struct uart_port uart; + char name[16]; + struct clk *clk; + struct clk *pclk; + unsigned int imr; + int is_uartdm; + unsigned int old_snap_state; + bool break_detected; + struct msm_dma tx_dma; + struct msm_dma rx_dma; +}; + +struct msqid64_ds { + struct ipc64_perm msg_perm; + long int msg_stime; + long int msg_rtime; + long int msg_ctime; + long unsigned int msg_cbytes; + long unsigned int msg_qnum; + long unsigned int msg_qbytes; + __kernel_pid_t msg_lspid; + __kernel_pid_t msg_lrpid; + long unsigned int __unused4; + long unsigned int __unused5; +}; + +struct msg; + +struct msqid_ds { + struct ipc_perm msg_perm; + struct msg *msg_first; + struct msg *msg_last; + __kernel_old_time_t msg_stime; + __kernel_old_time_t msg_rtime; + __kernel_old_time_t msg_ctime; + long unsigned int msg_lcbytes; + long unsigned int msg_lqbytes; + short unsigned int msg_cbytes; + short unsigned int msg_qnum; + short unsigned int msg_qbytes; + __kernel_ipc_pid_t msg_lspid; + __kernel_ipc_pid_t msg_lrpid; +}; + +struct mssr_mod_clk { + const char *name; + unsigned int id; + unsigned int parent; +}; + +struct mst_intc_chip_data { + raw_spinlock_t lock; + unsigned int irq_start; + unsigned int nr_irqs; + void *base; + bool no_eoi; + struct list_head entry; + u16 saved_polarity_conf[4]; +}; + +struct mstp_clock { + struct clk_hw hw; + u16 off; + u8 bit; + bool enabled; + struct rzg2l_cpg_priv *priv; + struct mstp_clock *sibling; +}; + +struct mstp_clock___2 { + struct clk_hw hw; + u32 index; + struct cpg_mssr_priv *priv; +}; + +struct mt6323_pwrc { + struct device *dev; + struct regmap *regmap; + u32 base; +}; + +struct mt6397_chip { + struct device *dev; + struct regmap *regmap; + struct notifier_block pm_nb; + int irq; + struct irq_domain *irq_domain; + struct mutex irqlock; + u16 wake_mask[3]; + u16 irq_masks_cur[3]; + u16 irq_masks_cache[3]; + u16 int_con[3]; + u16 int_status[3]; + u16 chip_id; + void *irq_data; +}; + +struct mthp_stat { + long unsigned int stats[170]; +}; + +struct mtk8250_data { + int line; + unsigned int rx_pos; + unsigned int clk_count; + struct clk *uart_clk; + struct clk *bus_clk; + struct uart_8250_dma *dma; + enum dma_rx_status rx_status; + int rx_wakeup_irq; +}; + +struct mtk_cirq_chip_data { + void *base; + unsigned int ext_irq_start; + unsigned int ext_irq_end; + const u32 *offsets; + struct irq_domain *domain; +}; + +struct mtk_clk_cpumux { + struct clk_hw hw; + struct regmap *regmap; + u32 reg; + u32 mask; + u8 shift; +}; + +struct mtk_gate; + +struct mtk_composite; + +struct mtk_clk_divider; + +struct mtk_fixed_clk; + +struct mtk_fixed_factor; + +struct mtk_mux; + +struct mtk_clk_rst_desc; + +struct mtk_clk_desc { + const struct mtk_gate *clks; + size_t num_clks; + const struct mtk_composite *composite_clks; + size_t num_composite_clks; + const struct mtk_clk_divider *divider_clks; + size_t num_divider_clks; + const struct mtk_fixed_clk *fixed_clks; + size_t num_fixed_clks; + const struct mtk_fixed_factor *factor_clks; + size_t num_factor_clks; + const struct mtk_mux *mux_clks; + size_t num_mux_clks; + const struct mtk_clk_rst_desc *rst_desc; + spinlock_t *clk_lock; + bool shared_io; + int (*clk_notifier_func)(struct device *, struct clk *); + unsigned int mfg_clk_idx; + bool need_runtime_pm; +}; + +struct mtk_clk_divider { + int id; + const char *name; + const char *parent_name; + long unsigned int flags; + u32 div_reg; + unsigned char div_shift; + unsigned char div_width; + unsigned char clk_divider_flags; + const struct clk_div_table *clk_div_table; +}; + +struct mtk_clk_gate { + struct clk_hw hw; + struct regmap *regmap; + int set_ofs; + int clr_ofs; + int sta_ofs; + u8 bit; +}; + +struct mtk_clk_mux { + struct clk_hw hw; + struct regmap *regmap; + const struct mtk_mux *data; + spinlock_t *lock; + bool reparent; +}; + +struct mtk_pll_data; + +struct mtk_clk_pll { + struct clk_hw hw; + void *base_addr; + void *pd_addr; + void *pwr_addr; + void *tuner_addr; + void *tuner_en_addr; + void *pcw_addr; + void *pcw_chg_addr; + void *en_addr; + const struct mtk_pll_data *data; +}; + +struct mtk_clk_rst_data { + struct regmap *regmap; + struct reset_controller_dev rcdev; + const struct mtk_clk_rst_desc *desc; +}; + +struct mtk_clk_rst_desc { + enum mtk_reset_version version; + u16 *rst_bank_ofs; + u32 rst_bank_nr; + u16 *rst_idx_map; + u32 rst_idx_map_nr; +}; + +struct mtk_composite { + int id; + const char *name; + const char * const *parent_names; + const char *parent; + unsigned int flags; + uint32_t mux_reg; + uint32_t divider_reg; + uint32_t gate_reg; + signed char mux_shift; + signed char mux_width; + signed char gate_shift; + signed char divider_shift; + signed char divider_width; + u8 mux_flags; + signed char num_parents; +}; + +struct mtk_desc_eint { + unsigned char eintmux; + unsigned char eintnum; +}; + +struct mtk_desc_function { + const char *name; + unsigned char muxval; +}; + +struct pinctrl_pin_desc { + unsigned int number; + const char *name; + void *drv_data; +}; + +struct mtk_desc_pin { + struct pinctrl_pin_desc pin; + const struct mtk_desc_eint eint; + const struct mtk_desc_function *functions; +}; + +struct mtk_drive_desc { + u8 min; + u8 max; + u8 step; + u8 scal; +}; + +struct mtk_drv_group_desc { + unsigned char min_drv; + unsigned char max_drv; + unsigned char low_bit; + unsigned char high_bit; + unsigned char step; +}; + +struct mtk_eint_hw; + +struct mtk_eint_regs; + +struct mtk_eint_xt; + +struct mtk_eint { + struct device *dev; + void *base; + struct irq_domain *domain; + int irq; + int *dual_edge; + u32 *wake_mask; + u32 *cur_mask; + const struct mtk_eint_hw *hw; + const struct mtk_eint_regs *regs; + u16 num_db_time; + void *pctl; + const struct mtk_eint_xt *gpio_xlate; +}; + +struct mtk_eint_desc { + u16 eint_m; + u16 eint_n; +}; + +struct mtk_eint_hw { + u8 port_mask; + u8 ports; + unsigned int ap_num; + unsigned int db_cnt; + const unsigned int *db_time; +}; + +struct mtk_eint_regs { + unsigned int stat; + unsigned int ack; + unsigned int mask; + unsigned int mask_set; + unsigned int mask_clr; + unsigned int sens; + unsigned int sens_set; + unsigned int sens_clr; + unsigned int soft; + unsigned int soft_set; + unsigned int soft_clr; + unsigned int pol; + unsigned int pol_set; + unsigned int pol_clr; + unsigned int dom_en; + unsigned int dbnc_ctrl; + unsigned int dbnc_set; + unsigned int dbnc_clr; +}; + +struct mtk_eint_xt { + int (*get_gpio_n)(void *, long unsigned int, unsigned int *, struct gpio_chip **); + int (*get_gpio_state)(void *, long unsigned int); + int (*set_gpio_as_eint)(void *, long unsigned int); +}; + +struct mtk_pllfh_data; + +struct mtk_fh { + struct mtk_clk_pll clk_pll; + struct fh_pll_regs regs; + struct mtk_pllfh_data *pllfh_data; + const struct fh_operation *ops; + spinlock_t *lock; +}; + +struct mtk_fixed_clk { + int id; + const char *name; + const char *parent; + long unsigned int rate; +}; + +struct mtk_fixed_factor { + int id; + const char *name; + const char *parent_name; + int mult; + int div; + long unsigned int flags; +}; + +struct mtk_func_desc { + const char *name; + u8 muxval; +}; + +struct mtk_gate_regs; + +struct mtk_gate { + int id; + const char *name; + const char *parent_name; + const struct mtk_gate_regs *regs; + int shift; + const struct clk_ops *ops; + long unsigned int flags; +}; + +struct mtk_gate_regs { + u32 sta_ofs; + u32 clr_ofs; + u32 set_ofs; +}; + +struct mtk_mux { + int id; + const char *name; + const char * const *parent_names; + const u8 *parent_index; + unsigned int flags; + u32 mux_ofs; + u32 set_ofs; + u32 clr_ofs; + u32 upd_ofs; + u8 mux_shift; + u8 mux_width; + u8 gate_shift; + s8 upd_shift; + const struct clk_ops *ops; + signed char num_parents; +}; + +struct mtk_mux_nb { + struct notifier_block nb; + const struct clk_ops *ops; + u8 bypass_index; + u8 original_index; +}; + +struct mtk_pcie_soc; + +struct mtk_pcie { + struct device *dev; + void *base; + struct regmap *cfg; + struct clk *free_ck; + struct list_head ports; + const struct mtk_pcie_soc *soc; +}; + +struct mtk_pcie_port { + void *base; + struct list_head list; + struct mtk_pcie *pcie; + struct reset_control *reset; + struct clk *sys_ck; + struct clk *ahb_ck; + struct clk *axi_ck; + struct clk *aux_ck; + struct clk *obff_ck; + struct clk *pipe_ck; + struct phy *phy; + u32 slot; + int irq; + struct irq_domain *irq_domain; + struct irq_domain *inner_domain; + struct irq_domain *msi_domain; + struct mutex lock; + long unsigned int msi_irq_in_use[1]; +}; + +struct mtk_pcie_soc { + bool need_fix_class_id; + bool need_fix_device_id; + bool no_msi; + unsigned int device_id; + struct pci_ops *ops; + int (*startup)(struct mtk_pcie_port *); + int (*setup_irq)(struct mtk_pcie_port *, struct device_node *); +}; + +struct mtk_pin_desc { + unsigned int number; + const char *name; + struct mtk_eint_desc eint; + u8 drv_n; + struct mtk_func_desc *funcs; +}; + +struct mtk_pin_drv_grp { + short unsigned int pin; + short unsigned int offset; + unsigned char bit; + unsigned char grp; +}; + +struct mtk_pin_field { + u8 index; + u32 offset; + u32 mask; + u8 bitpos; + u8 next; +}; + +struct mtk_pin_field_calc { + u16 s_pin; + u16 e_pin; + u8 i_base; + u32 s_addr; + u8 x_addrs; + u8 s_bit; + u8 x_bits; + u8 sz_reg; + u8 fixed; +}; + +struct mtk_pin_ies_smt_set { + short unsigned int start; + short unsigned int end; + short unsigned int offset; + unsigned char bit; +}; + +struct mtk_pin_reg_calc { + const struct mtk_pin_field_calc *range; + unsigned int nranges; +}; + +struct mtk_pin_rsel { + u16 s_pin; + u16 e_pin; + u16 rsel_index; + u32 up_rsel; + u32 down_rsel; +}; + +struct mtk_pinctrl; + +struct mtk_pin_soc { + const struct mtk_pin_reg_calc *reg_cal; + const struct mtk_pin_desc *pins; + unsigned int npins; + const struct group_desc *grps; + unsigned int ngrps; + const struct function_desc *funcs; + unsigned int nfuncs; + const struct mtk_eint_regs *eint_regs; + const struct mtk_eint_hw *eint_hw; + u8 gpio_m; + bool ies_present; + const char * const *base_names; + unsigned int nbase_names; + const unsigned int *pull_type; + const struct mtk_pin_rsel *pin_rsel; + unsigned int npin_rsel; + int (*bias_disable_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *); + int (*bias_disable_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, int *); + int (*bias_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool); + int (*bias_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, int *); + int (*bias_set_combo)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32, u32); + int (*bias_get_combo)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32 *, u32 *); + int (*drive_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32); + int (*drive_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, int *); + int (*adv_pull_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, u32); + int (*adv_pull_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, u32 *); + int (*adv_drive_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32); + int (*adv_drive_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32 *); + void *driver_data; +}; + +struct mtk_pin_spec_pupd_set_samereg { + short unsigned int pin; + short unsigned int offset; + unsigned char pupd_bit; + unsigned char r1_bit; + unsigned char r0_bit; +}; + +struct mtk_pinctrl_group; + +struct mtk_pinctrl_devdata; + +struct mtk_pinctrl___2 { + struct regmap *regmap1; + struct regmap *regmap2; + struct pinctrl_desc pctl_desc; + struct device *dev; + struct gpio_chip *chip; + struct mtk_pinctrl_group *groups; + unsigned int ngroups; + const char **grp_names; + struct pinctrl_dev *pctl_dev; + const struct mtk_pinctrl_devdata *devdata; + struct mtk_eint *eint; +}; + +struct mtk_pinctrl { + struct pinctrl_dev *pctrl; + void **base; + u8 nbase; + struct device *dev; + struct gpio_chip chip; + const struct mtk_pin_soc *soc; + struct mtk_eint *eint; + struct mtk_pinctrl_group *groups; + const char **grp_names; + spinlock_t lock; + bool rsel_si_unit; +}; + +struct mtk_pinctrl_devdata { + const struct mtk_desc_pin *pins; + unsigned int npins; + const struct mtk_drv_group_desc *grp_desc; + unsigned int n_grp_cls; + const struct mtk_pin_drv_grp *pin_drv_grp; + unsigned int n_pin_drv_grps; + const struct mtk_pin_ies_smt_set *spec_ies; + unsigned int n_spec_ies; + const struct mtk_pin_spec_pupd_set_samereg *spec_pupd; + unsigned int n_spec_pupd; + const struct mtk_pin_ies_smt_set *spec_smt; + unsigned int n_spec_smt; + int (*spec_pull_set)(struct regmap *, const struct mtk_pinctrl_devdata *, unsigned int, bool, unsigned int); + int (*spec_ies_smt_set)(struct regmap *, const struct mtk_pinctrl_devdata *, unsigned int, int, enum pin_config_param); + void (*spec_pinmux_set)(struct regmap *, unsigned int, unsigned int); + void (*spec_dir_set)(unsigned int *, unsigned int); + int (*mt8365_set_clr_mode)(struct regmap *, unsigned int, unsigned int, unsigned int, bool, bool); + unsigned int dir_offset; + unsigned int ies_offset; + unsigned int smt_offset; + unsigned int pullen_offset; + unsigned int pullsel_offset; + unsigned int drv_offset; + unsigned int dout_offset; + unsigned int din_offset; + unsigned int pinmux_offset; + short unsigned int type1_start; + short unsigned int type1_end; + unsigned char port_shf; + unsigned char port_mask; + unsigned char port_align; + struct mtk_eint_hw eint_hw; + struct mtk_eint_regs *eint_regs; + unsigned int mode_mask; + unsigned int mode_per_reg; + unsigned int mode_shf; +}; + +struct mtk_pinctrl_group { + const char *name; + long unsigned int config; + unsigned int pin; +}; + +struct mtk_pll_div_table; + +struct mtk_pll_data { + int id; + const char *name; + u32 reg; + u32 pwr_reg; + u32 en_mask; + u32 pd_reg; + u32 tuner_reg; + u32 tuner_en_reg; + u8 tuner_en_bit; + int pd_shift; + unsigned int flags; + const struct clk_ops *ops; + u32 rst_bar_mask; + long unsigned int fmin; + long unsigned int fmax; + int pcwbits; + int pcwibits; + u32 pcw_reg; + int pcw_shift; + u32 pcw_chg_reg; + const struct mtk_pll_div_table *div_table; + const char *parent_name; + u32 en_reg; + u8 pll_en_bit; + u8 pcw_chg_bit; +}; + +struct mtk_pll_div_table { + u32 div; + long unsigned int freq; +}; + +struct mtk_pllfh_data { + struct fh_pll_state state; + const struct fh_pll_data data; +}; + +struct mtk_ref2usb_tx { + struct clk_hw hw; + void *base_addr; +}; + +struct mtk_sysirq_chip_data { + raw_spinlock_t lock; + u32 nr_intpol_bases; + void **intpol_bases; + u32 *intpol_words; + u8 *intpol_idx; + u16 *which_word; +}; + +struct multi_stop_data { + cpu_stop_fn_t fn; + void *data; + unsigned int num_threads; + const struct cpumask *active_cpus; + enum multi_stop_state state; + atomic_t thread_ack; +}; + +struct multi_symbols_sort { + const char **funcs; + u64 *cookies; +}; + +struct multi_transaction { + struct kref count; + ssize_t size; + char data[0]; +}; + +struct multicall_entry { + xen_ulong_t op; + xen_long_t result; + xen_ulong_t args[6]; +}; + +struct multiprocess_signals { + sigset_t signal; + struct hlist_node node; +}; + +struct muram_block { + struct list_head head; + s32 start; + int size; +}; + +struct muram_info { + struct gen_pool *pool; + void *vbase; + phys_addr_t pbase; +}; + +typedef struct mutex *class_mutex_t; + +typedef class_mutex_t class_mutex_intr_t; + +struct mutex_waiter { + struct list_head list; + struct task_struct *task; + struct ww_acquire_ctx *ww_ctx; +}; + +struct mux_hwclock { + struct clk_hw hw; + struct clockgen *cg; + const struct clockgen_muxinfo *info; + u32 *reg; + u8 parent_to_clksel[16]; + s8 clksel_to_parent[16]; + int num_parents; +}; + +struct mv_xor_device; + +struct mv_xor_chan { + int pending; + spinlock_t lock; + void *mmr_base; + void *mmr_high_base; + unsigned int idx; + int irq; + struct list_head chain; + struct list_head free_slots; + struct list_head allocated_slots; + struct list_head completed_slots; + dma_addr_t dma_desc_pool; + void *dma_desc_pool_virt; + size_t pool_size; + struct dma_device dmadev; + struct dma_chan dmachan; + int slots_allocated; + struct tasklet_struct irq_tasklet; + int op_in_desc; + char dummy_src[128]; + char dummy_dst[128]; + dma_addr_t dummy_src_addr; + dma_addr_t dummy_dst_addr; + u32 saved_config_reg; + u32 saved_int_mask_reg; + struct mv_xor_device *xordev; +}; + +struct mv_xor_channel_data { + dma_cap_mask_t cap_mask; +}; + +struct mv_xor_desc { + u32 status; + u32 crc32_result; + u32 desc_command; + u32 phy_next_desc; + u32 byte_count; + u32 phy_dest_addr; + u32 phy_src_addr[8]; + u32 reserved0; + u32 reserved1; +}; + +struct mv_xor_desc_slot { + struct list_head node; + struct list_head sg_tx_list; + enum dma_transaction_type type; + void *hw_desc; + u16 idx; + struct dma_async_tx_descriptor async_tx; +}; + +struct mv_xor_device { + void *xor_base; + void *xor_high_base; + struct clk *clk; + struct mv_xor_chan *channels[2]; + int xor_type; + u32 win_start[8]; + u32 win_end[8]; +}; + +struct mv_xor_platform_data { + struct mv_xor_channel_data *channels; +}; + +struct mv_xor_v2_descriptor { + u16 desc_id; + u16 flags; + u32 crc32_result; + u32 desc_ctrl; + u32 buff_size; + u32 fill_pattern_src_addr[4]; + u32 data_buff_addr[12]; + u32 reserved[12]; +}; + +struct mv_xor_v2_sw_desc; + +struct mv_xor_v2_device { + spinlock_t lock; + void *dma_base; + void *glob_base; + struct clk *clk; + struct clk *reg_clk; + struct tasklet_struct irq_tasklet; + struct list_head free_sw_desc; + struct dma_device dmadev; + struct dma_chan dmachan; + dma_addr_t hw_desq; + struct mv_xor_v2_descriptor *hw_desq_virt; + struct mv_xor_v2_sw_desc *sw_desq; + int desc_size; + unsigned int npendings; + unsigned int hw_queue_idx; + unsigned int irq; +}; + +struct mv_xor_v2_sw_desc { + int idx; + struct dma_async_tx_descriptor async_tx; + struct mv_xor_v2_descriptor hw_desc; + struct list_head free_list; +}; + +struct mvebu_gicp_spi_range; + +struct mvebu_gicp { + struct mvebu_gicp_spi_range *spi_ranges; + unsigned int spi_ranges_cnt; + unsigned int spi_cnt; + long unsigned int *spi_bitmap; + spinlock_t spi_lock; + struct resource *res; + struct device *dev; +}; + +struct mvebu_gicp_spi_range { + unsigned int start; + unsigned int count; +}; + +struct mvebu_pwm; + +struct mvebu_gpio_chip { + struct gpio_chip chip; + struct regmap *regs; + u32 offset; + struct regmap *percpu_regs; + int irqbase; + struct irq_domain *domain; + int soc_variant; + struct clk *clk; + struct mvebu_pwm *mvpwm; + u32 out_reg; + u32 io_conf_reg; + u32 blink_en_reg; + u32 in_pol_reg; + u32 edge_mask_regs[4]; + u32 level_mask_regs[4]; +}; + +struct mvebu_icu { + void *base; + struct device *dev; +}; + +struct mvebu_icu_subset_data; + +struct mvebu_icu_msi_data { + struct mvebu_icu *icu; + atomic_t initialized; + const struct mvebu_icu_subset_data *subset_data; +}; + +struct mvebu_icu_subset_data { + unsigned int icu_group; + unsigned int offset_set_ah; + unsigned int offset_set_al; + unsigned int offset_clr_ah; + unsigned int offset_clr_al; +}; + +struct mvebu_mpp_ctrl_data; + +struct mvebu_mpp_ctrl { + const char *name; + u8 pid; + u8 npins; + unsigned int *pins; + int (*mpp_get)(struct mvebu_mpp_ctrl_data *, unsigned int, long unsigned int *); + int (*mpp_set)(struct mvebu_mpp_ctrl_data *, unsigned int, long unsigned int); + int (*mpp_gpio_req)(struct mvebu_mpp_ctrl_data *, unsigned int); + int (*mpp_gpio_dir)(struct mvebu_mpp_ctrl_data *, unsigned int, bool); +}; + +struct mvebu_mpp_ctrl_data { + union { + void *base; + struct { + struct regmap *map; + u32 offset; + } regmap; + }; +}; + +struct mvebu_mpp_ctrl_setting { + u8 val; + const char *name; + const char *subname; + u8 variant; + u8 flags; +}; + +struct mvebu_mpp_mode { + u8 pid; + struct mvebu_mpp_ctrl_setting *settings; +}; + +struct mvebu_pic { + void *base; + u32 parent_irq; + struct irq_domain *domain; + struct platform_device *pdev; +}; + +struct mvebu_pinctrl_group; + +struct mvebu_pinctrl_function; + +struct mvebu_pinctrl { + struct device *dev; + struct pinctrl_dev *pctldev; + struct pinctrl_desc desc; + struct mvebu_pinctrl_group *groups; + unsigned int num_groups; + struct mvebu_pinctrl_function *functions; + unsigned int num_functions; + u8 variant; +}; + +struct mvebu_pinctrl_function { + const char *name; + const char **groups; + unsigned int num_groups; +}; + +struct mvebu_pinctrl_group { + const char *name; + const struct mvebu_mpp_ctrl *ctrl; + struct mvebu_mpp_ctrl_data *data; + struct mvebu_mpp_ctrl_setting *settings; + unsigned int num_settings; + unsigned int gid; + unsigned int *pins; + unsigned int npins; +}; + +struct mvebu_pinctrl_soc_info { + u8 variant; + const struct mvebu_mpp_ctrl *controls; + struct mvebu_mpp_ctrl_data *control_data; + int ncontrols; + struct mvebu_mpp_mode *modes; + int nmodes; + struct pinctrl_gpio_range *gpioranges; + int ngpioranges; +}; + +struct mvebu_pwm { + struct regmap *regs; + u32 offset; + long unsigned int clk_rate; + struct gpio_desc *gpiod; + spinlock_t lock; + struct mvebu_gpio_chip *mvchip; + u32 blink_select; + u32 blink_on_duration; + u32 blink_off_duration; +}; + +struct mvebu_sei_caps; + +struct mvebu_sei { + struct device *dev; + void *base; + struct resource *res; + struct irq_domain *sei_domain; + struct irq_domain *ap_domain; + struct irq_domain *cp_domain; + const struct mvebu_sei_caps *caps; + struct mutex cp_msi_lock; + long unsigned int cp_msi_bitmap[1]; + raw_spinlock_t mask_lock; +}; + +struct mvebu_sei_interrupt_range { + u32 first; + u32 size; +}; + +struct mvebu_sei_caps { + struct mvebu_sei_interrupt_range ap_range; + struct mvebu_sei_interrupt_range cp_range; +}; + +struct mvebu_uart_pm_regs { + unsigned int rbr; + unsigned int tsh; + unsigned int ctrl; + unsigned int intr; + unsigned int stat; + unsigned int brdv; + unsigned int osamp; +}; + +struct mvebu_uart_driver_data; + +struct mvebu_uart { + struct uart_port *port; + struct clk *clk; + int irq[2]; + struct mvebu_uart_driver_data *data; + struct mvebu_uart_pm_regs pm_regs; +}; + +struct mvebu_uart_clock { + struct clk_hw clk_hw; + int clock_idx; + u32 pm_context_reg1; + u32 pm_context_reg2; +}; + +struct mvebu_uart_clock_base { + struct mvebu_uart_clock clocks[2]; + unsigned int parent_rates[5]; + int parent_idx; + unsigned int div; + void *reg1; + void *reg2; + bool configured; +}; + +struct uart_regs_layout { + unsigned int rbr; + unsigned int tsh; + unsigned int ctrl; + unsigned int intr; +}; + +struct uart_flags { + unsigned int ctrl_tx_rdy_int; + unsigned int ctrl_rx_rdy_int; + unsigned int stat_tx_rdy; + unsigned int stat_rx_rdy; +}; + +struct mvebu_uart_driver_data { + bool is_ext; + struct uart_regs_layout regs; + struct uart_flags flags; +}; + +struct mxc_gpio_hwdata { + unsigned int dr_reg; + unsigned int gdir_reg; + unsigned int psr_reg; + unsigned int icr1_reg; + unsigned int icr2_reg; + unsigned int imr_reg; + unsigned int isr_reg; + int edge_sel_reg; + unsigned int low_level; + unsigned int high_level; + unsigned int rise_edge; + unsigned int fall_edge; +}; + +struct mxc_gpio_reg_saved { + u32 icr1; + u32 icr2; + u32 imr; + u32 gdir; + u32 edge_sel; + u32 dr; +}; + +struct mxc_gpio_port { + struct list_head node; + void *base; + struct clk *clk; + int irq; + int irq_high; + void (*mx_irq_handler)(struct irq_desc *); + struct irq_domain *domain; + struct gpio_chip gc; + struct device *dev; + u32 both_edges; + struct mxc_gpio_reg_saved gpio_saved_reg; + bool power_off; + u32 wakeup_pads; + bool is_pad_wakeup; + u32 pad_type[32]; + const struct mxc_gpio_hwdata *hwdata; +}; + +struct mxs_dma_ccw { + u32 next; + u16 bits; + u16 xfer_bytes; + u32 bufaddr; + u32 pio_words[16]; +}; + +struct mxs_dma_engine; + +struct mxs_dma_chan { + struct mxs_dma_engine *mxs_dma; + struct dma_chan chan; + struct dma_async_tx_descriptor desc; + struct tasklet_struct tasklet; + unsigned int chan_irq; + struct mxs_dma_ccw *ccw; + dma_addr_t ccw_phys; + int desc_count; + enum dma_status status; + unsigned int flags; + bool reset; +}; + +struct mxs_dma_engine { + enum mxs_dma_id dev_id; + enum mxs_dma_devtype type; + void *base; + struct clk *clk; + struct dma_device dma_device; + struct mxs_dma_chan mxs_chans[16]; + struct platform_device *pdev; + unsigned int nr_channels; +}; + +struct mxs_dma_filter_param { + unsigned int chan_id; +}; + +struct mxs_dma_type { + enum mxs_dma_id id; + enum mxs_dma_devtype type; +}; + +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 mxs_phy_data; + +struct mxs_phy { + struct usb_phy phy; + struct clk *clk; + const struct mxs_phy_data *data; + struct regmap *regmap_anatop; + struct regmap *regmap_sim; + int port_id; + u32 tx_reg_set; + u32 tx_reg_mask; + struct regulator *phy_3p0; +}; + +struct mxs_phy_data { + unsigned int flags; +}; + +struct mz_hdr { + uint16_t magic; + uint16_t lbsize; + uint16_t blocks; + uint16_t relocs; + uint16_t hdrsize; + uint16_t min_extra_pps; + uint16_t max_extra_pps; + uint16_t ss; + uint16_t sp; + uint16_t checksum; + uint16_t ip; + uint16_t cs; + uint16_t reloc_table_offset; + uint16_t overlay_num; + uint16_t reserved0[4]; + uint16_t oem_id; + uint16_t oem_info; + uint16_t reserved1[10]; + uint32_t peaddr; + char message[0]; +}; + +struct n5x_perip_c_clock { + unsigned int id; + const char *name; + const char *parent_name; + const char * const *parent_names; + u8 num_parents; + long unsigned int flags; + long unsigned int offset; + long unsigned int shift; +}; + +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; + long unsigned int char_map[4]; + long unsigned int overrun_time; + unsigned int num_overrun; + bool no_room; + unsigned char lnext: 1; + unsigned char erasing: 1; + unsigned char raw: 1; + unsigned char real_raw: 1; + unsigned char icanon: 1; + unsigned char push: 1; + u8 read_buf[4096]; + long unsigned int read_flags[64]; + u8 echo_buf[4096]; + size_t read_tail; + size_t line_start; + size_t lookahead_count; + unsigned int column; + unsigned int canon_column; + size_t echo_tail; + struct mutex atomic_read_lock; + struct mutex output_lock; +}; + +struct name_resp { + char name[16]; +}; + +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; + const char *pathname; + struct nameidata *saved; + unsigned int root_seq; + int dfd; + vfsuid_t dir_vfsuid; + umode_t dir_mode; +}; + +struct page_frag_cache { + long unsigned int encoded_page; + __u32 offset; + __u32 pagecnt_bias; +}; + +struct napi_alloc_cache { + local_lock_t bh_lock; + struct page_frag_cache page; + unsigned int skb_count; + void *skb_cache[64]; +}; + +struct napi_config { + u64 gro_flush_timeout; + u64 irq_suspend_timeout; + u32 defer_hard_irqs; + unsigned int napi_id; +}; + +struct napi_gro_cb { + union { + struct { + void *frag0; + unsigned int frag0_len; + }; + struct { + struct sk_buff *last; + long unsigned int age; + }; + }; + int data_offset; + u16 flush; + u16 count; + u16 proto; + u16 pad; + 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 ip_fixedid: 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 ip_fixedid: 1; + u8 recursion_counter: 4; + u8 is_flist: 1; + } zeroed; + }; + __wsum csum; + union { + struct { + u16 network_offset; + u16 inner_network_offset; + }; + u16 network_offsets[2]; + }; +}; + +struct nat_keepalive { + struct net *net; + u16 family; + xfrm_address_t saddr; + xfrm_address_t daddr; + __be16 encap_sport; + __be16 encap_dport; + __u32 smark; +}; + +struct nat_keepalive_work_ctx { + time64_t next_run; + time64_t now; +}; + +struct nbcon_state { + union { + unsigned int atom; + struct { + unsigned int prio: 2; + unsigned int req_prio: 2; + unsigned int unsafe: 1; + unsigned int unsafe_takeover: 1; + unsigned int cpu: 24; + }; + }; +}; + +struct nbcon_write_context { + struct nbcon_context ctxt; + char *outbuf; + unsigned int len; + bool unsafe_takeover; +}; + +struct ncsi_dev_priv; + +struct ncsi_aen_pkt_hdr; + +struct ncsi_aen_handler { + unsigned char type; + int payload; + int (*handler)(struct ncsi_dev_priv *, struct ncsi_aen_pkt_hdr *); +}; + +struct ncsi_pkt_hdr { + unsigned char mc_id; + unsigned char revision; + unsigned char reserved; + unsigned char id; + unsigned char type; + unsigned char channel; + __be16 length; + __be32 reserved1[2]; +}; + +struct ncsi_aen_pkt_hdr { + struct ncsi_pkt_hdr common; + unsigned char reserved2[3]; + unsigned char type; +}; + +struct ncsi_aen_hncdsc_pkt { + struct ncsi_aen_pkt_hdr aen; + __be32 status; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_aen_lsc_pkt { + struct ncsi_aen_pkt_hdr aen; + __be32 status; + __be32 oem_status; + __be32 checksum; + unsigned char pad[14]; +}; + +struct ncsi_channel_version { + u8 major; + u8 minor; + u8 update; + char alpha1; + char alpha2; + u8 fw_name[12]; + u32 fw_version; + u16 pci_ids[4]; + u32 mf_id; +}; + +struct ncsi_channel_cap { + u32 index; + u32 cap; +}; + +struct ncsi_channel_mode { + u32 index; + u32 enable; + u32 size; + u32 data[8]; +}; + +struct ncsi_channel_mac_filter { + u8 n_uc; + u8 n_mc; + u8 n_mixed; + u64 bitmap; + unsigned char *addrs; +}; + +struct ncsi_channel_vlan_filter { + u8 n_vids; + u64 bitmap; + u16 *vids; +}; + +struct ncsi_channel_stats { + u64 hnc_cnt; + u64 hnc_rx_bytes; + u64 hnc_tx_bytes; + u64 hnc_rx_uc_pkts; + u64 hnc_rx_mc_pkts; + u64 hnc_rx_bc_pkts; + u64 hnc_tx_uc_pkts; + u64 hnc_tx_mc_pkts; + u64 hnc_tx_bc_pkts; + u32 hnc_fcs_err; + u32 hnc_align_err; + u32 hnc_false_carrier; + u32 hnc_runt_pkts; + u32 hnc_jabber_pkts; + u32 hnc_rx_pause_xon; + u32 hnc_rx_pause_xoff; + u32 hnc_tx_pause_xon; + u32 hnc_tx_pause_xoff; + u32 hnc_tx_s_collision; + u32 hnc_tx_m_collision; + u32 hnc_l_collision; + u32 hnc_e_collision; + u32 hnc_rx_ctl_frames; + u32 hnc_rx_64_frames; + u32 hnc_rx_127_frames; + u32 hnc_rx_255_frames; + u32 hnc_rx_511_frames; + u32 hnc_rx_1023_frames; + u32 hnc_rx_1522_frames; + u32 hnc_rx_9022_frames; + u32 hnc_tx_64_frames; + u32 hnc_tx_127_frames; + u32 hnc_tx_255_frames; + u32 hnc_tx_511_frames; + u32 hnc_tx_1023_frames; + u32 hnc_tx_1522_frames; + u32 hnc_tx_9022_frames; + u64 hnc_rx_valid_bytes; + u32 hnc_rx_runt_pkts; + u32 hnc_rx_jabber_pkts; + u32 ncsi_rx_cmds; + u32 ncsi_dropped_cmds; + u32 ncsi_cmd_type_errs; + u32 ncsi_cmd_csum_errs; + u32 ncsi_rx_pkts; + u32 ncsi_tx_pkts; + u32 ncsi_tx_aen_pkts; + u32 pt_tx_pkts; + u32 pt_tx_dropped; + u32 pt_tx_channel_err; + u32 pt_tx_us_err; + u32 pt_rx_pkts; + u32 pt_rx_dropped; + u32 pt_rx_channel_err; + u32 pt_rx_us_err; + u32 pt_rx_os_err; +}; + +struct ncsi_package; + +struct ncsi_channel { + unsigned char id; + int state; + bool reconfigure_needed; + spinlock_t lock; + struct ncsi_package *package; + struct ncsi_channel_version version; + struct ncsi_channel_cap caps[6]; + struct ncsi_channel_mode modes[8]; + struct ncsi_channel_mac_filter mac_filter; + struct ncsi_channel_vlan_filter vlan_filter; + struct ncsi_channel_stats stats; + struct { + struct timer_list timer; + bool enabled; + unsigned int state; + } monitor; + struct list_head node; + struct list_head link; +}; + +struct ncsi_cmd_pkt_hdr { + struct ncsi_pkt_hdr common; +}; + +struct ncsi_cmd_ae_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char mc_id; + __be32 mode; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_cmd_arg { + struct ncsi_dev_priv *ndp; + unsigned char type; + unsigned char id; + unsigned char package; + unsigned char channel; + short unsigned int payload; + unsigned int req_flags; + union { + unsigned char bytes[16]; + short unsigned int words[8]; + unsigned int dwords[4]; + }; + unsigned char *data; + struct genl_info *info; +}; + +struct ncsi_cmd_dc_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char ald; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_ebf_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_egmf_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_ev_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_handler { + unsigned char type; + int payload; + int (*handler)(struct sk_buff *, struct ncsi_cmd_arg *); +}; + +struct ncsi_cmd_oem_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mfr_id; + unsigned char data[0]; +}; + +struct ncsi_cmd_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 checksum; + unsigned char pad[26]; +}; + +struct ncsi_cmd_rc_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 reserved; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_sl_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mode; + __be32 oem_mode; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_cmd_sma_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char mac[6]; + unsigned char index; + unsigned char at_e; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_cmd_snfc_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_sp_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char hw_arbitration; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_svf_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be16 reserved; + __be16 vlan; + __be16 reserved1; + unsigned char index; + unsigned char enable; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_dev { + int state; + int link_up; + struct net_device *dev; + void (*handler)(struct ncsi_dev *); +}; + +struct nlmsghdr { + __u32 nlmsg_len; + __u16 nlmsg_type; + __u16 nlmsg_flags; + __u32 nlmsg_seq; + __u32 nlmsg_pid; +}; + +struct ncsi_request { + unsigned char id; + bool used; + unsigned int flags; + struct ncsi_dev_priv *ndp; + struct sk_buff *cmd; + struct sk_buff *rsp; + struct timer_list timer; + bool enabled; + u32 snd_seq; + u32 snd_portid; + struct nlmsghdr nlhdr; +}; + +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 ncsi_dev_priv { + struct ncsi_dev ndev; + unsigned int flags; + unsigned int gma_flag; + struct sockaddr pending_mac; + spinlock_t lock; + unsigned int package_probe_id; + unsigned int package_num; + unsigned int channel_probe_id; + struct list_head packages; + struct ncsi_channel *hot_channel; + struct ncsi_request requests[256]; + unsigned int request_id; + unsigned int pending_req_num; + struct ncsi_package *active_package; + struct ncsi_channel *active_channel; + struct list_head channel_queue; + struct work_struct work; + struct packet_type ptype; + struct list_head node; + struct list_head vlan_vids; + bool multi_package; + bool mlx_multi_host; + u32 package_whitelist; + unsigned char channel_count; +}; + +struct ncsi_oem_gma_handler { + unsigned int mfr_id; + int (*handler)(struct ncsi_cmd_arg *); +}; + +struct ncsi_package { + unsigned char id; + unsigned char uuid[16]; + struct ncsi_dev_priv *ndp; + spinlock_t lock; + unsigned int channel_num; + struct list_head channels; + struct list_head node; + bool multi_channel; + u32 channel_whitelist; + struct ncsi_channel *preferred_channel; +}; + +struct ncsi_rsp_pkt_hdr { + struct ncsi_pkt_hdr common; + __be16 code; + __be16 reason; +}; + +struct ncsi_rsp_gc_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 cap; + __be32 bc_cap; + __be32 mc_cap; + __be32 buf_cap; + __be32 aen_cap; + unsigned char vlan_cnt; + unsigned char mixed_cnt; + unsigned char mc_cnt; + unsigned char uc_cnt; + unsigned char reserved[2]; + unsigned char vlan_mode; + unsigned char channel_cnt; + __be32 checksum; +}; + +struct ncsi_rsp_gcps_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be64 cnt; + __be64 rx_bytes; + __be64 tx_bytes; + __be64 rx_uc_pkts; + __be64 rx_mc_pkts; + __be64 rx_bc_pkts; + __be64 tx_uc_pkts; + __be64 tx_mc_pkts; + __be64 tx_bc_pkts; + __be32 fcs_err; + __be32 align_err; + __be32 false_carrier; + __be32 runt_pkts; + __be32 jabber_pkts; + __be32 rx_pause_xon; + __be32 rx_pause_xoff; + __be32 tx_pause_xon; + __be32 tx_pause_xoff; + __be32 tx_s_collision; + __be32 tx_m_collision; + __be32 l_collision; + __be32 e_collision; + __be32 rx_ctl_frames; + __be32 rx_64_frames; + __be32 rx_127_frames; + __be32 rx_255_frames; + __be32 rx_511_frames; + __be32 rx_1023_frames; + __be32 rx_1522_frames; + __be32 rx_9022_frames; + __be32 tx_64_frames; + __be32 tx_127_frames; + __be32 tx_255_frames; + __be32 tx_511_frames; + __be32 tx_1023_frames; + __be32 tx_1522_frames; + __be32 tx_9022_frames; + __be64 rx_valid_bytes; + __be32 rx_runt_pkts; + __be32 rx_jabber_pkts; + __be32 checksum; +} __attribute__((packed)); + +struct ncsi_rsp_gls_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 status; + __be32 other; + __be32 oem_status; + __be32 checksum; + unsigned char pad[10]; +}; + +struct ncsi_rsp_gmcma_pkt { + struct ncsi_rsp_pkt_hdr rsp; + unsigned char address_count; + unsigned char reserved[3]; + unsigned char addresses[0]; +}; + +struct ncsi_rsp_gnpts_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 tx_pkts; + __be32 tx_dropped; + __be32 tx_channel_err; + __be32 tx_us_err; + __be32 rx_pkts; + __be32 rx_dropped; + __be32 rx_channel_err; + __be32 rx_us_err; + __be32 rx_os_err; + __be32 checksum; +}; + +struct ncsi_rsp_gns_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 rx_cmds; + __be32 dropped_cmds; + __be32 cmd_type_errs; + __be32 cmd_csum_errs; + __be32 rx_pkts; + __be32 tx_pkts; + __be32 tx_aen_pkts; + __be32 checksum; +}; + +struct ncsi_rsp_gp_pkt { + struct ncsi_rsp_pkt_hdr rsp; + unsigned char mac_cnt; + unsigned char reserved[2]; + unsigned char mac_enable; + unsigned char vlan_cnt; + unsigned char reserved1; + __be16 vlan_enable; + __be32 link_mode; + __be32 bc_mode; + __be32 valid_modes; + unsigned char vlan_mode; + unsigned char fc_mode; + unsigned char reserved2[2]; + __be32 aen_mode; + unsigned char mac[6]; + __be16 vlan; + __be32 checksum; +}; + +struct ncsi_rsp_gps_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 status; + __be32 checksum; +}; + +struct ncsi_rsp_gpuuid_pkt { + struct ncsi_rsp_pkt_hdr rsp; + unsigned char uuid[16]; + __be32 checksum; +}; + +struct ncsi_rsp_gvi_pkt { + struct ncsi_rsp_pkt_hdr rsp; + unsigned char major; + unsigned char minor; + unsigned char update; + unsigned char alpha1; + unsigned char reserved[3]; + unsigned char alpha2; + unsigned char fw_name[12]; + __be32 fw_version; + __be16 pci_ids[4]; + __be32 mf_id; + __be32 checksum; +}; + +struct ncsi_rsp_handler { + unsigned char type; + int payload; + int (*handler)(struct ncsi_request *); +}; + +struct ncsi_rsp_oem_bcm_pkt { + unsigned char ver; + unsigned char type; + __be16 len; + unsigned char data[0]; +}; + +struct ncsi_rsp_oem_handler { + unsigned int mfr_id; + int (*handler)(struct ncsi_request *); +}; + +struct ncsi_rsp_oem_intel_pkt { + unsigned char cmd; + unsigned char data[0]; +}; + +struct ncsi_rsp_oem_mlx_pkt { + unsigned char cmd_rev; + unsigned char cmd; + unsigned char param; + unsigned char optional; + unsigned char data[0]; +}; + +struct ncsi_rsp_oem_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 mfr_id; + unsigned char data[0]; +}; + +struct ncsi_rsp_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 checksum; + unsigned char pad[22]; +}; + +struct nd_namespace_common; + +struct nd_btt { + struct device dev; + struct nd_namespace_common *ndns; + struct btt *btt; + long unsigned int lbasize; + u64 size; + uuid_t *uuid; + int id; + int initial_offset; + u16 version_major; + u16 version_minor; +}; + +struct nd_cmd_ars_cap { + __u64 address; + __u64 length; + __u32 status; + __u32 max_ars_out; + __u32 clear_err_unit; + __u16 flags; + __u16 reserved; +}; + +struct nd_cmd_clear_error { + __u64 address; + __u64 length; + __u32 status; + __u8 reserved[4]; + __u64 cleared; +}; + +struct nd_cmd_desc { + int in_num; + int out_num; + u32 in_sizes[5]; + int out_sizes[5]; +}; + +struct nd_cmd_get_config_data_hdr { + __u32 in_offset; + __u32 in_length; + __u32 status; + __u8 out_buf[0]; +}; + +struct nd_cmd_get_config_size { + __u32 status; + __u32 config_size; + __u32 max_xfer; +}; + +struct nd_cmd_pkg { + __u64 nd_family; + __u64 nd_command; + __u32 nd_size_in; + __u32 nd_size_out; + __u32 nd_reserved2[9]; + __u32 nd_fw_size; + unsigned char nd_payload[0]; +}; + +struct nd_cmd_set_config_hdr { + __u32 in_offset; + __u32 in_length; + __u8 in_buf[0]; +}; + +struct nd_cmd_vendor_hdr { + __u32 opcode; + __u32 in_length; + __u8 in_buf[0]; +}; + +struct nd_pfn_sb; + +struct nd_pfn { + int id; + uuid_t *uuid; + struct device dev; + long unsigned int align; + long unsigned int npfns; + enum nd_pfn_mode mode; + struct nd_pfn_sb *pfn_sb; + struct nd_namespace_common *ndns; +}; + +struct nd_dax { + struct nd_pfn nd_pfn; +}; + +struct nd_device_driver { + struct device_driver drv; + long unsigned int type; + int (*probe)(struct device *); + void (*remove)(struct device *); + void (*shutdown)(struct device *); + void (*notify)(struct device *, enum nvdimm_event); +}; + +struct nd_gen_sb { + char reserved[4088]; + __le64 checksum; +}; + +struct nd_interleave_set { + u64 cookie1; + u64 cookie2; + u64 altcookie; + guid_t type_guid; +}; + +struct nd_namespace_label; + +struct nd_label_ent { + struct list_head list; + long unsigned int flags; + struct nd_namespace_label *label; +}; + +struct nd_label_id { + char id[50]; +}; + +struct nvdimm; + +struct nvdimm_drvdata; + +struct nd_mapping { + struct nvdimm *nvdimm; + u64 start; + u64 size; + int position; + struct list_head labels; + struct mutex lock; + struct nvdimm_drvdata *ndd; +}; + +struct nd_mapping_desc { + struct nvdimm *nvdimm; + u64 start; + u64 size; + int position; +}; + +struct nd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + __u8 opt[0]; +}; + +struct nd_namespace_common { + int force_raw; + struct device dev; + struct device *claim; + enum nvdimm_claim_class claim_class; + int (*rw_bytes)(struct nd_namespace_common *, resource_size_t, void *, size_t, int, long unsigned int); +}; + +struct nd_namespace_index { + u8 sig[16]; + u8 flags[3]; + u8 labelsize; + __le32 seq; + __le64 myoff; + __le64 mysize; + __le64 otheroff; + __le64 labeloff; + __le32 nslot; + __le16 major; + __le16 minor; + __le64 checksum; + u8 free[0]; +}; + +struct nd_namespace_io { + struct nd_namespace_common common; + struct resource res; + resource_size_t size; + void *addr; + struct badblocks bb; +}; + +struct nvdimm_cxl_label { + u8 type[16]; + u8 uuid[16]; + u8 name[64]; + __le32 flags; + __le16 nrange; + __le16 position; + __le64 dpa; + __le64 rawsize; + __le32 slot; + __le32 align; + u8 region_uuid[16]; + u8 abstraction_uuid[16]; + __le16 lbasize; + u8 reserved[86]; + __le64 checksum; +}; + +struct nvdimm_efi_label { + u8 uuid[16]; + u8 name[64]; + __le32 flags; + __le16 nlabel; + __le16 position; + __le64 isetcookie; + __le64 lbasize; + __le64 dpa; + __le64 rawsize; + __le32 slot; + u8 align; + u8 reserved[3]; + guid_t type_guid; + guid_t abstraction_guid; + u8 reserved2[88]; + __le64 checksum; +}; + +struct nd_namespace_label { + union { + struct nvdimm_cxl_label cxl; + struct nvdimm_efi_label efi; + }; +}; + +struct nd_namespace_pmem { + struct nd_namespace_io nsio; + long unsigned int lbasize; + char *alt_name; + uuid_t *uuid; + int id; +}; + +struct nd_opt_hdr { + __u8 nd_opt_type; + __u8 nd_opt_len; +}; + +struct nd_percpu_lane { + int count; + spinlock_t lock; +}; + +struct nd_pfn_sb { + u8 signature[16]; + u8 uuid[16]; + u8 parent_uuid[16]; + __le32 flags; + __le16 version_major; + __le16 version_minor; + __le64 dataoff; + __le64 npfns; + __le32 mode; + __le32 start_pad; + __le32 end_trunc; + __le32 align; + __le32 page_size; + __le16 page_struct_size; + u8 padding[3994]; + __le64 checksum; +}; + +struct nd_region { + struct device dev; + struct ida ns_ida; + struct ida btt_ida; + struct ida pfn_ida; + struct ida dax_ida; + long unsigned int flags; + struct device *ns_seed; + struct device *btt_seed; + struct device *pfn_seed; + struct device *dax_seed; + long unsigned int align; + u16 ndr_mappings; + u64 ndr_size; + u64 ndr_start; + int id; + int num_lanes; + int ro; + int numa_node; + int target_node; + void *provider_data; + struct kernfs_node *bb_state; + struct badblocks bb; + struct nd_interleave_set *nd_set; + struct nd_percpu_lane *lane; + int (*flush)(struct nd_region *, struct bio *); + struct nd_mapping mapping[0]; +}; + +struct nd_region_data { + int ns_count; + int ns_active; + unsigned int hints_shift; + void *flush_wpq[0]; +}; + +struct nd_region_desc { + struct resource *res; + struct nd_mapping_desc *mapping; + u16 num_mappings; + const struct attribute_group **attr_groups; + struct nd_interleave_set *nd_set; + void *provider_data; + int num_lanes; + int numa_node; + int target_node; + long unsigned int flags; + int memregion; + struct device_node *of_node; + int (*flush)(struct nd_region *, struct bio *); +}; + +struct nda_cacheinfo { + __u32 ndm_confirmed; + __u32 ndm_used; + __u32 ndm_updated; + __u32 ndm_refcnt; +}; + +struct ndisc_options; + +struct prefix_info; + +struct ndisc_ops { + 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 ndisc_options { + struct nd_opt_hdr *nd_opt_array[15]; + struct nd_opt_hdr *nd_opts_ri; + struct nd_opt_hdr *nd_opts_ri_end; + struct nd_opt_hdr *nd_useropts; + struct nd_opt_hdr *nd_useropts_end; + struct nd_opt_hdr *nd_802154_opt_array[3]; +}; + +struct ndmsg { + __u8 ndm_family; + __u8 ndm_pad1; + __u16 ndm_pad2; + __s32 ndm_ifindex; + __u16 ndm_state; + __u8 ndm_flags; + __u8 ndm_type; +}; + +struct ndo_fdb_dump_context { + long unsigned int ifindex; + long unsigned int fdb_idx; +}; + +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 ndtmsg { + __u8 ndtm_family; + __u8 ndtm_pad1; + __u16 ndtm_pad2; +}; + +struct nduseroptmsg { + unsigned char nduseropt_family; + unsigned char nduseropt_pad1; + short unsigned int nduseropt_opts_len; + int nduseropt_ifindex; + __u8 nduseropt_icmp_type; + __u8 nduseropt_icmp_code; + short unsigned int nduseropt_pad2; + unsigned int nduseropt_pad3; +}; + +struct neigh_dump_filter { + int master_idx; + int dev_idx; +}; + +struct neigh_hash_table { + struct hlist_head *hash_heads; + 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 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]; + long unsigned int data_state[1]; +}; + +struct neigh_seq_state { + struct seq_net_private p; + struct neigh_table *tbl; + struct neigh_hash_table *nht; + void * (*neigh_sub_iter)(struct neigh_seq_state *, struct neighbour *, loff_t *); + unsigned int bucket; + unsigned int flags; +}; + +struct neigh_statistics { + long unsigned int allocs; + long unsigned int destroys; + long unsigned int hash_grows; + long unsigned int res_failed; + long unsigned int lookups; + long unsigned int hits; + long unsigned int rcv_probes_mcast; + long unsigned int rcv_probes_ucast; + long unsigned int periodic_gc_runs; + long unsigned int forced_gc_runs; + long unsigned int unres_discards; + long unsigned int table_fulls; +}; + +struct neigh_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table neigh_vars[21]; +}; + +struct pneigh_entry; + +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; + long unsigned int 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; + long unsigned int last_rand; + struct neigh_statistics *stats; + struct neigh_hash_table *nht; + struct pneigh_entry **phash_buckets; +}; + +struct neighbour { + struct hlist_node hash; + struct hlist_node dev_list; + struct neigh_table *tbl; + struct neigh_parms *parms; + long unsigned int confirmed; + long unsigned int updated; + rwlock_t lock; + refcount_t refcnt; + unsigned int arp_queue_len_bytes; + struct sk_buff_head arp_queue; + struct timer_list timer; + long unsigned int used; + atomic_t probes; + u8 nud_state; + u8 type; + u8 dead; + u8 protocol; + u32 flags; + seqlock_t ha_lock; + long: 0; + unsigned char ha[32]; + struct hh_cache hh; + int (*output)(struct neighbour *, struct sk_buff *); + const struct neigh_ops *ops; + struct list_head gc_list; + struct list_head managed_list; + struct callback_head rcu; + struct net_device *dev; + netdevice_tracker dev_tracker; + u8 primary_key[0]; +}; + +struct neighbour_cb { + long unsigned int sched_next; + unsigned int flags; +}; + +union nested_table { + union nested_table *table; + struct rhash_lock_head *bucket; +}; + +struct ref_tracker_dir {}; + +struct prot_inuse; + +struct netns_core { + struct ctl_table_header *sysctl_hdr; + int sysctl_somaxconn; + int sysctl_optmem_max; + u8 sysctl_txrehash; + u8 sysctl_tstamp_allow_data; + struct prot_inuse *prot_inuse; + struct cpumask *rps_default_mask; +}; + +struct tcp_mib; + +struct udp_mib; + +struct netns_mib { + struct ipstats_mib *ip_statistics; + struct ipstats_mib *ipv6_statistics; + struct tcp_mib *tcp_statistics; + struct linux_mib *net_statistics; + struct udp_mib *udp_statistics; + struct udp_mib *udp_stats_in6; + struct linux_xfrm_mib *xfrm_statistics; + struct linux_tls_mib *tls_statistics; + struct mptcp_mib *mptcp_statistics; + struct udp_mib *udplite_statistics; + struct udp_mib *udplite_stats_in6; + struct icmp_mib *icmp_statistics; + struct icmpmsg_mib *icmpmsg_statistics; + struct icmpv6_mib *icmpv6_statistics; + struct icmpv6msg_mib *icmpv6msg_statistics; + struct proc_dir_entry *proc_net_devsnmp6; +}; + +struct netns_packet { + struct mutex sklist_lock; + struct hlist_head sklist; +}; + +struct unix_table { + spinlock_t *locks; + struct hlist_head *buckets; +}; + +struct netns_unix { + struct unix_table table; + int sysctl_max_dgram_qlen; + struct ctl_table_header *ctl; +}; + +struct netns_nexthop { + struct rb_root rb_root; + struct hlist_head *devhash; + unsigned int seq; + u32 last_id_allocated; + struct blocking_notifier_head notifier_chain; +}; + +struct ping_group_range { + seqlock_t lock; + kgid_t range[2]; +}; + +struct sysctl_fib_multipath_hash_seed { + u32 user_seed; + u32 mp_seed; +}; + +struct netns_ipv4 { + __u8 __cacheline_group_begin__netns_ipv4_read_tx[0]; + u8 sysctl_tcp_early_retrans; + u8 sysctl_tcp_tso_win_divisor; + u8 sysctl_tcp_tso_rtt_log; + u8 sysctl_tcp_autocorking; + int sysctl_tcp_min_snd_mss; + unsigned int sysctl_tcp_notsent_lowat; + int sysctl_tcp_limit_output_bytes; + int sysctl_tcp_min_rtt_wlen; + int sysctl_tcp_wmem[3]; + u8 sysctl_ip_fwd_use_pmtu; + __u8 __cacheline_group_end__netns_ipv4_read_tx[0]; + __u8 __cacheline_group_begin__netns_ipv4_read_txrx[0]; + u8 sysctl_tcp_moderate_rcvbuf; + __u8 __cacheline_group_end__netns_ipv4_read_txrx[0]; + __u8 __cacheline_group_begin__netns_ipv4_read_rx[0]; + u8 sysctl_ip_early_demux; + u8 sysctl_tcp_early_demux; + u8 sysctl_tcp_l3mdev_accept; + int sysctl_tcp_reordering; + int sysctl_tcp_rmem[3]; + __u8 __cacheline_group_end__netns_ipv4_read_rx[0]; + long: 64; + 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 *ra_chain; + struct mutex ra_mutex; + struct fib_rules_ops *rules_ops; + struct fib_table *fib_main; + struct fib_table *fib_default; + unsigned int fib_rules_require_fldissect; + bool fib_has_custom_rules; + bool fib_has_custom_local_routes; + bool fib_offload_disabled; + u8 sysctl_tcp_shrink_window; + atomic_t fib_num_tclassid_users; + 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; + int sysctl_icmp_msgs_per_sec; + int sysctl_icmp_msgs_burst; + atomic_t icmp_global_credit; + u32 icmp_global_stamp; + 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_update_priority; + u8 sysctl_ip_nonlocal_bind; + u8 sysctl_ip_autobind_reuse; + u8 sysctl_ip_dynaddr; + u8 sysctl_raw_l3mdev_accept; + 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_probe_threshold; + u32 sysctl_tcp_probe_interval; + int sysctl_tcp_keepalive_time; + int sysctl_tcp_keepalive_intvl; + u8 sysctl_tcp_keepalive_probes; + u8 sysctl_tcp_syn_retries; + u8 sysctl_tcp_synack_retries; + u8 sysctl_tcp_syncookies; + u8 sysctl_tcp_migrate_req; + u8 sysctl_tcp_comp_sack_nr; + u8 sysctl_tcp_backlog_ack_defer; + u8 sysctl_tcp_pingpong_thresh; + u8 sysctl_tcp_retries1; + u8 sysctl_tcp_retries2; + u8 sysctl_tcp_orphan_retries; + u8 sysctl_tcp_tw_reuse; + unsigned int sysctl_tcp_tw_reuse_delay; + int sysctl_tcp_fin_timeout; + u8 sysctl_tcp_sack; + u8 sysctl_tcp_window_scaling; + u8 sysctl_tcp_timestamps; + int sysctl_tcp_rto_min_us; + 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_workaround_signed_windows; + int sysctl_tcp_challenge_ack_limit; + u8 sysctl_tcp_min_tso_segs; + u8 sysctl_tcp_reflect_tos; + int sysctl_tcp_invalid_ratelimit; + int sysctl_tcp_pacing_ss_ratio; + int sysctl_tcp_pacing_ca_ratio; + unsigned int sysctl_tcp_child_ehash_entries; + long unsigned int sysctl_tcp_comp_sack_delay_ns; + long unsigned int sysctl_tcp_comp_sack_slack_ns; + int sysctl_max_syn_backlog; + int sysctl_tcp_fastopen; + const struct tcp_congestion_ops *tcp_congestion_control; + struct tcp_fastopen_context *tcp_fastopen_ctx; + unsigned int sysctl_tcp_fastopen_blackhole_timeout; + atomic_t tfo_active_disable_times; + long unsigned int tfo_active_disable_stamp; + u32 tcp_challenge_timestamp; + u32 tcp_challenge_count; + u8 sysctl_tcp_plb_enabled; + u8 sysctl_tcp_plb_idle_rehash_rounds; + u8 sysctl_tcp_plb_rehash_rounds; + u8 sysctl_tcp_plb_suspend_rto_sec; + int sysctl_tcp_plb_cong_thresh; + int sysctl_udp_wmem_min; + int sysctl_udp_rmem_min; + u8 sysctl_fib_notify_on_flag_change; + u8 sysctl_tcp_syn_linear_timeouts; + u8 sysctl_udp_l3mdev_accept; + u8 sysctl_igmp_llm_reports; + int sysctl_igmp_max_memberships; + int sysctl_igmp_max_msf; + int sysctl_igmp_qrv; + struct ping_group_range ping_group_range; + atomic_t dev_addr_genid; + unsigned int sysctl_udp_child_hash_entries; + long unsigned int *sysctl_local_reserved_ports; + int sysctl_ip_prot_sock; + struct list_head mr_tables; + struct fib_rules_ops *mr_rules_ops; + struct sysctl_fib_multipath_hash_seed sysctl_fib_multipath_hash_seed; + 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 hlist_head *inet_addr_lst; + struct delayed_work addr_chk_work; + long: 64; + 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; + long unsigned int icmpv6_ratemask[4]; + long unsigned int *icmpv6_ratemask_ptr; + u8 anycast_src_echo_reply; + u8 ip_nonlocal_bind; + u8 fwmark_reflect; + u8 flowlabel_state_ranges; + int idgen_retries; + int idgen_delay; + int flowlabel_reflect; + int max_dst_opts_cnt; + int max_hbh_opts_cnt; + int max_dst_opts_len; + int max_hbh_opts_len; + int seg6_flowlabel; + u32 ioam6_id; + u64 ioam6_id_wide; + u8 skip_notify_on_dev_down; + u8 fib_notify_on_flag_change; + u8 icmpv6_error_anycast_as_unicast; +}; + +struct rt6_statistics; + +struct seg6_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; + long unsigned int ip6_rt_last_gc; + unsigned char flowlabel_has_excl; + bool fib6_has_custom_rules; + unsigned int fib6_rules_require_fldissect; + unsigned int fib6_routes_require_src; + struct rt6_info *ip6_prohibit_entry; + struct rt6_info *ip6_blk_hole_entry; + struct fib6_table *fib6_local_tbl; + struct fib_rules_ops *fib6_rules_ops; + struct sock *ndisc_sk; + struct sock *tcp_sk; + struct sock *igmp_sk; + struct sock *mc_autojoin_sk; + struct hlist_head *inet6_addr_lst; + spinlock_t addrconf_hash_lock; + struct delayed_work addr_chk_work; + struct list_head mr6_tables; + struct fib_rules_ops *mr6_rules_ops; + 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 netns_sysctl_lowpan { + struct ctl_table_header *frags_hdr; +}; + +struct netns_ieee802154_lowpan { + struct netns_sysctl_lowpan sysctl; + struct fqdir *fqdir; +}; + +struct sctp_mib; + +struct netns_sctp { + struct sctp_mib *sctp_statistics; + struct proc_dir_entry *proc_net_sctp; + struct ctl_table_header *sysctl_header; + struct sock *ctl_sock; + struct sock *udp4_sock; + struct sock *udp6_sock; + int udp_port; + int encap_port; + struct list_head local_addr_list; + struct list_head addr_waitq; + struct timer_list addr_wq_timer; + struct list_head auto_asconf_splist; + spinlock_t addr_wq_lock; + spinlock_t local_addr_lock; + unsigned int rto_initial; + unsigned int rto_min; + unsigned int rto_max; + int rto_alpha; + int rto_beta; + int max_burst; + int cookie_preserve_enable; + char *sctp_hmac_alg; + unsigned int valid_cookie_life; + unsigned int sack_timeout; + unsigned int hb_interval; + unsigned int probe_interval; + int max_retrans_association; + int max_retrans_path; + int max_retrans_init; + int pf_retrans; + int ps_retrans; + int pf_enable; + int pf_expose; + int sndbuf_policy; + int rcvbuf_policy; + int default_auto_asconf; + int addip_enable; + int addip_noauth; + int prsctp_enable; + int reconf_enable; + int auth_enable; + int intl_enable; + int ecn_enable; + int scope_policy; + int rwnd_upd_shift; + long unsigned int max_autoclose; + int l3mdev_accept; +}; + +struct nf_logger; + +struct nf_hook_entries; + +struct netns_nf { + struct proc_dir_entry *proc_netfilter; + const struct nf_logger *nf_loggers[11]; + struct ctl_table_header *nf_log_dir_header; + struct ctl_table_header *nf_lwtnl_dir_header; + struct nf_hook_entries *hooks_ipv4[5]; + struct nf_hook_entries *hooks_ipv6[5]; + struct nf_hook_entries *hooks_arp[3]; + struct nf_hook_entries *hooks_bridge[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; + unsigned int offload_timeout; +}; + +struct nf_udp_net { + unsigned int timeouts[2]; + unsigned int offload_timeout; +}; + +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_gre_net { + struct list_head keymap_list; + unsigned int timeouts[2]; +}; + +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 nf_gre_net gre; +}; + +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 *stat; + struct nf_ct_event_notifier *nf_conntrack_event_cb; + struct nf_ip_net nf_ct_proto; + atomic_t labels_used; +}; + +struct netns_nftables { + u8 gencursor; +}; + +struct nf_flow_table_stat; + +struct netns_ft { + struct nf_flow_table_stat *stat; +}; + +struct netns_bpf { + struct bpf_prog_array *run_array[2]; + struct bpf_prog *progs[2]; + struct list_head links[2]; +}; + +struct xfrm_policy_hash { + struct hlist_head *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 *state_bydst; + struct hlist_head *state_bysrc; + struct hlist_head *state_byspi; + struct hlist_head *state_byseq; + struct hlist_head *state_cache_input; + unsigned int state_hmask; + unsigned int state_num; + struct work_struct state_hash_work; + struct list_head policy_all; + struct hlist_head *policy_byidx; + unsigned int policy_idx_hmask; + unsigned int idx_generator; + struct 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; + 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; + struct delayed_work nat_keepalive_work; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct netns_ipvs; + +struct mpls_route; + +struct netns_mpls { + int ip_ttl_propagate; + int default_ttl; + size_t platform_labels; + struct mpls_route **platform_label; + struct ctl_table_header *ctl; +}; + +struct can_dev_rcv_lists; + +struct can_pkg_stats; + +struct can_rcv_lists_stats; + +struct netns_can { + struct proc_dir_entry *proc_dir; + struct proc_dir_entry *pde_stats; + struct proc_dir_entry *pde_reset_stats; + struct proc_dir_entry *pde_rcvlist_all; + struct proc_dir_entry *pde_rcvlist_fil; + struct proc_dir_entry *pde_rcvlist_inv; + struct proc_dir_entry *pde_rcvlist_sff; + struct proc_dir_entry *pde_rcvlist_eff; + struct proc_dir_entry *pde_rcvlist_err; + struct proc_dir_entry *bcmproc_dir; + struct can_dev_rcv_lists *rx_alldev_list; + spinlock_t rcvlists_lock; + struct timer_list stattimer; + struct can_pkg_stats *pkg_stats; + struct can_rcv_lists_stats *rcv_lists_stats; + struct hlist_head cgw_list; +}; + +struct netns_xdp { + struct mutex lock; + struct hlist_head list; +}; + +struct netns_mctp { + struct list_head routes; + struct mutex bind_lock; + struct hlist_head binds; + spinlock_t keys_lock; + struct hlist_head keys; + unsigned int default_net; + struct mutex neigh_lock; + struct list_head neighbours; +}; + +struct smc_stats; + +struct smc_stats_rsn; + +struct netns_smc { + struct smc_stats *smc_stats; + struct mutex mutex_fback_rsn; + struct smc_stats_rsn *fback_rsn; + bool limit_smc_hs; + struct ctl_table_header *smc_hdr; + unsigned int sysctl_autocorking_size; + unsigned int sysctl_smcr_buf_type; + int sysctl_smcr_testlink_time; + int sysctl_wmem; + int sysctl_rmem; + int sysctl_max_links_per_lgr; + int sysctl_max_conns_per_lgr; +}; + +struct uevent_sock; + +struct net_generic; + +struct net { + refcount_t passive; + spinlock_t rules_mod_lock; + unsigned int dev_base_seq; + u32 ifindex; + spinlock_t nsid_lock; + atomic_t fnhe_genid; + struct list_head list; + struct list_head exit_list; + struct llist_node defer_free_list; + struct llist_node cleanup_list; + struct key_tag *key_domain; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct idr netns_ids; + struct ns_common ns; + struct ref_tracker_dir refcnt_tracker; + struct ref_tracker_dir notrefcnt_tracker; + struct list_head dev_base_head; + struct proc_dir_entry *proc_net; + struct proc_dir_entry *proc_net_stat; + struct ctl_table_set sysctls; + struct sock *rtnl; + struct sock *genl_sock; + struct uevent_sock *uevent_sock; + struct hlist_head *dev_name_head; + struct hlist_head *dev_index_head; + struct xarray dev_by_index; + struct raw_notifier_head netdev_chain; + u32 hash_mix; + struct net_device *loopback_dev; + struct list_head rules_ops; + struct netns_core core; + struct netns_mib mib; + struct netns_packet packet; + struct netns_unix unx; + struct netns_nexthop nexthop; + long: 64; + long: 64; + struct netns_ipv4 ipv4; + struct netns_ipv6 ipv6; + struct netns_ieee802154_lowpan ieee802154_lowpan; + struct netns_sctp sctp; + struct netns_nf nf; + struct netns_ct ct; + struct netns_nftables nft; + struct netns_ft ft; + struct sk_buff_head wext_nlevents; + struct net_generic *gen; + struct netns_bpf bpf; + long: 64; + long: 64; + long: 64; + long: 64; + struct netns_xfrm xfrm; + u64 net_cookie; + struct netns_ipvs *ipvs; + struct netns_mpls mpls; + struct netns_can can; + struct netns_xdp xdp; + struct netns_mctp mctp; + struct sock *crypto_nlsk; + struct sock *diag_nlsk; + struct netns_smc smc; + long: 64; + long: 64; + long: 64; +}; + +struct rtable { + struct dst_entry dst; + int rt_genid; + unsigned int rt_flags; + __u16 rt_type; + __u8 rt_is_input; + __u8 rt_uses_gateway; + int rt_iif; + u8 rt_gw_family; + union { + __be32 rt_gw4; + struct in6_addr rt_gw6; + }; + u32 rt_mtu_locked: 1; + u32 rt_pmtu: 31; +}; + +struct rt6_info { + struct dst_entry dst; + struct fib6_info *from; + int sernum; + struct rt6key rt6i_dst; + struct rt6key rt6i_src; + struct in6_addr rt6i_gateway; + struct inet6_dev *rt6i_idev; + u32 rt6i_flags; + short unsigned int rt6i_nfheader_len; +}; + +struct net_bridge; + +struct net_bridge_vlan; + +struct net_bridge_mcast { + struct net_bridge *br; + struct net_bridge_vlan *vlan; + u32 multicast_last_member_count; + u32 multicast_startup_query_count; + u8 multicast_querier; + u8 multicast_igmp_version; + u8 multicast_router; + u8 multicast_mld_version; + long unsigned int multicast_last_member_interval; + long unsigned int multicast_membership_interval; + long unsigned int multicast_querier_interval; + long unsigned int multicast_query_interval; + long unsigned int multicast_query_response_interval; + long unsigned int multicast_startup_query_interval; + struct hlist_head ip4_mc_router_list; + struct timer_list ip4_mc_router_timer; + struct bridge_mcast_other_query ip4_other_query; + struct bridge_mcast_own_query ip4_own_query; + struct bridge_mcast_querier ip4_querier; + struct hlist_head ip6_mc_router_list; + struct timer_list ip6_mc_router_timer; + struct bridge_mcast_other_query ip6_other_query; + struct bridge_mcast_own_query ip6_own_query; + struct bridge_mcast_querier ip6_querier; +}; + +struct net_bridge_vlan_group; + +struct net_bridge { + spinlock_t lock; + spinlock_t hash_lock; + struct hlist_head frame_type_list; + struct net_device *dev; + long unsigned int options; + __be16 vlan_proto; + u16 default_pvid; + struct net_bridge_vlan_group *vlgrp; + struct rhashtable fdb_hash_tbl; + struct list_head port_list; + union { + struct rtable fake_rtable; + struct rt6_info fake_rt6_info; + }; + u32 metrics[17]; + u16 group_fwd_mask; + u16 group_fwd_mask_required; + bridge_id designated_root; + bridge_id bridge_id; + unsigned char topology_change; + unsigned char topology_change_detected; + u16 root_port; + long unsigned int max_age; + long unsigned int hello_time; + long unsigned int forward_delay; + long unsigned int ageing_time; + long unsigned int bridge_max_age; + long unsigned int bridge_hello_time; + long unsigned int bridge_forward_delay; + long unsigned int bridge_ageing_time; + u32 root_path_cost; + u8 group_addr[6]; + enum { + BR_NO_STP = 0, + BR_KERNEL_STP = 1, + BR_USER_STP = 2, + } stp_enabled; + struct net_bridge_mcast multicast_ctx; + struct bridge_mcast_stats *mcast_stats; + u32 hash_max; + spinlock_t multicast_lock; + struct rhashtable mdb_hash_tbl; + struct rhashtable sg_port_tbl; + struct hlist_head mcast_gc_list; + struct hlist_head mdb_list; + struct work_struct mcast_gc_work; + struct timer_list hello_timer; + struct timer_list tcn_timer; + struct timer_list topology_change_timer; + struct delayed_work gc_work; + struct kobject *ifobj; + u32 auto_cnt; + atomic_t fdb_n_learned; + u32 fdb_max_learned; + int last_hwdom; + long unsigned int busy_hwdoms; + struct hlist_head fdb_list; + struct hlist_head mrp_list; + struct hlist_head mep_list; +}; + +struct net_bridge_fdb_key { + mac_addr addr; + u16 vlan_id; +}; + +struct net_bridge_port; + +struct net_bridge_fdb_entry { + struct rhash_head rhnode; + struct net_bridge_port *dst; + struct net_bridge_fdb_key key; + struct hlist_node fdb_node; + long unsigned int flags; + long: 64; + long: 64; + long unsigned int updated; + long unsigned int used; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct net_bridge_mcast_port { + struct net_bridge_port *port; + struct net_bridge_vlan *vlan; + struct bridge_mcast_own_query ip4_own_query; + struct timer_list ip4_mc_router_timer; + struct hlist_node ip4_rlist; + struct bridge_mcast_own_query ip6_own_query; + struct timer_list ip6_mc_router_timer; + struct hlist_node ip6_rlist; + unsigned char multicast_router; + u32 mdb_n_entries; + u32 mdb_max_entries; +}; + +struct netpoll; + +struct net_bridge_port { + struct net_bridge *br; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct list_head list; + long unsigned int flags; + struct net_bridge_vlan_group *vlgrp; + struct net_bridge_port *backup_port; + u32 backup_nhid; + u8 priority; + u8 state; + u16 port_no; + unsigned char topology_change_ack; + unsigned char config_pending; + port_id port_id; + port_id designated_port; + bridge_id designated_root; + bridge_id designated_bridge; + u32 path_cost; + u32 designated_cost; + long unsigned int designated_age; + struct timer_list forward_delay_timer; + struct timer_list hold_timer; + struct timer_list message_age_timer; + struct kobject kobj; + struct callback_head rcu; + struct net_bridge_mcast_port multicast_ctx; + struct bridge_mcast_stats *mcast_stats; + u32 multicast_eht_hosts_limit; + u32 multicast_eht_hosts_cnt; + struct hlist_head mglist; + char sysfs_name[16]; + struct netpoll *np; + int hwdom; + int offload_count; + struct netdev_phys_item_id ppid; + u16 group_fwd_mask; + u16 backup_redirected_cnt; + struct bridge_stp_xstats stp_xstats; +}; + +struct pcpu_sw_netstats; + +struct net_bridge_vlan { + struct rhash_head vnode; + struct rhash_head tnode; + u16 vid; + u16 flags; + u16 priv_flags; + u8 state; + struct pcpu_sw_netstats *stats; + union { + struct net_bridge *br; + struct net_bridge_port *port; + }; + union { + refcount_t refcnt; + struct net_bridge_vlan *brvlan; + }; + struct br_tunnel_info tinfo; + union { + struct net_bridge_mcast br_mcast_ctx; + struct net_bridge_mcast_port port_mcast_ctx; + }; + u16 msti; + struct list_head vlist; + struct callback_head rcu; +}; + +struct net_bridge_vlan_group { + struct rhashtable vlan_hash; + struct rhashtable tunnel_hash; + struct list_head vlan_list; + u16 num_vlans; + u16 pvid; + u8 pvid_state; +}; + +struct netdev_tc_txq { + u16 count; + u16 offset; +}; + +typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **); + +struct net_device_stats { + union { + long unsigned int rx_packets; + atomic_long_t __rx_packets; + }; + union { + long unsigned int tx_packets; + atomic_long_t __tx_packets; + }; + union { + long unsigned int rx_bytes; + atomic_long_t __rx_bytes; + }; + union { + long unsigned int tx_bytes; + atomic_long_t __tx_bytes; + }; + union { + long unsigned int rx_errors; + atomic_long_t __rx_errors; + }; + union { + long unsigned int tx_errors; + atomic_long_t __tx_errors; + }; + union { + long unsigned int rx_dropped; + atomic_long_t __rx_dropped; + }; + union { + long unsigned int tx_dropped; + atomic_long_t __tx_dropped; + }; + union { + long unsigned int multicast; + atomic_long_t __multicast; + }; + union { + long unsigned int collisions; + atomic_long_t __collisions; + }; + union { + long unsigned int rx_length_errors; + atomic_long_t __rx_length_errors; + }; + union { + long unsigned int rx_over_errors; + atomic_long_t __rx_over_errors; + }; + union { + long unsigned int rx_crc_errors; + atomic_long_t __rx_crc_errors; + }; + union { + long unsigned int rx_frame_errors; + atomic_long_t __rx_frame_errors; + }; + union { + long unsigned int rx_fifo_errors; + atomic_long_t __rx_fifo_errors; + }; + union { + long unsigned int rx_missed_errors; + atomic_long_t __rx_missed_errors; + }; + union { + long unsigned int tx_aborted_errors; + atomic_long_t __tx_aborted_errors; + }; + union { + long unsigned int tx_carrier_errors; + atomic_long_t __tx_carrier_errors; + }; + union { + long unsigned int tx_fifo_errors; + atomic_long_t __tx_fifo_errors; + }; + union { + long unsigned int tx_heartbeat_errors; + atomic_long_t __tx_heartbeat_errors; + }; + union { + long unsigned int tx_window_errors; + atomic_long_t __tx_window_errors; + }; + union { + long unsigned int rx_compressed; + atomic_long_t __rx_compressed; + }; + union { + long unsigned int tx_compressed; + atomic_long_t __tx_compressed; + }; +}; + +struct netdev_hw_addr_list { + struct list_head list; + int count; + struct rb_root tree; +}; + +struct tipc_bearer; + +struct mpls_dev; + +struct garp_port; + +struct mrp_port; + +struct udp_tunnel_nic; + +struct net_device_ops; + +struct xps_dev_maps; + +struct pcpu_lstats; + +struct pcpu_dstats; + +struct netdev_rx_queue; + +struct netpoll_info; + +struct netdev_name_node; + +struct xdp_metadata_ops; + +struct xsk_tx_metadata_ops; + +struct net_device_core_stats; + +struct xfrmdev_ops; + +struct tlsdev_ops; + +struct vlan_info; + +struct wireless_dev; + +struct wpan_dev; + +struct xdp_dev_bulk_queue; + +struct rtnl_link_ops; + +struct netdev_stat_ops; + +struct netdev_queue_mgmt_ops; + +struct netprio_map; + +struct phy_link_topology; + +struct sfp_bus; + +struct udp_tunnel_nic_info; + +struct netdev_config; + +struct rtnl_hw_stats64; + +struct net_shaper_hierarchy; + +struct net_device { + __u8 __cacheline_group_begin__net_device_read_tx[0]; + union { + struct { + long unsigned int priv_flags: 32; + long unsigned int lltx: 1; + }; + struct { + long unsigned int priv_flags: 32; + long unsigned int lltx: 1; + } priv_flags_fast; + }; + const struct net_device_ops *netdev_ops; + const struct header_ops *header_ops; + struct netdev_queue *_tx; + netdev_features_t gso_partial_features; + unsigned int real_num_tx_queues; + unsigned int gso_max_size; + unsigned int gso_ipv4_max_size; + u16 gso_max_segs; + s16 num_tc; + unsigned int mtu; + short unsigned int needed_headroom; + struct netdev_tc_txq tc_to_txq[16]; + struct xps_dev_maps *xps_maps[2]; + struct nf_hook_entries *nf_hooks_egress; + struct bpf_mprog_entry *tcx_egress; + __u8 __cacheline_group_end__net_device_read_tx[0]; + __u8 __cacheline_group_begin__net_device_read_txrx[0]; + union { + struct pcpu_lstats *lstats; + struct pcpu_sw_netstats *tstats; + struct pcpu_dstats *dstats; + }; + long unsigned int state; + unsigned int flags; + short unsigned int hard_header_len; + netdev_features_t features; + struct inet6_dev *ip6_ptr; + __u8 __cacheline_group_end__net_device_read_txrx[0]; + __u8 __cacheline_group_begin__net_device_read_rx[0]; + struct bpf_prog *xdp_prog; + struct list_head ptype_specific; + int ifindex; + unsigned int real_num_rx_queues; + struct netdev_rx_queue *_rx; + unsigned int gro_max_size; + unsigned int gro_ipv4_max_size; + rx_handler_func_t *rx_handler; + void *rx_handler_data; + possible_net_t nd_net; + struct netpoll_info *npinfo; + struct bpf_mprog_entry *tcx_ingress; + __u8 __cacheline_group_end__net_device_read_rx[0]; + char name[16]; + struct netdev_name_node *name_node; + struct dev_ifalias *ifalias; + long unsigned int mem_end; + long unsigned int mem_start; + long unsigned int base_addr; + struct list_head dev_list; + struct list_head napi_list; + struct list_head unreg_list; + struct list_head close_list; + struct list_head ptype_all; + struct { + struct list_head upper; + struct list_head lower; + } adj_list; + xdp_features_t xdp_features; + const struct xdp_metadata_ops *xdp_metadata_ops; + const struct xsk_tx_metadata_ops *xsk_tx_metadata_ops; + short unsigned int gflags; + short unsigned int needed_tailroom; + netdev_features_t hw_features; + netdev_features_t wanted_features; + netdev_features_t vlan_features; + netdev_features_t hw_enc_features; + netdev_features_t mpls_features; + unsigned int min_mtu; + unsigned int max_mtu; + short unsigned int type; + unsigned char min_header_len; + unsigned char name_assign_type; + int group; + struct net_device_stats stats; + struct net_device_core_stats *core_stats; + atomic_t carrier_up_count; + atomic_t carrier_down_count; + const struct iw_handler_def *wireless_handlers; + const struct ethtool_ops *ethtool_ops; + const struct l3mdev_ops *l3mdev_ops; + const struct ndisc_ops *ndisc_ops; + const struct xfrmdev_ops *xfrmdev_ops; + const struct tlsdev_ops *tlsdev_ops; + unsigned int operstate; + unsigned char link_mode; + unsigned char if_port; + unsigned char dma; + unsigned char perm_addr[32]; + unsigned char addr_assign_type; + unsigned char addr_len; + unsigned char upper_level; + unsigned char lower_level; + short unsigned int neigh_priv_len; + short unsigned int dev_id; + short unsigned int dev_port; + int irq; + u32 priv_len; + spinlock_t addr_list_lock; + 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 *ip_ptr; + struct hlist_head fib_nh_head; + struct vlan_info *vlan_info; + struct dsa_port *dsa_ptr; + struct tipc_bearer *tipc_ptr; + void *atalk_ptr; + struct ax25_dev *ax25_ptr; + struct wireless_dev *ieee80211_ptr; + struct wpan_dev *ieee802154_ptr; + struct mpls_dev *mpls_ptr; + struct mctp_dev *mctp_ptr; + const unsigned char *dev_addr; + unsigned int num_rx_queues; + unsigned int xdp_zc_max_segs; + struct netdev_queue *ingress_queue; + struct nf_hook_entries *nf_hooks_ingress; + unsigned char broadcast[32]; + struct cpu_rmap *rx_cpu_rmap; + struct hlist_node index_hlist; + unsigned int num_tx_queues; + struct Qdisc *qdisc; + unsigned int tx_queue_len; + spinlock_t tx_global_lock; + struct xdp_dev_bulk_queue *xdp_bulkq; + struct hlist_head qdisc_hash[16]; + struct timer_list watchdog_timer; + int watchdog_timeo; + u32 proto_down_reason; + struct list_head todo_list; + int *pcpu_refcnt; + struct ref_tracker_dir refcnt_tracker; + struct list_head link_watch_list; + u8 reg_state; + bool dismantle; + enum { + RTNL_LINK_INITIALIZED = 0, + RTNL_LINK_INITIALIZING = 1, + } rtnl_link_state: 16; + bool needs_free_netdev; + void (*priv_destructor)(struct net_device *); + void *ml_priv; + enum netdev_ml_priv_type ml_priv_type; + enum netdev_stat_type pcpu_stat_type: 8; + struct garp_port *garp_port; + struct mrp_port *mrp_port; + struct dm_hw_stat_delta *dm_private; + struct device dev; + const struct attribute_group *sysfs_groups[4]; + const struct attribute_group *sysfs_rx_queue_group; + const struct rtnl_link_ops *rtnl_link_ops; + const struct netdev_stat_ops *stat_ops; + const struct netdev_queue_mgmt_ops *queue_mgmt_ops; + unsigned int tso_max_size; + u16 tso_max_segs; + const struct dcbnl_rtnl_ops *dcbnl_ops; + u8 prio_tc_map[16]; + unsigned int fcoe_ddp_xid; + struct netprio_map *priomap; + struct phy_link_topology *link_topo; + struct phy_device *phydev; + struct sfp_bus *sfp_bus; + struct lock_class_key *qdisc_tx_busylock; + bool proto_down; + bool threaded; + long unsigned int see_all_hwtstamp_requests: 1; + long unsigned int change_proto_down: 1; + long unsigned int netns_local: 1; + long unsigned int fcoe_mtu: 1; + struct list_head net_notifier_list; + const struct macsec_ops *macsec_ops; + const struct udp_tunnel_nic_info *udp_tunnel_nic_info; + struct udp_tunnel_nic *udp_tunnel_nic; + struct netdev_config *cfg; + struct netdev_config *cfg_pending; + struct ethtool_netdev_state *ethtool; + struct bpf_xdp_entity xdp_state[3]; + u8 dev_addr_shadow[32]; + netdevice_tracker linkwatch_dev_tracker; + netdevice_tracker watchdog_dev_tracker; + netdevice_tracker dev_registered_tracker; + struct rtnl_hw_stats64 *offload_xstats_l3; + struct devlink_port *devlink_port; + struct dpll_pin *dpll_pin; + struct hlist_head page_pools; + struct dim_irq_moder *irq_moder; + u64 max_pacing_offload_horizon; + struct napi_config *napi_config; + long unsigned int gro_flush_timeout; + u32 napi_defer_hard_irqs; + bool up; + struct mutex lock; + struct net_shaper_hierarchy *net_shaper_hierarchy; + struct hlist_head neighbours[2]; + struct hwtstamp_provider *hwprov; + long: 64; + long: 64; + u8 priv[0]; +}; + +struct net_device_core_stats { + long unsigned int rx_dropped; + long unsigned int tx_dropped; + long unsigned int rx_nohandler; + long unsigned int rx_otherhost_dropped; +}; + +struct net_device_devres { + struct net_device *ndev; +}; + +struct netdev_fcoe_hbainfo; + +struct netdev_bpf; + +struct xdp_frame; + +struct net_device_path_ctx; + +struct net_device_path; + +struct skb_shared_hwtstamps; + +struct net_shaper_ops; + +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 *, 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 *); + 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_fcoe_enable)(struct net_device *); + int (*ndo_fcoe_disable)(struct net_device *); + int (*ndo_fcoe_ddp_setup)(struct net_device *, u16, struct scatterlist *, unsigned int); + int (*ndo_fcoe_ddp_done)(struct net_device *, u16); + int (*ndo_fcoe_ddp_target)(struct net_device *, u16, struct scatterlist *, unsigned int); + int (*ndo_fcoe_get_hbainfo)(struct net_device *, struct netdev_fcoe_hbainfo *); + int (*ndo_fcoe_get_wwn)(struct net_device *, u64 *, int); + 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, bool *, struct netlink_ext_ack *); + int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, bool *, struct netlink_ext_ack *); + int (*ndo_fdb_del_bulk)(struct nlmsghdr *, struct net_device *, struct netlink_ext_ack *); + int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *); + int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *); + int (*ndo_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *); + int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); + int (*ndo_mdb_del_bulk)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); + int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *); + int (*ndo_mdb_get)(struct net_device *, struct nlattr **, u32, u32, struct netlink_ext_ack *); + int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *); + int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int); + int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16); + int (*ndo_change_carrier)(struct net_device *, bool); + int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t); + void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *); + void (*ndo_dfwd_del_station)(struct net_device *, void *); + int (*ndo_set_tx_maxrate)(struct net_device *, int, u32); + int (*ndo_get_iflink)(const struct net_device *); + int (*ndo_fill_metadata_dst)(struct net_device *, struct sk_buff *); + void (*ndo_set_rx_headroom)(struct net_device *, int); + int (*ndo_bpf)(struct net_device *, struct netdev_bpf *); + int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32); + struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *); + int (*ndo_xsk_wakeup)(struct net_device *, u32, u32); + int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm_kern *, int); + struct net_device * (*ndo_get_peer_dev)(struct net_device *); + int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *); + ktime_t (*ndo_get_tstamp)(struct net_device *, const struct skb_shared_hwtstamps *, bool); + int (*ndo_hwtstamp_get)(struct net_device *, struct kernel_hwtstamp_config *); + int (*ndo_hwtstamp_set)(struct net_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); + const struct net_shaper_ops *net_shaper_ops; +}; + +struct net_device_path { + enum net_device_path_type type; + const struct net_device *dev; + union { + struct { + u16 id; + __be16 proto; + u8 h_dest[6]; + } encap; + struct { + enum { + DEV_PATH_BR_VLAN_KEEP = 0, + DEV_PATH_BR_VLAN_TAG = 1, + DEV_PATH_BR_VLAN_UNTAG = 2, + DEV_PATH_BR_VLAN_UNTAG_HW = 3, + } vlan_mode; + u16 vlan_id; + __be16 vlan_proto; + } bridge; + struct { + int port; + u16 proto; + } dsa; + struct { + u8 wdma_idx; + u8 queue; + u16 wcid; + u8 bss; + u8 amsdu; + } mtk_wdma; + }; +}; + +struct net_device_path_ctx { + const struct net_device *dev; + u8 daddr[6]; + int num_vlans; + struct { + u16 id; + __be16 proto; + } vlan[2]; +}; + +struct net_device_path_stack { + int num_paths; + struct net_device_path path[5]; +}; + +struct net_devmem_dmabuf_binding { + struct dma_buf *dmabuf; + struct dma_buf_attachment *attachment; + struct sg_table *sgt; + struct net_device *dev; + struct gen_pool *chunk_pool; + refcount_t ref; + struct list_head list; + struct xarray bound_rxqs; + u32 id; +}; + +struct net_dm_drop_point { + __u8 pc[8]; + __u32 count; +}; + +struct net_dm_alert_msg { + __u32 entries; + struct net_dm_drop_point points[0]; +}; + +struct net_dm_alert_ops { + void (*kfree_skb_probe)(void *, struct sk_buff *, void *, enum skb_drop_reason, struct sock *); + void (*napi_poll_probe)(void *, struct napi_struct *, int, int); + void (*work_item_func)(struct work_struct *); + void (*hw_work_item_func)(struct work_struct *); + void (*hw_trap_probe)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *); +}; + +struct net_dm_hw_entry { + char trap_name[40]; + u32 count; +}; + +struct net_dm_hw_entries { + u32 num_entries; + struct net_dm_hw_entry entries[0]; +}; + +struct net_dm_skb_cb { + union { + struct devlink_trap_metadata *hw_metadata; + void *pc; + }; + enum skb_drop_reason reason; +}; + +struct net_dm_stats { + u64_stats_t dropped; + struct u64_stats_sync syncp; +}; + +struct rtnl_link_stats64 { + __u64 rx_packets; + __u64 tx_packets; + __u64 rx_bytes; + __u64 tx_bytes; + __u64 rx_errors; + __u64 tx_errors; + __u64 rx_dropped; + __u64 tx_dropped; + __u64 multicast; + __u64 collisions; + __u64 rx_length_errors; + __u64 rx_over_errors; + __u64 rx_crc_errors; + __u64 rx_frame_errors; + __u64 rx_fifo_errors; + __u64 rx_missed_errors; + __u64 tx_aborted_errors; + __u64 tx_carrier_errors; + __u64 tx_fifo_errors; + __u64 tx_heartbeat_errors; + __u64 tx_window_errors; + __u64 rx_compressed; + __u64 tx_compressed; + __u64 rx_nohandler; + __u64 rx_otherhost_dropped; +}; + +struct net_failover_info { + struct net_device *primary_dev; + struct net_device *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 net_fill_args { + u32 portid; + u32 seq; + int flags; + int cmd; + int nsid; + bool add_ref; + int ref_nsid; +}; + +struct net_generic { + union { + struct { + unsigned int len; + struct callback_head rcu; + } s; + struct { + struct {} __empty_ptr; + void *ptr[0]; + }; + }; +}; + +struct offload_callbacks { + struct sk_buff * (*gso_segment)(struct sk_buff *, netdev_features_t); + struct sk_buff * (*gro_receive)(struct list_head *, struct sk_buff *); + int (*gro_complete)(struct sk_buff *, int); +}; + +struct packet_offload { + __be16 type; + u16 priority; + struct offload_callbacks callbacks; + struct list_head list; +}; + +struct net_offload { + struct offload_callbacks callbacks; + unsigned int flags; + u32 secret; +}; + +struct net_protocol { + int (*handler)(struct sk_buff *); + int (*err_handler)(struct sk_buff *, u32); + unsigned int no_policy: 1; + unsigned int icmp_strict_tag_validation: 1; + u32 secret; +}; + +struct rps_sock_flow_table; + +struct net_hotdata { + struct packet_offload ip_packet_offload; + struct net_offload tcpv4_offload; + struct net_protocol tcp_protocol; + struct net_offload udpv4_offload; + struct net_protocol udp_protocol; + struct packet_offload ipv6_packet_offload; + struct net_offload tcpv6_offload; + struct inet6_protocol tcpv6_protocol; + struct inet6_protocol udpv6_protocol; + struct net_offload udpv6_offload; + struct list_head offload_base; + struct list_head ptype_all; + struct kmem_cache *skbuff_cache; + struct kmem_cache *skbuff_fclone_cache; + struct kmem_cache *skb_small_head_cache; + struct rps_sock_flow_table *rps_sock_flow_table; + u32 rps_cpu_mask; + int gro_normal_batch; + int netdev_budget; + int netdev_budget_usecs; + int tstamp_prequeue; + int max_backlog; + int dev_tx_weight; + int dev_rx_weight; + int sysctl_max_skb_frags; + int sysctl_skb_defer_max; + int sysctl_mem_pcpu_rsv; +}; + +struct net_iov { + long unsigned int __unused_padding; + long unsigned int pp_magic; + struct page_pool *pp; + struct dmabuf_genpool_chunk_owner *owner; + long unsigned int dma_addr; + atomic_long_t pp_ref_count; +}; + +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_proto_family { + int family; + int (*create)(struct net *, struct socket *, int, int); + struct module *owner; +}; + +struct net_rate_estimator { + struct gnet_stats_basic_sync *bstats; + spinlock_t *stats_lock; + bool running; + struct gnet_stats_basic_sync *cpu_bstats; + u8 ewma_log; + u8 intvl_log; + seqcount_t seq; + u64 last_packets; + u64 last_bytes; + u64 avpps; + u64 avbps; + long unsigned int next_jiffies; + struct timer_list timer; + struct callback_head rcu; +}; + +struct net_shaper_handle { + enum net_shaper_scope scope; + u32 id; +}; + +struct net_shaper { + struct net_shaper_handle parent; + struct net_shaper_handle handle; + enum net_shaper_metric metric; + u64 bw_min; + u64 bw_max; + u64 burst; + u32 priority; + u32 weight; + u32 leaves; + struct callback_head rcu; +}; + +struct net_shaper_binding { + enum net_shaper_binding_type type; + union { + struct net_device *netdev; + struct devlink *devlink; + }; +}; + +struct net_shaper_hierarchy { + struct xarray shapers; +}; + +struct net_shaper_nl_ctx { + struct net_shaper_binding binding; + netdevice_tracker dev_tracker; + long unsigned int start_index; +}; + +struct net_shaper_ops { + int (*group)(struct net_shaper_binding *, int, const struct net_shaper *, const struct net_shaper *, struct netlink_ext_ack *); + int (*set)(struct net_shaper_binding *, const struct net_shaper *, struct netlink_ext_ack *); + int (*delete)(struct net_shaper_binding *, const struct net_shaper_handle *, struct netlink_ext_ack *); + void (*capabilities)(struct net_shaper_binding *, enum net_shaper_scope, long unsigned int *); +}; + +struct net_test { + char name[32]; + int (*fn)(struct net_device *); +}; + +struct net_test_priv { + struct net_packet_attrs *packet; + struct packet_type pt; + struct completion comp; + int double_vlan; + int vlan_id; + int ok; +}; + +struct netconfmsg { + __u8 ncm_family; +}; + +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 netdev_bonding_info { + ifslave slave; + ifbond master; +}; + +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 netdev_config { + u32 hds_thresh; + u8 hds_config; +}; + +struct netdev_fcoe_hbainfo { + char manufacturer[64]; + char serial_number[64]; + char hardware_version[64]; + char driver_version[64]; + char optionrom_version[64]; + char firmware_version[64]; + char model[256]; + char model_description[256]; +}; + +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 netdev_lag_lower_state_info { + u8 link_up: 1; + u8 tx_enabled: 1; +}; + +struct netdev_lag_upper_info { + enum netdev_lag_tx_type tx_type; + enum netdev_lag_hash hash_type; +}; + +struct netdev_name_node { + struct hlist_node hlist; + struct list_head list; + struct net_device *dev; + const char *name; + struct callback_head rcu; +}; + +struct netdev_nested_priv { + unsigned char flags; + void *data; +}; + +struct netdev_net_notifier { + struct list_head list; + struct notifier_block *nb; +}; + +struct netdev_nl_dump_ctx { + long unsigned int ifindex; + unsigned int rxq_idx; + unsigned int txq_idx; + unsigned int napi_id; +}; + +struct netdev_notifier_info { + struct net_device *dev; + struct netlink_ext_ack *extack; +}; + +struct netdev_notifier_bonding_info { + struct netdev_notifier_info info; + struct netdev_bonding_info bonding_info; +}; + +struct netdev_notifier_change_info { + struct netdev_notifier_info info; + unsigned int flags_changed; +}; + +struct netdev_notifier_changelowerstate_info { + struct netdev_notifier_info info; + void *lower_state_info; +}; + +struct netdev_notifier_changeupper_info { + struct netdev_notifier_info info; + struct net_device *upper_dev; + bool master; + bool linking; + void *upper_info; +}; + +struct netdev_notifier_info_ext { + struct netdev_notifier_info info; + union { + u32 mtu; + } ext; +}; + +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 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 netdev_notifier_offload_xstats_rd { + struct rtnl_hw_stats64 stats; + bool used; +}; + +struct netdev_notifier_offload_xstats_ru { + bool used; +}; + +struct netdev_notifier_pre_changeaddr_info { + struct netdev_notifier_info info; + const unsigned char *dev_addr; +}; + +struct netdev_queue { + struct net_device *dev; + netdevice_tracker dev_tracker; + struct Qdisc *qdisc; + struct Qdisc *qdisc_sleeping; + struct kobject kobj; + long unsigned int tx_maxrate; + atomic_long_t trans_timeout; + struct net_device *sb_dev; + struct xsk_buff_pool *pool; + long: 64; + struct dql dql; + spinlock_t _xmit_lock; + int xmit_lock_owner; + long unsigned int trans_start; + long unsigned int state; + struct napi_struct *napi; + int numa_node; + long: 64; + long: 64; + long: 64; +}; + +struct netdev_queue_attribute { + struct attribute attr; + ssize_t (*show)(struct netdev_queue *, char *); + ssize_t (*store)(struct netdev_queue *, const char *, size_t); +}; + +struct netdev_queue_mgmt_ops { + size_t ndo_queue_mem_size; + int (*ndo_queue_mem_alloc)(struct net_device *, void *, int); + void (*ndo_queue_mem_free)(struct net_device *, void *); + int (*ndo_queue_start)(struct net_device *, void *, int); + int (*ndo_queue_stop)(struct net_device *, void *, int); +}; + +struct netdev_queue_stats_rx { + u64 bytes; + u64 packets; + u64 alloc_fail; + u64 hw_drops; + u64 hw_drop_overruns; + u64 csum_unnecessary; + u64 csum_none; + u64 csum_bad; + u64 hw_gro_packets; + u64 hw_gro_bytes; + u64 hw_gro_wire_packets; + u64 hw_gro_wire_bytes; + u64 hw_drop_ratelimits; +}; + +struct netdev_queue_stats_tx { + u64 bytes; + u64 packets; + u64 hw_drops; + u64 hw_drop_errors; + u64 csum_none; + u64 needs_csum; + u64 hw_gso_packets; + u64 hw_gso_bytes; + u64 hw_gso_wire_packets; + u64 hw_gso_wire_bytes; + u64 hw_drop_ratelimits; + u64 stop; + u64 wake; +}; + +struct pp_memory_provider_params { + void *mp_priv; +}; + +struct rps_map; + +struct rps_dev_flow_table; + +struct netdev_rx_queue { + struct xdp_rxq_info xdp_rxq; + struct rps_map *rps_map; + struct rps_dev_flow_table *rps_flow_table; + struct kobject kobj; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct xsk_buff_pool *pool; + struct napi_struct *napi; + struct pp_memory_provider_params mp_params; + long: 64; + long: 64; +}; + +struct netdev_stat_ops { + void (*get_queue_stats_rx)(struct net_device *, int, struct netdev_queue_stats_rx *); + void (*get_queue_stats_tx)(struct net_device *, int, struct netdev_queue_stats_tx *); + void (*get_base_stats)(struct net_device *, struct netdev_queue_stats_rx *, struct netdev_queue_stats_tx *); +}; + +struct netdev_xmit { + u16 recursion; + u8 more; + u8 skip_txqueue; +}; + +struct netevent_redirect { + struct dst_entry *old; + struct dst_entry *new; + struct neighbour *neigh; + const void *daddr; +}; + +struct netfront_cb { + int pull_to; +}; + +struct netfront_queue; + +struct netfront_stats; + +struct netfront_info { + struct list_head list; + struct net_device *netdev; + struct xenbus_device *xbdev; + struct netfront_queue *queues; + struct netfront_stats *rx_stats; + struct netfront_stats *tx_stats; + bool netback_has_xdp_headroom; + bool netfront_xdp_enabled; + bool broken; + bool bounce; + atomic_t rx_gso_checksum_fixup; +}; + +struct xen_netif_tx_sring; + +struct xen_netif_tx_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct xen_netif_tx_sring *sring; +}; + +struct xen_netif_rx_sring; + +struct xen_netif_rx_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct xen_netif_rx_sring *sring; +}; + +struct netfront_queue { + unsigned int id; + char name[22]; + struct netfront_info *info; + struct bpf_prog *xdp_prog; + struct napi_struct napi; + unsigned int tx_evtchn; + unsigned int rx_evtchn; + unsigned int tx_irq; + unsigned int rx_irq; + char tx_irq_name[25]; + char rx_irq_name[25]; + spinlock_t tx_lock; + struct xen_netif_tx_front_ring tx; + int tx_ring_ref; + struct sk_buff *tx_skbs[256]; + short unsigned int tx_link[256]; + grant_ref_t gref_tx_head; + grant_ref_t grant_tx_ref[256]; + struct page *grant_tx_page[256]; + unsigned int tx_skb_freelist; + unsigned int tx_pend_queue; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t rx_lock; + struct xen_netif_rx_front_ring rx; + int rx_ring_ref; + struct timer_list rx_refill_timer; + struct sk_buff *rx_skbs[256]; + grant_ref_t gref_rx_head; + grant_ref_t grant_rx_ref[256]; + unsigned int rx_rsp_unconsumed; + spinlock_t rx_cons_lock; + struct page_pool *page_pool; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; +}; + +struct xen_netif_rx_response { + uint16_t id; + uint16_t offset; + uint16_t flags; + int16_t status; +}; + +struct xen_netif_extra_info { + uint8_t type; + uint8_t flags; + union { + struct { + uint16_t size; + uint8_t type; + uint8_t pad; + uint16_t features; + } gso; + struct { + uint8_t addr[6]; + } mcast; + struct { + uint8_t type; + uint8_t algorithm; + uint8_t value[4]; + } hash; + struct { + uint16_t headroom; + uint16_t pad[2]; + } xdp; + uint16_t pad[3]; + } u; +}; + +struct netfront_rx_info { + struct xen_netif_rx_response rx; + struct xen_netif_extra_info extras[5]; +}; + +struct netfront_stats { + u64 packets; + u64 bytes; + struct u64_stats_sync syncp; +}; + +struct netif_security_struct { + struct net *ns; + int ifindex; + u32 sid; +}; + +struct netkit { + struct net_device *peer; + struct bpf_mprog_entry *active; + enum netkit_action policy; + enum netkit_scrub scrub; + struct bpf_mprog_bundle bundle; + enum netkit_mode mode; + bool primary; + u32 headroom; +}; + +struct netkit_link { + struct bpf_link link; + struct net_device *dev; + u32 location; +}; + +struct netlbl_af4list { + __be32 addr; + __be32 mask; + u32 valid; + struct list_head list; +}; + +struct netlbl_af6list { + struct in6_addr addr; + struct in6_addr mask; + u32 valid; + struct list_head list; +}; + +struct netlbl_audit { + struct lsm_prop prop; + kuid_t loginuid; + unsigned int sessionid; +}; + +struct netlbl_calipso_doiwalk_arg { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; +}; + +struct netlbl_lsm_secattr; + +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)(void); + int (*cache_add)(const unsigned char *, const struct netlbl_lsm_secattr *); +}; + +struct netlbl_cipsov4_doiwalk_arg { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; +}; + +struct netlbl_domaddr_map; + +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; + struct netlbl_dommap_def def; + u16 family; + u32 valid; + struct list_head list; + struct callback_head rcu; +}; + +struct netlbl_domaddr4_map { + struct netlbl_dommap_def def; + struct netlbl_af4list list; +}; + +struct netlbl_domaddr6_map { + struct netlbl_dommap_def def; + struct netlbl_af6list list; +}; + +struct netlbl_domaddr_map { + struct list_head list4; + struct list_head list6; +}; + +struct netlbl_domhsh_tbl { + struct list_head *tbl; + u32 size; +}; + +struct netlbl_domhsh_walk_arg { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; +}; + +struct netlbl_domhsh_walk_arg___2 { + struct netlbl_audit *audit_info; + u32 doi; +}; + +struct netlbl_lsm_cache { + refcount_t refcount; + void (*free)(const void *); + void *data; +}; + +struct netlbl_lsm_catmap { + u32 startbit; + u64 bitmap[4]; + struct netlbl_lsm_catmap *next; +}; + +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_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_iface { + int ifindex; + struct list_head addr4_list; + struct list_head addr6_list; + u32 valid; + struct list_head list; + struct callback_head rcu; +}; + +struct netlbl_unlhsh_tbl { + struct list_head *tbl; + u32 size; +}; + +struct netlbl_unlhsh_walk_arg { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; +}; + +struct netlink_broadcast_data { + struct sock *exclude_sk; + struct net *net; + u32 portid; + u32 group; + int failure; + int delivery_failure; + int congested; + int delivered; + gfp_t allocation; + struct sk_buff *skb; + struct sk_buff *skb2; + int (*tx_filter)(struct sock *, struct sk_buff *, void *); + void *tx_data; +}; + +struct netlink_callback { + struct sk_buff *skb; + const struct nlmsghdr *nlh; + int (*dump)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + void *data; + struct module *module; + struct netlink_ext_ack *extack; + u16 family; + u16 answer_flags; + u32 min_dump_alloc; + unsigned int prev_seq; + unsigned int seq; + int flags; + bool strict_check; + union { + u8 ctx[48]; + long int args[6]; + }; +}; + +struct netlink_compare_arg { + possible_net_t pnet; + u32 portid; +}; + +struct netlink_dump_control { + int (*start)(struct netlink_callback *); + int (*dump)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + struct netlink_ext_ack *extack; + void *data; + struct module *module; + u32 min_dump_alloc; + int flags; +}; + +struct 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_kernel_cfg { + unsigned int groups; + unsigned int flags; + void (*input)(struct sk_buff *); + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, long unsigned int *); +}; + +struct netlink_notify { + struct net *net; + u32 portid; + int protocol; +}; + +struct netlink_policy_dump_state { + unsigned int policy_idx; + unsigned int attr_idx; + unsigned int n_alloc; + struct { + const struct nla_policy *policy; + unsigned int maxtype; + } policies[0]; +}; + +struct netlink_range_validation { + u64 min; + u64 max; +}; + +struct netlink_range_validation_signed { + s64 min; + s64 max; +}; + +struct netlink_set_err_data { + struct sock *exclude_sk; + u32 portid; + u32 group; + int code; +}; + +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 netlink_sock { + struct sock sk; + long unsigned int flags; + u32 portid; + u32 dst_portid; + u32 dst_group; + u32 subscriptions; + u32 ngroups; + long unsigned int *groups; + long unsigned int state; + size_t max_recvmsg_len; + wait_queue_head_t wait; + bool bound; + bool cb_running; + int dump_done_errno; + struct netlink_callback cb; + struct mutex nl_cb_mutex; + void (*netlink_rcv)(struct sk_buff *); + int (*netlink_bind)(struct net *, int); + void (*netlink_unbind)(struct net *, int); + void (*netlink_release)(struct sock *, long unsigned int *); + struct module *module; + struct rhash_head node; + struct callback_head rcu; +}; + +struct netlink_table { + struct rhashtable hash; + struct hlist_head mc_list; + struct listeners *listeners; + unsigned int flags; + unsigned int groups; + struct mutex *cb_mutex; + struct module *module; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, long unsigned int *); + int registered; +}; + +struct netlink_tap { + struct net_device *dev; + struct module *module; + struct list_head list; +}; + +struct netlink_tap_net { + struct list_head netlink_tap_all; + struct mutex netlink_tap_lock; +}; + +struct netnode_security_struct { + union { + __be32 ipv4; + struct in6_addr ipv6; + } addr; + u32 sid; + u16 family; +}; + +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 sk_buff_head skb_pool; +}; + +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 netport_security_struct { + u32 sid; + u16 port; + u8 protocol; +}; + +struct netprio_map { + struct callback_head rcu; + u32 priomap_len; + u32 priomap[0]; +}; + +struct netsfhdr { + __be32 version; + __be64 magic; + u8 id; +} __attribute__((packed)); + +struct new_utsname { + char sysname[65]; + char nodename[65]; + char release[65]; + char version[65]; + char machine[65]; + char domainname[65]; +}; + +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 *nh_info; + struct nh_group *nh_grp; + }; +}; + +struct nexthop_grp { + __u32 id; + __u8 weight; + __u8 weight_high; + __u16 resvd2; +}; + +struct nf_bridge_info { + enum { + BRNF_PROTO_UNCHANGED = 0, + BRNF_PROTO_8021Q = 1, + BRNF_PROTO_PPPOE = 2, + } orig_proto: 8; + u8 pkt_otherhost: 1; + u8 in_prerouting: 1; + u8 bridged_dnat: 1; + u8 sabotage_in_done: 1; + __u16 frag_max_size; + int physinif; + struct net_device *physoutdev; + union { + __be32 ipv4_daddr; + struct in6_addr ipv6_daddr; + char neigh_header[8]; + }; +}; + +struct nf_conntrack { + refcount_t use; +}; + +struct nf_conntrack_zone { + u16 id; + u8 flags; + u8 dir; +}; + +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; +}; + +struct nf_conntrack_man { + union nf_inet_addr u3; + union nf_conntrack_man_proto u; + u_int16_t l3num; +}; + +struct nf_conntrack_tuple { + struct nf_conntrack_man src; + struct { + union nf_inet_addr u3; + union { + __be16 all; + struct { + __be16 port; + } tcp; + struct { + __be16 port; + } udp; + struct { + u_int8_t type; + u_int8_t code; + } icmp; + struct { + __be16 port; + } dccp; + struct { + __be16 port; + } sctp; + struct { + __be16 key; + } gre; + } u; + u_int8_t protonum; + struct {} __nfct_hash_offsetend; + u_int8_t dir; + } dst; +}; + +struct nf_conntrack_tuple_hash { + struct hlist_nulls_node hnnode; + struct nf_conntrack_tuple tuple; +}; + +struct nf_ct_dccp { + u_int8_t role[2]; + u_int8_t state; + u_int8_t last_pkt; + u_int8_t last_dir; + u_int64_t handshake_seq; +}; + +struct nf_ct_udp { + long unsigned int 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]; + long unsigned int 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 nf_conn___init { + struct nf_conn ct; +}; + +struct nf_conn_labels { + long unsigned int bits[2]; +}; + +struct nf_conntrack_tuple_mask { + struct { + union nf_inet_addr u3; + union nf_conntrack_man_proto u; + } src; +}; + +struct nf_conntrack_helper; + +struct nf_conntrack_expect { + struct hlist_node lnode; + struct hlist_node hnode; + struct nf_conntrack_tuple tuple; + struct nf_conntrack_tuple_mask mask; + refcount_t use; + unsigned int flags; + unsigned int class; + void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *); + struct nf_conntrack_helper *helper; + struct nf_conn *master; + struct timer_list timeout; + union nf_inet_addr saved_addr; + union nf_conntrack_man_proto saved_proto; + enum ip_conntrack_dir dir; + struct callback_head rcu; +}; + +struct nf_ct_event { + struct nf_conn *ct; + u32 portid; + int report; +}; + +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 nf_ct_ext { + u8 offset[10]; + u8 len; + unsigned int gen_id; + char data[0]; +}; + +struct nf_ct_hook { + int (*update)(struct net *, struct sk_buff *); + void (*destroy)(struct nf_conntrack *); + bool (*get_tuple_skb)(struct nf_conntrack_tuple *, const struct sk_buff *); + void (*attach)(struct sk_buff *, const struct sk_buff *); + void (*set_closing)(struct nf_conntrack *); + int (*confirm)(struct sk_buff *); +}; + +struct nf_defrag_hook { + struct module *owner; + int (*enable)(struct net *); + void (*disable)(struct net *); +}; + +struct nf_exp_event { + struct nf_conntrack_expect *exp; + u32 portid; + int report; +}; + +struct nf_flow_table_stat { + unsigned int count_wq_add; + unsigned int count_wq_del; + unsigned int count_wq_stats; +}; + +struct nf_hook_entry { + nf_hookfn *hook; + void *priv; +}; + +struct nf_hook_entries { + u16 num_hook_entries; + struct nf_hook_entry hooks[0]; +}; + +struct nf_hook_entries_rcu_head { + struct callback_head head; + void *allocation; +}; + +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_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_log_buf { + unsigned int count; + char buf[1020]; +}; + +struct nf_loginfo; + +typedef void nf_logfn(struct net *, u_int8_t, unsigned int, const struct sk_buff *, const struct net_device *, const struct net_device *, const struct nf_loginfo *, const char *); + +struct nf_logger { + char *name; + enum nf_log_type type; + nf_logfn *logfn; + struct module *me; +}; + +struct nf_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_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 *); + void (*remove_nat_bysrc)(struct nf_conn *); +}; + +struct nf_queue_entry { + struct list_head list; + struct sk_buff *skb; + unsigned int id; + unsigned int hook_index; + struct net_device *physin; + struct net_device *physout; + struct nf_hook_state state; + u16 size; +}; + +struct nf_queue_handler { + int (*outfn)(struct nf_queue_entry *, unsigned int); + void (*nf_hook_drop)(struct net *); +}; + +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 *, int *); + struct module *owner; +}; + +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 nfstime4 { + int64_t seconds; + uint32_t nseconds; +}; + +struct nfs41_impl_id { + char domain[1025]; + char name[1025]; + struct nfstime4 date; +}; + +struct nfs41_server_owner { + uint64_t minor_id; + uint32_t major_id_sz; + char major_id[1024]; +}; + +struct nfs41_server_scope { + uint32_t server_scope_sz; + char server_scope[1024]; +}; + +struct nfs4_change_info { + u32 atomic; + u64 before; + u64 after; +}; + +struct nfs4_string { + unsigned int len; + char *data; +}; + +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 nfs_fattr; + +struct nfs_server; + +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 nfs4_label { + uint32_t lfs; + uint32_t pi; + u32 lsmid; + u32 len; + char *label; +}; + +struct rpc_timer { + struct list_head list; + long unsigned int 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 int qlen; + struct rpc_timer timer_list; + const char *name; +}; + +struct nfs_seqid_counter { + ktime_t create_time; + u64 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; + long unsigned int ls_flags; + struct nfs_seqid_counter ls_seqid; + nfs4_stateid ls_stateid; + refcount_t ls_count; + fl_owner_t ls_owner; +}; + +struct nfs_fh; + +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 nfs_client; + +struct nfs_fsinfo; + +struct nfs_seqid; + +struct rpc_clnt; + +struct rpc_xprt; + +struct rpc_call_ops; + +struct nfs4_state_recovery_ops; + +struct nfs4_state_maintenance_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 *, const 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 nfs4_slot; + +struct nfs4_sequence_args { + struct nfs4_slot *sa_slot; + u8 sa_cache_this: 1; + u8 sa_privileged: 1; +}; + +struct nfs4_sequence_res { + struct nfs4_slot *sr_slot; + long unsigned int sr_timestamp; + int sr_status; + u32 sr_status_flags; + u32 sr_highest_slotid; + u32 sr_target_highest_slotid; +}; + +struct nfs4_ssc_client_ops { + struct file * (*sco_open)(struct vfsmount *, struct nfs_fh *, nfs4_stateid *); + void (*sco_close)(struct file *); +}; + +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; + long unsigned int 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_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_state_owner { + struct nfs_server *so_server; + struct list_head so_lru; + long unsigned int so_expires; + struct rb_node so_server_node; + const struct cred *so_cred; + spinlock_t so_lock; + atomic_t so_count; + long unsigned int so_flags; + struct list_head so_states; + struct nfs_seqid_counter so_seqid; + struct mutex so_delegreturn_mutex; +}; + +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_threshold { + __u32 bm; + __u32 l_type; + __u64 rd_sz; + __u64 wr_sz; + __u64 rd_io_sz; + __u64 wr_io_sz; +}; + +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 nfs_auth_info { + unsigned int flavor_len; + rpc_authflavor_t flavors[12]; +}; + +struct nfs_subversion; + +struct xprtsec_parms { + enum xprtsec_policies policy; + key_serial_t cert_serial; + key_serial_t privkey_serial; +}; + +struct idmap; + +struct nfs4_slot_table; + +struct nfs4_session; + +struct nfs_rpc_ops; + +struct nfs_client { + refcount_t cl_count; + atomic_t cl_mds_count; + int cl_cons_state; + long unsigned int cl_res_state; + long unsigned int cl_flags; + struct __kernel_sockaddr_storage cl_addr; + size_t cl_addrlen; + char *cl_hostname; + char *cl_acceptor; + struct list_head cl_share_link; + struct list_head cl_superblocks; + struct rpc_clnt *cl_rpcclient; + const struct nfs_rpc_ops *rpc_ops; + int cl_proto; + struct nfs_subversion *cl_nfs_mod; + u32 cl_minorversion; + unsigned int cl_nconnect; + unsigned int cl_max_connect; + const char *cl_principal; + struct xprtsec_parms cl_xprtsec; + struct list_head cl_ds_clients; + u64 cl_clientid; + nfs4_verifier cl_confirm; + long unsigned int cl_state; + spinlock_t cl_lock; + long unsigned int cl_lease_time; + long unsigned int 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; + long unsigned int 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; + long unsigned int cl_sp4_flags; + wait_queue_head_t cl_lock_waitq; + char cl_ipaddr[48]; + struct net *cl_net; + struct list_head pending_cb_stateids; + struct callback_head rcu; +}; + +struct nfs_page; + +struct nfs_commit_data; + +struct nfs_commit_info; + +struct nfs_commit_completion_ops { + void (*completion)(struct nfs_commit_data *); + void (*resched_write)(struct nfs_commit_info *, struct nfs_page *); +}; + +struct rpc_wait { + struct list_head list; + struct list_head links; + struct list_head timer_list; +}; + +struct rpc_procinfo; + +struct rpc_message { + const struct rpc_procinfo *rpc_proc; + void *rpc_argp; + void *rpc_resp; + const struct cred *rpc_cred; +}; + +struct rpc_cred; + +struct rpc_rqst; + +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 *); + long unsigned int tk_timeout; + long unsigned int 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; + short unsigned int tk_flags; + short unsigned int tk_timeouts; + short unsigned int tk_pid; + unsigned char tk_priority: 2; + unsigned char tk_garb_retry: 2; + unsigned char tk_cred_retry: 2; +}; + +struct nfs_fsid { + uint64_t major; + uint64_t minor; +}; + +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; + long unsigned int time_start; + long unsigned int gencount; + struct nfs4_string *owner_name; + struct nfs4_string *group_name; + struct nfs4_threshold *mdsthreshold; + struct nfs4_label *label; +}; + +struct nfs_write_verifier { + char data[8]; +}; + +struct nfs_writeverf { + struct nfs_write_verifier verifier; + enum nfs3_stable_how committed; +}; + +struct nfs_direct_req; + +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 pnfs_layout_segment; + +struct nfs_open_context; + +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 *); + long unsigned int flags; +}; + +struct nfs_mds_commit_info; + +struct pnfs_ds_commit_info; + +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_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_fh { + short unsigned int size; + unsigned char data[128]; +}; + +struct nfsd_file; + +struct nfs_file_localio { + struct nfsd_file *ro_file; + struct nfsd_file *rw_file; + struct list_head list; + void *nfs_uuid; +}; + +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 nfs_fsstat { + struct nfs_fattr *fattr; + __u64 tbytes; + __u64 fbytes; + __u64 abytes; + __u64 tfiles; + __u64 ffiles; + __u64 afiles; +}; + +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_mds_commit_info { + atomic_t rpcs_out; + atomic_long_t ncommit; + struct list_head list; +}; + +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 *ll_cred; + struct nfs4_state *state; + fmode_t mode; + int error; + long unsigned int flags; + struct nfs4_threshold *mdsthreshold; + struct list_head list; + struct callback_head callback_head; + struct nfs_file_localio nfl; +}; + +struct nfs_page_array { + struct page **pagevec; + unsigned int npages; + struct page *page_array[8]; +}; + +struct nfs_pathconf { + struct nfs_fattr *fattr; + __u32 max_link; + __u32 max_namelen; +}; + +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_header; + +struct nfs_pgio_completion_ops { + void (*error_cleanup)(struct list_head *, int); + void (*init_hdr)(struct nfs_pgio_header *); + void (*completion)(struct nfs_pgio_header *); + void (*reschedule_io)(struct nfs_pgio_header *); +}; + +struct nfs_rw_ops; + +struct nfs_io_completion; + +struct nfs_pgio_res { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + __u64 count; + __u32 op_status; + union { + struct { + unsigned int replen; + int eof; + void *scratch; + }; + struct { + struct nfs_writeverf *verf; + const struct nfs_server *server; + }; + }; +}; + +struct 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; + void *netfs; + int pnfs_error; + int error; + unsigned int good_bytes; + long unsigned int flags; + struct rpc_task task; + struct nfs_fattr fattr; + struct nfs_pgio_args args; + struct nfs_pgio_res res; + long unsigned int 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_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_removeargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + struct qstr name; +}; + +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_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 int timeout; + bool cancelled; +}; + +struct nlmclnt_operations; + +struct nfs_client_initdata; + +struct nfs_unlinkdata; + +struct xdr_stream; + +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 *, const struct qstr *, struct nfs_fh *, struct nfs_fattr *); + int (*lookupp)(struct inode *, struct nfs_fh *, struct nfs_fattr *); + int (*access)(struct inode *, struct nfs_access_entry *, const struct cred *); + int (*readlink)(struct inode *, struct page *, unsigned int, unsigned int); + int (*create)(struct inode *, struct dentry *, struct iattr *, int); + int (*remove)(struct inode *, struct dentry *); + void (*unlink_setup)(struct rpc_message *, struct dentry *, struct inode *); + void (*unlink_rpc_prepare)(struct rpc_task *, struct nfs_unlinkdata *); + int (*unlink_done)(struct rpc_task *, struct inode *); + void (*rename_setup)(struct rpc_message *, struct dentry *, struct dentry *); + void (*rename_rpc_prepare)(struct rpc_task *, struct nfs_renamedata *); + int (*rename_done)(struct rpc_task *, struct inode *, struct inode *); + int (*link)(struct inode *, struct inode *, const struct qstr *); + int (*symlink)(struct inode *, struct dentry *, struct folio *, unsigned int, struct iattr *); + int (*mkdir)(struct inode *, struct dentry *, struct iattr *); + int (*rmdir)(struct inode *, const struct qstr *); + int (*readdir)(struct nfs_readdir_arg *, struct nfs_readdir_res *); + int (*mknod)(struct inode *, struct dentry *, struct iattr *, dev_t); + int (*statfs)(struct nfs_server *, struct nfs_fh *, struct nfs_fsstat *); + int (*fsinfo)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *); + int (*pathconf)(struct nfs_server *, struct nfs_fh *, struct nfs_pathconf *); + int (*set_capabilities)(struct nfs_server *, struct nfs_fh *); + int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, bool); + int (*pgio_rpc_prepare)(struct rpc_task *, struct nfs_pgio_header *); + void (*read_setup)(struct nfs_pgio_header *, struct rpc_message *); + int (*read_done)(struct rpc_task *, struct nfs_pgio_header *); + void (*write_setup)(struct nfs_pgio_header *, struct rpc_message *, struct rpc_clnt **); + int (*write_done)(struct rpc_task *, struct nfs_pgio_header *); + void (*commit_setup)(struct nfs_commit_data *, struct rpc_message *, struct rpc_clnt **); + void (*commit_rpc_prepare)(struct rpc_task *, struct nfs_commit_data *); + int (*commit_done)(struct rpc_task *, struct nfs_commit_data *); + int (*lock)(struct file *, int, struct file_lock *); + int (*lock_check_bounds)(const struct file_lock *); + void (*clear_acl_cache)(struct inode *); + void (*close_context)(struct nfs_open_context *, int); + struct inode * (*open_context)(struct inode *, struct nfs_open_context *, int, struct iattr *, int *); + int (*have_delegation)(struct inode *, fmode_t, int); + int (*return_delegation)(struct inode *); + struct nfs_client * (*alloc_client)(const struct nfs_client_initdata *); + struct nfs_client * (*init_client)(struct nfs_client *, const struct nfs_client_initdata *); + void (*free_client)(struct nfs_client *); + struct nfs_server * (*create_server)(struct fs_context *); + struct nfs_server * (*clone_server)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, rpc_authflavor_t); + int (*discover_trunking)(struct nfs_server *, struct nfs_fh *); + void (*enable_swap)(struct inode *); + void (*disable_swap)(struct inode *); +}; + +struct nfs_seqid { + struct nfs_seqid_counter *sequence; + struct list_head list; + struct rpc_task *task; +}; + +struct nlm_host; + +struct nfs_iostats; + +struct fscache_volume; + +struct pnfs_layoutdriver_type; + +struct nfs_server { + struct nfs_client *nfs_client; + struct list_head client_link; + struct list_head master_link; + struct rpc_clnt *client; + struct rpc_clnt *client_acl; + struct nlm_host *nlm_host; + struct nfs_iostats *io_stats; + wait_queue_head_t write_congestion_wait; + 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; + short unsigned int port; + unsigned int bsize; + unsigned int gxasize; + unsigned int sxasize; + unsigned int lxasize; + unsigned int acregmin; + unsigned int acregmax; + unsigned int acdirmin; + unsigned int acdirmax; + unsigned int namelen; + unsigned int options; + unsigned int clone_blksize; + enum nfs4_change_attr_type change_attr_type; + struct nfs_fsid fsid; + int s_sysfs_id; + __u64 maxfilesize; + struct timespec64 time_delta; + long unsigned int mount_time; + struct super_block *super; + dev_t s_dev; + struct nfs_auth_info auth_info; + struct fscache_volume *fscache; + char *fscache_uniq; + u32 fh_expire_type; + u32 pnfs_blksize; + u32 attr_bitmask[3]; + u32 attr_bitmask_nl[3]; + u32 exclcreat_bitmask[3]; + u32 cache_consistency_bitmask[3]; + u32 acl_bitmask; + struct pnfs_layoutdriver_type *pnfs_curr_ld; + struct rpc_wait_queue roc_rpcwaitq; + void *pnfs_ld_data; + struct rb_root state_owners; + atomic64_t owner_ctr; + struct list_head state_owners_lru; + struct list_head layouts; + struct list_head delegations; + struct list_head ss_copies; + struct list_head ss_src_copies; + long unsigned int delegation_flags; + long unsigned int delegation_gen; + long unsigned int mig_gen; + long unsigned int mig_status; + void (*destroy)(struct nfs_server *); + atomic_t active; + struct __kernel_sockaddr_storage mountd_address; + size_t mountd_addrlen; + u32 mountd_version; + short unsigned int mountd_port; + short unsigned int mountd_protocol; + struct rpc_wait_queue uoc_rpcwaitq; + unsigned int read_hdrsize; + const struct cred *cred; + bool has_sec_mnt_opts; + struct kobject kobj; + struct callback_head rcu; +}; + +struct nfs_ssc_client_ops { + void (*sco_sb_deactive)(struct super_block *); +}; + +struct nfs_ssc_client_ops_tbl { + const struct nfs4_ssc_client_ops *ssc_nfs4_ops; + const struct nfs_ssc_client_ops *ssc_nfs_ops; +}; + +struct 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 int timeout; +}; + +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; + long unsigned int nh_grp_res_idle_timer; + long unsigned int nh_grp_res_unbalanced_timer; + bool nh_grp_res_has_num_buckets; + bool nh_grp_res_has_idle_timer; + bool nh_grp_res_has_unbalanced_timer; + bool nh_hw_stats; + struct nlattr *nh_encap; + u16 nh_encap_type; + u32 nlflags; + struct nl_info nlinfo; +}; + +struct nh_dump_filter { + u32 nh_id; + int dev_idx; + int master_idx; + bool group_filter; + bool fdb_filter; + u32 res_bucket_nh_id; + u32 op_flags; +}; + +struct nh_grp_entry_stats; + +struct nh_grp_entry { + struct nexthop *nh; + struct nh_grp_entry_stats *stats; + u16 weight; + union { + struct { + atomic_t upper_bound; + } hthr; + struct { + struct list_head uw_nh_entry; + u16 count_buckets; + u16 wants_buckets; + } res; + }; + struct list_head nh_list; + struct nexthop *nh_parent; + u64 packets_hw; +}; + +struct nh_res_table; + +struct nh_group { + struct nh_group *spare; + u16 num_nh; + bool is_multipath; + bool hash_threshold; + bool resilient; + bool fdb_nh; + bool has_v4; + bool hw_stats; + struct nh_res_table *res_table; + struct nh_grp_entry nh_entries[0]; +}; + +struct nh_grp_entry_stats { + u64_stats_t packets; + struct u64_stats_sync syncp; +}; + +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 nh_notifier_single_info { + struct net_device *dev; + u8 gw_family; + union { + __be32 ipv4; + struct in6_addr ipv6; + }; + u32 id; + u8 is_reject: 1; + u8 is_fdb: 1; + u8 has_encap: 1; +}; + +struct nh_notifier_grp_entry_info { + u16 weight; + struct nh_notifier_single_info nh; +}; + +struct nh_notifier_grp_hw_stats_entry_info { + u32 id; + u64 packets; +}; + +struct nh_notifier_grp_hw_stats_info { + u16 num_nh; + bool hw_stats_used; + struct nh_notifier_grp_hw_stats_entry_info stats[0]; +}; + +struct nh_notifier_grp_info { + u16 num_nh; + bool is_fdb; + bool hw_stats; + struct nh_notifier_grp_entry_info nh_entries[0]; +}; + +struct nh_notifier_res_table_info; + +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_grp_hw_stats_info *nh_grp_hw_stats; + }; +}; + +struct nh_notifier_res_bucket_info { + u16 bucket_index; + unsigned int idle_timer_ms; + bool force; + struct nh_notifier_single_info old_nh; + struct nh_notifier_single_info new_nh; +}; + +struct nh_notifier_res_table_info { + u16 num_nh_buckets; + bool hw_stats; + struct nh_notifier_single_info nhs[0]; +}; + +struct nh_res_bucket { + struct nh_grp_entry *nh_entry; + atomic_long_t used_time; + long unsigned int 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; + long unsigned int unbalanced_since; + u32 idle_timer; + u32 unbalanced_timer; + u16 num_nh_buckets; + struct nh_res_bucket nh_buckets[0]; +}; + +struct nhmsg { + unsigned char nh_family; + unsigned char nh_scope; + unsigned char nh_protocol; + unsigned char resvd; + unsigned int nh_flags; +}; + +struct nl80211_vendor_cmd_info { + __u32 vendor_id; + __u32 subcmd; +}; + +struct nl80211_wowlan_tcp_data_token_feature { + __u32 min_len; + __u32 max_len; + __u32 bufsize; +}; + +struct nl_pktinfo { + __u32 group; +}; + +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 nl_seq_iter { + struct seq_net_private p; + struct rhashtable_iter hti; + int link; +}; + +struct nla_bitfield32 { + __u32 value; + __u32 selector; +}; + +struct nla_policy { + u8 type; + u8 validation_type; + u16 len; + union { + u16 strict_start_type; + const u32 bitfield32_valid; + const u32 mask; + const char *reject_message; + const struct nla_policy *nested_policy; + const struct netlink_range_validation *range; + const struct netlink_range_validation_signed *range_signed; + struct { + s16 min; + s16 max; + }; + int (*validate)(const struct nlattr *, struct netlink_ext_ack *); + }; +}; + +struct nlattr { + __u16 nla_len; + __u16 nla_type; +}; + +struct nlmsg_perm { + u16 nlmsg_type; + u32 perm; +}; + +struct nlmsgerr { + int error; + struct nlmsghdr msg; +}; + +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 nmi_ctx { + u64 hcr; + unsigned int cnt; +}; + +struct node { + struct device dev; + struct list_head access_list; + struct list_head cache_attrs; + struct device *cache_dev; +}; + +struct node_access_nodes { + struct device dev; + struct list_head list_node; + unsigned int access; + struct access_coordinate coord; +}; + +struct node_attr { + struct device_attribute attr; + enum node_states state; +}; + +struct node_cache_info { + struct device dev; + struct list_head node; + struct node_cache_attrs cache_attrs; +}; + +struct node_groups { + unsigned int id; + union { + unsigned int ngroups; + unsigned int ncpus; + }; +}; + +struct node_hstate { + struct kobject *hugepages_kobj; + struct kobject *hstate_kobjs[4]; +}; + +struct node_memory_type_map { + struct memory_dev_type *memtype; + int map_count; +}; + +struct nodemask_scratch { + nodemask_t mask1; + nodemask_t mask2; +}; + +struct notification { + atomic_t requests; + u32 flags; + u64 next_id; + struct list_head notifications; +}; + +struct npcm_clk_cfg { + unsigned int *sft_clk; + unsigned int *clk_sel; + unsigned int cfg_opt; +}; + +struct npcm_clock_adev { + void *base; + struct auxiliary_device adev; +}; + +struct npcm_reset_info; + +struct npcm_rc_data { + struct reset_controller_dev rcdev; + struct notifier_block restart_nb; + const struct npcm_reset_info *info; + struct regmap *gcr_regmap; + u32 sw_reset_number; + struct device *dev; + void *base; + spinlock_t lock; +}; + +struct npcm_reset_info { + u32 bmc_id; + u32 num_ipsrst; + const u32 *ipsrst; +}; + +struct npcm_sgpio { + struct gpio_chip chip; + struct clk *pclk; + struct irq_chip intc; + raw_spinlock_t lock; + void *base; + int irq; + u8 nin_sgpio; + u8 nout_sgpio; + u8 in_port; + u8 out_port; + u8 int_type[64]; +}; + +struct npcm_sgpio_bank { + u8 rdata_reg; + u8 wdata_reg; + u8 event_config; + u8 event_status; +}; + +struct watchdog_info; + +struct watchdog_ops; + +struct watchdog_core_data; + +struct watchdog_device { + int id; + struct device *parent; + const struct attribute_group **groups; + const struct watchdog_info *info; + const struct watchdog_ops *ops; + const struct watchdog_governor *gov; + unsigned int bootstatus; + unsigned int timeout; + unsigned int pretimeout; + unsigned int min_timeout; + unsigned int max_timeout; + unsigned int min_hw_heartbeat_ms; + unsigned int max_hw_heartbeat_ms; + struct notifier_block reboot_nb; + struct notifier_block restart_nb; + struct notifier_block pm_nb; + void *driver_data; + struct watchdog_core_data *wd_data; + long unsigned int status; + struct list_head deferred; +}; + +struct npcm_wdt { + struct watchdog_device wdd; + void *reg; + struct clk *clk; +}; + +struct npem; + +struct npem_led { + const struct indication *indication; + struct npem *npem; + char name[64]; + struct led_classdev led; +}; + +struct npem_ops; + +struct npem { + struct pci_dev *dev; + const struct npem_ops *ops; + struct mutex lock; + u16 pos; + u32 supported_indications; + u32 active_indications; + unsigned int active_inds_initialized: 1; + int led_cnt; + struct npem_led leds[0]; +}; + +struct npem_ops { + int (*get_active_indications)(struct npem *, u32 *); + int (*set_active_indications)(struct npem *, u32); + const struct indication *inds; + const char *name; +}; + +struct npioctl { + int protocol; + enum NPmode mode; +}; + +struct ns_get_path_bpf_map_args { + struct bpf_offloaded_map *offmap; + struct bpf_map_info *info; +}; + +struct ns_get_path_bpf_prog_args { + struct bpf_prog *prog; + struct bpf_prog_info *info; +}; + +struct ns_get_path_task_args { + const struct proc_ns_operations *ns_ops; + struct task_struct *task; +}; + +struct uts_namespace; + +struct time_namespace; + +struct nsproxy { + refcount_t count; + struct uts_namespace *uts_ns; + struct ipc_namespace *ipc_ns; + struct mnt_namespace *mnt_ns; + struct pid_namespace *pid_ns_for_children; + struct net *net_ns; + struct time_namespace *time_ns; + struct time_namespace *time_ns_for_children; + struct cgroup_namespace *cgroup_ns; +}; + +struct nsset { + unsigned int flags; + struct nsproxy *nsproxy; + struct fs_struct *fs; + const struct cred *cred; +}; + +struct nt_partition_info { + u32 xlink_enabled; + u32 target_part_low; + u32 target_part_high; + u32 reserved; +}; + +struct ntb_ctrl_regs { + u32 partition_status; + u32 partition_op; + u32 partition_ctrl; + u32 bar_setup; + u32 bar_error; + u16 lut_table_entries; + u16 lut_table_offset; + u32 lut_error; + u16 req_id_table_size; + u16 req_id_table_offset; + u32 req_id_error; + u32 reserved1[7]; + struct { + u32 ctl; + u32 win_size; + u64 xlate_addr; + } bar_entry[6]; + struct { + u32 win_size; + u32 reserved[3]; + } bar_ext_entry[6]; + u32 reserved2[192]; + u32 req_id_table[512]; + u32 reserved3[256]; + u64 lut_entry[512]; +}; + +struct 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 ntp_data { + long unsigned int tick_usec; + u64 tick_length; + u64 tick_length_base; + int time_state; + int time_status; + s64 time_offset; + long int time_constant; + long int time_maxerror; + long int time_esterror; + s64 time_freq; + time64_t time_reftime; + long int time_adjust; + s64 ntp_tick_adj; + time64_t ntp_next_leap_sec; +}; + +struct numa_group { + refcount_t refcount; + spinlock_t lock; + int nr_tasks; + pid_t gid; + int active_nodes; + struct callback_head rcu; + long unsigned int total_faults; + long unsigned int max_faults_cpu; + long unsigned int faults[0]; +}; + +struct numa_maps { + long unsigned int pages; + long unsigned int anon; + long unsigned int active; + long unsigned int writeback; + long unsigned int mapcount_max; + long unsigned int dirty; + long unsigned int swapcache; + long unsigned int node[64]; +}; + +struct proc_maps_private { + struct inode *inode; + struct task_struct *task; + struct mm_struct *mm; + struct vma_iterator iter; + struct mempolicy *task_mempolicy; +}; + +struct numa_maps_private { + struct proc_maps_private proc_maps; + struct numa_maps md; +}; + +struct numa_memblk { + u64 start; + u64 end; + int nid; +}; + +struct numa_meminfo { + int nr_blks; + struct numa_memblk blk[128]; +}; + +struct numa_stats { + long unsigned int load; + long unsigned int runnable; + long unsigned int util; + long unsigned int compute_capacity; + unsigned int nr_running; + unsigned int weight; + enum numa_type node_type; + int idle_cpu; +}; + +struct nvdimm_security_ops; + +struct nvdimm_fw_ops; + +struct nvdimm { + long unsigned int flags; + void *provider_data; + long unsigned int cmd_mask; + struct device dev; + atomic_t busy; + int id; + int num_flush; + struct resource *flush_wpq; + const char *dimm_id; + struct { + const struct nvdimm_security_ops *ops; + long unsigned int flags; + long unsigned int ext_flags; + unsigned int overwrite_tmo; + struct kernfs_node *overwrite_state; + } sec; + struct delayed_work dwork; + const struct nvdimm_fw_ops *fw_ops; +}; + +struct nvdimm_bus_descriptor; + +struct nvdimm_bus { + struct nvdimm_bus_descriptor *nd_desc; + wait_queue_head_t wait; + struct list_head list; + struct device dev; + int id; + int probe_active; + atomic_t ioctl_active; + struct list_head mapping_list; + struct mutex reconfig_mutex; + struct badrange badrange; +}; + +typedef int (*ndctl_fn)(struct nvdimm_bus_descriptor *, struct nvdimm *, unsigned int, void *, unsigned int, int *); + +struct nvdimm_bus_fw_ops; + +struct nvdimm_bus_descriptor { + const struct attribute_group **attr_groups; + long unsigned int cmd_mask; + long unsigned int dimm_family_mask; + long unsigned int bus_family_mask; + struct module *module; + char *provider_name; + struct device_node *of_node; + ndctl_fn ndctl; + int (*flush_probe)(struct nvdimm_bus_descriptor *); + int (*clear_to_send)(struct nvdimm_bus_descriptor *, struct nvdimm *, unsigned int, void *); + const struct nvdimm_bus_fw_ops *fw_ops; +}; + +struct nvdimm_bus_fw_ops { + enum nvdimm_fwa_state (*activate_state)(struct nvdimm_bus_descriptor *); + enum nvdimm_fwa_capability (*capability)(struct nvdimm_bus_descriptor *); + int (*activate)(struct nvdimm_bus_descriptor *); +}; + +struct nvdimm_drvdata { + struct device *dev; + int nslabel_size; + struct nd_cmd_get_config_size nsarea; + void *data; + bool cxl; + int ns_current; + int ns_next; + struct resource dpa; + struct kref kref; +}; + +struct nvdimm_fw_ops { + enum nvdimm_fwa_state (*activate_state)(struct nvdimm *); + enum nvdimm_fwa_result (*activate_result)(struct nvdimm *); + int (*arm)(struct nvdimm *, enum nvdimm_fwa_trigger); +}; + +struct nvdimm_key_data { + u8 data[32]; +}; + +struct nvdimm_map { + struct nvdimm_bus *nvdimm_bus; + struct list_head list; + resource_size_t offset; + long unsigned int flags; + size_t size; + union { + void *mem; + void *iomem; + }; + struct kref kref; +}; + +struct nvdimm_pmu { + struct pmu pmu; + struct device *dev; + int cpu; + struct hlist_node node; + enum cpuhp_state cpuhp_state; + struct cpumask arch_cpumask; +}; + +struct nvdimm_security_ops { + long unsigned int (*get_flags)(struct nvdimm *, enum nvdimm_passphrase_type); + int (*freeze)(struct nvdimm *); + int (*change_key)(struct nvdimm *, const struct nvdimm_key_data *, const struct nvdimm_key_data *, enum nvdimm_passphrase_type); + int (*unlock)(struct nvdimm *, const struct nvdimm_key_data *); + int (*disable)(struct nvdimm *, const struct nvdimm_key_data *); + int (*erase)(struct nvdimm *, const struct nvdimm_key_data *, enum nvdimm_passphrase_type); + int (*overwrite)(struct nvdimm *, const struct nvdimm_key_data *); + int (*query_overwrite)(struct nvdimm *); + int (*disable_master)(struct nvdimm *, const struct nvdimm_key_data *); +}; + +struct tegra_mc; + +struct nvidia_smmu { + struct arm_smmu_device___2 smmu; + void *bases[2]; + unsigned int num_instances; + struct tegra_mc *mc; +}; + +struct nvmem_cell_entry; + +struct nvmem_cell { + struct nvmem_cell_entry *entry; + const char *id; + int index; +}; + +typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); + +struct nvmem_device; + +struct nvmem_cell_entry { + const char *name; + int offset; + size_t raw_len; + int bytes; + int bit_offset; + int nbits; + nvmem_cell_post_process_t read_post_process; + void *priv; + struct device_node *np; + struct nvmem_device *nvmem; + struct list_head node; +}; + +struct nvmem_cell_info { + const char *name; + unsigned int offset; + size_t raw_len; + unsigned int bytes; + unsigned int bit_offset; + unsigned int nbits; + struct device_node *np; + nvmem_cell_post_process_t read_post_process; + void *priv; +}; + +struct nvmem_cell_lookup { + const char *nvmem_name; + const char *cell_name; + const char *dev_id; + const char *con_id; + struct list_head node; +}; + +struct nvmem_cell_table { + const char *nvmem_name; + const struct nvmem_cell_info *cells; + size_t ncells; + struct list_head node; +}; + +typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t); + +typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); + +struct nvmem_keepout; + +struct nvmem_layout; + +struct nvmem_config { + struct device *dev; + const char *name; + int id; + struct module *owner; + const struct nvmem_cell_info *cells; + int ncells; + bool add_legacy_fixed_of_cells; + void (*fixup_dt_cell_info)(struct nvmem_device *, struct nvmem_cell_info *); + const struct nvmem_keepout *keepout; + unsigned int nkeepout; + enum nvmem_type type; + bool read_only; + bool root_only; + bool ignore_wp; + struct nvmem_layout *layout; + struct device_node *of_node; + nvmem_reg_read_t reg_read; + nvmem_reg_write_t reg_write; + int size; + int word_size; + int stride; + void *priv; + bool compat; + struct device *base_dev; +}; + +struct nvmem_device { + struct module *owner; + struct device dev; + struct list_head node; + int stride; + int word_size; + int id; + struct kref refcnt; + size_t size; + bool read_only; + bool root_only; + int flags; + enum nvmem_type type; + struct bin_attribute eeprom; + struct device *base_dev; + struct list_head cells; + void (*fixup_dt_cell_info)(struct nvmem_device *, struct nvmem_cell_info *); + const struct nvmem_keepout *keepout; + unsigned int nkeepout; + nvmem_reg_read_t reg_read; + nvmem_reg_write_t reg_write; + struct gpio_desc *wp_gpio; + struct nvmem_layout *layout; + void *priv; + bool sysfs_cells_populated; +}; + +struct nvmem_keepout { + unsigned int start; + unsigned int end; + unsigned char value; +}; + +struct nvmem_layout { + struct device dev; + struct nvmem_device *nvmem; + int (*add_cells)(struct nvmem_layout *); +}; + +struct nvmem_layout_driver { + struct device_driver driver; + int (*probe)(struct nvmem_layout *); + void (*remove)(struct nvmem_layout *); +}; + +struct nvs_region { + __u64 phys_start; + __u64 size; + struct list_head node; +}; + +struct nwl_msi { + struct irq_domain *msi_domain; + long unsigned int bitmap[1]; + struct irq_domain *dev_domain; + struct mutex lock; + int irq_msi0; + int irq_msi1; +}; + +struct nwl_pcie { + struct device *dev; + void *breg_base; + void *pcireg_base; + void *ecam_base; + struct phy *phy[4]; + phys_addr_t phys_breg_base; + phys_addr_t phys_pcie_reg_base; + phys_addr_t phys_ecam_base; + u32 breg_size; + u32 pcie_reg_size; + u32 ecam_size; + int irq_intx; + int irq_misc; + struct nwl_msi msi; + struct irq_domain *intx_irq_domain; + struct clk *clk; + raw_spinlock_t leg_mask_lock; +}; + +struct obj_cgroup { + struct percpu_ref refcnt; + struct mem_cgroup *memcg; + atomic_t nr_charged_bytes; + union { + struct list_head list; + struct callback_head rcu; + }; +}; + +struct objpool_slot { + uint32_t head; + uint32_t tail; + uint32_t last; + uint32_t mask; + void *entries[0]; +}; + +struct obs_kernel_param { + const char *str; + int (*setup_func)(char *); + int early; +}; + +struct ocelot_irq_work { + struct work_struct irq_work; + struct irq_desc *irq_desc; +}; + +struct ocelot_pincfg_data { + u8 pd_bit; + u8 pu_bit; + u8 drive_bits; + u8 schmitt_bit; +}; + +struct ocelot_match_data { + struct pinctrl_desc desc; + struct ocelot_pincfg_data pincfg_data; +}; + +struct ocelot_pin_caps { + unsigned int pin; + unsigned char functions[4]; + unsigned char a_functions[4]; +}; + +struct ocelot_pmx_func { + const char **groups; + unsigned int ngroups; +}; + +struct ocelot_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl; + struct gpio_chip gpio_chip; + struct regmap *map; + struct regmap *pincfg; + struct pinctrl_desc *desc; + const struct ocelot_pincfg_data *pincfg_data; + struct ocelot_pmx_func func[136]; + u8 stride; + struct workqueue_struct *wq; +}; + +struct reset_props___2; + +struct ocelot_reset_context { + void *base; + struct regmap *cpu_ctrl; + const struct reset_props___2 *props; + struct notifier_block restart_handler; +}; + +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 octep_hp_cmd { + struct list_head list; + enum octep_hp_intr_type intr_type; + u64 intr_val; +}; + +struct octep_hp_intr_info { + enum octep_hp_intr_type type; + int number; + char name[16]; +}; + +struct octep_hp_controller { + void *base; + struct pci_dev *pdev; + struct octep_hp_intr_info intr[2]; + struct work_struct work; + struct list_head slot_list; + struct mutex slot_lock; + struct list_head hp_cmd_list; + spinlock_t hp_cmd_lock; +}; + +struct octep_hp_slot { + struct list_head list; + struct hotplug_slot slot; + u16 slot_number; + struct pci_dev *hp_pdev; + unsigned int hp_devfn; + struct octep_hp_controller *ctrl; +}; + +struct od_dbs_tuners { + unsigned int powersave_bias; +}; + +struct od_ops { + unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int); +}; + +struct od_policy_dbs_info { + struct policy_dbs_info policy_dbs; + unsigned int freq_lo; + unsigned int freq_lo_delay_us; + unsigned int freq_hi_delay_us; + unsigned int sample_type: 1; +}; + +struct odmi_data { + struct resource res; + void *base; + unsigned int spi_base; +}; + +struct odroid_go_ultra_poweroff_data { + struct device *dev; + struct device *rk817; + struct device *rk818; +}; + +struct of_bus { + void (*count_cells)(const void *, int, int *, int *); + u64 (*map)(__be32 *, const __be32 *, int, int, int); + int (*translate)(__be32 *, u64, int); +}; + +struct of_bus___2 { + const char *name; + const char *addresses; + int (*match)(struct device_node *); + void (*count_cells)(struct device_node *, int *, int *); + u64 (*map)(__be32 *, const __be32 *, int, int, int, int); + int (*translate)(__be32 *, u64, int); + int flag_cells; + unsigned int (*get_flags)(const __be32 *); +}; + +struct of_changeset { + struct list_head entries; +}; + +struct of_changeset_entry { + struct list_head node; + long unsigned int action; + struct device_node *np; + struct property *prop; + struct property *old_prop; +}; + +struct of_clk_provider { + struct list_head link; + struct device_node *node; + struct clk * (*get)(struct of_phandle_args *, void *); + struct clk_hw * (*get_hw)(struct of_phandle_args *, void *); + void *data; +}; + +struct of_dev_auxdata { + char *compatible; + resource_size_t phys_addr; + char *name; + void *platform_data; +}; + +struct of_device_id { + char name[32]; + char type[32]; + char compatible[128]; + const void *data; +}; + +struct of_dma { + struct list_head of_dma_controllers; + struct device_node *of_node; + struct dma_chan * (*of_dma_xlate)(struct of_phandle_args *, struct of_dma *); + void * (*of_dma_route_allocate)(struct of_phandle_args *, struct of_dma *); + struct dma_router *dma_router; + void *of_dma_data; +}; + +struct of_dma_filter_info { + dma_cap_mask_t dma_cap; + dma_filter_fn filter_fn; +}; + +struct of_endpoint { + unsigned int port; + unsigned int id; + const struct device_node *local_node; +}; + +struct of_genpd_provider { + struct list_head link; + struct device_node *node; + genpd_xlate_t xlate; + void *data; +}; + +typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); + +struct of_intc_desc { + struct list_head list; + of_irq_init_cb_t irq_init_cb; + struct device_node *dev; + struct device_node *interrupt_parent; +}; + +struct of_overlay_notify_data { + struct device_node *overlay; + struct device_node *target; +}; + +struct of_pci_iommu_alias_info { + struct device *dev; + struct device_node *np; +}; + +struct of_pci_range { + union { + u64 pci_addr; + u64 bus_addr; + }; + u64 cpu_addr; + u64 parent_bus_addr; + u64 size; + u32 flags; +}; + +struct of_pci_range_parser { + struct device_node *node; + const struct of_bus___2 *bus; + const __be32 *range; + const __be32 *end; + int na; + int ns; + int pna; + bool dma; +}; + +struct of_phandle_args { + struct device_node *np; + int args_count; + uint32_t args[16]; +}; + +struct of_phandle_iterator { + const char *cells_name; + int cell_count; + const struct device_node *parent; + const __be32 *list_end; + const __be32 *phandle_end; + const __be32 *cur; + uint32_t cur_count; + phandle phandle; + struct device_node *node; +}; + +struct of_reconfig_data { + struct device_node *dn; + struct property *prop; + struct property *old_prop; +}; + +struct regulator_desc; + +struct of_regulator_match { + const char *name; + void *driver_data; + struct regulator_init_data *init_data; + struct device_node *of_node; + const struct regulator_desc *desc; +}; + +struct of_rename_gpio { + const char *con_id; + const char *legacy_id; + const char *compatible; +}; + +struct of_serial_info { + struct clk *clk; + struct reset_control *rst; + int type; + int line; + struct notifier_block clk_notifier; +}; + +struct of_timer_base { + void *base; + const char *name; + int index; +}; + +struct of_timer_clk { + struct clk *clk; + const char *name; + int index; + long unsigned int rate; + long unsigned int period; +}; + +struct of_timer_irq { + int irq; + int index; + const char *name; + long unsigned int flags; + irq_handler_t handler; +}; + +struct offset_ctx { + struct maple_tree mt; + long unsigned int next_offset; +}; + +struct ohci_driver_overrides { + const char *product_desc; + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); +}; + +struct ohci_hcca { + __hc32 int_table[32]; + __hc32 frame_no; + __hc32 done_head; + u8 reserved_for_hc[116]; + u8 what[4]; +}; + +struct ohci_regs; + +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; + long unsigned int next_statechange; + u32 fminterval; + unsigned int autostop: 1; + unsigned int working: 1; + unsigned int restart_work: 1; + long unsigned int flags; + unsigned int prev_frame_no; + unsigned int wdh_cnt; + unsigned int prev_wdh_cnt; + u32 prev_donehead; + struct timer_list io_watchdog; + struct work_struct nec_work; + struct dentry *debug_dir; + long unsigned int 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 old_timespec32 { + old_time32_t tv_sec; + s32 tv_nsec; +}; + +struct old_itimerspec32 { + struct old_timespec32 it_interval; + struct old_timespec32 it_value; +}; + +struct old_itimerval32 { + struct old_timeval32 it_interval; + struct old_timeval32 it_value; +}; + +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; + short unsigned int iomem_reg_shift; +}; + +struct old_timex32 { + u32 modes; + s32 offset; + s32 freq; + s32 maxerror; + s32 esterror; + s32 status; + s32 constant; + s32 precision; + s32 tolerance; + struct old_timeval32 time; + s32 tick; + s32 ppsfreq; + s32 jitter; + s32 shift; + s32 stabil; + s32 jitcnt; + s32 calcnt; + s32 errcnt; + s32 stbcnt; + s32 tai; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct old_utimbuf32 { + old_time32_t actime; + old_time32_t modtime; +}; + +struct omap2_mcspi_regs { + u32 modulctrl; + u32 wakeupenable; + struct list_head cs; +}; + +struct omap2_mcspi_dma; + +struct omap2_mcspi { + struct completion txdone; + struct spi_controller *ctlr; + void *base; + long unsigned int phys; + struct omap2_mcspi_dma *dma_channels; + struct device *dev; + struct omap2_mcspi_regs ctx; + struct clk *ref_clk; + int fifo_depth; + bool target_aborted; + unsigned int pin_dir: 1; + size_t max_xfer_len; + u32 ref_clk_hz; + bool use_multi_mode; + bool last_msg_kept_cs; +}; + +struct omap2_mcspi_cs { + void *base; + long unsigned int phys; + int word_len; + u16 mode; + struct list_head node; + u32 chconf0; + u32 chctrl0; +}; + +struct omap2_mcspi_device_config { + unsigned int turbo_mode: 1; +}; + +struct omap2_mcspi_dma { + struct dma_chan *dma_tx; + struct dma_chan *dma_rx; + struct completion dma_tx_completion; + struct completion dma_rx_completion; + char dma_rx_ch_name[14]; + char dma_tx_ch_name[14]; +}; + +struct omap2_mcspi_platform_config { + short unsigned int num_cs; + unsigned int regs_offset; + unsigned int pin_dir: 1; + size_t max_xfer_len; +}; + +struct omap8250_dma_params { + u32 rx_size; + u8 rx_trigger; + u8 tx_trigger; +}; + +struct omap8250_platdata { + struct omap8250_dma_params *dma_params; + u8 habit; +}; + +struct omap8250_priv { + void *membase; + int line; + u8 habit; + u8 mdr1; + u8 mdr3; + u8 efr; + u8 scr; + u8 wer; + u8 xon; + u8 xoff; + u8 delayed_restore; + u16 quot; + u8 tx_trigger; + u8 rx_trigger; + atomic_t active; + bool is_suspending; + int wakeirq; + u32 latency; + u32 calc_latency; + struct pm_qos_request pm_qos_request; + struct work_struct qos_work; + struct uart_8250_dma omap8250_dma; + spinlock_t rx_dma_lock; + bool rx_dma_broken; + bool throttled; +}; + +struct omap_dm_timer_ops { + struct omap_dm_timer * (*request_by_node)(struct device_node *); + struct omap_dm_timer * (*request_specific)(int); + struct omap_dm_timer * (*request)(void); + int (*free)(struct omap_dm_timer *); + void (*enable)(struct omap_dm_timer *); + void (*disable)(struct omap_dm_timer *); + int (*get_irq)(struct omap_dm_timer *); + int (*set_int_enable)(struct omap_dm_timer *, unsigned int); + int (*set_int_disable)(struct omap_dm_timer *, u32); + struct clk * (*get_fclk)(struct omap_dm_timer *); + int (*start)(struct omap_dm_timer *); + int (*stop)(struct omap_dm_timer *); + int (*set_source)(struct omap_dm_timer *, int); + int (*set_load)(struct omap_dm_timer *, unsigned int); + int (*set_match)(struct omap_dm_timer *, int, unsigned int); + int (*set_pwm)(struct omap_dm_timer *, int, int, int, int); + int (*get_pwm_status)(struct omap_dm_timer *); + int (*set_prescaler)(struct omap_dm_timer *, int); + unsigned int (*read_counter)(struct omap_dm_timer *); + int (*write_counter)(struct omap_dm_timer *, unsigned int); + unsigned int (*read_status)(struct omap_dm_timer *); + int (*write_status)(struct omap_dm_timer *, unsigned int); +}; + +struct omap_i2c_bus_platform_data { + u32 clkrate; + u32 rev; + u32 flags; + void (*set_mpu_wkup_lat)(struct device *, long int); +}; + +struct omap_i2c_dev { + struct device *dev; + void *base; + int irq; + int reg_shift; + struct completion cmd_complete; + struct resource *ioarea; + u32 latency; + void (*set_mpu_wkup_lat)(struct device *, long int); + u32 speed; + u32 flags; + u16 scheme; + u16 cmd_err; + u8 *buf; + u8 *regs; + size_t buf_len; + struct i2c_adapter adapter; + u8 threshold; + u8 fifo_size; + u32 rev; + unsigned int b_hw: 1; + unsigned int bb_valid: 1; + unsigned int receiver: 1; + u16 iestate; + u16 pscstate; + u16 scllstate; + u16 sclhstate; + u16 syscstate; + u16 westate; + u16 errata; +}; + +struct onboard_dev_pdata { + long unsigned int reset_us; + long unsigned int power_on_delay_us; + unsigned int num_supplies; + const char * const supply_names[2]; + bool is_hub; +}; + +struct once_work { + struct work_struct work; + struct static_key_true *key; + struct module *module; +}; + +struct online_data { + unsigned int cpu; + bool online; +}; + +struct oom_control { + struct zonelist *zonelist; + nodemask_t *nodemask; + struct mem_cgroup *memcg; + const gfp_t gfp_mask; + const int order; + long unsigned int totalpages; + struct task_struct *chosen; + long int chosen_points; + enum oom_constraint constraint; +}; + +struct opal_compacket { + __be32 reserved0; + u8 extendedComID[4]; + __be32 outstandingData; + __be32 minTransfer; + __be32 length; +}; + +struct opal_data_subpacket { + u8 reserved0[6]; + __be16 kind; + __be32 length; +}; + +typedef int sec_send_recv(void *, u16, u8, void *, size_t, bool); + +struct opal_resp_tok { + const u8 *pos; + size_t len; + enum opal_response_token type; + enum opal_atom_width width; + union { + u64 u; + s64 s; + } stored; +}; + +struct parsed_resp { + int num; + struct opal_resp_tok toks[64]; +}; + +struct opal_dev { + u32 flags; + void *data; + sec_send_recv *send_recv; + struct mutex dev_lock; + u16 comid; + u32 hsn; + u32 tsn; + u64 align; + u64 lowest_lba; + u32 logical_block_size; + u8 align_required; + size_t pos; + u8 *cmd; + u8 *resp; + struct parsed_resp parsed; + size_t prev_d_len; + void *prev_data; + struct list_head unlk_lst; +}; + +struct opal_discovery { + __u64 data; + __u64 size; +}; + +struct opal_geometry { + __u8 align; + __u32 logical_block_size; + __u64 alignment_granularity; + __u64 lowest_aligned_lba; + __u8 __align[3]; +}; + +struct opal_packet { + __be32 tsn; + __be32 hsn; + __be32 seq_number; + __be16 reserved0; + __be16 ack_type; + __be32 acknowledgment; + __be32 length; +}; + +struct opal_header { + struct opal_compacket cp; + struct opal_packet pkt; + struct opal_data_subpacket subpkt; +}; + +struct opal_key { + __u8 lr; + __u8 key_len; + __u8 key_type; + __u8 __align[5]; + __u8 key[256]; +}; + +struct opal_session_info { + __u32 sum; + __u32 who; + struct opal_key opal_key; +}; + +struct opal_lock_unlock { + struct opal_session_info session; + __u32 l_state; + __u16 flags; + __u8 __align[2]; +}; + +struct opal_lr_act { + struct opal_key key; + __u32 sum; + __u8 num_lrs; + __u8 lr[9]; + __u8 align[2]; +}; + +struct opal_lr_status { + struct opal_session_info session; + __u64 range_start; + __u64 range_length; + __u32 RLE; + __u32 WLE; + __u32 l_state; + __u8 align[4]; +}; + +struct opal_mbr_data { + struct opal_key key; + __u8 enable_disable; + __u8 __align[7]; +}; + +struct opal_mbr_done { + struct opal_key key; + __u8 done_flag; + __u8 __align[7]; +}; + +struct opal_new_pw { + struct opal_session_info session; + struct opal_session_info new_user_pw; +}; + +struct opal_read_write_table { + struct opal_key key; + const __u64 data; + const __u8 table_uid[8]; + __u64 offset; + __u64 size; + __u64 flags; + __u64 priv; +}; + +struct opal_revert_lsp { + struct opal_key key; + __u32 options; + __u32 __pad; +}; + +struct opal_shadow_mbr { + struct opal_key key; + const __u64 data; + __u64 offset; + __u64 size; +}; + +struct opal_status { + __u32 flags; + __u32 reserved; +}; + +struct opal_step { + int (*fn)(struct opal_dev *, void *); + void *data; +}; + +struct opal_suspend_data { + struct opal_lock_unlock unlk; + u8 lr; + struct list_head node; +}; + +struct opal_user_lr_setup { + __u64 range_start; + __u64 range_length; + __u32 RLE; + __u32 WLE; + struct opal_session_info session; +}; + +struct open_flags { + int open_flag; + umode_t mode; + int acc_mode; + int intent; + int lookup_flags; +}; + +struct opp_config_data { + struct opp_table *opp_table; + unsigned int flags; + unsigned int required_dev_index; +}; + +struct opp_device { + struct list_head node; + const struct device *dev; + struct dentry *dentry; +}; + +struct opp_table { + struct list_head node; + struct list_head lazy; + struct blocking_notifier_head head; + struct list_head dev_list; + struct list_head opp_list; + struct kref kref; + struct mutex lock; + struct device_node *np; + long unsigned int clock_latency_ns_max; + unsigned int voltage_tolerance_v1; + unsigned int parsed_static_opps; + enum opp_table_access shared_opp; + long unsigned int current_rate_single_clk; + struct dev_pm_opp *current_opp; + struct dev_pm_opp *suspend_opp; + struct opp_table **required_opp_tables; + struct device **required_devs; + unsigned int required_opp_count; + unsigned int *supported_hw; + unsigned int supported_hw_count; + const char *prop_name; + config_clks_t config_clks; + struct clk **clks; + struct clk *clk; + int clk_count; + config_regulators_t config_regulators; + struct regulator **regulators; + int regulator_count; + struct icc_path **paths; + unsigned int path_count; + bool enabled; + bool is_genpd; + struct dentry *dentry; + char dentry_name[255]; +}; + +struct optimistic_spin_node { + struct optimistic_spin_node *next; + struct optimistic_spin_node *prev; + int locked; + int cpu; +}; + +struct orion_ehci_data { + enum orion_ehci_phy_ver phy_version; +}; + +struct orion_ehci_hcd { + struct clk *clk; + struct phy *phy; +}; + +struct orlov_stats { + __u64 free_clusters; + __u32 free_inodes; + __u32 used_dirs; +}; + +struct osapsess { + uint32_t handle; + unsigned char secret[20]; + unsigned char enonce[20]; +}; + +struct osn_irq { + u64 count; + u64 arrival_time; + u64 delta_start; +}; + +struct osn_nmi { + u64 count; + u64 delta_start; +}; + +struct osn_softirq { + u64 count; + u64 arrival_time; + u64 delta_start; +}; + +struct osn_thread { + u64 count; + u64 arrival_time; + u64 delta_start; +}; + +struct osnoise_data { + u64 sample_period; + u64 sample_runtime; + u64 stop_tracing; + u64 stop_tracing_total; + u64 timerlat_period; + u64 print_stack; + int timerlat_tracer; + bool tainted; +}; + +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 osnoise_instance { + struct list_head list; + struct trace_array *tr; +}; + +struct osnoise_sample { + u64 runtime; + u64 noise; + u64 max_sample; + int hw_count; + int nmi_count; + int irq_count; + int softirq_count; + int thread_count; +}; + +struct osnoise_variables { + struct task_struct *kthread; + bool sampling; + pid_t pid; + struct osn_nmi nmi; + struct osn_irq irq; + struct osn_softirq softirq; + struct osn_thread thread; + local_t int_counter; +}; + +struct out_of_bounds_data { + struct source_location location; + struct type_descriptor *array_type; + struct type_descriptor *index_type; +}; + +struct overflow_data { + struct source_location location; + struct type_descriptor *type; +}; + +struct overlay_changeset { + int id; + struct list_head ovcs_list; + const void *new_fdt; + const void *overlay_mem; + struct device_node *overlay_root; + enum of_overlay_notify_action notify_state; + int count; + struct fragment *fragments; + bool symbols_fragment; + struct of_changeset cset; +}; + +struct owl_clk_common { + struct regmap *regmap; + struct clk_hw hw; +}; + +struct owl_reset_map; + +struct owl_clk_desc { + struct owl_clk_common **clks; + long unsigned int num_clks; + struct clk_hw_onecell_data *hw_clks; + const struct owl_reset_map *resets; + long unsigned int num_resets; + struct regmap *regmap; +}; + +struct owl_mux_hw { + u32 reg; + u8 shift; + u8 width; +}; + +struct owl_gate_hw { + u32 reg; + u8 bit_idx; + u8 gate_flags; +}; + +struct owl_divider_hw { + u32 reg; + u8 shift; + u8 width; + u8 div_flags; + struct clk_div_table *table; +}; + +struct owl_factor_hw { + u32 reg; + u8 shift; + u8 width; + u8 fct_flags; + struct clk_factor_table *table; +}; + +union owl_rate { + struct owl_divider_hw div_hw; + struct owl_factor_hw factor_hw; + struct clk_fixed_factor fix_fact_hw; +}; + +struct owl_composite { + struct owl_mux_hw mux_hw; + struct owl_gate_hw gate_hw; + union owl_rate rate; + const struct clk_ops *fix_fact_ops; + struct owl_clk_common common; +}; + +struct owl_divider { + struct owl_divider_hw div_hw; + struct owl_clk_common common; +}; + +struct owl_factor { + struct owl_factor_hw factor_hw; + struct owl_clk_common common; +}; + +struct owl_gate { + struct owl_gate_hw gate_hw; + struct owl_clk_common common; +}; + +struct owl_gpio_port { + unsigned int offset; + unsigned int pins; + unsigned int outen; + unsigned int inen; + unsigned int dat; + unsigned int intc_ctl; + unsigned int intc_pd; + unsigned int intc_msk; + unsigned int intc_type; + u8 shared_ctl_offset; +}; + +struct owl_mux { + struct owl_mux_hw mux_hw; + struct owl_clk_common common; +}; + +struct owl_pullctl; + +struct owl_st; + +struct owl_padinfo { + int pad; + struct owl_pullctl *pullctl; + struct owl_st *st; +}; + +struct owl_pinctrl_soc_data; + +struct owl_pinctrl { + struct device *dev; + struct pinctrl_dev *pctrldev; + struct gpio_chip chip; + raw_spinlock_t lock; + struct clk *clk; + const struct owl_pinctrl_soc_data *soc; + void *base; + unsigned int num_irq; + unsigned int *irq; +}; + +struct owl_pinmux_func; + +struct owl_pingroup; + +struct owl_pinctrl_soc_data { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct owl_pinmux_func *functions; + unsigned int nfunctions; + const struct owl_pingroup *groups; + unsigned int ngroups; + const struct owl_padinfo *padinfo; + unsigned int ngpios; + const struct owl_gpio_port *ports; + unsigned int nports; + int (*padctl_val2arg)(const struct owl_padinfo *, unsigned int, u32 *); + int (*padctl_arg2val)(const struct owl_padinfo *, unsigned int, u32 *); +}; + +struct owl_pingroup { + const char *name; + unsigned int *pads; + unsigned int npads; + unsigned int *funcs; + unsigned int nfuncs; + int mfpctl_reg; + unsigned int mfpctl_shift; + unsigned int mfpctl_width; + int drv_reg; + unsigned int drv_shift; + unsigned int drv_width; + int sr_reg; + unsigned int sr_shift; + unsigned int sr_width; +}; + +struct owl_pinmux_func { + const char *name; + const char * const *groups; + unsigned int ngroups; +}; + +struct owl_pll_hw { + u32 reg; + u32 bfreq; + u8 bit_idx; + u8 shift; + u8 width; + u8 min_mul; + u8 max_mul; + u8 delay; + const struct clk_pll_table *table; +}; + +struct owl_pll { + struct owl_pll_hw pll_hw; + struct owl_clk_common common; +}; + +struct owl_pullctl { + int reg; + unsigned int shift; + unsigned int width; +}; + +struct owl_reset { + struct reset_controller_dev rcdev; + const struct owl_reset_map *reset_map; + struct regmap *regmap; +}; + +struct owl_reset_map { + u32 reg; + u32 bit; +}; + +struct owl_sirq_params; + +struct owl_sirq_chip_data { + const struct owl_sirq_params *params; + void *base; + raw_spinlock_t lock; + u32 ext_irqs[3]; +}; + +struct owl_sirq_params { + bool reg_shared; + u16 reg_offset[3]; +}; + +struct owl_sps_info; + +struct owl_sps { + struct device *dev; + const struct owl_sps_info *info; + void *base; + struct genpd_onecell_data genpd_data; + struct generic_pm_domain *domains[0]; +}; + +struct owl_sps_domain_info; + +struct owl_sps_domain { + struct generic_pm_domain genpd; + const struct owl_sps_domain_info *info; + struct owl_sps *sps; +}; + +struct owl_sps_domain_info { + const char *name; + int pwr_bit; + int ack_bit; + unsigned int genpd_flags; +}; + +struct owl_sps_info { + unsigned int num_domains; + const struct owl_sps_domain_info *domains; +}; + +struct owl_st { + int reg; + unsigned int shift; + unsigned int width; +}; + +struct owl_uart_info { + unsigned int tx_fifosize; +}; + +struct owl_uart_port { + struct uart_port port; + struct clk *clk; +}; + +struct pacct_struct { + int ac_flag; + long int ac_exitcode; + long unsigned int ac_mem; + u64 ac_utime; + u64 ac_stime; + long unsigned int ac_minflt; + long unsigned int ac_majflt; +}; + +struct packed_field_u16 { + u16 startbit; + u16 endbit; + u16 offset; + u16 size; +}; + +struct packed_field_u8 { + u8 startbit; + u8 endbit; + u8 offset; + u8 size; +}; + +struct scsi_sense_hdr; + +struct packet_command { + unsigned char cmd[12]; + unsigned char *buffer; + unsigned int buflen; + int stat; + struct scsi_sense_hdr *sshdr; + unsigned char data_direction; + int quiet; + int timeout; + void *reserved[1]; +}; + +struct 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 *bpf_prog; + }; + struct list_head list; + spinlock_t lock; + refcount_t sk_ref; + long: 64; + struct packet_type prot_hook; + struct sock *arr[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct packet_mclist { + struct packet_mclist *next; + int ifindex; + int count; + short unsigned int type; + short unsigned int alen; + unsigned char addr[32]; +}; + +struct packet_mreq_max { + int mr_ifindex; + short unsigned int mr_type; + short unsigned int mr_alen; + unsigned char mr_address[32]; +}; + +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; + short unsigned int kactive_blk_num; + short unsigned int blk_sizeof_priv; + short unsigned int 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; + short unsigned int retire_blk_tov; + short unsigned int version; + long unsigned int 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 *pending_refcnt; + union { + long unsigned int *rx_owner_map; + struct tpacket_kbdq_core prb_bdqc; + }; +}; + +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 sockaddr_pkt { + short unsigned int spkt_family; + unsigned char spkt_device[14]; + __be16 spkt_protocol; +}; + +struct sockaddr_ll { + short unsigned int sll_family; + __be16 sll_protocol; + int sll_ifindex; + short unsigned int sll_hatype; + unsigned char sll_pkttype; + unsigned char sll_halen; + unsigned char sll_addr[8]; +}; + +struct packet_skb_cb { + union { + struct sockaddr_pkt pkt; + union { + unsigned int origlen; + struct sockaddr_ll ll; + }; + } sa; +}; + +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 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; + long unsigned int flags; + int ifindex; + u8 vnet_hdr_sz; + __be16 num; + struct packet_rollover *rollover; + struct packet_mclist *mclist; + atomic_long_t mapped; + enum tpacket_versions tp_version; + unsigned int tp_hdrlen; + unsigned int tp_reserve; + unsigned int tp_tstamp; + struct completion skb_completion; + struct net_device *cached_dev; + long: 64; + struct packet_type prot_hook; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_t tp_drops; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct padata_cpumask { + cpumask_var_t pcpu; + cpumask_var_t cbcpu; +}; + +struct padata_instance { + struct hlist_node cpu_online_node; + struct hlist_node cpu_dead_node; + struct workqueue_struct *parallel_wq; + struct workqueue_struct *serial_wq; + struct list_head pslist; + struct padata_cpumask cpumask; + struct kobject kobj; + struct mutex lock; + u8 flags; +}; + +struct padata_list { + struct list_head list; + spinlock_t lock; +}; + +struct padata_mt_job { + void (*thread_fn)(long unsigned int, long unsigned int, void *); + void *fn_arg; + long unsigned int start; + long unsigned int size; + long unsigned int align; + long unsigned int min_chunk; + int max_threads; + bool numa_aware; +}; + +struct padata_mt_job_state { + spinlock_t lock; + struct completion completion; + struct padata_mt_job *job; + int nworks; + int nworks_fini; + long unsigned int chunk_size; +}; + +struct parallel_data; + +struct padata_priv { + struct list_head list; + struct parallel_data *pd; + int cb_cpu; + unsigned int seq_nr; + int info; + void (*parallel)(struct padata_priv *); + void (*serial)(struct padata_priv *); +}; + +struct padata_serial_queue { + struct padata_list serial; + struct work_struct work; + struct parallel_data *pd; +}; + +struct padata_shell { + struct padata_instance *pinst; + struct parallel_data *pd; + struct parallel_data *opd; + struct list_head list; +}; + +struct padata_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct padata_instance *, struct attribute *, char *); + ssize_t (*store)(struct padata_instance *, struct attribute *, const char *, size_t); +}; + +struct padata_work { + struct work_struct pw_work; + struct list_head pw_list; + void *pw_data; +}; + +typedef struct page *pgtable_t; + +struct page_change_data { + pgprot_t set_mask; + pgprot_t clear_mask; +}; + +struct printf_spec; + +struct page_flags_fields { + int width; + int shift; + int mask; + const struct printf_spec *spec; + const char *name; +}; + +struct page_list { + struct page_list *next; + struct page *page; +}; + +struct page_pool_params_fast { + unsigned int order; + unsigned int pool_size; + int nid; + struct device *dev; + struct napi_struct *napi; + enum dma_data_direction dma_dir; + unsigned int max_len; + unsigned int offset; +}; + +struct page_pool_alloc_stats { + u64 fast; + u64 slow; + u64 slow_high_order; + u64 empty; + u64 refill; + u64 waive; +}; + +struct pp_alloc_cache { + u32 count; + netmem_ref cache[128]; +}; + +struct ptr_ring { + int producer; + spinlock_t producer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + int consumer_head; + int consumer_tail; + spinlock_t consumer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + int size; + int batch; + void **queue; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct page_pool_params_slow { + struct net_device *netdev; + unsigned int queue_idx; + unsigned int flags; + void (*init_callback)(netmem_ref, void *); + void *init_arg; +}; + +struct page_pool_recycle_stats; + +struct page_pool { + struct page_pool_params_fast p; + int cpuid; + u32 pages_state_hold_cnt; + bool has_init_callback: 1; + bool dma_map: 1; + bool dma_sync: 1; + bool dma_sync_for_cpu: 1; + bool system: 1; + long: 0; + __u8 __cacheline_group_begin__frag[0]; + long int frag_users; + netmem_ref frag_page; + unsigned int frag_offset; + long: 0; + __u8 __cacheline_group_end__frag[0]; + long: 64; + struct {} __cacheline_group_pad__frag; + struct delayed_work release_dw; + void (*disconnect)(void *); + long unsigned int defer_start; + long unsigned int defer_warn; + struct page_pool_alloc_stats alloc_stats; + u32 xdp_mem_id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct pp_alloc_cache alloc; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct ptr_ring ring; + void *mp_priv; + struct xarray dma_mapped; + struct page_pool_recycle_stats *recycle_stats; + atomic_t pages_state_release_cnt; + refcount_t user_cnt; + u64 destroy_cnt; + struct page_pool_params_slow slow; + struct { + struct hlist_node list; + u64 detach_time; + u32 id; + } user; + long: 64; + long: 64; +}; + +struct page_pool_dump_cb { + long unsigned int ifindex; + u32 pp_id; +}; + +struct page_pool_params { + union { + struct { + unsigned int order; + unsigned int pool_size; + int nid; + struct device *dev; + struct napi_struct *napi; + enum dma_data_direction dma_dir; + unsigned int max_len; + unsigned int offset; + }; + struct page_pool_params_fast fast; + }; + union { + struct { + struct net_device *netdev; + unsigned int queue_idx; + unsigned int flags; + void (*init_callback)(netmem_ref, void *); + void *init_arg; + }; + struct page_pool_params_slow slow; + }; +}; + +struct page_pool_recycle_stats { + u64 cached; + u64 cache_full; + u64 ring; + u64 ring_full; + u64 released_refcnt; +}; + +struct page_pool_stats { + struct page_pool_alloc_stats alloc_stats; + struct page_pool_recycle_stats recycle_stats; +}; + +struct page_region { + __u64 start; + __u64 end; + __u64 categories; +}; + +struct page_reporting_dev_info { + int (*report)(struct page_reporting_dev_info *, struct scatterlist *, unsigned int); + struct delayed_work work; + atomic_t state; + unsigned int order; +}; + +struct page_state { + long unsigned int mask; + long unsigned int res; + enum mf_action_page_type type; + int (*action)(struct page_state *, struct page *); +}; + +struct page_vma_mapped_walk { + long unsigned int pfn; + long unsigned int nr_pages; + long unsigned int pgoff; + struct vm_area_struct *vma; + long unsigned int address; + pmd_t *pmd; + pte_t *pte; + spinlock_t *ptl; + unsigned int flags; +}; + +struct pm_scan_arg { + __u64 size; + __u64 flags; + __u64 start; + __u64 end; + __u64 walk_end; + __u64 vec; + __u64 vec_len; + __u64 max_pages; + __u64 category_inverted; + __u64 category_mask; + __u64 category_anyof_mask; + __u64 return_mask; +}; + +struct pagemap_scan_private { + struct pm_scan_arg arg; + long unsigned int masks_of_interest; + long unsigned int cur_vma_category; + struct page_region *vec_buf; + long unsigned int vec_buf_len; + long unsigned int vec_buf_index; + long unsigned int found_pages; + struct page_region *vec_out; +}; + +struct pagemapread { + int pos; + int len; + pagemap_entry_t *buffer; + bool show_pfn; +}; + +struct pages_devres { + long unsigned int addr; + unsigned int order; +}; + +struct pages_or_folios { + union { + struct page **pages; + struct folio **folios; + void **entries; + }; + bool has_folios; + long int nr_entries; +}; + +struct palmas_gpadc; + +struct palmas_pmic_driver_data; + +struct palmas_pmic; + +struct palmas_resource; + +struct palmas_usb; + +struct palmas { + struct device *dev; + struct i2c_client *i2c_clients[3]; + struct regmap *regmap[3]; + int id; + unsigned int features; + int irq; + u32 irq_mask; + struct mutex irq_lock; + struct regmap_irq_chip_data *irq_data; + struct palmas_pmic_driver_data *pmic_ddata; + struct palmas_pmic *pmic; + struct palmas_gpadc *gpadc; + struct palmas_resource *resource; + struct palmas_usb *usb; + u8 gpio_muxed; + u8 led_muxed; + u8 pwm_muxed; +}; + +struct palmas_clk_platform_data { + int clk32kg_mode_sleep; + int clk32kgaudio_mode_sleep; +}; + +struct palmas_device_data { + int ngpio; +}; + +struct regmap_irq_chip; + +struct palmas_driver_data { + unsigned int features; + const struct regmap_irq_chip *irq_chip; +}; + +struct palmas_gpadc_platform_data { + int ch3_current; + int ch0_current; + bool extended_delay; + int bat_removal; + int start_polarity; + int auto_conversion_period_ms; +}; + +struct palmas_gpio { + struct gpio_chip gpio_chip; + struct palmas *palmas; +}; + +struct palmas_pin_function; + +struct palmas_pingroup; + +struct palmas_pctrl_chip_info { + struct device *dev; + struct pinctrl_dev *pctl; + struct palmas *palmas; + int pins_current_opt[26]; + const struct palmas_pin_function *functions; + unsigned int num_functions; + const struct palmas_pingroup *pin_groups; + int num_pin_groups; + const struct pinctrl_pin_desc *pins; + unsigned int num_pins; +}; + +struct palmas_pin_function { + const char *name; + const char * const *groups; + unsigned int ngroups; +}; + +struct palmas_pins_pullup_dn_info; + +struct palmas_pins_od_info; + +struct palmas_pin_info { + enum palmas_pinmux mux_opt; + const struct palmas_pins_pullup_dn_info *pud_info; + const struct palmas_pins_od_info *od_info; +}; + +struct palmas_pinctrl_data { + const struct palmas_pingroup *pin_groups; + int num_pin_groups; +}; + +struct palmas_pingroup { + const char *name; + const unsigned int pins[1]; + unsigned int npins; + unsigned int mux_reg_base; + unsigned int mux_reg_add; + unsigned int mux_reg_mask; + unsigned int mux_bit_shift; + const struct palmas_pin_info *opt[4]; +}; + +struct palmas_pins_od_info { + int od_reg_base; + int od_reg_add; + int od_mask; + int od_enable; + int od_disable; +}; + +struct palmas_pins_pullup_dn_info { + int pullup_dn_reg_base; + int pullup_dn_reg_add; + int pullup_dn_mask; + int normal_val; + int pull_up_val; + int pull_dn_val; +}; + +struct palmas_pmic_platform_data; + +struct palmas_usb_platform_data; + +struct palmas_resource_platform_data; + +struct palmas_platform_data { + int irq_flags; + int gpio_base; + u8 power_ctrl; + int mux_from_pdata; + u8 pad1; + u8 pad2; + bool pm_off; + struct palmas_pmic_platform_data *pmic_pdata; + struct palmas_gpadc_platform_data *gpadc_pdata; + struct palmas_usb_platform_data *usb_pdata; + struct palmas_resource_platform_data *resource_pdata; + struct palmas_clk_platform_data *clk_pdata; +}; + +struct regulator_config; + +struct regulator_ops; + +struct regulator_desc { + const char *name; + const char *supply_name; + const char *of_match; + bool of_match_full_name; + const char *regulators_node; + int (*of_parse_cb)(struct device_node *, const struct regulator_desc *, struct regulator_config *); + int (*init_cb)(struct regulator_dev *, struct regulator_config *); + int id; + unsigned int continuous_voltage_range: 1; + unsigned int n_voltages; + unsigned int n_current_limits; + const struct regulator_ops *ops; + int irq; + enum regulator_type type; + struct module *owner; + unsigned int min_uV; + unsigned int uV_step; + unsigned int linear_min_sel; + int fixed_uV; + unsigned int ramp_delay; + int min_dropout_uV; + const struct linear_range *linear_ranges; + const unsigned int *linear_range_selectors_bitfield; + int n_linear_ranges; + const unsigned int *volt_table; + const unsigned int *curr_table; + unsigned int vsel_range_reg; + unsigned int vsel_range_mask; + bool range_applied_by_vsel; + unsigned int vsel_reg; + unsigned int vsel_mask; + unsigned int vsel_step; + unsigned int csel_reg; + unsigned int csel_mask; + unsigned int apply_reg; + unsigned int apply_bit; + unsigned int enable_reg; + unsigned int enable_mask; + unsigned int enable_val; + unsigned int disable_val; + bool enable_is_inverted; + unsigned int bypass_reg; + unsigned int bypass_mask; + unsigned int bypass_val_on; + unsigned int bypass_val_off; + unsigned int active_discharge_on; + unsigned int active_discharge_off; + unsigned int active_discharge_mask; + unsigned int active_discharge_reg; + unsigned int soft_start_reg; + unsigned int soft_start_mask; + unsigned int soft_start_val_on; + unsigned int pull_down_reg; + unsigned int pull_down_mask; + unsigned int pull_down_val_on; + unsigned int ramp_reg; + unsigned int ramp_mask; + const unsigned int *ramp_delay_table; + unsigned int n_ramp_values; + unsigned int enable_time; + unsigned int off_on_delay; + unsigned int poll_enabled_time; + unsigned int (*of_map_mode)(unsigned int); +}; + +struct palmas_pmic { + struct palmas *palmas; + struct device *dev; + struct regulator_desc desc[27]; + struct mutex mutex; + int smps123; + int smps457; + int smps12; + int range[10]; + unsigned int ramp_delay[10]; + unsigned int current_reg_mode[10]; +}; + +struct palmas_regs_info; + +struct palmas_sleep_requestor_info; + +struct palmas_pmic_driver_data { + int smps_start; + int smps_end; + int ldo_begin; + int ldo_end; + int max_reg; + bool has_regen3; + struct palmas_regs_info *palmas_regs_info; + struct of_regulator_match *palmas_matches; + struct palmas_sleep_requestor_info *sleep_req_info; + int (*smps_register)(struct palmas_pmic *, struct palmas_pmic_driver_data *, struct palmas_pmic_platform_data *, const char *, struct regulator_config); + int (*ldo_register)(struct palmas_pmic *, struct palmas_pmic_driver_data *, struct palmas_pmic_platform_data *, const char *, struct regulator_config); +}; + +struct palmas_reg_init; + +struct palmas_pmic_platform_data { + struct regulator_init_data *reg_data[27]; + struct palmas_reg_init *reg_init[27]; + int ldo6_vibrator; + bool enable_ldo8_tracking; +}; + +struct palmas_reg_init { + int warm_reset; + int roof_floor; + int mode_sleep; + u8 vsel; +}; + +struct palmas_regs_info { + const char *name; + const char *sname; + u8 vsel_addr; + u8 ctrl_addr; + u8 tstep_addr; + int sleep_id; +}; + +struct palmas_resource { + struct palmas *palmas; + struct device *dev; +}; + +struct palmas_resource_platform_data { + int regen1_mode_sleep; + int regen2_mode_sleep; + int sysen1_mode_sleep; + int sysen2_mode_sleep; + u8 nsleep_res; + u8 nsleep_smps; + u8 nsleep_ldo1; + u8 nsleep_ldo2; + u8 enable1_res; + u8 enable1_smps; + u8 enable1_ldo1; + u8 enable1_ldo2; + u8 enable2_res; + u8 enable2_smps; + u8 enable2_ldo1; + u8 enable2_ldo2; +}; + +struct palmas_sleep_requestor_info { + int id; + int reg_offset; + int bit_pos; +}; + +struct palmas_usb { + struct palmas *palmas; + struct device *dev; + struct extcon_dev *edev; + int id_otg_irq; + int id_irq; + int vbus_otg_irq; + int vbus_irq; + int gpio_id_irq; + int gpio_vbus_irq; + struct gpio_desc *id_gpiod; + struct gpio_desc *vbus_gpiod; + long unsigned int sw_debounce_jiffies; + struct delayed_work wq_detectid; + enum palmas_usb_state linkstat; + int wakeup; + bool enable_vbus_detection; + bool enable_id_detection; + bool enable_gpio_id_detection; + bool enable_gpio_vbus_detection; +}; + +struct palmas_usb_platform_data { + int wakeup; +}; + +struct panel_bridge { + struct drm_bridge bridge; + struct drm_connector connector; + struct drm_panel *panel; + u32 connector_type; +}; + +struct parallel_data { + struct padata_shell *ps; + struct padata_list *reorder_list; + struct padata_serial_queue *squeue; + refcount_t refcnt; + unsigned int seq_nr; + unsigned int processed; + int cpu; + struct padata_cpumask cpumask; + struct work_struct reorder_work; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct thermal_genl_cpu_caps; + +struct param { + struct nlattr **attrs; + struct sk_buff *msg; + const char *name; + int tz_id; + int cdev_id; + int trip_id; + int trip_temp; + int trip_type; + int trip_hyst; + int temp; + int prev_temp; + int direction; + int cdev_state; + int cdev_max_state; + struct thermal_genl_cpu_caps *cpu_capabilities; + int cpu_capabilities_count; +}; + +struct parent_map { + u8 src; + u8 cfg; +}; + +struct parents_resp { + u32 parents[3]; +}; + +struct parking_protocol_mailbox { + __le32 cpu_id; + __le32 reserved; + __le64 entry_point; +}; + +struct parsed_desc { + u32 mb; + u32 valid; +}; + +struct partition_meta_info { + char uuid[37]; + u8 volname[64]; +}; + +struct parsed_partitions { + struct gendisk *disk; + char name[32]; + struct { + sector_t from; + sector_t size; + int flags; + bool has_info; + struct partition_meta_info info; + } *parts; + int next; + int limit; + bool access_beyond_eod; + char *pp_buf; +}; + +struct partial_cluster { + ext4_fsblk_t pclu; + ext4_lblk_t lblk; + enum { + initial = 0, + tofree = 1, + nofree = 2, + } state; +}; + +struct partial_context { + gfp_t flags; + unsigned int orig_size; + void *object; +}; + +struct partial_page { + unsigned int offset; + unsigned int len; + long unsigned int private; +}; + +struct partition_affinity { + cpumask_t mask; + void *partition_id; +}; + +struct partition_desc { + int nr_parts; + struct partition_affinity *parts; + struct irq_domain *domain; + struct irq_desc *chained_desc; + long unsigned int *bitmap; + struct irq_domain_ops ops; +}; + +struct partition_info { + u8 flg; + char id[3]; + __be32 st; + __be32 siz; +}; + +struct path_cond { + kuid_t uid; + umode_t mode; +}; + +struct pause_reply_data { + struct ethnl_reply_data base; + struct ethtool_pauseparam pauseparam; + struct ethtool_pause_stats pausestat; +}; + +struct pause_req_info { + struct ethnl_req_info base; + enum ethtool_mac_stats_src src; +}; + +struct pcap_adc_request { + u8 bank; + u8 ch[2]; + u32 flags; + void (*callback)(void *, u16 *); + void *data; +}; + +struct pcap_adc_sync_request { + u16 res[2]; + struct completion completion; +}; + +struct pcap_chip { + struct spi_device *spi; + u32 buf; + spinlock_t io_lock; + unsigned int irq_base; + u32 msr; + struct work_struct isr_work; + struct work_struct msr_work; + struct workqueue_struct *workqueue; + struct pcap_adc_request *adc_queue[8]; + u8 adc_head; + u8 adc_tail; + spinlock_t adc_lock; +}; + +struct pcap_subdev; + +struct pcap_platform_data { + unsigned int irq_base; + unsigned int config; + int gpio; + void (*init)(void *); + int num_subdevs; + struct pcap_subdev *subdevs; +}; + +struct pcap_subdev { + int id; + const char *name; + void *platform_data; +}; + +struct pcc_mbox_chan { + struct mbox_chan *mchan; + u64 shmem_base_addr; + void *shmem; + u64 shmem_size; + u32 latency; + u32 max_access_rate; + u16 min_turnaround_time; +}; + +struct pcc_chan_reg { + void *vaddr; + struct acpi_generic_address *gas; + u64 preserve_mask; + u64 set_mask; + u64 status_mask; +}; + +struct pcc_chan_info { + struct pcc_mbox_chan chan; + struct pcc_chan_reg db; + struct pcc_chan_reg plat_irq_ack; + struct pcc_chan_reg cmd_complete; + struct pcc_chan_reg cmd_update; + struct pcc_chan_reg error; + int plat_irq; + u8 type; + unsigned int plat_irq_flags; + bool chan_in_use; +}; + +struct pcc_data { + struct pcc_mbox_chan *pcc_chan; + void *pcc_comm_addr; + struct completion done; + struct mbox_client cl; + struct acpi_pcc_info ctx; +}; + +struct pci_acs { + u16 cap; + u16 ctrl; + u16 fw_ctrl; +}; + +struct pci_bits { + unsigned int reg; + unsigned int width; + long unsigned int mask; + long unsigned int val; +}; + +struct pci_bridge_emul_ops { + pci_bridge_emul_read_status_t (*read_base)(struct pci_bridge_emul *, int, u32 *); + pci_bridge_emul_read_status_t (*read_pcie)(struct pci_bridge_emul *, int, u32 *); + pci_bridge_emul_read_status_t (*read_ext)(struct pci_bridge_emul *, int, u32 *); + void (*write_base)(struct pci_bridge_emul *, int, u32, u32, u32); + void (*write_pcie)(struct pci_bridge_emul *, int, u32, u32, u32); + void (*write_ext)(struct pci_bridge_emul *, int, u32, u32, u32); +}; + +struct pci_bridge_reg_behavior { + u32 ro; + u32 rw; + u32 w1c; +}; + +struct pci_bus { + struct list_head node; + struct pci_bus *parent; + struct list_head children; + struct list_head devices; + struct pci_dev *self; + struct list_head slots; + struct resource *resource[4]; + struct list_head resources; + struct resource busn_res; + struct pci_ops *ops; + void *sysdata; + struct proc_dir_entry *procdir; + unsigned char number; + unsigned char primary; + unsigned char max_bus_speed; + unsigned char cur_bus_speed; + int domain_nr; + char name[48]; + short unsigned int 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_bus_region { + pci_bus_addr_t start; + pci_bus_addr_t end; +}; + +struct pci_bus_resource { + struct list_head list; + struct resource *res; +}; + +struct pci_cap_saved_data { + u16 cap_nr; + bool cap_extended; + unsigned int size; + u32 data[0]; +}; + +struct pci_cap_saved_state { + struct hlist_node next; + struct pci_cap_saved_data cap; +}; + +struct pci_config_window { + struct resource res; + struct resource busr; + unsigned int bus_shift; + void *priv; + const struct pci_ecam_ops *ops; + union { + void *win; + void **winp; + }; + struct device *parent; +}; + +struct pci_vpd { + struct mutex lock; + unsigned int len; + u8 cap; +}; + +struct rcec_ea; + +struct pcie_link_state; + +struct pcie_bwctrl_data; + +struct pci_sriov; + +struct pci_p2pdma; + +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; + short unsigned int vendor; + short unsigned int device; + short unsigned int subsystem_vendor; + short unsigned int subsystem_device; + unsigned int class; + u8 revision; + u8 hdr_type; + u16 aer_cap; + struct aer_stats *aer_stats; + struct rcec_ea *rcec_ea; + struct pci_dev *rcec; + u32 devcap; + u8 pcie_cap; + u8 msi_cap; + u8 msix_cap; + u8 pcie_mpss: 3; + u8 rom_base_reg; + u8 pin; + u16 pcie_flags_reg; + long unsigned int *dma_alias_mask; + struct pci_driver *driver; + u64 dma_mask; + struct device_dma_parameters dma_parms; + pci_power_t current_state; + u8 pm_cap; + unsigned int pme_support: 5; + unsigned int pme_poll: 1; + unsigned int pinned: 1; + unsigned int config_rrs_sv: 1; + unsigned int imm_ready: 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; + u16 l1ss; + struct pcie_link_state *link_state; + unsigned int ltr_path: 1; + unsigned int pasid_no_tlp: 1; + unsigned int eetlp_prefix_max: 3; + pci_channel_state_t error_state; + struct device dev; + int cfg_size; + unsigned int irq; + struct resource resource[17]; + struct resource driver_exclusive_resource; + bool match_driver; + unsigned int transparent: 1; + unsigned int io_window: 1; + unsigned int pref_window: 1; + unsigned int pref_64_window: 1; + unsigned int multifunction: 1; + unsigned int is_busmaster: 1; + unsigned int no_msi: 1; + unsigned int no_64bit_msi: 1; + unsigned int block_cfg_access: 1; + unsigned int broken_parity_status: 1; + unsigned int irq_reroute_variant: 2; + unsigned int msi_enabled: 1; + unsigned int msix_enabled: 1; + unsigned int ari_enabled: 1; + unsigned int ats_enabled: 1; + unsigned int pasid_enabled: 1; + unsigned int pri_enabled: 1; + unsigned int tph_enabled: 1; + unsigned int is_managed: 1; + unsigned int is_msi_managed: 1; + unsigned int needs_freset: 1; + unsigned int state_saved: 1; + unsigned int is_physfn: 1; + unsigned int is_virtfn: 1; + unsigned int is_hotplug_bridge: 1; + unsigned int shpc_managed: 1; + unsigned int is_thunderbolt: 1; + unsigned int untrusted: 1; + unsigned int external_facing: 1; + unsigned int broken_intx_masking: 1; + unsigned int io_window_1k: 1; + unsigned int irq_managed: 1; + unsigned int non_compliant_bars: 1; + unsigned int is_probed: 1; + unsigned int link_active_reporting: 1; + unsigned int no_vf_scan: 1; + unsigned int no_command_memory: 1; + unsigned int rom_bar_overlap: 1; + unsigned int rom_attr_enabled: 1; + unsigned int aspm_os_control: 1; + pci_dev_flags_t dev_flags; + atomic_t enable_cnt; + spinlock_t pcie_cap_lock; + u32 saved_config_space[16]; + struct hlist_head saved_cap_space; + struct bin_attribute *res_attr[17]; + struct bin_attribute *res_attr_wc[17]; + unsigned int broken_cmd_compl: 1; + u16 ptm_cap; + unsigned int ptm_root: 1; + unsigned int ptm_enabled: 1; + u8 ptm_granularity; + void *msix_base; + raw_spinlock_t msi_lock; + struct pci_vpd vpd; + u16 dpc_cap; + unsigned int dpc_rp_extensions: 1; + u8 dpc_rp_log_size; + struct pcie_bwctrl_data *link_bwctrl; + 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; + struct pci_p2pdma *p2pdma; + struct xarray doe_mbs; + struct npem *npem; + u16 acs_cap; + u8 supported_speeds; + phys_addr_t rom; + size_t romlen; + const char *driver_override; + long unsigned int priv_flags; + u8 reset_methods[8]; + u16 tph_cap; + u8 tph_mode; + u8 tph_req_type; +}; + +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 *); +}; + +struct pci_dev_reset_methods { + u16 vendor; + u16 device; + int (*reset)(struct pci_dev *, bool); +}; + +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; + long unsigned int flags; +}; + +struct pci_device_id { + __u32 vendor; + __u32 device; + __u32 subvendor; + __u32 subdevice; + __u32 class; + __u32 class_mask; + kernel_ulong_t driver_data; + __u32 override_only; +}; + +struct physdev_pci_device { + uint16_t seg; + uint8_t bus; + uint8_t devfn; +}; + +struct pci_device_reset { + struct physdev_pci_device dev; + uint32_t flags; +}; + +struct pci_doe_mb { + struct pci_dev *pdev; + u16 cap_offset; + struct xarray prots; + wait_queue_head_t wq; + struct workqueue_struct *work_queue; + long unsigned int flags; +}; + +struct pci_doe_protocol { + u16 vid; + u8 type; +}; + +struct pci_doe_task { + struct pci_doe_protocol prot; + const __le32 *request_pl; + size_t request_pl_sz; + __le32 *response_pl; + size_t response_pl_sz; + int rv; + void (*complete)(struct pci_doe_task *); + void *private; + struct work_struct work; + struct pci_doe_mb *doe_mb; +}; + +struct pci_domain_busn_res { + struct list_head list; + struct resource res; + int domain_nr; +}; + +struct pci_dynids { + spinlock_t lock; + struct list_head list; +}; + +struct pci_error_handlers; + +struct pci_driver { + 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_dynid { + struct list_head node; + struct pci_device_id id; +}; + +struct pci_ops { + int (*add_bus)(struct pci_bus *); + void (*remove_bus)(struct pci_bus *); + void * (*map_bus)(struct pci_bus *, unsigned int, int); + int (*read)(struct pci_bus *, unsigned int, int, int, u32 *); + int (*write)(struct pci_bus *, unsigned int, int, int, u32); +}; + +struct pci_ecam_ops { + unsigned int bus_shift; + struct pci_ops pci_ops; + int (*init)(struct pci_config_window *); + int (*enable_device)(struct pci_host_bridge *, struct pci_dev *); + void (*disable_device)(struct pci_host_bridge *, struct pci_dev *); +}; + +struct pci_epc_ops; + +struct pci_epc_mem; + +struct pci_epc { + struct device dev; + struct list_head pci_epf; + struct mutex list_lock; + const struct pci_epc_ops *ops; + struct pci_epc_mem **windows; + struct pci_epc_mem *mem; + unsigned int num_windows; + u8 max_functions; + u8 *max_vfs; + struct config_group *group; + struct mutex lock; + long unsigned int function_num_map; + int domain_nr; + bool init_complete; +}; + +struct pci_epc_bar_desc { + enum pci_epc_bar_type type; + u64 fixed_size; + bool only_64bit; +}; + +struct pci_epf; + +struct pci_epc_event_ops { + int (*epc_init)(struct pci_epf *); + void (*epc_deinit)(struct pci_epf *); + int (*link_up)(struct pci_epf *); + int (*link_down)(struct pci_epf *); + int (*bus_master_enable)(struct pci_epf *); +}; + +struct pci_epc_features { + unsigned int linkup_notifier: 1; + unsigned int msi_capable: 1; + unsigned int msix_capable: 1; + struct pci_epc_bar_desc bar[6]; + size_t align; +}; + +struct pci_epc_group { + struct config_group group; + struct pci_epc *epc; + bool start; +}; + +struct pci_epc_map { + u64 pci_addr; + size_t pci_size; + u64 map_pci_addr; + size_t map_size; + phys_addr_t phys_base; + phys_addr_t phys_addr; + void *virt_base; + void *virt_addr; +}; + +struct pci_epc_mem_window { + phys_addr_t phys_base; + size_t size; + size_t page_size; +}; + +struct pci_epc_mem { + struct pci_epc_mem_window window; + long unsigned int *bitmap; + int pages; + struct mutex lock; +}; + +struct pci_epf_header; + +struct pci_epc_ops { + int (*write_header)(struct pci_epc *, u8, u8, struct pci_epf_header *); + int (*set_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + void (*clear_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + u64 (*align_addr)(struct pci_epc *, u64, size_t *, size_t *); + int (*map_addr)(struct pci_epc *, u8, u8, phys_addr_t, u64, size_t); + void (*unmap_addr)(struct pci_epc *, u8, u8, phys_addr_t); + int (*set_msi)(struct pci_epc *, u8, u8, u8); + int (*get_msi)(struct pci_epc *, u8, u8); + int (*set_msix)(struct pci_epc *, u8, u8, u16, enum pci_barno, u32); + int (*get_msix)(struct pci_epc *, u8, u8); + int (*raise_irq)(struct pci_epc *, u8, u8, unsigned int, u16); + int (*map_msi_irq)(struct pci_epc *, u8, u8, phys_addr_t, u8, u32, u32 *, u32 *); + int (*start)(struct pci_epc *); + void (*stop)(struct pci_epc *); + const struct pci_epc_features * (*get_features)(struct pci_epc *, u8, u8); + struct module *owner; +}; + +struct pci_epf_bar { + dma_addr_t phys_addr; + void *addr; + size_t size; + size_t aligned_size; + enum pci_barno barno; + int flags; +}; + +struct pci_epf_driver; + +struct pci_epf_device_id; + +struct pci_epf { + struct device dev; + const char *name; + struct pci_epf_header *header; + struct pci_epf_bar bar[6]; + u8 msi_interrupts; + u16 msix_interrupts; + u8 func_no; + u8 vfunc_no; + struct pci_epc *epc; + struct pci_epf *epf_pf; + struct pci_epf_driver *driver; + const struct pci_epf_device_id *id; + struct list_head list; + struct mutex lock; + struct pci_epc *sec_epc; + struct list_head sec_epc_list; + struct pci_epf_bar sec_epc_bar[6]; + u8 sec_epc_func_no; + struct config_group *group; + unsigned int is_bound; + unsigned int is_vf; + long unsigned int vfunction_num_map; + struct list_head pci_vepf; + const struct pci_epc_event_ops *event_ops; +}; + +struct pci_epf_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; + +struct pci_epf_ops; + +struct pci_epf_driver { + int (*probe)(struct pci_epf *, const struct pci_epf_device_id *); + void (*remove)(struct pci_epf *); + struct device_driver driver; + const struct pci_epf_ops *ops; + struct module *owner; + struct list_head epf_group; + const struct pci_epf_device_id *id_table; +}; + +struct pci_epf_group { + struct config_group group; + struct config_group primary_epc_group; + struct config_group secondary_epc_group; + struct delayed_work cfs_work; + struct pci_epf *epf; + int index; +}; + +struct pci_epf_header { + u16 vendorid; + u16 deviceid; + u8 revid; + u8 progif_code; + u8 subclass_code; + u8 baseclass_code; + u8 cache_line_size; + u16 subsys_vendor_id; + u16 subsys_id; + enum pci_interrupt_pin interrupt_pin; +}; + +struct pci_epf_msix_tbl { + u64 msg_addr; + u32 msg_data; + u32 vector_ctrl; +}; + +struct pci_epf_ops { + int (*bind)(struct pci_epf *); + void (*unbind)(struct pci_epf *); + struct config_group * (*add_cfs)(struct pci_epf *, struct config_group *); +}; + +struct 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 pci_fixup { + u16 vendor; + u16 device; + u32 class; + unsigned int class_shift; + int hook_offset; +}; + +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 *); + int (*enable_device)(struct pci_host_bridge *, struct pci_dev *); + void (*disable_device)(struct pci_host_bridge *, struct pci_dev *); + 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 unsigned int private[0]; +}; + +struct pci_osc_bit_struct { + u32 bit; + char *desc; +}; + +struct pci_p2pdma { + struct gen_pool *pool; + bool p2pmem_published; + struct xarray map_types; +}; + +struct pci_p2pdma_map_state { + struct dev_pagemap *pgmap; + int map; + u64 bus_off; +}; + +struct pci_p2pdma_pagemap { + struct pci_dev *provider; + u64 bus_offset; + struct dev_pagemap pgmap; +}; + +struct pci_p2pdma_whitelist_entry { + short unsigned int vendor; + short unsigned int device; + enum { + REQ_SAME_HOST_BRIDGE = 1, + } flags; +}; + +struct pci_pme_device { + struct list_head list; + struct pci_dev *dev; +}; + +struct pci_reset_fn_method { + int (*reset_fn)(struct pci_dev *, bool); + char *name; +}; + +struct pci_saved_state { + u32 config_space[16]; + struct pci_cap_saved_data cap[0]; +}; + +struct serial_private; + +struct pciserial_board; + +struct pci_serial_quirk { + u32 vendor; + u32 device; + u32 subvendor; + u32 subdevice; + int (*probe)(struct pci_dev *); + int (*init)(struct pci_dev *); + int (*setup)(struct serial_private *, const struct pciserial_board *, struct uart_8250_port *, int); + void (*exit)(struct pci_dev *); +}; + +struct pci_slot { + struct pci_bus *bus; + struct list_head list; + struct hotplug_slot *hotplug; + unsigned char number; + struct kobject kobj; +}; + +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 pci_sriov { + int pos; + int nres; + u32 cap; + u16 ctrl; + u16 total_VFs; + u16 initial_VFs; + u16 num_VFs; + u16 offset; + u16 stride; + u16 vf_device; + u32 pgsz; + u8 link; + u8 max_VF_buses; + u16 driver_max_VFs; + struct pci_dev *dev; + struct pci_dev *self; + u32 class; + u8 hdr_type; + u16 subsystem_vendor; + u16 subsystem_device; + resource_size_t barsz[6]; + bool drivers_autoprobe; +}; + +struct pcie_bwctrl_data { + struct mutex set_speed_mutex; + atomic_t lbms_count; + struct thermal_cooling_device *cdev; +}; + +struct pcie_device { + int irq; + struct pci_dev *port; + u32 service; + void *priv_data; + struct device device; +}; + +struct pcie_link_state { + struct pci_dev *pdev; + struct pci_dev *downstream; + struct pcie_link_state *root; + struct pcie_link_state *parent; + struct list_head sibling; + u32 aspm_support: 7; + u32 aspm_enabled: 7; + u32 aspm_capable: 7; + u32 aspm_default: 7; + int: 4; + u32 aspm_disable: 7; + u32 clkpm_capable: 1; + u32 clkpm_enabled: 1; + u32 clkpm_default: 1; + u32 clkpm_disable: 1; +}; + +struct pcie_pme_service_data { + spinlock_t lock; + struct pcie_device *srv; + struct work_struct work; + bool noirq; +}; + +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 pcim_addr_devres { + enum pcim_addr_devres_type type; + void *baseaddr; + long unsigned int offset; + long unsigned int len; + int bar; +}; + +struct pcim_intx_devres { + int orig_intx; +}; + +struct pcim_iomap_devres { + void *table[17]; +}; + +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 pcpu_group_info { + int nr_units; + long unsigned int 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 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 pcpuobj_ext; + +struct pcpu_chunk { + struct list_head list; + int free_bytes; + struct pcpu_block_md chunk_md; + long unsigned int *bound_map; + void *base_addr; + long unsigned int *alloc_map; + struct pcpu_block_md *md_blocks; + void *data; + bool immutable; + bool isolated; + int start_offset; + int end_offset; + struct pcpuobj_ext *obj_exts; + int nr_pages; + int nr_populated; + int nr_empty_pop_pages; + long unsigned int populated[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct pcpu_dstats { + u64_stats_t rx_packets; + u64_stats_t rx_bytes; + u64_stats_t tx_packets; + u64_stats_t tx_bytes; + u64_stats_t rx_drops; + u64_stats_t tx_drops; + struct u64_stats_sync syncp; + long: 64; + long: 64; +}; + +struct pcpu_gen_cookie { + local_t nesting; + u64 last; +}; + +struct pcpu_lstats { + u64_stats_t packets; + u64_stats_t bytes; + struct u64_stats_sync syncp; +}; + +struct pcpu_rx_sc_stats { + struct macsec_rx_sc_stats stats; + struct u64_stats_sync syncp; +}; + +struct pcpu_seg6_local_counters { + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t errors; + 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 pcpu_tx_sc_stats { + struct macsec_tx_sc_stats stats; + struct u64_stats_sync syncp; +}; + +struct pcpuobj_ext { + struct obj_cgroup *cgroup; +}; + +struct pcs_conf_type { + const char *name; + enum pin_config_param param; +}; + +struct pcs_conf_vals { + enum pin_config_param param; + unsigned int val; + unsigned int enable; + unsigned int disable; + unsigned int mask; +}; + +struct pcs_data { + struct pinctrl_pin_desc *pa; + int cur; +}; + +struct pcs_soc_data { + unsigned int flags; + int irq; + unsigned int irq_enable_mask; + unsigned int irq_status_mask; + void (*rearm)(void); +}; + +struct pcs_device { + struct resource *res; + void *base; + void *saved_vals; + unsigned int size; + struct device *dev; + struct device_node *np; + struct pinctrl_dev *pctl; + unsigned int flags; + struct property *missing_nr_pinctrl_cells; + struct pcs_soc_data socdata; + raw_spinlock_t lock; + struct mutex mutex; + unsigned int width; + unsigned int fmask; + unsigned int fshift; + unsigned int foff; + unsigned int fmax; + bool bits_per_mux; + unsigned int bits_per_pin; + struct pcs_data pins; + struct list_head gpiofuncs; + struct list_head irqs; + struct irq_chip chip; + struct irq_domain *domain; + struct pinctrl_desc desc; + unsigned int (*read)(void *); + void (*write)(unsigned int, void *); +}; + +struct pcs_func_vals { + void *reg; + unsigned int val; + unsigned int mask; +}; + +struct pcs_function { + const char *name; + struct pcs_func_vals *vals; + unsigned int nvals; + struct pcs_conf_vals *conf; + int nconfs; + struct list_head node; +}; + +struct pcs_gpiofunc_range { + unsigned int offset; + unsigned int npins; + unsigned int gpiofunc; + struct list_head node; +}; + +struct pcs_interrupt { + void *reg; + irq_hw_number_t hwirq; + unsigned int irq; + struct list_head node; +}; + +struct pcs_pdata { + int irq; + void (*rearm)(void); +}; + +struct pdc_initiator { + int dummy; +}; + +struct pdc_pin_region { + u32 pin_base; + u32 parent_base; + u32 cnt; +}; + +struct pde_opener { + struct list_head lh; + struct file *file; + bool closing; + struct completion *c; +}; + +struct pdev_list_entry { + struct platform_device *pdev; + struct list_head node; +}; + +struct pdiv_map { + u8 pdiv; + u8 hw_val; +}; + +struct pe32_opt_hdr { + uint16_t magic; + uint8_t ld_major; + uint8_t ld_minor; + uint32_t text_size; + uint32_t data_size; + uint32_t bss_size; + uint32_t entry_point; + uint32_t code_base; + uint32_t data_base; + uint32_t image_base; + uint32_t section_align; + uint32_t file_align; + uint16_t os_major; + uint16_t os_minor; + uint16_t image_major; + uint16_t image_minor; + uint16_t subsys_major; + uint16_t subsys_minor; + uint32_t win32_version; + uint32_t image_size; + uint32_t header_size; + uint32_t csum; + uint16_t subsys; + uint16_t dll_flags; + uint32_t stack_size_req; + uint32_t stack_size; + uint32_t heap_size_req; + uint32_t heap_size; + uint32_t loader_flags; + uint32_t data_dirs; +}; + +struct pe32plus_opt_hdr { + uint16_t magic; + uint8_t ld_major; + uint8_t ld_minor; + uint32_t text_size; + uint32_t data_size; + uint32_t bss_size; + uint32_t entry_point; + uint32_t code_base; + uint64_t image_base; + uint32_t section_align; + uint32_t file_align; + uint16_t os_major; + uint16_t os_minor; + uint16_t image_major; + uint16_t image_minor; + uint16_t subsys_major; + uint16_t subsys_minor; + uint32_t win32_version; + uint32_t image_size; + uint32_t header_size; + uint32_t csum; + uint16_t subsys; + uint16_t dll_flags; + uint64_t stack_size_req; + uint64_t stack_size; + uint64_t heap_size_req; + uint64_t heap_size; + uint32_t loader_flags; + uint32_t data_dirs; +}; + +struct pe_hdr { + uint32_t magic; + uint16_t machine; + uint16_t sections; + uint32_t timestamp; + uint32_t symbol_table; + uint32_t symbols; + uint16_t opt_hdr_size; + uint16_t flags; +}; + +struct section_header; + +struct pefile_context { + unsigned int header_size; + unsigned int image_checksum_offset; + unsigned int cert_dirent_offset; + unsigned int n_data_dirents; + unsigned int n_sections; + unsigned int certs_size; + unsigned int sig_offset; + unsigned int sig_len; + const struct section_header *secs; + const void *digest; + unsigned int digest_len; + const char *digest_algo; +}; + +struct pending_reservation { + struct rb_node rb_node; + ext4_lblk_t lclu; +}; + +struct per_cpu_dm_data { + raw_spinlock_t lock; + union { + struct sk_buff *skb; + struct net_dm_hw_entries *hw_entries; + }; + struct sk_buff_head drop_queue; + struct work_struct dm_alert_work; + struct timer_list send_timer; + struct net_dm_stats stats; +}; + +struct per_cpu_nodestat { + s8 stat_threshold; + s8 vm_node_stat_diff[49]; +}; + +struct per_cpu_pages { + spinlock_t lock; + int count; + int high; + int high_min; + int high_max; + int batch; + u8 flags; + u8 alloc_factor; + u8 expire; + short int free_count; + struct list_head lists[14]; +}; + +struct per_cpu_zonestat { + s8 vm_stat_diff[11]; + s8 stat_threshold; + long unsigned int vm_numa_event[6]; +}; + +struct percpu_cluster { + local_lock_t lock; + unsigned int next[10]; +}; + +struct percpu_free_defer { + struct callback_head rcu; + void *ptr; +}; + +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 perf_addr_filter { + struct list_head entry; + struct path path; + long unsigned int offset; + long unsigned int size; + enum perf_addr_filter_action_t action; +}; + +struct perf_addr_filter_range { + long unsigned int start; + long unsigned int size; +}; + +struct perf_addr_filters_head { + struct list_head list; + raw_spinlock_t lock; + unsigned int nr_file_filters; +}; + +struct perf_event_header { + __u32 type; + __u16 misc; + __u16 size; +}; + +struct perf_aux_event { + struct perf_event_header header; + u64 hw_id; +}; + +struct perf_aux_event___2 { + struct perf_event_header header; + u32 pid; + u32 tid; +}; + +struct perf_aux_event___3 { + struct perf_event_header header; + u64 offset; + u64 size; + u64 flags; +}; + +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_branch_entry { + __u64 from; + __u64 to; + __u64 mispred: 1; + __u64 predicted: 1; + __u64 in_tx: 1; + __u64 abort: 1; + __u64 cycles: 16; + __u64 type: 4; + __u64 spec: 2; + __u64 new_type: 4; + __u64 priv: 3; + __u64 reserved: 31; +}; + +struct perf_branch_stack { + __u64 nr; + __u64 hw_idx; + struct perf_branch_entry entries[0]; +}; + +struct perf_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 int watermark; + long int aux_watermark; + spinlock_t event_lock; + struct list_head event_list; + atomic_t mmap_count; + long unsigned int mmap_locked; + struct user_struct *mmap_user; + struct mutex aux_mutex; + long int aux_head; + unsigned int aux_nest; + long int aux_wakeup; + long unsigned int aux_pgoff; + int aux_nr_pages; + int aux_overwrite; + atomic_t aux_mmap_count; + long unsigned int aux_mmap_locked; + void (*free_aux)(void *); + refcount_t aux_refcount; + int aux_in_sampling; + int aux_in_pause_resume; + void **aux_pages; + void *aux_priv; + struct perf_event_mmap_page *user_page; + void *data_pages[0]; +}; + +struct perf_callchain_entry { + __u64 nr; + __u64 ip[0]; +}; + +struct perf_callchain_entry_ctx { + struct perf_callchain_entry *entry; + u32 max_stack; + u32 nr; + short int contexts; + bool contexts_maxed; +}; + +struct perf_cgroup_info; + +struct perf_cgroup { + struct cgroup_subsys_state css; + struct perf_cgroup_info *info; +}; + +struct perf_cgroup_event { + char *path; + int path_size; + struct { + struct perf_event_header header; + u64 id; + char path[0]; + } event_id; +}; + +struct perf_cgroup_info { + u64 time; + u64 timestamp; + u64 timeoffset; + int active; +}; + +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_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_no_switch_fast; +}; + +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 perf_event_pmu_context { + struct pmu *pmu; + struct perf_event_context *ctx; + struct list_head pmu_ctx_entry; + struct list_head pinned_active; + struct list_head flexible_active; + unsigned int embedded: 1; + unsigned int nr_events; + unsigned int nr_cgroups; + unsigned int nr_freq; + 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_ctx_data { + struct callback_head callback_head; + refcount_t refcount; + int global; + struct kmem_cache *ctx_cache; + void *data; +}; + +struct scmi_perf_domain_info { + char name[64]; + bool set_perf; +}; + +struct scmi_opp { + u32 perf; + u32 power; + u32 trans_latency_us; + u32 indicative_freq; + u32 level_index; + struct hlist_node hash; +}; + +struct scmi_fc_info; + +struct perf_dom_info { + u32 id; + bool set_limits; + bool perf_limit_notify; + bool perf_level_notify; + bool perf_fastchannels; + bool level_indexing_mode; + u32 opp_count; + u32 rate_limit_us; + u32 sustained_freq_khz; + u32 sustained_perf_level; + long unsigned int mult_factor; + struct scmi_perf_domain_info info; + struct scmi_opp opp[32]; + struct scmi_fc_info *fc_info; + struct xarray opps_by_idx; + struct xarray opps_by_lvl; + struct hlist_head opps_by_freq[32]; +}; + +struct perf_domain { + struct em_perf_domain *em_pd; + struct perf_domain *next; + struct callback_head rcu; +}; + +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; + union { + __u32 aux_action; + struct { + __u32 aux_start_paused: 1; + __u32 aux_pause: 1; + __u32 aux_resume: 1; + __u32 __reserved_3: 29; + }; + }; + __u64 sig_data; + __u64 config3; +}; + +typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *); + +struct perf_event { + struct list_head event_entry; + struct list_head sibling_list; + struct list_head active_list; + struct rb_node group_node; + u64 group_index; + struct list_head migrate_entry; + struct hlist_node hlist_entry; + struct list_head active_entry; + int nr_siblings; + int event_caps; + int group_caps; + unsigned int group_generation; + struct perf_event *group_leader; + struct pmu *pmu; + void *pmu_private; + enum perf_event_state state; + unsigned int attach_state; + local64_t count; + atomic64_t child_count; + u64 total_time_enabled; + u64 total_time_running; + u64 tstamp; + struct perf_event_attr attr; + u16 header_size; + u16 id_header_size; + u16 read_size; + struct hw_perf_event hw; + struct perf_event_context *ctx; + struct perf_event_pmu_context *pmu_ctx; + atomic_long_t refcount; + atomic64_t child_total_time_enabled; + atomic64_t child_total_time_running; + struct mutex child_mutex; + struct list_head child_list; + struct perf_event *parent; + int oncpu; + int cpu; + struct list_head owner_entry; + struct task_struct *owner; + struct mutex mmap_mutex; + atomic_t mmap_count; + struct perf_buffer *rb; + struct list_head rb_entry; + long unsigned int 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; + long unsigned int pending_addr; + struct irq_work pending_irq; + struct irq_work pending_disable_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; + long unsigned int 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)(void); + perf_overflow_handler_t overflow_handler; + void *overflow_handler_context; + struct bpf_prog *prog; + u64 bpf_cookie; + struct trace_event_call *tp_event; + struct event_filter *filter; + struct ftrace_ops ftrace_ops; + struct perf_cgroup *cgrp; + void *security; + struct list_head sb_list; + __u32 orig_type; +}; + +struct perf_event_min_heap { + size_t nr; + size_t size; + struct perf_event **data; + struct perf_event *preallocated[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_query_bpf { + __u32 ids_len; + __u32 prog_cnt; + __u32 ids[0]; +}; + +struct perf_event_security_struct { + u32 sid; +}; + +struct perf_guest_info_callbacks { + unsigned int (*state)(void); + long unsigned int (*get_ip)(void); + unsigned int (*handle_intel_pt_intr)(void); +}; + +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_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_ns_link_info { + __u64 dev; + __u64 ino; +}; + +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_output_handle { + struct perf_event *event; + struct perf_buffer *rb; + long unsigned int wakeup; + long unsigned int size; + union { + u64 flags; + u64 aux_flags; + struct { + u64 skip_read: 1; + }; + }; + union { + void *addr; + long unsigned int head; + }; + int page; +}; + +struct perf_pmu_events_attr { + struct device_attribute attr; + u64 id; + const char *event_str; +}; + +typedef long unsigned int (*perf_copy_f)(void *, const void *, long unsigned int, long unsigned int); + +struct perf_raw_frag { + union { + struct perf_raw_frag *next; + long unsigned int pad; + }; + perf_copy_f copy; + void *data; + u32 size; +} __attribute__((packed)); + +struct perf_raw_record { + struct perf_raw_frag frag; + u32 size; +}; + +struct perf_read_data { + struct perf_event *event; + bool group; + int ret; +}; + +struct perf_read_event { + struct perf_event_header header; + u32 pid; + u32 tid; +}; + +struct perf_switch_event { + struct task_struct *task; + struct task_struct *next_prev; + struct { + struct perf_event_header header; + u32 next_prev_pid; + u32 next_prev_tid; + } event_id; +}; + +struct 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_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 perm_datum { + u32 value; +}; + +struct pernet_operations { + struct list_head list; + int (*init)(struct net *); + void (*pre_exit)(struct net *); + void (*exit)(struct net *); + void (*exit_batch)(struct list_head *); + void (*exit_batch_rtnl)(struct list_head *, struct list_head *); + unsigned int * const id; + const size_t size; +}; + +struct pf_desc { + u32 pseudoflavor; + u32 qop; + u32 service; + char *name; + char *auth_domain_name; + struct auth_domain *domain; + bool datatouch; +}; + +struct skb_array { + struct ptr_ring ring; +}; + +struct pfifo_fast_priv { + struct skb_array q[3]; +}; + +struct zone { + long unsigned int _watermark[4]; + long unsigned int watermark_boost; + long unsigned int nr_reserved_highatomic; + long unsigned int nr_free_highatomic; + long int lowmem_reserve[5]; + int node; + struct pglist_data *zone_pgdat; + struct per_cpu_pages *per_cpu_pageset; + struct per_cpu_zonestat *per_cpu_zonestats; + int pageset_high_min; + int pageset_high_max; + int pageset_batch; + long unsigned int zone_start_pfn; + atomic_long_t managed_pages; + long unsigned int spanned_pages; + long unsigned int present_pages; + long unsigned int present_early_pages; + long unsigned int cma_pages; + const char *name; + long unsigned int nr_isolate_pageblock; + seqlock_t span_seqlock; + int initialized; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct free_area free_area[14]; + long unsigned int flags; + spinlock_t lock; + long: 0; + struct cacheline_padding _pad2_; + long unsigned int percpu_drift_mark; + long unsigned int compact_cached_free_pfn; + long unsigned int compact_cached_migrate_pfn[2]; + long unsigned int compact_init_migrate_pfn; + long unsigned int compact_init_free_pfn; + unsigned int compact_considered; + unsigned int compact_defer_shift; + int compact_order_failed; + bool compact_blockskip_flush; + bool contiguous; + long: 0; + struct cacheline_padding _pad3_; + atomic_long_t vm_stat[11]; + atomic_long_t vm_numa_event[6]; + long: 64; + 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[321]; +}; + +struct pglist_data { + struct zone node_zones[5]; + struct zonelist node_zonelists[2]; + int nr_zones; + spinlock_t node_size_lock; + long unsigned int node_start_pfn; + long unsigned int node_present_pages; + long unsigned int 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; + long unsigned int nr_reclaim_start; + struct mutex kswapd_lock; + struct task_struct *kswapd; + int kswapd_order; + enum zone_type kswapd_highest_zoneidx; + int kswapd_failures; + int kcompactd_max_order; + enum zone_type kcompactd_highest_zoneidx; + wait_queue_head_t kcompactd_wait; + struct task_struct *kcompactd; + bool proactive_compact_trigger; + long unsigned int totalreserve_pages; + long unsigned int min_unmapped_pages; + long unsigned int min_slab_pages; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct deferred_split deferred_split_queue; + unsigned int nbp_rl_start; + long unsigned int nbp_rl_nr_cand; + unsigned int nbp_threshold; + unsigned int nbp_th_start; + long unsigned int nbp_th_nr_cand; + struct lruvec __lruvec; + long unsigned int flags; + struct lru_gen_mm_walk mm_walk; + struct lru_gen_memcg memcg_lru; + long: 64; + struct cacheline_padding _pad2_; + struct per_cpu_nodestat *per_cpu_nodestats; + atomic_long_t vm_stat[49]; + struct memory_tier *memtier; + struct memory_failure_stats mf_stats; +}; + +struct pgv { + char *buffer; +}; + +struct phc_vclocks_reply_data { + struct ethnl_reply_data base; + int num; + int *index; +}; + +struct phy_attrs { + u32 bus_width; + u32 max_link_rate; + enum phy_mode mode; +}; + +struct phy_ops; + +struct phy { + struct device dev; + int id; + const struct phy_ops *ops; + struct mutex mutex; + int init_count; + int power_count; + struct phy_attrs attrs; + struct regulator *pwr; + struct dentry *debugfs; +}; + +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; + long unsigned int hs_clk_rate; + long unsigned int lp_clk_rate; + unsigned char lanes; +}; + +struct phy_axg_mipi_pcie_analog_priv { + struct phy *phy; + struct regmap *regmap; + bool dsi_configured; + bool dsi_enabled; + bool powered; + struct phy_configure_opts_mipi_dphy config; +}; + +struct phy_axg_pcie_priv { + struct phy *phy; + struct phy *analog; + struct regmap *regmap; + struct reset_control *reset; +}; + +struct phy_c45_device_ids { + u32 devices_in_package; + u32 mmds_present; + u32 device_ids[32]; +}; + +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; + long unsigned int differential_clk_rate; + unsigned int lanes; + bool is_slave; +}; + +union phy_configure_opts { + struct phy_configure_opts_mipi_dphy mipi_dphy; + struct phy_configure_opts_dp dp; + struct phy_configure_opts_lvds lvds; +}; + +struct phy_driver; + +struct phy_led_trigger; + +struct pse_control; + +struct phy_device { + struct mdio_device mdio; + const struct phy_driver *drv; + struct device_link *devlink; + u32 phyindex; + u32 phy_id; + struct phy_c45_device_ids c45_ids; + unsigned int is_c45: 1; + unsigned int is_internal: 1; + unsigned int is_pseudo_fixed_link: 1; + unsigned int is_gigabit_capable: 1; + unsigned int has_fixups: 1; + unsigned int suspended: 1; + unsigned int suspended_by_mdio_bus: 1; + unsigned int sysfs_links: 1; + unsigned int loopback_enabled: 1; + unsigned int downshifted_rate: 1; + unsigned int is_on_sfp_module: 1; + unsigned int mac_managed_pm: 1; + unsigned int wol_enabled: 1; + unsigned int autoneg: 1; + unsigned int link: 1; + unsigned int autoneg_complete: 1; + unsigned int interrupts: 1; + unsigned int irq_suspended: 1; + unsigned int irq_rerun: 1; + unsigned int default_timestamp: 1; + int rate_matching; + enum phy_state state; + u32 dev_flags; + phy_interface_t interface; + long unsigned int possible_interfaces[1]; + int speed; + int duplex; + int port; + int pause; + int asym_pause; + u8 master_slave_get; + u8 master_slave_set; + u8 master_slave_state; + long unsigned int supported[2]; + long unsigned int advertising[2]; + long unsigned int lp_advertising[2]; + long unsigned int adv_old[2]; + long unsigned int supported_eee[2]; + long unsigned int advertising_eee[2]; + long unsigned int eee_broken_modes[2]; + bool enable_tx_lpi; + bool eee_active; + struct eee_config eee_cfg; + long unsigned int host_interfaces[1]; + struct phy_led_trigger *phy_led_triggers; + unsigned int phy_num_led_triggers; + struct phy_led_trigger *last_triggered; + struct phy_led_trigger *led_link_trigger; + struct list_head leds; + int irq; + void *priv; + struct phy_package_shared *shared; + struct sk_buff *skb; + void *ehdr; + struct nlattr *nest; + struct delayed_work state_queue; + struct mutex lock; + bool sfp_bus_attached; + struct sfp_bus *sfp_bus; + struct phylink *phylink; + struct net_device *attached_dev; + struct mii_timestamper *mii_ts; + struct pse_control *psec; + u8 mdix; + u8 mdix_ctrl; + int pma_extable; + unsigned int link_down_events; + void (*phy_link_change)(struct phy_device *, bool); + void (*adjust_link)(struct net_device *); + const struct macsec_ops *macsec_ops; +}; + +struct phy_device_node { + enum phy_upstream upstream_type; + union { + struct net_device *netdev; + struct phy_device *phydev; + } upstream; + struct sfp_bus *parent_sfp_bus; + struct phy_device *phy; +}; + +struct phy_devm { + struct usb_phy *phy; + struct notifier_block *nb; +}; + +struct phy_driver { + struct mdio_driver_common mdiodrv; + u32 phy_id; + char *name; + u32 phy_id_mask; + const long unsigned int * 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 *); + unsigned int (*inband_caps)(struct phy_device *, phy_interface_t); + int (*config_inband)(struct phy_device *, unsigned int); + 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 *); + void (*get_phy_stats)(struct phy_device *, struct ethtool_eth_phy_stats *, struct ethtool_phy_stats *); + void (*get_link_stats)(struct phy_device *, struct ethtool_link_ext_stats *); + int (*update_stats)(struct phy_device *); + int (*get_sset_count)(struct phy_device *); + void (*get_strings)(struct phy_device *, u8 *); + void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); + int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); + int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); + int (*set_loopback)(struct phy_device *, bool); + int (*get_sqi)(struct phy_device *); + int (*get_sqi_max)(struct phy_device *); + int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); + int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); + int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); + int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); + int (*led_blink_set)(struct phy_device *, u8, long unsigned int *, long unsigned int *); + int (*led_hw_is_supported)(struct phy_device *, u8, long unsigned int); + int (*led_hw_control_set)(struct phy_device *, u8, long unsigned int); + int (*led_hw_control_get)(struct phy_device *, u8, long unsigned int *); + int (*led_polarity_set)(struct phy_device *, int, long unsigned int); +}; + +struct phy_fixup { + struct list_head list; + char bus_id[64]; + u32 phy_uid; + u32 phy_uid_mask; + int (*run)(struct phy_device *); +}; + +struct phy_led { + struct list_head list; + struct phy_device *phydev; + struct led_classdev led_cdev; + u8 index; +}; + +struct phy_led_trigger { + struct led_trigger trigger; + char name[76]; + unsigned int speed; +}; + +struct phy_link_topology { + struct xarray phys; + u32 next_phy_index; +}; + +struct phy_lookup { + struct list_head node; + const char *dev_id; + const char *con_id; + struct phy *phy; +}; + +struct phy_ops { + int (*init)(struct phy *); + int (*exit)(struct phy *); + int (*power_on)(struct phy *); + int (*power_off)(struct phy *); + int (*set_mode)(struct phy *, enum phy_mode, int); + int (*set_media)(struct phy *, enum phy_media); + int (*set_speed)(struct phy *, int); + int (*configure)(struct phy *, union phy_configure_opts *); + int (*validate)(struct phy *, enum phy_mode, int, union phy_configure_opts *); + int (*reset)(struct phy *); + int (*calibrate)(struct phy *); + int (*connect)(struct phy *, int); + int (*disconnect)(struct phy *, int); + void (*release)(struct phy *); + struct module *owner; +}; + +struct phy_package_shared { + u8 base_addr; + struct device_node *np; + refcount_t refcnt; + long unsigned int flags; + size_t priv_size; + void *priv; +}; + +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 phy_provider { + struct device *dev; + struct device_node *children; + struct module *owner; + struct list_head list; + struct phy * (*of_xlate)(struct device *, const struct of_phandle_args *); +}; + +struct phy_req_info { + struct ethnl_req_info base; + struct phy_device_node *pdn; +}; + +struct phy_setting { + u32 speed; + u8 duplex; + u8 bit; +}; + +struct phy_tdr_config { + u32 first; + u32 last; + u32 step; + s8 pair; +}; + +struct phylib_stubs { + int (*hwtstamp_get)(struct phy_device *, struct kernel_hwtstamp_config *); + int (*hwtstamp_set)(struct phy_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); + void (*get_phy_stats)(struct phy_device *, struct ethtool_eth_phy_stats *, struct ethtool_phy_stats *); + void (*get_link_ext_stats)(struct phy_device *, struct ethtool_link_ext_stats *); +}; + +struct phylink_link_state { + long unsigned int advertising[2]; + long unsigned int lp_advertising[2]; + phy_interface_t interface; + int speed; + int duplex; + int pause; + int rate_matching; + unsigned int link: 1; + unsigned int an_complete: 1; +}; + +struct phylink { + struct net_device *netdev; + const struct phylink_mac_ops *mac_ops; + struct phylink_config *config; + struct phylink_pcs *pcs; + struct device *dev; + unsigned int old_link_state: 1; + long unsigned int phylink_disable_state; + struct phy_device *phydev; + phy_interface_t link_interface; + u8 cfg_link_an_mode; + u8 req_link_an_mode; + u8 act_link_an_mode; + u8 link_port; + long unsigned int supported[2]; + long unsigned int supported_lpi[2]; + struct phylink_link_state link_config; + phy_interface_t cur_interface; + struct gpio_desc *link_gpio; + unsigned int link_irq; + struct timer_list link_poll; + void (*get_fixed_state)(struct net_device *, struct phylink_link_state *); + struct mutex state_mutex; + struct phylink_link_state phy_state; + unsigned int phy_ib_mode; + struct work_struct resolve; + unsigned int pcs_neg_mode; + unsigned int pcs_state; + bool link_failed; + bool suspend_link_up; + bool major_config_failed; + bool mac_supports_eee_ops; + bool mac_supports_eee; + bool phy_enable_tx_lpi; + bool mac_enable_tx_lpi; + bool mac_tx_clk_stop; + u32 mac_tx_lpi_timer; + u8 mac_rx_clk_stop_blocked; + struct sfp_bus *sfp_bus; + bool sfp_may_have_phy; + long unsigned int sfp_interfaces[1]; + long unsigned int sfp_support[2]; + u8 sfp_port; + struct eee_config eee_cfg; +}; + +struct phylink_mac_ops { + long unsigned int (*mac_get_caps)(struct phylink_config *, phy_interface_t); + struct phylink_pcs * (*mac_select_pcs)(struct phylink_config *, phy_interface_t); + int (*mac_prepare)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_config)(struct phylink_config *, unsigned int, const struct phylink_link_state *); + int (*mac_finish)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_link_down)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_link_up)(struct phylink_config *, struct phy_device *, unsigned int, phy_interface_t, int, int, bool, bool); + void (*mac_disable_tx_lpi)(struct phylink_config *); + int (*mac_enable_tx_lpi)(struct phylink_config *, u32, bool); +}; + +struct phylink_pcs_ops { + int (*pcs_validate)(struct phylink_pcs *, long unsigned int *, const struct phylink_link_state *); + unsigned int (*pcs_inband_caps)(struct phylink_pcs *, phy_interface_t); + int (*pcs_enable)(struct phylink_pcs *); + void (*pcs_disable)(struct phylink_pcs *); + void (*pcs_pre_config)(struct phylink_pcs *, phy_interface_t); + int (*pcs_post_config)(struct phylink_pcs *, phy_interface_t); + void (*pcs_get_state)(struct phylink_pcs *, unsigned int, struct phylink_link_state *); + int (*pcs_config)(struct phylink_pcs *, unsigned int, phy_interface_t, const long unsigned int *, bool); + void (*pcs_an_restart)(struct phylink_pcs *); + void (*pcs_link_up)(struct phylink_pcs *, unsigned int, phy_interface_t, int, int); + int (*pcs_pre_init)(struct phylink_pcs *); +}; + +struct phys_vec { + phys_addr_t paddr; + u32 len; +}; + +struct physdev_dbgp_op { + uint8_t op; + uint8_t bus; + union { + struct physdev_pci_device pci; + } u; +}; + +struct physdev_eoi { + uint32_t irq; +}; + +struct physdev_get_free_pirq { + int type; + uint32_t pirq; +}; + +struct physdev_irq { + uint32_t irq; + uint32_t vector; +}; + +struct physdev_irq_status_query { + uint32_t irq; + uint32_t flags; +}; + +struct physdev_manage_pci { + uint8_t bus; + uint8_t devfn; +}; + +struct physdev_manage_pci_ext { + uint8_t bus; + uint8_t devfn; + unsigned int is_extfn; + unsigned int is_virtfn; + struct { + uint8_t bus; + uint8_t devfn; + } physfn; +}; + +struct physdev_map_pirq { + domid_t domid; + int type; + int index; + int pirq; + int bus; + int devfn; + int entry_nr; + uint64_t table_base; +}; + +struct physdev_pci_device_add { + uint16_t seg; + uint8_t bus; + uint8_t devfn; + uint32_t flags; + struct { + uint8_t bus; + uint8_t devfn; + } physfn; + uint32_t optarr[0]; +}; + +struct physdev_unmap_pirq { + domid_t domid; + int pirq; +}; + +struct upid { + int nr; + struct pid_namespace *ns; +}; + +struct pid { + refcount_t count; + unsigned int level; + spinlock_t lock; + struct dentry *stashed; + u64 ino; + struct rb_node pidfs_node; + struct hlist_head tasks[4]; + struct hlist_head inodes; + wait_queue_head_t wait_pidfd; + struct callback_head rcu; + struct upid numbers[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 *); + int lsmid; +}; + +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 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; + int pid_max; + struct pid_namespace *parent; + struct fs_pin *bacct; + struct user_namespace *user_ns; + struct ucounts *ucounts; + int reboot; + struct ns_common ns; + struct work_struct work; + struct ctl_table_set set; + struct ctl_table_header *sysctls; + int memfd_noexec_scope; +}; + +struct pidfd_info { + __u64 mask; + __u64 cgroupid; + __u32 pid; + __u32 tgid; + __u32 ppid; + __u32 ruid; + __u32 rgid; + __u32 euid; + __u32 egid; + __u32 suid; + __u32 sgid; + __u32 fsuid; + __u32 fsgid; + __u32 spare0[1]; +}; + +struct pids_cgroup { + struct cgroup_subsys_state css; + atomic64_t counter; + atomic64_t limit; + int64_t watermark; + struct cgroup_file events_file; + struct cgroup_file events_local_file; + atomic64_t events[2]; + atomic64_t events_local[2]; +}; + +struct pimreghdr { + __u8 type; + __u8 reserved; + __be16 csum; + __be32 flags; +}; + +struct pin_config_item { + const enum pin_config_param param; + const char * const display; + const char * const format; + bool has_arg; +}; + +struct pinctrl_setting_mux; + +struct pin_desc { + struct pinctrl_dev *pctldev; + const char *name; + bool dynamic_name; + void *drv_data; + unsigned int mux_usecount; + const char *mux_owner; + const struct pinctrl_setting_mux *mux_setting; + const char *gpio_owner; + struct mutex mux_lock; +}; + +struct pinconf_generic_params { + const char * const property; + enum pin_config_param param; + u32 default_value; +}; + +struct pinconf_ops { + bool is_generic; + int (*pin_config_get)(struct pinctrl_dev *, unsigned int, long unsigned int *); + int (*pin_config_set)(struct pinctrl_dev *, unsigned int, long unsigned int *, unsigned int); + int (*pin_config_group_get)(struct pinctrl_dev *, unsigned int, long unsigned int *); + int (*pin_config_group_set)(struct pinctrl_dev *, unsigned int, long unsigned int *, unsigned int); + void (*pin_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + void (*pin_config_group_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + void (*pin_config_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, long unsigned int); +}; + +struct pinctrl { + struct list_head node; + struct device *dev; + struct list_head states; + struct pinctrl_state *state; + struct list_head dt_maps; + struct kref users; +}; + +struct pinctrl_dev { + struct list_head node; + struct pinctrl_desc *desc; + struct xarray pin_desc_tree; + struct xarray pin_group_tree; + unsigned int num_groups; + struct xarray pin_function_tree; + unsigned int num_functions; + struct list_head gpio_ranges; + struct device *dev; + struct module *owner; + void *driver_data; + struct pinctrl *p; + struct pinctrl_state *hog_default; + struct pinctrl_state *hog_sleep; + struct mutex mutex; + struct dentry *device_root; +}; + +struct pinctrl_map; + +struct pinctrl_dt_map { + struct list_head node; + struct pinctrl_dev *pctldev; + struct pinctrl_map *map; + unsigned int num_maps; +}; + +struct pinctrl_map_mux { + const char *group; + const char *function; +}; + +struct pinctrl_map_configs { + const char *group_or_pin; + long unsigned int *configs; + unsigned int num_configs; +}; + +struct pinctrl_map { + const char *dev_name; + const char *name; + enum pinctrl_map_type type; + const char *ctrl_dev_name; + union { + struct pinctrl_map_mux mux; + struct pinctrl_map_configs configs; + } data; +}; + +struct pinctrl_maps { + struct list_head node; + const struct pinctrl_map *maps; + unsigned int num_maps; +}; + +struct pinctrl_ops { + int (*get_groups_count)(struct pinctrl_dev *); + const char * (*get_group_name)(struct pinctrl_dev *, unsigned int); + int (*get_group_pins)(struct pinctrl_dev *, unsigned int, const unsigned int **, unsigned int *); + void (*pin_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + int (*dt_node_to_map)(struct pinctrl_dev *, struct device_node *, struct pinctrl_map **, unsigned int *); + void (*dt_free_map)(struct pinctrl_dev *, struct pinctrl_map *, unsigned int); +}; + +struct pinctrl_setting_mux { + unsigned int group; + unsigned int func; +}; + +struct pinctrl_setting_configs { + unsigned int group_or_pin; + long unsigned int *configs; + unsigned int num_configs; +}; + +struct pinctrl_setting { + struct list_head node; + enum pinctrl_map_type type; + struct pinctrl_dev *pctldev; + const char *dev_name; + union { + struct pinctrl_setting_mux mux; + struct pinctrl_setting_configs configs; + } data; +}; + +struct pinctrl_state { + struct list_head node; + const char *name; + struct list_head settings; +}; + +struct ping_iter_state { + struct seq_net_private p; + int bucket; + sa_family_t family; +}; + +struct ping_table { + struct hlist_head hash[64]; + spinlock_t lock; +}; + +struct pingfakehdr { + struct icmphdr icmph; + struct msghdr *msg; + sa_family_t family; + __wsum wcheck; +}; + +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 pinmux_bias_reg { + u32 puen; + u32 pud; + const u16 pins[32]; +}; + +struct pinmux_cfg_reg { + u32 reg; + u8 reg_width; + u8 field_width; + const u16 *enum_ids; + const s8 *var_field_width; +}; + +struct pinmux_data_reg { + u32 reg; + u8 reg_width; + const u16 *enum_ids; +}; + +struct pinmux_drive_reg_field { + u16 pin; + u8 offset; + u8 size; +}; + +struct pinmux_drive_reg { + u32 reg; + const struct pinmux_drive_reg_field fields[10]; +}; + +struct pinmux_ioctrl_reg { + u32 reg; +}; + +struct pinmux_ops { + int (*request)(struct pinctrl_dev *, unsigned int); + int (*free)(struct pinctrl_dev *, unsigned int); + int (*get_functions_count)(struct pinctrl_dev *); + const char * (*get_function_name)(struct pinctrl_dev *, unsigned int); + int (*get_function_groups)(struct pinctrl_dev *, unsigned int, const char * const **, unsigned int *); + int (*set_mux)(struct pinctrl_dev *, unsigned int, unsigned int); + int (*gpio_request_enable)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); + void (*gpio_disable_free)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); + int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); + bool strict; +}; + +struct pinmux_range { + u16 begin; + u16 end; + u16 force; +}; + +struct pipe_buf_operations { + int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *); + void (*release)(struct pipe_inode_info *, struct pipe_buffer *); + bool (*try_steal)(struct pipe_inode_info *, struct pipe_buffer *); + bool (*get)(struct pipe_inode_info *, struct pipe_buffer *); +}; + +struct pipe_buffer { + struct page *page; + unsigned int offset; + unsigned int len; + const struct pipe_buf_operations *ops; + unsigned int flags; + long unsigned int private; +}; + +union pipe_index { + long unsigned int head_tail; + struct { + pipe_index_t head; + pipe_index_t tail; + }; +}; + +struct watch_queue; + +struct pipe_inode_info { + struct mutex mutex; + wait_queue_head_t rd_wait; + wait_queue_head_t wr_wait; + union { + long unsigned int head_tail; + struct { + pipe_index_t head; + pipe_index_t 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; + bool note_loss; + struct page *tmp_page; + struct fasync_struct *fasync_readers; + struct fasync_struct *fasync_writers; + struct pipe_buffer *bufs; + struct user_struct *user; + struct watch_queue *watch_queue; +}; + +struct pipe_wait { + struct trace_iterator *iter; + int wait_index; +}; + +struct pkcs1pad_ctx { + struct crypto_akcipher *child; + unsigned int key_size; +}; + +struct pkcs1pad_inst_ctx { + struct crypto_akcipher_spawn spawn; +}; + +struct pkcs1pad_request { + struct scatterlist in_sg[2]; + struct scatterlist out_sg[1]; + uint8_t *in_buf; + uint8_t *out_buf; + struct akcipher_request child_req; +}; + +struct 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 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; + long unsigned int 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 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; + long unsigned int aa_set; + time64_t signing_time; + struct public_key_signature *sig; +}; + +struct pkey_security_struct { + u64 subnet_prefix; + u16 pkey; + u32 sid; +}; + +struct pkvm_hyp_vcpu { + struct kvm_vcpu vcpu; + struct kvm_vcpu *host_vcpu; + struct pkvm_hyp_vcpu **loaded_hyp_vcpu; +}; + +struct pkvm_hyp_vm { + struct kvm kvm; + struct kvm *host_kvm; + struct kvm_pgtable pgt; + struct kvm_pgtable_mm_ops mm_ops; + struct hyp_pool pool; + hyp_spinlock_t lock; + unsigned int nr_vcpus; + struct pkvm_hyp_vcpu *vcpus[0]; +}; + +struct pkvm_mapping { + struct rb_node node; + u64 gfn; + u64 pfn; +}; + +struct pl011_dmabuf { + dma_addr_t dma; + size_t len; + char *buf; +}; + +struct pl011_dmarx_data { + struct dma_chan *chan; + struct completion complete; + bool use_buf_b; + struct pl011_dmabuf dbuf_a; + struct pl011_dmabuf dbuf_b; + dma_cookie_t cookie; + bool running; + struct timer_list timer; + unsigned int last_residue; + long unsigned int last_jiffies; + bool auto_poll_rate; + unsigned int poll_rate; + unsigned int poll_timeout; +}; + +struct pl011_dmatx_data { + struct dma_chan *chan; + dma_addr_t dma; + size_t len; + char *buf; + bool queued; +}; + +struct pl061_context_save_regs { + u8 gpio_data; + u8 gpio_dir; + u8 gpio_is; + u8 gpio_ibe; + u8 gpio_iev; + u8 gpio_ie; +}; + +struct pl061 { + raw_spinlock_t lock; + void *base; + struct gpio_chip gc; + int parent_irq; + struct pl061_context_save_regs csave_regs; +}; + +struct pl08x_bus_data { + dma_addr_t addr; + u8 maxwidth; + u8 buswidth; +}; + +struct pl08x_channel_data { + const char *bus_id; + int min_signal; + int max_signal; + u32 muxval; + dma_addr_t addr; + bool single; + u8 periph_buses; +}; + +struct virt_dma_desc; + +struct virt_dma_chan { + struct dma_chan chan; + struct tasklet_struct task; + void (*desc_free)(struct virt_dma_desc *); + spinlock_t lock; + struct list_head desc_allocated; + struct list_head desc_submitted; + struct list_head desc_issued; + struct list_head desc_completed; + struct list_head desc_terminated; + struct virt_dma_desc *cyclic; +}; + +struct pl08x_phy_chan; + +struct pl08x_txd; + +struct pl08x_driver_data; + +struct pl08x_dma_chan { + struct virt_dma_chan vc; + struct pl08x_phy_chan *phychan; + const char *name; + struct pl08x_channel_data *cd; + struct dma_slave_config cfg; + struct pl08x_txd *at; + struct pl08x_driver_data *host; + enum pl08x_dma_chan_state state; + bool slave; + int signal; + unsigned int mux_use; + long unsigned int waiting_at; +}; + +struct vendor_data; + +struct pl08x_platform_data; + +struct pl08x_driver_data { + struct dma_device slave; + struct dma_device memcpy; + bool has_slave; + void *base; + struct amba_device *adev; + const struct vendor_data *vd; + struct pl08x_platform_data *pd; + struct pl08x_phy_chan *phy_chans; + struct dma_pool *pool; + u8 lli_buses; + u8 mem_buses; + u8 lli_words; +}; + +struct pl08x_lli_build_data { + struct pl08x_txd *txd; + struct pl08x_bus_data srcbus; + struct pl08x_bus_data dstbus; + size_t remainder; + u32 lli_bus; +}; + +struct pl08x_phy_chan { + unsigned int id; + void *base; + void *reg_config; + void *reg_control; + void *reg_src; + void *reg_dst; + void *reg_lli; + void *reg_busy; + spinlock_t lock; + struct pl08x_dma_chan *serving; + bool locked; + bool ftdmac020; + bool pl080s; +}; + +struct pl08x_platform_data { + struct pl08x_channel_data *slave_channels; + unsigned int num_slave_channels; + enum pl08x_burst_size memcpy_burst_size; + enum pl08x_bus_width memcpy_bus_width; + bool memcpy_prot_buff; + bool memcpy_prot_cache; + int (*get_xfer_signal)(const struct pl08x_channel_data *); + void (*put_xfer_signal)(const struct pl08x_channel_data *, int); + u8 lli_buses; + u8 mem_buses; + const struct dma_slave_map *slave_map; + int slave_map_len; +}; + +struct pl08x_sg { + dma_addr_t src_addr; + dma_addr_t dst_addr; + size_t len; + struct list_head node; +}; + +struct virt_dma_desc { + struct dma_async_tx_descriptor tx; + struct dmaengine_result tx_result; + struct list_head node; +}; + +struct pl08x_txd { + struct virt_dma_desc vd; + struct list_head dsg_list; + dma_addr_t llis_bus; + u32 *llis_va; + u32 cctl; + u32 ccfg; + bool done; + bool cyclic; +}; + +struct xilinx_msi { + struct irq_domain *msi_domain; + long unsigned int *bitmap; + struct irq_domain *dev_domain; + struct mutex lock; + int irq_msi0; + int irq_msi1; +}; + +struct xilinx_pl_dma_variant; + +struct pl_dma_pcie { + struct device *dev; + void *reg_base; + void *cfg_base; + int irq; + struct pci_config_window *cfg; + phys_addr_t phys_reg_base; + struct irq_domain *intx_domain; + struct irq_domain *pldma_domain; + struct list_head resources; + struct xilinx_msi msi; + int intx_irq; + raw_spinlock_t lock; + const struct xilinx_pl_dma_variant *variant; +}; + +struct plat_sci_port_ops; + +struct plat_sci_port { + unsigned int type; + upf_t flags; + unsigned int sampling_rate; + unsigned int scscr; + unsigned char regtype; + struct plat_sci_port_ops *ops; +}; + +struct plat_sci_port_ops { + void (*init_pins)(struct uart_port *, unsigned int); +}; + +struct plat_sci_reg { + u8 offset; + u8 size; +}; + +struct plat_serial8250_port { + long unsigned int iobase; + void *membase; + resource_size_t mapbase; + resource_size_t mapsize; + unsigned int uartclk; + unsigned int irq; + long unsigned int irqflags; + void *private_data; + unsigned char regshift; + unsigned char iotype; + unsigned char hub6; + unsigned char has_sysrq; + unsigned int type; + upf_t flags; + u16 bugs; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); +}; + +struct platform_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; + +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 platform_driver { + int (*probe)(struct platform_device *); + void (*remove)(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 platform_object { + struct platform_device pdev; + char name[0]; +}; + +struct platform_s2idle_ops { + int (*begin)(void); + int (*prepare)(void); + int (*prepare_late)(void); + void (*check)(void); + bool (*wake)(void); + void (*restore_early)(void); + void (*restore)(void); + void (*end)(void); +}; + +struct platform_suspend_ops { + int (*valid)(suspend_state_t); + int (*begin)(suspend_state_t); + int (*prepare)(void); + int (*prepare_late)(void); + int (*enter)(suspend_state_t); + void (*wake)(void); + void (*finish)(void); + bool (*suspend_again)(void); + void (*end)(void); + void (*recover)(void); +}; + +struct plca_reply_data { + struct ethnl_reply_data base; + struct phy_plca_cfg plca_cfg; + struct phy_plca_status plca_st; +}; + +struct plda_event { + int (*request_event_irq)(struct plda_pcie_rp *, int, int); + int intx_event; + int msi_event; +}; + +struct plda_event_ops { + u32 (*get_events)(struct plda_pcie_rp *); +}; + +struct plda_pcie_host_ops { + int (*host_init)(struct plda_pcie_rp *); + void (*host_deinit)(struct plda_pcie_rp *); +}; + +struct pldm_pci_record_id { + int vendor; + int device; + int subsystem_vendor; + int subsystem_device; +}; + +struct pldmfw_ops; + +struct pldmfw { + const struct pldmfw_ops *ops; + struct device *dev; + u16 component_identifier; + enum pldmfw_update_mode mode; +}; + +struct pldmfw_component { + struct list_head entry; + u16 classification; + u16 identifier; + u16 options; + u16 activation_method; + u32 comparison_stamp; + u32 component_size; + const u8 *component_data; + const u8 *version_string; + u8 version_type; + u8 version_len; + u8 index; +}; + +struct pldmfw_desc_tlv { + struct list_head entry; + const u8 *data; + u16 type; + u16 size; +}; + +struct pldmfw_record; + +struct pldmfw_ops { + bool (*match_record)(struct pldmfw *, struct pldmfw_record *); + int (*send_package_data)(struct pldmfw *, const u8 *, u16); + int (*send_component_table)(struct pldmfw *, struct pldmfw_component *, u8); + int (*flash_component)(struct pldmfw *, struct pldmfw_component *); + int (*finalize_update)(struct pldmfw *); +}; + +struct pldmfw_priv { + struct pldmfw *context; + const struct firmware *fw; + size_t offset; + struct list_head records; + struct list_head components; + const struct __pldm_header *header; + u16 total_header_size; + u16 component_bitmap_len; + u16 bitmap_size; + u16 component_count; + const u8 *component_start; + const u8 *record_start; + u8 record_count; + u32 header_crc; + struct pldmfw_record *matching_record; +}; + +struct pldmfw_record { + struct list_head entry; + struct list_head descs; + const u8 *version_string; + u8 version_type; + u8 version_len; + u16 package_data_len; + u32 device_update_flags; + const u8 *package_data; + long unsigned int *component_bitmap; + u16 component_bitmap_len; +}; + +struct pll5_mux_hw_data { + struct clk_hw hw; + u32 conf; + long unsigned int rate; + struct rzg2l_cpg_priv *priv; +}; + +struct pll_clk { + struct clk_hw hw; + long unsigned int default_rate; + unsigned int conf; + unsigned int type; + void *base; + struct rzg2l_cpg_priv *priv; +}; + +struct pll_clk___2 { + struct rzv2h_cpg_priv *priv; + void *base; + struct clk_hw hw; + unsigned int conf; + unsigned int type; +}; + +struct pll_config { + u16 l; + u32 m; + u32 n; + u32 vco_val; + u32 vco_mask; + u32 pre_div_val; + u32 pre_div_mask; + u32 post_div_val; + u32 post_div_mask; + u32 mn_ena_mask; + u32 main_output_mask; + u32 aux_output_mask; +}; + +struct pll_freq_tbl { + long unsigned int freq; + u16 l; + u16 m; + u16 n; + u32 ibits; +}; + +struct pll_mult_range { + unsigned int min; + unsigned int max; +}; + +struct pll_out_data { + char *div_name; + char *pll_out_name; + u32 offset; + int clk_id; + u8 div_shift; + u8 div_flags; + u8 rst_shift; + spinlock_t *lock; +}; + +struct pll_params_table { + unsigned int m; + unsigned int n; +}; + +struct pll_vco { + long unsigned int min_freq; + long unsigned int max_freq; + u32 val; +}; + +struct plt_entry { + __le32 adrp; + __le32 add; + __le32 br; +}; + +struct pm860x_backlight_pdata { + int pwm; + int iset; +}; + +struct pm860x_chip { + struct device *dev; + struct mutex irq_lock; + struct mutex osc_lock; + struct i2c_client *client; + struct i2c_client *companion; + struct regmap *regmap; + struct regmap *regmap_companion; + int buck3_double; + int companion_addr; + short unsigned int osc_vote; + int id; + int irq_mode; + int irq_base; + int core_irq; + unsigned char chip_version; + unsigned char osc_status; + unsigned int wakeup_flag; +}; + +struct pm860x_irq_data { + int reg; + int mask_reg; + int enable; + int offs; +}; + +struct pm860x_led_pdata { + int iset; +}; + +struct pm860x_rtc_pdata; + +struct pm860x_touch_pdata; + +struct pm860x_power_pdata; + +struct pm860x_platform_data { + struct pm860x_backlight_pdata *backlight; + struct pm860x_led_pdata *led; + struct pm860x_rtc_pdata *rtc; + struct pm860x_touch_pdata *touch; + struct pm860x_power_pdata *power; + struct regulator_init_data *buck1; + struct regulator_init_data *buck2; + struct regulator_init_data *buck3; + struct regulator_init_data *ldo1; + struct regulator_init_data *ldo2; + struct regulator_init_data *ldo3; + struct regulator_init_data *ldo4; + struct regulator_init_data *ldo5; + struct regulator_init_data *ldo6; + struct regulator_init_data *ldo7; + struct regulator_init_data *ldo8; + struct regulator_init_data *ldo9; + struct regulator_init_data *ldo10; + struct regulator_init_data *ldo12; + struct regulator_init_data *ldo_vibrator; + struct regulator_init_data *ldo14; + struct charger_desc *chg_desc; + int companion_addr; + int i2c_port; + int irq_mode; + int irq_base; + int num_leds; + int num_backlights; +}; + +struct pm860x_power_pdata { + int max_capacity; + int resistor; +}; + +struct pm860x_rtc_pdata { + int (*sync)(unsigned int); + int vrtc; +}; + +struct pm860x_touch_pdata { + int gpadc_prebias; + int slot_cycle; + int off_scale; + int sw_cal; + int tsi_prebias; + int pen_prebias; + int pen_prechg; + int res_x; + long unsigned int flags; +}; + +struct pm886_chip { + struct i2c_client *client; + unsigned int chip_id; + struct regmap *regmap; +}; + +struct pm_api_feature_data { + u32 pm_api_id; + int feature_status; + struct hlist_node hentry; +}; + +struct pm_clk_notifier_block { + struct notifier_block nb; + struct dev_pm_domain *pm_domain; + char *con_ids[0]; +}; + +struct pm_clock_entry { + struct list_head node; + char *con_id; + struct clk *clk; + enum pce_status status; + bool enabled_when_prepared; +}; + +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; + long unsigned int id_bitmap[4]; +}; + +struct pm_subsys_data { + spinlock_t lock; + unsigned int refcount; + unsigned int clock_op_might_sleep; + struct mutex clock_mutex; + struct list_head clock_list; + struct pm_domain_data *domain_data; +}; + +struct pm_vt_switch { + struct list_head head; + struct device *dev; + bool required; +}; + +struct pmc_clk { + struct clk_hw hw; + long unsigned int offs; + u32 mux_shift; + u32 force_en_shift; +}; + +struct pmc_clk_gate { + struct clk_hw hw; + long unsigned int offs; + u32 shift; +}; + +struct pmc_clk_init_data { + char *name; + const char * const *parents; + int num_parents; + int clk_id; + u8 mux_shift; + u8 force_en_shift; +}; + +struct pmu_event_list { + raw_spinlock_t lock; + struct list_head list; +}; + +struct pmu_hw_events { + struct perf_event *events[33]; + long unsigned int used_mask[1]; + struct arm_pmu *percpu_pmu; + int irq; +}; + +struct pmu_irq_ops { + void (*enable_pmuirq)(unsigned int); + void (*disable_pmuirq)(unsigned int); + void (*free_pmuirq)(unsigned int, int, void *); +}; + +typedef int (*armpmu_init_fn)(struct arm_pmu *); + +struct pmu_probe_info { + unsigned int cpuid; + unsigned int mask; + armpmu_init_fn init; +}; + +struct pneigh_entry { + struct pneigh_entry *next; + possible_net_t net; + struct net_device *dev; + netdevice_tracker dev_tracker; + u32 flags; + u8 protocol; + u32 key[0]; +}; + +struct pnfs_commit_ops; + +struct pnfs_ds_commit_info { + struct list_head commits; + unsigned int nwritten; + unsigned int ncommitting; + const struct pnfs_commit_ops *ops; +}; + +struct pnp_protocol; + +struct pnp_id; + +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_card_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; + struct { + __u8 id[8]; + } devs[8]; +}; + +struct pnp_device_id; + +struct pnp_driver { + const char *name; + const struct pnp_device_id *id_table; + unsigned int flags; + int (*probe)(struct pnp_dev *, const struct pnp_device_id *); + void (*remove)(struct pnp_dev *); + void (*shutdown)(struct pnp_dev *); + int (*suspend)(struct pnp_dev *, pm_message_t); + int (*resume)(struct pnp_dev *); + struct device_driver driver; +}; + +struct pnp_card_link; + +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_link { + struct pnp_card *card; + struct pnp_card_driver *driver; + void *driver_data; + pm_message_t pm_state; +}; + +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_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; +}; + +struct pnp_dma { + unsigned char map; + unsigned char flags; +}; + +struct pnp_fixup { + char id[8]; + void (*quirk_function)(struct pnp_dev *); +}; + +struct pnp_id { + char id[8]; + struct pnp_id *next; +}; + +struct pnp_info_buffer { + char *buffer; + char *curr; + long unsigned int size; + long unsigned int len; + int stop; + int error; +}; + +typedef struct pnp_info_buffer pnp_info_buffer_t; + +struct pnp_irq { + pnp_irq_mask_t 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_port { + 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; + long unsigned int type; + union { + struct pnp_port port; + struct pnp_irq irq; + struct pnp_dma dma; + struct pnp_mem mem; + } u; +}; + +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_resource { + struct list_head list; + struct resource res; +}; + +struct poe_context { + struct _aarch64_ctx head; + __u64 por_el0; +}; + +struct policy_file; + +struct policy_data { + struct policydb *p; + struct policy_file *fp; +}; + +struct policy_file { + char *data; + size_t len; +}; + +struct policy_load_memory { + size_t len; + void *data; +}; + +struct role_datum; + +struct user_datum; + +struct type_datum; + +struct role_allow; + +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 policydb_compat_info { + unsigned int version; + unsigned int sym_num; + unsigned int ocon_num; +}; + +struct pollfd { + int fd; + short int events; + short int revents; +}; + +struct poll_list { + struct poll_list *next; + unsigned int len; + struct pollfd entries[0]; +}; + +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_table_page *next; + struct poll_table_entry *entry; + struct poll_table_entry entries[0]; +}; + +struct poll_wqueues { + poll_table pt; + struct poll_table_page *table; + struct task_struct *polling_task; + int triggered; + int error; + int inline_index; + struct poll_table_entry inline_entries[9]; +}; + +struct worker_pool; + +struct pool_workqueue { + struct worker_pool *pool; + struct workqueue_struct *wq; + int work_color; + int flush_color; + int refcnt; + int nr_in_flight[16]; + bool plugged; + int nr_active; + struct list_head inactive_works; + struct list_head pending_node; + struct list_head pwqs_node; + struct list_head mayday_node; + u64 stats[8]; + struct kthread_work release_work; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct port_stats { + long unsigned int bytes_sent; + long unsigned int bytes_received; + long unsigned int bytes_discarded; +}; + +struct ports_device; + +struct port_buffer; + +struct virtqueue; + +struct port { + struct list_head list; + struct ports_device *portdev; + struct port_buffer *inbuf; + spinlock_t inbuf_lock; + spinlock_t outvq_lock; + struct virtqueue *in_vq; + struct virtqueue *out_vq; + struct dentry *debugfs_file; + struct port_stats stats; + struct console___2 cons; + struct cdev *cdev; + struct device *dev; + struct kref kref; + wait_queue_head_t waitqueue; + char *name; + struct fasync_struct *async_queue; + u32 id; + bool outvq_full; + bool host_connected; + bool guest_connected; +}; + +struct 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 port_identity { + struct clock_identity clock_identity; + __be16 port_number; +}; + +struct portdrv_service_data { + struct pcie_port_service_driver *drv; + struct device *dev; + u32 service; +}; + +struct virtio_console_control { + __virtio32 id; + __virtio16 event; + __virtio16 value; +}; + +struct virtio_device; + +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 ports_driver_data { + struct dentry *debugfs_dir; + struct list_head portdevs; + struct list_head consoles; +}; + +struct posix_acl_entry { + short int e_tag; + short unsigned int e_perm; + union { + kuid_t e_uid; + kgid_t e_gid; + }; +}; + +struct posix_acl { + refcount_t a_refcount; + unsigned int a_count; + struct callback_head a_rcu; + struct posix_acl_entry a_entries[0]; +}; + +struct posix_acl_xattr_entry { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; +}; + +struct posix_acl_xattr_header { + __le32 a_version; +}; + +struct posix_clock; + +struct posix_clock_context; + +struct posix_clock_operations { + struct module *owner; + int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *); + int (*clock_gettime)(struct posix_clock *, struct timespec64 *); + int (*clock_getres)(struct posix_clock *, struct timespec64 *); + int (*clock_settime)(struct posix_clock *, const struct timespec64 *); + long int (*ioctl)(struct posix_clock_context *, unsigned int, long unsigned int); + int (*open)(struct posix_clock_context *, fmode_t); + __poll_t (*poll)(struct posix_clock_context *, struct file *, poll_table *); + int (*release)(struct posix_clock_context *); + ssize_t (*read)(struct posix_clock_context *, uint, char *, size_t); +}; + +struct posix_clock { + struct posix_clock_operations ops; + struct cdev cdev; + struct device *dev; + struct rw_semaphore rwsem; + bool zombie; +}; + +struct posix_clock_context { + struct posix_clock *clk; + void *private_clkdata; +}; + +struct posix_clock_desc { + struct file *fp; + struct posix_clock *clk; +}; + +struct 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; + struct mutex mutex; + unsigned int scheduled; +}; + +struct posix_msg_tree_node { + struct rb_node rb_node; + struct list_head msg_list; + int priority; +}; + +struct postprocess_bh_ctx { + struct work_struct work; + struct buffer_head *bh; +}; + +struct power_actor { + u32 req_power; + u32 max_power; + u32 granted_power; + u32 extra_actor_power; + u32 weighted_req_power; +}; + +struct thermal_trip; + +struct power_allocator_params { + bool allocated_tzp; + bool update_cdevs; + s64 err_integral; + s32 prev_err; + u32 sustainable_power; + const struct thermal_trip *trip_switch_on; + const struct thermal_trip *trip_max; + int total_weight; + unsigned int num_actors; + unsigned int buffer_size; + struct power_actor *power; +}; + +struct power_dom_info { + bool state_set_sync; + bool state_set_async; + bool state_set_notify; + char name[64]; +}; + +struct power_supply_battery_info; + +struct power_supply { + const struct power_supply_desc *desc; + char **supplied_to; + size_t num_supplicants; + char **supplied_from; + size_t num_supplies; + struct device_node *of_node; + void *drv_data; + struct device dev; + struct work_struct changed_work; + struct delayed_work deferred_register_work; + spinlock_t changed_lock; + bool changed; + bool update_groups; + bool initialized; + bool removing; + atomic_t use_cnt; + struct power_supply_battery_info *battery_info; + struct rw_semaphore extensions_sem; + struct list_head extensions; + struct thermal_zone_device *tzd; + struct thermal_cooling_device *tcd; + struct led_trigger *trig; + struct led_trigger *charging_trig; + struct led_trigger *full_trig; + struct led_trigger *charging_blink_full_solid_trig; + struct led_trigger *charging_orange_full_green_trig; +}; + +struct power_supply_attr { + const char *prop_name; + char attr_name[31]; + struct device_attribute dev_attr; + const char * const *text_values; + int text_values_len; +}; + +struct power_supply_maintenance_charge_table; + +struct power_supply_battery_ocv_table; + +struct power_supply_resistance_temp_table; + +struct power_supply_vbat_ri_table; + +struct power_supply_battery_info { + unsigned int technology; + int energy_full_design_uwh; + int charge_full_design_uah; + int voltage_min_design_uv; + int voltage_max_design_uv; + int tricklecharge_current_ua; + int precharge_current_ua; + int precharge_voltage_max_uv; + int charge_term_current_ua; + int charge_restart_voltage_uv; + int overvoltage_limit_uv; + int constant_charge_current_max_ua; + int constant_charge_voltage_max_uv; + const 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; + const struct power_supply_battery_ocv_table *ocv_table[20]; + int ocv_table_size[20]; + const struct power_supply_resistance_temp_table *resist_table; + int resist_table_size; + const struct power_supply_vbat_ri_table *vbat2ri_discharging; + int vbat2ri_discharging_size; + const struct power_supply_vbat_ri_table *vbat2ri_charging; + int vbat2ri_charging_size; + int bti_resistance_ohm; + int bti_resistance_tolerance; +}; + +struct power_supply_battery_ocv_table { + int ocv; + int capacity; +}; + +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; + bool no_wakeup_source; +}; + +struct power_supply_ext { + const char * const name; + u8 charge_behaviours; + const enum power_supply_property *properties; + size_t num_properties; + int (*get_property)(struct power_supply *, const struct power_supply_ext *, void *, enum power_supply_property, union power_supply_propval *); + int (*set_property)(struct power_supply *, const struct power_supply_ext *, void *, enum power_supply_property, const union power_supply_propval *); + int (*property_is_writeable)(struct power_supply *, const struct power_supply_ext *, void *, enum power_supply_property); +}; + +struct power_supply_ext_registration { + struct list_head list_head; + const struct power_supply_ext *ext; + struct device *dev; + void *data; +}; + +struct power_supply_hwmon { + struct power_supply *psy; + long unsigned int *props; +}; + +struct power_supply_led_trigger { + struct led_trigger trig; + struct power_supply *psy; +}; + +struct power_supply_maintenance_charge_table { + int charge_current_max_ua; + int charge_voltage_max_uv; + int charge_safety_timer_minutes; +}; + +union power_supply_propval { + int intval; + const char *strval; +}; + +struct power_supply_resistance_temp_table { + int temp; + int resistance; +}; + +struct power_supply_vbat_ri_table { + int vbat_uv; + int ri_uohm; +}; + +struct powercap_constraint_attr { + struct device_attribute power_limit_attr; + struct device_attribute time_window_attr; + struct device_attribute max_power_attr; + struct device_attribute min_power_attr; + struct device_attribute max_time_window_attr; + struct device_attribute min_time_window_attr; + struct device_attribute name_attr; +}; + +struct powercap_control_type_ops; + +struct powercap_control_type { + struct device dev; + struct idr idr; + int nr_zones; + const struct powercap_control_type_ops *ops; + struct mutex lock; + bool allocated; + struct list_head node; +}; + +struct powercap_control_type_ops { + int (*set_enable)(struct powercap_control_type *, bool); + int (*get_enable)(struct powercap_control_type *, bool *); + int (*release)(struct powercap_control_type *); +}; + +struct scmi_powercap_state; + +struct scmi_powercap_info; + +struct powercap_info { + u32 version; + int num_domains; + bool notify_cap_cmd; + bool notify_measurements_cmd; + struct scmi_powercap_state *states; + struct scmi_powercap_info *powercaps; +}; + +struct powercap_zone_constraint_ops; + +struct powercap_zone_constraint { + int id; + struct powercap_zone *power_zone; + const struct powercap_zone_constraint_ops *ops; +}; + +struct powercap_zone_constraint_ops { + int (*set_power_limit_uw)(struct powercap_zone *, int, u64); + int (*get_power_limit_uw)(struct powercap_zone *, int, u64 *); + int (*set_time_window_us)(struct powercap_zone *, int, u64); + int (*get_time_window_us)(struct powercap_zone *, int, u64 *); + int (*get_max_power_uw)(struct powercap_zone *, int, u64 *); + int (*get_min_power_uw)(struct powercap_zone *, int, u64 *); + int (*get_max_time_window_us)(struct powercap_zone *, int, u64 *); + int (*get_min_time_window_us)(struct powercap_zone *, int, u64 *); + const char * (*get_name)(struct powercap_zone *, int); +}; + +struct powercap_zone_ops { + int (*get_max_energy_range_uj)(struct powercap_zone *, u64 *); + int (*get_energy_uj)(struct powercap_zone *, u64 *); + int (*reset_energy_uj)(struct powercap_zone *); + int (*get_max_power_range_uw)(struct powercap_zone *, u64 *); + int (*get_power_uw)(struct powercap_zone *, u64 *); + int (*set_enable)(struct powercap_zone *, bool); + int (*get_enable)(struct powercap_zone *, bool *); + int (*release)(struct powercap_zone *); +}; + +struct ppe { + __be16 lv_ix; + short unsigned int res2; + short unsigned int res4; + __be16 lp_ix; + short unsigned int res8[12]; +}; + +struct ppp_link_stats { + u64 rx_packets; + u64 tx_packets; + u64 rx_bytes; + u64 tx_bytes; +}; + +struct slcompress; + +struct ppp { + struct ppp_file file; + struct file *owner; + struct list_head channels; + int n_channels; + spinlock_t rlock; + spinlock_t wlock; + int *xmit_recursion; + int mru; + unsigned int flags; + unsigned int xstate; + unsigned int rstate; + int debug; + struct slcompress *vj; + enum NPmode npmode[6]; + struct sk_buff *xmit_pending; + struct compressor *xcomp; + void *xc_state; + struct compressor *rcomp; + void *rc_state; + long unsigned int last_xmit; + long unsigned int last_recv; + struct net_device *dev; + int closing; + int nxchan; + u32 nxseq; + int mrru; + u32 nextseq; + u32 minseq; + struct sk_buff_head mrq; + struct bpf_prog *pass_filter; + struct bpf_prog *active_filter; + struct net *ppp_net; + struct ppp_link_stats stats64; +}; + +struct ppp_channel_ops; + +struct ppp_channel { + void *private; + const struct ppp_channel_ops *ops; + int mtu; + int hdrlen; + void *ppp; + int speed; + int latency; +}; + +struct ppp_channel_ops { + int (*start_xmit)(struct ppp_channel *, struct sk_buff *); + int (*ioctl)(struct ppp_channel *, unsigned int, long unsigned int); + int (*fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *, const struct ppp_channel *); +}; + +struct ppp_comp_stats { + struct compstat c; + struct compstat d; +}; + +struct ppp_config { + struct file *file; + s32 unit; + bool ifname_is_set; +}; + +struct ppp_idle32 { + __s32 xmit_idle; + __s32 recv_idle; +}; + +struct ppp_idle64 { + __s64 xmit_idle; + __s64 recv_idle; +}; + +struct ppp_mp_skb_parm { + u32 sequence; + u8 BEbits; +}; + +struct ppp_net { + struct idr units_idr; + struct mutex all_ppp_mutex; + struct list_head all_channels; + struct list_head new_channels; + int last_channel_index; + spinlock_t all_channels_lock; +}; + +struct ppp_option_data { + __u8 *ptr; + __u32 length; + int transmit; +}; + +struct ppp_option_data32 { + compat_uptr_t ptr; + u32 length; + compat_int_t transmit; +}; + +struct pppstat { + __u32 ppp_discards; + __u32 ppp_ibytes; + __u32 ppp_ioctects; + __u32 ppp_ipackets; + __u32 ppp_ierrors; + __u32 ppp_ilqrs; + __u32 ppp_obytes; + __u32 ppp_ooctects; + __u32 ppp_opackets; + __u32 ppp_oerrors; + __u32 ppp_olqrs; +}; + +struct vjstat { + __u32 vjs_packets; + __u32 vjs_compressed; + __u32 vjs_searches; + __u32 vjs_misses; + __u32 vjs_uncompressedin; + __u32 vjs_compressedin; + __u32 vjs_errorin; + __u32 vjs_tossed; +}; + +struct ppp_stats { + struct pppstat p; + struct vjstat vj; +}; + +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 pps_bind_args { + int tsformat; + int edge; + int consumer; +}; + +struct pps_device; + +struct pps_source_info { + char name[32]; + char path[32]; + int mode; + void (*echo)(struct pps_device *, int, void *); + struct module *owner; + struct device *dev; +}; + +struct pps_ktime { + __s64 sec; + __s32 nsec; + __u32 flags; +}; + +struct pps_kparams { + int api_version; + int mode; + struct pps_ktime assert_off_tu; + struct pps_ktime clear_off_tu; +}; + +struct pps_device { + struct pps_source_info info; + struct pps_kparams params; + __u32 assert_sequence; + __u32 clear_sequence; + struct pps_ktime assert_tu; + struct pps_ktime clear_tu; + int current_mode; + unsigned int last_ev; + wait_queue_head_t queue; + unsigned int id; + const void *lookup_cookie; + struct device dev; + struct fasync_struct *async_queue; + spinlock_t lock; +}; + +struct pps_event_time { + struct timespec64 ts_real; +}; + +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_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)); + +struct pptp_gre_header { + struct gre_base_hdr gre_hd; + __be16 payload_len; + __be16 call_id; + __be32 seq; + __be32 ack; +}; + +struct pr_clear { + __u64 key; + __u32 flags; + __u32 __pad; +}; + +struct pr_cont_work_struct { + bool comma; + work_func_t func; + long int ctr; +}; + +struct pr_held_reservation { + u64 key; + u32 generation; + enum pr_type type; +}; + +struct pr_keys { + u32 generation; + u32 num_keys; + u64 keys[0]; +}; + +struct pr_ops { + int (*pr_register)(struct block_device *, u64, u64, u32); + int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32); + int (*pr_release)(struct block_device *, u64, enum pr_type); + int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool); + int (*pr_clear)(struct block_device *, u64); + int (*pr_read_keys)(struct block_device *, struct pr_keys *); + int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *); +}; + +struct pr_preempt { + __u64 old_key; + __u64 new_key; + __u32 type; + __u32 flags; +}; + +struct pr_registration { + __u64 old_key; + __u64 new_key; + __u32 flags; + __u32 __pad; +}; + +struct pr_reservation { + __u64 key; + __u32 type; + __u32 flags; +}; + +struct prb_data_blk_lpos { + long unsigned int begin; + long unsigned int next; +}; + +struct prb_data_block { + long unsigned int id; + char data[0]; +}; + +struct prb_data_ring { + unsigned int size_bits; + char *data; + atomic_long_t head_lpos; + atomic_long_t tail_lpos; +}; + +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_seq; +}; + +struct printk_ringbuffer; + +struct prb_reserved_entry { + struct printk_ringbuffer *rb; + long unsigned int irqflags; + long unsigned int id; + unsigned int text_space; +}; + +struct prcm_data { + int nsubdevs; + const struct mfd_cell *subdevs; +}; + +struct prctl_mm_map { + __u64 start_code; + __u64 end_code; + __u64 start_data; + __u64 end_data; + __u64 start_brk; + __u64 brk; + __u64 start_stack; + __u64 arg_start; + __u64 arg_end; + __u64 env_start; + __u64 env_end; + __u64 *auxv; + __u32 auxv_size; + __u32 exe_fd; +}; + +struct pre_voltage_change_data { + long unsigned int old_uV; + long unsigned int min_uV; + long unsigned int max_uV; +}; + +struct preempt_ops { + void (*sched_in)(struct preempt_notifier *, int); + void (*sched_out)(struct preempt_notifier *, struct task_struct *); +}; + +struct prefix_cacheinfo { + __u32 preferred_time; + __u32 valid_time; +}; + +struct prefix_info { + __u8 type; + __u8 length; + __u8 prefix_len; + union { + __u8 flags; + struct { + __u8 reserved: 4; + __u8 preferpd: 1; + __u8 routeraddr: 1; + __u8 autoconf: 1; + __u8 onlink: 1; + }; + }; + __be32 valid; + __be32 prefered; + __be32 reserved2; + struct in6_addr prefix; +}; + +struct prefixmsg { + unsigned char prefix_family; + unsigned char prefix_pad1; + short unsigned int prefix_pad2; + int prefix_ifindex; + unsigned char prefix_type; + unsigned char prefix_len; + unsigned char prefix_flags; + unsigned char prefix_pad3; +}; + +struct prepend_buffer { + char *buf; + int len; +}; + +struct print_entry { + struct trace_entry ent; + long unsigned int ip; + char buf[0]; +}; + +struct printf_spec { + unsigned char flags; + unsigned char base; + short int precision; + int field_width; +}; + +struct printk_info { + u64 seq; + u64 ts_nsec; + u16 text_len; + u8 facility; + u8 flags: 5; + u8 level: 3; + u32 caller_id; + struct dev_printk_info dev_info; +}; + +struct printk_message { + struct printk_buffers *pbufs; + unsigned int outbuf_len; + u64 seq; + long unsigned int dropped; +}; + +struct printk_record { + struct printk_info *info; + char *text_buf; + unsigned int text_buf_size; +}; + +struct printk_ringbuffer { + struct prb_desc_ring desc_ring; + struct prb_data_ring text_data_ring; + atomic_long_t fail; +}; + +struct private_data { + struct list_head node; + cpumask_var_t cpus; + struct device *cpu_dev; + struct cpufreq_frequency_table *freq_table; + bool have_static_opps; + int opp_token; +}; + +struct privflags_reply_data { + struct ethnl_reply_data base; + const char (*priv_flag_names)[32]; + unsigned int n_priv_flags; + u32 priv_flags; +}; + +struct prm_buffer { + u8 prm_status; + u64 efi_status; + u8 prm_cmd; + guid_t handler_guid; +} __attribute__((packed)); + +struct prm_mmio_info; + +struct prm_context_buffer { + char signature[4]; + u16 revision; + u16 reserved; + guid_t identifier; + u64 static_data_buffer; + struct prm_mmio_info *mmio_ranges; +}; + +struct prm_handler_info { + efi_guid_t guid; + efi_status_t (*handler_addr)(u64, void *); + u64 static_data_buffer_addr; + u64 acpi_param_buffer_addr; + struct list_head handler_list; +}; + +struct prm_mmio_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_module_info { + guid_t guid; + u16 major_rev; + u16 minor_rev; + u16 handler_count; + struct prm_mmio_info *mmio_info; + bool updatable; + struct list_head module_list; + struct prm_handler_info handlers[0]; +}; + +typedef struct kobject *kobj_probe_t(dev_t, int *, void *); + +struct probe { + struct probe *next; + dev_t dev; + long unsigned int range; + struct module *owner; + kobj_probe_t *get; + int (*lock)(dev_t, void *); + void *data; +}; + +struct probe_arg { + struct fetch_insn *code; + bool dynamic; + unsigned int offset; + unsigned int count; + const char *name; + const char *comm; + char *fmt; + const struct fetch_type *type; +}; + +struct probe_entry_arg { + struct fetch_insn *code; + unsigned int size; +}; + +typedef int (*proc_write_t)(struct file *, char *, size_t); + +struct proc_ops; + +struct proc_dir_entry { + atomic_t in_use; + refcount_t refcnt; + struct list_head pde_openers; + spinlock_t pde_unload_lock; + struct completion *pde_unload_completion; + const struct inode_operations *proc_iops; + union { + const struct proc_ops *proc_ops; + const struct file_operations *proc_dir_ops; + }; + const struct dentry_operations *proc_dops; + union { + const struct seq_operations *seq_ops; + int (*single_show)(struct seq_file *, void *); + }; + proc_write_t write; + void *data; + unsigned int state_size; + unsigned int low_ino; + nlink_t nlink; + kuid_t uid; + kgid_t gid; + loff_t size; + struct proc_dir_entry *parent; + struct rb_root subdir; + struct rb_node subdir_node; + char *name; + umode_t mode; + u8 flags; + u8 namelen; + char inline_name[0]; +}; + +struct 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 proc_event { + enum proc_cn_event 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 proc_fs_context { + struct pid_namespace *pid_ns; + unsigned int mask; + enum proc_hidepid hidepid; + int gid; + enum proc_pidonly pidonly; +}; + +struct proc_fs_info { + struct pid_namespace *pid_ns; + struct dentry *proc_self; + struct dentry *proc_thread_self; + kgid_t pid_gid; + enum proc_hidepid hide_pid; + enum proc_pidonly pidonly; + struct callback_head rcu; +}; + +struct proc_fs_opts { + int flag; + const char *str; +}; + +struct proc_inode { + struct pid *pid; + unsigned int fd; + union proc_op op; + struct proc_dir_entry *pde; + struct ctl_table_header *sysctl; + const struct ctl_table *sysctl_entry; + struct hlist_node sibling_inodes; + const struct proc_ns_operations *ns_ops; + struct inode vfs_inode; +}; + +struct proc_input { + enum proc_cn_mcast_op mcast_op; + enum proc_cn_event event_type; +}; + +struct proc_mounts { + struct mnt_namespace *ns; + struct path root; + int (*show)(struct seq_file *, struct vfsmount *); +}; + +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 proc_ops { + unsigned int proc_flags; + int (*proc_open)(struct inode *, struct file *); + ssize_t (*proc_read)(struct file *, char *, size_t, loff_t *); + ssize_t (*proc_read_iter)(struct kiocb *, struct iov_iter *); + ssize_t (*proc_write)(struct file *, const char *, 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 int (*proc_ioctl)(struct file *, unsigned int, long unsigned int); + long int (*proc_compat_ioctl)(struct file *, unsigned int, long unsigned int); + int (*proc_mmap)(struct file *, struct vm_area_struct *); + long unsigned int (*proc_get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); +}; + +struct proc_timens_offset { + int clockid; + struct timespec64 val; +}; + +struct process_timer { + struct timer_list timer; + struct task_struct *task; +}; + +struct procmap_query { + __u64 size; + __u64 query_flags; + __u64 query_addr; + __u64 vma_start; + __u64 vma_end; + __u64 vma_flags; + __u64 vma_page_size; + __u64 vma_offset; + __u64 inode; + __u32 dev_major; + __u32 dev_minor; + __u32 vma_name_size; + __u32 build_id_size; + __u64 vma_name_addr; + __u64 build_id_addr; +}; + +struct profile_fgraph_data { + long long unsigned int calltime; + long long unsigned int subtime; + long long unsigned int sleeptime; +}; + +struct prog_entry { + int target; + int when_to_branch; + struct filter_pred *pred; +}; + +struct prog_poke_elem { + struct list_head list; + struct bpf_prog_aux *aux; +}; + +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 property { + char *name; + int length; + void *value; + struct property *next; + long unsigned int _flags; + struct bin_attribute attr; +}; + +struct prot_inuse { + int all; + int val[64]; +}; + +struct smc_hashinfo; + +struct proto_accept_arg; + +struct sk_psock; + +struct timewait_sock_ops; + +struct raw_hashinfo; + +struct proto { + void (*close)(struct sock *, long int); + 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 *, struct proto_accept_arg *); + int (*ioctl)(struct sock *, int, int *); + int (*init)(struct sock *); + void (*destroy)(struct sock *); + void (*shutdown)(struct sock *, int); + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char *, int *); + void (*keepalive)(struct sock *, int); + int (*compat_ioctl)(struct sock *, unsigned int, long unsigned int); + int (*sendmsg)(struct sock *, struct msghdr *, size_t); + int (*recvmsg)(struct sock *, struct msghdr *, size_t, int, int *); + void (*splice_eof)(struct socket *); + int (*bind)(struct sock *, struct sockaddr *, int); + int (*bind_add)(struct sock *, struct sockaddr *, int); + int (*backlog_rcv)(struct sock *, struct sk_buff *); + bool (*bpf_bypass_getsockopt)(int, int); + void (*release_cb)(struct sock *); + int (*hash)(struct sock *); + void (*unhash)(struct sock *); + void (*rehash)(struct sock *); + int (*get_port)(struct sock *, short unsigned int); + 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 *per_cpu_fw_alloc; + struct percpu_counter *sockets_allocated; + long unsigned int *memory_pressure; + long int *sysctl_mem; + int *sysctl_wmem; + int *sysctl_rmem; + u32 sysctl_wmem_offset; + u32 sysctl_rmem_offset; + int max_header; + bool no_autobind; + struct kmem_cache *slab; + unsigned int obj_size; + unsigned int ipv6_pinfo_offset; + slab_flags_t slab_flags; + unsigned int useroffset; + unsigned int usersize; + unsigned int *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 proto_accept_arg { + int flags; + int err; + int is_empty; + bool kern; +}; + +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 *, struct proto_accept_arg *); + int (*getname)(struct socket *, struct sockaddr *, int); + __poll_t (*poll)(struct file *, struct socket *, struct poll_table_struct *); + int (*ioctl)(struct socket *, unsigned int, long unsigned int); + int (*compat_ioctl)(struct socket *, unsigned int, long unsigned int); + int (*gettstamp)(struct socket *, void *, 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 *, int *); + void (*show_fdinfo)(struct seq_file *, struct socket *); + int (*sendmsg)(struct socket *, struct msghdr *, size_t); + int (*recvmsg)(struct socket *, struct msghdr *, size_t, int); + int (*mmap)(struct file *, struct socket *, struct vm_area_struct *); + ssize_t (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct socket *); + int (*set_peek_off)(struct sock *, int); + int (*peek_len)(struct socket *); + int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); + int (*read_skb)(struct sock *, skb_read_actor_t); + int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); + int (*set_rcvlowat)(struct sock *, int); +}; + +struct prt_quirk { + const struct dmi_system_id *system; + unsigned int segment; + unsigned int bus; + unsigned int device; + unsigned char pin; + const char *source; + const char *actual_source; +}; + +struct psample_group { + struct list_head list; + struct net *net; + u32 group_num; + u32 refcount; + u32 seq; + struct callback_head rcu; +}; + +struct psched_pktrate { + u64 rate_pkts_ps; + u32 mult; + u8 shift; +}; + +struct psched_ratecfg { + u64 rate_bytes_ps; + u32 mult; + u16 overhead; + u16 mpu; + u8 linklayer; + u8 shift; +}; + +struct psci_boot_args { + atomic_t lock; + long unsigned int pc; + long unsigned int r0; +}; + +struct psci_cpuidle_data { + u32 *psci_states; + struct device *dev; +}; + +struct psci_operations { + u32 (*get_version)(void); + int (*cpu_suspend)(u32, long unsigned int); + int (*cpu_off)(u32); + int (*cpu_on)(long unsigned int, long unsigned int); + int (*migrate)(long unsigned int); + int (*affinity_info)(long unsigned int, long unsigned int); + int (*migrate_info_type)(void); +}; + +struct psci_pd_provider { + struct list_head link; + struct device_node *node; +}; + +struct pse_admin_state { + enum ethtool_podl_pse_admin_state podl_admin_state; + enum ethtool_c33_pse_admin_state c33_admin_state; +}; + +struct pse_controller_dev; + +struct pse_control { + struct pse_controller_dev *pcdev; + struct regulator *ps; + struct list_head list; + unsigned int id; + struct kref refcnt; +}; + +struct pse_control_config { + enum ethtool_podl_pse_admin_state podl_admin_control; + enum ethtool_c33_pse_admin_state c33_admin_control; +}; + +struct pse_controller_ops; + +struct pse_pi; + +struct pse_controller_dev { + const struct pse_controller_ops *ops; + struct module *owner; + struct list_head list; + struct list_head pse_control_head; + struct device *dev; + int of_pse_n_cells; + unsigned int nr_lines; + struct mutex lock; + enum ethtool_pse_types types; + struct pse_pi *pi; + bool no_of_pse_pi; +}; + +struct pse_pw_status; + +struct pse_ext_state_info; + +struct pse_pw_limit_ranges; + +struct pse_controller_ops { + int (*setup_pi_matrix)(struct pse_controller_dev *); + int (*pi_get_admin_state)(struct pse_controller_dev *, int, struct pse_admin_state *); + int (*pi_get_pw_status)(struct pse_controller_dev *, int, struct pse_pw_status *); + int (*pi_get_ext_state)(struct pse_controller_dev *, int, struct pse_ext_state_info *); + int (*pi_get_pw_class)(struct pse_controller_dev *, int); + int (*pi_get_actual_pw)(struct pse_controller_dev *, int); + int (*pi_enable)(struct pse_controller_dev *, int); + int (*pi_disable)(struct pse_controller_dev *, int); + int (*pi_get_voltage)(struct pse_controller_dev *, int); + int (*pi_get_pw_limit)(struct pse_controller_dev *, int); + int (*pi_set_pw_limit)(struct pse_controller_dev *, int, int); + int (*pi_get_pw_limit_ranges)(struct pse_controller_dev *, int, struct pse_pw_limit_ranges *); +}; + +struct pse_ext_state_info { + struct ethtool_c33_pse_ext_state_info c33_ext_state_info; +}; + +struct pse_pi_pairset { + enum pse_pi_pairset_pinout pinout; + struct device_node *np; +}; + +struct pse_pi { + struct pse_pi_pairset pairset[2]; + struct device_node *np; + struct regulator_dev *rdev; + bool admin_state_enabled; +}; + +struct pse_pw_limit_ranges { + struct ethtool_c33_pse_pw_limit_range *c33_pw_limit_ranges; +}; + +struct pse_pw_status { + enum ethtool_podl_pse_pw_d_status podl_pw_status; + enum ethtool_c33_pse_pw_d_status c33_pw_status; +}; + +struct pse_reply_data { + struct ethnl_reply_data base; + struct ethtool_pse_control_status status; +}; + +struct super_operations; + +struct xattr_handler; + +struct pseudo_fs_context { + const struct super_operations *ops; + const struct export_operations *eops; + const struct xattr_handler * const *xattr; + const struct dentry_operations *dops; + long unsigned int magic; +}; + +struct psi_group_cpu; + +struct psi_group { + struct psi_group *parent; + bool enabled; + struct mutex avgs_lock; + struct psi_group_cpu *pcpu; + u64 avg_total[6]; + u64 avg_last_update; + u64 avg_next_update; + struct delayed_work avgs_work; + struct list_head avg_triggers; + u32 avg_nr_triggers[6]; + u64 total[12]; + long unsigned int avg[18]; + struct task_struct *rtpoll_task; + struct timer_list rtpoll_timer; + wait_queue_head_t rtpoll_wait; + atomic_t rtpoll_wakeup; + atomic_t rtpoll_scheduled; + struct mutex rtpoll_trigger_lock; + struct list_head rtpoll_triggers; + u32 rtpoll_nr_triggers[6]; + u32 rtpoll_states; + u64 rtpoll_min_period; + u64 rtpoll_total[6]; + u64 rtpoll_next_update; + u64 rtpoll_until; +}; + +struct psi_group_cpu { + seqcount_t seq; + unsigned int tasks[4]; + u32 state_mask; + u32 times[7]; + u64 state_start; + u32 times_prev[14]; + long: 64; +}; + +struct psi_window { + u64 size; + u64 start_time; + u64 start_value; + u64 prev_growth; +}; + +struct psi_trigger { + enum psi_states state; + u64 threshold; + struct list_head node; + struct psi_group *group; + wait_queue_head_t event_wait; + struct kernfs_open_file *of; + int event; + struct psi_window win; + u64 last_event_time; + bool pending_event; + enum psi_aggregators aggregator; +}; + +struct psil_endpoint_config { + enum psil_endpoint_type ep_type; + enum udma_tp_level channel_tpl; + unsigned int pkt_mode: 1; + unsigned int notdpkt: 1; + unsigned int needs_epib: 1; + unsigned int pdma_acc32: 1; + unsigned int pdma_burst: 1; + u32 psd_size; + s16 mapped_channel_id; + u16 flow_start; + u16 flow_num; + s16 default_flow_id; +}; + +struct psil_ep { + u32 thread_id; + struct psil_endpoint_config ep_config; +}; + +struct psil_ep_map { + char *name; + struct psil_ep *src; + int src_count; + struct psil_ep *dst; + int dst_count; +}; + +struct pstore_ftrace_record { + long unsigned int ip; + long unsigned int parent_ip; + u64 ts; +}; + +struct pstore_ftrace_seq_data { + const void *ptr; + size_t off; + size_t size; +}; + +struct pstore_record; + +struct pstore_info { + struct module *owner; + const char *name; + raw_spinlock_t buf_lock; + char *buf; + size_t bufsize; + struct mutex read_mutex; + int flags; + int max_reason; + void *data; + int (*open)(struct pstore_info *); + int (*close)(struct pstore_info *); + ssize_t (*read)(struct pstore_record *); + int (*write)(struct pstore_record *); + int (*write_user)(struct pstore_record *, const char *); + int (*erase)(struct pstore_record *); +}; + +struct pstore_private { + struct list_head list; + struct dentry *dentry; + struct pstore_record *record; + size_t total_size; +}; + +struct pstore_record { + struct pstore_info *psi; + enum pstore_type_id type; + u64 id; + struct timespec64 time; + char *buf; + ssize_t size; + ssize_t ecc_notice_size; + void *priv; + int count; + enum kmsg_dump_reason reason; + unsigned int part; + bool compressed; +}; + +struct psy_am_i_supplied_data { + struct power_supply *psy; + unsigned int count; +}; + +struct psy_for_each_psy_cb_data { + int (*fn)(struct power_supply *, void *); + void *data; +}; + +struct psy_get_supplier_prop_data { + struct power_supply *psy; + enum power_supply_property psp; + union power_supply_propval *val; +}; + +struct pt_info { + s32 pi_nblocks; + u32 pi_blkoff; +}; + +struct pt_regs_offset { + const char *name; + int offset; +}; + +struct ptdesc { + long unsigned int __page_flags; + union { + struct callback_head pt_rcu_head; + struct list_head pt_list; + struct { + long unsigned int _pt_pad_1; + pgtable_t pmd_huge_pte; + }; + }; + long unsigned int __page_mapping; + union { + long unsigned int pt_index; + struct mm_struct *pt_mm; + atomic_t pt_frag_refcount; + atomic_t pt_share_count; + }; + union { + long unsigned int _pt_pad_2; + spinlock_t ptl; + }; + unsigned int __page_type; + atomic_t __page_refcount; + long unsigned int pt_memcg_data; +}; + +struct ptdump_info { + struct mm_struct *mm; + const struct addr_marker *markers; + long unsigned int base_addr; +}; + +struct ptdump_prot_bits; + +struct ptdump_pg_level { + const struct ptdump_prot_bits *bits; + char name[4]; + int num; + u64 mask; +}; + +struct ptdump_range; + +struct ptdump_state { + void (*note_page)(struct ptdump_state *, long unsigned int, int, u64); + void (*effective_prot)(struct ptdump_state *, int, u64); + const struct ptdump_range *range; +}; + +struct ptdump_pg_state { + struct ptdump_state ptdump; + struct ptdump_pg_level *pg_level; + struct seq_file *seq; + const struct addr_marker *marker; + const struct mm_struct *mm; + long unsigned int start_address; + int level; + u64 current_prot; + bool check_wx; + long unsigned int wx_pages; + long unsigned int uxn_pages; +}; + +struct ptdump_prot_bits { + u64 mask; + u64 val; + const char *set; + const char *clear; +}; + +struct ptdump_range { + long unsigned int start; + long unsigned int end; +}; + +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 int dialed_frequency; + struct list_head tsevqs; + spinlock_t tsevqs_lock; + struct mutex pincfg_mux; + wait_queue_head_t tsev_wq; + int defunct; + struct device_attribute *pin_dev_attr; + struct attribute **pin_attr; + struct attribute_group pin_attr_group; + const struct attribute_group *pin_attr_groups[2]; + struct kthread_worker *kworker; + struct kthread_delayed_work aux_work; + unsigned int max_vclocks; + unsigned int n_vclocks; + int *vclock_index; + struct mutex n_vclocks_mux; + bool is_virtual_clock; + bool has_cycles; + struct dentry *debugfs_root; +}; + +struct ptp_clock_caps { + int max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int pps; + int n_pins; + int cross_timestamping; + int adjust_phase; + int max_phase_adj; + int rsv[11]; +}; + +struct ptp_clock_event { + int type; + int index; + union { + u64 timestamp; + s64 offset; + struct pps_event_time pps_times; + }; +}; + +struct ptp_extts_request { + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; +}; + +struct ptp_clock_time { + __s64 sec; + __u32 nsec; + __u32 reserved; +}; + +struct ptp_perout_request { + union { + struct ptp_clock_time start; + struct ptp_clock_time phase; + }; + struct ptp_clock_time period; + unsigned int index; + unsigned int flags; + union { + struct ptp_clock_time on; + unsigned int rsv[4]; + }; +}; + +struct ptp_clock_request { + enum { + PTP_CLK_REQ_EXTTS = 0, + PTP_CLK_REQ_PEROUT = 1, + PTP_CLK_REQ_PPS = 2, + } type; + union { + struct ptp_extts_request extts; + struct ptp_perout_request perout; + }; +}; + +struct ptp_extts_event { + struct ptp_clock_time t; + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; +}; + +struct ptp_header { + u8 tsmt; + u8 ver; + __be16 message_length; + u8 domain_number; + u8 reserved1; + u8 flag_field[2]; + __be64 correction; + __be32 reserved2; + struct port_identity source_port_identity; + __be16 sequence_id; + u8 control; + u8 log_message_interval; +} __attribute__((packed)); + +struct ptp_pin_desc { + char name[64]; + unsigned int index; + unsigned int func; + unsigned int chan; + unsigned int rsv[5]; +}; + +struct ptp_sys_offset { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[51]; +}; + +struct ptp_sys_offset_extended { + unsigned int n_samples; + __kernel_clockid_t clockid; + unsigned int rsv[2]; + struct ptp_clock_time ts[75]; +}; + +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_system_timestamp { + struct timespec64 pre_ts; + struct timespec64 post_ts; + clockid_t clockid; +}; + +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 ptrace_peeksiginfo_args { + __u64 off; + __u32 flags; + __s32 nr; +}; + +struct ptrace_relation { + struct task_struct *tracer; + struct task_struct *tracee; + bool invalid; + struct list_head node; + struct callback_head rcu; +}; + +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 ptrauth_key { + long unsigned int lo; + long unsigned int hi; +}; + +struct ptrauth_keys_kernel { + struct ptrauth_key apia; +}; + +struct ptrauth_keys_user { + struct ptrauth_key apia; + struct ptrauth_key apib; + struct ptrauth_key apda; + struct ptrauth_key apdb; + struct ptrauth_key apga; +}; + +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 pubkey_hdr { + uint8_t version; + uint32_t timestamp; + uint8_t algo; + uint8_t nmpi; + char mpi[0]; +} __attribute__((packed)); + +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; + long unsigned int key_eflags; +}; + +struct public_key_signature { + struct asymmetric_key_id *auth_ids[3]; + u8 *s; + u8 *digest; + u32 s_size; + u32 digest_size; + const char *pkey_algo; + const char *hash_algo; + const char *encoding; +}; + +struct pushbutton_work_info { + struct slot___3 *p_slot; + struct work_struct work; +}; + +struct pvclock_vcpu_stolen_time; + +struct pv_time_stolen_time_region { + struct pvclock_vcpu_stolen_time *kaddr; +}; + +struct pvclock_vcpu_stolen_time { + __le32 revision; + __le32 attributes; + __le64 stolen_time; + u8 padding[48]; +}; + +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_wall_clock { + u32 version; + u32 sec; + u32 nsec; + u32 sec_hi; +}; + +struct pvd { + char reserved0[16]; + __be16 pp_count; + char reserved18[2]; + __be32 psn_part1; + char reserved24[8]; + struct ppe ppe[1016]; +}; + +struct pvm_ftr_bits { + bool sign; + u8 shift; + u8 width; + u8 max_val; + bool (*vm_supported)(const struct kvm *); +}; + +struct pwm_args { + u64 period; + enum pwm_polarity polarity; +}; + +struct pwm_capture { + unsigned int period; + unsigned int duty_cycle; +}; + +struct pwm_chip; + +typedef struct pwm_chip *class_pwmchip_t; + +struct pwm_state { + u64 period; + u64 duty_cycle; + enum pwm_polarity polarity; + bool enabled; + bool usage_power; +}; + +struct pwm_device { + const char *label; + long unsigned int flags; + unsigned int hwpwm; + struct pwm_chip *chip; + 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; + struct module *owner; + unsigned int id; + unsigned int npwm; + struct pwm_device * (*of_xlate)(struct pwm_chip *, const struct of_phandle_args *); + bool atomic; + bool uses_pwmchip_alloc; + bool operational; + union { + struct mutex nonatomic_lock; + spinlock_t atomic_lock; + }; + struct pwm_device pwms[0]; +}; + +struct pwm_export { + struct device pwm_dev; + struct pwm_device *pwm; + struct mutex lock; + struct pwm_state suspend; +}; + +struct pwm_lookup { + struct list_head list; + const char *provider; + unsigned int index; + const char *dev_id; + const char *con_id; + unsigned int period; + enum pwm_polarity polarity; + const char *module; +}; + +struct pwm_waveform; + +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 *, long unsigned int); + size_t sizeof_wfhw; + int (*round_waveform_tohw)(struct pwm_chip *, struct pwm_device *, const struct pwm_waveform *, void *); + int (*round_waveform_fromhw)(struct pwm_chip *, struct pwm_device *, const void *, struct pwm_waveform *); + int (*read_waveform)(struct pwm_chip *, struct pwm_device *, void *); + int (*write_waveform)(struct pwm_chip *, struct pwm_device *, const void *); + 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 pwm_waveform { + u64 period_length_ns; + u64 duty_length_ns; + u64 duty_offset_ns; +}; + +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_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_type_state { + unsigned int flags; + unsigned int spc_timelimit; + unsigned int ino_timelimit; + unsigned int rt_spc_timelimit; + unsigned int spc_warnlimit; + unsigned int ino_warnlimit; + unsigned int rt_spc_warnlimit; + long long unsigned int ino; + blkcnt_t blocks; + blkcnt_t nextents; +}; + +struct qc_state { + unsigned int s_incoredqs; + struct qc_type_state s_state[3]; +}; + +struct qcom_adm_peripheral_config { + u32 crci; + u32 mux; +}; + +struct qcom_aoss_reset_map; + +struct qcom_aoss_desc { + const struct qcom_aoss_reset_map *resets; + size_t num_resets; +}; + +struct qcom_aoss_reset_data { + struct reset_controller_dev rcdev; + void *base; + const struct qcom_aoss_desc *desc; +}; + +struct qcom_aoss_reset_map { + unsigned int reg; +}; + +struct qcom_reset_map; + +struct qcom_reset_controller { + const struct qcom_reset_map *reset_map; + struct regmap *regmap; + struct reset_controller_dev rcdev; +}; + +struct qcom_cc { + struct qcom_reset_controller reset; + struct clk_regmap **rclks; + size_t num_rclks; +}; + +struct qcom_icc_hws_data; + +struct qcom_cc_desc { + const struct regmap_config *config; + struct clk_regmap **clks; + size_t num_clks; + const struct qcom_reset_map *resets; + size_t num_resets; + struct gdsc **gdscs; + size_t num_gdscs; + struct clk_hw **clk_hws; + size_t num_clk_hws; + const struct qcom_icc_hws_data *icc_hws; + size_t num_icc_hws; + unsigned int icc_first_node_id; +}; + +struct qcom_geni_device_data { + bool console; + enum geni_se_xfer_mode mode; +}; + +struct qcom_geni_private_data { + struct uart_driver *drv; + u32 poll_cached_bytes; + unsigned int poll_cached_bytes_cnt; + u32 write_cached_bytes; + unsigned int write_cached_bytes_cnt; +}; + +struct qcom_geni_serial_port { + struct uart_port uport; + struct geni_se se; + const char *name; + u32 tx_fifo_depth; + u32 tx_fifo_width; + u32 rx_fifo_depth; + dma_addr_t tx_dma_addr; + dma_addr_t rx_dma_addr; + bool setup; + long unsigned int poll_timeout_us; + long unsigned int clk_rate; + void *rx_buf; + u32 loopback; + bool brk; + unsigned int tx_remaining; + unsigned int tx_queued; + int wakeup_irq; + bool rx_tx_swap; + bool cts_rts_swap; + struct qcom_geni_private_data private_data; + const struct qcom_geni_device_data *dev_data; +}; + +struct qcom_icc_hws_data { + int master_id; + int slave_id; + int clk_id; +}; + +struct qcom_iommu_ctx { + struct device *dev; + void *base; + bool secure_init; + bool secured_ctx; + u8 asid; + struct iommu_domain *domain; +}; + +struct qcom_iommu_dev { + struct iommu_device iommu; + struct device *dev; + struct clk_bulk_data clks[3]; + void *local_base; + u32 sec_id; + u8 max_asid; + struct qcom_iommu_ctx *ctxs[0]; +}; + +struct qcom_iommu_domain { + struct io_pgtable_ops *pgtbl_ops; + spinlock_t pgtbl_lock; + struct mutex init_mutex; + struct iommu_domain domain; + struct qcom_iommu_dev *iommu; + struct iommu_fwspec *fwspec; +}; + +struct qcom_ipcc_chan_info; + +struct qcom_ipcc { + struct device *dev; + void *base; + struct irq_domain *irq_domain; + struct mbox_chan *chans; + struct qcom_ipcc_chan_info *mchan; + struct mbox_controller mbox; + int num_chans; + int irq; +}; + +struct qcom_ipcc_chan_info { + u16 client_id; + u16 signal_id; +}; + +struct qcom_pcie_resources_1_0_0 { + struct clk_bulk_data *clks; + int num_clks; + struct reset_control *core; + struct regulator *vdda; +}; + +struct qcom_pcie_resources_2_1_0 { + struct clk_bulk_data *clks; + int num_clks; + struct reset_control_bulk_data resets[6]; + int num_resets; + struct regulator_bulk_data supplies[3]; +}; + +struct qcom_pcie_resources_2_3_2 { + struct clk_bulk_data *clks; + int num_clks; + struct regulator_bulk_data supplies[2]; +}; + +struct qcom_pcie_resources_2_3_3 { + struct clk_bulk_data *clks; + int num_clks; + struct reset_control_bulk_data rst[7]; +}; + +struct qcom_pcie_resources_2_4_0 { + struct clk_bulk_data *clks; + int num_clks; + struct reset_control_bulk_data resets[12]; + int num_resets; +}; + +struct qcom_pcie_resources_2_7_0 { + struct clk_bulk_data *clks; + int num_clks; + struct regulator_bulk_data supplies[2]; + struct reset_control *rst; +}; + +struct qcom_pcie_resources_2_9_0 { + struct clk_bulk_data *clks; + int num_clks; + struct reset_control *rst; +}; + +union qcom_pcie_resources { + struct qcom_pcie_resources_1_0_0 v1_0_0; + struct qcom_pcie_resources_2_1_0 v2_1_0; + struct qcom_pcie_resources_2_3_2 v2_3_2; + struct qcom_pcie_resources_2_3_3 v2_3_3; + struct qcom_pcie_resources_2_4_0 v2_4_0; + struct qcom_pcie_resources_2_7_0 v2_7_0; + struct qcom_pcie_resources_2_9_0 v2_9_0; +}; + +struct qcom_pcie_cfg; + +struct qcom_pcie { + struct dw_pcie *pci; + void *parf; + void *elbi; + void *mhi; + union qcom_pcie_resources res; + struct phy *phy; + struct gpio_desc *reset; + struct icc_path *icc_mem; + struct icc_path *icc_cpu; + const struct qcom_pcie_cfg *cfg; + struct dentry *debugfs; + bool suspended; + bool use_pm_opp; +}; + +struct qcom_pcie_ops; + +struct qcom_pcie_cfg { + const struct qcom_pcie_ops *ops; + bool override_no_snoop; + bool no_l0s; +}; + +struct qcom_pcie_ops { + int (*get_resources)(struct qcom_pcie *); + int (*init)(struct qcom_pcie *); + int (*post_init)(struct qcom_pcie *); + void (*host_post_init)(struct qcom_pcie *); + void (*deinit)(struct qcom_pcie *); + void (*ltssm_enable)(struct qcom_pcie *); + int (*config_sid)(struct qcom_pcie *); +}; + +struct qcom_reset_map { + unsigned int reg; + u8 bit; + u16 udelay; + u32 bitmask; +}; + +struct qcom_tzmem_pool; + +struct qcom_scm { + struct device *dev; + struct clk *core_clk; + struct clk *iface_clk; + struct clk *bus_clk; + struct icc_path *path; + struct completion waitq_comp; + struct reset_controller_dev reset; + struct mutex scm_bw_lock; + int scm_vote_count; + u64 dload_mode_addr; + struct qcom_tzmem_pool *mempool; +}; + +struct qcom_scm_current_perm_info { + __le32 vmid; + __le32 perm; + __le64 ctx; + __le32 ctx_size; + __le32 unused; +}; + +struct qcom_scm_desc { + u32 svc; + u32 cmd; + u32 arginfo; + u64 args[10]; + u32 owner; +}; + +struct qcom_scm_hdcp_req { + u32 addr; + u32 val; +}; + +struct qcom_scm_mem_map_info { + __le64 mem_addr; + __le64 mem_size; +}; + +struct qcom_scm_pas_metadata { + void *ptr; + dma_addr_t phys; + ssize_t size; +}; + +struct qcom_scm_qseecom_resp { + u64 result; + u64 resp_type; + u64 data; +}; + +struct qcom_scm_res { + u64 result[3]; +}; + +struct qcom_scm_vmperm { + int vmid; + int perm; +}; + +struct qcom_smem_state_ops { + int (*update_bits)(void *, u32, u32); +}; + +struct qcom_smem_state { + struct kref refcount; + bool orphan; + struct list_head list; + struct device_node *of_node; + void *priv; + struct qcom_smem_state_ops ops; +}; + +struct qcom_smmu_match_data; + +struct qcom_smmu { + struct arm_smmu_device___2 smmu; + const struct qcom_smmu_match_data *data; + bool bypass_quirk; + u8 bypass_cbndx; + u32 stall_enabled; +}; + +struct qcom_smmu_config { + const u32 *reg_offset; +}; + +struct qcom_smmu_match_data { + const struct qcom_smmu_config *cfg; + const struct arm_smmu_impl *impl; + const struct arm_smmu_impl *adreno_impl; + const struct of_device_id * const client_match; +}; + +struct qcom_ssc_block_bus_data { + const char * const *pd_names; + struct device *pds[2]; + char *reg_mpm_sscaon_config0; + char *reg_mpm_sscaon_config1; + struct regmap *halt_map; + struct clk *xo_clk; + struct clk *aggre2_clk; + struct clk *gcc_im_sleep_clk; + struct clk *aggre2_north_clk; + struct clk *ssc_xo_clk; + struct clk *ssc_ahbs_clk; + struct reset_control *ssc_bcr; + struct reset_control *ssc_reset; + u32 ssc_axi_halt; + int num_pds; +}; + +struct qcom_tbu { + struct device *dev; + struct device_node *smmu_np; + u32 sid_range[2]; + struct list_head list; + struct clk *clk; + struct icc_path *path; + void *base; + spinlock_t halt_lock; + int halt_count; +}; + +struct qcom_tzmem_area { + struct list_head list; + void *vaddr; + dma_addr_t paddr; + size_t size; + void *priv; +}; + +struct qcom_tzmem_chunk { + size_t size; + struct qcom_tzmem_pool *owner; +}; + +struct qcom_tzmem_pool { + struct gen_pool *genpool; + struct list_head areas; + enum qcom_tzmem_policy policy; + size_t increment; + size_t max_size; + spinlock_t lock; +}; + +struct qcom_tzmem_pool_config { + size_t initial_size; + enum qcom_tzmem_policy policy; + size_t increment; + size_t max_size; +}; + +struct qseecom_client; + +struct qcuefi_client { + struct qseecom_client *client; + struct efivars efivars; + struct qcom_tzmem_pool *mempool; +}; + +struct qdisc_dump_args { + struct qdisc_walker w; + struct sk_buff *skb; + struct netlink_callback *cb; +}; + +struct tc_ratespec { + unsigned char cell_log; + __u8 linklayer; + short unsigned int overhead; + short int cell_align; + short unsigned int mpu; + __u32 rate; +}; + +struct qdisc_rate_table { + struct tc_ratespec rate; + u32 data[256]; + struct qdisc_rate_table *next; + int refcnt; +}; + +struct tc_sizespec { + unsigned char cell_log; + unsigned char size_log; + short int 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 qdisc_watchdog { + struct hrtimer timer; + struct Qdisc *qdisc; +}; + +struct qe_bd { + __be16 status; + __be16 length; + __be32 buf; +}; + +struct qe_brg { + __be32 brgc[16]; + u8 res0[64]; +}; + +struct qe_header { + __be32 length; + u8 magic[3]; + u8 version; +}; + +struct qe_microcode { + u8 id[32]; + __be32 traps[16]; + __be32 eccr; + __be32 iram_offset; + __be32 count; + __be32 code_offset; + u8 major; + u8 minor; + u8 revision; + u8 padding; + u8 reserved[4]; +}; + +struct qe_firmware { + struct qe_header header; + u8 id[62]; + u8 split; + u8 count; + struct { + __be16 model; + u8 major; + u8 minor; + } soc; + u8 padding[4]; + __be64 extended_modes; + __be32 vtraps[8]; + u8 reserved[4]; + struct qe_microcode microcode[0]; +} __attribute__((packed)); + +struct qe_firmware_info { + char id[64]; + u32 vtraps[8]; + u64 extended_modes; +}; + +struct qe_ic { + __be32 *regs; + struct irq_domain *irqhost; + struct irq_chip hc_irq; + int virq_high; + int virq_low; +}; + +struct qe_ic_info { + u32 mask; + u32 mask_reg; + u8 pri_code; + u32 pri_reg; +}; + +struct qe_ic_regs { + __be32 qicr; + __be32 qivec; + __be32 qripnr; + __be32 qipnr; + __be32 qipxcc; + __be32 qipycc; + __be32 qipwcc; + __be32 qipzcc; + __be32 qimr; + __be32 qrimr; + __be32 qicnr; + u8 res0[4]; + __be32 qiprta; + __be32 qiprtb; + u8 res1[4]; + __be32 qricr; + u8 res2[32]; + __be32 qhivec; + u8 res3[28]; +}; + +struct qe_iram { + __be32 iadd; + __be32 idata; + u8 res0[4]; + __be32 iready; + u8 res1[112]; +}; + +struct qe_mux { + __be32 cmxgcr; + __be32 cmxsi1cr_l; + __be32 cmxsi1cr_h; + __be32 cmxsi1syr; + __be32 cmxucr[4]; + __be32 cmxupcr; + u8 res0[28]; +}; + +struct qe_timers { + u8 gtcfr1; + u8 res0[3]; + u8 gtcfr2; + u8 res1[11]; + __be16 gtmdr1; + __be16 gtmdr2; + __be16 gtrfr1; + __be16 gtrfr2; + __be16 gtcpr1; + __be16 gtcpr2; + __be16 gtcnr1; + __be16 gtcnr2; + __be16 gtmdr3; + __be16 gtmdr4; + __be16 gtrfr3; + __be16 gtrfr4; + __be16 gtcpr3; + __be16 gtcpr4; + __be16 gtcnr3; + __be16 gtcnr4; + __be16 gtevr1; + __be16 gtevr2; + __be16 gtevr3; + __be16 gtevr4; + __be16 gtps; + u8 res2[70]; +}; + +struct spi { + u8 res0[32]; + __be32 spmode; + u8 res1[2]; + u8 spie; + u8 res2[1]; + u8 res3[2]; + u8 spim; + u8 res4[1]; + u8 res5[1]; + u8 spcom; + u8 res6[2]; + __be32 spitd; + __be32 spird; + u8 res7[8]; +}; + +struct qe_mcc { + __be32 mcce; + __be32 mccm; + __be32 mccf; + __be32 merl; + u8 res0[240]; +}; + +struct qe_usb_ctlr { + u8 usb_usmod; + u8 usb_usadr; + u8 usb_uscom; + u8 res1[1]; + __be16 usb_usep[4]; + u8 res2[4]; + __be16 usb_usber; + u8 res3[2]; + __be16 usb_usbmr; + u8 res4[1]; + u8 usb_usbs; + __be16 usb_ussft; + u8 res5[2]; + __be16 usb_usfrn; + u8 res6[34]; +}; + +struct si1 { + __be16 sixmr1[4]; + u8 siglmr1_h; + u8 res0[1]; + u8 sicmdr1_h; + u8 res2[1]; + u8 sistr1_h; + u8 res3[1]; + __be16 sirsr1_h; + u8 sitarc1; + u8 sitbrc1; + u8 sitcrc1; + u8 sitdrc1; + u8 sirarc1; + u8 sirbrc1; + u8 sircrc1; + u8 sirdrc1; + u8 res4[8]; + __be16 siemr1; + __be16 sifmr1; + __be16 sigmr1; + __be16 sihmr1; + u8 siglmg1_l; + u8 res5[1]; + u8 sicmdr1_l; + u8 res6[1]; + u8 sistr1_l; + u8 res7[1]; + __be16 sirsr1_l; + u8 siterc1; + u8 sitfrc1; + u8 sitgrc1; + u8 sithrc1; + u8 sirerc1; + u8 sirfrc1; + u8 sirgrc1; + u8 sirhrc1; + u8 res8[8]; + __be32 siml1; + u8 siedm1; + u8 res9[187]; +}; + +struct sir { + u8 tx[1024]; + u8 rx[1024]; + u8 res0[2048]; +}; + +struct ucc_slow { + __be32 gumr_l; + __be32 gumr_h; + __be16 upsmr; + u8 res0[2]; + __be16 utodr; + __be16 udsr; + __be16 ucce; + u8 res1[2]; + __be16 uccm; + u8 res2[1]; + u8 uccs; + u8 res3[36]; + __be16 utpt; + u8 res4[82]; + u8 guemr; +} __attribute__((packed)); + +struct ucc_fast { + __be32 gumr; + __be32 upsmr; + __be16 utodr; + u8 res0[2]; + __be16 udsr; + u8 res1[2]; + __be32 ucce; + __be32 uccm; + u8 uccs; + u8 res2[7]; + __be32 urfb; + __be16 urfs; + u8 res3[2]; + __be16 urfet; + __be16 urfset; + __be32 utfb; + __be16 utfs; + u8 res4[2]; + __be16 utfet; + u8 res5[2]; + __be16 utftt; + u8 res6[2]; + __be16 utpt; + u8 res7[2]; + __be32 urtry; + u8 res8[76]; + u8 guemr; +} __attribute__((packed)); + +struct ucc { + union { + struct ucc_slow slow; + struct ucc_fast fast; + u8 res[512]; + }; +}; + +struct upc { + __be32 upgcr; + __be32 uplpa; + __be32 uphec; + __be32 upuc; + __be32 updc1; + __be32 updc2; + __be32 updc3; + __be32 updc4; + __be32 upstpa; + u8 res0[12]; + __be32 updrs1_h; + __be32 updrs1_l; + __be32 updrs2_h; + __be32 updrs2_l; + __be32 updrs3_h; + __be32 updrs3_l; + __be32 updrs4_h; + __be32 updrs4_l; + __be32 updrp1; + __be32 updrp2; + __be32 updrp3; + __be32 updrp4; + __be32 upde1; + __be32 upde2; + __be32 upde3; + __be32 upde4; + __be16 uprp1; + __be16 uprp2; + __be16 uprp3; + __be16 uprp4; + u8 res1[8]; + __be16 uptirr1_0; + __be16 uptirr1_1; + __be16 uptirr1_2; + __be16 uptirr1_3; + __be16 uptirr2_0; + __be16 uptirr2_1; + __be16 uptirr2_2; + __be16 uptirr2_3; + __be16 uptirr3_0; + __be16 uptirr3_1; + __be16 uptirr3_2; + __be16 uptirr3_3; + __be16 uptirr4_0; + __be16 uptirr4_1; + __be16 uptirr4_2; + __be16 uptirr4_3; + __be32 uper1; + __be32 uper2; + __be32 uper3; + __be32 uper4; + u8 res2[336]; +}; + +struct sdma { + __be32 sdsr; + __be32 sdmr; + __be32 sdtr1; + __be32 sdtr2; + __be32 sdhy1; + __be32 sdhy2; + __be32 sdta1; + __be32 sdta2; + __be32 sdtm1; + __be32 sdtm2; + u8 res0[16]; + __be32 sdaqr; + __be32 sdaqmr; + u8 res1[4]; + __be32 sdebcr; + u8 res2[56]; +}; + +struct rsp { + __be32 tibcr[16]; + u8 res0[64]; + __be32 ibcr0; + __be32 ibs0; + __be32 ibcnr0; + u8 res1[4]; + __be32 ibcr1; + __be32 ibs1; + __be32 ibcnr1; + __be32 npcr; + __be32 dbcr; + __be32 dbar; + __be32 dbamr; + __be32 dbsr; + __be32 dbcnr; + u8 res2[12]; + __be32 dbdr_h; + __be32 dbdr_l; + __be32 dbdmr_h; + __be32 dbdmr_l; + __be32 bsr; + __be32 bor; + __be32 bior; + u8 res3[4]; + __be32 iatr[4]; + __be32 eccr; + __be32 eicr; + u8 res4[8]; +}; + +struct qe_immap { + struct qe_iram iram; + struct qe_ic_regs ic; + struct cp_qe cp; + struct qe_mux qmx; + struct qe_timers qet; + struct spi spi[2]; + struct qe_mcc mcc; + struct qe_brg brg; + struct qe_usb_ctlr usb; + struct si1 si1; + u8 res11[2048]; + struct sir sir; + struct ucc ucc1; + struct ucc ucc3; + struct ucc ucc5; + struct ucc ucc7; + u8 res12[1536]; + struct upc upc1; + struct ucc ucc2; + struct ucc ucc4; + struct ucc ucc6; + struct ucc ucc8; + u8 res13[1536]; + struct upc upc2; + struct sdma sdma; + struct dbg dbg; + struct rsp rsp[2]; + u8 res14[768]; + u8 res15[14848]; + u8 res16[32768]; + u8 muram[49152]; + u8 res17[147456]; + u8 res18[786432]; +}; + +struct qe_pio_regs { + __be32 cpodr; + __be32 cpdata; + __be32 cpdir1; + __be32 cpdir2; + __be32 cppar1; + __be32 cppar2; +}; + +struct qm_addr { + void *ce; + __be32 *ce_be; + void *ci; +}; + +struct qm_dqrr_entry; + +struct qm_dqrr { + const struct qm_dqrr_entry *ring; + const struct qm_dqrr_entry *cursor; + u8 pi; + u8 ci; + u8 fill; + u8 ithresh; + u8 vbit; + enum qm_dqrr_dmode dmode; + enum qm_dqrr_pmode pmode; + enum qm_dqrr_cmode cmode; +}; + +struct qm_fd { + union { + struct { + u8 cfg8b_w1; + u8 bpid; + u8 cfg8b_w3; + u8 addr_hi; + __be32 addr_lo; + }; + __be64 data; + }; + __be32 cfg; + union { + __be32 cmd; + __be32 status; + }; +}; + +struct qm_dqrr_entry { + u8 verb; + u8 stat; + __be16 seqnum; + u8 tok; + u8 __reserved2[3]; + __be32 fqid; + __be32 context_b; + struct qm_fd fd; + u8 __reserved4[32]; +}; + +struct qm_eadr { + u32 info; +}; + +struct qm_ecir { + u32 info; +}; + +struct qm_ecir2 { + u32 info; +}; + +struct qm_eqcr_entry; + +struct qm_eqcr { + struct qm_eqcr_entry *ring; + struct qm_eqcr_entry *cursor; + u8 ci; + u8 available; + u8 ithresh; + u8 vbit; + u32 busy; + enum qm_eqcr_pmode pmode; +}; + +struct qm_eqcr_entry { + u8 _ncw_verb; + u8 dca; + __be16 seqnum; + u8 __reserved[4]; + __be32 fqid; + __be32 tag; + struct qm_fd fd; + u8 __reserved3[32]; +}; + +struct qm_fqd_oac { + u8 oac; + s8 oal; +}; + +struct qm_fqd_stashing { + u8 exclusive; + u8 cl; +}; + +struct qm_fqd { + u8 orpc; + u8 cgid; + __be16 fq_ctrl; + __be16 dest_wq; + __be16 ics_cred; + union { + __be16 td; + struct qm_fqd_oac oac_init; + }; + __be32 context_b; + union { + __be64 opaque; + struct { + __be32 hi; + __be32 lo; + }; + struct { + struct qm_fqd_stashing stashing; + __be16 context_hi; + __be32 context_lo; + }; + } context_a; + struct qm_fqd_oac oac_query; +} __attribute__((packed)); + +union qm_mc_command; + +union qm_mc_result; + +struct qm_mc { + union qm_mc_command *cr; + union qm_mc_result *rr; + u8 rridx; + u8 vbit; + enum { + qman_mc_idle = 0, + qman_mc_user = 1, + qman_mc_hw = 2, + } state; +}; + +struct qm_mcc_initfq { + u8 __reserved1[2]; + __be16 we_mask; + __be32 fqid; + __be16 count; + struct qm_fqd fqd; + u8 __reserved2[30]; +}; + +struct qm_mcc_initcgr { + u8 __reserve1[2]; + __be16 we_mask; + struct __qm_mc_cgr cgr; + u8 __reserved2[2]; + u8 cgid; + u8 __reserved3[32]; +}; + +struct qm_mcc_fq { + u8 _ncw_verb; + u8 __reserved1[3]; + __be32 fqid; + u8 __reserved2[56]; +}; + +struct qm_mcc_cgr { + u8 _ncw_verb; + u8 __reserved1[30]; + u8 cgid; + u8 __reserved2[32]; +}; + +union qm_mc_command { + struct { + u8 _ncw_verb; + u8 __reserved[63]; + }; + struct qm_mcc_initfq initfq; + struct qm_mcc_initcgr initcgr; + struct qm_mcc_fq fq; + struct qm_mcc_cgr cgr; +}; + +struct qm_mcr_queryfq { + u8 verb; + u8 result; + u8 __reserved1[8]; + struct qm_fqd fqd; + u8 __reserved2[30]; +}; + +struct qm_mcr_alterfq { + u8 verb; + u8 result; + u8 fqs; + u8 __reserved1[61]; +}; + +struct qm_mcr_querycgr { + u8 verb; + u8 result; + u16 __reserved1; + struct __qm_mc_cgr cgr; + u8 __reserved2[6]; + u8 i_bcnt_hi; + __be32 i_bcnt_lo; + u8 __reserved3[3]; + u8 a_bcnt_hi; + __be32 a_bcnt_lo; + __be32 cscn_targ_swp[4]; +}; + +struct qm_mcr_querycongestion { + u8 verb; + u8 result; + u8 __reserved[30]; + struct __qm_mcr_querycongestion state; +}; + +struct qm_mcr_querywq { + u8 verb; + u8 result; + u16 channel_wq; + u8 __reserved[28]; + u32 wq_len[8]; +}; + +struct qm_mcr_queryfq_np { + u8 verb; + u8 result; + u8 __reserved1; + u8 state; + u32 fqd_link; + u16 odp_seq; + u16 orp_nesn; + u16 orp_ea_hseq; + u16 orp_ea_tseq; + u32 orp_ea_hptr; + u32 orp_ea_tptr; + u32 pfdr_hptr; + u32 pfdr_tptr; + u8 __reserved2[5]; + u8 is; + u16 ics_surp; + u32 byte_cnt; + u32 frm_cnt; + u32 __reserved3; + u16 ra1_sfdr; + u16 ra2_sfdr; + u16 __reserved4; + u16 od1_sfdr; + u16 od2_sfdr; + u16 od3_sfdr; +}; + +union qm_mc_result { + struct { + u8 verb; + u8 result; + u8 __reserved1[62]; + }; + struct qm_mcr_queryfq queryfq; + struct qm_mcr_alterfq alterfq; + struct qm_mcr_querycgr querycgr; + struct qm_mcr_querycongestion querycongestion; + struct qm_mcr_querywq querywq; + struct qm_mcr_queryfq_np queryfq_np; +}; + +union qm_mr_entry; + +struct qm_mr { + union qm_mr_entry *ring; + union qm_mr_entry *cursor; + u8 pi; + u8 ci; + u8 fill; + u8 ithresh; + u8 vbit; + enum qm_mr_pmode pmode; + enum qm_mr_cmode cmode; +}; + +union qm_mr_entry { + struct { + u8 verb; + u8 __reserved[63]; + }; + struct { + u8 verb; + u8 dca; + __be16 seqnum; + u8 rc; + u8 __reserved[3]; + __be32 fqid; + __be32 tag; + struct qm_fd fd; + u8 __reserved1[32]; + } ern; + struct { + u8 verb; + u8 fqs; + u8 __reserved1[6]; + __be32 fqid; + __be32 context_b; + u8 __reserved2[48]; + } fq; +}; + +struct qm_portal { + struct qm_addr addr; + struct qm_eqcr eqcr; + struct qm_dqrr dqrr; + struct qm_mr mr; + struct qm_mc mc; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct qm_portal_config { + void *addr_virt_ce; + void *addr_virt_ci; + struct device *dev; + struct iommu_domain *iommu_domain; + struct list_head list; + int cpu; + int irq; + u16 channel; + u32 pools; +}; + +struct qman_portal; + +struct qman_cgr; + +typedef void (*qman_cb_cgr)(struct qman_portal *, struct qman_cgr *, int); + +struct qman_cgr { + u32 cgrid; + qman_cb_cgr cb; + u16 chan; + struct list_head node; +}; + +struct qman_cgrs { + struct __qm_mcr_querycongestion q; +}; + +struct qman_error_info_mdata { + u16 addr_mask; + u16 bits; + const char *txt; +}; + +struct qman_fq; + +typedef enum qman_cb_dqrr_result (*qman_cb_dqrr)(struct qman_portal *, struct qman_fq *, const struct qm_dqrr_entry *, bool); + +typedef void (*qman_cb_mr)(struct qman_portal *, struct qman_fq *, const union qm_mr_entry *); + +struct qman_fq_cb { + qman_cb_dqrr dqrr; + qman_cb_mr ern; + qman_cb_mr fqs; +}; + +struct qman_fq { + struct qman_fq_cb cb; + u32 fqid; + u32 idx; + long unsigned int flags; + enum qman_fq_state state; + int cgr_groupid; +}; + +struct qman_hwerr_txt { + u32 mask; + const char *txt; +}; + +struct qman_portal { + struct qm_portal p; + long unsigned int bits; + long unsigned int irq_sources; + u32 use_eqcr_ci_stashing; + struct qman_fq *vdqcr_owned; + u32 sdqcr; + const struct qm_portal_config *config; + struct qman_cgrs *cgrs; + struct list_head cgr_cbs; + raw_spinlock_t cgr_lock; + struct work_struct congestion_work; + struct work_struct mr_work; + char irqname[16]; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct qnode { + struct mcs_spinlock mcs; +}; + +struct qsee_req_uefi_get_next_variable { + u32 command_id; + u32 length; + u32 guid_offset; + u32 guid_size; + u32 name_offset; + u32 name_size; +}; + +struct qsee_req_uefi_get_variable { + u32 command_id; + u32 length; + u32 name_offset; + u32 name_size; + u32 guid_offset; + u32 guid_size; + u32 data_size; +}; + +struct qsee_req_uefi_query_variable_info { + u32 command_id; + u32 length; + u32 attributes; +}; + +struct qsee_req_uefi_set_variable { + u32 command_id; + u32 length; + u32 name_offset; + u32 name_size; + u32 guid_offset; + u32 guid_size; + u32 attributes; + u32 data_offset; + u32 data_size; +}; + +struct qsee_rsp_uefi_get_next_variable { + u32 command_id; + u32 length; + u32 status; + u32 guid_offset; + u32 guid_size; + u32 name_offset; + u32 name_size; +}; + +struct qsee_rsp_uefi_get_variable { + u32 command_id; + u32 length; + u32 status; + u32 attributes; + u32 data_offset; + u32 data_size; +}; + +struct qsee_rsp_uefi_query_variable_info { + u32 command_id; + u32 length; + u32 status; + u32 _pad; + u64 storage_space; + u64 remaining_space; + u64 max_variable_size; +}; + +struct qsee_rsp_uefi_set_variable { + u32 command_id; + u32 length; + u32 status; + u32 _unknown1; + u32 _unknown2; +}; + +struct qseecom_app_desc { + const char *app_name; + const char *dev_name; +}; + +struct qseecom_client { + struct auxiliary_device aux_dev; + u32 app_id; +}; + +struct queue_limits { + blk_features_t features; + blk_flags_t flags; + long unsigned int seg_boundary_mask; + long unsigned int 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 min_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_user_discard_sectors; + unsigned int max_secure_erase_sectors; + unsigned int max_write_zeroes_sectors; + unsigned int max_hw_zone_append_sectors; + unsigned int max_zone_append_sectors; + unsigned int discard_granularity; + unsigned int discard_alignment; + unsigned int zone_write_granularity; + unsigned int atomic_write_hw_max; + unsigned int atomic_write_max_sectors; + unsigned int atomic_write_hw_boundary; + unsigned int atomic_write_boundary_sectors; + unsigned int atomic_write_hw_unit_min; + unsigned int atomic_write_unit_min; + unsigned int atomic_write_hw_unit_max; + unsigned int atomic_write_unit_max; + short unsigned int max_segments; + short unsigned int max_integrity_segments; + short unsigned int max_discard_segments; + unsigned int max_open_zones; + unsigned int max_active_zones; + unsigned int dma_alignment; + unsigned int dma_pad_mask; + struct blk_integrity integrity; +}; + +struct queue_pages { + struct list_head *pagelist; + long unsigned int flags; + nodemask_t *nmask; + long unsigned int start; + long unsigned int end; + struct vm_area_struct *first; + struct folio *large; + long int nr_failed; +}; + +struct queue_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct gendisk *, char *); + ssize_t (*show_limit)(struct gendisk *, char *); + ssize_t (*store)(struct gendisk *, const char *, size_t); + int (*store_limit)(struct gendisk *, const char *, size_t, struct queue_limits *); + void (*load_module)(struct gendisk *, const char *, size_t); +}; + +struct quirk_entry { + u16 vid; + u16 pid; + u32 flags; +}; + +struct quota_format_ops { + int (*check_quota_file)(struct super_block *, int); + int (*read_file_info)(struct super_block *, int); + int (*write_file_info)(struct super_block *, int); + int (*free_file_info)(struct super_block *, int); + int (*read_dqblk)(struct dquot *); + int (*commit_dqblk)(struct dquot *); + int (*release_dqblk)(struct dquot *); + int (*get_next_id)(struct super_block *, struct kqid *); +}; + +struct 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_id { + struct rb_node node; + qid_t id; + qsize_t bhardlimit; + qsize_t bsoftlimit; + qsize_t ihardlimit; + qsize_t isoftlimit; +}; + +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 quota_module_name { + int qm_fmt_id; + char *qm_mod_name; +}; + +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 ra_msg { + struct icmp6hdr icmph; + __be32 reachable_time; + __be32 retrans_timer; +}; + +struct xa_node; + +struct radix_tree_iter { + long unsigned int index; + long unsigned int next_index; + long unsigned int tags; + struct xa_node *node; +}; + +struct radix_tree_preload { + local_lock_t lock; + unsigned int nr; + struct xa_node *nodes; +}; + +struct rail_alignment { + int offset_uv; + int step_uv; +}; + +struct ramfs_mount_opts { + umode_t mode; +}; + +struct ramfs_fs_info { + struct ramfs_mount_opts mount_opts; +}; + +struct rand_data { + void *hash_state; + __u64 prev_time; + __u64 last_delta; + __s64 last_delta2; + unsigned int flags; + unsigned int osr; + unsigned char *mem; + unsigned int memlocation; + unsigned int memblocks; + unsigned int memblocksize; + unsigned int memaccessloops; + unsigned int rct_count; + unsigned int apt_cutoff; + unsigned int apt_cutoff_permanent; + unsigned int apt_observations; + unsigned int apt_count; + unsigned int apt_base; + unsigned int health_failure; + unsigned int apt_base_set: 1; +}; + +struct range_node { + struct rb_node rn_rbnode; + struct rb_node rb_range_size; + u32 rn_start; + u32 rn_last; + u32 __rn_subtree_last; +}; + +struct range_trans { + u32 source_type; + u32 target_type; + u32 target_class; +}; + +struct rank_info { + int chan_idx; + struct csrow_info *csrow; + struct dimm_info *dimm; + u32 ce_count; +}; + +struct rate_sample { + u64 prior_mstamp; + u32 prior_delivered; + u32 prior_delivered_ce; + s32 delivered; + s32 delivered_ce; + long int interval_us; + u32 snd_interval_us; + u32 rcv_interval_us; + long int 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 raw6_frag_vec { + struct msghdr *msg; + int hlen; + char c[4]; +}; + +struct raw6_sock { + struct inet_sock inet; + __u32 checksum; + __u32 offset; + struct icmp6_filter filter; + __u32 ip6mr_table; + struct ipv6_pinfo inet6; +}; + +struct raw_data_entry { + struct trace_entry ent; + unsigned int id; + char buf[0]; +}; + +struct raw_frag_vec { + struct msghdr *msg; + union { + struct icmphdr icmph; + char c[1]; + } hdr; + int hlen; +}; + +struct raw_hashinfo { + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct hlist_head ht[256]; +}; + +struct raw_hwp_page { + struct llist_node node; + struct page *page; +}; + +struct raw_iter_state { + struct seq_net_private p; + int bucket; +}; + +struct raw_sock { + struct inet_sock inet; + struct icmp_filter filter; + u32 ipmr_table; +}; + +struct rawdata_f_data { + struct aa_loaddata *loaddata; +}; + +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 rb_event_info { + u64 ts; + u64 delta; + u64 before; + u64 after; + long unsigned int length; + struct buffer_page *tail_page; + int add_timestamp; +}; + +struct rb_irq_work { + struct irq_work work; + wait_queue_head_t waiters; + wait_queue_head_t full_waiters; + atomic_t seq; + bool waiters_pending; + bool full_waiters_pending; + bool wakeup_full; +}; + +struct rb_list { + struct rb_root root; + struct list_head head; + spinlock_t lock; +}; + +struct rb_time_struct { + local64_t time; +}; + +typedef struct rb_time_struct rb_time_t; + +struct rb_wait_data { + struct rb_irq_work *irq_work; + int seq; +}; + +struct rc { + long int (*fill)(void *, long unsigned int); + uint8_t *ptr; + uint8_t *buffer; + uint8_t *buffer_end; + long int buffer_size; + uint32_t code; + uint32_t range; + uint32_t bound; + void (*error)(char *); +}; + +struct rc5t583 { + struct device *dev; + struct regmap *regmap; + int chip_irq; + int irq_base; + struct mutex irq_lock; + long unsigned int group_irq_en[5]; + uint8_t intc_inten_reg; + uint8_t irq_en_reg[8]; + uint8_t gpedge_reg[2]; +}; + +struct rc5t583_gpio { + struct gpio_chip gpio_chip; + struct rc5t583 *rc5t583; +}; + +struct rc5t583_irq_data { + u8 int_type; + u8 master_bit; + u8 int_en_bit; + u8 mask_reg_index; + int grp_index; +}; + +struct rc5t583_platform_data { + int irq_base; + int gpio_base; + bool enable_shutdown; + int regulator_deepsleep_slot[14]; + long unsigned int regulator_ext_pwr_control[14]; + struct regulator_init_data *reg_init_data[14]; +}; + +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 rcar_gen3_cpg_pll_config { + u8 extal_div; + u8 pll1_mult; + u8 pll1_div; + u8 pll3_mult; + u8 pll3_div; + u8 osc_prediv; +}; + +struct rcar_gen4_cpg_pll_config { + u8 extal_div; + u8 pll1_mult; + u8 pll1_div; + u8 pll5_mult; + u8 pll5_div; + u8 osc_prediv; +}; + +struct rcar_gen4_pm_domains { + struct genpd_onecell_data onecell_data; + struct generic_pm_domain *domains[65]; +}; + +struct rcar_gen4_sysc_area { + const char *name; + u8 pdr; + s8 parent; + u8 flags; +}; + +struct rcar_gen4_sysc_info { + const struct rcar_gen4_sysc_area *areas; + unsigned int num_areas; +}; + +struct rcar_gen4_sysc_pd { + struct generic_pm_domain genpd; + u8 pdr; + unsigned int flags; + char name[0]; +}; + +struct rcar_msi { + long unsigned int used[1]; + struct irq_domain *domain; + struct mutex map_lock; + spinlock_t mask_lock; + int irq1; + int irq2; +}; + +struct rcar_pcie { + struct device *dev; + void *base; +}; + +struct rcar_pcie_endpoint { + struct rcar_pcie pcie; + phys_addr_t *ob_mapped_addr; + struct pci_epc_mem_window *ob_window; + u8 max_functions; + unsigned int bar_to_atu[6]; + long unsigned int *ib_window_map; + u32 num_ib_windows; + u32 num_ob_windows; +}; + +struct rcar_pcie_host { + struct rcar_pcie pcie; + struct phy *phy; + struct clk *bus_clk; + struct rcar_msi msi; + int (*phy_init_fn)(struct rcar_pcie_host *); +}; + +struct rcar_pm_domains { + struct genpd_onecell_data onecell_data; + struct generic_pm_domain *domains[33]; +}; + +struct rcar_sysc_area { + const char *name; + u16 chan_offs; + u8 chan_bit; + u8 isr_bit; + s8 parent; + u8 flags; +}; + +struct rcar_sysc_info { + int (*init)(void); + const struct rcar_sysc_area *areas; + unsigned int num_areas; + u32 extmask_offs; + u32 extmask_val; +}; + +struct rcar_sysc_pd { + struct generic_pm_domain genpd; + u16 chan_offs; + u8 chan_bit; + u8 isr_bit; + unsigned int flags; + char name[0]; +}; + +struct rcec_ea { + u8 nextbusn; + u8 lastbusn; + u32 bitmap; +}; + +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 **buf; + int is_global; + struct list_head list; + struct dentry *parent; + int has_base_filename; + char base_filename[255]; +}; + +struct rchan_buf { + void *start; + void *data; + size_t offset; + size_t subbufs_produced; + size_t subbufs_consumed; + struct rchan *chan; + wait_queue_head_t read_wait; + struct irq_work wakeup_work; + struct dentry *dentry; + struct kref kref; + struct page **page_array; + unsigned int page_count; + unsigned int finalized; + size_t *padding; + size_t prev_padding; + size_t bytes_consumed; + size_t early_bytes; + unsigned int cpu; + long: 64; + long: 64; +}; + +struct 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_percpu_buf_dispatcher { + struct rchan_buf *buf; + struct dentry *dentry; +}; + +struct rcpm { + unsigned int wakeup_cells; + void *ippdexpcr_base; + bool little_endian; +}; + +struct rcu_cblist { + struct callback_head *head; + struct callback_head **tail; + long int len; +}; + +union rcu_noqs { + struct { + u8 norm; + u8 exp; + } b; + u16 s; +}; + +struct rcu_segcblist { + struct callback_head *head; + struct callback_head **tails[4]; + long unsigned int gp_seq[4]; + atomic_long_t len; + long int seglen[4]; + u8 flags; +}; + +struct rcu_snap_record { + long unsigned int gp_seq; + u64 cputime_irq; + u64 cputime_softirq; + u64 cputime_system; + u64 nr_hardirqs; + unsigned int nr_softirqs; + long long unsigned int nr_csw; + long unsigned int jiffies; +}; + +struct rcu_node; + +struct rcu_data { + long unsigned int gp_seq; + long unsigned int gp_seq_needed; + union rcu_noqs cpu_no_qs; + bool core_needs_qs; + bool beenonline; + bool gpwrap; + bool cpu_started; + struct rcu_node *mynode; + long unsigned int grpmask; + long unsigned int ticks_this_gp; + struct irq_work defer_qs_iw; + bool defer_qs_iw_pending; + struct work_struct strict_work; + struct rcu_segcblist cblist; + long int qlen_last_fqs_check; + long unsigned int n_cbs_invoked; + long unsigned int n_force_qs_snap; + long int blimit; + int watching_snap; + bool rcu_need_heavy_qs; + bool rcu_urgent_qs; + bool rcu_forced_tick; + bool rcu_forced_tick_exp; + long unsigned int barrier_seq_snap; + struct callback_head barrier_head; + int exp_watching_snap; + struct swait_queue_head nocb_cb_wq; + struct swait_queue_head nocb_state_wq; + struct task_struct *nocb_gp_kthread; + raw_spinlock_t nocb_lock; + int nocb_defer_wakeup; + struct timer_list nocb_timer; + long unsigned int nocb_gp_adv_time; + struct mutex nocb_gp_kthread_mutex; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + raw_spinlock_t nocb_bypass_lock; + struct rcu_cblist nocb_bypass; + long unsigned int nocb_bypass_first; + long unsigned int nocb_nobypass_last; + int nocb_nobypass_count; + long: 64; + raw_spinlock_t nocb_gp_lock; + u8 nocb_gp_sleep; + u8 nocb_gp_bypass; + u8 nocb_gp_gp; + long unsigned int nocb_gp_seq; + long unsigned int nocb_gp_loops; + struct swait_queue_head nocb_gp_wq; + bool nocb_cb_sleep; + struct task_struct *nocb_cb_kthread; + struct list_head nocb_head_rdp; + struct list_head nocb_entry_rdp; + struct rcu_data *nocb_toggling_rdp; + long: 64; + long: 64; + long: 64; + struct rcu_data *nocb_gp_rdp; + struct task_struct *rcu_cpu_kthread_task; + unsigned int rcu_cpu_kthread_status; + char rcu_cpu_has_work; + long unsigned int rcuc_activity; + unsigned int softirq_snap; + struct irq_work rcu_iw; + bool rcu_iw_pending; + long unsigned int rcu_iw_gp_seq; + long unsigned int rcu_ofl_gp_seq; + short int rcu_ofl_gp_state; + long unsigned int rcu_onl_gp_seq; + short int rcu_onl_gp_state; + long unsigned int last_fqs_resched; + long unsigned int last_sched_clock; + struct rcu_snap_record snap_record; + long int lazy_len; + int cpu; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct rcu_exp_work { + long unsigned int rew_s; + struct kthread_work rew_work; +}; + +struct rcu_node { + raw_spinlock_t lock; + long unsigned int gp_seq; + long unsigned int gp_seq_needed; + long unsigned int completedqs; + long unsigned int qsmask; + long unsigned int rcu_gp_init_mask; + long unsigned int qsmaskinit; + long unsigned int qsmaskinitnext; + long unsigned int expmask; + long unsigned int expmaskinit; + long unsigned int expmaskinitnext; + struct kthread_worker *exp_kworker; + long unsigned int cbovldmask; + long unsigned int ffmask; + long unsigned int 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; + long unsigned int boost_time; + struct mutex kthread_mutex; + struct task_struct *boost_kthread_task; + unsigned int boost_kthread_status; + long unsigned int n_boosts; + struct swait_queue_head nocb_gp_wq[2]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + raw_spinlock_t fqslock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t exp_lock; + long unsigned int 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; + long unsigned int exp_seq_poll_rq; + struct work_struct exp_poll_wq; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +union rcu_special { + struct { + u8 blocked; + u8 need_qs; + u8 exp_hint; + u8 need_mb; + } b; + u32 s; +}; + +struct rcu_stall_chk_rdr { + int nesting; + union rcu_special rs; + bool on_blkd_list; +}; + +struct sr_wait_node { + atomic_t inuse; + struct llist_node node; +}; + +struct rcu_state { + struct rcu_node node[33]; + struct rcu_node *level[3]; + int ncpus; + int n_online_cpus; + long: 64; + long: 64; + long: 64; + long: 64; + long unsigned int gp_seq; + long unsigned int gp_max; + struct task_struct *gp_kthread; + struct swait_queue_head gp_wq; + short int gp_flags; + short int gp_state; + long unsigned int gp_wake_time; + long unsigned int gp_wake_seq; + long unsigned int gp_seq_polled; + long unsigned int gp_seq_polled_snap; + long unsigned int gp_seq_polled_exp_snap; + struct mutex barrier_mutex; + atomic_t barrier_cpu_count; + struct completion barrier_completion; + long unsigned int barrier_sequence; + raw_spinlock_t barrier_lock; + struct mutex exp_mutex; + struct mutex exp_wake_mutex; + long unsigned int expedited_sequence; + atomic_t expedited_need_qs; + struct swait_queue_head expedited_wq; + int ncpus_snap; + u8 cbovld; + u8 cbovldnext; + long unsigned int jiffies_force_qs; + long unsigned int jiffies_kick_kthreads; + long unsigned int n_force_qs; + long unsigned int gp_start; + long unsigned int gp_end; + long unsigned int gp_activity; + long unsigned int gp_req_activity; + long unsigned int jiffies_stall; + int nr_fqs_jiffies_stall; + long unsigned int jiffies_resched; + long unsigned int n_force_qs_gpstart; + const char *name; + char abbr; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + arch_spinlock_t ofl_lock; + struct llist_head srs_next; + struct llist_node *srs_wait_tail; + struct llist_node *srs_done_tail; + struct sr_wait_node srs_wait_nodes[5]; + struct work_struct srs_cleanup_work; + atomic_t srs_cleanups_pending; + struct mutex nocb_mutex; + int nocb_is_setup; +}; + +struct rcu_synchronize { + struct callback_head head; + struct completion completion; +}; + +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 (*rcu_callback_t)(struct callback_head *); + +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; + long unsigned int gp_jiffies; + long unsigned int gp_start; + long unsigned int tasks_gp_seq; + long unsigned int n_ipis; + long unsigned int n_ipis_fails; + struct task_struct *kthread_ptr; + long unsigned int lazy_jiffies; + rcu_tasks_gp_func_t gp_func; + pregp_func_t pregp_func; + pertask_func_t pertask_func; + postscan_func_t postscan_func; + holdouts_func_t holdouts_func; + postgp_func_t postgp_func; + call_rcu_func_t call_func; + unsigned int wait_state; + struct rcu_tasks_percpu *rtpcpu; + struct rcu_tasks_percpu **rtpcp_array; + int percpu_enqueue_shift; + int percpu_enqueue_lim; + int percpu_dequeue_lim; + long unsigned int percpu_dequeue_gpseq; + struct mutex barrier_q_mutex; + atomic_t barrier_q_count; + struct completion barrier_q_completion; + long unsigned int barrier_q_seq; + long unsigned int barrier_q_start; + char *name; + char *kname; +}; + +struct rcu_tasks_percpu { + struct rcu_segcblist cblist; + raw_spinlock_t lock; + long unsigned int rtp_jiffies; + long unsigned int rtp_n_lock_retries; + struct timer_list lazy_timer; + unsigned int urgent_gp; + struct work_struct rtp_work; + struct irq_work rtp_irq_work; + struct callback_head barrier_q_head; + struct list_head rtp_blkd_tasks; + struct list_head rtp_exit_list; + int cpu; + int index; + struct rcu_tasks *rtpp; +}; + +struct rd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + struct in6_addr dest; + __u8 opt[0]; +}; + +struct rdev_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct md_rdev *, char *); + ssize_t (*store)(struct md_rdev *, const char *, size_t); +}; + +struct rdma_ah_init_attr { + struct rdma_ah_attr *ah_attr; + u32 flags; + struct net_device *xmit_slave; +}; + +struct rdma_cgroup { + struct cgroup_subsys_state css; + struct list_head rpools; +}; + +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; + long unsigned int timestamp; + long unsigned int lifespan; + const struct rdma_stat_desc *descs; + long unsigned int *is_disabled; + int num_counters; + u64 value[0]; +}; + +struct rdma_link_ops { + struct list_head list; + const char *type; + int (*newlink)(const char *, struct net_device *); +}; + +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_stat_desc { + const char *name; + unsigned int flags; + const void *priv; +}; + +struct rdma_user_mmap_entry { + struct kref ref; + struct ib_ucontext *ucontext; + long unsigned int start_pgoff; + size_t npages; + bool driver_removed; +}; + +struct rdmacg_resource { + int max; + int usage; +}; + +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 read_buffer { + struct list_head list; + unsigned int cons; + unsigned int len; + char msg[0]; +}; + +struct readahead_control { + struct file *file; + struct address_space *mapping; + struct file_ra_state *ra; + long unsigned int _index; + unsigned int _nr_pages; + unsigned int _batch_count; + bool dropbehind; + bool _workingset; + long unsigned int _pflags; +}; + +struct realm_config { + union { + struct { + long unsigned int ipa_bits; + long unsigned int hash_algo; + }; + u8 pad[512]; + }; + union { + u8 rpv[64]; + u8 pad2[3584]; + }; +}; + +struct virtnet_rq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t drops; + u64_stats_t xdp_packets; + u64_stats_t xdp_tx; + u64_stats_t xdp_redirects; + u64_stats_t xdp_drops; + u64_stats_t kicks; +}; + +struct virtnet_interrupt_coalesce { + u32 max_packets; + u32 max_usecs; +}; + +struct virtnet_rq_dma; + +struct receive_queue { + struct virtqueue *vq; + struct napi_struct napi; + struct bpf_prog *xdp_prog; + struct virtnet_rq_stats stats; + u16 calls; + bool dim_enabled; + struct mutex dim_lock; + struct dim dim; + u32 packets_in_napi; + struct virtnet_interrupt_coalesce intr_coal; + struct page *pages; + struct ewma_pkt_len mrg_avg_pkt_len; + struct page_frag alloc_frag; + struct scatterlist sg[19]; + unsigned int min_buf_len; + char name[16]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; + struct virtnet_rq_dma *last_dma; + struct xsk_buff_pool *xsk_pool; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xsk_rxq_info; + struct xdp_buff **xsk_buffs; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct reciprocal_value_adv { + u32 m; + u8 sh; + u8 exp; + bool is_wide_m; +}; + +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; + unsigned int nr_demoted; +}; + +struct reclaim_state { + long unsigned int reclaimed; + struct lru_gen_mm_walk *mm_walk; +}; + +struct recovery_info { + tid_t start_transaction; + tid_t end_transaction; + long unsigned int head_block; + int nr_replays; + int nr_revokes; + int nr_revoke_hits; +}; + +struct redist_region { + void *redist_base; + phys_addr_t phys_base; + bool single_redist; +}; + +struct reg_default { + unsigned int reg; + unsigned int def; +}; + +struct reg_field { + unsigned int reg; + unsigned int lsb; + unsigned int msb; + unsigned int id_size; + unsigned int id_offset; +}; + +struct reg_genl_event { + char reg_name[32]; + uint64_t event; +}; + +struct reg_mask_range { + __u64 addr; + __u32 range; + __u32 reserved[13]; +}; + +struct reg_value; + +struct reg_property { + const char *name; + const struct reg_value *values; + size_t num_values; + u32 def_value; + u32 set_value; +}; + +struct reg_sequence { + unsigned int reg; + unsigned int def; + unsigned int delay_us; +}; + +struct reg_value { + u32 of_value; + u32 reg_value; +}; + +struct regcache_ops { + const char *name; + enum regcache_type type; + int (*init)(struct regmap *); + int (*exit)(struct regmap *); + void (*debugfs_init)(struct regmap *); + int (*read)(struct regmap *, unsigned int, unsigned int *); + int (*write)(struct regmap *, unsigned int, unsigned int); + int (*sync)(struct regmap *, unsigned int, unsigned int); + int (*drop)(struct regmap *, unsigned int, unsigned int); +}; + +struct regcache_rbtree_node; + +struct regcache_rbtree_ctx { + struct rb_root root; + struct regcache_rbtree_node *cached_rbnode; +}; + +struct regcache_rbtree_node { + void *block; + long unsigned int *cache_present; + unsigned int base_reg; + unsigned int blklen; + struct rb_node node; +}; + +typedef int (*regex_match_func)(char *, struct regex *, int); + +struct regex { + char pattern[256]; + int len; + int field_len; + regex_match_func match; +}; + +struct region { + unsigned int start; + unsigned int off; + unsigned int group_len; + unsigned int end; + unsigned int nbits; +}; + +struct region_devres { + struct resource *parent; + resource_size_t start; + resource_size_t n; +}; + +struct registered_event_data { + u64 key; + enum pm_api_cb_id cb_type; + bool wake; + struct list_head cb_list_head; + struct hlist_node hentry; +}; + +typedef void (*regmap_lock)(void *); + +typedef void (*regmap_unlock)(void *); + +struct regmap_format { + size_t buf_size; + size_t reg_bytes; + size_t pad_bytes; + size_t val_bytes; + s8 reg_shift; + void (*format_write)(struct regmap *, unsigned int, unsigned int); + void (*format_reg)(void *, unsigned int, unsigned int); + void (*format_val)(void *, unsigned int, unsigned int); + unsigned int (*parse_val)(const void *); + void (*parse_inplace)(void *); +}; + +struct regmap_bus; + +struct regmap { + union { + struct mutex mutex; + struct { + spinlock_t spinlock; + long unsigned int spinlock_flags; + }; + struct { + raw_spinlock_t raw_spinlock; + long unsigned int raw_spinlock_flags; + }; + }; + struct lock_class_key *lock_key; + 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 max_register_is_set; + 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; + long unsigned int read_flag_mask; + long unsigned int write_flag_mask; + int reg_shift; + int reg_stride; + int reg_stride_order; + bool force_write_field; + const struct regcache_ops *cache_ops; + enum regcache_type cache_type; + unsigned int cache_size_raw; + unsigned int cache_word_size; + unsigned int num_reg_defaults; + unsigned int num_reg_defaults_raw; + bool cache_only; + bool cache_bypass; + bool cache_free; + struct reg_default *reg_defaults; + const void *reg_defaults_raw; + void *cache; + bool cache_dirty; + bool no_sync_defaults; + struct reg_sequence *patch; + int patch_regs; + bool use_single_read; + bool use_single_write; + bool can_multi_write; + size_t max_raw_read; + size_t max_raw_write; + struct rb_root range_tree; + void *selector_work_buf; + struct hwspinlock *hwlock; + bool can_sleep; +}; + +struct 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_async { + struct list_head list; + struct regmap *map; + void *work_buf; +}; + +struct spi_message { + struct list_head transfers; + struct spi_device *spi; + bool pre_optimized; + bool optimized; + bool prepared; + int status; + void (*complete)(void *); + void *context; + unsigned int frame_length; + unsigned int actual_length; + struct list_head queue; + void *state; + void *opt_state; + struct list_head resources; +}; + +struct spi_delay { + u16 value; + u8 unit; +}; + +struct spi_transfer { + const void *tx_buf; + void *rx_buf; + unsigned int len; + u16 error; + bool tx_sg_mapped; + bool rx_sg_mapped; + struct sg_table tx_sg; + struct sg_table rx_sg; + dma_addr_t tx_dma; + dma_addr_t rx_dma; + unsigned int dummy_data: 1; + unsigned int cs_off: 1; + unsigned int cs_change: 1; + unsigned int tx_nbits: 4; + unsigned int rx_nbits: 4; + unsigned int timestamped: 1; + u8 bits_per_word; + struct spi_delay delay; + struct spi_delay cs_change_delay; + struct spi_delay word_delay; + u32 speed_hz; + u32 effective_speed_hz; + unsigned int ptp_sts_word_pre; + unsigned int ptp_sts_word_post; + struct ptp_system_timestamp *ptp_sts; + struct list_head transfer_list; +}; + +struct regmap_async_spi { + struct regmap_async core; + struct spi_message m; + struct spi_transfer t[2]; +}; + +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); + +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)(void); + +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_range_cfg; + +struct regmap_config { + const char *name; + int reg_bits; + int reg_stride; + int reg_shift; + unsigned int reg_base; + int pad_bits; + int val_bits; + bool (*writeable_reg)(struct device *, unsigned int); + bool (*readable_reg)(struct device *, unsigned int); + bool (*volatile_reg)(struct device *, unsigned int); + bool (*precious_reg)(struct device *, unsigned int); + bool (*writeable_noinc_reg)(struct device *, unsigned int); + bool (*readable_noinc_reg)(struct device *, unsigned int); + 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 can_sleep; + bool fast_io; + bool io_port; + bool disable_locking; + regmap_lock lock; + regmap_unlock unlock; + void *lock_arg; + unsigned int max_register; + bool max_register_is_0; + 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; + long unsigned int read_flag_mask; + long unsigned int write_flag_mask; + bool zero_flag_mask; + bool use_single_read; + bool use_single_write; + bool use_relaxed_mmio; + bool can_multi_write; + bool use_hwlock; + bool use_raw_spinlock; + unsigned int hwlock_id; + unsigned int hwlock_mode; + enum regmap_endian reg_format_endian; + enum regmap_endian val_format_endian; + const struct regmap_range_cfg *ranges; + unsigned int num_ranges; +}; + +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; +}; + +struct regmap_field { + struct regmap *regmap; + unsigned int mask; + unsigned int shift; + unsigned int reg; + unsigned int id_size; + unsigned int id_offset; +}; + +struct regmap_irq_type { + unsigned int type_reg_offset; + unsigned int type_reg_mask; + unsigned int type_rising_val; + unsigned int type_falling_val; + unsigned int type_level_low_val; + unsigned int type_level_high_val; + unsigned int types_supported; +}; + +struct regmap_irq { + unsigned int reg_offset; + unsigned int mask; + struct regmap_irq_type type; +}; + +struct regmap_irq_sub_irq_map; + +struct regmap_irq_chip { + const char *name; + const char *domain_suffix; + unsigned int main_status; + unsigned int num_main_status_bits; + const struct regmap_irq_sub_irq_map *sub_reg_offsets; + int num_main_regs; + unsigned int status_base; + unsigned int mask_base; + unsigned int unmask_base; + unsigned int ack_base; + unsigned int wake_base; + const unsigned int *config_base; + unsigned int irq_reg_stride; + unsigned int init_ack_masked: 1; + unsigned int mask_unmask_non_inverted: 1; + unsigned int use_ack: 1; + unsigned int ack_invert: 1; + unsigned int clear_ack: 1; + unsigned int status_invert: 1; + unsigned int wake_invert: 1; + unsigned int type_in_mask: 1; + unsigned int clear_on_unmask: 1; + unsigned int runtime_pm: 1; + unsigned int no_status: 1; + int num_regs; + const struct regmap_irq *irqs; + int num_irqs; + int num_config_bases; + int num_config_regs; + int (*handle_pre_irq)(void *); + int (*handle_post_irq)(void *); + int (*handle_mask_sync)(int, unsigned int, unsigned int, void *); + int (*set_type_config)(unsigned int **, unsigned int, const struct regmap_irq *, int, void *); + unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); + void *irq_drv_data; +}; + +struct regmap_irq_chip_data { + struct mutex lock; + struct irq_chip irq_chip; + struct regmap *map; + const struct regmap_irq_chip *chip; + int irq_base; + struct irq_domain *domain; + int irq; + int wake_count; + void *status_reg_buf; + unsigned int *main_status_buf; + unsigned int *status_buf; + unsigned int *mask_buf; + unsigned int *mask_buf_def; + unsigned int *wake_buf; + unsigned int *type_buf; + unsigned int *type_buf_def; + unsigned int **config_buf; + unsigned int irq_reg_stride; + unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); + unsigned int clear_status: 1; +}; + +struct regmap_irq_sub_irq_map { + unsigned int num_regs; + unsigned int *offset; +}; + +struct regmap_mmio_context { + void *regs; + unsigned int val_bytes; + bool big_endian; + bool attached_clk; + struct clk *clk; + void (*reg_write)(struct regmap_mmio_context *, unsigned int, unsigned int); + unsigned int (*reg_read)(struct regmap_mmio_context *, unsigned int); +}; + +struct regmap_range { + unsigned int range_min; + unsigned int range_max; +}; + +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 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 regulator_voltage { + int min_uV; + int max_uV; +}; + +struct regulator { + struct device *dev; + struct list_head list; + unsigned int always_on: 1; + unsigned int bypass: 1; + unsigned int device_link: 1; + int uA_load; + unsigned int enable_count; + unsigned int deferred_disables; + struct regulator_voltage voltage[5]; + const char *supply_name; + struct device_attribute dev_attr; + struct regulator_dev *rdev; + struct dentry *debugfs; +}; + +struct regulator_bulk_devres { + struct regulator_bulk_data *consumers; + int num_consumers; +}; + +struct regulator_config { + struct device *dev; + const struct regulator_init_data *init_data; + void *driver_data; + struct device_node *of_node; + struct regmap *regmap; + struct gpio_desc *ena_gpiod; +}; + +struct regulator_consumer_supply { + const char *dev_name; + const char *supply; +}; + +struct regulator_enable_gpio; + +struct regulator_dev { + const struct regulator_desc *desc; + int exclusive; + u32 use_count; + u32 open_count; + u32 bypass_count; + struct list_head list; + struct list_head consumer_list; + struct coupling_desc coupling_desc; + struct blocking_notifier_head notifier; + struct ww_mutex mutex; + struct task_struct *mutex_owner; + int ref_cnt; + struct module *owner; + struct device dev; + struct regulation_constraints *constraints; + struct regulator *supply; + const char *supply_name; + struct regmap *regmap; + struct delayed_work disable_work; + void *reg_data; + struct dentry *debugfs; + struct regulator_enable_gpio *ena_pin; + unsigned int ena_gpio_state: 1; + unsigned int is_switch: 1; + ktime_t last_off; + int cached_err; + bool use_cached_err; + spinlock_t err_lock; + int pw_requested_mW; +}; + +struct regulator_enable_gpio { + struct list_head list; + struct gpio_desc *gpiod; + u32 enable_count; + u32 request_count; +}; + +struct regulator_err_state { + struct regulator_dev *rdev; + long unsigned int notifs; + long unsigned int errors; + int possible_errs; +}; + +struct regulator_irq_data { + struct regulator_err_state *states; + int num_states; + void *data; + long int opaque; +}; + +struct regulator_irq_desc { + const char *name; + int fatal_cnt; + int reread_ms; + int irq_off_ms; + bool skip_off; + bool high_prio; + void *data; + int (*die)(struct regulator_irq_data *); + int (*map_event)(int, struct regulator_irq_data *, long unsigned int *); + int (*renable)(struct regulator_irq_data *); +}; + +struct regulator_irq { + struct regulator_irq_data rdata; + struct regulator_irq_desc desc; + int irq; + int retry_cnt; + struct delayed_work isr_work; +}; + +struct regulator_map { + struct list_head list; + const char *dev_name; + const char *supply; + struct regulator_dev *regulator; +}; + +struct regulator_notifier_match { + struct regulator *regulator; + struct notifier_block *nb; +}; + +struct regulator_ops { + int (*list_voltage)(struct regulator_dev *, unsigned int); + int (*set_voltage)(struct regulator_dev *, int, int, unsigned int *); + int (*map_voltage)(struct regulator_dev *, int, int); + int (*set_voltage_sel)(struct regulator_dev *, unsigned int); + int (*get_voltage)(struct regulator_dev *); + int (*get_voltage_sel)(struct regulator_dev *); + int (*set_current_limit)(struct regulator_dev *, int, int); + int (*get_current_limit)(struct regulator_dev *); + int (*set_input_current_limit)(struct regulator_dev *, int); + int (*set_over_current_protection)(struct regulator_dev *, int, int, bool); + int (*set_over_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_under_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_thermal_protection)(struct regulator_dev *, int, int, bool); + int (*set_active_discharge)(struct regulator_dev *, bool); + int (*enable)(struct regulator_dev *); + int (*disable)(struct regulator_dev *); + int (*is_enabled)(struct regulator_dev *); + int (*set_mode)(struct regulator_dev *, unsigned int); + unsigned int (*get_mode)(struct regulator_dev *); + int (*get_error_flags)(struct regulator_dev *, unsigned int *); + int (*enable_time)(struct regulator_dev *); + int (*set_ramp_delay)(struct regulator_dev *, int); + int (*set_voltage_time)(struct regulator_dev *, int, int); + int (*set_voltage_time_sel)(struct regulator_dev *, unsigned int, unsigned int); + int (*set_soft_start)(struct regulator_dev *); + int (*get_status)(struct regulator_dev *); + unsigned int (*get_optimum_mode)(struct regulator_dev *, int, int, int); + int (*set_load)(struct regulator_dev *, int); + int (*set_bypass)(struct regulator_dev *, bool); + int (*get_bypass)(struct regulator_dev *, bool *); + int (*set_suspend_voltage)(struct regulator_dev *, int); + int (*set_suspend_enable)(struct regulator_dev *); + int (*set_suspend_disable)(struct regulator_dev *); + int (*set_suspend_mode)(struct regulator_dev *, unsigned int); + int (*resume)(struct regulator_dev *); + int (*set_pull_down)(struct regulator_dev *); +}; + +struct regulator_supply_alias { + struct list_head list; + struct device *src_dev; + const char *src_supply; + struct device *alias_dev; + const char *alias_supply; +}; + +struct regulator_supply_alias_match { + struct device *dev; + const char *id; +}; + +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 xen_remap_gfn_info; + +struct remap_data { + xen_pfn_t *fgfn; + int nr_fgfn; + pgprot_t prot; + domid_t domid; + struct vm_area_struct *vma; + int index; + struct page **pages; + struct xen_remap_gfn_info *info; + int *err_ptr; + int mapped; + int h_errs[1]; + xen_ulong_t h_idxs[1]; + xen_pfn_t h_gpfns[1]; + int h_iter; +}; + +struct remap_pfn { + struct mm_struct *mm; + struct page **pages; + pgprot_t prot; + long unsigned int i; +}; + +typedef int (*remote_function_f)(void *); + +struct remote_function_call { + struct task_struct *p; + remote_function_f func; + void *info; + int ret; +}; + +struct remote_output { + struct perf_buffer *rb; + int err; +}; + +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 renesas_family { + const char name[16]; + u32 reg; +}; + +struct renesas_id { + unsigned int offset; + u32 mask; +}; + +struct renesas_soc { + const struct renesas_family *family; + u32 id; +}; + +struct repcodes_s { + U32 rep[3]; +}; + +typedef struct repcodes_s repcodes_t; + +struct reply_func { + int type; + int (*cb)(struct net_device *, struct nlmsghdr *, u32, struct nlattr **, struct sk_buff *); +}; + +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 req_iterator { + struct bvec_iter iter; + struct bio *bio; +}; + +typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t); + +struct request { + struct request_queue *q; + struct blk_mq_ctx *mq_ctx; + struct blk_mq_hw_ctx *mq_hctx; + blk_opf_t cmd_flags; + req_flags_t rq_flags; + int tag; + int internal_tag; + unsigned int timeout; + unsigned int __data_len; + 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; + short unsigned int wbt_flags; + short unsigned int stats_sectors; + short unsigned int nr_phys_segments; + short unsigned int nr_integrity_segments; + struct bio_crypt_ctx *crypt_ctx; + struct blk_crypto_keyslot *crypt_keyslot; + enum mq_rq_state state; + atomic_t ref; + long unsigned int deadline; + union { + struct hlist_node hash; + struct llist_node ipi_list; + }; + union { + struct rb_node rb_node; + struct bio_vec special_vec; + }; + struct { + struct io_cq *icq; + void *priv[2]; + } elv; + struct { + unsigned int seq; + rq_end_io_fn *saved_end_io; + } flush; + u64 fifo_time; + rq_end_io_fn *end_io; + void *end_io_data; +}; + +struct 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 throtl_data; + +struct request_queue { + void *queuedata; + struct elevator_queue *elevator; + const struct blk_mq_ops *mq_ops; + struct blk_mq_ctx *queue_ctx; + long unsigned int queue_flags; + unsigned int rq_timeout; + unsigned int queue_depth; + refcount_t refs; + unsigned int nr_hw_queues; + struct xarray hctx_table; + struct percpu_ref q_usage_counter; + struct lock_class_key io_lock_cls_key; + struct lockdep_map io_lockdep_map; + struct lock_class_key q_lock_cls_key; + struct lockdep_map q_lockdep_map; + struct request *last_merge; + spinlock_t queue_lock; + int quiesce_depth; + struct gendisk *disk; + struct kobject *mq_kobj; + struct queue_limits limits; + struct device *dev; + enum rpm_status rpm_status; + atomic_t pm_only; + struct blk_queue_stats *stats; + struct rq_qos *rq_qos; + struct mutex rq_qos_mutex; + int id; + long unsigned int nr_requests; + struct blk_crypto_profile *crypto_profile; + struct kobject *crypto_kobject; + 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; + long unsigned int blkcg_pols[1]; + struct blkcg_gq *root_blkg; + struct list_head blkg_list; + struct mutex blkcg_mutex; + int node; + spinlock_t requeue_lock; + struct list_head requeue_list; + struct delayed_work requeue_work; + struct blk_trace *blk_trace; + struct blk_flush_queue *fq; + struct list_head flush_list; + struct mutex sysfs_lock; + struct mutex limits_lock; + struct list_head unused_hctx_list; + spinlock_t unused_hctx_lock; + int mq_freeze_depth; + struct throtl_data *td; + struct callback_head callback_head; + wait_queue_head_t mq_freeze_wq; + struct mutex mq_freeze_lock; + 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; +}; + +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 request_sock__safe_rcu_or_null { + struct sock *sk; +}; + +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 *, enum sk_rst_reason); + void (*destructor)(struct request_sock *); + void (*syn_ack_timeout)(const struct request_sock *); +}; + +struct res_proc_context { + struct list_head *list; + int (*preproc)(struct acpi_resource *, void *); + void *preproc_data; + int count; + int error; +}; + +struct reserve_mem_table { + char name[16]; + phys_addr_t start; + phys_addr_t size; +}; + +struct reserved_mem_ops; + +struct reserved_mem { + const char *name; + long unsigned int fdt_node; + const struct reserved_mem_ops *ops; + phys_addr_t base; + phys_addr_t size; + void *priv; +}; + +struct reserved_mem_ops { + int (*device_init)(struct reserved_mem *, struct device *); + void (*device_release)(struct reserved_mem *, struct device *); +}; + +struct reset_control { + struct reset_controller_dev *rcdev; + struct list_head list; + unsigned int id; + struct kref refcnt; + bool acquired; + bool shared; + bool array; + atomic_t deassert_count; + atomic_t triggered_count; +}; + +struct reset_control_array { + struct reset_control base; + unsigned int num_rstcs; + struct reset_control *rstc[0]; +}; + +struct reset_control_bulk_devres { + int num_rstcs; + struct reset_control_bulk_data *rstcs; +}; + +struct reset_control_lookup { + struct list_head list; + const char *provider; + unsigned int index; + const char *dev_id; + const char *con_id; +}; + +struct reset_dom_info { + bool async_reset; + bool reset_notify; + u32 latency_us; + char name[64]; +}; + +struct reset_gpio_lookup { + struct of_phandle_args of_args; + struct list_head list; +}; + +struct reset_props { + u32 protect_reg; + u32 protect_bit; + u32 reset_reg; + u32 reset_bit; +}; + +struct reset_props___2 { + const char *syscon; + u32 protect_reg; + u32 vcore_protect; + u32 if_si_owner_bit; +}; + +struct reset_simple_data { + spinlock_t lock; + void *membase; + struct reset_controller_dev rcdev; + bool active_low; + bool status_active_low; + unsigned int reset_us; +}; + +struct reset_simple_devdata { + u32 reg_offset; + u32 nr_resets; + bool active_low; + bool status_active_low; +}; + +typedef resource_size_t (*resource_alignf)(void *, const struct resource *, resource_size_t, resource_size_t); + +struct resource_constraint { + resource_size_t min; + resource_size_t max; + resource_size_t align; + resource_alignf alignf; + void *alignf_data; +}; + +struct resource_entry { + struct list_head node; + struct resource *res; + resource_size_t offset; + struct resource __res; +}; + +struct resource_table { + u32 ver; + u32 num; + u32 reserved[2]; + u32 offset[0]; +}; + +struct resource_win { + struct resource res; + resource_size_t offset; +}; + +struct restart_block { + long unsigned int arch_data; + long int (*fn)(struct restart_block *); + union { + struct { + u32 *uaddr; + u32 val; + u32 flags; + u32 bitset; + u64 time; + u32 *uaddr2; + } futex; + struct { + clockid_t clockid; + enum timespec_type type; + union { + struct __kernel_timespec *rmtp; + struct old_timespec32 *compat_rmtp; + }; + u64 expires; + } nanosleep; + struct { + struct pollfd *ufds; + int nfds; + int has_timeout; + long unsigned int tv_sec; + long unsigned int tv_nsec; + } poll; + }; +}; + +struct resume_performance_record { + struct fpdt_record_header header; + u32 resume_count; + u64 resume_prev; + u64 resume_avg; +}; + +struct resv_map { + struct kref refs; + spinlock_t lock; + struct list_head regions; + long int adds_in_progress; + struct list_head region_cache; + long int region_cache_count; + struct rw_semaphore rw_sema; + struct page_counter *reservation_counter; + long unsigned int pages_per_hpage; + struct cgroup_subsys_state *css; +}; + +struct return_address_data { + unsigned int level; + void *addr; +}; + +struct return_consumer { + __u64 cookie; + __u64 id; +}; + +struct return_instance { + struct hprobe hprobe; + long unsigned int func; + long unsigned int stack; + long unsigned int orig_ret_vaddr; + bool chained; + int cons_cnt; + struct return_instance *next; + struct callback_head rcu; + struct return_consumer consumer; + struct return_consumer *extra_consumers; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct reuseport_array { + struct bpf_map map; + struct sock *ptrs[0]; +}; + +struct rfkill_ops; + +struct rfkill { + spinlock_t lock; + enum rfkill_type type; + long unsigned int state; + long unsigned int hard_block_reasons; + u32 idx; + bool registered; + bool persistent; + bool polling_paused; + bool suspended; + bool need_sync; + const struct rfkill_ops *ops; + void *data; + struct led_trigger led_trigger; + const char *ledtrigname; + struct device dev; + struct list_head node; + struct delayed_work poll_work; + struct work_struct uevent_work; + struct work_struct sync_work; + char name[0]; +}; + +struct rfkill_data { + struct list_head list; + struct list_head events; + struct mutex mtx; + wait_queue_head_t read_wait; + bool input_handler; +}; + +struct rfkill_event_ext { + __u32 idx; + __u8 type; + __u8 op; + __u8 soft; + __u8 hard; + __u8 hard_block_reasons; +} __attribute__((packed)); + +struct rfkill_int_event { + struct list_head list; + struct rfkill_event_ext ev; +}; + +struct rfkill_ops { + void (*poll)(struct rfkill *, void *); + void (*query)(struct rfkill *, void *); + int (*set_block)(void *, bool); +}; + +struct rgb { + u8 r; + u8 g; + u8 b; +}; + +struct rhash_lock_head {}; + +struct rhashtable_compare_arg { + struct rhashtable *ht; + const void *key; +}; + +struct ring_buffer_event { + u32 type_len: 5; + u32 time_delta: 27; + u32 array[0]; +}; + +struct ring_buffer_per_cpu; + +struct ring_buffer_iter { + struct ring_buffer_per_cpu *cpu_buffer; + long unsigned int head; + long unsigned int next_event; + struct buffer_page *head_page; + struct buffer_page *cache_reader_page; + long unsigned int cache_read; + long unsigned int cache_pages_removed; + u64 read_stamp; + u64 page_stamp; + struct ring_buffer_event *event; + size_t event_size; + int missed_events; +}; + +struct ring_buffer_meta { + int magic; + int struct_size; + long unsigned int kaslr_addr; + long unsigned int first_buffer; + long unsigned int head_buffer; + long unsigned int commit_buffer; + __u32 subbuf_size; + __u32 nr_subbufs; + int buffers[0]; +}; + +struct trace_buffer_meta; + +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; + long unsigned int nr_pages; + unsigned int current_context; + struct list_head *pages; + long unsigned int cnt; + struct buffer_page *head_page; + struct buffer_page *tail_page; + struct buffer_page *commit_page; + struct buffer_page *reader_page; + long unsigned int lost_events; + long unsigned int last_overrun; + long unsigned int 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 int last_pages_touch; + size_t shortest_full; + long unsigned int read; + long unsigned int read_bytes; + rb_time_t write_stamp; + rb_time_t before_stamp; + u64 event_stamp[5]; + u64 read_stamp; + long unsigned int pages_removed; + unsigned int mapped; + unsigned int user_mapped; + struct mutex mapping_lock; + long unsigned int *subbuf_ids; + struct trace_buffer_meta *meta_page; + struct ring_buffer_meta *ring_meta; + long int 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 ringacc_match_data { + struct k3_ringacc_ops ops; +}; + +struct rings_reply_data { + struct ethnl_reply_data base; + struct ethtool_ringparam ringparam; + struct kernel_ethtool_ringparam kernel_ringparam; + u32 supported_ring_params; +}; + +struct rio_mport; + +struct rio_dbell { + struct list_head node; + struct resource *res; + void (*dinb)(struct rio_mport *, void *, u16, u16, u16); + void *dev_id; +}; + +struct rio_switch_ops; + +struct rio_dev; + +struct rio_switch { + struct list_head node; + u8 *route_table; + u32 port_ok; + struct rio_switch_ops *ops; + spinlock_t lock; + struct rio_dev *nextdev[0]; +}; + +struct rio_net; + +struct rio_driver; + +union rio_pw_msg; + +struct rio_dev { + struct list_head global_list; + struct list_head net_list; + struct rio_net *net; + bool do_enum; + u16 did; + u16 vid; + u32 device_rev; + u16 asm_did; + u16 asm_vid; + u16 asm_rev; + u16 efptr; + u32 pef; + u32 swpinfo; + u32 src_ops; + u32 dst_ops; + u32 comp_tag; + u32 phys_efptr; + u32 phys_rmap; + u32 em_efptr; + u64 dma_mask; + struct rio_driver *driver; + struct device dev; + struct resource riores[16]; + int (*pwcback)(struct rio_dev *, union rio_pw_msg *, int); + u16 destid; + u8 hopcount; + struct rio_dev *prev; + atomic_t state; + struct rio_switch rswitch[0]; +}; + +struct rio_device_id { + __u16 did; + __u16 vid; + __u16 asm_did; + __u16 asm_vid; +}; + +struct rio_disc_work { + struct work_struct work; + struct rio_mport *mport; +}; + +struct rio_dma_data { + struct scatterlist *sg; + unsigned int sg_len; + u64 rio_addr; + u8 rio_addr_u; + enum rio_write_type wr_type; +}; + +struct rio_dma_ext { + u16 destid; + u64 rio_addr; + u8 rio_addr_u; + enum rio_write_type wr_type; +}; + +struct rio_driver { + struct list_head node; + char *name; + const struct rio_device_id *id_table; + int (*probe)(struct rio_dev *, const struct rio_device_id *); + void (*remove)(struct rio_dev *); + void (*shutdown)(struct rio_dev *); + int (*suspend)(struct rio_dev *, u32); + int (*resume)(struct rio_dev *); + int (*enable_wake)(struct rio_dev *, u32, int); + struct device_driver driver; +}; + +struct rio_msg { + struct resource *res; + void (*mcback)(struct rio_mport *, void *, int, int); +}; + +struct rio_ops; + +struct rio_scan; + +struct rio_mport { + struct list_head dbells; + struct list_head pwrites; + struct list_head node; + struct list_head nnode; + struct rio_net *net; + struct mutex lock; + struct resource iores; + struct resource riores[16]; + struct rio_msg inb_msg[4]; + struct rio_msg outb_msg[4]; + int host_deviceid; + struct rio_ops *ops; + unsigned char id; + unsigned char index; + unsigned int sys_size; + u32 phys_efptr; + u32 phys_rmap; + unsigned char name[40]; + struct device dev; + void *priv; + struct dma_device dma; + struct rio_scan *nscan; + atomic_t state; + unsigned int pwe_refcnt; +}; + +struct rio_mport_attr { + int flags; + int link_speed; + int link_width; + int dma_max_sge; + int dma_max_size; + int dma_align; +}; + +struct rio_net { + struct list_head node; + struct list_head devices; + struct list_head switches; + struct list_head mports; + struct rio_mport *hport; + unsigned char id; + struct device dev; + void *enum_data; + void (*release)(struct rio_net *); +}; + +struct rio_ops { + int (*lcread)(struct rio_mport *, int, u32, int, u32 *); + int (*lcwrite)(struct rio_mport *, int, u32, int, u32); + int (*cread)(struct rio_mport *, int, u16, u8, u32, int, u32 *); + int (*cwrite)(struct rio_mport *, int, u16, u8, u32, int, u32); + int (*dsend)(struct rio_mport *, int, u16, u16); + int (*pwenable)(struct rio_mport *, int); + int (*open_outb_mbox)(struct rio_mport *, void *, int, int); + void (*close_outb_mbox)(struct rio_mport *, int); + int (*open_inb_mbox)(struct rio_mport *, void *, int, int); + void (*close_inb_mbox)(struct rio_mport *, int); + int (*add_outb_message)(struct rio_mport *, struct rio_dev *, int, void *, size_t); + int (*add_inb_buffer)(struct rio_mport *, int, void *); + void * (*get_inb_message)(struct rio_mport *, int); + int (*map_inb)(struct rio_mport *, dma_addr_t, u64, u64, u32); + void (*unmap_inb)(struct rio_mport *, dma_addr_t); + int (*query_mport)(struct rio_mport *, struct rio_mport_attr *); + int (*map_outb)(struct rio_mport *, u16, u64, u32, u32, dma_addr_t *); + void (*unmap_outb)(struct rio_mport *, u16, u64); +}; + +union rio_pw_msg { + struct { + u32 comptag; + u32 errdetect; + u32 is_port; + u32 ltlerrdet; + u32 padding[12]; + } em; + u32 raw[16]; +}; + +struct rio_pwrite { + struct list_head node; + int (*pwcback)(struct rio_mport *, void *, union rio_pw_msg *, int); + void *context; +}; + +struct rio_scan { + struct module *owner; + int (*enumerate)(struct rio_mport *, u32); + int (*discover)(struct rio_mport *, u32); +}; + +struct rio_scan_node { + int mport_id; + struct list_head node; + struct rio_scan *ops; +}; + +struct rio_switch_ops { + struct module *owner; + int (*add_entry)(struct rio_mport *, u16, u8, u16, u16, u8); + int (*get_entry)(struct rio_mport *, u16, u8, u16, u16, u8 *); + int (*clr_table)(struct rio_mport *, u16, u8, u16); + int (*set_domain)(struct rio_mport *, u16, u8, u8); + int (*get_domain)(struct rio_mport *, u16, u8, u8 *); + int (*em_init)(struct rio_dev *); + int (*em_handle)(struct rio_dev *, u8); +}; + +struct rk_timer { + void *base; + void *ctrl; + struct clk *clk; + struct clk *pclk; + u32 freq; + int irq; +}; + +struct rk_clkevt { + struct clock_event_device ce; + struct rk_timer timer; + long: 64; + long: 64; + long: 64; +}; + +struct rk_iommu { + struct device *dev; + void **bases; + int num_mmu; + int num_irq; + struct clk_bulk_data *clocks; + int num_clocks; + bool reset_disabled; + struct iommu_device iommu; + struct list_head node; + struct iommu_domain *domain; +}; + +struct rk_iommu_domain { + struct list_head iommus; + u32 *dt; + dma_addr_t dt_dma; + spinlock_t iommus_lock; + spinlock_t dt_lock; + struct iommu_domain domain; +}; + +struct rk_iommu_ops { + phys_addr_t (*pt_address)(u32); + u32 (*mk_dtentries)(dma_addr_t); + u32 (*mk_ptentries)(phys_addr_t, int); + u64 dma_bit_mask; + gfp_t gfp_flags; +}; + +struct rk_iommudata { + struct device_link *link; + struct rk_iommu *iommu; +}; + +struct rk_rng { + struct hwrng rng; + void *base; + int clk_num; + struct clk_bulk_data *clk_bulks; +}; + +struct rlimit64 { + __u64 rlim_cur; + __u64 rlim_max; +}; + +struct rm_feature_desc { + __be16 feature_code; + __u8 curr: 1; + __u8 persistent: 1; + __u8 feature_version: 4; + __u8 reserved1: 2; + __u8 add_len; + __u8 lock: 1; + __u8 dbml: 1; + __u8 pvnt_jmpr: 1; + __u8 eject: 1; + __u8 load: 1; + __u8 mech_type: 3; + __u8 reserved2; + __u8 reserved3; + __u8 reserved4; +}; + +struct rmap_walk_arg { + struct folio *folio; + bool map_unused_to_zeropage; +}; + +struct rmap_walk_control { + void *arg; + bool try_lock; + bool contended; + bool (*rmap_one)(struct folio *, struct vm_area_struct *, long unsigned int, void *); + int (*done)(struct folio *); + struct anon_vma * (*anon_lock)(const struct folio *, struct rmap_walk_control *); + bool (*invalid_vma)(struct vm_area_struct *, void *); +}; + +struct rmem_assigned_device { + struct device *dev; + struct reserved_mem *rmem; + struct list_head list; +}; + +struct rnd_state { + __u32 s1; + __u32 s2; + __u32 s3; + __u32 s4; +}; + +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 robust_list { + struct robust_list *next; +}; + +struct robust_list_head { + struct robust_list list; + long int futex_offset; + struct robust_list *list_op_pending; +}; + +struct rockchip_clk_branch { + unsigned int id; + enum rockchip_clk_branch_type branch_type; + const char *name; + const char * const *parent_names; + u8 num_parents; + long unsigned int flags; + int muxdiv_offset; + u8 mux_shift; + u8 mux_width; + u8 mux_flags; + u32 *mux_table; + int div_offset; + u8 div_shift; + u8 div_width; + u8 div_flags; + struct clk_div_table *div_table; + int gate_offset; + u8 gate_shift; + u8 gate_flags; + unsigned int linked_clk_id; + struct rockchip_clk_branch *child; +}; + +struct rockchip_clk_frac { + struct notifier_block clk_nb; + struct clk_fractional_divider div; + struct clk_gate gate; + struct clk_mux mux; + const struct clk_ops *mux_ops; + int mux_frac_idx; + bool rate_change_remuxed; + int rate_change_idx; +}; + +struct rockchip_pll_rate_table; + +struct rockchip_clk_provider; + +struct rockchip_clk_pll { + struct clk_hw hw; + struct clk_mux pll_mux; + const struct clk_ops *pll_mux_ops; + struct notifier_block clk_nb; + void *reg_base; + int lock_offset; + unsigned int lock_shift; + enum rockchip_pll_type type; + u8 flags; + const struct rockchip_pll_rate_table *rate_table; + unsigned int rate_count; + spinlock_t *lock; + struct rockchip_clk_provider *ctx; +}; + +struct rockchip_clk_provider { + void *reg_base; + struct clk_onecell_data clk_data; + struct device_node *cru_node; + struct regmap *grf; + spinlock_t lock; +}; + +struct rockchip_cpuclk_rate_table; + +struct rockchip_cpuclk_reg_data; + +struct rockchip_cpuclk { + struct clk_hw hw; + struct clk *alt_parent; + void *reg_base; + struct notifier_block clk_nb; + unsigned int rate_count; + struct rockchip_cpuclk_rate_table *rate_table; + const struct rockchip_cpuclk_reg_data *reg_data; + spinlock_t *lock; +}; + +struct rockchip_cpuclk_clksel { + int reg; + u32 val; +}; + +struct rockchip_cpuclk_rate_table { + long unsigned int prate; + struct rockchip_cpuclk_clksel divs[6]; + struct rockchip_cpuclk_clksel pre_muxs[6]; + struct rockchip_cpuclk_clksel post_muxs[6]; +}; + +struct rockchip_cpuclk_reg_data { + int core_reg[4]; + u8 div_core_shift[4]; + u32 div_core_mask[4]; + int num_cores; + int mux_core_reg; + u8 mux_core_alt; + u8 mux_core_main; + u8 mux_core_shift; + u32 mux_core_mask; +}; + +struct rockchip_ddrclk { + struct clk_hw hw; + void *reg_base; + int mux_offset; + int mux_shift; + int mux_width; + int div_shift; + int div_width; + int ddr_flag; + spinlock_t *lock; +}; + +struct rockchip_domain_info { + const char *name; + int pwr_mask; + int status_mask; + int req_mask; + int idle_mask; + int ack_mask; + bool active_wakeup; + int pwr_w_mask; + int req_w_mask; + int clk_ungate_mask; + int mem_status_mask; + int repair_status_mask; + u32 pwr_offset; + u32 mem_offset; + u32 req_offset; +}; + +struct rockchip_drv { + enum rockchip_pin_drv_type drv_type; + int offset; +}; + +struct rockchip_gate_link_platdata { + struct rockchip_clk_provider *ctx; + struct rockchip_clk_branch *clkbr; +}; + +struct rockchip_gpio_regs { + u32 port_dr; + u32 port_ddr; + u32 int_en; + u32 int_mask; + u32 int_type; + u32 int_polarity; + u32 int_bothedge; + u32 int_status; + u32 int_rawstatus; + u32 debounce; + u32 dbclk_div_en; + u32 dbclk_div_con; + u32 port_eoi; + u32 ext_port; + u32 version_id; +}; + +struct rockchip_grf_value; + +struct rockchip_grf_info { + const struct rockchip_grf_value *values; + int num_values; +}; + +struct rockchip_grf_value { + const char *desc; + u32 reg; + u32 val; +}; + +struct rockchip_inv_clock { + struct clk_hw hw; + void *reg; + int shift; + int flags; + spinlock_t *lock; +}; + +struct rockchip_iomux { + int type; + int offset; +}; + +struct rockchip_mbox_chan; + +struct rockchip_mbox { + struct mbox_controller mbox; + struct clk *pclk; + void *mbox_base; + u32 buf_size; + struct rockchip_mbox_chan *chans; +}; + +struct rockchip_mbox_msg; + +struct rockchip_mbox_chan { + int idx; + int irq; + struct rockchip_mbox_msg *msg; + struct rockchip_mbox *mb; +}; + +struct rockchip_mbox_data { + int num_chans; +}; + +struct rockchip_mbox_msg { + u32 cmd; + int rx_size; +}; + +struct rockchip_mmc_clock { + struct clk_hw hw; + void *reg; + int shift; + int cached_phase; + struct notifier_block clk_rate_change_nb; +}; + +struct rockchip_mux_recalced_data { + u8 num; + u8 pin; + u32 reg; + u8 bit; + u8 mask; +}; + +struct rockchip_mux_route_data { + u8 bank_num; + u8 pin; + u8 func; + enum rockchip_mux_route_location route_location; + u32 route_offset; + u32 route_val; +}; + +struct rockchip_muxgrf_clock { + struct clk_hw hw; + struct regmap *regmap; + u32 reg; + u32 shift; + u32 width; + int flags; +}; + +struct rockchip_pcie_of_data; + +struct rockchip_pcie { + struct dw_pcie pci; + void *apb_base; + struct phy *phy; + struct clk_bulk_data *clks; + unsigned int clk_cnt; + struct reset_control *rst; + struct gpio_desc *rst_gpio; + struct regulator *vpcie3v3; + struct irq_domain *irq_domain; + const struct rockchip_pcie_of_data *data; +}; + +struct rockchip_pcie___2 { + void *reg_base; + void *apb_base; + bool legacy_phy; + struct phy *phys[4]; + struct reset_control_bulk_data pm_rsts[3]; + struct reset_control_bulk_data core_rsts[4]; + struct clk_bulk_data *clks; + int num_clks; + struct regulator *vpcie12v; + struct regulator *vpcie3v3; + struct regulator *vpcie1v8; + struct regulator *vpcie0v9; + struct gpio_desc *perst_gpio; + u32 lanes; + u8 lanes_map; + int link_gen; + struct device *dev; + struct irq_domain *irq_domain; + int offset; + void *msg_region; + phys_addr_t msg_bus_addr; + bool is_rc; + struct resource *mem_res; +}; + +struct rockchip_pcie_ep { + struct rockchip_pcie___2 rockchip; + struct pci_epc *epc; + u32 max_regions; + long unsigned int ob_region_map; + phys_addr_t *ob_addr; + phys_addr_t irq_phys_addr; + void *irq_cpu_addr; + u64 irq_pci_addr; + u8 irq_pci_fn; + u8 irq_pending; + int perst_irq; + bool perst_asserted; + bool link_up; + struct delayed_work link_training; +}; + +struct rockchip_pcie_of_data { + enum dw_pcie_device_mode mode; + const struct pci_epc_features *epc_features; +}; + +struct rockchip_pinctrl; + +struct rockchip_pin_bank { + struct device *dev; + void *reg_base; + struct regmap *regmap_pull; + struct clk *clk; + struct clk *db_clk; + int irq; + u32 saved_masks; + u32 pin_base; + u8 nr_pins; + char *name; + u8 bank_num; + struct rockchip_iomux iomux[4]; + struct rockchip_drv drv[4]; + enum rockchip_pin_pull_type pull_type[4]; + bool valid; + struct device_node *of_node; + struct rockchip_pinctrl *drvdata; + struct irq_domain *domain; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range grange; + raw_spinlock_t slock; + const struct rockchip_gpio_regs *gpio_regs; + u32 gpio_type; + u32 toggle_edge_mode; + u32 recalced_mask; + u32 route_mask; + struct list_head deferred_pins; + struct mutex deferred_lock; +}; + +struct rockchip_pin_config { + unsigned int func; + long unsigned int *configs; + unsigned int nconfigs; +}; + +struct rockchip_pin_ctrl { + struct rockchip_pin_bank *pin_banks; + u32 nr_banks; + u32 nr_pins; + char *label; + enum rockchip_pinctrl_type type; + int grf_mux_offset; + int pmu_mux_offset; + int grf_drv_offset; + int pmu_drv_offset; + struct rockchip_mux_recalced_data *iomux_recalced; + u32 niomux_recalced; + struct rockchip_mux_route_data *iomux_routes; + u32 niomux_routes; + int (*pull_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); + int (*drv_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); + int (*schmitt_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); +}; + +struct rockchip_pin_deferred { + struct list_head head; + unsigned int pin; + enum pin_config_param param; + u32 arg; +}; + +struct rockchip_pin_group { + const char *name; + unsigned int npins; + unsigned int *pins; + struct rockchip_pin_config *data; +}; + +struct rockchip_pmx_func; + +struct rockchip_pinctrl { + struct regmap *regmap_base; + int reg_size; + struct regmap *regmap_pull; + struct regmap *regmap_pmu; + struct device *dev; + struct rockchip_pin_ctrl *ctrl; + struct pinctrl_desc pctl; + struct pinctrl_dev *pctl_dev; + struct rockchip_pin_group *groups; + unsigned int ngroups; + struct rockchip_pmx_func *functions; + unsigned int nfunctions; +}; + +struct rockchip_pll_clock { + unsigned int id; + const char *name; + const char * const *parent_names; + u8 num_parents; + long unsigned int flags; + int con_offset; + int mode_offset; + int mode_shift; + int lock_shift; + enum rockchip_pll_type type; + u8 pll_flags; + struct rockchip_pll_rate_table *rate_table; +}; + +struct rockchip_pll_rate_table { + long unsigned int rate; + union { + struct { + unsigned int nr; + unsigned int nf; + unsigned int no; + unsigned int nb; + }; + struct { + unsigned int fbdiv; + unsigned int postdiv1; + unsigned int refdiv; + unsigned int postdiv2; + unsigned int dsmpd; + unsigned int frac; + }; + struct { + unsigned int m; + unsigned int p; + unsigned int s; + unsigned int k; + }; + }; +}; + +struct rockchip_pmu; + +struct rockchip_pm_domain { + struct generic_pm_domain genpd; + const struct rockchip_domain_info *info; + struct rockchip_pmu *pmu; + int num_qos; + struct regmap **qos_regmap; + u32 *qos_save_regs[5]; + int num_clks; + struct clk_bulk_data *clks; +}; + +struct rockchip_pmu_info; + +struct rockchip_pmu { + struct device *dev; + struct regmap *regmap; + const struct rockchip_pmu_info *info; + struct mutex mutex; + struct genpd_onecell_data genpd_data; + struct generic_pm_domain *domains[0]; +}; + +struct rockchip_pmu_info { + u32 pwr_offset; + u32 status_offset; + u32 req_offset; + u32 idle_offset; + u32 ack_offset; + u32 mem_pwr_offset; + u32 chain_status_offset; + u32 mem_status_offset; + u32 repair_status_offset; + u32 clk_ungate_offset; + u32 core_pwrcnt_offset; + u32 gpu_pwrcnt_offset; + unsigned int core_power_transition_time; + unsigned int gpu_power_transition_time; + int num_domains; + const struct rockchip_domain_info *domain_info; +}; + +struct rockchip_pmx_func { + const char *name; + const char **groups; + u8 ngroups; +}; + +struct rockchip_softrst { + struct reset_controller_dev rcdev; + const int *lut; + void *reg_base; + int num_regs; + int num_per_reg; + u8 flags; + spinlock_t lock; +}; + +struct role_allow { + u32 role; + u32 new_role; + struct role_allow *next; +}; + +struct role_datum { + u32 value; + u32 bounds; + struct ebitmap dominates; + struct ebitmap types; +}; + +struct role_trans_datum { + u32 new_role; +}; + +struct role_trans_key { + u32 role; + u32 type; + u32 tclass; +}; + +struct root_device { + struct device dev; + struct module *owner; +}; + +struct root_domain { + atomic_t refcount; + atomic_t rto_count; + struct callback_head rcu; + cpumask_var_t span; + cpumask_var_t online; + bool overloaded; + bool overutilized; + cpumask_var_t dlo_mask; + atomic_t dlo_count; + struct dl_bw dl_bw; + struct cpudl cpudl; + u64 visit_cookie; + 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; + struct perf_domain *pd; +}; + +struct rootsector { + char unused[342]; + struct partition_info icdpart[8]; + char unused2[12]; + u32 hd_siz; + struct partition_info part[4]; + u32 bsl_st; + u32 bsl_cnt; + u16 checksum; +} __attribute__((packed)); + +struct route_info { + __u8 type; + __u8 length; + __u8 prefix_len; + __u8 reserved_l: 3; + __u8 route_pref: 2; + __u8 reserved_h: 3; + __be32 lifetime; + __u8 prefix[0]; +}; + +struct rpc_cred_cache; + +struct rpc_authops; + +struct rpc_auth { + unsigned int au_cslack; + unsigned int au_rslack; + unsigned int au_verfsize; + unsigned int au_ralign; + long unsigned int 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 { + rpc_authflavor_t pseudoflavor; + const char *target_name; +}; + +struct rpcsec_gss_info; + +struct rpc_authops { + struct module *owner; + rpc_authflavor_t au_flavor; + char *au_name; + struct rpc_auth * (*create)(const struct rpc_auth_create_args *, struct rpc_clnt *); + void (*destroy)(struct rpc_auth *); + int (*hash_cred)(struct auth_cred *, unsigned int); + struct rpc_cred * (*lookup_cred)(struct rpc_auth *, struct auth_cred *, int); + struct rpc_cred * (*crcreate)(struct rpc_auth *, struct auth_cred *, int, gfp_t); + rpc_authflavor_t (*info2flavor)(struct rpcsec_gss_info *); + int (*flavor2info)(rpc_authflavor_t, struct rpcsec_gss_info *); + int (*key_timeout)(struct rpc_auth *, struct rpc_cred *); + int (*ping)(struct rpc_clnt *); +}; + +struct rpc_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 rpc_iostats; + +struct rpc_pipe_dir_head { + struct list_head pdh_entries; + struct dentry *pdh_dentry; +}; + +struct rpc_rtt { + long unsigned int timeo; + long unsigned int srtt[5]; + long unsigned int sdrtt[5]; + int ntimeouts[5]; +}; + +struct rpc_timeout { + long unsigned int to_initval; + long unsigned int to_maxval; + long unsigned int to_increment; + unsigned int to_retries; + unsigned char to_exponential; +}; + +struct rpc_xprt_switch; + +struct rpc_xprt_iter_ops; + +struct rpc_xprt_iter { + struct rpc_xprt_switch *xpi_xpswitch; + struct rpc_xprt *xpi_cursor; + const struct rpc_xprt_iter_ops *xpi_ops; +}; + +struct rpc_stat; + +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 *cl_xprt; + const struct rpc_procinfo *cl_procinfo; + u32 cl_prog; + u32 cl_vers; + u32 cl_maxproc; + struct rpc_auth *cl_auth; + struct rpc_stat *cl_stats; + struct rpc_iostats *cl_metrics; + unsigned int cl_softrtry: 1; + unsigned int cl_softerr: 1; + unsigned int cl_discrtry: 1; + unsigned int cl_noretranstimeo: 1; + unsigned int cl_autobind: 1; + unsigned int cl_chatty: 1; + unsigned int cl_shutdown: 1; + struct xprtsec_parms cl_xprtsec; + struct rpc_rtt *cl_rtt; + const struct rpc_timeout *cl_timeout; + atomic_t cl_swapper; + int cl_nodelen; + char cl_nodename[65]; + struct rpc_pipe_dir_head cl_pipedir_objects; + struct rpc_clnt *cl_parent; + struct rpc_rtt cl_rtt_default; + struct rpc_timeout cl_timeout_default; + const struct rpc_program *cl_program; + const char *cl_principal; + struct dentry *cl_debugfs; + struct rpc_sysfs_client *cl_sysfs; + union { + struct rpc_xprt_iter cl_xpi; + struct work_struct cl_work; + }; + const struct cred *cl_cred; + unsigned int cl_max_connect; + struct super_block *pipefs_sb; + atomic_t cl_task_count; +}; + +struct rpc_clock { + struct clk_divider div; + struct clk_gate gate; + struct cpg_simple_notifier csn; +}; + +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; + long unsigned int cr_expire; + long unsigned int cr_flags; + refcount_t cr_count; + const struct cred *cr_cred; +}; + +struct rpc_credops { + const char *cr_name; + int (*cr_init)(struct rpc_auth *, struct rpc_cred *); + void (*crdestroy)(struct rpc_cred *); + int (*crmatch)(struct auth_cred *, struct rpc_cred *, int); + int (*crmarshal)(struct rpc_task *, struct xdr_stream *); + int (*crrefresh)(struct rpc_task *); + int (*crvalidate)(struct rpc_task *, struct xdr_stream *); + int (*crwrap_req)(struct rpc_task *, struct xdr_stream *); + int (*crunwrap_resp)(struct rpc_task *, struct xdr_stream *); + int (*crkey_timeout)(struct rpc_cred *); + char * (*crstringify_acceptor)(struct rpc_cred *); + bool (*crneed_reencode)(struct rpc_task *); +}; + +typedef 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 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 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; + long unsigned int rq_majortimeo; + long unsigned int rq_minortimeo; + long unsigned int rq_timeout; + ktime_t rq_rtt; + unsigned int rq_retries; + unsigned int rq_connect_cookie; + atomic_t rq_pin; + u32 rq_bytes_sent; + ktime_t rq_xtime; + int rq_ntrans; + struct lwq_node rq_bc_list; + long unsigned int rq_bc_pa_state; + struct list_head rq_bc_pa_list; +}; + +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_sysfs_client { + struct kobject kobject; + struct net *net; + struct rpc_clnt *clnt; + struct rpc_xprt_switch *xprt_switch; +}; + +struct rpc_version { + u32 number; + unsigned int nrprocs; + const struct rpc_procinfo *procs; + unsigned int *counts; +}; + +struct svc_xprt; + +struct rpc_sysfs_xprt; + +struct rpc_xprt_ops; + +struct svc_serv; + +struct xprt_class; + +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; + long unsigned int cong; + long unsigned int 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; + long unsigned int state; + unsigned char resvport: 1; + unsigned char reuseport: 1; + atomic_t swapper; + unsigned int bind_index; + struct list_head xprt_switch; + long unsigned int bind_timeout; + long unsigned int reestablish_timeout; + struct xprtsec_parms xprtsec; + unsigned int connect_cookie; + struct work_struct task_cleanup; + struct timer_list timer; + long unsigned int last_used; + long unsigned int idle_timeout; + long unsigned int connect_timeout; + long unsigned int max_reconnect_timeout; + atomic_long_t queuelen; + spinlock_t transport_lock; + spinlock_t reserve_lock; + spinlock_t queue_lock; + u32 xid; + struct rpc_task *snd_task; + struct list_head xmit_queue; + atomic_long_t xmit_queuelen; + struct svc_xprt *bc_xprt; + struct svc_serv *bc_serv; + unsigned int bc_alloc_max; + unsigned int bc_alloc_count; + atomic_t bc_slot_count; + spinlock_t bc_pa_lock; + struct list_head bc_pa_list; + struct rb_root recv_queue; + struct { + long unsigned int bind_count; + long unsigned int connect_count; + long unsigned int connect_start; + long unsigned int connect_time; + long unsigned int sends; + long unsigned int recvs; + long unsigned int bad_xids; + long unsigned int max_slots; + long long unsigned int req_u; + long long unsigned int bklog_u; + long long unsigned int sending_u; + long long unsigned int pending_u; + } stat; + struct net *xprt_net; + netns_tracker ns_tracker; + const char *servername; + const char *address_strings[6]; + struct dentry *debugfs; + struct callback_head rcu; + const struct xprt_class *xprt_class; + struct rpc_sysfs_xprt *xprt_sysfs; + bool main; +}; + +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_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 *, short unsigned int); + void (*connect)(struct rpc_xprt *, struct rpc_task *); + int (*get_srcaddr)(struct rpc_xprt *, char *, size_t); + short unsigned int (*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 (*abort_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 *, long unsigned int, long unsigned int); + 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_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 rpcd2_clock { + struct clk_fixed_factor fixed; + struct clk_gate gate; +}; + +struct rpcsec_gss_info { + struct rpcsec_gss_oid oid; + u32 qop; + u32 service; +}; + +struct rpmh_ctrlr { + struct list_head cache; + spinlock_t cache_lock; + bool dirty; + struct list_head batch_cache; +}; + +struct rpmhpd { + struct device *dev; + struct generic_pm_domain pd; + struct generic_pm_domain *parent; + struct rpmhpd *peer; + const bool active_only; + unsigned int corner; + unsigned int active_corner; + unsigned int enable_corner; + u32 level[16]; + size_t level_count; + bool enabled; + const char *res_name; + u32 addr; + bool state_synced; + bool skip_retention_level; +}; + +struct rpmhpd_desc { + struct rpmhpd **rpmhpds; + size_t num_pds; +}; + +struct rproc_ops; + +struct rproc { + struct list_head node; + struct iommu_domain *domain; + const char *name; + const char *firmware; + void *priv; + struct rproc_ops *ops; + struct device dev; + atomic_t power; + unsigned int state; + enum rproc_dump_mechanism dump_conf; + struct mutex lock; + struct dentry *dbg_dir; + struct list_head traces; + int num_traces; + struct list_head carveouts; + struct list_head mappings; + u64 bootaddr; + struct list_head rvdevs; + struct list_head subdevs; + struct idr notifyids; + int index; + struct work_struct crash_handler; + unsigned int crash_cnt; + bool recovery_disabled; + int max_notifyid; + struct resource_table *table_ptr; + struct resource_table *clean_table; + struct resource_table *cached_table; + size_t table_sz; + bool has_iommu; + bool auto_boot; + bool sysfs_read_only; + struct list_head dump_segments; + int nb_vdev; + u8 elf_class; + u16 elf_machine; + struct cdev cdev; + bool cdev_put_on_release; + long unsigned int features[1]; +}; + +struct rproc_coredump_state { + struct rproc *rproc; + void *header; + struct completion dump_done; +}; + +struct rproc_mem_entry { + void *va; + bool is_iomem; + dma_addr_t dma; + size_t len; + u32 da; + void *priv; + char name[32]; + struct list_head node; + u32 rsc_offset; + u32 flags; + u32 of_resm_idx; + int (*alloc)(struct rproc *, struct rproc_mem_entry *); + int (*release)(struct rproc *, struct rproc_mem_entry *); +}; + +struct rproc_debug_trace { + struct rproc *rproc; + struct dentry *tfile; + struct list_head node; + struct rproc_mem_entry trace_mem; +}; + +struct rproc_dump_segment { + struct list_head node; + dma_addr_t da; + size_t size; + void *priv; + void (*dump)(struct rproc *, struct rproc_dump_segment *, void *, size_t, size_t); + loff_t offset; +}; + +struct rproc_ops { + int (*prepare)(struct rproc *); + int (*unprepare)(struct rproc *); + int (*start)(struct rproc *); + int (*stop)(struct rproc *); + int (*attach)(struct rproc *); + int (*detach)(struct rproc *); + void (*kick)(struct rproc *, int); + void * (*da_to_va)(struct rproc *, u64, size_t, bool *); + int (*parse_fw)(struct rproc *, const struct firmware *); + int (*handle_rsc)(struct rproc *, u32, void *, int, int); + struct resource_table * (*find_loaded_rsc_table)(struct rproc *, const struct firmware *); + struct resource_table * (*get_loaded_rsc_table)(struct rproc *, size_t *); + int (*load)(struct rproc *, const struct firmware *); + int (*sanity_check)(struct rproc *, const struct firmware *); + u64 (*get_boot_addr)(struct rproc *, const struct firmware *); + long unsigned int (*panic)(struct rproc *); + void (*coredump)(struct rproc *); +}; + +struct rproc_subdev { + struct list_head node; + int (*prepare)(struct rproc_subdev *); + int (*start)(struct rproc_subdev *); + void (*stop)(struct rproc_subdev *, bool); + void (*unprepare)(struct rproc_subdev *); +}; + +struct rproc_vdev; + +struct rproc_vring { + void *va; + int num; + u32 da; + u32 align; + int notifyid; + struct rproc_vdev *rvdev; + struct virtqueue *vq; +}; + +struct rproc_vdev { + struct rproc_subdev subdev; + struct platform_device *pdev; + unsigned int id; + struct list_head node; + struct rproc *rproc; + struct rproc_vring vring[2]; + u32 rsc_offset; + u32 index; +}; + +struct rproc_vdev_data { + u32 rsc_offset; + unsigned int id; + u32 index; + struct fw_rsc_vdev *rsc; +}; + +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 rps_map { + unsigned int len; + struct callback_head rcu; + u16 cpus[0]; +}; + +struct rps_sock_flow_table { + u32 mask; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 ents[0]; +}; + +struct uclamp_bucket { + long unsigned int value: 11; + long unsigned int tasks: 53; +}; + +struct uclamp_rq { + unsigned int value; + struct uclamp_bucket bucket[5]; +}; + +struct rt_prio_array { + long unsigned int 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; + bool overloaded; + struct plist_head pushable_tasks; + int rt_queued; +}; + +struct scx_dispatch_q { + raw_spinlock_t lock; + struct list_head list; + struct rb_root priq; + u32 nr; + u32 seq; + u64 id; + struct rhash_head hash_node; + struct llist_node free_node; + struct callback_head rcu; +}; + +struct scx_rq { + struct scx_dispatch_q local_dsq; + struct list_head runnable_list; + struct list_head ddsp_deferred_locals; + long unsigned int ops_qseq; + u64 extra_enq_flags; + u32 nr_running; + u32 cpuperf_target; + bool cpu_released; + u32 flags; + u64 clock; + cpumask_var_t cpus_to_kick; + cpumask_var_t cpus_to_kick_if_idle; + cpumask_var_t cpus_to_preempt; + cpumask_var_t cpus_to_wait; + long unsigned int pnt_seq; + struct balance_callback deferred_bal_cb; + struct irq_work deferred_irq_work; + struct irq_work kick_cpus_irq_work; +}; + +struct sched_dl_entity; + +typedef bool (*dl_server_has_tasks_f)(struct sched_dl_entity *); + +typedef struct task_struct * (*dl_server_pick_f)(struct sched_dl_entity *); + +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; + unsigned int dl_server: 1; + unsigned int dl_server_active: 1; + unsigned int dl_defer: 1; + unsigned int dl_defer_armed: 1; + unsigned int dl_defer_running: 1; + struct hrtimer dl_timer; + struct hrtimer inactive_timer; + struct rq *rq; + dl_server_has_tasks_f server_has_tasks; + dl_server_pick_f server_pick_task; + struct sched_dl_entity *pi_se; +}; + +struct sched_info { + long unsigned int pcount; + long long unsigned int run_delay; + long long unsigned int max_run_delay; + long long unsigned int min_run_delay; + long long unsigned int last_arrival; + long long unsigned int last_queued; +}; + +struct rq { + raw_spinlock_t __lock; + unsigned int nr_running; + unsigned int nr_numa_running; + unsigned int nr_preferred_running; + unsigned int numa_migrate_on; + long unsigned int last_blocked_load_update_tick; + unsigned int has_blocked_load; + long: 64; + long: 64; + long: 64; + call_single_data_t nohz_csd; + unsigned int nohz_tick_stopped; + atomic_t nohz_flags; + unsigned int ttwu_pending; + u64 nr_switches; + long: 64; + struct uclamp_rq uclamp[2]; + unsigned int uclamp_flags; + long: 64; + long: 64; + long: 64; + struct cfs_rq cfs; + struct rt_rq rt; + struct dl_rq dl; + struct scx_rq scx; + struct sched_dl_entity fair_server; + struct list_head leaf_cfs_rq_list; + struct list_head *tmp_alone_branch; + unsigned int nr_uninterruptible; + union { + struct task_struct *donor; + struct task_struct *curr; + }; + struct sched_dl_entity *dl_server; + struct task_struct *idle; + struct task_struct *stop; + long unsigned int next_balance; + struct mm_struct *prev_mm; + unsigned int clock_update_flags; + u64 clock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u64 clock_task; + u64 clock_pelt; + long unsigned int lost_idle_time; + u64 clock_pelt_idle; + u64 clock_idle; + atomic_t nr_iowait; + u64 last_seen_need_resched_ns; + int ticks_without_resched; + int membarrier_state; + struct root_domain *rd; + struct sched_domain *sd; + long unsigned int cpu_capacity; + struct balance_callback *balance_callback; + unsigned char nohz_idle_balance; + unsigned char idle_balance; + long unsigned int misfit_task_load; + int active_balance; + int push_cpu; + struct cpu_stop_work active_balance_work; + int cpu; + int online; + struct list_head cfs_tasks; + struct sched_avg avg_rt; + struct sched_avg avg_dl; + struct sched_avg avg_hw; + u64 idle_stamp; + u64 avg_idle; + u64 max_idle_balance_cost; + struct rcuwait hotplug_wait; + u64 prev_steal_time; + long unsigned int calc_load_update; + long int calc_load_active; + long: 64; + call_single_data_t hrtick_csd; + struct hrtimer hrtick_timer; + ktime_t hrtick_time; + struct sched_info rq_sched_info; + long long unsigned int 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; + struct rq *core; + struct task_struct *core_pick; + struct sched_dl_entity *core_dl_server; + unsigned int core_enabled; + unsigned int core_sched_seq; + struct rb_root core_tree; + unsigned int core_task_seq; + unsigned int core_pick_seq; + long unsigned int core_cookie; + unsigned int core_forceidle_count; + unsigned int core_forceidle_seq; + unsigned int core_forceidle_occupation; + u64 core_forceidle_start; + cpumask_var_t scratch_mask; + long: 64; + long: 64; + call_single_data_t cfsb_csd; + struct list_head cfsb_csd_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct rq_depth { + unsigned int max_depth; + int scale_step; + bool scaled_max; + unsigned int queue_depth; + unsigned int default_depth; +}; + +struct rq_iter_data { + struct blk_mq_hw_ctx *hctx; + bool has_rq; +}; + +struct rq_map_data { + struct page **pages; + long unsigned int offset; + short unsigned int page_order; + short unsigned int nr_entries; + bool null_mapped; + bool from_user; +}; + +struct rq_qos_ops { + void (*throttle)(struct rq_qos *, struct bio *); + void (*track)(struct rq_qos *, struct request *, struct bio *); + void (*merge)(struct rq_qos *, struct request *, struct bio *); + void (*issue)(struct rq_qos *, struct request *); + void (*requeue)(struct rq_qos *, struct request *); + void (*done)(struct rq_qos *, struct request *); + void (*done_bio)(struct rq_qos *, struct bio *); + void (*cleanup)(struct rq_qos *, struct bio *); + void (*queue_depth_changed)(struct rq_qos *); + void (*exit)(struct rq_qos *); + const struct blk_mq_debugfs_attr *debugfs_attrs; +}; + +struct rq_wait; + +typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); + +struct rq_qos_wait_data { + struct wait_queue_entry wq; + struct task_struct *task; + struct rq_wait *rqw; + acquire_inflight_cb_t *cb; + void *private_data; + bool got_token; +}; + +struct rq_wait { + wait_queue_head_t wait; + atomic_t inflight; +}; + +struct rq_wb { + unsigned int wb_background; + unsigned int wb_normal; + short int enable_state; + unsigned int unknown_cnt; + u64 win_nsec; + u64 cur_win_nsec; + struct blk_stat_callback *cb; + u64 sync_issue; + void *sync_cookie; + long unsigned int last_issue; + long unsigned int last_comp; + long unsigned int min_lat_nsec; + struct rq_qos rqos; + struct rq_wait rq_wait[3]; + struct rq_depth rq_depth; +}; + +struct rs_msg { + struct icmp6hdr icmph; + __u8 opt[0]; +}; + +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 rsa_mpi_key { + MPI n; + MPI e; + MPI d; + MPI p; + MPI q; + MPI dp; + MPI dq; + MPI qinv; +}; + +struct rsassa_pkcs1_ctx { + struct crypto_akcipher *child; + unsigned int key_size; +}; + +struct rsassa_pkcs1_inst_ctx { + struct crypto_akcipher_spawn spawn; + const struct hash_prefix *hash_prefix; +}; + +struct rsc_drv; + +struct tcs_group { + struct rsc_drv *drv; + int type; + u32 mask; + u32 offset; + int num_tcs; + int ncpt; + const struct tcs_request *req[3]; + long unsigned int slots[1]; +}; + +struct rsc_ver { + u32 major; + u32 minor; +}; + +struct rsc_drv { + const char *name; + void *base; + void *tcs_base; + int id; + int num_tcs; + struct notifier_block rsc_pm; + struct notifier_block genpd_nb; + atomic_t cpus_in_pm; + struct tcs_group tcs[4]; + long unsigned int tcs_in_use[1]; + spinlock_t lock; + wait_queue_head_t tcs_wait; + struct rpmh_ctrlr client; + struct device *dev; + struct rsc_ver ver; + u32 *regs; +}; + +struct rseq { + __u32 cpu_id_start; + __u32 cpu_id; + __u64 rseq_cs; + __u32 flags; + __u32 node_id; + __u32 mm_cid; + char end[0]; +}; + +struct rseq_cs { + __u32 version; + __u32 flags; + __u64 start_ip; + __u64 post_commit_offset; + __u64 abort_ip; +}; + +struct rss_nl_dump_ctx { + long unsigned int ifindex; + long unsigned int ctx_idx; + unsigned int match_ifindex; + unsigned int start_ctx; +}; + +struct rss_reply_data { + struct ethnl_reply_data base; + bool no_key_fields; + u32 indir_size; + u32 hkey_size; + u32 hfunc; + u32 input_xfrm; + u32 *indir_table; + u8 *hkey; +}; + +struct rss_req_info { + struct ethnl_req_info base; + u32 rss_context; +}; + +struct rst_config { + unsigned int modemr; + int (*configure)(void *); + int (*set_rproc_boot_addr)(u64); +}; + +struct rsvd_count { + int ndelayed; + 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 rt0_hdr { + struct ipv6_rt_hdr rt_hdr; + __u32 reserved; + struct in6_addr addr[0]; +}; + +struct rt6_exception { + struct hlist_node hlist; + struct rt6_info *rt6i; + long unsigned int stamp; + struct callback_head rcu; +}; + +struct rt6_exception_bucket { + struct hlist_head chain; + int depth; +}; + +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 rt6_rtnl_dump_arg { + struct sk_buff *skb; + struct netlink_callback *cb; + struct net *net; + struct fib_dump_filter filter; +}; + +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 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 rt_waiter_node { + struct rb_node entry; + int prio; + u64 deadline; +}; + +struct rt_mutex_waiter { + struct rt_waiter_node tree; + struct rt_waiter_node pi_tree; + struct task_struct *task; + struct rt_mutex_base *lock; + unsigned int wake_state; + struct ww_acquire_ctx *ww_ctx; +}; + +typedef struct rt_rq *rt_rq_iter_t; + +struct sigaltstack { + void *ss_sp; + int ss_flags; + __kernel_size_t ss_size; +}; + +typedef struct sigaltstack stack_t; + +struct sigcontext { + __u64 fault_address; + __u64 regs[31]; + __u64 sp; + __u64 pc; + __u64 pstate; + long: 64; + __u8 __reserved[4096]; +}; + +struct ucontext { + long unsigned int uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + sigset_t uc_sigmask; + __u8 __unused[120]; + long: 64; + struct sigcontext uc_mcontext; +}; + +struct rt_sigframe { + struct siginfo info; + struct ucontext uc; +}; + +struct rt_sigframe_user_layout { + struct rt_sigframe *sigframe; + struct frame_record *next_frame; + long unsigned int size; + long unsigned int limit; + long unsigned int fpsimd_offset; + long unsigned int esr_offset; + long unsigned int gcs_offset; + long unsigned int sve_offset; + long unsigned int tpidr2_offset; + long unsigned int za_offset; + long unsigned int zt_offset; + long unsigned int fpmr_offset; + long unsigned int poe_offset; + long unsigned int extra_offset; + long unsigned int end_offset; +}; + +struct wake_q_node; + +struct wake_q_head { + struct wake_q_node *first; + struct wake_q_node **lastp; +}; + +struct rt_wake_q_head { + struct wake_q_head head; + struct task_struct *rtlock_task; +}; + +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 rta_mfc_stats { + __u64 mfcs_packets; + __u64 mfcs_bytes; + __u64 mfcs_wrong_if; +}; + +struct rtc_time; + +struct rtc_wkalrm; + +struct rtc_param; + +struct rtc_class_ops { + int (*ioctl)(struct device *, unsigned int, long unsigned int); + 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 *); + int (*set_offset)(struct device *, long int); + int (*param_get)(struct device *, struct rtc_param *); + int (*param_set)(struct device *, struct rtc_param *); +}; + +struct rtc_device; + +struct rtc_timer { + struct timerqueue_node node; + ktime_t period; + void (*func)(struct rtc_device *); + struct rtc_device *rtc; + int enabled; +}; + +struct rtc_device { + struct device dev; + struct module *owner; + int id; + const struct rtc_class_ops *ops; + struct mutex ops_lock; + struct cdev char_dev; + long unsigned int flags; + long unsigned int 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; + long unsigned int set_offset_nsec; + long unsigned int features[1]; + time64_t range_min; + timeu64_t range_max; + timeu64_t alarm_offset_max; + time64_t start_secs; + time64_t offset_secs; + bool set_start_time; +}; + +struct rtc_param { + __u64 param; + union { + __u64 uvalue; + __s64 svalue; + __u64 ptr; + }; + __u32 index; + __u32 __pad; +}; + +struct rtc_plat_data { + struct rtc_device *rtc; + void *ioaddr; + int irq; + struct clk *clk; +}; + +struct rtc_time { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; + +struct rtc_wkalrm { + unsigned char enabled; + unsigned char pending; + struct rtc_time time; +}; + +struct rtd119x_rtc { + void *base; + struct clk *clk; + struct rtc_device *rtcdev; + unsigned int base_year; +}; + +struct rtd119x_watchdog_device { + struct watchdog_device wdt_dev; + void *base; + struct clk *clk; +}; + +struct rtentry { + long unsigned int rt_pad1; + struct sockaddr rt_dst; + struct sockaddr rt_gateway; + struct sockaddr rt_genmask; + short unsigned int rt_flags; + short int rt_pad2; + long unsigned int rt_pad3; + void *rt_pad4; + short int rt_metric; + char *rt_dev; + long unsigned int rt_mtu; + long unsigned int rt_window; + short unsigned int rt_irtt; +}; + +struct rtgenmsg { + unsigned char rtgen_family; +}; + +struct rtm_dump_res_bucket_ctx; + +struct rtm_dump_nexthop_bucket_data { + struct rtm_dump_res_bucket_ctx *ctx; + struct nh_dump_filter filter; +}; + +struct rtm_dump_nh_ctx { + u32 idx; +}; + +struct rtm_dump_res_bucket_ctx { + struct rtm_dump_nh_ctx nh; + u16 bucket_index; +}; + +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 rtnexthop { + short unsigned int rtnh_len; + unsigned char rtnh_flags; + unsigned char rtnh_hops; + int rtnh_ifindex; +}; + +struct rtnl_af_ops { + struct list_head list; + struct srcu_struct srcu; + 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 *); +}; + +typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *); + +typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); + +struct rtnl_link { + rtnl_doit_func doit; + rtnl_dumpit_func dumpit; + struct module *owner; + unsigned int flags; + struct callback_head rcu; +}; + +struct rtnl_link_ifmap { + __u64 mem_start; + __u64 mem_end; + __u64 base_addr; + __u16 irq; + __u8 dma; + __u8 port; +}; + +struct rtnl_link_ops { + struct list_head list; + struct srcu_struct srcu; + 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; + const u16 peer_type; + 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)(void); + unsigned int (*get_num_rx_queues)(void); + 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 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_mdb_dump_ctx { + long int idx; +}; + +struct rtnl_msg_handler { + struct module *owner; + int protocol; + int msgtype; + rtnl_doit_func doit; + rtnl_dumpit_func dumpit; + int flags; +}; + +struct rtnl_net_dump_cb { + struct net *tgt_net; + struct net *ref_net; + struct sk_buff *skb; + struct net_fill_args fillargs; + int idx; + int s_idx; +}; + +struct rtnl_nets { + struct net *net[3]; + unsigned char len; +}; + +struct rtnl_newlink_tbs { + struct nlattr *tb[67]; + struct nlattr *linkinfo[6]; + struct nlattr *attr[51]; + struct nlattr *slave_attr[45]; +}; + +struct rtnl_offload_xstats_request_used { + bool request; + bool used; +}; + +struct rtnl_stats_dump_filters { + u32 mask[6]; +}; + +struct rtvia { + __kernel_sa_family_t rtvia_family; + __u8 rtvia_addr[0]; +}; + +struct rusage { + struct __kernel_old_timeval ru_utime; + struct __kernel_old_timeval ru_stime; + __kernel_long_t ru_maxrss; + __kernel_long_t ru_ixrss; + __kernel_long_t ru_idrss; + __kernel_long_t ru_isrss; + __kernel_long_t ru_minflt; + __kernel_long_t ru_majflt; + __kernel_long_t ru_nswap; + __kernel_long_t ru_inblock; + __kernel_long_t ru_oublock; + __kernel_long_t ru_msgsnd; + __kernel_long_t ru_msgrcv; + __kernel_long_t ru_nsignals; + __kernel_long_t ru_nvcsw; + __kernel_long_t ru_nivcsw; +}; + +struct rv_interface { + struct dentry *root_dir; + struct dentry *monitors_dir; +}; + +struct rv_monitor { + const char *name; + const char *description; + bool enabled; + int (*enable)(void); + void (*disable)(void); + void (*reset)(void); + void (*react)(char *); +}; + +struct rv_reactor_def; + +struct rv_monitor_def { + struct list_head list; + struct rv_monitor *monitor; + struct dentry *root_d; + struct rv_reactor_def *rdef; + bool reacting; + bool task_monitor; +}; + +struct rv_reactor { + const char *name; + const char *description; + void (*react)(char *); +}; + +struct rv_reactor_def { + struct list_head list; + struct rv_reactor *reactor; + int counter; +}; + +union rv_task_monitor { + struct da_monitor da_mon; +}; + +typedef struct rw_semaphore *class_rwsem_read_t; + +typedef struct rw_semaphore *class_rwsem_write_t; + +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 rwsem_waiter { + struct list_head list; + struct task_struct *task; + enum rwsem_waiter_type type; + long unsigned int timeout; + bool handoff_set; +}; + +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 rz_mtu3_channel { + struct device *dev; + unsigned int channel_number; + struct mutex lock; + bool is_busy; +}; + +struct rz_mtu3 { + struct clk *clk; + struct rz_mtu3_channel channels[9]; + void *priv_data; +}; + +struct rz_mtu3_priv { + void *mmio; + struct reset_control *rstc; + spinlock_t lock; +}; + +struct rzg2l_mod_clk; + +struct rzg2l_reset; + +struct rzg2l_cpg_pm_domain_init_data; + +struct rzg2l_cpg_info { + const struct cpg_core_clk___3 *core_clks; + unsigned int num_core_clks; + unsigned int last_dt_core_clk; + unsigned int num_total_core_clks; + const struct rzg2l_mod_clk *mod_clks; + unsigned int num_mod_clks; + unsigned int num_hw_mod_clks; + const unsigned int *no_pm_mod_clks; + unsigned int num_no_pm_mod_clks; + const struct rzg2l_reset *resets; + unsigned int num_resets; + const unsigned int *crit_mod_clks; + unsigned int num_crit_mod_clks; + const struct rzg2l_cpg_pm_domain_init_data *pm_domains; + unsigned int num_pm_domains; + bool has_clk_mon_regs; +}; + +struct rzg2l_cpg_reg_conf { + u16 off; + u16 mask; +}; + +struct rzg2l_cpg_pm_domain_conf { + struct rzg2l_cpg_reg_conf mstop; +}; + +struct rzg2l_cpg_pd { + struct generic_pm_domain genpd; + struct rzg2l_cpg_priv *priv; + struct rzg2l_cpg_pm_domain_conf conf; + u16 id; +}; + +struct rzg2l_cpg_pm_domain_init_data { + const char * const name; + struct rzg2l_cpg_pm_domain_conf conf; + u32 genpd_flags; + u16 id; +}; + +struct rzg2l_cpg_pm_domains { + struct genpd_onecell_data onecell_data; + struct generic_pm_domain *domains[0]; +}; + +struct rzg2l_pll5_mux_dsi_div_param { + u8 clksrc; + u8 dsi_div_a; + u8 dsi_div_b; +}; + +struct rzg2l_cpg_priv { + struct reset_controller_dev rcdev; + struct device *dev; + void *base; + spinlock_t rmw_lock; + struct clk **clks; + unsigned int num_core_clks; + unsigned int num_mod_clks; + unsigned int num_resets; + unsigned int last_dt_core_clk; + const struct rzg2l_cpg_info *info; + struct rzg2l_pll5_mux_dsi_div_param mux_dsi_div_params; +}; + +struct rzg2l_dedicated_configs { + const char *name; + u64 config; +}; + +struct rzg2l_register_offsets { + u16 pwpr; + u16 sd_ch; + u16 eth_poc; +}; + +struct rzg2l_hwcfg { + const struct rzg2l_register_offsets regs; + u16 iolh_groupa_ua[12]; + u16 iolh_groupb_ua[12]; + u16 iolh_groupc_ua[12]; + u16 iolh_groupb_oi[4]; + u16 tint_start_index; + bool drive_strength_ua; + u8 func_base; + u8 oen_max_pin; + u8 oen_max_port; +}; + +struct rzg2l_irqc_reg_cache { + u32 iitsr; + u32 titsr[2]; +}; + +struct rzg2l_irqc_priv { + void *base; + const struct irq_chip *irqchip; + struct irq_fwspec fwspec[41]; + raw_spinlock_t lock; + struct rzg2l_irqc_reg_cache cache; +}; + +struct rzg2l_mod_clk { + const char *name; + unsigned int id; + unsigned int parent; + u16 off; + u8 bit; + bool is_coupled; +}; + +struct rzg2l_pinctrl_data; + +struct rzg2l_pinctrl_pin_settings; + +struct rzg2l_pinctrl_reg_cache; + +struct rzg2l_pinctrl { + struct pinctrl_dev *pctl; + struct pinctrl_desc desc; + struct pinctrl_pin_desc *pins; + const struct rzg2l_pinctrl_data *data; + void *base; + struct device *dev; + struct clk *clk; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range gpio_range; + long unsigned int tint_slot[1]; + spinlock_t bitmap_lock; + unsigned int hwirq[32]; + spinlock_t lock; + struct mutex mutex; + struct rzg2l_pinctrl_pin_settings *settings; + struct rzg2l_pinctrl_reg_cache *cache; + struct rzg2l_pinctrl_reg_cache *dedicated_cache; + atomic_t wakeup_path; +}; + +struct rzg2l_pinctrl_data { + const char * const *port_pins; + const u64 *port_pin_configs; + unsigned int n_ports; + const struct rzg2l_dedicated_configs *dedicated_pins; + unsigned int n_port_pins; + unsigned int n_dedicated_pins; + const struct rzg2l_hwcfg *hwcfg; + const u64 *variable_pin_cfg; + unsigned int n_variable_pin_cfg; + unsigned int num_custom_params; + const struct pinconf_generic_params *custom_params; + const struct pin_config_item *custom_conf_items; + void (*pwpr_pfc_lock_unlock)(struct rzg2l_pinctrl *, bool); + void (*pmc_writeb)(struct rzg2l_pinctrl *, u8, u16); + u32 (*oen_read)(struct rzg2l_pinctrl *, unsigned int); + int (*oen_write)(struct rzg2l_pinctrl *, unsigned int, u8); + int (*hw_to_bias_param)(unsigned int); + int (*bias_param_to_hw)(enum pin_config_param); +}; + +struct rzg2l_pinctrl_pin_settings { + u16 power_source; + u16 drive_strength_ua; +}; + +struct rzg2l_pinctrl_reg_cache { + u8 *p; + u16 *pm; + u8 *pmc; + u32 *pfc; + u32 *iolh[2]; + u32 *ien[2]; + u32 *pupd[2]; + u8 sd_ch[2]; + u8 eth_poc[2]; + u8 eth_mode; + u8 qspi; +}; + +struct rzg2l_pll5_param { + u32 pl5_fracin; + u8 pl5_refdiv; + u8 pl5_intin; + u8 pl5_postdiv1; + u8 pl5_postdiv2; + u8 pl5_spread; +}; + +struct rzg2l_reset { + u16 off; + u8 bit; + s8 monbit; +}; + +struct rzg2l_usbphy_ctrl_priv { + struct reset_controller_dev rcdev; + struct reset_control *rstc; + void *base; + struct platform_device *vdev; + spinlock_t lock; +}; + +struct rzv2h_mod_clk; + +struct rzv2h_reset; + +struct rzv2h_cpg_info { + const struct cpg_core_clk___2 *core_clks; + unsigned int num_core_clks; + unsigned int last_dt_core_clk; + unsigned int num_total_core_clks; + const struct rzv2h_mod_clk *mod_clks; + unsigned int num_mod_clks; + unsigned int num_hw_mod_clks; + const struct rzv2h_reset *resets; + unsigned int num_resets; + unsigned int num_mstop_bits; +}; + +struct rzv2h_cpg_pd { + struct rzv2h_cpg_priv *priv; + struct generic_pm_domain genpd; +}; + +struct rzv2h_cpg_priv { + struct device *dev; + void *base; + spinlock_t rmw_lock; + struct clk **clks; + unsigned int num_core_clks; + unsigned int num_mod_clks; + struct rzv2h_reset *resets; + unsigned int num_resets; + unsigned int last_dt_core_clk; + atomic_t *mstop_count; + struct reset_controller_dev rcdev; +}; + +struct rzv2h_hw_info { + u16 t_offs; +}; + +struct rzv2h_icu_priv { + void *base; + const struct irq_chip *irqchip; + struct irq_fwspec fwspec[49]; + raw_spinlock_t lock; + const struct rzv2h_hw_info *info; +}; + +struct rzv2h_mod_clk { + const char *name; + u32 mstop_data; + u16 parent; + bool critical; + bool no_pm; + u8 on_index; + u8 on_bit; + s8 mon_index; + u8 mon_bit; +}; + +struct rzv2h_reset { + u8 reset_index; + u8 reset_bit; + u8 mon_index; + u8 mon_bit; +}; + +struct rzv2m_dedicated_configs { + const char *name; + u32 config; +}; + +struct rzv2m_pinctrl_data; + +struct rzv2m_pinctrl { + struct pinctrl_dev *pctl; + struct pinctrl_desc desc; + struct pinctrl_pin_desc *pins; + const struct rzv2m_pinctrl_data *data; + void *base; + struct device *dev; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range gpio_range; + spinlock_t lock; + struct mutex mutex; +}; + +struct rzv2m_pinctrl_data { + const char * const *port_pins; + const u32 *port_pin_configs; + const struct rzv2m_dedicated_configs *dedicated_pins; + unsigned int n_port_pins; + unsigned int n_dedicated_pins; +}; + +struct rzv2m_pwc_priv { + void *base; + struct device *dev; + struct gpio_chip gp; + long unsigned int ch_en_bits[1]; +}; + +struct s { + __be32 conv; +}; + +struct s1_walk_info { + u64 baddr; + enum trans_regime regime; + unsigned int max_oa_bits; + unsigned int pgshift; + unsigned int txsz; + int sl; + bool hpd; + bool e0poe; + bool poe; + bool pan; + bool be; + bool s2; +}; + +struct s1_walk_result { + union { + struct { + u64 desc; + u64 pa; + s8 level; + u8 APTable; + bool UXNTable; + bool PXNTable; + bool uwxn; + bool uov; + bool ur; + bool uw; + bool ux; + bool pwxn; + bool pov; + bool pr; + bool pw; + bool px; + }; + struct { + u8 fst; + bool ptw; + bool s2; + }; + }; + bool failed; +}; + +struct s2_walk_info { + int (*read_desc)(phys_addr_t, u64 *, void *); + void *data; + u64 baddr; + unsigned int max_oa_bits; + unsigned int pgshift; + unsigned int sl; + unsigned int t0sz; + bool be; +}; + +struct s32_pin_group { + struct pingroup data; + unsigned int *pin_sss; +}; + +struct s32_pin_range { + unsigned int start; + unsigned int end; +}; + +struct s32_pinctrl_context { + unsigned int *pads; +}; + +struct s32_pinctrl_mem_region; + +struct s32_pinctrl_soc_info; + +struct s32_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl; + struct s32_pinctrl_mem_region *regions; + struct s32_pinctrl_soc_info *info; + struct list_head gpio_configs; + spinlock_t gpio_configs_lock; + struct s32_pinctrl_context saved_context; +}; + +struct s32_pinctrl_mem_region { + struct regmap *map; + const struct s32_pin_range *pin_range; + char name[8]; +}; + +struct s32_pinctrl_soc_data { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct s32_pin_range *mem_pin_ranges; + unsigned int mem_regions; +}; + +struct s32_pinctrl_soc_info { + struct device *dev; + const struct s32_pinctrl_soc_data *soc_data; + struct s32_pin_group *groups; + unsigned int ngroups; + struct pinfunction *functions; + unsigned int nfunctions; + unsigned int grp_index; +}; + +struct s3_save { + u32 command; + u32 dev_nt; + u64 dcbaa_ptr; + u32 config_reg; +}; + +struct s5_hw_clk { + struct clk_hw hw; + void *reg; +}; + +struct s5_clk_data { + void *base; + struct s5_hw_clk s5_hw[9]; +}; + +struct s5_pll_conf { + long unsigned int freq; + u8 div; + bool rot_ena; + u8 rot_sel; + u8 rot_dir; + u8 pre_div; +}; + +struct s_data { + struct sched_domain **sd; + struct root_domain *rd; +}; + +struct value_name_pair; + +struct sa_name_list { + int opcode; + const struct value_name_pair *arr; + int arr_sz; +}; + +struct samsung_sdi_battery { + char *compatible; + char *name; + struct power_supply_battery_info info; +}; + +struct saved_alias { + struct kmem_cache *s; + const char *name; + struct saved_alias *next; +}; + +struct saved_cmdlines_buffer { + unsigned int map_pid_to_cmdline[32769]; + unsigned int *map_cmdline_to_pid; + unsigned int cmdline_num; + int cmdline_idx; + char saved_cmdlines[0]; +}; + +struct saved_syn { + u32 mac_hdrlen; + u32 network_hdrlen; + u32 tcp_hdrlen; + u8 data[0]; +}; + +struct sb_writers { + short unsigned int frozen; + int freeze_kcount; + int freeze_ucount; + struct percpu_rw_semaphore rw_sem[3]; +}; + +struct sbitmap_word { + long unsigned int word; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long unsigned int cleared; + raw_spinlock_t swap_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct sbq_wait { + struct sbitmap_queue *sbq; + struct wait_queue_entry wait; +}; + +struct sbq_wait_state { + wait_queue_head_t wait; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct scale_freq_data { + enum scale_freq_source source; + void (*set_freq_scale)(void); +}; + +struct scan_control { + long unsigned int nr_to_reclaim; + nodemask_t *nodemask; + struct mem_cgroup *target_mem_cgroup; + long unsigned int anon_cost; + long unsigned int file_cost; + int *proactive_swappiness; + unsigned int may_deactivate: 2; + unsigned int force_deactivate: 1; + unsigned int skipped_deactivate: 1; + unsigned int may_writepage: 1; + unsigned int may_unmap: 1; + unsigned int may_swap: 1; + unsigned int no_cache_trim_mode: 1; + unsigned int cache_trim_mode_failed: 1; + unsigned int proactive: 1; + unsigned int memcg_low_reclaim: 1; + unsigned int memcg_low_skipped: 1; + unsigned int memcg_full_walk: 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; + long unsigned int nr_scanned; + long unsigned int nr_reclaimed; + struct { + unsigned int dirty; + unsigned int unqueued_dirty; + unsigned int congested; + unsigned int writeback; + unsigned int immediate; + unsigned int file_taken; + unsigned int taken; + } nr; + struct reclaim_state reclaim_state; +}; + +struct scatter_walk { + struct scatterlist *sg; + unsigned int offset; +}; + +struct sccnxp_chip { + const char *name; + unsigned int nr; + long unsigned int freq_min; + long unsigned int freq_std; + long unsigned int freq_max; + unsigned int flags; + unsigned int fifosize; + unsigned int trwd; +}; + +struct sccnxp_pdata { + const u8 reg_shift; + const u32 mctrl_cfg[2]; + const unsigned int poll_time_us; +}; + +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 sccnxp_port { + struct uart_driver uart; + struct uart_port port[2]; + bool opened[2]; + int irq; + u8 imr; + struct sccnxp_chip *chip; + struct console console; + spinlock_t lock; + bool poll; + struct timer_list timer; + struct sccnxp_pdata pdata; + struct regulator *regulator; +}; + +struct sch_frag_data { + long unsigned int 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 sched_attr { + __u32 size; + __u32 sched_policy; + __u64 sched_flags; + __s32 sched_nice; + __u32 sched_priority; + __u64 sched_runtime; + __u64 sched_deadline; + __u64 sched_period; + __u32 sched_util_min; + __u32 sched_util_max; +}; + +struct sched_class { + int uclamp_enabled; + void (*enqueue_task)(struct rq *, struct task_struct *, int); + bool (*dequeue_task)(struct rq *, struct task_struct *, int); + void (*yield_task)(struct rq *); + bool (*yield_to_task)(struct rq *, struct task_struct *); + void (*wakeup_preempt)(struct rq *, struct task_struct *, int); + int (*balance)(struct rq *, struct task_struct *, struct rq_flags *); + struct task_struct * (*pick_task)(struct rq *); + struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *); + void (*put_prev_task)(struct rq *, struct task_struct *, struct task_struct *); + void (*set_next_task)(struct rq *, struct task_struct *, bool); + int (*select_task_rq)(struct task_struct *, int, int); + 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 (*switching_to)(struct rq *, struct task_struct *); + void (*switched_from)(struct rq *, struct task_struct *); + void (*switched_to)(struct rq *, struct task_struct *); + void (*reweight_task)(struct rq *, struct task_struct *, const struct load_weight *); + 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 *); + int (*task_is_throttled)(struct task_struct *, int); +}; + +struct sched_core_cookie { + refcount_t refcnt; +}; + +struct sched_group; + +struct sched_domain_shared; + +struct sched_domain { + struct sched_domain *parent; + struct sched_domain *child; + struct sched_group *groups; + long unsigned int min_interval; + long unsigned int 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; + long unsigned int last_balance; + unsigned int balance_interval; + unsigned int nr_balance_failed; + u64 max_newidle_lb_cost; + long unsigned int last_decay_max_lb_cost; + unsigned int lb_count[3]; + unsigned int lb_failed[3]; + unsigned int lb_balanced[3]; + unsigned int lb_imbalance_load[3]; + unsigned int lb_imbalance_util[3]; + unsigned int lb_imbalance_task[3]; + unsigned int lb_imbalance_misfit[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; + char *name; + union { + void *private; + struct callback_head rcu; + }; + struct sched_domain_shared *shared; + unsigned int span_weight; + long unsigned int span[0]; +}; + +struct sched_domain_attr { + int relax_domain_level; +}; + +struct sched_domain_shared { + atomic_t ref; + atomic_t nr_busy_cpus; + int has_idle_cores; + int nr_idle_scan; +}; + +typedef const struct cpumask * (*sched_domain_mask_f)(int); + +typedef int (*sched_domain_flags_f)(void); + +struct sched_group_capacity; + +struct sd_data { + struct sched_domain **sd; + struct sched_domain_shared **sds; + struct sched_group **sg; + struct sched_group_capacity **sgc; +}; + +struct sched_domain_topology_level { + sched_domain_mask_f mask; + sched_domain_flags_f sd_flags; + int flags; + int numa_level; + struct sd_data data; + char *name; +}; + +struct sched_enq_and_set_ctx { + struct task_struct *p; + int queue_flags; + bool queued; + bool running; +}; + +struct sched_entity { + struct load_weight load; + struct rb_node run_node; + u64 deadline; + u64 min_vruntime; + u64 min_slice; + struct list_head group_node; + unsigned char on_rq; + unsigned char sched_delayed; + unsigned char rel_deadline; + unsigned char custom_slice; + u64 exec_start; + u64 sum_exec_runtime; + u64 prev_sum_exec_runtime; + u64 vruntime; + s64 vlag; + u64 slice; + u64 nr_migrations; + int depth; + struct sched_entity *parent; + struct cfs_rq *cfs_rq; + struct cfs_rq *my_q; + long unsigned int runnable_weight; + long: 64; + struct sched_avg avg; +}; + +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; + s64 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; + u64 core_forceidle_sum; + long: 64; + long: 64; + long: 64; +}; + +struct sched_entity_stats { + struct sched_entity se; + struct sched_statistics stats; +}; + +struct sched_ext_entity { + struct scx_dispatch_q *dsq; + struct scx_dsq_list_node dsq_list; + struct rb_node dsq_priq; + u32 dsq_seq; + u32 dsq_flags; + u32 flags; + u32 weight; + s32 sticky_cpu; + s32 holding_cpu; + u32 kf_mask; + struct task_struct *kf_tasks[2]; + atomic_long_t ops_state; + struct list_head runnable_node; + long unsigned int runnable_at; + u64 core_sched_at; + u64 ddsp_dsq_id; + u64 ddsp_enq_flags; + u64 slice; + u64 dsq_vtime; + bool disallow; + struct cgroup *cgrp_moving_from; + struct list_head tasks_node; +}; + +struct sched_group { + struct sched_group *next; + atomic_t ref; + unsigned int group_weight; + unsigned int cores; + struct sched_group_capacity *sgc; + int asym_prefer_cpu; + int flags; + long unsigned int cpumask[0]; +}; + +struct sched_group_capacity { + atomic_t ref; + long unsigned int capacity; + long unsigned int min_capacity; + long unsigned int max_capacity; + long unsigned int next_update; + int imbalance; + int id; + long unsigned int cpumask[0]; +}; + +struct sched_param { + int sched_priority; +}; + +struct sched_poll { + __guest_handle_evtchn_port_t ports; + unsigned int nr_ports; + uint64_t timeout; +}; + +struct sched_rt_entity { + struct list_head run_list; + long unsigned int timeout; + long unsigned int watchdog_stamp; + unsigned int time_slice; + short unsigned int on_rq; + short unsigned int on_list; + struct sched_rt_entity *back; +}; + +struct sched_shutdown { + unsigned int reason; +}; + +struct sci_irq_desc { + const char *desc; + irq_handler_t handler; +}; + +struct sci_suspend_regs { + u16 scdl; + u16 sccks; + u16 scsmr; + u16 scscr; + u16 scfcr; + u16 scsptr; + u16 hssrr; + u16 scpcr; + u16 scpdr; + u8 scbrr; + u8 semr; +}; + +struct sci_port_params; + +struct sci_port { + struct uart_port port; + const struct sci_port_params *params; + const struct plat_sci_port *cfg; + unsigned int sampling_rate_mask; + resource_size_t reg_size; + struct mctrl_gpios *gpios; + struct clk *clks[4]; + long unsigned int clk_rates[4]; + int irqs[6]; + char *irqstr[6]; + struct dma_chan *chan_tx; + struct dma_chan *chan_rx; + struct reset_control *rstc; + struct dma_chan *chan_tx_saved; + struct dma_chan *chan_rx_saved; + dma_cookie_t cookie_tx; + dma_cookie_t cookie_rx[2]; + dma_cookie_t active_rx; + dma_addr_t tx_dma_addr; + unsigned int tx_dma_len; + struct scatterlist sg_rx[2]; + void *rx_buf[2]; + size_t buf_len_rx; + struct work_struct work_tx; + struct hrtimer rx_timer; + unsigned int rx_timeout; + unsigned int rx_frame; + int rx_trigger; + struct timer_list rx_fifo_timer; + int rx_fifo_timeout; + struct sci_suspend_regs suspend_regs; + u16 hscif_tot; + bool has_rtscts; + bool autorts; + bool tx_occurred; +}; + +struct sci_port_params { + const struct plat_sci_reg regs[20]; + unsigned int fifosize; + unsigned int overrun_reg; + unsigned int overrun_mask; + unsigned int sampling_rate_mask; + unsigned int error_mask; + unsigned int error_clear; +}; + +struct scm_fp_list; + +struct scm_cookie { + struct pid *pid; + struct scm_fp_list *fp; + struct scm_creds creds; + u32 secid; +}; + +struct unix_edge; + +struct scm_fp_list { + short int count; + short int count_unix; + short int max; + bool inflight; + bool dead; + struct list_head vertices; + struct unix_edge *edges; + struct user_struct *user; + struct file *fp[253]; +}; + +struct scm_legacy_command { + __le32 len; + __le32 buf_offset; + __le32 resp_hdr_offset; + __le32 id; + __le32 buf[0]; +}; + +struct scm_legacy_response { + __le32 len; + __le32 buf_offset; + __le32 is_complete; +}; + +struct scm_stat { + atomic_t nr_fds; + long unsigned int nr_unix_fds; +}; + +struct scm_timestamping { + struct __kernel_old_timespec ts[3]; +}; + +struct scm_timestamping64 { + struct __kernel_timespec ts[3]; +}; + +struct scm_timestamping_internal { + struct timespec64 ts[3]; +}; + +struct scm_ts_pktinfo { + __u32 if_index; + __u32 pkt_length; + __u32 reserved[2]; +}; + +struct scmi_sensor_info; + +struct scmi_apriv { + bool any_axes_support_extended_names; + struct scmi_sensor_info *s; +}; + +struct scmi_msg_resp_attrs { + __le32 min_range_low; + __le32 min_range_high; + __le32 max_range_low; + __le32 max_range_high; +}; + +struct scmi_axis_descriptor { + __le32 id; + __le32 attributes_low; + __le32 attributes_high; + u8 name[16]; + __le32 resolution; + struct scmi_msg_resp_attrs attrs; +}; + +struct scmi_base_error_notify_payld { + __le32 agent_id; + __le32 error_status; + __le64 msg_reports[1024]; +}; + +struct scmi_base_error_report { + ktime_t timestamp; + unsigned int agent_id; + bool fatal; + unsigned int cmd_count; + long long unsigned int reports[0]; +}; + +struct scmi_handle; + +struct scmi_chan_info { + int id; + struct device *dev; + bool is_p2a; + unsigned int rx_timeout_ms; + unsigned int max_msg_size; + struct scmi_handle *handle; + bool no_completion_irq; + void *transport_info; +}; + +struct scmi_clk { + u32 id; + struct device *dev; + struct clk_hw hw; + const struct scmi_clock_info *info; + const struct scmi_protocol_handle *ph; + struct clk_parent_data *parent_data; +}; + +struct scmi_clk_ipriv { + struct device *dev; + u32 clk_id; + struct scmi_clock_info *clk; +}; + +struct scmi_clk_proto_ops { + int (*count_get)(const struct scmi_protocol_handle *); + const struct scmi_clock_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*rate_get)(const struct scmi_protocol_handle *, u32, u64 *); + int (*rate_set)(const struct scmi_protocol_handle *, u32, u64); + int (*enable)(const struct scmi_protocol_handle *, u32, bool); + int (*disable)(const struct scmi_protocol_handle *, u32, bool); + int (*state_get)(const struct scmi_protocol_handle *, u32, bool *, bool); + int (*config_oem_get)(const struct scmi_protocol_handle *, u32, enum scmi_clock_oem_config, u32 *, u32 *, bool); + int (*config_oem_set)(const struct scmi_protocol_handle *, u32, enum scmi_clock_oem_config, u32, bool); + int (*parent_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*parent_set)(const struct scmi_protocol_handle *, u32, u32); +}; + +struct scmi_clock_info { + char name[64]; + unsigned int enable_latency; + bool rate_discrete; + bool rate_changed_notifications; + bool rate_change_requested_notifications; + bool state_ctrl_forbidden; + bool rate_ctrl_forbidden; + bool parent_ctrl_forbidden; + bool extended_config; + union { + struct { + int num_rates; + u64 rates[16]; + } list; + struct { + u64 min_rate; + u64 max_rate; + u64 step_size; + } range; + }; + int num_parents; + u32 *parents; +}; + +struct scmi_clock_rate_notif_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int clock_id; + long long unsigned int rate; +}; + +struct scmi_clock_rate_notify_payld { + __le32 agent_id; + __le32 clock_id; + __le32 rate_low; + __le32 rate_high; +}; + +struct scmi_clock_set_rate { + __le32 flags; + __le32 id; + __le32 value_low; + __le32 value_high; +}; + +struct scmi_msg { + void *buf; + size_t len; +}; + +struct scmi_raw_mode_info; + +struct scmi_dbg_raw_data { + u8 chan_id; + struct scmi_raw_mode_info *raw; + struct scmi_msg tx; + size_t tx_size; + size_t tx_req_size; + struct scmi_msg rx; + size_t rx_size; +}; + +struct scmi_debug_info { + struct dentry *top_dentry; + const char *name; + const char *type; + bool is_atomic; + atomic_t counters[14]; +}; + +struct scmi_transport_ops; + +struct scmi_desc { + const struct scmi_transport_ops *ops; + int max_rx_timeout_ms; + int max_msg; + int max_msg_size; + unsigned int atomic_threshold; + const bool force_polling; + const bool sync_cmds_completed_on_ret; + const bool atomic_enabled; +}; + +struct scmi_device { + u32 id; + u8 protocol_id; + const char *name; + struct device dev; + struct scmi_handle *handle; +}; + +struct scmi_device_id { + u8 protocol_id; + const char *name; +}; + +struct scmi_driver { + const char *name; + int (*probe)(struct scmi_device *); + void (*remove)(struct scmi_device *); + const struct scmi_device_id *id_table; + struct device_driver driver; +}; + +struct scmi_event { + u8 id; + size_t max_payld_sz; + size_t max_report_sz; +}; + +struct scmi_registered_event; + +struct scmi_event_handler { + u32 key; + refcount_t users; + struct scmi_registered_event *r_evt; + struct blocking_notifier_head chain; + struct hlist_node hash; + bool enabled; +}; + +struct scmi_event_header { + ktime_t timestamp; + size_t payld_sz; + unsigned char evt_id; + unsigned char payld[0]; +}; + +struct scmi_event_ops { + bool (*is_notify_supported)(const struct scmi_protocol_handle *, u8, u32); + int (*get_num_sources)(const struct scmi_protocol_handle *); + int (*set_notify_enabled)(const struct scmi_protocol_handle *, u8, u32, bool); + void * (*fill_custom_report)(const struct scmi_protocol_handle *, u8, ktime_t, const void *, size_t, void *, u32 *); +}; + +struct scmi_fc_db_info { + int width; + u64 set; + u64 mask; + void *addr; +}; + +struct scmi_fc_info { + void *set_addr; + void *get_addr; + struct scmi_fc_db_info *set_db; + u32 rate_limit; +}; + +struct scmi_function_info { + char name[64]; + bool present; + u32 *groups; + u32 nr_groups; +}; + +struct scmi_group_info { + char name[64]; + bool present; + u32 *group_pins; + u32 nr_pins; +}; + +struct scmi_revision_info; + +struct scmi_notify_ops; + +struct scmi_handle { + struct device *dev; + struct scmi_revision_info *version; + int (*devm_protocol_acquire)(struct scmi_device *, u8); + const void * (*devm_protocol_get)(struct scmi_device *, u8, struct scmi_protocol_handle **); + void (*devm_protocol_put)(struct scmi_device *, u8); + bool (*is_transport_atomic)(const struct scmi_handle *, unsigned int *); + const struct scmi_notify_ops *notify_ops; +}; + +struct scmi_imx_bbm_proto_ops; + +struct scmi_imx_bbm { + struct scmi_protocol_handle *ph; + const struct scmi_imx_bbm_proto_ops *ops; + struct notifier_block nb; + int keycode; + int keystate; + bool suspended; + struct delayed_work check_work; + struct input_dev *input; +}; + +struct scmi_imx_bbm_alarm_time { + __le32 id; + __le32 flags; + __le32 value_low; + __le32 value_high; +}; + +struct scmi_imx_bbm_get_time { + __le32 id; + __le32 flags; +}; + +struct scmi_imx_bbm_info { + u32 version; + int nr_rtc; + int nr_gpr; +}; + +struct scmi_imx_bbm_notif_report { + bool is_rtc; + bool is_button; + ktime_t timestamp; + unsigned int rtc_id; + unsigned int rtc_evt; +}; + +struct scmi_imx_bbm_notify_payld { + __le32 flags; +}; + +struct scmi_imx_bbm_proto_ops { + int (*rtc_time_set)(const struct scmi_protocol_handle *, u32, uint64_t); + int (*rtc_time_get)(const struct scmi_protocol_handle *, u32, u64 *); + int (*rtc_alarm_set)(const struct scmi_protocol_handle *, u32, bool, u64); + int (*button_get)(const struct scmi_protocol_handle *, u32 *); +}; + +struct scmi_imx_bbm_set_time { + __le32 id; + __le32 flags; + __le32 value_low; + __le32 value_high; +}; + +struct scmi_revision_info { + u16 major_ver; + u16 minor_ver; + u8 num_protocols; + u8 num_agents; + u32 impl_ver; + char vendor_id[16]; + char sub_vendor_id[16]; +}; + +struct scmi_xfers_info { + long unsigned int *xfer_alloc_table; + spinlock_t xfer_lock; + int max_msg; + struct hlist_head free_xfers; + struct hlist_head pending_xfers[512]; +}; + +struct scmi_info { + int id; + struct device *dev; + const struct scmi_desc *desc; + struct scmi_revision_info version; + struct scmi_handle handle; + struct scmi_xfers_info tx_minfo; + struct scmi_xfers_info rx_minfo; + struct idr tx_idr; + struct idr rx_idr; + struct idr protocols; + struct mutex protocols_mtx; + u8 *protocols_imp; + struct idr active_protocols; + void *notify_priv; + struct list_head node; + int users; + struct notifier_block bus_nb; + struct notifier_block dev_req_nb; + struct mutex devreq_mtx; + struct scmi_debug_info *dbg; + void *raw; +}; + +struct scmi_iterator_state { + unsigned int desc_index; + unsigned int num_returned; + unsigned int num_remaining; + unsigned int max_resources; + unsigned int loop_idx; + size_t rx_len; + void *priv; +}; + +struct scmi_xfer; + +struct scmi_iterator_ops; + +struct scmi_iterator { + void *msg; + void *resp; + struct scmi_xfer *t; + const struct scmi_protocol_handle *ph; + struct scmi_iterator_ops *ops; + struct scmi_iterator_state state; + void *priv; +}; + +struct scmi_iterator_ops { + void (*prepare_message)(void *, unsigned int, const void *); + int (*update_state)(struct scmi_iterator_state *, const void *, void *); + int (*process_response)(const struct scmi_protocol_handle *, const void *, struct scmi_iterator_state *, void *); +}; + +struct scmi_shared_mem; + +struct scmi_shmem_io_ops; + +struct scmi_mailbox { + struct mbox_client cl; + struct mbox_chan *chan; + struct mbox_chan *chan_receiver; + struct mbox_chan *chan_platform_receiver; + struct scmi_chan_info *cinfo; + struct scmi_shared_mem *shmem; + struct mutex chan_lock; + struct scmi_shmem_io_ops *io_ops; +}; + +struct scmi_msg_payld; + +struct scmi_message_operations { + size_t (*response_size)(struct scmi_xfer *); + size_t (*command_size)(struct scmi_xfer *); + void (*tx_prepare)(struct scmi_msg_payld *, struct scmi_xfer *); + u32 (*read_header)(struct scmi_msg_payld *); + void (*fetch_response)(struct scmi_msg_payld *, size_t, struct scmi_xfer *); + void (*fetch_notification)(struct scmi_msg_payld *, size_t, size_t, struct scmi_xfer *); +}; + +struct scmi_msg_base_error_notify { + __le32 event_control; +}; + +struct scmi_msg_clock_config_get { + __le32 id; + __le32 flags; +}; + +struct scmi_msg_clock_config_set { + __le32 id; + __le32 attributes; +}; + +struct scmi_msg_clock_config_set_v2 { + __le32 id; + __le32 attributes; + __le32 oem_config_val; +}; + +struct scmi_msg_clock_describe_rates { + __le32 id; + __le32 rate_index; +}; + +struct scmi_msg_clock_possible_parents { + __le32 id; + __le32 skip_parents; +}; + +struct scmi_msg_clock_rate_notify { + __le32 clk_id; + __le32 notify_enable; +}; + +struct scmi_msg_clock_set_parent { + __le32 id; + __le32 parent_id; +}; + +struct scmi_msg_cmd_config_set { + __le32 domain_id; + __le32 config; +}; + +struct scmi_msg_cmd_describe_levels { + __le32 domain_id; + __le32 level_index; +}; + +struct scmi_msg_cmd_level_set { + __le32 domain_id; + __le32 flags; + __le32 voltage_level; +}; + +struct scmi_msg_get_fc_info { + __le32 domain; + __le32 message_id; +}; + +struct scmi_msg_hdr { + u8 id; + u8 protocol_id; + u8 type; + u16 seq; + u32 status; + bool poll_completion; +}; + +struct scmi_msg_imx_bbm_button_notify { + __le32 flags; +}; + +struct scmi_msg_imx_bbm_protocol_attributes { + __le32 attributes; +}; + +struct scmi_msg_imx_bbm_rtc_notify { + __le32 rtc_id; + __le32 flags; +}; + +struct scmi_msg_payld { + __le32 msg_header; + __le32 msg_payload[0]; +}; + +struct scmi_msg_perf_describe_levels { + __le32 domain; + __le32 level_index; +}; + +struct scmi_msg_pinctrl_attributes { + __le32 identifier; + __le32 flags; +}; + +struct scmi_msg_pinctrl_list_assoc { + __le32 identifier; + __le32 flags; + __le32 index; +}; + +struct scmi_msg_pinctrl_protocol_attributes { + __le32 attributes_low; + __le32 attributes_high; +}; + +struct scmi_msg_powercap_notify_cap { + __le32 domain; + __le32 notify_enable; +}; + +struct scmi_msg_powercap_notify_thresh { + __le32 domain; + __le32 notify_enable; + __le32 power_thresh_low; + __le32 power_thresh_high; +}; + +struct scmi_msg_powercap_set_cap_or_pai { + __le32 domain; + __le32 flags; + __le32 value; +}; + +struct scmi_msg_request { + __le32 identifier; + __le32 flags; +}; + +struct scmi_msg_reset_domain_reset { + __le32 domain_id; + __le32 flags; + __le32 reset_state; +}; + +struct scmi_msg_reset_notify { + __le32 id; + __le32 event_control; +}; + +struct scmi_msg_resp_base_attributes { + u8 num_protocols; + u8 num_agents; + __le16 reserved; +}; + +struct scmi_msg_resp_base_discover_agent { + __le32 agent_id; + u8 name[16]; +}; + +struct scmi_msg_resp_clock_attributes { + __le32 attributes; + u8 name[16]; + __le32 clock_enable_latency; +}; + +struct scmi_msg_resp_clock_config_get { + __le32 attributes; + __le32 config; + __le32 oem_config_val; +}; + +struct scmi_msg_resp_clock_describe_rates { + __le32 num_rates_flags; + struct { + __le32 value_low; + __le32 value_high; + } rate[0]; +}; + +struct scmi_msg_resp_clock_possible_parents { + __le32 num_parent_flags; + __le32 possible_parents[0]; +}; + +struct scmi_msg_resp_clock_protocol_attributes { + __le16 num_clocks; + u8 max_async_req; + u8 reserved; +}; + +struct scmi_msg_resp_desc_fc { + __le32 attr; + __le32 rate_limit; + __le32 chan_addr_low; + __le32 chan_addr_high; + __le32 chan_size; + __le32 db_addr_low; + __le32 db_addr_high; + __le32 db_set_lmask; + __le32 db_set_hmask; + __le32 db_preserve_lmask; + __le32 db_preserve_hmask; +}; + +struct scmi_msg_resp_describe_levels { + __le32 flags; + __le32 voltage[0]; +}; + +struct scmi_msg_resp_domain_attributes { + __le32 attr; + u8 name[16]; +}; + +struct scmi_msg_resp_domain_name_get { + __le32 flags; + u8 name[64]; +}; + +struct scmi_msg_resp_perf_attributes { + __le16 num_domains; + __le16 flags; + __le32 stats_addr_low; + __le32 stats_addr_high; + __le32 stats_size; +}; + +struct scmi_msg_resp_perf_describe_levels { + __le16 num_returned; + __le16 num_remaining; + struct { + __le32 perf_val; + __le32 power; + __le16 transition_latency_us; + __le16 reserved; + } opp[0]; +}; + +struct scmi_msg_resp_perf_describe_levels_v4 { + __le16 num_returned; + __le16 num_remaining; + struct { + __le32 perf_val; + __le32 power; + __le16 transition_latency_us; + __le16 reserved; + __le32 indicative_freq; + __le32 level_index; + } opp[0]; +}; + +struct scmi_msg_resp_perf_domain_attributes { + __le32 flags; + __le32 rate_limit_us; + __le32 sustained_freq_khz; + __le32 sustained_perf_level; + u8 name[16]; +}; + +struct scmi_msg_resp_power_attributes { + __le16 num_domains; + __le16 reserved; + __le32 stats_addr_low; + __le32 stats_addr_high; + __le32 stats_size; +}; + +struct scmi_msg_resp_power_domain_attributes { + __le32 flags; + u8 name[16]; +}; + +struct scmi_msg_resp_powercap_cap_set_complete { + __le32 domain; + __le32 power_cap; +}; + +struct scmi_msg_resp_powercap_domain_attributes { + __le32 attributes; + u8 name[16]; + __le32 min_pai; + __le32 max_pai; + __le32 pai_step; + __le32 min_power_cap; + __le32 max_power_cap; + __le32 power_cap_step; + __le32 sustainable_power; + __le32 accuracy; + __le32 parent_id; +}; + +struct scmi_msg_resp_powercap_meas_get { + __le32 power; + __le32 pai; +}; + +struct scmi_msg_resp_reset_domain_attributes { + __le32 attributes; + __le32 latency; + u8 name[16]; +}; + +struct scmi_msg_resp_sensor_attributes { + __le16 num_sensors; + u8 max_requests; + u8 reserved; + __le32 reg_addr_low; + __le32 reg_addr_high; + __le32 reg_size; +}; + +struct scmi_msg_resp_sensor_axis_description { + __le32 num_axis_flags; + struct scmi_axis_descriptor desc[0]; +}; + +struct scmi_sensor_axis_name_descriptor { + __le32 axis_id; + u8 name[64]; +}; + +struct scmi_msg_resp_sensor_axis_names_description { + __le32 num_axis_flags; + struct scmi_sensor_axis_name_descriptor desc[0]; +}; + +struct scmi_sensor_descriptor { + __le32 id; + __le32 attributes_low; + __le32 attributes_high; + u8 name[16]; + __le32 power; + __le32 resolution; + struct scmi_msg_resp_attrs scalar_attrs; +}; + +struct scmi_msg_resp_sensor_description { + __le16 num_returned; + __le16 num_remaining; + struct scmi_sensor_descriptor desc[0]; +}; + +struct scmi_msg_resp_sensor_list_update_intervals { + __le32 num_intervals_flags; + __le32 intervals[0]; +}; + +struct scmi_msg_resp_set_rate_complete { + __le32 id; + __le32 rate_low; + __le32 rate_high; +}; + +struct scmi_msg_sensor_axis_description_get { + __le32 id; + __le32 axis_desc_index; +}; + +struct scmi_msg_sensor_config_set { + __le32 id; + __le32 sensor_config; +}; + +struct scmi_msg_sensor_description { + __le32 desc_index; +}; + +struct scmi_msg_sensor_list_update_intervals { + __le32 id; + __le32 index; +}; + +struct scmi_msg_sensor_reading_get { + __le32 id; + __le32 flags; +}; + +struct scmi_msg_sensor_request_notify { + __le32 id; + __le32 event_control; +}; + +struct scmi_msg_set_sensor_trip_point { + __le32 id; + __le32 event_control; + __le32 value_low; + __le32 value_high; +}; + +struct scmi_msg_settings_conf { + __le32 identifier; + __le32 function_id; + __le32 attributes; + __le32 configs[0]; +}; + +struct scmi_msg_settings_get { + __le32 identifier; + __le32 attributes; +}; + +struct scmi_notifier_devres { + const struct scmi_handle *handle; + u8 proto_id; + u8 evt_id; + u32 __src_id; + u32 *src_id; + struct notifier_block *nb; +}; + +struct scmi_registered_events_desc; + +struct scmi_notify_instance { + void *gid; + struct scmi_handle *handle; + struct work_struct init_work; + struct workqueue_struct *notify_wq; + struct mutex pending_mtx; + struct scmi_registered_events_desc **registered_protocols; + struct hlist_head pending_events_handlers[16]; +}; + +struct scmi_notify_ops { + int (*devm_event_notifier_register)(struct scmi_device *, u8, u8, const u32 *, struct notifier_block *); + int (*devm_event_notifier_unregister)(struct scmi_device *, struct notifier_block *); + int (*event_notifier_register)(const struct scmi_handle *, u8, u8, const u32 *, struct notifier_block *); + int (*event_notifier_unregister)(const struct scmi_handle *, u8, u8, const u32 *, struct notifier_block *); +}; + +struct scmi_perf_get_limits { + __le32 max_level; + __le32 min_level; +}; + +struct scmi_perf_info { + u32 version; + u16 num_domains; + enum scmi_power_scale power_scale; + u64 stats_addr; + u32 stats_size; + bool notify_lvl_cmd; + bool notify_lim_cmd; + struct perf_dom_info *dom_info; +}; + +struct scmi_perf_ipriv { + u32 version; + struct perf_dom_info *perf_dom; +}; + +struct scmi_perf_level_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 performance_level; +}; + +struct scmi_perf_level_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int performance_level; + long unsigned int performance_level_freq; +}; + +struct scmi_perf_limits_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 range_max; + __le32 range_min; +}; + +struct scmi_perf_limits_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int range_max; + unsigned int range_min; + long unsigned int range_max_freq; + long unsigned int range_min_freq; +}; + +struct scmi_perf_notify_level_or_limits { + __le32 domain; + __le32 notify_enable; +}; + +struct scmi_perf_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const struct scmi_perf_domain_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*limits_set)(const struct scmi_protocol_handle *, u32, u32, u32); + int (*limits_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); + int (*level_set)(const struct scmi_protocol_handle *, u32, u32, bool); + int (*level_get)(const struct scmi_protocol_handle *, u32, u32 *, bool); + int (*transition_latency_get)(const struct scmi_protocol_handle *, u32); + int (*rate_limit_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*device_opps_add)(const struct scmi_protocol_handle *, struct device *, u32); + int (*freq_set)(const struct scmi_protocol_handle *, u32, long unsigned int, bool); + int (*freq_get)(const struct scmi_protocol_handle *, u32, long unsigned int *, bool); + int (*est_power_get)(const struct scmi_protocol_handle *, u32, long unsigned int *, long unsigned int *); + bool (*fast_switch_possible)(const struct scmi_protocol_handle *, u32); + int (*fast_switch_rate_limit)(const struct scmi_protocol_handle *, u32, u32 *); + enum scmi_power_scale (*power_scale_get)(const struct scmi_protocol_handle *); +}; + +struct scmi_perf_set_level { + __le32 domain; + __le32 level; +}; + +struct scmi_perf_set_limits { + __le32 domain; + __le32 max_level; + __le32 min_level; +}; + +struct scmi_pin_info { + char name[64]; + bool present; +}; + +struct scmi_pinctrl_info { + u32 version; + int nr_groups; + int nr_functions; + int nr_pins; + struct scmi_group_info *groups; + struct scmi_function_info *functions; + struct scmi_pin_info *pins; +}; + +struct scmi_pinctrl_ipriv { + u32 selector; + enum scmi_pinctrl_selector_type type; + u32 *array; +}; + +struct scmi_pinctrl_proto_ops { + int (*count_get)(const struct scmi_protocol_handle *, enum scmi_pinctrl_selector_type); + int (*name_get)(const struct scmi_protocol_handle *, u32, enum scmi_pinctrl_selector_type, const char **); + int (*group_pins_get)(const struct scmi_protocol_handle *, u32, const unsigned int **, unsigned int *); + int (*function_groups_get)(const struct scmi_protocol_handle *, u32, unsigned int *, const unsigned int **); + int (*mux_set)(const struct scmi_protocol_handle *, u32, u32); + int (*settings_get_one)(const struct scmi_protocol_handle *, u32, enum scmi_pinctrl_selector_type, enum scmi_pinctrl_conf_type, u32 *); + int (*settings_get_all)(const struct scmi_protocol_handle *, u32, enum scmi_pinctrl_selector_type, unsigned int *, enum scmi_pinctrl_conf_type *, u32 *); + int (*settings_conf)(const struct scmi_protocol_handle *, u32, enum scmi_pinctrl_selector_type, unsigned int, enum scmi_pinctrl_conf_type *, u32 *); + int (*pin_request)(const struct scmi_protocol_handle *, u32); + int (*pin_free)(const struct scmi_protocol_handle *, u32); +}; + +struct scmi_power_info { + u32 version; + bool notify_state_change_cmd; + int num_domains; + u64 stats_addr; + u32 stats_size; + struct power_dom_info *dom_info; +}; + +struct scmi_power_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const char * (*name_get)(const struct scmi_protocol_handle *, u32); + int (*state_set)(const struct scmi_protocol_handle *, u32, u32); + int (*state_get)(const struct scmi_protocol_handle *, u32, u32 *); +}; + +struct scmi_power_set_state { + __le32 flags; + __le32 domain; + __le32 state; +}; + +struct scmi_power_state_changed_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int power_state; +}; + +struct scmi_power_state_notify { + __le32 domain; + __le32 notify_enable; +}; + +struct scmi_power_state_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 power_state; +}; + +struct scmi_powercap_cap_changed_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 power_cap; + __le32 pai; +}; + +struct scmi_powercap_cap_changed_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int power_cap; + unsigned int pai; +}; + +struct scmi_powercap_info { + unsigned int id; + bool notify_powercap_cap_change; + bool notify_powercap_measurement_change; + bool async_powercap_cap_set; + bool powercap_cap_config; + bool powercap_monitoring; + bool powercap_pai_config; + bool powercap_scale_mw; + bool powercap_scale_uw; + bool fastchannels; + char name[64]; + unsigned int min_pai; + unsigned int max_pai; + unsigned int pai_step; + unsigned int min_power_cap; + unsigned int max_power_cap; + unsigned int power_cap_step; + unsigned int sustainable_power; + unsigned int accuracy; + unsigned int parent_id; + struct scmi_fc_info *fc_info; +}; + +struct scmi_powercap_meas_changed_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 power; +}; + +struct scmi_powercap_meas_changed_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int power; +}; + +struct scmi_powercap_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const struct scmi_powercap_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*cap_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*cap_set)(const struct scmi_protocol_handle *, u32, u32, bool); + int (*cap_enable_set)(const struct scmi_protocol_handle *, u32, bool); + int (*cap_enable_get)(const struct scmi_protocol_handle *, u32, bool *); + int (*pai_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*pai_set)(const struct scmi_protocol_handle *, u32, u32); + int (*measurements_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); + int (*measurements_threshold_set)(const struct scmi_protocol_handle *, u32, u32, u32); + int (*measurements_threshold_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); +}; + +struct scmi_powercap_state { + bool enabled; + u32 last_pcap; + bool meas_notif_enabled; + u64 thresholds; +}; + +struct scmi_proto_helpers_ops { + int (*extended_name_get)(const struct scmi_protocol_handle *, u8, u32, u32 *, char *, size_t); + void * (*iter_response_init)(const struct scmi_protocol_handle *, struct scmi_iterator_ops *, unsigned int, u8, size_t, void *); + int (*iter_response_run)(void *); + int (*protocol_msg_check)(const struct scmi_protocol_handle *, u32, u32 *); + void (*fastchannel_init)(const struct scmi_protocol_handle *, u8, u32, u32, u32, void **, struct scmi_fc_db_info **, u32 *); + void (*fastchannel_db_ring)(struct scmi_fc_db_info *); + int (*get_max_msg_size)(const struct scmi_protocol_handle *); +}; + +typedef int (*scmi_prot_init_ph_fn_t)(const struct scmi_protocol_handle *); + +struct scmi_protocol_events; + +struct scmi_protocol { + const u8 id; + struct module *owner; + const scmi_prot_init_ph_fn_t instance_init; + const scmi_prot_init_ph_fn_t instance_deinit; + const void *ops; + const struct scmi_protocol_events *events; + unsigned int supported_version; + char *vendor_id; + char *sub_vendor_id; + u32 impl_ver; +}; + +struct scmi_protocol_devres { + const struct scmi_handle *handle; + u8 protocol_id; +}; + +struct scmi_protocol_events { + size_t queue_sz; + const struct scmi_event_ops *ops; + const struct scmi_event *evts; + unsigned int num_events; + unsigned int num_sources; +}; + +struct scmi_xfer_ops; + +struct scmi_protocol_handle { + struct device *dev; + const struct scmi_xfer_ops *xops; + const struct scmi_proto_helpers_ops *hops; + int (*set_priv)(const struct scmi_protocol_handle *, void *, u32); + void * (*get_priv)(const struct scmi_protocol_handle *); +}; + +struct scmi_protocol_instance { + const struct scmi_handle *handle; + const struct scmi_protocol *proto; + void *gid; + refcount_t users; + void *priv; + unsigned int version; + unsigned int negotiated_version; + struct scmi_protocol_handle ph; +}; + +struct scmi_range_attrs { + long long int min_range; + long long int max_range; +}; + +struct scmi_raw_buffer { + size_t max_len; + struct scmi_msg msg; + struct list_head node; +}; + +struct scmi_raw_queue; + +struct scmi_raw_mode_info { + unsigned int id; + const struct scmi_handle *handle; + const struct scmi_desc *desc; + int tx_max_msg; + struct scmi_raw_queue *q[3]; + struct xarray chans_q; + struct list_head free_waiters; + struct mutex free_mtx; + struct list_head active_waiters; + struct mutex active_mtx; + struct work_struct waiters_work; + struct workqueue_struct *wait_wq; + struct dentry *dentry; + void *gid; +}; + +struct scmi_raw_queue { + struct list_head free_bufs; + spinlock_t free_bufs_lock; + struct list_head msg_q; + spinlock_t msg_q_lock; + wait_queue_head_t wq; +}; + +struct scmi_registered_event { + struct scmi_registered_events_desc *proto; + const struct scmi_event *evt; + void *report; + u32 num_sources; + refcount_t *sources; + struct mutex sources_mtx; +}; + +struct scmi_registered_events_desc { + u8 id; + const struct scmi_event_ops *ops; + struct events_queue equeue; + struct scmi_notify_instance *ni; + struct scmi_event_header *eh; + size_t eh_sz; + void *in_flight; + int num_events; + struct scmi_registered_event **registered_events; + struct mutex registered_mtx; + const struct scmi_protocol_handle *ph; + struct hlist_head registered_events_handlers[64]; +}; + +struct scmi_regulator { + u32 id; + struct scmi_device *sdev; + struct scmi_protocol_handle *ph; + struct regulator_dev *rdev; + struct device_node *of_node; + struct regulator_desc desc; + struct regulator_config conf; +}; + +struct scmi_regulator_info { + int num_doms; + struct scmi_regulator **sregv; +}; + +struct scmi_requested_dev { + const struct scmi_device_id *id_table; + struct list_head node; +}; + +struct scmi_reset_info { + u32 version; + int num_domains; + bool notify_reset_cmd; + struct reset_dom_info *dom_info; +}; + +struct scmi_reset_issued_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 reset_state; +}; + +struct scmi_reset_issued_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int reset_state; +}; + +struct scmi_reset_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const char * (*name_get)(const struct scmi_protocol_handle *, u32); + int (*latency_get)(const struct scmi_protocol_handle *, u32); + int (*reset)(const struct scmi_protocol_handle *, u32); + int (*assert)(const struct scmi_protocol_handle *, u32); + int (*deassert)(const struct scmi_protocol_handle *, u32); +}; + +struct scmi_resp_pinctrl_attributes { + __le32 attributes; + u8 name[16]; +}; + +struct scmi_resp_pinctrl_list_assoc { + __le32 flags; + __le16 array[0]; +}; + +struct scmi_resp_sensor_reading_complete { + __le32 id; + __le32 readings_low; + __le32 readings_high; +}; + +struct scmi_sensor_reading_resp { + __le32 sensor_value_low; + __le32 sensor_value_high; + __le32 timestamp_low; + __le32 timestamp_high; +}; + +struct scmi_resp_sensor_reading_complete_v3 { + __le32 id; + struct scmi_sensor_reading_resp readings[0]; +}; + +struct scmi_resp_settings_get { + __le32 function_selected; + __le32 num_configs; + __le32 configs[0]; +}; + +struct scmi_resp_voltage_level_set_complete { + __le32 domain_id; + __le32 voltage_level; +}; + +struct scmi_sens_ipriv { + void *priv; + struct device *dev; +}; + +struct scmi_sensor_axis_info { + unsigned int id; + unsigned int type; + int scale; + char name[64]; + bool extended_attrs; + unsigned int resolution; + int exponent; + struct scmi_range_attrs attrs; +}; + +struct scmi_sensor_intervals_info { + bool segmented; + unsigned int count; + unsigned int *desc; + unsigned int prealloc_pool[16]; +}; + +struct scmi_sensor_info { + unsigned int id; + unsigned int type; + int scale; + unsigned int num_trip_points; + bool async; + bool update; + bool timestamped; + int tstamp_scale; + unsigned int num_axis; + struct scmi_sensor_axis_info *axis; + struct scmi_sensor_intervals_info intervals; + unsigned int sensor_config; + char name[64]; + bool extended_scalar_attrs; + unsigned int sensor_power; + unsigned int resolution; + int exponent; + struct scmi_range_attrs scalar_attrs; +}; + +struct scmi_sensor_reading; + +struct scmi_sensor_proto_ops { + int (*count_get)(const struct scmi_protocol_handle *); + const struct scmi_sensor_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*trip_point_config)(const struct scmi_protocol_handle *, u32, u8, u64); + int (*reading_get)(const struct scmi_protocol_handle *, u32, u64 *); + int (*reading_get_timestamped)(const struct scmi_protocol_handle *, u32, u8, struct scmi_sensor_reading *); + int (*config_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*config_set)(const struct scmi_protocol_handle *, u32, u32); +}; + +struct scmi_sensor_reading { + long long int value; + long long unsigned int timestamp; +}; + +struct scmi_sensor_trip_notify_payld { + __le32 agent_id; + __le32 sensor_id; + __le32 trip_point_desc; +}; + +struct scmi_sensor_trip_point_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int sensor_id; + unsigned int trip_point_desc; +}; + +struct scmi_sensor_update_notify_payld { + __le32 agent_id; + __le32 sensor_id; + struct scmi_sensor_reading_resp readings[0]; +}; + +struct scmi_sensor_update_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int sensor_id; + unsigned int readings_count; + struct scmi_sensor_reading readings[0]; +}; + +struct scmi_settings_get_ipriv { + u32 selector; + enum scmi_pinctrl_selector_type type; + bool get_all; + unsigned int *nr_configs; + enum scmi_pinctrl_conf_type *config_types; + u32 *config_values; +}; + +struct scmi_shared_mem { + __le32 reserved; + __le32 channel_status; + __le32 reserved1[2]; + __le32 flags; + __le32 length; + __le32 msg_header; + u8 msg_payload[0]; +}; + +typedef void (*shmem_copy_toio_t)(void *, const void *, size_t); + +typedef void (*shmem_copy_fromio_t)(void *, const void *, size_t); + +struct scmi_shared_mem_operations { + void (*tx_prepare)(struct scmi_shared_mem *, struct scmi_xfer *, struct scmi_chan_info *, shmem_copy_toio_t); + u32 (*read_header)(struct scmi_shared_mem *); + void (*fetch_response)(struct scmi_shared_mem *, struct scmi_xfer *, shmem_copy_fromio_t); + void (*fetch_notification)(struct scmi_shared_mem *, size_t, struct scmi_xfer *, shmem_copy_fromio_t); + void (*clear_channel)(struct scmi_shared_mem *); + bool (*poll_done)(struct scmi_shared_mem *, struct scmi_xfer *); + bool (*channel_free)(struct scmi_shared_mem *); + bool (*channel_intr_enabled)(struct scmi_shared_mem *); + void * (*setup_iomap)(struct scmi_chan_info *, struct device *, bool, struct resource *, struct scmi_shmem_io_ops **); +}; + +struct scmi_shmem_io_ops { + shmem_copy_fromio_t fromio; + shmem_copy_toio_t toio; +}; + +struct scmi_smc { + int irq; + struct scmi_chan_info *cinfo; + struct scmi_shared_mem *shmem; + struct scmi_shmem_io_ops *io_ops; + struct mutex shmem_lock; + atomic_t inflight; + long unsigned int func_id; + long unsigned int param_page; + long unsigned int param_offset; + long unsigned int cap_id; +}; + +struct scmi_system_info { + u32 version; + bool graceful_timeout_supported; + bool power_state_notify_cmd; +}; + +struct scmi_system_power_state_notifier_payld { + __le32 agent_id; + __le32 flags; + __le32 system_state; + __le32 timeout; +}; + +struct scmi_system_power_state_notifier_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int flags; + unsigned int system_state; + unsigned int timeout; +}; + +struct scmi_system_power_state_notify { + __le32 notify_enable; +}; + +struct scmi_transport_core_operations; + +struct scmi_transport { + struct device *supplier; + struct scmi_desc desc; + struct scmi_transport_core_operations **core_ops; +}; + +struct scmi_transport_core_operations { + void (*bad_message_trace)(struct scmi_chan_info *, u32, enum scmi_bad_msg); + void (*rx_callback)(struct scmi_chan_info *, u32, void *); + const struct scmi_shared_mem_operations *shmem; + const struct scmi_message_operations *msg; +}; + +struct scmi_transport_ops { + bool (*chan_available)(struct device_node *, int); + int (*chan_setup)(struct scmi_chan_info *, struct device *, bool); + int (*chan_free)(int, void *, void *); + unsigned int (*get_max_msg)(struct scmi_chan_info *); + int (*send_message)(struct scmi_chan_info *, struct scmi_xfer *); + void (*mark_txdone)(struct scmi_chan_info *, int, struct scmi_xfer *); + void (*fetch_response)(struct scmi_chan_info *, struct scmi_xfer *); + void (*fetch_notification)(struct scmi_chan_info *, size_t, struct scmi_xfer *); + void (*clear_channel)(struct scmi_chan_info *); + bool (*poll_done)(struct scmi_chan_info *, struct scmi_xfer *); +}; + +struct scmi_vio_channel { + struct virtqueue *vqueue; + struct scmi_chan_info *cinfo; + spinlock_t free_lock; + struct list_head free_list; + spinlock_t pending_lock; + struct list_head pending_cmds_list; + struct work_struct deferred_tx_work; + struct workqueue_struct *deferred_tx_wq; + bool is_rx; + unsigned int max_msg; + spinlock_t lock; + struct completion *shutdown_done; + refcount_t users; +}; + +struct scmi_vio_msg { + struct scmi_msg_payld *request; + struct scmi_msg_payld *input; + struct list_head list; + unsigned int rx_len; + unsigned int max_len; + unsigned int poll_idx; + enum poll_states poll_status; + spinlock_t poll_lock; + refcount_t users; +}; + +struct scmi_voltage_info; + +struct scmi_volt_ipriv { + struct device *dev; + struct scmi_voltage_info *v; +}; + +struct scmi_voltage_info { + unsigned int id; + bool segmented; + bool negative_volts_allowed; + bool async_level_set; + char name[64]; + unsigned int num_levels; + int *levels_uv; +}; + +struct scmi_voltage_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const struct scmi_voltage_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*config_set)(const struct scmi_protocol_handle *, u32, u32); + int (*config_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*level_set)(const struct scmi_protocol_handle *, u32, enum scmi_voltage_level_mode, s32); + int (*level_get)(const struct scmi_protocol_handle *, u32, s32 *); +}; + +struct scmi_xfer { + int transfer_id; + struct scmi_msg_hdr hdr; + struct scmi_msg tx; + struct scmi_msg rx; + struct completion done; + struct completion *async_done; + bool pending; + struct hlist_node node; + refcount_t users; + atomic_t busy; + int state; + int flags; + spinlock_t lock; + void *priv; +}; + +struct scmi_xfer_ops { + int (*version_get)(const struct scmi_protocol_handle *, u32 *); + int (*xfer_get_init)(const struct scmi_protocol_handle *, u8, size_t, size_t, struct scmi_xfer **); + void (*reset_rx_to_maxsz)(const struct scmi_protocol_handle *, struct scmi_xfer *); + int (*do_xfer)(const struct scmi_protocol_handle *, struct scmi_xfer *); + int (*do_xfer_with_response)(const struct scmi_protocol_handle *, struct scmi_xfer *); + void (*xfer_put)(const struct scmi_protocol_handle *, struct scmi_xfer *); +}; + +struct scmi_xfer_raw_waiter { + long unsigned int start_jiffies; + struct scmi_chan_info *cinfo; + struct scmi_xfer *xfer; + struct completion async_response; + struct list_head node; +}; + +struct scomp_alg { + void * (*alloc_ctx)(struct crypto_scomp *); + void (*free_ctx)(struct crypto_scomp *, void *); + int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; +}; + +struct scomp_scratch { + spinlock_t lock; + void *src; + void *dst; +}; + +struct scp_ctrl_reg { + int pwr_sta_offs; + int pwr_sta2nd_offs; +}; + +struct scp_domain; + +struct scp { + struct scp_domain *domains; + struct genpd_onecell_data pd_data; + struct device *dev; + void *base; + struct regmap *infracfg; + struct scp_ctrl_reg ctrl_reg; + bool bus_prot_reg_update; +}; + +struct scp_domain_data; + +struct scp_domain { + struct generic_pm_domain genpd; + struct scp *scp; + struct clk *clk[3]; + const struct scp_domain_data *data; + struct regulator *supply; +}; + +struct scp_domain_data { + const char *name; + u32 sta_mask; + int ctl_offs; + u32 sram_pdn_bits; + u32 sram_pdn_ack_bits; + u32 bus_prot_mask; + enum clk_id___2 clk_id[3]; + u8 caps; +}; + +struct scp_subdomain; + +struct scp_soc_data { + const struct scp_domain_data *domains; + int num_domains; + const struct scp_subdomain *subdomains; + int num_subdomains; + const struct scp_ctrl_reg regs; + bool bus_prot_reg_update; +}; + +struct scp_subdomain { + int origin; + int subdomain; +}; + +struct scpsys_soc_data; + +struct scpsys { + struct device *dev; + struct regmap *base; + const struct scpsys_soc_data *soc_data; + struct genpd_onecell_data pd_data; + struct generic_pm_domain *domains[0]; +}; + +struct scpsys_bus_prot_data { + u32 bus_prot_set_clr_mask; + u32 bus_prot_set; + u32 bus_prot_clr; + u32 bus_prot_sta_mask; + u32 bus_prot_sta; + u8 flags; +}; + +struct scpsys_domain_data; + +struct scpsys_domain { + struct generic_pm_domain genpd; + const struct scpsys_domain_data *data; + struct scpsys *scpsys; + int num_clks; + struct clk_bulk_data *clks; + int num_subsys_clks; + struct clk_bulk_data *subsys_clks; + struct regmap *infracfg_nao; + struct regmap *infracfg; + struct regmap *smi; + struct regulator *supply; +}; + +struct scpsys_domain_data { + const char *name; + u32 sta_mask; + int ctl_offs; + u32 sram_pdn_bits; + u32 sram_pdn_ack_bits; + int ext_buck_iso_offs; + u32 ext_buck_iso_mask; + u16 caps; + const struct scpsys_bus_prot_data bp_cfg[6]; + int pwr_sta_offs; + int pwr_sta2nd_offs; +}; + +struct scpsys_soc_data { + const struct scpsys_domain_data *domains_data; + int num_domains; +}; + +struct scratches_to_free { + struct callback_head rcu; + unsigned int cnt; + void *scratches[0]; +}; + +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 scsi_cd { + unsigned int capacity; + struct scsi_device *device; + unsigned int vendor; + long unsigned int 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; +}; + +typedef struct scsi_cd Scsi_CD; + +struct scsi_data_buffer { + struct sg_table table; + unsigned int length; +}; + +struct scsi_cmnd { + struct scsi_device *device; + struct list_head eh_entry; + struct delayed_work abort_work; + struct callback_head rcu; + int eh_eflags; + int budget_token; + long unsigned int jiffies_at_alloc; + int retries; + int allowed; + unsigned char prot_op; + unsigned char prot_type; + unsigned char prot_flags; + enum scsi_cmnd_submitter submitter; + short unsigned int 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; + long unsigned int state; + unsigned int extra_len; + unsigned char *host_scribble; + int result; +}; + +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 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; + short unsigned int queue_depth; + short unsigned int max_queue_depth; + short unsigned int last_queue_full_depth; + short unsigned int last_queue_full_count; + long unsigned int last_queue_full_time; + long unsigned int queue_ramp_up_period; + long unsigned int 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 *vpd_pg0; + struct scsi_vpd *vpd_pg83; + struct scsi_vpd *vpd_pg80; + struct scsi_vpd *vpd_pg89; + struct scsi_vpd *vpd_pgb0; + struct scsi_vpd *vpd_pgb1; + struct scsi_vpd *vpd_pgb2; + struct scsi_vpd *vpd_pgb7; + struct scsi_target *sdev_target; + blist_flags_t sdev_bflags; + unsigned int eh_timeout; + unsigned int manage_system_start_stop: 1; + unsigned int manage_runtime_start_stop: 1; + unsigned int manage_shutdown: 1; + unsigned int force_runtime_start_on_system_start: 1; + unsigned int removable: 1; + unsigned int changed: 1; + unsigned int busy: 1; + unsigned int lockable: 1; + unsigned int locked: 1; + unsigned int borken: 1; + unsigned int disconnect: 1; + unsigned int soft_reset: 1; + unsigned int sdtr: 1; + unsigned int wdtr: 1; + unsigned int ppr: 1; + unsigned int tagged_supported: 1; + unsigned int simple_tags: 1; + unsigned int was_reset: 1; + unsigned int expecting_cc_ua: 1; + unsigned int use_10_for_rw: 1; + unsigned int use_10_for_ms: 1; + unsigned int set_dbd_for_ms: 1; + unsigned int read_before_ms: 1; + unsigned int no_report_opcodes: 1; + unsigned int no_write_same: 1; + unsigned int use_16_for_rw: 1; + unsigned int use_16_for_sync: 1; + unsigned int skip_ms_page_8: 1; + unsigned int skip_ms_page_3f: 1; + unsigned int skip_vpd_pages: 1; + unsigned int try_vpd_pages: 1; + unsigned int use_192_bytes_for_3f: 1; + unsigned int no_start_on_add: 1; + unsigned int allow_restart: 1; + unsigned int start_stop_pwr_cond: 1; + unsigned int no_uld_attach: 1; + unsigned int select_no_atn: 1; + unsigned int fix_capacity: 1; + unsigned int guess_capacity: 1; + unsigned int retry_hwerror: 1; + unsigned int last_sector_bug: 1; + unsigned int no_read_disc_info: 1; + unsigned int no_read_capacity_16: 1; + unsigned int try_rc_10_first: 1; + unsigned int security_supported: 1; + unsigned int is_visible: 1; + unsigned int wce_default_on: 1; + unsigned int no_dif: 1; + unsigned int broken_fua: 1; + unsigned int lun_in_cdb: 1; + unsigned int unmap_limit_for_ws: 1; + unsigned int rpm_autosuspend: 1; + unsigned int ignore_media_change: 1; + unsigned int silence_suspend: 1; + unsigned int no_vpd_size: 1; + unsigned int cdl_supported: 1; + unsigned int cdl_enable: 1; + unsigned int queue_stopped; + bool offline_already; + atomic_t disk_events_disable_depth; + long unsigned int supported_events[1]; + long unsigned int 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; + long unsigned int sdev_data[0]; +}; + +typedef void (*activate_complete)(void *, int); + +struct scsi_device_handler { + struct list_head list; + struct module *module; + const char *name; + enum scsi_disposition (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *); + int (*attach)(struct scsi_device *); + void (*detach)(struct scsi_device *); + int (*activate)(struct scsi_device *, activate_complete, void *); + blk_status_t (*prep_fn)(struct scsi_device *, struct request *); + int (*set_params)(struct scsi_device *, const char *); + void (*rescan)(struct scsi_device *); +}; + +struct scsi_dh_blist { + const char *vendor; + const char *model; + const char *driver; +}; + +struct zoned_disk_info { + u32 nr_zones; + u32 zone_blocks; +}; + +struct scsi_disk { + struct scsi_device *device; + struct device disk_dev; + struct gendisk *disk; + struct opal_dev *opal_dev; + struct zoned_disk_info early_zone_info; + struct zoned_disk_info zone_info; + u32 zones_optimal_open; + u32 zones_optimal_nonseq; + u32 zones_max_open; + u32 zone_starting_lba_gran; + 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 max_atomic; + u32 atomic_alignment; + u32 atomic_granularity; + u32 max_atomic_with_boundary; + u32 max_atomic_boundary; + u32 index; + unsigned int physical_block_size; + unsigned int max_medium_access_timeouts; + unsigned int medium_access_timed_out; + u16 permanent_stream_count; + u8 media_present; + u8 write_prot; + u8 protection_type; + u8 provisioning_mode; + u8 zeroing_mode; + u8 nr_actuators; + bool suspended; + unsigned int ATO: 1; + unsigned int cache_override: 1; + unsigned int WCE: 1; + unsigned int RCD: 1; + unsigned int DPOFUA: 1; + unsigned int first_scan: 1; + unsigned int lbpme: 1; + unsigned int lbprz: 1; + unsigned int lbpu: 1; + unsigned int lbpws: 1; + unsigned int lbpws10: 1; + unsigned int lbpvpd: 1; + unsigned int ws10: 1; + unsigned int ws16: 1; + unsigned int rc_basis: 2; + unsigned int zoned: 2; + unsigned int urswrz: 1; + unsigned int security: 1; + unsigned int ignore_medium_access_errors: 1; + unsigned int rscs: 1; + unsigned int use_atomic_write_boundary: 1; +}; + +struct scsi_driver { + struct device_driver gendrv; + int (*resume)(struct device *); + void (*rescan)(struct device *); + blk_status_t (*init_command)(struct scsi_cmnd *); + void (*uninit_command)(struct scsi_cmnd *); + int (*done)(struct scsi_cmnd *); + int (*eh_action)(struct scsi_cmnd *, int); + void (*eh_reset)(struct scsi_cmnd *); +}; + +struct scsi_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 scsi_event { + enum scsi_device_event evt_type; + struct list_head node; +}; + +struct scsi_failures; + +struct scsi_exec_args { + unsigned char *sense; + unsigned int sense_len; + struct scsi_sense_hdr *sshdr; + blk_mq_req_flags_t req_flags; + int scmd_flags; + int *resid; + struct scsi_failures *failures; +}; + +struct scsi_failure { + int result; + u8 sense; + u8 asc; + u8 ascq; + s8 allowed; + s8 retries; +}; + +struct scsi_failures { + int total_allowed; + int total_retries; + struct scsi_failure *failure_definitions; +}; + +struct scsi_host_busy_iter_data { + bool (*fn)(struct scsi_cmnd *, void *); + void *priv; +}; + +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 *); + int (*compat_ioctl)(struct scsi_device *, unsigned int, void *); + 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 (*sdev_init)(struct scsi_device *); + int (*sdev_configure)(struct scsi_device *, struct queue_limits *); + void (*sdev_destroy)(struct scsi_device *); + int (*target_alloc)(struct scsi_target *); + void (*target_destroy)(struct scsi_target *); + int (*scan_finished)(struct Scsi_Host *, long unsigned int); + 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; + short unsigned int sg_tablesize; + short unsigned int sg_prot_tablesize; + unsigned int max_sectors; + unsigned int max_segment_size; + unsigned int dma_alignment; + long unsigned int dma_boundary; + long unsigned int virt_boundary_mask; + short int cmd_per_lun; + bool tag_alloc_policy_rr: 1; + unsigned int track_queue_depth: 1; + unsigned int supported_mode: 2; + unsigned int emulated: 1; + unsigned int skip_settle_delay: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int queuecommand_may_block: 1; + unsigned int max_host_blocked; + const struct attribute_group **shost_groups; + const struct attribute_group **sdev_groups; + u64 vendor_id; +}; + +struct scsi_idlun { + __u32 dev_id; + __u32 host_unique_id; +}; + +struct scsi_io_group_descriptor { + u8 ic_enable: 1; + u8 cs_enble: 1; + u8 st_enble: 1; + u8 reserved1: 3; + u8 io_advice_hints_mode: 2; + u8 reserved2[3]; + u8 lbm_descriptor_type: 4; + u8 rlbsr: 2; + u8 reserved3: 1; + u8 acdlu: 1; + u8 params[2]; + u8 reserved4; + u8 reserved5[8]; +}; + +struct scsi_ioctl_command { + unsigned int inlen; + unsigned int outlen; + unsigned char data[0]; +}; + +struct scsi_lun { + __u8 scsi_lun[8]; +}; + +struct scsi_mode_data { + __u32 length; + __u16 block_descriptor_length; + __u8 medium_type; + __u8 device_specific; + __u8 header_length; + __u8 longlba: 1; +}; + +struct scsi_nl_hdr { + __u8 version; + __u8 transport; + __u16 magic; + __u16 msgtype; + __u16 msglen; +}; + +struct scsi_proc_entry { + struct list_head entry; + const struct scsi_host_template *sht; + struct proc_dir_entry *proc_dir; + unsigned int present; +}; + +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_stream_status { + u8 reserved1: 7; + u8 perm: 1; + u8 reserved2; + __be16 stream_identifier; + u8 rel_lifetime: 6; + u8 reserved3: 2; + u8 reserved4[3]; +}; + +struct scsi_stream_status_header { + __be32 len; + u16 reserved; + __be16 number_of_open_streams; + struct { + struct {} __empty_stream_status; + struct scsi_stream_status stream_status[0]; + }; +}; + +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; + long unsigned int starget_data[0]; +}; + +struct scsi_varlen_cdb_hdr { + __u8 opcode; + __u8 control; + __u8 misc[5]; + __u8 additional_cdb_length; + __be16 service_action; +}; + +struct scsi_vpd { + struct callback_head rcu; + int len; + unsigned char data[0]; +}; + +struct sctp_paramhdr { + __be16 type; + __be16 length; +}; + +struct sctp_adaptation_ind_param { + struct sctp_paramhdr param_hdr; + __be32 adaptation_ind; +}; + +struct sctp_addip_param { + struct sctp_paramhdr param_hdr; + __be32 crr_id; +}; + +struct sctp_addiphdr { + __be32 serial; +}; + +union sctp_addr { + struct sockaddr_in v4; + struct sockaddr_in6 v6; + struct sockaddr sa; +}; + +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_transport; + +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 *, int *); + 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_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; +}; + +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_tsnmap { + long unsigned int *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_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 { + struct list_head fc_list; + }; + }; + struct sctp_stream_interleave *si; +}; + +struct sctp_sched_ops; + +struct sctp_association; + +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_random_param; + +struct sctp_chunks_param; + +struct sctp_hmac_algo_param; + +struct sctp_auth_bytes; + +struct sctp_shared_key; + +struct sctp_association { + struct sctp_ep_common base; + struct list_head asocs; + sctp_assoc_t assoc_id; + struct sctp_endpoint *ep; + struct sctp_cookie c; + struct { + struct list_head transport_addr_list; + __u32 rwnd; + __u16 transport_count; + __u16 port; + struct sctp_transport *primary_path; + union sctp_addr primary_addr; + struct sctp_transport *active_path; + struct sctp_transport *retran_path; + struct sctp_transport *last_sent_to; + struct sctp_transport *last_data_from; + struct sctp_tsnmap tsn_map; + __be16 addip_disabled_mask; + __u16 ecn_capable: 1; + __u16 ipv4_address: 1; + __u16 ipv6_address: 1; + __u16 asconf_capable: 1; + __u16 prsctp_capable: 1; + __u16 reconf_capable: 1; + __u16 intl_capable: 1; + __u16 auth_capable: 1; + __u16 sack_needed: 1; + __u16 sack_generation: 1; + __u16 zero_window_announced: 1; + __u32 sack_cnt; + __u32 adaptation_ind; + struct sctp_inithdr_host i; + void *cookie; + int cookie_len; + __u32 addip_serial; + struct sctp_random_param *peer_random; + struct sctp_chunks_param *peer_chunks; + struct sctp_hmac_algo_param *peer_hmacs; + } peer; + enum sctp_state state; + int overall_error_count; + ktime_t cookie_life; + long unsigned int rto_initial; + long unsigned int rto_max; + long unsigned int rto_min; + int max_burst; + int max_retrans; + __u16 pf_retrans; + __u16 ps_retrans; + __u16 max_init_attempts; + __u16 init_retries; + long unsigned int max_init_timeo; + long unsigned int hbinterval; + long unsigned int probe_interval; + __be16 encap_port; + __u16 pathmaxrxt; + __u32 flowlabel; + __u8 dscp; + __u8 pmtu_pending; + __u32 pathmtu; + __u32 param_flags; + __u32 sackfreq; + long unsigned int sackdelay; + long unsigned int 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_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_auth_bytes { + refcount_t refcnt; + __u32 len; + __u8 data[0]; +}; + +struct sctp_authhdr { + __be16 shkey_id; + __be16 hmac_id; +}; + +struct sctp_bind_bucket { + short unsigned int port; + signed char fastreuse; + signed char fastreuseport; + kuid_t fastuid; + struct hlist_node node; + struct hlist_head owner; + struct net *net; +}; + +struct sctp_cookie_preserve_param; + +struct sctp_hostname_param; + +struct sctp_cookie_param; + +struct sctp_supported_addrs_param; + +struct sctp_supported_ext_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_inithdr; + +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_fwdtsn_hdr; + +struct sctp_idatahdr; + +struct sctp_ifwdtsn_hdr; + +struct sctp_chunkhdr; + +struct sctphdr; + +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; + long unsigned int 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_chunkhdr { + __u8 type; + __u8 flags; + __be16 length; +}; + +struct sctp_chunks_param { + struct sctp_paramhdr param_hdr; + __u8 chunks[0]; +}; + +struct sctp_cookie_param { + struct sctp_paramhdr p; + __u8 body[0]; +}; + +struct sctp_cookie_preserve_param { + struct sctp_paramhdr param_hdr; + __be32 lifespan_increment; +}; + +struct sctp_cwrhdr { + __be32 lowest_tsn; +}; + +struct sctp_datahdr { + __be32 tsn; + __be16 stream; + __be16 ssn; + __u32 ppid; +}; + +struct sctp_datamsg { + struct list_head chunks; + refcount_t refcnt; + long unsigned int expires_at; + int send_error; + u8 send_failed: 1; + u8 can_delay: 1; + u8 abandoned: 1; +}; + +struct sctp_ecnehdr { + __be32 lowest_tsn; +}; + +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_errhdr { + __be16 cause; + __be16 length; +}; + +struct sctp_fwdtsn_hdr { + __be32 new_cum_tsn; +}; + +struct sctp_heartbeathdr { + struct sctp_paramhdr info; +}; + +struct sctp_hmac_algo_param { + struct sctp_paramhdr param_hdr; + __be16 hmac_ids[0]; +}; + +struct sctp_hostname_param { + struct sctp_paramhdr param_hdr; + uint8_t hostname[0]; +}; + +struct sctp_idatahdr { + __be32 tsn; + __be16 stream; + __be16 reserved; + __be32 mid; + union { + __u32 ppid; + __be32 fsn; + }; + __u8 payload[0]; +}; + +struct sctp_ifwdtsn_hdr { + __be32 new_cum_tsn; +}; + +struct sctp_inithdr { + __be32 init_tag; + __be32 a_rwnd; + __be16 num_outbound_streams; + __be16 num_inbound_streams; + __be32 initial_tsn; +}; + +struct sctp_initmsg { + __u16 sinit_num_ostreams; + __u16 sinit_max_instreams; + __u16 sinit_max_attempts; + __u16 sinit_max_init_timeo; +}; + +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_paddrparams { + sctp_assoc_t spp_assoc_id; + struct __kernel_sockaddr_storage spp_address; + __u32 spp_hbinterval; + __u16 spp_pathmaxrxt; + __u32 spp_pathmtu; + __u32 spp_sackdelay; + __u32 spp_flags; + __u32 spp_ipv6_flowlabel; + __u8 spp_dscp; + int: 0; +} __attribute__((packed)); + +struct sctp_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_random_param { + struct sctp_paramhdr param_hdr; + __u8 random_val[0]; +}; + +struct sctp_rtoinfo { + sctp_assoc_t srto_assoc_id; + __u32 srto_initial; + __u32 srto_max; + __u32 srto_min; +}; + +struct sctp_sackhdr { + __be32 cum_tsn_ack; + __be32 a_rwnd; + __be16 num_gap_ack_blocks; + __be16 num_dup_tsns; +}; + +struct sctp_sender_hb_info { + struct sctp_paramhdr param_hdr; + union sctp_addr daddr; + long unsigned int sent_at; + __u64 hb_nonce; + __u32 probe_size; +}; + +struct sctp_shared_key { + struct list_head key_list; + struct sctp_auth_bytes *key; + refcount_t refcnt; + __u16 key_id; + __u8 deactivated; +}; + +struct sctp_shutdownhdr { + __be32 cum_tsn_ack; +}; + +struct sctp_signed_cookie { + __u8 signature[32]; + __u32 __pad; + struct sctp_cookie c; +} __attribute__((packed)); + +struct sctp_sock { + struct inet_sock inet; + enum sctp_socket_type type; + struct sctp_pf *pf; + struct crypto_shash *hmac; + char *sctp_hmac_alg; + struct sctp_endpoint *ep; + struct sctp_bind_bucket *bind_hash; + __u16 default_stream; + __u32 default_ppid; + __u16 default_flags; + __u32 default_context; + __u32 default_timetolive; + __u32 default_rcv_context; + int max_burst; + __u32 hbinterval; + __u32 probe_interval; + __be16 udp_port; + __be16 encap_port; + __u16 pathmaxrxt; + __u32 flowlabel; + __u8 dscp; + __u16 pf_retrans; + __u16 ps_retrans; + __u32 pathmtu; + __u32 sackdelay; + __u32 sackfreq; + __u32 param_flags; + __u32 default_ss; + struct sctp_rtoinfo rtoinfo; + struct sctp_paddrparams paddrparam; + struct sctp_assocparams assocparams; + __u16 subscribe; + struct sctp_initmsg initmsg; + int user_frag; + __u32 autoclose; + __u32 adaptation_ind; + __u32 pd_point; + __u16 nodelay: 1; + __u16 pf_expose: 2; + __u16 reuse: 1; + __u16 disable_fragments: 1; + __u16 v4mapped: 1; + __u16 frag_interleave: 1; + __u16 recvrcvinfo: 1; + __u16 recvnxtinfo: 1; + __u16 data_ready_signalled: 1; + atomic_t pd_mode; + struct sk_buff_head pd_lobby; + struct list_head auto_asconf_list; + int do_auto_asconf; +}; + +struct 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 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 { + struct list_head fc_list; + __u32 fc_length; + __u16 fc_weight; + }; + }; +}; + +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_supported_addrs_param { + struct sctp_paramhdr param_hdr; + __be16 types[0]; +}; + +struct sctp_supported_ext_param { + struct sctp_paramhdr param_hdr; + __u8 chunks[0]; +}; + +struct sctp_transport { + struct list_head transports; + struct rhlist_head node; + refcount_t refcnt; + __u32 dead: 1; + __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; + long unsigned int 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; + long unsigned int hbinterval; + long unsigned int probe_interval; + long unsigned int sackdelay; + __u32 sackfreq; + atomic_t mtu_info; + ktime_t last_time_heard; + long unsigned int last_time_sent; + long unsigned int 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; + short unsigned int 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_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 sctphdr { + __be16 source; + __be16 dest; + __be32 vtag; + __le32 checksum; +}; + +struct scu_gpio_priv { + struct gpio_chip chip; + struct mutex lock; + struct device *dev; + struct imx_sc_ipc *handle; +}; + +struct scu_wakeup { + u32 mask; + u32 wakeup_src; + bool valid; +}; + +struct scx_bstr_buf { + u64 data[12]; + char line[1024]; +}; + +struct scx_cgroup_init_args { + u32 weight; +}; + +struct scx_cpu_acquire_args {}; + +struct scx_cpu_release_args { + enum scx_cpu_preempt_reason reason; + struct task_struct *task; +}; + +struct scx_dsp_buf_ent { + struct task_struct *task; + long unsigned int qseq; + u64 dsq_id; + u64 enq_flags; +}; + +struct scx_dsp_ctx { + struct rq *rq; + u32 cursor; + u32 nr_tasks; + struct scx_dsp_buf_ent buf[0]; +}; + +struct scx_dump_ctx { + enum scx_exit_kind kind; + s64 exit_code; + const char *reason; + u64 at_ns; + u64 at_jiffies; +}; + +struct scx_dump_data { + s32 cpu; + bool first; + s32 cursor; + struct seq_buf *s; + const char *prefix; + struct scx_bstr_buf buf; +}; + +struct scx_exit_info { + enum scx_exit_kind kind; + s64 exit_code; + const char *reason; + long unsigned int *bt; + u32 bt_len; + char *msg; + char *dump; +}; + +struct scx_exit_task_args { + bool cancelled; +}; + +struct scx_init_task_args { + bool fork; + struct cgroup *cgroup; +}; + +struct scx_task_iter { + struct sched_ext_entity cursor; + struct task_struct *locked; + struct rq *rq; + struct rq_flags rf; + u32 cnt; +}; + +struct sd_app_op_cond_busy_data { + struct mmc_host *host; + u32 ocr; + struct mmc_command *cmd; +}; + +struct sd_busy_data { + struct mmc_card *card; + u8 *reg_buf; +}; + +struct sd_flag_debug { + unsigned int meta_flags; + char *name; +}; + +struct sd_flow_limit { + u64 count; + unsigned int num_buckets; + unsigned int history_head; + u16 history[128]; + u8 buckets[0]; +}; + +struct sg_lb_stats { + long unsigned int avg_load; + long unsigned int group_load; + long unsigned int group_capacity; + long unsigned int group_util; + long unsigned int group_runnable; + unsigned int sum_nr_running; + unsigned int sum_h_nr_running; + unsigned int idle_cpus; + unsigned int group_weight; + enum group_type group_type; + unsigned int group_asym_packing; + unsigned int group_smt_balance; + long unsigned int group_misfit_task_load; + unsigned int nr_numa_running; + unsigned int nr_preferred_running; +}; + +struct sd_lb_stats { + struct sched_group *busiest; + struct sched_group *local; + long unsigned int total_load; + long unsigned int total_capacity; + long unsigned int avg_load; + unsigned int prefer_sibling; + struct sg_lb_stats busiest_stat; + struct sg_lb_stats local_stat; +}; + +struct sd_mux_hw_data { + struct clk_hw_data hw_data; + const u32 *mtable; +}; + +struct sd_uhs2_wait_active_state_data { + struct mmc_host *host; + struct mmc_command *cmd; +}; + +struct sdei_event; + +struct sdei_crosscall_args { + struct sdei_event *event; + atomic_t errors; + int first_error; +}; + +struct sdei_registered_event; + +struct sdei_event { + struct list_head list; + bool reregister; + bool reenable; + u32 event_num; + u8 type; + u8 priority; + union { + struct sdei_registered_event *registered; + struct sdei_registered_event *private_registered; + }; +}; + +typedef int sdei_event_callback(u32, struct pt_regs *, void *); + +struct sdei_registered_event { + struct pt_regs interrupted_regs; + sdei_event_callback *callback; + void *callback_arg; + u32 event_num; + u8 priority; +}; + +struct shash_desc { + struct crypto_shash *tfm; + void *__ctx[0]; +}; + +struct sdesc { + struct shash_desc shash; + char ctx[0]; +}; + +struct sdio_device_id { + __u8 class; + __u16 vendor; + __u16 device; + kernel_ulong_t driver_data; +}; + +struct sdio_driver { + char *name; + const struct sdio_device_id *id_table; + int (*probe)(struct sdio_func *, const struct sdio_device_id *); + void (*remove)(struct sdio_func *); + struct device_driver drv; +}; + +typedef void sdio_irq_handler_t(struct sdio_func *); + +struct sdio_func { + struct mmc_card *card; + struct device dev; + sdio_irq_handler_t *irq_handler; + unsigned int num; + unsigned char class; + short unsigned int vendor; + short unsigned int device; + unsigned int max_blksize; + unsigned int cur_blksize; + unsigned int enable_timeout; + unsigned int state; + u8 *tmpbuf; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; +}; + +struct sdio_func_tuple { + struct sdio_func_tuple *next; + unsigned char code; + unsigned char size; + unsigned char data[0]; +}; + +struct sdmmc_tuning_ops; + +struct sdmmc_dlyb { + void *base; + u32 unit; + u32 max; + struct sdmmc_tuning_ops *ops; +}; + +struct sdmmc_idma { + dma_addr_t sg_dma; + void *sg_cpu; + dma_addr_t bounce_dma_addr; + void *bounce_buf; + bool use_bounce_buffer; +}; + +struct sdmmc_lli_desc { + u32 idmalar; + u32 idmabase; + u32 idmasize; +}; + +struct sdmmc_tuning_ops { + int (*dlyb_enable)(struct sdmmc_dlyb *); + void (*set_input_ck)(struct sdmmc_dlyb *); + int (*tuning_prepare)(struct mmci_host *); + int (*set_cfg)(struct sdmmc_dlyb *, int, int, bool); +}; + +struct sec_opmode_data { + int id; + unsigned int mode; +}; + +struct xfrm_offload { + struct { + __u32 low; + __u32 hi; + } seq; + __u32 flags; + __u32 status; + __u32 orig_mac_len; + __u8 proto; + __u8 inner_ipproto; +}; + +struct sec_path { + int len; + int olen; + int verified_cnt; + struct xfrm_state *xvec[6]; + struct xfrm_offload ovec[1]; +}; + +struct sec_regulator_data; + +struct sec_platform_data { + struct sec_regulator_data *regulators; + struct sec_opmode_data *opmode; + int num_regulators; + int buck_gpios[3]; + int buck_ds[3]; + unsigned int buck2_voltage[8]; + bool buck2_gpiodvs; + unsigned int buck3_voltage[8]; + bool buck3_gpiodvs; + unsigned int buck4_voltage[8]; + bool buck4_gpiodvs; + int buck_default_idx; + int buck_ramp_delay; + bool buck2_ramp_enable; + bool buck3_ramp_enable; + bool buck4_ramp_enable; + int buck2_init; + int buck3_init; + int buck4_init; + bool manual_poweroff; + bool disable_wrstbi; +}; + +struct sec_pmic_dev { + struct device *dev; + struct sec_platform_data *pdata; + struct regmap *regmap_pmic; + struct i2c_client *i2c; + long unsigned int device_type; + int irq; + struct regmap_irq_chip_data *irq_data; +}; + +struct sec_regulator_data { + int id; + struct regulator_init_data *initdata; + struct device_node *reg_node; + struct gpio_desc *ext_control_gpiod; +}; + +struct seccomp_filter; + +struct seccomp { + int mode; + atomic_t filter_count; + struct seccomp_filter *filter; +}; + +struct seccomp_data { + int nr; + __u32 arch; + __u64 instruction_pointer; + __u64 args[6]; +}; + +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 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 int val; + u32 flags; + struct completion ready; + struct list_head list; + struct list_head addfd; +}; + +struct seccomp_log_name { + u32 log; + const char *name; +}; + +struct seccomp_metadata { + __u64 filter_off; + __u64 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; +}; + +struct seccomp_notif_resp { + __u64 id; + __s64 val; + __s32 error; + __u32 flags; +}; + +struct seccomp_notif_sizes { + __u16 seccomp_notif; + __u16 seccomp_notif_resp; + __u16 seccomp_data; +}; + +struct secondary_data { + struct task_struct *task; + long int status; +}; + +struct section_header { + char name[8]; + uint32_t virtual_size; + uint32_t virtual_address; + uint32_t raw_data_size; + uint32_t data_addr; + uint32_t relocs; + uint32_t line_numbers; + uint16_t num_relocs; + uint16_t num_lin_numbers; + uint32_t flags; +}; + +struct security_class_mapping { + const char *name; + const char *perms[33]; +}; + +struct security_hook_heads { + struct hlist_head binder_set_context_mgr; + struct hlist_head binder_transaction; + struct hlist_head binder_transfer_binder; + struct hlist_head binder_transfer_file; + struct hlist_head ptrace_access_check; + struct hlist_head ptrace_traceme; + struct hlist_head capget; + struct hlist_head capset; + struct hlist_head capable; + struct hlist_head quotactl; + struct hlist_head quota_on; + struct hlist_head syslog; + struct hlist_head settime; + struct hlist_head vm_enough_memory; + struct hlist_head bprm_creds_for_exec; + struct hlist_head bprm_creds_from_file; + struct hlist_head bprm_check_security; + struct hlist_head bprm_committing_creds; + struct hlist_head bprm_committed_creds; + struct hlist_head fs_context_submount; + struct hlist_head fs_context_dup; + struct hlist_head fs_context_parse_param; + struct hlist_head sb_alloc_security; + struct hlist_head sb_delete; + struct hlist_head sb_free_security; + struct hlist_head sb_free_mnt_opts; + struct hlist_head sb_eat_lsm_opts; + struct hlist_head sb_mnt_opts_compat; + struct hlist_head sb_remount; + struct hlist_head sb_kern_mount; + struct hlist_head sb_show_options; + struct hlist_head sb_statfs; + struct hlist_head sb_mount; + struct hlist_head sb_umount; + struct hlist_head sb_pivotroot; + struct hlist_head sb_set_mnt_opts; + struct hlist_head sb_clone_mnt_opts; + struct hlist_head move_mount; + struct hlist_head dentry_init_security; + struct hlist_head dentry_create_files_as; + struct hlist_head path_unlink; + struct hlist_head path_mkdir; + struct hlist_head path_rmdir; + struct hlist_head path_mknod; + struct hlist_head path_post_mknod; + struct hlist_head path_truncate; + struct hlist_head path_symlink; + struct hlist_head path_link; + struct hlist_head path_rename; + struct hlist_head path_chmod; + struct hlist_head path_chown; + struct hlist_head path_chroot; + struct hlist_head path_notify; + struct hlist_head inode_alloc_security; + struct hlist_head inode_free_security; + struct hlist_head inode_free_security_rcu; + struct hlist_head inode_init_security; + struct hlist_head inode_init_security_anon; + struct hlist_head inode_create; + struct hlist_head inode_post_create_tmpfile; + 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_post_setattr; + struct hlist_head inode_getattr; + struct hlist_head inode_xattr_skipcap; + 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_post_removexattr; + struct hlist_head inode_set_acl; + struct hlist_head inode_post_set_acl; + struct hlist_head inode_get_acl; + struct hlist_head inode_remove_acl; + struct hlist_head inode_post_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_getlsmprop; + struct hlist_head inode_copy_up; + struct hlist_head inode_copy_up_xattr; + struct hlist_head inode_setintegrity; + struct hlist_head kernfs_init_security; + struct hlist_head file_permission; + struct hlist_head file_alloc_security; + struct hlist_head file_release; + struct hlist_head file_free_security; + struct hlist_head file_ioctl; + struct hlist_head file_ioctl_compat; + 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_post_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 cred_getlsmprop; + 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_getlsmprop_subj; + struct hlist_head task_getlsmprop_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_getlsmprop; + 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 getselfattr; + struct hlist_head setselfattr; + struct hlist_head getprocattr; + struct hlist_head setprocattr; + struct hlist_head ismaclabel; + struct hlist_head secid_to_secctx; + struct hlist_head lsmprop_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 post_notification; + struct hlist_head watch_key; + 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_create; + struct hlist_head tun_dev_attach_queue; + struct hlist_head tun_dev_attach; + struct hlist_head tun_dev_open; + struct hlist_head sctp_assoc_request; + struct hlist_head sctp_bind_connect; + struct hlist_head sctp_sk_clone; + struct hlist_head sctp_assoc_established; + struct hlist_head mptcp_add_subflow; + struct hlist_head ib_pkey_access; + struct hlist_head ib_endport_manage_subnet; + struct hlist_head ib_alloc_security; + struct hlist_head xfrm_policy_alloc_security; + struct hlist_head xfrm_policy_clone_security; + struct hlist_head xfrm_policy_free_security; + struct hlist_head xfrm_policy_delete_security; + struct hlist_head xfrm_state_alloc; + struct hlist_head xfrm_state_alloc_acquire; + struct hlist_head xfrm_state_free_security; + struct hlist_head xfrm_state_delete_security; + struct hlist_head xfrm_policy_lookup; + struct hlist_head xfrm_state_pol_flow_match; + struct hlist_head xfrm_decode_session; + struct hlist_head key_alloc; + struct hlist_head key_permission; + struct hlist_head key_getsecurity; + struct hlist_head key_post_create_or_update; + 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_create; + struct hlist_head bpf_map_free; + struct hlist_head bpf_prog_load; + struct hlist_head bpf_prog_free; + struct hlist_head bpf_token_create; + struct hlist_head bpf_token_free; + struct hlist_head bpf_token_cmd; + struct hlist_head bpf_token_capable; + struct hlist_head locked_down; + struct hlist_head lock_kernel_down; + struct hlist_head perf_event_open; + struct hlist_head perf_event_alloc; + struct hlist_head perf_event_read; + struct hlist_head perf_event_write; + struct hlist_head uring_override_creds; + struct hlist_head uring_sqpoll; + struct hlist_head uring_cmd; + struct hlist_head initramfs_populated; + struct hlist_head bdev_alloc_security; + struct hlist_head bdev_free_security; + struct hlist_head bdev_setintegrity; +}; + +struct timezone; + +struct xattr; + +struct sembuf; + +struct xfrm_sec_ctx; + +struct xfrm_user_sec_ctx; + +union security_list_options { + int (*binder_set_context_mgr)(const struct cred *); + int (*binder_transaction)(const struct cred *, const struct cred *); + int (*binder_transfer_binder)(const struct cred *, const struct cred *); + int (*binder_transfer_file)(const struct cred *, const struct cred *, const struct file *); + int (*ptrace_access_check)(struct task_struct *, unsigned int); + int (*ptrace_traceme)(struct task_struct *); + int (*capget)(const struct task_struct *, kernel_cap_t *, kernel_cap_t *, kernel_cap_t *); + int (*capset)(struct cred *, const struct cred *, const kernel_cap_t *, const kernel_cap_t *, const kernel_cap_t *); + int (*capable)(const struct cred *, struct user_namespace *, int, unsigned int); + int (*quotactl)(int, int, int, const struct super_block *); + int (*quota_on)(struct dentry *); + int (*syslog)(int); + int (*settime)(const struct timespec64 *, const struct timezone *); + int (*vm_enough_memory)(struct mm_struct *, long int); + int (*bprm_creds_for_exec)(struct linux_binprm *); + int (*bprm_creds_from_file)(struct linux_binprm *, const struct file *); + int (*bprm_check_security)(struct linux_binprm *); + void (*bprm_committing_creds)(const struct linux_binprm *); + void (*bprm_committed_creds)(const struct linux_binprm *); + int (*fs_context_submount)(struct fs_context *, struct super_block *); + int (*fs_context_dup)(struct fs_context *, struct fs_context *); + int (*fs_context_parse_param)(struct fs_context *, struct fs_parameter *); + int (*sb_alloc_security)(struct super_block *); + void (*sb_delete)(struct super_block *); + void (*sb_free_security)(struct super_block *); + void (*sb_free_mnt_opts)(void *); + int (*sb_eat_lsm_opts)(char *, void **); + int (*sb_mnt_opts_compat)(struct super_block *, void *); + int (*sb_remount)(struct super_block *, void *); + int (*sb_kern_mount)(const struct super_block *); + int (*sb_show_options)(struct seq_file *, struct super_block *); + int (*sb_statfs)(struct dentry *); + int (*sb_mount)(const char *, const struct path *, const char *, long unsigned int, 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 *, long unsigned int, long unsigned int *); + int (*sb_clone_mnt_opts)(const struct super_block *, struct super_block *, long unsigned int, long unsigned int *); + int (*move_mount)(const struct path *, const struct path *); + int (*dentry_init_security)(struct dentry *, int, const struct qstr *, const char **, struct lsm_context *); + int (*dentry_create_files_as)(struct dentry *, int, struct qstr *, const struct cred *, struct cred *); + int (*path_unlink)(const struct path *, struct dentry *); + int (*path_mkdir)(const struct path *, struct dentry *, umode_t); + int (*path_rmdir)(const struct path *, struct dentry *); + int (*path_mknod)(const struct path *, struct dentry *, umode_t, unsigned int); + void (*path_post_mknod)(struct mnt_idmap *, struct dentry *); + int (*path_truncate)(const struct path *); + int (*path_symlink)(const struct path *, struct dentry *, const char *); + int (*path_link)(struct dentry *, const struct path *, struct dentry *); + int (*path_rename)(const struct path *, struct dentry *, const struct path *, struct dentry *, unsigned int); + int (*path_chmod)(const struct path *, umode_t); + int (*path_chown)(const struct path *, kuid_t, kgid_t); + int (*path_chroot)(const struct path *); + int (*path_notify)(const struct path *, u64, unsigned int); + int (*inode_alloc_security)(struct inode *); + void (*inode_free_security)(struct inode *); + void (*inode_free_security_rcu)(void *); + int (*inode_init_security)(struct inode *, struct inode *, const struct qstr *, struct xattr *, int *); + int (*inode_init_security_anon)(struct inode *, const struct qstr *, const struct inode *); + int (*inode_create)(struct inode *, struct dentry *, umode_t); + void (*inode_post_create_tmpfile)(struct mnt_idmap *, struct inode *); + 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 mnt_idmap *, struct dentry *, struct iattr *); + void (*inode_post_setattr)(struct mnt_idmap *, struct dentry *, int); + int (*inode_getattr)(const struct path *); + int (*inode_xattr_skipcap)(const char *); + 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 *); + void (*inode_post_removexattr)(struct dentry *, const char *); + int (*inode_set_acl)(struct mnt_idmap *, struct dentry *, const char *, struct posix_acl *); + void (*inode_post_set_acl)(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 *); + void (*inode_post_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_getlsmprop)(struct inode *, struct lsm_prop *); + int (*inode_copy_up)(struct dentry *, struct cred **); + int (*inode_copy_up_xattr)(struct dentry *, const char *); + int (*inode_setintegrity)(const struct inode *, enum lsm_integrity_type, const void *, size_t); + int (*kernfs_init_security)(struct kernfs_node *, struct kernfs_node *); + int (*file_permission)(struct file *, int); + int (*file_alloc_security)(struct file *); + void (*file_release)(struct file *); + void (*file_free_security)(struct file *); + int (*file_ioctl)(struct file *, unsigned int, long unsigned int); + int (*file_ioctl_compat)(struct file *, unsigned int, long unsigned int); + int (*mmap_addr)(long unsigned int); + int (*mmap_file)(struct file *, long unsigned int, long unsigned int, long unsigned int); + int (*file_mprotect)(struct vm_area_struct *, long unsigned int, long unsigned int); + int (*file_lock)(struct file *, unsigned int); + int (*file_fcntl)(struct file *, unsigned int, long unsigned int); + 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_post_open)(struct file *, int); + int (*file_truncate)(struct file *); + int (*task_alloc)(struct task_struct *, long unsigned int); + 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 *); + void (*cred_getlsmprop)(const struct cred *, struct lsm_prop *); + 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_getlsmprop_subj)(struct lsm_prop *); + void (*task_getlsmprop_obj)(struct task_struct *, struct lsm_prop *); + 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, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + void (*task_to_inode)(struct task_struct *, struct inode *); + int (*userns_create)(const struct cred *); + int (*ipc_permission)(struct kern_ipc_perm *, short int); + void (*ipc_getlsmprop)(struct kern_ipc_perm *, struct lsm_prop *); + 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); + 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 *, 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 (*getselfattr)(unsigned int, struct lsm_ctx *, u32 *, u32); + int (*setselfattr)(unsigned int, struct lsm_ctx *, u32, u32); + int (*getprocattr)(struct task_struct *, const char *, char **); + int (*setprocattr)(const char *, void *, size_t); + int (*ismaclabel)(const char *); + int (*secid_to_secctx)(u32, struct lsm_context *); + int (*lsmprop_to_secctx)(struct lsm_prop *, struct lsm_context *); + int (*secctx_to_secid)(const char *, u32, u32 *); + void (*release_secctx)(struct lsm_context *); + 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 *, struct lsm_context *); + int (*post_notification)(const struct cred *, const struct cred *, struct watch_notification *); + int (*watch_key)(struct key *); + int (*unix_stream_connect)(struct sock *, struct sock *, struct sock *); + int (*unix_may_send)(struct socket *, struct socket *); + int (*socket_create)(int, int, int, int); + int (*socket_post_create)(struct socket *, int, int, int, int); + int (*socket_socketpair)(struct socket *, struct socket *); + int (*socket_bind)(struct socket *, struct sockaddr *, int); + int (*socket_connect)(struct socket *, struct sockaddr *, int); + int (*socket_listen)(struct socket *, int); + int (*socket_accept)(struct socket *, struct socket *); + int (*socket_sendmsg)(struct socket *, struct msghdr *, int); + int (*socket_recvmsg)(struct socket *, struct msghdr *, int, int); + int (*socket_getsockname)(struct socket *); + int (*socket_getpeername)(struct socket *); + int (*socket_getsockopt)(struct socket *, int, int); + int (*socket_setsockopt)(struct socket *, int, int); + int (*socket_shutdown)(struct socket *, int); + int (*socket_sock_rcv_skb)(struct sock *, struct sk_buff *); + int (*socket_getpeersec_stream)(struct socket *, sockptr_t, sockptr_t, unsigned int); + int (*socket_getpeersec_dgram)(struct socket *, struct sk_buff *, u32 *); + int (*sk_alloc_security)(struct sock *, int, gfp_t); + void (*sk_free_security)(struct sock *); + void (*sk_clone_security)(const struct sock *, struct sock *); + void (*sk_getsecid)(const struct sock *, u32 *); + void (*sock_graft)(struct sock *, struct socket *); + int (*inet_conn_request)(const struct sock *, struct sk_buff *, struct request_sock *); + void (*inet_csk_clone)(struct sock *, const struct request_sock *); + void (*inet_conn_established)(struct sock *, struct sk_buff *); + int (*secmark_relabel_packet)(u32); + void (*secmark_refcount_inc)(void); + void (*secmark_refcount_dec)(void); + void (*req_classify_flow)(const struct request_sock *, struct flowi_common *); + int (*tun_dev_alloc_security)(void *); + int (*tun_dev_create)(void); + int (*tun_dev_attach_queue)(void *); + int (*tun_dev_attach)(struct sock *, void *); + int (*tun_dev_open)(void *); + int (*sctp_assoc_request)(struct sctp_association *, struct sk_buff *); + int (*sctp_bind_connect)(struct sock *, int, struct sockaddr *, int); + void (*sctp_sk_clone)(struct sctp_association *, struct sock *, struct sock *); + int (*sctp_assoc_established)(struct sctp_association *, struct sk_buff *); + int (*mptcp_add_subflow)(struct sock *, struct sock *); + int (*ib_pkey_access)(void *, u64, u16); + int (*ib_endport_manage_subnet)(void *, const char *, u8); + int (*ib_alloc_security)(void *); + int (*xfrm_policy_alloc_security)(struct xfrm_sec_ctx **, struct xfrm_user_sec_ctx *, gfp_t); + int (*xfrm_policy_clone_security)(struct xfrm_sec_ctx *, struct xfrm_sec_ctx **); + void (*xfrm_policy_free_security)(struct xfrm_sec_ctx *); + int (*xfrm_policy_delete_security)(struct xfrm_sec_ctx *); + int (*xfrm_state_alloc)(struct xfrm_state *, struct xfrm_user_sec_ctx *); + int (*xfrm_state_alloc_acquire)(struct xfrm_state *, struct xfrm_sec_ctx *, u32); + void (*xfrm_state_free_security)(struct xfrm_state *); + int (*xfrm_state_delete_security)(struct xfrm_state *); + int (*xfrm_policy_lookup)(struct xfrm_sec_ctx *, u32); + int (*xfrm_state_pol_flow_match)(struct xfrm_state *, struct xfrm_policy *, const struct flowi_common *); + int (*xfrm_decode_session)(struct sk_buff *, u32 *, int); + int (*key_alloc)(struct key *, const struct cred *, long unsigned int); + int (*key_permission)(key_ref_t, const struct cred *, enum key_need_perm); + int (*key_getsecurity)(struct key *, char **); + void (*key_post_create_or_update)(struct key *, struct key *, const void *, size_t, long unsigned int, bool); + int (*audit_rule_init)(u32, u32, char *, void **, gfp_t); + int (*audit_rule_known)(struct audit_krule *); + int (*audit_rule_match)(struct lsm_prop *, 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_create)(struct bpf_map *, union bpf_attr *, struct bpf_token *); + void (*bpf_map_free)(struct bpf_map *); + int (*bpf_prog_load)(struct bpf_prog *, union bpf_attr *, struct bpf_token *); + void (*bpf_prog_free)(struct bpf_prog *); + int (*bpf_token_create)(struct bpf_token *, union bpf_attr *, const struct path *); + void (*bpf_token_free)(struct bpf_token *); + int (*bpf_token_cmd)(const struct bpf_token *, enum bpf_cmd); + int (*bpf_token_capable)(const struct bpf_token *, int); + int (*locked_down)(enum lockdown_reason); + int (*lock_kernel_down)(const char *, enum lockdown_reason); + int (*perf_event_open)(struct perf_event_attr *, int); + int (*perf_event_alloc)(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)(void); + int (*uring_cmd)(struct io_uring_cmd *); + void (*initramfs_populated)(void); + int (*bdev_alloc_security)(struct block_device *); + void (*bdev_free_security)(struct block_device *); + int (*bdev_setintegrity)(struct block_device *, enum lsm_integrity_type, const void *, size_t); +}; + +struct security_hook_list { + struct hlist_node list; + struct hlist_head *head; + union security_list_options hook; + const struct lsm_id *lsmid; +}; + +struct seg6_local_lwt; + +struct seg6_local_lwtunnel_ops { + int (*build_state)(struct seg6_local_lwt *, const void *, struct netlink_ext_ack *); + void (*destroy_state)(struct seg6_local_lwt *); +}; + +struct seg6_action_desc { + int action; + long unsigned int attrs; + long unsigned int optattrs; + int (*input)(struct sk_buff *, struct seg6_local_lwt *); + int static_headroom; + struct seg6_local_lwtunnel_ops slwt_ops; +}; + +struct seg6_action_param { + int (*parse)(struct nlattr **, struct seg6_local_lwt *, struct netlink_ext_ack *); + int (*put)(struct sk_buff *, struct seg6_local_lwt *); + int (*cmp)(struct seg6_local_lwt *, struct seg6_local_lwt *); + void (*destroy)(struct seg6_local_lwt *); +}; + +struct seg6_bpf_srh_state { + local_lock_t bh_lock; + struct ipv6_sr_hdr *srh; + u16 hdrlen; + bool valid; +}; + +struct seg6_end_dt_info { + enum seg6_end_dt_mode mode; + struct net *net; + int vrf_ifindex; + int vrf_table; + u16 family; +}; + +struct seg6_flavors_info { + __u32 flv_ops; + __u8 lcblock_bits; + __u8 lcnode_func_bits; +}; + +struct seg6_hmac_algo { + u8 alg_id; + char name[64]; + struct crypto_shash **tfms; + struct shash_desc **shashs; +}; + +struct seg6_hmac_info { + struct rhash_head node; + struct callback_head rcu; + u32 hmackeyid; + char secret[64]; + u8 slen; + u8 alg_id; +}; + +struct seg6_iptunnel_encap { + int mode; + struct ipv6_sr_hdr srh[0]; +}; + +struct seg6_local_counters { + __u64 packets; + __u64 bytes; + __u64 errors; +}; + +struct seg6_local_lwt { + int action; + struct ipv6_sr_hdr *srh; + int table; + struct in_addr nh4; + struct in6_addr nh6; + int iif; + int oif; + struct bpf_lwt_prog bpf; + struct seg6_end_dt_info dt_info; + struct seg6_flavors_info flv_info; + struct pcpu_seg6_local_counters *pcpu_counters; + int headroom; + struct seg6_action_desc *desc; + long unsigned int parsed_optattrs; +}; + +struct seg6_lwt { + struct dst_cache cache; + struct seg6_iptunnel_encap tuninfo[0]; +}; + +struct seg6_pernet_data { + struct mutex lock; + struct in6_addr *tun_src; + struct rhashtable hmac_infos; +}; + +struct sel_ib_pkey { + struct pkey_security_struct psec; + struct list_head list; + struct callback_head rcu; +}; + +struct sel_ib_pkey_bkt { + int size; + struct list_head list; +}; + +struct sel_netif { + struct list_head list; + struct netif_security_struct nsec; + struct callback_head callback_head; +}; + +struct sel_netnode { + struct netnode_security_struct nsec; + struct list_head list; + struct callback_head rcu; +}; + +struct sel_netnode_bkt { + unsigned int size; + struct list_head list; +}; + +struct sel_netport { + struct netport_security_struct psec; + struct list_head list; + struct callback_head rcu; +}; + +struct sel_netport_bkt { + int size; + struct list_head list; +}; + +struct select_data { + struct dentry *start; + union { + long int found; + struct dentry *victim; + }; + struct list_head dispose; +}; + +struct selinux_audit_data { + u32 ssid; + u32 tsid; + u16 tclass; + u32 requested; + u32 audited; + u32 denied; + int result; +}; + +struct selinux_audit_rule { + u32 au_seqno; + struct context au_ctxt; +}; + +struct selinux_avc { + unsigned int avc_cache_threshold; + struct avc_cache avc_cache; +}; + +struct selinux_fs_info { + struct dentry *bool_dir; + unsigned int bool_num; + char **bool_pending_names; + int *bool_pending_values; + struct dentry *class_dir; + long unsigned int last_class_ino; + bool policy_opened; + struct dentry *policycap_dir; + long unsigned int last_ino; + struct super_block *sb; +}; + +struct selinux_kernel_status { + u32 version; + u32 sequence; + u32 enforcing; + u32 policyload; + u32 deny_unknown; +}; + +struct selinux_policy; + +struct selinux_policy_convert_data; + +struct selinux_load_state { + struct selinux_policy *policy; + struct selinux_policy_convert_data *convert_data; +}; + +struct selinux_mapping; + +struct selinux_map { + struct selinux_mapping *mapping; + u16 size; +}; + +struct selinux_mapping { + u16 value; + u16 num_perms; + u32 perms[32]; +}; + +struct selinux_mnt_opts { + u32 fscontext_sid; + u32 context_sid; + u32 rootcontext_sid; + u32 defcontext_sid; +}; + +struct sidtab; + +struct selinux_policy { + struct sidtab *sidtab; + struct policydb policydb; + struct selinux_map map; + u32 latest_granting; +}; + +struct sidtab_convert_params { + struct convert_context_args *args; + struct sidtab *target; +}; + +struct selinux_policy_convert_data { + struct convert_context_args args; + struct sidtab_convert_params sidtab_params; +}; + +struct selinux_state { + bool enforcing; + bool initialized; + bool policycap[10]; + struct page *status_page; + struct mutex status_lock; + struct selinux_policy *policy; + struct mutex policy_mutex; +}; + +struct selnl_msg_policyload { + __u32 seqno; +}; + +struct selnl_msg_setenforce { + __s32 val; +}; + +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: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sem sems[0]; +}; + +struct sem_undo; + +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 sem_undo_list; + +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 int semadj[0]; +}; + +struct sem_undo_list { + refcount_t refcnt; + spinlock_t lock; + struct list_head list_proc; +}; + +struct semaphore_waiter { + struct list_head list; + struct task_struct *task; + bool up; +}; + +struct sembuf { + short unsigned int sem_num; + short int sem_op; + short int sem_flg; +}; + +struct semid64_ds { + struct ipc64_perm sem_perm; + long int sem_otime; + long int sem_ctime; + long unsigned int sem_nsems; + long unsigned int __unused3; + long unsigned int __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; + short unsigned int 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 virtnet_sq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t xdp_tx; + u64_stats_t xdp_tx_drops; + u64_stats_t kicks; + u64_stats_t tx_timeouts; + u64_stats_t stop; + u64_stats_t wake; +}; + +struct send_queue { + struct virtqueue *vq; + struct scatterlist sg[19]; + char name[16]; + struct virtnet_sq_stats stats; + struct virtnet_interrupt_coalesce intr_coal; + struct napi_struct napi; + bool reset; + struct xsk_buff_pool *xsk_pool; + dma_addr_t xsk_hdr_dma_addr; +}; + +struct send_signal_irq_work { + struct irq_work irq_work; + struct task_struct *task; + u32 sig; + enum pid_type type; + bool has_siginfo; + struct kernel_siginfo info; +}; + +struct sensor_device_attribute { + struct device_attribute dev_attr; + int index; +}; + +struct sensors_info { + u32 version; + bool notify_trip_point_cmd; + bool notify_continuos_update_cmd; + int num_sensors; + int max_requests; + u64 reg_addr; + u32 reg_size; + struct scmi_sensor_info *sensors; +}; + +struct seqDef_s { + U32 offBase; + U16 litLength; + U16 mlBase; +}; + +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 seqbuf { + char *buf; + size_t pos; + size_t size; +}; + +struct seqcount_rwlock { + seqcount_t seqcount; +}; + +typedef struct seqcount_rwlock seqcount_rwlock_t; + +struct serdev_device; + +struct serdev_controller_ops; + +struct serdev_controller { + struct device dev; + struct device *host; + unsigned int nr; + struct serdev_device *serdev; + const struct serdev_controller_ops *ops; +}; + +struct serdev_controller_ops { + ssize_t (*write_buf)(struct serdev_controller *, const u8 *, size_t); + void (*write_flush)(struct serdev_controller *); + int (*write_room)(struct serdev_controller *); + int (*open)(struct serdev_controller *); + void (*close)(struct serdev_controller *); + void (*set_flow_control)(struct serdev_controller *, bool); + int (*set_parity)(struct serdev_controller *, enum serdev_parity); + unsigned int (*set_baudrate)(struct serdev_controller *, unsigned int); + void (*wait_until_sent)(struct serdev_controller *, long int); + int (*get_tiocm)(struct serdev_controller *); + int (*set_tiocm)(struct serdev_controller *, unsigned int, unsigned int); + int (*break_ctl)(struct serdev_controller *, unsigned int); +}; + +struct serdev_device_ops; + +struct serdev_device { + struct device dev; + int nr; + struct serdev_controller *ctrl; + const struct serdev_device_ops *ops; + struct completion write_comp; + struct mutex write_lock; +}; + +struct serdev_device_driver { + struct device_driver driver; + int (*probe)(struct serdev_device *); + void (*remove)(struct serdev_device *); +}; + +struct serdev_device_ops { + size_t (*receive_buf)(struct serdev_device *, const u8 *, size_t); + void (*write_wakeup)(struct serdev_device *); +}; + +struct serial8250_config { + const char *name; + short unsigned int fifo_size; + short unsigned int tx_loadsz; + unsigned char fcr; + unsigned char rxtrig_bytes[4]; + unsigned int flags; +}; + +struct serial_ctrl_device { + struct device dev; + struct ida port_ida; +}; + +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_in_rdev { + struct rb_root_cached serial_rb; + spinlock_t serial_lock; + wait_queue_head_t serial_io_wait; +}; + +struct serial_port_device { + struct device dev; + struct uart_port *port; + unsigned int tx_enabled: 1; +}; + +struct serial_private { + struct pci_dev *dev; + unsigned int nr; + struct pci_serial_quirk *quirk; + const struct pciserial_board *board; + int line[0]; +}; + +struct serial_struct { + int type; + int line; + unsigned int port; + int irq; + int flags; + int xmit_fifo_size; + int custom_divisor; + int baud_base; + short unsigned int close_delay; + char io_type; + char reserved_char[1]; + int hub6; + short unsigned int closing_wait; + short unsigned int closing_wait2; + unsigned char *iomem_base; + short unsigned int iomem_reg_shift; + unsigned int port_high; + long unsigned int iomap_base; +}; + +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; + short unsigned int close_delay; + char io_type; + char reserved_char; + compat_int_t hub6; + short unsigned int closing_wait; + short unsigned int closing_wait2; + compat_uint_t iomem_base; + short unsigned int iomem_reg_shift; + unsigned int port_high; + compat_int_t reserved; +}; + +typedef struct serio *class_serio_pause_rx_t; + +struct serio_device_id { + __u8 type; + __u8 extra; + __u8 id; + __u8 proto; +}; + +struct serio_driver; + +struct serio { + void *port_data; + char name[32]; + char phys[32]; + char firmware_id[128]; + bool manual_bind; + struct serio_device_id id; + spinlock_t lock; + int (*write)(struct serio *, unsigned char); + int (*open)(struct serio *); + void (*close)(struct serio *); + int (*start)(struct serio *); + void (*stop)(struct serio *); + struct serio *parent; + struct list_head child_node; + struct list_head children; + unsigned int depth; + struct serio_driver *drv; + struct mutex drv_mutex; + struct device dev; + struct list_head node; + struct mutex *ps2_cmd_mutex; +}; + +struct serio_driver { + const char *description; + const struct serio_device_id *id_table; + bool manual_bind; + void (*write_wakeup)(struct serio *); + irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int); + int (*connect)(struct serio *, struct serio_driver *); + int (*reconnect)(struct serio *); + int (*fast_reconnect)(struct serio *); + void (*disconnect)(struct serio *); + void (*cleanup)(struct serio *); + struct device_driver driver; +}; + +struct serio_event { + enum serio_event_type type; + void *object; + struct module *owner; + struct list_head node; +}; + +struct serport { + struct tty_port *port; + struct tty_struct *tty; + struct tty_driver *tty_drv; + int tty_idx; + long unsigned int flags; +}; + +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 set_config_request { + struct usb_device *udev; + int config; + struct work_struct work; + struct list_head node; +}; + +struct set_event_iter { + enum set_event_iter_type type; + union { + struct trace_event_file *file; + struct event_mod_load *event_mod; + }; +}; + +struct set_perm_data { + const efi_memory_desc_t *md; + bool has_bti; +}; + +struct setid_rule { + struct hlist_node next; + kid_t src_id; + kid_t dst_id; + enum setid_type type; +}; + +struct setid_ruleset { + struct hlist_head rules[256]; + char *policy_str; + struct callback_head rcu; + enum setid_type type; +}; + +struct setup_rw_req { + unsigned int grant_idx; + struct blkif_request_segment *segments; + struct blkfront_ring_info *rinfo; + struct blkif_request *ring_req; + grant_ref_t gref_head; + unsigned int id; + bool need_copy; + unsigned int bvec_off; + char *bvec_data; + bool require_extra_req; + struct blkif_request *extra_ring_req; +}; + +struct sfp; + +struct sfp_socket_ops; + +struct sfp_quirk; + +struct sfp_upstream_ops; + +struct sfp_bus { + struct kref kref; + struct list_head node; + const struct fwnode_handle *fwnode; + const struct sfp_socket_ops *socket_ops; + struct device *sfp_dev; + struct sfp *sfp; + const struct sfp_quirk *sfp_quirk; + const struct sfp_upstream_ops *upstream_ops; + void *upstream; + struct phy_device *phydev; + bool registered; + bool started; +}; + +struct sfp_eeprom_base { + u8 phys_id; + u8 phys_ext_id; + u8 connector; + u8 if_1x_copper_passive: 1; + u8 if_1x_copper_active: 1; + u8 if_1x_lx: 1; + u8 if_1x_sx: 1; + u8 e10g_base_sr: 1; + u8 e10g_base_lr: 1; + u8 e10g_base_lrm: 1; + u8 e10g_base_er: 1; + u8 sonet_oc3_short_reach: 1; + u8 sonet_oc3_smf_intermediate_reach: 1; + u8 sonet_oc3_smf_long_reach: 1; + u8 unallocated_5_3: 1; + u8 sonet_oc12_short_reach: 1; + u8 sonet_oc12_smf_intermediate_reach: 1; + u8 sonet_oc12_smf_long_reach: 1; + u8 unallocated_5_7: 1; + u8 sonet_oc48_short_reach: 1; + u8 sonet_oc48_intermediate_reach: 1; + u8 sonet_oc48_long_reach: 1; + u8 sonet_reach_bit2: 1; + u8 sonet_reach_bit1: 1; + u8 sonet_oc192_short_reach: 1; + u8 escon_smf_1310_laser: 1; + u8 escon_mmf_1310_led: 1; + u8 e1000_base_sx: 1; + u8 e1000_base_lx: 1; + u8 e1000_base_cx: 1; + u8 e1000_base_t: 1; + u8 e100_base_lx: 1; + u8 e100_base_fx: 1; + u8 e_base_bx10: 1; + u8 e_base_px: 1; + u8 fc_tech_electrical_inter_enclosure: 1; + u8 fc_tech_lc: 1; + u8 fc_tech_sa: 1; + u8 fc_ll_m: 1; + u8 fc_ll_l: 1; + u8 fc_ll_i: 1; + u8 fc_ll_s: 1; + u8 fc_ll_v: 1; + u8 unallocated_8_0: 1; + u8 unallocated_8_1: 1; + u8 sfp_ct_passive: 1; + u8 sfp_ct_active: 1; + u8 fc_tech_ll: 1; + u8 fc_tech_sl: 1; + u8 fc_tech_sn: 1; + u8 fc_tech_electrical_intra_enclosure: 1; + u8 fc_media_sm: 1; + u8 unallocated_9_1: 1; + u8 fc_media_m5: 1; + u8 fc_media_m6: 1; + u8 fc_media_tv: 1; + u8 fc_media_mi: 1; + u8 fc_media_tp: 1; + u8 fc_media_tw: 1; + u8 fc_speed_100: 1; + u8 unallocated_10_1: 1; + u8 fc_speed_200: 1; + u8 fc_speed_3200: 1; + u8 fc_speed_400: 1; + u8 fc_speed_1600: 1; + u8 fc_speed_800: 1; + u8 fc_speed_1200: 1; + u8 encoding; + u8 br_nominal; + u8 rate_id; + u8 link_len[6]; + char vendor_name[16]; + u8 extended_cc; + char vendor_oui[3]; + char vendor_pn[16]; + char vendor_rev[4]; + union { + __be16 optical_wavelength; + __be16 cable_compliance; + struct { + u8 sff8431_app_e: 1; + u8 fc_pi_4_app_h: 1; + u8 reserved60_2: 6; + u8 reserved61: 8; + } passive; + struct { + u8 sff8431_app_e: 1; + u8 fc_pi_4_app_h: 1; + u8 sff8431_lim: 1; + u8 fc_pi_4_lim: 1; + u8 reserved60_4: 4; + u8 reserved61: 8; + } active; + }; + u8 reserved62; + u8 cc_base; +}; + +struct sfp_eeprom_ext { + __be16 options; + u8 br_max; + u8 br_min; + char vendor_sn[16]; + char datecode[8]; + u8 diagmon; + u8 enhopts; + u8 sff8472_compliance; + u8 cc_ext; +}; + +struct sfp_eeprom_id { + struct sfp_eeprom_base base; + struct sfp_eeprom_ext ext; +}; + +struct sfp_quirk { + const char *vendor; + const char *part; + void (*modes)(const struct sfp_eeprom_id *, long unsigned int *, long unsigned int *); + void (*fixup)(struct sfp *); +}; + +struct sfp_socket_ops { + void (*attach)(struct sfp *); + void (*detach)(struct sfp *); + void (*start)(struct sfp *); + void (*stop)(struct sfp *); + void (*set_signal_rate)(struct sfp *, unsigned int); + int (*module_info)(struct sfp *, struct ethtool_modinfo *); + int (*module_eeprom)(struct sfp *, struct ethtool_eeprom *, u8 *); + int (*module_eeprom_by_page)(struct sfp *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *); +}; + +struct 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 phy_device *); +}; + +struct sg { + struct ext4_group_info info; + ext4_grpblk_t counters[18]; +}; + +struct sg_append_table { + struct sg_table sgt; + struct scatterlist *prv; + unsigned int total_nents; +}; + +struct sg_device { + struct scsi_device *device; + wait_queue_head_t open_wait; + struct mutex open_rel_lock; + int sg_tablesize; + u32 index; + struct list_head sfds; + rwlock_t sfd_lock; + atomic_t detaching; + bool exclude; + int open_cnt; + char sgdebug; + char name[32]; + struct cdev *cdev; + struct kref d_ref; +}; + +typedef struct sg_device Sg_device; + +struct sg_dma_page_iter { + struct sg_page_iter base; +}; + +struct sg_scatter_hold { + short unsigned int 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; + +struct sg_io_hdr { + int interface_id; + int dxfer_direction; + unsigned char cmd_len; + unsigned char mx_sb_len; + short unsigned int iovec_count; + unsigned int dxfer_len; + void *dxferp; + unsigned char *cmdp; + void *sbp; + unsigned int timeout; + unsigned int flags; + int pack_id; + void *usr_ptr; + unsigned char status; + unsigned char masked_status; + unsigned char msg_status; + unsigned char sb_len_wr; + short unsigned int host_status; + short unsigned int driver_status; + int resid; + unsigned int duration; + unsigned int info; +}; + +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_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_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_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 sg_list { + unsigned int n; + unsigned int size; + size_t len; + struct scatterlist *sg; +}; + +struct sg_pool { + size_t size; + char *name; + struct kmem_cache *slab; + mempool_t *pool; +}; + +struct sg_proc_deviter { + loff_t index; + size_t max; +}; + +struct sg_req_info { + char req_state; + char orphan; + char sg_io_owned; + char problem; + int pack_id; + void *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 int h_cmd_per_lun; + short int d_queue_depth; + int unused[2]; +}; + +typedef struct sg_scsi_id sg_scsi_id_t; + +struct sg_splitter { + struct scatterlist *in_sg0; + int nents; + off_t skip_sg0; + unsigned int length_last_sg; + struct scatterlist *out_sg; +}; + +struct sgi_volume { + s8 name[8]; + __be32 block_num; + __be32 num_bytes; +}; + +struct sgi_partition { + __be32 num_blocks; + __be32 first_block; + __be32 type; +}; + +struct sgi_disklabel { + __be32 magic_mushroom; + __be16 root_part_num; + __be16 swap_part_num; + s8 boot_file[16]; + u8 _unused0[48]; + struct sgi_volume volume[15]; + struct sgi_partition partitions[16]; + __be32 csum; + __be32 _unused1; +}; + +struct sgpio_priv; + +struct sgpio_bank { + struct sgpio_priv *priv; + bool is_input; + struct gpio_chip gpio; + struct pinctrl_desc pctl_desc; +}; + +struct sgpio_port_addr { + u8 port; + u8 bit; +}; + +struct sgpio_properties; + +struct sgpio_priv { + struct device *dev; + struct sgpio_bank in; + struct sgpio_bank out; + u32 bitcount; + u32 ports; + u32 clock; + struct regmap *regs; + const struct sgpio_properties *properties; + spinlock_t lock; + struct mutex poll_lock; +}; + +struct sgpio_properties { + int arch; + int flags; + u8 regoff[10]; +}; + +struct sh_cmt_device; + +struct sh_cmt_channel { + struct sh_cmt_device *cmt; + unsigned int index; + unsigned int hwidx; + void *iostart; + void *ioctrl; + unsigned int timer_bit; + long unsigned int flags; + u32 match_value; + u32 next_match_value; + u32 max_match_value; + raw_spinlock_t lock; + struct clock_event_device ced; + struct clocksource cs; + u64 total_cycles; + bool cs_enabled; + long: 64; +}; + +struct sh_cmt_info; + +struct sh_cmt_device { + struct platform_device *pdev; + const struct sh_cmt_info *info; + void *mapbase; + struct clk *clk; + long unsigned int rate; + unsigned int reg_delay; + raw_spinlock_t lock; + struct sh_cmt_channel *channels; + unsigned int num_channels; + unsigned int hw_channels; + bool has_clockevent; + bool has_clocksource; +}; + +struct sh_cmt_info { + enum sh_cmt_model model; + unsigned int channels_mask; + long unsigned int width; + u32 overflow_bit; + u32 clear_bits; + u32 (*read_control)(void *, long unsigned int); + void (*write_control)(void *, long unsigned int, u32); + u32 (*read_count)(void *, long unsigned int); + void (*write_count)(void *, long unsigned int, u32); +}; + +struct sh_pfc_chip; + +struct sh_pfc_soc_info; + +struct sh_pfc_window; + +struct sh_pfc_pin_range; + +struct sh_pfc { + struct device *dev; + const struct sh_pfc_soc_info *info; + spinlock_t lock; + unsigned int num_windows; + struct sh_pfc_window *windows; + unsigned int num_irqs; + unsigned int *irqs; + struct sh_pfc_pin_range *ranges; + unsigned int nr_ranges; + unsigned int nr_gpio_pins; + struct sh_pfc_chip *gpio; + u32 *saved_regs; +}; + +struct sh_pfc_function { + const char *name; + const char * const *groups; + unsigned int nr_groups; +}; + +struct sh_pfc_pin { + const char *name; + unsigned int configs; + u16 pin; + u16 enum_id; +}; + +struct sh_pfc_pin_config { + u16 gpio_enabled: 1; + u16 mux_mark: 15; +}; + +struct sh_pfc_pin_group { + const char *name; + const unsigned int *pins; + const unsigned int *mux; + unsigned int nr_pins; +}; + +struct sh_pfc_pin_range { + u16 start; + u16 end; +}; + +struct sh_pfc_pinctrl { + struct pinctrl_dev *pctl; + struct pinctrl_desc pctl_desc; + struct sh_pfc *pfc; + struct pinctrl_pin_desc *pins; + struct sh_pfc_pin_config *configs; +}; + +struct sh_pfc_soc_operations; + +struct sh_pfc_soc_info { + const char *name; + const struct sh_pfc_soc_operations *ops; + struct pinmux_range function; + const struct sh_pfc_pin *pins; + unsigned int nr_pins; + const struct sh_pfc_pin_group *groups; + unsigned int nr_groups; + const struct sh_pfc_function *functions; + unsigned int nr_functions; + const struct pinmux_cfg_reg *cfg_regs; + const struct pinmux_drive_reg *drive_regs; + const struct pinmux_bias_reg *bias_regs; + const struct pinmux_ioctrl_reg *ioctrl_regs; + const struct pinmux_data_reg *data_regs; + const u16 *pinmux_data; + unsigned int pinmux_data_size; + u32 unlock_reg; +}; + +struct sh_pfc_soc_operations { + int (*init)(struct sh_pfc *); + unsigned int (*get_bias)(struct sh_pfc *, unsigned int); + void (*set_bias)(struct sh_pfc *, unsigned int, unsigned int); + int (*pin_to_pocctrl)(unsigned int, u32 *); + int (*pin_to_portcr)(unsigned int); +}; + +struct sh_pfc_window { + phys_addr_t phys; + void *virt; + long unsigned int size; +}; + +struct sh_timer_config { + unsigned int channels_mask; +}; + +struct sh_tmu_device; + +struct sh_tmu_channel { + struct sh_tmu_device *tmu; + unsigned int index; + void *base; + int irq; + long unsigned int periodic; + long: 64; + long: 64; + long: 64; + struct clock_event_device ced; + struct clocksource cs; + bool cs_enabled; + unsigned int enable_count; + long: 64; + long: 64; +}; + +struct sh_tmu_device { + struct platform_device *pdev; + void *mapbase; + struct clk *clk; + long unsigned int rate; + enum sh_tmu_model model; + raw_spinlock_t lock; + struct sh_tmu_channel *channels; + unsigned int num_channels; + bool has_clockevent; + bool has_clocksource; +}; + +struct sha1_state { + u32 state[5]; + u64 count; + u8 buffer[64]; +}; + +struct sha256_state { + u32 state[8]; + u64 count; + u8 buf[64]; +}; + +struct sha3_state { + u64 st[25]; + unsigned int rsiz; + unsigned int rsizw; + unsigned int partial; + u8 buf[144]; +}; + +struct sha512_state { + u64 state[8]; + u64 count[2]; + u8 buf[128]; +}; + +struct vcpu_info { + uint8_t evtchn_upcall_pending; + uint8_t evtchn_upcall_mask; + xen_ulong_t evtchn_pending_sel; + struct arch_vcpu_info arch; + struct pvclock_vcpu_time_info time; +}; + +struct shared_info { + struct vcpu_info vcpu_info[1]; + xen_ulong_t evtchn_pending[64]; + xen_ulong_t evtchn_mask[64]; + struct pvclock_wall_clock wc; + uint32_t wc_sec_hi; + struct arch_shared_info arch; +}; + +struct shared_policy { + struct rb_root root; + rwlock_t lock; +}; + +struct shash_alg { + int (*init)(struct shash_desc *); + int (*update)(struct shash_desc *, const u8 *, unsigned int); + int (*final)(struct shash_desc *, u8 *); + int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*export)(struct shash_desc *, void *); + int (*import)(struct shash_desc *, const void *); + int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_shash *); + void (*exit_tfm)(struct crypto_shash *); + int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); + unsigned int descsize; + union { + struct { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; + }; + struct hash_alg_common halg; + }; +}; + +struct shash_instance { + void (*free)(struct shash_instance *); + union { + struct { + char head[104]; + struct crypto_instance base; + } s; + struct shash_alg alg; + }; +}; + +struct shift_out_of_bounds_data { + struct source_location location; + struct type_descriptor *lhs_type; + struct type_descriptor *rhs_type; +}; + +struct shm_file_data { + int id; + struct ipc_namespace *ns; + struct file *file; + const struct vm_operations_struct *vm_ops; +}; + +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 shmem_falloc { + wait_queue_head_t *waitq; + long unsigned int start; + long unsigned int next; + long unsigned int nr_falloced; + long unsigned int nr_unswapped; +}; + +struct shmem_inode_info { + spinlock_t lock; + unsigned int seals; + long unsigned int flags; + long unsigned int alloced; + long unsigned int swapped; + union { + struct offset_ctx dir_offsets; + struct { + struct list_head shrinklist; + struct list_head swaplist; + }; + }; + struct timespec64 i_crtime; + struct shared_policy policy; + struct simple_xattrs xattrs; + long unsigned int fallocend; + unsigned int fsflags; + atomic_t stop_eviction; + struct dquot *i_dquot[3]; + struct inode vfs_inode; +}; + +struct shmem_quota_limits { + qsize_t usrquota_bhardlimit; + qsize_t usrquota_ihardlimit; + qsize_t grpquota_bhardlimit; + qsize_t grpquota_ihardlimit; +}; + +struct unicode_map; + +struct shmem_options { + long long unsigned int blocks; + long long unsigned int inodes; + struct mempolicy *mpol; + kuid_t uid; + kgid_t gid; + umode_t mode; + bool full_inums; + int huge; + int seen; + bool noswap; + short unsigned int quota_types; + struct shmem_quota_limits qlimits; + struct unicode_map *encoding; + bool strict_encoding; +}; + +struct shmem_sb_info { + long unsigned int max_blocks; + struct percpu_counter used_blocks; + long unsigned int max_inodes; + long unsigned int free_ispace; + raw_spinlock_t stat_lock; + umode_t mode; + unsigned char huge; + kuid_t uid; + kgid_t gid; + bool full_inums; + bool noswap; + ino_t next_ino; + ino_t *ino_batch; + struct mempolicy *mpol; + spinlock_t shrinklist_lock; + struct list_head shrinklist; + long unsigned int shrinklist_len; + struct shmem_quota_limits qlimits; +}; + +struct shmid64_ds { + struct ipc64_perm shm_perm; + __kernel_size_t shm_segsz; + long int shm_atime; + long int shm_dtime; + long int shm_ctime; + __kernel_pid_t shm_cpid; + __kernel_pid_t shm_lpid; + long unsigned int shm_nattch; + long unsigned int __unused4; + long unsigned int __unused5; +}; + +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; + short unsigned int shm_nattch; + short unsigned int shm_unused; + void *shm_unused2; + void *shm_unused3; +}; + +struct shmid_kernel { + struct kern_ipc_perm shm_perm; + struct file *shm_file; + long unsigned int shm_nattch; + long unsigned int 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 shminfo { + int shmmax; + int shmmin; + int shmmni; + int shmseg; + int shmall; +}; + +struct shminfo64 { + long unsigned int shmmax; + long unsigned int shmmin; + long unsigned int shmmni; + long unsigned int shmseg; + long unsigned int shmall; + long unsigned int __unused1; + long unsigned int __unused2; + long unsigned int __unused3; + long unsigned int __unused4; +}; + +struct shortname_info { + unsigned char lower: 1; + unsigned char upper: 1; + unsigned char valid: 1; +}; + +struct show_busy_params { + struct seq_file *m; + struct blk_mq_hw_ctx *hctx; +}; + +struct shrink_control { + gfp_t gfp_mask; + int nid; + long unsigned int nr_to_scan; + long unsigned int nr_scanned; + struct mem_cgroup *memcg; +}; + +struct shrinker { + long unsigned int (*count_objects)(struct shrinker *, struct shrink_control *); + long unsigned int (*scan_objects)(struct shrinker *, struct shrink_control *); + long int batch; + int seeks; + unsigned int flags; + refcount_t refcount; + struct completion done; + struct callback_head rcu; + void *private_data; + struct list_head list; + int id; + atomic_long_t *nr_deferred; +}; + +struct shrinker_info_unit; + +struct shrinker_info { + struct callback_head rcu; + int map_nr_max; + struct shrinker_info_unit *unit[0]; +}; + +struct shrinker_info_unit { + atomic_long_t nr_deferred[64]; + long unsigned int map[1]; +}; + +struct shutdown_handler { + const char command[11]; + bool flag; + void (*cb)(void); +}; + +struct si_mode_info { + u8 simr_rfsd; + u8 simr_tfsd; + u8 simr_crt; + u8 simr_sl; + u8 simr_ce; + u8 simr_fe; + u8 simr_gm; +}; + +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_str_cache; + +struct sidtab_entry { + u32 sid; + u32 hash; + struct context context; + struct sidtab_str_cache *cache; + struct hlist_node list; +}; + +struct sidtab_isid_entry { + int set; + struct sidtab_entry entry; +}; + +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 sidtab_str_cache { + struct callback_head rcu_member; + struct list_head lru_member; + struct sidtab_entry *parent; + u32 len; + char str[0]; +}; + +struct sifive_gpio { + void *base; + struct gpio_chip gc; + struct regmap *regs; + long unsigned int irq_state; + unsigned int trigger[32]; + unsigned int irq_number[32]; +}; + +struct sig_alg { + int (*sign)(struct crypto_sig *, const void *, unsigned int, void *, unsigned int); + int (*verify)(struct crypto_sig *, const void *, unsigned int, const void *, unsigned int); + int (*set_pub_key)(struct crypto_sig *, const void *, unsigned int); + int (*set_priv_key)(struct crypto_sig *, const void *, unsigned int); + unsigned int (*key_size)(struct crypto_sig *); + unsigned int (*digest_size)(struct crypto_sig *); + unsigned int (*max_size)(struct crypto_sig *); + int (*init)(struct crypto_sig *); + void (*exit)(struct crypto_sig *); + struct crypto_alg base; +}; + +struct sig_instance { + void (*free)(struct sig_instance *); + union { + struct { + char head[72]; + struct crypto_instance base; + }; + struct sig_alg alg; + }; +}; + +typedef struct sigevent sigevent_t; + +struct sighand_struct { + spinlock_t siglock; + refcount_t count; + wait_queue_head_t signalfd_wqh; + struct k_sigaction action[64]; +}; + +struct sigpending { + struct list_head list; + sigset_t signal; +}; + +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; +}; + +struct task_io_accounting { + u64 rchar; + u64 wchar; + u64 syscr; + u64 syscw; + u64 read_bytes; + u64 write_bytes; + u64 cancelled_write_bytes; +}; + +struct taskstats; + +struct tty_audit_buf; + +struct signal_struct { + refcount_t sigcnt; + atomic_t live; + int nr_threads; + int quick_threads; + struct list_head thread_head; + wait_queue_head_t wait_chldexit; + struct task_struct *curr_target; + struct sigpending shared_pending; + struct hlist_head multiprocess; + int group_exit_code; + int notify_count; + struct task_struct *group_exec_task; + int group_stop_count; + unsigned int flags; + struct core_state *core_state; + unsigned int is_child_subreaper: 1; + unsigned int has_child_subreaper: 1; + unsigned int next_posix_timer_id; + struct hlist_head posix_timers; + struct hlist_head ignored_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]; + atomic_t tick_dep_mask; + struct pid *tty_old_pgrp; + int leader; + struct tty_struct *tty; + struct autogroup *autogroup; + seqlock_t stats_lock; + u64 utime; + u64 stime; + u64 cutime; + u64 cstime; + u64 gtime; + u64 cgtime; + struct prev_cputime prev_cputime; + long unsigned int nvcsw; + long unsigned int nivcsw; + long unsigned int cnvcsw; + long unsigned int cnivcsw; + long unsigned int min_flt; + long unsigned int maj_flt; + long unsigned int cmin_flt; + long unsigned int cmaj_flt; + long unsigned int inblock; + long unsigned int oublock; + long unsigned int cinblock; + long unsigned int coublock; + long unsigned int maxrss; + long unsigned int cmaxrss; + struct task_io_accounting ioac; + long long unsigned int 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 int oom_score_adj; + short int oom_score_adj_min; + struct mm_struct *oom_mm; + struct mutex cred_guard_mutex; + struct rw_semaphore exec_update_lock; +}; + +struct signalfd_ctx { + sigset_t sigmask; +}; + +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 signature_hdr { + uint8_t version; + uint32_t timestamp; + uint8_t algo; + uint8_t hash; + uint8_t keyid[8]; + uint8_t nmpi; + char mpi[0]; +} __attribute__((packed)); + +struct signature_v2_hdr { + uint8_t type; + uint8_t version; + uint8_t hash_algo; + __be32 keyid; + __be16 sig_size; + uint8_t sig[0]; +} __attribute__((packed)); + +struct sigpool_entry { + struct crypto_ahash *hash; + const char *alg; + struct kref kref; + uint16_t needs_key: 1; + uint16_t reserved: 15; +}; + +struct sigpool_scratch { + local_lock_t bh_lock; + void *pad; +}; + +struct sigset_argpack { + sigset_t *p; + size_t size; +}; + +struct sih_irq_data { + u8 isr_offset; + u8 imr_offset; +}; + +struct sih { + char name[8]; + u8 module; + u8 control_offset; + bool set_cor; + u8 bits; + u8 bytes_ixr; + u8 edr_offset; + u8 bytes_edr; + u8 irq_lines; + struct sih_irq_data mask[2]; +}; + +struct sih_agent { + int irq_base; + const struct sih *sih; + u32 imr; + bool imr_change_pending; + u32 edge_change; + struct mutex irq_lock; + char *irq_name; +}; + +struct simple_attr { + int (*get)(void *, u64 *); + int (*set)(void *, u64); + char get_buf[24]; + char set_buf[24]; + void *data; + const char *fmt; + struct mutex mutex; +}; + +struct simple_pm_bus { + struct clk_bulk_data *clks; + int num_clks; +}; + +struct simple_transaction_argresp { + ssize_t size; + char data[0]; +}; + +struct simple_xattr { + struct rb_node rb_node; + char *name; + size_t size; + char value[0]; +}; + +struct simpledrm_device { + struct drm_device dev; + unsigned int clk_count; + struct clk **clks; + unsigned int regulator_count; + struct regulator **regulators; + int pwr_dom_count; + struct device **pwr_dom_devs; + struct device_link **pwr_dom_links; + struct drm_display_mode mode; + const struct drm_format_info *format; + unsigned int pitch; + struct iosys_map screen_base; + uint32_t formats[8]; + size_t nformats; + struct drm_plane primary_plane; + struct drm_crtc crtc; + struct drm_encoder encoder; + struct drm_connector connector; +}; + +struct simplefb_format { + const char *name; + u32 bits_per_pixel; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + u32 fourcc; +}; + +struct simplefb_platform_data { + u32 width; + u32 height; + u32 stride; + const char *format; +}; + +struct sioc_mif_req6 { + mifi_t mifi; + long unsigned int icount; + long unsigned int ocount; + long unsigned int ibytes; + long unsigned int obytes; +}; + +struct sioc_sg_req { + struct in_addr src; + struct in_addr grp; + long unsigned int pktcnt; + long unsigned int bytecnt; + long unsigned int wrong_if; +}; + +struct sioc_sg_req6 { + struct sockaddr_in6 src; + struct sockaddr_in6 grp; + long unsigned int pktcnt; + long unsigned int bytecnt; + long unsigned int wrong_if; +}; + +struct sioc_vif_req { + vifi_t vifi; + long unsigned int icount; + long unsigned int ocount; + long unsigned int ibytes; + long unsigned int obytes; +}; + +struct sipll5 { + struct clk_hw hw; + u32 conf; + long unsigned int foutpostdiv_rate; + struct rzg2l_cpg_priv *priv; +}; + +struct zs_size_stat { + long unsigned int objs[14]; +}; + +struct size_class { + spinlock_t lock; + struct list_head fullness_list[12]; + int size; + int objs_per_zspage; + int pages_per_zspage; + unsigned int index; + struct zs_size_stat stats; +}; + +struct sk_buff__safe_rcu_or_null { + struct sock *sk; +}; + +struct sk_buff_fclones { + struct sk_buff skb1; + struct sk_buff skb2; + refcount_t fclone_ref; +}; + +struct sk_filter { + refcount_t refcnt; + struct callback_head rcu; + struct bpf_prog *prog; +}; + +struct sk_psock_work_state { + u32 len; + u32 off; +}; + +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; + u32 copied_seq; + u32 ingress_bytes; + struct sk_buff_head ingress_skb; + struct list_head ingress_msg; + spinlock_t ingress_lock; + long unsigned int 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 int); + void (*saved_write_space)(struct sock *); + void (*saved_data_ready)(struct sock *); + int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); + struct proto *sk_proto; + struct mutex work_mutex; + struct sk_psock_work_state work_state; + struct delayed_work work; + struct sock *sk_pair; + struct rcu_work rwork; +}; + +struct sk_psock_link { + struct list_head list; + struct bpf_map *map; + void *link_raw; +}; + +struct sk_security_struct { + enum { + NLBL_UNSET = 0, + NLBL_REQUIRE = 1, + NLBL_LABELED = 2, + NLBL_REQSKB = 3, + NLBL_CONNLABELED = 4, + } nlbl_state; + struct netlbl_lsm_secattr *nlbl_secattr; + u32 sid; + u32 peer_sid; + u16 sclass; + enum { + SCTP_ASSOC_UNSET = 0, + SCTP_ASSOC_SET = 1, + } sctp_assoc_state; +}; + +struct tls_msg { + u8 control; +}; + +struct sk_skb_cb { + unsigned char data[20]; + unsigned char pad[4]; + struct _strp_msg strp; + struct tls_msg tls; + u64 temp_reg; +}; + +struct skb_checksum_ops { + __wsum (*update)(const void *, int, __wsum); + __wsum (*combine)(__wsum, __wsum, int, int); +}; + +struct skb_ext { + refcount_t refcnt; + u8 offset[5]; + u8 chunks; + long: 0; + char data[0]; +}; + +struct skb_frag { + netmem_ref netmem; + unsigned int len; + unsigned int offset; +}; + +typedef struct skb_frag skb_frag_t; + +struct skb_free_array { + unsigned int skb_count; + void *skb_array[16]; +}; + +struct skb_gso_cb { + union { + int mac_offset; + int data_offset; + }; + int encap_level; + __wsum csum; + __u16 csum_start; +}; + +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_shared_hwtstamps { + union { + ktime_t hwtstamp; + void *netdev_data; + }; +}; + +struct xsk_tx_metadata_compl { + __u64 *tx_timestamp; +}; + +struct skb_shared_info { + __u8 flags; + __u8 meta_len; + __u8 nr_frags; + __u8 tx_flags; + short unsigned int gso_size; + short unsigned int gso_segs; + struct sk_buff *frag_list; + union { + struct skb_shared_hwtstamps hwtstamps; + struct xsk_tx_metadata_compl xsk_meta; + }; + unsigned int gso_type; + u32 tskey; + atomic_t dataref; + union { + struct { + u32 xdp_frags_size; + u32 xdp_frags_truesize; + }; + void *destructor_arg; + }; + skb_frag_t frags[17]; +}; + +struct skcipher_alg { + int (*setkey)(struct crypto_skcipher *, const u8 *, unsigned int); + int (*encrypt)(struct skcipher_request *); + int (*decrypt)(struct skcipher_request *); + int (*export)(struct skcipher_request *, void *); + int (*import)(struct skcipher_request *, const void *); + int (*init)(struct crypto_skcipher *); + void (*exit)(struct crypto_skcipher *); + unsigned int walksize; + union { + struct { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + unsigned int statesize; + struct crypto_alg base; + }; + struct skcipher_alg_common co; + }; +}; + +struct skcipher_ctx_simple { + struct crypto_cipher *cipher; +}; + +struct skcipher_instance { + void (*free)(struct skcipher_instance *); + union { + struct { + char head[88]; + struct crypto_instance base; + } s; + struct skcipher_alg alg; + }; +}; + +struct skcipher_walk { + union { + struct { + void *addr; + } virt; + } src; + union { + struct { + void *addr; + } virt; + } dst; + struct scatter_walk in; + unsigned int nbytes; + struct scatter_walk out; + unsigned int total; + u8 *page; + u8 *buffer; + u8 *oiv; + void *iv; + unsigned int ivsize; + int flags; + unsigned int blocksize; + unsigned int stride; + unsigned int alignmask; +}; + +struct slab { + long unsigned int __page_flags; + struct kmem_cache *slab_cache; + union { + struct { + union { + struct list_head slab_list; + struct { + struct slab *next; + int slabs; + }; + }; + union { + struct { + void *freelist; + union { + long unsigned int counters; + struct { + unsigned int inuse: 16; + unsigned int objects: 15; + unsigned int frozen: 1; + }; + }; + }; + freelist_aba_t freelist_counter; + }; + }; + struct callback_head callback_head; + }; + unsigned int __page_type; + atomic_t __page_refcount; + long unsigned int obj_exts; +}; + +struct slab_attribute { + struct attribute attr; + ssize_t (*show)(struct kmem_cache *, char *); + ssize_t (*store)(struct kmem_cache *, const char *, size_t); +}; + +struct slabinfo { + long unsigned int active_objs; + long unsigned int num_objs; + long unsigned int active_slabs; + long unsigned int num_slabs; + long unsigned int shared_avail; + unsigned int limit; + unsigned int batchcount; + unsigned int shared; + unsigned int objects_per_slab; + unsigned int cache_order; +}; + +struct slcompress { + struct cstate *tstate; + struct cstate *rstate; + byte_t tslot_limit; + byte_t rslot_limit; + byte_t xmit_oldest; + byte_t xmit_current; + byte_t recv_current; + byte_t flags; + int32 sls_o_nontcp; + int32 sls_o_tcp; + int32 sls_o_uncompressed; + int32 sls_o_compressed; + int32 sls_o_searches; + int32 sls_o_misses; + int32 sls_i_uncompressed; + int32 sls_i_compressed; + int32 sls_i_error; + int32 sls_i_tossed; + int32 sls_i_runt; + int32 sls_i_badcheck; +}; + +struct sleep_stack_data { + struct cpu_suspend_ctx system_regs; + long unsigned int callee_saved_regs[12]; +}; + +struct slice { + __be32 nblocks; + __be32 blkoff; +}; + +struct slot___3 { + u8 bus; + u8 device; + u16 status; + u32 number; + u8 is_a_board; + u8 state; + u8 attention_save; + u8 presence_save; + u8 latch_save; + u8 pwr_save; + struct controller___2 *ctrl; + struct hotplug_slot hotplug_slot; + struct list_head slot_list; + struct delayed_work work; + struct mutex lock; + struct workqueue_struct *wq; + u8 hp_slot; +}; + +struct slot { + struct hotplug_slot hotplug_slot; + struct acpiphp_slot *acpi_slot; + unsigned int sun; +}; + +struct slot___2 { + u8 number; + unsigned int devfn; + struct pci_bus *bus; + struct pci_dev *dev; + unsigned int latch_status: 1; + unsigned int adapter_status: 1; + unsigned int extracting; + struct hotplug_slot hotplug_slot; + struct list_head slot_list; +}; + +struct slub_flush_work { + struct work_struct work; + struct kmem_cache *s; + bool skip; +}; + +struct smack_audit_data { + const char *function; + char *subject; + char *object; + char *request; + int result; +}; + +struct smack_known { + struct list_head list; + struct hlist_node smk_hashed; + char *smk_known; + u32 smk_secid; + struct netlbl_lsm_secattr smk_netlabel; + struct list_head smk_rules; + struct mutex smk_rules_lock; +}; + +struct smack_known_list_elem { + struct list_head list; + struct smack_known *smk_label; +}; + +struct smack_mnt_opts { + const char *fsdefault; + const char *fsfloor; + const char *fshat; + const char *fsroot; + const char *fstransmute; +}; + +struct smack_parsed_rule { + struct smack_known *smk_subject; + struct smack_known *smk_object; + int smk_access1; + int smk_access2; +}; + +struct smack_rule { + struct list_head list; + struct smack_known *smk_subject; + struct smack_known *smk_object; + int smk_access; +}; + +struct smc91x_platdata { + long unsigned int flags; + unsigned char leda; + unsigned char ledb; + bool pxa_u16_align4; +}; + +struct smc_local { + struct sk_buff *pending_tx_skb; + struct tasklet_struct tx_task; + struct gpio_desc *power_gpio; + struct gpio_desc *reset_gpio; + int version; + int tcr_cur_mode; + int rcr_cur_mode; + int rpc_cur_mode; + int ctl_rfduplx; + int ctl_rspeed; + u32 msg_enable; + u32 phy_type; + struct mii_if_info mii; + struct work_struct phy_configure; + struct net_device *dev; + int work_pending; + spinlock_t lock; + struct dma_chan *dma_chan; + void *base; + void *datacs; + int io_shift; + bool half_word_align4; + struct smc91x_platdata cfg; +}; + +struct smk_audit_info { + struct common_audit_data a; + struct smack_audit_data sad; +}; + +struct smk_net4addr { + struct list_head list; + struct in_addr smk_host; + struct in_addr smk_mask; + int smk_masks; + struct smack_known *smk_label; +}; + +struct smk_net6addr { + struct list_head list; + struct in6_addr smk_host; + struct in6_addr smk_mask; + int smk_masks; + struct smack_known *smk_label; +}; + +struct smp_call_on_cpu_struct { + struct work_struct work; + struct completion done; + int (*func)(void *); + void *data; + int ret; + int cpu; +}; + +struct smp_hotplug_thread { + struct task_struct **store; + struct list_head list; + int (*thread_should_run)(unsigned int); + void (*thread_fn)(unsigned int); + void (*create)(unsigned int); + void (*setup)(unsigned int); + void (*cleanup)(unsigned int, bool); + void (*park)(unsigned int); + void (*unpark)(unsigned int); + bool selfparking; + const char *thread_comm; +}; + +struct smpboot_thread_data { + unsigned int cpu; + unsigned int status; + struct smp_hotplug_thread *ht; +}; + +struct snapshot_context { + struct tracing_map_elt *elt; + void *key; +}; + +struct snmp_mib { + const char *name; + int entry; +}; + +struct so_timestamping { + int flags; + int bind_phc; +}; + +struct soc_device_attribute; + +struct soc_device { + struct device dev; + struct soc_device_attribute *attr; + int soc_dev_num; +}; + +struct soc_device_attribute { + const char *machine; + const char *family; + const char *revision; + const char *serial_number; + const char *soc_id; + const void *data; + const struct attribute_group *custom_attr_group; +}; + +struct socfpga_gate_clk { + struct clk_gate hw; + char *parent_name; + u32 fixed_div; + void *div_reg; + void *bypass_reg; + struct regmap *sys_mgr_base_addr; + u32 width; + u32 shift; + u32 bypass_shift; +}; + +struct socfpga_periph_clk { + struct clk_gate hw; + char *parent_name; + u32 fixed_div; + void *div_reg; + void *bypass_reg; + u32 width; + u32 shift; + u32 bypass_shift; +}; + +struct socfpga_pll { + struct clk_gate hw; +}; + +struct sock_bh_locked { + struct sock *sock; + local_lock_t bh_lock; +}; + +struct sock_diag_handler { + struct module *owner; + __u8 family; + int (*dump)(struct sk_buff *, struct nlmsghdr *); + int (*get_info)(struct sk_buff *, struct sock *); + int (*destroy)(struct sk_buff *, struct nlmsghdr *); +}; + +struct sock_diag_inet_compat { + struct module *owner; + int (*fn)(struct sk_buff *, struct nlmsghdr *); +}; + +struct sock_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; +}; + +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 sock_fprog { + short unsigned int len; + struct sock_filter *filter; +}; + +struct sock_fprog32 { + short unsigned int len; + compat_caddr_t filter; +}; + +struct sock_fprog_kern { + u16 len; + struct sock_filter *filter; +}; + +struct sock_hash_seq_info { + struct bpf_map *map; + struct bpf_shtab *htab; + u32 bucket_id; +}; + +struct sock_map_seq_info { + struct bpf_map *map; + struct sock *sk; + u32 index; +}; + +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 *prog; + struct sock *socks[0]; +}; + +struct sock_skb_cb { + u32 dropcount; +}; + +struct sock_txtime { + __kernel_clockid_t clockid; + __u32 flags; +}; + +struct sockaddr_mctp { + __kernel_sa_family_t smctp_family; + __u16 __smctp_pad0; + unsigned int smctp_network; + struct mctp_addr smctp_addr; + __u8 smctp_type; + __u8 smctp_tag; + __u8 __smctp_pad1; +}; + +struct sockaddr_mctp_ext { + struct sockaddr_mctp smctp_base; + int smctp_ifindex; + __u8 smctp_halen; + __u8 __smctp_pad0[3]; + __u8 smctp_haddr[32]; +}; + +struct sockaddr_nl { + __kernel_sa_family_t nl_family; + short unsigned int nl_pad; + __u32 nl_pid; + __u32 nl_groups; +}; + +struct sockaddr_un { + __kernel_sa_family_t sun_family; + char sun_path[108]; +}; + +struct sockaddr_xdp { + __u16 sxdp_family; + __u16 sxdp_flags; + __u32 sxdp_ifindex; + __u32 sxdp_queue_id; + __u32 sxdp_shared_umem_fd; +}; + +struct socket_wq { + wait_queue_head_t wait; + struct fasync_struct *fasync_list; + long unsigned int flags; + struct callback_head rcu; + long: 64; +}; + +struct socket { + socket_state state; + short int type; + long unsigned int flags; + struct file *file; + struct sock *sk; + const struct proto_ops *ops; + long: 64; + long: 64; + long: 64; + struct socket_wq wq; +}; + +struct socket__safe_trusted_or_null { + struct sock *sk; +}; + +struct socket_alloc { + struct socket socket; + struct inode vfs_inode; + long: 64; + long: 64; +}; + +struct socket_smack { + struct smack_known *smk_out; + struct smack_known *smk_in; + struct smack_known *smk_packet; + int smk_state; +}; + +struct sockmap_link { + struct bpf_link link; + struct bpf_map *map; + enum bpf_attach_type attach_type; +}; + +struct softirq_action { + void (*action)(void); +}; + +struct softnet_data { + struct list_head poll_list; + struct sk_buff_head process_queue; + local_lock_t process_queue_bh_lock; + unsigned int processed; + unsigned int time_squeeze; + struct softnet_data *rps_ipi_list; + unsigned int received_rps; + bool in_net_rx_action; + bool in_napi_threaded_poll; + struct sd_flow_limit *flow_limit; + struct Qdisc *output_queue; + struct Qdisc **output_queue_tailp; + struct sk_buff *completion_queue; + struct sk_buff_head xfrm_backlog; + struct netdev_xmit xmit; + long: 0; + unsigned int input_queue_head; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + call_single_data_t csd; + struct softnet_data *rps_ipi_next; + unsigned int cpu; + unsigned int input_queue_tail; + struct sk_buff_head input_pkt_queue; + struct napi_struct backlog; + long: 64; + atomic_t dropped; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t defer_lock; + int defer_count; + int defer_ipi_scheduled; + struct sk_buff *defer_list; + long: 64; + call_single_data_t defer_csd; +}; + +struct software_node { + const char *name; + const struct software_node *parent; + const struct property_entry *properties; +}; + +struct solaris_x86_slice { + __le16 s_tag; + __le16 s_flag; + __le32 s_start; + __le32 s_size; +}; + +struct solaris_x86_vtoc { + unsigned int v_bootinfo[3]; + __le32 v_sanity; + __le32 v_version; + char v_volume[8]; + __le16 v_sectorsz; + __le16 v_nparts; + unsigned int v_reserved[10]; + struct solaris_x86_slice v_slice[16]; + unsigned int timestamp[16]; + char v_asciilabel[128]; +}; + +struct sp804_clkevt { + void *base; + void *load; + void *load_h; + void *value; + void *value_h; + void *ctrl; + void *intclr; + void *ris; + void *mis; + void *bgload; + void *bgload_h; + long unsigned int reload; + int width; +}; + +struct sp804_timer { + int load; + int load_h; + int value; + int value_h; + int ctrl; + int intclr; + int ris; + int mis; + int bgload; + int bgload_h; + int timer_base[2]; + int width; +}; + +struct sp_node { + struct rb_node nd; + long unsigned int start; + long unsigned int end; + struct mempolicy *policy; +}; + +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 spectre_v4_param { + const char *str; + enum spectre_v4_policy policy; +}; + +struct speed_down_verdict_arg { + u64 since; + int xfer_ok; + int nr_errors[8]; +}; + +struct spi_controller_mem_ops; + +struct spi_controller_mem_caps; + +struct spi_statistics; + +struct spi_controller { + struct device dev; + struct list_head list; + s16 bus_num; + u16 num_chipselect; + u16 dma_alignment; + u32 mode_bits; + u32 buswidth_override_bits; + u32 bits_per_word_mask; + u32 min_speed_hz; + u32 max_speed_hz; + u16 flags; + bool devm_allocated; + union { + bool slave; + bool target; + }; + size_t (*max_transfer_size)(struct spi_device *); + size_t (*max_message_size)(struct spi_device *); + struct mutex io_mutex; + struct mutex add_lock; + spinlock_t bus_lock_spinlock; + struct mutex bus_lock_mutex; + bool bus_lock_flag; + int (*setup)(struct spi_device *); + int (*set_cs_timing)(struct spi_device *); + int (*transfer)(struct spi_device *, struct spi_message *); + void (*cleanup)(struct spi_device *); + bool (*can_dma)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + struct device *dma_map_dev; + struct device *cur_rx_dma_dev; + struct device *cur_tx_dma_dev; + bool queued; + struct kthread_worker *kworker; + struct kthread_work pump_messages; + spinlock_t queue_lock; + struct list_head queue; + struct spi_message *cur_msg; + struct completion cur_msg_completion; + bool cur_msg_incomplete; + bool cur_msg_need_completion; + bool busy; + bool running; + bool rt; + bool auto_runtime_pm; + bool fallback; + bool last_cs_mode_high; + s8 last_cs[16]; + u32 last_cs_index_mask: 16; + struct completion xfer_completion; + size_t max_dma_len; + int (*optimize_message)(struct spi_message *); + int (*unoptimize_message)(struct spi_message *); + int (*prepare_transfer_hardware)(struct spi_controller *); + int (*transfer_one_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_transfer_hardware)(struct spi_controller *); + int (*prepare_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_message)(struct spi_controller *, struct spi_message *); + int (*target_abort)(struct spi_controller *); + void (*set_cs)(struct spi_device *, bool); + int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + void (*handle_err)(struct spi_controller *, struct spi_message *); + const struct spi_controller_mem_ops *mem_ops; + const struct spi_controller_mem_caps *mem_caps; + struct gpio_desc **cs_gpiods; + bool use_gpio_descriptors; + s8 unused_native_cs; + s8 max_native_cs; + struct spi_statistics *pcpu_statistics; + struct dma_chan *dma_tx; + struct dma_chan *dma_rx; + void *dummy_rx; + void *dummy_tx; + int (*fw_translate_cs)(struct spi_controller *, unsigned int); + bool ptp_sts_supported; + long unsigned int irq_flags; + bool queue_empty; + bool must_async; + bool defer_optimize_message; +}; + +struct spi_controller_mem_caps { + bool dtr; + bool ecc; + bool swap16; + bool per_op_freq; +}; + +struct spi_mem; + +struct spi_mem_op; + +struct spi_mem_dirmap_desc; + +struct spi_controller_mem_ops { + int (*adjust_op_size)(struct spi_mem *, struct spi_mem_op *); + bool (*supports_op)(struct spi_mem *, const struct spi_mem_op *); + int (*exec_op)(struct spi_mem *, const struct spi_mem_op *); + const char * (*get_name)(struct spi_mem *); + int (*dirmap_create)(struct spi_mem_dirmap_desc *); + void (*dirmap_destroy)(struct spi_mem_dirmap_desc *); + ssize_t (*dirmap_read)(struct spi_mem_dirmap_desc *, u64, size_t, void *); + ssize_t (*dirmap_write)(struct spi_mem_dirmap_desc *, u64, size_t, const void *); + int (*poll_status)(struct spi_mem *, const struct spi_mem_op *, u16, u16, long unsigned int, long unsigned int, long unsigned int); +}; + +struct spi_device { + struct device dev; + struct spi_controller *controller; + u32 max_speed_hz; + u8 chip_select[16]; + u8 bits_per_word; + bool rt; + u32 mode; + int irq; + void *controller_state; + void *controller_data; + char modalias[32]; + const char *driver_override; + struct gpio_desc *cs_gpiod[16]; + struct spi_delay word_delay; + struct spi_delay cs_setup; + struct spi_delay cs_hold; + struct spi_delay cs_inactive; + struct spi_statistics *pcpu_statistics; + u32 cs_index_mask: 16; +}; + +struct spi_device_id { + char name[32]; + kernel_ulong_t driver_data; +}; + +struct spi_driver { + const struct spi_device_id *id_table; + int (*probe)(struct spi_device *); + void (*remove)(struct spi_device *); + void (*shutdown)(struct spi_device *); + struct device_driver driver; +}; + +struct spi_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 *); + long unsigned int show_period: 1; + long unsigned int show_offset: 1; + long unsigned int show_width: 1; + long unsigned int show_iu: 1; + long unsigned int show_dt: 1; + long unsigned int show_qas: 1; + long unsigned int show_wr_flow: 1; + long unsigned int show_rd_strm: 1; + long unsigned int show_rti: 1; + long unsigned int show_pcomp_en: 1; + long unsigned int show_hold_mcs: 1; +}; + +struct spi_host_attrs { + enum spi_signal_type signalling; +}; + +struct spi_internal { + struct scsi_transport_template t; + struct spi_function_template *f; +}; + +struct spi_mem { + struct spi_device *spi; + void *drvpriv; + const char *name; +}; + +struct spi_mem_op { + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + u16 opcode; + } cmd; + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + u64 val; + } addr; + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + } dummy; + struct { + u8 buswidth; + u8 dtr: 1; + u8 ecc: 1; + u8 swap16: 1; + u8 __pad: 5; + enum spi_mem_data_dir dir; + unsigned int nbytes; + union { + void *in; + const void *out; + } buf; + } data; + unsigned int max_freq; +}; + +struct spi_mem_dirmap_info { + struct spi_mem_op op_tmpl; + u64 offset; + u64 length; +}; + +struct spi_mem_dirmap_desc { + struct spi_mem *mem; + struct spi_mem_dirmap_info info; + unsigned int nodirmap; + void *priv; +}; + +struct spi_mem_driver { + struct spi_driver spidrv; + int (*probe)(struct spi_mem *); + int (*remove)(struct spi_mem *); + void (*shutdown)(struct spi_mem *); +}; + +struct spi_mpc8xxx_cs { + void (*get_rx)(u32, struct mpc8xxx_spi *); + u32 (*get_tx)(struct mpc8xxx_spi *); + u32 rx_shift; + u32 tx_shift; + u32 hw_mode; +}; + +struct spi_replaced_transfers; + +typedef void (*spi_replaced_release_t)(struct spi_controller *, struct spi_message *, struct spi_replaced_transfers *); + +struct spi_replaced_transfers { + spi_replaced_release_t release; + void *extradata; + struct list_head replaced_transfers; + struct list_head *replaced_after; + size_t inserted; + struct spi_transfer inserted_transfers[0]; +}; + +typedef void (*spi_res_release_t)(struct spi_controller *, struct spi_message *, void *); + +struct spi_res { + struct list_head entry; + spi_res_release_t release; + long long unsigned int data[0]; +}; + +struct spi_statistics { + struct u64_stats_sync syncp; + u64_stats_t messages; + u64_stats_t transfers; + u64_stats_t errors; + u64_stats_t timedout; + u64_stats_t spi_sync; + u64_stats_t spi_sync_immediate; + u64_stats_t spi_async; + u64_stats_t bytes; + u64_stats_t bytes_rx; + u64_stats_t bytes_tx; + u64_stats_t transfer_bytes_histo[17]; + u64_stats_t transfers_split_maxsize; +}; + +struct 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; + long unsigned int 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 splice_desc { + size_t total_len; + unsigned int len; + unsigned int flags; + union { + void *userptr; + struct file *file; + void *data; + } u; + void (*splice_eof)(struct splice_desc *); + loff_t pos; + loff_t *opos; + size_t num_spliced; + bool need_wakeup; +}; + +struct 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 spm_reg_data; + +struct spm_driver_data { + void *reg_base; + const struct spm_reg_data *reg_data; + struct device *dev; + unsigned int volt_sel; + int reg_cpu; +}; + +struct spm_reg_data { + const u16 *reg_offset; + u32 spm_cfg; + u32 spm_dly; + u32 pmic_dly; + u32 pmic_data[2]; + u32 avs_ctl; + u32 avs_limit; + u8 seq[64]; + u8 start_index[4]; + smp_call_func_t set_vdd; + struct linear_range *range; + unsigned int ramp_delay; + unsigned int init_uV; +}; + +struct sprd_i2c { + struct i2c_adapter adap; + struct device *dev; + void *base; + struct i2c_msg *msg; + struct clk *clk; + u32 src_clk; + u32 bus_freq; + struct completion complete; + u8 *buf; + u32 count; + int irq; + int err; +}; + +struct sprd_pin { + const char *name; + unsigned int number; + enum pin_type type; + long unsigned int reg; + long unsigned int bit_offset; + long unsigned int bit_width; +}; + +struct sprd_pin_group { + const char *name; + unsigned int npins; + unsigned int *pins; +}; + +struct sprd_pinctrl_soc_info; + +struct sprd_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl; + void *base; + struct sprd_pinctrl_soc_info *info; +}; + +struct sprd_pinctrl_soc_info { + struct sprd_pin_group *groups; + unsigned int ngroups; + struct sprd_pin *pins; + unsigned int npins; + const char **grp_names; +}; + +struct sprd_pins_info { + const char *name; + unsigned int num; + enum pin_type type; + long unsigned int bit_offset; + long unsigned int bit_width; + unsigned int reg; +}; + +struct squashfs_base_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; +}; + +struct squashfs_cache_entry; + +struct squashfs_cache { + char *name; + int entries; + int curr_blk; + int next_blk; + int num_waiters; + int unused; + int block_size; + int pages; + spinlock_t lock; + wait_queue_head_t wait_queue; + struct squashfs_cache_entry *entry; +}; + +struct squashfs_page_actor; + +struct squashfs_cache_entry { + u64 block; + int length; + int refcount; + u64 next_index; + int pending; + int error; + int num_waiters; + wait_queue_head_t wait_queue; + struct squashfs_cache *cache; + void **data; + struct squashfs_page_actor *actor; +}; + +struct squashfs_sb_info; + +struct squashfs_decompressor { + void * (*init)(struct squashfs_sb_info *, void *); + void * (*comp_opts)(struct squashfs_sb_info *, void *, int); + void (*free)(void *); + int (*decompress)(struct squashfs_sb_info *, void *, struct bio *, int, int, struct squashfs_page_actor *); + int id; + char *name; + int alloc_buffer; + int supported; +}; + +struct squashfs_decompressor_thread_ops { + void * (*create)(struct squashfs_sb_info *, void *); + void (*destroy)(struct squashfs_sb_info *); + int (*decompress)(struct squashfs_sb_info *, struct bio *, int, int, struct squashfs_page_actor *); + int (*max_decompressors)(void); +}; + +struct squashfs_dev_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 rdev; +}; + +struct squashfs_dir_entry { + __le16 offset; + __le16 inode_number; + __le16 type; + __le16 size; + char name[0]; +}; + +struct squashfs_dir_header { + __le32 count; + __le32 start_block; + __le32 inode_number; +}; + +struct squashfs_dir_index { + __le32 index; + __le32 start_block; + __le32 size; + unsigned char name[0]; +}; + +struct squashfs_dir_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 start_block; + __le32 nlink; + __le16 file_size; + __le16 offset; + __le32 parent_inode; +}; + +struct squashfs_fragment_entry { + __le64 start_block; + __le32 size; + unsigned int unused; +}; + +struct squashfs_ldev_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 rdev; + __le32 xattr; +}; + +struct squashfs_symlink_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 symlink_size; + char symlink[0]; +}; + +struct squashfs_reg_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 start_block; + __le32 fragment; + __le32 offset; + __le32 file_size; + __le16 block_list[0]; +}; + +struct squashfs_lreg_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le64 start_block; + __le64 file_size; + __le64 sparse; + __le32 nlink; + __le32 fragment; + __le32 offset; + __le32 xattr; + __le16 block_list[0]; +}; + +struct squashfs_ldir_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 file_size; + __le32 start_block; + __le32 parent_inode; + __le16 i_count; + __le16 offset; + __le32 xattr; + struct squashfs_dir_index index[0]; +}; + +struct squashfs_ipc_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; +}; + +struct squashfs_lipc_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 xattr; +}; + +union squashfs_inode { + struct squashfs_base_inode base; + struct squashfs_dev_inode dev; + struct squashfs_ldev_inode ldev; + struct squashfs_symlink_inode symlink; + struct squashfs_reg_inode reg; + struct squashfs_lreg_inode lreg; + struct squashfs_dir_inode dir; + struct squashfs_ldir_inode ldir; + struct squashfs_ipc_inode ipc; + struct squashfs_lipc_inode lipc; +}; + +struct squashfs_inode_info { + u64 start; + int offset; + u64 xattr; + unsigned int xattr_size; + int xattr_count; + union { + struct { + u64 fragment_block; + int fragment_size; + int fragment_offset; + u64 block_list_start; + }; + struct { + u64 dir_idx_start; + int dir_idx_offset; + int dir_idx_cnt; + int parent; + }; + }; + struct inode vfs_inode; +}; + +struct squashfs_lz4 { + void *input; + void *output; +}; + +struct squashfs_lzo { + void *input; + void *output; +}; + +struct squashfs_mount_opts { + enum Opt_errors errors; + const struct squashfs_decompressor_thread_ops *thread_ops; + int thread_num; +}; + +struct squashfs_page_actor { + union { + void **buffer; + struct page **page; + }; + void *pageaddr; + void *tmp_buffer; + void * (*squashfs_first_page)(struct squashfs_page_actor *); + void * (*squashfs_next_page)(struct squashfs_page_actor *); + void (*squashfs_finish_page)(struct squashfs_page_actor *); + struct page *last_page; + int pages; + int length; + int next_page; + int alloc_buffer; + int returned_pages; + long unsigned int next_index; +}; + +struct squashfs_sb_info { + const struct squashfs_decompressor *decompressor; + int devblksize; + int devblksize_log2; + struct squashfs_cache *block_cache; + struct squashfs_cache *fragment_cache; + struct squashfs_cache *read_page; + struct address_space *cache_mapping; + int next_meta_index; + __le64 *id_table; + __le64 *fragment_index; + __le64 *xattr_id_table; + struct mutex meta_index_mutex; + struct meta_index *meta_index; + void *stream; + __le64 *inode_lookup_table; + u64 inode_table; + u64 directory_table; + u64 xattr_table; + unsigned int block_size; + short unsigned int block_log; + long long int bytes_used; + unsigned int inodes; + unsigned int fragments; + unsigned int xattr_ids; + unsigned int ids; + bool panic_on_errors; + const struct squashfs_decompressor_thread_ops *thread_ops; + int max_thread_num; +}; + +struct squashfs_stream { + void *comp_opts; + struct list_head strm_list; + struct mutex mutex; + int avail_decomp; + wait_queue_head_t wait; +}; + +struct squashfs_stream___2 { + void *stream; + local_lock_t lock; +}; + +struct squashfs_stream___3 { + void *stream; + struct mutex mutex; +}; + +struct squashfs_super_block { + __le32 s_magic; + __le32 inodes; + __le32 mkfs_time; + __le32 block_size; + __le32 fragments; + __le16 compression; + __le16 block_log; + __le16 flags; + __le16 no_ids; + __le16 s_major; + __le16 s_minor; + __le64 root_inode; + __le64 bytes_used; + __le64 id_table_start; + __le64 xattr_id_table_start; + __le64 inode_table_start; + __le64 directory_table_start; + __le64 fragment_table_start; + __le64 lookup_table_start; +}; + +struct squashfs_xattr_entry { + __le16 type; + __le16 size; + char data[0]; +}; + +struct squashfs_xattr_id { + __le64 xattr; + __le32 count; + __le32 size; +}; + +struct squashfs_xattr_id_table { + __le64 xattr_table_start; + __le32 xattr_ids; + __le32 unused; +}; + +struct squashfs_xattr_val { + __le32 vsize; + char value[0]; +}; + +struct xz_buf { + const uint8_t *in; + size_t in_pos; + size_t in_size; + uint8_t *out; + size_t out_pos; + size_t out_size; +}; + +struct xz_dec; + +struct squashfs_xz { + struct xz_dec *state; + struct xz_buf buf; +}; + +struct sr6_tlv { + __u8 type; + __u8 len; + __u8 data[0]; +}; + +struct sr6_tlv_hmac { + struct sr6_tlv tlvhdr; + __u16 reserved; + __be32 hmackeyid; + __u8 hmac[32]; +}; + +struct sram_config { + int (*init)(void); + bool map_only_reserved; +}; + +struct sram_partition; + +struct sram_dev { + const struct sram_config *config; + struct device *dev; + void *virt_base; + bool no_memory_wc; + struct gen_pool *pool; + struct sram_partition *partition; + u32 partitions; +}; + +struct sram_partition { + void *base; + struct gen_pool *pool; + struct bin_attribute battr; + struct mutex lock; + struct list_head list; +}; + +struct sram_reserve { + struct list_head list; + u32 start; + u32 size; + struct resource res; + bool export; + bool pool; + bool protect_exec; + const char *label; +}; + +struct srcu_data { + atomic_long_t srcu_lock_count[2]; + atomic_long_t srcu_unlock_count[2]; + int srcu_reader_flavor; + long: 64; + long: 64; + long: 64; + spinlock_t lock; + struct rcu_segcblist srcu_cblist; + long unsigned int srcu_gp_seq_needed; + long unsigned int 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; + long unsigned int grpmask; + int cpu; + struct srcu_struct *ssp; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct srcu_node { + spinlock_t lock; + long unsigned int srcu_have_cbs[4]; + long unsigned int srcu_data_have_cbs[4]; + long unsigned int srcu_gp_seq_needed_exp; + struct srcu_node *srcu_parent; + int grplo; + int grphi; +}; + +union st_info { + struct { + u64 vm_st_valid: 1; + u64 vm_xst_valid: 1; + u64 vm_ph_ignore: 1; + u64 rsvd1: 5; + u64 vm_st: 8; + u64 vm_xst: 16; + u64 pm_st_valid: 1; + u64 pm_xst_valid: 1; + u64 pm_ph_ignore: 1; + u64 rsvd2: 5; + u64 pm_st: 8; + u64 pm_xst: 16; + }; + u64 value; +}; + +struct stack_entry { + struct trace_entry ent; + int size; + long unsigned int caller[0]; +}; + +struct stack_map_bucket { + struct pcpu_freelist_node fnode; + u32 hash; + u32 nr; + u64 data[0]; +}; + +struct stack_record { + struct list_head hash_list; + u32 hash; + u32 size; + union handle_parts handle; + refcount_t count; + union { + long unsigned int entries[64]; + struct { + struct list_head free_list; + long unsigned int rcu_state; + }; + }; +}; + +struct stacktrace_cookie { + long unsigned int *store; + unsigned int size; + unsigned int skip; + unsigned int len; +}; + +struct stage2_age_data { + bool mkold; + bool young; +}; + +struct stage2_attr_data { + kvm_pte_t attr_set; + kvm_pte_t attr_clr; + kvm_pte_t pte; + s8 level; +}; + +struct stage2_map_data { + const u64 phys; + kvm_pte_t attr; + u8 owner_id; + kvm_pte_t *anchor; + kvm_pte_t *childp; + struct kvm_s2_mmu *mmu; + void *memcache; + bool force_pte; + bool annotation; +}; + +struct start_info { + char magic[32]; + long unsigned int nr_pages; + long unsigned int shared_info; + uint32_t flags; + xen_pfn_t store_mfn; + uint32_t store_evtchn; + union { + struct { + xen_pfn_t mfn; + uint32_t evtchn; + } domU; + struct { + uint32_t info_off; + uint32_t info_size; + } dom0; + } console; + long unsigned int pt_base; + long unsigned int nr_pt_frames; + long unsigned int mfn_list; + long unsigned int mod_start; + long unsigned int mod_len; + int8_t cmd_line[1024]; + long unsigned int first_p2m_pfn; + long unsigned int nr_p2m_frames; +}; + +struct stashed_operations { + void (*put_data)(void *); + int (*init_inode)(struct inode *, void *); +}; + +struct stat { + long unsigned int st_dev; + long unsigned int st_ino; + unsigned int st_mode; + unsigned int st_nlink; + unsigned int st_uid; + unsigned int st_gid; + long unsigned int st_rdev; + long unsigned int __pad1; + long int st_size; + int st_blksize; + int __pad2; + long int st_blocks; + long int st_atime; + long unsigned int st_atime_nsec; + long int st_mtime; + long unsigned int st_mtime_nsec; + long int st_ctime; + long unsigned int st_ctime_nsec; + unsigned int __unused4; + unsigned int __unused5; +}; + +struct stat64 { + compat_u64 st_dev; + unsigned char __pad0[4]; + compat_ulong_t __st_ino; + compat_uint_t st_mode; + compat_uint_t st_nlink; + compat_ulong_t st_uid; + compat_ulong_t st_gid; + compat_u64 st_rdev; + unsigned char __pad3[4]; + compat_s64 st_size; + compat_ulong_t st_blksize; + compat_u64 st_blocks; + compat_ulong_t st_atime; + compat_ulong_t st_atime_nsec; + compat_ulong_t st_mtime; + compat_ulong_t st_mtime_nsec; + compat_ulong_t st_ctime; + compat_ulong_t st_ctime_nsec; + compat_u64 st_ino; +}; + +struct stat_node { + struct rb_node node; + void *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 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]; +}; + +struct static_call_key { + void *func; +}; + +struct static_key_deferred { + struct static_key key; + long unsigned int timeout; + struct delayed_work work; +}; + +struct static_key_false_deferred { + struct static_key_false key; + long unsigned int timeout; + struct delayed_work work; +}; + +struct static_key_mod { + struct static_key_mod *next; + struct jump_entry *entries; + struct module *mod; +}; + +struct static_tree_desc_s { + const ct_data *static_tree; + const int *extra_bits; + int extra_base; + int elems; + int max_length; +}; + +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 ethtool_phy_stats phydev_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; + struct ethtool_phy_stats phydev_stats; + } stats; + }; + const struct ethtool_rmon_hist_range *rmon_ranges; +}; + +struct stats_req_info { + struct ethnl_req_info base; + long unsigned int stat_mask[1]; + enum ethtool_mac_stats_src src; +}; + +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 stx_subvol; + __u32 stx_atomic_write_unit_min; + __u32 stx_atomic_write_unit_max; + __u32 stx_atomic_write_segments_max; + __u32 stx_dio_read_offset_align; + __u64 __spare3[9]; +}; + +struct step_hook { + struct list_head node; + int (*fn)(struct pt_regs *, long unsigned int); +}; + +struct stereo_mandatory_mode { + int width; + int height; + int vrefresh; + unsigned int flags; +}; + +struct stm32_desc_function { + const char *name; + const unsigned char num; +}; + +struct stm32_desc_pin { + struct pinctrl_pin_desc pin; + const struct stm32_desc_function functions[18]; + const unsigned int pkg; +}; + +struct stm32_div_cfg { + u16 offset; + u8 shift; + u8 width; + u8 flags; + u8 ready; + const struct clk_div_table *table; +}; + +struct stm32_dma_cfg { + u32 channel_id; + u32 request_line; + u32 stream_config; + u32 features; +}; + +struct stm32_dma_chan_reg { + u32 dma_lisr; + u32 dma_hisr; + u32 dma_lifcr; + u32 dma_hifcr; + u32 dma_scr; + u32 dma_sndtr; + u32 dma_spar; + u32 dma_sm0ar; + u32 dma_sm1ar; + u32 dma_sfcr; +}; + +struct stm32_dma_mdma_config { + u32 stream_id; + u32 ifcr; + u32 tcf; +}; + +struct stm32_dma_desc; + +struct stm32_dma_chan { + struct virt_dma_chan vchan; + bool config_init; + bool busy; + u32 id; + u32 irq; + struct stm32_dma_desc *desc; + u32 next_sg; + struct dma_slave_config dma_sconfig; + struct stm32_dma_chan_reg chan_reg; + u32 threshold; + u32 mem_burst; + u32 mem_width; + enum dma_status status; + bool trig_mdma; + struct stm32_dma_mdma_config mdma_config; +}; + +struct stm32_dma_sg_req { + u32 len; + struct stm32_dma_chan_reg chan_reg; +}; + +struct stm32_dma_desc { + struct virt_dma_desc vdesc; + bool cyclic; + u32 num_sgs; + struct stm32_dma_sg_req sg_req[0]; +}; + +struct stm32_dma_device { + struct dma_device ddev; + void *base; + struct clk *clk; + bool mem2mem; + struct stm32_dma_chan chan[8]; +}; + +struct stm32_dmamux { + u32 master; + u32 request; + u32 chan_id; +}; + +struct stm32_dmamux_data { + struct dma_router dmarouter; + struct clk *clk; + void *iomem; + u32 dma_requests; + u32 dmamux_requests; + spinlock_t lock; + long unsigned int dma_inuse[1]; + u32 ccr[32]; + u32 dma_reqs[0]; +}; + +struct stm32_firewall_controller; + +struct stm32_firewall { + struct stm32_firewall_controller *firewall_ctrl; + u32 extra_args[5]; + const char *entry; + size_t extra_args_size; + u32 firewall_id; +}; + +struct stm32_firewall_controller { + const char *name; + struct device *dev; + void *mmio; + struct list_head entry; + unsigned int type; + unsigned int max_entries; + int (*grant_access)(struct stm32_firewall_controller *, u32); + void (*release_access)(struct stm32_firewall_controller *, u32); + int (*grant_memory_range_access)(struct stm32_firewall_controller *, phys_addr_t, size_t); +}; + +struct stm32_gate_cfg { + u16 offset; + u8 bit_idx; + u8 set_clr; +}; + +struct stm32_gpio_bank { + void *base; + struct reset_control *rstc; + spinlock_t lock; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range range; + struct fwnode_handle *fwnode; + struct irq_domain *domain; + u32 bank_nr; + u32 bank_ioport_nr; + u32 pin_backup[16]; + u8 irq_type[16]; + bool secure_control; +}; + +struct stm32_lp_private { + struct regmap *reg; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct clock_event_device clkevt; + long unsigned int period; + struct device *dev; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct stm32_lptimer { + struct clk *clk; + struct regmap *regmap; + bool has_encoder; +}; + +struct stm32_mdma_chan_config { + u32 request; + u32 priority_level; + u32 transfer_config; + u32 mask_addr; + u32 mask_data; + bool m2m_hw; +}; + +struct stm32_mdma_desc; + +struct stm32_mdma_chan { + struct virt_dma_chan vchan; + struct dma_pool *desc_pool; + u32 id; + struct stm32_mdma_desc *desc; + u32 curr_hwdesc; + struct dma_slave_config dma_config; + struct stm32_mdma_chan_config chan_config; + bool busy; + u32 mem_burst; + u32 mem_width; +}; + +struct stm32_mdma_hwdesc; + +struct stm32_mdma_desc_node { + struct stm32_mdma_hwdesc *hwdesc; + dma_addr_t hwdesc_phys; +}; + +struct stm32_mdma_desc { + struct virt_dma_desc vdesc; + u32 ccr; + bool cyclic; + u32 count; + struct stm32_mdma_desc_node node[0]; +}; + +struct stm32_mdma_device { + struct dma_device ddev; + void *base; + struct clk *clk; + int irq; + u32 nr_channels; + u32 nr_requests; + u32 nr_ahb_addr_masks; + u32 chan_reserved; + struct stm32_mdma_chan chan[32]; + u32 ahb_addr_masks[0]; +}; + +struct stm32_mdma_dma_config { + u32 request; + u32 cmar; + u32 cmdr; +}; + +struct stm32_mdma_hwdesc { + u32 ctcr; + u32 cbndtr; + u32 csar; + u32 cdar; + u32 cbrur; + u32 clar; + u32 ctbr; + u32 dummy; + u32 cmar; + u32 cmdr; + long: 64; + long: 64; + long: 64; +}; + +struct stm32_mux_cfg { + u16 offset; + u8 shift; + u8 width; + u8 flags; + u32 *table; + u8 ready; +}; + +struct stm32_pinctrl_group; + +struct stm32_pinctrl_match_data; + +struct stm32_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl_dev; + struct pinctrl_desc pctl_desc; + struct stm32_pinctrl_group *groups; + unsigned int ngroups; + const char **grp_names; + struct stm32_gpio_bank *banks; + struct clk_bulk_data *clks; + unsigned int nbanks; + const struct stm32_pinctrl_match_data *match_data; + struct irq_domain *domain; + struct regmap *regmap; + struct regmap_field *irqmux[16]; + struct hwspinlock *hwlock; + struct stm32_desc_pin *pins; + u32 npins; + u32 pkg; + u16 irqmux_map; + spinlock_t irqmux_lock; +}; + +struct stm32_pinctrl_group { + const char *name; + long unsigned int config; + unsigned int pin; +}; + +struct stm32_pinctrl_match_data { + const struct stm32_desc_pin *pins; + const unsigned int npins; + bool secure_control; +}; + +struct stm32_pwr_reg { + void *base; + u32 ready_mask; +}; + +struct stm32_rcc_match_data { + struct clk_hw_onecell_data *hw_clks; + unsigned int num_clocks; + const struct clock_config *tab_clocks; + unsigned int maxbinding; + struct clk_stm32_clock_data *clock_data; + struct clk_stm32_reset_data *reset_data; + int (*check_security)(struct device_node *, void *, const struct clock_config *); + int (*multi_mux)(void *, const struct clock_config *); +}; + +struct stm32_reset_cfg { + u16 offset; + u8 bit_idx; + bool set_clr; +}; + +struct stm32_reset_data { + spinlock_t lock; + struct reset_controller_dev rcdev; + void *membase; + u32 clear_offset; + const struct stm32_reset_cfg **reset_lines; +}; + +struct stmpe_client_info; + +struct stmpe_variant_info; + +struct stmpe_platform_data; + +struct stmpe { + struct regulator *vcc; + struct regulator *vio; + struct mutex lock; + struct mutex irq_lock; + struct device *dev; + struct irq_domain *domain; + void *client; + struct stmpe_client_info *ci; + enum stmpe_partnum partnum; + struct stmpe_variant_info *variant; + const u8 *regs; + int irq; + int num_gpios; + u8 ier[2]; + u8 oldier[2]; + struct stmpe_platform_data *pdata; + u8 sample_time; + u8 mod_12b; + u8 ref_sel; + u8 adc_freq; +}; + +struct stmpe_client_info { + void *data; + int irq; + void *client; + struct device *dev; + int (*read_byte)(struct stmpe *, u8); + int (*write_byte)(struct stmpe *, u8, u8); + int (*read_block)(struct stmpe *, u8, u8, u8 *); + int (*write_block)(struct stmpe *, u8, u8, const u8 *); + void (*init)(struct stmpe *); +}; + +struct stmpe_gpio { + struct gpio_chip chip; + struct stmpe *stmpe; + struct mutex irq_lock; + u32 norequest_mask; + u8 regs[9]; + u8 oldregs[9]; +}; + +struct stmpe_platform_data { + int id; + unsigned int blocks; + unsigned int irq_trigger; + bool autosleep; + int autosleep_timeout; +}; + +struct stmpe_pwm { + struct stmpe *stmpe; + u8 last_duty; +}; + +struct stmpe_variant_block { + const struct mfd_cell *cell; + int irq; + enum stmpe_block block; +}; + +struct stmpe_variant_info { + const char *name; + u16 id_val; + u16 id_mask; + int num_gpios; + int af_bits; + const u8 *regs; + struct stmpe_variant_block *blocks; + int num_blocks; + int num_irqs; + int (*enable)(struct stmpe *, unsigned int, bool); + int (*get_altfunc)(struct stmpe *, enum stmpe_block); + int (*enable_autosleep)(struct stmpe *, int); +}; + +struct stop_event_data { + struct perf_event *event; + unsigned int restart; +}; + +struct stored_match_addr { + union { + struct sockaddr addr; + struct sockaddr_in addr4; + struct sockaddr_in6 addr6; + }; + int addrlen; + struct match_addr maddr; +}; + +struct strarray { + char **array; + size_t n; +}; + +struct stratix10_clock_data { + void *base; + struct clk_hw_onecell_data clk_data; +}; + +struct stratix10_gate_clock { + unsigned int id; + const char *name; + const char *parent_name; + const struct clk_parent_data *parent_data; + u8 num_parents; + long unsigned int flags; + long unsigned int gate_reg; + u8 gate_idx; + long unsigned int div_reg; + u8 div_offset; + u8 div_width; + long unsigned int bypass_reg; + u8 bypass_shift; + u8 fixed_div; +}; + +struct stratix10_perip_c_clock { + unsigned int id; + const char *name; + const char *parent_name; + const struct clk_parent_data *parent_data; + u8 num_parents; + long unsigned int flags; + long unsigned int offset; +}; + +struct stratix10_perip_cnt_clock { + unsigned int id; + const char *name; + const char *parent_name; + const struct clk_parent_data *parent_data; + u8 num_parents; + long unsigned int flags; + long unsigned int offset; + u8 fixed_divider; + long unsigned int bypass_reg; + long unsigned int bypass_shift; +}; + +struct stratix10_pll_clock { + unsigned int id; + const char *name; + const struct clk_parent_data *parent_data; + u8 num_parents; + long unsigned int flags; + long unsigned int offset; +}; + +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 strset_info { + bool per_dev; + bool free_strings; + unsigned int count; + const char (*strings)[32]; +}; + +struct strset_reply_data { + struct ethnl_reply_data base; + struct strset_info sets[23]; +}; + +struct strset_req_info { + struct ethnl_req_info base; + u32 req_ids; + bool counts_only; +}; + +struct subflow_send_info { + struct sock *ssk; + u64 linger_time; +}; + +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 subsys_dev_iter { + struct klist_iter ki; + const struct device_type *type; +}; + +struct subsys_interface { + const char *name; + const struct bus_type *subsys; + struct list_head node; + int (*add_dev)(struct device *, struct subsys_interface *); + void (*remove_dev)(struct device *, struct subsys_interface *); +}; + +struct subsys_private { + struct kset subsys; + struct kset *devices_kset; + struct list_head interfaces; + struct mutex mutex; + struct kset *drivers_kset; + struct klist klist_devices; + struct klist klist_drivers; + struct blocking_notifier_head bus_notifier; + unsigned int drivers_autoprobe: 1; + const struct bus_type *bus; + struct device *dev_root; + struct kset glue_dirs; + const struct class *class; + struct lock_class_key lock_key; +}; + +struct 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; + long unsigned int util; + long unsigned int bw_min; + long unsigned int saved_idle_calls; +}; + +struct sugov_tunables; + +struct sugov_policy { + struct cpufreq_policy *policy; + struct sugov_tunables *tunables; + struct list_head tunables_hook; + raw_spinlock_t update_lock; + u64 last_freq_update_time; + s64 freq_update_delay_ns; + unsigned int next_freq; + unsigned int cached_raw_freq; + struct irq_work irq_work; + struct kthread_work work; + struct mutex work_lock; + struct kthread_worker worker; + struct task_struct *thread; + bool work_in_progress; + bool limits_changed; + bool need_freq_update; +}; + +struct sugov_tunables { + struct gov_attr_set attr_set; + unsigned int rate_limit_us; +}; + +struct summary_data { + struct seq_file *s; + struct regulator_dev *parent; + int level; +}; + +struct summary_lock_data { + struct ww_acquire_ctx *ww_ctx; + struct regulator_dev **new_contended_rdev; + struct regulator_dev **old_contended_rdev; +}; + +struct sun20i_ppu_desc { + const char * const *names; + unsigned int num_domains; +}; + +struct sun20i_ppu_pd { + struct generic_pm_domain genpd; + void *base; +}; + +struct sun50i_iommu { + struct iommu_device iommu; + spinlock_t iommu_lock; + struct device *dev; + void *base; + struct reset_control *reset; + struct clk *clk; + struct iommu_domain *domain; + struct kmem_cache *pt_pool; +}; + +struct sun50i_iommu_domain { + struct iommu_domain domain; + refcount_t refcnt; + u32 *dt; + dma_addr_t dt_dma; + struct sun50i_iommu *iommu; +}; + +struct sun6i_msgbox { + struct mbox_controller controller; + struct clk *clk; + spinlock_t lock; + void *regs; +}; + +struct sun6i_r_intc_variant { + u32 first_mux_irq; + u32 nr_mux_irqs; + u32 mux_valid[4]; +}; + +struct sun6i_rtc_clk_data { + long unsigned int rc_osc_rate; + unsigned int fixed_prescaler: 16; + unsigned int has_prescaler: 1; + unsigned int has_out_clk: 1; + unsigned int has_losc_en: 1; + unsigned int has_auto_swt: 1; +}; + +struct sun6i_rtc_dev { + struct rtc_device *rtc; + const struct sun6i_rtc_clk_data *data; + void *base; + int irq; + time64_t alarm; + long unsigned int flags; + struct clk_hw hw; + struct clk_hw *int_osc; + struct clk *losc; + struct clk *ext_losc; + spinlock_t lock; +}; + +struct sun_info { + __be16 id; + __be16 flags; +}; + +struct sun_vtoc { + __be32 version; + char volume[8]; + __be16 nparts; + struct sun_info infos[8]; + __be16 padding; + __be32 bootinfo[3]; + __be32 sanity; + __be32 reserved[10]; + __be32 timestamp[8]; +}; + +struct sun_partition { + __be32 start_cylinder; + __be32 num_sectors; +}; + +struct sun_disklabel { + unsigned char info[128]; + struct sun_vtoc vtoc; + __be32 write_reinstruct; + __be32 read_reinstruct; + unsigned char spare[148]; + __be16 rspeed; + __be16 pcylcount; + __be16 sparecyl; + __be16 obs1; + __be16 obs2; + __be16 ilfact; + __be16 ncyl; + __be16 nacyl; + __be16 ntrks; + __be16 nsect; + __be16 obs3; + __be16 obs4; + struct sun_partition partitions[8]; + __be16 magic; + __be16 csum; +}; + +struct sunxi_ccu_desc; + +struct sunxi_ccu { + const struct sunxi_ccu_desc *desc; + spinlock_t lock; + struct ccu_reset reset; +}; + +struct sunxi_ccu_desc { + struct ccu_common **ccu_clks; + long unsigned int num_ccu_clks; + struct clk_hw_onecell_data *hw_clks; + const struct ccu_reset_map *resets; + long unsigned int num_resets; +}; + +struct sunxi_desc_function { + long unsigned int variant; + const char *name; + u8 muxval; + u8 irqbank; + u8 irqnum; +}; + +struct sunxi_desc_pin { + struct pinctrl_pin_desc pin; + long unsigned int variant; + struct sunxi_desc_function *functions; +}; + +struct sunxi_pinctrl_regulator { + struct regulator *regulator; + refcount_t refcount; +}; + +struct sunxi_pinctrl_desc; + +struct sunxi_pinctrl_function; + +struct sunxi_pinctrl_group; + +struct sunxi_pinctrl { + void *membase; + struct gpio_chip *chip; + const struct sunxi_pinctrl_desc *desc; + struct device *dev; + struct sunxi_pinctrl_regulator regulators[9]; + struct irq_domain *domain; + struct sunxi_pinctrl_function *functions; + unsigned int nfunctions; + struct sunxi_pinctrl_group *groups; + unsigned int ngroups; + int *irq; + unsigned int *irq_array; + raw_spinlock_t lock; + struct pinctrl_dev *pctl_dev; + long unsigned int variant; + u32 bank_mem_size; + u32 pull_regs_offset; + u32 dlevel_field_width; +}; + +struct sunxi_pinctrl_desc { + const struct sunxi_desc_pin *pins; + int npins; + unsigned int pin_base; + unsigned int irq_banks; + const unsigned int *irq_bank_map; + bool irq_read_needs_mux; + bool disable_strict_mode; + enum sunxi_desc_bias_voltage io_bias_cfg_variant; +}; + +struct sunxi_pinctrl_function { + const char *name; + const char **groups; + unsigned int ngroups; +}; + +struct sunxi_pinctrl_group { + const char *name; + unsigned int pin; +}; + +struct sunxi_sc_nmi_reg_offs { + u32 ctrl; + u32 pend; + u32 enable; +}; + +struct sunxi_sram_func; + +struct sunxi_sram_data { + char *name; + u8 reg; + u8 offset; + u8 width; + struct sunxi_sram_func *func; +}; + +struct sunxi_sram_desc { + struct sunxi_sram_data data; + bool claimed; +}; + +struct sunxi_sram_func { + char *func; + u8 val; + u32 reg_val; +}; + +struct sunxi_sramc_variant { + int num_emac_clocks; + bool has_ldo_ctrl; + bool has_ths_offset; +}; + +struct mtd_info; + +struct super_block { + struct list_head s_list; + dev_t s_dev; + unsigned char s_blocksize_bits; + long unsigned int 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; + long unsigned int s_flags; + long unsigned int s_iflags; + long unsigned int 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 * const *s_xattr; + const struct fscrypt_operations *s_cop; + struct fscrypt_keyring *s_master_keys; + const struct fsverity_operations *s_vop; + struct unicode_map *s_encoding; + __u16 s_encoding_flags; + struct hlist_bl_head s_roots; + struct list_head s_mounts; + struct block_device *s_bdev; + struct file *s_bdev_file; + 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_sb_info *s_fsnotify_info; + char s_id[32]; + uuid_t s_uuid; + u8 s_uuid_len; + char s_sysfs_name[37]; + unsigned int s_max_links; + struct mutex s_vfs_rename_mutex; + const char *s_subtype; + const struct dentry_operations *s_d_op; + struct shrinker *s_shrink; + atomic_long_t s_remove_count; + 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: 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 super_operations { + struct inode * (*alloc_inode)(struct super_block *); + void (*destroy_inode)(struct inode *); + void (*free_inode)(struct inode *); + void (*dirty_inode)(struct inode *, int); + int (*write_inode)(struct inode *, struct writeback_control *); + int (*drop_inode)(struct inode *); + void (*evict_inode)(struct inode *); + void (*put_super)(struct super_block *); + int (*sync_fs)(struct super_block *, int); + int (*freeze_super)(struct super_block *, enum freeze_holder); + int (*freeze_fs)(struct super_block *); + int (*thaw_super)(struct super_block *, enum freeze_holder); + int (*unfreeze_fs)(struct super_block *); + int (*statfs)(struct dentry *, struct kstatfs *); + int (*remount_fs)(struct super_block *, int *, char *); + void (*umount_begin)(struct super_block *); + int (*show_options)(struct seq_file *, struct dentry *); + int (*show_devname)(struct seq_file *, struct dentry *); + int (*show_path)(struct seq_file *, struct dentry *); + int (*show_stats)(struct seq_file *, struct dentry *); + ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); + ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); + struct dquot ** (*get_dquots)(struct inode *); + long int (*nr_cached_objects)(struct super_block *, struct shrink_control *); + long int (*free_cached_objects)(struct super_block *, struct shrink_control *); + void (*shutdown)(struct super_block *); +}; + +struct super_type { + char *name; + struct module *owner; + int (*load_super)(struct md_rdev *, struct md_rdev *, int); + int (*validate_super)(struct mddev *, struct md_rdev *, struct md_rdev *); + void (*sync_super)(struct mddev *, struct md_rdev *); + long long unsigned int (*rdev_size_change)(struct md_rdev *, sector_t); + int (*allow_new_offset)(struct md_rdev *, long long unsigned int); +}; + +struct superblock_security_struct { + u32 sid; + u32 def_sid; + u32 mntpoint_sid; + short unsigned int behavior; + short unsigned int flags; + struct mutex lock; + struct list_head isec_head; + spinlock_t isec_lock; +}; + +struct superblock_smack { + struct smack_known *smk_root; + struct smack_known *smk_floor; + struct smack_known *smk_hat; + struct smack_known *smk_default; + int smk_flags; +}; + +struct supplier_bindings { + struct device_node * (*parse_prop)(struct device_node *, const char *, int); + struct device_node * (*get_con_dev)(struct device_node *); + bool optional; + u8 fwlink_flags; +}; + +struct suspend_performance_record { + struct fpdt_record_header header; + u64 suspend_start; + u64 suspend_end; +} __attribute__((packed)); + +struct suspend_stats { + unsigned int step_failures[8]; + unsigned int success; + unsigned int fail; + int last_failed_dev; + char failed_devs[80]; + int last_failed_errno; + int errno[2]; + int last_failed_step; + u64 last_hw_sleep; + u64 total_hw_sleep; + u64 max_hw_sleep; + enum suspend_stat_step failed_steps[2]; +}; + +struct 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 svc_deferred_req { + u32 prot; + struct svc_xprt *xprt; + struct __kernel_sockaddr_storage addr; + size_t addrlen; + struct __kernel_sockaddr_storage daddr; + size_t daddrlen; + void *xprt_ctxt; + struct cache_deferred_req handle; + int argslen; + __be32 args[0]; +}; + +struct svc_pool { + unsigned int sp_id; + struct lwq sp_xprts; + unsigned int sp_nrthreads; + struct list_head sp_all_threads; + struct llist_head sp_idle_threads; + struct percpu_counter sp_messages_arrived; + struct percpu_counter sp_sockets_queued; + struct percpu_counter sp_threads_woken; + long unsigned int sp_flags; +}; + +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_process_info { + union { + int (*dispatch)(struct svc_rqst *); + struct { + unsigned int lovers; + unsigned int hivers; + } mismatch; + }; +}; + +struct svc_version; + +struct svc_program { + 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; + enum svc_auth_status (*pg_authenticate)(struct svc_rqst *); + __be32 (*pg_init_request)(struct svc_rqst *, const struct svc_program *, struct svc_process_info *); + int (*pg_rpcbind_set)(struct net *, const struct svc_program *, u32, int, short unsigned int, short unsigned int); +}; + +struct xdr_stream { + __be32 *p; + struct xdr_buf *buf; + __be32 *end; + struct kvec *iov; + struct kvec scratch; + struct page **page_ptr; + void *page_kaddr; + unsigned int nwords; + struct rpc_rqst *rqst; +}; + +struct svc_rqst { + struct list_head rq_all; + struct llist_node rq_idle; + struct callback_head rq_rcu_head; + struct svc_xprt *rq_xprt; + struct __kernel_sockaddr_storage rq_addr; + size_t rq_addrlen; + struct __kernel_sockaddr_storage rq_daddr; + size_t rq_daddrlen; + struct svc_serv *rq_server; + struct svc_pool *rq_pool; + const struct svc_procedure *rq_procinfo; + struct auth_ops *rq_authop; + struct svc_cred rq_cred; + void *rq_xprt_ctxt; + struct svc_deferred_req *rq_deferred; + struct xdr_buf rq_arg; + struct xdr_stream rq_arg_stream; + struct xdr_stream rq_res_stream; + struct page *rq_scratch_page; + struct xdr_buf rq_res; + struct page *rq_pages[260]; + struct page **rq_respages; + struct page **rq_next_page; + struct page **rq_page_end; + struct folio_batch rq_fbatch; + struct kvec rq_vec[259]; + struct bio_vec rq_bvec[259]; + __be32 rq_xid; + u32 rq_prog; + u32 rq_vers; + u32 rq_proc; + u32 rq_prot; + int rq_cachetype; + long unsigned int rq_flags; + ktime_t rq_qtime; + void *rq_argp; + void *rq_resp; + __be32 *rq_accept_statp; + void *rq_auth_data; + __be32 rq_auth_stat; + int rq_auth_slack; + int rq_reserved; + ktime_t rq_stime; + struct cache_req rq_chandle; + struct auth_domain *rq_client; + struct auth_domain *rq_gssclient; + struct task_struct *rq_task; + struct net *rq_bc_net; + int rq_err; + long unsigned int bc_to_initval; + unsigned int bc_to_retries; + void **rq_lease_breaker; + unsigned int rq_status_counter; +}; + +struct svc_stat; + +struct svc_serv { + struct svc_program *sv_programs; + struct svc_stat *sv_stats; + spinlock_t sv_lock; + unsigned int sv_nprogs; + unsigned int sv_nrthreads; + 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; + bool sv_is_pooled; + struct svc_pool *sv_pools; + int (*sv_threadfn)(void *); + struct lwq sv_cb_list; + bool sv_bc_enabled; +}; + +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_version { + u32 vs_vers; + u32 vs_nproc; + const struct svc_procedure *vs_proc; + long unsigned int *vs_count; + u32 vs_xdrsize; + bool vs_hidden; + bool vs_rpcb_optnl; + bool vs_need_cong_ctrl; + int (*vs_dispatch)(struct svc_rqst *); +}; + +struct sve_context { + struct _aarch64_ctx head; + __u16 vl; + __u16 flags; + __u16 __reserved[2]; +}; + +struct sve_state_reg_region { + unsigned int koffset; + unsigned int klen; + unsigned int upad; +}; + +struct sw_sync_create_fence_data { + __u32 value; + char name[32]; + __s32 fence; +}; + +struct sw_sync_get_deadline { + __u64 deadline_ns; + __u32 pad; + __s32 fence_fd; +}; + +struct swait_queue { + struct task_struct *task; + struct list_head task_list; +}; + +struct swap_cgroup { + atomic_t ids; +}; + +struct swap_cgroup_ctrl { + struct swap_cgroup *map; +}; + +struct swap_cluster_info { + spinlock_t lock; + u16 count; + u8 flags; + u8 order; + struct list_head list; +}; + +struct swap_extent { + struct rb_node rb_node; + long unsigned int start_page; + long unsigned int 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 swap_info_struct { + struct percpu_ref users; + long unsigned int flags; + short int prio; + struct plist_node list; + signed char type; + unsigned int max; + unsigned char *swap_map; + long unsigned int *zeromap; + struct swap_cluster_info *cluster_info; + struct list_head free_clusters; + struct list_head full_clusters; + struct list_head nonfull_clusters[10]; + struct list_head frag_clusters[10]; + atomic_long_t frag_cluster_nr[10]; + unsigned int pages; + atomic_long_t inuse_pages; + struct percpu_cluster *percpu_cluster; + struct percpu_cluster *global_cluster; + spinlock_t global_cluster_lock; + struct rb_root swap_extent_root; + struct block_device *bdev; + struct file *swap_file; + struct completion comp; + spinlock_t lock; + spinlock_t cont_lock; + struct work_struct discard_work; + struct work_struct reclaim_work; + struct list_head discard_clusters; + struct plist_node avail_lists[0]; +}; + +struct swap_iocb { + struct kiocb iocb; + struct bio_vec bvec[32]; + int pages; + int len; +}; + +struct swap_slots_cache { + bool lock_initialized; + struct mutex alloc_lock; + swp_entry_t *slots; + int nr; + int cur; + int n_ret; +}; + +struct swevent_hlist { + struct hlist_head heads[256]; + struct callback_head callback_head; +}; + +struct swevent_htable { + struct swevent_hlist *swevent_hlist; + struct mutex hlist_mutex; + int hlist_refcount; +}; + +struct switchdev_mst_state { + u16 msti; + u8 state; +}; + +struct switchdev_brport_flags { + long unsigned int val; + long unsigned int mask; +}; + +struct switchdev_vlan_msti { + u16 vid; + u16 msti; +}; + +struct switchdev_attr { + struct net_device *orig_dev; + enum switchdev_attr_id id; + u32 flags; + void *complete_priv; + void (*complete)(struct net_device *, int, void *); + union { + u8 stp_state; + struct switchdev_mst_state mst_state; + struct switchdev_brport_flags brport_flags; + bool mrouter; + clock_t ageing_time; + bool vlan_filtering; + u16 vlan_protocol; + bool mst; + bool mc_disabled; + u8 mrp_port_role; + struct switchdev_vlan_msti vlan_msti; + } u; +}; + +struct switchdev_brport { + struct net_device *dev; + const void *ctx; + struct notifier_block *atomic_nb; + struct notifier_block *blocking_nb; + bool tx_fwd_offload; +}; + +typedef void switchdev_deferred_func_t(struct net_device *, const void *); + +struct switchdev_deferred_item { + struct list_head list; + struct net_device *dev; + netdevice_tracker dev_tracker; + switchdev_deferred_func_t *func; + long unsigned int data[0]; +}; + +struct switchdev_nested_priv { + bool (*check_cb)(const struct net_device *); + bool (*foreign_dev_check_cb)(const struct net_device *, const struct net_device *); + const struct net_device *dev; + struct net_device *lower_dev; +}; + +struct switchdev_notifier_info { + struct net_device *dev; + struct netlink_ext_ack *extack; + const void *ctx; +}; + +struct switchdev_notifier_brport_info { + struct switchdev_notifier_info info; + const struct switchdev_brport brport; +}; + +struct switchdev_notifier_fdb_info { + struct switchdev_notifier_info info; + const unsigned char *addr; + u16 vid; + u8 added_by_user: 1; + u8 is_local: 1; + u8 locked: 1; + u8 offloaded: 1; +}; + +struct switchdev_notifier_port_attr_info { + struct switchdev_notifier_info info; + const struct switchdev_attr *attr; + bool handled; +}; + +struct switchdev_obj; + +struct switchdev_notifier_port_obj_info { + struct switchdev_notifier_info info; + const struct switchdev_obj *obj; + bool handled; +}; + +struct switchdev_obj { + struct list_head list; + struct net_device *orig_dev; + enum switchdev_obj_id id; + u32 flags; + void *complete_priv; + void (*complete)(struct net_device *, int, void *); +}; + +struct switchdev_obj_mrp { + struct switchdev_obj obj; + struct net_device *p_port; + struct net_device *s_port; + u32 ring_id; + u16 prio; +}; + +struct switchdev_obj_port_mdb { + struct switchdev_obj obj; + unsigned char addr[6]; + u16 vid; +}; + +struct switchdev_obj_port_vlan { + struct switchdev_obj obj; + u16 flags; + u16 vid; + bool changed; +}; + +struct switchdev_obj_ring_role_mrp { + struct switchdev_obj obj; + u8 ring_role; + u32 ring_id; + u8 sw_backup; +}; + +struct swmii_regs { + u16 bmsr; + u16 lpa; + u16 lpagb; + u16 estat; +}; + +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 sx150x_123_pri { + u8 reg_pld_mode; + u8 reg_pld_table0; + u8 reg_pld_table1; + u8 reg_pld_table2; + u8 reg_pld_table3; + u8 reg_pld_table4; + u8 reg_advanced; +}; + +struct sx150x_456_pri { + u8 reg_pld_mode; + u8 reg_pld_table0; + u8 reg_pld_table1; + u8 reg_pld_table2; + u8 reg_pld_table3; + u8 reg_pld_table4; + u8 reg_advanced; +}; + +struct sx150x_789_pri { + u8 reg_drain; + u8 reg_polarity; + u8 reg_clock; + u8 reg_misc; + u8 reg_reset; + u8 ngpios; +}; + +struct sx150x_device_data { + u8 model; + u8 reg_pullup; + u8 reg_pulldn; + u8 reg_dir; + u8 reg_data; + u8 reg_irq_mask; + u8 reg_irq_src; + u8 reg_sense; + u8 ngpios; + union { + struct sx150x_123_pri x123; + struct sx150x_456_pri x456; + struct sx150x_789_pri x789; + } pri; + const struct pinctrl_pin_desc *pins; + unsigned int npins; +}; + +struct sx150x_pinctrl { + struct device *dev; + struct i2c_client *client; + struct pinctrl_dev *pctldev; + struct pinctrl_desc pinctrl_desc; + struct gpio_chip gpio; + struct regmap *regmap; + struct { + u32 sense; + u32 masked; + } irq; + struct mutex lock; + const struct sx150x_device_data *data; +}; + +struct sym_actscr { + u32 start; + u32 restart; +}; + +struct sym_ccbh { + struct sym_actscr go; + u32 savep; + u32 lastp; + u8 status[4]; +}; + +struct sym_tblmove { + u32 size; + u32 addr; +}; + +struct sym_pmc { + struct sym_tblmove sg; + u32 ret; +}; + +struct sym_tblsel { + u_char sel_scntl4; + u_char sel_sxfer; + u_char sel_id; + u_char sel_scntl3; +}; + +struct sym_dsb { + struct sym_ccbh head; + struct sym_pmc pm0; + struct sym_pmc pm1; + struct sym_tblsel select; + struct sym_tblmove smsg; + struct sym_tblmove smsg_ext; + struct sym_tblmove cmd; + struct sym_tblmove sense; + struct sym_tblmove wresid; + struct sym_tblmove data[96]; +}; + +struct sym_quehead { + struct sym_quehead *flink; + struct sym_quehead *blink; +}; + +typedef struct sym_quehead SYM_QUEHEAD; + +struct sym_ccb { + struct sym_dsb phys; + struct scsi_cmnd *cmd; + u8 cdb_buf[16]; + u8 sns_bbuf[32]; + int data_len; + int segments; + u8 order; + unsigned char odd_byte_adjustment; + u_char nego_status; + u_char xerr_status; + u32 extra_bytes; + u_char scsi_smsg[12]; + u_char scsi_smsg2[12]; + u_char sensecmd[6]; + u_char sv_scsi_status; + u_char sv_xerr_status; + int sv_resid; + u32 ccb_ba; + u_short tag; + u_char target; + u_char lun; + struct sym_ccb *link_ccbh; + SYM_QUEHEAD link_ccbq; + u32 startp; + u32 goalp; + int ext_sg; + int ext_ofs; + u_char to_abort; + u_char tags_si; +}; + +struct sym_chip { + u_short device_id; + u_short revision_id; + char *name; + u_char burst_max; + u_char offset_max; + u_char nr_divisor; + u_char lp_probe_bit; + u_int features; +}; + +struct sym_count_ctx { + unsigned int count; + const char *name; +}; + +struct sym_hcb; + +struct sym_data { + struct sym_hcb *ncb; + struct completion *io_reset; + struct pci_dev *pdev; +}; + +struct sym_nvram; + +struct sym_device { + struct pci_dev *pdev; + long unsigned int mmio_base; + long unsigned int ram_base; + struct { + void *ioaddr; + void *ramaddr; + } s; + struct sym_chip chip; + struct sym_nvram *nvram; + u_char host_id; +}; + +struct sym_driver_setup { + u_short max_tag; + u_char burst_order; + u_char scsi_led; + u_char scsi_diff; + u_char irq_mode; + u_char scsi_bus_check; + u_char host_id; + u_char verbose; + u_char settle_delay; + u_char use_nvram; + u_long excludes[8]; +}; + +struct sym_fwa_ofs; + +struct sym_fwb_ofs; + +struct sym_fwz_ofs; + +struct sym_fw { + char *name; + u32 *a_base; + int a_size; + struct sym_fwa_ofs *a_ofs; + u32 *b_base; + int b_size; + struct sym_fwb_ofs *b_ofs; + u32 *z_base; + int z_size; + struct sym_fwz_ofs *z_ofs; + void (*setup)(struct sym_hcb *, struct sym_fw *); + void (*patch)(struct Scsi_Host *); +}; + +struct sym_fw1a_scr { + u32 start[11]; + u32 getjob_begin[4]; + u32 _sms_a10[5]; + u32 getjob_end[4]; + u32 _sms_a20[4]; + u32 select[6]; + u32 _sms_a30[5]; + u32 wf_sel_done[2]; + u32 send_ident[2]; + u32 select2[2]; + u32 command[2]; + u32 dispatch[28]; + u32 sel_no_cmd[10]; + u32 init[6]; + u32 clrack[4]; + u32 datai_done[11]; + u32 datai_done_wsr[20]; + u32 datao_done[11]; + u32 datao_done_wss[6]; + u32 datai_phase[5]; + u32 datao_phase[5]; + u32 msg_in[2]; + u32 msg_in2[10]; + u32 status[10]; + u32 complete[6]; + u32 complete2[8]; + u32 _sms_a40[12]; + u32 done[5]; + u32 _sms_a50[5]; + u32 _sms_a60[2]; + u32 done_end[4]; + u32 complete_error[5]; + u32 save_dp[11]; + u32 restore_dp[7]; + u32 disconnect[11]; + u32 disconnect2[5]; + u32 _sms_a65[3]; + u32 idle[2]; + u32 ungetjob[5]; + u32 reselect[2]; + u32 reselected[19]; + u32 _sms_a70[6]; + u32 _sms_a80[4]; + u32 reselected1[25]; + u32 _sms_a90[4]; + u32 resel_lun0[7]; + u32 _sms_a100[4]; + u32 resel_tag[8]; + u32 _sms_a110[13]; + u32 _sms_a120[2]; + u32 resel_go[4]; + u32 _sms_a130[7]; + u32 resel_dsa[2]; + u32 resel_dsa1[4]; + u32 _sms_a140[7]; + u32 resel_no_tag[4]; + u32 _sms_a145[7]; + u32 data_in[192]; + u32 data_in2[4]; + u32 data_out[192]; + u32 data_out2[4]; + u32 pm0_data[12]; + u32 pm0_data_out[6]; + u32 pm0_data_end[7]; + u32 pm_data_end[4]; + u32 _sms_a150[4]; + u32 pm1_data[12]; + u32 pm1_data_out[6]; + u32 pm1_data_end[9]; +}; + +struct sym_fw1b_scr { + u32 no_data[2]; + u32 sel_for_abort[16]; + u32 sel_for_abort_1[2]; + u32 msg_in_etc[12]; + u32 msg_received[5]; + u32 msg_weird_seen[5]; + u32 msg_extended[17]; + u32 _sms_b10[4]; + u32 msg_bad[6]; + u32 msg_weird[4]; + u32 msg_weird1[8]; + u32 wdtr_resp[6]; + u32 send_wdtr[4]; + u32 sdtr_resp[6]; + u32 send_sdtr[4]; + u32 ppr_resp[6]; + u32 send_ppr[4]; + u32 nego_bad_phase[4]; + u32 msg_out[4]; + u32 msg_out_done[4]; + u32 data_ovrun[3]; + u32 data_ovrun1[22]; + u32 data_ovrun2[8]; + u32 abort_resel[16]; + u32 resend_ident[4]; + u32 ident_break[4]; + u32 ident_break_atn[4]; + u32 sdata_in[6]; + u32 resel_bad_lun[4]; + u32 bad_i_t_l[4]; + u32 bad_i_t_l_q[4]; + u32 bad_status[7]; + u32 wsr_ma_helper[4]; + u32 zero[1]; + u32 scratch[1]; + u32 scratch1[1]; + u32 prev_done[1]; + u32 done_pos[1]; + u32 nextjob[1]; + u32 startpos[1]; + u32 targtbl[1]; +}; + +struct sym_fw1z_scr { + u32 snooptest[9]; + u32 snoopend[2]; +}; + +struct sym_fw2a_scr { + u32 start[14]; + u32 getjob_begin[4]; + u32 getjob_end[4]; + u32 select[4]; + u32 wf_sel_done[2]; + u32 sel_done[2]; + u32 send_ident[2]; + u32 select2[2]; + u32 command[2]; + u32 dispatch[28]; + u32 sel_no_cmd[10]; + u32 init[6]; + u32 clrack[4]; + u32 datai_done[10]; + u32 datai_done_wsr[20]; + u32 datao_done[10]; + u32 datao_done_wss[6]; + u32 datai_phase[4]; + u32 datao_phase[6]; + u32 msg_in[2]; + u32 msg_in2[10]; + u32 status[10]; + u32 complete[6]; + u32 complete2[12]; + u32 done[14]; + u32 done_end[2]; + u32 complete_error[4]; + u32 save_dp[12]; + u32 restore_dp[8]; + u32 disconnect[12]; + u32 idle[2]; + u32 ungetjob[4]; + u32 reselect[2]; + u32 reselected[22]; + u32 resel_scntl4[20]; + u32 resel_lun0[6]; + u32 resel_tag[16]; + u32 resel_dsa[2]; + u32 resel_dsa1[4]; + u32 resel_no_tag[6]; + u32 data_in[192]; + u32 data_in2[4]; + u32 data_out[192]; + u32 data_out2[4]; + u32 pm0_data[12]; + u32 pm0_data_out[6]; + u32 pm0_data_end[6]; + u32 pm1_data[12]; + u32 pm1_data_out[6]; + u32 pm1_data_end[6]; +}; + +struct sym_fw2b_scr { + u32 start64[2]; + u32 no_data[2]; + u32 sel_for_abort[16]; + u32 sel_for_abort_1[2]; + u32 msg_in_etc[12]; + u32 msg_received[4]; + u32 msg_weird_seen[4]; + u32 msg_extended[20]; + u32 msg_bad[6]; + u32 msg_weird[4]; + u32 msg_weird1[8]; + u32 wdtr_resp[6]; + u32 send_wdtr[4]; + u32 sdtr_resp[6]; + u32 send_sdtr[4]; + u32 ppr_resp[6]; + u32 send_ppr[4]; + u32 nego_bad_phase[4]; + u32 msg_out[4]; + u32 msg_out_done[4]; + u32 data_ovrun[2]; + u32 data_ovrun1[22]; + u32 data_ovrun2[8]; + u32 abort_resel[16]; + u32 resend_ident[4]; + u32 ident_break[4]; + u32 ident_break_atn[4]; + u32 sdata_in[6]; + u32 resel_bad_lun[4]; + u32 bad_i_t_l[4]; + u32 bad_i_t_l_q[4]; + u32 bad_status[6]; + u32 pm_handle[20]; + u32 pm_handle1[4]; + u32 pm_save[4]; + u32 pm0_save[12]; + u32 pm_save_end[4]; + u32 pm1_save[14]; + u32 pm_wsr_handle[38]; + u32 wsr_ma_helper[4]; + u32 zero[1]; + u32 scratch[1]; + u32 pm0_data_addr[1]; + u32 pm1_data_addr[1]; + u32 done_pos[1]; + u32 startpos[1]; + u32 targtbl[1]; +}; + +struct sym_fw2z_scr { + u32 snooptest[6]; + u32 snoopend[2]; +}; + +struct sym_fwa_ba { + u32 start; + u32 getjob_begin; + u32 getjob_end; + u32 select; + u32 wf_sel_done; + u32 send_ident; + u32 dispatch; + u32 init; + u32 clrack; + u32 complete_error; + u32 done; + u32 done_end; + u32 idle; + u32 ungetjob; + u32 reselect; + u32 resel_tag; + u32 resel_dsa; + u32 resel_no_tag; + u32 data_in; + u32 data_in2; + u32 data_out; + u32 data_out2; + u32 pm0_data; + u32 pm1_data; +}; + +struct sym_fwa_ofs { + u_short start; + u_short getjob_begin; + u_short getjob_end; + u_short select; + u_short wf_sel_done; + u_short send_ident; + u_short dispatch; + u_short init; + u_short clrack; + u_short complete_error; + u_short done; + u_short done_end; + u_short idle; + u_short ungetjob; + u_short reselect; + u_short resel_tag; + u_short resel_dsa; + u_short resel_no_tag; + u_short data_in; + u_short data_in2; + u_short data_out; + u_short data_out2; + u_short pm0_data; + u_short pm1_data; +}; + +struct sym_fwb_ba { + u32 no_data; + u32 sel_for_abort; + u32 sel_for_abort_1; + u32 msg_bad; + u32 msg_weird; + u32 wdtr_resp; + u32 send_wdtr; + u32 sdtr_resp; + u32 send_sdtr; + u32 ppr_resp; + u32 send_ppr; + u32 nego_bad_phase; + u32 ident_break; + u32 ident_break_atn; + u32 sdata_in; + u32 resel_bad_lun; + u32 bad_i_t_l; + u32 bad_i_t_l_q; + u32 wsr_ma_helper; + u32 start64; + u32 pm_handle; +}; + +struct sym_fwb_ofs { + u_short no_data; + u_short sel_for_abort; + u_short sel_for_abort_1; + u_short msg_bad; + u_short msg_weird; + u_short wdtr_resp; + u_short send_wdtr; + u_short sdtr_resp; + u_short send_sdtr; + u_short ppr_resp; + u_short send_ppr; + u_short nego_bad_phase; + u_short ident_break; + u_short ident_break_atn; + u_short sdata_in; + u_short resel_bad_lun; + u_short bad_i_t_l; + u_short bad_i_t_l_q; + u_short wsr_ma_helper; + u_short start64; + u_short pm_handle; +}; + +struct sym_fwz_ba { + u32 snooptest; + u32 snoopend; +}; + +struct sym_fwz_ofs { + u_short snooptest; + u_short snoopend; +}; + +struct sym_tcbh { + u32 luntbl_sa; + u32 lun0_sa; + u_char uval; + u_char sval; + u_char filler1; + u_char wval; +}; + +struct sym_lcbh { + u32 resel_sa; + u32 itl_task_sa; + u32 itlq_tbl_sa; +}; + +struct sym_trans { + u8 period; + u8 offset; + unsigned int width: 1; + unsigned int iu: 1; + unsigned int dt: 1; + unsigned int qas: 1; + unsigned int check_nego: 1; + unsigned int renego: 2; +}; + +struct sym_lcb; + +struct sym_tcb { + struct sym_tcbh head; + u32 *luntbl; + int nlcb; + struct sym_lcb *lun0p; + struct sym_lcb **lunmp; + struct sym_trans tgoal; + struct sym_trans tprint; + struct sym_ccb *nego_cp; + u_char to_reset; + unsigned char usrflags; + unsigned char usr_period; + unsigned char usr_width; + short unsigned int usrtags; + struct scsi_target *starget; +}; + +struct sym_shcb { + int unit; + char inst_name[16]; + char chip_name[8]; + struct Scsi_Host *host; + void *ioaddr; + void *ramaddr; + struct timer_list timer; + u_long lasttime; + u_long settle_time; + u_char settle_time_valid; +}; + +struct sym_hcb { + struct sym_ccbh ccb_head; + struct sym_tcbh tcb_head; + struct sym_lcbh lcb_head; + struct sym_actscr idletask; + struct sym_actscr notask; + struct sym_actscr bad_itl; + struct sym_actscr bad_itlq; + u32 idletask_ba; + u32 notask_ba; + u32 bad_itl_ba; + u32 bad_itlq_ba; + u32 *badluntbl; + u32 badlun_sa; + u32 hcb_ba; + u32 scr_ram_seg; + u_char sv_scntl0; + u_char sv_scntl3; + u_char sv_dmode; + u_char sv_dcntl; + u_char sv_ctest3; + u_char sv_ctest4; + u_char sv_ctest5; + u_char sv_gpcntl; + u_char sv_stest2; + u_char sv_stest4; + u_char sv_scntl4; + u_char sv_stest1; + u_char rv_scntl0; + u_char rv_scntl3; + u_char rv_dmode; + u_char rv_dcntl; + u_char rv_ctest3; + u_char rv_ctest4; + u_char rv_ctest5; + u_char rv_stest2; + u_char rv_ccntl0; + u_char rv_ccntl1; + u_char rv_scntl4; + struct sym_tcb target[16]; + u32 *targtbl; + u32 targtbl_ba; + m_pool_ident_t bus_dmat; + struct sym_shcb s; + u32 mmio_ba; + u32 ram_ba; + u_char *scripta0; + u_char *scriptb0; + u_char *scriptz0; + u32 scripta_ba; + u32 scriptb_ba; + u32 scriptz_ba; + u_short scripta_sz; + u_short scriptb_sz; + u_short scriptz_sz; + struct sym_fwa_ba fwa_bas; + struct sym_fwb_ba fwb_bas; + struct sym_fwz_ba fwz_bas; + void (*fw_setup)(struct sym_hcb *, struct sym_fw *); + void (*fw_patch)(struct Scsi_Host *); + char *fw_name; + u_int features; + u_char myaddr; + u_char maxburst; + u_char maxwide; + u_char minsync; + u_char maxsync; + u_char maxoffs; + u_char minsync_dt; + u_char maxsync_dt; + u_char maxoffs_dt; + u_char multiplier; + u_char clock_divn; + u32 clock_khz; + u32 pciclk_khz; + volatile u32 *squeue; + u32 squeue_ba; + u_short squeueput; + u_short actccbs; + u_short dqueueget; + volatile u32 *dqueue; + u32 dqueue_ba; + u_char msgout[8]; + u_char msgin[8]; + u32 lastmsg; + u32 scratch; + u_char usrflags; + u_char scsi_mode; + u_char verbose; + struct sym_ccb **ccbh; + SYM_QUEHEAD free_ccbq; + SYM_QUEHEAD busy_ccbq; + SYM_QUEHEAD comp_ccbq; + u_char abrt_msg[4]; + struct sym_tblmove abrt_tbl; + struct sym_tblsel abrt_sel; + u_char istat_sem; + u_char use_dac; +}; + +struct sym_slcb { + u_short reqtags; + u_short scdev_depth; +}; + +struct sym_lcb { + struct sym_lcbh head; + u32 *itlq_tbl; + u_short busy_itlq; + u_short busy_itl; + u_short ia_tag; + u_short if_tag; + u_char *cb_tags; + struct sym_slcb s; + u_char tags_si; + u_short tags_sum[2]; + u_short tags_since; + u_char to_clear; + u_char user_flags; + u_char curr_flags; +}; + +struct sym_m_link; + +typedef struct sym_m_link *m_link_p; + +struct sym_m_link { + struct sym_m_link *next; +}; + +struct sym_m_pool; + +typedef struct sym_m_pool *m_pool_p; + +struct sym_m_vtob; + +typedef struct sym_m_vtob *m_vtob_p; + +struct sym_m_pool { + m_pool_ident_t dev_dmat; + void * (*get_mem_cluster)(struct sym_m_pool *); + void (*free_mem_cluster)(struct sym_m_pool *, void *); + int nump; + m_vtob_p vtob[32]; + struct sym_m_pool *next; + struct sym_m_link h[9]; +}; + +struct sym_m_vtob { + struct sym_m_vtob *next; + void *vaddr; + dma_addr_t baddr; +}; + +struct sym_nvram { + int type; + union { + Symbios_nvram Symbios; + Tekram_nvram Tekram; + struct pdc_initiator parisc; + } data; +}; + +struct sym_ucmd { + struct completion *eh_done; +}; + +struct sym_usrcmd { + u_long target; + u_long lun; + u_long data; + u_long cmd; +}; + +struct symsearch { + const struct kernel_symbol *start; + const struct kernel_symbol *stop; + const u32 *crcs; + enum mod_license license; +}; + +struct sync_fence_info { + char obj_name[32]; + char driver_name[32]; + __s32 status; + __u32 flags; + __u64 timestamp_ns; +}; + +struct sync_file { + struct file *file; + char user_name[32]; + struct list_head sync_file_list; + wait_queue_head_t wq; + long unsigned int flags; + struct dma_fence *fence; + struct dma_fence_cb cb; +}; + +struct sync_file_info { + char name[32]; + __s32 status; + __u32 flags; + __u32 num_fences; + __u32 pad; + __u64 sync_fence_info; +}; + +struct sync_io { + long unsigned int error_bits; + struct completion wait; +}; + +struct sync_merge_data { + char name[32]; + __s32 fd2; + __s32 fence; + __u32 flags; + __u32 pad; +}; + +struct sync_pt { + struct dma_fence base; + struct list_head link; + struct rb_node node; + ktime_t deadline; +}; + +struct sync_set_deadline { + __u64 deadline_ns; + __u64 pad; +}; + +struct sync_timeline { + struct kref kref; + char name[32]; + u64 context; + int value; + struct rb_root pt_tree; + struct list_head pt_list; + spinlock_t lock; + struct list_head sync_timeline_list; +}; + +struct syncobj_eventfd_entry { + struct list_head node; + struct dma_fence *fence; + struct dma_fence_cb fence_cb; + struct drm_syncobj *syncobj; + struct eventfd_ctx *ev_fd_ctx; + u64 point; + u32 flags; +}; + +struct syncobj_wait_entry { + struct list_head node; + struct task_struct *task; + struct dma_fence *fence; + struct dma_fence_cb fence_cb; + u64 point; +}; + +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_functions; + +struct trace_event { + struct hlist_node node; + int type; + struct trace_event_functions *funcs; +}; + +struct trace_event_call { + struct list_head list; + struct trace_event_class *class; + union { + const char *name; + struct tracepoint *tp; + }; + struct trace_event event; + char *print_fmt; + union { + void *module; + atomic_t refcnt; + }; + void *data; + int flags; + int perf_refcount; + struct hlist_head *perf_events; + struct bpf_prog_array *prog_array; + int (*perf_perm)(struct trace_event_call *, struct perf_event *); +}; + +struct synth_field; + +struct synth_event { + struct dyn_event devent; + int ref; + char *name; + struct synth_field **fields; + unsigned int n_fields; + struct synth_field **dynamic_fields; + unsigned int n_dynamic_fields; + unsigned int n_u64; + struct trace_event_class class; + struct trace_event_call call; + struct tracepoint *tp; + struct module *mod; +}; + +struct 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 synth_trace_event; + +struct synth_event_trace_state { + struct trace_event_buffer fbuffer; + struct synth_trace_event *entry; + struct trace_buffer *buffer; + struct synth_event *event; + unsigned int cur_field; + unsigned int n_u64; + bool disabled; + bool add_next; + bool add_name; +}; + +struct synth_field { + char *type; + char *name; + size_t size; + unsigned int offset; + unsigned int field_pos; + bool is_signed; + bool is_string; + bool is_dynamic; + bool is_stack; +}; + +struct synth_field_desc { + const char *type; + const char *name; +}; + +struct trace_dynamic_info { + u16 offset; + u16 len; +}; + +union trace_synth_field { + u8 as_u8; + u16 as_u16; + u32 as_u32; + u64 as_u64; + struct trace_dynamic_info as_dynamic; +}; + +struct synth_trace_event { + struct trace_entry ent; + union trace_synth_field fields[0]; +}; + +struct sys64_hook { + long unsigned int esr_mask; + long unsigned int esr_val; + void (*handler)(long unsigned int, struct pt_regs *); +}; + +struct sys_off_data { + int mode; + void *cb_data; + const char *cmd; + struct device *dev; +}; + +struct sys_off_handler { + struct notifier_block nb; + int (*sys_off_cb)(struct sys_off_data *); + void *cb_data; + enum sys_off_mode mode; + bool blocking; + void *list; + struct device *dev; +}; + +struct sys_reg_params; + +struct sys_reg_desc { + const char *name; + enum { + AA32_DIRECT = 0, + AA32_LO = 1, + AA32_HI = 2, + } aarch32_map; + u8 Op0; + u8 Op1; + u8 CRn; + u8 CRm; + u8 Op2; + bool (*access)(struct kvm_vcpu *, struct sys_reg_params *, const struct sys_reg_desc *); + u64 (*reset)(struct kvm_vcpu *, const struct sys_reg_desc *); + int reg; + u64 val; + int (*__get_user)(struct kvm_vcpu *, const struct sys_reg_desc *, u64 *); + int (*set_user)(struct kvm_vcpu *, const struct sys_reg_desc *, u64); + unsigned int (*visibility)(const struct kvm_vcpu *, const struct sys_reg_desc *); +}; + +struct sys_reg_params { + u8 Op0; + u8 Op1; + u8 CRn; + u8 CRm; + u8 Op2; + u64 regval; + bool is_write; +}; + +struct sysc_config { + u32 sysc_val; + u32 syss_mask; + u8 midlemodes; + u8 sidlemodes; + u8 srst_udelay; + u32 quirks; +}; + +struct ti_sysc_cookie { + void *data; + void *clkdm; +}; + +struct ti_sysc_module_data; + +struct sysc_capabilities; + +struct sysc { + struct device *dev; + u64 module_pa; + u32 module_size; + void *module_va; + int offsets[3]; + struct ti_sysc_module_data *mdata; + struct clk **clocks; + const char **clock_roles; + int nr_clocks; + struct reset_control *rsts; + const char *legacy_mode; + const struct sysc_capabilities *cap; + struct sysc_config cfg; + struct ti_sysc_cookie cookie; + const char *name; + u32 revision; + u32 sysconfig; + unsigned int reserved: 1; + unsigned int enabled: 1; + unsigned int needs_resume: 1; + unsigned int child_needs_resume: 1; + struct delayed_work idle_work; + void (*pre_reset_quirk)(struct sysc *); + void (*post_reset_quirk)(struct sysc *); + void (*reset_done_quirk)(struct sysc *); + void (*module_enable_quirk)(struct sysc *); + void (*module_disable_quirk)(struct sysc *); + void (*module_unlock_quirk)(struct sysc *); + void (*module_lock_quirk)(struct sysc *); +}; + +struct sysc_address { + long unsigned int base; + struct list_head node; +}; + +struct sysc_regbits; + +struct sysc_capabilities { + const enum ti_sysc_module_type type; + const u32 sysc_mask; + const struct sysc_regbits *regbits; + const u32 mod_quirks; +}; + +struct sysc_dts_quirk { + const char *name; + u32 mask; +}; + +struct sysc_module { + struct sysc *ddata; + struct list_head node; +}; + +struct sysc_regbits { + s8 midle_shift; + s8 clkact_shift; + s8 sidle_shift; + s8 enwkup_shift; + s8 srst_shift; + s8 autoidle_shift; + s8 dmadisable_shift; + s8 emufree_shift; +}; + +struct sysc_revision_quirk { + const char *name; + u32 base; + int rev_offset; + int sysc_offset; + int syss_offset; + u32 revision; + u32 revision_mask; + u32 quirks; +}; + +struct sysc_soc_info { + long unsigned int general_purpose: 1; + enum sysc_soc soc; + struct mutex list_lock; + struct list_head disabled_modules; + struct list_head restored_modules; + struct notifier_block nb; +}; + +struct syscall_info { + __u64 sp; + struct seccomp_data data; +}; + +struct syscall_metadata { + const char *name; + int syscall_nr; + int nb_args; + const char **types; + const char **args; + struct list_head enter_fields; + struct trace_event_call *enter_event; + struct trace_event_call *exit_event; +}; + +struct syscall_tp_t { + struct trace_entry ent; + int syscall_nr; + long unsigned int ret; +}; + +struct syscall_tp_t___2 { + struct trace_entry ent; + int syscall_nr; + long unsigned int args[6]; +}; + +struct syscall_trace_enter { + struct trace_entry ent; + int nr; + long unsigned int args[0]; +}; + +struct syscall_trace_exit { + struct trace_entry ent; + int nr; + long int ret; +}; + +struct syscall_user_dispatch {}; + +struct syscon { + struct device_node *np; + struct regmap *regmap; + struct reset_control *reset; + struct list_head list; +}; + +struct syscon_led { + struct led_classdev cdev; + struct regmap *map; + u32 offset; + u32 mask; + bool state; +}; + +struct syscon_poweroff_data { + struct regmap *map; + u32 offset; + u32 value; + u32 mask; +}; + +struct syscon_reboot_context { + struct regmap *map; + u32 offset; + u32 value; + u32 mask; + struct notifier_block restart_handler; +}; + +struct syscore_ops { + struct list_head node; + int (*suspend)(void); + void (*resume)(void); + void (*shutdown)(void); +}; + +struct sysctl_alias { + const char *kernel_param; + const char *sysctl_param; +}; + +struct sysctr_private { + u32 cmpcr; + u32 lo_off; + u32 hi_off; +}; + +struct sysfs_ops { + ssize_t (*show)(struct kobject *, struct attribute *, char *); + ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); +}; + +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 sysrq_key_op { + void (* const handler)(u8); + 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; + long unsigned int 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; + long unsigned int reset_keybit[12]; + int reset_seq_len; + int reset_seq_cnt; + int reset_seq_version; + struct timer_list keyreset_timer; +}; + +struct system_counterval_t { + u64 cycles; + enum clocksource_ids cs_id; + bool use_nsecs; +}; + +struct system_device_crosststamp { + ktime_t device; + ktime_t sys_realtime; + ktime_t sys_monoraw; +}; + +struct system_heap_buffer { + struct dma_heap *heap; + struct list_head attachments; + struct mutex lock; + long unsigned int len; + struct sg_table sg_table; + int vmap_cnt; + void *vaddr; +}; + +struct system_time_snapshot { + u64 cycles; + ktime_t real; + ktime_t boot; + ktime_t raw; + enum clocksource_ids cs_id; + unsigned int clock_was_set_seq; + u8 cs_was_changed_seq; +}; + +struct sysv_sem { + struct sem_undo_list *undo_list; +}; + +struct sysv_shm { + struct list_head shm_clist; +}; + +struct t10_pi_tuple { + __be16 guard_tag; + __be16 app_tag; + __be32 ref_tag; +}; + +struct table_device { + struct list_head list; + refcount_t count; + struct dm_dev dm_dev; +}; + +struct table_header { + u16 td_id; + u16 td_flags; + u32 td_hilen; + u32 td_lolen; + char td_data[0]; +}; + +struct taint_flag { + char c_true; + char c_false; + bool module; + const char *desc; +}; + +struct tap_filter { + unsigned int count; + u32 mask[2]; + unsigned char addr[48]; +}; + +struct target { + struct device_node *np; + bool in_livetree; +}; + +struct target_cache { + struct list_head node; + struct node_cache_attrs cache_attrs; +}; + +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 *); + +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 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 *, struct dm_report_zones_args *, unsigned int); + +typedef int (*dm_busy_fn)(struct dm_target *); + +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 long int (*dm_dax_direct_access_fn)(struct dm_target *, long unsigned int, long int, enum dax_access_mode, void **, pfn_t *); + +typedef int (*dm_dax_zero_page_range_fn)(struct dm_target *, long unsigned int, size_t); + +typedef size_t (*dm_dax_recovery_write_fn)(struct dm_target *, long unsigned int, void *, size_t, struct iov_iter *); + +struct target_type { + uint64_t features; + const char *name; + struct module *module; + unsigned int version[3]; + dm_ctr_fn ctr; + dm_dtr_fn dtr; + dm_map_fn map; + dm_clone_and_map_request_fn clone_and_map_rq; + dm_release_clone_request_fn release_clone_rq; + dm_endio_fn end_io; + dm_request_endio_fn rq_end_io; + dm_presuspend_fn presuspend; + dm_presuspend_undo_fn presuspend_undo; + dm_postsuspend_fn postsuspend; + dm_preresume_fn preresume; + dm_resume_fn resume; + dm_status_fn status; + dm_message_fn message; + dm_prepare_ioctl_fn prepare_ioctl; + dm_report_zones_fn report_zones; + dm_busy_fn busy; + dm_iterate_devices_fn iterate_devices; + dm_io_hints_fn io_hints; + dm_dax_direct_access_fn direct_access; + dm_dax_zero_page_range_fn dax_zero_page_range; + dm_dax_recovery_write_fn dax_recovery_write; + struct list_head list; +}; + +struct task_delay_info { + raw_spinlock_t lock; + u64 blkio_start; + u64 blkio_delay_max; + u64 blkio_delay_min; + u64 blkio_delay; + u64 swapin_start; + u64 swapin_delay_max; + u64 swapin_delay_min; + u64 swapin_delay; + u32 blkio_count; + u32 swapin_count; + u64 freepages_start; + u64 freepages_delay_max; + u64 freepages_delay_min; + u64 freepages_delay; + u64 thrashing_start; + u64 thrashing_delay_max; + u64 thrashing_delay_min; + u64 thrashing_delay; + u64 compact_start; + u64 compact_delay_max; + u64 compact_delay_min; + u64 compact_delay; + u64 wpcopy_start; + u64 wpcopy_delay_max; + u64 wpcopy_delay_min; + u64 wpcopy_delay; + u64 irq_delay_max; + u64 irq_delay_min; + u64 irq_delay; + u32 freepages_count; + u32 thrashing_count; + u32 compact_count; + u32 wpcopy_count; + u32 irq_count; +}; + +struct uclamp_se { + unsigned int value: 11; + unsigned int bucket_id: 3; + unsigned int active: 1; + unsigned int user_defined: 1; +}; + +struct task_group { + struct cgroup_subsys_state css; + int idle; + struct sched_entity **se; + struct cfs_rq **cfs_rq; + long unsigned int shares; + long: 64; + long: 64; + atomic_long_t load_avg; + u32 scx_flags; + u32 scx_weight; + struct callback_head rcu; + struct list_head list; + struct task_group *parent; + struct list_head siblings; + struct list_head children; + struct autogroup *autogroup; + struct cfs_bandwidth cfs_bandwidth; + unsigned int uclamp_pct[2]; + struct uclamp_se uclamp_req[2]; + struct uclamp_se uclamp[2]; + long: 64; + long: 64; + long: 64; +}; + +struct task_numa_env { + struct task_struct *p; + int src_cpu; + int src_nid; + int dst_cpu; + int dst_nid; + int imb_numa_nr; + struct numa_stats src_stats; + struct numa_stats dst_stats; + int imbalance_pct; + int dist; + struct task_struct *best_task; + long int best_imp; + int best_cpu; +}; + +struct task_security_struct { + u32 osid; + u32 sid; + u32 exec_sid; + u32 create_sid; + u32 keycreate_sid; + u32 sockcreate_sid; +}; + +struct task_smack { + struct smack_known *smk_task; + struct smack_known *smk_forked; + struct smack_known *smk_transmuted; + struct list_head smk_rules; + struct mutex smk_rules_lock; + struct list_head smk_relabel; +}; + +typedef struct task_struct *class_find_get_task_t; + +typedef struct task_struct *class_task_lock_t; + +struct thread_info { + long unsigned int flags; + u64 ttbr0; + union { + u64 preempt_count; + struct { + u32 count; + u32 need_resched; + } preempt; + }; + void *scs_base; + void *scs_sp; + u32 cpu; +}; + +struct vtime { + seqcount_t seqcount; + long long unsigned int starttime; + enum vtime_state state; + unsigned int cpu; + u64 utime; + u64 stime; + u64 gtime; +}; + +struct wake_q_node { + struct wake_q_node *next; +}; + +struct tlbflush_unmap_batch { + struct arch_tlbflush_unmap_batch arch; + bool flush_required; + bool writable; +}; + +struct thread_struct { + struct cpu_context cpu_context; + long: 64; + struct { + long unsigned int tp_value; + long unsigned int tp2_value; + u64 fpmr; + long unsigned int pad; + struct user_fpsimd_state fpsimd_state; + } uw; + enum fp_type fp_type; + unsigned int fpsimd_cpu; + void *sve_state; + void *sme_state; + unsigned int vl[2]; + unsigned int vl_onexec[2]; + long unsigned int fault_address; + long unsigned int fault_code; + struct debug_info debug; + long: 64; + struct user_fpsimd_state kernel_fpsimd_state; + unsigned int kernel_fpsimd_cpu; + struct ptrauth_keys_user keys_user; + struct ptrauth_keys_kernel keys_kernel; + u64 mte_ctrl; + u64 sctlr_user; + u64 svcr; + u64 tpidr2_el0; + u64 por_el0; +}; + +struct uprobe_task; + +struct user_event_mm; + +struct task_struct { + struct thread_info thread_info; + unsigned int __state; + unsigned int saved_state; + void *stack; + refcount_t usage; + unsigned int flags; + unsigned int ptrace; + int on_cpu; + struct __call_single_node wake_entry; + unsigned int wakee_flips; + long unsigned int wakee_flip_decay_ts; + struct task_struct *last_wakee; + int recent_used_cpu; + int wake_cpu; + int on_rq; + int prio; + int static_prio; + int normal_prio; + unsigned int rt_priority; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sched_entity se; + struct sched_rt_entity rt; + struct sched_dl_entity dl; + struct sched_dl_entity *dl_server; + struct sched_ext_entity scx; + const struct sched_class *sched_class; + struct rb_node core_node; + long unsigned int core_cookie; + unsigned int core_occupation; + struct task_group *sched_task_group; + struct uclamp_se uclamp_req[2]; + struct uclamp_se uclamp[2]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sched_statistics stats; + struct hlist_head preempt_notifiers; + unsigned int btrace_seq; + unsigned int policy; + long unsigned int max_allowed_capacity; + int nr_cpus_allowed; + const cpumask_t *cpus_ptr; + cpumask_t *user_cpus_ptr; + cpumask_t cpus_mask; + void *migration_pending; + short unsigned int migration_disabled; + short unsigned int 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; + long unsigned int rcu_tasks_nvcsw; + u8 rcu_tasks_holdout; + u8 rcu_tasks_idx; + int rcu_tasks_idle_cpu; + struct list_head rcu_tasks_holdout_list; + int rcu_tasks_exit_cpu; + struct list_head rcu_tasks_exit_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; + struct address_space *faults_disabled_mapping; + int exit_state; + int exit_code; + int exit_signal; + int pdeath_signal; + long unsigned int jobctl; + unsigned int personality; + unsigned int sched_reset_on_fork: 1; + unsigned int sched_contributes_to_load: 1; + unsigned int sched_migrated: 1; + unsigned int sched_task_hot: 1; + long: 28; + unsigned int sched_remote_wakeup: 1; + unsigned int sched_rt_mutex: 1; + unsigned int in_execve: 1; + unsigned int in_iowait: 1; + unsigned int in_lru_fault: 1; + unsigned int no_cgroup_migration: 1; + unsigned int frozen: 1; + unsigned int use_memdelay: 1; + unsigned int in_memstall: 1; + unsigned int in_eventfd: 1; + unsigned int in_thrashing: 1; + long unsigned int atomic_flags; + struct restart_block restart_block; + pid_t pid; + pid_t tgid; + long unsigned int stack_canary; + struct task_struct *real_parent; + struct task_struct *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_node; + struct completion *vfork_done; + int *set_child_tid; + int *clear_child_tid; + void *worker_private; + u64 utime; + u64 stime; + u64 gtime; + struct prev_cputime prev_cputime; + struct vtime vtime; + atomic_t tick_dep_mask; + long unsigned int nvcsw; + long unsigned int nivcsw; + u64 start_time; + u64 start_boottime; + long unsigned int min_flt; + long unsigned int maj_flt; + struct posix_cputimers posix_cputimers; + struct posix_cputimers_work posix_cputimers_work; + const struct cred *ptracer_cred; + const struct cred *real_cred; + const struct cred *cred; + struct key *cached_requested_key; + char comm[16]; + struct nameidata *nameidata; + struct sysv_sem sysvsem; + struct sysv_shm sysvshm; + long unsigned int last_switch_count; + long unsigned int last_switch_time; + struct fs_struct *fs; + struct files_struct *files; + struct io_uring_task *io_uring; + struct nsproxy *nsproxy; + struct signal_struct *signal; + struct sighand_struct *sighand; + sigset_t blocked; + sigset_t real_blocked; + sigset_t saved_sigmask; + struct sigpending pending; + long unsigned int 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; + unsigned int in_ubsan; + void *journal_info; + struct bio_list *bio_list; + struct blk_plug *plug; + struct reclaim_state *reclaim_state; + struct io_context *io_context; + struct capture_control *capture_control; + long unsigned int ptrace_message; + kernel_siginfo_t *last_siginfo; + struct task_io_accounting ioac; + unsigned int psi_flags; + u64 acct_rss_mem1; + u64 acct_vm_mem1; + u64 acct_timexpd; + nodemask_t mems_allowed; + seqcount_spinlock_t mems_allowed_seq; + int cpuset_mem_spread_rotor; + struct css_set *cgroups; + struct list_head cg_list; + struct robust_list_head *robust_list; + struct compat_robust_list_head *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; + u8 perf_recursion[4]; + struct perf_event_context *perf_event_ctxp; + struct mutex perf_event_mutex; + struct list_head perf_event_list; + struct perf_ctx_data *perf_ctx_data; + struct mempolicy *mempolicy; + short int il_prev; + u8 il_weight; + short int pref_node_fork; + int numa_scan_seq; + unsigned int numa_scan_period; + unsigned int numa_scan_period_max; + int numa_preferred_nid; + long unsigned int numa_migrate_retry; + u64 node_stamp; + u64 last_task_numa_placement; + u64 last_sum_exec_runtime; + struct callback_head numa_work; + struct numa_group *numa_group; + long unsigned int *numa_faults; + long unsigned int total_numa_faults; + long unsigned int numa_faults_locality[3]; + long unsigned int numa_pages_migrated; + struct rseq *rseq; + u32 rseq_len; + u32 rseq_sig; + long unsigned int rseq_event_mask; + int mm_cid; + int last_mm_cid; + int migrate_from_cpu; + int mm_cid_active; + struct callback_head cid_work; + 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; + long unsigned int dirty_paused_when; + int latency_record_count; + struct latency_record latency_record[32]; + u64 timer_slack_ns; + u64 default_timer_slack_ns; + int curr_ret_stack; + int curr_ret_depth; + long unsigned int *ret_stack; + long long unsigned int ftrace_timestamp; + long long unsigned int ftrace_sleeptime; + atomic_t trace_overrun; + atomic_t tracing_graph_pause; + long unsigned int trace_recursion; + unsigned int memcg_nr_pages_over_high; + struct mem_cgroup *active_memcg; + struct obj_cgroup *objcg; + struct gendisk *throttle_disk; + struct uprobe_task *utask; + unsigned int sequential_io; + unsigned int sequential_io_avg; + 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; + void *security; + struct bpf_local_storage *bpf_storage; + struct bpf_run_ctx *bpf_ctx; + struct bpf_net_context *bpf_net_context; + struct llist_head kretprobe_instances; + union rv_task_monitor rv[1]; + struct user_event_mm *user_event_mm; + long: 64; + struct thread_struct thread; +}; + +struct task_struct__safe_rcu { + const cpumask_t *cpus_ptr; + struct css_set *cgroups; + struct task_struct *real_parent; + struct task_struct *group_leader; +}; + +struct tasklet_head { + struct tasklet_struct *head; + struct tasklet_struct **tail; +}; + +struct taskstats { + __u16 version; + __u32 ac_exitcode; + __u8 ac_flag; + __u8 ac_nice; + __u64 cpu_count; + __u64 cpu_delay_total; + __u64 blkio_count; + __u64 blkio_delay_total; + __u64 swapin_count; + __u64 swapin_delay_total; + __u64 cpu_run_real_total; + __u64 cpu_run_virtual_total; + char ac_comm[32]; + __u8 ac_sched; + __u8 ac_pad[3]; + long: 0; + __u32 ac_uid; + __u32 ac_gid; + __u32 ac_pid; + __u32 ac_ppid; + __u32 ac_btime; + __u64 ac_etime; + __u64 ac_utime; + __u64 ac_stime; + __u64 ac_minflt; + __u64 ac_majflt; + __u64 coremem; + __u64 virtmem; + __u64 hiwater_rss; + __u64 hiwater_vm; + __u64 read_char; + __u64 write_char; + __u64 read_syscalls; + __u64 write_syscalls; + __u64 read_bytes; + __u64 write_bytes; + __u64 cancelled_write_bytes; + __u64 nvcsw; + __u64 nivcsw; + __u64 ac_utimescaled; + __u64 ac_stimescaled; + __u64 cpu_scaled_run_real_total; + __u64 freepages_count; + __u64 freepages_delay_total; + __u64 thrashing_count; + __u64 thrashing_delay_total; + __u64 ac_btime64; + __u64 compact_count; + __u64 compact_delay_total; + __u32 ac_tgid; + __u64 ac_tgetime; + __u64 ac_exe_dev; + __u64 ac_exe_inode; + __u64 wpcopy_count; + __u64 wpcopy_delay_total; + __u64 irq_count; + __u64 irq_delay_total; + __u64 cpu_delay_max; + __u64 cpu_delay_min; + __u64 blkio_delay_max; + __u64 blkio_delay_min; + __u64 swapin_delay_max; + __u64 swapin_delay_min; + __u64 freepages_delay_max; + __u64 freepages_delay_min; + __u64 thrashing_delay_max; + __u64 thrashing_delay_min; + __u64 compact_delay_max; + __u64 compact_delay_min; + __u64 wpcopy_delay_max; + __u64 wpcopy_delay_min; + __u64 irq_delay_max; + __u64 irq_delay_min; +}; + +struct tbg_def { + char *name; + u32 refdiv_offset; + u32 fbdiv_offset; + u32 vcodiv_reg; + u32 vcodiv_offset; +}; + +struct tc3589x_platform_data; + +struct tc3589x { + struct mutex lock; + struct device *dev; + struct i2c_client *i2c; + struct irq_domain *domain; + int irq_base; + int num_gpio; + struct tc3589x_platform_data *pdata; +}; + +struct tc3589x_gpio { + struct gpio_chip chip; + struct tc3589x *tc3589x; + struct device *dev; + struct mutex irq_lock; + u8 regs[15]; + u8 oldregs[15]; +}; + +struct tc3589x_platform_data { + unsigned int block; +}; + +struct tc_act_pernet_id { + struct list_head list; + unsigned int id; +}; + +struct tcf_t { + __u64 install; + __u64 lastuse; + __u64 expires; + __u64 firstuse; +}; + +struct tc_action_ops; + +struct tcf_idrinfo; + +struct tc_cookie; + +struct tcf_chain; + +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 *tcfa_rate_est; + spinlock_t tcfa_lock; + struct gnet_stats_basic_sync *cpu_bstats; + struct gnet_stats_basic_sync *cpu_bstats_hw; + struct gnet_stats_queue *cpu_qstats; + struct tc_cookie *user_cookie; + struct tcf_chain *goto_chain; + u32 tcfa_flags; + u8 hw_stats; + u8 used_hw_stats; + bool used_hw_stats_valid; + u32 in_hw_count; +}; + +struct tc_action_net { + struct tcf_idrinfo *idrinfo; + const struct tc_action_ops *ops; +}; + +typedef void (*tc_action_priv_destructor)(void *); + +struct tcf_result; + +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 tc_bind_class_args { + struct qdisc_walker w; + long unsigned int new_cl; + u32 portid; + u32 clid; +}; + +struct tc_cookie { + u8 *data; + u32 len; + struct callback_head rcu; +}; + +struct tc_fifo_qopt { + __u32 limit; +}; + +struct tc_qopt_offload_stats { + struct gnet_stats_basic_sync *bstats; + struct gnet_stats_queue *qstats; +}; + +struct tc_fifo_qopt_offload { + enum tc_fifo_command command; + u32 handle; + u32 parent; + union { + struct tc_qopt_offload_stats stats; + }; +}; + +struct tc_mq_opt_offload_graft_params { + long unsigned int 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 tc_pedit_key { + __u32 mask; + __u32 val; + __u32 off; + __u32 at; + __u32 offmask; + __u32 shift; +}; + +struct tc_prio_qopt { + int bands; + __u8 priomap[16]; +}; + +struct tc_query_caps_base { + enum tc_setup_type type; + void *caps; +}; + +struct tc_root_qopt_offload { + enum tc_root_command command; + u32 handle; + bool ingress; +}; + +struct tc_skb_cb { + struct qdisc_skb_cb qdisc_cb; + u32 drop_reason; + u16 zone; + u16 mru; + u8 post_ct: 1; + u8 post_ct_snat: 1; + u8 post_ct_dnat: 1; +}; + +struct tc_skb_ext { + union { + u64 act_miss_cookie; + __u32 chain; + }; + __u16 mru; + __u16 zone; + u8 post_ct: 1; + u8 post_ct_snat: 1; + u8 post_ct_dnat: 1; + u8 act_miss: 1; + u8 l2_miss: 1; +}; + +struct tcamsg { + unsigned char tca_family; + unsigned char tca__pad1; + short unsigned int tca__pad2; +}; + +struct tcf_walker { + int stop; + int skip; + int count; + bool nonempty; + long unsigned int cookie; + int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); +}; + +struct tcf_bind_args { + struct tcf_walker w; + long unsigned int base; + long unsigned int cl; + u32 classid; +}; + +struct tcf_block { + struct xarray ports; + 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 useswcnt; + 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; +}; + +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 tcf_block_owner_item { + struct list_head list; + struct Qdisc *q; + enum flow_block_binder_type binder_type; +}; + +struct tcf_proto_ops; + +struct tcf_chain { + struct mutex filter_chain_lock; + struct tcf_proto *filter_chain; + struct list_head list; + struct tcf_block *block; + u32 index; + unsigned int refcnt; + unsigned int action_refcnt; + bool explicitly_created; + bool flushing; + const struct tcf_proto_ops *tmplt_ops; + void *tmplt_priv; + struct callback_head rcu; +}; + +struct tcf_chain_info { + struct tcf_proto **pprev; + struct tcf_proto *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_ematch_ops; + +struct tcf_ematch { + struct tcf_ematch_ops *ops; + long unsigned int data; + unsigned int datalen; + u16 matchid; + u16 flags; + struct net *net; +}; + +struct tcf_ematch_hdr { + __u16 matchid; + __u16 kind; + __u16 flags; + __u16 pad; +}; + +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_ematch_tree_hdr { + __u16 nmatches; + __u16 progid; +}; + +struct tcf_ematch_tree { + struct tcf_ematch_tree_hdr hdr; + struct tcf_ematch *matches; +}; + +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; +}; + +union tcf_exts_miss_cookie { + struct { + u32 miss_cookie_base; + u32 act_index; + }; + u64 miss_cookie; +}; + +struct tcf_exts_miss_cookie_node { + const struct tcf_chain *chain; + const struct tcf_proto *tp; + const struct tcf_exts *exts; + u32 chain_index; + u32 tp_prio; + u32 handle; + u32 miss_cookie_base; + struct callback_head rcu; +}; + +struct tcf_filter_chain_list_item { + struct list_head list; + tcf_chain_head_change_t *chain_head_change; + void *chain_head_change_priv; +}; + +struct tcf_idrinfo { + struct mutex lock; + struct idr action_idr; + struct net *net; +}; + +struct tcf_net { + spinlock_t idr_lock; + struct idr idr; +}; + +struct tcf_pedit_parms; + +struct tcf_pedit { + struct tc_action common; + struct tcf_pedit_parms *parms; + long: 64; +}; + +struct tcf_pedit_key_ex { + enum pedit_header_type htype; + enum pedit_cmd cmd; +}; + +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 tcf_pkt_info { + unsigned char *ptr; + int nexthdr; +}; + +struct tcf_proto { + struct tcf_proto *next; + void *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; + bool counted; + bool usesw; + refcount_t refcnt; + struct callback_head rcu; + struct hlist_node destroy_ht_node; +}; + +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 *, long unsigned int, 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, long unsigned int, void *, long unsigned int); + void * (*tmplt_create)(struct net *, struct tcf_chain *, struct nlattr **, struct netlink_ext_ack *); + void (*tmplt_destroy)(void *); + void (*tmplt_reoffload)(struct tcf_chain *, bool, flow_setup_cb_t *, 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_qevent { + struct tcf_block *block; + struct tcf_block_ext_info info; + struct tcf_proto *filter_chain; +}; + +struct tcf_result { + union { + struct { + long unsigned int class; + u32 classid; + }; + const struct tcf_proto *goto_tp; + }; +}; + +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 tpm_digest { + u16 alg_id; + u8 digest[64]; +}; + +struct tcg_pcr_event2_head { + u32 pcr_idx; + u32 event_type; + u32 count; + struct tpm_digest digests[0]; +}; + +struct tcmsg { + unsigned char tcm_family; + unsigned char tcm__pad1; + short unsigned int tcm__pad2; + int tcm_ifindex; + __u32 tcm_handle; + __u32 tcm_parent; + __u32 tcm_info; +}; + +struct tcp4_pseudohdr { + __be32 saddr; + __be32 daddr; + __u8 pad; + __u8 protocol; + __be16 len; +}; + +struct tcp6_pseudohdr { + struct in6_addr saddr; + struct in6_addr daddr; + __be32 len; + __be32 protocol; +}; + +struct tcp_options_received { + int ts_recent_stamp; + u32 ts_recent; + u32 rcv_tsval; + u32 rcv_tsecr; + u16 saw_tstamp: 1; + u16 tstamp_ok: 1; + u16 dsack: 1; + u16 wscale_ok: 1; + u16 sack_ok: 3; + u16 smc_ok: 1; + u16 snd_wscale: 4; + u16 rcv_wscale: 4; + u8 saw_unknown: 1; + u8 unused: 7; + u8 num_sacks; + u16 user_mss; + u16 mss_clamp; +}; + +struct tcp_rack { + u64 mstamp; + u32 rtt_us; + u32 end_seq; + u32 last_delivered; + u8 reo_wnd_steps; + u8 reo_wnd_persist: 5; + u8 dsack_seen: 1; + u8 advanced: 1; +}; + +struct tcp_sack_block { + u32 start_seq; + u32 end_seq; +}; + +struct tcp_sock_af_ops; + +struct tcp_md5sig_info; + +struct tcp_ao_info; + +struct tcp_fastopen_request; + +struct tcp_sock { + struct inet_connection_sock inet_conn; + __u8 __cacheline_group_begin__tcp_sock_read_tx[0]; + u32 max_window; + u32 rcv_ssthresh; + u32 reordering; + u32 notsent_lowat; + u16 gso_segs; + struct sk_buff *lost_skb_hint; + struct sk_buff *retransmit_skb_hint; + __u8 __cacheline_group_end__tcp_sock_read_tx[0]; + __u8 __cacheline_group_begin__tcp_sock_read_txrx[0]; + u32 tsoffset; + u32 snd_wnd; + u32 mss_cache; + u32 snd_cwnd; + u32 prr_out; + u32 lost_out; + u32 sacked_out; + u16 tcp_header_len; + u8 scaling_ratio; + u8 chrono_type: 2; + u8 repair: 1; + u8 tcp_usec_ts: 1; + u8 is_sack_reneg: 1; + u8 is_cwnd_limited: 1; + __u8 __cacheline_group_end__tcp_sock_read_txrx[0]; + __u8 __cacheline_group_begin__tcp_sock_read_rx[0]; + u32 copied_seq; + u32 rcv_tstamp; + u32 snd_wl1; + u32 tlp_high_seq; + u32 rttvar_us; + u32 retrans_out; + u16 advmss; + u16 urg_data; + u32 lost; + struct minmax rtt_min; + struct rb_root out_of_order_queue; + u32 snd_ssthresh; + u8 recvmsg_inq: 1; + __u8 __cacheline_group_end__tcp_sock_read_rx[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + __u8 __cacheline_group_begin__tcp_sock_write_tx[0]; + u32 segs_out; + u32 data_segs_out; + u64 bytes_sent; + u32 snd_sml; + u32 chrono_start; + u32 chrono_stat[3]; + u32 write_seq; + u32 pushed_seq; + u32 lsndtime; + u32 mdev_us; + u32 rtt_seq; + u64 tcp_wstamp_ns; + struct list_head tsorted_sent_queue; + struct sk_buff *highest_sack; + u8 ecn_flags; + __u8 __cacheline_group_end__tcp_sock_write_tx[0]; + __u8 __cacheline_group_begin__tcp_sock_write_txrx[0]; + __be32 pred_flags; + u64 tcp_clock_cache; + u64 tcp_mstamp; + u32 rcv_nxt; + u32 snd_nxt; + u32 snd_una; + u32 window_clamp; + u32 srtt_us; + u32 packets_out; + u32 snd_up; + u32 delivered; + u32 delivered_ce; + u32 app_limited; + u32 rcv_wnd; + struct tcp_options_received rx_opt; + u8 nonagle: 4; + u8 rate_app_limited: 1; + __u8 __cacheline_group_end__tcp_sock_write_txrx[0]; + long: 0; + __u8 __cacheline_group_begin__tcp_sock_write_rx[0]; + u64 bytes_received; + u32 segs_in; + u32 data_segs_in; + u32 rcv_wup; + u32 max_packets_out; + u32 cwnd_usage_seq; + u32 rate_delivered; + u32 rate_interval_us; + u32 rcv_rtt_last_tsecr; + u64 first_tx_mstamp; + u64 delivered_mstamp; + u64 bytes_acked; + struct { + u32 rtt_us; + u32 seq; + u64 time; + } rcv_rtt_est; + struct { + u32 space; + u32 seq; + u64 time; + } rcvq_space; + __u8 __cacheline_group_end__tcp_sock_write_rx[0]; + u32 dsack_dups; + u32 compressed_ack_rcv_nxt; + struct list_head tsq_node; + struct tcp_rack rack; + u8 compressed_ack; + u8 dup_ack_counter: 2; + u8 tlp_retrans: 1; + u8 unused: 5; + u8 thin_lto: 1; + u8 fastopen_connect: 1; + u8 fastopen_no_cookie: 1; + u8 fastopen_client_fail: 2; + u8 frto: 1; + u8 repair_queue; + u8 save_syn: 2; + u8 syn_data: 1; + u8 syn_fastopen: 1; + u8 syn_fastopen_exp: 1; + u8 syn_fastopen_ch: 1; + u8 syn_data_acked: 1; + u8 keepalive_probes; + u32 tcp_tx_delay; + u32 mdev_max_us; + u32 reord_seen; + u32 snd_cwnd_cnt; + u32 snd_cwnd_clamp; + u32 snd_cwnd_used; + u32 snd_cwnd_stamp; + u32 prior_cwnd; + u32 prr_delivered; + u32 last_oow_ack_time; + struct hrtimer pacing_timer; + struct hrtimer compressed_ack_timer; + struct sk_buff *ooo_last_skb; + struct tcp_sack_block duplicate_sack[1]; + struct tcp_sack_block selective_acks[4]; + struct tcp_sack_block recv_sack_cache[4]; + int lost_cnt_hint; + u32 prior_ssthresh; + u32 high_seq; + u32 retrans_stamp; + u32 undo_marker; + int undo_retrans; + u64 bytes_retrans; + u32 total_retrans; + u32 rto_stamp; + u16 total_rto; + u16 total_rto_recoveries; + u32 total_rto_time; + u32 urg_seq; + unsigned int keepalive_time; + unsigned int keepalive_intvl; + int linger2; + u8 bpf_sock_ops_cb_flags; + u8 bpf_chg_cc_inprogress: 1; + u16 timeout_rehash; + u32 rcv_ooopack; + struct { + u32 probe_seq_start; + u32 probe_seq_end; + } mtu_probe; + u32 plb_rehash; + u32 mtu_info; + bool is_mptcp; + bool syn_smc; + bool (*smc_hs_congested)(const struct sock *); + const struct tcp_sock_af_ops *af_specific; + struct tcp_md5sig_info *md5sig_info; + struct tcp_ao_info *ao_info; + struct tcp_fastopen_request *fastopen_req; + struct request_sock *fastopen_rsk; + struct saved_syn *saved_syn; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct tcp6_sock { + struct tcp_sock tcp; + struct ipv6_pinfo inet6; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct tcp_ao_add { + struct __kernel_sockaddr_storage addr; + char alg_name[64]; + __s32 ifindex; + __u32 set_current: 1; + __u32 set_rnext: 1; + __u32 reserved: 30; + __u16 reserved2; + __u8 prefix; + __u8 sndid; + __u8 rcvid; + __u8 maclen; + __u8 keyflags; + __u8 keylen; + __u8 key[80]; +}; + +union tcp_ao_addr { + struct in_addr a4; + struct in6_addr a6; +}; + +struct tcp_ao_counters { + atomic64_t pkt_good; + atomic64_t pkt_bad; + atomic64_t key_not_found; + atomic64_t ao_required; + atomic64_t dropped_icmp; +}; + +struct tcp_ao_del { + struct __kernel_sockaddr_storage addr; + __s32 ifindex; + __u32 set_current: 1; + __u32 set_rnext: 1; + __u32 del_async: 1; + __u32 reserved: 29; + __u16 reserved2; + __u8 prefix; + __u8 sndid; + __u8 rcvid; + __u8 current_key; + __u8 rnext; + __u8 keyflags; +}; + +struct tcp_ao_getsockopt { + struct __kernel_sockaddr_storage addr; + char alg_name[64]; + __u8 key[80]; + __u32 nkeys; + __u16 is_current: 1; + __u16 is_rnext: 1; + __u16 get_all: 1; + __u16 reserved: 13; + __u8 sndid; + __u8 rcvid; + __u8 prefix; + __u8 maclen; + __u8 keyflags; + __u8 keylen; + __s32 ifindex; + __u64 pkt_good; + __u64 pkt_bad; +}; + +struct tcp_ao_hdr { + u8 kind; + u8 length; + u8 keyid; + u8 rnext_keyid; +}; + +struct tcp_ao_key; + +struct tcp_ao_info { + struct hlist_head head; + struct tcp_ao_key *current_key; + struct tcp_ao_key *rnext_key; + struct tcp_ao_counters counters; + u32 ao_required: 1; + u32 accept_icmps: 1; + u32 __unused: 30; + __be32 lisn; + __be32 risn; + u32 snd_sne; + u32 rcv_sne; + refcount_t refcnt; + struct callback_head rcu; +}; + +struct tcp_ao_info_opt { + __u32 set_current: 1; + __u32 set_rnext: 1; + __u32 ao_required: 1; + __u32 set_counters: 1; + __u32 accept_icmps: 1; + __u32 reserved: 27; + __u16 reserved2; + __u8 current_key; + __u8 rnext; + __u64 pkt_good; + __u64 pkt_bad; + __u64 pkt_key_not_found; + __u64 pkt_ao_required; + __u64 pkt_dropped_icmp; +}; + +struct tcp_ao_key { + struct hlist_node node; + union tcp_ao_addr addr; + u8 key[80]; + unsigned int tcp_sigpool_id; + unsigned int digest_size; + int l3index; + u8 prefixlen; + u8 family; + u8 keylen; + u8 keyflags; + u8 sndid; + u8 rcvid; + u8 maclen; + struct callback_head rcu; + atomic64_t pkt_good; + atomic64_t pkt_bad; + u8 traffic_keys[0]; +}; + +struct tcp_ao_repair { + __be32 snt_isn; + __be32 rcv_isn; + __u32 snd_sne; + __u32 rcv_sne; +}; + +struct tcp_bbr_info { + __u32 bbr_bw_lo; + __u32 bbr_bw_hi; + __u32 bbr_min_rtt; + __u32 bbr_pacing_gain; + __u32 bbr_cwnd_gain; +}; + +struct 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; +}; + +union tcp_cc_info { + struct tcpvegas_info vegas; + struct tcp_dctcp_info dctcp; + struct tcp_bbr_info bbr; +}; + +struct tcp_fastopen_context { + siphash_key_t key[2]; + int num; + struct callback_head rcu; +}; + +struct tcp_fastopen_cookie { + __le64 val[2]; + s8 len; + bool exp; +}; + +struct tcp_fastopen_metrics { + u16 mss; + u16 syn_loss: 10; + u16 try_exp: 2; + long unsigned int last_syn_loss; + struct tcp_fastopen_cookie cookie; +}; + +struct tcp_fastopen_request { + struct tcp_fastopen_cookie cookie; + struct msghdr *data; + size_t size; + int copied; + struct ubuf_info *uarg; +}; + +struct tcp_info { + __u8 tcpi_state; + __u8 tcpi_ca_state; + __u8 tcpi_retransmits; + __u8 tcpi_probes; + __u8 tcpi_backoff; + __u8 tcpi_options; + __u8 tcpi_snd_wscale: 4; + __u8 tcpi_rcv_wscale: 4; + __u8 tcpi_delivery_rate_app_limited: 1; + __u8 tcpi_fastopen_client_fail: 2; + __u32 tcpi_rto; + __u32 tcpi_ato; + __u32 tcpi_snd_mss; + __u32 tcpi_rcv_mss; + __u32 tcpi_unacked; + __u32 tcpi_sacked; + __u32 tcpi_lost; + __u32 tcpi_retrans; + __u32 tcpi_fackets; + __u32 tcpi_last_data_sent; + __u32 tcpi_last_ack_sent; + __u32 tcpi_last_data_recv; + __u32 tcpi_last_ack_recv; + __u32 tcpi_pmtu; + __u32 tcpi_rcv_ssthresh; + __u32 tcpi_rtt; + __u32 tcpi_rttvar; + __u32 tcpi_snd_ssthresh; + __u32 tcpi_snd_cwnd; + __u32 tcpi_advmss; + __u32 tcpi_reordering; + __u32 tcpi_rcv_rtt; + __u32 tcpi_rcv_space; + __u32 tcpi_total_retrans; + __u64 tcpi_pacing_rate; + __u64 tcpi_max_pacing_rate; + __u64 tcpi_bytes_acked; + __u64 tcpi_bytes_received; + __u32 tcpi_segs_out; + __u32 tcpi_segs_in; + __u32 tcpi_notsent_bytes; + __u32 tcpi_min_rtt; + __u32 tcpi_data_segs_in; + __u32 tcpi_data_segs_out; + __u64 tcpi_delivery_rate; + __u64 tcpi_busy_time; + __u64 tcpi_rwnd_limited; + __u64 tcpi_sndbuf_limited; + __u32 tcpi_delivered; + __u32 tcpi_delivered_ce; + __u64 tcpi_bytes_sent; + __u64 tcpi_bytes_retrans; + __u32 tcpi_dsack_dups; + __u32 tcpi_reord_seen; + __u32 tcpi_rcv_ooopack; + __u32 tcpi_snd_wnd; + __u32 tcpi_rcv_wnd; + __u32 tcpi_rehash; + __u16 tcpi_total_rto; + __u16 tcpi_total_rto_recoveries; + __u32 tcpi_total_rto_time; +}; + +struct tcp_md5sig_key; + +struct tcp_key { + union { + struct { + struct tcp_ao_key *ao_key; + char *traffic_key; + u32 sne; + u8 rcv_next; + }; + struct tcp_md5sig_key *md5_key; + }; + enum { + TCP_KEY_NONE = 0, + TCP_KEY_MD5 = 1, + TCP_KEY_AO = 2, + } type; +}; + +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 tcp_md5sig_info { + struct hlist_head head; + struct callback_head rcu; +}; + +struct tcp_md5sig_key { + struct hlist_node node; + u8 keylen; + u8 family; + u8 prefixlen; + u8 flags; + union tcp_ao_addr addr; + int l3index; + u8 key[80]; + struct callback_head rcu; +}; + +struct tcp_metrics_block { + struct tcp_metrics_block *tcpm_next; + struct net *tcpm_net; + struct inetpeer_addr tcpm_saddr; + struct inetpeer_addr tcpm_daddr; + long unsigned int tcpm_stamp; + u32 tcpm_lock; + u32 tcpm_vals[5]; + struct tcp_fastopen_metrics tcpm_fastopen; + struct callback_head callback_head; +}; + +struct tcp_mib { + long unsigned int mibs[16]; +}; + +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 tcp_plb_state { + u8 consec_cong_rounds: 5; + u8 unused: 3; + u32 pause_until; +}; + +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 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 *); + struct tcp_ao_key * (*ao_lookup)(const struct sock *, struct request_sock *, int, int); + int (*ao_calc_key)(struct tcp_ao_key *, u8 *, struct request_sock *); + int (*ao_synack_hash)(char *, struct tcp_ao_key *, struct request_sock *, const struct sk_buff *, int, u32); + __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); + u32 (*init_seq)(const struct sk_buff *); + u32 (*init_ts_off)(const struct net *, const struct sk_buff *); + int (*send_synack)(const struct sock *, struct dst_entry *, struct flowi *, struct request_sock *, struct tcp_fastopen_cookie *, enum tcp_synack_type, struct sk_buff *); +}; + +struct tcp_sack_block_wire { + __be32 start_seq; + __be32 end_seq; +}; + +struct tcp_sacktag_state { + u64 first_sackt; + u64 last_sackt; + u32 reord; + u32 sack_delivered; + int flag; + unsigned int mss_now; + struct rate_sample *rate; +}; + +struct tcp_seq_afinfo { + sa_family_t family; +}; + +struct tcp_sigpool { + void *scratch; + struct ahash_request *req; +}; + +struct tcp_skb_cb { + __u32 seq; + __u32 end_seq; + union { + struct { + u16 tcp_gso_segs; + u16 tcp_gso_size; + }; + }; + __u8 tcp_flags; + __u8 sacked; + __u8 ip_dsfield; + __u8 txstamp_ack: 1; + __u8 eor: 1; + __u8 has_rxtstamp: 1; + __u8 unused: 5; + __u32 ack_seq; + union { + struct { + __u32 is_app_limited: 1; + __u32 delivered_ce: 20; + __u32 unused: 11; + __u32 delivered; + u64 first_tx_mstamp; + u64 delivered_mstamp; + } tx; + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + }; +}; + +struct 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); + int (*ao_parse)(struct sock *, int, sockptr_t, int); + struct tcp_ao_key * (*ao_lookup)(const struct sock *, struct sock *, int, int); + int (*ao_calc_key_sk)(struct tcp_ao_key *, u8 *, const struct sock *, __be32, __be32, bool); + int (*calc_ao_hash)(char *, struct tcp_ao_key *, const struct sock *, const struct sk_buff *, const u8 *, int, u32); +}; + +struct tcp_splice_state { + struct pipe_inode_info *pipe; + size_t len; + unsigned int flags; +}; + +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_ao_info *ao_info; +}; + +struct tcp_ulp_ops { + struct list_head list; + int (*init)(struct sock *); + void (*update)(struct sock *, struct proto *, void (*)(struct sock *)); + void (*release)(struct sock *); + int (*get_info)(struct sock *, struct sk_buff *); + size_t (*get_info_size)(const struct sock *); + void (*clone)(const struct request_sock *, struct sock *, const gfp_t); + char name[16]; + struct module *owner; +}; + +union tcp_word_hdr { + struct tcphdr hdr; + __be32 words[5]; +}; + +struct tcp_xa_pool { + u8 max; + u8 idx; + __u32 tokens[17]; + netmem_ref netmems[17]; +}; + +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 tcpa_event { + u32 pcr_index; + u32 event_type; + u8 pcr_value[20]; + u32 event_size; + u8 event_data[0]; +}; + +struct tcpa_pc_event { + u32 event_id; + u32 event_size; + u8 event_data[0]; +}; + +struct tcpm_hash_bucket { + struct tcp_metrics_block *chain; +}; + +struct tcs_type_config { + u32 type; + u32 n; +}; + +struct tcx_entry { + struct mini_Qdisc *miniq; + struct bpf_mprog_bundle bundle; + u32 miniq_active; + struct callback_head rcu; +}; + +struct tcx_link { + struct bpf_link link; + struct net_device *dev; + u32 location; +}; + +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 tegra124_cpufreq_priv { + struct clk *cpu_clk; + struct clk *pllp_clk; + struct clk *pllx_clk; + struct clk *dfll_clk; + struct platform_device *cpufreq_dt_pdev; +}; + +struct tegra_bpmp; + +struct tegra186_bpmp { + struct tegra_bpmp *parent; + struct { + struct gen_pool *pool; + union { + void *sram; + void *dram; + }; + dma_addr_t phys; + } tx; + struct { + struct gen_pool *pool; + union { + void *sram; + void *dram; + }; + dma_addr_t phys; + } rx; + struct { + struct mbox_client client; + struct mbox_chan *channel; + } mbox; +}; + +struct tegra186_emc_dvfs; + +struct tegra186_emc { + struct tegra_bpmp *bpmp; + struct device *dev; + struct clk *clk; + struct tegra186_emc_dvfs *dvfs; + unsigned int num_dvfs; + struct { + struct dentry *root; + long unsigned int min_rate; + long unsigned int max_rate; + } debugfs; + struct icc_provider provider; +}; + +struct tegra186_emc_dvfs { + long unsigned int latency; + long unsigned int rate; +}; + +struct tegra186_pin_range { + unsigned int offset; + const char *group; +}; + +struct tegra186_timer_soc; + +struct tegra186_wdt; + +struct tegra186_timer { + const struct tegra186_timer_soc *soc; + struct device *dev; + void *regs; + struct tegra186_wdt *wdt; + struct clocksource usec; + struct clocksource tsc; + struct clocksource osc; +}; + +struct tegra186_timer_soc { + unsigned int num_timers; + unsigned int num_wdts; +}; + +struct tegra186_tmr { + struct tegra186_timer *parent; + void *regs; + unsigned int index; + unsigned int hwirq; +}; + +struct tegra186_wdt { + struct watchdog_device base; + void *regs; + unsigned int index; + bool locked; + struct tegra186_tmr *tmr; +}; + +struct tegra194_axi2apb_bridge { + struct resource res; + void *base; +}; + +struct tegra_cbb_ops; + +struct tegra_cbb { + struct device *dev; + const struct tegra_cbb_ops *ops; + struct list_head node; +}; + +struct tegra194_cbb_noc_data; + +struct tegra194_cbb { + struct tegra_cbb base; + const struct tegra194_cbb_noc_data *noc; + struct resource *res; + void *regs; + unsigned int num_intr; + unsigned int sec_irq; + unsigned int nonsec_irq; + u32 errlog0; + u32 errlog1; + u32 errlog2; + u32 errlog3; + u32 errlog4; + u32 errlog5; + struct tegra194_axi2apb_bridge *bridges; + unsigned int num_bridges; +}; + +struct tegra194_cbb_aperture { + u8 initflow; + u8 targflow; + u8 targ_subrange; + u8 init_mapping; + u32 init_localaddress; + u8 targ_mapping; + u32 targ_localaddress; + u16 seqid; +}; + +struct tegra194_cbb_userbits; + +struct tegra194_cbb_noc_data { + const char *name; + bool erd_mask_inband_err; + const char * const *master_id; + unsigned int max_aperture; + const struct tegra194_cbb_aperture *noc_aperture; + const char * const *routeid_initflow; + const char * const *routeid_targflow; + void (*parse_routeid)(struct tegra194_cbb_aperture *, u64); + void (*parse_userbits)(struct tegra194_cbb_userbits *, u32); +}; + +struct tegra194_cbb_packet_header { + bool lock; + u8 opc; + u8 errcode; + u16 len1; + bool format; +}; + +struct tegra194_cbb_userbits { + u8 axcache; + u8 non_mod; + u8 axprot; + u8 falconsec; + u8 grpsec; + u8 vqc; + u8 mstr_id; + u8 axi_id; +}; + +struct tegra194_pcie_ecam { + void *config_base; + void *iatu_base; + void *dbi_base; +}; + +struct tegra210_bpmp { + void *atomics; + void *arb_sema; + struct irq_data *tx_irq_data; +}; + +struct tegra210_clk_emc_provider; + +struct tegra210_clk_emc { + struct clk_hw hw; + void *regs; + struct tegra210_clk_emc_provider *provider; + struct clk *parents[8]; +}; + +struct tegra210_clk_emc_config { + long unsigned int rate; + bool same_freq; + u32 value; + long unsigned int parent_rate; + u8 parent; +}; + +struct tegra210_clk_emc_provider { + struct module *owner; + struct device *dev; + struct tegra210_clk_emc_config *configs; + unsigned int num_configs; + int (*set_rate)(struct device *, const struct tegra210_clk_emc_config *); +}; + +struct tegra210_domain_mbist_war { + void (*handle_lvl2_ovr)(struct tegra210_domain_mbist_war *); + const u32 lvl2_offset; + const u32 lvl2_mask; + const unsigned int num_clks; + const unsigned int *clk_init_data; + struct clk_bulk_data *clks; +}; + +struct tegra210_emc_timing; + +struct tegra210_emc_table_register_offsets; + +struct tegra210_emc_sequence; + +struct tegra210_emc { + struct tegra_mc *mc; + struct device *dev; + struct clk *clk; + struct tegra210_emc_timing *nominal; + struct tegra210_emc_timing *derated; + struct tegra210_emc_timing *timings; + unsigned int num_timings; + const struct tegra210_emc_table_register_offsets *offsets; + const struct tegra210_emc_sequence *sequence; + spinlock_t lock; + void *regs; + void *channel[2]; + unsigned int num_channels; + unsigned int num_devices; + unsigned int dram_type; + struct tegra210_emc_timing *last; + struct tegra210_emc_timing *next; + unsigned int training_interval; + struct timer_list training; + enum tegra210_emc_refresh refresh; + unsigned int refresh_poll_interval; + struct timer_list refresh_timer; + unsigned int temperature; + atomic_t refresh_poll; + ktime_t clkchange_time; + int clkchange_delay; + long unsigned int resume_rate; + struct { + struct dentry *root; + long unsigned int min_rate; + long unsigned int max_rate; + unsigned int temperature; + } debugfs; + struct tegra210_clk_emc_provider provider; +}; + +struct tegra210_emc_per_channel_regs { + u16 bank; + u16 offset; +}; + +struct tegra210_emc_sequence { + u8 revision; + void (*set_clock)(struct tegra210_emc *, u32); + u32 (*periodic_compensation)(struct tegra210_emc *); +}; + +struct tegra210_emc_table_register_offsets { + u16 burst[221]; + u16 trim[138]; + u16 burst_mc[33]; + u16 la_scale[24]; + struct tegra210_emc_per_channel_regs burst_per_channel[8]; + struct tegra210_emc_per_channel_regs trim_per_channel[10]; + struct tegra210_emc_per_channel_regs vref_per_channel[4]; +}; + +struct tegra210_emc_timing { + u32 revision; + const char dvfs_ver[60]; + u32 rate; + u32 min_volt; + u32 gpu_min_volt; + const char clock_src[32]; + u32 clk_src_emc; + u32 needs_training; + u32 training_pattern; + u32 trained; + u32 periodic_training; + u32 trained_dram_clktree[8]; + u32 current_dram_clktree[8]; + u32 run_clocks; + u32 tree_margin; + u32 num_burst; + u32 num_burst_per_ch; + u32 num_trim; + u32 num_trim_per_ch; + u32 num_mc_regs; + u32 num_up_down; + u32 vref_num; + u32 training_mod_num; + u32 dram_timing_num; + u32 ptfv_list[12]; + u32 burst_regs[221]; + u32 burst_reg_per_ch[8]; + u32 shadow_regs_ca_train[221]; + u32 shadow_regs_quse_train[221]; + u32 shadow_regs_rdwr_train[221]; + u32 trim_regs[138]; + u32 trim_perch_regs[10]; + u32 vref_perch_regs[4]; + u32 dram_timings[5]; + u32 training_mod_regs[20]; + u32 save_restore_mod_regs[12]; + u32 burst_mc_regs[33]; + u32 la_scale_regs[24]; + u32 min_mrs_wait; + u32 emc_mrw; + u32 emc_mrw2; + u32 emc_mrw3; + u32 emc_mrw4; + u32 emc_mrw9; + u32 emc_mrs; + u32 emc_emrs; + u32 emc_emrs2; + u32 emc_auto_cal_config; + u32 emc_auto_cal_config2; + u32 emc_auto_cal_config3; + u32 emc_auto_cal_config4; + u32 emc_auto_cal_config5; + u32 emc_auto_cal_config6; + u32 emc_auto_cal_config7; + u32 emc_auto_cal_config8; + u32 emc_cfg_2; + u32 emc_sel_dpd_ctrl; + u32 emc_fdpd_ctrl_cmd_no_ramp; + u32 dll_clk_src; + u32 clk_out_enb_x_0_clk_enb_emc_dll; + u32 latency; +}; + +struct tegra234_cbb_fabric; + +struct tegra234_cbb { + struct tegra_cbb base; + const struct tegra234_cbb_fabric *fabric; + struct resource *res; + void *regs; + int num_intr; + int sec_irq; + void *mon; + unsigned int type; + u32 mask; + u64 access; + u32 mn_attr0; + u32 mn_attr1; + u32 mn_attr2; + u32 mn_user_bits; +}; + +struct tegra234_cbb_acpi_uid { + const char *hid; + const char *uid; + const struct tegra234_cbb_fabric *fabric; +}; + +struct tegra_cbb_error; + +struct tegra234_slave_lookup; + +struct tegra234_cbb_fabric { + const char *name; + phys_addr_t off_mask_erd; + phys_addr_t firewall_base; + unsigned int firewall_ctl; + unsigned int firewall_wr_ctl; + const char * const *master_id; + unsigned int notifier_offset; + const struct tegra_cbb_error *errors; + const int max_errors; + const struct tegra234_slave_lookup *slave_map; + const int max_slaves; +}; + +struct tegra234_slave_lookup { + const char *name; + unsigned int offset; +}; + +struct tegra241_vintf; + +struct tegra241_cmdqv { + struct arm_smmu_device smmu; + struct device *dev; + void *base; + int irq; + u16 num_vintfs; + u16 num_vcmdqs; + u16 num_lvcmdqs_per_vintf; + struct ida vintf_ids; + struct tegra241_vintf **vintfs; + long: 64; +}; + +struct tegra241_vcmdq { + u16 idx; + u16 lidx; + bool enabled; + struct tegra241_cmdqv *cmdqv; + struct tegra241_vintf *vintf; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct arm_smmu_cmdq cmdq; + void *page0; + void *page1; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct tegra241_vintf { + u16 idx; + bool enabled; + bool hyp_own; + struct tegra241_cmdqv *cmdqv; + struct tegra241_vcmdq **lvcmdqs; + void *base; +}; + +struct tegra_ahb { + void *regs; + struct device *dev; + u32 ctx[0]; +}; + +struct tegra_audio2x_clk_initdata { + char *parent; + char *gate_name; + char *name_2x; + char *div_name; + int clk_id; + int clk_num; + u8 div_offset; +}; + +struct tegra_clk_pll_params; + +struct tegra_audio_clk_info { + char *name; + struct tegra_clk_pll_params *pll_params; + int clk_id; + char *parent; +}; + +struct tegra_audio_clk_initdata { + char *gate_name; + char *mux_name; + u32 offset; + int gate_clk_id; + int mux_clk_id; +}; + +struct tegra_bpmp_soc; + +struct tegra_bpmp_channel; + +struct tegra_bpmp_clk; + +struct tegra_bpmp { + const struct tegra_bpmp_soc *soc; + struct device *dev; + void *priv; + struct { + struct mbox_client client; + struct mbox_chan *channel; + } mbox; + spinlock_t atomic_tx_lock; + struct tegra_bpmp_channel *tx_channel; + struct tegra_bpmp_channel *rx_channel; + struct tegra_bpmp_channel *threaded_channels; + struct { + long unsigned int *allocated; + long unsigned int *busy; + unsigned int count; + struct semaphore lock; + } threaded; + struct list_head mrqs; + spinlock_t lock; + struct tegra_bpmp_clk **clocks; + unsigned int num_clocks; + struct reset_controller_dev rstc; + struct genpd_onecell_data genpd; + struct dentry *debugfs_mirror; + bool suspended; +}; + +struct tegra_ivc; + +struct tegra_bpmp_channel { + struct tegra_bpmp *bpmp; + struct iosys_map ib; + struct iosys_map ob; + struct completion completion; + struct tegra_ivc *ivc; + unsigned int index; +}; + +struct tegra_bpmp_clk { + struct clk_hw hw; + struct tegra_bpmp *bpmp; + unsigned int id; + unsigned int num_parents; + unsigned int *parents; +}; + +struct tegra_bpmp_clk_info { + unsigned int id; + char name[40]; + unsigned int parents[16]; + unsigned int num_parents; + long unsigned int flags; +}; + +struct tegra_bpmp_clk_message { + unsigned int cmd; + unsigned int id; + struct { + const void *data; + size_t size; + } tx; + struct { + void *data; + size_t size; + int ret; + } rx; +}; + +struct tegra_bpmp_mb_data { + u32 code; + u32 flags; + u8 data[120]; +}; + +struct tegra_bpmp_message { + unsigned int mrq; + struct { + const void *data; + size_t size; + } tx; + struct { + void *data; + size_t size; + int ret; + } rx; + long unsigned int flags; +}; + +typedef void (*tegra_bpmp_mrq_handler_t)(unsigned int, struct tegra_bpmp_channel *, void *); + +struct tegra_bpmp_mrq { + struct list_head list; + unsigned int mrq; + tegra_bpmp_mrq_handler_t handler; + void *data; +}; + +struct tegra_bpmp_ops { + int (*init)(struct tegra_bpmp *); + void (*deinit)(struct tegra_bpmp *); + bool (*is_response_ready)(struct tegra_bpmp_channel *); + bool (*is_request_ready)(struct tegra_bpmp_channel *); + int (*ack_response)(struct tegra_bpmp_channel *); + int (*ack_request)(struct tegra_bpmp_channel *); + bool (*is_response_channel_free)(struct tegra_bpmp_channel *); + bool (*is_request_channel_free)(struct tegra_bpmp_channel *); + int (*post_response)(struct tegra_bpmp_channel *); + int (*post_request)(struct tegra_bpmp_channel *); + int (*ring_doorbell)(struct tegra_bpmp *); + int (*resume)(struct tegra_bpmp *); +}; + +struct tegra_bpmp_soc { + struct { + struct { + unsigned int offset; + unsigned int count; + unsigned int timeout; + } cpu_tx; + struct { + unsigned int offset; + unsigned int count; + unsigned int timeout; + } thread; + struct { + unsigned int offset; + unsigned int count; + unsigned int timeout; + } cpu_rx; + } channels; + const struct tegra_bpmp_ops *ops; + unsigned int num_resets; +}; + +struct tegra_cbb_error { + const char *code; + const char *source; + const char *desc; +}; + +struct tegra_cbb_ops { + int (*debugfs_show)(struct tegra_cbb *, struct seq_file *, void *); + int (*interrupt_enable)(struct tegra_cbb *); + void (*error_enable)(struct tegra_cbb *); + void (*fault_enable)(struct tegra_cbb *); + void (*stall_enable)(struct tegra_cbb *); + void (*error_clear)(struct tegra_cbb *); + u32 (*get_status)(struct tegra_cbb *); +}; + +struct tegra_clk { + int dt_id; + bool present; +}; + +struct tegra_clk_device { + struct notifier_block clk_nb; + struct device *dev; + struct clk_hw *hw; + struct mutex lock; +}; + +struct tegra_clk_duplicate { + int clk_id; + struct clk_lookup lookup; +}; + +struct tegra_clk_frac_div { + struct clk_hw hw; + void *reg; + u8 flags; + u8 shift; + u8 width; + u8 frac_width; + spinlock_t *lock; +}; + +struct tegra_clk_init_table { + unsigned int clk_id; + unsigned int parent_id; + long unsigned int rate; + int state; +}; + +struct tegra_clk_periph_regs; + +struct tegra_clk_periph_gate { + u32 magic; + struct clk_hw hw; + void *clk_base; + u8 flags; + int clk_num; + int *enable_refcnt; + const struct tegra_clk_periph_regs *regs; +}; + +struct tegra_clk_periph { + u32 magic; + struct clk_hw hw; + struct clk_mux mux; + struct tegra_clk_frac_div divider; + struct tegra_clk_periph_gate gate; + const struct clk_ops *mux_ops; + const struct clk_ops *div_ops; + const struct clk_ops *gate_ops; +}; + +struct tegra_clk_periph_fixed { + struct clk_hw hw; + void *base; + const struct tegra_clk_periph_regs *regs; + unsigned int mul; + unsigned int div; + unsigned int num; +}; + +struct tegra_clk_periph_regs { + u32 enb_reg; + u32 enb_set_reg; + u32 enb_clr_reg; + u32 rst_reg; + u32 rst_set_reg; + u32 rst_clr_reg; +}; + +struct tegra_clk_pll { + struct clk_hw hw; + void *clk_base; + void *pmc; + spinlock_t *lock; + struct tegra_clk_pll_params *params; +}; + +struct tegra_clk_pll_freq_table { + long unsigned int input_rate; + long unsigned int output_rate; + u32 n; + u32 m; + u8 p; + u8 cpcon; + u16 sdm_data; +}; + +struct tegra_clk_pll_out { + struct clk_hw hw; + void *reg; + u8 enb_bit_idx; + u8 rst_bit_idx; + spinlock_t *lock; + u8 flags; +}; + +struct tegra_clk_pll_params { + long unsigned int input_min; + long unsigned int input_max; + long unsigned int cf_min; + long unsigned int cf_max; + long unsigned int vco_min; + long unsigned int vco_max; + u32 base_reg; + u32 misc_reg; + u32 lock_reg; + u32 lock_mask; + u32 lock_enable_bit_idx; + u32 iddq_reg; + u32 iddq_bit_idx; + u32 reset_reg; + u32 reset_bit_idx; + u32 sdm_din_reg; + u32 sdm_din_mask; + u32 sdm_ctrl_reg; + u32 sdm_ctrl_en_mask; + u32 ssc_ctrl_reg; + u32 ssc_ctrl_en_mask; + u32 aux_reg; + u32 dyn_ramp_reg; + u32 ext_misc_reg[6]; + u32 pmc_divnm_reg; + u32 pmc_divp_reg; + u32 flags; + int stepa_shift; + int stepb_shift; + int lock_delay; + int max_p; + bool defaults_set; + const struct pdiv_map *pdiv_tohw; + struct div_nmp *div_nmp; + struct tegra_clk_pll_freq_table *freq_table; + long unsigned int fixed_rate; + u16 mdiv_default; + u32 (*round_p_to_pdiv)(u32, u32 *); + void (*set_gain)(struct tegra_clk_pll_freq_table *); + int (*calc_rate)(struct clk_hw *, struct tegra_clk_pll_freq_table *, long unsigned int, long unsigned int); + long unsigned int (*adjust_vco)(struct tegra_clk_pll_params *, long unsigned int); + void (*set_defaults)(struct tegra_clk_pll *); + int (*dyn_ramp)(struct tegra_clk_pll *, struct tegra_clk_pll_freq_table *); + int (*pre_rate_change)(void); + void (*post_rate_change)(void); +}; + +struct tegra_clk_super_mux { + struct clk_hw hw; + void *reg; + struct tegra_clk_frac_div frac_div; + const struct clk_ops *div_ops; + u8 width; + u8 flags; + u8 div2_index; + u8 pllx_index; + spinlock_t *lock; +}; + +struct tegra_clk_sync_source { + struct clk_hw hw; + long unsigned int rate; + long unsigned int max_rate; +}; + +struct tegra_core_opp_params { + bool init_state; +}; + +struct tegra_cpu_car_ops { + void (*wait_for_reset)(u32); + void (*put_in_reset)(u32); + void (*out_of_reset)(u32); + void (*enable_clock)(u32); + void (*disable_clock)(u32); + bool (*rail_off_ready)(void); + void (*suspend)(void); + void (*resume)(void); +}; + +struct tegra_devclk { + int dt_id; + char *dev_id; + char *con_id; +}; + +struct tegra_dfll_soc_data; + +struct tegra_dfll { + struct device *dev; + struct tegra_dfll_soc_data *soc; + void *base; + void *i2c_base; + void *i2c_controller_base; + void *lut_base; + struct regulator *vdd_reg; + struct clk *soc_clk; + struct clk *ref_clk; + struct clk *i2c_clk; + struct clk *dfll_clk; + struct reset_control *dfll_rst; + struct reset_control *dvco_rst; + long unsigned int ref_rate; + long unsigned int i2c_clk_rate; + long unsigned int dvco_rate_min; + enum dfll_ctrl_mode mode; + enum dfll_tune_range tune_range; + struct dentry *debugfs_dir; + struct clk_hw dfll_clk_hw; + const char *output_clock_name; + struct dfll_rate_req last_req; + long unsigned int last_unrounded_rate; + u32 droop_ctrl; + u32 sample_rate; + u32 force_mode; + u32 cf; + u32 ci; + u32 cg; + bool cg_scale; + u32 i2c_fs_rate; + u32 i2c_reg; + u32 i2c_slave_addr; + unsigned int lut[33]; + long unsigned int lut_uv[33]; + int lut_size; + u8 lut_bottom; + u8 lut_min; + u8 lut_max; + u8 lut_safe; + enum tegra_dfll_pmu_if pmu_if; + long unsigned int pwm_rate; + struct pinctrl *pwm_pin; + struct pinctrl_state *pwm_enable_state; + struct pinctrl_state *pwm_disable_state; + u32 reg_init_uV; +}; + +struct tegra_dfll_soc_data { + struct device *dev; + long unsigned int max_freq; + const struct cvb_table *cvb; + struct rail_alignment alignment; + void (*init_clock_trimmers)(void); + void (*set_clock_trimmers_high)(void); + void (*set_clock_trimmers_low)(void); +}; + +struct tegra_dma_channel; + +typedef void (*dma_isr_handler)(struct tegra_dma_channel *, bool); + +struct tegra_dma_channel_regs { + u32 csr; + u32 ahb_ptr; + u32 apb_ptr; + u32 ahb_seq; + u32 apb_seq; + u32 wcount; +}; + +struct tegra_dma; + +struct tegra_dma_channel { + struct dma_chan dma_chan; + char name[12]; + bool config_init; + unsigned int id; + void *chan_addr; + spinlock_t lock; + bool busy; + struct tegra_dma *tdma; + bool cyclic; + struct list_head free_sg_req; + struct list_head pending_sg_req; + struct list_head free_dma_desc; + struct list_head cb_desc; + dma_isr_handler isr_handler; + struct tasklet_struct tasklet; + unsigned int slave_id; + struct dma_slave_config dma_sconfig; + struct tegra_dma_channel_regs channel_reg; + struct wait_queue_head wq; +}; + +struct tegra_dma_chip_data; + +struct tegra_dma { + struct dma_device dma_dev; + struct device *dev; + struct clk *dma_clk; + struct reset_control *rst; + spinlock_t global_lock; + void *base_addr; + const struct tegra_dma_chip_data *chip_data; + u32 global_pause_count; + struct tegra_dma_channel channels[0]; +}; + +struct tegra_dma_chip_data { + unsigned int nr_channels; + unsigned int channel_reg_size; + unsigned int max_dma_count; + bool support_channel_pause; + bool support_separate_wcount_reg; +}; + +struct tegra_dma_desc { + struct dma_async_tx_descriptor txd; + unsigned int bytes_requested; + unsigned int bytes_transferred; + enum dma_status dma_status; + struct list_head node; + struct list_head tx_list; + struct list_head cb_node; + unsigned int cb_count; +}; + +struct tegra_dma_sg_req { + struct tegra_dma_channel_regs ch_regs; + unsigned int req_len; + bool configured; + bool last_sg; + struct list_head node; + struct tegra_dma_desc *dma_desc; + unsigned int words_xferred; +}; + +struct tegra_function { + const char *name; + const char **groups; + unsigned int ngroups; +}; + +struct tegra_fuse_soc; + +struct tegra_fuse { + struct device *dev; + void *base; + phys_addr_t phys; + struct clk *clk; + struct reset_control *rst; + u32 (*read_early)(struct tegra_fuse *, unsigned int); + u32 (*read)(struct tegra_fuse *, unsigned int); + const struct tegra_fuse_soc *soc; + struct { + struct mutex lock; + struct completion wait; + struct dma_chan *chan; + struct dma_slave_config config; + dma_addr_t phys; + u32 *virt; + } apbdma; + struct nvmem_device *nvmem; + struct nvmem_cell_lookup *lookups; +}; + +struct tegra_fuse_info { + u32 (*read)(struct tegra_fuse *, unsigned int); + unsigned int size; + unsigned int spare; +}; + +struct tegra_sku_info; + +struct tegra_fuse_soc { + void (*init)(struct tegra_fuse *); + void (*speedo_init)(struct tegra_sku_info *); + int (*probe)(struct tegra_fuse *); + const struct tegra_fuse_info *info; + const struct nvmem_cell_lookup *lookups; + unsigned int num_lookups; + const struct nvmem_cell_info *cells; + unsigned int num_cells; + const struct nvmem_keepout *keepouts; + unsigned int num_keepouts; + const struct attribute_group *soc_attr_group; + bool clk_suspend_on; +}; + +struct tegra_gpio_soc; + +struct tegra_gpio { + struct gpio_chip gpio; + unsigned int num_irq; + unsigned int *irq; + const struct tegra_gpio_soc *soc; + unsigned int num_irqs_per_bank; + unsigned int num_banks; + void *secure; + void *base; +}; + +struct tegra_gpio_bank { + unsigned int bank; + raw_spinlock_t lvl_lock[4]; + spinlock_t dbc_lock[4]; + u32 cnf[4]; + u32 out[4]; + u32 oe[4]; + u32 int_enb[4]; + u32 int_lvl[4]; + u32 wake_enb[4]; + u32 dbc_enb[4]; + u32 dbc_cnt[4]; +}; + +struct tegra_gpio_soc_config; + +struct tegra_gpio_info { + struct device *dev; + void *regs; + struct tegra_gpio_bank *bank_info; + const struct tegra_gpio_soc_config *soc; + struct gpio_chip gc; + u32 bank_count; + unsigned int *irqs; +}; + +struct tegra_gpio_port { + const char *name; + unsigned int bank; + unsigned int port; + unsigned int pins; +}; + +struct tegra_gpio_soc { + const struct tegra_gpio_port *ports; + unsigned int num_ports; + const char *name; + unsigned int instance; + unsigned int num_irqs_per_bank; + const struct tegra186_pin_range *pin_ranges; + unsigned int num_pin_ranges; + const char *pinmux; + bool has_gte; + bool has_vm_support; +}; + +struct tegra_gpio_soc_config { + bool debounce_supported; + u32 bank_stride; + u32 upper_offset; +}; + +struct tegra_hsp_soc; + +struct tegra_hsp_mailbox; + +struct tegra_hsp { + struct device *dev; + const struct tegra_hsp_soc *soc; + struct mbox_controller mbox_db; + struct mbox_controller mbox_sm; + void *regs; + unsigned int doorbell_irq; + unsigned int *shared_irqs; + unsigned int shared_irq; + unsigned int num_sm; + unsigned int num_as; + unsigned int num_ss; + unsigned int num_db; + unsigned int num_si; + spinlock_t lock; + struct lock_class_key lock_key; + struct list_head doorbells; + struct tegra_hsp_mailbox *mailboxes; + long unsigned int mask; +}; + +struct tegra_hsp_channel { + struct tegra_hsp *hsp; + struct mbox_chan *chan; + void *regs; +}; + +struct tegra_hsp_db_map { + const char *name; + unsigned int master; + unsigned int index; +}; + +struct tegra_hsp_doorbell { + struct tegra_hsp_channel channel; + struct list_head list; + const char *name; + unsigned int master; + unsigned int index; +}; + +struct tegra_hsp_sm_ops; + +struct tegra_hsp_mailbox { + struct tegra_hsp_channel channel; + const struct tegra_hsp_sm_ops *ops; + unsigned int index; + bool producer; +}; + +struct tegra_hsp_sm_ops { + void (*send)(struct tegra_hsp_channel *, void *); + void (*recv)(struct tegra_hsp_channel *); +}; + +struct tegra_hsp_soc { + const struct tegra_hsp_db_map *map; + bool has_per_mb_ie; + bool has_128_bit_mb; + unsigned int reg_stride; + unsigned int si_shift; + unsigned int db_shift; + unsigned int as_shift; + unsigned int ss_shift; + unsigned int sm_shift; + unsigned int si_mask; + unsigned int db_mask; + unsigned int as_mask; + unsigned int ss_mask; + unsigned int sm_mask; +}; + +struct tegra_ictlr_info { + void *base[6]; + u32 cop_ier[6]; + u32 cop_iep[6]; + u32 cpu_ier[6]; + u32 cpu_iep[6]; + u32 ictlr_wake_mask[6]; +}; + +struct tegra_ictlr_soc { + unsigned int num_ictlrs; +}; + +struct tegra_io_pad_soc { + enum tegra_io_pad id; + unsigned int dpd; + unsigned int request; + unsigned int status; + unsigned int voltage; + const char *name; +}; + +struct tegra_ivc { + struct device *peer; + struct { + struct iosys_map map; + unsigned int position; + dma_addr_t phys; + } rx; + struct { + struct iosys_map map; + unsigned int position; + dma_addr_t phys; + } tx; + void (*notify)(struct tegra_ivc *, void *); + void *notify_data; + unsigned int num_frames; + size_t frame_size; +}; + +struct tegra_ivc_header { + union { + struct { + u32 count; + u32 state; + }; + u8 pad[64]; + } tx; + union { + u32 count; + u8 pad[64]; + } rx; +}; + +struct tegra_smmu; + +struct tegra_mc_soc; + +struct tegra_mc_timing; + +struct tegra_mc { + struct tegra_bpmp *bpmp; + struct device *dev; + struct tegra_smmu *smmu; + void *regs; + void *bcast_ch_regs; + void **ch_regs; + struct clk *clk; + int irq; + const struct tegra_mc_soc *soc; + long unsigned int tick; + struct tegra_mc_timing *timings; + unsigned int num_timings; + unsigned int num_channels; + bool bwmgr_mrq_supported; + struct reset_controller_dev reset; + struct icc_provider provider; + spinlock_t lock; + struct { + struct dentry *root; + } debugfs; +}; + +struct tegra_mc_client { + unsigned int id; + unsigned int bpmp_id; + enum tegra_icc_client_type type; + const char *name; + union { + unsigned int swgroup; + unsigned int sid; + }; + unsigned int fifo_size; + struct { + struct { + unsigned int reg; + unsigned int bit; + } smmu; + struct { + unsigned int reg; + unsigned int shift; + unsigned int mask; + unsigned int def; + } la; + struct { + unsigned int override; + unsigned int security; + } sid; + } regs; +}; + +struct tegra_mc_icc_ops { + int (*set)(struct icc_node *, struct icc_node *); + int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); + struct icc_node * (*xlate)(const struct of_phandle_args *, void *); + struct icc_node_data * (*xlate_extended)(const struct of_phandle_args *, void *); + int (*get_bw)(struct icc_node *, u32 *, u32 *); +}; + +struct tegra_mc_ops { + int (*probe)(struct tegra_mc *); + void (*remove)(struct tegra_mc *); + int (*resume)(struct tegra_mc *); + irqreturn_t (*handle_irq)(int, void *); + int (*probe_device)(struct tegra_mc *, struct device *); +}; + +struct tegra_mc_reset { + const char *name; + long unsigned int id; + unsigned int control; + unsigned int status; + unsigned int reset; + unsigned int bit; +}; + +struct tegra_mc_reset_ops { + int (*hotreset_assert)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*hotreset_deassert)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*block_dma)(struct tegra_mc *, const struct tegra_mc_reset *); + bool (*dma_idling)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*unblock_dma)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*reset_status)(struct tegra_mc *, const struct tegra_mc_reset *); +}; + +struct tegra_smmu_soc; + +struct tegra_mc_soc { + const struct tegra_mc_client *clients; + unsigned int num_clients; + const long unsigned int *emem_regs; + unsigned int num_emem_regs; + unsigned int num_address_bits; + unsigned int atom_size; + unsigned int num_carveouts; + u16 client_id_mask; + u8 num_channels; + const struct tegra_smmu_soc *smmu; + u32 intmask; + u32 ch_intmask; + u32 global_intstatus_channel_shift; + bool has_addr_hi_reg; + const struct tegra_mc_reset_ops *reset_ops; + const struct tegra_mc_reset *resets; + unsigned int num_resets; + const struct tegra_mc_icc_ops *icc_ops; + const struct tegra_mc_ops *ops; +}; + +struct tegra_mc_timing { + long unsigned int rate; + u32 *emem_data; +}; + +struct tegra_msi { + long unsigned int used[4]; + struct irq_domain *domain; + struct mutex map_lock; + spinlock_t mask_lock; + void *virt; + dma_addr_t phys; + int irq; +}; + +struct tegra_pcie_soc; + +struct tegra_pcie { + struct device *dev; + void *pads; + void *afi; + void *cfg; + int irq; + struct resource cs; + struct clk *pex_clk; + struct clk *afi_clk; + struct clk *pll_e; + struct clk *cml_clk; + struct reset_control *pex_rst; + struct reset_control *afi_rst; + struct reset_control *pcie_xrst; + bool legacy_phy; + struct phy *phy; + struct tegra_msi msi; + struct list_head ports; + u32 xbar_config; + struct regulator_bulk_data *supplies; + unsigned int num_supplies; + const struct tegra_pcie_soc *soc; + struct dentry *debugfs; +}; + +struct tegra_pcie_port { + struct tegra_pcie *pcie; + struct device_node *np; + struct list_head list; + struct resource regs; + void *base; + unsigned int index; + unsigned int lanes; + struct phy **phys; + struct gpio_desc *reset_gpio; +}; + +struct tegra_pcie_port_soc { + struct { + u8 turnoff_bit; + u8 ack_bit; + } pme; +}; + +struct tegra_pcie_soc { + unsigned int num_ports; + const struct tegra_pcie_port_soc *ports; + unsigned int msi_base_shift; + long unsigned int afi_pex2_ctrl; + u32 pads_pll_ctl; + u32 tx_ref_sel; + u32 pads_refclk_cfg0; + u32 pads_refclk_cfg1; + u32 update_fc_threshold; + bool has_pex_clkreq_en; + bool has_pex_bias_ctrl; + bool has_intr_prsnt_sense; + bool has_cml_clk; + bool has_gen2; + bool force_pca_enable; + bool program_uphy; + bool update_clamp_threshold; + bool program_deskew_time; + bool update_fc_timer; + bool has_cache_bars; + struct { + struct { + u32 rp_ectl_2_r1; + u32 rp_ectl_4_r1; + u32 rp_ectl_5_r1; + u32 rp_ectl_6_r1; + u32 rp_ectl_2_r2; + u32 rp_ectl_4_r2; + u32 rp_ectl_5_r2; + u32 rp_ectl_6_r2; + } regs; + bool enable; + } ectl; +}; + +struct tegra_periph_init_data { + const char *name; + int clk_id; + union { + const char * const *parent_names; + const char *parent_name; + } p; + int num_parents; + struct tegra_clk_periph periph; + u32 offset; + const char *con_id; + const char *dev_id; + long unsigned int flags; +}; + +struct tegra_pingroup; + +struct tegra_pinctrl_soc_data { + unsigned int ngpios; + const char *gpio_compatible; + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const char * const *functions; + unsigned int nfunctions; + const struct tegra_pingroup *groups; + unsigned int ngroups; + bool hsm_in_mux; + bool schmitt_in_mux; + bool drvtype_in_mux; + bool sfsel_in_mux; +}; + +struct tegra_pingroup { + const char *name; + const unsigned int *pins; + u8 npins; + u8 funcs[4]; + s32 mux_reg; + s32 pupd_reg; + s32 tri_reg; + s32 drv_reg; + u32 mux_bank: 2; + u32 pupd_bank: 2; + u32 tri_bank: 2; + u32 drv_bank: 2; + s32 mux_bit: 6; + s32 pupd_bit: 6; + s32 tri_bit: 6; + s32 einput_bit: 6; + s32 odrain_bit: 6; + s32 lock_bit: 6; + s32 ioreset_bit: 6; + s32 rcv_sel_bit: 6; + s32 hsm_bit: 6; + long: 2; + s32 sfsel_bit: 6; + s32 schmitt_bit: 6; + s32 lpmd_bit: 6; + s32 drvdn_bit: 6; + s32 drvup_bit: 6; + int: 2; + s32 slwr_bit: 6; + s32 slwf_bit: 6; + s32 lpdr_bit: 6; + s32 drvtype_bit: 6; + s32 drvdn_width: 6; + long: 2; + s32 drvup_width: 6; + s32 slwr_width: 6; + s32 slwf_width: 6; + u32 parked_bitmask; +}; + +struct tegra_pingroup_config { + bool is_sfsel; +}; + +struct tegra_pmc_soc; + +struct tegra_pmc { + struct device *dev; + void *base; + void *wake; + void *aotag; + void *scratch; + struct clk *clk; + const struct tegra_pmc_soc *soc; + bool tz_only; + long unsigned int rate; + enum tegra_suspend_mode suspend_mode; + u32 cpu_good_time; + u32 cpu_off_time; + u32 core_osc_time; + u32 core_pmu_time; + u32 core_off_time; + bool corereq_high; + bool sysclkreq_high; + bool combined_req; + bool cpu_pwr_good_en; + u32 lp0_vec_phys; + u32 lp0_vec_size; + long unsigned int powergates_available[1]; + struct mutex powergates_lock; + struct pinctrl_dev *pctl_dev; + struct irq_domain *domain; + struct irq_chip irq; + struct notifier_block clk_nb; + bool core_domain_state_synced; + bool core_domain_registered; + long unsigned int *wake_type_level_map; + long unsigned int *wake_type_dual_edge_map; + long unsigned int *wake_sw_status_map; + long unsigned int *wake_cntrl_level_map; + struct syscore_ops syscore; +}; + +struct tegra_pmc_regs { + unsigned int scratch0; + unsigned int rst_status; + unsigned int rst_source_shift; + unsigned int rst_source_mask; + unsigned int rst_level_shift; + unsigned int rst_level_mask; +}; + +struct tegra_wake_event; + +struct tegra_pmc_soc { + unsigned int num_powergates; + const char * const *powergates; + unsigned int num_cpu_powergates; + const u8 *cpu_powergates; + bool has_tsense_reset; + bool has_gpu_clamps; + bool needs_mbist_war; + bool has_impl_33v_pwr; + bool maybe_tz_only; + const struct tegra_io_pad_soc *io_pads; + unsigned int num_io_pads; + const struct pinctrl_pin_desc *pin_descs; + unsigned int num_pin_descs; + const struct tegra_pmc_regs *regs; + void (*init)(struct tegra_pmc *); + void (*setup_irq_polarity)(struct tegra_pmc *, struct device_node *, bool); + void (*set_wake_filters)(struct tegra_pmc *); + int (*irq_set_wake)(struct irq_data *, unsigned int); + int (*irq_set_type)(struct irq_data *, unsigned int); + int (*powergate_set)(struct tegra_pmc *, unsigned int, bool); + const char * const *reset_sources; + unsigned int num_reset_sources; + const char * const *reset_levels; + unsigned int num_reset_levels; + const struct tegra_wake_event *wake_events; + unsigned int num_wake_events; + unsigned int max_wake_events; + unsigned int max_wake_vectors; + const struct pmc_clk_init_data *pmc_clks_data; + unsigned int num_pmc_clks; + bool has_blink_output; + bool has_usb_sleepwalk; + bool supports_core_domain; + bool has_single_mmio_aperture; +}; + +struct tegra_pmx { + struct device *dev; + struct pinctrl_dev *pctl; + const struct tegra_pinctrl_soc_data *soc; + struct tegra_function *functions; + const char **group_pins; + struct pinctrl_gpio_range gpio_range; + struct pinctrl_desc desc; + int nbanks; + void **regs; + u32 *backup_regs; + struct tegra_pingroup_config *pingroup_configs; +}; + +struct tegra_powergate { + struct generic_pm_domain genpd; + struct tegra_pmc *pmc; + unsigned int id; + struct clk **clks; + unsigned int num_clks; + long unsigned int *clk_rates; + struct reset_control *reset; +}; + +struct tegra_powergate___2 { + struct generic_pm_domain genpd; + struct tegra_bpmp *bpmp; + unsigned int id; +}; + +struct tegra_powergate_info { + unsigned int id; + char *name; +}; + +struct tegra_qspi_soc_data; + +struct tegra_qspi { + struct device *dev; + struct spi_controller *host; + spinlock_t lock; + struct clk *clk; + void *base; + phys_addr_t phys; + unsigned int irq; + u32 cur_speed; + unsigned int cur_pos; + unsigned int words_per_32bit; + unsigned int bytes_per_word; + unsigned int curr_dma_words; + unsigned int cur_direction; + unsigned int cur_rx_pos; + unsigned int cur_tx_pos; + unsigned int dma_buf_size; + unsigned int max_buf_size; + bool is_curr_dma_xfer; + struct completion rx_dma_complete; + struct completion tx_dma_complete; + u32 tx_status; + u32 rx_status; + u32 status_reg; + bool is_packed; + bool use_dma; + u32 command1_reg; + u32 dma_control_reg; + u32 def_command1_reg; + u32 def_command2_reg; + u32 spi_cs_timing1; + u32 spi_cs_timing2; + u8 dummy_cycles; + struct completion xfer_completion; + struct spi_transfer *curr_xfer; + struct dma_chan *rx_dma_chan; + u32 *rx_dma_buf; + dma_addr_t rx_dma_phys; + struct dma_async_tx_descriptor *rx_dma_desc; + struct dma_chan *tx_dma_chan; + u32 *tx_dma_buf; + dma_addr_t tx_dma_phys; + struct dma_async_tx_descriptor *tx_dma_desc; + const struct tegra_qspi_soc_data *soc_data; +}; + +struct tegra_qspi_client_data { + int tx_clk_tap_delay; + int rx_clk_tap_delay; +}; + +struct tegra_qspi_soc_data { + bool has_dma; + bool cmb_xfer_capable; + bool supports_tpm; + unsigned int cs_count; +}; + +struct tegra_sdmmc_mux { + struct clk_hw hw; + void *reg; + spinlock_t *lock; + const struct clk_ops *gate_ops; + struct tegra_clk_periph_gate gate; + u8 div_flags; +}; + +struct tegra_sku_info { + int sku_id; + int cpu_process_id; + int cpu_speedo_id; + int cpu_speedo_value; + int cpu_iddq_value; + int soc_process_id; + int soc_speedo_id; + int soc_speedo_value; + int gpu_process_id; + int gpu_speedo_id; + int gpu_speedo_value; + enum tegra_revision revision; + enum tegra_platform platform; +}; + +struct tegra_smmu { + void *regs; + struct device *dev; + struct tegra_mc *mc; + const struct tegra_smmu_soc *soc; + struct list_head groups; + long unsigned int pfn_mask; + long unsigned int tlb_mask; + long unsigned int *asids; + struct mutex lock; + struct list_head list; + struct dentry *debugfs; + struct iommu_device iommu; +}; + +struct tegra_smmu_as { + struct iommu_domain domain; + struct tegra_smmu *smmu; + unsigned int use_count; + spinlock_t lock; + u32 *count; + struct page **pts; + struct page *pd; + dma_addr_t pd_dma; + unsigned int id; + u32 attr; +}; + +struct tegra_smmu_group_soc; + +struct tegra_smmu_group { + struct list_head list; + struct tegra_smmu *smmu; + const struct tegra_smmu_group_soc *soc; + struct iommu_group *group; + unsigned int swgroup; +}; + +struct tegra_smmu_group_soc { + const char *name; + const unsigned int *swgroups; + unsigned int num_swgroups; +}; + +struct tegra_smmu_swgroup; + +struct tegra_smmu_soc { + const struct tegra_mc_client *clients; + unsigned int num_clients; + const struct tegra_smmu_swgroup *swgroups; + unsigned int num_swgroups; + const struct tegra_smmu_group_soc *groups; + unsigned int num_groups; + bool supports_round_robin_arbitration; + bool supports_request_limit; + unsigned int num_tlb_lines; + unsigned int num_asids; +}; + +struct tegra_smmu_swgroup { + const char *name; + unsigned int swgroup; + unsigned int reg; +}; + +struct tegra_super_gen_info { + enum tegra_super_gen gen; + const char **sclk_parents; + const char **cclk_g_parents; + const char **cclk_lp_parents; + int num_sclk_parents; + int num_cclk_g_parents; + int num_cclk_lp_parents; +}; + +struct tegra_sync_source_initdata { + char *name; + long unsigned int rate; + long unsigned int max_rate; + int clk_id; +}; + +struct tegra_tcu { + struct uart_driver driver; + struct console console; + struct uart_port port; + struct mbox_client tx_client; + struct mbox_client rx_client; + struct mbox_chan *tx; + struct mbox_chan *rx; +}; + +struct tegra_uart { + struct clk *clk; + struct reset_control *rst; + int line; +}; + +struct tegra_wake_event { + const char *name; + unsigned int id; + unsigned int irq; + struct { + unsigned int instance; + unsigned int pin; + } gpio; +}; + +struct tegra_xusb_padctl_soc; + +struct tegra_xusb_padctl { + struct device *dev; + void *regs; + struct mutex lock; + struct reset_control *rst; + const struct tegra_xusb_padctl_soc *soc; + struct pinctrl_dev *pinctrl; + struct pinctrl_desc desc; + struct phy_provider *provider; + struct phy *phys[2]; + unsigned int enable; +}; + +struct tegra_xusb_padctl_function { + const char *name; + const char * const *groups; + unsigned int num_groups; +}; + +struct tegra_xusb_padctl_lane { + const char *name; + unsigned int offset; + unsigned int shift; + unsigned int mask; + unsigned int iddq; + const unsigned int *funcs; + unsigned int num_funcs; +}; + +struct tegra_xusb_padctl_property { + const char *name; + enum tegra_xusb_padctl_param param; +}; + +struct tegra_xusb_padctl_soc { + const struct pinctrl_pin_desc *pins; + unsigned int num_pins; + const struct tegra_xusb_padctl_function *functions; + unsigned int num_functions; + const struct tegra_xusb_padctl_lane *lanes; + unsigned int num_lanes; +}; + +struct teo_bin { + unsigned int intercepts; + unsigned int hits; +}; + +struct teo_cpu { + s64 sleep_length_ns; + struct teo_bin state_bins[10]; + unsigned int total; + unsigned int tick_intercepts; + unsigned int short_idles; + bool artificial_wakeup; +}; + +struct termio { + short unsigned int c_iflag; + short unsigned int c_oflag; + short unsigned int c_cflag; + short unsigned int c_lflag; + unsigned char c_line; + unsigned char c_cc[8]; +}; + +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 tgec_cfg { + bool pause_ignore; + bool promiscuous_mode_enable; + u16 max_frame_length; + u16 pause_quant; + u32 tx_ipg_length; +}; + +struct tgec_mdio_controller { + __be32 reserved[12]; + __be32 mdio_stat; + __be32 mdio_ctl; + __be32 mdio_data; + __be32 mdio_addr; +}; + +struct tgec_regs { + u32 tgec_id; + u32 reserved001[1]; + u32 command_config; + u32 mac_addr_0; + u32 mac_addr_1; + u32 maxfrm; + u32 pause_quant; + u32 rx_fifo_sections; + u32 tx_fifo_sections; + u32 rx_fifo_almost_f_e; + u32 tx_fifo_almost_f_e; + u32 hashtable_ctrl; + u32 mdio_cfg_status; + u32 mdio_command; + u32 mdio_data; + u32 mdio_regaddr; + u32 status; + u32 tx_ipg_len; + u32 mac_addr_2; + u32 mac_addr_3; + u32 rx_fifo_ptr_rd; + u32 rx_fifo_ptr_wr; + u32 tx_fifo_ptr_rd; + u32 tx_fifo_ptr_wr; + u32 imask; + u32 ievent; + u32 udp_port; + u32 type_1588v2; + u32 reserved070[4]; + u32 tfrm_u; + u32 tfrm_l; + u32 rfrm_u; + u32 rfrm_l; + u32 rfcs_u; + u32 rfcs_l; + u32 raln_u; + u32 raln_l; + u32 txpf_u; + u32 txpf_l; + u32 rxpf_u; + u32 rxpf_l; + u32 rlong_u; + u32 rlong_l; + u32 rflr_u; + u32 rflr_l; + u32 tvlan_u; + u32 tvlan_l; + u32 rvlan_u; + u32 rvlan_l; + u32 toct_u; + u32 toct_l; + u32 roct_u; + u32 roct_l; + u32 ruca_u; + u32 ruca_l; + u32 rmca_u; + u32 rmca_l; + u32 rbca_u; + u32 rbca_l; + u32 terr_u; + u32 terr_l; + u32 reserved100[2]; + u32 tuca_u; + u32 tuca_l; + u32 tmca_u; + u32 tmca_l; + u32 tbca_u; + u32 tbca_l; + u32 rdrp_u; + u32 rdrp_l; + u32 reoct_u; + u32 reoct_l; + u32 rpkt_u; + u32 rpkt_l; + u32 trund_u; + u32 trund_l; + u32 r64_u; + u32 r64_l; + u32 r127_u; + u32 r127_l; + u32 r255_u; + u32 r255_l; + u32 r511_u; + u32 r511_l; + u32 r1023_u; + u32 r1023_l; + u32 r1518_u; + u32 r1518_l; + u32 r1519x_u; + u32 r1519x_l; + u32 trovr_u; + u32 trovr_l; + u32 trjbr_u; + u32 trjbr_l; + u32 trfrg_u; + u32 trfrg_l; + u32 rerr_u; + u32 rerr_l; +}; + +struct tgid_iter { + unsigned int tgid; + struct task_struct *task; +}; + +struct thermal_attr { + struct device_attribute attr; + char name[20]; +}; + +typedef struct thermal_cooling_device *class_cooling_dev_t; + +struct thermal_cooling_device { + int id; + const char *type; + long unsigned int 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_genl_cpu_caps { + int cpu; + int performance; + int efficiency; +}; + +struct thermal_genl_notify { + int mcgrp; +}; + +struct thermal_governor { + const char *name; + int (*bind_to_tz)(struct thermal_zone_device *); + void (*unbind_from_tz)(struct thermal_zone_device *); + void (*trip_crossed)(struct thermal_zone_device *, const struct thermal_trip *, bool); + void (*manage)(struct thermal_zone_device *); + void (*update_tz)(struct thermal_zone_device *, enum thermal_notify_event); + struct list_head governor_list; +}; + +struct thermal_hwmon_attr { + struct device_attribute attr; + char name[16]; +}; + +struct thermal_hwmon_device { + char type[20]; + struct device *device; + int count; + struct list_head tz_list; + struct list_head node; +}; + +struct thermal_hwmon_temp { + struct list_head hwmon_node; + struct thermal_zone_device *tz; + struct thermal_hwmon_attr temp_input; + struct thermal_hwmon_attr temp_crit; +}; + +struct thermal_instance { + int id; + char name[20]; + struct thermal_cooling_device *cdev; + const struct thermal_trip *trip; + bool initialized; + long unsigned int upper; + long unsigned int lower; + long unsigned int target; + char attr_name[20]; + struct device_attribute attr; + char weight_attr_name[20]; + struct device_attribute weight_attr; + struct list_head trip_node; + struct list_head cdev_node; + unsigned int weight; + bool upper_no_limit; +}; + +struct thermal_trip { + int temperature; + int hysteresis; + enum thermal_trip_type type; + u8 flags; + void *priv; +}; + +struct thermal_trip_attrs { + struct thermal_attr type; + struct thermal_attr temp; + struct thermal_attr hyst; +}; + +struct thermal_trip_desc { + struct thermal_trip trip; + struct thermal_trip_attrs trip_attrs; + struct list_head list_node; + struct list_head thermal_instances; + int threshold; +}; + +typedef struct thermal_zone_device *class_thermal_zone_get_by_id_t; + +typedef struct thermal_zone_device *class_thermal_zone_reverse_t; + +typedef struct thermal_zone_device *class_thermal_zone_t; + +struct thermal_zone_device_ops { + bool (*should_bind)(struct thermal_zone_device *, const struct thermal_trip *, struct thermal_cooling_device *, struct cooling_spec *); + int (*get_temp)(struct thermal_zone_device *, int *); + int (*set_trips)(struct thermal_zone_device *, int, int); + int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode); + int (*set_trip_temp)(struct thermal_zone_device *, const struct thermal_trip *, int); + int (*get_crit_temp)(struct thermal_zone_device *, int *); + int (*set_emul_temp)(struct thermal_zone_device *, int); + int (*get_trend)(struct thermal_zone_device *, const struct thermal_trip *, enum thermal_trend *); + void (*hot)(struct thermal_zone_device *); + void (*critical)(struct thermal_zone_device *); +}; + +struct thermal_zone_params; + +struct thermal_zone_device { + int id; + char type[20]; + struct device device; + struct completion removal; + struct completion resume; + struct attribute_group trips_attribute_group; + struct list_head trips_high; + struct list_head trips_reached; + struct list_head trips_invalid; + enum thermal_device_mode mode; + void *devdata; + int num_trips; + long unsigned int passive_delay_jiffies; + long unsigned int polling_delay_jiffies; + long unsigned int recheck_delay_jiffies; + int temperature; + int last_temperature; + int emul_temperature; + int passive; + int prev_low_trip; + int prev_high_trip; + struct thermal_zone_device_ops ops; + struct thermal_zone_params *tzp; + struct thermal_governor *governor; + void *governor_data; + struct ida ida; + struct mutex lock; + struct list_head node; + struct delayed_work poll_queue; + enum thermal_notify_event notify_event; + u8 state; + struct list_head user_thresholds; + struct thermal_trip_desc trips[0]; +}; + +struct thermal_zone_params { + const char *governor_name; + bool no_hwmon; + u32 sustainable_power; + s32 k_po; + s32 k_pu; + s32 k_i; + s32 k_d; + s32 integral_cutoff; + int slope; + int offset; +}; + +struct thpsize { + struct kobject kobj; + struct list_head node; + int order; +}; + +struct throtl_service_queue { + struct throtl_service_queue *parent_sq; + struct list_head queued[2]; + unsigned int nr_queued[2]; + struct rb_root_cached pending_tree; + unsigned int nr_pending; + long unsigned int first_pending_disptime; + struct timer_list pending_timer; +}; + +struct throtl_data { + struct throtl_service_queue service_queue; + struct request_queue *queue; + unsigned int nr_queued[2]; + unsigned int throtl_slice; + struct work_struct dispatch_work; + bool track_bio_latency; +}; + +struct throtl_grp; + +struct throtl_qnode { + struct list_head node; + struct bio_list bios; + struct throtl_grp *tg; +}; + +struct throtl_grp { + struct blkg_policy_data pd; + struct rb_node rb_node; + struct throtl_data *td; + struct throtl_service_queue service_queue; + struct throtl_qnode qnode_on_self[2]; + struct throtl_qnode qnode_on_parent[2]; + long unsigned int disptime; + unsigned int flags; + bool has_rules_bps[2]; + bool has_rules_iops[2]; + uint64_t bps[2]; + unsigned int iops[2]; + uint64_t bytes_disp[2]; + unsigned int io_disp[2]; + uint64_t last_bytes_disp[2]; + unsigned int last_io_disp[2]; + long long int carryover_bytes[2]; + int carryover_ios[2]; + long unsigned int last_check_time; + long unsigned int slice_start[2]; + long unsigned int slice_end[2]; + struct blkg_rwstat stat_bytes; + struct blkg_rwstat stat_ios; +}; + +struct thunder_pem_pci { + u32 ea_entry[3]; + void *pem_reg_base; +}; + +struct ti_cpufreq_soc_data; + +struct ti_cpufreq_data { + struct device *cpu_dev; + struct device_node *opp_node; + struct regmap *syscon; + const struct ti_cpufreq_soc_data *soc_data; +}; + +struct ti_cpufreq_soc_data { + const char * const *reg_names; + long unsigned int (*efuse_xlate)(struct ti_cpufreq_data *, long unsigned int); + long unsigned int efuse_fallback; + long unsigned int efuse_offset; + long unsigned int efuse_mask; + long unsigned int efuse_shift; + long unsigned int rev_offset; + bool multi_regulator; + u8 quirks; +}; + +struct ti_msgmgr_valid_queue_desc; + +struct ti_msgmgr_desc { + u8 queue_count; + u8 max_message_size; + u8 max_messages; + u8 data_first_reg; + u8 data_last_reg; + u32 status_cnt_mask; + u32 status_err_mask; + bool tx_polled; + int tx_poll_timeout_ms; + const struct ti_msgmgr_valid_queue_desc *valid_queues; + const char *data_region_name; + const char *status_region_name; + const char *ctrl_region_name; + int num_valid_queues; + bool is_sproxy; +}; + +struct ti_queue_inst; + +struct ti_msgmgr_inst { + struct device *dev; + const struct ti_msgmgr_desc *desc; + void *queue_proxy_region; + void *queue_state_debug_region; + void *queue_ctrl_region; + u8 num_valid_queues; + struct ti_queue_inst *qinsts; + struct mbox_controller mbox; + struct mbox_chan *chans; +}; + +struct ti_msgmgr_message { + size_t len; + u8 *buf; + struct mbox_chan *chan_rx; + int timeout_rx_ms; +}; + +struct ti_msgmgr_valid_queue_desc { + u8 queue_id; + u8 proxy_id; + bool is_tx; +}; + +struct ti_opp_supply_optimum_voltage_table; + +struct ti_opp_supply_data { + struct ti_opp_supply_optimum_voltage_table *vdd_table; + u32 num_vdd_table; + u32 vdd_absolute_max_voltage_uv; + struct dev_pm_opp_supply old_supplies[2]; + struct dev_pm_opp_supply new_supplies[2]; +}; + +struct ti_opp_supply_of_data { + const u8 flags; + const u32 efuse_voltage_mask; + const bool efuse_voltage_uv; +}; + +struct ti_opp_supply_optimum_voltage_table { + unsigned int reference_uv; + unsigned int optimized_uv; +}; + +struct ti_queue_inst { + char name[30]; + u8 queue_id; + u8 proxy_id; + int irq; + bool is_tx; + void *queue_buff_start; + void *queue_buff_end; + void *queue_state; + void *queue_ctrl; + struct mbox_chan *chan; + u32 *rx_buff; + bool polled_rx_mode; +}; + +struct ti_sci_clk_ops { + int (*get_clock)(const struct ti_sci_handle *, u32, u32, bool, bool, bool); + int (*idle_clock)(const struct ti_sci_handle *, u32, u32); + int (*put_clock)(const struct ti_sci_handle *, u32, u32); + int (*is_auto)(const struct ti_sci_handle *, u32, u32, bool *); + int (*is_on)(const struct ti_sci_handle *, u32, u32, bool *, bool *); + int (*is_off)(const struct ti_sci_handle *, u32, u32, bool *, bool *); + int (*set_parent)(const struct ti_sci_handle *, u32, u32, u32); + int (*get_parent)(const struct ti_sci_handle *, u32, u32, u32 *); + int (*get_num_parents)(const struct ti_sci_handle *, u32, u32, u32 *); + int (*get_best_match_freq)(const struct ti_sci_handle *, u32, u32, u64, u64, u64, u64 *); + int (*set_freq)(const struct ti_sci_handle *, u32, u32, u64, u64, u64); + int (*get_freq)(const struct ti_sci_handle *, u32, u32, u64 *); +}; + +struct ti_sci_core_ops { + int (*reboot_device)(const struct ti_sci_handle *); +}; + +struct ti_sci_desc { + u8 default_host_id; + int max_rx_timeout_ms; + int max_msgs; + int max_msg_size; +}; + +struct ti_sci_dev_ops { + int (*get_device)(const struct ti_sci_handle *, u32); + int (*get_device_exclusive)(const struct ti_sci_handle *, u32); + int (*idle_device)(const struct ti_sci_handle *, u32); + int (*idle_device_exclusive)(const struct ti_sci_handle *, u32); + int (*put_device)(const struct ti_sci_handle *, u32); + int (*is_valid)(const struct ti_sci_handle *, u32); + int (*get_context_loss_count)(const struct ti_sci_handle *, u32, u32 *); + int (*is_idle)(const struct ti_sci_handle *, u32, bool *); + int (*is_stop)(const struct ti_sci_handle *, u32, bool *, bool *); + int (*is_on)(const struct ti_sci_handle *, u32, bool *, bool *); + int (*is_transitioning)(const struct ti_sci_handle *, u32, bool *); + int (*set_device_resets)(const struct ti_sci_handle *, u32, u32); + int (*get_device_resets)(const struct ti_sci_handle *, u32, u32 *); +}; + +struct ti_sci_version_info { + u8 abi_major; + u8 abi_minor; + u16 firmware_revision; + char firmware_description[32]; +}; + +struct ti_sci_pm_ops { + int (*lpm_wake_reason)(const struct ti_sci_handle *, u32 *, u64 *, u8 *, u8 *); + int (*set_device_constraint)(const struct ti_sci_handle *, u32, u8); + int (*set_latency_constraint)(const struct ti_sci_handle *, u16, u8); +}; + +struct ti_sci_resource_desc; + +struct ti_sci_rm_core_ops { + int (*get_range)(const struct ti_sci_handle *, u32, u8, struct ti_sci_resource_desc *); + int (*get_range_from_shost)(const struct ti_sci_handle *, u32, u8, u8, struct ti_sci_resource_desc *); +}; + +struct ti_sci_rm_irq_ops { + int (*set_irq)(const struct ti_sci_handle *, u16, u16, u16, u16); + int (*set_event_map)(const struct ti_sci_handle *, u16, u16, u16, u16, u16, u8); + int (*free_irq)(const struct ti_sci_handle *, u16, u16, u16, u16); + int (*free_event_map)(const struct ti_sci_handle *, u16, u16, u16, u16, u16, u8); +}; + +struct ti_sci_msg_rm_ring_cfg; + +struct ti_sci_rm_ringacc_ops { + int (*set_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_ring_cfg *); +}; + +struct ti_sci_rm_psil_ops { + int (*pair)(const struct ti_sci_handle *, u32, u32, u32); + int (*unpair)(const struct ti_sci_handle *, u32, u32, u32); +}; + +struct ti_sci_msg_rm_udmap_tx_ch_cfg; + +struct ti_sci_msg_rm_udmap_rx_ch_cfg; + +struct ti_sci_msg_rm_udmap_flow_cfg; + +struct ti_sci_rm_udmap_ops { + int (*tx_ch_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_udmap_tx_ch_cfg *); + int (*rx_ch_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_udmap_rx_ch_cfg *); + int (*rx_flow_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_udmap_flow_cfg *); +}; + +struct ti_sci_proc_ops { + int (*request)(const struct ti_sci_handle *, u8); + int (*release)(const struct ti_sci_handle *, u8); + int (*handover)(const struct ti_sci_handle *, u8, u8); + int (*set_config)(const struct ti_sci_handle *, u8, u64, u32, u32); + int (*set_control)(const struct ti_sci_handle *, u8, u32, u32); + int (*get_status)(const struct ti_sci_handle *, u8, u64 *, u32 *, u32 *, u32 *); +}; + +struct ti_sci_ops { + struct ti_sci_core_ops core_ops; + struct ti_sci_dev_ops dev_ops; + struct ti_sci_clk_ops clk_ops; + struct ti_sci_pm_ops pm_ops; + struct ti_sci_rm_core_ops rm_core_ops; + struct ti_sci_rm_irq_ops rm_irq_ops; + struct ti_sci_rm_ringacc_ops rm_ring_ops; + struct ti_sci_rm_psil_ops rm_psil_ops; + struct ti_sci_rm_udmap_ops rm_udmap_ops; + struct ti_sci_proc_ops proc_ops; +}; + +struct ti_sci_handle { + struct ti_sci_version_info version; + struct ti_sci_ops ops; +}; + +struct ti_sci_xfer; + +struct ti_sci_xfers_info { + struct semaphore sem_xfer_count; + struct ti_sci_xfer *xfer_block; + long unsigned int *xfer_alloc_table; + spinlock_t xfer_lock; +}; + +struct ti_sci_info { + struct device *dev; + const struct ti_sci_desc *desc; + struct dentry *d; + void *debug_region; + char *debug_buffer; + size_t debug_region_size; + struct ti_sci_handle handle; + struct mbox_client cl; + struct mbox_chan *chan_tx; + struct mbox_chan *chan_rx; + struct ti_sci_xfers_info minfo; + struct list_head node; + u8 host_id; + u64 fw_caps; + int users; +}; + +struct ti_sci_inta_event_desc { + u16 global_event; + u32 hwirq; + u8 vint_bit; +}; + +struct ti_sci_inta_irq_domain { + const struct ti_sci_handle *sci; + struct ti_sci_resource *vint; + struct ti_sci_resource *global_event; + struct list_head vint_list; + struct mutex vint_mutex; + void *base; + struct platform_device *pdev; + u32 ti_sci_id; + int unmapped_cnt; + u16 *unmapped_dev_ids; +}; + +struct ti_sci_inta_vint_desc { + struct irq_domain *domain; + struct list_head list; + long unsigned int event_map[1]; + struct ti_sci_inta_event_desc events[64]; + unsigned int parent_virq; + u16 vint_id; +}; + +struct ti_sci_intr_irq_domain { + const struct ti_sci_handle *sci; + struct ti_sci_resource *out_irqs; + struct device *dev; + u32 ti_sci_id; + u32 type; +}; + +struct ti_sci_msg_hdr { + u16 type; + u8 host; + u8 seq; + u32 flags; +}; + +struct ti_sci_msg_psil_pair { + struct ti_sci_msg_hdr hdr; + u32 nav_id; + u32 src_thread; + u32 dst_thread; +}; + +struct ti_sci_msg_psil_unpair { + struct ti_sci_msg_hdr hdr; + u32 nav_id; + u32 src_thread; + u32 dst_thread; +}; + +struct ti_sci_msg_req_get_clock_freq { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); + +struct ti_sci_msg_req_get_clock_num_parents { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); + +struct ti_sci_msg_req_get_clock_parent { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); + +struct ti_sci_msg_req_get_clock_state { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); + +struct ti_sci_msg_req_get_device_state { + struct ti_sci_msg_hdr hdr; + u32 id; +}; + +struct ti_sci_msg_req_get_resource_range { + struct ti_sci_msg_hdr hdr; + u16 type; + u8 subtype; + u8 secondary_host; +}; + +struct ti_sci_msg_req_get_status { + struct ti_sci_msg_hdr hdr; + u8 processor_id; +} __attribute__((packed)); + +struct ti_sci_msg_req_lpm_set_device_constraint { + struct ti_sci_msg_hdr hdr; + u32 id; + u8 state; + u32 rsvd[2]; +} __attribute__((packed)); + +struct ti_sci_msg_req_lpm_set_latency_constraint { + struct ti_sci_msg_hdr hdr; + u16 latency; + u8 state; + u32 rsvd; +} __attribute__((packed)); + +struct ti_sci_msg_req_manage_irq { + struct ti_sci_msg_hdr hdr; + u32 valid_params; + u16 src_id; + u16 src_index; + u16 dst_id; + u16 dst_host_irq; + u16 ia_id; + u16 vint; + u16 global_event; + u8 vint_status_bit; + u8 secondary_host; +}; + +struct ti_sci_msg_req_prepare_sleep { + struct ti_sci_msg_hdr hdr; + u8 mode; + u32 ctx_lo; + u32 ctx_hi; + u32 debug_flags; +} __attribute__((packed)); + +struct ti_sci_msg_req_proc_handover { + struct ti_sci_msg_hdr hdr; + u8 processor_id; + u8 host_id; +} __attribute__((packed)); + +struct ti_sci_msg_req_proc_release { + struct ti_sci_msg_hdr hdr; + u8 processor_id; +} __attribute__((packed)); + +struct ti_sci_msg_req_proc_request { + struct ti_sci_msg_hdr hdr; + u8 processor_id; +} __attribute__((packed)); + +struct ti_sci_msg_req_query_clock_freq { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u64 min_freq_hz; + u64 target_freq_hz; + u64 max_freq_hz; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); + +struct ti_sci_msg_req_reboot { + struct ti_sci_msg_hdr hdr; +}; + +struct ti_sci_msg_req_set_clock_freq { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u64 min_freq_hz; + u64 target_freq_hz; + u64 max_freq_hz; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); + +struct ti_sci_msg_req_set_clock_parent { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u8 parent_id; + u32 clk_id_32; + u32 parent_id_32; +} __attribute__((packed)); + +struct ti_sci_msg_req_set_clock_state { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u8 request_state; + u32 clk_id_32; +} __attribute__((packed)); + +struct ti_sci_msg_req_set_config { + struct ti_sci_msg_hdr hdr; + u8 processor_id; + u32 bootvector_low; + u32 bootvector_high; + u32 config_flags_set; + u32 config_flags_clear; +} __attribute__((packed)); + +struct ti_sci_msg_req_set_ctrl { + struct ti_sci_msg_hdr hdr; + u8 processor_id; + u32 control_flags_set; + u32 control_flags_clear; +} __attribute__((packed)); + +struct ti_sci_msg_req_set_device_resets { + struct ti_sci_msg_hdr hdr; + u32 id; + u32 resets; +}; + +struct ti_sci_msg_req_set_device_state { + struct ti_sci_msg_hdr hdr; + u32 id; + u32 reserved; + u8 state; +} __attribute__((packed)); + +struct ti_sci_msg_req_set_io_isolation { + struct ti_sci_msg_hdr hdr; + u8 state; +} __attribute__((packed)); + +struct ti_sci_msg_resp_get_clock_freq { + struct ti_sci_msg_hdr hdr; + u64 freq_hz; +}; + +struct ti_sci_msg_resp_get_clock_num_parents { + struct ti_sci_msg_hdr hdr; + u8 num_parents; + u32 num_parents_32; +} __attribute__((packed)); + +struct ti_sci_msg_resp_get_clock_parent { + struct ti_sci_msg_hdr hdr; + u8 parent_id; + u32 parent_id_32; +} __attribute__((packed)); + +struct ti_sci_msg_resp_get_clock_state { + struct ti_sci_msg_hdr hdr; + u8 programmed_state; + u8 current_state; +} __attribute__((packed)); + +struct ti_sci_msg_resp_get_device_state { + struct ti_sci_msg_hdr hdr; + u32 context_loss_count; + u32 resets; + u8 programmed_state; + u8 current_state; +} __attribute__((packed)); + +struct ti_sci_msg_resp_get_resource_range { + struct ti_sci_msg_hdr hdr; + u16 range_start; + u16 range_num; + u16 range_start_sec; + u16 range_num_sec; +}; + +struct ti_sci_msg_resp_get_status { + struct ti_sci_msg_hdr hdr; + u8 processor_id; + u32 bootvector_low; + u32 bootvector_high; + u32 config_flags; + u32 control_flags; + u32 status_flags; +} __attribute__((packed)); + +struct ti_sci_msg_resp_lpm_wake_reason { + struct ti_sci_msg_hdr hdr; + u32 wake_source; + u64 wake_timestamp; + u8 wake_pin; + u8 mode; + u32 rsvd[2]; +} __attribute__((packed)); + +struct ti_sci_msg_resp_query_clock_freq { + struct ti_sci_msg_hdr hdr; + u64 freq_hz; +}; + +struct ti_sci_msg_resp_query_fw_caps { + struct ti_sci_msg_hdr hdr; + u64 fw_caps; +}; + +struct ti_sci_msg_resp_version { + struct ti_sci_msg_hdr hdr; + char firmware_description[32]; + u16 firmware_revision; + u8 abi_major; + u8 abi_minor; +}; + +struct ti_sci_msg_rm_ring_cfg { + u32 valid_params; + u16 nav_id; + u16 index; + u32 addr_lo; + u32 addr_hi; + u32 count; + u8 mode; + u8 size; + u8 order_id; + u16 virtid; + u8 asel; +}; + +struct ti_sci_msg_rm_ring_cfg_req { + struct ti_sci_msg_hdr hdr; + u32 valid_params; + u16 nav_id; + u16 index; + u32 addr_lo; + u32 addr_hi; + u32 count; + u8 mode; + u8 size; + u8 order_id; + u16 virtid; + u8 asel; +} __attribute__((packed)); + +struct ti_sci_msg_rm_udmap_flow_cfg { + u32 valid_params; + u16 nav_id; + u16 flow_index; + u8 rx_einfo_present; + u8 rx_psinfo_present; + u8 rx_error_handling; + u8 rx_desc_type; + u16 rx_sop_offset; + u16 rx_dest_qnum; + u8 rx_src_tag_hi; + u8 rx_src_tag_lo; + u8 rx_dest_tag_hi; + u8 rx_dest_tag_lo; + u8 rx_src_tag_hi_sel; + u8 rx_src_tag_lo_sel; + u8 rx_dest_tag_hi_sel; + u8 rx_dest_tag_lo_sel; + u16 rx_fdq0_sz0_qnum; + u16 rx_fdq1_qnum; + u16 rx_fdq2_qnum; + u16 rx_fdq3_qnum; + u8 rx_ps_location; +}; + +struct ti_sci_msg_rm_udmap_flow_cfg_req { + struct ti_sci_msg_hdr hdr; + u32 valid_params; + u16 nav_id; + u16 flow_index; + u8 rx_einfo_present; + u8 rx_psinfo_present; + u8 rx_error_handling; + u8 rx_desc_type; + u16 rx_sop_offset; + u16 rx_dest_qnum; + u8 rx_src_tag_hi; + u8 rx_src_tag_lo; + u8 rx_dest_tag_hi; + u8 rx_dest_tag_lo; + u8 rx_src_tag_hi_sel; + u8 rx_src_tag_lo_sel; + u8 rx_dest_tag_hi_sel; + u8 rx_dest_tag_lo_sel; + u16 rx_fdq0_sz0_qnum; + u16 rx_fdq1_qnum; + u16 rx_fdq2_qnum; + u16 rx_fdq3_qnum; + u8 rx_ps_location; +} __attribute__((packed)); + +struct ti_sci_msg_rm_udmap_rx_ch_cfg { + u32 valid_params; + u16 nav_id; + u16 index; + u16 rx_fetch_size; + u16 rxcq_qnum; + u8 rx_priority; + u8 rx_qos; + u8 rx_orderid; + u8 rx_sched_priority; + u16 flowid_start; + u16 flowid_cnt; + u8 rx_pause_on_err; + u8 rx_atype; + u8 rx_chan_type; + u8 rx_ignore_short; + u8 rx_ignore_long; + u8 rx_burst_size; +}; + +struct ti_sci_msg_rm_udmap_rx_ch_cfg_req { + struct ti_sci_msg_hdr hdr; + u32 valid_params; + u16 nav_id; + u16 index; + u16 rx_fetch_size; + u16 rxcq_qnum; + u8 rx_priority; + u8 rx_qos; + u8 rx_orderid; + u8 rx_sched_priority; + u16 flowid_start; + u16 flowid_cnt; + u8 rx_pause_on_err; + u8 rx_atype; + u8 rx_chan_type; + u8 rx_ignore_short; + u8 rx_ignore_long; + u8 rx_burst_size; +} __attribute__((packed)); + +struct ti_sci_msg_rm_udmap_tx_ch_cfg { + u32 valid_params; + u16 nav_id; + u16 index; + u8 tx_pause_on_err; + u8 tx_filt_einfo; + u8 tx_filt_pswords; + u8 tx_atype; + u8 tx_chan_type; + u8 tx_supr_tdpkt; + u16 tx_fetch_size; + u8 tx_credit_count; + u16 txcq_qnum; + u8 tx_priority; + u8 tx_qos; + u8 tx_orderid; + u16 fdepth; + u8 tx_sched_priority; + u8 tx_burst_size; + u8 tx_tdtype; + u8 extended_ch_type; +}; + +struct ti_sci_msg_rm_udmap_tx_ch_cfg_req { + struct ti_sci_msg_hdr hdr; + u32 valid_params; + u16 nav_id; + u16 index; + u8 tx_pause_on_err; + u8 tx_filt_einfo; + u8 tx_filt_pswords; + u8 tx_atype; + u8 tx_chan_type; + u8 tx_supr_tdpkt; + u16 tx_fetch_size; + u8 tx_credit_count; + u16 txcq_qnum; + u8 tx_priority; + u8 tx_qos; + u8 tx_orderid; + u16 fdepth; + u8 tx_sched_priority; + u8 tx_burst_size; + u8 tx_tdtype; + u8 extended_ch_type; +} __attribute__((packed)); + +struct ti_sci_resource { + u16 sets; + raw_spinlock_t lock; + struct ti_sci_resource_desc *desc; +}; + +struct ti_sci_resource_desc { + u16 start; + u16 num; + u16 start_sec; + u16 num_sec; + long unsigned int *res_map; +}; + +struct ti_sci_xfer { + struct ti_msgmgr_message tx_message; + u8 rx_len; + u8 *xfer_buf; + struct completion done; +}; + +struct ti_sysc_module_data { + const char *name; + u64 module_pa; + u32 module_size; + int *offsets; + int nr_offsets; + const struct sysc_capabilities *cap; + struct sysc_config *cfg; +}; + +struct ti_sysc_platform_data { + struct of_dev_auxdata *auxdata; + bool (*soc_type_gp)(void); + int (*init_clockdomain)(struct device *, struct clk *, struct clk *, struct ti_sysc_cookie *); + void (*clkdm_deny_idle)(struct device *, const struct ti_sysc_cookie *); + void (*clkdm_allow_idle)(struct device *, const struct ti_sysc_cookie *); + int (*init_module)(struct device *, const struct ti_sysc_module_data *, struct ti_sysc_cookie *); + int (*enable_module)(struct device *, const struct ti_sysc_cookie *); + int (*idle_module)(struct device *, const struct ti_sysc_cookie *); + int (*shutdown_module)(struct device *, const struct ti_sysc_cookie *); +}; + +struct ti_syscon_gate_clk_data { + char *name; + u32 offset; + u32 bit_idx; +}; + +struct ti_syscon_gate_clk_priv { + struct clk_hw hw; + struct regmap *regmap; + u32 reg; + u32 idx; +}; + +struct tick_device { + struct clock_event_device *evtdev; + enum tick_device_mode mode; +}; + +struct tick_sched { + long unsigned int flags; + unsigned int stalled_jiffies; + long unsigned int last_tick_jiffies; + struct hrtimer sched_timer; + ktime_t last_tick; + ktime_t next_tick; + long unsigned int idle_jiffies; + ktime_t idle_waketime; + unsigned int got_idle_tick; + seqcount_t idle_sleeptime_seq; + ktime_t idle_entrytime; + long unsigned int last_jiffies; + u64 timer_expires_base; + u64 timer_expires; + u64 next_timer; + ktime_t idle_expires; + long unsigned int idle_calls; + long unsigned int idle_sleeps; + ktime_t idle_exittime; + ktime_t idle_sleeptime; + ktime_t iowait_sleeptime; + atomic_t tick_dep_mask; + long unsigned int check_clocks; +}; + +struct tick_work { + int cpu; + atomic_t state; + struct delayed_work work; +}; + +struct timens_offsets { + struct timespec64 monotonic; + struct timespec64 boottime; +}; + +struct time_namespace { + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct ns_common ns; + struct timens_offsets offsets; + struct page *vvar_page; + bool frozen_offsets; +}; + +struct timedia_struct { + int num; + const short unsigned int *ids; +}; + +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 timekeeper { + struct tk_read_base tkr_mono; + u64 xtime_sec; + long unsigned int ktime_sec; + struct timespec64 wall_to_monotonic; + ktime_t offs_real; + ktime_t offs_boot; + ktime_t offs_tai; + u32 coarse_nsec; + struct tk_read_base tkr_raw; + u64 raw_sec; + unsigned int clock_was_set_seq; + u8 cs_was_changed_seq; + struct timespec64 monotonic_to_boot; + u64 cycle_interval; + u64 xtime_interval; + s64 xtime_remainder; + u64 raw_interval; + ktime_t next_leap_ktime; + u64 ntp_tick; + s64 ntp_error; + u32 ntp_error_shift; + u32 ntp_err_mult; + u32 skip_second_overflow; + s32 tai_offset; +}; + +struct timens_offset { + s64 sec; + u64 nsec; +}; + +struct timer_base { + raw_spinlock_t lock; + struct timer_list *running_timer; + long unsigned int clk; + long unsigned int next_expiry; + unsigned int cpu; + bool next_expiry_recalc; + bool is_idle; + bool timers_pending; + long unsigned int pending_map[9]; + struct hlist_head vectors[576]; + long: 64; + long: 64; +}; + +struct timer_events { + u64 local; + u64 global; +}; + +struct timer_list_iter { + int cpu; + bool second_pass; + u64 now; +}; + +struct timer_map { + struct arch_timer_context *direct_vtimer; + struct arch_timer_context *direct_ptimer; + struct arch_timer_context *emul_vtimer; + struct arch_timer_context *emul_ptimer; +}; + +struct timer_of { + unsigned int flags; + struct device_node *np; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct clock_event_device clkevt; + struct of_timer_base of_base; + struct of_timer_irq of_irq; + struct of_timer_clk of_clk; + void *private_data; + long: 64; + long: 64; + long: 64; +}; + +struct timer_rand_state { + long unsigned int last_time; + long int last_delta; + long int last_delta2; +}; + +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; + short unsigned int expired; + short unsigned int settime_flags; + struct callback_head rcu; + struct list_head clist; + spinlock_t cancel_lock; + bool might_cancel; +}; + +struct timerlat_entry { + struct trace_entry ent; + unsigned int seqnum; + int context; + u64 timer_latency; +}; + +struct timerlat_sample { + u64 timer_latency; + unsigned int seqnum; + int context; +}; + +struct timerlat_variables { + struct task_struct *kthread; + struct hrtimer timer; + u64 rel_period; + u64 abs_period; + bool tracing_thread; + u64 count; + bool uthread_migrate; +}; + +struct timers_private { + struct pid *pid; + struct task_struct *task; + struct sighand_struct *sighand; + struct pid_namespace *ns; + long unsigned int flags; +}; + +struct timestamp_event_queue { + struct ptp_extts_event buf[128]; + int head; + int tail; + spinlock_t lock; + struct list_head qlist; + long unsigned int *mask; + struct dentry *debugfs_instance; + struct debugfs_u32_array dfs_bitmap; +}; + +struct timewait_sock_ops { + struct kmem_cache *twsk_slab; + char *twsk_slab_name; + unsigned int twsk_obj_size; + void (*twsk_destructor)(struct sock *); +}; + +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; + +struct tiocl_selection { + short unsigned int xs; + short unsigned int ys; + short unsigned int xe; + short unsigned int ye; + short unsigned int sel_mode; +}; + +struct tipc_basic_hdr { + __be32 w[4]; +}; + +struct tis_vendor_durations_override { + u32 did_vid; + struct tpm1_version version; + long unsigned int durations[3]; +}; + +struct tis_vendor_timeout_override { + u32 did_vid; + long unsigned int timeout_us[4]; +}; + +struct tk_data { + seqcount_raw_spinlock_t seq; + struct timekeeper timekeeper; + struct timekeeper shadow_timekeeper; + raw_spinlock_t lock; +}; + +struct tk_fast { + seqcount_latch_t seq; + struct tk_read_base base[2]; +}; + +struct tlb_inv_context { + struct kvm_s2_mmu *mmu; + long unsigned int flags; + u64 tcr; + u64 sctlr; +}; + +struct tlb_inv_context___2 { + struct kvm_s2_mmu *mmu; + u64 tcr; + u64 sctlr; +}; + +union tlbi_info { + struct { + u64 start; + u64 size; + } range; + struct { + u64 addr; + } ipa; + struct { + u64 addr; + u32 encoding; + } va; +}; + +struct tlp_rp_regpair_t { + u32 ctrl; + u32 reg0; + u32 reg1; +}; + +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_ccm { + 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_gcm { + struct tls_crypto_info info; + unsigned char iv[8]; + unsigned char key[16]; + unsigned char salt[4]; + unsigned char rec_seq[8]; +}; + +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; +}; + +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 *netdev; + struct cipher_context tx; + struct cipher_context rx; + struct scatterlist *partially_sent_record; + u16 partially_sent_offset; + bool splicing_pages; + bool pending_open_record_frags; + struct mutex tx_lock; + long unsigned int 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; +}; + +typedef void (*tls_done_func_t)(void *, int, key_serial_t); + +struct tls_handshake_args { + struct socket *ta_sock; + tls_done_func_t ta_done; + void *ta_data; + const char *ta_peername; + unsigned int ta_timeout_ms; + key_serial_t ta_keyring; + key_serial_t ta_my_cert; + key_serial_t ta_my_privkey; + unsigned int ta_num_peerids; + key_serial_t ta_my_peerids[5]; +}; + +struct tls_handshake_req { + void (*th_consumer_done)(void *, int, key_serial_t); + void *th_consumer_data; + int th_type; + unsigned int th_timeout_ms; + int th_auth_mode; + const char *th_peername; + key_serial_t th_keyring; + key_serial_t th_certificate; + key_serial_t th_privkey; + unsigned int th_num_peerids; + key_serial_t th_peerid[5]; +}; + +struct tls_strparser { + struct sock *sk; + u32 mark: 8; + u32 stopped: 1; + u32 copy_mode: 1; + u32 mixed_decrypted: 1; + bool msg_ready; + 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; + bool key_update_pending; + struct tls_strparser strp; + atomic_t decrypt_pending; + struct sk_buff_head async_hold; + struct wait_queue_head wq; +}; + +struct tx_work { + struct delayed_work work; + struct sock *sk; +}; + +struct tls_rec; + +struct tls_sw_context_tx { + struct crypto_aead *aead_send; + struct crypto_wait async_wait; + struct tx_work tx_work; + struct tls_rec *open_rec; + struct list_head tx_list; + atomic_t encrypt_pending; + u8 async_capable: 1; + long unsigned int tx_bitmask; +}; + +struct tlsdev_ops { + int (*tls_dev_add)(struct net_device *, struct sock *, enum tls_offload_ctx_dir, struct tls_crypto_info *, u32); + void (*tls_dev_del)(struct net_device *, struct tls_context *, enum tls_offload_ctx_dir); + int (*tls_dev_resync)(struct net_device *, struct sock *, u32, u8 *, enum tls_offload_ctx_dir); +}; + +struct tm { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + long int tm_year; + int tm_wday; + int tm_yday; +}; + +struct tmigr_event { + struct timerqueue_node nextevt; + unsigned int cpu; + bool ignore; +}; + +struct tmigr_group; + +struct tmigr_cpu { + raw_spinlock_t lock; + bool online; + bool idle; + bool remote; + struct tmigr_group *tmgroup; + u8 groupmask; + u64 wakeup; + struct tmigr_event cpuevt; +}; + +struct tmigr_group { + raw_spinlock_t lock; + struct tmigr_group *parent; + struct tmigr_event groupevt; + u64 next_expiry; + struct timerqueue_head events; + atomic_t migr_state; + unsigned int level; + int numa_node; + unsigned int num_children; + u8 groupmask; + struct list_head list; +}; + +union tmigr_state { + u32 state; + struct { + u8 active; + u8 migrator; + u16 seq; + }; +}; + +struct tmigr_walk { + u64 nextexp; + u64 firstexp; + struct tmigr_event *evt; + u8 childmask; + bool remote; + long unsigned int basej; + u64 now; + bool check; + bool tmc_active; +}; + +struct tmpmasks { + cpumask_var_t addmask; + cpumask_var_t delmask; + cpumask_var_t new_cpus; +}; + +struct tms { + __kernel_clock_t tms_utime; + __kernel_clock_t tms_stime; + __kernel_clock_t tms_cutime; + __kernel_clock_t tms_cstime; +}; + +struct tnode { + struct callback_head rcu; + t_key empty_children; + t_key full_children; + struct key_vector *parent; + struct key_vector kv[1]; +}; + +struct token_bucket { + spinlock_t lock; + int chain_len; + struct hlist_nulls_head req_chain; + struct hlist_nulls_head msk_chain; +}; + +struct tomoyo_acl_head { + struct list_head list; + s8 is_deleted; +} __attribute__((packed)); + +struct tomoyo_condition; + +struct tomoyo_acl_info { + struct list_head list; + struct tomoyo_condition *cond; + s8 is_deleted; + u8 type; +} __attribute__((packed)); + +struct tomoyo_policy_namespace; + +struct tomoyo_acl_param { + char *data; + struct list_head *list; + struct tomoyo_policy_namespace *ns; + bool is_delete; +}; + +struct tomoyo_inet_addr_info { + __be16 port; + const __be32 *address; + bool is_ipv6; +}; + +struct tomoyo_unix_addr_info { + u8 *addr; + unsigned int addr_len; +}; + +struct tomoyo_addr_info { + u8 protocol; + u8 operation; + struct tomoyo_inet_addr_info inet; + struct tomoyo_unix_addr_info unix0; +}; + +struct tomoyo_group; + +struct tomoyo_ipaddr_union { + struct in6_addr ip[2]; + struct tomoyo_group *group; + bool is_ipv6; +}; + +struct tomoyo_address_group { + struct tomoyo_acl_head head; + struct tomoyo_ipaddr_union address; +}; + +struct tomoyo_path_info; + +struct tomoyo_aggregator { + struct tomoyo_acl_head head; + const struct tomoyo_path_info *original_name; + const struct tomoyo_path_info *aggregated_name; +}; + +struct tomoyo_argv { + long unsigned int index; + const struct tomoyo_path_info *value; + bool is_not; +}; + +struct tomoyo_shared_acl_head { + struct list_head list; + atomic_t users; +} __attribute__((packed)); + +struct tomoyo_condition { + struct tomoyo_shared_acl_head head; + u32 size; + u16 condc; + u16 numbers_count; + u16 names_count; + u16 argc; + u16 envc; + u8 grant_log; + const struct tomoyo_path_info *transit; +}; + +struct tomoyo_condition_element { + u8 left; + u8 right; + bool equals; +}; + +struct tomoyo_domain_info { + struct list_head list; + struct list_head acl_info_list; + const struct tomoyo_path_info *domainname; + struct tomoyo_policy_namespace *ns; + long unsigned int group[4]; + u8 profile; + bool is_deleted; + bool flags[2]; + atomic_t users; +}; + +struct tomoyo_env_acl { + struct tomoyo_acl_info head; + const struct tomoyo_path_info *env; +}; + +struct tomoyo_envp { + const struct tomoyo_path_info *name; + const struct tomoyo_path_info *value; + bool is_not; +}; + +struct tomoyo_obj_info; + +struct tomoyo_execve; + +struct tomoyo_request_info { + struct tomoyo_obj_info *obj; + struct tomoyo_execve *ee; + struct tomoyo_domain_info *domain; + union { + struct { + const struct tomoyo_path_info *filename; + const struct tomoyo_path_info *matched_path; + u8 operation; + } path; + struct { + const struct tomoyo_path_info *filename1; + const struct tomoyo_path_info *filename2; + u8 operation; + } path2; + struct { + const struct tomoyo_path_info *filename; + unsigned int mode; + unsigned int major; + unsigned int minor; + u8 operation; + } mkdev; + struct { + const struct tomoyo_path_info *filename; + long unsigned int number; + u8 operation; + } path_number; + struct { + const struct tomoyo_path_info *name; + } environ; + struct { + const __be32 *address; + u16 port; + u8 protocol; + u8 operation; + bool is_ipv6; + } inet_network; + struct { + const struct tomoyo_path_info *address; + u8 protocol; + u8 operation; + } unix_network; + struct { + const struct tomoyo_path_info *type; + const struct tomoyo_path_info *dir; + const struct tomoyo_path_info *dev; + long unsigned int flags; + int need_dev; + } mount; + struct { + const struct tomoyo_path_info *domainname; + } task; + } param; + struct tomoyo_acl_info *matched_acl; + u8 param_type; + bool granted; + u8 retry; + u8 profile; + u8 mode; + u8 type; +}; + +struct tomoyo_mini_stat { + kuid_t uid; + kgid_t gid; + ino_t ino; + umode_t mode; + dev_t dev; + dev_t rdev; +}; + +struct tomoyo_obj_info { + bool validate_done; + bool stat_valid[4]; + struct path path1; + struct path path2; + struct tomoyo_mini_stat stat[4]; + struct tomoyo_path_info *symlink_target; +}; + +struct tomoyo_page_dump { + struct page *page; + char *data; +}; + +struct tomoyo_execve { + struct tomoyo_request_info r; + struct tomoyo_obj_info obj; + struct linux_binprm *bprm; + const struct tomoyo_path_info *transition; + struct tomoyo_page_dump dump; + char *tmp; +}; + +struct tomoyo_group { + struct tomoyo_shared_acl_head head; + const struct tomoyo_path_info *group_name; + struct list_head member_list; +}; + +struct tomoyo_number_union { + long unsigned int values[2]; + struct tomoyo_group *group; + u8 value_type[2]; +}; + +struct tomoyo_inet_acl { + struct tomoyo_acl_info head; + u8 protocol; + u8 perm; + struct tomoyo_ipaddr_union address; + struct tomoyo_number_union port; +}; + +struct tomoyo_io_buffer { + void (*read)(struct tomoyo_io_buffer *); + int (*write)(struct tomoyo_io_buffer *); + __poll_t (*poll)(struct file *, poll_table *); + struct mutex io_sem; + char *read_user_buf; + size_t read_user_buf_avail; + struct { + struct list_head *ns; + struct list_head *domain; + struct list_head *group; + struct list_head *acl; + size_t avail; + unsigned int step; + unsigned int query_index; + u16 index; + u16 cond_index; + u8 acl_group_index; + u8 cond_step; + u8 bit; + u8 w_pos; + bool eof; + bool print_this_domain_only; + bool print_transition_related_only; + bool print_cond_part; + const char *w[64]; + } r; + struct { + struct tomoyo_policy_namespace *ns; + struct tomoyo_domain_info *domain; + size_t avail; + bool is_delete; + } w; + char *read_buf; + size_t readbuf_size; + char *write_buf; + size_t writebuf_size; + enum tomoyo_securityfs_interface_index type; + u8 users; + struct list_head list; +}; + +struct tomoyo_log { + struct list_head list; + char *log; + int size; +}; + +struct tomoyo_manager { + struct tomoyo_acl_head head; + const struct tomoyo_path_info *manager; +}; + +struct tomoyo_name_union { + const struct tomoyo_path_info *filename; + struct tomoyo_group *group; +}; + +struct tomoyo_mkdev_acl { + struct tomoyo_acl_info head; + u8 perm; + struct tomoyo_name_union name; + struct tomoyo_number_union mode; + struct tomoyo_number_union major; + struct tomoyo_number_union minor; +}; + +struct tomoyo_mount_acl { + struct tomoyo_acl_info head; + struct tomoyo_name_union dev_name; + struct tomoyo_name_union dir_name; + struct tomoyo_name_union fs_type; + struct tomoyo_number_union flags; +}; + +struct tomoyo_path_info { + const char *name; + u32 hash; + u16 const_len; + bool is_dir; + bool is_patterned; +}; + +struct tomoyo_name { + struct tomoyo_shared_acl_head head; + struct tomoyo_path_info entry; +}; + +struct tomoyo_number_group { + struct tomoyo_acl_head head; + struct tomoyo_number_union number; +}; + +struct tomoyo_path2_acl { + struct tomoyo_acl_info head; + u8 perm; + struct tomoyo_name_union name1; + struct tomoyo_name_union name2; +}; + +struct tomoyo_path_acl { + struct tomoyo_acl_info head; + u16 perm; + struct tomoyo_name_union name; +}; + +struct tomoyo_path_group { + struct tomoyo_acl_head head; + const struct tomoyo_path_info *member_name; +}; + +struct tomoyo_path_number_acl { + struct tomoyo_acl_info head; + u8 perm; + struct tomoyo_name_union name; + struct tomoyo_number_union number; +}; + +struct tomoyo_profile; + +struct tomoyo_policy_namespace { + struct tomoyo_profile *profile_ptr[256]; + struct list_head group_list[3]; + struct list_head policy_list[11]; + struct list_head acl_group[256]; + struct list_head namespace_list; + unsigned int profile_version; + const char *name; +}; + +struct tomoyo_preference { + unsigned int learning_max_entry; + bool enforcing_verbose; + bool learning_verbose; + bool permissive_verbose; +}; + +struct tomoyo_profile { + const struct tomoyo_path_info *comment; + struct tomoyo_preference *learning; + struct tomoyo_preference *permissive; + struct tomoyo_preference *enforcing; + struct tomoyo_preference preference; + u8 default_config; + u8 config[42]; + unsigned int pref[2]; +}; + +struct tomoyo_query { + struct list_head list; + struct tomoyo_domain_info *domain; + char *query; + size_t query_len; + unsigned int serial; + u8 timer; + u8 answer; + u8 retry; +}; + +struct tomoyo_task { + struct tomoyo_domain_info *domain_info; + struct tomoyo_domain_info *old_domain_info; +}; + +struct tomoyo_task_acl { + struct tomoyo_acl_info head; + const struct tomoyo_path_info *domainname; +}; + +struct tomoyo_time { + u16 year; + u8 month; + u8 day; + u8 hour; + u8 min; + u8 sec; +}; + +struct tomoyo_transition_control { + struct tomoyo_acl_head head; + u8 type; + bool is_last_name; + const struct tomoyo_path_info *domainname; + const struct tomoyo_path_info *program; +}; + +struct tomoyo_unix_acl { + struct tomoyo_acl_info head; + u8 protocol; + u8 perm; + struct tomoyo_name_union name; +}; + +struct topology_resp { + u32 topology[3]; +}; + +struct touchscreen_properties { + unsigned int max_x; + unsigned int max_y; + bool invert_x; + bool invert_y; + bool swap_x_y; +}; + +struct tp_module { + struct list_head list; + struct module *mod; +}; + +struct tracepoint_func { + void *func; + void *data; + int prio; +}; + +struct tp_probes { + struct callback_head rcu; + struct tracepoint_func probes[0]; +}; + +struct tp_transition_snapshot { + long unsigned int rcu; + bool ongoing; +}; + +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 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 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 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 { + long unsigned int tp_status; + unsigned int tp_len; + unsigned int tp_snaplen; + short unsigned int tp_mac; + short unsigned int tp_net; + unsigned int tp_sec; + unsigned int tp_usec; +}; + +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 tpacket_rollover_stats { + __u64 tp_all; + __u64 tp_huge; + __u64 tp_failed; +}; + +union tpacket_uhdr { + struct tpacket_hdr *h1; + struct tpacket2_hdr *h2; + struct tpacket3_hdr *h3; + void *raw; +}; + +struct tpidr2_context { + struct _aarch64_ctx head; + __u64 tpidr2; +}; + +struct tpm1_get_random_out { + __be32 rng_data_len; + u8 rng_data[128]; +}; + +struct tpm2_auth { + u32 handle; + u32 session; + u8 our_nonce[32]; + u8 tpm_nonce[32]; + union { + u8 salt[32]; + u8 scratch[32]; + }; + u8 session_key[32]; + u8 passphrase[32]; + int passphrase_len; + struct crypto_aes_ctx aes_ctx; + u8 attrs; + __be32 ordinal; + u32 name_h[3]; + u8 name[198]; +}; + +struct tpm2_cap_handles { + u8 more_data; + __be32 capability; + __be32 count; + __be32 handles[0]; +} __attribute__((packed)); + +struct tpm2_context { + __be64 sequence; + __be32 saved_handle; + __be32 hierarchy; + __be16 blob_size; +} __attribute__((packed)); + +struct tpm2_crb_pluton { + u64 start_addr; + u64 reply_addr; +}; + +struct tpm2_crb_smc { + u32 interrupt; + u8 interrupt_flags; + u8 op_flags; + u16 reserved2; + u32 smc_func_id; +}; + +struct tpm2_get_cap_out { + u8 more_data; + __be32 subcap_id; + __be32 property_cnt; + __be32 property_id; + __be32 value; +} __attribute__((packed)); + +struct tpm2_get_random_out { + __be16 size; + u8 buffer[128]; +}; + +struct tpm2_hash { + unsigned int crypto_id; + unsigned int tpm_id; +}; + +struct tpm2_key_context { + u32 parent; + const u8 *pub; + u32 pub_len; + const u8 *priv; + u32 priv_len; +}; + +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_pcr_selection { + __be16 hash_alg; + u8 size_of_select; + u8 pcr_select[3]; +}; + +struct tpm_bank_info { + u16 alg_id; + u16 digest_size; + u16 crypto_id; +}; + +struct tpm_bios_log { + void *bios_event_log; + void *bios_event_log_end; +}; + +struct tpm_buf { + u32 flags; + u32 length; + u8 *data; + u8 handles; +}; + +struct tpm_chip_seqops { + struct tpm_chip *chip; + const struct seq_operations *seqops; +}; + +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_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; + long unsigned int is_open; + char hwrng_name[64]; + struct hwrng hwrng; + struct mutex tpm_mutex; + long unsigned int timeout_a; + long unsigned int timeout_b; + long unsigned int timeout_c; + long unsigned int timeout_d; + bool timeout_adjusted; + long unsigned int 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 *, long unsigned int *); + void (*update_durations)(struct tpm_chip *, long unsigned int *); + 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_digests { + unsigned char encauth[20]; + unsigned char pubauth[20]; + unsigned char xorwork[40]; + unsigned char xorhash[20]; + unsigned char nonceodd[20]; +}; + +struct tpm_header { + __be16 tag; + __be32 length; + union { + __be32 ordinal; + __be32 return_code; + }; +} __attribute__((packed)); + +struct tpm_info { + struct resource res; + int irq; +}; + +struct tpm_pcr_attr { + int alg_id; + int pcr; + struct device_attribute attr; +}; + +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_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 tpm_tis_tcg_phy { + struct tpm_tis_data priv; + void *iobase; +}; + +struct tpmrm_priv { + struct file_priv priv; + struct tpm_space space; +}; + +struct tps65086_regulator_config; + +struct tps65086 { + struct device *dev; + struct regmap *regmap; + unsigned int chip_id; + const struct tps65086_regulator_config *reg_config; + int irq; + struct regmap_irq_chip_data *irq_data; +}; + +struct tps65090 { + struct device *dev; + struct regmap *rmap; + struct regmap_irq_chip_data *irq_data; +}; + +struct tps65090_regulator_plat_data; + +struct tps65090_platform_data { + int irq_base; + char **supplied_to; + size_t num_supplicants; + int enable_low_current_chrg; + struct tps65090_regulator_plat_data *reg_pdata[12]; +}; + +struct tps65090_regulator_plat_data { + struct regulator_init_data *reg_init_data; + bool enable_ext_control; + struct gpio_desc *gpiod; + bool overcurrent_wait_valid; + int overcurrent_wait; +}; + +struct tps6586x { + struct device *dev; + struct i2c_client *client; + struct regmap *regmap; + int version; + int irq; + struct irq_chip irq_chip; + struct mutex irq_lock; + int irq_base; + u32 irq_en; + u8 mask_reg[5]; + struct irq_domain *irq_domain; +}; + +struct tps6586x_gpio { + struct gpio_chip gpio_chip; + struct device *parent; +}; + +struct tps6586x_irq_data { + u8 mask_reg; + u8 mask_mask; +}; + +struct tps6586x_subdev_info; + +struct tps6586x_platform_data { + int num_subdevs; + struct tps6586x_subdev_info *subdevs; + int gpio_base; + int irq_base; + bool pm_off; + struct regulator_init_data *reg_init_data[15]; +}; + +struct tps6586x_subdev_info { + int id; + const char *name; + void *platform_data; + struct device_node *of_node; +}; + +struct tps65910_board; + +struct tps65910 { + struct device *dev; + struct i2c_client *i2c_client; + struct regmap *regmap; + long unsigned int id; + struct tps65910_board *of_plat_data; + int chip_irq; + struct regmap_irq_chip_data *irq_data; +}; + +struct tps65910_sleep_keepon_data { + unsigned int therm_keepon: 1; + unsigned int clkout32k_keepon: 1; + unsigned int i2chs_keepon: 1; +}; + +struct tps65910_board { + int gpio_base; + int irq; + int irq_base; + int vmbch_threshold; + int vmbch2_threshold; + bool en_ck32k_xtal; + bool en_dev_slp; + bool pm_off; + struct tps65910_sleep_keepon_data slp_keepon; + bool en_gpio_sleep[9]; + long unsigned int regulator_ext_sleep_control[14]; + struct regulator_init_data *tps65910_pmic_init_data[14]; +}; + +struct tps65910_gpio { + struct gpio_chip gpio_chip; + struct tps65910 *tps65910; +}; + +struct tps65910_platform_data { + int irq; + int irq_base; +}; + +struct tps65912 { + struct device *dev; + struct regmap *regmap; + int irq; + struct regmap_irq_chip_data *irq_data; +}; + +struct trace_pid_list; + +struct trace_options; + +struct trace_func_repeats; + +struct trace_array { + struct list_head list; + char *name; + struct array_buffer array_buffer; + struct array_buffer max_buffer; + bool allocated_snapshot; + spinlock_t snapshot_trigger_lock; + unsigned int snapshot; + long unsigned int max_latency; + struct dentry *d_max_latency; + struct work_struct fsnotify_work; + struct irq_work fsnotify_irqwork; + unsigned int mapped; + long unsigned int range_addr_start; + long unsigned int range_addr_size; + long unsigned int kaslr_addr; + long int text_delta; + struct trace_pid_list *filtered_pids; + struct trace_pid_list *filtered_no_pids; + arch_spinlock_t max_lock; + int buffer_disabled; + int sys_refcount_enter; + int sys_refcount_exit; + struct trace_event_file *enter_syscall_files[467]; + struct trace_event_file *exit_syscall_files[467]; + int stop_count; + int clock_id; + int nr_topts; + bool clear_trace; + int buffer_percent; + unsigned int n_err_log_entries; + struct tracer *current_trace; + unsigned int trace_flags; + unsigned char trace_flags_index[32]; + unsigned int flags; + raw_spinlock_t start_lock; + const char *system_names; + struct list_head err_log; + struct dentry *dir; + struct dentry *options; + struct dentry *percpu_dir; + struct eventfs_inode *event_dir; + struct trace_options *topts; + struct list_head systems; + struct list_head events; + struct trace_event_file *trace_marker_file; + cpumask_var_t tracing_cpumask; + cpumask_var_t pipe_cpumask; + int ref; + int trace_ref; + struct list_head mod_events; + struct ftrace_ops *ops; + struct trace_pid_list *function_pids; + struct trace_pid_list *function_no_pids; + struct fgraph_ops *gops; + 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 cond_snapshot *cond_snapshot; + struct trace_func_repeats *last_func_repeats; + bool ring_buffer_expanded; +}; + +struct trace_array_cpu { + atomic_t disabled; + void *buffer_page; + long unsigned int entries; + long unsigned int saved_latency; + long unsigned int critical_start; + long unsigned int critical_end; + long unsigned int critical_sequence; + long unsigned int nice; + long unsigned int policy; + long unsigned int rt_priority; + long unsigned int skipped_entries; + u64 preempt_timestamp; + pid_t pid; + kuid_t uid; + char comm[16]; + int ftrace_ignore_pid; + bool ignore_pid; +}; + +struct trace_bprintk_fmt { + struct list_head list; + const char *fmt; +}; + +struct trace_buffer { + unsigned int flags; + int cpus; + atomic_t record_disabled; + atomic_t resizing; + cpumask_var_t cpumask; + struct lock_class_key *reader_lock_key; + struct mutex mutex; + struct ring_buffer_per_cpu **buffers; + struct hlist_node node; + u64 (*clock)(void); + struct rb_irq_work irq_work; + bool time_stamp_abs; + long unsigned int range_addr_start; + long unsigned int range_addr_end; + long unsigned int kaslr_addr; + unsigned int subbuf_size; + unsigned int subbuf_order; + unsigned int max_data_size; +}; + +struct trace_buffer_meta { + __u32 meta_page_size; + __u32 meta_struct_len; + __u32 subbuf_size; + __u32 nr_subbufs; + struct { + __u64 lost_events; + __u32 id; + __u32 read; + } reader; + __u64 flags; + __u64 entries; + __u64 overrun; + __u64 read; + __u64 Reserved1; + __u64 Reserved2; +}; + +struct trace_buffer_struct { + int nesting; + char buffer[4096]; +}; + +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_entry_arg *entry_arg; + struct probe_arg args[0]; +}; + +struct trace_eprobe { + const char *event_system; + const char *event_name; + char *filter_str; + struct trace_event_call *event; + struct dyn_event devent; + struct trace_probe tp; +}; + +struct trace_eval_map { + const char *system; + const char *eval_string; + long unsigned int eval_value; +}; + +struct trace_event_data_offsets_ack_update_msk {}; + +struct trace_event_data_offsets_aer_event { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct trace_event_data_offsets_alarm_class {}; + +struct trace_event_data_offsets_alarmtimer_suspend {}; + +struct trace_event_data_offsets_alloc_vmap_area {}; + +struct trace_event_data_offsets_arm_event {}; + +struct trace_event_data_offsets_ata_bmdma_status {}; + +struct trace_event_data_offsets_ata_eh_action_template {}; + +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_exec_command_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_qc_complete_template {}; + +struct trace_event_data_offsets_ata_qc_issue_template {}; + +struct trace_event_data_offsets_ata_sff_hsm_template {}; + +struct trace_event_data_offsets_ata_sff_template {}; + +struct trace_event_data_offsets_ata_tf_load {}; + +struct trace_event_data_offsets_ata_transfer_data_template {}; + +struct trace_event_data_offsets_balance_dirty_pages {}; + +struct trace_event_data_offsets_bdi_dirty_ratelimit {}; + +struct trace_event_data_offsets_block_bio {}; + +struct trace_event_data_offsets_block_bio_complete {}; + +struct trace_event_data_offsets_block_bio_remap {}; + +struct trace_event_data_offsets_block_buffer {}; + +struct trace_event_data_offsets_block_plug {}; + +struct trace_event_data_offsets_block_rq { + u32 cmd; + const void *cmd_ptr_; +}; + +struct trace_event_data_offsets_block_rq_completion { + u32 cmd; + const void *cmd_ptr_; +}; + +struct trace_event_data_offsets_block_rq_remap {}; + +struct trace_event_data_offsets_block_rq_requeue { + u32 cmd; + const void *cmd_ptr_; +}; + +struct trace_event_data_offsets_block_split {}; + +struct trace_event_data_offsets_block_unplug {}; + +struct trace_event_data_offsets_bpf_test_finish {}; + +struct trace_event_data_offsets_bpf_trace_printk { + u32 bpf_string; + const void *bpf_string_ptr_; +}; + +struct trace_event_data_offsets_bpf_trigger_tp {}; + +struct trace_event_data_offsets_bpf_xdp_link_attach_failed { + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_br_fdb_add { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_br_fdb_external_learn_add { + u32 br_dev; + const void *br_dev_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_br_fdb_update { + u32 br_dev; + const void *br_dev_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_br_mdb_full { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_cap_capable {}; + +struct trace_event_data_offsets_cdev_update { + u32 type; + const void *type_ptr_; +}; + +struct trace_event_data_offsets_cgroup { + u32 path; + const void *path_ptr_; +}; + +struct trace_event_data_offsets_cgroup_event { + u32 path; + const void *path_ptr_; +}; + +struct trace_event_data_offsets_cgroup_migrate { + u32 dst_path; + const void *dst_path_ptr_; + u32 comm; + const void *comm_ptr_; +}; + +struct trace_event_data_offsets_cgroup_root { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_cgroup_rstat {}; + +struct trace_event_data_offsets_clk { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_duty_cycle { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_parent { + u32 name; + const void *name_ptr_; + u32 pname; + const void *pname_ptr_; +}; + +struct trace_event_data_offsets_clk_phase { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_rate { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_rate_range { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_rate_request { + u32 name; + const void *name_ptr_; + u32 pname; + const void *pname_ptr_; +}; + +struct trace_event_data_offsets_clock { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_cma_alloc_busy_retry { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_cma_alloc_finish { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_cma_alloc_start { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_cma_release { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_compact_retry {}; + +struct trace_event_data_offsets_console { + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_consume_skb {}; + +struct trace_event_data_offsets_contention_begin {}; + +struct trace_event_data_offsets_contention_end {}; + +struct trace_event_data_offsets_context_tracking_user {}; + +struct trace_event_data_offsets_cpu {}; + +struct trace_event_data_offsets_cpu_frequency_limits {}; + +struct trace_event_data_offsets_cpu_idle_miss {}; + +struct trace_event_data_offsets_cpu_latency_qos_request {}; + +struct trace_event_data_offsets_cpuhp_enter {}; + +struct trace_event_data_offsets_cpuhp_exit {}; + +struct trace_event_data_offsets_cpuhp_multi_enter {}; + +struct trace_event_data_offsets_cros_ec_request_done {}; + +struct trace_event_data_offsets_cros_ec_request_start {}; + +struct trace_event_data_offsets_csd_function {}; + +struct trace_event_data_offsets_csd_queue_cpu {}; + +struct trace_event_data_offsets_ctime {}; + +struct trace_event_data_offsets_ctime_ns_xchg {}; + +struct trace_event_data_offsets_dax_insert_mapping {}; + +struct trace_event_data_offsets_dax_pmd_fault_class {}; + +struct trace_event_data_offsets_dax_pmd_insert_mapping_class {}; + +struct trace_event_data_offsets_dax_pmd_load_hole_class {}; + +struct trace_event_data_offsets_dax_pte_fault_class {}; + +struct trace_event_data_offsets_dax_writeback_one {}; + +struct trace_event_data_offsets_dax_writeback_range_class {}; + +struct trace_event_data_offsets_dev_pm_qos_request { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_devfreq_frequency { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct trace_event_data_offsets_devfreq_monitor { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct trace_event_data_offsets_device_pm_callback_end { + u32 device; + const void *device_ptr_; + u32 driver; + const void *driver_ptr_; +}; + +struct trace_event_data_offsets_device_pm_callback_start { + u32 device; + const void *device_ptr_; + u32 driver; + const void *driver_ptr_; + u32 parent; + const void *parent_ptr_; + u32 pm_ops; + const void *pm_ops_ptr_; +}; + +struct trace_event_data_offsets_devlink_health_recover_aborted { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 reporter_name; + const void *reporter_name_ptr_; +}; + +struct trace_event_data_offsets_devlink_health_report { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 reporter_name; + const void *reporter_name_ptr_; + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_devlink_health_reporter_state_update { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 reporter_name; + const void *reporter_name_ptr_; +}; + +struct trace_event_data_offsets_devlink_hwerr { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_devlink_hwmsg { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_devlink_trap_report { + u32 bus_name; + const void *bus_name_ptr_; + u32 dev_name; + const void *dev_name_ptr_; + u32 driver_name; + const void *driver_name_ptr_; + u32 trap_name; + const void *trap_name_ptr_; + u32 trap_group_name; + const void *trap_group_name_ptr_; +}; + +struct trace_event_data_offsets_devres { + u32 devname; + const void *devname_ptr_; + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_dma_alloc_class { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_dma_alloc_sgt { + u32 device; + const void *device_ptr_; + u32 phys_addrs; + const void *phys_addrs_ptr_; +}; + +struct trace_event_data_offsets_dma_fence { + u32 driver; + const void *driver_ptr_; + u32 timeline; + const void *timeline_ptr_; +}; + +struct trace_event_data_offsets_dma_free_class { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_dma_free_sgt { + u32 device; + const void *device_ptr_; + u32 phys_addrs; + const void *phys_addrs_ptr_; +}; + +struct trace_event_data_offsets_dma_map { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_dma_map_sg { + u32 device; + const void *device_ptr_; + u32 phys_addrs; + const void *phys_addrs_ptr_; + u32 dma_addrs; + const void *dma_addrs_ptr_; + u32 lengths; + const void *lengths_ptr_; +}; + +struct trace_event_data_offsets_dma_map_sg_err { + u32 device; + const void *device_ptr_; + u32 phys_addrs; + const void *phys_addrs_ptr_; +}; + +struct trace_event_data_offsets_dma_sync_sg { + u32 device; + const void *device_ptr_; + u32 dma_addrs; + const void *dma_addrs_ptr_; + u32 lengths; + const void *lengths_ptr_; +}; + +struct trace_event_data_offsets_dma_sync_single { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_dma_unmap { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_dma_unmap_sg { + u32 device; + const void *device_ptr_; + u32 addrs; + const void *addrs_ptr_; +}; + +struct trace_event_data_offsets_dql_stall_detected {}; + +struct trace_event_data_offsets_drm_vblank_event {}; + +struct trace_event_data_offsets_drm_vblank_event_delivered {}; + +struct trace_event_data_offsets_drm_vblank_event_queued {}; + +struct trace_event_data_offsets_error_da_monitor_id {}; + +struct trace_event_data_offsets_error_report_template {}; + +struct trace_event_data_offsets_event_da_monitor_id {}; + +struct trace_event_data_offsets_exit_mmap {}; + +struct trace_event_data_offsets_ext4__bitmap_load {}; + +struct trace_event_data_offsets_ext4__es_extent {}; + +struct trace_event_data_offsets_ext4__es_shrink_enter {}; + +struct trace_event_data_offsets_ext4__fallocate_mode {}; + +struct trace_event_data_offsets_ext4__folio_op {}; + +struct trace_event_data_offsets_ext4__map_blocks_enter {}; + +struct trace_event_data_offsets_ext4__map_blocks_exit {}; + +struct trace_event_data_offsets_ext4__mb_new_pa {}; + +struct trace_event_data_offsets_ext4__mballoc {}; + +struct trace_event_data_offsets_ext4__trim {}; + +struct trace_event_data_offsets_ext4__truncate {}; + +struct trace_event_data_offsets_ext4__write_begin {}; + +struct trace_event_data_offsets_ext4__write_end {}; + +struct trace_event_data_offsets_ext4_alloc_da_blocks {}; + +struct trace_event_data_offsets_ext4_allocate_blocks {}; + +struct trace_event_data_offsets_ext4_allocate_inode {}; + +struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; + +struct trace_event_data_offsets_ext4_collapse_range {}; + +struct trace_event_data_offsets_ext4_da_release_space {}; + +struct trace_event_data_offsets_ext4_da_reserve_space {}; + +struct trace_event_data_offsets_ext4_da_update_reserve_space {}; + +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_discard_blocks {}; + +struct trace_event_data_offsets_ext4_discard_preallocations {}; + +struct trace_event_data_offsets_ext4_drop_inode {}; + +struct trace_event_data_offsets_ext4_error {}; + +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_insert_delayed_extent {}; + +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_remove_extent {}; + +struct trace_event_data_offsets_ext4_es_shrink {}; + +struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; + +struct trace_event_data_offsets_ext4_evict_inode {}; + +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_ext_handle_unwritten_extents {}; + +struct trace_event_data_offsets_ext4_ext_load_extent {}; + +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_ext_rm_idx {}; + +struct trace_event_data_offsets_ext4_ext_rm_leaf {}; + +struct trace_event_data_offsets_ext4_ext_show_extent {}; + +struct trace_event_data_offsets_ext4_fallocate_exit {}; + +struct trace_event_data_offsets_ext4_fc_cleanup {}; + +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_replay {}; + +struct trace_event_data_offsets_ext4_fc_replay_scan {}; + +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_forget {}; + +struct trace_event_data_offsets_ext4_free_blocks {}; + +struct trace_event_data_offsets_ext4_free_inode {}; + +struct trace_event_data_offsets_ext4_fsmap_class {}; + +struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; + +struct trace_event_data_offsets_ext4_getfsmap_class {}; + +struct trace_event_data_offsets_ext4_insert_range {}; + +struct trace_event_data_offsets_ext4_invalidate_folio_op {}; + +struct trace_event_data_offsets_ext4_journal_start_inode {}; + +struct trace_event_data_offsets_ext4_journal_start_reserved {}; + +struct trace_event_data_offsets_ext4_journal_start_sb {}; + +struct trace_event_data_offsets_ext4_lazy_itable_init {}; + +struct trace_event_data_offsets_ext4_load_inode {}; + +struct trace_event_data_offsets_ext4_mark_inode_dirty {}; + +struct trace_event_data_offsets_ext4_mb_discard_preallocations {}; + +struct trace_event_data_offsets_ext4_mb_release_group_pa {}; + +struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; + +struct trace_event_data_offsets_ext4_mballoc_alloc {}; + +struct trace_event_data_offsets_ext4_mballoc_prealloc {}; + +struct trace_event_data_offsets_ext4_nfs_commit_metadata {}; + +struct trace_event_data_offsets_ext4_other_inode_update_time {}; + +struct trace_event_data_offsets_ext4_prefetch_bitmaps {}; + +struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; + +struct trace_event_data_offsets_ext4_remove_blocks {}; + +struct trace_event_data_offsets_ext4_request_blocks {}; + +struct trace_event_data_offsets_ext4_request_inode {}; + +struct trace_event_data_offsets_ext4_shutdown {}; + +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_unlink_enter {}; + +struct trace_event_data_offsets_ext4_unlink_exit {}; + +struct trace_event_data_offsets_ext4_update_sb {}; + +struct trace_event_data_offsets_ext4_writepages {}; + +struct trace_event_data_offsets_ext4_writepages_result {}; + +struct trace_event_data_offsets_fdb_delete { + u32 br_dev; + const void *br_dev_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_fib6_table_lookup {}; + +struct trace_event_data_offsets_fib_table_lookup {}; + +struct trace_event_data_offsets_file_check_and_advance_wb_err {}; + +struct trace_event_data_offsets_filelock_lease {}; + +struct trace_event_data_offsets_filelock_lock {}; + +struct trace_event_data_offsets_filemap_set_wb_err {}; + +struct trace_event_data_offsets_fill_mg_cmtime {}; + +struct trace_event_data_offsets_finish_task_reaping {}; + +struct trace_event_data_offsets_flush_foreign {}; + +struct trace_event_data_offsets_free_vmap_area_noflush {}; + +struct trace_event_data_offsets_fuse_request_end {}; + +struct trace_event_data_offsets_fuse_request_send {}; + +struct trace_event_data_offsets_generic_add_lease {}; + +struct trace_event_data_offsets_global_dirty_state {}; + +struct trace_event_data_offsets_gpio_direction {}; + +struct trace_event_data_offsets_gpio_value {}; + +struct trace_event_data_offsets_gpu_mem_total {}; + +struct trace_event_data_offsets_guest_halt_poll_ns {}; + +struct trace_event_data_offsets_handshake_alert_class {}; + +struct trace_event_data_offsets_handshake_complete {}; + +struct trace_event_data_offsets_handshake_error_class {}; + +struct trace_event_data_offsets_handshake_event_class {}; + +struct trace_event_data_offsets_handshake_fd_class {}; + +struct trace_event_data_offsets_hrtimer_class {}; + +struct trace_event_data_offsets_hrtimer_expire_entry {}; + +struct trace_event_data_offsets_hrtimer_init {}; + +struct trace_event_data_offsets_hrtimer_start {}; + +struct trace_event_data_offsets_hugepage_set {}; + +struct trace_event_data_offsets_hugepage_update {}; + +struct trace_event_data_offsets_hugetlbfs__inode {}; + +struct trace_event_data_offsets_hugetlbfs_alloc_inode {}; + +struct trace_event_data_offsets_hugetlbfs_fallocate {}; + +struct trace_event_data_offsets_hugetlbfs_setattr { + u32 d_name; + const void *d_name_ptr_; +}; + +struct trace_event_data_offsets_hw_pressure_update {}; + +struct trace_event_data_offsets_hwmon_attr_class { + u32 attr_name; + const void *attr_name_ptr_; +}; + +struct trace_event_data_offsets_hwmon_attr_show_string { + u32 attr_name; + const void *attr_name_ptr_; + u32 label; + const void *label_ptr_; +}; + +struct trace_event_data_offsets_i2c_read {}; + +struct trace_event_data_offsets_i2c_reply { + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_i2c_result {}; + +struct trace_event_data_offsets_i2c_slave {}; + +struct trace_event_data_offsets_i2c_write { + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_icc_set_bw { + u32 path_name; + const void *path_name_ptr_; + u32 dev; + const void *dev_ptr_; + u32 node_name; + const void *node_name_ptr_; +}; + +struct trace_event_data_offsets_icc_set_bw_end { + u32 path_name; + const void *path_name_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_icmp_send {}; + +struct trace_event_data_offsets_inet_sk_error_report {}; + +struct trace_event_data_offsets_inet_sock_set_state {}; + +struct trace_event_data_offsets_initcall_finish {}; + +struct trace_event_data_offsets_initcall_level { + u32 level; + const void *level_ptr_; +}; + +struct trace_event_data_offsets_initcall_start {}; + +struct trace_event_data_offsets_inode_foreign_history {}; + +struct trace_event_data_offsets_inode_switch_wbs {}; + +struct trace_event_data_offsets_instruction_emulation { + u32 instr; + const void *instr_ptr_; +}; + +struct trace_event_data_offsets_io_uring_complete {}; + +struct trace_event_data_offsets_io_uring_cqe_overflow {}; + +struct trace_event_data_offsets_io_uring_cqring_wait {}; + +struct trace_event_data_offsets_io_uring_create {}; + +struct trace_event_data_offsets_io_uring_defer { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_fail_link { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_file_get {}; + +struct trace_event_data_offsets_io_uring_link {}; + +struct trace_event_data_offsets_io_uring_local_work_run {}; + +struct trace_event_data_offsets_io_uring_poll_arm { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_queue_async_work { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_register {}; + +struct trace_event_data_offsets_io_uring_req_failed { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_short_write {}; + +struct trace_event_data_offsets_io_uring_submit_req { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_task_add { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_task_work_run {}; + +struct trace_event_data_offsets_iocg_inuse_update { + u32 devname; + const void *devname_ptr_; + u32 cgroup; + const void *cgroup_ptr_; +}; + +struct trace_event_data_offsets_iocost_ioc_vrate_adj { + u32 devname; + const void *devname_ptr_; +}; + +struct trace_event_data_offsets_iocost_iocg_forgive_debt { + u32 devname; + const void *devname_ptr_; + u32 cgroup; + const void *cgroup_ptr_; +}; + +struct trace_event_data_offsets_iocost_iocg_state { + u32 devname; + const void *devname_ptr_; + u32 cgroup; + const void *cgroup_ptr_; +}; + +struct trace_event_data_offsets_iomap_class {}; + +struct trace_event_data_offsets_iomap_dio_complete {}; + +struct trace_event_data_offsets_iomap_dio_rw_begin {}; + +struct trace_event_data_offsets_iomap_iter {}; + +struct trace_event_data_offsets_iomap_range_class {}; + +struct trace_event_data_offsets_iomap_readpage_class {}; + +struct trace_event_data_offsets_iomap_writepage_map {}; + +struct trace_event_data_offsets_iommu_device_event { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_iommu_error { + u32 device; + const void *device_ptr_; + u32 driver; + const void *driver_ptr_; +}; + +struct trace_event_data_offsets_iommu_group_event { + u32 device; + const void *device_ptr_; +}; + +struct trace_event_data_offsets_ipi_handler {}; + +struct trace_event_data_offsets_ipi_raise { + u32 target_cpus; + const void *target_cpus_ptr_; +}; + +struct trace_event_data_offsets_ipi_send_cpu {}; + +struct trace_event_data_offsets_ipi_send_cpumask { + u32 cpumask; + const void *cpumask_ptr_; +}; + +struct trace_event_data_offsets_irq_handler_entry { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_irq_handler_exit {}; + +struct trace_event_data_offsets_irq_noise { + u32 desc; + const void *desc_ptr_; +}; + +struct trace_event_data_offsets_itimer_expire {}; + +struct trace_event_data_offsets_itimer_state {}; + +struct trace_event_data_offsets_jbd2_checkpoint {}; + +struct trace_event_data_offsets_jbd2_checkpoint_stats {}; + +struct trace_event_data_offsets_jbd2_commit {}; + +struct trace_event_data_offsets_jbd2_end_commit {}; + +struct trace_event_data_offsets_jbd2_handle_extend {}; + +struct trace_event_data_offsets_jbd2_handle_start_class {}; + +struct trace_event_data_offsets_jbd2_handle_stats {}; + +struct trace_event_data_offsets_jbd2_journal_shrink {}; + +struct trace_event_data_offsets_jbd2_lock_buffer_stall {}; + +struct trace_event_data_offsets_jbd2_run_stats {}; + +struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; + +struct trace_event_data_offsets_jbd2_shrink_scan_exit {}; + +struct trace_event_data_offsets_jbd2_submit_inode_data {}; + +struct trace_event_data_offsets_jbd2_update_log_tail {}; + +struct trace_event_data_offsets_jbd2_write_superblock {}; + +struct trace_event_data_offsets_kcompactd_wake_template {}; + +struct trace_event_data_offsets_kfree {}; + +struct trace_event_data_offsets_kfree_skb {}; + +struct trace_event_data_offsets_kmalloc {}; + +struct trace_event_data_offsets_kmem_cache_alloc {}; + +struct trace_event_data_offsets_kmem_cache_free { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_ksm_advisor {}; + +struct trace_event_data_offsets_ksm_enter_exit_template {}; + +struct trace_event_data_offsets_ksm_merge_one_page {}; + +struct trace_event_data_offsets_ksm_merge_with_ksm_page {}; + +struct trace_event_data_offsets_ksm_remove_ksm_page {}; + +struct trace_event_data_offsets_ksm_remove_rmap_item {}; + +struct trace_event_data_offsets_ksm_scan_template {}; + +struct trace_event_data_offsets_kvm_access_fault {}; + +struct trace_event_data_offsets_kvm_ack_irq {}; + +struct trace_event_data_offsets_kvm_age_hva {}; + +struct trace_event_data_offsets_kvm_arm_set_dreg32 {}; + +struct trace_event_data_offsets_kvm_dirty_ring_exit {}; + +struct trace_event_data_offsets_kvm_dirty_ring_push {}; + +struct trace_event_data_offsets_kvm_dirty_ring_reset {}; + +struct trace_event_data_offsets_kvm_entry {}; + +struct trace_event_data_offsets_kvm_exit {}; + +struct trace_event_data_offsets_kvm_forward_sysreg_trap {}; + +struct trace_event_data_offsets_kvm_fpu {}; + +struct trace_event_data_offsets_kvm_get_timer_map {}; + +struct trace_event_data_offsets_kvm_guest_fault {}; + +struct trace_event_data_offsets_kvm_halt_poll_ns {}; + +struct trace_event_data_offsets_kvm_handle_sys_reg {}; + +struct trace_event_data_offsets_kvm_hvc_arm64 {}; + +struct trace_event_data_offsets_kvm_inject_nested_exception {}; + +struct trace_event_data_offsets_kvm_iocsr {}; + +struct trace_event_data_offsets_kvm_irq_line {}; + +struct trace_event_data_offsets_kvm_mmio {}; + +struct trace_event_data_offsets_kvm_mmio_emulate {}; + +struct trace_event_data_offsets_kvm_mmio_nisv {}; + +struct trace_event_data_offsets_kvm_nested_eret {}; + +struct trace_event_data_offsets_kvm_set_guest_debug {}; + +struct trace_event_data_offsets_kvm_set_irq {}; + +struct trace_event_data_offsets_kvm_set_way_flush {}; + +struct trace_event_data_offsets_kvm_sys_access {}; + +struct trace_event_data_offsets_kvm_test_age_hva {}; + +struct trace_event_data_offsets_kvm_timer_emulate {}; + +struct trace_event_data_offsets_kvm_timer_hrtimer_expire {}; + +struct trace_event_data_offsets_kvm_timer_restore_state {}; + +struct trace_event_data_offsets_kvm_timer_save_state {}; + +struct trace_event_data_offsets_kvm_timer_update_irq {}; + +struct trace_event_data_offsets_kvm_toggle_cache {}; + +struct trace_event_data_offsets_kvm_unmap_hva_range {}; + +struct trace_event_data_offsets_kvm_userspace_exit {}; + +struct trace_event_data_offsets_kvm_vcpu_wakeup {}; + +struct trace_event_data_offsets_kvm_wfx_arm64 {}; + +struct trace_event_data_offsets_leases_conflict {}; + +struct trace_event_data_offsets_locks_get_lock_context {}; + +struct trace_event_data_offsets_ma_op {}; + +struct trace_event_data_offsets_ma_read {}; + +struct trace_event_data_offsets_ma_write {}; + +struct trace_event_data_offsets_map {}; + +struct trace_event_data_offsets_mark_victim { + u32 comm; + const void *comm_ptr_; +}; + +struct trace_event_data_offsets_mc_event { + u32 msg; + const void *msg_ptr_; + u32 label; + const void *label_ptr_; + u32 driver_detail; + const void *driver_detail_ptr_; +}; + +struct trace_event_data_offsets_mctp_key_acquire {}; + +struct trace_event_data_offsets_mctp_key_release {}; + +struct trace_event_data_offsets_mdio_access {}; + +struct trace_event_data_offsets_mem_connect {}; + +struct trace_event_data_offsets_mem_disconnect {}; + +struct trace_event_data_offsets_mem_return_failed {}; + +struct trace_event_data_offsets_memcg_flush_stats {}; + +struct trace_event_data_offsets_memcg_rstat_events {}; + +struct trace_event_data_offsets_memcg_rstat_stats {}; + +struct trace_event_data_offsets_memory_failure_event {}; + +struct trace_event_data_offsets_migration_pmd {}; + +struct trace_event_data_offsets_migration_pte {}; + +struct trace_event_data_offsets_mm_alloc_contig_migrate_range_info {}; + +struct trace_event_data_offsets_mm_collapse_huge_page {}; + +struct trace_event_data_offsets_mm_collapse_huge_page_isolate {}; + +struct trace_event_data_offsets_mm_collapse_huge_page_swapin {}; + +struct trace_event_data_offsets_mm_compaction_begin {}; + +struct trace_event_data_offsets_mm_compaction_defer_template {}; + +struct trace_event_data_offsets_mm_compaction_end {}; + +struct trace_event_data_offsets_mm_compaction_isolate_template {}; + +struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {}; + +struct trace_event_data_offsets_mm_compaction_migratepages {}; + +struct trace_event_data_offsets_mm_compaction_suitable_template {}; + +struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {}; + +struct trace_event_data_offsets_mm_filemap_fault {}; + +struct trace_event_data_offsets_mm_filemap_op_page_cache {}; + +struct trace_event_data_offsets_mm_filemap_op_page_cache_range {}; + +struct trace_event_data_offsets_mm_khugepaged_collapse_file { + u32 filename; + const void *filename_ptr_; +}; + +struct trace_event_data_offsets_mm_khugepaged_scan_file { + u32 filename; + const void *filename_ptr_; +}; + +struct trace_event_data_offsets_mm_khugepaged_scan_pmd {}; + +struct trace_event_data_offsets_mm_lru_activate {}; + +struct trace_event_data_offsets_mm_lru_insertion {}; + +struct trace_event_data_offsets_mm_migrate_pages {}; + +struct trace_event_data_offsets_mm_migrate_pages_start {}; + +struct trace_event_data_offsets_mm_page {}; + +struct trace_event_data_offsets_mm_page_alloc {}; + +struct trace_event_data_offsets_mm_page_alloc_extfrag {}; + +struct trace_event_data_offsets_mm_page_free {}; + +struct trace_event_data_offsets_mm_page_free_batched {}; + +struct trace_event_data_offsets_mm_page_pcpu_drain {}; + +struct trace_event_data_offsets_mm_shrink_slab_end {}; + +struct trace_event_data_offsets_mm_shrink_slab_start {}; + +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_vmscan_kswapd_sleep {}; + +struct trace_event_data_offsets_mm_vmscan_kswapd_wake {}; + +struct trace_event_data_offsets_mm_vmscan_lru_isolate {}; + +struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {}; + +struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {}; + +struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {}; + +struct trace_event_data_offsets_mm_vmscan_reclaim_pages {}; + +struct trace_event_data_offsets_mm_vmscan_throttled {}; + +struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {}; + +struct trace_event_data_offsets_mm_vmscan_write_folio {}; + +struct trace_event_data_offsets_mmap_lock {}; + +struct trace_event_data_offsets_mmap_lock_acquire_returned {}; + +struct trace_event_data_offsets_mmc_request_done { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_mmc_request_start { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_module_free { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_module_load { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_module_refcnt { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_module_request { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_mptcp_dump_mpext {}; + +struct trace_event_data_offsets_mptcp_subflow_get_send {}; + +struct trace_event_data_offsets_napi_poll { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct trace_event_data_offsets_neigh__update { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_neigh_create { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_neigh_update { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_net_dev_rx_exit_template {}; + +struct trace_event_data_offsets_net_dev_rx_verbose_template { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_net_dev_start_xmit { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_net_dev_template { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_net_dev_xmit { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_net_dev_xmit_timeout { + u32 name; + const void *name_ptr_; + u32 driver; + const void *driver_ptr_; +}; + +struct trace_event_data_offsets_netlink_extack { + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_nmi_noise {}; + +struct trace_event_data_offsets_non_standard_event { + u32 fru_text; + const void *fru_text_ptr_; + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_notifier_info {}; + +struct trace_event_data_offsets_oom_score_adj_update {}; + +struct trace_event_data_offsets_page_pool_release {}; + +struct trace_event_data_offsets_page_pool_state_hold {}; + +struct trace_event_data_offsets_page_pool_state_release {}; + +struct trace_event_data_offsets_page_pool_update_nid {}; + +struct trace_event_data_offsets_percpu_alloc_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 trace_event_data_offsets_percpu_free_percpu {}; + +struct trace_event_data_offsets_pm_qos_update {}; + +struct trace_event_data_offsets_power_domain { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_powernv_throttle { + u32 reason; + const void *reason_ptr_; +}; + +struct trace_event_data_offsets_pstate_sample {}; + +struct trace_event_data_offsets_purge_vmap_area_lazy {}; + +struct trace_event_data_offsets_pwm {}; + +struct trace_event_data_offsets_pwm_read_waveform {}; + +struct trace_event_data_offsets_pwm_round_waveform_fromhw {}; + +struct trace_event_data_offsets_pwm_round_waveform_tohw {}; + +struct trace_event_data_offsets_pwm_write_waveform {}; + +struct trace_event_data_offsets_qdisc_create { + u32 dev; + const void *dev_ptr_; + u32 kind; + const void *kind_ptr_; +}; + +struct trace_event_data_offsets_qdisc_dequeue {}; + +struct trace_event_data_offsets_qdisc_destroy { + u32 dev; + const void *dev_ptr_; + u32 kind; + const void *kind_ptr_; +}; + +struct trace_event_data_offsets_qdisc_enqueue {}; + +struct trace_event_data_offsets_qdisc_reset { + u32 dev; + const void *dev_ptr_; + u32 kind; + const void *kind_ptr_; +}; + +struct trace_event_data_offsets_rcu_stall_warning {}; + +struct trace_event_data_offsets_rcu_utilization {}; + +struct trace_event_data_offsets_reclaim_retry_zone {}; + +struct trace_event_data_offsets_regcache_drop_region { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regcache_sync { + u32 name; + const void *name_ptr_; + u32 status; + const void *status_ptr_; + u32 type; + const void *type_ptr_; +}; + +struct trace_event_data_offsets_regmap_async { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regmap_block { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regmap_bool { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regmap_bulk { + u32 name; + const void *name_ptr_; + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_regmap_reg { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regulator_basic { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regulator_range { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_regulator_value { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rpm_internal { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rpm_return_int { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rpm_status { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rpmh_send_msg { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rpmh_tx_done { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rseq_ip_fixup {}; + +struct trace_event_data_offsets_rseq_update {}; + +struct trace_event_data_offsets_rss_stat {}; + +struct trace_event_data_offsets_rtc_alarm_irq_enable {}; + +struct trace_event_data_offsets_rtc_irq_set_freq {}; + +struct trace_event_data_offsets_rtc_irq_set_state {}; + +struct trace_event_data_offsets_rtc_offset_class {}; + +struct trace_event_data_offsets_rtc_time_alarm_class {}; + +struct trace_event_data_offsets_rtc_timer_class {}; + +struct trace_event_data_offsets_rwmmio_post_read {}; + +struct trace_event_data_offsets_rwmmio_read {}; + +struct trace_event_data_offsets_rwmmio_rw_template {}; + +struct trace_event_data_offsets_sample_threshold {}; + +struct trace_event_data_offsets_sched_ext_dump { + u32 line; + const void *line_ptr_; +}; + +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_execute_end {}; + +struct trace_event_data_offsets_sched_kthread_work_execute_start {}; + +struct trace_event_data_offsets_sched_kthread_work_queue_work {}; + +struct trace_event_data_offsets_sched_migrate_task {}; + +struct trace_event_data_offsets_sched_move_numa {}; + +struct trace_event_data_offsets_sched_numa_pair_template {}; + +struct trace_event_data_offsets_sched_pi_setprio {}; + +struct trace_event_data_offsets_sched_prepare_exec { + u32 interp; + const void *interp_ptr_; + u32 filename; + const void *filename_ptr_; + u32 comm; + const void *comm_ptr_; +}; + +struct trace_event_data_offsets_sched_process_exec { + u32 filename; + const void *filename_ptr_; +}; + +struct trace_event_data_offsets_sched_process_fork {}; + +struct trace_event_data_offsets_sched_process_hang {}; + +struct trace_event_data_offsets_sched_process_template {}; + +struct trace_event_data_offsets_sched_process_wait {}; + +struct trace_event_data_offsets_sched_skip_vma_numa {}; + +struct trace_event_data_offsets_sched_stat_runtime {}; + +struct trace_event_data_offsets_sched_stat_template {}; + +struct trace_event_data_offsets_sched_switch {}; + +struct trace_event_data_offsets_sched_wake_idle_without_ipi {}; + +struct trace_event_data_offsets_sched_wakeup_template {}; + +struct trace_event_data_offsets_scmi_fc_call {}; + +struct trace_event_data_offsets_scmi_msg_dump { + u32 cmd; + const void *cmd_ptr_; +}; + +struct trace_event_data_offsets_scmi_rx_done {}; + +struct trace_event_data_offsets_scmi_xfer_begin {}; + +struct trace_event_data_offsets_scmi_xfer_end {}; + +struct trace_event_data_offsets_scmi_xfer_response_wait {}; + +struct trace_event_data_offsets_scsi_cmd_done_timeout_template { + u32 cmnd; + const void *cmnd_ptr_; +}; + +struct trace_event_data_offsets_scsi_dispatch_cmd_error { + u32 cmnd; + const void *cmnd_ptr_; +}; + +struct trace_event_data_offsets_scsi_dispatch_cmd_start { + u32 cmnd; + const void *cmnd_ptr_; +}; + +struct trace_event_data_offsets_scsi_eh_wakeup {}; + +struct trace_event_data_offsets_scsi_prepare_zone_append {}; + +struct trace_event_data_offsets_scsi_zone_wp_update {}; + +struct trace_event_data_offsets_selinux_audited { + u32 scontext; + const void *scontext_ptr_; + u32 tcontext; + const void *tcontext_ptr_; + u32 tclass; + const void *tclass_ptr_; +}; + +struct trace_event_data_offsets_signal_deliver {}; + +struct trace_event_data_offsets_signal_generate {}; + +struct trace_event_data_offsets_sk_data_ready {}; + +struct trace_event_data_offsets_skb_copy_datagram_iovec {}; + +struct trace_event_data_offsets_skip_task_reaping {}; + +struct trace_event_data_offsets_smbus_read {}; + +struct trace_event_data_offsets_smbus_reply {}; + +struct trace_event_data_offsets_smbus_result {}; + +struct trace_event_data_offsets_smbus_write {}; + +struct trace_event_data_offsets_sock_exceed_buf_limit {}; + +struct trace_event_data_offsets_sock_msg_length {}; + +struct trace_event_data_offsets_sock_rcvqueue_full {}; + +struct trace_event_data_offsets_softirq {}; + +struct trace_event_data_offsets_softirq_noise {}; + +struct trace_event_data_offsets_spi_controller {}; + +struct trace_event_data_offsets_spi_message {}; + +struct trace_event_data_offsets_spi_message_done {}; + +struct trace_event_data_offsets_spi_set_cs {}; + +struct trace_event_data_offsets_spi_setup {}; + +struct trace_event_data_offsets_spi_transfer { + u32 rx_buf; + const void *rx_buf_ptr_; + u32 tx_buf; + const void *tx_buf_ptr_; +}; + +struct trace_event_data_offsets_start_task_reaping {}; + +struct trace_event_data_offsets_subflow_check_data_avail {}; + +struct trace_event_data_offsets_suspend_resume {}; + +struct trace_event_data_offsets_swiotlb_bounced { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct trace_event_data_offsets_sync_timeline { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_sys_enter {}; + +struct trace_event_data_offsets_sys_exit {}; + +struct trace_event_data_offsets_task_newtask {}; + +struct trace_event_data_offsets_task_prctl_unknown {}; + +struct trace_event_data_offsets_task_rename {}; + +struct trace_event_data_offsets_tasklet {}; + +struct trace_event_data_offsets_tcp_ao_event {}; + +struct trace_event_data_offsets_tcp_ao_event_sk {}; + +struct trace_event_data_offsets_tcp_ao_event_sne {}; + +struct trace_event_data_offsets_tcp_cong_state_set {}; + +struct trace_event_data_offsets_tcp_event_sk {}; + +struct trace_event_data_offsets_tcp_event_sk_skb {}; + +struct trace_event_data_offsets_tcp_event_skb {}; + +struct trace_event_data_offsets_tcp_hash_event {}; + +struct trace_event_data_offsets_tcp_probe {}; + +struct trace_event_data_offsets_tcp_retransmit_synack {}; + +struct trace_event_data_offsets_tcp_send_reset {}; + +struct trace_event_data_offsets_tegra_dma_complete_cb { + u32 chan; + const void *chan_ptr_; +}; + +struct trace_event_data_offsets_tegra_dma_isr { + u32 chan; + const void *chan_ptr_; +}; + +struct trace_event_data_offsets_tegra_dma_tx_status { + u32 chan; + const void *chan_ptr_; +}; + +struct trace_event_data_offsets_test_pages_isolated {}; + +struct trace_event_data_offsets_thermal_power_actor {}; + +struct trace_event_data_offsets_thermal_power_allocator {}; + +struct trace_event_data_offsets_thermal_power_allocator_pid {}; + +struct trace_event_data_offsets_thermal_power_cpu_get_power_simple {}; + +struct trace_event_data_offsets_thermal_power_cpu_limit { + u32 cpumask; + const void *cpumask_ptr_; +}; + +struct trace_event_data_offsets_thermal_power_devfreq_get_power { + u32 type; + const void *type_ptr_; +}; + +struct trace_event_data_offsets_thermal_power_devfreq_limit { + u32 type; + const void *type_ptr_; +}; + +struct trace_event_data_offsets_thermal_temperature { + u32 thermal_zone; + const void *thermal_zone_ptr_; +}; + +struct trace_event_data_offsets_thermal_zone_trip { + u32 thermal_zone; + const void *thermal_zone_ptr_; +}; + +struct trace_event_data_offsets_thread_noise {}; + +struct trace_event_data_offsets_tick_stop {}; + +struct trace_event_data_offsets_timer_base_idle {}; + +struct trace_event_data_offsets_timer_class {}; + +struct trace_event_data_offsets_timer_expire_entry {}; + +struct trace_event_data_offsets_timer_start {}; + +struct trace_event_data_offsets_tlb_flush {}; + +struct trace_event_data_offsets_tls_contenttype {}; + +struct trace_event_data_offsets_tmigr_connect_child_parent {}; + +struct trace_event_data_offsets_tmigr_connect_cpu_parent {}; + +struct trace_event_data_offsets_tmigr_cpugroup {}; + +struct trace_event_data_offsets_tmigr_group_and_cpu {}; + +struct trace_event_data_offsets_tmigr_group_set {}; + +struct trace_event_data_offsets_tmigr_handle_remote {}; + +struct trace_event_data_offsets_tmigr_idle {}; + +struct trace_event_data_offsets_tmigr_update_events {}; + +struct trace_event_data_offsets_track_foreign_dirty {}; + +struct trace_event_data_offsets_udp_fail_queue_rcv_skb {}; + +struct trace_event_data_offsets_unmap {}; + +struct trace_event_data_offsets_vgic_update_irq_pending {}; + +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_wake_reaper {}; + +struct trace_event_data_offsets_wakeup_source { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_watchdog_set_timeout {}; + +struct trace_event_data_offsets_watchdog_template {}; + +struct trace_event_data_offsets_wbc_class {}; + +struct trace_event_data_offsets_wbt_lat {}; + +struct trace_event_data_offsets_wbt_stat {}; + +struct trace_event_data_offsets_wbt_step {}; + +struct trace_event_data_offsets_wbt_timer {}; + +struct trace_event_data_offsets_workqueue_activate_work {}; + +struct trace_event_data_offsets_workqueue_execute_end {}; + +struct trace_event_data_offsets_workqueue_execute_start {}; + +struct trace_event_data_offsets_workqueue_queue_work { + u32 workqueue; + const void *workqueue_ptr_; +}; + +struct trace_event_data_offsets_writeback_bdi_register {}; + +struct trace_event_data_offsets_writeback_class {}; + +struct trace_event_data_offsets_writeback_dirty_inode_template {}; + +struct trace_event_data_offsets_writeback_folio_template {}; + +struct trace_event_data_offsets_writeback_inode_template {}; + +struct trace_event_data_offsets_writeback_pages_written {}; + +struct trace_event_data_offsets_writeback_queue_io {}; + +struct trace_event_data_offsets_writeback_sb_inodes_requeue {}; + +struct trace_event_data_offsets_writeback_single_inode_template {}; + +struct trace_event_data_offsets_writeback_work_class {}; + +struct trace_event_data_offsets_writeback_write_inode_template {}; + +struct trace_event_data_offsets_xdp_bulk_tx {}; + +struct trace_event_data_offsets_xdp_cpumap_enqueue {}; + +struct trace_event_data_offsets_xdp_cpumap_kthread {}; + +struct trace_event_data_offsets_xdp_devmap_xmit {}; + +struct trace_event_data_offsets_xdp_exception {}; + +struct trace_event_data_offsets_xdp_redirect_template {}; + +struct trace_event_data_offsets_xhci_dbc_log_request {}; + +struct trace_event_data_offsets_xhci_log_ctrl_ctx {}; + +struct trace_event_data_offsets_xhci_log_ctx { + u32 ctx_data; + const void *ctx_data_ptr_; +}; + +struct trace_event_data_offsets_xhci_log_doorbell {}; + +struct trace_event_data_offsets_xhci_log_ep_ctx {}; + +struct trace_event_data_offsets_xhci_log_free_virt_dev {}; + +struct trace_event_data_offsets_xhci_log_msg { + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_xhci_log_portsc {}; + +struct trace_event_data_offsets_xhci_log_ring {}; + +struct trace_event_data_offsets_xhci_log_slot_ctx {}; + +struct trace_event_data_offsets_xhci_log_stream_ctx {}; + +struct trace_event_data_offsets_xhci_log_trb {}; + +struct trace_event_data_offsets_xhci_log_urb { + u32 devname; + const void *devname_ptr_; +}; + +struct trace_event_data_offsets_xhci_log_virt_dev {}; + +struct trace_event_fields { + const char *type; + union { + struct { + const char *name; + const int size; + const int align; + const unsigned int is_signed: 1; + unsigned int needs_test: 1; + const int filter_type; + const int len; + }; + int (*define_fields)(struct trace_event_call *); + }; +}; + +struct trace_subsystem_dir; + +struct trace_event_file { + struct list_head list; + struct trace_event_call *event_call; + struct event_filter *filter; + struct eventfs_inode *ei; + struct trace_array *tr; + struct trace_subsystem_dir *system; + struct list_head triggers; + long unsigned int flags; + refcount_t ref; + atomic_t sm_ref; + atomic_t tm_ref; +}; + +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 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_aer_event { + struct trace_entry ent; + u32 __data_loc_dev_name; + u32 status; + u8 severity; + u8 tlp_header_valid; + u32 tlp_header[4]; + char __data[0]; +}; + +struct 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_raw_alarmtimer_suspend { + struct trace_entry ent; + s64 expires; + unsigned char alarm_type; + char __data[0]; +}; + +struct trace_event_raw_alloc_vmap_area { + struct trace_entry ent; + long unsigned int addr; + long unsigned int size; + long unsigned int align; + long unsigned int vstart; + long unsigned int vend; + int failed; + char __data[0]; +}; + +struct trace_event_raw_arm_event { + struct trace_entry ent; + u64 mpidr; + u64 midr; + u32 running_state; + u32 psci_state; + u8 affinity; + char __data[0]; +}; + +struct 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_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_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_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_link_reset_begin_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int class[2]; + long unsigned int 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_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; + long unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ata_qc_issue_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int tag; + unsigned char cmd; + unsigned char dev; + unsigned char lbal; + unsigned char lbam; + unsigned char lbah; + unsigned char nsect; + unsigned char feature; + unsigned char hob_lbal; + unsigned char hob_lbam; + unsigned char hob_lbah; + unsigned char hob_nsect; + unsigned char hob_feature; + unsigned char ctl; + unsigned char proto; + long unsigned int flags; + 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_sff_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned char hsm_state; + 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_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_balance_dirty_pages { + struct trace_entry ent; + char bdi[32]; + long unsigned int limit; + long unsigned int setpoint; + long unsigned int dirty; + long unsigned int bdi_setpoint; + long unsigned int bdi_dirty; + long unsigned int dirty_ratelimit; + long unsigned int task_ratelimit; + unsigned int dirtied; + unsigned int dirtied_pause; + long unsigned int paused; + long int pause; + long unsigned int period; + long int think; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_bdi_dirty_ratelimit { + struct trace_entry ent; + char bdi[32]; + long unsigned int write_bw; + long unsigned int avg_write_bw; + long unsigned int dirty_rate; + long unsigned int dirty_ratelimit; + long unsigned int task_ratelimit; + long unsigned int balanced_dirty_ratelimit; + ino_t cgroup_ino; + 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_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_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_buffer { + struct trace_entry ent; + dev_t dev; + sector_t sector; + size_t size; + char __data[0]; +}; + +struct trace_event_raw_block_plug { + struct trace_entry ent; + char comm[16]; + 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; + short unsigned int ioprio; + char rwbs[8]; + char comm[16]; + 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; + short unsigned int ioprio; + char rwbs[8]; + u32 __data_loc_cmd; + 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_raw_block_rq_requeue { + struct trace_entry ent; + dev_t dev; + sector_t sector; + unsigned int nr_sector; + short unsigned int ioprio; + char rwbs[8]; + u32 __data_loc_cmd; + 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_unplug { + struct trace_entry ent; + int nr_rq; + char comm[16]; + char __data[0]; +}; + +struct trace_event_raw_bpf_test_finish { + struct trace_entry ent; + int err; + char __data[0]; +}; + +struct trace_event_raw_bpf_trace_printk { + struct trace_entry ent; + u32 __data_loc_bpf_string; + char __data[0]; +}; + +struct trace_event_raw_bpf_trigger_tp { + struct trace_entry ent; + int nonce; + char __data[0]; +}; + +struct trace_event_raw_bpf_xdp_link_attach_failed { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_raw_br_fdb_add { + struct trace_entry ent; + u8 ndm_flags; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + u16 nlh_flags; + char __data[0]; +}; + +struct trace_event_raw_br_fdb_external_learn_add { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + char __data[0]; +}; + +struct trace_event_raw_br_fdb_update { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + long unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_br_mdb_full { + struct trace_entry ent; + u32 __data_loc_dev; + int af; + u16 vid; + __u8 src[16]; + __u8 grp[16]; + __u8 grpmac[6]; + char __data[0]; +}; + +struct trace_event_raw_cap_capable { + struct trace_entry ent; + const struct cred *cred; + struct user_namespace *target_ns; + const struct user_namespace *capable_ns; + int cap; + int ret; + char __data[0]; +}; + +struct trace_event_raw_cdev_update { + struct trace_entry ent; + u32 __data_loc_type; + long unsigned int target; + 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_event { + struct trace_entry ent; + int root; + int level; + u64 id; + u32 __data_loc_path; + int val; + 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_root { + struct trace_entry ent; + int root; + u16 ss_mask; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_cgroup_rstat { + struct trace_entry ent; + int root; + int level; + u64 id; + int cpu; + bool contended; + char __data[0]; +}; + +struct trace_event_raw_clk { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_clk_duty_cycle { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int num; + unsigned int den; + char __data[0]; +}; + +struct trace_event_raw_clk_parent { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_pname; + char __data[0]; +}; + +struct trace_event_raw_clk_phase { + struct trace_entry ent; + u32 __data_loc_name; + int phase; + char __data[0]; +}; + +struct trace_event_raw_clk_rate { + struct trace_entry ent; + u32 __data_loc_name; + long unsigned int rate; + char __data[0]; +}; + +struct trace_event_raw_clk_rate_range { + struct trace_entry ent; + u32 __data_loc_name; + long unsigned int min; + long unsigned int max; + char __data[0]; +}; + +struct trace_event_raw_clk_rate_request { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_pname; + long unsigned int min; + long unsigned int max; + long unsigned int prate; + 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_cma_alloc_busy_retry { + struct trace_entry ent; + u32 __data_loc_name; + long unsigned int pfn; + const struct page *page; + long unsigned int count; + unsigned int align; + char __data[0]; +}; + +struct trace_event_raw_cma_alloc_finish { + struct trace_entry ent; + u32 __data_loc_name; + long unsigned int pfn; + const struct page *page; + long unsigned int count; + unsigned int align; + int errorno; + char __data[0]; +}; + +struct trace_event_raw_cma_alloc_start { + struct trace_entry ent; + u32 __data_loc_name; + long unsigned int count; + unsigned int align; + char __data[0]; +}; + +struct trace_event_raw_cma_release { + struct trace_entry ent; + u32 __data_loc_name; + long unsigned int pfn; + const struct page *page; + long unsigned int count; + char __data[0]; +}; + +struct trace_event_raw_compact_retry { + struct trace_entry ent; + int order; + int priority; + int result; + int retries; + int max_retries; + bool ret; + char __data[0]; +}; + +struct trace_event_raw_console { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_raw_consume_skb { + struct trace_entry ent; + void *skbaddr; + void *location; + char __data[0]; +}; + +struct trace_event_raw_contention_begin { + struct trace_entry ent; + void *lock_addr; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_contention_end { + struct trace_entry ent; + void *lock_addr; + int ret; + char __data[0]; +}; + +struct trace_event_raw_context_tracking_user { + struct trace_entry ent; + int dummy; + char __data[0]; +}; + +struct trace_event_raw_cpu { + struct trace_entry ent; + u32 state; + u32 cpu_id; + 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_cpu_idle_miss { + struct trace_entry ent; + u32 cpu_id; + u32 state; + bool below; + char __data[0]; +}; + +struct trace_event_raw_cpu_latency_qos_request { + struct trace_entry ent; + s32 value; + char __data[0]; +}; + +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_exit { + struct trace_entry ent; + unsigned int cpu; + int state; + int idx; + int ret; + 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_cros_ec_request_done { + struct trace_entry ent; + uint32_t version; + uint32_t offset; + uint32_t command; + uint32_t outsize; + uint32_t insize; + uint32_t result; + int retval; + char __data[0]; +}; + +struct trace_event_raw_cros_ec_request_start { + struct trace_entry ent; + uint32_t version; + uint32_t offset; + uint32_t command; + uint32_t outsize; + uint32_t insize; + char __data[0]; +}; + +struct trace_event_raw_csd_function { + struct trace_entry ent; + void *func; + void *csd; + char __data[0]; +}; + +struct trace_event_raw_csd_queue_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *func; + void *csd; + char __data[0]; +}; + +struct trace_event_raw_ctime { + struct trace_entry ent; + dev_t dev; + ino_t ino; + time64_t ctime_s; + u32 ctime_ns; + u32 gen; + char __data[0]; +}; + +struct trace_event_raw_ctime_ns_xchg { + struct trace_entry ent; + dev_t dev; + ino_t ino; + u32 gen; + u32 old; + u32 new; + u32 cur; + char __data[0]; +}; + +struct trace_event_raw_dax_insert_mapping { + struct trace_entry ent; + long unsigned int ino; + long unsigned int vm_flags; + long unsigned int address; + void *radix_entry; + dev_t dev; + int write; + char __data[0]; +}; + +struct trace_event_raw_dax_pmd_fault_class { + struct trace_entry ent; + long unsigned int ino; + long unsigned int vm_start; + long unsigned int vm_end; + long unsigned int vm_flags; + long unsigned int address; + long unsigned int pgoff; + long unsigned int max_pgoff; + dev_t dev; + unsigned int flags; + int result; + char __data[0]; +}; + +struct trace_event_raw_dax_pmd_insert_mapping_class { + struct trace_entry ent; + long unsigned int ino; + long unsigned int vm_flags; + long unsigned int address; + long int length; + u64 pfn_val; + void *radix_entry; + dev_t dev; + int write; + char __data[0]; +}; + +struct trace_event_raw_dax_pmd_load_hole_class { + struct trace_entry ent; + long unsigned int ino; + long unsigned int vm_flags; + long unsigned int address; + struct folio *zero_folio; + void *radix_entry; + dev_t dev; + char __data[0]; +}; + +struct trace_event_raw_dax_pte_fault_class { + struct trace_entry ent; + long unsigned int ino; + long unsigned int vm_flags; + long unsigned int address; + long unsigned int pgoff; + dev_t dev; + unsigned int flags; + int result; + char __data[0]; +}; + +struct trace_event_raw_dax_writeback_one { + struct trace_entry ent; + long unsigned int ino; + long unsigned int pgoff; + long unsigned int pglen; + dev_t dev; + char __data[0]; +}; + +struct trace_event_raw_dax_writeback_range_class { + struct trace_entry ent; + long unsigned int ino; + long unsigned int start_index; + long unsigned int end_index; + dev_t dev; + 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_devfreq_frequency { + struct trace_entry ent; + u32 __data_loc_dev_name; + long unsigned int freq; + long unsigned int prev_freq; + long unsigned int busy_time; + long unsigned int total_time; + char __data[0]; +}; + +struct trace_event_raw_devfreq_monitor { + struct trace_entry ent; + long unsigned int freq; + long unsigned int busy_time; + long unsigned int total_time; + unsigned int polling_ms; + u32 __data_loc_dev_name; + 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_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_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_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_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_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_hwmsg { + struct trace_entry ent; + u32 __data_loc_bus_name; + u32 __data_loc_dev_name; + u32 __data_loc_driver_name; + bool incoming; + long unsigned int type; + u32 __data_loc_buf; + size_t len; + 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 trace_event_raw_devres { + struct trace_entry ent; + u32 __data_loc_devname; + struct device *dev; + const char *op; + void *node; + u32 __data_loc_name; + size_t size; + char __data[0]; +}; + +struct trace_event_raw_dma_alloc_class { + struct trace_entry ent; + u32 __data_loc_device; + void *virt_addr; + u64 dma_addr; + size_t size; + gfp_t flags; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_alloc_sgt { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_phys_addrs; + u64 dma_addr; + size_t size; + enum dma_data_direction dir; + gfp_t flags; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_fence { + struct trace_entry ent; + u32 __data_loc_driver; + u32 __data_loc_timeline; + unsigned int context; + unsigned int seqno; + char __data[0]; +}; + +struct trace_event_raw_dma_free_class { + struct trace_entry ent; + u32 __data_loc_device; + void *virt_addr; + u64 dma_addr; + size_t size; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_free_sgt { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_phys_addrs; + u64 dma_addr; + size_t size; + enum dma_data_direction dir; + char __data[0]; +}; + +struct trace_event_raw_dma_map { + struct trace_entry ent; + u32 __data_loc_device; + u64 phys_addr; + u64 dma_addr; + size_t size; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_map_sg { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_phys_addrs; + u32 __data_loc_dma_addrs; + u32 __data_loc_lengths; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_map_sg_err { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_phys_addrs; + int err; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_sync_sg { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_dma_addrs; + u32 __data_loc_lengths; + enum dma_data_direction dir; + char __data[0]; +}; + +struct trace_event_raw_dma_sync_single { + struct trace_entry ent; + u32 __data_loc_device; + u64 dma_addr; + size_t size; + enum dma_data_direction dir; + char __data[0]; +}; + +struct trace_event_raw_dma_unmap { + struct trace_entry ent; + u32 __data_loc_device; + u64 addr; + size_t size; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dma_unmap_sg { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_addrs; + enum dma_data_direction dir; + long unsigned int attrs; + char __data[0]; +}; + +struct trace_event_raw_dql_stall_detected { + struct trace_entry ent; + short unsigned int thrs; + unsigned int len; + long unsigned int last_reap; + long unsigned int hist_head; + long unsigned int now; + long unsigned int hist[4]; + char __data[0]; +}; + +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_delivered { + struct trace_entry ent; + struct drm_file *file; + int crtc; + unsigned int seq; + char __data[0]; +}; + +struct trace_event_raw_drm_vblank_event_queued { + struct trace_entry ent; + struct drm_file *file; + int crtc; + unsigned int seq; + char __data[0]; +}; + +struct trace_event_raw_error_da_monitor_id { + struct trace_entry ent; + int id; + char state[24]; + char event[24]; + char __data[0]; +}; + +struct trace_event_raw_error_report_template { + struct trace_entry ent; + enum error_detector error_detector; + long unsigned int id; + char __data[0]; +}; + +struct trace_event_raw_event_da_monitor_id { + struct trace_entry ent; + int id; + char state[24]; + char event[24]; + char next_state[24]; + bool final_state; + 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 trace_event_raw_ext4__bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + 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_shrink_enter { + struct trace_entry ent; + dev_t dev; + int nr_to_scan; + int cache_cnt; + 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__folio_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int index; + 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__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__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__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__truncate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 blocks; + 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_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_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_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_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_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_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_da_reserve_space { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 i_blocks; + int reserve_blocks; + int reserved_data_blocks; + __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_write_pages { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int first_page; + long int 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_discard_blocks { + struct trace_entry ent; + dev_t dev; + __u64 blk; + __u64 count; + char __data[0]; +}; + +struct trace_event_raw_ext4_discard_preallocations { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int len; + char __data[0]; +}; + +struct trace_event_raw_ext4_drop_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int drop; + 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_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_insert_delayed_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; + bool lclu_allocated; + bool end_allocated; + 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_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_shrink { + struct trace_entry ent; + dev_t dev; + int nr_shrunk; + long long unsigned int scan_time; + int nr_skipped; + int retried; + 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_evict_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int nlink; + 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_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_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_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; + short unsigned int eh_entries; + 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_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 int ee_len; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + 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; + short unsigned int len; + 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_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_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_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_replay_scan { + struct trace_entry ent; + dev_t dev; + int error; + int off; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_stats { + struct trace_entry ent; + dev_t dev; + unsigned int fc_ineligible_rc[10]; + long unsigned int fc_commits; + long unsigned int fc_ineligible_commits; + long unsigned int 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 int start; + long int end; + int error; + 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_free_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 block; + long unsigned int count; + int flags; + __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_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_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_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_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_invalidate_folio_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int index; + size_t offset; + size_t length; + char __data[0]; +}; + +struct trace_event_raw_ext4_journal_start_inode { + struct trace_entry ent; + long unsigned int ino; + dev_t dev; + long unsigned int 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; + long unsigned int ip; + int blocks; + char __data[0]; +}; + +struct trace_event_raw_ext4_journal_start_sb { + struct trace_entry ent; + dev_t dev; + long unsigned int ip; + int blocks; + int rsv_blocks; + int revoke_creds; + int type; + 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_load_inode { + 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; + long unsigned int ip; + 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_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_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_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_nfs_commit_metadata { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; +}; + +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_prefetch_bitmaps { + struct trace_entry ent; + dev_t dev; + __u32 group; + __u32 next; + __u32 ios; + 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_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; + short unsigned int ee_len; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + 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_request_inode { + struct trace_entry ent; + dev_t dev; + ino_t dir; + __u16 mode; + 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_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_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_update_sb { + struct trace_entry ent; + dev_t dev; + ext4_fsblk_t fsblk; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_writepages { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long int nr_to_write; + long int pages_skipped; + loff_t range_start; + loff_t range_end; + long unsigned int writeback_index; + int sync_mode; + char for_kupdate; + char range_cyclic; + 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 int pages_skipped; + long unsigned int writeback_index; + int sync_mode; + char __data[0]; +}; + +struct trace_event_raw_fdb_delete { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + char __data[0]; +}; + +struct trace_event_raw_fib6_table_lookup { + struct trace_entry ent; + u32 tb_id; + int err; + int oif; + int iif; + u32 flowlabel; + __u8 tos; + __u8 scope; + __u8 flags; + __u8 src[16]; + __u8 dst[16]; + u16 sport; + u16 dport; + u8 proto; + u8 rt_type; + char name[16]; + __u8 gw[16]; + char __data[0]; +}; + +struct trace_event_raw_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_file_check_and_advance_wb_err { + struct trace_entry ent; + struct file *file; + long unsigned int i_ino; + dev_t s_dev; + errseq_t old; + errseq_t new; + char __data[0]; +}; + +struct trace_event_raw_filelock_lease { + struct trace_entry ent; + struct file_lease *fl; + long unsigned int i_ino; + dev_t s_dev; + struct file_lock_core *blocker; + fl_owner_t owner; + unsigned int flags; + unsigned char type; + long unsigned int break_time; + long unsigned int downgrade_time; + char __data[0]; +}; + +struct trace_event_raw_filelock_lock { + struct trace_entry ent; + struct file_lock *fl; + long unsigned int i_ino; + dev_t s_dev; + struct file_lock_core *blocker; + fl_owner_t owner; + unsigned int pid; + unsigned int flags; + unsigned char type; + loff_t fl_start; + loff_t fl_end; + int ret; + char __data[0]; +}; + +struct trace_event_raw_filemap_set_wb_err { + struct trace_entry ent; + long unsigned int i_ino; + dev_t s_dev; + errseq_t errseq; + char __data[0]; +}; + +struct trace_event_raw_fill_mg_cmtime { + struct trace_entry ent; + dev_t dev; + ino_t ino; + time64_t ctime_s; + time64_t mtime_s; + u32 ctime_ns; + u32 mtime_ns; + u32 gen; + char __data[0]; +}; + +struct trace_event_raw_finish_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; +}; + +struct trace_event_raw_flush_foreign { + struct trace_entry ent; + char name[32]; + ino_t cgroup_ino; + unsigned int frn_bdi_id; + unsigned int frn_memcg_id; + char __data[0]; +}; + +struct trace_event_raw_free_vmap_area_noflush { + struct trace_entry ent; + long unsigned int va_start; + long unsigned int nr_lazy; + long unsigned int nr_lazy_max; + char __data[0]; +}; + +struct trace_event_raw_fuse_request_end { + struct trace_entry ent; + dev_t connection; + uint64_t unique; + uint32_t len; + int32_t error; + char __data[0]; +}; + +struct trace_event_raw_fuse_request_send { + struct trace_entry ent; + dev_t connection; + uint64_t unique; + enum fuse_opcode opcode; + uint32_t len; + char __data[0]; +}; + +struct trace_event_raw_generic_add_lease { + struct trace_entry ent; + long unsigned int i_ino; + int wcount; + int rcount; + int icount; + dev_t s_dev; + fl_owner_t owner; + unsigned int flags; + unsigned char type; + char __data[0]; +}; + +struct trace_event_raw_global_dirty_state { + struct trace_entry ent; + long unsigned int nr_dirty; + long unsigned int nr_writeback; + long unsigned int background_thresh; + long unsigned int dirty_thresh; + long unsigned int dirty_limit; + long unsigned int nr_dirtied; + long unsigned int nr_written; + char __data[0]; +}; + +struct trace_event_raw_gpio_direction { + struct trace_entry ent; + unsigned int gpio; + int in; + int err; + char __data[0]; +}; + +struct trace_event_raw_gpio_value { + struct trace_entry ent; + unsigned int gpio; + int get; + int value; + char __data[0]; +}; + +struct trace_event_raw_gpu_mem_total { + struct trace_entry ent; + uint32_t gpu_id; + uint32_t pid; + uint64_t size; + 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_raw_handshake_alert_class { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + long unsigned int level; + long unsigned int description; + char __data[0]; +}; + +struct trace_event_raw_handshake_complete { + struct trace_entry ent; + const void *req; + const void *sk; + int status; + unsigned int netns_ino; + char __data[0]; +}; + +struct trace_event_raw_handshake_error_class { + struct trace_entry ent; + const void *req; + const void *sk; + int err; + unsigned int netns_ino; + char __data[0]; +}; + +struct trace_event_raw_handshake_event_class { + struct trace_entry ent; + const void *req; + const void *sk; + unsigned int netns_ino; + char __data[0]; +}; + +struct trace_event_raw_handshake_fd_class { + struct trace_entry ent; + const void *req; + const void *sk; + int fd; + unsigned int netns_ino; + char __data[0]; +}; + +struct trace_event_raw_hrtimer_class { + struct trace_entry ent; + void *hrtimer; + 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_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_hugepage_set { + struct trace_entry ent; + long unsigned int addr; + long unsigned int pte; + char __data[0]; +}; + +struct trace_event_raw_hugepage_update { + struct trace_entry ent; + long unsigned int addr; + long unsigned int pte; + long unsigned int clr; + long unsigned int set; + char __data[0]; +}; + +struct trace_event_raw_hugetlbfs__inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u16 mode; + loff_t size; + unsigned int nlink; + unsigned int seals; + blkcnt_t blocks; + char __data[0]; +}; + +struct trace_event_raw_hugetlbfs_alloc_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ino_t dir; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_hugetlbfs_fallocate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int mode; + loff_t offset; + loff_t len; + loff_t size; + int ret; + char __data[0]; +}; + +struct trace_event_raw_hugetlbfs_setattr { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int d_len; + u32 __data_loc_d_name; + unsigned int ia_valid; + unsigned int ia_mode; + loff_t old_size; + loff_t ia_size; + char __data[0]; +}; + +struct trace_event_raw_hw_pressure_update { + struct trace_entry ent; + long unsigned int hw_pressure; + int cpu; + char __data[0]; +}; + +struct trace_event_raw_hwmon_attr_class { + struct trace_entry ent; + int index; + u32 __data_loc_attr_name; + long int 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 trace_event_raw_i2c_read { + struct trace_entry ent; + int adapter_nr; + __u16 msg_nr; + __u16 addr; + __u16 flags; + __u16 len; + char __data[0]; +}; + +struct trace_event_raw_i2c_reply { + struct trace_entry ent; + int adapter_nr; + __u16 msg_nr; + __u16 addr; + __u16 flags; + __u16 len; + u32 __data_loc_buf; + char __data[0]; +}; + +struct trace_event_raw_i2c_result { + struct trace_entry ent; + int adapter_nr; + __u16 nr_msgs; + __s16 ret; + char __data[0]; +}; + +struct trace_event_raw_i2c_slave { + struct trace_entry ent; + int adapter_nr; + int ret; + __u16 addr; + __u16 len; + enum i2c_slave_event event; + __u8 buf[1]; + char __data[0]; +}; + +struct 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_icc_set_bw { + struct trace_entry ent; + u32 __data_loc_path_name; + u32 __data_loc_dev; + u32 __data_loc_node_name; + u32 avg_bw; + u32 peak_bw; + u32 node_avg_bw; + u32 node_peak_bw; + char __data[0]; +}; + +struct trace_event_raw_icc_set_bw_end { + struct trace_entry ent; + u32 __data_loc_path_name; + u32 __data_loc_dev; + int ret; + char __data[0]; +}; + +struct trace_event_raw_icmp_send { + struct trace_entry ent; + const void *skbaddr; + int type; + int code; + __u8 saddr[4]; + __u8 daddr[4]; + __u16 sport; + __u16 dport; + short unsigned int ulen; + 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_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]; +}; + +typedef int (*initcall_t)(void); + +struct trace_event_raw_initcall_finish { + struct trace_entry ent; + initcall_t func; + int ret; + char __data[0]; +}; + +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_inode_foreign_history { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t cgroup_ino; + unsigned int history; + char __data[0]; +}; + +struct trace_event_raw_inode_switch_wbs { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t old_cgroup_ino; + ino_t new_cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_instruction_emulation { + struct trace_entry ent; + u32 __data_loc_instr; + u64 addr; + 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_cqe_overflow { + struct trace_entry ent; + void *ctx; + long long unsigned int user_data; + s32 res; + u32 cflags; + void *ocqe; + 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_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_defer { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int data; + u8 opcode; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_fail_link { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int user_data; + u8 opcode; + void *link; + u32 __data_loc_op_str; + 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_link { + struct trace_entry ent; + void *ctx; + void *req; + void *target_req; + 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 trace_event_raw_io_uring_poll_arm { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int user_data; + u8 opcode; + int mask; + int events; + u32 __data_loc_op_str; + 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; + long long unsigned int flags; + struct io_wq_work *work; + int rw; + u32 __data_loc_op_str; + 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 int ret; + char __data[0]; +}; + +struct trace_event_raw_io_uring_req_failed { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int 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_short_write { + struct trace_entry ent; + void *ctx; + u64 fpos; + u64 wanted; + u64 got; + char __data[0]; +}; + +struct trace_event_raw_io_uring_submit_req { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int user_data; + u8 opcode; + long long unsigned int flags; + bool sq_thread; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_task_add { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int user_data; + u8 opcode; + int mask; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_task_work_run { + struct trace_entry ent; + void *tctx; + unsigned int count; + char __data[0]; +}; + +struct trace_event_raw_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 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_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_dio_complete { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + int ki_flags; + bool aio; + int error; + ssize_t ret; + char __data[0]; +}; + +struct trace_event_raw_iomap_dio_rw_begin { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + size_t count; + size_t done_before; + int ki_flags; + unsigned int dio_flags; + bool aio; + char __data[0]; +}; + +struct trace_event_raw_iomap_iter { + struct trace_entry ent; + dev_t dev; + u64 ino; + loff_t pos; + u64 length; + s64 processed; + unsigned int flags; + const void *ops; + long unsigned int caller; + 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_readpage_class { + struct trace_entry ent; + dev_t dev; + u64 ino; + int nr_pages; + char __data[0]; +}; + +struct trace_event_raw_iomap_writepage_map { + struct trace_entry ent; + dev_t dev; + u64 ino; + u64 pos; + u64 dirty_len; + u64 addr; + loff_t offset; + u64 length; + u16 type; + u16 flags; + dev_t bdev; + char __data[0]; +}; + +struct trace_event_raw_iommu_device_event { + struct trace_entry ent; + u32 __data_loc_device; + 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_raw_iommu_group_event { + struct trace_entry ent; + int gid; + u32 __data_loc_device; + char __data[0]; +}; + +struct trace_event_raw_ipi_handler { + struct trace_entry ent; + const char *reason; + char __data[0]; +}; + +struct trace_event_raw_ipi_raise { + struct trace_entry ent; + u32 __data_loc_target_cpus; + const char *reason; + char __data[0]; +}; + +struct trace_event_raw_ipi_send_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *callback; + char __data[0]; +}; + +struct trace_event_raw_ipi_send_cpumask { + struct trace_entry ent; + u32 __data_loc_cpumask; + void *callsite; + void *callback; + char __data[0]; +}; + +struct trace_event_raw_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_irq_noise { + struct trace_entry ent; + u64 start; + u64 duration; + u32 __data_loc_desc; + int vector; + char __data[0]; +}; + +struct trace_event_raw_itimer_expire { + struct trace_entry ent; + int which; + pid_t pid; + long long unsigned int now; + char __data[0]; +}; + +struct trace_event_raw_itimer_state { + struct trace_entry ent; + int which; + long long unsigned int expires; + long int value_sec; + long int value_nsec; + long int interval_sec; + long int interval_nsec; + char __data[0]; +}; + +struct trace_event_raw_jbd2_checkpoint { + struct trace_entry ent; + dev_t dev; + int result; + char __data[0]; +}; + +struct trace_event_raw_jbd2_checkpoint_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + long unsigned int chp_time; + __u32 forced_to_close; + __u32 written; + __u32 dropped; + 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_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_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_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_journal_shrink { + struct trace_entry ent; + dev_t dev; + long unsigned int nr_to_scan; + long unsigned int count; + char __data[0]; +}; + +struct trace_event_raw_jbd2_lock_buffer_stall { + struct trace_entry ent; + dev_t dev; + long unsigned int stall_ms; + char __data[0]; +}; + +struct trace_event_raw_jbd2_run_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + long unsigned int wait; + long unsigned int request_delay; + long unsigned int running; + long unsigned int locked; + long unsigned int flushing; + long unsigned int logging; + __u32 handle_count; + __u32 blocks; + __u32 blocks_logged; + 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; + long unsigned int nr_freed; + tid_t next_tid; + char __data[0]; +}; + +struct trace_event_raw_jbd2_shrink_scan_exit { + struct trace_entry ent; + dev_t dev; + long unsigned int nr_to_scan; + long unsigned int nr_shrunk; + long unsigned int count; + 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_update_log_tail { + struct trace_entry ent; + dev_t dev; + tid_t tail_sequence; + tid_t first_tid; + long unsigned int block_nr; + long unsigned int 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_kcompactd_wake_template { + struct trace_entry ent; + int nid; + int order; + enum zone_type highest_zoneidx; + char __data[0]; +}; + +struct trace_event_raw_kfree { + struct trace_entry ent; + long unsigned int call_site; + const void *ptr; + char __data[0]; +}; + +struct trace_event_raw_kfree_skb { + struct trace_entry ent; + void *skbaddr; + void *location; + void *rx_sk; + short unsigned int protocol; + enum skb_drop_reason reason; + char __data[0]; +}; + +struct trace_event_raw_kmalloc { + struct trace_entry ent; + long unsigned int call_site; + const void *ptr; + size_t bytes_req; + size_t bytes_alloc; + long unsigned int gfp_flags; + int node; + char __data[0]; +}; + +struct trace_event_raw_kmem_cache_alloc { + struct trace_entry ent; + long unsigned int call_site; + const void *ptr; + size_t bytes_req; + size_t bytes_alloc; + long unsigned int gfp_flags; + int node; + bool accounted; + char __data[0]; +}; + +struct trace_event_raw_kmem_cache_free { + struct trace_entry ent; + long unsigned int call_site; + const void *ptr; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_ksm_advisor { + struct trace_entry ent; + s64 scan_time; + long unsigned int pages_to_scan; + unsigned int cpu_percent; + char __data[0]; +}; + +struct trace_event_raw_ksm_enter_exit_template { + struct trace_entry ent; + void *mm; + char __data[0]; +}; + +struct trace_event_raw_ksm_merge_one_page { + struct trace_entry ent; + long unsigned int pfn; + void *rmap_item; + void *mm; + int err; + char __data[0]; +}; + +struct trace_event_raw_ksm_merge_with_ksm_page { + struct trace_entry ent; + void *ksm_page; + long unsigned int pfn; + void *rmap_item; + void *mm; + int err; + char __data[0]; +}; + +struct trace_event_raw_ksm_remove_ksm_page { + struct trace_entry ent; + long unsigned int pfn; + char __data[0]; +}; + +struct trace_event_raw_ksm_remove_rmap_item { + struct trace_entry ent; + long unsigned int pfn; + void *rmap_item; + void *mm; + char __data[0]; +}; + +struct trace_event_raw_ksm_scan_template { + struct trace_entry ent; + int seq; + u32 rmap_entries; + char __data[0]; +}; + +struct trace_event_raw_kvm_access_fault { + struct trace_entry ent; + long unsigned int ipa; + char __data[0]; +}; + +struct trace_event_raw_kvm_ack_irq { + struct trace_entry ent; + unsigned int irqchip; + unsigned int pin; + char __data[0]; +}; + +struct trace_event_raw_kvm_age_hva { + struct trace_entry ent; + long unsigned int start; + long unsigned int end; + char __data[0]; +}; + +struct trace_event_raw_kvm_arm_set_dreg32 { + struct trace_entry ent; + const char *name; + __u64 value; + char __data[0]; +}; + +struct trace_event_raw_kvm_dirty_ring_exit { + struct trace_entry ent; + int vcpu_id; + char __data[0]; +}; + +struct trace_event_raw_kvm_dirty_ring_push { + struct trace_entry ent; + int index; + u32 dirty_index; + u32 reset_index; + u32 slot; + u64 offset; + char __data[0]; +}; + +struct trace_event_raw_kvm_dirty_ring_reset { + struct trace_entry ent; + int index; + u32 dirty_index; + u32 reset_index; + char __data[0]; +}; + +struct trace_event_raw_kvm_entry { + struct trace_entry ent; + long unsigned int vcpu_pc; + char __data[0]; +}; + +struct trace_event_raw_kvm_exit { + struct trace_entry ent; + int ret; + unsigned int esr_ec; + long unsigned int vcpu_pc; + char __data[0]; +}; + +struct trace_event_raw_kvm_forward_sysreg_trap { + struct trace_entry ent; + u64 pc; + u32 sysreg; + bool is_read; + char __data[0]; +}; + +struct trace_event_raw_kvm_fpu { + struct trace_entry ent; + u32 load; + char __data[0]; +}; + +struct trace_event_raw_kvm_get_timer_map { + struct trace_entry ent; + long unsigned int vcpu_id; + int direct_vtimer; + int direct_ptimer; + int emul_vtimer; + int emul_ptimer; + char __data[0]; +}; + +struct trace_event_raw_kvm_guest_fault { + struct trace_entry ent; + long unsigned int vcpu_pc; + long unsigned int hsr; + long unsigned int hxfar; + long long unsigned int ipa; + char __data[0]; +}; + +struct trace_event_raw_kvm_halt_poll_ns { + struct trace_entry ent; + bool grow; + unsigned int vcpu_id; + unsigned int new; + unsigned int old; + char __data[0]; +}; + +struct trace_event_raw_kvm_handle_sys_reg { + struct trace_entry ent; + long unsigned int hsr; + char __data[0]; +}; + +struct trace_event_raw_kvm_hvc_arm64 { + struct trace_entry ent; + long unsigned int vcpu_pc; + long unsigned int r0; + long unsigned int imm; + char __data[0]; +}; + +struct trace_event_raw_kvm_inject_nested_exception { + struct trace_entry ent; + struct kvm_vcpu *vcpu; + long unsigned int esr_el2; + int type; + long unsigned int spsr_el2; + long unsigned int pc; + long unsigned int source_mode; + long unsigned int hcr_el2; + char __data[0]; +}; + +struct trace_event_raw_kvm_iocsr { + struct trace_entry ent; + u32 type; + u32 len; + u64 gpa; + u64 val; + char __data[0]; +}; + +struct trace_event_raw_kvm_irq_line { + struct trace_entry ent; + unsigned int type; + int vcpu_idx; + int irq_num; + int level; + char __data[0]; +}; + +struct trace_event_raw_kvm_mmio { + struct trace_entry ent; + u32 type; + u32 len; + u64 gpa; + u64 val; + char __data[0]; +}; + +struct trace_event_raw_kvm_mmio_emulate { + struct trace_entry ent; + long unsigned int vcpu_pc; + long unsigned int instr; + long unsigned int cpsr; + char __data[0]; +}; + +struct trace_event_raw_kvm_mmio_nisv { + struct trace_entry ent; + long unsigned int vcpu_pc; + long unsigned int esr; + long unsigned int far; + long unsigned int ipa; + char __data[0]; +}; + +struct trace_event_raw_kvm_nested_eret { + struct trace_entry ent; + struct kvm_vcpu *vcpu; + long unsigned int elr_el2; + long unsigned int spsr_el2; + long unsigned int target_mode; + long unsigned int hcr_el2; + char __data[0]; +}; + +struct trace_event_raw_kvm_set_guest_debug { + struct trace_entry ent; + struct kvm_vcpu *vcpu; + __u32 guest_debug; + char __data[0]; +}; + +struct trace_event_raw_kvm_set_irq { + struct trace_entry ent; + unsigned int gsi; + int level; + int irq_source_id; + char __data[0]; +}; + +struct trace_event_raw_kvm_set_way_flush { + struct trace_entry ent; + long unsigned int vcpu_pc; + bool cache; + char __data[0]; +}; + +struct trace_event_raw_kvm_sys_access { + struct trace_entry ent; + long unsigned int vcpu_pc; + bool is_write; + const char *name; + u8 Op0; + u8 Op1; + u8 CRn; + u8 CRm; + u8 Op2; + char __data[0]; +}; + +struct trace_event_raw_kvm_test_age_hva { + struct trace_entry ent; + long unsigned int hva; + char __data[0]; +}; + +struct trace_event_raw_kvm_timer_emulate { + struct trace_entry ent; + int timer_idx; + bool should_fire; + char __data[0]; +}; + +struct trace_event_raw_kvm_timer_hrtimer_expire { + struct trace_entry ent; + int timer_idx; + char __data[0]; +}; + +struct trace_event_raw_kvm_timer_restore_state { + struct trace_entry ent; + long unsigned int ctl; + long long unsigned int cval; + int timer_idx; + char __data[0]; +}; + +struct trace_event_raw_kvm_timer_save_state { + struct trace_entry ent; + long unsigned int ctl; + long long unsigned int cval; + int timer_idx; + char __data[0]; +}; + +struct trace_event_raw_kvm_timer_update_irq { + struct trace_entry ent; + long unsigned int vcpu_id; + __u32 irq; + int level; + char __data[0]; +}; + +struct trace_event_raw_kvm_toggle_cache { + struct trace_entry ent; + long unsigned int vcpu_pc; + bool was; + bool now; + char __data[0]; +}; + +struct trace_event_raw_kvm_unmap_hva_range { + struct trace_entry ent; + long unsigned int start; + long unsigned int end; + char __data[0]; +}; + +struct trace_event_raw_kvm_userspace_exit { + struct trace_entry ent; + __u32 reason; + int errno; + char __data[0]; +}; + +struct trace_event_raw_kvm_vcpu_wakeup { + struct trace_entry ent; + __u64 ns; + bool waited; + bool valid; + char __data[0]; +}; + +struct trace_event_raw_kvm_wfx_arm64 { + struct trace_entry ent; + long unsigned int vcpu_pc; + bool is_wfe; + 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 trace_event_raw_locks_get_lock_context { + struct trace_entry ent; + long unsigned int i_ino; + dev_t s_dev; + unsigned char type; + struct file_lock_context *ctx; + char __data[0]; +}; + +struct trace_event_raw_ma_op { + struct trace_entry ent; + const char *fn; + long unsigned int min; + long unsigned int max; + long unsigned int index; + long unsigned int last; + void *node; + char __data[0]; +}; + +struct trace_event_raw_ma_read { + struct trace_entry ent; + const char *fn; + long unsigned int min; + long unsigned int max; + long unsigned int index; + long unsigned int last; + void *node; + char __data[0]; +}; + +struct trace_event_raw_ma_write { + struct trace_entry ent; + const char *fn; + long unsigned int min; + long unsigned int max; + long unsigned int index; + long unsigned int last; + long unsigned int piv; + void *val; + void *node; + 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_mark_victim { + struct trace_entry ent; + int pid; + u32 __data_loc_comm; + long unsigned int total_vm; + long unsigned int anon_rss; + long unsigned int file_rss; + long unsigned int shmem_rss; + uid_t uid; + long unsigned int pgtables; + short int oom_score_adj; + char __data[0]; +}; + +struct trace_event_raw_mc_event { + struct trace_entry ent; + unsigned int error_type; + u32 __data_loc_msg; + u32 __data_loc_label; + u16 error_count; + u8 mc_index; + s8 top_layer; + s8 middle_layer; + s8 lower_layer; + long int address; + u8 grain_bits; + long int syndrome; + u32 __data_loc_driver_detail; + char __data[0]; +}; + +struct trace_event_raw_mctp_key_acquire { + struct trace_entry ent; + __u8 paddr; + __u8 laddr; + __u8 tag; + char __data[0]; +}; + +struct trace_event_raw_mctp_key_release { + struct trace_entry ent; + __u8 paddr; + __u8 laddr; + __u8 tag; + int reason; + char __data[0]; +}; + +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 xdp_mem_allocator; + +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_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_return_failed { + struct trace_entry ent; + const struct page *page; + u32 mem_id; + u32 mem_type; + char __data[0]; +}; + +struct trace_event_raw_memcg_flush_stats { + struct trace_entry ent; + u64 id; + s64 stats_updates; + bool force; + bool needs_flush; + char __data[0]; +}; + +struct trace_event_raw_memcg_rstat_events { + struct trace_entry ent; + u64 id; + int item; + long unsigned int val; + char __data[0]; +}; + +struct trace_event_raw_memcg_rstat_stats { + struct trace_entry ent; + u64 id; + int item; + int val; + char __data[0]; +}; + +struct trace_event_raw_memory_failure_event { + struct trace_entry ent; + long unsigned int pfn; + int type; + int result; + char __data[0]; +}; + +struct trace_event_raw_migration_pmd { + struct trace_entry ent; + long unsigned int addr; + long unsigned int pmd; + char __data[0]; +}; + +struct trace_event_raw_migration_pte { + struct trace_entry ent; + long unsigned int addr; + long unsigned int pte; + int order; + char __data[0]; +}; + +struct trace_event_raw_mm_alloc_contig_migrate_range_info { + struct trace_entry ent; + long unsigned int start; + long unsigned int end; + long unsigned int nr_migrated; + long unsigned int nr_reclaimed; + long unsigned int nr_mapped; + int migratetype; + char __data[0]; +}; + +struct trace_event_raw_mm_collapse_huge_page { + struct trace_entry ent; + struct mm_struct *mm; + int isolated; + int status; + char __data[0]; +}; + +struct trace_event_raw_mm_collapse_huge_page_isolate { + struct trace_entry ent; + long unsigned int pfn; + int none_or_zero; + int referenced; + bool writable; + int status; + char __data[0]; +}; + +struct trace_event_raw_mm_collapse_huge_page_swapin { + struct trace_entry ent; + struct mm_struct *mm; + int swapped_in; + int referenced; + int ret; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_begin { + struct trace_entry ent; + long unsigned int zone_start; + long unsigned int migrate_pfn; + long unsigned int free_pfn; + long unsigned int zone_end; + bool sync; + 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_end { + struct trace_entry ent; + long unsigned int zone_start; + long unsigned int migrate_pfn; + long unsigned int free_pfn; + long unsigned int zone_end; + bool sync; + int status; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_isolate_template { + struct trace_entry ent; + long unsigned int start_pfn; + long unsigned int end_pfn; + long unsigned int nr_scanned; + long unsigned int nr_taken; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_kcompactd_sleep { + struct trace_entry ent; + int nid; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_migratepages { + struct trace_entry ent; + long unsigned int nr_migrated; + long unsigned int nr_failed; + 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_try_to_compact_pages { + struct trace_entry ent; + int order; + long unsigned int gfp_mask; + int prio; + char __data[0]; +}; + +struct trace_event_raw_mm_filemap_fault { + struct trace_entry ent; + long unsigned int i_ino; + dev_t s_dev; + long unsigned int index; + char __data[0]; +}; + +struct trace_event_raw_mm_filemap_op_page_cache { + struct trace_entry ent; + long unsigned int pfn; + long unsigned int i_ino; + long unsigned int index; + dev_t s_dev; + unsigned char order; + char __data[0]; +}; + +struct trace_event_raw_mm_filemap_op_page_cache_range { + struct trace_entry ent; + long unsigned int i_ino; + dev_t s_dev; + long unsigned int index; + long unsigned int last_index; + char __data[0]; +}; + +struct trace_event_raw_mm_khugepaged_collapse_file { + struct trace_entry ent; + struct mm_struct *mm; + long unsigned int hpfn; + long unsigned int index; + long unsigned int addr; + bool is_shmem; + u32 __data_loc_filename; + int nr; + int result; + char __data[0]; +}; + +struct trace_event_raw_mm_khugepaged_scan_file { + struct trace_entry ent; + struct mm_struct *mm; + long unsigned int pfn; + u32 __data_loc_filename; + int present; + int swap; + int result; + char __data[0]; +}; + +struct trace_event_raw_mm_khugepaged_scan_pmd { + struct trace_entry ent; + struct mm_struct *mm; + long unsigned int pfn; + bool writable; + int referenced; + int none_or_zero; + int status; + int unmapped; + char __data[0]; +}; + +struct trace_event_raw_mm_lru_activate { + struct trace_entry ent; + struct folio *folio; + long unsigned int pfn; + char __data[0]; +}; + +struct trace_event_raw_mm_lru_insertion { + struct trace_entry ent; + struct folio *folio; + long unsigned int pfn; + enum lru_list lru; + long unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_mm_migrate_pages { + struct trace_entry ent; + long unsigned int succeeded; + long unsigned int failed; + long unsigned int thp_succeeded; + long unsigned int thp_failed; + long unsigned int thp_split; + long unsigned int large_folio_split; + enum migrate_mode mode; + int reason; + char __data[0]; +}; + +struct trace_event_raw_mm_migrate_pages_start { + struct trace_entry ent; + enum migrate_mode mode; + int reason; + char __data[0]; +}; + +struct trace_event_raw_mm_page { + struct trace_entry ent; + long unsigned int pfn; + unsigned int order; + int migratetype; + int percpu_refill; + char __data[0]; +}; + +struct trace_event_raw_mm_page_alloc { + struct trace_entry ent; + long unsigned int pfn; + unsigned int order; + long unsigned int gfp_flags; + int migratetype; + char __data[0]; +}; + +struct trace_event_raw_mm_page_alloc_extfrag { + struct trace_entry ent; + long unsigned int pfn; + int alloc_order; + int fallback_order; + int alloc_migratetype; + int fallback_migratetype; + int change_ownership; + char __data[0]; +}; + +struct trace_event_raw_mm_page_free { + struct trace_entry ent; + long unsigned int pfn; + unsigned int order; + char __data[0]; +}; + +struct trace_event_raw_mm_page_free_batched { + struct trace_entry ent; + long unsigned int pfn; + char __data[0]; +}; + +struct trace_event_raw_mm_page_pcpu_drain { + struct trace_entry ent; + long unsigned int pfn; + unsigned int order; + int migratetype; + char __data[0]; +}; + +struct trace_event_raw_mm_shrink_slab_end { + struct trace_entry ent; + struct shrinker *shr; + int nid; + void *shrink; + long int unused_scan; + long int new_scan; + int retval; + long int total_scan; + char __data[0]; +}; + +struct trace_event_raw_mm_shrink_slab_start { + struct trace_entry ent; + struct shrinker *shr; + void *shrink; + int nid; + long int nr_objects_to_shrink; + long unsigned int gfp_flags; + long unsigned int cache_items; + long long unsigned int delta; + long unsigned int total_scan; + int priority; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { + struct trace_entry ent; + int order; + long unsigned int gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_direct_reclaim_end_template { + struct trace_entry ent; + long unsigned int nr_reclaimed; + char __data[0]; +}; + +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_lru_isolate { + struct trace_entry ent; + int highest_zoneidx; + int order; + long unsigned int nr_requested; + long unsigned int nr_scanned; + long unsigned int nr_skipped; + long unsigned int nr_taken; + int lru; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_lru_shrink_active { + struct trace_entry ent; + int nid; + long unsigned int nr_taken; + long unsigned int nr_active; + long unsigned int nr_deactivated; + long unsigned int nr_referenced; + int priority; + int reclaim_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_lru_shrink_inactive { + struct trace_entry ent; + int nid; + long unsigned int nr_scanned; + long unsigned int nr_reclaimed; + long unsigned int nr_dirty; + long unsigned int nr_writeback; + long unsigned int nr_congested; + long unsigned int nr_immediate; + unsigned int nr_activate0; + unsigned int nr_activate1; + long unsigned int nr_ref_keep; + long unsigned int nr_unmap_fail; + 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; + long unsigned int gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_reclaim_pages { + struct trace_entry ent; + int nid; + long unsigned int nr_scanned; + long unsigned int nr_reclaimed; + long unsigned int nr_dirty; + long unsigned int nr_writeback; + long unsigned int nr_congested; + long unsigned int nr_immediate; + unsigned int nr_activate0; + unsigned int nr_activate1; + long unsigned int nr_ref_keep; + long unsigned int nr_unmap_fail; + 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 trace_event_raw_mm_vmscan_wakeup_kswapd { + struct trace_entry ent; + int nid; + int zid; + int order; + long unsigned int gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_write_folio { + struct trace_entry ent; + long unsigned int pfn; + int reclaim_flags; + char __data[0]; +}; + +struct trace_event_raw_mmap_lock { + struct trace_entry ent; + struct mm_struct *mm; + u64 memcg_id; + bool write; + char __data[0]; +}; + +struct trace_event_raw_mmap_lock_acquire_returned { + struct trace_entry ent; + struct mm_struct *mm; + u64 memcg_id; + bool write; + bool success; + char __data[0]; +}; + +struct trace_event_raw_mmc_request_done { + struct trace_entry ent; + u32 cmd_opcode; + int cmd_err; + u32 cmd_resp[4]; + unsigned int cmd_retries; + u32 stop_opcode; + int stop_err; + u32 stop_resp[4]; + unsigned int stop_retries; + u32 sbc_opcode; + int sbc_err; + u32 sbc_resp[4]; + unsigned int sbc_retries; + unsigned int bytes_xfered; + int data_err; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_mmc_request_start { + struct trace_entry ent; + u32 cmd_opcode; + u32 cmd_arg; + unsigned int cmd_flags; + unsigned int cmd_retries; + u32 stop_opcode; + u32 stop_arg; + unsigned int stop_flags; + unsigned int stop_retries; + u32 sbc_opcode; + u32 sbc_arg; + unsigned int sbc_flags; + unsigned int sbc_retries; + unsigned int blocks; + unsigned int blk_addr; + unsigned int blksz; + unsigned int data_flags; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_module_free { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; + +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_refcnt { + struct trace_entry ent; + long unsigned int ip; + int refcnt; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_module_request { + struct trace_entry ent; + long unsigned int ip; + bool wait; + u32 __data_loc_name; + 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_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_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_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]; + long unsigned int confirmed; + long unsigned int updated; + long unsigned int used; + u32 err; + 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]; + long unsigned int confirmed; + long unsigned int updated; + long unsigned int used; + u8 new_lladdr[32]; + u8 new_state; + u32 update_flags; + u32 pid; + 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_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_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_template { + struct trace_entry ent; + void *skbaddr; + unsigned int len; + u32 __data_loc_name; + 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_netlink_extack { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_raw_nmi_noise { + struct trace_entry ent; + u64 start; + u64 duration; + char __data[0]; +}; + +struct trace_event_raw_non_standard_event { + struct trace_entry ent; + char sec_type[16]; + char fru_id[16]; + u32 __data_loc_fru_text; + u8 sev; + u32 len; + u32 __data_loc_buf; + char __data[0]; +}; + +struct trace_event_raw_notifier_info { + struct trace_entry ent; + void *cb; + char __data[0]; +}; + +struct trace_event_raw_oom_score_adj_update { + struct trace_entry ent; + pid_t pid; + char comm[16]; + short int oom_score_adj; + 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_hold { + struct trace_entry ent; + const struct page_pool *pool; + long unsigned int netmem; + u32 hold; + long unsigned int pfn; + char __data[0]; +}; + +struct trace_event_raw_page_pool_state_release { + struct trace_entry ent; + const struct page_pool *pool; + long unsigned int netmem; + u32 release; + long unsigned int 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_percpu_alloc_percpu { + struct trace_entry ent; + long unsigned int call_site; + bool reserved; + bool is_atomic; + size_t size; + size_t align; + void *base_addr; + int off; + void *ptr; + size_t bytes_alloc; + long unsigned int gfp_flags; + 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 trace_event_raw_percpu_free_percpu { + struct trace_entry ent; + void *base_addr; + int off; + void *ptr; + 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_power_domain { + struct trace_entry ent; + u32 __data_loc_name; + u64 state; + u64 cpu_id; + 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_purge_vmap_area_lazy { + struct trace_entry ent; + long unsigned int start; + long unsigned int end; + unsigned int npurged; + char __data[0]; +}; + +struct trace_event_raw_pwm { + struct trace_entry ent; + unsigned int chipid; + unsigned int hwpwm; + u64 period; + u64 duty_cycle; + enum pwm_polarity polarity; + bool enabled; + int err; + char __data[0]; +}; + +struct trace_event_raw_pwm_read_waveform { + struct trace_entry ent; + unsigned int chipid; + unsigned int hwpwm; + void *wfhw; + int err; + char __data[0]; +}; + +struct trace_event_raw_pwm_round_waveform_fromhw { + struct trace_entry ent; + unsigned int chipid; + unsigned int hwpwm; + const void *wfhw; + u64 wf_period_length_ns; + u64 wf_duty_length_ns; + u64 wf_duty_offset_ns; + int err; + char __data[0]; +}; + +struct trace_event_raw_pwm_round_waveform_tohw { + struct trace_entry ent; + unsigned int chipid; + unsigned int hwpwm; + u64 wf_period_length_ns; + u64 wf_duty_length_ns; + u64 wf_duty_offset_ns; + void *wfhw; + int err; + char __data[0]; +}; + +struct trace_event_raw_pwm_write_waveform { + struct trace_entry ent; + unsigned int chipid; + unsigned int hwpwm; + const void *wfhw; + int err; + 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_qdisc_dequeue { + struct trace_entry ent; + struct Qdisc *qdisc; + const struct netdev_queue *txq; + int packets; + void *skbaddr; + int ifindex; + u32 handle; + u32 parent; + long unsigned int txq_state; + 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_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_rcu_stall_warning { + struct trace_entry ent; + const char *rcuname; + const char *msg; + char __data[0]; +}; + +struct trace_event_raw_rcu_utilization { + struct trace_entry ent; + const char *s; + char __data[0]; +}; + +struct trace_event_raw_reclaim_retry_zone { + struct trace_entry ent; + int node; + int zone_idx; + int order; + long unsigned int reclaimable; + long unsigned int available; + long unsigned int min_wmark; + int no_progress_loops; + bool wmark_check; + 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 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_async { + struct trace_entry ent; + u32 __data_loc_name; + 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_regmap_bool { + struct trace_entry ent; + u32 __data_loc_name; + int flag; + 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_reg { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int reg; + unsigned int val; + char __data[0]; +}; + +struct trace_event_raw_regulator_basic { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_regulator_range { + struct trace_entry ent; + u32 __data_loc_name; + int min; + int max; + char __data[0]; +}; + +struct trace_event_raw_regulator_value { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int val; + char __data[0]; +}; + +struct trace_event_raw_rpm_internal { + struct trace_entry ent; + u32 __data_loc_name; + int flags; + int usage_count; + int disable_depth; + int runtime_auto; + int request_pending; + int irq_safe; + int child_count; + char __data[0]; +}; + +struct trace_event_raw_rpm_return_int { + struct trace_entry ent; + u32 __data_loc_name; + long unsigned int ip; + int ret; + char __data[0]; +}; + +struct trace_event_raw_rpm_status { + struct trace_entry ent; + u32 __data_loc_name; + int status; + char __data[0]; +}; + +struct trace_event_raw_rpmh_send_msg { + struct trace_entry ent; + u32 __data_loc_name; + int m; + u32 state; + int n; + u32 hdr; + u32 addr; + u32 data; + bool wait; + char __data[0]; +}; + +struct trace_event_raw_rpmh_tx_done { + struct trace_entry ent; + u32 __data_loc_name; + int m; + u32 addr; + u32 data; + char __data[0]; +}; + +struct trace_event_raw_rseq_ip_fixup { + struct trace_entry ent; + long unsigned int regs_ip; + long unsigned int start_ip; + long unsigned int post_commit_offset; + long unsigned int abort_ip; + char __data[0]; +}; + +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_rss_stat { + struct trace_entry ent; + unsigned int mm_id; + unsigned int curr; + int member; + long int size; + 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_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_offset_class { + struct trace_entry ent; + long int offset; + int err; + char __data[0]; +}; + +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_timer_class { + struct trace_entry ent; + struct rtc_timer *timer; + ktime_t expires; + ktime_t period; + char __data[0]; +}; + +struct trace_event_raw_rwmmio_post_read { + struct trace_entry ent; + long unsigned int caller; + long unsigned int caller0; + long unsigned int addr; + u64 val; + u8 width; + char __data[0]; +}; + +struct trace_event_raw_rwmmio_read { + struct trace_entry ent; + long unsigned int caller; + long unsigned int caller0; + long unsigned int addr; + u8 width; + char __data[0]; +}; + +struct trace_event_raw_rwmmio_rw_template { + struct trace_entry ent; + long unsigned int caller; + long unsigned int caller0; + long unsigned int addr; + u64 val; + u8 width; + char __data[0]; +}; + +struct trace_event_raw_sample_threshold { + struct trace_entry ent; + u64 start; + u64 duration; + u64 interference; + char __data[0]; +}; + +struct trace_event_raw_sched_ext_dump { + struct trace_entry ent; + u32 __data_loc_line; + char __data[0]; +}; + +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_execute_end { + struct trace_entry ent; + void *work; + void *function; + 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_queue_work { + struct trace_entry ent; + void *work; + void *function; + void *worker; + 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_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_pi_setprio { + struct trace_entry ent; + char comm[16]; + pid_t pid; + int oldprio; + int newprio; + char __data[0]; +}; + +struct trace_event_raw_sched_prepare_exec { + struct trace_entry ent; + u32 __data_loc_interp; + u32 __data_loc_filename; + pid_t pid; + u32 __data_loc_comm; + 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_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_hang { + struct trace_entry ent; + char comm[16]; + pid_t pid; + 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_skip_vma_numa { + struct trace_entry ent; + long unsigned int numa_scan_offset; + long unsigned int vm_start; + long unsigned int vm_end; + enum numa_vmaskip_reason reason; + char __data[0]; +}; + +struct trace_event_raw_sched_stat_runtime { + struct trace_entry ent; + char comm[16]; + pid_t pid; + u64 runtime; + char __data[0]; +}; + +struct trace_event_raw_sched_stat_template { + struct trace_entry ent; + char comm[16]; + pid_t pid; + u64 delay; + 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 int prev_state; + char next_comm[16]; + pid_t next_pid; + int next_prio; + char __data[0]; +}; + +struct trace_event_raw_sched_wake_idle_without_ipi { + struct trace_entry ent; + int cpu; + char __data[0]; +}; + +struct trace_event_raw_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_scmi_fc_call { + struct trace_entry ent; + u8 protocol_id; + u8 msg_id; + u32 res_id; + u32 val1; + u32 val2; + char __data[0]; +}; + +struct trace_event_raw_scmi_msg_dump { + struct trace_entry ent; + int id; + u8 channel_id; + u8 protocol_id; + u8 msg_id; + char tag[6]; + u16 seq; + int status; + size_t len; + u32 __data_loc_cmd; + char __data[0]; +}; + +struct trace_event_raw_scmi_rx_done { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + u8 msg_type; + char __data[0]; +}; + +struct trace_event_raw_scmi_xfer_begin { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + bool poll; + char __data[0]; +}; + +struct trace_event_raw_scmi_xfer_end { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + int status; + char __data[0]; +}; + +struct trace_event_raw_scmi_xfer_response_wait { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + u32 timeout; + bool poll; + char __data[0]; +}; + +struct trace_event_raw_scsi_cmd_done_timeout_template { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + int result; + unsigned int opcode; + unsigned int cmd_len; + int driver_tag; + int scheduler_tag; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + u8 sense_key; + u8 asc; + u8 ascq; + char __data[0]; +}; + +struct trace_event_raw_scsi_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_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_eh_wakeup { + struct trace_entry ent; + unsigned int host_no; + char __data[0]; +}; + +struct trace_event_raw_scsi_prepare_zone_append { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + sector_t lba; + unsigned int wp_offset; + char __data[0]; +}; + +struct trace_event_raw_scsi_zone_wp_update { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + sector_t rq_sector; + unsigned int wp_offset; + unsigned int good_bytes; + char __data[0]; +}; + +struct trace_event_raw_selinux_audited { + struct trace_entry ent; + u32 requested; + u32 denied; + u32 audited; + int result; + u32 __data_loc_scontext; + u32 __data_loc_tcontext; + u32 __data_loc_tclass; + char __data[0]; +}; + +struct trace_event_raw_signal_deliver { + struct trace_entry ent; + int sig; + int errno; + int code; + long unsigned int sa_handler; + long unsigned int sa_flags; + char __data[0]; +}; + +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_sk_data_ready { + struct trace_entry ent; + const void *skaddr; + __u16 family; + __u16 protocol; + long unsigned int ip; + 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_skip_task_reaping { + struct trace_entry ent; + int pid; + 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 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_sock_exceed_buf_limit { + struct trace_entry ent; + char name[32]; + long int sysctl_mem[3]; + long int 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_sock_msg_length { + struct trace_entry ent; + void *sk; + __u16 family; + __u16 protocol; + int ret; + int flags; + 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_softirq { + struct trace_entry ent; + unsigned int vec; + char __data[0]; +}; + +struct trace_event_raw_softirq_noise { + struct trace_entry ent; + u64 start; + u64 duration; + int vector; + char __data[0]; +}; + +struct trace_event_raw_spi_controller { + struct trace_entry ent; + int bus_num; + char __data[0]; +}; + +struct trace_event_raw_spi_message { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_message *msg; + char __data[0]; +}; + +struct trace_event_raw_spi_message_done { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_message *msg; + unsigned int frame; + unsigned int actual; + char __data[0]; +}; + +struct trace_event_raw_spi_set_cs { + struct trace_entry ent; + int bus_num; + int chip_select; + long unsigned int mode; + bool enable; + char __data[0]; +}; + +struct trace_event_raw_spi_setup { + struct trace_entry ent; + int bus_num; + int chip_select; + long unsigned int mode; + unsigned int bits_per_word; + unsigned int max_speed_hz; + int status; + char __data[0]; +}; + +struct trace_event_raw_spi_transfer { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_transfer *xfer; + int len; + u32 __data_loc_rx_buf; + u32 __data_loc_tx_buf; + char __data[0]; +}; + +struct trace_event_raw_start_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; +}; + +struct trace_event_raw_subflow_check_data_avail { + struct trace_entry ent; + u8 status; + const void *skb; + 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_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_raw_sync_timeline { + struct trace_entry ent; + u32 __data_loc_name; + u32 value; + char __data[0]; +}; + +struct trace_event_raw_sys_enter { + struct trace_entry ent; + long int id; + long unsigned int args[6]; + char __data[0]; +}; + +struct trace_event_raw_sys_exit { + struct trace_entry ent; + long int id; + long int ret; + char __data[0]; +}; + +struct trace_event_raw_task_newtask { + struct trace_entry ent; + pid_t pid; + char comm[16]; + long unsigned int clone_flags; + short int oom_score_adj; + char __data[0]; +}; + +struct trace_event_raw_task_prctl_unknown { + struct trace_entry ent; + int option; + long unsigned int arg2; + long unsigned int arg3; + long unsigned int arg4; + long unsigned int arg5; + char __data[0]; +}; + +struct trace_event_raw_task_rename { + struct trace_entry ent; + char oldcomm[16]; + char newcomm[16]; + short int oom_score_adj; + char __data[0]; +}; + +struct trace_event_raw_tasklet { + struct trace_entry ent; + void *tasklet; + void *func; + char __data[0]; +}; + +struct trace_event_raw_tcp_ao_event { + struct trace_entry ent; + __u64 net_cookie; + const void *skbaddr; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + int l3index; + __u16 sport; + __u16 dport; + __u16 family; + bool fin; + bool syn; + bool rst; + bool psh; + bool ack; + __u8 keyid; + __u8 rnext; + __u8 maclen; + char __data[0]; +}; + +struct trace_event_raw_tcp_ao_event_sk { + struct trace_entry ent; + __u64 net_cookie; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + __u16 sport; + __u16 dport; + __u16 family; + __u8 keyid; + __u8 rnext; + char __data[0]; +}; + +struct trace_event_raw_tcp_ao_event_sne { + struct trace_entry ent; + __u64 net_cookie; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + __u16 sport; + __u16 dport; + __u16 family; + __u32 new_sne; + char __data[0]; +}; + +struct trace_event_raw_tcp_cong_state_set { + struct trace_entry ent; + const void *skaddr; + __u16 sport; + __u16 dport; + __u16 family; + __u8 saddr[4]; + __u8 daddr[4]; + __u8 saddr_v6[16]; + __u8 daddr_v6[16]; + __u8 cong_state; + char __data[0]; +}; + +struct trace_event_raw_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_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_skb { + struct trace_entry ent; + const void *skbaddr; + __u8 saddr[28]; + __u8 daddr[28]; + char __data[0]; +}; + +struct trace_event_raw_tcp_hash_event { + struct trace_entry ent; + __u64 net_cookie; + const void *skbaddr; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + int l3index; + __u16 sport; + __u16 dport; + __u16 family; + bool fin; + bool syn; + bool rst; + bool psh; + bool ack; + char __data[0]; +}; + +struct trace_event_raw_tcp_probe { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + __u16 sport; + __u16 dport; + __u16 family; + __u32 mark; + __u16 data_len; + __u32 snd_nxt; + __u32 snd_una; + __u32 snd_cwnd; + __u32 ssthresh; + __u32 snd_wnd; + __u32 srtt; + __u32 rcv_wnd; + __u64 sock_cookie; + const void *skbaddr; + const void *skaddr; + char __data[0]; +}; + +struct trace_event_raw_tcp_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_send_reset { + struct trace_entry ent; + const void *skbaddr; + const void *skaddr; + int state; + enum sk_rst_reason reason; + __u8 saddr[28]; + __u8 daddr[28]; + char __data[0]; +}; + +struct trace_event_raw_tegra_dma_complete_cb { + struct trace_entry ent; + u32 __data_loc_chan; + int count; + void *ptr; + char __data[0]; +}; + +struct trace_event_raw_tegra_dma_isr { + struct trace_entry ent; + u32 __data_loc_chan; + int irq; + char __data[0]; +}; + +struct trace_event_raw_tegra_dma_tx_status { + struct trace_entry ent; + u32 __data_loc_chan; + dma_cookie_t cookie; + __u32 residue; + char __data[0]; +}; + +struct trace_event_raw_test_pages_isolated { + struct trace_entry ent; + long unsigned int start_pfn; + long unsigned int end_pfn; + long unsigned int fin_pfn; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_actor { + struct trace_entry ent; + int tz_id; + int actor_id; + u32 req_power; + u32 granted_power; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_allocator { + struct trace_entry ent; + int tz_id; + u32 total_req_power; + u32 total_granted_power; + size_t num_actors; + u32 power_range; + u32 max_allocatable_power; + int current_temp; + s32 delta_temp; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_allocator_pid { + struct trace_entry ent; + int tz_id; + s32 err; + s32 err_integral; + s64 p; + s64 i; + s64 d; + s32 output; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_cpu_get_power_simple { + struct trace_entry ent; + int cpu; + u32 power; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_cpu_limit { + struct trace_entry ent; + u32 __data_loc_cpumask; + unsigned int freq; + long unsigned int cdev_state; + u32 power; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_devfreq_get_power { + struct trace_entry ent; + u32 __data_loc_type; + long unsigned int freq; + u32 busy_time; + u32 total_time; + u32 power; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_devfreq_limit { + struct trace_entry ent; + u32 __data_loc_type; + unsigned int freq; + long unsigned int cdev_state; + u32 power; + char __data[0]; +}; + +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_thermal_zone_trip { + struct trace_entry ent; + u32 __data_loc_thermal_zone; + int id; + int trip; + enum thermal_trip_type trip_type; + char __data[0]; +}; + +struct trace_event_raw_thread_noise { + struct trace_entry ent; + char comm[16]; + u64 start; + u64 duration; + pid_t pid; + char __data[0]; +}; + +struct trace_event_raw_tick_stop { + struct trace_entry ent; + int success; + int dependency; + char __data[0]; +}; + +struct trace_event_raw_timer_base_idle { + struct trace_entry ent; + bool is_idle; + unsigned int cpu; + char __data[0]; +}; + +struct trace_event_raw_timer_class { + struct trace_entry ent; + void *timer; + char __data[0]; +}; + +struct trace_event_raw_timer_expire_entry { + struct trace_entry ent; + void *timer; + long unsigned int now; + void *function; + long unsigned int baseclk; + char __data[0]; +}; + +struct trace_event_raw_timer_start { + struct trace_entry ent; + void *timer; + void *function; + long unsigned int expires; + long unsigned int bucket_expiry; + long unsigned int now; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_tlb_flush { + struct trace_entry ent; + int reason; + long unsigned int pages; + char __data[0]; +}; + +struct trace_event_raw_tls_contenttype { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + long unsigned int type; + char __data[0]; +}; + +struct trace_event_raw_tmigr_connect_child_parent { + struct trace_entry ent; + void *child; + void *parent; + unsigned int lvl; + unsigned int numa_node; + unsigned int num_children; + u32 groupmask; + char __data[0]; +}; + +struct trace_event_raw_tmigr_connect_cpu_parent { + struct trace_entry ent; + void *parent; + unsigned int cpu; + unsigned int lvl; + unsigned int numa_node; + unsigned int num_children; + u32 groupmask; + char __data[0]; +}; + +struct trace_event_raw_tmigr_cpugroup { + struct trace_entry ent; + u64 wakeup; + void *parent; + unsigned int cpu; + char __data[0]; +}; + +struct trace_event_raw_tmigr_group_and_cpu { + struct trace_entry ent; + void *group; + void *parent; + unsigned int lvl; + unsigned int numa_node; + u32 childmask; + u8 active; + u8 migrator; + char __data[0]; +}; + +struct trace_event_raw_tmigr_group_set { + struct trace_entry ent; + void *group; + unsigned int lvl; + unsigned int numa_node; + char __data[0]; +}; + +struct trace_event_raw_tmigr_handle_remote { + struct trace_entry ent; + void *group; + unsigned int lvl; + char __data[0]; +}; + +struct trace_event_raw_tmigr_idle { + struct trace_entry ent; + u64 nextevt; + u64 wakeup; + void *parent; + unsigned int cpu; + char __data[0]; +}; + +struct trace_event_raw_tmigr_update_events { + struct trace_entry ent; + void *child; + void *group; + u64 nextevt; + u64 group_next_expiry; + u64 child_evt_expiry; + unsigned int group_lvl; + unsigned int child_evtcpu; + u8 child_active; + u8 group_active; + char __data[0]; +}; + +struct trace_event_raw_track_foreign_dirty { + struct trace_entry ent; + char name[32]; + u64 bdi_id; + ino_t ino; + unsigned int memcg_id; + ino_t cgroup_ino; + ino_t page_cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_udp_fail_queue_rcv_skb { + struct trace_entry ent; + int rc; + __u16 sport; + __u16 dport; + __u16 family; + __u8 saddr[28]; + __u8 daddr[28]; + 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_vgic_update_irq_pending { + struct trace_entry ent; + long unsigned int vcpu_id; + __u32 irq; + bool level; + char __data[0]; +}; + +struct trace_event_raw_vm_unmapped_area { + struct trace_entry ent; + long unsigned int addr; + long unsigned int total_vm; + long unsigned int flags; + long unsigned int length; + long unsigned int low_limit; + long unsigned int high_limit; + long unsigned int align_mask; + long unsigned int align_offset; + char __data[0]; +}; + +struct trace_event_raw_vma_mas_szero { + struct trace_entry ent; + struct maple_tree *mt; + long unsigned int start; + long unsigned int end; + char __data[0]; +}; + +struct trace_event_raw_vma_store { + struct trace_entry ent; + struct maple_tree *mt; + struct vm_area_struct *vma; + long unsigned int vm_start; + long unsigned int vm_end; + char __data[0]; +}; + +struct trace_event_raw_wake_reaper { + struct trace_entry ent; + int pid; + 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_watchdog_set_timeout { + struct trace_entry ent; + int id; + unsigned int timeout; + int err; + char __data[0]; +}; + +struct trace_event_raw_watchdog_template { + struct trace_entry ent; + int id; + int err; + char __data[0]; +}; + +struct trace_event_raw_wbc_class { + struct trace_entry ent; + char name[32]; + long int nr_to_write; + long int pages_skipped; + int sync_mode; + int for_kupdate; + int for_background; + int for_reclaim; + int range_cyclic; + long int range_start; + long int range_end; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_wbt_lat { + struct trace_entry ent; + char name[32]; + long unsigned int lat; + char __data[0]; +}; + +struct trace_event_raw_wbt_stat { + struct trace_entry ent; + char name[32]; + s64 rmean; + u64 rmin; + u64 rmax; + s64 rnr_samples; + s64 rtime; + s64 wmean; + u64 wmin; + u64 wmax; + s64 wnr_samples; + s64 wtime; + char __data[0]; +}; + +struct trace_event_raw_wbt_step { + struct trace_entry ent; + char name[32]; + const char *msg; + int step; + long unsigned int window; + unsigned int bg; + unsigned int normal; + unsigned int max; + char __data[0]; +}; + +struct trace_event_raw_wbt_timer { + struct trace_entry ent; + char name[32]; + unsigned int status; + int step; + unsigned int inflight; + char __data[0]; +}; + +struct trace_event_raw_workqueue_activate_work { + 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 trace_event_raw_workqueue_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; + +struct trace_event_raw_workqueue_queue_work { + struct trace_entry ent; + void *work; + void *function; + u32 __data_loc_workqueue; + int req_cpu; + int cpu; + char __data[0]; +}; + +struct trace_event_raw_writeback_bdi_register { + struct trace_entry ent; + char name[32]; + 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_dirty_inode_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + long unsigned int state; + long unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_writeback_folio_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + long unsigned int index; + char __data[0]; +}; + +struct trace_event_raw_writeback_inode_template { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int state; + __u16 mode; + long unsigned int dirtied_when; + char __data[0]; +}; + +struct trace_event_raw_writeback_pages_written { + struct trace_entry ent; + long int pages; + char __data[0]; +}; + +struct trace_event_raw_writeback_queue_io { + struct trace_entry ent; + char name[32]; + long unsigned int older; + long int age; + int moved; + int reason; + 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; + long unsigned int state; + long unsigned int 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; + long unsigned int state; + long unsigned int dirtied_when; + long unsigned int writeback_index; + long int nr_to_write; + long unsigned int wrote; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_work_class { + struct trace_entry ent; + char name[32]; + long int 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_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_xdp_bulk_tx { + struct trace_entry ent; + int ifindex; + u32 act; + int drops; + int sent; + int err; + 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_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_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_xdp_exception { + struct trace_entry ent; + int prog_id; + u32 act; + int ifindex; + char __data[0]; +}; + +struct trace_event_raw_xdp_redirect_template { + struct trace_entry ent; + int prog_id; + u32 act; + int ifindex; + int err; + int to_ifindex; + u32 map_id; + int map_index; + char __data[0]; +}; + +struct 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_raw_xhci_log_ctrl_ctx { + struct trace_entry ent; + u32 drop; + u32 add; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ctx { + struct trace_entry ent; + int ctx_64; + unsigned int ctx_type; + dma_addr_t ctx_dma; + u8 *ctx_va; + unsigned int ctx_ep_num; + u32 __data_loc_ctx_data; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_doorbell { + struct trace_entry ent; + u32 slot; + u32 doorbell; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ep_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u64 deq; + u32 tx_info; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_free_virt_dev { + struct trace_entry ent; + void *vdev; + long long unsigned int out_ctx; + long long unsigned int in_ctx; + int slot_id; + u16 current_mel; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_msg { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_portsc { + struct trace_entry ent; + u32 busnum; + u32 portnum; + u32 portsc; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ring { + struct trace_entry ent; + u32 type; + void *ring; + dma_addr_t enq; + dma_addr_t deq; + unsigned int num_segs; + unsigned int stream_id; + unsigned int cycle_state; + unsigned int bounce_buf_len; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_slot_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u32 tt_info; + u32 state; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_stream_ctx { + struct trace_entry ent; + unsigned int stream_id; + u64 stream_ring; + dma_addr_t ctx_array_dma; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_trb { + struct trace_entry ent; + dma_addr_t dma; + u32 type; + u32 field0; + u32 field1; + u32 field2; + u32 field3; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_urb { + struct trace_entry ent; + u32 __data_loc_devname; + 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_virt_dev { + struct trace_entry ent; + void *vdev; + long long unsigned int out_ctx; + long long unsigned int in_ctx; + int devnum; + int state; + int speed; + u8 portnum; + u8 level; + int slot_id; + char __data[0]; +}; + +struct trace_export { + struct trace_export *next; + void (*write)(struct trace_export *, const void *, unsigned int); + int flags; +}; + +struct trace_fprobe { + struct dyn_event devent; + struct fprobe fp; + const char *symbol; + struct tracepoint *tpoint; + struct module *mod; + struct trace_probe tp; +}; + +struct trace_func_repeats { + long unsigned int ip; + long unsigned int parent_ip; + long unsigned int count; + u64 ts_last_call; +}; + +struct trace_kprobe { + struct dyn_event devent; + struct kretprobe rp; + long unsigned int *nhit; + const char *symbol; + struct trace_probe tp; +}; + +struct trace_mark { + long long unsigned int val; + char sym; +}; + +struct trace_min_max_param { + struct mutex *lock; + u64 *val; + u64 *min; + u64 *max; +}; + +struct tracer_opt; + +struct tracer_flags; + +struct trace_option_dentry { + struct tracer_opt *opt; + struct tracer_flags *flags; + struct trace_array *tr; + struct dentry *entry; +}; + +struct trace_options { + struct tracer *tracer; + struct trace_option_dentry *topts; +}; + +union upper_chunk; + +struct trace_pid_list { + raw_spinlock_t lock; + struct irq_work refill_irqwork; + union upper_chunk *upper[256]; + union upper_chunk *upper_list; + union lower_chunk *lower_list; + int free_upper_chunks; + int free_lower_chunks; +}; + +struct trace_print_flags { + long unsigned int mask; + const char *name; +}; + +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 trace_probe_log { + const char *subsystem; + const char **argv; + int argc; + int index; +}; + +struct trace_stack { + int stack_size; + int nr_entries; + long unsigned int calls[256]; +}; + +struct trace_subsystem_dir { + struct list_head list; + struct event_subsystem *subsystem; + struct trace_array *tr; + struct eventfs_inode *ei; + int ref_count; + int nr_events; +}; + +struct trace_uprobe { + struct dyn_event devent; + struct uprobe_consumer consumer; + struct path path; + char *filename; + struct uprobe *uprobe; + long unsigned int offset; + long unsigned int ref_ctr_offset; + long unsigned int *nhits; + struct trace_probe tp; +}; + +struct tracefs_dir_ops { + int (*mkdir)(const char *); + int (*rmdir)(const char *); +}; + +struct tracefs_fs_info { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; +}; + +struct tracefs_inode { + struct inode vfs_inode; + struct list_head list; + long unsigned int flags; + void *private; +}; + +struct tracepoint_ext; + +struct tracepoint { + const char *name; + struct static_key_false key; + struct static_call_key *static_call_key; + void *static_call_tramp; + void *iterator; + void *probestub; + struct tracepoint_func *funcs; + struct tracepoint_ext *ext; +}; + +struct tracepoint_ext { + int (*regfunc)(void); + void (*unregfunc)(void); + unsigned int faultable: 1; +}; + +struct traceprobe_parse_context { + struct trace_event_call *event; + const char *funcname; + const struct btf_type *proto; + const struct btf_param *params; + s32 nr_params; + struct btf *btf; + const struct btf_type *last_type; + u32 last_bitoffs; + u32 last_bitsize; + struct trace_probe *tp; + unsigned int flags; + int offset; +}; + +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 *, 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 use_max_tr; + bool noboot; +}; + +struct tracer_flags { + u32 val; + struct tracer_opt *opts; + struct tracer *trace; +}; + +struct tracer_opt { + const char *name; + u32 bit; +}; + +struct tracing_log_err { + struct list_head list; + struct err_info info; + char loc[128]; + char *cmd; +}; + +typedef int (*tracing_map_cmp_fn_t)(void *, void *); + +struct tracing_map_field { + tracing_map_cmp_fn_t cmp_fn; + union { + atomic64_t sum; + unsigned int offset; + }; +}; + +struct tracing_map_array; + +struct tracing_map_ops; + +struct tracing_map { + unsigned int key_size; + unsigned int map_bits; + unsigned int map_size; + unsigned int max_elts; + atomic_t next_elt; + struct tracing_map_array *elts; + struct tracing_map_array *map; + const struct tracing_map_ops *ops; + void *private_data; + struct tracing_map_field fields[6]; + unsigned int n_fields; + int key_idx[3]; + unsigned int n_keys; + struct tracing_map_sort_key sort_key; + unsigned int n_vars; + atomic64_t hits; + atomic64_t drops; +}; + +struct tracing_map_array { + unsigned int entries_per_page; + unsigned int entry_size_shift; + unsigned int entry_shift; + unsigned int entry_mask; + unsigned int n_pages; + void **pages; +}; + +struct tracing_map_elt { + struct tracing_map *map; + struct tracing_map_field *fields; + atomic64_t *vars; + bool *var_set; + void *key; + void *private_data; +}; + +struct tracing_map_entry { + u32 key; + struct tracing_map_elt *val; +}; + +struct tracing_map_ops { + int (*elt_alloc)(struct tracing_map_elt *); + void (*elt_free)(struct tracing_map_elt *); + void (*elt_clear)(struct tracing_map_elt *); + void (*elt_init)(struct tracing_map_elt *); +}; + +struct tracing_map_sort_entry { + void *key; + struct tracing_map_elt *elt; + bool elt_copied; + bool dup; +}; + +struct track { + long unsigned int addr; + depot_stack_handle_t handle; + int cpu; + int pid; + long unsigned int when; +}; + +struct track_data { + u64 track_val; + bool updated; + unsigned int key_len; + void *key; + struct tracing_map_elt elt; + struct action_data *action_data; + struct hist_trigger_data *hist_data; +}; + +struct trans_pgd_info { + void * (*trans_alloc_page)(void *); + void *trans_alloc_arg; +}; + +struct transaction_chp_stats_s { + long unsigned int cs_chp_time; + __u32 cs_forced_to_close; + __u32 cs_written; + __u32 cs_dropped; +}; + +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; + long unsigned int t_log_start; + int t_nr_buffers; + struct journal_head *t_reserved_list; + struct journal_head *t_buffers; + struct journal_head *t_forget; + struct journal_head *t_checkpoint_list; + struct journal_head *t_shadow_list; + struct list_head t_inode_list; + long unsigned int t_max_wait; + long unsigned int t_start; + long unsigned int 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; + long unsigned int 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 trap_bits { + const enum vcpu_sysreg index; + const enum trap_behaviour behaviour; + const u64 value; + const u64 mask; +}; + +struct trc_stall_chk_rdr { + int nesting; + int ipi_to_cpu; + u8 needqs; +}; + +typedef struct tree_desc_s tree_desc; + +struct tree_descr { + const char *name; + const struct file_operations *ops; + int mode; +}; + +struct trie_use_stats; + +struct trie { + struct key_vector kv[1]; + struct trie_use_stats *stats; +}; + +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 trie_use_stats { + unsigned int gets; + unsigned int backtrack; + unsigned int semantic_match_passed; + unsigned int semantic_match_miss; + unsigned int null_node_hit; + unsigned int resize_node_skipped; +}; + +struct trusted_key_payload; + +struct trusted_key_ops { + unsigned char migratable; + int (*init)(void); + int (*seal)(struct trusted_key_payload *, char *); + int (*unseal)(struct trusted_key_payload *, char *); + int (*get_random)(unsigned char *, size_t); + void (*exit)(void); +}; + +struct trusted_key_options { + uint16_t keytype; + uint32_t keyhandle; + unsigned char keyauth[20]; + uint32_t blobauth_len; + unsigned char blobauth[20]; + uint32_t pcrinfo_len; + unsigned char pcrinfo[64]; + int pcrlock; + uint32_t hash; + uint32_t policydigest_len; + unsigned char policydigest[64]; + uint32_t policyhandle; +}; + +struct trusted_key_payload { + struct callback_head rcu; + unsigned int key_len; + unsigned int blob_len; + unsigned char migratable; + unsigned char old_format; + unsigned char key[129]; + unsigned char blob[512]; +}; + +struct trusted_key_source { + char *name; + struct trusted_key_ops *ops; +}; + +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_linear_state { + unsigned int len; + const void *data; +}; + +struct ts_ops { + const char *name; + struct ts_config * (*init)(const void *, unsigned int, gfp_t, int); + unsigned int (*find)(struct ts_config *, struct ts_state *); + void (*destroy)(struct ts_config *); + void * (*get_pattern)(struct ts_config *); + unsigned int (*get_pattern_len)(struct ts_config *); + struct module *owner; + struct list_head list; +}; + +struct ts_state { + unsigned int offset; + char cb[48]; +}; + +struct tsconfig_reply_data { + struct ethnl_reply_data base; + struct hwtstamp_provider_desc hwprov_desc; + struct { + u32 tx_type; + u32 rx_filter; + u32 flags; + } hwtst_config; +}; + +struct tsconfig_req_info { + struct ethnl_req_info base; +}; + +struct tsinfo_reply_data { + struct ethnl_reply_data base; + struct kernel_ethtool_ts_info ts_info; + struct ethtool_ts_stats stats; +}; + +struct tsinfo_req_info { + struct ethnl_req_info base; + struct hwtstamp_provider_desc hwprov_desc; +}; + +struct tso_t { + int next_frag_idx; + int size; + void *data; + u16 ip_id; + u8 tlen; + bool ipv6; + u32 tcp_seq; +}; + +struct tsq_tasklet { + struct tasklet_struct tasklet; + struct list_head head; +}; + +struct tty_audit_buf { + struct mutex mutex; + dev_t dev; + bool icanon; + size_t valid; + u8 *data; +}; + +struct tty_operations; + +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 int type; + short int subtype; + struct ktermios init_termios; + long unsigned int 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 tty_file_private { + struct tty_struct *tty; + struct file *file; + struct list_head list; +}; + +struct tty_ldisc_ops; + +struct tty_ldisc { + struct tty_ldisc_ops *ops; + struct tty_struct *tty; +}; + +struct tty_ldisc_ops { + char *name; + int num; + int (*open)(struct tty_struct *); + void (*close)(struct tty_struct *); + void (*flush_buffer)(struct tty_struct *); + ssize_t (*read)(struct tty_struct *, struct file *, u8 *, size_t, void **, long unsigned int); + ssize_t (*write)(struct tty_struct *, struct file *, const u8 *, size_t); + int (*ioctl)(struct tty_struct *, unsigned int, long unsigned int); + int (*compat_ioctl)(struct tty_struct *, unsigned int, long unsigned int); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + __poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *); + void (*hangup)(struct tty_struct *); + void (*receive_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_struct *); + void (*dcd_change)(struct tty_struct *, bool); + size_t (*receive_buf2)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + struct module *owner; +}; + +struct tty_operations { + struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int); + int (*install)(struct tty_driver *, struct tty_struct *); + void (*remove)(struct tty_driver *, struct tty_struct *); + int (*open)(struct tty_struct *, struct file *); + void (*close)(struct tty_struct *, struct file *); + void (*shutdown)(struct tty_struct *); + void (*cleanup)(struct tty_struct *); + ssize_t (*write)(struct tty_struct *, const u8 *, size_t); + int (*put_char)(struct tty_struct *, u8); + void (*flush_chars)(struct tty_struct *); + unsigned int (*write_room)(struct tty_struct *); + unsigned int (*chars_in_buffer)(struct tty_struct *); + int (*ioctl)(struct tty_struct *, unsigned int, long unsigned int); + long int (*compat_ioctl)(struct tty_struct *, unsigned int, long unsigned int); + 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 *); + int (*ldisc_ok)(struct tty_struct *, int); + void (*set_ldisc)(struct tty_struct *); + void (*wait_until_sent)(struct tty_struct *, int); + void (*send_xchar)(struct tty_struct *, u8); + int (*tiocmget)(struct tty_struct *); + int (*tiocmset)(struct tty_struct *, unsigned int, unsigned int); + int (*resize)(struct tty_struct *, struct winsize *); + int (*get_icount)(struct tty_struct *, struct serial_icounter_struct *); + int (*get_serial)(struct tty_struct *, struct serial_struct *); + int (*set_serial)(struct tty_struct *, struct serial_struct *); + void (*show_fdinfo)(struct tty_struct *, struct seq_file *); + int (*poll_init)(struct tty_driver *, int, char *); + int (*poll_get_char)(struct tty_driver *, int); + void (*poll_put_char)(struct tty_driver *, int, char); + int (*proc_show)(struct seq_file *, void *); +}; + +struct tty_port_client_operations { + size_t (*receive_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_port *); +}; + +struct 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_struct { + struct kref kref; + int index; + struct device *dev; + struct tty_driver *driver; + struct tty_port *port; + const struct tty_operations *ops; + struct tty_ldisc *ldisc; + struct ld_semaphore ldisc_sem; + struct mutex atomic_write_lock; + struct mutex legacy_mutex; + struct mutex throttle_mutex; + struct rw_semaphore termios_rwsem; + struct mutex winsize_mutex; + struct ktermios termios; + struct ktermios termios_locked; + char name[64]; + long unsigned int flags; + int count; + unsigned int receive_room; + struct winsize winsize; + struct { + spinlock_t lock; + bool stopped; + bool tco_stopped; + } flow; + struct { + struct pid *pgrp; + struct pid *session; + spinlock_t lock; + unsigned char pktstatus; + bool packet; + } ctrl; + bool hw_stopped; + bool closing; + int flow_change; + struct tty_struct *link; + struct fasync_struct *fasync; + wait_queue_head_t write_wait; + wait_queue_head_t read_wait; + struct work_struct hangup_work; + void *disc_data; + void *driver_data; + spinlock_t files_lock; + int write_cnt; + u8 *write_buf; + struct list_head tty_files; + struct work_struct SAK_work; +}; + +struct ttyprintk_port { + struct tty_port port; + spinlock_t spinlock; +}; + +struct tun_struct; + +struct tun_file { + struct sock sk; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct socket socket; + struct tun_struct *tun; + struct fasync_struct *fasync; + unsigned int flags; + union { + u16 queue_index; + unsigned int ifindex; + }; + struct napi_struct napi; + bool napi_enabled; + bool napi_frags_enabled; + struct mutex napi_mutex; + struct list_head next; + struct tun_struct *detached; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct ptr_ring tx_ring; + struct xdp_rxq_info xdp_rxq; +}; + +struct tun_filter { + __u16 flags; + __u16 count; + __u8 addr[0]; +}; + +struct tun_flow_entry { + struct hlist_node hash_link; + struct callback_head rcu; + struct tun_struct *tun; + u32 rxhash; + u32 rps_rxhash; + int queue_index; + long: 64; + long unsigned int updated; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct tun_msg_ctl { + short unsigned int type; + short unsigned int num; + void *ptr; +}; + +struct tun_page { + struct page *page; + int count; +}; + +struct tun_pi { + __u16 flags; + __be16 proto; +}; + +struct tun_prog { + struct callback_head rcu; + struct bpf_prog *prog; +}; + +struct tun_security_struct { + u32 sid; +}; + +struct tun_struct { + struct tun_file *tfiles[256]; + unsigned int numqueues; + unsigned int flags; + kuid_t owner; + kgid_t group; + struct net_device *dev; + netdev_features_t set_features; + int align; + int vnet_hdr_sz; + int sndbuf; + struct tap_filter txflt; + struct sock_fprog fprog; + bool filter_attached; + u32 msg_enable; + spinlock_t lock; + struct hlist_head flows[1024]; + struct timer_list flow_gc_timer; + long unsigned int ageing_time; + unsigned int numdisabled; + struct list_head disabled; + void *security; + u32 flow_count; + u32 rx_batched; + atomic_long_t rx_frame_errors; + struct bpf_prog *xdp_prog; + struct tun_prog *steering_prog; + struct tun_prog *filter_prog; + struct ethtool_link_ksettings link_ksettings; + struct file *file; + struct ifreq *ifr; +}; + +struct virtio_net_hdr { + __u8 flags; + __u8 gso_type; + __virtio16 hdr_len; + __virtio16 gso_size; + __virtio16 csum_start; + __virtio16 csum_offset; +}; + +struct tun_xdp_hdr { + int buflen; + struct virtio_net_hdr gso; +}; + +struct twl4030_audio_resource { + int request_count; + u8 reg; + u8 mask; +}; + +struct twl4030_audio { + unsigned int audio_mclk; + struct mutex mutex; + struct twl4030_audio_resource resource[2]; + struct mfd_cell cells[2]; +}; + +struct twl4030_codec_data; + +struct twl4030_vibra_data; + +struct twl4030_audio_data { + unsigned int audio_mclk; + struct twl4030_codec_data *codec; + struct twl4030_vibra_data *vibra; + int audpwron_gpio; + int naudint_irq; + unsigned int irq_base; +}; + +struct twl4030_codec_data { + unsigned int digimic_delay; + unsigned int ramp_delay_value; + unsigned int offset_cncl_path; + unsigned int hs_extmute: 1; + int hs_extmute_gpio; +}; + +struct twl4030_vibra_data { + unsigned int coexist; +}; + +struct twl6030_irq { + unsigned int irq_base; + int twl_irq; + bool irq_wake_enabled; + atomic_t wakeirqs; + struct notifier_block pm_nb; + struct irq_chip irq_chip; + struct irq_domain *irq_domain; + const int *irq_mapping_tbl; +}; + +struct twl6040 { + struct device *dev; + struct regmap *regmap; + struct regmap_irq_chip_data *irq_data; + struct regulator_bulk_data supplies[2]; + struct clk *clk32k; + struct clk *mclk; + struct mutex mutex; + struct mutex irq_mutex; + struct mfd_cell cells[4]; + struct completion ready; + struct gpio_desc *audpwron; + int power_count; + int rev; + int pll; + unsigned int sysclk_rate; + unsigned int mclk_rate; + unsigned int irq; + unsigned int irq_ready; + unsigned int irq_th; +}; + +struct twl_client { + struct i2c_client *client; + struct regmap *regmap; +}; + +struct twl_mapping { + unsigned char sid; + unsigned char base; +}; + +struct twl_private { + bool ready; + u32 twl_idcode; + unsigned int twl_id; + struct twl_mapping *twl_map; + struct twl_client *twl_modules; +}; + +struct type_datum { + u32 value; + u32 bounds; + unsigned char primary; + unsigned char attribute; +}; + +struct type_descriptor { + u16 type_kind; + u16 type_info; + char type_name[0]; +}; + +struct type_mismatch_data { + struct source_location location; + struct type_descriptor *type; + long unsigned int alignment; + unsigned char type_check_kind; +}; + +struct type_mismatch_data_common { + struct source_location *location; + struct type_descriptor *type; + long unsigned int alignment; + unsigned char type_check_kind; +}; + +struct type_mismatch_data_v1 { + struct source_location location; + struct type_descriptor *type; + unsigned char log_alignment; + unsigned char type_check_kind; +}; + +struct type_set { + struct ebitmap types; + struct ebitmap negset; + u32 flags; +}; + +struct typec_connector { + void (*attach)(struct typec_connector *, struct device *); + void (*deattach)(struct typec_connector *, struct device *); +}; + +struct u32_fract { + __u32 numerator; + __u32 denominator; +}; + +struct uapi_priv_data { + struct fsl_mc_uapi *uapi; + struct fsl_mc_io *mc_io; +}; + +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 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_port { + struct uart_port port; + struct timer_list timer; + struct list_head list; + u32 capabilities; + u16 bugs; + unsigned int tx_loadsz; + unsigned char acr; + unsigned char fcr; + unsigned char ier; + unsigned char lcr; + unsigned char mcr; + unsigned char cur_iotype; + unsigned int rpm_tx_active; + unsigned char canary; + unsigned char probe; + struct mctrl_gpios *gpios; + u16 lsr_saved_flags; + u16 lsr_save_mask; + unsigned char msr_saved_flags; + struct uart_8250_dma *dma; + const struct uart_8250_ops *ops; + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + struct uart_8250_em485 *em485; + void (*rs485_start_tx)(struct uart_8250_port *, bool); + void (*rs485_stop_tx)(struct uart_8250_port *, bool); + struct delayed_work overrun_backoff; + u32 overrun_backoff_time_ms; +}; + +struct vendor_data___2; + +struct uart_amba_port { + struct uart_port port; + const u16 *reg_offset; + struct clk *clk; + const struct vendor_data___2 *vendor; + unsigned int im; + unsigned int old_status; + unsigned int fifosize; + unsigned int fixed_baud; + char type[12]; + ktime_t rs485_tx_drain_interval; + enum pl011_rs485_tx_state rs485_tx_state; + struct hrtimer trigger_start_tx; + struct hrtimer trigger_stop_tx; + unsigned int dmacr; + bool using_tx_dma; + bool using_rx_dma; + struct pl011_dmarx_data dmarx; + struct pl011_dmatx_data dmatx; + bool dma_probed; +}; + +struct uart_match { + struct uart_port *port; + struct uart_driver *driver; +}; + +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, long unsigned int); + int (*poll_init)(struct uart_port *); + void (*poll_put_char)(struct uart_port *, unsigned char); + int (*poll_get_char)(struct uart_port *); +}; + +struct uart_state { + struct tty_port port; + enum uart_pm_state pm_state; + atomic_t refcount; + wait_queue_head_t remove_wait; + struct uart_port *uart_port; +}; + +struct ubuf_info_msgzc { + struct ubuf_info ubuf; + union { + struct { + long unsigned int desc; + void *ctx; + }; + struct { + u32 id; + u16 len; + u16 zerocopy: 1; + u32 bytelen; + }; + }; + struct mmpin mmp; +}; + +struct ubuf_info_ops { + void (*complete)(struct sk_buff *, struct ubuf_info *, bool); + int (*link_skb)(struct sk_buff *, struct ubuf_info *); +}; + +struct ucc_fast_info { + int ucc_num; + int tdm_num; + enum qe_clock rx_clock; + enum qe_clock tx_clock; + enum qe_clock rx_sync; + enum qe_clock tx_sync; + resource_size_t regs; + int irq; + u32 uccm_mask; + int brkpt_support; + int grant_support; + int tsa; + int cdp; + int cds; + int ctsp; + int ctss; + int tci; + int txsy; + int rtsm; + int revd; + int rsyn; + u16 max_rx_buf_length; + u16 urfs; + u16 urfet; + u16 urfset; + u16 utfs; + u16 utfet; + u16 utftt; + u16 ufpt; + enum ucc_fast_channel_protocol_mode mode; + enum ucc_fast_transparent_txrx ttx_trx; + enum ucc_fast_tx_encoding_method tenc; + enum ucc_fast_rx_decoding_method renc; + enum ucc_fast_transparent_tcrc tcrc; + enum ucc_fast_sync_len synl; +}; + +struct ucc_fast_private { + struct ucc_fast_info *uf_info; + struct ucc_fast *uf_regs; + __be32 *p_ucce; + __be32 *p_uccm; + int enabled_tx; + int enabled_rx; + int stopped_tx; + int stopped_rx; + s32 ucc_fast_tx_virtual_fifo_base_offset; + s32 ucc_fast_rx_virtual_fifo_base_offset; + u32 tx_frames; + u32 rx_frames; + u32 tx_discarded; + u32 rx_discarded; + u16 mrblr; +}; + +struct ucc_slow_info { + int ucc_num; + int protocol; + enum qe_clock rx_clock; + enum qe_clock tx_clock; + phys_addr_t regs; + int irq; + u16 uccm_mask; + int data_mem_part; + int init_tx; + int init_rx; + u32 tx_bd_ring_len; + u32 rx_bd_ring_len; + int rx_interrupts; + int brkpt_support; + int grant_support; + int tsa; + int cdp; + int cds; + int ctsp; + int ctss; + int rinv; + int tinv; + int rtsm; + int rfw; + int tci; + int tend; + int tfl; + int txsy; + u16 max_rx_buf_length; + enum ucc_slow_transparent_tcrc tcrc; + enum ucc_slow_channel_protocol_mode mode; + enum ucc_slow_diag_mode diag; + enum ucc_slow_tx_oversampling_rate tdcr; + enum ucc_slow_rx_oversampling_rate rdcr; + enum ucc_slow_tx_encoding_method tenc; + enum ucc_slow_rx_decoding_method renc; +}; + +struct ucc_slow_pram { + __be16 rbase; + __be16 tbase; + u8 rbmr; + u8 tbmr; + __be16 mrblr; + __be32 rstate; + __be32 rptr; + __be16 rbptr; + __be16 rcount; + __be32 rtemp; + __be32 tstate; + __be32 tptr; + __be16 tbptr; + __be16 tcount; + __be32 ttemp; + __be32 rcrc; + __be32 tcrc; +}; + +struct ucc_slow_private { + struct ucc_slow_info *us_info; + struct ucc_slow *us_regs; + struct ucc_slow_pram *us_pram; + s32 us_pram_offset; + int enabled_tx; + int enabled_rx; + int stopped_tx; + int stopped_rx; + struct list_head confQ; + u32 first_tx_bd_mask; + s32 tx_base_offset; + s32 rx_base_offset; + struct qe_bd *confBd; + struct qe_bd *tx_bd; + struct qe_bd *rx_bd; + void *p_rx_frame; + __be16 *p_ucce; + __be16 *p_uccm; + u16 saved_uccm; + u32 tx_frames; + u32 rx_frames; + u32 rx_discarded; +}; + +struct ucc_tdm { + u16 tdm_port; + u32 siram_entry_id; + u16 *siram; + struct si1 *si_regs; + enum tdm_framer_t tdm_framer_type; + enum tdm_mode_t tdm_mode; + u8 num_of_ts; + u32 tx_ts_mask; + u32 rx_ts_mask; +}; + +struct ucc_tdm_info { + struct ucc_fast_info uf_info; + struct si_mode_info si_info; +}; + +struct uclamp_request { + s64 percent; + u64 util; + int ret; +}; + +struct ucounts { + struct hlist_node node; + struct user_namespace *ns; + kuid_t uid; + atomic_t count; + atomic_long_t ucount[12]; + atomic_long_t rlimit[4]; +}; + +struct ucred { + __u32 pid; + __u32 uid; + __u32 gid; +}; + +struct udma_static_tr { + u8 elsize; + u16 elcnt; + u16 bstcnt; +}; + +struct udma_tx_drain { + struct delayed_work work; + ktime_t tstamp; + u32 residue; +}; + +struct udma_chan_config { + bool pkt_mode; + bool needs_epib; + u32 psd_size; + u32 metadata_size; + u32 hdesc_size; + bool notdpkt; + int remote_thread_id; + u32 atype; + u32 asel; + u32 src_thread; + u32 dst_thread; + enum psil_endpoint_type ep_type; + bool enable_acc32; + bool enable_burst; + enum udma_tp_level channel_tpl; + u32 tr_trigger_type; + long unsigned int tx_flags; + int mapped_channel_id; + int default_flow_id; + enum dma_transfer_direction dir; +}; + +struct udma_desc; + +struct udma_chan { + struct virt_dma_chan vc; + struct dma_slave_config cfg; + struct udma_dev *ud; + struct device *dma_dev; + struct udma_desc *desc; + struct udma_desc *terminated_desc; + struct udma_static_tr static_tr; + char *name; + struct udma_tchan *bchan; + struct udma_tchan *tchan; + struct udma_rchan *rchan; + struct udma_rflow *rflow; + bool psil_paired; + int irq_num_ring; + int irq_num_udma; + bool cyclic; + bool paused; + enum udma_chan_state state; + struct completion teardown_completed; + struct udma_tx_drain tx_drain; + struct udma_chan_config config; + struct udma_chan_config backup_config; + bool use_dma_pool; + struct dma_pool *hdesc_pool; + u32 id; +}; + +struct udma_hwdesc { + size_t cppi5_desc_size; + void *cppi5_desc_vaddr; + dma_addr_t cppi5_desc_paddr; + void *tr_req_base; + struct cppi5_tr_resp_t *tr_resp_base; +}; + +struct udma_desc { + struct virt_dma_desc vd; + bool terminated; + enum dma_transfer_direction dir; + struct udma_static_tr static_tr; + u32 residue; + unsigned int sglen; + unsigned int desc_idx; + unsigned int tr_idx; + u32 metadata_size; + void *metadata; + unsigned int hwdesc_count; + struct udma_hwdesc hwdesc[0]; +}; + +struct udma_tpl { + u8 levels; + u32 start_idx[3]; +}; + +struct udma_tisci_rm { + const struct ti_sci_handle *tisci; + const struct ti_sci_rm_udmap_ops *tisci_udmap_ops; + u32 tisci_dev_id; + const struct ti_sci_rm_psil_ops *tisci_psil_ops; + u32 tisci_navss_dev_id; + struct ti_sci_resource *rm_ranges[5]; +}; + +struct udma_rx_flush { + struct udma_hwdesc hwdescs[2]; + size_t buffer_size; + void *buffer_vaddr; + dma_addr_t buffer_paddr; +}; + +struct udma_match_data; + +struct udma_soc_data; + +struct udma_dev { + struct dma_device ddev; + struct device *dev; + void *mmrs[4]; + const struct udma_match_data *match_data; + const struct udma_soc_data *soc_data; + struct udma_tpl bchan_tpl; + struct udma_tpl tchan_tpl; + struct udma_tpl rchan_tpl; + size_t desc_align; + struct udma_tisci_rm tisci_rm; + struct k3_ringacc *ringacc; + struct work_struct purge_work; + struct list_head desc_to_purge; + spinlock_t lock; + struct udma_rx_flush rx_flush; + int bchan_cnt; + int tchan_cnt; + int echan_cnt; + int rchan_cnt; + int rflow_cnt; + int tflow_cnt; + long unsigned int *bchan_map; + long unsigned int *tchan_map; + long unsigned int *rchan_map; + long unsigned int *rflow_gp_map; + long unsigned int *rflow_gp_map_allocated; + long unsigned int *rflow_in_use; + long unsigned int *tflow_map; + struct udma_tchan *bchans; + struct udma_tchan *tchans; + struct udma_rchan *rchans; + struct udma_rflow *rflows; + struct udma_chan *channels; + u32 psil_base; + u32 atype; + u32 asel; +}; + +struct udma_filter_param { + int remote_thread_id; + u32 atype; + u32 asel; + u32 tr_trigger_type; +}; + +struct udma_match_data { + enum k3_dma_type type; + u32 psil_base; + bool enable_memcpy_support; + u32 flags; + u32 statictr_z_mask; + u8 burst_size[3]; + struct udma_soc_data *soc_data; +}; + +struct udma_oes_offsets { + u32 udma_rchan; + u32 bcdma_bchan_data; + u32 bcdma_bchan_ring; + u32 bcdma_tchan_data; + u32 bcdma_tchan_ring; + u32 bcdma_rchan_data; + u32 bcdma_rchan_ring; + u32 pktdma_tchan_flow; + u32 pktdma_rchan_flow; +}; + +struct udma_rchan { + void *reg_rt; + int id; +}; + +struct udma_rflow { + int id; + struct k3_ring *fd_ring; + struct k3_ring *r_ring; +}; + +struct udma_soc_data { + struct udma_oes_offsets oes; + u32 bcdma_trigger_event_offset; +}; + +struct udma_tchan { + void *reg_rt; + int id; + struct k3_ring *t_ring; + struct k3_ring *tc_ring; + int tflow_id; +}; + +struct udmabuf { + long unsigned int pagecount; + struct folio **folios; + long unsigned int nr_pinned; + struct folio **pinned_folios; + struct sg_table *sg; + struct miscdevice *device; + long unsigned int *offsets; +}; + +struct udmabuf_create { + __u32 memfd; + __u32 flags; + __u64 offset; + __u64 size; +}; + +struct udmabuf_create_item { + __u32 memfd; + __u32 __pad; + __u64 offset; + __u64 size; +}; + +struct udmabuf_create_list { + __u32 flags; + __u32 count; + struct udmabuf_create_item list[0]; +}; + +struct udp_sock { + struct inet_sock inet; + long unsigned int udp_flags; + int pending; + __u8 encap_type; + __u16 udp_lrpa_hash; + struct hlist_nulls_node udp_lrpa_node; + __u16 len; + __u16 gso_size; + __u16 pcslen; + __u16 pcrlen; + int (*encap_rcv)(struct sock *, struct sk_buff *); + void (*encap_err_rcv)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *); + int (*encap_err_lookup)(struct sock *, struct sk_buff *); + void (*encap_destroy)(struct sock *); + struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *); + int (*gro_complete)(struct sock *, struct sk_buff *, int); + struct sk_buff_head reader_queue; + int forward_deficit; + int forward_threshold; + bool peeking_with_offset; + long: 64; + long: 64; + long: 64; +}; + +struct udp6_sock { + struct udp_sock udp; + struct ipv6_pinfo inet6; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct udp_dev_scratch { + u32 _tsize_state; + u16 len; + bool is_linear; + bool csum_unnecessary; +}; + +struct udp_hslot { + union { + struct hlist_head head; + struct hlist_nulls_head nulls_head; + }; + int count; + spinlock_t lock; +}; + +struct udp_hslot_main { + struct udp_hslot hslot; + u32 hash4_cnt; + long: 64; +}; + +struct udp_mib { + long unsigned int mibs[10]; +}; + +struct udp_seq_afinfo { + sa_family_t family; + struct udp_table *udp_table; +}; + +struct udp_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + __u16 cscov; + __u8 partial_cov; +}; + +struct udp_table { + struct udp_hslot *hash; + struct udp_hslot_main *hash2; + struct udp_hslot *hash4; + unsigned int mask; + unsigned int log; +}; + +struct udp_tunnel_info { + short unsigned int type; + sa_family_t sa_family; + __be16 port; + u8 hw_priv; +}; + +struct udp_tunnel_nic_table_info { + unsigned int n_entries; + unsigned int tunnel_types; +}; + +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 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 udp_tunnel_nic_shared { + struct udp_tunnel_nic *udp_tunnel_nic_info; + struct list_head devices; +}; + +struct udphdr { + __be16 source; + __be16 dest; + __be16 len; + __sum16 check; +}; + +struct uevent_sock { + struct list_head list; + struct sock *sk; +}; + +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 uffdio_api { + __u64 api; + __u64 features; + __u64 ioctls; +}; + +struct uffdio_range { + __u64 start; + __u64 len; +}; + +struct uffdio_continue { + struct uffdio_range range; + __u64 mode; + __s64 mapped; +}; + +struct uffdio_copy { + __u64 dst; + __u64 src; + __u64 len; + __u64 mode; + __s64 copy; +}; + +struct uffdio_move { + __u64 dst; + __u64 src; + __u64 len; + __u64 mode; + __s64 move; +}; + +struct uffdio_poison { + struct uffdio_range range; + __u64 mode; + __s64 updated; +}; + +struct uffdio_register { + struct uffdio_range range; + __u64 mode; + __u64 ioctls; +}; + +struct uffdio_writeprotect { + struct uffdio_range range; + __u64 mode; +}; + +struct uffdio_zeropage { + struct uffdio_range range; + __u64 mode; + __s64 zeropage; +}; + +struct uhci_debug { + int size; + char *data; +}; + +struct uhci_td; + +struct uhci_qh; + +struct uhci_hcd { + long unsigned int 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; + long unsigned int 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; + long unsigned int port_c_suspend; + long unsigned int resuming_ports; + long unsigned int ports_timeout; + struct list_head idle_qh_list; + int rh_numports; + wait_queue_head_t waitqh; + int num_waiting; + int total_load; + short int 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 usb_iso_packet_descriptor; + +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; + long unsigned int advance_jiffies; + unsigned int unlink_frame; + unsigned int period; + short int phase; + short int 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 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 uinput_abs_setup { + __u16 code; + struct input_absinfo absinfo; +}; + +struct uinput_request; + +struct uinput_device { + struct input_dev *dev; + struct mutex mutex; + enum uinput_state state; + wait_queue_head_t waitq; + unsigned char ready; + unsigned char head; + unsigned char tail; + struct input_event buff[16]; + unsigned int ff_effects_max; + struct uinput_request *requests[16]; + wait_queue_head_t requests_waitq; + spinlock_t requests_lock; +}; + +struct uinput_ff_erase { + __u32 request_id; + __s32 retval; + __u32 effect_id; +}; + +struct uinput_ff_upload { + __u32 request_id; + __s32 retval; + struct ff_effect effect; + struct ff_effect old; +}; + +struct uinput_ff_upload_compat { + __u32 request_id; + __s32 retval; + struct ff_effect_compat effect; + struct ff_effect_compat old; +}; + +struct uinput_request { + unsigned int id; + unsigned int code; + int retval; + struct completion done; + union { + unsigned int effect_id; + struct { + struct ff_effect *effect; + struct ff_effect *old; + } upload; + } u; +}; + +struct uinput_setup { + struct input_id id; + char name[80]; + __u32 ff_effects_max; +}; + +struct uinput_user_dev { + char name[80]; + struct input_id id; + __u32 ff_effects_max; + __s32 absmax[64]; + __s32 absmin[64]; + __s32 absfuzz[64]; + __s32 absflat[64]; +}; + +struct ulpi_info { + unsigned int id; + char *name; +}; + +struct ultrix_disklabel { + s32 pt_magic; + s32 pt_valid; + struct pt_info pt_part[8]; +}; + +struct uncached_list { + spinlock_t lock; + struct list_head head; +}; + +struct uncharge_gather { + struct mem_cgroup *memcg; + long unsigned int nr_memory; + long unsigned int pgpgout; + long unsigned int nr_kmem; + int nid; +}; + +struct uni_pagedict { + u16 **uni_pgdir[32]; + long unsigned int refcount; + long unsigned int sum; + unsigned char *inverse_translations[4]; + u16 *inverse_trans_unicode; +}; + +struct utf8data; + +struct utf8data_table; + +struct unicode_map { + unsigned int version; + const struct utf8data *ntab[2]; + const struct utf8data_table *tables; +}; + +struct unipair; + +struct unimapdesc { + short unsigned int entry_ct; + struct unipair *entries; +}; + +struct unipair { + short unsigned int unicode; + short unsigned int fontpos; +}; + +struct unix_address { + refcount_t refcnt; + int len; + struct sockaddr_un name[0]; +}; + +struct unix_edge { + struct unix_sock *predecessor; + struct unix_sock *successor; + struct list_head vertex_entry; + struct list_head stack_entry; +}; + +struct unix_skb_parms { + struct pid *pid; + kuid_t uid; + kgid_t gid; + struct scm_fp_list *fp; + u32 secid; + u32 consumed; +}; + +struct unix_vertex; + +struct unix_sock { + struct sock sk; + struct unix_address *addr; + struct path path; + struct mutex iolock; + struct mutex bindlock; + struct sock *peer; + struct sock *listener; + struct unix_vertex *vertex; + spinlock_t lock; + struct socket_wq peer_wq; + wait_queue_entry_t peer_wake; + struct scm_stat scm_stat; + struct sk_buff *oob_skb; +}; + +struct unix_stream_read_state { + int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *); + struct socket *socket; + struct msghdr *msg; + struct pipe_inode_info *pipe; + size_t size; + int flags; + unsigned int splice_flags; +}; + +struct unix_vertex { + struct list_head edges; + struct list_head entry; + struct list_head scc_entry; + long unsigned int out_degree; + long unsigned int index; + long unsigned int scc_index; +}; + +struct unixware_slice { + __le16 s_label; + __le16 s_flags; + __le32 start_sect; + __le32 nr_sects; +}; + +struct unixware_vtoc { + __le32 v_magic; + __le32 v_version; + char v_name[8]; + __le16 v_nslices; + __le16 v_unknown1; + __le32 v_reserved[10]; + struct unixware_slice v_slice[16]; +}; + +struct unixware_disklabel { + __le32 d_type; + __le32 d_magic; + __le32 d_version; + char d_serial[12]; + __le32 d_ncylinders; + __le32 d_ntracks; + __le32 d_nsectors; + __le32 d_secsize; + __le32 d_part_start; + __le32 d_unknown1[12]; + __le32 d_alt_tbl; + __le32 d_alt_len; + __le32 d_phys_cyl; + __le32 d_phys_trk; + __le32 d_phys_sec; + __le32 d_phys_bytes; + __le32 d_unknown2; + __le32 d_unknown3; + __le32 d_pad[8]; + struct unixware_vtoc vtoc; +}; + +struct unlink_vma_file_batch { + int count; + struct vm_area_struct *vmas[8]; +}; + +struct unmap_refs_callback_data { + struct completion completion; + int result; +}; + +struct unmap_ring_hvm { + unsigned int idx; + long unsigned int addrs[16]; +}; + +struct unreachable_data { + struct source_location location; +}; + +struct update_cgr_params { + struct qman_cgr *cgr; + struct qm_mcc_initcgr *opts; + int ret; +}; + +struct update_classid_context { + u32 classid; + unsigned int batch; +}; + +union upper_chunk { + union upper_chunk *next; + union lower_chunk *data[256]; +}; + +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 list_head consumers; + struct inode *inode; + union { + struct callback_head rcu; + struct work_struct work; + }; + loff_t offset; + loff_t ref_ctr_offset; + long unsigned int flags; + struct arch_uprobe arch; +}; + +struct uprobe_cpu_buffer { + struct mutex mutex; + void *buf; + int dsize; +}; + +struct uprobe_dispatch_data { + struct trace_uprobe *tu; + long unsigned int bp_addr; +}; + +struct uprobe_task { + enum uprobe_task_state state; + unsigned int depth; + struct return_instance *return_instances; + struct return_instance *ri_pool; + struct timer_list ri_timer; + seqcount_t ri_seqcount; + union { + struct { + struct arch_uprobe_task autask; + long unsigned int vaddr; + }; + struct { + struct callback_head dup_xol_work; + long unsigned int dup_xol_addr; + }; + }; + struct uprobe *active_uprobe; + long unsigned int xol_vaddr; + struct arch_uprobe *auprobe; +}; + +struct uprobe_trace_entry_head { + struct trace_entry ent; + long unsigned int vaddr[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 urb_priv { + struct ed *ed; + u16 length; + u16 td_cnt; + struct list_head pending; + struct td *td[0]; +}; + +struct urb_priv___2 { + struct list_head node; + struct urb *urb; + struct uhci_qh *qh; + struct list_head td_list; + unsigned int fsbr: 1; +}; + +struct xhci_segment; + +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 *start_trb; + struct xhci_segment *end_seg; + union xhci_trb *end_trb; + struct xhci_segment *bounce_seg; + bool urb_length_set; + bool error_mid_td; +}; + +struct urb_priv___3 { + int num_tds; + int num_tds_done; + struct xhci_td td[0]; +}; + +typedef struct urb_priv urb_priv_t; + +struct usb2_clock_sel_priv { + void *base; + struct clk_hw hw; + struct clk_bulk_data clks[2]; + struct reset_control *rsts; + bool extal; + bool xtal; +}; + +struct 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_anchor { + struct list_head urb_list; + wait_queue_head_t wait; + spinlock_t lock; + atomic_t suspend_wakeups; + unsigned int poisoned: 1; +}; + +struct usb_bos_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumDeviceCaps; +} __attribute__((packed)); + +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; + long unsigned int devmap[2]; + 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_cdc_acm_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bmCapabilities; +}; + +struct usb_cdc_call_mgmt_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bmCapabilities; + __u8 bDataInterface; +}; + +struct usb_cdc_country_functional_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 iCountryCodeRelDate; + __le16 wCountyCode0; +}; + +struct usb_cdc_dmm_desc { + __u8 bFunctionLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u16 bcdVersion; + __le16 wMaxCommand; +} __attribute__((packed)); + +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_header_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdCDC; +} __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 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_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 usb_cdc_union_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_union_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bMasterInterface0; + __u8 bSlaveInterface0; +}; + +struct usb_class_driver { + char *name; + char * (*devnode)(const struct device *, umode_t *); + const struct file_operations *fops; + int minor_base; +}; + +struct usb_config_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumInterfaces; + __u8 bConfigurationValue; + __u8 iConfiguration; + __u8 bmAttributes; + __u8 bMaxPower; +} __attribute__((packed)); + +struct usb_ctrlrequest { + __u8 bRequestType; + __u8 bRequest; + __le16 wValue; + __le16 wIndex; + __le16 wLength; +}; + +struct usb_dcd_config_params { + __u8 bU1devExitLat; + __le16 bU2DevExitLat; + __u8 besl_baseline; + __u8 besl_deep; +}; + +struct usb_descriptor_header { + __u8 bLength; + __u8 bDescriptorType; +}; + +struct usb_dev_cap_header { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; +}; + +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; + long unsigned int ifclaimed; + u32 disabled_bulk_eps; + long unsigned int interface_allowed_mask; + int not_yet_resumed; + bool suspend_allowed; + bool privileges_dropped; +}; + +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 usb_host_endpoint { + struct usb_endpoint_descriptor desc; + struct usb_ss_ep_comp_descriptor ss_ep_comp; + struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; + long: 0; + struct list_head urb_list; + void *hcpriv; + struct ep_device *ep_dev; + unsigned char *extra; + int extralen; + int enabled; + int streams; + long: 0; +} __attribute__((packed)); + +struct usb_device_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __le16 idVendor; + __le16 idProduct; + __le16 bcdDevice; + __u8 iManufacturer; + __u8 iProduct; + __u8 iSerialNumber; + __u8 bNumConfigurations; +}; + +struct 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; + short unsigned int bus_mA; + u8 portnum; + u8 level; + u8 devaddr; + unsigned int can_submit: 1; + unsigned int persist_enabled: 1; + unsigned int reset_in_progress: 1; + unsigned int have_langid: 1; + unsigned int authorized: 1; + unsigned int authenticated: 1; + unsigned int lpm_capable: 1; + unsigned int lpm_devinit_allow: 1; + unsigned int usb2_hw_lpm_capable: 1; + unsigned int usb2_hw_lpm_besl_capable: 1; + unsigned int usb2_hw_lpm_enabled: 1; + unsigned int usb2_hw_lpm_allowed: 1; + unsigned int usb3_lpm_u1_enabled: 1; + unsigned int usb3_lpm_u2_enabled: 1; + int string_langid; + char *product; + char *manufacturer; + char *serial; + struct list_head filelist; + int maxchild; + u32 quirks; + atomic_t urbnum; + long unsigned int active_duration; + long unsigned int connect_time; + unsigned int do_remote_wakeup: 1; + unsigned int reset_resume: 1; + unsigned int port_is_suspended: 1; + enum usb_link_tunnel_mode tunnel_mode; + 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_device_id; + +struct usb_device_driver { + const char *name; + bool (*match)(struct usb_device *); + int (*probe)(struct usb_device *); + void (*disconnect)(struct usb_device *); + int (*suspend)(struct usb_device *, pm_message_t); + int (*resume)(struct usb_device *, pm_message_t); + int (*choose_configuration)(struct usb_device *); + const struct attribute_group **dev_groups; + struct device_driver driver; + const struct usb_device_id *id_table; + unsigned int supports_autosuspend: 1; + unsigned int generic_subclass: 1; +}; + +struct usb_device_id { + __u16 match_flags; + __u16 idVendor; + __u16 idProduct; + __u16 bcdDevice_lo; + __u16 bcdDevice_hi; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 bInterfaceNumber; + kernel_ulong_t driver_info; +}; + +struct usb_dynids { + struct list_head list; +}; + +struct usb_interface; + +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 *); + void (*shutdown)(struct usb_interface *); + const struct usb_device_id *id_table; + const struct attribute_group **dev_groups; + struct usb_dynids dynids; + struct device_driver driver; + unsigned int no_dynamic_id: 1; + unsigned int supports_autosuspend: 1; + unsigned int disable_hub_initiated_lpm: 1; + unsigned int soft_unbind: 1; +}; + +struct usb_dynid { + struct list_head node; + struct usb_device_id id; +}; + +struct usb_ep_caps { + unsigned int type_control: 1; + unsigned int type_iso: 1; + unsigned int type_bulk: 1; + unsigned int type_int: 1; + unsigned int dir_in: 1; + unsigned int dir_out: 1; +}; + +struct usb_ep_ops; + +struct usb_ep { + void *driver_data; + const char *name; + const struct usb_ep_ops *ops; + const struct usb_endpoint_descriptor *desc; + const struct usb_ss_ep_comp_descriptor *comp_desc; + struct list_head ep_list; + struct usb_ep_caps caps; + bool claimed; + bool enabled; + unsigned int mult: 2; + unsigned int maxburst: 5; + u8 address; + u16 maxpacket; + u16 maxpacket_limit; + u16 max_streams; +}; + +struct usb_request; + +struct usb_ep_ops { + int (*enable)(struct usb_ep *, const struct usb_endpoint_descriptor *); + int (*disable)(struct usb_ep *); + void (*dispose)(struct usb_ep *); + struct usb_request * (*alloc_request)(struct usb_ep *, gfp_t); + void (*free_request)(struct usb_ep *, struct usb_request *); + int (*queue)(struct usb_ep *, struct usb_request *, gfp_t); + int (*dequeue)(struct usb_ep *, struct usb_request *); + int (*set_halt)(struct usb_ep *, int); + int (*set_wedge)(struct usb_ep *); + int (*fifo_status)(struct usb_ep *); + void (*fifo_flush)(struct usb_ep *); +}; + +struct usb_ext_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __le32 bmAttributes; +} __attribute__((packed)); + +struct usb_udc; + +struct usb_gadget_ops; + +struct usb_gadget { + struct work_struct work; + struct usb_udc *udc; + const struct usb_gadget_ops *ops; + struct usb_ep *ep0; + struct list_head ep_list; + enum usb_device_speed speed; + enum usb_device_speed max_speed; + enum usb_ssp_rate ssp_rate; + enum usb_ssp_rate max_ssp_rate; + enum usb_device_state state; + const char *name; + struct device dev; + unsigned int isoch_delay; + unsigned int out_epnum; + unsigned int in_epnum; + unsigned int mA; + struct usb_otg_caps *otg_caps; + unsigned int sg_supported: 1; + unsigned int is_otg: 1; + unsigned int is_a_peripheral: 1; + unsigned int b_hnp_enable: 1; + unsigned int a_hnp_support: 1; + unsigned int a_alt_hnp_support: 1; + unsigned int hnp_polling_support: 1; + unsigned int host_request_flag: 1; + unsigned int quirk_ep_out_aligned_size: 1; + unsigned int quirk_altset_not_supp: 1; + unsigned int quirk_stall_not_supp: 1; + unsigned int quirk_zlp_not_supp: 1; + unsigned int quirk_avoids_skb_reserve: 1; + unsigned int is_selfpowered: 1; + unsigned int deactivated: 1; + unsigned int connected: 1; + unsigned int lpm_capable: 1; + unsigned int wakeup_capable: 1; + unsigned int wakeup_armed: 1; + int irq; + int id_number; +}; + +struct usb_gadget_driver { + char *function; + enum usb_device_speed max_speed; + int (*bind)(struct usb_gadget *, struct usb_gadget_driver *); + void (*unbind)(struct usb_gadget *); + int (*setup)(struct usb_gadget *, const struct usb_ctrlrequest *); + void (*disconnect)(struct usb_gadget *); + void (*suspend)(struct usb_gadget *); + void (*resume)(struct usb_gadget *); + void (*reset)(struct usb_gadget *); + struct device_driver driver; + char *udc_name; + unsigned int match_existing_only: 1; + bool is_bound: 1; +}; + +struct usb_gadget_ops { + int (*get_frame)(struct usb_gadget *); + int (*wakeup)(struct usb_gadget *); + int (*func_wakeup)(struct usb_gadget *, int); + int (*set_remote_wakeup)(struct usb_gadget *, int); + int (*set_selfpowered)(struct usb_gadget *, int); + int (*vbus_session)(struct usb_gadget *, int); + int (*vbus_draw)(struct usb_gadget *, unsigned int); + int (*pullup)(struct usb_gadget *, int); + int (*ioctl)(struct usb_gadget *, unsigned int, long unsigned int); + void (*get_config_params)(struct usb_gadget *, struct usb_dcd_config_params *); + int (*udc_start)(struct usb_gadget *, struct usb_gadget_driver *); + int (*udc_stop)(struct usb_gadget *); + void (*udc_set_speed)(struct usb_gadget *, enum usb_device_speed); + void (*udc_set_ssp_rate)(struct usb_gadget *, enum usb_ssp_rate); + void (*udc_async_callbacks)(struct usb_gadget *, bool); + struct usb_ep * (*match_ep)(struct usb_gadget *, struct usb_endpoint_descriptor *, struct usb_ss_ep_comp_descriptor *); + int (*check_config)(struct usb_gadget *); +}; + +struct usb_phy_roothub; + +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; + long unsigned int flags; + enum usb_dev_authorize_policy dev_policy; + unsigned int rh_registered: 1; + unsigned int rh_pollable: 1; + unsigned int msix_enabled: 1; + unsigned int msi_enabled: 1; + unsigned int skip_phy_initialization: 1; + unsigned int uses_new_polling: 1; + unsigned int has_tt: 1; + unsigned int amd_resume_bug: 1; + unsigned int can_do_streams: 1; + unsigned int tpl_support: 1; + unsigned int cant_recv_wakeups: 1; + unsigned int irq; + void *regs; + resource_size_t rsrc_start; + resource_size_t rsrc_len; + unsigned int power_budget; + struct giveback_urb_bh high_prio_bh; + struct giveback_urb_bh low_prio_bh; + struct mutex *address0_mutex; + struct mutex *bandwidth_mutex; + struct usb_hcd *shared_hcd; + struct usb_hcd *primary_hcd; + struct dma_pool *pool[4]; + int state; + struct gen_pool *localmem_pool; + long unsigned int hcd_priv[0]; +}; + +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_interface_assoc_descriptor; + +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_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bInterfaceNumber; + __u8 bAlternateSetting; + __u8 bNumEndpoints; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 iInterface; +}; + +struct usb_host_interface { + struct usb_interface_descriptor desc; + int extralen; + unsigned char *extra; + struct usb_host_endpoint *endpoint; + char *string; +}; + +struct usb_hub_status { + __le16 wHubStatus; + __le16 wHubChange; +}; + +struct usb_port_status { + __le16 wPortStatus; + __le16 wPortChange; + __le32 dwExtPortStatus; +}; + +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_hub_descriptor; + +struct usb_port; + +struct usb_hub { + struct device *intfdev; + struct usb_device *hdev; + struct kref kref; + struct urb *urb; + u8 (*buffer)[8]; + union { + struct usb_hub_status hub; + struct usb_port_status port; + } *status; + struct mutex status_mutex; + int error; + int nerrors; + long unsigned int event_bits[1]; + long unsigned int change_bits[1]; + long unsigned int removed_bits[1]; + long unsigned int wakeup_bits[1]; + long unsigned int power_bits[1]; + long unsigned int child_usage_bits[1]; + long unsigned int 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 delayed_work post_resume_work; + struct work_struct events; + spinlock_t irq_urb_lock; + struct timer_list irq_urb_retry; + struct usb_port **ports; + struct list_head onboard_devs; +}; + +struct usb_hub_descriptor { + __u8 bDescLength; + __u8 bDescriptorType; + __u8 bNbrPorts; + __le16 wHubCharacteristics; + __u8 bPwrOn2PwrGood; + __u8 bHubContrCurrent; + union { + struct { + __u8 DeviceRemovable[4]; + __u8 PortPwrCtrlMask[4]; + } hs; + struct { + __u8 bHubHdrDecLat; + __le16 wHubDelay; + __le16 DeviceRemovable; + } __attribute__((packed)) ss; + } u; +} __attribute__((packed)); + +struct usb_interface { + struct usb_host_interface *altsetting; + struct usb_host_interface *cur_altsetting; + unsigned int num_altsetting; + struct usb_interface_assoc_descriptor *intf_assoc; + int minor; + enum usb_interface_condition condition; + unsigned int sysfs_files_created: 1; + unsigned int ep_devs_created: 1; + unsigned int unregistering: 1; + unsigned int needs_remote_wakeup: 1; + unsigned int needs_altsetting0: 1; + unsigned int needs_binding: 1; + unsigned int resetting_device: 1; + unsigned int authorized: 1; + enum usb_wireless_status wireless_status; + struct work_struct wireless_status_work; + struct device dev; + struct device *usb_dev; + struct work_struct reset_ws; +}; + +struct usb_interface_assoc_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bFirstInterface; + __u8 bInterfaceCount; + __u8 bFunctionClass; + __u8 bFunctionSubClass; + __u8 bFunctionProtocol; + __u8 iFunction; +}; + +struct usb_interface_cache { + unsigned int num_altsetting; + struct kref ref; + struct usb_host_interface altsetting[0]; +}; + +struct usb_memory { + struct list_head memlist; + int vma_use_count; + int urb_use_count; + u32 size; + void *mem; + dma_addr_t dma_handle; + long unsigned int vm_start; + struct usb_dev_state *ps; +}; + +struct usb_mon_operations { + void (*urb_submit)(struct usb_bus *, struct urb *); + void (*urb_submit_error)(struct usb_bus *, struct urb *, int); + void (*urb_complete)(struct usb_bus *, struct urb *, int); +}; + +struct usb_otg { + u8 default_a; + struct phy *phy; + struct usb_phy *usb_phy; + struct usb_bus *host; + struct usb_gadget *gadget; + enum usb_otg_state state; + int (*set_host)(struct usb_otg *, struct usb_bus *); + int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); + int (*set_vbus)(struct usb_otg *, bool); + int (*start_srp)(struct usb_otg *); + int (*start_hnp)(struct usb_otg *); +}; + +struct usb_phy_io_ops { + int (*read)(struct usb_phy *, u32); + int (*write)(struct usb_phy *, u32, u32); +}; + +struct usb_phy_roothub { + struct phy *phy; + struct list_head list; +}; + +struct usb_port { + struct usb_device *child; + struct device dev; + struct usb_dev_state *port_owner; + struct usb_port *peer; + struct typec_connector *connector; + struct dev_pm_qos_request *req; + enum usb_port_connect_type connect_type; + enum usb_device_state state; + struct kernfs_node *state_kn; + usb_port_location_t location; + struct mutex status_lock; + u32 over_current_count; + u8 portnum; + u32 quirks; + unsigned int early_stop: 1; + unsigned int ignore_event: 1; + unsigned int is_superspeed: 1; + unsigned int usb3_lpm_u1_permit: 1; + unsigned int usb3_lpm_u2_permit: 1; +}; + +struct usb_ptm_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; +}; + +struct usb_qualifier_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __u8 bNumConfigurations; + __u8 bRESERVED; +}; + +struct usb_request { + void *buf; + unsigned int length; + dma_addr_t dma; + struct scatterlist *sg; + unsigned int num_sgs; + unsigned int num_mapped_sgs; + unsigned int stream_id: 16; + unsigned int is_last: 1; + unsigned int no_interrupt: 1; + unsigned int zero: 1; + unsigned int short_not_ok: 1; + unsigned int dma_mapped: 1; + unsigned int sg_was_mapped: 1; + void (*complete)(struct usb_ep *, struct usb_request *); + void *context; + struct list_head list; + unsigned int frame_number; + int status; + unsigned int actual; +}; + +typedef int (*usb_role_switch_set_t)(struct usb_role_switch *, enum usb_role); + +typedef enum usb_role (*usb_role_switch_get_t)(struct usb_role_switch *); + +struct usb_role_switch { + struct device dev; + struct lock_class_key key; + struct mutex lock; + struct module *module; + enum usb_role role; + bool registered; + struct device *usb2_port; + struct device *usb3_port; + struct device *udc; + usb_role_switch_set_t set; + usb_role_switch_get_t get; + bool allow_userspace_control; +}; + +struct usb_role_switch_desc { + struct fwnode_handle *fwnode; + struct device *usb2_port; + struct device *usb3_port; + struct device *udc; + usb_role_switch_set_t set; + usb_role_switch_get_t get; + bool allow_userspace_control; + void *driver_data; + const char *name; +}; + +struct usb_set_sel_req { + __u8 u1_sel; + __u8 u1_pel; + __le16 u2_sel; + __le16 u2_pel; +}; + +struct usb_sg_request { + int status; + size_t bytes; + spinlock_t lock; + struct usb_device *dev; + int pipe; + int entries; + struct urb **urbs; + int count; + struct completion complete; +}; + +struct usb_ss_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bmAttributes; + __le16 wSpeedSupported; + __u8 bFunctionalitySupport; + __u8 bU1devExitLat; + __le16 bU2DevExitLat; +}; + +struct usb_ss_container_id_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __u8 ContainerID[16]; +}; + +struct usb_ssp_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __le32 bmAttributes; + __le16 wFunctionalitySupport; + __le16 wReserved; + union { + __le32 legacy_padding; + struct { + struct {} __empty_bmSublinkSpeedAttr; + __le32 bmSublinkSpeedAttr[0]; + }; + }; +}; + +struct usb_string_descriptor { + __u8 bLength; + __u8 bDescriptorType; + union { + __le16 legacy_padding; + struct { + struct {} __empty_wData; + __le16 wData[0]; + }; + }; +}; + +struct usb_tt_clear { + struct list_head clear_list; + unsigned int tt; + u16 devinfo; + struct usb_hcd *hcd; + struct usb_host_endpoint *ep; +}; + +struct usbdevfs_bulktransfer { + unsigned int ep; + unsigned int len; + unsigned int timeout; + void *data; +}; + +struct usbdevfs_bulktransfer32 { + compat_uint_t ep; + compat_uint_t len; + compat_uint_t timeout; + compat_caddr_t data; +}; + +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_ctrltransfer { + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; + __u32 timeout; + void *data; +}; + +struct usbdevfs_ctrltransfer32 { + u8 bRequestType; + u8 bRequest; + u16 wValue; + u16 wIndex; + u16 wLength; + u32 timeout; + compat_caddr_t data; +}; + +struct usbdevfs_disconnect_claim { + unsigned int interface; + unsigned int flags; + char driver[256]; +}; + +struct usbdevfs_disconnectsignal { + unsigned int signr; + void *context; +}; + +struct usbdevfs_disconnectsignal32 { + compat_int_t signr; + compat_caddr_t context; +}; + +struct usbdevfs_getdriver { + unsigned int interface; + char driver[256]; +}; + +struct usbdevfs_hub_portinfo { + char nports; + char port[127]; +}; + +struct usbdevfs_ioctl { + int ifno; + int ioctl_code; + void *data; +}; + +struct usbdevfs_ioctl32 { + s32 ifno; + s32 ioctl_code; + compat_caddr_t data; +}; + +struct usbdevfs_iso_packet_desc { + unsigned int length; + unsigned int actual_length; + unsigned int status; +}; + +struct usbdevfs_setinterface { + unsigned int interface; + unsigned int altsetting; +}; + +struct usbdevfs_streams { + unsigned int num_streams; + unsigned int num_eps; + unsigned char eps[0]; +}; + +struct usbdevfs_urb { + unsigned char type; + unsigned char endpoint; + int status; + unsigned int flags; + void *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 *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 used_address { + struct __kernel_sockaddr_storage name; + unsigned int name_len; +}; + +struct user_access_state { + u64 por_el0; +}; + +struct user_arg_ptr { + bool is_compat; + union { + const char * const *native; + const compat_uptr_t *compat; + } ptr; +}; + +struct za_context; + +struct zt_context; + +struct user_ctxs { + struct fpsimd_context *fpsimd; + u32 fpsimd_size; + struct sve_context *sve; + u32 sve_size; + struct tpidr2_context *tpidr2; + u32 tpidr2_size; + struct za_context *za; + u32 za_size; + struct zt_context *zt; + u32 zt_size; + struct fpmr_context *fpmr; + u32 fpmr_size; + struct poe_context *poe; + u32 poe_size; + struct gcs_context *gcs; + u32 gcs_size; +}; + +struct user_datum { + u32 value; + u32 bounds; + struct ebitmap roles; + struct mls_range range; + struct mls_level dfltlevel; +}; + +struct user_event_group; + +struct user_event { + struct user_event_group *group; + char *reg_name; + struct tracepoint tracepoint; + struct trace_event_call call; + struct trace_event_class class; + struct dyn_event devent; + struct hlist_node node; + struct list_head fields; + struct list_head validators; + struct work_struct put_work; + refcount_t refcnt; + int min_size; + int reg_flags; + char status; +}; + +struct user_event_enabler { + struct list_head mm_enablers_link; + struct user_event *event; + long unsigned int addr; + long unsigned int values; +}; + +struct user_event_enabler_fault { + struct work_struct work; + struct user_event_mm *mm; + struct user_event_enabler *enabler; + int attempt; +}; + +struct user_event_refs; + +struct user_event_file_info { + struct user_event_group *group; + struct user_event_refs *refs; +}; + +struct user_event_group { + char *system_name; + char *system_multi_name; + struct hlist_node node; + struct mutex reg_mutex; + struct hlist_head register_table[256]; + u64 multi_id; +}; + +struct user_event_mm { + struct list_head mms_link; + struct list_head enablers; + struct mm_struct *mm; + struct user_event_mm *next; + refcount_t refcnt; + refcount_t tasks; + struct rcu_work put_rwork; +}; + +struct user_event_refs { + struct callback_head rcu; + int count; + struct user_event *events[0]; +}; + +struct user_event_validator { + struct list_head user_event_link; + int offset; + int flags; +}; + +struct user_key_payload { + struct callback_head rcu; + short unsigned int datalen; + long: 0; + char data[0]; +}; + +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; + long unsigned int flags; + bool parent_could_setfcap; + struct list_head keyring_name_list; + struct key *user_keyring_register; + struct rw_semaphore keyring_sem; + struct key *persistent_keyring_register; + struct work_struct work; + struct ctl_table_set set; + struct ctl_table_header *sysctls; + struct ucounts *ucounts; + long int ucount_max[12]; + long int rlimit_max[4]; + struct binfmt_misc *binfmt_misc; +}; + +struct user_pac_address_keys { + __int128 unsigned apiakey; + __int128 unsigned apibkey; + __int128 unsigned apdakey; + __int128 unsigned apdbkey; +}; + +struct user_pac_generic_keys { + __int128 unsigned apgakey; +}; + +struct user_pac_mask { + __u64 data_mask; + __u64 insn_mask; +}; + +struct user_reg { + __u32 size; + __u8 enable_bit; + __u8 enable_size; + __u16 flags; + __u64 enable_addr; + __u64 name_args; + __u32 write_index; +} __attribute__((packed)); + +struct user_regset; + +typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf); + +typedef int user_regset_set_fn(struct task_struct *, const struct user_regset *, unsigned int, unsigned int, const void *, const void *); + +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 user_regset_view { + const char *name; + const struct user_regset *regsets; + unsigned int n; + u32 e_flags; + u16 e_machine; + u8 ei_osabi; +}; + +struct user_struct { + refcount_t __count; + struct percpu_counter epoll_watches; + long unsigned int unix_inflight; + atomic_long_t pipe_bufs; + struct hlist_node uidhash_node; + kuid_t uid; + atomic_long_t locked_vm; + atomic_t nr_watches; + struct ratelimit_state ratelimit; +}; + +struct user_sve_header { + __u32 size; + __u32 max_size; + __u16 vl; + __u16 max_vl; + __u16 flags; + __u16 __reserved; +}; + +struct user_syms { + const char **syms; + char *buf; +}; + +struct user_threshold { + struct list_head list_node; + int temperature; + int direction; +}; + +struct user_unreg { + __u32 size; + __u8 disable_bit; + __u8 __reserved; + __u16 __reserved2; + __u64 disable_addr; +}; + +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; + struct rw_semaphore map_changing_lock; + 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; + long unsigned int start; + long unsigned int end; + struct list_head list; +}; + +struct userfaultfd_wait_queue { + struct uffd_msg msg; + wait_queue_entry_t wq; + struct userfaultfd_ctx *ctx; + bool waken; +}; + +struct userfaultfd_wake_range { + long unsigned int start; + long unsigned int len; +}; + +struct userspace_data { + long unsigned int user_frequency; + bool valid; +}; + +struct userspace_policy { + unsigned int is_managed; + unsigned int setspeed; + struct mutex mutex; +}; + +struct userstack_entry { + struct trace_entry ent; + unsigned int tgid; + long unsigned int caller[8]; +}; + +struct ustat { + __kernel_daddr_t f_tfree; + long unsigned int f_tinode; + char f_fname[6]; + char f_fpack[6]; +}; + +struct ustring_buffer { + char buffer[1024]; +}; + +struct utf8_table { + int cmask; + int cval; + int shift; + long int lmask; + long int lval; +}; + +struct utf8cursor { + const struct unicode_map *um; + enum utf8_normalization n; + const char *s; + const char *p; + const char *ss; + const char *sp; + unsigned int len; + unsigned int slen; + short int ccc; + short int nccc; + unsigned char hangul[12]; +}; + +struct utf8data { + unsigned int maxage; + unsigned int offset; +}; + +struct utf8data_table { + const unsigned int *utf8agetab; + int utf8agetab_size; + const struct utf8data *utf8nfdicfdata; + int utf8nfdicfdata_size; + const struct utf8data *utf8nfdidata; + int utf8nfdidata_size; + const unsigned char *utf8data; +}; + +struct utmi_clk_param { + u32 osc_frequency; + u8 enable_delay_count; + u16 stable_count; + u8 active_delay_count; + u16 xtal_freq_count; +}; + +struct utmi_clk_param___2 { + u32 osc_frequency; + u8 enable_delay_count; + u8 stable_count; + u8 active_delay_count; + u8 xtal_freq_count; +}; + +struct uts_namespace { + struct new_utsname name; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct ns_common ns; +}; + +union uu { + short unsigned int us; + unsigned char b[2]; +}; + +struct uuidcmp { + const char *uuid; + int len; +}; + +struct v2m_data { + struct list_head entry; + struct fwnode_handle *fwnode; + struct resource res; + void *base; + u32 spi_start; + u32 nr_spis; + u32 spi_offset; + long unsigned int *bm; + u32 flags; +}; + +struct va_format { + const char *fmt; + va_list *va; +}; + +struct val_table_ent { + const char *str; + int value; +}; + +struct value_name_pair { + int value; + const char *name; +}; + +struct variable_validate { + efi_guid_t vendor; + char *name; + bool (*validate)(efi_char16_t *, int, u8 *, long unsigned int); +}; + +struct variant_data { + unsigned int clkreg; + unsigned int clkreg_enable; + unsigned int clkreg_8bit_bus_enable; + unsigned int clkreg_neg_edge_enable; + unsigned int cmdreg_cpsm_enable; + unsigned int cmdreg_lrsp_crc; + unsigned int cmdreg_srsp_crc; + unsigned int cmdreg_srsp; + unsigned int cmdreg_stop; + unsigned int datalength_bits; + unsigned int fifosize; + unsigned int fifohalfsize; + unsigned int data_cmd_enable; + unsigned int datactrl_mask_ddrmode; + unsigned int datactrl_mask_sdio; + unsigned int datactrl_blocksz; + u8 datactrl_any_blocksz: 1; + u8 dma_power_of_2: 1; + u8 datactrl_first: 1; + u8 datacnt_useless: 1; + u8 st_sdio: 1; + u8 st_clkdiv: 1; + u8 stm32_clkdiv: 1; + u32 pwrreg_powerup; + u32 f_max; + u8 signal_direction: 1; + u8 pwrreg_clkgate: 1; + u8 busy_detect: 1; + u8 busy_timeout: 1; + u32 busy_dpsm_flag; + u32 busy_detect_flag; + u32 busy_detect_mask; + u8 pwrreg_nopower: 1; + u8 explicit_mclk_control: 1; + u8 qcom_fifo: 1; + u8 qcom_dml: 1; + u8 reversed_irq_handling: 1; + u8 mmcimask1: 1; + unsigned int irq_pio_mask; + u32 start_err; + u32 opendrain; + u8 dma_lli: 1; + bool supports_sdio_irq; + u32 stm32_idmabsize_mask; + u32 stm32_idmabsize_align; + bool dma_flow_controller; + void (*init)(struct mmci_host *); +}; + +struct vblk_comp { + u8 state[16]; + u64 parent_id; + u8 type; + u8 children; + u16 chunksize; +}; + +struct vblk_dgrp { + u8 disk_id[64]; +}; + +struct vblk_disk { + uuid_t disk_id; + u8 alt_name[128]; +}; + +struct vblk_part { + u64 start; + u64 size; + u64 volume_offset; + u64 parent_id; + u64 disk_id; + u8 partnum; +}; + +struct vblk_volu { + u8 volume_type[16]; + u8 volume_state[16]; + u8 guid[16]; + u8 drive_hint[4]; + u64 size; + u8 partition_type; +}; + +struct vblk { + u8 name[64]; + u64 obj_id; + u32 sequence; + u8 flags; + u8 type; + union { + struct vblk_comp comp; + struct vblk_dgrp dgrp; + struct vblk_disk disk; + struct vblk_part part; + struct vblk_volu volu; + } vblk; + struct list_head list; +}; + +struct vc { + struct vc_data *d; + struct work_struct SAK_work; +}; + +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 vt_mode { + char mode; + char waitv; + short int relsig; + short int acqsig; + short int frsig; +}; + +struct vc_data { + struct tty_port port; + struct vc_state state; + struct vc_state saved_state; + short unsigned int 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; + long unsigned int vc_origin; + long unsigned int vc_scr_end; + long unsigned int vc_visible_origin; + unsigned int vc_top; + unsigned int vc_bottom; + const struct consw *vc_sw; + short unsigned int *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; + short unsigned int vc_complement_mask; + short unsigned int vc_s_complement_mask; + long unsigned int vc_pos; + short unsigned int vc_hi_font_mask; + struct console_font vc_font; + short unsigned int 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; + long unsigned int vc_tab_stop[4]; + unsigned char vc_palette[48]; + short unsigned int *vc_translate; + unsigned int vc_bell_pitch; + unsigned int vc_bell_duration; + short unsigned int vc_cur_blink_ms; + struct vc_data **vc_display_fg; + struct uni_pagedict *uni_pagedict; + struct uni_pagedict **uni_pagedict_loc; + u32 **vc_uni_lines; +}; + +struct vc_draw_region { + long unsigned int from; + long unsigned int to; + int x; +}; + +struct vc_selection { + struct mutex lock; + struct vc_data *cons; + char *buffer; + unsigned int buf_len; + volatile int start; + int end; +}; + +struct vcap_actionset_list { + int max; + int cnt; + enum vcap_actionfield_set *actionsets; +}; + +struct vcap_cache_data { + u32 *keystream; + u32 *maskstream; + u32 *actionstream; + u32 counter; + bool sticky; +}; + +struct vcap_admin { + struct list_head list; + struct list_head rules; + struct list_head enabled; + struct mutex lock; + enum vcap_type vtype; + int vinst; + int first_cid; + int last_cid; + int tgt_inst; + int lookups; + int lookups_per_instance; + int last_valid_addr; + int first_valid_addr; + int last_used_addr; + bool w32be; + bool ingress; + struct vcap_cache_data cache; +}; + +struct vcap_control; + +struct vcap_admin_debugfs_info { + struct vcap_control *vctrl; + struct vcap_admin *admin; +}; + +struct vcap_client_actionfield_ctrl { + struct list_head list; + enum vcap_action_field action; + enum vcap_field_type type; +}; + +struct vcap_u1_action { + u8 value; +}; + +struct vcap_u32_action { + u32 value; +}; + +struct vcap_u48_action { + u8 value[6]; +}; + +struct vcap_u56_action { + u8 value[7]; +}; + +struct vcap_u64_action { + u8 value[8]; +}; + +struct vcap_u72_action { + u8 value[9]; +}; + +struct vcap_u112_action { + u8 value[14]; +}; + +struct vcap_u128_action { + u8 value[16]; +}; + +struct vcap_client_actionfield_data { + union { + struct vcap_u1_action u1; + struct vcap_u32_action u32; + struct vcap_u48_action u48; + struct vcap_u56_action u56; + struct vcap_u64_action u64; + struct vcap_u72_action u72; + struct vcap_u112_action u112; + struct vcap_u128_action u128; + }; +}; + +struct vcap_client_actionfield { + struct vcap_client_actionfield_ctrl ctrl; + struct vcap_client_actionfield_data data; +}; + +struct vcap_client_keyfield_ctrl { + struct list_head list; + enum vcap_key_field key; + enum vcap_field_type type; +}; + +struct vcap_u1_key { + u8 value; + u8 mask; +}; + +struct vcap_u32_key { + u32 value; + u32 mask; +}; + +struct vcap_u48_key { + u8 value[6]; + u8 mask[6]; +}; + +struct vcap_u56_key { + u8 value[7]; + u8 mask[7]; +}; + +struct vcap_u64_key { + u8 value[8]; + u8 mask[8]; +}; + +struct vcap_u72_key { + u8 value[9]; + u8 mask[9]; +}; + +struct vcap_u112_key { + u8 value[14]; + u8 mask[14]; +}; + +struct vcap_u128_key { + u8 value[16]; + u8 mask[16]; +}; + +struct vcap_client_keyfield_data { + union { + struct vcap_u1_key u1; + struct vcap_u32_key u32; + struct vcap_u48_key u48; + struct vcap_u56_key u56; + struct vcap_u64_key u64; + struct vcap_u72_key u72; + struct vcap_u112_key u112; + struct vcap_u128_key u128; + }; +}; + +struct vcap_client_keyfield { + struct vcap_client_keyfield_ctrl ctrl; + struct vcap_client_keyfield_data data; +}; + +struct vcap_operations; + +struct vcap_info; + +struct vcap_statistics; + +struct vcap_control { + const struct vcap_operations *ops; + const struct vcap_info *vcaps; + const struct vcap_statistics *stats; + struct list_head list; +}; + +struct vcap_counter { + u32 value; + bool sticky; +}; + +struct vcap_enabled_port { + struct list_head list; + struct net_device *ndev; + long unsigned int cookie; + int src_cid; + int dst_cid; +}; + +struct vcap_field { + u16 type; + u16 width; + u16 offset; +}; + +struct vcap_set; + +struct vcap_typegroup; + +struct vcap_info { + char *name; + u16 rows; + u16 sw_count; + u16 sw_width; + u16 sticky_width; + u16 act_width; + u16 default_cnt; + u16 require_cnt_dis; + u16 version; + const struct vcap_set *keyfield_set; + int keyfield_set_size; + const struct vcap_set *actionfield_set; + int actionfield_set_size; + const struct vcap_field **keyfield_set_map; + int *keyfield_set_map_size; + const struct vcap_field **actionfield_set_map; + int *actionfield_set_map_size; + const struct vcap_typegroup **keyfield_set_typegroups; + const struct vcap_typegroup **actionfield_set_typegroups; +}; + +struct vcap_keyset_list { + int max; + int cnt; + enum vcap_keyfield_set *keysets; +}; + +struct vcap_rule; + +struct vcap_output_print; + +struct vcap_operations { + enum vcap_keyfield_set (*validate_keyset)(struct net_device *, struct vcap_admin *, struct vcap_rule *, struct vcap_keyset_list *, u16); + void (*add_default_fields)(struct net_device *, struct vcap_admin *, struct vcap_rule *); + void (*cache_erase)(struct vcap_admin *); + void (*cache_write)(struct net_device *, struct vcap_admin *, enum vcap_selection, u32, u32); + void (*cache_read)(struct net_device *, struct vcap_admin *, enum vcap_selection, u32, u32); + void (*init)(struct net_device *, struct vcap_admin *, u32, u32); + void (*update)(struct net_device *, struct vcap_admin *, enum vcap_command, enum vcap_selection, u32); + void (*move)(struct net_device *, struct vcap_admin *, u32, int, int); + int (*port_info)(struct net_device *, struct vcap_admin *, struct vcap_output_print *); +}; + +struct vcap_output_print { + void (*prf)(void *, const char *, ...); + void *dst; +}; + +struct vcap_port_debugfs_info { + struct vcap_control *vctrl; + struct net_device *ndev; +}; + +struct vcap_rule { + int vcap_chain_id; + enum vcap_user user; + u16 priority; + u32 id; + u64 cookie; + struct list_head keyfields; + struct list_head actionfields; + enum vcap_keyfield_set keyset; + enum vcap_actionfield_set actionset; + enum vcap_rule_error exterr; + u64 client; +}; + +struct vcap_rule_internal { + struct vcap_rule data; + struct list_head list; + struct vcap_admin *admin; + struct net_device *ndev; + struct vcap_control *vctrl; + u32 sort_key; + int keyset_sw; + int actionset_sw; + int keyset_sw_regs; + int actionset_sw_regs; + int size; + u32 addr; + u32 counter_id; + struct vcap_counter counter; + enum vcap_rule_state state; +}; + +struct vcap_rule_move { + int addr; + int offset; + int count; +}; + +struct vcap_set { + u8 type_id; + u8 sw_per_item; + u8 sw_cnt; +}; + +struct vcap_statistics { + char *name; + int count; + const char * const *keyfield_set_names; + const char * const *actionfield_set_names; + const char * const *keyfield_names; + const char * const *actionfield_names; +}; + +struct vcap_stream_iter { + u32 offset; + u32 sw_width; + u32 regs_per_sw; + u32 reg_idx; + u32 reg_bitpos; + const struct vcap_typegroup *tg; +}; + +struct vcap_tc_flower_parse_usage { + struct flow_cls_offload *fco; + struct flow_rule *frule; + struct vcap_rule *vrule; + struct vcap_admin *admin; + u16 l3_proto; + u8 l4_proto; + u16 tpid; + long long unsigned int used_keys; +}; + +struct vcap_typegroup { + u16 offset; + u16 width; + u16 value; +}; + +struct vcpu_register_runstate_memory_area { + union { + __guest_handle_vcpu_runstate_info h; + struct vcpu_runstate_info *v; + uint64_t p; + } addr; +}; + +struct vcpu_register_vcpu_info { + uint64_t mfn; + uint32_t offset; + uint32_t rsvd; +}; + +struct vcpu_runstate_info { + int state; + uint64_t state_entry_time; + uint64_t time[4]; +}; + +struct vcs_poll_data { + struct notifier_block notifier; + unsigned int cons_num; + int event; + wait_queue_head_t waitq; + struct fasync_struct *fasync; +}; + +struct vm_special_mapping; + +struct vdso_abi_info { + const char *name; + const char *vdso_code_start; + const char *vdso_code_end; + long unsigned int vdso_pages; + struct vm_special_mapping *cm; +}; + +struct vdso_timestamp { + u64 sec; + u64 nsec; +}; + +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_time_data arch_data; +}; + +union vdso_data_store { + struct vdso_data data[2]; + u8 page[4096]; +}; + +struct vdso_rng_data { + u64 generation; + u8 is_ready; +}; + +struct vendor_data___2 { + const u16 *reg_offset; + unsigned int ifls; + unsigned int fr_busy; + unsigned int fr_dsr; + unsigned int fr_cts; + unsigned int fr_ri; + unsigned int inv_fr; + bool access_32b; + bool oversampling; + bool dma_threshold; + bool cts_event_workaround; + bool always_enabled; + bool fixed_options; + unsigned int (*get_fifosize)(struct amba_device *); +}; + +struct vendor_data { + u8 config_offset; + u8 channels; + u8 signals; + bool dualmaster; + bool nomadik; + bool pl080s; + bool ftdmac020; + u32 max_transfer_size; +}; + +struct vers_iter { + size_t param_size; + struct dm_target_versions *vers; + struct dm_target_versions *old_vers; + char *end; + uint32_t flags; +}; + +struct veth { + __be16 h_vlan_proto; + __be16 h_vlan_TCI; +}; + +struct vexpress_config_bridge_ops; + +struct vexpress_config_bridge { + struct vexpress_config_bridge_ops *ops; + void *context; +}; + +struct vexpress_config_bridge_ops { + struct regmap * (*regmap_init)(struct device *, void *); + void (*regmap_exit)(struct regmap *, void *); +}; + +struct vexpress_osc { + struct regmap *reg; + struct clk_hw hw; + long unsigned int rate_min; + long unsigned int rate_max; +}; + +struct vexpress_syscfg { + struct device *dev; + void *base; + struct list_head funcs; +}; + +struct vexpress_syscfg_func { + struct list_head list; + struct vexpress_syscfg *syscfg; + struct regmap *regmap; + int num_templates; + u32 template[0]; +}; + +struct vf610_gpio_port { + struct gpio_chip gc; + void *base; + void *gpio_base; + const struct fsl_gpio_soc_data *sdata; + u8 irqc[32]; + struct clk *clk_port; + struct clk *clk_gpio; + int irq; + spinlock_t lock; +}; + +struct vfree_deferred { + struct llist_head list; + struct work_struct wq; +}; + +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 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 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 vgda { + __be32 secs; + __be32 usec; + char reserved8[16]; + __be16 numlvs; + __be16 maxlvs; + __be16 pp_size; + __be16 numpvs; + __be16 total_vgdas; + __be16 vgda_size; +}; + +struct vgic_global { + enum vgic_type type; + phys_addr_t vcpu_base; + void *vcpu_base_va; + void *vcpu_hyp_va; + void *vctrl_base; + void *vctrl_hyp; + int nr_lr; + unsigned int maint_irq; + int max_gic_vcpus; + bool can_emulate_gicv2; + bool has_gicv4; + bool has_gicv4_1; + bool no_hw_deactivation; + struct static_key_false gicv3_cpuif; + u32 ich_vtr_el2; +}; + +struct vgic_irq { + raw_spinlock_t irq_lock; + struct callback_head rcu; + struct list_head ap_list; + struct kvm_vcpu *vcpu; + struct kvm_vcpu *target_vcpu; + u32 intid; + bool line_level; + bool pending_latch; + bool active; + bool enabled; + bool hw; + struct kref refcount; + u32 hwintid; + unsigned int host_irq; + union { + u8 targets; + u32 mpidr; + }; + u8 source; + u8 active_source; + u8 priority; + u8 group; + enum vgic_irq_config config; + struct irq_ops *ops; + void *owner; +}; + +struct vgic_its { + gpa_t vgic_its_base; + bool enabled; + struct vgic_io_device iodev; + struct kvm_device *dev; + u64 baser_device_table; + u64 baser_coll_table; + struct mutex cmd_lock; + u64 cbaser; + u32 creadr; + u32 cwriter; + u32 abi_rev; + struct mutex its_lock; + struct list_head device_list; + struct list_head collection_list; + struct xarray translation_cache; +}; + +struct vgic_its_abi { + int cte_esz; + int dte_esz; + int ite_esz; + int (*save_tables)(struct vgic_its *); + int (*restore_tables)(struct vgic_its *); + int (*commit)(struct vgic_its *); +}; + +struct vgic_redist_region { + u32 index; + gpa_t base; + u32 count; + u32 free_index; + struct list_head list; +}; + +struct vgic_reg_attr { + struct kvm_vcpu *vcpu; + gpa_t addr; +}; + +struct vgic_register_region { + unsigned int reg_offset; + unsigned int len; + unsigned int bits_per_irq; + unsigned int access_flags; + union { + long unsigned int (*read)(struct kvm_vcpu *, gpa_t, unsigned int); + long unsigned int (*its_read)(struct kvm *, struct vgic_its *, gpa_t, unsigned int); + }; + union { + void (*write)(struct kvm_vcpu *, gpa_t, unsigned int, long unsigned int); + void (*its_write)(struct kvm *, struct vgic_its *, gpa_t, unsigned int, long unsigned int); + }; + long unsigned int (*uaccess_read)(struct kvm_vcpu *, gpa_t, unsigned int); + union { + int (*uaccess_write)(struct kvm_vcpu *, gpa_t, unsigned int, long unsigned int); + int (*uaccess_its_write)(struct kvm *, struct vgic_its *, gpa_t, unsigned int, long unsigned int); + }; +}; + +struct vgic_state_iter { + int nr_cpus; + int nr_spis; + int nr_lpis; + int dist_id; + int vcpu_id; + long unsigned int intid; + int lpi_idx; +}; + +struct vgic_vmcr { + u32 grpen0; + u32 grpen1; + u32 ackctl; + u32 fiqen; + u32 cbpr; + u32 eoim; + u32 abpr; + u32 bpr; + u32 pmr; +}; + +struct vhost_task { + bool (*fn)(void *); + void (*handle_sigkill)(void *); + void *data; + struct completion exited; + long unsigned int flags; + struct task_struct *task; + struct mutex exit_mutex; +}; + +struct vid_pll_div { + unsigned int shift_val; + unsigned int shift_sel; + unsigned int divider; + unsigned int multiplier; +}; + +struct videomode { + long unsigned int pixelclock; + u32 hactive; + u32 hfront_porch; + u32 hback_porch; + u32 hsync_len; + u32 vactive; + u32 vfront_porch; + u32 vback_porch; + u32 vsync_len; + enum display_flags flags; +}; + +struct vif_entry_notifier_info { + struct fib_notifier_info info; + struct net_device *dev; + short unsigned int vif_index; + short unsigned int vif_flags; + u32 tb_id; +}; + +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 viommu_dev { + struct iommu_device iommu; + struct device *dev; + struct virtio_device *vdev; + struct ida domain_ids; + struct virtqueue *vqs[2]; + spinlock_t request_lock; + struct list_head requests; + void *evts; + struct iommu_domain_geometry geometry; + u64 pgsize_bitmap; + u32 first_domain; + u32 last_domain; + u32 map_flags; + u32 probe_size; +}; + +struct viommu_domain { + struct iommu_domain domain; + struct viommu_dev *viommu; + struct mutex mutex; + unsigned int id; + u32 map_flags; + spinlock_t mappings_lock; + struct rb_root_cached mappings; + long unsigned int nr_endpoints; + bool bypass; +}; + +struct viommu_endpoint { + struct device *dev; + struct viommu_dev *viommu; + struct viommu_domain *vdomain; + struct list_head resv_regions; +}; + +struct virtio_iommu_fault { + __u8 reason; + __u8 reserved[3]; + __le32 flags; + __le32 endpoint; + __u8 reserved2[4]; + __le64 address; +}; + +struct viommu_event { + union { + u32 head; + struct virtio_iommu_fault fault; + }; +}; + +struct viommu_mapping { + phys_addr_t paddr; + struct interval_tree_node iova; + u32 flags; +}; + +struct viommu_request { + struct list_head list; + void *writeback; + unsigned int write_offset; + unsigned int len; + char buf[0]; +}; + +struct viot_iommu; + +struct viot_endpoint { + union { + struct { + u16 segment_start; + u16 segment_end; + u16 bdf_start; + u16 bdf_end; + }; + u64 address; + }; + u32 endpoint_id; + struct viot_iommu *viommu; + struct list_head list; +}; + +struct viot_iommu { + unsigned int offset; + struct fwnode_handle *fwnode; + struct list_head list; +}; + +struct virtio_blk_outhdr { + __virtio32 type; + __virtio32 ioprio; + __virtio64 sector; +}; + +struct virtblk_req { + struct virtio_blk_outhdr out_hdr; + union { + u8 status; + struct { + __virtio64 sector; + u8 status; + } zone_append; + } in_hdr; + size_t in_hdr_len; + struct sg_table sg_table; + struct scatterlist sg[0]; +}; + +struct virtio_admin_cmd { + __le16 opcode; + __le16 group_type; + __le64 group_member_id; + struct scatterlist *data_sg; + struct scatterlist *result_sg; + struct completion completion; + u32 result_sg_size; + int ret; +}; + +struct virtio_admin_cmd_cap_get_data { + __le16 id; + __u8 reserved[6]; +}; + +struct virtio_admin_cmd_cap_set_data { + __le16 id; + __u8 reserved[6]; + __u8 cap_specific_data[0]; +}; + +struct virtio_admin_cmd_dev_mode_set_data { + __u8 flags; +}; + +struct virtio_admin_cmd_resource_obj_cmd_hdr { + __le16 type; + __u8 reserved[2]; + __le32 id; +}; + +struct virtio_dev_part_hdr { + __le16 part_type; + __u8 flags; + __u8 reserved; + union { + struct { + __le32 offset; + __le32 reserved; + } pci_common_cfg; + struct { + __le16 index; + __u8 reserved[6]; + } vq_index; + } selector; + __le32 length; +}; + +struct virtio_admin_cmd_dev_parts_get_data { + struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; + __u8 type; + __u8 reserved[7]; + struct virtio_dev_part_hdr hdr_list[0]; +}; + +struct virtio_admin_cmd_dev_parts_metadata_data { + struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; + __u8 type; + __u8 reserved[7]; +}; + +struct virtio_admin_cmd_dev_parts_metadata_result { + union { + struct { + __le32 size; + __le32 reserved; + } parts_size; + struct { + __le32 count; + __le32 reserved; + } hdr_list_count; + struct { + __le32 count; + __le32 reserved; + struct virtio_dev_part_hdr hdrs[0]; + } hdr_list; + }; +}; + +struct virtio_admin_cmd_hdr { + __le16 opcode; + __le16 group_type; + __u8 reserved1[12]; + __le64 group_member_id; +}; + +struct virtio_admin_cmd_query_cap_id_result { + __le64 supported_caps[1]; +}; + +struct virtio_admin_cmd_resource_obj_create_data { + struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; + __le64 flags; + __u8 resource_obj_specific_data[0]; +}; + +struct virtio_admin_cmd_status { + __le16 status; + __le16 status_qualifier; + __u8 reserved2[4]; +}; + +struct virtio_balloon_stat { + __virtio16 tag; + __virtio64 val; +} __attribute__((packed)); + +struct virtio_balloon { + struct virtio_device *vdev; + struct virtqueue *inflate_vq; + struct virtqueue *deflate_vq; + struct virtqueue *stats_vq; + struct virtqueue *free_page_vq; + struct workqueue_struct *balloon_wq; + struct work_struct report_free_page_work; + struct work_struct update_balloon_stats_work; + struct work_struct update_balloon_size_work; + spinlock_t stop_update_lock; + bool stop_update; + long unsigned int config_read_bitmap; + struct list_head free_page_list; + spinlock_t free_page_list_lock; + long unsigned int num_free_page_blocks; + u32 cmd_id_received_cache; + __virtio32 cmd_id_active; + __virtio32 cmd_id_stop; + wait_queue_head_t acked; + unsigned int num_pages; + struct balloon_dev_info vb_dev_info; + struct mutex balloon_lock; + unsigned int num_pfns; + __virtio32 pfns[256]; + struct virtio_balloon_stat stats[16]; + struct shrinker *shrinker; + struct notifier_block oom_nb; + struct virtqueue *reporting_vq; + struct page_reporting_dev_info pr_dev_info; + spinlock_t wakeup_lock; + bool processing_wakeup_event; + u32 wakeup_signal_mask; +}; + +struct virtio_balloon_config { + __le32 num_pages; + __le32 actual; + union { + __le32 free_page_hint_cmd_id; + __le32 free_page_report_cmd_id; + }; + __le32 poison_val; +}; + +struct virtio_blk_vq; + +struct virtio_blk { + struct mutex vdev_mutex; + struct virtio_device *vdev; + struct gendisk *disk; + struct blk_mq_tag_set tag_set; + struct work_struct config_work; + int index; + int num_vqs; + int io_queues[3]; + struct virtio_blk_vq *vqs; + unsigned int zone_sectors; +}; + +struct virtio_blk_geometry { + __virtio16 cylinders; + __u8 heads; + __u8 sectors; +}; + +struct virtio_blk_zoned_characteristics { + __virtio32 zone_sectors; + __virtio32 max_open_zones; + __virtio32 max_active_zones; + __virtio32 max_append_sectors; + __virtio32 write_granularity; + __u8 model; + __u8 unused2[3]; +}; + +struct virtio_blk_config { + __virtio64 capacity; + __virtio32 size_max; + __virtio32 seg_max; + struct virtio_blk_geometry geometry; + __virtio32 blk_size; + __u8 physical_block_exp; + __u8 alignment_offset; + __virtio16 min_io_size; + __virtio32 opt_io_size; + __u8 wce; + __u8 unused; + __virtio16 num_queues; + __virtio32 max_discard_sectors; + __virtio32 max_discard_seg; + __virtio32 discard_sector_alignment; + __virtio32 max_write_zeroes_sectors; + __virtio32 max_write_zeroes_seg; + __u8 write_zeroes_may_unmap; + __u8 unused1[3]; + __virtio32 max_secure_erase_sectors; + __virtio32 max_secure_erase_seg; + __virtio32 secure_erase_sector_alignment; + struct virtio_blk_zoned_characteristics zoned; +}; + +struct virtio_blk_discard_write_zeroes { + __le64 sector; + __le32 num_sectors; + __le32 flags; +}; + +struct virtio_blk_vq { + struct virtqueue *vq; + spinlock_t lock; + char name[16]; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct virtio_blk_zone_descriptor { + __virtio64 z_cap; + __virtio64 z_start; + __virtio64 z_wp; + __u8 z_type; + __u8 z_state; + __u8 reserved[38]; +}; + +struct virtio_blk_zone_report { + __virtio64 nr_zones; + __u8 reserved[56]; + struct virtio_blk_zone_descriptor zones[0]; +}; + +struct virtqueue_info; + +struct virtio_shm_region; + +struct virtio_config_ops { + void (*get)(struct virtio_device *, unsigned int, void *, unsigned int); + void (*set)(struct virtio_device *, unsigned int, const void *, unsigned int); + u32 (*generation)(struct virtio_device *); + u8 (*get_status)(struct virtio_device *); + void (*set_status)(struct virtio_device *, u8); + void (*reset)(struct virtio_device *); + int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, struct virtqueue_info *, 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 virtio_console_config { + __virtio16 cols; + __virtio16 rows; + __virtio32 max_nr_ports; + __virtio32 emerg_wr; +}; + +struct virtio_dev_parts_cap { + __u8 get_parts_resource_objects_limit; + __u8 set_parts_resource_objects_limit; +}; + +struct virtio_device_id { + __u32 device; + __u32 vendor; +}; + +struct vringh_config_ops; + +struct virtio_device { + int index; + bool failed; + bool config_core_enabled; + bool config_driver_disabled; + bool config_change_pending; + spinlock_t config_lock; + spinlock_t vqs_list_lock; + struct device dev; + struct virtio_device_id id; + const struct virtio_config_ops *config; + const struct vringh_config_ops *vringh_config; + struct list_head vqs; + u64 features; + void *priv; +}; + +struct 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 *); + int (*reset_prepare)(struct virtio_device *); + int (*reset_done)(struct virtio_device *); + void (*shutdown)(struct virtio_device *); +}; + +struct virtio_iommu_range_64 { + __le64 start; + __le64 end; +}; + +struct virtio_iommu_range_32 { + __le32 start; + __le32 end; +}; + +struct virtio_iommu_config { + __le64 page_size_mask; + struct virtio_iommu_range_64 input_range; + struct virtio_iommu_range_32 domain_range; + __le32 probe_size; + __u8 bypass; + __u8 reserved[3]; +}; + +struct virtio_iommu_probe_property { + __le16 type; + __le16 length; +}; + +struct virtio_iommu_probe_resv_mem { + struct virtio_iommu_probe_property head; + __u8 subtype; + __u8 reserved[3]; + __le64 start; + __le64 end; +}; + +struct virtio_iommu_req_head { + __u8 type; + __u8 reserved[3]; +}; + +struct virtio_iommu_req_tail { + __u8 status; + __u8 reserved[3]; +}; + +struct virtio_iommu_req_attach { + struct virtio_iommu_req_head head; + __le32 domain; + __le32 endpoint; + __le32 flags; + __u8 reserved[4]; + struct virtio_iommu_req_tail tail; +}; + +struct virtio_iommu_req_detach { + struct virtio_iommu_req_head head; + __le32 domain; + __le32 endpoint; + __u8 reserved[8]; + struct virtio_iommu_req_tail tail; +}; + +struct virtio_iommu_req_map { + struct virtio_iommu_req_head head; + __le32 domain; + __le64 virt_start; + __le64 virt_end; + __le64 phys_start; + __le32 flags; + struct virtio_iommu_req_tail tail; +}; + +struct virtio_iommu_req_probe { + struct virtio_iommu_req_head head; + __le32 endpoint; + __u8 reserved[64]; + __u8 properties[0]; +}; + +struct virtio_iommu_req_unmap { + struct virtio_iommu_req_head head; + __le32 domain; + __le64 virt_start; + __le64 virt_end; + __u8 reserved[4]; + struct virtio_iommu_req_tail tail; +}; + +struct virtio_mmio_device { + struct virtio_device vdev; + struct platform_device *pdev; + void *base; + long unsigned int version; + spinlock_t lock; + struct list_head virtqueues; +}; + +struct virtio_mmio_vq_info { + struct virtqueue *vq; + struct list_head node; +}; + +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_common_hdr { + union { + struct virtio_net_hdr hdr; + struct virtio_net_hdr_mrg_rxbuf mrg_hdr; + struct virtio_net_hdr_v1_hash hash_v1_hdr; + }; +}; + +struct virtio_net_config { + __u8 mac[6]; + __virtio16 status; + __virtio16 max_virtqueue_pairs; + __virtio16 mtu; + __le32 speed; + __u8 duplex; + __u8 rss_max_key_size; + __le16 rss_max_indirection_table_length; + __le32 supported_hash_types; +}; + +struct virtio_net_ctrl_coal { + __le32 max_packets; + __le32 max_usecs; +}; + +struct virtio_net_ctrl_coal_rx { + __le32 rx_max_packets; + __le32 rx_usecs; +}; + +struct virtio_net_ctrl_coal_tx { + __le32 tx_max_packets; + __le32 tx_usecs; +}; + +struct virtio_net_ctrl_coal_vq { + __le16 vqn; + __le16 reserved; + struct virtio_net_ctrl_coal coal; +}; + +struct virtio_net_ctrl_mac { + __virtio32 entries; + __u8 macs[0]; +}; + +struct virtio_net_ctrl_mq { + __virtio16 virtqueue_pairs; +}; + +struct virtio_net_ctrl_queue_stats { + struct { + __le16 vq_index; + __le16 reserved[3]; + __le64 types_bitmap[1]; + } stats[1]; +}; + +struct virtio_net_ctrl_rss { + __le32 hash_types; + __le16 indirection_table_mask; + __le16 unclassified_queue; + __le16 hash_cfg_reserved; + __le16 max_tx_vq; + u8 hash_key_length; + u8 key[40]; + __le16 *indirection_table; +}; + +struct virtio_net_stats_capabilities { + __le64 supported_stats_types[1]; +}; + +struct virtio_net_stats_reply_hdr { + __u8 type; + __u8 reserved; + __le16 vq_index; + __le16 reserved1; + __le16 size; +}; + +struct virtio_pci_vq_info; + +struct virtio_pci_admin_vq { + struct virtio_pci_vq_info *info; + spinlock_t lock; + u64 supported_cmds; + u64 supported_caps; + u8 max_dev_parts_objects; + struct ida dev_parts_ida; + char name[10]; + u16 vq_index; +}; + +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_legacy_device { + struct pci_dev *pci_dev; + u8 *isr; + void *ioaddr; + struct virtio_device_id id; +}; + +struct virtio_pci_modern_device { + struct pci_dev *pci_dev; + struct virtio_pci_common_cfg *common; + void *device; + void *notify_base; + resource_size_t notify_pa; + u8 *isr; + size_t notify_len; + size_t device_len; + size_t common_len; + int notify_map_cap; + u32 notify_offset_multiplier; + int modern_bars; + struct virtio_device_id id; + int (*device_id_check)(struct pci_dev *); + u64 dma_mask; +}; + +struct virtio_pci_device { + struct virtio_device vdev; + struct pci_dev *pci_dev; + union { + struct virtio_pci_legacy_device ldev; + struct virtio_pci_modern_device mdev; + }; + bool is_legacy; + u8 *isr; + spinlock_t lock; + struct list_head virtqueues; + struct list_head slow_virtqueues; + struct virtio_pci_vq_info **vqs; + struct virtio_pci_admin_vq admin_vq; + int msix_enabled; + int intx_enabled; + cpumask_var_t *msix_affinity_masks; + char (*msix_names)[256]; + unsigned int msix_vectors; + unsigned int msix_used_vectors; + bool per_vq_vectors; + struct virtqueue * (*setup_vq)(struct virtio_pci_device *, struct virtio_pci_vq_info *, unsigned int, void (*)(struct virtqueue *), const char *, bool, u16); + void (*del_vq)(struct virtio_pci_vq_info *); + u16 (*config_vector)(struct virtio_pci_device *, u16); + int (*avq_index)(struct virtio_device *, u16 *, u16 *); +}; + +struct virtio_pci_modern_common_cfg { + struct virtio_pci_common_cfg cfg; + __le16 queue_notify_data; + __le16 queue_reset; + __le16 admin_queue_index; + __le16 admin_queue_num; +}; + +struct virtio_pci_vq_info { + struct virtqueue *vq; + struct list_head node; + unsigned int msix_vector; +}; + +struct virtio_resource_obj_dev_parts { + __u8 type; + __u8 reserved[7]; +}; + +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; + int io_queues[3]; + 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: 64; +} __attribute__((packed)); + +struct virtio_scsi_config { + __virtio32 num_queues; + __virtio32 seg_max; + __virtio32 max_sectors; + __virtio32 cmd_per_lun; + __virtio32 event_info_size; + __virtio32 sense_size; + __virtio32 cdb_size; + __virtio16 max_channel; + __virtio16 max_target; + __virtio32 max_lun; +}; + +struct virtio_shm_region { + u64 addr; + u64 len; +}; + +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; + struct virtio_net_ctrl_rss rss; + bool has_cvq; + struct mutex cvq_lock; + bool any_header_sg; + u8 hdr_len; + struct delayed_work refill; + bool refill_enabled; + spinlock_t refill_lock; + struct work_struct config_work; + struct work_struct rx_mode_work; + bool rx_mode_work_enabled; + bool affinity_hint_set; + struct hlist_node node; + struct hlist_node node_dead; + struct control_buf *ctrl; + u8 duplex; + u32 speed; + bool rx_dim_enabled; + struct virtnet_interrupt_coalesce intr_coal_tx; + struct virtnet_interrupt_coalesce intr_coal_rx; + long unsigned int guest_offloads; + long unsigned int guest_offloads_capable; + struct failover *failover; + u64 device_stats_cap; +}; + +struct virtnet_rq_dma { + dma_addr_t addr; + u32 ref; + u16 len; + u16 need_sync; +}; + +struct virtnet_sq_free_stats { + u64 packets; + u64 bytes; + u64 napi_packets; + u64 napi_bytes; + u64 xsk; +}; + +struct virtnet_stat_desc { + char desc[32]; + size_t offset; + size_t qstat_offset; +}; + +struct virtnet_stats_ctx { + bool to_qstat; + u32 desc_num[3]; + u64 bitmap[3]; + u32 size[3]; + u64 *data; +}; + +struct virtqueue { + struct list_head list; + void (*callback)(struct virtqueue *); + const char *name; + struct virtio_device *vdev; + unsigned int index; + unsigned int num_free; + unsigned int num_max; + bool reset; + void *priv; +}; + +typedef void vq_callback_t(struct virtqueue *); + +struct virtqueue_info { + const char *name; + vq_callback_t *callback; + bool ctx; +}; + +struct visconti_clk_gate { + struct clk_hw hw; + struct regmap *regmap; + u32 ckon_offset; + u32 ckoff_offset; + u8 ck_idx; + u8 flags; + u32 rson_offset; + u32 rsoff_offset; + u8 rs_idx; + spinlock_t *lock; +}; + +struct visconti_clk_gate_table { + unsigned int id; + const char *name; + const struct clk_parent_data *parent_data; + u8 num_parents; + u8 flags; + u32 ckon_offset; + u32 ckoff_offset; + u8 ck_idx; + unsigned int div; + u8 rs_id; +}; + +struct visconti_clk_provider { + struct device *dev; + struct regmap *regmap; + struct clk_hw_onecell_data clk_data; +}; + +struct visconti_desc_pin { + struct pinctrl_pin_desc pin; + unsigned int dsel_offset; + unsigned int dsel_shift; + unsigned int pude_offset; + unsigned int pudsel_offset; + unsigned int pud_shift; +}; + +struct visconti_fixed_clk { + unsigned int id; + const char *name; + const char *parent; + long unsigned int flag; + unsigned int mult; + unsigned int div; +}; + +struct visconti_mux { + unsigned int offset; + unsigned int mask; + unsigned int val; +}; + +struct visconti_pcie { + struct dw_pcie pci; + void *ulreg_base; + void *smu_base; + void *mpu_base; + struct clk *refclk; + struct clk *coreclk; + struct clk *auxclk; +}; + +struct visconti_pin_function { + const char *name; + const char * const *groups; + unsigned int nr_groups; +}; + +struct visconti_pin_group { + const char *name; + const unsigned int *pins; + unsigned int nr_pins; + struct visconti_mux mux; +}; + +struct visconti_pinctrl_devdata; + +struct visconti_pinctrl { + void *base; + struct device *dev; + struct pinctrl_dev *pctl; + struct pinctrl_desc pctl_desc; + const struct visconti_pinctrl_devdata *devdata; + spinlock_t lock; +}; + +struct visconti_pinctrl_devdata { + const struct visconti_desc_pin *pins; + unsigned int nr_pins; + const struct visconti_pin_group *groups; + unsigned int nr_groups; + const struct visconti_pin_function *functions; + unsigned int nr_functions; + const struct visconti_mux *gpio_mux; + void (*unlock)(void *); +}; + +struct visconti_pll_rate_table; + +struct visconti_pll_provider; + +struct visconti_pll { + struct clk_hw hw; + void *pll_base; + spinlock_t *lock; + long unsigned int flags; + const struct visconti_pll_rate_table *rate_table; + size_t rate_count; + struct visconti_pll_provider *ctx; +}; + +struct visconti_pll_info { + unsigned int id; + const char *name; + const char *parent; + long unsigned int base_reg; + const struct visconti_pll_rate_table *rate_table; +}; + +struct visconti_pll_provider { + void *reg_base; + struct device_node *node; + struct clk_hw_onecell_data clk_data; +}; + +struct visconti_pll_rate_table { + long unsigned int rate; + unsigned int dacen; + unsigned int dsmen; + unsigned int refdiv; + long unsigned int intin; + long unsigned int fracin; + unsigned int postdiv1; + unsigned int postdiv2; +}; + +struct visconti_reset_data; + +struct visconti_reset { + struct reset_controller_dev rcdev; + struct regmap *regmap; + const struct visconti_reset_data *resets; + spinlock_t *lock; +}; + +struct visconti_reset_data { + u32 rson_offset; + u32 rsoff_offset; + u8 rs_idx; +}; + +struct vl_config { + int __default_vl; +}; + +struct vl_info { + enum vec_type type; + const char *name; + int min_vl; + int max_vl; + int max_virtualisable_vl; + long unsigned int vq_map[8]; + long unsigned int vq_partial_map[8]; +}; + +struct vlan_priority_tci_mapping; + +struct vlan_pcpu_stats; + +struct vlan_dev_priv { + unsigned int nr_ingress_mappings; + u32 ingress_priority_map[8]; + unsigned int nr_egress_mappings; + struct vlan_priority_tci_mapping *egress_priority_map[16]; + __be16 vlan_proto; + u16 vlan_id; + u16 flags; + struct net_device *real_dev; + netdevice_tracker dev_tracker; + unsigned char real_dev_addr[6]; + struct proc_dir_entry *dent; + struct vlan_pcpu_stats *vlan_pcpu_stats; + struct netpoll *netpoll; +}; + +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 vlan_group { + unsigned int nr_vlan_devs; + struct hlist_node hlist; + struct net_device **vlan_devices_arrays[16]; +}; + +struct vlan_hdr { + __be16 h_vlan_TCI; + __be16 h_vlan_encapsulated_proto; +}; + +struct vlan_info { + struct net_device *real_dev; + struct vlan_group grp; + struct list_head vid_list; + unsigned int nr_vids; + struct callback_head rcu; +}; + +struct vlan_pcpu_stats { + u64_stats_t rx_packets; + u64_stats_t rx_bytes; + u64_stats_t rx_multicast; + u64_stats_t tx_packets; + u64_stats_t tx_bytes; + struct u64_stats_sync syncp; + u32 rx_errors; + u32 tx_dropped; +}; + +struct vlan_priority_tci_mapping { + u32 priority; + u16 vlan_qos; + struct vlan_priority_tci_mapping *next; +}; + +struct vlan_vid { + struct list_head list; + __be16 proto; + u16 vid; +}; + +struct vlan_vid_info { + struct list_head list; + __be16 proto; + u16 vid; + int refcount; +}; + +struct vm_userfaultfd_ctx { + struct userfaultfd_ctx *ctx; +}; + +struct vma_lock; + +struct vma_numab_state; + +struct vm_area_struct { + union { + struct { + long unsigned int vm_start; + long unsigned int vm_end; + }; + struct callback_head vm_rcu; + }; + struct mm_struct *vm_mm; + pgprot_t vm_page_prot; + union { + const vm_flags_t vm_flags; + vm_flags_t __vm_flags; + }; + bool detached; + unsigned int vm_lock_seq; + struct vma_lock *vm_lock; + struct { + struct rb_node rb; + long unsigned int rb_subtree_last; + } shared; + struct list_head anon_vma_chain; + struct anon_vma *anon_vma; + const struct vm_operations_struct *vm_ops; + long unsigned int vm_pgoff; + struct file *vm_file; + void *vm_private_data; + struct anon_vma_name *anon_name; + atomic_long_t swap_readahead_info; + struct mempolicy *vm_policy; + struct vma_numab_state *numab_state; + struct vm_userfaultfd_ctx vm_userfaultfd_ctx; +}; + +struct vm_event_state { + long unsigned int event[114]; +}; + +struct vm_fault { + const struct { + struct vm_area_struct *vma; + gfp_t gfp_mask; + long unsigned int pgoff; + long unsigned int address; + long unsigned int 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 vm_operations_struct { + void (*open)(struct vm_area_struct *); + void (*close)(struct vm_area_struct *); + int (*may_split)(struct vm_area_struct *, long unsigned int); + int (*mremap)(struct vm_area_struct *); + int (*mprotect)(struct vm_area_struct *, long unsigned int, long unsigned int, long unsigned int); + vm_fault_t (*fault)(struct vm_fault *); + vm_fault_t (*huge_fault)(struct vm_fault *, unsigned int); + vm_fault_t (*map_pages)(struct vm_fault *, long unsigned int, long unsigned int); + long unsigned int (*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 *, long unsigned int, void *, int, int); + const char * (*name)(struct vm_area_struct *); + int (*set_policy)(struct vm_area_struct *, struct mempolicy *); + struct mempolicy * (*get_policy)(struct vm_area_struct *, long unsigned int, long unsigned int *); + struct page * (*find_special_page)(struct vm_area_struct *, long unsigned int); +}; + +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 *); + void (*close)(const struct vm_special_mapping *, struct vm_area_struct *); +}; + +struct vm_stack { + struct callback_head rcu; + struct vm_struct *stack_vm_area; +}; + +struct vm_struct { + struct vm_struct *next; + void *addr; + long unsigned int size; + long unsigned int flags; + struct page **pages; + unsigned int page_order; + unsigned int nr_pages; + phys_addr_t phys_addr; + const void *caller; + long unsigned int requested_size; +}; + +struct vm_unmapped_area_info { + long unsigned int flags; + long unsigned int length; + long unsigned int low_limit; + long unsigned int high_limit; + long unsigned int align_mask; + long unsigned int align_offset; + long unsigned int start_gap; +}; + +struct vma_list { + struct vm_area_struct *vma; + struct list_head head; + refcount_t mmap_count; +}; + +struct vma_lock { + struct rw_semaphore lock; +}; + +struct vma_merge_struct { + struct mm_struct *mm; + struct vma_iterator *vmi; + long unsigned int pgoff; + struct vm_area_struct *prev; + struct vm_area_struct *next; + struct vm_area_struct *vma; + long unsigned int start; + long unsigned int end; + long unsigned int flags; + struct file *file; + struct anon_vma *anon_vma; + struct mempolicy *policy; + struct vm_userfaultfd_ctx uffd_ctx; + struct anon_vma_name *anon_name; + enum vma_merge_flags merge_flags; + enum vma_merge_state state; + bool give_up_on_oom: 1; +}; + +struct vma_numab_state { + long unsigned int next_scan; + long unsigned int pids_active_reset; + long unsigned int pids_active[2]; + int start_scan_seq; + int prev_scan_seq; +}; + +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 vmap_area { + long unsigned int va_start; + long unsigned int va_end; + struct rb_node rb_node; + struct list_head list; + union { + long unsigned int subtree_max_size; + struct vm_struct *vm; + }; + long unsigned int flags; +}; + +struct vmap_block { + spinlock_t lock; + struct vmap_area *va; + long unsigned int free; + long unsigned int dirty; + long unsigned int used_map[16]; + long unsigned int dirty_min; + long unsigned int dirty_max; + struct list_head free_list; + struct callback_head callback_head; + struct list_head purge; + unsigned int cpu; +}; + +struct vmap_block_queue { + spinlock_t lock; + struct list_head free; + struct xarray vmap_blocks; +}; + +struct vmap_pool { + struct list_head head; + long unsigned int len; +}; + +struct vmap_node { + struct vmap_pool pool[256]; + spinlock_t pool_lock; + bool skip_populate; + struct rb_list busy; + struct rb_list lazy; + struct list_head purge_list; + struct work_struct purge_work; + long unsigned int nr_purged; +}; + +struct vmap_pfn_data { + long unsigned int *pfns; + pgprot_t prot; + unsigned int idx; +}; + +struct vmcore_cb { + bool (*pfn_is_ram)(struct vmcore_cb *, long unsigned int); + int (*get_device_ram)(struct vmcore_cb *, struct list_head *); + struct list_head next; +}; + +struct vmcore_range { + struct list_head list; + long long unsigned int paddr; + long long unsigned int size; + loff_t offset; +}; + +struct vmcoredd_data { + char dump_name[44]; + unsigned int size; + int (*vmcoredd_callback)(struct vmcoredd_data *, void *); +}; + +struct vmcoredd_header { + __u32 n_namesz; + __u32 n_descsz; + __u32 n_type; + __u8 name[8]; + __u8 dump_name[44]; +}; + +struct vmcoredd_node { + struct list_head list; + void *buf; + unsigned int size; +}; + +struct vme_callback { + void (*func)(int, int, void *); + void *priv_data; +}; + +struct vme_irq { + int count; + struct vme_callback callback[256]; +}; + +struct vme_slave_resource; + +struct vme_master_resource; + +struct vme_dma_list; + +struct vme_dma_attr; + +struct vme_lm_resource; + +struct vme_bridge { + char name[16]; + int num; + struct list_head master_resources; + struct list_head slave_resources; + struct list_head dma_resources; + struct list_head lm_resources; + struct list_head vme_error_handlers; + struct list_head devices; + struct device *parent; + void *driver_priv; + struct list_head bus_list; + struct vme_irq irq[7]; + struct mutex irq_mtx; + int (*slave_get)(struct vme_slave_resource *, int *, long long unsigned int *, long long unsigned int *, dma_addr_t *, u32 *, u32 *); + int (*slave_set)(struct vme_slave_resource *, int, long long unsigned int, long long unsigned int, dma_addr_t, u32, u32); + int (*master_get)(struct vme_master_resource *, int *, long long unsigned int *, long long unsigned int *, u32 *, u32 *, u32 *); + int (*master_set)(struct vme_master_resource *, int, long long unsigned int, long long unsigned int, u32, u32, u32); + ssize_t (*master_read)(struct vme_master_resource *, void *, size_t, loff_t); + ssize_t (*master_write)(struct vme_master_resource *, void *, size_t, loff_t); + unsigned int (*master_rmw)(struct vme_master_resource *, unsigned int, unsigned int, unsigned int, loff_t); + int (*dma_list_add)(struct vme_dma_list *, struct vme_dma_attr *, struct vme_dma_attr *, size_t); + int (*dma_list_exec)(struct vme_dma_list *); + int (*dma_list_empty)(struct vme_dma_list *); + void (*irq_set)(struct vme_bridge *, int, int, int); + int (*irq_generate)(struct vme_bridge *, int, int); + int (*lm_set)(struct vme_lm_resource *, long long unsigned int, u32, u32); + int (*lm_get)(struct vme_lm_resource *, long long unsigned int *, u32 *, u32 *); + int (*lm_attach)(struct vme_lm_resource *, int, void (*)(void *), void *); + int (*lm_detach)(struct vme_lm_resource *, int); + int (*slot_get)(struct vme_bridge *); + void * (*alloc_consistent)(struct device *, size_t, dma_addr_t *); + void (*free_consistent)(struct device *, size_t, void *, dma_addr_t); +}; + +struct vme_dev { + int num; + struct vme_bridge *bridge; + struct device dev; + struct list_head drv_list; + struct list_head bridge_list; +}; + +struct vme_dma_attr { + u32 type; + void *private; +}; + +struct vme_dma_resource; + +struct vme_dma_list { + struct list_head list; + struct vme_dma_resource *parent; + struct list_head entries; + struct mutex mtx; +}; + +struct vme_dma_pattern { + u32 pattern; + u32 type; +}; + +struct vme_dma_pci { + dma_addr_t address; +}; + +struct vme_dma_resource { + struct list_head list; + struct vme_bridge *parent; + struct mutex mtx; + int locked; + int number; + struct list_head pending; + struct list_head running; + u32 route_attr; +}; + +struct vme_dma_vme { + long long unsigned int address; + u32 aspace; + u32 cycle; + u32 dwidth; +}; + +struct vme_driver { + const char *name; + int (*match)(struct vme_dev *); + int (*probe)(struct vme_dev *); + void (*remove)(struct vme_dev *); + struct device_driver driver; + struct list_head devices; +}; + +struct vme_error_handler { + struct list_head list; + long long unsigned int start; + long long unsigned int end; + long long unsigned int first_error; + u32 aspace; + unsigned int num_errors; +}; + +struct vme_lm_resource { + struct list_head list; + struct vme_bridge *parent; + struct mutex mtx; + int locked; + int number; + int monitors; +}; + +struct vme_master_resource { + struct list_head list; + struct vme_bridge *parent; + spinlock_t lock; + int locked; + int number; + u32 address_attr; + u32 cycle_attr; + u32 width_attr; + struct resource bus_resource; + void *kern_base; +}; + +struct vme_resource { + enum vme_resource_type type; + struct list_head *entry; +}; + +struct vme_slave_resource { + struct list_head list; + struct vme_bridge *parent; + struct mutex mtx; + int locked; + int number; + u32 address_attr; + u32 cycle_attr; +}; + +struct vmpressure_event { + struct eventfd_ctx *efd; + enum vmpressure_levels level; + enum vmpressure_modes mode; + struct list_head node; +}; + +struct voltage_info { + unsigned int version; + unsigned int num_domains; + struct scmi_voltage_info *domains; +}; + +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_avail { + __virtio16 flags; + __virtio16 idx; + __virtio16 ring[0]; +}; + +struct vring_desc { + __virtio64 addr; + __virtio32 len; + __virtio16 flags; + __virtio16 next; +}; + +struct vring_desc_extra { + dma_addr_t addr; + u32 len; + u16 flags; + u16 next; +}; + +struct vring_packed_desc; + +struct vring_desc_state_packed { + void *data; + struct vring_packed_desc *indir_desc; + u16 num; + u16 last; +}; + +struct vring_desc_state_split { + void *data; + struct vring_desc *indir_desc; +}; + +struct vring_packed_desc { + __le64 addr; + __le32 len; + __le16 id; + __le16 flags; +}; + +struct vring_packed_desc_event { + __le16 off_wrap; + __le16 flags; +}; + +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_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_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; +}; + +struct vt_consize { + short unsigned int v_rows; + short unsigned int v_cols; + short unsigned int v_vlin; + short unsigned int v_clin; + short unsigned int v_vcol; + short unsigned int v_ccol; +}; + +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 vt_notifier_param { + struct vc_data *vc; + unsigned int c; +}; + +struct vt_setactivate { + unsigned int console; + struct vt_mode mode; +}; + +struct vt_sizes { + short unsigned int v_rows; + short unsigned int v_cols; + short unsigned int v_scrollsize; +}; + +struct vt_spawn_console { + spinlock_t lock; + struct pid *pid; + int sig; +}; + +struct vt_stat { + short unsigned int v_active; + short unsigned int v_signal; + short unsigned int v_state; +}; + +struct vxlan_metadata { + u32 gbp; +}; + +struct wait_bit_key { + long unsigned int *flags; + int bit_nr; + long unsigned int timeout; +}; + +struct wait_bit_queue_entry { + struct wait_bit_key key; + struct wait_queue_entry wq_entry; +}; + +struct wait_exceptional_entry_queue { + wait_queue_entry_t wait; + struct exceptional_entry_key key; +}; + +struct wait_page_key { + struct folio *folio; + int bit_nr; + int page_match; +}; + +struct wake_irq { + struct device *dev; + unsigned int status; + int irq; + const char *name; +}; + +struct wakelock { + char *name; + struct rb_node node; + struct wakeup_source *ws; + struct list_head lru; +}; + +struct wakeup_source { + const char *name; + int id; + struct list_head entry; + spinlock_t lock; + struct wake_irq *wakeirq; + struct timer_list timer; + long unsigned int timer_expires; + ktime_t total_time; + ktime_t max_time; + ktime_t last_time; + ktime_t start_prevent_time; + ktime_t prevent_sleep_time; + long unsigned int event_count; + long unsigned int active_count; + long unsigned int relax_count; + long unsigned int expire_count; + long unsigned int wakeup_count; + struct device *dev; + bool active: 1; + bool autosleep_enabled: 1; +}; + +struct walk_rcec_data { + struct pci_dev *rcec; + int (*user_callback)(struct pci_dev *, void *); + void *user_data; +}; + +struct warn_args { + const char *fmt; + va_list args; +}; + +struct watch { + union { + struct callback_head rcu; + u32 info_id; + }; + struct watch_queue *queue; + struct hlist_node queue_node; + struct watch_list *watch_list; + struct hlist_node list_node; + const struct cred *cred; + void *private; + u64 id; + struct kref usage; +}; + +struct xenbus_watch { + struct list_head list; + const char *node; + unsigned int nr_pending; + bool (*will_handle)(struct xenbus_watch *, const char *, const char *); + void (*callback)(struct xenbus_watch *, const char *, const char *); +}; + +struct xenbus_file_priv; + +struct watch_adapter { + struct list_head list; + struct xenbus_watch watch; + struct xenbus_file_priv *dev_data; + char *token; +}; + +struct watch_type_filter { + enum watch_notification_type type; + __u32 subtype_filter[1]; + __u32 info_filter; + __u32 info_mask; +}; + +struct watch_filter { + union { + struct callback_head rcu; + long unsigned int type_filter[1]; + }; + u32 nr_filters; + struct watch_type_filter filters[0]; +}; + +struct watch_list { + struct callback_head rcu; + struct hlist_head watchers; + void (*release_watch)(struct watch *); + spinlock_t lock; +}; + +struct watch_notification_type_filter { + __u32 type; + __u32 info_filter; + __u32 info_mask; + __u32 subtype_filter[8]; +}; + +struct watch_notification_filter { + __u32 nr_filters; + __u32 __reserved; + struct watch_notification_type_filter filters[0]; +}; + +struct watch_notification_removal { + struct watch_notification watch; + __u64 id; +}; + +struct watch_queue { + struct callback_head rcu; + struct watch_filter *filter; + struct pipe_inode_info *pipe; + struct hlist_head watches; + struct page **notes; + long unsigned int *notes_bitmap; + struct kref usage; + spinlock_t lock; + unsigned int nr_notes; + unsigned int nr_pages; +}; + +struct watchdog_core_data { + struct device dev; + struct cdev cdev; + struct watchdog_device *wdd; + struct mutex lock; + ktime_t last_keepalive; + ktime_t last_hw_keepalive; + ktime_t open_deadline; + struct hrtimer timer; + struct kthread_work work; + long unsigned int status; +}; + +struct watchdog_governor { + const char name[20]; + void (*pretimeout)(struct watchdog_device *); +}; + +struct watchdog_info { + __u32 options; + __u32 firmware_version; + __u8 identity[32]; +}; + +struct watchdog_ops { + struct module *owner; + int (*start)(struct watchdog_device *); + int (*stop)(struct watchdog_device *); + int (*ping)(struct watchdog_device *); + unsigned int (*status)(struct watchdog_device *); + int (*set_timeout)(struct watchdog_device *, unsigned int); + int (*set_pretimeout)(struct watchdog_device *, unsigned int); + unsigned int (*get_timeleft)(struct watchdog_device *); + int (*restart)(struct watchdog_device *, long unsigned int, void *); + long int (*ioctl)(struct watchdog_device *, unsigned int, long unsigned int); +}; + +struct watchdog_pretimeout { + struct watchdog_device *wdd; + struct list_head entry; +}; + +struct wb_lock_cookie { + bool locked; + long unsigned int flags; +}; + +struct wb_stats { + long unsigned int nr_dirty; + long unsigned int nr_io; + long unsigned int nr_more_io; + long unsigned int nr_dirty_time; + long unsigned int nr_writeback; + long unsigned int nr_reclaimable; + long unsigned int nr_dirtied; + long unsigned int nr_written; + long unsigned int dirty_thresh; + long unsigned int wb_thresh; +}; + +struct wb_writeback_work { + long int 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 wbt_wait_data { + struct rq_wb *rwb; + enum wbt_flags wb_acct; + blk_opf_t opf; +}; + +struct wchan_info { + long unsigned int pc; + int count; +}; + +struct wci_ent { + work_func_t func; + atomic64_t cnt; + struct hlist_node hash_node; +}; + +struct weim_priv { + void *base; + struct cs_timing_state timing_state; +}; + +struct win_certificate { + uint32_t length; + uint16_t revision; + uint16_t cert_type; +}; + +struct wiphy_iftype_akm_suites; + +struct wiphy_wowlan_support; + +struct wiphy_iftype_ext_capab; + +struct wiphy_coalesce_support; + +struct wiphy_vendor_command; + +struct wiphy_radio; + +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[9]; + 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 *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 iw_handler_def *wext; + 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; + long unsigned int 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; + u16 hw_timestamp_max_peers; + int n_radio; + const struct wiphy_radio *radio; + char priv[0]; +}; + +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 wiphy_iftype_akm_suites { + u16 iftypes_mask; + const u32 *akm_suites; + int n_akm_suites; +}; + +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 wiphy_radio_freq_range; + +struct wiphy_radio { + const struct wiphy_radio_freq_range *freq_range; + int n_freq_range; + const struct ieee80211_iface_combination *iface_combinations; + int n_iface_combinations; + u32 antenna_mask; +}; + +struct wiphy_radio_freq_range { + u32 start_freq; + u32 end_freq; +}; + +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, long unsigned int *); + const struct nla_policy *policy; + unsigned int maxattr; +}; + +struct wiphy_work; + +typedef void (*wiphy_work_func_t)(struct wiphy *, struct wiphy_work *); + +struct wiphy_work { + struct list_head entry; + wiphy_work_func_t func; +}; + +struct 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 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 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; + bool use_4addr; + bool is_running; + bool registered; + bool registering; + short: 0; + u8 address[6]; + struct cfg80211_conn *conn; + struct cfg80211_cached_keys *connect_keys; + 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; + struct { + struct cfg80211_ibss_params ibss; + struct cfg80211_connect_params connect; + struct cfg80211_cached_keys *keys; + const u8 *ie; + size_t ie_len; + u8 bssid[6]; + u8 prev_bssid[6]; + u8 ssid[32]; + s8 default_key; + s8 default_mgmt_key; + bool prev_bssid_valid; + } wext; + struct wiphy_work cqm_rssi_work; + struct cfg80211_cqm_config *cqm_config; + struct list_head pmsr_list; + spinlock_t pmsr_lock; + struct work_struct pmsr_free_wk; + long unsigned int unprot_beacon_reported; + union { + struct { + u8 connected_addr[6]; + u8 ssid[32]; + u8 ssid_len; + long: 0; + } 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; + }; + bool cac_started; + long unsigned int cac_start_time; + unsigned int cac_time_ms; + } links[15]; + u16 valid_links; + u32 radio_mask; +}; + +struct wm831x; + +struct wm831x_backlight_pdata; + +struct wm831x_backup_pdata; + +struct wm831x_battery_pdata; + +struct wm831x_touch_pdata; + +struct wm831x_watchdog_pdata; + +struct wm831x_status_pdata; + +struct wm831x_pdata { + int wm831x_num; + int (*pre_init)(struct wm831x *); + int (*post_init)(struct wm831x *); + bool irq_cmos; + bool disable_touch; + bool soft_shutdown; + int irq_base; + int gpio_base; + int gpio_defaults[16]; + struct wm831x_backlight_pdata *backlight; + struct wm831x_backup_pdata *backup; + struct wm831x_battery_pdata *battery; + struct wm831x_touch_pdata *touch; + struct wm831x_watchdog_pdata *watchdog; + struct wm831x_status_pdata *status[2]; + struct regulator_init_data *dcdc[4]; + struct regulator_init_data *epe[2]; + struct regulator_init_data *ldo[11]; + struct regulator_init_data *isink[2]; +}; + +typedef int (*wm831x_auxadc_read_fn)(struct wm831x *, enum wm831x_auxadc); + +struct wm831x { + struct mutex io_lock; + struct device *dev; + struct regmap *regmap; + struct wm831x_pdata pdata; + enum wm831x_parent type; + int irq; + struct mutex irq_lock; + struct irq_domain *irq_domain; + int irq_masks_cur[5]; + int irq_masks_cache[5]; + bool soft_shutdown; + unsigned int has_gpio_ena: 1; + unsigned int has_cs_sts: 1; + unsigned int charger_irq_wake: 1; + int num_gpio; + int gpio_update[16]; + bool gpio_level_high[16]; + bool gpio_level_low[16]; + struct mutex auxadc_lock; + struct list_head auxadc_pending; + u16 auxadc_active; + wm831x_auxadc_read_fn auxadc_read; + struct mutex key_lock; + unsigned int locked: 1; +}; + +struct wm831x_auxadc_req { + struct list_head list; + enum wm831x_auxadc input; + int val; + struct completion done; +}; + +struct wm831x_backlight_pdata { + int isink; + int max_uA; +}; + +struct wm831x_backup_pdata { + int charger_enable; + int no_constant_voltage; + int vlim; + int ilim; +}; + +struct wm831x_battery_pdata { + int enable; + int fast_enable; + int off_mask; + int trickle_ilim; + int vsel; + int eoc_iterm; + int fast_ilim; + int timeout; +}; + +struct wm831x_irq_data { + int primary; + int reg; + int mask; +}; + +struct wm831x_status_pdata { + enum wm831x_status_src default_src; + const char *name; + const char *default_trigger; +}; + +struct wm831x_touch_pdata { + int fivewire; + int isel; + int rpu; + int pressure; + unsigned int data_irq; + int data_irqf; + unsigned int pd_irq; + int pd_irqf; +}; + +struct wm831x_watchdog_pdata { + enum wm831x_watchdog_action primary; + enum wm831x_watchdog_action secondary; + unsigned int software: 1; +}; + +struct wm8350_audio_platform_data; + +struct wm8350_codec { + struct platform_device *pdev; + struct wm8350_audio_platform_data *platform_data; +}; + +struct wm8350_gpio { + struct platform_device *pdev; +}; + +struct wm8350_hwmon { + struct platform_device *pdev; + struct device *classdev; +}; + +struct wm8350_led { + struct platform_device *pdev; + struct work_struct work; + spinlock_t value_lock; + enum led_brightness value; + struct led_classdev cdev; + int max_uA_index; + int enabled; + struct regulator *isink; + struct regulator_consumer_supply isink_consumer; + struct regulator_init_data isink_init; + struct regulator *dcdc; + struct regulator_consumer_supply dcdc_consumer; + struct regulator_init_data dcdc_init; +}; + +struct wm8350_pmic { + int max_dcdc; + int max_isink; + int isink_A_dcdc; + int isink_B_dcdc; + u16 dcdc1_hib_mode; + u16 dcdc3_hib_mode; + u16 dcdc4_hib_mode; + u16 dcdc6_hib_mode; + struct platform_device *pdev[12]; + struct wm8350_led led[2]; +}; + +struct wm8350_charger_policy; + +struct wm8350_power { + struct platform_device *pdev; + struct power_supply *battery; + struct power_supply *usb; + struct power_supply *ac; + struct wm8350_charger_policy *policy; + int rev_g_coeff; +}; + +struct wm8350_rtc { + struct platform_device *pdev; + struct rtc_device *rtc; + int alarm_enabled; + int update_enabled; +}; + +struct wm8350_wdt { + struct platform_device *pdev; +}; + +struct wm8350 { + struct device *dev; + struct regmap *regmap; + bool unlocked; + struct mutex auxadc_mutex; + struct completion auxadc_done; + struct mutex irq_lock; + int chip_irq; + int irq_base; + u16 irq_masks[7]; + struct wm8350_codec codec; + struct wm8350_gpio gpio; + struct wm8350_hwmon hwmon; + struct wm8350_pmic pmic; + struct wm8350_power power; + struct wm8350_rtc rtc; + struct wm8350_wdt wdt; +}; + +struct wm8350_audio_platform_data { + int vmid_discharge_msecs; + int drain_msecs; + int cap_discharge_msecs; + int vmid_charge_msecs; + u32 vmid_s_curve: 2; + u32 dis_out4: 2; + u32 dis_out3: 2; + u32 dis_out2: 2; + u32 dis_out1: 2; + u32 vroi_out4: 1; + u32 vroi_out3: 1; + u32 vroi_out2: 1; + u32 vroi_out1: 1; + u32 vroi_enable: 1; + u32 codec_current_on: 2; + u32 codec_current_standby: 2; + u32 codec_current_charge: 2; +}; + +struct wm8350_charger_policy { + int eoc_mA; + int charge_mV; + int fast_limit_mA; + int fast_limit_USB_mA; + int charge_timeout; + int trickle_start_mV; + int trickle_charge_mA; + int trickle_charge_USB_mA; +}; + +struct wm8350_irq_data { + int primary; + int reg; + int mask; + int primary_only; +}; + +struct wm8350_platform_data { + int (*init)(struct wm8350 *); + int irq_high; + int irq_base; + int gpio_base; +}; + +struct wm8350_reg_access { + u16 readable; + u16 writable; + u16 vol; +}; + +struct wm8400 { + struct device *dev; + struct regmap *regmap; + struct platform_device regulators[6]; +}; + +struct wm8400_platform_data { + int (*platform_init)(struct device *); +}; + +struct wol_reply_data { + struct ethnl_reply_data base; + struct ethtool_wolinfo wol; + bool show_sopass; +}; + +struct word_at_a_time { + const long unsigned int one_bits; + const long unsigned int high_bits; +}; + +struct work_for_cpu { + struct work_struct work; + long int (*fn)(void *); + void *arg; + long int ret; +}; + +struct work_offq_data { + u32 pool_id; + u32 disable; + u32 flags; +}; + +struct work_queue_wrapper { + struct work_struct work; + struct scsi_device *sdev; +}; + +struct worker { + union { + struct list_head entry; + struct hlist_node hentry; + }; + struct work_struct *current_work; + work_func_t current_func; + struct pool_workqueue *current_pwq; + u64 current_at; + unsigned int current_color; + int sleeping; + work_func_t last_func; + struct list_head scheduled; + struct task_struct *task; + struct worker_pool *pool; + struct list_head node; + long unsigned int last_active; + unsigned int flags; + int id; + char desc[32]; + struct workqueue_struct *rescue_wq; +}; + +struct worker_pool { + raw_spinlock_t lock; + int cpu; + int node; + int id; + unsigned int flags; + long unsigned int watchdog_ts; + bool cpu_stall; + int nr_running; + struct list_head worklist; + int nr_workers; + int nr_idle; + struct list_head idle_list; + struct timer_list idle_timer; + struct work_struct idle_cull_work; + struct timer_list mayday_timer; + struct hlist_head busy_hash[64]; + struct worker *manager; + struct list_head workers; + struct 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; + cpumask_var_t __pod_cpumask; + bool affn_strict; + enum wq_affn_scope affn_scope; + bool ordered; +}; + +struct wq_flusher; + +struct wq_device; + +struct wq_node_nr_active; + +struct workqueue_struct { + struct list_head pwqs; + struct list_head list; + struct mutex mutex; + int work_color; + int flush_color; + atomic_t nr_pwqs_to_flush; + struct wq_flusher *first_flusher; + struct list_head flusher_queue; + struct list_head flusher_overflow; + struct list_head maydays; + struct worker *rescuer; + int nr_drainers; + int max_active; + int min_active; + int saved_max_active; + int saved_min_active; + struct workqueue_attrs *unbound_attrs; + struct pool_workqueue *dfl_pwq; + struct wq_device *wq_dev; + char name[32]; + struct callback_head rcu; + long: 64; + long: 64; + unsigned int flags; + struct pool_workqueue **cpu_pwq; + struct wq_node_nr_active *node_nr_active[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct workspace { + void *mem; + size_t mem_size; + size_t window_size; +}; + +struct wpan_phy; + +struct wpan_dev_header_ops; + +struct wpan_dev { + struct wpan_phy *wpan_phy; + int iftype; + struct list_head list; + struct net_device *netdev; + const struct wpan_dev_header_ops *header_ops; + struct net_device *lowpan_dev; + u32 identifier; + __le16 pan_id; + __le16 short_addr; + __le64 extended_addr; + atomic_t bsn; + atomic_t dsn; + u8 min_be; + u8 max_be; + u8 csma_retries; + s8 frame_retries; + bool lbt; + bool ackreq; + struct mutex association_lock; + struct ieee802154_pan_device *parent; + struct list_head children; + unsigned int max_associations; + unsigned int nchildren; +}; + +struct wpan_dev_header_ops { + int (*create)(struct sk_buff *, struct net_device *, const struct ieee802154_addr *, const struct ieee802154_addr *, unsigned int); +}; + +struct wpan_phy_supported { + u32 channels[32]; + u32 cca_modes; + u32 cca_opts; + u32 iftypes; + enum nl802154_supported_bool_states lbt; + u8 min_minbe; + u8 max_minbe; + u8 min_maxbe; + u8 max_maxbe; + u8 min_csma_backoffs; + u8 max_csma_backoffs; + s8 min_frame_retries; + s8 max_frame_retries; + size_t tx_powers_size; + size_t cca_ed_levels_size; + const s32 *tx_powers; + const s32 *cca_ed_levels; +}; + +struct wpan_phy_cca { + enum nl802154_cca_modes mode; + enum nl802154_cca_opts opt; +}; + +struct wpan_phy { + const void *privid; + long unsigned int flags; + u8 current_channel; + u8 current_page; + struct wpan_phy_supported supported; + s32 transmit_power; + struct wpan_phy_cca cca; + __le64 perm_extended_addr; + s32 cca_ed_level; + u32 symbol_duration; + u16 lifs_period; + u16 sifs_period; + struct device dev; + possible_net_t _net; + spinlock_t queue_lock; + atomic_t ongoing_txs; + atomic_t hold_txs; + wait_queue_head_t sync_txq; + enum ieee802154_filtering_level filtering; + long: 0; + char priv[0]; +}; + +struct wq_barrier { + struct work_struct work; + struct completion done; + struct task_struct *task; +}; + +struct wq_device { + struct workqueue_struct *wq; + struct device dev; +}; + +struct wq_drain_dead_softirq_work { + struct work_struct work; + struct worker_pool *pool; + struct completion done; +}; + +struct wq_flusher { + struct list_head list; + int flush_color; + struct completion done; +}; + +struct wq_node_nr_active { + int max; + atomic_t nr; + raw_spinlock_t lock; + struct list_head pending_pwqs; +}; + +struct wq_pod_type { + int nr_pods; + cpumask_var_t *pod_cpus; + int *pod_node; + int *cpu_pod; +}; + +typedef void (*swap_func_t)(void *, void *, int); + +struct wrapper { + cmp_func_t cmp; + swap_func_t swap; +}; + +struct wrapper_priv_data { + struct dwc2_hsotg *hsotg; +}; + +struct writeback_control { + long int nr_to_write; + long int 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_netfs_wb: 1; + unsigned int no_cgroup_owner: 1; + struct swap_iocb **swap_plug; + struct list_head *list; + struct folio_batch fbatch; + long unsigned int index; + int saved_err; + struct bdi_writeback *wb; + struct inode *inode; + int wb_id; + int wb_lcand_id; + int wb_tcand_id; + size_t wb_bytes; + size_t wb_lcand_bytes; + size_t wb_tcand_bytes; +}; + +struct writer { + uint8_t *buffer; + uint8_t previous_byte; + size_t buffer_pos; + int bufsize; + size_t global_pos; + long int (*flush)(void *, long unsigned int); + struct lzma_header *header; +}; + +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 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 x509_parse_context { + struct x509_certificate *cert; + long unsigned int 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 xa_limit { + u32 max; + u32 min; +}; + +struct xa_node { + unsigned char shift; + unsigned char offset; + unsigned char count; + unsigned char nr_values; + struct xa_node *parent; + struct xarray *array; + union { + struct list_head private_list; + struct callback_head callback_head; + }; + void *slots[64]; + union { + long unsigned int tags[3]; + long unsigned int marks[3]; + }; +}; + +typedef void (*xa_update_node_t)(struct xa_node *); + +struct xa_state { + struct xarray *xa; + long unsigned int 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 xattr { + const char *name; + void *value; + size_t value_len; +}; + +struct xattr_args { + __u64 value; + __u32 size; + __u32 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 xattr_list { + struct list_head list; + char *name; + bool enabled; +}; + +struct xattr_name { + char name[256]; +}; + +struct xb_find_info { + struct xenbus_device *dev; + const char *nodename; +}; + +struct xsd_sockmsg { + uint32_t type; + uint32_t req_id; + uint32_t tx_id; + uint32_t len; +}; + +struct xb_req_data { + struct list_head list; + wait_queue_head_t wq; + struct kref kref; + struct xsd_sockmsg msg; + uint32_t caller_req_id; + enum xsd_sockmsg_type type; + char *body; + const struct kvec *vec; + int num_vecs; + int err; + enum xb_req_state state; + bool user_req; + void (*cb)(struct xb_req_data *); + void *par; +}; + +struct xbc_node { + uint16_t next; + uint16_t child; + uint16_t parent; + uint16_t data; +}; + +struct xdp_attachment_info { + struct bpf_prog *prog; + u32 flags; +}; + +struct xdp_buff_xsk { + struct xdp_buff xdp; + u8 cb[24]; + dma_addr_t dma; + dma_addr_t frame_dma; + struct xsk_buff_pool *pool; + struct list_head list_node; + long: 64; +}; + +struct xdp_bulk_queue { + void *q[8]; + struct list_head flush_node; + struct bpf_cpu_map_entry *obj; + unsigned int count; +}; + +struct xdp_cpumap_stats { + unsigned int redirect; + unsigned int pass; + unsigned int drop; +}; + +struct xdp_desc { + __u64 addr; + __u32 len; + __u32 options; +}; + +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 xdp_frame { + void *data; + u32 len; + u32 headroom; + u32 metasize; + enum xdp_mem_type mem_type: 32; + struct net_device *dev_rx; + u32 frame_sz; + u32 flags; +}; + +struct xdp_frame_bulk { + int count; + netmem_ref q[16]; +}; + +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 xdp_metadata_ops { + int (*xmo_rx_timestamp)(const struct xdp_md *, u64 *); + int (*xmo_rx_hash)(const struct xdp_md *, u32 *, enum xdp_rss_hash_type *); + int (*xmo_rx_vlan_tag)(const struct xdp_md *, __be16 *, u16 *); +}; + +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_ring_offset_v1 { + __u64 producer; + __u64 consumer; + __u64 desc; +}; + +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 xdp_page_head { + struct xdp_buff orig_ctx; + struct xdp_buff ctx; + union { + struct { + struct {} __empty_frame; + struct xdp_frame frame[0]; + }; + struct { + struct {} __empty_data; + u8 data[0]; + }; + }; +}; + +struct xdp_ring { + u32 producer; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 pad1; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 consumer; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 pad2; + u32 flags; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 pad3; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct xdp_rxtx_ring { + struct xdp_ring ptrs; + struct xdp_desc desc[0]; +}; + +struct xsk_queue; + +struct xdp_umem; + +struct xdp_sock { + struct sock sk; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xsk_queue *rx; + struct net_device *dev; + struct xdp_umem *umem; + struct list_head flush_node; + struct xsk_buff_pool *pool; + u16 queue_id; + bool zc; + bool sg; + enum { + XSK_READY = 0, + XSK_BOUND = 1, + XSK_UNBOUND = 2, + } state; + long: 64; + struct xsk_queue *tx; + struct list_head tx_list; + u32 tx_budget_spent; + u64 rx_dropped; + u64 rx_queue_full; + struct sk_buff *skb; + struct list_head map_list; + spinlock_t map_list_lock; + struct mutex mutex; + struct xsk_queue *fq_tmp; + struct xsk_queue *cq_tmp; +}; + +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_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_txq_info { + struct net_device *dev; +}; + +struct xdp_umem { + void *addrs; + u64 size; + u32 headroom; + u32 chunk_size; + u32 chunks; + u32 npgs; + struct user_struct *user; + refcount_t users; + u8 flags; + u8 tx_metadata_len; + bool zc; + struct page **pgs; + int id; + struct list_head xsk_dma_list; + struct work_struct work; +}; + +struct xdp_umem_reg { + __u64 addr; + __u64 len; + __u32 chunk_size; + __u32 headroom; + __u32 flags; + __u32 tx_metadata_len; +}; + +struct xdp_umem_ring { + struct xdp_ring ptrs; + u64 desc[0]; +}; + +struct xdr_netobj { + unsigned int len; + u8 *data; +}; + +struct xen_add_to_physmap { + domid_t domid; + uint16_t size; + unsigned int space; + xen_ulong_t idx; + xen_pfn_t gpfn; +}; + +struct xen_add_to_physmap_range { + domid_t domid; + uint16_t space; + uint16_t size; + domid_t foreign_domid; + __guest_handle_xen_ulong_t idxs; + __guest_handle_xen_pfn_t gpfns; + __guest_handle_int errs; +}; + +struct xen_build_id { + uint32_t len; + unsigned char buf[0]; +}; + +struct xen_bus_type { + char *root; + unsigned int levels; + int (*get_bus_id)(char *, const char *); + int (*probe)(struct xen_bus_type *, const char *, const char *); + bool (*otherend_will_handle)(struct xenbus_watch *, const char *, const char *); + void (*otherend_changed)(struct xenbus_watch *, const char *, const char *); + struct bus_type bus; +}; + +struct xen_compile_info { + char compiler[64]; + char compile_by[16]; + char compile_domain[32]; + char compile_date[32]; +}; + +struct xen_device_domain_owner { + domid_t domain; + struct pci_dev *dev; + struct list_head list; +}; + +struct xen_feature_info { + unsigned int submap_idx; + uint32_t submap; +}; + +struct xen_grant_dma_data { + domid_t backend_domid; + bool broken; +}; + +struct xen_hvm_param { + domid_t domid; + uint32_t index; + uint64_t value; +}; + +struct xen_memory_region { + long unsigned int start_pfn; + long unsigned int n_pfns; +}; + +struct xen_memory_reservation { + __guest_handle_xen_pfn_t extent_start; + xen_ulong_t nr_extents; + unsigned int extent_order; + unsigned int address_bits; + domid_t domid; +}; + +struct xen_netif_rx_request { + uint16_t id; + uint16_t pad; + grant_ref_t gref; +}; + +union xen_netif_rx_sring_entry { + struct xen_netif_rx_request req; + struct xen_netif_rx_response rsp; +}; + +struct xen_netif_rx_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union xen_netif_rx_sring_entry ring[0]; +}; + +struct xen_netif_tx_request { + grant_ref_t gref; + uint16_t offset; + uint16_t flags; + uint16_t id; + uint16_t size; +}; + +struct xen_netif_tx_response { + uint16_t id; + int16_t status; +}; + +union xen_netif_tx_sring_entry { + struct xen_netif_tx_request req; + struct xen_netif_tx_response rsp; +}; + +struct xen_netif_tx_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union xen_netif_tx_sring_entry ring[0]; +}; + +struct xen_p2m_entry { + long unsigned int pfn; + long unsigned int mfn; + long unsigned int nr_pages; + struct rb_node rbnode_phys; +}; + +struct xen_page_foreign { + domid_t domid; + grant_ref_t gref; +}; + +struct xen_pct_register { + uint8_t descriptor; + uint16_t length; + uint8_t space_id; + uint8_t bit_width; + uint8_t bit_offset; + uint8_t reserved; + uint64_t address; +}; + +struct xenpf_settime32 { + uint32_t secs; + uint32_t nsecs; + uint64_t system_time; +}; + +struct xenpf_settime64 { + uint64_t secs; + uint32_t nsecs; + uint32_t mbz; + uint64_t system_time; +}; + +struct xenpf_add_memtype { + xen_pfn_t mfn; + uint64_t nr_mfns; + uint32_t type; + uint32_t handle; + uint32_t reg; +}; + +struct xenpf_del_memtype { + uint32_t handle; + uint32_t reg; +}; + +struct xenpf_read_memtype { + uint32_t reg; + xen_pfn_t mfn; + uint64_t nr_mfns; + uint32_t type; +}; + +struct xenpf_microcode_update { + __guest_handle_void data; + uint32_t length; +}; + +struct xenpf_platform_quirk { + uint32_t quirk_id; +}; + +struct xenpf_efi_time { + uint16_t year; + uint8_t month; + uint8_t day; + uint8_t hour; + uint8_t min; + uint8_t sec; + uint32_t ns; + int16_t tz; + uint8_t daylight; +}; + +struct xenpf_efi_guid { + uint32_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[8]; +}; + +struct xenpf_efi_runtime_call { + uint32_t function; + uint32_t misc; + xen_ulong_t status; + union { + struct { + struct xenpf_efi_time time; + uint32_t resolution; + uint32_t accuracy; + } get_time; + struct xenpf_efi_time set_time; + struct xenpf_efi_time get_wakeup_time; + struct xenpf_efi_time set_wakeup_time; + struct { + __guest_handle_void name; + xen_ulong_t size; + __guest_handle_void data; + struct xenpf_efi_guid vendor_guid; + } get_variable; + struct { + __guest_handle_void name; + xen_ulong_t size; + __guest_handle_void data; + struct xenpf_efi_guid vendor_guid; + } set_variable; + struct { + xen_ulong_t size; + __guest_handle_void name; + struct xenpf_efi_guid vendor_guid; + } get_next_variable_name; + struct { + uint32_t attr; + uint64_t max_store_size; + uint64_t remain_store_size; + uint64_t max_size; + } query_variable_info; + struct { + __guest_handle_void capsule_header_array; + xen_ulong_t capsule_count; + uint64_t max_capsule_size; + uint32_t reset_type; + } query_capsule_capabilities; + struct { + __guest_handle_void capsule_header_array; + xen_ulong_t capsule_count; + uint64_t sg_list; + } update_capsule; + } u; +}; + +union xenpf_efi_info { + uint32_t version; + struct { + uint64_t addr; + uint32_t nent; + } cfg; + struct { + uint32_t revision; + uint32_t bufsz; + __guest_handle_void name; + } vendor; + struct { + uint64_t addr; + uint64_t size; + uint64_t attr; + uint32_t type; + } mem; +}; + +struct xenpf_firmware_info { + uint32_t type; + uint32_t index; + union { + struct { + uint8_t device; + uint8_t version; + uint16_t interface_support; + uint16_t legacy_max_cylinder; + uint8_t legacy_max_head; + uint8_t legacy_sectors_per_track; + __guest_handle_void edd_params; + } disk_info; + struct { + uint8_t device; + uint32_t mbr_signature; + } disk_mbr_signature; + struct { + uint8_t capabilities; + uint8_t edid_transfer_time; + __guest_handle_uchar edid; + } vbeddc_info; + union xenpf_efi_info efi_info; + uint8_t kbd_shift_flags; + } u; +}; + +struct xenpf_enter_acpi_sleep { + uint16_t val_a; + uint16_t val_b; + uint32_t sleep_state; + uint32_t flags; +}; + +struct xenpf_change_freq { + uint32_t flags; + uint32_t cpu; + uint64_t freq; +}; + +struct xenpf_getidletime { + __guest_handle_uchar cpumap_bitmap; + uint32_t cpumap_nr_cpus; + __guest_handle_uint64_t idletime; + uint64_t now; +}; + +struct xen_processor_flags { + uint32_t bm_control: 1; + uint32_t bm_check: 1; + uint32_t has_cst: 1; + uint32_t power_setup_done: 1; + uint32_t bm_rld_set: 1; +}; + +struct xen_processor_power { + uint32_t count; + struct xen_processor_flags flags; + __guest_handle_xen_processor_cx states; +}; + +struct xen_psd_package { + uint64_t num_entries; + uint64_t revision; + uint64_t domain; + uint64_t coord_type; + uint64_t num_processors; +}; + +struct xen_processor_performance { + uint32_t flags; + uint32_t platform_limit; + struct xen_pct_register control_register; + struct xen_pct_register status_register; + uint32_t state_count; + __guest_handle_xen_processor_px states; + struct xen_psd_package domain_info; + uint32_t shared_type; +}; + +struct xenpf_set_processor_pminfo { + uint32_t id; + uint32_t type; + union { + struct xen_processor_power power; + struct xen_processor_performance perf; + __guest_handle_uint32_t pdc; + }; +}; + +struct xenpf_pcpuinfo { + uint32_t xen_cpuid; + uint32_t max_present; + uint32_t flags; + uint32_t apic_id; + uint32_t acpi_id; +}; + +struct xenpf_cpu_ol { + uint32_t cpuid; +}; + +struct xenpf_cpu_hotadd { + uint32_t apic_id; + uint32_t acpi_id; + uint32_t pxm; +}; + +struct xenpf_mem_hotadd { + uint64_t spfn; + uint64_t epfn; + uint32_t pxm; + uint32_t flags; +}; + +struct xenpf_core_parking { + uint32_t type; + uint32_t idle_nums; +}; + +struct xenpf_symdata { + uint32_t namelen; + uint32_t symnum; + __guest_handle_char name; + uint64_t address; + char type; +}; + +struct xen_platform_op { + uint32_t cmd; + uint32_t interface_version; + union { + struct xenpf_settime32 settime32; + struct xenpf_settime64 settime64; + struct xenpf_add_memtype add_memtype; + struct xenpf_del_memtype del_memtype; + struct xenpf_read_memtype read_memtype; + struct xenpf_microcode_update microcode; + struct xenpf_platform_quirk platform_quirk; + struct xenpf_efi_runtime_call efi_runtime_call; + struct xenpf_firmware_info firmware_info; + struct xenpf_enter_acpi_sleep enter_acpi_sleep; + struct xenpf_change_freq change_freq; + struct xenpf_getidletime getidletime; + struct xenpf_set_processor_pminfo set_pminfo; + struct xenpf_pcpuinfo pcpu_info; + struct xenpf_cpu_ol cpu_ol; + struct xenpf_cpu_hotadd cpu_add; + struct xenpf_mem_hotadd mem_add; + struct xenpf_core_parking core_parking; + struct xenpf_symdata symdata; + struct dom0_vga_console_info dom0_console; + uint8_t pad[128]; + } u; +}; + +struct xen_platform_parameters { + xen_ulong_t virt_start; +}; + +struct xen_power_register { + uint32_t space_id; + uint32_t bit_width; + uint32_t bit_offset; + uint32_t access_size; + uint64_t address; +}; + +struct xen_processor_csd { + uint32_t domain; + uint32_t coord_type; + uint32_t num; +}; + +struct xen_processor_cx { + struct xen_power_register reg; + uint8_t type; + uint32_t latency; + uint32_t power; + uint32_t dpcnt; + __guest_handle_xen_processor_csd dp; +}; + +struct xen_processor_px { + uint64_t core_frequency; + uint64_t power; + uint64_t transition_latency; + uint64_t bus_master_latency; + uint64_t control; + uint64_t status; +}; + +struct xen_remove_from_physmap { + domid_t domid; + xen_pfn_t gpfn; +}; + +struct xenbus_device { + const char *devicetype; + const char *nodename; + const char *otherend; + int otherend_id; + struct xenbus_watch otherend_watch; + struct device dev; + enum xenbus_state state; + struct completion down; + struct work_struct work; + struct semaphore reclaim_sem; + atomic_t event_channels; + atomic_t events; + atomic_t spurious_events; + atomic_t jiffies_eoi_delayed; + unsigned int spurious_threshold; +}; + +struct xenbus_device_id { + char devicetype[32]; +}; + +struct xenbus_driver { + const char *name; + const struct xenbus_device_id *ids; + bool allow_rebind; + bool not_essential; + int (*probe)(struct xenbus_device *, const struct xenbus_device_id *); + void (*otherend_changed)(struct xenbus_device *, enum xenbus_state); + void (*remove)(struct xenbus_device *); + int (*suspend)(struct xenbus_device *); + int (*resume)(struct xenbus_device *); + int (*uevent)(const struct xenbus_device *, struct kobj_uevent_env *); + struct device_driver driver; + int (*read_otherend_details)(struct xenbus_device *); + int (*is_ready)(struct xenbus_device *); + void (*reclaim_memory)(struct xenbus_device *); +}; + +struct xenbus_file_priv { + struct mutex msgbuffer_mutex; + struct list_head transactions; + struct list_head watches; + unsigned int len; + union { + struct xsd_sockmsg msg; + char buffer[4096]; + } u; + struct mutex reply_mutex; + struct list_head read_buffers; + wait_queue_head_t read_waitq; + struct kref kref; + struct work_struct wq; +}; + +struct xenbus_map_node { + struct list_head next; + union { + struct { + struct vm_struct *area; + } pv; + struct { + struct page *pages[16]; + long unsigned int addrs[16]; + void *addr; + } hvm; + }; + grant_handle_t handles[16]; + unsigned int nr_handles; +}; + +struct xenbus_ring_ops { + int (*map)(struct xenbus_device *, struct map_ring_valloc *, grant_ref_t *, unsigned int, void **); + int (*unmap)(struct xenbus_device *, void *); +}; + +struct xenbus_transaction { + u32 id; +}; + +struct xenbus_transaction_holder { + struct list_head list; + struct xenbus_transaction handle; + unsigned int generation_id; +}; + +struct xencons_interface; + +struct xencons_info { + struct list_head list; + struct xenbus_device *xbdev; + struct xencons_interface *intf; + unsigned int evtchn; + XENCONS_RING_IDX out_cons; + unsigned int out_cons_same; + struct hvc_struct *hvc; + int irq; + int vtermno; + grant_ref_t gntref; + spinlock_t ring_lock; +}; + +struct xencons_interface { + char in[1024]; + char out[2048]; + XENCONS_RING_IDX in_cons; + XENCONS_RING_IDX in_prod; + XENCONS_RING_IDX out_cons; + XENCONS_RING_IDX out_prod; +}; + +struct xennet_gnttab_make_txreq { + struct netfront_queue *queue; + struct sk_buff *skb; + struct page *page; + struct xen_netif_tx_request *tx; + struct xen_netif_tx_request tx_local; + unsigned int size; +}; + +struct xennet_stat { + char name[32]; + u16 offset; +}; + +struct xenstore_domain_interface { + char req[1024]; + char rsp[1024]; + XENSTORE_RING_IDX req_cons; + XENSTORE_RING_IDX req_prod; + XENSTORE_RING_IDX rsp_cons; + XENSTORE_RING_IDX rsp_prod; + uint32_t server_features; + uint32_t connection; + uint32_t error; +}; + +struct 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 *next; + int priority; +}; + +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 *next; + int priority; +}; + +struct xfrm_address_filter { + xfrm_address_t saddr; + xfrm_address_t daddr; + __u16 family; + __u8 splen; + __u8 dplen; +}; + +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_algo_auth { + char alg_name[64]; + unsigned int alg_key_len; + unsigned int alg_trunc_len; + char alg_key[0]; +}; + +struct xfrm_dev_offload { + struct net_device *dev; + netdevice_tracker dev_tracker; + struct net_device *real_dev; + long unsigned int offload_handle; + u8 dir: 2; + u8 type: 2; + u8 flags: 2; +}; + +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 xfrm_dst_lookup_params { + struct net *net; + dscp_t dscp; + int oif; + xfrm_address_t *saddr; + xfrm_address_t *daddr; + u32 mark; + __u8 ipproto; + union flowi_uli uli; +}; + +struct xfrm_encap_tmpl { + __u16 encap_type; + __be16 encap_sport; + __be16 encap_dport; + xfrm_address_t encap_oa; +}; + +struct xfrm_flo { + struct dst_entry *dst_orig; + u8 flags; +}; + +struct xfrm_flow_keys { + struct flow_dissector_key_basic basic; + struct flow_dissector_key_control control; + union { + struct flow_dissector_key_ipv4_addrs ipv4; + struct flow_dissector_key_ipv6_addrs ipv6; + } addrs; + struct flow_dissector_key_ip ip; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_keyid gre; +}; + +struct xfrm_hash_state_ptrs { + const struct hlist_head *bydst; + const struct hlist_head *bysrc; + const struct hlist_head *byspi; + unsigned int hmask; +}; + +struct xfrm_id { + xfrm_address_t daddr; + __be32 spi; + __u8 proto; +}; + +struct xfrm_if_decode_session_result; + +struct xfrm_if_cb { + bool (*decode_session)(struct sk_buff *, short unsigned int, struct xfrm_if_decode_session_result *); +}; + +struct xfrm_if_decode_session_result { + struct net *net; + u32 if_id; +}; + +struct xfrm_input_afinfo { + u8 family; + bool is_ipip; + int (*callback)(struct sk_buff *, u8, int); +}; + +struct xfrm_kmaddress { + xfrm_address_t local; + xfrm_address_t remote; + u32 reserved; + u16 family; +}; + +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_mark { + __u32 v; + __u32 m; +}; + +struct xfrm_tmpl; + +struct xfrm_selector; + +struct xfrm_migrate; + +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_mode { + u8 encap; + u8 family; + u8 flags; +}; + +struct xfrm_mode_cbs { + struct module *owner; + int (*init_state)(struct xfrm_state *); + int (*clone_state)(struct xfrm_state *, struct xfrm_state *); + void (*destroy_state)(struct xfrm_state *); + int (*user_init)(struct net *, struct xfrm_state *, struct nlattr **, struct netlink_ext_ack *); + int (*copy_to_user)(struct xfrm_state *, struct sk_buff *); + unsigned int (*sa_len)(const struct xfrm_state *); + u32 (*get_inner_mtu)(struct xfrm_state *, int); + int (*input)(struct xfrm_state *, struct sk_buff *); + int (*output)(struct net *, struct sock *, struct sk_buff *); + int (*prepare_output)(struct xfrm_state *, struct sk_buff *); +}; + +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 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 xfrm_pol_inexact_candidates { + struct hlist_head *res[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_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_policy_walk_entry { + struct list_head all; + u8 dead; +}; + +struct xfrm_policy_queue { + struct sk_buff_head hold_queue; + struct timer_list hold_timer; + long unsigned int timeout; +}; + +struct xfrm_tmpl { + struct xfrm_id id; + xfrm_address_t saddr; + short unsigned int encap_family; + u32 reqid; + u8 mode; + u8 share; + u8 optional; + u8 allalgs; + u32 aalgos; + u32 ealgos; + u32 calgos; +}; + +struct xfrm_policy { + possible_net_t xp_net; + struct hlist_node bydst; + struct hlist_node byidx; + struct hlist_head state_cache_list; + 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 callback_head rcu; + struct xfrm_dev_offload xdo; +}; + +struct xfrm_policy_afinfo { + struct dst_ops *dst_ops; + struct dst_entry * (*dst_lookup)(const struct xfrm_dst_lookup_params *); + int (*get_saddr)(xfrm_address_t *, const struct xfrm_dst_lookup_params *); + int (*fill_dst)(struct xfrm_dst *, struct net_device *, const struct flowi *); + struct dst_entry * (*blackhole_route)(struct net *, struct dst_entry *); +}; + +struct xfrm_policy_walk { + struct xfrm_policy_walk_entry walk; + u8 type; + u32 seq; +}; + +struct xfrm_replay_state { + __u32 oseq; + __u32 seq; + __u32 bitmap; +}; + +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_sec_ctx { + __u8 ctx_doi; + __u8 ctx_alg; + __u16 ctx_len; + __u32 ctx_sid; + char ctx_str[0]; +}; + +struct xfrm_skb_cb { + struct xfrm_tunnel_skb_cb header; + union { + struct { + __u32 low; + __u32 hi; + } output; + struct { + __be32 low; + __be32 hi; + } input; + } seq; +}; + +struct xfrm_spi_skb_cb { + struct xfrm_tunnel_skb_cb header; + unsigned int daddroff; + unsigned int family; + __be32 seq; +}; + +struct xfrm_state_walk { + struct list_head all; + u8 state; + u8 dying; + u8 proto; + u32 seq; + struct xfrm_address_filter *filter; +}; + +struct xfrm_stats { + __u32 replay_window; + __u32 replay; + __u32 integrity_failed; +}; + +struct xfrm_type; + +struct xfrm_type_offload; + +struct xfrm_state { + possible_net_t xs_net; + union { + struct hlist_node gclist; + struct hlist_node bydst; + }; + union { + struct hlist_node dev_gclist; + struct hlist_node bysrc; + }; + struct hlist_node byspi; + struct hlist_node byseq; + struct hlist_node state_cache; + struct hlist_node state_cache_input; + refcount_t refcnt; + spinlock_t lock; + u32 pcpu_num; + 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 enc_hdr_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; + u32 nat_keepalive_interval; + time64_t nat_keepalive_expiration; + 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 int 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; + u8 dir; + const struct xfrm_mode_cbs *mode_cbs; + void *mode_data; +}; + +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 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 xfrm_trans_tasklet { + struct work_struct work; + spinlock_t queue_lock; + struct sk_buff_head queue; +}; + +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 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_user_offload { + int ifindex; + __u8 flags; +}; + +struct xfrm_user_sec_ctx { + __u16 len; + __u16 exttype; + __u8 ctx_alg; + __u8 ctx_doi; + __u16 ctx_len; +}; + +struct xfrmdev_ops { + int (*xdo_dev_state_add)(struct net_device *, struct xfrm_state *, struct netlink_ext_ack *); + void (*xdo_dev_state_delete)(struct net_device *, struct xfrm_state *); + void (*xdo_dev_state_free)(struct net_device *, struct xfrm_state *); + bool (*xdo_dev_offload_ok)(struct sk_buff *, struct xfrm_state *); + void (*xdo_dev_state_advance_esn)(struct xfrm_state *); + void (*xdo_dev_state_update_stats)(struct xfrm_state *); + int (*xdo_dev_policy_add)(struct xfrm_policy *, struct netlink_ext_ack *); + void (*xdo_dev_policy_delete)(struct xfrm_policy *); + void (*xdo_dev_policy_free)(struct xfrm_policy *); +}; + +struct xfrmk_sadinfo { + u32 sadhcnt; + u32 sadhmcnt; + u32 sadcnt; +}; + +struct xfrmk_spdinfo { + u32 incnt; + u32 outcnt; + u32 fwdcnt; + u32 inscnt; + u32 outscnt; + u32 fwdscnt; + u32 spdhcnt; + u32 spdhmcnt; +}; + +struct xgene_dev_parameters { + void *csr_reg; + u32 reg_clk_offset; + u32 reg_clk_mask; + u32 reg_csr_offset; + u32 reg_csr_mask; + void *divider_reg; + u32 reg_divider_offset; + u32 reg_divider_shift; + u32 reg_divider_width; +}; + +struct xgene_clk { + struct clk_hw hw; + spinlock_t *lock; + struct xgene_dev_parameters param; +}; + +struct xgene_clk_pll { + struct clk_hw hw; + void *reg; + spinlock_t *lock; + u32 pll_offset; + enum xgene_pll_type type; + int version; +}; + +struct xgene_clk_pmd { + struct clk_hw hw; + void *reg; + u8 shift; + u32 mask; + u64 denom; + u32 flags; + spinlock_t *lock; +}; + +struct xgene_gpio { + struct gpio_chip chip; + void *base; + spinlock_t lock; + u32 set_dr_val[3]; +}; + +struct xgene_msi_group; + +struct xgene_msi { + struct device_node *node; + struct irq_domain *inner_domain; + struct irq_domain *msi_domain; + u64 msi_addr; + void *msi_regs; + long unsigned int *bitmap; + struct mutex bitmap_lock; + struct xgene_msi_group *msi_groups; + int num_cpus; +}; + +struct xgene_msi_group { + struct xgene_msi *msi; + int gic_irq; + u32 msi_grp; +}; + +struct xgene_pcie { + struct device_node *node; + struct device *dev; + struct clk *clk; + void *csr_base; + void *cfg_base; + long unsigned int cfg_addr; + bool link_up; + u32 version; +}; + +struct xgene_sata_override_param { + u32 speed[2]; + u32 txspeed[3]; + u32 txboostgain[6]; + u32 txeyetuning[6]; + u32 txeyedirection[6]; + u32 txamplitude[6]; + u32 txprecursor_cn1[6]; + u32 txprecursor_cn2[6]; + u32 txpostcursor_cp1[6]; +}; + +struct xgene_phy_ctx { + struct device *dev; + struct phy *phy; + enum xgene_phy_mode mode; + enum clk_type_t clk_type; + void *sds_base; + struct clk *clk; + struct xgene_sata_override_param sata_param; +}; + +struct xgene_pmu_ops; + +struct xgene_pmu { + struct device *dev; + struct hlist_node node; + int version; + void *pcppmu_csr; + u32 mcb_active_mask; + u32 mc_active_mask; + u32 l3c_active_mask; + cpumask_t cpu; + int irq; + raw_spinlock_t lock; + const struct xgene_pmu_ops *ops; + struct list_head l3cpmus; + struct list_head iobpmus; + struct list_head mcbpmus; + struct list_head mcpmus; +}; + +struct xgene_pmu_data { + int id; + u32 data; +}; + +struct xgene_pmu_dev { + struct hw_pmu_info *inf; + struct xgene_pmu *parent; + struct pmu pmu; + u8 max_counters; + long unsigned int cntr_assign_mask[1]; + u64 max_period; + const struct attribute_group **attr_groups; + struct perf_event *pmu_counter_event[4]; +}; + +struct xgene_pmu_dev_ctx { + char *name; + struct list_head next; + struct xgene_pmu_dev *pmu_dev; + struct hw_pmu_info inf; +}; + +struct xgene_pmu_ops { + void (*mask_int)(struct xgene_pmu *); + void (*unmask_int)(struct xgene_pmu *); + u64 (*read_counter)(struct xgene_pmu_dev *, int); + void (*write_counter)(struct xgene_pmu_dev *, int, u64); + void (*write_evttype)(struct xgene_pmu_dev *, int, u32); + void (*write_agentmsk)(struct xgene_pmu_dev *, u32); + void (*write_agent1msk)(struct xgene_pmu_dev *, u32); + void (*enable_counter)(struct xgene_pmu_dev *, int); + void (*disable_counter)(struct xgene_pmu_dev *, int); + void (*enable_counter_int)(struct xgene_pmu_dev *, int); + void (*disable_counter_int)(struct xgene_pmu_dev *, int); + void (*reset_counters)(struct xgene_pmu_dev *); + void (*start_counters)(struct xgene_pmu_dev *); + void (*stop_counters)(struct xgene_pmu_dev *); +}; + +struct xgene_rtc_dev { + struct rtc_device *rtc; + void *csr_base; + struct clk *clk; + unsigned int irq_wake; + unsigned int irq_enabled; +}; + +struct xgpio_instance { + struct gpio_chip gc; + void *regs; + long unsigned int hw_map[1]; + long unsigned int sw_map[1]; + long unsigned int state[1]; + long unsigned int last_irq_read[1]; + long unsigned int dir[1]; + raw_spinlock_t gpio_lock; + int irq; + long unsigned int enable[1]; + long unsigned int rising_edge[1]; + long unsigned int falling_edge[1]; + struct clk *clk; +}; + +struct xhci_bus_state { + long unsigned int bus_suspended; + long unsigned int next_statechange; + u32 port_c_suspend; + u32 suspended_ports; + u32 port_remote_wakeup; + long unsigned int resuming_ports; +}; + +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_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_container_ctx; + +struct xhci_command { + struct xhci_container_ctx *in_ctx; + u32 status; + u32 comp_param; + int slot_id; + struct completion *completion; + union xhci_trb *command_trb; + struct list_head cmd_list; + unsigned int timeout_ms; +}; + +struct xhci_container_ctx { + unsigned int type; + int size; + u8 *bytes; + dma_addr_t dma; +}; + +struct xhci_erst_entry; + +struct xhci_erst { + struct xhci_erst_entry *entries; + unsigned int num_entries; + dma_addr_t erst_dma_addr; +}; + +struct xhci_hcd; + +struct xhci_dbc { + spinlock_t lock; + struct device *dev; + struct xhci_hcd *xhci; + struct dbc_regs *regs; + struct xhci_ring *ring_evt; + struct xhci_ring *ring_in; + struct xhci_ring *ring_out; + struct xhci_erst erst; + struct xhci_container_ctx *ctx; + struct dbc_str_descs *string; + dma_addr_t string_dma; + size_t string_size; + u16 idVendor; + u16 idProduct; + u16 bcdDevice; + u8 bInterfaceProtocol; + enum dbc_state state; + struct delayed_work event_work; + unsigned int poll_interval; + long unsigned int xfer_timestamp; + unsigned int resume_required: 1; + struct dbc_ep eps[2]; + const struct dbc_driver *driver; + void *priv; +}; + +struct xhci_device_context_array { + __le64 dev_context_ptrs[256]; + dma_addr_t dma; +}; + +struct xhci_doorbell_array { + __le32 doorbell[256]; +}; + +struct xhci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*start)(struct usb_hcd *); + int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); + void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); + int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t); + int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); +}; + +struct xhci_ep_ctx { + __le32 ep_info; + __le32 ep_info2; + __le64 deq; + __le32 tx_info; + __le32 reserved[3]; +}; + +struct xhci_stream_info; + +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_erst_entry { + __le64 seg_addr; + __le32 seg_size; + __le32 rsvd; +}; + +struct xhci_event_cmd { + __le64 cmd_trb; + __le32 status; + __le32 flags; +}; + +struct xhci_file_map { + const char *name; + int (*show)(struct seq_file *, void *); +}; + +struct xhci_generic_trb { + __le32 field[4]; +}; + +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_op_regs; + +struct xhci_run_regs; + +struct xhci_interrupter; + +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; + u16 hci_version; + u16 max_interrupters; + u32 imod_interval; + u32 page_size; + int nvecs; + struct clk *clk; + struct clk *reg_clk; + struct reset_control *reset; + struct xhci_device_context_array *dcbaa; + struct xhci_interrupter **interrupters; + struct xhci_ring *cmd_ring; + unsigned int cmd_ring_state; + struct list_head cmd_list; + unsigned int cmd_ring_reserved_trbs; + struct delayed_work cmd_timer; + struct completion cmd_ring_stop_completion; + struct xhci_command *current_cmd; + struct xhci_scratchpad *scratchpad; + struct mutex mutex; + struct xhci_virt_device *devs[256]; + struct xhci_root_port_bw_info *rh_bw; + struct dma_pool *device_pool; + struct dma_pool *segment_pool; + struct dma_pool *small_streams_pool; + struct dma_pool *medium_streams_pool; + unsigned int xhc_state; + long unsigned int run_graceperiod; + struct s3_save s3; + long long unsigned int 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; + 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; + long unsigned int priv[0]; +}; + +struct xhci_input_control_ctx { + __le32 drop_flags; + __le32 add_flags; + __le32 rsvd2[6]; +}; + +struct xhci_intr_reg; + +struct xhci_interrupter { + struct xhci_ring *event_ring; + struct xhci_erst erst; + struct xhci_intr_reg *ir_set; + unsigned int intr_num; + bool ip_autoclear; + u32 isoc_bei_interval; + u32 s3_irq_pending; + u32 s3_irq_control; + u32 s3_erst_size; + u64 s3_erst_base; + u64 s3_erst_dequeue; +}; + +struct xhci_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_intr_reg { + __le32 irq_pending; + __le32 irq_control; + __le32 erst_size; + __le32 rsvd; + __le64 erst_base; + __le64 erst_dequeue; +}; + +struct xhci_link_trb { + __le64 segment_ptr; + __le32 intr_target; + __le32 control; +}; + +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_port { + __le32 *addr; + int hw_portnum; + int hcd_portnum; + struct xhci_hub *rhub; + struct xhci_port_cap *port_cap; + unsigned int lpm_incapable: 1; + long unsigned int resume_timestamp; + bool rexit_active; + int slot_id; + struct completion rexit_done; + struct completion u3exit_done; +}; + +struct xhci_port_cap { + u32 *psi; + u8 psi_count; + u8 psi_uid_count; + u8 maj_rev; + u8 min_rev; + u32 protocol_caps; +}; + +struct xhci_regset { + char name[32]; + struct debugfs_regset32 regset; + size_t nregs; + struct list_head list; +}; + +struct xhci_ring { + struct xhci_segment *first_seg; + struct xhci_segment *last_seg; + union xhci_trb *enqueue; + struct xhci_segment *enq_seg; + union xhci_trb *dequeue; + struct xhci_segment *deq_seg; + struct list_head td_list; + u32 cycle_state; + unsigned int stream_id; + unsigned int num_segs; + unsigned int num_trbs_free; + unsigned int bounce_buf_len; + enum xhci_ring_type type; + u32 old_trb_comp_code; + struct xarray *trb_address_map; +}; + +struct xhci_root_port_bw_info { + struct list_head tts; + unsigned int num_active_tts; + struct xhci_interval_bw_table bw_table; +}; + +struct xhci_run_regs { + __le32 microframe_index; + __le32 rsvd[7]; + struct xhci_intr_reg ir_set[128]; +}; + +struct xhci_scratchpad { + u64 *sp_array; + dma_addr_t sp_dma; + void **sp_buffers; +}; + +struct xhci_segment { + union xhci_trb *trbs; + struct xhci_segment *next; + unsigned int num; + dma_addr_t dma; + dma_addr_t bounce_dma; + void *bounce_buf; + unsigned int bounce_offs; + unsigned int bounce_len; +}; + +struct xhci_slot_ctx { + __le32 dev_info; + __le32 dev_info2; + __le32 tt_info; + __le32 dev_state; + __le32 reserved[4]; +}; + +struct xhci_slot_priv { + char name[32]; + struct dentry *root; + struct xhci_ep_priv *eps[31]; + struct xhci_virt_device *dev; +}; + +struct xhci_stream_ctx { + __le64 stream_ring; + __le32 reserved[2]; +}; + +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_transfer_event { + __le64 buffer; + __le32 transfer_len; + __le32 flags; +}; + +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_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_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; + long unsigned int stop_time; + int next_frame_id; + bool use_extended_tbc; +}; + +struct xhci_virt_device { + int slot_id; + struct usb_device *udev; + struct xhci_container_ctx *out_ctx; + struct xhci_container_ctx *in_ctx; + struct xhci_virt_ep eps[31]; + struct xhci_port *rhub_port; + struct xhci_interval_bw_table *bw_table; + struct xhci_tt_bw_info *tt_info; + long unsigned int flags; + u16 current_mel; + void *debugfs_private; +}; + +struct xilinx_cpm_variant; + +struct xilinx_cpm_pcie { + struct device *dev; + void *reg_base; + void *cpm_base; + struct irq_domain *intx_domain; + struct irq_domain *cpm_domain; + struct pci_config_window *cfg; + int intx_irq; + int irq; + raw_spinlock_t lock; + const struct xilinx_cpm_variant *variant; +}; + +struct xilinx_cpm_variant { + enum xilinx_cpm_version version; + u32 ir_status; + u32 ir_enable; + u32 ir_misc_value; +}; + +struct xilinx_efuse { + u64 src; + u32 size; + u32 offset; + enum efuse_access flag; + u32 pufuserfuse; +}; + +struct xilinx_pcie { + struct device *dev; + void *reg_base; + long unsigned int msi_map[2]; + struct mutex map_lock; + struct irq_domain *msi_domain; + struct irq_domain *leg_domain; + struct list_head resources; +}; + +struct xilinx_pl_dma_variant { + enum xilinx_pl_dma_version version; +}; + +struct xintc_irq_chip { + void *base; + struct irq_domain *root_domain; + u32 intr_mask; + u32 nr_irq; +}; + +struct xol_area { + wait_queue_head_t wq; + long unsigned int *bitmap; + struct page *page; + long unsigned int vaddr; +}; + +struct xprt_create; + +struct xprt_class { + struct list_head list; + int ident; + struct rpc_xprt * (*setup)(struct xprt_create *); + struct module *owner; + char name[32]; + const char *netid[0]; +}; + +struct xprt_create { + int ident; + struct net *net; + struct sockaddr *srcaddr; + struct sockaddr *dstaddr; + size_t addrlen; + const char *servername; + struct svc_xprt *bc_xprt; + struct rpc_xprt_switch *bc_xps; + unsigned int flags; + struct xprtsec_parms xprtsec; + long unsigned int connect_timeout; + long unsigned int reconnect_timeout; +}; + +struct xps_map; + +struct xps_dev_maps { + struct callback_head rcu; + unsigned int nr_ids; + s16 num_tc; + struct xps_map *attr_map[0]; +}; + +struct xps_map { + unsigned int len; + unsigned int alloc_len; + struct callback_head rcu; + u16 queues[0]; +}; + +struct xs_watch_event { + struct list_head list; + unsigned int len; + struct xenbus_watch *handle; + const char *path; + const char *token; + char body[0]; +}; + +struct xsd_errors { + int errnum; + const char *errstring; +}; + +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; + spinlock_t rx_lock; + struct list_head free_list; + struct list_head xskb_list; + u32 heads_cnt; + u16 queue_id; + struct xsk_queue *fq; + struct xsk_queue *cq; + dma_addr_t *dma_pages; + struct xdp_buff_xsk *heads; + struct xdp_desc *tx_descs; + u64 chunk_mask; + u64 addrs_cnt; + u32 free_list_cnt; + u32 dma_pages_cnt; + u32 free_heads_cnt; + u32 headroom; + u32 chunk_size; + u32 chunk_shift; + u32 frame_len; + u32 xdp_zc_max_segs; + u8 tx_metadata_len; + u8 cached_need_wakeup; + bool uses_need_wakeup; + bool unaligned; + bool tx_sw_csum; + void *addrs; + spinlock_t cq_lock; + struct xdp_buff_xsk *free_heads[0]; + long: 64; + long: 64; +}; + +struct xsk_cb_desc { + void *src; + u8 off; + u8 bytes; +}; + +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; +}; + +struct xsk_map { + struct bpf_map map; + spinlock_t lock; + atomic_t count; + struct xdp_sock *xsk_map[0]; +}; + +struct xsk_map_node { + struct list_head node; + struct xsk_map *map; + struct xdp_sock **map_entry; +}; + +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 xsk_tx_metadata { + __u64 flags; + union { + struct { + __u16 csum_start; + __u16 csum_offset; + __u64 launch_time; + } request; + struct { + __u64 tx_timestamp; + } completion; + }; +}; + +struct xsk_tx_metadata_ops { + void (*tmo_request_timestamp)(void *); + u64 (*tmo_fill_timestamp)(void *); + void (*tmo_request_checksum)(u16, u16, void *); + void (*tmo_request_launch_time)(u64, void *); +}; + +struct xts_instance_ctx { + struct crypto_skcipher_spawn spawn; + struct crypto_cipher_spawn tweak_spawn; +}; + +struct xts_request_ctx { + le128 t; + struct scatterlist *tail; + struct scatterlist sg[2]; + struct skcipher_request subreq; +}; + +struct xts_tfm_ctx { + struct crypto_skcipher *child; + struct crypto_cipher *tweak; +}; + +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 xz_dec_hash { + vli_type unpadded; + vli_type uncompressed; + uint32_t crc32; +}; + +struct xz_dec_lzma2; + +struct xz_dec_bcj; + +struct xz_dec { + enum { + SEQ_STREAM_HEADER = 0, + SEQ_BLOCK_START = 1, + SEQ_BLOCK_HEADER = 2, + SEQ_BLOCK_UNCOMPRESS = 3, + SEQ_BLOCK_PADDING = 4, + SEQ_BLOCK_CHECK = 5, + SEQ_INDEX = 6, + SEQ_INDEX_PADDING = 7, + SEQ_INDEX_CRC32 = 8, + SEQ_STREAM_FOOTER = 9, + } sequence; + uint32_t pos; + vli_type vli; + size_t in_start; + size_t out_start; + uint32_t crc32; + enum xz_check check_type; + enum xz_mode mode; + bool allow_buf_error; + struct { + vli_type compressed; + vli_type uncompressed; + uint32_t size; + } block_header; + struct { + vli_type compressed; + vli_type uncompressed; + vli_type count; + struct xz_dec_hash hash; + } block; + struct { + enum { + SEQ_INDEX_COUNT = 0, + SEQ_INDEX_UNPADDED = 1, + SEQ_INDEX_UNCOMPRESSED = 2, + } sequence; + vli_type size; + vli_type count; + struct xz_dec_hash hash; + } index; + struct { + size_t pos; + size_t size; + uint8_t buf[1024]; + } temp; + struct xz_dec_lzma2 *lzma2; + struct xz_dec_bcj *bcj; + bool bcj_active; +}; + +struct xz_dec_bcj { + enum { + BCJ_X86 = 4, + BCJ_POWERPC = 5, + BCJ_IA64 = 6, + BCJ_ARM = 7, + BCJ_ARMTHUMB = 8, + BCJ_SPARC = 9, + BCJ_ARM64 = 10, + BCJ_RISCV = 11, + } 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_dec_lzma2 { + struct rc_dec rc; + struct dictionary dict; + struct lzma2_dec lzma2; + struct lzma_dec lzma; + struct { + uint32_t size; + uint8_t buf[63]; + } temp; +}; + +struct xz_dec_microlzma { + struct xz_dec_lzma2 s; +}; + +struct za_context { + struct _aarch64_ctx head; + __u16 vl; + __u16 __reserved[3]; +}; + +struct zap_details { + struct folio *single_folio; + bool even_cows; + bool reclaim_pt; + zap_flags_t zap_flags; +}; + +struct zbud_header { + struct list_head buddy; + unsigned int first_chunks; + unsigned int last_chunks; +}; + +struct zbud_pool { + spinlock_t lock; + union { + struct list_head buddied; + struct list_head unbuddied[63]; + }; + u64 pages_nr; +}; + +struct zone_report_args { + struct blk_zone *zones; +}; + +struct zspage; + +struct zpdesc { + long unsigned int flags; + struct list_head lru; + long unsigned int movable_ops; + union { + struct zpdesc *next; + long unsigned int handle; + }; + struct zspage *zspage; + unsigned int first_obj_offset; + atomic_t _refcount; +}; + +struct zpodd { + enum odd_mech_type mech_type; + struct ata_device *dev; + bool from_notify; + bool zp_ready; + long unsigned int last_ready; + bool zp_sampled; + bool powered_off; +}; + +struct zpool_driver; + +struct zpool { + struct zpool_driver *driver; + void *pool; +}; + +struct zpool_driver { + char *type; + struct module *owner; + atomic_t refcount; + struct list_head list; + void * (*create)(const char *, gfp_t); + void (*destroy)(void *); + bool malloc_support_movable; + int (*malloc)(void *, size_t, gfp_t, long unsigned int *); + void (*free)(void *, long unsigned int); + bool sleep_mapped; + void * (*map)(void *, long unsigned int, enum zpool_mapmode); + void (*unmap)(void *, long unsigned int); + u64 (*total_pages)(void *); +}; + +struct zs_pool_stats { + atomic_long_t pages_compacted; +}; + +struct zs_pool { + const char *name; + struct size_class *size_class[255]; + struct kmem_cache *handle_cachep; + struct kmem_cache *zspage_cachep; + atomic_long_t pages_allocated; + struct zs_pool_stats stats; + struct shrinker *shrinker; + struct work_struct free_work; + rwlock_t migrate_lock; + atomic_t compaction_in_progress; +}; + +struct zspage { + struct { + unsigned int huge: 1; + unsigned int fullness: 4; + unsigned int class: 9; + unsigned int magic: 8; + }; + unsigned int inuse; + unsigned int freeobj; + struct zpdesc *first_zpdesc; + struct list_head list; + struct zs_pool *pool; + rwlock_t lock; +}; + +struct zswap_pool; + +struct zswap_entry { + swp_entry_t swpentry; + unsigned int length; + bool referenced; + struct zswap_pool *pool; + long unsigned int handle; + struct obj_cgroup *objcg; + struct list_head lru; +}; + +struct zswap_pool { + struct zpool *zpool; + struct crypto_acomp_ctx *acomp_ctx; + struct percpu_ref ref; + struct list_head list; + struct work_struct release_work; + struct hlist_node node; + char tfm_name[128]; +}; + +struct zt_context { + struct _aarch64_ctx head; + __u16 nregs; + __u16 __reserved[3]; +}; + +struct zynqmp_clk_divider { + struct clk_hw hw; + u8 flags; + bool is_frac; + u32 clk_id; + u32 div_type; + u16 max_div; +}; + +struct zynqmp_clk_gate { + struct clk_hw hw; + u8 flags; + u32 clk_id; +}; + +struct zynqmp_clk_mux { + struct clk_hw hw; + u8 flags; + u32 clk_id; +}; + +struct zynqmp_clock { + char clk_name[50]; + u32 valid; + enum clk_type type; + struct clock_topology node[6]; + u32 num_nodes; + struct clock_parent parent[100]; + u32 num_parents; + u32 clk_id; +}; + +struct zynqmp_devinfo { + struct device *dev; + u32 feature_conf_id; +}; + +struct zynqmp_ipi_mchan { + int is_opened; + void *req_buf; + void *resp_buf; + void *rx_buf; + size_t req_buf_size; + size_t resp_buf_size; + unsigned int chan_type; +}; + +struct zynqmp_ipi_mbox; + +typedef int (*setup_ipi_fn)(struct zynqmp_ipi_mbox *, struct device_node *); + +struct zynqmp_ipi_pdata; + +struct zynqmp_ipi_mbox { + struct zynqmp_ipi_pdata *pdata; + struct device dev; + u32 remote_id; + struct mbox_controller mbox; + struct zynqmp_ipi_mchan mchans[2]; + setup_ipi_fn setup_ipi_fn; +}; + +struct zynqmp_ipi_message { + size_t len; + u8 data[0]; +}; + +struct zynqmp_ipi_pdata { + struct device *dev; + int irq; + unsigned int method; + u32 local_id; + int virq_sgi; + int num_mboxes; + struct zynqmp_ipi_mbox ipi_mboxes[0]; +}; + +struct zynqmp_pll { + struct clk_hw hw; + u32 clk_id; + bool set_pll_mode; +}; + +struct zynqmp_pm_domain { + struct generic_pm_domain gpd; + u32 node_id; + bool requested; +}; + +struct zynqmp_pm_event_info { + event_cb_func_t cb_fun; + enum pm_api_cb_id cb_type; + u32 node_id; + u32 event; + bool wake; +}; + +struct zynqmp_pm_query_data { + u32 qid; + u32 arg1; + u32 arg2; + u32 arg3; +}; + +struct zynqmp_pm_shutdown_scope { + const enum zynqmp_pm_shutdown_subtype subtype; + const char *name; +}; + +struct zynqmp_pm_work_struct { + struct work_struct callback_work; + u32 args[4]; +}; + +struct zynqmp_reset_soc_data; + +struct zynqmp_reset_data { + struct reset_controller_dev rcdev; + const struct zynqmp_reset_soc_data *data; +}; + +struct zynqmp_reset_soc_data { + u32 reset_id; + u32 num_resets; +}; + +typedef size_t (*ZSTD_blockCompressor)(ZSTD_matchState_t *, seqStore_t *, U32 *, const void *, size_t); + +typedef U32 (*ZSTD_getAllMatchesFn)(ZSTD_match_t *, ZSTD_matchState_t *, U32 *, const BYTE *, const BYTE *, const U32 *, const U32, const U32); + +typedef size_t (*ZSTD_sequenceCopier)(ZSTD_CCtx *, ZSTD_sequencePosition *, const ZSTD_Sequence * const, size_t, const void *, size_t); + +typedef u32 (*acpi_event_handler)(void *); + +typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); + +typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); + +typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *); + +typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); + +typedef u32 (*acpi_interface_handler)(acpi_string, u32); + +typedef u32 (*acpi_osd_handler)(void *); + +typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); + +typedef acpi_status (*acpi_table_handler)(u32, void *, void *); + +typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); + +typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); + +typedef void (*alternative_cb_t)(struct alt_instr *, __le32 *, __le32 *, int); + +typedef int (*apei_exec_entry_func_t)(struct apei_exec_context *, struct acpi_whea_header *, void *); + +typedef int (*apei_hest_func_t)(struct acpi_hest_header *, void *); + +typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); + +typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *); + +typedef bool (*ate_match_fn_t)(const struct arch_timer_erratum_workaround *, const void *); + +typedef void blk_log_action_t(struct trace_iterator *, const char *, bool); + +typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); + +typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + +typedef long unsigned int (*bpf_ctx_copy_t)(void *, const void *, long unsigned int, long unsigned int); + +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 (*bpf_jit_fill_hole_t)(void *, unsigned int); + +typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *); + +typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); + +typedef u64 (*bpf_trampoline_enter_t)(struct bpf_prog *, struct bpf_tramp_run_ctx *); + +typedef void (*bpf_trampoline_exit_t)(struct bpf_prog *, u64, struct bpf_tramp_run_ctx *); + +typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); + +typedef u64 (*btf_bpf_bprm_opts_set)(struct linux_binprm *, u64); + +typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); + +typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *); + +typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void *); + +typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void *, struct task_struct *, u64); + +typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum); + +typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64); + +typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum); + +typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32); + +typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32); + +typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32); + +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_event_output_data)(void *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64); + +typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32); + +typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64); + +typedef u64 (*btf_bpf_get_attach_cookie)(void *); + +typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); + +typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); + +typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *); + +typedef u64 (*btf_bpf_get_attach_cookie_uprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64); + +typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *); + +typedef u64 (*btf_bpf_get_cgroup_classid_curr)(void); + +typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int); + +typedef u64 (*btf_bpf_get_current_cgroup_id)(void); + +typedef u64 (*btf_bpf_get_current_comm)(char *, u32); + +typedef u64 (*btf_bpf_get_current_pid_tgid)(void); + +typedef u64 (*btf_bpf_get_current_task)(void); + +typedef u64 (*btf_bpf_get_current_task_btf)(void); + +typedef u64 (*btf_bpf_get_current_uid_gid)(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_func_ip_tracing)(void *); + +typedef u64 (*btf_bpf_get_func_ip_uprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *); + +typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); + +typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_netns_cookie)(struct sk_buff *); + +typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); + +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_sockopt)(struct bpf_sockopt_kern *); + +typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32); + +typedef u64 (*btf_bpf_get_numa_node_id)(void); + +typedef u64 (*btf_bpf_get_raw_cpu_id)(void); + +typedef u64 (*btf_bpf_get_retval)(void); + +typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *); + +typedef u64 (*btf_bpf_get_smp_processor_id)(void); + +typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); + +typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); + +typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); + +typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stack_sleepable)(struct pt_regs *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_task_stack_sleepable)(struct task_struct *, void *, u32, u64); + +typedef u64 (*btf_bpf_ima_file_hash)(struct file *, void *, u32); + +typedef u64 (*btf_bpf_ima_inode_hash)(struct inode *, void *, u32); + +typedef u64 (*btf_bpf_inode_storage_delete)(struct bpf_map *, struct inode *); + +typedef u64 (*btf_bpf_inode_storage_get)(struct bpf_map *, struct inode *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_jiffies64)(void); + +typedef u64 (*btf_bpf_kallsyms_lookup_name)(const char *, int, int, u64 *); + +typedef u64 (*btf_bpf_kptr_xchg)(void *, void *); + +typedef u64 (*btf_bpf_ktime_get_boot_ns)(void); + +typedef u64 (*btf_bpf_ktime_get_coarse_ns)(void); + +typedef u64 (*btf_bpf_ktime_get_ns)(void); + +typedef u64 (*btf_bpf_ktime_get_tai_ns)(void); + +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_loop)(u32, void *, void *, u64); + +typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_lwt_seg6_action)(struct sk_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_lwt_seg6_adjust_srh)(struct sk_buff *, u32, s32); + +typedef u64 (*btf_bpf_lwt_seg6_store_bytes)(struct sk_buff *, u32, const void *, u32); + +typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32); + +typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64); + +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_pop_data)(struct sk_msg *, u32, u32, u64); + +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_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64); + +typedef u64 (*btf_bpf_override_return)(struct pt_regs *, long unsigned int); + +typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); + +typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64); + +typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32); + +typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32); + +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_read_kernel)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_write_user)(void *, const void *, u32); + +typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64); + +typedef u64 (*btf_bpf_redirect)(u32, u64); + +typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64); + +typedef u64 (*btf_bpf_redirect_peer)(u32, u64); + +typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); + +typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); + +typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); + +typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); + +typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); + +typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); + +typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); + +typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); + +typedef u64 (*btf_bpf_send_signal)(u32); + +typedef u64 (*btf_bpf_send_signal_thread)(u32); + +typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32); + +typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64); + +typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32); + +typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32); + +typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *); + +typedef u64 (*btf_bpf_set_retval)(int); + +typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); + +typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); + +typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); + +typedef u64 (*btf_bpf_sk_fullsock)(struct sock *); + +typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, 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_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64); + +typedef u64 (*btf_bpf_sk_release)(struct sock *); + +typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *); + +typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); + +typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64); + +typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); + +typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *); + +typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); + +typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64); + +typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32); + +typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64); + +typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); + +typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32); + +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_get_pay_offset)(struct sk_buff *); + +typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64); + +typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); + +typedef u64 (*btf_bpf_skb_get_xfrm_state)(struct sk_buff *, u32, struct bpf_xfrm_state *, u32, u64); + +typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32); + +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_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_pull_data)(struct sk_buff *, u32); + +typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, 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_store_bytes)(struct sk_buff *, u32, const void *, u32, u64); + +typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); + +typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *); + +typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16); + +typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_tcp_request_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_udp6_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *); + +typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32); + +typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64); + +typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, 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_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_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_sock_from_file)(struct file *); + +typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); + +typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); + +typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); + +typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); + +typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); + +typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *); + +typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *); + +typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, s64 *); + +typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, u64 *); + +typedef u64 (*btf_bpf_sys_bpf)(int, union bpf_attr *, u32); + +typedef u64 (*btf_bpf_sys_close)(u32); + +typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t); + +typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); + +typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t); + +typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t); + +typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *); + +typedef u64 (*btf_bpf_task_storage_delete)(struct bpf_map *, struct task_struct *); + +typedef u64 (*btf_bpf_task_storage_delete_recur)(struct bpf_map *, struct task_struct *); + +typedef u64 (*btf_bpf_task_storage_get)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_task_storage_get_recur)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +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_tcp_raw_check_syncookie_ipv4)(struct iphdr *, struct tcphdr *); + +typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *); + +typedef u64 (*btf_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_send_ack)(struct tcp_sock *, u32); + +typedef u64 (*btf_bpf_tcp_sock)(struct sock *); + +typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); + +typedef u64 (*btf_bpf_timer_cancel)(struct bpf_async_kern *); + +typedef u64 (*btf_bpf_timer_init)(struct bpf_async_kern *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_async_kern *, void *, struct bpf_prog_aux *); + +typedef u64 (*btf_bpf_timer_start)(struct bpf_async_kern *, u64, u64); + +typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64); + +typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32); + +typedef u64 (*btf_bpf_unlocked_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_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); + +typedef u64 (*btf_bpf_user_rnd_u32)(void); + +typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int); + +typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int); + +typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int); + +typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64); + +typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32); + +typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *); + +typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_xdp_redirect)(u32, u64); + +typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64); + +typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); + +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_store_bytes)(struct xdp_buff *, u32, void *, u32); + +typedef u64 (*btf_get_func_arg)(void *, u32, u64 *); + +typedef u64 (*btf_get_func_arg_cnt)(void *); + +typedef u64 (*btf_get_func_ret)(void *, u64 *); + +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_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); + +typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64); + +typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32); + +typedef void (*btf_trace_ack_update_msk)(void *, u64, u64, u64, u64, u64); + +typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *); + +typedef void (*btf_trace_aer_event)(void *, const char *, const u32, const u8, const u8, struct pcie_tlp_log *); + +typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t); + +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_suspend)(void *, ktime_t, int); + +typedef void (*btf_trace_alloc_vmap_area)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_arm_event)(void *, const struct cper_sec_proc_arm *); + +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_status)(void *, struct ata_port *, unsigned int); + +typedef void (*btf_trace_ata_bmdma_stop)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); + +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_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_exec_command)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); + +typedef void (*btf_trace_ata_link_hardreset_begin)(void *, struct ata_link *, unsigned int *, long unsigned int); + +typedef void (*btf_trace_ata_link_hardreset_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_link_softreset_begin)(void *, struct ata_link *, unsigned int *, long unsigned int); + +typedef void (*btf_trace_ata_link_softreset_end)(void *, struct ata_link *, unsigned int *, int); + +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_qc_complete_done)(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_internal)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_qc_prep)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_sff_flush_pio_task)(void *, struct ata_port *); + +typedef void (*btf_trace_ata_sff_hsm_command_complete)(void *, struct ata_queued_cmd *, unsigned char); + +typedef void (*btf_trace_ata_sff_hsm_state)(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_ata_sff_port_intr)(void *, struct ata_queued_cmd *, unsigned char); + +typedef void (*btf_trace_ata_slave_hardreset_begin)(void *, struct ata_link *, unsigned int *, long unsigned int); + +typedef void (*btf_trace_ata_slave_hardreset_end)(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_tf_load)(void *, struct ata_port *, const struct ata_taskfile *); + +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_attach_device_to_domain)(void *, struct device *); + +typedef void (*btf_trace_balance_dirty_pages)(void *, struct bdi_writeback *, struct dirty_throttle_control *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long int, long unsigned int); + +typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); + +typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); + +typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, 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_bio_remap)(void *, struct bio *, dev_t, sector_t); + +typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); + +typedef void (*btf_trace_block_getrq)(void *, struct bio *); + +typedef void (*btf_trace_block_io_done)(void *, struct request *); + +typedef void (*btf_trace_block_io_start)(void *, struct request *); + +typedef void (*btf_trace_block_plug)(void *, struct request_queue *); + +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_rq_remap)(void *, struct request *, dev_t, sector_t); + +typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); + +typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); + +typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); + +typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); + +typedef void (*btf_trace_bpf_test_finish)(void *, int *); + +typedef void (*btf_trace_bpf_trace_printk)(void *, const char *); + +typedef void (*btf_trace_bpf_trigger_tp)(void *, int); + +typedef void (*btf_trace_bpf_xdp_link_attach_failed)(void *, const char *); + +typedef void (*btf_trace_br_fdb_add)(void *, struct ndmsg *, struct net_device *, const unsigned char *, u16, u16); + +typedef void (*btf_trace_br_fdb_external_learn_add)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16); + +typedef void (*btf_trace_br_fdb_update)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16, long unsigned int); + +typedef void (*btf_trace_br_mdb_full)(void *, const struct net_device *, const struct br_ip *); + +typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_cap_capable)(void *, const struct cred *, struct user_namespace *, const struct user_namespace *, int, int); + +typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, long unsigned int); + +typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool); + +typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *); + +typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int); + +typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int); + +typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *); + +typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_rstat_cpu_lock_contended)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_cpu_lock_contended_fastpath)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_cpu_locked)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_cpu_locked_fastpath)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_cpu_unlock)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_cpu_unlock_fastpath)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_lock_contended)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_locked)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_rstat_unlock)(void *, struct cgroup *, int, bool); + +typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *); + +typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool); + +typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_clk_disable)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_enable)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *); + +typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *); + +typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *); + +typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *); + +typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, long unsigned int); + +typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, long unsigned int); + +typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *); + +typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *); + +typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int); + +typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int); + +typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, long unsigned int); + +typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, long unsigned int); + +typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); + +typedef void (*btf_trace_clock_enable)(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_cma_alloc_busy_retry)(void *, const char *, long unsigned int, const struct page *, long unsigned int, unsigned int); + +typedef void (*btf_trace_cma_alloc_finish)(void *, const char *, long unsigned int, const struct page *, long unsigned int, unsigned int, int); + +typedef void (*btf_trace_cma_alloc_start)(void *, const char *, long unsigned int, unsigned int); + +typedef void (*btf_trace_cma_release)(void *, const char *, long unsigned int, const struct page *, long unsigned int); + +typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); + +typedef void (*btf_trace_console)(void *, const char *, size_t); + +typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *, void *); + +typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int); + +typedef void (*btf_trace_contention_end)(void *, void *, int); + +typedef void (*btf_trace_count_memcg_events)(void *, struct mem_cgroup *, int, long unsigned int); + +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_cpu_idle)(void *, unsigned int, unsigned int); + +typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool); + +typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); + +typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, 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_cros_ec_request_done)(void *, struct cros_ec_command *, int); + +typedef void (*btf_trace_cros_ec_request_start)(void *, struct cros_ec_command *); + +typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, call_single_data_t *); + +typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, call_single_data_t *); + +typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, long unsigned int, smp_call_func_t, call_single_data_t *); + +typedef void (*btf_trace_ctime_ns_xchg)(void *, struct inode *, u32, u32, u32); + +typedef void (*btf_trace_ctime_xchg_skip)(void *, struct inode *, struct timespec64 *); + +typedef void (*btf_trace_dax_insert_mapping)(void *, struct inode *, struct vm_fault *, void *); + +typedef void (*btf_trace_dax_insert_pfn_mkwrite)(void *, struct inode *, struct vm_fault *, int); + +typedef void (*btf_trace_dax_insert_pfn_mkwrite_no_entry)(void *, struct inode *, struct vm_fault *, int); + +typedef void (*btf_trace_dax_load_hole)(void *, struct inode *, struct vm_fault *, int); + +typedef void (*btf_trace_dax_pmd_fault)(void *, struct inode *, struct vm_fault *, long unsigned int, int); + +typedef void (*btf_trace_dax_pmd_fault_done)(void *, struct inode *, struct vm_fault *, long unsigned int, int); + +typedef void (*btf_trace_dax_pmd_insert_mapping)(void *, struct inode *, struct vm_fault *, long int, pfn_t, void *); + +typedef void (*btf_trace_dax_pmd_load_hole)(void *, struct inode *, struct vm_fault *, struct folio *, void *); + +typedef void (*btf_trace_dax_pmd_load_hole_fallback)(void *, struct inode *, struct vm_fault *, struct folio *, void *); + +typedef void (*btf_trace_dax_pte_fault)(void *, struct inode *, struct vm_fault *, int); + +typedef void (*btf_trace_dax_pte_fault_done)(void *, struct inode *, struct vm_fault *, int); + +typedef void (*btf_trace_dax_writeback_one)(void *, struct inode *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_dax_writeback_range)(void *, struct inode *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_dax_writeback_range_done)(void *, struct inode *, long unsigned int, long unsigned 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_remove_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_devfreq_frequency)(void *, struct devfreq *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_devfreq_monitor)(void *, struct devfreq *); + +typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); + +typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); + +typedef void (*btf_trace_devlink_health_recover_aborted)(void *, const struct devlink *, const char *, bool, u64); + +typedef void (*btf_trace_devlink_health_report)(void *, const struct devlink *, const char *, const char *); + +typedef void (*btf_trace_devlink_health_reporter_state_update)(void *, const struct devlink *, const char *, bool); + +typedef void (*btf_trace_devlink_hwerr)(void *, const struct devlink *, int, const char *); + +typedef void (*btf_trace_devlink_hwmsg)(void *, const struct devlink *, bool, long unsigned int, const u8 *, size_t); + +typedef void (*btf_trace_devlink_trap_report)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *); + +typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t); + +typedef void (*btf_trace_dma_alloc)(void *, struct device *, void *, dma_addr_t, size_t, enum dma_data_direction, gfp_t, long unsigned int); + +typedef void (*btf_trace_dma_alloc_pages)(void *, struct device *, void *, dma_addr_t, size_t, enum dma_data_direction, gfp_t, long unsigned int); + +typedef void (*btf_trace_dma_alloc_sgt)(void *, struct device *, struct sg_table *, size_t, enum dma_data_direction, gfp_t, long unsigned int); + +typedef void (*btf_trace_dma_alloc_sgt_err)(void *, struct device *, void *, dma_addr_t, size_t, enum dma_data_direction, gfp_t, long unsigned int); + +typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_free)(void *, struct device *, void *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_free_pages)(void *, struct device *, void *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_free_sgt)(void *, struct device *, struct sg_table *, size_t, enum dma_data_direction); + +typedef void (*btf_trace_dma_map_page)(void *, struct device *, phys_addr_t, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_map_resource)(void *, struct device *, phys_addr_t, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_map_sg)(void *, struct device *, struct scatterlist *, int, int, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_map_sg_err)(void *, struct device *, struct scatterlist *, int, int, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_sync_sg_for_cpu)(void *, struct device *, struct scatterlist *, int, enum dma_data_direction); + +typedef void (*btf_trace_dma_sync_sg_for_device)(void *, struct device *, struct scatterlist *, int, enum dma_data_direction); + +typedef void (*btf_trace_dma_sync_single_for_cpu)(void *, struct device *, dma_addr_t, size_t, enum dma_data_direction); + +typedef void (*btf_trace_dma_sync_single_for_device)(void *, struct device *, dma_addr_t, size_t, enum dma_data_direction); + +typedef void (*btf_trace_dma_unmap_page)(void *, struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_unmap_resource)(void *, struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dma_unmap_sg)(void *, struct device *, struct scatterlist *, int, enum dma_data_direction, long unsigned int); + +typedef void (*btf_trace_dql_stall_detected)(void *, short unsigned int, unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int *); + +typedef void (*btf_trace_drm_vblank_event)(void *, int, unsigned int, ktime_t, bool); + +typedef void (*btf_trace_drm_vblank_event_delivered)(void *, struct drm_file *, int, unsigned int); + +typedef void (*btf_trace_drm_vblank_event_queued)(void *, struct drm_file *, int, unsigned int); + +typedef void (*btf_trace_error_report_end)(void *, enum error_detector, long unsigned int); + +typedef void (*btf_trace_error_wwnr)(void *, int, char *, char *); + +typedef void (*btf_trace_event_wwnr)(void *, int, char *, char *, char *, bool); + +typedef void (*btf_trace_exit_mmap)(void *, struct mm_struct *); + +typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); + +typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, long long unsigned int); + +typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); + +typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); + +typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); + +typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); + +typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); + +typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, long unsigned int, struct writeback_control *); + +typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); + +typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, long long unsigned int, long long unsigned int); + +typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int); + +typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); + +typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); + +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_insert_delayed_extent)(void *, struct inode *, struct extent_status *, bool, bool); + +typedef void (*btf_trace_ext4_es_insert_extent)(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_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); + +typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, 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_evict_inode)(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_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t); + +typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t); + +typedef void (*btf_trace_ext4_ext_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_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_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); + +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_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, short unsigned int); + +typedef void (*btf_trace_ext4_fallocate_enter)(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_fc_cleanup)(void *, journal_t *, int, tid_t); + +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_replay)(void *, struct super_block *, int, int, int, int); + +typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); + +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_inode)(void *, handle_t *, struct inode *, int); + +typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); + +typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long int, long int, int); + +typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); + +typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); + +typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, long unsigned int, int); + +typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *); + +typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); + +typedef void (*btf_trace_ext4_fsmap_low_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_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); + +typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); + +typedef void (*btf_trace_ext4_getfsmap_low_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_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned 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_insert_range)(void *, struct inode *, loff_t, loff_t); + +typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); + +typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, long unsigned int); + +typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, long unsigned int); + +typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, long unsigned int); + +typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); + +typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); + +typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, long unsigned int); + +typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int); + +typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, long long unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_mballoc_alloc)(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_mballoc_prealloc)(void *, struct ext4_allocation_context *); + +typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); + +typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t); + +typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); + +typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int); + +typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, long unsigned int, bool); + +typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); + +typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); + +typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); + +typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); + +typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, long unsigned 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_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); + +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_truncate_enter)(void *, struct inode *); + +typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); + +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_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int); + +typedef void (*btf_trace_ext4_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_writepages)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); + +typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int); + +typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_fdb_delete)(void *, struct net_bridge *, struct net_bridge_fdb_entry *); + +typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *); + +typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int); + +typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t); + +typedef void (*btf_trace_filemap_set_wb_err)(void *, struct address_space *, errseq_t); + +typedef void (*btf_trace_fill_mg_cmtime)(void *, struct inode *, struct timespec64 *, struct timespec64 *); + +typedef void (*btf_trace_finish_task_reaping)(void *, int); + +typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int); + +typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_free_vmap_area_noflush)(void *, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_fuse_request_end)(void *, const struct fuse_req *); + +typedef void (*btf_trace_fuse_request_send)(void *, const struct fuse_req *); + +typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_get_mapping_status)(void *, struct mptcp_ext *); + +typedef void (*btf_trace_global_dirty_state)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_gpio_direction)(void *, unsigned int, int, int); + +typedef void (*btf_trace_gpio_value)(void *, unsigned int, int, int); + +typedef void (*btf_trace_gpu_mem_total)(void *, uint32_t, uint32_t, uint64_t); + +typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int); + +typedef void (*btf_trace_handshake_cancel)(void *, const struct net *, const struct handshake_req *, const struct sock *); + +typedef void (*btf_trace_handshake_cancel_busy)(void *, const struct net *, const struct handshake_req *, const struct sock *); + +typedef void (*btf_trace_handshake_cancel_none)(void *, const struct net *, const struct handshake_req *, const struct sock *); + +typedef void (*btf_trace_handshake_cmd_accept)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_cmd_accept_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_cmd_done)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_cmd_done_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_complete)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_destruct)(void *, const struct net *, const struct handshake_req *, const struct sock *); + +typedef void (*btf_trace_handshake_notify_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_submit)(void *, const struct net *, const struct handshake_req *, const struct sock *); + +typedef void (*btf_trace_handshake_submit_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *); + +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_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_hugepage_set_pmd)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_hugepage_set_pud)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_hugepage_update_pmd)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_hugepage_update_pud)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_hugetlbfs_alloc_inode)(void *, struct inode *, struct inode *, int); + +typedef void (*btf_trace_hugetlbfs_evict_inode)(void *, struct inode *); + +typedef void (*btf_trace_hugetlbfs_fallocate)(void *, struct inode *, int, loff_t, loff_t, int); + +typedef void (*btf_trace_hugetlbfs_free_inode)(void *, struct inode *); + +typedef void (*btf_trace_hugetlbfs_setattr)(void *, struct inode *, struct dentry *, struct iattr *); + +typedef void (*btf_trace_hw_pressure_update)(void *, int, long unsigned int); + +typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long int); + +typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *); + +typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long 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); + +typedef void (*btf_trace_i2c_slave)(void *, const struct i2c_client *, enum i2c_slave_event, __u8 *, int); + +typedef void (*btf_trace_i2c_write)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); + +typedef void (*btf_trace_icc_set_bw)(void *, struct icc_path *, struct icc_node *, int, u32, u32); + +typedef void (*btf_trace_icc_set_bw_end)(void *, struct icc_path *, int); + +typedef void (*btf_trace_icmp_send)(void *, const struct sk_buff *, int, int); + +typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *); + +typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int); + +typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int); + +typedef void (*btf_trace_initcall_level)(void *, const char *); + +typedef void (*btf_trace_initcall_start)(void *, initcall_t); + +typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int); + +typedef void (*btf_trace_inode_set_ctime_to_ts)(void *, struct inode *, struct timespec64 *); + +typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *); + +typedef void (*btf_trace_instruction_emulation)(void *, const char *, u64); + +typedef void (*btf_trace_io_page_fault)(void *, struct device *, long unsigned int, int); + +typedef void (*btf_trace_io_uring_complete)(void *, struct io_ring_ctx *, void *, struct io_uring_cqe *); + +typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, long long unsigned int, s32, u32, void *); + +typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); + +typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); + +typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int); + +typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); + +typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long 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_short_write)(void *, void *, u64, u64, u64); + +typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int); + +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_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_ioc_vrate_adj)(void *, struct ioc *, u64, u32 *, u32, int, int); + +typedef void (*btf_trace_iocost_iocg_activate)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); + +typedef void (*btf_trace_iocost_iocg_forgive_debt)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u64, u64, u64, u64); + +typedef void (*btf_trace_iocost_iocg_idle)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); + +typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); + +typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); + +typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, long unsigned int); + +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_readahead)(void *, struct inode *, int); + +typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); + +typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, u64, unsigned int, struct iomap *); + +typedef void (*btf_trace_ipi_entry)(void *, const char *); + +typedef void (*btf_trace_ipi_exit)(void *, const char *); + +typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); + +typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, long unsigned int, void *); + +typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, long unsigned int, void *); + +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_irq_noise)(void *, int, const char *, u64, u64); + +typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, long long unsigned int); + +typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, long long unsigned int); + +typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int); + +typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); + +typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_locking)(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_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, 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_start)(void *, dev_t, tid_t, unsigned int, unsigned 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_lock_buffer_stall)(void *, dev_t, long unsigned int); + +typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); + +typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, long unsigned int, tid_t); + +typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); + +typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); + +typedef void (*btf_trace_kfree)(void *, long unsigned int, const void *); + +typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason, struct sock *); + +typedef void (*btf_trace_kmalloc)(void *, long unsigned int, const void *, size_t, size_t, gfp_t, int); + +typedef void (*btf_trace_kmem_cache_alloc)(void *, long unsigned int, const void *, struct kmem_cache *, gfp_t, int); + +typedef void (*btf_trace_kmem_cache_free)(void *, long unsigned int, const void *, const struct kmem_cache *); + +typedef void (*btf_trace_ksm_advisor)(void *, s64, long unsigned int, unsigned int); + +typedef void (*btf_trace_ksm_enter)(void *, void *); + +typedef void (*btf_trace_ksm_exit)(void *, void *); + +typedef void (*btf_trace_ksm_merge_one_page)(void *, long unsigned int, void *, void *, int); + +typedef void (*btf_trace_ksm_merge_with_ksm_page)(void *, void *, long unsigned int, void *, void *, int); + +typedef void (*btf_trace_ksm_remove_ksm_page)(void *, long unsigned int); + +typedef void (*btf_trace_ksm_remove_rmap_item)(void *, long unsigned int, void *, void *); + +typedef void (*btf_trace_ksm_start_scan)(void *, int, u32); + +typedef void (*btf_trace_ksm_stop_scan)(void *, int, u32); + +typedef void (*btf_trace_kvm_access_fault)(void *, long unsigned int); + +typedef void (*btf_trace_kvm_ack_irq)(void *, unsigned int, unsigned int); + +typedef void (*btf_trace_kvm_age_hva)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_kvm_arm_set_dreg32)(void *, const char *, __u64); + +typedef void (*btf_trace_kvm_dirty_ring_exit)(void *, struct kvm_vcpu *); + +typedef void (*btf_trace_kvm_dirty_ring_push)(void *, struct kvm_dirty_ring *, u32, u64); + +typedef void (*btf_trace_kvm_dirty_ring_reset)(void *, struct kvm_dirty_ring *); + +typedef void (*btf_trace_kvm_entry)(void *, long unsigned int); + +typedef void (*btf_trace_kvm_exit)(void *, int, unsigned int, long unsigned int); + +typedef void (*btf_trace_kvm_forward_sysreg_trap)(void *, struct kvm_vcpu *, u32, bool); + +typedef void (*btf_trace_kvm_fpu)(void *, int); + +typedef void (*btf_trace_kvm_get_timer_map)(void *, long unsigned int, struct timer_map *); + +typedef void (*btf_trace_kvm_guest_fault)(void *, long unsigned int, long unsigned int, long unsigned int, long long unsigned int); + +typedef void (*btf_trace_kvm_halt_poll_ns)(void *, bool, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_kvm_handle_sys_reg)(void *, long unsigned int); + +typedef void (*btf_trace_kvm_hvc_arm64)(void *, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_kvm_inject_nested_exception)(void *, struct kvm_vcpu *, u64, int); + +typedef void (*btf_trace_kvm_iocsr)(void *, int, int, u64, void *); + +typedef void (*btf_trace_kvm_irq_line)(void *, unsigned int, int, int, int); + +typedef void (*btf_trace_kvm_mmio)(void *, int, int, u64, void *); + +typedef void (*btf_trace_kvm_mmio_emulate)(void *, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_kvm_mmio_nisv)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_kvm_nested_eret)(void *, struct kvm_vcpu *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_kvm_set_guest_debug)(void *, struct kvm_vcpu *, __u32); + +typedef void (*btf_trace_kvm_set_irq)(void *, unsigned int, int, int); + +typedef void (*btf_trace_kvm_set_way_flush)(void *, long unsigned int, bool); + +typedef void (*btf_trace_kvm_sys_access)(void *, long unsigned int, struct sys_reg_params *, const struct sys_reg_desc *); + +typedef void (*btf_trace_kvm_test_age_hva)(void *, long unsigned int); + +typedef void (*btf_trace_kvm_timer_emulate)(void *, struct arch_timer_context *, bool); + +typedef void (*btf_trace_kvm_timer_hrtimer_expire)(void *, struct arch_timer_context *); + +typedef void (*btf_trace_kvm_timer_restore_state)(void *, struct arch_timer_context *); + +typedef void (*btf_trace_kvm_timer_save_state)(void *, struct arch_timer_context *); + +typedef void (*btf_trace_kvm_timer_update_irq)(void *, long unsigned int, __u32, int); + +typedef void (*btf_trace_kvm_toggle_cache)(void *, long unsigned int, bool, bool); + +typedef void (*btf_trace_kvm_unmap_hva_range)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_kvm_userspace_exit)(void *, __u32, int); + +typedef void (*btf_trace_kvm_vcpu_wakeup)(void *, __u64, bool, bool); + +typedef void (*btf_trace_kvm_wfx_arm64)(void *, long unsigned int, bool); + +typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lease *, struct file_lease *); + +typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *); + +typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_ma_op)(void *, const char *, struct ma_state *); + +typedef void (*btf_trace_ma_read)(void *, const char *, struct ma_state *); + +typedef void (*btf_trace_ma_write)(void *, const char *, struct ma_state *, long unsigned int, void *); + +typedef void (*btf_trace_map)(void *, long unsigned int, phys_addr_t, size_t); + +typedef void (*btf_trace_mark_victim)(void *, struct task_struct *, uid_t); + +typedef void (*btf_trace_mc_event)(void *, const unsigned int, const char *, const char *, const int, const u8, const s8, const s8, const s8, long unsigned int, const u8, long unsigned int, const char *); + +typedef void (*btf_trace_mctp_key_acquire)(void *, const struct mctp_sk_key *); + +typedef void (*btf_trace_mctp_key_release)(void *, const struct mctp_sk_key *, int); + +typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); + +typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *); + +typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); + +typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *); + +typedef void (*btf_trace_memcg_flush_stats)(void *, struct mem_cgroup *, s64, bool, bool); + +typedef void (*btf_trace_memory_failure_event)(void *, long unsigned int, int, int); + +typedef void (*btf_trace_mm_alloc_contig_migrate_range_info)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_mm_collapse_huge_page)(void *, struct mm_struct *, int, int); + +typedef void (*btf_trace_mm_collapse_huge_page_isolate)(void *, struct page *, int, int, bool, int); + +typedef void (*btf_trace_mm_collapse_huge_page_swapin)(void *, struct mm_struct *, int, int, int); + +typedef void (*btf_trace_mm_compaction_begin)(void *, struct compact_control *, long unsigned int, long unsigned int, bool); + +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_deferred)(void *, struct zone *, int); + +typedef void (*btf_trace_mm_compaction_end)(void *, struct compact_control *, long unsigned int, long unsigned int, bool, int); + +typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int); + +typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int); + +typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type); + +typedef void (*btf_trace_mm_compaction_migratepages)(void *, unsigned int, unsigned int); + +typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int); + +typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int); + +typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type); + +typedef void (*btf_trace_mm_filemap_add_to_page_cache)(void *, struct folio *); + +typedef void (*btf_trace_mm_filemap_delete_from_page_cache)(void *, struct folio *); + +typedef void (*btf_trace_mm_filemap_fault)(void *, struct address_space *, long unsigned int); + +typedef void (*btf_trace_mm_filemap_get_pages)(void *, struct address_space *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_mm_filemap_map_pages)(void *, struct address_space *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_mm_khugepaged_collapse_file)(void *, struct mm_struct *, struct folio *, long unsigned int, long unsigned int, bool, struct file *, int, int); + +typedef void (*btf_trace_mm_khugepaged_scan_file)(void *, struct mm_struct *, struct folio *, struct file *, int, int, int); + +typedef void (*btf_trace_mm_khugepaged_scan_pmd)(void *, struct mm_struct *, struct page *, bool, int, int, int, int); + +typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *); + +typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *); + +typedef void (*btf_trace_mm_migrate_pages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, enum migrate_mode, int); + +typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int); + +typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int); + +typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int); + +typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int); + +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_pcpu_drain)(void *, struct page *, unsigned int, int); + +typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long int, long int, long int); + +typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long int, long unsigned int, long long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, long unsigned int); + +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_lru_isolate)(void *, int, int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_mm_vmscan_lru_shrink_active)(void *, int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int, int); + +typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, long unsigned int, long unsigned int, struct reclaim_stat *, int, int); + +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, long unsigned int); + +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, long unsigned 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 *, long unsigned int); + +typedef void (*btf_trace_mm_vmscan_reclaim_pages)(void *, int, long unsigned int, long unsigned int, struct reclaim_stat *); + +typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int); + +typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *); + +typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, bool, bool); + +typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, bool); + +typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, bool); + +typedef void (*btf_trace_mmc_request_done)(void *, struct mmc_host *, struct mmc_request *); + +typedef void (*btf_trace_mmc_request_start)(void *, struct mmc_host *, struct mmc_request *); + +typedef void (*btf_trace_mod_memcg_lruvec_state)(void *, struct mem_cgroup *, int, int); + +typedef void (*btf_trace_mod_memcg_state)(void *, struct mem_cgroup *, int, int); + +typedef void (*btf_trace_module_free)(void *, struct module *); + +typedef void (*btf_trace_module_get)(void *, struct module *, long unsigned int); + +typedef void (*btf_trace_module_load)(void *, struct module *); + +typedef void (*btf_trace_module_put)(void *, struct module *, long unsigned int); + +typedef void (*btf_trace_module_request)(void *, char *, bool, long unsigned int); + +typedef void (*btf_trace_mptcp_sendmsg_frag)(void *, struct mptcp_ext *); + +typedef void (*btf_trace_mptcp_subflow_get_send)(void *, struct mptcp_subflow_context *); + +typedef void (*btf_trace_napi_gro_frags_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_napi_gro_frags_exit)(void *, int); + +typedef void (*btf_trace_napi_gro_receive_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_napi_gro_receive_exit)(void *, int); + +typedef void (*btf_trace_napi_poll)(void *, struct napi_struct *, int, int); + +typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, 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_event_send_dead)(void *, struct neighbour *, int); + +typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int); + +typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int); + +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_net_dev_queue)(void *, struct sk_buff *); + +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_netif_receive_skb)(void *, struct sk_buff *); + +typedef void (*btf_trace_netif_receive_skb_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_netif_receive_skb_exit)(void *, int); + +typedef void (*btf_trace_netif_receive_skb_list_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_netif_receive_skb_list_exit)(void *, int); + +typedef void (*btf_trace_netif_rx)(void *, struct sk_buff *); + +typedef void (*btf_trace_netif_rx_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_netif_rx_exit)(void *, int); + +typedef void (*btf_trace_netlink_extack)(void *, const char *); + +typedef void (*btf_trace_nmi_noise)(void *, u64, u64); + +typedef void (*btf_trace_non_standard_event)(void *, const guid_t *, const guid_t *, const char *, const u8, const u8 *, const u32); + +typedef void (*btf_trace_notifier_register)(void *, void *); + +typedef void (*btf_trace_notifier_run)(void *, void *); + +typedef void (*btf_trace_notifier_unregister)(void *, void *); + +typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *); + +typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32); + +typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, netmem_ref, u32); + +typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, netmem_ref, u32); + +typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int); + +typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); + +typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_hw_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); + +typedef void (*btf_trace_percpu_alloc_percpu)(void *, long unsigned int, bool, bool, size_t, size_t, void *, int, void *, size_t, gfp_t); + +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 *); + +typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void *); + +typedef void (*btf_trace_pm_qos_add_request)(void *, s32); + +typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); + +typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int); + +typedef void (*btf_trace_pm_qos_update_request)(void *, s32); + +typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); + +typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); + +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_purge_vmap_area_lazy)(void *, long unsigned int, long unsigned int, unsigned int); + +typedef void (*btf_trace_pwm_apply)(void *, struct pwm_device *, const struct pwm_state *, int); + +typedef void (*btf_trace_pwm_get)(void *, struct pwm_device *, const struct pwm_state *, int); + +typedef void (*btf_trace_pwm_read_waveform)(void *, struct pwm_device *, void *, int); + +typedef void (*btf_trace_pwm_round_waveform_fromhw)(void *, struct pwm_device *, const void *, struct pwm_waveform *, int); + +typedef void (*btf_trace_pwm_round_waveform_tohw)(void *, struct pwm_device *, const struct pwm_waveform *, void *, int); + +typedef void (*btf_trace_pwm_write_waveform)(void *, struct pwm_device *, const void *, int); + +typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32); + +typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *); + +typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *); + +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_rcu_stall_warning)(void *, const char *, const char *); + +typedef void (*btf_trace_rcu_utilization)(void *, const char *); + +typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, long unsigned int, long unsigned int, long unsigned int, int, bool); + +typedef void (*btf_trace_regcache_drop_region)(void *, struct regmap *, unsigned int, unsigned int); + +typedef void (*btf_trace_regcache_sync)(void *, struct regmap *, const char *, const char *); + +typedef void (*btf_trace_regmap_async_complete_done)(void *, struct regmap *); + +typedef void (*btf_trace_regmap_async_complete_start)(void *, struct regmap *); + +typedef void (*btf_trace_regmap_async_io_complete)(void *, struct regmap *); + +typedef void (*btf_trace_regmap_async_write_start)(void *, struct regmap *, unsigned int, int); + +typedef void (*btf_trace_regmap_bulk_read)(void *, struct regmap *, unsigned int, const void *, int); + +typedef void (*btf_trace_regmap_bulk_write)(void *, struct regmap *, unsigned int, const void *, int); + +typedef void (*btf_trace_regmap_cache_bypass)(void *, struct regmap *, bool); + +typedef void (*btf_trace_regmap_cache_only)(void *, struct regmap *, bool); + +typedef void (*btf_trace_regmap_hw_read_done)(void *, struct regmap *, unsigned int, int); + +typedef void (*btf_trace_regmap_hw_read_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_regmap_hw_write_start)(void *, struct regmap *, unsigned int, 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_reg_write)(void *, struct regmap *, unsigned int, unsigned int); + +typedef void (*btf_trace_regulator_bypass_disable)(void *, const char *); + +typedef void (*btf_trace_regulator_bypass_disable_complete)(void *, const char *); + +typedef void (*btf_trace_regulator_bypass_enable)(void *, const char *); + +typedef void (*btf_trace_regulator_bypass_enable_complete)(void *, const char *); + +typedef void (*btf_trace_regulator_disable)(void *, const char *); + +typedef void (*btf_trace_regulator_disable_complete)(void *, const char *); + +typedef void (*btf_trace_regulator_enable)(void *, const char *); + +typedef void (*btf_trace_regulator_enable_complete)(void *, const char *); + +typedef void (*btf_trace_regulator_enable_delay)(void *, const char *); + +typedef void (*btf_trace_regulator_set_voltage)(void *, const char *, int, int); + +typedef void (*btf_trace_regulator_set_voltage_complete)(void *, const char *, unsigned int); + +typedef void (*btf_trace_remove_device_from_group)(void *, int, struct device *); + +typedef void (*btf_trace_remove_migration_pmd)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_remove_migration_pte)(void *, long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_rpm_idle)(void *, struct device *, int); + +typedef void (*btf_trace_rpm_resume)(void *, struct device *, int); + +typedef void (*btf_trace_rpm_return_int)(void *, struct device *, long unsigned int, int); + +typedef void (*btf_trace_rpm_status)(void *, struct device *, enum rpm_status); + +typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int); + +typedef void (*btf_trace_rpm_usage)(void *, struct device *, int); + +typedef void (*btf_trace_rpmh_send_msg)(void *, struct rsc_drv *, int, enum rpmh_state, int, u32, const struct tcs_cmd *); + +typedef void (*btf_trace_rpmh_tx_done)(void *, struct rsc_drv *, int, const struct tcs_request *); + +typedef void (*btf_trace_rseq_ip_fixup)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_rseq_update)(void *, struct task_struct *); + +typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int); + +typedef void (*btf_trace_rtc_alarm_irq_enable)(void *, unsigned int, 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_read_alarm)(void *, time64_t, int); + +typedef void (*btf_trace_rtc_read_offset)(void *, long int, 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_set_offset)(void *, long int, int); + +typedef void (*btf_trace_rtc_set_time)(void *, time64_t, int); + +typedef void (*btf_trace_rtc_timer_dequeue)(void *, struct rtc_timer *); + +typedef void (*btf_trace_rtc_timer_enqueue)(void *, struct rtc_timer *); + +typedef void (*btf_trace_rtc_timer_fired)(void *, struct rtc_timer *); + +typedef void (*btf_trace_rwmmio_post_read)(void *, long unsigned int, long unsigned int, u64, u8, volatile const void *); + +typedef void (*btf_trace_rwmmio_post_write)(void *, long unsigned int, long unsigned int, u64, u8, volatile void *); + +typedef void (*btf_trace_rwmmio_read)(void *, long unsigned int, long unsigned int, u8, volatile const void *); + +typedef void (*btf_trace_rwmmio_write)(void *, long unsigned int, long unsigned int, u64, u8, volatile void *); + +typedef void (*btf_trace_sample_threshold)(void *, u64, u64, u64); + +typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); + +typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); + +typedef void (*btf_trace_sched_compute_energy_tp)(void *, struct task_struct *, int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); + +typedef void (*btf_trace_sched_ext_dump)(void *, const char *); + +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_execute_end)(void *, struct kthread_work *, kthread_work_func_t); + +typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); + +typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); + +typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int); + +typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int); + +typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); + +typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *); + +typedef void (*btf_trace_sched_prepare_exec)(void *, struct task_struct *, struct linux_binprm *); + +typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); + +typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); + +typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_process_hang)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); + +typedef void (*btf_trace_sched_skip_vma_numa)(void *, struct mm_struct *, struct vm_area_struct *, enum numa_vmaskip_reason); + +typedef void (*btf_trace_sched_stat_blocked)(void *, struct task_struct *, u64); + +typedef void (*btf_trace_sched_stat_iowait)(void *, struct task_struct *, u64); + +typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64); + +typedef void (*btf_trace_sched_stat_sleep)(void *, struct task_struct *, u64); + +typedef void (*btf_trace_sched_stat_wait)(void *, struct task_struct *, u64); + +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_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int); + +typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); + +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_wait_task)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int); + +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_waking)(void *, struct task_struct *); + +typedef void (*btf_trace_scmi_fc_call)(void *, u8, u8, u32, u32, u32); + +typedef void (*btf_trace_scmi_msg_dump)(void *, int, u8, u8, u8, unsigned char *, u16, int, void *, size_t); + +typedef void (*btf_trace_scmi_rx_done)(void *, int, u8, u8, u16, u8); + +typedef void (*btf_trace_scmi_xfer_begin)(void *, int, u8, u8, u16, bool); + +typedef void (*btf_trace_scmi_xfer_end)(void *, int, u8, u8, u16, int); + +typedef void (*btf_trace_scmi_xfer_response_wait)(void *, int, u8, u8, u16, u32, bool); + +typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *); + +typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int); + +typedef void (*btf_trace_scsi_dispatch_cmd_start)(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 *); + +typedef void (*btf_trace_scsi_prepare_zone_append)(void *, struct scsi_cmnd *, sector_t, unsigned int); + +typedef void (*btf_trace_scsi_zone_wp_update)(void *, struct scsi_cmnd *, sector_t, unsigned int, unsigned int); + +typedef void (*btf_trace_selinux_audited)(void *, struct selinux_audit_data *, char *, char *, const char *); + +typedef void (*btf_trace_set_migration_pmd)(void *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_set_migration_pte)(void *, long unsigned int, long unsigned int, int); + +typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); + +typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); + +typedef void (*btf_trace_sk_data_ready)(void *, const struct sock *); + +typedef void (*btf_trace_skb_copy_datagram_iovec)(void *, const struct sk_buff *, int); + +typedef void (*btf_trace_skip_task_reaping)(void *, int); + +typedef void (*btf_trace_smbus_read)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int); + +typedef void (*btf_trace_smbus_reply)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int, const union i2c_smbus_data *, int); + +typedef void (*btf_trace_smbus_result)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int, int); + +typedef void (*btf_trace_smbus_write)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int, const union i2c_smbus_data *); + +typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long int, int); + +typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *); + +typedef void (*btf_trace_sock_recv_length)(void *, struct sock *, int, int); + +typedef void (*btf_trace_sock_send_length)(void *, struct sock *, int, int); + +typedef void (*btf_trace_softirq_entry)(void *, unsigned int); + +typedef void (*btf_trace_softirq_exit)(void *, unsigned int); + +typedef void (*btf_trace_softirq_noise)(void *, int, u64, u64); + +typedef void (*btf_trace_softirq_raise)(void *, unsigned int); + +typedef void (*btf_trace_spi_controller_busy)(void *, struct spi_controller *); + +typedef void (*btf_trace_spi_controller_idle)(void *, struct spi_controller *); + +typedef void (*btf_trace_spi_message_done)(void *, struct spi_message *); + +typedef void (*btf_trace_spi_message_start)(void *, struct spi_message *); + +typedef void (*btf_trace_spi_message_submit)(void *, struct spi_message *); + +typedef void (*btf_trace_spi_set_cs)(void *, struct spi_device *, bool); + +typedef void (*btf_trace_spi_setup)(void *, struct spi_device *, int); + +typedef void (*btf_trace_spi_transfer_start)(void *, struct spi_message *, struct spi_transfer *); + +typedef void (*btf_trace_spi_transfer_stop)(void *, struct spi_message *, struct spi_transfer *); + +typedef void (*btf_trace_start_task_reaping)(void *, int); + +typedef void (*btf_trace_subflow_check_data_avail)(void *, __u8, struct sk_buff *); + +typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); + +typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t); + +typedef void (*btf_trace_sync_timeline)(void *, struct sync_timeline *); + +typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long int); + +typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long int); + +typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, long unsigned int); + +typedef void (*btf_trace_task_prctl_unknown)(void *, int, long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *); + +typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); + +typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); + +typedef void (*btf_trace_tcp_ao_handshake_failure)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_key_not_found)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_mismatch)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_rcv_sne_update)(void *, const struct sock *, __u32); + +typedef void (*btf_trace_tcp_ao_rnext_request)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_snd_sne_update)(void *, const struct sock *, __u32); + +typedef void (*btf_trace_tcp_ao_synack_no_key)(void *, const struct sock *, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_wrong_maclen)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +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_tcp_destroy_sock)(void *, struct sock *); + +typedef void (*btf_trace_tcp_hash_ao_required)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_bad_header)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_md5_mismatch)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_md5_required)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_md5_unexpected)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *); + +typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *); + +typedef void (*btf_trace_tcp_receive_reset)(void *, struct sock *); + +typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *); + +typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *, const enum sk_rst_reason); + +typedef void (*btf_trace_tegra_dma_complete_cb)(void *, struct dma_chan *, int, void *); + +typedef void (*btf_trace_tegra_dma_isr)(void *, struct dma_chan *, int); + +typedef void (*btf_trace_tegra_dma_tx_status)(void *, struct dma_chan *, dma_cookie_t, struct dma_tx_state *); + +typedef void (*btf_trace_test_pages_isolated)(void *, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_thermal_power_actor)(void *, struct thermal_zone_device *, int, u32, u32); + +typedef void (*btf_trace_thermal_power_allocator)(void *, struct thermal_zone_device *, u32, u32, int, u32, u32, int, s32); + +typedef void (*btf_trace_thermal_power_allocator_pid)(void *, struct thermal_zone_device *, s32, s32, s64, s64, s64, s32); + +typedef void (*btf_trace_thermal_power_cpu_get_power_simple)(void *, int, u32); + +typedef void (*btf_trace_thermal_power_cpu_limit)(void *, const struct cpumask *, unsigned int, long unsigned int, u32); + +typedef void (*btf_trace_thermal_power_devfreq_get_power)(void *, struct thermal_cooling_device *, struct devfreq_dev_status *, long unsigned int, u32); + +typedef void (*btf_trace_thermal_power_devfreq_limit)(void *, struct thermal_cooling_device *, long unsigned int, long unsigned int, u32); + +typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *); + +typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type); + +typedef void (*btf_trace_thread_noise)(void *, struct task_struct *, u64, u64); + +typedef void (*btf_trace_tick_stop)(void *, int, int); + +typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_timer_base_idle)(void *, bool, unsigned int); + +typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *); + +typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, long unsigned int); + +typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *); + +typedef void (*btf_trace_timer_init)(void *, struct timer_list *); + +typedef void (*btf_trace_timer_start)(void *, struct timer_list *, long unsigned int); + +typedef void (*btf_trace_tlb_flush)(void *, int, long unsigned int); + +typedef void (*btf_trace_tls_alert_recv)(void *, const struct sock *, unsigned char, unsigned char); + +typedef void (*btf_trace_tls_alert_send)(void *, const struct sock *, unsigned char, unsigned char); + +typedef void (*btf_trace_tls_contenttype)(void *, const struct sock *, unsigned char); + +typedef void (*btf_trace_tmigr_connect_child_parent)(void *, struct tmigr_group *); + +typedef void (*btf_trace_tmigr_connect_cpu_parent)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_active)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_idle)(void *, struct tmigr_cpu *, u64); + +typedef void (*btf_trace_tmigr_cpu_new_timer)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_new_timer_idle)(void *, struct tmigr_cpu *, u64); + +typedef void (*btf_trace_tmigr_cpu_offline)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_online)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_group_set)(void *, struct tmigr_group *); + +typedef void (*btf_trace_tmigr_group_set_cpu_active)(void *, struct tmigr_group *, union tmigr_state, u32); + +typedef void (*btf_trace_tmigr_group_set_cpu_inactive)(void *, struct tmigr_group *, union tmigr_state, u32); + +typedef void (*btf_trace_tmigr_handle_remote)(void *, struct tmigr_group *); + +typedef void (*btf_trace_tmigr_handle_remote_cpu)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_update_events)(void *, struct tmigr_group *, struct tmigr_group *, union tmigr_state, union tmigr_state, u64); + +typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *); + +typedef void (*btf_trace_udp_fail_queue_rcv_skb)(void *, int, struct sock *, struct sk_buff *); + +typedef void (*btf_trace_unmap)(void *, long unsigned int, size_t, size_t); + +typedef void (*btf_trace_user_enter)(void *, int); + +typedef void (*btf_trace_user_exit)(void *, int); + +typedef void (*btf_trace_vgic_update_irq_pending)(void *, long unsigned int, __u32, bool); + +typedef void (*btf_trace_vm_unmapped_area)(void *, long unsigned int, struct vm_unmapped_area_info *); + +typedef void (*btf_trace_vma_mas_szero)(void *, struct maple_tree *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_vma_store)(void *, struct maple_tree *, struct vm_area_struct *); + +typedef void (*btf_trace_wake_reaper)(void *, int); + +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_watchdog_ping)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_set_timeout)(void *, struct watchdog_device *, unsigned int, int); + +typedef void (*btf_trace_watchdog_start)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_stop)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *); + +typedef void (*btf_trace_wbt_lat)(void *, struct backing_dev_info *, long unsigned int); + +typedef void (*btf_trace_wbt_stat)(void *, struct backing_dev_info *, struct blk_rq_stat *); + +typedef void (*btf_trace_wbt_step)(void *, struct backing_dev_info *, const char *, int, long unsigned int, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_wbt_timer)(void *, struct backing_dev_info *, unsigned int, int, unsigned int); + +typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *); + +typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t); + +typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *); + +typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *); + +typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *); + +typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *); + +typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *); + +typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *); + +typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_pages_written)(void *, long int); + +typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, long unsigned int, int); + +typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *); + +typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, long unsigned int); + +typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, long unsigned int); + +typedef void (*btf_trace_writeback_start)(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_wake_background)(void *, struct bdi_writeback *); + +typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int); + +typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int); + +typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); + +typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int); + +typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32); + +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_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); + +typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); + +typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_alloc_stream_info_ctx)(void *, struct xhci_stream_info *, unsigned int); + +typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); + +typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_init)(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_ring_expansion)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_get_port_status)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(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_reset_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq_stream)(void *, struct xhci_stream_info *, unsigned int); + +typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_handle_port_status)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_hub_status_data)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *, dma_addr_t); + +typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); + +typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); + +typedef void (*btf_trace_xhci_setup_addressable_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_device_slot)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); + +typedef int (*cb_t)(struct param *); + +typedef void cleanup_cb_t(struct rq_wait *, void *); + +typedef int (*cmp_r_func_t)(const void *, const void *, const void *); + +typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); + +typedef enum trap_behaviour (*complex_condition_check)(struct kvm_vcpu *); + +typedef int cont_fn(struct opal_dev *); + +typedef void detailed_cb(const struct detailed_timing *, void *); + +typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); + +typedef int (*device_iter_t)(struct device *, void *); + +typedef int (*device_match_t)(struct device *, const void *); + +typedef int devlink_chunk_fill_t(void *, u8 *, u32, u64, struct netlink_ext_ack *); + +typedef int devlink_nl_dump_one_func_t(struct sk_buff *, struct devlink *, struct netlink_callback *, int); + +typedef int (*dr_match_t)(struct device *, void *, void *); + +typedef int drm_ioctl_compat_t(struct file *, unsigned int, long unsigned int); + +typedef bool (*drm_vblank_get_scanout_position_func)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *); + +typedef struct dtpm * (*dtpm_node_callback_t)(const struct dtpm_node *, struct dtpm *); + +typedef int (*dummy_ops_test_ret_fn)(struct bpf_dummy_ops_state *, ...); + +typedef int (*dynevent_check_arg_fn_t)(void *); + +typedef void (*efi_element_handler_t)(const char *, const void *, size_t); + +typedef efi_status_t (*efi_exit_boot_map_processing)(struct efi_boot_memmap *, void *); + +typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool); + +typedef int (*entry_fn_t)(struct vgic_its *, u32, void *, void *); + +typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); + +typedef int (*exit_handle_fn)(struct kvm_vcpu *); + +typedef bool (*exit_handler_fn)(struct kvm_vcpu *, u64 *); + +typedef void (*exitcall_t)(void); + +typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); + +typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *); + +typedef int filler_t(struct file *, struct folio *); + +typedef bool (*filter_func_t)(struct uprobe_consumer *, struct mm_struct *); + +typedef void fn_handler_fn(struct vc_data *); + +typedef void free_folio_t(struct folio *, long unsigned int); + +typedef int (*ftrace_mapper_func)(void *); + +typedef access_mask_t get_access_mask_t(const struct landlock_ruleset * const, const u16); + +typedef int (*get_char_func)(void); + +typedef struct irq_chip * (*gpio_get_irq_chip_cb_t)(unsigned int); + +typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); + +typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); + +typedef void (*hcall_t)(struct kvm_cpu_context *); + +typedef u32 inet6_ehashfn_t(const struct net *, const struct in6_addr *, const u16, const struct in6_addr *, const __be16); + +typedef u32 inet_ehashfn_t(const struct net *, const __be32, const __u16, const __be32, const __be16); + +typedef int (*initxattrs)(struct inode *, const struct xattr *, void *); + +typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); + +typedef int (*ioctl_fn)(struct file *, struct dm_ioctl *, size_t); + +typedef void (*iomap_punch_t)(struct inode *, loff_t, loff_t, struct iomap *); + +typedef int (*ioremap_prot_hook_t)(phys_addr_t, size_t, pgprot_t *); + +typedef acpi_status (*iort_find_node_callback)(struct acpi_iort_node *, void *); + +typedef size_t (*iov_step_f)(void *, size_t, size_t, void *, void *); + +typedef size_t (*iov_ustep_f)(void *, size_t, size_t, void *, void *); + +typedef int (*iova_bitmap_fn_t)(struct iova_bitmap *, long unsigned int, size_t, void *); + +typedef void ip6_icmp_send_t(struct sk_buff *, u8, u8, __u32, const struct in6_addr *, const struct inet6_skb_parm *); + +typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); + +typedef struct its_collection * (*its_cmd_builder_t)(struct its_node *, struct its_cmd_block *, struct its_cmd_desc *); + +typedef struct its_vpe * (*its_cmd_vbuilder_t)(struct its_node *, struct its_cmd_block *, struct its_cmd_desc *); + +typedef void k_handler_fn(struct vc_data *, unsigned char, char); + +typedef void kpti_remap_fn(int, int, phys_addr_t, long unsigned int); + +typedef bool (*kunwind_consume_fn)(const struct kunwind_state *, void *); + +typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); + +typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, void *); + +typedef int mh_filter_t(struct sock *, struct sk_buff *); + +typedef void (*move_fn_t)(struct lruvec *, struct folio *); + +typedef int (*netlink_filter_fn)(struct sock *, struct sk_buff *, void *); + +typedef struct folio *new_folio_t(struct folio *, long unsigned int); + +typedef struct ns_common *ns_get_path_helper_t(void *); + +typedef int (*objpool_init_obj_cb)(void *, void *); + +typedef struct gpio_desc * (*of_find_gpio_quirk)(struct device_node *, const char *, unsigned int, enum of_gpio_flags *); + +typedef void (*of_init_fn_1)(struct device_node *); + +typedef int (*of_init_fn_1_ret)(struct device_node *); + +typedef int (*of_init_fn_2)(struct device_node *, struct device_node *); + +typedef void (*online_page_callback_t)(struct page *, unsigned int); + +typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **); + +typedef int (*parse_unknown_fn)(char *, char *, const char *, void *); + +typedef void (*pci_parity_check_fn_t)(struct pci_dev *); + +typedef int (*pcie_callback_t)(struct pcie_device *); + +typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); + +typedef int pcpu_fc_cpu_to_node_fn_t(int); + +typedef void perf_iterate_f(struct perf_event *, void *); + +typedef int perf_snapshot_branch_stack_t(struct perf_branch_entry *, unsigned int); + +typedef int (*pm_callback_t)(struct device *); + +typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); + +typedef int (*pp_nl_fill_cb)(struct sk_buff *, const struct page_pool *, const struct genl_info *); + +typedef int (*proc_visitor)(struct task_struct *, void *); + +typedef long unsigned int psci_fn(long unsigned int, long unsigned int, long unsigned int, long unsigned int); + +typedef int (*psci_initcall_t)(const struct device_node *); + +typedef bool pstate_check_t(long unsigned int); + +typedef int (*pte_fn_t)(pte_t *, long unsigned int, void *); + +typedef int read_block_fn(void *, u8 *, unsigned int, size_t); + +typedef int (*reservedmem_of_init_fn)(struct reserved_mem *); + +typedef bool (*ring_buffer_cond_fn)(void *); + +typedef int (*rproc_handle_resource_t)(struct rproc *, void *, int, int); + +typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); + +typedef int (*sendmsg_func)(struct sock *, struct msghdr *); + +typedef void (*serial8250_isa_config_fn)(int, struct uart_port *, u32 *); + +typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); + +typedef void (*set_params_cb)(struct dwc2_hsotg *); + +typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); + +typedef void sg_free_fn(struct scatterlist *, unsigned int); + +typedef void sha1_block_fn(struct sha1_state *, const u8 *, int); + +typedef void sha256_block_fn(struct sha256_state *, const u8 *, int); + +typedef void sha512_block_fn(struct sha512_state *, const u8 *, int); + +typedef bool (*smp_cond_func_t)(int, void *); + +typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); + +typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); + +typedef void (*swap_r_func_t)(void *, void *, int, const void *); + +typedef void (*synth_probe_func_t)(void *, u64 *, unsigned int *); + +typedef long int (*syscall_fn_t)(const struct pt_regs *); + +typedef int (*task_call_f)(struct task_struct *, void *); + +typedef void (*task_work_func_t)(struct callback_head *); + +typedef void (*tegra_clk_apply_init_table_func)(void); + +typedef void text_poke_f(void *, void *, size_t, size_t); + +typedef int (*tg_visitor)(struct task_group *, void *); + +typedef int (*tpm_tis_spi_probe_func)(struct spi_device *); + +typedef void ttbr_replace_func(phys_addr_t); + +typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); + +typedef bool (*up_f)(struct tmigr_group *, struct tmigr_group *, struct tmigr_walk *); + +typedef void (*user_event_func_t)(struct user_event *, struct iov_iter *, void *, bool *); + +typedef void (*visitor128_t)(void *, long unsigned int, u64, u64, size_t); + +typedef void (*visitor32_t)(void *, long unsigned int, u32, size_t); + +typedef void (*visitor64_t)(void *, long unsigned int, u64, size_t); + +typedef void (*visitorl_t)(void *, long unsigned int, long unsigned int, size_t); + +typedef int wait_bit_action_f(struct wait_bit_key *, int); + +typedef int (*walk_hmem_fn)(struct device *, int, const struct resource *); + +typedef int (*walk_memory_groups_func_t)(struct memory_group *, void *); + +typedef int (*wext_ioctl_func)(struct net_device *, struct iwreq *, unsigned int, struct iw_request_info *, iw_handler); + +typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); + +typedef void (*xen_gfn_fn_t)(long unsigned int, void *); + +typedef void (*xen_grant_fn_t)(long unsigned int, unsigned int, unsigned int, void *); + +typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); + +struct xen_dm_op_buf; + +struct nf_bridge_frag_data; + +struct kunit; + +struct bpf_iter; + +struct creds; + +struct pctldev; + + +/* BPF kfuncs */ +#ifndef BPF_NO_KFUNC_PROTOTYPES +extern void *bpf_arena_alloc_pages(void *p__map, void *addr__ign, u32 page_cnt, int node_id, u64 flags) __weak __ksym; +extern void bpf_arena_free_pages(void *p__map, void *ptr__ign, u32 page_cnt) __weak __ksym; +extern __bpf_fastcall void *bpf_cast_to_kern_ctx(void *obj) __weak __ksym; +extern struct cgroup *bpf_cgroup_acquire(struct cgroup *cgrp) __weak __ksym; +extern struct cgroup *bpf_cgroup_ancestor(struct cgroup *cgrp, int level) __weak __ksym; +extern struct cgroup *bpf_cgroup_from_id(u64 cgid) __weak __ksym; +extern void bpf_cgroup_release(struct cgroup *cgrp) __weak __ksym; +extern int bpf_copy_from_user_str(void *dst, u32 dst__sz, const void *unsafe_ptr__ign, u64 flags) __weak __ksym; +extern struct bpf_cpumask *bpf_cpumask_acquire(struct bpf_cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_and(struct bpf_cpumask *dst, const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern u32 bpf_cpumask_any_and_distribute(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern u32 bpf_cpumask_any_distribute(const struct cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_clear(struct bpf_cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_copy(struct bpf_cpumask *dst, const struct cpumask *src) __weak __ksym; +extern struct bpf_cpumask *bpf_cpumask_create(void) __weak __ksym; +extern bool bpf_cpumask_empty(const struct cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_equal(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern u32 bpf_cpumask_first(const struct cpumask *cpumask) __weak __ksym; +extern u32 bpf_cpumask_first_and(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern u32 bpf_cpumask_first_zero(const struct cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_full(const struct cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_intersects(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern void bpf_cpumask_or(struct bpf_cpumask *dst, const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern void bpf_cpumask_release(struct bpf_cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_set_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_setall(struct bpf_cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_subset(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern bool bpf_cpumask_test_and_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_test_and_set_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_test_cpu(u32 cpu, const struct cpumask *cpumask) __weak __ksym; +extern u32 bpf_cpumask_weight(const struct cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_xor(struct bpf_cpumask *dst, const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern struct bpf_crypto_ctx *bpf_crypto_ctx_acquire(struct bpf_crypto_ctx *ctx) __weak __ksym; +extern struct bpf_crypto_ctx *bpf_crypto_ctx_create(const struct bpf_crypto_params *params, u32 params__sz, int *err) __weak __ksym; +extern void bpf_crypto_ctx_release(struct bpf_crypto_ctx *ctx) __weak __ksym; +extern int bpf_crypto_decrypt(struct bpf_crypto_ctx *ctx, const struct bpf_dynptr *src, const struct bpf_dynptr *dst, const struct bpf_dynptr *siv__nullable) __weak __ksym; +extern int bpf_crypto_encrypt(struct bpf_crypto_ctx *ctx, const struct bpf_dynptr *src, const struct bpf_dynptr *dst, const struct bpf_dynptr *siv__nullable) __weak __ksym; +extern int bpf_dynptr_adjust(const struct bpf_dynptr *p, u32 start, u32 end) __weak __ksym; +extern int bpf_dynptr_clone(const struct bpf_dynptr *p, struct bpf_dynptr *clone__uninit) __weak __ksym; +extern int bpf_dynptr_from_skb(struct __sk_buff *s, u64 flags, struct bpf_dynptr *ptr__uninit) __weak __ksym; +extern int bpf_dynptr_from_xdp(struct xdp_md *x, u64 flags, struct bpf_dynptr *ptr__uninit) __weak __ksym; +extern bool bpf_dynptr_is_null(const struct bpf_dynptr *p) __weak __ksym; +extern bool bpf_dynptr_is_rdonly(const struct bpf_dynptr *p) __weak __ksym; +extern __u32 bpf_dynptr_size(const struct bpf_dynptr *p) __weak __ksym; +extern void *bpf_dynptr_slice(const struct bpf_dynptr *p, u32 offset, void *buffer__opt, u32 buffer__szk) __weak __ksym; +extern void *bpf_dynptr_slice_rdwr(const struct bpf_dynptr *p, u32 offset, void *buffer__opt, u32 buffer__szk) __weak __ksym; +extern int bpf_fentry_test1(int a) __weak __ksym; +extern int bpf_get_dentry_xattr(struct dentry *dentry, const char *name__str, struct bpf_dynptr *value_p) __weak __ksym; +extern int bpf_get_file_xattr(struct file *file, const char *name__str, struct bpf_dynptr *value_p) __weak __ksym; +extern int bpf_get_fsverity_digest(struct file *file, struct bpf_dynptr *digest_p) __weak __ksym; +extern struct kmem_cache *bpf_get_kmem_cache(u64 addr) __weak __ksym; +extern struct file *bpf_get_task_exe_file(struct task_struct *task) __weak __ksym; +extern void bpf_iter_bits_destroy(struct bpf_iter_bits *it) __weak __ksym; +extern int bpf_iter_bits_new(struct bpf_iter_bits *it, const u64 *unsafe_ptr__ign, u32 nr_words) __weak __ksym; +extern int *bpf_iter_bits_next(struct bpf_iter_bits *it) __weak __ksym; +extern void bpf_iter_css_destroy(struct bpf_iter_css *it) __weak __ksym; +extern int bpf_iter_css_new(struct bpf_iter_css *it, struct cgroup_subsys_state *start, unsigned int flags) __weak __ksym; +extern struct cgroup_subsys_state *bpf_iter_css_next(struct bpf_iter_css *it) __weak __ksym; +extern void bpf_iter_css_task_destroy(struct bpf_iter_css_task *it) __weak __ksym; +extern int bpf_iter_css_task_new(struct bpf_iter_css_task *it, struct cgroup_subsys_state *css, unsigned int flags) __weak __ksym; +extern struct task_struct *bpf_iter_css_task_next(struct bpf_iter_css_task *it) __weak __ksym; +extern void bpf_iter_kmem_cache_destroy(struct bpf_iter_kmem_cache *it) __weak __ksym; +extern int bpf_iter_kmem_cache_new(struct bpf_iter_kmem_cache *it) __weak __ksym; +extern struct kmem_cache *bpf_iter_kmem_cache_next(struct bpf_iter_kmem_cache *it) __weak __ksym; +extern void bpf_iter_num_destroy(struct bpf_iter_num *it) __weak __ksym; +extern int bpf_iter_num_new(struct bpf_iter_num *it, int start, int end) __weak __ksym; +extern int *bpf_iter_num_next(struct bpf_iter_num *it) __weak __ksym; +extern void bpf_iter_scx_dsq_destroy(struct bpf_iter_scx_dsq *it) __weak __ksym; +extern int bpf_iter_scx_dsq_new(struct bpf_iter_scx_dsq *it, u64 dsq_id, u64 flags) __weak __ksym; +extern struct task_struct *bpf_iter_scx_dsq_next(struct bpf_iter_scx_dsq *it) __weak __ksym; +extern void bpf_iter_task_destroy(struct bpf_iter_task *it) __weak __ksym; +extern int bpf_iter_task_new(struct bpf_iter_task *it, struct task_struct *task__nullable, unsigned int flags) __weak __ksym; +extern struct task_struct *bpf_iter_task_next(struct bpf_iter_task *it) __weak __ksym; +extern void bpf_iter_task_vma_destroy(struct bpf_iter_task_vma *it) __weak __ksym; +extern int bpf_iter_task_vma_new(struct bpf_iter_task_vma *it, struct task_struct *task, u64 addr) __weak __ksym; +extern struct vm_area_struct *bpf_iter_task_vma_next(struct bpf_iter_task_vma *it) __weak __ksym; +extern void bpf_key_put(struct bpf_key *bkey) __weak __ksym; +extern void bpf_kfunc_call_memb_release(struct prog_test_member *p) __weak __ksym; +extern void bpf_kfunc_call_test_release(struct prog_test_ref_kfunc *p) __weak __ksym; +extern struct bpf_list_node *bpf_list_pop_back(struct bpf_list_head *head) __weak __ksym; +extern struct bpf_list_node *bpf_list_pop_front(struct bpf_list_head *head) __weak __ksym; +extern int bpf_list_push_back_impl(struct bpf_list_head *head, struct bpf_list_node *node, void *meta__ign, u64 off) __weak __ksym; +extern int bpf_list_push_front_impl(struct bpf_list_head *head, struct bpf_list_node *node, void *meta__ign, u64 off) __weak __ksym; +extern void bpf_local_irq_restore(long unsigned int *flags__irq_flag) __weak __ksym; +extern void bpf_local_irq_save(long unsigned int *flags__irq_flag) __weak __ksym; +extern struct bpf_key *bpf_lookup_system_key(u64 id) __weak __ksym; +extern struct bpf_key *bpf_lookup_user_key(u32 serial, u64 flags) __weak __ksym; +extern s64 bpf_map_sum_elem_count(const struct bpf_map *map) __weak __ksym; +extern int bpf_modify_return_test(int a, int *b) __weak __ksym; +extern int bpf_modify_return_test2(int a, int *b, short int c, int d, void *e, char f, int g) __weak __ksym; +extern int bpf_modify_return_test_tp(int nonce) __weak __ksym; +extern void bpf_obj_drop_impl(void *p__alloc, void *meta__ign) __weak __ksym; +extern void *bpf_obj_new_impl(u64 local_type_id__k, void *meta__ign) __weak __ksym; +extern int bpf_path_d_path(struct path *path, char *buf, size_t buf__sz) __weak __ksym; +extern void bpf_percpu_obj_drop_impl(void *p__alloc, void *meta__ign) __weak __ksym; +extern void *bpf_percpu_obj_new_impl(u64 local_type_id__k, void *meta__ign) __weak __ksym; +extern void bpf_preempt_disable(void) __weak __ksym; +extern void bpf_preempt_enable(void) __weak __ksym; +extern void bpf_put_file(struct file *file) __weak __ksym; +extern int bpf_rbtree_add_impl(struct bpf_rb_root *root, struct bpf_rb_node *node, bool (*less)(struct bpf_rb_node *, const struct bpf_rb_node *), void *meta__ign, u64 off) __weak __ksym; +extern struct bpf_rb_node *bpf_rbtree_first(struct bpf_rb_root *root) __weak __ksym; +extern struct bpf_rb_node *bpf_rbtree_remove(struct bpf_rb_root *root, struct bpf_rb_node *node) __weak __ksym; +extern void bpf_rcu_read_lock(void) __weak __ksym; +extern void bpf_rcu_read_unlock(void) __weak __ksym; +extern __bpf_fastcall void *bpf_rdonly_cast(const void *obj__ign, u32 btf_id__k) __weak __ksym; +extern void *bpf_refcount_acquire_impl(void *p__refcounted_kptr, void *meta__ign) __weak __ksym; +extern int bpf_send_signal_task(struct task_struct *task, int sig, enum pid_type type, u64 value) __weak __ksym; +extern __u64 *bpf_session_cookie(void) __weak __ksym; +extern bool bpf_session_is_return(void) __weak __ksym; +extern int bpf_sk_assign_tcp_reqsk(struct __sk_buff *s, struct sock *sk, struct bpf_tcp_req_attrs *attrs, int attrs__sz) __weak __ksym; +extern int bpf_sock_addr_set_sun_path(struct bpf_sock_addr_kern *sa_kern, const u8 *sun_path, u32 sun_path__sz) __weak __ksym; +extern int bpf_sock_destroy(struct sock_common *sock) __weak __ksym; +extern struct task_struct *bpf_task_acquire(struct task_struct *p) __weak __ksym; +extern struct task_struct *bpf_task_from_pid(s32 pid) __weak __ksym; +extern struct task_struct *bpf_task_from_vpid(s32 vpid) __weak __ksym; +extern struct cgroup *bpf_task_get_cgroup1(struct task_struct *task, int hierarchy_id) __weak __ksym; +extern void bpf_task_release(struct task_struct *p) __weak __ksym; +extern long int bpf_task_under_cgroup(struct task_struct *task, struct cgroup *ancestor) __weak __ksym; +extern void bpf_throw(u64 cookie) __weak __ksym; +extern int bpf_verify_pkcs7_signature(struct bpf_dynptr *data_p, struct bpf_dynptr *sig_p, struct bpf_key *trusted_keyring) __weak __ksym; +extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; +extern int bpf_wq_set_callback_impl(struct bpf_wq *wq, int (*callback_fn)(void *, int *, void *), unsigned int flags, void *aux__ign) __weak __ksym; +extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; +extern struct xfrm_state *bpf_xdp_get_xfrm_state(struct xdp_md *ctx, struct bpf_xfrm_state_opts *opts, u32 opts__sz) __weak __ksym; +extern int bpf_xdp_metadata_rx_hash(const struct xdp_md *ctx, u32 *hash, enum xdp_rss_hash_type *rss_type) __weak __ksym; +extern int bpf_xdp_metadata_rx_timestamp(const struct xdp_md *ctx, u64 *timestamp) __weak __ksym; +extern int bpf_xdp_metadata_rx_vlan_tag(const struct xdp_md *ctx, __be16 *vlan_proto, u16 *vlan_tci) __weak __ksym; +extern void bpf_xdp_xfrm_state_release(struct xfrm_state *x) __weak __ksym; +extern void cgroup_rstat_flush(struct cgroup *cgrp) __weak __ksym; +extern void cgroup_rstat_updated(struct cgroup *cgrp, int cpu) __weak __ksym; +extern void crash_kexec(struct pt_regs *regs) __weak __ksym; +extern void cubictcp_acked(struct sock *sk, const struct ack_sample *sample) __weak __ksym; +extern void cubictcp_cong_avoid(struct sock *sk, u32 ack, u32 acked) __weak __ksym; +extern void cubictcp_cwnd_event(struct sock *sk, enum tcp_ca_event event) __weak __ksym; +extern void cubictcp_init(struct sock *sk) __weak __ksym; +extern u32 cubictcp_recalc_ssthresh(struct sock *sk) __weak __ksym; +extern void cubictcp_state(struct sock *sk, u8 new_state) __weak __ksym; +extern struct hid_bpf_ctx *hid_bpf_allocate_context(unsigned int hid_id) __weak __ksym; +extern __u8 *hid_bpf_get_data(struct hid_bpf_ctx *ctx, unsigned int offset, const size_t rdwr_buf_size) __weak __ksym; +extern int hid_bpf_hw_output_report(struct hid_bpf_ctx *ctx, __u8 *buf, size_t buf__sz) __weak __ksym; +extern int hid_bpf_hw_request(struct hid_bpf_ctx *ctx, __u8 *buf, size_t buf__sz, enum hid_report_type rtype, enum hid_class_request reqtype) __weak __ksym; +extern int hid_bpf_input_report(struct hid_bpf_ctx *ctx, enum hid_report_type type, u8 *buf, const size_t buf__sz) __weak __ksym; +extern void hid_bpf_release_context(struct hid_bpf_ctx *ctx) __weak __ksym; +extern int hid_bpf_try_input_report(struct hid_bpf_ctx *ctx, enum hid_report_type type, u8 *buf, const size_t buf__sz) __weak __ksym; +extern bool scx_bpf_consume(u64 dsq_id) __weak __ksym; +extern struct rq *scx_bpf_cpu_rq(s32 cpu) __weak __ksym; +extern u32 scx_bpf_cpuperf_cap(s32 cpu) __weak __ksym; +extern u32 scx_bpf_cpuperf_cur(s32 cpu) __weak __ksym; +extern void scx_bpf_cpuperf_set(s32 cpu, u32 perf) __weak __ksym; +extern s32 scx_bpf_create_dsq(u64 dsq_id, s32 node) __weak __ksym; +extern void scx_bpf_destroy_dsq(u64 dsq_id) __weak __ksym; +extern void scx_bpf_dispatch(struct task_struct *p, u64 dsq_id, u64 slice, u64 enq_flags) __weak __ksym; +extern void scx_bpf_dispatch_cancel(void) __weak __ksym; +extern bool scx_bpf_dispatch_from_dsq(struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __weak __ksym; +extern void scx_bpf_dispatch_from_dsq_set_slice(struct bpf_iter_scx_dsq *it__iter, u64 slice) __weak __ksym; +extern void scx_bpf_dispatch_from_dsq_set_vtime(struct bpf_iter_scx_dsq *it__iter, u64 vtime) __weak __ksym; +extern u32 scx_bpf_dispatch_nr_slots(void) __weak __ksym; +extern void scx_bpf_dispatch_vtime(struct task_struct *p, u64 dsq_id, u64 slice, u64 vtime, u64 enq_flags) __weak __ksym; +extern bool scx_bpf_dispatch_vtime_from_dsq(struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __weak __ksym; +extern void scx_bpf_dsq_insert(struct task_struct *p, u64 dsq_id, u64 slice, u64 enq_flags) __weak __ksym; +extern void scx_bpf_dsq_insert_vtime(struct task_struct *p, u64 dsq_id, u64 slice, u64 vtime, u64 enq_flags) __weak __ksym; +extern bool scx_bpf_dsq_move(struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __weak __ksym; +extern void scx_bpf_dsq_move_set_slice(struct bpf_iter_scx_dsq *it__iter, u64 slice) __weak __ksym; +extern void scx_bpf_dsq_move_set_vtime(struct bpf_iter_scx_dsq *it__iter, u64 vtime) __weak __ksym; +extern bool scx_bpf_dsq_move_to_local(u64 dsq_id) __weak __ksym; +extern bool scx_bpf_dsq_move_vtime(struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __weak __ksym; +extern s32 scx_bpf_dsq_nr_queued(u64 dsq_id) __weak __ksym; +extern void scx_bpf_dump_bstr(char *fmt, long long unsigned int *data, u32 data__sz) __weak __ksym; +extern void scx_bpf_error_bstr(char *fmt, long long unsigned int *data, u32 data__sz) __weak __ksym; +extern void scx_bpf_exit_bstr(s64 exit_code, char *fmt, long long unsigned int *data, u32 data__sz) __weak __ksym; +extern const struct cpumask *scx_bpf_get_idle_cpumask(void) __weak __ksym; +extern const struct cpumask *scx_bpf_get_idle_smtmask(void) __weak __ksym; +extern const struct cpumask *scx_bpf_get_online_cpumask(void) __weak __ksym; +extern const struct cpumask *scx_bpf_get_possible_cpumask(void) __weak __ksym; +extern void scx_bpf_kick_cpu(s32 cpu, u64 flags) __weak __ksym; +extern u64 scx_bpf_now(void) __weak __ksym; +extern u32 scx_bpf_nr_cpu_ids(void) __weak __ksym; +extern s32 scx_bpf_pick_any_cpu(const struct cpumask *cpus_allowed, u64 flags) __weak __ksym; +extern s32 scx_bpf_pick_idle_cpu(const struct cpumask *cpus_allowed, u64 flags) __weak __ksym; +extern void scx_bpf_put_cpumask(const struct cpumask *cpumask) __weak __ksym; +extern void scx_bpf_put_idle_cpumask(const struct cpumask *idle_mask) __weak __ksym; +extern u32 scx_bpf_reenqueue_local(void) __weak __ksym; +extern s32 scx_bpf_select_cpu_dfl(struct task_struct *p, s32 prev_cpu, u64 wake_flags, bool *is_idle) __weak __ksym; +extern struct cgroup *scx_bpf_task_cgroup(struct task_struct *p) __weak __ksym; +extern s32 scx_bpf_task_cpu(const struct task_struct *p) __weak __ksym; +extern bool scx_bpf_task_running(const struct task_struct *p) __weak __ksym; +extern bool scx_bpf_test_and_clear_cpu_idle(s32 cpu) __weak __ksym; +extern void tcp_cong_avoid_ai(struct tcp_sock *tp, u32 w, u32 acked) __weak __ksym; +extern void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 acked) __weak __ksym; +extern u32 tcp_reno_ssthresh(struct sock *sk) __weak __ksym; +extern u32 tcp_reno_undo_cwnd(struct sock *sk) __weak __ksym; +extern u32 tcp_slow_start(struct tcp_sock *tp, u32 acked) __weak __ksym; +#endif + +#ifndef BPF_NO_PRESERVE_ACCESS_INDEX +#pragma clang attribute pop +#endif + +#endif /* __VMLINUX_H__ */ diff --git a/components/execd/pkg/isolation/config.go b/components/execd/pkg/isolation/config.go index ea87ca973..7ac701919 100644 --- a/components/execd/pkg/isolation/config.go +++ b/components/execd/pkg/isolation/config.go @@ -46,6 +46,11 @@ type Config struct { // Landlock adds filesystem confinement (OSEP-0018 §5) on top of the // hardening floor. Defaults to off. Landlock *LandlockConfig `toml:"landlock"` + + // Ebpf enables exec/connect/privilege observation (OSEP-0018 §5), + // written as JSONL to a rotating audit file. Requires the execd-ebpf + // build variant. Defaults to off. + Ebpf *EbpfConfig `toml:"ebpf"` } // SeccompOverride specifies a custom syscall denylist that replaces the @@ -78,6 +83,19 @@ type LandlockConfig struct { ExtraReadable []string `toml:"extra_readable"` } +// EbpfConfig controls the eBPF observation layer (OSEP-0018 §5). +type EbpfConfig struct { + // Enabled turns observation on (requires the execd-ebpf build variant + // and CAP_BPF + CAP_PERFMON). + Enabled bool `toml:"enabled"` + // Observe lists the event kinds to record: "exec" | "connect" | + // "privilege". Default: all three. + Observe []string `toml:"observe"` + // AuditFile is the append-only JSONL audit sink (rotated). Default: + // /var/log/opensandbox/ebpf-audit.jsonl. + AuditFile string `toml:"audit_file"` +} + // DefaultConfig returns the built-in defaults used when no config file is // provided or when individual fields are missing from the file. func DefaultConfig() Config { @@ -89,6 +107,7 @@ func DefaultConfig() Config { Seccomp: nil, // use built-in denylist Hardening: nil, // floor off Landlock: nil, // confinement off + Ebpf: nil, // observation off } } diff --git a/components/execd/pkg/runtime/hardening_linux.go b/components/execd/pkg/runtime/hardening_linux.go index 3cf65873a..a391ae077 100644 --- a/components/execd/pkg/runtime/hardening_linux.go +++ b/components/execd/pkg/runtime/hardening_linux.go @@ -146,13 +146,13 @@ func landlockABI() int64 { // memfd. Field order must stay in sync with struct policy_header in // native/launcher.c. type hardeningPolicy struct { - flags uint32 - uid uint32 - gid uint32 - keepcaps []uint32 - stripEnv []string - seccomp []byte - landlock []landlockRule + flags uint32 + uid uint32 + gid uint32 + keepcaps []uint32 + stripEnv []string + seccomp []byte + landlock []landlockRule } type policyHeader struct { @@ -174,6 +174,13 @@ var hardening struct { capDrop atomic.Pointer[LayerState] seccomp atomic.Pointer[LayerState] landlock atomic.Pointer[LayerState] + ebpf atomic.Pointer[LayerState] +} + +// SetEbpfState records the eBPF observation state reported by the observer +// (execd-ebpf variant) for the capabilities endpoint. +func SetEbpfState(state LayerState) { + hardening.ebpf.Store(&state) } // InitHardening activates the floor from the isolation config. It returns an @@ -451,7 +458,7 @@ func ReportHardening() HardeningReport { }, Ebpf: LayerState{ State: "disabled", - Message: "eBPF observation is not enabled (phase 4)", + Message: "eBPF observation is not enabled", }, } if cs := hardening.capDrop.Load(); cs != nil { @@ -463,5 +470,8 @@ func ReportHardening() HardeningReport { if ls := hardening.landlock.Load(); ls != nil { report.Landlock = *ls } + if es := hardening.ebpf.Load(); es != nil { + report.Ebpf = *es + } return report } diff --git a/components/execd/pkg/runtime/hardening_linux_test.go b/components/execd/pkg/runtime/hardening_linux_test.go index c881f357d..d13b30d8b 100644 --- a/components/execd/pkg/runtime/hardening_linux_test.go +++ b/components/execd/pkg/runtime/hardening_linux_test.go @@ -282,9 +282,9 @@ func TestLandlockActiveOrUnsupported(t *testing.T) { cfg := isolation.Config{ Hardening: &isolation.HardeningConfig{Enabled: true}, Landlock: &isolation.LandlockConfig{ - Enabled: true, - ExtraWritable: []string{"/cache"}, - ExtraReadable: []string{"/opt/data"}, + Enabled: true, + ExtraWritable: []string{"/cache"}, + ExtraReadable: []string{"/opt/data"}, }, } initHardeningForTest(t, cfg) diff --git a/components/execd/pkg/runtime/hardening_other.go b/components/execd/pkg/runtime/hardening_other.go index 8749260e5..e8f5adfb4 100644 --- a/components/execd/pkg/runtime/hardening_other.go +++ b/components/execd/pkg/runtime/hardening_other.go @@ -25,6 +25,9 @@ func InitHardening(cfg isolation.Config) error { return nil } +// SetEbpfState is a no-op off Linux. +func SetEbpfState(state LayerState) {} + // HardeningReport reports that no hardening layer is in effect. func ReportHardening() HardeningReport { initMode, shield := InitModeReport() diff --git a/components/execd/tests/init_container.sh b/components/execd/tests/init_container.sh index 0c933603a..c5305356e 100755 --- a/components/execd/tests/init_container.sh +++ b/components/execd/tests/init_container.sh @@ -246,6 +246,8 @@ else grep -q '"landlock":{"state":"unsupported"' /mnt/test/caps.json || { echo "FAIL: landlock neither active nor unsupported" >> "$out"; exit 91; } echo "landlock=unsupported (skipped)" >> "$out" fi +# The default image has no eBPF code; the layer must report disabled. +grep -q '"ebpf":{"state":"disabled"' /mnt/test/caps.json || { echo "FAIL: ebpf not disabled in the default image" >> "$out"; exit 92; } echo "hardened_ok=yes" >> "$out" exit 0 SCRIPT diff --git a/docs/components/execd.md b/docs/components/execd.md index 109da6ba9..62c70f5b2 100644 --- a/docs/components/execd.md +++ b/docs/components/execd.md @@ -250,6 +250,12 @@ keep_capabilities = [] # startup ("execveat" stays allowed). [seccomp] deny = ["mount", "ptrace", "bpf", "seccomp"] + +# Optional: Landlock filesystem confinement on top of the floor. +[landlock] +enabled = true +extra_writable = [] # writable paths beyond the built-in set +extra_readable = [] # read-only paths beyond the built-in set ``` When enabled, every user-code process (entrypoint, `/command`, `/code`, @@ -262,15 +268,54 @@ installed last. Isolated-session workloads are already reduced inside the bwrap namespace and are not additionally wrapped. Everything is fail-open and reported on `GET /v1/isolated/capabilities` -under `hardening.cap_drop` / `hardening.seccomp` (`active` | `degraded` | -`disabled` with a reason message). Missing `CAP_SETPCAP` degrades the cap -drop but keeps seccomp; a missing launcher binary disables the floor. +under `hardening.cap_drop` / `hardening.seccomp` / `hardening.landlock` +(`active` | `degraded` | `unsupported` | `disabled` with a reason message). +Missing `CAP_SETPCAP` degrades the cap drop but keeps seccomp; a missing +launcher binary disables the floor; a kernel without Landlock (ABI < 1) +reports `unsupported` and skips FS confinement. + +With `[landlock] enabled`, user-code processes are allowlisted to: system +paths (`/usr`, `/bin`, `/lib`, `/lib64`, `/etc`) read+exec, `/proc/self` +and well-known read-only proc files (never all of `/proc`, which would +re-expose `/proc/1` and execd's credentials), the needed `/dev` device +files and the controlling tty, `/tmp`, `/run`, `allowed_writable`, plus +`extra_writable`/`extra_readable`. Everything else is denied. Note that +only the initial workload process keeps `/proc/self` access (a Landlock +rule is inode-based); forked descendants lose their own `/proc/self` — +tooling that needs it should be run as the entrypoint process. Recommended container ceiling (operator side): keep `CAP_SETPCAP`, `CAP_SETUID`, `CAP_SETGID` so execd can reduce children; drop the rest (`NET_RAW`, `SYS_MODULE`, `SYS_TIME`, `SYS_TTY_CONFIG`, `AUDIT_WRITE`, `MKNOD`). +### eBPF Observation + +Opt-in exec/connect/privilege audit (OSEP-0018 §5), off by default: + +```toml +[ebpf] +enabled = true +observe = ["exec", "connect", "privilege"] # default: all three +audit_file = "/var/log/opensandbox/ebpf-audit.jsonl" # rotated JSONL +``` + +Requires the `execd-ebpf` build variant (CGO + `cilium/ebpf`), a +container with `CAP_BPF` + `CAP_PERFMON`, and a BTF-capable kernel — +Linux ≥ 5.10 with `CONFIG_DEBUG_INFO_BTF` (5.10–5.15 kernels use the +inline-`filename` trace event layout, which the BPF program detects via +CO-RE; 5.16+ use the `__data_loc` layout). Events are scoped to the +sandbox cgroup, so only this sandbox's processes are observed; they are +written as JSONL (one object per line) with a stable common envelope +(`ts`, `event`, `sandbox_id`, `pid`, `comm`) plus per-kind fields +(`filename`/`argv`/`ppid` for `exec`, `dst_ip`/`dst_port`/`proto` for +`connect`, uid/gid deltas and `cap_added` for `privilege`). Under +gVisor/Kata the host kernel is not attachable, and the layer reports +`unsupported`. Missing prerequisites never block startup. + +The default image does not contain eBPF code; `make build-ebpf` or the +Dockerfile's `ebpf` target produce the observation variant. + ## Observability ### OpenTelemetry Metrics From ab3263ffa73df272e6f5ab8f9324a666c53f794a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 12:18:41 +0800 Subject: [PATCH 07/17] docs(spec): drop phase markers from hardening layer descriptions --- components/execd/pkg/runtime/hardening_linux.go | 2 +- components/execd/pkg/web/model/hardening.go | 4 ++-- specs/execd-api.yaml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/components/execd/pkg/runtime/hardening_linux.go b/components/execd/pkg/runtime/hardening_linux.go index a391ae077..0d9cf30a2 100644 --- a/components/execd/pkg/runtime/hardening_linux.go +++ b/components/execd/pkg/runtime/hardening_linux.go @@ -454,7 +454,7 @@ func ReportHardening() HardeningReport { Seccomp: LayerState{State: "disabled", Message: "hardening not enabled"}, Landlock: LayerState{ State: "disabled", - Message: "landlock confinement is not enabled (phase 3)", + Message: "landlock confinement is not enabled", }, Ebpf: LayerState{ State: "disabled", diff --git a/components/execd/pkg/web/model/hardening.go b/components/execd/pkg/web/model/hardening.go index 8f131de8c..4780f66e9 100644 --- a/components/execd/pkg/web/model/hardening.go +++ b/components/execd/pkg/web/model/hardening.go @@ -32,6 +32,6 @@ type HardeningStatus struct { SignalShield bool `json:"signal_shield"` // kernel PID 1 signal shield active CapDrop *HardeningLayerState `json:"cap_drop"` // bounding-set/capability reduction Seccomp *HardeningLayerState `json:"seccomp"` // seccomp floor on user code - Landlock *HardeningLayerState `json:"landlock"` // filesystem confinement (phase 3) - Ebpf *HardeningLayerState `json:"ebpf"` // eBPF observation (phase 4) + Landlock *HardeningLayerState `json:"landlock"` // filesystem confinement on user code + Ebpf *HardeningLayerState `json:"ebpf"` // eBPF exec/connect/privilege observation } diff --git a/specs/execd-api.yaml b/specs/execd-api.yaml index 4cbbc58dc..ccfbce2d4 100644 --- a/specs/execd-api.yaml +++ b/specs/execd-api.yaml @@ -2555,10 +2555,10 @@ components: description: Seccomp floor installed on user code. landlock: $ref: "#/components/schemas/HardeningLayerState" - description: Landlock filesystem confinement (phase 3). + description: Landlock filesystem confinement on user code. ebpf: $ref: "#/components/schemas/HardeningLayerState" - description: eBPF observation (phase 4). + description: eBPF exec/connect/privilege observation. HardeningLayerState: type: object From a81109c2753c525ca6a9ee719d6a0d6cff896670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 12:25:52 +0800 Subject: [PATCH 08/17] feat(sdks): surface hardening status across all execd-capabilities SDKs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Regenerate the JS execd client from the spec and extend the handwritten adapters so every SDK exposes the hardening object (init_mode, signal_shield, cap_drop/seccomp/landlock/ebpf layer states): - javascript: generated execd.ts gains hardening + HardeningLayerState - kotlin: IsolatedCapabilities.hardening domain model + adapter mapping (with a mock-server test) — the generated sandbox-api client picks the spec up at build time - csharp: IsolatedCapabilities gains Hardening/HardeningStatus/ HardeningLayerState records Go and Python already carried the field; MCP and code-interpreter SDKs do not consume the capabilities endpoint. --- .../csharp/src/OpenSandbox/Models/Isolated.cs | 19 ++++++++++- sdks/sandbox/javascript/src/api/execd.ts | 24 ++++++++++++++ .../models/execd/isolated/IsolatedModels.kt | 17 ++++++++++ .../service/IsolatedSessionsAdapter.kt | 32 +++++++++++++++++++ .../service/IsolatedSessionsAdapterTest.kt | 32 +++++++++++++++++++ 5 files changed, 123 insertions(+), 1 deletion(-) diff --git a/sdks/sandbox/csharp/src/OpenSandbox/Models/Isolated.cs b/sdks/sandbox/csharp/src/OpenSandbox/Models/Isolated.cs index 61f9ac913..6d951a884 100644 --- a/sdks/sandbox/csharp/src/OpenSandbox/Models/Isolated.cs +++ b/sdks/sandbox/csharp/src/OpenSandbox/Models/Isolated.cs @@ -125,7 +125,8 @@ public record IsolatedCapabilities( [property: JsonPropertyName("commit_supported")] bool CommitSupported = false, [property: JsonPropertyName("diff_supported")] bool DiffSupported = false, [property: JsonPropertyName("setpriv_available")] bool SetprivAvailable = false, - [property: JsonPropertyName("userns_available")] bool UsernsAvailable = false + [property: JsonPropertyName("userns_available")] bool UsernsAvailable = false, + [property: JsonPropertyName("hardening")] HardeningStatus? Hardening = null ) { public void Deconstruct( @@ -144,3 +145,19 @@ public void Deconstruct( diffSupported = DiffSupported; } } + +/// execd init-mode and workload-hardening state (OSEP-0018). +public record HardeningStatus( + [property: JsonPropertyName("init_mode")] string? InitMode = null, // "pid1" | "subreaper" | "none" + [property: JsonPropertyName("signal_shield")] bool SignalShield = false, + [property: JsonPropertyName("cap_drop")] HardeningLayerState? CapDrop = null, + [property: JsonPropertyName("seccomp")] HardeningLayerState? Seccomp = null, + [property: JsonPropertyName("landlock")] HardeningLayerState? Landlock = null, + [property: JsonPropertyName("ebpf")] HardeningLayerState? Ebpf = null +); + +/// Whether one hardening layer is actually enforced. +public record HardeningLayerState( + [property: JsonPropertyName("state")] string? State = null, // active | disabled | degraded | unsupported + [property: JsonPropertyName("message")] string? Message = null +); diff --git a/sdks/sandbox/javascript/src/api/execd.ts b/sdks/sandbox/javascript/src/api/execd.ts index 7feb6c8ed..3a9fd06b7 100644 --- a/sdks/sandbox/javascript/src/api/execd.ts +++ b/sdks/sandbox/javascript/src/api/execd.ts @@ -1514,6 +1514,30 @@ export interface components { userns_available?: boolean; commit_supported?: boolean; diff_supported?: boolean; + /** @description execd init-mode and workload-hardening state (OSEP-0018): whether execd is the sandbox init and which of its controls are in effect. Not an isolation capability; reported here so operators see enforcement state in one place. */ + hardening?: { + /** + * @description How execd supervises the sandbox process tree. pid1: execd is the kernel init of the container. subreaper: execd reaps orphans but lacks the PID 1 kernel signal shield. none: init mode is off (default). + * @enum {string} + */ + init_mode?: "pid1" | "subreaper" | "none"; + /** @description Whether the kernel PID 1 signal shield protects execd from in-namespace signals (true only in init_mode pid1). */ + signal_shield?: boolean; + /** @description Capability/bounding-set reduction on user code. */ + cap_drop?: components["schemas"]["HardeningLayerState"]; + /** @description Seccomp floor installed on user code. */ + seccomp?: components["schemas"]["HardeningLayerState"]; + /** @description Landlock filesystem confinement on user code. */ + landlock?: components["schemas"]["HardeningLayerState"]; + /** @description eBPF exec/connect/privilege observation. */ + ebpf?: components["schemas"]["HardeningLayerState"]; + }; + }; + /** @description Whether one hardening layer is actually enforced. state is "active" | "disabled" (not configured) | "degraded" (configured but a prerequisite is missing) | "unsupported" (kernel/build cannot provide it). message gives the concrete reason whenever state is not active. */ + HardeningLayerState: { + /** @enum {string} */ + state?: "active" | "disabled" | "degraded" | "unsupported"; + message?: string; }; }; responses: { diff --git a/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/domain/models/execd/isolated/IsolatedModels.kt b/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/domain/models/execd/isolated/IsolatedModels.kt index f6f2f318c..a40f51430 100644 --- a/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/domain/models/execd/isolated/IsolatedModels.kt +++ b/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/domain/models/execd/isolated/IsolatedModels.kt @@ -149,4 +149,21 @@ data class IsolatedCapabilities( val diffSupported: Boolean = false, val setprivAvailable: Boolean = false, val usernsAvailable: Boolean = false, + val hardening: HardeningStatus? = null, +) + +/** execd init-mode and workload-hardening state (OSEP-0018). */ +data class HardeningStatus( + val initMode: String? = null, // "pid1" | "subreaper" | "none" + val signalShield: Boolean = false, + val capDrop: HardeningLayerState? = null, + val seccomp: HardeningLayerState? = null, + val landlock: HardeningLayerState? = null, + val ebpf: HardeningLayerState? = null, +) + +/** Whether one hardening layer is actually enforced. */ +data class HardeningLayerState( + val state: String? = null, // active | disabled | degraded | unsupported + val message: String? = null, ) diff --git a/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapter.kt b/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapter.kt index 20c6ed2a6..351f4ca21 100644 --- a/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapter.kt +++ b/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapter.kt @@ -22,6 +22,8 @@ import com.alibaba.opensandbox.sandbox.domain.models.execd.executions.Execution import com.alibaba.opensandbox.sandbox.domain.models.execd.isolated.BindMount import com.alibaba.opensandbox.sandbox.domain.models.execd.isolated.CreateIsolatedSessionRequest import com.alibaba.opensandbox.sandbox.domain.models.execd.isolated.EnvPassthroughSpec +import com.alibaba.opensandbox.sandbox.domain.models.execd.isolated.HardeningLayerState +import com.alibaba.opensandbox.sandbox.domain.models.execd.isolated.HardeningStatus import com.alibaba.opensandbox.sandbox.domain.models.execd.isolated.IsolatedBackgroundRun import com.alibaba.opensandbox.sandbox.domain.models.execd.isolated.IsolatedCapabilities import com.alibaba.opensandbox.sandbox.domain.models.execd.isolated.IsolatedRunLogs @@ -154,8 +156,28 @@ private data class IsolatedCapabilitiesResponse( val userns_available: Boolean = false, val commit_supported: Boolean = false, val diff_supported: Boolean = false, + val hardening: HardeningStatusResponse? = null, ) +@Serializable +private data class HardeningStatusResponse( + val init_mode: String? = null, + val signal_shield: Boolean = false, + val cap_drop: HardeningLayerStateResponse? = null, + val seccomp: HardeningLayerStateResponse? = null, + val landlock: HardeningLayerStateResponse? = null, + val ebpf: HardeningLayerStateResponse? = null, +) + +@Serializable +private data class HardeningLayerStateResponse( + val state: String? = null, + val message: String? = null, +) + +private fun HardeningLayerStateResponse.toDomain(): HardeningLayerState = + HardeningLayerState(state = state, message = message) + private val json = Json { ignoreUnknownKeys = true } private const val TAIL_CURSOR_HEADER = "EXECD-ISOLATED-TAIL-CURSOR" @@ -555,6 +577,16 @@ internal class IsolatedSessionsAdapter( usernsAvailable = resp.userns_available, commitSupported = resp.commit_supported, diffSupported = resp.diff_supported, + hardening = resp.hardening?.let { + HardeningStatus( + initMode = it.init_mode, + signalShield = it.signal_shield, + capDrop = it.cap_drop?.toDomain(), + seccomp = it.seccomp?.toDomain(), + landlock = it.landlock?.toDomain(), + ebpf = it.ebpf?.toDomain(), + ) + }, ) } } catch (e: Exception) { diff --git a/sdks/sandbox/kotlin/sandbox/src/test/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapterTest.kt b/sdks/sandbox/kotlin/sandbox/src/test/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapterTest.kt index fd1b991d6..fa7c6f506 100644 --- a/sdks/sandbox/kotlin/sandbox/src/test/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapterTest.kt +++ b/sdks/sandbox/kotlin/sandbox/src/test/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapterTest.kt @@ -171,6 +171,38 @@ class IsolatedSessionsAdapterTest { assertEquals(false, capabilities.usernsAvailable) } + @Test + fun `capabilities parses hardening status`() { + mockWebServer.enqueue( + MockResponse() + .setBody( + """ + { + "available": true, + "hardening": { + "init_mode": "pid1", + "signal_shield": true, + "cap_drop": {"state": "active"}, + "seccomp": {"state": "active"}, + "landlock": {"state": "unsupported", "message": "kernel ABI < 1"}, + "ebpf": {"state": "disabled"} + } + } + """.trimIndent(), + ), + ) + val capabilities = adapter.capabilities() + + val hardening = capabilities.hardening + assertEquals("pid1", hardening?.initMode) + assertEquals(true, hardening?.signalShield) + assertEquals("active", hardening?.capDrop?.state) + assertEquals("active", hardening?.seccomp?.state) + assertEquals("unsupported", hardening?.landlock?.state) + assertEquals("kernel ABI < 1", hardening?.landlock?.message) + assertEquals("disabled", hardening?.ebpf?.state) + } + @Test fun `create serializes uid and gid above Int MaxValue`() { // Spec declares uid/gid as uint32; values above Int.MAX_VALUE must not fail. From f06f1ff0ad28fecb0655d984ce4e8a0931b1456a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 12:15:38 +0800 Subject: [PATCH 09/17] feat(server,k8s): pool tasks run execd as the task root (OSEP-0018 phase 5) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With runtime.execd_run_as_init enabled, the pool taskTemplate no longer backgrounds bootstrap: the task-executor shim's shell execs bootstrap.sh, which execs `execd --init` (EXECD_INIT=1), so execd becomes the root of the task process tree — orphaned task children are reaped (subreaper) and the entrypoint exit code propagates to the task status. Classic background-and-wait topology is preserved when the switch is off. The K8s Restart recycle contract (kill 1 via pod exec) is confirmed compatible with init-mode execd under the current SIGTERM-forward semantics: execd forwards the signal and exits with the workload status, so the kubelet restarts the container. A note marks the reconciliation required once a trusted out-of-band stop channel replaces signal-driven stop (OSEP-0018 §3). Docs: Pool pod template guidance for running execd as the pod's PID 1. --- docs/components/execd.md | 35 +++++++++++++++++++ .../recycle/restart/restart_default.go | 6 ++++ .../services/k8s/batchsandbox_provider.py | 17 +++++++-- .../tests/k8s/test_batchsandbox_provider.py | 9 +++++ 4 files changed, 64 insertions(+), 3 deletions(-) diff --git a/docs/components/execd.md b/docs/components/execd.md index 62c70f5b2..86eada718 100644 --- a/docs/components/execd.md +++ b/docs/components/execd.md @@ -362,6 +362,41 @@ Behavioral contract in init mode: - The actual mode is reported on `GET /v1/isolated/capabilities` under `hardening.init_mode` (`pid1` | `subreaper` | `none`). +### Pool (pre-warmed) sandboxes + +Pool tasks are executed by the task-executor with `bootstrap.sh `. +With `execd_run_as_init` enabled, the generated task no longer backgrounds +bootstrap: the task-executor's shim shell execs bootstrap, which execs +`execd --init`, so execd becomes the root of the task process tree — +orphaned task children are reaped (subreaper mode, since the task process is +not the container's PID 1) and the entrypoint exit code propagates back to +the shim and the task status. + +To make execd the *container's* PID 1 in pooled pods, the operator's Pool pod +template should start the main container with `bootstrap.sh` plus a +keep-alive entrypoint and `EXECD_INIT=1`: + +```yaml +spec: + template: + spec: + containers: + - name: sandbox + image: opensandbox/execd:latest + command: ["/bootstrap.sh", "/bin/sh", "-c", "while :; do sleep 3600; done"] + env: + - name: EXECD_INIT + value: "1" + - name: EXECD + value: /execd +``` + +execd then stays alive as PID 1 (reaping + kernel signal shield) while the +task-executor keeps running user tasks in the pod. The K8s Restart recycle +strategy (`kill 1` via pod exec) keeps working against init-mode execd: the +signal is forwarded and execd exits with the workload's status, so the +kubelet restarts the container. + ## Linux clone3 Compatibility Some sandbox environments fail on `clone3(2)`. Set `EXECD_CLONE3_COMPAT` in sandbox env to force fallback behavior: diff --git a/kubernetes/internal/controller/recycle/restart/restart_default.go b/kubernetes/internal/controller/recycle/restart/restart_default.go index 674910375..3f23b0c71 100644 --- a/kubernetes/internal/controller/recycle/restart/restart_default.go +++ b/kubernetes/internal/controller/recycle/restart/restart_default.go @@ -39,6 +39,12 @@ import ( // container. Containers using the Restart recycle strategy must have a PID 1 process that // handles SIGTERM and exits gracefully (e.g., a real application server, not bare // "sleep"). When PID 1 exits, the kubelet restarts the container per its restartPolicy. +// +// Init-mode execd (OSEP-0018) keeps this contract: it installs a SIGTERM handler that +// forwards the signal to the workload and exits with the workload's status, so the +// in-namespace `kill 1` performed by this recycle path still restarts the container. +// When a trusted out-of-band stop channel replaces signal-driven stop (OSEP-0018 §3), +// this command must be reconciled with that channel instead. var DefaultRestartCommand = []string{"kill", "1"} const ( diff --git a/server/opensandbox_server/services/k8s/batchsandbox_provider.py b/server/opensandbox_server/services/k8s/batchsandbox_provider.py index 6dcfe6ac1..7c73aac3c 100644 --- a/server/opensandbox_server/services/k8s/batchsandbox_provider.py +++ b/server/opensandbox_server/services/k8s/batchsandbox_provider.py @@ -481,10 +481,21 @@ def _build_task_template( entrypoint: List[str], env: Dict[str, str], ) -> Dict[str, Any]: - """Build pool taskTemplate with shell-escaped bootstrap command.""" + """Build pool taskTemplate with shell-escaped bootstrap command. + + With execd_run_as_init enabled, the task is NOT backgrounded: the + shim's shell execs bootstrap.sh, which execs `execd --init` (the + EXECD_INIT env is injected below), so execd becomes the root of the + task process tree. It reaps orphaned task children (subreaper) and + propagates the entrypoint exit code back to the shim. Without it, + the classic background-and-wait topology is preserved. + """ escaped_entrypoint = ' '.join(shlex.quote(arg) for arg in entrypoint) - user_process_cmd = f"/opt/opensandbox/bootstrap.sh {escaped_entrypoint} &" - + if self.execd_run_as_init: + user_process_cmd = f"/opt/opensandbox/bootstrap.sh {escaped_entrypoint}" + else: + user_process_cmd = f"/opt/opensandbox/bootstrap.sh {escaped_entrypoint} &" + wrapped_command = ["/bin/sh", "-c", user_process_cmd] if self.execd_run_as_init: diff --git a/server/tests/k8s/test_batchsandbox_provider.py b/server/tests/k8s/test_batchsandbox_provider.py index 40dacf934..7e7d96d26 100644 --- a/server/tests/k8s/test_batchsandbox_provider.py +++ b/server/tests/k8s/test_batchsandbox_provider.py @@ -1510,6 +1510,15 @@ def test_build_task_template_injects_execd_run_as_init_when_enabled(self, mock_k assert {"name": "EXECD_INIT", "value": "1"} in env assert {"name": "KEY1", "value": "value1"} in env + # With execd_run_as_init the task is NOT backgrounded: the shim's + # shell execs bootstrap.sh, which execs `execd --init` as the root of + # the task process tree (orphan reaping + exit-code propagation). + command = result["spec"]["process"]["command"] + assert command[0] == "/bin/sh" + assert command[1] == "-c" + assert "/opt/opensandbox/bootstrap.sh /usr/bin/python app.py" in command[2] + assert " &" not in command[2] + def test_build_task_template_without_env(self, mock_k8s_client): """ Test _build_task_template without environment variables. From 9f9db05486333a2c07819bddf30cdf72825b4815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 12:34:58 +0800 Subject: [PATCH 10/17] docs(oseps): mark 0018 as implementing with granular phase status Record the phased implementation state (phases 1-5 + server switch done), the resolutions of open questions 1-5, and the remaining work (trusted stop channel, Pool pod-level PID 1, 5.10 validation, e2e). --- oseps/0018-execd-as-sandbox-init.md | 47 +++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/oseps/0018-execd-as-sandbox-init.md b/oseps/0018-execd-as-sandbox-init.md index 2f73be74f..ba8695667 100644 --- a/oseps/0018-execd-as-sandbox-init.md +++ b/oseps/0018-execd-as-sandbox-init.md @@ -3,8 +3,8 @@ title: execd as Sandbox Init authors: - "@pjp" creation-date: 2026-07-27 -last-updated: 2026-07-27 -status: draft +last-updated: 2026-08-12 +status: implementing --- # OSEP-0018: execd as Sandbox Init @@ -34,6 +34,49 @@ status: draft - [Upgrade & Migration Strategy](#upgrade--migration-strategy) +## Implementation Status + +> Updated 2026-08-12. Status: **implementing** — the phased rollout below is +> implemented on branch `feat/execd-init-mode` (Phases 1–5 plus the server +> switch); remaining items are the trusted stop channel (§3), Pool pod-level +> PID 1 automation, kernel-5.10 empirical validation, and e2e coverage. + +| Phase | Scope | Status | +|---|---|---| +| 1 | execd `--init` mode: single reaper (only wait4 caller), managedProcess abstraction replacing `Cmd.Wait` on every launch path, signal forwarding (TERM/HUP/USR1/USR2/WINCH), entrypoint-owned container lifecycle, subreaper fallback, `PR_SET_DUMPABLE`, `bootstrap.sh` `EXECD_INIT` exec branch, hardening endpoint reporting | ✅ implemented | +| 2 | Pre-exec floor (`[hardening] enabled`): `opensandbox-launcher` native helper (env strip → KEEPCAPS → bounding trim → no_new_privs → identity drop → ambient caps → seccomp last → execve), `[seccomp] deny` reuse with `execve` reserved, `keep_capabilities`; fail-open per layer | ✅ implemented | +| 3 | Landlock (`[landlock] enabled`): allowlist policy (system paths + `/proc/self` + device files + `/tmp`/`/run`/`allowed_writable` + extras), ABI probe v1–v4 with access-bit trimming; ABI < 1 → `unsupported` | ✅ implemented | +| 4 | eBPF observation (`[ebpf] enabled`, `execd-ebpf` variant): exec/connect/privilege hooks (CO-RE), sandbox cgroup filter, rotating JSONL audit file; kernel ≥5.10 with BTF | ✅ implemented | +| 5 | Pool taskTemplate: with `execd_run_as_init`, tasks are no longer backgrounded — execd becomes the task process-tree root (subreaper + exit-code propagation); `kill 1` recycle contract confirmed compatible under current SIGTERM semantics | ✅ implemented (task level) | +| — | Server switch `runtime.execd_run_as_init` injects `EXECD_INIT=1` across Docker / K8s Batch/Agent / Pool paths — resolves Open Question 1 | ✅ implemented | + +**Open implementation questions — resolution:** + +1. **Single enable switch** — resolved: the server sets `EXECD_INIT` from the + single `runtime.execd_run_as_init` config (default `false`); `bootstrap.sh` + passes `--init` iff `EXECD_INIT` is truthy, so topology and flag stay in + lockstep by construction. +2. **External SIGTERM forwarding** — implemented: SIGTERM is forwarded to the + entrypoint and execd exits with the workload's status. Distinguishing + external vs in-namespace SIGTERM (the §3 trusted-stop mechanism) is still + open: today an in-namespace `kill 1` also stops the sandbox (same as the + pre-OSEP bootstrap behavior) — tracked as remaining work. +3. **Managed-process abstraction** — implemented (reaper delivers + `WaitStatus`; per-call-site pipes/teardown are owned by the abstraction). +4. **Landlock device files** — resolved: `null/zero/full/random/urandom/tty` + writable + `/dev/pts` subtree for the controlling terminal. +5. **Landlock `/proc/self` for descendants** — resolved by accepting the + limitation: only the initial workload keeps `/proc/self` access; forked + descendants get EACCES on their own procfs (documented in + `docs/components/execd.md`). + +**Remaining work** (tracked locally, see the handoff document next to this +OSEP): trusted out-of-band stop channel + `restart_default.go` reconciliation +(§3); Pool pod-level PID 1 (operator-side template config today); kernel-5.10 +eBPF empirical validation; Kind/SDK e2e coverage; `execd-ebpf` image build +step in CI; default-on rollout of `execd_run_as_init` / `[hardening]`. + + ## Summary This proposal makes **execd** the sandbox init (PID 1): it `fork`/`exec`s the user From dc1f48fb1916c1f0c57229f3f6cb8df0d30f81eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 18:46:39 +0800 Subject: [PATCH 11/17] fix: address Codex/human review feedback across five rounds + CI repairs Squashed review-fix series: - CI: Dockerfile stage order (ebpf variant was the default image), license headers on bpf2go output, verify-license skip for generated files, golangci (gci/predeclared/unused), kotlin ktlint - landlock: required-vs-best-effort rule semantics, mount-expanded rules (bind-mounted workspaces), dynamic rule counts, preflight degradation for operator-explicit grants, per-launch fail-closed ruleset - hardening: trusted launcher path first, MFD_CLOEXEC policy memfd, per-request uid/gid folded into the policy, entrypoint keeps bootstrap env but never EXECD_ACCESS_TOKEN, bash-session env snapshot scrub - init: reaper drops reaped pids (bounded map, no stale pgid signalling), SIGTERM/SIGKILL sent under the reaper lock, synchronous signal.Notify before the entrypoint starts - eBPF: sandbox_id in records, cgroup-id under the cgroup v2 mount, requested-hook attach failures degrade, IPv4-mapped event format, cap-only privilege events, argv dropped from exec events - distribution: launcher shipped on docker/k8s paths, pool taskTemplate exec + needs_task_template fix, ebpf image keeps the default layout and builds static - container regression: workdir world-writable (no CAP_DAC_OVERRIDE under hardening), /proc/self read via the entrypoint process (Landlock descendant limitation) --- components/execd/Dockerfile | 50 ++-- components/execd/native/launcher.c | 117 +++++--- components/execd/pkg/ebpf/audit.go | 104 +++++--- components/execd/pkg/ebpf/audit_bpfeb.go | 3 +- components/execd/pkg/ebpf/audit_bpfeb.o | Bin 72920 -> 70504 bytes components/execd/pkg/ebpf/audit_bpfel.go | 3 +- components/execd/pkg/ebpf/audit_bpfel.o | Bin 72920 -> 70504 bytes components/execd/pkg/ebpf/audit_stub.go | 10 +- components/execd/pkg/ebpf/audit_test.go | 6 - components/execd/pkg/ebpf/prog/audit.bpf.c | 61 ++--- components/execd/pkg/isolation/bwrap.go | 17 -- components/execd/pkg/isolation/config.go | 16 ++ components/execd/pkg/runtime/bash_session.go | 17 +- .../execd/pkg/runtime/hardening_linux.go | 251 +++++++++++++++--- .../execd/pkg/runtime/hardening_linux_test.go | 76 +++++- .../execd/pkg/runtime/initmode_linux.go | 82 ++++-- components/execd/pkg/web/controller/pty_ws.go | 2 + components/execd/tests/init_container.sh | 53 +++- docs/components/execd.md | 18 +- scripts/verify-license.sh | 5 + .../sandbox/javascript/src/models/isolated.ts | 15 ++ .../models/execd/isolated/IsolatedModels.kt | 6 +- .../service/IsolatedSessionsAdapter.kt | 24 +- .../python/src/opensandbox/models/isolated.py | 43 +++ .../services/docker/docker_service.py | 1 + .../services/docker/runtime.py | 57 ++++ .../services/k8s/batchsandbox_provider.py | 10 +- .../services/k8s/provider_common.py | 6 +- 28 files changed, 786 insertions(+), 267 deletions(-) diff --git a/components/execd/Dockerfile b/components/execd/Dockerfile index 895eb08f3..5c6b057f7 100644 --- a/components/execd/Dockerfile +++ b/components/execd/Dockerfile @@ -96,24 +96,13 @@ RUN rm /usr/lib/libcap.so /usr/lib/libcap.so.2 && \ ninja -C builddir && \ cp builddir/bwrap /build/bwrap/bwrap -FROM alpine:latest - -COPY --from=bwrap-builder /build/bwrap/bwrap /usr/local/bin/bwrap -COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-session-gate /usr/local/libexec/opensandbox-session-gate -COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-session-gate /opt/opensandbox/opensandbox-session-gate -COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-launcher /opt/opensandbox/opensandbox-launcher -COPY --from=builder /build/execd . -COPY --from=builder /build/execd.exe ./execd.exe -COPY --from=builder /build/opensandbox-supervisor ./opensandbox-supervisor -COPY components/execd/bootstrap.sh ./bootstrap.sh -COPY components/execd/install.bat ./install.bat - -ENTRYPOINT ["./execd"] - -# execd-ebpf: observation variant (OSEP-0018 §5). The default image above +# execd-ebpf: observation variant (OSEP-0018 §5). The default image below # never contains eBPF code; this stage builds a CGO variant with the # exec/connect/privilege audit hooks attached. FROM golang:1.25.9 AS ebpf-builder +ARG VERSION=dev +ARG GIT_COMMIT=unknown +ARG BUILD_TIME=unknown RUN apt-get update && apt-get install -y --no-install-recommends clang WORKDIR /build COPY components/internal/go.mod components/internal/go.sum ./components/internal/ @@ -123,13 +112,40 @@ RUN cd components/execd && go mod download COPY components/internal ./components/internal COPY components/execd ./components/execd WORKDIR /build/components/execd -RUN CGO_ENABLED=1 go build -tags ebpf -trimpath -buildvcs=false \ +# cilium/ebpf is pure Go, so the variant builds fully static. +RUN CGO_ENABLED=0 go build -tags ebpf -trimpath -buildvcs=false \ -ldflags "-buildid= -B none \ -X 'github.com/alibaba/opensandbox/internal/version.Version=${VERSION}' \ -X 'github.com/alibaba/opensandbox/internal/version.BuildTime=${BUILD_TIME}' \ -X 'github.com/alibaba/opensandbox/internal/version.GitCommit=${GIT_COMMIT}'" \ -o /build/execd-ebpf ./main.go +# The observation variant keeps the exact layout of the default image so it +# can be used as runtime.execd_image: /execd, /bootstrap.sh and the native +# helpers must be present for the server distribution paths. FROM alpine:latest AS ebpf +COPY --from=bwrap-builder /build/bwrap/bwrap /usr/local/bin/bwrap +COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-session-gate /usr/local/libexec/opensandbox-session-gate +COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-session-gate /opt/opensandbox/opensandbox-session-gate +COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-launcher /usr/local/libexec/opensandbox-launcher +COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-launcher /opt/opensandbox/opensandbox-launcher +COPY --from=ebpf-builder /build/execd-ebpf ./execd COPY --from=ebpf-builder /build/execd-ebpf ./execd-ebpf -ENTRYPOINT ["./execd-ebpf"] +COPY components/execd/bootstrap.sh ./bootstrap.sh +COPY components/execd/install.bat ./install.bat +ENTRYPOINT ["./execd"] + +FROM alpine:latest + +COPY --from=bwrap-builder /build/bwrap/bwrap /usr/local/bin/bwrap +COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-session-gate /usr/local/libexec/opensandbox-session-gate +COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-session-gate /opt/opensandbox/opensandbox-session-gate +COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-launcher /usr/local/libexec/opensandbox-launcher +COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-launcher /opt/opensandbox/opensandbox-launcher +COPY --from=builder /build/execd . +COPY --from=builder /build/execd.exe ./execd.exe +COPY --from=builder /build/opensandbox-supervisor ./opensandbox-supervisor +COPY components/execd/bootstrap.sh ./bootstrap.sh +COPY components/execd/install.bat ./install.bat + +ENTRYPOINT ["./execd"] diff --git a/components/execd/native/launcher.c b/components/execd/native/launcher.c index 64a913afd..5010eb9ca 100644 --- a/components/execd/native/launcher.c +++ b/components/execd/native/launcher.c @@ -76,7 +76,6 @@ struct policy_header { }; #define MAX_CAPS 64 -#define MAX_LL_RULES 128 /* * Landlock ABI (stable since Linux 5.13): syscalls 444-446 and the fs access @@ -112,10 +111,12 @@ struct ll_path_beneath_attr { int32_t parent_fd; }; -/* Landlock rule from the policy: a path plus the access bits to grant. */ +/* Landlock rule from the policy: a path plus the access bits to grant. + * required rules must all install, or confinement is skipped entirely. */ struct ll_rule { uint64_t access; const char *path; + int required; }; static void log_err(const char *msg, int err) @@ -164,7 +165,7 @@ struct cap_data { uint32_t inheritable; }; -static int capset_all(uint32_t kept) +static int capset_all(uint64_t kept) { struct cap_header header; struct cap_data data[2]; @@ -173,12 +174,14 @@ static int capset_all(uint32_t kept) memset(data, 0, sizeof(data)); header.version = _LINUX_CAPABILITY_VERSION_3; header.pid = 0; - data[0].effective = kept; - data[0].permitted = kept; - data[0].inheritable = kept; - data[1].effective = 0; - data[1].permitted = 0; - data[1].inheritable = 0; + /* Capability ABI v3 uses two 32-bit words; caps above 31 (e.g. + * CAP_PERFMON, CAP_BPF) live in the second one. */ + data[0].effective = (uint32_t)kept; + data[0].permitted = (uint32_t)kept; + data[0].inheritable = (uint32_t)kept; + data[1].effective = (uint32_t)(kept >> 32); + data[1].permitted = (uint32_t)(kept >> 32); + data[1].inheritable = (uint32_t)(kept >> 32); return syscall(SYS_capset, &header, data); } @@ -231,32 +234,53 @@ static void apply_landlock(const struct ll_rule *rules, size_t n_rules) } } - for (size_t i = 0; i < n_rules; i++) { - int fd; - uint64_t access = ll_trim_access(rules[i].access, abi); - - if (access == 0) - continue; - /* O_PATH: no read/write rights needed to build the rule. */ - fd = open(rules[i].path, O_PATH | O_CLOEXEC); - if (fd < 0) { - fprintf(stderr, "opensandbox-launcher: landlock: skip %s: %s\n", - rules[i].path, strerror(errno)); - continue; - } - { - struct ll_path_beneath_attr path_attr = { - .allowed_access = access, - .parent_fd = fd, - }; - - if (syscall(445, ruleset, - LANDLOCK_RULE_PATH_BENEATH, &path_attr, 0) != 0) + { + int rule_failed = 0; + + for (size_t i = 0; i < n_rules; i++) { + int fd; + uint64_t access = ll_trim_access(rules[i].access, abi); + + if (access == 0) + continue; + /* O_PATH: no read/write rights needed to build the rule. */ + fd = open(rules[i].path, O_PATH | O_CLOEXEC); + if (fd < 0) { fprintf(stderr, - "opensandbox-launcher: landlock: add_rule %s: %s\n", + "opensandbox-launcher: landlock: skip %s: %s\n", rules[i].path, strerror(errno)); + rule_failed |= rules[i].required; + continue; + } + { + struct ll_path_beneath_attr path_attr = { + .allowed_access = access, + .parent_fd = fd, + }; + + if (syscall(445, ruleset, + LANDLOCK_RULE_PATH_BENEATH, &path_attr, 0) != 0) { + fprintf(stderr, + "opensandbox-launcher: landlock: add_rule %s: %s\n", + rules[i].path, strerror(errno)); + rule_failed |= rules[i].required; + } + } + close(fd); + } + + if (rule_failed) { + /* Fail closed per launch: a missing required rule would silently + * deny access the operator explicitly granted. Skip confinement + * entirely and report instead of restricting with a narrower + * policy. Best-effort (mount-expansion) failures are logged + * above and do not abort. */ + fprintf(stderr, + "opensandbox-launcher: landlock: rule installation failed; " + "skipping filesystem confinement for this launch\n"); + close(ruleset); + return; } - close(fd); } if (syscall(446, ruleset, 0) != 0) { @@ -277,7 +301,7 @@ int main(int argc, char **argv) size_t env_budget; struct sock_filter *filter = NULL; struct sock_fprog prog; - struct ll_rule ll_rules[MAX_LL_RULES]; + struct ll_rule *ll_rules = NULL; size_t n_ll_rules = 0; if (argc < 4 || strcmp(argv[2], "--") != 0) @@ -347,21 +371,30 @@ int main(int argc, char **argv) fail(policy_fd, "truncated seccomp filter"); } - /* Landlock rules: repeated { u64 access; u16 pathlen; path bytes }. */ + /* Landlock rules: repeated { u8 required; u64 access; u16 pathlen; + * path bytes }. Allocated dynamically: mount-heavy pods can exceed any + * fixed cap after the mount-expansion in the policy. */ if (hdr.landlock_len > 0) { size_t left = hdr.landlock_len; + size_t max_rules = hdr.landlock_len / (sizeof(uint8_t) + sizeof(uint64_t) + sizeof(uint16_t)); + + ll_rules = (struct ll_rule *)calloc(max_rules + 1, sizeof(struct ll_rule)); + if (ll_rules == NULL) + fail(policy_fd, "out of memory for landlock rules"); - while (left > 0 && n_ll_rules < MAX_LL_RULES) { + while (left > 0) { + uint8_t required; uint64_t access; uint16_t pathlen; char *path; - if (left < sizeof(access) + sizeof(pathlen)) + if (left < sizeof(required) + sizeof(access) + sizeof(pathlen)) fail(policy_fd, "truncated landlock rule header"); - if (read_exact(policy_fd, &access, sizeof(access)) != 0 || + if (read_exact(policy_fd, &required, sizeof(required)) != 0 || + read_exact(policy_fd, &access, sizeof(access)) != 0 || read_exact(policy_fd, &pathlen, sizeof(pathlen)) != 0) fail(policy_fd, "truncated landlock rule header"); - left -= sizeof(access) + sizeof(pathlen); + left -= sizeof(required) + sizeof(access) + sizeof(pathlen); if (pathlen == 0 || pathlen > 4096) fail(policy_fd, "invalid landlock path length"); if (left < pathlen) @@ -375,10 +408,11 @@ int main(int argc, char **argv) left -= pathlen; ll_rules[n_ll_rules].access = access; ll_rules[n_ll_rules].path = path; + ll_rules[n_ll_rules].required = required != 0; n_ll_rules++; } if (left > 0) - fail(policy_fd, "too many landlock rules"); + fail(policy_fd, "truncated landlock rules"); } if (close(policy_fd) != 0) @@ -431,10 +465,10 @@ int main(int argc, char **argv) if (hdr.flags & FLAG_CAP_DROP) { /* 6. Final cap sets + ambient raise so kept caps survive execve. */ - uint32_t kept = 0; + uint64_t kept = 0; for (uint32_t k = 0; k < hdr.n_keepcaps; k++) - kept |= (1u << keepcaps[k]); + kept |= (UINT64_C(1) << keepcaps[k]); if (capset_all(kept) != 0) log_err("capset", errno); for (uint32_t k = 0; k < hdr.n_keepcaps; k++) { @@ -445,6 +479,7 @@ int main(int argc, char **argv) /* 6. Landlock filesystem confinement, before seccomp. */ apply_landlock(ll_rules, n_ll_rules); + free(ll_rules); /* 7. Seccomp LAST: it must never block the setup above, and execve * (which the Go side reserves from the deny list) is still allowed. */ diff --git a/components/execd/pkg/ebpf/audit.go b/components/execd/pkg/ebpf/audit.go index 6821d2bd8..eee49d4a6 100644 --- a/components/execd/pkg/ebpf/audit.go +++ b/components/execd/pkg/ebpf/audit.go @@ -27,12 +27,14 @@ import ( "fmt" "net" "os" + "path/filepath" "strconv" "strings" "sync" "syscall" "time" + "github.com/cilium/ebpf" "github.com/cilium/ebpf/link" "github.com/cilium/ebpf/ringbuf" "github.com/cilium/ebpf/rlimit" @@ -60,9 +62,8 @@ type Event struct { Comm string `json:"comm"` // exec - Filename string `json:"filename,omitempty"` - Argv []string `json:"argv,omitempty"` - PPID uint32 `json:"ppid,omitempty"` + Filename string `json:"filename,omitempty"` + PPID uint32 `json:"ppid,omitempty"` // connect DstIP string `json:"dst_ip,omitempty"` @@ -79,7 +80,7 @@ type Event struct { // Packed BPF event sizes (must match audit.bpf.c). const ( - sizeEventExec = 4 + 4 + 16 + 64 + 4*32 + sizeEventExec = 4 + 4 + 16 + 64 sizeEventConnect = 4 + 16 + 16 + 2 sizeEventPrivilege = 4 + 16 + 4*4 + 8 ) @@ -162,27 +163,28 @@ func newObserver(cfg *isolation.EbpfConfig, sandboxID string, cgroupID uint64) ( } var links []link.Link - if objs.OnExec != nil { - if l, err := link.Tracepoint("sched", "sched_process_exec", objs.OnExec, nil); err != nil { - log.Warn("ebpf: attach sched_process_exec: %v", err) - } else { - links = append(links, l) + attached := map[string]bool{} + attach := func(kind string, prog *ebpf.Program, attachFn func() (link.Link, error)) { + if prog == nil { + return } - } - if objs.OnConnect != nil { - if l, err := link.Tracepoint("sock", "inet_sock_set_state", objs.OnConnect, nil); err != nil { - log.Warn("ebpf: attach inet_sock_set_state: %v", err) - } else { - links = append(links, l) - } - } - if objs.OnCommitCreds != nil { - if l, err := link.Kprobe("commit_creds", objs.OnCommitCreds, nil); err != nil { - log.Warn("ebpf: attach commit_creds: %v", err) - } else { - links = append(links, l) + l, err := attachFn() + if err != nil { + log.Warn("ebpf: attach %s: %v", kind, err) + return } + links = append(links, l) + attached[kind] = true } + attach("exec", objs.OnExec, func() (link.Link, error) { + return link.Tracepoint("sched", "sched_process_exec", objs.OnExec, nil) + }) + attach("connect", objs.OnConnect, func() (link.Link, error) { + return link.Tracepoint("sock", "inet_sock_set_state", objs.OnConnect, nil) + }) + attach("privilege", objs.OnCommitCreds, func() (link.Link, error) { + return link.Kprobe("commit_creds", objs.OnCommitCreds, nil) + }) reader, err := ringbuf.NewReader(objs.Events) if err != nil { @@ -199,6 +201,19 @@ func newObserver(cfg *isolation.EbpfConfig, sandboxID string, cgroupID uint64) ( kinds[kind] = true } } + for kind := range kinds { + if !attached[kind] { + // Release every already-attached hook and the ringbuf reader so + // partially attached programs do not stay live after the + // degraded report. + for _, l := range links { + _ = l.Close() + } + reader.Close() + objs.Close() + return nil, fmt.Errorf("requested observer hook %q could not be attached", kind) + } + } return &Observer{ logger: logger, @@ -248,6 +263,7 @@ func (o *Observer) handleRecord(raw []byte) { if !o.kinds[event.Event] { return } + event.SandboxID = o.sandboxID line, err := json.Marshal(event) if err != nil { log.Warn("ebpf: marshal event: %v", err) @@ -266,14 +282,6 @@ func decodeEvent(raw []byte) (Event, bool) { ev.PPID = binary.LittleEndian.Uint32(raw[4:8]) ev.Comm = cstring(raw[8:24]) ev.Filename = cstring(raw[24:88]) - argv := raw[88:] - for i := 0; i < 4; i++ { - arg := cstring(argv[i*32 : (i+1)*32]) - if arg == "" { - break - } - ev.Argv = append(ev.Argv, arg) - } return ev, true case sizeEventConnect: ev := Event{TS: now, Event: "connect", PID: binary.LittleEndian.Uint32(raw[0:4])} @@ -357,7 +365,10 @@ func effectiveCapsHave(cap uint32) bool { } // currentCgroupID returns the sandbox's cgroup v2 id (the inode number of -// the cgroup directory), used to scope the observation. +// the cgroup directory), used to scope the observation. The /proc/self/ +// cgroup path is relative to the cgroup hierarchy root, so it must be +// resolved under the cgroup v2 mount (e.g. /sys/fs/cgroup) — the cgroup id +// equals the inode number of that directory in cgroupfs. func currentCgroupID() (uint64, error) { data, err := os.ReadFile("/proc/self/cgroup") if err != nil { @@ -373,19 +384,40 @@ func currentCgroupID() (uint64, error) { if path == "" { return 0, fmt.Errorf("no cgroup v2 hierarchy in /proc/self/cgroup") } - info, err := os.Stat(path) + mount, err := cgroupV2Mount() if err != nil { - // In some container runtimes the cgroup path is not mounted at the - // same location; fall back to the inode of the cgroup mount itself. - return 0, fmt.Errorf("stat cgroup %s: %w", path, err) + return 0, err + } + full := filepath.Join(mount, strings.TrimPrefix(path, "/")) + info, err := os.Stat(full) + if err != nil { + return 0, fmt.Errorf("stat cgroup %s: %w", full, err) } stat, ok := info.Sys().(*syscall.Stat_t) if !ok { - return 0, fmt.Errorf("stat cgroup %s: unexpected type", path) + return 0, fmt.Errorf("stat cgroup %s: unexpected type", full) } return stat.Ino, nil } +// cgroupV2Mount locates the cgroup v2 filesystem mount. +func cgroupV2Mount() (string, error) { + if _, err := os.Stat("/sys/fs/cgroup/cgroup.controllers"); err == nil { + return "/sys/fs/cgroup", nil + } + data, err := os.ReadFile("/proc/self/mounts") + if err != nil { + return "", err + } + for _, line := range strings.Split(string(data), "\n") { + fields := strings.Fields(line) + if len(fields) >= 3 && fields[2] == "cgroup2" { + return fields[1], nil + } + } + return "", fmt.Errorf("no cgroup v2 mount found") +} + func dirOf(path string) string { if i := strings.LastIndexByte(path, '/'); i > 0 { return path[:i] diff --git a/components/execd/pkg/ebpf/audit_bpfeb.go b/components/execd/pkg/ebpf/audit_bpfeb.go index 2782bbd57..28af7511f 100644 --- a/components/execd/pkg/ebpf/audit_bpfeb.go +++ b/components/execd/pkg/ebpf/audit_bpfeb.go @@ -1,6 +1,5 @@ -//go:build ebpf && (mips || mips64 || ppc64 || s390x) - // Code generated by bpf2go; DO NOT EDIT. +//go:build mips || mips64 || ppc64 || s390x package ebpf diff --git a/components/execd/pkg/ebpf/audit_bpfeb.o b/components/execd/pkg/ebpf/audit_bpfeb.o index 40d5181e180f6cec9cbf90ff04af86fb5c595b9b..8a62674b709cde93e4887d7c4785701651f1e154 100644 GIT binary patch delta 18284 zcmb`N349gR+3?RyR#`%T5JEt_1OyZaVKF3ugkg^fONb#PA&^T#5OHHuaB1%-h=?07 zYN*O)1Es z<*qKjp4?mR?K&p;L9a(o?$r8^B;TKzzRz?zyIl}DyUP{DgCS|4tLuu~u0tX>^^v<$ zPY?0)jUg`&wcOWrT!;=%O1}K;F0aAmC0$2FUOHYSYrQuB^j^p4y{Y1)3@OhE%UvmF zclSrkl{fA$@3A+_=Dly@S@7`p$!@CiMPGxr}If60JI{;z1g zC-us?YPh;{k@DZim6re({4u%7Wy4=;j>6)fv$$NP#^QR9+hJ)#^c}EFTbMzQ9Y~vN z{3RNT8{odm2vINsVJ(*h7dS`fu8WKy#=e+@jQlN+qSklTlx$yi_m;zKyV; zT7ir;PxD5&8V;l1jLq$^4e#vp4mHGY~Fgjd7AP^z0SOCqzERUUsWHwMu?1k2z=Z^1wC>vj*r&jwgxTkJ*u z4V(wtN==Z)L?4CmZp0H@gkcnfDCmI4!vmBeGQ4Cw1zYH+(gADS!-nTm#2|W#zEyJ= zz8pS^-iE&mf9{#73D?84*~>zI2h4za+4Mg_+$%zqf<68Wdb#k+0j3eJGWv-UNi0n! z*~C8F7(}K857r!pi4}>bOdFm6KMlLEc$%D*P!nspjl}=GErezf;3`<$PV2qH@U?jB zKG=qLpr^CmQJ9F9K$3!p5*v@FlC*A5)otHg+(tR+aOL9>i z)Z9)^GIpWwK>rd#h+~>;(woli^YS8-ST$oKvQEY(A0~Z~?gM9)SAkWQgR+RsxI%Pr zH_ah9N89(35>`y?>8FTAmHi~CXe9Pm`RtEfImI=n=N1*B|4vK~6Lpe`W;knVvU7{( zql#!%9r;;YG+7jOqBVILMdu^NiZ658rN;ICV2mwNi&3y3-r(=pwJ5u+=uWMXHtwfT z4ks@$Z1Je*{{uZiDyitF@HWlAaB3FK&MkTlk&P&+sGZ^)HNWi~km3&zV?*ks_*Pxq z0CT2GC|5^C9%L$ z#rM+1AbKGRiXTR|*(*}T2gqf<7W&6EyD*oM(6$&A&Bz%gyQcWJ=tHmzAAy;)(E+~& zfA05K{H`>aM`soVM}4EDF#MTj8~%spDEtkLaDK@KD3Q({@|>qiIAo2V;7`#LoyI=@ z@n6DuVLa+T*-MCWgJnL=#wMh^6TQ2uoB{Pcn@h$bPv_alIxAUcVFq17)Oy^(>lA&+ zY0{m=&S15S{r*W&QU?DVwm1pi#s*jCz$L7raS(RlN@rVrUPeicj@buMH9Lpu^Uadg z&QU43l!|mJsbr&*(~uV_u~`V_C_!DqIiQ%Aq>`Js35VcYu;DbWiO z{csfh5k1>S(8+O;L`KIYA5gB3my*B1H%K}9k6{i)k3WkrGpTPWHCZZpXB6C5v*?Fv zwqZGZ#m0s4ys*r8a#*tkOQ)i@VUA0WU3f2j@lQND`AJ`|TFECrqXi3oQL_!duGxj( zrlu@Y4t$JULWwl_IJfCsHvA1XGKq4Ysw|znVo92k>kMklGpC&CSdH1arxwknL|S2C z4GW&)tZB@SOp(U8pT9Vs0GGt4AQsS&5cL}`*u@d(XP zxB%vpcA^l|a}Jh%&#{{F%1Zar&!7CCTq9nB-+?WPf1=rj4^WMHq`I&;IRtmW&p6Sh zyxh`PP>tat4eY~B0*+Mrd*`jD*%`sbEq&W52&rrp8=f918^sXc@C}vP!pkzuX<9Y`{cXO!Y!>+p*)QmEsdz<# zu&hoqJ(OJ}Oh1G|8IkMR5Se8W-43x)wnN(pbMj$BDPt}Bv98b^enK<5t?Wh3J>j>6 z=^z9CK-WK{HM{T?j@^=-YY{ERtEhD{+I_HYkXOjz7Oi>1B(v_) zoGB)R2=0_a#(L2Cs3mW_MF-NUBrWaJ@UT|_J29nnZQUci;I+J z$eM@so9cfb{To(#(Z74;zdQO(Yl}1J{Jj5Zl&?7d|2N9Z{*@@7mg@9al^2=TkFDww zezsE6LTm_quq%@BuH4bjh5rv=!HZ!zV{Nz@W)n&MX)EEUxe%va#f?2`Snw^H!?0|1 z(cAFD@JM-ejUwRA^f7TpRK`DieV_ZB(HCS#rY}K9Hz`p}FQk}xq`2?~_=NxLp3X5Y z&81rC_XPNLn8$#pe_MIa*;Jd?vUb??-@vAS1T*in5Ouq-KM7mxIEIKmqS9;x3_PPK zoQDx7SegqncKH;OPBx zU>tLr*zb;D!~?7w*^H=W3;wZY8$JM!#m0r7^trnQ|31DyQG~4hZ%`V*H zGv;b0Phsz4qu7flP-fcj4Vt6mOx!8EFg-!KkH z7uByQW{myGX1=C51iz2Xnf|w{nM9&F0=AW!h1X5y(cguclsU@#1)^rrw>ifD1v-m* zCeF(d`vT>SHAn1A;GTp?P6q-@F5}8M3eVNt30F~h9C|vP)!^#~2ouXX1K+r{a^?$aIrMP-nRH-@LF`5Cpa6gzC5kG29h}-A>E7F{?u&LD97J6nP zOLle`u7W8$+lCw9%}NoEYR*c`XTcVH847GXz7C$wNJqI8+={^3j5-W|j|#Ih)u?v( zKeWCBeggd*rADKg^CCBvV6+9lhW=dGhCASjbTv8(e+pNkcj2$#dH#=`at3cMfGvJ> zL~cZ2{5eBZxcTw=6Qs;^h>ur7ni_rt{$FK|Ug+EcMLhSd$pTc7Q ztSDfc43BxdjqDHb07F&mfLS_^chXjhX8Jt0w?v8-rkDwy5lvDmMM|AAiY*TG-IVo!jZCzP5mHa8K-k14glqW^R6iwW?- z0KY;7f^&gX=zuxa7uYZ!G5-m>FawaSTSZo3pzne$xH}3aRAs}%y&sOM%7w?HAE4Ai zvI>G*6=xt=2=xfKabcL#jsQ`2!8ZCvD${Va@LHI%Y8SrR8MZdRqJkhd2nRoHVE|A% z#W++A2zly?9|+TiC;q=|oV(Y~&aJqgx+LR6nt0G>)d4^3oLoCQQt?Ex|7w!M>H9Wz zZDLIEVQ!gRHg77AQ=K4FQS`6Evi2^QH#FqW&>xAn6Z_O578M=bq@7TpeG5J98Gl#K zFW0Tjt)RXkCn>3d-1tg!mos;LwON_!MAr`z+~E$qf`A+(`jXyZ(UhUE@iFc z_^k4Br*r-E+{&$p#Gs@~V#H$`-sQ~QP-0fzyMNn;vyF_(pHjpsN~(O)aWBixsC)sA zsebRP-VLZe^i>irF{>_5HMd(_H8;ywg#xOxeN|yVHO*Je52)&W)yjZsjjtl=V?EBj z-dEigQ2o$X9SW#^CvG%vgr_MAXwLOCL~v{b^Dgl;*9J7V zd73=|%|TBiA*DSv?=4UB_qb+$l2dhg|DM?a%`i_hF`$|59NF}gIltQ3eMMgOd~uCT z+~v}tm^933zhZp${0q}Wr;}_Tw%JxEvo3ph(m5jdDwC6U{>J~tw9u)!a_9g~shDNb zB>^sSc3hd8H{T}sPNh`e64m@2zHioY^Cap*{&M`>~ zdUK;}!CB-CbHOz7B(B()IUMJF`d`Ov5<7Fg`Y-y3N-Cz2`YqlUu_Silf-p@jlm_`B z@Bm!zH@$#;W6A++VRJq?`^mJGw`ArL*hRmVe5pU41w44oCRpqxB+r0tc)Mnos&hGv z<=kU}YQY^;2>U-~7TgUtGXNL;eeecO2^)S0rr}J{vn9>T`JZeBbBLQ8VGDi&z7iIj zXK>aW??ahd@Dhd`(0#;4JS-fs5k8^!y)ud*k22egjew{WpbSNvk=x$um!eZ zW+Kbk&xNmXGQX1@soIK)_Oe5$cER+MZNWdl@_PSWzUl$^2LD~YYA<|~|NdUJAHKzZ zf3JEPzSVz!uX+~V!NZ5@oaG2O$17lE7M`ZL1;!zs zegz!TOt>r@qj@DfSu>%ta26Bofo$>1>6%^N&1+sbkM1XUfvpxwU@d|vU04S%hHZEW zjBL1YSP=w_;F6 z*}_+`z_*eX{(+mY4bzCQLALM{8o?djpuR{wwMDC0GD+1EJQ!Bzk)x|FBu^rr!?Y(+ zL_gK%QPhH7-khrm3h|!`QLtL`5O|Yj8mgwQXEPLL(L5doe_!*N@IKAM;a_PU0n5oM z?Gtp>uW9D|sFq1(IF>y)Qr*dTSTc-M^$D0|V(98Txlz@$VD^B=(_p>i=5(0uJpBxq zxp_Pj=JI$Jyg>78Sf*P-`!;+roQn^V5eCdb$)-qlDY%Nku%S|fx1z@|6`S)2Wcf9c z>T;sU3JZ6jzZ1?(QfXx8?cv6t(~{uFH7CRJ#1?%D{722H@W&A?Q2V^EHK+6Ebn>K@ z3Iuyif6eG>LYjH!t0~Y-K-b^_&%P(T5YF^Jl+P{5GA@qaEnT@1HLs72;EO?~0p`P~=d!1OI=c(fD9ZMv?!KBgX zXJF5=NSpHCM&4g6^4a1K*A6fjEpU!qJ3X>!2}{BXdBY(LB`v~HGQ>sKkki^Cjw)$p z(GSUG*ax=8>pU%gwTbRU%1Dde;3jq7BbU0Lk;@Qb!y?LJY_3zz&o&P?#yahr`=2!~ zUXV0dsaoktrh*@8Sz%MQC#m!&&Y&&VnzdO@bW2`F?GRZgN*Ph@2&a9^_DF3ZGor3s zwZyoj+LhcGRjq^`jn;Bl%cyF%d?Hm5EymMF2++_dM{)ztdq-I>>6l`5))*f|sY|SsL{gMJs7Y3;o zOKT5$t*OPVjrmL1MxUYeE}Z4-rLo0>os(PhBa6?Z@m|PMJb~gUOj=w7-wRkUmw7+z z!d38nT!@Q#?~u)HhTsceCU08s8h8Ng!m#q1^XM-;di z-A=)Ca0iUBglIC^;{Dh#h-4dfosR3X%ND;%fi#?nNvO3;)_`AC$ z%5V`jQ$c)yPLla^E*t%J@`Lz6cn1Y^Abza73;koh@9OZI_&3=?|B&V|{4=NXhV0>W zkLwxBZWm|E08x2=sKaAkQr)x8=fUfxZO0hVUu@5h)Tg2+z$Ml9;dZ8ns-7z5FEle9^GVHT(X-SEVLyqS zxRNyJ4sMJ_)}g*sa~LkyY{LsRN8u&3c~GT!i&DSBS#x8yS+d>PcH<|JdifIwz0_1t z=JRr=%6GV3$YsN_5^{36TqN@q-(&USeY!L(Y`zCGBqI#}5S!n^HY{fZPLma_7snCZ zrtmZ5uc`A@l7;XR!t4H$*1v`k^OPm6=io3|K8C33|H2L5$dc9{Lr?rC+web?cVZ{I zN;Qa2-|fo^3YX>$LC8Gn=k*j_n*?*t9u5`lg$t0&eZajc{+e6Ogc% zq|Kz)rl?c3D?8G(CtjT7*YuX5X&*tPQ`6&d?z14yO)tkevpCL8Z^gOpjW{>G8{iK; zj(A-(oro8Ny9GEWz(WE&I?fB{#d*;7IEM=ZJS)IU0(?;475ZNt(h?sdiZZj)6z`fG= z^`O(N0fB-uYLI`Z%Ba zahz9N5a)`eDSH#y~ZyMm4*s7tt1tY zoFT`vQpb5Z4+~-#>JcJ+C)9e;`qt1@`>o@xW^zHvxbaTGi5#cv>pjj7zn+p58a~|l z(TT$J3omV6-L&C~HO?PTOz5@pf{R+4E?v{QZuy1_F1=*E)8pj$(=NWaY5j(Em$htg zmY=+!a1GLB&FimN-?U=+hUIES>*Y{Xl7-TFFK!{T(*DN zH)~SHr}p6e)#62imoe`x<16ymTSqo8gEQl@v0kahNAE~7`bYH3nQ=PC`O5HOS>7#0 zUagFY{i(%UwI|=84Ef^*c{e>J^BqYY4#g-MVx+H#btqrRq=C^Gc;)2@<#oFJd&;Ph`fIfOJ7uimTa6L*~swD?l z6_MMuJsvnI@)0c`Rc4k9rXwIr`B7hPOl1{Qcy^iTS}{nOgXqvK(sCWk$c#)q;!|tC z$uB>(_O_N|YricZkEFg{l2i5f=<DfW~t3pv89&3ZuAs^wQh`caM*8v zwKgx320MItX)Ez6a;GoH?B%eL0msT?v9RhV?(CpfmZV zcuFoq)-yg8JW;>=RPgQ5axD0?2TmP4hXVHEfp#r>!G|0ki ze6t`KxX+X8Jdv}OoX_E-Um@p+G&Tif&^yHB5skfZG4czrB-#~O>b1Sl-RKc%_`)yn zBIL5TrFXC+FR9Swozz5b)FblNN8~EM+}k=5nIt)R8lUx9$w-;WQr6H*j6mIk+~i3E z{i%rpe@gNWTjXUM+m`1T!`g1^VKkVg-PYN|m@}XQgVB8ch`)VE6_u3UR@KuO?Eg2A z3_|t;$t>rV$`zBtaIjqZ43=+8C~rUL_B6T-St{>IBugWhE;p{2oRc7rOpuEbz$7VL0Gf*ehd_a(?~g4~`UcO=N2r(~~xZ{q|9kdk@I0AOQ< zxCI87Qjj293363}98Qqe#ALsJm14&fsEol-_3Liv6axO}R#ynZBp(keBakJMQIf zThT!5(`6fzj&-%!1I2!K+o6F*X?OLFE=arjjzLCYx73&zYO|2do=4j{a*Y0Mw+=E! Nm?`CLhXxs;{|nAZC4K+^ delta 20666 zcmche3wRaPwfOf;o(P2S3L)}11jO(P0pt}zG6oC*gM<(ufdD5Y;b8?L0#d7^#}@VCNtyPg5#O@@J;V9lIhg%YG)$%T-3UXa8UN@$JhK6;i_$28G;D#eJ{Cg!_ry zu`>qDO$;_O;f5Yg>SE7BrM_M4559kqN)g9$eYZM&CzV<;L7`E~vCKIHy)|=yany;M z!(yin!`5C!65&epr-z*x8g`doNq;)umwuA|biONc*q^}@Iy*!k3pE)3KR6H$<2O0* znlv16;I|@wg9GiTomCmRv98f(M8#C)hMel^BoU3kXrGq~fzF=u8VE(7(Ym4!wcFtj zHcNFmkfu7HaGo^pHY}$h!;@V-9D(@`S$3}LsGVCnA|yf?(O_q@{1#KR}tis0WL9&QXguz&E~hLL-qdgxav#)tz|!zcAHh8(cRZyabA?RSn>=ERC#WqWO; z2}`M>-;9HiIL(4@g1@I!x`My&x0CL|&w3nFp73XcJ1}x7_*8j;$RL{}yORSYBLeq>nVJj> z9;!JCkA@4-+i)pd4)1|+%;UZADwyDA#NqYyg(Dd*Iu%2>Qz-_lCS3&I4O{RPD2QUF z4SyG=a;6L4jt!B>?0}yN@cY_E^sGGN9;KKFHR*G1pTHK}iT(-LR_ZL7CE7WS{?%FI zwIEyvKS_ablpCY(E{rqcME3|R&WYZFcl&j_N8tkjeghk^7yXBDK5WCXY(yVdYBJG{ zd4h}3hk^(N9Wc2Xs8kO!NygK#g?=2&y!No+5(;plr|1`Hj>66GG4wWk0nD1kOikX( zjW&B(Fw0CF>SfdaWC^bbaSCqpN6^cK36+G%<3C~}l|_F7CK}mfQ@Et{Yzr1|g`;pk z>aw1)ZFm^`4D7-ZY4Y9*p3SX*`1iIDszrdwr$k{|?@d0Xm1x}y+wkS+>7aKU-UXM# zF3bW`mGBYxA>ZlV?eH(f#!w!=srlFF|DyRfa7^YyjDD-s)J$O-Itnua&!G-@kmloX z0Zb%hwx%+C<4V|qE8zQJ8(vDG3A=C;jMIHO;LSewC7XIRw>b0PH-fMm;RU7oTJY^K zmHS5F`(Z}i*M=X1*(rTpnDwBTfAMkZFSudf&w^iv%i$>ej^=gn$HIo{*Q(UCG|d;n zgJu7fr>lN=Hm#6?p;Wfv8Jb;q4hIsI`lFgw%P8-L#fF9EvDjSXbB@?tg*~TDjs@SW z^ie)bBuwC@57&$z(Ds=R zl%)CgR4eX@m@PUu$8oC*&EgTx@#>t3#S?-xbPrO4)n>3(yc#TZ?`cO1#pgNG7UqvE zUW_VH+>~U$N5(l1)2)uZFlR~e4qCce+L0s!pqNk>@1h$6L0Y{D-02l@!|xQWXO+k^ zR8nyq-sPbx{uk$?g%x?l2NBtul8V_P#`T(Ca;j=5eho3<#9;vCAS1fDD z_eaf;fMxl`GbGrWyPUz-8KaZ>8IuEC;gl@OH)kw%qKk6O8LOS`i_SM^taaX7RA|oF z;`FPn$)AB22Fp;=3}TVsME@z1oL#kJoF}$*j~PF}bE?X!^s3&=T?S;K z->2DyAB9(9hd!4P$+=|M=$}C!fnAv6Mn+|Hz%Rmo^*f&-t23XzEcCBS>lmd(5#Cll z+wl9E<1i05<6&%E_&EHCzm#Wu3IB+IiT>~Ke*ckQBGdes|1>XQryD=^pU5Q=;!2)> z*n5*$4j;j|WU%8d&Y4#-0=?)u^t)F9On+IjG7tEtLdjV8r?ADYe-nGwOD`dc*@>2Z!?5@aSz;?$Z& zVKq#UJ+6ZfX^z5A!#FClo!12a0FI-7L67!Pbb$?3!j?!J93@BLYo#3f-^15vemlm< zq`pPLr{v!0qtr|phA{e>y*1nLaLq0(8v`3Loq3*S3tp?)hPgZ&7rvdo_@^Q;tIBJi zD5;q&nXb-$rrAdSubN%>C2BHyl?%T^KAwv-^H1E$xor4DY*OG#Se7N>mQ*SOWDh8p z=l=rofqqkRcV4N>jFtAKVs{EGrG{;#;!j{w*ZjIPG8hGGz_4I_JQz{@E<=w4GA*Ud ztH-*Oo5U1sxPL=#enm;DRe{rsB7;vze|#&hGmB z($aN1*nFrWRHMi^1d~cHgC&?2%+z~&VIEE19<gwLCXqPmp(3W!tyD( zYX>4&J&*W;=-`*QnOqV0*Vq=q7MCnM(bGiftLPc2q|!ffyTwCQ`XA0C%Zl^L3>@af zlNVV@#&dpN*6rryIeBFg;$LuCzScNGyRK4Yy_}-uIkB?-sI!^nII1D=DF1XS8>zV+ zz4#>h4p>eQ`cF9ySD~L}_`FCnYrd>r*i!BMS00n0iT`@g{#dfZo~e2#FbF8Bi8 z=^S02Us`rM{k-LW5d@t4TJ>7+6{YT&q_%UZ%Lw;V_lc>gVkxuW! zO|S5>=bSAK6~Ol-HP&< zg=p|H;-?*ae1Qm;H4MF;GHVjLS+b?jQzqe%9cEQ%rUz@8FzvGftY)oeL0TJhJ1hz7 za&05b;Yd4d{L>I*ok*kXKI_Sh))SRUH01x#(Rkl5^XterCDpJhCc(b-6@|cICT`a{ThxhNo!W!!ZPU z&$KxDIaaYLaO*Q8ihhYX8Uel0iQY>`+} z37cD;9nt)W<#+jBNMZRy+`h^5$LPK4*!7TOr4>skG{J&h}UpM_v7kTOb`y!W#=OUG#aPDi)kIhQi;T;gC*_3eHCY}RgV!R`F z^u_S|fCZle{~5O7YWM@#g=^twxDaQp=f-w4EcjB*QTSTTHhc$Mpw=oQj<65ozi{n` zf256E_yEj?FgoDp$mPxYIQ&cU6aK5^EKWazQ!mv<|0no!*oApM$Y3~7)a=upM_LMF zv**Gzmlj7=Pci0c}Hv0{j zac4xRE3SSGTd+K;vU%~(uo3>@2`VG5)HxC)PU#F6<}o8**vNr-&KUGp!4^D`_ETUR z=20c%%XDFx2psJu_M5m7JCCq@Cc4e7v7H|U%u;tpVb_JU&ZDO|7))b zmZ8ZY2H5C7gGYH^d&N`*b8RxW9It8);W5YgpJ?awg$Zdc73K_~kP+m%Z~=^Sxg9X; zz~f^u8`9(Ba4B^sU~>|#^z{RU>wV56o3mP&QRihMY}5sGGUpPQQRYS9Yc&_ado)|{ z?J!Zvi^6xpS+EU10KWjoVb+I=Rj7Yu&8RAmR>NY2Pn?+UPj5!6yzA^`%3S(b66nn0rVo&(Z>CArw zU8QWNVx=M$%w^7iZFm7(0=sY>T*?PS1+%!!G8o&+^HC7BVK%&7a~$5q0{j5I3*QF+ z&08X>@P)id0N{|%;5)|aaM9Tm!93)WE?VZ(o+kWi0^ z!(U>Au@?L+ z`q*3q8{rj%d6{Z#9A=c}x#(T^&+vTz6Vcq`FjF#)%JMnLtcIoTSMVR%R!S+FQ08^4 z4Pi!Xz5`=Fj}e*g!Pw7Z{g{7(T>?ID7M6sXL8y5&C@<5M5qJeg$6yOy3lr{28y zkKbw@viTuw!Mos(V080thChZ~_;&aca>aEI{2%0Ee*i@#^Dm9ed)gDcM&|tj9%!g} zd(bl~k8gsRM~`WIUZ-Y9sdF>o@#tJQj}DHLTU;yv^D}arYdU;_Tx=@g&y}iDa250K z2~t5;_!ksNg(&>LU>80gCdB87%_Xd4=5T>94tDYV0e%wuueFU#>)&A;``^R=fTc~Q zLbh%-{i|~ciOGnnE%-|mjH246^M2l^OjYf|5%dF9$U{X?)T4eDvNHL#(Ufd8FS#=@ai$`ACfj2-V##fLJjCk6r z-A?w#oUD-Qtc?|URX1TuGFS;!xB9F);5(dKHde%{9!m9JN^&`FS=sW9rKGB#a$_MW zoA;7^RR0ScNBaXAY)F>XNDmvB!}>`xg46)cZ_1^_wott9lzg zi5;nmm2XItg+F%Q+f-v#op7eL4w*PV-FMz3Zu9ffeXr?s{#f67zC|u&i^vJl{AOoY zYkA)MEr={YN%L7B9^0_(yw_T6&cE?M2~V|vuqK*c(BD^$45+61DpqfoRfDf;4XCd4RksCH z_xmbYR5~~dUi4KR0oA9Ts+vhnSXKA&Rrvu`k<+^MX|vjLinitFR7;F*;c~h3dQ2JM ztlKuxtgd&yzip^7t6X@zKrimL`)h$ReiaytiHu*zIf!4>W2eG&*-9;$yuY-M=6t5q}m6%j59{c z77ie%$%V3LISUe_GC30GzUg#aoHK9kpTEKXX;hiB!~2FT1uqw#M@2c0Na^>%^?pMO z*&gOHE(@E*jGtQGuoZh5fS zNce#17aHIX42yDaj%QrX(yQ#3#e_yY;8NSwkU$40xrfh)N+ymd>zoXau5WdlSM^`lm zV8WeCdo|C)H^E~6D-@N6%8kMunj2xF<>{HKnlI$VM2wjCMKYnn&9EF=!i;Ls>6+KT zqcpFDCo%LM$QGZHHaUAQ$zQ!_2K`U+*0J{xGZ(`YFRDPl6t>~Ha2@QztWuS2D5C?8 zYW^ck06qOXFoE>=UHC3%(069_9*)M_b}Y_Xv~!)-@0=f7^e6+6F|ZXDJw;A*B`x{| zH(?w8wa*6GqCe0G0r8xAH@#~|E;>#jsaA}*YO~3i+1e50Ddh6!D^n?=pW3r2YC z$F(dI37U#fzz97a1`{}s^Wn{!8AGj{7-CPuwbyGt1HMc1NO-^IGvS|VW*OE#tClzTf7U?>=czj zw)i$~beTa|7w^-ION$R_PJ@qVPKST5naYcgY0iXCYVM}g66$zuo(Ah>oY5T~;_3NL zgEhNkf;Q?2m%+?&Mg%?=e>eJHf-G4Cvk)_)=vQmDVag?_8F82+$YU420p@tZAGKt! zW(&Sgvkf2MJo1cO1V(1I`d@-9c@@48w$T3tzR3SVWXUJe9C9=IuLupxMHcx|q9Gki zs(lNEa0I<ZhP01M91Hj{HX9>n-+F49sKmbW`Bk^B}@#-g7<1*SzBExXfM z7t1%7&UALi%419C(zgUz++c%CTDqDWt}T^~OCw8VnABeCkc-{D*CgxwkiQu2ME5hw zNJ|fMle)5urS9A0(sRNaZy)=fnVXd}-yV5(QJ}amz%0kEYMez&KcR1_Nko=@1#Xve zZ$Jm_E6qC7nRZ2fR$VV0V|=XZ@2tDxy7TKsFh=UiRX5qIqv|+n#Lqg`vou({N?Q$hyP62i|e2hi$e|{4z~z z|2blhT)EP$d)+Cxs<5=~JqqshmqXnr@Pn{LjlaUr!qSmE|3ptm^|T^-X{^47bIVnQ z8|&p4l`yY(rVFp} znGmV^ZBEgSoLD{E#e9IMN%2+aUw}Jco_VqeaY)tEwRD+k!;hjE>K`R&5wJfU{Zm*< zyUc6-VRG7$RR1zoxTqrVYvj~b7W}3c-weOPyUxoyR+{z4ov~Nf#OlA)lm9PDEi*Jf z4ENDf(n=G$Yx9Tb^Xa-TszdOZl!%L@W#hPs8y0*P`u%VeW*M4~!8Q}}9{B}aE_#c6 zC{GQ8eA#@A;{FUSlP$%#WCoY5&`jB~^I@5B7v`ie4{)K9Wb$M%ZS<^f^Kn8Wd^rV- zUt+!NTJ&r;Tvy9(f**h__E&9Cw@)NJnye}#5dBi13EbP ziJ{z-`D3|r=#o;-z~%{hlOk-Ex!^%5fe+ujvvB0Hmq0d%q-C#j%kxkz^Jhw#65jWm z+MR`^%T7?lW{|X8ZZs}wIX;+AYVHX?rFj4yr^69!&T!nFIrEl}K@?x3sHSMP;WEu} zcrHy4JLSSPdLcZGEK!q5LRGTeiR}8sT;AYhUz-zK{w=g}+0>93kukYkB=Z%&(sG%F zO4!0?CoD4?g=NG18n$8LVEzVn;d`-RCz!&Ik^h!xS}+r1zUt5H@@KIbs1|rryZl88 z9`T%1%V|WWT&8yUJLm~)sttdncuK&oQVpPb+dqsOm@V^nu!TOyIdN@%tYH+zI@n&L zCNe%Z6p^#BB{fXvCTzi$jubo3v)7SokZAr=bl6n;HvSx^QGgOvLp}H_&qOt>hTD~M z>vg@&h7HcX>k7?=?atBbDoh-UTz`I6!!8Wo(#AJCd#_(^Om|LP|Au+)bfC6zW#2h+3=cEa>HnI ztj6liX)PlC!5Lxp7&NmmN-WW7KhP%!xIw52&^W_?iIU7~t;(_`U!? z8sMh`{L28p8{iWj$GmYho=g_3P6=?Y01poE$N--e;8_7aFTl$KygI-a!~(+B0AC*9 zodFJveqPX_hXXc05AZJn{F?y3rCG+m`lDpQ^2d_A`fo{YIxWeky_w{u{sA5y;7I`v zM5Sp_QeU$>Llq|0Rmq`bLDQ-v7w<@N(?;i!n+ju1mjzVUCwauEBsVz$zB|e1zLMmo zeE|*xt?7k;zCFNy@Yr86O&Vl+x&A=qr+>_)r13iH+mmhsxJlBVl24h(9$X`FM{;j*kX z>n~{8*tnr(6r1*fP>B1NNAM5o5hYqzbsU{h0MX3z?GWTa^O8q%o9 zm`K6a^&7WLnz(Aqs9-}gzOj+62FFCEj-r*`mrvd5TV57vx!|If$akDq50^UC&-33W zNvm7etZLo7X?4r0%`J`11tSyH$3`w%e@V-xH3bR9sIifPZJX9NM@Elo+Oi#|CQOlA z(ZsVx`OS-=jN%lduIkD0bh#aiNNB#nf!1K>t#s^pwS4`GQITOYgTa&fblV!4IWuzJ z;;O31rI$t$azWF&#?3hEN70L<7cZ%^1*4WN&gSQLJFgucnlGNydRMP4+X}UczNNiU z2flv(-Lc&#tzdl3jm^!QXB;^1uPvr?@#iJ!qf}Axgo!tQp6mSTZ~L6bKcDP;{`mxF z>K7A+e{0j~^H**8c592;uwm6jTQ+ZP+M;CsR&8o++1$8g{iclGIo^(JJ*@ zwfq}p?C6FZ_vLXt`M)p2koSk=Lt0*Fygj*&KeZZyoE?ydBhyA#Iq%#l5iMWA2kV23AVo)@@CIcZ zJ{NhKHV_%(6deJtoDrtf>GHRUeg*ROfGp*^e0lshWxRSi^4@@)i+o7SvE}?~DRDR55as)@kTWMx5|jnVJeNv2tAoKlZw-x{E;$7NVy*1c#+}M zBELM=)qoyhQNA+9vWQY!eS@M^{M8i^O5LO74g7_gG#J+%h{G)HR5u{waB65ksi6U- zc6jzNl^79ycpeu?2aF^wJ0R0xS|rc`9i~|UnGVycLvo##bp+F*0htJ<*&_3b)74>U zglX|WgVN!lfGiz`Mwk{FVOqzj9i}T^PV|>91B@|JPr(Si6GBc8Z8%|xGW&@jhS*KG zO__t_3lLk&Pb#yBdP+M!AtCP#mB)RV|2AWK|9@#;QjV33qJjNMMG12+Us_3rV{ccc z#dcCh0bKOA{wz;T3%2Ee;&z!r>JUD03b4%}g!7!_SM9n?=5ySnOtHLT3L* z*e<5_*xMe`K%F+w+r`u)=xSiQU!K@4i4$+-D1PZPvA3 z&nr_Mi~0&iWbVsHu}d2~#@97cA+F1ryMyw5f{u*L<-t+NIx?Odn7WmT4vzTsWhxIz zdmXy{|KLk8`yOk9#N4i$rc9R#MnTAanlE>i>&PV>FxKhv? zWB(_fe$nqL^Q6qZr7OJ7p8$YQ3^^LGXR*q!39<&d*3O=Q z9FxVjS1a^comfnXv)a@V>1x3B?YkD=F<%ZYGVkq!hlK15MIU4Pl9SAAZX)Bfq>1J_ z?tH;F_7!r|_qIz$HnJFh*_J3oTuGNq@K ziyWwLx{vQkH#&{jarDxr*MS$`Q)L-Lusjlyi$by$lB+{<^i(+}Z)T@-V29*AAvqqB z_lIORB)5m;j#Ffg@8hQ^yf?R?Ln+yz@<>Q73dvSTt`5o3pv>-0X$>ln?U1}DB*#PY z{*dg3L$r5q0^KyN7o<~%h!R2~V*MIqS=$<-lQHVzwEI+FfXsw_^e@Z?<~ zd2dMG7m^Q!^}lbuK6O`zS=?`zBKZIqflvfC=XJhyF^mlw1hAwR8$ z%q8jboo(5Dq@5#em3@qv-3{}QU(oHzwmlS_)>F1Tsav$IT?_}*wYBy#2DA* diff --git a/components/execd/pkg/ebpf/audit_bpfel.go b/components/execd/pkg/ebpf/audit_bpfel.go index e2c859a80..6a4156af0 100644 --- a/components/execd/pkg/ebpf/audit_bpfel.go +++ b/components/execd/pkg/ebpf/audit_bpfel.go @@ -1,6 +1,5 @@ -//go:build ebpf && (386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64) - // Code generated by bpf2go; DO NOT EDIT. +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package ebpf diff --git a/components/execd/pkg/ebpf/audit_bpfel.o b/components/execd/pkg/ebpf/audit_bpfel.o index 5746c38bcec615be92f5b9500fb140380930e769..6a5836bae119b892af45dbe4abbfc6d05d602bdc 100644 GIT binary patch delta 18332 zcmb`O33L@j+P|wi3tgQWyf zF(5PYi3<{DKppkYI4W)!mjT8RCN876Bch^!e9zmrnw0l^=YRflX6o3~^Zx3srEBX- z_x0e@$wz*lT$<}1Nndx~UVY5Ta<=K(ZaY0VB~5Rw*+>s{YdPh5jN8O{OfPiLb#~|u zH8N{BN~y+9ZC&BE>+!&uGiP?YN+qM+!Znv`!sZ9g5UG(ko`LFx#8N6nNlv9|q$-u6 zpG(QC?_s?#Nwj$G4!U=8f7);;Ez>E~4<@%-*XK&TCv~9HPbbxQ%gNC1*67_K%P&O= zj)zIv$9>)%FI`Q_KI+?(vcEc`D(a?HxcX?VYa?4?zWNA_rOjuSY~JJBMJ?i`ywD&X zFCsk*PCDN2}YEF&%o`7V_Yd6<6H^XHe3ZaFnknl3eS;NbG3+b zLlwqoi!oO!!+xqz4jKoq7Dzt&>tSlvEx33(iH4!b9P{a49_5@CJA;EFD`8FNGhFx?rUuN!`kQ`ya|?qis6?m{>u1^ej1h`i^8?Lnx23g!x1SohS3Tm3|GNj z;3lxDBmXG%JQaBG#pwPR!$V+coX4b|Vz?N-9zKE|g>QntmjZCS6_zr+dP=Q_{RY*e z{~t0&ISJcfe}ceoTKqjMnPcdw7sQ7~CPM?*Zv@=ja53BlmiZKgyTUKPF}M#LgH?T{ zM!>l;{vO6e-(Uj4^I&{cF}xh!LKj8hQdlZ0hd07~r9tqc@Bnx({46XtPznFj_`uG$ zhTn!y8GZ+@9l0=G(7PDfh7Xdt4V+7%RdAl+qi|2yADRYK3NNQJ4=#ka!cq8I*dJDS zAuNrqf>#<=4V5Z`%h4lYj7=CXV|eg(STYyGyWyMQDEuP)ARL1$;a;$6q}1PyzXu;7*DxLDTxfU`d}(+6&9KnGYmoc_ zq?qyW3b{3|5_lD{Ox5{@JzBC7zJ_XIu!J?FD_VP3cRl3lP?s$vOY34tyA4;u67I&e z3Vs7UECSo~f$n2oF<&F)Dq)U%WxPu3nrwoM*V<) z3bm+n(PceJ$c2|$bs_2Q!_Ud?hJK@^-(>ibd_8M;D0>LW5hE4C@-Xz5XujSwJSTms zBunvxh533PIc`NFq^&f$i2TN{&)2^W4;5@AStKdsVfa?#CVA+k6w&_&T^^PacEYO- z|0!P&yQW|E%Sir8B)Jm4-6S8%*E>o63@K>SQTQ&Cd?sHv7}4*Xj2`i2CWW_vWsOSc zAgnjHYZ&fjsr@Z3G^{hO$kMS9$=Op8XmfH_yacu0)U=?7K0IQ&yQGI6I5N*&)kEJf za#)LXIBzlzWfq&f?gjemk>^LcnpuPDK8*KfJeyHPKKkRZOjHTGV7W<;>lwo_I0la= z_V9CQm%lT?Z=;7L9X<&AI}`i?{5`s2&V1B^B6DDm%8nSPV)#45QTQjr!C=y-d&*U|5u+;7_9L9AmOts1Ra0}Y^ zxU`8NheF{fEQd&cJz+n9zi)H{~DH^P{MaTnQDw#vWJm$5qBgi zp`l?9ZfQ6QUuZZ6_cyF4tT^z8mjwRs-GM*69cB(Chspb#(bW`;7meY;uN#iS?-`E4 zhhP~dMp+$)>1{upfMps*xlY5}z5n+>JszfVu9A@5OJ|SGaa;G&1!F_m!Jx%R>4=wX z?;f7Ldg)nXLy^8nQlM;20}PkKR~g;_kAh{LN%t2Uj=@t6SHZJjX^b@3o-@~@%dkYz zgW)ZQP0&f>>KELA536cr81Z&^5B?JFf}e&x_N4Y9`>0#sYYVAfMq&?%5 zoyl?<>xahGkGyKM=S*?Zyf97&(B-Tm;Sfwet1#EcaGt3SQ}h%ji~1B@x-UTLrQ6fsP;Z@AoRji7IkNS0c}?}4;%4=K!U`5etpd7F zf7qvCdLyBDp(WVIXCE+qy`ihV=#4ugx6dGn3JJ%Ub zVU({o%%pW9u#_V+rPS!K`#_u{@@JUys7YXxcb+xOLUdj?%m(j#V3?KWerA{sbWR%P z=I(ZjI;u%61y-Y$TJjgK1)fr)!j&r9NW<;F% zhMU3544(tvX}CGO+3>mWV}`@<(}r90!Pskz9QYl>E#ZF{ZUujCxHWtnmZ{!}>-5F? z`H7)yd5YJ=jB?fRXeeJat1adMKaD|Jh~c=!UGJ;#wKq$AXFN@&66W#n^KacHVOB8ah4e`LG})2je5k>Urfrm zaEE7}mPpUSk}c8oujqmHhOnM{al?olP2|QU9Pp}HY^g*#;&XJlB?%|Ivs2l(|HJ7X zQUB(A|1VGX$iF+^|I5>z`v1N8j{ko)-Q&kWM$r#B2N>64@c*#@=9TyhV13DddjYsB zJ)J!@=l^%2Pn`N6O!R{PWTL0`(Y2=KL>l+ual`f=Wy=l2!S*ga`H@*4gVFy5duSu! z&)_IL5&j&G!6onuu;N+@%c}I?wT6q~`wd6o$KhO-pueX)gYgBT>?wbSC36gZ36`^0 z75q2&YvQ9^|AdbdE4GUx@DFelJ^}v-$Ka&C=4M!o9V{l7`UxLdq+1&3^R5j=#*i%4 zlq1c6HwchW_eilhUJey555#ma;Xd+1pD_5kA(d}tf|z^@D9lf zuY!}sA1;Mu7mUFhE@8bk5hrFqISIlZ{HS4>8M|P)vl#rGVUGv%D}fHb6XyAFk3+#<;2c~P zhk|zvhv84**7$hv3AimBg_AGiJ|r((4?Z7O93q;)9mF4Q4R;iOxDzaGl|NT|!Za(Q zsxU5%8|nx=*zi$!DBPLMC*aXWKf#^NFswLjFEA`8@2KGn_zqY)I}G1%xD&j^um^9y zj42|GF2;D01O`b(;XUxna5?-6+y$o?{93>qiQWvDBhdl4tN3sv`WTkGR2+%EH5`Ud zzypvyIH{jf7vLX_VAR4GPeKe1!52!4SQ%ls8|=ZkaCgZ7cZP{njDIeIdx(FSUW9v! zKRgV+Nc`ama4$FpPlpS{zXj6>j$AAmFqUCRtE2E5!{zWs*xw4_ZLsV}GD)6>WoSJ3 zMYxY}OO8lzM9P8x0sB4CiZbB7;sbwc^k^$wPhq@FhH?^W_veX?Qw(klUka<%+#Kw` z&uPbGf<^Yu<4#~1vSN5B+!2n#qu~{>I-mU;zDz2H7aAYoTj0LZ)ELHH7&10{;rrlz zWT-q}W&DrPtI(f?`%BI3`AZ#^A@JaL;mgsZa1}fdE^n{WzJ&+DG4!9|DwI08x=-22{L{$GPj41N(F-(SZ-Kd#pH(5d%zyXC=BVw zVp!gA-VaCNvFHw&qr-T447*YgylkM(nVUCo1=1(7B2A$Bm1(d>_v>L6Y%(17k1+n? z`9FO0#<~5nAI6oC_9aC=Vz>(7@qzl6x&0!~A|>-5?K}G#5>$K9Gl-*H!HK6FehdA3 zii*J|xZhzPw8{zIa7cQUDJKk{ea#7ffqu+U`h|IOv%iB+m^(fJ|7`foKs|8&FgJCO z-ZZ~?mn1;t_9{%7gA(pA9EI;5qz5kO z>24lWv1-A2PW_!Ench{;!NYau;)eBKv(&$xRX?)SFVCt!TI!jzYAvQ|P;MhQUT)Y@ z&pWGjv(!Fk)ghKT>a1E~sdLV%%PjTQKuy2LQhzsCKff?D!%|)e{OTXH)K3Go?vIw5 zsy|$qSvTv7>U(PIEBTgkxvz}1lv%#A+*0oGm2H-?+gJ8l$_Ku3%uV}q0x?7&JEY8<=-q18B8qX*5(hn5nPtwx3u6{p6zji~L$a9!M z(%UBKFtN6S4(~IpdY%ab%PKy(gb%nJmxCB|EB4Y7+IN~{wK1xVCi}Ze>WV3KMr&X z{|265n*0MCtYCMTVYvE#Sq5 zbKsSRTf(J=Tfq++=9um5Fx&?Ii{ZBLUc zy*l1B&s9#k;XZK4a9_BMVUGSzzG063&ZUMqzB^YM=49>^!96KHO8GNk)-10Y=*9kQ zHPaAd@KO@w15S+1Vii0SJ(|iqhjYjrgUi@*gsb3<=rUi}6qB~W(w|8+l=FktoN2fg95!4V?qs+Qe2L+@@KvxhD9kQB4xYsg zc<>Z>He3uZFdU6wL^06)7cFZI$I#1R+16AV?>-EB@E;9F;g<}@;P>GWbC@v(Es#wGQF;{FeI-8nG+}dlxZzRtdiV%P&A*Czi0ESn_^MEP1~pmb@modDVtH&sDl&MQgWX zlHRu>bY5pG=_26~@g9+$s0%Na@(54%*4ZnUyNyQZO)GQKTaZFXTSaQy5qjUsHIZ&e zw9UV#{_$j0LM-iy5KB3C5KA2o5;LKbJHhgzOrFCM9!J-(2k(J5z)|=W_7ts3th8KKv%$}9Mhlm~;-M)EgB zyfl>p{~3!?3h541Wg8!N=qJ7AB<0?D%1%?y`Ek>lW&} zR}agsT^LV!lw1uBZ--kI>R(rfA{QVvq@q1|^?;usNy5djwAJJ42k$^HhOdC1f}^mE z(RIWzu3_lX7{yo=!R7dP@KjhD6@_OTE{B)F5AqoFAGj+pD#)PZBK%P*;97&eTbQmW zg{6WRd_VlO_|jny!_vVX{Fvcl_z#8po7+NdoRa5ni=rgdRTr1$$(POZLed0r>m7)&-J@`J@ zZwCB3_-%Zm@Z<11k{8|u%lwXEzX-qUs;U0!cmv}-$v|(v3pWub_yhPcbj8?x0{b%? zJ`V2}fB08ecI_D4U^L%6VA*?{!3Xg1;M~!A^qn~=7a^6&xBTqBP!n+^3^MG&!$#{T z?hFkagY>4aKsdgD%(IN^`Pzl1{Qe-Tu%b{?$YZ{qtx&ukGkMZhC^+{ zCT2gxLH;4g7?v05A$Nx&+pOetvPhtl)sA>E90hnkWAT*@L}8W@-n8@{Ql`;Au=M@$ z1>*aEWa(eVSi;}2;O{LyWpT;`63tzvTin88dFLDWbg}e{ zEgop`2skguFxg6wWgF--Eq(a}z4o3^)&x$SRP7Y9xV^;}Sv2j z{)YV7OYoE5w-P?H_y>!BwfNciZsX^zQ&L?{(-QsbeL2qg`tc2!?(h=bb7P)6sYD;% z5OO0W70Wm34!YIePWtv&)AfK?+v?7*j?hbATdyoP9fJKSk;3851~ zw>Z%#wX?7J*eSqpoiO3X@RaN3PYExr@J>u|lRNe7+(mafnWfMCvQ7W)mtINXHf{9p zPj*Y2F?-_lq6JIl==V={tygmGbyJFF&zUlB!h&mO&zi66oa$0@=FFn`3+64Hv_MZd zb#1pfSPLi4UoyXF@`MEw)Z{7G7a`4^JwL$7vu94Yc9xnlvxs6!isGjJ?$r2-@uz2{ zbg7fdnS`sE6F*b@O!t6(2=VWw8~_7*KJe7ovR_>%6bVja=b*`Z7S-PI&mv+^=gPdm zQG1ZZmY-jzU+SosWw*oLYuR4nC=PYN9F_`eO50^h-|InD8Zvm=@^G%1!5vt3CU)4^eI&gRH)Pql*qtnY$v?o@ ziy~yG!##!^?%AQ*B{t(i8-4$MVxMx)9l}0h?9{O|IEz>PX{PI&A=GTV`UXY$; z>?g#3fqQnD2mblYKR-j@P-rp)4#C{`P70vkS0|)zF!lv}yiZxi9T|HWcFl6v|H3Q{ zdP!_v2{C>A`qGPd=fXH-xvYP25TPYP*mB6i&b90o*qtmpggw;Q7m+{vPp<#fLdp}n z4mP9UmoIh>_B6}xhCN3m% znWViYn;1dL6`Oozuhe$xMt)$kkdTYG&~lt(?18LZ2}h0HkQE>yms-VtsIg_`q{Nf_ zjprq!PeYR%X~8^_APsnkt0-j?>Sn zD(hU=$#m0_$_CbT&Xp-3fgFC_11y{8ar{fCl`bPDLHs3swPj1&D|bI#*E!=vPKX0R z20~oYj9*}9CD^$Mc7B3AAi*w7u&4djj+}j|9aOmbw+{Y$XS;#h64Li1*n1P~g9-ML z-`Ej;AMzW49!Qevs(U0W!Ol&v<$p`G{Rbr2g$edF+opcC*cPx?C)gVj>}?75o&PLlf-c1ba@k9q}uSRtvsenqZeF*gF#J zSb|-dU{@vBN6*^yzuyC9Ig9T1K!P1kusbE#UV=R|!7fg)=LEKlzf>3v1Y?&b*yRcK zjs!cFU{@yCRSEV{V_z8DvA;=Bd0=PAreWD(+b;W8L#J!xI!lsWWLbiJM}qx8g1yVK zWexr{!G15n{^YlIL>>RFp!n$O2e}6+uu+2D-m<0BdnMR|6YQ}G_I1CpcaO+)Mmz2| zb<1{UIjdyb?%BlY=H{oC&1>Qm)Qp*JrK;@dCQf&^FtzL$a;;z>+17hzXyxGMmYmg%62w$+War0$}?L4 delta 20748 zcmche2Y6Lgy7$-KBq3l3p@kSJhk%$+LICOQ7?mbqq#0^XfY62#s*EE0sEB}y$X0?4 zgB8m-I2jci9!GSz>L@zOa2;`C9jpV2ilZan?_GOsvN+%PmHRyRu7{oV`@id5z3hGV zIUK$(<=~SkoAce$oEtms^LCz4gqgYbn7G=+x0`sIiElFTW)oj$;`Jt8YvQjb*vp-346{reGx1atmzsFIiAzj8%EZG>e4dG;CLU3VqT?Hn zqUoU9Vb32TtUH`5g{Lj@MIs*;0Gqg%-zx1R0{-DC3{Xs+M$C~=tBf{>c z;}*6eqJ%-EUEk1`={;7q#d;|N&r%(9L zxZ9nmKc(L5PD8(Q%AlHUDZAXRxlSjW?v1`}PrMa{lVsJxDBn_JEzzD zruChUlT$Og?T_`G4mBg%_snqG)Lh}#tCYhsxgC~r z67cf@ds_S*ahpjv3d=yq(NeFc(q~BoZVqQ*j>2sX$KXzIKK3{~7%ql4!($C^gUetk zvl^ZU-!65*N_k4%A+2MpE+gSiI0|0@S7MIC*PF}<_!d}tPzyh6@yEtT>|ek;q|63N zeFuL9M&T3i)7ay1gR_Hjl-E$HZlQon;b$Z>9E0^qdK!&^r3VrC3S*DL*TK@D7+hoV zJH}t^pTl|Njl(|}do^6I7yXw)6NsjW2wV$C;L~B1A%B$GLj_T|D|S7{@IY7^7j2}} zIKwe`7JL|c99{r_BL(2N0+uqPjagu@Zct;!|9T^;N!SYO1p+^9@%yl3PGCO<%hc$_ z(AzYEg^^)61~-RgJ;mX6@N;ki?gl4d)kLZD;Cz|?D569QVmJolt732^d>2C$hu6T; z<7#+4Tns1RZSZh-AN&9;9oP^5$@sv|A;WLLpBa7={=qZi&xrIsL7@l9+#JrQ&|0{a z;UjQ9tf!`_QoZ3TsVoW)h3|pm@Wrs6R(K{Xjjn~48dl9Xz2R!?UIcL+;w3~Bz6F-d zG5B714IGCbh3|k9@E&*|tePwJN8=xb55O`iG57<+bKx%yS2kBpYTv+T3Ea9b<1ZPO zHdkqdB(#O&WEfyL0S|*y<=k$e)Oc97XdIqpH~}v+tg@B53Qog63U3Mh;q9;-Yzg=g z_&7zXmW=VUh$=YRQmMUg195_1hj%a(!iW0$nHLs%pJI|d5$8Gv$7#!E_-B~)uD0=j zk=`%h+c{UW4Kr{~d&Aq|97_MhB4)~{1i)w^jc9?{0_%f?5O#bU7 zt=$g&{jW;0dvyQbi%5|o24eS2wxO`xBBjVN{r%n-<#n7O$w&z^Ee#<`_ky3Ajud#ecP8E9B zeAFKJTI2Lee}ClIp}B8k3Y+>Ke1l2;vcLb}*rB6;#w1HcLgN9!W)?ofV$sqh8JJF% zy_dy9h5hb%&HR#a8SaDu{`7I#?u-Hc%5n4EIRpF;#ud8D2l!3Lk8S7Sx!pA4YKx^7 zg4@%-dVFVp_sR_KZoF>5qZPx{mj>Jh%aWCF7cAY1a_uynfFFUU6G!oLbIhRyKZiYn zJpsQ2>q85E8U6;l48ndm50qtoU;xF7Qw;GplOYa&Y`7Z!9DayG67UiDVOZAr5Abir z&I8K7;9bHz52SFaJu1wqZUFxdmfLkEJe;g@qm-#E=Gu1}1+^aN@0pN2vIFU2lbfeJ zm~pD8Bk({PSVI}I3A^C)I4n2PLmU?R$YB6_VV4hU3Ao=tzs4x^w*Fw%~T}G6$AZ8CgypIFflfIBd&tO&338b2(GJPs!iz&%R}LBq)h~QSQL)K z@^Gnl6nZ26!dYDM04f~ey4l!^VDkX#>6xr1;amzSA>m=erSNXUF?bJ5L-m0+Ggqm* z;cDzJVJD0UD&SZ;b0R=U8vUo5jcQHh7rHD^oWn;68fSPB00z zBus^+C(>Jc!Og-ha~j9Kd!WB@Qr_UXnAm!2Bba^-?EV z!Tx8H3f+4L`?-?~XFNd)A^llXf;1q4;YIB7cq8EzSVk_w^#)vMYCwuTm9?ba!Y)0P z@IHJ~fa)KE{Rb!a&vl0A6L0NdV}8N7HW=dnJUKfzgXBL-sm8pII6={khxmn4vb`20 z%dMlD*0q7<#+86O8kXC0q2XG1AS_RmN8nNLx%k7*IKxNbNru0!r`(v~W7y{y{uW*m za5MECVzo*59=>LXe_%@9;9D@gCrwUM>eaJ2QsF3k2X^5&d>1TjPrwhs5x5q9bco-3 zYF_R$n7U$;(3DjbF7X$J_)Dh_ZDLREE4ZHS?^xQ*e|Ks|>R(W~a&Ou)twWEG5n;~b z;uaLB|1ymFe(Xl;?3q!2;iMb~%<434BFd8t!>I^lU z0#7!~oxz=DnC0m#gk>INfvhoh*xeYgCm-0HZ6<-e=saMUJ?A`Wm}B30*)aRhecLdD z>U?UL{p}nz%tO2LgJGV#ordQGjpnh~XMcIw}Edk+!nsoa0I^Ja69UE9ycNnP8e!)Rf`3z4bJs2QA1uq8(Xcou zw~{j28IHrf4aU{Wj&U{R82tag1A%tUJRk?2PmL2P+D_5$6TPRb!e2OM4UW4ERSWj+^*=Sh7Xotrq_Qo@nf^ zz};|<;}bs4%fs6{*rneQ_)GXF@rREFc2B>Y{ntLi_zal)ioUgWhUF7v zG+n74a6Oh(9PS6}{=w(Nx_^8yTMX}#yzp{3Mf~A4upEO4c-{HzeEk%`Om8AVI0|nw zEGytHSbCO#A2J-}HvU*>hZCWlnRz9&!*9cBR3@)N--GK5b9?_BPL~FGh@TJ*rA2Vo z&|o^`;BIL+3qA{$sfofp4aebg4JY7>49j?zhyL(lSf(J(pGyo^!_rw#mQn)Ykw7EW zet47NgYca&ZBw;yyLvQE1P>zjV(%c0=DA`QoQGNQT=Bf&2>cd&CO%R46ZkAR4u1_7 zNZyuwM*0_`GeW*8sy~d!M9Ba*gS$xvxD8DG`h##jEDf#2-ox-=xWC~e@L;$*d5^=x zjr};?on%=$RuRJm%=hC5qN{)B6zdmD0~YnZH~crz|5SA!}q~2!PW3% za1Wdk@a~X#s(LzPo~mB-5Ix0-$Er7A>80Ya>X6|G{0Tf9a}+)bpN)SUJ`PXEo`B_p zVJ~SB+a(k34M*W@xR3b5ZDAsn;7DJ^I>Up9A0I(8eR|Ua}eGN%W))&h2;}d2^@!i#Qwhcu#?h9 z@`^^7wb2^>K>Xp(@JHe=>j(Y>PQc!|2tCwvqXf<;Zv>tOAC}DU9QZTI3@;1)sWc9M zEV*3HTQHD_9Zl;QEL76W4H29OpluMcJ82rXGui=H7@GA^meoxY=+m zhTBH@TNVxV9>A2sKN@%P0FJ8PP_iylV)4@;R9}Isv%Ku>TSohc{zjtMu9%-Y=Mn@d_p9|CK zG%nR8u&XGsWE@9~i<&jsUsqY2yBygKDdAGXaX3EO|DdwJd&B6OHcL7=jjBm9gQ*_! zmn?7DXt!l~L0k4)mjBe2k1WfVV#z#iS==%H_NCdGnXJsP=$ydR!7_CVOam>`u)s9l zGEEOm^DWbgz;vZ$@&nU-mg%v;^pa(ID=>XznT`dfG!}o@)D{=&)_1f_eFD=+%QQ7G zRa&Mi1JhQ^bZ=mK+%ml!m})K4(ZH0#h6)?ev_v-|&oUL2_={HTaib-E;mW)g<4KX% zdONEJpSQ`~&BGflFiQHcPrz_k0hgW9!IhSM% z?o*dTlbi;!*s{151-V7)K!JK8t_kewrV@X~B^@U|gbb6OGfA%!%NjjM9IoF_P1*^Q z)>6(2e7X_WwL-b0FdiD=zjsOYNV)A0PHDeoIEqzh}Y$0TnmcQ$wioS?eR z@Nzhw#ji-<6=H|0;g#awgojj^ALMxYi~I)=mx>b!kHW)boOq4)6f8%sd{_ReVfn87 z9eB0)!-wHDQYf$5zJ|MrKl~Fcw{ZFDJ7p}55g(4#M(`DI6mB(^n~Y?Tudln3@DeOv zSr3Bc?2f>r;Va3I4^M=zlFaaQcr6@yWoBxUvV$TF6BpHIs0`( zJ;Zg0Yseta>s#OrQWDSNx4_rI@{GO%-UQ1t`fuPH#2>DKH;X@K_>1t3;t#(L>zhxG za%v5i!-oyefWL=_iqlL)3U?jhS#YM|3iu4ev*7~6bKstE1_KZ!&*Jm_t(WG_7=TG0 zm}QmAO>Ba+1s)1t49DRSa4DRC$H1%#`MB)F48IRAHq7UF=W4?r!rRCBxtA3;ZO@ig}91b_SG z+1`3gGU*&(^|rz?V)g1PXQ$y5c(>tHc%R`k_^*cf39ED1a5{Y4a057XVo+v7IMeWH zaGQX6or&mf5*oonU};c<6ZHak5$%n_)4ljZ+>tCgB3RyRjWw0r zhTVsw*zbe4!EyL8_#HR_?}6Wib-_f3;3!YVi?8h7aW83vbWYhYxK*UTik(Pzij()H zE2p~$O8t&k6%PK0lsimmU%~eWrKxY==ixZb|H;@BusbQROK};K{4G}%dd)C3rtkz+ zwu7rllF$*}0Y~9N_-;4>4~Fj&AFg3=9vFcyhJ82+Plr#36Yy-qGIA^7d$2{}Ye~n) zAF?*pTaEob>1TRA%T7r z{xflu;d}~yOZ?&I;nR67rT5Xxh=)l~Ox2sP%y|_406riY;4fhAC3-s5R8C@8v8Nis ze~}8{?5Y0O8}hsYOeY5$FH-ds7GbAO9r_uLqM|S%{Z(lKfiCEg8iD;!##Ul{!a2sQ zf7mez`|HMM2E3n}fWNVcyKt(1-^N0B)l~n$#-T0^Yjf@V%=I|DXPmc8^|xL-+3DvW zz4otezYF}=uFK1T*Ae@`+)r;`ghaEwVB;YIA3#8Iw4 zP4)kI{b2X)seb=Wo!rjT{n?xH++?i1=3%YSMI;IDLXeG zGm=A=?!66zB)CwzMjm6hke5=Lsx;D)FkY#_$;y+sarp51tEcJg83Rw0n zL66F}mc8N3I{Tr9b=<b#phZ)&SLq9Sr}F(Kko~<%yN?7)Q0v&GyMl|Ec7n7 zlCQN`_D1OHTlPCGmKUs{&rZw!l*KPuyx-z?18%AZ=W{FJTfh5FExiV_>WY>Z%V9Mw zEqgbM`&m5H;u4Ev7R$HBVVS?O>?;BeR`Mn*VY|h@xA+B%_gk#rADg*9VA(&h_-l*n zRn#@8afP*#+gb^|EH1WqoW=6(X4o_Nax>&I%SXNs4DIrLV94@ypk}FGz7N!bKk|KG z$cwCk^iLv9FIQRiD=d~TA;P>HExT{=ofgY?2fBXA^{AEboW*Zh{JzEVo}Zvs)lthX zujE7f3CrGOcAZ`R2a@qQOFy3(p-#7)Q zzR}`4EPlY^gvDKP~q>GZi;k_Pgi!Tes%r)>x*!7QZ{ke{*YL?&p^2M~myvt;wzOyZYPr z4#}K7Z$ZVP@`V*;M3F)MyL*Rt^JYi#PcaXS6cwn53FS-YtSnowcxGgf?S<|bDOxp~ zP!Q=H$zL&V(ej=>%9a<{1r7MOg`6y~bEHoJr8HU7XGP$7d8A^&vWm!M{#$zo`z0^t zc+!L!m9xt#moA=BQMRedNH!ISqVCM2wG^%@V z`BT*6?1G?pag<)1;&d{5U4KqC+l$E1{F??;+Lc#Qv2N9rdD99a?FQL{C;6$iGBRjT zWXyz7qav$UM?#%Hb8h)k8XJtF9!Wi3l4m(i70dmlFJ9-ry|-^T$(3q%O z$}6b(>BSGboYr$1{hL)jYu3^MHDkW1aQ#cZ8<cawru&*6*HGBnZL5dl@&|Nm(N?gXqms{`+1FKRje$l zTv#@1@xt zUZdFZ;L40S`hh>x1?YX)L!E(^ zUpk83&6PLH(O;*D&gsGv^jt^fxIy}~E}WdH3mlbi3}Jl}3Y@TBxoqi>M{D;@pT zN-B60-C(VwKa`4Y)RmV8>mB{6*4DdC{)t^Vx%+IR#m2Cc4BhxuP_3nN&_|5^mh?uq zQ*yna2hDhf>B4^pk^d1U6_lde@GGn=OSeboSh^`XV)PXr8B%}G2pGdA^aXnzC10RO zfubYm;g)WIE;agZqz`5MS6R9NdcDzI`A~MoTaMah=^XTKqrE9OH2R1UFosYcH2OA4 z|AG;*bS_$@1P%N%=?x7kslp6F%DrijwS(cUxBSwc6%BN46 zBGFP|Ns=x#I;=2eX{j$R+M|H5!p+9vWDkuFE8J~q-NPh((CDzjT1)E=rX_U{?MV;9 z3gw7sWt|5T(W<$7@;umz&TZwYIA+QB47x!PQfh^${s5iIH;)XG z_CLAUL+!D6WV_G??GSF4@PrdB+l4w$DPWb+;clrmx`6M7owY8fJMZ}zB?;1y3Fy?# zbyIl_y45zm?u;1+=~3QJSFJbtQOWSItE!FGbH~dtYwlD5`jn|dhf^0;aLUwi?$(;} z{vqW*<9h0dF@zZu4UrZbhm&*Lw~P!4SLK`Z(7&(IVR~s&dN|jYN&dZb@RW4Eklkhs zd&FU1-P}7dR{N`Ub1ymrEh8lj6rG1oSh_cQpQZEB`z_r7U2F7tgSgF#HCyd8I|4LtJbABZM+ZJ>k?!=tkCvAR~p@yttUaIN7C;w`nb{W7%e-6gHneQ z(k?_xn9C&%eaPs8@SR+r2Ko&BzZ%8RgLNa}AeluEiB%oVbUIeeN_ED&`Ds;8r8+~M zT~$t+)6zZeR^_HSZA)Zi2;|Up%e_y6Xbxq4T!dQMCNmgnNw>A6C!W}l=A3Z6BT@iC ziqmNFg<1w*LZ~B2x+qCUlXOXvj-9H#;Oj%Hg7~Qp!7l@>^y;MaT}e8Tr1vN3+EcU_ z{G!k9p**PBS{}@7Ee~S0E=tnTBwdoEW45M#RcRa0@g%)DNmnQ7T}e8Tr1vN3T1(5r zg#I6Xc8~OAV+iLwOTf~RBwduGqe(hkyJD95=GLWqN~U8~ok8pMNqSq7-kGF#C+U4j zS{~#iNF?2z0vH-eHEEB%Pn6`zGn(NxC#i&keQAzaD|mVD$PVy)8-a zOwzlP^u8p0Fi9Uax>wl4<4F$ba%d33^c-7PJ(l70^kSAtmQ-bujwk8ONxC{o?@H2% zB)$Js?dksk8n#gyaO6}6^JXUKgQRE4O@SbN5*MM*lEq)SfGOkM0010#^6<4JmR zlCDnDyOMMwN$^|vzE!yad)BP<Nd-^OnR%g%~DTQC0NC?+$^CaCNNuQmh&r8zdlk|d> 32; task = (struct task_struct *)bpf_get_current_task(); @@ -92,37 +85,17 @@ int on_exec(struct trace_event_raw_sched_process_exec *ctx) bpf_get_current_comm(&ev.comm, sizeof(ev.comm)); // The raw trace event layout changed in 5.16: filename moved from an - // inline 1024-byte array to a __data_loc string. The argv data (a - // pointer array behind a __data_loc) is laid out identically in both. + // inline 1024-byte array to a __data_loc string. The tracepoint payload + // does not carry an argv array, so exec events report the filename only. if (bpf_core_field_exists(ctx->__data_loc_filename)) { uint32_t filename_loc = BPF_CORE_READ(ctx, __data_loc_filename); - long filename_len; - - filename_len = bpf_probe_read_str(&ev.filename, sizeof(ev.filename), - (void *)ctx + (filename_loc & 0xffff)); - if (filename_len < 0) - filename_len = 0; - // The argv pointer array is the next 8-byte-aligned slot after the - // filename string in the data area. - argv_loc = (filename_loc & 0xffff) + (uint32_t)filename_len; - argv_loc = (argv_loc + 7) & ~7u; + + bpf_probe_read_str(&ev.filename, sizeof(ev.filename), + (void *)ctx + (filename_loc & 0xffff)); } else { // 5.10-5.15: filename is inline at a fixed offset after - // trace_entry(8) + pid(4) + old_pid(4); the argv data_loc u32 - // follows the 1024-byte filename array. + // trace_entry(8) + pid(4) + old_pid(4). bpf_probe_read_str(&ev.filename, sizeof(ev.filename), (void *)ctx + 16); - bpf_probe_read(&argv_loc, sizeof(argv_loc), (void *)ctx + 16 + 1024); - } - - argv = (void *)ctx + (argv_loc & 0xffff); - for (i = 0; i < MAX_ARGV; i++) { - char *argp; - - if (bpf_probe_read(&argp, sizeof(argp), &argv[i]) != 0) - break; - if (argp == NULL || argp == (char *)0xffffffff) - break; - bpf_probe_read_str(&ev.argv[i], sizeof(ev.argv[i]), argp); } emit(&ev, sizeof(ev)); @@ -149,6 +122,14 @@ int on_connect(struct trace_event_raw_inet_sock_set_state *ctx) __be32 daddr; bpf_core_read(&daddr, sizeof(daddr), &skc->skc_daddr); + // Store the IPv4-mapped ::ffff:a.b.c.d form so the userspace + // decoder can format plain dotted IPv4. + ev.dst_ip[0] = 0; + ev.dst_ip[1] = 0; + // On little-endian targets the u32 0xffff0000 occupies bytes + // 00 00 ff ff, i.e. the ::ffff: prefix at bytes 10-11 the Go + // decoder looks for. + ev.dst_ip[2] = 0xffff0000; ev.dst_ip[3] = daddr; } else { bpf_core_read(ev.dst_ip, sizeof(ev.dst_ip), @@ -176,13 +157,11 @@ int BPF_KPROBE(on_commit_creds, struct cred *new) bpf_core_read(&ev.old_gid, sizeof(ev.old_gid), &old->gid.val); bpf_core_read(&ev.new_uid, sizeof(ev.new_uid), &new->uid.val); bpf_core_read(&ev.new_gid, sizeof(ev.new_gid), &new->gid.val); - if (ev.old_uid == ev.new_uid && ev.old_gid == ev.new_gid) - return 0; + // kernel_cap_t is 8 bytes in every kernel but its shape changed in + // 6.3 ({u32 cap[2]} -> {u64 val}); reading the field as raw 8 bytes + // is layout-agnostic and works on both. { - // kernel_cap_t is 8 bytes in every kernel but its shape changed in - // 6.3 ({u32 cap[2]} -> {u64 val}); reading the field as raw 8 bytes - // is layout-agnostic and works on both. uint64_t old_caps; uint64_t new_caps; @@ -191,6 +170,12 @@ int BPF_KPROBE(on_commit_creds, struct cred *new) ev.cap_added = new_caps & ~old_caps; } + // Emit when identity or effective capabilities change (cap-only + // transitions such as file caps or ambient raises are audit-relevant). + if (ev.old_uid == ev.new_uid && ev.old_gid == ev.new_gid && + ev.cap_added == 0) + return 0; + emit(&ev, sizeof(ev)); return 0; } diff --git a/components/execd/pkg/isolation/bwrap.go b/components/execd/pkg/isolation/bwrap.go index 5c0f8f653..69597475e 100644 --- a/components/execd/pkg/isolation/bwrap.go +++ b/components/execd/pkg/isolation/bwrap.go @@ -282,23 +282,6 @@ func bwrapWorkspaceSegment(opts WrapOptions) ([]string, error) { } } -// ExecdConfigEnvBlacklist enumerates execd's own configuration env vars. -// They are always stripped so execd's credentials never leak into the -// workload; the hardening launcher unsets the same set before execve. -func ExecdConfigEnvBlacklist() []string { - return append([]string(nil), execdConfigEnvBlacklist...) -} - -// execdConfigEnvBlacklist enumerates execd's own configuration env vars. -// They are always stripped so execd's credentials never leak into the sandbox. -var execdConfigEnvBlacklist = []string{ - "EXECD_ACCESS_TOKEN", - "JUPYTER_HOST", - "JUPYTER_TOKEN", - "EXECD_ISOLATION_CONFIG", - "EXECD_ENVS", -} - func unsetExecdConfigEnv() []string { argv := make([]string, 0, 2*len(execdConfigEnvBlacklist)) for _, key := range execdConfigEnvBlacklist { diff --git a/components/execd/pkg/isolation/config.go b/components/execd/pkg/isolation/config.go index 7ac701919..e9f0ac7b0 100644 --- a/components/execd/pkg/isolation/config.go +++ b/components/execd/pkg/isolation/config.go @@ -53,6 +53,22 @@ type Config struct { Ebpf *EbpfConfig `toml:"ebpf"` } +// execdConfigEnvBlacklist enumerates execd's own configuration env vars. +// They are always stripped so execd's credentials never leak into the +// workload; the hardening launcher unsets the same set before execve. +var execdConfigEnvBlacklist = []string{ + "EXECD_ACCESS_TOKEN", + "JUPYTER_HOST", + "JUPYTER_TOKEN", + "EXECD_ISOLATION_CONFIG", + "EXECD_ENVS", +} + +// ExecdConfigEnvBlacklist returns a copy of the execd config env names. +func ExecdConfigEnvBlacklist() []string { + return append([]string(nil), execdConfigEnvBlacklist...) +} + // SeccompOverride specifies a custom syscall denylist that replaces the // built-in default when present. type SeccompOverride struct { diff --git a/components/execd/pkg/runtime/bash_session.go b/components/execd/pkg/runtime/bash_session.go index b63564fd4..4ddc9f551 100644 --- a/components/execd/pkg/runtime/bash_session.go +++ b/components/execd/pkg/runtime/bash_session.go @@ -32,11 +32,21 @@ import ( "github.com/google/uuid" + "github.com/alibaba/opensandbox/execd/pkg/isolation" "github.com/alibaba/opensandbox/execd/pkg/jupyter/execute" "github.com/alibaba/opensandbox/execd/pkg/log" "github.com/alibaba/opensandbox/execd/pkg/util/pathutil" ) +func containsStr(list []string, s string) bool { + for _, item := range list { + if item == s { + return true + } + } + return false +} + const ( envDumpStartMarker = "__ENV_DUMP_START__" envDumpEndMarker = "__ENV_DUMP_END__" @@ -117,9 +127,14 @@ func newBashSession(cwd string) *bashSession { StartupTimeout: 5 * time.Second, } + // The session env snapshot is exported into the wrapped script at the + // top, after the launcher has stripped the process environment — so it + // must not carry execd's own config/credential vars or a session user + // could recover them with a plain `echo`. + blacklist := isolation.ExecdConfigEnvBlacklist() env := make(map[string]string) for _, kv := range os.Environ() { - if k, v, ok := splitEnvPair(kv); ok { + if k, v, ok := splitEnvPair(kv); ok && !containsStr(blacklist, k) { env[k] = v } } diff --git a/components/execd/pkg/runtime/hardening_linux.go b/components/execd/pkg/runtime/hardening_linux.go index 0d9cf30a2..e16932802 100644 --- a/components/execd/pkg/runtime/hardening_linux.go +++ b/components/execd/pkg/runtime/hardening_linux.go @@ -40,9 +40,10 @@ import ( "strings" "sync/atomic" + "golang.org/x/sys/unix" + "github.com/alibaba/opensandbox/execd/pkg/isolation" "github.com/alibaba/opensandbox/execd/pkg/log" - "golang.org/x/sys/unix" ) const ( @@ -81,32 +82,46 @@ const ( ) // landlockRule grants access beneath path (OSEP-0018 §5). Rules only grant -// access; everything else under the handled set is denied. +// access; everything else under the handled set is denied. Required rules +// must all install or the launch skips confinement entirely (fail closed); +// best-effort rules (mount-expansion duplicates) are logged and skipped. type landlockRule struct { - Access uint64 - Path string + Access uint64 + Path string + Required bool } // buildLandlockRules assembles the default allowlist. The root rule grants // EXECUTE only: it covers path traversal and execve of any binary without // exposing any read access. /proc is deliberately limited to /proc/self and -// read-only well-known files — never all of /proc, which would re-expose -// /proc/1 (and execd's credentials) to a same-uid workload. +// /proc/sys — never all of /proc, which would re-expose /proc/1 (and +// execd's credentials) to a same-uid workload. Note that Landlock +// path_beneath rules are scoped to the mount the path sits on, so +// expandMountRules adds a rule per mount point beneath each grant (a bind +// mount like a workspace would otherwise be invisible to the rule). func buildLandlockRules(cfg isolation.Config) []landlockRule { + bestEffort := func(access uint64, path string) landlockRule { + return landlockRule{Access: access, Path: path, Required: false} + } + // Operator-explicit grants are required: if one cannot be installed the + // layer degrades instead of silently narrowing. The default set stays + // best-effort — images legitimately differ (e.g. alpine has no /lib64, + // minimal images lack /workspace). + required := func(access uint64, path string) landlockRule { + return landlockRule{Access: access, Path: path, Required: true} + } var rules []landlockRule - rules = append(rules, landlockRule{Access: llExecute, Path: "/"}) + rules = append(rules, bestEffort(llExecute, "/")) readExec := llReadFile | llReadDir | llExecute for _, p := range []string{"/usr", "/bin", "/lib", "/lib64", "/etc"} { - rules = append(rules, landlockRule{Access: readExec, Path: p}) + rules = append(rules, bestEffort(readExec, p)) } - for _, p := range []string{ - "/proc/self", "/proc/sys", "/proc/cpuinfo", "/proc/meminfo", - "/proc/stat", "/proc/version", "/proc/uptime", "/proc/loadavg", - "/proc/filesystems", - } { - rules = append(rules, landlockRule{Access: readExec, Path: p}) + // Only directory paths are usable here: the kernel rejects path_beneath + // rules whose parent is a regular file (e.g. /proc/cpuinfo). + for _, p := range []string{"/proc/self", "/proc/sys"} { + rules = append(rules, bestEffort(readExec, p)) } deviceRW := llReadFile | llWriteFile @@ -114,23 +129,144 @@ func buildLandlockRules(cfg isolation.Config) []landlockRule { "/dev/null", "/dev/zero", "/dev/full", "/dev/random", "/dev/urandom", "/dev/tty", } { - rules = append(rules, landlockRule{Access: deviceRW, Path: p}) + rules = append(rules, bestEffort(deviceRW, p)) } // The controlling terminal lives beneath /dev/pts. - rules = append(rules, landlockRule{Access: deviceRW, Path: "/dev/pts"}) + rules = append(rules, bestEffort(deviceRW, "/dev/pts")) for _, p := range append([]string{"/tmp", "/run"}, cfg.AllowedWritable...) { - rules = append(rules, landlockRule{Access: llRwAccess, Path: p}) + rules = append(rules, bestEffort(llRwAccess, p)) } if cfg.Landlock != nil { for _, p := range cfg.Landlock.ExtraWritable { - rules = append(rules, landlockRule{Access: llRwAccess, Path: p}) + rules = append(rules, required(llRwAccess, p)) } for _, p := range cfg.Landlock.ExtraReadable { - rules = append(rules, landlockRule{Access: readExec, Path: p}) + rules = append(rules, required(readExec, p)) + } + } + return expandMountRules(rules) +} + +// expandMountRules duplicates every rule onto each mount point beneath the +// rule path. Landlock path_beneath rules only cover the mount the path +// belongs to, so a bind-mounted workspace (a separate mount) is invisible +// to a rule on its parent path — without expansion, execve and file access +// on bind mounts would be denied. +func expandMountRules(rules []landlockRule) []landlockRule { + mounts := readMountPoints() + if len(mounts) == 0 { + return rules + } + expanded := append([]landlockRule(nil), rules...) + for _, mount := range mounts { + access, ok := ruleForPath(rules, mount) + if !ok { + continue + } + expanded = append(expanded, landlockRule{Access: access, Path: mount, Required: false}) + } + return expanded +} + +// ruleForPath returns the merged access of every rule that covers path +// (path == rule.Path or path is beneath it). A mount point may be beneath +// several grants (e.g. /mnt beneath both / for EXECUTE and the /mnt +// writable grant); merging keeps both, so a bind-mounted workspace keeps +// execute access. +func ruleForPath(rules []landlockRule, path string) (uint64, bool) { + var access uint64 + found := false + for _, rule := range rules { + if !pathBeneath(rule.Path, path) { + continue + } + access |= rule.Access + found = true + } + return access, found +} + +// pathBeneath reports whether path == parent or path is beneath parent +// (boundary-aware prefix match). +func pathBeneath(parent, path string) bool { + if parent == "/" { + return strings.HasPrefix(path, "/") + } + if path == parent { + return true + } + return strings.HasPrefix(path, parent+"/") +} + +// missingRequiredRulePaths reports required rule paths that cannot be +// opened with O_PATH (the same check the launcher performs before +// restrict_self). +func missingRequiredRulePaths(rules []landlockRule) []string { + var missing []string + for _, rule := range rules { + if !rule.Required { + continue + } + fd, err := unix.Open(rule.Path, unix.O_PATH|unix.O_CLOEXEC, 0) + if err != nil { + missing = append(missing, rule.Path) + continue } + _ = unix.Close(fd) } - return rules + return missing +} + +// readMountPoints parses /proc/self/mounts and returns the mount points +// (escape-decoded). +func readMountPoints() []string { + data, err := os.ReadFile("/proc/self/mounts") + if err != nil { + return nil + } + var mounts []string + for _, line := range strings.Split(string(data), "\n") { + fields := strings.Fields(line) + if len(fields) < 2 { + continue + } + mounts = append(mounts, decodeMountPath(fields[1])) + } + return mounts +} + +// decodeMountPath decodes the /proc/self/mounts escaping (\040, \011, +// \012, \134). +func decodeMountPath(s string) string { + if !strings.ContainsRune(s, '\\') { + return s + } + var b strings.Builder + for i := 0; i < len(s); i++ { + if s[i] == '\\' && i+3 < len(s) { + switch s[i+1 : i+4] { + case "040": + b.WriteByte(' ') + i += 3 + continue + case "011": + b.WriteByte('\t') + i += 3 + continue + case "012": + b.WriteByte('\n') + i += 3 + continue + case "134": + b.WriteByte('\\') + i += 3 + continue + } + } + b.WriteByte(s[i]) + } + return b.String() } // landlockABI probes the kernel Landlock ABI version (0 = unavailable). @@ -249,9 +385,22 @@ func InitHardening(cfg isolation.Config) error { setLayer(&hardening.landlock, LayerState{State: "unsupported", Message: msg}) } else { landlockRules = buildLandlockRules(cfg) - msg := fmt.Sprintf("landlock active (kernel ABI %d, %d rules)", abi, len(landlockRules)) - log.Info("hardening: %s", msg) - setLayer(&hardening.landlock, LayerState{State: "active", Message: msg}) + // Preflight the required (operator-explicit) grants: a missing + // one would make every launch skip confinement (launcher + // fail-closed), so report degraded and do not enable the layer. + if missing := missingRequiredRulePaths(landlockRules); len(missing) > 0 { + msg := fmt.Sprintf( + "landlock degraded: required paths missing: %s; FS confinement disabled", + strings.Join(missing, ", "), + ) + log.Warn("hardening: %s", msg) + setLayer(&hardening.landlock, LayerState{State: "degraded", Message: msg}) + landlockRules = nil + } else { + msg := fmt.Sprintf("landlock active (kernel ABI %d, %d rules)", abi, len(landlockRules)) + log.Info("hardening: %s", msg) + setLayer(&hardening.landlock, LayerState{State: "active", Message: msg}) + } } } @@ -297,18 +446,21 @@ func InitHardening(cfg isolation.Config) error { var launcherSearchPaths = []string{launcherRuntimePath} func findLauncher() string { - if path, err := exec.LookPath("opensandbox-launcher"); err == nil { - return path - } + // Trusted runtime path first: a user-controlled image must not be able + // to substitute its own launcher on PATH and bypass the floor. PATH is + // only a fallback for developer/source builds. for _, p := range launcherSearchPaths { if _, err := os.Stat(p); err == nil { return p } } + if path, err := exec.LookPath("opensandbox-launcher"); err == nil { + return path + } return "" } -func effectiveCapsHave(cap uint32) bool { +func effectiveCapsHave(capNum uint32) bool { data, err := os.ReadFile("/proc/self/status") if err != nil { return false @@ -321,7 +473,7 @@ func effectiveCapsHave(cap uint32) bool { if err != nil { return false } - return value&(1< 4096 { return nil, fmt.Errorf("invalid landlock path %q", rule.Path) } + required := byte(0) + if rule.Required { + required = 1 + } + if err := landlockBuf.WriteByte(required); err != nil { + return nil, err + } if err := binary.Write(&landlockBuf, binary.LittleEndian, rule.Access); err != nil { return nil, err } @@ -428,7 +607,7 @@ func encodePolicy(p *hardeningPolicy) ([]byte, error) { } func createPolicyMemfd(policy []byte) (int, error) { - fd, err := unix.MemfdCreate("launcher-policy", 0) + fd, err := unix.MemfdCreate("launcher-policy", unix.MFD_CLOEXEC) if err != nil { return -1, fmt.Errorf("memfd_create: %w", err) } diff --git a/components/execd/pkg/runtime/hardening_linux_test.go b/components/execd/pkg/runtime/hardening_linux_test.go index d13b30d8b..1d5f2d36f 100644 --- a/components/execd/pkg/runtime/hardening_linux_test.go +++ b/components/execd/pkg/runtime/hardening_linux_test.go @@ -279,13 +279,12 @@ func TestLandlockDisabledByDefault(t *testing.T) { func TestLandlockActiveOrUnsupported(t *testing.T) { buildLauncher(t) launcherSearchPaths = append(launcherSearchPaths, launcherBuilt) - cfg := isolation.Config{ - Hardening: &isolation.HardeningConfig{Enabled: true}, - Landlock: &isolation.LandlockConfig{ - Enabled: true, - ExtraWritable: []string{"/cache"}, - ExtraReadable: []string{"/opt/data"}, - }, + cfg := isolation.DefaultConfig() + cfg.Hardening = &isolation.HardeningConfig{Enabled: true} + cfg.Landlock = &isolation.LandlockConfig{ + Enabled: true, + ExtraWritable: []string{"/cache"}, + ExtraReadable: []string{"/opt/data"}, } initHardeningForTest(t, cfg) @@ -304,14 +303,71 @@ func TestLandlockActiveOrUnsupported(t *testing.T) { assertLandlockRule(t, rules, "/cache", llRwAccess) assertLandlockRule(t, rules, "/opt/data", llReadFile|llReadDir|llExecute) for _, rule := range rules { - if rule.Path == "/proc" { - t.Fatalf("all of /proc must not be granted: %+v", rule) + if rule.Path == "/proc" && rule.Access&llReadFile != 0 { + t.Fatalf("all of /proc must not be granted read access: %+v", rule) } } + case "degraded": + if !strings.Contains(report.Landlock.Message, "/cache") || + !strings.Contains(report.Landlock.Message, "/opt/data") { + t.Fatalf("landlock degraded message = %q, want the missing extra paths", report.Landlock.Message) + } case "unsupported": t.Logf("landlock unsupported on this kernel; skipping rule assertions") default: - t.Fatalf("landlock state = %q, want active or unsupported", report.Landlock.State) + t.Fatalf("landlock state = %q, want active, degraded or unsupported", report.Landlock.State) + } +} + +func TestPathBeneath(t *testing.T) { + tests := []struct { + parent, path string + want bool + }{ + {"/", "/mnt/test/hardened.sh", true}, + {"/mnt", "/mnt/test", true}, + {"/mnt", "/mnt/test/hardened.sh", true}, + {"/mnt", "/mnt", true}, + {"/mnt", "/mntx", false}, + {"/mnt", "/", false}, + {"/usr", "/usr/bin/bash", true}, + } + for _, tt := range tests { + if got := pathBeneath(tt.parent, tt.path); got != tt.want { + t.Fatalf("pathBeneath(%q, %q) = %v, want %v", tt.parent, tt.path, got, tt.want) + } + } +} + +func TestRuleForPathMergesMatches(t *testing.T) { + rules := []landlockRule{ + {Access: llExecute, Path: "/"}, + {Access: llRwAccess, Path: "/mnt"}, + } + // A bind-mounted workspace beneath /mnt must keep execute access from + // the "/" rule merged with the writable grant. + access, ok := ruleForPath(rules, "/mnt/test/hardened.sh") + if !ok || access != llRwAccess|llExecute { + t.Fatalf("ruleForPath(/mnt/test/hardened.sh) = %#x/%v, want rw+exec", access, ok) + } + access, ok = ruleForPath(rules, "/etc/passwd") + if !ok || access != llExecute { + t.Fatalf("ruleForPath(/etc/passwd) = %#x/%v, want llExecute", access, ok) + } + if _, ok := ruleForPath(rules, "relative"); ok { + t.Fatal("ruleForPath accepted a relative path") + } +} + +func TestDecodeMountPath(t *testing.T) { + if got := decodeMountPath(`/mnt/test\040dir`); got != "/mnt/test dir" { + t.Fatalf("decode = %q", got) + } + if got := decodeMountPath(`/a\134b`); got != `a\\b` && got != `/a\b` { + t.Fatalf("decode backslash = %q", got) + } + if got := decodeMountPath("/plain"); got != "/plain" { + t.Fatalf("decode plain = %q", got) } } diff --git a/components/execd/pkg/runtime/initmode_linux.go b/components/execd/pkg/runtime/initmode_linux.go index 37b2c83b6..449e5fa8f 100644 --- a/components/execd/pkg/runtime/initmode_linux.go +++ b/components/execd/pkg/runtime/initmode_linux.go @@ -43,9 +43,10 @@ import ( "time" "unsafe" - "github.com/alibaba/opensandbox/execd/pkg/log" "github.com/alibaba/opensandbox/internal/safego" "golang.org/x/sys/unix" + + "github.com/alibaba/opensandbox/execd/pkg/log" ) var ( @@ -129,7 +130,7 @@ type reaper struct { owned map[int]*managedProcess sigchld chan os.Signal quit chan struct{} - quitOnce sync.Once + quitOnce sync.Once //nolint:unused // test-only lifecycle; see stop done chan struct{} } @@ -150,6 +151,8 @@ func (r *reaper) start() { // stop terminates the reaper and waits until its signal subscription is // removed. Test-only in practice; execd runs one reaper for its lifetime. +// +//nolint:unused // test-only lifecycle; execd runs one reaper for its lifetime func (r *reaper) stop() { r.quitOnce.Do(func() { close(r.quit) }) <-r.done @@ -210,6 +213,10 @@ func (r *reaper) drain() { log.Error("init: reaper consume pid %d: %v", pid, err) return } + // Drop the child from the registry once reaped: stale entries + // would grow without bound and shutdown could signal a recycled + // process group. + delete(r.owned, pid) mp.deliver(ws) continue } @@ -234,6 +241,7 @@ type managedProcess struct { cmd *exec.Cmd preReap func() noHardening bool + stripEnv []string // nil = default blacklist; explicit list overrides done chan struct{} once sync.Once ws syscall.WaitStatus @@ -299,6 +307,17 @@ func withoutHardening() launchOption { } } +// bootstrapEnv overrides the env strip for the user entrypoint: the image's +// own entrypoint scripts may need JUPYTER_TOKEN/EXECD_ENVS to configure +// themselves (e.g. the code-interpreter entrypoint), so those survive — but +// EXECD_ACCESS_TOKEN is execd's control-plane credential and must never +// reach the long-lived entrypoint (its Jupyter kernels are user code). +func bootstrapEnv() launchOption { + return func(mp *managedProcess) { + mp.stripEnv = []string{"EXECD_ACCESS_TOKEN"} + } +} + // launchManagedWith starts the command and registers it with the reaper. // startFn is called under the reaper lock so the child cannot be observed // (and misclassified as an orphan) before registration. When the hardening @@ -308,9 +327,13 @@ func launchManagedWith(cmd *exec.Cmd, startFn func() error, opts ...launchOption for _, o := range opts { o(mp) } - if err := hardenCmd(cmd, mp.noHardening); err != nil { + policyFile, err := hardenCmd(cmd, mp.noHardening, mp.stripEnv) + if err != nil { return nil, err } + if policyFile != nil { + defer policyFile.Close() + } if initReaper == nil { if err := startFn(); err != nil { return nil, err @@ -389,11 +412,18 @@ func StartInitMode(entryArgs []string) { safego.Go(initReaper.run) log.Info("init: execd is the sandbox init (pid=%d mode=%s)", os.Getpid(), initModeName()) + // Register the application-signal subscription before the entrypoint + // starts: an early SIGTERM must reach the forwarding loop instead of + // hitting the runtime default handler. + sigCh := make(chan os.Signal, 8) + signal.Notify(sigCh, initForwardedSignals...) + entry := launchEntrypoint(entryArgs) if entry == nil { + signal.Stop(sigCh) return } - safego.Go(func() { forwardInitSignals(entry) }) + safego.Go(func() { forwardInitSignals(entry, sigCh) }) safego.Go(func() { waitEntrypointExit(entry) }) } @@ -407,7 +437,7 @@ func launchEntrypoint(args []string) *managedProcess { cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr - mp, err := launchManaged(cmd) + mp, err := launchManaged(cmd, bootstrapEnv()) if err != nil { log.Error("init: failed to start user entrypoint %q: %v", args[0], err) os.Exit(1) @@ -445,10 +475,7 @@ func initExitCode(mp *managedProcess) int { // group. SIGTERM additionally starts the graceful shutdown sequence, matching // the runtime-initiated container stop contract (Docker/K8s send SIGTERM to // PID 1). -func forwardInitSignals(entry *managedProcess) { - ch := make(chan os.Signal, 8) - signal.Notify(ch, initForwardedSignals...) - defer signal.Stop(ch) +func forwardInitSignals(entry *managedProcess, ch <-chan os.Signal) { for sig := range ch { s, ok := sig.(syscall.Signal) if !ok { @@ -495,15 +522,14 @@ func terminateInit(entry *managedProcess) { // SIGKILLs the survivors. Reaping is done by the reaper; the kernel reaps // anything left when execd exits. func stopChildrenExcept(keep *managedProcess) { - others := initReaper.snapshotOthers(keep) + // SIGTERM and the final SIGKILL pass are sent while holding the reaper + // lock: the pid is verified against the owned map and the reaper cannot + // consume (and release) the PID/PGID between verification and kill, so + // a recycled process group can never be signalled. + others := initReaper.signalOthers(keep, syscall.SIGTERM) if len(others) == 0 { return } - for _, mp := range others { - if err := killGroup(mp.pid(), syscall.SIGTERM); err != nil && !errors.Is(err, syscall.ESRCH) { - log.Warn("init: SIGTERM child group %d: %v", mp.pid(), err) - } - } deadline := time.Now().Add(initShutdownGrace) for _, mp := range others { select { @@ -511,24 +537,22 @@ func stopChildrenExcept(keep *managedProcess) { case <-time.After(time.Until(deadline)): } } - for _, mp := range others { - select { - case <-mp.done: - default: - if err := killGroup(mp.pid(), syscall.SIGKILL); err != nil && !errors.Is(err, syscall.ESRCH) { - log.Warn("init: SIGKILL child group %d: %v", mp.pid(), err) - } - } - } + initReaper.signalOthers(keep, syscall.SIGKILL) } -func (r *reaper) snapshotOthers(keep *managedProcess) []*managedProcess { +// signalOthers delivers sig to every still-tracked child group except keep, +// while holding the reaper lock. It returns the targets that were signalled. +func (r *reaper) signalOthers(keep *managedProcess, sig syscall.Signal) []*managedProcess { r.mu.Lock() defer r.mu.Unlock() - others := make([]*managedProcess, 0, len(r.owned)) - for _, mp := range r.owned { - if mp != keep { - others = append(others, mp) + var others []*managedProcess + for pid, mp := range r.owned { + if mp == keep { + continue + } + others = append(others, mp) + if err := killGroup(pid, sig); err != nil && !errors.Is(err, syscall.ESRCH) { + log.Warn("init: %v child group %d: %v", sig, pid, err) } } return others diff --git a/components/execd/pkg/web/controller/pty_ws.go b/components/execd/pkg/web/controller/pty_ws.go index d369884d6..d0dc76092 100644 --- a/components/execd/pkg/web/controller/pty_ws.go +++ b/components/execd/pkg/web/controller/pty_ws.go @@ -460,6 +460,8 @@ const ptyViewerReadOnlyViolationLimit = 5 // ptyViewerClientReadLoop accepts ping frames but rejects every operation that // could mutate the session. It closes a connection that repeatedly sends // mutating frames to bound server-to-client error traffic. +// +//nolint:gocognit // pre-existing complexity on main; not part of OSEP-0018 func ptyViewerClientReadLoop( conn *websocket.Conn, writeJSON func(any) error, diff --git a/components/execd/tests/init_container.sh b/components/execd/tests/init_container.sh index c5305356e..adf0e3a3b 100755 --- a/components/execd/tests/init_container.sh +++ b/components/execd/tests/init_container.sh @@ -44,6 +44,12 @@ REPO_ROOT="$(cd "${SCRIPT_DIR}/../../.." && pwd)" IMAGE="${EXECD_TEST_IMAGE:-execd-init-container-test:test}" PREFIX="execd-init-$$" TESTDIR="$(mktemp -d)" +# mktemp creates mode 700; with hardening the workload has no +# CAP_DAC_OVERRIDE, so the host-side test dir must be fully accessible to +# the container workload (traverse AND write for the hardened.out / +# caps.json the workload produces). Docker Desktop's lax mount permissions +# hide this locally; native Linux mounts do not. +chmod 777 "${TESTDIR}" RUNNERS=() cleanup() { @@ -73,6 +79,12 @@ wait_file() { return 1 } +dump_container_logs() { + local c="$1" + echo ">> Container logs for ${c}:" + docker logs "$c" 2>&1 | grep -E "launcher|landlock|FAIL|init:|hardening|exited" | tail -30 || true +} + echo "=========================================" echo " Init-mode container regression (OSEP-0018)" echo "=========================================" @@ -138,7 +150,10 @@ docker run -d --name "$C1" \ -v "${TESTDIR}:/mnt/test" \ "${IMAGE}" \ /mnt/test/verify_pid1.sh >/dev/null -wait_file "${TESTDIR}/pid1.out" || fail "test 1: container did not produce pid1.out" +if ! wait_file "${TESTDIR}/pid1.out"; then + dump_container_logs "$C1" + fail "test 1: container did not produce pid1.out" +fi RC=$(docker wait "$C1") [ "$RC" = "0" ] || fail "test 1: container exited $RC: $(cat "${TESTDIR}/pid1.out")" grep -q "kill9_1_inert=yes" "${TESTDIR}/pid1.out" || fail "test 1: kill -9 1 was not inert" @@ -216,14 +231,27 @@ cat > "${TESTDIR}/hardened.sh" <<'SCRIPT' #!/bin/sh out=/mnt/test/hardened.out : > "$out" -grep -E "NoNewPrivs:|Seccomp:" /proc/self/status >> "$out" -capeff=$(awk '/CapEff:/{print $2}' /proc/self/status) -echo "capeff=$capeff" >> "$out" +# /proc/self is read via the entrypoint process itself (a forked descendant +# resolves its own /proc/ dir, which the Landlock allowlist does not +# cover — the documented /proc/self limitation of OSEP-0018). +nnp=""; sec=""; capeff="" +while IFS= read -r line; do + case "$line" in + NoNewPrivs:*) nnp="${line#*: }" ;; + Seccomp:*) sec="${line#*: }" ;; + CapEff:*) capeff="${line#*: }" ;; + esac +done < /proc/self/status +echo "nnp=$nnp sec=$sec capeff=$capeff" >> "$out" -grep -q "NoNewPrivs: 1" "$out" || { echo "FAIL: no_new_privs not set" >> "$out"; exit 93; } -grep -q "Seccomp: 2" "$out" || { echo "FAIL: seccomp not in filter mode" >> "$out"; exit 94; } +[ "$nnp" = "1" ] || { echo "FAIL: no_new_privs not set ($nnp)" >> "$out"; exit 93; } +[ "$sec" = "2" ] || { echo "FAIL: seccomp not in filter mode ($sec)" >> "$out"; exit 94; } [ "$capeff" = "0000000000000000" ] || { echo "FAIL: CapEff=$capeff, want zero" >> "$out"; exit 95; } -[ -z "${EXECD_ACCESS_TOKEN:-}" ] || { echo "FAIL: execd credential env leaked" >> "$out"; exit 96; } +# The entrypoint keeps bootstrap env (JUPYTER_TOKEN) but never execd's +# control-plane credential (EXECD_ACCESS_TOKEN) — its Jupyter kernels are +# user code and must not see it. +[ -z "${EXECD_ACCESS_TOKEN:-}" ] || { echo "FAIL: execd credential leaked to entrypoint" >> "$out"; exit 96; } +[ "${JUPYTER_TOKEN:-}" = "jt-secret" ] || { echo "FAIL: bootstrap env not preserved" >> "$out"; exit 95; } # The execd API is guarded by the token we injected via the container env # (which the floor stripped from this workload's own environment). @@ -261,10 +289,14 @@ docker run -d --name "$C4" \ -e EXECD_INIT=1 \ -e EXECD_ISOLATION_CONFIG=/mnt/test/isolation.toml \ -e EXECD_ACCESS_TOKEN=supersecret \ + -e JUPYTER_TOKEN=jt-secret \ -v "${TESTDIR}:/mnt/test" \ "${IMAGE}" \ /mnt/test/hardened.sh >/dev/null -wait_file "${TESTDIR}/hardened.out" || fail "test 4: container did not produce hardened.out" +if ! wait_file "${TESTDIR}/hardened.out"; then + dump_container_logs "$C4" + fail "test 4: container did not produce hardened.out" +fi RC=$(docker wait "$C4") [ "$RC" = "0" ] || fail "test 4: container exited $RC: $(cat "${TESTDIR}/hardened.out")" grep -q "hardened_ok=yes" "${TESTDIR}/hardened.out" || fail "test 4: floor assertions failed: $(cat "${TESTDIR}/hardened.out")" @@ -304,7 +336,10 @@ docker run -d --name "$C5" \ -v "${TESTDIR}:/mnt/test" \ "${IMAGE}" \ -c 'EXECD_INIT=1 /bootstrap.sh /mnt/test/subreaper.sh & wait' >/dev/null -wait_file "${TESTDIR}/subreaper.out" || fail "test 5: container did not produce subreaper.out" +if ! wait_file "${TESTDIR}/subreaper.out"; then + dump_container_logs "$C5" + fail "test 5: container did not produce subreaper.out" +fi RC=$(docker wait "$C5") [ "$RC" = "0" ] || fail "test 5: container exited $RC: $(cat "${TESTDIR}/subreaper.out")" grep -q "subreaper_ok=yes" "${TESTDIR}/subreaper.out" || fail "test 5: subreaper assertions failed" diff --git a/docs/components/execd.md b/docs/components/execd.md index 86eada718..7b5fd408b 100644 --- a/docs/components/execd.md +++ b/docs/components/execd.md @@ -276,14 +276,24 @@ reports `unsupported` and skips FS confinement. With `[landlock] enabled`, user-code processes are allowlisted to: system paths (`/usr`, `/bin`, `/lib`, `/lib64`, `/etc`) read+exec, `/proc/self` -and well-known read-only proc files (never all of `/proc`, which would -re-expose `/proc/1` and execd's credentials), the needed `/dev` device -files and the controlling tty, `/tmp`, `/run`, `allowed_writable`, plus +and `/proc/sys` read+exec (never all of `/proc`, which would re-expose +`/proc/1` and execd's credentials), the needed `/dev` device files and the +controlling tty, `/tmp`, `/run`, `allowed_writable`, plus `extra_writable`/`extra_readable`. Everything else is denied. Note that only the initial workload process keeps `/proc/self` access (a Landlock rule is inode-based); forked descendants lose their own `/proc/self` — tooling that needs it should be run as the entrypoint process. +Two Landlock kernel behaviors shape the policy: + +- `path_beneath` rules are scoped to the mount the path belongs to, so at + startup execd expands every rule onto each mount point beneath it — + bind-mounted workspaces (a separate mount) get the same access as their + parent path. +- rules only accept directory parents, so per-file grants are impossible; + well-known proc files (`/proc/cpuinfo`, `/proc/meminfo`, …) are not + individually readable under Landlock. + Recommended container ceiling (operator side): keep `CAP_SETPCAP`, `CAP_SETUID`, `CAP_SETGID` so execd can reduce children; drop the rest (`NET_RAW`, `SYS_MODULE`, `SYS_TIME`, `SYS_TTY_CONFIG`, `AUDIT_WRITE`, @@ -308,7 +318,7 @@ CO-RE; 5.16+ use the `__data_loc` layout). Events are scoped to the sandbox cgroup, so only this sandbox's processes are observed; they are written as JSONL (one object per line) with a stable common envelope (`ts`, `event`, `sandbox_id`, `pid`, `comm`) plus per-kind fields -(`filename`/`argv`/`ppid` for `exec`, `dst_ip`/`dst_port`/`proto` for +(`filename`/`ppid` for `exec`, `dst_ip`/`dst_port`/`proto` for `connect`, uid/gid deltas and `cap_added` for `privilege`). Under gVisor/Kata the host kernel is not attachable, and the layer reports `unsupported`. Missing prerequisites never block startup. diff --git a/scripts/verify-license.sh b/scripts/verify-license.sh index 954860a6a..da0a195af 100755 --- a/scripts/verify-license.sh +++ b/scripts/verify-license.sh @@ -68,6 +68,11 @@ is_generated_to_skip() { if [[ "$file" == *"deepcopy.go" ]]; then return 0 fi + # Files emitted by code generators (e.g. bpf2go) carry the standard Go + # marker; regeneration would clobber any manually added header. + if head -n 25 "$file" 2>/dev/null | grep -q "Code generated by .* DO NOT EDIT"; then + return 0 + fi return 1 } diff --git a/sdks/sandbox/javascript/src/models/isolated.ts b/sdks/sandbox/javascript/src/models/isolated.ts index f5958ad2e..5f00104b3 100644 --- a/sdks/sandbox/javascript/src/models/isolated.ts +++ b/sdks/sandbox/javascript/src/models/isolated.ts @@ -113,6 +113,20 @@ export interface IsolatedRunLogs { cursor: number; } +export interface HardeningLayerState { + state: "active" | "disabled" | "degraded" | "unsupported" | string; + message?: string; +} + +export interface HardeningStatus { + init_mode: "pid1" | "subreaper" | "none" | string; + signal_shield: boolean; + cap_drop?: HardeningLayerState; + seccomp?: HardeningLayerState; + landlock?: HardeningLayerState; + ebpf?: HardeningLayerState; +} + export interface IsolatedCapabilities { available: boolean; isolator?: string; @@ -122,6 +136,7 @@ export interface IsolatedCapabilities { userns_available?: boolean; commit_supported: boolean; diff_supported: boolean; + hardening?: HardeningStatus; } export interface IsolatedSessionSummary { diff --git a/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/domain/models/execd/isolated/IsolatedModels.kt b/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/domain/models/execd/isolated/IsolatedModels.kt index a40f51430..254445703 100644 --- a/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/domain/models/execd/isolated/IsolatedModels.kt +++ b/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/domain/models/execd/isolated/IsolatedModels.kt @@ -154,7 +154,8 @@ data class IsolatedCapabilities( /** execd init-mode and workload-hardening state (OSEP-0018). */ data class HardeningStatus( - val initMode: String? = null, // "pid1" | "subreaper" | "none" + // "pid1" | "subreaper" | "none" + val initMode: String? = null, val signalShield: Boolean = false, val capDrop: HardeningLayerState? = null, val seccomp: HardeningLayerState? = null, @@ -164,6 +165,7 @@ data class HardeningStatus( /** Whether one hardening layer is actually enforced. */ data class HardeningLayerState( - val state: String? = null, // active | disabled | degraded | unsupported + // active | disabled | degraded | unsupported + val state: String? = null, val message: String? = null, ) diff --git a/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapter.kt b/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapter.kt index 351f4ca21..4df37a04b 100644 --- a/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapter.kt +++ b/sdks/sandbox/kotlin/sandbox/src/main/kotlin/com/alibaba/opensandbox/sandbox/infrastructure/adapters/service/IsolatedSessionsAdapter.kt @@ -175,8 +175,7 @@ private data class HardeningLayerStateResponse( val message: String? = null, ) -private fun HardeningLayerStateResponse.toDomain(): HardeningLayerState = - HardeningLayerState(state = state, message = message) +private fun HardeningLayerStateResponse.toDomain(): HardeningLayerState = HardeningLayerState(state = state, message = message) private val json = Json { ignoreUnknownKeys = true } @@ -577,16 +576,17 @@ internal class IsolatedSessionsAdapter( usernsAvailable = resp.userns_available, commitSupported = resp.commit_supported, diffSupported = resp.diff_supported, - hardening = resp.hardening?.let { - HardeningStatus( - initMode = it.init_mode, - signalShield = it.signal_shield, - capDrop = it.cap_drop?.toDomain(), - seccomp = it.seccomp?.toDomain(), - landlock = it.landlock?.toDomain(), - ebpf = it.ebpf?.toDomain(), - ) - }, + hardening = + resp.hardening?.let { + HardeningStatus( + initMode = it.init_mode, + signalShield = it.signal_shield, + capDrop = it.cap_drop?.toDomain(), + seccomp = it.seccomp?.toDomain(), + landlock = it.landlock?.toDomain(), + ebpf = it.ebpf?.toDomain(), + ) + }, ) } } catch (e: Exception) { diff --git a/sdks/sandbox/python/src/opensandbox/models/isolated.py b/sdks/sandbox/python/src/opensandbox/models/isolated.py index 47dbdbce5..e33fe57a8 100644 --- a/sdks/sandbox/python/src/opensandbox/models/isolated.py +++ b/sdks/sandbox/python/src/opensandbox/models/isolated.py @@ -323,6 +323,45 @@ class IsolatedRunLogs(BaseModel): model_config = ConfigDict(populate_by_name=True) +class HardeningLayerState(BaseModel): + """Whether one hardening layer is actually enforced (OSEP-0018).""" + + state: str | None = Field( + default=None, + description="active | disabled (not configured) | degraded | unsupported", + ) + message: str | None = Field( + default=None, + description="Concrete reason whenever state is not active", + ) + + +class HardeningStatus(BaseModel): + """execd init-mode and workload-hardening state (OSEP-0018).""" + + init_mode: str | None = Field( + default=None, description='"pid1" | "subreaper" | "none"' + ) + signal_shield: bool = Field( + default=False, + description="Whether the kernel PID 1 signal shield is active", + ) + cap_drop: HardeningLayerState | None = Field( + default=None, description="Capability/bounding-set reduction on user code" + ) + seccomp: HardeningLayerState | None = Field( + default=None, description="Seccomp floor installed on user code" + ) + landlock: HardeningLayerState | None = Field( + default=None, description="Landlock filesystem confinement" + ) + ebpf: HardeningLayerState | None = Field( + default=None, description="eBPF exec/connect/privilege observation" + ) + + model_config = ConfigDict(populate_by_name=True) + + class IsolatedCapabilities(BaseModel): """Isolator capabilities reported by execd.""" @@ -355,5 +394,9 @@ class IsolatedCapabilities(BaseModel): diff_supported: bool = Field( default=False, description="Whether diff is supported" ) + hardening: HardeningStatus | None = Field( + default=None, + description="execd init-mode and workload-hardening state (OSEP-0018)", + ) model_config = ConfigDict(populate_by_name=True) diff --git a/server/opensandbox_server/services/docker/docker_service.py b/server/opensandbox_server/services/docker/docker_service.py index ab359e2bd..c4ace49aa 100644 --- a/server/opensandbox_server/services/docker/docker_service.py +++ b/server/opensandbox_server/services/docker/docker_service.py @@ -153,6 +153,7 @@ def __init__(self, config: Optional[AppConfig] = None): self._bootstrap_script_cache: Dict[str, bytes] = {} self._bwrap_archive_cache: Dict[str, bytes] = {} self._session_gate_archive_cache: Dict[str, bytes] = {} + self._launcher_archive_cache: Dict[str, bytes] = {} self._windows_profile_cache: Dict[str, bytes] = {} self._daemon_platform: Optional[PlatformSpec] = None self._metadata_store = DockerMetadataStore() diff --git a/server/opensandbox_server/services/docker/runtime.py b/server/opensandbox_server/services/docker/runtime.py index 0a85247c8..de90682aa 100644 --- a/server/opensandbox_server/services/docker/runtime.py +++ b/server/opensandbox_server/services/docker/runtime.py @@ -44,6 +44,8 @@ BOOTSTRAP_PATH = posixpath.join(OPENSANDBOX_DIR, "bootstrap.sh") SESSION_GATE_SOURCE_PATH = "/usr/local/libexec/opensandbox-session-gate" SESSION_GATE_INSTALL_PATH = posixpath.join(OPENSANDBOX_DIR, "opensandbox-session-gate") +LAUNCHER_SOURCE_PATH = "/usr/local/libexec/opensandbox-launcher" +LAUNCHER_INSTALL_PATH = posixpath.join(OPENSANDBOX_DIR, "opensandbox-launcher") DEFAULT_EXECD_ENVS_PATH = posixpath.join(OPENSANDBOX_DIR, ".env") @@ -145,6 +147,24 @@ def _fetch_execd_archive(self, platform: Optional[PlatformSpec] = None) -> bytes "session workload gate not found in execd image — " "gated isolated-session lifecycle will be unavailable" ) + # Cache the hardening launcher (best-effort; older images do + # not contain it, which degrades [hardening] to unavailable). + if cache_key not in self._launcher_archive_cache: + try: + with self._docker_operation( + "execd cache read launcher", "execd-cache" + ): + launcher_stream, _ = container.get_archive( + LAUNCHER_SOURCE_PATH + ) + self._launcher_archive_cache[cache_key] = b"".join( + launcher_stream + ) + except DockerNotFound: + logger.warning( + "hardening launcher not found in execd image — " + "[hardening] will degrade to unavailable" + ) except DockerException as exc: raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, @@ -319,6 +339,42 @@ def _copy_session_gate_to_container( }, ) from exc + def _copy_launcher_to_container( + self, + container, + sandbox_id: str, + platform: Optional[PlatformSpec] = None, + ) -> None: + """Copy the hardening launcher into its managed runtime path. + + Best-effort for backward compatibility with older execd images; when + it is missing, [hardening] degrades to unavailable at runtime. + """ + cache_key = self._normalize_platform_key(platform) + archive = self._launcher_archive_cache.get(cache_key) + if archive is None: + logger.warning( + "hardening launcher archive not cached for %s — " + "[hardening] will be unavailable", + cache_key, + ) + return + + try: + with self._docker_operation("copy launcher to sandbox", sandbox_id): + container.put_archive(path=OPENSANDBOX_DIR, data=archive) + except DockerException as exc: + raise HTTPException( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + detail={ + "code": SandboxErrorCodes.EXECD_DISTRIBUTION_FAILED, + "message": ( + "Failed to copy hardening launcher into sandbox " + f"at {LAUNCHER_INSTALL_PATH}: {str(exc)}" + ), + }, + ) from exc + def _prepare_sandbox_runtime( self, container, @@ -330,3 +386,4 @@ def _prepare_sandbox_runtime( self._install_bootstrap_script(container, sandbox_id, platform) self._copy_bwrap_to_container(container, sandbox_id, platform) self._copy_session_gate_to_container(container, sandbox_id, platform) + self._copy_launcher_to_container(container, sandbox_id, platform) diff --git a/server/opensandbox_server/services/k8s/batchsandbox_provider.py b/server/opensandbox_server/services/k8s/batchsandbox_provider.py index 7c73aac3c..97286878c 100644 --- a/server/opensandbox_server/services/k8s/batchsandbox_provider.py +++ b/server/opensandbox_server/services/k8s/batchsandbox_provider.py @@ -376,7 +376,11 @@ def _create_workload_from_pool( "replicas": 1, "poolRef": pool_ref, } - needs_task_template = env or entrypoint != DEFAULT_ENTRYPOINT + needs_task_template = ( + env + or entrypoint != DEFAULT_ENTRYPOINT + or self.execd_run_as_init + ) if needs_task_template: spec["taskTemplate"] = self._build_task_template(entrypoint, env) if expires_at is not None: @@ -492,7 +496,9 @@ def _build_task_template( """ escaped_entrypoint = ' '.join(shlex.quote(arg) for arg in entrypoint) if self.execd_run_as_init: - user_process_cmd = f"/opt/opensandbox/bootstrap.sh {escaped_entrypoint}" + # exec: the task-executor shim's TERM trap signals its direct + # child, which must be execd (not an intermediate shell). + user_process_cmd = f"exec /opt/opensandbox/bootstrap.sh {escaped_entrypoint}" else: user_process_cmd = f"/opt/opensandbox/bootstrap.sh {escaped_entrypoint} &" diff --git a/server/opensandbox_server/services/k8s/provider_common.py b/server/opensandbox_server/services/k8s/provider_common.py index 96589c5ff..c16a542f2 100644 --- a/server/opensandbox_server/services/k8s/provider_common.py +++ b/server/opensandbox_server/services/k8s/provider_common.py @@ -129,7 +129,11 @@ def _build_execd_init_container( "(test ! -e /usr/local/libexec/opensandbox-session-gate || " "(cp /usr/local/libexec/opensandbox-session-gate " "/opt/opensandbox/opensandbox-session-gate && " - "chmod 0555 /opt/opensandbox/opensandbox-session-gate))" + "chmod 0555 /opt/opensandbox/opensandbox-session-gate)) && " + "(test ! -e /usr/local/libexec/opensandbox-launcher || " + "(cp /usr/local/libexec/opensandbox-launcher " + "/opt/opensandbox/opensandbox-launcher && " + "chmod 0555 /opt/opensandbox/opensandbox-launcher))" ) security_context = None if disable_ipv6_for_egress: From fa7a494a7ae36455c7c502bc0414f93314de32b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 19:36:19 +0800 Subject: [PATCH 12/17] fix: address Codex round 6 (credential identity, audit sink, /opt, sandbox_id) - hardening: per-request credentials now force the launcher's UID_DROP even when execd is not root (a /command uid/gid request previously ran as the image user), and supplementary groups are serialized into the policy so the launcher applies setgroups(groups) instead of clearing them - audit: loaded eBPF objects are retained on the Observer (GC could close the fd and detach the programs) and closed on Close(); ringbuf reader failure now also closes already-attached links; audit write errors are logged instead of dropped - landlock: /opt joins the default read+exec set (bundled code-interpreter entrypoints and runtimes live under /opt) - server: OPENSANDBOX_ID is injected on the Docker, K8s Batch/Agent and pool taskTemplate env paths so eBPF audit records carry the sandbox id --- components/execd/native/launcher.c | 21 ++++++++++++++- components/execd/pkg/ebpf/audit.go | 12 ++++++++- .../execd/pkg/runtime/hardening_linux.go | 19 ++++++++++--- .../services/docker/container_ops.py | 1 + .../services/k8s/agent_sandbox_provider.py | 1 + .../services/k8s/batchsandbox_provider.py | 5 +++- .../tests/k8s/test_batchsandbox_provider.py | 27 ++++++++++++------- 7 files changed, 71 insertions(+), 15 deletions(-) diff --git a/components/execd/native/launcher.c b/components/execd/native/launcher.c index 5010eb9ca..0d0b60d7e 100644 --- a/components/execd/native/launcher.c +++ b/components/execd/native/launcher.c @@ -69,6 +69,7 @@ struct policy_header { uint32_t flags; uint32_t uid; uint32_t gid; + uint32_t n_groups; uint32_t n_keepcaps; uint32_t n_env; uint32_t seccomp_len; @@ -296,6 +297,7 @@ int main(int argc, char **argv) int policy_fd; struct policy_header hdr; uint32_t keepcaps[MAX_CAPS]; + uint32_t groups[MAX_CAPS]; char *env_names[MAX_CAPS]; int n_env; size_t env_budget; @@ -327,6 +329,8 @@ int main(int argc, char **argv) if (hdr.magic != POLICY_MAGIC || hdr.version != POLICY_VERSION) fail(policy_fd, "invalid policy header"); + if (hdr.n_groups > MAX_CAPS) + fail(policy_fd, "too many supplementary groups"); if (hdr.n_keepcaps > MAX_CAPS) fail(policy_fd, "too many kept capabilities"); if (hdr.n_env > MAX_CAPS) @@ -334,6 +338,9 @@ int main(int argc, char **argv) if (hdr.seccomp_len % sizeof(struct sock_filter) != 0) fail(policy_fd, "seccomp filter length is not a multiple of sock_filter"); + if (hdr.n_groups > 0 && + read_exact(policy_fd, groups, hdr.n_groups * sizeof(uint32_t)) != 0) + fail(policy_fd, "truncated group list"); if (hdr.n_keepcaps > 0 && read_exact(policy_fd, keepcaps, hdr.n_keepcaps * sizeof(uint32_t)) != 0) fail(policy_fd, "truncated capability list"); @@ -456,7 +463,19 @@ int main(int argc, char **argv) if (hdr.flags & FLAG_UID_DROP) { /* 5. Identity change. Same-uid re-apply succeeds; a foreign target * without privileges fails and is skipped (fail-open). */ - (void)setgroups(0, NULL); + if (hdr.n_groups > 0) { + gid_t *gids = (gid_t *)malloc(hdr.n_groups * sizeof(gid_t)); + + if (gids == NULL) + fail(-1, "out of memory for supplementary groups"); + for (uint32_t g = 0; g < hdr.n_groups; g++) + gids[g] = (gid_t)groups[g]; + if (setgroups(hdr.n_groups, gids) != 0) + log_err("setgroups", errno); + free(gids); + } else { + (void)setgroups(0, NULL); + } if (setgid((gid_t)hdr.gid) != 0) log_err("setgid", errno); if (setuid((uid_t)hdr.uid) != 0) diff --git a/components/execd/pkg/ebpf/audit.go b/components/execd/pkg/ebpf/audit.go index eee49d4a6..57d5aa057 100644 --- a/components/execd/pkg/ebpf/audit.go +++ b/components/execd/pkg/ebpf/audit.go @@ -92,6 +92,7 @@ type Observer struct { sandboxID string kinds map[string]bool reader *ringbuf.Reader + objs *auditObjects links []link.Link closed chan struct{} closeOnce sync.Once @@ -188,6 +189,9 @@ func newObserver(cfg *isolation.EbpfConfig, sandboxID string, cgroupID uint64) ( reader, err := ringbuf.NewReader(objs.Events) if err != nil { + for _, l := range links { + _ = l.Close() + } objs.Close() return nil, fmt.Errorf("ringbuf reader: %w", err) } @@ -220,6 +224,7 @@ func newObserver(cfg *isolation.EbpfConfig, sandboxID string, cgroupID uint64) ( sandboxID: sandboxID, kinds: kinds, reader: reader, + objs: &objs, links: links, closed: make(chan struct{}), }, nil @@ -250,6 +255,9 @@ func (o *Observer) Close() { for _, l := range o.links { _ = l.Close() } + if o.objs != nil { + o.objs.Close() + } _ = o.logger.Close() }) } @@ -270,7 +278,9 @@ func (o *Observer) handleRecord(raw []byte) { return } o.mu.Lock() - _, _ = o.logger.Write(append(line, '\n')) + if _, err := o.logger.Write(append(line, '\n')); err != nil { + log.Error("ebpf: audit write failed: %v", err) + } o.mu.Unlock() } diff --git a/components/execd/pkg/runtime/hardening_linux.go b/components/execd/pkg/runtime/hardening_linux.go index e16932802..4e21388c1 100644 --- a/components/execd/pkg/runtime/hardening_linux.go +++ b/components/execd/pkg/runtime/hardening_linux.go @@ -115,7 +115,7 @@ func buildLandlockRules(cfg isolation.Config) []landlockRule { rules = append(rules, bestEffort(llExecute, "/")) readExec := llReadFile | llReadDir | llExecute - for _, p := range []string{"/usr", "/bin", "/lib", "/lib64", "/etc"} { + for _, p := range []string{"/usr", "/bin", "/lib", "/lib64", "/etc", "/opt"} { rules = append(rules, bestEffort(readExec, p)) } // Only directory paths are usable here: the kernel rejects path_beneath @@ -285,6 +285,7 @@ type hardeningPolicy struct { flags uint32 uid uint32 gid uint32 + groups []uint32 keepcaps []uint32 stripEnv []string seccomp []byte @@ -297,6 +298,7 @@ type policyHeader struct { Flags uint32 UID uint32 GID uint32 + NGroups uint32 NKeepCaps uint32 NEnv uint32 SeccompLen uint32 @@ -527,9 +529,14 @@ func hardenCmd(cmd *exec.Cmd, noHardening bool, stripEnv []string) (*os.File, er pol = &cp } if cmd.SysProcAttr != nil && cmd.SysProcAttr.Credential != nil { + cred := cmd.SysProcAttr.Credential cp := *pol - cp.uid = cmd.SysProcAttr.Credential.Uid - cp.gid = cmd.SysProcAttr.Credential.Gid + cp.uid = cred.Uid + cp.gid = cred.Gid + cp.groups = append([]uint32(nil), cred.Groups...) + // The launcher must perform the identity drop even when execd is + // not root (the flag is normally only set for root execd). + cp.flags |= flagUIDDrop pol = &cp cmd.SysProcAttr.Credential = nil } @@ -584,6 +591,7 @@ func encodePolicy(p *hardeningPolicy) ([]byte, error) { Flags: p.flags, UID: p.uid, GID: p.gid, + NGroups: uint32(len(p.groups)), NKeepCaps: uint32(len(p.keepcaps)), NEnv: uint32(len(p.stripEnv)), SeccompLen: uint32(len(p.seccomp)), @@ -592,6 +600,11 @@ func encodePolicy(p *hardeningPolicy) ([]byte, error) { if err := binary.Write(buf, binary.LittleEndian, &hdr); err != nil { return nil, err } + for _, g := range p.groups { + if err := binary.Write(buf, binary.LittleEndian, g); err != nil { + return nil, err + } + } for _, capNum := range p.keepcaps { if err := binary.Write(buf, binary.LittleEndian, capNum); err != nil { return nil, err diff --git a/server/opensandbox_server/services/docker/container_ops.py b/server/opensandbox_server/services/docker/container_ops.py index 40ab59247..962063bc2 100644 --- a/server/opensandbox_server/services/docker/container_ops.py +++ b/server/opensandbox_server/services/docker/container_ops.py @@ -315,6 +315,7 @@ def _build_labels_and_env( environment.append(f"{key}={value}") if self.app_config and self.app_config.runtime.execd_run_as_init: environment.append("EXECD_INIT=1") + environment.append(f"OPENSANDBOX_ID={sandbox_id}") return labels, environment def _resolve_image_auth( diff --git a/server/opensandbox_server/services/k8s/agent_sandbox_provider.py b/server/opensandbox_server/services/k8s/agent_sandbox_provider.py index 96bc50944..921982499 100644 --- a/server/opensandbox_server/services/k8s/agent_sandbox_provider.py +++ b/server/opensandbox_server/services/k8s/agent_sandbox_provider.py @@ -274,6 +274,7 @@ def _build_pod_spec( disable_ipv6_for_egress=disable_ipv6_for_egress, ) main_env = dict(env) + main_env["OPENSANDBOX_ID"] = sandbox_id if self.execd_run_as_init: main_env["EXECD_INIT"] = "1" if credential_proxy_enabled: diff --git a/server/opensandbox_server/services/k8s/batchsandbox_provider.py b/server/opensandbox_server/services/k8s/batchsandbox_provider.py index 97286878c..b7d4cc284 100644 --- a/server/opensandbox_server/services/k8s/batchsandbox_provider.py +++ b/server/opensandbox_server/services/k8s/batchsandbox_provider.py @@ -180,6 +180,7 @@ def create_workload( ) main_env = dict(env) + main_env["OPENSANDBOX_ID"] = sandbox_id if self.execd_run_as_init: main_env["EXECD_INIT"] = "1" if credential_proxy_enabled: @@ -382,7 +383,7 @@ def _create_workload_from_pool( or self.execd_run_as_init ) if needs_task_template: - spec["taskTemplate"] = self._build_task_template(entrypoint, env) + spec["taskTemplate"] = self._build_task_template(entrypoint, env, batchsandbox_name) if expires_at is not None: spec["expireTime"] = expires_at.isoformat() runtime_manifest = { @@ -484,6 +485,7 @@ def _build_task_template( self, entrypoint: List[str], env: Dict[str, str], + sandbox_id: str, ) -> Dict[str, Any]: """Build pool taskTemplate with shell-escaped bootstrap command. @@ -507,6 +509,7 @@ def _build_task_template( if self.execd_run_as_init: env = {**env, "EXECD_INIT": "1"} env_list = [{"name": k, "value": v} for k, v in env.items()] if env else [] + env_list.append({"name": "OPENSANDBOX_ID", "value": sandbox_id}) return { "spec": { diff --git a/server/tests/k8s/test_batchsandbox_provider.py b/server/tests/k8s/test_batchsandbox_provider.py index 7e7d96d26..bc9732f47 100644 --- a/server/tests/k8s/test_batchsandbox_provider.py +++ b/server/tests/k8s/test_batchsandbox_provider.py @@ -530,8 +530,8 @@ def test_create_workload_converts_env_to_list(self, mock_k8s_client): body = mock_k8s_client.create_custom_object.call_args.kwargs["body"] env_vars = body["spec"]["template"]["spec"]["containers"][0]["env"] - # Should have user env vars plus EXECD - assert len(env_vars) == 3 + # Should have user env vars plus OPENSANDBOX_ID and EXECD + assert len(env_vars) == 4 env_dict = {e["name"]: e["value"] for e in env_vars} assert env_dict["FOO"] == "bar" assert env_dict["BAZ"] == "qux" @@ -1454,7 +1454,10 @@ def test_create_workload_poolref_allows_entrypoint_and_env(self, mock_k8s_client # Example: /opt/opensandbox/bootstrap.sh python app.py & assert "/opt/opensandbox/bootstrap.sh python app.py" in command[2] assert command[2].endswith(" &") - assert task_template["spec"]["process"]["env"] == [{"name": "FOO", "value": "bar"}] + assert task_template["spec"]["process"]["env"] == [ + {"name": "FOO", "value": "bar"}, + {"name": "OPENSANDBOX_ID", "value": "test-id"}, + ] def test_build_task_template_with_env(self, mock_k8s_client): """ @@ -1471,7 +1474,7 @@ def test_build_task_template_with_env(self, mock_k8s_client): provider = BatchSandboxProvider(mock_k8s_client) result = provider._build_task_template( - entrypoint=["/usr/bin/python", "app.py"], env={"KEY1": "value1", "KEY2": "value2"} + entrypoint=["/usr/bin/python", "app.py"], env={"KEY1": "value1", "KEY2": "value2"}, sandbox_id="bs-1" ) assert "spec" in result @@ -1493,6 +1496,7 @@ def test_build_task_template_with_env(self, mock_k8s_client): assert process_task["env"] == [ {"name": "KEY1", "value": "value1"}, {"name": "KEY2", "value": "value2"}, + {"name": "OPENSANDBOX_ID", "value": "bs-1"}, ] def test_build_task_template_injects_execd_run_as_init_when_enabled(self, mock_k8s_client): @@ -1503,12 +1507,13 @@ def test_build_task_template_injects_execd_run_as_init_when_enabled(self, mock_k provider = BatchSandboxProvider(mock_k8s_client, config) result = provider._build_task_template( - entrypoint=["/usr/bin/python", "app.py"], env={"KEY1": "value1"} + entrypoint=["/usr/bin/python", "app.py"], env={"KEY1": "value1"}, sandbox_id="bs-1" ) env = result["spec"]["process"]["env"] assert {"name": "EXECD_INIT", "value": "1"} in env assert {"name": "KEY1", "value": "value1"} in env + assert {"name": "OPENSANDBOX_ID", "value": "bs-1"} in env # With execd_run_as_init the task is NOT backgrounded: the shim's # shell execs bootstrap.sh, which execs `execd --init` as the root of @@ -1530,12 +1535,12 @@ def test_build_task_template_without_env(self, mock_k8s_client): """ provider = BatchSandboxProvider(mock_k8s_client) - result = provider._build_task_template(entrypoint=["/usr/bin/python", "app.py"], env={}) + result = provider._build_task_template(entrypoint=["/usr/bin/python", "app.py"], env={}, sandbox_id="bs-1") assert "spec" in result assert "process" in result["spec"] process_task = result["spec"]["process"] - assert process_task["env"] == [] + assert process_task["env"] == [{"name": "OPENSANDBOX_ID", "value": "bs-1"}] # Without env, command directly calls bootstrap.sh in background command = process_task["command"] assert command[0] == "/bin/sh" @@ -1557,7 +1562,7 @@ def test_build_task_template_uses_default_env_path(self, mock_k8s_client): provider = BatchSandboxProvider(mock_k8s_client) result = provider._build_task_template( - entrypoint=["python", "app.py"], env={"TEST_VAR": "test_value"} + entrypoint=["python", "app.py"], env={"TEST_VAR": "test_value"}, sandbox_id="bs-1" ) command = result["spec"]["process"]["command"][2] @@ -1579,6 +1584,7 @@ def test_build_task_template_escapes_special_characters(self, mock_k8s_client): result = provider._build_task_template( entrypoint=["python", "-c", 'print("hello world")'], env={"KEY": "value with spaces", "QUOTE": "it's fine"}, + sandbox_id="bs-1", ) command = result["spec"]["process"]["command"][2] @@ -1692,7 +1698,10 @@ def test_create_workload_poolref_default_entrypoint_with_env_includes_task_templ assert body["spec"]["poolRef"] == "my-pool" assert "taskTemplate" in body["spec"] task_template = body["spec"]["taskTemplate"] - assert task_template["spec"]["process"]["env"] == [{"name": "VERSION", "value": "11"}] + assert task_template["spec"]["process"]["env"] == [ + {"name": "VERSION", "value": "11"}, + {"name": "OPENSANDBOX_ID", "value": "test-id"}, + ] def test_create_workload_poolref_none_entrypoint_no_env_omits_task_template(self, mock_k8s_client): """When entrypoint is None and env is empty, taskTemplate is omitted. From d5ac089ade12b0b3df6fcba630e4e7d1c2ed2413 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 20:53:22 +0800 Subject: [PATCH 13/17] test(e2e): dedicated execd-as-init real-e2e for python, plus nightly job Add tests/python/tests/test_execd_init_e2e.py (sync SDK): PID 1 is execd, the workload is its direct child, orphans are reaped, in-namespace kill -9 1 is inert, and /v1/isolated/capabilities reports hardening.init_mode=pid1. Runs against a server with runtime.execd_run_as_init=true. - scripts/python-execd-init-e2e.sh: docker-bridge runner for the new suite; wired as a dedicated real-e2e job (python-execd-init-e2e) - scripts/python-k8s-execd-init-e2e.sh + E2E_EXECD_RUN_AS_INIT in k8s_e2e_write_server_helm_values: Kind/Kubernetes variant; wired as a dedicated kubernetes-nightly-build job (execd-init-e2e) --- .../workflows/kubernetes-nightly-build.yml | 71 ++++++++++++ .github/workflows/real-e2e.yml | 78 +++++++++++++ scripts/common/kubernetes-e2e.sh | 1 + scripts/python-execd-init-e2e.sh | 53 +++++++++ scripts/python-k8s-execd-init-e2e.sh | 77 +++++++++++++ tests/python/tests/test_execd_init_e2e.py | 107 ++++++++++++++++++ 6 files changed, 387 insertions(+) create mode 100755 scripts/python-execd-init-e2e.sh create mode 100755 scripts/python-k8s-execd-init-e2e.sh create mode 100644 tests/python/tests/test_execd_init_e2e.py diff --git a/.github/workflows/kubernetes-nightly-build.yml b/.github/workflows/kubernetes-nightly-build.yml index a6f3bccad..d0dcd3e3d 100644 --- a/.github/workflows/kubernetes-nightly-build.yml +++ b/.github/workflows/kubernetes-nightly-build.yml @@ -112,6 +112,77 @@ jobs: run: | kind delete cluster --name "${KIND_CLUSTER}" || true + execd-init-e2e: + name: Execd-Init E2E + needs: changes + if: needs.changes.outputs.relevant == 'true' + runs-on: ubuntu-latest + env: + KIND_CLUSTER: opensandbox-e2e + KIND_K8S_VERSION: v1.30.4 + KUBECONFIG_PATH: /tmp/opensandbox-kind-kubeconfig + KUBECONFIG: /tmp/opensandbox-kind-kubeconfig + OPENSANDBOX_E2E_SANDBOX_CPU: 250m + OPENSANDBOX_E2E_SANDBOX_MEMORY: 512Mi + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + + - name: Set up Go + uses: actions/setup-go@v6 + with: + go-version: "1.25.0" + + - name: Add Go bin to PATH + run: echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH" + + - name: Set up uv + uses: astral-sh/setup-uv@v7 + with: + version: "latest" + + - name: Set up kubectl + uses: azure/setup-kubectl@v4 + + - name: Set up Helm + uses: azure/setup-helm@v4 + + - name: Run execd-init E2E + run: bash scripts/python-k8s-execd-init-e2e.sh + + - name: Dump kind diagnostics + if: always() + run: | + kubectl get pods -A -o wide || true + kubectl get batchsandboxes -A || true + kubectl describe deployment -n opensandbox-system opensandbox-server || true + + - name: Eval in-cluster server logs + if: always() + run: | + kubectl logs -n opensandbox-system deployment/opensandbox-server || true + cat /tmp/opensandbox-server-port-forward.log || true + + - name: Upload Python test artifacts + if: always() + uses: actions/upload-artifact@v4 + with: + name: execd-init-e2e-logs + path: | + /tmp/opensandbox-server-port-forward.log + if-no-files-found: ignore + retention-days: 5 + + - name: Clean up Kind cluster + if: always() + run: | + kind delete cluster --name "${KIND_CLUSTER}" || true + publish-nightly-latest: name: Publish latest (${{ matrix.component }} nightly) needs: k8s-mini-e2e diff --git a/.github/workflows/real-e2e.yml b/.github/workflows/real-e2e.yml index ee2cb509c..5b1d0da22 100644 --- a/.github/workflows/real-e2e.yml +++ b/.github/workflows/real-e2e.yml @@ -127,6 +127,84 @@ jobs: docker rm -f opensandbox-e2e-redis || true docker run --rm -v /tmp:/host_tmp alpine rm -rf /host_tmp/opensandbox-e2e || true + python-execd-init-e2e: + name: Python Execd-Init E2E (docker bridge) + needs: changes + if: needs.changes.outputs.relevant == 'true' + runs-on: self-hosted + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Clean Docker runner cache + run: bash scripts/ci-docker-cleanup.sh + + - name: Set up uv + uses: astral-sh/setup-uv@v7 + + - name: Verify uv + run: | + uv --version + uv run python --version + + - name: Clean up previous E2E resources + run: | + docker ps -aq --filter "label=opensandbox" | xargs -r docker rm -f || true + docker rm -f opensandbox-e2e-redis || true + docker run --rm -v /tmp:/host_tmp alpine rm -rf /host_tmp/opensandbox-e2e || true + docker image prune -f || true + + - name: Build local egress image + run: docker build -t opensandbox/egress:local -f components/egress/Dockerfile . + + - name: Run execd-init E2E + run: | + set -e + + cat < ~/.sandbox.toml + [server] + host = "127.0.0.1" + port = 8080 + api_key = "" + [log] + level = "INFO" + [runtime] + type = "docker" + execd_image = "opensandbox/execd:local" + execd_run_as_init = true + [egress] + image = "opensandbox/egress:local" + mode = "dns+nft" + [docker] + network_mode = "bridge" + [storage] + allowed_host_paths = ["/tmp/opensandbox-e2e"] + [renew_intent] + enabled = true + min_interval_seconds = 60 + EOF + + bash scripts/python-execd-init-e2e.sh + + - name: Eval server logs + if: ${{ always() }} + run: cat server/server.log + + - name: Upload execd logs + if: always() + uses: actions/upload-artifact@v7 + with: + name: execd-log-for-execd-init-e2e + path: /tmp/opensandbox-e2e/logs/ + retention-days: 5 + + - name: Clean up after E2E + if: always() + run: | + docker ps -aq --filter "label=opensandbox" | xargs -r docker rm -f || true + docker rm -f opensandbox-e2e-redis || true + docker run --rm -v /tmp:/host_tmp alpine rm -rf /host_tmp/opensandbox-e2e || true + java-e2e: name: Java E2E (docker bridge) needs: changes diff --git a/scripts/common/kubernetes-e2e.sh b/scripts/common/kubernetes-e2e.sh index 06620a1cb..616430fd6 100644 --- a/scripts/common/kubernetes-e2e.sh +++ b/scripts/common/kubernetes-e2e.sh @@ -188,6 +188,7 @@ configToml: | [runtime] type = "kubernetes" execd_image = "${EXECD_IMG}" + execd_run_as_init = ${E2E_EXECD_RUN_AS_INIT:-false} [egress] image = "${EGRESS_IMG}" diff --git a/scripts/python-execd-init-e2e.sh b/scripts/python-execd-init-e2e.sh new file mode 100755 index 000000000..766a74493 --- /dev/null +++ b/scripts/python-execd-init-e2e.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# Copyright 2026 Alibaba Group Holding Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Runs the execd-as-init E2E (OSEP-0018) against a local Docker-bridge +# server. The server config (~/.sandbox.toml) is written by the workflow +# with runtime.execd_run_as_init = true. + +set -euxo pipefail + +REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)" +SERVER_PID="" + +cleanup() { + if [ -n "${SERVER_PID}" ]; then + kill "${SERVER_PID}" 2>/dev/null || true + wait "${SERVER_PID}" 2>/dev/null || true + fi +} +trap cleanup EXIT + +docker build -f components/execd/Dockerfile -t opensandbox/execd:local "${REPO_ROOT}" +docker pull opensandbox/code-interpreter:${TAG:-latest} + +mkdir -p /tmp/opensandbox-e2e/logs +echo "-------- EXECD INIT E2E test logs for execd --------" > /tmp/opensandbox-e2e/logs/execd.log + +cd server +export OPENSANDBOX_INSECURE_SERVER=YES +uv sync +uv run python -m opensandbox_server.main > server.log 2>&1 & +SERVER_PID=$! +cd .. + +sleep 10 + +cd sdks/sandbox/python && make generate-api +cd ../../.. + +cd tests/python +uv sync --all-extras --refresh +uv run pytest tests/test_execd_init_e2e.py -v diff --git a/scripts/python-k8s-execd-init-e2e.sh b/scripts/python-k8s-execd-init-e2e.sh new file mode 100755 index 000000000..6c0f1a664 --- /dev/null +++ b/scripts/python-k8s-execd-init-e2e.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# Copyright 2026 Alibaba Group Holding Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Runs the execd-as-init E2E (OSEP-0018) on a Kind cluster with the +# Kubernetes runtime and runtime.execd_run_as_init = true. + +set -euxo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +# shellcheck source=common/kubernetes-e2e.sh +source "${SCRIPT_DIR}/common/kubernetes-e2e.sh" + +REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" + +KIND_CLUSTER="${KIND_CLUSTER:-opensandbox-e2e}" +KIND_K8S_VERSION="${KIND_K8S_VERSION:-v1.30.4}" +KUBECONFIG_PATH="${KUBECONFIG_PATH:-/tmp/opensandbox-kind-kubeconfig}" +E2E_NAMESPACE="${E2E_NAMESPACE:-opensandbox-e2e}" +SERVER_NAMESPACE="${SERVER_NAMESPACE:-opensandbox-system}" +PVC_NAME="${PVC_NAME:-opensandbox-e2e-pvc-test}" +PV_NAME="${PV_NAME:-opensandbox-e2e-pv-test}" +CONTROLLER_IMG="${CONTROLLER_IMG:-opensandbox/controller:e2e-local}" +SERVER_IMG="${SERVER_IMG:-opensandbox/server:e2e-local}" +EXECD_IMG="${EXECD_IMG:-opensandbox/execd:e2e-local}" +EGRESS_IMG="${EGRESS_IMG:-opensandbox/egress:e2e-local}" +SERVER_RELEASE="${SERVER_RELEASE:-opensandbox-server}" +SERVER_VALUES_FILE="${SERVER_VALUES_FILE:-/tmp/opensandbox-server-values.yaml}" +PORT_FORWARD_LOG="${PORT_FORWARD_LOG:-/tmp/opensandbox-server-port-forward.log}" +SANDBOX_TEST_IMAGE="${SANDBOX_TEST_IMAGE:-ubuntu:latest}" +LIFECYCLE_LOCAL_PORT="${LIFECYCLE_LOCAL_PORT:-8080}" + +SERVER_IMG_REPOSITORY="${SERVER_IMG%:*}" +SERVER_IMG_TAG="${SERVER_IMG##*:}" + +export E2E_EXECD_RUN_AS_INIT=true + +k8s_e2e_export_kubeconfig +k8s_e2e_setup_kind_and_controller +k8s_e2e_build_runtime_images +k8s_e2e_kind_load_runtime_images +k8s_e2e_apply_pvc_and_seed +k8s_e2e_write_server_helm_values +k8s_e2e_helm_install_server + +kubectl port-forward -n "${SERVER_NAMESPACE}" svc/opensandbox-server "${LIFECYCLE_LOCAL_PORT}:80" >"${PORT_FORWARD_LOG}" 2>&1 & +PORT_FORWARD_PID=$! +trap 'kill "${PORT_FORWARD_PID}" >/dev/null 2>&1 || true' EXIT + +k8s_e2e_wait_http_ok "http://127.0.0.1:${LIFECYCLE_LOCAL_PORT}/health" + +export OPENSANDBOX_TEST_DOMAIN="localhost:${LIFECYCLE_LOCAL_PORT}" +export OPENSANDBOX_TEST_PROTOCOL="http" +export OPENSANDBOX_TEST_API_KEY="kubernetes-e2e" +export OPENSANDBOX_SANDBOX_DEFAULT_IMAGE="${SANDBOX_TEST_IMAGE}" +export OPENSANDBOX_E2E_RUNTIME="kubernetes" +export OPENSANDBOX_TEST_USE_SERVER_PROXY="true" +export OPENSANDBOX_TEST_PVC_NAME="${PVC_NAME}" + +k8s_e2e_export_sandbox_resource_env + +cd "${REPO_ROOT}/sdks/sandbox/python" +make generate-api +cd "${REPO_ROOT}/tests/python" +uv sync --all-extras --refresh +uv run pytest tests/test_execd_init_e2e.py -v diff --git a/tests/python/tests/test_execd_init_e2e.py b/tests/python/tests/test_execd_init_e2e.py new file mode 100644 index 000000000..bee6b7b16 --- /dev/null +++ b/tests/python/tests/test_execd_init_e2e.py @@ -0,0 +1,107 @@ +# +# Copyright 2026 Alibaba Group Holding Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +""" +E2E tests for execd-as-init mode (OSEP-0018). + +Requires a server running with ``runtime.execd_run_as_init = true`` (the +dedicated real-e2e and kubernetes-nightly jobs set it). Verifies the +container-level init contract through the SDK: + +- execd is PID 1 and the workload's parent +- orphaned children are reaped (no zombie accumulation under PID 1) +- in-namespace ``kill -9 1`` is inert (kernel signal shield) +- ``GET /v1/isolated/capabilities`` reports ``hardening.init_mode = pid1`` +""" + +import logging +import time +from datetime import timedelta + +import pytest +from opensandbox import SandboxSync +from opensandbox.models.execd import RunCommandOpts +from opensandbox.models.sandboxes import SandboxImageSpec + +from tests.base_e2e_test import ( + create_connection_config_sync, + get_e2e_sandbox_resource, + get_sandbox_image, +) + +logger = logging.getLogger(__name__) + +EXECD_CAPABILITIES_URL = "http://127.0.0.1:44772/v1/isolated/capabilities" + + +def _run_command(sandbox, command: str) -> str: + """Run a command and return its combined stdout.""" + result = sandbox.commands.run(command, opts=RunCommandOpts()) + assert result.error is None, f"command failed: {result.error}" + return "".join(msg.text for msg in result.logs.stdout) + + +class TestExecdInitE2E: + @pytest.fixture(scope="module", autouse=True) + def sandbox(self): + connection_config = create_connection_config_sync() + sbx = SandboxSync.create( + image=SandboxImageSpec(get_sandbox_image()), + resource=get_e2e_sandbox_resource(), + connection_config=connection_config, + timeout=timedelta(minutes=5), + ready_timeout=timedelta(seconds=60), + metadata={"tag": "execd-init-e2e"}, + ) + logger.info("✓ execd-init sandbox created: %s", sbx.id) + yield sbx + try: + sbx.close() + except Exception as exc: # noqa: BLE001 + logger.warning("Teardown: sandbox.close() failed: %s", exc, exc_info=True) + + def test_pid1_is_execd(self, sandbox) -> None: + assert _run_command(sandbox, "cat /proc/1/comm").strip() == "execd" + + def test_workload_is_direct_child_of_execd(self, sandbox) -> None: + # /proc/$$/stat field 4 is the parent pid; the run-command shell is + # a direct child of execd (PID 1). + ppid = _run_command(sandbox, "awk '{print $4}' /proc/$$/stat").strip() + assert ppid == "1", f"workload ppid = {ppid}, want 1" + + def test_orphans_are_reaped(self, sandbox) -> None: + # Background children reparent to PID 1 and must be reaped by execd. + _run_command(sandbox, "for i in $(seq 1 5); do ( sleep 0.1 ) & done") + time.sleep(2) + zombies = _run_command( + sandbox, + "z=0; for p in /proc/[0-9]*; do " + "stat=$(cat \"$p/stat\" 2>/dev/null) || continue; " + "stat=${stat#*)}; set -- $stat; " + "[ \"$1\" = Z ] && [ \"$2\" = 1 ] && z=$((z+1)); done; echo $z", + ).strip() + assert zombies == "0", f"zombies under pid 1: {zombies}" + + def test_kill9_pid1_is_inert(self, sandbox) -> None: + assert "alive" in _run_command(sandbox, "kill -9 1; echo alive") + + def test_hardening_reports_pid1(self, sandbox) -> None: + probe = ( + "python3 -c \"import json,urllib.request;" + f"print(json.load(urllib.request.urlopen('{EXECD_CAPABILITIES_URL}'))" + "['hardening']['init_mode'])\"" + ) + init_mode = _run_command(sandbox, probe).strip() + assert init_mode == "pid1", f"hardening.init_mode = {init_mode}, want pid1" From b88cd974c713d118f3ea40eb263383032b4473d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 21:14:15 +0800 Subject: [PATCH 14/17] ci(e2e): fix execd-init e2e failures in python and k8s nightly jobs --- scripts/python-e2e.sh | 3 ++- scripts/python-k8s-execd-init-e2e.sh | 2 +- tests/python/Makefile | 2 +- tests/python/uv.lock | 11 +++++++++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/scripts/python-e2e.sh b/scripts/python-e2e.sh index 9278d32ee..17a21e953 100755 --- a/scripts/python-e2e.sh +++ b/scripts/python-e2e.sh @@ -90,5 +90,6 @@ if [ "${RUN_CODE_INTERPRETER_E2E}" = "true" ]; then else uv run pytest \ --ignore=tests/test_code_interpreter_e2e.py \ - --ignore=tests/test_code_interpreter_e2e_sync.py + --ignore=tests/test_code_interpreter_e2e_sync.py \ + --ignore=tests/test_execd_init_e2e.py fi diff --git a/scripts/python-k8s-execd-init-e2e.sh b/scripts/python-k8s-execd-init-e2e.sh index 6c0f1a664..cacf8ead2 100755 --- a/scripts/python-k8s-execd-init-e2e.sh +++ b/scripts/python-k8s-execd-init-e2e.sh @@ -38,7 +38,7 @@ EGRESS_IMG="${EGRESS_IMG:-opensandbox/egress:e2e-local}" SERVER_RELEASE="${SERVER_RELEASE:-opensandbox-server}" SERVER_VALUES_FILE="${SERVER_VALUES_FILE:-/tmp/opensandbox-server-values.yaml}" PORT_FORWARD_LOG="${PORT_FORWARD_LOG:-/tmp/opensandbox-server-port-forward.log}" -SANDBOX_TEST_IMAGE="${SANDBOX_TEST_IMAGE:-ubuntu:latest}" +SANDBOX_TEST_IMAGE="${SANDBOX_TEST_IMAGE:-opensandbox/code-interpreter:latest}" LIFECYCLE_LOCAL_PORT="${LIFECYCLE_LOCAL_PORT:-8080}" SERVER_IMG_REPOSITORY="${SERVER_IMG%:*}" diff --git a/tests/python/Makefile b/tests/python/Makefile index d84a6e182..6e9014dd6 100644 --- a/tests/python/Makefile +++ b/tests/python/Makefile @@ -7,7 +7,7 @@ sync-dev: uv sync --group dev test: - uv run pytest + uv run pytest --ignore=tests/test_execd_init_e2e.py test-kubernetes-mini: uv run pytest \ diff --git a/tests/python/uv.lock b/tests/python/uv.lock index abc3446a1..11748ef33 100644 --- a/tests/python/uv.lock +++ b/tests/python/uv.lock @@ -122,6 +122,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, ] +[[package]] +name = "httpx-sse" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/4c/751061ffa58615a32c31b2d82e8482be8dd4a89154f003147acee90f2be9/httpx_sse-0.4.3.tar.gz", hash = "sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d", size = 15943, upload-time = "2025-10-10T21:48:22.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960, upload-time = "2025-10-10T21:48:21.158Z" }, +] + [[package]] name = "idna" version = "3.15" @@ -155,6 +164,7 @@ source = { editable = "../../sdks/sandbox/python" } dependencies = [ { name = "attrs" }, { name = "httpx" }, + { name = "httpx-sse" }, { name = "pydantic" }, { name = "python-dateutil" }, ] @@ -163,6 +173,7 @@ dependencies = [ requires-dist = [ { name = "attrs", specifier = ">=21.3.0" }, { name = "httpx", specifier = ">=0.27.0,<1.0" }, + { name = "httpx-sse", specifier = ">=0.4.3,<0.5" }, { name = "pydantic", specifier = ">=2.4.2,<3.0" }, { name = "pyjwt", marker = "extra == 'pool-redis'", specifier = ">=2.13.0" }, { name = "python-dateutil", specifier = ">=2.8.2,<3.0" }, From be2dc8a4a293bda2f1842366aca0488063bdc2d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 21:36:35 +0800 Subject: [PATCH 15/17] feat(execd): ship execd-ebpf in default image; docs and e2e sync (OSEP-0018) --- components/execd/Dockerfile | 25 +++++++---------------- components/execd/README.md | 11 ++++++++++ oseps/0018-execd-as-sandbox-init.md | 8 +++++--- server/configuration.md | 1 + tests/python/tests/test_execd_init_e2e.py | 8 ++++++++ 5 files changed, 32 insertions(+), 21 deletions(-) diff --git a/components/execd/Dockerfile b/components/execd/Dockerfile index 5c6b057f7..97e7d1ebb 100644 --- a/components/execd/Dockerfile +++ b/components/execd/Dockerfile @@ -96,9 +96,12 @@ RUN rm /usr/lib/libcap.so /usr/lib/libcap.so.2 && \ ninja -C builddir && \ cp builddir/bwrap /build/bwrap/bwrap -# execd-ebpf: observation variant (OSEP-0018 §5). The default image below -# never contains eBPF code; this stage builds a CGO variant with the -# exec/connect/privilege audit hooks attached. +# execd-ebpf: observation variant binary (OSEP-0018 §5). The default image +# below carries both the minimal control-plane binary and this variant; who +# runs which is decided at launch time (bootstrap.sh honors the EXECD env, +# defaulting to /opt/opensandbox/execd). The variant attaches +# exec/connect/privilege audit hooks and needs CAP_BPF + CAP_PERFMON in the +# container ceiling. FROM golang:1.25.9 AS ebpf-builder ARG VERSION=dev ARG GIT_COMMIT=unknown @@ -120,21 +123,6 @@ RUN CGO_ENABLED=0 go build -tags ebpf -trimpath -buildvcs=false \ -X 'github.com/alibaba/opensandbox/internal/version.GitCommit=${GIT_COMMIT}'" \ -o /build/execd-ebpf ./main.go -# The observation variant keeps the exact layout of the default image so it -# can be used as runtime.execd_image: /execd, /bootstrap.sh and the native -# helpers must be present for the server distribution paths. -FROM alpine:latest AS ebpf -COPY --from=bwrap-builder /build/bwrap/bwrap /usr/local/bin/bwrap -COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-session-gate /usr/local/libexec/opensandbox-session-gate -COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-session-gate /opt/opensandbox/opensandbox-session-gate -COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-launcher /usr/local/libexec/opensandbox-launcher -COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-launcher /opt/opensandbox/opensandbox-launcher -COPY --from=ebpf-builder /build/execd-ebpf ./execd -COPY --from=ebpf-builder /build/execd-ebpf ./execd-ebpf -COPY components/execd/bootstrap.sh ./bootstrap.sh -COPY components/execd/install.bat ./install.bat -ENTRYPOINT ["./execd"] - FROM alpine:latest COPY --from=bwrap-builder /build/bwrap/bwrap /usr/local/bin/bwrap @@ -145,6 +133,7 @@ COPY --from=bwrap-builder --chown=0:0 --chmod=0555 /build/opensandbox-launcher / COPY --from=builder /build/execd . COPY --from=builder /build/execd.exe ./execd.exe COPY --from=builder /build/opensandbox-supervisor ./opensandbox-supervisor +COPY --from=ebpf-builder /build/execd-ebpf ./execd-ebpf COPY components/execd/bootstrap.sh ./bootstrap.sh COPY components/execd/install.bat ./install.bat diff --git a/components/execd/README.md b/components/execd/README.md index 1102e6ac1..43291cc59 100644 --- a/components/execd/README.md +++ b/components/execd/README.md @@ -2,3 +2,14 @@ Documentation: [docs/components/execd.md](../../docs/components/execd.md) +## Known issue / TODO: execd-ebpf selection is not wired end to end + +The default image ships both the minimal `execd` binary and the +`execd-ebpf` observation variant (root `/execd` and `/execd-ebpf`), but the +**server-side selection is not implemented yet**: nothing in the server +injects the `EXECD` env var (which `bootstrap.sh` honors to pick a binary, +defaulting to `/opt/opensandbox/execd`), and the Docker / K8s +distribution paths only install `/execd` into `/opt/opensandbox`. Until +that lands, using `execd-ebpf` requires manually staging the binary (or +overriding `EXECD`) — do not rely on it in production. + diff --git a/oseps/0018-execd-as-sandbox-init.md b/oseps/0018-execd-as-sandbox-init.md index ba8695667..19146bab9 100644 --- a/oseps/0018-execd-as-sandbox-init.md +++ b/oseps/0018-execd-as-sandbox-init.md @@ -72,9 +72,11 @@ status: implementing **Remaining work** (tracked locally, see the handoff document next to this OSEP): trusted out-of-band stop channel + `restart_default.go` reconciliation -(§3); Pool pod-level PID 1 (operator-side template config today); kernel-5.10 -eBPF empirical validation; Kind/SDK e2e coverage; `execd-ebpf` image build -step in CI; default-on rollout of `execd_run_as_init` / `[hardening]`. +(§3); Pool pod-level PID 1 is a **declined follow-up** (subreaper + per-child +floor holds without PID 1; operator template config available); kernel-5.10 +eBPF empirical validation; cross-language SDK e2e coverage; `execd-ebpf` +server-side binary selection (the default image ships both binaries; selection +wiring is deferred); default-on rollout of `execd_run_as_init` / `[hardening]`. ## Summary diff --git a/server/configuration.md b/server/configuration.md index c175979f5..593241d18 100644 --- a/server/configuration.md +++ b/server/configuration.md @@ -96,6 +96,7 @@ Example files in this repository: |-----|------|---------|-------------| | `type` | string | — | **`docker`** or **`kubernetes`**. Selects which runtime implementation loads. | | `execd_image` | string | — | OCI image containing the **execd** binary used to bootstrap command/file access inside the sandbox. | +| `execd_run_as_init` | boolean | `false` | Run **execd as the sandbox init** (OSEP-0018): sets `EXECD_INIT` in the sandbox environment so `bootstrap.sh` `exec`s into `execd --init` and execd becomes PID 1 — reaping children, owning the container lifecycle, and exposing the hardening floor. Defaults to `false` (classic background-and-wait topology); intended to be flipped on after validation in production. | --- diff --git a/tests/python/tests/test_execd_init_e2e.py b/tests/python/tests/test_execd_init_e2e.py index bee6b7b16..474be7571 100644 --- a/tests/python/tests/test_execd_init_e2e.py +++ b/tests/python/tests/test_execd_init_e2e.py @@ -23,6 +23,8 @@ - execd is PID 1 and the workload's parent - orphaned children are reaped (no zombie accumulation under PID 1) - in-namespace ``kill -9 1`` is inert (kernel signal shield) +- the workload cannot read execd's environment (``/proc/1/environ`` denied by + non-dumpable, independent of Landlock) - ``GET /v1/isolated/capabilities`` reports ``hardening.init_mode = pid1`` """ @@ -97,6 +99,12 @@ def test_orphans_are_reaped(self, sandbox) -> None: def test_kill9_pid1_is_inert(self, sandbox) -> None: assert "alive" in _run_command(sandbox, "kill -9 1; echo alive") + def test_workload_cannot_read_execd_environ(self, sandbox) -> None: + result = sandbox.commands.run("cat /proc/1/environ", opts=RunCommandOpts()) + assert result.error is not None, "reading execd's /proc/1/environ must be denied" + stderr = "".join(msg.text for msg in result.logs.stderr) + assert "Permission denied" in stderr or "Operation not permitted" in stderr + def test_hardening_reports_pid1(self, sandbox) -> None: probe = ( "python3 -c \"import json,urllib.request;" From 8ae0b49652edd3fd8ae09fd7fc9ad4b890d3e884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Wed, 12 Aug 2026 22:18:20 +0800 Subject: [PATCH 16/17] fix(execd): address Codex round 7 (landlock jupyter log, init-mode report, launcher identity, ebpf build tags) --- components/execd/go.mod | 4 ++-- components/execd/go.sum | 12 ++++++++++++ components/execd/native/launcher.c | 16 +++++++++------- components/execd/pkg/ebpf/audit_bpfeb.go | 2 +- components/execd/pkg/ebpf/audit_bpfel.go | 2 +- components/execd/pkg/runtime/hardening_linux.go | 14 ++++++++++++++ .../code-interpreter/scripts/code-interpreter.sh | 7 ++++++- 7 files changed, 45 insertions(+), 12 deletions(-) diff --git a/components/execd/go.mod b/components/execd/go.mod index 1929127b5..af9301eca 100644 --- a/components/execd/go.mod +++ b/components/execd/go.mod @@ -69,14 +69,14 @@ require ( go.yaml.in/yaml/v2 v2.4.3 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.52.0 // indirect - golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 + golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 // indirect golang.org/x/text v0.37.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 // indirect google.golang.org/grpc v1.82.1 // indirect google.golang.org/protobuf v1.36.11 // indirect gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect + gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect diff --git a/components/execd/go.sum b/components/execd/go.sum index 48e48da7d..1ea60dc56 100644 --- a/components/execd/go.sum +++ b/components/execd/go.sum @@ -46,6 +46,8 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.28.0 h1:Q7ibns33JjyW48gHkuFT91qX48KG0ktULL6FgHdG688= github.com/go-playground/validator/v10 v10.28.0/go.mod h1:GoI6I1SjPBh9p7ykNE/yj3fFYbyDOpwMn5KXd+m2hUU= +github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI= +github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= @@ -63,6 +65,10 @@ github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5T github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA= github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 h1:HWRh5R2+9EifMyIHV7ZV+MIZqgz+PMpZ14Jynv3O2Zs= github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0/go.mod h1:JfhWUomR1baixubs02l85lZYYOm7LV6om4ceouMv45c= +github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA= +github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= +github.com/jsimonetti/rtnetlink/v2 v2.0.1 h1:xda7qaHDSVOsADNouv7ukSuicKZO7GgVUCXxpaIEIlM= +github.com/jsimonetti/rtnetlink/v2 v2.0.1/go.mod h1:7MoNYNbb3UaDHtF8udiJo/RH6VsTKP1pqKLUTVCvToE= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -79,6 +85,10 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/g= +github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw= +github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U= +github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -171,6 +181,8 @@ golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/components/execd/native/launcher.c b/components/execd/native/launcher.c index 0d0b60d7e..32ad79827 100644 --- a/components/execd/native/launcher.c +++ b/components/execd/native/launcher.c @@ -461,8 +461,10 @@ int main(int argc, char **argv) log_err("PR_SET_NO_NEW_PRIVS", errno); if (hdr.flags & FLAG_UID_DROP) { - /* 5. Identity change. Same-uid re-apply succeeds; a foreign target - * without privileges fails and is skipped (fail-open). */ + /* 5. Identity change. The requested identity is part of the launch + * contract: a same-uid re-apply always succeeds, but a foreign + * target that cannot be applied must abort the launch (os/exec + * would fail) instead of silently running as the wrong user. */ if (hdr.n_groups > 0) { gid_t *gids = (gid_t *)malloc(hdr.n_groups * sizeof(gid_t)); @@ -471,15 +473,15 @@ int main(int argc, char **argv) for (uint32_t g = 0; g < hdr.n_groups; g++) gids[g] = (gid_t)groups[g]; if (setgroups(hdr.n_groups, gids) != 0) - log_err("setgroups", errno); + fail(-1, "setgroups: cannot apply requested supplementary groups"); free(gids); - } else { - (void)setgroups(0, NULL); + } else if (setgroups(0, NULL) != 0) { + fail(-1, "setgroups: cannot clear supplementary groups"); } if (setgid((gid_t)hdr.gid) != 0) - log_err("setgid", errno); + fail(-1, "setgid: cannot apply requested gid"); if (setuid((uid_t)hdr.uid) != 0) - log_err("setuid", errno); + fail(-1, "setuid: cannot apply requested uid"); } if (hdr.flags & FLAG_CAP_DROP) { diff --git a/components/execd/pkg/ebpf/audit_bpfeb.go b/components/execd/pkg/ebpf/audit_bpfeb.go index 28af7511f..8bdb46ca5 100644 --- a/components/execd/pkg/ebpf/audit_bpfeb.go +++ b/components/execd/pkg/ebpf/audit_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build mips || mips64 || ppc64 || s390x +//go:build ebpf && (mips || mips64 || ppc64 || s390x) package ebpf diff --git a/components/execd/pkg/ebpf/audit_bpfel.go b/components/execd/pkg/ebpf/audit_bpfel.go index 6a4156af0..b750c5b0a 100644 --- a/components/execd/pkg/ebpf/audit_bpfel.go +++ b/components/execd/pkg/ebpf/audit_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 +//go:build ebpf && (386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64) package ebpf diff --git a/components/execd/pkg/runtime/hardening_linux.go b/components/execd/pkg/runtime/hardening_linux.go index 4e21388c1..5409814bb 100644 --- a/components/execd/pkg/runtime/hardening_linux.go +++ b/components/execd/pkg/runtime/hardening_linux.go @@ -665,5 +665,19 @@ func ReportHardening() HardeningReport { if es := hardening.ebpf.Load(); es != nil { report.Ebpf = *es } + // Without init mode (classic background-and-wait topology), the image + // entrypoint — and any /code kernels it spawns — is launched by the + // bootstrap shell, not by execd, so it never passes through the launcher. + // The layer states above only cover execd-spawned commands/sessions; say + // so instead of letting the endpoint claim full enforcement. + if mode == "none" && report.CapDrop.State == "active" { + msg := "hardening active but execd is not the sandbox init (EXECD_INIT unset): " + + "the image entrypoint and its /code kernels are not wrapped; only " + + "execd-spawned commands/sessions are reduced. Enable " + + "runtime.execd_run_as_init for full coverage" + report.CapDrop = LayerState{State: "degraded", Message: msg} + report.Seccomp = LayerState{State: "degraded", Message: msg} + report.Landlock = LayerState{State: "degraded", Message: msg} + } return report } diff --git a/sandboxes/code-interpreter/scripts/code-interpreter.sh b/sandboxes/code-interpreter/scripts/code-interpreter.sh index 1b09c9198..e6ad1b71e 100755 --- a/sandboxes/code-interpreter/scripts/code-interpreter.sh +++ b/sandboxes/code-interpreter/scripts/code-interpreter.sh @@ -167,4 +167,9 @@ pids+=($!) setup_bash & pids+=($!) -jupyter notebook --ip=127.0.0.1 --port="${JUPYTER_PORT:-44771}" --allow-root --no-browser --NotebookApp.token="${JUPYTER_TOKEN:-opensandboxcodeinterpreterjupyter}" >/opt/code-interpreter/jupyter.log +# Runtime artifacts live under /tmp so the Landlock hardening floor +# (read+exec on /opt, read+write on /tmp) keeps working out of the box. +export JUPYTER_RUNTIME_DIR=/tmp/jupyter-runtime +mkdir -p /tmp/jupyter-runtime /tmp/code-interpreter + +jupyter notebook --ip=127.0.0.1 --port="${JUPYTER_PORT:-44771}" --allow-root --no-browser --NotebookApp.token="${JUPYTER_TOKEN:-opensandboxcodeinterpreterjupyter}" >/tmp/code-interpreter/jupyter.log From cba75bca943c144259b022d37446580029cfec38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=84=B6?= Date: Thu, 13 Aug 2026 10:43:23 +0800 Subject: [PATCH 17/17] docs(oseps): fold remaining-work tracking into OSEP-0018 status section --- oseps/0018-execd-as-sandbox-init.md | 31 ++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/oseps/0018-execd-as-sandbox-init.md b/oseps/0018-execd-as-sandbox-init.md index 19146bab9..8e43b2b78 100644 --- a/oseps/0018-execd-as-sandbox-init.md +++ b/oseps/0018-execd-as-sandbox-init.md @@ -38,8 +38,9 @@ status: implementing > Updated 2026-08-12. Status: **implementing** — the phased rollout below is > implemented on branch `feat/execd-init-mode` (Phases 1–5 plus the server -> switch); remaining items are the trusted stop channel (§3), Pool pod-level -> PID 1 automation, kernel-5.10 empirical validation, and e2e coverage. +> switch); remaining items are the trusted stop channel (§3), kernel-5.10 +> empirical validation, cross-language e2e, and the default-on rollout (see +> the Remaining work table below). | Phase | Scope | Status | |---|---|---| @@ -70,13 +71,25 @@ status: implementing descendants get EACCES on their own procfs (documented in `docs/components/execd.md`). -**Remaining work** (tracked locally, see the handoff document next to this -OSEP): trusted out-of-band stop channel + `restart_default.go` reconciliation -(§3); Pool pod-level PID 1 is a **declined follow-up** (subreaper + per-child -floor holds without PID 1; operator template config available); kernel-5.10 -eBPF empirical validation; cross-language SDK e2e coverage; `execd-ebpf` -server-side binary selection (the default image ships both binaries; selection -wiring is deferred); default-on rollout of `execd_run_as_init` / `[hardening]`. +**Remaining work** (status 2026-08-12, PR #1474): + +| # | Item | Status / plan | +|---|---|---| +| R-a | Trusted out-of-band stop channel (§3, R2) | **Open — biggest remaining item, separate PR.** Any SIGTERM (incl. in-namespace `kill 1`) still stops the sandbox (same as pre-OSEP behavior); `kill -9 1` is inert. Target: authenticated channel unreachable from the workload; then point the K8s Restart recycle at it instead of `kill 1` (`restart_default.go`; current SIGTERM semantics confirmed compatible, comment added) | +| R-b | Pool pod-level PID 1 | **Declined follow-up.** Pool sandboxes run execd as task-level subreaper (Phase 5): the per-child floor holds without PID 1; the lost signal shield is no regression (pool exposure equals the pre-OSEP era; task-executor owns pod reaping). Operators wanting full PID 1 configure the Pool template command manually (`bootstrap.sh` + keepalive + `EXECD_INIT=1`); server auto-injection out of scope | +| R-c | Kernel-5.10 eBPF empirical validation | Open. The 5.10–5.15 exec-hook fallback (inline `filename[1024]`, `__data_loc` argv) is derived from the tracepoint definition, not boot-tested; worst case the hook degrades (fail-open). Needs a real 5.10 node with BTF + `CAP_BPF` | +| R-d | Cross-language SDK e2e | Python covered (docker-bridge + k8s nightly: PID 1, reaping, kill-9 inert, `/proc/1/environ` denial, capabilities endpoint). JS/Go/C#/Java/Kotlin init-mode e2e not written | +| R-e | `execd-ebpf` server-side selection | **Deferred.** The default image ships both binaries (`/execd` + `/execd-ebpf`); choosing which runs (`EXECD` env, `runtime.execd_binary`) is not wired into the server or the Docker/K8s distribution paths. Tracked in `components/execd/README.md` "Known issue / TODO" | +| R-f | Default-on rollout | `runtime.execd_run_as_init` and `[hardening] enabled` default `false` by design; flip after N releases of validation (owner decision), record in release notes | +| R-g | `OPENSANDBOX_ID` reserved-env override (Codex round 7) | **Deferred.** Docker env builder appends `OPENSANDBOX_ID` after user env (pre-existing pattern); harden reserved-key filtering first if a duplicate-key spoofing path is demonstrated | +| R-h | CI flake observation | PauseResume v1.32.2 (only) timed out at 900s on "commit/push fails with invalid registry" (Kubernetes CI); unrelated to this branch's recent commits — re-run to confirm flake | + +Closed this round (2026-08-12): CI green for all execd-init jobs; `/proc/1/environ` +e2e assertion (`test_workload_cannot_read_execd_environ`); hardening report +degrades honestly when hardening is on without init topology; launcher aborts on +failed identity drop; bundled-image Jupyter log relocated under `/tmp`; +generated eBPF bindings gated behind `ebpf &&` tags; `runtime.execd_run_as_init` +documented in `server/configuration.md`. ## Summary