From d46e1d111b5efb8121d1d5d746cd40d8114b2e52 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Sun, 27 Jul 2025 10:50:05 +0200 Subject: [PATCH 01/33] added new todos --- cli/src/main.rs | 2 ++ core/Cargo.lock | 2 +- core/src/components/conntracker/src/main.rs | 1 + core/src/components/identity/src/main.rs | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index 9df3c20..83a8194 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -1,3 +1,5 @@ +//TODO: add a identity-monitor module +//TODO: add an example with test pods during installation mod essential; mod install; mod logs; diff --git a/core/Cargo.lock b/core/Cargo.lock index c99fa33..1ac77c2 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -2652,7 +2652,7 @@ dependencies = [ "aya-log-ebpf", "bytemuck", "network-types", - "which", + "which 7.0.3", ] [[package]] diff --git a/core/src/components/conntracker/src/main.rs b/core/src/components/conntracker/src/main.rs index a737216..c3c7aa1 100644 --- a/core/src/components/conntracker/src/main.rs +++ b/core/src/components/conntracker/src/main.rs @@ -72,6 +72,7 @@ use crate::data_structures::{ACTIVE_CONNECTIONS, CONNTRACKER, EVENTS, VETH_EVENT */ +//TODO: move all these parameters in a dedicated ENUM const IPV4_ETHERTYPE: u16 = 0x0800; //IPV4 STACK diff --git a/core/src/components/identity/src/main.rs b/core/src/components/identity/src/main.rs index 0a0c9e4..09e74ee 100644 --- a/core/src/components/identity/src/main.rs +++ b/core/src/components/identity/src/main.rs @@ -190,6 +190,7 @@ async fn init_veth_tracer(bpf: Arc>) -> Result<(), anyhow::Error> { Ok(()) } +//TODO: move this functions in a dedicated module named "maps-handler" fn init_bpf_maps(bpf: Arc>) -> Result<(Map, Map), anyhow::Error> { // this function init the bpfs maps used in the main program /* From 8886444476736bdcc2da90a5f10cac8d7ed6d93e Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Sun, 27 Jul 2025 11:40:09 +0200 Subject: [PATCH 02/33] [#119]: added map_handlers module --- core/src/components/identity/src/main.rs | 65 ++----------------- .../components/identity/src/map_handlers.rs | 64 ++++++++++++++++++ core/src/components/identity/src/mod.rs | 3 +- 3 files changed, 72 insertions(+), 60 deletions(-) create mode 100644 core/src/components/identity/src/map_handlers.rs diff --git a/core/src/components/identity/src/main.rs b/core/src/components/identity/src/main.rs index 09e74ee..c32bf5d 100644 --- a/core/src/components/identity/src/main.rs +++ b/core/src/components/identity/src/main.rs @@ -13,6 +13,8 @@ mod enums; mod helpers; mod structs; +mod map_handlers; + use aya::{ Bpf, maps::{ @@ -22,20 +24,21 @@ use aya::{ programs::{KProbe, SchedClassifier, TcAttachType, tc::SchedClassifierLinkId}, util::online_cpus, }; -use libc::signal; use crate::helpers::{display_events, display_veth_events, get_veth_channels}; +use crate::map_handlers::{init_bpf_maps,map_pinner}; + use bytes::BytesMut; use std::{ convert::TryInto, - path::{Path, PathBuf}, + path::Path, sync::{ Arc, Mutex, atomic::{AtomicBool, Ordering}, }, }; -use anyhow::{Context, Error, Ok}; +use anyhow::{Context, Ok}; use tokio::{fs, signal}; use tracing::{error, info}; use tracing_subscriber::{EnvFilter, fmt::format::FmtSpan}; @@ -190,37 +193,6 @@ async fn init_veth_tracer(bpf: Arc>) -> Result<(), anyhow::Error> { Ok(()) } -//TODO: move this functions in a dedicated module named "maps-handler" -fn init_bpf_maps(bpf: Arc>) -> Result<(Map, Map), anyhow::Error> { - // this function init the bpfs maps used in the main program - /* - index 0: events_map - index 1: veth_map - */ - let mut bpf_new = bpf.lock().unwrap(); - - let events_map = bpf_new - .take_map("EventsMap") - .ok_or_else(|| anyhow::anyhow!("EventsMap map not found"))?; - - let veth_map = bpf_new - .take_map("veth_identity_map") - .ok_or_else(|| anyhow::anyhow!("veth_identity_map map not found"))?; - - /* EDIT: this part is paused right now - info!("loading bpf connections map"); - - //init connection map - let connections_map_raw = bpf - .take_map("ConnectionMap") - .context("failed to take connections map")?; - - let connection_tracker_map = bpf - .take_map("ConnectionTrackerMap") - .context("failed to take ConnectionTrackerMap map")?; - */ - Ok((events_map, veth_map)) -} async fn event_listener( bpf_maps: (Map, Map), @@ -313,28 +285,3 @@ async fn event_listener( Ok(()) } - -//TODO: save bpf maps path in the cli metadata -//takes an array of bpf maps and pin them to persiste session data -//TODO: change maps type with a Vec instead of (Map,Map). This method is only for fast development and it's not optimized - -//chmod 700 to setup the permissions to pin maps TODO:add this permission in the CLI -async fn map_pinner(maps: &(Map, Map), path: &PathBuf) -> Result<(), Error> { - - //FIXME: add exception for already pinned maps - if !path.exists() { - error!("Pin path {:?} does not exist. Creating it...", path); - let _ = fs::create_dir_all(path) - .await - .map_err(|e| error!("Failed to create directory: {}", e)); - } - - // Costruisci i path completi per le due mappe - let map1_path = path.join("events_map"); - let map2_path = path.join("veth_map"); - - maps.0.pin(&map1_path)?; - maps.1.pin(&map2_path)?; - - Ok(()) -} diff --git a/core/src/components/identity/src/map_handlers.rs b/core/src/components/identity/src/map_handlers.rs new file mode 100644 index 0000000..36ae044 --- /dev/null +++ b/core/src/components/identity/src/map_handlers.rs @@ -0,0 +1,64 @@ +use std::path::PathBuf; +use std::sync::Mutex; +use std::sync::Arc; +use anyhow::Error; +use aya::maps::Map; +use aya::Bpf; +use tracing::{error}; +use tokio::fs; + + +pub fn init_bpf_maps(bpf: Arc>) -> Result<(Map, Map), anyhow::Error> { + // this function init the bpfs maps used in the main program + /* + index 0: events_map + index 1: veth_map + */ + let mut bpf_new = bpf.lock().unwrap(); + + let events_map = bpf_new + .take_map("EventsMap") + .ok_or_else(|| anyhow::anyhow!("EventsMap map not found"))?; + + let veth_map = bpf_new + .take_map("veth_identity_map") + .ok_or_else(|| anyhow::anyhow!("veth_identity_map map not found"))?; + + /* EDIT: this part is paused right now + info!("loading bpf connections map"); + + //init connection map + let connections_map_raw = bpf + .take_map("ConnectionMap") + .context("failed to take connections map")?; + + let connection_tracker_map = bpf + .take_map("ConnectionTrackerMap") + .context("failed to take ConnectionTrackerMap map")?; + */ + Ok((events_map, veth_map)) +} + +//TODO: save bpf maps path in the cli metadata +//takes an array of bpf maps and pin them to persiste session data +//TODO: change maps type with a Vec instead of (Map,Map). This method is only for fast development and it's not optimized +//TODO: chmod 700 to setup the permissions to pin maps TODO:add this permission in the CLI +//TODO: add bpf mounts during cli installation +pub async fn map_pinner(maps: &(Map, Map), path: &PathBuf) -> Result<(), Error> { + + //FIXME: add exception for already pinned maps + if !path.exists() { + error!("Pin path {:?} does not exist. Creating it...", path); + let _ = fs::create_dir_all(path) + .await + .map_err(|e| error!("Failed to create directory: {}", e)); + } + + let map1_path = path.join("events_map"); + let map2_path = path.join("veth_map"); + + maps.0.pin(&map1_path)?; + maps.1.pin(&map2_path)?; + + Ok(()) +} diff --git a/core/src/components/identity/src/mod.rs b/core/src/components/identity/src/mod.rs index 5413414..e3bb59e 100644 --- a/core/src/components/identity/src/mod.rs +++ b/core/src/components/identity/src/mod.rs @@ -1,3 +1,4 @@ pub mod helpers; pub mod structs; -pub mod enums; \ No newline at end of file +pub mod enums; +pub mod map_handlers; \ No newline at end of file From 4085b0eb4e7b0f5dda7e155eb01858ed7cb661a0 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Sat, 2 Aug 2025 00:39:40 +0200 Subject: [PATCH 03/33] [#123]: added crate api as the foundation of the agent api . Added agent.proto file. Added build.rs file to generate the agent.rs file using the tonic Rust framework --- core/api/Cargo.toml | 26 +++ core/api/build.rs | 17 ++ core/api/config.yaml | 131 +++++++++++++++ core/api/protos/agent.proto | 16 ++ core/api/src/agent.rs | 314 ++++++++++++++++++++++++++++++++++++ core/api/src/api.rs | 86 ++++++++++ core/api/src/main.rs | 48 ++++++ core/api/src/mod.rs | 2 + 8 files changed, 640 insertions(+) create mode 100644 core/api/Cargo.toml create mode 100644 core/api/build.rs create mode 100644 core/api/config.yaml create mode 100644 core/api/protos/agent.proto create mode 100644 core/api/src/agent.rs create mode 100644 core/api/src/api.rs create mode 100644 core/api/src/main.rs create mode 100644 core/api/src/mod.rs diff --git a/core/api/Cargo.toml b/core/api/Cargo.toml new file mode 100644 index 0000000..538f802 --- /dev/null +++ b/core/api/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "agent-api" +version = "0.1.0" +edition = "2021" + +[dependencies] +anyhow = "1.0.98" +prost = "0.14.1" +tokio = { version = "1.47.0", features = ["full"] } +tonic = "0.14.0" +tonic-prost = "0.14.0" +tracing = "0.1.41" +aya = "0.13.1" +identity = { path = "../src/components/identity" } +tonic-reflection = "0.14.0" +tonic-build = "0.14.0" +dotenv = "0.15.0" + +[build-dependencies] +tonic-build = "0.14.0" +tonic-prost-build = "0.14.0" + + +[[bin]] +name = "agent-api" +path = "src/main.rs" diff --git a/core/api/build.rs b/core/api/build.rs new file mode 100644 index 0000000..b81e83f --- /dev/null +++ b/core/api/build.rs @@ -0,0 +1,17 @@ +use std::env; +use std::path::PathBuf; +use tonic_prost_build::configure; + +fn main() -> Result<(), Box> { + let proto_file = "protos/agent.proto"; + let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap()); + + configure() + .build_client(true) + .build_server(true) + .file_descriptor_set_path(out_dir.join("agent_api_descriptor.bin")) + .out_dir("./src") + .compile_protos(&[proto_file], &["proto"])?; + + Ok(()) +} diff --git a/core/api/config.yaml b/core/api/config.yaml new file mode 100644 index 0000000..337f8f3 --- /dev/null +++ b/core/api/config.yaml @@ -0,0 +1,131 @@ +default: + base_dir: "/etc/edgemesh" + config_file: "/etc/edgemesh/config-file" + edgemesh_agent_config_name: "edgemesh-agent.yaml" + edgemesh_gateway_config_name: "edgemesh-gateway.yaml" + + edgemesh_proxy_module_name: "EdgeProxy" + edgemesh_gateway_module_name: "EdgeGateway" + edgemesh_tunnel_module_name: "EdgeTunnel" + edgemesh_cni_module_name: "EdgeCNI" + + bridge_device_name: "edgemesh0" + bridge_device_ip: "169.254.96.16" + tun_device_name: "edge_tun0" + + temp_kube_config_path: "kubeconfig" + temp_core_file_path: "corefile" + meta_server_address: "http://127.0.0.1:10550" + meta_server_cert_dir: "/etc/edgemesh/metaserver/" + meta_server_ca_file: "/etc/edgemesh/metaserver/rootCA.crt" + meta_server_cert_file: "/etc/edgemesh/metaserver/server.crt" + meta_server_key_file: "/etc/edgemesh/metaserver/server.key" + + cloud_mode: "CloudMode" + manual_mode: "ManualMode" + kubeapi: + master: "127.0.0.1:54616" + content_type: "application/vnd.kubernetes.protobuf" + qps: 50 + burst: 100 + kube_config: "~/.kube/config" + meta_server: null + delete_kube_config: false + edge_dns: + edge_mode: "EdgeMode" + edge_mode_enable: true + module_name: "EdgeDNS" + enable: true + listen_interface: + listen_port: 5353 + cache_dns: + enable: true + auto_detect: true + upstream_servers: #will be delete in the next update + cache_ttl: 20 + proxy: + enable: true + listen_interface: + service_filter_mode: + filter_if_label_exists_mode: "FilterIfLabelExists" + filter_if_label_doesn_not_exists_mode: "FilterIfLabelDoesNotExists" + loadbalancer_caller: + proxy_caller: "ProxyCaller" + gateway_caller: "GatewayCaller" + discovery_type: + mdns_discovery: "MDNS" + dht_discovery: "DHT" + edgeCNI: + enable: true + encap_ip: "192.168.1.1" + tun_mode: 0 + mesh_cidr_config: null + + empty_node_name: "EMPTY_NODE_NAME" + empty_pod_name: "EMPTY_POD_NAME" + +v1: + base_dir: "/etc/edgemesh" + config_file: "/etc/edgemesh/config-file" + edgemesh_agent_config_name: "edgemesh-agent.yaml" + edgemesh_gateway_config_name: "edgemesh-gateway.yaml" + + edgemesh_proxy_module_name: "EdgeProxy" + edgemesh_gateway_module_name: "EdgeGateway" + edgemesh_tunnel_module_name: "EdgeTunnel" + edgemesh_cni_module_name: "EdgeCNI" + + bridge_device_name: "edgemesh0" + bridge_device_ip: "169.254.96.16" + tun_device_name: "edge_tun0" + + temp_kube_config_path: "kubeconfig" + temp_core_file_path: "corefile" + meta_server_address: "http://127.0.0.1:10550" + meta_server_cert_dir: "/etc/edgemesh/metaserver/" + meta_server_ca_file: "/etc/edgemesh/metaserver/rootCA.crt" + meta_server_cert_file: "/etc/edgemesh/metaserver/server.crt" + meta_server_key_file: "/etc/edgemesh/metaserver/server.key" + + cloud_mode: "CloudMode" + manual_mode: "ManualMode" + kubeapi: + master: "127.0.0.1:54616" + content_type: "application/vnd.kubernetes.protobuf" + qps: 50 + burst: 100 + kube_config: "~/.kube/config" + meta_server: null + delete_kube_config: false + edge_dns: + edge_mode: "EdgeMode" + edge_mode_enable: true + module_name: "EdgeDNS" + enable: true + listen_interface: + listen_port: 53 + cache_dns: + enable: true + auto_detect: true + upstream_servers: #will be delete in the next update + cache_ttl: 20 + proxy: + enable: true + listen_interface: "lo" + service_filter_mode: + filter_if_label_exists_mode: "FilterIfLabelExists" + filter_if_label_doesn_not_exists_mode: "FilterIfLabelDoesNotExists" + loadbalancer_caller: + proxy_caller: "ProxyCaller" + gateway_caller: "GatewayCaller" + discovery_type: + mdns_discovery: "MDNS" + dht_discovery: "DHT" + edgeCNI: + enable: true + encap_ip: "192.168.1.1" + tun_mode: 0 + mesh_cidr_config: null + + empty_node_name: "EMPTY_NODE_NAME" + empty_pod_name: "EMPTY_POD_NAME" diff --git a/core/api/protos/agent.proto b/core/api/protos/agent.proto new file mode 100644 index 0000000..f88dd33 --- /dev/null +++ b/core/api/protos/agent.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; +package agent; + +message RequestActiveConnections{ + optional string pod_ip = 2 ; +} +message ActiveConnectionResponse{ + string status = 1; +} + +//declare agent api +service Agent{ + //active connections endpoint + rpc ActiveConnections(RequestActiveConnections) returns (ActiveConnectionResponse); +} + diff --git a/core/api/src/agent.rs b/core/api/src/agent.rs new file mode 100644 index 0000000..9a8b17b --- /dev/null +++ b/core/api/src/agent.rs @@ -0,0 +1,314 @@ +// This file is @generated by prost-build. +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct RequestActiveConnections { + #[prost(string, optional, tag = "2")] + pub pod_ip: ::core::option::Option<::prost::alloc::string::String>, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ActiveConnectionResponse { + #[prost(string, tag = "1")] + pub status: ::prost::alloc::string::String, +} +/// Generated client implementations. +pub mod agent_client { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + /// declare agent api + #[derive(Debug, Clone)] + pub struct AgentClient { + inner: tonic::client::Grpc, + } + impl AgentClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl AgentClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> AgentClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + std::marker::Send + std::marker::Sync, + { + AgentClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// active connections endpoint + pub async fn active_connections( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/agent.Agent/ActiveConnections", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("agent.Agent", "ActiveConnections")); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +pub mod agent_server { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with AgentServer. + #[async_trait] + pub trait Agent: std::marker::Send + std::marker::Sync + 'static { + /// active connections endpoint + async fn active_connections( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + /// declare agent api + #[derive(Debug)] + pub struct AgentServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + impl AgentServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for AgentServer + where + T: Agent, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + "/agent.Agent/ActiveConnections" => { + #[allow(non_camel_case_types)] + struct ActiveConnectionsSvc(pub Arc); + impl< + T: Agent, + > tonic::server::UnaryService + for ActiveConnectionsSvc { + type Response = super::ActiveConnectionResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::active_connections(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ActiveConnectionsSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + let mut response = http::Response::new( + tonic::body::Body::default(), + ); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) + }) + } + } + } + } + impl Clone for AgentServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "agent.Agent"; + impl tonic::server::NamedService for AgentServer { + const NAME: &'static str = SERVICE_NAME; + } +} diff --git a/core/api/src/api.rs b/core/api/src/api.rs new file mode 100644 index 0000000..78c3c3d --- /dev/null +++ b/core/api/src/api.rs @@ -0,0 +1,86 @@ +#![allow(warnings)] +use anyhow::Context; +use prost::bytes::BytesMut; +use std::{ + collections::HashMap, + fs, string, + sync::{atomic::AtomicBool, Arc, Mutex}, +}; +use tonic::{Request, Response, Status}; + +use aya::{ + maps::{perf::PerfEventArrayBuffer, Map, MapData, PerfEventArray}, + util::online_cpus, + Bpf, +}; +use identity::helpers::display_events; +use identity::map_handlers::init_bpf_maps; +use std::path::Path; +use std::result::Result::Ok; +use tonic::async_trait; + +// * contains agent api configuration +use crate::agent::{agent_server::Agent, ActiveConnectionResponse, RequestActiveConnections}; + +#[derive(Debug)] +pub struct AgentApi { + name: String, + bpf: Arc>, +} + +const BPF_PATH: &str = "BPF_PATH"; + +//initialize a default trait for AgentApi. Loads a name and a bpf istance. +//this trait is essential for init the Agent. +impl Default for AgentApi { + fn default() -> Self { + let bpf_path = std::env::var(BPF_PATH).context("BPF_PATH variable not found").unwrap(); + let data = fs::read(Path::new(&bpf_path)).context("Cannot load load from path").unwrap(); + + AgentApi { + name: "CortexFlow-Agent".to_string(), + bpf: Arc::new(Mutex::new(Bpf::load(&data).unwrap())), + } + } +} +//TODO: implement a trait that inizialize init_bpf_maps function + +#[async_trait] +impl Agent for AgentApi { + async fn active_connections( + &self, + request: Request, + ) -> Result, Status> { + //read request + let req = request.into_inner(); + + //initialize maps: + let bpf_maps = init_bpf_maps(Arc::clone(&self.bpf)).unwrap(); + + let mut net_events_buffer = Vec::new(); + + //maps are enumerated 0: events map 1: veth events map + let mut events_array = PerfEventArray::try_from(bpf_maps.0).unwrap(); + + //scan the cpus + for cpu_id in online_cpus() + .map_err(|e| anyhow::anyhow!("Error {:?}", e)) + .unwrap() + { + let net_events_buf: PerfEventArrayBuffer = + events_array.open(cpu_id, None).unwrap(); + net_events_buffer.push(net_events_buf); + } + let mut events_buffers = vec![BytesMut::with_capacity(1024); online_cpus().iter().len()]; + + let running = Arc::new(AtomicBool::new(true)); + + display_events(net_events_buffer, running, events_buffers); + + Ok(Response::new(ActiveConnectionResponse { + status: "success".to_string(), + })) + } +} + +//TODO: add server inizialization diff --git a/core/api/src/main.rs b/core/api/src/main.rs new file mode 100644 index 0000000..ca1ed4b --- /dev/null +++ b/core/api/src/main.rs @@ -0,0 +1,48 @@ +// module imports +use tonic::transport::{Error, Server}; + +mod agent; +mod api; + +mod agent_proto { + use tonic::include_file_descriptor_set; + + pub(crate) const AGENT_DESCRIPTOR: &[u8] = include_file_descriptor_set!("agent_api_descriptor"); +} + +use crate::agent::agent_server::AgentServer; +use crate::api::AgentApi; //api implementations //from tonic. generated from agent.proto + +use tokio::main; + +#[main] +async fn main() -> Result<(), Error> { + let address = "127.0.0.1:9090".parse().unwrap(); + let api = AgentApi::default(); + + match tonic_reflection::server::Builder::configure() + .register_encoded_file_descriptor_set(agent_proto::AGENT_DESCRIPTOR) + .build_v1() + { + Ok(reflection_server) => { + print!("reflection server started correctly"); + match Server::builder() + .add_service(AgentServer::new(api)) + .add_service(reflection_server) + .serve(address) + .await + { + Ok(_) => println!("Server started with no errors"), + Err(e) => eprintln!( + "An error occured during the Server::builder processe. Error {}", + e + ), + } + } + Err(e) => eprintln!( + "An error occured during the starting of the reflection server. Error {}", + e + ), + } + Ok(()) +} diff --git a/core/api/src/mod.rs b/core/api/src/mod.rs new file mode 100644 index 0000000..2b7d4f6 --- /dev/null +++ b/core/api/src/mod.rs @@ -0,0 +1,2 @@ +pub mod api; +pub mod agent; \ No newline at end of file From ee8a3ec61c46d5f0ca3448ddc72da770b997bf4e Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Sat, 2 Aug 2025 00:43:02 +0200 Subject: [PATCH 04/33] [#57]: removed old client crate (has been replaced with the api crate) --- core/src/client/Cargo.toml | 43 ---------- core/src/client/Dockerfile | 43 ---------- core/src/client/client-build.sh | 15 ---- core/src/client/config.yaml | 131 ------------------------------ core/src/client/src/client.rs | 91 --------------------- core/src/client/src/main.rs | 47 ----------- core/src/client/src/mod.rs | 2 - core/src/client/src/validation.rs | 54 ------------ 8 files changed, 426 deletions(-) delete mode 100644 core/src/client/Cargo.toml delete mode 100644 core/src/client/Dockerfile delete mode 100755 core/src/client/client-build.sh delete mode 100644 core/src/client/config.yaml delete mode 100644 core/src/client/src/client.rs delete mode 100644 core/src/client/src/main.rs delete mode 100644 core/src/client/src/mod.rs delete mode 100644 core/src/client/src/validation.rs diff --git a/core/src/client/Cargo.toml b/core/src/client/Cargo.toml deleted file mode 100644 index b891772..0000000 --- a/core/src/client/Cargo.toml +++ /dev/null @@ -1,43 +0,0 @@ -[package] -name = "client" -version = "0.1.0" -edition = "2021" - -[dependencies] -actix-web = "4.9.0" -clap = "4.5.21" -tokio = { version = "1", features = ["full"] } -tracing = "0.1.40" -futures = "0.3.31" -anyhow = "1.0.93" -schemas = "0.4.0" -yaml-rust2 = "0.10.3" -kube = { version = "1.1.0", features = ["runtime", "derive", "ws"]} -k8s-openapi = { version = "0.25.0", features = ["latest"] } -serde_json = "1.0.133" -tokio-util = { version = "0.7.8", features = ["io"] } -tokio-stream = { version = "0.1.9", features = ["net"] } -tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } -serde = { version = "1.0", features = ["derive"] } -hyper-util = "0.1.10" -tower = "0.5.1" -ipnet = "2.10.1" -iptables = "0.5.2" -itertools = "0.14.0" -libc = "0.2.164" -libloading = "0.8.5" -libp2p = "0.56.0" -serde_yaml = "0.9.34" -pnet = "0.35.0" -bytes = "1.9.0" -prost = "0.14.1" -rdkafka = "0.38.0" -trust-dns-server = "0.23.2" -dirs = "6.0.0" - -[dependencies.shared] -path = "../shared" - -[[bin]] -name = "client" -path = "src/main.rs" diff --git a/core/src/client/Dockerfile b/core/src/client/Dockerfile deleted file mode 100644 index 10b468d..0000000 --- a/core/src/client/Dockerfile +++ /dev/null @@ -1,43 +0,0 @@ -# Phase 1: Build image -FROM rust:1.83 AS builder - -# Set working directory -WORKDIR /usr/src/app - -# First, create the shared project structure -WORKDIR /usr/src/app/shared -COPY .shared/Cargo.toml . -COPY .shared/src ./src - -# Then create the client project structure -WORKDIR /usr/src/app/client -COPY Cargo.toml . -COPY src ./src -COPY config.yaml . - - -# Build the project -RUN cargo build --release - -# Phase 2: Create final image -FROM ubuntu:22.04 - -# Install runtime dependencies -RUN apt-get update && apt-get install -y \ - ca-certificates \ - && rm -rf /var/lib/apt/lists/* - -# Create directory for the client -WORKDIR /usr/src/cortexbrain-client - -# Copy the binary from builder -COPY --from=builder /usr/src/app/client/target/release/client /usr/local/bin/cortexflow-client - -# Copy config file -COPY config.yaml /usr/src/cortexbrain-client/config.yaml - -# Set config path environment variable -ENV CONFIG_PATH="/usr/src/cortexbrain-client/config.yaml" - -# Set the client execution command -CMD ["cortexflow-client"] diff --git a/core/src/client/client-build.sh b/core/src/client/client-build.sh deleted file mode 100755 index 737c188..0000000 --- a/core/src/client/client-build.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# Create temporary shared directory -mkdir -p .shared - -# Copy shared files -cp -r ../shared/src .shared/ -cp -r ../shared/Cargo.toml .shared/ - - -# Run docker build -docker build -t cortexflow-client:0.0.1 . - -# Cleanup -rm -rf .shared \ No newline at end of file diff --git a/core/src/client/config.yaml b/core/src/client/config.yaml deleted file mode 100644 index 337f8f3..0000000 --- a/core/src/client/config.yaml +++ /dev/null @@ -1,131 +0,0 @@ -default: - base_dir: "/etc/edgemesh" - config_file: "/etc/edgemesh/config-file" - edgemesh_agent_config_name: "edgemesh-agent.yaml" - edgemesh_gateway_config_name: "edgemesh-gateway.yaml" - - edgemesh_proxy_module_name: "EdgeProxy" - edgemesh_gateway_module_name: "EdgeGateway" - edgemesh_tunnel_module_name: "EdgeTunnel" - edgemesh_cni_module_name: "EdgeCNI" - - bridge_device_name: "edgemesh0" - bridge_device_ip: "169.254.96.16" - tun_device_name: "edge_tun0" - - temp_kube_config_path: "kubeconfig" - temp_core_file_path: "corefile" - meta_server_address: "http://127.0.0.1:10550" - meta_server_cert_dir: "/etc/edgemesh/metaserver/" - meta_server_ca_file: "/etc/edgemesh/metaserver/rootCA.crt" - meta_server_cert_file: "/etc/edgemesh/metaserver/server.crt" - meta_server_key_file: "/etc/edgemesh/metaserver/server.key" - - cloud_mode: "CloudMode" - manual_mode: "ManualMode" - kubeapi: - master: "127.0.0.1:54616" - content_type: "application/vnd.kubernetes.protobuf" - qps: 50 - burst: 100 - kube_config: "~/.kube/config" - meta_server: null - delete_kube_config: false - edge_dns: - edge_mode: "EdgeMode" - edge_mode_enable: true - module_name: "EdgeDNS" - enable: true - listen_interface: - listen_port: 5353 - cache_dns: - enable: true - auto_detect: true - upstream_servers: #will be delete in the next update - cache_ttl: 20 - proxy: - enable: true - listen_interface: - service_filter_mode: - filter_if_label_exists_mode: "FilterIfLabelExists" - filter_if_label_doesn_not_exists_mode: "FilterIfLabelDoesNotExists" - loadbalancer_caller: - proxy_caller: "ProxyCaller" - gateway_caller: "GatewayCaller" - discovery_type: - mdns_discovery: "MDNS" - dht_discovery: "DHT" - edgeCNI: - enable: true - encap_ip: "192.168.1.1" - tun_mode: 0 - mesh_cidr_config: null - - empty_node_name: "EMPTY_NODE_NAME" - empty_pod_name: "EMPTY_POD_NAME" - -v1: - base_dir: "/etc/edgemesh" - config_file: "/etc/edgemesh/config-file" - edgemesh_agent_config_name: "edgemesh-agent.yaml" - edgemesh_gateway_config_name: "edgemesh-gateway.yaml" - - edgemesh_proxy_module_name: "EdgeProxy" - edgemesh_gateway_module_name: "EdgeGateway" - edgemesh_tunnel_module_name: "EdgeTunnel" - edgemesh_cni_module_name: "EdgeCNI" - - bridge_device_name: "edgemesh0" - bridge_device_ip: "169.254.96.16" - tun_device_name: "edge_tun0" - - temp_kube_config_path: "kubeconfig" - temp_core_file_path: "corefile" - meta_server_address: "http://127.0.0.1:10550" - meta_server_cert_dir: "/etc/edgemesh/metaserver/" - meta_server_ca_file: "/etc/edgemesh/metaserver/rootCA.crt" - meta_server_cert_file: "/etc/edgemesh/metaserver/server.crt" - meta_server_key_file: "/etc/edgemesh/metaserver/server.key" - - cloud_mode: "CloudMode" - manual_mode: "ManualMode" - kubeapi: - master: "127.0.0.1:54616" - content_type: "application/vnd.kubernetes.protobuf" - qps: 50 - burst: 100 - kube_config: "~/.kube/config" - meta_server: null - delete_kube_config: false - edge_dns: - edge_mode: "EdgeMode" - edge_mode_enable: true - module_name: "EdgeDNS" - enable: true - listen_interface: - listen_port: 53 - cache_dns: - enable: true - auto_detect: true - upstream_servers: #will be delete in the next update - cache_ttl: 20 - proxy: - enable: true - listen_interface: "lo" - service_filter_mode: - filter_if_label_exists_mode: "FilterIfLabelExists" - filter_if_label_doesn_not_exists_mode: "FilterIfLabelDoesNotExists" - loadbalancer_caller: - proxy_caller: "ProxyCaller" - gateway_caller: "GatewayCaller" - discovery_type: - mdns_discovery: "MDNS" - dht_discovery: "DHT" - edgeCNI: - enable: true - encap_ip: "192.168.1.1" - tun_mode: 0 - mesh_cidr_config: null - - empty_node_name: "EMPTY_NODE_NAME" - empty_pod_name: "EMPTY_POD_NAME" diff --git a/core/src/client/src/client.rs b/core/src/client/src/client.rs deleted file mode 100644 index f30152d..0000000 --- a/core/src/client/src/client.rs +++ /dev/null @@ -1,91 +0,0 @@ -/* Contains the Client configuration */ -#[allow(unused_imports)] - -use anyhow::{anyhow, Error, Result}; -use k8s_openapi::api::core::v1::Pod; -use kube::api::ListParams; -use kube::{Api, Client as KubeClient}; -use shared::default_api_config::{ApiConfig,ConfigType}; - - -use tracing::info; - -#[derive(Clone)] -pub struct Client { - config: ApiConfig, - pub kube_client: KubeClient, -} - -impl Client { - //default config_type (ConfigType::Default) - pub async fn new_client(config_path: &str,config_type: Option) -> Result { - let config_type = config_type.unwrap_or(ConfigType::Default); //use default if config_type ==none - //let config_path = "./src/client/config.yaml"; - let api_config = ApiConfig::load_from_file(config_path, config_type)?; - let kube_client = KubeClient::try_default().await?; - Ok(Client { - config: api_config, - kube_client, - }) - } - - pub fn get_client(&self) -> &KubeClient { - &self.kube_client - } - - pub async fn list_pods(&self, namespace: &str) -> Result, Error> { - let pods: Api = Api::namespaced(self.kube_client.clone(), namespace); - let lp = ListParams::default(); - let pod_list = pods.list(&lp).await?; - if pod_list.items.is_empty() { - return Err(anyhow!("No pods found")); - } - Ok(pod_list.items) - } - - pub fn print_config(&self) { - info!("------- E D G E M E S H N E T W O R K -------\n"); - info!("Base dir: {}", self.config.base_dir); - info!("Config File: {}", self.config.config_file); - info!( - "Edgemesh Agent config name: {}", - self.config.edgemesh_agent_config_name - ); - info!( - "Edgemesh Gateway config name: {}", - self.config.edgemesh_gateway_config_name - ); - info!( - "Edgemesh Proxy Module Name: {}", - self.config.edgemesh_proxy_module_name - ); - info!( - "Edgemesh Tunnel Module Name: {}", - self.config.edgemesh_tunnel_module_name - ); - info!( - "Edgemesh CNI Module Name: {}", - self.config.edgemesh_cni_module_name - ); - info!("Bridge Device: {}", self.config.bridge_device_name); - info!("Bridge Device IP: {}", self.config.bridge_device_ip); - info!("TUN Device Name: {}", self.config.tun_device_name); - info!( - "Temp Kube Config Path: {}", - self.config.temp_kube_config_path - ); - info!("Temp Core File Path: {}", self.config.temp_core_file_path); - info!("Meta Server Address: {}", self.config.meta_server_address); - info!("Meta Server Cert Dir: {}", self.config.meta_server_cert_dir); - info!("Meta Server CA File: {}", self.config.meta_server_ca_file); - info!( - "Meta Server Cert File: {}", - self.config.meta_server_cert_file - ); - info!("Meta Server Key File: {}", self.config.meta_server_key_file); - info!("Cloud Mode: {}", self.config.cloud_mode); - info!("Manual Mode: {}", self.config.manual_mode); - info!("Empty Node Name: {}", self.config.empty_node_name); - info!("Empty Pod Name: {}", self.config.empty_pod_name); - } -} diff --git a/core/src/client/src/main.rs b/core/src/client/src/main.rs deleted file mode 100644 index 6c1d9b2..0000000 --- a/core/src/client/src/main.rs +++ /dev/null @@ -1,47 +0,0 @@ -// module imports -mod client; - -use crate::client::Client; -use shared::default_api_config::ConfigType; -use anyhow::{Context, Result}; -use shared::default_api_config::ApiConfig; -use std::sync::Arc; -use tracing::info; -use tracing_subscriber::fmt::format::FmtSpan; -use tracing_subscriber::EnvFilter; - -const CONFIG_PATH: &str = "CONFIG_PATH"; - -#[tokio::main] -async fn main() -> Result<(), anyhow::Error> { - //tracing subscriber for logging purposes - tracing_subscriber::fmt() - .with_max_level(tracing::Level::INFO) - .with_target(false) - .with_level(true) - .with_span_events(FmtSpan::NONE) - .without_time() - .with_file(false) - .pretty() - .with_env_filter(EnvFilter::new("info")) - .with_line_number(false) - .init(); - - // Load the configuration from the file - - let config_path =std::env::var(CONFIG_PATH).context("CONFIG_PATH enviroment variable required")?; - if !std::path::Path::new(&config_path).exists() { - return Err(anyhow::anyhow!("Configuration file not found at {}", config_path)); - } - - info!("Using CONFIG_PATH = {}", &config_path); - let configuration = ApiConfig::load_from_file(&config_path, ConfigType::Default).context("Failed to load the API Configuration")?; - - // Create your client instance using the custom Client struct - let client = Arc::new(Client::new_client(&config_path,Some(ConfigType::Default)).await?); - - // Print the client configuration - Client::print_config(&client); - - Ok(()) -} diff --git a/core/src/client/src/mod.rs b/core/src/client/src/mod.rs deleted file mode 100644 index 3f4b087..0000000 --- a/core/src/client/src/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod client; -pub mod validation; \ No newline at end of file diff --git a/core/src/client/src/validation.rs b/core/src/client/src/validation.rs deleted file mode 100644 index aedb6a1..0000000 --- a/core/src/client/src/validation.rs +++ /dev/null @@ -1,54 +0,0 @@ - -/*Contains a function to validate and check the fields before applying it in the Config */ -/* -Contains: - - validators: - agent validator - gateway validator - kubeapi validator - edge proxy validator - edge tunnel validator - edge cni validator - - utils: - is_valid_address - is_valid_transport - - -*/ -#[allow(unused_imports)] - - -pub fn validate_agent_configuration(){ - //TODO: implement validate agent configuration -} - -pub fn validate_gateway_configuration(){ - //TODO: implement validate gateway configuration -} -pub fn validate_kube_api_configuration(){ - //TODO: implement validate kubapi configuration -} - -pub fn validate_edge_proxy(){ - //TODO: iomplement validate edge proxy -} - -pub fn validate_edge_tunnel(){ - //TODO: implement validate edge tunnel -} - -pub fn validate_edge_cni(){ - //TODO: implement validate edge cni -} - - -/* utils */ -pub fn is_valid_transport(){ - //TODO: implement is valid transport function -} - -pub fn is_valid_address(){ - //TODO: implement is valid address function -} \ No newline at end of file From 657971376316243976f56064f7e35f7b372432e9 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Sat, 2 Aug 2025 00:44:33 +0200 Subject: [PATCH 05/33] [#57]: better core/Cargo.toml organization. Removed wrong and useless dependencies. Removed core/build.rs (has been replaced with api/build.rs) --- core/Cargo.lock | 653 ++++++++++++++++++------------------------------ core/Cargo.toml | 44 +--- core/build.rs | 17 -- 3 files changed, 250 insertions(+), 464 deletions(-) delete mode 100644 core/build.rs diff --git a/core/Cargo.lock b/core/Cargo.lock index 1ac77c2..ca74ed6 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -49,7 +49,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rand 0.9.1", + "rand 0.9.2", "sha1", "smallvec", "tokio", @@ -105,7 +105,7 @@ dependencies = [ "futures-core", "futures-util", "mio", - "socket2", + "socket2 0.5.10", "tokio", "tracing", ] @@ -167,7 +167,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "smallvec", - "socket2", + "socket2 0.5.10", "time", "tracing", "url", @@ -200,6 +200,24 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +[[package]] +name = "agent-api" +version = "0.1.0" +dependencies = [ + "anyhow", + "aya", + "dotenv", + "identity", + "prost", + "tokio", + "tonic", + "tonic-build", + "tonic-prost", + "tonic-prost-build", + "tonic-reflection", + "tracing", +] + [[package]] name = "ahash" version = "0.8.12" @@ -311,16 +329,6 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" -[[package]] -name = "assert-json-diff" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" -dependencies = [ - "serde", - "serde_json", -] - [[package]] name = "assert_matches" version = "1.5.0" @@ -384,6 +392,51 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "axum" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" +dependencies = [ + "axum-core", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" +dependencies = [ + "bytes", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", +] + [[package]] name = "aya" version = "0.13.1" @@ -405,7 +458,7 @@ dependencies = [ [[package]] name = "aya-ebpf" version = "0.1.1" -source = "git+https://github.com/aya-rs/aya#35332f2288b0bbb8981233ae464715ea9217b081" +source = "git+https://github.com/aya-rs/aya#44ec978bd35c5af484b73c273b5bd18886033b5a" dependencies = [ "aya-ebpf-bindings", "aya-ebpf-cty", @@ -416,7 +469,7 @@ dependencies = [ [[package]] name = "aya-ebpf-bindings" version = "0.1.1" -source = "git+https://github.com/aya-rs/aya#35332f2288b0bbb8981233ae464715ea9217b081" +source = "git+https://github.com/aya-rs/aya#44ec978bd35c5af484b73c273b5bd18886033b5a" dependencies = [ "aya-ebpf-cty", ] @@ -424,12 +477,12 @@ dependencies = [ [[package]] name = "aya-ebpf-cty" version = "0.2.2" -source = "git+https://github.com/aya-rs/aya#35332f2288b0bbb8981233ae464715ea9217b081" +source = "git+https://github.com/aya-rs/aya#44ec978bd35c5af484b73c273b5bd18886033b5a" [[package]] name = "aya-ebpf-macros" version = "0.1.1" -source = "git+https://github.com/aya-rs/aya#35332f2288b0bbb8981233ae464715ea9217b081" +source = "git+https://github.com/aya-rs/aya#44ec978bd35c5af484b73c273b5bd18886033b5a" dependencies = [ "proc-macro2", "proc-macro2-diagnostics", @@ -463,7 +516,7 @@ dependencies = [ [[package]] name = "aya-log-common" version = "0.1.15" -source = "git+https://github.com/aya-rs/aya#35332f2288b0bbb8981233ae464715ea9217b081" +source = "git+https://github.com/aya-rs/aya#44ec978bd35c5af484b73c273b5bd18886033b5a" dependencies = [ "num_enum", ] @@ -471,7 +524,7 @@ dependencies = [ [[package]] name = "aya-log-ebpf" version = "0.1.1" -source = "git+https://github.com/aya-rs/aya#35332f2288b0bbb8981233ae464715ea9217b081" +source = "git+https://github.com/aya-rs/aya#44ec978bd35c5af484b73c273b5bd18886033b5a" dependencies = [ "aya-ebpf", "aya-log-common 0.1.15 (git+https://github.com/aya-rs/aya)", @@ -481,7 +534,7 @@ dependencies = [ [[package]] name = "aya-log-ebpf-macros" version = "0.1.0" -source = "git+https://github.com/aya-rs/aya#35332f2288b0bbb8981233ae464715ea9217b081" +source = "git+https://github.com/aya-rs/aya#44ec978bd35c5af484b73c273b5bd18886033b5a" dependencies = [ "aya-log-common 0.1.15 (git+https://github.com/aya-rs/aya)", "aya-log-parser", @@ -493,7 +546,7 @@ dependencies = [ [[package]] name = "aya-log-parser" version = "0.1.13" -source = "git+https://github.com/aya-rs/aya#35332f2288b0bbb8981233ae464715ea9217b081" +source = "git+https://github.com/aya-rs/aya#44ec978bd35c5af484b73c273b5bd18886033b5a" dependencies = [ "aya-log-common 0.1.15 (git+https://github.com/aya-rs/aya)", ] @@ -515,7 +568,7 @@ dependencies = [ [[package]] name = "aya-tool" version = "0.1.0" -source = "git+https://github.com/aya-rs/aya#35332f2288b0bbb8981233ae464715ea9217b081" +source = "git+https://github.com/aya-rs/aya#44ec978bd35c5af484b73c273b5bd18886033b5a" dependencies = [ "anyhow", "bindgen", @@ -656,9 +709,9 @@ dependencies = [ [[package]] name = "bytemuck_derive" -version = "1.9.3" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" +checksum = "441473f2b4b0459a68628c744bc61d23e730fb00128b841d30fa4bb3972257e4" dependencies = [ "proc-macro2", "quote", @@ -688,9 +741,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.29" +version = "1.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" +checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" dependencies = [ "jobserver", "libc", @@ -779,43 +832,6 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" -[[package]] -name = "client" -version = "0.1.0" -dependencies = [ - "actix-web", - "anyhow", - "bytes", - "clap", - "dirs", - "futures", - "hyper-util", - "ipnet", - "iptables", - "itertools 0.14.0", - "k8s-openapi", - "kube", - "libc", - "libloading", - "libp2p", - "pnet", - "prost", - "rdkafka", - "schemas", - "serde", - "serde_json", - "serde_yaml", - "shared", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tracing", - "tracing-subscriber", - "trust-dns-server", - "yaml-rust2", -] - [[package]] name = "colorchoice" version = "1.0.4" @@ -869,40 +885,6 @@ dependencies = [ [[package]] name = "core" version = "0.1.0" -dependencies = [ - "actix-web", - "anyhow", - "bytes", - "clap", - "dirs", - "futures", - "hyper-util", - "ipnet", - "iptables", - "itertools 0.14.0", - "k8s-openapi", - "kube", - "libc", - "libloading", - "libp2p", - "pnet", - "prost", - "prost-build", - "reqwest", - "schemas", - "serde", - "serde_json", - "serde_yaml", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tracing", - "tracing-subscriber", - "trust-dns-server", - "wiremock", - "yaml-rust2", -] [[package]] name = "core-error" @@ -959,9 +941,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -984,9 +966,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.2.0" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373b7c5dbd637569a2cca66e8d66b8c446a1e7bf064ea321d265d7b3dfe7c97e" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", "cpufeatures", @@ -1084,24 +1066,6 @@ dependencies = [ "syn", ] -[[package]] -name = "deadpool" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb84100978c1c7b37f09ed3ce3e5f843af02c2a2c431bae5b19230dad2c1b490" -dependencies = [ - "async-trait", - "deadpool-runtime", - "num_cpus", - "tokio", -] - -[[package]] -name = "deadpool-runtime" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b" - [[package]] name = "der" version = "0.7.10" @@ -1185,6 +1149,12 @@ dependencies = [ "syn", ] +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + [[package]] name = "drain" version = "0.1.2" @@ -1196,9 +1166,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "ed25519" @@ -1334,9 +1304,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fiat-crypto" -version = "0.3.0" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64cd1e32ddd350061ae6edb1b082d7c54915b5c672c389143b9a63403a109f24" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "fixedbitset" @@ -1366,21 +1336,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "form_urlencoded" version = "1.2.1" @@ -1790,7 +1745,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -1869,29 +1824,12 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper 1.6.0", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - [[package]] name = "hyper-util" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ - "base64 0.22.1", "bytes", "futures-channel", "futures-core", @@ -1899,16 +1837,12 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "hyper 1.6.0", - "ipnet", "libc", - "percent-encoding", "pin-project-lite", - "socket2", - "system-configuration", + "socket2 0.6.0", "tokio", "tower-service", "tracing", - "windows-registry", ] [[package]] @@ -2068,9 +2002,9 @@ dependencies = [ [[package]] name = "io-uring" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" dependencies = [ "bitflags", "cfg-if", @@ -2103,16 +2037,6 @@ dependencies = [ "regex", ] -[[package]] -name = "iri-string" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -2383,7 +2307,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.53.2", + "windows-targets 0.53.3", ] [[package]] @@ -2495,9 +2419,9 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.4" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" +checksum = "360e552c93fa0e8152ab463bc4c4837fce76a225df11dfaeea66c313de5e61f7" dependencies = [ "bitflags", "libc", @@ -2613,6 +2537,12 @@ dependencies = [ "regex-automata 0.1.10", ] +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + [[package]] name = "memchr" version = "2.7.5" @@ -2776,23 +2706,6 @@ dependencies = [ "unsigned-varint 0.7.2", ] -[[package]] -name = "native-tls" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework 2.11.1", - "security-framework-sys", - "tempfile", -] - [[package]] name = "network-types" version = "0.0.8" @@ -2921,50 +2834,12 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" -[[package]] -name = "openssl" -version = "0.10.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "openssl-probe" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" -[[package]] -name = "openssl-sys" -version = "0.9.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "option-ext" version = "0.2.0" @@ -3250,9 +3125,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.35" +version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061c1221631e079b26479d25bbf2275bfe5917ae8419cd7e34f13bfc2aa7539a" +checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" dependencies = [ "proc-macro2", "syn", @@ -3328,6 +3203,8 @@ dependencies = [ "prettyplease", "prost", "prost-types", + "pulldown-cmark", + "pulldown-cmark-to-cmark", "regex", "syn", "tempfile", @@ -3404,6 +3281,26 @@ dependencies = [ "which 8.0.0", ] +[[package]] +name = "pulldown-cmark" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" +dependencies = [ + "bitflags", + "memchr", + "unicase", +] + +[[package]] +name = "pulldown-cmark-to-cmark" +version = "21.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5b6a0769a491a08b31ea5c62494a8f144ee0987d86d670a8af4df1e1b7cde75" +dependencies = [ + "pulldown-cmark", +] + [[package]] name = "quick-protobuf" version = "0.8.1" @@ -3441,9 +3338,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", @@ -3519,9 +3416,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.13" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ "bitflags", ] @@ -3587,46 +3484,6 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" -[[package]] -name = "reqwest" -version = "0.12.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-core", - "h2 0.4.11", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.6.0", - "hyper-rustls", - "hyper-tls", - "hyper-util", - "js-sys", - "log", - "mime", - "native-tls", - "percent-encoding", - "pin-project-lite", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-native-tls", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "ring" version = "0.17.14" @@ -3643,9 +3500,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -3664,15 +3521,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3917,9 +3774,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.141" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" dependencies = [ "itoa", "memchr", @@ -4074,6 +3931,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "spin" version = "0.9.8" @@ -4130,9 +3997,6 @@ name = "sync_wrapper" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] [[package]] name = "synstructure" @@ -4145,27 +4009,6 @@ dependencies = [ "syn", ] -[[package]] -name = "system-configuration" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" -dependencies = [ - "bitflags", - "core-foundation 0.9.4", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "tempfile" version = "3.20.0" @@ -4286,9 +4129,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.46.1" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" +checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" dependencies = [ "backtrace", "bytes", @@ -4299,9 +4142,9 @@ dependencies = [ "pin-project-lite", "signal-hook-registry", "slab", - "socket2", + "socket2 0.6.0", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4315,16 +4158,6 @@ dependencies = [ "syn", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.2" @@ -4429,6 +4262,88 @@ dependencies = [ "winnow 0.7.12", ] +[[package]] +name = "tonic" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308e1db96abdccdf0a9150fb69112bf6ea72640e0bd834ef0c4a618ccc8c8ddc" +dependencies = [ + "async-trait", + "axum", + "base64 0.22.1", + "bytes", + "h2 0.4.11", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "socket2 0.6.0", + "sync_wrapper", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18262cdd13dec66e8e3f2e3fe535e4b2cc706fab444a7d3678d75d8ac2557329" +dependencies = [ + "prettyplease", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tonic-prost" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d8b5b7a44512c59f5ad45e0c40e53263cbbf4426d74fe6b569e04f1d4206e9c" +dependencies = [ + "bytes", + "prost", + "tonic", +] + +[[package]] +name = "tonic-prost-build" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "114cca66d757d72422ef8cccf8be3065321860ac9fa4be73aab37a8a20a9a805" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn", + "tempfile", + "tonic-build", +] + +[[package]] +name = "tonic-reflection" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b6a72aca1cabacc0a7b61a61b6045ce0e833d773de6fb455e7737194e548977" +dependencies = [ + "prost", + "prost-types", + "tokio", + "tokio-stream", + "tonic", + "tonic-prost", +] + [[package]] name = "tower" version = "0.5.2" @@ -4437,7 +4352,9 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", + "indexmap", "pin-project-lite", + "slab", "sync_wrapper", "tokio", "tokio-util", @@ -4455,13 +4372,10 @@ dependencies = [ "base64 0.22.1", "bitflags", "bytes", - "futures-util", "http 1.3.1", "http-body 1.0.1", - "iri-string", "mime", "pin-project-lite", - "tower", "tower-layer", "tower-service", "tracing", @@ -4624,7 +4538,7 @@ dependencies = [ "http 1.3.1", "httparse", "log", - "rand 0.9.1", + "rand 0.9.2", "sha1", "thiserror 2.0.12", "utf-8", @@ -4831,19 +4745,6 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "wasm-bindgen-macro" version = "0.2.100" @@ -4876,16 +4777,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "web-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "web-time" version = "1.1.0" @@ -4942,35 +4833,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" -[[package]] -name = "windows-registry" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" -dependencies = [ - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-result" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -4995,7 +4857,7 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.2", + "windows-targets 0.53.3", ] [[package]] @@ -5016,10 +4878,11 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.2" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ + "windows-link", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -5150,30 +5013,6 @@ version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" -[[package]] -name = "wiremock" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b8b99d4cdbf36b239a9532e31fe4fb8acc38d1897c1761e161550a7dc78e6a" -dependencies = [ - "assert-json-diff", - "async-trait", - "base64 0.22.1", - "deadpool", - "futures", - "http 1.3.1", - "http-body-util", - "hyper 1.6.0", - "hyper-util", - "log", - "once_cell", - "regex", - "serde", - "serde_json", - "tokio", - "url", -] - [[package]] name = "wit-bindgen-rt" version = "0.39.0" diff --git a/core/Cargo.toml b/core/Cargo.toml index 8a9121e..766ee43 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -7,50 +7,14 @@ edition = "2021" # Rust edition, don't change members = [ "src/components/kernel", "src/components/loadbalancer", - "src/client", + "api", "src/shared", "src/components/proxy", "src/components/xdp", "src/components/maps", "src/components/conntracker", "xtask", - "src/components/identity", "src/components/metrics_tracer", "src/components/metrics", + "src/components/identity", + "src/components/metrics_tracer", + "src/components/metrics", ] - -[dependencies] -actix-web = "4.9.0" -clap = "4.5.21" -reqwest = { version = "0.12.9", features = ["json"] } -tokio = { version = "1", features = ["full"] } -tracing = "0.1.40" -futures = "0.3.31" -anyhow = "1.0.93" -schemas = "0.4.0" -yaml-rust2 = "0.10.3" -kube = { version = "1.1.0", features = ["runtime", "derive", "ws"] } -k8s-openapi = { version = "0.25.0", features = ["latest"] } -serde_json = "1.0.133" -tokio-util = { version = "0.7.8", features = ["io"] } -tokio-stream = { version = "0.1.9", features = ["net"] } -tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } -serde = { version = "1.0", features = ["derive"] } -hyper-util = "0.1.10" -tower = "0.5.1" -ipnet = "2.10.1" -iptables = "0.5.2" -itertools = "0.14.0" -libc = "0.2.164" -libloading = "0.8.5" -libp2p = "0.56.0" -serde_yaml = "0.9.34" -pnet = "0.35.0" -bytes = "1.9.0" -prost = "0.14.1" -trust-dns-server = "0.23.2" -dirs = "6.0.0" - -[dev-dependencies] -wiremock = "0.6.0" - -[build-dependencies] -prost-build = "0.14.1" diff --git a/core/build.rs b/core/build.rs deleted file mode 100644 index 4784359..0000000 --- a/core/build.rs +++ /dev/null @@ -1,17 +0,0 @@ -use std::path::Path; - -pub fn main() { - let out_dir = "src/kernel"; - prost_build::Config::new() - .out_dir(out_dir) // Specifica la directory di uscita del codice generato - .compile_protos(&["src/kernel/proxy_msg.proto"], &["src"]) - .unwrap(); - let generated_file = Path::new(out_dir).join("proxy_msg.rs"); - if generated_file.exists(){ - println!("File generated"); - } - else { - println!("error generating the file"); - } - println!("cargo:rerun-if-changed=src/kernel/proxy_msg.proto"); //compile only if the file proxy_msg.proto is changed -} From 9db0b0d35252b803a4eacc7486d1c16689b22618 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Sat, 2 Aug 2025 00:45:08 +0200 Subject: [PATCH 06/33] [#57]: removed lib.rs from core workspace --- core/src/lib.rs | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 core/src/lib.rs diff --git a/core/src/lib.rs b/core/src/lib.rs deleted file mode 100644 index 38a35b2..0000000 --- a/core/src/lib.rs +++ /dev/null @@ -1,5 +0,0 @@ -pub mod client; -pub mod kernel; -pub mod edgecni; -pub mod loadbalancer; -pub mod shared; \ No newline at end of file From f248fae2ba481da42064d98dde68364e51a6ece2 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Sat, 2 Aug 2025 21:06:44 +0200 Subject: [PATCH 07/33] [#123]: added agent dockerfile. updated core cargo.toml. added dockerignore. added agent api build script. updated build.rs --- core/.dockerignore | 7 + core/Cargo.lock | 4615 +++++---------------------------------- core/Cargo.toml | 25 +- core/agent-api-build.sh | 16 + core/api/Cargo.toml | 2 +- core/api/Dockerfile | 57 + core/api/build.rs | 2 +- core/src/main.rs | 54 - 8 files changed, 646 insertions(+), 4132 deletions(-) create mode 100644 core/.dockerignore create mode 100755 core/agent-api-build.sh create mode 100644 core/api/Dockerfile delete mode 100644 core/src/main.rs diff --git a/core/.dockerignore b/core/.dockerignore new file mode 100644 index 0000000..aa97dbc --- /dev/null +++ b/core/.dockerignore @@ -0,0 +1,7 @@ +src/components/kernel +src/components/loadbalancer +src/components/proxy +src/components/xdp +src/components/maps +src/components/xtask +src/shared \ No newline at end of file diff --git a/core/Cargo.lock b/core/Cargo.lock index ca74ed6..4792d3b 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -2,189 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "actix-codec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" -dependencies = [ - "bitflags", - "bytes", - "futures-core", - "futures-sink", - "memchr", - "pin-project-lite", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "actix-http" -version = "3.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44dfe5c9e0004c623edc65391dfd51daa201e7e30ebd9c9bedf873048ec32bc2" -dependencies = [ - "actix-codec", - "actix-rt", - "actix-service", - "actix-utils", - "base64 0.22.1", - "bitflags", - "brotli", - "bytes", - "bytestring", - "derive_more", - "encoding_rs", - "flate2", - "foldhash", - "futures-core", - "h2 0.3.27", - "http 0.2.12", - "httparse", - "httpdate", - "itoa", - "language-tags", - "local-channel", - "mime", - "percent-encoding", - "pin-project-lite", - "rand 0.9.2", - "sha1", - "smallvec", - "tokio", - "tokio-util", - "tracing", - "zstd", -] - -[[package]] -name = "actix-macros" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "actix-router" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8" -dependencies = [ - "bytestring", - "cfg-if", - "http 0.2.12", - "regex", - "regex-lite", - "serde", - "tracing", -] - -[[package]] -name = "actix-rt" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" -dependencies = [ - "futures-core", - "tokio", -] - -[[package]] -name = "actix-server" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a65064ea4a457eaf07f2fba30b4c695bf43b721790e9530d26cb6f9019ff7502" -dependencies = [ - "actix-rt", - "actix-service", - "actix-utils", - "futures-core", - "futures-util", - "mio", - "socket2 0.5.10", - "tokio", - "tracing", -] - -[[package]] -name = "actix-service" -version = "2.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f" -dependencies = [ - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "actix-utils" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" -dependencies = [ - "local-waker", - "pin-project-lite", -] - -[[package]] -name = "actix-web" -version = "4.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a597b77b5c6d6a1e1097fddde329a83665e25c5437c696a3a9a4aa514a614dea" -dependencies = [ - "actix-codec", - "actix-http", - "actix-macros", - "actix-router", - "actix-rt", - "actix-server", - "actix-service", - "actix-utils", - "actix-web-codegen", - "bytes", - "bytestring", - "cfg-if", - "cookie", - "derive_more", - "encoding_rs", - "foldhash", - "futures-core", - "futures-util", - "impl-more", - "itoa", - "language-tags", - "log", - "mime", - "once_cell", - "pin-project-lite", - "regex", - "regex-lite", - "serde", - "serde_json", - "serde_urlencoded", - "smallvec", - "socket2 0.5.10", - "time", - "tracing", - "url", -] - -[[package]] -name = "actix-web-codegen" -version = "4.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8" -dependencies = [ - "actix-router", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "addr2line" version = "0.24.2" @@ -200,37 +17,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" -[[package]] -name = "agent-api" -version = "0.1.0" -dependencies = [ - "anyhow", - "aya", - "dotenv", - "identity", - "prost", - "tokio", - "tonic", - "tonic-build", - "tonic-prost", - "tonic-prost-build", - "tonic-reflection", - "tracing", -] - -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "getrandom 0.3.3", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -240,77 +26,12 @@ dependencies = [ "memchr", ] -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - [[package]] name = "allocator-api2" version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "anstream" -version = "0.6.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.59.0", -] - [[package]] name = "anyhow" version = "1.0.98" @@ -318,16 +39,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] -name = "arraydeque" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" - -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" +name = "api" +version = "0.1.0" +dependencies = [ + "anyhow", + "aya", + "dotenv", + "identity", + "prost", + "tokio", + "tonic", + "tonic-build", + "tonic-prost", + "tonic-prost-build", + "tonic-reflection", + "tracing", +] [[package]] name = "assert_matches" @@ -335,40 +62,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" -[[package]] -name = "async-broadcast" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" -dependencies = [ - "event-listener", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "async-trait" version = "0.1.88" @@ -401,8 +94,8 @@ dependencies = [ "axum-core", "bytes", "futures-util", - "http 1.3.1", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", "itoa", "matchit", @@ -426,8 +119,8 @@ checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" dependencies = [ "bytes", "futures-core", - "http 1.3.1", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", "mime", "pin-project-lite", @@ -451,7 +144,7 @@ dependencies = [ "log", "object", "once_cell", - "thiserror 1.0.69", + "thiserror", "tokio", ] @@ -500,7 +193,7 @@ dependencies = [ "aya-log-common 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "bytes", "log", - "thiserror 1.0.69", + "thiserror", "tokio", ] @@ -559,33 +252,10 @@ checksum = "c51b96c5a8ed8705b40d655273bc4212cbbf38d4e3be2788f36306f154523ec7" dependencies = [ "bytes", "core-error", - "hashbrown 0.15.4", + "hashbrown", "log", "object", - "thiserror 1.0.69", -] - -[[package]] -name = "aya-tool" -version = "0.1.0" -source = "git+https://github.com/aya-rs/aya#44ec978bd35c5af484b73c273b5bd18886033b5a" -dependencies = [ - "anyhow", - "bindgen", - "clap", - "tempfile", - "thiserror 2.0.12", -] - -[[package]] -name = "backon" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302eaff5357a264a2c42f127ecb8bac761cf99749fc3dc95677e2743991f99e7" -dependencies = [ - "fastrand", - "gloo-timers", - "tokio", + "thiserror", ] [[package]] @@ -603,50 +273,12 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "base64ct" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" - -[[package]] -name = "bindgen" -version = "0.72.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f72209734318d0b619a5e0f5129918b848c416e122a3c4ce054e03cb87b726f" -dependencies = [ - "bitflags", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn", -] - [[package]] name = "bitflags" version = "2.9.1" @@ -654,599 +286,494 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] -name = "block-buffer" -version = "0.10.4" +name = "bytemuck" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] +checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" [[package]] -name = "brotli" -version = "8.0.1" +name = "bytes" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] -name = "brotli-decompressor" -version = "5.0.0" +name = "cfg-if" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] -name = "bs58" -version = "0.5.1" +name = "cfg_aliases" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "tinyvec", -] +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] -name = "bumpalo" -version = "3.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +name = "conntracker" +version = "0.1.0" +dependencies = [ + "aya-ebpf", + "aya-log-ebpf", + "which", +] [[package]] -name = "bytemuck" -version = "1.23.1" +name = "core-error" +version = "0.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" +checksum = "efcdb2972eb64230b4c50646d8498ff73f5128d196a90c7236eec4cbe8619b8f" dependencies = [ - "bytemuck_derive", + "version_check", ] [[package]] -name = "bytemuck_derive" -version = "1.10.0" +name = "crc32fast" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "441473f2b4b0459a68628c744bc61d23e730fb00128b841d30fa4bb3972257e4" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ - "proc-macro2", - "quote", - "syn", + "cfg-if", ] [[package]] -name = "byteorder" -version = "1.5.0" +name = "dotenv" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" [[package]] -name = "bytes" -version = "1.10.1" +name = "either" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] -name = "bytestring" -version = "1.4.0" +name = "env_home" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f" -dependencies = [ - "bytes", -] +checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" [[package]] -name = "cc" -version = "1.2.30" +name = "equivalent" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" -dependencies = [ - "jobserver", - "libc", - "shlex", -] +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] -name = "cexpr" -version = "0.6.0" +name = "errno" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ - "nom", + "libc", + "windows-sys 0.60.2", ] [[package]] -name = "cfg-if" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" +name = "fastrand" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] -name = "chrono" -version = "0.4.41" +name = "fixedbitset" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" -dependencies = [ - "num-traits", - "serde", -] +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] -name = "clang-sys" -version = "1.8.1" +name = "fnv" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading", -] +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "clap" -version = "4.5.41" +name = "foldhash" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" -dependencies = [ - "clap_builder", - "clap_derive", -] +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] -name = "clap_builder" -version = "4.5.41" +name = "futures-channel" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", + "futures-core", ] [[package]] -name = "clap_derive" -version = "4.5.41" +name = "futures-core" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] -name = "clap_lex" -version = "0.7.5" +name = "futures-sink" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] -name = "colorchoice" -version = "1.0.4" +name = "futures-task" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] -name = "concurrent-queue" -version = "2.5.0" +name = "futures-util" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "crossbeam-utils", + "futures-core", + "futures-task", + "pin-project-lite", + "pin-utils", ] [[package]] -name = "conntracker" -version = "0.1.0" +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ - "aya-ebpf", - "aya-log-ebpf", - "which 7.0.3", + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", ] [[package]] -name = "const-oid" -version = "0.9.6" +name = "gimli" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] -name = "convert_case" -version = "0.6.0" +name = "h2" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" dependencies = [ - "unicode-segmentation", + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", ] [[package]] -name = "cookie" -version = "0.16.2" +name = "hashbrown" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" dependencies = [ - "percent-encoding", - "time", - "version_check", + "allocator-api2", + "equivalent", + "foldhash", ] [[package]] -name = "core" -version = "0.1.0" +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] -name = "core-error" -version = "0.0.0" +name = "http" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efcdb2972eb64230b4c50646d8498ff73f5128d196a90c7236eec4cbe8619b8f" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ - "version_check", + "bytes", + "fnv", + "itoa", ] [[package]] -name = "core-foundation" -version = "0.9.4" +name = "http-body" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "core-foundation-sys", - "libc", + "bytes", + "http", ] [[package]] -name = "core-foundation" -version = "0.10.1" +name = "http-body-util" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ - "core-foundation-sys", - "libc", + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", ] [[package]] -name = "core-foundation-sys" -version = "0.8.7" +name = "httparse" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] -name = "core2" -version = "0.4.0" +name = "httpdate" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] -name = "cpufeatures" -version = "0.2.17" +name = "hyper" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ - "libc", + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", ] [[package]] -name = "crc32fast" -version = "1.5.0" +name = "hyper-timeout" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "cfg-if", + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", ] [[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crypto-common" -version = "0.1.6" +name = "hyper-util" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ - "generic-array", - "typenum", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "libc", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", ] [[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +name = "identity" +version = "0.1.0" dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "digest", - "fiat-crypto", - "rustc_version", - "subtle", - "zeroize", + "anyhow", + "aya", + "aya-log", + "bytemuck", + "bytes", + "libc", + "nix", + "tokio", + "tracing", + "tracing-subscriber", ] [[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" +name = "indexmap" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ - "proc-macro2", - "quote", - "syn", + "equivalent", + "hashbrown", ] [[package]] -name = "darling" -version = "0.20.11" +name = "io-uring" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core", - "quote", - "syn", -] - -[[package]] -name = "dashmap" -version = "6.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" dependencies = [ + "bitflags", "cfg-if", - "crossbeam-utils", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", -] - -[[package]] -name = "data-encoding" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" - -[[package]] -name = "data-encoding-macro" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" -dependencies = [ - "data-encoding", - "data-encoding-macro-internal", + "libc", ] [[package]] -name = "data-encoding-macro-internal" -version = "0.1.16" +name = "itertools" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ - "data-encoding", - "syn", + "either", ] [[package]] -name = "der" -version = "0.7.10" +name = "itoa" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "zeroize", -] +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] -name = "deranged" -version = "0.4.0" +name = "lazy_static" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" -dependencies = [ - "powerfmt", -] +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] -name = "derive_more" -version = "2.0.1" +name = "libc" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" -dependencies = [ - "derive_more-impl", -] +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] -name = "derive_more-impl" -version = "2.0.1" +name = "linux-raw-sys" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", -] +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] -name = "digest" -version = "0.10.7" +name = "lock_api" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ - "block-buffer", - "crypto-common", - "subtle", + "autocfg", + "scopeguard", ] [[package]] -name = "dirs" -version = "6.0.0" +name = "log" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" -dependencies = [ - "dirs-sys", -] +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] -name = "dirs-sys" -version = "0.5.0" +name = "matchers" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.60.2", + "regex-automata 0.1.10", ] [[package]] -name = "displaydoc" -version = "0.2.5" +name = "matchit" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] -name = "dotenv" -version = "0.15.0" +name = "memchr" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] -name = "drain" -version = "0.1.2" +name = "memoffset" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d105028bd2b5dfcb33318fd79a445001ead36004dd8dffef1bdd7e493d8bc1e" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ - "tokio", + "autocfg", ] [[package]] -name = "dyn-clone" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" - -[[package]] -name = "ed25519" -version = "2.2.3" +name = "mime" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "pkcs8", - "signature", -] +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] -name = "ed25519-dalek" -version = "2.2.0" +name = "miniz_oxide" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ - "curve25519-dalek", - "ed25519", - "serde", - "sha2", - "subtle", - "zeroize", + "adler2", ] [[package]] -name = "educe" -version = "0.6.0" +name = "mio" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ - "enum-ordinalize", - "proc-macro2", - "quote", - "syn", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] -name = "either" -version = "1.15.0" +name = "multimap" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] -name = "encoding_rs" -version = "0.8.35" +name = "nix" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ + "bitflags", "cfg-if", + "cfg_aliases", + "libc", + "memoffset", ] [[package]] -name = "enum-as-inner" -version = "0.6.1" +name = "nu-ansi-term" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", + "overload", + "winapi", ] [[package]] -name = "enum-ordinalize" -version = "4.3.0" +name = "num_enum" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" dependencies = [ - "enum-ordinalize-derive", + "num_enum_derive", + "rustversion", ] [[package]] -name = "enum-ordinalize-derive" -version = "4.3.1" +name = "num_enum_derive" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ "proc-macro2", "quote", @@ -1254,2732 +781,363 @@ dependencies = [ ] [[package]] -name = "env_home" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "errno" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" -dependencies = [ - "libc", - "windows-sys 0.60.2", -] - -[[package]] -name = "event-listener" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" -dependencies = [ - "event-listener", - "pin-project-lite", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - -[[package]] -name = "flate2" -version = "1.1.2" +name = "object" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "crc32fast", - "miniz_oxide", + "hashbrown", + "indexmap", + "memchr", ] [[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" +name = "once_cell" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] -name = "futures" -version = "0.3.31" +name = "overload" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] -name = "futures-channel" -version = "0.3.31" +name = "parking_lot" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", - "num_cpus", -] - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.1+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" -dependencies = [ - "cfg-if", - "libc", - "r-efi", - "wasi 0.14.2+wasi-0.2.4", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "glob" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" - -[[package]] -name = "gloo-timers" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "h2" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http 1.3.1", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "hashbrown" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", -] - -[[package]] -name = "hashlink" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" -dependencies = [ - "hashbrown 0.15.4", -] - -[[package]] -name = "headers" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" -dependencies = [ - "base64 0.21.7", - "bytes", - "headers-core 0.2.0", - "http 0.2.12", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" -dependencies = [ - "base64 0.22.1", - "bytes", - "headers-core 0.3.0", - "http 1.3.1", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" -dependencies = [ - "http 0.2.12", -] - -[[package]] -name = "headers-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" -dependencies = [ - "http 1.3.1", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "home" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "hostname" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" -dependencies = [ - "cfg-if", - "libc", - "windows-link", -] - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http 1.3.1", -] - -[[package]] -name = "http-body-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" -dependencies = [ - "bytes", - "futures-core", - "http 1.3.1", - "http-body 1.0.1", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.27", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.5.10", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2 0.4.11", - "http 1.3.1", - "http-body 1.0.1", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-http-proxy" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad4b0a1e37510028bc4ba81d0e38d239c39671b0f0ce9e02dfa93a8133f7c08" -dependencies = [ - "bytes", - "futures-util", - "headers 0.4.1", - "http 1.3.1", - "hyper 1.6.0", - "hyper-rustls", - "hyper-util", - "pin-project-lite", - "rustls-native-certs 0.7.3", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" -dependencies = [ - "http 1.3.1", - "hyper 1.6.0", - "hyper-util", - "log", - "rustls", - "rustls-native-certs 0.8.1", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-timeout" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" -dependencies = [ - "hyper 1.6.0", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "hyper 1.6.0", - "libc", - "pin-project-lite", - "socket2 0.6.0", - "tokio", - "tower-service", - "tracing", -] - -[[package]] -name = "icu_collections" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" -dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" - -[[package]] -name = "icu_properties" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "potential_utf", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" - -[[package]] -name = "icu_provider" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" -dependencies = [ - "displaydoc", - "icu_locale_core", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "identity" -version = "0.1.0" -dependencies = [ - "anyhow", - "aya", - "aya-log", - "bytemuck", - "bytes", - "libc", - "nix 0.30.1", - "tokio", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "impl-more" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" - -[[package]] -name = "indexmap" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" -dependencies = [ - "equivalent", - "hashbrown 0.15.4", -] - -[[package]] -name = "io-uring" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" -dependencies = [ - "bitflags", - "cfg-if", - "libc", -] - -[[package]] -name = "ipnet" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" - -[[package]] -name = "ipnetwork" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" -dependencies = [ - "serde", -] - -[[package]] -name = "iptables" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "587f29670d67df4c7af1631928dcc592e24e897e961f89b06b142b95702ce21f" -dependencies = [ - "lazy_static", - "nix 0.29.0", - "regex", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "jobserver" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" -dependencies = [ - "getrandom 0.3.3", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "json-patch" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "159294d661a039f7644cea7e4d844e6b25aaf71c1ffe9d73a96d768c24b0faf4" -dependencies = [ - "jsonptr", - "serde", - "serde_json", - "thiserror 1.0.69", -] - -[[package]] -name = "jsonpath-rust" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c00ae348f9f8fd2d09f82a98ca381c60df9e0820d8d79fce43e649b4dc3128b" -dependencies = [ - "pest", - "pest_derive", - "regex", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "jsonptr" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5a3cc660ba5d72bce0b3bb295bf20847ccbb40fd423f3f05b61273672e561fe" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "k8s-openapi" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa60a41b57ae1a0a071af77dbcf89fc9819cfe66edaf2beeb204c34459dcf0b2" -dependencies = [ - "base64 0.22.1", - "chrono", - "serde", - "serde_json", -] - -[[package]] -name = "kernel" -version = "0.1.0" -dependencies = [ - "actix-web", - "anyhow", - "bytes", - "clap", - "dirs", - "futures", - "hyper-util", - "ipnet", - "iptables", - "itertools 0.14.0", - "k8s-openapi", - "kube", - "libc", - "libloading", - "libp2p", - "pnet", - "prost", - "rdkafka", - "schemas", - "serde", - "serde_json", - "serde_yaml", - "shared", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tracing", - "tracing-subscriber", - "trust-dns-server", - "yaml-rust2", -] - -[[package]] -name = "kube" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778f98664beaf4c3c11372721e14310d1ae00f5e2d9aabcf8906c881aa4e9f51" -dependencies = [ - "k8s-openapi", - "kube-client", - "kube-core", - "kube-derive", - "kube-runtime", -] - -[[package]] -name = "kube-client" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb276b85b6e94ded00ac8ea2c68fcf4697ea0553cb25fddc35d4a0ab718db8d" -dependencies = [ - "base64 0.22.1", - "bytes", - "chrono", - "either", - "futures", - "home", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.6.0", - "hyper-http-proxy", - "hyper-rustls", - "hyper-timeout", - "hyper-util", - "jsonpath-rust", - "k8s-openapi", - "kube-core", - "pem", - "rustls", - "secrecy", - "serde", - "serde_json", - "serde_yaml", - "thiserror 2.0.12", - "tokio", - "tokio-tungstenite 0.26.2", - "tokio-util", - "tower", - "tower-http", - "tracing", -] - -[[package]] -name = "kube-core" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c56ff45deb0031f2a476017eed60c06872251f271b8387ad8020b8fef60960" -dependencies = [ - "chrono", - "derive_more", - "form_urlencoded", - "http 1.3.1", - "json-patch", - "k8s-openapi", - "schemars", - "serde", - "serde-value", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "kube-derive" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "079fc8c1c397538628309cfdee20696ebdcc26745f9fb17f89b78782205bd995" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn", -] - -[[package]] -name = "kube-runtime" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f1326e946fadf6248febdf8a1c001809c3899ccf48cb9768cbc536b741040dc" -dependencies = [ - "ahash", - "async-broadcast", - "async-stream", - "backon", - "educe", - "futures", - "hashbrown 0.15.4", - "hostname", - "json-patch", - "k8s-openapi", - "kube-client", - "parking_lot", - "pin-project", - "serde", - "serde_json", - "thiserror 2.0.12", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "language-tags" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "libc" -version = "0.2.174" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" - -[[package]] -name = "libloading" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" -dependencies = [ - "cfg-if", - "windows-targets 0.53.3", -] - -[[package]] -name = "libp2p" -version = "0.56.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce71348bf5838e46449ae240631117b487073d5f347c06d434caddcb91dceb5a" -dependencies = [ - "bytes", - "either", - "futures", - "futures-timer", - "getrandom 0.2.16", - "libp2p-allow-block-list", - "libp2p-connection-limits", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "multiaddr", - "pin-project", - "rw-stream-sink", - "thiserror 2.0.12", -] - -[[package]] -name = "libp2p-allow-block-list" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16ccf824ee859ca83df301e1c0205270206223fd4b1f2e512a693e1912a8f4a" -dependencies = [ - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", -] - -[[package]] -name = "libp2p-connection-limits" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18b8b607cf3bfa2f8c57db9c7d8569a315d5cc0a282e6bfd5ebfc0a9840b2a0" -dependencies = [ - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", -] - -[[package]] -name = "libp2p-core" -version = "0.43.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d28e2d2def7c344170f5c6450c0dbe3dfef655610dbfde2f6ac28a527abbe36" -dependencies = [ - "either", - "fnv", - "futures", - "futures-timer", - "libp2p-identity", - "multiaddr", - "multihash", - "multistream-select", - "parking_lot", - "pin-project", - "quick-protobuf", - "rand 0.8.5", - "rw-stream-sink", - "thiserror 2.0.12", - "tracing", - "unsigned-varint 0.8.0", - "web-time", -] - -[[package]] -name = "libp2p-identity" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3104e13b51e4711ff5738caa1fb54467c8604c2e94d607e27745bcf709068774" -dependencies = [ - "bs58", - "ed25519-dalek", - "hkdf", - "multihash", - "quick-protobuf", - "rand 0.8.5", - "sha2", - "thiserror 2.0.12", - "tracing", - "zeroize", -] - -[[package]] -name = "libp2p-swarm" -version = "0.47.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aa762e5215919a34e31c35d4b18bf2e18566ecab7f8a3d39535f4a3068f8b62" -dependencies = [ - "either", - "fnv", - "futures", - "futures-timer", - "libp2p-core", - "libp2p-identity", - "lru", - "multistream-select", - "rand 0.8.5", - "smallvec", - "tracing", - "web-time", -] - -[[package]] -name = "libredox" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360e552c93fa0e8152ab463bc4c4837fce76a225df11dfaeea66c313de5e61f7" -dependencies = [ - "bitflags", - "libc", -] - -[[package]] -name = "libz-sys" -version = "1.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linux-raw-sys" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" - -[[package]] -name = "litemap" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" - -[[package]] -name = "loadbalancer" -version = "0.1.0" -dependencies = [ - "anyhow", - "aya", - "aya-log", - "base64 0.22.1", - "bytemuck", - "k8s-openapi", - "kube", - "kube-runtime", - "lazy_static", - "log", - "prometheus", - "serde", - "serde_json", - "shared", - "tokio", - "tracing", - "tracing-subscriber", - "warp", -] - -[[package]] -name = "local-channel" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8" -dependencies = [ - "futures-core", - "futures-sink", - "local-waker", -] - -[[package]] -name = "local-waker" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487" - -[[package]] -name = "lock_api" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" - -[[package]] -name = "lru" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" -dependencies = [ - "hashbrown 0.15.4", -] - -[[package]] -name = "maps" -version = "0.1.0" -dependencies = [ - "aya-ebpf", - "aya-log-ebpf", - "bytemuck", - "network-types", - "which 8.0.0", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matchit" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" - -[[package]] -name = "memchr" -version = "2.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "metrics" -version = "0.1.0" -dependencies = [ - "anyhow", - "aya", - "aya-log", - "bytemuck", - "bytes", - "libc", - "nix 0.30.1", - "tokio", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "metrics_tracer" -version = "0.1.0" -dependencies = [ - "aya-ebpf", - "aya-log-ebpf", - "bytemuck", - "network-types", - "which 7.0.3", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" -dependencies = [ - "libc", - "log", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", -] - -[[package]] -name = "multer" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" -dependencies = [ - "bytes", - "encoding_rs", - "futures-util", - "http 0.2.12", - "httparse", - "log", - "memchr", - "mime", - "spin", - "version_check", -] - -[[package]] -name = "multiaddr" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" -dependencies = [ - "arrayref", - "byteorder", - "data-encoding", - "libp2p-identity", - "multibase", - "multihash", - "percent-encoding", - "serde", - "static_assertions", - "unsigned-varint 0.8.0", - "url", -] - -[[package]] -name = "multibase" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" -dependencies = [ - "base-x", - "data-encoding", - "data-encoding-macro", -] - -[[package]] -name = "multihash" -version = "0.19.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" -dependencies = [ - "core2", - "unsigned-varint 0.8.0", -] - -[[package]] -name = "multimap" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" - -[[package]] -name = "multistream-select" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" -dependencies = [ - "bytes", - "futures", - "log", - "pin-project", - "smallvec", - "unsigned-varint 0.7.2", -] - -[[package]] -name = "network-types" -version = "0.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2df15b1cb023b9d205ae287d5dbe74510ae4d62b5131ceec516f4913ed05230" - -[[package]] -name = "nix" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" -dependencies = [ - "bitflags", - "cfg-if", - "cfg_aliases", - "libc", -] - -[[package]] -name = "nix" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" -dependencies = [ - "bitflags", - "cfg-if", - "cfg_aliases", - "libc", - "memoffset", -] - -[[package]] -name = "no-std-net" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" -dependencies = [ - "num_enum_derive", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "crc32fast", - "hashbrown 0.15.4", - "indexmap", - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - -[[package]] -name = "once_cell_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" - -[[package]] -name = "openssl-probe" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "ordered-float" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" -dependencies = [ - "num-traits", -] - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "pem" -version = "3.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" -dependencies = [ - "base64 0.22.1", - "serde", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" -dependencies = [ - "memchr", - "thiserror 2.0.12", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pest_meta" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" -dependencies = [ - "pest", - "sha2", -] - -[[package]] -name = "petgraph" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" -dependencies = [ - "fixedbitset", - "indexmap", -] - -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "pnet" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "682396b533413cc2e009fbb48aadf93619a149d3e57defba19ff50ce0201bd0d" -dependencies = [ - "ipnetwork", - "pnet_base", - "pnet_datalink", - "pnet_packet", - "pnet_sys", - "pnet_transport", -] - -[[package]] -name = "pnet_base" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc190d4067df16af3aba49b3b74c469e611cad6314676eaf1157f31aa0fb2f7" -dependencies = [ - "no-std-net", -] - -[[package]] -name = "pnet_datalink" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79e70ec0be163102a332e1d2d5586d362ad76b01cec86f830241f2b6452a7b7" -dependencies = [ - "ipnetwork", - "libc", - "pnet_base", - "pnet_sys", - "winapi", -] - -[[package]] -name = "pnet_macros" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13325ac86ee1a80a480b0bc8e3d30c25d133616112bb16e86f712dcf8a71c863" -dependencies = [ - "proc-macro2", - "quote", - "regex", - "syn", -] - -[[package]] -name = "pnet_macros_support" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed67a952585d509dd0003049b1fc56b982ac665c8299b124b90ea2bdb3134ab" -dependencies = [ - "pnet_base", -] - -[[package]] -name = "pnet_packet" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c96ebadfab635fcc23036ba30a7d33a80c39e8461b8bd7dc7bb186acb96560f" -dependencies = [ - "glob", - "pnet_base", - "pnet_macros", - "pnet_macros_support", -] - -[[package]] -name = "pnet_sys" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d4643d3d4db6b08741050c2f3afa9a892c4244c085a72fcda93c9c2c9a00f4b" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "pnet_transport" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f604d98bc2a6591cf719b58d3203fd882bdd6bf1db696c4ac97978e9f4776bf" -dependencies = [ - "libc", - "pnet_base", - "pnet_packet", - "pnet_sys", -] - -[[package]] -name = "potential_utf" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "prettyplease" -version = "0.2.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" -dependencies = [ - "proc-macro2", - "syn", -] - -[[package]] -name = "proc-macro-crate" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" -dependencies = [ - "toml_edit 0.22.27", -] - -[[package]] -name = "proc-macro2" -version = "1.0.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proc-macro2-diagnostics" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "prometheus" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" -dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "memchr", - "parking_lot", - "protobuf", - "thiserror 2.0.12", -] - -[[package]] -name = "prost" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" -dependencies = [ - "heck", - "itertools 0.14.0", - "log", - "multimap", - "once_cell", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "pulldown-cmark", - "pulldown-cmark-to-cmark", - "regex", - "syn", - "tempfile", -] - -[[package]] -name = "prost-derive" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "prost-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" -dependencies = [ - "prost", -] - -[[package]] -name = "protobuf" -version = "3.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d65a1d4ddae7d8b5de68153b48f6aa3bba8cb002b243dbdbc55a5afbc98f99f4" -dependencies = [ - "once_cell", - "protobuf-support", - "thiserror 1.0.69", -] - -[[package]] -name = "protobuf-support" -version = "3.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e36c2f31e0a47f9280fb347ef5e461ffcd2c52dd520d8e216b52f93b0b0d7d6" -dependencies = [ - "thiserror 1.0.69", -] - -[[package]] -name = "proxy" -version = "0.1.0" -dependencies = [ - "anyhow", - "aya", - "aya-ebpf", - "aya-log-ebpf", - "base64 0.22.1", - "bytemuck", - "dashmap", - "hyper 1.6.0", - "k8s-openapi", - "kube", - "kube-runtime", - "lazy_static", - "once_cell", - "prometheus", - "serde", - "serde_json", - "shared", - "time", - "tokio", - "tracing", - "tracing-subscriber", - "warp", - "which 8.0.0", -] - -[[package]] -name = "pulldown-cmark" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" -dependencies = [ - "bitflags", - "memchr", - "unicase", -] - -[[package]] -name = "pulldown-cmark-to-cmark" -version = "21.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5b6a0769a491a08b31ea5c62494a8f144ee0987d86d670a8af4df1e1b7cde75" -dependencies = [ - "pulldown-cmark", -] - -[[package]] -name = "quick-protobuf" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" -dependencies = [ - "byteorder", -] - -[[package]] -name = "quote" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.3", -] - -[[package]] -name = "rdkafka" -version = "0.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f1856d72dbbbea0d2a5b2eaf6af7fb3847ef2746e883b11781446a51dbc85c0" -dependencies = [ - "futures-channel", - "futures-util", - "libc", - "log", - "rdkafka-sys", - "serde", - "serde_derive", - "serde_json", - "slab", - "tokio", -] - -[[package]] -name = "rdkafka-sys" -version = "4.9.0+2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5230dca48bc354d718269f3e4353280e188b610f7af7e2fcf54b7a79d5802872" -dependencies = [ - "libc", - "libz-sys", - "num_enum", - "pkg-config", -] - -[[package]] -name = "redox_syscall" -version = "0.5.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_users" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" -dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 2.0.12", -] - -[[package]] -name = "regex" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-lite" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.16", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.60.2", -] - -[[package]] -name = "rustls" -version = "0.23.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2491382039b29b9b11ff08b76ff6c97cf287671dbb74f0be44bda389fffe9bd1" -dependencies = [ - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "rustls-pki-types", - "schannel", - "security-framework 2.11.1", -] - -[[package]] -name = "rustls-native-certs" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" -dependencies = [ - "openssl-probe", - "rustls-pki-types", - "schannel", - "security-framework 3.2.0", -] - -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" -dependencies = [ - "zeroize", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" + "lock_api", + "parking_lot_core", +] [[package]] -name = "rw-stream-sink" -version = "0.4.0" +name = "parking_lot_core" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ - "futures", - "pin-project", - "static_assertions", + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", ] [[package]] -name = "ryu" -version = "1.0.20" +name = "percent-encoding" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] -name = "schannel" -version = "0.1.27" +name = "petgraph" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ - "windows-sys 0.59.0", + "fixedbitset", + "indexmap", ] [[package]] -name = "schemars" -version = "0.8.22" +name = "pin-project" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", + "pin-project-internal", ] [[package]] -name = "schemars_derive" -version = "0.8.22" +name = "pin-project-internal" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "serde_derive_internals", "syn", ] [[package]] -name = "schemas" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54700366b009bfe7793456437c6732268d0b8b4abec847f15df8656435f9d6cd" -dependencies = [ - "convert_case", - "serde", - "serde_json", -] - -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - -[[package]] -name = "scopeguard" -version = "1.2.0" +name = "pin-project-lite" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] -name = "secrecy" -version = "0.10.3" +name = "pin-utils" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a" -dependencies = [ - "zeroize", -] +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] -name = "security-framework" -version = "2.11.1" +name = "prettyplease" +version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" dependencies = [ - "bitflags", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", + "proc-macro2", + "syn", ] [[package]] -name = "security-framework" -version = "3.2.0" +name = "proc-macro2" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ - "bitflags", - "core-foundation 0.10.1", - "core-foundation-sys", - "libc", - "security-framework-sys", + "unicode-ident", ] [[package]] -name = "security-framework-sys" -version = "2.14.0" +name = "proc-macro2-diagnostics" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ - "core-foundation-sys", - "libc", + "proc-macro2", + "quote", + "syn", + "version_check", ] [[package]] -name = "semver" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" - -[[package]] -name = "serde" -version = "1.0.219" +name = "prost" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" dependencies = [ - "serde_derive", + "bytes", + "prost-derive", ] [[package]] -name = "serde-value" -version = "0.7.0" +name = "prost-build" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" dependencies = [ - "ordered-float", - "serde", + "heck", + "itertools", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "pulldown-cmark", + "pulldown-cmark-to-cmark", + "regex", + "syn", + "tempfile", ] [[package]] -name = "serde_derive" -version = "1.0.219" +name = "prost-derive" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" dependencies = [ + "anyhow", + "itertools", "proc-macro2", "quote", "syn", ] [[package]] -name = "serde_derive_internals" -version = "0.29.1" +name = "prost-types" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" dependencies = [ - "proc-macro2", - "quote", - "syn", + "prost", ] [[package]] -name = "serde_json" -version = "1.0.141" +name = "pulldown-cmark" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" +checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" dependencies = [ - "itoa", + "bitflags", "memchr", - "ryu", - "serde", + "unicase", ] [[package]] -name = "serde_spanned" -version = "0.6.9" +name = "pulldown-cmark-to-cmark" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "e5b6a0769a491a08b31ea5c62494a8f144ee0987d86d670a8af4df1e1b7cde75" dependencies = [ - "serde", + "pulldown-cmark", ] [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "quote" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", + "proc-macro2", ] [[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" +name = "r-efi" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] -name = "sha1" -version = "0.10.6" +name = "redox_syscall" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "cfg-if", - "cpufeatures", - "digest", + "bitflags", ] [[package]] -name = "sha2" -version = "0.10.9" +name = "regex" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ - "cfg-if", - "cpufeatures", - "digest", + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] -name = "sharded-slab" -version = "0.1.7" +name = "regex-automata" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "lazy_static", + "regex-syntax 0.6.29", ] [[package]] -name = "shared" -version = "0.1.0" +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ - "actix-web", - "anyhow", - "bytes", - "clap", - "dirs", - "futures", - "hyper-util", - "ipnet", - "iptables", - "itertools 0.14.0", - "k8s-openapi", - "kube", - "libc", - "libloading", - "libp2p", - "pnet", - "prost", - "rdkafka", - "schemas", - "serde", - "serde_json", - "serde_yaml", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tracing", - "tracing-subscriber", - "trust-dns-server", - "yaml-rust2", + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", ] [[package]] -name = "shlex" -version = "1.3.0" +name = "regex-syntax" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] -name = "signal-hook-registry" -version = "1.4.5" +name = "regex-syntax" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" -dependencies = [ - "libc", -] +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] -name = "signature" -version = "2.2.0" +name = "rustix" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "rand_core 0.6.4", + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.60.2", ] [[package]] -name = "slab" -version = "0.4.10" +name = "rustversion" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] -name = "smallvec" -version = "1.15.1" +name = "scopeguard" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] -name = "socket2" -version = "0.5.10" +name = "serde" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ - "libc", - "windows-sys 0.52.0", + "serde_derive", ] [[package]] -name = "socket2" -version = "0.6.0" +name = "serde_derive" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ - "libc", - "windows-sys 0.59.0", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spki" -version = "0.7.3" +name = "sharded-slab" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ - "base64ct", - "der", + "lazy_static", ] [[package]] -name = "stable_deref_trait" -version = "1.2.0" +name = "signal-hook-registry" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +dependencies = [ + "libc", +] [[package]] -name = "static_assertions" -version = "1.1.0" +name = "slab" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] -name = "strsim" -version = "0.11.1" +name = "smallvec" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] -name = "subtle" -version = "2.6.1" +name = "socket2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] [[package]] name = "syn" @@ -3998,17 +1156,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "tempfile" version = "3.20.0" @@ -4016,7 +1163,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom", "once_cell", "rustix", "windows-sys 0.59.0", @@ -4028,16 +1175,7 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" -dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl", ] [[package]] @@ -4051,17 +1189,6 @@ dependencies = [ "syn", ] -[[package]] -name = "thiserror-impl" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "thread_local" version = "1.1.9" @@ -4071,62 +1198,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "time" -version = "0.3.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" - -[[package]] -name = "time-macros" -version = "0.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tinystr" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - [[package]] name = "tokio" version = "1.47.0" @@ -4142,7 +1213,7 @@ dependencies = [ "pin-project-lite", "signal-hook-registry", "slab", - "socket2 0.6.0", + "socket2", "tokio-macros", "windows-sys 0.59.0", ] @@ -4158,16 +1229,6 @@ dependencies = [ "syn", ] -[[package]] -name = "tokio-rustls" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" -dependencies = [ - "rustls", - "tokio", -] - [[package]] name = "tokio-stream" version = "0.1.17" @@ -4179,30 +1240,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite 0.21.0", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite 0.26.2", -] - [[package]] name = "tokio-util" version = "0.7.15" @@ -4213,55 +1250,9 @@ dependencies = [ "futures-core", "futures-sink", "pin-project-lite", - "slab", "tokio", ] -[[package]] -name = "toml" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.19.15", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow 0.7.12", -] - [[package]] name = "tonic" version = "0.14.0" @@ -4270,18 +1261,18 @@ checksum = "308e1db96abdccdf0a9150fb69112bf6ea72640e0bd834ef0c4a618ccc8c8ddc" dependencies = [ "async-trait", "axum", - "base64 0.22.1", + "base64", "bytes", - "h2 0.4.11", - "http 1.3.1", - "http-body 1.0.1", + "h2", + "http", + "http-body", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-timeout", "hyper-util", "percent-encoding", "pin-project", - "socket2 0.6.0", + "socket2", "sync_wrapper", "tokio", "tokio-stream", @@ -4364,289 +1355,95 @@ dependencies = [ ] [[package]] -name = "tower-http" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" -dependencies = [ - "base64 0.22.1", - "bitflags", - "bytes", - "http 1.3.1", - "http-body 1.0.1", - "mime", - "pin-project-lite", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "trust-dns-proto" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.4.0", - "ipnet", - "once_cell", - "rand 0.8.5", - "smallvec", - "thiserror 1.0.69", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "trust-dns-server" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c540f73c2b2ec2f6c54eabd0900e7aafb747a820224b742f556e8faabb461bc7" -dependencies = [ - "async-trait", - "bytes", - "cfg-if", - "drain", - "enum-as-inner", - "futures-executor", - "futures-util", - "serde", - "thiserror 1.0.69", - "time", - "tokio", - "toml", - "tracing", - "trust-dns-proto", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 1.3.1", - "httparse", - "log", - "rand 0.8.5", - "sha1", - "thiserror 1.0.69", - "url", - "utf-8", -] - -[[package]] -name = "tungstenite" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" -dependencies = [ - "bytes", - "data-encoding", - "http 1.3.1", - "httparse", - "log", - "rand 0.9.2", - "sha1", - "thiserror 2.0.12", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "unicase" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" - -[[package]] -name = "unicode-bidi" -version = "0.3.18" +name = "tower-layer" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] -name = "unicode-ident" -version = "1.0.18" +name = "tower-service" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] -name = "unicode-normalization" -version = "0.1.24" +name = "tracing" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "tinyvec", + "pin-project-lite", + "tracing-attributes", + "tracing-core", ] [[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - -[[package]] -name = "unsigned-varint" -version = "0.7.2" +name = "tracing-attributes" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] -name = "unsigned-varint" -version = "0.8.0" +name = "tracing-core" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", + "valuable", +] [[package]] -name = "untrusted" -version = "0.9.0" +name = "tracing-log" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] [[package]] -name = "url" -version = "2.5.4" +name = "tracing-subscriber" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ - "form_urlencoded", - "idna 1.0.3", - "percent-encoding", + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", ] [[package]] -name = "utf-8" -version = "0.7.6" +name = "try-lock" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] -name = "utf8_iter" -version = "1.0.4" +name = "unicase" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] -name = "utf8parse" -version = "0.2.2" +name = "unicode-ident" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "valuable" @@ -4654,12 +1451,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - [[package]] name = "version_check" version = "0.9.5" @@ -4675,35 +1466,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "warp" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "headers 0.3.9", - "http 0.2.12", - "hyper 0.14.32", - "log", - "mime", - "mime_guess", - "multer", - "percent-encoding", - "pin-project", - "scoped-tls", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-tungstenite 0.21.0", - "tokio-util", - "tower-service", - "tracing", -] - [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" @@ -4719,74 +1481,6 @@ dependencies = [ "wit-bindgen-rt", ] -[[package]] -name = "wasm-bindgen" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "which" version = "7.0.3" @@ -4799,12 +1493,6 @@ dependencies = [ "winsafe", ] -[[package]] -name = "which" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fabb953106c3c8eea8306e4393700d7657561cb43122571b172bbfb7c7ba1d" - [[package]] name = "winapi" version = "0.3.9" @@ -4833,15 +1521,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.59.0" @@ -4989,24 +1668,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" -dependencies = [ - "memchr", -] - [[package]] name = "winsafe" version = "0.0.19" @@ -5021,173 +1682,3 @@ checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ "bitflags", ] - -[[package]] -name = "writeable" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" - -[[package]] -name = "xdp" -version = "0.1.0" -dependencies = [ - "aya-ebpf", - "aya-log-ebpf", - "bytemuck", - "maps", - "network-types", - "which 8.0.0", -] - -[[package]] -name = "xtask" -version = "0.1.0" -dependencies = [ - "anyhow", - "aya-tool", - "clap", -] - -[[package]] -name = "yaml-rust2" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ce2a4ff45552406d02501cea6c18d8a7e50228e7736a872951fe2fe75c91be7" -dependencies = [ - "arraydeque", - "encoding_rs", - "hashlink", -] - -[[package]] -name = "yoke" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - -[[package]] -name = "zerotrie" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zstd" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/core/Cargo.toml b/core/Cargo.toml index 766ee43..3d128e5 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -1,20 +1,17 @@ -[package] -name = "core" -version = "0.1.0" -edition = "2021" # Rust edition, don't change - [workspace] +resolver = "3" members = [ - "src/components/kernel", - "src/components/loadbalancer", + #"src/components/kernel", + #"src/components/loadbalancer", "api", - "src/shared", - "src/components/proxy", - "src/components/xdp", - "src/components/maps", + #"src/shared", + #"src/components/proxy", + #"src/components/xdp", + #"src/components/maps", "src/components/conntracker", - "xtask", + #"xtask", "src/components/identity", - "src/components/metrics_tracer", - "src/components/metrics", + #"src/components/metrics_tracer", + #"src/components/metrics", ] + diff --git a/core/agent-api-build.sh b/core/agent-api-build.sh new file mode 100755 index 0000000..73c8ba3 --- /dev/null +++ b/core/agent-api-build.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +echo "Building the conntracker files" +pushd src/components/conntracker +./build-conntracker.sh +popd + +echo "Copying connection tracker binaries" +cp -r target/bpfel-unknown-none/release/conntracker conntracker + +# Run docker build +docker build -f api/Dockerfile -t cortexflow-agent:0.0.1 . + +# Cleanup +echo "Cleaning building files" +rm -rf conntracker diff --git a/core/api/Cargo.toml b/core/api/Cargo.toml index 538f802..b8180e1 100644 --- a/core/api/Cargo.toml +++ b/core/api/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "agent-api" +name = "api" version = "0.1.0" edition = "2021" diff --git a/core/api/Dockerfile b/core/api/Dockerfile new file mode 100644 index 0000000..1cdb9cf --- /dev/null +++ b/core/api/Dockerfile @@ -0,0 +1,57 @@ +# Phase 1: Build image +FROM rust:1.86 AS builder + +# Install system dependencies including protoc +RUN apt-get update && apt-get install -y \ + build-essential \ + libprotobuf-dev \ + protobuf-compiler \ + pkg-config \ + libssl-dev \ + ca-certificates \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Set environment variables for protoc +ENV PROTOC=/usr/bin/protoc +ENV PROTOC_INCLUDE=/usr/include + +# Set working directory +WORKDIR /usr/src/app/agent + +# Copy Cargo manifest and sources +COPY . . + +# Fetch dependencies and build release +RUN cargo fetch +RUN cargo build -p api --release +RUN cargo build -p identity --release + +# Phase 2: Final minimal image +FROM ubuntu:24.04 + +# Install runtime dependencies +RUN apt-get update && apt-get install -y \ + libssl-dev \ + ca-certificates \ + curl \ + && rm -rf /var/lib/apt/lists/* + +ENV PATH="/root/.cargo/bin:/usr/local/bin:${PATH}" + +# Create working directory +WORKDIR /usr/src/cortexbrain-agent + +# Copy the compiled binary +COPY --from=builder /usr/src/app/agent/target/release/agent-api /usr/local/bin/agent-api +COPY --from=builder /usr/src/app/agent/target/release/identity /usr/local/bin/identity + +# Copy configuration files +COPY conntracker /usr/src/cortexbrain-agent/conntracker + +# Set env vars for your app +ENV BPF_PATH="/usr/src/cortexbrain-identity-service/conntracker" +ENV PIN_MAP_PATH="/sys/fs/bpf/cortexbrain-identity-service/" + +# Default command +CMD ["agent-api"] diff --git a/core/api/build.rs b/core/api/build.rs index b81e83f..ef2c574 100644 --- a/core/api/build.rs +++ b/core/api/build.rs @@ -11,7 +11,7 @@ fn main() -> Result<(), Box> { .build_server(true) .file_descriptor_set_path(out_dir.join("agent_api_descriptor.bin")) .out_dir("./src") - .compile_protos(&[proto_file], &["proto"])?; + .compile_protos(&[proto_file], &["protos"])?; Ok(()) } diff --git a/core/src/main.rs b/core/src/main.rs deleted file mode 100644 index f4e42e1..0000000 --- a/core/src/main.rs +++ /dev/null @@ -1,54 +0,0 @@ -// module imports -mod client; -mod developers_msg; -mod edgecni; -mod kernel; - -use anyhow::Result; -use client::{client::Client, default_api_config::ApiConfig}; -use tracing_subscriber::fmt::format::FmtSpan; -use tracing_subscriber::EnvFilter; -use std::sync::Arc; -use crate::client::apiconfig::EdgeDNSConfig; -use crate::developers_msg::developers_msg::info; -use client::default_api_config::ConfigType; -use kernel::kernel::EdgeDNS; -//use kernel::kafka::test_kafka; - -#[tokio::main] -async fn main() -> Result<(), anyhow::Error> { - - //tracing subscriber for logging purpouses - tracing_subscriber::fmt() - .with_max_level(tracing::Level::INFO) - .with_target(false) - .with_level(true) - .with_span_events(FmtSpan::NONE) - .without_time() - .with_target(false) - .with_file(false) - .pretty() - .with_env_filter(EnvFilter::new("info")) - .with_line_number(false) - .init(); - //Development message for all the developers - info(); - - //TODO: general: clean unused or useless code in EdgeDNSConfig - //let edge_cni_config = EdgeCniConfig { enable: true }; - let configuration = ApiConfig::load_from_file("./src/client/config.yaml", ConfigType::Default)?; /* the "?" operand return a "Result" type. Necessary */ - let edgecfg = EdgeDNSConfig::load_from_file("./src/client/config.yaml", ConfigType::Default)?; /* the "?" operand return a "Result" type. Necessary */ - let edgecnicfg = EdgeDNSConfig::load_from_file("./src/client/config.yaml", ConfigType::Default); - - // Create your client instance using the custom Client struct - let client = Arc::new(Client::new_client(Some(ConfigType::Default)).await?); // Use Arc for shared reference - - Client::print_config(&client); //return the client config - let edgedns = EdgeDNS::new(configuration, edgecfg, client.clone()).await?; - edgedns.get_kernel_info(); - edgedns.start().await; - - //test_kafka(); - - Ok(()) -} From c99351f6661d3a37578a1a830f29ad2ca5df096f Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Sat, 2 Aug 2025 21:25:42 +0200 Subject: [PATCH 08/33] [#123]: added agent manifest --- core/src/testing/agent.yaml | 88 +++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 core/src/testing/agent.yaml diff --git a/core/src/testing/agent.yaml b/core/src/testing/agent.yaml new file mode 100644 index 0000000..6a46dfa --- /dev/null +++ b/core/src/testing/agent.yaml @@ -0,0 +1,88 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: cortexflow-agent + namespace: cortexflow + labels: + app: cortexflow-agent +spec: + replicas: 1 + selector: + matchLabels: + app: cortexflow-agent + template: + metadata: + labels: + app: cortexflow-agent + spec: + hostPID: true + hostNetwork: true + containers: + - name: agent + image: lorenzotettamanti/cortexflow-agent:latest + command: ["/bin/bash", "-c"] + args: + - | + echo "Running on kernel $(uname -r)" + if [ ! -d "/sys/fs/bpf" ]; then + echo "ERROR: BPF filesystem not mounted" + exit 1 + else + echo "Checking ebpf path..." + ls -l /sys/fs/bpf + fi + echo "checking privileges" + ls -ld /sys/fs/bpf + + echo "Running application..." + exec /usr/local/bin/cortexflow-agent || echo "Application exited with code $?" + volumeMounts: + - name: bpf + mountPath: /sys/fs/bpf + mountPropagation: Bidirectional + readOnly: false + - name: proc + mountPath: /host/proc + readOnly: false + - name: kernel-dev + mountPath: /lib/modules + readOnly: false + securityContext: + privileged: true + allowPrivilegeEscalation: true + capabilities: + add: + - SYS_ADMIN + - NET_ADMIN + - SYS_RESOURCE + - BPF + - SYS_PTRACE + volumes: + - name: bpf + hostPath: + path: /sys/fs/bpf + type: Directory + - name: proc + hostPath: + path: /proc + type: Directory + - name: kernel-dev + hostPath: + path: /lib/modules + type: Directory +--- +apiVersion: v1 +kind: Service +metadata: + name: cortexflow-agent + namespace: cortexflow +spec: + selector: + app: cortexflow-agent + ports: + - protocol: TCP + name: agent-server-port + port: 9090 + targetPort: 9090 + type: ClusterIP +--- From f38ff15a1d7148ecd85d2c7c58ec574b86eefcd5 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Sat, 2 Aug 2025 21:30:32 +0200 Subject: [PATCH 09/33] [#92]: added lib.rs file in identity component to use the identity functions in the agent api. added better error handling for attach_detach_veth function --- core/src/components/identity/src/helpers.rs | 23 +++++++++++-------- core/src/components/identity/src/lib.rs | 4 ++++ .../components/identity/src/map_handlers.rs | 15 ++++++------ 3 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 core/src/components/identity/src/lib.rs diff --git a/core/src/components/identity/src/helpers.rs b/core/src/components/identity/src/helpers.rs index 879183f..d3118ef 100644 --- a/core/src/components/identity/src/helpers.rs +++ b/core/src/components/identity/src/helpers.rs @@ -5,30 +5,24 @@ use aya::{ Bpf, maps::{ MapData, - perf::{PerfEventArray, PerfEventArrayBuffer}, + perf::{PerfEventArrayBuffer}, }, programs::{SchedClassifier, TcAttachType}, - util::online_cpus, }; use bytes::BytesMut; use nix::net::if_::if_nameindex; use std::collections::HashMap; use std::sync::Mutex; use std::{ - ascii, borrow::BorrowMut, net::Ipv4Addr, - string, sync::{ Arc, atomic::{AtomicBool, Ordering}, }, }; -use tracing::{error, event, info, warn}; +use tracing::{error, info, warn}; -use anyhow::Context; -use std::path::Path; -use tokio::{fs, signal}; /* * decleare bpf path env variable */ @@ -142,13 +136,22 @@ pub async fn display_veth_events>( state, dev_addr ); - attach_detach_veth( + match attach_detach_veth( bpf.clone(), vethlog.event_type, veth_name, link_ids.clone(), ) - .await; + .await + { + std::result::Result::Ok(_) => { + info!("Attach/Detach veth function attached correctly") + } + Err(e) => error!( + "Error attaching Attach/Detach function. Error : {}", + e + ), + } } Err(_) => info!("Unknown name or corrupted field"), } diff --git a/core/src/components/identity/src/lib.rs b/core/src/components/identity/src/lib.rs new file mode 100644 index 0000000..e3bb59e --- /dev/null +++ b/core/src/components/identity/src/lib.rs @@ -0,0 +1,4 @@ +pub mod helpers; +pub mod structs; +pub mod enums; +pub mod map_handlers; \ No newline at end of file diff --git a/core/src/components/identity/src/map_handlers.rs b/core/src/components/identity/src/map_handlers.rs index 36ae044..4656aeb 100644 --- a/core/src/components/identity/src/map_handlers.rs +++ b/core/src/components/identity/src/map_handlers.rs @@ -1,12 +1,12 @@ -use std::path::PathBuf; -use std::sync::Mutex; -use std::sync::Arc; use anyhow::Error; -use aya::maps::Map; +use anyhow::Ok; use aya::Bpf; -use tracing::{error}; +use aya::maps::Map; +use std::path::PathBuf; +use std::sync::Arc; +use std::sync::Mutex; use tokio::fs; - +use tracing::error; pub fn init_bpf_maps(bpf: Arc>) -> Result<(Map, Map), anyhow::Error> { // this function init the bpfs maps used in the main program @@ -45,8 +45,7 @@ pub fn init_bpf_maps(bpf: Arc>) -> Result<(Map, Map), anyhow::Error> //TODO: chmod 700 to setup the permissions to pin maps TODO:add this permission in the CLI //TODO: add bpf mounts during cli installation pub async fn map_pinner(maps: &(Map, Map), path: &PathBuf) -> Result<(), Error> { - - //FIXME: add exception for already pinned maps + //FIXME: add exception for already pinned maps if !path.exists() { error!("Pin path {:?} does not exist. Creating it...", path); let _ = fs::create_dir_all(path) From 73fe216129bf9fb28b2a992be0b2f6a8652db81b Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Sun, 3 Aug 2025 00:49:53 +0200 Subject: [PATCH 10/33] [#123]: fixed logging and typos in agent-api- Updated the service type to a NodePort.Fixed typos in Dockerfile --- core/api/Cargo.toml | 1 + core/api/Dockerfile | 2 +- core/api/src/api.rs | 2 +- core/api/src/main.rs | 28 +++++++++++++++++++++++----- core/src/testing/agent.yaml | 7 +++++-- 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/core/api/Cargo.toml b/core/api/Cargo.toml index b8180e1..d25eb40 100644 --- a/core/api/Cargo.toml +++ b/core/api/Cargo.toml @@ -15,6 +15,7 @@ identity = { path = "../src/components/identity" } tonic-reflection = "0.14.0" tonic-build = "0.14.0" dotenv = "0.15.0" +tracing-subscriber = "0.3.19" [build-dependencies] tonic-build = "0.14.0" diff --git a/core/api/Dockerfile b/core/api/Dockerfile index 1cdb9cf..4db23ed 100644 --- a/core/api/Dockerfile +++ b/core/api/Dockerfile @@ -50,7 +50,7 @@ COPY --from=builder /usr/src/app/agent/target/release/identity /usr/local/bin/id COPY conntracker /usr/src/cortexbrain-agent/conntracker # Set env vars for your app -ENV BPF_PATH="/usr/src/cortexbrain-identity-service/conntracker" +ENV BPF_PATH="/usr/src/cortexbrain-agent/conntracker" ENV PIN_MAP_PATH="/sys/fs/bpf/cortexbrain-identity-service/" # Default command diff --git a/core/api/src/api.rs b/core/api/src/api.rs index 78c3c3d..ab46874 100644 --- a/core/api/src/api.rs +++ b/core/api/src/api.rs @@ -35,7 +35,7 @@ const BPF_PATH: &str = "BPF_PATH"; impl Default for AgentApi { fn default() -> Self { let bpf_path = std::env::var(BPF_PATH).context("BPF_PATH variable not found").unwrap(); - let data = fs::read(Path::new(&bpf_path)).context("Cannot load load from path").unwrap(); + let data = fs::read(Path::new(&bpf_path)).context("Cannot load data from path").unwrap(); AgentApi { name: "CortexFlow-Agent".to_string(), diff --git a/core/api/src/main.rs b/core/api/src/main.rs index ca1ed4b..2c76b43 100644 --- a/core/api/src/main.rs +++ b/core/api/src/main.rs @@ -1,5 +1,6 @@ // module imports use tonic::transport::{Error, Server}; +use tracing_subscriber::{fmt::format::FmtSpan, EnvFilter}; mod agent; mod api; @@ -14,10 +15,27 @@ use crate::agent::agent_server::AgentServer; use crate::api::AgentApi; //api implementations //from tonic. generated from agent.proto use tokio::main; +use tracing::{error, info}; #[main] async fn main() -> Result<(), Error> { - let address = "127.0.0.1:9090".parse().unwrap(); + //init tracing subscriber + tracing_subscriber::fmt() + .with_max_level(tracing::Level::INFO) + .with_target(false) + .with_level(true) + .with_span_events(FmtSpan::NONE) + .with_file(false) + .pretty() + .with_env_filter(EnvFilter::new("info")) + .with_line_number(false) + .init(); + + info!("Starting agent server..."); + info!("fetching data"); + + //FIXME: binding on 0.0.0.0 address is not ideal for a production environment. This will need future fixes + let address = "0.0.0.0:9090".parse().unwrap(); let api = AgentApi::default(); match tonic_reflection::server::Builder::configure() @@ -25,21 +43,21 @@ async fn main() -> Result<(), Error> { .build_v1() { Ok(reflection_server) => { - print!("reflection server started correctly"); + info!("reflection server started correctly"); match Server::builder() .add_service(AgentServer::new(api)) .add_service(reflection_server) .serve(address) .await { - Ok(_) => println!("Server started with no errors"), - Err(e) => eprintln!( + Ok(_) => info!("Server started with no errors"), + Err(e) => error!( "An error occured during the Server::builder processe. Error {}", e ), } } - Err(e) => eprintln!( + Err(e) => error!( "An error occured during the starting of the reflection server. Error {}", e ), diff --git a/core/src/testing/agent.yaml b/core/src/testing/agent.yaml index 6a46dfa..67a79c0 100644 --- a/core/src/testing/agent.yaml +++ b/core/src/testing/agent.yaml @@ -34,8 +34,11 @@ spec: echo "checking privileges" ls -ld /sys/fs/bpf + echo "checking if conntracker path" + ls -l /usr/src/cortexbrain-agent/conntracker + echo "Running application..." - exec /usr/local/bin/cortexflow-agent || echo "Application exited with code $?" + exec /usr/local/bin/agent-api || echo "Application exited with code $?" volumeMounts: - name: bpf mountPath: /sys/fs/bpf @@ -84,5 +87,5 @@ spec: name: agent-server-port port: 9090 targetPort: 9090 - type: ClusterIP + type: NodePort --- From d0167c973ab6184b7d998a1178b668fe23f8bf04 Mon Sep 17 00:00:00 2001 From: siddh34 Date: Sun, 3 Aug 2025 17:30:44 +0530 Subject: [PATCH 11/33] [CortexFlow#117]: packet loss tracer working along with chaos mesh --- core/Cargo.lock | 1 + core/src/components/metrics/src/main.rs | 37 +- core/src/components/metrics/src/mod.rs | 3 + core/src/components/metrics/src/structs.rs | 13 + .../components/metrics_tracer/src/bindings.rs | 10071 +++++++++------- .../metrics_tracer/src/data_structures.rs | 15 + .../src/components/metrics_tracer/src/main.rs | 74 +- core/src/components/metrics_tracer/src/mod.rs | 3 +- core/src/testing/chaos-mess.yaml | 18 + core/src/testing/metrics.yaml | 2 +- 10 files changed, 5585 insertions(+), 4652 deletions(-) create mode 100644 core/src/components/metrics/src/mod.rs create mode 100644 core/src/components/metrics/src/structs.rs create mode 100644 core/src/components/metrics_tracer/src/data_structures.rs create mode 100644 core/src/testing/chaos-mess.yaml diff --git a/core/Cargo.lock b/core/Cargo.lock index 4792d3b..d1f356c 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -54,6 +54,7 @@ dependencies = [ "tonic-prost-build", "tonic-reflection", "tracing", + "tracing-subscriber", ] [[package]] diff --git a/core/src/components/metrics/src/main.rs b/core/src/components/metrics/src/main.rs index 4527c5d..2183549 100644 --- a/core/src/components/metrics/src/main.rs +++ b/core/src/components/metrics/src/main.rs @@ -1,39 +1,32 @@ use aya::{ Ebpf, maps::{ - Map, MapData, + MapData, perf::{PerfEventArray, PerfEventArrayBuffer}, }, - programs::{KProbe, SchedClassifier, TcAttachType, tc::SchedClassifierLinkId}, + programs::{KProbe}, util::online_cpus, }; -use aya_log::EbpfLogger; use bytes::BytesMut; use std::{ convert::TryInto, env, fs, - net::Ipv4Addr, path::Path, sync::{ - Arc, Mutex, atomic::{AtomicBool, Ordering}, }, }; use anyhow::{Context, Ok}; -use tokio::{signal, sync::broadcast::error}; -use tracing::{error, info, warn}; +use tokio::{signal}; +use tracing::{error, info}; use tracing_subscriber::{EnvFilter, fmt::format::FmtSpan}; const BPF_PATH: &str = "BPF_PATH"; //BPF env path -use std::collections::HashMap; -#[repr(C)] -#[derive(Clone, Copy)] -struct NetworkMetrics { - src_addr: u32, -} +mod structs; +use crate::structs::NetworkMetrics; #[tokio::main] async fn main() -> Result<(), anyhow::Error> { @@ -74,7 +67,7 @@ async fn main() -> Result<(), anyhow::Error> { match program.attach("tcp_identify_packet_loss", 0) { std::result::Result::Ok(_) => { - info!("program attacched successfully to the tcp_identify_packet_loss kprobe ") + info!("program attached successfully to the tcp_identify_packet_loss kprobe ") } Err(e) => error!( "An error occured while attaching the program to the tcp_identify_packet_loss kprobe. {:?} ", @@ -115,10 +108,18 @@ pub async fn display_metrics_map( let data = &buffers[i]; if data.len() >= std::mem::size_of::() { let net_metrics: NetworkMetrics = - unsafe { std::ptr::read(data.as_ptr() as *const _) }; - let src = Ipv4Addr::from(u32::from_be(net_metrics.src_addr)); - - info!("Detected packet loss SRC: {}", src); + unsafe { std::ptr::read_unaligned(data.as_ptr() as *const _) }; + let sk_drop_count = net_metrics.sk_drops; + let sk_err = net_metrics.sk_err; + let sk_err_soft = net_metrics.sk_err_soft; + let sk_backlog_len = net_metrics.sk_backlog_len; + let sk_wmem_queued = net_metrics.sk_wmem_queued; + let sk_ack_backlog = net_metrics.sk_ack_backlog; + let sk_rcvbuf = net_metrics.sk_rcvbuf; + info!( + "sk_drops: {}, sk_err: {}, sk_err_soft: {}, sk_backlog_len: {}, sk_wmem_queued: {}, sk_ack_backlog: {}, sk_rcvbuf: {}", + sk_drop_count, sk_err, sk_err_soft, sk_backlog_len, sk_wmem_queued, sk_ack_backlog, sk_rcvbuf + ); } } } diff --git a/core/src/components/metrics/src/mod.rs b/core/src/components/metrics/src/mod.rs new file mode 100644 index 0000000..8414b63 --- /dev/null +++ b/core/src/components/metrics/src/mod.rs @@ -0,0 +1,3 @@ +mod structs; +mod enums; +mod helpers; \ No newline at end of file diff --git a/core/src/components/metrics/src/structs.rs b/core/src/components/metrics/src/structs.rs new file mode 100644 index 0000000..b2189a0 --- /dev/null +++ b/core/src/components/metrics/src/structs.rs @@ -0,0 +1,13 @@ + + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct NetworkMetrics { + pub sk_err: i32, // Offset 284 + pub sk_err_soft: i32, // Offset 600 + pub sk_backlog_len: i32, // Offset 196 + pub sk_wmem_queued: i32, // Offset 376 + pub sk_rcvbuf: i32, // Offset 244 + pub sk_ack_backlog: u32, // Offset 604 + pub sk_drops: i32, // Offset 136 +} \ No newline at end of file diff --git a/core/src/components/metrics_tracer/src/bindings.rs b/core/src/components/metrics_tracer/src/bindings.rs index b2b48e2..caab2cf 100644 --- a/core/src/components/metrics_tracer/src/bindings.rs +++ b/core/src/components/metrics_tracer/src/bindings.rs @@ -255,12 +255,6 @@ pub const socket_state_SS_CONNECTING: socket_state = 2; pub const socket_state_SS_CONNECTED: socket_state = 3; pub const socket_state_SS_DISCONNECTING: socket_state = 4; pub type socket_state = ::core::ffi::c_uint; -pub const audit_mode_AUDIT_NORMAL: audit_mode = 0; -pub const audit_mode_AUDIT_QUIET_DENIED: audit_mode = 1; -pub const audit_mode_AUDIT_QUIET: audit_mode = 2; -pub const audit_mode_AUDIT_NOQUIET: audit_mode = 3; -pub const audit_mode_AUDIT_ALL: audit_mode = 4; -pub type audit_mode = ::core::ffi::c_uint; pub const audit_state_AUDIT_STATE_DISABLED: audit_state = 0; pub const audit_state_AUDIT_STATE_BUILD: audit_state = 1; pub const audit_state_AUDIT_STATE_RECORD: audit_state = 2; @@ -309,7 +303,7 @@ pub const bpf_arg_type_ARG_PTR_TO_FUNC: bpf_arg_type = 18; pub const bpf_arg_type_ARG_PTR_TO_STACK: bpf_arg_type = 19; pub const bpf_arg_type_ARG_PTR_TO_CONST_STR: bpf_arg_type = 20; pub const bpf_arg_type_ARG_PTR_TO_TIMER: bpf_arg_type = 21; -pub const bpf_arg_type_ARG_PTR_TO_KPTR: bpf_arg_type = 22; +pub const bpf_arg_type_ARG_KPTR_XCHG_DEST: bpf_arg_type = 22; pub const bpf_arg_type_ARG_PTR_TO_DYNPTR: bpf_arg_type = 23; pub const bpf_arg_type___BPF_ARG_TYPE_MAX: bpf_arg_type = 24; pub const bpf_arg_type_ARG_PTR_TO_MAP_VALUE_OR_NULL: bpf_arg_type = 259; @@ -2014,17 +2008,6 @@ pub type regmap_endian = ::core::ffi::c_uint; pub const regulator_type_REGULATOR_VOLTAGE: regulator_type = 0; pub const regulator_type_REGULATOR_CURRENT: regulator_type = 1; pub type regulator_type = ::core::ffi::c_uint; -pub const rfkill_type_RFKILL_TYPE_ALL: rfkill_type = 0; -pub const rfkill_type_RFKILL_TYPE_WLAN: rfkill_type = 1; -pub const rfkill_type_RFKILL_TYPE_BLUETOOTH: rfkill_type = 2; -pub const rfkill_type_RFKILL_TYPE_UWB: rfkill_type = 3; -pub const rfkill_type_RFKILL_TYPE_WIMAX: rfkill_type = 4; -pub const rfkill_type_RFKILL_TYPE_WWAN: rfkill_type = 5; -pub const rfkill_type_RFKILL_TYPE_GPS: rfkill_type = 6; -pub const rfkill_type_RFKILL_TYPE_FM: rfkill_type = 7; -pub const rfkill_type_RFKILL_TYPE_NFC: rfkill_type = 8; -pub const rfkill_type_NUM_RFKILL_TYPES: rfkill_type = 9; -pub type rfkill_type = ::core::ffi::c_uint; pub const rpm_request_RPM_REQ_NONE: rpm_request = 0; pub const rpm_request_RPM_REQ_IDLE: rpm_request = 1; pub const rpm_request_RPM_REQ_SUSPEND: rpm_request = 2; @@ -2080,15 +2063,21 @@ pub const sk_rst_reason_SK_RST_REASON_TCP_OLD_ACK: sk_rst_reason = 7; pub const sk_rst_reason_SK_RST_REASON_TCP_ABORT_ON_DATA: sk_rst_reason = 8; pub const sk_rst_reason_SK_RST_REASON_TCP_TIMEWAIT_SOCKET: sk_rst_reason = 9; pub const sk_rst_reason_SK_RST_REASON_INVALID_SYN: sk_rst_reason = 10; -pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EUNSPEC: sk_rst_reason = 11; -pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EMPTCP: sk_rst_reason = 12; -pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_ERESOURCE: sk_rst_reason = 13; -pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EPROHIBIT: sk_rst_reason = 14; -pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EWQ2BIG: sk_rst_reason = 15; -pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EBADPERF: sk_rst_reason = 16; -pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EMIDDLEBOX: sk_rst_reason = 17; -pub const sk_rst_reason_SK_RST_REASON_ERROR: sk_rst_reason = 18; -pub const sk_rst_reason_SK_RST_REASON_MAX: sk_rst_reason = 19; +pub const sk_rst_reason_SK_RST_REASON_TCP_ABORT_ON_CLOSE: sk_rst_reason = 11; +pub const sk_rst_reason_SK_RST_REASON_TCP_ABORT_ON_LINGER: sk_rst_reason = 12; +pub const sk_rst_reason_SK_RST_REASON_TCP_ABORT_ON_MEMORY: sk_rst_reason = 13; +pub const sk_rst_reason_SK_RST_REASON_TCP_STATE: sk_rst_reason = 14; +pub const sk_rst_reason_SK_RST_REASON_TCP_KEEPALIVE_TIMEOUT: sk_rst_reason = 15; +pub const sk_rst_reason_SK_RST_REASON_TCP_DISCONNECT_WITH_DATA: sk_rst_reason = 16; +pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EUNSPEC: sk_rst_reason = 17; +pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EMPTCP: sk_rst_reason = 18; +pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_ERESOURCE: sk_rst_reason = 19; +pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EPROHIBIT: sk_rst_reason = 20; +pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EWQ2BIG: sk_rst_reason = 21; +pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EBADPERF: sk_rst_reason = 22; +pub const sk_rst_reason_SK_RST_REASON_MPTCP_RST_EMIDDLEBOX: sk_rst_reason = 23; +pub const sk_rst_reason_SK_RST_REASON_ERROR: sk_rst_reason = 24; +pub const sk_rst_reason_SK_RST_REASON_MAX: sk_rst_reason = 25; pub type sk_rst_reason = ::core::ffi::c_uint; pub const svc_auth_status_SVC_GARBAGE: svc_auth_status = 1; pub const svc_auth_status_SVC_SYSERR: svc_auth_status = 2; @@ -2178,6 +2167,11 @@ pub const timespec_type_TT_NONE: timespec_type = 0; pub const timespec_type_TT_NATIVE: timespec_type = 1; pub const timespec_type_TT_COMPAT: timespec_type = 2; pub type timespec_type = ::core::ffi::c_uint; +pub const tk_offsets_TK_OFFS_REAL: tk_offsets = 0; +pub const tk_offsets_TK_OFFS_BOOT: tk_offsets = 1; +pub const tk_offsets_TK_OFFS_TAI: tk_offsets = 2; +pub const tk_offsets_TK_OFFS_MAX: tk_offsets = 3; +pub type tk_offsets = ::core::ffi::c_uint; pub const tls_offload_ctx_dir_TLS_OFFLOAD_CTX_DIR_RX: tls_offload_ctx_dir = 0; pub const tls_offload_ctx_dir_TLS_OFFLOAD_CTX_DIR_TX: tls_offload_ctx_dir = 1; pub type tls_offload_ctx_dir = ::core::ffi::c_uint; @@ -2190,10 +2184,6 @@ pub const trace_reg_TRACE_REG_PERF_CLOSE: trace_reg = 5; pub const trace_reg_TRACE_REG_PERF_ADD: trace_reg = 6; pub const trace_reg_TRACE_REG_PERF_DEL: trace_reg = 7; pub type trace_reg = ::core::ffi::c_uint; -pub const uprobe_filter_ctx_UPROBE_FILTER_REGISTER: uprobe_filter_ctx = 0; -pub const uprobe_filter_ctx_UPROBE_FILTER_UNREGISTER: uprobe_filter_ctx = 1; -pub const uprobe_filter_ctx_UPROBE_FILTER_MMAP: uprobe_filter_ctx = 2; -pub type uprobe_filter_ctx = ::core::ffi::c_uint; pub const uprobe_task_state_UTASK_RUNNING: uprobe_task_state = 0; pub const uprobe_task_state_UTASK_SSTEP: uprobe_task_state = 1; pub const uprobe_task_state_UTASK_SSTEP_ACK: uprobe_task_state = 2; @@ -2305,7 +2295,6 @@ pub type qsize_t = ::core::ffi::c_longlong; pub type time64_t = __s64; pub type __u64 = ::core::ffi::c_ulonglong; pub type Elf64_Addr = __u64; -pub type Elf64_Off = __u64; pub type Elf64_Xword = __u64; pub type u64_ = __u64; pub type __addrpair = __u64; @@ -2394,6 +2383,43 @@ pub type vm_fault_t = ::core::ffi::c_uint; pub type xdp_features_t = u32_; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct list_head { + pub next: *mut list_head, + pub prev: *mut list_head, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of list_head"][::core::mem::size_of::() - 16usize]; + ["Alignment of list_head"][::core::mem::align_of::() - 8usize]; + ["Offset of field: list_head::next"][::core::mem::offset_of!(list_head, next) - 0usize]; + ["Offset of field: list_head::prev"][::core::mem::offset_of!(list_head, prev) - 8usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct atomic_t { + pub counter: ::core::ffi::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of atomic_t"][::core::mem::size_of::() - 4usize]; + ["Alignment of atomic_t"][::core::mem::align_of::() - 4usize]; + ["Offset of field: atomic_t::counter"][::core::mem::offset_of!(atomic_t, counter) - 0usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct refcount_struct { + pub refs: atomic_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of refcount_struct"][::core::mem::size_of::() - 4usize]; + ["Alignment of refcount_struct"][::core::mem::align_of::() - 4usize]; + ["Offset of field: refcount_struct::refs"] + [::core::mem::offset_of!(refcount_struct, refs) - 0usize]; +}; +pub type refcount_t = refcount_struct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct __kernel_fsid_t { pub val: [::core::ffi::c_int; 2usize], } @@ -2418,17 +2444,6 @@ const _: () = { pub type atomic_long_t = atomic64_t; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct atomic_t { - pub counter: ::core::ffi::c_int, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of atomic_t"][::core::mem::size_of::() - 4usize]; - ["Alignment of atomic_t"][::core::mem::align_of::() - 4usize]; - ["Offset of field: atomic_t::counter"][::core::mem::offset_of!(atomic_t, counter) - 0usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct hlist_node { pub next: *mut hlist_node, pub pprev: *mut *mut hlist_node, @@ -2789,6 +2804,17 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct freeptr_t { + pub v: ::core::ffi::c_ulong, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of freeptr_t"][::core::mem::size_of::() - 8usize]; + ["Alignment of freeptr_t"][::core::mem::align_of::() - 8usize]; + ["Offset of field: freeptr_t::v"][::core::mem::offset_of!(freeptr_t, v) - 0usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct kernel_cap_t { pub val: u64_, } @@ -2895,19 +2921,6 @@ const _: () = { [::core::mem::offset_of!(raw_spinlock, raw_lock) - 0usize]; }; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct list_head { - pub next: *mut list_head, - pub prev: *mut list_head, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of list_head"][::core::mem::size_of::() - 16usize]; - ["Alignment of list_head"][::core::mem::align_of::() - 8usize]; - ["Offset of field: list_head::next"][::core::mem::offset_of!(list_head, next) - 0usize]; - ["Offset of field: list_head::prev"][::core::mem::offset_of!(list_head, prev) - 8usize]; -}; -#[repr(C)] #[derive(Copy, Clone)] pub struct rw_semaphore { pub count: atomic_long_t, @@ -3016,6 +3029,34 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct uuid_t { + pub b: [__u8; 16usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of uuid_t"][::core::mem::size_of::() - 16usize]; + ["Alignment of uuid_t"][::core::mem::align_of::() - 1usize]; + ["Offset of field: uuid_t::b"][::core::mem::offset_of!(uuid_t, b) - 0usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_uuid_t { + pub uuid: uuid_t, + pub list: list_head, + pub net: *mut net, + pub dom: *mut auth_domain, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of nfs_uuid_t"][::core::mem::size_of::() - 48usize]; + ["Alignment of nfs_uuid_t"][::core::mem::align_of::() - 8usize]; + ["Offset of field: nfs_uuid_t::uuid"][::core::mem::offset_of!(nfs_uuid_t, uuid) - 0usize]; + ["Offset of field: nfs_uuid_t::list"][::core::mem::offset_of!(nfs_uuid_t, list) - 16usize]; + ["Offset of field: nfs_uuid_t::net"][::core::mem::offset_of!(nfs_uuid_t, net) - 32usize]; + ["Offset of field: nfs_uuid_t::dom"][::core::mem::offset_of!(nfs_uuid_t, dom) - 40usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct nodemask_t { pub bits: [::core::ffi::c_ulong; 16usize], } @@ -3334,17 +3375,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct uuid_t { - pub b: [__u8; 16usize], -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of uuid_t"][::core::mem::size_of::() - 16usize]; - ["Alignment of uuid_t"][::core::mem::align_of::() - 1usize]; - ["Offset of field: uuid_t::b"][::core::mem::offset_of!(uuid_t, b) - 0usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct vfsgid_t { pub val: gid_t, } @@ -3435,19 +3465,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct refcount_struct { - pub refs: atomic_t, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of refcount_struct"][::core::mem::size_of::() - 4usize]; - ["Alignment of refcount_struct"][::core::mem::align_of::() - 4usize]; - ["Offset of field: refcount_struct::refs"] - [::core::mem::offset_of!(refcount_struct, refs) - 0usize]; -}; -pub type refcount_t = refcount_struct; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct sk_buff_list { pub next: *mut sk_buff, pub prev: *mut sk_buff, @@ -5550,10 +5567,8 @@ pub struct device { pub dma_range_map: *const bus_dma_region, pub dma_parms: *mut device_dma_parameters, pub dma_pools: list_head, + pub cma_area: *mut cma, pub dma_io_tlb_mem: *mut io_tlb_mem, - pub dma_io_tlb_pools: list_head, - pub dma_io_tlb_lock: spinlock_t, - pub dma_uses_io_tlb: bool_, pub archdata: dev_archdata, pub of_node: *mut device_node, pub fwnode: *mut fwnode_handle, @@ -5575,7 +5590,7 @@ pub struct device { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of device"][::core::mem::size_of::() - 768usize]; + ["Size of device"][::core::mem::size_of::() - 752usize]; ["Alignment of device"][::core::mem::align_of::() - 8usize]; ["Offset of field: device::kobj"][::core::mem::offset_of!(device, kobj) - 0usize]; ["Offset of field: device::parent"][::core::mem::offset_of!(device, parent) - 64usize]; @@ -5605,33 +5620,28 @@ const _: () = { [::core::mem::offset_of!(device, dma_range_map) - 600usize]; ["Offset of field: device::dma_parms"][::core::mem::offset_of!(device, dma_parms) - 608usize]; ["Offset of field: device::dma_pools"][::core::mem::offset_of!(device, dma_pools) - 616usize]; + ["Offset of field: device::cma_area"][::core::mem::offset_of!(device, cma_area) - 632usize]; ["Offset of field: device::dma_io_tlb_mem"] - [::core::mem::offset_of!(device, dma_io_tlb_mem) - 632usize]; - ["Offset of field: device::dma_io_tlb_pools"] - [::core::mem::offset_of!(device, dma_io_tlb_pools) - 640usize]; - ["Offset of field: device::dma_io_tlb_lock"] - [::core::mem::offset_of!(device, dma_io_tlb_lock) - 656usize]; - ["Offset of field: device::dma_uses_io_tlb"] - [::core::mem::offset_of!(device, dma_uses_io_tlb) - 660usize]; - ["Offset of field: device::archdata"][::core::mem::offset_of!(device, archdata) - 661usize]; - ["Offset of field: device::of_node"][::core::mem::offset_of!(device, of_node) - 664usize]; - ["Offset of field: device::fwnode"][::core::mem::offset_of!(device, fwnode) - 672usize]; - ["Offset of field: device::numa_node"][::core::mem::offset_of!(device, numa_node) - 680usize]; - ["Offset of field: device::devt"][::core::mem::offset_of!(device, devt) - 684usize]; - ["Offset of field: device::id"][::core::mem::offset_of!(device, id) - 688usize]; + [::core::mem::offset_of!(device, dma_io_tlb_mem) - 640usize]; + ["Offset of field: device::archdata"][::core::mem::offset_of!(device, archdata) - 648usize]; + ["Offset of field: device::of_node"][::core::mem::offset_of!(device, of_node) - 648usize]; + ["Offset of field: device::fwnode"][::core::mem::offset_of!(device, fwnode) - 656usize]; + ["Offset of field: device::numa_node"][::core::mem::offset_of!(device, numa_node) - 664usize]; + ["Offset of field: device::devt"][::core::mem::offset_of!(device, devt) - 668usize]; + ["Offset of field: device::id"][::core::mem::offset_of!(device, id) - 672usize]; ["Offset of field: device::devres_lock"] - [::core::mem::offset_of!(device, devres_lock) - 692usize]; + [::core::mem::offset_of!(device, devres_lock) - 676usize]; ["Offset of field: device::devres_head"] - [::core::mem::offset_of!(device, devres_head) - 696usize]; - ["Offset of field: device::class"][::core::mem::offset_of!(device, class) - 712usize]; - ["Offset of field: device::groups"][::core::mem::offset_of!(device, groups) - 720usize]; - ["Offset of field: device::release"][::core::mem::offset_of!(device, release) - 728usize]; + [::core::mem::offset_of!(device, devres_head) - 680usize]; + ["Offset of field: device::class"][::core::mem::offset_of!(device, class) - 696usize]; + ["Offset of field: device::groups"][::core::mem::offset_of!(device, groups) - 704usize]; + ["Offset of field: device::release"][::core::mem::offset_of!(device, release) - 712usize]; ["Offset of field: device::iommu_group"] - [::core::mem::offset_of!(device, iommu_group) - 736usize]; - ["Offset of field: device::iommu"][::core::mem::offset_of!(device, iommu) - 744usize]; + [::core::mem::offset_of!(device, iommu_group) - 720usize]; + ["Offset of field: device::iommu"][::core::mem::offset_of!(device, iommu) - 728usize]; ["Offset of field: device::physical_location"] - [::core::mem::offset_of!(device, physical_location) - 752usize]; - ["Offset of field: device::removable"][::core::mem::offset_of!(device, removable) - 760usize]; + [::core::mem::offset_of!(device, physical_location) - 736usize]; + ["Offset of field: device::removable"][::core::mem::offset_of!(device, removable) - 744usize]; }; impl device { #[inline] @@ -5833,6 +5843,39 @@ impl device { } } #[inline] + pub fn dma_iommu(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_dma_iommu(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dma_iommu_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dma_iommu_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] pub fn new_bitfield_1( offline_disabled: bool_, offline: bool_, @@ -5840,6 +5883,7 @@ impl device { state_synced: bool_, can_match: bool_, dma_skip_sync: bool_, + dma_iommu: bool_, ) -> __BindgenBitfieldUnit<[u8; 1usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { @@ -5866,6 +5910,10 @@ impl device { let dma_skip_sync: u8 = unsafe { ::core::mem::transmute(dma_skip_sync) }; dma_skip_sync as u64 }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let dma_iommu: u8 = unsafe { ::core::mem::transmute(dma_iommu) }; + dma_iommu as u64 + }); __bindgen_bitfield_unit } } @@ -6555,61 +6603,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct aa_attachment { - pub xmatch_str: *const ::core::ffi::c_char, - pub xmatch: *mut aa_policydb, - pub xmatch_len: ::core::ffi::c_uint, - pub xattr_count: ::core::ffi::c_int, - pub xattrs: *mut *mut ::core::ffi::c_char, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_attachment"][::core::mem::size_of::() - 32usize]; - ["Alignment of aa_attachment"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_attachment::xmatch_str"] - [::core::mem::offset_of!(aa_attachment, xmatch_str) - 0usize]; - ["Offset of field: aa_attachment::xmatch"] - [::core::mem::offset_of!(aa_attachment, xmatch) - 8usize]; - ["Offset of field: aa_attachment::xmatch_len"] - [::core::mem::offset_of!(aa_attachment, xmatch_len) - 16usize]; - ["Offset of field: aa_attachment::xattr_count"] - [::core::mem::offset_of!(aa_attachment, xattr_count) - 20usize]; - ["Offset of field: aa_attachment::xattrs"] - [::core::mem::offset_of!(aa_attachment, xattrs) - 24usize]; -}; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct aa_audit_cache { - pub lock: spinlock_t, - pub size: ::core::ffi::c_int, - pub head: list_head, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_audit_cache"][::core::mem::size_of::() - 24usize]; - ["Alignment of aa_audit_cache"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_audit_cache::lock"] - [::core::mem::offset_of!(aa_audit_cache, lock) - 0usize]; - ["Offset of field: aa_audit_cache::size"] - [::core::mem::offset_of!(aa_audit_cache, size) - 4usize]; - ["Offset of field: aa_audit_cache::head"] - [::core::mem::offset_of!(aa_audit_cache, head) - 8usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct path { - pub mnt: *mut vfsmount, - pub dentry: *mut dentry, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of path"][::core::mem::size_of::() - 16usize]; - ["Alignment of path"][::core::mem::align_of::() - 8usize]; - ["Offset of field: path::mnt"][::core::mem::offset_of!(path, mnt) - 0usize]; - ["Offset of field: path::dentry"][::core::mem::offset_of!(path, dentry) - 8usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct rhash_head { pub next: *mut rhash_head, } @@ -6621,52 +6614,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct aa_dfa { - pub count: kref, - pub flags: u16_, - pub max_oob: u32_, - pub tables: [*mut table_header; 8usize], -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_dfa"][::core::mem::size_of::() - 80usize]; - ["Alignment of aa_dfa"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_dfa::count"][::core::mem::offset_of!(aa_dfa, count) - 0usize]; - ["Offset of field: aa_dfa::flags"][::core::mem::offset_of!(aa_dfa, flags) - 4usize]; - ["Offset of field: aa_dfa::max_oob"][::core::mem::offset_of!(aa_dfa, max_oob) - 8usize]; - ["Offset of field: aa_dfa::tables"][::core::mem::offset_of!(aa_dfa, tables) - 16usize]; -}; -#[repr(C)] -#[derive(Debug)] -pub struct aa_label { - pub count: kref, - pub node: rb_node, - pub rcu: callback_head, - pub proxy: *mut aa_proxy, - pub hname: *mut ::core::ffi::c_char, - pub flags: ::core::ffi::c_long, - pub secid: u32_, - pub size: ::core::ffi::c_int, - pub mediates: u64_, - pub vec: __IncompleteArrayField<*mut aa_profile>, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_label"][::core::mem::size_of::() - 88usize]; - ["Alignment of aa_label"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_label::count"][::core::mem::offset_of!(aa_label, count) - 0usize]; - ["Offset of field: aa_label::node"][::core::mem::offset_of!(aa_label, node) - 8usize]; - ["Offset of field: aa_label::rcu"][::core::mem::offset_of!(aa_label, rcu) - 32usize]; - ["Offset of field: aa_label::proxy"][::core::mem::offset_of!(aa_label, proxy) - 48usize]; - ["Offset of field: aa_label::hname"][::core::mem::offset_of!(aa_label, hname) - 56usize]; - ["Offset of field: aa_label::flags"][::core::mem::offset_of!(aa_label, flags) - 64usize]; - ["Offset of field: aa_label::secid"][::core::mem::offset_of!(aa_label, secid) - 72usize]; - ["Offset of field: aa_label::size"][::core::mem::offset_of!(aa_label, size) - 76usize]; - ["Offset of field: aa_label::mediates"][::core::mem::offset_of!(aa_label, mediates) - 80usize]; - ["Offset of field: aa_label::vec"][::core::mem::offset_of!(aa_label, vec) - 88usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct rb_root { pub rb_node: *mut rb_node, } @@ -6677,300 +6624,6 @@ const _: () = { ["Offset of field: rb_root::rb_node"][::core::mem::offset_of!(rb_root, rb_node) - 0usize]; }; #[repr(C)] -#[derive(Copy, Clone)] -pub struct aa_labelset { - pub lock: rwlock_t, - pub root: rb_root, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_labelset"][::core::mem::size_of::() - 16usize]; - ["Alignment of aa_labelset"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_labelset::lock"][::core::mem::offset_of!(aa_labelset, lock) - 0usize]; - ["Offset of field: aa_labelset::root"][::core::mem::offset_of!(aa_labelset, root) - 8usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct aa_loaddata { - pub count: kref, - pub list: list_head, - pub work: work_struct, - pub dents: [*mut dentry; 6usize], - pub ns: *mut aa_ns, - pub name: *mut ::core::ffi::c_char, - pub size: usize, - pub compressed_size: usize, - pub revision: ::core::ffi::c_long, - pub abi: ::core::ffi::c_int, - pub hash: *mut ::core::ffi::c_uchar, - pub data: *mut ::core::ffi::c_char, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_loaddata"][::core::mem::size_of::() - 168usize]; - ["Alignment of aa_loaddata"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_loaddata::count"][::core::mem::offset_of!(aa_loaddata, count) - 0usize]; - ["Offset of field: aa_loaddata::list"][::core::mem::offset_of!(aa_loaddata, list) - 8usize]; - ["Offset of field: aa_loaddata::work"][::core::mem::offset_of!(aa_loaddata, work) - 24usize]; - ["Offset of field: aa_loaddata::dents"][::core::mem::offset_of!(aa_loaddata, dents) - 56usize]; - ["Offset of field: aa_loaddata::ns"][::core::mem::offset_of!(aa_loaddata, ns) - 104usize]; - ["Offset of field: aa_loaddata::name"][::core::mem::offset_of!(aa_loaddata, name) - 112usize]; - ["Offset of field: aa_loaddata::size"][::core::mem::offset_of!(aa_loaddata, size) - 120usize]; - ["Offset of field: aa_loaddata::compressed_size"] - [::core::mem::offset_of!(aa_loaddata, compressed_size) - 128usize]; - ["Offset of field: aa_loaddata::revision"] - [::core::mem::offset_of!(aa_loaddata, revision) - 136usize]; - ["Offset of field: aa_loaddata::abi"][::core::mem::offset_of!(aa_loaddata, abi) - 144usize]; - ["Offset of field: aa_loaddata::hash"][::core::mem::offset_of!(aa_loaddata, hash) - 152usize]; - ["Offset of field: aa_loaddata::data"][::core::mem::offset_of!(aa_loaddata, data) - 160usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct aa_net_compat { - pub allow: [u16_; 46usize], - pub audit: [u16_; 46usize], - pub quiet: [u16_; 46usize], -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_net_compat"][::core::mem::size_of::() - 276usize]; - ["Alignment of aa_net_compat"][::core::mem::align_of::() - 2usize]; - ["Offset of field: aa_net_compat::allow"] - [::core::mem::offset_of!(aa_net_compat, allow) - 0usize]; - ["Offset of field: aa_net_compat::audit"] - [::core::mem::offset_of!(aa_net_compat, audit) - 92usize]; - ["Offset of field: aa_net_compat::quiet"] - [::core::mem::offset_of!(aa_net_compat, quiet) - 184usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct aa_policy { - pub name: *const ::core::ffi::c_char, - pub hname: *mut ::core::ffi::c_char, - pub list: list_head, - pub profiles: list_head, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_policy"][::core::mem::size_of::() - 48usize]; - ["Alignment of aa_policy"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_policy::name"][::core::mem::offset_of!(aa_policy, name) - 0usize]; - ["Offset of field: aa_policy::hname"][::core::mem::offset_of!(aa_policy, hname) - 8usize]; - ["Offset of field: aa_policy::list"][::core::mem::offset_of!(aa_policy, list) - 16usize]; - ["Offset of field: aa_policy::profiles"] - [::core::mem::offset_of!(aa_policy, profiles) - 32usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct aa_ns_acct { - pub max_size: ::core::ffi::c_int, - pub max_count: ::core::ffi::c_int, - pub size: ::core::ffi::c_int, - pub count: ::core::ffi::c_int, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_ns_acct"][::core::mem::size_of::() - 16usize]; - ["Alignment of aa_ns_acct"][::core::mem::align_of::() - 4usize]; - ["Offset of field: aa_ns_acct::max_size"] - [::core::mem::offset_of!(aa_ns_acct, max_size) - 0usize]; - ["Offset of field: aa_ns_acct::max_count"] - [::core::mem::offset_of!(aa_ns_acct, max_count) - 4usize]; - ["Offset of field: aa_ns_acct::size"][::core::mem::offset_of!(aa_ns_acct, size) - 8usize]; - ["Offset of field: aa_ns_acct::count"][::core::mem::offset_of!(aa_ns_acct, count) - 12usize]; -}; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct aa_ns { - pub base: aa_policy, - pub parent: *mut aa_ns, - pub lock: mutex, - pub acct: aa_ns_acct, - pub unconfined: *mut aa_profile, - pub sub_ns: list_head, - pub uniq_null: atomic_t, - pub uniq_id: ::core::ffi::c_long, - pub level: ::core::ffi::c_int, - pub revision: ::core::ffi::c_long, - pub wait: wait_queue_head_t, - pub listener_lock: spinlock_t, - pub listeners: list_head, - pub labels: aa_labelset, - pub rawdata_list: list_head, - pub dents: [*mut dentry; 13usize], -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_ns"][::core::mem::size_of::() - 344usize]; - ["Alignment of aa_ns"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_ns::base"][::core::mem::offset_of!(aa_ns, base) - 0usize]; - ["Offset of field: aa_ns::parent"][::core::mem::offset_of!(aa_ns, parent) - 48usize]; - ["Offset of field: aa_ns::lock"][::core::mem::offset_of!(aa_ns, lock) - 56usize]; - ["Offset of field: aa_ns::acct"][::core::mem::offset_of!(aa_ns, acct) - 88usize]; - ["Offset of field: aa_ns::unconfined"][::core::mem::offset_of!(aa_ns, unconfined) - 104usize]; - ["Offset of field: aa_ns::sub_ns"][::core::mem::offset_of!(aa_ns, sub_ns) - 112usize]; - ["Offset of field: aa_ns::uniq_null"][::core::mem::offset_of!(aa_ns, uniq_null) - 128usize]; - ["Offset of field: aa_ns::uniq_id"][::core::mem::offset_of!(aa_ns, uniq_id) - 136usize]; - ["Offset of field: aa_ns::level"][::core::mem::offset_of!(aa_ns, level) - 144usize]; - ["Offset of field: aa_ns::revision"][::core::mem::offset_of!(aa_ns, revision) - 152usize]; - ["Offset of field: aa_ns::wait"][::core::mem::offset_of!(aa_ns, wait) - 160usize]; - ["Offset of field: aa_ns::listener_lock"] - [::core::mem::offset_of!(aa_ns, listener_lock) - 184usize]; - ["Offset of field: aa_ns::listeners"][::core::mem::offset_of!(aa_ns, listeners) - 192usize]; - ["Offset of field: aa_ns::labels"][::core::mem::offset_of!(aa_ns, labels) - 208usize]; - ["Offset of field: aa_ns::rawdata_list"] - [::core::mem::offset_of!(aa_ns, rawdata_list) - 224usize]; - ["Offset of field: aa_ns::dents"][::core::mem::offset_of!(aa_ns, dents) - 240usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct aa_perms { - pub allow: u32_, - pub deny: u32_, - pub subtree: u32_, - pub cond: u32_, - pub kill: u32_, - pub complain: u32_, - pub prompt: u32_, - pub audit: u32_, - pub quiet: u32_, - pub hide: u32_, - pub xindex: u32_, - pub tag: u32_, - pub label: u32_, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_perms"][::core::mem::size_of::() - 52usize]; - ["Alignment of aa_perms"][::core::mem::align_of::() - 4usize]; - ["Offset of field: aa_perms::allow"][::core::mem::offset_of!(aa_perms, allow) - 0usize]; - ["Offset of field: aa_perms::deny"][::core::mem::offset_of!(aa_perms, deny) - 4usize]; - ["Offset of field: aa_perms::subtree"][::core::mem::offset_of!(aa_perms, subtree) - 8usize]; - ["Offset of field: aa_perms::cond"][::core::mem::offset_of!(aa_perms, cond) - 12usize]; - ["Offset of field: aa_perms::kill"][::core::mem::offset_of!(aa_perms, kill) - 16usize]; - ["Offset of field: aa_perms::complain"][::core::mem::offset_of!(aa_perms, complain) - 20usize]; - ["Offset of field: aa_perms::prompt"][::core::mem::offset_of!(aa_perms, prompt) - 24usize]; - ["Offset of field: aa_perms::audit"][::core::mem::offset_of!(aa_perms, audit) - 28usize]; - ["Offset of field: aa_perms::quiet"][::core::mem::offset_of!(aa_perms, quiet) - 32usize]; - ["Offset of field: aa_perms::hide"][::core::mem::offset_of!(aa_perms, hide) - 36usize]; - ["Offset of field: aa_perms::xindex"][::core::mem::offset_of!(aa_perms, xindex) - 40usize]; - ["Offset of field: aa_perms::tag"][::core::mem::offset_of!(aa_perms, tag) - 44usize]; - ["Offset of field: aa_perms::label"][::core::mem::offset_of!(aa_perms, label) - 48usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct aa_str_table { - pub size: ::core::ffi::c_int, - pub table: *mut *mut ::core::ffi::c_char, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_str_table"][::core::mem::size_of::() - 16usize]; - ["Alignment of aa_str_table"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_str_table::size"][::core::mem::offset_of!(aa_str_table, size) - 0usize]; - ["Offset of field: aa_str_table::table"][::core::mem::offset_of!(aa_str_table, table) - 8usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct aa_policydb { - pub count: kref, - pub dfa: *mut aa_dfa, - pub __bindgen_anon_1: aa_policydb__bindgen_ty_1, - pub trans: aa_str_table, - pub start: [::core::ffi::c_uint; 33usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct aa_policydb__bindgen_ty_1 { - pub perms: *mut aa_perms, - pub size: u32_, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_policydb__bindgen_ty_1"] - [::core::mem::size_of::() - 16usize]; - ["Alignment of aa_policydb__bindgen_ty_1"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_policydb__bindgen_ty_1::perms"] - [::core::mem::offset_of!(aa_policydb__bindgen_ty_1, perms) - 0usize]; - ["Offset of field: aa_policydb__bindgen_ty_1::size"] - [::core::mem::offset_of!(aa_policydb__bindgen_ty_1, size) - 8usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_policydb"][::core::mem::size_of::() - 184usize]; - ["Alignment of aa_policydb"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_policydb::count"][::core::mem::offset_of!(aa_policydb, count) - 0usize]; - ["Offset of field: aa_policydb::dfa"][::core::mem::offset_of!(aa_policydb, dfa) - 8usize]; - ["Offset of field: aa_policydb::trans"][::core::mem::offset_of!(aa_policydb, trans) - 32usize]; - ["Offset of field: aa_policydb::start"][::core::mem::offset_of!(aa_policydb, start) - 48usize]; -}; -#[repr(C)] -pub struct aa_profile { - pub base: aa_policy, - pub parent: *mut aa_profile, - pub ns: *mut aa_ns, - pub rename: *const ::core::ffi::c_char, - pub audit: audit_mode, - pub mode: ::core::ffi::c_long, - pub path_flags: u32_, - pub signal: ::core::ffi::c_int, - pub disconnected: *const ::core::ffi::c_char, - pub attach: aa_attachment, - pub rules: list_head, - pub net_compat: *mut aa_net_compat, - pub learning_cache: aa_audit_cache, - pub rawdata: *mut aa_loaddata, - pub hash: *mut ::core::ffi::c_uchar, - pub dirname: *mut ::core::ffi::c_char, - pub dents: [*mut dentry; 10usize], - pub data: *mut rhashtable, - pub label: aa_label, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_profile"][::core::mem::size_of::() - 384usize]; - ["Alignment of aa_profile"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_profile::base"][::core::mem::offset_of!(aa_profile, base) - 0usize]; - ["Offset of field: aa_profile::parent"][::core::mem::offset_of!(aa_profile, parent) - 48usize]; - ["Offset of field: aa_profile::ns"][::core::mem::offset_of!(aa_profile, ns) - 56usize]; - ["Offset of field: aa_profile::rename"][::core::mem::offset_of!(aa_profile, rename) - 64usize]; - ["Offset of field: aa_profile::audit"][::core::mem::offset_of!(aa_profile, audit) - 72usize]; - ["Offset of field: aa_profile::mode"][::core::mem::offset_of!(aa_profile, mode) - 80usize]; - ["Offset of field: aa_profile::path_flags"] - [::core::mem::offset_of!(aa_profile, path_flags) - 88usize]; - ["Offset of field: aa_profile::signal"][::core::mem::offset_of!(aa_profile, signal) - 92usize]; - ["Offset of field: aa_profile::disconnected"] - [::core::mem::offset_of!(aa_profile, disconnected) - 96usize]; - ["Offset of field: aa_profile::attach"][::core::mem::offset_of!(aa_profile, attach) - 104usize]; - ["Offset of field: aa_profile::rules"][::core::mem::offset_of!(aa_profile, rules) - 136usize]; - ["Offset of field: aa_profile::net_compat"] - [::core::mem::offset_of!(aa_profile, net_compat) - 152usize]; - ["Offset of field: aa_profile::learning_cache"] - [::core::mem::offset_of!(aa_profile, learning_cache) - 160usize]; - ["Offset of field: aa_profile::rawdata"] - [::core::mem::offset_of!(aa_profile, rawdata) - 184usize]; - ["Offset of field: aa_profile::hash"][::core::mem::offset_of!(aa_profile, hash) - 192usize]; - ["Offset of field: aa_profile::dirname"] - [::core::mem::offset_of!(aa_profile, dirname) - 200usize]; - ["Offset of field: aa_profile::dents"][::core::mem::offset_of!(aa_profile, dents) - 208usize]; - ["Offset of field: aa_profile::data"][::core::mem::offset_of!(aa_profile, data) - 288usize]; - ["Offset of field: aa_profile::label"][::core::mem::offset_of!(aa_profile, label) - 296usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct aa_proxy { - pub count: kref, - pub label: *mut aa_label, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of aa_proxy"][::core::mem::size_of::() - 16usize]; - ["Alignment of aa_proxy"][::core::mem::align_of::() - 8usize]; - ["Offset of field: aa_proxy::count"][::core::mem::offset_of!(aa_proxy, count) - 0usize]; - ["Offset of field: aa_proxy::label"][::core::mem::offset_of!(aa_proxy, label) - 8usize]; -}; -#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct rlimit { pub rlim_cur: __kernel_ulong_t, @@ -7164,7 +6817,6 @@ const _: () = { ["Offset of field: notifier_block::priority"] [::core::mem::offset_of!(notifier_block, priority) - 16usize]; }; -pub type cpumask_var_t = *mut cpumask; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct attribute { @@ -7430,6 +7082,7 @@ const _: () = { ["Offset of field: rcu_work::rcu"][::core::mem::offset_of!(rcu_work, rcu) - 32usize]; ["Offset of field: rcu_work::wq"][::core::mem::offset_of!(rcu_work, wq) - 48usize]; }; +pub type cpumask_var_t = *mut cpumask; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct plist_node { @@ -7524,6 +7177,7 @@ pub struct address_space { pub invalidate_lock: rw_semaphore, pub gfp_mask: gfp_t, pub i_mmap_writable: atomic_t, + pub nr_thps: atomic_t, pub i_mmap: rb_root_cached, pub nrpages: ::core::ffi::c_ulong, pub writeback_index: ::core::ffi::c_ulong, @@ -7537,7 +7191,7 @@ pub struct address_space { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of address_space"][::core::mem::size_of::() - 192usize]; + ["Size of address_space"][::core::mem::size_of::() - 200usize]; ["Alignment of address_space"][::core::mem::align_of::() - 8usize]; ["Offset of field: address_space::host"][::core::mem::offset_of!(address_space, host) - 0usize]; ["Offset of field: address_space::i_pages"] @@ -7548,26 +7202,28 @@ const _: () = { [::core::mem::offset_of!(address_space, gfp_mask) - 64usize]; ["Offset of field: address_space::i_mmap_writable"] [::core::mem::offset_of!(address_space, i_mmap_writable) - 68usize]; + ["Offset of field: address_space::nr_thps"] + [::core::mem::offset_of!(address_space, nr_thps) - 72usize]; ["Offset of field: address_space::i_mmap"] - [::core::mem::offset_of!(address_space, i_mmap) - 72usize]; + [::core::mem::offset_of!(address_space, i_mmap) - 80usize]; ["Offset of field: address_space::nrpages"] - [::core::mem::offset_of!(address_space, nrpages) - 88usize]; + [::core::mem::offset_of!(address_space, nrpages) - 96usize]; ["Offset of field: address_space::writeback_index"] - [::core::mem::offset_of!(address_space, writeback_index) - 96usize]; + [::core::mem::offset_of!(address_space, writeback_index) - 104usize]; ["Offset of field: address_space::a_ops"] - [::core::mem::offset_of!(address_space, a_ops) - 104usize]; + [::core::mem::offset_of!(address_space, a_ops) - 112usize]; ["Offset of field: address_space::flags"] - [::core::mem::offset_of!(address_space, flags) - 112usize]; + [::core::mem::offset_of!(address_space, flags) - 120usize]; ["Offset of field: address_space::wb_err"] - [::core::mem::offset_of!(address_space, wb_err) - 120usize]; + [::core::mem::offset_of!(address_space, wb_err) - 128usize]; ["Offset of field: address_space::i_private_lock"] - [::core::mem::offset_of!(address_space, i_private_lock) - 124usize]; + [::core::mem::offset_of!(address_space, i_private_lock) - 132usize]; ["Offset of field: address_space::i_private_list"] - [::core::mem::offset_of!(address_space, i_private_list) - 128usize]; + [::core::mem::offset_of!(address_space, i_private_list) - 136usize]; ["Offset of field: address_space::i_mmap_rwsem"] - [::core::mem::offset_of!(address_space, i_mmap_rwsem) - 144usize]; + [::core::mem::offset_of!(address_space, i_mmap_rwsem) - 152usize]; ["Offset of field: address_space::i_private_data"] - [::core::mem::offset_of!(address_space, i_private_data) - 184usize]; + [::core::mem::offset_of!(address_space, i_private_data) - 192usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -7594,7 +7250,7 @@ pub struct address_space_operations { arg2: *mut address_space, arg3: loff_t, arg4: ::core::ffi::c_uint, - arg5: *mut *mut page, + arg5: *mut *mut folio, arg6: *mut *mut ::core::ffi::c_void, ) -> ::core::ffi::c_int, >, @@ -7605,7 +7261,7 @@ pub struct address_space_operations { arg3: loff_t, arg4: ::core::ffi::c_uint, arg5: ::core::ffi::c_uint, - arg6: *mut page, + arg6: *mut folio, arg7: *mut ::core::ffi::c_void, ) -> ::core::ffi::c_int, >, @@ -9415,6 +9071,19 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct path { + pub mnt: *mut vfsmount, + pub dentry: *mut dentry, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of path"][::core::mem::size_of::() - 16usize]; + ["Alignment of path"][::core::mem::align_of::() - 8usize]; + ["Offset of field: path::mnt"][::core::mem::offset_of!(path, mnt) - 0usize]; + ["Offset of field: path::dentry"][::core::mem::offset_of!(path, dentry) - 8usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct arch_hw_breakpoint { pub address: ::core::ffi::c_ulong, pub mask: ::core::ffi::c_ulong, @@ -9824,96 +9493,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct lsmblob_selinux { - pub secid: u32_, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of lsmblob_selinux"][::core::mem::size_of::() - 4usize]; - ["Alignment of lsmblob_selinux"][::core::mem::align_of::() - 4usize]; - ["Offset of field: lsmblob_selinux::secid"] - [::core::mem::offset_of!(lsmblob_selinux, secid) - 0usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct lsmblob_smack { - pub skp: *mut smack_known, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of lsmblob_smack"][::core::mem::size_of::() - 8usize]; - ["Alignment of lsmblob_smack"][::core::mem::align_of::() - 8usize]; - ["Offset of field: lsmblob_smack::skp"][::core::mem::offset_of!(lsmblob_smack, skp) - 0usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct lsmblob_apparmor { - pub label: *mut aa_label, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of lsmblob_apparmor"][::core::mem::size_of::() - 8usize]; - ["Alignment of lsmblob_apparmor"][::core::mem::align_of::() - 8usize]; - ["Offset of field: lsmblob_apparmor::label"] - [::core::mem::offset_of!(lsmblob_apparmor, label) - 0usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct lsmblob_bpf { - pub secid: u32_, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of lsmblob_bpf"][::core::mem::size_of::() - 4usize]; - ["Alignment of lsmblob_bpf"][::core::mem::align_of::() - 4usize]; - ["Offset of field: lsmblob_bpf::secid"][::core::mem::offset_of!(lsmblob_bpf, secid) - 0usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct lsmblob { - pub selinux: lsmblob_selinux, - pub smack: lsmblob_smack, - pub apparmor: lsmblob_apparmor, - pub bpf: lsmblob_bpf, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of lsmblob"][::core::mem::size_of::() - 32usize]; - ["Alignment of lsmblob"][::core::mem::align_of::() - 8usize]; - ["Offset of field: lsmblob::selinux"][::core::mem::offset_of!(lsmblob, selinux) - 0usize]; - ["Offset of field: lsmblob::smack"][::core::mem::offset_of!(lsmblob, smack) - 8usize]; - ["Offset of field: lsmblob::apparmor"][::core::mem::offset_of!(lsmblob, apparmor) - 16usize]; - ["Offset of field: lsmblob::bpf"][::core::mem::offset_of!(lsmblob, bpf) - 24usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct timespec64 { - pub tv_sec: time64_t, - pub tv_nsec: ::core::ffi::c_long, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of timespec64"][::core::mem::size_of::() - 16usize]; - ["Alignment of timespec64"][::core::mem::align_of::() - 8usize]; - ["Offset of field: timespec64::tv_sec"][::core::mem::offset_of!(timespec64, tv_sec) - 0usize]; - ["Offset of field: timespec64::tv_nsec"][::core::mem::offset_of!(timespec64, tv_nsec) - 8usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct audit_stamp { - pub ctime: timespec64, - pub serial: ::core::ffi::c_uint, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of audit_stamp"][::core::mem::size_of::() - 24usize]; - ["Alignment of audit_stamp"][::core::mem::align_of::() - 8usize]; - ["Offset of field: audit_stamp::ctime"][::core::mem::offset_of!(audit_stamp, ctime) - 0usize]; - ["Offset of field: audit_stamp::serial"] - [::core::mem::offset_of!(audit_stamp, serial) - 16usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct audit_node { pub list: list_head, pub owner: *mut audit_tree, @@ -9954,6 +9533,19 @@ const _: () = { [::core::mem::offset_of!(audit_chunk, owners) - 80usize]; }; #[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec64 { + pub tv_sec: time64_t, + pub tv_nsec: ::core::ffi::c_long, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of timespec64"][::core::mem::size_of::() - 16usize]; + ["Alignment of timespec64"][::core::mem::align_of::() - 8usize]; + ["Offset of field: timespec64::tv_sec"][::core::mem::offset_of!(timespec64, tv_sec) - 0usize]; + ["Offset of field: timespec64::tv_nsec"][::core::mem::offset_of!(timespec64, tv_nsec) - 8usize]; +}; +#[repr(C)] #[derive(Copy, Clone)] pub struct audit_names { pub list: list_head, @@ -9966,7 +9558,7 @@ pub struct audit_names { pub uid: kuid_t, pub gid: kgid_t, pub rdev: dev_t, - pub oblob: lsmblob, + pub osid: u32_, pub fcap: audit_cap_data, pub fcap_ver: ::core::ffi::c_uint, pub type_: ::core::ffi::c_uchar, @@ -9974,7 +9566,7 @@ pub struct audit_names { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of audit_names"][::core::mem::size_of::() - 144usize]; + ["Size of audit_names"][::core::mem::size_of::() - 112usize]; ["Alignment of audit_names"][::core::mem::align_of::() - 8usize]; ["Offset of field: audit_names::list"][::core::mem::offset_of!(audit_names, list) - 0usize]; ["Offset of field: audit_names::name"][::core::mem::offset_of!(audit_names, name) - 16usize]; @@ -9988,13 +9580,13 @@ const _: () = { ["Offset of field: audit_names::uid"][::core::mem::offset_of!(audit_names, uid) - 48usize]; ["Offset of field: audit_names::gid"][::core::mem::offset_of!(audit_names, gid) - 52usize]; ["Offset of field: audit_names::rdev"][::core::mem::offset_of!(audit_names, rdev) - 56usize]; - ["Offset of field: audit_names::oblob"][::core::mem::offset_of!(audit_names, oblob) - 64usize]; - ["Offset of field: audit_names::fcap"][::core::mem::offset_of!(audit_names, fcap) - 96usize]; + ["Offset of field: audit_names::osid"][::core::mem::offset_of!(audit_names, osid) - 60usize]; + ["Offset of field: audit_names::fcap"][::core::mem::offset_of!(audit_names, fcap) - 64usize]; ["Offset of field: audit_names::fcap_ver"] - [::core::mem::offset_of!(audit_names, fcap_ver) - 136usize]; - ["Offset of field: audit_names::type_"][::core::mem::offset_of!(audit_names, type_) - 140usize]; + [::core::mem::offset_of!(audit_names, fcap_ver) - 104usize]; + ["Offset of field: audit_names::type_"][::core::mem::offset_of!(audit_names, type_) - 108usize]; ["Offset of field: audit_names::should_free"] - [::core::mem::offset_of!(audit_names, should_free) - 141usize]; + [::core::mem::offset_of!(audit_names, should_free) - 109usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -10082,9 +9674,10 @@ pub struct audit_context { pub context: audit_context__bindgen_ty_1, pub state: audit_state, pub current_state: audit_state, - pub stamp: audit_stamp, + pub serial: ::core::ffi::c_uint, pub major: ::core::ffi::c_int, pub uring_op: ::core::ffi::c_int, + pub ctime: timespec64, pub argv: [::core::ffi::c_ulong; 4usize], pub return_code: ::core::ffi::c_long, pub prio: u64_, @@ -10113,7 +9706,7 @@ pub struct audit_context { pub target_auid: kuid_t, pub target_uid: kuid_t, pub target_sessionid: ::core::ffi::c_uint, - pub target_blob: lsmblob, + pub target_sid: u32_, pub target_comm: [::core::ffi::c_char; 16usize], pub trees: *mut audit_tree_refs, pub first_trees: *mut audit_tree_refs, @@ -10167,7 +9760,7 @@ pub struct audit_context__bindgen_ty_2__bindgen_ty_2 { pub uid: kuid_t, pub gid: kgid_t, pub mode: umode_t, - pub oblob: lsmblob, + pub osid: u32_, pub has_perm: ::core::ffi::c_int, pub perm_uid: uid_t, pub perm_gid: gid_t, @@ -10177,7 +9770,7 @@ pub struct audit_context__bindgen_ty_2__bindgen_ty_2 { #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of audit_context__bindgen_ty_2__bindgen_ty_2"] - [::core::mem::size_of::() - 72usize]; + [::core::mem::size_of::() - 40usize]; ["Alignment of audit_context__bindgen_ty_2__bindgen_ty_2"] [::core::mem::align_of::() - 8usize]; ["Offset of field: audit_context__bindgen_ty_2__bindgen_ty_2::uid"] @@ -10186,18 +9779,18 @@ const _: () = { [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, gid) - 4usize]; ["Offset of field: audit_context__bindgen_ty_2__bindgen_ty_2::mode"] [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, mode) - 8usize]; - ["Offset of field: audit_context__bindgen_ty_2__bindgen_ty_2::oblob"] - [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, oblob) - 16usize]; + ["Offset of field: audit_context__bindgen_ty_2__bindgen_ty_2::osid"] + [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, osid) - 12usize]; ["Offset of field: audit_context__bindgen_ty_2__bindgen_ty_2::has_perm"] - [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, has_perm) - 48usize]; + [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, has_perm) - 16usize]; ["Offset of field: audit_context__bindgen_ty_2__bindgen_ty_2::perm_uid"] - [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, perm_uid) - 52usize]; + [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, perm_uid) - 20usize]; ["Offset of field: audit_context__bindgen_ty_2__bindgen_ty_2::perm_gid"] - [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, perm_gid) - 56usize]; + [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, perm_gid) - 24usize]; ["Offset of field: audit_context__bindgen_ty_2__bindgen_ty_2::perm_mode"] - [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, perm_mode) - 60usize]; + [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, perm_mode) - 28usize]; ["Offset of field: audit_context__bindgen_ty_2__bindgen_ty_2::qbytes"] - [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, qbytes) - 64usize]; + [::core::mem::offset_of!(audit_context__bindgen_ty_2__bindgen_ty_2, qbytes) - 32usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -10390,7 +9983,7 @@ const _: () = { }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of audit_context"][::core::mem::size_of::() - 1200usize]; + ["Size of audit_context"][::core::mem::size_of::() - 1008usize]; ["Alignment of audit_context"][::core::mem::align_of::() - 8usize]; ["Offset of field: audit_context::dummy"] [::core::mem::offset_of!(audit_context, dummy) - 0usize]; @@ -10400,12 +9993,14 @@ const _: () = { [::core::mem::offset_of!(audit_context, state) - 8usize]; ["Offset of field: audit_context::current_state"] [::core::mem::offset_of!(audit_context, current_state) - 12usize]; - ["Offset of field: audit_context::stamp"] - [::core::mem::offset_of!(audit_context, stamp) - 16usize]; + ["Offset of field: audit_context::serial"] + [::core::mem::offset_of!(audit_context, serial) - 16usize]; ["Offset of field: audit_context::major"] - [::core::mem::offset_of!(audit_context, major) - 40usize]; + [::core::mem::offset_of!(audit_context, major) - 20usize]; ["Offset of field: audit_context::uring_op"] - [::core::mem::offset_of!(audit_context, uring_op) - 44usize]; + [::core::mem::offset_of!(audit_context, uring_op) - 24usize]; + ["Offset of field: audit_context::ctime"] + [::core::mem::offset_of!(audit_context, ctime) - 32usize]; ["Offset of field: audit_context::argv"] [::core::mem::offset_of!(audit_context, argv) - 48usize]; ["Offset of field: audit_context::return_code"] @@ -10417,65 +10012,64 @@ const _: () = { ["Offset of field: audit_context::preallocated_names"] [::core::mem::offset_of!(audit_context, preallocated_names) - 104usize]; ["Offset of field: audit_context::name_count"] - [::core::mem::offset_of!(audit_context, name_count) - 824usize]; + [::core::mem::offset_of!(audit_context, name_count) - 664usize]; ["Offset of field: audit_context::names_list"] - [::core::mem::offset_of!(audit_context, names_list) - 832usize]; + [::core::mem::offset_of!(audit_context, names_list) - 672usize]; ["Offset of field: audit_context::filterkey"] - [::core::mem::offset_of!(audit_context, filterkey) - 848usize]; - ["Offset of field: audit_context::pwd"][::core::mem::offset_of!(audit_context, pwd) - 856usize]; - ["Offset of field: audit_context::aux"][::core::mem::offset_of!(audit_context, aux) - 872usize]; + [::core::mem::offset_of!(audit_context, filterkey) - 688usize]; + ["Offset of field: audit_context::pwd"][::core::mem::offset_of!(audit_context, pwd) - 696usize]; + ["Offset of field: audit_context::aux"][::core::mem::offset_of!(audit_context, aux) - 712usize]; ["Offset of field: audit_context::aux_pids"] - [::core::mem::offset_of!(audit_context, aux_pids) - 880usize]; + [::core::mem::offset_of!(audit_context, aux_pids) - 720usize]; ["Offset of field: audit_context::sockaddr"] - [::core::mem::offset_of!(audit_context, sockaddr) - 888usize]; + [::core::mem::offset_of!(audit_context, sockaddr) - 728usize]; ["Offset of field: audit_context::sockaddr_len"] - [::core::mem::offset_of!(audit_context, sockaddr_len) - 896usize]; + [::core::mem::offset_of!(audit_context, sockaddr_len) - 736usize]; ["Offset of field: audit_context::ppid"] - [::core::mem::offset_of!(audit_context, ppid) - 904usize]; - ["Offset of field: audit_context::uid"][::core::mem::offset_of!(audit_context, uid) - 908usize]; + [::core::mem::offset_of!(audit_context, ppid) - 744usize]; + ["Offset of field: audit_context::uid"][::core::mem::offset_of!(audit_context, uid) - 748usize]; ["Offset of field: audit_context::euid"] - [::core::mem::offset_of!(audit_context, euid) - 912usize]; + [::core::mem::offset_of!(audit_context, euid) - 752usize]; ["Offset of field: audit_context::suid"] - [::core::mem::offset_of!(audit_context, suid) - 916usize]; + [::core::mem::offset_of!(audit_context, suid) - 756usize]; ["Offset of field: audit_context::fsuid"] - [::core::mem::offset_of!(audit_context, fsuid) - 920usize]; - ["Offset of field: audit_context::gid"][::core::mem::offset_of!(audit_context, gid) - 924usize]; + [::core::mem::offset_of!(audit_context, fsuid) - 760usize]; + ["Offset of field: audit_context::gid"][::core::mem::offset_of!(audit_context, gid) - 764usize]; ["Offset of field: audit_context::egid"] - [::core::mem::offset_of!(audit_context, egid) - 928usize]; + [::core::mem::offset_of!(audit_context, egid) - 768usize]; ["Offset of field: audit_context::sgid"] - [::core::mem::offset_of!(audit_context, sgid) - 932usize]; + [::core::mem::offset_of!(audit_context, sgid) - 772usize]; ["Offset of field: audit_context::fsgid"] - [::core::mem::offset_of!(audit_context, fsgid) - 936usize]; + [::core::mem::offset_of!(audit_context, fsgid) - 776usize]; ["Offset of field: audit_context::personality"] - [::core::mem::offset_of!(audit_context, personality) - 944usize]; + [::core::mem::offset_of!(audit_context, personality) - 784usize]; ["Offset of field: audit_context::arch"] - [::core::mem::offset_of!(audit_context, arch) - 952usize]; + [::core::mem::offset_of!(audit_context, arch) - 792usize]; ["Offset of field: audit_context::target_pid"] - [::core::mem::offset_of!(audit_context, target_pid) - 956usize]; + [::core::mem::offset_of!(audit_context, target_pid) - 796usize]; ["Offset of field: audit_context::target_auid"] - [::core::mem::offset_of!(audit_context, target_auid) - 960usize]; + [::core::mem::offset_of!(audit_context, target_auid) - 800usize]; ["Offset of field: audit_context::target_uid"] - [::core::mem::offset_of!(audit_context, target_uid) - 964usize]; + [::core::mem::offset_of!(audit_context, target_uid) - 804usize]; ["Offset of field: audit_context::target_sessionid"] - [::core::mem::offset_of!(audit_context, target_sessionid) - 968usize]; - ["Offset of field: audit_context::target_blob"] - [::core::mem::offset_of!(audit_context, target_blob) - 976usize]; + [::core::mem::offset_of!(audit_context, target_sessionid) - 808usize]; + ["Offset of field: audit_context::target_sid"] + [::core::mem::offset_of!(audit_context, target_sid) - 812usize]; ["Offset of field: audit_context::target_comm"] - [::core::mem::offset_of!(audit_context, target_comm) - 1008usize]; + [::core::mem::offset_of!(audit_context, target_comm) - 816usize]; ["Offset of field: audit_context::trees"] - [::core::mem::offset_of!(audit_context, trees) - 1024usize]; + [::core::mem::offset_of!(audit_context, trees) - 832usize]; ["Offset of field: audit_context::first_trees"] - [::core::mem::offset_of!(audit_context, first_trees) - 1032usize]; + [::core::mem::offset_of!(audit_context, first_trees) - 840usize]; ["Offset of field: audit_context::killed_trees"] - [::core::mem::offset_of!(audit_context, killed_trees) - 1040usize]; + [::core::mem::offset_of!(audit_context, killed_trees) - 848usize]; ["Offset of field: audit_context::tree_count"] - [::core::mem::offset_of!(audit_context, tree_count) - 1056usize]; + [::core::mem::offset_of!(audit_context, tree_count) - 864usize]; ["Offset of field: audit_context::type_"] - [::core::mem::offset_of!(audit_context, type_) - 1060usize]; - ["Offset of field: audit_context::fds"] - [::core::mem::offset_of!(audit_context, fds) - 1176usize]; + [::core::mem::offset_of!(audit_context, type_) - 868usize]; + ["Offset of field: audit_context::fds"][::core::mem::offset_of!(audit_context, fds) - 984usize]; ["Offset of field: audit_context::proctitle"] - [::core::mem::offset_of!(audit_context, proctitle) - 1184usize]; + [::core::mem::offset_of!(audit_context, proctitle) - 992usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -10636,6 +10230,48 @@ const _: () = { }; #[repr(C)] #[derive(Copy, Clone)] +pub struct qstr { + pub __bindgen_anon_1: qstr__bindgen_ty_1, + pub name: *const ::core::ffi::c_uchar, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union qstr__bindgen_ty_1 { + pub __bindgen_anon_1: qstr__bindgen_ty_1__bindgen_ty_1, + pub hash_len: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct qstr__bindgen_ty_1__bindgen_ty_1 { + pub hash: u32_, + pub len: u32_, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of qstr__bindgen_ty_1__bindgen_ty_1"] + [::core::mem::size_of::() - 8usize]; + ["Alignment of qstr__bindgen_ty_1__bindgen_ty_1"] + [::core::mem::align_of::() - 4usize]; + ["Offset of field: qstr__bindgen_ty_1__bindgen_ty_1::hash"] + [::core::mem::offset_of!(qstr__bindgen_ty_1__bindgen_ty_1, hash) - 0usize]; + ["Offset of field: qstr__bindgen_ty_1__bindgen_ty_1::len"] + [::core::mem::offset_of!(qstr__bindgen_ty_1__bindgen_ty_1, len) - 4usize]; +}; +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of qstr__bindgen_ty_1"][::core::mem::size_of::() - 8usize]; + ["Alignment of qstr__bindgen_ty_1"][::core::mem::align_of::() - 8usize]; + ["Offset of field: qstr__bindgen_ty_1::hash_len"] + [::core::mem::offset_of!(qstr__bindgen_ty_1, hash_len) - 0usize]; +}; +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of qstr"][::core::mem::size_of::() - 16usize]; + ["Alignment of qstr"][::core::mem::align_of::() - 8usize]; + ["Offset of field: qstr::name"][::core::mem::offset_of!(qstr, name) - 8usize]; +}; +#[repr(C)] +#[derive(Copy, Clone)] pub struct autogroup { pub kref: kref, pub tg: *mut task_group, @@ -10953,29 +10589,6 @@ const _: () = { [::core::mem::offset_of!(backing_dev_info, debug_dir) - 1112usize]; }; #[repr(C)] -#[derive(Copy, Clone)] -pub struct fown_struct { - pub lock: rwlock_t, - pub pid: *mut pid, - pub pid_type: pid_type, - pub uid: kuid_t, - pub euid: kuid_t, - pub signum: ::core::ffi::c_int, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of fown_struct"][::core::mem::size_of::() - 32usize]; - ["Alignment of fown_struct"][::core::mem::align_of::() - 8usize]; - ["Offset of field: fown_struct::lock"][::core::mem::offset_of!(fown_struct, lock) - 0usize]; - ["Offset of field: fown_struct::pid"][::core::mem::offset_of!(fown_struct, pid) - 8usize]; - ["Offset of field: fown_struct::pid_type"] - [::core::mem::offset_of!(fown_struct, pid_type) - 16usize]; - ["Offset of field: fown_struct::uid"][::core::mem::offset_of!(fown_struct, uid) - 20usize]; - ["Offset of field: fown_struct::euid"][::core::mem::offset_of!(fown_struct, euid) - 24usize]; - ["Offset of field: fown_struct::signum"] - [::core::mem::offset_of!(fown_struct, signum) - 28usize]; -}; -#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct file_ra_state { pub start: ::core::ffi::c_ulong, @@ -11004,68 +10617,83 @@ const _: () = { #[repr(C)] #[derive(Copy, Clone)] pub struct file { - pub __bindgen_anon_1: file__bindgen_ty_1, + pub f_count: atomic_long_t, pub f_lock: spinlock_t, pub f_mode: fmode_t, - pub f_count: atomic_long_t, - pub f_pos_lock: mutex, - pub f_pos: loff_t, + pub f_op: *const file_operations, + pub f_mapping: *mut address_space, + pub private_data: *mut ::core::ffi::c_void, + pub f_inode: *mut inode, pub f_flags: ::core::ffi::c_uint, - pub f_owner: fown_struct, + pub f_iocb_flags: ::core::ffi::c_uint, pub f_cred: *const cred, - pub f_ra: file_ra_state, pub f_path: path, - pub f_inode: *mut inode, - pub f_op: *const file_operations, - pub f_version: u64_, + pub __bindgen_anon_1: file__bindgen_ty_1, + pub f_pos: loff_t, pub f_security: *mut ::core::ffi::c_void, - pub private_data: *mut ::core::ffi::c_void, - pub f_ep: *mut hlist_head, - pub f_mapping: *mut address_space, + pub f_owner: *mut fown_struct, pub f_wb_err: errseq_t, pub f_sb_err: errseq_t, + pub f_ep: *mut hlist_head, + pub __bindgen_anon_2: file__bindgen_ty_2, } #[repr(C)] #[derive(Copy, Clone)] pub union file__bindgen_ty_1 { + pub f_pos_lock: mutex, + pub f_pipe: u64_, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of file__bindgen_ty_1"][::core::mem::size_of::() - 32usize]; + ["Alignment of file__bindgen_ty_1"][::core::mem::align_of::() - 8usize]; + ["Offset of field: file__bindgen_ty_1::f_pos_lock"] + [::core::mem::offset_of!(file__bindgen_ty_1, f_pos_lock) - 0usize]; + ["Offset of field: file__bindgen_ty_1::f_pipe"] + [::core::mem::offset_of!(file__bindgen_ty_1, f_pipe) - 0usize]; +}; +#[repr(C)] +#[derive(Copy, Clone)] +pub union file__bindgen_ty_2 { pub f_task_work: callback_head, pub f_llist: llist_node, - pub f_iocb_flags: ::core::ffi::c_uint, + pub f_ra: file_ra_state, + pub f_freeptr: freeptr_t, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of file__bindgen_ty_1"][::core::mem::size_of::() - 16usize]; - ["Alignment of file__bindgen_ty_1"][::core::mem::align_of::() - 8usize]; - ["Offset of field: file__bindgen_ty_1::f_task_work"] - [::core::mem::offset_of!(file__bindgen_ty_1, f_task_work) - 0usize]; - ["Offset of field: file__bindgen_ty_1::f_llist"] - [::core::mem::offset_of!(file__bindgen_ty_1, f_llist) - 0usize]; - ["Offset of field: file__bindgen_ty_1::f_iocb_flags"] - [::core::mem::offset_of!(file__bindgen_ty_1, f_iocb_flags) - 0usize]; + ["Size of file__bindgen_ty_2"][::core::mem::size_of::() - 32usize]; + ["Alignment of file__bindgen_ty_2"][::core::mem::align_of::() - 8usize]; + ["Offset of field: file__bindgen_ty_2::f_task_work"] + [::core::mem::offset_of!(file__bindgen_ty_2, f_task_work) - 0usize]; + ["Offset of field: file__bindgen_ty_2::f_llist"] + [::core::mem::offset_of!(file__bindgen_ty_2, f_llist) - 0usize]; + ["Offset of field: file__bindgen_ty_2::f_ra"] + [::core::mem::offset_of!(file__bindgen_ty_2, f_ra) - 0usize]; + ["Offset of field: file__bindgen_ty_2::f_freeptr"] + [::core::mem::offset_of!(file__bindgen_ty_2, f_freeptr) - 0usize]; }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of file"][::core::mem::size_of::() - 232usize]; + ["Size of file"][::core::mem::size_of::() - 184usize]; ["Alignment of file"][::core::mem::align_of::() - 8usize]; - ["Offset of field: file::f_lock"][::core::mem::offset_of!(file, f_lock) - 16usize]; - ["Offset of field: file::f_mode"][::core::mem::offset_of!(file, f_mode) - 20usize]; - ["Offset of field: file::f_count"][::core::mem::offset_of!(file, f_count) - 24usize]; - ["Offset of field: file::f_pos_lock"][::core::mem::offset_of!(file, f_pos_lock) - 32usize]; - ["Offset of field: file::f_pos"][::core::mem::offset_of!(file, f_pos) - 64usize]; - ["Offset of field: file::f_flags"][::core::mem::offset_of!(file, f_flags) - 72usize]; - ["Offset of field: file::f_owner"][::core::mem::offset_of!(file, f_owner) - 80usize]; - ["Offset of field: file::f_cred"][::core::mem::offset_of!(file, f_cred) - 112usize]; - ["Offset of field: file::f_ra"][::core::mem::offset_of!(file, f_ra) - 120usize]; - ["Offset of field: file::f_path"][::core::mem::offset_of!(file, f_path) - 152usize]; - ["Offset of field: file::f_inode"][::core::mem::offset_of!(file, f_inode) - 168usize]; - ["Offset of field: file::f_op"][::core::mem::offset_of!(file, f_op) - 176usize]; - ["Offset of field: file::f_version"][::core::mem::offset_of!(file, f_version) - 184usize]; - ["Offset of field: file::f_security"][::core::mem::offset_of!(file, f_security) - 192usize]; - ["Offset of field: file::private_data"][::core::mem::offset_of!(file, private_data) - 200usize]; - ["Offset of field: file::f_ep"][::core::mem::offset_of!(file, f_ep) - 208usize]; - ["Offset of field: file::f_mapping"][::core::mem::offset_of!(file, f_mapping) - 216usize]; - ["Offset of field: file::f_wb_err"][::core::mem::offset_of!(file, f_wb_err) - 224usize]; - ["Offset of field: file::f_sb_err"][::core::mem::offset_of!(file, f_sb_err) - 228usize]; + ["Offset of field: file::f_count"][::core::mem::offset_of!(file, f_count) - 0usize]; + ["Offset of field: file::f_lock"][::core::mem::offset_of!(file, f_lock) - 8usize]; + ["Offset of field: file::f_mode"][::core::mem::offset_of!(file, f_mode) - 12usize]; + ["Offset of field: file::f_op"][::core::mem::offset_of!(file, f_op) - 16usize]; + ["Offset of field: file::f_mapping"][::core::mem::offset_of!(file, f_mapping) - 24usize]; + ["Offset of field: file::private_data"][::core::mem::offset_of!(file, private_data) - 32usize]; + ["Offset of field: file::f_inode"][::core::mem::offset_of!(file, f_inode) - 40usize]; + ["Offset of field: file::f_flags"][::core::mem::offset_of!(file, f_flags) - 48usize]; + ["Offset of field: file::f_iocb_flags"][::core::mem::offset_of!(file, f_iocb_flags) - 52usize]; + ["Offset of field: file::f_cred"][::core::mem::offset_of!(file, f_cred) - 56usize]; + ["Offset of field: file::f_path"][::core::mem::offset_of!(file, f_path) - 64usize]; + ["Offset of field: file::f_pos"][::core::mem::offset_of!(file, f_pos) - 112usize]; + ["Offset of field: file::f_security"][::core::mem::offset_of!(file, f_security) - 120usize]; + ["Offset of field: file::f_owner"][::core::mem::offset_of!(file, f_owner) - 128usize]; + ["Offset of field: file::f_wb_err"][::core::mem::offset_of!(file, f_wb_err) - 136usize]; + ["Offset of field: file::f_sb_err"][::core::mem::offset_of!(file, f_sb_err) - 140usize]; + ["Offset of field: file::f_ep"][::core::mem::offset_of!(file, f_ep) - 144usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -11155,11 +10783,12 @@ pub struct block_device { pub bd_fsfreeze_mutex: mutex, pub bd_meta_info: *mut partition_meta_info, pub bd_writers: ::core::ffi::c_int, + pub bd_security: *mut ::core::ffi::c_void, pub bd_device: device, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of block_device"][::core::mem::size_of::() - 968usize]; + ["Size of block_device"][::core::mem::size_of::() - 960usize]; ["Alignment of block_device"][::core::mem::align_of::() - 8usize]; ["Offset of field: block_device::bd_start_sect"] [::core::mem::offset_of!(block_device, bd_start_sect) - 0usize]; @@ -11203,8 +10832,10 @@ const _: () = { [::core::mem::offset_of!(block_device, bd_meta_info) - 184usize]; ["Offset of field: block_device::bd_writers"] [::core::mem::offset_of!(block_device, bd_writers) - 192usize]; + ["Offset of field: block_device::bd_security"] + [::core::mem::offset_of!(block_device, bd_security) - 200usize]; ["Offset of field: block_device::bd_device"] - [::core::mem::offset_of!(block_device, bd_device) - 200usize]; + [::core::mem::offset_of!(block_device, bd_device) - 208usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -11236,7 +10867,7 @@ pub struct inode { pub i_blkbits: u8_, pub i_write_hint: rw_hint, pub i_blocks: blkcnt_t, - pub i_state: ::core::ffi::c_ulong, + pub i_state: u32_, pub i_rwsem: rw_semaphore, pub dirtied_when: ::core::ffi::c_ulong, pub dirtied_time_when: ::core::ffi::c_ulong, @@ -11335,7 +10966,7 @@ const _: () = { }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of inode"][::core::mem::size_of::() - 624usize]; + ["Size of inode"][::core::mem::size_of::() - 632usize]; ["Alignment of inode"][::core::mem::align_of::() - 8usize]; ["Offset of field: inode::i_mode"][::core::mem::offset_of!(inode, i_mode) - 0usize]; ["Offset of field: inode::i_opflags"][::core::mem::offset_of!(inode, i_opflags) - 2usize]; @@ -11396,16 +11027,116 @@ const _: () = { ["Offset of field: inode::i_readcount"][::core::mem::offset_of!(inode, i_readcount) - 348usize]; ["Offset of field: inode::i_flctx"][::core::mem::offset_of!(inode, i_flctx) - 360usize]; ["Offset of field: inode::i_data"][::core::mem::offset_of!(inode, i_data) - 368usize]; - ["Offset of field: inode::i_devices"][::core::mem::offset_of!(inode, i_devices) - 560usize]; + ["Offset of field: inode::i_devices"][::core::mem::offset_of!(inode, i_devices) - 568usize]; ["Offset of field: inode::i_fsnotify_mask"] - [::core::mem::offset_of!(inode, i_fsnotify_mask) - 584usize]; + [::core::mem::offset_of!(inode, i_fsnotify_mask) - 592usize]; ["Offset of field: inode::i_fsnotify_marks"] - [::core::mem::offset_of!(inode, i_fsnotify_marks) - 592usize]; + [::core::mem::offset_of!(inode, i_fsnotify_marks) - 600usize]; ["Offset of field: inode::i_crypt_info"] - [::core::mem::offset_of!(inode, i_crypt_info) - 600usize]; + [::core::mem::offset_of!(inode, i_crypt_info) - 608usize]; ["Offset of field: inode::i_verity_info"] - [::core::mem::offset_of!(inode, i_verity_info) - 608usize]; - ["Offset of field: inode::i_private"][::core::mem::offset_of!(inode, i_private) - 616usize]; + [::core::mem::offset_of!(inode, i_verity_info) - 616usize]; + ["Offset of field: inode::i_private"][::core::mem::offset_of!(inode, i_private) - 624usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_independent_access_range { + pub kobj: kobject, + pub sector: sector_t, + pub nr_sectors: sector_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of blk_independent_access_range"] + [::core::mem::size_of::() - 80usize]; + ["Alignment of blk_independent_access_range"] + [::core::mem::align_of::() - 8usize]; + ["Offset of field: blk_independent_access_range::kobj"] + [::core::mem::offset_of!(blk_independent_access_range, kobj) - 0usize]; + ["Offset of field: blk_independent_access_range::sector"] + [::core::mem::offset_of!(blk_independent_access_range, sector) - 64usize]; + ["Offset of field: blk_independent_access_range::nr_sectors"] + [::core::mem::offset_of!(blk_independent_access_range, nr_sectors) - 72usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blkg_policy_data { + pub blkg: *mut blkcg_gq, + pub plid: ::core::ffi::c_int, + pub online: bool_, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of blkg_policy_data"][::core::mem::size_of::() - 16usize]; + ["Alignment of blkg_policy_data"][::core::mem::align_of::() - 8usize]; + ["Offset of field: blkg_policy_data::blkg"] + [::core::mem::offset_of!(blkg_policy_data, blkg) - 0usize]; + ["Offset of field: blkg_policy_data::plid"] + [::core::mem::offset_of!(blkg_policy_data, plid) - 8usize]; + ["Offset of field: blkg_policy_data::online"] + [::core::mem::offset_of!(blkg_policy_data, online) - 12usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blkcg_policy_data { + pub blkcg: *mut blkcg, + pub plid: ::core::ffi::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of blkcg_policy_data"][::core::mem::size_of::() - 16usize]; + ["Alignment of blkcg_policy_data"][::core::mem::align_of::() - 8usize]; + ["Offset of field: blkcg_policy_data::blkcg"] + [::core::mem::offset_of!(blkcg_policy_data, blkcg) - 0usize]; + ["Offset of field: blkcg_policy_data::plid"] + [::core::mem::offset_of!(blkcg_policy_data, plid) - 8usize]; +}; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_cq { + pub q: *mut request_queue, + pub ioc: *mut io_context, + pub __bindgen_anon_1: io_cq__bindgen_ty_1, + pub __bindgen_anon_2: io_cq__bindgen_ty_2, + pub flags: ::core::ffi::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_cq__bindgen_ty_1 { + pub q_node: list_head, + pub __rcu_icq_cache: *mut kmem_cache, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of io_cq__bindgen_ty_1"][::core::mem::size_of::() - 16usize]; + ["Alignment of io_cq__bindgen_ty_1"][::core::mem::align_of::() - 8usize]; + ["Offset of field: io_cq__bindgen_ty_1::q_node"] + [::core::mem::offset_of!(io_cq__bindgen_ty_1, q_node) - 0usize]; + ["Offset of field: io_cq__bindgen_ty_1::__rcu_icq_cache"] + [::core::mem::offset_of!(io_cq__bindgen_ty_1, __rcu_icq_cache) - 0usize]; +}; +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_cq__bindgen_ty_2 { + pub ioc_node: hlist_node, + pub __rcu_head: callback_head, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of io_cq__bindgen_ty_2"][::core::mem::size_of::() - 16usize]; + ["Alignment of io_cq__bindgen_ty_2"][::core::mem::align_of::() - 8usize]; + ["Offset of field: io_cq__bindgen_ty_2::ioc_node"] + [::core::mem::offset_of!(io_cq__bindgen_ty_2, ioc_node) - 0usize]; + ["Offset of field: io_cq__bindgen_ty_2::__rcu_head"] + [::core::mem::offset_of!(io_cq__bindgen_ty_2, __rcu_head) - 0usize]; +}; +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of io_cq"][::core::mem::size_of::() - 56usize]; + ["Alignment of io_cq"][::core::mem::align_of::() - 8usize]; + ["Offset of field: io_cq::q"][::core::mem::offset_of!(io_cq, q) - 0usize]; + ["Offset of field: io_cq::ioc"][::core::mem::offset_of!(io_cq, ioc) - 8usize]; + ["Offset of field: io_cq::flags"][::core::mem::offset_of!(io_cq, flags) - 48usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -11489,7 +11220,7 @@ pub struct bio { pub bi_issue: bio_issue, pub bi_iocost_cost: u64_, pub bi_crypt_context: *mut bio_crypt_ctx, - pub __bindgen_anon_2: bio__bindgen_ty_2, + pub bi_integrity: *mut bio_integrity_payload, pub bi_vcnt: ::core::ffi::c_ushort, pub bi_max_vecs: ::core::ffi::c_ushort, pub __bi_cnt: atomic_t, @@ -11512,18 +11243,6 @@ const _: () = { ["Offset of field: bio__bindgen_ty_1::__bi_nr_segments"] [::core::mem::offset_of!(bio__bindgen_ty_1, __bi_nr_segments) - 0usize]; }; -#[repr(C)] -#[derive(Copy, Clone)] -pub union bio__bindgen_ty_2 { - pub bi_integrity: *mut bio_integrity_payload, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of bio__bindgen_ty_2"][::core::mem::size_of::() - 8usize]; - ["Alignment of bio__bindgen_ty_2"][::core::mem::align_of::() - 8usize]; - ["Offset of field: bio__bindgen_ty_2::bi_integrity"] - [::core::mem::offset_of!(bio__bindgen_ty_2, bi_integrity) - 0usize]; -}; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of bio"][::core::mem::size_of::() - 136usize]; @@ -11546,6 +11265,7 @@ const _: () = { [::core::mem::offset_of!(bio, bi_iocost_cost) - 88usize]; ["Offset of field: bio::bi_crypt_context"] [::core::mem::offset_of!(bio, bi_crypt_context) - 96usize]; + ["Offset of field: bio::bi_integrity"][::core::mem::offset_of!(bio, bi_integrity) - 104usize]; ["Offset of field: bio::bi_vcnt"][::core::mem::offset_of!(bio, bi_vcnt) - 112usize]; ["Offset of field: bio::bi_max_vecs"][::core::mem::offset_of!(bio, bi_max_vecs) - 114usize]; ["Offset of field: bio::__bi_cnt"][::core::mem::offset_of!(bio, __bi_cnt) - 116usize]; @@ -11682,6 +11402,7 @@ pub union iov_iter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { pub __iov: *const iovec, pub kvec: *const kvec, pub bvec: *const bio_vec, + pub folioq: *const folio_queue, pub xarray: *mut xarray, pub ubuf: *mut ::core::ffi::c_void, } @@ -11703,6 +11424,10 @@ const _: () = { iov_iter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, bvec ) - 0usize]; + ["Offset of field: iov_iter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1::folioq"][::core::mem::offset_of!( + iov_iter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + folioq + ) - 0usize]; ["Offset of field: iov_iter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1::xarray"][::core::mem::offset_of!( iov_iter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, xarray @@ -11733,6 +11458,7 @@ const _: () = { #[derive(Copy, Clone)] pub union iov_iter__bindgen_ty_2 { pub nr_segs: ::core::ffi::c_ulong, + pub folioq_slot: u8_, pub xarray_start: loff_t, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] @@ -11742,6 +11468,8 @@ const _: () = { [::core::mem::align_of::() - 8usize]; ["Offset of field: iov_iter__bindgen_ty_2::nr_segs"] [::core::mem::offset_of!(iov_iter__bindgen_ty_2, nr_segs) - 0usize]; + ["Offset of field: iov_iter__bindgen_ty_2::folioq_slot"] + [::core::mem::offset_of!(iov_iter__bindgen_ty_2, folioq_slot) - 0usize]; ["Offset of field: iov_iter__bindgen_ty_2::xarray_start"] [::core::mem::offset_of!(iov_iter__bindgen_ty_2, xarray_start) - 0usize]; }; @@ -12108,26 +11836,6 @@ const _: () = { [::core::mem::offset_of!(blk_holder_ops, thaw) - 24usize]; }; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct blk_independent_access_range { - pub kobj: kobject, - pub sector: sector_t, - pub nr_sectors: sector_t, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of blk_independent_access_range"] - [::core::mem::size_of::() - 80usize]; - ["Alignment of blk_independent_access_range"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: blk_independent_access_range::kobj"] - [::core::mem::offset_of!(blk_independent_access_range, kobj) - 0usize]; - ["Offset of field: blk_independent_access_range::sector"] - [::core::mem::offset_of!(blk_independent_access_range, sector) - 64usize]; - ["Offset of field: blk_independent_access_range::nr_sectors"] - [::core::mem::offset_of!(blk_independent_access_range, nr_sectors) - 72usize]; -}; -#[repr(C)] #[derive(Debug)] pub struct blk_independent_access_ranges { pub kobj: kobject, @@ -12179,6 +11887,26 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct rq_qos { + pub ops: *const rq_qos_ops, + pub disk: *mut gendisk, + pub id: rq_qos_id, + pub next: *mut rq_qos, + pub debugfs_dir: *mut dentry, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rq_qos"][::core::mem::size_of::() - 40usize]; + ["Alignment of rq_qos"][::core::mem::align_of::() - 8usize]; + ["Offset of field: rq_qos::ops"][::core::mem::offset_of!(rq_qos, ops) - 0usize]; + ["Offset of field: rq_qos::disk"][::core::mem::offset_of!(rq_qos, disk) - 8usize]; + ["Offset of field: rq_qos::id"][::core::mem::offset_of!(rq_qos, id) - 16usize]; + ["Offset of field: rq_qos::next"][::core::mem::offset_of!(rq_qos, next) - 24usize]; + ["Offset of field: rq_qos::debugfs_dir"] + [::core::mem::offset_of!(rq_qos, debugfs_dir) - 32usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct blk_mq_alloc_data { pub q: *mut request_queue, pub flags: blk_mq_req_flags_t, @@ -12186,7 +11914,7 @@ pub struct blk_mq_alloc_data { pub cmd_flags: blk_opf_t, pub rq_flags: req_flags_t, pub nr_tags: ::core::ffi::c_uint, - pub cached_rq: *mut *mut request, + pub cached_rqs: *mut rq_list, pub ctx: *mut blk_mq_ctx, pub hctx: *mut blk_mq_hw_ctx, } @@ -12206,8 +11934,8 @@ const _: () = { [::core::mem::offset_of!(blk_mq_alloc_data, rq_flags) - 20usize]; ["Offset of field: blk_mq_alloc_data::nr_tags"] [::core::mem::offset_of!(blk_mq_alloc_data, nr_tags) - 24usize]; - ["Offset of field: blk_mq_alloc_data::cached_rq"] - [::core::mem::offset_of!(blk_mq_alloc_data, cached_rq) - 32usize]; + ["Offset of field: blk_mq_alloc_data::cached_rqs"] + [::core::mem::offset_of!(blk_mq_alloc_data, cached_rqs) - 32usize]; ["Offset of field: blk_mq_alloc_data::ctx"] [::core::mem::offset_of!(blk_mq_alloc_data, ctx) - 40usize]; ["Offset of field: blk_mq_alloc_data::hctx"] @@ -12489,7 +12217,7 @@ pub struct blk_mq_ops { ) -> blk_status_t, >, pub commit_rqs: ::core::option::Option, - pub queue_rqs: ::core::option::Option, + pub queue_rqs: ::core::option::Option, pub get_budget: ::core::option::Option< unsafe extern "C" fn(arg1: *mut request_queue) -> ::core::ffi::c_int, >, @@ -12661,9 +12389,22 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct rq_list { + pub head: *mut request, + pub tail: *mut request, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rq_list"][::core::mem::size_of::() - 16usize]; + ["Alignment of rq_list"][::core::mem::align_of::() - 8usize]; + ["Offset of field: rq_list::head"][::core::mem::offset_of!(rq_list, head) - 0usize]; + ["Offset of field: rq_list::tail"][::core::mem::offset_of!(rq_list, tail) - 8usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct blk_plug { - pub mq_list: *mut request, - pub cached_rq: *mut request, + pub mq_list: rq_list, + pub cached_rqs: rq_list, pub cur_ktime: u64_, pub nr_ios: ::core::ffi::c_ushort, pub rq_count: ::core::ffi::c_ushort, @@ -12673,19 +12414,20 @@ pub struct blk_plug { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of blk_plug"][::core::mem::size_of::() - 48usize]; + ["Size of blk_plug"][::core::mem::size_of::() - 64usize]; ["Alignment of blk_plug"][::core::mem::align_of::() - 8usize]; ["Offset of field: blk_plug::mq_list"][::core::mem::offset_of!(blk_plug, mq_list) - 0usize]; - ["Offset of field: blk_plug::cached_rq"][::core::mem::offset_of!(blk_plug, cached_rq) - 8usize]; + ["Offset of field: blk_plug::cached_rqs"] + [::core::mem::offset_of!(blk_plug, cached_rqs) - 16usize]; ["Offset of field: blk_plug::cur_ktime"] - [::core::mem::offset_of!(blk_plug, cur_ktime) - 16usize]; - ["Offset of field: blk_plug::nr_ios"][::core::mem::offset_of!(blk_plug, nr_ios) - 24usize]; - ["Offset of field: blk_plug::rq_count"][::core::mem::offset_of!(blk_plug, rq_count) - 26usize]; + [::core::mem::offset_of!(blk_plug, cur_ktime) - 32usize]; + ["Offset of field: blk_plug::nr_ios"][::core::mem::offset_of!(blk_plug, nr_ios) - 40usize]; + ["Offset of field: blk_plug::rq_count"][::core::mem::offset_of!(blk_plug, rq_count) - 42usize]; ["Offset of field: blk_plug::multiple_queues"] - [::core::mem::offset_of!(blk_plug, multiple_queues) - 28usize]; + [::core::mem::offset_of!(blk_plug, multiple_queues) - 44usize]; ["Offset of field: blk_plug::has_elevator"] - [::core::mem::offset_of!(blk_plug, has_elevator) - 29usize]; - ["Offset of field: blk_plug::cb_list"][::core::mem::offset_of!(blk_plug, cb_list) - 32usize]; + [::core::mem::offset_of!(blk_plug, has_elevator) - 45usize]; + ["Offset of field: blk_plug::cb_list"][::core::mem::offset_of!(blk_plug, cb_list) - 48usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -12789,10 +12531,11 @@ pub struct cgroup_subsys_state { pub destroy_work: work_struct, pub destroy_rwork: rcu_work, pub parent: *mut cgroup_subsys_state, + pub nr_descendants: ::core::ffi::c_int, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of cgroup_subsys_state"][::core::mem::size_of::() - 200usize]; + ["Size of cgroup_subsys_state"][::core::mem::size_of::() - 208usize]; ["Alignment of cgroup_subsys_state"][::core::mem::align_of::() - 8usize]; ["Offset of field: cgroup_subsys_state::cgroup"] [::core::mem::offset_of!(cgroup_subsys_state, cgroup) - 0usize]; @@ -12820,6 +12563,8 @@ const _: () = { [::core::mem::offset_of!(cgroup_subsys_state, destroy_rwork) - 136usize]; ["Offset of field: cgroup_subsys_state::parent"] [::core::mem::offset_of!(cgroup_subsys_state, parent) - 192usize]; + ["Offset of field: cgroup_subsys_state::nr_descendants"] + [::core::mem::offset_of!(cgroup_subsys_state, nr_descendants) - 200usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -12839,22 +12584,22 @@ pub struct blkcg { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of blkcg"][::core::mem::size_of::() - 472usize]; + ["Size of blkcg"][::core::mem::size_of::() - 480usize]; ["Alignment of blkcg"][::core::mem::align_of::() - 8usize]; ["Offset of field: blkcg::css"][::core::mem::offset_of!(blkcg, css) - 0usize]; - ["Offset of field: blkcg::lock"][::core::mem::offset_of!(blkcg, lock) - 200usize]; - ["Offset of field: blkcg::online_pin"][::core::mem::offset_of!(blkcg, online_pin) - 204usize]; + ["Offset of field: blkcg::lock"][::core::mem::offset_of!(blkcg, lock) - 208usize]; + ["Offset of field: blkcg::online_pin"][::core::mem::offset_of!(blkcg, online_pin) - 212usize]; ["Offset of field: blkcg::congestion_count"] - [::core::mem::offset_of!(blkcg, congestion_count) - 208usize]; - ["Offset of field: blkcg::blkg_tree"][::core::mem::offset_of!(blkcg, blkg_tree) - 216usize]; - ["Offset of field: blkcg::blkg_hint"][::core::mem::offset_of!(blkcg, blkg_hint) - 232usize]; - ["Offset of field: blkcg::blkg_list"][::core::mem::offset_of!(blkcg, blkg_list) - 240usize]; - ["Offset of field: blkcg::cpd"][::core::mem::offset_of!(blkcg, cpd) - 248usize]; + [::core::mem::offset_of!(blkcg, congestion_count) - 216usize]; + ["Offset of field: blkcg::blkg_tree"][::core::mem::offset_of!(blkcg, blkg_tree) - 224usize]; + ["Offset of field: blkcg::blkg_hint"][::core::mem::offset_of!(blkcg, blkg_hint) - 240usize]; + ["Offset of field: blkcg::blkg_list"][::core::mem::offset_of!(blkcg, blkg_list) - 248usize]; + ["Offset of field: blkcg::cpd"][::core::mem::offset_of!(blkcg, cpd) - 256usize]; ["Offset of field: blkcg::all_blkcgs_node"] - [::core::mem::offset_of!(blkcg, all_blkcgs_node) - 296usize]; - ["Offset of field: blkcg::lhead"][::core::mem::offset_of!(blkcg, lhead) - 312usize]; - ["Offset of field: blkcg::fc_app_id"][::core::mem::offset_of!(blkcg, fc_app_id) - 320usize]; - ["Offset of field: blkcg::cgwb_list"][::core::mem::offset_of!(blkcg, cgwb_list) - 456usize]; + [::core::mem::offset_of!(blkcg, all_blkcgs_node) - 304usize]; + ["Offset of field: blkcg::lhead"][::core::mem::offset_of!(blkcg, lhead) - 320usize]; + ["Offset of field: blkcg::fc_app_id"][::core::mem::offset_of!(blkcg, fc_app_id) - 328usize]; + ["Offset of field: blkcg::cgwb_list"][::core::mem::offset_of!(blkcg, cgwb_list) - 464usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -12967,39 +12712,6 @@ const _: () = { ["Offset of field: blkcg_gq::callback_head"] [::core::mem::offset_of!(blkcg_gq, callback_head) - 352usize]; }; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct blkcg_policy_data { - pub blkcg: *mut blkcg, - pub plid: ::core::ffi::c_int, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of blkcg_policy_data"][::core::mem::size_of::() - 16usize]; - ["Alignment of blkcg_policy_data"][::core::mem::align_of::() - 8usize]; - ["Offset of field: blkcg_policy_data::blkcg"] - [::core::mem::offset_of!(blkcg_policy_data, blkcg) - 0usize]; - ["Offset of field: blkcg_policy_data::plid"] - [::core::mem::offset_of!(blkcg_policy_data, plid) - 8usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct blkg_policy_data { - pub blkg: *mut blkcg_gq, - pub plid: ::core::ffi::c_int, - pub online: bool_, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of blkg_policy_data"][::core::mem::size_of::() - 16usize]; - ["Alignment of blkg_policy_data"][::core::mem::align_of::() - 8usize]; - ["Offset of field: blkg_policy_data::blkg"] - [::core::mem::offset_of!(blkg_policy_data, blkg) - 0usize]; - ["Offset of field: blkg_policy_data::plid"] - [::core::mem::offset_of!(blkg_policy_data, plid) - 8usize]; - ["Offset of field: blkg_policy_data::online"] - [::core::mem::offset_of!(blkg_policy_data, online) - 12usize]; -}; pub type report_zones_cb = ::core::option::Option< unsafe extern "C" fn( arg1: *mut blk_zone, @@ -15993,6 +15705,39 @@ impl sk_buff__bindgen_ty_4__bindgen_ty_1 { } } #[inline] + pub fn unreadable(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(29usize, 1u8) as u8) } + } + #[inline] + pub fn set_unreadable(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(29usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unreadable_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 29usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unreadable_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 29usize, + 1u8, + val as u64, + ) + } + } + #[inline] pub fn new_bitfield_2( tstamp_type: __u8, tc_at_ingress: __u8, @@ -16020,6 +15765,7 @@ impl sk_buff__bindgen_ty_4__bindgen_ty_1 { decrypted: __u8, slow_gro: __u8, csum_not_inet: __u8, + unreadable: __u8, ) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 2u8, { @@ -16126,6 +15872,10 @@ impl sk_buff__bindgen_ty_4__bindgen_ty_1 { let csum_not_inet: u8 = unsafe { ::core::mem::transmute(csum_not_inet) }; csum_not_inet as u64 }); + __bindgen_bitfield_unit.set(29usize, 1u8, { + let unreadable: u8 = unsafe { ::core::mem::transmute(unreadable) }; + unreadable as u64 + }); __bindgen_bitfield_unit } } @@ -17383,6 +17133,39 @@ impl sk_buff__bindgen_ty_4__bindgen_ty_2 { } } #[inline] + pub fn unreadable(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(29usize, 1u8) as u8) } + } + #[inline] + pub fn set_unreadable(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(29usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unreadable_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 29usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unreadable_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 29usize, + 1u8, + val as u64, + ) + } + } + #[inline] pub fn new_bitfield_2( tstamp_type: __u8, tc_at_ingress: __u8, @@ -17410,6 +17193,7 @@ impl sk_buff__bindgen_ty_4__bindgen_ty_2 { decrypted: __u8, slow_gro: __u8, csum_not_inet: __u8, + unreadable: __u8, ) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 2u8, { @@ -17516,6 +17300,10 @@ impl sk_buff__bindgen_ty_4__bindgen_ty_2 { let csum_not_inet: u8 = unsafe { ::core::mem::transmute(csum_not_inet) }; csum_not_inet as u64 }); + __bindgen_bitfield_unit.set(29usize, 1u8, { + let unreadable: u8 = unsafe { ::core::mem::transmute(unreadable) }; + unreadable as u64 + }); __bindgen_bitfield_unit } } @@ -18431,6 +18219,7 @@ pub struct sock { pub sk_bpf_storage: *mut bpf_local_storage, pub sk_rcu: callback_head, pub ns_tracker: netns_tracker, + pub sk_user_frags: xarray, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -18485,7 +18274,7 @@ const _: () = { }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of sock"][::core::mem::size_of::() - 760usize]; + ["Size of sock"][::core::mem::size_of::() - 776usize]; ["Alignment of sock"][::core::mem::align_of::() - 8usize]; ["Offset of field: sock::__sk_common"][::core::mem::offset_of!(sock, __sk_common) - 0usize]; ["Offset of field: sock::__cacheline_group_begin__sock_write_rx"] @@ -18633,6 +18422,8 @@ const _: () = { [::core::mem::offset_of!(sock, sk_bpf_storage) - 736usize]; ["Offset of field: sock::sk_rcu"][::core::mem::offset_of!(sock, sk_rcu) - 744usize]; ["Offset of field: sock::ns_tracker"][::core::mem::offset_of!(sock, ns_tracker) - 760usize]; + ["Offset of field: sock::sk_user_frags"] + [::core::mem::offset_of!(sock, sk_user_frags) - 760usize]; }; impl sock { #[inline] @@ -19786,6 +19577,7 @@ pub struct bpf_func_proto { pub gpl_only: bool_, pub pkt_access: bool_, pub might_sleep: bool_, + pub allow_fastcall: bool_, pub ret_type: bpf_return_type, pub __bindgen_anon_1: bpf_func_proto__bindgen_ty_1, pub __bindgen_anon_2: bpf_func_proto__bindgen_ty_2, @@ -19922,6 +19714,8 @@ const _: () = { [::core::mem::offset_of!(bpf_func_proto, pkt_access) - 9usize]; ["Offset of field: bpf_func_proto::might_sleep"] [::core::mem::offset_of!(bpf_func_proto, might_sleep) - 10usize]; + ["Offset of field: bpf_func_proto::allow_fastcall"] + [::core::mem::offset_of!(bpf_func_proto, allow_fastcall) - 11usize]; ["Offset of field: bpf_func_proto::ret_type"] [::core::mem::offset_of!(bpf_func_proto, ret_type) - 12usize]; ["Offset of field: bpf_func_proto::ret_btf_id"] @@ -20636,6 +20430,8 @@ pub struct bpf_insn_aux_data { pub is_iter_next: bool_, pub call_with_percpu_alloc_ptr: bool_, pub alu_state: u8_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, pub orig_idx: ::core::ffi::c_uint, pub jmp_point: bool_, pub prune_point: bool_, @@ -20799,6 +20595,188 @@ const _: () = { ["Offset of field: bpf_insn_aux_data::calls_callback"] [::core::mem::offset_of!(bpf_insn_aux_data, calls_callback) - 71usize]; }; +impl bpf_insn_aux_data { + #[inline] + pub fn fastcall_pattern(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_fastcall_pattern(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fastcall_pattern_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fastcall_pattern_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fastcall_spills_num(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u8) } + } + #[inline] + pub fn set_fastcall_spills_num(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn fastcall_spills_num_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 3u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fastcall_spills_num_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + fastcall_pattern: u8_, + fastcall_spills_num: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let fastcall_pattern: u8 = unsafe { ::core::mem::transmute(fastcall_pattern) }; + fastcall_pattern as u64 + }); + __bindgen_bitfield_unit.set(1usize, 3u8, { + let fastcall_spills_num: u8 = unsafe { ::core::mem::transmute(fastcall_spills_num) }; + fastcall_spills_num as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_insn_hist_entry { + pub idx: u32_, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub linked_regs: u64_, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of bpf_insn_hist_entry"][::core::mem::size_of::() - 16usize]; + ["Alignment of bpf_insn_hist_entry"][::core::mem::align_of::() - 8usize]; + ["Offset of field: bpf_insn_hist_entry::idx"] + [::core::mem::offset_of!(bpf_insn_hist_entry, idx) - 0usize]; + ["Offset of field: bpf_insn_hist_entry::linked_regs"] + [::core::mem::offset_of!(bpf_insn_hist_entry, linked_regs) - 8usize]; +}; +impl bpf_insn_hist_entry { + #[inline] + pub fn prev_idx(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 20u8) as u32) } + } + #[inline] + pub fn set_prev_idx(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 20u8, val as u64) + } + } + #[inline] + pub unsafe fn prev_idx_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 20u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_prev_idx_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 20u8, + val as u64, + ) + } + } + #[inline] + pub fn flags(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 12u8) as u32) } + } + #[inline] + pub fn set_flags(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(20usize, 12u8, val as u64) + } + } + #[inline] + pub unsafe fn flags_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 20usize, + 12u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_flags_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 20usize, + 12u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(prev_idx: u32_, flags: u32_) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 20u8, { + let prev_idx: u32 = unsafe { ::core::mem::transmute(prev_idx) }; + prev_idx as u64 + }); + __bindgen_bitfield_unit.set(20usize, 12u8, { + let flags: u32 = unsafe { ::core::mem::transmute(flags) }; + flags as u64 + }); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct bpf_iter_aux_info { @@ -20851,6 +20829,24 @@ const _: () = { ["Offset of field: bpf_iter_aux_info::task"] [::core::mem::offset_of!(bpf_iter_aux_info, task) - 24usize]; }; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_dsq_list_node { + pub node: list_head, + pub flags: u32_, + pub priv_: u32_, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of scx_dsq_list_node"][::core::mem::size_of::() - 24usize]; + ["Alignment of scx_dsq_list_node"][::core::mem::align_of::() - 8usize]; + ["Offset of field: scx_dsq_list_node::node"] + [::core::mem::offset_of!(scx_dsq_list_node, node) - 0usize]; + ["Offset of field: scx_dsq_list_node::flags"] + [::core::mem::offset_of!(scx_dsq_list_node, flags) - 16usize]; + ["Offset of field: scx_dsq_list_node::priv_"] + [::core::mem::offset_of!(scx_dsq_list_node, priv_) - 20usize]; +}; pub type bpf_iter_init_seq_priv_t = ::core::option::Option< unsafe extern "C" fn( arg1: *mut ::core::ffi::c_void, @@ -20953,102 +20949,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct bpf_jmp_history_entry { - pub idx: u32_, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of bpf_jmp_history_entry"][::core::mem::size_of::() - 8usize]; - ["Alignment of bpf_jmp_history_entry"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: bpf_jmp_history_entry::idx"] - [::core::mem::offset_of!(bpf_jmp_history_entry, idx) - 0usize]; -}; -impl bpf_jmp_history_entry { - #[inline] - pub fn prev_idx(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 22u8) as u32) } - } - #[inline] - pub fn set_prev_idx(&mut self, val: u32_) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 22u8, val as u64) - } - } - #[inline] - pub unsafe fn prev_idx_raw(this: *const Self) -> u32_ { - unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( - ::core::ptr::addr_of!((*this)._bitfield_1), - 0usize, - 22u8, - ) as u32) - } - } - #[inline] - pub unsafe fn set_prev_idx_raw(this: *mut Self, val: u32_) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( - ::core::ptr::addr_of_mut!((*this)._bitfield_1), - 0usize, - 22u8, - val as u64, - ) - } - } - #[inline] - pub fn flags(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 10u8) as u32) } - } - #[inline] - pub fn set_flags(&mut self, val: u32_) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(22usize, 10u8, val as u64) - } - } - #[inline] - pub unsafe fn flags_raw(this: *const Self) -> u32_ { - unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( - ::core::ptr::addr_of!((*this)._bitfield_1), - 22usize, - 10u8, - ) as u32) - } - } - #[inline] - pub unsafe fn set_flags_raw(this: *mut Self, val: u32_) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( - ::core::ptr::addr_of_mut!((*this)._bitfield_1), - 22usize, - 10u8, - val as u64, - ) - } - } - #[inline] - pub fn new_bitfield_1(prev_idx: u32_, flags: u32_) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 22u8, { - let prev_idx: u32 = unsafe { ::core::mem::transmute(prev_idx) }; - prev_idx as u64 - }); - __bindgen_bitfield_unit.set(22usize, 10u8, { - let flags: u32 = unsafe { ::core::mem::transmute(flags) }; - flags as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct bpf_kfunc_btf { pub btf: *mut btf, pub module: *mut module, @@ -23353,6 +23253,7 @@ pub struct bpf_prog_aux { pub exception_cb: bool_, pub exception_boundary: bool_, pub is_extended: bool_, + pub changes_pkt_data: bool_, pub prog_array_member_cnt: u64_, pub ext_mutex: mutex, pub arena: *mut bpf_arena, @@ -23481,6 +23382,8 @@ const _: () = { [::core::mem::offset_of!(bpf_prog_aux, exception_boundary) - 145usize]; ["Offset of field: bpf_prog_aux::is_extended"] [::core::mem::offset_of!(bpf_prog_aux, is_extended) - 146usize]; + ["Offset of field: bpf_prog_aux::changes_pkt_data"] + [::core::mem::offset_of!(bpf_prog_aux, changes_pkt_data) - 147usize]; ["Offset of field: bpf_prog_aux::prog_array_member_cnt"] [::core::mem::offset_of!(bpf_prog_aux, prog_array_member_cnt) - 152usize]; ["Offset of field: bpf_prog_aux::ext_mutex"] @@ -24033,14 +23936,15 @@ pub struct bpf_subprog_info { pub linfo_idx: u32_, pub stack_depth: u16_, pub stack_extra: u16_, + pub fastcall_stack_off: s16, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, pub arg_cnt: u8_, pub args: [bpf_subprog_arg_info; 5usize], } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of bpf_subprog_info"][::core::mem::size_of::() - 56usize]; + ["Size of bpf_subprog_info"][::core::mem::size_of::() - 60usize]; ["Alignment of bpf_subprog_info"][::core::mem::align_of::() - 4usize]; ["Offset of field: bpf_subprog_info::start"] [::core::mem::offset_of!(bpf_subprog_info, start) - 0usize]; @@ -24050,10 +23954,12 @@ const _: () = { [::core::mem::offset_of!(bpf_subprog_info, stack_depth) - 8usize]; ["Offset of field: bpf_subprog_info::stack_extra"] [::core::mem::offset_of!(bpf_subprog_info, stack_extra) - 10usize]; + ["Offset of field: bpf_subprog_info::fastcall_stack_off"] + [::core::mem::offset_of!(bpf_subprog_info, fastcall_stack_off) - 12usize]; ["Offset of field: bpf_subprog_info::arg_cnt"] - [::core::mem::offset_of!(bpf_subprog_info, arg_cnt) - 13usize]; + [::core::mem::offset_of!(bpf_subprog_info, arg_cnt) - 16usize]; ["Offset of field: bpf_subprog_info::args"] - [::core::mem::offset_of!(bpf_subprog_info, args) - 16usize]; + [::core::mem::offset_of!(bpf_subprog_info, args) - 20usize]; }; impl bpf_subprog_info { #[inline] @@ -24070,7 +23976,7 @@ impl bpf_subprog_info { #[inline] pub unsafe fn has_tail_call_raw(this: *const Self) -> bool_ { unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( ::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8, @@ -24081,7 +23987,7 @@ impl bpf_subprog_info { pub unsafe fn set_has_tail_call_raw(this: *mut Self, val: bool_) { unsafe { let val: u8 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( ::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, @@ -24103,7 +24009,7 @@ impl bpf_subprog_info { #[inline] pub unsafe fn tail_call_reachable_raw(this: *const Self) -> bool_ { unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( ::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8, @@ -24114,7 +24020,7 @@ impl bpf_subprog_info { pub unsafe fn set_tail_call_reachable_raw(this: *mut Self, val: bool_) { unsafe { let val: u8 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( ::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, @@ -24136,7 +24042,7 @@ impl bpf_subprog_info { #[inline] pub unsafe fn has_ld_abs_raw(this: *const Self) -> bool_ { unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( ::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8, @@ -24147,7 +24053,7 @@ impl bpf_subprog_info { pub unsafe fn set_has_ld_abs_raw(this: *mut Self, val: bool_) { unsafe { let val: u8 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( ::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, @@ -24169,7 +24075,7 @@ impl bpf_subprog_info { #[inline] pub unsafe fn is_cb_raw(this: *const Self) -> bool_ { unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( ::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8, @@ -24180,7 +24086,7 @@ impl bpf_subprog_info { pub unsafe fn set_is_cb_raw(this: *mut Self, val: bool_) { unsafe { let val: u8 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( ::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, @@ -24202,7 +24108,7 @@ impl bpf_subprog_info { #[inline] pub unsafe fn is_async_cb_raw(this: *const Self) -> bool_ { unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( ::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8, @@ -24213,7 +24119,7 @@ impl bpf_subprog_info { pub unsafe fn set_is_async_cb_raw(this: *mut Self, val: bool_) { unsafe { let val: u8 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( ::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, @@ -24235,7 +24141,7 @@ impl bpf_subprog_info { #[inline] pub unsafe fn is_exception_cb_raw(this: *const Self) -> bool_ { unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( ::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8, @@ -24246,7 +24152,7 @@ impl bpf_subprog_info { pub unsafe fn set_is_exception_cb_raw(this: *mut Self, val: bool_) { unsafe { let val: u8 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( ::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 1u8, @@ -24268,7 +24174,7 @@ impl bpf_subprog_info { #[inline] pub unsafe fn args_cached_raw(this: *const Self) -> bool_ { unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( ::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8, @@ -24279,7 +24185,7 @@ impl bpf_subprog_info { pub unsafe fn set_args_cached_raw(this: *mut Self, val: bool_) { unsafe { let val: u8 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( ::core::ptr::addr_of_mut!((*this)._bitfield_1), 6usize, 1u8, @@ -24288,6 +24194,72 @@ impl bpf_subprog_info { } } #[inline] + pub fn keep_fastcall_stack(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_keep_fastcall_stack(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn keep_fastcall_stack_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_keep_fastcall_stack_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn changes_pkt_data(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } + } + #[inline] + pub fn set_changes_pkt_data(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn changes_pkt_data_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_changes_pkt_data_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] pub fn new_bitfield_1( has_tail_call: bool_, tail_call_reachable: bool_, @@ -24296,8 +24268,10 @@ impl bpf_subprog_info { is_async_cb: bool_, is_exception_cb: bool_, args_cached: bool_, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + keep_fastcall_stack: bool_, + changes_pkt_data: bool_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { let has_tail_call: u8 = unsafe { ::core::mem::transmute(has_tail_call) }; has_tail_call as u64 @@ -24326,6 +24300,14 @@ impl bpf_subprog_info { let args_cached: u8 = unsafe { ::core::mem::transmute(args_cached) }; args_cached as u64 }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let keep_fastcall_stack: u8 = unsafe { ::core::mem::transmute(keep_fastcall_stack) }; + keep_fastcall_stack as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let changes_pkt_data: u8 = unsafe { ::core::mem::transmute(changes_pkt_data) }; + changes_pkt_data as u64 + }); __bindgen_bitfield_unit } } @@ -25097,41 +25079,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct uprobe_consumer { - pub handler: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut uprobe_consumer, arg2: *mut pt_regs) -> ::core::ffi::c_int, - >, - pub ret_handler: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut uprobe_consumer, - arg2: ::core::ffi::c_ulong, - arg3: *mut pt_regs, - ) -> ::core::ffi::c_int, - >, - pub filter: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut uprobe_consumer, - arg2: uprobe_filter_ctx, - arg3: *mut mm_struct, - ) -> bool_, - >, - pub next: *mut uprobe_consumer, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of uprobe_consumer"][::core::mem::size_of::() - 32usize]; - ["Alignment of uprobe_consumer"][::core::mem::align_of::() - 8usize]; - ["Offset of field: uprobe_consumer::handler"] - [::core::mem::offset_of!(uprobe_consumer, handler) - 0usize]; - ["Offset of field: uprobe_consumer::ret_handler"] - [::core::mem::offset_of!(uprobe_consumer, ret_handler) - 8usize]; - ["Offset of field: uprobe_consumer::filter"] - [::core::mem::offset_of!(uprobe_consumer, filter) - 16usize]; - ["Offset of field: uprobe_consumer::next"] - [::core::mem::offset_of!(uprobe_consumer, next) - 24usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct btf_mod_pair { pub btf: *mut btf, pub module: *mut module, @@ -25212,7 +25159,9 @@ pub struct bpf_verifier_env { pub __bindgen_anon_1: bpf_verifier_env__bindgen_ty_1, pub cfg: bpf_verifier_env__bindgen_ty_2, pub bt: backtrack_state, - pub cur_hist_ent: *mut bpf_jmp_history_entry, + pub insn_hist: *mut bpf_insn_hist_entry, + pub cur_hist_ent: *mut bpf_insn_hist_entry, + pub insn_hist_cap: u32_, pub pass_cnt: u32_, pub subprog_cnt: u32_, pub prev_insn_processed: u32_, @@ -25231,6 +25180,8 @@ pub struct bpf_verifier_env { pub prev_insn_print_pos: u64_, pub fake_reg: [bpf_reg_state; 2usize], pub tmp_str_buf: [::core::ffi::c_char; 320usize], + pub insn_buf: [bpf_insn; 32usize], + pub epilogue_buf: [bpf_insn; 32usize], } #[repr(C)] #[derive(Copy, Clone)] @@ -25271,7 +25222,7 @@ const _: () = { }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of bpf_verifier_env"][::core::mem::size_of::() - 22776usize]; + ["Size of bpf_verifier_env"][::core::mem::size_of::() - 24336usize]; ["Alignment of bpf_verifier_env"][::core::mem::align_of::() - 8usize]; ["Offset of field: bpf_verifier_env::insn_idx"] [::core::mem::offset_of!(bpf_verifier_env, insn_idx) - 0usize]; @@ -25338,47 +25289,55 @@ const _: () = { ["Offset of field: bpf_verifier_env::subprog_info"] [::core::mem::offset_of!(bpf_verifier_env, subprog_info) - 2720usize]; ["Offset of field: bpf_verifier_env::cfg"] - [::core::mem::offset_of!(bpf_verifier_env, cfg) - 21976usize]; + [::core::mem::offset_of!(bpf_verifier_env, cfg) - 23008usize]; ["Offset of field: bpf_verifier_env::bt"] - [::core::mem::offset_of!(bpf_verifier_env, bt) - 22000usize]; + [::core::mem::offset_of!(bpf_verifier_env, bt) - 23032usize]; + ["Offset of field: bpf_verifier_env::insn_hist"] + [::core::mem::offset_of!(bpf_verifier_env, insn_hist) - 23144usize]; ["Offset of field: bpf_verifier_env::cur_hist_ent"] - [::core::mem::offset_of!(bpf_verifier_env, cur_hist_ent) - 22112usize]; + [::core::mem::offset_of!(bpf_verifier_env, cur_hist_ent) - 23152usize]; + ["Offset of field: bpf_verifier_env::insn_hist_cap"] + [::core::mem::offset_of!(bpf_verifier_env, insn_hist_cap) - 23160usize]; ["Offset of field: bpf_verifier_env::pass_cnt"] - [::core::mem::offset_of!(bpf_verifier_env, pass_cnt) - 22120usize]; + [::core::mem::offset_of!(bpf_verifier_env, pass_cnt) - 23164usize]; ["Offset of field: bpf_verifier_env::subprog_cnt"] - [::core::mem::offset_of!(bpf_verifier_env, subprog_cnt) - 22124usize]; + [::core::mem::offset_of!(bpf_verifier_env, subprog_cnt) - 23168usize]; ["Offset of field: bpf_verifier_env::prev_insn_processed"] - [::core::mem::offset_of!(bpf_verifier_env, prev_insn_processed) - 22128usize]; + [::core::mem::offset_of!(bpf_verifier_env, prev_insn_processed) - 23172usize]; ["Offset of field: bpf_verifier_env::insn_processed"] - [::core::mem::offset_of!(bpf_verifier_env, insn_processed) - 22132usize]; + [::core::mem::offset_of!(bpf_verifier_env, insn_processed) - 23176usize]; ["Offset of field: bpf_verifier_env::prev_jmps_processed"] - [::core::mem::offset_of!(bpf_verifier_env, prev_jmps_processed) - 22136usize]; + [::core::mem::offset_of!(bpf_verifier_env, prev_jmps_processed) - 23180usize]; ["Offset of field: bpf_verifier_env::jmps_processed"] - [::core::mem::offset_of!(bpf_verifier_env, jmps_processed) - 22140usize]; + [::core::mem::offset_of!(bpf_verifier_env, jmps_processed) - 23184usize]; ["Offset of field: bpf_verifier_env::verification_time"] - [::core::mem::offset_of!(bpf_verifier_env, verification_time) - 22144usize]; + [::core::mem::offset_of!(bpf_verifier_env, verification_time) - 23192usize]; ["Offset of field: bpf_verifier_env::max_states_per_insn"] - [::core::mem::offset_of!(bpf_verifier_env, max_states_per_insn) - 22152usize]; + [::core::mem::offset_of!(bpf_verifier_env, max_states_per_insn) - 23200usize]; ["Offset of field: bpf_verifier_env::total_states"] - [::core::mem::offset_of!(bpf_verifier_env, total_states) - 22156usize]; + [::core::mem::offset_of!(bpf_verifier_env, total_states) - 23204usize]; ["Offset of field: bpf_verifier_env::peak_states"] - [::core::mem::offset_of!(bpf_verifier_env, peak_states) - 22160usize]; + [::core::mem::offset_of!(bpf_verifier_env, peak_states) - 23208usize]; ["Offset of field: bpf_verifier_env::longest_mark_read_walk"] - [::core::mem::offset_of!(bpf_verifier_env, longest_mark_read_walk) - 22164usize]; + [::core::mem::offset_of!(bpf_verifier_env, longest_mark_read_walk) - 23212usize]; ["Offset of field: bpf_verifier_env::fd_array"] - [::core::mem::offset_of!(bpf_verifier_env, fd_array) - 22168usize]; + [::core::mem::offset_of!(bpf_verifier_env, fd_array) - 23216usize]; ["Offset of field: bpf_verifier_env::scratched_regs"] - [::core::mem::offset_of!(bpf_verifier_env, scratched_regs) - 22184usize]; + [::core::mem::offset_of!(bpf_verifier_env, scratched_regs) - 23232usize]; ["Offset of field: bpf_verifier_env::scratched_stack_slots"] - [::core::mem::offset_of!(bpf_verifier_env, scratched_stack_slots) - 22192usize]; + [::core::mem::offset_of!(bpf_verifier_env, scratched_stack_slots) - 23240usize]; ["Offset of field: bpf_verifier_env::prev_log_pos"] - [::core::mem::offset_of!(bpf_verifier_env, prev_log_pos) - 22200usize]; + [::core::mem::offset_of!(bpf_verifier_env, prev_log_pos) - 23248usize]; ["Offset of field: bpf_verifier_env::prev_insn_print_pos"] - [::core::mem::offset_of!(bpf_verifier_env, prev_insn_print_pos) - 22208usize]; + [::core::mem::offset_of!(bpf_verifier_env, prev_insn_print_pos) - 23256usize]; ["Offset of field: bpf_verifier_env::fake_reg"] - [::core::mem::offset_of!(bpf_verifier_env, fake_reg) - 22216usize]; + [::core::mem::offset_of!(bpf_verifier_env, fake_reg) - 23264usize]; ["Offset of field: bpf_verifier_env::tmp_str_buf"] - [::core::mem::offset_of!(bpf_verifier_env, tmp_str_buf) - 22456usize]; + [::core::mem::offset_of!(bpf_verifier_env, tmp_str_buf) - 23504usize]; + ["Offset of field: bpf_verifier_env::insn_buf"] + [::core::mem::offset_of!(bpf_verifier_env, insn_buf) - 23824usize]; + ["Offset of field: bpf_verifier_env::epilogue_buf"] + [::core::mem::offset_of!(bpf_verifier_env, epilogue_buf) - 24080usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -25402,6 +25361,13 @@ pub struct bpf_verifier_ops { arg3: *const bpf_prog, ) -> ::core::ffi::c_int, >, + pub gen_epilogue: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_insn, + arg2: *const bpf_prog, + arg3: s16, + ) -> ::core::ffi::c_int, + >, pub gen_ld_abs: ::core::option::Option< unsafe extern "C" fn(arg1: *const bpf_insn, arg2: *mut bpf_insn) -> ::core::ffi::c_int, >, @@ -25425,7 +25391,7 @@ pub struct bpf_verifier_ops { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of bpf_verifier_ops"][::core::mem::size_of::() - 48usize]; + ["Size of bpf_verifier_ops"][::core::mem::size_of::() - 56usize]; ["Alignment of bpf_verifier_ops"][::core::mem::align_of::() - 8usize]; ["Offset of field: bpf_verifier_ops::get_func_proto"] [::core::mem::offset_of!(bpf_verifier_ops, get_func_proto) - 0usize]; @@ -25433,12 +25399,14 @@ const _: () = { [::core::mem::offset_of!(bpf_verifier_ops, is_valid_access) - 8usize]; ["Offset of field: bpf_verifier_ops::gen_prologue"] [::core::mem::offset_of!(bpf_verifier_ops, gen_prologue) - 16usize]; + ["Offset of field: bpf_verifier_ops::gen_epilogue"] + [::core::mem::offset_of!(bpf_verifier_ops, gen_epilogue) - 24usize]; ["Offset of field: bpf_verifier_ops::gen_ld_abs"] - [::core::mem::offset_of!(bpf_verifier_ops, gen_ld_abs) - 24usize]; + [::core::mem::offset_of!(bpf_verifier_ops, gen_ld_abs) - 32usize]; ["Offset of field: bpf_verifier_ops::convert_ctx_access"] - [::core::mem::offset_of!(bpf_verifier_ops, convert_ctx_access) - 32usize]; + [::core::mem::offset_of!(bpf_verifier_ops, convert_ctx_access) - 40usize]; ["Offset of field: bpf_verifier_ops::btf_struct_access"] - [::core::mem::offset_of!(bpf_verifier_ops, btf_struct_access) - 40usize]; + [::core::mem::offset_of!(bpf_verifier_ops, btf_struct_access) - 48usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -25457,8 +25425,8 @@ pub struct bpf_verifier_state { pub first_insn_idx: u32_, pub last_insn_idx: u32_, pub loop_entry: *mut bpf_verifier_state, - pub jmp_history: *mut bpf_jmp_history_entry, - pub jmp_history_cnt: u32_, + pub insn_hist_start: u32_, + pub insn_hist_end: u32_, pub dfs_depth: u32_, pub callback_unroll_depth: u32_, pub may_goto_depth: u32_, @@ -25495,16 +25463,16 @@ const _: () = { [::core::mem::offset_of!(bpf_verifier_state, last_insn_idx) - 120usize]; ["Offset of field: bpf_verifier_state::loop_entry"] [::core::mem::offset_of!(bpf_verifier_state, loop_entry) - 128usize]; - ["Offset of field: bpf_verifier_state::jmp_history"] - [::core::mem::offset_of!(bpf_verifier_state, jmp_history) - 136usize]; - ["Offset of field: bpf_verifier_state::jmp_history_cnt"] - [::core::mem::offset_of!(bpf_verifier_state, jmp_history_cnt) - 144usize]; + ["Offset of field: bpf_verifier_state::insn_hist_start"] + [::core::mem::offset_of!(bpf_verifier_state, insn_hist_start) - 136usize]; + ["Offset of field: bpf_verifier_state::insn_hist_end"] + [::core::mem::offset_of!(bpf_verifier_state, insn_hist_end) - 140usize]; ["Offset of field: bpf_verifier_state::dfs_depth"] - [::core::mem::offset_of!(bpf_verifier_state, dfs_depth) - 148usize]; + [::core::mem::offset_of!(bpf_verifier_state, dfs_depth) - 144usize]; ["Offset of field: bpf_verifier_state::callback_unroll_depth"] - [::core::mem::offset_of!(bpf_verifier_state, callback_unroll_depth) - 152usize]; + [::core::mem::offset_of!(bpf_verifier_state, callback_unroll_depth) - 148usize]; ["Offset of field: bpf_verifier_state::may_goto_depth"] - [::core::mem::offset_of!(bpf_verifier_state, may_goto_depth) - 156usize]; + [::core::mem::offset_of!(bpf_verifier_state, may_goto_depth) - 152usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -26032,15 +26000,75 @@ pub struct perf_output_handle { pub rb: *mut perf_buffer, pub wakeup: ::core::ffi::c_ulong, pub size: ::core::ffi::c_ulong, - pub aux_flags: u64_, pub __bindgen_anon_1: perf_output_handle__bindgen_ty_1, + pub __bindgen_anon_2: perf_output_handle__bindgen_ty_2, pub page: ::core::ffi::c_int, } #[repr(C)] #[derive(Copy, Clone)] pub union perf_output_handle__bindgen_ty_1 { - pub addr: *mut ::core::ffi::c_void, - pub head: ::core::ffi::c_ulong, + pub flags: u64_, + pub aux_flags: u64_, + pub __bindgen_anon_1: perf_output_handle__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Copy, Clone)] +pub struct perf_output_handle__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of perf_output_handle__bindgen_ty_1__bindgen_ty_1"] + [::core::mem::size_of::() - 8usize]; + ["Alignment of perf_output_handle__bindgen_ty_1__bindgen_ty_1"] + [::core::mem::align_of::() - 8usize]; +}; +impl perf_output_handle__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn skip_read(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) } + } + #[inline] + pub fn set_skip_read(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn skip_read_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_skip_read_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(skip_read: u64_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let skip_read: u64 = unsafe { ::core::mem::transmute(skip_read) }; + skip_read as u64 + }); + __bindgen_bitfield_unit + } } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -26048,10 +26076,27 @@ const _: () = { [::core::mem::size_of::() - 8usize]; ["Alignment of perf_output_handle__bindgen_ty_1"] [::core::mem::align_of::() - 8usize]; - ["Offset of field: perf_output_handle__bindgen_ty_1::addr"] - [::core::mem::offset_of!(perf_output_handle__bindgen_ty_1, addr) - 0usize]; - ["Offset of field: perf_output_handle__bindgen_ty_1::head"] - [::core::mem::offset_of!(perf_output_handle__bindgen_ty_1, head) - 0usize]; + ["Offset of field: perf_output_handle__bindgen_ty_1::flags"] + [::core::mem::offset_of!(perf_output_handle__bindgen_ty_1, flags) - 0usize]; + ["Offset of field: perf_output_handle__bindgen_ty_1::aux_flags"] + [::core::mem::offset_of!(perf_output_handle__bindgen_ty_1, aux_flags) - 0usize]; +}; +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_output_handle__bindgen_ty_2 { + pub addr: *mut ::core::ffi::c_void, + pub head: ::core::ffi::c_ulong, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of perf_output_handle__bindgen_ty_2"] + [::core::mem::size_of::() - 8usize]; + ["Alignment of perf_output_handle__bindgen_ty_2"] + [::core::mem::align_of::() - 8usize]; + ["Offset of field: perf_output_handle__bindgen_ty_2::addr"] + [::core::mem::offset_of!(perf_output_handle__bindgen_ty_2, addr) - 0usize]; + ["Offset of field: perf_output_handle__bindgen_ty_2::head"] + [::core::mem::offset_of!(perf_output_handle__bindgen_ty_2, head) - 0usize]; }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -26065,8 +26110,6 @@ const _: () = { [::core::mem::offset_of!(perf_output_handle, wakeup) - 16usize]; ["Offset of field: perf_output_handle::size"] [::core::mem::offset_of!(perf_output_handle, size) - 24usize]; - ["Offset of field: perf_output_handle::aux_flags"] - [::core::mem::offset_of!(perf_output_handle, aux_flags) - 32usize]; ["Offset of field: perf_output_handle::page"] [::core::mem::offset_of!(perf_output_handle, page) - 48usize]; }; @@ -26156,7 +26199,8 @@ pub struct buffer_page { pub entries: local_t, pub real_end: ::core::ffi::c_ulong, pub order: ::core::ffi::c_uint, - pub id: u32_, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, pub page: *mut buffer_data_page, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] @@ -26171,9 +26215,89 @@ const _: () = { ["Offset of field: buffer_page::real_end"] [::core::mem::offset_of!(buffer_page, real_end) - 40usize]; ["Offset of field: buffer_page::order"][::core::mem::offset_of!(buffer_page, order) - 48usize]; - ["Offset of field: buffer_page::id"][::core::mem::offset_of!(buffer_page, id) - 52usize]; ["Offset of field: buffer_page::page"][::core::mem::offset_of!(buffer_page, page) - 56usize]; }; +impl buffer_page { + #[inline] + pub fn id(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 30u8) as u32) } + } + #[inline] + pub fn set_id(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 30u8, val as u64) + } + } + #[inline] + pub unsafe fn id_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 30u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_id_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 30u8, + val as u64, + ) + } + } + #[inline] + pub fn range(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u32) } + } + #[inline] + pub fn set_range(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(30usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn range_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 30usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_range_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 30usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(id: u32_, range: u32_) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 30u8, { + let id: u32 = unsafe { ::core::mem::transmute(id) }; + id as u64 + }); + __bindgen_bitfield_unit.set(30usize, 1u8, { + let range: u32 = unsafe { ::core::mem::transmute(range) }; + range as u64 + }); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct bug_entry { @@ -26230,6 +26354,9 @@ pub struct bus_type { pub sync_state: ::core::option::Option, pub remove: ::core::option::Option, pub shutdown: ::core::option::Option, + pub irq_get_affinity: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: ::core::ffi::c_uint) -> *const cpumask, + >, pub online: ::core::option::Option ::core::ffi::c_int>, pub offline: @@ -26249,7 +26376,7 @@ pub struct bus_type { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of bus_type"][::core::mem::size_of::() - 160usize]; + ["Size of bus_type"][::core::mem::size_of::() - 168usize]; ["Alignment of bus_type"][::core::mem::align_of::() - 8usize]; ["Offset of field: bus_type::name"][::core::mem::offset_of!(bus_type, name) - 0usize]; ["Offset of field: bus_type::dev_name"][::core::mem::offset_of!(bus_type, dev_name) - 8usize]; @@ -26266,18 +26393,20 @@ const _: () = { [::core::mem::offset_of!(bus_type, sync_state) - 64usize]; ["Offset of field: bus_type::remove"][::core::mem::offset_of!(bus_type, remove) - 72usize]; ["Offset of field: bus_type::shutdown"][::core::mem::offset_of!(bus_type, shutdown) - 80usize]; - ["Offset of field: bus_type::online"][::core::mem::offset_of!(bus_type, online) - 88usize]; - ["Offset of field: bus_type::offline"][::core::mem::offset_of!(bus_type, offline) - 96usize]; - ["Offset of field: bus_type::suspend"][::core::mem::offset_of!(bus_type, suspend) - 104usize]; - ["Offset of field: bus_type::resume"][::core::mem::offset_of!(bus_type, resume) - 112usize]; - ["Offset of field: bus_type::num_vf"][::core::mem::offset_of!(bus_type, num_vf) - 120usize]; + ["Offset of field: bus_type::irq_get_affinity"] + [::core::mem::offset_of!(bus_type, irq_get_affinity) - 88usize]; + ["Offset of field: bus_type::online"][::core::mem::offset_of!(bus_type, online) - 96usize]; + ["Offset of field: bus_type::offline"][::core::mem::offset_of!(bus_type, offline) - 104usize]; + ["Offset of field: bus_type::suspend"][::core::mem::offset_of!(bus_type, suspend) - 112usize]; + ["Offset of field: bus_type::resume"][::core::mem::offset_of!(bus_type, resume) - 120usize]; + ["Offset of field: bus_type::num_vf"][::core::mem::offset_of!(bus_type, num_vf) - 128usize]; ["Offset of field: bus_type::dma_configure"] - [::core::mem::offset_of!(bus_type, dma_configure) - 128usize]; + [::core::mem::offset_of!(bus_type, dma_configure) - 136usize]; ["Offset of field: bus_type::dma_cleanup"] - [::core::mem::offset_of!(bus_type, dma_cleanup) - 136usize]; - ["Offset of field: bus_type::pm"][::core::mem::offset_of!(bus_type, pm) - 144usize]; + [::core::mem::offset_of!(bus_type, dma_cleanup) - 144usize]; + ["Offset of field: bus_type::pm"][::core::mem::offset_of!(bus_type, pm) - 152usize]; ["Offset of field: bus_type::need_parent_lock"] - [::core::mem::offset_of!(bus_type, need_parent_lock) - 152usize]; + [::core::mem::offset_of!(bus_type, need_parent_lock) - 160usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -28121,21 +28250,21 @@ const _: () = { pub struct cfs_rq { pub load: load_weight, pub nr_running: ::core::ffi::c_uint, - pub h_nr_running: ::core::ffi::c_uint, + pub h_nr_queued: ::core::ffi::c_uint, + pub h_nr_runnable: ::core::ffi::c_uint, pub idle_nr_running: ::core::ffi::c_uint, pub idle_h_nr_running: ::core::ffi::c_uint, + pub h_nr_delayed: ::core::ffi::c_uint, pub avg_vruntime: s64, pub avg_load: u64_, - pub exec_clock: u64_, pub min_vruntime: u64_, pub forceidle_seq: ::core::ffi::c_uint, pub min_vruntime_fi: u64_, pub tasks_timeline: rb_root_cached, pub curr: *mut sched_entity, pub next: *mut sched_entity, - pub nr_spread_over: ::core::ffi::c_uint, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, pub avg: sched_avg, pub removed: cfs_rq__bindgen_ty_1, pub last_update_tg_load_avg: u64_, @@ -28204,16 +28333,19 @@ const _: () = { ["Alignment of cfs_rq"][::core::mem::align_of::() - 8usize]; ["Offset of field: cfs_rq::load"][::core::mem::offset_of!(cfs_rq, load) - 0usize]; ["Offset of field: cfs_rq::nr_running"][::core::mem::offset_of!(cfs_rq, nr_running) - 16usize]; - ["Offset of field: cfs_rq::h_nr_running"] - [::core::mem::offset_of!(cfs_rq, h_nr_running) - 20usize]; + ["Offset of field: cfs_rq::h_nr_queued"] + [::core::mem::offset_of!(cfs_rq, h_nr_queued) - 20usize]; + ["Offset of field: cfs_rq::h_nr_runnable"] + [::core::mem::offset_of!(cfs_rq, h_nr_runnable) - 24usize]; ["Offset of field: cfs_rq::idle_nr_running"] - [::core::mem::offset_of!(cfs_rq, idle_nr_running) - 24usize]; + [::core::mem::offset_of!(cfs_rq, idle_nr_running) - 28usize]; ["Offset of field: cfs_rq::idle_h_nr_running"] - [::core::mem::offset_of!(cfs_rq, idle_h_nr_running) - 28usize]; + [::core::mem::offset_of!(cfs_rq, idle_h_nr_running) - 32usize]; + ["Offset of field: cfs_rq::h_nr_delayed"] + [::core::mem::offset_of!(cfs_rq, h_nr_delayed) - 36usize]; ["Offset of field: cfs_rq::avg_vruntime"] - [::core::mem::offset_of!(cfs_rq, avg_vruntime) - 32usize]; - ["Offset of field: cfs_rq::avg_load"][::core::mem::offset_of!(cfs_rq, avg_load) - 40usize]; - ["Offset of field: cfs_rq::exec_clock"][::core::mem::offset_of!(cfs_rq, exec_clock) - 48usize]; + [::core::mem::offset_of!(cfs_rq, avg_vruntime) - 40usize]; + ["Offset of field: cfs_rq::avg_load"][::core::mem::offset_of!(cfs_rq, avg_load) - 48usize]; ["Offset of field: cfs_rq::min_vruntime"] [::core::mem::offset_of!(cfs_rq, min_vruntime) - 56usize]; ["Offset of field: cfs_rq::forceidle_seq"] @@ -28224,8 +28356,6 @@ const _: () = { [::core::mem::offset_of!(cfs_rq, tasks_timeline) - 80usize]; ["Offset of field: cfs_rq::curr"][::core::mem::offset_of!(cfs_rq, curr) - 96usize]; ["Offset of field: cfs_rq::next"][::core::mem::offset_of!(cfs_rq, next) - 104usize]; - ["Offset of field: cfs_rq::nr_spread_over"] - [::core::mem::offset_of!(cfs_rq, nr_spread_over) - 112usize]; ["Offset of field: cfs_rq::avg"][::core::mem::offset_of!(cfs_rq, avg) - 128usize]; ["Offset of field: cfs_rq::removed"][::core::mem::offset_of!(cfs_rq, removed) - 192usize]; ["Offset of field: cfs_rq::last_update_tg_load_avg"] @@ -28272,8 +28402,8 @@ const _: () = { }; impl cfs_rq { #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); __bindgen_bitfield_unit } } @@ -28504,12 +28634,13 @@ pub struct cgroup { pub kn: *mut kernfs_node, pub procs_file: cgroup_file, pub events_file: cgroup_file, - pub psi_files: [cgroup_file; 3usize], + pub psi_files: [cgroup_file; 4usize], pub subtree_control: u16_, pub subtree_ss_mask: u16_, pub old_subtree_control: u16_, pub old_subtree_ss_mask: u16_, pub subsys: [*mut cgroup_subsys_state; 14usize], + pub nr_dying_subsys: [::core::ffi::c_int; 14usize], pub root: *mut cgroup_root, pub cset_links: list_head, pub e_csets: [list_head; 14usize], @@ -28518,7 +28649,7 @@ pub struct cgroup { pub rstat_cpu: *mut cgroup_rstat_cpu, pub rstat_css_list: list_head, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, pub _pad_: cacheline_padding, pub rstat_flush_next: *mut cgroup, pub last_bstat: cgroup_base_stat, @@ -28538,75 +28669,78 @@ pub struct cgroup { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of cgroup"][::core::mem::size_of::() - 1984usize]; + ["Size of cgroup"][::core::mem::size_of::() - 2112usize]; ["Alignment of cgroup"][::core::mem::align_of::() - 8usize]; ["Offset of field: cgroup::self_"][::core::mem::offset_of!(cgroup, self_) - 0usize]; - ["Offset of field: cgroup::flags"][::core::mem::offset_of!(cgroup, flags) - 200usize]; - ["Offset of field: cgroup::level"][::core::mem::offset_of!(cgroup, level) - 208usize]; - ["Offset of field: cgroup::max_depth"][::core::mem::offset_of!(cgroup, max_depth) - 212usize]; + ["Offset of field: cgroup::flags"][::core::mem::offset_of!(cgroup, flags) - 208usize]; + ["Offset of field: cgroup::level"][::core::mem::offset_of!(cgroup, level) - 216usize]; + ["Offset of field: cgroup::max_depth"][::core::mem::offset_of!(cgroup, max_depth) - 220usize]; ["Offset of field: cgroup::nr_descendants"] - [::core::mem::offset_of!(cgroup, nr_descendants) - 216usize]; + [::core::mem::offset_of!(cgroup, nr_descendants) - 224usize]; ["Offset of field: cgroup::nr_dying_descendants"] - [::core::mem::offset_of!(cgroup, nr_dying_descendants) - 220usize]; + [::core::mem::offset_of!(cgroup, nr_dying_descendants) - 228usize]; ["Offset of field: cgroup::max_descendants"] - [::core::mem::offset_of!(cgroup, max_descendants) - 224usize]; + [::core::mem::offset_of!(cgroup, max_descendants) - 232usize]; ["Offset of field: cgroup::nr_populated_csets"] - [::core::mem::offset_of!(cgroup, nr_populated_csets) - 228usize]; + [::core::mem::offset_of!(cgroup, nr_populated_csets) - 236usize]; ["Offset of field: cgroup::nr_populated_domain_children"] - [::core::mem::offset_of!(cgroup, nr_populated_domain_children) - 232usize]; + [::core::mem::offset_of!(cgroup, nr_populated_domain_children) - 240usize]; ["Offset of field: cgroup::nr_populated_threaded_children"] - [::core::mem::offset_of!(cgroup, nr_populated_threaded_children) - 236usize]; + [::core::mem::offset_of!(cgroup, nr_populated_threaded_children) - 244usize]; ["Offset of field: cgroup::nr_threaded_children"] - [::core::mem::offset_of!(cgroup, nr_threaded_children) - 240usize]; - ["Offset of field: cgroup::kill_seq"][::core::mem::offset_of!(cgroup, kill_seq) - 244usize]; - ["Offset of field: cgroup::kn"][::core::mem::offset_of!(cgroup, kn) - 248usize]; - ["Offset of field: cgroup::procs_file"][::core::mem::offset_of!(cgroup, procs_file) - 256usize]; + [::core::mem::offset_of!(cgroup, nr_threaded_children) - 248usize]; + ["Offset of field: cgroup::kill_seq"][::core::mem::offset_of!(cgroup, kill_seq) - 252usize]; + ["Offset of field: cgroup::kn"][::core::mem::offset_of!(cgroup, kn) - 256usize]; + ["Offset of field: cgroup::procs_file"][::core::mem::offset_of!(cgroup, procs_file) - 264usize]; ["Offset of field: cgroup::events_file"] - [::core::mem::offset_of!(cgroup, events_file) - 312usize]; - ["Offset of field: cgroup::psi_files"][::core::mem::offset_of!(cgroup, psi_files) - 368usize]; + [::core::mem::offset_of!(cgroup, events_file) - 320usize]; + ["Offset of field: cgroup::psi_files"][::core::mem::offset_of!(cgroup, psi_files) - 376usize]; ["Offset of field: cgroup::subtree_control"] - [::core::mem::offset_of!(cgroup, subtree_control) - 536usize]; + [::core::mem::offset_of!(cgroup, subtree_control) - 600usize]; ["Offset of field: cgroup::subtree_ss_mask"] - [::core::mem::offset_of!(cgroup, subtree_ss_mask) - 538usize]; + [::core::mem::offset_of!(cgroup, subtree_ss_mask) - 602usize]; ["Offset of field: cgroup::old_subtree_control"] - [::core::mem::offset_of!(cgroup, old_subtree_control) - 540usize]; + [::core::mem::offset_of!(cgroup, old_subtree_control) - 604usize]; ["Offset of field: cgroup::old_subtree_ss_mask"] - [::core::mem::offset_of!(cgroup, old_subtree_ss_mask) - 542usize]; - ["Offset of field: cgroup::subsys"][::core::mem::offset_of!(cgroup, subsys) - 544usize]; - ["Offset of field: cgroup::root"][::core::mem::offset_of!(cgroup, root) - 656usize]; - ["Offset of field: cgroup::cset_links"][::core::mem::offset_of!(cgroup, cset_links) - 664usize]; - ["Offset of field: cgroup::e_csets"][::core::mem::offset_of!(cgroup, e_csets) - 680usize]; - ["Offset of field: cgroup::dom_cgrp"][::core::mem::offset_of!(cgroup, dom_cgrp) - 904usize]; + [::core::mem::offset_of!(cgroup, old_subtree_ss_mask) - 606usize]; + ["Offset of field: cgroup::subsys"][::core::mem::offset_of!(cgroup, subsys) - 608usize]; + ["Offset of field: cgroup::nr_dying_subsys"] + [::core::mem::offset_of!(cgroup, nr_dying_subsys) - 720usize]; + ["Offset of field: cgroup::root"][::core::mem::offset_of!(cgroup, root) - 776usize]; + ["Offset of field: cgroup::cset_links"][::core::mem::offset_of!(cgroup, cset_links) - 784usize]; + ["Offset of field: cgroup::e_csets"][::core::mem::offset_of!(cgroup, e_csets) - 800usize]; + ["Offset of field: cgroup::dom_cgrp"][::core::mem::offset_of!(cgroup, dom_cgrp) - 1024usize]; ["Offset of field: cgroup::old_dom_cgrp"] - [::core::mem::offset_of!(cgroup, old_dom_cgrp) - 912usize]; - ["Offset of field: cgroup::rstat_cpu"][::core::mem::offset_of!(cgroup, rstat_cpu) - 920usize]; + [::core::mem::offset_of!(cgroup, old_dom_cgrp) - 1032usize]; + ["Offset of field: cgroup::rstat_cpu"][::core::mem::offset_of!(cgroup, rstat_cpu) - 1040usize]; ["Offset of field: cgroup::rstat_css_list"] - [::core::mem::offset_of!(cgroup, rstat_css_list) - 928usize]; - ["Offset of field: cgroup::_pad_"][::core::mem::offset_of!(cgroup, _pad_) - 960usize]; + [::core::mem::offset_of!(cgroup, rstat_css_list) - 1048usize]; + ["Offset of field: cgroup::_pad_"][::core::mem::offset_of!(cgroup, _pad_) - 1088usize]; ["Offset of field: cgroup::rstat_flush_next"] - [::core::mem::offset_of!(cgroup, rstat_flush_next) - 960usize]; - ["Offset of field: cgroup::last_bstat"][::core::mem::offset_of!(cgroup, last_bstat) - 968usize]; - ["Offset of field: cgroup::bstat"][::core::mem::offset_of!(cgroup, bstat) - 1008usize]; + [::core::mem::offset_of!(cgroup, rstat_flush_next) - 1088usize]; + ["Offset of field: cgroup::last_bstat"] + [::core::mem::offset_of!(cgroup, last_bstat) - 1096usize]; + ["Offset of field: cgroup::bstat"][::core::mem::offset_of!(cgroup, bstat) - 1136usize]; ["Offset of field: cgroup::prev_cputime"] - [::core::mem::offset_of!(cgroup, prev_cputime) - 1048usize]; - ["Offset of field: cgroup::pidlists"][::core::mem::offset_of!(cgroup, pidlists) - 1072usize]; + [::core::mem::offset_of!(cgroup, prev_cputime) - 1176usize]; + ["Offset of field: cgroup::pidlists"][::core::mem::offset_of!(cgroup, pidlists) - 1200usize]; ["Offset of field: cgroup::pidlist_mutex"] - [::core::mem::offset_of!(cgroup, pidlist_mutex) - 1088usize]; + [::core::mem::offset_of!(cgroup, pidlist_mutex) - 1216usize]; ["Offset of field: cgroup::offline_waitq"] - [::core::mem::offset_of!(cgroup, offline_waitq) - 1120usize]; + [::core::mem::offset_of!(cgroup, offline_waitq) - 1248usize]; ["Offset of field: cgroup::release_agent_work"] - [::core::mem::offset_of!(cgroup, release_agent_work) - 1144usize]; - ["Offset of field: cgroup::psi"][::core::mem::offset_of!(cgroup, psi) - 1176usize]; - ["Offset of field: cgroup::bpf"][::core::mem::offset_of!(cgroup, bpf) - 1184usize]; - ["Offset of field: cgroup::freezer"][::core::mem::offset_of!(cgroup, freezer) - 1904usize]; + [::core::mem::offset_of!(cgroup, release_agent_work) - 1272usize]; + ["Offset of field: cgroup::psi"][::core::mem::offset_of!(cgroup, psi) - 1304usize]; + ["Offset of field: cgroup::bpf"][::core::mem::offset_of!(cgroup, bpf) - 1312usize]; + ["Offset of field: cgroup::freezer"][::core::mem::offset_of!(cgroup, freezer) - 2032usize]; ["Offset of field: cgroup::bpf_cgrp_storage"] - [::core::mem::offset_of!(cgroup, bpf_cgrp_storage) - 1920usize]; - ["Offset of field: cgroup::ancestors"][::core::mem::offset_of!(cgroup, ancestors) - 1928usize]; + [::core::mem::offset_of!(cgroup, bpf_cgrp_storage) - 2048usize]; + ["Offset of field: cgroup::ancestors"][::core::mem::offset_of!(cgroup, ancestors) - 2056usize]; }; impl cgroup { #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); __bindgen_bitfield_unit } } @@ -28698,7 +28832,7 @@ pub struct cgroup_root { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of cgroup_root"][::core::mem::size_of::() - 6272usize]; + ["Size of cgroup_root"][::core::mem::size_of::() - 6400usize]; ["Alignment of cgroup_root"][::core::mem::align_of::() - 8usize]; ["Offset of field: cgroup_root::kf_root"] [::core::mem::offset_of!(cgroup_root, kf_root) - 0usize]; @@ -28711,14 +28845,14 @@ const _: () = { ["Offset of field: cgroup_root::rcu"][::core::mem::offset_of!(cgroup_root, rcu) - 32usize]; ["Offset of field: cgroup_root::cgrp"][::core::mem::offset_of!(cgroup_root, cgrp) - 64usize]; ["Offset of field: cgroup_root::cgrp_ancestor_storage"] - [::core::mem::offset_of!(cgroup_root, cgrp_ancestor_storage) - 2048usize]; + [::core::mem::offset_of!(cgroup_root, cgrp_ancestor_storage) - 2176usize]; ["Offset of field: cgroup_root::nr_cgrps"] - [::core::mem::offset_of!(cgroup_root, nr_cgrps) - 2056usize]; + [::core::mem::offset_of!(cgroup_root, nr_cgrps) - 2184usize]; ["Offset of field: cgroup_root::flags"] - [::core::mem::offset_of!(cgroup_root, flags) - 2060usize]; + [::core::mem::offset_of!(cgroup_root, flags) - 2188usize]; ["Offset of field: cgroup_root::release_agent_path"] - [::core::mem::offset_of!(cgroup_root, release_agent_path) - 2064usize]; - ["Offset of field: cgroup_root::name"][::core::mem::offset_of!(cgroup_root, name) - 6160usize]; + [::core::mem::offset_of!(cgroup_root, release_agent_path) - 2192usize]; + ["Offset of field: cgroup_root::name"][::core::mem::offset_of!(cgroup_root, name) - 6288usize]; }; impl cgroup_root { #[inline] @@ -28785,6 +28919,7 @@ pub struct cgroup_subsys { pub css_released: ::core::option::Option, pub css_free: ::core::option::Option, pub css_reset: ::core::option::Option, + pub css_killed: ::core::option::Option, pub css_rstat_flush: ::core::option::Option< unsafe extern "C" fn(arg1: *mut cgroup_subsys_state, arg2: ::core::ffi::c_int), >, @@ -28829,7 +28964,7 @@ pub struct cgroup_subsys { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of cgroup_subsys"][::core::mem::size_of::() - 248usize]; + ["Size of cgroup_subsys"][::core::mem::size_of::() - 256usize]; ["Alignment of cgroup_subsys"][::core::mem::align_of::() - 8usize]; ["Offset of field: cgroup_subsys::css_alloc"] [::core::mem::offset_of!(cgroup_subsys, css_alloc) - 0usize]; @@ -28843,49 +28978,51 @@ const _: () = { [::core::mem::offset_of!(cgroup_subsys, css_free) - 32usize]; ["Offset of field: cgroup_subsys::css_reset"] [::core::mem::offset_of!(cgroup_subsys, css_reset) - 40usize]; + ["Offset of field: cgroup_subsys::css_killed"] + [::core::mem::offset_of!(cgroup_subsys, css_killed) - 48usize]; ["Offset of field: cgroup_subsys::css_rstat_flush"] - [::core::mem::offset_of!(cgroup_subsys, css_rstat_flush) - 48usize]; + [::core::mem::offset_of!(cgroup_subsys, css_rstat_flush) - 56usize]; ["Offset of field: cgroup_subsys::css_extra_stat_show"] - [::core::mem::offset_of!(cgroup_subsys, css_extra_stat_show) - 56usize]; + [::core::mem::offset_of!(cgroup_subsys, css_extra_stat_show) - 64usize]; ["Offset of field: cgroup_subsys::css_local_stat_show"] - [::core::mem::offset_of!(cgroup_subsys, css_local_stat_show) - 64usize]; + [::core::mem::offset_of!(cgroup_subsys, css_local_stat_show) - 72usize]; ["Offset of field: cgroup_subsys::can_attach"] - [::core::mem::offset_of!(cgroup_subsys, can_attach) - 72usize]; + [::core::mem::offset_of!(cgroup_subsys, can_attach) - 80usize]; ["Offset of field: cgroup_subsys::cancel_attach"] - [::core::mem::offset_of!(cgroup_subsys, cancel_attach) - 80usize]; + [::core::mem::offset_of!(cgroup_subsys, cancel_attach) - 88usize]; ["Offset of field: cgroup_subsys::attach"] - [::core::mem::offset_of!(cgroup_subsys, attach) - 88usize]; + [::core::mem::offset_of!(cgroup_subsys, attach) - 96usize]; ["Offset of field: cgroup_subsys::post_attach"] - [::core::mem::offset_of!(cgroup_subsys, post_attach) - 96usize]; + [::core::mem::offset_of!(cgroup_subsys, post_attach) - 104usize]; ["Offset of field: cgroup_subsys::can_fork"] - [::core::mem::offset_of!(cgroup_subsys, can_fork) - 104usize]; + [::core::mem::offset_of!(cgroup_subsys, can_fork) - 112usize]; ["Offset of field: cgroup_subsys::cancel_fork"] - [::core::mem::offset_of!(cgroup_subsys, cancel_fork) - 112usize]; + [::core::mem::offset_of!(cgroup_subsys, cancel_fork) - 120usize]; ["Offset of field: cgroup_subsys::fork"] - [::core::mem::offset_of!(cgroup_subsys, fork) - 120usize]; + [::core::mem::offset_of!(cgroup_subsys, fork) - 128usize]; ["Offset of field: cgroup_subsys::exit"] - [::core::mem::offset_of!(cgroup_subsys, exit) - 128usize]; + [::core::mem::offset_of!(cgroup_subsys, exit) - 136usize]; ["Offset of field: cgroup_subsys::release"] - [::core::mem::offset_of!(cgroup_subsys, release) - 136usize]; + [::core::mem::offset_of!(cgroup_subsys, release) - 144usize]; ["Offset of field: cgroup_subsys::bind"] - [::core::mem::offset_of!(cgroup_subsys, bind) - 144usize]; - ["Offset of field: cgroup_subsys::id"][::core::mem::offset_of!(cgroup_subsys, id) - 156usize]; + [::core::mem::offset_of!(cgroup_subsys, bind) - 152usize]; + ["Offset of field: cgroup_subsys::id"][::core::mem::offset_of!(cgroup_subsys, id) - 164usize]; ["Offset of field: cgroup_subsys::name"] - [::core::mem::offset_of!(cgroup_subsys, name) - 160usize]; + [::core::mem::offset_of!(cgroup_subsys, name) - 168usize]; ["Offset of field: cgroup_subsys::legacy_name"] - [::core::mem::offset_of!(cgroup_subsys, legacy_name) - 168usize]; + [::core::mem::offset_of!(cgroup_subsys, legacy_name) - 176usize]; ["Offset of field: cgroup_subsys::root"] - [::core::mem::offset_of!(cgroup_subsys, root) - 176usize]; + [::core::mem::offset_of!(cgroup_subsys, root) - 184usize]; ["Offset of field: cgroup_subsys::css_idr"] - [::core::mem::offset_of!(cgroup_subsys, css_idr) - 184usize]; + [::core::mem::offset_of!(cgroup_subsys, css_idr) - 192usize]; ["Offset of field: cgroup_subsys::cfts"] - [::core::mem::offset_of!(cgroup_subsys, cfts) - 208usize]; + [::core::mem::offset_of!(cgroup_subsys, cfts) - 216usize]; ["Offset of field: cgroup_subsys::dfl_cftypes"] - [::core::mem::offset_of!(cgroup_subsys, dfl_cftypes) - 224usize]; + [::core::mem::offset_of!(cgroup_subsys, dfl_cftypes) - 232usize]; ["Offset of field: cgroup_subsys::legacy_cftypes"] - [::core::mem::offset_of!(cgroup_subsys, legacy_cftypes) - 232usize]; + [::core::mem::offset_of!(cgroup_subsys, legacy_cftypes) - 240usize]; ["Offset of field: cgroup_subsys::depends_on"] - [::core::mem::offset_of!(cgroup_subsys, depends_on) - 240usize]; + [::core::mem::offset_of!(cgroup_subsys, depends_on) - 248usize]; }; impl cgroup_subsys { #[inline] @@ -29178,6 +29315,75 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct debugfs_u32_array { + pub array: *mut u32_, + pub n_elements: u32_, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of debugfs_u32_array"][::core::mem::size_of::() - 16usize]; + ["Alignment of debugfs_u32_array"][::core::mem::align_of::() - 8usize]; + ["Offset of field: debugfs_u32_array::array"] + [::core::mem::offset_of!(debugfs_u32_array, array) - 0usize]; + ["Offset of field: debugfs_u32_array::n_elements"] + [::core::mem::offset_of!(debugfs_u32_array, n_elements) - 8usize]; +}; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cma { + pub base_pfn: ::core::ffi::c_ulong, + pub count: ::core::ffi::c_ulong, + pub bitmap: *mut ::core::ffi::c_ulong, + pub order_per_bit: ::core::ffi::c_uint, + pub lock: spinlock_t, + pub mem_head: hlist_head, + pub mem_head_lock: spinlock_t, + pub dfs_bitmap: debugfs_u32_array, + pub name: [::core::ffi::c_char; 64usize], + pub nr_pages_succeeded: atomic64_t, + pub nr_pages_failed: atomic64_t, + pub nr_pages_released: atomic64_t, + pub cma_kobj: *mut cma_kobject, + pub reserve_pages_on_error: bool_, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of cma"][::core::mem::size_of::() - 168usize]; + ["Alignment of cma"][::core::mem::align_of::() - 8usize]; + ["Offset of field: cma::base_pfn"][::core::mem::offset_of!(cma, base_pfn) - 0usize]; + ["Offset of field: cma::count"][::core::mem::offset_of!(cma, count) - 8usize]; + ["Offset of field: cma::bitmap"][::core::mem::offset_of!(cma, bitmap) - 16usize]; + ["Offset of field: cma::order_per_bit"][::core::mem::offset_of!(cma, order_per_bit) - 24usize]; + ["Offset of field: cma::lock"][::core::mem::offset_of!(cma, lock) - 28usize]; + ["Offset of field: cma::mem_head"][::core::mem::offset_of!(cma, mem_head) - 32usize]; + ["Offset of field: cma::mem_head_lock"][::core::mem::offset_of!(cma, mem_head_lock) - 40usize]; + ["Offset of field: cma::dfs_bitmap"][::core::mem::offset_of!(cma, dfs_bitmap) - 48usize]; + ["Offset of field: cma::name"][::core::mem::offset_of!(cma, name) - 64usize]; + ["Offset of field: cma::nr_pages_succeeded"] + [::core::mem::offset_of!(cma, nr_pages_succeeded) - 128usize]; + ["Offset of field: cma::nr_pages_failed"] + [::core::mem::offset_of!(cma, nr_pages_failed) - 136usize]; + ["Offset of field: cma::nr_pages_released"] + [::core::mem::offset_of!(cma, nr_pages_released) - 144usize]; + ["Offset of field: cma::cma_kobj"][::core::mem::offset_of!(cma, cma_kobj) - 152usize]; + ["Offset of field: cma::reserve_pages_on_error"] + [::core::mem::offset_of!(cma, reserve_pages_on_error) - 160usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cma_kobject { + pub kobj: kobject, + pub cma: *mut cma, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of cma_kobject"][::core::mem::size_of::() - 72usize]; + ["Alignment of cma_kobject"][::core::mem::align_of::() - 8usize]; + ["Offset of field: cma_kobject::kobj"][::core::mem::offset_of!(cma_kobject, kobj) - 0usize]; + ["Offset of field: cma_kobject::cma"][::core::mem::offset_of!(cma_kobject, cma) - 64usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct ethtool_coalesce { pub cmd: __u32, pub rx_coalesce_usecs: __u32, @@ -29689,23 +29895,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct winsize { - pub ws_row: ::core::ffi::c_ushort, - pub ws_col: ::core::ffi::c_ushort, - pub ws_xpixel: ::core::ffi::c_ushort, - pub ws_ypixel: ::core::ffi::c_ushort, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of winsize"][::core::mem::size_of::() - 8usize]; - ["Alignment of winsize"][::core::mem::align_of::() - 2usize]; - ["Offset of field: winsize::ws_row"][::core::mem::offset_of!(winsize, ws_row) - 0usize]; - ["Offset of field: winsize::ws_col"][::core::mem::offset_of!(winsize, ws_col) - 2usize]; - ["Offset of field: winsize::ws_xpixel"][::core::mem::offset_of!(winsize, ws_xpixel) - 4usize]; - ["Offset of field: winsize::ws_ypixel"][::core::mem::offset_of!(winsize, ws_ypixel) - 6usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct core_thread { pub task: *mut task_struct, pub next: *mut core_thread, @@ -29776,10 +29965,11 @@ pub struct coredump_params { pub vma_count: ::core::ffi::c_int, pub vma_data_size: usize, pub vma_meta: *mut core_vma_metadata, + pub pid: *mut pid, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of coredump_params"][::core::mem::size_of::() - 88usize]; + ["Size of coredump_params"][::core::mem::size_of::() - 96usize]; ["Alignment of coredump_params"][::core::mem::align_of::() - 8usize]; ["Offset of field: coredump_params::siginfo"] [::core::mem::offset_of!(coredump_params, siginfo) - 0usize]; @@ -29803,6 +29993,8 @@ const _: () = { [::core::mem::offset_of!(coredump_params, vma_data_size) - 72usize]; ["Offset of field: coredump_params::vma_meta"] [::core::mem::offset_of!(coredump_params, vma_meta) - 80usize]; + ["Offset of field: coredump_params::pid"] + [::core::mem::offset_of!(coredump_params, pid) - 88usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -31221,160 +31413,6 @@ const _: () = { }; #[repr(C)] #[derive(Copy, Clone)] -pub struct iphdr { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub tos: __u8, - pub tot_len: __be16, - pub id: __be16, - pub frag_off: __be16, - pub ttl: __u8, - pub protocol: __u8, - pub check: __sum16, - pub __bindgen_anon_1: iphdr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union iphdr__bindgen_ty_1 { - pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1, - pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iphdr__bindgen_ty_1__bindgen_ty_1 { - pub saddr: __be32, - pub daddr: __be32, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of iphdr__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of iphdr__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: iphdr__bindgen_ty_1__bindgen_ty_1::saddr"] - [::core::mem::offset_of!(iphdr__bindgen_ty_1__bindgen_ty_1, saddr) - 0usize]; - ["Offset of field: iphdr__bindgen_ty_1__bindgen_ty_1::daddr"] - [::core::mem::offset_of!(iphdr__bindgen_ty_1__bindgen_ty_1, daddr) - 4usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iphdr__bindgen_ty_1__bindgen_ty_2 { - pub saddr: __be32, - pub daddr: __be32, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of iphdr__bindgen_ty_1__bindgen_ty_2"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of iphdr__bindgen_ty_1__bindgen_ty_2"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: iphdr__bindgen_ty_1__bindgen_ty_2::saddr"] - [::core::mem::offset_of!(iphdr__bindgen_ty_1__bindgen_ty_2, saddr) - 0usize]; - ["Offset of field: iphdr__bindgen_ty_1__bindgen_ty_2::daddr"] - [::core::mem::offset_of!(iphdr__bindgen_ty_1__bindgen_ty_2, daddr) - 4usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of iphdr__bindgen_ty_1"][::core::mem::size_of::() - 8usize]; - ["Alignment of iphdr__bindgen_ty_1"][::core::mem::align_of::() - 4usize]; - ["Offset of field: iphdr__bindgen_ty_1::addrs"] - [::core::mem::offset_of!(iphdr__bindgen_ty_1, addrs) - 0usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of iphdr"][::core::mem::size_of::() - 20usize]; - ["Alignment of iphdr"][::core::mem::align_of::() - 4usize]; - ["Offset of field: iphdr::tos"][::core::mem::offset_of!(iphdr, tos) - 1usize]; - ["Offset of field: iphdr::tot_len"][::core::mem::offset_of!(iphdr, tot_len) - 2usize]; - ["Offset of field: iphdr::id"][::core::mem::offset_of!(iphdr, id) - 4usize]; - ["Offset of field: iphdr::frag_off"][::core::mem::offset_of!(iphdr, frag_off) - 6usize]; - ["Offset of field: iphdr::ttl"][::core::mem::offset_of!(iphdr, ttl) - 8usize]; - ["Offset of field: iphdr::protocol"][::core::mem::offset_of!(iphdr, protocol) - 9usize]; - ["Offset of field: iphdr::check"][::core::mem::offset_of!(iphdr, check) - 10usize]; -}; -impl iphdr { - #[inline] - pub fn ihl(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_ihl(&mut self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub unsafe fn ihl_raw(this: *const Self) -> __u8 { - unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( - ::core::ptr::addr_of!((*this)._bitfield_1), - 0usize, - 4u8, - ) as u8) - } - } - #[inline] - pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( - ::core::ptr::addr_of_mut!((*this)._bitfield_1), - 0usize, - 4u8, - val as u64, - ) - } - } - #[inline] - pub fn version(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_version(&mut self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub unsafe fn version_raw(this: *const Self) -> __u8 { - unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( - ::core::ptr::addr_of!((*this)._bitfield_1), - 4usize, - 4u8, - ) as u8) - } - } - #[inline] - pub unsafe fn set_version_raw(this: *mut Self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( - ::core::ptr::addr_of_mut!((*this)._bitfield_1), - 4usize, - 4u8, - val as u64, - ) - } - } - #[inline] - pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let ihl: u8 = unsafe { ::core::mem::transmute(ihl) }; - ihl as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let version: u8 = unsafe { ::core::mem::transmute(version) }; - version as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Copy, Clone)] pub struct ctl_table_header { pub __bindgen_anon_1: ctl_table_header__bindgen_ty_1, pub unregistering: *mut completion, @@ -31589,21 +31627,6 @@ const _: () = { ["Offset of field: ctx_rq_wait::count"][::core::mem::offset_of!(ctx_rq_wait, count) - 32usize]; }; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct da_monitor { - pub monitoring: bool_, - pub curr_state: ::core::ffi::c_uint, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of da_monitor"][::core::mem::size_of::() - 8usize]; - ["Alignment of da_monitor"][::core::mem::align_of::() - 4usize]; - ["Offset of field: da_monitor::monitoring"] - [::core::mem::offset_of!(da_monitor, monitoring) - 0usize]; - ["Offset of field: da_monitor::curr_state"] - [::core::mem::offset_of!(da_monitor, curr_state) - 4usize]; -}; -#[repr(C)] #[derive(Copy, Clone)] pub struct dax_device { pub inode: inode, @@ -31616,18 +31639,18 @@ pub struct dax_device { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of dax_device"][::core::mem::size_of::() - 768usize]; + ["Size of dax_device"][::core::mem::size_of::() - 776usize]; ["Alignment of dax_device"][::core::mem::align_of::() - 8usize]; ["Offset of field: dax_device::inode"][::core::mem::offset_of!(dax_device, inode) - 0usize]; - ["Offset of field: dax_device::cdev"][::core::mem::offset_of!(dax_device, cdev) - 624usize]; + ["Offset of field: dax_device::cdev"][::core::mem::offset_of!(dax_device, cdev) - 632usize]; ["Offset of field: dax_device::private"] - [::core::mem::offset_of!(dax_device, private) - 728usize]; - ["Offset of field: dax_device::flags"][::core::mem::offset_of!(dax_device, flags) - 736usize]; - ["Offset of field: dax_device::ops"][::core::mem::offset_of!(dax_device, ops) - 744usize]; + [::core::mem::offset_of!(dax_device, private) - 736usize]; + ["Offset of field: dax_device::flags"][::core::mem::offset_of!(dax_device, flags) - 744usize]; + ["Offset of field: dax_device::ops"][::core::mem::offset_of!(dax_device, ops) - 752usize]; ["Offset of field: dax_device::holder_data"] - [::core::mem::offset_of!(dax_device, holder_data) - 752usize]; + [::core::mem::offset_of!(dax_device, holder_data) - 760usize]; ["Offset of field: dax_device::holder_ops"] - [::core::mem::offset_of!(dax_device, holder_ops) - 760usize]; + [::core::mem::offset_of!(dax_device, holder_ops) - 768usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -32403,48 +32426,6 @@ const _: () = { }; #[repr(C)] #[derive(Copy, Clone)] -pub struct qstr { - pub __bindgen_anon_1: qstr__bindgen_ty_1, - pub name: *const ::core::ffi::c_uchar, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union qstr__bindgen_ty_1 { - pub __bindgen_anon_1: qstr__bindgen_ty_1__bindgen_ty_1, - pub hash_len: u64_, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct qstr__bindgen_ty_1__bindgen_ty_1 { - pub hash: u32_, - pub len: u32_, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of qstr__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of qstr__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: qstr__bindgen_ty_1__bindgen_ty_1::hash"] - [::core::mem::offset_of!(qstr__bindgen_ty_1__bindgen_ty_1, hash) - 0usize]; - ["Offset of field: qstr__bindgen_ty_1__bindgen_ty_1::len"] - [::core::mem::offset_of!(qstr__bindgen_ty_1__bindgen_ty_1, len) - 4usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of qstr__bindgen_ty_1"][::core::mem::size_of::() - 8usize]; - ["Alignment of qstr__bindgen_ty_1"][::core::mem::align_of::() - 8usize]; - ["Offset of field: qstr__bindgen_ty_1::hash_len"] - [::core::mem::offset_of!(qstr__bindgen_ty_1, hash_len) - 0usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of qstr"][::core::mem::size_of::() - 16usize]; - ["Alignment of qstr"][::core::mem::align_of::() - 8usize]; - ["Offset of field: qstr::name"][::core::mem::offset_of!(qstr, name) - 8usize]; -}; -#[repr(C)] -#[derive(Copy, Clone)] pub struct lockref { pub __bindgen_anon_1: lockref__bindgen_ty_1, } @@ -33688,7 +33669,7 @@ pub struct device_link { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of device_link"][::core::mem::size_of::() - 872usize]; + ["Size of device_link"][::core::mem::size_of::() - 856usize]; ["Alignment of device_link"][::core::mem::align_of::() - 8usize]; ["Offset of field: device_link::supplier"] [::core::mem::offset_of!(device_link, supplier) - 0usize]; @@ -33700,15 +33681,15 @@ const _: () = { ["Offset of field: device_link::link_dev"] [::core::mem::offset_of!(device_link, link_dev) - 48usize]; ["Offset of field: device_link::status"] - [::core::mem::offset_of!(device_link, status) - 816usize]; - ["Offset of field: device_link::flags"][::core::mem::offset_of!(device_link, flags) - 820usize]; + [::core::mem::offset_of!(device_link, status) - 800usize]; + ["Offset of field: device_link::flags"][::core::mem::offset_of!(device_link, flags) - 804usize]; ["Offset of field: device_link::rpm_active"] - [::core::mem::offset_of!(device_link, rpm_active) - 824usize]; - ["Offset of field: device_link::kref"][::core::mem::offset_of!(device_link, kref) - 828usize]; + [::core::mem::offset_of!(device_link, rpm_active) - 808usize]; + ["Offset of field: device_link::kref"][::core::mem::offset_of!(device_link, kref) - 812usize]; ["Offset of field: device_link::rm_work"] - [::core::mem::offset_of!(device_link, rm_work) - 832usize]; + [::core::mem::offset_of!(device_link, rm_work) - 816usize]; ["Offset of field: device_link::supplier_preactivated"] - [::core::mem::offset_of!(device_link, supplier_preactivated) - 864usize]; + [::core::mem::offset_of!(device_link, supplier_preactivated) - 848usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -33914,12 +33895,12 @@ pub struct ratelimit_state { pub burst: ::core::ffi::c_int, pub printed: ::core::ffi::c_int, pub missed: ::core::ffi::c_int, + pub flags: ::core::ffi::c_uint, pub begin: ::core::ffi::c_ulong, - pub flags: ::core::ffi::c_ulong, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of ratelimit_state"][::core::mem::size_of::() - 40usize]; + ["Size of ratelimit_state"][::core::mem::size_of::() - 32usize]; ["Alignment of ratelimit_state"][::core::mem::align_of::() - 8usize]; ["Offset of field: ratelimit_state::lock"] [::core::mem::offset_of!(ratelimit_state, lock) - 0usize]; @@ -33931,10 +33912,10 @@ const _: () = { [::core::mem::offset_of!(ratelimit_state, printed) - 12usize]; ["Offset of field: ratelimit_state::missed"] [::core::mem::offset_of!(ratelimit_state, missed) - 16usize]; + ["Offset of field: ratelimit_state::flags"] + [::core::mem::offset_of!(ratelimit_state, flags) - 20usize]; ["Offset of field: ratelimit_state::begin"] [::core::mem::offset_of!(ratelimit_state, begin) - 24usize]; - ["Offset of field: ratelimit_state::flags"] - [::core::mem::offset_of!(ratelimit_state, flags) - 32usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -36199,55 +36180,25 @@ const _: () = { ["Offset of field: dm_hw_stat_delta::rcu"] [::core::mem::offset_of!(dm_hw_stat_delta, rcu) - 16usize]; }; -pub type kthread_work_func_t = - ::core::option::Option; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct kthread_work { - pub node: list_head, - pub func: kthread_work_func_t, - pub worker: *mut kthread_worker, - pub canceling: ::core::ffi::c_int, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of kthread_work"][::core::mem::size_of::() - 40usize]; - ["Alignment of kthread_work"][::core::mem::align_of::() - 8usize]; - ["Offset of field: kthread_work::node"][::core::mem::offset_of!(kthread_work, node) - 0usize]; - ["Offset of field: kthread_work::func"][::core::mem::offset_of!(kthread_work, func) - 16usize]; - ["Offset of field: kthread_work::worker"] - [::core::mem::offset_of!(kthread_work, worker) - 24usize]; - ["Offset of field: kthread_work::canceling"] - [::core::mem::offset_of!(kthread_work, canceling) - 32usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct kobj_uevent_env { - pub argv: [*mut ::core::ffi::c_char; 3usize], - pub envp: [*mut ::core::ffi::c_char; 64usize], - pub envp_idx: ::core::ffi::c_int, - pub buf: [::core::ffi::c_char; 2048usize], - pub buflen: ::core::ffi::c_int, +pub struct sg_table { + pub sgl: *mut scatterlist, + pub nents: ::core::ffi::c_uint, + pub orig_nents: ::core::ffi::c_uint, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of kobj_uevent_env"][::core::mem::size_of::() - 2592usize]; - ["Alignment of kobj_uevent_env"][::core::mem::align_of::() - 8usize]; - ["Offset of field: kobj_uevent_env::argv"] - [::core::mem::offset_of!(kobj_uevent_env, argv) - 0usize]; - ["Offset of field: kobj_uevent_env::envp"] - [::core::mem::offset_of!(kobj_uevent_env, envp) - 24usize]; - ["Offset of field: kobj_uevent_env::envp_idx"] - [::core::mem::offset_of!(kobj_uevent_env, envp_idx) - 536usize]; - ["Offset of field: kobj_uevent_env::buf"] - [::core::mem::offset_of!(kobj_uevent_env, buf) - 540usize]; - ["Offset of field: kobj_uevent_env::buflen"] - [::core::mem::offset_of!(kobj_uevent_env, buflen) - 2588usize]; + ["Size of sg_table"][::core::mem::size_of::() - 16usize]; + ["Alignment of sg_table"][::core::mem::align_of::() - 8usize]; + ["Offset of field: sg_table::sgl"][::core::mem::offset_of!(sg_table, sgl) - 0usize]; + ["Offset of field: sg_table::nents"][::core::mem::offset_of!(sg_table, nents) - 8usize]; + ["Offset of field: sg_table::orig_nents"] + [::core::mem::offset_of!(sg_table, orig_nents) - 12usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct dma_map_ops { - pub flags: ::core::ffi::c_uint, pub alloc: ::core::option::Option< unsafe extern "C" fn( arg1: *mut device, @@ -36284,23 +36235,6 @@ pub struct dma_map_ops { arg5: dma_data_direction, ), >, - pub alloc_noncontiguous: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut device, - arg2: usize, - arg3: dma_data_direction, - arg4: gfp_t, - arg5: ::core::ffi::c_ulong, - ) -> *mut sg_table, - >, - pub free_noncontiguous: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut device, - arg2: usize, - arg3: *mut sg_table, - arg4: dma_data_direction, - ), - >, pub mmap: ::core::option::Option< unsafe extern "C" fn( arg1: *mut device, @@ -36427,54 +36361,49 @@ pub struct dma_map_ops { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of dma_map_ops"][::core::mem::size_of::() - 200usize]; + ["Size of dma_map_ops"][::core::mem::size_of::() - 176usize]; ["Alignment of dma_map_ops"][::core::mem::align_of::() - 8usize]; - ["Offset of field: dma_map_ops::flags"][::core::mem::offset_of!(dma_map_ops, flags) - 0usize]; - ["Offset of field: dma_map_ops::alloc"][::core::mem::offset_of!(dma_map_ops, alloc) - 8usize]; - ["Offset of field: dma_map_ops::free"][::core::mem::offset_of!(dma_map_ops, free) - 16usize]; + ["Offset of field: dma_map_ops::alloc"][::core::mem::offset_of!(dma_map_ops, alloc) - 0usize]; + ["Offset of field: dma_map_ops::free"][::core::mem::offset_of!(dma_map_ops, free) - 8usize]; ["Offset of field: dma_map_ops::alloc_pages_op"] - [::core::mem::offset_of!(dma_map_ops, alloc_pages_op) - 24usize]; + [::core::mem::offset_of!(dma_map_ops, alloc_pages_op) - 16usize]; ["Offset of field: dma_map_ops::free_pages"] - [::core::mem::offset_of!(dma_map_ops, free_pages) - 32usize]; - ["Offset of field: dma_map_ops::alloc_noncontiguous"] - [::core::mem::offset_of!(dma_map_ops, alloc_noncontiguous) - 40usize]; - ["Offset of field: dma_map_ops::free_noncontiguous"] - [::core::mem::offset_of!(dma_map_ops, free_noncontiguous) - 48usize]; - ["Offset of field: dma_map_ops::mmap"][::core::mem::offset_of!(dma_map_ops, mmap) - 56usize]; + [::core::mem::offset_of!(dma_map_ops, free_pages) - 24usize]; + ["Offset of field: dma_map_ops::mmap"][::core::mem::offset_of!(dma_map_ops, mmap) - 32usize]; ["Offset of field: dma_map_ops::get_sgtable"] - [::core::mem::offset_of!(dma_map_ops, get_sgtable) - 64usize]; + [::core::mem::offset_of!(dma_map_ops, get_sgtable) - 40usize]; ["Offset of field: dma_map_ops::map_page"] - [::core::mem::offset_of!(dma_map_ops, map_page) - 72usize]; + [::core::mem::offset_of!(dma_map_ops, map_page) - 48usize]; ["Offset of field: dma_map_ops::unmap_page"] - [::core::mem::offset_of!(dma_map_ops, unmap_page) - 80usize]; + [::core::mem::offset_of!(dma_map_ops, unmap_page) - 56usize]; ["Offset of field: dma_map_ops::map_sg"] - [::core::mem::offset_of!(dma_map_ops, map_sg) - 88usize]; + [::core::mem::offset_of!(dma_map_ops, map_sg) - 64usize]; ["Offset of field: dma_map_ops::unmap_sg"] - [::core::mem::offset_of!(dma_map_ops, unmap_sg) - 96usize]; + [::core::mem::offset_of!(dma_map_ops, unmap_sg) - 72usize]; ["Offset of field: dma_map_ops::map_resource"] - [::core::mem::offset_of!(dma_map_ops, map_resource) - 104usize]; + [::core::mem::offset_of!(dma_map_ops, map_resource) - 80usize]; ["Offset of field: dma_map_ops::unmap_resource"] - [::core::mem::offset_of!(dma_map_ops, unmap_resource) - 112usize]; + [::core::mem::offset_of!(dma_map_ops, unmap_resource) - 88usize]; ["Offset of field: dma_map_ops::sync_single_for_cpu"] - [::core::mem::offset_of!(dma_map_ops, sync_single_for_cpu) - 120usize]; + [::core::mem::offset_of!(dma_map_ops, sync_single_for_cpu) - 96usize]; ["Offset of field: dma_map_ops::sync_single_for_device"] - [::core::mem::offset_of!(dma_map_ops, sync_single_for_device) - 128usize]; + [::core::mem::offset_of!(dma_map_ops, sync_single_for_device) - 104usize]; ["Offset of field: dma_map_ops::sync_sg_for_cpu"] - [::core::mem::offset_of!(dma_map_ops, sync_sg_for_cpu) - 136usize]; + [::core::mem::offset_of!(dma_map_ops, sync_sg_for_cpu) - 112usize]; ["Offset of field: dma_map_ops::sync_sg_for_device"] - [::core::mem::offset_of!(dma_map_ops, sync_sg_for_device) - 144usize]; + [::core::mem::offset_of!(dma_map_ops, sync_sg_for_device) - 120usize]; ["Offset of field: dma_map_ops::cache_sync"] - [::core::mem::offset_of!(dma_map_ops, cache_sync) - 152usize]; + [::core::mem::offset_of!(dma_map_ops, cache_sync) - 128usize]; ["Offset of field: dma_map_ops::dma_supported"] - [::core::mem::offset_of!(dma_map_ops, dma_supported) - 160usize]; + [::core::mem::offset_of!(dma_map_ops, dma_supported) - 136usize]; ["Offset of field: dma_map_ops::get_required_mask"] - [::core::mem::offset_of!(dma_map_ops, get_required_mask) - 168usize]; + [::core::mem::offset_of!(dma_map_ops, get_required_mask) - 144usize]; ["Offset of field: dma_map_ops::max_mapping_size"] - [::core::mem::offset_of!(dma_map_ops, max_mapping_size) - 176usize]; + [::core::mem::offset_of!(dma_map_ops, max_mapping_size) - 152usize]; ["Offset of field: dma_map_ops::opt_mapping_size"] - [::core::mem::offset_of!(dma_map_ops, opt_mapping_size) - 184usize]; + [::core::mem::offset_of!(dma_map_ops, opt_mapping_size) - 160usize]; ["Offset of field: dma_map_ops::get_merge_boundary"] - [::core::mem::offset_of!(dma_map_ops, get_merge_boundary) - 192usize]; + [::core::mem::offset_of!(dma_map_ops, get_merge_boundary) - 168usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -36491,22 +36420,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sg_table { - pub sgl: *mut scatterlist, - pub nents: ::core::ffi::c_uint, - pub orig_nents: ::core::ffi::c_uint, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of sg_table"][::core::mem::size_of::() - 16usize]; - ["Alignment of sg_table"][::core::mem::align_of::() - 8usize]; - ["Offset of field: sg_table::sgl"][::core::mem::offset_of!(sg_table, sgl) - 0usize]; - ["Offset of field: sg_table::nents"][::core::mem::offset_of!(sg_table, nents) - 8usize]; - ["Offset of field: sg_table::orig_nents"] - [::core::mem::offset_of!(sg_table, orig_nents) - 12usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct iommu_domain_geometry { pub aperture_start: dma_addr_t, pub aperture_end: dma_addr_t, @@ -36981,6 +36894,27 @@ const _: () = { ["Offset of field: ww_acquire_ctx::is_wait_die"] [::core::mem::offset_of!(ww_acquire_ctx, is_wait_die) - 22usize]; }; +pub type kthread_work_func_t = + ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kthread_work { + pub node: list_head, + pub func: kthread_work_func_t, + pub worker: *mut kthread_worker, + pub canceling: ::core::ffi::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of kthread_work"][::core::mem::size_of::() - 40usize]; + ["Alignment of kthread_work"][::core::mem::align_of::() - 8usize]; + ["Offset of field: kthread_work::node"][::core::mem::offset_of!(kthread_work, node) - 0usize]; + ["Offset of field: kthread_work::func"][::core::mem::offset_of!(kthread_work, func) - 16usize]; + ["Offset of field: kthread_work::worker"] + [::core::mem::offset_of!(kthread_work, worker) - 24usize]; + ["Offset of field: kthread_work::canceling"] + [::core::mem::offset_of!(kthread_work, canceling) - 32usize]; +}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct dsa_bridge { @@ -39768,88 +39702,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct elf64_hdr { - pub e_ident: [::core::ffi::c_uchar; 16usize], - pub e_type: Elf64_Half, - pub e_machine: Elf64_Half, - pub e_version: Elf64_Word, - pub e_entry: Elf64_Addr, - pub e_phoff: Elf64_Off, - pub e_shoff: Elf64_Off, - pub e_flags: Elf64_Word, - pub e_ehsize: Elf64_Half, - pub e_phentsize: Elf64_Half, - pub e_phnum: Elf64_Half, - pub e_shentsize: Elf64_Half, - pub e_shnum: Elf64_Half, - pub e_shstrndx: Elf64_Half, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of elf64_hdr"][::core::mem::size_of::() - 64usize]; - ["Alignment of elf64_hdr"][::core::mem::align_of::() - 8usize]; - ["Offset of field: elf64_hdr::e_ident"][::core::mem::offset_of!(elf64_hdr, e_ident) - 0usize]; - ["Offset of field: elf64_hdr::e_type"][::core::mem::offset_of!(elf64_hdr, e_type) - 16usize]; - ["Offset of field: elf64_hdr::e_machine"] - [::core::mem::offset_of!(elf64_hdr, e_machine) - 18usize]; - ["Offset of field: elf64_hdr::e_version"] - [::core::mem::offset_of!(elf64_hdr, e_version) - 20usize]; - ["Offset of field: elf64_hdr::e_entry"][::core::mem::offset_of!(elf64_hdr, e_entry) - 24usize]; - ["Offset of field: elf64_hdr::e_phoff"][::core::mem::offset_of!(elf64_hdr, e_phoff) - 32usize]; - ["Offset of field: elf64_hdr::e_shoff"][::core::mem::offset_of!(elf64_hdr, e_shoff) - 40usize]; - ["Offset of field: elf64_hdr::e_flags"][::core::mem::offset_of!(elf64_hdr, e_flags) - 48usize]; - ["Offset of field: elf64_hdr::e_ehsize"] - [::core::mem::offset_of!(elf64_hdr, e_ehsize) - 52usize]; - ["Offset of field: elf64_hdr::e_phentsize"] - [::core::mem::offset_of!(elf64_hdr, e_phentsize) - 54usize]; - ["Offset of field: elf64_hdr::e_phnum"][::core::mem::offset_of!(elf64_hdr, e_phnum) - 56usize]; - ["Offset of field: elf64_hdr::e_shentsize"] - [::core::mem::offset_of!(elf64_hdr, e_shentsize) - 58usize]; - ["Offset of field: elf64_hdr::e_shnum"][::core::mem::offset_of!(elf64_hdr, e_shnum) - 60usize]; - ["Offset of field: elf64_hdr::e_shstrndx"] - [::core::mem::offset_of!(elf64_hdr, e_shstrndx) - 62usize]; -}; -pub type Elf64_Ehdr = elf64_hdr; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct elf64_shdr { - pub sh_name: Elf64_Word, - pub sh_type: Elf64_Word, - pub sh_flags: Elf64_Xword, - pub sh_addr: Elf64_Addr, - pub sh_offset: Elf64_Off, - pub sh_size: Elf64_Xword, - pub sh_link: Elf64_Word, - pub sh_info: Elf64_Word, - pub sh_addralign: Elf64_Xword, - pub sh_entsize: Elf64_Xword, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of elf64_shdr"][::core::mem::size_of::() - 64usize]; - ["Alignment of elf64_shdr"][::core::mem::align_of::() - 8usize]; - ["Offset of field: elf64_shdr::sh_name"][::core::mem::offset_of!(elf64_shdr, sh_name) - 0usize]; - ["Offset of field: elf64_shdr::sh_type"][::core::mem::offset_of!(elf64_shdr, sh_type) - 4usize]; - ["Offset of field: elf64_shdr::sh_flags"] - [::core::mem::offset_of!(elf64_shdr, sh_flags) - 8usize]; - ["Offset of field: elf64_shdr::sh_addr"] - [::core::mem::offset_of!(elf64_shdr, sh_addr) - 16usize]; - ["Offset of field: elf64_shdr::sh_offset"] - [::core::mem::offset_of!(elf64_shdr, sh_offset) - 24usize]; - ["Offset of field: elf64_shdr::sh_size"] - [::core::mem::offset_of!(elf64_shdr, sh_size) - 32usize]; - ["Offset of field: elf64_shdr::sh_link"] - [::core::mem::offset_of!(elf64_shdr, sh_link) - 40usize]; - ["Offset of field: elf64_shdr::sh_info"] - [::core::mem::offset_of!(elf64_shdr, sh_info) - 44usize]; - ["Offset of field: elf64_shdr::sh_addralign"] - [::core::mem::offset_of!(elf64_shdr, sh_addralign) - 48usize]; - ["Offset of field: elf64_shdr::sh_entsize"] - [::core::mem::offset_of!(elf64_shdr, sh_entsize) - 56usize]; -}; -pub type Elf64_Shdr = elf64_shdr; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct elf64_sym { pub st_name: Elf64_Word, pub st_info: ::core::ffi::c_uchar, @@ -41930,18 +41782,18 @@ impl ethtool_ops { } } #[inline] - pub fn cap_rss_rxnfc_adds(&self) -> u32_ { + pub fn rxfh_per_ctx_key(&self) -> u32_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } } #[inline] - pub fn set_cap_rss_rxnfc_adds(&mut self, val: u32_) { + pub fn set_rxfh_per_ctx_key(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(3usize, 1u8, val as u64) } } #[inline] - pub unsafe fn cap_rss_rxnfc_adds_raw(this: *const Self) -> u32_ { + pub unsafe fn rxfh_per_ctx_key_raw(this: *const Self) -> u32_ { unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( ::core::ptr::addr_of!((*this)._bitfield_1), @@ -41951,7 +41803,7 @@ impl ethtool_ops { } } #[inline] - pub unsafe fn set_cap_rss_rxnfc_adds_raw(this: *mut Self, val: u32_) { + pub unsafe fn set_rxfh_per_ctx_key_raw(this: *mut Self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( @@ -41963,10 +41815,44 @@ impl ethtool_ops { } } #[inline] + pub fn cap_rss_rxnfc_adds(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_cap_rss_rxnfc_adds(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cap_rss_rxnfc_adds_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_cap_rss_rxnfc_adds_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] pub fn new_bitfield_1( cap_link_lanes_supported: u32_, cap_rss_ctx_supported: u32_, cap_rss_sym_xor_supported: u32_, + rxfh_per_ctx_key: u32_, cap_rss_rxnfc_adds: u32_, ) -> __BindgenBitfieldUnit<[u8; 1usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); @@ -41986,6 +41872,10 @@ impl ethtool_ops { cap_rss_sym_xor_supported as u64 }); __bindgen_bitfield_unit.set(3usize, 1u8, { + let rxfh_per_ctx_key: u32 = unsafe { ::core::mem::transmute(rxfh_per_ctx_key) }; + rxfh_per_ctx_key as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { let cap_rss_rxnfc_adds: u32 = unsafe { ::core::mem::transmute(cap_rss_rxnfc_adds) }; cap_rss_rxnfc_adds as u64 }); @@ -42088,6 +41978,33 @@ const _: () = { [::core::mem::offset_of!(ethtool_pauseparam, tx_pause) - 12usize]; }; #[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_phy_stats { + pub rx_packets: u64_, + pub rx_bytes: u64_, + pub rx_errors: u64_, + pub tx_packets: u64_, + pub tx_bytes: u64_, + pub tx_errors: u64_, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of ethtool_phy_stats"][::core::mem::size_of::() - 48usize]; + ["Alignment of ethtool_phy_stats"][::core::mem::align_of::() - 8usize]; + ["Offset of field: ethtool_phy_stats::rx_packets"] + [::core::mem::offset_of!(ethtool_phy_stats, rx_packets) - 0usize]; + ["Offset of field: ethtool_phy_stats::rx_bytes"] + [::core::mem::offset_of!(ethtool_phy_stats, rx_bytes) - 8usize]; + ["Offset of field: ethtool_phy_stats::rx_errors"] + [::core::mem::offset_of!(ethtool_phy_stats, rx_errors) - 16usize]; + ["Offset of field: ethtool_phy_stats::tx_packets"] + [::core::mem::offset_of!(ethtool_phy_stats, tx_packets) - 24usize]; + ["Offset of field: ethtool_phy_stats::tx_bytes"] + [::core::mem::offset_of!(ethtool_phy_stats, tx_bytes) - 32usize]; + ["Offset of field: ethtool_phy_stats::tx_errors"] + [::core::mem::offset_of!(ethtool_phy_stats, tx_errors) - 40usize]; +}; +#[repr(C)] #[derive(Debug)] pub struct ethtool_regs { pub cmd: __u32, @@ -43022,47 +42939,6 @@ const _: () = { [::core::mem::offset_of!(export_operations, flags) - 72usize]; }; #[repr(C)] -#[derive(Copy, Clone)] -pub struct rcu_sync { - pub gp_state: ::core::ffi::c_int, - pub gp_count: ::core::ffi::c_int, - pub gp_wait: wait_queue_head_t, - pub cb_head: callback_head, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of rcu_sync"][::core::mem::size_of::() - 48usize]; - ["Alignment of rcu_sync"][::core::mem::align_of::() - 8usize]; - ["Offset of field: rcu_sync::gp_state"][::core::mem::offset_of!(rcu_sync, gp_state) - 0usize]; - ["Offset of field: rcu_sync::gp_count"][::core::mem::offset_of!(rcu_sync, gp_count) - 4usize]; - ["Offset of field: rcu_sync::gp_wait"][::core::mem::offset_of!(rcu_sync, gp_wait) - 8usize]; - ["Offset of field: rcu_sync::cb_head"][::core::mem::offset_of!(rcu_sync, cb_head) - 32usize]; -}; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct percpu_rw_semaphore { - pub rss: rcu_sync, - pub read_count: *mut ::core::ffi::c_uint, - pub writer: rcuwait, - pub waiters: wait_queue_head_t, - pub block: atomic_t, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of percpu_rw_semaphore"][::core::mem::size_of::() - 96usize]; - ["Alignment of percpu_rw_semaphore"][::core::mem::align_of::() - 8usize]; - ["Offset of field: percpu_rw_semaphore::rss"] - [::core::mem::offset_of!(percpu_rw_semaphore, rss) - 0usize]; - ["Offset of field: percpu_rw_semaphore::read_count"] - [::core::mem::offset_of!(percpu_rw_semaphore, read_count) - 48usize]; - ["Offset of field: percpu_rw_semaphore::writer"] - [::core::mem::offset_of!(percpu_rw_semaphore, writer) - 56usize]; - ["Offset of field: percpu_rw_semaphore::waiters"] - [::core::mem::offset_of!(percpu_rw_semaphore, waiters) - 64usize]; - ["Offset of field: percpu_rw_semaphore::block"] - [::core::mem::offset_of!(percpu_rw_semaphore, block) - 88usize]; -}; -#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct fsnotify_event { pub list: list_head, @@ -47005,6 +46881,57 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct folio_queue { + pub vec: folio_batch, + pub orders: [u8_; 31usize], + pub next: *mut folio_queue, + pub prev: *mut folio_queue, + pub marks: ::core::ffi::c_ulong, + pub marks2: ::core::ffi::c_ulong, + pub marks3: ::core::ffi::c_ulong, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of folio_queue"][::core::mem::size_of::() - 328usize]; + ["Alignment of folio_queue"][::core::mem::align_of::() - 8usize]; + ["Offset of field: folio_queue::vec"][::core::mem::offset_of!(folio_queue, vec) - 0usize]; + ["Offset of field: folio_queue::orders"] + [::core::mem::offset_of!(folio_queue, orders) - 256usize]; + ["Offset of field: folio_queue::next"][::core::mem::offset_of!(folio_queue, next) - 288usize]; + ["Offset of field: folio_queue::prev"][::core::mem::offset_of!(folio_queue, prev) - 296usize]; + ["Offset of field: folio_queue::marks"][::core::mem::offset_of!(folio_queue, marks) - 304usize]; + ["Offset of field: folio_queue::marks2"] + [::core::mem::offset_of!(folio_queue, marks2) - 312usize]; + ["Offset of field: folio_queue::marks3"] + [::core::mem::offset_of!(folio_queue, marks3) - 320usize]; +}; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fown_struct { + pub file: *mut file, + pub lock: rwlock_t, + pub pid: *mut pid, + pub pid_type: pid_type, + pub uid: kuid_t, + pub euid: kuid_t, + pub signum: ::core::ffi::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of fown_struct"][::core::mem::size_of::() - 40usize]; + ["Alignment of fown_struct"][::core::mem::align_of::() - 8usize]; + ["Offset of field: fown_struct::file"][::core::mem::offset_of!(fown_struct, file) - 0usize]; + ["Offset of field: fown_struct::lock"][::core::mem::offset_of!(fown_struct, lock) - 8usize]; + ["Offset of field: fown_struct::pid"][::core::mem::offset_of!(fown_struct, pid) - 16usize]; + ["Offset of field: fown_struct::pid_type"] + [::core::mem::offset_of!(fown_struct, pid_type) - 24usize]; + ["Offset of field: fown_struct::uid"][::core::mem::offset_of!(fown_struct, uid) - 28usize]; + ["Offset of field: fown_struct::euid"][::core::mem::offset_of!(fown_struct, euid) - 32usize]; + ["Offset of field: fown_struct::signum"] + [::core::mem::offset_of!(fown_struct, signum) - 36usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct fregs_state { pub cwd: u32_, pub swd: u32_, @@ -47739,16 +47666,16 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct free_area { - pub free_list: [list_head; 5usize], + pub free_list: [list_head; 6usize], pub nr_free: ::core::ffi::c_ulong, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of free_area"][::core::mem::size_of::() - 88usize]; + ["Size of free_area"][::core::mem::size_of::() - 104usize]; ["Alignment of free_area"][::core::mem::align_of::() - 8usize]; ["Offset of field: free_area::free_list"] [::core::mem::offset_of!(free_area, free_list) - 0usize]; - ["Offset of field: free_area::nr_free"][::core::mem::offset_of!(free_area, nr_free) - 80usize]; + ["Offset of field: free_area::nr_free"][::core::mem::offset_of!(free_area, nr_free) - 96usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -50084,33 +50011,33 @@ pub struct gpio_device { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of gpio_device"][::core::mem::size_of::() - 1112usize]; + ["Size of gpio_device"][::core::mem::size_of::() - 1096usize]; ["Alignment of gpio_device"][::core::mem::align_of::() - 8usize]; ["Offset of field: gpio_device::dev"][::core::mem::offset_of!(gpio_device, dev) - 0usize]; ["Offset of field: gpio_device::chrdev"] - [::core::mem::offset_of!(gpio_device, chrdev) - 768usize]; - ["Offset of field: gpio_device::id"][::core::mem::offset_of!(gpio_device, id) - 872usize]; + [::core::mem::offset_of!(gpio_device, chrdev) - 752usize]; + ["Offset of field: gpio_device::id"][::core::mem::offset_of!(gpio_device, id) - 856usize]; ["Offset of field: gpio_device::mockdev"] - [::core::mem::offset_of!(gpio_device, mockdev) - 880usize]; - ["Offset of field: gpio_device::owner"][::core::mem::offset_of!(gpio_device, owner) - 888usize]; - ["Offset of field: gpio_device::chip"][::core::mem::offset_of!(gpio_device, chip) - 896usize]; - ["Offset of field: gpio_device::descs"][::core::mem::offset_of!(gpio_device, descs) - 904usize]; + [::core::mem::offset_of!(gpio_device, mockdev) - 864usize]; + ["Offset of field: gpio_device::owner"][::core::mem::offset_of!(gpio_device, owner) - 872usize]; + ["Offset of field: gpio_device::chip"][::core::mem::offset_of!(gpio_device, chip) - 880usize]; + ["Offset of field: gpio_device::descs"][::core::mem::offset_of!(gpio_device, descs) - 888usize]; ["Offset of field: gpio_device::desc_srcu"] - [::core::mem::offset_of!(gpio_device, desc_srcu) - 912usize]; - ["Offset of field: gpio_device::base"][::core::mem::offset_of!(gpio_device, base) - 936usize]; - ["Offset of field: gpio_device::ngpio"][::core::mem::offset_of!(gpio_device, ngpio) - 940usize]; + [::core::mem::offset_of!(gpio_device, desc_srcu) - 896usize]; + ["Offset of field: gpio_device::base"][::core::mem::offset_of!(gpio_device, base) - 920usize]; + ["Offset of field: gpio_device::ngpio"][::core::mem::offset_of!(gpio_device, ngpio) - 924usize]; ["Offset of field: gpio_device::can_sleep"] - [::core::mem::offset_of!(gpio_device, can_sleep) - 942usize]; - ["Offset of field: gpio_device::label"][::core::mem::offset_of!(gpio_device, label) - 944usize]; - ["Offset of field: gpio_device::data"][::core::mem::offset_of!(gpio_device, data) - 952usize]; - ["Offset of field: gpio_device::list"][::core::mem::offset_of!(gpio_device, list) - 960usize]; + [::core::mem::offset_of!(gpio_device, can_sleep) - 926usize]; + ["Offset of field: gpio_device::label"][::core::mem::offset_of!(gpio_device, label) - 928usize]; + ["Offset of field: gpio_device::data"][::core::mem::offset_of!(gpio_device, data) - 936usize]; + ["Offset of field: gpio_device::list"][::core::mem::offset_of!(gpio_device, list) - 944usize]; ["Offset of field: gpio_device::line_state_notifier"] - [::core::mem::offset_of!(gpio_device, line_state_notifier) - 976usize]; + [::core::mem::offset_of!(gpio_device, line_state_notifier) - 960usize]; ["Offset of field: gpio_device::device_notifier"] - [::core::mem::offset_of!(gpio_device, device_notifier) - 1024usize]; - ["Offset of field: gpio_device::srcu"][::core::mem::offset_of!(gpio_device, srcu) - 1072usize]; + [::core::mem::offset_of!(gpio_device, device_notifier) - 1008usize]; + ["Offset of field: gpio_device::srcu"][::core::mem::offset_of!(gpio_device, srcu) - 1056usize]; ["Offset of field: gpio_device::pin_ranges"] - [::core::mem::offset_of!(gpio_device, pin_ranges) - 1096usize]; + [::core::mem::offset_of!(gpio_device, pin_ranges) - 1080usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -50999,19 +50926,23 @@ pub struct page_counter { pub low_usage: atomic_long_t, pub children_low_usage: atomic_long_t, pub watermark: ::core::ffi::c_ulong, + pub local_watermark: ::core::ffi::c_ulong, pub failcnt: ::core::ffi::c_ulong, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, pub _pad2_: cacheline_padding, + pub protection_support: bool_, pub min: ::core::ffi::c_ulong, pub low: ::core::ffi::c_ulong, pub high: ::core::ffi::c_ulong, pub max: ::core::ffi::c_ulong, pub parent: *mut page_counter, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 24usize]>, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 16usize]>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of page_counter"][::core::mem::size_of::() - 192usize]; + ["Size of page_counter"][::core::mem::size_of::() - 256usize]; ["Alignment of page_counter"][::core::mem::align_of::() - 8usize]; ["Offset of field: page_counter::usage"][::core::mem::offset_of!(page_counter, usage) - 0usize]; ["Offset of field: page_counter::_pad1_"] @@ -51028,26 +50959,47 @@ const _: () = { [::core::mem::offset_of!(page_counter, children_low_usage) - 104usize]; ["Offset of field: page_counter::watermark"] [::core::mem::offset_of!(page_counter, watermark) - 112usize]; + ["Offset of field: page_counter::local_watermark"] + [::core::mem::offset_of!(page_counter, local_watermark) - 120usize]; ["Offset of field: page_counter::failcnt"] - [::core::mem::offset_of!(page_counter, failcnt) - 120usize]; + [::core::mem::offset_of!(page_counter, failcnt) - 128usize]; ["Offset of field: page_counter::_pad2_"] - [::core::mem::offset_of!(page_counter, _pad2_) - 128usize]; - ["Offset of field: page_counter::min"][::core::mem::offset_of!(page_counter, min) - 128usize]; - ["Offset of field: page_counter::low"][::core::mem::offset_of!(page_counter, low) - 136usize]; - ["Offset of field: page_counter::high"][::core::mem::offset_of!(page_counter, high) - 144usize]; - ["Offset of field: page_counter::max"][::core::mem::offset_of!(page_counter, max) - 152usize]; + [::core::mem::offset_of!(page_counter, _pad2_) - 192usize]; + ["Offset of field: page_counter::protection_support"] + [::core::mem::offset_of!(page_counter, protection_support) - 192usize]; + ["Offset of field: page_counter::min"][::core::mem::offset_of!(page_counter, min) - 200usize]; + ["Offset of field: page_counter::low"][::core::mem::offset_of!(page_counter, low) - 208usize]; + ["Offset of field: page_counter::high"][::core::mem::offset_of!(page_counter, high) - 216usize]; + ["Offset of field: page_counter::max"][::core::mem::offset_of!(page_counter, max) - 224usize]; ["Offset of field: page_counter::parent"] - [::core::mem::offset_of!(page_counter, parent) - 160usize]; + [::core::mem::offset_of!(page_counter, parent) - 232usize]; }; impl page_counter { #[inline] - pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + pub fn new_bitfield_3() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); __bindgen_bitfield_unit } } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct winsize { + pub ws_row: ::core::ffi::c_ushort, + pub ws_col: ::core::ffi::c_ushort, + pub ws_xpixel: ::core::ffi::c_ushort, + pub ws_ypixel: ::core::ffi::c_ushort, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of winsize"][::core::mem::size_of::() - 8usize]; + ["Alignment of winsize"][::core::mem::align_of::() - 2usize]; + ["Offset of field: winsize::ws_row"][::core::mem::offset_of!(winsize, ws_row) - 0usize]; + ["Offset of field: winsize::ws_col"][::core::mem::offset_of!(winsize, ws_col) - 2usize]; + ["Offset of field: winsize::ws_xpixel"][::core::mem::offset_of!(winsize, ws_xpixel) - 4usize]; + ["Offset of field: winsize::ws_ypixel"][::core::mem::offset_of!(winsize, ws_ypixel) - 6usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct hw_perf_event_extra { pub config: u64_, pub reg: ::core::ffi::c_uint, @@ -51105,6 +51057,7 @@ pub union hw_perf_event__bindgen_ty_1 { pub __bindgen_anon_4: hw_perf_event__bindgen_ty_1__bindgen_ty_4, pub __bindgen_anon_5: hw_perf_event__bindgen_ty_1__bindgen_ty_5, pub __bindgen_anon_6: hw_perf_event__bindgen_ty_1__bindgen_ty_6, + pub __bindgen_anon_7: hw_perf_event__bindgen_ty_1__bindgen_ty_7, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -51152,36 +51105,38 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_2 { - pub hrtimer: hrtimer, + pub aux_config: u64_, + pub aux_paused: ::core::ffi::c_uint, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of hw_perf_event__bindgen_ty_1__bindgen_ty_2"] - [::core::mem::size_of::() - 64usize]; + [::core::mem::size_of::() - 16usize]; ["Alignment of hw_perf_event__bindgen_ty_1__bindgen_ty_2"] [::core::mem::align_of::() - 8usize]; - ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_2::hrtimer"] - [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_2, hrtimer) - 0usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_2::aux_config"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_2, aux_config) - 0usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_2::aux_paused"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_2, aux_paused) - 8usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_3 { - pub tp_list: list_head, + pub hrtimer: hrtimer, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of hw_perf_event__bindgen_ty_1__bindgen_ty_3"] - [::core::mem::size_of::() - 16usize]; + [::core::mem::size_of::() - 64usize]; ["Alignment of hw_perf_event__bindgen_ty_1__bindgen_ty_3"] [::core::mem::align_of::() - 8usize]; - ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_3::tp_list"] - [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_3, tp_list) - 0usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_3::hrtimer"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_3, hrtimer) - 0usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_4 { - pub pwr_acc: u64_, - pub ptsc: u64_, + pub tp_list: list_head, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -51189,31 +51144,46 @@ const _: () = { [::core::mem::size_of::() - 16usize]; ["Alignment of hw_perf_event__bindgen_ty_1__bindgen_ty_4"] [::core::mem::align_of::() - 8usize]; - ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_4::pwr_acc"] - [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_4, pwr_acc) - 0usize]; - ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_4::ptsc"] - [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_4, ptsc) - 8usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_4::tp_list"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_4, tp_list) - 0usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_5 { - pub info: arch_hw_breakpoint, - pub bp_list: rhlist_head, + pub pwr_acc: u64_, + pub ptsc: u64_, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of hw_perf_event__bindgen_ty_1__bindgen_ty_5"] - [::core::mem::size_of::() - 40usize]; + [::core::mem::size_of::() - 16usize]; ["Alignment of hw_perf_event__bindgen_ty_1__bindgen_ty_5"] [::core::mem::align_of::() - 8usize]; - ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_5::info"] - [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_5, info) - 0usize]; - ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_5::bp_list"] - [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_5, bp_list) - 24usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_5::pwr_acc"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_5, pwr_acc) - 0usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_5::ptsc"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_5, ptsc) - 8usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_6 { + pub info: arch_hw_breakpoint, + pub bp_list: rhlist_head, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of hw_perf_event__bindgen_ty_1__bindgen_ty_6"] + [::core::mem::size_of::() - 40usize]; + ["Alignment of hw_perf_event__bindgen_ty_1__bindgen_ty_6"] + [::core::mem::align_of::() - 8usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_6::info"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_6, info) - 0usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_6::bp_list"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_6, bp_list) - 24usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_7 { pub iommu_bank: u8_, pub iommu_cntr: u8_, pub padding: u16_, @@ -51222,20 +51192,20 @@ pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_6 { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of hw_perf_event__bindgen_ty_1__bindgen_ty_6"] - [::core::mem::size_of::() - 24usize]; - ["Alignment of hw_perf_event__bindgen_ty_1__bindgen_ty_6"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_6::iommu_bank"] - [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_6, iommu_bank) - 0usize]; - ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_6::iommu_cntr"] - [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_6, iommu_cntr) - 1usize]; - ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_6::padding"] - [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_6, padding) - 2usize]; - ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_6::conf"] - [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_6, conf) - 8usize]; - ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_6::conf1"] - [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_6, conf1) - 16usize]; + ["Size of hw_perf_event__bindgen_ty_1__bindgen_ty_7"] + [::core::mem::size_of::() - 24usize]; + ["Alignment of hw_perf_event__bindgen_ty_1__bindgen_ty_7"] + [::core::mem::align_of::() - 8usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_7::iommu_bank"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_7, iommu_bank) - 0usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_7::iommu_cntr"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_7, iommu_cntr) - 1usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_7::padding"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_7, padding) - 2usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_7::conf"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_7, conf) - 8usize]; + ["Offset of field: hw_perf_event__bindgen_ty_1__bindgen_ty_7::conf1"] + [::core::mem::offset_of!(hw_perf_event__bindgen_ty_1__bindgen_ty_7, conf1) - 16usize]; }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -51495,17 +51465,17 @@ pub struct ib_core_device { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of ib_core_device"][::core::mem::size_of::() - 808usize]; + ["Size of ib_core_device"][::core::mem::size_of::() - 792usize]; ["Alignment of ib_core_device"][::core::mem::align_of::() - 8usize]; ["Offset of field: ib_core_device::dev"][::core::mem::offset_of!(ib_core_device, dev) - 0usize]; ["Offset of field: ib_core_device::rdma_net"] - [::core::mem::offset_of!(ib_core_device, rdma_net) - 768usize]; + [::core::mem::offset_of!(ib_core_device, rdma_net) - 752usize]; ["Offset of field: ib_core_device::ports_kobj"] - [::core::mem::offset_of!(ib_core_device, ports_kobj) - 776usize]; + [::core::mem::offset_of!(ib_core_device, ports_kobj) - 760usize]; ["Offset of field: ib_core_device::port_list"] - [::core::mem::offset_of!(ib_core_device, port_list) - 784usize]; + [::core::mem::offset_of!(ib_core_device, port_list) - 768usize]; ["Offset of field: ib_core_device::owner"] - [::core::mem::offset_of!(ib_core_device, owner) - 800usize]; + [::core::mem::offset_of!(ib_core_device, owner) - 784usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -52144,7 +52114,7 @@ pub struct ib_device_ops { arg4: u64_, arg5: ::core::ffi::c_int, arg6: ::core::ffi::c_int, - arg7: *mut ib_udata, + arg7: *mut uverbs_attr_bundle, ) -> *mut ib_mr, >, pub rereg_user_mr: ::core::option::Option< @@ -53114,7 +53084,7 @@ pub union ib_device__bindgen_ty_1 { #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of ib_device__bindgen_ty_1"] - [::core::mem::size_of::() - 808usize]; + [::core::mem::size_of::() - 792usize]; ["Alignment of ib_device__bindgen_ty_1"] [::core::mem::align_of::() - 8usize]; ["Offset of field: ib_device__bindgen_ty_1::dev"] @@ -53124,7 +53094,7 @@ const _: () = { }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of ib_device"][::core::mem::size_of::() - 2928usize]; + ["Size of ib_device"][::core::mem::size_of::() - 2912usize]; ["Alignment of ib_device"][::core::mem::align_of::() - 8usize]; ["Offset of field: ib_device::dma_device"] [::core::mem::offset_of!(ib_device, dma_device) - 0usize]; @@ -53150,62 +53120,62 @@ const _: () = { [::core::mem::offset_of!(ib_device, port_data) - 1304usize]; ["Offset of field: ib_device::num_comp_vectors"] [::core::mem::offset_of!(ib_device, num_comp_vectors) - 1312usize]; - ["Offset of field: ib_device::groups"][::core::mem::offset_of!(ib_device, groups) - 2128usize]; + ["Offset of field: ib_device::groups"][::core::mem::offset_of!(ib_device, groups) - 2112usize]; ["Offset of field: ib_device::hw_stats_attr_index"] - [::core::mem::offset_of!(ib_device, hw_stats_attr_index) - 2160usize]; + [::core::mem::offset_of!(ib_device, hw_stats_attr_index) - 2144usize]; ["Offset of field: ib_device::uverbs_cmd_mask"] - [::core::mem::offset_of!(ib_device, uverbs_cmd_mask) - 2168usize]; + [::core::mem::offset_of!(ib_device, uverbs_cmd_mask) - 2152usize]; ["Offset of field: ib_device::node_desc"] - [::core::mem::offset_of!(ib_device, node_desc) - 2176usize]; + [::core::mem::offset_of!(ib_device, node_desc) - 2160usize]; ["Offset of field: ib_device::node_guid"] - [::core::mem::offset_of!(ib_device, node_guid) - 2240usize]; + [::core::mem::offset_of!(ib_device, node_guid) - 2224usize]; ["Offset of field: ib_device::local_dma_lkey"] - [::core::mem::offset_of!(ib_device, local_dma_lkey) - 2248usize]; + [::core::mem::offset_of!(ib_device, local_dma_lkey) - 2232usize]; ["Offset of field: ib_device::node_type"] - [::core::mem::offset_of!(ib_device, node_type) - 2253usize]; + [::core::mem::offset_of!(ib_device, node_type) - 2237usize]; ["Offset of field: ib_device::phys_port_cnt"] - [::core::mem::offset_of!(ib_device, phys_port_cnt) - 2256usize]; - ["Offset of field: ib_device::attrs"][::core::mem::offset_of!(ib_device, attrs) - 2264usize]; + [::core::mem::offset_of!(ib_device, phys_port_cnt) - 2240usize]; + ["Offset of field: ib_device::attrs"][::core::mem::offset_of!(ib_device, attrs) - 2248usize]; ["Offset of field: ib_device::hw_stats_data"] - [::core::mem::offset_of!(ib_device, hw_stats_data) - 2568usize]; + [::core::mem::offset_of!(ib_device, hw_stats_data) - 2552usize]; ["Offset of field: ib_device::cg_device"] - [::core::mem::offset_of!(ib_device, cg_device) - 2576usize]; - ["Offset of field: ib_device::index"][::core::mem::offset_of!(ib_device, index) - 2616usize]; + [::core::mem::offset_of!(ib_device, cg_device) - 2560usize]; + ["Offset of field: ib_device::index"][::core::mem::offset_of!(ib_device, index) - 2600usize]; ["Offset of field: ib_device::cq_pools_lock"] - [::core::mem::offset_of!(ib_device, cq_pools_lock) - 2620usize]; + [::core::mem::offset_of!(ib_device, cq_pools_lock) - 2604usize]; ["Offset of field: ib_device::cq_pools"] - [::core::mem::offset_of!(ib_device, cq_pools) - 2624usize]; - ["Offset of field: ib_device::res"][::core::mem::offset_of!(ib_device, res) - 2672usize]; + [::core::mem::offset_of!(ib_device, cq_pools) - 2608usize]; + ["Offset of field: ib_device::res"][::core::mem::offset_of!(ib_device, res) - 2656usize]; ["Offset of field: ib_device::driver_def"] - [::core::mem::offset_of!(ib_device, driver_def) - 2680usize]; + [::core::mem::offset_of!(ib_device, driver_def) - 2664usize]; ["Offset of field: ib_device::refcount"] - [::core::mem::offset_of!(ib_device, refcount) - 2688usize]; + [::core::mem::offset_of!(ib_device, refcount) - 2672usize]; ["Offset of field: ib_device::unreg_completion"] - [::core::mem::offset_of!(ib_device, unreg_completion) - 2696usize]; + [::core::mem::offset_of!(ib_device, unreg_completion) - 2680usize]; ["Offset of field: ib_device::unregistration_work"] - [::core::mem::offset_of!(ib_device, unregistration_work) - 2728usize]; + [::core::mem::offset_of!(ib_device, unregistration_work) - 2712usize]; ["Offset of field: ib_device::link_ops"] - [::core::mem::offset_of!(ib_device, link_ops) - 2760usize]; + [::core::mem::offset_of!(ib_device, link_ops) - 2744usize]; ["Offset of field: ib_device::compat_devs_mutex"] - [::core::mem::offset_of!(ib_device, compat_devs_mutex) - 2768usize]; + [::core::mem::offset_of!(ib_device, compat_devs_mutex) - 2752usize]; ["Offset of field: ib_device::compat_devs"] - [::core::mem::offset_of!(ib_device, compat_devs) - 2800usize]; + [::core::mem::offset_of!(ib_device, compat_devs) - 2784usize]; ["Offset of field: ib_device::iw_ifname"] - [::core::mem::offset_of!(ib_device, iw_ifname) - 2816usize]; + [::core::mem::offset_of!(ib_device, iw_ifname) - 2800usize]; ["Offset of field: ib_device::iw_driver_flags"] - [::core::mem::offset_of!(ib_device, iw_driver_flags) - 2832usize]; + [::core::mem::offset_of!(ib_device, iw_driver_flags) - 2816usize]; ["Offset of field: ib_device::lag_flags"] - [::core::mem::offset_of!(ib_device, lag_flags) - 2836usize]; + [::core::mem::offset_of!(ib_device, lag_flags) - 2820usize]; ["Offset of field: ib_device::subdev_lock"] - [::core::mem::offset_of!(ib_device, subdev_lock) - 2840usize]; + [::core::mem::offset_of!(ib_device, subdev_lock) - 2824usize]; ["Offset of field: ib_device::subdev_list_head"] - [::core::mem::offset_of!(ib_device, subdev_list_head) - 2872usize]; - ["Offset of field: ib_device::type_"][::core::mem::offset_of!(ib_device, type_) - 2888usize]; - ["Offset of field: ib_device::parent"][::core::mem::offset_of!(ib_device, parent) - 2896usize]; + [::core::mem::offset_of!(ib_device, subdev_list_head) - 2856usize]; + ["Offset of field: ib_device::type_"][::core::mem::offset_of!(ib_device, type_) - 2872usize]; + ["Offset of field: ib_device::parent"][::core::mem::offset_of!(ib_device, parent) - 2880usize]; ["Offset of field: ib_device::subdev_list"] - [::core::mem::offset_of!(ib_device, subdev_list) - 2904usize]; + [::core::mem::offset_of!(ib_device, subdev_list) - 2888usize]; ["Offset of field: ib_device::name_assign_type"] - [::core::mem::offset_of!(ib_device, name_assign_type) - 2920usize]; + [::core::mem::offset_of!(ib_device, name_assign_type) - 2904usize]; }; impl ib_device { #[inline] @@ -57061,6 +57031,8 @@ pub struct ipv6_devconf { pub accept_ra_rt_info_max_plen: __s32, pub accept_source_route: __s32, pub accept_ra_from_local: __s32, + pub optimistic_dad: __s32, + pub use_optimistic: __s32, pub mc_forwarding: atomic_t, pub drop_unicast_in_l2_multicast: __s32, pub accept_dad: __s32, @@ -57084,11 +57056,12 @@ pub struct ipv6_devconf { pub ioam6_enabled: __u8, pub ndisc_evict_nocarrier: __u8, pub ra_honor_pio_life: __u8, + pub ra_honor_pio_pflag: __u8, pub sysctl_header: *mut ctl_table_header, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of ipv6_devconf"][::core::mem::size_of::() - 256usize]; + ["Size of ipv6_devconf"][::core::mem::size_of::() - 264usize]; ["Alignment of ipv6_devconf"][::core::mem::align_of::() - 8usize]; ["Offset of field: ipv6_devconf::__cacheline_group_begin__ipv6_devconf_read_txrx"][::core::mem::offset_of!( ipv6_devconf, @@ -57169,54 +57142,60 @@ const _: () = { [::core::mem::offset_of!(ipv6_devconf, accept_source_route) - 136usize]; ["Offset of field: ipv6_devconf::accept_ra_from_local"] [::core::mem::offset_of!(ipv6_devconf, accept_ra_from_local) - 140usize]; + ["Offset of field: ipv6_devconf::optimistic_dad"] + [::core::mem::offset_of!(ipv6_devconf, optimistic_dad) - 144usize]; + ["Offset of field: ipv6_devconf::use_optimistic"] + [::core::mem::offset_of!(ipv6_devconf, use_optimistic) - 148usize]; ["Offset of field: ipv6_devconf::mc_forwarding"] - [::core::mem::offset_of!(ipv6_devconf, mc_forwarding) - 144usize]; + [::core::mem::offset_of!(ipv6_devconf, mc_forwarding) - 152usize]; ["Offset of field: ipv6_devconf::drop_unicast_in_l2_multicast"] - [::core::mem::offset_of!(ipv6_devconf, drop_unicast_in_l2_multicast) - 148usize]; + [::core::mem::offset_of!(ipv6_devconf, drop_unicast_in_l2_multicast) - 156usize]; ["Offset of field: ipv6_devconf::accept_dad"] - [::core::mem::offset_of!(ipv6_devconf, accept_dad) - 152usize]; + [::core::mem::offset_of!(ipv6_devconf, accept_dad) - 160usize]; ["Offset of field: ipv6_devconf::force_tllao"] - [::core::mem::offset_of!(ipv6_devconf, force_tllao) - 156usize]; + [::core::mem::offset_of!(ipv6_devconf, force_tllao) - 164usize]; ["Offset of field: ipv6_devconf::ndisc_notify"] - [::core::mem::offset_of!(ipv6_devconf, ndisc_notify) - 160usize]; + [::core::mem::offset_of!(ipv6_devconf, ndisc_notify) - 168usize]; ["Offset of field: ipv6_devconf::suppress_frag_ndisc"] - [::core::mem::offset_of!(ipv6_devconf, suppress_frag_ndisc) - 164usize]; + [::core::mem::offset_of!(ipv6_devconf, suppress_frag_ndisc) - 172usize]; ["Offset of field: ipv6_devconf::accept_ra_mtu"] - [::core::mem::offset_of!(ipv6_devconf, accept_ra_mtu) - 168usize]; + [::core::mem::offset_of!(ipv6_devconf, accept_ra_mtu) - 176usize]; ["Offset of field: ipv6_devconf::drop_unsolicited_na"] - [::core::mem::offset_of!(ipv6_devconf, drop_unsolicited_na) - 172usize]; + [::core::mem::offset_of!(ipv6_devconf, drop_unsolicited_na) - 180usize]; ["Offset of field: ipv6_devconf::accept_untracked_na"] - [::core::mem::offset_of!(ipv6_devconf, accept_untracked_na) - 176usize]; + [::core::mem::offset_of!(ipv6_devconf, accept_untracked_na) - 184usize]; ["Offset of field: ipv6_devconf::stable_secret"] - [::core::mem::offset_of!(ipv6_devconf, stable_secret) - 180usize]; + [::core::mem::offset_of!(ipv6_devconf, stable_secret) - 188usize]; ["Offset of field: ipv6_devconf::use_oif_addrs_only"] - [::core::mem::offset_of!(ipv6_devconf, use_oif_addrs_only) - 200usize]; + [::core::mem::offset_of!(ipv6_devconf, use_oif_addrs_only) - 208usize]; ["Offset of field: ipv6_devconf::keep_addr_on_down"] - [::core::mem::offset_of!(ipv6_devconf, keep_addr_on_down) - 204usize]; + [::core::mem::offset_of!(ipv6_devconf, keep_addr_on_down) - 212usize]; ["Offset of field: ipv6_devconf::seg6_enabled"] - [::core::mem::offset_of!(ipv6_devconf, seg6_enabled) - 208usize]; + [::core::mem::offset_of!(ipv6_devconf, seg6_enabled) - 216usize]; ["Offset of field: ipv6_devconf::seg6_require_hmac"] - [::core::mem::offset_of!(ipv6_devconf, seg6_require_hmac) - 212usize]; + [::core::mem::offset_of!(ipv6_devconf, seg6_require_hmac) - 220usize]; ["Offset of field: ipv6_devconf::enhanced_dad"] - [::core::mem::offset_of!(ipv6_devconf, enhanced_dad) - 216usize]; + [::core::mem::offset_of!(ipv6_devconf, enhanced_dad) - 224usize]; ["Offset of field: ipv6_devconf::addr_gen_mode"] - [::core::mem::offset_of!(ipv6_devconf, addr_gen_mode) - 220usize]; + [::core::mem::offset_of!(ipv6_devconf, addr_gen_mode) - 228usize]; ["Offset of field: ipv6_devconf::ndisc_tclass"] - [::core::mem::offset_of!(ipv6_devconf, ndisc_tclass) - 224usize]; + [::core::mem::offset_of!(ipv6_devconf, ndisc_tclass) - 232usize]; ["Offset of field: ipv6_devconf::rpl_seg_enabled"] - [::core::mem::offset_of!(ipv6_devconf, rpl_seg_enabled) - 228usize]; + [::core::mem::offset_of!(ipv6_devconf, rpl_seg_enabled) - 236usize]; ["Offset of field: ipv6_devconf::ioam6_id"] - [::core::mem::offset_of!(ipv6_devconf, ioam6_id) - 232usize]; + [::core::mem::offset_of!(ipv6_devconf, ioam6_id) - 240usize]; ["Offset of field: ipv6_devconf::ioam6_id_wide"] - [::core::mem::offset_of!(ipv6_devconf, ioam6_id_wide) - 236usize]; + [::core::mem::offset_of!(ipv6_devconf, ioam6_id_wide) - 244usize]; ["Offset of field: ipv6_devconf::ioam6_enabled"] - [::core::mem::offset_of!(ipv6_devconf, ioam6_enabled) - 240usize]; + [::core::mem::offset_of!(ipv6_devconf, ioam6_enabled) - 248usize]; ["Offset of field: ipv6_devconf::ndisc_evict_nocarrier"] - [::core::mem::offset_of!(ipv6_devconf, ndisc_evict_nocarrier) - 241usize]; + [::core::mem::offset_of!(ipv6_devconf, ndisc_evict_nocarrier) - 249usize]; ["Offset of field: ipv6_devconf::ra_honor_pio_life"] - [::core::mem::offset_of!(ipv6_devconf, ra_honor_pio_life) - 242usize]; + [::core::mem::offset_of!(ipv6_devconf, ra_honor_pio_life) - 250usize]; + ["Offset of field: ipv6_devconf::ra_honor_pio_pflag"] + [::core::mem::offset_of!(ipv6_devconf, ra_honor_pio_pflag) - 251usize]; ["Offset of field: ipv6_devconf::sysctl_header"] - [::core::mem::offset_of!(ipv6_devconf, sysctl_header) - 248usize]; + [::core::mem::offset_of!(ipv6_devconf, sysctl_header) - 256usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -57283,7 +57262,7 @@ pub struct inet6_dev { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of inet6_dev"][::core::mem::size_of::() - 1048usize]; + ["Size of inet6_dev"][::core::mem::size_of::() - 1056usize]; ["Alignment of inet6_dev"][::core::mem::align_of::() - 8usize]; ["Offset of field: inet6_dev::dev"][::core::mem::offset_of!(inet6_dev, dev) - 0usize]; ["Offset of field: inet6_dev::dev_tracker"] @@ -57338,16 +57317,16 @@ const _: () = { ["Offset of field: inet6_dev::nd_parms"] [::core::mem::offset_of!(inet6_dev, nd_parms) - 672usize]; ["Offset of field: inet6_dev::cnf"][::core::mem::offset_of!(inet6_dev, cnf) - 680usize]; - ["Offset of field: inet6_dev::stats"][::core::mem::offset_of!(inet6_dev, stats) - 936usize]; + ["Offset of field: inet6_dev::stats"][::core::mem::offset_of!(inet6_dev, stats) - 944usize]; ["Offset of field: inet6_dev::rs_timer"] - [::core::mem::offset_of!(inet6_dev, rs_timer) - 968usize]; + [::core::mem::offset_of!(inet6_dev, rs_timer) - 976usize]; ["Offset of field: inet6_dev::rs_interval"] - [::core::mem::offset_of!(inet6_dev, rs_interval) - 1008usize]; + [::core::mem::offset_of!(inet6_dev, rs_interval) - 1016usize]; ["Offset of field: inet6_dev::rs_probes"] - [::core::mem::offset_of!(inet6_dev, rs_probes) - 1012usize]; - ["Offset of field: inet6_dev::tstamp"][::core::mem::offset_of!(inet6_dev, tstamp) - 1016usize]; - ["Offset of field: inet6_dev::rcu"][::core::mem::offset_of!(inet6_dev, rcu) - 1024usize]; - ["Offset of field: inet6_dev::ra_mtu"][::core::mem::offset_of!(inet6_dev, ra_mtu) - 1040usize]; + [::core::mem::offset_of!(inet6_dev, rs_probes) - 1020usize]; + ["Offset of field: inet6_dev::tstamp"][::core::mem::offset_of!(inet6_dev, tstamp) - 1024usize]; + ["Offset of field: inet6_dev::rcu"][::core::mem::offset_of!(inet6_dev, rcu) - 1032usize]; + ["Offset of field: inet6_dev::ra_mtu"][::core::mem::offset_of!(inet6_dev, ra_mtu) - 1048usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -57878,141 +57857,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct pmu { - pub entry: list_head, - pub module: *mut module, - pub dev: *mut device, - pub parent: *mut device, - pub attr_groups: *mut *const attribute_group, - pub attr_update: *mut *const attribute_group, - pub name: *const ::core::ffi::c_char, - pub type_: ::core::ffi::c_int, - pub capabilities: ::core::ffi::c_int, - pub pmu_disable_count: *mut ::core::ffi::c_int, - pub cpu_pmu_context: *mut perf_cpu_pmu_context, - pub exclusive_cnt: atomic_t, - pub task_ctx_nr: ::core::ffi::c_int, - pub hrtimer_interval_ms: ::core::ffi::c_int, - pub nr_addr_filters: ::core::ffi::c_uint, - pub pmu_enable: ::core::option::Option, - pub pmu_disable: ::core::option::Option, - pub event_init: - ::core::option::Option ::core::ffi::c_int>, - pub event_mapped: - ::core::option::Option, - pub event_unmapped: - ::core::option::Option, - pub add: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut perf_event, arg2: ::core::ffi::c_int) -> ::core::ffi::c_int, - >, - pub del: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut perf_event, arg2: ::core::ffi::c_int), - >, - pub start: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut perf_event, arg2: ::core::ffi::c_int), - >, - pub stop: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut perf_event, arg2: ::core::ffi::c_int), - >, - pub read: ::core::option::Option, - pub start_txn: - ::core::option::Option, - pub commit_txn: - ::core::option::Option ::core::ffi::c_int>, - pub cancel_txn: ::core::option::Option, - pub event_idx: - ::core::option::Option ::core::ffi::c_int>, - pub sched_task: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut perf_event_pmu_context, arg2: bool_), - >, - pub task_ctx_cache: *mut kmem_cache, - pub swap_task_ctx: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut perf_event_pmu_context, arg2: *mut perf_event_pmu_context), - >, - pub setup_aux: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut perf_event, - arg2: *mut *mut ::core::ffi::c_void, - arg3: ::core::ffi::c_int, - arg4: bool_, - ) -> *mut ::core::ffi::c_void, - >, - pub free_aux: ::core::option::Option, - pub snapshot_aux: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut perf_event, - arg2: *mut perf_output_handle, - arg3: ::core::ffi::c_ulong, - ) -> ::core::ffi::c_long, - >, - pub addr_filters_validate: - ::core::option::Option ::core::ffi::c_int>, - pub addr_filters_sync: ::core::option::Option, - pub aux_output_match: - ::core::option::Option ::core::ffi::c_int>, - pub filter: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut pmu, arg2: ::core::ffi::c_int) -> bool_, - >, - pub check_period: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut perf_event, arg2: u64_) -> ::core::ffi::c_int, - >, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of pmu"][::core::mem::size_of::() - 304usize]; - ["Alignment of pmu"][::core::mem::align_of::() - 8usize]; - ["Offset of field: pmu::entry"][::core::mem::offset_of!(pmu, entry) - 0usize]; - ["Offset of field: pmu::module"][::core::mem::offset_of!(pmu, module) - 16usize]; - ["Offset of field: pmu::dev"][::core::mem::offset_of!(pmu, dev) - 24usize]; - ["Offset of field: pmu::parent"][::core::mem::offset_of!(pmu, parent) - 32usize]; - ["Offset of field: pmu::attr_groups"][::core::mem::offset_of!(pmu, attr_groups) - 40usize]; - ["Offset of field: pmu::attr_update"][::core::mem::offset_of!(pmu, attr_update) - 48usize]; - ["Offset of field: pmu::name"][::core::mem::offset_of!(pmu, name) - 56usize]; - ["Offset of field: pmu::type_"][::core::mem::offset_of!(pmu, type_) - 64usize]; - ["Offset of field: pmu::capabilities"][::core::mem::offset_of!(pmu, capabilities) - 68usize]; - ["Offset of field: pmu::pmu_disable_count"] - [::core::mem::offset_of!(pmu, pmu_disable_count) - 72usize]; - ["Offset of field: pmu::cpu_pmu_context"] - [::core::mem::offset_of!(pmu, cpu_pmu_context) - 80usize]; - ["Offset of field: pmu::exclusive_cnt"][::core::mem::offset_of!(pmu, exclusive_cnt) - 88usize]; - ["Offset of field: pmu::task_ctx_nr"][::core::mem::offset_of!(pmu, task_ctx_nr) - 92usize]; - ["Offset of field: pmu::hrtimer_interval_ms"] - [::core::mem::offset_of!(pmu, hrtimer_interval_ms) - 96usize]; - ["Offset of field: pmu::nr_addr_filters"] - [::core::mem::offset_of!(pmu, nr_addr_filters) - 100usize]; - ["Offset of field: pmu::pmu_enable"][::core::mem::offset_of!(pmu, pmu_enable) - 104usize]; - ["Offset of field: pmu::pmu_disable"][::core::mem::offset_of!(pmu, pmu_disable) - 112usize]; - ["Offset of field: pmu::event_init"][::core::mem::offset_of!(pmu, event_init) - 120usize]; - ["Offset of field: pmu::event_mapped"][::core::mem::offset_of!(pmu, event_mapped) - 128usize]; - ["Offset of field: pmu::event_unmapped"] - [::core::mem::offset_of!(pmu, event_unmapped) - 136usize]; - ["Offset of field: pmu::add"][::core::mem::offset_of!(pmu, add) - 144usize]; - ["Offset of field: pmu::del"][::core::mem::offset_of!(pmu, del) - 152usize]; - ["Offset of field: pmu::start"][::core::mem::offset_of!(pmu, start) - 160usize]; - ["Offset of field: pmu::stop"][::core::mem::offset_of!(pmu, stop) - 168usize]; - ["Offset of field: pmu::read"][::core::mem::offset_of!(pmu, read) - 176usize]; - ["Offset of field: pmu::start_txn"][::core::mem::offset_of!(pmu, start_txn) - 184usize]; - ["Offset of field: pmu::commit_txn"][::core::mem::offset_of!(pmu, commit_txn) - 192usize]; - ["Offset of field: pmu::cancel_txn"][::core::mem::offset_of!(pmu, cancel_txn) - 200usize]; - ["Offset of field: pmu::event_idx"][::core::mem::offset_of!(pmu, event_idx) - 208usize]; - ["Offset of field: pmu::sched_task"][::core::mem::offset_of!(pmu, sched_task) - 216usize]; - ["Offset of field: pmu::task_ctx_cache"] - [::core::mem::offset_of!(pmu, task_ctx_cache) - 224usize]; - ["Offset of field: pmu::swap_task_ctx"][::core::mem::offset_of!(pmu, swap_task_ctx) - 232usize]; - ["Offset of field: pmu::setup_aux"][::core::mem::offset_of!(pmu, setup_aux) - 240usize]; - ["Offset of field: pmu::free_aux"][::core::mem::offset_of!(pmu, free_aux) - 248usize]; - ["Offset of field: pmu::snapshot_aux"][::core::mem::offset_of!(pmu, snapshot_aux) - 256usize]; - ["Offset of field: pmu::addr_filters_validate"] - [::core::mem::offset_of!(pmu, addr_filters_validate) - 264usize]; - ["Offset of field: pmu::addr_filters_sync"] - [::core::mem::offset_of!(pmu, addr_filters_sync) - 272usize]; - ["Offset of field: pmu::aux_output_match"] - [::core::mem::offset_of!(pmu, aux_output_match) - 280usize]; - ["Offset of field: pmu::filter"][::core::mem::offset_of!(pmu, filter) - 288usize]; - ["Offset of field: pmu::check_period"][::core::mem::offset_of!(pmu, check_period) - 296usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct io_alloc_cache { pub entries: *mut *mut ::core::ffi::c_void, pub nr_cached: ::core::ffi::c_uint, @@ -58232,9 +58076,8 @@ pub struct io_buffer_list { pub nr_entries: __u16, pub head: __u16, pub mask: __u16, + pub flags: __u16, pub refs: atomic_t, - pub is_buf_ring: __u8, - pub is_mmap: __u8, } #[repr(C)] #[derive(Copy, Clone)] @@ -58273,7 +58116,7 @@ const _: () = { }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of io_buffer_list"][::core::mem::size_of::() - 40usize]; + ["Size of io_buffer_list"][::core::mem::size_of::() - 32usize]; ["Alignment of io_buffer_list"][::core::mem::align_of::() - 8usize]; ["Offset of field: io_buffer_list::bgid"] [::core::mem::offset_of!(io_buffer_list, bgid) - 16usize]; @@ -58285,12 +58128,10 @@ const _: () = { [::core::mem::offset_of!(io_buffer_list, head) - 22usize]; ["Offset of field: io_buffer_list::mask"] [::core::mem::offset_of!(io_buffer_list, mask) - 24usize]; + ["Offset of field: io_buffer_list::flags"] + [::core::mem::offset_of!(io_buffer_list, flags) - 26usize]; ["Offset of field: io_buffer_list::refs"] [::core::mem::offset_of!(io_buffer_list, refs) - 28usize]; - ["Offset of field: io_buffer_list::is_buf_ring"] - [::core::mem::offset_of!(io_buffer_list, is_buf_ring) - 32usize]; - ["Offset of field: io_buffer_list::is_mmap"] - [::core::mem::offset_of!(io_buffer_list, is_mmap) - 33usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -58308,20 +58149,20 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct io_comp_batch { - pub req_list: *mut request, + pub req_list: rq_list, pub need_ts: bool_, pub complete: ::core::option::Option, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of io_comp_batch"][::core::mem::size_of::() - 24usize]; + ["Size of io_comp_batch"][::core::mem::size_of::() - 32usize]; ["Alignment of io_comp_batch"][::core::mem::align_of::() - 8usize]; ["Offset of field: io_comp_batch::req_list"] [::core::mem::offset_of!(io_comp_batch, req_list) - 0usize]; ["Offset of field: io_comp_batch::need_ts"] - [::core::mem::offset_of!(io_comp_batch, need_ts) - 8usize]; + [::core::mem::offset_of!(io_comp_batch, need_ts) - 16usize]; ["Offset of field: io_comp_batch::complete"] - [::core::mem::offset_of!(io_comp_batch, complete) - 16usize]; + [::core::mem::offset_of!(io_comp_batch, complete) - 24usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -58356,53 +58197,6 @@ const _: () = { }; #[repr(C)] #[derive(Copy, Clone)] -pub struct io_cq { - pub q: *mut request_queue, - pub ioc: *mut io_context, - pub __bindgen_anon_1: io_cq__bindgen_ty_1, - pub __bindgen_anon_2: io_cq__bindgen_ty_2, - pub flags: ::core::ffi::c_uint, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union io_cq__bindgen_ty_1 { - pub q_node: list_head, - pub __rcu_icq_cache: *mut kmem_cache, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of io_cq__bindgen_ty_1"][::core::mem::size_of::() - 16usize]; - ["Alignment of io_cq__bindgen_ty_1"][::core::mem::align_of::() - 8usize]; - ["Offset of field: io_cq__bindgen_ty_1::q_node"] - [::core::mem::offset_of!(io_cq__bindgen_ty_1, q_node) - 0usize]; - ["Offset of field: io_cq__bindgen_ty_1::__rcu_icq_cache"] - [::core::mem::offset_of!(io_cq__bindgen_ty_1, __rcu_icq_cache) - 0usize]; -}; -#[repr(C)] -#[derive(Copy, Clone)] -pub union io_cq__bindgen_ty_2 { - pub ioc_node: hlist_node, - pub __rcu_head: callback_head, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of io_cq__bindgen_ty_2"][::core::mem::size_of::() - 16usize]; - ["Alignment of io_cq__bindgen_ty_2"][::core::mem::align_of::() - 8usize]; - ["Offset of field: io_cq__bindgen_ty_2::ioc_node"] - [::core::mem::offset_of!(io_cq__bindgen_ty_2, ioc_node) - 0usize]; - ["Offset of field: io_cq__bindgen_ty_2::__rcu_head"] - [::core::mem::offset_of!(io_cq__bindgen_ty_2, __rcu_head) - 0usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of io_cq"][::core::mem::size_of::() - 56usize]; - ["Alignment of io_cq"][::core::mem::align_of::() - 8usize]; - ["Offset of field: io_cq::q"][::core::mem::offset_of!(io_cq, q) - 0usize]; - ["Offset of field: io_cq::ioc"][::core::mem::offset_of!(io_cq, ioc) - 8usize]; - ["Offset of field: io_cq::flags"][::core::mem::offset_of!(io_cq, flags) - 48usize]; -}; -#[repr(C)] -#[derive(Copy, Clone)] pub struct io_cqe { pub user_data: __u64, pub res: __s32, @@ -58437,7 +58231,7 @@ pub struct io_ev_fd { pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, pub rcu: callback_head, - pub refs: atomic_t, + pub refs: refcount_t, pub ops: atomic_t, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] @@ -58730,8 +58524,10 @@ const _: () = { #[derive(Debug)] pub struct io_mapped_ubuf { pub ubuf: u64_, - pub ubuf_end: u64_, + pub len: ::core::ffi::c_uint, pub nr_bvecs: ::core::ffi::c_uint, + pub folio_shift: ::core::ffi::c_uint, + pub refs: refcount_t, pub acct_pages: ::core::ffi::c_ulong, pub bvec: __IncompleteArrayField, } @@ -58741,10 +58537,13 @@ const _: () = { ["Alignment of io_mapped_ubuf"][::core::mem::align_of::() - 8usize]; ["Offset of field: io_mapped_ubuf::ubuf"] [::core::mem::offset_of!(io_mapped_ubuf, ubuf) - 0usize]; - ["Offset of field: io_mapped_ubuf::ubuf_end"] - [::core::mem::offset_of!(io_mapped_ubuf, ubuf_end) - 8usize]; + ["Offset of field: io_mapped_ubuf::len"][::core::mem::offset_of!(io_mapped_ubuf, len) - 8usize]; ["Offset of field: io_mapped_ubuf::nr_bvecs"] - [::core::mem::offset_of!(io_mapped_ubuf, nr_bvecs) - 16usize]; + [::core::mem::offset_of!(io_mapped_ubuf, nr_bvecs) - 12usize]; + ["Offset of field: io_mapped_ubuf::folio_shift"] + [::core::mem::offset_of!(io_mapped_ubuf, folio_shift) - 16usize]; + ["Offset of field: io_mapped_ubuf::refs"] + [::core::mem::offset_of!(io_mapped_ubuf, refs) - 20usize]; ["Offset of field: io_mapped_ubuf::acct_pages"] [::core::mem::offset_of!(io_mapped_ubuf, acct_pages) - 24usize]; ["Offset of field: io_mapped_ubuf::bvec"] @@ -58853,7 +58652,7 @@ pub struct io_submit_state { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of io_submit_state"][::core::mem::size_of::() - 96usize]; + ["Size of io_submit_state"][::core::mem::size_of::() - 112usize]; ["Alignment of io_submit_state"][::core::mem::align_of::() - 8usize]; ["Offset of field: io_submit_state::free_list"] [::core::mem::offset_of!(io_submit_state, free_list) - 0usize]; @@ -58940,10 +58739,12 @@ pub struct io_ring_ctx__bindgen_ty_1 { pub submitter_task: *mut task_struct, pub rings: *mut io_rings, pub refs: percpu_ref, + pub clockid: clockid_t, + pub clock_offset: tk_offsets, pub notify_method: task_work_notify_mode, pub sq_thread_idle: ::core::ffi::c_uint, pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 8usize]>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -58959,10 +58760,14 @@ const _: () = { [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_1, rings) - 16usize]; ["Offset of field: io_ring_ctx__bindgen_ty_1::refs"] [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_1, refs) - 24usize]; + ["Offset of field: io_ring_ctx__bindgen_ty_1::clockid"] + [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_1, clockid) - 40usize]; + ["Offset of field: io_ring_ctx__bindgen_ty_1::clock_offset"] + [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_1, clock_offset) - 44usize]; ["Offset of field: io_ring_ctx__bindgen_ty_1::notify_method"] - [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_1, notify_method) - 40usize]; + [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_1, notify_method) - 48usize]; ["Offset of field: io_ring_ctx__bindgen_ty_1::sq_thread_idle"] - [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_1, sq_thread_idle) - 44usize]; + [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_1, sq_thread_idle) - 52usize]; }; impl io_ring_ctx__bindgen_ty_1 { #[inline] @@ -59428,8 +59233,8 @@ impl io_ring_ctx__bindgen_ty_1 { __bindgen_bitfield_unit } #[inline] - pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); __bindgen_bitfield_unit } } @@ -59458,7 +59263,7 @@ pub struct io_ring_ctx__bindgen_ty_2 { pub uring_cache: io_alloc_cache, pub cancelable_uring_cmd: hlist_head, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -59495,24 +59300,24 @@ const _: () = { ["Offset of field: io_ring_ctx__bindgen_ty_2::submit_state"] [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, submit_state) - 128usize]; ["Offset of field: io_ring_ctx__bindgen_ty_2::io_bl_xa"] - [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, io_bl_xa) - 224usize]; + [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, io_bl_xa) - 240usize]; ["Offset of field: io_ring_ctx__bindgen_ty_2::cancel_table_locked"] - [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, cancel_table_locked) - 240usize]; + [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, cancel_table_locked) - 256usize]; ["Offset of field: io_ring_ctx__bindgen_ty_2::apoll_cache"] - [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, apoll_cache) - 256usize]; + [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, apoll_cache) - 272usize]; ["Offset of field: io_ring_ctx__bindgen_ty_2::netmsg_cache"] - [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, netmsg_cache) - 280usize]; + [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, netmsg_cache) - 296usize]; ["Offset of field: io_ring_ctx__bindgen_ty_2::rw_cache"] - [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, rw_cache) - 304usize]; + [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, rw_cache) - 320usize]; ["Offset of field: io_ring_ctx__bindgen_ty_2::uring_cache"] - [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, uring_cache) - 328usize]; + [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, uring_cache) - 344usize]; ["Offset of field: io_ring_ctx__bindgen_ty_2::cancelable_uring_cmd"] - [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, cancelable_uring_cmd) - 352usize]; + [::core::mem::offset_of!(io_ring_ctx__bindgen_ty_2, cancelable_uring_cmd) - 368usize]; }; impl io_ring_ctx__bindgen_ty_2 { #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); __bindgen_bitfield_unit } } @@ -59926,13 +59731,10 @@ pub struct io_tlb_pool { pub area_nslabs: ::core::ffi::c_uint, pub areas: *mut io_tlb_area, pub slots: *mut io_tlb_slot, - pub node: list_head, - pub rcu: callback_head, - pub transient: bool_, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of io_tlb_pool"][::core::mem::size_of::() - 104usize]; + ["Size of io_tlb_pool"][::core::mem::size_of::() - 64usize]; ["Alignment of io_tlb_pool"][::core::mem::align_of::() - 8usize]; ["Offset of field: io_tlb_pool::start"][::core::mem::offset_of!(io_tlb_pool, start) - 0usize]; ["Offset of field: io_tlb_pool::end"][::core::mem::offset_of!(io_tlb_pool, end) - 8usize]; @@ -59947,54 +59749,37 @@ const _: () = { [::core::mem::offset_of!(io_tlb_pool, area_nslabs) - 40usize]; ["Offset of field: io_tlb_pool::areas"][::core::mem::offset_of!(io_tlb_pool, areas) - 48usize]; ["Offset of field: io_tlb_pool::slots"][::core::mem::offset_of!(io_tlb_pool, slots) - 56usize]; - ["Offset of field: io_tlb_pool::node"][::core::mem::offset_of!(io_tlb_pool, node) - 64usize]; - ["Offset of field: io_tlb_pool::rcu"][::core::mem::offset_of!(io_tlb_pool, rcu) - 80usize]; - ["Offset of field: io_tlb_pool::transient"] - [::core::mem::offset_of!(io_tlb_pool, transient) - 96usize]; }; #[repr(C)] -#[derive(Copy, Clone)] +#[derive(Debug, Copy, Clone)] pub struct io_tlb_mem { pub defpool: io_tlb_pool, pub nslabs: ::core::ffi::c_ulong, pub debugfs: *mut dentry, pub force_bounce: bool_, pub for_alloc: bool_, - pub can_grow: bool_, - pub phys_limit: u64_, - pub lock: spinlock_t, - pub pools: list_head, - pub dyn_alloc: work_struct, pub total_used: atomic_long_t, pub used_hiwater: atomic_long_t, pub transient_nslabs: atomic_long_t, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of io_tlb_mem"][::core::mem::size_of::() - 216usize]; + ["Size of io_tlb_mem"][::core::mem::size_of::() - 112usize]; ["Alignment of io_tlb_mem"][::core::mem::align_of::() - 8usize]; ["Offset of field: io_tlb_mem::defpool"][::core::mem::offset_of!(io_tlb_mem, defpool) - 0usize]; - ["Offset of field: io_tlb_mem::nslabs"][::core::mem::offset_of!(io_tlb_mem, nslabs) - 104usize]; + ["Offset of field: io_tlb_mem::nslabs"][::core::mem::offset_of!(io_tlb_mem, nslabs) - 64usize]; ["Offset of field: io_tlb_mem::debugfs"] - [::core::mem::offset_of!(io_tlb_mem, debugfs) - 112usize]; + [::core::mem::offset_of!(io_tlb_mem, debugfs) - 72usize]; ["Offset of field: io_tlb_mem::force_bounce"] - [::core::mem::offset_of!(io_tlb_mem, force_bounce) - 120usize]; + [::core::mem::offset_of!(io_tlb_mem, force_bounce) - 80usize]; ["Offset of field: io_tlb_mem::for_alloc"] - [::core::mem::offset_of!(io_tlb_mem, for_alloc) - 121usize]; - ["Offset of field: io_tlb_mem::can_grow"] - [::core::mem::offset_of!(io_tlb_mem, can_grow) - 122usize]; - ["Offset of field: io_tlb_mem::phys_limit"] - [::core::mem::offset_of!(io_tlb_mem, phys_limit) - 128usize]; - ["Offset of field: io_tlb_mem::lock"][::core::mem::offset_of!(io_tlb_mem, lock) - 136usize]; - ["Offset of field: io_tlb_mem::pools"][::core::mem::offset_of!(io_tlb_mem, pools) - 144usize]; - ["Offset of field: io_tlb_mem::dyn_alloc"] - [::core::mem::offset_of!(io_tlb_mem, dyn_alloc) - 160usize]; + [::core::mem::offset_of!(io_tlb_mem, for_alloc) - 81usize]; ["Offset of field: io_tlb_mem::total_used"] - [::core::mem::offset_of!(io_tlb_mem, total_used) - 192usize]; + [::core::mem::offset_of!(io_tlb_mem, total_used) - 88usize]; ["Offset of field: io_tlb_mem::used_hiwater"] - [::core::mem::offset_of!(io_tlb_mem, used_hiwater) - 200usize]; + [::core::mem::offset_of!(io_tlb_mem, used_hiwater) - 96usize]; ["Offset of field: io_tlb_mem::transient_nslabs"] - [::core::mem::offset_of!(io_tlb_mem, transient_nslabs) - 208usize]; + [::core::mem::offset_of!(io_tlb_mem, transient_nslabs) - 104usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -60582,26 +60367,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct rq_qos { - pub ops: *const rq_qos_ops, - pub disk: *mut gendisk, - pub id: rq_qos_id, - pub next: *mut rq_qos, - pub debugfs_dir: *mut dentry, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of rq_qos"][::core::mem::size_of::() - 40usize]; - ["Alignment of rq_qos"][::core::mem::align_of::() - 8usize]; - ["Offset of field: rq_qos::ops"][::core::mem::offset_of!(rq_qos, ops) - 0usize]; - ["Offset of field: rq_qos::disk"][::core::mem::offset_of!(rq_qos, disk) - 8usize]; - ["Offset of field: rq_qos::id"][::core::mem::offset_of!(rq_qos, id) - 16usize]; - ["Offset of field: rq_qos::next"][::core::mem::offset_of!(rq_qos, next) - 24usize]; - ["Offset of field: rq_qos::debugfs_dir"] - [::core::mem::offset_of!(rq_qos, debugfs_dir) - 32usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct iomap { pub addr: u64_, pub offset: loff_t, @@ -61384,6 +61149,143 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct pmu { + pub entry: list_head, + pub module: *mut module, + pub dev: *mut device, + pub parent: *mut device, + pub attr_groups: *mut *const attribute_group, + pub attr_update: *mut *const attribute_group, + pub name: *const ::core::ffi::c_char, + pub type_: ::core::ffi::c_int, + pub capabilities: ::core::ffi::c_int, + pub scope: ::core::ffi::c_uint, + pub pmu_disable_count: *mut ::core::ffi::c_int, + pub cpu_pmu_context: *mut perf_cpu_pmu_context, + pub exclusive_cnt: atomic_t, + pub task_ctx_nr: ::core::ffi::c_int, + pub hrtimer_interval_ms: ::core::ffi::c_int, + pub nr_addr_filters: ::core::ffi::c_uint, + pub pmu_enable: ::core::option::Option, + pub pmu_disable: ::core::option::Option, + pub event_init: + ::core::option::Option ::core::ffi::c_int>, + pub event_mapped: + ::core::option::Option, + pub event_unmapped: + ::core::option::Option, + pub add: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event, arg2: ::core::ffi::c_int) -> ::core::ffi::c_int, + >, + pub del: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event, arg2: ::core::ffi::c_int), + >, + pub start: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event, arg2: ::core::ffi::c_int), + >, + pub stop: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event, arg2: ::core::ffi::c_int), + >, + pub read: ::core::option::Option, + pub start_txn: + ::core::option::Option, + pub commit_txn: + ::core::option::Option ::core::ffi::c_int>, + pub cancel_txn: ::core::option::Option, + pub event_idx: + ::core::option::Option ::core::ffi::c_int>, + pub sched_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event_pmu_context, arg2: bool_), + >, + pub task_ctx_cache: *mut kmem_cache, + pub swap_task_ctx: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event_pmu_context, arg2: *mut perf_event_pmu_context), + >, + pub setup_aux: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut perf_event, + arg2: *mut *mut ::core::ffi::c_void, + arg3: ::core::ffi::c_int, + arg4: bool_, + ) -> *mut ::core::ffi::c_void, + >, + pub free_aux: ::core::option::Option, + pub snapshot_aux: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut perf_event, + arg2: *mut perf_output_handle, + arg3: ::core::ffi::c_ulong, + ) -> ::core::ffi::c_long, + >, + pub addr_filters_validate: + ::core::option::Option ::core::ffi::c_int>, + pub addr_filters_sync: ::core::option::Option, + pub aux_output_match: + ::core::option::Option ::core::ffi::c_int>, + pub filter: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut pmu, arg2: ::core::ffi::c_int) -> bool_, + >, + pub check_period: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event, arg2: u64_) -> ::core::ffi::c_int, + >, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of pmu"][::core::mem::size_of::() - 312usize]; + ["Alignment of pmu"][::core::mem::align_of::() - 8usize]; + ["Offset of field: pmu::entry"][::core::mem::offset_of!(pmu, entry) - 0usize]; + ["Offset of field: pmu::module"][::core::mem::offset_of!(pmu, module) - 16usize]; + ["Offset of field: pmu::dev"][::core::mem::offset_of!(pmu, dev) - 24usize]; + ["Offset of field: pmu::parent"][::core::mem::offset_of!(pmu, parent) - 32usize]; + ["Offset of field: pmu::attr_groups"][::core::mem::offset_of!(pmu, attr_groups) - 40usize]; + ["Offset of field: pmu::attr_update"][::core::mem::offset_of!(pmu, attr_update) - 48usize]; + ["Offset of field: pmu::name"][::core::mem::offset_of!(pmu, name) - 56usize]; + ["Offset of field: pmu::type_"][::core::mem::offset_of!(pmu, type_) - 64usize]; + ["Offset of field: pmu::capabilities"][::core::mem::offset_of!(pmu, capabilities) - 68usize]; + ["Offset of field: pmu::scope"][::core::mem::offset_of!(pmu, scope) - 72usize]; + ["Offset of field: pmu::pmu_disable_count"] + [::core::mem::offset_of!(pmu, pmu_disable_count) - 80usize]; + ["Offset of field: pmu::cpu_pmu_context"] + [::core::mem::offset_of!(pmu, cpu_pmu_context) - 88usize]; + ["Offset of field: pmu::exclusive_cnt"][::core::mem::offset_of!(pmu, exclusive_cnt) - 96usize]; + ["Offset of field: pmu::task_ctx_nr"][::core::mem::offset_of!(pmu, task_ctx_nr) - 100usize]; + ["Offset of field: pmu::hrtimer_interval_ms"] + [::core::mem::offset_of!(pmu, hrtimer_interval_ms) - 104usize]; + ["Offset of field: pmu::nr_addr_filters"] + [::core::mem::offset_of!(pmu, nr_addr_filters) - 108usize]; + ["Offset of field: pmu::pmu_enable"][::core::mem::offset_of!(pmu, pmu_enable) - 112usize]; + ["Offset of field: pmu::pmu_disable"][::core::mem::offset_of!(pmu, pmu_disable) - 120usize]; + ["Offset of field: pmu::event_init"][::core::mem::offset_of!(pmu, event_init) - 128usize]; + ["Offset of field: pmu::event_mapped"][::core::mem::offset_of!(pmu, event_mapped) - 136usize]; + ["Offset of field: pmu::event_unmapped"] + [::core::mem::offset_of!(pmu, event_unmapped) - 144usize]; + ["Offset of field: pmu::add"][::core::mem::offset_of!(pmu, add) - 152usize]; + ["Offset of field: pmu::del"][::core::mem::offset_of!(pmu, del) - 160usize]; + ["Offset of field: pmu::start"][::core::mem::offset_of!(pmu, start) - 168usize]; + ["Offset of field: pmu::stop"][::core::mem::offset_of!(pmu, stop) - 176usize]; + ["Offset of field: pmu::read"][::core::mem::offset_of!(pmu, read) - 184usize]; + ["Offset of field: pmu::start_txn"][::core::mem::offset_of!(pmu, start_txn) - 192usize]; + ["Offset of field: pmu::commit_txn"][::core::mem::offset_of!(pmu, commit_txn) - 200usize]; + ["Offset of field: pmu::cancel_txn"][::core::mem::offset_of!(pmu, cancel_txn) - 208usize]; + ["Offset of field: pmu::event_idx"][::core::mem::offset_of!(pmu, event_idx) - 216usize]; + ["Offset of field: pmu::sched_task"][::core::mem::offset_of!(pmu, sched_task) - 224usize]; + ["Offset of field: pmu::task_ctx_cache"] + [::core::mem::offset_of!(pmu, task_ctx_cache) - 232usize]; + ["Offset of field: pmu::swap_task_ctx"][::core::mem::offset_of!(pmu, swap_task_ctx) - 240usize]; + ["Offset of field: pmu::setup_aux"][::core::mem::offset_of!(pmu, setup_aux) - 248usize]; + ["Offset of field: pmu::free_aux"][::core::mem::offset_of!(pmu, free_aux) - 256usize]; + ["Offset of field: pmu::snapshot_aux"][::core::mem::offset_of!(pmu, snapshot_aux) - 264usize]; + ["Offset of field: pmu::addr_filters_validate"] + [::core::mem::offset_of!(pmu, addr_filters_validate) - 272usize]; + ["Offset of field: pmu::addr_filters_sync"] + [::core::mem::offset_of!(pmu, addr_filters_sync) - 280usize]; + ["Offset of field: pmu::aux_output_match"] + [::core::mem::offset_of!(pmu, aux_output_match) - 288usize]; + ["Offset of field: pmu::filter"][::core::mem::offset_of!(pmu, filter) - 296usize]; + ["Offset of field: pmu::check_period"][::core::mem::offset_of!(pmu, check_period) - 304usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct iommu_user_data { pub type_: ::core::ffi::c_uint, pub uptr: *mut ::core::ffi::c_void, @@ -61974,6 +61876,160 @@ const _: () = { }; #[repr(C)] #[derive(Copy, Clone)] +pub struct iphdr { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub tos: __u8, + pub tot_len: __be16, + pub id: __be16, + pub frag_off: __be16, + pub ttl: __u8, + pub protocol: __u8, + pub check: __sum16, + pub __bindgen_anon_1: iphdr__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iphdr__bindgen_ty_1 { + pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1, + pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iphdr__bindgen_ty_1__bindgen_ty_1 { + pub saddr: __be32, + pub daddr: __be32, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of iphdr__bindgen_ty_1__bindgen_ty_1"] + [::core::mem::size_of::() - 8usize]; + ["Alignment of iphdr__bindgen_ty_1__bindgen_ty_1"] + [::core::mem::align_of::() - 4usize]; + ["Offset of field: iphdr__bindgen_ty_1__bindgen_ty_1::saddr"] + [::core::mem::offset_of!(iphdr__bindgen_ty_1__bindgen_ty_1, saddr) - 0usize]; + ["Offset of field: iphdr__bindgen_ty_1__bindgen_ty_1::daddr"] + [::core::mem::offset_of!(iphdr__bindgen_ty_1__bindgen_ty_1, daddr) - 4usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iphdr__bindgen_ty_1__bindgen_ty_2 { + pub saddr: __be32, + pub daddr: __be32, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of iphdr__bindgen_ty_1__bindgen_ty_2"] + [::core::mem::size_of::() - 8usize]; + ["Alignment of iphdr__bindgen_ty_1__bindgen_ty_2"] + [::core::mem::align_of::() - 4usize]; + ["Offset of field: iphdr__bindgen_ty_1__bindgen_ty_2::saddr"] + [::core::mem::offset_of!(iphdr__bindgen_ty_1__bindgen_ty_2, saddr) - 0usize]; + ["Offset of field: iphdr__bindgen_ty_1__bindgen_ty_2::daddr"] + [::core::mem::offset_of!(iphdr__bindgen_ty_1__bindgen_ty_2, daddr) - 4usize]; +}; +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of iphdr__bindgen_ty_1"][::core::mem::size_of::() - 8usize]; + ["Alignment of iphdr__bindgen_ty_1"][::core::mem::align_of::() - 4usize]; + ["Offset of field: iphdr__bindgen_ty_1::addrs"] + [::core::mem::offset_of!(iphdr__bindgen_ty_1, addrs) - 0usize]; +}; +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of iphdr"][::core::mem::size_of::() - 20usize]; + ["Alignment of iphdr"][::core::mem::align_of::() - 4usize]; + ["Offset of field: iphdr::tos"][::core::mem::offset_of!(iphdr, tos) - 1usize]; + ["Offset of field: iphdr::tot_len"][::core::mem::offset_of!(iphdr, tot_len) - 2usize]; + ["Offset of field: iphdr::id"][::core::mem::offset_of!(iphdr, id) - 4usize]; + ["Offset of field: iphdr::frag_off"][::core::mem::offset_of!(iphdr, frag_off) - 6usize]; + ["Offset of field: iphdr::ttl"][::core::mem::offset_of!(iphdr, ttl) - 8usize]; + ["Offset of field: iphdr::protocol"][::core::mem::offset_of!(iphdr, protocol) - 9usize]; + ["Offset of field: iphdr::check"][::core::mem::offset_of!(iphdr, check) - 10usize]; +}; +impl iphdr { + #[inline] + pub fn ihl(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } + } + #[inline] + pub fn set_ihl(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn ihl_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn version(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } + } + #[inline] + pub fn set_version(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn version_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_version_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let ihl: u8 = unsafe { ::core::mem::transmute(ihl) }; + ihl as u64 + }); + __bindgen_bitfield_unit.set(4usize, 4u8, { + let version: u8 = unsafe { ::core::mem::transmute(version) }; + version as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] pub struct ip_tunnel_parm_kern { pub name: [::core::ffi::c_char; 16usize], pub i_flags: [::core::ffi::c_ulong; 1usize], @@ -62478,11 +62534,10 @@ pub struct irq_chip_regs { pub ack: ::core::ffi::c_ulong, pub eoi: ::core::ffi::c_ulong, pub type_: ::core::ffi::c_ulong, - pub polarity: ::core::ffi::c_ulong, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of irq_chip_regs"][::core::mem::size_of::() - 56usize]; + ["Size of irq_chip_regs"][::core::mem::size_of::() - 48usize]; ["Alignment of irq_chip_regs"][::core::mem::align_of::() - 8usize]; ["Offset of field: irq_chip_regs::enable"] [::core::mem::offset_of!(irq_chip_regs, enable) - 0usize]; @@ -62494,8 +62549,6 @@ const _: () = { ["Offset of field: irq_chip_regs::eoi"][::core::mem::offset_of!(irq_chip_regs, eoi) - 32usize]; ["Offset of field: irq_chip_regs::type_"] [::core::mem::offset_of!(irq_chip_regs, type_) - 40usize]; - ["Offset of field: irq_chip_regs::polarity"] - [::core::mem::offset_of!(irq_chip_regs, polarity) - 48usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -62509,19 +62562,19 @@ pub struct irq_chip_type { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of irq_chip_type"][::core::mem::size_of::() - 344usize]; + ["Size of irq_chip_type"][::core::mem::size_of::() - 336usize]; ["Alignment of irq_chip_type"][::core::mem::align_of::() - 8usize]; ["Offset of field: irq_chip_type::chip"][::core::mem::offset_of!(irq_chip_type, chip) - 0usize]; ["Offset of field: irq_chip_type::regs"] [::core::mem::offset_of!(irq_chip_type, regs) - 264usize]; ["Offset of field: irq_chip_type::handler"] - [::core::mem::offset_of!(irq_chip_type, handler) - 320usize]; + [::core::mem::offset_of!(irq_chip_type, handler) - 312usize]; ["Offset of field: irq_chip_type::type_"] - [::core::mem::offset_of!(irq_chip_type, type_) - 328usize]; + [::core::mem::offset_of!(irq_chip_type, type_) - 320usize]; ["Offset of field: irq_chip_type::mask_cache_priv"] - [::core::mem::offset_of!(irq_chip_type, mask_cache_priv) - 332usize]; + [::core::mem::offset_of!(irq_chip_type, mask_cache_priv) - 324usize]; ["Offset of field: irq_chip_type::mask_cache"] - [::core::mem::offset_of!(irq_chip_type, mask_cache) - 336usize]; + [::core::mem::offset_of!(irq_chip_type, mask_cache) - 328usize]; }; #[repr(C)] pub struct irq_chip_generic { @@ -62536,8 +62589,6 @@ pub struct irq_chip_generic { pub irq_base: ::core::ffi::c_uint, pub irq_cnt: ::core::ffi::c_uint, pub mask_cache: u32_, - pub type_cache: u32_, - pub polarity_cache: u32_, pub wake_enabled: u32_, pub wake_active: u32_, pub num_ct: ::core::ffi::c_uint, @@ -62550,7 +62601,7 @@ pub struct irq_chip_generic { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of irq_chip_generic"][::core::mem::size_of::() - 128usize]; + ["Size of irq_chip_generic"][::core::mem::size_of::() - 120usize]; ["Alignment of irq_chip_generic"][::core::mem::align_of::() - 8usize]; ["Offset of field: irq_chip_generic::lock"] [::core::mem::offset_of!(irq_chip_generic, lock) - 0usize]; @@ -62570,28 +62621,24 @@ const _: () = { [::core::mem::offset_of!(irq_chip_generic, irq_cnt) - 52usize]; ["Offset of field: irq_chip_generic::mask_cache"] [::core::mem::offset_of!(irq_chip_generic, mask_cache) - 56usize]; - ["Offset of field: irq_chip_generic::type_cache"] - [::core::mem::offset_of!(irq_chip_generic, type_cache) - 60usize]; - ["Offset of field: irq_chip_generic::polarity_cache"] - [::core::mem::offset_of!(irq_chip_generic, polarity_cache) - 64usize]; ["Offset of field: irq_chip_generic::wake_enabled"] - [::core::mem::offset_of!(irq_chip_generic, wake_enabled) - 68usize]; + [::core::mem::offset_of!(irq_chip_generic, wake_enabled) - 60usize]; ["Offset of field: irq_chip_generic::wake_active"] - [::core::mem::offset_of!(irq_chip_generic, wake_active) - 72usize]; + [::core::mem::offset_of!(irq_chip_generic, wake_active) - 64usize]; ["Offset of field: irq_chip_generic::num_ct"] - [::core::mem::offset_of!(irq_chip_generic, num_ct) - 76usize]; + [::core::mem::offset_of!(irq_chip_generic, num_ct) - 68usize]; ["Offset of field: irq_chip_generic::private"] - [::core::mem::offset_of!(irq_chip_generic, private) - 80usize]; + [::core::mem::offset_of!(irq_chip_generic, private) - 72usize]; ["Offset of field: irq_chip_generic::installed"] - [::core::mem::offset_of!(irq_chip_generic, installed) - 88usize]; + [::core::mem::offset_of!(irq_chip_generic, installed) - 80usize]; ["Offset of field: irq_chip_generic::unused"] - [::core::mem::offset_of!(irq_chip_generic, unused) - 96usize]; + [::core::mem::offset_of!(irq_chip_generic, unused) - 88usize]; ["Offset of field: irq_chip_generic::domain"] - [::core::mem::offset_of!(irq_chip_generic, domain) - 104usize]; + [::core::mem::offset_of!(irq_chip_generic, domain) - 96usize]; ["Offset of field: irq_chip_generic::list"] - [::core::mem::offset_of!(irq_chip_generic, list) - 112usize]; + [::core::mem::offset_of!(irq_chip_generic, list) - 104usize]; ["Offset of field: irq_chip_generic::chip_types"] - [::core::mem::offset_of!(irq_chip_generic, chip_types) - 128usize]; + [::core::mem::offset_of!(irq_chip_generic, chip_types) - 120usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -62904,12 +62951,14 @@ impl irqaction { #[derive(Debug, Copy, Clone)] pub struct irqstat { pub cnt: ::core::ffi::c_uint, + pub ref_: ::core::ffi::c_uint, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of irqstat"][::core::mem::size_of::() - 4usize]; + ["Size of irqstat"][::core::mem::size_of::() - 8usize]; ["Alignment of irqstat"][::core::mem::align_of::() - 4usize]; ["Offset of field: irqstat::cnt"][::core::mem::offset_of!(irqstat, cnt) - 0usize]; + ["Offset of field: irqstat::ref_"][::core::mem::offset_of!(irqstat, ref_) - 4usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -63245,42 +63294,6 @@ const _: () = { ["Offset of field: k_sigaction::sa"][::core::mem::offset_of!(k_sigaction, sa) - 0usize]; }; #[repr(C)] -#[derive(Copy, Clone)] -pub struct led_trigger { - pub name: *const ::core::ffi::c_char, - pub activate: - ::core::option::Option ::core::ffi::c_int>, - pub deactivate: ::core::option::Option, - pub brightness: led_brightness, - pub trigger_type: *mut led_hw_trigger_type, - pub leddev_list_lock: spinlock_t, - pub led_cdevs: list_head, - pub next_trig: list_head, - pub groups: *mut *const attribute_group, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of led_trigger"][::core::mem::size_of::() - 88usize]; - ["Alignment of led_trigger"][::core::mem::align_of::() - 8usize]; - ["Offset of field: led_trigger::name"][::core::mem::offset_of!(led_trigger, name) - 0usize]; - ["Offset of field: led_trigger::activate"] - [::core::mem::offset_of!(led_trigger, activate) - 8usize]; - ["Offset of field: led_trigger::deactivate"] - [::core::mem::offset_of!(led_trigger, deactivate) - 16usize]; - ["Offset of field: led_trigger::brightness"] - [::core::mem::offset_of!(led_trigger, brightness) - 24usize]; - ["Offset of field: led_trigger::trigger_type"] - [::core::mem::offset_of!(led_trigger, trigger_type) - 32usize]; - ["Offset of field: led_trigger::leddev_list_lock"] - [::core::mem::offset_of!(led_trigger, leddev_list_lock) - 40usize]; - ["Offset of field: led_trigger::led_cdevs"] - [::core::mem::offset_of!(led_trigger, led_cdevs) - 48usize]; - ["Offset of field: led_trigger::next_trig"] - [::core::mem::offset_of!(led_trigger, next_trig) - 64usize]; - ["Offset of field: led_trigger::groups"] - [::core::mem::offset_of!(led_trigger, groups) - 80usize]; -}; -#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct kernel_ethtool_ringparam { pub rx_buf_len: u32_, @@ -64724,26 +64737,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct klp_modinfo { - pub hdr: Elf64_Ehdr, - pub sechdrs: *mut Elf64_Shdr, - pub secstrings: *mut ::core::ffi::c_char, - pub symndx: ::core::ffi::c_uint, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of klp_modinfo"][::core::mem::size_of::() - 88usize]; - ["Alignment of klp_modinfo"][::core::mem::align_of::() - 8usize]; - ["Offset of field: klp_modinfo::hdr"][::core::mem::offset_of!(klp_modinfo, hdr) - 0usize]; - ["Offset of field: klp_modinfo::sechdrs"] - [::core::mem::offset_of!(klp_modinfo, sechdrs) - 64usize]; - ["Offset of field: klp_modinfo::secstrings"] - [::core::mem::offset_of!(klp_modinfo, secstrings) - 72usize]; - ["Offset of field: klp_modinfo::symndx"] - [::core::mem::offset_of!(klp_modinfo, symndx) - 80usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct kmap_ctrl {} #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -64967,6 +64960,30 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct kobj_uevent_env { + pub argv: [*mut ::core::ffi::c_char; 3usize], + pub envp: [*mut ::core::ffi::c_char; 64usize], + pub envp_idx: ::core::ffi::c_int, + pub buf: [::core::ffi::c_char; 2048usize], + pub buflen: ::core::ffi::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of kobj_uevent_env"][::core::mem::size_of::() - 2592usize]; + ["Alignment of kobj_uevent_env"][::core::mem::align_of::() - 8usize]; + ["Offset of field: kobj_uevent_env::argv"] + [::core::mem::offset_of!(kobj_uevent_env, argv) - 0usize]; + ["Offset of field: kobj_uevent_env::envp"] + [::core::mem::offset_of!(kobj_uevent_env, envp) - 24usize]; + ["Offset of field: kobj_uevent_env::envp_idx"] + [::core::mem::offset_of!(kobj_uevent_env, envp_idx) - 536usize]; + ["Offset of field: kobj_uevent_env::buf"] + [::core::mem::offset_of!(kobj_uevent_env, buf) - 540usize]; + ["Offset of field: kobj_uevent_env::buflen"] + [::core::mem::offset_of!(kobj_uevent_env, buflen) - 2588usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct kparam_array { pub max: ::core::ffi::c_uint, pub elemsize: ::core::ffi::c_uint, @@ -65263,27 +65280,6 @@ const _: () = { [::core::mem::offset_of!(l3mdev_ops, l3mdev_link_scope_lookup) - 24usize]; }; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct latency_record { - pub backtrace: [::core::ffi::c_ulong; 12usize], - pub count: ::core::ffi::c_uint, - pub time: ::core::ffi::c_ulong, - pub max: ::core::ffi::c_ulong, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of latency_record"][::core::mem::size_of::() - 120usize]; - ["Alignment of latency_record"][::core::mem::align_of::() - 8usize]; - ["Offset of field: latency_record::backtrace"] - [::core::mem::offset_of!(latency_record, backtrace) - 0usize]; - ["Offset of field: latency_record::count"] - [::core::mem::offset_of!(latency_record, count) - 96usize]; - ["Offset of field: latency_record::time"] - [::core::mem::offset_of!(latency_record, time) - 104usize]; - ["Offset of field: latency_record::max"] - [::core::mem::offset_of!(latency_record, max) - 112usize]; -}; -#[repr(C)] #[derive(Copy, Clone)] pub struct ld_semaphore { pub count: atomic_long_t, @@ -65355,193 +65351,6 @@ const _: () = { [::core::mem::offset_of!(lease_manager_operations, lm_breaker_owns_lease) - 24usize]; }; #[repr(C)] -#[derive(Copy, Clone)] -pub struct led_classdev { - pub name: *const ::core::ffi::c_char, - pub brightness: ::core::ffi::c_uint, - pub max_brightness: ::core::ffi::c_uint, - pub color: ::core::ffi::c_uint, - pub flags: ::core::ffi::c_int, - pub work_flags: ::core::ffi::c_ulong, - pub brightness_set: - ::core::option::Option, - pub brightness_set_blocking: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut led_classdev, arg2: led_brightness) -> ::core::ffi::c_int, - >, - pub brightness_get: - ::core::option::Option led_brightness>, - pub blink_set: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut led_classdev, - arg2: *mut ::core::ffi::c_ulong, - arg3: *mut ::core::ffi::c_ulong, - ) -> ::core::ffi::c_int, - >, - pub pattern_set: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut led_classdev, - arg2: *mut led_pattern, - arg3: u32_, - arg4: ::core::ffi::c_int, - ) -> ::core::ffi::c_int, - >, - pub pattern_clear: - ::core::option::Option ::core::ffi::c_int>, - pub dev: *mut device, - pub groups: *mut *const attribute_group, - pub node: list_head, - pub default_trigger: *const ::core::ffi::c_char, - pub blink_delay_on: ::core::ffi::c_ulong, - pub blink_delay_off: ::core::ffi::c_ulong, - pub blink_timer: timer_list, - pub blink_brightness: ::core::ffi::c_int, - pub new_blink_brightness: ::core::ffi::c_int, - pub flash_resume: ::core::option::Option, - pub set_brightness_work: work_struct, - pub delayed_set_value: ::core::ffi::c_int, - pub delayed_delay_on: ::core::ffi::c_ulong, - pub delayed_delay_off: ::core::ffi::c_ulong, - pub trigger_lock: rw_semaphore, - pub trigger: *mut led_trigger, - pub trig_list: list_head, - pub trigger_data: *mut ::core::ffi::c_void, - pub activated: bool_, - pub trigger_type: *mut led_hw_trigger_type, - pub hw_control_trigger: *const ::core::ffi::c_char, - pub hw_control_is_supported: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut led_classdev, - arg2: ::core::ffi::c_ulong, - ) -> ::core::ffi::c_int, - >, - pub hw_control_set: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut led_classdev, - arg2: ::core::ffi::c_ulong, - ) -> ::core::ffi::c_int, - >, - pub hw_control_get: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut led_classdev, - arg2: *mut ::core::ffi::c_ulong, - ) -> ::core::ffi::c_int, - >, - pub hw_control_get_device: - ::core::option::Option *mut device>, - pub brightness_hw_changed: ::core::ffi::c_int, - pub brightness_hw_changed_kn: *mut kernfs_node, - pub led_access: mutex, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of led_classdev"][::core::mem::size_of::() - 424usize]; - ["Alignment of led_classdev"][::core::mem::align_of::() - 8usize]; - ["Offset of field: led_classdev::name"][::core::mem::offset_of!(led_classdev, name) - 0usize]; - ["Offset of field: led_classdev::brightness"] - [::core::mem::offset_of!(led_classdev, brightness) - 8usize]; - ["Offset of field: led_classdev::max_brightness"] - [::core::mem::offset_of!(led_classdev, max_brightness) - 12usize]; - ["Offset of field: led_classdev::color"] - [::core::mem::offset_of!(led_classdev, color) - 16usize]; - ["Offset of field: led_classdev::flags"] - [::core::mem::offset_of!(led_classdev, flags) - 20usize]; - ["Offset of field: led_classdev::work_flags"] - [::core::mem::offset_of!(led_classdev, work_flags) - 24usize]; - ["Offset of field: led_classdev::brightness_set"] - [::core::mem::offset_of!(led_classdev, brightness_set) - 32usize]; - ["Offset of field: led_classdev::brightness_set_blocking"] - [::core::mem::offset_of!(led_classdev, brightness_set_blocking) - 40usize]; - ["Offset of field: led_classdev::brightness_get"] - [::core::mem::offset_of!(led_classdev, brightness_get) - 48usize]; - ["Offset of field: led_classdev::blink_set"] - [::core::mem::offset_of!(led_classdev, blink_set) - 56usize]; - ["Offset of field: led_classdev::pattern_set"] - [::core::mem::offset_of!(led_classdev, pattern_set) - 64usize]; - ["Offset of field: led_classdev::pattern_clear"] - [::core::mem::offset_of!(led_classdev, pattern_clear) - 72usize]; - ["Offset of field: led_classdev::dev"][::core::mem::offset_of!(led_classdev, dev) - 80usize]; - ["Offset of field: led_classdev::groups"] - [::core::mem::offset_of!(led_classdev, groups) - 88usize]; - ["Offset of field: led_classdev::node"][::core::mem::offset_of!(led_classdev, node) - 96usize]; - ["Offset of field: led_classdev::default_trigger"] - [::core::mem::offset_of!(led_classdev, default_trigger) - 112usize]; - ["Offset of field: led_classdev::blink_delay_on"] - [::core::mem::offset_of!(led_classdev, blink_delay_on) - 120usize]; - ["Offset of field: led_classdev::blink_delay_off"] - [::core::mem::offset_of!(led_classdev, blink_delay_off) - 128usize]; - ["Offset of field: led_classdev::blink_timer"] - [::core::mem::offset_of!(led_classdev, blink_timer) - 136usize]; - ["Offset of field: led_classdev::blink_brightness"] - [::core::mem::offset_of!(led_classdev, blink_brightness) - 176usize]; - ["Offset of field: led_classdev::new_blink_brightness"] - [::core::mem::offset_of!(led_classdev, new_blink_brightness) - 180usize]; - ["Offset of field: led_classdev::flash_resume"] - [::core::mem::offset_of!(led_classdev, flash_resume) - 184usize]; - ["Offset of field: led_classdev::set_brightness_work"] - [::core::mem::offset_of!(led_classdev, set_brightness_work) - 192usize]; - ["Offset of field: led_classdev::delayed_set_value"] - [::core::mem::offset_of!(led_classdev, delayed_set_value) - 224usize]; - ["Offset of field: led_classdev::delayed_delay_on"] - [::core::mem::offset_of!(led_classdev, delayed_delay_on) - 232usize]; - ["Offset of field: led_classdev::delayed_delay_off"] - [::core::mem::offset_of!(led_classdev, delayed_delay_off) - 240usize]; - ["Offset of field: led_classdev::trigger_lock"] - [::core::mem::offset_of!(led_classdev, trigger_lock) - 248usize]; - ["Offset of field: led_classdev::trigger"] - [::core::mem::offset_of!(led_classdev, trigger) - 288usize]; - ["Offset of field: led_classdev::trig_list"] - [::core::mem::offset_of!(led_classdev, trig_list) - 296usize]; - ["Offset of field: led_classdev::trigger_data"] - [::core::mem::offset_of!(led_classdev, trigger_data) - 312usize]; - ["Offset of field: led_classdev::activated"] - [::core::mem::offset_of!(led_classdev, activated) - 320usize]; - ["Offset of field: led_classdev::trigger_type"] - [::core::mem::offset_of!(led_classdev, trigger_type) - 328usize]; - ["Offset of field: led_classdev::hw_control_trigger"] - [::core::mem::offset_of!(led_classdev, hw_control_trigger) - 336usize]; - ["Offset of field: led_classdev::hw_control_is_supported"] - [::core::mem::offset_of!(led_classdev, hw_control_is_supported) - 344usize]; - ["Offset of field: led_classdev::hw_control_set"] - [::core::mem::offset_of!(led_classdev, hw_control_set) - 352usize]; - ["Offset of field: led_classdev::hw_control_get"] - [::core::mem::offset_of!(led_classdev, hw_control_get) - 360usize]; - ["Offset of field: led_classdev::hw_control_get_device"] - [::core::mem::offset_of!(led_classdev, hw_control_get_device) - 368usize]; - ["Offset of field: led_classdev::brightness_hw_changed"] - [::core::mem::offset_of!(led_classdev, brightness_hw_changed) - 376usize]; - ["Offset of field: led_classdev::brightness_hw_changed_kn"] - [::core::mem::offset_of!(led_classdev, brightness_hw_changed_kn) - 384usize]; - ["Offset of field: led_classdev::led_access"] - [::core::mem::offset_of!(led_classdev, led_access) - 392usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct led_hw_trigger_type { - pub dummy: ::core::ffi::c_int, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of led_hw_trigger_type"][::core::mem::size_of::() - 4usize]; - ["Alignment of led_hw_trigger_type"][::core::mem::align_of::() - 4usize]; - ["Offset of field: led_hw_trigger_type::dummy"] - [::core::mem::offset_of!(led_hw_trigger_type, dummy) - 0usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct led_pattern { - pub delta_t: u32_, - pub brightness: ::core::ffi::c_int, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of led_pattern"][::core::mem::size_of::() - 8usize]; - ["Alignment of led_pattern"][::core::mem::align_of::() - 4usize]; - ["Offset of field: led_pattern::delta_t"] - [::core::mem::offset_of!(led_pattern, delta_t) - 0usize]; - ["Offset of field: led_pattern::brightness"] - [::core::mem::offset_of!(led_pattern, brightness) - 4usize]; -}; -#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct linear_range { pub min: ::core::ffi::c_uint, @@ -66157,14 +65966,14 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct zswap_lruvec_state { - pub nr_zswap_protected: atomic_long_t, + pub nr_disk_swapins: atomic_long_t, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of zswap_lruvec_state"][::core::mem::size_of::() - 8usize]; ["Alignment of zswap_lruvec_state"][::core::mem::align_of::() - 8usize]; - ["Offset of field: zswap_lruvec_state::nr_zswap_protected"] - [::core::mem::offset_of!(zswap_lruvec_state, nr_zswap_protected) - 0usize]; + ["Offset of field: zswap_lruvec_state::nr_disk_swapins"] + [::core::mem::offset_of!(zswap_lruvec_state, nr_disk_swapins) - 0usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -66202,49 +66011,34 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct lruvec_stats { - pub state: [::core::ffi::c_long; 27usize], - pub state_local: [::core::ffi::c_long; 27usize], - pub state_pending: [::core::ffi::c_long; 27usize], + pub state: [::core::ffi::c_long; 31usize], + pub state_local: [::core::ffi::c_long; 31usize], + pub state_pending: [::core::ffi::c_long; 31usize], } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of lruvec_stats"][::core::mem::size_of::() - 648usize]; + ["Size of lruvec_stats"][::core::mem::size_of::() - 744usize]; ["Alignment of lruvec_stats"][::core::mem::align_of::() - 8usize]; ["Offset of field: lruvec_stats::state"][::core::mem::offset_of!(lruvec_stats, state) - 0usize]; ["Offset of field: lruvec_stats::state_local"] - [::core::mem::offset_of!(lruvec_stats, state_local) - 216usize]; + [::core::mem::offset_of!(lruvec_stats, state_local) - 248usize]; ["Offset of field: lruvec_stats::state_pending"] - [::core::mem::offset_of!(lruvec_stats, state_pending) - 432usize]; + [::core::mem::offset_of!(lruvec_stats, state_pending) - 496usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct lruvec_stats_percpu { - pub state: [::core::ffi::c_long; 27usize], - pub state_prev: [::core::ffi::c_long; 27usize], + pub state: [::core::ffi::c_long; 31usize], + pub state_prev: [::core::ffi::c_long; 31usize], } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of lruvec_stats_percpu"][::core::mem::size_of::() - 432usize]; + ["Size of lruvec_stats_percpu"][::core::mem::size_of::() - 496usize]; ["Alignment of lruvec_stats_percpu"][::core::mem::align_of::() - 8usize]; ["Offset of field: lruvec_stats_percpu::state"] [::core::mem::offset_of!(lruvec_stats_percpu, state) - 0usize]; ["Offset of field: lruvec_stats_percpu::state_prev"] - [::core::mem::offset_of!(lruvec_stats_percpu, state_prev) - 216usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct lsmcontext { - pub context: *mut ::core::ffi::c_char, - pub len: u32_, - pub id: ::core::ffi::c_int, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of lsmcontext"][::core::mem::size_of::() - 16usize]; - ["Alignment of lsmcontext"][::core::mem::align_of::() - 8usize]; - ["Offset of field: lsmcontext::context"][::core::mem::offset_of!(lsmcontext, context) - 0usize]; - ["Offset of field: lsmcontext::len"][::core::mem::offset_of!(lsmcontext, len) - 8usize]; - ["Offset of field: lsmcontext::id"][::core::mem::offset_of!(lsmcontext, id) - 12usize]; + [::core::mem::offset_of!(lruvec_stats_percpu, state_prev) - 248usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -67108,30 +66902,30 @@ pub struct mdio_device { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of mdio_device"][::core::mem::size_of::() - 872usize]; + ["Size of mdio_device"][::core::mem::size_of::() - 856usize]; ["Alignment of mdio_device"][::core::mem::align_of::() - 8usize]; ["Offset of field: mdio_device::dev"][::core::mem::offset_of!(mdio_device, dev) - 0usize]; - ["Offset of field: mdio_device::bus"][::core::mem::offset_of!(mdio_device, bus) - 768usize]; + ["Offset of field: mdio_device::bus"][::core::mem::offset_of!(mdio_device, bus) - 752usize]; ["Offset of field: mdio_device::modalias"] - [::core::mem::offset_of!(mdio_device, modalias) - 776usize]; + [::core::mem::offset_of!(mdio_device, modalias) - 760usize]; ["Offset of field: mdio_device::bus_match"] - [::core::mem::offset_of!(mdio_device, bus_match) - 808usize]; + [::core::mem::offset_of!(mdio_device, bus_match) - 792usize]; ["Offset of field: mdio_device::device_free"] - [::core::mem::offset_of!(mdio_device, device_free) - 816usize]; + [::core::mem::offset_of!(mdio_device, device_free) - 800usize]; ["Offset of field: mdio_device::device_remove"] - [::core::mem::offset_of!(mdio_device, device_remove) - 824usize]; - ["Offset of field: mdio_device::addr"][::core::mem::offset_of!(mdio_device, addr) - 832usize]; - ["Offset of field: mdio_device::flags"][::core::mem::offset_of!(mdio_device, flags) - 836usize]; + [::core::mem::offset_of!(mdio_device, device_remove) - 808usize]; + ["Offset of field: mdio_device::addr"][::core::mem::offset_of!(mdio_device, addr) - 816usize]; + ["Offset of field: mdio_device::flags"][::core::mem::offset_of!(mdio_device, flags) - 820usize]; ["Offset of field: mdio_device::reset_state"] - [::core::mem::offset_of!(mdio_device, reset_state) - 840usize]; + [::core::mem::offset_of!(mdio_device, reset_state) - 824usize]; ["Offset of field: mdio_device::reset_gpio"] - [::core::mem::offset_of!(mdio_device, reset_gpio) - 848usize]; + [::core::mem::offset_of!(mdio_device, reset_gpio) - 832usize]; ["Offset of field: mdio_device::reset_ctrl"] - [::core::mem::offset_of!(mdio_device, reset_ctrl) - 856usize]; + [::core::mem::offset_of!(mdio_device, reset_ctrl) - 840usize]; ["Offset of field: mdio_device::reset_assert_delay"] - [::core::mem::offset_of!(mdio_device, reset_assert_delay) - 864usize]; + [::core::mem::offset_of!(mdio_device, reset_assert_delay) - 848usize]; ["Offset of field: mdio_device::reset_deassert_delay"] - [::core::mem::offset_of!(mdio_device, reset_deassert_delay) - 868usize]; + [::core::mem::offset_of!(mdio_device, reset_deassert_delay) - 852usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -67256,9 +67050,12 @@ pub struct mem_cgroup { pub css: cgroup_subsys_state, pub id: mem_cgroup_id, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, pub memory: page_counter, pub __bindgen_anon_1: mem_cgroup__bindgen_ty_1, + pub memory_peaks: list_head, + pub swap_peaks: list_head, + pub peaks_lock: spinlock_t, pub high_work: work_struct, pub zswap_max: ::core::ffi::c_ulong, pub zswap_writeback: bool_, @@ -67284,18 +67081,18 @@ pub struct mem_cgroup { pub mm_list: lru_gen_mm_list, pub nodeinfo: __IncompleteArrayField<*mut mem_cgroup_per_node>, pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, } #[repr(C)] pub struct mem_cgroup__bindgen_ty_1 { pub swap: __BindgenUnionField, pub memsw: __BindgenUnionField, - pub bindgen_union_field: [u64; 24usize], + pub bindgen_union_field: [u64; 32usize], } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of mem_cgroup__bindgen_ty_1"] - [::core::mem::size_of::() - 192usize]; + [::core::mem::size_of::() - 256usize]; ["Alignment of mem_cgroup__bindgen_ty_1"] [::core::mem::align_of::() - 8usize]; ["Offset of field: mem_cgroup__bindgen_ty_1::swap"] @@ -67305,64 +67102,77 @@ const _: () = { }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of mem_cgroup"][::core::mem::size_of::() - 1600usize]; + ["Size of mem_cgroup"][::core::mem::size_of::() - 1728usize]; ["Alignment of mem_cgroup"][::core::mem::align_of::() - 8usize]; ["Offset of field: mem_cgroup::css"][::core::mem::offset_of!(mem_cgroup, css) - 0usize]; - ["Offset of field: mem_cgroup::id"][::core::mem::offset_of!(mem_cgroup, id) - 200usize]; + ["Offset of field: mem_cgroup::id"][::core::mem::offset_of!(mem_cgroup, id) - 208usize]; ["Offset of field: mem_cgroup::memory"][::core::mem::offset_of!(mem_cgroup, memory) - 256usize]; + ["Offset of field: mem_cgroup::memory_peaks"] + [::core::mem::offset_of!(mem_cgroup, memory_peaks) - 768usize]; + ["Offset of field: mem_cgroup::swap_peaks"] + [::core::mem::offset_of!(mem_cgroup, swap_peaks) - 784usize]; + ["Offset of field: mem_cgroup::peaks_lock"] + [::core::mem::offset_of!(mem_cgroup, peaks_lock) - 800usize]; ["Offset of field: mem_cgroup::high_work"] - [::core::mem::offset_of!(mem_cgroup, high_work) - 640usize]; + [::core::mem::offset_of!(mem_cgroup, high_work) - 808usize]; ["Offset of field: mem_cgroup::zswap_max"] - [::core::mem::offset_of!(mem_cgroup, zswap_max) - 672usize]; + [::core::mem::offset_of!(mem_cgroup, zswap_max) - 840usize]; ["Offset of field: mem_cgroup::zswap_writeback"] - [::core::mem::offset_of!(mem_cgroup, zswap_writeback) - 680usize]; + [::core::mem::offset_of!(mem_cgroup, zswap_writeback) - 848usize]; ["Offset of field: mem_cgroup::vmpressure"] - [::core::mem::offset_of!(mem_cgroup, vmpressure) - 688usize]; + [::core::mem::offset_of!(mem_cgroup, vmpressure) - 856usize]; ["Offset of field: mem_cgroup::oom_group"] - [::core::mem::offset_of!(mem_cgroup, oom_group) - 808usize]; + [::core::mem::offset_of!(mem_cgroup, oom_group) - 976usize]; ["Offset of field: mem_cgroup::swappiness"] - [::core::mem::offset_of!(mem_cgroup, swappiness) - 812usize]; + [::core::mem::offset_of!(mem_cgroup, swappiness) - 980usize]; ["Offset of field: mem_cgroup::events_file"] - [::core::mem::offset_of!(mem_cgroup, events_file) - 816usize]; + [::core::mem::offset_of!(mem_cgroup, events_file) - 984usize]; ["Offset of field: mem_cgroup::events_local_file"] - [::core::mem::offset_of!(mem_cgroup, events_local_file) - 872usize]; + [::core::mem::offset_of!(mem_cgroup, events_local_file) - 1040usize]; ["Offset of field: mem_cgroup::swap_events_file"] - [::core::mem::offset_of!(mem_cgroup, swap_events_file) - 928usize]; + [::core::mem::offset_of!(mem_cgroup, swap_events_file) - 1096usize]; ["Offset of field: mem_cgroup::vmstats"] - [::core::mem::offset_of!(mem_cgroup, vmstats) - 984usize]; + [::core::mem::offset_of!(mem_cgroup, vmstats) - 1152usize]; ["Offset of field: mem_cgroup::memory_events"] - [::core::mem::offset_of!(mem_cgroup, memory_events) - 992usize]; + [::core::mem::offset_of!(mem_cgroup, memory_events) - 1160usize]; ["Offset of field: mem_cgroup::memory_events_local"] - [::core::mem::offset_of!(mem_cgroup, memory_events_local) - 1064usize]; + [::core::mem::offset_of!(mem_cgroup, memory_events_local) - 1232usize]; ["Offset of field: mem_cgroup::socket_pressure"] - [::core::mem::offset_of!(mem_cgroup, socket_pressure) - 1136usize]; + [::core::mem::offset_of!(mem_cgroup, socket_pressure) - 1304usize]; ["Offset of field: mem_cgroup::kmemcg_id"] - [::core::mem::offset_of!(mem_cgroup, kmemcg_id) - 1144usize]; - ["Offset of field: mem_cgroup::objcg"][::core::mem::offset_of!(mem_cgroup, objcg) - 1152usize]; + [::core::mem::offset_of!(mem_cgroup, kmemcg_id) - 1312usize]; + ["Offset of field: mem_cgroup::objcg"][::core::mem::offset_of!(mem_cgroup, objcg) - 1320usize]; ["Offset of field: mem_cgroup::orig_objcg"] - [::core::mem::offset_of!(mem_cgroup, orig_objcg) - 1160usize]; + [::core::mem::offset_of!(mem_cgroup, orig_objcg) - 1328usize]; ["Offset of field: mem_cgroup::objcg_list"] - [::core::mem::offset_of!(mem_cgroup, objcg_list) - 1168usize]; + [::core::mem::offset_of!(mem_cgroup, objcg_list) - 1336usize]; ["Offset of field: mem_cgroup::vmstats_percpu"] - [::core::mem::offset_of!(mem_cgroup, vmstats_percpu) - 1184usize]; + [::core::mem::offset_of!(mem_cgroup, vmstats_percpu) - 1352usize]; ["Offset of field: mem_cgroup::cgwb_list"] - [::core::mem::offset_of!(mem_cgroup, cgwb_list) - 1192usize]; + [::core::mem::offset_of!(mem_cgroup, cgwb_list) - 1360usize]; ["Offset of field: mem_cgroup::cgwb_domain"] - [::core::mem::offset_of!(mem_cgroup, cgwb_domain) - 1208usize]; + [::core::mem::offset_of!(mem_cgroup, cgwb_domain) - 1376usize]; ["Offset of field: mem_cgroup::cgwb_frn"] - [::core::mem::offset_of!(mem_cgroup, cgwb_frn) - 1328usize]; + [::core::mem::offset_of!(mem_cgroup, cgwb_frn) - 1496usize]; ["Offset of field: mem_cgroup::deferred_split_queue"] - [::core::mem::offset_of!(mem_cgroup, deferred_split_queue) - 1488usize]; + [::core::mem::offset_of!(mem_cgroup, deferred_split_queue) - 1656usize]; ["Offset of field: mem_cgroup::mm_list"] - [::core::mem::offset_of!(mem_cgroup, mm_list) - 1520usize]; + [::core::mem::offset_of!(mem_cgroup, mm_list) - 1688usize]; ["Offset of field: mem_cgroup::nodeinfo"] - [::core::mem::offset_of!(mem_cgroup, nodeinfo) - 1544usize]; + [::core::mem::offset_of!(mem_cgroup, nodeinfo) - 1712usize]; }; +impl mem_cgroup { + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct mem_cgroup_reclaim_iter { pub position: *mut mem_cgroup, - pub generation: ::core::ffi::c_uint, + pub generation: atomic_t, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -67467,32 +67277,32 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct memcg_vmstats { - pub state: [::core::ffi::c_long; 34usize], - pub events: [::core::ffi::c_ulong; 22usize], - pub state_local: [::core::ffi::c_long; 34usize], - pub events_local: [::core::ffi::c_ulong; 22usize], - pub state_pending: [::core::ffi::c_long; 34usize], - pub events_pending: [::core::ffi::c_ulong; 22usize], + pub state: [::core::ffi::c_long; 38usize], + pub events: [::core::ffi::c_ulong; 25usize], + pub state_local: [::core::ffi::c_long; 38usize], + pub events_local: [::core::ffi::c_ulong; 25usize], + pub state_pending: [::core::ffi::c_long; 38usize], + pub events_pending: [::core::ffi::c_ulong; 25usize], pub stats_updates: atomic64_t, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of memcg_vmstats"][::core::mem::size_of::() - 1352usize]; + ["Size of memcg_vmstats"][::core::mem::size_of::() - 1520usize]; ["Alignment of memcg_vmstats"][::core::mem::align_of::() - 8usize]; ["Offset of field: memcg_vmstats::state"] [::core::mem::offset_of!(memcg_vmstats, state) - 0usize]; ["Offset of field: memcg_vmstats::events"] - [::core::mem::offset_of!(memcg_vmstats, events) - 272usize]; + [::core::mem::offset_of!(memcg_vmstats, events) - 304usize]; ["Offset of field: memcg_vmstats::state_local"] - [::core::mem::offset_of!(memcg_vmstats, state_local) - 448usize]; + [::core::mem::offset_of!(memcg_vmstats, state_local) - 504usize]; ["Offset of field: memcg_vmstats::events_local"] - [::core::mem::offset_of!(memcg_vmstats, events_local) - 720usize]; + [::core::mem::offset_of!(memcg_vmstats, events_local) - 808usize]; ["Offset of field: memcg_vmstats::state_pending"] - [::core::mem::offset_of!(memcg_vmstats, state_pending) - 896usize]; + [::core::mem::offset_of!(memcg_vmstats, state_pending) - 1008usize]; ["Offset of field: memcg_vmstats::events_pending"] - [::core::mem::offset_of!(memcg_vmstats, events_pending) - 1168usize]; + [::core::mem::offset_of!(memcg_vmstats, events_pending) - 1312usize]; ["Offset of field: memcg_vmstats::stats_updates"] - [::core::mem::offset_of!(memcg_vmstats, stats_updates) - 1344usize]; + [::core::mem::offset_of!(memcg_vmstats, stats_updates) - 1512usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -67500,18 +67310,16 @@ pub struct memcg_vmstats_percpu { pub stats_updates: ::core::ffi::c_uint, pub parent: *mut memcg_vmstats_percpu, pub vmstats: *mut memcg_vmstats, - pub state: [::core::ffi::c_long; 34usize], - pub events: [::core::ffi::c_ulong; 22usize], - pub state_prev: [::core::ffi::c_long; 34usize], - pub events_prev: [::core::ffi::c_ulong; 22usize], - pub nr_page_events: ::core::ffi::c_ulong, - pub targets: [::core::ffi::c_ulong; 2usize], + pub state: [::core::ffi::c_long; 38usize], + pub events: [::core::ffi::c_ulong; 25usize], + pub state_prev: [::core::ffi::c_long; 38usize], + pub events_prev: [::core::ffi::c_ulong; 25usize], pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of memcg_vmstats_percpu"][::core::mem::size_of::() - 960usize]; + ["Size of memcg_vmstats_percpu"][::core::mem::size_of::() - 1088usize]; ["Alignment of memcg_vmstats_percpu"][::core::mem::align_of::() - 8usize]; ["Offset of field: memcg_vmstats_percpu::stats_updates"] [::core::mem::offset_of!(memcg_vmstats_percpu, stats_updates) - 0usize]; @@ -67522,23 +67330,12 @@ const _: () = { ["Offset of field: memcg_vmstats_percpu::state"] [::core::mem::offset_of!(memcg_vmstats_percpu, state) - 24usize]; ["Offset of field: memcg_vmstats_percpu::events"] - [::core::mem::offset_of!(memcg_vmstats_percpu, events) - 296usize]; + [::core::mem::offset_of!(memcg_vmstats_percpu, events) - 328usize]; ["Offset of field: memcg_vmstats_percpu::state_prev"] - [::core::mem::offset_of!(memcg_vmstats_percpu, state_prev) - 472usize]; + [::core::mem::offset_of!(memcg_vmstats_percpu, state_prev) - 528usize]; ["Offset of field: memcg_vmstats_percpu::events_prev"] - [::core::mem::offset_of!(memcg_vmstats_percpu, events_prev) - 744usize]; - ["Offset of field: memcg_vmstats_percpu::nr_page_events"] - [::core::mem::offset_of!(memcg_vmstats_percpu, nr_page_events) - 920usize]; - ["Offset of field: memcg_vmstats_percpu::targets"] - [::core::mem::offset_of!(memcg_vmstats_percpu, targets) - 928usize]; + [::core::mem::offset_of!(memcg_vmstats_percpu, events_prev) - 832usize]; }; -impl memcg_vmstats_percpu { - #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); - __bindgen_bitfield_unit - } -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct memory_failure_stats { @@ -67574,7 +67371,7 @@ pub struct memory_tier { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of memory_tier"][::core::mem::size_of::() - 936usize]; + ["Size of memory_tier"][::core::mem::size_of::() - 920usize]; ["Alignment of memory_tier"][::core::mem::align_of::() - 8usize]; ["Offset of field: memory_tier::list"][::core::mem::offset_of!(memory_tier, list) - 0usize]; ["Offset of field: memory_tier::memory_types"] @@ -67583,7 +67380,7 @@ const _: () = { [::core::mem::offset_of!(memory_tier, adistance_start) - 32usize]; ["Offset of field: memory_tier::dev"][::core::mem::offset_of!(memory_tier, dev) - 40usize]; ["Offset of field: memory_tier::lower_tier_mask"] - [::core::mem::offset_of!(memory_tier, lower_tier_mask) - 808usize]; + [::core::mem::offset_of!(memory_tier, lower_tier_mask) - 792usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -67742,7 +67539,7 @@ pub const mii_bus_MDIOBUS_RELEASED: mii_bus__bindgen_ty_1 = 4; pub type mii_bus__bindgen_ty_1 = ::core::ffi::c_uint; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of mii_bus"][::core::mem::size_of::() - 2664usize]; + ["Size of mii_bus"][::core::mem::size_of::() - 2648usize]; ["Alignment of mii_bus"][::core::mem::align_of::() - 8usize]; ["Offset of field: mii_bus::owner"][::core::mem::offset_of!(mii_bus, owner) - 0usize]; ["Offset of field: mii_bus::name"][::core::mem::offset_of!(mii_bus, name) - 8usize]; @@ -67759,20 +67556,20 @@ const _: () = { ["Offset of field: mii_bus::parent"][::core::mem::offset_of!(mii_bus, parent) - 1184usize]; ["Offset of field: mii_bus::state"][::core::mem::offset_of!(mii_bus, state) - 1192usize]; ["Offset of field: mii_bus::dev"][::core::mem::offset_of!(mii_bus, dev) - 1200usize]; - ["Offset of field: mii_bus::mdio_map"][::core::mem::offset_of!(mii_bus, mdio_map) - 1968usize]; - ["Offset of field: mii_bus::phy_mask"][::core::mem::offset_of!(mii_bus, phy_mask) - 2224usize]; + ["Offset of field: mii_bus::mdio_map"][::core::mem::offset_of!(mii_bus, mdio_map) - 1952usize]; + ["Offset of field: mii_bus::phy_mask"][::core::mem::offset_of!(mii_bus, phy_mask) - 2208usize]; ["Offset of field: mii_bus::phy_ignore_ta_mask"] - [::core::mem::offset_of!(mii_bus, phy_ignore_ta_mask) - 2228usize]; - ["Offset of field: mii_bus::irq"][::core::mem::offset_of!(mii_bus, irq) - 2232usize]; + [::core::mem::offset_of!(mii_bus, phy_ignore_ta_mask) - 2212usize]; + ["Offset of field: mii_bus::irq"][::core::mem::offset_of!(mii_bus, irq) - 2216usize]; ["Offset of field: mii_bus::reset_delay_us"] - [::core::mem::offset_of!(mii_bus, reset_delay_us) - 2360usize]; + [::core::mem::offset_of!(mii_bus, reset_delay_us) - 2344usize]; ["Offset of field: mii_bus::reset_post_delay_us"] - [::core::mem::offset_of!(mii_bus, reset_post_delay_us) - 2364usize]; + [::core::mem::offset_of!(mii_bus, reset_post_delay_us) - 2348usize]; ["Offset of field: mii_bus::reset_gpiod"] - [::core::mem::offset_of!(mii_bus, reset_gpiod) - 2368usize]; + [::core::mem::offset_of!(mii_bus, reset_gpiod) - 2352usize]; ["Offset of field: mii_bus::shared_lock"] - [::core::mem::offset_of!(mii_bus, shared_lock) - 2376usize]; - ["Offset of field: mii_bus::shared"][::core::mem::offset_of!(mii_bus, shared) - 2408usize]; + [::core::mem::offset_of!(mii_bus, shared_lock) - 2360usize]; + ["Offset of field: mii_bus::shared"][::core::mem::offset_of!(mii_bus, shared) - 2392usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -68166,31 +67963,47 @@ const _: () = { #[repr(C)] #[derive(Copy, Clone)] pub struct uid_gid_map { - pub nr_extents: u32_, pub __bindgen_anon_1: uid_gid_map__bindgen_ty_1, } #[repr(C)] #[derive(Copy, Clone)] pub union uid_gid_map__bindgen_ty_1 { - pub extent: [uid_gid_extent; 5usize], pub __bindgen_anon_1: uid_gid_map__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: uid_gid_map__bindgen_ty_1__bindgen_ty_2, } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct uid_gid_map__bindgen_ty_1__bindgen_ty_1 { - pub forward: *mut uid_gid_extent, - pub reverse: *mut uid_gid_extent, + pub extent: [uid_gid_extent; 5usize], + pub nr_extents: u32_, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of uid_gid_map__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::size_of::() - 16usize]; + [::core::mem::size_of::() - 64usize]; ["Alignment of uid_gid_map__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: uid_gid_map__bindgen_ty_1__bindgen_ty_1::forward"] - [::core::mem::offset_of!(uid_gid_map__bindgen_ty_1__bindgen_ty_1, forward) - 0usize]; - ["Offset of field: uid_gid_map__bindgen_ty_1__bindgen_ty_1::reverse"] - [::core::mem::offset_of!(uid_gid_map__bindgen_ty_1__bindgen_ty_1, reverse) - 8usize]; + [::core::mem::align_of::() - 4usize]; + ["Offset of field: uid_gid_map__bindgen_ty_1__bindgen_ty_1::extent"] + [::core::mem::offset_of!(uid_gid_map__bindgen_ty_1__bindgen_ty_1, extent) - 0usize]; + ["Offset of field: uid_gid_map__bindgen_ty_1__bindgen_ty_1::nr_extents"] + [::core::mem::offset_of!(uid_gid_map__bindgen_ty_1__bindgen_ty_1, nr_extents) - 60usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uid_gid_map__bindgen_ty_1__bindgen_ty_2 { + pub forward: *mut uid_gid_extent, + pub reverse: *mut uid_gid_extent, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of uid_gid_map__bindgen_ty_1__bindgen_ty_2"] + [::core::mem::size_of::() - 16usize]; + ["Alignment of uid_gid_map__bindgen_ty_1__bindgen_ty_2"] + [::core::mem::align_of::() - 8usize]; + ["Offset of field: uid_gid_map__bindgen_ty_1__bindgen_ty_2::forward"] + [::core::mem::offset_of!(uid_gid_map__bindgen_ty_1__bindgen_ty_2, forward) - 0usize]; + ["Offset of field: uid_gid_map__bindgen_ty_1__bindgen_ty_2::reverse"] + [::core::mem::offset_of!(uid_gid_map__bindgen_ty_1__bindgen_ty_2, reverse) - 8usize]; }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -68198,15 +68011,11 @@ const _: () = { [::core::mem::size_of::() - 64usize]; ["Alignment of uid_gid_map__bindgen_ty_1"] [::core::mem::align_of::() - 8usize]; - ["Offset of field: uid_gid_map__bindgen_ty_1::extent"] - [::core::mem::offset_of!(uid_gid_map__bindgen_ty_1, extent) - 0usize]; }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of uid_gid_map"][::core::mem::size_of::() - 72usize]; + ["Size of uid_gid_map"][::core::mem::size_of::() - 64usize]; ["Alignment of uid_gid_map"][::core::mem::align_of::() - 8usize]; - ["Offset of field: uid_gid_map::nr_extents"] - [::core::mem::offset_of!(uid_gid_map, nr_extents) - 0usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -68217,11 +68026,11 @@ pub struct mnt_idmap { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of mnt_idmap"][::core::mem::size_of::() - 152usize]; + ["Size of mnt_idmap"][::core::mem::size_of::() - 136usize]; ["Alignment of mnt_idmap"][::core::mem::align_of::() - 8usize]; ["Offset of field: mnt_idmap::uid_map"][::core::mem::offset_of!(mnt_idmap, uid_map) - 0usize]; - ["Offset of field: mnt_idmap::gid_map"][::core::mem::offset_of!(mnt_idmap, gid_map) - 72usize]; - ["Offset of field: mnt_idmap::count"][::core::mem::offset_of!(mnt_idmap, count) - 144usize]; + ["Offset of field: mnt_idmap::gid_map"][::core::mem::offset_of!(mnt_idmap, gid_map) - 64usize]; + ["Offset of field: mnt_idmap::count"][::core::mem::offset_of!(mnt_idmap, count) - 128usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -68282,11 +68091,21 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct mod_arch_specific {} +pub struct mod_arch_specific { + pub num_orcs: ::core::ffi::c_uint, + pub orc_unwind_ip: *mut ::core::ffi::c_int, + pub orc_unwind: *mut orc_entry, +} #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of mod_arch_specific"][::core::mem::size_of::() - 0usize]; - ["Alignment of mod_arch_specific"][::core::mem::align_of::() - 1usize]; + ["Size of mod_arch_specific"][::core::mem::size_of::() - 24usize]; + ["Alignment of mod_arch_specific"][::core::mem::align_of::() - 8usize]; + ["Offset of field: mod_arch_specific::num_orcs"] + [::core::mem::offset_of!(mod_arch_specific, num_orcs) - 0usize]; + ["Offset of field: mod_arch_specific::orc_unwind_ip"] + [::core::mem::offset_of!(mod_arch_specific, orc_unwind_ip) - 8usize]; + ["Offset of field: mod_arch_specific::orc_unwind"] + [::core::mem::offset_of!(mod_arch_specific, orc_unwind) - 16usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -68366,6 +68185,7 @@ pub struct module { pub state: module_state, pub list: list_head, pub name: [::core::ffi::c_char; 56usize], + pub build_id: [::core::ffi::c_uchar; 20usize], pub mkobj: module_kobject, pub modinfo_attrs: *mut module_attribute, pub version: *const ::core::ffi::c_char, @@ -68386,6 +68206,8 @@ pub struct module { pub num_exentries: ::core::ffi::c_uint, pub extable: *mut exception_table_entry, pub init: ::core::option::Option ::core::ffi::c_int>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, pub mem: [module_memory; 7usize], pub arch: mod_arch_specific, pub taints: ::core::ffi::c_ulong, @@ -68427,138 +68249,152 @@ pub struct module { pub num_kprobe_blacklist: ::core::ffi::c_uint, pub num_static_call_sites: ::core::ffi::c_int, pub static_call_sites: *mut static_call_site, - pub klp: bool_, - pub klp_alive: bool_, - pub klp_info: *mut klp_modinfo, + pub printk_index_size: ::core::ffi::c_uint, + pub printk_index_start: *mut *mut pi_entry, pub source_list: list_head, pub target_list: list_head, pub exit: ::core::option::Option, pub refcnt: atomic_t, + pub its_num_pages: ::core::ffi::c_int, + pub its_page_array: *mut *mut ::core::ffi::c_void, pub ei_funcs: *mut error_injection_entry, pub num_ei_funcs: ::core::ffi::c_uint, pub dyndbg_info: _ddebug_info, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of module"][::core::mem::size_of::() - 1280usize]; + ["Size of module"][::core::mem::size_of::() - 1344usize]; ["Alignment of module"][::core::mem::align_of::() - 8usize]; ["Offset of field: module::state"][::core::mem::offset_of!(module, state) - 0usize]; ["Offset of field: module::list"][::core::mem::offset_of!(module, list) - 8usize]; ["Offset of field: module::name"][::core::mem::offset_of!(module, name) - 24usize]; - ["Offset of field: module::mkobj"][::core::mem::offset_of!(module, mkobj) - 80usize]; + ["Offset of field: module::build_id"][::core::mem::offset_of!(module, build_id) - 80usize]; + ["Offset of field: module::mkobj"][::core::mem::offset_of!(module, mkobj) - 104usize]; ["Offset of field: module::modinfo_attrs"] - [::core::mem::offset_of!(module, modinfo_attrs) - 176usize]; - ["Offset of field: module::version"][::core::mem::offset_of!(module, version) - 184usize]; - ["Offset of field: module::srcversion"][::core::mem::offset_of!(module, srcversion) - 192usize]; + [::core::mem::offset_of!(module, modinfo_attrs) - 200usize]; + ["Offset of field: module::version"][::core::mem::offset_of!(module, version) - 208usize]; + ["Offset of field: module::srcversion"][::core::mem::offset_of!(module, srcversion) - 216usize]; ["Offset of field: module::holders_dir"] - [::core::mem::offset_of!(module, holders_dir) - 200usize]; - ["Offset of field: module::syms"][::core::mem::offset_of!(module, syms) - 208usize]; - ["Offset of field: module::crcs"][::core::mem::offset_of!(module, crcs) - 216usize]; - ["Offset of field: module::num_syms"][::core::mem::offset_of!(module, num_syms) - 224usize]; - ["Offset of field: module::param_lock"][::core::mem::offset_of!(module, param_lock) - 232usize]; - ["Offset of field: module::kp"][::core::mem::offset_of!(module, kp) - 264usize]; - ["Offset of field: module::num_kp"][::core::mem::offset_of!(module, num_kp) - 272usize]; + [::core::mem::offset_of!(module, holders_dir) - 224usize]; + ["Offset of field: module::syms"][::core::mem::offset_of!(module, syms) - 232usize]; + ["Offset of field: module::crcs"][::core::mem::offset_of!(module, crcs) - 240usize]; + ["Offset of field: module::num_syms"][::core::mem::offset_of!(module, num_syms) - 248usize]; + ["Offset of field: module::param_lock"][::core::mem::offset_of!(module, param_lock) - 256usize]; + ["Offset of field: module::kp"][::core::mem::offset_of!(module, kp) - 288usize]; + ["Offset of field: module::num_kp"][::core::mem::offset_of!(module, num_kp) - 296usize]; ["Offset of field: module::num_gpl_syms"] - [::core::mem::offset_of!(module, num_gpl_syms) - 276usize]; - ["Offset of field: module::gpl_syms"][::core::mem::offset_of!(module, gpl_syms) - 280usize]; - ["Offset of field: module::gpl_crcs"][::core::mem::offset_of!(module, gpl_crcs) - 288usize]; + [::core::mem::offset_of!(module, num_gpl_syms) - 300usize]; + ["Offset of field: module::gpl_syms"][::core::mem::offset_of!(module, gpl_syms) - 304usize]; + ["Offset of field: module::gpl_crcs"][::core::mem::offset_of!(module, gpl_crcs) - 312usize]; ["Offset of field: module::using_gplonly_symbols"] - [::core::mem::offset_of!(module, using_gplonly_symbols) - 296usize]; - ["Offset of field: module::sig_ok"][::core::mem::offset_of!(module, sig_ok) - 297usize]; + [::core::mem::offset_of!(module, using_gplonly_symbols) - 320usize]; + ["Offset of field: module::sig_ok"][::core::mem::offset_of!(module, sig_ok) - 321usize]; ["Offset of field: module::async_probe_requested"] - [::core::mem::offset_of!(module, async_probe_requested) - 298usize]; + [::core::mem::offset_of!(module, async_probe_requested) - 322usize]; ["Offset of field: module::num_exentries"] - [::core::mem::offset_of!(module, num_exentries) - 300usize]; - ["Offset of field: module::extable"][::core::mem::offset_of!(module, extable) - 304usize]; - ["Offset of field: module::init"][::core::mem::offset_of!(module, init) - 312usize]; - ["Offset of field: module::mem"][::core::mem::offset_of!(module, mem) - 320usize]; - ["Offset of field: module::arch"][::core::mem::offset_of!(module, arch) - 824usize]; - ["Offset of field: module::taints"][::core::mem::offset_of!(module, taints) - 824usize]; - ["Offset of field: module::num_bugs"][::core::mem::offset_of!(module, num_bugs) - 832usize]; - ["Offset of field: module::bug_list"][::core::mem::offset_of!(module, bug_list) - 840usize]; - ["Offset of field: module::bug_table"][::core::mem::offset_of!(module, bug_table) - 856usize]; - ["Offset of field: module::kallsyms"][::core::mem::offset_of!(module, kallsyms) - 864usize]; + [::core::mem::offset_of!(module, num_exentries) - 324usize]; + ["Offset of field: module::extable"][::core::mem::offset_of!(module, extable) - 328usize]; + ["Offset of field: module::init"][::core::mem::offset_of!(module, init) - 336usize]; + ["Offset of field: module::mem"][::core::mem::offset_of!(module, mem) - 384usize]; + ["Offset of field: module::arch"][::core::mem::offset_of!(module, arch) - 888usize]; + ["Offset of field: module::taints"][::core::mem::offset_of!(module, taints) - 912usize]; + ["Offset of field: module::num_bugs"][::core::mem::offset_of!(module, num_bugs) - 920usize]; + ["Offset of field: module::bug_list"][::core::mem::offset_of!(module, bug_list) - 928usize]; + ["Offset of field: module::bug_table"][::core::mem::offset_of!(module, bug_table) - 944usize]; + ["Offset of field: module::kallsyms"][::core::mem::offset_of!(module, kallsyms) - 952usize]; ["Offset of field: module::core_kallsyms"] - [::core::mem::offset_of!(module, core_kallsyms) - 872usize]; - ["Offset of field: module::sect_attrs"][::core::mem::offset_of!(module, sect_attrs) - 904usize]; + [::core::mem::offset_of!(module, core_kallsyms) - 960usize]; + ["Offset of field: module::sect_attrs"][::core::mem::offset_of!(module, sect_attrs) - 992usize]; ["Offset of field: module::notes_attrs"] - [::core::mem::offset_of!(module, notes_attrs) - 912usize]; - ["Offset of field: module::args"][::core::mem::offset_of!(module, args) - 920usize]; - ["Offset of field: module::percpu"][::core::mem::offset_of!(module, percpu) - 928usize]; + [::core::mem::offset_of!(module, notes_attrs) - 1000usize]; + ["Offset of field: module::args"][::core::mem::offset_of!(module, args) - 1008usize]; + ["Offset of field: module::percpu"][::core::mem::offset_of!(module, percpu) - 1016usize]; ["Offset of field: module::percpu_size"] - [::core::mem::offset_of!(module, percpu_size) - 936usize]; + [::core::mem::offset_of!(module, percpu_size) - 1024usize]; ["Offset of field: module::noinstr_text_start"] - [::core::mem::offset_of!(module, noinstr_text_start) - 944usize]; + [::core::mem::offset_of!(module, noinstr_text_start) - 1032usize]; ["Offset of field: module::noinstr_text_size"] - [::core::mem::offset_of!(module, noinstr_text_size) - 952usize]; + [::core::mem::offset_of!(module, noinstr_text_size) - 1040usize]; ["Offset of field: module::num_tracepoints"] - [::core::mem::offset_of!(module, num_tracepoints) - 956usize]; + [::core::mem::offset_of!(module, num_tracepoints) - 1044usize]; ["Offset of field: module::tracepoints_ptrs"] - [::core::mem::offset_of!(module, tracepoints_ptrs) - 960usize]; + [::core::mem::offset_of!(module, tracepoints_ptrs) - 1048usize]; ["Offset of field: module::num_srcu_structs"] - [::core::mem::offset_of!(module, num_srcu_structs) - 968usize]; + [::core::mem::offset_of!(module, num_srcu_structs) - 1056usize]; ["Offset of field: module::srcu_struct_ptrs"] - [::core::mem::offset_of!(module, srcu_struct_ptrs) - 976usize]; + [::core::mem::offset_of!(module, srcu_struct_ptrs) - 1064usize]; ["Offset of field: module::num_bpf_raw_events"] - [::core::mem::offset_of!(module, num_bpf_raw_events) - 984usize]; + [::core::mem::offset_of!(module, num_bpf_raw_events) - 1072usize]; ["Offset of field: module::bpf_raw_events"] - [::core::mem::offset_of!(module, bpf_raw_events) - 992usize]; + [::core::mem::offset_of!(module, bpf_raw_events) - 1080usize]; ["Offset of field: module::btf_data_size"] - [::core::mem::offset_of!(module, btf_data_size) - 1000usize]; + [::core::mem::offset_of!(module, btf_data_size) - 1088usize]; ["Offset of field: module::btf_base_data_size"] - [::core::mem::offset_of!(module, btf_base_data_size) - 1004usize]; - ["Offset of field: module::btf_data"][::core::mem::offset_of!(module, btf_data) - 1008usize]; + [::core::mem::offset_of!(module, btf_base_data_size) - 1092usize]; + ["Offset of field: module::btf_data"][::core::mem::offset_of!(module, btf_data) - 1096usize]; ["Offset of field: module::btf_base_data"] - [::core::mem::offset_of!(module, btf_base_data) - 1016usize]; + [::core::mem::offset_of!(module, btf_base_data) - 1104usize]; ["Offset of field: module::jump_entries"] - [::core::mem::offset_of!(module, jump_entries) - 1024usize]; + [::core::mem::offset_of!(module, jump_entries) - 1112usize]; ["Offset of field: module::num_jump_entries"] - [::core::mem::offset_of!(module, num_jump_entries) - 1032usize]; + [::core::mem::offset_of!(module, num_jump_entries) - 1120usize]; ["Offset of field: module::num_trace_bprintk_fmt"] - [::core::mem::offset_of!(module, num_trace_bprintk_fmt) - 1036usize]; + [::core::mem::offset_of!(module, num_trace_bprintk_fmt) - 1124usize]; ["Offset of field: module::trace_bprintk_fmt_start"] - [::core::mem::offset_of!(module, trace_bprintk_fmt_start) - 1040usize]; + [::core::mem::offset_of!(module, trace_bprintk_fmt_start) - 1128usize]; ["Offset of field: module::trace_events"] - [::core::mem::offset_of!(module, trace_events) - 1048usize]; + [::core::mem::offset_of!(module, trace_events) - 1136usize]; ["Offset of field: module::num_trace_events"] - [::core::mem::offset_of!(module, num_trace_events) - 1056usize]; + [::core::mem::offset_of!(module, num_trace_events) - 1144usize]; ["Offset of field: module::trace_evals"] - [::core::mem::offset_of!(module, trace_evals) - 1064usize]; + [::core::mem::offset_of!(module, trace_evals) - 1152usize]; ["Offset of field: module::num_trace_evals"] - [::core::mem::offset_of!(module, num_trace_evals) - 1072usize]; + [::core::mem::offset_of!(module, num_trace_evals) - 1160usize]; ["Offset of field: module::num_ftrace_callsites"] - [::core::mem::offset_of!(module, num_ftrace_callsites) - 1076usize]; + [::core::mem::offset_of!(module, num_ftrace_callsites) - 1164usize]; ["Offset of field: module::ftrace_callsites"] - [::core::mem::offset_of!(module, ftrace_callsites) - 1080usize]; + [::core::mem::offset_of!(module, ftrace_callsites) - 1168usize]; ["Offset of field: module::kprobes_text_start"] - [::core::mem::offset_of!(module, kprobes_text_start) - 1088usize]; + [::core::mem::offset_of!(module, kprobes_text_start) - 1176usize]; ["Offset of field: module::kprobes_text_size"] - [::core::mem::offset_of!(module, kprobes_text_size) - 1096usize]; + [::core::mem::offset_of!(module, kprobes_text_size) - 1184usize]; ["Offset of field: module::kprobe_blacklist"] - [::core::mem::offset_of!(module, kprobe_blacklist) - 1104usize]; + [::core::mem::offset_of!(module, kprobe_blacklist) - 1192usize]; ["Offset of field: module::num_kprobe_blacklist"] - [::core::mem::offset_of!(module, num_kprobe_blacklist) - 1112usize]; + [::core::mem::offset_of!(module, num_kprobe_blacklist) - 1200usize]; ["Offset of field: module::num_static_call_sites"] - [::core::mem::offset_of!(module, num_static_call_sites) - 1116usize]; + [::core::mem::offset_of!(module, num_static_call_sites) - 1204usize]; ["Offset of field: module::static_call_sites"] - [::core::mem::offset_of!(module, static_call_sites) - 1120usize]; - ["Offset of field: module::klp"][::core::mem::offset_of!(module, klp) - 1128usize]; - ["Offset of field: module::klp_alive"][::core::mem::offset_of!(module, klp_alive) - 1129usize]; - ["Offset of field: module::klp_info"][::core::mem::offset_of!(module, klp_info) - 1136usize]; + [::core::mem::offset_of!(module, static_call_sites) - 1208usize]; + ["Offset of field: module::printk_index_size"] + [::core::mem::offset_of!(module, printk_index_size) - 1216usize]; + ["Offset of field: module::printk_index_start"] + [::core::mem::offset_of!(module, printk_index_start) - 1224usize]; ["Offset of field: module::source_list"] - [::core::mem::offset_of!(module, source_list) - 1144usize]; + [::core::mem::offset_of!(module, source_list) - 1232usize]; ["Offset of field: module::target_list"] - [::core::mem::offset_of!(module, target_list) - 1160usize]; - ["Offset of field: module::exit"][::core::mem::offset_of!(module, exit) - 1176usize]; - ["Offset of field: module::refcnt"][::core::mem::offset_of!(module, refcnt) - 1184usize]; - ["Offset of field: module::ei_funcs"][::core::mem::offset_of!(module, ei_funcs) - 1192usize]; + [::core::mem::offset_of!(module, target_list) - 1248usize]; + ["Offset of field: module::exit"][::core::mem::offset_of!(module, exit) - 1264usize]; + ["Offset of field: module::refcnt"][::core::mem::offset_of!(module, refcnt) - 1272usize]; + ["Offset of field: module::its_num_pages"] + [::core::mem::offset_of!(module, its_num_pages) - 1276usize]; + ["Offset of field: module::its_page_array"] + [::core::mem::offset_of!(module, its_page_array) - 1280usize]; + ["Offset of field: module::ei_funcs"][::core::mem::offset_of!(module, ei_funcs) - 1288usize]; ["Offset of field: module::num_ei_funcs"] - [::core::mem::offset_of!(module, num_ei_funcs) - 1200usize]; + [::core::mem::offset_of!(module, num_ei_funcs) - 1296usize]; ["Offset of field: module::dyndbg_info"] - [::core::mem::offset_of!(module, dyndbg_info) - 1208usize]; + [::core::mem::offset_of!(module, dyndbg_info) - 1304usize]; }; +impl module { + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct module_attribute { @@ -68832,11 +68668,11 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct mptcp_mib { - pub mibs: [::core::ffi::c_ulong; 64usize], + pub mibs: [::core::ffi::c_ulong; 71usize], } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of mptcp_mib"][::core::mem::size_of::() - 512usize]; + ["Size of mptcp_mib"][::core::mem::size_of::() - 568usize]; ["Alignment of mptcp_mib"][::core::mem::align_of::() - 8usize]; ["Offset of field: mptcp_mib::mibs"][::core::mem::offset_of!(mptcp_mib, mibs) - 0usize]; }; @@ -69196,7 +69032,8 @@ pub struct msi_desc { pub dev: *mut device, pub msg: msi_msg, pub affinity: *mut irq_affinity_desc, - pub iommu_cookie: *const ::core::ffi::c_void, + pub _bitfield_align_1: [u64; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, pub sysfs_attrs: *mut device_attribute, pub write_msi_msg: ::core::option::Option< unsafe extern "C" fn(arg1: *mut msi_desc, arg2: *mut ::core::ffi::c_void), @@ -69230,8 +69067,6 @@ const _: () = { ["Offset of field: msi_desc::dev"][::core::mem::offset_of!(msi_desc, dev) - 8usize]; ["Offset of field: msi_desc::msg"][::core::mem::offset_of!(msi_desc, msg) - 16usize]; ["Offset of field: msi_desc::affinity"][::core::mem::offset_of!(msi_desc, affinity) - 32usize]; - ["Offset of field: msi_desc::iommu_cookie"] - [::core::mem::offset_of!(msi_desc, iommu_cookie) - 40usize]; ["Offset of field: msi_desc::sysfs_attrs"] [::core::mem::offset_of!(msi_desc, sysfs_attrs) - 48usize]; ["Offset of field: msi_desc::write_msi_msg"] @@ -69241,6 +69076,90 @@ const _: () = { ["Offset of field: msi_desc::msi_index"] [::core::mem::offset_of!(msi_desc, msi_index) - 72usize]; }; +impl msi_desc { + #[inline] + pub fn iommu_msi_iova(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 58u8) as u64) } + } + #[inline] + pub fn set_iommu_msi_iova(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 58u8, val as u64) + } + } + #[inline] + pub unsafe fn iommu_msi_iova_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 58u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_iommu_msi_iova_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 58u8, + val as u64, + ) + } + } + #[inline] + pub fn iommu_msi_shift(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(58usize, 6u8) as u64) } + } + #[inline] + pub fn set_iommu_msi_shift(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(58usize, 6u8, val as u64) + } + } + #[inline] + pub unsafe fn iommu_msi_shift_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 58usize, + 6u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_iommu_msi_shift_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 58usize, + 6u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + iommu_msi_iova: u64_, + iommu_msi_shift: u64_, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 58u8, { + let iommu_msi_iova: u64 = unsafe { ::core::mem::transmute(iommu_msi_iova) }; + iommu_msi_iova as u64 + }); + __bindgen_bitfield_unit.set(58usize, 6u8, { + let iommu_msi_shift: u64 = unsafe { ::core::mem::transmute(iommu_msi_shift) }; + iommu_msi_shift as u64 + }); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Copy, Clone)] pub struct msi_dev_domain { @@ -69553,7 +69472,6 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ndisc_ops { - pub is_useropt: ::core::option::Option ::core::ffi::c_int>, pub parse_options: ::core::option::Option< unsafe extern "C" fn( arg1: *const net_device, @@ -69606,19 +69524,17 @@ pub struct ndisc_ops { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of ndisc_ops"][::core::mem::size_of::() - 48usize]; + ["Size of ndisc_ops"][::core::mem::size_of::() - 40usize]; ["Alignment of ndisc_ops"][::core::mem::align_of::() - 8usize]; - ["Offset of field: ndisc_ops::is_useropt"] - [::core::mem::offset_of!(ndisc_ops, is_useropt) - 0usize]; ["Offset of field: ndisc_ops::parse_options"] - [::core::mem::offset_of!(ndisc_ops, parse_options) - 8usize]; - ["Offset of field: ndisc_ops::update"][::core::mem::offset_of!(ndisc_ops, update) - 16usize]; + [::core::mem::offset_of!(ndisc_ops, parse_options) - 0usize]; + ["Offset of field: ndisc_ops::update"][::core::mem::offset_of!(ndisc_ops, update) - 8usize]; ["Offset of field: ndisc_ops::opt_addr_space"] - [::core::mem::offset_of!(ndisc_ops, opt_addr_space) - 24usize]; + [::core::mem::offset_of!(ndisc_ops, opt_addr_space) - 16usize]; ["Offset of field: ndisc_ops::fill_addr_option"] - [::core::mem::offset_of!(ndisc_ops, fill_addr_option) - 32usize]; + [::core::mem::offset_of!(ndisc_ops, fill_addr_option) - 24usize]; ["Offset of field: ndisc_ops::prefix_rcv_add_addr"] - [::core::mem::offset_of!(ndisc_ops, prefix_rcv_add_addr) - 40usize]; + [::core::mem::offset_of!(ndisc_ops, prefix_rcv_add_addr) - 32usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -70246,6 +70162,10 @@ pub struct netns_ipv4 { pub sysctl_icmp_errors_use_inbound_ifaddr: u8_, pub sysctl_icmp_ratelimit: ::core::ffi::c_int, pub sysctl_icmp_ratemask: ::core::ffi::c_int, + pub sysctl_icmp_msgs_per_sec: ::core::ffi::c_int, + pub sysctl_icmp_msgs_burst: ::core::ffi::c_int, + pub icmp_global_credit: atomic_t, + pub icmp_global_stamp: u32_, pub ip_rt_min_pmtu: u32_, pub ip_rt_mtu_expires: ::core::ffi::c_int, pub ip_rt_min_advmss: ::core::ffi::c_int, @@ -70353,8 +70273,6 @@ pub struct netns_ipv4 { pub ipmr_seq: ::core::ffi::c_uint, pub rt_genid: atomic_t, pub ip_id_key: siphash_key_t, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -70469,220 +70387,228 @@ const _: () = { [::core::mem::offset_of!(netns_ipv4, sysctl_icmp_ratelimit) - 384usize]; ["Offset of field: netns_ipv4::sysctl_icmp_ratemask"] [::core::mem::offset_of!(netns_ipv4, sysctl_icmp_ratemask) - 388usize]; + ["Offset of field: netns_ipv4::sysctl_icmp_msgs_per_sec"] + [::core::mem::offset_of!(netns_ipv4, sysctl_icmp_msgs_per_sec) - 392usize]; + ["Offset of field: netns_ipv4::sysctl_icmp_msgs_burst"] + [::core::mem::offset_of!(netns_ipv4, sysctl_icmp_msgs_burst) - 396usize]; + ["Offset of field: netns_ipv4::icmp_global_credit"] + [::core::mem::offset_of!(netns_ipv4, icmp_global_credit) - 400usize]; + ["Offset of field: netns_ipv4::icmp_global_stamp"] + [::core::mem::offset_of!(netns_ipv4, icmp_global_stamp) - 404usize]; ["Offset of field: netns_ipv4::ip_rt_min_pmtu"] - [::core::mem::offset_of!(netns_ipv4, ip_rt_min_pmtu) - 392usize]; + [::core::mem::offset_of!(netns_ipv4, ip_rt_min_pmtu) - 408usize]; ["Offset of field: netns_ipv4::ip_rt_mtu_expires"] - [::core::mem::offset_of!(netns_ipv4, ip_rt_mtu_expires) - 396usize]; + [::core::mem::offset_of!(netns_ipv4, ip_rt_mtu_expires) - 412usize]; ["Offset of field: netns_ipv4::ip_rt_min_advmss"] - [::core::mem::offset_of!(netns_ipv4, ip_rt_min_advmss) - 400usize]; + [::core::mem::offset_of!(netns_ipv4, ip_rt_min_advmss) - 416usize]; ["Offset of field: netns_ipv4::ip_local_ports"] - [::core::mem::offset_of!(netns_ipv4, ip_local_ports) - 404usize]; + [::core::mem::offset_of!(netns_ipv4, ip_local_ports) - 420usize]; ["Offset of field: netns_ipv4::sysctl_tcp_ecn"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_ecn) - 412usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_ecn) - 428usize]; ["Offset of field: netns_ipv4::sysctl_tcp_ecn_fallback"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_ecn_fallback) - 413usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_ecn_fallback) - 429usize]; ["Offset of field: netns_ipv4::sysctl_ip_default_ttl"] - [::core::mem::offset_of!(netns_ipv4, sysctl_ip_default_ttl) - 414usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_ip_default_ttl) - 430usize]; ["Offset of field: netns_ipv4::sysctl_ip_no_pmtu_disc"] - [::core::mem::offset_of!(netns_ipv4, sysctl_ip_no_pmtu_disc) - 415usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_ip_no_pmtu_disc) - 431usize]; ["Offset of field: netns_ipv4::sysctl_ip_fwd_update_priority"] - [::core::mem::offset_of!(netns_ipv4, sysctl_ip_fwd_update_priority) - 416usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_ip_fwd_update_priority) - 432usize]; ["Offset of field: netns_ipv4::sysctl_ip_nonlocal_bind"] - [::core::mem::offset_of!(netns_ipv4, sysctl_ip_nonlocal_bind) - 417usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_ip_nonlocal_bind) - 433usize]; ["Offset of field: netns_ipv4::sysctl_ip_autobind_reuse"] - [::core::mem::offset_of!(netns_ipv4, sysctl_ip_autobind_reuse) - 418usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_ip_autobind_reuse) - 434usize]; ["Offset of field: netns_ipv4::sysctl_ip_dynaddr"] - [::core::mem::offset_of!(netns_ipv4, sysctl_ip_dynaddr) - 419usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_ip_dynaddr) - 435usize]; ["Offset of field: netns_ipv4::sysctl_raw_l3mdev_accept"] - [::core::mem::offset_of!(netns_ipv4, sysctl_raw_l3mdev_accept) - 420usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_raw_l3mdev_accept) - 436usize]; ["Offset of field: netns_ipv4::sysctl_udp_early_demux"] - [::core::mem::offset_of!(netns_ipv4, sysctl_udp_early_demux) - 421usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_udp_early_demux) - 437usize]; ["Offset of field: netns_ipv4::sysctl_nexthop_compat_mode"] - [::core::mem::offset_of!(netns_ipv4, sysctl_nexthop_compat_mode) - 422usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_nexthop_compat_mode) - 438usize]; ["Offset of field: netns_ipv4::sysctl_fwmark_reflect"] - [::core::mem::offset_of!(netns_ipv4, sysctl_fwmark_reflect) - 423usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_fwmark_reflect) - 439usize]; ["Offset of field: netns_ipv4::sysctl_tcp_fwmark_accept"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_fwmark_accept) - 424usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_fwmark_accept) - 440usize]; ["Offset of field: netns_ipv4::sysctl_tcp_l3mdev_accept"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_l3mdev_accept) - 425usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_l3mdev_accept) - 441usize]; ["Offset of field: netns_ipv4::sysctl_tcp_mtu_probing"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_mtu_probing) - 426usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_mtu_probing) - 442usize]; ["Offset of field: netns_ipv4::sysctl_tcp_mtu_probe_floor"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_mtu_probe_floor) - 428usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_mtu_probe_floor) - 444usize]; ["Offset of field: netns_ipv4::sysctl_tcp_base_mss"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_base_mss) - 432usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_base_mss) - 448usize]; ["Offset of field: netns_ipv4::sysctl_tcp_probe_threshold"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_probe_threshold) - 436usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_probe_threshold) - 452usize]; ["Offset of field: netns_ipv4::sysctl_tcp_probe_interval"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_probe_interval) - 440usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_probe_interval) - 456usize]; ["Offset of field: netns_ipv4::sysctl_tcp_keepalive_time"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_keepalive_time) - 444usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_keepalive_time) - 460usize]; ["Offset of field: netns_ipv4::sysctl_tcp_keepalive_intvl"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_keepalive_intvl) - 448usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_keepalive_intvl) - 464usize]; ["Offset of field: netns_ipv4::sysctl_tcp_keepalive_probes"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_keepalive_probes) - 452usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_keepalive_probes) - 468usize]; ["Offset of field: netns_ipv4::sysctl_tcp_syn_retries"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_syn_retries) - 453usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_syn_retries) - 469usize]; ["Offset of field: netns_ipv4::sysctl_tcp_synack_retries"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_synack_retries) - 454usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_synack_retries) - 470usize]; ["Offset of field: netns_ipv4::sysctl_tcp_syncookies"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_syncookies) - 455usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_syncookies) - 471usize]; ["Offset of field: netns_ipv4::sysctl_tcp_migrate_req"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_migrate_req) - 456usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_migrate_req) - 472usize]; ["Offset of field: netns_ipv4::sysctl_tcp_comp_sack_nr"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_comp_sack_nr) - 457usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_comp_sack_nr) - 473usize]; ["Offset of field: netns_ipv4::sysctl_tcp_backlog_ack_defer"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_backlog_ack_defer) - 458usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_backlog_ack_defer) - 474usize]; ["Offset of field: netns_ipv4::sysctl_tcp_pingpong_thresh"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_pingpong_thresh) - 459usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_pingpong_thresh) - 475usize]; ["Offset of field: netns_ipv4::sysctl_tcp_retries1"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_retries1) - 460usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_retries1) - 476usize]; ["Offset of field: netns_ipv4::sysctl_tcp_retries2"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_retries2) - 461usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_retries2) - 477usize]; ["Offset of field: netns_ipv4::sysctl_tcp_orphan_retries"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_orphan_retries) - 462usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_orphan_retries) - 478usize]; ["Offset of field: netns_ipv4::sysctl_tcp_tw_reuse"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_tw_reuse) - 463usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_tw_reuse) - 479usize]; ["Offset of field: netns_ipv4::sysctl_tcp_fin_timeout"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_fin_timeout) - 464usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_fin_timeout) - 480usize]; ["Offset of field: netns_ipv4::sysctl_tcp_sack"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_sack) - 468usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_sack) - 484usize]; ["Offset of field: netns_ipv4::sysctl_tcp_window_scaling"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_window_scaling) - 469usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_window_scaling) - 485usize]; ["Offset of field: netns_ipv4::sysctl_tcp_timestamps"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_timestamps) - 470usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_timestamps) - 486usize]; ["Offset of field: netns_ipv4::sysctl_tcp_rto_min_us"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_rto_min_us) - 472usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_rto_min_us) - 488usize]; ["Offset of field: netns_ipv4::sysctl_tcp_recovery"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_recovery) - 476usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_recovery) - 492usize]; ["Offset of field: netns_ipv4::sysctl_tcp_thin_linear_timeouts"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_thin_linear_timeouts) - 477usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_thin_linear_timeouts) - 493usize]; ["Offset of field: netns_ipv4::sysctl_tcp_slow_start_after_idle"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_slow_start_after_idle) - 478usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_slow_start_after_idle) - 494usize]; ["Offset of field: netns_ipv4::sysctl_tcp_retrans_collapse"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_retrans_collapse) - 479usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_retrans_collapse) - 495usize]; ["Offset of field: netns_ipv4::sysctl_tcp_stdurg"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_stdurg) - 480usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_stdurg) - 496usize]; ["Offset of field: netns_ipv4::sysctl_tcp_rfc1337"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_rfc1337) - 481usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_rfc1337) - 497usize]; ["Offset of field: netns_ipv4::sysctl_tcp_abort_on_overflow"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_abort_on_overflow) - 482usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_abort_on_overflow) - 498usize]; ["Offset of field: netns_ipv4::sysctl_tcp_fack"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_fack) - 483usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_fack) - 499usize]; ["Offset of field: netns_ipv4::sysctl_tcp_max_reordering"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_max_reordering) - 484usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_max_reordering) - 500usize]; ["Offset of field: netns_ipv4::sysctl_tcp_adv_win_scale"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_adv_win_scale) - 488usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_adv_win_scale) - 504usize]; ["Offset of field: netns_ipv4::sysctl_tcp_dsack"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_dsack) - 492usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_dsack) - 508usize]; ["Offset of field: netns_ipv4::sysctl_tcp_app_win"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_app_win) - 493usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_app_win) - 509usize]; ["Offset of field: netns_ipv4::sysctl_tcp_frto"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_frto) - 494usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_frto) - 510usize]; ["Offset of field: netns_ipv4::sysctl_tcp_nometrics_save"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_nometrics_save) - 495usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_nometrics_save) - 511usize]; ["Offset of field: netns_ipv4::sysctl_tcp_no_ssthresh_metrics_save"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_no_ssthresh_metrics_save) - 496usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_no_ssthresh_metrics_save) - 512usize]; ["Offset of field: netns_ipv4::sysctl_tcp_workaround_signed_windows"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_workaround_signed_windows) - 497usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_workaround_signed_windows) - 513usize]; ["Offset of field: netns_ipv4::sysctl_tcp_challenge_ack_limit"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_challenge_ack_limit) - 500usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_challenge_ack_limit) - 516usize]; ["Offset of field: netns_ipv4::sysctl_tcp_min_tso_segs"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_min_tso_segs) - 504usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_min_tso_segs) - 520usize]; ["Offset of field: netns_ipv4::sysctl_tcp_reflect_tos"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_reflect_tos) - 505usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_reflect_tos) - 521usize]; ["Offset of field: netns_ipv4::sysctl_tcp_invalid_ratelimit"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_invalid_ratelimit) - 508usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_invalid_ratelimit) - 524usize]; ["Offset of field: netns_ipv4::sysctl_tcp_pacing_ss_ratio"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_pacing_ss_ratio) - 512usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_pacing_ss_ratio) - 528usize]; ["Offset of field: netns_ipv4::sysctl_tcp_pacing_ca_ratio"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_pacing_ca_ratio) - 516usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_pacing_ca_ratio) - 532usize]; ["Offset of field: netns_ipv4::sysctl_tcp_child_ehash_entries"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_child_ehash_entries) - 520usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_child_ehash_entries) - 536usize]; ["Offset of field: netns_ipv4::sysctl_tcp_comp_sack_delay_ns"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_comp_sack_delay_ns) - 528usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_comp_sack_delay_ns) - 544usize]; ["Offset of field: netns_ipv4::sysctl_tcp_comp_sack_slack_ns"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_comp_sack_slack_ns) - 536usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_comp_sack_slack_ns) - 552usize]; ["Offset of field: netns_ipv4::sysctl_max_syn_backlog"] - [::core::mem::offset_of!(netns_ipv4, sysctl_max_syn_backlog) - 544usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_max_syn_backlog) - 560usize]; ["Offset of field: netns_ipv4::sysctl_tcp_fastopen"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_fastopen) - 548usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_fastopen) - 564usize]; ["Offset of field: netns_ipv4::tcp_congestion_control"] - [::core::mem::offset_of!(netns_ipv4, tcp_congestion_control) - 552usize]; + [::core::mem::offset_of!(netns_ipv4, tcp_congestion_control) - 568usize]; ["Offset of field: netns_ipv4::tcp_fastopen_ctx"] - [::core::mem::offset_of!(netns_ipv4, tcp_fastopen_ctx) - 560usize]; + [::core::mem::offset_of!(netns_ipv4, tcp_fastopen_ctx) - 576usize]; ["Offset of field: netns_ipv4::sysctl_tcp_fastopen_blackhole_timeout"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_fastopen_blackhole_timeout) - 568usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_fastopen_blackhole_timeout) - 584usize]; ["Offset of field: netns_ipv4::tfo_active_disable_times"] - [::core::mem::offset_of!(netns_ipv4, tfo_active_disable_times) - 572usize]; + [::core::mem::offset_of!(netns_ipv4, tfo_active_disable_times) - 588usize]; ["Offset of field: netns_ipv4::tfo_active_disable_stamp"] - [::core::mem::offset_of!(netns_ipv4, tfo_active_disable_stamp) - 576usize]; + [::core::mem::offset_of!(netns_ipv4, tfo_active_disable_stamp) - 592usize]; ["Offset of field: netns_ipv4::tcp_challenge_timestamp"] - [::core::mem::offset_of!(netns_ipv4, tcp_challenge_timestamp) - 584usize]; + [::core::mem::offset_of!(netns_ipv4, tcp_challenge_timestamp) - 600usize]; ["Offset of field: netns_ipv4::tcp_challenge_count"] - [::core::mem::offset_of!(netns_ipv4, tcp_challenge_count) - 588usize]; + [::core::mem::offset_of!(netns_ipv4, tcp_challenge_count) - 604usize]; ["Offset of field: netns_ipv4::sysctl_tcp_plb_enabled"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_plb_enabled) - 592usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_plb_enabled) - 608usize]; ["Offset of field: netns_ipv4::sysctl_tcp_plb_idle_rehash_rounds"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_plb_idle_rehash_rounds) - 593usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_plb_idle_rehash_rounds) - 609usize]; ["Offset of field: netns_ipv4::sysctl_tcp_plb_rehash_rounds"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_plb_rehash_rounds) - 594usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_plb_rehash_rounds) - 610usize]; ["Offset of field: netns_ipv4::sysctl_tcp_plb_suspend_rto_sec"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_plb_suspend_rto_sec) - 595usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_plb_suspend_rto_sec) - 611usize]; ["Offset of field: netns_ipv4::sysctl_tcp_plb_cong_thresh"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_plb_cong_thresh) - 596usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_plb_cong_thresh) - 612usize]; ["Offset of field: netns_ipv4::sysctl_udp_wmem_min"] - [::core::mem::offset_of!(netns_ipv4, sysctl_udp_wmem_min) - 600usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_udp_wmem_min) - 616usize]; ["Offset of field: netns_ipv4::sysctl_udp_rmem_min"] - [::core::mem::offset_of!(netns_ipv4, sysctl_udp_rmem_min) - 604usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_udp_rmem_min) - 620usize]; ["Offset of field: netns_ipv4::sysctl_fib_notify_on_flag_change"] - [::core::mem::offset_of!(netns_ipv4, sysctl_fib_notify_on_flag_change) - 608usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_fib_notify_on_flag_change) - 624usize]; ["Offset of field: netns_ipv4::sysctl_tcp_syn_linear_timeouts"] - [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_syn_linear_timeouts) - 609usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_tcp_syn_linear_timeouts) - 625usize]; ["Offset of field: netns_ipv4::sysctl_udp_l3mdev_accept"] - [::core::mem::offset_of!(netns_ipv4, sysctl_udp_l3mdev_accept) - 610usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_udp_l3mdev_accept) - 626usize]; ["Offset of field: netns_ipv4::sysctl_igmp_llm_reports"] - [::core::mem::offset_of!(netns_ipv4, sysctl_igmp_llm_reports) - 611usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_igmp_llm_reports) - 627usize]; ["Offset of field: netns_ipv4::sysctl_igmp_max_memberships"] - [::core::mem::offset_of!(netns_ipv4, sysctl_igmp_max_memberships) - 612usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_igmp_max_memberships) - 628usize]; ["Offset of field: netns_ipv4::sysctl_igmp_max_msf"] - [::core::mem::offset_of!(netns_ipv4, sysctl_igmp_max_msf) - 616usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_igmp_max_msf) - 632usize]; ["Offset of field: netns_ipv4::sysctl_igmp_qrv"] - [::core::mem::offset_of!(netns_ipv4, sysctl_igmp_qrv) - 620usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_igmp_qrv) - 636usize]; ["Offset of field: netns_ipv4::ping_group_range"] - [::core::mem::offset_of!(netns_ipv4, ping_group_range) - 624usize]; + [::core::mem::offset_of!(netns_ipv4, ping_group_range) - 640usize]; ["Offset of field: netns_ipv4::dev_addr_genid"] - [::core::mem::offset_of!(netns_ipv4, dev_addr_genid) - 640usize]; + [::core::mem::offset_of!(netns_ipv4, dev_addr_genid) - 656usize]; ["Offset of field: netns_ipv4::sysctl_udp_child_hash_entries"] - [::core::mem::offset_of!(netns_ipv4, sysctl_udp_child_hash_entries) - 644usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_udp_child_hash_entries) - 660usize]; ["Offset of field: netns_ipv4::sysctl_local_reserved_ports"] - [::core::mem::offset_of!(netns_ipv4, sysctl_local_reserved_ports) - 648usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_local_reserved_ports) - 664usize]; ["Offset of field: netns_ipv4::sysctl_ip_prot_sock"] - [::core::mem::offset_of!(netns_ipv4, sysctl_ip_prot_sock) - 656usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_ip_prot_sock) - 672usize]; ["Offset of field: netns_ipv4::mr_tables"] - [::core::mem::offset_of!(netns_ipv4, mr_tables) - 664usize]; + [::core::mem::offset_of!(netns_ipv4, mr_tables) - 680usize]; ["Offset of field: netns_ipv4::mr_rules_ops"] - [::core::mem::offset_of!(netns_ipv4, mr_rules_ops) - 680usize]; + [::core::mem::offset_of!(netns_ipv4, mr_rules_ops) - 696usize]; ["Offset of field: netns_ipv4::sysctl_fib_multipath_hash_seed"] - [::core::mem::offset_of!(netns_ipv4, sysctl_fib_multipath_hash_seed) - 688usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_fib_multipath_hash_seed) - 704usize]; ["Offset of field: netns_ipv4::sysctl_fib_multipath_hash_fields"] - [::core::mem::offset_of!(netns_ipv4, sysctl_fib_multipath_hash_fields) - 696usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_fib_multipath_hash_fields) - 712usize]; ["Offset of field: netns_ipv4::sysctl_fib_multipath_use_neigh"] - [::core::mem::offset_of!(netns_ipv4, sysctl_fib_multipath_use_neigh) - 700usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_fib_multipath_use_neigh) - 716usize]; ["Offset of field: netns_ipv4::sysctl_fib_multipath_hash_policy"] - [::core::mem::offset_of!(netns_ipv4, sysctl_fib_multipath_hash_policy) - 701usize]; + [::core::mem::offset_of!(netns_ipv4, sysctl_fib_multipath_hash_policy) - 717usize]; ["Offset of field: netns_ipv4::notifier_ops"] - [::core::mem::offset_of!(netns_ipv4, notifier_ops) - 704usize]; + [::core::mem::offset_of!(netns_ipv4, notifier_ops) - 720usize]; ["Offset of field: netns_ipv4::fib_seq"] - [::core::mem::offset_of!(netns_ipv4, fib_seq) - 712usize]; + [::core::mem::offset_of!(netns_ipv4, fib_seq) - 728usize]; ["Offset of field: netns_ipv4::ipmr_notifier_ops"] - [::core::mem::offset_of!(netns_ipv4, ipmr_notifier_ops) - 720usize]; + [::core::mem::offset_of!(netns_ipv4, ipmr_notifier_ops) - 736usize]; ["Offset of field: netns_ipv4::ipmr_seq"] - [::core::mem::offset_of!(netns_ipv4, ipmr_seq) - 728usize]; + [::core::mem::offset_of!(netns_ipv4, ipmr_seq) - 744usize]; ["Offset of field: netns_ipv4::rt_genid"] - [::core::mem::offset_of!(netns_ipv4, rt_genid) - 732usize]; + [::core::mem::offset_of!(netns_ipv4, rt_genid) - 748usize]; ["Offset of field: netns_ipv4::ip_id_key"] - [::core::mem::offset_of!(netns_ipv4, ip_id_key) - 736usize]; + [::core::mem::offset_of!(netns_ipv4, ip_id_key) - 752usize]; }; impl netns_ipv4 { #[inline] @@ -70690,11 +70616,6 @@ impl netns_ipv4 { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); __bindgen_bitfield_unit } - #[inline] - pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); - __bindgen_bitfield_unit - } } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -71491,7 +71412,6 @@ pub struct netns_xfrm { pub policy_byidx: *mut hlist_head, pub policy_idx_hmask: ::core::ffi::c_uint, pub idx_generator: ::core::ffi::c_uint, - pub policy_inexact: [hlist_head; 3usize], pub policy_bydst: [xfrm_policy_hash; 3usize], pub policy_count: [::core::ffi::c_uint; 6usize], pub policy_hash_work: work_struct, @@ -71506,7 +71426,7 @@ pub struct netns_xfrm { pub policy_default: [u8_; 3usize], pub sysctl_hdr: *mut ctl_table_header, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, pub xfrm4_dst_ops: dst_ops, pub xfrm6_dst_ops: dst_ops, pub xfrm_state_lock: spinlock_t, @@ -71548,33 +71468,31 @@ const _: () = { [::core::mem::offset_of!(netns_xfrm, policy_idx_hmask) - 120usize]; ["Offset of field: netns_xfrm::idx_generator"] [::core::mem::offset_of!(netns_xfrm, idx_generator) - 124usize]; - ["Offset of field: netns_xfrm::policy_inexact"] - [::core::mem::offset_of!(netns_xfrm, policy_inexact) - 128usize]; ["Offset of field: netns_xfrm::policy_bydst"] - [::core::mem::offset_of!(netns_xfrm, policy_bydst) - 152usize]; + [::core::mem::offset_of!(netns_xfrm, policy_bydst) - 128usize]; ["Offset of field: netns_xfrm::policy_count"] - [::core::mem::offset_of!(netns_xfrm, policy_count) - 200usize]; + [::core::mem::offset_of!(netns_xfrm, policy_count) - 176usize]; ["Offset of field: netns_xfrm::policy_hash_work"] - [::core::mem::offset_of!(netns_xfrm, policy_hash_work) - 224usize]; + [::core::mem::offset_of!(netns_xfrm, policy_hash_work) - 200usize]; ["Offset of field: netns_xfrm::policy_hthresh"] - [::core::mem::offset_of!(netns_xfrm, policy_hthresh) - 256usize]; + [::core::mem::offset_of!(netns_xfrm, policy_hthresh) - 232usize]; ["Offset of field: netns_xfrm::inexact_bins"] - [::core::mem::offset_of!(netns_xfrm, inexact_bins) - 304usize]; - ["Offset of field: netns_xfrm::nlsk"][::core::mem::offset_of!(netns_xfrm, nlsk) - 320usize]; + [::core::mem::offset_of!(netns_xfrm, inexact_bins) - 280usize]; + ["Offset of field: netns_xfrm::nlsk"][::core::mem::offset_of!(netns_xfrm, nlsk) - 296usize]; ["Offset of field: netns_xfrm::nlsk_stash"] - [::core::mem::offset_of!(netns_xfrm, nlsk_stash) - 328usize]; + [::core::mem::offset_of!(netns_xfrm, nlsk_stash) - 304usize]; ["Offset of field: netns_xfrm::sysctl_aevent_etime"] - [::core::mem::offset_of!(netns_xfrm, sysctl_aevent_etime) - 336usize]; + [::core::mem::offset_of!(netns_xfrm, sysctl_aevent_etime) - 312usize]; ["Offset of field: netns_xfrm::sysctl_aevent_rseqth"] - [::core::mem::offset_of!(netns_xfrm, sysctl_aevent_rseqth) - 340usize]; + [::core::mem::offset_of!(netns_xfrm, sysctl_aevent_rseqth) - 316usize]; ["Offset of field: netns_xfrm::sysctl_larval_drop"] - [::core::mem::offset_of!(netns_xfrm, sysctl_larval_drop) - 344usize]; + [::core::mem::offset_of!(netns_xfrm, sysctl_larval_drop) - 320usize]; ["Offset of field: netns_xfrm::sysctl_acq_expires"] - [::core::mem::offset_of!(netns_xfrm, sysctl_acq_expires) - 348usize]; + [::core::mem::offset_of!(netns_xfrm, sysctl_acq_expires) - 324usize]; ["Offset of field: netns_xfrm::policy_default"] - [::core::mem::offset_of!(netns_xfrm, policy_default) - 352usize]; + [::core::mem::offset_of!(netns_xfrm, policy_default) - 328usize]; ["Offset of field: netns_xfrm::sysctl_hdr"] - [::core::mem::offset_of!(netns_xfrm, sysctl_hdr) - 360usize]; + [::core::mem::offset_of!(netns_xfrm, sysctl_hdr) - 336usize]; ["Offset of field: netns_xfrm::xfrm4_dst_ops"] [::core::mem::offset_of!(netns_xfrm, xfrm4_dst_ops) - 384usize]; ["Offset of field: netns_xfrm::xfrm6_dst_ops"] @@ -71592,13 +71510,6 @@ const _: () = { ["Offset of field: netns_xfrm::nat_keepalive_work"] [::core::mem::offset_of!(netns_xfrm, nat_keepalive_work) - 816usize]; }; -impl netns_xfrm { - #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); - __bindgen_bitfield_unit - } -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct netns_ipvs { @@ -72598,7 +72509,7 @@ pub struct udp_tunnel_nic { #[repr(C)] pub struct net_device { pub __cacheline_group_begin__net_device_read_tx: __IncompleteArrayField<__u8>, - pub priv_flags: ::core::ffi::c_ulonglong, + pub __bindgen_anon_1: net_device__bindgen_ty_1, pub netdev_ops: *const net_device_ops, pub header_ops: *const header_ops, pub _tx: *mut netdev_queue, @@ -72616,7 +72527,7 @@ pub struct net_device { pub tcx_egress: *mut bpf_mprog_entry, pub __cacheline_group_end__net_device_read_tx: __IncompleteArrayField<__u8>, pub __cacheline_group_begin__net_device_read_txrx: __IncompleteArrayField<__u8>, - pub __bindgen_anon_1: net_device__bindgen_ty_1, + pub __bindgen_anon_2: net_device__bindgen_ty_2, pub state: ::core::ffi::c_ulong, pub flags: ::core::ffi::c_uint, pub hard_header_len: ::core::ffi::c_ushort, @@ -72650,7 +72561,7 @@ pub struct net_device { pub unreg_list: list_head, pub close_list: list_head, pub ptype_all: list_head, - pub adj_list: net_device__bindgen_ty_2, + pub adj_list: net_device__bindgen_ty_3, pub xdp_features: xdp_features_t, pub xdp_metadata_ops: *const xdp_metadata_ops, pub xsk_tx_metadata_ops: *const xsk_tx_metadata_ops, @@ -72756,11 +72667,14 @@ pub struct net_device { pub prio_tc_map: [u8_; 16usize], pub fcoe_ddp_xid: ::core::ffi::c_uint, pub priomap: *mut netprio_map, + pub link_topo: *mut phy_link_topology, pub phydev: *mut phy_device, pub sfp_bus: *mut sfp_bus, pub qdisc_tx_busylock: *mut lock_class_key, pub proto_down: bool_, pub threaded: bool_, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 1usize]>, pub net_notifier_list: list_head, pub macsec_ops: *const macsec_ops, pub udp_tunnel_nic_info: *const udp_tunnel_nic_info, @@ -72776,16 +72690,211 @@ pub struct net_device { pub dpll_pin: *mut dpll_pin, pub page_pools: hlist_head, pub irq_moder: *mut dim_irq_moder, - pub _bitfield_align_3: [u8; 0], - pub _bitfield_3: __BindgenBitfieldUnit<[u8; 8usize]>, + pub _bitfield_align_4: [u8; 0], + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 16usize]>, pub priv_: __IncompleteArrayField, } #[repr(C)] #[derive(Copy, Clone)] pub union net_device__bindgen_ty_1 { - pub lstats: *mut pcpu_lstats, - pub tstats: *mut pcpu_sw_netstats, - pub dstats: *mut pcpu_dstats, + pub __bindgen_anon_1: net_device__bindgen_ty_1__bindgen_ty_1, + pub priv_flags_fast: net_device__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Copy, Clone)] +pub struct net_device__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 5usize]>, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of net_device__bindgen_ty_1__bindgen_ty_1"] + [::core::mem::size_of::() - 8usize]; + ["Alignment of net_device__bindgen_ty_1__bindgen_ty_1"] + [::core::mem::align_of::() - 8usize]; +}; +impl net_device__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn priv_flags(&self) -> ::core::ffi::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } + } + #[inline] + pub fn set_priv_flags(&mut self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 32u8, val as u64) + } + } + #[inline] + pub unsafe fn priv_flags_raw(this: *const Self) -> ::core::ffi::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 32u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_priv_flags_raw(this: *mut Self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 32u8, + val as u64, + ) + } + } + #[inline] + pub fn lltx(&self) -> ::core::ffi::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) } + } + #[inline] + pub fn set_lltx(&mut self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(32usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn lltx_raw(this: *const Self) -> ::core::ffi::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 32usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_lltx_raw(this: *mut Self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 32usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + priv_flags: ::core::ffi::c_ulong, + lltx: ::core::ffi::c_ulong, + ) -> __BindgenBitfieldUnit<[u8; 5usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 5usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 32u8, { + let priv_flags: u64 = unsafe { ::core::mem::transmute(priv_flags) }; + priv_flags as u64 + }); + __bindgen_bitfield_unit.set(32usize, 1u8, { + let lltx: u64 = unsafe { ::core::mem::transmute(lltx) }; + lltx as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Copy, Clone)] +pub struct net_device__bindgen_ty_1__bindgen_ty_2 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 5usize]>, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of net_device__bindgen_ty_1__bindgen_ty_2"] + [::core::mem::size_of::() - 8usize]; + ["Alignment of net_device__bindgen_ty_1__bindgen_ty_2"] + [::core::mem::align_of::() - 8usize]; +}; +impl net_device__bindgen_ty_1__bindgen_ty_2 { + #[inline] + pub fn priv_flags(&self) -> ::core::ffi::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } + } + #[inline] + pub fn set_priv_flags(&mut self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 32u8, val as u64) + } + } + #[inline] + pub unsafe fn priv_flags_raw(this: *const Self) -> ::core::ffi::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 32u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_priv_flags_raw(this: *mut Self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 32u8, + val as u64, + ) + } + } + #[inline] + pub fn lltx(&self) -> ::core::ffi::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) } + } + #[inline] + pub fn set_lltx(&mut self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(32usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn lltx_raw(this: *const Self) -> ::core::ffi::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 32usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_lltx_raw(this: *mut Self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 32usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + priv_flags: ::core::ffi::c_ulong, + lltx: ::core::ffi::c_ulong, + ) -> __BindgenBitfieldUnit<[u8; 5usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 5usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 32u8, { + let priv_flags: u64 = unsafe { ::core::mem::transmute(priv_flags) }; + priv_flags as u64 + }); + __bindgen_bitfield_unit.set(32usize, 1u8, { + let lltx: u64 = unsafe { ::core::mem::transmute(lltx) }; + lltx as u64 + }); + __bindgen_bitfield_unit + } } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -72793,41 +72902,55 @@ const _: () = { [::core::mem::size_of::() - 8usize]; ["Alignment of net_device__bindgen_ty_1"] [::core::mem::align_of::() - 8usize]; - ["Offset of field: net_device__bindgen_ty_1::lstats"] - [::core::mem::offset_of!(net_device__bindgen_ty_1, lstats) - 0usize]; - ["Offset of field: net_device__bindgen_ty_1::tstats"] - [::core::mem::offset_of!(net_device__bindgen_ty_1, tstats) - 0usize]; - ["Offset of field: net_device__bindgen_ty_1::dstats"] - [::core::mem::offset_of!(net_device__bindgen_ty_1, dstats) - 0usize]; + ["Offset of field: net_device__bindgen_ty_1::priv_flags_fast"] + [::core::mem::offset_of!(net_device__bindgen_ty_1, priv_flags_fast) - 0usize]; }; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct net_device__bindgen_ty_2 { - pub upper: list_head, - pub lower: list_head, +#[derive(Copy, Clone)] +pub union net_device__bindgen_ty_2 { + pub lstats: *mut pcpu_lstats, + pub tstats: *mut pcpu_sw_netstats, + pub dstats: *mut pcpu_dstats, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of net_device__bindgen_ty_2"] - [::core::mem::size_of::() - 32usize]; + [::core::mem::size_of::() - 8usize]; ["Alignment of net_device__bindgen_ty_2"] [::core::mem::align_of::() - 8usize]; - ["Offset of field: net_device__bindgen_ty_2::upper"] - [::core::mem::offset_of!(net_device__bindgen_ty_2, upper) - 0usize]; - ["Offset of field: net_device__bindgen_ty_2::lower"] - [::core::mem::offset_of!(net_device__bindgen_ty_2, lower) - 16usize]; + ["Offset of field: net_device__bindgen_ty_2::lstats"] + [::core::mem::offset_of!(net_device__bindgen_ty_2, lstats) - 0usize]; + ["Offset of field: net_device__bindgen_ty_2::tstats"] + [::core::mem::offset_of!(net_device__bindgen_ty_2, tstats) - 0usize]; + ["Offset of field: net_device__bindgen_ty_2::dstats"] + [::core::mem::offset_of!(net_device__bindgen_ty_2, dstats) - 0usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_device__bindgen_ty_3 { + pub upper: list_head, + pub lower: list_head, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of net_device__bindgen_ty_3"] + [::core::mem::size_of::() - 32usize]; + ["Alignment of net_device__bindgen_ty_3"] + [::core::mem::align_of::() - 8usize]; + ["Offset of field: net_device__bindgen_ty_3::upper"] + [::core::mem::offset_of!(net_device__bindgen_ty_3, upper) - 0usize]; + ["Offset of field: net_device__bindgen_ty_3::lower"] + [::core::mem::offset_of!(net_device__bindgen_ty_3, lower) - 16usize]; }; -pub const net_device_RTNL_LINK_INITIALIZED: net_device__bindgen_ty_3 = 0; -pub const net_device_RTNL_LINK_INITIALIZING: net_device__bindgen_ty_3 = 1; -pub type net_device__bindgen_ty_3 = ::core::ffi::c_uint; +pub const net_device_RTNL_LINK_INITIALIZED: net_device__bindgen_ty_4 = 0; +pub const net_device_RTNL_LINK_INITIALIZING: net_device__bindgen_ty_4 = 1; +pub type net_device__bindgen_ty_4 = ::core::ffi::c_uint; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of net_device"][::core::mem::size_of::() - 2560usize]; ["Alignment of net_device"][::core::mem::align_of::() - 8usize]; ["Offset of field: net_device::__cacheline_group_begin__net_device_read_tx"] [::core::mem::offset_of!(net_device, __cacheline_group_begin__net_device_read_tx) - 0usize]; - ["Offset of field: net_device::priv_flags"] - [::core::mem::offset_of!(net_device, priv_flags) - 0usize]; ["Offset of field: net_device::netdev_ops"] [::core::mem::offset_of!(net_device, netdev_ops) - 8usize]; ["Offset of field: net_device::header_ops"] @@ -73097,83 +73220,85 @@ const _: () = { [::core::mem::offset_of!(net_device, dm_private) - 1464usize]; ["Offset of field: net_device::dev"][::core::mem::offset_of!(net_device, dev) - 1472usize]; ["Offset of field: net_device::sysfs_groups"] - [::core::mem::offset_of!(net_device, sysfs_groups) - 2240usize]; + [::core::mem::offset_of!(net_device, sysfs_groups) - 2224usize]; ["Offset of field: net_device::sysfs_rx_queue_group"] - [::core::mem::offset_of!(net_device, sysfs_rx_queue_group) - 2272usize]; + [::core::mem::offset_of!(net_device, sysfs_rx_queue_group) - 2256usize]; ["Offset of field: net_device::rtnl_link_ops"] - [::core::mem::offset_of!(net_device, rtnl_link_ops) - 2280usize]; + [::core::mem::offset_of!(net_device, rtnl_link_ops) - 2264usize]; ["Offset of field: net_device::stat_ops"] - [::core::mem::offset_of!(net_device, stat_ops) - 2288usize]; + [::core::mem::offset_of!(net_device, stat_ops) - 2272usize]; ["Offset of field: net_device::queue_mgmt_ops"] - [::core::mem::offset_of!(net_device, queue_mgmt_ops) - 2296usize]; + [::core::mem::offset_of!(net_device, queue_mgmt_ops) - 2280usize]; ["Offset of field: net_device::tso_max_size"] - [::core::mem::offset_of!(net_device, tso_max_size) - 2304usize]; + [::core::mem::offset_of!(net_device, tso_max_size) - 2288usize]; ["Offset of field: net_device::tso_max_segs"] - [::core::mem::offset_of!(net_device, tso_max_segs) - 2308usize]; + [::core::mem::offset_of!(net_device, tso_max_segs) - 2292usize]; ["Offset of field: net_device::dcbnl_ops"] - [::core::mem::offset_of!(net_device, dcbnl_ops) - 2312usize]; + [::core::mem::offset_of!(net_device, dcbnl_ops) - 2296usize]; ["Offset of field: net_device::prio_tc_map"] - [::core::mem::offset_of!(net_device, prio_tc_map) - 2320usize]; + [::core::mem::offset_of!(net_device, prio_tc_map) - 2304usize]; ["Offset of field: net_device::fcoe_ddp_xid"] - [::core::mem::offset_of!(net_device, fcoe_ddp_xid) - 2336usize]; + [::core::mem::offset_of!(net_device, fcoe_ddp_xid) - 2320usize]; ["Offset of field: net_device::priomap"] - [::core::mem::offset_of!(net_device, priomap) - 2344usize]; + [::core::mem::offset_of!(net_device, priomap) - 2328usize]; + ["Offset of field: net_device::link_topo"] + [::core::mem::offset_of!(net_device, link_topo) - 2336usize]; ["Offset of field: net_device::phydev"] - [::core::mem::offset_of!(net_device, phydev) - 2352usize]; + [::core::mem::offset_of!(net_device, phydev) - 2344usize]; ["Offset of field: net_device::sfp_bus"] - [::core::mem::offset_of!(net_device, sfp_bus) - 2360usize]; + [::core::mem::offset_of!(net_device, sfp_bus) - 2352usize]; ["Offset of field: net_device::qdisc_tx_busylock"] - [::core::mem::offset_of!(net_device, qdisc_tx_busylock) - 2368usize]; + [::core::mem::offset_of!(net_device, qdisc_tx_busylock) - 2360usize]; ["Offset of field: net_device::proto_down"] - [::core::mem::offset_of!(net_device, proto_down) - 2376usize]; + [::core::mem::offset_of!(net_device, proto_down) - 2368usize]; ["Offset of field: net_device::threaded"] - [::core::mem::offset_of!(net_device, threaded) - 2377usize]; + [::core::mem::offset_of!(net_device, threaded) - 2369usize]; ["Offset of field: net_device::net_notifier_list"] - [::core::mem::offset_of!(net_device, net_notifier_list) - 2384usize]; + [::core::mem::offset_of!(net_device, net_notifier_list) - 2376usize]; ["Offset of field: net_device::macsec_ops"] - [::core::mem::offset_of!(net_device, macsec_ops) - 2400usize]; + [::core::mem::offset_of!(net_device, macsec_ops) - 2392usize]; ["Offset of field: net_device::udp_tunnel_nic_info"] - [::core::mem::offset_of!(net_device, udp_tunnel_nic_info) - 2408usize]; + [::core::mem::offset_of!(net_device, udp_tunnel_nic_info) - 2400usize]; ["Offset of field: net_device::udp_tunnel_nic"] - [::core::mem::offset_of!(net_device, udp_tunnel_nic) - 2416usize]; + [::core::mem::offset_of!(net_device, udp_tunnel_nic) - 2408usize]; ["Offset of field: net_device::ethtool"] - [::core::mem::offset_of!(net_device, ethtool) - 2424usize]; + [::core::mem::offset_of!(net_device, ethtool) - 2416usize]; ["Offset of field: net_device::xdp_state"] - [::core::mem::offset_of!(net_device, xdp_state) - 2432usize]; + [::core::mem::offset_of!(net_device, xdp_state) - 2424usize]; ["Offset of field: net_device::dev_addr_shadow"] - [::core::mem::offset_of!(net_device, dev_addr_shadow) - 2480usize]; + [::core::mem::offset_of!(net_device, dev_addr_shadow) - 2472usize]; ["Offset of field: net_device::linkwatch_dev_tracker"] - [::core::mem::offset_of!(net_device, linkwatch_dev_tracker) - 2512usize]; + [::core::mem::offset_of!(net_device, linkwatch_dev_tracker) - 2504usize]; ["Offset of field: net_device::watchdog_dev_tracker"] - [::core::mem::offset_of!(net_device, watchdog_dev_tracker) - 2512usize]; + [::core::mem::offset_of!(net_device, watchdog_dev_tracker) - 2504usize]; ["Offset of field: net_device::dev_registered_tracker"] - [::core::mem::offset_of!(net_device, dev_registered_tracker) - 2512usize]; + [::core::mem::offset_of!(net_device, dev_registered_tracker) - 2504usize]; ["Offset of field: net_device::offload_xstats_l3"] - [::core::mem::offset_of!(net_device, offload_xstats_l3) - 2512usize]; + [::core::mem::offset_of!(net_device, offload_xstats_l3) - 2504usize]; ["Offset of field: net_device::devlink_port"] - [::core::mem::offset_of!(net_device, devlink_port) - 2520usize]; + [::core::mem::offset_of!(net_device, devlink_port) - 2512usize]; ["Offset of field: net_device::dpll_pin"] - [::core::mem::offset_of!(net_device, dpll_pin) - 2528usize]; + [::core::mem::offset_of!(net_device, dpll_pin) - 2520usize]; ["Offset of field: net_device::page_pools"] - [::core::mem::offset_of!(net_device, page_pools) - 2536usize]; + [::core::mem::offset_of!(net_device, page_pools) - 2528usize]; ["Offset of field: net_device::irq_moder"] - [::core::mem::offset_of!(net_device, irq_moder) - 2544usize]; + [::core::mem::offset_of!(net_device, irq_moder) - 2536usize]; ["Offset of field: net_device::priv_"][::core::mem::offset_of!(net_device, priv_) - 2560usize]; }; impl net_device { #[inline] - pub fn rtnl_link_state(&self) -> net_device__bindgen_ty_3 { + pub fn rtnl_link_state(&self) -> net_device__bindgen_ty_4 { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) } } #[inline] - pub fn set_rtnl_link_state(&mut self, val: net_device__bindgen_ty_3) { + pub fn set_rtnl_link_state(&mut self, val: net_device__bindgen_ty_4) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 16u8, val as u64) } } #[inline] - pub unsafe fn rtnl_link_state_raw(this: *const Self) -> net_device__bindgen_ty_3 { + pub unsafe fn rtnl_link_state_raw(this: *const Self) -> net_device__bindgen_ty_4 { unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( ::core::ptr::addr_of!((*this)._bitfield_1), @@ -73183,7 +73308,7 @@ impl net_device { } } #[inline] - pub unsafe fn set_rtnl_link_state_raw(this: *mut Self, val: net_device__bindgen_ty_3) { + pub unsafe fn set_rtnl_link_state_raw(this: *mut Self, val: net_device__bindgen_ty_4) { unsafe { let val: u32 = ::core::mem::transmute(val); <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( @@ -73196,7 +73321,7 @@ impl net_device { } #[inline] pub fn new_bitfield_1( - rtnl_link_state: net_device__bindgen_ty_3, + rtnl_link_state: net_device__bindgen_ty_4, ) -> __BindgenBitfieldUnit<[u8; 2usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 16u8, { @@ -73248,8 +73373,167 @@ impl net_device { __bindgen_bitfield_unit } #[inline] - pub fn new_bitfield_3() -> __BindgenBitfieldUnit<[u8; 8usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + pub fn see_all_hwtstamp_requests(&self) -> ::core::ffi::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_3.get(0usize, 1u8) as u64) } + } + #[inline] + pub fn set_see_all_hwtstamp_requests(&mut self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_3.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn see_all_hwtstamp_requests_raw(this: *const Self) -> ::core::ffi::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 0usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_see_all_hwtstamp_requests_raw(this: *mut Self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn change_proto_down(&self) -> ::core::ffi::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_3.get(1usize, 1u8) as u64) } + } + #[inline] + pub fn set_change_proto_down(&mut self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_3.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn change_proto_down_raw(this: *const Self) -> ::core::ffi::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 1usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_change_proto_down_raw(this: *mut Self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn netns_local(&self) -> ::core::ffi::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_3.get(2usize, 1u8) as u64) } + } + #[inline] + pub fn set_netns_local(&mut self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_3.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn netns_local_raw(this: *const Self) -> ::core::ffi::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 2usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_netns_local_raw(this: *mut Self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fcoe_mtu(&self) -> ::core::ffi::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_3.get(3usize, 1u8) as u64) } + } + #[inline] + pub fn set_fcoe_mtu(&mut self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_3.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fcoe_mtu_raw(this: *const Self) -> ::core::ffi::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 3usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_fcoe_mtu_raw(this: *mut Self, val: ::core::ffi::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_3( + see_all_hwtstamp_requests: ::core::ffi::c_ulong, + change_proto_down: ::core::ffi::c_ulong, + netns_local: ::core::ffi::c_ulong, + fcoe_mtu: ::core::ffi::c_ulong, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let see_all_hwtstamp_requests: u64 = + unsafe { ::core::mem::transmute(see_all_hwtstamp_requests) }; + see_all_hwtstamp_requests as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let change_proto_down: u64 = unsafe { ::core::mem::transmute(change_proto_down) }; + change_proto_down as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let netns_local: u64 = unsafe { ::core::mem::transmute(netns_local) }; + netns_local as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let fcoe_mtu: u64 = unsafe { ::core::mem::transmute(fcoe_mtu) }; + fcoe_mtu as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_4() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); __bindgen_bitfield_unit } } @@ -74133,90 +74417,6 @@ const _: () = { [::core::mem::offset_of!(net_device_path_ctx, vlan) - 20usize]; }; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rtnl_link_stats64 { - pub rx_packets: __u64, - pub tx_packets: __u64, - pub rx_bytes: __u64, - pub tx_bytes: __u64, - pub rx_errors: __u64, - pub tx_errors: __u64, - pub rx_dropped: __u64, - pub tx_dropped: __u64, - pub multicast: __u64, - pub collisions: __u64, - pub rx_length_errors: __u64, - pub rx_over_errors: __u64, - pub rx_crc_errors: __u64, - pub rx_frame_errors: __u64, - pub rx_fifo_errors: __u64, - pub rx_missed_errors: __u64, - pub tx_aborted_errors: __u64, - pub tx_carrier_errors: __u64, - pub tx_fifo_errors: __u64, - pub tx_heartbeat_errors: __u64, - pub tx_window_errors: __u64, - pub rx_compressed: __u64, - pub tx_compressed: __u64, - pub rx_nohandler: __u64, - pub rx_otherhost_dropped: __u64, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of rtnl_link_stats64"][::core::mem::size_of::() - 200usize]; - ["Alignment of rtnl_link_stats64"][::core::mem::align_of::() - 8usize]; - ["Offset of field: rtnl_link_stats64::rx_packets"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_packets) - 0usize]; - ["Offset of field: rtnl_link_stats64::tx_packets"] - [::core::mem::offset_of!(rtnl_link_stats64, tx_packets) - 8usize]; - ["Offset of field: rtnl_link_stats64::rx_bytes"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_bytes) - 16usize]; - ["Offset of field: rtnl_link_stats64::tx_bytes"] - [::core::mem::offset_of!(rtnl_link_stats64, tx_bytes) - 24usize]; - ["Offset of field: rtnl_link_stats64::rx_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_errors) - 32usize]; - ["Offset of field: rtnl_link_stats64::tx_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, tx_errors) - 40usize]; - ["Offset of field: rtnl_link_stats64::rx_dropped"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_dropped) - 48usize]; - ["Offset of field: rtnl_link_stats64::tx_dropped"] - [::core::mem::offset_of!(rtnl_link_stats64, tx_dropped) - 56usize]; - ["Offset of field: rtnl_link_stats64::multicast"] - [::core::mem::offset_of!(rtnl_link_stats64, multicast) - 64usize]; - ["Offset of field: rtnl_link_stats64::collisions"] - [::core::mem::offset_of!(rtnl_link_stats64, collisions) - 72usize]; - ["Offset of field: rtnl_link_stats64::rx_length_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_length_errors) - 80usize]; - ["Offset of field: rtnl_link_stats64::rx_over_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_over_errors) - 88usize]; - ["Offset of field: rtnl_link_stats64::rx_crc_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_crc_errors) - 96usize]; - ["Offset of field: rtnl_link_stats64::rx_frame_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_frame_errors) - 104usize]; - ["Offset of field: rtnl_link_stats64::rx_fifo_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_fifo_errors) - 112usize]; - ["Offset of field: rtnl_link_stats64::rx_missed_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_missed_errors) - 120usize]; - ["Offset of field: rtnl_link_stats64::tx_aborted_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, tx_aborted_errors) - 128usize]; - ["Offset of field: rtnl_link_stats64::tx_carrier_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, tx_carrier_errors) - 136usize]; - ["Offset of field: rtnl_link_stats64::tx_fifo_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, tx_fifo_errors) - 144usize]; - ["Offset of field: rtnl_link_stats64::tx_heartbeat_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, tx_heartbeat_errors) - 152usize]; - ["Offset of field: rtnl_link_stats64::tx_window_errors"] - [::core::mem::offset_of!(rtnl_link_stats64, tx_window_errors) - 160usize]; - ["Offset of field: rtnl_link_stats64::rx_compressed"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_compressed) - 168usize]; - ["Offset of field: rtnl_link_stats64::tx_compressed"] - [::core::mem::offset_of!(rtnl_link_stats64, tx_compressed) - 176usize]; - ["Offset of field: rtnl_link_stats64::rx_nohandler"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_nohandler) - 184usize]; - ["Offset of field: rtnl_link_stats64::rx_otherhost_dropped"] - [::core::mem::offset_of!(rtnl_link_stats64, rx_otherhost_dropped) - 192usize]; -}; -#[repr(C)] pub struct net_generic { pub __bindgen_anon_1: net_generic__bindgen_ty_1, } @@ -74572,25 +74772,26 @@ pub struct netdev_queue { pub qdisc: *mut Qdisc, pub qdisc_sleeping: *mut Qdisc, pub kobj: kobject, - pub numa_node: ::core::ffi::c_int, pub tx_maxrate: ::core::ffi::c_ulong, pub trans_timeout: atomic_long_t, pub sb_dev: *mut net_device, pub pool: *mut xsk_buff_pool, - pub napi: *mut napi_struct, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub dql: dql, pub _xmit_lock: spinlock_t, pub xmit_lock_owner: ::core::ffi::c_int, pub trans_start: ::core::ffi::c_ulong, pub state: ::core::ffi::c_ulong, + pub napi: *mut napi_struct, + pub numa_node: ::core::ffi::c_int, pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 40usize]>, - pub dql: dql, + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 24usize]>, + pub __bindgen_padding_0: u32, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of netdev_queue"][::core::mem::size_of::() - 384usize]; + ["Size of netdev_queue"][::core::mem::size_of::() - 320usize]; ["Alignment of netdev_queue"][::core::mem::align_of::() - 8usize]; ["Offset of field: netdev_queue::dev"][::core::mem::offset_of!(netdev_queue, dev) - 0usize]; ["Offset of field: netdev_queue::dev_tracker"] @@ -74599,26 +74800,38 @@ const _: () = { ["Offset of field: netdev_queue::qdisc_sleeping"] [::core::mem::offset_of!(netdev_queue, qdisc_sleeping) - 16usize]; ["Offset of field: netdev_queue::kobj"][::core::mem::offset_of!(netdev_queue, kobj) - 24usize]; - ["Offset of field: netdev_queue::numa_node"] - [::core::mem::offset_of!(netdev_queue, numa_node) - 88usize]; ["Offset of field: netdev_queue::tx_maxrate"] - [::core::mem::offset_of!(netdev_queue, tx_maxrate) - 96usize]; + [::core::mem::offset_of!(netdev_queue, tx_maxrate) - 88usize]; ["Offset of field: netdev_queue::trans_timeout"] - [::core::mem::offset_of!(netdev_queue, trans_timeout) - 104usize]; + [::core::mem::offset_of!(netdev_queue, trans_timeout) - 96usize]; ["Offset of field: netdev_queue::sb_dev"] - [::core::mem::offset_of!(netdev_queue, sb_dev) - 112usize]; - ["Offset of field: netdev_queue::pool"][::core::mem::offset_of!(netdev_queue, pool) - 120usize]; - ["Offset of field: netdev_queue::napi"][::core::mem::offset_of!(netdev_queue, napi) - 128usize]; + [::core::mem::offset_of!(netdev_queue, sb_dev) - 104usize]; + ["Offset of field: netdev_queue::pool"][::core::mem::offset_of!(netdev_queue, pool) - 112usize]; + ["Offset of field: netdev_queue::dql"][::core::mem::offset_of!(netdev_queue, dql) - 128usize]; ["Offset of field: netdev_queue::_xmit_lock"] - [::core::mem::offset_of!(netdev_queue, _xmit_lock) - 192usize]; + [::core::mem::offset_of!(netdev_queue, _xmit_lock) - 256usize]; ["Offset of field: netdev_queue::xmit_lock_owner"] - [::core::mem::offset_of!(netdev_queue, xmit_lock_owner) - 196usize]; + [::core::mem::offset_of!(netdev_queue, xmit_lock_owner) - 260usize]; ["Offset of field: netdev_queue::trans_start"] - [::core::mem::offset_of!(netdev_queue, trans_start) - 200usize]; + [::core::mem::offset_of!(netdev_queue, trans_start) - 264usize]; ["Offset of field: netdev_queue::state"] - [::core::mem::offset_of!(netdev_queue, state) - 208usize]; - ["Offset of field: netdev_queue::dql"][::core::mem::offset_of!(netdev_queue, dql) - 256usize]; + [::core::mem::offset_of!(netdev_queue, state) - 272usize]; + ["Offset of field: netdev_queue::napi"][::core::mem::offset_of!(netdev_queue, napi) - 280usize]; + ["Offset of field: netdev_queue::numa_node"] + [::core::mem::offset_of!(netdev_queue, numa_node) - 288usize]; }; +impl netdev_queue { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct netdev_queue_mgmt_ops { @@ -74811,6 +75024,20 @@ impl xdp_rxq_info { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct pp_memory_provider_params { + pub mp_priv: *mut ::core::ffi::c_void, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of pp_memory_provider_params"] + [::core::mem::size_of::() - 8usize]; + ["Alignment of pp_memory_provider_params"] + [::core::mem::align_of::() - 8usize]; + ["Offset of field: pp_memory_provider_params::mp_priv"] + [::core::mem::offset_of!(pp_memory_provider_params, mp_priv) - 0usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct netdev_rx_queue { pub xdp_rxq: xdp_rxq_info, pub rps_map: *mut rps_map, @@ -74820,8 +75047,9 @@ pub struct netdev_rx_queue { pub dev_tracker: netdevice_tracker, pub pool: *mut xsk_buff_pool, pub napi: *mut napi_struct, + pub mp_params: pp_memory_provider_params, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -74843,11 +75071,13 @@ const _: () = { [::core::mem::offset_of!(netdev_rx_queue, pool) - 152usize]; ["Offset of field: netdev_rx_queue::napi"] [::core::mem::offset_of!(netdev_rx_queue, napi) - 160usize]; + ["Offset of field: netdev_rx_queue::mp_params"] + [::core::mem::offset_of!(netdev_rx_queue, mp_params) - 168usize]; }; impl netdev_rx_queue { #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); __bindgen_bitfield_unit } } @@ -74888,100 +75118,6 @@ const _: () = { [::core::mem::offset_of!(netdev_stat_ops, get_base_stats) - 16usize]; }; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct netlbl_lsm_cache { - pub refcount: refcount_t, - pub free: ::core::option::Option, - pub data: *mut ::core::ffi::c_void, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of netlbl_lsm_cache"][::core::mem::size_of::() - 24usize]; - ["Alignment of netlbl_lsm_cache"][::core::mem::align_of::() - 8usize]; - ["Offset of field: netlbl_lsm_cache::refcount"] - [::core::mem::offset_of!(netlbl_lsm_cache, refcount) - 0usize]; - ["Offset of field: netlbl_lsm_cache::free"] - [::core::mem::offset_of!(netlbl_lsm_cache, free) - 8usize]; - ["Offset of field: netlbl_lsm_cache::data"] - [::core::mem::offset_of!(netlbl_lsm_cache, data) - 16usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct netlbl_lsm_catmap { - pub startbit: u32_, - pub bitmap: [u64_; 4usize], - pub next: *mut netlbl_lsm_catmap, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of netlbl_lsm_catmap"][::core::mem::size_of::() - 48usize]; - ["Alignment of netlbl_lsm_catmap"][::core::mem::align_of::() - 8usize]; - ["Offset of field: netlbl_lsm_catmap::startbit"] - [::core::mem::offset_of!(netlbl_lsm_catmap, startbit) - 0usize]; - ["Offset of field: netlbl_lsm_catmap::bitmap"] - [::core::mem::offset_of!(netlbl_lsm_catmap, bitmap) - 8usize]; - ["Offset of field: netlbl_lsm_catmap::next"] - [::core::mem::offset_of!(netlbl_lsm_catmap, next) - 40usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct netlbl_lsm_secattr { - pub flags: u32_, - pub type_: u32_, - pub domain: *mut ::core::ffi::c_char, - pub cache: *mut netlbl_lsm_cache, - pub attr: netlbl_lsm_secattr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct netlbl_lsm_secattr__bindgen_ty_1 { - pub mls: netlbl_lsm_secattr__bindgen_ty_1__bindgen_ty_1, - pub secid: u32_, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct netlbl_lsm_secattr__bindgen_ty_1__bindgen_ty_1 { - pub cat: *mut netlbl_lsm_catmap, - pub lvl: u32_, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of netlbl_lsm_secattr__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::size_of::() - 16usize]; - ["Alignment of netlbl_lsm_secattr__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: netlbl_lsm_secattr__bindgen_ty_1__bindgen_ty_1::cat"] - [::core::mem::offset_of!(netlbl_lsm_secattr__bindgen_ty_1__bindgen_ty_1, cat) - 0usize]; - ["Offset of field: netlbl_lsm_secattr__bindgen_ty_1__bindgen_ty_1::lvl"] - [::core::mem::offset_of!(netlbl_lsm_secattr__bindgen_ty_1__bindgen_ty_1, lvl) - 8usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of netlbl_lsm_secattr__bindgen_ty_1"] - [::core::mem::size_of::() - 24usize]; - ["Alignment of netlbl_lsm_secattr__bindgen_ty_1"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: netlbl_lsm_secattr__bindgen_ty_1::mls"] - [::core::mem::offset_of!(netlbl_lsm_secattr__bindgen_ty_1, mls) - 0usize]; - ["Offset of field: netlbl_lsm_secattr__bindgen_ty_1::secid"] - [::core::mem::offset_of!(netlbl_lsm_secattr__bindgen_ty_1, secid) - 16usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of netlbl_lsm_secattr"][::core::mem::size_of::() - 48usize]; - ["Alignment of netlbl_lsm_secattr"][::core::mem::align_of::() - 8usize]; - ["Offset of field: netlbl_lsm_secattr::flags"] - [::core::mem::offset_of!(netlbl_lsm_secattr, flags) - 0usize]; - ["Offset of field: netlbl_lsm_secattr::type_"] - [::core::mem::offset_of!(netlbl_lsm_secattr, type_) - 4usize]; - ["Offset of field: netlbl_lsm_secattr::domain"] - [::core::mem::offset_of!(netlbl_lsm_secattr, domain) - 8usize]; - ["Offset of field: netlbl_lsm_secattr::cache"] - [::core::mem::offset_of!(netlbl_lsm_secattr, cache) - 16usize]; - ["Offset of field: netlbl_lsm_secattr::attr"] - [::core::mem::offset_of!(netlbl_lsm_secattr, attr) - 24usize]; -}; -#[repr(C)] #[derive(Copy, Clone)] pub struct netlink_callback { pub skb: *mut sk_buff, @@ -76299,7 +76435,8 @@ const _: () = { pub struct nfs4_label { pub lfs: u32, pub pi: u32, - pub lsmctx: lsmcontext, + pub len: u32_, + pub label: *mut ::core::ffi::c_char, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -76307,7 +76444,8 @@ const _: () = { ["Alignment of nfs4_label"][::core::mem::align_of::() - 8usize]; ["Offset of field: nfs4_label::lfs"][::core::mem::offset_of!(nfs4_label, lfs) - 0usize]; ["Offset of field: nfs4_label::pi"][::core::mem::offset_of!(nfs4_label, pi) - 4usize]; - ["Offset of field: nfs4_label::lsmctx"][::core::mem::offset_of!(nfs4_label, lsmctx) - 8usize]; + ["Offset of field: nfs4_label::len"][::core::mem::offset_of!(nfs4_label, len) - 8usize]; + ["Offset of field: nfs4_label::label"][::core::mem::offset_of!(nfs4_label, label) - 16usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -76360,7 +76498,7 @@ const _: () = { #[derive(Copy, Clone)] pub struct nfs_seqid_counter { pub create_time: ktime_t, - pub owner_id: ::core::ffi::c_int, + pub owner_id: u64_, pub flags: ::core::ffi::c_int, pub counter: u32_, pub lock: spinlock_t, @@ -76369,22 +76507,22 @@ pub struct nfs_seqid_counter { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of nfs_seqid_counter"][::core::mem::size_of::() - 240usize]; + ["Size of nfs_seqid_counter"][::core::mem::size_of::() - 248usize]; ["Alignment of nfs_seqid_counter"][::core::mem::align_of::() - 8usize]; ["Offset of field: nfs_seqid_counter::create_time"] [::core::mem::offset_of!(nfs_seqid_counter, create_time) - 0usize]; ["Offset of field: nfs_seqid_counter::owner_id"] [::core::mem::offset_of!(nfs_seqid_counter, owner_id) - 8usize]; ["Offset of field: nfs_seqid_counter::flags"] - [::core::mem::offset_of!(nfs_seqid_counter, flags) - 12usize]; + [::core::mem::offset_of!(nfs_seqid_counter, flags) - 16usize]; ["Offset of field: nfs_seqid_counter::counter"] - [::core::mem::offset_of!(nfs_seqid_counter, counter) - 16usize]; + [::core::mem::offset_of!(nfs_seqid_counter, counter) - 20usize]; ["Offset of field: nfs_seqid_counter::lock"] - [::core::mem::offset_of!(nfs_seqid_counter, lock) - 20usize]; + [::core::mem::offset_of!(nfs_seqid_counter, lock) - 24usize]; ["Offset of field: nfs_seqid_counter::list"] - [::core::mem::offset_of!(nfs_seqid_counter, list) - 24usize]; + [::core::mem::offset_of!(nfs_seqid_counter, list) - 32usize]; ["Offset of field: nfs_seqid_counter::wait"] - [::core::mem::offset_of!(nfs_seqid_counter, wait) - 40usize]; + [::core::mem::offset_of!(nfs_seqid_counter, wait) - 48usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -76454,7 +76592,7 @@ pub struct nfs4_lock_state { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of nfs4_lock_state"][::core::mem::size_of::() - 304usize]; + ["Size of nfs4_lock_state"][::core::mem::size_of::() - 312usize]; ["Alignment of nfs4_lock_state"][::core::mem::align_of::() - 8usize]; ["Offset of field: nfs4_lock_state::ls_locks"] [::core::mem::offset_of!(nfs4_lock_state, ls_locks) - 0usize]; @@ -76465,11 +76603,11 @@ const _: () = { ["Offset of field: nfs4_lock_state::ls_seqid"] [::core::mem::offset_of!(nfs4_lock_state, ls_seqid) - 32usize]; ["Offset of field: nfs4_lock_state::ls_stateid"] - [::core::mem::offset_of!(nfs4_lock_state, ls_stateid) - 272usize]; + [::core::mem::offset_of!(nfs4_lock_state, ls_stateid) - 280usize]; ["Offset of field: nfs4_lock_state::ls_count"] - [::core::mem::offset_of!(nfs4_lock_state, ls_count) - 292usize]; + [::core::mem::offset_of!(nfs4_lock_state, ls_count) - 300usize]; ["Offset of field: nfs4_lock_state::ls_owner"] - [::core::mem::offset_of!(nfs4_lock_state, ls_owner) - 296usize]; + [::core::mem::offset_of!(nfs4_lock_state, ls_owner) - 304usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -76807,7 +76945,7 @@ pub struct nfs4_state_owner { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of nfs4_state_owner"][::core::mem::size_of::() - 368usize]; + ["Size of nfs4_state_owner"][::core::mem::size_of::() - 376usize]; ["Alignment of nfs4_state_owner"][::core::mem::align_of::() - 8usize]; ["Offset of field: nfs4_state_owner::so_server"] [::core::mem::offset_of!(nfs4_state_owner, so_server) - 0usize]; @@ -76830,7 +76968,7 @@ const _: () = { ["Offset of field: nfs4_state_owner::so_seqid"] [::core::mem::offset_of!(nfs4_state_owner, so_seqid) - 96usize]; ["Offset of field: nfs4_state_owner::so_delegreturn_mutex"] - [::core::mem::offset_of!(nfs4_state_owner, so_delegreturn_mutex) - 336usize]; + [::core::mem::offset_of!(nfs4_state_owner, so_delegreturn_mutex) - 344usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -77044,10 +77182,14 @@ pub struct nfs_client { pub cl_net: *mut net, pub pending_cb_stateids: list_head, pub rcu: callback_head, + pub cl_nfssvc_boot: timespec64, + pub cl_boot_lock: seqlock_t, + pub cl_uuid: nfs_uuid_t, + pub cl_localio_lock: spinlock_t, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of nfs_client"][::core::mem::size_of::() - 856usize]; + ["Size of nfs_client"][::core::mem::size_of::() - 936usize]; ["Alignment of nfs_client"][::core::mem::align_of::() - 8usize]; ["Offset of field: nfs_client::cl_count"] [::core::mem::offset_of!(nfs_client, cl_count) - 0usize]; @@ -77143,6 +77285,14 @@ const _: () = { ["Offset of field: nfs_client::pending_cb_stateids"] [::core::mem::offset_of!(nfs_client, pending_cb_stateids) - 824usize]; ["Offset of field: nfs_client::rcu"][::core::mem::offset_of!(nfs_client, rcu) - 840usize]; + ["Offset of field: nfs_client::cl_nfssvc_boot"] + [::core::mem::offset_of!(nfs_client, cl_nfssvc_boot) - 856usize]; + ["Offset of field: nfs_client::cl_boot_lock"] + [::core::mem::offset_of!(nfs_client, cl_boot_lock) - 872usize]; + ["Offset of field: nfs_client::cl_uuid"] + [::core::mem::offset_of!(nfs_client, cl_uuid) - 880usize]; + ["Offset of field: nfs_client::cl_localio_lock"] + [::core::mem::offset_of!(nfs_client, cl_localio_lock) - 928usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -78883,19 +79033,18 @@ pub struct nfs_server { pub auth_info: nfs_auth_info, pub fscache: *mut fscache_volume, pub fscache_uniq: *mut ::core::ffi::c_char, + pub fh_expire_type: u32_, pub pnfs_blksize: u32_, pub attr_bitmask: [u32_; 3usize], pub attr_bitmask_nl: [u32_; 3usize], pub exclcreat_bitmask: [u32_; 3usize], pub cache_consistency_bitmask: [u32_; 3usize], pub acl_bitmask: u32_, - pub fh_expire_type: u32_, pub pnfs_curr_ld: *mut pnfs_layoutdriver_type, pub roc_rpcwaitq: rpc_wait_queue, pub pnfs_ld_data: *mut ::core::ffi::c_void, pub state_owners: rb_root, - pub openowner_id: ida, - pub lockowner_id: ida, + pub owner_ctr: atomic64_t, pub state_owners_lru: list_head, pub layouts: list_head, pub delegations: list_head, @@ -78921,7 +79070,7 @@ pub struct nfs_server { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of nfs_server"][::core::mem::size_of::() - 1232usize]; + ["Size of nfs_server"][::core::mem::size_of::() - 1208usize]; ["Alignment of nfs_server"][::core::mem::align_of::() - 8usize]; ["Offset of field: nfs_server::nfs_client"] [::core::mem::offset_of!(nfs_server, nfs_client) - 0usize]; @@ -78993,20 +79142,20 @@ const _: () = { [::core::mem::offset_of!(nfs_server, fscache) - 320usize]; ["Offset of field: nfs_server::fscache_uniq"] [::core::mem::offset_of!(nfs_server, fscache_uniq) - 328usize]; + ["Offset of field: nfs_server::fh_expire_type"] + [::core::mem::offset_of!(nfs_server, fh_expire_type) - 336usize]; ["Offset of field: nfs_server::pnfs_blksize"] - [::core::mem::offset_of!(nfs_server, pnfs_blksize) - 336usize]; + [::core::mem::offset_of!(nfs_server, pnfs_blksize) - 340usize]; ["Offset of field: nfs_server::attr_bitmask"] - [::core::mem::offset_of!(nfs_server, attr_bitmask) - 340usize]; + [::core::mem::offset_of!(nfs_server, attr_bitmask) - 344usize]; ["Offset of field: nfs_server::attr_bitmask_nl"] - [::core::mem::offset_of!(nfs_server, attr_bitmask_nl) - 352usize]; + [::core::mem::offset_of!(nfs_server, attr_bitmask_nl) - 356usize]; ["Offset of field: nfs_server::exclcreat_bitmask"] - [::core::mem::offset_of!(nfs_server, exclcreat_bitmask) - 364usize]; + [::core::mem::offset_of!(nfs_server, exclcreat_bitmask) - 368usize]; ["Offset of field: nfs_server::cache_consistency_bitmask"] - [::core::mem::offset_of!(nfs_server, cache_consistency_bitmask) - 376usize]; + [::core::mem::offset_of!(nfs_server, cache_consistency_bitmask) - 380usize]; ["Offset of field: nfs_server::acl_bitmask"] - [::core::mem::offset_of!(nfs_server, acl_bitmask) - 388usize]; - ["Offset of field: nfs_server::fh_expire_type"] - [::core::mem::offset_of!(nfs_server, fh_expire_type) - 392usize]; + [::core::mem::offset_of!(nfs_server, acl_bitmask) - 392usize]; ["Offset of field: nfs_server::pnfs_curr_ld"] [::core::mem::offset_of!(nfs_server, pnfs_curr_ld) - 400usize]; ["Offset of field: nfs_server::roc_rpcwaitq"] @@ -79015,50 +79164,48 @@ const _: () = { [::core::mem::offset_of!(nfs_server, pnfs_ld_data) - 608usize]; ["Offset of field: nfs_server::state_owners"] [::core::mem::offset_of!(nfs_server, state_owners) - 616usize]; - ["Offset of field: nfs_server::openowner_id"] - [::core::mem::offset_of!(nfs_server, openowner_id) - 624usize]; - ["Offset of field: nfs_server::lockowner_id"] - [::core::mem::offset_of!(nfs_server, lockowner_id) - 640usize]; + ["Offset of field: nfs_server::owner_ctr"] + [::core::mem::offset_of!(nfs_server, owner_ctr) - 624usize]; ["Offset of field: nfs_server::state_owners_lru"] - [::core::mem::offset_of!(nfs_server, state_owners_lru) - 656usize]; + [::core::mem::offset_of!(nfs_server, state_owners_lru) - 632usize]; ["Offset of field: nfs_server::layouts"] - [::core::mem::offset_of!(nfs_server, layouts) - 672usize]; + [::core::mem::offset_of!(nfs_server, layouts) - 648usize]; ["Offset of field: nfs_server::delegations"] - [::core::mem::offset_of!(nfs_server, delegations) - 688usize]; + [::core::mem::offset_of!(nfs_server, delegations) - 664usize]; ["Offset of field: nfs_server::ss_copies"] - [::core::mem::offset_of!(nfs_server, ss_copies) - 704usize]; + [::core::mem::offset_of!(nfs_server, ss_copies) - 680usize]; ["Offset of field: nfs_server::ss_src_copies"] - [::core::mem::offset_of!(nfs_server, ss_src_copies) - 720usize]; + [::core::mem::offset_of!(nfs_server, ss_src_copies) - 696usize]; ["Offset of field: nfs_server::delegation_flags"] - [::core::mem::offset_of!(nfs_server, delegation_flags) - 736usize]; + [::core::mem::offset_of!(nfs_server, delegation_flags) - 712usize]; ["Offset of field: nfs_server::delegation_gen"] - [::core::mem::offset_of!(nfs_server, delegation_gen) - 744usize]; + [::core::mem::offset_of!(nfs_server, delegation_gen) - 720usize]; ["Offset of field: nfs_server::mig_gen"] - [::core::mem::offset_of!(nfs_server, mig_gen) - 752usize]; + [::core::mem::offset_of!(nfs_server, mig_gen) - 728usize]; ["Offset of field: nfs_server::mig_status"] - [::core::mem::offset_of!(nfs_server, mig_status) - 760usize]; + [::core::mem::offset_of!(nfs_server, mig_status) - 736usize]; ["Offset of field: nfs_server::destroy"] - [::core::mem::offset_of!(nfs_server, destroy) - 768usize]; - ["Offset of field: nfs_server::active"][::core::mem::offset_of!(nfs_server, active) - 776usize]; + [::core::mem::offset_of!(nfs_server, destroy) - 744usize]; + ["Offset of field: nfs_server::active"][::core::mem::offset_of!(nfs_server, active) - 752usize]; ["Offset of field: nfs_server::mountd_address"] - [::core::mem::offset_of!(nfs_server, mountd_address) - 784usize]; + [::core::mem::offset_of!(nfs_server, mountd_address) - 760usize]; ["Offset of field: nfs_server::mountd_addrlen"] - [::core::mem::offset_of!(nfs_server, mountd_addrlen) - 912usize]; + [::core::mem::offset_of!(nfs_server, mountd_addrlen) - 888usize]; ["Offset of field: nfs_server::mountd_version"] - [::core::mem::offset_of!(nfs_server, mountd_version) - 920usize]; + [::core::mem::offset_of!(nfs_server, mountd_version) - 896usize]; ["Offset of field: nfs_server::mountd_port"] - [::core::mem::offset_of!(nfs_server, mountd_port) - 924usize]; + [::core::mem::offset_of!(nfs_server, mountd_port) - 900usize]; ["Offset of field: nfs_server::mountd_protocol"] - [::core::mem::offset_of!(nfs_server, mountd_protocol) - 926usize]; + [::core::mem::offset_of!(nfs_server, mountd_protocol) - 902usize]; ["Offset of field: nfs_server::uoc_rpcwaitq"] - [::core::mem::offset_of!(nfs_server, uoc_rpcwaitq) - 928usize]; + [::core::mem::offset_of!(nfs_server, uoc_rpcwaitq) - 904usize]; ["Offset of field: nfs_server::read_hdrsize"] - [::core::mem::offset_of!(nfs_server, read_hdrsize) - 1128usize]; - ["Offset of field: nfs_server::cred"][::core::mem::offset_of!(nfs_server, cred) - 1136usize]; + [::core::mem::offset_of!(nfs_server, read_hdrsize) - 1104usize]; + ["Offset of field: nfs_server::cred"][::core::mem::offset_of!(nfs_server, cred) - 1112usize]; ["Offset of field: nfs_server::has_sec_mnt_opts"] - [::core::mem::offset_of!(nfs_server, has_sec_mnt_opts) - 1144usize]; - ["Offset of field: nfs_server::kobj"][::core::mem::offset_of!(nfs_server, kobj) - 1152usize]; - ["Offset of field: nfs_server::rcu"][::core::mem::offset_of!(nfs_server, rcu) - 1216usize]; + [::core::mem::offset_of!(nfs_server, has_sec_mnt_opts) - 1120usize]; + ["Offset of field: nfs_server::kobj"][::core::mem::offset_of!(nfs_server, kobj) - 1128usize]; + ["Offset of field: nfs_server::rcu"][::core::mem::offset_of!(nfs_server, rcu) - 1192usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -79094,7 +79241,7 @@ const _: () = { pub struct nh_grp_entry { pub nh: *mut nexthop, pub stats: *mut nh_grp_entry_stats, - pub weight: u8_, + pub weight: u16_, pub __bindgen_anon_1: nh_grp_entry__bindgen_ty_1, pub nh_list: list_head, pub nh_parent: *mut nexthop, @@ -79633,6 +79780,183 @@ const _: () = { ["Offset of field: old_timespec32::tv_nsec"] [::core::mem::offset_of!(old_timespec32, tv_nsec) - 4usize]; }; +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct orc_entry { + pub sp_offset: s16, + pub bp_offset: s16, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of orc_entry"][::core::mem::size_of::() - 6usize]; + ["Alignment of orc_entry"][::core::mem::align_of::() - 1usize]; + ["Offset of field: orc_entry::sp_offset"] + [::core::mem::offset_of!(orc_entry, sp_offset) - 0usize]; + ["Offset of field: orc_entry::bp_offset"] + [::core::mem::offset_of!(orc_entry, bp_offset) - 2usize]; +}; +impl orc_entry { + #[inline] + pub fn sp_reg(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) } + } + #[inline] + pub fn set_sp_reg(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn sp_reg_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 4u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_sp_reg_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn bp_reg(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u32) } + } + #[inline] + pub fn set_bp_reg(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn bp_reg_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 4u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_bp_reg_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn type_(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u32) } + } + #[inline] + pub fn set_type(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn type__raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 3u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_type_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn signal(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_signal(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn signal_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_signal_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + sp_reg: ::core::ffi::c_uint, + bp_reg: ::core::ffi::c_uint, + type_: ::core::ffi::c_uint, + signal: ::core::ffi::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let sp_reg: u32 = unsafe { ::core::mem::transmute(sp_reg) }; + sp_reg as u64 + }); + __bindgen_bitfield_unit.set(4usize, 4u8, { + let bp_reg: u32 = unsafe { ::core::mem::transmute(bp_reg) }; + bp_reg as u64 + }); + __bindgen_bitfield_unit.set(8usize, 3u8, { + let type_: u32 = unsafe { ::core::mem::transmute(type_) }; + type_ as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let signal: u32 = unsafe { ::core::mem::transmute(signal) }; + signal as u64 + }); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct pacct_struct { @@ -79816,6 +80140,7 @@ const _: () = { #[derive(Debug, Copy, Clone)] pub struct page_pool_params_slow { pub netdev: *mut net_device, + pub queue_idx: ::core::ffi::c_uint, pub flags: ::core::ffi::c_uint, pub init_callback: ::core::option::Option< unsafe extern "C" fn(arg1: netmem_ref, arg2: *mut ::core::ffi::c_void), @@ -79829,8 +80154,10 @@ const _: () = { [::core::mem::align_of::() - 8usize]; ["Offset of field: page_pool_params_slow::netdev"] [::core::mem::offset_of!(page_pool_params_slow, netdev) - 0usize]; + ["Offset of field: page_pool_params_slow::queue_idx"] + [::core::mem::offset_of!(page_pool_params_slow, queue_idx) - 8usize]; ["Offset of field: page_pool_params_slow::flags"] - [::core::mem::offset_of!(page_pool_params_slow, flags) - 8usize]; + [::core::mem::offset_of!(page_pool_params_slow, flags) - 12usize]; ["Offset of field: page_pool_params_slow::init_callback"] [::core::mem::offset_of!(page_pool_params_slow, init_callback) - 16usize]; ["Offset of field: page_pool_params_slow::init_arg"] @@ -79864,6 +80191,8 @@ pub struct page_pool { pub _bitfield_align_4: [u8; 0], pub _bitfield_4: __BindgenBitfieldUnit<[u8; 56usize]>, pub ring: ptr_ring, + pub mp_priv: *mut ::core::ffi::c_void, + pub dma_mapped: xarray, pub recycle_stats: *mut page_pool_recycle_stats, pub pages_state_release_cnt: atomic_t, pub user_cnt: refcount_t, @@ -79871,7 +80200,7 @@ pub struct page_pool { pub slow: page_pool_params_slow, pub user: page_pool__bindgen_ty_2, pub _bitfield_align_5: [u8; 0], - pub _bitfield_5: __BindgenBitfieldUnit<[u8; 40usize]>, + pub _bitfield_5: __BindgenBitfieldUnit<[u8; 16usize]>, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -79939,16 +80268,20 @@ const _: () = { [::core::mem::offset_of!(page_pool, xdp_mem_id) - 256usize]; ["Offset of field: page_pool::alloc"][::core::mem::offset_of!(page_pool, alloc) - 320usize]; ["Offset of field: page_pool::ring"][::core::mem::offset_of!(page_pool, ring) - 1408usize]; + ["Offset of field: page_pool::mp_priv"] + [::core::mem::offset_of!(page_pool, mp_priv) - 1600usize]; + ["Offset of field: page_pool::dma_mapped"] + [::core::mem::offset_of!(page_pool, dma_mapped) - 1608usize]; ["Offset of field: page_pool::recycle_stats"] - [::core::mem::offset_of!(page_pool, recycle_stats) - 1600usize]; + [::core::mem::offset_of!(page_pool, recycle_stats) - 1624usize]; ["Offset of field: page_pool::pages_state_release_cnt"] - [::core::mem::offset_of!(page_pool, pages_state_release_cnt) - 1608usize]; + [::core::mem::offset_of!(page_pool, pages_state_release_cnt) - 1632usize]; ["Offset of field: page_pool::user_cnt"] - [::core::mem::offset_of!(page_pool, user_cnt) - 1612usize]; + [::core::mem::offset_of!(page_pool, user_cnt) - 1636usize]; ["Offset of field: page_pool::destroy_cnt"] - [::core::mem::offset_of!(page_pool, destroy_cnt) - 1616usize]; - ["Offset of field: page_pool::slow"][::core::mem::offset_of!(page_pool, slow) - 1624usize]; - ["Offset of field: page_pool::user"][::core::mem::offset_of!(page_pool, user) - 1656usize]; + [::core::mem::offset_of!(page_pool, destroy_cnt) - 1640usize]; + ["Offset of field: page_pool::slow"][::core::mem::offset_of!(page_pool, slow) - 1648usize]; + ["Offset of field: page_pool::user"][::core::mem::offset_of!(page_pool, user) - 1680usize]; }; impl page_pool { #[inline] @@ -80114,6 +80447,11 @@ impl page_pool { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); __bindgen_bitfield_unit } + #[inline] + pub fn new_bitfield_5() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -80709,6 +81047,47 @@ impl percpu_ref_data { } } #[repr(C)] +#[derive(Copy, Clone)] +pub struct rcu_sync { + pub gp_state: ::core::ffi::c_int, + pub gp_count: ::core::ffi::c_int, + pub gp_wait: wait_queue_head_t, + pub cb_head: callback_head, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rcu_sync"][::core::mem::size_of::() - 48usize]; + ["Alignment of rcu_sync"][::core::mem::align_of::() - 8usize]; + ["Offset of field: rcu_sync::gp_state"][::core::mem::offset_of!(rcu_sync, gp_state) - 0usize]; + ["Offset of field: rcu_sync::gp_count"][::core::mem::offset_of!(rcu_sync, gp_count) - 4usize]; + ["Offset of field: rcu_sync::gp_wait"][::core::mem::offset_of!(rcu_sync, gp_wait) - 8usize]; + ["Offset of field: rcu_sync::cb_head"][::core::mem::offset_of!(rcu_sync, cb_head) - 32usize]; +}; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct percpu_rw_semaphore { + pub rss: rcu_sync, + pub read_count: *mut ::core::ffi::c_uint, + pub writer: rcuwait, + pub waiters: wait_queue_head_t, + pub block: atomic_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of percpu_rw_semaphore"][::core::mem::size_of::() - 96usize]; + ["Alignment of percpu_rw_semaphore"][::core::mem::align_of::() - 8usize]; + ["Offset of field: percpu_rw_semaphore::rss"] + [::core::mem::offset_of!(percpu_rw_semaphore, rss) - 0usize]; + ["Offset of field: percpu_rw_semaphore::read_count"] + [::core::mem::offset_of!(percpu_rw_semaphore, read_count) - 48usize]; + ["Offset of field: percpu_rw_semaphore::writer"] + [::core::mem::offset_of!(percpu_rw_semaphore, writer) - 56usize]; + ["Offset of field: percpu_rw_semaphore::waiters"] + [::core::mem::offset_of!(percpu_rw_semaphore, waiters) - 64usize]; + ["Offset of field: percpu_rw_semaphore::block"] + [::core::mem::offset_of!(percpu_rw_semaphore, block) - 88usize]; +}; +#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct perf_addr_filter_range { pub start: ::core::ffi::c_ulong, @@ -80775,6 +81154,7 @@ pub struct perf_buffer { pub free_aux: ::core::option::Option, pub aux_refcount: refcount_t, pub aux_in_sampling: ::core::ffi::c_int, + pub aux_in_pause_resume: ::core::ffi::c_int, pub aux_pages: *mut *mut ::core::ffi::c_void, pub aux_priv: *mut ::core::ffi::c_void, pub user_page: *mut perf_event_mmap_page, @@ -80782,7 +81162,7 @@ pub struct perf_buffer { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of perf_buffer"][::core::mem::size_of::() - 272usize]; + ["Size of perf_buffer"][::core::mem::size_of::() - 280usize]; ["Alignment of perf_buffer"][::core::mem::align_of::() - 8usize]; ["Offset of field: perf_buffer::refcount"] [::core::mem::offset_of!(perf_buffer, refcount) - 0usize]; @@ -80840,14 +81220,16 @@ const _: () = { [::core::mem::offset_of!(perf_buffer, aux_refcount) - 240usize]; ["Offset of field: perf_buffer::aux_in_sampling"] [::core::mem::offset_of!(perf_buffer, aux_in_sampling) - 244usize]; + ["Offset of field: perf_buffer::aux_in_pause_resume"] + [::core::mem::offset_of!(perf_buffer, aux_in_pause_resume) - 248usize]; ["Offset of field: perf_buffer::aux_pages"] - [::core::mem::offset_of!(perf_buffer, aux_pages) - 248usize]; + [::core::mem::offset_of!(perf_buffer, aux_pages) - 256usize]; ["Offset of field: perf_buffer::aux_priv"] - [::core::mem::offset_of!(perf_buffer, aux_priv) - 256usize]; + [::core::mem::offset_of!(perf_buffer, aux_priv) - 264usize]; ["Offset of field: perf_buffer::user_page"] - [::core::mem::offset_of!(perf_buffer, user_page) - 264usize]; + [::core::mem::offset_of!(perf_buffer, user_page) - 272usize]; ["Offset of field: perf_buffer::data_pages"] - [::core::mem::offset_of!(perf_buffer, data_pages) - 272usize]; + [::core::mem::offset_of!(perf_buffer, data_pages) - 280usize]; }; #[repr(C)] #[derive(Debug)] @@ -80872,10 +81254,10 @@ pub struct perf_cgroup { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of perf_cgroup"][::core::mem::size_of::() - 208usize]; + ["Size of perf_cgroup"][::core::mem::size_of::() - 216usize]; ["Alignment of perf_cgroup"][::core::mem::align_of::() - 8usize]; ["Offset of field: perf_cgroup::css"][::core::mem::offset_of!(perf_cgroup, css) - 0usize]; - ["Offset of field: perf_cgroup::info"][::core::mem::offset_of!(perf_cgroup, info) - 200usize]; + ["Offset of field: perf_cgroup::info"][::core::mem::offset_of!(perf_cgroup, info) - 208usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -80940,7 +81322,7 @@ pub struct perf_event_context { pub pin_count: ::core::ffi::c_int, pub nr_cgroups: ::core::ffi::c_int, pub callback_head: callback_head, - pub nr_pending: local_t, + pub nr_no_switch_fast: local_t, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -80994,8 +81376,8 @@ const _: () = { [::core::mem::offset_of!(perf_event_context, nr_cgroups) - 196usize]; ["Offset of field: perf_event_context::callback_head"] [::core::mem::offset_of!(perf_event_context, callback_head) - 200usize]; - ["Offset of field: perf_event_context::nr_pending"] - [::core::mem::offset_of!(perf_event_context, nr_pending) - 216usize]; + ["Offset of field: perf_event_context::nr_no_switch_fast"] + [::core::mem::offset_of!(perf_event_context, nr_no_switch_fast) - 216usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -81167,7 +81549,7 @@ pub struct perf_event_attr { pub sample_max_stack: __u16, pub __reserved_2: __u16, pub aux_sample_size: __u32, - pub __reserved_3: __u32, + pub __bindgen_anon_5: perf_event_attr__bindgen_ty_5, pub sig_data: __u64, pub config3: __u64, } @@ -81251,6 +81633,194 @@ const _: () = { ["Offset of field: perf_event_attr__bindgen_ty_4::config2"] [::core::mem::offset_of!(perf_event_attr__bindgen_ty_4, config2) - 0usize]; }; +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_event_attr__bindgen_ty_5 { + pub aux_action: __u32, + pub __bindgen_anon_1: perf_event_attr__bindgen_ty_5__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_event_attr__bindgen_ty_5__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of perf_event_attr__bindgen_ty_5__bindgen_ty_1"] + [::core::mem::size_of::() - 4usize]; + ["Alignment of perf_event_attr__bindgen_ty_5__bindgen_ty_1"] + [::core::mem::align_of::() - 4usize]; +}; +impl perf_event_attr__bindgen_ty_5__bindgen_ty_1 { + #[inline] + pub fn aux_start_paused(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_aux_start_paused(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn aux_start_paused_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_aux_start_paused_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn aux_pause(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_aux_pause(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn aux_pause_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_aux_pause_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn aux_resume(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_aux_resume(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn aux_resume_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_aux_resume_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn __reserved_3(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) } + } + #[inline] + pub fn set___reserved_3(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 29u8, val as u64) + } + } + #[inline] + pub unsafe fn __reserved_3_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 29u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set___reserved_3_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 29u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + aux_start_paused: __u32, + aux_pause: __u32, + aux_resume: __u32, + __reserved_3: __u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let aux_start_paused: u32 = unsafe { ::core::mem::transmute(aux_start_paused) }; + aux_start_paused as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let aux_pause: u32 = unsafe { ::core::mem::transmute(aux_pause) }; + aux_pause as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let aux_resume: u32 = unsafe { ::core::mem::transmute(aux_resume) }; + aux_resume as u64 + }); + __bindgen_bitfield_unit.set(3usize, 29u8, { + let __reserved_3: u32 = unsafe { ::core::mem::transmute(__reserved_3) }; + __reserved_3 as u64 + }); + __bindgen_bitfield_unit + } +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of perf_event_attr__bindgen_ty_5"] + [::core::mem::size_of::() - 4usize]; + ["Alignment of perf_event_attr__bindgen_ty_5"] + [::core::mem::align_of::() - 4usize]; + ["Offset of field: perf_event_attr__bindgen_ty_5::aux_action"] + [::core::mem::offset_of!(perf_event_attr__bindgen_ty_5, aux_action) - 0usize]; +}; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of perf_event_attr"][::core::mem::size_of::() - 136usize]; @@ -81285,8 +81855,6 @@ const _: () = { [::core::mem::offset_of!(perf_event_attr, __reserved_2) - 110usize]; ["Offset of field: perf_event_attr::aux_sample_size"] [::core::mem::offset_of!(perf_event_attr, aux_sample_size) - 112usize]; - ["Offset of field: perf_event_attr::__reserved_3"] - [::core::mem::offset_of!(perf_event_attr, __reserved_3) - 116usize]; ["Offset of field: perf_event_attr::sig_data"] [::core::mem::offset_of!(perf_event_attr, sig_data) - 120usize]; ["Offset of field: perf_event_attr::config3"] @@ -82807,7 +83375,6 @@ pub struct perf_event { pub pending_disable_irq: irq_work, pub pending_task: callback_head, pub pending_work: ::core::ffi::c_uint, - pub pending_work_wait: rcuwait, pub event_limit: atomic_t, pub addr_filters: perf_addr_filters_head, pub addr_filter_ranges: *mut perf_addr_filter_range, @@ -82833,7 +83400,7 @@ pub struct perf_event { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of perf_event"][::core::mem::size_of::() - 1328usize]; + ["Size of perf_event"][::core::mem::size_of::() - 1312usize]; ["Alignment of perf_event"][::core::mem::align_of::() - 8usize]; ["Offset of field: perf_event::event_entry"] [::core::mem::offset_of!(perf_event, event_entry) - 0usize]; @@ -82931,47 +83498,45 @@ const _: () = { [::core::mem::offset_of!(perf_event, pending_task) - 880usize]; ["Offset of field: perf_event::pending_work"] [::core::mem::offset_of!(perf_event, pending_work) - 896usize]; - ["Offset of field: perf_event::pending_work_wait"] - [::core::mem::offset_of!(perf_event, pending_work_wait) - 904usize]; ["Offset of field: perf_event::event_limit"] - [::core::mem::offset_of!(perf_event, event_limit) - 912usize]; + [::core::mem::offset_of!(perf_event, event_limit) - 900usize]; ["Offset of field: perf_event::addr_filters"] - [::core::mem::offset_of!(perf_event, addr_filters) - 920usize]; + [::core::mem::offset_of!(perf_event, addr_filters) - 904usize]; ["Offset of field: perf_event::addr_filter_ranges"] - [::core::mem::offset_of!(perf_event, addr_filter_ranges) - 944usize]; + [::core::mem::offset_of!(perf_event, addr_filter_ranges) - 928usize]; ["Offset of field: perf_event::addr_filters_gen"] - [::core::mem::offset_of!(perf_event, addr_filters_gen) - 952usize]; + [::core::mem::offset_of!(perf_event, addr_filters_gen) - 936usize]; ["Offset of field: perf_event::aux_event"] - [::core::mem::offset_of!(perf_event, aux_event) - 960usize]; + [::core::mem::offset_of!(perf_event, aux_event) - 944usize]; ["Offset of field: perf_event::destroy"] - [::core::mem::offset_of!(perf_event, destroy) - 968usize]; + [::core::mem::offset_of!(perf_event, destroy) - 952usize]; ["Offset of field: perf_event::callback_head"] - [::core::mem::offset_of!(perf_event, callback_head) - 976usize]; - ["Offset of field: perf_event::ns"][::core::mem::offset_of!(perf_event, ns) - 992usize]; - ["Offset of field: perf_event::id"][::core::mem::offset_of!(perf_event, id) - 1000usize]; + [::core::mem::offset_of!(perf_event, callback_head) - 960usize]; + ["Offset of field: perf_event::ns"][::core::mem::offset_of!(perf_event, ns) - 976usize]; + ["Offset of field: perf_event::id"][::core::mem::offset_of!(perf_event, id) - 984usize]; ["Offset of field: perf_event::lost_samples"] - [::core::mem::offset_of!(perf_event, lost_samples) - 1008usize]; - ["Offset of field: perf_event::clock"][::core::mem::offset_of!(perf_event, clock) - 1016usize]; + [::core::mem::offset_of!(perf_event, lost_samples) - 992usize]; + ["Offset of field: perf_event::clock"][::core::mem::offset_of!(perf_event, clock) - 1000usize]; ["Offset of field: perf_event::overflow_handler"] - [::core::mem::offset_of!(perf_event, overflow_handler) - 1024usize]; + [::core::mem::offset_of!(perf_event, overflow_handler) - 1008usize]; ["Offset of field: perf_event::overflow_handler_context"] - [::core::mem::offset_of!(perf_event, overflow_handler_context) - 1032usize]; - ["Offset of field: perf_event::prog"][::core::mem::offset_of!(perf_event, prog) - 1040usize]; + [::core::mem::offset_of!(perf_event, overflow_handler_context) - 1016usize]; + ["Offset of field: perf_event::prog"][::core::mem::offset_of!(perf_event, prog) - 1024usize]; ["Offset of field: perf_event::bpf_cookie"] - [::core::mem::offset_of!(perf_event, bpf_cookie) - 1048usize]; + [::core::mem::offset_of!(perf_event, bpf_cookie) - 1032usize]; ["Offset of field: perf_event::tp_event"] - [::core::mem::offset_of!(perf_event, tp_event) - 1056usize]; + [::core::mem::offset_of!(perf_event, tp_event) - 1040usize]; ["Offset of field: perf_event::filter"] - [::core::mem::offset_of!(perf_event, filter) - 1064usize]; + [::core::mem::offset_of!(perf_event, filter) - 1048usize]; ["Offset of field: perf_event::ftrace_ops"] - [::core::mem::offset_of!(perf_event, ftrace_ops) - 1072usize]; - ["Offset of field: perf_event::cgrp"][::core::mem::offset_of!(perf_event, cgrp) - 1288usize]; + [::core::mem::offset_of!(perf_event, ftrace_ops) - 1056usize]; + ["Offset of field: perf_event::cgrp"][::core::mem::offset_of!(perf_event, cgrp) - 1272usize]; ["Offset of field: perf_event::security"] - [::core::mem::offset_of!(perf_event, security) - 1296usize]; + [::core::mem::offset_of!(perf_event, security) - 1280usize]; ["Offset of field: perf_event::sb_list"] - [::core::mem::offset_of!(perf_event, sb_list) - 1304usize]; + [::core::mem::offset_of!(perf_event, sb_list) - 1288usize]; ["Offset of field: perf_event::orig_type"] - [::core::mem::offset_of!(perf_event, orig_type) - 1320usize]; + [::core::mem::offset_of!(perf_event, orig_type) - 1304usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -83449,6 +84014,7 @@ pub struct zone { pub _watermark: [::core::ffi::c_ulong; 4usize], pub watermark_boost: ::core::ffi::c_ulong, pub nr_reserved_highatomic: ::core::ffi::c_ulong, + pub nr_free_highatomic: ::core::ffi::c_ulong, pub lowmem_reserve: [::core::ffi::c_long; 5usize], pub node: ::core::ffi::c_int, pub zone_pgdat: *mut pglist_data, @@ -83462,12 +84028,13 @@ pub struct zone { pub spanned_pages: ::core::ffi::c_ulong, pub present_pages: ::core::ffi::c_ulong, pub present_early_pages: ::core::ffi::c_ulong, + pub cma_pages: ::core::ffi::c_ulong, pub name: *const ::core::ffi::c_char, pub nr_isolate_pageblock: ::core::ffi::c_ulong, pub span_seqlock: seqlock_t, pub initialized: ::core::ffi::c_int, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, pub __bindgen_padding_0: [u8; 4usize], pub _pad1_: cacheline_padding, pub free_area: [free_area; 11usize], @@ -83475,7 +84042,7 @@ pub struct zone { pub flags: ::core::ffi::c_ulong, pub lock: spinlock_t, pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 24usize]>, + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 40usize]>, pub __bindgen_padding_1: [u8; 4usize], pub _pad2_: cacheline_padding, pub percpu_drift_mark: ::core::ffi::c_ulong, @@ -83497,77 +84064,80 @@ pub struct zone { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of zone"][::core::mem::size_of::() - 1536usize]; + ["Size of zone"][::core::mem::size_of::() - 1728usize]; ["Alignment of zone"][::core::mem::align_of::() - 8usize]; ["Offset of field: zone::_watermark"][::core::mem::offset_of!(zone, _watermark) - 0usize]; ["Offset of field: zone::watermark_boost"] [::core::mem::offset_of!(zone, watermark_boost) - 32usize]; ["Offset of field: zone::nr_reserved_highatomic"] [::core::mem::offset_of!(zone, nr_reserved_highatomic) - 40usize]; + ["Offset of field: zone::nr_free_highatomic"] + [::core::mem::offset_of!(zone, nr_free_highatomic) - 48usize]; ["Offset of field: zone::lowmem_reserve"] - [::core::mem::offset_of!(zone, lowmem_reserve) - 48usize]; - ["Offset of field: zone::node"][::core::mem::offset_of!(zone, node) - 88usize]; - ["Offset of field: zone::zone_pgdat"][::core::mem::offset_of!(zone, zone_pgdat) - 96usize]; + [::core::mem::offset_of!(zone, lowmem_reserve) - 56usize]; + ["Offset of field: zone::node"][::core::mem::offset_of!(zone, node) - 96usize]; + ["Offset of field: zone::zone_pgdat"][::core::mem::offset_of!(zone, zone_pgdat) - 104usize]; ["Offset of field: zone::per_cpu_pageset"] - [::core::mem::offset_of!(zone, per_cpu_pageset) - 104usize]; + [::core::mem::offset_of!(zone, per_cpu_pageset) - 112usize]; ["Offset of field: zone::per_cpu_zonestats"] - [::core::mem::offset_of!(zone, per_cpu_zonestats) - 112usize]; + [::core::mem::offset_of!(zone, per_cpu_zonestats) - 120usize]; ["Offset of field: zone::pageset_high_min"] - [::core::mem::offset_of!(zone, pageset_high_min) - 120usize]; + [::core::mem::offset_of!(zone, pageset_high_min) - 128usize]; ["Offset of field: zone::pageset_high_max"] - [::core::mem::offset_of!(zone, pageset_high_max) - 124usize]; + [::core::mem::offset_of!(zone, pageset_high_max) - 132usize]; ["Offset of field: zone::pageset_batch"] - [::core::mem::offset_of!(zone, pageset_batch) - 128usize]; + [::core::mem::offset_of!(zone, pageset_batch) - 136usize]; ["Offset of field: zone::zone_start_pfn"] - [::core::mem::offset_of!(zone, zone_start_pfn) - 136usize]; + [::core::mem::offset_of!(zone, zone_start_pfn) - 144usize]; ["Offset of field: zone::managed_pages"] - [::core::mem::offset_of!(zone, managed_pages) - 144usize]; + [::core::mem::offset_of!(zone, managed_pages) - 152usize]; ["Offset of field: zone::spanned_pages"] - [::core::mem::offset_of!(zone, spanned_pages) - 152usize]; + [::core::mem::offset_of!(zone, spanned_pages) - 160usize]; ["Offset of field: zone::present_pages"] - [::core::mem::offset_of!(zone, present_pages) - 160usize]; + [::core::mem::offset_of!(zone, present_pages) - 168usize]; ["Offset of field: zone::present_early_pages"] - [::core::mem::offset_of!(zone, present_early_pages) - 168usize]; - ["Offset of field: zone::name"][::core::mem::offset_of!(zone, name) - 176usize]; + [::core::mem::offset_of!(zone, present_early_pages) - 176usize]; + ["Offset of field: zone::cma_pages"][::core::mem::offset_of!(zone, cma_pages) - 184usize]; + ["Offset of field: zone::name"][::core::mem::offset_of!(zone, name) - 192usize]; ["Offset of field: zone::nr_isolate_pageblock"] - [::core::mem::offset_of!(zone, nr_isolate_pageblock) - 184usize]; - ["Offset of field: zone::span_seqlock"][::core::mem::offset_of!(zone, span_seqlock) - 192usize]; - ["Offset of field: zone::initialized"][::core::mem::offset_of!(zone, initialized) - 200usize]; + [::core::mem::offset_of!(zone, nr_isolate_pageblock) - 200usize]; + ["Offset of field: zone::span_seqlock"][::core::mem::offset_of!(zone, span_seqlock) - 208usize]; + ["Offset of field: zone::initialized"][::core::mem::offset_of!(zone, initialized) - 216usize]; ["Offset of field: zone::_pad1_"][::core::mem::offset_of!(zone, _pad1_) - 256usize]; ["Offset of field: zone::free_area"][::core::mem::offset_of!(zone, free_area) - 256usize]; ["Offset of field: zone::unaccepted_pages"] - [::core::mem::offset_of!(zone, unaccepted_pages) - 1224usize]; - ["Offset of field: zone::flags"][::core::mem::offset_of!(zone, flags) - 1240usize]; - ["Offset of field: zone::lock"][::core::mem::offset_of!(zone, lock) - 1248usize]; - ["Offset of field: zone::_pad2_"][::core::mem::offset_of!(zone, _pad2_) - 1280usize]; + [::core::mem::offset_of!(zone, unaccepted_pages) - 1400usize]; + ["Offset of field: zone::flags"][::core::mem::offset_of!(zone, flags) - 1416usize]; + ["Offset of field: zone::lock"][::core::mem::offset_of!(zone, lock) - 1424usize]; + ["Offset of field: zone::_pad2_"][::core::mem::offset_of!(zone, _pad2_) - 1472usize]; ["Offset of field: zone::percpu_drift_mark"] - [::core::mem::offset_of!(zone, percpu_drift_mark) - 1280usize]; + [::core::mem::offset_of!(zone, percpu_drift_mark) - 1472usize]; ["Offset of field: zone::compact_cached_free_pfn"] - [::core::mem::offset_of!(zone, compact_cached_free_pfn) - 1288usize]; + [::core::mem::offset_of!(zone, compact_cached_free_pfn) - 1480usize]; ["Offset of field: zone::compact_cached_migrate_pfn"] - [::core::mem::offset_of!(zone, compact_cached_migrate_pfn) - 1296usize]; + [::core::mem::offset_of!(zone, compact_cached_migrate_pfn) - 1488usize]; ["Offset of field: zone::compact_init_migrate_pfn"] - [::core::mem::offset_of!(zone, compact_init_migrate_pfn) - 1312usize]; + [::core::mem::offset_of!(zone, compact_init_migrate_pfn) - 1504usize]; ["Offset of field: zone::compact_init_free_pfn"] - [::core::mem::offset_of!(zone, compact_init_free_pfn) - 1320usize]; + [::core::mem::offset_of!(zone, compact_init_free_pfn) - 1512usize]; ["Offset of field: zone::compact_considered"] - [::core::mem::offset_of!(zone, compact_considered) - 1328usize]; + [::core::mem::offset_of!(zone, compact_considered) - 1520usize]; ["Offset of field: zone::compact_defer_shift"] - [::core::mem::offset_of!(zone, compact_defer_shift) - 1332usize]; + [::core::mem::offset_of!(zone, compact_defer_shift) - 1524usize]; ["Offset of field: zone::compact_order_failed"] - [::core::mem::offset_of!(zone, compact_order_failed) - 1336usize]; + [::core::mem::offset_of!(zone, compact_order_failed) - 1528usize]; ["Offset of field: zone::compact_blockskip_flush"] - [::core::mem::offset_of!(zone, compact_blockskip_flush) - 1340usize]; - ["Offset of field: zone::contiguous"][::core::mem::offset_of!(zone, contiguous) - 1341usize]; - ["Offset of field: zone::_pad3_"][::core::mem::offset_of!(zone, _pad3_) - 1344usize]; - ["Offset of field: zone::vm_stat"][::core::mem::offset_of!(zone, vm_stat) - 1344usize]; + [::core::mem::offset_of!(zone, compact_blockskip_flush) - 1532usize]; + ["Offset of field: zone::contiguous"][::core::mem::offset_of!(zone, contiguous) - 1533usize]; + ["Offset of field: zone::_pad3_"][::core::mem::offset_of!(zone, _pad3_) - 1536usize]; + ["Offset of field: zone::vm_stat"][::core::mem::offset_of!(zone, vm_stat) - 1536usize]; ["Offset of field: zone::vm_numa_event"] - [::core::mem::offset_of!(zone, vm_numa_event) - 1440usize]; + [::core::mem::offset_of!(zone, vm_numa_event) - 1632usize]; }; impl zone { #[inline] - pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); __bindgen_bitfield_unit } } @@ -83648,92 +84218,92 @@ pub struct pglist_data { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of pglist_data"][::core::mem::size_of::() - 174464usize]; + ["Size of pglist_data"][::core::mem::size_of::() - 175424usize]; ["Alignment of pglist_data"][::core::mem::align_of::() - 8usize]; ["Offset of field: pglist_data::node_zones"] [::core::mem::offset_of!(pglist_data, node_zones) - 0usize]; ["Offset of field: pglist_data::node_zonelists"] - [::core::mem::offset_of!(pglist_data, node_zonelists) - 7680usize]; + [::core::mem::offset_of!(pglist_data, node_zonelists) - 8640usize]; ["Offset of field: pglist_data::nr_zones"] - [::core::mem::offset_of!(pglist_data, nr_zones) - 171552usize]; + [::core::mem::offset_of!(pglist_data, nr_zones) - 172512usize]; ["Offset of field: pglist_data::node_size_lock"] - [::core::mem::offset_of!(pglist_data, node_size_lock) - 171556usize]; + [::core::mem::offset_of!(pglist_data, node_size_lock) - 172516usize]; ["Offset of field: pglist_data::node_start_pfn"] - [::core::mem::offset_of!(pglist_data, node_start_pfn) - 171560usize]; + [::core::mem::offset_of!(pglist_data, node_start_pfn) - 172520usize]; ["Offset of field: pglist_data::node_present_pages"] - [::core::mem::offset_of!(pglist_data, node_present_pages) - 171568usize]; + [::core::mem::offset_of!(pglist_data, node_present_pages) - 172528usize]; ["Offset of field: pglist_data::node_spanned_pages"] - [::core::mem::offset_of!(pglist_data, node_spanned_pages) - 171576usize]; + [::core::mem::offset_of!(pglist_data, node_spanned_pages) - 172536usize]; ["Offset of field: pglist_data::node_id"] - [::core::mem::offset_of!(pglist_data, node_id) - 171584usize]; + [::core::mem::offset_of!(pglist_data, node_id) - 172544usize]; ["Offset of field: pglist_data::kswapd_wait"] - [::core::mem::offset_of!(pglist_data, kswapd_wait) - 171592usize]; + [::core::mem::offset_of!(pglist_data, kswapd_wait) - 172552usize]; ["Offset of field: pglist_data::pfmemalloc_wait"] - [::core::mem::offset_of!(pglist_data, pfmemalloc_wait) - 171616usize]; + [::core::mem::offset_of!(pglist_data, pfmemalloc_wait) - 172576usize]; ["Offset of field: pglist_data::reclaim_wait"] - [::core::mem::offset_of!(pglist_data, reclaim_wait) - 171640usize]; + [::core::mem::offset_of!(pglist_data, reclaim_wait) - 172600usize]; ["Offset of field: pglist_data::nr_writeback_throttled"] - [::core::mem::offset_of!(pglist_data, nr_writeback_throttled) - 171736usize]; + [::core::mem::offset_of!(pglist_data, nr_writeback_throttled) - 172696usize]; ["Offset of field: pglist_data::nr_reclaim_start"] - [::core::mem::offset_of!(pglist_data, nr_reclaim_start) - 171744usize]; + [::core::mem::offset_of!(pglist_data, nr_reclaim_start) - 172704usize]; ["Offset of field: pglist_data::kswapd_lock"] - [::core::mem::offset_of!(pglist_data, kswapd_lock) - 171752usize]; + [::core::mem::offset_of!(pglist_data, kswapd_lock) - 172712usize]; ["Offset of field: pglist_data::kswapd"] - [::core::mem::offset_of!(pglist_data, kswapd) - 171784usize]; + [::core::mem::offset_of!(pglist_data, kswapd) - 172744usize]; ["Offset of field: pglist_data::kswapd_order"] - [::core::mem::offset_of!(pglist_data, kswapd_order) - 171792usize]; + [::core::mem::offset_of!(pglist_data, kswapd_order) - 172752usize]; ["Offset of field: pglist_data::kswapd_highest_zoneidx"] - [::core::mem::offset_of!(pglist_data, kswapd_highest_zoneidx) - 171796usize]; + [::core::mem::offset_of!(pglist_data, kswapd_highest_zoneidx) - 172756usize]; ["Offset of field: pglist_data::kswapd_failures"] - [::core::mem::offset_of!(pglist_data, kswapd_failures) - 171800usize]; + [::core::mem::offset_of!(pglist_data, kswapd_failures) - 172760usize]; ["Offset of field: pglist_data::kcompactd_max_order"] - [::core::mem::offset_of!(pglist_data, kcompactd_max_order) - 171804usize]; + [::core::mem::offset_of!(pglist_data, kcompactd_max_order) - 172764usize]; ["Offset of field: pglist_data::kcompactd_highest_zoneidx"] - [::core::mem::offset_of!(pglist_data, kcompactd_highest_zoneidx) - 171808usize]; + [::core::mem::offset_of!(pglist_data, kcompactd_highest_zoneidx) - 172768usize]; ["Offset of field: pglist_data::kcompactd_wait"] - [::core::mem::offset_of!(pglist_data, kcompactd_wait) - 171816usize]; + [::core::mem::offset_of!(pglist_data, kcompactd_wait) - 172776usize]; ["Offset of field: pglist_data::kcompactd"] - [::core::mem::offset_of!(pglist_data, kcompactd) - 171840usize]; + [::core::mem::offset_of!(pglist_data, kcompactd) - 172800usize]; ["Offset of field: pglist_data::proactive_compact_trigger"] - [::core::mem::offset_of!(pglist_data, proactive_compact_trigger) - 171848usize]; + [::core::mem::offset_of!(pglist_data, proactive_compact_trigger) - 172808usize]; ["Offset of field: pglist_data::totalreserve_pages"] - [::core::mem::offset_of!(pglist_data, totalreserve_pages) - 171856usize]; + [::core::mem::offset_of!(pglist_data, totalreserve_pages) - 172816usize]; ["Offset of field: pglist_data::min_unmapped_pages"] - [::core::mem::offset_of!(pglist_data, min_unmapped_pages) - 171864usize]; + [::core::mem::offset_of!(pglist_data, min_unmapped_pages) - 172824usize]; ["Offset of field: pglist_data::min_slab_pages"] - [::core::mem::offset_of!(pglist_data, min_slab_pages) - 171872usize]; + [::core::mem::offset_of!(pglist_data, min_slab_pages) - 172832usize]; ["Offset of field: pglist_data::_pad1_"] - [::core::mem::offset_of!(pglist_data, _pad1_) - 171904usize]; + [::core::mem::offset_of!(pglist_data, _pad1_) - 172864usize]; ["Offset of field: pglist_data::deferred_split_queue"] - [::core::mem::offset_of!(pglist_data, deferred_split_queue) - 171904usize]; + [::core::mem::offset_of!(pglist_data, deferred_split_queue) - 172864usize]; ["Offset of field: pglist_data::nbp_rl_start"] - [::core::mem::offset_of!(pglist_data, nbp_rl_start) - 171936usize]; + [::core::mem::offset_of!(pglist_data, nbp_rl_start) - 172896usize]; ["Offset of field: pglist_data::nbp_rl_nr_cand"] - [::core::mem::offset_of!(pglist_data, nbp_rl_nr_cand) - 171944usize]; + [::core::mem::offset_of!(pglist_data, nbp_rl_nr_cand) - 172904usize]; ["Offset of field: pglist_data::nbp_threshold"] - [::core::mem::offset_of!(pglist_data, nbp_threshold) - 171952usize]; + [::core::mem::offset_of!(pglist_data, nbp_threshold) - 172912usize]; ["Offset of field: pglist_data::nbp_th_start"] - [::core::mem::offset_of!(pglist_data, nbp_th_start) - 171956usize]; + [::core::mem::offset_of!(pglist_data, nbp_th_start) - 172916usize]; ["Offset of field: pglist_data::nbp_th_nr_cand"] - [::core::mem::offset_of!(pglist_data, nbp_th_nr_cand) - 171960usize]; + [::core::mem::offset_of!(pglist_data, nbp_th_nr_cand) - 172920usize]; ["Offset of field: pglist_data::__lruvec"] - [::core::mem::offset_of!(pglist_data, __lruvec) - 171968usize]; + [::core::mem::offset_of!(pglist_data, __lruvec) - 172928usize]; ["Offset of field: pglist_data::flags"] - [::core::mem::offset_of!(pglist_data, flags) - 173536usize]; + [::core::mem::offset_of!(pglist_data, flags) - 174496usize]; ["Offset of field: pglist_data::mm_walk"] - [::core::mem::offset_of!(pglist_data, mm_walk) - 173544usize]; + [::core::mem::offset_of!(pglist_data, mm_walk) - 174504usize]; ["Offset of field: pglist_data::memcg_lru"] - [::core::mem::offset_of!(pglist_data, memcg_lru) - 173752usize]; + [::core::mem::offset_of!(pglist_data, memcg_lru) - 174712usize]; ["Offset of field: pglist_data::_pad2_"] - [::core::mem::offset_of!(pglist_data, _pad2_) - 174016usize]; + [::core::mem::offset_of!(pglist_data, _pad2_) - 174976usize]; ["Offset of field: pglist_data::per_cpu_nodestats"] - [::core::mem::offset_of!(pglist_data, per_cpu_nodestats) - 174016usize]; + [::core::mem::offset_of!(pglist_data, per_cpu_nodestats) - 174976usize]; ["Offset of field: pglist_data::vm_stat"] - [::core::mem::offset_of!(pglist_data, vm_stat) - 174024usize]; + [::core::mem::offset_of!(pglist_data, vm_stat) - 174984usize]; ["Offset of field: pglist_data::memtier"] - [::core::mem::offset_of!(pglist_data, memtier) - 174400usize]; + [::core::mem::offset_of!(pglist_data, memtier) - 175360usize]; ["Offset of field: pglist_data::mf_stats"] - [::core::mem::offset_of!(pglist_data, mf_stats) - 174408usize]; + [::core::mem::offset_of!(pglist_data, mf_stats) - 175368usize]; }; impl pglist_data { #[inline] @@ -83771,11 +84341,17 @@ const _: () = { [::core::mem::offset_of!(phy_c45_device_ids, device_ids) - 8usize]; }; #[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_led_trigger { + _unused: [u8; 0], +} +#[repr(C)] #[derive(Copy, Clone)] pub struct phy_device { pub mdio: mdio_device, pub drv: *const phy_driver, pub devlink: *mut device_link, + pub phyindex: u32_, pub phy_id: u32_, pub c45_ids: phy_c45_device_ids, pub _bitfield_align_1: [u8; 0], @@ -83834,102 +84410,104 @@ pub struct phy_device { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of phy_device"][::core::mem::size_of::() - 1512usize]; + ["Size of phy_device"][::core::mem::size_of::() - 1504usize]; ["Alignment of phy_device"][::core::mem::align_of::() - 8usize]; ["Offset of field: phy_device::mdio"][::core::mem::offset_of!(phy_device, mdio) - 0usize]; - ["Offset of field: phy_device::drv"][::core::mem::offset_of!(phy_device, drv) - 872usize]; + ["Offset of field: phy_device::drv"][::core::mem::offset_of!(phy_device, drv) - 856usize]; ["Offset of field: phy_device::devlink"] - [::core::mem::offset_of!(phy_device, devlink) - 880usize]; - ["Offset of field: phy_device::phy_id"][::core::mem::offset_of!(phy_device, phy_id) - 888usize]; + [::core::mem::offset_of!(phy_device, devlink) - 864usize]; + ["Offset of field: phy_device::phyindex"] + [::core::mem::offset_of!(phy_device, phyindex) - 872usize]; + ["Offset of field: phy_device::phy_id"][::core::mem::offset_of!(phy_device, phy_id) - 876usize]; ["Offset of field: phy_device::c45_ids"] - [::core::mem::offset_of!(phy_device, c45_ids) - 892usize]; + [::core::mem::offset_of!(phy_device, c45_ids) - 880usize]; ["Offset of field: phy_device::rate_matching"] - [::core::mem::offset_of!(phy_device, rate_matching) - 1032usize]; - ["Offset of field: phy_device::state"][::core::mem::offset_of!(phy_device, state) - 1036usize]; + [::core::mem::offset_of!(phy_device, rate_matching) - 1020usize]; + ["Offset of field: phy_device::state"][::core::mem::offset_of!(phy_device, state) - 1024usize]; ["Offset of field: phy_device::dev_flags"] - [::core::mem::offset_of!(phy_device, dev_flags) - 1040usize]; + [::core::mem::offset_of!(phy_device, dev_flags) - 1028usize]; ["Offset of field: phy_device::interface"] - [::core::mem::offset_of!(phy_device, interface) - 1044usize]; + [::core::mem::offset_of!(phy_device, interface) - 1032usize]; ["Offset of field: phy_device::possible_interfaces"] - [::core::mem::offset_of!(phy_device, possible_interfaces) - 1048usize]; - ["Offset of field: phy_device::speed"][::core::mem::offset_of!(phy_device, speed) - 1056usize]; + [::core::mem::offset_of!(phy_device, possible_interfaces) - 1040usize]; + ["Offset of field: phy_device::speed"][::core::mem::offset_of!(phy_device, speed) - 1048usize]; ["Offset of field: phy_device::duplex"] - [::core::mem::offset_of!(phy_device, duplex) - 1060usize]; - ["Offset of field: phy_device::port"][::core::mem::offset_of!(phy_device, port) - 1064usize]; - ["Offset of field: phy_device::pause"][::core::mem::offset_of!(phy_device, pause) - 1068usize]; + [::core::mem::offset_of!(phy_device, duplex) - 1052usize]; + ["Offset of field: phy_device::port"][::core::mem::offset_of!(phy_device, port) - 1056usize]; + ["Offset of field: phy_device::pause"][::core::mem::offset_of!(phy_device, pause) - 1060usize]; ["Offset of field: phy_device::asym_pause"] - [::core::mem::offset_of!(phy_device, asym_pause) - 1072usize]; + [::core::mem::offset_of!(phy_device, asym_pause) - 1064usize]; ["Offset of field: phy_device::master_slave_get"] - [::core::mem::offset_of!(phy_device, master_slave_get) - 1076usize]; + [::core::mem::offset_of!(phy_device, master_slave_get) - 1068usize]; ["Offset of field: phy_device::master_slave_set"] - [::core::mem::offset_of!(phy_device, master_slave_set) - 1077usize]; + [::core::mem::offset_of!(phy_device, master_slave_set) - 1069usize]; ["Offset of field: phy_device::master_slave_state"] - [::core::mem::offset_of!(phy_device, master_slave_state) - 1078usize]; + [::core::mem::offset_of!(phy_device, master_slave_state) - 1070usize]; ["Offset of field: phy_device::supported"] - [::core::mem::offset_of!(phy_device, supported) - 1080usize]; + [::core::mem::offset_of!(phy_device, supported) - 1072usize]; ["Offset of field: phy_device::advertising"] - [::core::mem::offset_of!(phy_device, advertising) - 1096usize]; + [::core::mem::offset_of!(phy_device, advertising) - 1088usize]; ["Offset of field: phy_device::lp_advertising"] - [::core::mem::offset_of!(phy_device, lp_advertising) - 1112usize]; + [::core::mem::offset_of!(phy_device, lp_advertising) - 1104usize]; ["Offset of field: phy_device::adv_old"] - [::core::mem::offset_of!(phy_device, adv_old) - 1128usize]; + [::core::mem::offset_of!(phy_device, adv_old) - 1120usize]; ["Offset of field: phy_device::supported_eee"] - [::core::mem::offset_of!(phy_device, supported_eee) - 1144usize]; + [::core::mem::offset_of!(phy_device, supported_eee) - 1136usize]; ["Offset of field: phy_device::advertising_eee"] - [::core::mem::offset_of!(phy_device, advertising_eee) - 1160usize]; + [::core::mem::offset_of!(phy_device, advertising_eee) - 1152usize]; ["Offset of field: phy_device::eee_enabled"] - [::core::mem::offset_of!(phy_device, eee_enabled) - 1176usize]; + [::core::mem::offset_of!(phy_device, eee_enabled) - 1168usize]; ["Offset of field: phy_device::host_interfaces"] - [::core::mem::offset_of!(phy_device, host_interfaces) - 1184usize]; + [::core::mem::offset_of!(phy_device, host_interfaces) - 1176usize]; ["Offset of field: phy_device::eee_broken_modes"] - [::core::mem::offset_of!(phy_device, eee_broken_modes) - 1192usize]; + [::core::mem::offset_of!(phy_device, eee_broken_modes) - 1184usize]; ["Offset of field: phy_device::enable_tx_lpi"] - [::core::mem::offset_of!(phy_device, enable_tx_lpi) - 1196usize]; + [::core::mem::offset_of!(phy_device, enable_tx_lpi) - 1188usize]; ["Offset of field: phy_device::eee_cfg"] - [::core::mem::offset_of!(phy_device, eee_cfg) - 1200usize]; + [::core::mem::offset_of!(phy_device, eee_cfg) - 1192usize]; ["Offset of field: phy_device::phy_led_triggers"] - [::core::mem::offset_of!(phy_device, phy_led_triggers) - 1208usize]; + [::core::mem::offset_of!(phy_device, phy_led_triggers) - 1200usize]; ["Offset of field: phy_device::phy_num_led_triggers"] - [::core::mem::offset_of!(phy_device, phy_num_led_triggers) - 1216usize]; + [::core::mem::offset_of!(phy_device, phy_num_led_triggers) - 1208usize]; ["Offset of field: phy_device::last_triggered"] - [::core::mem::offset_of!(phy_device, last_triggered) - 1224usize]; + [::core::mem::offset_of!(phy_device, last_triggered) - 1216usize]; ["Offset of field: phy_device::led_link_trigger"] - [::core::mem::offset_of!(phy_device, led_link_trigger) - 1232usize]; - ["Offset of field: phy_device::leds"][::core::mem::offset_of!(phy_device, leds) - 1240usize]; - ["Offset of field: phy_device::irq"][::core::mem::offset_of!(phy_device, irq) - 1256usize]; - ["Offset of field: phy_device::priv_"][::core::mem::offset_of!(phy_device, priv_) - 1264usize]; + [::core::mem::offset_of!(phy_device, led_link_trigger) - 1224usize]; + ["Offset of field: phy_device::leds"][::core::mem::offset_of!(phy_device, leds) - 1232usize]; + ["Offset of field: phy_device::irq"][::core::mem::offset_of!(phy_device, irq) - 1248usize]; + ["Offset of field: phy_device::priv_"][::core::mem::offset_of!(phy_device, priv_) - 1256usize]; ["Offset of field: phy_device::shared"] - [::core::mem::offset_of!(phy_device, shared) - 1272usize]; - ["Offset of field: phy_device::skb"][::core::mem::offset_of!(phy_device, skb) - 1280usize]; - ["Offset of field: phy_device::ehdr"][::core::mem::offset_of!(phy_device, ehdr) - 1288usize]; - ["Offset of field: phy_device::nest"][::core::mem::offset_of!(phy_device, nest) - 1296usize]; + [::core::mem::offset_of!(phy_device, shared) - 1264usize]; + ["Offset of field: phy_device::skb"][::core::mem::offset_of!(phy_device, skb) - 1272usize]; + ["Offset of field: phy_device::ehdr"][::core::mem::offset_of!(phy_device, ehdr) - 1280usize]; + ["Offset of field: phy_device::nest"][::core::mem::offset_of!(phy_device, nest) - 1288usize]; ["Offset of field: phy_device::state_queue"] - [::core::mem::offset_of!(phy_device, state_queue) - 1304usize]; - ["Offset of field: phy_device::lock"][::core::mem::offset_of!(phy_device, lock) - 1392usize]; + [::core::mem::offset_of!(phy_device, state_queue) - 1296usize]; + ["Offset of field: phy_device::lock"][::core::mem::offset_of!(phy_device, lock) - 1384usize]; ["Offset of field: phy_device::sfp_bus_attached"] - [::core::mem::offset_of!(phy_device, sfp_bus_attached) - 1424usize]; + [::core::mem::offset_of!(phy_device, sfp_bus_attached) - 1416usize]; ["Offset of field: phy_device::sfp_bus"] - [::core::mem::offset_of!(phy_device, sfp_bus) - 1432usize]; + [::core::mem::offset_of!(phy_device, sfp_bus) - 1424usize]; ["Offset of field: phy_device::phylink"] - [::core::mem::offset_of!(phy_device, phylink) - 1440usize]; + [::core::mem::offset_of!(phy_device, phylink) - 1432usize]; ["Offset of field: phy_device::attached_dev"] - [::core::mem::offset_of!(phy_device, attached_dev) - 1448usize]; + [::core::mem::offset_of!(phy_device, attached_dev) - 1440usize]; ["Offset of field: phy_device::mii_ts"] - [::core::mem::offset_of!(phy_device, mii_ts) - 1456usize]; - ["Offset of field: phy_device::psec"][::core::mem::offset_of!(phy_device, psec) - 1464usize]; - ["Offset of field: phy_device::mdix"][::core::mem::offset_of!(phy_device, mdix) - 1472usize]; + [::core::mem::offset_of!(phy_device, mii_ts) - 1448usize]; + ["Offset of field: phy_device::psec"][::core::mem::offset_of!(phy_device, psec) - 1456usize]; + ["Offset of field: phy_device::mdix"][::core::mem::offset_of!(phy_device, mdix) - 1464usize]; ["Offset of field: phy_device::mdix_ctrl"] - [::core::mem::offset_of!(phy_device, mdix_ctrl) - 1473usize]; + [::core::mem::offset_of!(phy_device, mdix_ctrl) - 1465usize]; ["Offset of field: phy_device::pma_extable"] - [::core::mem::offset_of!(phy_device, pma_extable) - 1476usize]; + [::core::mem::offset_of!(phy_device, pma_extable) - 1468usize]; ["Offset of field: phy_device::link_down_events"] - [::core::mem::offset_of!(phy_device, link_down_events) - 1480usize]; + [::core::mem::offset_of!(phy_device, link_down_events) - 1472usize]; ["Offset of field: phy_device::phy_link_change"] - [::core::mem::offset_of!(phy_device, phy_link_change) - 1488usize]; + [::core::mem::offset_of!(phy_device, phy_link_change) - 1480usize]; ["Offset of field: phy_device::adjust_link"] - [::core::mem::offset_of!(phy_device, adjust_link) - 1496usize]; + [::core::mem::offset_of!(phy_device, adjust_link) - 1488usize]; ["Offset of field: phy_device::macsec_ops"] - [::core::mem::offset_of!(phy_device, macsec_ops) - 1504usize]; + [::core::mem::offset_of!(phy_device, macsec_ops) - 1496usize]; }; impl phy_device { #[inline] @@ -84792,6 +85370,16 @@ pub struct phy_driver { pub cable_test_get_status: ::core::option::Option< unsafe extern "C" fn(arg1: *mut phy_device, arg2: *mut bool_) -> ::core::ffi::c_int, >, + pub get_phy_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *mut ethtool_eth_phy_stats, + arg3: *mut ethtool_phy_stats, + ), + >, + pub get_link_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device, arg2: *mut ethtool_link_ext_stats), + >, pub get_sset_count: ::core::option::Option ::core::ffi::c_int>, pub get_strings: @@ -84881,7 +85469,7 @@ pub struct phy_driver { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of phy_driver"][::core::mem::size_of::() - 544usize]; + ["Size of phy_driver"][::core::mem::size_of::() - 560usize]; ["Alignment of phy_driver"][::core::mem::align_of::() - 8usize]; ["Offset of field: phy_driver::mdiodrv"][::core::mem::offset_of!(phy_driver, mdiodrv) - 0usize]; ["Offset of field: phy_driver::phy_id"][::core::mem::offset_of!(phy_driver, phy_id) - 152usize]; @@ -84942,58 +85530,59 @@ const _: () = { [::core::mem::offset_of!(phy_driver, cable_test_tdr_start) - 392usize]; ["Offset of field: phy_driver::cable_test_get_status"] [::core::mem::offset_of!(phy_driver, cable_test_get_status) - 400usize]; + ["Offset of field: phy_driver::get_phy_stats"] + [::core::mem::offset_of!(phy_driver, get_phy_stats) - 408usize]; + ["Offset of field: phy_driver::get_link_stats"] + [::core::mem::offset_of!(phy_driver, get_link_stats) - 416usize]; ["Offset of field: phy_driver::get_sset_count"] - [::core::mem::offset_of!(phy_driver, get_sset_count) - 408usize]; + [::core::mem::offset_of!(phy_driver, get_sset_count) - 424usize]; ["Offset of field: phy_driver::get_strings"] - [::core::mem::offset_of!(phy_driver, get_strings) - 416usize]; + [::core::mem::offset_of!(phy_driver, get_strings) - 432usize]; ["Offset of field: phy_driver::get_stats"] - [::core::mem::offset_of!(phy_driver, get_stats) - 424usize]; + [::core::mem::offset_of!(phy_driver, get_stats) - 440usize]; ["Offset of field: phy_driver::get_tunable"] - [::core::mem::offset_of!(phy_driver, get_tunable) - 432usize]; + [::core::mem::offset_of!(phy_driver, get_tunable) - 448usize]; ["Offset of field: phy_driver::set_tunable"] - [::core::mem::offset_of!(phy_driver, set_tunable) - 440usize]; + [::core::mem::offset_of!(phy_driver, set_tunable) - 456usize]; ["Offset of field: phy_driver::set_loopback"] - [::core::mem::offset_of!(phy_driver, set_loopback) - 448usize]; + [::core::mem::offset_of!(phy_driver, set_loopback) - 464usize]; ["Offset of field: phy_driver::get_sqi"] - [::core::mem::offset_of!(phy_driver, get_sqi) - 456usize]; + [::core::mem::offset_of!(phy_driver, get_sqi) - 472usize]; ["Offset of field: phy_driver::get_sqi_max"] - [::core::mem::offset_of!(phy_driver, get_sqi_max) - 464usize]; + [::core::mem::offset_of!(phy_driver, get_sqi_max) - 480usize]; ["Offset of field: phy_driver::get_plca_cfg"] - [::core::mem::offset_of!(phy_driver, get_plca_cfg) - 472usize]; + [::core::mem::offset_of!(phy_driver, get_plca_cfg) - 488usize]; ["Offset of field: phy_driver::set_plca_cfg"] - [::core::mem::offset_of!(phy_driver, set_plca_cfg) - 480usize]; + [::core::mem::offset_of!(phy_driver, set_plca_cfg) - 496usize]; ["Offset of field: phy_driver::get_plca_status"] - [::core::mem::offset_of!(phy_driver, get_plca_status) - 488usize]; + [::core::mem::offset_of!(phy_driver, get_plca_status) - 504usize]; ["Offset of field: phy_driver::led_brightness_set"] - [::core::mem::offset_of!(phy_driver, led_brightness_set) - 496usize]; + [::core::mem::offset_of!(phy_driver, led_brightness_set) - 512usize]; ["Offset of field: phy_driver::led_blink_set"] - [::core::mem::offset_of!(phy_driver, led_blink_set) - 504usize]; + [::core::mem::offset_of!(phy_driver, led_blink_set) - 520usize]; ["Offset of field: phy_driver::led_hw_is_supported"] - [::core::mem::offset_of!(phy_driver, led_hw_is_supported) - 512usize]; + [::core::mem::offset_of!(phy_driver, led_hw_is_supported) - 528usize]; ["Offset of field: phy_driver::led_hw_control_set"] - [::core::mem::offset_of!(phy_driver, led_hw_control_set) - 520usize]; + [::core::mem::offset_of!(phy_driver, led_hw_control_set) - 536usize]; ["Offset of field: phy_driver::led_hw_control_get"] - [::core::mem::offset_of!(phy_driver, led_hw_control_get) - 528usize]; + [::core::mem::offset_of!(phy_driver, led_hw_control_get) - 544usize]; ["Offset of field: phy_driver::led_polarity_set"] - [::core::mem::offset_of!(phy_driver, led_polarity_set) - 536usize]; + [::core::mem::offset_of!(phy_driver, led_polarity_set) - 552usize]; }; #[repr(C)] #[derive(Copy, Clone)] -pub struct phy_led_trigger { - pub trigger: led_trigger, - pub name: [::core::ffi::c_char; 76usize], - pub speed: ::core::ffi::c_uint, +pub struct phy_link_topology { + pub phys: xarray, + pub next_phy_index: u32_, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of phy_led_trigger"][::core::mem::size_of::() - 168usize]; - ["Alignment of phy_led_trigger"][::core::mem::align_of::() - 8usize]; - ["Offset of field: phy_led_trigger::trigger"] - [::core::mem::offset_of!(phy_led_trigger, trigger) - 0usize]; - ["Offset of field: phy_led_trigger::name"] - [::core::mem::offset_of!(phy_led_trigger, name) - 88usize]; - ["Offset of field: phy_led_trigger::speed"] - [::core::mem::offset_of!(phy_led_trigger, speed) - 164usize]; + ["Size of phy_link_topology"][::core::mem::size_of::() - 24usize]; + ["Alignment of phy_link_topology"][::core::mem::align_of::() - 8usize]; + ["Offset of field: phy_link_topology::phys"] + [::core::mem::offset_of!(phy_link_topology, phys) - 0usize]; + ["Offset of field: phy_link_topology::next_phy_index"] + [::core::mem::offset_of!(phy_link_topology, next_phy_index) - 16usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -85364,6 +85953,28 @@ const _: () = { ["Offset of field: phylink_pcs_ops::pcs_pre_init"] [::core::mem::offset_of!(phylink_pcs_ops, pcs_pre_init) - 72usize]; }; +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct pi_entry { + pub fmt: *const ::core::ffi::c_char, + pub func: *const ::core::ffi::c_char, + pub file: *const ::core::ffi::c_char, + pub line: ::core::ffi::c_uint, + pub level: *const ::core::ffi::c_char, + pub subsys_fmt_prefix: *const ::core::ffi::c_char, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of pi_entry"][::core::mem::size_of::() - 44usize]; + ["Alignment of pi_entry"][::core::mem::align_of::() - 1usize]; + ["Offset of field: pi_entry::fmt"][::core::mem::offset_of!(pi_entry, fmt) - 0usize]; + ["Offset of field: pi_entry::func"][::core::mem::offset_of!(pi_entry, func) - 8usize]; + ["Offset of field: pi_entry::file"][::core::mem::offset_of!(pi_entry, file) - 16usize]; + ["Offset of field: pi_entry::line"][::core::mem::offset_of!(pi_entry, line) - 24usize]; + ["Offset of field: pi_entry::level"][::core::mem::offset_of!(pi_entry, level) - 28usize]; + ["Offset of field: pi_entry::subsys_fmt_prefix"] + [::core::mem::offset_of!(pi_entry, subsys_fmt_prefix) - 36usize]; +}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct upid { @@ -85994,13 +86605,13 @@ const _: () = { impl prefix_info__bindgen_ty_1__bindgen_ty_1 { #[inline] pub fn reserved(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 6u8) as u8) } + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } } #[inline] pub fn set_reserved(&mut self, val: __u8) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 6u8, val as u64) + self._bitfield_1.set(0usize, 4u8, val as u64) } } #[inline] @@ -86009,7 +86620,7 @@ impl prefix_info__bindgen_ty_1__bindgen_ty_1 { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( ::core::ptr::addr_of!((*this)._bitfield_1), 0usize, - 6u8, + 4u8, ) as u8) } } @@ -86020,7 +86631,73 @@ impl prefix_info__bindgen_ty_1__bindgen_ty_1 { <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( ::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, - 6u8, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn preferpd(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_preferpd(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn preferpd_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_preferpd_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn routeraddr(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_routeraddr(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn routeraddr_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_routeraddr_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, val as u64, ) } @@ -86094,14 +86771,24 @@ impl prefix_info__bindgen_ty_1__bindgen_ty_1 { #[inline] pub fn new_bitfield_1( reserved: __u8, + preferpd: __u8, + routeraddr: __u8, autoconf: __u8, onlink: __u8, ) -> __BindgenBitfieldUnit<[u8; 1usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 6u8, { + __bindgen_bitfield_unit.set(0usize, 4u8, { let reserved: u8 = unsafe { ::core::mem::transmute(reserved) }; reserved as u64 }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let preferpd: u8 = unsafe { ::core::mem::transmute(preferpd) }; + preferpd as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let routeraddr: u8 = unsafe { ::core::mem::transmute(routeraddr) }; + routeraddr as u64 + }); __bindgen_bitfield_unit.set(6usize, 1u8, { let autoconf: u8 = unsafe { ::core::mem::transmute(autoconf) }; autoconf as u64 @@ -87146,14 +87833,14 @@ pub struct psi_group { pub enabled: bool_, pub avgs_lock: mutex, pub pcpu: *mut psi_group_cpu, - pub avg_total: [u64_; 6usize], + pub avg_total: [u64_; 7usize], pub avg_last_update: u64_, pub avg_next_update: u64_, pub avgs_work: delayed_work, pub avg_triggers: list_head, - pub avg_nr_triggers: [u32_; 6usize], - pub total: [u64_; 12usize], - pub avg: [::core::ffi::c_ulong; 18usize], + pub avg_nr_triggers: [u32_; 7usize], + pub total: [u64_; 14usize], + pub avg: [::core::ffi::c_ulong; 21usize], pub rtpoll_task: *mut task_struct, pub rtpoll_timer: timer_list, pub rtpoll_wait: wait_queue_head_t, @@ -87161,16 +87848,16 @@ pub struct psi_group { pub rtpoll_scheduled: atomic_t, pub rtpoll_trigger_lock: mutex, pub rtpoll_triggers: list_head, - pub rtpoll_nr_triggers: [u32_; 6usize], + pub rtpoll_nr_triggers: [u32_; 7usize], pub rtpoll_states: u32_, pub rtpoll_min_period: u64_, - pub rtpoll_total: [u64_; 6usize], + pub rtpoll_total: [u64_; 7usize], pub rtpoll_next_update: u64_, pub rtpoll_until: u64_, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of psi_group"][::core::mem::size_of::() - 720usize]; + ["Size of psi_group"][::core::mem::size_of::() - 784usize]; ["Alignment of psi_group"][::core::mem::align_of::() - 8usize]; ["Offset of field: psi_group::parent"][::core::mem::offset_of!(psi_group, parent) - 0usize]; ["Offset of field: psi_group::enabled"][::core::mem::offset_of!(psi_group, enabled) - 8usize]; @@ -87180,43 +87867,43 @@ const _: () = { ["Offset of field: psi_group::avg_total"] [::core::mem::offset_of!(psi_group, avg_total) - 56usize]; ["Offset of field: psi_group::avg_last_update"] - [::core::mem::offset_of!(psi_group, avg_last_update) - 104usize]; + [::core::mem::offset_of!(psi_group, avg_last_update) - 112usize]; ["Offset of field: psi_group::avg_next_update"] - [::core::mem::offset_of!(psi_group, avg_next_update) - 112usize]; + [::core::mem::offset_of!(psi_group, avg_next_update) - 120usize]; ["Offset of field: psi_group::avgs_work"] - [::core::mem::offset_of!(psi_group, avgs_work) - 120usize]; + [::core::mem::offset_of!(psi_group, avgs_work) - 128usize]; ["Offset of field: psi_group::avg_triggers"] - [::core::mem::offset_of!(psi_group, avg_triggers) - 208usize]; + [::core::mem::offset_of!(psi_group, avg_triggers) - 216usize]; ["Offset of field: psi_group::avg_nr_triggers"] - [::core::mem::offset_of!(psi_group, avg_nr_triggers) - 224usize]; - ["Offset of field: psi_group::total"][::core::mem::offset_of!(psi_group, total) - 248usize]; - ["Offset of field: psi_group::avg"][::core::mem::offset_of!(psi_group, avg) - 344usize]; + [::core::mem::offset_of!(psi_group, avg_nr_triggers) - 232usize]; + ["Offset of field: psi_group::total"][::core::mem::offset_of!(psi_group, total) - 264usize]; + ["Offset of field: psi_group::avg"][::core::mem::offset_of!(psi_group, avg) - 376usize]; ["Offset of field: psi_group::rtpoll_task"] - [::core::mem::offset_of!(psi_group, rtpoll_task) - 488usize]; + [::core::mem::offset_of!(psi_group, rtpoll_task) - 544usize]; ["Offset of field: psi_group::rtpoll_timer"] - [::core::mem::offset_of!(psi_group, rtpoll_timer) - 496usize]; + [::core::mem::offset_of!(psi_group, rtpoll_timer) - 552usize]; ["Offset of field: psi_group::rtpoll_wait"] - [::core::mem::offset_of!(psi_group, rtpoll_wait) - 536usize]; + [::core::mem::offset_of!(psi_group, rtpoll_wait) - 592usize]; ["Offset of field: psi_group::rtpoll_wakeup"] - [::core::mem::offset_of!(psi_group, rtpoll_wakeup) - 560usize]; + [::core::mem::offset_of!(psi_group, rtpoll_wakeup) - 616usize]; ["Offset of field: psi_group::rtpoll_scheduled"] - [::core::mem::offset_of!(psi_group, rtpoll_scheduled) - 564usize]; + [::core::mem::offset_of!(psi_group, rtpoll_scheduled) - 620usize]; ["Offset of field: psi_group::rtpoll_trigger_lock"] - [::core::mem::offset_of!(psi_group, rtpoll_trigger_lock) - 568usize]; + [::core::mem::offset_of!(psi_group, rtpoll_trigger_lock) - 624usize]; ["Offset of field: psi_group::rtpoll_triggers"] - [::core::mem::offset_of!(psi_group, rtpoll_triggers) - 600usize]; + [::core::mem::offset_of!(psi_group, rtpoll_triggers) - 656usize]; ["Offset of field: psi_group::rtpoll_nr_triggers"] - [::core::mem::offset_of!(psi_group, rtpoll_nr_triggers) - 616usize]; + [::core::mem::offset_of!(psi_group, rtpoll_nr_triggers) - 672usize]; ["Offset of field: psi_group::rtpoll_states"] - [::core::mem::offset_of!(psi_group, rtpoll_states) - 640usize]; + [::core::mem::offset_of!(psi_group, rtpoll_states) - 700usize]; ["Offset of field: psi_group::rtpoll_min_period"] - [::core::mem::offset_of!(psi_group, rtpoll_min_period) - 648usize]; + [::core::mem::offset_of!(psi_group, rtpoll_min_period) - 704usize]; ["Offset of field: psi_group::rtpoll_total"] - [::core::mem::offset_of!(psi_group, rtpoll_total) - 656usize]; + [::core::mem::offset_of!(psi_group, rtpoll_total) - 712usize]; ["Offset of field: psi_group::rtpoll_next_update"] - [::core::mem::offset_of!(psi_group, rtpoll_next_update) - 704usize]; + [::core::mem::offset_of!(psi_group, rtpoll_next_update) - 768usize]; ["Offset of field: psi_group::rtpoll_until"] - [::core::mem::offset_of!(psi_group, rtpoll_until) - 712usize]; + [::core::mem::offset_of!(psi_group, rtpoll_until) - 776usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -87224,11 +87911,9 @@ pub struct psi_group_cpu { pub seq: seqcount_t, pub tasks: [::core::ffi::c_uint; 4usize], pub state_mask: u32_, - pub times: [u32_; 7usize], + pub times: [u32_; 8usize], pub state_start: u64_, - pub times_prev: [u32_; 14usize], - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub times_prev: [u32_; 16usize], } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -87246,13 +87931,6 @@ const _: () = { ["Offset of field: psi_group_cpu::times_prev"] [::core::mem::offset_of!(psi_group_cpu, times_prev) - 64usize]; }; -impl psi_group_cpu { - #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); - __bindgen_bitfield_unit - } -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct qc_dqblk { @@ -88249,11 +88927,11 @@ pub struct rdma_cgroup { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of rdma_cgroup"][::core::mem::size_of::() - 216usize]; + ["Size of rdma_cgroup"][::core::mem::size_of::() - 224usize]; ["Alignment of rdma_cgroup"][::core::mem::align_of::() - 8usize]; ["Offset of field: rdma_cgroup::css"][::core::mem::offset_of!(rdma_cgroup, css) - 0usize]; ["Offset of field: rdma_cgroup::rpools"] - [::core::mem::offset_of!(rdma_cgroup, rpools) - 200usize]; + [::core::mem::offset_of!(rdma_cgroup, rpools) - 208usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -89398,7 +90076,7 @@ pub struct regulator_dev { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of regulator_dev"][::core::mem::size_of::() - 1136usize]; + ["Size of regulator_dev"][::core::mem::size_of::() - 1120usize]; ["Alignment of regulator_dev"][::core::mem::align_of::() - 8usize]; ["Offset of field: regulator_dev::desc"][::core::mem::offset_of!(regulator_dev, desc) - 0usize]; ["Offset of field: regulator_dev::exclusive"] @@ -89427,29 +90105,29 @@ const _: () = { [::core::mem::offset_of!(regulator_dev, owner) - 184usize]; ["Offset of field: regulator_dev::dev"][::core::mem::offset_of!(regulator_dev, dev) - 192usize]; ["Offset of field: regulator_dev::constraints"] - [::core::mem::offset_of!(regulator_dev, constraints) - 960usize]; + [::core::mem::offset_of!(regulator_dev, constraints) - 944usize]; ["Offset of field: regulator_dev::supply"] - [::core::mem::offset_of!(regulator_dev, supply) - 968usize]; + [::core::mem::offset_of!(regulator_dev, supply) - 952usize]; ["Offset of field: regulator_dev::supply_name"] - [::core::mem::offset_of!(regulator_dev, supply_name) - 976usize]; + [::core::mem::offset_of!(regulator_dev, supply_name) - 960usize]; ["Offset of field: regulator_dev::regmap"] - [::core::mem::offset_of!(regulator_dev, regmap) - 984usize]; + [::core::mem::offset_of!(regulator_dev, regmap) - 968usize]; ["Offset of field: regulator_dev::disable_work"] - [::core::mem::offset_of!(regulator_dev, disable_work) - 992usize]; + [::core::mem::offset_of!(regulator_dev, disable_work) - 976usize]; ["Offset of field: regulator_dev::reg_data"] - [::core::mem::offset_of!(regulator_dev, reg_data) - 1080usize]; + [::core::mem::offset_of!(regulator_dev, reg_data) - 1064usize]; ["Offset of field: regulator_dev::debugfs"] - [::core::mem::offset_of!(regulator_dev, debugfs) - 1088usize]; + [::core::mem::offset_of!(regulator_dev, debugfs) - 1072usize]; ["Offset of field: regulator_dev::ena_pin"] - [::core::mem::offset_of!(regulator_dev, ena_pin) - 1096usize]; + [::core::mem::offset_of!(regulator_dev, ena_pin) - 1080usize]; ["Offset of field: regulator_dev::last_off"] - [::core::mem::offset_of!(regulator_dev, last_off) - 1112usize]; + [::core::mem::offset_of!(regulator_dev, last_off) - 1096usize]; ["Offset of field: regulator_dev::cached_err"] - [::core::mem::offset_of!(regulator_dev, cached_err) - 1120usize]; + [::core::mem::offset_of!(regulator_dev, cached_err) - 1104usize]; ["Offset of field: regulator_dev::use_cached_err"] - [::core::mem::offset_of!(regulator_dev, use_cached_err) - 1124usize]; + [::core::mem::offset_of!(regulator_dev, use_cached_err) - 1108usize]; ["Offset of field: regulator_dev::err_lock"] - [::core::mem::offset_of!(regulator_dev, err_lock) - 1128usize]; + [::core::mem::offset_of!(regulator_dev, err_lock) - 1112usize]; }; impl regulator_dev { #[inline] @@ -89887,8 +90565,6 @@ pub struct request { pub nr_integrity_segments: ::core::ffi::c_ushort, pub crypt_ctx: *mut bio_crypt_ctx, pub crypt_keyslot: *mut blk_crypto_keyslot, - pub write_hint: rw_hint, - pub ioprio: ::core::ffi::c_ushort, pub state: mq_rq_state, pub ref_: atomic_t, pub deadline: ::core::ffi::c_ulong, @@ -89982,7 +90658,7 @@ const _: () = { }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of request"][::core::mem::size_of::() - 272usize]; + ["Size of request"][::core::mem::size_of::() - 264usize]; ["Alignment of request"][::core::mem::align_of::() - 8usize]; ["Offset of field: request::q"][::core::mem::offset_of!(request, q) - 0usize]; ["Offset of field: request::mq_ctx"][::core::mem::offset_of!(request, mq_ctx) - 8usize]; @@ -90015,18 +90691,15 @@ const _: () = { ["Offset of field: request::crypt_ctx"][::core::mem::offset_of!(request, crypt_ctx) - 128usize]; ["Offset of field: request::crypt_keyslot"] [::core::mem::offset_of!(request, crypt_keyslot) - 136usize]; - ["Offset of field: request::write_hint"] - [::core::mem::offset_of!(request, write_hint) - 144usize]; - ["Offset of field: request::ioprio"][::core::mem::offset_of!(request, ioprio) - 146usize]; - ["Offset of field: request::state"][::core::mem::offset_of!(request, state) - 148usize]; - ["Offset of field: request::ref_"][::core::mem::offset_of!(request, ref_) - 152usize]; - ["Offset of field: request::deadline"][::core::mem::offset_of!(request, deadline) - 160usize]; - ["Offset of field: request::elv"][::core::mem::offset_of!(request, elv) - 208usize]; - ["Offset of field: request::flush"][::core::mem::offset_of!(request, flush) - 232usize]; - ["Offset of field: request::fifo_time"][::core::mem::offset_of!(request, fifo_time) - 248usize]; - ["Offset of field: request::end_io"][::core::mem::offset_of!(request, end_io) - 256usize]; + ["Offset of field: request::state"][::core::mem::offset_of!(request, state) - 144usize]; + ["Offset of field: request::ref_"][::core::mem::offset_of!(request, ref_) - 148usize]; + ["Offset of field: request::deadline"][::core::mem::offset_of!(request, deadline) - 152usize]; + ["Offset of field: request::elv"][::core::mem::offset_of!(request, elv) - 200usize]; + ["Offset of field: request::flush"][::core::mem::offset_of!(request, flush) - 224usize]; + ["Offset of field: request::fifo_time"][::core::mem::offset_of!(request, fifo_time) - 240usize]; + ["Offset of field: request::end_io"][::core::mem::offset_of!(request, end_io) - 248usize]; ["Offset of field: request::end_io_data"] - [::core::mem::offset_of!(request, end_io_data) - 264usize]; + [::core::mem::offset_of!(request, end_io_data) - 256usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -90551,81 +91224,6 @@ const _: () = { [::core::mem::offset_of!(return_instance, next) - 40usize]; }; #[repr(C)] -pub struct rfkill { - pub lock: spinlock_t, - pub type_: rfkill_type, - pub state: ::core::ffi::c_ulong, - pub hard_block_reasons: ::core::ffi::c_ulong, - pub idx: u32_, - pub registered: bool_, - pub persistent: bool_, - pub polling_paused: bool_, - pub suspended: bool_, - pub need_sync: bool_, - pub ops: *const rfkill_ops, - pub data: *mut ::core::ffi::c_void, - pub led_trigger: led_trigger, - pub ledtrigname: *const ::core::ffi::c_char, - pub dev: device, - pub node: list_head, - pub poll_work: delayed_work, - pub uevent_work: work_struct, - pub sync_work: work_struct, - pub name: __IncompleteArrayField<::core::ffi::c_char>, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of rfkill"][::core::mem::size_of::() - 1088usize]; - ["Alignment of rfkill"][::core::mem::align_of::() - 8usize]; - ["Offset of field: rfkill::lock"][::core::mem::offset_of!(rfkill, lock) - 0usize]; - ["Offset of field: rfkill::type_"][::core::mem::offset_of!(rfkill, type_) - 4usize]; - ["Offset of field: rfkill::state"][::core::mem::offset_of!(rfkill, state) - 8usize]; - ["Offset of field: rfkill::hard_block_reasons"] - [::core::mem::offset_of!(rfkill, hard_block_reasons) - 16usize]; - ["Offset of field: rfkill::idx"][::core::mem::offset_of!(rfkill, idx) - 24usize]; - ["Offset of field: rfkill::registered"][::core::mem::offset_of!(rfkill, registered) - 28usize]; - ["Offset of field: rfkill::persistent"][::core::mem::offset_of!(rfkill, persistent) - 29usize]; - ["Offset of field: rfkill::polling_paused"] - [::core::mem::offset_of!(rfkill, polling_paused) - 30usize]; - ["Offset of field: rfkill::suspended"][::core::mem::offset_of!(rfkill, suspended) - 31usize]; - ["Offset of field: rfkill::need_sync"][::core::mem::offset_of!(rfkill, need_sync) - 32usize]; - ["Offset of field: rfkill::ops"][::core::mem::offset_of!(rfkill, ops) - 40usize]; - ["Offset of field: rfkill::data"][::core::mem::offset_of!(rfkill, data) - 48usize]; - ["Offset of field: rfkill::led_trigger"] - [::core::mem::offset_of!(rfkill, led_trigger) - 56usize]; - ["Offset of field: rfkill::ledtrigname"] - [::core::mem::offset_of!(rfkill, ledtrigname) - 144usize]; - ["Offset of field: rfkill::dev"][::core::mem::offset_of!(rfkill, dev) - 152usize]; - ["Offset of field: rfkill::node"][::core::mem::offset_of!(rfkill, node) - 920usize]; - ["Offset of field: rfkill::poll_work"][::core::mem::offset_of!(rfkill, poll_work) - 936usize]; - ["Offset of field: rfkill::uevent_work"] - [::core::mem::offset_of!(rfkill, uevent_work) - 1024usize]; - ["Offset of field: rfkill::sync_work"][::core::mem::offset_of!(rfkill, sync_work) - 1056usize]; - ["Offset of field: rfkill::name"][::core::mem::offset_of!(rfkill, name) - 1088usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rfkill_ops { - pub poll: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut rfkill, arg2: *mut ::core::ffi::c_void), - >, - pub query: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut rfkill, arg2: *mut ::core::ffi::c_void), - >, - pub set_block: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void, arg2: bool_) -> ::core::ffi::c_int, - >, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of rfkill_ops"][::core::mem::size_of::() - 24usize]; - ["Alignment of rfkill_ops"][::core::mem::align_of::() - 8usize]; - ["Offset of field: rfkill_ops::poll"][::core::mem::offset_of!(rfkill_ops, poll) - 0usize]; - ["Offset of field: rfkill_ops::query"][::core::mem::offset_of!(rfkill_ops, query) - 8usize]; - ["Offset of field: rfkill_ops::set_block"] - [::core::mem::offset_of!(rfkill_ops, set_block) - 16usize]; -}; -#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct rhash_lock_head {} #[allow(clippy::unnecessary_operation, clippy::identity_op)] @@ -90790,6 +91388,45 @@ const _: () = { [::core::mem::offset_of!(ring_buffer_iter, missed_events) - 88usize]; }; #[repr(C)] +#[derive(Debug)] +pub struct ring_buffer_meta { + pub magic: ::core::ffi::c_int, + pub struct_size: ::core::ffi::c_int, + pub text_addr: ::core::ffi::c_ulong, + pub data_addr: ::core::ffi::c_ulong, + pub first_buffer: ::core::ffi::c_ulong, + pub head_buffer: ::core::ffi::c_ulong, + pub commit_buffer: ::core::ffi::c_ulong, + pub subbuf_size: __u32, + pub nr_subbufs: __u32, + pub buffers: __IncompleteArrayField<::core::ffi::c_int>, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of ring_buffer_meta"][::core::mem::size_of::() - 56usize]; + ["Alignment of ring_buffer_meta"][::core::mem::align_of::() - 8usize]; + ["Offset of field: ring_buffer_meta::magic"] + [::core::mem::offset_of!(ring_buffer_meta, magic) - 0usize]; + ["Offset of field: ring_buffer_meta::struct_size"] + [::core::mem::offset_of!(ring_buffer_meta, struct_size) - 4usize]; + ["Offset of field: ring_buffer_meta::text_addr"] + [::core::mem::offset_of!(ring_buffer_meta, text_addr) - 8usize]; + ["Offset of field: ring_buffer_meta::data_addr"] + [::core::mem::offset_of!(ring_buffer_meta, data_addr) - 16usize]; + ["Offset of field: ring_buffer_meta::first_buffer"] + [::core::mem::offset_of!(ring_buffer_meta, first_buffer) - 24usize]; + ["Offset of field: ring_buffer_meta::head_buffer"] + [::core::mem::offset_of!(ring_buffer_meta, head_buffer) - 32usize]; + ["Offset of field: ring_buffer_meta::commit_buffer"] + [::core::mem::offset_of!(ring_buffer_meta, commit_buffer) - 40usize]; + ["Offset of field: ring_buffer_meta::subbuf_size"] + [::core::mem::offset_of!(ring_buffer_meta, subbuf_size) - 48usize]; + ["Offset of field: ring_buffer_meta::nr_subbufs"] + [::core::mem::offset_of!(ring_buffer_meta, nr_subbufs) - 52usize]; + ["Offset of field: ring_buffer_meta::buffers"] + [::core::mem::offset_of!(ring_buffer_meta, buffers) - 56usize]; +}; +#[repr(C)] #[derive(Copy, Clone)] pub struct ring_buffer_per_cpu { pub cpu: ::core::ffi::c_int, @@ -90831,9 +91468,11 @@ pub struct ring_buffer_per_cpu { pub read_stamp: u64_, pub pages_removed: ::core::ffi::c_ulong, pub mapped: ::core::ffi::c_uint, + pub user_mapped: ::core::ffi::c_uint, pub mapping_lock: mutex, pub subbuf_ids: *mut ::core::ffi::c_ulong, pub meta_page: *mut trace_buffer_meta, + pub ring_meta: *mut ring_buffer_meta, pub nr_pages_to_update: ::core::ffi::c_long, pub new_pages: list_head, pub update_pages_work: work_struct, @@ -90842,7 +91481,7 @@ pub struct ring_buffer_per_cpu { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of ring_buffer_per_cpu"][::core::mem::size_of::() - 544usize]; + ["Size of ring_buffer_per_cpu"][::core::mem::size_of::() - 552usize]; ["Alignment of ring_buffer_per_cpu"][::core::mem::align_of::() - 8usize]; ["Offset of field: ring_buffer_per_cpu::cpu"] [::core::mem::offset_of!(ring_buffer_per_cpu, cpu) - 0usize]; @@ -90922,22 +91561,26 @@ const _: () = { [::core::mem::offset_of!(ring_buffer_per_cpu, pages_removed) - 304usize]; ["Offset of field: ring_buffer_per_cpu::mapped"] [::core::mem::offset_of!(ring_buffer_per_cpu, mapped) - 312usize]; + ["Offset of field: ring_buffer_per_cpu::user_mapped"] + [::core::mem::offset_of!(ring_buffer_per_cpu, user_mapped) - 316usize]; ["Offset of field: ring_buffer_per_cpu::mapping_lock"] [::core::mem::offset_of!(ring_buffer_per_cpu, mapping_lock) - 320usize]; ["Offset of field: ring_buffer_per_cpu::subbuf_ids"] [::core::mem::offset_of!(ring_buffer_per_cpu, subbuf_ids) - 352usize]; ["Offset of field: ring_buffer_per_cpu::meta_page"] [::core::mem::offset_of!(ring_buffer_per_cpu, meta_page) - 360usize]; + ["Offset of field: ring_buffer_per_cpu::ring_meta"] + [::core::mem::offset_of!(ring_buffer_per_cpu, ring_meta) - 368usize]; ["Offset of field: ring_buffer_per_cpu::nr_pages_to_update"] - [::core::mem::offset_of!(ring_buffer_per_cpu, nr_pages_to_update) - 368usize]; + [::core::mem::offset_of!(ring_buffer_per_cpu, nr_pages_to_update) - 376usize]; ["Offset of field: ring_buffer_per_cpu::new_pages"] - [::core::mem::offset_of!(ring_buffer_per_cpu, new_pages) - 376usize]; + [::core::mem::offset_of!(ring_buffer_per_cpu, new_pages) - 384usize]; ["Offset of field: ring_buffer_per_cpu::update_pages_work"] - [::core::mem::offset_of!(ring_buffer_per_cpu, update_pages_work) - 392usize]; + [::core::mem::offset_of!(ring_buffer_per_cpu, update_pages_work) - 400usize]; ["Offset of field: ring_buffer_per_cpu::update_done"] - [::core::mem::offset_of!(ring_buffer_per_cpu, update_done) - 424usize]; + [::core::mem::offset_of!(ring_buffer_per_cpu, update_done) - 432usize]; ["Offset of field: ring_buffer_per_cpu::irq_work"] - [::core::mem::offset_of!(ring_buffer_per_cpu, irq_work) - 456usize]; + [::core::mem::offset_of!(ring_buffer_per_cpu, irq_work) - 464usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -92723,7 +93366,7 @@ const _: () = { [::core::mem::offset_of!(rt_prio_array, queue) - 16usize]; }; #[repr(C)] -#[derive(Copy, Clone)] +#[derive(Debug, Copy, Clone)] pub struct rt_rq { pub active: rt_prio_array, pub rt_nr_running: ::core::ffi::c_uint, @@ -92732,10 +93375,6 @@ pub struct rt_rq { pub overloaded: bool_, pub pushable_tasks: plist_head, pub rt_queued: ::core::ffi::c_int, - pub rt_throttled: ::core::ffi::c_int, - pub rt_time: u64_, - pub rt_runtime: u64_, - pub rt_runtime_lock: raw_spinlock_t, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -92754,7 +93393,7 @@ const _: () = { }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of rt_rq"][::core::mem::size_of::() - 1688usize]; + ["Size of rt_rq"][::core::mem::size_of::() - 1664usize]; ["Alignment of rt_rq"][::core::mem::align_of::() - 8usize]; ["Offset of field: rt_rq::active"][::core::mem::offset_of!(rt_rq, active) - 0usize]; ["Offset of field: rt_rq::rt_nr_running"] @@ -92767,14 +93406,507 @@ const _: () = { ["Offset of field: rt_rq::pushable_tasks"] [::core::mem::offset_of!(rt_rq, pushable_tasks) - 1640usize]; ["Offset of field: rt_rq::rt_queued"][::core::mem::offset_of!(rt_rq, rt_queued) - 1656usize]; - ["Offset of field: rt_rq::rt_throttled"] - [::core::mem::offset_of!(rt_rq, rt_throttled) - 1660usize]; - ["Offset of field: rt_rq::rt_time"][::core::mem::offset_of!(rt_rq, rt_time) - 1664usize]; - ["Offset of field: rt_rq::rt_runtime"][::core::mem::offset_of!(rt_rq, rt_runtime) - 1672usize]; - ["Offset of field: rt_rq::rt_runtime_lock"] - [::core::mem::offset_of!(rt_rq, rt_runtime_lock) - 1680usize]; }; #[repr(C)] +#[derive(Copy, Clone)] +pub struct scx_dispatch_q { + pub lock: raw_spinlock_t, + pub list: list_head, + pub priq: rb_root, + pub nr: u32_, + pub seq: u32_, + pub id: u64_, + pub hash_node: rhash_head, + pub free_node: llist_node, + pub rcu: callback_head, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of scx_dispatch_q"][::core::mem::size_of::() - 80usize]; + ["Alignment of scx_dispatch_q"][::core::mem::align_of::() - 8usize]; + ["Offset of field: scx_dispatch_q::lock"] + [::core::mem::offset_of!(scx_dispatch_q, lock) - 0usize]; + ["Offset of field: scx_dispatch_q::list"] + [::core::mem::offset_of!(scx_dispatch_q, list) - 8usize]; + ["Offset of field: scx_dispatch_q::priq"] + [::core::mem::offset_of!(scx_dispatch_q, priq) - 24usize]; + ["Offset of field: scx_dispatch_q::nr"][::core::mem::offset_of!(scx_dispatch_q, nr) - 32usize]; + ["Offset of field: scx_dispatch_q::seq"] + [::core::mem::offset_of!(scx_dispatch_q, seq) - 36usize]; + ["Offset of field: scx_dispatch_q::id"][::core::mem::offset_of!(scx_dispatch_q, id) - 40usize]; + ["Offset of field: scx_dispatch_q::hash_node"] + [::core::mem::offset_of!(scx_dispatch_q, hash_node) - 48usize]; + ["Offset of field: scx_dispatch_q::free_node"] + [::core::mem::offset_of!(scx_dispatch_q, free_node) - 56usize]; + ["Offset of field: scx_dispatch_q::rcu"] + [::core::mem::offset_of!(scx_dispatch_q, rcu) - 64usize]; +}; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct scx_rq { + pub local_dsq: scx_dispatch_q, + pub runnable_list: list_head, + pub ddsp_deferred_locals: list_head, + pub ops_qseq: ::core::ffi::c_ulong, + pub extra_enq_flags: u64_, + pub nr_running: u32_, + pub flags: u32_, + pub cpuperf_target: u32_, + pub cpu_released: bool_, + pub cpus_to_kick: cpumask_var_t, + pub cpus_to_kick_if_idle: cpumask_var_t, + pub cpus_to_preempt: cpumask_var_t, + pub cpus_to_wait: cpumask_var_t, + pub pnt_seq: ::core::ffi::c_ulong, + pub deferred_bal_cb: balance_callback, + pub deferred_irq_work: irq_work, + pub kick_cpus_irq_work: irq_work, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of scx_rq"][::core::mem::size_of::() - 264usize]; + ["Alignment of scx_rq"][::core::mem::align_of::() - 8usize]; + ["Offset of field: scx_rq::local_dsq"][::core::mem::offset_of!(scx_rq, local_dsq) - 0usize]; + ["Offset of field: scx_rq::runnable_list"] + [::core::mem::offset_of!(scx_rq, runnable_list) - 80usize]; + ["Offset of field: scx_rq::ddsp_deferred_locals"] + [::core::mem::offset_of!(scx_rq, ddsp_deferred_locals) - 96usize]; + ["Offset of field: scx_rq::ops_qseq"][::core::mem::offset_of!(scx_rq, ops_qseq) - 112usize]; + ["Offset of field: scx_rq::extra_enq_flags"] + [::core::mem::offset_of!(scx_rq, extra_enq_flags) - 120usize]; + ["Offset of field: scx_rq::nr_running"][::core::mem::offset_of!(scx_rq, nr_running) - 128usize]; + ["Offset of field: scx_rq::flags"][::core::mem::offset_of!(scx_rq, flags) - 132usize]; + ["Offset of field: scx_rq::cpuperf_target"] + [::core::mem::offset_of!(scx_rq, cpuperf_target) - 136usize]; + ["Offset of field: scx_rq::cpu_released"] + [::core::mem::offset_of!(scx_rq, cpu_released) - 140usize]; + ["Offset of field: scx_rq::cpus_to_kick"] + [::core::mem::offset_of!(scx_rq, cpus_to_kick) - 144usize]; + ["Offset of field: scx_rq::cpus_to_kick_if_idle"] + [::core::mem::offset_of!(scx_rq, cpus_to_kick_if_idle) - 152usize]; + ["Offset of field: scx_rq::cpus_to_preempt"] + [::core::mem::offset_of!(scx_rq, cpus_to_preempt) - 160usize]; + ["Offset of field: scx_rq::cpus_to_wait"] + [::core::mem::offset_of!(scx_rq, cpus_to_wait) - 168usize]; + ["Offset of field: scx_rq::pnt_seq"][::core::mem::offset_of!(scx_rq, pnt_seq) - 176usize]; + ["Offset of field: scx_rq::deferred_bal_cb"] + [::core::mem::offset_of!(scx_rq, deferred_bal_cb) - 184usize]; + ["Offset of field: scx_rq::deferred_irq_work"] + [::core::mem::offset_of!(scx_rq, deferred_irq_work) - 200usize]; + ["Offset of field: scx_rq::kick_cpus_irq_work"] + [::core::mem::offset_of!(scx_rq, kick_cpus_irq_work) - 232usize]; +}; +pub type dl_server_has_tasks_f = + ::core::option::Option bool_>; +pub type dl_server_pick_f = + ::core::option::Option *mut task_struct>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_dl_entity { + pub rb_node: rb_node, + pub dl_runtime: u64_, + pub dl_deadline: u64_, + pub dl_period: u64_, + pub dl_bw: u64_, + pub dl_density: u64_, + pub runtime: s64, + pub deadline: u64_, + pub flags: ::core::ffi::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub dl_timer: hrtimer, + pub inactive_timer: hrtimer, + pub rq: *mut rq, + pub server_has_tasks: dl_server_has_tasks_f, + pub server_pick_task: dl_server_pick_f, + pub pi_se: *mut sched_dl_entity, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of sched_dl_entity"][::core::mem::size_of::() - 248usize]; + ["Alignment of sched_dl_entity"][::core::mem::align_of::() - 8usize]; + ["Offset of field: sched_dl_entity::rb_node"] + [::core::mem::offset_of!(sched_dl_entity, rb_node) - 0usize]; + ["Offset of field: sched_dl_entity::dl_runtime"] + [::core::mem::offset_of!(sched_dl_entity, dl_runtime) - 24usize]; + ["Offset of field: sched_dl_entity::dl_deadline"] + [::core::mem::offset_of!(sched_dl_entity, dl_deadline) - 32usize]; + ["Offset of field: sched_dl_entity::dl_period"] + [::core::mem::offset_of!(sched_dl_entity, dl_period) - 40usize]; + ["Offset of field: sched_dl_entity::dl_bw"] + [::core::mem::offset_of!(sched_dl_entity, dl_bw) - 48usize]; + ["Offset of field: sched_dl_entity::dl_density"] + [::core::mem::offset_of!(sched_dl_entity, dl_density) - 56usize]; + ["Offset of field: sched_dl_entity::runtime"] + [::core::mem::offset_of!(sched_dl_entity, runtime) - 64usize]; + ["Offset of field: sched_dl_entity::deadline"] + [::core::mem::offset_of!(sched_dl_entity, deadline) - 72usize]; + ["Offset of field: sched_dl_entity::flags"] + [::core::mem::offset_of!(sched_dl_entity, flags) - 80usize]; + ["Offset of field: sched_dl_entity::dl_timer"] + [::core::mem::offset_of!(sched_dl_entity, dl_timer) - 88usize]; + ["Offset of field: sched_dl_entity::inactive_timer"] + [::core::mem::offset_of!(sched_dl_entity, inactive_timer) - 152usize]; + ["Offset of field: sched_dl_entity::rq"] + [::core::mem::offset_of!(sched_dl_entity, rq) - 216usize]; + ["Offset of field: sched_dl_entity::server_has_tasks"] + [::core::mem::offset_of!(sched_dl_entity, server_has_tasks) - 224usize]; + ["Offset of field: sched_dl_entity::server_pick_task"] + [::core::mem::offset_of!(sched_dl_entity, server_pick_task) - 232usize]; + ["Offset of field: sched_dl_entity::pi_se"] + [::core::mem::offset_of!(sched_dl_entity, pi_se) - 240usize]; +}; +impl sched_dl_entity { + #[inline] + pub fn dl_throttled(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_throttled(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_throttled_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_throttled_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_yielded(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_yielded(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_yielded_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_yielded_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_non_contending(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_non_contending(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_non_contending_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_non_contending_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_overrun(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_overrun(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_overrun_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_overrun_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_server(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_server(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_server_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_server_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_server_active(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_server_active(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_server_active_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_server_active_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_defer(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_defer(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_defer_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_defer_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_defer_armed(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_defer_armed(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_defer_armed_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_defer_armed_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_defer_running(&self) -> ::core::ffi::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_defer_running(&mut self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_defer_running_raw(this: *const Self) -> ::core::ffi::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_defer_running_raw(this: *mut Self, val: ::core::ffi::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + dl_throttled: ::core::ffi::c_uint, + dl_yielded: ::core::ffi::c_uint, + dl_non_contending: ::core::ffi::c_uint, + dl_overrun: ::core::ffi::c_uint, + dl_server: ::core::ffi::c_uint, + dl_server_active: ::core::ffi::c_uint, + dl_defer: ::core::ffi::c_uint, + dl_defer_armed: ::core::ffi::c_uint, + dl_defer_running: ::core::ffi::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let dl_throttled: u32 = unsafe { ::core::mem::transmute(dl_throttled) }; + dl_throttled as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let dl_yielded: u32 = unsafe { ::core::mem::transmute(dl_yielded) }; + dl_yielded as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let dl_non_contending: u32 = unsafe { ::core::mem::transmute(dl_non_contending) }; + dl_non_contending as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let dl_overrun: u32 = unsafe { ::core::mem::transmute(dl_overrun) }; + dl_overrun as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let dl_server: u32 = unsafe { ::core::mem::transmute(dl_server) }; + dl_server as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let dl_server_active: u32 = unsafe { ::core::mem::transmute(dl_server_active) }; + dl_server_active as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let dl_defer: u32 = unsafe { ::core::mem::transmute(dl_defer) }; + dl_defer as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let dl_defer_armed: u32 = unsafe { ::core::mem::transmute(dl_defer_armed) }; + dl_defer_armed as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let dl_defer_running: u32 = unsafe { ::core::mem::transmute(dl_defer_running) }; + dl_defer_running as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct sched_info { pub pcount: ::core::ffi::c_ulong, @@ -92820,10 +93952,13 @@ pub struct rq { pub cfs: cfs_rq, pub rt: rt_rq, pub dl: dl_rq, + pub scx: scx_rq, + pub fair_server: sched_dl_entity, pub leaf_cfs_rq_list: list_head, pub tmp_alone_branch: *mut list_head, pub nr_uninterruptible: ::core::ffi::c_uint, pub curr: *mut task_struct, + pub dl_server: *mut sched_dl_entity, pub idle: *mut task_struct, pub stop: *mut task_struct, pub next_balance: ::core::ffi::c_ulong, @@ -92831,7 +93966,7 @@ pub struct rq { pub clock_update_flags: ::core::ffi::c_uint, pub clock: u64_, pub _bitfield_align_4: [u8; 0], - pub _bitfield_4: __BindgenBitfieldUnit<[u8; 40usize]>, + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 56usize]>, pub clock_task: u64_, pub clock_pelt: u64_, pub lost_idle_time: ::core::ffi::c_ulong, @@ -92856,15 +93991,19 @@ pub struct rq { pub cfs_tasks: list_head, pub avg_rt: sched_avg, pub avg_dl: sched_avg, + pub avg_irq: sched_avg, pub idle_stamp: u64_, pub avg_idle: u64_, pub max_idle_balance_cost: u64_, pub hotplug_wait: rcuwait, + pub prev_irq_time: u64_, + pub psi_irq_time: u64_, pub prev_steal_time: u64_, + pub prev_steal_time_rq: u64_, pub calc_load_update: ::core::ffi::c_ulong, pub calc_load_active: ::core::ffi::c_long, pub _bitfield_align_5: [u8; 0], - pub _bitfield_5: __BindgenBitfieldUnit<[u8; 8usize]>, + pub _bitfield_5: __BindgenBitfieldUnit<[u8; 16usize]>, pub hrtick_csd: call_single_data_t, pub hrtick_timer: hrtimer, pub hrtick_time: ktime_t, @@ -92881,6 +94020,7 @@ pub struct rq { pub push_work: cpu_stop_work, pub core: *mut rq, pub core_pick: *mut task_struct, + pub core_dl_server: *mut sched_dl_entity, pub core_enabled: ::core::ffi::c_uint, pub core_sched_seq: ::core::ffi::c_uint, pub core_tree: rb_root, @@ -92892,16 +94032,14 @@ pub struct rq { pub core_forceidle_occupation: ::core::ffi::c_uint, pub core_forceidle_start: u64_, pub scratch_mask: cpumask_var_t, - pub _bitfield_align_6: [u8; 0], - pub _bitfield_6: __BindgenBitfieldUnit<[u8; 8usize]>, pub cfsb_csd: call_single_data_t, pub cfsb_csd_list: list_head, - pub _bitfield_align_7: [u8; 0], - pub _bitfield_7: __BindgenBitfieldUnit<[u8; 16usize]>, + pub _bitfield_align_6: [u8; 0], + pub _bitfield_6: __BindgenBitfieldUnit<[u8; 48usize]>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of rq"][::core::mem::size_of::() - 3456usize]; + ["Size of rq"][::core::mem::size_of::() - 4096usize]; ["Alignment of rq"][::core::mem::align_of::() - 8usize]; ["Offset of field: rq::__lock"][::core::mem::offset_of!(rq, __lock) - 0usize]; ["Offset of field: rq::nr_running"][::core::mem::offset_of!(rq, nr_running) - 4usize]; @@ -92924,100 +94062,110 @@ const _: () = { ["Offset of field: rq::uclamp_flags"][::core::mem::offset_of!(rq, uclamp_flags) - 224usize]; ["Offset of field: rq::cfs"][::core::mem::offset_of!(rq, cfs) - 256usize]; ["Offset of field: rq::rt"][::core::mem::offset_of!(rq, rt) - 768usize]; - ["Offset of field: rq::dl"][::core::mem::offset_of!(rq, dl) - 2456usize]; + ["Offset of field: rq::dl"][::core::mem::offset_of!(rq, dl) - 2432usize]; + ["Offset of field: rq::scx"][::core::mem::offset_of!(rq, scx) - 2536usize]; + ["Offset of field: rq::fair_server"][::core::mem::offset_of!(rq, fair_server) - 2800usize]; ["Offset of field: rq::leaf_cfs_rq_list"] - [::core::mem::offset_of!(rq, leaf_cfs_rq_list) - 2560usize]; + [::core::mem::offset_of!(rq, leaf_cfs_rq_list) - 3048usize]; ["Offset of field: rq::tmp_alone_branch"] - [::core::mem::offset_of!(rq, tmp_alone_branch) - 2576usize]; + [::core::mem::offset_of!(rq, tmp_alone_branch) - 3064usize]; ["Offset of field: rq::nr_uninterruptible"] - [::core::mem::offset_of!(rq, nr_uninterruptible) - 2584usize]; - ["Offset of field: rq::curr"][::core::mem::offset_of!(rq, curr) - 2592usize]; - ["Offset of field: rq::idle"][::core::mem::offset_of!(rq, idle) - 2600usize]; - ["Offset of field: rq::stop"][::core::mem::offset_of!(rq, stop) - 2608usize]; - ["Offset of field: rq::next_balance"][::core::mem::offset_of!(rq, next_balance) - 2616usize]; - ["Offset of field: rq::prev_mm"][::core::mem::offset_of!(rq, prev_mm) - 2624usize]; + [::core::mem::offset_of!(rq, nr_uninterruptible) - 3072usize]; + ["Offset of field: rq::curr"][::core::mem::offset_of!(rq, curr) - 3080usize]; + ["Offset of field: rq::dl_server"][::core::mem::offset_of!(rq, dl_server) - 3088usize]; + ["Offset of field: rq::idle"][::core::mem::offset_of!(rq, idle) - 3096usize]; + ["Offset of field: rq::stop"][::core::mem::offset_of!(rq, stop) - 3104usize]; + ["Offset of field: rq::next_balance"][::core::mem::offset_of!(rq, next_balance) - 3112usize]; + ["Offset of field: rq::prev_mm"][::core::mem::offset_of!(rq, prev_mm) - 3120usize]; ["Offset of field: rq::clock_update_flags"] - [::core::mem::offset_of!(rq, clock_update_flags) - 2632usize]; - ["Offset of field: rq::clock"][::core::mem::offset_of!(rq, clock) - 2640usize]; - ["Offset of field: rq::clock_task"][::core::mem::offset_of!(rq, clock_task) - 2688usize]; - ["Offset of field: rq::clock_pelt"][::core::mem::offset_of!(rq, clock_pelt) - 2696usize]; + [::core::mem::offset_of!(rq, clock_update_flags) - 3128usize]; + ["Offset of field: rq::clock"][::core::mem::offset_of!(rq, clock) - 3136usize]; + ["Offset of field: rq::clock_task"][::core::mem::offset_of!(rq, clock_task) - 3200usize]; + ["Offset of field: rq::clock_pelt"][::core::mem::offset_of!(rq, clock_pelt) - 3208usize]; ["Offset of field: rq::lost_idle_time"] - [::core::mem::offset_of!(rq, lost_idle_time) - 2704usize]; + [::core::mem::offset_of!(rq, lost_idle_time) - 3216usize]; ["Offset of field: rq::clock_pelt_idle"] - [::core::mem::offset_of!(rq, clock_pelt_idle) - 2712usize]; - ["Offset of field: rq::clock_idle"][::core::mem::offset_of!(rq, clock_idle) - 2720usize]; - ["Offset of field: rq::nr_iowait"][::core::mem::offset_of!(rq, nr_iowait) - 2728usize]; + [::core::mem::offset_of!(rq, clock_pelt_idle) - 3224usize]; + ["Offset of field: rq::clock_idle"][::core::mem::offset_of!(rq, clock_idle) - 3232usize]; + ["Offset of field: rq::nr_iowait"][::core::mem::offset_of!(rq, nr_iowait) - 3240usize]; ["Offset of field: rq::last_seen_need_resched_ns"] - [::core::mem::offset_of!(rq, last_seen_need_resched_ns) - 2736usize]; + [::core::mem::offset_of!(rq, last_seen_need_resched_ns) - 3248usize]; ["Offset of field: rq::ticks_without_resched"] - [::core::mem::offset_of!(rq, ticks_without_resched) - 2744usize]; + [::core::mem::offset_of!(rq, ticks_without_resched) - 3256usize]; ["Offset of field: rq::membarrier_state"] - [::core::mem::offset_of!(rq, membarrier_state) - 2748usize]; - ["Offset of field: rq::rd"][::core::mem::offset_of!(rq, rd) - 2752usize]; - ["Offset of field: rq::sd"][::core::mem::offset_of!(rq, sd) - 2760usize]; - ["Offset of field: rq::cpu_capacity"][::core::mem::offset_of!(rq, cpu_capacity) - 2768usize]; + [::core::mem::offset_of!(rq, membarrier_state) - 3260usize]; + ["Offset of field: rq::rd"][::core::mem::offset_of!(rq, rd) - 3264usize]; + ["Offset of field: rq::sd"][::core::mem::offset_of!(rq, sd) - 3272usize]; + ["Offset of field: rq::cpu_capacity"][::core::mem::offset_of!(rq, cpu_capacity) - 3280usize]; ["Offset of field: rq::balance_callback"] - [::core::mem::offset_of!(rq, balance_callback) - 2776usize]; + [::core::mem::offset_of!(rq, balance_callback) - 3288usize]; ["Offset of field: rq::nohz_idle_balance"] - [::core::mem::offset_of!(rq, nohz_idle_balance) - 2784usize]; - ["Offset of field: rq::idle_balance"][::core::mem::offset_of!(rq, idle_balance) - 2785usize]; + [::core::mem::offset_of!(rq, nohz_idle_balance) - 3296usize]; + ["Offset of field: rq::idle_balance"][::core::mem::offset_of!(rq, idle_balance) - 3297usize]; ["Offset of field: rq::misfit_task_load"] - [::core::mem::offset_of!(rq, misfit_task_load) - 2792usize]; + [::core::mem::offset_of!(rq, misfit_task_load) - 3304usize]; ["Offset of field: rq::active_balance"] - [::core::mem::offset_of!(rq, active_balance) - 2800usize]; - ["Offset of field: rq::push_cpu"][::core::mem::offset_of!(rq, push_cpu) - 2804usize]; + [::core::mem::offset_of!(rq, active_balance) - 3312usize]; + ["Offset of field: rq::push_cpu"][::core::mem::offset_of!(rq, push_cpu) - 3316usize]; ["Offset of field: rq::active_balance_work"] - [::core::mem::offset_of!(rq, active_balance_work) - 2808usize]; - ["Offset of field: rq::cpu"][::core::mem::offset_of!(rq, cpu) - 2856usize]; - ["Offset of field: rq::online"][::core::mem::offset_of!(rq, online) - 2860usize]; - ["Offset of field: rq::cfs_tasks"][::core::mem::offset_of!(rq, cfs_tasks) - 2864usize]; - ["Offset of field: rq::avg_rt"][::core::mem::offset_of!(rq, avg_rt) - 2880usize]; - ["Offset of field: rq::avg_dl"][::core::mem::offset_of!(rq, avg_dl) - 2944usize]; - ["Offset of field: rq::idle_stamp"][::core::mem::offset_of!(rq, idle_stamp) - 3008usize]; - ["Offset of field: rq::avg_idle"][::core::mem::offset_of!(rq, avg_idle) - 3016usize]; + [::core::mem::offset_of!(rq, active_balance_work) - 3320usize]; + ["Offset of field: rq::cpu"][::core::mem::offset_of!(rq, cpu) - 3368usize]; + ["Offset of field: rq::online"][::core::mem::offset_of!(rq, online) - 3372usize]; + ["Offset of field: rq::cfs_tasks"][::core::mem::offset_of!(rq, cfs_tasks) - 3376usize]; + ["Offset of field: rq::avg_rt"][::core::mem::offset_of!(rq, avg_rt) - 3392usize]; + ["Offset of field: rq::avg_dl"][::core::mem::offset_of!(rq, avg_dl) - 3456usize]; + ["Offset of field: rq::avg_irq"][::core::mem::offset_of!(rq, avg_irq) - 3520usize]; + ["Offset of field: rq::idle_stamp"][::core::mem::offset_of!(rq, idle_stamp) - 3584usize]; + ["Offset of field: rq::avg_idle"][::core::mem::offset_of!(rq, avg_idle) - 3592usize]; ["Offset of field: rq::max_idle_balance_cost"] - [::core::mem::offset_of!(rq, max_idle_balance_cost) - 3024usize]; - ["Offset of field: rq::hotplug_wait"][::core::mem::offset_of!(rq, hotplug_wait) - 3032usize]; + [::core::mem::offset_of!(rq, max_idle_balance_cost) - 3600usize]; + ["Offset of field: rq::hotplug_wait"][::core::mem::offset_of!(rq, hotplug_wait) - 3608usize]; + ["Offset of field: rq::prev_irq_time"][::core::mem::offset_of!(rq, prev_irq_time) - 3616usize]; + ["Offset of field: rq::psi_irq_time"][::core::mem::offset_of!(rq, psi_irq_time) - 3624usize]; ["Offset of field: rq::prev_steal_time"] - [::core::mem::offset_of!(rq, prev_steal_time) - 3040usize]; + [::core::mem::offset_of!(rq, prev_steal_time) - 3632usize]; + ["Offset of field: rq::prev_steal_time_rq"] + [::core::mem::offset_of!(rq, prev_steal_time_rq) - 3640usize]; ["Offset of field: rq::calc_load_update"] - [::core::mem::offset_of!(rq, calc_load_update) - 3048usize]; + [::core::mem::offset_of!(rq, calc_load_update) - 3648usize]; ["Offset of field: rq::calc_load_active"] - [::core::mem::offset_of!(rq, calc_load_active) - 3056usize]; - ["Offset of field: rq::hrtick_csd"][::core::mem::offset_of!(rq, hrtick_csd) - 3072usize]; - ["Offset of field: rq::hrtick_timer"][::core::mem::offset_of!(rq, hrtick_timer) - 3104usize]; - ["Offset of field: rq::hrtick_time"][::core::mem::offset_of!(rq, hrtick_time) - 3168usize]; - ["Offset of field: rq::rq_sched_info"][::core::mem::offset_of!(rq, rq_sched_info) - 3176usize]; - ["Offset of field: rq::rq_cpu_time"][::core::mem::offset_of!(rq, rq_cpu_time) - 3208usize]; - ["Offset of field: rq::yld_count"][::core::mem::offset_of!(rq, yld_count) - 3216usize]; - ["Offset of field: rq::sched_count"][::core::mem::offset_of!(rq, sched_count) - 3220usize]; - ["Offset of field: rq::sched_goidle"][::core::mem::offset_of!(rq, sched_goidle) - 3224usize]; - ["Offset of field: rq::ttwu_count"][::core::mem::offset_of!(rq, ttwu_count) - 3228usize]; - ["Offset of field: rq::ttwu_local"][::core::mem::offset_of!(rq, ttwu_local) - 3232usize]; - ["Offset of field: rq::idle_state"][::core::mem::offset_of!(rq, idle_state) - 3240usize]; - ["Offset of field: rq::nr_pinned"][::core::mem::offset_of!(rq, nr_pinned) - 3248usize]; - ["Offset of field: rq::push_busy"][::core::mem::offset_of!(rq, push_busy) - 3252usize]; - ["Offset of field: rq::push_work"][::core::mem::offset_of!(rq, push_work) - 3256usize]; - ["Offset of field: rq::core"][::core::mem::offset_of!(rq, core) - 3304usize]; - ["Offset of field: rq::core_pick"][::core::mem::offset_of!(rq, core_pick) - 3312usize]; - ["Offset of field: rq::core_enabled"][::core::mem::offset_of!(rq, core_enabled) - 3320usize]; + [::core::mem::offset_of!(rq, calc_load_active) - 3656usize]; + ["Offset of field: rq::hrtick_csd"][::core::mem::offset_of!(rq, hrtick_csd) - 3680usize]; + ["Offset of field: rq::hrtick_timer"][::core::mem::offset_of!(rq, hrtick_timer) - 3712usize]; + ["Offset of field: rq::hrtick_time"][::core::mem::offset_of!(rq, hrtick_time) - 3776usize]; + ["Offset of field: rq::rq_sched_info"][::core::mem::offset_of!(rq, rq_sched_info) - 3784usize]; + ["Offset of field: rq::rq_cpu_time"][::core::mem::offset_of!(rq, rq_cpu_time) - 3816usize]; + ["Offset of field: rq::yld_count"][::core::mem::offset_of!(rq, yld_count) - 3824usize]; + ["Offset of field: rq::sched_count"][::core::mem::offset_of!(rq, sched_count) - 3828usize]; + ["Offset of field: rq::sched_goidle"][::core::mem::offset_of!(rq, sched_goidle) - 3832usize]; + ["Offset of field: rq::ttwu_count"][::core::mem::offset_of!(rq, ttwu_count) - 3836usize]; + ["Offset of field: rq::ttwu_local"][::core::mem::offset_of!(rq, ttwu_local) - 3840usize]; + ["Offset of field: rq::idle_state"][::core::mem::offset_of!(rq, idle_state) - 3848usize]; + ["Offset of field: rq::nr_pinned"][::core::mem::offset_of!(rq, nr_pinned) - 3856usize]; + ["Offset of field: rq::push_busy"][::core::mem::offset_of!(rq, push_busy) - 3860usize]; + ["Offset of field: rq::push_work"][::core::mem::offset_of!(rq, push_work) - 3864usize]; + ["Offset of field: rq::core"][::core::mem::offset_of!(rq, core) - 3912usize]; + ["Offset of field: rq::core_pick"][::core::mem::offset_of!(rq, core_pick) - 3920usize]; + ["Offset of field: rq::core_dl_server"] + [::core::mem::offset_of!(rq, core_dl_server) - 3928usize]; + ["Offset of field: rq::core_enabled"][::core::mem::offset_of!(rq, core_enabled) - 3936usize]; ["Offset of field: rq::core_sched_seq"] - [::core::mem::offset_of!(rq, core_sched_seq) - 3324usize]; - ["Offset of field: rq::core_tree"][::core::mem::offset_of!(rq, core_tree) - 3328usize]; - ["Offset of field: rq::core_task_seq"][::core::mem::offset_of!(rq, core_task_seq) - 3336usize]; - ["Offset of field: rq::core_pick_seq"][::core::mem::offset_of!(rq, core_pick_seq) - 3340usize]; - ["Offset of field: rq::core_cookie"][::core::mem::offset_of!(rq, core_cookie) - 3344usize]; + [::core::mem::offset_of!(rq, core_sched_seq) - 3940usize]; + ["Offset of field: rq::core_tree"][::core::mem::offset_of!(rq, core_tree) - 3944usize]; + ["Offset of field: rq::core_task_seq"][::core::mem::offset_of!(rq, core_task_seq) - 3952usize]; + ["Offset of field: rq::core_pick_seq"][::core::mem::offset_of!(rq, core_pick_seq) - 3956usize]; + ["Offset of field: rq::core_cookie"][::core::mem::offset_of!(rq, core_cookie) - 3960usize]; ["Offset of field: rq::core_forceidle_count"] - [::core::mem::offset_of!(rq, core_forceidle_count) - 3352usize]; + [::core::mem::offset_of!(rq, core_forceidle_count) - 3968usize]; ["Offset of field: rq::core_forceidle_seq"] - [::core::mem::offset_of!(rq, core_forceidle_seq) - 3356usize]; + [::core::mem::offset_of!(rq, core_forceidle_seq) - 3972usize]; ["Offset of field: rq::core_forceidle_occupation"] - [::core::mem::offset_of!(rq, core_forceidle_occupation) - 3360usize]; + [::core::mem::offset_of!(rq, core_forceidle_occupation) - 3976usize]; ["Offset of field: rq::core_forceidle_start"] - [::core::mem::offset_of!(rq, core_forceidle_start) - 3368usize]; - ["Offset of field: rq::scratch_mask"][::core::mem::offset_of!(rq, scratch_mask) - 3376usize]; - ["Offset of field: rq::cfsb_csd"][::core::mem::offset_of!(rq, cfsb_csd) - 3392usize]; - ["Offset of field: rq::cfsb_csd_list"][::core::mem::offset_of!(rq, cfsb_csd_list) - 3424usize]; + [::core::mem::offset_of!(rq, core_forceidle_start) - 3984usize]; + ["Offset of field: rq::scratch_mask"][::core::mem::offset_of!(rq, scratch_mask) - 3992usize]; + ["Offset of field: rq::cfsb_csd"][::core::mem::offset_of!(rq, cfsb_csd) - 4000usize]; + ["Offset of field: rq::cfsb_csd_list"][::core::mem::offset_of!(rq, cfsb_csd_list) - 4032usize]; }; impl rq { #[inline] @@ -93036,17 +94184,7 @@ impl rq { __bindgen_bitfield_unit } #[inline] - pub fn new_bitfield_5() -> __BindgenBitfieldUnit<[u8; 8usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); - __bindgen_bitfield_unit - } - #[inline] - pub fn new_bitfield_6() -> __BindgenBitfieldUnit<[u8; 8usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); - __bindgen_bitfield_unit - } - #[inline] - pub fn new_bitfield_7() -> __BindgenBitfieldUnit<[u8; 16usize]> { + pub fn new_bitfield_5() -> __BindgenBitfieldUnit<[u8; 16usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); __bindgen_bitfield_unit } @@ -93351,16 +94489,88 @@ const _: () = { [::core::mem::offset_of!(rtnl_link_ops, fill_linkxstats) - 200usize]; }; #[repr(C)] -#[derive(Copy, Clone)] -pub union rv_task_monitor { - pub da_mon: da_monitor, +#[derive(Debug, Copy, Clone)] +pub struct rtnl_link_stats64 { + pub rx_packets: __u64, + pub tx_packets: __u64, + pub rx_bytes: __u64, + pub tx_bytes: __u64, + pub rx_errors: __u64, + pub tx_errors: __u64, + pub rx_dropped: __u64, + pub tx_dropped: __u64, + pub multicast: __u64, + pub collisions: __u64, + pub rx_length_errors: __u64, + pub rx_over_errors: __u64, + pub rx_crc_errors: __u64, + pub rx_frame_errors: __u64, + pub rx_fifo_errors: __u64, + pub rx_missed_errors: __u64, + pub tx_aborted_errors: __u64, + pub tx_carrier_errors: __u64, + pub tx_fifo_errors: __u64, + pub tx_heartbeat_errors: __u64, + pub tx_window_errors: __u64, + pub rx_compressed: __u64, + pub tx_compressed: __u64, + pub rx_nohandler: __u64, + pub rx_otherhost_dropped: __u64, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of rv_task_monitor"][::core::mem::size_of::() - 8usize]; - ["Alignment of rv_task_monitor"][::core::mem::align_of::() - 4usize]; - ["Offset of field: rv_task_monitor::da_mon"] - [::core::mem::offset_of!(rv_task_monitor, da_mon) - 0usize]; + ["Size of rtnl_link_stats64"][::core::mem::size_of::() - 200usize]; + ["Alignment of rtnl_link_stats64"][::core::mem::align_of::() - 8usize]; + ["Offset of field: rtnl_link_stats64::rx_packets"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_packets) - 0usize]; + ["Offset of field: rtnl_link_stats64::tx_packets"] + [::core::mem::offset_of!(rtnl_link_stats64, tx_packets) - 8usize]; + ["Offset of field: rtnl_link_stats64::rx_bytes"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_bytes) - 16usize]; + ["Offset of field: rtnl_link_stats64::tx_bytes"] + [::core::mem::offset_of!(rtnl_link_stats64, tx_bytes) - 24usize]; + ["Offset of field: rtnl_link_stats64::rx_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_errors) - 32usize]; + ["Offset of field: rtnl_link_stats64::tx_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, tx_errors) - 40usize]; + ["Offset of field: rtnl_link_stats64::rx_dropped"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_dropped) - 48usize]; + ["Offset of field: rtnl_link_stats64::tx_dropped"] + [::core::mem::offset_of!(rtnl_link_stats64, tx_dropped) - 56usize]; + ["Offset of field: rtnl_link_stats64::multicast"] + [::core::mem::offset_of!(rtnl_link_stats64, multicast) - 64usize]; + ["Offset of field: rtnl_link_stats64::collisions"] + [::core::mem::offset_of!(rtnl_link_stats64, collisions) - 72usize]; + ["Offset of field: rtnl_link_stats64::rx_length_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_length_errors) - 80usize]; + ["Offset of field: rtnl_link_stats64::rx_over_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_over_errors) - 88usize]; + ["Offset of field: rtnl_link_stats64::rx_crc_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_crc_errors) - 96usize]; + ["Offset of field: rtnl_link_stats64::rx_frame_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_frame_errors) - 104usize]; + ["Offset of field: rtnl_link_stats64::rx_fifo_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_fifo_errors) - 112usize]; + ["Offset of field: rtnl_link_stats64::rx_missed_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_missed_errors) - 120usize]; + ["Offset of field: rtnl_link_stats64::tx_aborted_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, tx_aborted_errors) - 128usize]; + ["Offset of field: rtnl_link_stats64::tx_carrier_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, tx_carrier_errors) - 136usize]; + ["Offset of field: rtnl_link_stats64::tx_fifo_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, tx_fifo_errors) - 144usize]; + ["Offset of field: rtnl_link_stats64::tx_heartbeat_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, tx_heartbeat_errors) - 152usize]; + ["Offset of field: rtnl_link_stats64::tx_window_errors"] + [::core::mem::offset_of!(rtnl_link_stats64, tx_window_errors) - 160usize]; + ["Offset of field: rtnl_link_stats64::rx_compressed"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_compressed) - 168usize]; + ["Offset of field: rtnl_link_stats64::tx_compressed"] + [::core::mem::offset_of!(rtnl_link_stats64, tx_compressed) - 176usize]; + ["Offset of field: rtnl_link_stats64::rx_nohandler"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_nohandler) - 184usize]; + ["Offset of field: rtnl_link_stats64::rx_otherhost_dropped"] + [::core::mem::offset_of!(rtnl_link_stats64, rx_otherhost_dropped) - 192usize]; }; #[repr(C)] #[derive(Debug)] @@ -93445,7 +94655,11 @@ pub struct sched_class { unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: ::core::ffi::c_int), >, pub dequeue_task: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: ::core::ffi::c_int), + unsafe extern "C" fn( + arg1: *mut rq, + arg2: *mut task_struct, + arg3: ::core::ffi::c_int, + ) -> bool_, >, pub yield_task: ::core::option::Option, pub yield_to_task: ::core::option::Option< @@ -93454,13 +94668,6 @@ pub struct sched_class { pub wakeup_preempt: ::core::option::Option< unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: ::core::ffi::c_int), >, - pub pick_next_task: - ::core::option::Option *mut task_struct>, - pub put_prev_task: - ::core::option::Option, - pub set_next_task: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: bool_), - >, pub balance: ::core::option::Option< unsafe extern "C" fn( arg1: *mut rq, @@ -93468,6 +94675,16 @@ pub struct sched_class { arg3: *mut rq_flags, ) -> ::core::ffi::c_int, >, + pub pick_task: ::core::option::Option *mut task_struct>, + pub pick_next_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct) -> *mut task_struct, + >, + pub put_prev_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: *mut task_struct), + >, + pub set_next_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: bool_), + >, pub select_task_rq: ::core::option::Option< unsafe extern "C" fn( arg1: *mut task_struct, @@ -93475,7 +94692,6 @@ pub struct sched_class { arg3: ::core::ffi::c_int, ) -> ::core::ffi::c_int, >, - pub pick_task: ::core::option::Option *mut task_struct>, pub migrate_task_rq: ::core::option::Option< unsafe extern "C" fn(arg1: *mut task_struct, arg2: ::core::ffi::c_int), >, @@ -93494,10 +94710,15 @@ pub struct sched_class { >, pub task_fork: ::core::option::Option, pub task_dead: ::core::option::Option, + pub switching_to: + ::core::option::Option, pub switched_from: ::core::option::Option, pub switched_to: ::core::option::Option, + pub reweight_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: *const load_weight), + >, pub prio_changed: ::core::option::Option< unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: ::core::ffi::c_int), >, @@ -93515,7 +94736,7 @@ pub struct sched_class { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of sched_class"][::core::mem::size_of::() - 224usize]; + ["Size of sched_class"][::core::mem::size_of::() - 240usize]; ["Alignment of sched_class"][::core::mem::align_of::() - 8usize]; ["Offset of field: sched_class::uclamp_enabled"] [::core::mem::offset_of!(sched_class, uclamp_enabled) - 0usize]; @@ -93529,18 +94750,18 @@ const _: () = { [::core::mem::offset_of!(sched_class, yield_to_task) - 32usize]; ["Offset of field: sched_class::wakeup_preempt"] [::core::mem::offset_of!(sched_class, wakeup_preempt) - 40usize]; + ["Offset of field: sched_class::balance"] + [::core::mem::offset_of!(sched_class, balance) - 48usize]; + ["Offset of field: sched_class::pick_task"] + [::core::mem::offset_of!(sched_class, pick_task) - 56usize]; ["Offset of field: sched_class::pick_next_task"] - [::core::mem::offset_of!(sched_class, pick_next_task) - 48usize]; + [::core::mem::offset_of!(sched_class, pick_next_task) - 64usize]; ["Offset of field: sched_class::put_prev_task"] - [::core::mem::offset_of!(sched_class, put_prev_task) - 56usize]; + [::core::mem::offset_of!(sched_class, put_prev_task) - 72usize]; ["Offset of field: sched_class::set_next_task"] - [::core::mem::offset_of!(sched_class, set_next_task) - 64usize]; - ["Offset of field: sched_class::balance"] - [::core::mem::offset_of!(sched_class, balance) - 72usize]; + [::core::mem::offset_of!(sched_class, set_next_task) - 80usize]; ["Offset of field: sched_class::select_task_rq"] - [::core::mem::offset_of!(sched_class, select_task_rq) - 80usize]; - ["Offset of field: sched_class::pick_task"] - [::core::mem::offset_of!(sched_class, pick_task) - 88usize]; + [::core::mem::offset_of!(sched_class, select_task_rq) - 88usize]; ["Offset of field: sched_class::migrate_task_rq"] [::core::mem::offset_of!(sched_class, migrate_task_rq) - 96usize]; ["Offset of field: sched_class::task_woken"] @@ -93559,279 +94780,25 @@ const _: () = { [::core::mem::offset_of!(sched_class, task_fork) - 152usize]; ["Offset of field: sched_class::task_dead"] [::core::mem::offset_of!(sched_class, task_dead) - 160usize]; + ["Offset of field: sched_class::switching_to"] + [::core::mem::offset_of!(sched_class, switching_to) - 168usize]; ["Offset of field: sched_class::switched_from"] - [::core::mem::offset_of!(sched_class, switched_from) - 168usize]; + [::core::mem::offset_of!(sched_class, switched_from) - 176usize]; ["Offset of field: sched_class::switched_to"] - [::core::mem::offset_of!(sched_class, switched_to) - 176usize]; + [::core::mem::offset_of!(sched_class, switched_to) - 184usize]; + ["Offset of field: sched_class::reweight_task"] + [::core::mem::offset_of!(sched_class, reweight_task) - 192usize]; ["Offset of field: sched_class::prio_changed"] - [::core::mem::offset_of!(sched_class, prio_changed) - 184usize]; + [::core::mem::offset_of!(sched_class, prio_changed) - 200usize]; ["Offset of field: sched_class::get_rr_interval"] - [::core::mem::offset_of!(sched_class, get_rr_interval) - 192usize]; + [::core::mem::offset_of!(sched_class, get_rr_interval) - 208usize]; ["Offset of field: sched_class::update_curr"] - [::core::mem::offset_of!(sched_class, update_curr) - 200usize]; + [::core::mem::offset_of!(sched_class, update_curr) - 216usize]; ["Offset of field: sched_class::task_change_group"] - [::core::mem::offset_of!(sched_class, task_change_group) - 208usize]; + [::core::mem::offset_of!(sched_class, task_change_group) - 224usize]; ["Offset of field: sched_class::task_is_throttled"] - [::core::mem::offset_of!(sched_class, task_is_throttled) - 216usize]; + [::core::mem::offset_of!(sched_class, task_is_throttled) - 232usize]; }; -pub type dl_server_has_tasks_f = - ::core::option::Option bool_>; -pub type dl_server_pick_f = - ::core::option::Option *mut task_struct>; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sched_dl_entity { - pub rb_node: rb_node, - pub dl_runtime: u64_, - pub dl_deadline: u64_, - pub dl_period: u64_, - pub dl_bw: u64_, - pub dl_density: u64_, - pub runtime: s64, - pub deadline: u64_, - pub flags: ::core::ffi::c_uint, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub dl_timer: hrtimer, - pub inactive_timer: hrtimer, - pub rq: *mut rq, - pub server_has_tasks: dl_server_has_tasks_f, - pub server_pick: dl_server_pick_f, - pub pi_se: *mut sched_dl_entity, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of sched_dl_entity"][::core::mem::size_of::() - 248usize]; - ["Alignment of sched_dl_entity"][::core::mem::align_of::() - 8usize]; - ["Offset of field: sched_dl_entity::rb_node"] - [::core::mem::offset_of!(sched_dl_entity, rb_node) - 0usize]; - ["Offset of field: sched_dl_entity::dl_runtime"] - [::core::mem::offset_of!(sched_dl_entity, dl_runtime) - 24usize]; - ["Offset of field: sched_dl_entity::dl_deadline"] - [::core::mem::offset_of!(sched_dl_entity, dl_deadline) - 32usize]; - ["Offset of field: sched_dl_entity::dl_period"] - [::core::mem::offset_of!(sched_dl_entity, dl_period) - 40usize]; - ["Offset of field: sched_dl_entity::dl_bw"] - [::core::mem::offset_of!(sched_dl_entity, dl_bw) - 48usize]; - ["Offset of field: sched_dl_entity::dl_density"] - [::core::mem::offset_of!(sched_dl_entity, dl_density) - 56usize]; - ["Offset of field: sched_dl_entity::runtime"] - [::core::mem::offset_of!(sched_dl_entity, runtime) - 64usize]; - ["Offset of field: sched_dl_entity::deadline"] - [::core::mem::offset_of!(sched_dl_entity, deadline) - 72usize]; - ["Offset of field: sched_dl_entity::flags"] - [::core::mem::offset_of!(sched_dl_entity, flags) - 80usize]; - ["Offset of field: sched_dl_entity::dl_timer"] - [::core::mem::offset_of!(sched_dl_entity, dl_timer) - 88usize]; - ["Offset of field: sched_dl_entity::inactive_timer"] - [::core::mem::offset_of!(sched_dl_entity, inactive_timer) - 152usize]; - ["Offset of field: sched_dl_entity::rq"] - [::core::mem::offset_of!(sched_dl_entity, rq) - 216usize]; - ["Offset of field: sched_dl_entity::server_has_tasks"] - [::core::mem::offset_of!(sched_dl_entity, server_has_tasks) - 224usize]; - ["Offset of field: sched_dl_entity::server_pick"] - [::core::mem::offset_of!(sched_dl_entity, server_pick) - 232usize]; - ["Offset of field: sched_dl_entity::pi_se"] - [::core::mem::offset_of!(sched_dl_entity, pi_se) - 240usize]; -}; -impl sched_dl_entity { - #[inline] - pub fn dl_throttled(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_dl_throttled(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub unsafe fn dl_throttled_raw(this: *const Self) -> ::core::ffi::c_uint { - unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( - ::core::ptr::addr_of!((*this)._bitfield_1), - 0usize, - 1u8, - ) as u32) - } - } - #[inline] - pub unsafe fn set_dl_throttled_raw(this: *mut Self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( - ::core::ptr::addr_of_mut!((*this)._bitfield_1), - 0usize, - 1u8, - val as u64, - ) - } - } - #[inline] - pub fn dl_yielded(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_dl_yielded(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub unsafe fn dl_yielded_raw(this: *const Self) -> ::core::ffi::c_uint { - unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( - ::core::ptr::addr_of!((*this)._bitfield_1), - 1usize, - 1u8, - ) as u32) - } - } - #[inline] - pub unsafe fn set_dl_yielded_raw(this: *mut Self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( - ::core::ptr::addr_of_mut!((*this)._bitfield_1), - 1usize, - 1u8, - val as u64, - ) - } - } - #[inline] - pub fn dl_non_contending(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_dl_non_contending(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub unsafe fn dl_non_contending_raw(this: *const Self) -> ::core::ffi::c_uint { - unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( - ::core::ptr::addr_of!((*this)._bitfield_1), - 2usize, - 1u8, - ) as u32) - } - } - #[inline] - pub unsafe fn set_dl_non_contending_raw(this: *mut Self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( - ::core::ptr::addr_of_mut!((*this)._bitfield_1), - 2usize, - 1u8, - val as u64, - ) - } - } - #[inline] - pub fn dl_overrun(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_dl_overrun(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub unsafe fn dl_overrun_raw(this: *const Self) -> ::core::ffi::c_uint { - unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( - ::core::ptr::addr_of!((*this)._bitfield_1), - 3usize, - 1u8, - ) as u32) - } - } - #[inline] - pub unsafe fn set_dl_overrun_raw(this: *mut Self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( - ::core::ptr::addr_of_mut!((*this)._bitfield_1), - 3usize, - 1u8, - val as u64, - ) - } - } - #[inline] - pub fn dl_server(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_dl_server(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub unsafe fn dl_server_raw(this: *const Self) -> ::core::ffi::c_uint { - unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( - ::core::ptr::addr_of!((*this)._bitfield_1), - 4usize, - 1u8, - ) as u32) - } - } - #[inline] - pub unsafe fn set_dl_server_raw(this: *mut Self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( - ::core::ptr::addr_of_mut!((*this)._bitfield_1), - 4usize, - 1u8, - val as u64, - ) - } - } - #[inline] - pub fn new_bitfield_1( - dl_throttled: ::core::ffi::c_uint, - dl_yielded: ::core::ffi::c_uint, - dl_non_contending: ::core::ffi::c_uint, - dl_overrun: ::core::ffi::c_uint, - dl_server: ::core::ffi::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let dl_throttled: u32 = unsafe { ::core::mem::transmute(dl_throttled) }; - dl_throttled as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let dl_yielded: u32 = unsafe { ::core::mem::transmute(dl_yielded) }; - dl_yielded as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let dl_non_contending: u32 = unsafe { ::core::mem::transmute(dl_non_contending) }; - dl_non_contending as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let dl_overrun: u32 = unsafe { ::core::mem::transmute(dl_overrun) }; - dl_overrun as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let dl_server: u32 = unsafe { ::core::mem::transmute(dl_server) }; - dl_server as u64 - }); - __bindgen_bitfield_unit - } -} #[repr(C)] pub struct sched_domain { pub parent: *mut sched_domain, @@ -94006,8 +94973,12 @@ pub struct sched_entity { pub run_node: rb_node, pub deadline: u64_, pub min_vruntime: u64_, + pub min_slice: u64_, pub group_node: list_head, - pub on_rq: ::core::ffi::c_uint, + pub on_rq: ::core::ffi::c_uchar, + pub sched_delayed: ::core::ffi::c_uchar, + pub rel_deadline: ::core::ffi::c_uchar, + pub custom_slice: ::core::ffi::c_uchar, pub exec_start: u64_, pub sum_exec_runtime: u64_, pub prev_sum_exec_runtime: u64_, @@ -94021,7 +94992,7 @@ pub struct sched_entity { pub my_q: *mut cfs_rq, pub runnable_weight: ::core::ffi::c_ulong, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, pub avg: sched_avg, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] @@ -94035,38 +95006,46 @@ const _: () = { [::core::mem::offset_of!(sched_entity, deadline) - 40usize]; ["Offset of field: sched_entity::min_vruntime"] [::core::mem::offset_of!(sched_entity, min_vruntime) - 48usize]; + ["Offset of field: sched_entity::min_slice"] + [::core::mem::offset_of!(sched_entity, min_slice) - 56usize]; ["Offset of field: sched_entity::group_node"] - [::core::mem::offset_of!(sched_entity, group_node) - 56usize]; + [::core::mem::offset_of!(sched_entity, group_node) - 64usize]; ["Offset of field: sched_entity::on_rq"] - [::core::mem::offset_of!(sched_entity, on_rq) - 72usize]; + [::core::mem::offset_of!(sched_entity, on_rq) - 80usize]; + ["Offset of field: sched_entity::sched_delayed"] + [::core::mem::offset_of!(sched_entity, sched_delayed) - 81usize]; + ["Offset of field: sched_entity::rel_deadline"] + [::core::mem::offset_of!(sched_entity, rel_deadline) - 82usize]; + ["Offset of field: sched_entity::custom_slice"] + [::core::mem::offset_of!(sched_entity, custom_slice) - 83usize]; ["Offset of field: sched_entity::exec_start"] - [::core::mem::offset_of!(sched_entity, exec_start) - 80usize]; + [::core::mem::offset_of!(sched_entity, exec_start) - 88usize]; ["Offset of field: sched_entity::sum_exec_runtime"] - [::core::mem::offset_of!(sched_entity, sum_exec_runtime) - 88usize]; + [::core::mem::offset_of!(sched_entity, sum_exec_runtime) - 96usize]; ["Offset of field: sched_entity::prev_sum_exec_runtime"] - [::core::mem::offset_of!(sched_entity, prev_sum_exec_runtime) - 96usize]; + [::core::mem::offset_of!(sched_entity, prev_sum_exec_runtime) - 104usize]; ["Offset of field: sched_entity::vruntime"] - [::core::mem::offset_of!(sched_entity, vruntime) - 104usize]; - ["Offset of field: sched_entity::vlag"][::core::mem::offset_of!(sched_entity, vlag) - 112usize]; + [::core::mem::offset_of!(sched_entity, vruntime) - 112usize]; + ["Offset of field: sched_entity::vlag"][::core::mem::offset_of!(sched_entity, vlag) - 120usize]; ["Offset of field: sched_entity::slice"] - [::core::mem::offset_of!(sched_entity, slice) - 120usize]; + [::core::mem::offset_of!(sched_entity, slice) - 128usize]; ["Offset of field: sched_entity::nr_migrations"] - [::core::mem::offset_of!(sched_entity, nr_migrations) - 128usize]; + [::core::mem::offset_of!(sched_entity, nr_migrations) - 136usize]; ["Offset of field: sched_entity::depth"] - [::core::mem::offset_of!(sched_entity, depth) - 136usize]; + [::core::mem::offset_of!(sched_entity, depth) - 144usize]; ["Offset of field: sched_entity::parent"] - [::core::mem::offset_of!(sched_entity, parent) - 144usize]; + [::core::mem::offset_of!(sched_entity, parent) - 152usize]; ["Offset of field: sched_entity::cfs_rq"] - [::core::mem::offset_of!(sched_entity, cfs_rq) - 152usize]; - ["Offset of field: sched_entity::my_q"][::core::mem::offset_of!(sched_entity, my_q) - 160usize]; + [::core::mem::offset_of!(sched_entity, cfs_rq) - 160usize]; + ["Offset of field: sched_entity::my_q"][::core::mem::offset_of!(sched_entity, my_q) - 168usize]; ["Offset of field: sched_entity::runnable_weight"] - [::core::mem::offset_of!(sched_entity, runnable_weight) - 168usize]; + [::core::mem::offset_of!(sched_entity, runnable_weight) - 176usize]; ["Offset of field: sched_entity::avg"][::core::mem::offset_of!(sched_entity, avg) - 192usize]; }; impl sched_entity { #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); __bindgen_bitfield_unit } } @@ -94176,6 +95155,81 @@ impl sched_statistics { } } #[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_ext_entity { + pub dsq: *mut scx_dispatch_q, + pub dsq_list: scx_dsq_list_node, + pub dsq_priq: rb_node, + pub dsq_seq: u32_, + pub dsq_flags: u32_, + pub flags: u32_, + pub weight: u32_, + pub sticky_cpu: s32, + pub holding_cpu: s32, + pub kf_mask: u32_, + pub kf_tasks: [*mut task_struct; 2usize], + pub ops_state: atomic_long_t, + pub runnable_node: list_head, + pub runnable_at: ::core::ffi::c_ulong, + pub core_sched_at: u64_, + pub ddsp_dsq_id: u64_, + pub ddsp_enq_flags: u64_, + pub slice: u64_, + pub dsq_vtime: u64_, + pub disallow: bool_, + pub cgrp_moving_from: *mut cgroup, + pub tasks_node: list_head, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of sched_ext_entity"][::core::mem::size_of::() - 208usize]; + ["Alignment of sched_ext_entity"][::core::mem::align_of::() - 8usize]; + ["Offset of field: sched_ext_entity::dsq"] + [::core::mem::offset_of!(sched_ext_entity, dsq) - 0usize]; + ["Offset of field: sched_ext_entity::dsq_list"] + [::core::mem::offset_of!(sched_ext_entity, dsq_list) - 8usize]; + ["Offset of field: sched_ext_entity::dsq_priq"] + [::core::mem::offset_of!(sched_ext_entity, dsq_priq) - 32usize]; + ["Offset of field: sched_ext_entity::dsq_seq"] + [::core::mem::offset_of!(sched_ext_entity, dsq_seq) - 56usize]; + ["Offset of field: sched_ext_entity::dsq_flags"] + [::core::mem::offset_of!(sched_ext_entity, dsq_flags) - 60usize]; + ["Offset of field: sched_ext_entity::flags"] + [::core::mem::offset_of!(sched_ext_entity, flags) - 64usize]; + ["Offset of field: sched_ext_entity::weight"] + [::core::mem::offset_of!(sched_ext_entity, weight) - 68usize]; + ["Offset of field: sched_ext_entity::sticky_cpu"] + [::core::mem::offset_of!(sched_ext_entity, sticky_cpu) - 72usize]; + ["Offset of field: sched_ext_entity::holding_cpu"] + [::core::mem::offset_of!(sched_ext_entity, holding_cpu) - 76usize]; + ["Offset of field: sched_ext_entity::kf_mask"] + [::core::mem::offset_of!(sched_ext_entity, kf_mask) - 80usize]; + ["Offset of field: sched_ext_entity::kf_tasks"] + [::core::mem::offset_of!(sched_ext_entity, kf_tasks) - 88usize]; + ["Offset of field: sched_ext_entity::ops_state"] + [::core::mem::offset_of!(sched_ext_entity, ops_state) - 104usize]; + ["Offset of field: sched_ext_entity::runnable_node"] + [::core::mem::offset_of!(sched_ext_entity, runnable_node) - 112usize]; + ["Offset of field: sched_ext_entity::runnable_at"] + [::core::mem::offset_of!(sched_ext_entity, runnable_at) - 128usize]; + ["Offset of field: sched_ext_entity::core_sched_at"] + [::core::mem::offset_of!(sched_ext_entity, core_sched_at) - 136usize]; + ["Offset of field: sched_ext_entity::ddsp_dsq_id"] + [::core::mem::offset_of!(sched_ext_entity, ddsp_dsq_id) - 144usize]; + ["Offset of field: sched_ext_entity::ddsp_enq_flags"] + [::core::mem::offset_of!(sched_ext_entity, ddsp_enq_flags) - 152usize]; + ["Offset of field: sched_ext_entity::slice"] + [::core::mem::offset_of!(sched_ext_entity, slice) - 160usize]; + ["Offset of field: sched_ext_entity::dsq_vtime"] + [::core::mem::offset_of!(sched_ext_entity, dsq_vtime) - 168usize]; + ["Offset of field: sched_ext_entity::disallow"] + [::core::mem::offset_of!(sched_ext_entity, disallow) - 176usize]; + ["Offset of field: sched_ext_entity::cgrp_moving_from"] + [::core::mem::offset_of!(sched_ext_entity, cgrp_moving_from) - 184usize]; + ["Offset of field: sched_ext_entity::tasks_node"] + [::core::mem::offset_of!(sched_ext_entity, tasks_node) - 192usize]; +}; +#[repr(C)] #[derive(Debug)] pub struct sched_group { pub next: *mut sched_group, @@ -97669,8 +98723,9 @@ pub struct sfp_upstream_ops { arg2: *mut phy_device, ) -> ::core::ffi::c_int, >, - pub disconnect_phy: - ::core::option::Option, + pub disconnect_phy: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void, arg2: *mut phy_device), + >, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -97744,11 +98799,14 @@ pub struct shrinker { pub private_data: *mut ::core::ffi::c_void, pub list: list_head, pub id: ::core::ffi::c_int, + pub debugfs_id: ::core::ffi::c_int, + pub name: *const ::core::ffi::c_char, + pub debugfs_entry: *mut dentry, pub nr_deferred: *mut atomic_long_t, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of shrinker"][::core::mem::size_of::() - 128usize]; + ["Size of shrinker"][::core::mem::size_of::() - 144usize]; ["Alignment of shrinker"][::core::mem::align_of::() - 8usize]; ["Offset of field: shrinker::count_objects"] [::core::mem::offset_of!(shrinker, count_objects) - 0usize]; @@ -97764,8 +98822,13 @@ const _: () = { [::core::mem::offset_of!(shrinker, private_data) - 88usize]; ["Offset of field: shrinker::list"][::core::mem::offset_of!(shrinker, list) - 96usize]; ["Offset of field: shrinker::id"][::core::mem::offset_of!(shrinker, id) - 112usize]; + ["Offset of field: shrinker::debugfs_id"] + [::core::mem::offset_of!(shrinker, debugfs_id) - 116usize]; + ["Offset of field: shrinker::name"][::core::mem::offset_of!(shrinker, name) - 120usize]; + ["Offset of field: shrinker::debugfs_entry"] + [::core::mem::offset_of!(shrinker, debugfs_entry) - 128usize]; ["Offset of field: shrinker::nr_deferred"] - [::core::mem::offset_of!(shrinker, nr_deferred) - 120usize]; + [::core::mem::offset_of!(shrinker, nr_deferred) - 136usize]; }; #[repr(C)] #[derive(Debug)] @@ -97915,7 +98978,7 @@ pub struct signal_struct { pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, pub next_posix_timer_id: ::core::ffi::c_uint, - pub posix_timers: list_head, + pub posix_timers: hlist_head, pub real_timer: hrtimer, pub it_real_incr: ktime_t, pub it: [cpu_itimer; 2usize], @@ -97965,7 +99028,7 @@ pub struct signal_struct { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of signal_struct"][::core::mem::size_of::() - 1112usize]; + ["Size of signal_struct"][::core::mem::size_of::() - 1104usize]; ["Alignment of signal_struct"][::core::mem::align_of::() - 8usize]; ["Offset of field: signal_struct::sigcnt"] [::core::mem::offset_of!(signal_struct, sigcnt) - 0usize]; @@ -98001,95 +99064,95 @@ const _: () = { ["Offset of field: signal_struct::posix_timers"] [::core::mem::offset_of!(signal_struct, posix_timers) - 136usize]; ["Offset of field: signal_struct::real_timer"] - [::core::mem::offset_of!(signal_struct, real_timer) - 152usize]; + [::core::mem::offset_of!(signal_struct, real_timer) - 144usize]; ["Offset of field: signal_struct::it_real_incr"] - [::core::mem::offset_of!(signal_struct, it_real_incr) - 216usize]; - ["Offset of field: signal_struct::it"][::core::mem::offset_of!(signal_struct, it) - 224usize]; + [::core::mem::offset_of!(signal_struct, it_real_incr) - 208usize]; + ["Offset of field: signal_struct::it"][::core::mem::offset_of!(signal_struct, it) - 216usize]; ["Offset of field: signal_struct::cputimer"] - [::core::mem::offset_of!(signal_struct, cputimer) - 256usize]; + [::core::mem::offset_of!(signal_struct, cputimer) - 248usize]; ["Offset of field: signal_struct::posix_cputimers"] - [::core::mem::offset_of!(signal_struct, posix_cputimers) - 280usize]; + [::core::mem::offset_of!(signal_struct, posix_cputimers) - 272usize]; ["Offset of field: signal_struct::pids"] - [::core::mem::offset_of!(signal_struct, pids) - 360usize]; + [::core::mem::offset_of!(signal_struct, pids) - 352usize]; ["Offset of field: signal_struct::tick_dep_mask"] - [::core::mem::offset_of!(signal_struct, tick_dep_mask) - 392usize]; + [::core::mem::offset_of!(signal_struct, tick_dep_mask) - 384usize]; ["Offset of field: signal_struct::tty_old_pgrp"] - [::core::mem::offset_of!(signal_struct, tty_old_pgrp) - 400usize]; + [::core::mem::offset_of!(signal_struct, tty_old_pgrp) - 392usize]; ["Offset of field: signal_struct::leader"] - [::core::mem::offset_of!(signal_struct, leader) - 408usize]; - ["Offset of field: signal_struct::tty"][::core::mem::offset_of!(signal_struct, tty) - 416usize]; + [::core::mem::offset_of!(signal_struct, leader) - 400usize]; + ["Offset of field: signal_struct::tty"][::core::mem::offset_of!(signal_struct, tty) - 408usize]; ["Offset of field: signal_struct::autogroup"] - [::core::mem::offset_of!(signal_struct, autogroup) - 424usize]; + [::core::mem::offset_of!(signal_struct, autogroup) - 416usize]; ["Offset of field: signal_struct::stats_lock"] - [::core::mem::offset_of!(signal_struct, stats_lock) - 432usize]; + [::core::mem::offset_of!(signal_struct, stats_lock) - 424usize]; ["Offset of field: signal_struct::utime"] - [::core::mem::offset_of!(signal_struct, utime) - 440usize]; + [::core::mem::offset_of!(signal_struct, utime) - 432usize]; ["Offset of field: signal_struct::stime"] - [::core::mem::offset_of!(signal_struct, stime) - 448usize]; + [::core::mem::offset_of!(signal_struct, stime) - 440usize]; ["Offset of field: signal_struct::cutime"] - [::core::mem::offset_of!(signal_struct, cutime) - 456usize]; + [::core::mem::offset_of!(signal_struct, cutime) - 448usize]; ["Offset of field: signal_struct::cstime"] - [::core::mem::offset_of!(signal_struct, cstime) - 464usize]; + [::core::mem::offset_of!(signal_struct, cstime) - 456usize]; ["Offset of field: signal_struct::gtime"] - [::core::mem::offset_of!(signal_struct, gtime) - 472usize]; + [::core::mem::offset_of!(signal_struct, gtime) - 464usize]; ["Offset of field: signal_struct::cgtime"] - [::core::mem::offset_of!(signal_struct, cgtime) - 480usize]; + [::core::mem::offset_of!(signal_struct, cgtime) - 472usize]; ["Offset of field: signal_struct::prev_cputime"] - [::core::mem::offset_of!(signal_struct, prev_cputime) - 488usize]; + [::core::mem::offset_of!(signal_struct, prev_cputime) - 480usize]; ["Offset of field: signal_struct::nvcsw"] - [::core::mem::offset_of!(signal_struct, nvcsw) - 512usize]; + [::core::mem::offset_of!(signal_struct, nvcsw) - 504usize]; ["Offset of field: signal_struct::nivcsw"] - [::core::mem::offset_of!(signal_struct, nivcsw) - 520usize]; + [::core::mem::offset_of!(signal_struct, nivcsw) - 512usize]; ["Offset of field: signal_struct::cnvcsw"] - [::core::mem::offset_of!(signal_struct, cnvcsw) - 528usize]; + [::core::mem::offset_of!(signal_struct, cnvcsw) - 520usize]; ["Offset of field: signal_struct::cnivcsw"] - [::core::mem::offset_of!(signal_struct, cnivcsw) - 536usize]; + [::core::mem::offset_of!(signal_struct, cnivcsw) - 528usize]; ["Offset of field: signal_struct::min_flt"] - [::core::mem::offset_of!(signal_struct, min_flt) - 544usize]; + [::core::mem::offset_of!(signal_struct, min_flt) - 536usize]; ["Offset of field: signal_struct::maj_flt"] - [::core::mem::offset_of!(signal_struct, maj_flt) - 552usize]; + [::core::mem::offset_of!(signal_struct, maj_flt) - 544usize]; ["Offset of field: signal_struct::cmin_flt"] - [::core::mem::offset_of!(signal_struct, cmin_flt) - 560usize]; + [::core::mem::offset_of!(signal_struct, cmin_flt) - 552usize]; ["Offset of field: signal_struct::cmaj_flt"] - [::core::mem::offset_of!(signal_struct, cmaj_flt) - 568usize]; + [::core::mem::offset_of!(signal_struct, cmaj_flt) - 560usize]; ["Offset of field: signal_struct::inblock"] - [::core::mem::offset_of!(signal_struct, inblock) - 576usize]; + [::core::mem::offset_of!(signal_struct, inblock) - 568usize]; ["Offset of field: signal_struct::oublock"] - [::core::mem::offset_of!(signal_struct, oublock) - 584usize]; + [::core::mem::offset_of!(signal_struct, oublock) - 576usize]; ["Offset of field: signal_struct::cinblock"] - [::core::mem::offset_of!(signal_struct, cinblock) - 592usize]; + [::core::mem::offset_of!(signal_struct, cinblock) - 584usize]; ["Offset of field: signal_struct::coublock"] - [::core::mem::offset_of!(signal_struct, coublock) - 600usize]; + [::core::mem::offset_of!(signal_struct, coublock) - 592usize]; ["Offset of field: signal_struct::maxrss"] - [::core::mem::offset_of!(signal_struct, maxrss) - 608usize]; + [::core::mem::offset_of!(signal_struct, maxrss) - 600usize]; ["Offset of field: signal_struct::cmaxrss"] - [::core::mem::offset_of!(signal_struct, cmaxrss) - 616usize]; + [::core::mem::offset_of!(signal_struct, cmaxrss) - 608usize]; ["Offset of field: signal_struct::ioac"] - [::core::mem::offset_of!(signal_struct, ioac) - 624usize]; + [::core::mem::offset_of!(signal_struct, ioac) - 616usize]; ["Offset of field: signal_struct::sum_sched_runtime"] - [::core::mem::offset_of!(signal_struct, sum_sched_runtime) - 680usize]; + [::core::mem::offset_of!(signal_struct, sum_sched_runtime) - 672usize]; ["Offset of field: signal_struct::rlim"] - [::core::mem::offset_of!(signal_struct, rlim) - 688usize]; + [::core::mem::offset_of!(signal_struct, rlim) - 680usize]; ["Offset of field: signal_struct::pacct"] - [::core::mem::offset_of!(signal_struct, pacct) - 944usize]; + [::core::mem::offset_of!(signal_struct, pacct) - 936usize]; ["Offset of field: signal_struct::stats"] - [::core::mem::offset_of!(signal_struct, stats) - 1000usize]; + [::core::mem::offset_of!(signal_struct, stats) - 992usize]; ["Offset of field: signal_struct::audit_tty"] - [::core::mem::offset_of!(signal_struct, audit_tty) - 1008usize]; + [::core::mem::offset_of!(signal_struct, audit_tty) - 1000usize]; ["Offset of field: signal_struct::tty_audit_buf"] - [::core::mem::offset_of!(signal_struct, tty_audit_buf) - 1016usize]; + [::core::mem::offset_of!(signal_struct, tty_audit_buf) - 1008usize]; ["Offset of field: signal_struct::oom_flag_origin"] - [::core::mem::offset_of!(signal_struct, oom_flag_origin) - 1024usize]; + [::core::mem::offset_of!(signal_struct, oom_flag_origin) - 1016usize]; ["Offset of field: signal_struct::oom_score_adj"] - [::core::mem::offset_of!(signal_struct, oom_score_adj) - 1026usize]; + [::core::mem::offset_of!(signal_struct, oom_score_adj) - 1018usize]; ["Offset of field: signal_struct::oom_score_adj_min"] - [::core::mem::offset_of!(signal_struct, oom_score_adj_min) - 1028usize]; + [::core::mem::offset_of!(signal_struct, oom_score_adj_min) - 1020usize]; ["Offset of field: signal_struct::oom_mm"] - [::core::mem::offset_of!(signal_struct, oom_mm) - 1032usize]; + [::core::mem::offset_of!(signal_struct, oom_mm) - 1024usize]; ["Offset of field: signal_struct::cred_guard_mutex"] - [::core::mem::offset_of!(signal_struct, cred_guard_mutex) - 1040usize]; + [::core::mem::offset_of!(signal_struct, cred_guard_mutex) - 1032usize]; ["Offset of field: signal_struct::exec_update_lock"] - [::core::mem::offset_of!(signal_struct, exec_update_lock) - 1072usize]; + [::core::mem::offset_of!(signal_struct, exec_update_lock) - 1064usize]; }; impl signal_struct { #[inline] @@ -98302,9 +99365,9 @@ const _: () = { #[derive(Debug)] pub struct skb_ext { pub refcnt: refcount_t, - pub offset: [u8_; 4usize], + pub offset: [u8_; 5usize], pub chunks: u8_, - pub __bindgen_padding_0: [u8; 7usize], + pub __bindgen_padding_0: [u8; 6usize], pub data: __IncompleteArrayField<::core::ffi::c_char>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] @@ -98313,7 +99376,7 @@ const _: () = { ["Alignment of skb_ext"][::core::mem::align_of::() - 4usize]; ["Offset of field: skb_ext::refcnt"][::core::mem::offset_of!(skb_ext, refcnt) - 0usize]; ["Offset of field: skb_ext::offset"][::core::mem::offset_of!(skb_ext, offset) - 4usize]; - ["Offset of field: skb_ext::chunks"][::core::mem::offset_of!(skb_ext, chunks) - 8usize]; + ["Offset of field: skb_ext::chunks"][::core::mem::offset_of!(skb_ext, chunks) - 9usize]; ["Offset of field: skb_ext::data"][::core::mem::offset_of!(skb_ext, data) - 16usize]; }; #[repr(C)] @@ -98630,35 +99693,6 @@ const _: () = { ["Offset of field: slab::obj_exts"][::core::mem::offset_of!(slab, obj_exts) - 56usize]; }; #[repr(C)] -#[derive(Copy, Clone)] -pub struct smack_known { - pub list: list_head, - pub smk_hashed: hlist_node, - pub smk_known: *mut ::core::ffi::c_char, - pub smk_secid: u32_, - pub smk_netlabel: netlbl_lsm_secattr, - pub smk_rules: list_head, - pub smk_rules_lock: mutex, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of smack_known"][::core::mem::size_of::() - 144usize]; - ["Alignment of smack_known"][::core::mem::align_of::() - 8usize]; - ["Offset of field: smack_known::list"][::core::mem::offset_of!(smack_known, list) - 0usize]; - ["Offset of field: smack_known::smk_hashed"] - [::core::mem::offset_of!(smack_known, smk_hashed) - 16usize]; - ["Offset of field: smack_known::smk_known"] - [::core::mem::offset_of!(smack_known, smk_known) - 32usize]; - ["Offset of field: smack_known::smk_secid"] - [::core::mem::offset_of!(smack_known, smk_secid) - 40usize]; - ["Offset of field: smack_known::smk_netlabel"] - [::core::mem::offset_of!(smack_known, smk_netlabel) - 48usize]; - ["Offset of field: smack_known::smk_rules"] - [::core::mem::offset_of!(smack_known, smk_rules) - 96usize]; - ["Offset of field: smack_known::smk_rules_lock"] - [::core::mem::offset_of!(smack_known, smk_rules_lock) - 112usize]; -}; -#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct sock_fprog_kern { pub len: u16_, @@ -99070,7 +100104,7 @@ pub struct super_block { pub s_time_gran: u32_, pub s_time_min: time64_t, pub s_time_max: time64_t, - pub s_fsnotify_mask: __u32, + pub s_fsnotify_mask: u32_, pub s_fsnotify_info: *mut fsnotify_sb_info, pub s_id: [::core::ffi::c_char; 32usize], pub s_uuid: uuid_t, @@ -99579,7 +100613,6 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct svc_program { - pub pg_next: *mut svc_program, pub pg_prog: u32_, pub pg_lovers: ::core::ffi::c_uint, pub pg_hivers: ::core::ffi::c_uint, @@ -99609,30 +100642,28 @@ pub struct svc_program { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of svc_program"][::core::mem::size_of::() - 72usize]; + ["Size of svc_program"][::core::mem::size_of::() - 64usize]; ["Alignment of svc_program"][::core::mem::align_of::() - 8usize]; - ["Offset of field: svc_program::pg_next"] - [::core::mem::offset_of!(svc_program, pg_next) - 0usize]; ["Offset of field: svc_program::pg_prog"] - [::core::mem::offset_of!(svc_program, pg_prog) - 8usize]; + [::core::mem::offset_of!(svc_program, pg_prog) - 0usize]; ["Offset of field: svc_program::pg_lovers"] - [::core::mem::offset_of!(svc_program, pg_lovers) - 12usize]; + [::core::mem::offset_of!(svc_program, pg_lovers) - 4usize]; ["Offset of field: svc_program::pg_hivers"] - [::core::mem::offset_of!(svc_program, pg_hivers) - 16usize]; + [::core::mem::offset_of!(svc_program, pg_hivers) - 8usize]; ["Offset of field: svc_program::pg_nvers"] - [::core::mem::offset_of!(svc_program, pg_nvers) - 20usize]; + [::core::mem::offset_of!(svc_program, pg_nvers) - 12usize]; ["Offset of field: svc_program::pg_vers"] - [::core::mem::offset_of!(svc_program, pg_vers) - 24usize]; + [::core::mem::offset_of!(svc_program, pg_vers) - 16usize]; ["Offset of field: svc_program::pg_name"] - [::core::mem::offset_of!(svc_program, pg_name) - 32usize]; + [::core::mem::offset_of!(svc_program, pg_name) - 24usize]; ["Offset of field: svc_program::pg_class"] - [::core::mem::offset_of!(svc_program, pg_class) - 40usize]; + [::core::mem::offset_of!(svc_program, pg_class) - 32usize]; ["Offset of field: svc_program::pg_authenticate"] - [::core::mem::offset_of!(svc_program, pg_authenticate) - 48usize]; + [::core::mem::offset_of!(svc_program, pg_authenticate) - 40usize]; ["Offset of field: svc_program::pg_init_request"] - [::core::mem::offset_of!(svc_program, pg_init_request) - 56usize]; + [::core::mem::offset_of!(svc_program, pg_init_request) - 48usize]; ["Offset of field: svc_program::pg_rpcbind_set"] - [::core::mem::offset_of!(svc_program, pg_rpcbind_set) - 64usize]; + [::core::mem::offset_of!(svc_program, pg_rpcbind_set) - 56usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -99715,6 +100746,7 @@ pub struct svc_rqst { pub rq_gssclient: *mut auth_domain, pub rq_task: *mut task_struct, pub rq_bc_net: *mut net, + pub rq_err: ::core::ffi::c_int, pub bc_to_initval: ::core::ffi::c_ulong, pub bc_to_retries: ::core::ffi::c_uint, pub rq_lease_breaker: *mut *mut ::core::ffi::c_void, @@ -99722,7 +100754,7 @@ pub struct svc_rqst { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of svc_rqst"][::core::mem::size_of::() - 11560usize]; + ["Size of svc_rqst"][::core::mem::size_of::() - 11568usize]; ["Alignment of svc_rqst"][::core::mem::align_of::() - 8usize]; ["Offset of field: svc_rqst::rq_all"][::core::mem::offset_of!(svc_rqst, rq_all) - 0usize]; ["Offset of field: svc_rqst::rq_idle"][::core::mem::offset_of!(svc_rqst, rq_idle) - 16usize]; @@ -99800,21 +100832,23 @@ const _: () = { ["Offset of field: svc_rqst::rq_task"][::core::mem::offset_of!(svc_rqst, rq_task) - 11512usize]; ["Offset of field: svc_rqst::rq_bc_net"] [::core::mem::offset_of!(svc_rqst, rq_bc_net) - 11520usize]; + ["Offset of field: svc_rqst::rq_err"][::core::mem::offset_of!(svc_rqst, rq_err) - 11528usize]; ["Offset of field: svc_rqst::bc_to_initval"] - [::core::mem::offset_of!(svc_rqst, bc_to_initval) - 11528usize]; + [::core::mem::offset_of!(svc_rqst, bc_to_initval) - 11536usize]; ["Offset of field: svc_rqst::bc_to_retries"] - [::core::mem::offset_of!(svc_rqst, bc_to_retries) - 11536usize]; + [::core::mem::offset_of!(svc_rqst, bc_to_retries) - 11544usize]; ["Offset of field: svc_rqst::rq_lease_breaker"] - [::core::mem::offset_of!(svc_rqst, rq_lease_breaker) - 11544usize]; + [::core::mem::offset_of!(svc_rqst, rq_lease_breaker) - 11552usize]; ["Offset of field: svc_rqst::rq_status_counter"] - [::core::mem::offset_of!(svc_rqst, rq_status_counter) - 11552usize]; + [::core::mem::offset_of!(svc_rqst, rq_status_counter) - 11560usize]; }; #[repr(C)] #[derive(Copy, Clone)] pub struct svc_serv { - pub sv_program: *mut svc_program, + pub sv_programs: *mut svc_program, pub sv_stats: *mut svc_stat, pub sv_lock: spinlock_t, + pub sv_nprogs: ::core::ffi::c_uint, pub sv_nrthreads: ::core::ffi::c_uint, pub sv_maxconn: ::core::ffi::c_uint, pub sv_max_payload: ::core::ffi::c_uint, @@ -99836,42 +100870,44 @@ pub struct svc_serv { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of svc_serv"][::core::mem::size_of::() - 184usize]; + ["Size of svc_serv"][::core::mem::size_of::() - 192usize]; ["Alignment of svc_serv"][::core::mem::align_of::() - 8usize]; - ["Offset of field: svc_serv::sv_program"] - [::core::mem::offset_of!(svc_serv, sv_program) - 0usize]; + ["Offset of field: svc_serv::sv_programs"] + [::core::mem::offset_of!(svc_serv, sv_programs) - 0usize]; ["Offset of field: svc_serv::sv_stats"][::core::mem::offset_of!(svc_serv, sv_stats) - 8usize]; ["Offset of field: svc_serv::sv_lock"][::core::mem::offset_of!(svc_serv, sv_lock) - 16usize]; + ["Offset of field: svc_serv::sv_nprogs"] + [::core::mem::offset_of!(svc_serv, sv_nprogs) - 20usize]; ["Offset of field: svc_serv::sv_nrthreads"] - [::core::mem::offset_of!(svc_serv, sv_nrthreads) - 20usize]; + [::core::mem::offset_of!(svc_serv, sv_nrthreads) - 24usize]; ["Offset of field: svc_serv::sv_maxconn"] - [::core::mem::offset_of!(svc_serv, sv_maxconn) - 24usize]; + [::core::mem::offset_of!(svc_serv, sv_maxconn) - 28usize]; ["Offset of field: svc_serv::sv_max_payload"] - [::core::mem::offset_of!(svc_serv, sv_max_payload) - 28usize]; + [::core::mem::offset_of!(svc_serv, sv_max_payload) - 32usize]; ["Offset of field: svc_serv::sv_max_mesg"] - [::core::mem::offset_of!(svc_serv, sv_max_mesg) - 32usize]; + [::core::mem::offset_of!(svc_serv, sv_max_mesg) - 36usize]; ["Offset of field: svc_serv::sv_xdrsize"] - [::core::mem::offset_of!(svc_serv, sv_xdrsize) - 36usize]; + [::core::mem::offset_of!(svc_serv, sv_xdrsize) - 40usize]; ["Offset of field: svc_serv::sv_permsocks"] - [::core::mem::offset_of!(svc_serv, sv_permsocks) - 40usize]; + [::core::mem::offset_of!(svc_serv, sv_permsocks) - 48usize]; ["Offset of field: svc_serv::sv_tempsocks"] - [::core::mem::offset_of!(svc_serv, sv_tempsocks) - 56usize]; + [::core::mem::offset_of!(svc_serv, sv_tempsocks) - 64usize]; ["Offset of field: svc_serv::sv_tmpcnt"] - [::core::mem::offset_of!(svc_serv, sv_tmpcnt) - 72usize]; + [::core::mem::offset_of!(svc_serv, sv_tmpcnt) - 80usize]; ["Offset of field: svc_serv::sv_temptimer"] - [::core::mem::offset_of!(svc_serv, sv_temptimer) - 80usize]; - ["Offset of field: svc_serv::sv_name"][::core::mem::offset_of!(svc_serv, sv_name) - 120usize]; + [::core::mem::offset_of!(svc_serv, sv_temptimer) - 88usize]; + ["Offset of field: svc_serv::sv_name"][::core::mem::offset_of!(svc_serv, sv_name) - 128usize]; ["Offset of field: svc_serv::sv_nrpools"] - [::core::mem::offset_of!(svc_serv, sv_nrpools) - 128usize]; + [::core::mem::offset_of!(svc_serv, sv_nrpools) - 136usize]; ["Offset of field: svc_serv::sv_is_pooled"] - [::core::mem::offset_of!(svc_serv, sv_is_pooled) - 132usize]; - ["Offset of field: svc_serv::sv_pools"][::core::mem::offset_of!(svc_serv, sv_pools) - 136usize]; + [::core::mem::offset_of!(svc_serv, sv_is_pooled) - 140usize]; + ["Offset of field: svc_serv::sv_pools"][::core::mem::offset_of!(svc_serv, sv_pools) - 144usize]; ["Offset of field: svc_serv::sv_threadfn"] - [::core::mem::offset_of!(svc_serv, sv_threadfn) - 144usize]; + [::core::mem::offset_of!(svc_serv, sv_threadfn) - 152usize]; ["Offset of field: svc_serv::sv_cb_list"] - [::core::mem::offset_of!(svc_serv, sv_cb_list) - 152usize]; + [::core::mem::offset_of!(svc_serv, sv_cb_list) - 160usize]; ["Offset of field: svc_serv::sv_bc_enabled"] - [::core::mem::offset_of!(svc_serv, sv_bc_enabled) - 176usize]; + [::core::mem::offset_of!(svc_serv, sv_bc_enabled) - 184usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -99947,114 +100983,25 @@ const _: () = { #[derive(Copy, Clone)] pub struct swap_cluster_info { pub lock: spinlock_t, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub count: u16_, + pub flags: u8_, + pub order: u8_, + pub list: list_head, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of swap_cluster_info"][::core::mem::size_of::() - 8usize]; - ["Alignment of swap_cluster_info"][::core::mem::align_of::() - 4usize]; + ["Size of swap_cluster_info"][::core::mem::size_of::() - 24usize]; + ["Alignment of swap_cluster_info"][::core::mem::align_of::() - 8usize]; ["Offset of field: swap_cluster_info::lock"] [::core::mem::offset_of!(swap_cluster_info, lock) - 0usize]; -}; -impl swap_cluster_info { - #[inline] - pub fn data(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 24u8) as u32) } - } - #[inline] - pub fn set_data(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 24u8, val as u64) - } - } - #[inline] - pub unsafe fn data_raw(this: *const Self) -> ::core::ffi::c_uint { - unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( - ::core::ptr::addr_of!((*this)._bitfield_1), - 0usize, - 24u8, - ) as u32) - } - } - #[inline] - pub unsafe fn set_data_raw(this: *mut Self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( - ::core::ptr::addr_of_mut!((*this)._bitfield_1), - 0usize, - 24u8, - val as u64, - ) - } - } - #[inline] - pub fn flags(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) } - } - #[inline] - pub fn set_flags(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(24usize, 8u8, val as u64) - } - } - #[inline] - pub unsafe fn flags_raw(this: *const Self) -> ::core::ffi::c_uint { - unsafe { - ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( - ::core::ptr::addr_of!((*this)._bitfield_1), - 24usize, - 8u8, - ) as u32) - } - } - #[inline] - pub unsafe fn set_flags_raw(this: *mut Self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( - ::core::ptr::addr_of_mut!((*this)._bitfield_1), - 24usize, - 8u8, - val as u64, - ) - } - } - #[inline] - pub fn new_bitfield_1( - data: ::core::ffi::c_uint, - flags: ::core::ffi::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 24u8, { - let data: u32 = unsafe { ::core::mem::transmute(data) }; - data as u64 - }); - __bindgen_bitfield_unit.set(24usize, 8u8, { - let flags: u32 = unsafe { ::core::mem::transmute(flags) }; - flags as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct swap_cluster_list { - pub head: swap_cluster_info, - pub tail: swap_cluster_info, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of swap_cluster_list"][::core::mem::size_of::() - 16usize]; - ["Alignment of swap_cluster_list"][::core::mem::align_of::() - 4usize]; - ["Offset of field: swap_cluster_list::head"] - [::core::mem::offset_of!(swap_cluster_list, head) - 0usize]; - ["Offset of field: swap_cluster_list::tail"] - [::core::mem::offset_of!(swap_cluster_list, tail) - 8usize]; + ["Offset of field: swap_cluster_info::count"] + [::core::mem::offset_of!(swap_cluster_info, count) - 4usize]; + ["Offset of field: swap_cluster_info::flags"] + [::core::mem::offset_of!(swap_cluster_info, flags) - 6usize]; + ["Offset of field: swap_cluster_info::order"] + [::core::mem::offset_of!(swap_cluster_info, order) - 7usize]; + ["Offset of field: swap_cluster_info::list"] + [::core::mem::offset_of!(swap_cluster_info, list) - 8usize]; }; #[repr(C)] pub struct swap_info_struct { @@ -100065,8 +101012,13 @@ pub struct swap_info_struct { pub type_: ::core::ffi::c_schar, pub max: ::core::ffi::c_uint, pub swap_map: *mut ::core::ffi::c_uchar, + pub zeromap: *mut ::core::ffi::c_ulong, pub cluster_info: *mut swap_cluster_info, - pub free_clusters: swap_cluster_list, + pub free_clusters: list_head, + pub full_clusters: list_head, + pub nonfull_clusters: [list_head; 10usize], + pub frag_clusters: [list_head; 10usize], + pub frag_cluster_nr: [::core::ffi::c_uint; 10usize], pub lowest_bit: ::core::ffi::c_uint, pub highest_bit: ::core::ffi::c_uint, pub pages: ::core::ffi::c_uint, @@ -100082,12 +101034,13 @@ pub struct swap_info_struct { pub lock: spinlock_t, pub cont_lock: spinlock_t, pub discard_work: work_struct, - pub discard_clusters: swap_cluster_list, + pub reclaim_work: work_struct, + pub discard_clusters: list_head, pub avail_lists: __IncompleteArrayField, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of swap_info_struct"][::core::mem::size_of::() - 264usize]; + ["Size of swap_info_struct"][::core::mem::size_of::() - 680usize]; ["Alignment of swap_info_struct"][::core::mem::align_of::() - 8usize]; ["Offset of field: swap_info_struct::users"] [::core::mem::offset_of!(swap_info_struct, users) - 0usize]; @@ -100103,44 +101056,56 @@ const _: () = { [::core::mem::offset_of!(swap_info_struct, max) - 76usize]; ["Offset of field: swap_info_struct::swap_map"] [::core::mem::offset_of!(swap_info_struct, swap_map) - 80usize]; + ["Offset of field: swap_info_struct::zeromap"] + [::core::mem::offset_of!(swap_info_struct, zeromap) - 88usize]; ["Offset of field: swap_info_struct::cluster_info"] - [::core::mem::offset_of!(swap_info_struct, cluster_info) - 88usize]; + [::core::mem::offset_of!(swap_info_struct, cluster_info) - 96usize]; ["Offset of field: swap_info_struct::free_clusters"] - [::core::mem::offset_of!(swap_info_struct, free_clusters) - 96usize]; + [::core::mem::offset_of!(swap_info_struct, free_clusters) - 104usize]; + ["Offset of field: swap_info_struct::full_clusters"] + [::core::mem::offset_of!(swap_info_struct, full_clusters) - 120usize]; + ["Offset of field: swap_info_struct::nonfull_clusters"] + [::core::mem::offset_of!(swap_info_struct, nonfull_clusters) - 136usize]; + ["Offset of field: swap_info_struct::frag_clusters"] + [::core::mem::offset_of!(swap_info_struct, frag_clusters) - 296usize]; + ["Offset of field: swap_info_struct::frag_cluster_nr"] + [::core::mem::offset_of!(swap_info_struct, frag_cluster_nr) - 456usize]; ["Offset of field: swap_info_struct::lowest_bit"] - [::core::mem::offset_of!(swap_info_struct, lowest_bit) - 112usize]; + [::core::mem::offset_of!(swap_info_struct, lowest_bit) - 496usize]; ["Offset of field: swap_info_struct::highest_bit"] - [::core::mem::offset_of!(swap_info_struct, highest_bit) - 116usize]; + [::core::mem::offset_of!(swap_info_struct, highest_bit) - 500usize]; ["Offset of field: swap_info_struct::pages"] - [::core::mem::offset_of!(swap_info_struct, pages) - 120usize]; + [::core::mem::offset_of!(swap_info_struct, pages) - 504usize]; ["Offset of field: swap_info_struct::inuse_pages"] - [::core::mem::offset_of!(swap_info_struct, inuse_pages) - 124usize]; + [::core::mem::offset_of!(swap_info_struct, inuse_pages) - 508usize]; ["Offset of field: swap_info_struct::cluster_next"] - [::core::mem::offset_of!(swap_info_struct, cluster_next) - 128usize]; + [::core::mem::offset_of!(swap_info_struct, cluster_next) - 512usize]; ["Offset of field: swap_info_struct::cluster_nr"] - [::core::mem::offset_of!(swap_info_struct, cluster_nr) - 132usize]; + [::core::mem::offset_of!(swap_info_struct, cluster_nr) - 516usize]; ["Offset of field: swap_info_struct::cluster_next_cpu"] - [::core::mem::offset_of!(swap_info_struct, cluster_next_cpu) - 136usize]; + [::core::mem::offset_of!(swap_info_struct, cluster_next_cpu) - 520usize]; ["Offset of field: swap_info_struct::percpu_cluster"] - [::core::mem::offset_of!(swap_info_struct, percpu_cluster) - 144usize]; + [::core::mem::offset_of!(swap_info_struct, percpu_cluster) - 528usize]; ["Offset of field: swap_info_struct::swap_extent_root"] - [::core::mem::offset_of!(swap_info_struct, swap_extent_root) - 152usize]; + [::core::mem::offset_of!(swap_info_struct, swap_extent_root) - 536usize]; ["Offset of field: swap_info_struct::bdev"] - [::core::mem::offset_of!(swap_info_struct, bdev) - 160usize]; + [::core::mem::offset_of!(swap_info_struct, bdev) - 544usize]; ["Offset of field: swap_info_struct::swap_file"] - [::core::mem::offset_of!(swap_info_struct, swap_file) - 168usize]; + [::core::mem::offset_of!(swap_info_struct, swap_file) - 552usize]; ["Offset of field: swap_info_struct::comp"] - [::core::mem::offset_of!(swap_info_struct, comp) - 176usize]; + [::core::mem::offset_of!(swap_info_struct, comp) - 560usize]; ["Offset of field: swap_info_struct::lock"] - [::core::mem::offset_of!(swap_info_struct, lock) - 208usize]; + [::core::mem::offset_of!(swap_info_struct, lock) - 592usize]; ["Offset of field: swap_info_struct::cont_lock"] - [::core::mem::offset_of!(swap_info_struct, cont_lock) - 212usize]; + [::core::mem::offset_of!(swap_info_struct, cont_lock) - 596usize]; ["Offset of field: swap_info_struct::discard_work"] - [::core::mem::offset_of!(swap_info_struct, discard_work) - 216usize]; + [::core::mem::offset_of!(swap_info_struct, discard_work) - 600usize]; + ["Offset of field: swap_info_struct::reclaim_work"] + [::core::mem::offset_of!(swap_info_struct, reclaim_work) - 632usize]; ["Offset of field: swap_info_struct::discard_clusters"] - [::core::mem::offset_of!(swap_info_struct, discard_clusters) - 248usize]; + [::core::mem::offset_of!(swap_info_struct, discard_clusters) - 664usize]; ["Offset of field: swap_info_struct::avail_lists"] - [::core::mem::offset_of!(swap_info_struct, avail_lists) - 264usize]; + [::core::mem::offset_of!(swap_info_struct, avail_lists) - 680usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -100536,29 +101501,6 @@ const _: () = { ["Offset of field: sysv_shm::shm_clist"][::core::mem::offset_of!(sysv_shm, shm_clist) - 0usize]; }; #[repr(C)] -#[derive(Debug)] -pub struct table_header { - pub td_id: u16_, - pub td_flags: u16_, - pub td_hilen: u32_, - pub td_lolen: u32_, - pub td_data: __IncompleteArrayField<::core::ffi::c_char>, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of table_header"][::core::mem::size_of::() - 12usize]; - ["Alignment of table_header"][::core::mem::align_of::() - 4usize]; - ["Offset of field: table_header::td_id"][::core::mem::offset_of!(table_header, td_id) - 0usize]; - ["Offset of field: table_header::td_flags"] - [::core::mem::offset_of!(table_header, td_flags) - 2usize]; - ["Offset of field: table_header::td_hilen"] - [::core::mem::offset_of!(table_header, td_hilen) - 4usize]; - ["Offset of field: table_header::td_lolen"] - [::core::mem::offset_of!(table_header, td_lolen) - 8usize]; - ["Offset of field: table_header::td_data"] - [::core::mem::offset_of!(table_header, td_data) - 12usize]; -}; -#[repr(C)] #[derive(Copy, Clone)] pub struct task_delay_info { pub lock: raw_spinlock_t, @@ -100807,13 +101749,15 @@ impl uclamp_se { #[derive(Copy, Clone)] pub struct task_group { pub css: cgroup_subsys_state, + pub idle: ::core::ffi::c_int, pub se: *mut *mut sched_entity, pub cfs_rq: *mut *mut cfs_rq, pub shares: ::core::ffi::c_ulong, - pub idle: ::core::ffi::c_int, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, pub load_avg: atomic_long_t, + pub scx_flags: u32_, + pub scx_weight: u32_, pub rcu: callback_head, pub list: list_head, pub parent: *mut task_group, @@ -100825,45 +101769,49 @@ pub struct task_group { pub uclamp_req: [uclamp_se; 2usize], pub uclamp: [uclamp_se; 2usize], pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 32usize]>, + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 24usize]>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of task_group"][::core::mem::size_of::() - 640usize]; ["Alignment of task_group"][::core::mem::align_of::() - 8usize]; ["Offset of field: task_group::css"][::core::mem::offset_of!(task_group, css) - 0usize]; - ["Offset of field: task_group::se"][::core::mem::offset_of!(task_group, se) - 200usize]; - ["Offset of field: task_group::cfs_rq"][::core::mem::offset_of!(task_group, cfs_rq) - 208usize]; - ["Offset of field: task_group::shares"][::core::mem::offset_of!(task_group, shares) - 216usize]; - ["Offset of field: task_group::idle"][::core::mem::offset_of!(task_group, idle) - 224usize]; + ["Offset of field: task_group::idle"][::core::mem::offset_of!(task_group, idle) - 208usize]; + ["Offset of field: task_group::se"][::core::mem::offset_of!(task_group, se) - 216usize]; + ["Offset of field: task_group::cfs_rq"][::core::mem::offset_of!(task_group, cfs_rq) - 224usize]; + ["Offset of field: task_group::shares"][::core::mem::offset_of!(task_group, shares) - 232usize]; ["Offset of field: task_group::load_avg"] [::core::mem::offset_of!(task_group, load_avg) - 256usize]; - ["Offset of field: task_group::rcu"][::core::mem::offset_of!(task_group, rcu) - 264usize]; - ["Offset of field: task_group::list"][::core::mem::offset_of!(task_group, list) - 280usize]; - ["Offset of field: task_group::parent"][::core::mem::offset_of!(task_group, parent) - 296usize]; + ["Offset of field: task_group::scx_flags"] + [::core::mem::offset_of!(task_group, scx_flags) - 264usize]; + ["Offset of field: task_group::scx_weight"] + [::core::mem::offset_of!(task_group, scx_weight) - 268usize]; + ["Offset of field: task_group::rcu"][::core::mem::offset_of!(task_group, rcu) - 272usize]; + ["Offset of field: task_group::list"][::core::mem::offset_of!(task_group, list) - 288usize]; + ["Offset of field: task_group::parent"][::core::mem::offset_of!(task_group, parent) - 304usize]; ["Offset of field: task_group::siblings"] - [::core::mem::offset_of!(task_group, siblings) - 304usize]; + [::core::mem::offset_of!(task_group, siblings) - 312usize]; ["Offset of field: task_group::children"] - [::core::mem::offset_of!(task_group, children) - 320usize]; + [::core::mem::offset_of!(task_group, children) - 328usize]; ["Offset of field: task_group::autogroup"] - [::core::mem::offset_of!(task_group, autogroup) - 336usize]; + [::core::mem::offset_of!(task_group, autogroup) - 344usize]; ["Offset of field: task_group::cfs_bandwidth"] - [::core::mem::offset_of!(task_group, cfs_bandwidth) - 344usize]; + [::core::mem::offset_of!(task_group, cfs_bandwidth) - 352usize]; ["Offset of field: task_group::uclamp_pct"] - [::core::mem::offset_of!(task_group, uclamp_pct) - 584usize]; + [::core::mem::offset_of!(task_group, uclamp_pct) - 592usize]; ["Offset of field: task_group::uclamp_req"] - [::core::mem::offset_of!(task_group, uclamp_req) - 592usize]; - ["Offset of field: task_group::uclamp"][::core::mem::offset_of!(task_group, uclamp) - 600usize]; + [::core::mem::offset_of!(task_group, uclamp_req) - 600usize]; + ["Offset of field: task_group::uclamp"][::core::mem::offset_of!(task_group, uclamp) - 608usize]; }; impl task_group { #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); __bindgen_bitfield_unit } #[inline] - pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 32usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); __bindgen_bitfield_unit } } @@ -101095,6 +102043,7 @@ pub struct task_struct { pub rt: sched_rt_entity, pub dl: sched_dl_entity, pub dl_server: *mut sched_dl_entity, + pub scx: sched_ext_entity, pub sched_class: *const sched_class, pub core_node: rb_node, pub core_cookie: ::core::ffi::c_ulong, @@ -101103,7 +102052,7 @@ pub struct task_struct { pub uclamp_req: [uclamp_se; 2usize], pub uclamp: [uclamp_se; 2usize], pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, pub stats: sched_statistics, pub preempt_notifiers: hlist_head, pub btrace_seq: ::core::ffi::c_uint, @@ -101218,7 +102167,6 @@ pub struct task_struct { pub pi_waiters: rb_root_cached, pub pi_top_task: *mut task_struct, pub pi_blocked_on: *mut rt_mutex_waiter, - pub in_ubsan: ::core::ffi::c_uint, pub journal_info: *mut ::core::ffi::c_void, pub bio_list: *mut bio_list, pub plug: *mut blk_plug, @@ -101235,7 +102183,6 @@ pub struct task_struct { pub mems_allowed: nodemask_t, pub mems_allowed_seq: seqcount_spinlock_t, pub cpuset_mem_spread_rotor: ::core::ffi::c_int, - pub cpuset_slab_spread_rotor: ::core::ffi::c_int, pub cgroups: *mut css_set, pub cg_list: list_head, pub closid: u32_, @@ -101284,8 +102231,6 @@ pub struct task_struct { pub nr_dirtied: ::core::ffi::c_int, pub nr_dirtied_pause: ::core::ffi::c_int, pub dirty_paused_when: ::core::ffi::c_ulong, - pub latency_record_count: ::core::ffi::c_int, - pub latency_record: [latency_record; 32usize], pub timer_slack_ns: u64_, pub default_timer_slack_ns: u64_, pub curr_ret_stack: ::core::ffi::c_int, @@ -101310,7 +102255,6 @@ pub struct task_struct { pub oom_reaper_timer: timer_list, pub stack_vm_area: *mut vm_struct, pub stack_refcount: refcount_t, - pub patch_state: ::core::ffi::c_int, pub security: *mut ::core::ffi::c_void, pub bpf_storage: *mut bpf_local_storage, pub bpf_ctx: *mut bpf_run_ctx, @@ -101325,13 +102269,14 @@ pub struct task_struct { pub kretprobe_instances: llist_head, pub rethooks: llist_head, pub l1d_flush_kill: callback_head, - pub rv: [rv_task_monitor; 1usize], pub user_event_mm: *mut user_event_mm, + pub _bitfield_align_4: [u8; 0], + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 32usize]>, pub thread: thread_struct, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of task_struct"][::core::mem::size_of::() - 13696usize]; + ["Size of task_struct"][::core::mem::size_of::() - 10112usize]; ["Alignment of task_struct"][::core::mem::align_of::() - 8usize]; ["Offset of field: task_struct::thread_info"] [::core::mem::offset_of!(task_struct, thread_info) - 0usize]; @@ -101371,454 +102316,440 @@ const _: () = { ["Offset of field: task_struct::dl"][::core::mem::offset_of!(task_struct, dl) - 432usize]; ["Offset of field: task_struct::dl_server"] [::core::mem::offset_of!(task_struct, dl_server) - 680usize]; + ["Offset of field: task_struct::scx"][::core::mem::offset_of!(task_struct, scx) - 688usize]; ["Offset of field: task_struct::sched_class"] - [::core::mem::offset_of!(task_struct, sched_class) - 688usize]; + [::core::mem::offset_of!(task_struct, sched_class) - 896usize]; ["Offset of field: task_struct::core_node"] - [::core::mem::offset_of!(task_struct, core_node) - 696usize]; + [::core::mem::offset_of!(task_struct, core_node) - 904usize]; ["Offset of field: task_struct::core_cookie"] - [::core::mem::offset_of!(task_struct, core_cookie) - 720usize]; + [::core::mem::offset_of!(task_struct, core_cookie) - 928usize]; ["Offset of field: task_struct::core_occupation"] - [::core::mem::offset_of!(task_struct, core_occupation) - 728usize]; + [::core::mem::offset_of!(task_struct, core_occupation) - 936usize]; ["Offset of field: task_struct::sched_task_group"] - [::core::mem::offset_of!(task_struct, sched_task_group) - 736usize]; + [::core::mem::offset_of!(task_struct, sched_task_group) - 944usize]; ["Offset of field: task_struct::uclamp_req"] - [::core::mem::offset_of!(task_struct, uclamp_req) - 744usize]; + [::core::mem::offset_of!(task_struct, uclamp_req) - 952usize]; ["Offset of field: task_struct::uclamp"] - [::core::mem::offset_of!(task_struct, uclamp) - 752usize]; - ["Offset of field: task_struct::stats"][::core::mem::offset_of!(task_struct, stats) - 768usize]; + [::core::mem::offset_of!(task_struct, uclamp) - 960usize]; + ["Offset of field: task_struct::stats"] + [::core::mem::offset_of!(task_struct, stats) - 1024usize]; ["Offset of field: task_struct::preempt_notifiers"] - [::core::mem::offset_of!(task_struct, preempt_notifiers) - 1024usize]; + [::core::mem::offset_of!(task_struct, preempt_notifiers) - 1280usize]; ["Offset of field: task_struct::btrace_seq"] - [::core::mem::offset_of!(task_struct, btrace_seq) - 1032usize]; + [::core::mem::offset_of!(task_struct, btrace_seq) - 1288usize]; ["Offset of field: task_struct::policy"] - [::core::mem::offset_of!(task_struct, policy) - 1036usize]; + [::core::mem::offset_of!(task_struct, policy) - 1292usize]; ["Offset of field: task_struct::max_allowed_capacity"] - [::core::mem::offset_of!(task_struct, max_allowed_capacity) - 1040usize]; + [::core::mem::offset_of!(task_struct, max_allowed_capacity) - 1296usize]; ["Offset of field: task_struct::nr_cpus_allowed"] - [::core::mem::offset_of!(task_struct, nr_cpus_allowed) - 1048usize]; + [::core::mem::offset_of!(task_struct, nr_cpus_allowed) - 1304usize]; ["Offset of field: task_struct::cpus_ptr"] - [::core::mem::offset_of!(task_struct, cpus_ptr) - 1056usize]; + [::core::mem::offset_of!(task_struct, cpus_ptr) - 1312usize]; ["Offset of field: task_struct::user_cpus_ptr"] - [::core::mem::offset_of!(task_struct, user_cpus_ptr) - 1064usize]; + [::core::mem::offset_of!(task_struct, user_cpus_ptr) - 1320usize]; ["Offset of field: task_struct::cpus_mask"] - [::core::mem::offset_of!(task_struct, cpus_mask) - 1072usize]; + [::core::mem::offset_of!(task_struct, cpus_mask) - 1328usize]; ["Offset of field: task_struct::migration_pending"] - [::core::mem::offset_of!(task_struct, migration_pending) - 2096usize]; + [::core::mem::offset_of!(task_struct, migration_pending) - 2352usize]; ["Offset of field: task_struct::migration_disabled"] - [::core::mem::offset_of!(task_struct, migration_disabled) - 2104usize]; + [::core::mem::offset_of!(task_struct, migration_disabled) - 2360usize]; ["Offset of field: task_struct::migration_flags"] - [::core::mem::offset_of!(task_struct, migration_flags) - 2106usize]; + [::core::mem::offset_of!(task_struct, migration_flags) - 2362usize]; ["Offset of field: task_struct::rcu_read_lock_nesting"] - [::core::mem::offset_of!(task_struct, rcu_read_lock_nesting) - 2108usize]; + [::core::mem::offset_of!(task_struct, rcu_read_lock_nesting) - 2364usize]; ["Offset of field: task_struct::rcu_read_unlock_special"] - [::core::mem::offset_of!(task_struct, rcu_read_unlock_special) - 2112usize]; + [::core::mem::offset_of!(task_struct, rcu_read_unlock_special) - 2368usize]; ["Offset of field: task_struct::rcu_node_entry"] - [::core::mem::offset_of!(task_struct, rcu_node_entry) - 2120usize]; + [::core::mem::offset_of!(task_struct, rcu_node_entry) - 2376usize]; ["Offset of field: task_struct::rcu_blocked_node"] - [::core::mem::offset_of!(task_struct, rcu_blocked_node) - 2136usize]; + [::core::mem::offset_of!(task_struct, rcu_blocked_node) - 2392usize]; ["Offset of field: task_struct::rcu_tasks_nvcsw"] - [::core::mem::offset_of!(task_struct, rcu_tasks_nvcsw) - 2144usize]; + [::core::mem::offset_of!(task_struct, rcu_tasks_nvcsw) - 2400usize]; ["Offset of field: task_struct::rcu_tasks_holdout"] - [::core::mem::offset_of!(task_struct, rcu_tasks_holdout) - 2152usize]; + [::core::mem::offset_of!(task_struct, rcu_tasks_holdout) - 2408usize]; ["Offset of field: task_struct::rcu_tasks_idx"] - [::core::mem::offset_of!(task_struct, rcu_tasks_idx) - 2153usize]; + [::core::mem::offset_of!(task_struct, rcu_tasks_idx) - 2409usize]; ["Offset of field: task_struct::rcu_tasks_idle_cpu"] - [::core::mem::offset_of!(task_struct, rcu_tasks_idle_cpu) - 2156usize]; + [::core::mem::offset_of!(task_struct, rcu_tasks_idle_cpu) - 2412usize]; ["Offset of field: task_struct::rcu_tasks_holdout_list"] - [::core::mem::offset_of!(task_struct, rcu_tasks_holdout_list) - 2160usize]; + [::core::mem::offset_of!(task_struct, rcu_tasks_holdout_list) - 2416usize]; ["Offset of field: task_struct::rcu_tasks_exit_cpu"] - [::core::mem::offset_of!(task_struct, rcu_tasks_exit_cpu) - 2176usize]; + [::core::mem::offset_of!(task_struct, rcu_tasks_exit_cpu) - 2432usize]; ["Offset of field: task_struct::rcu_tasks_exit_list"] - [::core::mem::offset_of!(task_struct, rcu_tasks_exit_list) - 2184usize]; + [::core::mem::offset_of!(task_struct, rcu_tasks_exit_list) - 2440usize]; ["Offset of field: task_struct::trc_reader_nesting"] - [::core::mem::offset_of!(task_struct, trc_reader_nesting) - 2200usize]; + [::core::mem::offset_of!(task_struct, trc_reader_nesting) - 2456usize]; ["Offset of field: task_struct::trc_ipi_to_cpu"] - [::core::mem::offset_of!(task_struct, trc_ipi_to_cpu) - 2204usize]; + [::core::mem::offset_of!(task_struct, trc_ipi_to_cpu) - 2460usize]; ["Offset of field: task_struct::trc_reader_special"] - [::core::mem::offset_of!(task_struct, trc_reader_special) - 2208usize]; + [::core::mem::offset_of!(task_struct, trc_reader_special) - 2464usize]; ["Offset of field: task_struct::trc_holdout_list"] - [::core::mem::offset_of!(task_struct, trc_holdout_list) - 2216usize]; + [::core::mem::offset_of!(task_struct, trc_holdout_list) - 2472usize]; ["Offset of field: task_struct::trc_blkd_node"] - [::core::mem::offset_of!(task_struct, trc_blkd_node) - 2232usize]; + [::core::mem::offset_of!(task_struct, trc_blkd_node) - 2488usize]; ["Offset of field: task_struct::trc_blkd_cpu"] - [::core::mem::offset_of!(task_struct, trc_blkd_cpu) - 2248usize]; + [::core::mem::offset_of!(task_struct, trc_blkd_cpu) - 2504usize]; ["Offset of field: task_struct::sched_info"] - [::core::mem::offset_of!(task_struct, sched_info) - 2256usize]; + [::core::mem::offset_of!(task_struct, sched_info) - 2512usize]; ["Offset of field: task_struct::tasks"] - [::core::mem::offset_of!(task_struct, tasks) - 2288usize]; + [::core::mem::offset_of!(task_struct, tasks) - 2544usize]; ["Offset of field: task_struct::pushable_tasks"] - [::core::mem::offset_of!(task_struct, pushable_tasks) - 2304usize]; + [::core::mem::offset_of!(task_struct, pushable_tasks) - 2560usize]; ["Offset of field: task_struct::pushable_dl_tasks"] - [::core::mem::offset_of!(task_struct, pushable_dl_tasks) - 2344usize]; - ["Offset of field: task_struct::mm"][::core::mem::offset_of!(task_struct, mm) - 2368usize]; + [::core::mem::offset_of!(task_struct, pushable_dl_tasks) - 2600usize]; + ["Offset of field: task_struct::mm"][::core::mem::offset_of!(task_struct, mm) - 2624usize]; ["Offset of field: task_struct::active_mm"] - [::core::mem::offset_of!(task_struct, active_mm) - 2376usize]; + [::core::mem::offset_of!(task_struct, active_mm) - 2632usize]; ["Offset of field: task_struct::faults_disabled_mapping"] - [::core::mem::offset_of!(task_struct, faults_disabled_mapping) - 2384usize]; + [::core::mem::offset_of!(task_struct, faults_disabled_mapping) - 2640usize]; ["Offset of field: task_struct::exit_state"] - [::core::mem::offset_of!(task_struct, exit_state) - 2392usize]; + [::core::mem::offset_of!(task_struct, exit_state) - 2648usize]; ["Offset of field: task_struct::exit_code"] - [::core::mem::offset_of!(task_struct, exit_code) - 2396usize]; + [::core::mem::offset_of!(task_struct, exit_code) - 2652usize]; ["Offset of field: task_struct::exit_signal"] - [::core::mem::offset_of!(task_struct, exit_signal) - 2400usize]; + [::core::mem::offset_of!(task_struct, exit_signal) - 2656usize]; ["Offset of field: task_struct::pdeath_signal"] - [::core::mem::offset_of!(task_struct, pdeath_signal) - 2404usize]; + [::core::mem::offset_of!(task_struct, pdeath_signal) - 2660usize]; ["Offset of field: task_struct::jobctl"] - [::core::mem::offset_of!(task_struct, jobctl) - 2408usize]; + [::core::mem::offset_of!(task_struct, jobctl) - 2664usize]; ["Offset of field: task_struct::personality"] - [::core::mem::offset_of!(task_struct, personality) - 2416usize]; + [::core::mem::offset_of!(task_struct, personality) - 2672usize]; ["Offset of field: task_struct::atomic_flags"] - [::core::mem::offset_of!(task_struct, atomic_flags) - 2432usize]; + [::core::mem::offset_of!(task_struct, atomic_flags) - 2688usize]; ["Offset of field: task_struct::restart_block"] - [::core::mem::offset_of!(task_struct, restart_block) - 2440usize]; - ["Offset of field: task_struct::pid"][::core::mem::offset_of!(task_struct, pid) - 2496usize]; - ["Offset of field: task_struct::tgid"][::core::mem::offset_of!(task_struct, tgid) - 2500usize]; + [::core::mem::offset_of!(task_struct, restart_block) - 2696usize]; + ["Offset of field: task_struct::pid"][::core::mem::offset_of!(task_struct, pid) - 2752usize]; + ["Offset of field: task_struct::tgid"][::core::mem::offset_of!(task_struct, tgid) - 2756usize]; ["Offset of field: task_struct::stack_canary"] - [::core::mem::offset_of!(task_struct, stack_canary) - 2504usize]; + [::core::mem::offset_of!(task_struct, stack_canary) - 2760usize]; ["Offset of field: task_struct::real_parent"] - [::core::mem::offset_of!(task_struct, real_parent) - 2512usize]; + [::core::mem::offset_of!(task_struct, real_parent) - 2768usize]; ["Offset of field: task_struct::parent"] - [::core::mem::offset_of!(task_struct, parent) - 2520usize]; + [::core::mem::offset_of!(task_struct, parent) - 2776usize]; ["Offset of field: task_struct::children"] - [::core::mem::offset_of!(task_struct, children) - 2528usize]; + [::core::mem::offset_of!(task_struct, children) - 2784usize]; ["Offset of field: task_struct::sibling"] - [::core::mem::offset_of!(task_struct, sibling) - 2544usize]; + [::core::mem::offset_of!(task_struct, sibling) - 2800usize]; ["Offset of field: task_struct::group_leader"] - [::core::mem::offset_of!(task_struct, group_leader) - 2560usize]; + [::core::mem::offset_of!(task_struct, group_leader) - 2816usize]; ["Offset of field: task_struct::ptraced"] - [::core::mem::offset_of!(task_struct, ptraced) - 2568usize]; + [::core::mem::offset_of!(task_struct, ptraced) - 2824usize]; ["Offset of field: task_struct::ptrace_entry"] - [::core::mem::offset_of!(task_struct, ptrace_entry) - 2584usize]; + [::core::mem::offset_of!(task_struct, ptrace_entry) - 2840usize]; ["Offset of field: task_struct::thread_pid"] - [::core::mem::offset_of!(task_struct, thread_pid) - 2600usize]; + [::core::mem::offset_of!(task_struct, thread_pid) - 2856usize]; ["Offset of field: task_struct::pid_links"] - [::core::mem::offset_of!(task_struct, pid_links) - 2608usize]; + [::core::mem::offset_of!(task_struct, pid_links) - 2864usize]; ["Offset of field: task_struct::thread_node"] - [::core::mem::offset_of!(task_struct, thread_node) - 2672usize]; + [::core::mem::offset_of!(task_struct, thread_node) - 2928usize]; ["Offset of field: task_struct::vfork_done"] - [::core::mem::offset_of!(task_struct, vfork_done) - 2688usize]; + [::core::mem::offset_of!(task_struct, vfork_done) - 2944usize]; ["Offset of field: task_struct::set_child_tid"] - [::core::mem::offset_of!(task_struct, set_child_tid) - 2696usize]; + [::core::mem::offset_of!(task_struct, set_child_tid) - 2952usize]; ["Offset of field: task_struct::clear_child_tid"] - [::core::mem::offset_of!(task_struct, clear_child_tid) - 2704usize]; + [::core::mem::offset_of!(task_struct, clear_child_tid) - 2960usize]; ["Offset of field: task_struct::worker_private"] - [::core::mem::offset_of!(task_struct, worker_private) - 2712usize]; + [::core::mem::offset_of!(task_struct, worker_private) - 2968usize]; ["Offset of field: task_struct::utime"] - [::core::mem::offset_of!(task_struct, utime) - 2720usize]; + [::core::mem::offset_of!(task_struct, utime) - 2976usize]; ["Offset of field: task_struct::stime"] - [::core::mem::offset_of!(task_struct, stime) - 2728usize]; + [::core::mem::offset_of!(task_struct, stime) - 2984usize]; ["Offset of field: task_struct::gtime"] - [::core::mem::offset_of!(task_struct, gtime) - 2736usize]; + [::core::mem::offset_of!(task_struct, gtime) - 2992usize]; ["Offset of field: task_struct::prev_cputime"] - [::core::mem::offset_of!(task_struct, prev_cputime) - 2744usize]; + [::core::mem::offset_of!(task_struct, prev_cputime) - 3000usize]; ["Offset of field: task_struct::vtime"] - [::core::mem::offset_of!(task_struct, vtime) - 2768usize]; + [::core::mem::offset_of!(task_struct, vtime) - 3024usize]; ["Offset of field: task_struct::tick_dep_mask"] - [::core::mem::offset_of!(task_struct, tick_dep_mask) - 2816usize]; + [::core::mem::offset_of!(task_struct, tick_dep_mask) - 3072usize]; ["Offset of field: task_struct::nvcsw"] - [::core::mem::offset_of!(task_struct, nvcsw) - 2824usize]; + [::core::mem::offset_of!(task_struct, nvcsw) - 3080usize]; ["Offset of field: task_struct::nivcsw"] - [::core::mem::offset_of!(task_struct, nivcsw) - 2832usize]; + [::core::mem::offset_of!(task_struct, nivcsw) - 3088usize]; ["Offset of field: task_struct::start_time"] - [::core::mem::offset_of!(task_struct, start_time) - 2840usize]; + [::core::mem::offset_of!(task_struct, start_time) - 3096usize]; ["Offset of field: task_struct::start_boottime"] - [::core::mem::offset_of!(task_struct, start_boottime) - 2848usize]; + [::core::mem::offset_of!(task_struct, start_boottime) - 3104usize]; ["Offset of field: task_struct::min_flt"] - [::core::mem::offset_of!(task_struct, min_flt) - 2856usize]; + [::core::mem::offset_of!(task_struct, min_flt) - 3112usize]; ["Offset of field: task_struct::maj_flt"] - [::core::mem::offset_of!(task_struct, maj_flt) - 2864usize]; + [::core::mem::offset_of!(task_struct, maj_flt) - 3120usize]; ["Offset of field: task_struct::posix_cputimers"] - [::core::mem::offset_of!(task_struct, posix_cputimers) - 2872usize]; + [::core::mem::offset_of!(task_struct, posix_cputimers) - 3128usize]; ["Offset of field: task_struct::posix_cputimers_work"] - [::core::mem::offset_of!(task_struct, posix_cputimers_work) - 2952usize]; + [::core::mem::offset_of!(task_struct, posix_cputimers_work) - 3208usize]; ["Offset of field: task_struct::ptracer_cred"] - [::core::mem::offset_of!(task_struct, ptracer_cred) - 3008usize]; + [::core::mem::offset_of!(task_struct, ptracer_cred) - 3264usize]; ["Offset of field: task_struct::real_cred"] - [::core::mem::offset_of!(task_struct, real_cred) - 3016usize]; - ["Offset of field: task_struct::cred"][::core::mem::offset_of!(task_struct, cred) - 3024usize]; + [::core::mem::offset_of!(task_struct, real_cred) - 3272usize]; + ["Offset of field: task_struct::cred"][::core::mem::offset_of!(task_struct, cred) - 3280usize]; ["Offset of field: task_struct::cached_requested_key"] - [::core::mem::offset_of!(task_struct, cached_requested_key) - 3032usize]; - ["Offset of field: task_struct::comm"][::core::mem::offset_of!(task_struct, comm) - 3040usize]; + [::core::mem::offset_of!(task_struct, cached_requested_key) - 3288usize]; + ["Offset of field: task_struct::comm"][::core::mem::offset_of!(task_struct, comm) - 3296usize]; ["Offset of field: task_struct::nameidata"] - [::core::mem::offset_of!(task_struct, nameidata) - 3056usize]; + [::core::mem::offset_of!(task_struct, nameidata) - 3312usize]; ["Offset of field: task_struct::sysvsem"] - [::core::mem::offset_of!(task_struct, sysvsem) - 3064usize]; + [::core::mem::offset_of!(task_struct, sysvsem) - 3320usize]; ["Offset of field: task_struct::sysvshm"] - [::core::mem::offset_of!(task_struct, sysvshm) - 3072usize]; + [::core::mem::offset_of!(task_struct, sysvshm) - 3328usize]; ["Offset of field: task_struct::last_switch_count"] - [::core::mem::offset_of!(task_struct, last_switch_count) - 3088usize]; + [::core::mem::offset_of!(task_struct, last_switch_count) - 3344usize]; ["Offset of field: task_struct::last_switch_time"] - [::core::mem::offset_of!(task_struct, last_switch_time) - 3096usize]; - ["Offset of field: task_struct::fs"][::core::mem::offset_of!(task_struct, fs) - 3104usize]; + [::core::mem::offset_of!(task_struct, last_switch_time) - 3352usize]; + ["Offset of field: task_struct::fs"][::core::mem::offset_of!(task_struct, fs) - 3360usize]; ["Offset of field: task_struct::files"] - [::core::mem::offset_of!(task_struct, files) - 3112usize]; + [::core::mem::offset_of!(task_struct, files) - 3368usize]; ["Offset of field: task_struct::io_uring"] - [::core::mem::offset_of!(task_struct, io_uring) - 3120usize]; + [::core::mem::offset_of!(task_struct, io_uring) - 3376usize]; ["Offset of field: task_struct::nsproxy"] - [::core::mem::offset_of!(task_struct, nsproxy) - 3128usize]; + [::core::mem::offset_of!(task_struct, nsproxy) - 3384usize]; ["Offset of field: task_struct::signal"] - [::core::mem::offset_of!(task_struct, signal) - 3136usize]; + [::core::mem::offset_of!(task_struct, signal) - 3392usize]; ["Offset of field: task_struct::sighand"] - [::core::mem::offset_of!(task_struct, sighand) - 3144usize]; + [::core::mem::offset_of!(task_struct, sighand) - 3400usize]; ["Offset of field: task_struct::blocked"] - [::core::mem::offset_of!(task_struct, blocked) - 3152usize]; + [::core::mem::offset_of!(task_struct, blocked) - 3408usize]; ["Offset of field: task_struct::real_blocked"] - [::core::mem::offset_of!(task_struct, real_blocked) - 3160usize]; + [::core::mem::offset_of!(task_struct, real_blocked) - 3416usize]; ["Offset of field: task_struct::saved_sigmask"] - [::core::mem::offset_of!(task_struct, saved_sigmask) - 3168usize]; + [::core::mem::offset_of!(task_struct, saved_sigmask) - 3424usize]; ["Offset of field: task_struct::pending"] - [::core::mem::offset_of!(task_struct, pending) - 3176usize]; + [::core::mem::offset_of!(task_struct, pending) - 3432usize]; ["Offset of field: task_struct::sas_ss_sp"] - [::core::mem::offset_of!(task_struct, sas_ss_sp) - 3200usize]; + [::core::mem::offset_of!(task_struct, sas_ss_sp) - 3456usize]; ["Offset of field: task_struct::sas_ss_size"] - [::core::mem::offset_of!(task_struct, sas_ss_size) - 3208usize]; + [::core::mem::offset_of!(task_struct, sas_ss_size) - 3464usize]; ["Offset of field: task_struct::sas_ss_flags"] - [::core::mem::offset_of!(task_struct, sas_ss_flags) - 3216usize]; + [::core::mem::offset_of!(task_struct, sas_ss_flags) - 3472usize]; ["Offset of field: task_struct::task_works"] - [::core::mem::offset_of!(task_struct, task_works) - 3224usize]; + [::core::mem::offset_of!(task_struct, task_works) - 3480usize]; ["Offset of field: task_struct::audit_context"] - [::core::mem::offset_of!(task_struct, audit_context) - 3232usize]; + [::core::mem::offset_of!(task_struct, audit_context) - 3488usize]; ["Offset of field: task_struct::loginuid"] - [::core::mem::offset_of!(task_struct, loginuid) - 3240usize]; + [::core::mem::offset_of!(task_struct, loginuid) - 3496usize]; ["Offset of field: task_struct::sessionid"] - [::core::mem::offset_of!(task_struct, sessionid) - 3244usize]; + [::core::mem::offset_of!(task_struct, sessionid) - 3500usize]; ["Offset of field: task_struct::seccomp"] - [::core::mem::offset_of!(task_struct, seccomp) - 3248usize]; + [::core::mem::offset_of!(task_struct, seccomp) - 3504usize]; ["Offset of field: task_struct::syscall_dispatch"] - [::core::mem::offset_of!(task_struct, syscall_dispatch) - 3264usize]; + [::core::mem::offset_of!(task_struct, syscall_dispatch) - 3520usize]; ["Offset of field: task_struct::parent_exec_id"] - [::core::mem::offset_of!(task_struct, parent_exec_id) - 3296usize]; + [::core::mem::offset_of!(task_struct, parent_exec_id) - 3552usize]; ["Offset of field: task_struct::self_exec_id"] - [::core::mem::offset_of!(task_struct, self_exec_id) - 3304usize]; + [::core::mem::offset_of!(task_struct, self_exec_id) - 3560usize]; ["Offset of field: task_struct::alloc_lock"] - [::core::mem::offset_of!(task_struct, alloc_lock) - 3312usize]; + [::core::mem::offset_of!(task_struct, alloc_lock) - 3568usize]; ["Offset of field: task_struct::pi_lock"] - [::core::mem::offset_of!(task_struct, pi_lock) - 3316usize]; + [::core::mem::offset_of!(task_struct, pi_lock) - 3572usize]; ["Offset of field: task_struct::wake_q"] - [::core::mem::offset_of!(task_struct, wake_q) - 3320usize]; + [::core::mem::offset_of!(task_struct, wake_q) - 3576usize]; ["Offset of field: task_struct::pi_waiters"] - [::core::mem::offset_of!(task_struct, pi_waiters) - 3328usize]; + [::core::mem::offset_of!(task_struct, pi_waiters) - 3584usize]; ["Offset of field: task_struct::pi_top_task"] - [::core::mem::offset_of!(task_struct, pi_top_task) - 3344usize]; + [::core::mem::offset_of!(task_struct, pi_top_task) - 3600usize]; ["Offset of field: task_struct::pi_blocked_on"] - [::core::mem::offset_of!(task_struct, pi_blocked_on) - 3352usize]; - ["Offset of field: task_struct::in_ubsan"] - [::core::mem::offset_of!(task_struct, in_ubsan) - 3360usize]; + [::core::mem::offset_of!(task_struct, pi_blocked_on) - 3608usize]; ["Offset of field: task_struct::journal_info"] - [::core::mem::offset_of!(task_struct, journal_info) - 3368usize]; + [::core::mem::offset_of!(task_struct, journal_info) - 3616usize]; ["Offset of field: task_struct::bio_list"] - [::core::mem::offset_of!(task_struct, bio_list) - 3376usize]; - ["Offset of field: task_struct::plug"][::core::mem::offset_of!(task_struct, plug) - 3384usize]; + [::core::mem::offset_of!(task_struct, bio_list) - 3624usize]; + ["Offset of field: task_struct::plug"][::core::mem::offset_of!(task_struct, plug) - 3632usize]; ["Offset of field: task_struct::reclaim_state"] - [::core::mem::offset_of!(task_struct, reclaim_state) - 3392usize]; + [::core::mem::offset_of!(task_struct, reclaim_state) - 3640usize]; ["Offset of field: task_struct::io_context"] - [::core::mem::offset_of!(task_struct, io_context) - 3400usize]; + [::core::mem::offset_of!(task_struct, io_context) - 3648usize]; ["Offset of field: task_struct::capture_control"] - [::core::mem::offset_of!(task_struct, capture_control) - 3408usize]; + [::core::mem::offset_of!(task_struct, capture_control) - 3656usize]; ["Offset of field: task_struct::ptrace_message"] - [::core::mem::offset_of!(task_struct, ptrace_message) - 3416usize]; + [::core::mem::offset_of!(task_struct, ptrace_message) - 3664usize]; ["Offset of field: task_struct::last_siginfo"] - [::core::mem::offset_of!(task_struct, last_siginfo) - 3424usize]; - ["Offset of field: task_struct::ioac"][::core::mem::offset_of!(task_struct, ioac) - 3432usize]; + [::core::mem::offset_of!(task_struct, last_siginfo) - 3672usize]; + ["Offset of field: task_struct::ioac"][::core::mem::offset_of!(task_struct, ioac) - 3680usize]; ["Offset of field: task_struct::psi_flags"] - [::core::mem::offset_of!(task_struct, psi_flags) - 3488usize]; + [::core::mem::offset_of!(task_struct, psi_flags) - 3736usize]; ["Offset of field: task_struct::acct_rss_mem1"] - [::core::mem::offset_of!(task_struct, acct_rss_mem1) - 3496usize]; + [::core::mem::offset_of!(task_struct, acct_rss_mem1) - 3744usize]; ["Offset of field: task_struct::acct_vm_mem1"] - [::core::mem::offset_of!(task_struct, acct_vm_mem1) - 3504usize]; + [::core::mem::offset_of!(task_struct, acct_vm_mem1) - 3752usize]; ["Offset of field: task_struct::acct_timexpd"] - [::core::mem::offset_of!(task_struct, acct_timexpd) - 3512usize]; + [::core::mem::offset_of!(task_struct, acct_timexpd) - 3760usize]; ["Offset of field: task_struct::mems_allowed"] - [::core::mem::offset_of!(task_struct, mems_allowed) - 3520usize]; + [::core::mem::offset_of!(task_struct, mems_allowed) - 3768usize]; ["Offset of field: task_struct::mems_allowed_seq"] - [::core::mem::offset_of!(task_struct, mems_allowed_seq) - 3648usize]; + [::core::mem::offset_of!(task_struct, mems_allowed_seq) - 3896usize]; ["Offset of field: task_struct::cpuset_mem_spread_rotor"] - [::core::mem::offset_of!(task_struct, cpuset_mem_spread_rotor) - 3652usize]; - ["Offset of field: task_struct::cpuset_slab_spread_rotor"] - [::core::mem::offset_of!(task_struct, cpuset_slab_spread_rotor) - 3656usize]; + [::core::mem::offset_of!(task_struct, cpuset_mem_spread_rotor) - 3900usize]; ["Offset of field: task_struct::cgroups"] - [::core::mem::offset_of!(task_struct, cgroups) - 3664usize]; + [::core::mem::offset_of!(task_struct, cgroups) - 3904usize]; ["Offset of field: task_struct::cg_list"] - [::core::mem::offset_of!(task_struct, cg_list) - 3672usize]; + [::core::mem::offset_of!(task_struct, cg_list) - 3912usize]; ["Offset of field: task_struct::closid"] - [::core::mem::offset_of!(task_struct, closid) - 3688usize]; - ["Offset of field: task_struct::rmid"][::core::mem::offset_of!(task_struct, rmid) - 3692usize]; + [::core::mem::offset_of!(task_struct, closid) - 3928usize]; + ["Offset of field: task_struct::rmid"][::core::mem::offset_of!(task_struct, rmid) - 3932usize]; ["Offset of field: task_struct::robust_list"] - [::core::mem::offset_of!(task_struct, robust_list) - 3696usize]; + [::core::mem::offset_of!(task_struct, robust_list) - 3936usize]; ["Offset of field: task_struct::compat_robust_list"] - [::core::mem::offset_of!(task_struct, compat_robust_list) - 3704usize]; + [::core::mem::offset_of!(task_struct, compat_robust_list) - 3944usize]; ["Offset of field: task_struct::pi_state_list"] - [::core::mem::offset_of!(task_struct, pi_state_list) - 3712usize]; + [::core::mem::offset_of!(task_struct, pi_state_list) - 3952usize]; ["Offset of field: task_struct::pi_state_cache"] - [::core::mem::offset_of!(task_struct, pi_state_cache) - 3728usize]; + [::core::mem::offset_of!(task_struct, pi_state_cache) - 3968usize]; ["Offset of field: task_struct::futex_exit_mutex"] - [::core::mem::offset_of!(task_struct, futex_exit_mutex) - 3736usize]; + [::core::mem::offset_of!(task_struct, futex_exit_mutex) - 3976usize]; ["Offset of field: task_struct::futex_state"] - [::core::mem::offset_of!(task_struct, futex_state) - 3768usize]; + [::core::mem::offset_of!(task_struct, futex_state) - 4008usize]; ["Offset of field: task_struct::perf_recursion"] - [::core::mem::offset_of!(task_struct, perf_recursion) - 3772usize]; + [::core::mem::offset_of!(task_struct, perf_recursion) - 4012usize]; ["Offset of field: task_struct::perf_event_ctxp"] - [::core::mem::offset_of!(task_struct, perf_event_ctxp) - 3776usize]; + [::core::mem::offset_of!(task_struct, perf_event_ctxp) - 4016usize]; ["Offset of field: task_struct::perf_event_mutex"] - [::core::mem::offset_of!(task_struct, perf_event_mutex) - 3784usize]; + [::core::mem::offset_of!(task_struct, perf_event_mutex) - 4024usize]; ["Offset of field: task_struct::perf_event_list"] - [::core::mem::offset_of!(task_struct, perf_event_list) - 3816usize]; + [::core::mem::offset_of!(task_struct, perf_event_list) - 4056usize]; ["Offset of field: task_struct::mempolicy"] - [::core::mem::offset_of!(task_struct, mempolicy) - 3832usize]; + [::core::mem::offset_of!(task_struct, mempolicy) - 4072usize]; ["Offset of field: task_struct::il_prev"] - [::core::mem::offset_of!(task_struct, il_prev) - 3840usize]; + [::core::mem::offset_of!(task_struct, il_prev) - 4080usize]; ["Offset of field: task_struct::il_weight"] - [::core::mem::offset_of!(task_struct, il_weight) - 3842usize]; + [::core::mem::offset_of!(task_struct, il_weight) - 4082usize]; ["Offset of field: task_struct::pref_node_fork"] - [::core::mem::offset_of!(task_struct, pref_node_fork) - 3844usize]; + [::core::mem::offset_of!(task_struct, pref_node_fork) - 4084usize]; ["Offset of field: task_struct::numa_scan_seq"] - [::core::mem::offset_of!(task_struct, numa_scan_seq) - 3848usize]; + [::core::mem::offset_of!(task_struct, numa_scan_seq) - 4088usize]; ["Offset of field: task_struct::numa_scan_period"] - [::core::mem::offset_of!(task_struct, numa_scan_period) - 3852usize]; + [::core::mem::offset_of!(task_struct, numa_scan_period) - 4092usize]; ["Offset of field: task_struct::numa_scan_period_max"] - [::core::mem::offset_of!(task_struct, numa_scan_period_max) - 3856usize]; + [::core::mem::offset_of!(task_struct, numa_scan_period_max) - 4096usize]; ["Offset of field: task_struct::numa_preferred_nid"] - [::core::mem::offset_of!(task_struct, numa_preferred_nid) - 3860usize]; + [::core::mem::offset_of!(task_struct, numa_preferred_nid) - 4100usize]; ["Offset of field: task_struct::numa_migrate_retry"] - [::core::mem::offset_of!(task_struct, numa_migrate_retry) - 3864usize]; + [::core::mem::offset_of!(task_struct, numa_migrate_retry) - 4104usize]; ["Offset of field: task_struct::node_stamp"] - [::core::mem::offset_of!(task_struct, node_stamp) - 3872usize]; + [::core::mem::offset_of!(task_struct, node_stamp) - 4112usize]; ["Offset of field: task_struct::last_task_numa_placement"] - [::core::mem::offset_of!(task_struct, last_task_numa_placement) - 3880usize]; + [::core::mem::offset_of!(task_struct, last_task_numa_placement) - 4120usize]; ["Offset of field: task_struct::last_sum_exec_runtime"] - [::core::mem::offset_of!(task_struct, last_sum_exec_runtime) - 3888usize]; + [::core::mem::offset_of!(task_struct, last_sum_exec_runtime) - 4128usize]; ["Offset of field: task_struct::numa_work"] - [::core::mem::offset_of!(task_struct, numa_work) - 3896usize]; + [::core::mem::offset_of!(task_struct, numa_work) - 4136usize]; ["Offset of field: task_struct::numa_group"] - [::core::mem::offset_of!(task_struct, numa_group) - 3912usize]; + [::core::mem::offset_of!(task_struct, numa_group) - 4152usize]; ["Offset of field: task_struct::numa_faults"] - [::core::mem::offset_of!(task_struct, numa_faults) - 3920usize]; + [::core::mem::offset_of!(task_struct, numa_faults) - 4160usize]; ["Offset of field: task_struct::total_numa_faults"] - [::core::mem::offset_of!(task_struct, total_numa_faults) - 3928usize]; + [::core::mem::offset_of!(task_struct, total_numa_faults) - 4168usize]; ["Offset of field: task_struct::numa_faults_locality"] - [::core::mem::offset_of!(task_struct, numa_faults_locality) - 3936usize]; + [::core::mem::offset_of!(task_struct, numa_faults_locality) - 4176usize]; ["Offset of field: task_struct::numa_pages_migrated"] - [::core::mem::offset_of!(task_struct, numa_pages_migrated) - 3960usize]; - ["Offset of field: task_struct::rseq"][::core::mem::offset_of!(task_struct, rseq) - 3968usize]; + [::core::mem::offset_of!(task_struct, numa_pages_migrated) - 4200usize]; + ["Offset of field: task_struct::rseq"][::core::mem::offset_of!(task_struct, rseq) - 4208usize]; ["Offset of field: task_struct::rseq_len"] - [::core::mem::offset_of!(task_struct, rseq_len) - 3976usize]; + [::core::mem::offset_of!(task_struct, rseq_len) - 4216usize]; ["Offset of field: task_struct::rseq_sig"] - [::core::mem::offset_of!(task_struct, rseq_sig) - 3980usize]; + [::core::mem::offset_of!(task_struct, rseq_sig) - 4220usize]; ["Offset of field: task_struct::rseq_event_mask"] - [::core::mem::offset_of!(task_struct, rseq_event_mask) - 3984usize]; + [::core::mem::offset_of!(task_struct, rseq_event_mask) - 4224usize]; ["Offset of field: task_struct::mm_cid"] - [::core::mem::offset_of!(task_struct, mm_cid) - 3992usize]; + [::core::mem::offset_of!(task_struct, mm_cid) - 4232usize]; ["Offset of field: task_struct::last_mm_cid"] - [::core::mem::offset_of!(task_struct, last_mm_cid) - 3996usize]; + [::core::mem::offset_of!(task_struct, last_mm_cid) - 4236usize]; ["Offset of field: task_struct::migrate_from_cpu"] - [::core::mem::offset_of!(task_struct, migrate_from_cpu) - 4000usize]; + [::core::mem::offset_of!(task_struct, migrate_from_cpu) - 4240usize]; ["Offset of field: task_struct::mm_cid_active"] - [::core::mem::offset_of!(task_struct, mm_cid_active) - 4004usize]; + [::core::mem::offset_of!(task_struct, mm_cid_active) - 4244usize]; ["Offset of field: task_struct::cid_work"] - [::core::mem::offset_of!(task_struct, cid_work) - 4008usize]; + [::core::mem::offset_of!(task_struct, cid_work) - 4248usize]; ["Offset of field: task_struct::tlb_ubc"] - [::core::mem::offset_of!(task_struct, tlb_ubc) - 4024usize]; + [::core::mem::offset_of!(task_struct, tlb_ubc) - 4264usize]; ["Offset of field: task_struct::splice_pipe"] - [::core::mem::offset_of!(task_struct, splice_pipe) - 5056usize]; + [::core::mem::offset_of!(task_struct, splice_pipe) - 5296usize]; ["Offset of field: task_struct::task_frag"] - [::core::mem::offset_of!(task_struct, task_frag) - 5064usize]; + [::core::mem::offset_of!(task_struct, task_frag) - 5304usize]; ["Offset of field: task_struct::delays"] - [::core::mem::offset_of!(task_struct, delays) - 5080usize]; + [::core::mem::offset_of!(task_struct, delays) - 5320usize]; ["Offset of field: task_struct::nr_dirtied"] - [::core::mem::offset_of!(task_struct, nr_dirtied) - 5088usize]; + [::core::mem::offset_of!(task_struct, nr_dirtied) - 5328usize]; ["Offset of field: task_struct::nr_dirtied_pause"] - [::core::mem::offset_of!(task_struct, nr_dirtied_pause) - 5092usize]; + [::core::mem::offset_of!(task_struct, nr_dirtied_pause) - 5332usize]; ["Offset of field: task_struct::dirty_paused_when"] - [::core::mem::offset_of!(task_struct, dirty_paused_when) - 5096usize]; - ["Offset of field: task_struct::latency_record_count"] - [::core::mem::offset_of!(task_struct, latency_record_count) - 5104usize]; - ["Offset of field: task_struct::latency_record"] - [::core::mem::offset_of!(task_struct, latency_record) - 5112usize]; + [::core::mem::offset_of!(task_struct, dirty_paused_when) - 5336usize]; ["Offset of field: task_struct::timer_slack_ns"] - [::core::mem::offset_of!(task_struct, timer_slack_ns) - 8952usize]; + [::core::mem::offset_of!(task_struct, timer_slack_ns) - 5344usize]; ["Offset of field: task_struct::default_timer_slack_ns"] - [::core::mem::offset_of!(task_struct, default_timer_slack_ns) - 8960usize]; + [::core::mem::offset_of!(task_struct, default_timer_slack_ns) - 5352usize]; ["Offset of field: task_struct::curr_ret_stack"] - [::core::mem::offset_of!(task_struct, curr_ret_stack) - 8968usize]; + [::core::mem::offset_of!(task_struct, curr_ret_stack) - 5360usize]; ["Offset of field: task_struct::curr_ret_depth"] - [::core::mem::offset_of!(task_struct, curr_ret_depth) - 8972usize]; + [::core::mem::offset_of!(task_struct, curr_ret_depth) - 5364usize]; ["Offset of field: task_struct::ret_stack"] - [::core::mem::offset_of!(task_struct, ret_stack) - 8976usize]; + [::core::mem::offset_of!(task_struct, ret_stack) - 5368usize]; ["Offset of field: task_struct::ftrace_timestamp"] - [::core::mem::offset_of!(task_struct, ftrace_timestamp) - 8984usize]; + [::core::mem::offset_of!(task_struct, ftrace_timestamp) - 5376usize]; ["Offset of field: task_struct::trace_overrun"] - [::core::mem::offset_of!(task_struct, trace_overrun) - 8992usize]; + [::core::mem::offset_of!(task_struct, trace_overrun) - 5384usize]; ["Offset of field: task_struct::tracing_graph_pause"] - [::core::mem::offset_of!(task_struct, tracing_graph_pause) - 8996usize]; + [::core::mem::offset_of!(task_struct, tracing_graph_pause) - 5388usize]; ["Offset of field: task_struct::trace_recursion"] - [::core::mem::offset_of!(task_struct, trace_recursion) - 9000usize]; + [::core::mem::offset_of!(task_struct, trace_recursion) - 5392usize]; ["Offset of field: task_struct::memcg_nr_pages_over_high"] - [::core::mem::offset_of!(task_struct, memcg_nr_pages_over_high) - 9008usize]; + [::core::mem::offset_of!(task_struct, memcg_nr_pages_over_high) - 5400usize]; ["Offset of field: task_struct::active_memcg"] - [::core::mem::offset_of!(task_struct, active_memcg) - 9016usize]; + [::core::mem::offset_of!(task_struct, active_memcg) - 5408usize]; ["Offset of field: task_struct::objcg"] - [::core::mem::offset_of!(task_struct, objcg) - 9024usize]; + [::core::mem::offset_of!(task_struct, objcg) - 5416usize]; ["Offset of field: task_struct::throttle_disk"] - [::core::mem::offset_of!(task_struct, throttle_disk) - 9032usize]; + [::core::mem::offset_of!(task_struct, throttle_disk) - 5424usize]; ["Offset of field: task_struct::utask"] - [::core::mem::offset_of!(task_struct, utask) - 9040usize]; + [::core::mem::offset_of!(task_struct, utask) - 5432usize]; ["Offset of field: task_struct::sequential_io"] - [::core::mem::offset_of!(task_struct, sequential_io) - 9048usize]; + [::core::mem::offset_of!(task_struct, sequential_io) - 5440usize]; ["Offset of field: task_struct::sequential_io_avg"] - [::core::mem::offset_of!(task_struct, sequential_io_avg) - 9052usize]; + [::core::mem::offset_of!(task_struct, sequential_io_avg) - 5444usize]; ["Offset of field: task_struct::kmap_ctrl"] - [::core::mem::offset_of!(task_struct, kmap_ctrl) - 9056usize]; - ["Offset of field: task_struct::rcu"][::core::mem::offset_of!(task_struct, rcu) - 9056usize]; + [::core::mem::offset_of!(task_struct, kmap_ctrl) - 5448usize]; + ["Offset of field: task_struct::rcu"][::core::mem::offset_of!(task_struct, rcu) - 5448usize]; ["Offset of field: task_struct::rcu_users"] - [::core::mem::offset_of!(task_struct, rcu_users) - 9072usize]; + [::core::mem::offset_of!(task_struct, rcu_users) - 5464usize]; ["Offset of field: task_struct::pagefault_disabled"] - [::core::mem::offset_of!(task_struct, pagefault_disabled) - 9076usize]; + [::core::mem::offset_of!(task_struct, pagefault_disabled) - 5468usize]; ["Offset of field: task_struct::oom_reaper_list"] - [::core::mem::offset_of!(task_struct, oom_reaper_list) - 9080usize]; + [::core::mem::offset_of!(task_struct, oom_reaper_list) - 5472usize]; ["Offset of field: task_struct::oom_reaper_timer"] - [::core::mem::offset_of!(task_struct, oom_reaper_timer) - 9088usize]; + [::core::mem::offset_of!(task_struct, oom_reaper_timer) - 5480usize]; ["Offset of field: task_struct::stack_vm_area"] - [::core::mem::offset_of!(task_struct, stack_vm_area) - 9128usize]; + [::core::mem::offset_of!(task_struct, stack_vm_area) - 5520usize]; ["Offset of field: task_struct::stack_refcount"] - [::core::mem::offset_of!(task_struct, stack_refcount) - 9136usize]; - ["Offset of field: task_struct::patch_state"] - [::core::mem::offset_of!(task_struct, patch_state) - 9140usize]; + [::core::mem::offset_of!(task_struct, stack_refcount) - 5528usize]; ["Offset of field: task_struct::security"] - [::core::mem::offset_of!(task_struct, security) - 9144usize]; + [::core::mem::offset_of!(task_struct, security) - 5536usize]; ["Offset of field: task_struct::bpf_storage"] - [::core::mem::offset_of!(task_struct, bpf_storage) - 9152usize]; + [::core::mem::offset_of!(task_struct, bpf_storage) - 5544usize]; ["Offset of field: task_struct::bpf_ctx"] - [::core::mem::offset_of!(task_struct, bpf_ctx) - 9160usize]; + [::core::mem::offset_of!(task_struct, bpf_ctx) - 5552usize]; ["Offset of field: task_struct::bpf_net_context"] - [::core::mem::offset_of!(task_struct, bpf_net_context) - 9168usize]; + [::core::mem::offset_of!(task_struct, bpf_net_context) - 5560usize]; ["Offset of field: task_struct::mce_vaddr"] - [::core::mem::offset_of!(task_struct, mce_vaddr) - 9176usize]; + [::core::mem::offset_of!(task_struct, mce_vaddr) - 5568usize]; ["Offset of field: task_struct::mce_kflags"] - [::core::mem::offset_of!(task_struct, mce_kflags) - 9184usize]; + [::core::mem::offset_of!(task_struct, mce_kflags) - 5576usize]; ["Offset of field: task_struct::mce_addr"] - [::core::mem::offset_of!(task_struct, mce_addr) - 9192usize]; + [::core::mem::offset_of!(task_struct, mce_addr) - 5584usize]; ["Offset of field: task_struct::mce_kill_me"] - [::core::mem::offset_of!(task_struct, mce_kill_me) - 9208usize]; + [::core::mem::offset_of!(task_struct, mce_kill_me) - 5600usize]; ["Offset of field: task_struct::mce_count"] - [::core::mem::offset_of!(task_struct, mce_count) - 9224usize]; + [::core::mem::offset_of!(task_struct, mce_count) - 5616usize]; ["Offset of field: task_struct::kretprobe_instances"] - [::core::mem::offset_of!(task_struct, kretprobe_instances) - 9232usize]; + [::core::mem::offset_of!(task_struct, kretprobe_instances) - 5624usize]; ["Offset of field: task_struct::rethooks"] - [::core::mem::offset_of!(task_struct, rethooks) - 9240usize]; + [::core::mem::offset_of!(task_struct, rethooks) - 5632usize]; ["Offset of field: task_struct::l1d_flush_kill"] - [::core::mem::offset_of!(task_struct, l1d_flush_kill) - 9248usize]; - ["Offset of field: task_struct::rv"][::core::mem::offset_of!(task_struct, rv) - 9264usize]; + [::core::mem::offset_of!(task_struct, l1d_flush_kill) - 5640usize]; ["Offset of field: task_struct::user_event_mm"] - [::core::mem::offset_of!(task_struct, user_event_mm) - 9272usize]; + [::core::mem::offset_of!(task_struct, user_event_mm) - 5656usize]; ["Offset of field: task_struct::thread"] - [::core::mem::offset_of!(task_struct, thread) - 9280usize]; + [::core::mem::offset_of!(task_struct, thread) - 5696usize]; }; impl task_struct { - #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); - __bindgen_bitfield_unit - } #[inline] pub fn sched_reset_on_fork(&self) -> ::core::ffi::c_uint { unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u32) } @@ -102630,6 +103561,11 @@ impl task_struct { }); __bindgen_bitfield_unit } + #[inline] + pub fn new_bitfield_4() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -104317,11 +105253,15 @@ pub struct trace_array { pub allocated_snapshot: bool_, pub snapshot_trigger_lock: spinlock_t, pub snapshot: ::core::ffi::c_uint, - pub mapped: ::core::ffi::c_uint, pub max_latency: ::core::ffi::c_ulong, pub d_max_latency: *mut dentry, pub fsnotify_work: work_struct, pub fsnotify_irqwork: irq_work, + pub mapped: ::core::ffi::c_uint, + pub range_addr_start: ::core::ffi::c_ulong, + pub range_addr_size: ::core::ffi::c_ulong, + pub text_delta: ::core::ffi::c_long, + pub data_delta: ::core::ffi::c_long, pub filtered_pids: *mut trace_pid_list, pub filtered_no_pids: *mut trace_pid_list, pub max_lock: arch_spinlock_t, @@ -104371,7 +105311,7 @@ pub struct trace_array { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of trace_array"][::core::mem::size_of::() - 7976usize]; + ["Size of trace_array"][::core::mem::size_of::() - 8016usize]; ["Alignment of trace_array"][::core::mem::align_of::() - 8usize]; ["Offset of field: trace_array::list"][::core::mem::offset_of!(trace_array, list) - 0usize]; ["Offset of field: trace_array::name"][::core::mem::offset_of!(trace_array, name) - 16usize]; @@ -104385,8 +105325,6 @@ const _: () = { [::core::mem::offset_of!(trace_array, snapshot_trigger_lock) - 108usize]; ["Offset of field: trace_array::snapshot"] [::core::mem::offset_of!(trace_array, snapshot) - 112usize]; - ["Offset of field: trace_array::mapped"] - [::core::mem::offset_of!(trace_array, mapped) - 116usize]; ["Offset of field: trace_array::max_latency"] [::core::mem::offset_of!(trace_array, max_latency) - 120usize]; ["Offset of field: trace_array::d_max_latency"] @@ -104395,94 +105333,104 @@ const _: () = { [::core::mem::offset_of!(trace_array, fsnotify_work) - 136usize]; ["Offset of field: trace_array::fsnotify_irqwork"] [::core::mem::offset_of!(trace_array, fsnotify_irqwork) - 168usize]; + ["Offset of field: trace_array::mapped"] + [::core::mem::offset_of!(trace_array, mapped) - 200usize]; + ["Offset of field: trace_array::range_addr_start"] + [::core::mem::offset_of!(trace_array, range_addr_start) - 208usize]; + ["Offset of field: trace_array::range_addr_size"] + [::core::mem::offset_of!(trace_array, range_addr_size) - 216usize]; + ["Offset of field: trace_array::text_delta"] + [::core::mem::offset_of!(trace_array, text_delta) - 224usize]; + ["Offset of field: trace_array::data_delta"] + [::core::mem::offset_of!(trace_array, data_delta) - 232usize]; ["Offset of field: trace_array::filtered_pids"] - [::core::mem::offset_of!(trace_array, filtered_pids) - 200usize]; + [::core::mem::offset_of!(trace_array, filtered_pids) - 240usize]; ["Offset of field: trace_array::filtered_no_pids"] - [::core::mem::offset_of!(trace_array, filtered_no_pids) - 208usize]; + [::core::mem::offset_of!(trace_array, filtered_no_pids) - 248usize]; ["Offset of field: trace_array::max_lock"] - [::core::mem::offset_of!(trace_array, max_lock) - 216usize]; + [::core::mem::offset_of!(trace_array, max_lock) - 256usize]; ["Offset of field: trace_array::buffer_disabled"] - [::core::mem::offset_of!(trace_array, buffer_disabled) - 220usize]; + [::core::mem::offset_of!(trace_array, buffer_disabled) - 260usize]; ["Offset of field: trace_array::sys_refcount_enter"] - [::core::mem::offset_of!(trace_array, sys_refcount_enter) - 224usize]; + [::core::mem::offset_of!(trace_array, sys_refcount_enter) - 264usize]; ["Offset of field: trace_array::sys_refcount_exit"] - [::core::mem::offset_of!(trace_array, sys_refcount_exit) - 228usize]; + [::core::mem::offset_of!(trace_array, sys_refcount_exit) - 268usize]; ["Offset of field: trace_array::enter_syscall_files"] - [::core::mem::offset_of!(trace_array, enter_syscall_files) - 232usize]; + [::core::mem::offset_of!(trace_array, enter_syscall_files) - 272usize]; ["Offset of field: trace_array::exit_syscall_files"] - [::core::mem::offset_of!(trace_array, exit_syscall_files) - 3936usize]; + [::core::mem::offset_of!(trace_array, exit_syscall_files) - 3976usize]; ["Offset of field: trace_array::stop_count"] - [::core::mem::offset_of!(trace_array, stop_count) - 7640usize]; + [::core::mem::offset_of!(trace_array, stop_count) - 7680usize]; ["Offset of field: trace_array::clock_id"] - [::core::mem::offset_of!(trace_array, clock_id) - 7644usize]; + [::core::mem::offset_of!(trace_array, clock_id) - 7684usize]; ["Offset of field: trace_array::nr_topts"] - [::core::mem::offset_of!(trace_array, nr_topts) - 7648usize]; + [::core::mem::offset_of!(trace_array, nr_topts) - 7688usize]; ["Offset of field: trace_array::clear_trace"] - [::core::mem::offset_of!(trace_array, clear_trace) - 7652usize]; + [::core::mem::offset_of!(trace_array, clear_trace) - 7692usize]; ["Offset of field: trace_array::buffer_percent"] - [::core::mem::offset_of!(trace_array, buffer_percent) - 7656usize]; + [::core::mem::offset_of!(trace_array, buffer_percent) - 7696usize]; ["Offset of field: trace_array::n_err_log_entries"] - [::core::mem::offset_of!(trace_array, n_err_log_entries) - 7660usize]; + [::core::mem::offset_of!(trace_array, n_err_log_entries) - 7700usize]; ["Offset of field: trace_array::current_trace"] - [::core::mem::offset_of!(trace_array, current_trace) - 7664usize]; + [::core::mem::offset_of!(trace_array, current_trace) - 7704usize]; ["Offset of field: trace_array::trace_flags"] - [::core::mem::offset_of!(trace_array, trace_flags) - 7672usize]; + [::core::mem::offset_of!(trace_array, trace_flags) - 7712usize]; ["Offset of field: trace_array::trace_flags_index"] - [::core::mem::offset_of!(trace_array, trace_flags_index) - 7676usize]; + [::core::mem::offset_of!(trace_array, trace_flags_index) - 7716usize]; ["Offset of field: trace_array::flags"] - [::core::mem::offset_of!(trace_array, flags) - 7708usize]; + [::core::mem::offset_of!(trace_array, flags) - 7748usize]; ["Offset of field: trace_array::start_lock"] - [::core::mem::offset_of!(trace_array, start_lock) - 7712usize]; + [::core::mem::offset_of!(trace_array, start_lock) - 7752usize]; ["Offset of field: trace_array::system_names"] - [::core::mem::offset_of!(trace_array, system_names) - 7720usize]; + [::core::mem::offset_of!(trace_array, system_names) - 7760usize]; ["Offset of field: trace_array::err_log"] - [::core::mem::offset_of!(trace_array, err_log) - 7728usize]; - ["Offset of field: trace_array::dir"][::core::mem::offset_of!(trace_array, dir) - 7744usize]; + [::core::mem::offset_of!(trace_array, err_log) - 7768usize]; + ["Offset of field: trace_array::dir"][::core::mem::offset_of!(trace_array, dir) - 7784usize]; ["Offset of field: trace_array::options"] - [::core::mem::offset_of!(trace_array, options) - 7752usize]; + [::core::mem::offset_of!(trace_array, options) - 7792usize]; ["Offset of field: trace_array::percpu_dir"] - [::core::mem::offset_of!(trace_array, percpu_dir) - 7760usize]; + [::core::mem::offset_of!(trace_array, percpu_dir) - 7800usize]; ["Offset of field: trace_array::event_dir"] - [::core::mem::offset_of!(trace_array, event_dir) - 7768usize]; + [::core::mem::offset_of!(trace_array, event_dir) - 7808usize]; ["Offset of field: trace_array::topts"] - [::core::mem::offset_of!(trace_array, topts) - 7776usize]; + [::core::mem::offset_of!(trace_array, topts) - 7816usize]; ["Offset of field: trace_array::systems"] - [::core::mem::offset_of!(trace_array, systems) - 7784usize]; + [::core::mem::offset_of!(trace_array, systems) - 7824usize]; ["Offset of field: trace_array::events"] - [::core::mem::offset_of!(trace_array, events) - 7800usize]; + [::core::mem::offset_of!(trace_array, events) - 7840usize]; ["Offset of field: trace_array::trace_marker_file"] - [::core::mem::offset_of!(trace_array, trace_marker_file) - 7816usize]; + [::core::mem::offset_of!(trace_array, trace_marker_file) - 7856usize]; ["Offset of field: trace_array::tracing_cpumask"] - [::core::mem::offset_of!(trace_array, tracing_cpumask) - 7824usize]; + [::core::mem::offset_of!(trace_array, tracing_cpumask) - 7864usize]; ["Offset of field: trace_array::pipe_cpumask"] - [::core::mem::offset_of!(trace_array, pipe_cpumask) - 7832usize]; - ["Offset of field: trace_array::ref_"][::core::mem::offset_of!(trace_array, ref_) - 7840usize]; + [::core::mem::offset_of!(trace_array, pipe_cpumask) - 7872usize]; + ["Offset of field: trace_array::ref_"][::core::mem::offset_of!(trace_array, ref_) - 7880usize]; ["Offset of field: trace_array::trace_ref"] - [::core::mem::offset_of!(trace_array, trace_ref) - 7844usize]; - ["Offset of field: trace_array::ops"][::core::mem::offset_of!(trace_array, ops) - 7848usize]; + [::core::mem::offset_of!(trace_array, trace_ref) - 7884usize]; + ["Offset of field: trace_array::ops"][::core::mem::offset_of!(trace_array, ops) - 7888usize]; ["Offset of field: trace_array::function_pids"] - [::core::mem::offset_of!(trace_array, function_pids) - 7856usize]; + [::core::mem::offset_of!(trace_array, function_pids) - 7896usize]; ["Offset of field: trace_array::function_no_pids"] - [::core::mem::offset_of!(trace_array, function_no_pids) - 7864usize]; - ["Offset of field: trace_array::gops"][::core::mem::offset_of!(trace_array, gops) - 7872usize]; + [::core::mem::offset_of!(trace_array, function_no_pids) - 7904usize]; + ["Offset of field: trace_array::gops"][::core::mem::offset_of!(trace_array, gops) - 7912usize]; ["Offset of field: trace_array::func_probes"] - [::core::mem::offset_of!(trace_array, func_probes) - 7880usize]; + [::core::mem::offset_of!(trace_array, func_probes) - 7920usize]; ["Offset of field: trace_array::mod_trace"] - [::core::mem::offset_of!(trace_array, mod_trace) - 7896usize]; + [::core::mem::offset_of!(trace_array, mod_trace) - 7936usize]; ["Offset of field: trace_array::mod_notrace"] - [::core::mem::offset_of!(trace_array, mod_notrace) - 7912usize]; + [::core::mem::offset_of!(trace_array, mod_notrace) - 7952usize]; ["Offset of field: trace_array::function_enabled"] - [::core::mem::offset_of!(trace_array, function_enabled) - 7928usize]; + [::core::mem::offset_of!(trace_array, function_enabled) - 7968usize]; ["Offset of field: trace_array::no_filter_buffering_ref"] - [::core::mem::offset_of!(trace_array, no_filter_buffering_ref) - 7932usize]; + [::core::mem::offset_of!(trace_array, no_filter_buffering_ref) - 7972usize]; ["Offset of field: trace_array::hist_vars"] - [::core::mem::offset_of!(trace_array, hist_vars) - 7936usize]; + [::core::mem::offset_of!(trace_array, hist_vars) - 7976usize]; ["Offset of field: trace_array::cond_snapshot"] - [::core::mem::offset_of!(trace_array, cond_snapshot) - 7952usize]; + [::core::mem::offset_of!(trace_array, cond_snapshot) - 7992usize]; ["Offset of field: trace_array::last_func_repeats"] - [::core::mem::offset_of!(trace_array, last_func_repeats) - 7960usize]; + [::core::mem::offset_of!(trace_array, last_func_repeats) - 8000usize]; ["Offset of field: trace_array::ring_buffer_expanded"] - [::core::mem::offset_of!(trace_array, ring_buffer_expanded) - 7968usize]; + [::core::mem::offset_of!(trace_array, ring_buffer_expanded) - 8008usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -104559,13 +105507,17 @@ pub struct trace_buffer { pub clock: ::core::option::Option u64_>, pub irq_work: rb_irq_work, pub time_stamp_abs: bool_, + pub range_addr_start: ::core::ffi::c_ulong, + pub range_addr_end: ::core::ffi::c_ulong, + pub last_text_delta: ::core::ffi::c_long, + pub last_data_delta: ::core::ffi::c_long, pub subbuf_size: ::core::ffi::c_uint, pub subbuf_order: ::core::ffi::c_uint, pub max_data_size: ::core::ffi::c_uint, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of trace_buffer"][::core::mem::size_of::() - 200usize]; + ["Size of trace_buffer"][::core::mem::size_of::() - 240usize]; ["Alignment of trace_buffer"][::core::mem::align_of::() - 8usize]; ["Offset of field: trace_buffer::flags"][::core::mem::offset_of!(trace_buffer, flags) - 0usize]; ["Offset of field: trace_buffer::cpus"][::core::mem::offset_of!(trace_buffer, cpus) - 4usize]; @@ -104588,12 +105540,20 @@ const _: () = { [::core::mem::offset_of!(trace_buffer, irq_work) - 96usize]; ["Offset of field: trace_buffer::time_stamp_abs"] [::core::mem::offset_of!(trace_buffer, time_stamp_abs) - 184usize]; + ["Offset of field: trace_buffer::range_addr_start"] + [::core::mem::offset_of!(trace_buffer, range_addr_start) - 192usize]; + ["Offset of field: trace_buffer::range_addr_end"] + [::core::mem::offset_of!(trace_buffer, range_addr_end) - 200usize]; + ["Offset of field: trace_buffer::last_text_delta"] + [::core::mem::offset_of!(trace_buffer, last_text_delta) - 208usize]; + ["Offset of field: trace_buffer::last_data_delta"] + [::core::mem::offset_of!(trace_buffer, last_data_delta) - 216usize]; ["Offset of field: trace_buffer::subbuf_size"] - [::core::mem::offset_of!(trace_buffer, subbuf_size) - 188usize]; + [::core::mem::offset_of!(trace_buffer, subbuf_size) - 224usize]; ["Offset of field: trace_buffer::subbuf_order"] - [::core::mem::offset_of!(trace_buffer, subbuf_order) - 192usize]; + [::core::mem::offset_of!(trace_buffer, subbuf_order) - 228usize]; ["Offset of field: trace_buffer::max_data_size"] - [::core::mem::offset_of!(trace_buffer, max_data_size) - 196usize]; + [::core::mem::offset_of!(trace_buffer, max_data_size) - 232usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -105465,23 +106425,6 @@ pub struct tty_operations { >, pub show_fdinfo: ::core::option::Option, - pub poll_init: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut tty_driver, - arg2: ::core::ffi::c_int, - arg3: *mut ::core::ffi::c_char, - ) -> ::core::ffi::c_int, - >, - pub poll_get_char: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut tty_driver, arg2: ::core::ffi::c_int) -> ::core::ffi::c_int, - >, - pub poll_put_char: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut tty_driver, - arg2: ::core::ffi::c_int, - arg3: ::core::ffi::c_char, - ), - >, pub proc_show: ::core::option::Option< unsafe extern "C" fn( arg1: *mut seq_file, @@ -105491,7 +106434,7 @@ pub struct tty_operations { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of tty_operations"][::core::mem::size_of::() - 296usize]; + ["Size of tty_operations"][::core::mem::size_of::() - 272usize]; ["Alignment of tty_operations"][::core::mem::align_of::() - 8usize]; ["Offset of field: tty_operations::lookup"] [::core::mem::offset_of!(tty_operations, lookup) - 0usize]; @@ -105559,14 +106502,8 @@ const _: () = { [::core::mem::offset_of!(tty_operations, set_serial) - 248usize]; ["Offset of field: tty_operations::show_fdinfo"] [::core::mem::offset_of!(tty_operations, show_fdinfo) - 256usize]; - ["Offset of field: tty_operations::poll_init"] - [::core::mem::offset_of!(tty_operations, poll_init) - 264usize]; - ["Offset of field: tty_operations::poll_get_char"] - [::core::mem::offset_of!(tty_operations, poll_get_char) - 272usize]; - ["Offset of field: tty_operations::poll_put_char"] - [::core::mem::offset_of!(tty_operations, poll_put_char) - 280usize]; ["Offset of field: tty_operations::proc_show"] - [::core::mem::offset_of!(tty_operations, proc_show) - 288usize]; + [::core::mem::offset_of!(tty_operations, proc_show) - 264usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -106022,8 +106959,9 @@ pub struct uprobe { pub register_rwsem: rw_semaphore, pub consumer_rwsem: rw_semaphore, pub pending_list: list_head, - pub consumers: *mut uprobe_consumer, + pub consumers: list_head, pub inode: *mut inode, + pub rcu: callback_head, pub offset: loff_t, pub ref_ctr_offset: loff_t, pub flags: ::core::ffi::c_ulong, @@ -106031,7 +106969,7 @@ pub struct uprobe { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of uprobe"][::core::mem::size_of::() - 200usize]; + ["Size of uprobe"][::core::mem::size_of::() - 224usize]; ["Alignment of uprobe"][::core::mem::align_of::() - 8usize]; ["Offset of field: uprobe::rb_node"][::core::mem::offset_of!(uprobe, rb_node) - 0usize]; ["Offset of field: uprobe::ref_"][::core::mem::offset_of!(uprobe, ref_) - 24usize]; @@ -106042,12 +106980,13 @@ const _: () = { ["Offset of field: uprobe::pending_list"] [::core::mem::offset_of!(uprobe, pending_list) - 112usize]; ["Offset of field: uprobe::consumers"][::core::mem::offset_of!(uprobe, consumers) - 128usize]; - ["Offset of field: uprobe::inode"][::core::mem::offset_of!(uprobe, inode) - 136usize]; - ["Offset of field: uprobe::offset"][::core::mem::offset_of!(uprobe, offset) - 144usize]; + ["Offset of field: uprobe::inode"][::core::mem::offset_of!(uprobe, inode) - 144usize]; + ["Offset of field: uprobe::rcu"][::core::mem::offset_of!(uprobe, rcu) - 152usize]; + ["Offset of field: uprobe::offset"][::core::mem::offset_of!(uprobe, offset) - 168usize]; ["Offset of field: uprobe::ref_ctr_offset"] - [::core::mem::offset_of!(uprobe, ref_ctr_offset) - 152usize]; - ["Offset of field: uprobe::flags"][::core::mem::offset_of!(uprobe, flags) - 160usize]; - ["Offset of field: uprobe::arch"][::core::mem::offset_of!(uprobe, arch) - 168usize]; + [::core::mem::offset_of!(uprobe, ref_ctr_offset) - 176usize]; + ["Offset of field: uprobe::flags"][::core::mem::offset_of!(uprobe, flags) - 184usize]; + ["Offset of field: uprobe::arch"][::core::mem::offset_of!(uprobe, arch) - 192usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -106206,49 +107145,49 @@ pub struct user_namespace { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of user_namespace"][::core::mem::size_of::() - 640usize]; + ["Size of user_namespace"][::core::mem::size_of::() - 616usize]; ["Alignment of user_namespace"][::core::mem::align_of::() - 8usize]; ["Offset of field: user_namespace::uid_map"] [::core::mem::offset_of!(user_namespace, uid_map) - 0usize]; ["Offset of field: user_namespace::gid_map"] - [::core::mem::offset_of!(user_namespace, gid_map) - 72usize]; + [::core::mem::offset_of!(user_namespace, gid_map) - 64usize]; ["Offset of field: user_namespace::projid_map"] - [::core::mem::offset_of!(user_namespace, projid_map) - 144usize]; + [::core::mem::offset_of!(user_namespace, projid_map) - 128usize]; ["Offset of field: user_namespace::parent"] - [::core::mem::offset_of!(user_namespace, parent) - 216usize]; + [::core::mem::offset_of!(user_namespace, parent) - 192usize]; ["Offset of field: user_namespace::level"] - [::core::mem::offset_of!(user_namespace, level) - 224usize]; + [::core::mem::offset_of!(user_namespace, level) - 200usize]; ["Offset of field: user_namespace::owner"] - [::core::mem::offset_of!(user_namespace, owner) - 228usize]; + [::core::mem::offset_of!(user_namespace, owner) - 204usize]; ["Offset of field: user_namespace::group"] - [::core::mem::offset_of!(user_namespace, group) - 232usize]; - ["Offset of field: user_namespace::ns"][::core::mem::offset_of!(user_namespace, ns) - 240usize]; + [::core::mem::offset_of!(user_namespace, group) - 208usize]; + ["Offset of field: user_namespace::ns"][::core::mem::offset_of!(user_namespace, ns) - 216usize]; ["Offset of field: user_namespace::flags"] - [::core::mem::offset_of!(user_namespace, flags) - 264usize]; + [::core::mem::offset_of!(user_namespace, flags) - 240usize]; ["Offset of field: user_namespace::parent_could_setfcap"] - [::core::mem::offset_of!(user_namespace, parent_could_setfcap) - 272usize]; + [::core::mem::offset_of!(user_namespace, parent_could_setfcap) - 248usize]; ["Offset of field: user_namespace::keyring_name_list"] - [::core::mem::offset_of!(user_namespace, keyring_name_list) - 280usize]; + [::core::mem::offset_of!(user_namespace, keyring_name_list) - 256usize]; ["Offset of field: user_namespace::user_keyring_register"] - [::core::mem::offset_of!(user_namespace, user_keyring_register) - 296usize]; + [::core::mem::offset_of!(user_namespace, user_keyring_register) - 272usize]; ["Offset of field: user_namespace::keyring_sem"] - [::core::mem::offset_of!(user_namespace, keyring_sem) - 304usize]; + [::core::mem::offset_of!(user_namespace, keyring_sem) - 280usize]; ["Offset of field: user_namespace::persistent_keyring_register"] - [::core::mem::offset_of!(user_namespace, persistent_keyring_register) - 344usize]; + [::core::mem::offset_of!(user_namespace, persistent_keyring_register) - 320usize]; ["Offset of field: user_namespace::work"] - [::core::mem::offset_of!(user_namespace, work) - 352usize]; + [::core::mem::offset_of!(user_namespace, work) - 328usize]; ["Offset of field: user_namespace::set"] - [::core::mem::offset_of!(user_namespace, set) - 384usize]; + [::core::mem::offset_of!(user_namespace, set) - 360usize]; ["Offset of field: user_namespace::sysctls"] - [::core::mem::offset_of!(user_namespace, sysctls) - 488usize]; + [::core::mem::offset_of!(user_namespace, sysctls) - 464usize]; ["Offset of field: user_namespace::ucounts"] - [::core::mem::offset_of!(user_namespace, ucounts) - 496usize]; + [::core::mem::offset_of!(user_namespace, ucounts) - 472usize]; ["Offset of field: user_namespace::ucount_max"] - [::core::mem::offset_of!(user_namespace, ucount_max) - 504usize]; + [::core::mem::offset_of!(user_namespace, ucount_max) - 480usize]; ["Offset of field: user_namespace::rlimit_max"] - [::core::mem::offset_of!(user_namespace, rlimit_max) - 600usize]; + [::core::mem::offset_of!(user_namespace, rlimit_max) - 576usize]; ["Offset of field: user_namespace::binfmt_misc"] - [::core::mem::offset_of!(user_namespace, binfmt_misc) - 632usize]; + [::core::mem::offset_of!(user_namespace, binfmt_misc) - 608usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -106265,7 +107204,7 @@ pub struct user_struct { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of user_struct"][::core::mem::size_of::() - 144usize]; + ["Size of user_struct"][::core::mem::size_of::() - 136usize]; ["Alignment of user_struct"][::core::mem::align_of::() - 8usize]; ["Offset of field: user_struct::__count"] [::core::mem::offset_of!(user_struct, __count) - 0usize]; @@ -106806,38 +107745,6 @@ const _: () = { }; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct vm_special_mapping { - pub name: *const ::core::ffi::c_char, - pub pages: *mut *mut page, - pub fault: ::core::option::Option< - unsafe extern "C" fn( - arg1: *const vm_special_mapping, - arg2: *mut vm_area_struct, - arg3: *mut vm_fault, - ) -> vm_fault_t, - >, - pub mremap: ::core::option::Option< - unsafe extern "C" fn( - arg1: *const vm_special_mapping, - arg2: *mut vm_area_struct, - ) -> ::core::ffi::c_int, - >, -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of vm_special_mapping"][::core::mem::size_of::() - 32usize]; - ["Alignment of vm_special_mapping"][::core::mem::align_of::() - 8usize]; - ["Offset of field: vm_special_mapping::name"] - [::core::mem::offset_of!(vm_special_mapping, name) - 0usize]; - ["Offset of field: vm_special_mapping::pages"] - [::core::mem::offset_of!(vm_special_mapping, pages) - 8usize]; - ["Offset of field: vm_special_mapping::fault"] - [::core::mem::offset_of!(vm_special_mapping, fault) - 16usize]; - ["Offset of field: vm_special_mapping::mremap"] - [::core::mem::offset_of!(vm_special_mapping, mremap) - 24usize]; -}; -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct vm_struct { pub next: *mut vm_struct, pub addr: *mut ::core::ffi::c_void, @@ -106848,10 +107755,11 @@ pub struct vm_struct { pub nr_pages: ::core::ffi::c_uint, pub phys_addr: phys_addr_t, pub caller: *const ::core::ffi::c_void, + pub requested_size: ::core::ffi::c_ulong, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of vm_struct"][::core::mem::size_of::() - 64usize]; + ["Size of vm_struct"][::core::mem::size_of::() - 72usize]; ["Alignment of vm_struct"][::core::mem::align_of::() - 8usize]; ["Offset of field: vm_struct::next"][::core::mem::offset_of!(vm_struct, next) - 0usize]; ["Offset of field: vm_struct::addr"][::core::mem::offset_of!(vm_struct, addr) - 8usize]; @@ -106865,6 +107773,8 @@ const _: () = { ["Offset of field: vm_struct::phys_addr"] [::core::mem::offset_of!(vm_struct, phys_addr) - 48usize]; ["Offset of field: vm_struct::caller"][::core::mem::offset_of!(vm_struct, caller) - 56usize]; + ["Offset of field: vm_struct::requested_size"] + [::core::mem::offset_of!(vm_struct, requested_size) - 64usize]; }; #[repr(C)] #[derive(Copy, Clone)] @@ -107213,6 +108123,11 @@ const _: () = { [::core::mem::offset_of!(watch_queue, nr_pages) - 68usize]; }; #[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rfkill { + _unused: [u8; 0], +} +#[repr(C)] pub struct wiphy { pub mtx: mutex, pub perm_addr: [u8_; 6usize], @@ -107306,8 +108221,6 @@ pub struct wiphy { pub hw_timestamp_max_peers: u16_, pub n_radio: ::core::ffi::c_int, pub radio: *const wiphy_radio, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, pub priv_: __IncompleteArrayField<::core::ffi::c_char>, } #[repr(C)] @@ -107330,7 +108243,7 @@ const _: () = { }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of wiphy"][::core::mem::size_of::() - 1376usize]; + ["Size of wiphy"][::core::mem::size_of::() - 1344usize]; ["Alignment of wiphy"][::core::mem::align_of::() - 8usize]; ["Offset of field: wiphy::mtx"][::core::mem::offset_of!(wiphy, mtx) - 0usize]; ["Offset of field: wiphy::perm_addr"][::core::mem::offset_of!(wiphy, perm_addr) - 32usize]; @@ -107426,57 +108339,57 @@ const _: () = { [::core::mem::offset_of!(wiphy, reg_notifier) - 360usize]; ["Offset of field: wiphy::regd"][::core::mem::offset_of!(wiphy, regd) - 368usize]; ["Offset of field: wiphy::dev"][::core::mem::offset_of!(wiphy, dev) - 376usize]; - ["Offset of field: wiphy::registered"][::core::mem::offset_of!(wiphy, registered) - 1144usize]; - ["Offset of field: wiphy::debugfsdir"][::core::mem::offset_of!(wiphy, debugfsdir) - 1152usize]; + ["Offset of field: wiphy::registered"][::core::mem::offset_of!(wiphy, registered) - 1128usize]; + ["Offset of field: wiphy::debugfsdir"][::core::mem::offset_of!(wiphy, debugfsdir) - 1136usize]; ["Offset of field: wiphy::ht_capa_mod_mask"] - [::core::mem::offset_of!(wiphy, ht_capa_mod_mask) - 1160usize]; + [::core::mem::offset_of!(wiphy, ht_capa_mod_mask) - 1144usize]; ["Offset of field: wiphy::vht_capa_mod_mask"] - [::core::mem::offset_of!(wiphy, vht_capa_mod_mask) - 1168usize]; - ["Offset of field: wiphy::wdev_list"][::core::mem::offset_of!(wiphy, wdev_list) - 1176usize]; - ["Offset of field: wiphy::_net"][::core::mem::offset_of!(wiphy, _net) - 1192usize]; - ["Offset of field: wiphy::wext"][::core::mem::offset_of!(wiphy, wext) - 1200usize]; - ["Offset of field: wiphy::coalesce"][::core::mem::offset_of!(wiphy, coalesce) - 1208usize]; + [::core::mem::offset_of!(wiphy, vht_capa_mod_mask) - 1152usize]; + ["Offset of field: wiphy::wdev_list"][::core::mem::offset_of!(wiphy, wdev_list) - 1160usize]; + ["Offset of field: wiphy::_net"][::core::mem::offset_of!(wiphy, _net) - 1176usize]; + ["Offset of field: wiphy::wext"][::core::mem::offset_of!(wiphy, wext) - 1184usize]; + ["Offset of field: wiphy::coalesce"][::core::mem::offset_of!(wiphy, coalesce) - 1192usize]; ["Offset of field: wiphy::vendor_commands"] - [::core::mem::offset_of!(wiphy, vendor_commands) - 1216usize]; + [::core::mem::offset_of!(wiphy, vendor_commands) - 1200usize]; ["Offset of field: wiphy::vendor_events"] - [::core::mem::offset_of!(wiphy, vendor_events) - 1224usize]; + [::core::mem::offset_of!(wiphy, vendor_events) - 1208usize]; ["Offset of field: wiphy::n_vendor_commands"] - [::core::mem::offset_of!(wiphy, n_vendor_commands) - 1232usize]; + [::core::mem::offset_of!(wiphy, n_vendor_commands) - 1216usize]; ["Offset of field: wiphy::n_vendor_events"] - [::core::mem::offset_of!(wiphy, n_vendor_events) - 1236usize]; + [::core::mem::offset_of!(wiphy, n_vendor_events) - 1220usize]; ["Offset of field: wiphy::max_ap_assoc_sta"] - [::core::mem::offset_of!(wiphy, max_ap_assoc_sta) - 1240usize]; + [::core::mem::offset_of!(wiphy, max_ap_assoc_sta) - 1224usize]; ["Offset of field: wiphy::max_num_csa_counters"] - [::core::mem::offset_of!(wiphy, max_num_csa_counters) - 1242usize]; + [::core::mem::offset_of!(wiphy, max_num_csa_counters) - 1226usize]; ["Offset of field: wiphy::bss_select_support"] - [::core::mem::offset_of!(wiphy, bss_select_support) - 1244usize]; + [::core::mem::offset_of!(wiphy, bss_select_support) - 1228usize]; ["Offset of field: wiphy::nan_supported_bands"] - [::core::mem::offset_of!(wiphy, nan_supported_bands) - 1248usize]; - ["Offset of field: wiphy::txq_limit"][::core::mem::offset_of!(wiphy, txq_limit) - 1252usize]; + [::core::mem::offset_of!(wiphy, nan_supported_bands) - 1232usize]; + ["Offset of field: wiphy::txq_limit"][::core::mem::offset_of!(wiphy, txq_limit) - 1236usize]; ["Offset of field: wiphy::txq_memory_limit"] - [::core::mem::offset_of!(wiphy, txq_memory_limit) - 1256usize]; + [::core::mem::offset_of!(wiphy, txq_memory_limit) - 1240usize]; ["Offset of field: wiphy::txq_quantum"] - [::core::mem::offset_of!(wiphy, txq_quantum) - 1260usize]; + [::core::mem::offset_of!(wiphy, txq_quantum) - 1244usize]; ["Offset of field: wiphy::tx_queue_len"] - [::core::mem::offset_of!(wiphy, tx_queue_len) - 1264usize]; - ["Offset of field: wiphy::pmsr_capa"][::core::mem::offset_of!(wiphy, pmsr_capa) - 1280usize]; + [::core::mem::offset_of!(wiphy, tx_queue_len) - 1248usize]; + ["Offset of field: wiphy::pmsr_capa"][::core::mem::offset_of!(wiphy, pmsr_capa) - 1264usize]; ["Offset of field: wiphy::tid_config_support"] - [::core::mem::offset_of!(wiphy, tid_config_support) - 1288usize]; + [::core::mem::offset_of!(wiphy, tid_config_support) - 1272usize]; ["Offset of field: wiphy::max_data_retry_count"] - [::core::mem::offset_of!(wiphy, max_data_retry_count) - 1312usize]; - ["Offset of field: wiphy::sar_capa"][::core::mem::offset_of!(wiphy, sar_capa) - 1320usize]; - ["Offset of field: wiphy::rfkill"][::core::mem::offset_of!(wiphy, rfkill) - 1328usize]; + [::core::mem::offset_of!(wiphy, max_data_retry_count) - 1296usize]; + ["Offset of field: wiphy::sar_capa"][::core::mem::offset_of!(wiphy, sar_capa) - 1304usize]; + ["Offset of field: wiphy::rfkill"][::core::mem::offset_of!(wiphy, rfkill) - 1312usize]; ["Offset of field: wiphy::mbssid_max_interfaces"] - [::core::mem::offset_of!(wiphy, mbssid_max_interfaces) - 1336usize]; + [::core::mem::offset_of!(wiphy, mbssid_max_interfaces) - 1320usize]; ["Offset of field: wiphy::ema_max_profile_periodicity"] - [::core::mem::offset_of!(wiphy, ema_max_profile_periodicity) - 1337usize]; + [::core::mem::offset_of!(wiphy, ema_max_profile_periodicity) - 1321usize]; ["Offset of field: wiphy::max_num_akm_suites"] - [::core::mem::offset_of!(wiphy, max_num_akm_suites) - 1338usize]; + [::core::mem::offset_of!(wiphy, max_num_akm_suites) - 1322usize]; ["Offset of field: wiphy::hw_timestamp_max_peers"] - [::core::mem::offset_of!(wiphy, hw_timestamp_max_peers) - 1340usize]; - ["Offset of field: wiphy::n_radio"][::core::mem::offset_of!(wiphy, n_radio) - 1344usize]; - ["Offset of field: wiphy::radio"][::core::mem::offset_of!(wiphy, radio) - 1352usize]; - ["Offset of field: wiphy::priv_"][::core::mem::offset_of!(wiphy, priv_) - 1376usize]; + [::core::mem::offset_of!(wiphy, hw_timestamp_max_peers) - 1324usize]; + ["Offset of field: wiphy::n_radio"][::core::mem::offset_of!(wiphy, n_radio) - 1328usize]; + ["Offset of field: wiphy::radio"][::core::mem::offset_of!(wiphy, radio) - 1336usize]; + ["Offset of field: wiphy::priv_"][::core::mem::offset_of!(wiphy, priv_) - 1344usize]; }; impl wiphy { #[inline] @@ -107562,11 +108475,6 @@ impl wiphy { }); __bindgen_bitfield_unit } - #[inline] - pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); - __bindgen_bitfield_unit - } } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -107847,9 +108755,6 @@ pub struct wireless_dev { pub ap_unexpected_nlportid: u32_, pub owner_nlportid: u32_, pub nl_owner_dead: bool_, - pub cac_started: bool_, - pub cac_start_time: ::core::ffi::c_ulong, - pub cac_time_ms: ::core::ffi::c_uint, pub wext: wireless_dev__bindgen_ty_1, pub cqm_rssi_work: wiphy_work, pub cqm_config: *mut cfg80211_cqm_config, @@ -108056,6 +108961,9 @@ const _: () = { pub struct wireless_dev__bindgen_ty_3 { pub addr: [u8_; 6usize], pub __bindgen_anon_1: wireless_dev__bindgen_ty_3__bindgen_ty_1, + pub cac_started: bool_, + pub cac_start_time: ::core::ffi::c_ulong, + pub cac_time_ms: ::core::ffi::c_uint, } #[repr(C)] #[derive(Copy, Clone)] @@ -108120,15 +109028,21 @@ const _: () = { #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of wireless_dev__bindgen_ty_3"] - [::core::mem::size_of::() - 48usize]; + [::core::mem::size_of::() - 72usize]; ["Alignment of wireless_dev__bindgen_ty_3"] [::core::mem::align_of::() - 8usize]; ["Offset of field: wireless_dev__bindgen_ty_3::addr"] [::core::mem::offset_of!(wireless_dev__bindgen_ty_3, addr) - 0usize]; + ["Offset of field: wireless_dev__bindgen_ty_3::cac_started"] + [::core::mem::offset_of!(wireless_dev__bindgen_ty_3, cac_started) - 48usize]; + ["Offset of field: wireless_dev__bindgen_ty_3::cac_start_time"] + [::core::mem::offset_of!(wireless_dev__bindgen_ty_3, cac_start_time) - 56usize]; + ["Offset of field: wireless_dev__bindgen_ty_3::cac_time_ms"] + [::core::mem::offset_of!(wireless_dev__bindgen_ty_3, cac_time_ms) - 64usize]; }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of wireless_dev"][::core::mem::size_of::() - 1760usize]; + ["Size of wireless_dev"][::core::mem::size_of::() - 2104usize]; ["Alignment of wireless_dev"][::core::mem::align_of::() - 8usize]; ["Offset of field: wireless_dev::wiphy"][::core::mem::offset_of!(wireless_dev, wiphy) - 0usize]; ["Offset of field: wireless_dev::iftype"] @@ -108174,30 +109088,24 @@ const _: () = { [::core::mem::offset_of!(wireless_dev, owner_nlportid) - 176usize]; ["Offset of field: wireless_dev::nl_owner_dead"] [::core::mem::offset_of!(wireless_dev, nl_owner_dead) - 180usize]; - ["Offset of field: wireless_dev::cac_started"] - [::core::mem::offset_of!(wireless_dev, cac_started) - 181usize]; - ["Offset of field: wireless_dev::cac_start_time"] - [::core::mem::offset_of!(wireless_dev, cac_start_time) - 184usize]; - ["Offset of field: wireless_dev::cac_time_ms"] - [::core::mem::offset_of!(wireless_dev, cac_time_ms) - 192usize]; - ["Offset of field: wireless_dev::wext"][::core::mem::offset_of!(wireless_dev, wext) - 200usize]; + ["Offset of field: wireless_dev::wext"][::core::mem::offset_of!(wireless_dev, wext) - 184usize]; ["Offset of field: wireless_dev::cqm_rssi_work"] - [::core::mem::offset_of!(wireless_dev, cqm_rssi_work) - 824usize]; + [::core::mem::offset_of!(wireless_dev, cqm_rssi_work) - 808usize]; ["Offset of field: wireless_dev::cqm_config"] - [::core::mem::offset_of!(wireless_dev, cqm_config) - 848usize]; + [::core::mem::offset_of!(wireless_dev, cqm_config) - 832usize]; ["Offset of field: wireless_dev::pmsr_list"] - [::core::mem::offset_of!(wireless_dev, pmsr_list) - 856usize]; + [::core::mem::offset_of!(wireless_dev, pmsr_list) - 840usize]; ["Offset of field: wireless_dev::pmsr_lock"] - [::core::mem::offset_of!(wireless_dev, pmsr_lock) - 872usize]; + [::core::mem::offset_of!(wireless_dev, pmsr_lock) - 856usize]; ["Offset of field: wireless_dev::pmsr_free_wk"] - [::core::mem::offset_of!(wireless_dev, pmsr_free_wk) - 880usize]; + [::core::mem::offset_of!(wireless_dev, pmsr_free_wk) - 864usize]; ["Offset of field: wireless_dev::unprot_beacon_reported"] - [::core::mem::offset_of!(wireless_dev, unprot_beacon_reported) - 912usize]; - ["Offset of field: wireless_dev::u"][::core::mem::offset_of!(wireless_dev, u) - 920usize]; + [::core::mem::offset_of!(wireless_dev, unprot_beacon_reported) - 896usize]; + ["Offset of field: wireless_dev::u"][::core::mem::offset_of!(wireless_dev, u) - 904usize]; ["Offset of field: wireless_dev::links"] - [::core::mem::offset_of!(wireless_dev, links) - 1032usize]; + [::core::mem::offset_of!(wireless_dev, links) - 1016usize]; ["Offset of field: wireless_dev::valid_links"] - [::core::mem::offset_of!(wireless_dev, valid_links) - 1752usize]; + [::core::mem::offset_of!(wireless_dev, valid_links) - 2096usize]; }; impl wireless_dev { #[inline] @@ -108718,14 +109626,12 @@ pub struct wpan_phy { pub hold_txs: atomic_t, pub sync_txq: wait_queue_head_t, pub filtering: ieee802154_filtering_level, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, pub __bindgen_padding_0: [u8; 4usize], pub priv_: __IncompleteArrayField<::core::ffi::c_char>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of wpan_phy"][::core::mem::size_of::() - 1088usize]; + ["Size of wpan_phy"][::core::mem::size_of::() - 1056usize]; ["Alignment of wpan_phy"][::core::mem::align_of::() - 8usize]; ["Offset of field: wpan_phy::privid"][::core::mem::offset_of!(wpan_phy, privid) - 0usize]; ["Offset of field: wpan_phy::flags"][::core::mem::offset_of!(wpan_phy, flags) - 8usize]; @@ -108749,26 +109655,19 @@ const _: () = { ["Offset of field: wpan_phy::sifs_period"] [::core::mem::offset_of!(wpan_phy, sifs_period) - 242usize]; ["Offset of field: wpan_phy::dev"][::core::mem::offset_of!(wpan_phy, dev) - 248usize]; - ["Offset of field: wpan_phy::_net"][::core::mem::offset_of!(wpan_phy, _net) - 1016usize]; + ["Offset of field: wpan_phy::_net"][::core::mem::offset_of!(wpan_phy, _net) - 1000usize]; ["Offset of field: wpan_phy::queue_lock"] - [::core::mem::offset_of!(wpan_phy, queue_lock) - 1024usize]; + [::core::mem::offset_of!(wpan_phy, queue_lock) - 1008usize]; ["Offset of field: wpan_phy::ongoing_txs"] - [::core::mem::offset_of!(wpan_phy, ongoing_txs) - 1028usize]; + [::core::mem::offset_of!(wpan_phy, ongoing_txs) - 1012usize]; ["Offset of field: wpan_phy::hold_txs"] - [::core::mem::offset_of!(wpan_phy, hold_txs) - 1032usize]; + [::core::mem::offset_of!(wpan_phy, hold_txs) - 1016usize]; ["Offset of field: wpan_phy::sync_txq"] - [::core::mem::offset_of!(wpan_phy, sync_txq) - 1040usize]; + [::core::mem::offset_of!(wpan_phy, sync_txq) - 1024usize]; ["Offset of field: wpan_phy::filtering"] - [::core::mem::offset_of!(wpan_phy, filtering) - 1064usize]; - ["Offset of field: wpan_phy::priv_"][::core::mem::offset_of!(wpan_phy, priv_) - 1088usize]; + [::core::mem::offset_of!(wpan_phy, filtering) - 1048usize]; + ["Offset of field: wpan_phy::priv_"][::core::mem::offset_of!(wpan_phy, priv_) - 1056usize]; }; -impl wpan_phy { - #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); - __bindgen_bitfield_unit - } -} #[repr(C)] #[derive(Copy, Clone)] pub struct wq_device { @@ -108777,7 +109676,7 @@ pub struct wq_device { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of wq_device"][::core::mem::size_of::() - 776usize]; + ["Size of wq_device"][::core::mem::size_of::() - 760usize]; ["Alignment of wq_device"][::core::mem::align_of::() - 8usize]; ["Offset of field: wq_device::wq"][::core::mem::offset_of!(wq_device, wq) - 0usize]; ["Offset of field: wq_device::dev"][::core::mem::offset_of!(wq_device, dev) - 8usize]; @@ -108830,6 +109729,7 @@ pub struct writeback_control { pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, pub swap_plug: *mut *mut swap_iocb, + pub list: *mut list_head, pub fbatch: folio_batch, pub index: ::core::ffi::c_ulong, pub saved_err: ::core::ffi::c_int, @@ -108844,7 +109744,7 @@ pub struct writeback_control { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of writeback_control"][::core::mem::size_of::() - 376usize]; + ["Size of writeback_control"][::core::mem::size_of::() - 384usize]; ["Alignment of writeback_control"][::core::mem::align_of::() - 8usize]; ["Offset of field: writeback_control::nr_to_write"] [::core::mem::offset_of!(writeback_control, nr_to_write) - 0usize]; @@ -108858,28 +109758,30 @@ const _: () = { [::core::mem::offset_of!(writeback_control, sync_mode) - 32usize]; ["Offset of field: writeback_control::swap_plug"] [::core::mem::offset_of!(writeback_control, swap_plug) - 40usize]; + ["Offset of field: writeback_control::list"] + [::core::mem::offset_of!(writeback_control, list) - 48usize]; ["Offset of field: writeback_control::fbatch"] - [::core::mem::offset_of!(writeback_control, fbatch) - 48usize]; + [::core::mem::offset_of!(writeback_control, fbatch) - 56usize]; ["Offset of field: writeback_control::index"] - [::core::mem::offset_of!(writeback_control, index) - 304usize]; + [::core::mem::offset_of!(writeback_control, index) - 312usize]; ["Offset of field: writeback_control::saved_err"] - [::core::mem::offset_of!(writeback_control, saved_err) - 312usize]; + [::core::mem::offset_of!(writeback_control, saved_err) - 320usize]; ["Offset of field: writeback_control::wb"] - [::core::mem::offset_of!(writeback_control, wb) - 320usize]; + [::core::mem::offset_of!(writeback_control, wb) - 328usize]; ["Offset of field: writeback_control::inode"] - [::core::mem::offset_of!(writeback_control, inode) - 328usize]; + [::core::mem::offset_of!(writeback_control, inode) - 336usize]; ["Offset of field: writeback_control::wb_id"] - [::core::mem::offset_of!(writeback_control, wb_id) - 336usize]; + [::core::mem::offset_of!(writeback_control, wb_id) - 344usize]; ["Offset of field: writeback_control::wb_lcand_id"] - [::core::mem::offset_of!(writeback_control, wb_lcand_id) - 340usize]; + [::core::mem::offset_of!(writeback_control, wb_lcand_id) - 348usize]; ["Offset of field: writeback_control::wb_tcand_id"] - [::core::mem::offset_of!(writeback_control, wb_tcand_id) - 344usize]; + [::core::mem::offset_of!(writeback_control, wb_tcand_id) - 352usize]; ["Offset of field: writeback_control::wb_bytes"] - [::core::mem::offset_of!(writeback_control, wb_bytes) - 352usize]; + [::core::mem::offset_of!(writeback_control, wb_bytes) - 360usize]; ["Offset of field: writeback_control::wb_lcand_bytes"] - [::core::mem::offset_of!(writeback_control, wb_lcand_bytes) - 360usize]; + [::core::mem::offset_of!(writeback_control, wb_lcand_bytes) - 368usize]; ["Offset of field: writeback_control::wb_tcand_bytes"] - [::core::mem::offset_of!(writeback_control, wb_tcand_bytes) - 368usize]; + [::core::mem::offset_of!(writeback_control, wb_tcand_bytes) - 376usize]; }; impl writeback_control { #[inline] @@ -109952,13 +110854,12 @@ pub struct xfrm_policy { pub family: u16_, pub security: *mut xfrm_sec_ctx, pub xfrm_vec: [xfrm_tmpl; 6usize], - pub bydst_inexact_list: hlist_node, pub rcu: callback_head, pub xdo: xfrm_dev_offload, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of xfrm_policy"][::core::mem::size_of::() - 840usize]; + ["Size of xfrm_policy"][::core::mem::size_of::() - 824usize]; ["Alignment of xfrm_policy"][::core::mem::align_of::() - 8usize]; ["Offset of field: xfrm_policy::xp_net"][::core::mem::offset_of!(xfrm_policy, xp_net) - 0usize]; ["Offset of field: xfrm_policy::bydst"][::core::mem::offset_of!(xfrm_policy, bydst) - 8usize]; @@ -109997,10 +110898,8 @@ const _: () = { [::core::mem::offset_of!(xfrm_policy, security) - 384usize]; ["Offset of field: xfrm_policy::xfrm_vec"] [::core::mem::offset_of!(xfrm_policy, xfrm_vec) - 392usize]; - ["Offset of field: xfrm_policy::bydst_inexact_list"] - [::core::mem::offset_of!(xfrm_policy, bydst_inexact_list) - 776usize]; - ["Offset of field: xfrm_policy::rcu"][::core::mem::offset_of!(xfrm_policy, rcu) - 792usize]; - ["Offset of field: xfrm_policy::xdo"][::core::mem::offset_of!(xfrm_policy, xdo) - 808usize]; + ["Offset of field: xfrm_policy::rcu"][::core::mem::offset_of!(xfrm_policy, rcu) - 776usize]; + ["Offset of field: xfrm_policy::xdo"][::core::mem::offset_of!(xfrm_policy, xdo) - 792usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -110150,7 +111049,6 @@ pub struct xfrm_state { pub new_mapping: u32_, pub mapping_maxage: u32_, pub encap: *mut xfrm_encap_tmpl, - pub encap_sk: *mut sock, pub nat_keepalive_interval: u32_, pub nat_keepalive_expiration: time64_t, pub coaddr: *mut xfrm_address_t, @@ -110267,7 +111165,7 @@ const _: () = { }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of xfrm_state"][::core::mem::size_of::() - 800usize]; + ["Size of xfrm_state"][::core::mem::size_of::() - 792usize]; ["Alignment of xfrm_state"][::core::mem::align_of::() - 8usize]; ["Offset of field: xfrm_state::xs_net"][::core::mem::offset_of!(xfrm_state, xs_net) - 0usize]; ["Offset of field: xfrm_state::byspi"][::core::mem::offset_of!(xfrm_state, byspi) - 40usize]; @@ -110301,53 +111199,51 @@ const _: () = { ["Offset of field: xfrm_state::mapping_maxage"] [::core::mem::offset_of!(xfrm_state, mapping_maxage) - 408usize]; ["Offset of field: xfrm_state::encap"][::core::mem::offset_of!(xfrm_state, encap) - 416usize]; - ["Offset of field: xfrm_state::encap_sk"] - [::core::mem::offset_of!(xfrm_state, encap_sk) - 424usize]; ["Offset of field: xfrm_state::nat_keepalive_interval"] - [::core::mem::offset_of!(xfrm_state, nat_keepalive_interval) - 432usize]; + [::core::mem::offset_of!(xfrm_state, nat_keepalive_interval) - 424usize]; ["Offset of field: xfrm_state::nat_keepalive_expiration"] - [::core::mem::offset_of!(xfrm_state, nat_keepalive_expiration) - 440usize]; - ["Offset of field: xfrm_state::coaddr"][::core::mem::offset_of!(xfrm_state, coaddr) - 448usize]; - ["Offset of field: xfrm_state::tunnel"][::core::mem::offset_of!(xfrm_state, tunnel) - 456usize]; + [::core::mem::offset_of!(xfrm_state, nat_keepalive_expiration) - 432usize]; + ["Offset of field: xfrm_state::coaddr"][::core::mem::offset_of!(xfrm_state, coaddr) - 440usize]; + ["Offset of field: xfrm_state::tunnel"][::core::mem::offset_of!(xfrm_state, tunnel) - 448usize]; ["Offset of field: xfrm_state::tunnel_users"] - [::core::mem::offset_of!(xfrm_state, tunnel_users) - 464usize]; - ["Offset of field: xfrm_state::replay"][::core::mem::offset_of!(xfrm_state, replay) - 468usize]; + [::core::mem::offset_of!(xfrm_state, tunnel_users) - 456usize]; + ["Offset of field: xfrm_state::replay"][::core::mem::offset_of!(xfrm_state, replay) - 460usize]; ["Offset of field: xfrm_state::replay_esn"] - [::core::mem::offset_of!(xfrm_state, replay_esn) - 480usize]; + [::core::mem::offset_of!(xfrm_state, replay_esn) - 472usize]; ["Offset of field: xfrm_state::preplay"] - [::core::mem::offset_of!(xfrm_state, preplay) - 488usize]; + [::core::mem::offset_of!(xfrm_state, preplay) - 480usize]; ["Offset of field: xfrm_state::preplay_esn"] - [::core::mem::offset_of!(xfrm_state, preplay_esn) - 504usize]; + [::core::mem::offset_of!(xfrm_state, preplay_esn) - 496usize]; ["Offset of field: xfrm_state::repl_mode"] - [::core::mem::offset_of!(xfrm_state, repl_mode) - 512usize]; - ["Offset of field: xfrm_state::xflags"][::core::mem::offset_of!(xfrm_state, xflags) - 516usize]; + [::core::mem::offset_of!(xfrm_state, repl_mode) - 504usize]; + ["Offset of field: xfrm_state::xflags"][::core::mem::offset_of!(xfrm_state, xflags) - 508usize]; ["Offset of field: xfrm_state::replay_maxage"] - [::core::mem::offset_of!(xfrm_state, replay_maxage) - 520usize]; + [::core::mem::offset_of!(xfrm_state, replay_maxage) - 512usize]; ["Offset of field: xfrm_state::replay_maxdiff"] - [::core::mem::offset_of!(xfrm_state, replay_maxdiff) - 524usize]; - ["Offset of field: xfrm_state::rtimer"][::core::mem::offset_of!(xfrm_state, rtimer) - 528usize]; - ["Offset of field: xfrm_state::stats"][::core::mem::offset_of!(xfrm_state, stats) - 568usize]; - ["Offset of field: xfrm_state::curlft"][::core::mem::offset_of!(xfrm_state, curlft) - 584usize]; - ["Offset of field: xfrm_state::mtimer"][::core::mem::offset_of!(xfrm_state, mtimer) - 616usize]; - ["Offset of field: xfrm_state::xso"][::core::mem::offset_of!(xfrm_state, xso) - 680usize]; + [::core::mem::offset_of!(xfrm_state, replay_maxdiff) - 516usize]; + ["Offset of field: xfrm_state::rtimer"][::core::mem::offset_of!(xfrm_state, rtimer) - 520usize]; + ["Offset of field: xfrm_state::stats"][::core::mem::offset_of!(xfrm_state, stats) - 560usize]; + ["Offset of field: xfrm_state::curlft"][::core::mem::offset_of!(xfrm_state, curlft) - 576usize]; + ["Offset of field: xfrm_state::mtimer"][::core::mem::offset_of!(xfrm_state, mtimer) - 608usize]; + ["Offset of field: xfrm_state::xso"][::core::mem::offset_of!(xfrm_state, xso) - 672usize]; ["Offset of field: xfrm_state::saved_tmo"] - [::core::mem::offset_of!(xfrm_state, saved_tmo) - 712usize]; + [::core::mem::offset_of!(xfrm_state, saved_tmo) - 704usize]; ["Offset of field: xfrm_state::lastused"] - [::core::mem::offset_of!(xfrm_state, lastused) - 720usize]; - ["Offset of field: xfrm_state::xfrag"][::core::mem::offset_of!(xfrm_state, xfrag) - 728usize]; - ["Offset of field: xfrm_state::type_"][::core::mem::offset_of!(xfrm_state, type_) - 744usize]; + [::core::mem::offset_of!(xfrm_state, lastused) - 712usize]; + ["Offset of field: xfrm_state::xfrag"][::core::mem::offset_of!(xfrm_state, xfrag) - 720usize]; + ["Offset of field: xfrm_state::type_"][::core::mem::offset_of!(xfrm_state, type_) - 736usize]; ["Offset of field: xfrm_state::inner_mode"] - [::core::mem::offset_of!(xfrm_state, inner_mode) - 752usize]; + [::core::mem::offset_of!(xfrm_state, inner_mode) - 744usize]; ["Offset of field: xfrm_state::inner_mode_iaf"] - [::core::mem::offset_of!(xfrm_state, inner_mode_iaf) - 755usize]; + [::core::mem::offset_of!(xfrm_state, inner_mode_iaf) - 747usize]; ["Offset of field: xfrm_state::outer_mode"] - [::core::mem::offset_of!(xfrm_state, outer_mode) - 758usize]; + [::core::mem::offset_of!(xfrm_state, outer_mode) - 750usize]; ["Offset of field: xfrm_state::type_offload"] - [::core::mem::offset_of!(xfrm_state, type_offload) - 768usize]; + [::core::mem::offset_of!(xfrm_state, type_offload) - 760usize]; ["Offset of field: xfrm_state::security"] - [::core::mem::offset_of!(xfrm_state, security) - 776usize]; - ["Offset of field: xfrm_state::data"][::core::mem::offset_of!(xfrm_state, data) - 784usize]; - ["Offset of field: xfrm_state::dir"][::core::mem::offset_of!(xfrm_state, dir) - 792usize]; + [::core::mem::offset_of!(xfrm_state, security) - 768usize]; + ["Offset of field: xfrm_state::data"][::core::mem::offset_of!(xfrm_state, data) - 776usize]; + ["Offset of field: xfrm_state::dir"][::core::mem::offset_of!(xfrm_state, dir) - 784usize]; }; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -110480,22 +111376,19 @@ pub struct xol_area { pub wq: wait_queue_head_t, pub slot_count: atomic_t, pub bitmap: *mut ::core::ffi::c_ulong, - pub xol_mapping: vm_special_mapping, - pub pages: [*mut page; 2usize], + pub page: *mut page, pub vaddr: ::core::ffi::c_ulong, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of xol_area"][::core::mem::size_of::() - 96usize]; + ["Size of xol_area"][::core::mem::size_of::() - 56usize]; ["Alignment of xol_area"][::core::mem::align_of::() - 8usize]; ["Offset of field: xol_area::wq"][::core::mem::offset_of!(xol_area, wq) - 0usize]; ["Offset of field: xol_area::slot_count"] [::core::mem::offset_of!(xol_area, slot_count) - 24usize]; ["Offset of field: xol_area::bitmap"][::core::mem::offset_of!(xol_area, bitmap) - 32usize]; - ["Offset of field: xol_area::xol_mapping"] - [::core::mem::offset_of!(xol_area, xol_mapping) - 40usize]; - ["Offset of field: xol_area::pages"][::core::mem::offset_of!(xol_area, pages) - 72usize]; - ["Offset of field: xol_area::vaddr"][::core::mem::offset_of!(xol_area, vaddr) - 88usize]; + ["Offset of field: xol_area::page"][::core::mem::offset_of!(xol_area, page) - 40usize]; + ["Offset of field: xol_area::vaddr"][::core::mem::offset_of!(xol_area, vaddr) - 48usize]; }; #[repr(C)] #[derive(Debug)] @@ -110607,12 +111500,11 @@ pub struct xsk_buff_pool { pub users: refcount_t, pub umem: *mut xdp_umem, pub work: work_struct, + pub rx_lock: spinlock_t, pub free_list: list_head, pub xskb_list: list_head, pub heads_cnt: u32_, pub queue_id: u16_, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, pub fq: *mut xsk_queue, pub cq: *mut xsk_queue, pub dma_pages: *mut dma_addr_t, @@ -110635,8 +111527,8 @@ pub struct xsk_buff_pool { pub addrs: *mut ::core::ffi::c_void, pub cq_lock: spinlock_t, pub free_heads: __IncompleteArrayField<*mut xdp_buff_xsk>, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { @@ -110655,14 +111547,16 @@ const _: () = { [::core::mem::offset_of!(xsk_buff_pool, umem) - 40usize]; ["Offset of field: xsk_buff_pool::work"] [::core::mem::offset_of!(xsk_buff_pool, work) - 48usize]; + ["Offset of field: xsk_buff_pool::rx_lock"] + [::core::mem::offset_of!(xsk_buff_pool, rx_lock) - 80usize]; ["Offset of field: xsk_buff_pool::free_list"] - [::core::mem::offset_of!(xsk_buff_pool, free_list) - 80usize]; + [::core::mem::offset_of!(xsk_buff_pool, free_list) - 88usize]; ["Offset of field: xsk_buff_pool::xskb_list"] - [::core::mem::offset_of!(xsk_buff_pool, xskb_list) - 96usize]; + [::core::mem::offset_of!(xsk_buff_pool, xskb_list) - 104usize]; ["Offset of field: xsk_buff_pool::heads_cnt"] - [::core::mem::offset_of!(xsk_buff_pool, heads_cnt) - 112usize]; + [::core::mem::offset_of!(xsk_buff_pool, heads_cnt) - 120usize]; ["Offset of field: xsk_buff_pool::queue_id"] - [::core::mem::offset_of!(xsk_buff_pool, queue_id) - 116usize]; + [::core::mem::offset_of!(xsk_buff_pool, queue_id) - 124usize]; ["Offset of field: xsk_buff_pool::fq"][::core::mem::offset_of!(xsk_buff_pool, fq) - 128usize]; ["Offset of field: xsk_buff_pool::cq"][::core::mem::offset_of!(xsk_buff_pool, cq) - 136usize]; ["Offset of field: xsk_buff_pool::dma_pages"] @@ -110708,12 +111602,7 @@ const _: () = { }; impl xsk_buff_pool { #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); - __bindgen_bitfield_unit - } - #[inline] - pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); __bindgen_bitfield_unit } diff --git a/core/src/components/metrics_tracer/src/data_structures.rs b/core/src/components/metrics_tracer/src/data_structures.rs new file mode 100644 index 0000000..333ec33 --- /dev/null +++ b/core/src/components/metrics_tracer/src/data_structures.rs @@ -0,0 +1,15 @@ +use aya_ebpf::{macros::map, maps::{LruPerCpuHashMap, PerfEventArray}}; + + +pub struct NetworkMetrics { + pub sk_err: i32, // Offset 284 + pub sk_err_soft: i32, // Offset 600 + pub sk_backlog_len: i32, // Offset 196 + pub sk_wmem_queued: i32, // Offset 376 + pub sk_rcvbuf: i32, // Offset 244 + pub sk_ack_backlog: u32, // Offset 604 + pub sk_drops: i32, // Offset 136 +} + +#[map(name = "net_metrics")] +pub static NET_METRICS: PerfEventArray = PerfEventArray::new(0); diff --git a/core/src/components/metrics_tracer/src/main.rs b/core/src/components/metrics_tracer/src/main.rs index 149704c..35ab0ef 100644 --- a/core/src/components/metrics_tracer/src/main.rs +++ b/core/src/components/metrics_tracer/src/main.rs @@ -3,20 +3,17 @@ #![allow(warnings)] mod bindings; +mod data_structures; use crate::bindings::net_device; use aya_ebpf::EbpfContext; use aya_ebpf::helpers::{bpf_probe_read_kernel, bpf_probe_read_kernel_str_bytes}; use aya_ebpf::macros::{kprobe, map}; -use aya_ebpf::maps::PerfEventArray; +use aya_ebpf::maps::{HashMap, PerfEventArray}; use aya_ebpf::programs::ProbeContext; - -struct NetworkMetrics { - src_addr: [u32; 8], -} - -#[map(name = "net_metrics")] -pub static NET_METRICS: PerfEventArray = PerfEventArray::new(0); +use aya_ebpf::helpers::bpf_get_current_pid_tgid; +use crate::data_structures::NetworkMetrics; +use crate::data_structures::NET_METRICS; #[kprobe] fn metrics_tracer(ctx: ProbeContext) -> u32 { @@ -27,45 +24,36 @@ fn metrics_tracer(ctx: ProbeContext) -> u32 { } fn try_metrics_tracer(ctx: ProbeContext) -> Result { - let net_device_pointer: *const net_device = ctx.arg(0).ok_or(1i64)?; + let sk_pointer = ctx.arg::<*const u8>(0).ok_or(1i64)?; - if net_device_pointer.is_null() { + if sk_pointer.is_null() { return Err(1); } - //let sk_pacing_status_offset = 428; - //let sk_pacing_status_pointer = - // unsafe { (sk_pacing_status_offset as *const u8).add(sk_pacing_status_offset) }; - - //let sk_pacing_status = unsafe { - //match bpf_probe_read_kernel(sk_pacing_status_pointer) { - //Ok(value) => value, - //Err(ret) => { - // return Err(ret); - // } - // } - //}; - - let dev_addr_offset = 1080; - - let dev_addr_pointer = unsafe { (net_device_pointer as *const u8).add(dev_addr_offset) }; - - let mut dev_addr_buf = [0u32; 8]; - - let dev_addr_ptr_array = dev_addr_pointer as *const [u32; 8]; - let dev_addr_array = unsafe { - match bpf_probe_read_kernel(dev_addr_ptr_array) { - Ok(arr) => arr, - Err(ret) => { - return Err(ret); - } - } - }; - - dev_addr_buf.copy_from_slice(&dev_addr_array); + let sk_err_offset = 284; + let sk_err_soft_offset = 600; + let sk_backlog_len_offset = 196; + let sk_wmem_queued_offset = 376; + let sk_rcvbuf_offset = 244; + let sk_ack_backlog_offset = 604; + let sk_drops_offset = 136; + + let sk_err = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_err_offset) as *const i32).map_err(|_| 1)? }; + let sk_err_soft = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_err_soft_offset) as *const i32).map_err(|_| 1)? }; + let sk_backlog_len = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_backlog_len_offset) as *const i32).map_err(|_| 1)? }; + let sk_wmem_queued = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_wmem_queued_offset) as *const i32).map_err(|_| 1)? }; + let sk_rcvbuf = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_rcvbuf_offset) as *const i32).map_err(|_| 1)? }; + let sk_ack_backlog = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_ack_backlog_offset) as *const u32).map_err(|_| 1)? }; + let sk_drops = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_drops_offset) as *const i32).map_err(|_| 1)? }; let net_metrics = NetworkMetrics { - src_addr: dev_addr_buf, + sk_err, + sk_err_soft, + sk_backlog_len, + sk_wmem_queued, + sk_rcvbuf, + sk_ack_backlog, + sk_drops, }; unsafe { @@ -75,6 +63,10 @@ fn try_metrics_tracer(ctx: ProbeContext) -> Result { Ok(0) } +// Monitor on tcp_sendmsg, tcp_v4_connect + + +// panic handler #[panic_handler] fn panic(_info: &core::panic::PanicInfo) -> ! { loop {} diff --git a/core/src/components/metrics_tracer/src/mod.rs b/core/src/components/metrics_tracer/src/mod.rs index 11968cf..76d6683 100644 --- a/core/src/components/metrics_tracer/src/mod.rs +++ b/core/src/components/metrics_tracer/src/mod.rs @@ -1 +1,2 @@ -mod bindings; \ No newline at end of file +mod bindings; +mod data_structures; \ No newline at end of file diff --git a/core/src/testing/chaos-mess.yaml b/core/src/testing/chaos-mess.yaml new file mode 100644 index 0000000..0dff22f --- /dev/null +++ b/core/src/testing/chaos-mess.yaml @@ -0,0 +1,18 @@ +kind: NetworkChaos +apiVersion: chaos-mesh.org/v1alpha1 +metadata: + namespace: cortexflow + name: test +spec: + selector: + namespaces: + - cortexflow + labelSelectors: + app: cortexflow-metrics + mode: all + action: loss + duration: 60s + loss: + loss: '20' + correlation: '0' + direction: to \ No newline at end of file diff --git a/core/src/testing/metrics.yaml b/core/src/testing/metrics.yaml index 3f74c71..765f283 100644 --- a/core/src/testing/metrics.yaml +++ b/core/src/testing/metrics.yaml @@ -19,7 +19,7 @@ spec: hostNetwork: true containers: - name: metrics - image: lorenzotettamanti/cortexflow-metrics:latest + image: metrics:0.0.1 command: ["/bin/bash", "-c"] args: - | From 8a3207e38ec7060f6775ab178a66e08a7ecd0cba Mon Sep 17 00:00:00 2001 From: siddh34 Date: Thu, 7 Aug 2025 00:59:35 +0530 Subject: [PATCH 12/33] [CortexFlow#117]: renaming fields of net_metrics --- core/src/components/metrics/src/main.rs | 8 ++++---- core/src/components/metrics/src/structs.rs | 4 ++-- .../metrics_tracer/src/data_structures.rs | 14 +++++++------- core/src/components/metrics_tracer/src/main.rs | 12 ++++++------ 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/core/src/components/metrics/src/main.rs b/core/src/components/metrics/src/main.rs index 2183549..9b1d79d 100644 --- a/core/src/components/metrics/src/main.rs +++ b/core/src/components/metrics/src/main.rs @@ -113,12 +113,12 @@ pub async fn display_metrics_map( let sk_err = net_metrics.sk_err; let sk_err_soft = net_metrics.sk_err_soft; let sk_backlog_len = net_metrics.sk_backlog_len; - let sk_wmem_queued = net_metrics.sk_wmem_queued; + let sk_write_memory_queued = net_metrics.sk_write_memory_queued; let sk_ack_backlog = net_metrics.sk_ack_backlog; - let sk_rcvbuf = net_metrics.sk_rcvbuf; + let sk_receive_buffer_size = net_metrics.sk_receive_buffer_size; info!( - "sk_drops: {}, sk_err: {}, sk_err_soft: {}, sk_backlog_len: {}, sk_wmem_queued: {}, sk_ack_backlog: {}, sk_rcvbuf: {}", - sk_drop_count, sk_err, sk_err_soft, sk_backlog_len, sk_wmem_queued, sk_ack_backlog, sk_rcvbuf + "sk_drops: {}, sk_err: {}, sk_err_soft: {}, sk_backlog_len: {}, sk_write_memory_queued: {}, sk_ack_backlog: {}, sk_receive_buffer_size: {}", + sk_drop_count, sk_err, sk_err_soft, sk_backlog_len, sk_write_memory_queued, sk_ack_backlog, sk_receive_buffer_size ); } } diff --git a/core/src/components/metrics/src/structs.rs b/core/src/components/metrics/src/structs.rs index b2189a0..164aa11 100644 --- a/core/src/components/metrics/src/structs.rs +++ b/core/src/components/metrics/src/structs.rs @@ -6,8 +6,8 @@ pub struct NetworkMetrics { pub sk_err: i32, // Offset 284 pub sk_err_soft: i32, // Offset 600 pub sk_backlog_len: i32, // Offset 196 - pub sk_wmem_queued: i32, // Offset 376 - pub sk_rcvbuf: i32, // Offset 244 + pub sk_write_memory_queued: i32, // Offset 376 + pub sk_receive_buffer_size: i32, // Offset 244 pub sk_ack_backlog: u32, // Offset 604 pub sk_drops: i32, // Offset 136 } \ No newline at end of file diff --git a/core/src/components/metrics_tracer/src/data_structures.rs b/core/src/components/metrics_tracer/src/data_structures.rs index 333ec33..5fd902a 100644 --- a/core/src/components/metrics_tracer/src/data_structures.rs +++ b/core/src/components/metrics_tracer/src/data_structures.rs @@ -2,13 +2,13 @@ use aya_ebpf::{macros::map, maps::{LruPerCpuHashMap, PerfEventArray}}; pub struct NetworkMetrics { - pub sk_err: i32, // Offset 284 - pub sk_err_soft: i32, // Offset 600 - pub sk_backlog_len: i32, // Offset 196 - pub sk_wmem_queued: i32, // Offset 376 - pub sk_rcvbuf: i32, // Offset 244 - pub sk_ack_backlog: u32, // Offset 604 - pub sk_drops: i32, // Offset 136 + pub sk_err: i32, // Offset 284 + pub sk_err_soft: i32, // Offset 600 + pub sk_backlog_len: i32, // Offset 196 + pub sk_write_memory_queued: i32,// Offset 376 + pub sk_receive_buffer_size: i32,// Offset 244 + pub sk_ack_backlog: u32, // Offset 604 + pub sk_drops: i32, // Offset 136 } #[map(name = "net_metrics")] diff --git a/core/src/components/metrics_tracer/src/main.rs b/core/src/components/metrics_tracer/src/main.rs index 35ab0ef..e3d297e 100644 --- a/core/src/components/metrics_tracer/src/main.rs +++ b/core/src/components/metrics_tracer/src/main.rs @@ -33,16 +33,16 @@ fn try_metrics_tracer(ctx: ProbeContext) -> Result { let sk_err_offset = 284; let sk_err_soft_offset = 600; let sk_backlog_len_offset = 196; - let sk_wmem_queued_offset = 376; - let sk_rcvbuf_offset = 244; + let sk_write_memory_queued_offset = 376; + let sk_receive_buffer_size_offset = 244; let sk_ack_backlog_offset = 604; let sk_drops_offset = 136; let sk_err = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_err_offset) as *const i32).map_err(|_| 1)? }; let sk_err_soft = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_err_soft_offset) as *const i32).map_err(|_| 1)? }; let sk_backlog_len = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_backlog_len_offset) as *const i32).map_err(|_| 1)? }; - let sk_wmem_queued = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_wmem_queued_offset) as *const i32).map_err(|_| 1)? }; - let sk_rcvbuf = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_rcvbuf_offset) as *const i32).map_err(|_| 1)? }; + let sk_write_memory_queued = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_wmem_queued_offset) as *const i32).map_err(|_| 1)? }; + let sk_receive_buffer_size = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_rcvbuf_offset) as *const i32).map_err(|_| 1)? }; let sk_ack_backlog = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_ack_backlog_offset) as *const u32).map_err(|_| 1)? }; let sk_drops = unsafe { bpf_probe_read_kernel::(sk_pointer.add(sk_drops_offset) as *const i32).map_err(|_| 1)? }; @@ -50,8 +50,8 @@ fn try_metrics_tracer(ctx: ProbeContext) -> Result { sk_err, sk_err_soft, sk_backlog_len, - sk_wmem_queued, - sk_rcvbuf, + sk_write_memory_queued, + sk_receive_buffer_size, sk_ack_backlog, sk_drops, }; From 5ef294913f7e6ea9fbd86a34cff273a2ee2220e3 Mon Sep 17 00:00:00 2001 From: siddh34 Date: Thu, 7 Aug 2025 01:18:16 +0530 Subject: [PATCH 13/33] [CortexFlow#117]: Move display events for metric tracer to helpers --- core/src/components/metrics/src/helpers.rs | 54 ++++++++++++++++++++++ core/src/components/metrics/src/main.rs | 44 ++---------------- core/src/testing/metrics.yaml | 2 +- 3 files changed, 59 insertions(+), 41 deletions(-) create mode 100644 core/src/components/metrics/src/helpers.rs diff --git a/core/src/components/metrics/src/helpers.rs b/core/src/components/metrics/src/helpers.rs new file mode 100644 index 0000000..6f80e75 --- /dev/null +++ b/core/src/components/metrics/src/helpers.rs @@ -0,0 +1,54 @@ +use aya::{ + maps::{ + MapData, + perf::{PerfEventArrayBuffer}, + } +}; + +use bytes::BytesMut; +use std::{ + sync::{ + atomic::{AtomicBool, Ordering}, + }, +}; + +use tracing::{error, info}; + +use crate::structs::NetworkMetrics; + +pub async fn display_metrics_map( + mut perf_buffers: Vec>, + running: AtomicBool, + mut buffers: Vec, +) { + while running.load(Ordering::SeqCst) { + for buf in perf_buffers.iter_mut() { + match buf.read_events(&mut buffers) { + std::result::Result::Ok(events) => { + for i in 0..events.read { + let data = &buffers[i]; + if data.len() >= std::mem::size_of::() { + let net_metrics: NetworkMetrics = + unsafe { std::ptr::read_unaligned(data.as_ptr() as *const _) }; + let sk_drop_count = net_metrics.sk_drops; + let sk_err = net_metrics.sk_err; + let sk_err_soft = net_metrics.sk_err_soft; + let sk_backlog_len = net_metrics.sk_backlog_len; + let sk_write_memory_queued = net_metrics.sk_write_memory_queued; + let sk_ack_backlog = net_metrics.sk_ack_backlog; + let sk_receive_buffer_size = net_metrics.sk_receive_buffer_size; + info!( + "sk_drops: {}, sk_err: {}, sk_err_soft: {}, sk_backlog_len: {}, sk_write_memory_queued: {}, sk_ack_backlog: {}, sk_receive_buffer_size: {}", + sk_drop_count, sk_err, sk_err_soft, sk_backlog_len, sk_write_memory_queued, sk_ack_backlog, sk_receive_buffer_size + ); + } + } + } + Err(e) => { + error!("Error reading events: {:?}", e); + } + } + } + tokio::time::sleep(std::time::Duration::from_millis(100)).await; + } +} diff --git a/core/src/components/metrics/src/main.rs b/core/src/components/metrics/src/main.rs index 9b1d79d..77913bd 100644 --- a/core/src/components/metrics/src/main.rs +++ b/core/src/components/metrics/src/main.rs @@ -14,7 +14,7 @@ use std::{ env, fs, path::Path, sync::{ - atomic::{AtomicBool, Ordering}, + atomic::{AtomicBool}, }, }; @@ -25,8 +25,10 @@ use tracing_subscriber::{EnvFilter, fmt::format::FmtSpan}; const BPF_PATH: &str = "BPF_PATH"; //BPF env path +mod helpers; +use crate::helpers::display_metrics_map; + mod structs; -use crate::structs::NetworkMetrics; #[tokio::main] async fn main() -> Result<(), anyhow::Error> { @@ -90,44 +92,6 @@ async fn main() -> Result<(), anyhow::Error> { display_metrics_map(net_perf_buffer, running, buffers).await; }); - signal::ctrl_c().await?; Ok(()) } - -pub async fn display_metrics_map( - mut perf_buffers: Vec>, - running: AtomicBool, - mut buffers: Vec, -) { - while running.load(Ordering::SeqCst) { - for buf in perf_buffers.iter_mut() { - match buf.read_events(&mut buffers) { - std::result::Result::Ok(events) => { - for i in 0..events.read { - let data = &buffers[i]; - if data.len() >= std::mem::size_of::() { - let net_metrics: NetworkMetrics = - unsafe { std::ptr::read_unaligned(data.as_ptr() as *const _) }; - let sk_drop_count = net_metrics.sk_drops; - let sk_err = net_metrics.sk_err; - let sk_err_soft = net_metrics.sk_err_soft; - let sk_backlog_len = net_metrics.sk_backlog_len; - let sk_write_memory_queued = net_metrics.sk_write_memory_queued; - let sk_ack_backlog = net_metrics.sk_ack_backlog; - let sk_receive_buffer_size = net_metrics.sk_receive_buffer_size; - info!( - "sk_drops: {}, sk_err: {}, sk_err_soft: {}, sk_backlog_len: {}, sk_write_memory_queued: {}, sk_ack_backlog: {}, sk_receive_buffer_size: {}", - sk_drop_count, sk_err, sk_err_soft, sk_backlog_len, sk_write_memory_queued, sk_ack_backlog, sk_receive_buffer_size - ); - } - } - } - Err(e) => { - error!("Error reading events: {:?}", e); - } - } - } - tokio::time::sleep(std::time::Duration::from_millis(100)).await; - } -} diff --git a/core/src/testing/metrics.yaml b/core/src/testing/metrics.yaml index 765f283..3f74c71 100644 --- a/core/src/testing/metrics.yaml +++ b/core/src/testing/metrics.yaml @@ -19,7 +19,7 @@ spec: hostNetwork: true containers: - name: metrics - image: metrics:0.0.1 + image: lorenzotettamanti/cortexflow-metrics:latest command: ["/bin/bash", "-c"] args: - | From 69868032d893661b8ca6c6851814e90ae47c6cfd Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Fri, 15 Aug 2025 16:34:14 +0200 Subject: [PATCH 14/33] [#123]: added appProtocol in agent manifest (agent.yaml) --- core/src/testing/agent.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/testing/agent.yaml b/core/src/testing/agent.yaml index 67a79c0..ea69790 100644 --- a/core/src/testing/agent.yaml +++ b/core/src/testing/agent.yaml @@ -87,5 +87,6 @@ spec: name: agent-server-port port: 9090 targetPort: 9090 + appProtocol: grpc type: NodePort --- From 465b7936bdb05b93283c2d4d29482fd5e5d4a02f Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Fri, 15 Aug 2025 16:38:32 +0200 Subject: [PATCH 15/33] [#123]: updated core/api cargo.toml --- core/api/Cargo.toml | 3 +++ core/api/src/lib.rs | 2 ++ 2 files changed, 5 insertions(+) create mode 100644 core/api/src/lib.rs diff --git a/core/api/Cargo.toml b/core/api/Cargo.toml index d25eb40..0552805 100644 --- a/core/api/Cargo.toml +++ b/core/api/Cargo.toml @@ -21,6 +21,9 @@ tracing-subscriber = "0.3.19" tonic-build = "0.14.0" tonic-prost-build = "0.14.0" +[lib] +name = "agent_api" +path = "src/lib.rs" [[bin]] name = "agent-api" diff --git a/core/api/src/lib.rs b/core/api/src/lib.rs new file mode 100644 index 0000000..2b7d4f6 --- /dev/null +++ b/core/api/src/lib.rs @@ -0,0 +1,2 @@ +pub mod api; +pub mod agent; \ No newline at end of file From 7292847b73706c2a2a3f477888f34e7926855b3c Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Fri, 15 Aug 2025 16:42:38 +0200 Subject: [PATCH 16/33] added new todos in cli/essentials.rs --- cli/src/essential.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cli/src/essential.rs b/cli/src/essential.rs index 914ab3b..6ff30d2 100644 --- a/cli/src/essential.rs +++ b/cli/src/essential.rs @@ -148,6 +148,7 @@ pub fn create_configs() -> MetadataConfigFile { }; configs } +//TODO: add here and explaination of what read_configs returns pub fn read_configs(config_path: PathBuf) -> String { let config = fs::File::open(config_path).unwrap(); let parsed_config: Result = @@ -205,6 +206,7 @@ pub fn create_config_file(config_struct: MetadataConfigFile) { ), } } +//TODO: add here an explanation of what are config_dir and file_path pub fn get_config_directory() -> Result<(PathBuf, PathBuf), ()> { let dirs = ProjectDirs::from("org", "cortexflow", "cfcli") .expect("Cannot determine the config directory"); @@ -222,3 +224,4 @@ pub fn get_startup_config_dir() -> bool { }) .unwrap_or(false) } +// TODO: add save to config function \ No newline at end of file From c27ac8f0135a558e570651109bea1ca08a9fabe7 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Sat, 16 Aug 2025 22:28:03 +0200 Subject: [PATCH 17/33] [#123]: added client.rs and requests.rs modules. client.rs contains all the functions to connect to the agent api client. requests.rs contains all the functions to send a request to the agent api server --- core/api/src/client.rs | 28 ++++++++++++++++++++++++++++ core/api/src/lib.rs | 4 +++- core/api/src/requests.rs | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 core/api/src/client.rs create mode 100644 core/api/src/requests.rs diff --git a/core/api/src/client.rs b/core/api/src/client.rs new file mode 100644 index 0000000..f5d30dc --- /dev/null +++ b/core/api/src/client.rs @@ -0,0 +1,28 @@ +use anyhow::Error; +use std::result::Result::Ok; +use tonic::{transport::Channel}; +use tonic_reflection::pb::v1::{ + server_reflection_client::ServerReflectionClient, +}; +use crate::agent::agent_client::AgentClient; + + + +pub async fn connect_to_client() -> Result, Error> { + //this methods force a HTTP/2 connection from a static string + //FIXME: this will require an update to ensure a protected connection + let channel = Channel::from_static("http://192.168.49.2:30092") + .connect() + .await?; + let client = AgentClient::new(channel); + Ok(client) +} + +pub async fn connect_to_server_reflection() -> Result, Error> { + //this methods force a HTTP/2 connection from a static string + let channel = Channel::from_static("http://192.168.49.2:30092") + .connect() + .await?; + let client = ServerReflectionClient::new(channel); + Ok(client) +} diff --git a/core/api/src/lib.rs b/core/api/src/lib.rs index 2b7d4f6..0b13fb6 100644 --- a/core/api/src/lib.rs +++ b/core/api/src/lib.rs @@ -1,2 +1,4 @@ pub mod api; -pub mod agent; \ No newline at end of file +pub mod agent; +pub mod client; +pub mod requests; \ No newline at end of file diff --git a/core/api/src/requests.rs b/core/api/src/requests.rs new file mode 100644 index 0000000..5a2da02 --- /dev/null +++ b/core/api/src/requests.rs @@ -0,0 +1,35 @@ +use anyhow::Error; +use std::result::Result::Ok; +use tonic::{Request, Response, Streaming, transport::Channel}; +use tonic_reflection::pb::v1::{ + ServerReflectionRequest, ServerReflectionResponse, + server_reflection_client::ServerReflectionClient, server_reflection_request::MessageRequest, +}; + +use crate::agent::agent_client::AgentClient; +use crate::agent::ActiveConnectionResponse; +use crate::agent::RequestActiveConnections; + +pub async fn send_active_connection_request( + mut client: AgentClient, +) -> Result, Error> { + let request = Request::new(RequestActiveConnections { pod_ip: None }); + let response = client.active_connections(request).await?; + Ok(response) +} + +pub async fn get_all_features( + mut client: ServerReflectionClient, +) -> Result>, Error> { + let request = ServerReflectionRequest { + host: "".to_string(), + message_request: Some(MessageRequest::FileContainingSymbol( + "agent.Agent".to_string(), + )), + }; + let response = client + .server_reflection_info(tokio_stream::iter(vec![request])) + .await?; + + Ok(response) +} From 9cd06bf3f264cbaa8397a94f9990eea90989e373 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 14:44:57 +0200 Subject: [PATCH 18/33] [#93]: updated agent.yaml and identity.yaml files. Added init container in identity.yaml. Added maps check in agent.yaml --- core/src/testing/agent.yaml | 3 +++ core/src/testing/identity.yaml | 48 ++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/core/src/testing/agent.yaml b/core/src/testing/agent.yaml index ea69790..cbb48ad 100644 --- a/core/src/testing/agent.yaml +++ b/core/src/testing/agent.yaml @@ -37,6 +37,9 @@ spec: echo "checking if conntracker path" ls -l /usr/src/cortexbrain-agent/conntracker + echo "checking if the bpf maps are reachable" + ls -l /sys/fs/bpf/maps + echo "Running application..." exec /usr/local/bin/agent-api || echo "Application exited with code $?" volumeMounts: diff --git a/core/src/testing/identity.yaml b/core/src/testing/identity.yaml index a8f1956..7c96ce1 100644 --- a/core/src/testing/identity.yaml +++ b/core/src/testing/identity.yaml @@ -17,6 +17,40 @@ spec: spec: hostPID: true hostNetwork: true + initContainers: + - name: bpf-map-permissions + image: ubuntu:24.04 + command: ["/bin/bash","-c"] + args: + - | + echo "mounting the bpf path " + mount -t bpf bpf /sys/fs/bpf + + echo "checking permissions" + ls -ld /sys/fs/bpf + + volumeMounts: + - name: bpf + mountPath: /sys/fs/bpf + mountPropagation: Bidirectional + readOnly: false + - name: proc + mountPath: /host/proc + readOnly: false + - name: kernel-dev + mountPath: /lib/modules + readOnly: false + securityContext: + runAsUser: 0 + privileged: true + allowPrivilegeEscalation: true + capabilities: + add: + - SYS_ADMIN + - NET_ADMIN + - SYS_RESOURCE + - BPF + - SYS_PTRACE containers: - name: identity image: lorenzotettamanti/cortexflow-identity:latest @@ -36,6 +70,13 @@ spec: echo "Running application..." exec /usr/local/bin/cortexflow-identity-service || echo "Application exited with code $?" + resources: + limits: + cpu: "1" + memory: "200Mi" + requests: + cpu: "1" + memory: "100Mi" volumeMounts: - name: bpf mountPath: /sys/fs/bpf @@ -71,6 +112,13 @@ spec: - name: kernel-dev mountPath: /lib/modules readOnly: false + resources: + limits: + cpu: "1" + memory: "200Mi" + requests: + cpu: "1" + memory: "100Mi" securityContext: privileged: true allowPrivilegeEscalation: true From 16ce7a68ff92092b2b1c57ffae6d35b63621ae58 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 14:46:46 +0200 Subject: [PATCH 19/33] [#92]: updated structures in identity crate. Added Pod trait --- core/src/components/identity/src/structs.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/src/components/identity/src/structs.rs b/core/src/components/identity/src/structs.rs index e80dff4..ae9c6db 100644 --- a/core/src/components/identity/src/structs.rs +++ b/core/src/components/identity/src/structs.rs @@ -1,23 +1,26 @@ +use bytemuck_derive::Zeroable; + /* * Structure PacketLog * This structure is used to store the packet information */ #[repr(C)] -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Zeroable)] pub struct PacketLog { pub proto: u8, pub src_ip: u32, pub src_port: u16, pub dst_ip: u32, pub dst_port: u16, - pub event_id: u16, - pub pid : u32 + pub pid: u32, } +unsafe impl aya::Pod for PacketLog {} + /* * Connection Array that contains the hash_id associated with an active connection */ #[repr(C)] -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Zeroable)] pub struct ConnArray { pub src_ip: u32, pub dst_ip: u32, From 56a5d28edfdb4394a89e5cbe62996e0acf6a4de4 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 14:47:52 +0200 Subject: [PATCH 20/33] [#92]: fixed typos during error handling in identity/main.rs --- core/src/components/identity/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/components/identity/src/main.rs b/core/src/components/identity/src/main.rs index c32bf5d..a4fa1c1 100644 --- a/core/src/components/identity/src/main.rs +++ b/core/src/components/identity/src/main.rs @@ -77,7 +77,7 @@ async fn main() -> Result<(), anyhow::Error> { //init bpf data let bpf = Arc::new(Mutex::new(Bpf::load(&data)?)); let bpf_map_save_path = - std::env::var(PIN_MAP_PATH).context("BPF_PATH environment variable required")?; + std::env::var(PIN_MAP_PATH).context("PIN_MAP_PATH environment variable required")?; match init_bpf_maps(bpf.clone()) { std::result::Result::Ok(bpf_maps) => { From a83851de552f90196a05d6342f7bffbd6773e42f Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 14:51:13 +0200 Subject: [PATCH 21/33] [#92]: updated identity/helpers.rs and identity/map_handlers.rs. Updated map_pinner function --- core/src/components/identity/src/helpers.rs | 8 ++++---- .../src/components/identity/src/map_handlers.rs | 17 ++++++++++------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/core/src/components/identity/src/helpers.rs b/core/src/components/identity/src/helpers.rs index d3118ef..102df17 100644 --- a/core/src/components/identity/src/helpers.rs +++ b/core/src/components/identity/src/helpers.rs @@ -1,17 +1,16 @@ +#![allow(warnings)] use crate::enums::IpProtocols; use crate::structs::{PacketLog, VethLog}; use aya::programs::tc::SchedClassifierLinkId; use aya::{ Bpf, - maps::{ - MapData, - perf::{PerfEventArrayBuffer}, - }, + maps::{MapData, perf::PerfEventArrayBuffer}, programs::{SchedClassifier, TcAttachType}, }; use bytes::BytesMut; use nix::net::if_::if_nameindex; use std::collections::HashMap; +use std::result::Result::Ok; use std::sync::Mutex; use std::{ borrow::BorrowMut, @@ -46,6 +45,7 @@ impl TryFrom for IpProtocols { } } +/* helper functions to read and log net events in the container */ pub async fn display_events>( mut perf_buffers: Vec>, running: Arc, diff --git a/core/src/components/identity/src/map_handlers.rs b/core/src/components/identity/src/map_handlers.rs index 4656aeb..c0adb41 100644 --- a/core/src/components/identity/src/map_handlers.rs +++ b/core/src/components/identity/src/map_handlers.rs @@ -6,7 +6,7 @@ use std::path::PathBuf; use std::sync::Arc; use std::sync::Mutex; use tokio::fs; -use tracing::error; +use tracing::info; pub fn init_bpf_maps(bpf: Arc>) -> Result<(Map, Map), anyhow::Error> { // this function init the bpfs maps used in the main program @@ -42,20 +42,23 @@ pub fn init_bpf_maps(bpf: Arc>) -> Result<(Map, Map), anyhow::Error> //TODO: save bpf maps path in the cli metadata //takes an array of bpf maps and pin them to persiste session data //TODO: change maps type with a Vec instead of (Map,Map). This method is only for fast development and it's not optimized -//TODO: chmod 700 to setup the permissions to pin maps TODO:add this permission in the CLI //TODO: add bpf mounts during cli installation pub async fn map_pinner(maps: &(Map, Map), path: &PathBuf) -> Result<(), Error> { - //FIXME: add exception for already pinned maps + // check if the map exists if !path.exists() { - error!("Pin path {:?} does not exist. Creating it...", path); - let _ = fs::create_dir_all(path) - .await - .map_err(|e| error!("Failed to create directory: {}", e)); + info!("Pin path {:?} does not exist. Creating it...", path); + fs::create_dir_all(&path).await?; + #[cfg(unix)] + { + use std::os::unix::fs::PermissionsExt; + fs::set_permissions(&path, std::fs::Permissions::from_mode(0o755)).await?; + } } let map1_path = path.join("events_map"); let map2_path = path.join("veth_map"); + // maps pinning maps.0.pin(&map1_path)?; maps.1.pin(&map2_path)?; From eedccedb49465ba1f32c0e0087ce44dade5cb90b Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 14:53:38 +0200 Subject: [PATCH 22/33] [#123]: updated agent protobuffer config. Added simple map field in ActiveConnectionResponse --- core/api/protos/agent.proto | 4 ++++ core/api/src/agent.rs | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/api/protos/agent.proto b/core/api/protos/agent.proto index f88dd33..dff6026 100644 --- a/core/api/protos/agent.proto +++ b/core/api/protos/agent.proto @@ -4,8 +4,12 @@ package agent; message RequestActiveConnections{ optional string pod_ip = 2 ; } +// TODO: the complete Response will be able to return all the context below +//* "Event Id: {} Protocol: {:?} SRC: {}:{} -> DST: {}:{}", +//* event_id, proto, src, src_port, dst, dst_port message ActiveConnectionResponse{ string status = 1; + map events = 2 ; //for simplicity right now we only return event_id and src } //declare agent api diff --git a/core/api/src/agent.rs b/core/api/src/agent.rs index 9a8b17b..bdf3e72 100644 --- a/core/api/src/agent.rs +++ b/core/api/src/agent.rs @@ -4,10 +4,20 @@ pub struct RequestActiveConnections { #[prost(string, optional, tag = "2")] pub pod_ip: ::core::option::Option<::prost::alloc::string::String>, } -#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +/// TODO: the complete Response will be able to return all the context below +/// +/// * "Event Id: {} Protocol: {:?} SRC: {}:{} -> DST: {}:{}", +/// * event_id, proto, src, src_port, dst, dst_port +#[derive(Clone, PartialEq, ::prost::Message)] pub struct ActiveConnectionResponse { #[prost(string, tag = "1")] pub status: ::prost::alloc::string::String, + /// for simplicity right now we only return event_id and src + #[prost(map = "string, string", tag = "2")] + pub events: ::std::collections::HashMap< + ::prost::alloc::string::String, + ::prost::alloc::string::String, + >, } /// Generated client implementations. pub mod agent_client { From 689a206b555bbf12c3a70301bb463cbe8fcb348d Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 14:54:14 +0200 Subject: [PATCH 23/33] [#92]: updated identity dockerfile. changed PIN_MAP_PATH env variable --- core/src/components/identity/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/components/identity/Dockerfile b/core/src/components/identity/Dockerfile index 0dc89ef..ba65ec0 100644 --- a/core/src/components/identity/Dockerfile +++ b/core/src/components/identity/Dockerfile @@ -30,7 +30,7 @@ COPY conntracker /usr/src/cortexbrain-identity-service/conntracker # Set environment variable ENV BPF_PATH="/usr/src/cortexbrain-identity-service/conntracker" -ENV PIN_MAP_PATH="/sys/fs/bpf/cortexbrain-identity-service/" +ENV PIN_MAP_PATH="/sys/fs/bpf/maps" # Default command CMD ["cortexflow-identity-service"] From eaeb2970ec7106e6246c54c04aa2a78163f0fff6 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 14:56:34 +0200 Subject: [PATCH 24/33] [#92]: updated data_structures.rs in conntracker. added 'pinning = "by name"' feature --- core/src/components/conntracker/src/data_structures.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/src/components/conntracker/src/data_structures.rs b/core/src/components/conntracker/src/data_structures.rs index b1692aa..65d2ce3 100644 --- a/core/src/components/conntracker/src/data_structures.rs +++ b/core/src/components/conntracker/src/data_structures.rs @@ -1,4 +1,7 @@ -use aya_ebpf::{macros::map, maps::{LruPerCpuHashMap, PerfEventArray}}; +use aya_ebpf::{ + macros::map, + maps::{LruPerCpuHashMap, PerfEventArray}, +}; #[repr(C)] #[derive(Clone, Copy)] @@ -34,7 +37,7 @@ pub struct VethLog { } -#[map(name = "EventsMap")] +#[map(name = "EventsMap", pinning = "by_name")] pub static mut EVENTS: PerfEventArray = PerfEventArray::new(0); //TODO: ConnectionMap needs a rework after implementing issue #105 From aec2b6ed9dab8b39d244dfe1df5b7c067927dc05 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 15:22:05 +0200 Subject: [PATCH 25/33] [#92]: updated identity dependencies --- core/src/components/identity/Cargo.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/components/identity/Cargo.toml b/core/src/components/identity/Cargo.toml index 1c93f88..ea05ad9 100644 --- a/core/src/components/identity/Cargo.toml +++ b/core/src/components/identity/Cargo.toml @@ -12,6 +12,7 @@ anyhow = "1.0" tracing = "0.1.41" tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } libc = "0.2.172" -bytemuck = "1.23.0" -nix ={version="0.30.1",features=["net"]} +bytemuck = {version ="1.23.0",features = ["derive"]} +bytemuck_derive = "1.10.1" +nix = { version = "0.30.1", features = ["net"] } From 7eee5057090011503f29673bde32a0adb8dd5ed5 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 15:25:05 +0200 Subject: [PATCH 26/33] [#123]: updated agent api. Added mpsc architecture to send the data from the agent to the cli using tokio::mpsc. Updated dependencies --- core/api/Cargo.toml | 4 +- core/api/src/api.rs | 214 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 175 insertions(+), 43 deletions(-) diff --git a/core/api/Cargo.toml b/core/api/Cargo.toml index 0552805..7c86907 100644 --- a/core/api/Cargo.toml +++ b/core/api/Cargo.toml @@ -14,8 +14,10 @@ aya = "0.13.1" identity = { path = "../src/components/identity" } tonic-reflection = "0.14.0" tonic-build = "0.14.0" -dotenv = "0.15.0" tracing-subscriber = "0.3.19" +tokio-stream = "0.1.17" +bytemuck = {version ="1.23.0"} +bytemuck_derive = "1.10.1" [build-dependencies] tonic-build = "0.14.0" diff --git a/core/api/src/api.rs b/core/api/src/api.rs index ab46874..322b0e4 100644 --- a/core/api/src/api.rs +++ b/core/api/src/api.rs @@ -1,31 +1,69 @@ #![allow(warnings)] -use anyhow::Context; use prost::bytes::BytesMut; -use std::{ - collections::HashMap, - fs, string, - sync::{atomic::AtomicBool, Arc, Mutex}, -}; +use std::sync::Mutex; use tonic::{Request, Response, Status}; +use tracing::info; use aya::{ - maps::{perf::PerfEventArrayBuffer, Map, MapData, PerfEventArray}, + maps::{MapData, PerfEventArray}, util::online_cpus, - Bpf, }; -use identity::helpers::display_events; -use identity::map_handlers::init_bpf_maps; -use std::path::Path; use std::result::Result::Ok; use tonic::async_trait; +use std::collections::HashMap; +use tokio::sync::mpsc; +use tokio::task; + // * contains agent api configuration use crate::agent::{agent_server::Agent, ActiveConnectionResponse, RequestActiveConnections}; +use aya::maps::Map; +use bytemuck_derive::Zeroable; +use identity::enums::IpProtocols; +use std::net::Ipv4Addr; +use tracing::warn; + +#[repr(C)] +#[derive(Clone, Copy, Zeroable)] +pub struct PacketLog { + pub proto: u8, + pub src_ip: u32, + pub src_port: u16, + pub dst_ip: u32, + pub dst_port: u16, + pub pid: u32, +} +unsafe impl aya::Pod for PacketLog {} -#[derive(Debug)] pub struct AgentApi { - name: String, - bpf: Arc>, + //* event_rx is an istance of a mpsc receiver. + //* is used to receive the data from the transmitter (tx) + event_rx: Mutex, Status>>>, + event_tx: mpsc::Sender, Status>>, +} + +//* Event sender trait. Takes an event from a map and send that to the mpsc channel +//* using the send_map function +#[async_trait] +pub trait EventSender: Send + Sync + 'static { + async fn send_event(&self, event: HashMap); + async fn send_map( + &self, + map: HashMap, + tx: mpsc::Sender, Status>>, + ) { + let status = Status::new(tonic::Code::Ok, "success"); + let event = Ok(map); + + let _ = tx.send(event).await; + } +} +// send event function. takes an HashMap and send that using mpsc event_tx +#[async_trait] +impl EventSender for AgentApi { + async fn send_event(&self, event: HashMap) { + self.send_map(event, self.event_tx.clone()).await; + } } const BPF_PATH: &str = "BPF_PATH"; @@ -33,20 +71,119 @@ const BPF_PATH: &str = "BPF_PATH"; //initialize a default trait for AgentApi. Loads a name and a bpf istance. //this trait is essential for init the Agent. impl Default for AgentApi { + //TODO:this part needs a better error handling fn default() -> Self { - let bpf_path = std::env::var(BPF_PATH).context("BPF_PATH variable not found").unwrap(); - let data = fs::read(Path::new(&bpf_path)).context("Cannot load data from path").unwrap(); + // load maps mapdata + let mapdata = MapData::from_pin("/sys/fs/bpf/maps/events_map") + .expect("cannot open events_map Mapdata"); + let map = Map::PerfEventArray(mapdata); //creates a PerfEventArray from the mapdata - AgentApi { - name: "CortexFlow-Agent".to_string(), - bpf: Arc::new(Mutex::new(Bpf::load(&data).unwrap())), - } + //init a mpsc channel + let (tx, rx) = mpsc::channel(1024); + let api = AgentApi { + event_rx: rx.into(), + event_tx: tx.clone(), + }; + + let mut events_array = + PerfEventArray::try_from(map).expect("Error while initializing events array"); + + //spawn an event reader + task::spawn(async move { + let mut net_events_buffer = Vec::new(); + //scan the cpus to read the data + + for cpu_id in online_cpus() + .map_err(|e| anyhow::anyhow!("Error {:?}", e)) + .unwrap() + { + let buf = events_array + .open(cpu_id, None) + .expect("Error during the creation of net_events_buf structure"); + + let buffers = vec![BytesMut::with_capacity(4096); 8]; + net_events_buffer.push((buf, buffers)); + } + + info!("Starting event listener"); + //send the data through a mpsc channel + loop { + for (buf, buffers) in net_events_buffer.iter_mut() { + match buf.read_events(buffers) { + Ok(events) => { + //read the events, this function is similar to the one used in identity/helpers.rs/display_events + if events.read > 0 { + for i in 0..events.read { + let data = &buffers[i]; + if data.len() >= std::mem::size_of::() { + let pl: PacketLog = + unsafe { std::ptr::read(data.as_ptr() as *const _) }; + let src = Ipv4Addr::from(u32::from_be(pl.src_ip)); + let dst = Ipv4Addr::from(u32::from_be(pl.dst_ip)); + let src_port = u16::from_be(pl.src_port as u16); + let dst_port = u16::from_be(pl.dst_port as u16); + let event_id = pl.pid; + + match IpProtocols::try_from(pl.proto) { + Ok(proto) => { + info!( + "Event Id: {} Protocol: {:?} SRC: {}:{} -> DST: {}:{}", + event_id, proto, src, src_port, dst, dst_port + ); + info!("creating hashmap for the aggregated data"); + let mut evt = HashMap::new(); + // insert event in the hashmap + info!("Inserting events into the hashmap"); + //TODO: use a Arc or Box type instead of String type. + //The data doesn't need to implement any .copy() or .clone() trait + // using an Arc type will also waste less resources + evt.insert( + format!("{:?}", event_id.to_string()), + format!("{:?}", src.to_string()), + ); + info!("sending events to the MPSC channel"); + let _ = tx.send(Ok(evt)).await; + } + Err(_) => { + info!( + "Event Id: {} Protocol: Unknown ({})", + event_id, pl.proto + ); + } + }; + } else { + warn!( + "Received packet data too small: {} bytes", + data.len() + ); + } + } + } else if events.read == 0 { + info!("[Agent/API] 0 Events found"); + let mut evt = HashMap::new(); + evt.insert("0".to_string(), "0".to_string()); + let _ = tx.send(Ok(evt)).await; + } + } + Err(e) => { + eprintln!("Errore nella lettura eventi: {}", e); + tokio::time::sleep(tokio::time::Duration::from_millis(100)).await; + } + } + } + // small delay to avoid cpu congestion + tokio::time::sleep(tokio::time::Duration::from_millis(100)).await; + } + }); + + api } } -//TODO: implement a trait that inizialize init_bpf_maps function #[async_trait] impl Agent for AgentApi { + // * read the incoming active_connections requests and returns a response with the + // * active connections. The data are transformed and sent to the api with a mpsc channel async fn active_connections( &self, request: Request, @@ -54,33 +191,26 @@ impl Agent for AgentApi { //read request let req = request.into_inner(); - //initialize maps: - let bpf_maps = init_bpf_maps(Arc::clone(&self.bpf)).unwrap(); - - let mut net_events_buffer = Vec::new(); + //create the hashmap to process events from the mpsc channel queue + let mut aggregated_events: HashMap = HashMap::new(); - //maps are enumerated 0: events map 1: veth events map - let mut events_array = PerfEventArray::try_from(bpf_maps.0).unwrap(); - - //scan the cpus - for cpu_id in online_cpus() - .map_err(|e| anyhow::anyhow!("Error {:?}", e)) - .unwrap() - { - let net_events_buf: PerfEventArrayBuffer = - events_array.open(cpu_id, None).unwrap(); - net_events_buffer.push(net_events_buf); + //aggregate events + while let Ok(evt) = self.event_rx.lock().unwrap().try_recv() { + if let Ok(map) = evt { + aggregated_events.extend(map); + } } - let mut events_buffers = vec![BytesMut::with_capacity(1024); online_cpus().iter().len()]; - - let running = Arc::new(AtomicBool::new(true)); - display_events(net_events_buffer, running, events_buffers); + //log response for debugging + info!( + "DEBUGGING RESPONSE FROM ACTIVE CONNECTION REQUEST: {:?}", + aggregated_events + ); + //return response Ok(Response::new(ActiveConnectionResponse { status: "success".to_string(), + events: aggregated_events, })) } } - -//TODO: add server inizialization From 44c2903b1040c005e47eec68ac790906939a992c Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 15:27:20 +0200 Subject: [PATCH 27/33] updated core cargo.lock --- core/Cargo.lock | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/core/Cargo.lock b/core/Cargo.lock index 4792d3b..e143b23 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -44,16 +44,19 @@ version = "0.1.0" dependencies = [ "anyhow", "aya", - "dotenv", + "bytemuck", + "bytemuck_derive", "identity", "prost", "tokio", + "tokio-stream", "tonic", "tonic-build", "tonic-prost", "tonic-prost-build", "tonic-reflection", "tracing", + "tracing-subscriber", ] [[package]] @@ -287,9 +290,23 @@ checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "bytemuck" -version = "1.23.1" +version = "1.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] name = "bytes" @@ -336,12 +353,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" - [[package]] name = "either" version = "1.15.0" @@ -596,6 +607,7 @@ dependencies = [ "aya", "aya-log", "bytemuck", + "bytemuck_derive", "bytes", "libc", "nix", From 98790297bf17687185ec892d036dd979e8f64f87 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 15:31:13 +0200 Subject: [PATCH 28/33] [#123]: added monitoring commands in the cli. commands added: cfcli monitoring list, cfcli monitoring connections --- cli/Cargo.lock | 1376 +++++++++++++++++++++++++++++++++++++++-- cli/Cargo.toml | 10 +- cli/src/main.rs | 70 ++- cli/src/mod.rs | 3 +- cli/src/monitoring.rs | 105 ++++ 5 files changed, 1495 insertions(+), 69 deletions(-) create mode 100644 cli/src/monitoring.rs diff --git a/cli/Cargo.lock b/cli/Cargo.lock index 7141d32..47db442 100644 --- a/cli/Cargo.lock +++ b/cli/Cargo.lock @@ -2,6 +2,36 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "anstream" version = "0.6.19" @@ -52,18 +82,227 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "anyhow" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" + +[[package]] +name = "api" +version = "0.1.0" +dependencies = [ + "anyhow", + "aya", + "bytemuck", + "bytemuck_derive", + "identity", + "prost", + "tokio", + "tokio-stream", + "tonic", + "tonic-build", + "tonic-prost", + "tonic-prost-build", + "tonic-reflection", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "axum" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" +dependencies = [ + "axum-core", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", +] + +[[package]] +name = "aya" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d18bc4e506fbb85ab7392ed993a7db4d1a452c71b75a246af4a80ab8c9d2dd50" +dependencies = [ + "assert_matches", + "aya-obj", + "bitflags", + "bytes", + "libc", + "log", + "object", + "once_cell", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "aya-log" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b600d806c1d07d3b81ab5f4a2a95fd80f479a0d3f1d68f29064d660865f85f02" +dependencies = [ + "aya", + "aya-log-common", + "bytes", + "log", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "aya-log-common" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "befef9fe882e63164a2ba0161874e954648a72b0e1c4b361f532d590638c4eec" +dependencies = [ + "num_enum", +] + +[[package]] +name = "aya-obj" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c51b96c5a8ed8705b40d655273bc4212cbbf38d4e3be2788f36306f154523ec7" +dependencies = [ + "bytes", + "core-error", + "hashbrown", + "log", + "object", + "thiserror 1.0.69", +] + +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "bitflags" version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +[[package]] +name = "bytemuck" +version = "1.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + [[package]] name = "cfg-if" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "clap" version = "4.5.41" @@ -119,18 +358,44 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "core-error" +version = "0.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efcdb2972eb64230b4c50646d8498ff73f5128d196a90c7236eec4cbe8619b8f" +dependencies = [ + "version_check", +] + [[package]] name = "cortexflow-cli" version = "0.1.2" dependencies = [ + "anyhow", + "api", "clap", "colored", "directories", + "prost", + "prost-types", "serde", "serde_yaml", + "tokio", + "tokio-stream", + "tonic", + "tonic-reflection", "tracing", ] +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + [[package]] name = "directories" version = "6.0.0" @@ -152,12 +417,91 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + [[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "errno" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "pin-utils", +] + [[package]] name = "getrandom" version = "0.2.16" @@ -166,7 +510,44 @@ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "h2" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", ] [[package]] @@ -174,6 +555,11 @@ name = "hashbrown" version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] name = "heck" @@ -182,95 +568,618 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] -name = "indexmap" -version = "2.10.0" +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "libc", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "identity" +version = "0.1.0" +dependencies = [ + "anyhow", + "aya", + "aya-log", + "bytemuck", + "bytemuck_derive", + "bytes", + "libc", + "nix", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "indexmap" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "io-uring" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +dependencies = [ + "bitflags", + "cfg-if", + "libc", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.174" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" + +[[package]] +name = "libredox" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + +[[package]] +name = "lock_api" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + +[[package]] +name = "memchr" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", +] + +[[package]] +name = "multimap" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" + +[[package]] +name = "nix" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" +dependencies = [ + "bitflags", + "cfg-if", + "cfg_aliases", + "libc", + "memoffset", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num_enum" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "crc32fast", + "hashbrown", + "indexmap", + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parking_lot" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "prettyplease" +version = "0.2.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" +dependencies = [ + "heck", + "itertools", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "pulldown-cmark", + "pulldown-cmark-to-cmark", + "regex", + "syn", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "prost-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" +dependencies = [ + "prost", +] + +[[package]] +name = "pulldown-cmark" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" +dependencies = [ + "bitflags", + "memchr", + "unicase", +] + +[[package]] +name = "pulldown-cmark-to-cmark" +version = "21.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5b6a0769a491a08b31ea5c62494a8f144ee0987d86d670a8af4df1e1b7cde75" +dependencies = [ + "pulldown-cmark", +] + +[[package]] +name = "quote" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ - "equivalent", - "hashbrown", + "proc-macro2", ] [[package]] -name = "is_terminal_polyfill" -version = "1.70.1" +name = "r-efi" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] -name = "itoa" -version = "1.0.15" +name = "redox_syscall" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +dependencies = [ + "bitflags", +] [[package]] -name = "libc" -version = "0.2.174" +name = "redox_users" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +dependencies = [ + "getrandom 0.2.16", + "libredox", + "thiserror 2.0.12", +] [[package]] -name = "libredox" -version = "0.1.4" +name = "regex" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ - "bitflags", - "libc", + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] -name = "once_cell" -version = "1.21.3" +name = "regex-automata" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] [[package]] -name = "once_cell_polyfill" -version = "1.70.1" +name = "regex-automata" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] [[package]] -name = "option-ext" -version = "0.2.0" +name = "regex-syntax" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] -name = "pin-project-lite" -version = "0.2.16" +name = "regex-syntax" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] -name = "proc-macro2" -version = "1.0.95" +name = "rustc-demangle" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" -dependencies = [ - "unicode-ident", -] +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" [[package]] -name = "quote" -version = "1.0.40" +name = "rustix" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "proc-macro2", + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.60.2", ] [[package]] -name = "redox_users" -version = "0.5.0" +name = "rustversion" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" -dependencies = [ - "getrandom", - "libredox", - "thiserror", -] +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" @@ -278,6 +1187,12 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "serde" version = "1.0.219" @@ -311,6 +1226,46 @@ dependencies = [ "unsafe-libyaml", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "strsim" version = "0.11.1" @@ -328,13 +1283,52 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" + +[[package]] +name = "tempfile" +version = "3.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +dependencies = [ + "fastrand", + "getrandom 0.3.3", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + [[package]] name = "thiserror" version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -348,6 +1342,183 @@ dependencies = [ "syn", ] +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "tokio" +version = "1.47.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" +dependencies = [ + "backtrace", + "bytes", + "io-uring", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "slab", + "socket2", + "tokio-macros", + "windows-sys 0.59.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tonic" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ac5a8627ada0968acec063a4746bf79588aa03ccb66db2f75d7dce26722a40" +dependencies = [ + "async-trait", + "axum", + "base64", + "bytes", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "socket2", + "sync_wrapper", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49e323d8bba3be30833707e36d046deabf10a35ae8ad3cae576943ea8933e25d" +dependencies = [ + "prettyplease", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tonic-prost" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9c511b9a96d40cb12b7d5d00464446acf3b9105fd3ce25437cfe41c92b1c87d" +dependencies = [ + "bytes", + "prost", + "tonic", +] + +[[package]] +name = "tonic-prost-build" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ef298fcd01b15e135440c4b8c974460ceca4e6a5af7f1c933b08e4d2875efa1" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn", + "tempfile", + "tonic-build", +] + +[[package]] +name = "tonic-reflection" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0267a0073385cd94996197d12acb1856a3a0a2367482c726a48a769f6fed8a3a" +dependencies = [ + "prost", + "prost-types", + "tokio", + "tokio-stream", + "tonic", + "tonic-prost", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "indexmap", + "pin-project-lite", + "slab", + "sync_wrapper", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + [[package]] name = "tracing" version = "0.1.41" @@ -377,8 +1548,50 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", ] +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + [[package]] name = "unicode-ident" version = "1.0.18" @@ -397,12 +1610,64 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-sys" version = "0.59.0" @@ -548,3 +1813,12 @@ name = "windows_x86_64_msvc" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] diff --git a/cli/Cargo.toml b/cli/Cargo.toml index f378e18..069b9e6 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -13,9 +13,17 @@ license = "Apache-2.0" clap = { version = "4.5.38", features = ["derive"] } colored = "3.0.0" directories = "6.0.0" -serde = {version = "1.0.219",features = ["derive"]} +serde = { version = "1.0.219", features = ["derive"] } serde_yaml = "0.9.34" tracing = "0.1.41" +tokio = "1.47.0" +anyhow = "1.0.98" +api = { path = "../core/api" } +tonic = "0.14.1" +tonic-reflection = "0.14.1" +tokio-stream = "0.1.17" +prost-types = "0.14.1" +prost = "0.14.1" [[bin]] name = "cfcli" diff --git a/cli/src/main.rs b/cli/src/main.rs index 83a8194..2a28d50 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -1,31 +1,32 @@ -//TODO: add a identity-monitor module //TODO: add an example with test pods during installation mod essential; mod install; mod logs; +mod monitoring; mod service; mod status; mod uninstall; - use clap::command; use clap::{Args, Error, Parser, Subcommand}; -use tracing::debug; use colored::Colorize; -use std::time::Duration; +use std::result::Result::Ok; use std::thread; +use std::time::Duration; +use tracing::debug; - -use crate::essential::{get_config_directory,get_startup_config_dir, info, read_configs, update_cli}; +use crate::essential::{ + get_config_directory, get_startup_config_dir, info, read_configs, update_cli, +}; use crate::install::install_cortexflow; use crate::logs::logs_command; +use crate::monitoring::{list_features, monitor_identity_events}; use crate::service::{describe_service, list_services}; use crate::status::status_command; use crate::uninstall::uninstall; use crate::essential::GeneralData; - #[derive(Parser, Debug)] #[command( author = GeneralData::AUTHOR, @@ -60,6 +61,8 @@ enum Commands { Status(StatusArgs), #[command(name = "logs")] Logs(LogsArgs), + #[command(name = "monitoring")] + Monitor(MonitorArgs), } #[derive(Args, Debug, Clone)] struct SetArgs { @@ -72,6 +75,22 @@ struct ServiceArgs { service_cmd: ServiceCommands, } +// cfcli monitor +#[derive(Args, Debug, Clone)] +struct MonitorArgs { + #[command(subcommand)] + monitor_cmd: MonitorCommands, +} + +//monitoring subcommands +#[derive(Subcommand, Debug, Clone)] +enum MonitorCommands { + #[command(name = "list")] + List, + #[command(name = "connections")] + Connections, +} + #[derive(Subcommand, Debug, Clone)] enum ServiceCommands { #[command(name = "list")] @@ -105,22 +124,30 @@ struct LogsArgs { namespace: Option, } -fn args_parser() -> Result<(), Error> { +async fn args_parser() -> Result<(), Error> { let args = Cli::parse(); //get the environment from the config file metadata let config_dir = get_startup_config_dir(); - - if !config_dir{ - eprintln!("{} {}","[SYSTEM]".blue().bold(),"Config files not found. Please proceed with the installation"); + + if !config_dir { + eprintln!( + "{} {}", + "[SYSTEM]".blue().bold(), + "Config files not found. Please proceed with the installation" + ); install_cortexflow(); Ok(()) } else { thread::sleep(Duration::from_secs(1)); - println!("{} {}","[SYSTEM]".blue().bold(),"Founded config files".white()); - let config_file_path=get_config_directory(); - let file_path= config_file_path.unwrap().1; + println!( + "{} {}", + "[SYSTEM]".blue().bold(), + "Founded config files".white() + ); + let config_file_path = get_config_directory(); + let file_path = config_file_path.unwrap().1; let env = read_configs(file_path.to_path_buf()); let general_data = GeneralData::new(env); debug!("Arguments {:?}", args.cmd); @@ -170,6 +197,16 @@ fn args_parser() -> Result<(), Error> { logs_command(logs_args.service, logs_args.component, logs_args.namespace); Ok(()) } + Some(Commands::Monitor(monitor_args)) => match monitor_args.monitor_cmd { + MonitorCommands::List => { + let _ = list_features().await; + Ok(()) + } + MonitorCommands::Connections => { + let _ = monitor_identity_events().await; + Ok(()) + }, + }, None => { eprintln!("CLI unknown argument. Cli arguments passed: {:?}", args.cmd); Ok(()) @@ -178,6 +215,7 @@ fn args_parser() -> Result<(), Error> { } } -fn main() { - let _ = args_parser(); +#[tokio::main] +async fn main() { + let _ = args_parser().await; } diff --git a/cli/src/mod.rs b/cli/src/mod.rs index 61d875e..a4d96ac 100644 --- a/cli/src/mod.rs +++ b/cli/src/mod.rs @@ -3,4 +3,5 @@ pub mod install; pub mod uninstall; pub mod service; pub mod status; -pub mod logs; \ No newline at end of file +pub mod logs; +pub mod monitoring; \ No newline at end of file diff --git a/cli/src/monitoring.rs b/cli/src/monitoring.rs new file mode 100644 index 0000000..e673c0f --- /dev/null +++ b/cli/src/monitoring.rs @@ -0,0 +1,105 @@ +#![allow(warnings)] + +//monitoring CLI function for identity service +use anyhow::Error; +use colored::Colorize; +use prost::Message; +use prost_types::FileDescriptorProto; +use std::result::Result::Ok; +use tonic_reflection::pb::v1::{ + server_reflection_response::MessageResponse, +}; + +use agent_api::client::{connect_to_client, connect_to_server_reflection}; +use agent_api::requests::{get_all_features, send_active_connection_request}; + +pub async fn list_features() -> Result<(), Error> { + match connect_to_server_reflection().await { + Ok(client) => { + println!( + "{} {}", + "=====>".blue().bold(), + "Connected to CortexFlow Server Reflection".green() + ); + match get_all_features(client).await { + Ok(response) => { + let mut streaming = response.into_inner(); + + //decoding the proto file + while let Some(resp) = streaming.message().await? { + if let Some(MessageResponse::FileDescriptorResponse(fdr)) = + resp.message_response + { + println!("Available services:"); + for bytes in fdr.file_descriptor_proto { + //decode file descriptor + let fd = FileDescriptorProto::decode(bytes.as_slice())?; + + for service in fd.service { + for method in service.method { + let method_name = method.name.unwrap_or_default(); + println!("{}", method_name); + } + } + } + } + } + } + Err(e) => { + println!( + "{} {} {} {}", + "=====>".blue().bold(), + "An error occured".red(), + "Error:", + e + ); + } + } + } + Err(_) => println!( + "{} {}", + "=====>".blue().bold(), + "Failed to connect to CortexFlow Server Reflection".red() + ), + } + Ok(()) +} + +pub async fn monitor_identity_events() -> Result<(), Error> { + println!( + "{} {}", + "=====>".blue().bold(), + "Connecting to cortexflow Client".white() + ); + + match connect_to_client().await { + Ok(client) => { + println!( + "{} {}", + "=====>".blue().bold(), + "Connected to CortexFlow Client".green() + ); + match send_active_connection_request(client).await { + Ok(response) => { + println!("{:?}", response.into_inner().events); + } + Err(e) => { + println!( + "{} {} {} {}", + "=====>".blue().bold(), + "An error occured".red(), + "Error:", + e + ); + } + } + } + Err(_) => println!( + "{} {}", + "=====>".blue().bold(), + "Failed to connect to CortexFlow Client".red() + ), + } + + Ok(()) +} From 3b471cba1e73b81d2d92c5dde817fbdb2a9736da Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 15:57:33 +0200 Subject: [PATCH 29/33] [#123]: fixed typos in agent.yaml. Added static nodePort to access the agent api --- core/src/testing/agent.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/testing/agent.yaml b/core/src/testing/agent.yaml index cbb48ad..2bdb4a6 100644 --- a/core/src/testing/agent.yaml +++ b/core/src/testing/agent.yaml @@ -91,5 +91,6 @@ spec: port: 9090 targetPort: 9090 appProtocol: grpc + nodePort: 30092 type: NodePort --- From 43e1fa49a342ce8a67d0a72d282417bd264ab718 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 21:40:40 +0200 Subject: [PATCH 30/33] [#57]: removed old crates (shared/kernel) --- core/src/components/kernel/Cargo.toml | 43 --- core/src/components/kernel/Dockerfile | 44 --- core/src/components/kernel/build-kernel.sh | 16 - core/src/components/kernel/src/corefile.rs | 359 -------------------- core/src/components/kernel/src/kernel.rs | 219 ------------ core/src/components/kernel/src/main.rs | 58 ---- core/src/components/kernel/src/mod.rs | 3 - core/src/components/kernel/src/utilities.rs | 47 --- core/src/shared/Cargo.toml | 40 --- core/src/shared/src/apiconfig.rs | 188 ---------- core/src/shared/src/default_api_config.rs | 299 ---------------- core/src/shared/src/developers_msg.rs | 53 --- core/src/shared/src/lib.rs | 4 - core/src/shared/src/main.rs | 3 - core/src/shared/src/params.rs | 77 ----- core/xtask/Cargo.toml | 9 - core/xtask/src/main.rs | 31 -- 17 files changed, 1493 deletions(-) delete mode 100644 core/src/components/kernel/Cargo.toml delete mode 100644 core/src/components/kernel/Dockerfile delete mode 100755 core/src/components/kernel/build-kernel.sh delete mode 100644 core/src/components/kernel/src/corefile.rs delete mode 100644 core/src/components/kernel/src/kernel.rs delete mode 100644 core/src/components/kernel/src/main.rs delete mode 100644 core/src/components/kernel/src/mod.rs delete mode 100644 core/src/components/kernel/src/utilities.rs delete mode 100644 core/src/shared/Cargo.toml delete mode 100644 core/src/shared/src/apiconfig.rs delete mode 100644 core/src/shared/src/default_api_config.rs delete mode 100644 core/src/shared/src/developers_msg.rs delete mode 100644 core/src/shared/src/lib.rs delete mode 100644 core/src/shared/src/main.rs delete mode 100644 core/src/shared/src/params.rs delete mode 100644 core/xtask/Cargo.toml delete mode 100644 core/xtask/src/main.rs diff --git a/core/src/components/kernel/Cargo.toml b/core/src/components/kernel/Cargo.toml deleted file mode 100644 index a4d70f8..0000000 --- a/core/src/components/kernel/Cargo.toml +++ /dev/null @@ -1,43 +0,0 @@ -[package] -name = "kernel" -version = "0.1.0" -edition = "2024" - -[dependencies] -actix-web = "4.9.0" -clap = "4.5.21" -tokio = { version = "1", features = ["full"] } -tracing = "0.1.40" -futures = "0.3.31" -anyhow = "1.0.93" -schemas = "0.4.0" -yaml-rust2 = "0.10.3" -kube = { version = "1.1.0", features = ["runtime", "derive", "ws"]} -k8s-openapi = { version = "0.25.0", features = ["latest"] } -serde_json = "1.0.133" -tokio-util = { version = "0.7.8", features = ["io"] } -tokio-stream = { version = "0.1.9", features = ["net"] } -tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } -serde = { version = "1.0", features = ["derive"] } -hyper-util = "0.1.10" -tower = "0.5.1" -ipnet = "2.10.1" -iptables = "0.5.2" -itertools = "0.14.0" -libc = "0.2.164" -libloading = "0.8.5" -libp2p = "0.56.0" -serde_yaml = "0.9.34" -pnet = "0.35.0" -bytes = "1.9.0" -prost = "0.14.1" -rdkafka = "0.38.0" -trust-dns-server = "0.23.2" -dirs = "6.0.0" - -[dependencies.shared] -path = "../../shared" - -[[bin]] -name = "kernel" -path = "src/main.rs" diff --git a/core/src/components/kernel/Dockerfile b/core/src/components/kernel/Dockerfile deleted file mode 100644 index 51c0f23..0000000 --- a/core/src/components/kernel/Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -# Phase 1: Build image -FROM rust:1.85 AS builder - -# Set working directory -WORKDIR /usr/src/app - -# Copy the shared library in the correct location -WORKDIR /usr/src/shared -COPY .shared/Cargo.toml . -COPY .shared/src ./src - -# Then create the kernel project structure -WORKDIR /usr/src/app/kernel -COPY Cargo.toml . -COPY src ./src - -# Ensure Cargo recognizes the shared dependency -RUN cargo fetch - -# Build the project -RUN cargo build --release - -# Phase 2: Create final image -FROM ubuntu:22.04 - -# Install runtime dependencies -RUN apt-get update && apt-get install -y \ - ca-certificates \ - && rm -rf /var/lib/apt/lists/* - -# Create directory for the kernel -WORKDIR /usr/src/cortexbrain-kernel - -# Create the /etc/dns directory -RUN mkdir -p /etc/dns - -# Copy the binary from builder -COPY --from=builder /usr/src/app/kernel/target/release/kernel /usr/local/bin/cortexflow-kernel - -# Copy the config.yaml file into /etc/dns -COPY config.yaml /etc/dns/config.yaml - -# Set the kernel execution command -CMD ["cortexflow-kernel"] diff --git a/core/src/components/kernel/build-kernel.sh b/core/src/components/kernel/build-kernel.sh deleted file mode 100755 index 1a4c4d6..0000000 --- a/core/src/components/kernel/build-kernel.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -# Create temporary shared directory -mkdir -p .shared - -# Copy shared files -cp -r ../../shared/src .shared/ -cp -r ../../shared/Cargo.toml .shared/ -cp -r ../../client/config.yaml config.yaml - -# Run docker build -docker build -t kernel:0.0.1 . - -# Cleanup -rm -rf .shared -rm -rf config.yaml \ No newline at end of file diff --git a/core/src/components/kernel/src/corefile.rs b/core/src/components/kernel/src/corefile.rs deleted file mode 100644 index 3e5854f..0000000 --- a/core/src/components/kernel/src/corefile.rs +++ /dev/null @@ -1,359 +0,0 @@ -/* The corefile.go file in Kubernetes is part of the source code for CoreDNS, which is the default DNS server used in Kubernetes clusters for service name resolution and other internal DNS operations. This file defines the structure and functionality associated with CoreDNS configuration, specifically the object called Corefile. - -Corefile.go's main functionality -CoreDNS configuration parsing: - -Handles the logic for reading, parsing, and interpreting the CoreDNS configuration file, which is usually called Corefile. This file specifies how CoreDNS should behave, which plugins to use, and how to handle DNS queries. -Configuration validation: - -Verifies that the CoreDNS configuration is valid. For example, it checks that the configuration blocks are correct and that the defined plugins are supported. -Configuration Manipulation: - -Allows programmatic changes to the Corefile configuration. For example, if the cluster requires an update of DNS zones or the addition of a new plugin, this file defines the structures and functions to make those changes. -Useful Data Structures: - -Defines data structures to represent the Corefile, with each block and directive described in a structured way for programmable management. -Interface with Kubernetes: - -Provides functionality to integrate CoreDNS with Kubernetes clusters, such as configuring internal DNS services to resolve names such as my-service.my-n - -*/ -#[allow(unused_imports)] -use shared::apiconfig::EdgeDNSConfig; -use kube::Client; -use crate::utilities::{get_interfaces, is_valid_ip, remove_duplicates}; -use anyhow::{anyhow, Error, Result}; -use k8s_openapi::api::core::v1::ConfigMap; -use kube::api::{Patch, PatchParams}; -use kube::api::{Api, ListParams}; -use k8s_openapi::api::core::v1::Service; -use serde::Serialize; -use serde_json::json; -use std::collections::HashSet; -use std::fs; -use std::net::IpAddr; -use tracing::{error, info,instrument, warn}; - -/* template block */ - -const STUB_DOMAIN_BLOCK: &str = r#"{{domain_name}}:{{port}} { - bind {{local_ip}} - log - errors - forward . {{upstream_servers}} { - force_tcp - } - cache {{cache_ttl}} - loop - reload -}"#; - - - -//TODO: add certificate to protect the route -const KUBERNETES_PLUGIN_BLOCK: &str = r#"kubernetes cluster.local in-addr.arpa ip6.arpa{ - pods insecure - fallthrough in-addr.arpa ip6.arpa - ttl {{ttl}} - }"#; - -/* constants */ -const DEFAULT_TTL: u32 = 30; -const DEFAULT_UPSTREAM_SERVER: &str = "/etc/resolv.conf"; - -/* parameters */ -#[derive(Serialize)] -pub struct StubDomainInfo { - domain_name: String, - local_ip: String, - port: String, - cache_ttl: u32, - upstream_servers: String, - kubernetes_plugin: String, -} - -#[derive(Serialize)] -pub struct KubernetesPluginInfo { - api_server: String, - ttl: u32, -} - -fn generate_stub_domain_block(config: StubDomainInfo) -> Result { - let template = STUB_DOMAIN_BLOCK.to_string(); - let mut rendered = template; - - rendered = rendered.replace("{{domain_name}}", &config.domain_name); - rendered = rendered.replace("{{port}}", &config.port.to_string()); - rendered = rendered.replace("{{local_ip}}", &config.local_ip.to_string()); - rendered = rendered.replace("{{cache_ttl}}", &config.cache_ttl.to_string()); - rendered = rendered.replace("{{upstream_servers}}", &config.upstream_servers); - rendered = rendered.replace("{{kubernetes_plugin}}", &config.kubernetes_plugin); - - Ok(rendered) -} - -fn generate_kubernetes_plugin_block(config: KubernetesPluginInfo) -> Result { - let template = KUBERNETES_PLUGIN_BLOCK.to_string(); - let mut rendered = template; - - rendered = rendered.replace("{{api_server}}", &config.api_server); - rendered = rendered.replace("{{ttl}}", &config.ttl.to_string()); - - Ok(rendered) -} - -#[instrument(skip(client))] -pub async fn detect_cluster_dns(client: Client) -> Result, Box> { - let namespace = "kube-system"; - let mut servers = HashSet::new(); - - info!("Running DNS service detection..."); - - let services: Api = Api::namespaced(client.clone(), namespace); - info!("Initialized API for services in namespace: {}", namespace); - - let label_selector = ListParams::default().labels("k8s-app=kube-dns"); - info!("Using label selector: k8s-app=kube-dns"); - - let service_list = match services.list(&label_selector).await { - Ok(list) => { - info!("Successfully retrieved list of services with label k8s-app=kube-dns"); - list - } - Err(e) => { - error!("Failed to retrieve services: {}", e); - return Err(e.into()); - } - }; - - info!("Processing {} services...", service_list.items.len()); - for service in service_list.items { - let service_name = service.metadata.name.clone().unwrap_or_else(|| "unnamed".to_string()); - info!("Processing service: {}", service_name); - - if let Some(spec) = service.spec { - if let Some(cluster_ip) = spec.cluster_ip { - if cluster_ip != "None" { - info!("Found valid ClusterIP: {} for service: {}", cluster_ip, service_name); - servers.insert(cluster_ip); - } else { - info!("Service {} has ClusterIP set to 'None', skipping", service_name); - } - } else { - info!("Service {} has no ClusterIP, skipping", service_name); - } - } else { - info!("Service {} has no spec, skipping", service_name); - } - } - - let servers: Vec = servers.into_iter().collect(); - info!("Detected unique DNS servers: {:?}", servers); - - if servers.is_empty() { - error!("Unable to automatically detect cluster DNS. Do you have CoreDNS or kube-dns installed in your cluster?"); - Err("No DNS service detected".into()) - } else { - info!("Automatically detected cluster DNS: {:?}", servers); - Ok(servers) - } -} -// return the interface ip -fn get_interface_ip(interface: &str) -> Result { - /* - Lib reference: pnet: - https://crates.io/crates/pnet - */ - let interfaces = pnet::datalink::interfaces(); - for iface in interfaces { - if iface.name == interface { - for ip in iface.ips { - if let IpAddr::V4(ipv4) = ip.ip() { - return Ok(IpAddr::V4(ipv4)); - } - } - } - } - get_interfaces(); - Err(anyhow!( - "Failed to find interface with name: {:?}", - interface - )) -} - -//update corefile function -#[instrument(skip(kube_client))] -pub async fn update_corefile(cfg: EdgeDNSConfig, kube_client: &Client) -> Result<(), Error> { - info!("Updating the EdgeDNS corefile configuration\n\n"); - info!("Retrieving the corefile current configuration"); - let configmaps: Api = - Api::namespaced(kube_client.clone(), "kube-system"); - let mut corefile_configmap = configmaps.get("coredns").await?; - info!("{:?}\n\n", corefile_configmap); - - - // obtain the interface ip address - let listen_ip = get_interface_ip(&cfg.listen_interface)?; - - info!("listener ip {}", listen_ip); - - // Set default values for cacheTTL and upstreamServers - let mut cache_ttl = DEFAULT_TTL; - let mut upstream_servers = vec![DEFAULT_UPSTREAM_SERVER.to_string()]; - - info!("Cache ttl {}", cache_ttl); - - info!("upstream server {:?}", upstream_servers); - - // Get the Kubernetes plugin configuration string - let kubernetes_plugin = get_kubernetes_plugin_str(cfg.clone())?; - - info!("kubernetes plugin string: {}", kubernetes_plugin); - - if let Some(cache_dns_config) = cfg.cache_dns { - if cache_dns_config.enable { - upstream_servers.clear(); - - // Automatic detection of upstream servers from the cluster - if cache_dns_config.auto_detect { - info!("\nAuto detecting servers"); - match detect_cluster_dns(kube_client.clone()).await { - Ok(detected_servers) => { - // Add the detected servers to the upstream_servers list - upstream_servers.extend(detected_servers); - info!("Auto detected servers: {:?}\n", upstream_servers); - } - Err(e) => { - // Handle the error if detection fails - error!("Failed to auto-detect servers: {}", e); - } - } - } - - //Add upstream servers configured - for server in &cache_dns_config.upstream_servers { - let server = server.trim(); - if !server.is_empty() { - if is_valid_ip(server) { - upstream_servers.push(server.to_string()); - } else { - error!("Invalid address: {}", server); - } - } - } - - // Remove duplicates - upstream_servers = remove_duplicates(upstream_servers); - - if upstream_servers.is_empty() { - return Err(anyhow!("No valid upstream servers detected")); - } - - // update the cache ttl - cache_ttl = cache_dns_config.cache_ttl; - } - } - - // Create the configuration string for the stub domain - let stub_domain_str = generate_stub_domain_block(StubDomainInfo { - domain_name: "cortexflow-edge.dns".to_string(), - local_ip: listen_ip.to_string(), - port: cfg.listen_port.to_string(), - cache_ttl, - upstream_servers: upstream_servers.join(", "), - kubernetes_plugin, - })?; - - let stub_domain_str_copy = stub_domain_str.clone(); - - // Scrivi la nuova configurazione nel file temporaneo - let temp_corefile_path = "/tmp/Corefile"; - fs::write(temp_corefile_path, stub_domain_str)?; - - //Create a full patched file to check before submission in the k8s coredns file in corefile - - if let Some(coredns_data) = corefile_configmap.data.as_mut() { - //search for corefile in data map - if let Some(corefile) = coredns_data.get_mut("Corefile") { - let mut corefile_copy = corefile.clone(); - - //new config to add--> stub_domain_str - corefile_copy.push_str(&stub_domain_str_copy); //copy trait implementare - - let patched_data = json!({ - "data":{ - "Corefile": corefile_copy - } - }); - - let temp_coredns_patch = "/tmp/PatchedCoreDns"; - fs::write( - temp_coredns_patch, - serde_json::to_string_pretty(&patched_data)?, - )?; - - info!("CoreDNS updated successfully at {}", temp_coredns_patch); - - //apply the corefile patched file after user decision - if corefile.contains("cortexflow-edge.dns:53") { - error!("Configuration block already present, skipping update."); - } else { - /* warn!("Do you want to patch the coredns configuration? Yes[Y] No[N]"); - let mut input = String::new(); - std::io::stdin().read_line(&mut input)?; - *///if input.trim().eq_ignore_ascii_case("Y") { - info!("\nInserting patch:"); - info!("{:?}\n",stub_domain_str_copy); - *corefile = format!("{}{}", corefile, stub_domain_str_copy); - - - //send the patch to the cluster - let patch_data = json!({ - "data": { - "Corefile": corefile.clone() - } - }); - - let patch_new = Patch::Merge(patch_data); - - configmaps - .patch("coredns", &PatchParams::default(), &patch_new) - .await?; - - - //TODO: add error handler - - //logging - info!("Patched corefile successfully:\n"); - info!("{:?}", corefile); - } //else { - //logging - // error!("Corefile not patched"); - //} - } - } - - Ok(()) -} - - -fn get_kubernetes_plugin_str(cfg: EdgeDNSConfig) -> Result { - - if cfg.enable { - let plugin_config = KubernetesPluginInfo { - api_server: cfg - .kube_api_config - .as_ref() - .and_then(|server| server.master.clone()) - .unwrap_or(" ".to_owned()), - - ttl: cfg - .cache_dns - .as_ref().map(|cache| cache.cache_ttl) - .unwrap_or(DEFAULT_TTL), - }; - generate_kubernetes_plugin_block(plugin_config) - } else { - Ok("".to_string()) - } -} diff --git a/core/src/components/kernel/src/kernel.rs b/core/src/components/kernel/src/kernel.rs deleted file mode 100644 index 41dac2d..0000000 --- a/core/src/components/kernel/src/kernel.rs +++ /dev/null @@ -1,219 +0,0 @@ -/* Resource -https://github.com/EmilHernvall/dnsguide/blob/master/chapter1.md -*/ - -/* CoreDNS-->Dns resolver di Kubernetes */ -/* Kubernetes in rust: - https://www.shuttle.dev/blog/2024/10/22/using-kubernetes-with-rust -*/ -#[allow(unused_imports)] - -use anyhow::{Error, Result}; -use std::sync::Arc; -use kube::Client; -use std::net::SocketAddr; -use tokio::net::UdpSocket; -use tracing::{error,info,warn,instrument}; -use trust_dns_server::authority::{AuthorityObject, Catalog}; -use trust_dns_server::proto::rr::{Name,Record,RecordType,RData}; -use trust_dns_server::authority::ZoneType; -use trust_dns_server::server::ServerFuture; -use trust_dns_server::store::in_memory::InMemoryAuthority; -use trust_dns_server::proto::rr::rdata::A; -use std::net::Ipv4Addr; - -use std::fs; -use tokio::signal; -use shared::apiconfig::EdgeDNSConfig; - -use crate::corefile::update_corefile; - -#[derive(Debug)] -pub struct EdgeDNS { - edgednsconfig: Arc, -} - -impl EdgeDNS { - pub fn name(&self) -> &str { - &self.edgednsconfig.module_name - } - pub fn group(&self) -> &str { - &self.edgednsconfig.edge_mode - } - pub fn enable(&self) -> bool { - self.edgednsconfig.enable - } - pub fn get_kernel_info(&self) { - info!("Kernel info:\n"); - info!("name: {}", self.name()); - info!("group: {}", self.group()); - info!("enabled: {}\n", self.enable()); - } - #[instrument] - pub async fn start(&self) { - if self.enable() { - self.run().await; - } else { - warn!("kernel is disabled"); - } - } - #[instrument] - pub async fn run(&self) { - - if !self.enable(){ - error!("EdgeDNS is not enabled"); - } - info!("EdgeDNS is running "); - - //cache_dns_enable - if self.edgednsconfig.cache_dns.clone().unwrap().enable { - info!("Running TrustDNS as a cache DNS server"); - } else { - info!("Running TrustDNS as a local DNS server"); - } - - let addr: SocketAddr = "0.0.0.0:5000".parse().unwrap(); //changed the port from 53-->5000 5353 is the alternative port for the dns - - // TODO: automatic select address - //TODO: add support for recursion - //TODO: add auto port recognition if the port is not available - - let socket = UdpSocket::bind(addr).await.unwrap(); - info!("Listening for DNS requests on {}", addr); - - let local_name = "example.com."; - let origin = Name::root(); - - let authority = Arc::new(InMemoryAuthority::empty( - Name::parse(local_name, Some(&origin)).expect("Failed to parse domain name"), - ZoneType::Primary, // Zone type - false, - )); - - // Create a DNS record - let mut record = Record::with( - Name::parse("www.example.com.", None).unwrap(), - RecordType::A, - self.edgednsconfig.cache_dns.clone().unwrap().cache_ttl, - ); - - record.set_data(Some(RData::A(A(Ipv4Addr::new(192, 168, 0, 1))))); - - // Aggiungi il record all'autorità - authority.upsert(record, 0).await; - - let mut catalog = Catalog::new(); - catalog.upsert( - Name::parse(local_name, Some(&origin)) - .expect("Failed to parse domain name").into(), - Box::new(authority) as Box, // Correzione qui - ); - - let mut server = ServerFuture::new(catalog); - server.register_socket(socket); - - // Inizializzazione di un meccanismo di "shutdown" basato su un errore o su un input - // Esegui la selezione - let server_result:Result<(), anyhow::Error> = tokio::select! { - _ = server.block_until_done() => { - info!("Server stopped gracefully"); - Ok(()) - }, - _ = self.wait_for_shutdown() => { - info!("Shutdown command received"); - Err(anyhow::anyhow!("Shutting down the server")) - } - }; - - // handle the server_result - match server_result { - Ok(_) => { - info!("Server stopped gracefully"); - } - Err(err) => { - error!("Server encountered an error: {}", err); - self.shutdown().await; // Chiamata alla funzione di shutdown - } - } - } - - async fn wait_for_shutdown(&self) -> Result<(), String> { - // wait for sigint for shutting down - let ctrl_c = async { - signal::ctrl_c() - .await - .expect("Failed to listen for Ctrl + C signal"); - info!("Ctrl + C received, shutting down..."); - }; - - tokio::select! { - _ = ctrl_c => { - // if sigint is triggered shut down the server and reutrn an error msg - Err("Ctrl + C received, shutting down".to_string()) - } - } - } - - #[instrument] - pub async fn shutdown(&self) { - info!("Shutting down the EdgeDNS "); - - - info!("Shutting down EdgeDNS server"); - - - // clear the resources - if self.edgednsconfig.kube_api_config.clone().unwrap().delete_kube_config { - if let Err(err) = fs::remove_file("/path/to/temp/kubeconfig") { - error!("Failed to delete kubeconfig: {}", err); - } - //TODO: remove the temp files - } - - info!("EdgeDNS shutdown complete."); - } - - pub async fn new( - edgednscfg: EdgeDNSConfig, - client: Client, - ) -> Result { - // Update Corefile if EdgeDNS is enabled - update_corefile(edgednscfg.clone(), &client.clone()).await?; - - /* Reference as_ref: - https://doc.rust-lang.org/std/convert/trait.AsRef.html - */ - Ok(EdgeDNS { - edgednsconfig: Arc::new(edgednscfg), - }) - } - - //registers a service - - //TODO: delete this part - /* pub fn register(config: ApiConfig, client: Client) -> Result<(), Error> { - // Load the KubeEdge shared library - let library_path = "../../core/kubeedge-wrapper/libkubeedge.so"; - let library = unsafe { - // Load the shared library using libloading::Library - Library::new(library_path).expect("Failed to load libkubeedge.so") - }; - - unsafe { - // Load the InitKubeEdge function from the shared library - let register: Symbol *const i8> = library - .get(b"Register\0") - .expect("Failed to load InitKubeEdge"); - - // Path to the configuration file - let config_path = CString::new("/path/to/config").expect("CString::new failed"); - - // Call the InitKubeEdge function - let result_ptr = register(config_path.as_ptr()); - let result_str = CStr::from_ptr(result_ptr).to_string_lossy(); - - println!("Result from InitKubeEdge: {}", result_str); - } - Ok(()) - } */ -} diff --git a/core/src/components/kernel/src/main.rs b/core/src/components/kernel/src/main.rs deleted file mode 100644 index 89d4691..0000000 --- a/core/src/components/kernel/src/main.rs +++ /dev/null @@ -1,58 +0,0 @@ -// module imports - -mod kernel; -mod corefile; -mod utilities; - -use anyhow::Result; - -use tracing_subscriber::fmt::format::FmtSpan; -use tracing_subscriber::EnvFilter; - -use shared::apiconfig::EdgeDNSConfig; -use shared::default_api_config::ConfigType; - - -use crate::kernel::EdgeDNS; - - -use kube::{api::Api, Client}; -use k8s_openapi::api::core::v1::ConfigMap; - - -const CONFIG_PATH: &str = "CONFIG_PATH"; - -#[tokio::main] -async fn main() -> Result<(), anyhow::Error> { - //tracing subscriber for logging purposes - tracing_subscriber::fmt() - .with_max_level(tracing::Level::INFO) - .with_target(false) - .with_level(true) - .with_span_events(FmtSpan::NONE) - .without_time() - .with_file(false) - .pretty() - .with_env_filter(EnvFilter::new("info")) - .with_line_number(false) - .init(); - - // Load the configuration from the Kubernetes API: - /* Workflow: - - load the configmap from the Kubernetes API - - read the dns config from the configmap - - apply the configmap - - start the server - */ - - let client = Client::try_default().await?; - let configmap: Api = Api::namespaced(client.clone(), "cortexflow"); - - let edgecfg = EdgeDNSConfig::load_from_configmap(configmap, ConfigType::Default).await?; - - let edgedns = EdgeDNS::new(edgecfg, client.clone()).await?; - edgedns.get_kernel_info(); - edgedns.start().await; - - Ok(()) -} \ No newline at end of file diff --git a/core/src/components/kernel/src/mod.rs b/core/src/components/kernel/src/mod.rs deleted file mode 100644 index accc8e6..0000000 --- a/core/src/components/kernel/src/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod kernel; -pub mod corefile; -pub mod utilities; diff --git a/core/src/components/kernel/src/utilities.rs b/core/src/components/kernel/src/utilities.rs deleted file mode 100644 index b2e9b4f..0000000 --- a/core/src/components/kernel/src/utilities.rs +++ /dev/null @@ -1,47 +0,0 @@ -/* - UTILITIES: support functions used in the kernel crate - -*/ -#[allow(unused_imports)] -use std::net::Ipv4Addr; -use itertools::Itertools; -use pnet::datalink::interfaces; - -pub fn is_valid_ip(ip: &str) -> bool { - /* check if an ip address is valid or not*/ - ip.parse::().is_ok() -} -pub fn is_valid_port(port: &str) -> bool { - /* - Workflow: - - convert the port from string to i32 integer - - check if the port is between 0 and 1 - - OK: return true - - Err: return false + error status - */ - let port_enum = port.parse::().unwrap(); - 0 < port_enum && port_enum < 65536 -} -pub fn remove_duplicates(ss: Vec)->Vec { - /* - Workflow: - - into_iter(): - Turns ss into an iterator of owned elements. - - unique(): - Filters out duplicates while maintaining the original order. - - collect(): - Collects the filtered elements into a new container. - - */ - ss.into_iter().unique().collect() -} - - -pub fn get_interfaces(){ - let interfaces = interfaces(); - println!("Eligible interfaces:"); - for iface in interfaces{ - println!("interface:{}",iface.name); - } -} - diff --git a/core/src/shared/Cargo.toml b/core/src/shared/Cargo.toml deleted file mode 100644 index 4779959..0000000 --- a/core/src/shared/Cargo.toml +++ /dev/null @@ -1,40 +0,0 @@ -[package] -name = "shared" -version = "0.1.0" -edition = "2021" - -[dependencies] -actix-web = "4.9.0" -clap = "4.5.21" -tokio = { version = "1", features = ["full"] } -tracing = "0.1.40" -futures = "0.3.31" -anyhow = "1.0.93" -schemas = "0.4.0" -yaml-rust2 = "0.10.3" -kube = { version = "1.1.0", features = ["runtime", "derive", "ws"]} -k8s-openapi = { version = "0.25.0", features = ["v1_32"] } -serde_json = "1.0.133" -tokio-util = { version = "0.7.8", features = ["io"] } -tokio-stream = { version = "0.1.9", features = ["net"] } -tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } -serde = { version = "1.0", features = ["derive"] } -hyper-util = "0.1.10" -tower = "0.5.1" -ipnet = "2.10.1" -iptables = "0.5.2" -itertools = "0.14.0" -libc = "0.2.164" -libloading = "0.8.5" -libp2p = "0.56.0" -serde_yaml = "0.9.34" -pnet = "0.35.0" -bytes = "1.9.0" -prost = "0.14.1" -rdkafka = "0.38.0" -trust-dns-server = "0.23.2" -dirs = "6.0.0" - -[lib] -name = "shared" -path = "src/lib.rs" diff --git a/core/src/shared/src/apiconfig.rs b/core/src/shared/src/apiconfig.rs deleted file mode 100644 index 89e1aa0..0000000 --- a/core/src/shared/src/apiconfig.rs +++ /dev/null @@ -1,188 +0,0 @@ -/*! - This module defines a series of configuration structures for a - distributed network infrastructure. It includes parameters for - components such as Edge Mesh, Gateway, DNS, and CNI (Container Network Interface). - - Key functionalities: - - **Kubernetes API Configuration**: - Manages parameters for interacting with the Kubernetes API using the - `KubeApiConfig` structure. - - - **Edge Mesh Configuration**: - Configures agents (`EdgeMeshAgentConfig`) and gateways (`EdgeMeshGatewayConfig`) - for the Edge Mesh network. - - - **Edge DNS**: - Defines parameters for a custom DNS system, including interfaces, - ports, and caching, through the `EdgeDNSConfig` structure. - - - **Edge Proxy**: - Configures the Edge network proxy, with support for load balancing - and Socks5 (`EdgeProxyConfig`). - - - **CNI Configuration**: - Manages containerized network settings, such as tunneling and Mesh CIDR, - using the `EdgeCNIConfig` structure. - - - **Gateway Components**: - Configures specific gateway settings via `EdgeGatewayConfig`. - - Features: - - **Serialization and Deserialization**: - Uses `Serialize` and `Deserialize` traits to support formats like JSON and YAML. - - **Modularity**: - Independent configurations for clear and scalable management. - - **Flexibility**: - The use of `Option` allows for partial and customizable configurations. - - This module is designed as an integral part of a distributed system's - edge computing configuration. -*/ - - - -#[allow(unused_imports)] - - -use serde::{Deserialize, Serialize}; - -// ================================================================== -// ======================== Agent Section =========================== -// ================================================================== - -pub struct EdgeMeshAgentConfig { - pub kubeapi_config: Option, - pub common_config: Option, - pub modules : Option, -} -pub struct AgentModules { - pub edge_dns_config: Option, - pub edge_proxy_config: Option, - pub edge_cni_config: Option, -} - - -// ================================================================== -// ======================= Gateway Section ========================== -// ================================================================== - -pub struct EdgeMeshGatewayConfig {} -pub struct GatewayModules { - pub edge_gateway_config: Option, -} -pub struct EdgeGatewayConfig { - pub enable: bool, - pub nic: String, - pub include_ip: String, - pub exclude_ip: String, - pub loadbalancer: Option, -} - - - -// ================================================================== -// ======================= KubeAPI Section ========================== -// ================================================================== - -#[derive(Clone, Serialize, Deserialize,Debug)] -pub struct KubeApiConfig { - pub master: Option, - pub content_type: Option, - pub qps: i32, - pub burst: i32, - pub kube_config: Option, - pub meta_server: Option, - pub delete_kube_config: bool, -} -#[derive(Serialize,Deserialize,Clone)] -pub struct CommonConfig { - pub bridge_device_name: String, - pub bridge_device_ip: String, - /* pub pprof : Option */ -} -#[derive(Clone,Serialize,Deserialize)] -pub struct PprofConfig {} - -// ================================================================== -// ======================= MetaServer Section ======================= -// ================================================================== - -pub struct MetaServer { - pub server: String, - pub security: Option, -} -pub struct MetaServerSecurity {} - - -// ================================================================== -// ======================== Proxy Section =========================== -// ================================================================== - -#[derive(Serialize,Deserialize,Clone,Debug)] -pub struct EdgeProxyConfig { - pub enable: bool, - pub listen_interface: String, - //pub loadbalancer: Option, - //pub socks5proxy: Option, - //pub service_filter_mode: String, -} -#[derive(Serialize,Deserialize,Clone,Debug)] -pub struct Socks5Proxy { - pub enable: bool, - pub listen_port: i32, - pub nodename: String, - pub namespace: String, -} - -// ================================================================== -// ========================= CNI Section ============================ -// ================================================================== - - -#[derive(Serialize, Deserialize)] -pub struct EdgeCNIConfig { - pub enable: bool, - pub encap_ip: String, - pub tun_mode: i32, - pub mesh_cidr_config: Option, -} - -#[derive(Serialize, Deserialize)] -pub struct MeshCIDRConfig { - pub cloud_cidr: Vec, - pub edge_cidr: Vec, -} - -// ================================================================== -// ========================= DNS Section ============================ -// ================================================================== - -#[derive(Clone, Serialize, Deserialize,Debug)] -pub struct EdgeDNSConfig { - pub enable: bool, - pub module_name: String, - pub edge_mode: String, - pub listen_interface: String, - pub listen_port: i32, - pub kube_api_config: Option, - pub cache_dns: Option, -} - -#[derive(Clone, Serialize, Deserialize,Debug)] -pub struct CacheDNS { - pub enable: bool, - pub auto_detect: bool, - pub upstream_servers: Vec, - pub cache_ttl: u32, -} - -// ================================================================== -// ====================== LoadBalancer Section ====================== -// ================================================================== - -#[derive(Serialize,Deserialize,Clone,Debug)] -pub struct LoadBalancer { - pub caller: String, - pub nodename: String, - //add consistent hash -} diff --git a/core/src/shared/src/default_api_config.rs b/core/src/shared/src/default_api_config.rs deleted file mode 100644 index 5e45c9b..0000000 --- a/core/src/shared/src/default_api_config.rs +++ /dev/null @@ -1,299 +0,0 @@ -/*! - This module defines the components and parameters for the default API configuration. - - Key functionalities: - - **API Configuration (`ApiConfig`)**: - Provides the primary structure for storing API-related settings, including: - - Base directory and configuration file paths. - - Module names for EdgeMesh Agent, Gateway, DNS, Proxy, Tunnel, and CNI. - - Metadata server settings and device configurations. - - Modes for service filtering, load balancing, and discovery types. - - Other operational modes like edge, cloud, and manual modes. - - - **Configuration Loading**: - Implements methods to load configurations from YAML files for: - - Default settings. - - Version-specific settings (e.g., `V1`). - - - **EdgeCNI and EdgeDNS Configurations**: - Handles parsing of specialized sections (`edgeCNI`, `edge_dns`, `cache_dns`, `kubeapi`) - within the configuration file for fine-grained control. - - Features: - - **Error Handling**: - Uses the `anyhow` crate for detailed context in error reporting. - - **Serialization and Deserialization**: - Supports `Serialize` and `Deserialize` traits for seamless integration with YAML. - - **Configurable Defaults**: - Offers predefined defaults for critical parameters such as `ServiceFilterMode`, - `LoadBalancerCaller`, and `DiscoveryType`. - - This module is essential for initializing and managing configurations in - distributed systems with complex edge and cloud operations. -*/ -#[allow(unused_imports)] -use anyhow::anyhow; -use anyhow::{Context, Result}; -use k8s_openapi::api::core::v1::ConfigMap; -use kube::Api; -use serde::{Deserialize, Serialize}; -use serde_yaml; -use std::fs::File; -use std::result::Result::Ok; -use tracing_subscriber::fmt::format; - -use crate::apiconfig::{ - AgentModules, CommonConfig, EdgeCNIConfig, EdgeDNSConfig, EdgeMeshAgentConfig, EdgeProxyConfig, -}; -use crate::params::{DiscoveryType, LoadBalancerCaller, ServiceFilterMode}; - -#[derive(Debug)] -pub enum ConfigType { - Default, - V1, -} - -#[derive(Clone, Serialize, Deserialize, Debug)] -pub struct ApiConfig { - pub base_dir: String, - pub config_file: String, - pub edgemesh_agent_config_name: String, - pub edgemesh_gateway_config_name: String, - pub edgemesh_proxy_module_name: String, - pub edgemesh_tunnel_module_name: String, - pub edgemesh_cni_module_name: String, - pub bridge_device_name: String, - pub bridge_device_ip: String, - pub tun_device_name: String, - pub temp_kube_config_path: String, - pub temp_core_file_path: String, - pub meta_server_address: String, - pub meta_server_cert_dir: String, - pub meta_server_ca_file: String, - pub meta_server_cert_file: String, - pub meta_server_key_file: String, - pub cloud_mode: String, - pub manual_mode: String, - pub empty_node_name: String, - pub empty_pod_name: String, - pub service_filter_mode: Option, - pub loadbalancer_caller: Option, - pub discovery_type: Option, -} - -impl ApiConfig { - pub fn load_from_file>( - path: P, - config_type: ConfigType, - ) -> Result { - let cur_path = std::env::current_dir()?; - println!("The current directory is {}", cur_path.display()); - println!( - "Trying to load configuration from path: {}", - path.as_ref().display() - ); - let cfg_file = File::open(&path).with_context(|| { - format!( - "Problem opening config file in path {}", - path.as_ref().display() - ) - })?; - let config_map: serde_yaml::Value = - serde_yaml::from_reader(cfg_file).context("Failed to parse YAML")?; - - let config_section = match config_type { - ConfigType::Default => &config_map["default"], - ConfigType::V1 => &config_map["v1"], - }; - - let config: ApiConfig = serde_yaml::from_value(config_section.clone()) - .context("Failed to extract config section")?; - - Ok(ApiConfig { - service_filter_mode: Some(ServiceFilterMode { - filter_if_label_exists_mode: String::from( - ServiceFilterMode::filter_if_label_exists_mode(), - ), - filter_if_label_doesn_not_exists_mode: String::from( - ServiceFilterMode::filter_if_label_doesn_not_exists_mode(), - ), - }), - loadbalancer_caller: Some(LoadBalancerCaller { - proxy_caller: String::from(LoadBalancerCaller::proxy_caller()), - gateway_caller: String::from(LoadBalancerCaller::gateway_caller()), - }), - discovery_type: Some(DiscoveryType { - mdns_discovery: String::from(DiscoveryType::mdns_discovery()), - dht_discovery: String::from(DiscoveryType::dht_discovery()), - }), - ..config - }) - } -} -impl EdgeCNIConfig { - pub fn load_from_file>( - path: P, - config_type: ConfigType, - ) -> Result { - let cfg_file = File::open(path).context("Errore nell'aprire il file di configurazione")?; - - // Analizza il file YAML - let config_map: serde_yaml::Value = - serde_yaml::from_reader(cfg_file).context("Errore nella lettura del file YAML")?; - - // Seleziona la sezione corretta del file di configurazione - let config_section = match config_type { - ConfigType::Default => &config_map["default"], - ConfigType::V1 => &config_map["v1"], - }; - - // EdgeCNI section - let edgecni_section = config_section.get("edgeCNI").ok_or_else(|| { - anyhow::anyhow!("'edgeCNI' section doesn not exists in the config file") - })?; - - let edgecni_config: EdgeCNIConfig = serde_yaml::from_value(edgecni_section.clone()) - .context("Error parsing 'edgeCNI' section")?; - - Ok(EdgeCNIConfig { ..edgecni_config }) - } -} -impl EdgeDNSConfig { - pub async fn load_from_configmap( - configmap: Api, - config_type: ConfigType, - ) -> Result { - // Get the content of config.yaml from Kubernetes ConfigMap - let cm = configmap - .get("cortexbrain-client-config") - .await - .context("Failed to get ConfigMap")?; - let config_data = cm - .data - .ok_or_else(|| anyhow::anyhow!("No data in ConfigMap"))?; - let config_yaml = config_data - .get("config.yaml") - .ok_or_else(|| anyhow::anyhow!("Missing 'config.yaml' in ConfigMap data"))? - .clone(); - // Now parse the YAML content - let config_map: serde_yaml::Value = serde_yaml::from_str(&config_yaml) - .context("Error reading the yaml file from Kubernetes")?; - // Extract the relevant config section - let configs = config_map; - // Select the correct version - let config_section = match config_type { - ConfigType::Default => &configs["default"], - ConfigType::V1 => &configs["v1"], - }; - // Edge DNS Section - let edge_dns_section = config_section.get("edge_dns").ok_or_else(|| { - anyhow::anyhow!("'edge_dns' section does not exist in the config file") - })?; - let edge_dns_config: EdgeDNSConfig = serde_yaml::from_value(edge_dns_section.clone()) - .context("Error parsing 'edge_dns' section")?; - // Cache DNS section - let cache_dns_section = config_section.get("cache_dns"); - let cache_dns_config = if let Some(cache_dns_section) = cache_dns_section { - Some( - serde_yaml::from_value(cache_dns_section.clone()) - .context("Error parsing 'cache dns' section")?, - ) - } else { - None - }; - // KubeAPI section - let kubeapi_section = config_section.get("kubeapi"); - let kubeapi_config = if let Some(kubeapi_section) = kubeapi_section { - Some( - serde_yaml::from_value(kubeapi_section.clone()) - .context("Error parsing 'kubeapi' section")?, - ) - } else { - None - }; - // Return the EdgeDNS configuration - Ok(EdgeDNSConfig { - cache_dns: cache_dns_config, - kube_api_config: kubeapi_config, - ..edge_dns_config - }) - } -} -impl CommonConfig { - pub fn load_from_file>( - path: P, - config_type: ConfigType, - ) -> Result { - let cfg_file = File::open(path); - - let file = match cfg_file { - Ok(file) => file, - Err(error) => panic!("Problem opening the file: {error:?}"), - }; - - let config_map: serde_yaml::Value = - serde_yaml::from_reader(file).context("Failed to parse YAML")?; - - let config_section = match config_type { - ConfigType::Default => &config_map["default"], - ConfigType::V1 => &config_map["v1"], - }; - - let common_config: CommonConfig = serde_yaml::from_value(config_section.clone()) - .context("Failed to extract config section")?; - - // Return the CommonConfig configuration - Ok(CommonConfig { - bridge_device_name: common_config.bridge_device_name, - bridge_device_ip: common_config.bridge_device_ip, - }) - } -} - -impl EdgeProxyConfig { - pub async fn load_from_configmap(configmap: Api, config_type: ConfigType)->Result { - // Get the content of config.yaml from Kubernetes ConfigMap - let cm = configmap - .get("cortexbrain-client-config") - .await - .context("Failed to get ConfigMap")?; - - let config_data = cm - .data - .ok_or_else(|| anyhow::anyhow!("No data in ConfigMap"))?; - - let config_yaml = config_data - .get("config.yaml") - .ok_or_else(|| anyhow::anyhow!("Missing 'config.yaml' in ConfigMap data"))? - .clone(); - - // Now parse the YAML content - let config_map: serde_yaml::Value = serde_yaml::from_str(&config_yaml) - .context("Error reading the yaml file from Kubernetes")?; - - // Extract the relevant config section - let configs = config_map; - // Select the correct version - let config_section = match config_type { - ConfigType::Default => &configs["default"], - ConfigType::V1 => &configs["v1"], - }; - - //read the proxy section - let proxy_section = config_section - .get("proxy") - .ok_or_else(|| anyhow::anyhow!("'Proxy section does not exists in the config file"))?; - - let proxy_config: EdgeProxyConfig = serde_yaml::from_value(proxy_section.clone()).context("Error parsing the 'proxy' section")?; - - - //return the Proxy configuration - Ok(EdgeProxyConfig{ - ..proxy_config - }) - } - -} - -impl EdgeMeshAgentConfig {} -impl AgentModules {} diff --git a/core/src/shared/src/developers_msg.rs b/core/src/shared/src/developers_msg.rs deleted file mode 100644 index fda89cb..0000000 --- a/core/src/shared/src/developers_msg.rs +++ /dev/null @@ -1,53 +0,0 @@ -/* - Dashboard for CortexFlow Developers - Includes: - - Changelog - - Whats new - - Open Issues -*/ - -use tracing::{warn,info,instrument}; - -#[instrument] -pub fn info() { - info!( - " - Welcome to the CortexFlow Developers Dashboard, introduced on January 27th, 2025. - This tool provides a summary of updates, new features, and a list of unresolved issues in the core functionalities. - The dashboard is designed to help CortexBrain developers focus on addressing key challenges in the core system, - enabling efficient collaboration and progress. - \n" - ); - warn!("Requirements: Docker, Kubernetes, Apache Kafka"); - whats_new(); - changelog(); - problems_to_solve(); -} -#[instrument] -pub fn changelog() { - info!("------------------ C H A N G E L O G -------------------\n"); - info!("29.01.2025"); - info!("1-added send message function and consume_and_forward functions in kafka.rs"); - info!("2-added expection handler in update_corefile function. If the interface is unavailable it show the available interfaces"); - info!("27.01.2025"); - info!("- Added APIs for 'Default' and 'V1' base configurations"); - info!("- Introduced a developer message tab"); - info!("- Refactored client code to align with the new crate structure"); - info!("- Added TODO comments for future improvements\n"); -} - -#[instrument] -pub fn whats_new() { - warn!( - "- This is the first pre-alpha version of CortexBrain. Expect some bugs as extensive testing is still required." - ); -} - -#[instrument] -pub fn problems_to_solve() { - warn!("--------------- O P E N I S S U E S ------------------\n"); - warn!("1. The 'validation.rs' module requires full implementation."); - warn!("2. The 'update_corefile' function requires a code review."); - warn!("3. In 'edgecni.rs', the 'run' functionality needs implementation."); - warn!("4. The 'stop' functionality in the 'close_route' function of 'edgecni.rs' needs implementation.\n"); -} diff --git a/core/src/shared/src/lib.rs b/core/src/shared/src/lib.rs deleted file mode 100644 index 22ff467..0000000 --- a/core/src/shared/src/lib.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub mod developers_msg; -pub mod apiconfig; -pub mod default_api_config; -pub mod params; \ No newline at end of file diff --git a/core/src/shared/src/main.rs b/core/src/shared/src/main.rs deleted file mode 100644 index e7a11a9..0000000 --- a/core/src/shared/src/main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - println!("Hello, world!"); -} diff --git a/core/src/shared/src/params.rs b/core/src/shared/src/params.rs deleted file mode 100644 index eb4b142..0000000 --- a/core/src/shared/src/params.rs +++ /dev/null @@ -1,77 +0,0 @@ -/*! - This module defines structures and parameters for key functionalities - in service filtering, load balancing, and service discovery. - - Key components: - - **Service Filter Mode**: - Encapsulates the filtering logic for services based on label existence, - managed through the `ServiceFilterMode` structure. - - - **Load Balancer Caller**: - Defines the calling logic for proxies and gateways using the - `LoadBalancerCaller` structure. - - - **Service Discovery Type**: - Specifies discovery mechanisms, including mDNS and DHT, via - the `DiscoveryType` structure. - - Features: - - **Serialization and Deserialization**: - Structures implement `Serialize` and `Deserialize` traits for compatibility - with formats such as JSON and YAML. - - **Modularity**: - Clearly separated components allow for scalability and reuse. - - **Convenient Defaults**: - Static methods provide default values for common use cases, such as - `"FilterIfLabelExists"` or `"ProxyCaller"`. - - This module is intended for use in distributed systems requiring flexible - configurations for service filtering, load balancing, and discovery protocols. -*/ - -use serde::{Deserialize, Serialize}; - -/* ServiceFilter Mode */ -#[derive(Debug, Deserialize, Clone, Serialize)] -pub struct ServiceFilterMode { - pub filter_if_label_exists_mode: String, - pub filter_if_label_doesn_not_exists_mode: String, -} -impl ServiceFilterMode { - pub fn filter_if_label_exists_mode() -> &'static str { - "FilterIfLabelExists" - } - pub fn filter_if_label_doesn_not_exists_mode() -> &'static str { - "FilterIfLabelDoesNotExists" - } -} - -/* LoadBalancer Caller */ -#[derive(Debug, Deserialize, Clone, Serialize)] -pub struct LoadBalancerCaller { - pub proxy_caller: String, - pub gateway_caller: String, -} -impl LoadBalancerCaller { - pub fn proxy_caller() -> &'static str { - "ProxyCaller" - } - pub fn gateway_caller() -> &'static str { - "GatewayCaller" - } -} - -//Discovery Type -#[derive(Debug, Deserialize, Clone, Serialize)] -pub struct DiscoveryType { - pub mdns_discovery: String, - pub dht_discovery: String, -} -impl DiscoveryType { - pub fn mdns_discovery() -> &'static str { - "MDNS" - } - pub fn dht_discovery() -> &'static str { - "DHT" - } -} diff --git a/core/xtask/Cargo.toml b/core/xtask/Cargo.toml deleted file mode 100644 index c0da400..0000000 --- a/core/xtask/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "xtask" -version = "0.1.0" -edition = "2024" - -[dependencies] -clap = { version = "4.5.38", features = ["derive"] } -aya-tool = { git = "https://github.com/aya-rs/aya" } -anyhow = "1.0.98" diff --git a/core/xtask/src/main.rs b/core/xtask/src/main.rs deleted file mode 100644 index 128cf18..0000000 --- a/core/xtask/src/main.rs +++ /dev/null @@ -1,31 +0,0 @@ -/* copied from https://github.com/aya-rs/book/blob/main/examples/cgroup-skb-egress/xtask/src/main.rs */ -use anyhow::{Context as _, Result}; -use clap::Parser; - -#[derive(Debug, Parser)] -pub struct Options { - #[clap(subcommand)] - command: Command, -} - -#[derive(Debug, Parser)] -enum Command { - Codegen { output: std::path::PathBuf }, -} - -fn main() -> Result<()> { - match Parser::parse() { - Command::Codegen { output } => { - let bindings = aya_tool::generate::generate( - aya_tool::generate::InputFile::Btf(std::path::PathBuf::from( - "/sys/kernel/btf/vmlinux", - )), - &["iphdr"], - &[], - ) - .context("generate")?; - std::fs::write(&output, &bindings).context("write")?; - } - } - Ok(()) -} \ No newline at end of file From 91fbde9785208c5c286b594db4edc6714e0a6c73 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Thu, 21 Aug 2025 21:41:15 +0200 Subject: [PATCH 31/33] [#57]: updated dockerignore --- core/.dockerignore | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/core/.dockerignore b/core/.dockerignore index aa97dbc..1e58c2a 100644 --- a/core/.dockerignore +++ b/core/.dockerignore @@ -1,7 +1,4 @@ -src/components/kernel src/components/loadbalancer src/components/proxy src/components/xdp -src/components/maps -src/components/xtask -src/shared \ No newline at end of file +src/components/maps \ No newline at end of file From 04d4d05d5630bd823ded0168441badc47d0c7fd2 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Fri, 22 Aug 2025 21:24:10 +0200 Subject: [PATCH 32/33] [#130]: added installation subcommands. Added cfcli install cortexflow and cfcli install simple-example --- cli/src/install.rs | 180 +++++++++++++++++++++++++++------------------ cli/src/main.rs | 122 ++++++++++++++++-------------- 2 files changed, 175 insertions(+), 127 deletions(-) diff --git a/cli/src/install.rs b/cli/src/install.rs index a1cc8e1..20d1eec 100644 --- a/cli/src/install.rs +++ b/cli/src/install.rs @@ -1,7 +1,7 @@ -use std::process::{Command, exit}; +use std::process::{ Command, exit }; use crate::essential::Environments; -use crate::essential::{create_config_file, create_configs, get_config_directory, read_configs}; +use crate::essential::{ create_config_file, create_configs, get_config_directory, read_configs }; use colored::Colorize; use std::thread; @@ -14,18 +14,10 @@ fn install_cluster_components(env: String) { match user_env { Ok(cluster_environment) => { let env = cluster_environment.base_command(); - println!( - "{} {}", - "=====>".blue().bold(), - "Copying installation files".white() - ); + println!("{} {}", "=====>".blue().bold(), "Copying installation files".white()); copy_installation_files(); thread::sleep(Duration::from_secs(1)); - println!( - "{} {}", - "=====>".blue().bold(), - "Creating cortexflow namespace".white() - ); + println!("{} {}", "=====>".blue().bold(), "Creating cortexflow namespace".white()); Command::new(env) .args(["create", "namespace", "cortexflow"]) .output() @@ -34,17 +26,31 @@ fn install_cluster_components(env: String) { install_components(env.to_string()); println!("\n"); rm_installation_files(); - println!( - "{} {}", - "=====>".blue().bold(), - "installation completed".white() - ); + println!("{} {}", "=====>".blue().bold(), "installation completed".white()); } Err(e) => { - eprintln!( - "An error occured while installing cortexflow components: {:?}", - e - ); + eprintln!("An error occured while installing cortexflow components: {:?}", e); + exit(1) + } + } +} + +/* example installation function */ +fn install_simple_example_component(env: String) { + let user_env = Environments::try_from(env.to_lowercase()); + match user_env { + Ok(cluster_environment) => { + let env = cluster_environment.base_command(); + println!("{} {}", "=====>".blue().bold(), "Copying installation files".white()); + copy_example_installation_file(); + thread::sleep(Duration::from_secs(1)); + install_example(env.to_string()); + println!("\n"); + rm_example_installation_file(); + println!("{} {}", "=====>".blue().bold(), "installation completed".white()); + } + Err(e) => { + eprintln!("An error occured while installing cortexflow components: {:?}", e); exit(1) } } @@ -52,16 +58,8 @@ fn install_cluster_components(env: String) { /* main installation function */ pub fn install_cortexflow() { - println!( - "{} {}", - "=====>".blue().bold(), - "Preparing cortexflow installation".white() - ); - println!( - "{} {}", - "=====>".blue().bold(), - "Creating the config files".white() - ); + println!("{} {}", "=====>".blue().bold(), "Preparing cortexflow installation".white()); + println!("{} {}", "=====>".blue().bold(), "Creating the config files".white()); let metadata_configs = create_configs(); create_config_file(metadata_configs); @@ -70,6 +68,44 @@ pub fn install_cortexflow() { let env = read_configs(file_path); install_cluster_components(env); } +/* install simple example */ +pub fn install_simple_example() { + println!("{} {}", "=====>".blue().bold(), "Installing simple example".white()); + + let file_path = get_config_directory().unwrap().1; + + let env = read_configs(file_path); + install_simple_example_component(env); +} + + +/* install example component */ +fn install_example(env: String) { + let files_to_install = vec!["deploy-test-pod.yaml"]; + let tot_files = files_to_install.len(); + + println!("{} {}", "=====>".blue().bold(), "Installing cortexflow components".white()); + let user_env = env.as_str(); + debug!("Debugging env var in install components {:?}", user_env); + + let mut i = 1; + + for component in files_to_install { + println!( + "{} {}{}{}{} {} {} {}", + "=====>".blue().bold(), + "(", + i, + "/", + tot_files, + ")", + "Applying ", + component + ); + apply_component(component, user_env); + i = i + 1; + } +} /* Installation functions */ fn install_components(env: String) { @@ -79,32 +115,29 @@ fn install_components(env: String) { "rolebinding.yaml", "cortexflow-rolebinding.yaml", "identity.yaml", + "agent.yaml" ]; let tot_files = files_to_install.len(); - println!( - "{} {}", - "=====>".blue().bold(), - "Installing cortexflow components".white() - ); + println!("{} {}", "=====>".blue().bold(), "Installing cortexflow components".white()); let user_env = env.as_str(); debug!("Debugging env var in install components {:?}", user_env); - let mut i=1; + let mut i = 1; for component in files_to_install { - println!( - "{} {}{}{} {} {} {}", - "=====>".blue().bold(), - "(", - i, - "/", - tot_files, - "Applying ", - component - ); - apply_component(component, user_env); - i=i+1; + println!( + "{} {}{}{} {} {} {}", + "=====>".blue().bold(), + "(", + i, + "/", + tot_files, + "Applying ", + component + ); + apply_component(component, user_env); + i = i + 1; } } @@ -115,11 +148,7 @@ fn apply_component(file: &str, env: &str) { .expect("cannot install component from file"); if !output.status.success() { - eprintln!( - "Error installing file: {}:\n{}", - file, - String::from_utf8_lossy(&output.stderr) - ); + eprintln!("Error installing file: {}:\n{}", file, String::from_utf8_lossy(&output.stderr)); } else { println!("✅ Applied {}", file); } @@ -129,46 +158,51 @@ fn apply_component(file: &str, env: &str) { fn copy_installation_files() { download_file( - "https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/main/core/src/testing/configmap.yaml", + "https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/main/core/src/testing/configmap.yaml" + ); + download_file( + "https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/main/core/src/testing/configmap-role.yaml" ); download_file( - "https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/main/core/src/testing/configmap-role.yaml", + "https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/main/core/src/testing/rolebinding.yaml" ); download_file( - "https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/main/core/src/testing/rolebinding.yaml", + "https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/main/core/src/testing/cortexflow-rolebinding.yaml" ); download_file( - "https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/main/core/src/testing/cortexflow-rolebinding.yaml", + "https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/main/core/src/testing/identity.yaml" + ); + download_file( + "https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/feature/ebpf-core/core/src/testing/agent.yaml" ); - download_file("https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/main/core/src/testing/identity.yaml"); println!("\n"); } -fn rm_installation_files() { - println!( - "{} {}", - "=====>".blue().bold(), - "Removing temporary installation files".white() +fn copy_example_installation_file() { + download_file( + "https://raw.githubusercontent.com/CortexFlow/CortexBrain/refs/heads/feature/ebpf-core/core/src/testing/deploy-test-pod.yaml" ); + println!("\n"); +} +fn rm_installation_files() { + println!("{} {}", "=====>".blue().bold(), "Removing temporary installation files".white()); rm_file("configmap.yaml"); rm_file("configmap-role.yaml"); rm_file("rolebinding.yaml"); rm_file("cortexflow-rolebinding.yaml"); rm_file("identity.yaml"); + rm_file("agent.yaml"); +} +fn rm_example_installation_file() { + println!("{} {}", "=====>".blue().bold(), "Removing temporary installation files".white()); + rm_file("deploy-test-pod.yaml"); } /* Auxiliary functions */ fn download_file(src: &str) { - let output = Command::new("wget") - .args([src]) - .output() - .expect("cannot import config file"); + let output = Command::new("wget").args([src]).output().expect("cannot import config file"); if !output.status.success() { - eprintln!( - "Error copying file: {}.\n{}", - src, - String::from_utf8_lossy(&output.stderr) - ); + eprintln!("Error copying file: {}.\n{}", src, String::from_utf8_lossy(&output.stderr)); } else { println!("✅ Copied file from {} ", src); } diff --git a/cli/src/main.rs b/cli/src/main.rs index 2a28d50..986667b 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -8,7 +8,7 @@ mod status; mod uninstall; use clap::command; -use clap::{Args, Error, Parser, Subcommand}; +use clap::{ Args, Error, Parser, Subcommand }; use colored::Colorize; use std::result::Result::Ok; use std::thread; @@ -16,12 +16,16 @@ use std::time::Duration; use tracing::debug; use crate::essential::{ - get_config_directory, get_startup_config_dir, info, read_configs, update_cli, + get_config_directory, + get_startup_config_dir, + info, + read_configs, + update_cli, }; -use crate::install::install_cortexflow; +use crate::install::{install_cortexflow, install_simple_example}; use crate::logs::logs_command; -use crate::monitoring::{list_features, monitor_identity_events}; -use crate::service::{describe_service, list_services}; +use crate::monitoring::{ list_features, monitor_identity_events }; +use crate::service::{ describe_service, list_services }; use crate::status::status_command; use crate::uninstall::uninstall; @@ -43,26 +47,20 @@ struct Cli { #[derive(Subcommand, Debug, Clone)] enum Commands { /* list of available commands */ - #[command(name = "set-env")] - SetEnv(SetArgs), + #[command(name = "set-env")] SetEnv(SetArgs), #[command(name = "get-env")] GetEnv, - #[command(name = "install")] - Install, + #[command(name = "install")] Install(InstallArgs), #[command(name = "uninstall")] Uninstall, #[command(name = "update")] Update, #[command(name = "info")] Info, - #[command(name = "service")] - Service(ServiceArgs), - #[command(name = "status")] - Status(StatusArgs), - #[command(name = "logs")] - Logs(LogsArgs), - #[command(name = "monitoring")] - Monitor(MonitorArgs), + #[command(name = "service")] Service(ServiceArgs), + #[command(name = "status")] Status(StatusArgs), + #[command(name = "logs")] Logs(LogsArgs), + #[command(name = "monitoring")] Monitor(MonitorArgs), } #[derive(Args, Debug, Clone)] struct SetArgs { @@ -75,11 +73,19 @@ struct ServiceArgs { service_cmd: ServiceCommands, } -// cfcli monitor +//install args #[derive(Args, Debug, Clone)] -struct MonitorArgs { +struct InstallArgs { #[command(subcommand)] - monitor_cmd: MonitorCommands, + install_cmd: InstallCommands, +} +//install subcommands +#[derive(Subcommand, Debug, Clone)] +enum InstallCommands { + #[command(name = "cortexflow")] + All, + #[command(name = "simple-example")] + TestPods, } //monitoring subcommands @@ -91,21 +97,27 @@ enum MonitorCommands { Connections, } +//service subcommands #[derive(Subcommand, Debug, Clone)] enum ServiceCommands { - #[command(name = "list")] - List { + #[command(name = "list")] List { #[arg(long)] namespace: Option, }, - #[command(name = "describe")] - Describe { + #[command(name = "describe")] Describe { service_name: String, #[arg(long)] namespace: Option, }, } +// cfcli monitor +#[derive(Args, Debug, Clone)] +struct MonitorArgs { + #[command(subcommand)] + monitor_cmd: MonitorCommands, +} + #[derive(Args, Debug, Clone)] struct StatusArgs { #[arg(long)] @@ -141,11 +153,7 @@ async fn args_parser() -> Result<(), Error> { Ok(()) } else { thread::sleep(Duration::from_secs(1)); - println!( - "{} {}", - "[SYSTEM]".blue().bold(), - "Founded config files".white() - ); + println!("{} {}", "[SYSTEM]".blue().bold(), "Founded config files".white()); let config_file_path = get_config_directory(); let file_path = config_file_path.unwrap().1; let env = read_configs(file_path.to_path_buf()); @@ -160,10 +168,17 @@ async fn args_parser() -> Result<(), Error> { general_data.get_env_output(); Ok(()) } - Some(Commands::Install) => { - install_cortexflow(); - Ok(()) - } + Some(Commands::Install(installation_args)) => + match installation_args.install_cmd { + InstallCommands::All => { + install_cortexflow(); + Ok(()) + } + InstallCommands::TestPods => { + install_simple_example(); + Ok(()) + } + } Some(Commands::Uninstall) => { uninstall(); Ok(()) @@ -176,19 +191,17 @@ async fn args_parser() -> Result<(), Error> { info(general_data); Ok(()) } - Some(Commands::Service(service_args)) => match service_args.service_cmd { - ServiceCommands::List { namespace } => { - Some(list_services(namespace)); - Ok(()) - } - ServiceCommands::Describe { - service_name, - namespace, - } => { - describe_service(service_name, &namespace); - Ok(()) + Some(Commands::Service(service_args)) => + match service_args.service_cmd { + ServiceCommands::List { namespace } => { + Some(list_services(namespace)); + Ok(()) + } + ServiceCommands::Describe { service_name, namespace } => { + describe_service(service_name, &namespace); + Ok(()) + } } - }, Some(Commands::Status(status_args)) => { status_command(status_args.output, status_args.namespace); Ok(()) @@ -197,16 +210,17 @@ async fn args_parser() -> Result<(), Error> { logs_command(logs_args.service, logs_args.component, logs_args.namespace); Ok(()) } - Some(Commands::Monitor(monitor_args)) => match monitor_args.monitor_cmd { - MonitorCommands::List => { - let _ = list_features().await; - Ok(()) + Some(Commands::Monitor(monitor_args)) => + match monitor_args.monitor_cmd { + MonitorCommands::List => { + let _ = list_features().await; + Ok(()) + } + MonitorCommands::Connections => { + let _ = monitor_identity_events().await; + Ok(()) + } } - MonitorCommands::Connections => { - let _ = monitor_identity_events().await; - Ok(()) - }, - }, None => { eprintln!("CLI unknown argument. Cli arguments passed: {:?}", args.cmd); Ok(()) From 5312909204e28cf23014d583ea1cec796e6b8028 Mon Sep 17 00:00:00 2001 From: LorenzoTettamanti Date: Fri, 22 Aug 2025 21:25:23 +0200 Subject: [PATCH 33/33] Added build-all.sh script to build and push the components Docker images --- build-all.sh | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ core/Cargo.lock | 33 ++++++++++++++++++++++++++++++ core/Cargo.toml | 7 ++----- 3 files changed, 89 insertions(+), 5 deletions(-) create mode 100755 build-all.sh diff --git a/build-all.sh b/build-all.sh new file mode 100755 index 0000000..4a0675f --- /dev/null +++ b/build-all.sh @@ -0,0 +1,54 @@ +#!/bin/bash +set -e + +echo "Building CortexFlow Agent" +pushd ./core +./agent-api-build.sh +popd + +sleep 1 + +echo "Building CortexFlow Identity" +pushd ./core/src/components/identity +./build-identity.sh +popd + +sleep 1 + +echo "Building CortexFlow Metrics" +pushd ./core/src/components/metrics +./build-metrics.sh +popd + +sleep 1 + +echo "Insert image version. e.g 0.1.2/latest or type skip to skip the uploading processing" +echo +read -p "Insert cortexflow-agent version: " agent_version +read -p "Insert cortexflow-identity version: " identity_version +read -p "Insert cortexflow-metrics version: " metrics_version + +echo +echo "Tagging & pushing docker images..." +echo + +if [ "$metrics_version" != "skip" ]; then + docker tag metrics:0.0.1 lorenzotettamanti/cortexflow-metrics:$metrics_version + docker push lorenzotettamanti/cortexflow-metrics:$metrics_version +else + echo "Skipping cortexflow-metrics image upload" +fi + +if [ "$agent_version" != "skip" ]; then + docker tag cortexflow-agent:0.0.1 lorenzotettamanti/cortexflow-agent:$agent_version + docker push lorenzotettamanti/cortexflow-agent:$agent_version +else + echo "Skipping cortexflow-agent image upload" +fi + +if [ "$identity_version" != "skip" ]; then + docker tag identity:0.0.1 lorenzotettamanti/cortexflow-identity:$identity_version + docker push lorenzotettamanti/cortexflow-identity:$identity_version +else + echo "Skipping cortexflow-identity image upload" +fi diff --git a/core/Cargo.lock b/core/Cargo.lock index e143b23..e6ea0f4 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -716,6 +716,33 @@ dependencies = [ "autocfg", ] +[[package]] +name = "metrics" +version = "0.1.0" +dependencies = [ + "anyhow", + "aya", + "aya-log", + "bytemuck", + "bytes", + "libc", + "nix", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "metrics_tracer" +version = "0.1.0" +dependencies = [ + "aya-ebpf", + "aya-log-ebpf", + "bytemuck", + "network-types", + "which", +] + [[package]] name = "mime" version = "0.3.17" @@ -748,6 +775,12 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" +[[package]] +name = "network-types" +version = "0.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2df15b1cb023b9d205ae287d5dbe74510ae4d62b5131ceec516f4913ed05230" + [[package]] name = "nix" version = "0.30.1" diff --git a/core/Cargo.toml b/core/Cargo.toml index 3d128e5..088c2e9 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -1,17 +1,14 @@ [workspace] resolver = "3" members = [ - #"src/components/kernel", #"src/components/loadbalancer", "api", - #"src/shared", #"src/components/proxy", #"src/components/xdp", #"src/components/maps", "src/components/conntracker", - #"xtask", "src/components/identity", - #"src/components/metrics_tracer", - #"src/components/metrics", + "src/components/metrics_tracer", + "src/components/metrics", ]