mirror of
https://github.com/embassy-rs/embassy.git
synced 2024-11-24 15:52:34 +00:00
Update to Rust 1.80, make check-cfg unconditional.
This commit is contained in:
parent
8b4bb625be
commit
2d678d6956
6
ci.sh
6
ci.sh
@ -10,12 +10,6 @@ if ! command -v cargo-batch &> /dev/null; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# check-cfg is stable on rustc 1.79 but not cargo 1.79.
|
|
||||||
# however, our cargo-batch is currently based on cargo 1.80, which does support check-cfg.
|
|
||||||
# so, force build.rs scripts to emit check-cfg commands.
|
|
||||||
# when 1.80 hits stable we can make build.rs unconditionally emit check-cfg and remove all this.
|
|
||||||
export EMBASSY_FORCE_CHECK_CFG=1
|
|
||||||
|
|
||||||
export RUSTFLAGS=-Dwarnings
|
export RUSTFLAGS=-Dwarnings
|
||||||
export DEFMT_LOG=trace,embassy_hal_internal=debug,embassy_net_esp_hosted=debug,cyw43=info,cyw43_pio=info,smoltcp=info
|
export DEFMT_LOG=trace,embassy_hal_internal=debug,embassy_net_esp_hosted=debug,cyw43=info,cyw43_pio=info,smoltcp=info
|
||||||
if [[ -z "${CARGO_TARGET_DIR}" ]]; then
|
if [[ -z "${CARGO_TARGET_DIR}" ]]; then
|
||||||
|
@ -8,8 +8,6 @@
|
|||||||
|
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::ffi::OsString;
|
|
||||||
use std::process::Command;
|
|
||||||
|
|
||||||
/// Helper for emitting cargo instruction for enabling configs (`cargo:rustc-cfg=X`) and declaring
|
/// Helper for emitting cargo instruction for enabling configs (`cargo:rustc-cfg=X`) and declaring
|
||||||
/// them (`cargo:rust-check-cfg=cfg(X)`).
|
/// them (`cargo:rust-check-cfg=cfg(X)`).
|
||||||
@ -17,7 +15,6 @@ use std::process::Command;
|
|||||||
pub struct CfgSet {
|
pub struct CfgSet {
|
||||||
enabled: HashSet<String>,
|
enabled: HashSet<String>,
|
||||||
declared: HashSet<String>,
|
declared: HashSet<String>,
|
||||||
emit_declared: bool,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CfgSet {
|
impl CfgSet {
|
||||||
@ -25,7 +22,6 @@ impl CfgSet {
|
|||||||
Self {
|
Self {
|
||||||
enabled: HashSet::new(),
|
enabled: HashSet::new(),
|
||||||
declared: HashSet::new(),
|
declared: HashSet::new(),
|
||||||
emit_declared: is_rustc_nightly(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +45,7 @@ impl CfgSet {
|
|||||||
///
|
///
|
||||||
/// This enables rustc to check that the configs in `#[cfg(...)]` attributes are valid.
|
/// This enables rustc to check that the configs in `#[cfg(...)]` attributes are valid.
|
||||||
pub fn declare(&mut self, cfg: impl AsRef<str>) {
|
pub fn declare(&mut self, cfg: impl AsRef<str>) {
|
||||||
if self.declared.insert(cfg.as_ref().to_owned()) && self.emit_declared {
|
if self.declared.insert(cfg.as_ref().to_owned()) {
|
||||||
println!("cargo:rustc-check-cfg=cfg({})", cfg.as_ref());
|
println!("cargo:rustc-check-cfg=cfg({})", cfg.as_ref());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -69,21 +65,6 @@ impl CfgSet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_rustc_nightly() -> bool {
|
|
||||||
if env::var_os("EMBASSY_FORCE_CHECK_CFG").is_some() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
let rustc = env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc"));
|
|
||||||
|
|
||||||
let output = Command::new(rustc)
|
|
||||||
.arg("--version")
|
|
||||||
.output()
|
|
||||||
.expect("failed to run `rustc --version`");
|
|
||||||
|
|
||||||
String::from_utf8_lossy(&output.stdout).contains("nightly")
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Sets configs that describe the target platform.
|
/// Sets configs that describe the target platform.
|
||||||
pub fn set_target_cfgs(cfgs: &mut CfgSet) {
|
pub fn set_target_cfgs(cfgs: &mut CfgSet) {
|
||||||
let target = env::var("TARGET").unwrap();
|
let target = env::var("TARGET").unwrap();
|
||||||
|
@ -8,8 +8,6 @@
|
|||||||
|
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::ffi::OsString;
|
|
||||||
use std::process::Command;
|
|
||||||
|
|
||||||
/// Helper for emitting cargo instruction for enabling configs (`cargo:rustc-cfg=X`) and declaring
|
/// Helper for emitting cargo instruction for enabling configs (`cargo:rustc-cfg=X`) and declaring
|
||||||
/// them (`cargo:rust-check-cfg=cfg(X)`).
|
/// them (`cargo:rust-check-cfg=cfg(X)`).
|
||||||
@ -17,7 +15,6 @@ use std::process::Command;
|
|||||||
pub struct CfgSet {
|
pub struct CfgSet {
|
||||||
enabled: HashSet<String>,
|
enabled: HashSet<String>,
|
||||||
declared: HashSet<String>,
|
declared: HashSet<String>,
|
||||||
emit_declared: bool,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CfgSet {
|
impl CfgSet {
|
||||||
@ -25,7 +22,6 @@ impl CfgSet {
|
|||||||
Self {
|
Self {
|
||||||
enabled: HashSet::new(),
|
enabled: HashSet::new(),
|
||||||
declared: HashSet::new(),
|
declared: HashSet::new(),
|
||||||
emit_declared: is_rustc_nightly(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +45,7 @@ impl CfgSet {
|
|||||||
///
|
///
|
||||||
/// This enables rustc to check that the configs in `#[cfg(...)]` attributes are valid.
|
/// This enables rustc to check that the configs in `#[cfg(...)]` attributes are valid.
|
||||||
pub fn declare(&mut self, cfg: impl AsRef<str>) {
|
pub fn declare(&mut self, cfg: impl AsRef<str>) {
|
||||||
if self.declared.insert(cfg.as_ref().to_owned()) && self.emit_declared {
|
if self.declared.insert(cfg.as_ref().to_owned()) {
|
||||||
println!("cargo:rustc-check-cfg=cfg({})", cfg.as_ref());
|
println!("cargo:rustc-check-cfg=cfg({})", cfg.as_ref());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -69,21 +65,6 @@ impl CfgSet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_rustc_nightly() -> bool {
|
|
||||||
if env::var_os("EMBASSY_FORCE_CHECK_CFG").is_some() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
let rustc = env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc"));
|
|
||||||
|
|
||||||
let output = Command::new(rustc)
|
|
||||||
.arg("--version")
|
|
||||||
.output()
|
|
||||||
.expect("failed to run `rustc --version`");
|
|
||||||
|
|
||||||
String::from_utf8_lossy(&output.stdout).contains("nightly")
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Sets configs that describe the target platform.
|
/// Sets configs that describe the target platform.
|
||||||
pub fn set_target_cfgs(cfgs: &mut CfgSet) {
|
pub fn set_target_cfgs(cfgs: &mut CfgSet) {
|
||||||
let target = env::var("TARGET").unwrap();
|
let target = env::var("TARGET").unwrap();
|
||||||
|
@ -312,13 +312,13 @@ impl<'d, T: Instance> I2c<'d, T, Async> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Read from address into buffer using DMA.
|
/// Read from address into buffer asynchronously.
|
||||||
pub async fn read_async(&mut self, addr: impl Into<u16>, buffer: &mut [u8]) -> Result<(), Error> {
|
pub async fn read_async(&mut self, addr: impl Into<u16>, buffer: &mut [u8]) -> Result<(), Error> {
|
||||||
Self::setup(addr.into())?;
|
Self::setup(addr.into())?;
|
||||||
self.read_async_internal(buffer, true, true).await
|
self.read_async_internal(buffer, true, true).await
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Write to address from buffer using DMA.
|
/// Write to address from buffer asynchronously.
|
||||||
pub async fn write_async(
|
pub async fn write_async(
|
||||||
&mut self,
|
&mut self,
|
||||||
addr: impl Into<u16>,
|
addr: impl Into<u16>,
|
||||||
@ -328,7 +328,7 @@ impl<'d, T: Instance> I2c<'d, T, Async> {
|
|||||||
self.write_async_internal(bytes, true).await
|
self.write_async_internal(bytes, true).await
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Write to address from bytes and read from address into buffer using DMA.
|
/// Write to address from bytes and read from address into buffer asynchronously.
|
||||||
pub async fn write_read_async(
|
pub async fn write_read_async(
|
||||||
&mut self,
|
&mut self,
|
||||||
addr: impl Into<u16>,
|
addr: impl Into<u16>,
|
||||||
@ -779,9 +779,6 @@ pub fn i2c_reserved_addr(addr: u16) -> bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) trait SealedInstance {
|
pub(crate) trait SealedInstance {
|
||||||
const TX_DREQ: u8;
|
|
||||||
const RX_DREQ: u8;
|
|
||||||
|
|
||||||
fn regs() -> crate::pac::i2c::I2c;
|
fn regs() -> crate::pac::i2c::I2c;
|
||||||
fn reset() -> crate::pac::resets::regs::Peripherals;
|
fn reset() -> crate::pac::resets::regs::Peripherals;
|
||||||
fn waker() -> &'static AtomicWaker;
|
fn waker() -> &'static AtomicWaker;
|
||||||
@ -816,11 +813,8 @@ pub trait Instance: SealedInstance {
|
|||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! impl_instance {
|
macro_rules! impl_instance {
|
||||||
($type:ident, $irq:ident, $reset:ident, $tx_dreq:expr, $rx_dreq:expr) => {
|
($type:ident, $irq:ident, $reset:ident) => {
|
||||||
impl SealedInstance for peripherals::$type {
|
impl SealedInstance for peripherals::$type {
|
||||||
const TX_DREQ: u8 = $tx_dreq;
|
|
||||||
const RX_DREQ: u8 = $rx_dreq;
|
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn regs() -> pac::i2c::I2c {
|
fn regs() -> pac::i2c::I2c {
|
||||||
pac::$type
|
pac::$type
|
||||||
@ -846,8 +840,8 @@ macro_rules! impl_instance {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
impl_instance!(I2C0, I2C0_IRQ, set_i2c0, 32, 33);
|
impl_instance!(I2C0, I2C0_IRQ, set_i2c0);
|
||||||
impl_instance!(I2C1, I2C1_IRQ, set_i2c1, 34, 35);
|
impl_instance!(I2C1, I2C1_IRQ, set_i2c1);
|
||||||
|
|
||||||
/// SDA pin.
|
/// SDA pin.
|
||||||
pub trait SdaPin<T: Instance>: crate::gpio::Pin {}
|
pub trait SdaPin<T: Instance>: crate::gpio::Pin {}
|
||||||
|
@ -8,8 +8,6 @@
|
|||||||
|
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::ffi::OsString;
|
|
||||||
use std::process::Command;
|
|
||||||
|
|
||||||
/// Helper for emitting cargo instruction for enabling configs (`cargo:rustc-cfg=X`) and declaring
|
/// Helper for emitting cargo instruction for enabling configs (`cargo:rustc-cfg=X`) and declaring
|
||||||
/// them (`cargo:rust-check-cfg=cfg(X)`).
|
/// them (`cargo:rust-check-cfg=cfg(X)`).
|
||||||
@ -17,7 +15,6 @@ use std::process::Command;
|
|||||||
pub struct CfgSet {
|
pub struct CfgSet {
|
||||||
enabled: HashSet<String>,
|
enabled: HashSet<String>,
|
||||||
declared: HashSet<String>,
|
declared: HashSet<String>,
|
||||||
emit_declared: bool,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CfgSet {
|
impl CfgSet {
|
||||||
@ -25,7 +22,6 @@ impl CfgSet {
|
|||||||
Self {
|
Self {
|
||||||
enabled: HashSet::new(),
|
enabled: HashSet::new(),
|
||||||
declared: HashSet::new(),
|
declared: HashSet::new(),
|
||||||
emit_declared: is_rustc_nightly(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +45,7 @@ impl CfgSet {
|
|||||||
///
|
///
|
||||||
/// This enables rustc to check that the configs in `#[cfg(...)]` attributes are valid.
|
/// This enables rustc to check that the configs in `#[cfg(...)]` attributes are valid.
|
||||||
pub fn declare(&mut self, cfg: impl AsRef<str>) {
|
pub fn declare(&mut self, cfg: impl AsRef<str>) {
|
||||||
if self.declared.insert(cfg.as_ref().to_owned()) && self.emit_declared {
|
if self.declared.insert(cfg.as_ref().to_owned()) {
|
||||||
println!("cargo:rustc-check-cfg=cfg({})", cfg.as_ref());
|
println!("cargo:rustc-check-cfg=cfg({})", cfg.as_ref());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -69,21 +65,6 @@ impl CfgSet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_rustc_nightly() -> bool {
|
|
||||||
if env::var_os("EMBASSY_FORCE_CHECK_CFG").is_some() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
let rustc = env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc"));
|
|
||||||
|
|
||||||
let output = Command::new(rustc)
|
|
||||||
.arg("--version")
|
|
||||||
.output()
|
|
||||||
.expect("failed to run `rustc --version`");
|
|
||||||
|
|
||||||
String::from_utf8_lossy(&output.stdout).contains("nightly")
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Sets configs that describe the target platform.
|
/// Sets configs that describe the target platform.
|
||||||
pub fn set_target_cfgs(cfgs: &mut CfgSet) {
|
pub fn set_target_cfgs(cfgs: &mut CfgSet) {
|
||||||
let target = env::var("TARGET").unwrap();
|
let target = env::var("TARGET").unwrap();
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#![macro_use]
|
#![macro_use]
|
||||||
#![allow(missing_docs)] // TODO
|
#![allow(missing_docs)] // TODO
|
||||||
|
#![cfg_attr(adc_f3_v2, allow(unused))]
|
||||||
|
|
||||||
#[cfg(not(adc_f3_v2))]
|
#[cfg(not(adc_f3_v2))]
|
||||||
#[cfg_attr(adc_f1, path = "f1.rs")]
|
#[cfg_attr(adc_f1, path = "f1.rs")]
|
||||||
|
@ -45,6 +45,7 @@ pub struct OpAmpOutput<'d, T: Instance> {
|
|||||||
/// OpAmp internal outputs, wired directly to ADC inputs.
|
/// OpAmp internal outputs, wired directly to ADC inputs.
|
||||||
///
|
///
|
||||||
/// This struct can be used as an ADC input.
|
/// This struct can be used as an ADC input.
|
||||||
|
#[cfg(opamp_g4)]
|
||||||
pub struct OpAmpInternalOutput<'d, T: Instance> {
|
pub struct OpAmpInternalOutput<'d, T: Instance> {
|
||||||
_inner: &'d OpAmp<'d, T>,
|
_inner: &'d OpAmp<'d, T>,
|
||||||
}
|
}
|
||||||
@ -184,6 +185,7 @@ impl<'d, T: Instance> Drop for OpAmpOutput<'d, T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(opamp_g4)]
|
||||||
impl<'d, T: Instance> Drop for OpAmpInternalOutput<'d, T> {
|
impl<'d, T: Instance> Drop for OpAmpInternalOutput<'d, T> {
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
T::regs().csr().modify(|w| {
|
T::regs().csr().modify(|w| {
|
||||||
|
@ -1060,10 +1060,6 @@ pub(crate) trait SealedInstance {
|
|||||||
const REGS: Regs;
|
const REGS: Regs;
|
||||||
}
|
}
|
||||||
|
|
||||||
trait SealedWord {
|
|
||||||
const CONFIG: u8;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// OSPI instance trait.
|
/// OSPI instance trait.
|
||||||
#[allow(private_bounds)]
|
#[allow(private_bounds)]
|
||||||
pub trait Instance: Peripheral<P = Self> + SealedInstance + RccPeripheral {}
|
pub trait Instance: Peripheral<P = Self> + SealedInstance + RccPeripheral {}
|
||||||
@ -1110,17 +1106,14 @@ impl<'d, T: Instance, M: PeriMode> GetConfig for Ospi<'d, T, M> {
|
|||||||
|
|
||||||
/// Word sizes usable for OSPI.
|
/// Word sizes usable for OSPI.
|
||||||
#[allow(private_bounds)]
|
#[allow(private_bounds)]
|
||||||
pub trait Word: word::Word + SealedWord {}
|
pub trait Word: word::Word {}
|
||||||
|
|
||||||
macro_rules! impl_word {
|
macro_rules! impl_word {
|
||||||
($T:ty, $config:expr) => {
|
($T:ty) => {
|
||||||
impl SealedWord for $T {
|
|
||||||
const CONFIG: u8 = $config;
|
|
||||||
}
|
|
||||||
impl Word for $T {}
|
impl Word for $T {}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
impl_word!(u8, 8);
|
impl_word!(u8);
|
||||||
impl_word!(u16, 16);
|
impl_word!(u16);
|
||||||
impl_word!(u32, 32);
|
impl_word!(u32);
|
||||||
|
@ -1282,6 +1282,7 @@ pub(crate) struct Info {
|
|||||||
struct State {}
|
struct State {}
|
||||||
|
|
||||||
impl State {
|
impl State {
|
||||||
|
#[allow(unused)]
|
||||||
const fn new() -> Self {
|
const fn new() -> Self {
|
||||||
Self {}
|
Self {}
|
||||||
}
|
}
|
||||||
|
@ -8,8 +8,6 @@
|
|||||||
|
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::ffi::OsString;
|
|
||||||
use std::process::Command;
|
|
||||||
|
|
||||||
/// Helper for emitting cargo instruction for enabling configs (`cargo:rustc-cfg=X`) and declaring
|
/// Helper for emitting cargo instruction for enabling configs (`cargo:rustc-cfg=X`) and declaring
|
||||||
/// them (`cargo:rust-check-cfg=cfg(X)`).
|
/// them (`cargo:rust-check-cfg=cfg(X)`).
|
||||||
@ -17,7 +15,6 @@ use std::process::Command;
|
|||||||
pub struct CfgSet {
|
pub struct CfgSet {
|
||||||
enabled: HashSet<String>,
|
enabled: HashSet<String>,
|
||||||
declared: HashSet<String>,
|
declared: HashSet<String>,
|
||||||
emit_declared: bool,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CfgSet {
|
impl CfgSet {
|
||||||
@ -25,7 +22,6 @@ impl CfgSet {
|
|||||||
Self {
|
Self {
|
||||||
enabled: HashSet::new(),
|
enabled: HashSet::new(),
|
||||||
declared: HashSet::new(),
|
declared: HashSet::new(),
|
||||||
emit_declared: is_rustc_nightly(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +45,7 @@ impl CfgSet {
|
|||||||
///
|
///
|
||||||
/// This enables rustc to check that the configs in `#[cfg(...)]` attributes are valid.
|
/// This enables rustc to check that the configs in `#[cfg(...)]` attributes are valid.
|
||||||
pub fn declare(&mut self, cfg: impl AsRef<str>) {
|
pub fn declare(&mut self, cfg: impl AsRef<str>) {
|
||||||
if self.declared.insert(cfg.as_ref().to_owned()) && self.emit_declared {
|
if self.declared.insert(cfg.as_ref().to_owned()) {
|
||||||
println!("cargo:rustc-check-cfg=cfg({})", cfg.as_ref());
|
println!("cargo:rustc-check-cfg=cfg({})", cfg.as_ref());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -69,21 +65,6 @@ impl CfgSet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_rustc_nightly() -> bool {
|
|
||||||
if env::var_os("EMBASSY_FORCE_CHECK_CFG").is_some() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
let rustc = env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc"));
|
|
||||||
|
|
||||||
let output = Command::new(rustc)
|
|
||||||
.arg("--version")
|
|
||||||
.output()
|
|
||||||
.expect("failed to run `rustc --version`");
|
|
||||||
|
|
||||||
String::from_utf8_lossy(&output.stdout).contains("nightly")
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Sets configs that describe the target platform.
|
/// Sets configs that describe the target platform.
|
||||||
pub fn set_target_cfgs(cfgs: &mut CfgSet) {
|
pub fn set_target_cfgs(cfgs: &mut CfgSet) {
|
||||||
let target = env::var("TARGET").unwrap();
|
let target = env::var("TARGET").unwrap();
|
||||||
|
@ -278,6 +278,7 @@ pub enum DescriptorType {
|
|||||||
|
|
||||||
/// Table 5. Descriptor set information structure.
|
/// Table 5. Descriptor set information structure.
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
|
#[allow(unused)]
|
||||||
#[repr(C, packed(1))]
|
#[repr(C, packed(1))]
|
||||||
pub struct DescriptorSetInformation {
|
pub struct DescriptorSetInformation {
|
||||||
dwWindowsVersion: u32,
|
dwWindowsVersion: u32,
|
||||||
@ -288,6 +289,7 @@ pub struct DescriptorSetInformation {
|
|||||||
|
|
||||||
/// Table 4. Microsoft OS 2.0 platform capability descriptor header.
|
/// Table 4. Microsoft OS 2.0 platform capability descriptor header.
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
|
#[allow(unused)]
|
||||||
#[repr(C, packed(1))]
|
#[repr(C, packed(1))]
|
||||||
pub struct PlatformDescriptor {
|
pub struct PlatformDescriptor {
|
||||||
bLength: u8,
|
bLength: u8,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[toolchain]
|
[toolchain]
|
||||||
channel = "1.79"
|
channel = "1.80"
|
||||||
components = [ "rust-src", "rustfmt", "llvm-tools" ]
|
components = [ "rust-src", "rustfmt", "llvm-tools" ]
|
||||||
targets = [
|
targets = [
|
||||||
"thumbv7em-none-eabi",
|
"thumbv7em-none-eabi",
|
||||||
|
Loading…
Reference in New Issue
Block a user