Bug 1963329 - Update wgpu to revision 9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b. r=webgpu-reviewers,supply-chain-reviewers,webidl,saschanaz,ErichDonGubler
Differential Revision: https://phabricator.services.mozilla.com/D247125
This commit is contained in:
@@ -40,9 +40,9 @@ git = "https://github.com/franziskuskiefer/cose-rust"
|
||||
rev = "43c22248d136c8b38fe42ea709d08da6355cf04b"
|
||||
replace-with = "vendored-sources"
|
||||
|
||||
[source."git+https://github.com/gfx-rs/wgpu?rev=35f131ff10153e48b790e1f156c864734063ce71"]
|
||||
[source."git+https://github.com/gfx-rs/wgpu?rev=9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"]
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "35f131ff10153e48b790e1f156c864734063ce71"
|
||||
rev = "9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
replace-with = "vendored-sources"
|
||||
|
||||
[source."git+https://github.com/glandium/rust-objc?rev=4de89f5aa9851ceca4d40e7ac1e2759410c04324"]
|
||||
|
||||
32
Cargo.lock
generated
32
Cargo.lock
generated
@@ -3624,9 +3624,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.161"
|
||||
version = "0.2.171"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1"
|
||||
checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6"
|
||||
|
||||
[[package]]
|
||||
name = "libdbus-sys"
|
||||
@@ -3780,9 +3780,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.20"
|
||||
version = "0.4.26"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
|
||||
checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e"
|
||||
|
||||
[[package]]
|
||||
name = "mach"
|
||||
@@ -3958,13 +3958,13 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "metal"
|
||||
version = "0.31.0"
|
||||
version = "0.32.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e"
|
||||
checksum = "00c15a6f673ff72ddcc22394663290f870fb224c1bfce55734a75c414150e605"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"block",
|
||||
"core-graphics-types 0.1.999",
|
||||
"core-graphics-types 0.2.0",
|
||||
"foreign-types",
|
||||
"log",
|
||||
"objc",
|
||||
@@ -4586,7 +4586,7 @@ checksum = "a2983372caf4480544083767bf2d27defafe32af49ab4df3a0b7fc90793a3664"
|
||||
[[package]]
|
||||
name = "naga"
|
||||
version = "25.0.0"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=35f131ff10153e48b790e1f156c864734063ce71#35f131ff10153e48b790e1f156c864734063ce71"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b#9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
dependencies = [
|
||||
"arrayvec",
|
||||
"bit-set",
|
||||
@@ -5007,9 +5007,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "parking_lot"
|
||||
version = "0.12.1"
|
||||
version = "0.12.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
|
||||
checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
|
||||
dependencies = [
|
||||
"lock_api",
|
||||
"parking_lot_core",
|
||||
@@ -7541,7 +7541,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "wgpu-core"
|
||||
version = "25.0.0"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=35f131ff10153e48b790e1f156c864734063ce71#35f131ff10153e48b790e1f156c864734063ce71"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b#9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
dependencies = [
|
||||
"arrayvec",
|
||||
"bit-set",
|
||||
@@ -7571,7 +7571,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "wgpu-core-deps-apple"
|
||||
version = "25.0.0"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=35f131ff10153e48b790e1f156c864734063ce71#35f131ff10153e48b790e1f156c864734063ce71"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b#9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
dependencies = [
|
||||
"wgpu-hal",
|
||||
]
|
||||
@@ -7579,7 +7579,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "wgpu-core-deps-windows-linux-android"
|
||||
version = "25.0.0"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=35f131ff10153e48b790e1f156c864734063ce71#35f131ff10153e48b790e1f156c864734063ce71"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b#9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
dependencies = [
|
||||
"wgpu-hal",
|
||||
]
|
||||
@@ -7587,7 +7587,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "wgpu-hal"
|
||||
version = "25.0.0"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=35f131ff10153e48b790e1f156c864734063ce71#35f131ff10153e48b790e1f156c864734063ce71"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b#9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
dependencies = [
|
||||
"android_system_properties",
|
||||
"arrayvec",
|
||||
@@ -7597,7 +7597,7 @@ dependencies = [
|
||||
"block",
|
||||
"bytemuck",
|
||||
"cfg_aliases",
|
||||
"core-graphics-types 0.1.999",
|
||||
"core-graphics-types 0.2.0",
|
||||
"gpu-alloc",
|
||||
"gpu-allocator",
|
||||
"gpu-descriptor",
|
||||
@@ -7623,7 +7623,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "wgpu-types"
|
||||
version = "25.0.0"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=35f131ff10153e48b790e1f156c864734063ce71#35f131ff10153e48b790e1f156c864734063ce71"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b#9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bytemuck",
|
||||
|
||||
@@ -168,17 +168,23 @@ ffi::WGPURecordedRenderPass* BeginRenderPass(
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::array<ffi::WGPURenderPassColorAttachment, WGPUMAX_COLOR_ATTACHMENTS>
|
||||
std::array<ffi::WGPUFfiRenderPassColorAttachment, WGPUMAX_COLOR_ATTACHMENTS>
|
||||
colorDescs = {};
|
||||
desc.color_attachments = colorDescs.data();
|
||||
desc.color_attachments_length = aDesc.mColorAttachments.Length();
|
||||
|
||||
for (size_t i = 0; i < aDesc.mColorAttachments.Length(); ++i) {
|
||||
const auto& ca = aDesc.mColorAttachments[i];
|
||||
ffi::WGPURenderPassColorAttachment& cd = colorDescs[i];
|
||||
ffi::WGPUFfiRenderPassColorAttachment& cd = colorDescs[i];
|
||||
cd.view = ca.mView->mId;
|
||||
cd.store_op = ConvertStoreOp(ca.mStoreOp);
|
||||
|
||||
if (ca.mDepthSlice.WasPassed()) {
|
||||
cd.depth_slice.tag = ffi::WGPUFfiOption_u32_Some_u32;
|
||||
cd.depth_slice.some = ca.mDepthSlice.Value();
|
||||
} else {
|
||||
cd.depth_slice.tag = ffi::WGPUFfiOption_u32_None_u32;
|
||||
}
|
||||
if (ca.mResolveTarget.WasPassed()) {
|
||||
cd.resolve_target = ca.mResolveTarget.Value().mId;
|
||||
}
|
||||
|
||||
@@ -1110,6 +1110,7 @@ dictionary GPURenderPassDescriptor
|
||||
|
||||
dictionary GPURenderPassColorAttachment {
|
||||
required GPUTextureView view;
|
||||
GPUIntegerCoordinate depthSlice;
|
||||
GPUTextureView resolveTarget;
|
||||
|
||||
GPUColor clearValue;
|
||||
|
||||
@@ -17,7 +17,7 @@ default = []
|
||||
[dependencies.wgc]
|
||||
package = "wgpu-core"
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "35f131ff10153e48b790e1f156c864734063ce71"
|
||||
rev = "9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
# TODO: remove the replay feature on the next update containing https://github.com/gfx-rs/wgpu/pull/5182
|
||||
features = [
|
||||
"serde",
|
||||
@@ -33,32 +33,32 @@ features = [
|
||||
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.wgc]
|
||||
package = "wgpu-core"
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "35f131ff10153e48b790e1f156c864734063ce71"
|
||||
rev = "9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
features = ["metal"]
|
||||
|
||||
# We want the wgpu-core Direct3D backends on Windows.
|
||||
[target.'cfg(windows)'.dependencies.wgc]
|
||||
package = "wgpu-core"
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "35f131ff10153e48b790e1f156c864734063ce71"
|
||||
rev = "9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
features = ["dx12"]
|
||||
|
||||
# We want the wgpu-core Vulkan backend on Linux and Windows.
|
||||
[target.'cfg(any(windows, all(unix, not(any(target_os = "macos", target_os = "ios")))))'.dependencies.wgc]
|
||||
package = "wgpu-core"
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "35f131ff10153e48b790e1f156c864734063ce71"
|
||||
rev = "9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
features = ["vulkan"]
|
||||
|
||||
[dependencies.wgt]
|
||||
package = "wgpu-types"
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "35f131ff10153e48b790e1f156c864734063ce71"
|
||||
rev = "9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
|
||||
[dependencies.wgh]
|
||||
package = "wgpu-hal"
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "35f131ff10153e48b790e1f156c864734063ce71"
|
||||
rev = "9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
features = ["device_lost_panic", "internal_error_panic"]
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
@@ -68,7 +68,7 @@ windows = { version = "0.58", default-features = false, features = [
|
||||
|
||||
[target.'cfg(target_os = "macos")'.dependencies]
|
||||
objc = "0.2"
|
||||
metal = "0.31"
|
||||
metal = "0.32"
|
||||
io-surface = "0.15"
|
||||
|
||||
[dependencies]
|
||||
|
||||
@@ -85,7 +85,6 @@ include = ["BufferUsages"]
|
||||
"SamplerDescriptor______nsACString" = "WGPUSamplerDescriptor"
|
||||
"AdapterInformation_nsString" = "WGPUAdapterInformation"
|
||||
"QuerySetDescriptor______nsACString" = "WGPUQuerySetDescriptor"
|
||||
"RenderPassColorAttachment_TextureViewId" = "WGPURenderPassColorAttachment"
|
||||
|
||||
[parse]
|
||||
parse_deps = true
|
||||
|
||||
@@ -8,8 +8,8 @@ origin:
|
||||
name: wgpu
|
||||
description: A cross-platform pure-Rust graphics API, modeled on the WebGPU standard
|
||||
url: https://github.com/gfx-rs/wgpu
|
||||
release: 35f131ff10153e48b790e1f156c864734063ce71 (Wed Apr 23 03:30:36 2025 +0000).
|
||||
revision: 35f131ff10153e48b790e1f156c864734063ce71
|
||||
release: commit 9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b
|
||||
revision: 9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b
|
||||
license: ['MIT', 'Apache-2.0']
|
||||
|
||||
updatebot:
|
||||
|
||||
@@ -23,7 +23,7 @@ use nsstring::{nsACString, nsString};
|
||||
use std::fmt::Write;
|
||||
use std::{borrow::Cow, ptr};
|
||||
|
||||
use self::render_pass::RenderPassDepthStencilAttachment;
|
||||
use self::render_pass::{FfiRenderPassColorAttachment, RenderPassDepthStencilAttachment};
|
||||
|
||||
pub mod render_pass;
|
||||
|
||||
@@ -864,7 +864,7 @@ pub unsafe extern "C" fn wgpu_compute_pass_destroy(pass: *mut crate::command::Re
|
||||
#[repr(C)]
|
||||
pub struct RenderPassDescriptor<'a> {
|
||||
pub label: Option<&'a nsACString>,
|
||||
pub color_attachments: *const wgc::command::RenderPassColorAttachment<id::TextureViewId>,
|
||||
pub color_attachments: *const FfiRenderPassColorAttachment,
|
||||
pub color_attachments_length: usize,
|
||||
pub depth_stencil_attachment: Option<&'a RenderPassDepthStencilAttachment>,
|
||||
pub timestamp_writes: Option<&'a PassTimestampWrites<'a>>,
|
||||
@@ -905,7 +905,7 @@ pub unsafe extern "C" fn wgpu_command_encoder_begin_render_pass(
|
||||
|
||||
let color_attachments: Vec<_> = make_slice(color_attachments, color_attachments_length)
|
||||
.iter()
|
||||
.map(|format| Some(format.clone()))
|
||||
.map(|format| Some(format.clone().to_wgpu()))
|
||||
.collect();
|
||||
let depth_stencil_attachment = depth_stencil_attachment.cloned().map(|dsa| dsa.to_wgpu());
|
||||
let pass = crate::command::RecordedRenderPass::new(&wgc::command::RenderPassDescriptor {
|
||||
|
||||
@@ -32,6 +32,37 @@ impl<T> FfiOption<T> {
|
||||
}
|
||||
}
|
||||
|
||||
/// FFI-safe analogue of [`wgc::command::RenderPassColorAttachment`].
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Debug, PartialEq)]
|
||||
pub struct FfiRenderPassColorAttachment {
|
||||
pub view: id::TextureViewId,
|
||||
pub depth_slice: FfiOption<u32>,
|
||||
pub resolve_target: Option<id::TextureViewId>,
|
||||
pub load_op: wgc::command::LoadOp<wgt::Color>,
|
||||
pub store_op: wgc::command::StoreOp,
|
||||
}
|
||||
|
||||
impl FfiRenderPassColorAttachment {
|
||||
pub(crate) fn to_wgpu(self) -> wgc::command::RenderPassColorAttachment {
|
||||
let Self {
|
||||
view,
|
||||
depth_slice,
|
||||
resolve_target,
|
||||
load_op,
|
||||
store_op,
|
||||
} = self;
|
||||
|
||||
wgc::command::RenderPassColorAttachment {
|
||||
view,
|
||||
depth_slice: depth_slice.to_std(),
|
||||
resolve_target,
|
||||
load_op,
|
||||
store_op,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// FFI-safe analogue of [`wgc::command::RenderPassDepthStencilAttachment`].
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Debug, PartialEq)]
|
||||
|
||||
@@ -3734,9 +3734,10 @@ delta = "24.0.0 -> 25.0.0"
|
||||
who = [
|
||||
"Erich Gubler <erichdongubler@gmail.com>",
|
||||
"Jim Blandy <jimb@red-bean.com>",
|
||||
"Teodor Tanasoaia <ttanasoaia@mozilla.com>",
|
||||
]
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "25.0.0 -> 25.0.0@git:35f131ff10153e48b790e1f156c864734063ce71"
|
||||
delta = "25.0.0 -> 25.0.0@git:9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
importable = false
|
||||
|
||||
[[audits.net2]]
|
||||
@@ -6023,9 +6024,10 @@ delta = "24.0.0 -> 25.0.0"
|
||||
who = [
|
||||
"Erich Gubler <erichdongubler@gmail.com>",
|
||||
"Jim Blandy <jimb@red-bean.com>",
|
||||
"Teodor Tanasoaia <ttanasoaia@mozilla.com>",
|
||||
]
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "25.0.0 -> 25.0.0@git:35f131ff10153e48b790e1f156c864734063ce71"
|
||||
delta = "25.0.0 -> 25.0.0@git:9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
importable = false
|
||||
|
||||
[[audits.wgpu-core-deps-apple]]
|
||||
@@ -6037,9 +6039,10 @@ version = "25.0.0"
|
||||
who = [
|
||||
"Erich Gubler <erichdongubler@gmail.com>",
|
||||
"Jim Blandy <jimb@red-bean.com>",
|
||||
"Teodor Tanasoaia <ttanasoaia@mozilla.com>",
|
||||
]
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "25.0.0 -> 25.0.0@git:35f131ff10153e48b790e1f156c864734063ce71"
|
||||
delta = "25.0.0 -> 25.0.0@git:9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
importable = false
|
||||
|
||||
[[audits.wgpu-core-deps-windows-linux-android]]
|
||||
@@ -6051,9 +6054,10 @@ version = "25.0.0"
|
||||
who = [
|
||||
"Erich Gubler <erichdongubler@gmail.com>",
|
||||
"Jim Blandy <jimb@red-bean.com>",
|
||||
"Teodor Tanasoaia <ttanasoaia@mozilla.com>",
|
||||
]
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "25.0.0 -> 25.0.0@git:35f131ff10153e48b790e1f156c864734063ce71"
|
||||
delta = "25.0.0 -> 25.0.0@git:9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
importable = false
|
||||
|
||||
[[audits.wgpu-hal]]
|
||||
@@ -6143,9 +6147,10 @@ delta = "24.0.0 -> 25.0.0"
|
||||
who = [
|
||||
"Erich Gubler <erichdongubler@gmail.com>",
|
||||
"Jim Blandy <jimb@red-bean.com>",
|
||||
"Teodor Tanasoaia <ttanasoaia@mozilla.com>",
|
||||
]
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "25.0.0 -> 25.0.0@git:35f131ff10153e48b790e1f156c864734063ce71"
|
||||
delta = "25.0.0 -> 25.0.0@git:9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
importable = false
|
||||
|
||||
[[audits.wgpu-types]]
|
||||
@@ -6230,9 +6235,10 @@ delta = "24.0.0 -> 25.0.0"
|
||||
who = [
|
||||
"Erich Gubler <erichdongubler@gmail.com>",
|
||||
"Jim Blandy <jimb@red-bean.com>",
|
||||
"Teodor Tanasoaia <ttanasoaia@mozilla.com>",
|
||||
]
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "25.0.0 -> 25.0.0@git:35f131ff10153e48b790e1f156c864734063ce71"
|
||||
delta = "25.0.0 -> 25.0.0@git:9fccdf5cf370fcd104e37a4dc87c5db82cfd0e2b"
|
||||
importable = false
|
||||
|
||||
[[audits.whatsys]]
|
||||
@@ -6670,7 +6676,7 @@ end = "2024-05-06"
|
||||
criteria = "safe-to-deploy"
|
||||
user-id = 2915 # Amanieu d'Antras (Amanieu)
|
||||
start = "2019-05-04"
|
||||
end = "2024-05-05"
|
||||
end = "2026-04-29"
|
||||
|
||||
[[trusted.parking_lot_core]]
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
@@ -433,8 +433,8 @@ user-login = "mbrubeck"
|
||||
user-name = "Matt Brubeck"
|
||||
|
||||
[[publisher.parking_lot]]
|
||||
version = "0.12.1"
|
||||
when = "2022-05-31"
|
||||
version = "0.12.3"
|
||||
when = "2024-05-24"
|
||||
user-id = 2915
|
||||
user-login = "Amanieu"
|
||||
user-name = "Amanieu d'Antras"
|
||||
@@ -1255,6 +1255,15 @@ who = "Dan Gohman <dev@sunfishcode.online>"
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "0.2.158 -> 0.2.161"
|
||||
|
||||
[[audits.bytecode-alliance.audits.libc]]
|
||||
who = "Alex Crichton <alex@alexcrichton.com>"
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "0.2.161 -> 0.2.171"
|
||||
notes = """
|
||||
Lots of unsafe, but that's par for the course with libc, it's all FFI type
|
||||
definitions updates/adjustments/etc.
|
||||
"""
|
||||
|
||||
[[audits.bytecode-alliance.audits.memoffset]]
|
||||
who = "Alex Crichton <alex@alexcrichton.com>"
|
||||
criteria = "safe-to-deploy"
|
||||
@@ -1753,6 +1762,32 @@ delta = "1.0.14 -> 1.0.15"
|
||||
notes = "Only minor rustdoc changes."
|
||||
aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT"
|
||||
|
||||
[[audits.google.audits.log]]
|
||||
who = "danakj <danakj@chromium.org>"
|
||||
criteria = "safe-to-deploy"
|
||||
version = "0.4.22"
|
||||
notes = """
|
||||
Unsafe review in https://docs.google.com/document/d/1IXQbD1GhTRqNHIGxq6yy7qHqxeO4CwN5noMFXnqyDIM/edit?usp=sharing
|
||||
|
||||
Unsafety is generally very well-documented, with one exception, which we
|
||||
describe in the review doc.
|
||||
"""
|
||||
aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT"
|
||||
|
||||
[[audits.google.audits.log]]
|
||||
who = "Lukasz Anforowicz <lukasza@chromium.org>"
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "0.4.22 -> 0.4.25"
|
||||
notes = "No impact on `unsafe` usage in `lib.rs`."
|
||||
aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT"
|
||||
|
||||
[[audits.google.audits.log]]
|
||||
who = "Daniel Cheng <dcheng@chromium.org>"
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "0.4.25 -> 0.4.26"
|
||||
notes = "Only trivial code and documentation changes."
|
||||
aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT"
|
||||
|
||||
[[audits.google.audits.nom]]
|
||||
who = "danakj@chromium.org"
|
||||
criteria = "safe-to-deploy"
|
||||
@@ -2299,20 +2334,6 @@ version = "1.4.0"
|
||||
notes = "I have read over the macros, and audited the unsafe code."
|
||||
aggregated-from = "https://raw.githubusercontent.com/mozilla/cargo-vet/main/supply-chain/audits.toml"
|
||||
|
||||
[[audits.mozilla.audits.log]]
|
||||
who = "Jan-Erik Rediger <jrediger@mozilla.com>"
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "0.4.17 -> 0.4.18"
|
||||
notes = "One dependency removed, others updated (which we don't rely on), some APIs (which we don't use) changed."
|
||||
aggregated-from = "https://raw.githubusercontent.com/mozilla/glean/main/supply-chain/audits.toml"
|
||||
|
||||
[[audits.mozilla.audits.log]]
|
||||
who = "Kagami Sascha Rosylight <krosylight@mozilla.com>"
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "0.4.18 -> 0.4.20"
|
||||
notes = "Only cfg attribute and internal macro changes and module refactorings"
|
||||
aggregated-from = "https://raw.githubusercontent.com/mozilla/glean/main/supply-chain/audits.toml"
|
||||
|
||||
[[audits.mozilla.audits.rkv]]
|
||||
who = "Kagami Sascha Rosylight <krosylight@mozilla.com>"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
@@ -1521,16 +1521,22 @@
|
||||
expected:
|
||||
if os == "win": [OK, ERROR]
|
||||
[:format="depth16unorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="depth24plus"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="depth24plus-stencil8"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="depth32float-stencil8"]
|
||||
expected: FAIL
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
[cts.https.html?q=webgpu:api,operation,render_pass,resolve:render_pass_resolve:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "mac": backlog
|
||||
[:separateResolvePass=false;storeOperation="discard"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:separateResolvePass=false;storeOperation="store"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:separateResolvePass=true;storeOperation="discard"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:separateResolvePass=true;storeOperation="store"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
@@ -1,202 +1,135 @@
|
||||
[cts.https.html?q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_only:*]
|
||||
implementation-status: backlog
|
||||
[:colorFormat="bgra8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="bgra8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="bgra8unorm-srgb";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="bgra8unorm-srgb";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg11b10ufloat";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg11b10ufloat";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm-srgb";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm-srgb";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_with_depth_stencil_attachment:*]
|
||||
@@ -210,24 +143,17 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:*]
|
||||
implementation-status: backlog
|
||||
[:depthStencilFormat="depth16unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="depth16unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="depth32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="depth32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="stencil8";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="stencil8";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,multiple_color_attachments:*]
|
||||
|
||||
@@ -1,202 +1,135 @@
|
||||
[dedicated.https.html?worker=dedicated&q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_only:*]
|
||||
implementation-status: backlog
|
||||
[:colorFormat="bgra8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="bgra8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="bgra8unorm-srgb";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="bgra8unorm-srgb";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg11b10ufloat";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg11b10ufloat";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm-srgb";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm-srgb";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[dedicated.https.html?worker=dedicated&q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_with_depth_stencil_attachment:*]
|
||||
@@ -210,24 +143,17 @@
|
||||
|
||||
|
||||
[dedicated.https.html?worker=dedicated&q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:*]
|
||||
implementation-status: backlog
|
||||
[:depthStencilFormat="depth16unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="depth16unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="depth32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="depth32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="stencil8";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="stencil8";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[dedicated.https.html?worker=dedicated&q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,multiple_color_attachments:*]
|
||||
|
||||
@@ -1,202 +1,135 @@
|
||||
[shared.https.html?worker=shared&q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_only:*]
|
||||
implementation-status: backlog
|
||||
[:colorFormat="bgra8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="bgra8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="bgra8unorm-srgb";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="bgra8unorm-srgb";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r16uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r32uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="r8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg11b10ufloat";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg11b10ufloat";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg16uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg32uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rg8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgb10a2unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba16uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba32uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8sint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8sint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8uint";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8uint";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm-srgb";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:colorFormat="rgba8unorm-srgb";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[shared.https.html?worker=shared&q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_with_depth_stencil_attachment:*]
|
||||
@@ -210,24 +143,17 @@
|
||||
|
||||
|
||||
[shared.https.html?worker=shared&q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:*]
|
||||
implementation-status: backlog
|
||||
[:depthStencilFormat="depth16unorm";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="depth16unorm";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="depth32float";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="depth32float";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="stencil8";storeOperation="discard"]
|
||||
expected: FAIL
|
||||
|
||||
[:depthStencilFormat="stencil8";storeOperation="store"]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[shared.https.html?worker=shared&q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,multiple_color_attachments:*]
|
||||
|
||||
@@ -1,104 +1,112 @@
|
||||
[cts.https.html?q=webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "win": backlog
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=0]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=1]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=10]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=11]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=12]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=13]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=14]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=15]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=2]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=3]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=4]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=5]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=6]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=7]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=8]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=9]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=0]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=10]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=11]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=12]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=13]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=14]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=15]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=3]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=4]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=5]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=6]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=7]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=8]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=9]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "win": backlog
|
||||
if os == "mac": backlog
|
||||
expected:
|
||||
if os == "win": [OK, ERROR]
|
||||
[:interpolated=false;sampleCount=1;rasterizationMask=0]
|
||||
@@ -108,52 +116,72 @@
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=0]
|
||||
expected: FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=10]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=11]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=12]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=13]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=14]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=15]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=3]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=4]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=5]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=6]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=7]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=8]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=false;sampleCount=4;rasterizationMask=9]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=1;rasterizationMask=0]
|
||||
expected:
|
||||
@@ -165,49 +193,80 @@
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=0]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=10]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=11]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=12]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=13]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=14]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=15]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=3]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=4]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=5]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=6]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=7]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=8]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:interpolated=true;sampleCount=4;rasterizationMask=9]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
@@ -1,37 +1,28 @@
|
||||
[cts.https.html?q=webgpu:api,operation,rendering,3d_texture_slices:multiple_color_attachments,same_mip_level:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "linux": backlog
|
||||
[:sameTexture=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:sameTexture=true]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,operation,rendering,3d_texture_slices:multiple_color_attachments,same_slice_with_diff_mip_levels:*]
|
||||
implementation-status: backlog
|
||||
[:depthSlice=0]
|
||||
expected: FAIL
|
||||
|
||||
[:depthSlice=1]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,operation,rendering,3d_texture_slices:one_color_attachment,mip_levels:*]
|
||||
implementation-status: backlog
|
||||
[:mipLevel=0;depthSlice=0]
|
||||
expected: FAIL
|
||||
|
||||
[:mipLevel=0;depthSlice=1]
|
||||
expected: FAIL
|
||||
|
||||
[:mipLevel=1;depthSlice=0]
|
||||
expected: FAIL
|
||||
|
||||
[:mipLevel=1;depthSlice=1]
|
||||
expected: FAIL
|
||||
|
||||
[:mipLevel=2;depthSlice=0]
|
||||
expected: FAIL
|
||||
|
||||
[:mipLevel=2;depthSlice=1]
|
||||
expected: FAIL
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
[cts.https.html?q=webgpu:api,operation,rendering,stencil:stencil_accumulation:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "mac": backlog
|
||||
[:format="depth24plus-stencil8"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth32float-stencil8"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="stencil8"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,operation,rendering,stencil:stencil_compare_func:*]
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,operation,resource_init,buffer:copy_texture_to_partial_buffer:*]
|
||||
implementation-status: backlog
|
||||
[:]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,operation,resource_init,buffer:index_buffer:*]
|
||||
|
||||
@@ -46,721 +46,541 @@
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8snorm";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="compute";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="compute";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="compute";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="compute";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="compute";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="fragment";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="fragment";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="fragment";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="fragment";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="fragment";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="vertex";dimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="vertex";dimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="vertex";dimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="vertex";dimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="rgba8unorm";shaderStage="vertex";dimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[cts.https.html?q=webgpu:api,operation,storage_texture,read_write:basic:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "win": backlog
|
||||
[:format="bgra8unorm";shaderStage="compute";textureDimension="1d";depthOrArrayLayers=1]
|
||||
|
||||
[:format="bgra8unorm";shaderStage="compute";textureDimension="2d";depthOrArrayLayers=1]
|
||||
@@ -21,94 +22,70 @@
|
||||
[:format="bgra8unorm";shaderStage="fragment";textureDimension="3d";depthOrArrayLayers=2]
|
||||
|
||||
[:format="r32float";shaderStage="compute";textureDimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="compute";textureDimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="compute";textureDimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="r32float";shaderStage="compute";textureDimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="compute";textureDimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="fragment";textureDimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="fragment";textureDimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="fragment";textureDimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="fragment";textureDimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";shaderStage="fragment";textureDimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="compute";textureDimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="compute";textureDimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="compute";textureDimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="compute";textureDimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="compute";textureDimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="fragment";textureDimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="fragment";textureDimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="fragment";textureDimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="fragment";textureDimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";shaderStage="fragment";textureDimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="compute";textureDimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="compute";textureDimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="compute";textureDimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="compute";textureDimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="compute";textureDimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="fragment";textureDimension="1d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="fragment";textureDimension="2d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="fragment";textureDimension="2d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="fragment";textureDimension="3d";depthOrArrayLayers=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";shaderStage="fragment";textureDimension="3d";depthOrArrayLayers=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";shaderStage="compute";textureDimension="1d";depthOrArrayLayers=1]
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,createBindGroup:binding_must_contain_resource_defined_in_layout:*]
|
||||
implementation-status: backlog
|
||||
[:resourceType="compareSamp";entry={"buffer":{"type":"read-only-storage"}}]
|
||||
|
||||
[:resourceType="compareSamp";entry={"buffer":{"type":"storage"}}]
|
||||
@@ -25,10 +24,8 @@
|
||||
[:resourceType="compareSamp";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="compareSamp";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="compareSamp";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="compareSamp";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -49,10 +46,8 @@
|
||||
[:resourceType="errorBuf";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="errorBuf";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="errorBuf";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="errorBuf";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -73,10 +68,8 @@
|
||||
[:resourceType="errorSamp";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="errorSamp";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="errorSamp";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="errorSamp";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -97,10 +90,8 @@
|
||||
[:resourceType="errorTex";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="errorTex";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="errorTex";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="errorTex";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -121,10 +112,8 @@
|
||||
[:resourceType="filtSamp";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="filtSamp";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="filtSamp";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="filtSamp";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -145,10 +134,8 @@
|
||||
[:resourceType="nonFiltSamp";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="nonFiltSamp";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="nonFiltSamp";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="nonFiltSamp";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -169,10 +156,8 @@
|
||||
[:resourceType="readonlyStorageTex";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="readonlyStorageTex";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="readonlyStorageTex";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="readonlyStorageTex";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -193,10 +178,8 @@
|
||||
[:resourceType="readwriteStorageTex";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="readwriteStorageTex";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="readwriteStorageTex";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="readwriteStorageTex";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -217,10 +200,8 @@
|
||||
[:resourceType="sampledTex";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="sampledTex";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="sampledTex";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="sampledTex";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -241,10 +222,8 @@
|
||||
[:resourceType="sampledTexMS";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="sampledTexMS";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="sampledTexMS";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="sampledTexMS";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -265,10 +244,8 @@
|
||||
[:resourceType="storageBuf";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="storageBuf";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="storageBuf";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="storageBuf";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -289,10 +266,8 @@
|
||||
[:resourceType="uniformBuf";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="uniformBuf";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="uniformBuf";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="uniformBuf";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -313,10 +288,8 @@
|
||||
[:resourceType="writeonlyStorageTex";entry={"sampler":{"type":"non-filtering"}}]
|
||||
|
||||
[:resourceType="writeonlyStorageTex";entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="writeonlyStorageTex";entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:resourceType="writeonlyStorageTex";entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -326,16 +299,13 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,createBindGroup:binding_resources,device_mismatch:*]
|
||||
implementation-status: backlog
|
||||
[:entry={"buffer":{"type":"storage"}}]
|
||||
|
||||
[:entry={"sampler":{"type":"filtering"}}]
|
||||
|
||||
[:entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -1239,9 +1209,7 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,createBindGroup:texture_binding_must_have_correct_usage:*]
|
||||
implementation-status: backlog
|
||||
[:]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,createBindGroup:texture_must_have_correct_component_type:*]
|
||||
|
||||
@@ -267,148 +267,188 @@
|
||||
[:format="astc-8x8-unorm-srgb";access="write-only"]
|
||||
|
||||
[:format="bc1-rgba-unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc1-rgba-unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc1-rgba-unorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc1-rgba-unorm-srgb";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc1-rgba-unorm-srgb";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc1-rgba-unorm-srgb";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc2-rgba-unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc2-rgba-unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc2-rgba-unorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc2-rgba-unorm-srgb";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc2-rgba-unorm-srgb";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc2-rgba-unorm-srgb";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc3-rgba-unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc3-rgba-unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc3-rgba-unorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc3-rgba-unorm-srgb";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc3-rgba-unorm-srgb";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc3-rgba-unorm-srgb";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc4-r-snorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc4-r-snorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc4-r-snorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc4-r-unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc4-r-unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc4-r-unorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc5-rg-snorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc5-rg-snorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc5-rg-snorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc5-rg-unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc5-rg-unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc5-rg-unorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc6h-rgb-float";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc6h-rgb-float";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc6h-rgb-float";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc6h-rgb-ufloat";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc6h-rgb-ufloat";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc6h-rgb-ufloat";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc7-rgba-unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc7-rgba-unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc7-rgba-unorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc7-rgba-unorm-srgb";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc7-rgba-unorm-srgb";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bc7-rgba-unorm-srgb";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bgra8unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bgra8unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bgra8unorm";access="write-only"]
|
||||
|
||||
[:format="bgra8unorm-srgb";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bgra8unorm-srgb";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="bgra8unorm-srgb";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth16unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth16unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth16unorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth24plus";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth24plus";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth24plus";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth24plus-stencil8";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth24plus-stencil8";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth24plus-stencil8";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth32float";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth32float";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth32float";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth32float-stencil8";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth32float-stencil8";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="depth32float-stencil8";access="write-only"]
|
||||
expected: FAIL
|
||||
@@ -474,256 +514,290 @@
|
||||
[:format="etc2-rgba8unorm-srgb";access="write-only"]
|
||||
|
||||
[:format="r16float";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r16float";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r16float";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r16sint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r16sint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r16sint";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r16uint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r16uint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r16uint";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";access="write-only"]
|
||||
|
||||
[:format="r32sint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";access="write-only"]
|
||||
|
||||
[:format="r32uint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";access="write-only"]
|
||||
|
||||
[:format="r8sint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r8sint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r8sint";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r8snorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r8snorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r8snorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r8uint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r8uint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r8uint";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r8unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r8unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r8unorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg11b10ufloat";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg11b10ufloat";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg11b10ufloat";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg16float";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg16float";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg16float";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg16sint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg16sint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg16sint";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg16uint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg16uint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg16uint";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";access="write-only"]
|
||||
|
||||
[:format="rg32sint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";access="write-only"]
|
||||
|
||||
[:format="rg32uint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";access="write-only"]
|
||||
|
||||
[:format="rg8sint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg8sint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg8sint";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg8snorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg8snorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg8snorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg8uint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg8uint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg8uint";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg8unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg8unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg8unorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgb10a2uint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgb10a2uint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgb10a2uint";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgb10a2unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgb10a2unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgb10a2unorm";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgb9e5ufloat";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgb9e5ufloat";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgb9e5ufloat";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";access="write-only"]
|
||||
|
||||
[:format="rgba16sint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";access="write-only"]
|
||||
|
||||
[:format="rgba16uint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";access="write-only"]
|
||||
|
||||
[:format="rgba32float";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";access="write-only"]
|
||||
|
||||
[:format="rgba32sint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";access="write-only"]
|
||||
|
||||
[:format="rgba32uint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";access="write-only"]
|
||||
|
||||
[:format="rgba8sint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";access="write-only"]
|
||||
|
||||
[:format="rgba8snorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8snorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8snorm";access="write-only"]
|
||||
|
||||
[:format="rgba8uint";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";access="write-only"]
|
||||
|
||||
[:format="rgba8unorm";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8unorm";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8unorm";access="write-only"]
|
||||
|
||||
[:format="rgba8unorm-srgb";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8unorm-srgb";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8unorm-srgb";access="write-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="stencil8";access="read-only"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="stencil8";access="read-write"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="stencil8";access="write-only"]
|
||||
expected: FAIL
|
||||
@@ -773,30 +847,31 @@
|
||||
[cts.https.html?q=webgpu:api,validation,createBindGroupLayout:visibility,VERTEX_shader_stage_storage_texture_access:*]
|
||||
implementation-status: backlog
|
||||
[:shaderStage=0]
|
||||
expected: FAIL
|
||||
|
||||
[:shaderStage=1]
|
||||
expected: FAIL
|
||||
|
||||
[:shaderStage=2]
|
||||
expected: FAIL
|
||||
|
||||
[:shaderStage=3]
|
||||
|
||||
[:shaderStage=4]
|
||||
expected: FAIL
|
||||
|
||||
[:shaderStage=4]
|
||||
|
||||
[:shaderStage=5]
|
||||
expected: FAIL
|
||||
|
||||
[:shaderStage=6]
|
||||
expected: FAIL
|
||||
|
||||
[:shaderStage=7]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,createBindGroupLayout:visibility:*]
|
||||
implementation-status: backlog
|
||||
[:visibility=0]
|
||||
expected: FAIL
|
||||
|
||||
[:visibility=1]
|
||||
expected: FAIL
|
||||
@@ -808,7 +883,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:visibility=4]
|
||||
expected: FAIL
|
||||
|
||||
[:visibility=5]
|
||||
expected: FAIL
|
||||
|
||||
@@ -4861,7 +4861,6 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,createTexture:texture_usage:*]
|
||||
implementation-status: backlog
|
||||
[:dimension="1d";format="bgra8unorm"]
|
||||
|
||||
[:dimension="1d";format="bgra8unorm-srgb"]
|
||||
@@ -5127,111 +5126,78 @@
|
||||
[:dimension="2d";format="stencil8"]
|
||||
|
||||
[:dimension="3d";format="bgra8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="bgra8unorm-srgb"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="r16float"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="r16sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="r16uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="r32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="r8sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="r8snorm"]
|
||||
|
||||
[:dimension="3d";format="r8uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="r8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rg11b10ufloat"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rg16float"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rg16sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rg16uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rg32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rg8sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rg8snorm"]
|
||||
|
||||
[:dimension="3d";format="rg8uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rg8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgb10a2uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgb10a2unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgb9e5ufloat"]
|
||||
|
||||
[:dimension="3d";format="rgba16float"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgba32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgba8snorm"]
|
||||
|
||||
[:dimension="3d";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="3d";format="rgba8unorm-srgb"]
|
||||
expected: FAIL
|
||||
|
||||
[:dimension="_undef_";format="astc-10x10-unorm"]
|
||||
|
||||
|
||||
@@ -115,27 +115,19 @@
|
||||
if os == "mac": [OK, TIMEOUT]
|
||||
[:encoderType="compute%20pass";call="dispatch";callWithZero=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="compute%20pass";call="dispatch";callWithZero=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="compute%20pass";call="dispatchIndirect";callWithZero=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="compute%20pass";call="dispatchIndirect";callWithZero=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20bundle";call="draw";callWithZero=false]
|
||||
expected:
|
||||
@@ -187,51 +179,35 @@
|
||||
|
||||
[:encoderType="render%20pass";call="draw";callWithZero=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="draw";callWithZero=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndexed";callWithZero=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndexed";callWithZero=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndexedIndirect";callWithZero=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndexedIndirect";callWithZero=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndirect";callWithZero=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndirect";callWithZero=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bgl_visibility_mismatch:*]
|
||||
|
||||
@@ -163,61 +163,80 @@
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readonlyStorageTex";bindingInShader="compareSamp"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readonlyStorageTex";bindingInShader="filtSamp"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readonlyStorageTex";bindingInShader="readonlyStorageBuf"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readonlyStorageTex";bindingInShader="readonlyStorageTex"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readonlyStorageTex";bindingInShader="readwriteStorageTex"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readonlyStorageTex";bindingInShader="sampledTex"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readonlyStorageTex";bindingInShader="sampledTexMS"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readonlyStorageTex";bindingInShader="storageBuf"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readonlyStorageTex";bindingInShader="uniformBuf"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readonlyStorageTex";bindingInShader="writeonlyStorageTex"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readwriteStorageTex";bindingInShader="compareSamp"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readwriteStorageTex";bindingInShader="filtSamp"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readwriteStorageTex";bindingInShader="readonlyStorageBuf"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readwriteStorageTex";bindingInShader="readonlyStorageTex"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readwriteStorageTex";bindingInShader="readwriteStorageTex"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readwriteStorageTex";bindingInShader="sampledTex"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readwriteStorageTex";bindingInShader="sampledTexMS"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readwriteStorageTex";bindingInShader="storageBuf"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readwriteStorageTex";bindingInShader="uniformBuf"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:bindingInPipelineLayout="readwriteStorageTex";bindingInShader="writeonlyStorageTex"]
|
||||
expected: FAIL
|
||||
|
||||
@@ -1296,28 +1296,21 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:vertex_shader_input_location_in_vertex_state:*]
|
||||
implementation-status: backlog
|
||||
[:]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:vertex_shader_input_location_limit:*]
|
||||
implementation-status: backlog
|
||||
[:]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:vertex_shader_type_matches_attribute_format:*]
|
||||
implementation-status: backlog
|
||||
[:format="float16"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="float16x2"]
|
||||
|
||||
[:format="float16x4"]
|
||||
|
||||
[:format="float32"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="float32x2"]
|
||||
|
||||
@@ -1326,14 +1319,12 @@
|
||||
[:format="float32x4"]
|
||||
|
||||
[:format="sint16"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="sint16x2"]
|
||||
|
||||
[:format="sint16x4"]
|
||||
|
||||
[:format="sint32"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="sint32x2"]
|
||||
|
||||
@@ -1342,35 +1333,30 @@
|
||||
[:format="sint32x4"]
|
||||
|
||||
[:format="sint8"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="sint8x2"]
|
||||
|
||||
[:format="sint8x4"]
|
||||
|
||||
[:format="snorm16"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="snorm16x2"]
|
||||
|
||||
[:format="snorm16x4"]
|
||||
|
||||
[:format="snorm8"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="snorm8x2"]
|
||||
|
||||
[:format="snorm8x4"]
|
||||
|
||||
[:format="uint16"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="uint16x2"]
|
||||
|
||||
[:format="uint16x4"]
|
||||
|
||||
[:format="uint32"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="uint32x2"]
|
||||
|
||||
@@ -1379,7 +1365,6 @@
|
||||
[:format="uint32x4"]
|
||||
|
||||
[:format="uint8"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="uint8x2"]
|
||||
|
||||
@@ -1388,14 +1373,12 @@
|
||||
[:format="unorm10-10-10-2"]
|
||||
|
||||
[:format="unorm16"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="unorm16x2"]
|
||||
|
||||
[:format="unorm16x4"]
|
||||
|
||||
[:format="unorm8"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="unorm8x2"]
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:type0="readonly-storage-texture";type1="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:type0="readonly-storage-texture";type1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
@@ -24,7 +23,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:type0="readwrite-storage-texture";type1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:type0="readwrite-storage-texture";type1="render-target"]
|
||||
expected: FAIL
|
||||
@@ -104,20 +102,16 @@
|
||||
[:compute=false;callDrawOrDispatch=true;entry={"texture":{"sampleType":"unfilterable-float"}}]
|
||||
|
||||
[:compute=true;callDrawOrDispatch=false;entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;callDrawOrDispatch=false;entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;callDrawOrDispatch=false;entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
[:compute=true;callDrawOrDispatch=false;entry={"texture":{"sampleType":"unfilterable-float"}}]
|
||||
|
||||
[:compute=true;callDrawOrDispatch=true;entry={"storageTexture":{"access":"read-only","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;callDrawOrDispatch=true;entry={"storageTexture":{"access":"read-write","format":"r32float"}}]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;callDrawOrDispatch=true;entry={"storageTexture":{"access":"write-only","format":"r32float"}}]
|
||||
|
||||
@@ -163,24 +157,18 @@
|
||||
expected: FAIL
|
||||
|
||||
[:dispatch="none";usage1="readonly-storage-texture";usage2="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:dispatch="none";usage1="readonly-storage-texture";usage2="writeonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:dispatch="none";usage1="sampled-texture";usage2="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:dispatch="none";usage1="sampled-texture";usage2="writeonly-storage-texture"]
|
||||
|
||||
[:dispatch="none";usage1="writeonly-storage-texture";usage2="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:scope,pass_boundary,compute:*]
|
||||
implementation-status: backlog
|
||||
[:]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:scope,pass_boundary,render:*]
|
||||
@@ -282,7 +270,6 @@
|
||||
[cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:subresources_and_binding_types_combination_for_color:*]
|
||||
implementation-status: backlog
|
||||
[:compute=false;type0="readonly-storage-texture";type1="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=false;type0="readonly-storage-texture";type1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
@@ -294,7 +281,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:compute=false;type0="readwrite-storage-texture";type1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=false;type0="readwrite-storage-texture";type1="render-target"]
|
||||
expected: FAIL
|
||||
@@ -325,7 +311,6 @@
|
||||
[:compute=false;type0="writeonly-storage-texture";type1="writeonly-storage-texture"]
|
||||
|
||||
[:compute=true;type0="readonly-storage-texture";type1="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;type0="readonly-storage-texture";type1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
@@ -1125,577 +1110,409 @@
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false]
|
||||
expected: FAIL
|
||||
|
||||
[:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true]
|
||||
expected: FAIL
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,6 @@
|
||||
[cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_misc:subresources,set_bind_group_on_same_index_color_texture:*]
|
||||
implementation-status: backlog
|
||||
[:useDifferentTextureAsTexture2=false;baseLayer2=0;view1Binding="readonly-storage-texture";view2Binding="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=false;baseLayer2=0;view1Binding="readonly-storage-texture";view2Binding="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
@@ -16,7 +15,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=false;baseLayer2=0;view1Binding="readwrite-storage-texture";view2Binding="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=false;baseLayer2=0;view1Binding="readwrite-storage-texture";view2Binding="sampled-texture"]
|
||||
expected: FAIL
|
||||
@@ -47,7 +45,6 @@
|
||||
[:useDifferentTextureAsTexture2=false;baseLayer2=0;view1Binding="writeonly-storage-texture";view2Binding="writeonly-storage-texture"]
|
||||
|
||||
[:useDifferentTextureAsTexture2=false;baseLayer2=1;view1Binding="readonly-storage-texture";view2Binding="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=false;baseLayer2=1;view1Binding="readonly-storage-texture";view2Binding="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
@@ -62,7 +59,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=false;baseLayer2=1;view1Binding="readwrite-storage-texture";view2Binding="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=false;baseLayer2=1;view1Binding="readwrite-storage-texture";view2Binding="sampled-texture"]
|
||||
expected: FAIL
|
||||
@@ -93,7 +89,6 @@
|
||||
[:useDifferentTextureAsTexture2=false;baseLayer2=1;view1Binding="writeonly-storage-texture";view2Binding="writeonly-storage-texture"]
|
||||
|
||||
[:useDifferentTextureAsTexture2=true;baseLayer2=0;view1Binding="readonly-storage-texture";view2Binding="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=true;baseLayer2=0;view1Binding="readonly-storage-texture";view2Binding="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
@@ -108,7 +103,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=true;baseLayer2=0;view1Binding="readwrite-storage-texture";view2Binding="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=true;baseLayer2=0;view1Binding="readwrite-storage-texture";view2Binding="sampled-texture"]
|
||||
expected: FAIL
|
||||
@@ -139,7 +133,6 @@
|
||||
[:useDifferentTextureAsTexture2=true;baseLayer2=0;view1Binding="writeonly-storage-texture";view2Binding="writeonly-storage-texture"]
|
||||
|
||||
[:useDifferentTextureAsTexture2=true;baseLayer2=1;view1Binding="readonly-storage-texture";view2Binding="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=true;baseLayer2=1;view1Binding="readonly-storage-texture";view2Binding="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
@@ -154,7 +147,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=true;baseLayer2=1;view1Binding="readwrite-storage-texture";view2Binding="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:useDifferentTextureAsTexture2=true;baseLayer2=1;view1Binding="readwrite-storage-texture";view2Binding="sampled-texture"]
|
||||
expected: FAIL
|
||||
@@ -201,51 +193,38 @@
|
||||
[cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_misc:subresources,set_unused_bind_group:*]
|
||||
implementation-status: backlog
|
||||
[:inRenderPass=false;textureUsage0="readonly-storage-texture";textureUsage1="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="readonly-storage-texture";textureUsage1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="readonly-storage-texture";textureUsage1="sampled-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="readonly-storage-texture";textureUsage1="writeonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="readwrite-storage-texture";textureUsage1="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="readwrite-storage-texture";textureUsage1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="readwrite-storage-texture";textureUsage1="sampled-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="readwrite-storage-texture";textureUsage1="writeonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="sampled-texture";textureUsage1="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="sampled-texture";textureUsage1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="sampled-texture";textureUsage1="sampled-texture"]
|
||||
|
||||
[:inRenderPass=false;textureUsage0="sampled-texture";textureUsage1="writeonly-storage-texture"]
|
||||
|
||||
[:inRenderPass=false;textureUsage0="writeonly-storage-texture";textureUsage1="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="writeonly-storage-texture";textureUsage1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=false;textureUsage0="writeonly-storage-texture";textureUsage1="sampled-texture"]
|
||||
|
||||
[:inRenderPass=false;textureUsage0="writeonly-storage-texture";textureUsage1="writeonly-storage-texture"]
|
||||
|
||||
[:inRenderPass=true;textureUsage0="readonly-storage-texture";textureUsage1="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=true;textureUsage0="readonly-storage-texture";textureUsage1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
@@ -260,7 +239,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=true;textureUsage0="readwrite-storage-texture";textureUsage1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:inRenderPass=true;textureUsage0="readwrite-storage-texture";textureUsage1="sampled-texture"]
|
||||
expected: FAIL
|
||||
@@ -292,7 +270,6 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_misc:subresources,texture_usages_in_copy_and_render_pass:*]
|
||||
implementation-status: backlog
|
||||
[:usage0="color-attachment";usage1="copy-dst"]
|
||||
|
||||
[:usage0="color-attachment";usage1="copy-src"]
|
||||
@@ -304,10 +281,8 @@
|
||||
[:usage0="copy-dst";usage1="copy-src"]
|
||||
|
||||
[:usage0="copy-dst";usage1="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:usage0="copy-dst";usage1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:usage0="copy-dst";usage1="sampled-texture"]
|
||||
|
||||
@@ -320,26 +295,20 @@
|
||||
[:usage0="copy-src";usage1="copy-src"]
|
||||
|
||||
[:usage0="copy-src";usage1="readonly-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:usage0="copy-src";usage1="readwrite-storage-texture"]
|
||||
expected: FAIL
|
||||
|
||||
[:usage0="copy-src";usage1="sampled-texture"]
|
||||
|
||||
[:usage0="copy-src";usage1="writeonly-storage-texture"]
|
||||
|
||||
[:usage0="readonly-storage-texture";usage1="copy-dst"]
|
||||
expected: FAIL
|
||||
|
||||
[:usage0="readonly-storage-texture";usage1="copy-src"]
|
||||
expected: FAIL
|
||||
|
||||
[:usage0="readwrite-storage-texture";usage1="copy-dst"]
|
||||
expected: FAIL
|
||||
|
||||
[:usage0="readwrite-storage-texture";usage1="copy-src"]
|
||||
expected: FAIL
|
||||
|
||||
[:usage0="sampled-texture";usage1="copy-dst"]
|
||||
|
||||
@@ -369,32 +338,36 @@
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readonly-storage-texture";viewUsage=0]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readonly-storage-texture";viewUsage=1]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readonly-storage-texture";viewUsage=16]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readonly-storage-texture";viewUsage=2]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readonly-storage-texture";viewUsage=4]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readonly-storage-texture";viewUsage=8]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readwrite-storage-texture";viewUsage=0]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readwrite-storage-texture";viewUsage=1]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readwrite-storage-texture";viewUsage=16]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readwrite-storage-texture";viewUsage=2]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readwrite-storage-texture";viewUsage=4]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="readwrite-storage-texture";viewUsage=8]
|
||||
expected: FAIL
|
||||
|
||||
[:bindingType="sampled-texture";viewUsage=0]
|
||||
|
||||
|
||||
@@ -169,12 +169,11 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:compat,api,validation,render_pipeline,unsupported_wgsl:unsupportedStorageTextureFormats,computePipeline:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "win" and debug: backlog
|
||||
[:format="rg32float";entryPoint="csWithStorageUsage";async=false]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";entryPoint="csWithStorageUsage";async=true]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";entryPoint="csWithoutStorageUsage";async=false]
|
||||
expected:
|
||||
@@ -185,10 +184,8 @@
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
|
||||
[:format="rg32sint";entryPoint="csWithStorageUsage";async=false]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";entryPoint="csWithStorageUsage";async=true]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";entryPoint="csWithoutStorageUsage";async=false]
|
||||
expected:
|
||||
@@ -199,10 +196,8 @@
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
|
||||
[:format="rg32uint";entryPoint="csWithStorageUsage";async=false]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";entryPoint="csWithStorageUsage";async=true]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";entryPoint="csWithoutStorageUsage";async=false]
|
||||
expected:
|
||||
@@ -214,12 +209,11 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:compat,api,validation,render_pipeline,unsupported_wgsl:unsupportedStorageTextureFormats,renderPipeline:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "win" and debug: backlog
|
||||
[:format="rg32float";entryPoint="vsWithStorageUsage";async=false]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";entryPoint="vsWithStorageUsage";async=true]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";entryPoint="vsWithoutStorageUsage";async=false]
|
||||
expected:
|
||||
@@ -230,10 +224,8 @@
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
|
||||
[:format="rg32sint";entryPoint="vsWithStorageUsage";async=false]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";entryPoint="vsWithStorageUsage";async=true]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";entryPoint="vsWithoutStorageUsage";async=false]
|
||||
expected:
|
||||
@@ -244,10 +236,8 @@
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
|
||||
[:format="rg32uint";entryPoint="vsWithStorageUsage";async=false]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";entryPoint="vsWithStorageUsage";async=true]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";entryPoint="vsWithoutStorageUsage";async=false]
|
||||
expected:
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot4I8Packed:basic:*]
|
||||
implementation-status:
|
||||
if os == "win": backlog
|
||||
if os == "mac": backlog
|
||||
[:inputSource="const"]
|
||||
|
||||
[:inputSource="storage_r"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:inputSource="storage_rw"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:inputSource="uniform"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot4U8Packed:basic:*]
|
||||
implementation-status:
|
||||
if os == "win": backlog
|
||||
if os == "mac": backlog
|
||||
[:inputSource="const"]
|
||||
|
||||
[:inputSource="storage_r"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:inputSource="storage_rw"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:inputSource="uniform"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
@@ -386,13 +386,11 @@
|
||||
|
||||
[:format="rg11b10ufloat";aspect="all";samples=1]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "win": [PASS, FAIL]
|
||||
|
||||
[:format="rg11b10ufloat";aspect="all";samples=4]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "win": [PASS, FAIL]
|
||||
|
||||
[:format="rg16float";aspect="all";samples=1]
|
||||
|
||||
@@ -432,11 +430,11 @@
|
||||
|
||||
[:format="rgb10a2unorm";aspect="all";samples=1]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
|
||||
[:format="rgb10a2unorm";aspect="all";samples=4]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
|
||||
[:format="rgb9e5ufloat";aspect="all";samples=1]
|
||||
expected:
|
||||
@@ -496,49 +494,33 @@
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32float";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32sint";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rg32uint";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16float";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16sint";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba16uint";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32float";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32sint";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba32uint";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8sint";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8snorm";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8uint";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="rgba8unorm";aspect="all"]
|
||||
expected: FAIL
|
||||
|
||||
@@ -2802,154 +2802,166 @@
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="r32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rg32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba16float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="bgra8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="r32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rg32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba16float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="bgra8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="r32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rg32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba16float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:storage_textures_2d:*]
|
||||
@@ -2958,154 +2970,166 @@
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="r32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rg32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba16float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="bgra8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="r32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rg32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba16float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="bgra8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="r32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rg32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba16float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:storage_textures_2d_array:*]
|
||||
@@ -3114,154 +3138,166 @@
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="r32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rg32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba16float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="c";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="bgra8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="r32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rg32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba16float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="f";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="bgra8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="r32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rg32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba16float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba32float"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:stage="v";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:storage_textures_3d:*]
|
||||
@@ -3270,151 +3306,103 @@
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="r32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rg32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba16float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="c";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="bgra8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="r32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rg32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba16float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="f";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="bgra8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="r32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="r32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="r32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rg32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rg32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rg32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba16float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba16sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba16uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba32float"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba32sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba32uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba8sint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba8snorm"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba8uint"]
|
||||
expected: FAIL
|
||||
|
||||
[:stage="v";format="rgba8unorm"]
|
||||
expected: FAIL
|
||||
|
||||
@@ -43,97 +43,129 @@
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="r32float";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="r32sint";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="r32sint";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="r32uint";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="r32uint";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rg32float";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rg32float";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rg32sint";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rg32sint";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rg32uint";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rg32uint";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba16float";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba16float";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba16sint";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba16sint";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba16uint";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba16uint";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba32float";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba32float";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba32sint";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba32sint";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba32uint";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba32uint";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba8sint";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba8sint";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba8snorm";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba8snorm";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba8uint";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba8uint";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba8unorm";view_type="full"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:format="rgba8unorm";view_type="partial"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
@@ -71,7 +71,9 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureStore:texel_formats:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "win": backlog
|
||||
if os == "linux": backlog
|
||||
[:format="bgra8unorm";viewDimension="1d";stage="compute";access="write";mipLevel=0]
|
||||
|
||||
[:format="bgra8unorm";viewDimension="1d";stage="fragment";access="write";mipLevel=0]
|
||||
@@ -113,123 +115,206 @@
|
||||
[:format="bgra8unorm";viewDimension="3d";stage="fragment";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32float";viewDimension="1d";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";viewDimension="1d";stage="compute";access="write";mipLevel=0]
|
||||
|
||||
[:format="r32float";viewDimension="1d";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";viewDimension="1d";stage="fragment";access="write";mipLevel=0]
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="compute";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="compute";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="compute";access="write";mipLevel=0]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="compute";access="write";mipLevel=1]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="compute";access="write";mipLevel=2]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="fragment";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="fragment";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="fragment";access="write";mipLevel=0]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="fragment";access="write";mipLevel=1]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d";stage="fragment";access="write";mipLevel=2]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="compute";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="compute";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="compute";access="write";mipLevel=0]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="compute";access="write";mipLevel=1]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="compute";access="write";mipLevel=2]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="fragment";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="fragment";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="fragment";access="write";mipLevel=0]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="fragment";access="write";mipLevel=1]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="2d-array";stage="fragment";access="write";mipLevel=2]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="compute";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="compute";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="compute";access="write";mipLevel=0]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="compute";access="write";mipLevel=1]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="compute";access="write";mipLevel=2]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="fragment";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="fragment";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="fragment";access="write";mipLevel=0]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="fragment";access="write";mipLevel=1]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32float";viewDimension="3d";stage="fragment";access="write";mipLevel=2]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="1d";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="1d";stage="compute";access="write";mipLevel=0]
|
||||
|
||||
[:format="r32sint";viewDimension="1d";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="1d";stage="fragment";access="write";mipLevel=0]
|
||||
|
||||
[:format="r32sint";viewDimension="2d";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d";stage="compute";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d";stage="compute";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d";stage="compute";access="write";mipLevel=0]
|
||||
|
||||
@@ -238,13 +323,10 @@
|
||||
[:format="r32sint";viewDimension="2d";stage="compute";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32sint";viewDimension="2d";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d";stage="fragment";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d";stage="fragment";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d";stage="fragment";access="write";mipLevel=0]
|
||||
|
||||
@@ -253,13 +335,10 @@
|
||||
[:format="r32sint";viewDimension="2d";stage="fragment";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32sint";viewDimension="2d-array";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d-array";stage="compute";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d-array";stage="compute";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d-array";stage="compute";access="write";mipLevel=0]
|
||||
|
||||
@@ -268,13 +347,10 @@
|
||||
[:format="r32sint";viewDimension="2d-array";stage="compute";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32sint";viewDimension="2d-array";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d-array";stage="fragment";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d-array";stage="fragment";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="2d-array";stage="fragment";access="write";mipLevel=0]
|
||||
|
||||
@@ -283,13 +359,10 @@
|
||||
[:format="r32sint";viewDimension="2d-array";stage="fragment";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32sint";viewDimension="3d";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="3d";stage="compute";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="3d";stage="compute";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="3d";stage="compute";access="write";mipLevel=0]
|
||||
|
||||
@@ -298,13 +371,10 @@
|
||||
[:format="r32sint";viewDimension="3d";stage="compute";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32sint";viewDimension="3d";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="3d";stage="fragment";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="3d";stage="fragment";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";viewDimension="3d";stage="fragment";access="write";mipLevel=0]
|
||||
|
||||
@@ -313,23 +383,18 @@
|
||||
[:format="r32sint";viewDimension="3d";stage="fragment";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32uint";viewDimension="1d";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="1d";stage="compute";access="write";mipLevel=0]
|
||||
|
||||
[:format="r32uint";viewDimension="1d";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="1d";stage="fragment";access="write";mipLevel=0]
|
||||
|
||||
[:format="r32uint";viewDimension="2d";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d";stage="compute";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d";stage="compute";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d";stage="compute";access="write";mipLevel=0]
|
||||
|
||||
@@ -338,13 +403,10 @@
|
||||
[:format="r32uint";viewDimension="2d";stage="compute";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32uint";viewDimension="2d";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d";stage="fragment";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d";stage="fragment";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d";stage="fragment";access="write";mipLevel=0]
|
||||
|
||||
@@ -353,13 +415,10 @@
|
||||
[:format="r32uint";viewDimension="2d";stage="fragment";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32uint";viewDimension="2d-array";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d-array";stage="compute";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d-array";stage="compute";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d-array";stage="compute";access="write";mipLevel=0]
|
||||
|
||||
@@ -368,13 +427,10 @@
|
||||
[:format="r32uint";viewDimension="2d-array";stage="compute";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32uint";viewDimension="2d-array";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d-array";stage="fragment";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d-array";stage="fragment";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="2d-array";stage="fragment";access="write";mipLevel=0]
|
||||
|
||||
@@ -383,13 +439,10 @@
|
||||
[:format="r32uint";viewDimension="2d-array";stage="fragment";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32uint";viewDimension="3d";stage="compute";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="3d";stage="compute";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="3d";stage="compute";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="3d";stage="compute";access="write";mipLevel=0]
|
||||
|
||||
@@ -398,13 +451,10 @@
|
||||
[:format="r32uint";viewDimension="3d";stage="compute";access="write";mipLevel=2]
|
||||
|
||||
[:format="r32uint";viewDimension="3d";stage="fragment";access="read_write";mipLevel=0]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="3d";stage="fragment";access="read_write";mipLevel=1]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="3d";stage="fragment";access="read_write";mipLevel=2]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";viewDimension="3d";stage="fragment";access="write";mipLevel=0]
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[cts.https.html?q=webgpu:shader,execution,memory_model,barrier:workgroup_barrier_load_store:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "win" and not debug: backlog
|
||||
expected:
|
||||
if os == "win" and not debug: [OK, TIMEOUT]
|
||||
[:accessValueType="f16";memType="non_atomic_storage";accessPair="rw";normalBarrier=false]
|
||||
@@ -23,7 +24,6 @@
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:accessValueType="u32";memType="non_atomic_texture";accessPair="rw";normalBarrier=true]
|
||||
expected: FAIL
|
||||
|
||||
[:accessValueType="u32";memType="non_atomic_workgroup";accessPair="rw";normalBarrier=false]
|
||||
expected:
|
||||
@@ -33,7 +33,8 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,memory_model,barrier:workgroup_barrier_store_load:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "win" and not debug: backlog
|
||||
expected:
|
||||
if os == "win" and not debug: [OK, TIMEOUT]
|
||||
[:accessValueType="f16";memType="non_atomic_storage";accessPair="wr";normalBarrier=false]
|
||||
@@ -57,7 +58,6 @@
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:accessValueType="u32";memType="non_atomic_texture";accessPair="wr";normalBarrier=true]
|
||||
expected: FAIL
|
||||
|
||||
[:accessValueType="u32";memType="non_atomic_workgroup";accessPair="wr";normalBarrier=false]
|
||||
expected:
|
||||
@@ -67,7 +67,6 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,memory_model,barrier:workgroup_barrier_store_store:*]
|
||||
implementation-status: backlog
|
||||
[:accessValueType="f16";memType="non_atomic_storage";accessPair="ww";normalBarrier=false]
|
||||
|
||||
[:accessValueType="f16";memType="non_atomic_storage";accessPair="ww";normalBarrier=true]
|
||||
@@ -87,7 +86,6 @@
|
||||
[:accessValueType="u32";memType="non_atomic_texture";accessPair="ww";normalBarrier=false]
|
||||
|
||||
[:accessValueType="u32";memType="non_atomic_texture";accessPair="ww";normalBarrier=true]
|
||||
expected: FAIL
|
||||
|
||||
[:accessValueType="u32";memType="non_atomic_workgroup";accessPair="ww";normalBarrier=false]
|
||||
|
||||
|
||||
@@ -1,37 +1,24 @@
|
||||
[cts.https.html?q=webgpu:shader,execution,memory_model,texture_intra_invocation_coherence:texture_intra_invocation_coherence:*]
|
||||
implementation-status: backlog
|
||||
[:format="r32float";dim="1d"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";dim="2d"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";dim="2d-array"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32float";dim="3d"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";dim="1d"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";dim="2d"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";dim="2d-array"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32sint";dim="3d"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";dim="1d"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";dim="2d"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";dim="2d-array"]
|
||||
expected: FAIL
|
||||
|
||||
[:format="r32uint";dim="3d"]
|
||||
expected: FAIL
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
[cts.https.html?q=webgpu:shader,execution,shader_io,fragment_builtins:inputs,front_facing:*]
|
||||
implementation-status: backlog
|
||||
[:nearFar=[0,1\];sampleCount=1;frontFace="ccw";interpolation={"type":"flat","sampling":"either"}]
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=1;frontFace="ccw";interpolation={"type":"flat","sampling":"first"}]
|
||||
@@ -33,52 +32,36 @@
|
||||
[:nearFar=[0,1\];sampleCount=1;frontFace="cw";interpolation={"type":"perspective","sampling":"sample"}]
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="ccw";interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="ccw";interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="ccw";interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="ccw";interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="ccw";interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="ccw";interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="ccw";interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="ccw";interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="cw";interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="cw";interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="cw";interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="cw";interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="cw";interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="cw";interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="cw";interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;frontFace="cw";interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=1;frontFace="ccw";interpolation={"type":"flat","sampling":"either"}]
|
||||
|
||||
@@ -113,56 +96,39 @@
|
||||
[:nearFar=[0.25,0.75\];sampleCount=1;frontFace="cw";interpolation={"type":"perspective","sampling":"sample"}]
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="ccw";interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="ccw";interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="ccw";interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="ccw";interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="ccw";interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="ccw";interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="ccw";interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="ccw";interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="cw";interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="cw";interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="cw";interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="cw";interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="cw";interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="cw";interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="cw";interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;frontFace="cw";interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,shader_io,fragment_builtins:inputs,interStage,centroid:*]
|
||||
implementation-status: backlog
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"linear","sampling":"center"}]
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"linear","sampling":"centroid"}]
|
||||
@@ -172,16 +138,12 @@
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=1;interpolation={"type":"linear","sampling":"center"}]
|
||||
|
||||
@@ -192,20 +154,17 @@
|
||||
[:nearFar=[0.25,0.75\];sampleCount=1;interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,shader_io,fragment_builtins:inputs,interStage:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "linux": backlog
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"flat","sampling":"either"}]
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"flat","sampling":"first"}]
|
||||
@@ -231,31 +190,30 @@
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"perspective"}]
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"flat"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=1;interpolation={"type":"flat","sampling":"either"}]
|
||||
|
||||
@@ -282,35 +240,36 @@
|
||||
[:nearFar=[0.25,0.75\];sampleCount=1;interpolation={"type":"perspective"}]
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"flat"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective"}]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,shader_io,fragment_builtins:inputs,position:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "win": backlog
|
||||
if os == "linux": backlog
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"flat","sampling":"either"}]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
@@ -344,28 +303,38 @@
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=1;interpolation={"type":"flat","sampling":"either"}]
|
||||
expected:
|
||||
@@ -400,32 +369,41 @@
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,shader_io,fragment_builtins:inputs,sample_index:*]
|
||||
implementation-status: backlog
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"flat","sampling":"either"}]
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"flat","sampling":"first"}]
|
||||
@@ -443,28 +421,20 @@
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=1;interpolation={"type":"flat","sampling":"either"}]
|
||||
|
||||
@@ -483,32 +453,25 @@
|
||||
[:nearFar=[0.25,0.75\];sampleCount=1;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,shader_io,fragment_builtins:inputs,sample_mask:*]
|
||||
implementation-status: backlog
|
||||
implementation-status:
|
||||
if os == "linux": backlog
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"flat","sampling":"either"}]
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"flat","sampling":"first"}]
|
||||
@@ -526,28 +489,36 @@
|
||||
[:nearFar=[0,1\];sampleCount=1;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0,1\];sampleCount=4;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=1;interpolation={"type":"flat","sampling":"either"}]
|
||||
|
||||
@@ -566,28 +537,36 @@
|
||||
[:nearFar=[0.25,0.75\];sampleCount=1;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"flat","sampling":"either"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"flat","sampling":"first"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"center"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"linear","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"center"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"centroid"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
[:nearFar=[0.25,0.75\];sampleCount=4;interpolation={"type":"perspective","sampling":"sample"}]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,shader_io,fragment_builtins:subgroup_invocation_id:*]
|
||||
|
||||
@@ -961,7 +961,6 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,execution,shader_io,workgroup_size:workgroup_size_override_exp:*]
|
||||
implementation-status: backlog
|
||||
[:override1=11;override2=1;override3=1]
|
||||
|
||||
[:override1=11;override2=1;override3=2]
|
||||
@@ -1059,42 +1058,32 @@
|
||||
[:override1=16;override2=4;override3=8]
|
||||
|
||||
[:override1=1;override2=1;override3=1]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=1;override2=1;override3=2]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=1;override2=1;override3=4]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=1;override2=1;override3=8]
|
||||
|
||||
[:override1=1;override2=2;override3=1]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=1;override2=2;override3=2]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=1;override2=2;override3=4]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=1;override2=2;override3=8]
|
||||
|
||||
[:override1=1;override2=3;override3=1]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=1;override2=3;override3=2]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=1;override2=3;override3=4]
|
||||
|
||||
[:override1=1;override2=3;override3=8]
|
||||
|
||||
[:override1=1;override2=4;override3=1]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=1;override2=4;override3=2]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=1;override2=4;override3=4]
|
||||
|
||||
@@ -1133,38 +1122,30 @@
|
||||
[:override1=256;override2=4;override3=8]
|
||||
|
||||
[:override1=3;override2=1;override3=1]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=3;override2=1;override3=2]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=3;override2=1;override3=4]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=3;override2=1;override3=8]
|
||||
|
||||
[:override1=3;override2=2;override3=1]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=3;override2=2;override3=2]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=3;override2=2;override3=4]
|
||||
|
||||
[:override1=3;override2=2;override3=8]
|
||||
|
||||
[:override1=3;override2=3;override3=1]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=3;override2=3;override3=2]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=3;override2=3;override3=4]
|
||||
|
||||
[:override1=3;override2=3;override3=8]
|
||||
|
||||
[:override1=3;override2=4;override3=1]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=3;override2=4;override3=2]
|
||||
|
||||
@@ -1173,44 +1154,30 @@
|
||||
[:override1=3;override2=4;override3=8]
|
||||
|
||||
[:override1=4;override2=1;override3=1]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=4;override2=1;override3=2]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=4;override2=1;override3=4]
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:override1=4;override2=1;override3=8]
|
||||
|
||||
[:override1=4;override2=2;override3=1]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=4;override2=2;override3=2]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=4;override2=2;override3=4]
|
||||
|
||||
[:override1=4;override2=2;override3=8]
|
||||
|
||||
[:override1=4;override2=3;override3=1]
|
||||
expected: FAIL
|
||||
|
||||
[:override1=4;override2=3;override3=2]
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:override1=4;override2=3;override3=4]
|
||||
|
||||
[:override1=4;override2=3;override3=8]
|
||||
|
||||
[:override1=4;override2=4;override3=1]
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:override1=4;override2=4;override3=2]
|
||||
|
||||
@@ -1283,9 +1250,6 @@
|
||||
[:override1=64;override2=4;override3=8]
|
||||
|
||||
[:override1=8;override2=1;override3=1]
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:override1=8;override2=1;override3=2]
|
||||
|
||||
|
||||
@@ -1761,7 +1761,6 @@
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureLoad:sample_index_argument,non_storage:*]
|
||||
implementation-status: backlog
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="abstract-float"]
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="abstract-int"]
|
||||
@@ -1775,12 +1774,10 @@
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="i32"]
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="u32"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec2%3Cabstract-float%3E"]
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec2%3Cabstract-int%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec2%3Cbool%3E"]
|
||||
|
||||
@@ -1789,14 +1786,12 @@
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec2%3Cf32%3E"]
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec2%3Ci32%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec2%3Cu32%3E"]
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec3%3Cabstract-float%3E"]
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec3%3Cabstract-int%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec3%3Cbool%3E"]
|
||||
|
||||
@@ -1805,14 +1800,12 @@
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec3%3Cf32%3E"]
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec3%3Ci32%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec3%3Cu32%3E"]
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec4%3Cabstract-float%3E"]
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec4%3Cabstract-int%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec4%3Cbool%3E"]
|
||||
|
||||
@@ -1821,7 +1814,6 @@
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec4%3Cf32%3E"]
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec4%3Ci32%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_depth_multisampled_2d";sampleIndexType="vec4%3Cu32%3E"]
|
||||
|
||||
@@ -1838,12 +1830,10 @@
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="i32"]
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="u32"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec2%3Cabstract-float%3E"]
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec2%3Cabstract-int%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec2%3Cbool%3E"]
|
||||
|
||||
@@ -1852,14 +1842,12 @@
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec2%3Cf32%3E"]
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec2%3Ci32%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec2%3Cu32%3E"]
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec3%3Cabstract-float%3E"]
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec3%3Cabstract-int%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec3%3Cbool%3E"]
|
||||
|
||||
@@ -1868,14 +1856,12 @@
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec3%3Cf32%3E"]
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec3%3Ci32%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec3%3Cu32%3E"]
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec4%3Cabstract-float%3E"]
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec4%3Cabstract-int%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec4%3Cbool%3E"]
|
||||
|
||||
@@ -1884,7 +1870,6 @@
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec4%3Cf32%3E"]
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec4%3Ci32%3E"]
|
||||
expected: FAIL
|
||||
|
||||
[:textureType="texture_multisampled_2d";sampleIndexType="vec4%3Cu32%3E"]
|
||||
|
||||
|
||||
2
third_party/rust/libc/.cargo-checksum.json
vendored
2
third_party/rust/libc/.cargo-checksum.json
vendored
File diff suppressed because one or more lines are too long
360
third_party/rust/libc/CHANGELOG.md
vendored
360
third_party/rust/libc/CHANGELOG.md
vendored
@@ -2,6 +2,366 @@
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.2.171](https://github.com/rust-lang/libc/compare/0.2.170...0.2.171) - 2025-03-11
|
||||
|
||||
### Added
|
||||
|
||||
- Android: Add `if_nameindex`/`if_freenameindex` support ([#4247](https://github.com/rust-lang/libc/pull/4247))
|
||||
- Apple: Add missing proc types and constants ([#4310](https://github.com/rust-lang/libc/pull/4310))
|
||||
- BSD: Add `devname` ([#4285](https://github.com/rust-lang/libc/pull/4285))
|
||||
- Cygwin: Add PTY and group API ([#4309](https://github.com/rust-lang/libc/pull/4309))
|
||||
- Cygwin: Add support ([#4279](https://github.com/rust-lang/libc/pull/4279))
|
||||
- FreeBSD: Make `spawn.h` interfaces available on all FreeBSD-like systems ([#4294](https://github.com/rust-lang/libc/pull/4294))
|
||||
- Linux: Add `AF_XDP` structs for all Linux environments ([#4163](https://github.com/rust-lang/libc/pull/4163))
|
||||
- Linux: Add SysV semaphore constants ([#4286](https://github.com/rust-lang/libc/pull/4286))
|
||||
- Linux: Add `F_SEAL_EXEC` ([#4316](https://github.com/rust-lang/libc/pull/4316))
|
||||
- Linux: Add `SO_PREFER_BUSY_POLL` and `SO_BUSY_POLL_BUDGET` ([#3917](https://github.com/rust-lang/libc/pull/3917))
|
||||
- Linux: Add `devmem` structs ([#4299](https://github.com/rust-lang/libc/pull/4299))
|
||||
- Linux: Add socket constants up to `SO_DEVMEM_DONTNEED` ([#4299](https://github.com/rust-lang/libc/pull/4299))
|
||||
- NetBSD, OpenBSD, DragonflyBSD: Add `closefrom` ([#4290](https://github.com/rust-lang/libc/pull/4290))
|
||||
- NuttX: Add `pw_passwd` field to `passwd` ([#4222](https://github.com/rust-lang/libc/pull/4222))
|
||||
- Solarish: define `IP_BOUND_IF` and `IPV6_BOUND_IF` ([#4287](https://github.com/rust-lang/libc/pull/4287))
|
||||
- Wali: Add bindings for `wasm32-wali-linux-musl` target ([#4244](https://github.com/rust-lang/libc/pull/4244))
|
||||
|
||||
### Changed
|
||||
|
||||
- AIX: Use `sa_sigaction` instead of a union ([#4250](https://github.com/rust-lang/libc/pull/4250))
|
||||
- Make `msqid_ds.__msg_cbytes` public ([#4301](https://github.com/rust-lang/libc/pull/4301))
|
||||
- Unix: Make all `major`, `minor`, `makedev` into `const fn` ([#4208](https://github.com/rust-lang/libc/pull/4208))
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Linux: Deprecate obsolete packet filter interfaces ([#4267](https://github.com/rust-lang/libc/pull/4267))
|
||||
|
||||
### Fixed
|
||||
|
||||
- Cygwin: Fix strerror_r ([#4308](https://github.com/rust-lang/libc/pull/4308))
|
||||
- Cygwin: Fix usage of f! ([#4308](https://github.com/rust-lang/libc/pull/4308))
|
||||
- Hermit: Make `stat::st_size` signed ([#4298](https://github.com/rust-lang/libc/pull/4298))
|
||||
- Linux: Correct values for `SI_TIMER`, `SI_MESGQ`, `SI_ASYNCIO` ([#4292](https://github.com/rust-lang/libc/pull/4292))
|
||||
- NuttX: Update `tm_zone` and `d_name` fields to use `c_char` type ([#4222](https://github.com/rust-lang/libc/pull/4222))
|
||||
- Xous: Include the prelude to define `c_int` ([#4304](https://github.com/rust-lang/libc/pull/4304))
|
||||
|
||||
### Other
|
||||
|
||||
- Add labels to FIXMEs ([#4231](https://github.com/rust-lang/libc/pull/4231), [#4232](https://github.com/rust-lang/libc/pull/4232), [#4234](https://github.com/rust-lang/libc/pull/4234), [#4235](https://github.com/rust-lang/libc/pull/4235), [#4236](https://github.com/rust-lang/libc/pull/4236))
|
||||
- CI: Fix "cannot find libc" error on Sparc64 ([#4317](https://github.com/rust-lang/libc/pull/4317))
|
||||
- CI: Fix "cannot find libc" error on s390x ([#4317](https://github.com/rust-lang/libc/pull/4317))
|
||||
- CI: Pass `--no-self-update` to `rustup update` ([#4306](https://github.com/rust-lang/libc/pull/4306))
|
||||
- CI: Remove tests for the `i586-pc-windows-msvc` target ([#4311](https://github.com/rust-lang/libc/pull/4311))
|
||||
- CI: Remove the `check_cfg` job ([#4322](https://github.com/rust-lang/libc/pull/4312))
|
||||
- Change the range syntax that is giving `ctest` problems ([#4311](https://github.com/rust-lang/libc/pull/4311))
|
||||
- Linux: Split out the stat struct for gnu/b32/mips ([#4276](https://github.com/rust-lang/libc/pull/4276))
|
||||
|
||||
### Removed
|
||||
|
||||
- NuttX: Remove `pthread_set_name_np` ([#4251](https://github.com/rust-lang/libc/pull/4251))
|
||||
|
||||
## [0.2.170](https://github.com/rust-lang/libc/compare/0.2.169...0.2.170) - 2025-02-23
|
||||
|
||||
### Added
|
||||
|
||||
- Android: Declare `setdomainname` and `getdomainname` <https://github.com/rust-lang/libc/pull/4212>
|
||||
- FreeBSD: Add `evdev` structures <https://github.com/rust-lang/libc/pull/3756>
|
||||
- FreeBSD: Add the new `st_filerev` field to `stat32` ([#4254](https://github.com/rust-lang/libc/pull/4254))
|
||||
- Linux: Add `SI_*`` and `TRAP_*`` signal codes <https://github.com/rust-lang/libc/pull/4225>
|
||||
- Linux: Add experimental configuration to enable 64-bit time in kernel APIs, set by `RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64`. <https://github.com/rust-lang/libc/pull/4148>
|
||||
- Linux: Add recent socket timestamping flags <https://github.com/rust-lang/libc/pull/4273>
|
||||
- Linux: Added new CANFD_FDF flag for the flags field of canfd_frame <https://github.com/rust-lang/libc/pull/4223>
|
||||
- Musl: add CLONE_NEWTIME <https://github.com/rust-lang/libc/pull/4226>
|
||||
- Solarish: add the posix_spawn family of functions <https://github.com/rust-lang/libc/pull/4259>
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Linux: deprecate kernel modules syscalls <https://github.com/rust-lang/libc/pull/4228>
|
||||
|
||||
### Changed
|
||||
|
||||
- Emscripten: Assume version is at least 3.1.42 <https://github.com/rust-lang/libc/pull/4243>
|
||||
|
||||
### Fixed
|
||||
|
||||
- BSD: Correct the definition of `WEXITSTATUS` <https://github.com/rust-lang/libc/pull/4213>
|
||||
- Hurd: Fix CMSG_DATA on 64bit systems ([#4240](https://github.com/rust-lang/libc/pull/424))
|
||||
- NetBSD: fix `getmntinfo` ([#4265](https://github.com/rust-lang/libc/pull/4265)
|
||||
- VxWorks: Fix the size of `time_t` <https://github.com/rust-lang/libc/pull/426>
|
||||
|
||||
### Other
|
||||
|
||||
- Add labels to FIXMEs <https://github.com/rust-lang/libc/pull/4230>, <https://github.com/rust-lang/libc/pull/4229>, <https://github.com/rust-lang/libc/pull/4237>
|
||||
- CI: Bump FreeBSD CI to 13.4 and 14.2 <https://github.com/rust-lang/libc/pull/4260>
|
||||
- Copy definitions from core::ffi and centralize them <https://github.com/rust-lang/libc/pull/4256>
|
||||
- Define c_char at top-level and remove per-target c_char definitions <https://github.com/rust-lang/libc/pull/4202>
|
||||
- Port style.rs to syn and add tests for the style checker <https://github.com/rust-lang/libc/pull/4220>
|
||||
|
||||
## [0.2.169](https://github.com/rust-lang/libc/compare/0.2.168...0.2.169) - 2024-12-18
|
||||
|
||||
### Added
|
||||
|
||||
- FreeBSD: add more socket TCP stack constants <https://github.com/rust-lang/libc/pull/4193>
|
||||
- Fuchsia: add a `sockaddr_vm` definition <https://github.com/rust-lang/libc/pull/4194>
|
||||
|
||||
### Fixed
|
||||
|
||||
**Breaking**: [rust-lang/rust#132975](https://github.com/rust-lang/rust/pull/132975) corrected the signedness of `core::ffi::c_char` on various Tier 2 and Tier 3 platforms (mostly Arm and RISC-V) to match Clang. This release contains the corresponding changes to `libc`, including the following specific pull requests:
|
||||
|
||||
- ESP-IDF: Replace arch-conditional `c_char` with a reexport <https://github.com/rust-lang/libc/pull/4195>
|
||||
- Fix `c_char` on various targets <https://github.com/rust-lang/libc/pull/4199>
|
||||
- Mirror `c_char` configuration from `rust-lang/rust` <https://github.com/rust-lang/libc/pull/4198>
|
||||
|
||||
### Cleanup
|
||||
|
||||
- Do not re-export `c_void` in target-specific code <https://github.com/rust-lang/libc/pull/4200>
|
||||
|
||||
## [0.2.168](https://github.com/rust-lang/libc/compare/0.2.167...0.2.168) - 2024-12-09
|
||||
|
||||
### Added
|
||||
|
||||
- Linux: Add new process flags ([#4174](https://github.com/rust-lang/libc/pull/4174))
|
||||
- Linux: Make `IFA_*` constants available on all Linux targets <https://github.com/rust-lang/libc/pull/4185>
|
||||
- Linux: add `MAP_DROPPABLE` <https://github.com/rust-lang/libc/pull/4173>
|
||||
- Solaris, Illumos: add `SIGRTMIN` and `SIGRTMAX` <https://github.com/rust-lang/libc/pull/4171>
|
||||
- Unix, Linux: adding POSIX `memccpy` and `mempcpy` GNU extension <https://github.com/rust-lang/libc/pull/4186.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- FreeBSD: Deprecate the CAP_UNUSED* and CAP_ALL* constants ([#4183](https://github.com/rust-lang/libc/pull/4183))
|
||||
|
||||
### Fixed
|
||||
|
||||
- Make the `Debug` implementation for unions opaque ([#4176](https://github.com/rust-lang/libc/pull/4176))
|
||||
|
||||
### Other
|
||||
|
||||
- Allow the `unpredictable_function_pointer_comparisons` lint where needed <https://github.com/rust-lang/libc/pull/4177>
|
||||
- CI: Upload artifacts created by libc-test <https://github.com/rust-lang/libc/pull/4180>
|
||||
- CI: Use workflow commands to group output by target <https://github.com/rust-lang/libc/pull/4179>
|
||||
- CI: add caching <https://github.com/rust-lang/libc/pull/4183>
|
||||
|
||||
## [0.2.167](https://github.com/rust-lang/libc/compare/0.2.166...0.2.167) - 2024-11-28
|
||||
|
||||
### Added
|
||||
|
||||
- Solarish: add `st_fstype` to `stat` <https://github.com/rust-lang/libc/pull/4145>
|
||||
- Trusty: Add `intptr_t` and `uintptr_t` ([#4161](https://github.com/rust-lang/libc/pull/4161))
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix the build with `rustc-dep-of-std` <https://github.com/rust-lang/libc/pull/4158>
|
||||
- Wasi: Add back unsafe block for `clockid_t` static variables ([#4157](https://github.com/rust-lang/libc/pull/4157))
|
||||
|
||||
### Cleanup
|
||||
|
||||
- Create an internal prelude <https://github.com/rust-lang/libc/pull/4161>
|
||||
- Fix `unused_qualifications`<https://github.com/rust-lang/libc/pull/4132>
|
||||
|
||||
### Other
|
||||
|
||||
- CI: Check various FreeBSD versions ([#4159](https://github.com/rust-lang/libc/pull/4159))
|
||||
- CI: add a timeout for all jobs <https://github.com/rust-lang/libc/pull/4164>
|
||||
- CI: verify MSRV for `wasm32-wasi` <https://github.com/rust-lang/libc/pull/4157>
|
||||
- Migrate to the 2021 edition <https://github.com/rust-lang/libc/pull/4132>
|
||||
|
||||
### Removed
|
||||
|
||||
- Remove one unused import after the edition 2021 bump
|
||||
|
||||
## [0.2.166](https://github.com/rust-lang/libc/compare/0.2.165...0.2.166) - 2024-11-26
|
||||
|
||||
### Fixed
|
||||
|
||||
This release resolves two cases of unintentional breakage from the previous release:
|
||||
|
||||
- Revert removal of array size hacks [#4150](https://github.com/rust-lang/libc/pull/4150)
|
||||
- Ensure `const extern` functions are always enabled [#4151](https://github.com/rust-lang/libc/pull/4151)
|
||||
|
||||
## [0.2.165](https://github.com/rust-lang/libc/compare/0.2.164...0.2.165) - 2024-11-25
|
||||
|
||||
### Added
|
||||
|
||||
- Android: add `mkostemp`, `mkostemps` <https://github.com/rust-lang/libc/pull/3601>
|
||||
- Android: add a few API 30 calls <https://github.com/rust-lang/libc/pull/3604>
|
||||
- Android: add missing syscall constants <https://github.com/rust-lang/libc/pull/3558>
|
||||
- Apple: add `in6_ifreq` <https://github.com/rust-lang/libc/pull/3617>
|
||||
- Apple: add missing `sysctl` net types <https://github.com/rust-lang/libc/pull/4022> (before release: remove `if_family_id` ([#4137](https://github.com/rust-lang/libc/pulls/4137)))
|
||||
- Freebsd: add `kcmp` call support <https://github.com/rust-lang/libc/pull/3746>
|
||||
- Hurd: add `MAP_32BIT` and `MAP_EXCL` <https://github.com/rust-lang/libc/pull/4127>
|
||||
- Hurd: add `domainname` field to `utsname` ([#4089](https://github.com/rust-lang/libc/pulls/4089))
|
||||
- Linux GNU: add `f_flags` to struct `statfs` for arm, mips, powerpc and x86 <https://github.com/rust-lang/libc/pull/3663>
|
||||
- Linux GNU: add `malloc_stats` <https://github.com/rust-lang/libc/pull/3596>
|
||||
- Linux: add ELF relocation-related structs <https://github.com/rust-lang/libc/pull/3583>
|
||||
- Linux: add `ptp_*` structs <https://github.com/rust-lang/libc/pull/4113>
|
||||
- Linux: add `ptp_clock_caps` <https://github.com/rust-lang/libc/pull/4128>
|
||||
- Linux: add `ptp_pin_function` and most `PTP_` constants <https://github.com/rust-lang/libc/pull/4114>
|
||||
- Linux: add missing AF_XDP structs & constants <https://github.com/rust-lang/libc/pull/3956>
|
||||
- Linux: add missing netfilter consts ([#3734](https://github.com/rust-lang/libc/pulls/3734))
|
||||
- Linux: add struct and constants for the `mount_setattr` syscall <https://github.com/rust-lang/libc/pull/4046>
|
||||
- Linux: add wireless API <https://github.com/rust-lang/libc/pull/3441>
|
||||
- Linux: expose the `len8_dlc` field of `can_frame` <https://github.com/rust-lang/libc/pull/3357>
|
||||
- Musl: add `utmpx` API <https://github.com/rust-lang/libc/pull/3213>
|
||||
- Musl: add missing syscall constants <https://github.com/rust-lang/libc/pull/4028>
|
||||
- NetBSD: add `mcontext`-related data for RISCV64 <https://github.com/rust-lang/libc/pull/3468>
|
||||
- Redox: add new `netinet` constants <https://github.com/rust-lang/libc/pull/3586>)
|
||||
- Solarish: add `_POSIX_VDISABLE` ([#4103](https://github.com/rust-lang/libc/pulls/4103))
|
||||
- Tests: Add a test that the `const extern fn` macro works <https://github.com/rust-lang/libc/pull/4134>
|
||||
- Tests: Add test of primitive types against `std` <https://github.com/rust-lang/libc/pull/3616>
|
||||
- Unix: Add `htonl`, `htons`, `ntohl`, `ntohs` <https://github.com/rust-lang/libc/pull/3669>
|
||||
- Unix: add `aligned_alloc` <https://github.com/rust-lang/libc/pull/3843>
|
||||
- Windows: add `aligned_realloc` <https://github.com/rust-lang/libc/pull/3592>
|
||||
|
||||
### Fixed
|
||||
|
||||
- **breaking** Hurd: fix `MAP_HASSEMAPHORE` name ([#4127](https://github.com/rust-lang/libc/pulls/4127))
|
||||
- **breaking** ulibc Mips: fix `SA_*` mismatched types ([#3211](https://github.com/rust-lang/libc/pulls/3211))
|
||||
- Aix: fix an enum FFI safety warning <https://github.com/rust-lang/libc/pull/3644>
|
||||
- Haiku: fix some typos ([#3664](https://github.com/rust-lang/libc/pulls/3664))
|
||||
- Tests: fix `Elf{32,64}_Relr`-related tests <https://github.com/rust-lang/libc/pull/3647>
|
||||
- Tests: fix libc-tests for `loongarch64-linux-musl`
|
||||
- Tests: fix some clippy warnings <https://github.com/rust-lang/libc/pull/3855>
|
||||
- Tests: fix tests on `riscv64gc-unknown-freebsd` <https://github.com/rust-lang/libc/pull/4129>
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Apple: deprecate `iconv_open` <https://github.com/rust-lang/libc/commit/25e022a22eca3634166ef472b748c297e60fcf7f>
|
||||
- Apple: deprecate `mach_task_self` <https://github.com/rust-lang/libc/pull/4095>
|
||||
- Apple: update `mach` deprecation notices for things that were removed in `main` <https://github.com/rust-lang/libc/pull/4097>
|
||||
|
||||
### Cleanup
|
||||
|
||||
- Adjust the `f!` macro to be more flexible <https://github.com/rust-lang/libc/pull/4107>
|
||||
- Aix: remove duplicate constants <https://github.com/rust-lang/libc/pull/3643>
|
||||
- CI: make scripts more uniform <https://github.com/rust-lang/libc/pull/4042>
|
||||
- Drop the `libc_align` conditional <https://github.com/rust-lang/libc/commit/b5b553d0ee7de0d4781432a9a9a0a6445dd7f34f>
|
||||
- Drop the `libc_cfg_target_vendor` conditional <https://github.com/rust-lang/libc/pull/4060>
|
||||
- Drop the `libc_const_size_of` conditional <https://github.com/rust-lang/libc/commit/5a43dd2754366f99b3a83881b30246ce0e51833c>
|
||||
- Drop the `libc_core_cvoid` conditional <https://github.com/rust-lang/libc/pull/4060>
|
||||
- Drop the `libc_int128` conditional <https://github.com/rust-lang/libc/pull/4060>
|
||||
- Drop the `libc_non_exhaustive` conditional <https://github.com/rust-lang/libc/pull/4060>
|
||||
- Drop the `libc_packedN` conditional <https://github.com/rust-lang/libc/pull/4060>
|
||||
- Drop the `libc_priv_mod_use` conditional <https://github.com/rust-lang/libc/commit/19c59376d11b015009fb9b04f233a30a1bf50a91>
|
||||
- Drop the `libc_union` conditional <https://github.com/rust-lang/libc/commit/b9e4d8012f612dfe24147da3e69522763f92b6e3>
|
||||
- Drop the `long_array` conditional <https://github.com/rust-lang/libc/pull/4096>
|
||||
- Drop the `ptr_addr_of` conditional <https://github.com/rust-lang/libc/pull/4065>
|
||||
- Drop warnings about deprecated cargo features <https://github.com/rust-lang/libc/pull/4060>
|
||||
- Eliminate uses of `struct_formatter` <https://github.com/rust-lang/libc/pull/4074>
|
||||
- Fix a few other array size hacks <https://github.com/rust-lang/libc/commit/d63be8b69b0736753213f5d933767866a5801ee7>
|
||||
- Glibc: remove redundant definitions ([#3261](https://github.com/rust-lang/libc/pulls/3261))
|
||||
- Musl: remove redundant definitions ([#3261](https://github.com/rust-lang/libc/pulls/3261))
|
||||
- Musl: unify definitions of `siginfo_t` ([#3261](https://github.com/rust-lang/libc/pulls/3261))
|
||||
- Musl: unify definitions of statfs and statfs64 ([#3261](https://github.com/rust-lang/libc/pulls/3261))
|
||||
- Musl: unify definitions of statvfs and statvfs64 ([#3261](https://github.com/rust-lang/libc/pulls/3261))
|
||||
- Musl: unify statx definitions ([#3978](https://github.com/rust-lang/libc/pulls/3978))
|
||||
- Remove array size hacks for Rust < 1.47 <https://github.com/rust-lang/libc/commit/27ee6fe02ca0848b2af3cd747536264e4c7b697d>
|
||||
- Remove repetitive words <https://github.com/rust-lang/libc/commit/77de375891285e18a81616f7dceda6d52732eed6>
|
||||
- Use #[derive] for Copy/Clone in s! and friends <https://github.com/rust-lang/libc/pull/4038>
|
||||
- Use some tricks to format macro bodies <https://github.com/rust-lang/libc/pull/4107>
|
||||
|
||||
### Other
|
||||
|
||||
- Apply formatting to macro bodies <https://github.com/rust-lang/libc/pull/4107>
|
||||
- Bump libc-test to Rust 2021 Edition <https://github.com/rust-lang/libc/pull/3905>
|
||||
- CI: Add a check that semver files don't contain duplicate entries <https://github.com/rust-lang/libc/pull/4087>
|
||||
- CI: Add `fanotify_event_info_fid` to FAM-exempt types <https://github.com/rust-lang/libc/pull/4038>
|
||||
- CI: Allow rustfmt to organize imports ([#4136](https://github.com/rust-lang/libc/pulls/4136))
|
||||
- CI: Always run rustfmt <https://github.com/rust-lang/libc/pull/4120>
|
||||
- CI: Change 32-bit Docker images to use EOL repos <https://github.com/rust-lang/libc/pull/4120>
|
||||
- CI: Change 64-bit Docker images to ubuntu:24.10 <https://github.com/rust-lang/libc/pull/4120>
|
||||
- CI: Disable the check for >1 s! invocation <https://github.com/rust-lang/libc/pull/4107>
|
||||
- CI: Ensure build channels get run even if FILTER is unset <https://github.com/rust-lang/libc/pull/4125>
|
||||
- CI: Ensure there is a fallback for no_std <https://github.com/rust-lang/libc/pull/4125>
|
||||
- CI: Fix cases where unset variables cause errors <https://github.com/rust-lang/libc/pull/4108>
|
||||
- CI: Naming adjustments and cleanup <https://github.com/rust-lang/libc/pull/4124>
|
||||
- CI: Only invoke rustup if running in CI <https://github.com/rust-lang/libc/pull/4107>
|
||||
- CI: Remove the logic to handle old rust versions <https://github.com/rust-lang/libc/pull/4068>
|
||||
- CI: Set -u (error on unset) in all script files <https://github.com/rust-lang/libc/pull/4108>
|
||||
- CI: add support for `loongarch64-unknown-linux-musl` <https://github.com/rust-lang/libc/pull/4092>
|
||||
- CI: make `aarch64-apple-darwin` not a nightly-only target <https://github.com/rust-lang/libc/pull/4068>
|
||||
- CI: run shellcheck on all scripts <https://github.com/rust-lang/libc/pull/4042>
|
||||
- CI: update musl headers to Linux 6.6 <https://github.com/rust-lang/libc/pull/3921>
|
||||
- CI: use qemu-sparc64 to run sparc64 tests <https://github.com/rust-lang/libc/pull/4133>
|
||||
- Drop the `libc_const_extern_fn` conditional <https://github.com/rust-lang/libc/commit/674cc1f47f605038ef1aa2cce8e8bc9dac128276>
|
||||
- Drop the `libc_underscore_const_names` conditional <https://github.com/rust-lang/libc/commit/f0febd5e2e50b38e05259d3afad3c9783711bcf0>
|
||||
- Explicitly set the edition to 2015 <https://github.com/rust-lang/libc/pull/4058>
|
||||
- Introduce a `git-blame-ignore-revs` file <https://github.com/rust-lang/libc/pull/4107>
|
||||
- Tests: Ignore fields as required on Ubuntu 24.10 <https://github.com/rust-lang/libc/pull/4120>
|
||||
- Tests: skip `ATF_*` constants for OpenBSD <https://github.com/rust-lang/libc/pull/4088>
|
||||
- Triagebot: Add an autolabel for CI <https://github.com/rust-lang/libc/pull/4052>
|
||||
|
||||
## [0.2.164](https://github.com/rust-lang/libc/compare/0.2.163...0.2.164) - 2024-11-16
|
||||
|
||||
### MSRV
|
||||
|
||||
This release increases the MSRV of `libc` to 1.63.
|
||||
|
||||
### Other
|
||||
|
||||
- CI: remove tests with rust < 1.63 <https://github.com/rust-lang/libc/pull/4051>
|
||||
- MSRV: document the MSRV of the stable channel to be 1.63 <https://github.com/rust-lang/libc/pull/4040>
|
||||
- MacOS: move ifconf to s_no_extra_traits <https://github.com/rust-lang/libc/pull/4051>
|
||||
|
||||
## [0.2.163](https://github.com/rust-lang/libc/compare/0.2.162...0.2.163) - 2024-11-16
|
||||
|
||||
### Added
|
||||
|
||||
- Aix: add more `dlopen` flags <https://github.com/rust-lang/libc/pull/4044>
|
||||
- Android: add group calls <https://github.com/rust-lang/libc/pull/3499>
|
||||
- FreeBSD: add `TCP_FUNCTION_BLK` and `TCP_FUNCTION_ALIAS` <https://github.com/rust-lang/libc/pull/4047>
|
||||
- Linux: add `confstr` <https://github.com/rust-lang/libc/pull/3612>
|
||||
- Solarish: add `aio` <https://github.com/rust-lang/libc/pull/4033>
|
||||
- Solarish: add `arc4random*` <https://github.com/rust-lang/libc/pull/3944>
|
||||
|
||||
### Changed
|
||||
|
||||
- Emscripten: upgrade emsdk to 3.1.68 <https://github.com/rust-lang/libc/pull/3962>
|
||||
- Hurd: use more standard types <https://github.com/rust-lang/libc/pull/3733>
|
||||
- Hurd: use the standard `ssize_t = isize` <https://github.com/rust-lang/libc/pull/4029>
|
||||
- Solaris: fix `confstr` and `ucontext_t` <https://github.com/rust-lang/libc/pull/4035>
|
||||
|
||||
### Other
|
||||
|
||||
- CI: add Solaris <https://github.com/rust-lang/libc/pull/4035>
|
||||
- CI: add `i686-unknown-freebsd` <https://github.com/rust-lang/libc/pull/3997>
|
||||
- CI: ensure that calls to `sort` do not depend on locale <https://github.com/rust-lang/libc/pull/4026>
|
||||
- Specify `rust-version` in `Cargo.toml` <https://github.com/rust-lang/libc/pull/4041>
|
||||
|
||||
## [0.2.162](https://github.com/rust-lang/libc/compare/0.2.161...0.2.162) - 2024-11-07
|
||||
|
||||
### Added
|
||||
|
||||
- Android: fix the alignment of `uc_mcontext` on arm64 <https://github.com/rust-lang/libc/pull/3894>
|
||||
- Apple: add `host_cpu_load_info` <https://github.com/rust-lang/libc/pull/3916>
|
||||
- ESP-IDF: add a time flag <https://github.com/rust-lang/libc/pull/3993>
|
||||
- FreeBSD: add the `CLOSE_RANGE_CLOEXEC` flag<https://github.com/rust-lang/libc/pull/3996>
|
||||
- FreeBSD: fix test errors regarding `__gregset_t` <https://github.com/rust-lang/libc/pull/3995>
|
||||
- FreeBSD: fix tests on x86 FreeBSD 15 <https://github.com/rust-lang/libc/pull/3948>
|
||||
- FreeBSD: make `ucontext_t` and `mcontext_t` available on all architectures <https://github.com/rust-lang/libc/pull/3848>
|
||||
- Haiku: add `getentropy` <https://github.com/rust-lang/libc/pull/3991>
|
||||
- Illumos: add `syncfs` <https://github.com/rust-lang/libc/pull/3990>
|
||||
- Illumos: add some recently-added constants <https://github.com/rust-lang/libc/pull/3999>
|
||||
- Linux: add `ioctl` flags <https://github.com/rust-lang/libc/pull/3960>
|
||||
- Linux: add epoll busy polling parameters <https://github.com/rust-lang/libc/pull/3922>
|
||||
- NuttX: add `pthread_[get/set]name_np` <https://github.com/rust-lang/libc/pull/4003>
|
||||
- RTEMS: add `arc4random_buf` <https://github.com/rust-lang/libc/pull/3989>
|
||||
- Trusty OS: add initial support <https://github.com/rust-lang/libc/pull/3942>
|
||||
- WASIp2: expand socket support <https://github.com/rust-lang/libc/pull/3981>
|
||||
|
||||
### Fixed
|
||||
|
||||
- Emscripten: don't pass `-lc` <https://github.com/rust-lang/libc/pull/4002>
|
||||
- Hurd: change `st_fsid` field to `st_dev` <https://github.com/rust-lang/libc/pull/3785>
|
||||
- Hurd: fix the definition of `utsname` <https://github.com/rust-lang/libc/pull/3992>
|
||||
- Illumos/Solaris: fix `FNM_CASEFOLD` definition <https://github.com/rust-lang/libc/pull/4004>
|
||||
- Solaris: fix all tests <https://github.com/rust-lang/libc/pull/3864>
|
||||
|
||||
### Other
|
||||
|
||||
- CI: Add loongarch64 <https://github.com/rust-lang/libc/pull/4000>
|
||||
- CI: Check that semver files are sorted <https://github.com/rust-lang/libc/pull/4018>
|
||||
- CI: Re-enable the FreeBSD 15 job <https://github.com/rust-lang/libc/pull/3988>
|
||||
- Clean up imports and `extern crate` usage <https://github.com/rust-lang/libc/pull/3897>
|
||||
- Convert `mode_t` constants to octal <https://github.com/rust-lang/libc/pull/3634>
|
||||
- Remove the `wasm32-wasi` target that has been deleted upstream <https://github.com/rust-lang/libc/pull/4013>
|
||||
|
||||
## [0.2.161](https://github.com/rust-lang/libc/compare/0.2.160...0.2.161) - 2024-10-17
|
||||
|
||||
### Fixed
|
||||
|
||||
106
third_party/rust/libc/CONTRIBUTING.md
vendored
106
third_party/rust/libc/CONTRIBUTING.md
vendored
@@ -1,14 +1,45 @@
|
||||
# Contributing to `libc`
|
||||
|
||||
Welcome! If you are reading this document, it means you are interested in contributing
|
||||
to the `libc` crate.
|
||||
Welcome! If you are reading this document, it means you are interested in
|
||||
contributing to the `libc` crate.
|
||||
|
||||
## v0.2 changes
|
||||
## v1.0 Roadmap
|
||||
|
||||
If you want to add your changes to v0.2, please submit them to the `libc-0.2` branch.
|
||||
If you want to add any breaking changes, it should be submitted to the main branch,
|
||||
which has changes for v0.3.
|
||||
We will support and make a new release for v0.2 until we make the first release of v0.3.
|
||||
`libc` has two active branches: `main` and `libc-0.2`. `main` is for active
|
||||
development of the upcoming v1.0 release, and should be the target of all pull
|
||||
requests. `libc-0.2` is for updates to the currently released version.
|
||||
|
||||
If a pull request to `main` is a good candidate for inclusion in an `0.2.x`
|
||||
release, include `@rustbot label stable-nominated` in a comment to propose this.
|
||||
Good candidates will usually meet the following:
|
||||
|
||||
1. The included changes are non-breaking.
|
||||
2. The change applies cleanly to both branches.
|
||||
3. There is a usecase that justifies inclusion in a stable release (all
|
||||
additions should always have a usecase, hopefully).
|
||||
|
||||
Once a `stable-nominated` PR targeting `main` has merged, it can be cherry
|
||||
picked to the `libc-0.2` branch. A maintainer will likely do these cherry picks
|
||||
in a batch.
|
||||
|
||||
Alternatively, you can start this process yourself by creating a new branch
|
||||
based on `libc-0.2` and running `git cherry-pick -xe commit-sha-on-main`
|
||||
(`git
|
||||
cherry-pick -xe start-sha^..end-sha` if a range of commits is needed).
|
||||
`git` will automatically add the "cherry picked from commit" note, but try to
|
||||
add a backport note so the original PR gets crosslinked:
|
||||
|
||||
```
|
||||
# ... original commit message ...
|
||||
|
||||
(backport <https://github.com/rust-lang/libc/pull/1234>) # add manually
|
||||
(cherry picked from commit 104b6a4ae31c726814c36318dc718470cc96e167) # added by git
|
||||
```
|
||||
|
||||
Once the cherry-pick is complete, open a PR targeting `libc-0.2`.
|
||||
|
||||
See the [tracking issue](https://github.com/rust-lang/libc/issues/3248) for
|
||||
details.
|
||||
|
||||
## Adding an API
|
||||
|
||||
@@ -16,14 +47,14 @@ Want to use an API which currently isn't bound in `libc`? It's quite easy to add
|
||||
one!
|
||||
|
||||
The internal structure of this crate is designed to minimize the number of
|
||||
`#[cfg]` attributes in order to easily be able to add new items which apply
|
||||
to all platforms in the future. As a result, the crate is organized
|
||||
hierarchically based on platform. Each module has a number of `#[cfg]`'d
|
||||
children, but only one is ever actually compiled. Each module then reexports all
|
||||
the contents of its children.
|
||||
`#[cfg]` attributes in order to easily be able to add new items which apply to
|
||||
all platforms in the future. As a result, the crate is organized hierarchically
|
||||
based on platform. Each module has a number of `#[cfg]`'d children, but only one
|
||||
is ever actually compiled. Each module then reexports all the contents of its
|
||||
children.
|
||||
|
||||
This means that for each platform that libc supports, the path from a
|
||||
leaf module to the root will contain all bindings for the platform in question.
|
||||
This means that for each platform that libc supports, the path from a leaf
|
||||
module to the root will contain all bindings for the platform in question.
|
||||
Consequently, this indicates where an API should be added! Adding an API at a
|
||||
particular level in the hierarchy means that it is supported on all the child
|
||||
platforms of that level. For example, when adding a Unix API it should be added
|
||||
@@ -51,50 +82,45 @@ With that in mind, the steps for adding a new API are:
|
||||
5. Wait for a merge!
|
||||
|
||||
<sup>1</sup>: Note that this list has nothing to do with any Unix or Posix
|
||||
standard, it's just a list shared between all OSs that declare `#[cfg(unix)]`.
|
||||
standard, it's just a list shared among all OSs that declare `#[cfg(unix)]`.
|
||||
|
||||
## Test before you commit
|
||||
|
||||
We have two automated tests running on [GitHub Actions](https://github.com/rust-lang/libc/actions):
|
||||
We have two automated tests running on
|
||||
[GitHub Actions](https://github.com/rust-lang/libc/actions):
|
||||
|
||||
1. [`libc-test`](https://github.com/gnzlbg/ctest)
|
||||
- `cd libc-test && cargo test`
|
||||
- Use the `skip_*()` functions in `build.rs` if you really need a workaround.
|
||||
2. Style checker
|
||||
- [`sh ci/style.sh`](https://github.com/rust-lang/libc/blob/main/ci/style.sh)
|
||||
- [`./ci/style.sh`](https://github.com/rust-lang/libc/blob/main/ci/style.sh)
|
||||
|
||||
## Breaking change policy
|
||||
|
||||
Sometimes an upstream adds a breaking change to their API e.g. removing outdated items,
|
||||
changing the type signature, etc. And we probably should follow that change to build the
|
||||
`libc` crate successfully. It's annoying to do the equivalent of semver-major versioning
|
||||
for each such change. Instead, we mark the item as deprecated and do the actual change
|
||||
after a certain period. The steps are:
|
||||
Sometimes an upstream adds a breaking change to their API e.g. removing outdated
|
||||
items, changing the type signature, etc. And we probably should follow that
|
||||
change to build the `libc` crate successfully. It's annoying to do the
|
||||
equivalent of semver-major versioning for each such change. Instead, we mark the
|
||||
item as deprecated and do the actual change after a certain period. The steps
|
||||
are:
|
||||
|
||||
1. Add `#[deprecated(since = "", note="")]` attribute to the item.
|
||||
- The `since` field should have a next version of `libc`
|
||||
(e.g., if the current version is `0.2.1`, it should be `0.2.2`).
|
||||
- The `note` field should have a reason to deprecate and a tracking issue to call for comments
|
||||
(e.g., "We consider removing this as the upstream removed it.
|
||||
If you're using it, please comment on #XXX").
|
||||
- The `since` field should have a next version of `libc` (e.g., if the current
|
||||
version is `0.2.1`, it should be `0.2.2`).
|
||||
- The `note` field should have a reason to deprecate and a tracking issue to
|
||||
call for comments (e.g., "We consider removing this as the upstream removed
|
||||
it. If you're using it, please comment on #XXX").
|
||||
2. If we don't see any concerns for a while, do the change actually.
|
||||
|
||||
## Supported target policy
|
||||
|
||||
When Rust removes a support for a target, the libc crate also may remove the support anytime.
|
||||
When Rust removes a support for a target, the libc crate also may remove the
|
||||
support at any time.
|
||||
|
||||
## Releasing your change to crates.io
|
||||
|
||||
Now that you've done the amazing job of landing your new API or your new
|
||||
platform in this crate, the next step is to get that sweet, sweet usage from
|
||||
crates.io! The only next step is to bump the version of libc and then publish
|
||||
it. If you'd like to get a release out ASAP you can follow these steps:
|
||||
This repository uses [release-plz] to handle releases. Once your pull request
|
||||
has been merged, a maintainer just needs to verify the generated changelog, then
|
||||
merge the bot's release PR. This will automatically publish to crates.io!
|
||||
|
||||
1. Increment the patch version number in `Cargo.toml` and `libc-test/Cargo.toml`.
|
||||
1. Send a PR to this repository. It should [look like this][example-pr], but it'd
|
||||
also be nice to fill out the description with a small rationale for the
|
||||
release (any rationale is ok though!).
|
||||
1. Once merged, the release will be tagged and published by one of the libc crate
|
||||
maintainers.
|
||||
|
||||
[example-pr]: https://github.com/rust-lang/libc/pull/2120
|
||||
[release-plz]: https://github.com/MarcoIeni/release-plz
|
||||
|
||||
16
third_party/rust/libc/Cargo.lock
generated
vendored
Normal file
16
third_party/rust/libc/Cargo.lock
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.171"
|
||||
dependencies = [
|
||||
"rustc-std-workspace-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustc-std-workspace-core"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "aa9c45b374136f52f2d6311062c7146bff20fec063c3f5d46a410bd937746955"
|
||||
36
third_party/rust/libc/Cargo.toml
vendored
36
third_party/rust/libc/Cargo.toml
vendored
@@ -10,8 +10,10 @@
|
||||
# See Cargo.toml.orig for the original contents.
|
||||
|
||||
[package]
|
||||
edition = "2021"
|
||||
rust-version = "1.63"
|
||||
name = "libc"
|
||||
version = "0.2.161"
|
||||
version = "0.2.171"
|
||||
authors = ["The Rust Project Developers"]
|
||||
build = "build.rs"
|
||||
exclude = [
|
||||
@@ -20,6 +22,7 @@ exclude = [
|
||||
"/.cirrus.yml",
|
||||
"/triagebot.toml",
|
||||
]
|
||||
autolib = false
|
||||
autobins = false
|
||||
autoexamples = false
|
||||
autotests = false
|
||||
@@ -48,10 +51,7 @@ repository = "https://github.com/rust-lang/libc"
|
||||
[package.metadata.docs.rs]
|
||||
cargo-args = ["-Zbuild-std=core"]
|
||||
default-target = "x86_64-unknown-linux-gnu"
|
||||
features = [
|
||||
"const-extern-fn",
|
||||
"extra_traits",
|
||||
]
|
||||
features = ["extra_traits"]
|
||||
targets = [
|
||||
"aarch64-apple-darwin",
|
||||
"aarch64-apple-ios",
|
||||
@@ -80,7 +80,6 @@ targets = [
|
||||
"armv7-wrs-vxworks-eabihf",
|
||||
"armv7r-none-eabi",
|
||||
"armv7r-none-eabihf",
|
||||
"i586-pc-windows-msvc",
|
||||
"i586-unknown-linux-gnu",
|
||||
"i586-unknown-linux-musl",
|
||||
"i686-linux-android",
|
||||
@@ -139,7 +138,6 @@ targets = [
|
||||
"thumbv7neon-unknown-linux-gnueabihf",
|
||||
"wasm32-unknown-emscripten",
|
||||
"wasm32-unknown-unknown",
|
||||
"wasm32-wasi",
|
||||
"x86_64-apple-darwin",
|
||||
"x86_64-apple-ios",
|
||||
"x86_64-fortanix-unknown-sgx",
|
||||
@@ -163,18 +161,6 @@ targets = [
|
||||
"x86_64-wrs-vxworks",
|
||||
]
|
||||
|
||||
[lib]
|
||||
name = "libc"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[[test]]
|
||||
name = "const_fn"
|
||||
path = "tests/const_fn.rs"
|
||||
|
||||
[dependencies.rustc-std-workspace-core]
|
||||
version = "1.0.0"
|
||||
optional = true
|
||||
|
||||
[features]
|
||||
align = []
|
||||
const-extern-fn = []
|
||||
@@ -186,3 +172,15 @@ rustc-dep-of-std = [
|
||||
]
|
||||
std = []
|
||||
use_std = ["std"]
|
||||
|
||||
[lib]
|
||||
name = "libc"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[[test]]
|
||||
name = "const_fn"
|
||||
path = "tests/const_fn.rs"
|
||||
|
||||
[dependencies.rustc-std-workspace-core]
|
||||
version = "1.0.0"
|
||||
optional = true
|
||||
|
||||
71
third_party/rust/libc/README.md
vendored
71
third_party/rust/libc/README.md
vendored
@@ -11,8 +11,8 @@ This crate exports all underlying platform types, functions, and constants under
|
||||
the crate root, so all items are accessible as `libc::foo`. The types and values
|
||||
of all the exported APIs match the platform that libc is compiled for.
|
||||
|
||||
Windows API bindings are not included in this crate. If you are looking for WinAPI
|
||||
bindings, consider using crates like [windows-sys].
|
||||
Windows API bindings are not included in this crate. If you are looking for
|
||||
WinAPI bindings, consider using crates like [windows-sys].
|
||||
|
||||
More detailed information about the design of this library can be found in its
|
||||
[associated RFC][rfc].
|
||||
@@ -20,14 +20,17 @@ More detailed information about the design of this library can be found in its
|
||||
[rfc]: https://github.com/rust-lang/rfcs/blob/HEAD/text/1291-promote-libc.md
|
||||
[windows-sys]: https://docs.rs/windows-sys
|
||||
|
||||
## v0.3 Roadmap
|
||||
## v1.0 Roadmap
|
||||
|
||||
The main branch is now for v0.3 which has some breaking changes.
|
||||
Currently, `libc` has two active branches: `main` for the upcoming v1.0 release,
|
||||
and `libc-0.2` for the currently published version. By default all pull requests
|
||||
should target `main`; once reviewed, they can be cherry picked to the `libc-0.2`
|
||||
branch if needed.
|
||||
|
||||
For v0.2, please submit PRs to the `libc-0.2` branch instead.
|
||||
We will stop making new v0.2 releases once we release v0.3 on crates.io.
|
||||
We will stop making new v0.2 releases once v1.0 is released.
|
||||
|
||||
See the [tracking issue](https://github.com/rust-lang/libc/issues/3248) for details.
|
||||
See the section in [CONTRIBUTING.md](CONTRIBUTING.md#v10-roadmap) for more
|
||||
details.
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -40,46 +43,38 @@ libc = "0.2"
|
||||
|
||||
## Features
|
||||
|
||||
* `std`: by default `libc` links to the standard library. Disable this
|
||||
feature to remove this dependency and be able to use `libc` in `#![no_std]`
|
||||
crates.
|
||||
* `std`: by default `libc` links to the standard library. Disable this feature
|
||||
to remove this dependency and be able to use `libc` in `#![no_std]` crates.
|
||||
|
||||
* `extra_traits`: all `struct`s implemented in `libc` are `Copy` and `Clone`.
|
||||
This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`.
|
||||
|
||||
* `const-extern-fn`: Changes some `extern fn`s into `const extern fn`s.
|
||||
If you use Rust >= 1.62, this feature is implicitly enabled.
|
||||
Otherwise it requires a nightly rustc.
|
||||
The following features are deprecated:
|
||||
|
||||
* **deprecated**: `use_std` is deprecated, and is equivalent to `std`.
|
||||
* `use_std`: this is equivalent to `std`
|
||||
* `const-extern-fn`: this is now enabled by default
|
||||
* `align`: this is now enabled by default
|
||||
|
||||
## Rust version support
|
||||
|
||||
The minimum supported Rust toolchain version is currently **Rust 1.13.0**.
|
||||
(libc does not currently have any policy regarding changes to the minimum
|
||||
supported Rust version; such policy is a work in progress.) APIs requiring
|
||||
newer Rust features are only available on newer Rust toolchains:
|
||||
The minimum supported Rust toolchain version is currently **Rust 1.63**.
|
||||
|
||||
| Feature | Version |
|
||||
|----------------------|---------|
|
||||
| `union` | 1.19.0 |
|
||||
| `const mem::size_of` | 1.24.0 |
|
||||
| `repr(align)` | 1.25.0 |
|
||||
| `extra_traits` | 1.25.0 |
|
||||
| `core::ffi::c_void` | 1.30.0 |
|
||||
| `repr(packed(N))` | 1.33.0 |
|
||||
| `cfg(target_vendor)` | 1.33.0 |
|
||||
| `const-extern-fn` | 1.62.0 |
|
||||
Increases to the MSRV are allowed to change without a major (i.e. semver-
|
||||
breaking) release in order to avoid a ripple effect in the ecosystem. A policy
|
||||
for when this may change is a work in progress.
|
||||
|
||||
`libc` may continue to compile with Rust versions older than the current MSRV
|
||||
but this is not guaranteed.
|
||||
|
||||
## Platform support
|
||||
|
||||
You can see the platform(target)-specific docs on [docs.rs], select a platform you want to see.
|
||||
You can see the platform(target)-specific docs on [docs.rs], select a platform
|
||||
you want to see.
|
||||
|
||||
See
|
||||
[`ci/build.sh`](https://github.com/rust-lang/libc/blob/HEAD/ci/build.sh)
|
||||
for the platforms on which `libc` is guaranteed to build for each Rust
|
||||
toolchain. The test-matrix at [GitHub Actions] and [Cirrus CI] show the
|
||||
platforms in which `libc` tests are run.
|
||||
See [`ci/verify-build.sh`](https://github.com/rust-lang/libc/blob/HEAD/ci/verify-build.sh) for
|
||||
the platforms on which `libc` is guaranteed to build for each Rust toolchain.
|
||||
The test-matrix at [GitHub Actions] and [Cirrus CI] show the platforms in which
|
||||
`libc` tests are run.
|
||||
|
||||
<div class="platform_docs"></div>
|
||||
|
||||
@@ -97,13 +92,13 @@ at your option.
|
||||
|
||||
## Contributing
|
||||
|
||||
We welcome all people who want to contribute. Please see the [contributing
|
||||
instructions] for more information.
|
||||
We welcome all people who want to contribute. Please see the
|
||||
[contributing instructions] for more information.
|
||||
|
||||
[contributing instructions]: https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md
|
||||
|
||||
Contributions in any form (issues, pull requests, etc.) to this project
|
||||
must adhere to Rust's [Code of Conduct].
|
||||
Contributions in any form (issues, pull requests, etc.) to this project must
|
||||
adhere to Rust's [Code of Conduct].
|
||||
|
||||
[Code of Conduct]: https://www.rust-lang.org/policies/code-of-conduct
|
||||
|
||||
|
||||
168
third_party/rust/libc/build.rs
vendored
168
third_party/rust/libc/build.rs
vendored
@@ -1,36 +1,25 @@
|
||||
use std::env;
|
||||
use std::process::{Command, Output};
|
||||
use std::str;
|
||||
use std::{env, str};
|
||||
|
||||
// List of cfgs this build script is allowed to set. The list is needed to support check-cfg, as we
|
||||
// need to know all the possible cfgs that this script will set. If you need to set another cfg
|
||||
// make sure to add it to this list as well.
|
||||
const ALLOWED_CFGS: &'static [&'static str] = &[
|
||||
"emscripten_new_stat_abi",
|
||||
"espidf_time64",
|
||||
"emscripten_old_stat_abi",
|
||||
"espidf_time32",
|
||||
"freebsd10",
|
||||
"freebsd11",
|
||||
"freebsd12",
|
||||
"freebsd13",
|
||||
"freebsd14",
|
||||
"freebsd15",
|
||||
"libc_align",
|
||||
"libc_cfg_target_vendor",
|
||||
// FIXME(ctest): this config shouldn't be needed but ctest can't parse `const extern fn`
|
||||
"libc_const_extern_fn",
|
||||
"libc_const_extern_fn_unstable",
|
||||
"libc_const_size_of",
|
||||
"libc_core_cvoid",
|
||||
"libc_deny_warnings",
|
||||
"libc_int128",
|
||||
"libc_long_array",
|
||||
"libc_non_exhaustive",
|
||||
"libc_packedN",
|
||||
"libc_priv_mod_use",
|
||||
"libc_ptr_addr_of",
|
||||
"libc_thread_local",
|
||||
"libc_underscore_const_names",
|
||||
"libc_union",
|
||||
"libc_ctest",
|
||||
// Corresponds to `__USE_TIME_BITS64` in UAPI
|
||||
"linux_time_bits64",
|
||||
];
|
||||
|
||||
// Extra values to allow for check-cfg.
|
||||
@@ -38,7 +27,7 @@ const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[
|
||||
(
|
||||
"target_os",
|
||||
&[
|
||||
"switch", "aix", "ohos", "hurd", "rtems", "visionos", "nuttx",
|
||||
"switch", "aix", "ohos", "hurd", "rtems", "visionos", "nuttx", "cygwin",
|
||||
],
|
||||
),
|
||||
("target_env", &["illumos", "wasi", "aix", "ohos"]),
|
||||
@@ -52,32 +41,29 @@ fn main() {
|
||||
// Avoid unnecessary re-building.
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
|
||||
let (rustc_minor_ver, is_nightly) = rustc_minor_nightly();
|
||||
let (rustc_minor_ver, _is_nightly) = rustc_minor_nightly();
|
||||
let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok();
|
||||
let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok();
|
||||
let const_extern_fn_cargo_feature = env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok();
|
||||
let libc_ci = env::var("LIBC_CI").is_ok();
|
||||
let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok() || rustc_minor_ver >= 80;
|
||||
|
||||
if env::var("CARGO_FEATURE_USE_STD").is_ok() {
|
||||
println!(
|
||||
"cargo:warning=\"libc's use_std cargo feature is deprecated since libc 0.2.55; \
|
||||
please consider using the `std` cargo feature instead\""
|
||||
);
|
||||
}
|
||||
|
||||
// The ABI of libc used by std is backward compatible with FreeBSD 12.
|
||||
// The ABI of libc from crates.io is backward compatible with FreeBSD 11.
|
||||
//
|
||||
// On CI, we detect the actual FreeBSD version and match its ABI exactly,
|
||||
// running tests to ensure that the ABI is correct.
|
||||
let which_freebsd = if libc_ci {
|
||||
println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_FREEBSD_VERSION");
|
||||
// Allow overriding the default version for testing
|
||||
let which_freebsd = if let Ok(version) = env::var("RUST_LIBC_UNSTABLE_FREEBSD_VERSION") {
|
||||
let vers = version.parse().unwrap();
|
||||
println!("cargo:warning=setting FreeBSD version to {vers}");
|
||||
vers
|
||||
} else if libc_ci {
|
||||
which_freebsd().unwrap_or(11)
|
||||
} else if rustc_dep_of_std {
|
||||
12
|
||||
} else {
|
||||
11
|
||||
};
|
||||
|
||||
match which_freebsd {
|
||||
x if x < 10 => panic!("FreeBSD older than 10 is not supported"),
|
||||
10 => set_cfg("freebsd10"),
|
||||
@@ -89,9 +75,15 @@ fn main() {
|
||||
}
|
||||
|
||||
match emcc_version_code() {
|
||||
Some(v) if (v >= 30142) => set_cfg("emscripten_new_stat_abi"),
|
||||
// Non-Emscripten or version < 3.1.42.
|
||||
Some(_) | None => (),
|
||||
Some(v) if (v < 30142) => set_cfg("emscripten_old_stat_abi"),
|
||||
// Non-Emscripten or version >= 3.1.42.
|
||||
_ => (),
|
||||
}
|
||||
|
||||
let linux_time_bits64 = env::var("RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64").is_ok();
|
||||
println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64");
|
||||
if linux_time_bits64 {
|
||||
set_cfg("linux_time_bits64");
|
||||
}
|
||||
|
||||
// On CI: deny all warnings
|
||||
@@ -99,88 +91,17 @@ fn main() {
|
||||
set_cfg("libc_deny_warnings");
|
||||
}
|
||||
|
||||
// Rust >= 1.15 supports private module use:
|
||||
if rustc_minor_ver >= 15 || rustc_dep_of_std {
|
||||
set_cfg("libc_priv_mod_use");
|
||||
}
|
||||
|
||||
// Rust >= 1.19 supports unions:
|
||||
if rustc_minor_ver >= 19 || rustc_dep_of_std {
|
||||
set_cfg("libc_union");
|
||||
}
|
||||
|
||||
// Rust >= 1.24 supports const mem::size_of:
|
||||
if rustc_minor_ver >= 24 || rustc_dep_of_std {
|
||||
set_cfg("libc_const_size_of");
|
||||
}
|
||||
|
||||
// Rust >= 1.25 supports repr(align):
|
||||
if rustc_minor_ver >= 25 || rustc_dep_of_std || align_cargo_feature {
|
||||
set_cfg("libc_align");
|
||||
}
|
||||
|
||||
// Rust >= 1.26 supports i128 and u128:
|
||||
if rustc_minor_ver >= 26 || rustc_dep_of_std {
|
||||
set_cfg("libc_int128");
|
||||
}
|
||||
|
||||
// Rust >= 1.30 supports `core::ffi::c_void`, so libc can just re-export it.
|
||||
// Otherwise, it defines an incompatible type to retaining
|
||||
// backwards-compatibility.
|
||||
if rustc_minor_ver >= 30 || rustc_dep_of_std {
|
||||
set_cfg("libc_core_cvoid");
|
||||
}
|
||||
|
||||
// Rust >= 1.33 supports repr(packed(N)) and cfg(target_vendor).
|
||||
if rustc_minor_ver >= 33 || rustc_dep_of_std {
|
||||
set_cfg("libc_packedN");
|
||||
set_cfg("libc_cfg_target_vendor");
|
||||
}
|
||||
|
||||
// Rust >= 1.40 supports #[non_exhaustive].
|
||||
if rustc_minor_ver >= 40 || rustc_dep_of_std {
|
||||
set_cfg("libc_non_exhaustive");
|
||||
}
|
||||
|
||||
// Rust >= 1.47 supports long array:
|
||||
if rustc_minor_ver >= 47 || rustc_dep_of_std {
|
||||
set_cfg("libc_long_array");
|
||||
}
|
||||
|
||||
if rustc_minor_ver >= 51 || rustc_dep_of_std {
|
||||
set_cfg("libc_ptr_addr_of");
|
||||
}
|
||||
|
||||
// Rust >= 1.37.0 allows underscores as anonymous constant names.
|
||||
if rustc_minor_ver >= 37 || rustc_dep_of_std {
|
||||
set_cfg("libc_underscore_const_names");
|
||||
}
|
||||
|
||||
// #[thread_local] is currently unstable
|
||||
if rustc_dep_of_std {
|
||||
set_cfg("libc_thread_local");
|
||||
}
|
||||
|
||||
// Rust >= 1.62.0 allows to use `const_extern_fn` for "Rust" and "C".
|
||||
if rustc_minor_ver >= 62 {
|
||||
// Set unconditionally when ctest is not being invoked.
|
||||
set_cfg("libc_const_extern_fn");
|
||||
} else {
|
||||
// Rust < 1.62.0 requires a crate feature and feature gate.
|
||||
if const_extern_fn_cargo_feature {
|
||||
if !is_nightly || rustc_minor_ver < 40 {
|
||||
panic!("const-extern-fn requires a nightly compiler >= 1.40");
|
||||
}
|
||||
set_cfg("libc_const_extern_fn_unstable");
|
||||
set_cfg("libc_const_extern_fn");
|
||||
}
|
||||
}
|
||||
|
||||
// check-cfg is a nightly cargo/rustc feature to warn when unknown cfgs are used across the
|
||||
// codebase. libc can configure it if the appropriate environment variable is passed. Since
|
||||
// rust-lang/rust enforces it, this is useful when using a custom libc fork there.
|
||||
//
|
||||
// https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg
|
||||
if libc_check_cfg {
|
||||
// Since Rust 1.80, configuration that isn't recognized by default needs to be provided to
|
||||
// avoid warnings.
|
||||
if rustc_minor_ver >= 80 {
|
||||
for cfg in ALLOWED_CFGS {
|
||||
if rustc_minor_ver >= 75 {
|
||||
println!("cargo:rustc-check-cfg=cfg({})", cfg);
|
||||
@@ -220,7 +141,7 @@ fn rustc_version_cmd(is_clippy_driver: bool) -> Output {
|
||||
|
||||
cmd.arg("--version");
|
||||
|
||||
let output = cmd.output().ok().expect("Failed to get rustc version");
|
||||
let output = cmd.output().expect("Failed to get rustc version");
|
||||
|
||||
if !output.status.success() {
|
||||
panic!(
|
||||
@@ -275,20 +196,12 @@ fn rustc_minor_nightly() -> (u32, bool) {
|
||||
}
|
||||
|
||||
fn which_freebsd() -> Option<i32> {
|
||||
let output = std::process::Command::new("freebsd-version").output().ok();
|
||||
if output.is_none() {
|
||||
return None;
|
||||
}
|
||||
let output = output.unwrap();
|
||||
let output = Command::new("freebsd-version").output().ok()?;
|
||||
if !output.status.success() {
|
||||
return None;
|
||||
}
|
||||
|
||||
let stdout = String::from_utf8(output.stdout).ok();
|
||||
if stdout.is_none() {
|
||||
return None;
|
||||
}
|
||||
let stdout = stdout.unwrap();
|
||||
let stdout = String::from_utf8(output.stdout).ok()?;
|
||||
|
||||
match &stdout {
|
||||
s if s.starts_with("10") => Some(10),
|
||||
@@ -302,27 +215,16 @@ fn which_freebsd() -> Option<i32> {
|
||||
}
|
||||
|
||||
fn emcc_version_code() -> Option<u64> {
|
||||
let output = std::process::Command::new("emcc")
|
||||
.arg("-dumpversion")
|
||||
.output()
|
||||
.ok();
|
||||
if output.is_none() {
|
||||
return None;
|
||||
}
|
||||
let output = output.unwrap();
|
||||
let output = Command::new("emcc").arg("-dumpversion").output().ok()?;
|
||||
if !output.status.success() {
|
||||
return None;
|
||||
}
|
||||
|
||||
let stdout = String::from_utf8(output.stdout).ok();
|
||||
if stdout.is_none() {
|
||||
return None;
|
||||
}
|
||||
let version = stdout.unwrap();
|
||||
let version = String::from_utf8(output.stdout).ok()?;
|
||||
|
||||
// Some Emscripten versions come with `-git` attached, so split the
|
||||
// version string also on the `-` char.
|
||||
let mut pieces = version.trim().split(|c| c == '.' || c == '-');
|
||||
let mut pieces = version.trim().split(['.', '-']);
|
||||
|
||||
let major = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0);
|
||||
let minor = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0);
|
||||
|
||||
3
third_party/rust/libc/rustfmt.toml
vendored
3
third_party/rust/libc/rustfmt.toml
vendored
@@ -1 +1,4 @@
|
||||
edition = "2021"
|
||||
error_on_line_overflow = true
|
||||
group_imports = "StdExternalCrate"
|
||||
imports_granularity = "Module"
|
||||
|
||||
99
third_party/rust/libc/src/fixed_width_ints.rs
vendored
99
third_party/rust/libc/src/fixed_width_ints.rs
vendored
@@ -1,99 +0,0 @@
|
||||
//! This module contains type aliases for C's fixed-width integer types .
|
||||
//!
|
||||
//! These aliases are deprecated: use the Rust types instead.
|
||||
|
||||
#[deprecated(since = "0.2.55", note = "Use i8 instead.")]
|
||||
pub type int8_t = i8;
|
||||
#[deprecated(since = "0.2.55", note = "Use i16 instead.")]
|
||||
pub type int16_t = i16;
|
||||
#[deprecated(since = "0.2.55", note = "Use i32 instead.")]
|
||||
pub type int32_t = i32;
|
||||
#[deprecated(since = "0.2.55", note = "Use i64 instead.")]
|
||||
pub type int64_t = i64;
|
||||
#[deprecated(since = "0.2.55", note = "Use u8 instead.")]
|
||||
pub type uint8_t = u8;
|
||||
#[deprecated(since = "0.2.55", note = "Use u16 instead.")]
|
||||
pub type uint16_t = u16;
|
||||
#[deprecated(since = "0.2.55", note = "Use u32 instead.")]
|
||||
pub type uint32_t = u32;
|
||||
#[deprecated(since = "0.2.55", note = "Use u64 instead.")]
|
||||
pub type uint64_t = u64;
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(all(libc_int128, target_arch = "aarch64", not(target_os = "windows")))] {
|
||||
// This introduces partial support for FFI with __int128 and
|
||||
// equivalent types on platforms where Rust's definition is validated
|
||||
// to match the standard C ABI of that platform.
|
||||
//
|
||||
// Rust does not guarantee u128/i128 are sound for FFI, and its
|
||||
// definitions are in fact known to be incompatible. [0]
|
||||
//
|
||||
// However these problems aren't fundamental, and are just platform
|
||||
// inconsistencies. Specifically at the time of this writing:
|
||||
//
|
||||
// * For x64 SysV ABIs (everything but Windows), the types are underaligned.
|
||||
// * For all Windows ABIs, Microsoft doesn't actually officially define __int128,
|
||||
// and as a result different implementations don't actually agree on its ABI.
|
||||
//
|
||||
// But on the other major aarch64 platforms (android, linux, ios, macos) we have
|
||||
// validated that rustc has the right ABI for these types. This is important because
|
||||
// aarch64 uses these types in some fundamental OS types like user_fpsimd_struct,
|
||||
// which represents saved simd registers.
|
||||
//
|
||||
// Any API which uses these types will need to `#[ignore(improper_ctypes)]`
|
||||
// until the upstream rust issue is resolved, but this at least lets us make
|
||||
// progress on platforms where this type is important.
|
||||
//
|
||||
// The list of supported architectures and OSes is intentionally very restricted,
|
||||
// as careful work needs to be done to verify that a particular platform
|
||||
// has a conformant ABI.
|
||||
//
|
||||
// [0]: https://github.com/rust-lang/rust/issues/54341
|
||||
|
||||
/// C `__int128` (a GCC extension that's part of many ABIs)
|
||||
pub type __int128 = i128;
|
||||
/// C `unsigned __int128` (a GCC extension that's part of many ABIs)
|
||||
pub type __uint128 = u128;
|
||||
/// C __int128_t (alternate name for [__int128][])
|
||||
pub type __int128_t = i128;
|
||||
/// C __uint128_t (alternate name for [__uint128][])
|
||||
pub type __uint128_t = u128;
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(libc_underscore_const_names)] {
|
||||
macro_rules! static_assert_eq {
|
||||
($a:expr, $b:expr) => {
|
||||
const _: [(); $a] = [(); $b];
|
||||
};
|
||||
}
|
||||
|
||||
// NOTE: if you add more platforms to here, you may need to cfg
|
||||
// these consts. They should always match the platform's values
|
||||
// for `sizeof(__int128)` and `_Alignof(__int128)`.
|
||||
const _SIZE_128: usize = 16;
|
||||
const _ALIGN_128: usize = 16;
|
||||
|
||||
// Since Rust doesn't officially guarantee that these types
|
||||
// have compatible ABIs, we const assert that these values have the
|
||||
// known size/align of the target platform's libc. If rustc ever
|
||||
// tries to regress things, it will cause a compilation error.
|
||||
//
|
||||
// This isn't a bullet-proof solution because e.g. it doesn't
|
||||
// catch the fact that llvm and gcc disagree on how x64 __int128
|
||||
// is actually *passed* on the stack (clang underaligns it for
|
||||
// the same reason that rustc *never* properly aligns it).
|
||||
static_assert_eq!(core::mem::size_of::<__int128>(), _SIZE_128);
|
||||
static_assert_eq!(core::mem::align_of::<__int128>(), _ALIGN_128);
|
||||
|
||||
static_assert_eq!(core::mem::size_of::<__uint128>(), _SIZE_128);
|
||||
static_assert_eq!(core::mem::align_of::<__uint128>(), _ALIGN_128);
|
||||
|
||||
static_assert_eq!(core::mem::size_of::<__int128_t>(), _SIZE_128);
|
||||
static_assert_eq!(core::mem::align_of::<__int128_t>(), _ALIGN_128);
|
||||
|
||||
static_assert_eq!(core::mem::size_of::<__uint128_t>(), _SIZE_128);
|
||||
static_assert_eq!(core::mem::align_of::<__uint128_t>(), _ALIGN_128);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
108
third_party/rust/libc/src/fuchsia/aarch64.rs
vendored
108
third_party/rust/libc/src/fuchsia/aarch64.rs
vendored
@@ -1,67 +1,69 @@
|
||||
pub type c_char = u8;
|
||||
pub type __u64 = ::c_ulonglong;
|
||||
use crate::off_t;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type __u64 = c_ulonglong;
|
||||
pub type wchar_t = u32;
|
||||
pub type nlink_t = ::c_ulong;
|
||||
pub type blksize_t = ::c_long;
|
||||
pub type nlink_t = c_ulong;
|
||||
pub type blksize_t = c_long;
|
||||
|
||||
s! {
|
||||
pub struct stat {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
pub st_rdev: ::dev_t,
|
||||
__pad0: ::c_ulong,
|
||||
pub st_size: ::off_t,
|
||||
pub st_blksize: ::blksize_t,
|
||||
__pad1: ::c_int,
|
||||
pub st_blocks: ::blkcnt_t,
|
||||
pub st_atime: ::time_t,
|
||||
pub st_atime_nsec: ::c_long,
|
||||
pub st_mtime: ::time_t,
|
||||
pub st_mtime_nsec: ::c_long,
|
||||
pub st_ctime: ::time_t,
|
||||
pub st_ctime_nsec: ::c_long,
|
||||
__unused: [::c_uint; 2],
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
pub st_rdev: crate::dev_t,
|
||||
__pad0: c_ulong,
|
||||
pub st_size: off_t,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
__pad1: c_int,
|
||||
pub st_blocks: crate::blkcnt_t,
|
||||
pub st_atime: crate::time_t,
|
||||
pub st_atime_nsec: c_long,
|
||||
pub st_mtime: crate::time_t,
|
||||
pub st_mtime_nsec: c_long,
|
||||
pub st_ctime: crate::time_t,
|
||||
pub st_ctime_nsec: c_long,
|
||||
__unused: [c_uint; 2],
|
||||
}
|
||||
|
||||
pub struct stat64 {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
pub st_rdev: ::dev_t,
|
||||
__pad0: ::c_ulong,
|
||||
pub st_size: ::off_t,
|
||||
pub st_blksize: ::blksize_t,
|
||||
__pad1: ::c_int,
|
||||
pub st_blocks: ::blkcnt_t,
|
||||
pub st_atime: ::time_t,
|
||||
pub st_atime_nsec: ::c_long,
|
||||
pub st_mtime: ::time_t,
|
||||
pub st_mtime_nsec: ::c_long,
|
||||
pub st_ctime: ::time_t,
|
||||
pub st_ctime_nsec: ::c_long,
|
||||
__unused: [::c_uint; 2],
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
pub st_rdev: crate::dev_t,
|
||||
__pad0: c_ulong,
|
||||
pub st_size: off_t,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
__pad1: c_int,
|
||||
pub st_blocks: crate::blkcnt_t,
|
||||
pub st_atime: crate::time_t,
|
||||
pub st_atime_nsec: c_long,
|
||||
pub st_mtime: crate::time_t,
|
||||
pub st_mtime_nsec: c_long,
|
||||
pub st_ctime: crate::time_t,
|
||||
pub st_ctime_nsec: c_long,
|
||||
__unused: [c_uint; 2],
|
||||
}
|
||||
|
||||
pub struct ipc_perm {
|
||||
pub __ipc_perm_key: ::key_t,
|
||||
pub uid: ::uid_t,
|
||||
pub gid: ::gid_t,
|
||||
pub cuid: ::uid_t,
|
||||
pub cgid: ::gid_t,
|
||||
pub mode: ::mode_t,
|
||||
pub __seq: ::c_ushort,
|
||||
__unused1: ::c_ulong,
|
||||
__unused2: ::c_ulong,
|
||||
pub __ipc_perm_key: crate::key_t,
|
||||
pub uid: crate::uid_t,
|
||||
pub gid: crate::gid_t,
|
||||
pub cuid: crate::uid_t,
|
||||
pub cgid: crate::gid_t,
|
||||
pub mode: crate::mode_t,
|
||||
pub __seq: c_ushort,
|
||||
__unused1: c_ulong,
|
||||
__unused2: c_ulong,
|
||||
}
|
||||
}
|
||||
|
||||
// From https://cs.opensource.google/fuchsia/fuchsia/+/main:zircon/third_party/ulib/musl/include/bits/signal.h;l=20-21;drc=0827b18ab9540c46f8037f407d17ea15a79e9ba7
|
||||
pub const MINSIGSTKSZ: ::size_t = 6144;
|
||||
pub const SIGSTKSZ: ::size_t = 12288;
|
||||
pub const MINSIGSTKSZ: size_t = 6144;
|
||||
pub const SIGSTKSZ: size_t = 12288;
|
||||
|
||||
142
third_party/rust/libc/src/fuchsia/align.rs
vendored
142
third_party/rust/libc/src/fuchsia/align.rs
vendored
@@ -1,142 +0,0 @@
|
||||
macro_rules! expand_align {
|
||||
() => {
|
||||
s! {
|
||||
#[cfg_attr(
|
||||
any(
|
||||
target_pointer_width = "32",
|
||||
target_arch = "x86_64"
|
||||
),
|
||||
repr(align(4)))]
|
||||
#[cfg_attr(
|
||||
not(any(
|
||||
target_pointer_width = "32",
|
||||
target_arch = "x86_64"
|
||||
)),
|
||||
repr(align(8)))]
|
||||
pub struct pthread_mutexattr_t {
|
||||
size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T],
|
||||
}
|
||||
|
||||
#[cfg_attr(target_pointer_width = "32",
|
||||
repr(align(4)))]
|
||||
#[cfg_attr(target_pointer_width = "64",
|
||||
repr(align(8)))]
|
||||
pub struct pthread_rwlockattr_t {
|
||||
size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T],
|
||||
}
|
||||
|
||||
#[repr(align(4))]
|
||||
pub struct pthread_condattr_t {
|
||||
size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T],
|
||||
}
|
||||
}
|
||||
|
||||
s_no_extra_traits! {
|
||||
#[cfg_attr(all(target_pointer_width = "32",
|
||||
any(target_arch = "arm",
|
||||
target_arch = "x86_64")),
|
||||
repr(align(4)))]
|
||||
#[cfg_attr(any(target_pointer_width = "64",
|
||||
not(any(target_arch = "arm",
|
||||
target_arch = "x86_64"))),
|
||||
repr(align(8)))]
|
||||
pub struct pthread_mutex_t {
|
||||
size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T],
|
||||
}
|
||||
|
||||
#[cfg_attr(all(target_pointer_width = "32",
|
||||
any(target_arch = "arm",
|
||||
target_arch = "x86_64")),
|
||||
repr(align(4)))]
|
||||
#[cfg_attr(any(target_pointer_width = "64",
|
||||
not(any(target_arch = "arm",
|
||||
target_arch = "x86_64"))),
|
||||
repr(align(8)))]
|
||||
pub struct pthread_rwlock_t {
|
||||
size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T],
|
||||
}
|
||||
|
||||
#[cfg_attr(target_pointer_width = "32",
|
||||
repr(align(4)))]
|
||||
#[cfg_attr(target_pointer_width = "64",
|
||||
repr(align(8)))]
|
||||
#[cfg_attr(target_arch = "x86",
|
||||
repr(align(4)))]
|
||||
#[cfg_attr(not(target_arch = "x86"),
|
||||
repr(align(8)))]
|
||||
pub struct pthread_cond_t {
|
||||
size: [u8; ::__SIZEOF_PTHREAD_COND_T],
|
||||
}
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(feature = "extra_traits")] {
|
||||
impl PartialEq for pthread_cond_t {
|
||||
fn eq(&self, other: &pthread_cond_t) -> bool {
|
||||
self.size
|
||||
.iter()
|
||||
.zip(other.size.iter())
|
||||
.all(|(a,b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for pthread_cond_t {}
|
||||
impl ::fmt::Debug for pthread_cond_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
f.debug_struct("pthread_cond_t")
|
||||
// FIXME: .field("size", &self.size)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for pthread_cond_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
self.size.hash(state);
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for pthread_mutex_t {
|
||||
fn eq(&self, other: &pthread_mutex_t) -> bool {
|
||||
self.size
|
||||
.iter()
|
||||
.zip(other.size.iter())
|
||||
.all(|(a,b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for pthread_mutex_t {}
|
||||
impl ::fmt::Debug for pthread_mutex_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
f.debug_struct("pthread_mutex_t")
|
||||
// FIXME: .field("size", &self.size)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for pthread_mutex_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
self.size.hash(state);
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for pthread_rwlock_t {
|
||||
fn eq(&self, other: &pthread_rwlock_t) -> bool {
|
||||
self.size
|
||||
.iter()
|
||||
.zip(other.size.iter())
|
||||
.all(|(a,b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for pthread_rwlock_t {}
|
||||
impl ::fmt::Debug for pthread_rwlock_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
f.debug_struct("pthread_rwlock_t")
|
||||
// FIXME: .field("size", &self.size)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for pthread_rwlock_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
self.size.hash(state);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
5577
third_party/rust/libc/src/fuchsia/mod.rs
vendored
5577
third_party/rust/libc/src/fuchsia/mod.rs
vendored
File diff suppressed because it is too large
Load Diff
129
third_party/rust/libc/src/fuchsia/no_align.rs
vendored
129
third_party/rust/libc/src/fuchsia/no_align.rs
vendored
@@ -1,129 +0,0 @@
|
||||
macro_rules! expand_align {
|
||||
() => {
|
||||
s! {
|
||||
pub struct pthread_mutexattr_t {
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
__align: [::c_int; 0],
|
||||
#[cfg(not(target_arch = "x86_64"))]
|
||||
__align: [::c_long; 0],
|
||||
size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T],
|
||||
}
|
||||
|
||||
pub struct pthread_rwlockattr_t {
|
||||
__align: [::c_long; 0],
|
||||
size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T],
|
||||
}
|
||||
|
||||
pub struct pthread_condattr_t {
|
||||
__align: [::c_int; 0],
|
||||
size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T],
|
||||
}
|
||||
}
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct pthread_mutex_t {
|
||||
#[cfg(any(target_arch = "arm",
|
||||
all(target_arch = "x86_64",
|
||||
target_pointer_width = "32")))]
|
||||
__align: [::c_long; 0],
|
||||
#[cfg(not(any(target_arch = "arm",
|
||||
all(target_arch = "x86_64",
|
||||
target_pointer_width = "32"))))]
|
||||
__align: [::c_longlong; 0],
|
||||
size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T],
|
||||
}
|
||||
|
||||
pub struct pthread_rwlock_t {
|
||||
__align: [::c_long; 0],
|
||||
__align: [::c_longlong; 0],
|
||||
size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T],
|
||||
}
|
||||
|
||||
pub struct pthread_cond_t {
|
||||
__align: [*const ::c_void; 0],
|
||||
#[cfg(not(target_env = "musl"))]
|
||||
__align: [::c_longlong; 0],
|
||||
size: [u8; ::__SIZEOF_PTHREAD_COND_T],
|
||||
}
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(feature = "extra_traits")] {
|
||||
impl PartialEq for pthread_cond_t {
|
||||
fn eq(&self, other: &pthread_cond_t) -> bool {
|
||||
// Ignore __align field
|
||||
self.size
|
||||
.iter()
|
||||
.zip(other.size.iter())
|
||||
.all(|(a,b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for pthread_cond_t {}
|
||||
impl ::fmt::Debug for pthread_cond_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
f.debug_struct("pthread_cond_t")
|
||||
// Ignore __align field
|
||||
// FIXME: .field("size", &self.size)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for pthread_cond_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
// Ignore __align field
|
||||
self.size.hash(state);
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for pthread_mutex_t {
|
||||
fn eq(&self, other: &pthread_mutex_t) -> bool {
|
||||
// Ignore __align field
|
||||
self.size
|
||||
.iter()
|
||||
.zip(other.size.iter())
|
||||
.all(|(a,b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for pthread_mutex_t {}
|
||||
impl ::fmt::Debug for pthread_mutex_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
f.debug_struct("pthread_mutex_t")
|
||||
// Ignore __align field
|
||||
// FIXME: .field("size", &self.size)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for pthread_mutex_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
// Ignore __align field
|
||||
self.size.hash(state);
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for pthread_rwlock_t {
|
||||
fn eq(&self, other: &pthread_rwlock_t) -> bool {
|
||||
// Ignore __align field
|
||||
self.size
|
||||
.iter()
|
||||
.zip(other.size.iter())
|
||||
.all(|(a,b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for pthread_rwlock_t {}
|
||||
impl ::fmt::Debug for pthread_rwlock_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
f.debug_struct("pthread_rwlock_t")
|
||||
// Ignore __align field
|
||||
// FIXME: .field("size", &self.size)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for pthread_rwlock_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
// Ignore __align field
|
||||
self.size.hash(state);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
64
third_party/rust/libc/src/fuchsia/riscv64.rs
vendored
64
third_party/rust/libc/src/fuchsia/riscv64.rs
vendored
@@ -1,44 +1,46 @@
|
||||
use crate::off_t;
|
||||
use crate::prelude::*;
|
||||
|
||||
// From psABI Calling Convention for RV64
|
||||
pub type c_char = u8;
|
||||
pub type __u64 = ::c_ulonglong;
|
||||
pub type __u64 = c_ulonglong;
|
||||
pub type wchar_t = i32;
|
||||
|
||||
pub type nlink_t = ::c_ulong;
|
||||
pub type blksize_t = ::c_long;
|
||||
pub type nlink_t = c_ulong;
|
||||
pub type blksize_t = c_long;
|
||||
|
||||
pub type stat64 = stat;
|
||||
s! {
|
||||
pub struct stat {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
__pad0: ::c_int,
|
||||
pub st_rdev: ::dev_t,
|
||||
pub st_size: ::off_t,
|
||||
pub st_blksize: ::blksize_t,
|
||||
pub st_blocks: ::blkcnt_t,
|
||||
pub st_atime: ::time_t,
|
||||
pub st_atime_nsec: ::c_long,
|
||||
pub st_mtime: ::time_t,
|
||||
pub st_mtime_nsec: ::c_long,
|
||||
pub st_ctime: ::time_t,
|
||||
pub st_ctime_nsec: ::c_long,
|
||||
__unused: [::c_long; 3],
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
__pad0: c_int,
|
||||
pub st_rdev: crate::dev_t,
|
||||
pub st_size: off_t,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
pub st_blocks: crate::blkcnt_t,
|
||||
pub st_atime: crate::time_t,
|
||||
pub st_atime_nsec: c_long,
|
||||
pub st_mtime: crate::time_t,
|
||||
pub st_mtime_nsec: c_long,
|
||||
pub st_ctime: crate::time_t,
|
||||
pub st_ctime_nsec: c_long,
|
||||
__unused: [c_long; 3],
|
||||
}
|
||||
|
||||
// Not actually used, IPC calls just return ENOSYS
|
||||
pub struct ipc_perm {
|
||||
pub __ipc_perm_key: ::key_t,
|
||||
pub uid: ::uid_t,
|
||||
pub gid: ::gid_t,
|
||||
pub cuid: ::uid_t,
|
||||
pub cgid: ::gid_t,
|
||||
pub mode: ::mode_t,
|
||||
pub __seq: ::c_ushort,
|
||||
__unused1: ::c_ulong,
|
||||
__unused2: ::c_ulong,
|
||||
pub __ipc_perm_key: crate::key_t,
|
||||
pub uid: crate::uid_t,
|
||||
pub gid: crate::gid_t,
|
||||
pub cuid: crate::uid_t,
|
||||
pub cgid: crate::gid_t,
|
||||
pub mode: crate::mode_t,
|
||||
pub __seq: c_ushort,
|
||||
__unused1: c_ulong,
|
||||
__unused2: c_ulong,
|
||||
}
|
||||
}
|
||||
|
||||
174
third_party/rust/libc/src/fuchsia/x86_64.rs
vendored
174
third_party/rust/libc/src/fuchsia/x86_64.rs
vendored
@@ -1,50 +1,52 @@
|
||||
pub type c_char = i8;
|
||||
use crate::off_t;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type wchar_t = i32;
|
||||
pub type nlink_t = u64;
|
||||
pub type blksize_t = ::c_long;
|
||||
pub type __u64 = ::c_ulonglong;
|
||||
pub type blksize_t = c_long;
|
||||
pub type __u64 = c_ulonglong;
|
||||
|
||||
s! {
|
||||
pub struct stat {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
__pad0: ::c_int,
|
||||
pub st_rdev: ::dev_t,
|
||||
pub st_size: ::off_t,
|
||||
pub st_blksize: ::blksize_t,
|
||||
pub st_blocks: ::blkcnt_t,
|
||||
pub st_atime: ::time_t,
|
||||
pub st_atime_nsec: ::c_long,
|
||||
pub st_mtime: ::time_t,
|
||||
pub st_mtime_nsec: ::c_long,
|
||||
pub st_ctime: ::time_t,
|
||||
pub st_ctime_nsec: ::c_long,
|
||||
__unused: [::c_long; 3],
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
__pad0: c_int,
|
||||
pub st_rdev: crate::dev_t,
|
||||
pub st_size: off_t,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
pub st_blocks: crate::blkcnt_t,
|
||||
pub st_atime: crate::time_t,
|
||||
pub st_atime_nsec: c_long,
|
||||
pub st_mtime: crate::time_t,
|
||||
pub st_mtime_nsec: c_long,
|
||||
pub st_ctime: crate::time_t,
|
||||
pub st_ctime_nsec: c_long,
|
||||
__unused: [c_long; 3],
|
||||
}
|
||||
|
||||
pub struct stat64 {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino64_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
__pad0: ::c_int,
|
||||
pub st_rdev: ::dev_t,
|
||||
pub st_size: ::off_t,
|
||||
pub st_blksize: ::blksize_t,
|
||||
pub st_blocks: ::blkcnt64_t,
|
||||
pub st_atime: ::time_t,
|
||||
pub st_atime_nsec: ::c_long,
|
||||
pub st_mtime: ::time_t,
|
||||
pub st_mtime_nsec: ::c_long,
|
||||
pub st_ctime: ::time_t,
|
||||
pub st_ctime_nsec: ::c_long,
|
||||
__reserved: [::c_long; 3],
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino64_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
__pad0: c_int,
|
||||
pub st_rdev: crate::dev_t,
|
||||
pub st_size: off_t,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
pub st_blocks: crate::blkcnt64_t,
|
||||
pub st_atime: crate::time_t,
|
||||
pub st_atime_nsec: c_long,
|
||||
pub st_mtime: crate::time_t,
|
||||
pub st_mtime_nsec: c_long,
|
||||
pub st_ctime: crate::time_t,
|
||||
pub st_ctime_nsec: c_long,
|
||||
__reserved: [c_long; 3],
|
||||
}
|
||||
|
||||
pub struct mcontext_t {
|
||||
@@ -52,25 +54,25 @@ s! {
|
||||
}
|
||||
|
||||
pub struct ipc_perm {
|
||||
pub __ipc_perm_key: ::key_t,
|
||||
pub uid: ::uid_t,
|
||||
pub gid: ::gid_t,
|
||||
pub cuid: ::uid_t,
|
||||
pub cgid: ::gid_t,
|
||||
pub mode: ::mode_t,
|
||||
pub __seq: ::c_int,
|
||||
__unused1: ::c_long,
|
||||
__unused2: ::c_long
|
||||
pub __ipc_perm_key: crate::key_t,
|
||||
pub uid: crate::uid_t,
|
||||
pub gid: crate::gid_t,
|
||||
pub cuid: crate::uid_t,
|
||||
pub cgid: crate::gid_t,
|
||||
pub mode: crate::mode_t,
|
||||
pub __seq: c_int,
|
||||
__unused1: c_long,
|
||||
__unused2: c_long,
|
||||
}
|
||||
}
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct ucontext_t {
|
||||
pub uc_flags: ::c_ulong,
|
||||
pub uc_flags: c_ulong,
|
||||
pub uc_link: *mut ucontext_t,
|
||||
pub uc_stack: ::stack_t,
|
||||
pub uc_stack: crate::stack_t,
|
||||
pub uc_mcontext: mcontext_t,
|
||||
pub uc_sigmask: ::sigset_t,
|
||||
pub uc_sigmask: crate::sigset_t,
|
||||
__private: [u8; 512],
|
||||
}
|
||||
}
|
||||
@@ -92,20 +94,20 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
impl Eq for ucontext_t {}
|
||||
impl ::fmt::Debug for ucontext_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for ucontext_t {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("ucontext_t")
|
||||
.field("uc_flags", &self.uc_flags)
|
||||
.field("uc_link", &self.uc_link)
|
||||
.field("uc_stack", &self.uc_stack)
|
||||
.field("uc_mcontext", &self.uc_mcontext)
|
||||
.field("uc_sigmask", &self.uc_sigmask)
|
||||
// FIXME: .field("__private", &self.__private)
|
||||
// FIXME(debug): .field("__private", &self.__private)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for ucontext_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for ucontext_t {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.uc_flags.hash(state);
|
||||
self.uc_link.hash(state);
|
||||
self.uc_stack.hash(state);
|
||||
@@ -118,35 +120,35 @@ cfg_if! {
|
||||
}
|
||||
|
||||
// offsets in user_regs_structs, from sys/reg.h
|
||||
pub const R15: ::c_int = 0;
|
||||
pub const R14: ::c_int = 1;
|
||||
pub const R13: ::c_int = 2;
|
||||
pub const R12: ::c_int = 3;
|
||||
pub const RBP: ::c_int = 4;
|
||||
pub const RBX: ::c_int = 5;
|
||||
pub const R11: ::c_int = 6;
|
||||
pub const R10: ::c_int = 7;
|
||||
pub const R9: ::c_int = 8;
|
||||
pub const R8: ::c_int = 9;
|
||||
pub const RAX: ::c_int = 10;
|
||||
pub const RCX: ::c_int = 11;
|
||||
pub const RDX: ::c_int = 12;
|
||||
pub const RSI: ::c_int = 13;
|
||||
pub const RDI: ::c_int = 14;
|
||||
pub const ORIG_RAX: ::c_int = 15;
|
||||
pub const RIP: ::c_int = 16;
|
||||
pub const CS: ::c_int = 17;
|
||||
pub const EFLAGS: ::c_int = 18;
|
||||
pub const RSP: ::c_int = 19;
|
||||
pub const SS: ::c_int = 20;
|
||||
pub const FS_BASE: ::c_int = 21;
|
||||
pub const GS_BASE: ::c_int = 22;
|
||||
pub const DS: ::c_int = 23;
|
||||
pub const ES: ::c_int = 24;
|
||||
pub const FS: ::c_int = 25;
|
||||
pub const GS: ::c_int = 26;
|
||||
pub const R15: c_int = 0;
|
||||
pub const R14: c_int = 1;
|
||||
pub const R13: c_int = 2;
|
||||
pub const R12: c_int = 3;
|
||||
pub const RBP: c_int = 4;
|
||||
pub const RBX: c_int = 5;
|
||||
pub const R11: c_int = 6;
|
||||
pub const R10: c_int = 7;
|
||||
pub const R9: c_int = 8;
|
||||
pub const R8: c_int = 9;
|
||||
pub const RAX: c_int = 10;
|
||||
pub const RCX: c_int = 11;
|
||||
pub const RDX: c_int = 12;
|
||||
pub const RSI: c_int = 13;
|
||||
pub const RDI: c_int = 14;
|
||||
pub const ORIG_RAX: c_int = 15;
|
||||
pub const RIP: c_int = 16;
|
||||
pub const CS: c_int = 17;
|
||||
pub const EFLAGS: c_int = 18;
|
||||
pub const RSP: c_int = 19;
|
||||
pub const SS: c_int = 20;
|
||||
pub const FS_BASE: c_int = 21;
|
||||
pub const GS_BASE: c_int = 22;
|
||||
pub const DS: c_int = 23;
|
||||
pub const ES: c_int = 24;
|
||||
pub const FS: c_int = 25;
|
||||
pub const GS: c_int = 26;
|
||||
|
||||
pub const MAP_32BIT: ::c_int = 0x0040;
|
||||
pub const MAP_32BIT: c_int = 0x0040;
|
||||
|
||||
pub const SIGSTKSZ: ::size_t = 8192;
|
||||
pub const MINSIGSTKSZ: ::size_t = 2048;
|
||||
pub const SIGSTKSZ: size_t = 8192;
|
||||
pub const MINSIGSTKSZ: size_t = 2048;
|
||||
|
||||
25
third_party/rust/libc/src/hermit.rs
vendored
25
third_party/rust/libc/src/hermit.rs
vendored
@@ -1,31 +1,12 @@
|
||||
//! Hermit C type definitions
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] {
|
||||
pub type c_char = u8;
|
||||
} else {
|
||||
pub type c_char = i8;
|
||||
}
|
||||
}
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type c_schar = i8;
|
||||
pub type c_uchar = u8;
|
||||
pub type c_short = i16;
|
||||
pub type c_ushort = u16;
|
||||
pub type c_int = i32;
|
||||
pub type c_uint = u32;
|
||||
pub type c_long = i64;
|
||||
pub type c_ulong = u64;
|
||||
pub type c_longlong = i64;
|
||||
pub type c_ulonglong = u64;
|
||||
pub type intmax_t = i64;
|
||||
pub type uintmax_t = u64;
|
||||
pub type intptr_t = isize;
|
||||
pub type uintptr_t = usize;
|
||||
|
||||
pub type c_float = f32;
|
||||
pub type c_double = f64;
|
||||
|
||||
pub type size_t = usize;
|
||||
pub type ssize_t = isize;
|
||||
pub type ptrdiff_t = isize;
|
||||
@@ -119,7 +100,7 @@ s! {
|
||||
pub st_uid: u32,
|
||||
pub st_gid: u32,
|
||||
pub st_rdev: u64,
|
||||
pub st_size: u64,
|
||||
pub st_size: i64,
|
||||
pub st_blksize: i64,
|
||||
pub st_blocks: i64,
|
||||
pub st_atim: timespec,
|
||||
@@ -576,5 +557,3 @@ extern "C" {
|
||||
#[link_name = "sys_poll"]
|
||||
pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: i32) -> i32;
|
||||
}
|
||||
|
||||
pub use ffi::c_void;
|
||||
|
||||
159
third_party/rust/libc/src/lib.rs
vendored
159
third_party/rust/libc/src/lib.rs
vendored
@@ -12,7 +12,7 @@
|
||||
redundant_semicolons,
|
||||
unused_macros,
|
||||
unused_macro_rules,
|
||||
// FIXME: temporarily allow dead_code to fix CI:
|
||||
// FIXME(1.0): temporarily allow dead_code to fix CI:
|
||||
// - https://github.com/rust-lang/libc/issues/3740
|
||||
// - https://github.com/rust-lang/rust/pull/126456
|
||||
dead_code,
|
||||
@@ -21,12 +21,14 @@
|
||||
// Attributes needed when building as part of the standard library
|
||||
#![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))]
|
||||
#![cfg_attr(libc_thread_local, feature(thread_local))]
|
||||
#![cfg_attr(feature = "rustc-dep-of-std", allow(internal_features))]
|
||||
// DIFF(1.0): The thread local references that raise this lint were removed in 1.0
|
||||
#![cfg_attr(feature = "rustc-dep-of-std", allow(static_mut_refs))]
|
||||
// Enable extra lints:
|
||||
#![cfg_attr(feature = "extra_traits", deny(missing_debug_implementations))]
|
||||
#![deny(missing_copy_implementations, safe_packed_borrows)]
|
||||
#![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)]
|
||||
#![cfg_attr(feature = "rustc-dep-of-std", no_core)]
|
||||
#![cfg_attr(libc_const_extern_fn_unstable, feature(const_extern_fn))]
|
||||
|
||||
#[macro_use]
|
||||
mod macros;
|
||||
@@ -34,135 +36,116 @@ mod macros;
|
||||
cfg_if! {
|
||||
if #[cfg(feature = "rustc-dep-of-std")] {
|
||||
extern crate rustc_std_workspace_core as core;
|
||||
#[allow(unused_imports)]
|
||||
use core::iter;
|
||||
#[allow(unused_imports)]
|
||||
use core::ops;
|
||||
#[allow(unused_imports)]
|
||||
use core::option;
|
||||
}
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(libc_priv_mod_use)] {
|
||||
#[cfg(libc_core_cvoid)]
|
||||
#[allow(unused_imports)]
|
||||
use core::ffi;
|
||||
#[allow(unused_imports)]
|
||||
use core::fmt;
|
||||
#[allow(unused_imports)]
|
||||
use core::hash;
|
||||
#[allow(unused_imports)]
|
||||
use core::num;
|
||||
#[allow(unused_imports)]
|
||||
use core::mem;
|
||||
#[doc(hidden)]
|
||||
#[allow(unused_imports)]
|
||||
use core::clone::Clone;
|
||||
#[doc(hidden)]
|
||||
#[allow(unused_imports)]
|
||||
use core::marker::{Copy, Send, Sync};
|
||||
#[doc(hidden)]
|
||||
#[allow(unused_imports)]
|
||||
use core::option::Option;
|
||||
} else {
|
||||
#[doc(hidden)]
|
||||
#[allow(unused_imports)]
|
||||
pub use core::fmt;
|
||||
#[doc(hidden)]
|
||||
#[allow(unused_imports)]
|
||||
pub use core::hash;
|
||||
#[doc(hidden)]
|
||||
#[allow(unused_imports)]
|
||||
pub use core::num;
|
||||
#[doc(hidden)]
|
||||
#[allow(unused_imports)]
|
||||
pub use core::mem;
|
||||
#[doc(hidden)]
|
||||
#[allow(unused_imports)]
|
||||
pub use core::clone::Clone;
|
||||
#[doc(hidden)]
|
||||
#[allow(unused_imports)]
|
||||
pub use core::marker::{Copy, Send, Sync};
|
||||
#[doc(hidden)]
|
||||
#[allow(unused_imports)]
|
||||
pub use core::option::Option;
|
||||
}
|
||||
}
|
||||
pub use core::ffi::c_void;
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(windows)] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use crate::primitives::*;
|
||||
|
||||
mod windows;
|
||||
pub use windows::*;
|
||||
pub use crate::windows::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(target_os = "fuchsia")] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use crate::primitives::*;
|
||||
|
||||
mod fuchsia;
|
||||
pub use fuchsia::*;
|
||||
pub use crate::fuchsia::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(target_os = "switch")] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use primitives::*;
|
||||
|
||||
mod switch;
|
||||
pub use switch::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(target_os = "psp")] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use primitives::*;
|
||||
|
||||
mod psp;
|
||||
pub use psp::*;
|
||||
pub use crate::psp::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(target_os = "vxworks")] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use crate::primitives::*;
|
||||
|
||||
mod vxworks;
|
||||
pub use vxworks::*;
|
||||
pub use crate::vxworks::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(target_os = "solid_asp3")] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use crate::primitives::*;
|
||||
|
||||
mod solid;
|
||||
pub use solid::*;
|
||||
pub use crate::solid::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(unix)] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use crate::primitives::*;
|
||||
|
||||
mod unix;
|
||||
pub use unix::*;
|
||||
pub use crate::unix::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(target_os = "hermit")] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use crate::primitives::*;
|
||||
|
||||
mod hermit;
|
||||
pub use hermit::*;
|
||||
pub use crate::hermit::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(target_os = "teeos")] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use primitives::*;
|
||||
|
||||
mod teeos;
|
||||
pub use teeos::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(target_os = "trusty")] {
|
||||
mod primitives;
|
||||
pub use crate::primitives::*;
|
||||
|
||||
mod trusty;
|
||||
pub use crate::trusty::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use crate::primitives::*;
|
||||
|
||||
mod sgx;
|
||||
pub use sgx::*;
|
||||
pub use crate::sgx::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(any(target_env = "wasi", target_os = "wasi"))] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use crate::primitives::*;
|
||||
|
||||
mod wasi;
|
||||
pub use wasi::*;
|
||||
pub use crate::wasi::*;
|
||||
|
||||
prelude!();
|
||||
} else if #[cfg(target_os = "xous")] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
mod primitives;
|
||||
pub use crate::primitives::*;
|
||||
|
||||
mod xous;
|
||||
pub use xous::*;
|
||||
pub use crate::xous::*;
|
||||
|
||||
prelude!();
|
||||
} else {
|
||||
// non-supported targets: empty...
|
||||
}
|
||||
|
||||
312
third_party/rust/libc/src/macros.rs
vendored
312
third_party/rust/libc/src/macros.rs
vendored
@@ -61,216 +61,260 @@ macro_rules! cfg_if {
|
||||
};
|
||||
}
|
||||
|
||||
/// Create an internal crate prelude with `core` reexports and common types.
|
||||
macro_rules! prelude {
|
||||
() => {
|
||||
/// Frequently-used types that are available on all platforms
|
||||
///
|
||||
/// We need to reexport the core types so this works with `rust-dep-of-std`.
|
||||
mod prelude {
|
||||
// Exports from `core`
|
||||
#[allow(unused_imports)]
|
||||
pub(crate) use ::core::clone::Clone;
|
||||
#[allow(unused_imports)]
|
||||
pub(crate) use ::core::marker::{Copy, Send, Sync};
|
||||
#[allow(unused_imports)]
|
||||
pub(crate) use ::core::option::Option;
|
||||
#[allow(unused_imports)]
|
||||
pub(crate) use ::core::{fmt, hash, iter, mem};
|
||||
|
||||
// Commonly used types defined in this crate
|
||||
#[allow(unused_imports)]
|
||||
pub(crate) use crate::{
|
||||
c_char, c_double, c_float, c_int, c_long, c_longlong, c_short, c_uchar, c_uint,
|
||||
c_ulong, c_ulonglong, c_ushort, c_void, intptr_t, size_t, ssize_t, uintptr_t,
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/// Implement `Clone` and `Copy` for a struct, as well as `Debug`, `Eq`, `Hash`, and
|
||||
/// `PartialEq` if the `extra_traits` feature is enabled.
|
||||
///
|
||||
/// Use [`s_no_extra_traits`] for structs where the `extra_traits` feature does not
|
||||
/// make sense, and for unions.
|
||||
macro_rules! s {
|
||||
($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($(
|
||||
($(
|
||||
$(#[$attr:meta])*
|
||||
pub $t:ident $i:ident { $($field:tt)* }
|
||||
)*) => ($(
|
||||
s!(it: $(#[$attr])* pub $t $i { $($field)* });
|
||||
)*);
|
||||
|
||||
(it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => (
|
||||
compile_error!("unions cannot derive extra traits, use s_no_extra_traits instead");
|
||||
);
|
||||
|
||||
(it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => (
|
||||
__item! {
|
||||
#[repr(C)]
|
||||
#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
|
||||
#[cfg_attr(
|
||||
feature = "extra_traits",
|
||||
::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq)
|
||||
)]
|
||||
#[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)]
|
||||
#[allow(deprecated)]
|
||||
$(#[$attr])*
|
||||
pub struct $i { $($field)* }
|
||||
}
|
||||
#[allow(deprecated)]
|
||||
impl ::Copy for $i {}
|
||||
#[allow(deprecated)]
|
||||
impl ::Clone for $i {
|
||||
fn clone(&self) -> $i { *self }
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/// Implement `Clone` and `Copy` for a tuple struct, as well as `Debug`, `Eq`, `Hash`,
|
||||
/// and `PartialEq` if the `extra_traits` feature is enabled.
|
||||
///
|
||||
/// This is the same as [`s`] but works for tuple structs.
|
||||
macro_rules! s_paren {
|
||||
($(
|
||||
$(#[$attr:meta])*
|
||||
pub struct $i:ident ( $($field:tt)* );
|
||||
)*) => ($(
|
||||
__item! {
|
||||
#[cfg_attr(
|
||||
feature = "extra_traits",
|
||||
::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq)
|
||||
)]
|
||||
#[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)]
|
||||
$(#[$attr])*
|
||||
pub struct $i ( $($field)* );
|
||||
}
|
||||
)*);
|
||||
}
|
||||
|
||||
/// Implement `Clone` and `Copy` for a struct with no `extra_traits` feature.
|
||||
///
|
||||
/// Most items will prefer to use [`s`].
|
||||
macro_rules! s_no_extra_traits {
|
||||
($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($(
|
||||
($(
|
||||
$(#[$attr:meta])*
|
||||
pub $t:ident $i:ident { $($field:tt)* }
|
||||
)*) => ($(
|
||||
s_no_extra_traits!(it: $(#[$attr])* pub $t $i { $($field)* });
|
||||
)*);
|
||||
|
||||
(it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => (
|
||||
cfg_if! {
|
||||
if #[cfg(libc_union)] {
|
||||
__item! {
|
||||
#[repr(C)]
|
||||
#[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)]
|
||||
$(#[$attr])*
|
||||
pub union $i { $($field)* }
|
||||
}
|
||||
|
||||
impl ::Copy for $i {}
|
||||
impl ::Clone for $i {
|
||||
fn clone(&self) -> $i { *self }
|
||||
}
|
||||
#[cfg(feature = "extra_traits")]
|
||||
impl ::core::fmt::Debug for $i {
|
||||
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
|
||||
f.debug_struct(::core::stringify!($i)).finish_non_exhaustive()
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
(it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => (
|
||||
__item! {
|
||||
#[repr(C)]
|
||||
#[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)]
|
||||
$(#[$attr])*
|
||||
pub struct $i { $($field)* }
|
||||
}
|
||||
#[allow(deprecated)]
|
||||
impl ::Copy for $i {}
|
||||
#[allow(deprecated)]
|
||||
impl ::Clone for $i {
|
||||
fn clone(&self) -> $i { *self }
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/// Specify that an enum should have no traits that aren't specified in the macro
|
||||
/// invocation, i.e. no `Clone` or `Copy`.
|
||||
macro_rules! missing {
|
||||
($($(#[$attr:meta])* pub enum $i:ident {})*) => ($(
|
||||
$(#[$attr])* #[allow(missing_copy_implementations)] pub enum $i { }
|
||||
($(
|
||||
$(#[$attr:meta])*
|
||||
pub enum $i:ident {}
|
||||
)*) => ($(
|
||||
$(#[$attr])*
|
||||
#[allow(missing_copy_implementations)]
|
||||
pub enum $i { }
|
||||
)*);
|
||||
}
|
||||
|
||||
/// Implement `Clone` and `Copy` for an enum, as well as `Debug`, `Eq`, `Hash`, and
|
||||
/// `PartialEq` if the `extra_traits` feature is enabled.
|
||||
macro_rules! e {
|
||||
($($(#[$attr:meta])* pub enum $i:ident { $($field:tt)* })*) => ($(
|
||||
($(
|
||||
$(#[$attr:meta])*
|
||||
pub enum $i:ident { $($field:tt)* }
|
||||
)*) => ($(
|
||||
__item! {
|
||||
#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
|
||||
#[cfg_attr(
|
||||
feature = "extra_traits",
|
||||
::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq)
|
||||
)]
|
||||
#[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)]
|
||||
$(#[$attr])*
|
||||
pub enum $i { $($field)* }
|
||||
}
|
||||
impl ::Copy for $i {}
|
||||
impl ::Clone for $i {
|
||||
fn clone(&self) -> $i { *self }
|
||||
}
|
||||
)*);
|
||||
}
|
||||
|
||||
macro_rules! s_paren {
|
||||
($($(#[$attr:meta])* pub struct $i:ident ( $($field:tt)* ); )* ) => ($(
|
||||
__item! {
|
||||
#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
|
||||
$(#[$attr])*
|
||||
pub struct $i ( $($field)* );
|
||||
}
|
||||
impl ::Copy for $i {}
|
||||
impl ::Clone for $i {
|
||||
fn clone(&self) -> $i { *self }
|
||||
}
|
||||
)*);
|
||||
}
|
||||
|
||||
// This is a pretty horrible hack to allow us to conditionally mark
|
||||
// some functions as 'const', without requiring users of this macro
|
||||
// to care about the "const-extern-fn" feature.
|
||||
// This is a pretty horrible hack to allow us to conditionally mark some functions as 'const',
|
||||
// without requiring users of this macro to care "libc_const_extern_fn".
|
||||
//
|
||||
// When 'const-extern-fn' is enabled, we emit the captured 'const' keyword
|
||||
// in the expanded function.
|
||||
// When 'libc_const_extern_fn' is enabled, we emit the captured 'const' keyword in the expanded
|
||||
// function.
|
||||
//
|
||||
// When 'const-extern-fn' is disabled, we always emit a plain 'pub unsafe extern fn'.
|
||||
// When 'libc_const_extern_fn' is disabled, we always emit a plain 'pub unsafe extern fn'.
|
||||
// Note that the expression matched by the macro is exactly the same - this allows
|
||||
// users of this macro to work whether or not 'const-extern-fn' is enabled
|
||||
// users of this macro to work whether or not 'libc_const_extern_fn' is enabled
|
||||
//
|
||||
// Unfortunately, we need to duplicate most of this macro between the 'cfg_if' blocks.
|
||||
// This is because 'const unsafe extern fn' won't even parse on older compilers,
|
||||
// so we need to avoid emitting it at all of 'const-extern-fn'.
|
||||
// so we need to avoid emitting it at all of 'libc_const_extern_fn'.
|
||||
//
|
||||
// Specifically, moving the 'cfg_if' into the macro body will *not* work.
|
||||
// Doing so would cause the '#[cfg(feature = "const-extern-fn")]' to be emitted
|
||||
// into user code. The 'cfg' gate will not stop Rust from trying to parse the
|
||||
// 'pub const unsafe extern fn', so users would get a compiler error even when
|
||||
// the 'const-extern-fn' feature is disabled
|
||||
//
|
||||
// Note that users of this macro need to place 'const' in a weird position
|
||||
// (after the closing ')' for the arguments, but before the return type).
|
||||
// This was the only way I could satisfy the following two requirements:
|
||||
// 1. Avoid ambiguity errors from 'macro_rules!' (which happen when writing '$foo:ident fn'
|
||||
// 2. Allow users of this macro to mix 'pub fn foo' and 'pub const fn bar' within the same
|
||||
// 'f!' block
|
||||
// Specifically, moving the 'cfg_if' into the macro body will *not* work. Doing so would cause the
|
||||
// '#[cfg(libc_const_extern_fn)]' to be emitted into user code. The 'cfg' gate will not stop Rust
|
||||
// from trying to parse the 'pub const unsafe extern fn', so users would get a compiler error even
|
||||
// when the 'libc_const_extern_fn' feature is disabled.
|
||||
|
||||
// FIXME(ctest): ctest can't handle `const extern` functions, we should be able to remove this
|
||||
// cfg completely.
|
||||
// FIXME(ctest): ctest can't handle `$(,)?` so we use `$(,)*` which isn't quite correct.
|
||||
cfg_if! {
|
||||
if #[cfg(libc_const_extern_fn)] {
|
||||
/// Define an `unsafe` function that is const as long as `libc_const_extern_fn` is enabled.
|
||||
macro_rules! f {
|
||||
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
) -> $ret:ty {
|
||||
$($body:stmt);*
|
||||
})*) => ($(
|
||||
($(
|
||||
$(#[$attr:meta])*
|
||||
pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
|
||||
$body:block
|
||||
)*) => ($(
|
||||
#[inline]
|
||||
$(#[$attr])*
|
||||
pub $($constness)* unsafe extern fn $i($($arg: $argty),*
|
||||
) -> $ret {
|
||||
$($body);*
|
||||
}
|
||||
pub $($constness)* unsafe extern "C" fn $i($($arg: $argty),*) -> $ret
|
||||
$body
|
||||
)*)
|
||||
}
|
||||
|
||||
/// Define a safe function that is const as long as `libc_const_extern_fn` is enabled.
|
||||
macro_rules! safe_f {
|
||||
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
) -> $ret:ty {
|
||||
$($body:stmt);*
|
||||
})*) => ($(
|
||||
($(
|
||||
$(#[$attr:meta])*
|
||||
pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
|
||||
$body:block
|
||||
)*) => ($(
|
||||
#[inline]
|
||||
$(#[$attr])*
|
||||
pub $($constness)* extern fn $i($($arg: $argty),*
|
||||
) -> $ret {
|
||||
$($body);*
|
||||
}
|
||||
pub $($constness)* extern "C" fn $i($($arg: $argty),*) -> $ret
|
||||
$body
|
||||
)*)
|
||||
}
|
||||
|
||||
/// A nonpublic function that is const as long as `libc_const_extern_fn` is enabled.
|
||||
macro_rules! const_fn {
|
||||
($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
) -> $ret:ty {
|
||||
$($body:stmt);*
|
||||
})*) => ($(
|
||||
($(
|
||||
$(#[$attr:meta])*
|
||||
$({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
|
||||
$body:block
|
||||
)*) => ($(
|
||||
#[inline]
|
||||
$(#[$attr])*
|
||||
$($constness)* fn $i($($arg: $argty),*
|
||||
) -> $ret {
|
||||
$($body);*
|
||||
}
|
||||
$($constness)* fn $i($($arg: $argty),*) -> $ret
|
||||
$body
|
||||
)*)
|
||||
}
|
||||
|
||||
} else {
|
||||
/// Define an `unsafe` function that is const as long as `libc_const_extern_fn` is enabled.
|
||||
macro_rules! f {
|
||||
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
) -> $ret:ty {
|
||||
$($body:stmt);*
|
||||
})*) => ($(
|
||||
($(
|
||||
$(#[$attr:meta])*
|
||||
pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
|
||||
$body:block
|
||||
)*) => ($(
|
||||
#[inline]
|
||||
$(#[$attr])*
|
||||
pub unsafe extern fn $i($($arg: $argty),*
|
||||
) -> $ret {
|
||||
$($body);*
|
||||
}
|
||||
pub unsafe extern "C" fn $i($($arg: $argty),*) -> $ret
|
||||
$body
|
||||
)*)
|
||||
}
|
||||
|
||||
/// Define a safe function that is const as long as `libc_const_extern_fn` is enabled.
|
||||
macro_rules! safe_f {
|
||||
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
) -> $ret:ty {
|
||||
$($body:stmt);*
|
||||
})*) => ($(
|
||||
($(
|
||||
$(#[$attr:meta])*
|
||||
pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
|
||||
$body:block
|
||||
)*) => ($(
|
||||
#[inline]
|
||||
$(#[$attr])*
|
||||
pub extern fn $i($($arg: $argty),*
|
||||
) -> $ret {
|
||||
$($body);*
|
||||
}
|
||||
pub extern "C" fn $i($($arg: $argty),*) -> $ret
|
||||
$body
|
||||
)*)
|
||||
}
|
||||
|
||||
/// A nonpublic function that is const as long as `libc_const_extern_fn` is enabled.
|
||||
macro_rules! const_fn {
|
||||
($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
) -> $ret:ty {
|
||||
$($body:stmt);*
|
||||
})*) => ($(
|
||||
($(
|
||||
$(#[$attr:meta])*
|
||||
$({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
|
||||
$body:block
|
||||
)*) => ($(
|
||||
#[inline]
|
||||
$(#[$attr])*
|
||||
fn $i($($arg: $argty),*
|
||||
) -> $ret {
|
||||
$($body);*
|
||||
}
|
||||
fn $i($($arg: $argty),*) -> $ret
|
||||
$body
|
||||
)*)
|
||||
}
|
||||
}
|
||||
@@ -282,24 +326,6 @@ macro_rules! __item {
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! align_const {
|
||||
($($(#[$attr:meta])*
|
||||
pub const $name:ident : $t1:ty
|
||||
= $t2:ident { $($field:tt)* };)*) => ($(
|
||||
#[cfg(libc_align)]
|
||||
$(#[$attr])*
|
||||
pub const $name : $t1 = $t2 {
|
||||
$($field)*
|
||||
};
|
||||
#[cfg(not(libc_align))]
|
||||
$(#[$attr])*
|
||||
pub const $name : $t1 = $t2 {
|
||||
$($field)*
|
||||
__align: [],
|
||||
};
|
||||
)*)
|
||||
}
|
||||
|
||||
// This macro is used to deprecate items that should be accessed via the mach2 crate
|
||||
macro_rules! deprecated_mach {
|
||||
(pub const $id:ident: $ty:ty = $expr:expr;) => {
|
||||
@@ -333,17 +359,3 @@ macro_rules! deprecated_mach {
|
||||
)*
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(libc_ptr_addr_of))]
|
||||
macro_rules! ptr_addr_of {
|
||||
($place:expr) => {
|
||||
&$place
|
||||
};
|
||||
}
|
||||
|
||||
#[cfg(libc_ptr_addr_of)]
|
||||
macro_rules! ptr_addr_of {
|
||||
($place:expr) => {
|
||||
::core::ptr::addr_of!($place)
|
||||
};
|
||||
}
|
||||
|
||||
166
third_party/rust/libc/src/primitives.rs
vendored
Normal file
166
third_party/rust/libc/src/primitives.rs
vendored
Normal file
@@ -0,0 +1,166 @@
|
||||
//! This module contains type aliases for C's platform-specific types
|
||||
//! and fixed-width integer types.
|
||||
//!
|
||||
//! The platform-specific types definitions were taken from rust-lang/rust in
|
||||
//! library/core/src/ffi/primitives.rs
|
||||
//!
|
||||
//! The fixed-width integer aliases are deprecated: use the Rust types instead.
|
||||
|
||||
pub type c_schar = i8;
|
||||
pub type c_uchar = u8;
|
||||
pub type c_short = i16;
|
||||
pub type c_ushort = u16;
|
||||
|
||||
pub type c_longlong = i64;
|
||||
pub type c_ulonglong = u64;
|
||||
|
||||
pub type c_float = f32;
|
||||
pub type c_double = f64;
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(all(
|
||||
not(windows),
|
||||
// FIXME(ctest): just use `target_vendor` = "apple"` once `ctest` supports it
|
||||
not(any(
|
||||
target_os = "macos",
|
||||
target_os = "ios",
|
||||
target_os = "tvos",
|
||||
target_os = "watchos",
|
||||
target_os = "visionos",
|
||||
)),
|
||||
not(target_os = "vita"),
|
||||
any(
|
||||
target_arch = "aarch64",
|
||||
target_arch = "arm",
|
||||
target_arch = "csky",
|
||||
target_arch = "hexagon",
|
||||
target_arch = "msp430",
|
||||
target_arch = "powerpc",
|
||||
target_arch = "powerpc64",
|
||||
target_arch = "riscv32",
|
||||
target_arch = "riscv64",
|
||||
target_arch = "s390x",
|
||||
target_arch = "xtensa",
|
||||
)
|
||||
))] {
|
||||
pub type c_char = u8;
|
||||
} else {
|
||||
// On every other target, c_char is signed.
|
||||
pub type c_char = i8;
|
||||
}
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(any(target_arch = "avr", target_arch = "msp430"))] {
|
||||
pub type c_int = i16;
|
||||
pub type c_uint = u16;
|
||||
} else {
|
||||
pub type c_int = i32;
|
||||
pub type c_uint = u32;
|
||||
}
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(all(target_pointer_width = "64", not(windows)))] {
|
||||
pub type c_long = i64;
|
||||
pub type c_ulong = u64;
|
||||
} else {
|
||||
// The minimal size of `long` in the C standard is 32 bits
|
||||
pub type c_long = i32;
|
||||
pub type c_ulong = u32;
|
||||
}
|
||||
}
|
||||
|
||||
#[deprecated(since = "0.2.55", note = "Use i8 instead.")]
|
||||
pub type int8_t = i8;
|
||||
#[deprecated(since = "0.2.55", note = "Use i16 instead.")]
|
||||
pub type int16_t = i16;
|
||||
#[deprecated(since = "0.2.55", note = "Use i32 instead.")]
|
||||
pub type int32_t = i32;
|
||||
#[deprecated(since = "0.2.55", note = "Use i64 instead.")]
|
||||
pub type int64_t = i64;
|
||||
#[deprecated(since = "0.2.55", note = "Use u8 instead.")]
|
||||
pub type uint8_t = u8;
|
||||
#[deprecated(since = "0.2.55", note = "Use u16 instead.")]
|
||||
pub type uint16_t = u16;
|
||||
#[deprecated(since = "0.2.55", note = "Use u32 instead.")]
|
||||
pub type uint32_t = u32;
|
||||
#[deprecated(since = "0.2.55", note = "Use u64 instead.")]
|
||||
pub type uint64_t = u64;
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(all(target_arch = "aarch64", not(target_os = "windows")))] {
|
||||
// This introduces partial support for FFI with __int128 and
|
||||
// equivalent types on platforms where Rust's definition is validated
|
||||
// to match the standard C ABI of that platform.
|
||||
//
|
||||
// Rust does not guarantee u128/i128 are sound for FFI, and its
|
||||
// definitions are in fact known to be incompatible. [0]
|
||||
//
|
||||
// However these problems aren't fundamental, and are just platform
|
||||
// inconsistencies. Specifically at the time of this writing:
|
||||
//
|
||||
// * For x64 SysV ABIs (everything but Windows), the types are underaligned.
|
||||
// * For all Windows ABIs, Microsoft doesn't actually officially define __int128,
|
||||
// and as a result different implementations don't actually agree on its ABI.
|
||||
//
|
||||
// But on the other major aarch64 platforms (android, linux, ios, macos) we have
|
||||
// validated that rustc has the right ABI for these types. This is important because
|
||||
// aarch64 uses these types in some fundamental OS types like user_fpsimd_struct,
|
||||
// which represents saved simd registers.
|
||||
//
|
||||
// Any API which uses these types will need to `#[ignore(improper_ctypes)]`
|
||||
// until the upstream rust issue is resolved, but this at least lets us make
|
||||
// progress on platforms where this type is important.
|
||||
//
|
||||
// The list of supported architectures and OSes is intentionally very restricted,
|
||||
// as careful work needs to be done to verify that a particular platform
|
||||
// has a conformant ABI.
|
||||
//
|
||||
// [0]: https://github.com/rust-lang/rust/issues/54341
|
||||
|
||||
/// C `__int128` (a GCC extension that's part of many ABIs)
|
||||
pub type __int128 = i128;
|
||||
/// C `unsigned __int128` (a GCC extension that's part of many ABIs)
|
||||
pub type __uint128 = u128;
|
||||
/// C __int128_t (alternate name for [__int128][])
|
||||
pub type __int128_t = i128;
|
||||
/// C __uint128_t (alternate name for [__uint128][])
|
||||
pub type __uint128_t = u128;
|
||||
|
||||
// NOTE: if you add more platforms to here, you may need to cfg
|
||||
// these consts. They should always match the platform's values
|
||||
// for `sizeof(__int128)` and `_Alignof(__int128)`.
|
||||
const _SIZE_128: usize = 16;
|
||||
const _ALIGN_128: usize = 16;
|
||||
|
||||
// FIXME(ctest): ctest doesn't handle `_` as an identifier so these tests are temporarily
|
||||
// disabled.
|
||||
// macro_rules! static_assert_eq {
|
||||
// ($a:expr, $b:expr) => {
|
||||
// const _: [(); $a] = [(); $b];
|
||||
// };
|
||||
// }
|
||||
//
|
||||
// // Since Rust doesn't officially guarantee that these types
|
||||
// // have compatible ABIs, we const assert that these values have the
|
||||
// // known size/align of the target platform's libc. If rustc ever
|
||||
// // tries to regress things, it will cause a compilation error.
|
||||
// //
|
||||
// // This isn't a bullet-proof solution because e.g. it doesn't
|
||||
// // catch the fact that llvm and gcc disagree on how x64 __int128
|
||||
// // is actually *passed* on the stack (clang underaligns it for
|
||||
// // the same reason that rustc *never* properly aligns it).
|
||||
// static_assert_eq!(core::mem::size_of::<__int128>(), _SIZE_128);
|
||||
// static_assert_eq!(core::mem::align_of::<__int128>(), _ALIGN_128);
|
||||
|
||||
// static_assert_eq!(core::mem::size_of::<__uint128>(), _SIZE_128);
|
||||
// static_assert_eq!(core::mem::align_of::<__uint128>(), _ALIGN_128);
|
||||
|
||||
// static_assert_eq!(core::mem::size_of::<__int128_t>(), _SIZE_128);
|
||||
// static_assert_eq!(core::mem::align_of::<__int128_t>(), _ALIGN_128);
|
||||
|
||||
// static_assert_eq!(core::mem::size_of::<__uint128_t>(), _SIZE_128);
|
||||
// static_assert_eq!(core::mem::align_of::<__uint128_t>(), _ALIGN_128);
|
||||
}
|
||||
}
|
||||
60
third_party/rust/libc/src/psp.rs
vendored
60
third_party/rust/libc/src/psp.rs
vendored
@@ -4,16 +4,8 @@
|
||||
//! by the linker. Crates that use these definitions must, somewhere in the
|
||||
//! crate graph, include a stub provider crate such as the `psp` crate.
|
||||
|
||||
pub type c_schar = i8;
|
||||
pub type c_uchar = u8;
|
||||
pub type c_short = i16;
|
||||
pub type c_ushort = u16;
|
||||
pub type c_int = i32;
|
||||
pub type c_uint = u32;
|
||||
pub type c_float = f32;
|
||||
pub type c_double = f64;
|
||||
pub type c_longlong = i64;
|
||||
pub type c_ulonglong = u64;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type intmax_t = i64;
|
||||
pub type uintmax_t = u64;
|
||||
|
||||
@@ -23,30 +15,6 @@ pub type intptr_t = isize;
|
||||
pub type uintptr_t = usize;
|
||||
pub type ssize_t = isize;
|
||||
|
||||
pub type c_char = u8;
|
||||
pub type c_long = i64;
|
||||
pub type c_ulong = u64;
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(libc_core_cvoid)] {
|
||||
pub use ::ffi::c_void;
|
||||
} else {
|
||||
// Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
|
||||
// enable more optimization opportunities around it recognizing things
|
||||
// like malloc/free.
|
||||
#[repr(u8)]
|
||||
#[allow(missing_copy_implementations)]
|
||||
#[allow(missing_debug_implementations)]
|
||||
pub enum c_void {
|
||||
// Two dummy variants so the #[repr] attribute can be used.
|
||||
#[doc(hidden)]
|
||||
__variant1,
|
||||
#[doc(hidden)]
|
||||
__variant2,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub type SceKernelVTimerHandler = unsafe extern "C" fn(
|
||||
uid: SceUid,
|
||||
arg1: *mut SceKernelSysClock,
|
||||
@@ -74,16 +42,16 @@ pub type IoPermissions = i32;
|
||||
pub type UmdCallback = fn(unknown: i32, event: i32) -> i32;
|
||||
|
||||
pub type SceMpegRingbufferCb =
|
||||
::Option<unsafe extern "C" fn(data: *mut c_void, num_packets: i32, param: *mut c_void) -> i32>;
|
||||
Option<unsafe extern "C" fn(data: *mut c_void, num_packets: i32, param: *mut c_void) -> i32>;
|
||||
|
||||
pub type GuCallback = ::Option<extern "C" fn(id: i32, arg: *mut c_void)>;
|
||||
pub type GuCallback = Option<extern "C" fn(id: i32, arg: *mut c_void)>;
|
||||
pub type GuSwapBuffersCallback =
|
||||
::Option<extern "C" fn(display: *mut *mut c_void, render: *mut *mut c_void)>;
|
||||
Option<extern "C" fn(display: *mut *mut c_void, render: *mut *mut c_void)>;
|
||||
|
||||
pub type SceNetAdhocctlHandler =
|
||||
::Option<unsafe extern "C" fn(flag: i32, error: i32, unknown: *mut c_void)>;
|
||||
Option<unsafe extern "C" fn(flag: i32, error: i32, unknown: *mut c_void)>;
|
||||
|
||||
pub type AdhocMatchingCallback = ::Option<
|
||||
pub type AdhocMatchingCallback = Option<
|
||||
unsafe extern "C" fn(
|
||||
matching_id: i32,
|
||||
event: i32,
|
||||
@@ -93,15 +61,15 @@ pub type AdhocMatchingCallback = ::Option<
|
||||
),
|
||||
>;
|
||||
|
||||
pub type SceNetApctlHandler = ::Option<
|
||||
pub type SceNetApctlHandler = Option<
|
||||
unsafe extern "C" fn(oldState: i32, newState: i32, event: i32, error: i32, pArg: *mut c_void),
|
||||
>;
|
||||
|
||||
pub type HttpMallocFunction = ::Option<unsafe extern "C" fn(size: usize) -> *mut c_void>;
|
||||
pub type HttpMallocFunction = Option<unsafe extern "C" fn(size: usize) -> *mut c_void>;
|
||||
pub type HttpReallocFunction =
|
||||
::Option<unsafe extern "C" fn(p: *mut c_void, size: usize) -> *mut c_void>;
|
||||
pub type HttpFreeFunction = ::Option<unsafe extern "C" fn(p: *mut c_void)>;
|
||||
pub type HttpPasswordCB = ::Option<
|
||||
Option<unsafe extern "C" fn(p: *mut c_void, size: usize) -> *mut c_void>;
|
||||
pub type HttpFreeFunction = Option<unsafe extern "C" fn(p: *mut c_void)>;
|
||||
pub type HttpPasswordCB = Option<
|
||||
unsafe extern "C" fn(
|
||||
request: i32,
|
||||
auth_type: HttpAuthType,
|
||||
@@ -1448,9 +1416,9 @@ s! {
|
||||
}
|
||||
|
||||
pub struct GeCallbackData {
|
||||
pub signal_func: ::Option<extern "C" fn(id: i32, arg: *mut c_void)>,
|
||||
pub signal_func: Option<extern "C" fn(id: i32, arg: *mut c_void)>,
|
||||
pub signal_arg: *mut c_void,
|
||||
pub finish_func: ::Option<extern "C" fn(id: i32, arg: *mut c_void)>,
|
||||
pub finish_func: Option<extern "C" fn(id: i32, arg: *mut c_void)>,
|
||||
pub finish_arg: *mut c_void,
|
||||
}
|
||||
|
||||
|
||||
36
third_party/rust/libc/src/sgx.rs
vendored
36
third_party/rust/libc/src/sgx.rs
vendored
@@ -1,15 +1,7 @@
|
||||
//! SGX C types definition
|
||||
|
||||
pub type c_schar = i8;
|
||||
pub type c_uchar = u8;
|
||||
pub type c_short = i16;
|
||||
pub type c_ushort = u16;
|
||||
pub type c_int = i32;
|
||||
pub type c_uint = u32;
|
||||
pub type c_float = f32;
|
||||
pub type c_double = f64;
|
||||
pub type c_longlong = i64;
|
||||
pub type c_ulonglong = u64;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type intmax_t = i64;
|
||||
pub type uintmax_t = u64;
|
||||
|
||||
@@ -19,29 +11,5 @@ pub type intptr_t = isize;
|
||||
pub type uintptr_t = usize;
|
||||
pub type ssize_t = isize;
|
||||
|
||||
pub type c_char = i8;
|
||||
pub type c_long = i64;
|
||||
pub type c_ulong = u64;
|
||||
|
||||
pub const INT_MIN: c_int = -2147483648;
|
||||
pub const INT_MAX: c_int = 2147483647;
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(libc_core_cvoid)] {
|
||||
pub use ::ffi::c_void;
|
||||
} else {
|
||||
// Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
|
||||
// enable more optimization opportunities around it recognizing things
|
||||
// like malloc/free.
|
||||
#[repr(u8)]
|
||||
#[allow(missing_copy_implementations)]
|
||||
#[allow(missing_debug_implementations)]
|
||||
pub enum c_void {
|
||||
// Two dummy variants so the #[repr] attribute can be used.
|
||||
#[doc(hidden)]
|
||||
__variant1,
|
||||
#[doc(hidden)]
|
||||
__variant2,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
3
third_party/rust/libc/src/solid/aarch64.rs
vendored
3
third_party/rust/libc/src/solid/aarch64.rs
vendored
@@ -1,4 +1 @@
|
||||
pub type c_char = i8;
|
||||
pub type wchar_t = u32;
|
||||
pub type c_long = i64;
|
||||
pub type c_ulong = u64;
|
||||
|
||||
3
third_party/rust/libc/src/solid/arm.rs
vendored
3
third_party/rust/libc/src/solid/arm.rs
vendored
@@ -1,4 +1 @@
|
||||
pub type c_char = i8;
|
||||
pub type wchar_t = u32;
|
||||
pub type c_long = i32;
|
||||
pub type c_ulong = u32;
|
||||
|
||||
80
third_party/rust/libc/src/solid/mod.rs
vendored
80
third_party/rust/libc/src/solid/mod.rs
vendored
@@ -2,24 +2,16 @@
|
||||
//!
|
||||
//! [SOLID]: https://solid.kmckk.com/
|
||||
|
||||
pub type c_schar = i8;
|
||||
pub type c_uchar = u8;
|
||||
pub type c_short = i16;
|
||||
pub type c_ushort = u16;
|
||||
pub type c_int = i32;
|
||||
pub type c_uint = u32;
|
||||
pub type c_float = f32;
|
||||
pub type c_double = f64;
|
||||
pub type c_longlong = i64;
|
||||
pub type c_ulonglong = u64;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type intmax_t = i64;
|
||||
pub type uintmax_t = u64;
|
||||
|
||||
pub type uintptr_t = usize;
|
||||
pub type intptr_t = isize;
|
||||
pub type ptrdiff_t = isize;
|
||||
pub type size_t = ::uintptr_t;
|
||||
pub type ssize_t = ::intptr_t;
|
||||
pub type size_t = crate::uintptr_t;
|
||||
pub type ssize_t = intptr_t;
|
||||
|
||||
pub type clock_t = c_uint;
|
||||
pub type time_t = i64;
|
||||
@@ -209,15 +201,15 @@ pub const O_EXCL: c_int = 0x400;
|
||||
pub const O_TEXT: c_int = 0x100;
|
||||
pub const O_BINARY: c_int = 0x200;
|
||||
pub const O_TRUNC: c_int = 0x20;
|
||||
pub const S_IEXEC: c_short = 0x0040;
|
||||
pub const S_IWRITE: c_short = 0x0080;
|
||||
pub const S_IREAD: c_short = 0x0100;
|
||||
pub const S_IFCHR: c_short = 0x2000;
|
||||
pub const S_IFDIR: c_short = 0x4000;
|
||||
pub const S_IFMT: c_short = 0o160000;
|
||||
pub const S_IFIFO: c_short = 0o0010000;
|
||||
pub const S_IFBLK: c_short = 0o0060000;
|
||||
pub const S_IFREG: c_short = 0o0100000;
|
||||
pub const S_IEXEC: c_short = 0o0100;
|
||||
pub const S_IWRITE: c_short = 0o0200;
|
||||
pub const S_IREAD: c_short = 0o0400;
|
||||
pub const S_IFCHR: c_short = 0o2_0000;
|
||||
pub const S_IFDIR: c_short = 0o4_0000;
|
||||
pub const S_IFMT: c_short = 0o16_0000;
|
||||
pub const S_IFIFO: c_short = 0o1_0000;
|
||||
pub const S_IFBLK: c_short = 0o6_0000;
|
||||
pub const S_IFREG: c_short = 0o10_0000;
|
||||
|
||||
pub const LC_ALL: c_int = 0;
|
||||
pub const LC_COLLATE: c_int = 1;
|
||||
@@ -405,16 +397,16 @@ pub const SIGPWR: c_int = 32;
|
||||
|
||||
#[cfg_attr(feature = "extra_traits", derive(Debug))]
|
||||
pub enum FILE {}
|
||||
impl ::Copy for FILE {}
|
||||
impl ::Clone for FILE {
|
||||
impl Copy for FILE {}
|
||||
impl Clone for FILE {
|
||||
fn clone(&self) -> FILE {
|
||||
*self
|
||||
}
|
||||
}
|
||||
#[cfg_attr(feature = "extra_traits", derive(Debug))]
|
||||
pub enum fpos_t {}
|
||||
impl ::Copy for fpos_t {}
|
||||
impl ::Clone for fpos_t {
|
||||
impl Copy for fpos_t {}
|
||||
impl Clone for fpos_t {
|
||||
fn clone(&self) -> fpos_t {
|
||||
*self
|
||||
}
|
||||
@@ -538,7 +530,7 @@ extern "C" {
|
||||
pub fn _Exit(arg1: c_int) -> !;
|
||||
pub fn abort() -> !;
|
||||
pub fn abs(arg1: c_int) -> c_int;
|
||||
pub fn atexit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int;
|
||||
pub fn atexit(arg1: Option<unsafe extern "C" fn()>) -> c_int;
|
||||
pub fn atoi(arg1: *const c_char) -> c_int;
|
||||
pub fn atol(arg1: *const c_char) -> c_long;
|
||||
pub fn itoa(arg1: c_int, arg2: *mut c_char, arg3: c_int) -> *mut c_char;
|
||||
@@ -549,7 +541,7 @@ extern "C" {
|
||||
arg2: *const c_void,
|
||||
arg3: size_t,
|
||||
arg4: size_t,
|
||||
arg5: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
arg5: Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
) -> *mut c_void;
|
||||
pub fn calloc(arg1: size_t, arg2: size_t) -> *mut c_void;
|
||||
pub fn div(arg1: c_int, arg2: c_int) -> div_t;
|
||||
@@ -563,7 +555,7 @@ extern "C" {
|
||||
arg1: *mut c_void,
|
||||
arg2: size_t,
|
||||
arg3: size_t,
|
||||
arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
arg4: Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
);
|
||||
pub fn rand() -> c_int;
|
||||
pub fn realloc(arg1: *mut c_void, arg2: size_t) -> *mut c_void;
|
||||
@@ -601,7 +593,7 @@ extern "C" {
|
||||
pub fn strtoll(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_longlong;
|
||||
pub fn strtoull(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulonglong;
|
||||
pub fn aligned_alloc(arg1: size_t, arg2: size_t) -> *mut c_void;
|
||||
pub fn at_quick_exit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int;
|
||||
pub fn at_quick_exit(arg1: Option<unsafe extern "C" fn()>) -> c_int;
|
||||
pub fn quick_exit(arg1: c_int);
|
||||
pub fn setenv(arg1: *const c_char, arg2: *const c_char, arg3: c_int) -> c_int;
|
||||
pub fn unsetenv(arg1: *const c_char) -> c_int;
|
||||
@@ -619,13 +611,13 @@ extern "C" {
|
||||
arg1: *mut c_void,
|
||||
arg2: size_t,
|
||||
arg3: size_t,
|
||||
arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
arg4: Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
) -> c_int;
|
||||
pub fn mergesort(
|
||||
arg1: *mut c_void,
|
||||
arg2: size_t,
|
||||
arg3: size_t,
|
||||
arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
arg4: Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
) -> c_int;
|
||||
pub fn radixsort(
|
||||
arg1: *mut *const c_uchar,
|
||||
@@ -861,36 +853,16 @@ extern "C" {
|
||||
pub fn newlocale(arg1: c_int, arg2: *const c_char, arg3: locale_t) -> locale_t;
|
||||
|
||||
// langinfo.h
|
||||
pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char;
|
||||
pub fn nl_langinfo_l(item: ::nl_item, locale: locale_t) -> *mut ::c_char;
|
||||
pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char;
|
||||
pub fn nl_langinfo_l(item: crate::nl_item, locale: locale_t) -> *mut c_char;
|
||||
|
||||
// malloc.h
|
||||
pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void;
|
||||
pub fn memalign(align: size_t, size: size_t) -> *mut c_void;
|
||||
|
||||
// sys/types.h
|
||||
pub fn lseek(arg1: c_int, arg2: __off_t, arg3: c_int) -> __off_t;
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(libc_core_cvoid)] {
|
||||
pub use ::ffi::c_void;
|
||||
} else {
|
||||
// Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
|
||||
// enable more optimization opportunities around it recognizing things
|
||||
// like malloc/free.
|
||||
#[repr(u8)]
|
||||
#[allow(missing_copy_implementations)]
|
||||
#[allow(missing_debug_implementations)]
|
||||
pub enum c_void {
|
||||
// Two dummy variants so the #[repr] attribute can be used.
|
||||
#[doc(hidden)]
|
||||
__variant1,
|
||||
#[doc(hidden)]
|
||||
__variant2,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(target_arch = "aarch64")] {
|
||||
mod aarch64;
|
||||
|
||||
33
third_party/rust/libc/src/switch.rs
vendored
33
third_party/rust/libc/src/switch.rs
vendored
@@ -1,15 +1,5 @@
|
||||
//! Switch C type definitions
|
||||
|
||||
pub type c_schar = i8;
|
||||
pub type c_uchar = u8;
|
||||
pub type c_short = i16;
|
||||
pub type c_ushort = u16;
|
||||
pub type c_int = i32;
|
||||
pub type c_uint = u32;
|
||||
pub type c_float = f32;
|
||||
pub type c_double = f64;
|
||||
pub type c_longlong = i64;
|
||||
pub type c_ulonglong = u64;
|
||||
pub type intmax_t = i64;
|
||||
pub type uintmax_t = u64;
|
||||
|
||||
@@ -20,30 +10,7 @@ pub type uintptr_t = usize;
|
||||
pub type ssize_t = isize;
|
||||
|
||||
pub type off_t = i64;
|
||||
pub type c_char = u8;
|
||||
pub type c_long = i64;
|
||||
pub type c_ulong = u64;
|
||||
pub type wchar_t = u32;
|
||||
|
||||
pub const INT_MIN: c_int = -2147483648;
|
||||
pub const INT_MAX: c_int = 2147483647;
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(libc_core_cvoid)] {
|
||||
pub use ::ffi::c_void;
|
||||
} else {
|
||||
// Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
|
||||
// enable more optimization opportunities around it recognizing things
|
||||
// like malloc/free.
|
||||
#[repr(u8)]
|
||||
#[allow(missing_copy_implementations)]
|
||||
#[allow(missing_debug_implementations)]
|
||||
pub enum c_void {
|
||||
// Two dummy variants so the #[repr] attribute can be used.
|
||||
#[doc(hidden)]
|
||||
__variant1,
|
||||
#[doc(hidden)]
|
||||
__variant2,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
46
third_party/rust/libc/src/teeos/mod.rs
vendored
46
third_party/rust/libc/src/teeos/mod.rs
vendored
@@ -5,33 +5,10 @@
|
||||
#![allow(non_camel_case_types)]
|
||||
#![allow(non_snake_case)]
|
||||
|
||||
// only supported on Rust > 1.59, so we can directly reexport c_void from core.
|
||||
pub use core::ffi::c_void;
|
||||
|
||||
use Option;
|
||||
|
||||
pub type c_schar = i8;
|
||||
|
||||
pub type c_uchar = u8;
|
||||
|
||||
pub type c_short = i16;
|
||||
|
||||
pub type c_ushort = u16;
|
||||
|
||||
pub type c_int = i32;
|
||||
|
||||
pub type c_uint = u32;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type c_bool = i32;
|
||||
|
||||
pub type c_float = f32;
|
||||
|
||||
pub type c_double = f64;
|
||||
|
||||
pub type c_longlong = i64;
|
||||
|
||||
pub type c_ulonglong = u64;
|
||||
|
||||
pub type intmax_t = i64;
|
||||
|
||||
pub type uintmax_t = u64;
|
||||
@@ -48,22 +25,12 @@ pub type ssize_t = isize;
|
||||
|
||||
pub type pid_t = c_int;
|
||||
|
||||
// aarch64 specifc
|
||||
pub type c_char = u8;
|
||||
|
||||
pub type wchar_t = u32;
|
||||
|
||||
pub type c_long = i64;
|
||||
|
||||
pub type c_ulong = u64;
|
||||
|
||||
#[repr(align(16))]
|
||||
pub struct _CLongDouble(pub u128);
|
||||
|
||||
// long double in C means A float point value, which has 128bit length.
|
||||
// but some bit maybe not used, so the really length of long double could be 80(x86) or 128(power pc/IEEE)
|
||||
// but some bit maybe not used, so the real length of long double could be 80(x86) or 128(power pc/IEEE)
|
||||
// this is different from f128(not stable and not included default) in Rust, so we use u128 for FFI(Rust to C).
|
||||
// this is unstable and will couse to memfault/data abort.
|
||||
// this is unstable and will cause to memfault/data abort.
|
||||
pub type c_longdouble = _CLongDouble;
|
||||
|
||||
pub type pthread_t = c_ulong;
|
||||
@@ -94,6 +61,9 @@ pub type wctype_t = c_ulong;
|
||||
|
||||
pub type cmpfunc = extern "C" fn(x: *const c_void, y: *const c_void) -> c_int;
|
||||
|
||||
#[repr(align(16))]
|
||||
pub struct _CLongDouble(pub u128);
|
||||
|
||||
#[repr(align(8))]
|
||||
#[repr(C)]
|
||||
pub struct pthread_cond_t {
|
||||
@@ -1109,8 +1079,8 @@ extern "C" {
|
||||
pub fn pthread_cond_timedwait(
|
||||
cond: *mut pthread_cond_t,
|
||||
lock: *mut pthread_mutex_t,
|
||||
abstime: *const ::timespec,
|
||||
) -> ::c_int;
|
||||
abstime: *const timespec,
|
||||
) -> c_int;
|
||||
|
||||
pub fn pthread_mutexattr_setrobust(attr: *mut pthread_mutexattr_t, robustness: c_int) -> c_int;
|
||||
|
||||
|
||||
72
third_party/rust/libc/src/trusty.rs
vendored
Normal file
72
third_party/rust/libc/src/trusty.rs
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
use crate::prelude::*;
|
||||
pub type size_t = usize;
|
||||
pub type ssize_t = isize;
|
||||
|
||||
pub type off_t = i64;
|
||||
|
||||
pub type c_uint8_t = u8;
|
||||
pub type c_uint16_t = u16;
|
||||
pub type c_uint32_t = u32;
|
||||
pub type c_uint64_t = u64;
|
||||
|
||||
pub type c_int8_t = i8;
|
||||
pub type c_int16_t = i16;
|
||||
pub type c_int32_t = i32;
|
||||
pub type c_int64_t = i64;
|
||||
|
||||
pub type intptr_t = isize;
|
||||
pub type uintptr_t = usize;
|
||||
|
||||
pub type time_t = c_long;
|
||||
|
||||
pub type clockid_t = c_int;
|
||||
|
||||
s! {
|
||||
pub struct iovec {
|
||||
pub iov_base: *mut c_void,
|
||||
pub iov_len: size_t,
|
||||
}
|
||||
|
||||
pub struct timespec {
|
||||
pub tv_sec: time_t,
|
||||
pub tv_nsec: c_long,
|
||||
}
|
||||
}
|
||||
|
||||
pub const PROT_READ: i32 = 1;
|
||||
pub const PROT_WRITE: i32 = 2;
|
||||
|
||||
// Trusty only supports `CLOCK_BOOTTIME`.
|
||||
pub const CLOCK_BOOTTIME: clockid_t = 7;
|
||||
|
||||
pub const STDOUT_FILENO: c_int = 1;
|
||||
pub const STDERR_FILENO: c_int = 2;
|
||||
|
||||
pub const AT_PAGESZ: c_ulong = 6;
|
||||
|
||||
pub const MAP_FAILED: *mut c_void = !0 as *mut c_void;
|
||||
|
||||
extern "C" {
|
||||
pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void;
|
||||
pub fn malloc(size: size_t) -> *mut c_void;
|
||||
pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void;
|
||||
pub fn free(p: *mut c_void);
|
||||
pub fn memalign(align: size_t, size: size_t) -> *mut c_void;
|
||||
pub fn posix_memalign(memptr: *mut *mut c_void, align: size_t, size: size_t) -> c_int;
|
||||
pub fn write(fd: c_int, buf: *const c_void, count: size_t) -> ssize_t;
|
||||
pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t;
|
||||
pub fn close(fd: c_int) -> c_int;
|
||||
pub fn strlen(cs: *const c_char) -> size_t;
|
||||
pub fn getauxval(type_: c_ulong) -> c_ulong;
|
||||
pub fn mmap(
|
||||
addr: *mut c_void,
|
||||
len: size_t,
|
||||
prot: c_int,
|
||||
flags: c_int,
|
||||
fd: c_int,
|
||||
offset: off_t,
|
||||
) -> *mut c_void;
|
||||
pub fn munmap(addr: *mut c_void, len: size_t) -> c_int;
|
||||
pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int;
|
||||
pub fn nanosleep(rqtp: *const crate::timespec, rmtp: *mut crate::timespec) -> c_int;
|
||||
}
|
||||
5288
third_party/rust/libc/src/unix/aix/mod.rs
vendored
5288
third_party/rust/libc/src/unix/aix/mod.rs
vendored
File diff suppressed because it is too large
Load Diff
614
third_party/rust/libc/src/unix/aix/powerpc64.rs
vendored
614
third_party/rust/libc/src/unix/aix/powerpc64.rs
vendored
@@ -1,5 +1,5 @@
|
||||
pub type c_long = i64;
|
||||
pub type c_ulong = u64;
|
||||
use crate::off_t;
|
||||
use crate::prelude::*;
|
||||
|
||||
s! {
|
||||
pub struct sigset_t {
|
||||
@@ -11,287 +11,290 @@ s! {
|
||||
}
|
||||
|
||||
pub struct flock {
|
||||
pub l_type: ::c_short,
|
||||
pub l_whence: ::c_short,
|
||||
pub l_sysid: ::c_uint,
|
||||
pub l_pid: ::pid_t,
|
||||
pub l_vfs: ::c_int,
|
||||
pub l_start: ::off_t,
|
||||
pub l_len: ::off_t,
|
||||
pub l_type: c_short,
|
||||
pub l_whence: c_short,
|
||||
pub l_sysid: c_uint,
|
||||
pub l_pid: crate::pid_t,
|
||||
pub l_vfs: c_int,
|
||||
pub l_start: off_t,
|
||||
pub l_len: off_t,
|
||||
}
|
||||
|
||||
pub struct statvfs {
|
||||
pub f_bsize: ::c_ulong,
|
||||
pub f_frsize: ::c_ulong,
|
||||
pub f_blocks: ::fsblkcnt_t,
|
||||
pub f_bfree: ::fsblkcnt_t,
|
||||
pub f_bavail: ::fsblkcnt_t,
|
||||
pub f_files: ::fsfilcnt_t,
|
||||
pub f_ffree: ::fsfilcnt_t,
|
||||
pub f_favail: ::fsfilcnt_t,
|
||||
pub f_fsid: ::c_ulong,
|
||||
pub f_basetype: [::c_char; 16],
|
||||
pub f_flag: ::c_ulong,
|
||||
pub f_namemax: ::c_ulong,
|
||||
pub f_fstr: [::c_char; 32],
|
||||
pub f_filler: [::c_ulong; 16]
|
||||
pub f_bsize: c_ulong,
|
||||
pub f_frsize: c_ulong,
|
||||
pub f_blocks: crate::fsblkcnt_t,
|
||||
pub f_bfree: crate::fsblkcnt_t,
|
||||
pub f_bavail: crate::fsblkcnt_t,
|
||||
pub f_files: crate::fsfilcnt_t,
|
||||
pub f_ffree: crate::fsfilcnt_t,
|
||||
pub f_favail: crate::fsfilcnt_t,
|
||||
pub f_fsid: c_ulong,
|
||||
pub f_basetype: [c_char; 16],
|
||||
pub f_flag: c_ulong,
|
||||
pub f_namemax: c_ulong,
|
||||
pub f_fstr: [c_char; 32],
|
||||
pub f_filler: [c_ulong; 16],
|
||||
}
|
||||
|
||||
pub struct pthread_rwlock_t {
|
||||
__rw_word: [::c_long; 10],
|
||||
__rw_word: [c_long; 10],
|
||||
}
|
||||
|
||||
pub struct pthread_cond_t {
|
||||
__cv_word: [::c_long; 6],
|
||||
__cv_word: [c_long; 6],
|
||||
}
|
||||
|
||||
pub struct pthread_mutex_t {
|
||||
__mt_word: [::c_long; 8],
|
||||
__mt_word: [c_long; 8],
|
||||
}
|
||||
|
||||
pub struct stat {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_flag: ::c_ushort,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
pub st_rdev: ::dev_t,
|
||||
pub st_ssize: ::c_int,
|
||||
pub st_atime: ::st_timespec,
|
||||
pub st_mtime: ::st_timespec,
|
||||
pub st_ctime: ::st_timespec,
|
||||
pub st_blksize: ::blksize_t,
|
||||
pub st_blocks: ::blkcnt_t,
|
||||
pub st_vfstype: ::c_int,
|
||||
pub st_vfs: ::c_uint,
|
||||
pub st_type: ::c_uint,
|
||||
pub st_gen: ::c_uint,
|
||||
pub st_reserved: [::c_uint; 9],
|
||||
pub st_padto_ll: ::c_uint,
|
||||
pub st_size: ::off_t,
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_flag: c_ushort,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
pub st_rdev: crate::dev_t,
|
||||
pub st_ssize: c_int,
|
||||
pub st_atime: crate::st_timespec,
|
||||
pub st_mtime: crate::st_timespec,
|
||||
pub st_ctime: crate::st_timespec,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
pub st_blocks: crate::blkcnt_t,
|
||||
pub st_vfstype: c_int,
|
||||
pub st_vfs: c_uint,
|
||||
pub st_type: c_uint,
|
||||
pub st_gen: c_uint,
|
||||
pub st_reserved: [c_uint; 9],
|
||||
pub st_padto_ll: c_uint,
|
||||
pub st_size: off_t,
|
||||
}
|
||||
|
||||
pub struct statfs {
|
||||
pub f_version: ::c_int,
|
||||
pub f_type: ::c_int,
|
||||
pub f_bsize: ::c_ulong,
|
||||
pub f_blocks: ::fsblkcnt_t,
|
||||
pub f_bfree: ::fsblkcnt_t,
|
||||
pub f_bavail: ::fsblkcnt_t,
|
||||
pub f_files: ::fsblkcnt_t,
|
||||
pub f_ffree: ::fsblkcnt_t,
|
||||
pub f_fsid: ::fsid64_t,
|
||||
pub f_vfstype: ::c_int,
|
||||
pub f_fsize: ::c_ulong,
|
||||
pub f_vfsnumber: ::c_int,
|
||||
pub f_vfsoff: ::c_int,
|
||||
pub f_vfslen: ::c_int,
|
||||
pub f_vfsvers: ::c_int,
|
||||
pub f_fname: [::c_char; 32],
|
||||
pub f_fpack: [::c_char; 32],
|
||||
pub f_name_max: ::c_int,
|
||||
pub f_version: c_int,
|
||||
pub f_type: c_int,
|
||||
pub f_bsize: c_ulong,
|
||||
pub f_blocks: crate::fsblkcnt_t,
|
||||
pub f_bfree: crate::fsblkcnt_t,
|
||||
pub f_bavail: crate::fsblkcnt_t,
|
||||
pub f_files: crate::fsblkcnt_t,
|
||||
pub f_ffree: crate::fsblkcnt_t,
|
||||
pub f_fsid: crate::fsid64_t,
|
||||
pub f_vfstype: c_int,
|
||||
pub f_fsize: c_ulong,
|
||||
pub f_vfsnumber: c_int,
|
||||
pub f_vfsoff: c_int,
|
||||
pub f_vfslen: c_int,
|
||||
pub f_vfsvers: c_int,
|
||||
pub f_fname: [c_char; 32],
|
||||
pub f_fpack: [c_char; 32],
|
||||
pub f_name_max: c_int,
|
||||
}
|
||||
|
||||
pub struct aiocb {
|
||||
pub aio_lio_opcode: ::c_int,
|
||||
pub aio_fildes: ::c_int,
|
||||
pub aio_word1: ::c_int,
|
||||
pub aio_offset: ::off_t,
|
||||
pub aio_buf: *mut ::c_void,
|
||||
pub aio_return: ::ssize_t,
|
||||
pub aio_errno: ::c_int,
|
||||
pub aio_nbytes: ::size_t,
|
||||
pub aio_reqprio: ::c_int,
|
||||
pub aio_sigevent: ::sigevent,
|
||||
pub aio_word2: ::c_int,
|
||||
pub aio_fp: ::c_int,
|
||||
pub aio_lio_opcode: c_int,
|
||||
pub aio_fildes: c_int,
|
||||
pub aio_word1: c_int,
|
||||
pub aio_offset: off_t,
|
||||
pub aio_buf: *mut c_void,
|
||||
pub aio_return: ssize_t,
|
||||
pub aio_errno: c_int,
|
||||
pub aio_nbytes: size_t,
|
||||
pub aio_reqprio: c_int,
|
||||
pub aio_sigevent: crate::sigevent,
|
||||
pub aio_word2: c_int,
|
||||
pub aio_fp: c_int,
|
||||
pub aio_handle: *mut aiocb,
|
||||
pub aio_reserved: [::c_uint; 2],
|
||||
pub aio_reserved: [c_uint; 2],
|
||||
pub aio_sigev_tid: c_long,
|
||||
}
|
||||
|
||||
pub struct ucontext_t {
|
||||
pub __sc_onstack: ::c_int,
|
||||
pub uc_sigmask: ::sigset_t,
|
||||
pub __sc_uerror: ::c_int,
|
||||
pub uc_mcontext: ::mcontext_t,
|
||||
pub __sc_onstack: c_int,
|
||||
pub uc_sigmask: crate::sigset_t,
|
||||
pub __sc_uerror: c_int,
|
||||
pub uc_mcontext: crate::mcontext_t,
|
||||
pub uc_link: *mut ucontext_t,
|
||||
pub uc_stack: ::stack_t,
|
||||
pub uc_stack: crate::stack_t,
|
||||
// Should be pointer to __extctx_t
|
||||
pub __extctx: *mut ::c_void,
|
||||
pub __extctx_magic: ::c_int,
|
||||
pub __pad: [::c_int; 1],
|
||||
pub __extctx: *mut c_void,
|
||||
pub __extctx_magic: c_int,
|
||||
pub __pad: [c_int; 1],
|
||||
}
|
||||
|
||||
pub struct mcontext_t {
|
||||
pub gpr: [::c_ulonglong; 32],
|
||||
pub msr: ::c_ulonglong,
|
||||
pub iar: ::c_ulonglong,
|
||||
pub lr: ::c_ulonglong,
|
||||
pub ctr: ::c_ulonglong,
|
||||
pub cr: ::c_uint,
|
||||
pub xer: ::c_uint,
|
||||
pub fpscr: ::c_uint,
|
||||
pub fpscrx: ::c_uint,
|
||||
pub except: [::c_ulonglong; 1],
|
||||
pub gpr: [c_ulonglong; 32],
|
||||
pub msr: c_ulonglong,
|
||||
pub iar: c_ulonglong,
|
||||
pub lr: c_ulonglong,
|
||||
pub ctr: c_ulonglong,
|
||||
pub cr: c_uint,
|
||||
pub xer: c_uint,
|
||||
pub fpscr: c_uint,
|
||||
pub fpscrx: c_uint,
|
||||
pub except: [c_ulonglong; 1],
|
||||
// Should be array of double type
|
||||
pub fpr: [::uint64_t; 32],
|
||||
pub fpeu: ::c_char,
|
||||
pub fpinfo: ::c_char,
|
||||
pub fpscr24_31: ::c_char,
|
||||
pub pad: [::c_char; 1],
|
||||
pub excp_type: ::c_int,
|
||||
pub fpr: [crate::uint64_t; 32],
|
||||
pub fpeu: c_char,
|
||||
pub fpinfo: c_char,
|
||||
pub fpscr24_31: c_char,
|
||||
pub pad: [c_char; 1],
|
||||
pub excp_type: c_int,
|
||||
}
|
||||
|
||||
pub struct utmpx {
|
||||
pub ut_user: [::c_char; 256],
|
||||
pub ut_id: [::c_char; 14],
|
||||
pub ut_line: [::c_char; 64],
|
||||
pub ut_pid: ::pid_t,
|
||||
pub ut_type: ::c_short,
|
||||
pub ut_tv: ::timeval,
|
||||
pub ut_host: [::c_char; 256],
|
||||
pub __dbl_word_pad: ::c_int,
|
||||
pub __reservedA: [::c_int; 2],
|
||||
pub __reservedV: [::c_int; 6],
|
||||
pub ut_user: [c_char; 256],
|
||||
pub ut_id: [c_char; 14],
|
||||
pub ut_line: [c_char; 64],
|
||||
pub ut_pid: crate::pid_t,
|
||||
pub ut_type: c_short,
|
||||
pub ut_tv: crate::timeval,
|
||||
pub ut_host: [c_char; 256],
|
||||
pub __dbl_word_pad: c_int,
|
||||
pub __reservedA: [c_int; 2],
|
||||
pub __reservedV: [c_int; 6],
|
||||
}
|
||||
|
||||
pub struct pthread_spinlock_t {
|
||||
pub __sp_word: [::c_long; 3],
|
||||
pub __sp_word: [c_long; 3],
|
||||
}
|
||||
|
||||
pub struct pthread_barrier_t {
|
||||
pub __br_word: [::c_long; 5],
|
||||
pub __br_word: [c_long; 5],
|
||||
}
|
||||
|
||||
pub struct msqid_ds {
|
||||
pub msg_perm: ::ipc_perm,
|
||||
pub msg_first: ::c_uint,
|
||||
pub msg_last: ::c_uint,
|
||||
pub msg_cbytes: ::c_uint,
|
||||
pub msg_qnum: ::c_uint,
|
||||
pub msg_qbytes: ::c_ulong,
|
||||
pub msg_lspid: ::pid_t,
|
||||
pub msg_lrpid: ::pid_t,
|
||||
pub msg_stime: ::time_t,
|
||||
pub msg_rtime: ::time_t,
|
||||
pub msg_ctime: ::time_t,
|
||||
pub msg_rwait: ::c_int,
|
||||
pub msg_wwait: ::c_int,
|
||||
pub msg_reqevents: ::c_ushort,
|
||||
pub msg_perm: crate::ipc_perm,
|
||||
pub msg_first: c_uint,
|
||||
pub msg_last: c_uint,
|
||||
pub msg_cbytes: c_uint,
|
||||
pub msg_qnum: c_uint,
|
||||
pub msg_qbytes: c_ulong,
|
||||
pub msg_lspid: crate::pid_t,
|
||||
pub msg_lrpid: crate::pid_t,
|
||||
pub msg_stime: crate::time_t,
|
||||
pub msg_rtime: crate::time_t,
|
||||
pub msg_ctime: crate::time_t,
|
||||
pub msg_rwait: c_int,
|
||||
pub msg_wwait: c_int,
|
||||
pub msg_reqevents: c_ushort,
|
||||
}
|
||||
}
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct siginfo_t {
|
||||
pub si_signo: ::c_int,
|
||||
pub si_errno: ::c_int,
|
||||
pub si_code: ::c_int,
|
||||
pub si_pid: ::pid_t,
|
||||
pub si_uid: ::uid_t,
|
||||
pub si_status: ::c_int,
|
||||
pub si_addr: *mut ::c_void,
|
||||
pub si_band: ::c_long,
|
||||
pub si_value: ::sigval,
|
||||
pub __si_flags: ::c_int,
|
||||
pub __pad: [::c_int; 3],
|
||||
pub si_signo: c_int,
|
||||
pub si_errno: c_int,
|
||||
pub si_code: c_int,
|
||||
pub si_pid: crate::pid_t,
|
||||
pub si_uid: crate::uid_t,
|
||||
pub si_status: c_int,
|
||||
pub si_addr: *mut c_void,
|
||||
pub si_band: c_long,
|
||||
pub si_value: crate::sigval,
|
||||
pub __si_flags: c_int,
|
||||
pub __pad: [c_int; 3],
|
||||
}
|
||||
|
||||
#[cfg(libc_union)]
|
||||
pub union _kernel_simple_lock {
|
||||
pub _slock: ::c_long,
|
||||
pub _slock: c_long,
|
||||
// Should be pointer to 'lock_data_instrumented'
|
||||
pub _slockp: *mut ::c_void,
|
||||
pub _slockp: *mut c_void,
|
||||
}
|
||||
|
||||
pub struct fileops_t {
|
||||
pub fo_rw: extern fn(file: *mut file, rw: ::uio_rw, io: *mut ::c_void, ext: ::c_long,
|
||||
secattr: *mut ::c_void) -> ::c_int,
|
||||
pub fo_ioctl: extern fn(file: *mut file, a: ::c_long, b: ::caddr_t, c: ::c_long,
|
||||
d: ::c_long) -> ::c_int,
|
||||
pub fo_select: extern fn(file: *mut file, a: ::c_int, b: *mut ::c_ushort,
|
||||
c: extern fn()) -> ::c_int,
|
||||
pub fo_close: extern fn(file: *mut file) -> ::c_int,
|
||||
pub fo_fstat: extern fn(file: *mut file, sstat: *mut ::stat) -> ::c_int,
|
||||
pub fo_rw: extern "C" fn(
|
||||
file: *mut file,
|
||||
rw: crate::uio_rw,
|
||||
io: *mut c_void,
|
||||
ext: c_long,
|
||||
secattr: *mut c_void,
|
||||
) -> c_int,
|
||||
pub fo_ioctl: extern "C" fn(
|
||||
file: *mut file,
|
||||
a: c_long,
|
||||
b: crate::caddr_t,
|
||||
c: c_long,
|
||||
d: c_long,
|
||||
) -> c_int,
|
||||
pub fo_select:
|
||||
extern "C" fn(file: *mut file, a: c_int, b: *mut c_ushort, c: extern "C" fn()) -> c_int,
|
||||
pub fo_close: extern "C" fn(file: *mut file) -> c_int,
|
||||
pub fo_fstat: extern "C" fn(file: *mut file, sstat: *mut crate::stat) -> c_int,
|
||||
}
|
||||
|
||||
pub struct file {
|
||||
pub f_flag: ::c_long,
|
||||
pub f_count: ::c_int,
|
||||
pub f_options: ::c_short,
|
||||
pub f_type: ::c_short,
|
||||
pub f_flag: c_long,
|
||||
pub f_count: c_int,
|
||||
pub f_options: c_short,
|
||||
pub f_type: c_short,
|
||||
// Should be pointer to 'vnode'
|
||||
pub f_data: *mut ::c_void,
|
||||
pub f_offset: ::c_longlong,
|
||||
pub f_dir_off: ::c_long,
|
||||
pub f_data: *mut c_void,
|
||||
pub f_offset: c_longlong,
|
||||
pub f_dir_off: c_long,
|
||||
// Should be pointer to 'cred'
|
||||
pub f_cred: *mut ::c_void,
|
||||
#[cfg(libc_union)]
|
||||
pub f_cred: *mut c_void,
|
||||
pub f_lock: _kernel_simple_lock,
|
||||
#[cfg(libc_union)]
|
||||
pub f_offset_lock: _kernel_simple_lock,
|
||||
pub f_vinfo: ::caddr_t,
|
||||
pub f_vinfo: crate::caddr_t,
|
||||
pub f_ops: *mut fileops_t,
|
||||
pub f_parentp: ::caddr_t,
|
||||
pub f_fnamep: ::caddr_t,
|
||||
pub f_fdata: [::c_char; 160],
|
||||
pub f_parentp: crate::caddr_t,
|
||||
pub f_fnamep: crate::caddr_t,
|
||||
pub f_fdata: [c_char; 160],
|
||||
}
|
||||
|
||||
#[cfg(libc_union)]
|
||||
pub union __ld_info_file {
|
||||
pub _ldinfo_fd: ::c_int,
|
||||
pub _ldinfo_fd: c_int,
|
||||
pub _ldinfo_fp: *mut file,
|
||||
pub _core_offset: ::c_long,
|
||||
pub _core_offset: c_long,
|
||||
}
|
||||
|
||||
pub struct ld_info {
|
||||
pub ldinfo_next: ::c_uint,
|
||||
pub ldinfo_flags: ::c_uint,
|
||||
#[cfg(libc_union)]
|
||||
pub ldinfo_next: c_uint,
|
||||
pub ldinfo_flags: c_uint,
|
||||
pub _file: __ld_info_file,
|
||||
pub ldinfo_textorg: *mut ::c_void,
|
||||
pub ldinfo_textsize: ::c_ulong,
|
||||
pub ldinfo_dataorg: *mut ::c_void,
|
||||
pub ldinfo_datasize: ::c_ulong,
|
||||
pub ldinfo_filename: [::c_char; 2],
|
||||
pub ldinfo_textorg: *mut c_void,
|
||||
pub ldinfo_textsize: c_ulong,
|
||||
pub ldinfo_dataorg: *mut c_void,
|
||||
pub ldinfo_datasize: c_ulong,
|
||||
pub ldinfo_filename: [c_char; 2],
|
||||
}
|
||||
|
||||
#[cfg(libc_union)]
|
||||
pub union __pollfd_ext_u {
|
||||
pub addr: *mut ::c_void,
|
||||
pub addr: *mut c_void,
|
||||
pub data32: u32,
|
||||
pub data: u64,
|
||||
}
|
||||
|
||||
pub struct pollfd_ext {
|
||||
pub fd: ::c_int,
|
||||
pub events: ::c_ushort,
|
||||
pub revents: ::c_ushort,
|
||||
#[cfg(libc_union)]
|
||||
pub fd: c_int,
|
||||
pub events: c_ushort,
|
||||
pub revents: c_ushort,
|
||||
pub data: __pollfd_ext_u,
|
||||
}
|
||||
}
|
||||
|
||||
impl siginfo_t {
|
||||
pub unsafe fn si_addr(&self) -> *mut ::c_void {
|
||||
pub unsafe fn si_addr(&self) -> *mut c_void {
|
||||
self.si_addr
|
||||
}
|
||||
|
||||
pub unsafe fn si_value(&self) -> ::sigval {
|
||||
pub unsafe fn si_value(&self) -> crate::sigval {
|
||||
self.si_value
|
||||
}
|
||||
|
||||
pub unsafe fn si_pid(&self) -> ::pid_t {
|
||||
pub unsafe fn si_pid(&self) -> crate::pid_t {
|
||||
self.si_pid
|
||||
}
|
||||
|
||||
pub unsafe fn si_uid(&self) -> ::uid_t {
|
||||
pub unsafe fn si_uid(&self) -> crate::uid_t {
|
||||
self.si_uid
|
||||
}
|
||||
|
||||
pub unsafe fn si_status(&self) -> ::c_int {
|
||||
pub unsafe fn si_status(&self) -> c_int {
|
||||
self.si_status
|
||||
}
|
||||
}
|
||||
@@ -300,10 +303,6 @@ cfg_if! {
|
||||
if #[cfg(feature = "extra_traits")] {
|
||||
impl PartialEq for siginfo_t {
|
||||
fn eq(&self, other: &siginfo_t) -> bool {
|
||||
#[cfg(libc_union)]
|
||||
let value_eq = self.si_value == other.si_value;
|
||||
#[cfg(not(libc_union))]
|
||||
let value_eq = true;
|
||||
self.si_signo == other.si_signo
|
||||
&& self.si_errno == other.si_errno
|
||||
&& self.si_code == other.si_code
|
||||
@@ -313,29 +312,28 @@ cfg_if! {
|
||||
&& self.si_addr == other.si_addr
|
||||
&& self.si_band == other.si_band
|
||||
&& self.__si_flags == other.__si_flags
|
||||
&& value_eq
|
||||
&& self.si_value == other.si_value
|
||||
}
|
||||
}
|
||||
impl Eq for siginfo_t {}
|
||||
impl ::fmt::Debug for siginfo_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
let mut struct_formatter = f.debug_struct("siginfo_t");
|
||||
struct_formatter.field("si_signo", &self.si_signo);
|
||||
struct_formatter.field("si_errno", &self.si_errno);
|
||||
struct_formatter.field("si_code", &self.si_code);
|
||||
struct_formatter.field("si_pid", &self.si_pid);
|
||||
struct_formatter.field("si_uid", &self.si_uid);
|
||||
struct_formatter.field("si_status", &self.si_status);
|
||||
struct_formatter.field("si_addr", &self.si_addr);
|
||||
struct_formatter.field("si_band", &self.si_band);
|
||||
#[cfg(libc_union)]
|
||||
struct_formatter.field("si_value", &self.si_value);
|
||||
struct_formatter.field("__si_flags", &self.__si_flags);
|
||||
struct_formatter.finish()
|
||||
impl fmt::Debug for siginfo_t {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_struct("siginfo_t")
|
||||
.field("si_signo", &self.si_signo)
|
||||
.field("si_errno", &self.si_errno)
|
||||
.field("si_code", &self.si_code)
|
||||
.field("si_pid", &self.si_pid)
|
||||
.field("si_uid", &self.si_uid)
|
||||
.field("si_status", &self.si_status)
|
||||
.field("si_addr", &self.si_addr)
|
||||
.field("si_band", &self.si_band)
|
||||
.field("si_value", &self.si_value)
|
||||
.field("__si_flags", &self.__si_flags)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for siginfo_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for siginfo_t {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.si_signo.hash(state);
|
||||
self.si_errno.hash(state);
|
||||
self.si_code.hash(state);
|
||||
@@ -344,35 +342,19 @@ cfg_if! {
|
||||
self.si_status.hash(state);
|
||||
self.si_addr.hash(state);
|
||||
self.si_band.hash(state);
|
||||
#[cfg(libc_union)]
|
||||
self.si_value.hash(state);
|
||||
self.__si_flags.hash(state);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(libc_union)]
|
||||
impl PartialEq for _kernel_simple_lock {
|
||||
fn eq(&self, other: &_kernel_simple_lock) -> bool {
|
||||
unsafe {
|
||||
self._slock == other._slock
|
||||
&& self._slockp == other._slockp
|
||||
unsafe { self._slock == other._slock && self._slockp == other._slockp }
|
||||
}
|
||||
}
|
||||
}
|
||||
#[cfg(libc_union)]
|
||||
impl Eq for _kernel_simple_lock {}
|
||||
#[cfg(libc_union)]
|
||||
impl ::fmt::Debug for _kernel_simple_lock {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
f.debug_struct("_kernel_simple_lock")
|
||||
.field("_slock", unsafe { &self._slock })
|
||||
.field("_slockp", unsafe { &self._slockp })
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
#[cfg(libc_union)]
|
||||
impl ::hash::Hash for _kernel_simple_lock {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for _kernel_simple_lock {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
unsafe {
|
||||
self._slock.hash(state);
|
||||
self._slockp.hash(state);
|
||||
@@ -390,19 +372,19 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
impl Eq for fileops_t {}
|
||||
impl ::fmt::Debug for fileops_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
let mut struct_formatter = f.debug_struct("fileops_t");
|
||||
struct_formatter.field("fo_rw", &self.fo_rw);
|
||||
struct_formatter.field("fo_ioctl", &self.fo_ioctl);
|
||||
struct_formatter.field("fo_select", &self.fo_select);
|
||||
struct_formatter.field("fo_close", &self.fo_close);
|
||||
struct_formatter.field("fo_fstat", &self.fo_fstat);
|
||||
struct_formatter.finish()
|
||||
impl fmt::Debug for fileops_t {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_struct("fileops_t")
|
||||
.field("fo_rw", &self.fo_rw)
|
||||
.field("fo_ioctl", &self.fo_ioctl)
|
||||
.field("fo_select", &self.fo_select)
|
||||
.field("fo_close", &self.fo_close)
|
||||
.field("fo_fstat", &self.fo_fstat)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for fileops_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for fileops_t {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.fo_rw.hash(state);
|
||||
self.fo_ioctl.hash(state);
|
||||
self.fo_select.hash(state);
|
||||
@@ -413,11 +395,6 @@ cfg_if! {
|
||||
|
||||
impl PartialEq for file {
|
||||
fn eq(&self, other: &file) -> bool {
|
||||
#[cfg(libc_union)]
|
||||
let lock_eq = self.f_lock == other.f_lock
|
||||
&& self.f_offset_lock == other.f_offset_lock;
|
||||
#[cfg(not(libc_union))]
|
||||
let lock_eq = true;
|
||||
self.f_flag == other.f_flag
|
||||
&& self.f_count == other.f_count
|
||||
&& self.f_options == other.f_options
|
||||
@@ -431,35 +408,34 @@ cfg_if! {
|
||||
&& self.f_parentp == other.f_parentp
|
||||
&& self.f_fnamep == other.f_fnamep
|
||||
&& self.f_fdata == other.f_fdata
|
||||
&& lock_eq
|
||||
&& self.f_lock == other.f_lock
|
||||
&& self.f_offset_lock == other.f_offset_lock
|
||||
}
|
||||
}
|
||||
impl Eq for file {}
|
||||
impl ::fmt::Debug for file {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
let mut struct_formatter = f.debug_struct("file");
|
||||
struct_formatter.field("f_flag", &self.f_flag);
|
||||
struct_formatter.field("f_count", &self.f_count);
|
||||
struct_formatter.field("f_options", &self.f_options);
|
||||
struct_formatter.field("f_type", &self.f_type);
|
||||
struct_formatter.field("f_data", &self.f_data);
|
||||
struct_formatter.field("f_offset", &self.f_offset);
|
||||
struct_formatter.field("f_dir_off", &self.f_dir_off);
|
||||
struct_formatter.field("f_cred", &self.f_cred);
|
||||
#[cfg(libc_union)]
|
||||
struct_formatter.field("f_lock", &self.f_lock);
|
||||
#[cfg(libc_union)]
|
||||
struct_formatter.field("f_offset_lock", &self.f_offset_lock);
|
||||
struct_formatter.field("f_vinfo", &self.f_vinfo);
|
||||
struct_formatter.field("f_ops", &self.f_ops);
|
||||
struct_formatter.field("f_parentp", &self.f_parentp);
|
||||
struct_formatter.field("f_fnamep", &self.f_fnamep);
|
||||
struct_formatter.field("f_fdata", &self.f_fdata);
|
||||
struct_formatter.finish()
|
||||
impl fmt::Debug for file {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_struct("file")
|
||||
.field("f_flag", &self.f_flag)
|
||||
.field("f_count", &self.f_count)
|
||||
.field("f_options", &self.f_options)
|
||||
.field("f_type", &self.f_type)
|
||||
.field("f_data", &self.f_data)
|
||||
.field("f_offset", &self.f_offset)
|
||||
.field("f_dir_off", &self.f_dir_off)
|
||||
.field("f_cred", &self.f_cred)
|
||||
.field("f_lock", &self.f_lock)
|
||||
.field("f_offset_lock", &self.f_offset_lock)
|
||||
.field("f_vinfo", &self.f_vinfo)
|
||||
.field("f_ops", &self.f_ops)
|
||||
.field("f_parentp", &self.f_parentp)
|
||||
.field("f_fnamep", &self.f_fnamep)
|
||||
.field("f_fdata", &self.f_fdata)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for file {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for file {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.f_flag.hash(state);
|
||||
self.f_count.hash(state);
|
||||
self.f_options.hash(state);
|
||||
@@ -468,9 +444,7 @@ cfg_if! {
|
||||
self.f_offset.hash(state);
|
||||
self.f_dir_off.hash(state);
|
||||
self.f_cred.hash(state);
|
||||
#[cfg(libc_union)]
|
||||
self.f_lock.hash(state);
|
||||
#[cfg(libc_union)]
|
||||
self.f_offset_lock.hash(state);
|
||||
self.f_vinfo.hash(state);
|
||||
self.f_ops.hash(state);
|
||||
@@ -480,7 +454,6 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(libc_union)]
|
||||
impl PartialEq for __ld_info_file {
|
||||
fn eq(&self, other: &__ld_info_file) -> bool {
|
||||
unsafe {
|
||||
@@ -490,21 +463,9 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
}
|
||||
#[cfg(libc_union)]
|
||||
impl Eq for __ld_info_file {}
|
||||
#[cfg(libc_union)]
|
||||
impl ::fmt::Debug for __ld_info_file {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
f.debug_struct("__ld_info_file")
|
||||
.field("_ldinfo_fd", unsafe { &self._ldinfo_fd })
|
||||
.field("_ldinfo_fp", unsafe { &self._ldinfo_fp })
|
||||
.field("_core_offset", unsafe { &self._core_offset })
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
#[cfg(libc_union)]
|
||||
impl ::hash::Hash for __ld_info_file {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for __ld_info_file {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
unsafe {
|
||||
self._ldinfo_fd.hash(state);
|
||||
self._ldinfo_fp.hash(state);
|
||||
@@ -515,10 +476,6 @@ cfg_if! {
|
||||
|
||||
impl PartialEq for ld_info {
|
||||
fn eq(&self, other: &ld_info) -> bool {
|
||||
#[cfg(libc_union)]
|
||||
let file_eq = self._file == other._file;
|
||||
#[cfg(not(libc_union))]
|
||||
let file_eq = true;
|
||||
self.ldinfo_next == other.ldinfo_next
|
||||
&& self.ldinfo_flags == other.ldinfo_flags
|
||||
&& self.ldinfo_textorg == other.ldinfo_textorg
|
||||
@@ -526,27 +483,26 @@ cfg_if! {
|
||||
&& self.ldinfo_dataorg == other.ldinfo_dataorg
|
||||
&& self.ldinfo_datasize == other.ldinfo_datasize
|
||||
&& self.ldinfo_filename == other.ldinfo_filename
|
||||
&& file_eq
|
||||
&& self._file == other._file
|
||||
}
|
||||
}
|
||||
impl Eq for ld_info {}
|
||||
impl ::fmt::Debug for ld_info {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
let mut struct_formatter = f.debug_struct("ld_info");
|
||||
struct_formatter.field("ldinfo_next", &self.ldinfo_next);
|
||||
struct_formatter.field("ldinfo_flags", &self.ldinfo_flags);
|
||||
struct_formatter.field("ldinfo_textorg", &self.ldinfo_textorg);
|
||||
struct_formatter.field("ldinfo_textsize", &self.ldinfo_textsize);
|
||||
struct_formatter.field("ldinfo_dataorg", &self.ldinfo_dataorg);
|
||||
struct_formatter.field("ldinfo_datasize", &self.ldinfo_datasize);
|
||||
struct_formatter.field("ldinfo_filename", &self.ldinfo_filename);
|
||||
#[cfg(libc_union)]
|
||||
struct_formatter.field("_file", &self._file);
|
||||
struct_formatter.finish()
|
||||
impl fmt::Debug for ld_info {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_struct("ld_info")
|
||||
.field("ldinfo_next", &self.ldinfo_next)
|
||||
.field("ldinfo_flags", &self.ldinfo_flags)
|
||||
.field("ldinfo_textorg", &self.ldinfo_textorg)
|
||||
.field("ldinfo_textsize", &self.ldinfo_textsize)
|
||||
.field("ldinfo_dataorg", &self.ldinfo_dataorg)
|
||||
.field("ldinfo_datasize", &self.ldinfo_datasize)
|
||||
.field("ldinfo_filename", &self.ldinfo_filename)
|
||||
.field("_file", &self._file)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for ld_info {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for ld_info {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.ldinfo_next.hash(state);
|
||||
self.ldinfo_flags.hash(state);
|
||||
self.ldinfo_textorg.hash(state);
|
||||
@@ -554,12 +510,10 @@ cfg_if! {
|
||||
self.ldinfo_dataorg.hash(state);
|
||||
self.ldinfo_datasize.hash(state);
|
||||
self.ldinfo_filename.hash(state);
|
||||
#[cfg(libc_union)]
|
||||
self._file.hash(state);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(libc_union)]
|
||||
impl PartialEq for __pollfd_ext_u {
|
||||
fn eq(&self, other: &__pollfd_ext_u) -> bool {
|
||||
unsafe {
|
||||
@@ -569,21 +523,9 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
}
|
||||
#[cfg(libc_union)]
|
||||
impl Eq for __pollfd_ext_u {}
|
||||
#[cfg(libc_union)]
|
||||
impl ::fmt::Debug for __pollfd_ext_u {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
f.debug_struct("__pollfd_ext_u")
|
||||
.field("addr", unsafe { &self.addr })
|
||||
.field("data32", unsafe { &self.data32 })
|
||||
.field("data", unsafe { &self.data })
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
#[cfg(libc_union)]
|
||||
impl ::hash::Hash for __pollfd_ext_u {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for __pollfd_ext_u {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
unsafe {
|
||||
self.addr.hash(state);
|
||||
self.data.hash(state);
|
||||
@@ -594,34 +536,28 @@ cfg_if! {
|
||||
|
||||
impl PartialEq for pollfd_ext {
|
||||
fn eq(&self, other: &pollfd_ext) -> bool {
|
||||
#[cfg(libc_union)]
|
||||
let data_eq = self.data == other.data;
|
||||
#[cfg(not(libc_union))]
|
||||
let data_eq = true;
|
||||
self.fd == other.fd
|
||||
&& self.events == other.events
|
||||
&& self.revents == other.revents
|
||||
&& data_eq
|
||||
&& self.data == other.data
|
||||
}
|
||||
}
|
||||
impl Eq for pollfd_ext {}
|
||||
impl ::fmt::Debug for pollfd_ext {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
let mut struct_formatter = f.debug_struct("pollfd_ext");
|
||||
struct_formatter.field("fd", &self.fd);
|
||||
struct_formatter.field("events", &self.events);
|
||||
struct_formatter.field("revents", &self.revents);
|
||||
#[cfg(libc_union)]
|
||||
struct_formatter.field("data", &self.data);
|
||||
struct_formatter.finish()
|
||||
impl fmt::Debug for pollfd_ext {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_struct("pollfd_ext")
|
||||
.field("fd", &self.fd)
|
||||
.field("events", &self.events)
|
||||
.field("revents", &self.revents)
|
||||
.field("data", &self.data)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for pollfd_ext {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for pollfd_ext {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.fd.hash(state);
|
||||
self.events.hash(state);
|
||||
self.revents.hash(state);
|
||||
#[cfg(libc_union)]
|
||||
self.data.hash(state);
|
||||
}
|
||||
}
|
||||
@@ -637,8 +573,8 @@ pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t {
|
||||
pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
|
||||
__rw_word: [2, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
};
|
||||
pub const RLIM_INFINITY: ::c_ulong = 0x7fffffffffffffff;
|
||||
pub const RLIM_INFINITY: c_ulong = 0x7fffffffffffffff;
|
||||
|
||||
extern "C" {
|
||||
pub fn getsystemcfg(label: ::c_int) -> ::c_ulong;
|
||||
pub fn getsystemcfg(label: c_int) -> c_ulong;
|
||||
}
|
||||
|
||||
14
third_party/rust/libc/src/unix/align.rs
vendored
14
third_party/rust/libc/src/unix/align.rs
vendored
@@ -1,14 +0,0 @@
|
||||
s! {
|
||||
#[repr(align(4))]
|
||||
pub struct in6_addr {
|
||||
pub s6_addr: [u8; 16],
|
||||
}
|
||||
}
|
||||
|
||||
pub const IN6ADDR_LOOPBACK_INIT: in6_addr = in6_addr {
|
||||
s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
|
||||
};
|
||||
|
||||
pub const IN6ADDR_ANY_INIT: in6_addr = in6_addr {
|
||||
s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
};
|
||||
@@ -1,7 +0,0 @@
|
||||
s_no_extra_traits! {
|
||||
#[allow(missing_debug_implementations)]
|
||||
#[repr(align(16))]
|
||||
pub struct max_align_t {
|
||||
priv_: [f64; 2]
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,19 @@
|
||||
//! 32-bit specific Apple (ios/darwin) definitions
|
||||
|
||||
pub type c_long = i32;
|
||||
pub type c_ulong = u32;
|
||||
pub type boolean_t = ::c_int;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type boolean_t = c_int;
|
||||
|
||||
s! {
|
||||
pub struct if_data {
|
||||
pub ifi_type: ::c_uchar,
|
||||
pub ifi_typelen: ::c_uchar,
|
||||
pub ifi_physical: ::c_uchar,
|
||||
pub ifi_addrlen: ::c_uchar,
|
||||
pub ifi_hdrlen: ::c_uchar,
|
||||
pub ifi_recvquota: ::c_uchar,
|
||||
pub ifi_xmitquota: ::c_uchar,
|
||||
pub ifi_unused1: ::c_uchar,
|
||||
pub ifi_type: c_uchar,
|
||||
pub ifi_typelen: c_uchar,
|
||||
pub ifi_physical: c_uchar,
|
||||
pub ifi_addrlen: c_uchar,
|
||||
pub ifi_hdrlen: c_uchar,
|
||||
pub ifi_recvquota: c_uchar,
|
||||
pub ifi_xmitquota: c_uchar,
|
||||
pub ifi_unused1: c_uchar,
|
||||
pub ifi_mtu: u32,
|
||||
pub ifi_metric: u32,
|
||||
pub ifi_baudrate: u32,
|
||||
@@ -30,7 +30,7 @@ s! {
|
||||
pub ifi_noproto: u32,
|
||||
pub ifi_recvtiming: u32,
|
||||
pub ifi_xmittiming: u32,
|
||||
pub ifi_lastchange: ::timeval,
|
||||
pub ifi_lastchange: crate::timeval,
|
||||
pub ifi_unused2: u32,
|
||||
pub ifi_hwassist: u32,
|
||||
pub ifi_reserved1: u32,
|
||||
@@ -38,26 +38,32 @@ s! {
|
||||
}
|
||||
|
||||
pub struct bpf_hdr {
|
||||
pub bh_tstamp: ::timeval,
|
||||
pub bh_tstamp: crate::timeval,
|
||||
pub bh_caplen: u32,
|
||||
pub bh_datalen: u32,
|
||||
pub bh_hdrlen: ::c_ushort,
|
||||
pub bh_hdrlen: c_ushort,
|
||||
}
|
||||
|
||||
pub struct malloc_zone_t {
|
||||
__private: [::uintptr_t; 18], // FIXME: keeping private for now
|
||||
__private: [crate::uintptr_t; 18], // FIXME(macos): keeping private for now
|
||||
}
|
||||
}
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct pthread_attr_t {
|
||||
__sig: c_long,
|
||||
__opaque: [::c_char; 36]
|
||||
__opaque: [c_char; 36],
|
||||
}
|
||||
|
||||
pub struct pthread_once_t {
|
||||
__sig: c_long,
|
||||
__opaque: [::c_char; ::__PTHREAD_ONCE_SIZE__],
|
||||
__opaque: [c_char; crate::__PTHREAD_ONCE_SIZE__],
|
||||
}
|
||||
|
||||
#[allow(missing_debug_implementations)]
|
||||
#[repr(align(16))]
|
||||
pub struct max_align_t {
|
||||
priv_: [f64; 2],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,23 +72,24 @@ cfg_if! {
|
||||
impl PartialEq for pthread_attr_t {
|
||||
fn eq(&self, other: &pthread_attr_t) -> bool {
|
||||
self.__sig == other.__sig
|
||||
&& self.__opaque
|
||||
&& self
|
||||
.__opaque
|
||||
.iter()
|
||||
.zip(other.__opaque.iter())
|
||||
.all(|(a, b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for pthread_attr_t {}
|
||||
impl ::fmt::Debug for pthread_attr_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for pthread_attr_t {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("pthread_attr_t")
|
||||
.field("__sig", &self.__sig)
|
||||
// FIXME: .field("__opaque", &self.__opaque)
|
||||
// FIXME(debug): .field("__opaque", &self.__opaque)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for pthread_attr_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for pthread_attr_t {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.__sig.hash(state);
|
||||
self.__opaque.hash(state);
|
||||
}
|
||||
@@ -90,22 +97,23 @@ cfg_if! {
|
||||
impl PartialEq for pthread_once_t {
|
||||
fn eq(&self, other: &pthread_once_t) -> bool {
|
||||
self.__sig == other.__sig
|
||||
&& self.__opaque
|
||||
&& self
|
||||
.__opaque
|
||||
.iter()
|
||||
.zip(other.__opaque.iter())
|
||||
.all(|(a, b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for pthread_once_t {}
|
||||
impl ::fmt::Debug for pthread_once_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for pthread_once_t {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("pthread_once_t")
|
||||
.field("__sig", &self.__sig)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for pthread_once_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for pthread_once_t {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.__sig.hash(state);
|
||||
self.__opaque.hash(state);
|
||||
}
|
||||
@@ -115,7 +123,7 @@ cfg_if! {
|
||||
|
||||
#[doc(hidden)]
|
||||
#[deprecated(since = "0.2.55")]
|
||||
pub const NET_RT_MAXID: ::c_int = 10;
|
||||
pub const NET_RT_MAXID: c_int = 10;
|
||||
|
||||
pub const __PTHREAD_MUTEX_SIZE__: usize = 40;
|
||||
pub const __PTHREAD_COND_SIZE__: usize = 24;
|
||||
@@ -124,31 +132,20 @@ pub const __PTHREAD_ONCE_SIZE__: usize = 4;
|
||||
pub const __PTHREAD_RWLOCK_SIZE__: usize = 124;
|
||||
pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 12;
|
||||
|
||||
pub const TIOCTIMESTAMP: ::c_ulong = 0x40087459;
|
||||
pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40087458;
|
||||
pub const TIOCTIMESTAMP: c_ulong = 0x40087459;
|
||||
pub const TIOCDCDTIMESTAMP: c_ulong = 0x40087458;
|
||||
|
||||
pub const BIOCSETF: ::c_ulong = 0x80084267;
|
||||
pub const BIOCSRTIMEOUT: ::c_ulong = 0x8008426d;
|
||||
pub const BIOCGRTIMEOUT: ::c_ulong = 0x4008426e;
|
||||
pub const BIOCSETFNR: ::c_ulong = 0x8008427e;
|
||||
pub const BIOCSETF: c_ulong = 0x80084267;
|
||||
pub const BIOCSRTIMEOUT: c_ulong = 0x8008426d;
|
||||
pub const BIOCGRTIMEOUT: c_ulong = 0x4008426e;
|
||||
pub const BIOCSETFNR: c_ulong = 0x8008427e;
|
||||
|
||||
const _PTHREAD_ONCE_SIG_INIT: c_long = 0x30B1BCBA;
|
||||
pub const PTHREAD_ONCE_INIT: ::pthread_once_t = ::pthread_once_t {
|
||||
pub const PTHREAD_ONCE_INIT: crate::pthread_once_t = crate::pthread_once_t {
|
||||
__sig: _PTHREAD_ONCE_SIG_INIT,
|
||||
__opaque: [0; 4],
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
pub fn exchangedata(
|
||||
path1: *const ::c_char,
|
||||
path2: *const ::c_char,
|
||||
options: ::c_ulong,
|
||||
) -> ::c_int;
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(libc_align)] {
|
||||
mod align;
|
||||
pub use self::align::*;
|
||||
}
|
||||
pub fn exchangedata(path1: *const c_char, path2: *const c_char, options: c_ulong) -> c_int;
|
||||
}
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
pub type mcontext_t = *mut __darwin_mcontext64;
|
||||
|
||||
s_no_extra_traits! {
|
||||
#[allow(missing_debug_implementations)]
|
||||
pub struct max_align_t {
|
||||
priv_: f64
|
||||
}
|
||||
}
|
||||
|
||||
s! {
|
||||
pub struct ucontext_t {
|
||||
pub uc_onstack: ::c_int,
|
||||
pub uc_sigmask: ::sigset_t,
|
||||
pub uc_stack: ::stack_t,
|
||||
pub uc_link: *mut ::ucontext_t,
|
||||
pub uc_mcsize: usize,
|
||||
pub uc_mcontext: mcontext_t,
|
||||
}
|
||||
|
||||
pub struct __darwin_mcontext64 {
|
||||
pub __es: __darwin_arm_exception_state64,
|
||||
pub __ss: __darwin_arm_thread_state64,
|
||||
pub __ns: __darwin_arm_neon_state64,
|
||||
}
|
||||
|
||||
pub struct __darwin_arm_exception_state64 {
|
||||
pub __far: u64,
|
||||
pub __esr: u32,
|
||||
pub __exception: u32,
|
||||
}
|
||||
|
||||
pub struct __darwin_arm_thread_state64 {
|
||||
pub __x: [u64; 29],
|
||||
pub __fp: u64,
|
||||
pub __lr: u64,
|
||||
pub __sp: u64,
|
||||
pub __pc: u64,
|
||||
pub __cpsr: u32,
|
||||
pub __pad: u32,
|
||||
}
|
||||
|
||||
// This type natively uses a uint128, but for a while we hacked
|
||||
// it in with repr(align) and `[u64; 2]`. uint128 isn't available
|
||||
// all the way back to our earliest supported versions so we
|
||||
// preserver the old shim.
|
||||
#[cfg_attr(not(libc_int128), repr(align(16)))]
|
||||
pub struct __darwin_arm_neon_state64 {
|
||||
#[cfg(libc_int128)]
|
||||
pub __v: [::__uint128_t; 32],
|
||||
#[cfg(not(libc_int128))]
|
||||
pub __v: [[u64; 2]; 32],
|
||||
pub __fpsr: u32,
|
||||
pub __fpcr: u32,
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,54 @@
|
||||
pub type boolean_t = ::c_int;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type boolean_t = c_int;
|
||||
pub type mcontext_t = *mut __darwin_mcontext64;
|
||||
|
||||
s! {
|
||||
pub struct malloc_zone_t {
|
||||
__private: [::uintptr_t; 18], // FIXME: needs arm64 auth pointers support
|
||||
__private: [crate::uintptr_t; 18], // FIXME(macos): needs arm64 auth pointers support
|
||||
}
|
||||
|
||||
pub struct ucontext_t {
|
||||
pub uc_onstack: c_int,
|
||||
pub uc_sigmask: crate::sigset_t,
|
||||
pub uc_stack: crate::stack_t,
|
||||
pub uc_link: *mut crate::ucontext_t,
|
||||
pub uc_mcsize: usize,
|
||||
pub uc_mcontext: mcontext_t,
|
||||
}
|
||||
|
||||
pub struct __darwin_mcontext64 {
|
||||
pub __es: __darwin_arm_exception_state64,
|
||||
pub __ss: __darwin_arm_thread_state64,
|
||||
pub __ns: __darwin_arm_neon_state64,
|
||||
}
|
||||
|
||||
pub struct __darwin_arm_exception_state64 {
|
||||
pub __far: u64,
|
||||
pub __esr: u32,
|
||||
pub __exception: u32,
|
||||
}
|
||||
|
||||
pub struct __darwin_arm_thread_state64 {
|
||||
pub __x: [u64; 29],
|
||||
pub __fp: u64,
|
||||
pub __lr: u64,
|
||||
pub __sp: u64,
|
||||
pub __pc: u64,
|
||||
pub __cpsr: u32,
|
||||
pub __pad: u32,
|
||||
}
|
||||
|
||||
pub struct __darwin_arm_neon_state64 {
|
||||
pub __v: [crate::__uint128_t; 32],
|
||||
pub __fpsr: u32,
|
||||
pub __fpcr: u32,
|
||||
}
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(libc_align)] {
|
||||
mod align;
|
||||
pub use self::align::*;
|
||||
s_no_extra_traits! {
|
||||
#[allow(missing_debug_implementations)]
|
||||
pub struct max_align_t {
|
||||
priv_: f64,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
s_no_extra_traits! {
|
||||
#[allow(missing_debug_implementations)]
|
||||
#[repr(align(16))]
|
||||
pub struct max_align_t {
|
||||
priv_: [f64; 2]
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
//! 64-bit specific Apple (ios/darwin) definitions
|
||||
|
||||
pub type c_long = i64;
|
||||
pub type c_ulong = u64;
|
||||
use crate::prelude::*;
|
||||
|
||||
s! {
|
||||
pub struct timeval32 {
|
||||
@@ -10,14 +9,14 @@ s! {
|
||||
}
|
||||
|
||||
pub struct if_data {
|
||||
pub ifi_type: ::c_uchar,
|
||||
pub ifi_typelen: ::c_uchar,
|
||||
pub ifi_physical: ::c_uchar,
|
||||
pub ifi_addrlen: ::c_uchar,
|
||||
pub ifi_hdrlen: ::c_uchar,
|
||||
pub ifi_recvquota: ::c_uchar,
|
||||
pub ifi_xmitquota: ::c_uchar,
|
||||
pub ifi_unused1: ::c_uchar,
|
||||
pub ifi_type: c_uchar,
|
||||
pub ifi_typelen: c_uchar,
|
||||
pub ifi_physical: c_uchar,
|
||||
pub ifi_addrlen: c_uchar,
|
||||
pub ifi_hdrlen: c_uchar,
|
||||
pub ifi_recvquota: c_uchar,
|
||||
pub ifi_xmitquota: c_uchar,
|
||||
pub ifi_unused1: c_uchar,
|
||||
pub ifi_mtu: u32,
|
||||
pub ifi_metric: u32,
|
||||
pub ifi_baudrate: u32,
|
||||
@@ -42,22 +41,22 @@ s! {
|
||||
}
|
||||
|
||||
pub struct bpf_hdr {
|
||||
pub bh_tstamp: ::timeval32,
|
||||
pub bh_tstamp: crate::timeval32,
|
||||
pub bh_caplen: u32,
|
||||
pub bh_datalen: u32,
|
||||
pub bh_hdrlen: ::c_ushort,
|
||||
pub bh_hdrlen: c_ushort,
|
||||
}
|
||||
}
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct pthread_attr_t {
|
||||
__sig: c_long,
|
||||
__opaque: [::c_char; 56]
|
||||
__opaque: [c_char; 56],
|
||||
}
|
||||
|
||||
pub struct pthread_once_t {
|
||||
__sig: c_long,
|
||||
__opaque: [::c_char; __PTHREAD_ONCE_SIZE__],
|
||||
__opaque: [c_char; __PTHREAD_ONCE_SIZE__],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,23 +65,24 @@ cfg_if! {
|
||||
impl PartialEq for pthread_attr_t {
|
||||
fn eq(&self, other: &pthread_attr_t) -> bool {
|
||||
self.__sig == other.__sig
|
||||
&& self.__opaque
|
||||
&& self
|
||||
.__opaque
|
||||
.iter()
|
||||
.zip(other.__opaque.iter())
|
||||
.all(|(a, b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for pthread_attr_t {}
|
||||
impl ::fmt::Debug for pthread_attr_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for pthread_attr_t {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("pthread_attr_t")
|
||||
.field("__sig", &self.__sig)
|
||||
// FIXME: .field("__opaque", &self.__opaque)
|
||||
// FIXME(debug): .field("__opaque", &self.__opaque)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for pthread_attr_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for pthread_attr_t {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.__sig.hash(state);
|
||||
self.__opaque.hash(state);
|
||||
}
|
||||
@@ -90,22 +90,23 @@ cfg_if! {
|
||||
impl PartialEq for pthread_once_t {
|
||||
fn eq(&self, other: &pthread_once_t) -> bool {
|
||||
self.__sig == other.__sig
|
||||
&& self.__opaque
|
||||
&& self
|
||||
.__opaque
|
||||
.iter()
|
||||
.zip(other.__opaque.iter())
|
||||
.all(|(a, b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for pthread_once_t {}
|
||||
impl ::fmt::Debug for pthread_once_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for pthread_once_t {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("pthread_once_t")
|
||||
.field("__sig", &self.__sig)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for pthread_once_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for pthread_once_t {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.__sig.hash(state);
|
||||
self.__opaque.hash(state);
|
||||
}
|
||||
@@ -115,7 +116,7 @@ cfg_if! {
|
||||
|
||||
#[doc(hidden)]
|
||||
#[deprecated(since = "0.2.55")]
|
||||
pub const NET_RT_MAXID: ::c_int = 11;
|
||||
pub const NET_RT_MAXID: c_int = 11;
|
||||
|
||||
pub const __PTHREAD_MUTEX_SIZE__: usize = 56;
|
||||
pub const __PTHREAD_COND_SIZE__: usize = 40;
|
||||
@@ -124,26 +125,22 @@ pub const __PTHREAD_ONCE_SIZE__: usize = 8;
|
||||
pub const __PTHREAD_RWLOCK_SIZE__: usize = 192;
|
||||
pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 16;
|
||||
|
||||
pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459;
|
||||
pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40107458;
|
||||
pub const TIOCTIMESTAMP: c_ulong = 0x40107459;
|
||||
pub const TIOCDCDTIMESTAMP: c_ulong = 0x40107458;
|
||||
|
||||
pub const BIOCSETF: ::c_ulong = 0x80104267;
|
||||
pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d;
|
||||
pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e;
|
||||
pub const BIOCSETFNR: ::c_ulong = 0x8010427e;
|
||||
pub const BIOCSETF: c_ulong = 0x80104267;
|
||||
pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d;
|
||||
pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e;
|
||||
pub const BIOCSETFNR: c_ulong = 0x8010427e;
|
||||
|
||||
const _PTHREAD_ONCE_SIG_INIT: c_long = 0x30B1BCBA;
|
||||
pub const PTHREAD_ONCE_INIT: ::pthread_once_t = ::pthread_once_t {
|
||||
pub const PTHREAD_ONCE_INIT: crate::pthread_once_t = crate::pthread_once_t {
|
||||
__sig: _PTHREAD_ONCE_SIG_INIT,
|
||||
__opaque: [0; 8],
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
pub fn exchangedata(
|
||||
path1: *const ::c_char,
|
||||
path2: *const ::c_char,
|
||||
options: ::c_uint,
|
||||
) -> ::c_int;
|
||||
pub fn exchangedata(path1: *const c_char, path2: *const c_char, options: c_uint) -> c_int;
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
s_no_extra_traits! {
|
||||
#[allow(missing_debug_implementations)]
|
||||
#[repr(align(16))]
|
||||
pub struct max_align_t {
|
||||
priv_: [f64; 2]
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,14 @@
|
||||
pub type boolean_t = ::c_uint;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type boolean_t = c_uint;
|
||||
pub type mcontext_t = *mut __darwin_mcontext64;
|
||||
|
||||
s! {
|
||||
pub struct ucontext_t {
|
||||
pub uc_onstack: ::c_int,
|
||||
pub uc_sigmask: ::sigset_t,
|
||||
pub uc_stack: ::stack_t,
|
||||
pub uc_link: *mut ::ucontext_t,
|
||||
pub uc_onstack: c_int,
|
||||
pub uc_sigmask: crate::sigset_t,
|
||||
pub uc_stack: crate::stack_t,
|
||||
pub uc_link: *mut crate::ucontext_t,
|
||||
pub uc_mcsize: usize,
|
||||
pub uc_mcontext: mcontext_t,
|
||||
}
|
||||
@@ -49,9 +51,9 @@ s! {
|
||||
}
|
||||
|
||||
pub struct __darwin_x86_float_state64 {
|
||||
pub __fpu_reserved: [::c_int; 2],
|
||||
__fpu_fcw: ::c_short,
|
||||
__fpu_fsw: ::c_short,
|
||||
pub __fpu_reserved: [c_int; 2],
|
||||
__fpu_fcw: c_short,
|
||||
__fpu_fsw: c_short,
|
||||
pub __fpu_ftw: u8,
|
||||
pub __fpu_rsrv1: u8,
|
||||
pub __fpu_fop: u16,
|
||||
@@ -91,90 +93,86 @@ s! {
|
||||
// allows us to auto-implement traits for it since the length of the
|
||||
// array is less than 32
|
||||
__fpu_rsrv4: [u32; 24],
|
||||
pub __fpu_reserved1: ::c_int,
|
||||
pub __fpu_reserved1: c_int,
|
||||
}
|
||||
|
||||
pub struct __darwin_mmst_reg {
|
||||
pub __mmst_reg: [::c_char; 10],
|
||||
pub __mmst_rsrv: [::c_char; 6],
|
||||
pub __mmst_reg: [c_char; 10],
|
||||
pub __mmst_rsrv: [c_char; 6],
|
||||
}
|
||||
|
||||
pub struct __darwin_xmm_reg {
|
||||
pub __xmm_reg: [::c_char; 16],
|
||||
pub __xmm_reg: [c_char; 16],
|
||||
}
|
||||
|
||||
pub struct malloc_introspection_t {
|
||||
_private: [::uintptr_t; 16], // FIXME: keeping private for now
|
||||
_private: [crate::uintptr_t; 16], // FIXME(macos): keeping private for now
|
||||
}
|
||||
|
||||
pub struct malloc_zone_t {
|
||||
_reserved1: *mut ::c_void,
|
||||
_reserved2: *mut ::c_void,
|
||||
pub size: ::Option<unsafe extern "C" fn(
|
||||
_reserved1: *mut c_void,
|
||||
_reserved2: *mut c_void,
|
||||
pub size:
|
||||
Option<unsafe extern "C" fn(zone: *mut malloc_zone_t, ptr: *const c_void) -> size_t>,
|
||||
pub malloc:
|
||||
Option<unsafe extern "C" fn(zone: *mut malloc_zone_t, size: size_t) -> *mut c_void>,
|
||||
pub calloc: Option<
|
||||
unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
ptr: *const ::c_void,
|
||||
) -> ::size_t>,
|
||||
pub malloc: ::Option<unsafe extern "C" fn(
|
||||
num_items: size_t,
|
||||
size: size_t,
|
||||
) -> *mut c_void,
|
||||
>,
|
||||
pub valloc:
|
||||
Option<unsafe extern "C" fn(zone: *mut malloc_zone_t, size: size_t) -> *mut c_void>,
|
||||
pub free: Option<unsafe extern "C" fn(zone: *mut malloc_zone_t, ptr: *mut c_void)>,
|
||||
pub realloc: Option<
|
||||
unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
size: ::size_t,
|
||||
) -> *mut ::c_void>,
|
||||
pub calloc: ::Option<unsafe extern "C" fn(
|
||||
ptr: *mut c_void,
|
||||
size: size_t,
|
||||
) -> *mut c_void,
|
||||
>,
|
||||
pub destroy: Option<unsafe extern "C" fn(zone: *mut malloc_zone_t)>,
|
||||
pub zone_name: *const c_char,
|
||||
pub batch_malloc: Option<
|
||||
unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
num_items: ::size_t,
|
||||
size: ::size_t,
|
||||
) -> *mut ::c_void>,
|
||||
pub valloc: ::Option<unsafe extern "C" fn(
|
||||
size: size_t,
|
||||
results: *mut *mut c_void,
|
||||
num_requested: c_uint,
|
||||
) -> c_uint,
|
||||
>,
|
||||
pub batch_free: Option<
|
||||
unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
size: ::size_t
|
||||
) -> *mut ::c_void>,
|
||||
pub free: ::Option<unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
ptr: *mut ::c_void
|
||||
)>,
|
||||
pub realloc: ::Option<unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
ptr: *mut ::c_void,
|
||||
size: ::size_t,
|
||||
) -> *mut ::c_void>,
|
||||
pub destroy: ::Option<unsafe extern "C" fn(zone: *mut malloc_zone_t)>,
|
||||
pub zone_name: *const ::c_char,
|
||||
pub batch_malloc: ::Option<unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
size: ::size_t,
|
||||
results: *mut *mut ::c_void,
|
||||
num_requested: ::c_uint,
|
||||
) -> ::c_uint>,
|
||||
pub batch_free: ::Option<unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
to_be_freed: *mut *mut ::c_void,
|
||||
num_to_be_freed: ::c_uint,
|
||||
)>,
|
||||
to_be_freed: *mut *mut c_void,
|
||||
num_to_be_freed: c_uint,
|
||||
),
|
||||
>,
|
||||
pub introspect: *mut malloc_introspection_t,
|
||||
pub version: ::c_uint,
|
||||
pub memalign: ::Option<unsafe extern "C" fn(
|
||||
pub version: c_uint,
|
||||
pub memalign: Option<
|
||||
unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
alignment: ::size_t,
|
||||
size: ::size_t,
|
||||
) -> *mut ::c_void>,
|
||||
pub free_definite_size: ::Option<unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
ptr: *mut ::c_void,
|
||||
size: ::size_t
|
||||
)>,
|
||||
pub pressure_relief: ::Option<unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
goal: ::size_t,
|
||||
) -> ::size_t>,
|
||||
pub claimed_address: ::Option<unsafe extern "C" fn(
|
||||
zone: *mut malloc_zone_t,
|
||||
ptr: *mut ::c_void,
|
||||
) -> ::boolean_t>,
|
||||
alignment: size_t,
|
||||
size: size_t,
|
||||
) -> *mut c_void,
|
||||
>,
|
||||
pub free_definite_size:
|
||||
Option<unsafe extern "C" fn(zone: *mut malloc_zone_t, ptr: *mut c_void, size: size_t)>,
|
||||
pub pressure_relief:
|
||||
Option<unsafe extern "C" fn(zone: *mut malloc_zone_t, goal: size_t) -> size_t>,
|
||||
pub claimed_address: Option<
|
||||
unsafe extern "C" fn(zone: *mut malloc_zone_t, ptr: *mut c_void) -> crate::boolean_t,
|
||||
>,
|
||||
}
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(libc_align)] {
|
||||
mod align;
|
||||
pub use self::align::*;
|
||||
s_no_extra_traits! {
|
||||
#[allow(missing_debug_implementations)]
|
||||
#[repr(align(16))]
|
||||
pub struct max_align_t {
|
||||
priv_: [f64; 2],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
s! {
|
||||
pub struct ctl_info {
|
||||
pub ctl_id: u32,
|
||||
pub ctl_name: [::c_char; MAX_KCTL_NAME],
|
||||
}
|
||||
}
|
||||
|
||||
pub const MAX_KCTL_NAME: usize = 96;
|
||||
6506
third_party/rust/libc/src/unix/bsd/apple/mod.rs
vendored
6506
third_party/rust/libc/src/unix/bsd/apple/mod.rs
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,17 @@
|
||||
use crate::prelude::*;
|
||||
|
||||
/* DIFF(main): module removed in de76fee6 */
|
||||
|
||||
// DragonFlyBSD's __error function is declared with "static inline", so it must
|
||||
// be implemented in the libc crate, as a pointer to a static thread_local.
|
||||
f! {
|
||||
#[deprecated(since = "0.2.77", note = "Use `__errno_location()` instead")]
|
||||
pub fn __error() -> *mut ::c_int {
|
||||
pub fn __error() -> *mut c_int {
|
||||
&mut errno
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
#[thread_local]
|
||||
pub static mut errno: ::c_int;
|
||||
pub static mut errno: c_int;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
pub type c_char = u8;
|
||||
pub type c_long = i64;
|
||||
pub type c_ulong = u64;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type clock_t = i32;
|
||||
pub type wchar_t = u32;
|
||||
pub type time_t = i64;
|
||||
pub type suseconds_t = i64;
|
||||
@@ -8,57 +8,48 @@ pub type register_t = i64;
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct gpregs {
|
||||
pub gp_x: [::register_t; 30],
|
||||
pub gp_lr: ::register_t,
|
||||
pub gp_sp: ::register_t,
|
||||
pub gp_elr: ::register_t,
|
||||
pub gp_x: [crate::register_t; 30],
|
||||
pub gp_lr: crate::register_t,
|
||||
pub gp_sp: crate::register_t,
|
||||
pub gp_elr: crate::register_t,
|
||||
pub gp_spsr: u32,
|
||||
pub gp_pad: ::c_int,
|
||||
pub gp_pad: c_int,
|
||||
}
|
||||
|
||||
pub struct fpregs {
|
||||
pub fp_q: u128,
|
||||
pub fp_sr: u32,
|
||||
pub fp_cr: u32,
|
||||
pub fp_flags: ::c_int,
|
||||
pub fp_pad: ::c_int,
|
||||
pub fp_flags: c_int,
|
||||
pub fp_pad: c_int,
|
||||
}
|
||||
|
||||
pub struct mcontext_t {
|
||||
pub mc_gpregs: gpregs,
|
||||
pub mc_fpregs: fpregs,
|
||||
pub mc_flags: ::c_int,
|
||||
pub mc_pad: ::c_int,
|
||||
pub mc_flags: c_int,
|
||||
pub mc_pad: c_int,
|
||||
pub mc_spare: [u64; 8],
|
||||
}
|
||||
}
|
||||
|
||||
// should be pub(crate), but that requires Rust 1.18.0
|
||||
cfg_if! {
|
||||
if #[cfg(libc_const_size_of)] {
|
||||
#[doc(hidden)]
|
||||
pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1;
|
||||
} else {
|
||||
#[doc(hidden)]
|
||||
pub const _ALIGNBYTES: usize = 8 - 1;
|
||||
}
|
||||
}
|
||||
pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_longlong>() - 1;
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(feature = "extra_traits")] {
|
||||
impl PartialEq for gpregs {
|
||||
fn eq(&self, other: &gpregs) -> bool {
|
||||
self.gp_x.iter().zip(other.gp_x.iter()).all(|(a, b)| a == b) &&
|
||||
self.gp_lr == other.gp_lr &&
|
||||
self.gp_sp == other.gp_sp &&
|
||||
self.gp_elr == other.gp_elr &&
|
||||
self.gp_spsr == other.gp_spsr &&
|
||||
self.gp_pad == other.gp_pad
|
||||
self.gp_x.iter().zip(other.gp_x.iter()).all(|(a, b)| a == b)
|
||||
&& self.gp_lr == other.gp_lr
|
||||
&& self.gp_sp == other.gp_sp
|
||||
&& self.gp_elr == other.gp_elr
|
||||
&& self.gp_spsr == other.gp_spsr
|
||||
&& self.gp_pad == other.gp_pad
|
||||
}
|
||||
}
|
||||
impl Eq for gpregs {}
|
||||
impl ::fmt::Debug for gpregs {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for gpregs {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("gpregs")
|
||||
.field("gp_x", &self.gp_x)
|
||||
.field("gp_lr", &self.gp_lr)
|
||||
@@ -69,8 +60,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for gpregs {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for gpregs {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.gp_x.hash(state);
|
||||
self.gp_lr.hash(state);
|
||||
self.gp_sp.hash(state);
|
||||
@@ -81,16 +72,16 @@ cfg_if! {
|
||||
}
|
||||
impl PartialEq for fpregs {
|
||||
fn eq(&self, other: &fpregs) -> bool {
|
||||
self.fp_q == other.fp_q &&
|
||||
self.fp_sr == other.fp_sr &&
|
||||
self.fp_cr == other.fp_cr &&
|
||||
self.fp_flags == other.fp_flags &&
|
||||
self.fp_pad == other.fp_pad
|
||||
self.fp_q == other.fp_q
|
||||
&& self.fp_sr == other.fp_sr
|
||||
&& self.fp_cr == other.fp_cr
|
||||
&& self.fp_flags == other.fp_flags
|
||||
&& self.fp_pad == other.fp_pad
|
||||
}
|
||||
}
|
||||
impl Eq for fpregs {}
|
||||
impl ::fmt::Debug for fpregs {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for fpregs {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("fpregs")
|
||||
.field("fp_q", &self.fp_q)
|
||||
.field("fp_sr", &self.fp_sr)
|
||||
@@ -100,8 +91,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for fpregs {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for fpregs {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.fp_q.hash(state);
|
||||
self.fp_sr.hash(state);
|
||||
self.fp_cr.hash(state);
|
||||
@@ -111,16 +102,20 @@ cfg_if! {
|
||||
}
|
||||
impl PartialEq for mcontext_t {
|
||||
fn eq(&self, other: &mcontext_t) -> bool {
|
||||
self.mc_gpregs == other.mc_gpregs &&
|
||||
self.mc_fpregs == other.mc_fpregs &&
|
||||
self.mc_flags == other.mc_flags &&
|
||||
self.mc_pad == other.mc_pad &&
|
||||
self.mc_spare.iter().zip(other.mc_spare.iter()).all(|(a, b)| a == b)
|
||||
self.mc_gpregs == other.mc_gpregs
|
||||
&& self.mc_fpregs == other.mc_fpregs
|
||||
&& self.mc_flags == other.mc_flags
|
||||
&& self.mc_pad == other.mc_pad
|
||||
&& self
|
||||
.mc_spare
|
||||
.iter()
|
||||
.zip(other.mc_spare.iter())
|
||||
.all(|(a, b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for mcontext_t {}
|
||||
impl ::fmt::Debug for mcontext_t {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for mcontext_t {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("mcontext_t")
|
||||
.field("mc_gpregs", &self.mc_gpregs)
|
||||
.field("mc_fpregs", &self.mc_fpregs)
|
||||
@@ -130,8 +125,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for mcontext_t {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for mcontext_t {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.mc_gpregs.hash(state);
|
||||
self.mc_fpregs.hash(state);
|
||||
self.mc_flags.hash(state);
|
||||
@@ -142,5 +137,8 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
|
||||
pub const MAP_32BIT: ::c_int = 0x00080000;
|
||||
pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4
|
||||
pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d;
|
||||
pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e;
|
||||
pub const MAP_32BIT: c_int = 0x00080000;
|
||||
pub const MINSIGSTKSZ: size_t = 4096; // 1024 * 4
|
||||
pub const TIOCTIMESTAMP: c_ulong = 0x40107459;
|
||||
|
||||
@@ -1,20 +1,63 @@
|
||||
pub type c_char = u8;
|
||||
pub type c_long = i32;
|
||||
pub type c_ulong = u32;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type clock_t = u32;
|
||||
pub type wchar_t = u32;
|
||||
pub type time_t = i64;
|
||||
pub type suseconds_t = i32;
|
||||
pub type register_t = i32;
|
||||
pub type __greg_t = c_uint;
|
||||
pub type __gregset_t = [crate::__greg_t; 17];
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct mcontext_t {
|
||||
pub __gregs: crate::__gregset_t,
|
||||
pub mc_vfp_size: usize,
|
||||
pub mc_vfp_ptr: *mut c_void,
|
||||
pub mc_spare: [c_uint; 33],
|
||||
}
|
||||
}
|
||||
|
||||
// should be pub(crate), but that requires Rust 1.18.0
|
||||
cfg_if! {
|
||||
if #[cfg(libc_const_size_of)] {
|
||||
#[doc(hidden)]
|
||||
pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1;
|
||||
} else {
|
||||
#[doc(hidden)]
|
||||
pub const _ALIGNBYTES: usize = 4 - 1;
|
||||
if #[cfg(feature = "extra_traits")] {
|
||||
impl PartialEq for mcontext_t {
|
||||
fn eq(&self, other: &mcontext_t) -> bool {
|
||||
self.__gregs == other.__gregs
|
||||
&& self.mc_vfp_size == other.mc_vfp_size
|
||||
&& self.mc_vfp_ptr == other.mc_vfp_ptr
|
||||
&& self
|
||||
.mc_spare
|
||||
.iter()
|
||||
.zip(other.mc_spare.iter())
|
||||
.all(|(a, b)| a == b)
|
||||
}
|
||||
}
|
||||
pub const MAP_32BIT: ::c_int = 0x00080000;
|
||||
pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4
|
||||
impl Eq for mcontext_t {}
|
||||
impl fmt::Debug for mcontext_t {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("mcontext_t")
|
||||
.field("__gregs", &self.__gregs)
|
||||
.field("mc_vfp_size", &self.mc_vfp_size)
|
||||
.field("mc_vfp_ptr", &self.mc_vfp_ptr)
|
||||
.field("mc_spare", &self.mc_spare)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl hash::Hash for mcontext_t {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.__gregs.hash(state);
|
||||
self.mc_vfp_size.hash(state);
|
||||
self.mc_vfp_ptr.hash(state);
|
||||
self.mc_spare.hash(state);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_int>() - 1;
|
||||
|
||||
pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d;
|
||||
pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e;
|
||||
|
||||
pub const MAP_32BIT: c_int = 0x00080000;
|
||||
pub const MINSIGSTKSZ: size_t = 4096; // 1024 * 4
|
||||
pub const TIOCTIMESTAMP: c_ulong = 0x40107459;
|
||||
|
||||
@@ -1,33 +1,36 @@
|
||||
use crate::off_t;
|
||||
use crate::prelude::*;
|
||||
|
||||
#[repr(C)]
|
||||
#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
|
||||
pub struct stat {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
pub st_rdev: ::dev_t,
|
||||
pub st_atime: ::time_t,
|
||||
pub st_atime_nsec: ::c_long,
|
||||
pub st_mtime: ::time_t,
|
||||
pub st_mtime_nsec: ::c_long,
|
||||
pub st_ctime: ::time_t,
|
||||
pub st_ctime_nsec: ::c_long,
|
||||
pub st_size: ::off_t,
|
||||
pub st_blocks: ::blkcnt_t,
|
||||
pub st_blksize: ::blksize_t,
|
||||
pub st_flags: ::fflags_t,
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
pub st_rdev: crate::dev_t,
|
||||
pub st_atime: crate::time_t,
|
||||
pub st_atime_nsec: c_long,
|
||||
pub st_mtime: crate::time_t,
|
||||
pub st_mtime_nsec: c_long,
|
||||
pub st_ctime: crate::time_t,
|
||||
pub st_ctime_nsec: c_long,
|
||||
pub st_size: off_t,
|
||||
pub st_blocks: crate::blkcnt_t,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
pub st_flags: crate::fflags_t,
|
||||
pub st_gen: u32,
|
||||
pub st_lspare: i32,
|
||||
pub st_birthtime: ::time_t,
|
||||
pub st_birthtime_nsec: ::c_long,
|
||||
pub st_birthtime: crate::time_t,
|
||||
pub st_birthtime_nsec: c_long,
|
||||
__unused: [u8; 8],
|
||||
}
|
||||
|
||||
impl ::Copy for ::stat {}
|
||||
impl ::Clone for ::stat {
|
||||
fn clone(&self) -> ::stat {
|
||||
impl Copy for crate::stat {}
|
||||
impl Clone for crate::stat {
|
||||
fn clone(&self) -> crate::stat {
|
||||
*self
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,32 +1,35 @@
|
||||
use crate::off_t;
|
||||
use crate::prelude::*;
|
||||
|
||||
#[repr(C)]
|
||||
#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
|
||||
pub struct stat {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
pub st_rdev: ::dev_t,
|
||||
pub st_atime: ::time_t,
|
||||
pub st_atime_nsec: ::c_long,
|
||||
pub st_mtime: ::time_t,
|
||||
pub st_mtime_nsec: ::c_long,
|
||||
pub st_ctime: ::time_t,
|
||||
pub st_ctime_nsec: ::c_long,
|
||||
pub st_size: ::off_t,
|
||||
pub st_blocks: ::blkcnt_t,
|
||||
pub st_blksize: ::blksize_t,
|
||||
pub st_flags: ::fflags_t,
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
pub st_rdev: crate::dev_t,
|
||||
pub st_atime: crate::time_t,
|
||||
pub st_atime_nsec: c_long,
|
||||
pub st_mtime: crate::time_t,
|
||||
pub st_mtime_nsec: c_long,
|
||||
pub st_ctime: crate::time_t,
|
||||
pub st_ctime_nsec: c_long,
|
||||
pub st_size: off_t,
|
||||
pub st_blocks: crate::blkcnt_t,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
pub st_flags: crate::fflags_t,
|
||||
pub st_gen: u32,
|
||||
pub st_lspare: i32,
|
||||
pub st_birthtime: ::time_t,
|
||||
pub st_birthtime_nsec: ::c_long,
|
||||
pub st_birthtime: crate::time_t,
|
||||
pub st_birthtime_nsec: c_long,
|
||||
}
|
||||
|
||||
impl ::Copy for ::stat {}
|
||||
impl ::Clone for ::stat {
|
||||
fn clone(&self) -> ::stat {
|
||||
impl Copy for crate::stat {}
|
||||
impl Clone for crate::stat {
|
||||
fn clone(&self) -> crate::stat {
|
||||
*self
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
use crate::prelude::*;
|
||||
|
||||
// APIs that were changed after FreeBSD 11
|
||||
|
||||
// The type of `nlink_t` changed from `u16` to `u64` in FreeBSD 12:
|
||||
@@ -9,216 +11,216 @@ pub type ino_t = u32;
|
||||
|
||||
s! {
|
||||
pub struct kevent {
|
||||
pub ident: ::uintptr_t,
|
||||
pub filter: ::c_short,
|
||||
pub flags: ::c_ushort,
|
||||
pub fflags: ::c_uint,
|
||||
pub data: ::intptr_t,
|
||||
pub udata: *mut ::c_void,
|
||||
pub ident: crate::uintptr_t,
|
||||
pub filter: c_short,
|
||||
pub flags: c_ushort,
|
||||
pub fflags: c_uint,
|
||||
pub data: intptr_t,
|
||||
pub udata: *mut c_void,
|
||||
}
|
||||
|
||||
pub struct shmid_ds {
|
||||
pub shm_perm: ::ipc_perm,
|
||||
pub shm_segsz: ::size_t,
|
||||
pub shm_lpid: ::pid_t,
|
||||
pub shm_cpid: ::pid_t,
|
||||
pub shm_perm: crate::ipc_perm,
|
||||
pub shm_segsz: size_t,
|
||||
pub shm_lpid: crate::pid_t,
|
||||
pub shm_cpid: crate::pid_t,
|
||||
// Type of shm_nattc changed from `int` to `shmatt_t` (aka `unsigned
|
||||
// int`) in FreeBSD 12:
|
||||
pub shm_nattch: ::c_int,
|
||||
pub shm_atime: ::time_t,
|
||||
pub shm_dtime: ::time_t,
|
||||
pub shm_ctime: ::time_t,
|
||||
pub shm_nattch: c_int,
|
||||
pub shm_atime: crate::time_t,
|
||||
pub shm_dtime: crate::time_t,
|
||||
pub shm_ctime: crate::time_t,
|
||||
}
|
||||
|
||||
pub struct kinfo_proc {
|
||||
/// Size of this structure.
|
||||
pub ki_structsize: ::c_int,
|
||||
pub ki_structsize: c_int,
|
||||
/// Reserved: layout identifier.
|
||||
pub ki_layout: ::c_int,
|
||||
pub ki_layout: c_int,
|
||||
/// Address of command arguments.
|
||||
pub ki_args: *mut ::pargs,
|
||||
pub ki_args: *mut crate::pargs,
|
||||
// This is normally "struct proc".
|
||||
/// Address of proc.
|
||||
pub ki_paddr: *mut ::c_void,
|
||||
pub ki_paddr: *mut c_void,
|
||||
// This is normally "struct user".
|
||||
/// Kernel virtual address of u-area.
|
||||
pub ki_addr: *mut ::c_void,
|
||||
pub ki_addr: *mut c_void,
|
||||
// This is normally "struct vnode".
|
||||
/// Pointer to trace file.
|
||||
pub ki_tracep: *mut ::c_void,
|
||||
pub ki_tracep: *mut c_void,
|
||||
// This is normally "struct vnode".
|
||||
/// Pointer to executable file.
|
||||
pub ki_textvp: *mut ::c_void,
|
||||
pub ki_textvp: *mut c_void,
|
||||
// This is normally "struct filedesc".
|
||||
/// Pointer to open file info.
|
||||
pub ki_fd: *mut ::c_void,
|
||||
pub ki_fd: *mut c_void,
|
||||
// This is normally "struct vmspace".
|
||||
/// Pointer to kernel vmspace struct.
|
||||
pub ki_vmspace: *mut ::c_void,
|
||||
pub ki_vmspace: *mut c_void,
|
||||
/// Sleep address.
|
||||
pub ki_wchan: *mut ::c_void,
|
||||
pub ki_wchan: *mut c_void,
|
||||
/// Process identifier.
|
||||
pub ki_pid: ::pid_t,
|
||||
pub ki_pid: crate::pid_t,
|
||||
/// Parent process ID.
|
||||
pub ki_ppid: ::pid_t,
|
||||
pub ki_ppid: crate::pid_t,
|
||||
/// Process group ID.
|
||||
pub ki_pgid: ::pid_t,
|
||||
pub ki_pgid: crate::pid_t,
|
||||
/// tty process group ID.
|
||||
pub ki_tpgid: ::pid_t,
|
||||
pub ki_tpgid: crate::pid_t,
|
||||
/// Process session ID.
|
||||
pub ki_sid: ::pid_t,
|
||||
pub ki_sid: crate::pid_t,
|
||||
/// Terminal session ID.
|
||||
pub ki_tsid: ::pid_t,
|
||||
pub ki_tsid: crate::pid_t,
|
||||
/// Job control counter.
|
||||
pub ki_jobc: ::c_short,
|
||||
pub ki_jobc: c_short,
|
||||
/// Unused (just here for alignment).
|
||||
pub ki_spare_short1: ::c_short,
|
||||
pub ki_spare_short1: c_short,
|
||||
/// Controlling tty dev.
|
||||
pub ki_tdev: ::dev_t,
|
||||
pub ki_tdev: crate::dev_t,
|
||||
/// Signals arrived but not delivered.
|
||||
pub ki_siglist: ::sigset_t,
|
||||
pub ki_siglist: crate::sigset_t,
|
||||
/// Current signal mask.
|
||||
pub ki_sigmask: ::sigset_t,
|
||||
pub ki_sigmask: crate::sigset_t,
|
||||
/// Signals being ignored.
|
||||
pub ki_sigignore: ::sigset_t,
|
||||
pub ki_sigignore: crate::sigset_t,
|
||||
/// Signals being caught by user.
|
||||
pub ki_sigcatch: ::sigset_t,
|
||||
pub ki_sigcatch: crate::sigset_t,
|
||||
/// Effective user ID.
|
||||
pub ki_uid: ::uid_t,
|
||||
pub ki_uid: crate::uid_t,
|
||||
/// Real user ID.
|
||||
pub ki_ruid: ::uid_t,
|
||||
pub ki_ruid: crate::uid_t,
|
||||
/// Saved effective user ID.
|
||||
pub ki_svuid: ::uid_t,
|
||||
pub ki_svuid: crate::uid_t,
|
||||
/// Real group ID.
|
||||
pub ki_rgid: ::gid_t,
|
||||
pub ki_rgid: crate::gid_t,
|
||||
/// Saved effective group ID.
|
||||
pub ki_svgid: ::gid_t,
|
||||
pub ki_svgid: crate::gid_t,
|
||||
/// Number of groups.
|
||||
pub ki_ngroups: ::c_short,
|
||||
pub ki_ngroups: c_short,
|
||||
/// Unused (just here for alignment).
|
||||
pub ki_spare_short2: ::c_short,
|
||||
pub ki_spare_short2: c_short,
|
||||
/// Groups.
|
||||
pub ki_groups: [::gid_t; ::KI_NGROUPS],
|
||||
pub ki_groups: [crate::gid_t; crate::KI_NGROUPS],
|
||||
/// Virtual size.
|
||||
pub ki_size: ::vm_size_t,
|
||||
pub ki_size: crate::vm_size_t,
|
||||
/// Current resident set size in pages.
|
||||
pub ki_rssize: ::segsz_t,
|
||||
pub ki_rssize: crate::segsz_t,
|
||||
/// Resident set size before last swap.
|
||||
pub ki_swrss: ::segsz_t,
|
||||
pub ki_swrss: crate::segsz_t,
|
||||
/// Text size (pages) XXX.
|
||||
pub ki_tsize: ::segsz_t,
|
||||
pub ki_tsize: crate::segsz_t,
|
||||
/// Data size (pages) XXX.
|
||||
pub ki_dsize: ::segsz_t,
|
||||
pub ki_dsize: crate::segsz_t,
|
||||
/// Stack size (pages).
|
||||
pub ki_ssize: ::segsz_t,
|
||||
pub ki_ssize: crate::segsz_t,
|
||||
/// Exit status for wait & stop signal.
|
||||
pub ki_xstat: ::u_short,
|
||||
pub ki_xstat: crate::u_short,
|
||||
/// Accounting flags.
|
||||
pub ki_acflag: ::u_short,
|
||||
pub ki_acflag: crate::u_short,
|
||||
/// %cpu for process during `ki_swtime`.
|
||||
pub ki_pctcpu: ::fixpt_t,
|
||||
pub ki_pctcpu: crate::fixpt_t,
|
||||
/// Time averaged value of `ki_cpticks`.
|
||||
pub ki_estcpu: ::u_int,
|
||||
pub ki_estcpu: crate::u_int,
|
||||
/// Time since last blocked.
|
||||
pub ki_slptime: ::u_int,
|
||||
pub ki_slptime: crate::u_int,
|
||||
/// Time swapped in or out.
|
||||
pub ki_swtime: ::u_int,
|
||||
pub ki_swtime: crate::u_int,
|
||||
/// Number of copy-on-write faults.
|
||||
pub ki_cow: ::u_int,
|
||||
pub ki_cow: crate::u_int,
|
||||
/// Real time in microsec.
|
||||
pub ki_runtime: u64,
|
||||
/// Starting time.
|
||||
pub ki_start: ::timeval,
|
||||
pub ki_start: crate::timeval,
|
||||
/// Time used by process children.
|
||||
pub ki_childtime: ::timeval,
|
||||
pub ki_childtime: crate::timeval,
|
||||
/// P_* flags.
|
||||
pub ki_flag: ::c_long,
|
||||
pub ki_flag: c_long,
|
||||
/// KI_* flags (below).
|
||||
pub ki_kiflag: ::c_long,
|
||||
pub ki_kiflag: c_long,
|
||||
/// Kernel trace points.
|
||||
pub ki_traceflag: ::c_int,
|
||||
pub ki_traceflag: c_int,
|
||||
/// S* process status.
|
||||
pub ki_stat: ::c_char,
|
||||
pub ki_stat: c_char,
|
||||
/// Process "nice" value.
|
||||
pub ki_nice: i8, // signed char
|
||||
/// Process lock (prevent swap) count.
|
||||
pub ki_lock: ::c_char,
|
||||
pub ki_lock: c_char,
|
||||
/// Run queue index.
|
||||
pub ki_rqindex: ::c_char,
|
||||
pub ki_rqindex: c_char,
|
||||
/// Which cpu we are on.
|
||||
pub ki_oncpu_old: ::c_uchar,
|
||||
pub ki_oncpu_old: c_uchar,
|
||||
/// Last cpu we were on.
|
||||
pub ki_lastcpu_old: ::c_uchar,
|
||||
pub ki_lastcpu_old: c_uchar,
|
||||
/// Thread name.
|
||||
pub ki_tdname: [::c_char; ::TDNAMLEN + 1],
|
||||
pub ki_tdname: [c_char; crate::TDNAMLEN + 1],
|
||||
/// Wchan message.
|
||||
pub ki_wmesg: [::c_char; ::WMESGLEN + 1],
|
||||
pub ki_wmesg: [c_char; crate::WMESGLEN + 1],
|
||||
/// Setlogin name.
|
||||
pub ki_login: [::c_char; ::LOGNAMELEN + 1],
|
||||
pub ki_login: [c_char; crate::LOGNAMELEN + 1],
|
||||
/// Lock name.
|
||||
pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1],
|
||||
pub ki_lockname: [c_char; crate::LOCKNAMELEN + 1],
|
||||
/// Command name.
|
||||
pub ki_comm: [::c_char; ::COMMLEN + 1],
|
||||
pub ki_comm: [c_char; crate::COMMLEN + 1],
|
||||
/// Emulation name.
|
||||
pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1],
|
||||
pub ki_emul: [c_char; crate::KI_EMULNAMELEN + 1],
|
||||
/// Login class.
|
||||
pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1],
|
||||
pub ki_loginclass: [c_char; crate::LOGINCLASSLEN + 1],
|
||||
/// More thread name.
|
||||
pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1],
|
||||
pub ki_moretdname: [c_char; crate::MAXCOMLEN - crate::TDNAMLEN + 1],
|
||||
/// Spare string space.
|
||||
pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq
|
||||
pub ki_sparestrings: [[c_char; 23]; 2], // little hack to allow PartialEq
|
||||
/// Spare room for growth.
|
||||
pub ki_spareints: [::c_int; ::KI_NSPARE_INT],
|
||||
pub ki_spareints: [c_int; crate::KI_NSPARE_INT],
|
||||
/// Which cpu we are on.
|
||||
pub ki_oncpu: ::c_int,
|
||||
pub ki_oncpu: c_int,
|
||||
/// Last cpu we were on.
|
||||
pub ki_lastcpu: ::c_int,
|
||||
pub ki_lastcpu: c_int,
|
||||
/// PID of tracing process.
|
||||
pub ki_tracer: ::c_int,
|
||||
pub ki_tracer: c_int,
|
||||
/// P2_* flags.
|
||||
pub ki_flag2: ::c_int,
|
||||
pub ki_flag2: c_int,
|
||||
/// Default FIB number.
|
||||
pub ki_fibnum: ::c_int,
|
||||
pub ki_fibnum: c_int,
|
||||
/// Credential flags.
|
||||
pub ki_cr_flags: ::u_int,
|
||||
pub ki_cr_flags: crate::u_int,
|
||||
/// Process jail ID.
|
||||
pub ki_jid: ::c_int,
|
||||
pub ki_jid: c_int,
|
||||
/// Number of threads in total.
|
||||
pub ki_numthreads: ::c_int,
|
||||
pub ki_numthreads: c_int,
|
||||
/// Thread ID.
|
||||
pub ki_tid: ::lwpid_t,
|
||||
pub ki_tid: crate::lwpid_t,
|
||||
/// Process priority.
|
||||
pub ki_pri: ::priority,
|
||||
pub ki_pri: crate::priority,
|
||||
/// Process rusage statistics.
|
||||
pub ki_rusage: ::rusage,
|
||||
pub ki_rusage: crate::rusage,
|
||||
/// rusage of children processes.
|
||||
pub ki_rusage_ch: ::rusage,
|
||||
pub ki_rusage_ch: crate::rusage,
|
||||
// This is normally "struct pcb".
|
||||
/// Kernel virtual addr of pcb.
|
||||
pub ki_pcb: *mut ::c_void,
|
||||
pub ki_pcb: *mut c_void,
|
||||
/// Kernel virtual addr of stack.
|
||||
pub ki_kstack: *mut ::c_void,
|
||||
pub ki_kstack: *mut c_void,
|
||||
/// User convenience pointer.
|
||||
pub ki_udata: *mut ::c_void,
|
||||
pub ki_udata: *mut c_void,
|
||||
// This is normally "struct thread".
|
||||
pub ki_tdaddr: *mut ::c_void,
|
||||
pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR],
|
||||
pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG],
|
||||
pub ki_tdaddr: *mut c_void,
|
||||
pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR],
|
||||
pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG],
|
||||
/// PS_* flags.
|
||||
pub ki_sflag: ::c_long,
|
||||
pub ki_sflag: c_long,
|
||||
/// kthread flag.
|
||||
pub ki_tdflags: ::c_long,
|
||||
pub ki_tdflags: c_long,
|
||||
}
|
||||
}
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct dirent {
|
||||
pub d_fileno: ::ino_t,
|
||||
pub d_fileno: crate::ino_t,
|
||||
pub d_reclen: u16,
|
||||
pub d_type: u8,
|
||||
// Type of `d_namlen` changed from `char` to `u16` in FreeBSD 12:
|
||||
pub d_namlen: u8,
|
||||
pub d_name: [::c_char; 256],
|
||||
pub d_name: [c_char; 256],
|
||||
}
|
||||
|
||||
pub struct statfs {
|
||||
@@ -238,25 +240,25 @@ s_no_extra_traits! {
|
||||
pub f_asyncreads: u64,
|
||||
f_spare: [u64; 10],
|
||||
pub f_namemax: u32,
|
||||
pub f_owner: ::uid_t,
|
||||
pub f_fsid: ::fsid_t,
|
||||
f_charspare: [::c_char; 80],
|
||||
pub f_fstypename: [::c_char; 16],
|
||||
pub f_owner: crate::uid_t,
|
||||
pub f_fsid: crate::fsid_t,
|
||||
f_charspare: [c_char; 80],
|
||||
pub f_fstypename: [c_char; 16],
|
||||
// Array length changed from 88 to 1024 in FreeBSD 12:
|
||||
pub f_mntfromname: [::c_char; 88],
|
||||
pub f_mntfromname: [c_char; 88],
|
||||
// Array length changed from 88 to 1024 in FreeBSD 12:
|
||||
pub f_mntonname: [::c_char; 88],
|
||||
pub f_mntonname: [c_char; 88],
|
||||
}
|
||||
|
||||
pub struct vnstat {
|
||||
pub vn_fileid: u64,
|
||||
pub vn_size: u64,
|
||||
pub vn_mntdir: *mut ::c_char,
|
||||
pub vn_mntdir: *mut c_char,
|
||||
pub vn_dev: u32,
|
||||
pub vn_fsid: u32,
|
||||
pub vn_type: ::c_int,
|
||||
pub vn_type: c_int,
|
||||
pub vn_mode: u16,
|
||||
pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1],
|
||||
pub vn_devname: [c_char; crate::SPECNAMELEN as usize + 1],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -295,8 +297,8 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
impl Eq for statfs {}
|
||||
impl ::fmt::Debug for statfs {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for statfs {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("statfs")
|
||||
.field("f_bsize", &self.f_bsize)
|
||||
.field("f_iosize", &self.f_iosize)
|
||||
@@ -318,8 +320,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for statfs {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for statfs {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.f_version.hash(state);
|
||||
self.f_type.hash(state);
|
||||
self.f_flags.hash(state);
|
||||
@@ -349,16 +351,15 @@ cfg_if! {
|
||||
&& self.d_reclen == other.d_reclen
|
||||
&& self.d_type == other.d_type
|
||||
&& self.d_namlen == other.d_namlen
|
||||
&& self
|
||||
.d_name[..self.d_namlen as _]
|
||||
&& self.d_name[..self.d_namlen as _]
|
||||
.iter()
|
||||
.zip(other.d_name.iter())
|
||||
.all(|(a, b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for dirent {}
|
||||
impl ::fmt::Debug for dirent {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for dirent {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("dirent")
|
||||
.field("d_fileno", &self.d_fileno)
|
||||
.field("d_reclen", &self.d_reclen)
|
||||
@@ -368,8 +369,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for dirent {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for dirent {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.d_fileno.hash(state);
|
||||
self.d_reclen.hash(state);
|
||||
self.d_type.hash(state);
|
||||
@@ -380,23 +381,23 @@ cfg_if! {
|
||||
|
||||
impl PartialEq for vnstat {
|
||||
fn eq(&self, other: &vnstat) -> bool {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
let other_vn_devname: &[::c_char] = &other.vn_devname;
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
let other_vn_devname: &[c_char] = &other.vn_devname;
|
||||
|
||||
self.vn_fileid == other.vn_fileid &&
|
||||
self.vn_size == other.vn_size &&
|
||||
self.vn_mntdir == other.vn_mntdir &&
|
||||
self.vn_dev == other.vn_dev &&
|
||||
self.vn_fsid == other.vn_fsid &&
|
||||
self.vn_type == other.vn_type &&
|
||||
self.vn_mode == other.vn_mode &&
|
||||
self_vn_devname == other_vn_devname
|
||||
self.vn_fileid == other.vn_fileid
|
||||
&& self.vn_size == other.vn_size
|
||||
&& self.vn_mntdir == other.vn_mntdir
|
||||
&& self.vn_dev == other.vn_dev
|
||||
&& self.vn_fsid == other.vn_fsid
|
||||
&& self.vn_type == other.vn_type
|
||||
&& self.vn_mode == other.vn_mode
|
||||
&& self_vn_devname == other_vn_devname
|
||||
}
|
||||
}
|
||||
impl Eq for vnstat {}
|
||||
impl ::fmt::Debug for vnstat {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
impl fmt::Debug for vnstat {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
|
||||
f.debug_struct("vnstat")
|
||||
.field("vn_fileid", &self.vn_fileid)
|
||||
@@ -410,9 +411,9 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for vnstat {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
impl hash::Hash for vnstat {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
|
||||
self.vn_fileid.hash(state);
|
||||
self.vn_size.hash(state);
|
||||
@@ -427,55 +428,53 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
|
||||
pub const ELAST: ::c_int = 96;
|
||||
pub const RAND_MAX: ::c_int = 0x7fff_fffd;
|
||||
pub const ELAST: c_int = 96;
|
||||
pub const RAND_MAX: c_int = 0x7fff_fffd;
|
||||
pub const KI_NSPARE_PTR: usize = 6;
|
||||
pub const MINCORE_SUPER: ::c_int = 0x20;
|
||||
pub const MINCORE_SUPER: c_int = 0x20;
|
||||
/// max length of devicename
|
||||
pub const SPECNAMELEN: ::c_int = 63;
|
||||
pub const SPECNAMELEN: c_int = 63;
|
||||
|
||||
safe_f! {
|
||||
pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t {
|
||||
let major = major as ::dev_t;
|
||||
let minor = minor as ::dev_t;
|
||||
pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
|
||||
let major = major as crate::dev_t;
|
||||
let minor = minor as crate::dev_t;
|
||||
(major << 8) | minor
|
||||
}
|
||||
|
||||
pub {const} fn major(dev: crate::dev_t) -> c_int {
|
||||
((dev >> 8) & 0xff) as c_int
|
||||
}
|
||||
|
||||
f! {
|
||||
pub fn major(dev: ::dev_t) -> ::c_int {
|
||||
((dev >> 8) & 0xff) as ::c_int
|
||||
}
|
||||
|
||||
pub fn minor(dev: ::dev_t) -> ::c_int {
|
||||
(dev & 0xffff00ff) as ::c_int
|
||||
pub {const} fn minor(dev: crate::dev_t) -> c_int {
|
||||
(dev & 0xffff00ff) as c_int
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
// Return type ::c_int was removed in FreeBSD 12
|
||||
pub fn setgrent() -> ::c_int;
|
||||
// Return type c_int was removed in FreeBSD 12
|
||||
pub fn setgrent() -> c_int;
|
||||
|
||||
// Type of `addr` argument changed from `const void*` to `void*`
|
||||
// in FreeBSD 12
|
||||
pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
|
||||
pub fn mprotect(addr: *const c_void, len: size_t, prot: c_int) -> c_int;
|
||||
|
||||
// Return type ::c_int was removed in FreeBSD 12
|
||||
pub fn freelocale(loc: ::locale_t) -> ::c_int;
|
||||
// Return type c_int was removed in FreeBSD 12
|
||||
pub fn freelocale(loc: crate::locale_t) -> c_int;
|
||||
|
||||
// Return type ::c_int changed to ::ssize_t in FreeBSD 12:
|
||||
// Return type c_int changed to ssize_t in FreeBSD 12:
|
||||
pub fn msgrcv(
|
||||
msqid: ::c_int,
|
||||
msgp: *mut ::c_void,
|
||||
msgsz: ::size_t,
|
||||
msgtyp: ::c_long,
|
||||
msgflg: ::c_int,
|
||||
) -> ::c_int;
|
||||
msqid: c_int,
|
||||
msgp: *mut c_void,
|
||||
msgsz: size_t,
|
||||
msgtyp: c_long,
|
||||
msgflg: c_int,
|
||||
) -> c_int;
|
||||
|
||||
// Type of `path` argument changed from `const void*` to `void*`
|
||||
// in FreeBSD 12
|
||||
pub fn dirname(path: *const ::c_char) -> *mut ::c_char;
|
||||
pub fn basename(path: *const ::c_char) -> *mut ::c_char;
|
||||
pub fn dirname(path: *const c_char) -> *mut c_char;
|
||||
pub fn basename(path: *const c_char) -> *mut c_char;
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
|
||||
@@ -1,254 +1,257 @@
|
||||
use crate::off_t;
|
||||
use crate::prelude::*;
|
||||
|
||||
// APIs in FreeBSD 12 that have changed since 11.
|
||||
|
||||
pub type nlink_t = u64;
|
||||
pub type dev_t = u64;
|
||||
pub type ino_t = u64;
|
||||
pub type shmatt_t = ::c_uint;
|
||||
pub type shmatt_t = c_uint;
|
||||
|
||||
s! {
|
||||
pub struct shmid_ds {
|
||||
pub shm_perm: ::ipc_perm,
|
||||
pub shm_segsz: ::size_t,
|
||||
pub shm_lpid: ::pid_t,
|
||||
pub shm_cpid: ::pid_t,
|
||||
pub shm_nattch: ::shmatt_t,
|
||||
pub shm_atime: ::time_t,
|
||||
pub shm_dtime: ::time_t,
|
||||
pub shm_ctime: ::time_t,
|
||||
pub shm_perm: crate::ipc_perm,
|
||||
pub shm_segsz: size_t,
|
||||
pub shm_lpid: crate::pid_t,
|
||||
pub shm_cpid: crate::pid_t,
|
||||
pub shm_nattch: crate::shmatt_t,
|
||||
pub shm_atime: crate::time_t,
|
||||
pub shm_dtime: crate::time_t,
|
||||
pub shm_ctime: crate::time_t,
|
||||
}
|
||||
|
||||
pub struct kevent {
|
||||
pub ident: ::uintptr_t,
|
||||
pub filter: ::c_short,
|
||||
pub flags: ::c_ushort,
|
||||
pub fflags: ::c_uint,
|
||||
pub ident: crate::uintptr_t,
|
||||
pub filter: c_short,
|
||||
pub flags: c_ushort,
|
||||
pub fflags: c_uint,
|
||||
pub data: i64,
|
||||
pub udata: *mut ::c_void,
|
||||
pub udata: *mut c_void,
|
||||
pub ext: [u64; 4],
|
||||
}
|
||||
|
||||
pub struct kvm_page {
|
||||
pub version: ::c_uint,
|
||||
pub paddr: ::c_ulong,
|
||||
pub kmap_vaddr: ::c_ulong,
|
||||
pub dmap_vaddr: ::c_ulong,
|
||||
pub prot: ::vm_prot_t,
|
||||
pub offset: ::u_long,
|
||||
pub len: ::size_t,
|
||||
pub version: c_uint,
|
||||
pub paddr: c_ulong,
|
||||
pub kmap_vaddr: c_ulong,
|
||||
pub dmap_vaddr: c_ulong,
|
||||
pub prot: crate::vm_prot_t,
|
||||
pub offset: crate::u_long,
|
||||
pub len: size_t,
|
||||
}
|
||||
|
||||
pub struct kinfo_proc {
|
||||
/// Size of this structure.
|
||||
pub ki_structsize: ::c_int,
|
||||
pub ki_structsize: c_int,
|
||||
/// Reserved: layout identifier.
|
||||
pub ki_layout: ::c_int,
|
||||
pub ki_layout: c_int,
|
||||
/// Address of command arguments.
|
||||
pub ki_args: *mut ::pargs,
|
||||
pub ki_args: *mut crate::pargs,
|
||||
// This is normally "struct proc".
|
||||
/// Address of proc.
|
||||
pub ki_paddr: *mut ::c_void,
|
||||
pub ki_paddr: *mut c_void,
|
||||
// This is normally "struct user".
|
||||
/// Kernel virtual address of u-area.
|
||||
pub ki_addr: *mut ::c_void,
|
||||
pub ki_addr: *mut c_void,
|
||||
// This is normally "struct vnode".
|
||||
/// Pointer to trace file.
|
||||
pub ki_tracep: *mut ::c_void,
|
||||
pub ki_tracep: *mut c_void,
|
||||
// This is normally "struct vnode".
|
||||
/// Pointer to executable file.
|
||||
pub ki_textvp: *mut ::c_void,
|
||||
pub ki_textvp: *mut c_void,
|
||||
// This is normally "struct filedesc".
|
||||
/// Pointer to open file info.
|
||||
pub ki_fd: *mut ::c_void,
|
||||
pub ki_fd: *mut c_void,
|
||||
// This is normally "struct vmspace".
|
||||
/// Pointer to kernel vmspace struct.
|
||||
pub ki_vmspace: *mut ::c_void,
|
||||
pub ki_vmspace: *mut c_void,
|
||||
/// Sleep address.
|
||||
pub ki_wchan: *mut ::c_void,
|
||||
pub ki_wchan: *mut c_void,
|
||||
/// Process identifier.
|
||||
pub ki_pid: ::pid_t,
|
||||
pub ki_pid: crate::pid_t,
|
||||
/// Parent process ID.
|
||||
pub ki_ppid: ::pid_t,
|
||||
pub ki_ppid: crate::pid_t,
|
||||
/// Process group ID.
|
||||
pub ki_pgid: ::pid_t,
|
||||
pub ki_pgid: crate::pid_t,
|
||||
/// tty process group ID.
|
||||
pub ki_tpgid: ::pid_t,
|
||||
pub ki_tpgid: crate::pid_t,
|
||||
/// Process session ID.
|
||||
pub ki_sid: ::pid_t,
|
||||
pub ki_sid: crate::pid_t,
|
||||
/// Terminal session ID.
|
||||
pub ki_tsid: ::pid_t,
|
||||
pub ki_tsid: crate::pid_t,
|
||||
/// Job control counter.
|
||||
pub ki_jobc: ::c_short,
|
||||
pub ki_jobc: c_short,
|
||||
/// Unused (just here for alignment).
|
||||
pub ki_spare_short1: ::c_short,
|
||||
pub ki_spare_short1: c_short,
|
||||
/// Controlling tty dev.
|
||||
pub ki_tdev_freebsd11: u32,
|
||||
/// Signals arrived but not delivered.
|
||||
pub ki_siglist: ::sigset_t,
|
||||
pub ki_siglist: crate::sigset_t,
|
||||
/// Current signal mask.
|
||||
pub ki_sigmask: ::sigset_t,
|
||||
pub ki_sigmask: crate::sigset_t,
|
||||
/// Signals being ignored.
|
||||
pub ki_sigignore: ::sigset_t,
|
||||
pub ki_sigignore: crate::sigset_t,
|
||||
/// Signals being caught by user.
|
||||
pub ki_sigcatch: ::sigset_t,
|
||||
pub ki_sigcatch: crate::sigset_t,
|
||||
/// Effective user ID.
|
||||
pub ki_uid: ::uid_t,
|
||||
pub ki_uid: crate::uid_t,
|
||||
/// Real user ID.
|
||||
pub ki_ruid: ::uid_t,
|
||||
pub ki_ruid: crate::uid_t,
|
||||
/// Saved effective user ID.
|
||||
pub ki_svuid: ::uid_t,
|
||||
pub ki_svuid: crate::uid_t,
|
||||
/// Real group ID.
|
||||
pub ki_rgid: ::gid_t,
|
||||
pub ki_rgid: crate::gid_t,
|
||||
/// Saved effective group ID.
|
||||
pub ki_svgid: ::gid_t,
|
||||
pub ki_svgid: crate::gid_t,
|
||||
/// Number of groups.
|
||||
pub ki_ngroups: ::c_short,
|
||||
pub ki_ngroups: c_short,
|
||||
/// Unused (just here for alignment).
|
||||
pub ki_spare_short2: ::c_short,
|
||||
pub ki_spare_short2: c_short,
|
||||
/// Groups.
|
||||
pub ki_groups: [::gid_t; ::KI_NGROUPS],
|
||||
pub ki_groups: [crate::gid_t; crate::KI_NGROUPS],
|
||||
/// Virtual size.
|
||||
pub ki_size: ::vm_size_t,
|
||||
pub ki_size: crate::vm_size_t,
|
||||
/// Current resident set size in pages.
|
||||
pub ki_rssize: ::segsz_t,
|
||||
pub ki_rssize: crate::segsz_t,
|
||||
/// Resident set size before last swap.
|
||||
pub ki_swrss: ::segsz_t,
|
||||
pub ki_swrss: crate::segsz_t,
|
||||
/// Text size (pages) XXX.
|
||||
pub ki_tsize: ::segsz_t,
|
||||
pub ki_tsize: crate::segsz_t,
|
||||
/// Data size (pages) XXX.
|
||||
pub ki_dsize: ::segsz_t,
|
||||
pub ki_dsize: crate::segsz_t,
|
||||
/// Stack size (pages).
|
||||
pub ki_ssize: ::segsz_t,
|
||||
pub ki_ssize: crate::segsz_t,
|
||||
/// Exit status for wait & stop signal.
|
||||
pub ki_xstat: ::u_short,
|
||||
pub ki_xstat: crate::u_short,
|
||||
/// Accounting flags.
|
||||
pub ki_acflag: ::u_short,
|
||||
pub ki_acflag: crate::u_short,
|
||||
/// %cpu for process during `ki_swtime`.
|
||||
pub ki_pctcpu: ::fixpt_t,
|
||||
pub ki_pctcpu: crate::fixpt_t,
|
||||
/// Time averaged value of `ki_cpticks`.
|
||||
pub ki_estcpu: ::u_int,
|
||||
pub ki_estcpu: crate::u_int,
|
||||
/// Time since last blocked.
|
||||
pub ki_slptime: ::u_int,
|
||||
pub ki_slptime: crate::u_int,
|
||||
/// Time swapped in or out.
|
||||
pub ki_swtime: ::u_int,
|
||||
pub ki_swtime: crate::u_int,
|
||||
/// Number of copy-on-write faults.
|
||||
pub ki_cow: ::u_int,
|
||||
pub ki_cow: crate::u_int,
|
||||
/// Real time in microsec.
|
||||
pub ki_runtime: u64,
|
||||
/// Starting time.
|
||||
pub ki_start: ::timeval,
|
||||
pub ki_start: crate::timeval,
|
||||
/// Time used by process children.
|
||||
pub ki_childtime: ::timeval,
|
||||
pub ki_childtime: crate::timeval,
|
||||
/// P_* flags.
|
||||
pub ki_flag: ::c_long,
|
||||
pub ki_flag: c_long,
|
||||
/// KI_* flags (below).
|
||||
pub ki_kiflag: ::c_long,
|
||||
pub ki_kiflag: c_long,
|
||||
/// Kernel trace points.
|
||||
pub ki_traceflag: ::c_int,
|
||||
pub ki_traceflag: c_int,
|
||||
/// S* process status.
|
||||
pub ki_stat: ::c_char,
|
||||
pub ki_stat: c_char,
|
||||
/// Process "nice" value.
|
||||
pub ki_nice: i8, // signed char
|
||||
/// Process lock (prevent swap) count.
|
||||
pub ki_lock: ::c_char,
|
||||
pub ki_lock: c_char,
|
||||
/// Run queue index.
|
||||
pub ki_rqindex: ::c_char,
|
||||
pub ki_rqindex: c_char,
|
||||
/// Which cpu we are on.
|
||||
pub ki_oncpu_old: ::c_uchar,
|
||||
pub ki_oncpu_old: c_uchar,
|
||||
/// Last cpu we were on.
|
||||
pub ki_lastcpu_old: ::c_uchar,
|
||||
pub ki_lastcpu_old: c_uchar,
|
||||
/// Thread name.
|
||||
pub ki_tdname: [::c_char; ::TDNAMLEN + 1],
|
||||
pub ki_tdname: [c_char; crate::TDNAMLEN + 1],
|
||||
/// Wchan message.
|
||||
pub ki_wmesg: [::c_char; ::WMESGLEN + 1],
|
||||
pub ki_wmesg: [c_char; crate::WMESGLEN + 1],
|
||||
/// Setlogin name.
|
||||
pub ki_login: [::c_char; ::LOGNAMELEN + 1],
|
||||
pub ki_login: [c_char; crate::LOGNAMELEN + 1],
|
||||
/// Lock name.
|
||||
pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1],
|
||||
pub ki_lockname: [c_char; crate::LOCKNAMELEN + 1],
|
||||
/// Command name.
|
||||
pub ki_comm: [::c_char; ::COMMLEN + 1],
|
||||
pub ki_comm: [c_char; crate::COMMLEN + 1],
|
||||
/// Emulation name.
|
||||
pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1],
|
||||
pub ki_emul: [c_char; crate::KI_EMULNAMELEN + 1],
|
||||
/// Login class.
|
||||
pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1],
|
||||
pub ki_loginclass: [c_char; crate::LOGINCLASSLEN + 1],
|
||||
/// More thread name.
|
||||
pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1],
|
||||
pub ki_moretdname: [c_char; crate::MAXCOMLEN - crate::TDNAMLEN + 1],
|
||||
/// Spare string space.
|
||||
pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq
|
||||
pub ki_sparestrings: [[c_char; 23]; 2], // little hack to allow PartialEq
|
||||
/// Spare room for growth.
|
||||
pub ki_spareints: [::c_int; ::KI_NSPARE_INT],
|
||||
pub ki_spareints: [c_int; crate::KI_NSPARE_INT],
|
||||
/// Controlling tty dev.
|
||||
pub ki_tdev: ::dev_t,
|
||||
pub ki_tdev: crate::dev_t,
|
||||
/// Which cpu we are on.
|
||||
pub ki_oncpu: ::c_int,
|
||||
pub ki_oncpu: c_int,
|
||||
/// Last cpu we were on.
|
||||
pub ki_lastcpu: ::c_int,
|
||||
pub ki_lastcpu: c_int,
|
||||
/// PID of tracing process.
|
||||
pub ki_tracer: ::c_int,
|
||||
pub ki_tracer: c_int,
|
||||
/// P2_* flags.
|
||||
pub ki_flag2: ::c_int,
|
||||
pub ki_flag2: c_int,
|
||||
/// Default FIB number.
|
||||
pub ki_fibnum: ::c_int,
|
||||
pub ki_fibnum: c_int,
|
||||
/// Credential flags.
|
||||
pub ki_cr_flags: ::u_int,
|
||||
pub ki_cr_flags: crate::u_int,
|
||||
/// Process jail ID.
|
||||
pub ki_jid: ::c_int,
|
||||
pub ki_jid: c_int,
|
||||
/// Number of threads in total.
|
||||
pub ki_numthreads: ::c_int,
|
||||
pub ki_numthreads: c_int,
|
||||
/// Thread ID.
|
||||
pub ki_tid: ::lwpid_t,
|
||||
pub ki_tid: crate::lwpid_t,
|
||||
/// Process priority.
|
||||
pub ki_pri: ::priority,
|
||||
pub ki_pri: crate::priority,
|
||||
/// Process rusage statistics.
|
||||
pub ki_rusage: ::rusage,
|
||||
pub ki_rusage: crate::rusage,
|
||||
/// rusage of children processes.
|
||||
pub ki_rusage_ch: ::rusage,
|
||||
pub ki_rusage_ch: crate::rusage,
|
||||
// This is normally "struct pcb".
|
||||
/// Kernel virtual addr of pcb.
|
||||
pub ki_pcb: *mut ::c_void,
|
||||
pub ki_pcb: *mut c_void,
|
||||
/// Kernel virtual addr of stack.
|
||||
pub ki_kstack: *mut ::c_void,
|
||||
pub ki_kstack: *mut c_void,
|
||||
/// User convenience pointer.
|
||||
pub ki_udata: *mut ::c_void,
|
||||
pub ki_udata: *mut c_void,
|
||||
// This is normally "struct thread".
|
||||
pub ki_tdaddr: *mut ::c_void,
|
||||
pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR],
|
||||
pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG],
|
||||
pub ki_tdaddr: *mut c_void,
|
||||
pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR],
|
||||
pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG],
|
||||
/// PS_* flags.
|
||||
pub ki_sflag: ::c_long,
|
||||
pub ki_sflag: c_long,
|
||||
/// kthread flag.
|
||||
pub ki_tdflags: ::c_long,
|
||||
pub ki_tdflags: c_long,
|
||||
}
|
||||
|
||||
pub struct stat {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
st_padding0: i16,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
st_padding1: i32,
|
||||
pub st_rdev: ::dev_t,
|
||||
pub st_rdev: crate::dev_t,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_atim_ext: i32,
|
||||
pub st_atime: ::time_t,
|
||||
pub st_atime_nsec: ::c_long,
|
||||
pub st_atime: crate::time_t,
|
||||
pub st_atime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_mtim_ext: i32,
|
||||
pub st_mtime: ::time_t,
|
||||
pub st_mtime_nsec: ::c_long,
|
||||
pub st_mtime: crate::time_t,
|
||||
pub st_mtime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_ctim_ext: i32,
|
||||
pub st_ctime: ::time_t,
|
||||
pub st_ctime_nsec: ::c_long,
|
||||
pub st_ctime: crate::time_t,
|
||||
pub st_ctime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_btim_ext: i32,
|
||||
pub st_birthtime: ::time_t,
|
||||
pub st_birthtime_nsec: ::c_long,
|
||||
pub st_size: ::off_t,
|
||||
pub st_blocks: ::blkcnt_t,
|
||||
pub st_blksize: ::blksize_t,
|
||||
pub st_flags: ::fflags_t,
|
||||
pub st_birthtime: crate::time_t,
|
||||
pub st_birthtime_nsec: c_long,
|
||||
pub st_size: off_t,
|
||||
pub st_blocks: crate::blkcnt_t,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
pub st_flags: crate::fflags_t,
|
||||
pub st_gen: u64,
|
||||
pub st_spare: [u64; 10],
|
||||
}
|
||||
@@ -256,14 +259,14 @@ s! {
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct dirent {
|
||||
pub d_fileno: ::ino_t,
|
||||
pub d_off: ::off_t,
|
||||
pub d_fileno: crate::ino_t,
|
||||
pub d_off: off_t,
|
||||
pub d_reclen: u16,
|
||||
pub d_type: u8,
|
||||
d_pad0: u8,
|
||||
pub d_namlen: u16,
|
||||
d_pad1: u16,
|
||||
pub d_name: [::c_char; 256],
|
||||
pub d_name: [c_char; 256],
|
||||
}
|
||||
|
||||
pub struct statfs {
|
||||
@@ -283,12 +286,12 @@ s_no_extra_traits! {
|
||||
pub f_asyncreads: u64,
|
||||
f_spare: [u64; 10],
|
||||
pub f_namemax: u32,
|
||||
pub f_owner: ::uid_t,
|
||||
pub f_fsid: ::fsid_t,
|
||||
f_charspare: [::c_char; 80],
|
||||
pub f_fstypename: [::c_char; 16],
|
||||
pub f_mntfromname: [::c_char; 1024],
|
||||
pub f_mntonname: [::c_char; 1024],
|
||||
pub f_owner: crate::uid_t,
|
||||
pub f_fsid: crate::fsid_t,
|
||||
f_charspare: [c_char; 80],
|
||||
pub f_fstypename: [c_char; 16],
|
||||
pub f_mntfromname: [c_char; 1024],
|
||||
pub f_mntonname: [c_char; 1024],
|
||||
}
|
||||
|
||||
pub struct vnstat {
|
||||
@@ -296,10 +299,10 @@ s_no_extra_traits! {
|
||||
pub vn_size: u64,
|
||||
pub vn_dev: u64,
|
||||
pub vn_fsid: u64,
|
||||
pub vn_mntdir: *mut ::c_char,
|
||||
pub vn_type: ::c_int,
|
||||
pub vn_mntdir: *mut c_char,
|
||||
pub vn_type: c_int,
|
||||
pub vn_mode: u16,
|
||||
pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1],
|
||||
pub vn_devname: [c_char; crate::SPECNAMELEN as usize + 1],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -338,8 +341,8 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
impl Eq for statfs {}
|
||||
impl ::fmt::Debug for statfs {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for statfs {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("statfs")
|
||||
.field("f_bsize", &self.f_bsize)
|
||||
.field("f_iosize", &self.f_iosize)
|
||||
@@ -361,8 +364,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for statfs {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for statfs {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.f_version.hash(state);
|
||||
self.f_type.hash(state);
|
||||
self.f_flags.hash(state);
|
||||
@@ -394,16 +397,15 @@ cfg_if! {
|
||||
&& self.d_reclen == other.d_reclen
|
||||
&& self.d_type == other.d_type
|
||||
&& self.d_namlen == other.d_namlen
|
||||
&& self
|
||||
.d_name[..self.d_namlen as _]
|
||||
&& self.d_name[..self.d_namlen as _]
|
||||
.iter()
|
||||
.zip(other.d_name.iter())
|
||||
.all(|(a, b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for dirent {}
|
||||
impl ::fmt::Debug for dirent {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for dirent {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("dirent")
|
||||
.field("d_fileno", &self.d_fileno)
|
||||
.field("d_off", &self.d_off)
|
||||
@@ -414,8 +416,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for dirent {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for dirent {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.d_fileno.hash(state);
|
||||
self.d_off.hash(state);
|
||||
self.d_reclen.hash(state);
|
||||
@@ -427,23 +429,23 @@ cfg_if! {
|
||||
|
||||
impl PartialEq for vnstat {
|
||||
fn eq(&self, other: &vnstat) -> bool {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
let other_vn_devname: &[::c_char] = &other.vn_devname;
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
let other_vn_devname: &[c_char] = &other.vn_devname;
|
||||
|
||||
self.vn_fileid == other.vn_fileid &&
|
||||
self.vn_size == other.vn_size &&
|
||||
self.vn_dev == other.vn_dev &&
|
||||
self.vn_fsid == other.vn_fsid &&
|
||||
self.vn_mntdir == other.vn_mntdir &&
|
||||
self.vn_type == other.vn_type &&
|
||||
self.vn_mode == other.vn_mode &&
|
||||
self_vn_devname == other_vn_devname
|
||||
self.vn_fileid == other.vn_fileid
|
||||
&& self.vn_size == other.vn_size
|
||||
&& self.vn_dev == other.vn_dev
|
||||
&& self.vn_fsid == other.vn_fsid
|
||||
&& self.vn_mntdir == other.vn_mntdir
|
||||
&& self.vn_type == other.vn_type
|
||||
&& self.vn_mode == other.vn_mode
|
||||
&& self_vn_devname == other_vn_devname
|
||||
}
|
||||
}
|
||||
impl Eq for vnstat {}
|
||||
impl ::fmt::Debug for vnstat {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
impl fmt::Debug for vnstat {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
|
||||
f.debug_struct("vnstat")
|
||||
.field("vn_fileid", &self.vn_fileid)
|
||||
@@ -457,9 +459,9 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for vnstat {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
impl hash::Hash for vnstat {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
|
||||
self.vn_fileid.hash(state);
|
||||
self.vn_size.hash(state);
|
||||
@@ -474,19 +476,19 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
|
||||
pub const RAND_MAX: ::c_int = 0x7fff_fffd;
|
||||
pub const ELAST: ::c_int = 97;
|
||||
pub const RAND_MAX: c_int = 0x7fff_fffd;
|
||||
pub const ELAST: c_int = 97;
|
||||
|
||||
/// max length of devicename
|
||||
pub const SPECNAMELEN: ::c_int = 63;
|
||||
pub const SPECNAMELEN: c_int = 63;
|
||||
pub const KI_NSPARE_PTR: usize = 6;
|
||||
|
||||
pub const MINCORE_SUPER: ::c_int = 0x20;
|
||||
pub const MINCORE_SUPER: c_int = 0x20;
|
||||
|
||||
safe_f! {
|
||||
pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t {
|
||||
let major = major as ::dev_t;
|
||||
let minor = minor as ::dev_t;
|
||||
pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
|
||||
let major = major as crate::dev_t;
|
||||
let minor = minor as crate::dev_t;
|
||||
let mut dev = 0;
|
||||
dev |= ((major & 0xffffff00) as dev_t) << 32;
|
||||
dev |= ((major & 0x000000ff) as dev_t) << 8;
|
||||
@@ -494,32 +496,30 @@ safe_f! {
|
||||
dev |= ((minor & 0xffff00ff) as dev_t) << 0;
|
||||
dev
|
||||
}
|
||||
|
||||
pub {const} fn major(dev: crate::dev_t) -> c_int {
|
||||
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int
|
||||
}
|
||||
|
||||
f! {
|
||||
pub fn major(dev: ::dev_t) -> ::c_int {
|
||||
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int
|
||||
}
|
||||
|
||||
pub fn minor(dev: ::dev_t) -> ::c_int {
|
||||
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int
|
||||
pub {const} fn minor(dev: crate::dev_t) -> c_int {
|
||||
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
pub fn setgrent();
|
||||
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
|
||||
pub fn freelocale(loc: ::locale_t);
|
||||
pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int;
|
||||
pub fn freelocale(loc: crate::locale_t);
|
||||
pub fn msgrcv(
|
||||
msqid: ::c_int,
|
||||
msgp: *mut ::c_void,
|
||||
msgsz: ::size_t,
|
||||
msgtyp: ::c_long,
|
||||
msgflg: ::c_int,
|
||||
) -> ::ssize_t;
|
||||
msqid: c_int,
|
||||
msgp: *mut c_void,
|
||||
msgsz: size_t,
|
||||
msgtyp: c_long,
|
||||
msgflg: c_int,
|
||||
) -> ssize_t;
|
||||
|
||||
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
|
||||
pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
|
||||
pub fn dirname(path: *mut c_char) -> *mut c_char;
|
||||
pub fn basename(path: *mut c_char) -> *mut c_char;
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN;
|
||||
pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1;
|
||||
pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2;
|
||||
pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1;
|
||||
pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub const PROC_KPTI_CTL: c_int = crate::PROC_PROCCTL_MD_MIN;
|
||||
pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: c_int = 1;
|
||||
pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: c_int = 2;
|
||||
pub const PROC_KPTI_STATUS: c_int = crate::PROC_PROCCTL_MD_MIN + 1;
|
||||
pub const PROC_KPTI_STATUS_ACTIVE: c_int = 0x80000000;
|
||||
|
||||
@@ -1,264 +1,270 @@
|
||||
use crate::off_t;
|
||||
use crate::prelude::*;
|
||||
|
||||
// APIs in FreeBSD 13 that have changed since 11.
|
||||
|
||||
pub type nlink_t = u64;
|
||||
pub type dev_t = u64;
|
||||
pub type ino_t = u64;
|
||||
pub type shmatt_t = ::c_uint;
|
||||
pub type shmatt_t = c_uint;
|
||||
pub type kpaddr_t = u64;
|
||||
pub type kssize_t = i64;
|
||||
pub type domainset_t = __c_anonymous_domainset;
|
||||
|
||||
s! {
|
||||
pub struct shmid_ds {
|
||||
pub shm_perm: ::ipc_perm,
|
||||
pub shm_segsz: ::size_t,
|
||||
pub shm_lpid: ::pid_t,
|
||||
pub shm_cpid: ::pid_t,
|
||||
pub shm_nattch: ::shmatt_t,
|
||||
pub shm_atime: ::time_t,
|
||||
pub shm_dtime: ::time_t,
|
||||
pub shm_ctime: ::time_t,
|
||||
pub shm_perm: crate::ipc_perm,
|
||||
pub shm_segsz: size_t,
|
||||
pub shm_lpid: crate::pid_t,
|
||||
pub shm_cpid: crate::pid_t,
|
||||
pub shm_nattch: crate::shmatt_t,
|
||||
pub shm_atime: crate::time_t,
|
||||
pub shm_dtime: crate::time_t,
|
||||
pub shm_ctime: crate::time_t,
|
||||
}
|
||||
|
||||
pub struct kevent {
|
||||
pub ident: ::uintptr_t,
|
||||
pub filter: ::c_short,
|
||||
pub flags: ::c_ushort,
|
||||
pub fflags: ::c_uint,
|
||||
pub ident: crate::uintptr_t,
|
||||
pub filter: c_short,
|
||||
pub flags: c_ushort,
|
||||
pub fflags: c_uint,
|
||||
pub data: i64,
|
||||
pub udata: *mut ::c_void,
|
||||
pub udata: *mut c_void,
|
||||
pub ext: [u64; 4],
|
||||
}
|
||||
|
||||
pub struct kvm_page {
|
||||
pub kp_version: ::u_int,
|
||||
pub kp_paddr: ::kpaddr_t,
|
||||
pub kp_kmap_vaddr: ::kvaddr_t,
|
||||
pub kp_dmap_vaddr: ::kvaddr_t,
|
||||
pub kp_prot: ::vm_prot_t,
|
||||
pub kp_offset: ::off_t,
|
||||
pub kp_len: ::size_t,
|
||||
pub kp_version: crate::u_int,
|
||||
pub kp_paddr: crate::kpaddr_t,
|
||||
pub kp_kmap_vaddr: crate::kvaddr_t,
|
||||
pub kp_dmap_vaddr: crate::kvaddr_t,
|
||||
pub kp_prot: crate::vm_prot_t,
|
||||
pub kp_offset: off_t,
|
||||
pub kp_len: size_t,
|
||||
}
|
||||
|
||||
pub struct __c_anonymous_domainset {
|
||||
_priv: [::uintptr_t; 4],
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
_priv: [c_ulong; 4],
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
_priv: [c_ulong; 8],
|
||||
}
|
||||
|
||||
pub struct kinfo_proc {
|
||||
/// Size of this structure.
|
||||
pub ki_structsize: ::c_int,
|
||||
pub ki_structsize: c_int,
|
||||
/// Reserved: layout identifier.
|
||||
pub ki_layout: ::c_int,
|
||||
pub ki_layout: c_int,
|
||||
/// Address of command arguments.
|
||||
pub ki_args: *mut ::pargs,
|
||||
pub ki_args: *mut crate::pargs,
|
||||
// This is normally "struct proc".
|
||||
/// Address of proc.
|
||||
pub ki_paddr: *mut ::c_void,
|
||||
pub ki_paddr: *mut c_void,
|
||||
// This is normally "struct user".
|
||||
/// Kernel virtual address of u-area.
|
||||
pub ki_addr: *mut ::c_void,
|
||||
pub ki_addr: *mut c_void,
|
||||
// This is normally "struct vnode".
|
||||
/// Pointer to trace file.
|
||||
pub ki_tracep: *mut ::c_void,
|
||||
pub ki_tracep: *mut c_void,
|
||||
// This is normally "struct vnode".
|
||||
/// Pointer to executable file.
|
||||
pub ki_textvp: *mut ::c_void,
|
||||
pub ki_textvp: *mut c_void,
|
||||
// This is normally "struct filedesc".
|
||||
/// Pointer to open file info.
|
||||
pub ki_fd: *mut ::c_void,
|
||||
pub ki_fd: *mut c_void,
|
||||
// This is normally "struct vmspace".
|
||||
/// Pointer to kernel vmspace struct.
|
||||
pub ki_vmspace: *mut ::c_void,
|
||||
pub ki_vmspace: *mut c_void,
|
||||
/// Sleep address.
|
||||
pub ki_wchan: *const ::c_void,
|
||||
pub ki_wchan: *const c_void,
|
||||
/// Process identifier.
|
||||
pub ki_pid: ::pid_t,
|
||||
pub ki_pid: crate::pid_t,
|
||||
/// Parent process ID.
|
||||
pub ki_ppid: ::pid_t,
|
||||
pub ki_ppid: crate::pid_t,
|
||||
/// Process group ID.
|
||||
pub ki_pgid: ::pid_t,
|
||||
pub ki_pgid: crate::pid_t,
|
||||
/// tty process group ID.
|
||||
pub ki_tpgid: ::pid_t,
|
||||
pub ki_tpgid: crate::pid_t,
|
||||
/// Process session ID.
|
||||
pub ki_sid: ::pid_t,
|
||||
pub ki_sid: crate::pid_t,
|
||||
/// Terminal session ID.
|
||||
pub ki_tsid: ::pid_t,
|
||||
pub ki_tsid: crate::pid_t,
|
||||
/// Job control counter.
|
||||
pub ki_jobc: ::c_short,
|
||||
pub ki_jobc: c_short,
|
||||
/// Unused (just here for alignment).
|
||||
pub ki_spare_short1: ::c_short,
|
||||
pub ki_spare_short1: c_short,
|
||||
/// Controlling tty dev.
|
||||
pub ki_tdev_freebsd11: u32,
|
||||
/// Signals arrived but not delivered.
|
||||
pub ki_siglist: ::sigset_t,
|
||||
pub ki_siglist: crate::sigset_t,
|
||||
/// Current signal mask.
|
||||
pub ki_sigmask: ::sigset_t,
|
||||
pub ki_sigmask: crate::sigset_t,
|
||||
/// Signals being ignored.
|
||||
pub ki_sigignore: ::sigset_t,
|
||||
pub ki_sigignore: crate::sigset_t,
|
||||
/// Signals being caught by user.
|
||||
pub ki_sigcatch: ::sigset_t,
|
||||
pub ki_sigcatch: crate::sigset_t,
|
||||
/// Effective user ID.
|
||||
pub ki_uid: ::uid_t,
|
||||
pub ki_uid: crate::uid_t,
|
||||
/// Real user ID.
|
||||
pub ki_ruid: ::uid_t,
|
||||
pub ki_ruid: crate::uid_t,
|
||||
/// Saved effective user ID.
|
||||
pub ki_svuid: ::uid_t,
|
||||
pub ki_svuid: crate::uid_t,
|
||||
/// Real group ID.
|
||||
pub ki_rgid: ::gid_t,
|
||||
pub ki_rgid: crate::gid_t,
|
||||
/// Saved effective group ID.
|
||||
pub ki_svgid: ::gid_t,
|
||||
pub ki_svgid: crate::gid_t,
|
||||
/// Number of groups.
|
||||
pub ki_ngroups: ::c_short,
|
||||
pub ki_ngroups: c_short,
|
||||
/// Unused (just here for alignment).
|
||||
pub ki_spare_short2: ::c_short,
|
||||
pub ki_spare_short2: c_short,
|
||||
/// Groups.
|
||||
pub ki_groups: [::gid_t; ::KI_NGROUPS],
|
||||
pub ki_groups: [crate::gid_t; crate::KI_NGROUPS],
|
||||
/// Virtual size.
|
||||
pub ki_size: ::vm_size_t,
|
||||
pub ki_size: crate::vm_size_t,
|
||||
/// Current resident set size in pages.
|
||||
pub ki_rssize: ::segsz_t,
|
||||
pub ki_rssize: crate::segsz_t,
|
||||
/// Resident set size before last swap.
|
||||
pub ki_swrss: ::segsz_t,
|
||||
pub ki_swrss: crate::segsz_t,
|
||||
/// Text size (pages) XXX.
|
||||
pub ki_tsize: ::segsz_t,
|
||||
pub ki_tsize: crate::segsz_t,
|
||||
/// Data size (pages) XXX.
|
||||
pub ki_dsize: ::segsz_t,
|
||||
pub ki_dsize: crate::segsz_t,
|
||||
/// Stack size (pages).
|
||||
pub ki_ssize: ::segsz_t,
|
||||
pub ki_ssize: crate::segsz_t,
|
||||
/// Exit status for wait & stop signal.
|
||||
pub ki_xstat: ::u_short,
|
||||
pub ki_xstat: crate::u_short,
|
||||
/// Accounting flags.
|
||||
pub ki_acflag: ::u_short,
|
||||
pub ki_acflag: crate::u_short,
|
||||
/// %cpu for process during `ki_swtime`.
|
||||
pub ki_pctcpu: ::fixpt_t,
|
||||
pub ki_pctcpu: crate::fixpt_t,
|
||||
/// Time averaged value of `ki_cpticks`.
|
||||
pub ki_estcpu: ::u_int,
|
||||
pub ki_estcpu: crate::u_int,
|
||||
/// Time since last blocked.
|
||||
pub ki_slptime: ::u_int,
|
||||
pub ki_slptime: crate::u_int,
|
||||
/// Time swapped in or out.
|
||||
pub ki_swtime: ::u_int,
|
||||
pub ki_swtime: crate::u_int,
|
||||
/// Number of copy-on-write faults.
|
||||
pub ki_cow: ::u_int,
|
||||
pub ki_cow: crate::u_int,
|
||||
/// Real time in microsec.
|
||||
pub ki_runtime: u64,
|
||||
/// Starting time.
|
||||
pub ki_start: ::timeval,
|
||||
pub ki_start: crate::timeval,
|
||||
/// Time used by process children.
|
||||
pub ki_childtime: ::timeval,
|
||||
pub ki_childtime: crate::timeval,
|
||||
/// P_* flags.
|
||||
pub ki_flag: ::c_long,
|
||||
pub ki_flag: c_long,
|
||||
/// KI_* flags (below).
|
||||
pub ki_kiflag: ::c_long,
|
||||
pub ki_kiflag: c_long,
|
||||
/// Kernel trace points.
|
||||
pub ki_traceflag: ::c_int,
|
||||
pub ki_traceflag: c_int,
|
||||
/// S* process status.
|
||||
pub ki_stat: ::c_char,
|
||||
pub ki_stat: c_char,
|
||||
/// Process "nice" value.
|
||||
pub ki_nice: i8, // signed char
|
||||
/// Process lock (prevent swap) count.
|
||||
pub ki_lock: ::c_char,
|
||||
pub ki_lock: c_char,
|
||||
/// Run queue index.
|
||||
pub ki_rqindex: ::c_char,
|
||||
pub ki_rqindex: c_char,
|
||||
/// Which cpu we are on.
|
||||
pub ki_oncpu_old: ::c_uchar,
|
||||
pub ki_oncpu_old: c_uchar,
|
||||
/// Last cpu we were on.
|
||||
pub ki_lastcpu_old: ::c_uchar,
|
||||
pub ki_lastcpu_old: c_uchar,
|
||||
/// Thread name.
|
||||
pub ki_tdname: [::c_char; ::TDNAMLEN + 1],
|
||||
pub ki_tdname: [c_char; crate::TDNAMLEN + 1],
|
||||
/// Wchan message.
|
||||
pub ki_wmesg: [::c_char; ::WMESGLEN + 1],
|
||||
pub ki_wmesg: [c_char; crate::WMESGLEN + 1],
|
||||
/// Setlogin name.
|
||||
pub ki_login: [::c_char; ::LOGNAMELEN + 1],
|
||||
pub ki_login: [c_char; crate::LOGNAMELEN + 1],
|
||||
/// Lock name.
|
||||
pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1],
|
||||
pub ki_lockname: [c_char; crate::LOCKNAMELEN + 1],
|
||||
/// Command name.
|
||||
pub ki_comm: [::c_char; ::COMMLEN + 1],
|
||||
pub ki_comm: [c_char; crate::COMMLEN + 1],
|
||||
/// Emulation name.
|
||||
pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1],
|
||||
pub ki_emul: [c_char; crate::KI_EMULNAMELEN + 1],
|
||||
/// Login class.
|
||||
pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1],
|
||||
pub ki_loginclass: [c_char; crate::LOGINCLASSLEN + 1],
|
||||
/// More thread name.
|
||||
pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1],
|
||||
pub ki_moretdname: [c_char; crate::MAXCOMLEN - crate::TDNAMLEN + 1],
|
||||
/// Spare string space.
|
||||
pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq
|
||||
pub ki_sparestrings: [[c_char; 23]; 2], // little hack to allow PartialEq
|
||||
/// Spare room for growth.
|
||||
pub ki_spareints: [::c_int; ::KI_NSPARE_INT],
|
||||
pub ki_spareints: [c_int; crate::KI_NSPARE_INT],
|
||||
/// Controlling tty dev.
|
||||
pub ki_tdev: u64,
|
||||
/// Which cpu we are on.
|
||||
pub ki_oncpu: ::c_int,
|
||||
pub ki_oncpu: c_int,
|
||||
/// Last cpu we were on.
|
||||
pub ki_lastcpu: ::c_int,
|
||||
pub ki_lastcpu: c_int,
|
||||
/// PID of tracing process.
|
||||
pub ki_tracer: ::c_int,
|
||||
pub ki_tracer: c_int,
|
||||
/// P2_* flags.
|
||||
pub ki_flag2: ::c_int,
|
||||
pub ki_flag2: c_int,
|
||||
/// Default FIB number.
|
||||
pub ki_fibnum: ::c_int,
|
||||
pub ki_fibnum: c_int,
|
||||
/// Credential flags.
|
||||
pub ki_cr_flags: ::u_int,
|
||||
pub ki_cr_flags: crate::u_int,
|
||||
/// Process jail ID.
|
||||
pub ki_jid: ::c_int,
|
||||
pub ki_jid: c_int,
|
||||
/// Number of threads in total.
|
||||
pub ki_numthreads: ::c_int,
|
||||
pub ki_numthreads: c_int,
|
||||
/// Thread ID.
|
||||
pub ki_tid: ::lwpid_t,
|
||||
pub ki_tid: crate::lwpid_t,
|
||||
/// Process priority.
|
||||
pub ki_pri: ::priority,
|
||||
pub ki_pri: crate::priority,
|
||||
/// Process rusage statistics.
|
||||
pub ki_rusage: ::rusage,
|
||||
pub ki_rusage: crate::rusage,
|
||||
/// rusage of children processes.
|
||||
pub ki_rusage_ch: ::rusage,
|
||||
pub ki_rusage_ch: crate::rusage,
|
||||
// This is normally "struct pcb".
|
||||
/// Kernel virtual addr of pcb.
|
||||
pub ki_pcb: *mut ::c_void,
|
||||
pub ki_pcb: *mut c_void,
|
||||
/// Kernel virtual addr of stack.
|
||||
pub ki_kstack: *mut ::c_void,
|
||||
pub ki_kstack: *mut c_void,
|
||||
/// User convenience pointer.
|
||||
pub ki_udata: *mut ::c_void,
|
||||
pub ki_udata: *mut c_void,
|
||||
// This is normally "struct thread".
|
||||
pub ki_tdaddr: *mut ::c_void,
|
||||
pub ki_tdaddr: *mut c_void,
|
||||
// This is normally "struct pwddesc".
|
||||
/// Pointer to process paths info.
|
||||
pub ki_pd: *mut ::c_void,
|
||||
pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR],
|
||||
pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG],
|
||||
pub ki_pd: *mut c_void,
|
||||
pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR],
|
||||
pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG],
|
||||
/// PS_* flags.
|
||||
pub ki_sflag: ::c_long,
|
||||
pub ki_sflag: c_long,
|
||||
/// kthread flag.
|
||||
pub ki_tdflags: ::c_long,
|
||||
pub ki_tdflags: c_long,
|
||||
}
|
||||
|
||||
pub struct stat {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
st_padding0: i16,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
st_padding1: i32,
|
||||
pub st_rdev: ::dev_t,
|
||||
pub st_rdev: crate::dev_t,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_atim_ext: i32,
|
||||
pub st_atime: ::time_t,
|
||||
pub st_atime_nsec: ::c_long,
|
||||
pub st_atime: crate::time_t,
|
||||
pub st_atime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_mtim_ext: i32,
|
||||
pub st_mtime: ::time_t,
|
||||
pub st_mtime_nsec: ::c_long,
|
||||
pub st_mtime: crate::time_t,
|
||||
pub st_mtime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_ctim_ext: i32,
|
||||
pub st_ctime: ::time_t,
|
||||
pub st_ctime_nsec: ::c_long,
|
||||
pub st_ctime: crate::time_t,
|
||||
pub st_ctime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_btim_ext: i32,
|
||||
pub st_birthtime: ::time_t,
|
||||
pub st_birthtime_nsec: ::c_long,
|
||||
pub st_size: ::off_t,
|
||||
pub st_blocks: ::blkcnt_t,
|
||||
pub st_blksize: ::blksize_t,
|
||||
pub st_flags: ::fflags_t,
|
||||
pub st_birthtime: crate::time_t,
|
||||
pub st_birthtime_nsec: c_long,
|
||||
pub st_size: off_t,
|
||||
pub st_blocks: crate::blkcnt_t,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
pub st_flags: crate::fflags_t,
|
||||
pub st_gen: u64,
|
||||
pub st_spare: [u64; 10],
|
||||
}
|
||||
@@ -266,14 +272,14 @@ s! {
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct dirent {
|
||||
pub d_fileno: ::ino_t,
|
||||
pub d_off: ::off_t,
|
||||
pub d_fileno: crate::ino_t,
|
||||
pub d_off: off_t,
|
||||
pub d_reclen: u16,
|
||||
pub d_type: u8,
|
||||
d_pad0: u8,
|
||||
pub d_namlen: u16,
|
||||
d_pad1: u16,
|
||||
pub d_name: [::c_char; 256],
|
||||
pub d_name: [c_char; 256],
|
||||
}
|
||||
|
||||
pub struct statfs {
|
||||
@@ -293,12 +299,12 @@ s_no_extra_traits! {
|
||||
pub f_asyncreads: u64,
|
||||
f_spare: [u64; 10],
|
||||
pub f_namemax: u32,
|
||||
pub f_owner: ::uid_t,
|
||||
pub f_fsid: ::fsid_t,
|
||||
f_charspare: [::c_char; 80],
|
||||
pub f_fstypename: [::c_char; 16],
|
||||
pub f_mntfromname: [::c_char; 1024],
|
||||
pub f_mntonname: [::c_char; 1024],
|
||||
pub f_owner: crate::uid_t,
|
||||
pub f_fsid: crate::fsid_t,
|
||||
f_charspare: [c_char; 80],
|
||||
pub f_fstypename: [c_char; 16],
|
||||
pub f_mntfromname: [c_char; 1024],
|
||||
pub f_mntonname: [c_char; 1024],
|
||||
}
|
||||
|
||||
pub struct vnstat {
|
||||
@@ -306,10 +312,10 @@ s_no_extra_traits! {
|
||||
pub vn_size: u64,
|
||||
pub vn_dev: u64,
|
||||
pub vn_fsid: u64,
|
||||
pub vn_mntdir: *mut ::c_char,
|
||||
pub vn_type: ::c_int,
|
||||
pub vn_mntdir: *mut c_char,
|
||||
pub vn_type: c_int,
|
||||
pub vn_mode: u16,
|
||||
pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1],
|
||||
pub vn_devname: [c_char; crate::SPECNAMELEN as usize + 1],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -348,8 +354,8 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
impl Eq for statfs {}
|
||||
impl ::fmt::Debug for statfs {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for statfs {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("statfs")
|
||||
.field("f_bsize", &self.f_bsize)
|
||||
.field("f_iosize", &self.f_iosize)
|
||||
@@ -371,8 +377,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for statfs {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for statfs {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.f_version.hash(state);
|
||||
self.f_type.hash(state);
|
||||
self.f_flags.hash(state);
|
||||
@@ -404,16 +410,15 @@ cfg_if! {
|
||||
&& self.d_reclen == other.d_reclen
|
||||
&& self.d_type == other.d_type
|
||||
&& self.d_namlen == other.d_namlen
|
||||
&& self
|
||||
.d_name[..self.d_namlen as _]
|
||||
&& self.d_name[..self.d_namlen as _]
|
||||
.iter()
|
||||
.zip(other.d_name.iter())
|
||||
.all(|(a, b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for dirent {}
|
||||
impl ::fmt::Debug for dirent {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for dirent {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("dirent")
|
||||
.field("d_fileno", &self.d_fileno)
|
||||
.field("d_off", &self.d_off)
|
||||
@@ -424,8 +429,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for dirent {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for dirent {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.d_fileno.hash(state);
|
||||
self.d_off.hash(state);
|
||||
self.d_reclen.hash(state);
|
||||
@@ -437,23 +442,23 @@ cfg_if! {
|
||||
|
||||
impl PartialEq for vnstat {
|
||||
fn eq(&self, other: &vnstat) -> bool {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
let other_vn_devname: &[::c_char] = &other.vn_devname;
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
let other_vn_devname: &[c_char] = &other.vn_devname;
|
||||
|
||||
self.vn_fileid == other.vn_fileid &&
|
||||
self.vn_size == other.vn_size &&
|
||||
self.vn_dev == other.vn_dev &&
|
||||
self.vn_fsid == other.vn_fsid &&
|
||||
self.vn_mntdir == other.vn_mntdir &&
|
||||
self.vn_type == other.vn_type &&
|
||||
self.vn_mode == other.vn_mode &&
|
||||
self_vn_devname == other_vn_devname
|
||||
self.vn_fileid == other.vn_fileid
|
||||
&& self.vn_size == other.vn_size
|
||||
&& self.vn_dev == other.vn_dev
|
||||
&& self.vn_fsid == other.vn_fsid
|
||||
&& self.vn_mntdir == other.vn_mntdir
|
||||
&& self.vn_type == other.vn_type
|
||||
&& self.vn_mode == other.vn_mode
|
||||
&& self_vn_devname == other_vn_devname
|
||||
}
|
||||
}
|
||||
impl Eq for vnstat {}
|
||||
impl ::fmt::Debug for vnstat {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
impl fmt::Debug for vnstat {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
|
||||
f.debug_struct("vnstat")
|
||||
.field("vn_fileid", &self.vn_fileid)
|
||||
@@ -467,9 +472,9 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for vnstat {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
impl hash::Hash for vnstat {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
|
||||
self.vn_fileid.hash(state);
|
||||
self.vn_size.hash(state);
|
||||
@@ -484,28 +489,28 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
|
||||
pub const RAND_MAX: ::c_int = 0x7fff_ffff;
|
||||
pub const ELAST: ::c_int = 97;
|
||||
pub const RAND_MAX: c_int = 0x7fff_ffff;
|
||||
pub const ELAST: c_int = 97;
|
||||
|
||||
pub const KF_TYPE_EVENTFD: ::c_int = 13;
|
||||
pub const KF_TYPE_EVENTFD: c_int = 13;
|
||||
|
||||
/// max length of devicename
|
||||
pub const SPECNAMELEN: ::c_int = 255;
|
||||
pub const SPECNAMELEN: c_int = 255;
|
||||
pub const KI_NSPARE_PTR: usize = 5;
|
||||
|
||||
/// domainset policies
|
||||
pub const DOMAINSET_POLICY_INVALID: ::c_int = 0;
|
||||
pub const DOMAINSET_POLICY_ROUNDROBIN: ::c_int = 1;
|
||||
pub const DOMAINSET_POLICY_FIRSTTOUCH: ::c_int = 2;
|
||||
pub const DOMAINSET_POLICY_PREFER: ::c_int = 3;
|
||||
pub const DOMAINSET_POLICY_INTERLEAVE: ::c_int = 4;
|
||||
pub const DOMAINSET_POLICY_INVALID: c_int = 0;
|
||||
pub const DOMAINSET_POLICY_ROUNDROBIN: c_int = 1;
|
||||
pub const DOMAINSET_POLICY_FIRSTTOUCH: c_int = 2;
|
||||
pub const DOMAINSET_POLICY_PREFER: c_int = 3;
|
||||
pub const DOMAINSET_POLICY_INTERLEAVE: c_int = 4;
|
||||
|
||||
pub const MINCORE_SUPER: ::c_int = 0x20;
|
||||
pub const MINCORE_SUPER: c_int = 0x20;
|
||||
|
||||
safe_f! {
|
||||
pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t {
|
||||
let major = major as ::dev_t;
|
||||
let minor = minor as ::dev_t;
|
||||
pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
|
||||
let major = major as crate::dev_t;
|
||||
let minor = minor as crate::dev_t;
|
||||
let mut dev = 0;
|
||||
dev |= ((major & 0xffffff00) as dev_t) << 32;
|
||||
dev |= ((major & 0x000000ff) as dev_t) << 8;
|
||||
@@ -513,54 +518,52 @@ safe_f! {
|
||||
dev |= ((minor & 0xffff00ff) as dev_t) << 0;
|
||||
dev
|
||||
}
|
||||
|
||||
pub {const} fn major(dev: crate::dev_t) -> c_int {
|
||||
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int
|
||||
}
|
||||
|
||||
f! {
|
||||
pub fn major(dev: ::dev_t) -> ::c_int {
|
||||
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int
|
||||
}
|
||||
|
||||
pub fn minor(dev: ::dev_t) -> ::c_int {
|
||||
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int
|
||||
pub {const} fn minor(dev: crate::dev_t) -> c_int {
|
||||
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
pub fn setgrent();
|
||||
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
|
||||
pub fn freelocale(loc: ::locale_t);
|
||||
pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int;
|
||||
pub fn freelocale(loc: crate::locale_t);
|
||||
pub fn msgrcv(
|
||||
msqid: ::c_int,
|
||||
msgp: *mut ::c_void,
|
||||
msgsz: ::size_t,
|
||||
msgtyp: ::c_long,
|
||||
msgflg: ::c_int,
|
||||
) -> ::ssize_t;
|
||||
msqid: c_int,
|
||||
msgp: *mut c_void,
|
||||
msgsz: size_t,
|
||||
msgtyp: c_long,
|
||||
msgflg: c_int,
|
||||
) -> ssize_t;
|
||||
|
||||
pub fn cpuset_getdomain(
|
||||
level: ::cpulevel_t,
|
||||
which: ::cpuwhich_t,
|
||||
id: ::id_t,
|
||||
setsize: ::size_t,
|
||||
mask: *mut ::domainset_t,
|
||||
policy: *mut ::c_int,
|
||||
) -> ::c_int;
|
||||
level: crate::cpulevel_t,
|
||||
which: crate::cpuwhich_t,
|
||||
id: crate::id_t,
|
||||
setsize: size_t,
|
||||
mask: *mut crate::domainset_t,
|
||||
policy: *mut c_int,
|
||||
) -> c_int;
|
||||
pub fn cpuset_setdomain(
|
||||
level: ::cpulevel_t,
|
||||
which: ::cpuwhich_t,
|
||||
id: ::id_t,
|
||||
setsize: ::size_t,
|
||||
mask: *const ::domainset_t,
|
||||
policy: ::c_int,
|
||||
) -> ::c_int;
|
||||
level: crate::cpulevel_t,
|
||||
which: crate::cpuwhich_t,
|
||||
id: crate::id_t,
|
||||
setsize: size_t,
|
||||
mask: *const crate::domainset_t,
|
||||
policy: c_int,
|
||||
) -> c_int;
|
||||
|
||||
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
|
||||
pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
|
||||
pub fn dirname(path: *mut c_char) -> *mut c_char;
|
||||
pub fn basename(path: *mut c_char) -> *mut c_char;
|
||||
}
|
||||
|
||||
#[link(name = "kvm")]
|
||||
extern "C" {
|
||||
pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t;
|
||||
pub fn kvm_kerndisp(kd: *mut crate::kvm_t) -> crate::kssize_t;
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN;
|
||||
pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1;
|
||||
pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2;
|
||||
pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1;
|
||||
pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub const PROC_KPTI_CTL: c_int = crate::PROC_PROCCTL_MD_MIN;
|
||||
pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: c_int = 1;
|
||||
pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: c_int = 2;
|
||||
pub const PROC_KPTI_STATUS: c_int = crate::PROC_PROCCTL_MD_MIN + 1;
|
||||
pub const PROC_KPTI_STATUS_ACTIVE: c_int = 0x80000000;
|
||||
|
||||
@@ -1,264 +1,270 @@
|
||||
use crate::off_t;
|
||||
use crate::prelude::*;
|
||||
|
||||
// APIs in FreeBSD 14 that have changed since 11.
|
||||
|
||||
pub type nlink_t = u64;
|
||||
pub type dev_t = u64;
|
||||
pub type ino_t = u64;
|
||||
pub type shmatt_t = ::c_uint;
|
||||
pub type shmatt_t = c_uint;
|
||||
pub type kpaddr_t = u64;
|
||||
pub type kssize_t = i64;
|
||||
pub type domainset_t = __c_anonymous_domainset;
|
||||
|
||||
s! {
|
||||
pub struct shmid_ds {
|
||||
pub shm_perm: ::ipc_perm,
|
||||
pub shm_segsz: ::size_t,
|
||||
pub shm_lpid: ::pid_t,
|
||||
pub shm_cpid: ::pid_t,
|
||||
pub shm_nattch: ::shmatt_t,
|
||||
pub shm_atime: ::time_t,
|
||||
pub shm_dtime: ::time_t,
|
||||
pub shm_ctime: ::time_t,
|
||||
pub shm_perm: crate::ipc_perm,
|
||||
pub shm_segsz: size_t,
|
||||
pub shm_lpid: crate::pid_t,
|
||||
pub shm_cpid: crate::pid_t,
|
||||
pub shm_nattch: crate::shmatt_t,
|
||||
pub shm_atime: crate::time_t,
|
||||
pub shm_dtime: crate::time_t,
|
||||
pub shm_ctime: crate::time_t,
|
||||
}
|
||||
|
||||
pub struct kevent {
|
||||
pub ident: ::uintptr_t,
|
||||
pub filter: ::c_short,
|
||||
pub flags: ::c_ushort,
|
||||
pub fflags: ::c_uint,
|
||||
pub ident: crate::uintptr_t,
|
||||
pub filter: c_short,
|
||||
pub flags: c_ushort,
|
||||
pub fflags: c_uint,
|
||||
pub data: i64,
|
||||
pub udata: *mut ::c_void,
|
||||
pub udata: *mut c_void,
|
||||
pub ext: [u64; 4],
|
||||
}
|
||||
|
||||
pub struct kvm_page {
|
||||
pub kp_version: ::u_int,
|
||||
pub kp_paddr: ::kpaddr_t,
|
||||
pub kp_kmap_vaddr: ::kvaddr_t,
|
||||
pub kp_dmap_vaddr: ::kvaddr_t,
|
||||
pub kp_prot: ::vm_prot_t,
|
||||
pub kp_offset: ::off_t,
|
||||
pub kp_len: ::size_t,
|
||||
pub kp_version: crate::u_int,
|
||||
pub kp_paddr: crate::kpaddr_t,
|
||||
pub kp_kmap_vaddr: crate::kvaddr_t,
|
||||
pub kp_dmap_vaddr: crate::kvaddr_t,
|
||||
pub kp_prot: crate::vm_prot_t,
|
||||
pub kp_offset: off_t,
|
||||
pub kp_len: size_t,
|
||||
}
|
||||
|
||||
pub struct __c_anonymous_domainset {
|
||||
_priv: [::uintptr_t; 4],
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
_priv: [c_ulong; 4],
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
_priv: [c_ulong; 8],
|
||||
}
|
||||
|
||||
pub struct kinfo_proc {
|
||||
/// Size of this structure.
|
||||
pub ki_structsize: ::c_int,
|
||||
pub ki_structsize: c_int,
|
||||
/// Reserved: layout identifier.
|
||||
pub ki_layout: ::c_int,
|
||||
pub ki_layout: c_int,
|
||||
/// Address of command arguments.
|
||||
pub ki_args: *mut ::pargs,
|
||||
pub ki_args: *mut crate::pargs,
|
||||
// This is normally "struct proc".
|
||||
/// Address of proc.
|
||||
pub ki_paddr: *mut ::c_void,
|
||||
pub ki_paddr: *mut c_void,
|
||||
// This is normally "struct user".
|
||||
/// Kernel virtual address of u-area.
|
||||
pub ki_addr: *mut ::c_void,
|
||||
pub ki_addr: *mut c_void,
|
||||
// This is normally "struct vnode".
|
||||
/// Pointer to trace file.
|
||||
pub ki_tracep: *mut ::c_void,
|
||||
pub ki_tracep: *mut c_void,
|
||||
// This is normally "struct vnode".
|
||||
/// Pointer to executable file.
|
||||
pub ki_textvp: *mut ::c_void,
|
||||
pub ki_textvp: *mut c_void,
|
||||
// This is normally "struct filedesc".
|
||||
/// Pointer to open file info.
|
||||
pub ki_fd: *mut ::c_void,
|
||||
pub ki_fd: *mut c_void,
|
||||
// This is normally "struct vmspace".
|
||||
/// Pointer to kernel vmspace struct.
|
||||
pub ki_vmspace: *mut ::c_void,
|
||||
pub ki_vmspace: *mut c_void,
|
||||
/// Sleep address.
|
||||
pub ki_wchan: *const ::c_void,
|
||||
pub ki_wchan: *const c_void,
|
||||
/// Process identifier.
|
||||
pub ki_pid: ::pid_t,
|
||||
pub ki_pid: crate::pid_t,
|
||||
/// Parent process ID.
|
||||
pub ki_ppid: ::pid_t,
|
||||
pub ki_ppid: crate::pid_t,
|
||||
/// Process group ID.
|
||||
pub ki_pgid: ::pid_t,
|
||||
pub ki_pgid: crate::pid_t,
|
||||
/// tty process group ID.
|
||||
pub ki_tpgid: ::pid_t,
|
||||
pub ki_tpgid: crate::pid_t,
|
||||
/// Process session ID.
|
||||
pub ki_sid: ::pid_t,
|
||||
pub ki_sid: crate::pid_t,
|
||||
/// Terminal session ID.
|
||||
pub ki_tsid: ::pid_t,
|
||||
pub ki_tsid: crate::pid_t,
|
||||
/// Job control counter.
|
||||
pub ki_jobc: ::c_short,
|
||||
pub ki_jobc: c_short,
|
||||
/// Unused (just here for alignment).
|
||||
pub ki_spare_short1: ::c_short,
|
||||
pub ki_spare_short1: c_short,
|
||||
/// Controlling tty dev.
|
||||
pub ki_tdev_freebsd11: u32,
|
||||
/// Signals arrived but not delivered.
|
||||
pub ki_siglist: ::sigset_t,
|
||||
pub ki_siglist: crate::sigset_t,
|
||||
/// Current signal mask.
|
||||
pub ki_sigmask: ::sigset_t,
|
||||
pub ki_sigmask: crate::sigset_t,
|
||||
/// Signals being ignored.
|
||||
pub ki_sigignore: ::sigset_t,
|
||||
pub ki_sigignore: crate::sigset_t,
|
||||
/// Signals being caught by user.
|
||||
pub ki_sigcatch: ::sigset_t,
|
||||
pub ki_sigcatch: crate::sigset_t,
|
||||
/// Effective user ID.
|
||||
pub ki_uid: ::uid_t,
|
||||
pub ki_uid: crate::uid_t,
|
||||
/// Real user ID.
|
||||
pub ki_ruid: ::uid_t,
|
||||
pub ki_ruid: crate::uid_t,
|
||||
/// Saved effective user ID.
|
||||
pub ki_svuid: ::uid_t,
|
||||
pub ki_svuid: crate::uid_t,
|
||||
/// Real group ID.
|
||||
pub ki_rgid: ::gid_t,
|
||||
pub ki_rgid: crate::gid_t,
|
||||
/// Saved effective group ID.
|
||||
pub ki_svgid: ::gid_t,
|
||||
pub ki_svgid: crate::gid_t,
|
||||
/// Number of groups.
|
||||
pub ki_ngroups: ::c_short,
|
||||
pub ki_ngroups: c_short,
|
||||
/// Unused (just here for alignment).
|
||||
pub ki_spare_short2: ::c_short,
|
||||
pub ki_spare_short2: c_short,
|
||||
/// Groups.
|
||||
pub ki_groups: [::gid_t; ::KI_NGROUPS],
|
||||
pub ki_groups: [crate::gid_t; crate::KI_NGROUPS],
|
||||
/// Virtual size.
|
||||
pub ki_size: ::vm_size_t,
|
||||
pub ki_size: crate::vm_size_t,
|
||||
/// Current resident set size in pages.
|
||||
pub ki_rssize: ::segsz_t,
|
||||
pub ki_rssize: crate::segsz_t,
|
||||
/// Resident set size before last swap.
|
||||
pub ki_swrss: ::segsz_t,
|
||||
pub ki_swrss: crate::segsz_t,
|
||||
/// Text size (pages) XXX.
|
||||
pub ki_tsize: ::segsz_t,
|
||||
pub ki_tsize: crate::segsz_t,
|
||||
/// Data size (pages) XXX.
|
||||
pub ki_dsize: ::segsz_t,
|
||||
pub ki_dsize: crate::segsz_t,
|
||||
/// Stack size (pages).
|
||||
pub ki_ssize: ::segsz_t,
|
||||
pub ki_ssize: crate::segsz_t,
|
||||
/// Exit status for wait & stop signal.
|
||||
pub ki_xstat: ::u_short,
|
||||
pub ki_xstat: crate::u_short,
|
||||
/// Accounting flags.
|
||||
pub ki_acflag: ::u_short,
|
||||
pub ki_acflag: crate::u_short,
|
||||
/// %cpu for process during `ki_swtime`.
|
||||
pub ki_pctcpu: ::fixpt_t,
|
||||
pub ki_pctcpu: crate::fixpt_t,
|
||||
/// Time averaged value of `ki_cpticks`.
|
||||
pub ki_estcpu: ::u_int,
|
||||
pub ki_estcpu: crate::u_int,
|
||||
/// Time since last blocked.
|
||||
pub ki_slptime: ::u_int,
|
||||
pub ki_slptime: crate::u_int,
|
||||
/// Time swapped in or out.
|
||||
pub ki_swtime: ::u_int,
|
||||
pub ki_swtime: crate::u_int,
|
||||
/// Number of copy-on-write faults.
|
||||
pub ki_cow: ::u_int,
|
||||
pub ki_cow: crate::u_int,
|
||||
/// Real time in microsec.
|
||||
pub ki_runtime: u64,
|
||||
/// Starting time.
|
||||
pub ki_start: ::timeval,
|
||||
pub ki_start: crate::timeval,
|
||||
/// Time used by process children.
|
||||
pub ki_childtime: ::timeval,
|
||||
pub ki_childtime: crate::timeval,
|
||||
/// P_* flags.
|
||||
pub ki_flag: ::c_long,
|
||||
pub ki_flag: c_long,
|
||||
/// KI_* flags (below).
|
||||
pub ki_kiflag: ::c_long,
|
||||
pub ki_kiflag: c_long,
|
||||
/// Kernel trace points.
|
||||
pub ki_traceflag: ::c_int,
|
||||
pub ki_traceflag: c_int,
|
||||
/// S* process status.
|
||||
pub ki_stat: ::c_char,
|
||||
pub ki_stat: c_char,
|
||||
/// Process "nice" value.
|
||||
pub ki_nice: i8, // signed char
|
||||
/// Process lock (prevent swap) count.
|
||||
pub ki_lock: ::c_char,
|
||||
pub ki_lock: c_char,
|
||||
/// Run queue index.
|
||||
pub ki_rqindex: ::c_char,
|
||||
pub ki_rqindex: c_char,
|
||||
/// Which cpu we are on.
|
||||
pub ki_oncpu_old: ::c_uchar,
|
||||
pub ki_oncpu_old: c_uchar,
|
||||
/// Last cpu we were on.
|
||||
pub ki_lastcpu_old: ::c_uchar,
|
||||
pub ki_lastcpu_old: c_uchar,
|
||||
/// Thread name.
|
||||
pub ki_tdname: [::c_char; ::TDNAMLEN + 1],
|
||||
pub ki_tdname: [c_char; crate::TDNAMLEN + 1],
|
||||
/// Wchan message.
|
||||
pub ki_wmesg: [::c_char; ::WMESGLEN + 1],
|
||||
pub ki_wmesg: [c_char; crate::WMESGLEN + 1],
|
||||
/// Setlogin name.
|
||||
pub ki_login: [::c_char; ::LOGNAMELEN + 1],
|
||||
pub ki_login: [c_char; crate::LOGNAMELEN + 1],
|
||||
/// Lock name.
|
||||
pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1],
|
||||
pub ki_lockname: [c_char; crate::LOCKNAMELEN + 1],
|
||||
/// Command name.
|
||||
pub ki_comm: [::c_char; ::COMMLEN + 1],
|
||||
pub ki_comm: [c_char; crate::COMMLEN + 1],
|
||||
/// Emulation name.
|
||||
pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1],
|
||||
pub ki_emul: [c_char; crate::KI_EMULNAMELEN + 1],
|
||||
/// Login class.
|
||||
pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1],
|
||||
pub ki_loginclass: [c_char; crate::LOGINCLASSLEN + 1],
|
||||
/// More thread name.
|
||||
pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1],
|
||||
pub ki_moretdname: [c_char; crate::MAXCOMLEN - crate::TDNAMLEN + 1],
|
||||
/// Spare string space.
|
||||
pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq
|
||||
pub ki_sparestrings: [[c_char; 23]; 2], // little hack to allow PartialEq
|
||||
/// Spare room for growth.
|
||||
pub ki_spareints: [::c_int; ::KI_NSPARE_INT],
|
||||
pub ki_spareints: [c_int; crate::KI_NSPARE_INT],
|
||||
/// Controlling tty dev.
|
||||
pub ki_tdev: u64,
|
||||
/// Which cpu we are on.
|
||||
pub ki_oncpu: ::c_int,
|
||||
pub ki_oncpu: c_int,
|
||||
/// Last cpu we were on.
|
||||
pub ki_lastcpu: ::c_int,
|
||||
pub ki_lastcpu: c_int,
|
||||
/// PID of tracing process.
|
||||
pub ki_tracer: ::c_int,
|
||||
pub ki_tracer: c_int,
|
||||
/// P2_* flags.
|
||||
pub ki_flag2: ::c_int,
|
||||
pub ki_flag2: c_int,
|
||||
/// Default FIB number.
|
||||
pub ki_fibnum: ::c_int,
|
||||
pub ki_fibnum: c_int,
|
||||
/// Credential flags.
|
||||
pub ki_cr_flags: ::u_int,
|
||||
pub ki_cr_flags: crate::u_int,
|
||||
/// Process jail ID.
|
||||
pub ki_jid: ::c_int,
|
||||
pub ki_jid: c_int,
|
||||
/// Number of threads in total.
|
||||
pub ki_numthreads: ::c_int,
|
||||
pub ki_numthreads: c_int,
|
||||
/// Thread ID.
|
||||
pub ki_tid: ::lwpid_t,
|
||||
pub ki_tid: crate::lwpid_t,
|
||||
/// Process priority.
|
||||
pub ki_pri: ::priority,
|
||||
pub ki_pri: crate::priority,
|
||||
/// Process rusage statistics.
|
||||
pub ki_rusage: ::rusage,
|
||||
pub ki_rusage: crate::rusage,
|
||||
/// rusage of children processes.
|
||||
pub ki_rusage_ch: ::rusage,
|
||||
pub ki_rusage_ch: crate::rusage,
|
||||
// This is normally "struct pcb".
|
||||
/// Kernel virtual addr of pcb.
|
||||
pub ki_pcb: *mut ::c_void,
|
||||
pub ki_pcb: *mut c_void,
|
||||
/// Kernel virtual addr of stack.
|
||||
pub ki_kstack: *mut ::c_void,
|
||||
pub ki_kstack: *mut c_void,
|
||||
/// User convenience pointer.
|
||||
pub ki_udata: *mut ::c_void,
|
||||
pub ki_udata: *mut c_void,
|
||||
// This is normally "struct thread".
|
||||
pub ki_tdaddr: *mut ::c_void,
|
||||
pub ki_tdaddr: *mut c_void,
|
||||
// This is normally "struct pwddesc".
|
||||
/// Pointer to process paths info.
|
||||
pub ki_pd: *mut ::c_void,
|
||||
pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR],
|
||||
pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG],
|
||||
pub ki_pd: *mut c_void,
|
||||
pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR],
|
||||
pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG],
|
||||
/// PS_* flags.
|
||||
pub ki_sflag: ::c_long,
|
||||
pub ki_sflag: c_long,
|
||||
/// kthread flag.
|
||||
pub ki_tdflags: ::c_long,
|
||||
pub ki_tdflags: c_long,
|
||||
}
|
||||
|
||||
pub struct stat {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
st_padding0: i16,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
st_padding1: i32,
|
||||
pub st_rdev: ::dev_t,
|
||||
pub st_rdev: crate::dev_t,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_atim_ext: i32,
|
||||
pub st_atime: ::time_t,
|
||||
pub st_atime_nsec: ::c_long,
|
||||
pub st_atime: crate::time_t,
|
||||
pub st_atime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_mtim_ext: i32,
|
||||
pub st_mtime: ::time_t,
|
||||
pub st_mtime_nsec: ::c_long,
|
||||
pub st_mtime: crate::time_t,
|
||||
pub st_mtime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_ctim_ext: i32,
|
||||
pub st_ctime: ::time_t,
|
||||
pub st_ctime_nsec: ::c_long,
|
||||
pub st_ctime: crate::time_t,
|
||||
pub st_ctime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_btim_ext: i32,
|
||||
pub st_birthtime: ::time_t,
|
||||
pub st_birthtime_nsec: ::c_long,
|
||||
pub st_size: ::off_t,
|
||||
pub st_blocks: ::blkcnt_t,
|
||||
pub st_blksize: ::blksize_t,
|
||||
pub st_flags: ::fflags_t,
|
||||
pub st_birthtime: crate::time_t,
|
||||
pub st_birthtime_nsec: c_long,
|
||||
pub st_size: off_t,
|
||||
pub st_blocks: crate::blkcnt_t,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
pub st_flags: crate::fflags_t,
|
||||
pub st_gen: u64,
|
||||
pub st_spare: [u64; 10],
|
||||
}
|
||||
@@ -266,14 +272,14 @@ s! {
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct dirent {
|
||||
pub d_fileno: ::ino_t,
|
||||
pub d_off: ::off_t,
|
||||
pub d_fileno: crate::ino_t,
|
||||
pub d_off: off_t,
|
||||
pub d_reclen: u16,
|
||||
pub d_type: u8,
|
||||
d_pad0: u8,
|
||||
pub d_namlen: u16,
|
||||
d_pad1: u16,
|
||||
pub d_name: [::c_char; 256],
|
||||
pub d_name: [c_char; 256],
|
||||
}
|
||||
|
||||
pub struct statfs {
|
||||
@@ -293,12 +299,12 @@ s_no_extra_traits! {
|
||||
pub f_asyncreads: u64,
|
||||
f_spare: [u64; 10],
|
||||
pub f_namemax: u32,
|
||||
pub f_owner: ::uid_t,
|
||||
pub f_fsid: ::fsid_t,
|
||||
f_charspare: [::c_char; 80],
|
||||
pub f_fstypename: [::c_char; 16],
|
||||
pub f_mntfromname: [::c_char; 1024],
|
||||
pub f_mntonname: [::c_char; 1024],
|
||||
pub f_owner: crate::uid_t,
|
||||
pub f_fsid: crate::fsid_t,
|
||||
f_charspare: [c_char; 80],
|
||||
pub f_fstypename: [c_char; 16],
|
||||
pub f_mntfromname: [c_char; 1024],
|
||||
pub f_mntonname: [c_char; 1024],
|
||||
}
|
||||
|
||||
pub struct vnstat {
|
||||
@@ -306,10 +312,10 @@ s_no_extra_traits! {
|
||||
pub vn_size: u64,
|
||||
pub vn_dev: u64,
|
||||
pub vn_fsid: u64,
|
||||
pub vn_mntdir: *mut ::c_char,
|
||||
pub vn_type: ::c_int,
|
||||
pub vn_mntdir: *mut c_char,
|
||||
pub vn_type: c_int,
|
||||
pub vn_mode: u16,
|
||||
pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1],
|
||||
pub vn_devname: [c_char; crate::SPECNAMELEN as usize + 1],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -348,8 +354,8 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
impl Eq for statfs {}
|
||||
impl ::fmt::Debug for statfs {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for statfs {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("statfs")
|
||||
.field("f_bsize", &self.f_bsize)
|
||||
.field("f_iosize", &self.f_iosize)
|
||||
@@ -371,8 +377,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for statfs {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for statfs {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.f_version.hash(state);
|
||||
self.f_type.hash(state);
|
||||
self.f_flags.hash(state);
|
||||
@@ -404,16 +410,15 @@ cfg_if! {
|
||||
&& self.d_reclen == other.d_reclen
|
||||
&& self.d_type == other.d_type
|
||||
&& self.d_namlen == other.d_namlen
|
||||
&& self
|
||||
.d_name[..self.d_namlen as _]
|
||||
&& self.d_name[..self.d_namlen as _]
|
||||
.iter()
|
||||
.zip(other.d_name.iter())
|
||||
.all(|(a, b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for dirent {}
|
||||
impl ::fmt::Debug for dirent {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for dirent {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("dirent")
|
||||
.field("d_fileno", &self.d_fileno)
|
||||
.field("d_off", &self.d_off)
|
||||
@@ -424,8 +429,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for dirent {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for dirent {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.d_fileno.hash(state);
|
||||
self.d_off.hash(state);
|
||||
self.d_reclen.hash(state);
|
||||
@@ -437,23 +442,23 @@ cfg_if! {
|
||||
|
||||
impl PartialEq for vnstat {
|
||||
fn eq(&self, other: &vnstat) -> bool {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
let other_vn_devname: &[::c_char] = &other.vn_devname;
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
let other_vn_devname: &[c_char] = &other.vn_devname;
|
||||
|
||||
self.vn_fileid == other.vn_fileid &&
|
||||
self.vn_size == other.vn_size &&
|
||||
self.vn_dev == other.vn_dev &&
|
||||
self.vn_fsid == other.vn_fsid &&
|
||||
self.vn_mntdir == other.vn_mntdir &&
|
||||
self.vn_type == other.vn_type &&
|
||||
self.vn_mode == other.vn_mode &&
|
||||
self_vn_devname == other_vn_devname
|
||||
self.vn_fileid == other.vn_fileid
|
||||
&& self.vn_size == other.vn_size
|
||||
&& self.vn_dev == other.vn_dev
|
||||
&& self.vn_fsid == other.vn_fsid
|
||||
&& self.vn_mntdir == other.vn_mntdir
|
||||
&& self.vn_type == other.vn_type
|
||||
&& self.vn_mode == other.vn_mode
|
||||
&& self_vn_devname == other_vn_devname
|
||||
}
|
||||
}
|
||||
impl Eq for vnstat {}
|
||||
impl ::fmt::Debug for vnstat {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
impl fmt::Debug for vnstat {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
|
||||
f.debug_struct("vnstat")
|
||||
.field("vn_fileid", &self.vn_fileid)
|
||||
@@ -467,9 +472,9 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for vnstat {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
impl hash::Hash for vnstat {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
|
||||
self.vn_fileid.hash(state);
|
||||
self.vn_size.hash(state);
|
||||
@@ -484,28 +489,28 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
|
||||
pub const RAND_MAX: ::c_int = 0x7fff_ffff;
|
||||
pub const ELAST: ::c_int = 97;
|
||||
pub const RAND_MAX: c_int = 0x7fff_ffff;
|
||||
pub const ELAST: c_int = 97;
|
||||
|
||||
pub const KF_TYPE_EVENTFD: ::c_int = 13;
|
||||
pub const KF_TYPE_EVENTFD: c_int = 13;
|
||||
|
||||
/// max length of devicename
|
||||
pub const SPECNAMELEN: ::c_int = 255;
|
||||
pub const SPECNAMELEN: c_int = 255;
|
||||
pub const KI_NSPARE_PTR: usize = 5;
|
||||
|
||||
/// domainset policies
|
||||
pub const DOMAINSET_POLICY_INVALID: ::c_int = 0;
|
||||
pub const DOMAINSET_POLICY_ROUNDROBIN: ::c_int = 1;
|
||||
pub const DOMAINSET_POLICY_FIRSTTOUCH: ::c_int = 2;
|
||||
pub const DOMAINSET_POLICY_PREFER: ::c_int = 3;
|
||||
pub const DOMAINSET_POLICY_INTERLEAVE: ::c_int = 4;
|
||||
pub const DOMAINSET_POLICY_INVALID: c_int = 0;
|
||||
pub const DOMAINSET_POLICY_ROUNDROBIN: c_int = 1;
|
||||
pub const DOMAINSET_POLICY_FIRSTTOUCH: c_int = 2;
|
||||
pub const DOMAINSET_POLICY_PREFER: c_int = 3;
|
||||
pub const DOMAINSET_POLICY_INTERLEAVE: c_int = 4;
|
||||
|
||||
pub const MINCORE_SUPER: ::c_int = 0x60;
|
||||
pub const MINCORE_SUPER: c_int = 0x60;
|
||||
|
||||
safe_f! {
|
||||
pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t {
|
||||
let major = major as ::dev_t;
|
||||
let minor = minor as ::dev_t;
|
||||
pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
|
||||
let major = major as crate::dev_t;
|
||||
let minor = minor as crate::dev_t;
|
||||
let mut dev = 0;
|
||||
dev |= ((major & 0xffffff00) as dev_t) << 32;
|
||||
dev |= ((major & 0x000000ff) as dev_t) << 8;
|
||||
@@ -513,54 +518,52 @@ safe_f! {
|
||||
dev |= ((minor & 0xffff00ff) as dev_t) << 0;
|
||||
dev
|
||||
}
|
||||
|
||||
pub {const} fn major(dev: crate::dev_t) -> c_int {
|
||||
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int
|
||||
}
|
||||
|
||||
f! {
|
||||
pub fn major(dev: ::dev_t) -> ::c_int {
|
||||
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int
|
||||
}
|
||||
|
||||
pub fn minor(dev: ::dev_t) -> ::c_int {
|
||||
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int
|
||||
pub {const} fn minor(dev: crate::dev_t) -> c_int {
|
||||
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
pub fn setgrent();
|
||||
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
|
||||
pub fn freelocale(loc: ::locale_t);
|
||||
pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int;
|
||||
pub fn freelocale(loc: crate::locale_t);
|
||||
pub fn msgrcv(
|
||||
msqid: ::c_int,
|
||||
msgp: *mut ::c_void,
|
||||
msgsz: ::size_t,
|
||||
msgtyp: ::c_long,
|
||||
msgflg: ::c_int,
|
||||
) -> ::ssize_t;
|
||||
msqid: c_int,
|
||||
msgp: *mut c_void,
|
||||
msgsz: size_t,
|
||||
msgtyp: c_long,
|
||||
msgflg: c_int,
|
||||
) -> ssize_t;
|
||||
|
||||
pub fn cpuset_getdomain(
|
||||
level: ::cpulevel_t,
|
||||
which: ::cpuwhich_t,
|
||||
id: ::id_t,
|
||||
setsize: ::size_t,
|
||||
mask: *mut ::domainset_t,
|
||||
policy: *mut ::c_int,
|
||||
) -> ::c_int;
|
||||
level: crate::cpulevel_t,
|
||||
which: crate::cpuwhich_t,
|
||||
id: crate::id_t,
|
||||
setsize: size_t,
|
||||
mask: *mut crate::domainset_t,
|
||||
policy: *mut c_int,
|
||||
) -> c_int;
|
||||
pub fn cpuset_setdomain(
|
||||
level: ::cpulevel_t,
|
||||
which: ::cpuwhich_t,
|
||||
id: ::id_t,
|
||||
setsize: ::size_t,
|
||||
mask: *const ::domainset_t,
|
||||
policy: ::c_int,
|
||||
) -> ::c_int;
|
||||
level: crate::cpulevel_t,
|
||||
which: crate::cpuwhich_t,
|
||||
id: crate::id_t,
|
||||
setsize: size_t,
|
||||
mask: *const crate::domainset_t,
|
||||
policy: c_int,
|
||||
) -> c_int;
|
||||
|
||||
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
|
||||
pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
|
||||
pub fn dirname(path: *mut c_char) -> *mut c_char;
|
||||
pub fn basename(path: *mut c_char) -> *mut c_char;
|
||||
}
|
||||
|
||||
#[link(name = "kvm")]
|
||||
extern "C" {
|
||||
pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t;
|
||||
pub fn kvm_kerndisp(kd: *mut crate::kvm_t) -> crate::kssize_t;
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN;
|
||||
pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1;
|
||||
pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2;
|
||||
pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1;
|
||||
pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000;
|
||||
pub const PROC_LA_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN + 2;
|
||||
pub const PROC_LA_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 3;
|
||||
pub const PROC_LA_CTL_LA48_ON_EXEC: ::c_int = 1;
|
||||
pub const PROC_LA_CTL_LA57_ON_EXEC: ::c_int = 2;
|
||||
pub const PROC_LA_CTL_DEFAULT_ON_EXEC: ::c_int = 3;
|
||||
pub const PROC_LA_STATUS_LA48: ::c_int = 0x01000000;
|
||||
pub const PROC_LA_STATUS_LA57: ::c_int = 0x02000000;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub const PROC_KPTI_CTL: c_int = crate::PROC_PROCCTL_MD_MIN;
|
||||
pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: c_int = 1;
|
||||
pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: c_int = 2;
|
||||
pub const PROC_KPTI_STATUS: c_int = crate::PROC_PROCCTL_MD_MIN + 1;
|
||||
pub const PROC_KPTI_STATUS_ACTIVE: c_int = 0x80000000;
|
||||
pub const PROC_LA_CTL: c_int = crate::PROC_PROCCTL_MD_MIN + 2;
|
||||
pub const PROC_LA_STATUS: c_int = crate::PROC_PROCCTL_MD_MIN + 3;
|
||||
pub const PROC_LA_CTL_LA48_ON_EXEC: c_int = 1;
|
||||
pub const PROC_LA_CTL_LA57_ON_EXEC: c_int = 2;
|
||||
pub const PROC_LA_CTL_DEFAULT_ON_EXEC: c_int = 3;
|
||||
pub const PROC_LA_STATUS_LA48: c_int = 0x01000000;
|
||||
pub const PROC_LA_STATUS_LA57: c_int = 0x02000000;
|
||||
|
||||
@@ -1,279 +1,286 @@
|
||||
use crate::off_t;
|
||||
use crate::prelude::*;
|
||||
|
||||
// APIs in FreeBSD 15 that have changed since 11.
|
||||
|
||||
pub type nlink_t = u64;
|
||||
pub type dev_t = u64;
|
||||
pub type ino_t = u64;
|
||||
pub type shmatt_t = ::c_uint;
|
||||
pub type shmatt_t = c_uint;
|
||||
pub type kpaddr_t = u64;
|
||||
pub type kssize_t = i64;
|
||||
pub type domainset_t = __c_anonymous_domainset;
|
||||
|
||||
s! {
|
||||
pub struct shmid_ds {
|
||||
pub shm_perm: ::ipc_perm,
|
||||
pub shm_segsz: ::size_t,
|
||||
pub shm_lpid: ::pid_t,
|
||||
pub shm_cpid: ::pid_t,
|
||||
pub shm_nattch: ::shmatt_t,
|
||||
pub shm_atime: ::time_t,
|
||||
pub shm_dtime: ::time_t,
|
||||
pub shm_ctime: ::time_t,
|
||||
pub shm_perm: crate::ipc_perm,
|
||||
pub shm_segsz: size_t,
|
||||
pub shm_lpid: crate::pid_t,
|
||||
pub shm_cpid: crate::pid_t,
|
||||
pub shm_nattch: crate::shmatt_t,
|
||||
pub shm_atime: crate::time_t,
|
||||
pub shm_dtime: crate::time_t,
|
||||
pub shm_ctime: crate::time_t,
|
||||
}
|
||||
|
||||
pub struct kevent {
|
||||
pub ident: ::uintptr_t,
|
||||
pub filter: ::c_short,
|
||||
pub flags: ::c_ushort,
|
||||
pub fflags: ::c_uint,
|
||||
pub ident: crate::uintptr_t,
|
||||
pub filter: c_short,
|
||||
pub flags: c_ushort,
|
||||
pub fflags: c_uint,
|
||||
pub data: i64,
|
||||
pub udata: *mut ::c_void,
|
||||
pub udata: *mut c_void,
|
||||
pub ext: [u64; 4],
|
||||
}
|
||||
|
||||
pub struct kvm_page {
|
||||
pub kp_version: ::u_int,
|
||||
pub kp_paddr: ::kpaddr_t,
|
||||
pub kp_kmap_vaddr: ::kvaddr_t,
|
||||
pub kp_dmap_vaddr: ::kvaddr_t,
|
||||
pub kp_prot: ::vm_prot_t,
|
||||
pub kp_offset: ::off_t,
|
||||
pub kp_len: ::size_t,
|
||||
pub kp_version: crate::u_int,
|
||||
pub kp_paddr: crate::kpaddr_t,
|
||||
pub kp_kmap_vaddr: crate::kvaddr_t,
|
||||
pub kp_dmap_vaddr: crate::kvaddr_t,
|
||||
pub kp_prot: crate::vm_prot_t,
|
||||
pub kp_offset: off_t,
|
||||
pub kp_len: size_t,
|
||||
}
|
||||
|
||||
pub struct __c_anonymous_domainset {
|
||||
_priv: [::uintptr_t; 4],
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
_priv: [c_ulong; 4],
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
_priv: [c_ulong; 8],
|
||||
}
|
||||
|
||||
pub struct kinfo_proc {
|
||||
/// Size of this structure.
|
||||
pub ki_structsize: ::c_int,
|
||||
pub ki_structsize: c_int,
|
||||
/// Reserved: layout identifier.
|
||||
pub ki_layout: ::c_int,
|
||||
pub ki_layout: c_int,
|
||||
/// Address of command arguments.
|
||||
pub ki_args: *mut ::pargs,
|
||||
pub ki_args: *mut crate::pargs,
|
||||
// This is normally "struct proc".
|
||||
/// Address of proc.
|
||||
pub ki_paddr: *mut ::c_void,
|
||||
pub ki_paddr: *mut c_void,
|
||||
// This is normally "struct user".
|
||||
/// Kernel virtual address of u-area.
|
||||
pub ki_addr: *mut ::c_void,
|
||||
pub ki_addr: *mut c_void,
|
||||
// This is normally "struct vnode".
|
||||
/// Pointer to trace file.
|
||||
pub ki_tracep: *mut ::c_void,
|
||||
pub ki_tracep: *mut c_void,
|
||||
// This is normally "struct vnode".
|
||||
/// Pointer to executable file.
|
||||
pub ki_textvp: *mut ::c_void,
|
||||
pub ki_textvp: *mut c_void,
|
||||
// This is normally "struct filedesc".
|
||||
/// Pointer to open file info.
|
||||
pub ki_fd: *mut ::c_void,
|
||||
pub ki_fd: *mut c_void,
|
||||
// This is normally "struct vmspace".
|
||||
/// Pointer to kernel vmspace struct.
|
||||
pub ki_vmspace: *mut ::c_void,
|
||||
pub ki_vmspace: *mut c_void,
|
||||
/// Sleep address.
|
||||
pub ki_wchan: *const ::c_void,
|
||||
pub ki_wchan: *const c_void,
|
||||
/// Process identifier.
|
||||
pub ki_pid: ::pid_t,
|
||||
pub ki_pid: crate::pid_t,
|
||||
/// Parent process ID.
|
||||
pub ki_ppid: ::pid_t,
|
||||
pub ki_ppid: crate::pid_t,
|
||||
/// Process group ID.
|
||||
pub ki_pgid: ::pid_t,
|
||||
pub ki_pgid: crate::pid_t,
|
||||
/// tty process group ID.
|
||||
pub ki_tpgid: ::pid_t,
|
||||
pub ki_tpgid: crate::pid_t,
|
||||
/// Process session ID.
|
||||
pub ki_sid: ::pid_t,
|
||||
pub ki_sid: crate::pid_t,
|
||||
/// Terminal session ID.
|
||||
pub ki_tsid: ::pid_t,
|
||||
pub ki_tsid: crate::pid_t,
|
||||
/// Job control counter.
|
||||
pub ki_jobc: ::c_short,
|
||||
pub ki_jobc: c_short,
|
||||
/// Unused (just here for alignment).
|
||||
pub ki_spare_short1: ::c_short,
|
||||
pub ki_spare_short1: c_short,
|
||||
/// Controlling tty dev.
|
||||
pub ki_tdev_freebsd11: u32,
|
||||
/// Signals arrived but not delivered.
|
||||
pub ki_siglist: ::sigset_t,
|
||||
pub ki_siglist: crate::sigset_t,
|
||||
/// Current signal mask.
|
||||
pub ki_sigmask: ::sigset_t,
|
||||
pub ki_sigmask: crate::sigset_t,
|
||||
/// Signals being ignored.
|
||||
pub ki_sigignore: ::sigset_t,
|
||||
pub ki_sigignore: crate::sigset_t,
|
||||
/// Signals being caught by user.
|
||||
pub ki_sigcatch: ::sigset_t,
|
||||
pub ki_sigcatch: crate::sigset_t,
|
||||
/// Effective user ID.
|
||||
pub ki_uid: ::uid_t,
|
||||
pub ki_uid: crate::uid_t,
|
||||
/// Real user ID.
|
||||
pub ki_ruid: ::uid_t,
|
||||
pub ki_ruid: crate::uid_t,
|
||||
/// Saved effective user ID.
|
||||
pub ki_svuid: ::uid_t,
|
||||
pub ki_svuid: crate::uid_t,
|
||||
/// Real group ID.
|
||||
pub ki_rgid: ::gid_t,
|
||||
pub ki_rgid: crate::gid_t,
|
||||
/// Saved effective group ID.
|
||||
pub ki_svgid: ::gid_t,
|
||||
pub ki_svgid: crate::gid_t,
|
||||
/// Number of groups.
|
||||
pub ki_ngroups: ::c_short,
|
||||
pub ki_ngroups: c_short,
|
||||
/// Unused (just here for alignment).
|
||||
pub ki_spare_short2: ::c_short,
|
||||
pub ki_spare_short2: c_short,
|
||||
/// Groups.
|
||||
pub ki_groups: [::gid_t; ::KI_NGROUPS],
|
||||
pub ki_groups: [crate::gid_t; crate::KI_NGROUPS],
|
||||
/// Virtual size.
|
||||
pub ki_size: ::vm_size_t,
|
||||
pub ki_size: crate::vm_size_t,
|
||||
/// Current resident set size in pages.
|
||||
pub ki_rssize: ::segsz_t,
|
||||
pub ki_rssize: crate::segsz_t,
|
||||
/// Resident set size before last swap.
|
||||
pub ki_swrss: ::segsz_t,
|
||||
pub ki_swrss: crate::segsz_t,
|
||||
/// Text size (pages) XXX.
|
||||
pub ki_tsize: ::segsz_t,
|
||||
pub ki_tsize: crate::segsz_t,
|
||||
/// Data size (pages) XXX.
|
||||
pub ki_dsize: ::segsz_t,
|
||||
pub ki_dsize: crate::segsz_t,
|
||||
/// Stack size (pages).
|
||||
pub ki_ssize: ::segsz_t,
|
||||
pub ki_ssize: crate::segsz_t,
|
||||
/// Exit status for wait & stop signal.
|
||||
pub ki_xstat: ::u_short,
|
||||
pub ki_xstat: crate::u_short,
|
||||
/// Accounting flags.
|
||||
pub ki_acflag: ::u_short,
|
||||
pub ki_acflag: crate::u_short,
|
||||
/// %cpu for process during `ki_swtime`.
|
||||
pub ki_pctcpu: ::fixpt_t,
|
||||
pub ki_pctcpu: crate::fixpt_t,
|
||||
/// Time averaged value of `ki_cpticks`.
|
||||
pub ki_estcpu: ::u_int,
|
||||
pub ki_estcpu: crate::u_int,
|
||||
/// Time since last blocked.
|
||||
pub ki_slptime: ::u_int,
|
||||
pub ki_slptime: crate::u_int,
|
||||
/// Time swapped in or out.
|
||||
pub ki_swtime: ::u_int,
|
||||
pub ki_swtime: crate::u_int,
|
||||
/// Number of copy-on-write faults.
|
||||
pub ki_cow: ::u_int,
|
||||
pub ki_cow: crate::u_int,
|
||||
/// Real time in microsec.
|
||||
pub ki_runtime: u64,
|
||||
/// Starting time.
|
||||
pub ki_start: ::timeval,
|
||||
pub ki_start: crate::timeval,
|
||||
/// Time used by process children.
|
||||
pub ki_childtime: ::timeval,
|
||||
pub ki_childtime: crate::timeval,
|
||||
/// P_* flags.
|
||||
pub ki_flag: ::c_long,
|
||||
pub ki_flag: c_long,
|
||||
/// KI_* flags (below).
|
||||
pub ki_kiflag: ::c_long,
|
||||
pub ki_kiflag: c_long,
|
||||
/// Kernel trace points.
|
||||
pub ki_traceflag: ::c_int,
|
||||
pub ki_traceflag: c_int,
|
||||
/// S* process status.
|
||||
pub ki_stat: ::c_char,
|
||||
pub ki_stat: c_char,
|
||||
/// Process "nice" value.
|
||||
pub ki_nice: i8, // signed char
|
||||
/// Process lock (prevent swap) count.
|
||||
pub ki_lock: ::c_char,
|
||||
pub ki_lock: c_char,
|
||||
/// Run queue index.
|
||||
pub ki_rqindex: ::c_char,
|
||||
pub ki_rqindex: c_char,
|
||||
/// Which cpu we are on.
|
||||
pub ki_oncpu_old: ::c_uchar,
|
||||
pub ki_oncpu_old: c_uchar,
|
||||
/// Last cpu we were on.
|
||||
pub ki_lastcpu_old: ::c_uchar,
|
||||
pub ki_lastcpu_old: c_uchar,
|
||||
/// Thread name.
|
||||
pub ki_tdname: [::c_char; ::TDNAMLEN + 1],
|
||||
pub ki_tdname: [c_char; crate::TDNAMLEN + 1],
|
||||
/// Wchan message.
|
||||
pub ki_wmesg: [::c_char; ::WMESGLEN + 1],
|
||||
pub ki_wmesg: [c_char; crate::WMESGLEN + 1],
|
||||
/// Setlogin name.
|
||||
pub ki_login: [::c_char; ::LOGNAMELEN + 1],
|
||||
pub ki_login: [c_char; crate::LOGNAMELEN + 1],
|
||||
/// Lock name.
|
||||
pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1],
|
||||
pub ki_lockname: [c_char; crate::LOCKNAMELEN + 1],
|
||||
/// Command name.
|
||||
pub ki_comm: [::c_char; ::COMMLEN + 1],
|
||||
pub ki_comm: [c_char; crate::COMMLEN + 1],
|
||||
/// Emulation name.
|
||||
pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1],
|
||||
pub ki_emul: [c_char; crate::KI_EMULNAMELEN + 1],
|
||||
/// Login class.
|
||||
pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1],
|
||||
pub ki_loginclass: [c_char; crate::LOGINCLASSLEN + 1],
|
||||
/// More thread name.
|
||||
pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1],
|
||||
pub ki_moretdname: [c_char; crate::MAXCOMLEN - crate::TDNAMLEN + 1],
|
||||
/// Spare string space.
|
||||
pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq
|
||||
pub ki_sparestrings: [[c_char; 23]; 2], // little hack to allow PartialEq
|
||||
/// Spare room for growth.
|
||||
pub ki_spareints: [::c_int; ::KI_NSPARE_INT],
|
||||
pub ki_spareints: [c_int; crate::KI_NSPARE_INT],
|
||||
/// Controlling tty dev.
|
||||
pub ki_tdev: u64,
|
||||
/// Which cpu we are on.
|
||||
pub ki_oncpu: ::c_int,
|
||||
pub ki_oncpu: c_int,
|
||||
/// Last cpu we were on.
|
||||
pub ki_lastcpu: ::c_int,
|
||||
pub ki_lastcpu: c_int,
|
||||
/// PID of tracing process.
|
||||
pub ki_tracer: ::c_int,
|
||||
pub ki_tracer: c_int,
|
||||
/// P2_* flags.
|
||||
pub ki_flag2: ::c_int,
|
||||
pub ki_flag2: c_int,
|
||||
/// Default FIB number.
|
||||
pub ki_fibnum: ::c_int,
|
||||
pub ki_fibnum: c_int,
|
||||
/// Credential flags.
|
||||
pub ki_cr_flags: ::u_int,
|
||||
pub ki_cr_flags: crate::u_int,
|
||||
/// Process jail ID.
|
||||
pub ki_jid: ::c_int,
|
||||
pub ki_jid: c_int,
|
||||
/// Number of threads in total.
|
||||
pub ki_numthreads: ::c_int,
|
||||
pub ki_numthreads: c_int,
|
||||
/// Thread ID.
|
||||
pub ki_tid: ::lwpid_t,
|
||||
pub ki_tid: crate::lwpid_t,
|
||||
/// Process priority.
|
||||
pub ki_pri: ::priority,
|
||||
pub ki_pri: crate::priority,
|
||||
/// Process rusage statistics.
|
||||
pub ki_rusage: ::rusage,
|
||||
pub ki_rusage: crate::rusage,
|
||||
/// rusage of children processes.
|
||||
pub ki_rusage_ch: ::rusage,
|
||||
pub ki_rusage_ch: crate::rusage,
|
||||
// This is normally "struct pcb".
|
||||
/// Kernel virtual addr of pcb.
|
||||
pub ki_pcb: *mut ::c_void,
|
||||
pub ki_pcb: *mut c_void,
|
||||
/// Kernel virtual addr of stack.
|
||||
pub ki_kstack: *mut ::c_void,
|
||||
pub ki_kstack: *mut c_void,
|
||||
/// User convenience pointer.
|
||||
pub ki_udata: *mut ::c_void,
|
||||
pub ki_udata: *mut c_void,
|
||||
// This is normally "struct thread".
|
||||
pub ki_tdaddr: *mut ::c_void,
|
||||
pub ki_tdaddr: *mut c_void,
|
||||
// This is normally "struct pwddesc".
|
||||
/// Pointer to process paths info.
|
||||
pub ki_pd: *mut ::c_void,
|
||||
pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR],
|
||||
pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG],
|
||||
pub ki_pd: *mut c_void,
|
||||
pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR],
|
||||
pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG],
|
||||
/// PS_* flags.
|
||||
pub ki_sflag: ::c_long,
|
||||
pub ki_sflag: c_long,
|
||||
/// kthread flag.
|
||||
pub ki_tdflags: ::c_long,
|
||||
pub ki_tdflags: c_long,
|
||||
}
|
||||
|
||||
pub struct stat {
|
||||
pub st_dev: ::dev_t,
|
||||
pub st_ino: ::ino_t,
|
||||
pub st_nlink: ::nlink_t,
|
||||
pub st_mode: ::mode_t,
|
||||
pub st_dev: crate::dev_t,
|
||||
pub st_ino: crate::ino_t,
|
||||
pub st_nlink: crate::nlink_t,
|
||||
pub st_mode: crate::mode_t,
|
||||
st_padding0: i16,
|
||||
pub st_uid: ::uid_t,
|
||||
pub st_gid: ::gid_t,
|
||||
pub st_uid: crate::uid_t,
|
||||
pub st_gid: crate::gid_t,
|
||||
st_padding1: i32,
|
||||
pub st_rdev: ::dev_t,
|
||||
pub st_rdev: crate::dev_t,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_atim_ext: i32,
|
||||
pub st_atime: ::time_t,
|
||||
pub st_atime_nsec: ::c_long,
|
||||
pub st_atime: crate::time_t,
|
||||
pub st_atime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_mtim_ext: i32,
|
||||
pub st_mtime: ::time_t,
|
||||
pub st_mtime_nsec: ::c_long,
|
||||
pub st_mtime: crate::time_t,
|
||||
pub st_mtime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_ctim_ext: i32,
|
||||
pub st_ctime: ::time_t,
|
||||
pub st_ctime_nsec: ::c_long,
|
||||
pub st_ctime: crate::time_t,
|
||||
pub st_ctime_nsec: c_long,
|
||||
#[cfg(target_arch = "x86")]
|
||||
st_btim_ext: i32,
|
||||
pub st_birthtime: ::time_t,
|
||||
pub st_birthtime_nsec: ::c_long,
|
||||
pub st_size: ::off_t,
|
||||
pub st_blocks: ::blkcnt_t,
|
||||
pub st_blksize: ::blksize_t,
|
||||
pub st_flags: ::fflags_t,
|
||||
pub st_birthtime: crate::time_t,
|
||||
pub st_birthtime_nsec: c_long,
|
||||
pub st_size: off_t,
|
||||
pub st_blocks: crate::blkcnt_t,
|
||||
pub st_blksize: crate::blksize_t,
|
||||
pub st_flags: crate::fflags_t,
|
||||
pub st_gen: u64,
|
||||
pub st_spare: [u64; 10],
|
||||
pub st_filerev: u64,
|
||||
pub st_spare: [u64; 9],
|
||||
}
|
||||
}
|
||||
|
||||
s_no_extra_traits! {
|
||||
pub struct dirent {
|
||||
pub d_fileno: ::ino_t,
|
||||
pub d_off: ::off_t,
|
||||
pub d_fileno: crate::ino_t,
|
||||
pub d_off: off_t,
|
||||
pub d_reclen: u16,
|
||||
pub d_type: u8,
|
||||
d_pad0: u8,
|
||||
pub d_namlen: u16,
|
||||
d_pad1: u16,
|
||||
pub d_name: [::c_char; 256],
|
||||
pub d_name: [c_char; 256],
|
||||
}
|
||||
|
||||
pub struct statfs {
|
||||
@@ -293,12 +300,12 @@ s_no_extra_traits! {
|
||||
pub f_asyncreads: u64,
|
||||
f_spare: [u64; 10],
|
||||
pub f_namemax: u32,
|
||||
pub f_owner: ::uid_t,
|
||||
pub f_fsid: ::fsid_t,
|
||||
f_charspare: [::c_char; 80],
|
||||
pub f_fstypename: [::c_char; 16],
|
||||
pub f_mntfromname: [::c_char; 1024],
|
||||
pub f_mntonname: [::c_char; 1024],
|
||||
pub f_owner: crate::uid_t,
|
||||
pub f_fsid: crate::fsid_t,
|
||||
f_charspare: [c_char; 80],
|
||||
pub f_fstypename: [c_char; 16],
|
||||
pub f_mntfromname: [c_char; 1024],
|
||||
pub f_mntonname: [c_char; 1024],
|
||||
}
|
||||
|
||||
pub struct vnstat {
|
||||
@@ -306,10 +313,10 @@ s_no_extra_traits! {
|
||||
pub vn_size: u64,
|
||||
pub vn_dev: u64,
|
||||
pub vn_fsid: u64,
|
||||
pub vn_mntdir: *mut ::c_char,
|
||||
pub vn_type: ::c_int,
|
||||
pub vn_mntdir: *mut c_char,
|
||||
pub vn_type: c_int,
|
||||
pub vn_mode: u16,
|
||||
pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1],
|
||||
pub vn_devname: [c_char; crate::SPECNAMELEN as usize + 1],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -348,8 +355,8 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
impl Eq for statfs {}
|
||||
impl ::fmt::Debug for statfs {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for statfs {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("statfs")
|
||||
.field("f_bsize", &self.f_bsize)
|
||||
.field("f_iosize", &self.f_iosize)
|
||||
@@ -371,8 +378,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for statfs {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for statfs {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.f_version.hash(state);
|
||||
self.f_type.hash(state);
|
||||
self.f_flags.hash(state);
|
||||
@@ -404,16 +411,15 @@ cfg_if! {
|
||||
&& self.d_reclen == other.d_reclen
|
||||
&& self.d_type == other.d_type
|
||||
&& self.d_namlen == other.d_namlen
|
||||
&& self
|
||||
.d_name[..self.d_namlen as _]
|
||||
&& self.d_name[..self.d_namlen as _]
|
||||
.iter()
|
||||
.zip(other.d_name.iter())
|
||||
.all(|(a, b)| a == b)
|
||||
}
|
||||
}
|
||||
impl Eq for dirent {}
|
||||
impl ::fmt::Debug for dirent {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
impl fmt::Debug for dirent {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("dirent")
|
||||
.field("d_fileno", &self.d_fileno)
|
||||
.field("d_off", &self.d_off)
|
||||
@@ -424,8 +430,8 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for dirent {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
impl hash::Hash for dirent {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.d_fileno.hash(state);
|
||||
self.d_off.hash(state);
|
||||
self.d_reclen.hash(state);
|
||||
@@ -437,23 +443,23 @@ cfg_if! {
|
||||
|
||||
impl PartialEq for vnstat {
|
||||
fn eq(&self, other: &vnstat) -> bool {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
let other_vn_devname: &[::c_char] = &other.vn_devname;
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
let other_vn_devname: &[c_char] = &other.vn_devname;
|
||||
|
||||
self.vn_fileid == other.vn_fileid &&
|
||||
self.vn_size == other.vn_size &&
|
||||
self.vn_dev == other.vn_dev &&
|
||||
self.vn_fsid == other.vn_fsid &&
|
||||
self.vn_mntdir == other.vn_mntdir &&
|
||||
self.vn_type == other.vn_type &&
|
||||
self.vn_mode == other.vn_mode &&
|
||||
self_vn_devname == other_vn_devname
|
||||
self.vn_fileid == other.vn_fileid
|
||||
&& self.vn_size == other.vn_size
|
||||
&& self.vn_dev == other.vn_dev
|
||||
&& self.vn_fsid == other.vn_fsid
|
||||
&& self.vn_mntdir == other.vn_mntdir
|
||||
&& self.vn_type == other.vn_type
|
||||
&& self.vn_mode == other.vn_mode
|
||||
&& self_vn_devname == other_vn_devname
|
||||
}
|
||||
}
|
||||
impl Eq for vnstat {}
|
||||
impl ::fmt::Debug for vnstat {
|
||||
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
impl fmt::Debug for vnstat {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
|
||||
f.debug_struct("vnstat")
|
||||
.field("vn_fileid", &self.vn_fileid)
|
||||
@@ -467,9 +473,9 @@ cfg_if! {
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl ::hash::Hash for vnstat {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
let self_vn_devname: &[::c_char] = &self.vn_devname;
|
||||
impl hash::Hash for vnstat {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
let self_vn_devname: &[c_char] = &self.vn_devname;
|
||||
|
||||
self.vn_fileid.hash(state);
|
||||
self.vn_size.hash(state);
|
||||
@@ -484,28 +490,28 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
|
||||
pub const RAND_MAX: ::c_int = 0x7fff_ffff;
|
||||
pub const ELAST: ::c_int = 97;
|
||||
pub const RAND_MAX: c_int = 0x7fff_ffff;
|
||||
pub const ELAST: c_int = 97;
|
||||
|
||||
pub const KF_TYPE_EVENTFD: ::c_int = 13;
|
||||
pub const KF_TYPE_EVENTFD: c_int = 13;
|
||||
|
||||
/// max length of devicename
|
||||
pub const SPECNAMELEN: ::c_int = 255;
|
||||
pub const SPECNAMELEN: c_int = 255;
|
||||
pub const KI_NSPARE_PTR: usize = 5;
|
||||
|
||||
/// domainset policies
|
||||
pub const DOMAINSET_POLICY_INVALID: ::c_int = 0;
|
||||
pub const DOMAINSET_POLICY_ROUNDROBIN: ::c_int = 1;
|
||||
pub const DOMAINSET_POLICY_FIRSTTOUCH: ::c_int = 2;
|
||||
pub const DOMAINSET_POLICY_PREFER: ::c_int = 3;
|
||||
pub const DOMAINSET_POLICY_INTERLEAVE: ::c_int = 4;
|
||||
pub const DOMAINSET_POLICY_INVALID: c_int = 0;
|
||||
pub const DOMAINSET_POLICY_ROUNDROBIN: c_int = 1;
|
||||
pub const DOMAINSET_POLICY_FIRSTTOUCH: c_int = 2;
|
||||
pub const DOMAINSET_POLICY_PREFER: c_int = 3;
|
||||
pub const DOMAINSET_POLICY_INTERLEAVE: c_int = 4;
|
||||
|
||||
pub const MINCORE_SUPER: ::c_int = 0x60;
|
||||
pub const MINCORE_SUPER: c_int = 0x60;
|
||||
|
||||
safe_f! {
|
||||
pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t {
|
||||
let major = major as ::dev_t;
|
||||
let minor = minor as ::dev_t;
|
||||
pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
|
||||
let major = major as crate::dev_t;
|
||||
let minor = minor as crate::dev_t;
|
||||
let mut dev = 0;
|
||||
dev |= ((major & 0xffffff00) as dev_t) << 32;
|
||||
dev |= ((major & 0x000000ff) as dev_t) << 8;
|
||||
@@ -513,54 +519,52 @@ safe_f! {
|
||||
dev |= ((minor & 0xffff00ff) as dev_t) << 0;
|
||||
dev
|
||||
}
|
||||
|
||||
pub {const} fn major(dev: crate::dev_t) -> c_int {
|
||||
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int
|
||||
}
|
||||
|
||||
f! {
|
||||
pub fn major(dev: ::dev_t) -> ::c_int {
|
||||
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int
|
||||
}
|
||||
|
||||
pub fn minor(dev: ::dev_t) -> ::c_int {
|
||||
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int
|
||||
pub {const} fn minor(dev: crate::dev_t) -> c_int {
|
||||
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
pub fn setgrent();
|
||||
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
|
||||
pub fn freelocale(loc: ::locale_t);
|
||||
pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int;
|
||||
pub fn freelocale(loc: crate::locale_t);
|
||||
pub fn msgrcv(
|
||||
msqid: ::c_int,
|
||||
msgp: *mut ::c_void,
|
||||
msgsz: ::size_t,
|
||||
msgtyp: ::c_long,
|
||||
msgflg: ::c_int,
|
||||
) -> ::ssize_t;
|
||||
msqid: c_int,
|
||||
msgp: *mut c_void,
|
||||
msgsz: size_t,
|
||||
msgtyp: c_long,
|
||||
msgflg: c_int,
|
||||
) -> ssize_t;
|
||||
|
||||
pub fn cpuset_getdomain(
|
||||
level: ::cpulevel_t,
|
||||
which: ::cpuwhich_t,
|
||||
id: ::id_t,
|
||||
setsize: ::size_t,
|
||||
mask: *mut ::domainset_t,
|
||||
policy: *mut ::c_int,
|
||||
) -> ::c_int;
|
||||
level: crate::cpulevel_t,
|
||||
which: crate::cpuwhich_t,
|
||||
id: crate::id_t,
|
||||
setsize: size_t,
|
||||
mask: *mut crate::domainset_t,
|
||||
policy: *mut c_int,
|
||||
) -> c_int;
|
||||
pub fn cpuset_setdomain(
|
||||
level: ::cpulevel_t,
|
||||
which: ::cpuwhich_t,
|
||||
id: ::id_t,
|
||||
setsize: ::size_t,
|
||||
mask: *const ::domainset_t,
|
||||
policy: ::c_int,
|
||||
) -> ::c_int;
|
||||
level: crate::cpulevel_t,
|
||||
which: crate::cpuwhich_t,
|
||||
id: crate::id_t,
|
||||
setsize: size_t,
|
||||
mask: *const crate::domainset_t,
|
||||
policy: c_int,
|
||||
) -> c_int;
|
||||
|
||||
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
|
||||
pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
|
||||
pub fn dirname(path: *mut c_char) -> *mut c_char;
|
||||
pub fn basename(path: *mut c_char) -> *mut c_char;
|
||||
}
|
||||
|
||||
#[link(name = "kvm")]
|
||||
extern "C" {
|
||||
pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t;
|
||||
pub fn kvm_kerndisp(kd: *mut crate::kvm_t) -> crate::kssize_t;
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN;
|
||||
pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1;
|
||||
pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2;
|
||||
pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1;
|
||||
pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000;
|
||||
pub const PROC_LA_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN + 2;
|
||||
pub const PROC_LA_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 3;
|
||||
pub const PROC_LA_CTL_LA48_ON_EXEC: ::c_int = 1;
|
||||
pub const PROC_LA_CTL_LA57_ON_EXEC: ::c_int = 2;
|
||||
pub const PROC_LA_CTL_DEFAULT_ON_EXEC: ::c_int = 3;
|
||||
pub const PROC_LA_STATUS_LA48: ::c_int = 0x01000000;
|
||||
pub const PROC_LA_STATUS_LA57: ::c_int = 0x02000000;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub const PROC_KPTI_CTL: c_int = crate::PROC_PROCCTL_MD_MIN;
|
||||
pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: c_int = 1;
|
||||
pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: c_int = 2;
|
||||
pub const PROC_KPTI_STATUS: c_int = crate::PROC_PROCCTL_MD_MIN + 1;
|
||||
pub const PROC_KPTI_STATUS_ACTIVE: c_int = 0x80000000;
|
||||
pub const PROC_LA_CTL: c_int = crate::PROC_PROCCTL_MD_MIN + 2;
|
||||
pub const PROC_LA_STATUS: c_int = crate::PROC_PROCCTL_MD_MIN + 3;
|
||||
pub const PROC_LA_CTL_LA48_ON_EXEC: c_int = 1;
|
||||
pub const PROC_LA_CTL_LA57_ON_EXEC: c_int = 2;
|
||||
pub const PROC_LA_CTL_DEFAULT_ON_EXEC: c_int = 3;
|
||||
pub const PROC_LA_STATUS_LA48: c_int = 0x01000000;
|
||||
pub const PROC_LA_STATUS_LA57: c_int = 0x02000000;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,21 +1,77 @@
|
||||
pub type c_char = u8;
|
||||
pub type c_long = i32;
|
||||
pub type c_ulong = u32;
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type clock_t = u32;
|
||||
pub type wchar_t = i32;
|
||||
pub type time_t = i64;
|
||||
pub type suseconds_t = i32;
|
||||
pub type register_t = i32;
|
||||
|
||||
// should be pub(crate), but that requires Rust 1.18.0
|
||||
cfg_if! {
|
||||
if #[cfg(libc_const_size_of)] {
|
||||
#[doc(hidden)]
|
||||
pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1;
|
||||
} else {
|
||||
#[doc(hidden)]
|
||||
pub const _ALIGNBYTES: usize = 4 - 1;
|
||||
s_no_extra_traits! {
|
||||
#[repr(align(16))]
|
||||
pub struct mcontext_t {
|
||||
pub mc_vers: c_int,
|
||||
pub mc_flags: c_int,
|
||||
pub mc_onstack: c_int,
|
||||
pub mc_len: c_int,
|
||||
pub mc_avec: [u64; 64],
|
||||
pub mc_av: [u32; 2],
|
||||
pub mc_frame: [crate::register_t; 42],
|
||||
pub mc_fpreg: [u64; 33],
|
||||
pub mc_vsxfpreg: [u64; 32],
|
||||
}
|
||||
}
|
||||
|
||||
pub const MAP_32BIT: ::c_int = 0x00080000;
|
||||
pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4
|
||||
cfg_if! {
|
||||
if #[cfg(feature = "extra_traits")] {
|
||||
impl PartialEq for mcontext_t {
|
||||
fn eq(&self, other: &mcontext_t) -> bool {
|
||||
self.mc_vers == other.mc_vers
|
||||
&& self.mc_flags == other.mc_flags
|
||||
&& self.mc_onstack == other.mc_onstack
|
||||
&& self.mc_len == other.mc_len
|
||||
&& self.mc_avec == other.mc_avec
|
||||
&& self.mc_av == other.mc_av
|
||||
&& self.mc_frame == other.mc_frame
|
||||
&& self.mc_fpreg == other.mc_fpreg
|
||||
&& self.mc_vsxfpreg == other.mc_vsxfpreg
|
||||
}
|
||||
}
|
||||
impl Eq for mcontext_t {}
|
||||
impl fmt::Debug for mcontext_t {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("mcontext_t")
|
||||
.field("mc_vers", &self.mc_vers)
|
||||
.field("mc_flags", &self.mc_flags)
|
||||
.field("mc_onstack", &self.mc_onstack)
|
||||
.field("mc_len", &self.mc_len)
|
||||
.field("mc_avec", &self.mc_avec)
|
||||
.field("mc_av", &self.mc_av)
|
||||
.field("mc_frame", &self.mc_frame)
|
||||
.field("mc_fpreg", &self.mc_fpreg)
|
||||
.field("mc_vsxfpreg", &self.mc_vsxfpreg)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
impl hash::Hash for mcontext_t {
|
||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
||||
self.mc_vers.hash(state);
|
||||
self.mc_flags.hash(state);
|
||||
self.mc_onstack.hash(state);
|
||||
self.mc_len.hash(state);
|
||||
self.mc_avec.hash(state);
|
||||
self.mc_av.hash(state);
|
||||
self.mc_frame.hash(state);
|
||||
self.mc_fpreg.hash(state);
|
||||
self.mc_vsxfpreg.hash(state);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_int>() - 1;
|
||||
|
||||
pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d;
|
||||
pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e;
|
||||
pub const MAP_32BIT: c_int = 0x00080000;
|
||||
pub const MINSIGSTKSZ: size_t = 2048; // 512 * 4
|
||||
pub const TIOCTIMESTAMP: c_ulong = 0x40107459;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user