[opentitanlib] Add alert_handler_reg tests
Signed-off-by: Jon Flatley <jflat@google.com>
diff --git a/BUILD.bazel b/BUILD.bazel
index 4a52beb..531e515 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -142,6 +142,7 @@
name = "rust_analyzer",
targets = [
"//sw/host/opentitanlib:opentitanlib",
+ "//sw/host/opentitanlib/opentitantool_derive:opentitantool_derive",
"//sw/host/opentitansession:opentitansession",
"//sw/host/opentitantool:opentitantool",
],
diff --git a/sw/host/opentitanlib/src/otp/alert_handler.rs b/sw/host/opentitanlib/src/otp/alert_handler.rs
index cc8a1b2..b149408 100644
--- a/sw/host/opentitanlib/src/otp/alert_handler.rs
+++ b/sw/host/opentitanlib/src/otp/alert_handler.rs
@@ -14,7 +14,7 @@
use std::convert::TryFrom;
/// ALERT_HANDLER_ALERT_CLASS related register values.
-#[derive(Clone, Copy)]
+#[derive(Clone, Copy, Debug, PartialEq)]
struct AlertClassRegs {
regwen: u32,
ctrl: u32,
@@ -24,6 +24,7 @@
}
/// Register values for alert_handler used in CRC32 calculation.
+#[derive(Debug, PartialEq)]
pub struct AlertRegs {
/// ALERT_HANDLER_LOC_ALERT_REGWEN
regwen: [u32; ALERT_HANDLER_ALERT_REGWEN_MULTIREG_COUNT as usize],
@@ -41,6 +42,7 @@
class_regs: [AlertClassRegs; ALERT_HANDLER_PARAM_N_CLASSES as usize],
}
+// TODO: Use bindgen to produce the following enum definitions.
/// Alert classification values.
///
/// Based on values generated by sparse-fsm-encode.py and defined in
@@ -130,6 +132,8 @@
}
impl AlertRegs {
+ /// Compute the CRC32 of the internal register values to match the value produced by
+ /// `sw/device/silicon_creator/lib/drivers/alert.h:alert_config_crc32`.
pub fn crc32(self) -> u32 {
let crc = new_crc();
let mut digest = crc.digest();
@@ -137,55 +141,49 @@
digest.finalize()
}
- pub fn new<T: OtpRead>(lc_state: LcStateVal, otp: &T) -> Result<Self> {
+ /// Create the set of alert_handler register values from a given lifecycle state and OTP.
+ ///
+ /// The internal fields of `AlertRegs` should match those produced on the device after
+ /// alert_handler is configured in `sw/device/silicon_creator/lib/shutdown.h:shutdown_init`.
+ pub fn try_new<T: OtpRead>(lc_state: LcStateVal, otp: &T) -> Result<Self> {
let mut alert = AlertRegs::default();
let lc_shift = match lc_state {
LcStateVal::Prod => 0,
- LcStateVal::ProdEnd => 8,
- LcStateVal::Dev => 16,
- LcStateVal::Rma => 24,
+ LcStateVal::ProdEnd => 1,
+ LcStateVal::Dev => 2,
+ LcStateVal::Rma => 3,
LcStateVal::Test => return Ok(alert),
};
let class_enable = otp.read32("ROM_ALERT_CLASS_EN")?;
- let class_escalate = otp.read32("ROM_ALERT_CLASS_ESCALATION")?;
+ let class_escalate = otp.read32("ROM_ALERT_ESCALATION")?;
for i in 0..ALERT_HANDLER_ALERT_CLASS_SHADOWED_MULTIREG_COUNT as usize {
let value = otp.read32_offset(Some("ROM_ALERT_CLASSIFICATION"), i * 4)?;
- let cls = AlertClass::try_from(
- value.view_bits::<Lsb0>()[lc_shift..lc_shift + 1].load_le::<u8>(),
- )?;
- let enable = AlertEnable::try_from(
- class_enable.view_bits::<Lsb0>()[cls.index()..cls.index() + 1].load_le::<u8>(),
- )?;
+ let cls = AlertClass::try_from(value.to_le_bytes()[lc_shift])?;
+ let enable = AlertEnable::try_from(class_enable.to_le_bytes()[cls.index()])?;
alert.configure(i, cls, enable)?;
}
for i in 0..ALERT_HANDLER_LOC_ALERT_CLASS_SHADOWED_MULTIREG_COUNT as usize {
let value = otp.read32_offset(Some("ROM_LOCAL_ALERT_CLASSIFICATION"), i * 4)?;
- let cls = AlertClass::try_from(
- value.view_bits::<Lsb0>()[lc_shift..lc_shift + 1].load_le::<u8>(),
- )?;
- let enable = AlertEnable::try_from(
- class_enable.view_bits::<Lsb0>()[cls.index()..cls.index() + 1].load_le::<u8>(),
- )?;
+ let cls = AlertClass::try_from(value.to_le_bytes()[lc_shift])?;
+ let enable = AlertEnable::try_from(class_enable.to_le_bytes()[cls.index()])?;
alert.local_configure(i, cls, enable)?;
}
for i in 0..ALERT_HANDLER_PARAM_N_CLASSES as usize {
let mut phase_cycs = [0; ALERT_HANDLER_PARAM_N_PHASES as usize];
for phase in 0..ALERT_HANDLER_PARAM_N_PHASES as usize {
- phase_cycs[phase] = otp
- .read32_offset(Some("ROM_ALERT_PHASE_CYCLES"), i * phase_cycs.len() + phase)?;
+ phase_cycs[phase] = otp.read32_offset(
+ Some("ROM_ALERT_PHASE_CYCLES"),
+ (i * phase_cycs.len() + phase) * 4,
+ )?;
}
let config = AlertClassConfig {
- enabled: AlertEnable::try_from(
- class_enable.view_bits::<Lsb0>()[i..i + 1].load_le::<u8>(),
- )?,
- escalate: AlertEscalate::try_from(
- class_escalate.view_bits::<Lsb0>()[i..i + 1].load_le::<u8>(),
- )?,
+ enabled: AlertEnable::try_from(class_enable.to_le_bytes()[i])?,
+ escalate: AlertEscalate::try_from(class_escalate.to_le_bytes()[i])?,
accum_thresh: otp.read32_offset(Some("ROM_ALERT_ACCUM_THRESH"), i * 4)?,
timeout_cyc: otp.read32_offset(Some("ROM_ALERT_TIMEOUT_CYCLES"), i * 4)?,
phase_cycs,
@@ -261,7 +259,18 @@
};
let mut reg = 0 as u32;
+
+ reg |= (0 & ALERT_HANDLER_CLASSA_CTRL_SHADOWED_MAP_E0_MASK)
+ << ALERT_HANDLER_CLASSA_CTRL_SHADOWED_MAP_E0_OFFSET;
+ reg |= (1 & ALERT_HANDLER_CLASSA_CTRL_SHADOWED_MAP_E1_MASK)
+ << ALERT_HANDLER_CLASSA_CTRL_SHADOWED_MAP_E1_OFFSET;
+ reg |= (2 & ALERT_HANDLER_CLASSA_CTRL_SHADOWED_MAP_E2_MASK)
+ << ALERT_HANDLER_CLASSA_CTRL_SHADOWED_MAP_E2_OFFSET;
+ reg |= (3 & ALERT_HANDLER_CLASSA_CTRL_SHADOWED_MAP_E3_MASK)
+ << ALERT_HANDLER_CLASSA_CTRL_SHADOWED_MAP_E3_OFFSET;
+
let reg_bits = reg.view_bits_mut::<Lsb0>();
+
match config.enabled {
AlertEnable::None => {}
AlertEnable::Enabled => {
@@ -295,7 +304,7 @@
AlertEscalate::None => {}
}
- self.class[index] = reg;
+ self.class_regs[index].ctrl = reg;
self.class_regs[index].accum_thresh = config.accum_thresh;
self.class_regs[index].timeout_cyc = config.timeout_cyc;
self.class_regs[index].phase_cycs = config.phase_cycs;
@@ -304,23 +313,23 @@
}
}
-trait CRC32Add {
+trait Crc32Add {
fn crc32_add(self, diegst: &mut Digest<u32>);
}
-impl CRC32Add for u32 {
+impl Crc32Add for u32 {
fn crc32_add(self, digest: &mut Digest<u32>) {
digest.update(self.to_le_bytes().as_slice())
}
}
-impl<T: CRC32Add, const N: usize> CRC32Add for [T; N] {
+impl<T: Crc32Add, const N: usize> Crc32Add for [T; N] {
fn crc32_add(self, digest: &mut Digest<u32>) {
self.map(|v| v.crc32_add(digest));
}
}
-impl CRC32Add for AlertClassRegs {
+impl Crc32Add for AlertClassRegs {
fn crc32_add(self, digest: &mut Digest<u32>) {
self.regwen.crc32_add(digest);
self.ctrl.crc32_add(digest);
@@ -330,7 +339,7 @@
}
}
-impl CRC32Add for AlertRegs {
+impl Crc32Add for AlertRegs {
fn crc32_add(self, digest: &mut Digest<u32>) {
self.regwen.crc32_add(digest);
self.en.crc32_add(digest);
@@ -431,15 +440,30 @@
struct TestOtp {}
+ // OTP values that corrispond to the above `TEST_REG` values.
impl OtpRead for TestOtp {
fn read32_offset(&self, name: Option<&str>, offset: usize) -> Result<u32> {
- let mut start_offset = 0;
- if let Some(name) = name {}
- Ok(0)
+ let name = name.unwrap();
+ Ok(match name {
+ "ROM_ALERT_CLASS_EN" => 0xa9a9a9a9,
+ "ROM_ALERT_ESCALATION" => 0xd1d1d1d1,
+ "ROM_ALERT_CLASSIFICATION" | "ROM_LOCAL_ALERT_CLASSIFICATION" => 0x94949494,
+ "ROM_ALERT_PHASE_CYCLES" => [
+ 0x00000000, 0x0000000a, 0x0000000a, 0xffffffff, // Class 0
+ 0x00000000, 0x0000000a, 0x0000000a, 0xffffffff, // Class 1
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, // Class 2
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, // Class 3
+ ][offset / 4],
+ "ROM_ALERT_ACCUM_THRESH" | "ROM_ALERT_TIMEOUT_CYCLES" => 0x00000000,
+ _ => panic!("No such OTP value {}", name),
+ })
}
}
// A sanity test to make sure the correct CRC algorithm is being used.
+ //
+ // These values are taken from the CRC32 unit tests in
+ // `sw/device/silicon_creator/lib/crc32_unittest.cc`.
#[test]
fn test_new_crc() {
let crc = new_crc();
@@ -462,4 +486,12 @@
fn test_crc_from_regs() {
assert_eq!(TEST_REGS.crc32(), 0xf9616122);
}
+
+ #[test]
+ fn test_regs_from_otp() {
+ assert_eq!(
+ TEST_REGS,
+ AlertRegs::try_new(LcStateVal::Dev, &TestOtp {}).unwrap()
+ );
+ }
}
diff --git a/sw/host/opentitanlib/src/otp/alert_handler_regs.rs b/sw/host/opentitanlib/src/otp/alert_handler_regs.rs
index f947327..4bf11df 100644
--- a/sw/host/opentitanlib/src/otp/alert_handler_regs.rs
+++ b/sw/host/opentitanlib/src/otp/alert_handler_regs.rs
@@ -1,3 +1,7 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
/* automatically generated by rust-bindgen 0.60.1 */
pub const ALERT_HANDLER_PARAM_N_ALERTS: u32 = 65;
diff --git a/sw/host/opentitanlib/src/otp/otp_img.rs b/sw/host/opentitanlib/src/otp/otp_img.rs
index 69d4963..14214a9 100644
--- a/sw/host/opentitanlib/src/otp/otp_img.rs
+++ b/sw/host/opentitanlib/src/otp/otp_img.rs
@@ -39,16 +39,6 @@
fn read32_offset(&self, name: Option<&str>, offset: usize) -> Result<u32>;
}
-impl OtpRead for OtpImg {
- fn read32_offset(&self, name: Option<&str>, offset: usize) -> Result<u32> {
- let mut start_offset = 0;
- if let Some(name) = name {
-
- }
- Ok(0)
- }
-}
-
impl OtpImgPartition {
pub fn get_item(&mut self, name: &str) -> Option<&mut OtpImgItem> {
self.items
diff --git a/third_party/rust/crates/crates.bzl b/third_party/rust/crates/crates.bzl
index 996d8a9..6c4a529 100644
--- a/third_party/rust/crates/crates.bzl
+++ b/third_party/rust/crates/crates.bzl
@@ -212,347 +212,176 @@
# Each of these may be used to temporarily override the location of
# the crate to a path on your local filesystem for local development
# of crates you may be using in your project.
- CoreFoundation_sys__0_1_4=None,
-
- IOKit_sys__0_1_5=None,
-
- addr2line__0_17_0=None,
-
- adler__1_0_2=None,
-
- aho_corasick__0_7_19=None,
-
- android_system_properties__0_1_5=None,
-
- ansi_term__0_12_1=None,
-
- anyhow__1_0_64=None,
-
- atty__0_2_14=None,
-
- autocfg__0_1_8=None,
-
- autocfg__1_1_0=None,
-
- backtrace__0_3_66=None,
-
- base64ct__1_1_1=None,
-
- bitflags__1_3_2=None,
-
- bitvec__1_0_1=None,
-
- block_buffer__0_10_3=None,
-
- bumpalo__3_11_0=None,
-
- byteorder__1_4_3=None,
-
- cc__1_0_73=None,
-
- cfg_if__0_1_10=None,
-
- cfg_if__1_0_0=None,
-
- chrono__0_4_22=None,
-
- clap__2_34_0=None,
-
- console__0_15_1=None,
-
- const_oid__0_6_2=None,
-
- core_foundation_sys__0_8_3=None,
-
- cpufeatures__0_2_5=None,
-
- crc__3_0_0=None,
-
- crc_catalog__2_1_0=None,
-
- crc32fast__1_3_2=None,
-
- crypto_bigint__0_2_11=None,
-
- crypto_common__0_1_6=None,
-
- ctor__0_1_23=None,
-
- der__0_4_5=None,
-
- derive_more__0_14_1=None,
-
- deser_hjson__1_0_2=None,
-
- digest__0_10_3=None,
-
- digest__0_9_0=None,
-
- directories__4_0_1=None,
-
- dirs_sys__0_3_7=None,
-
- encode_unicode__0_3_6=None,
-
- env_logger__0_8_4=None,
-
- erased_serde__0_3_23=None,
-
- fastrand__1_8_0=None,
-
- flate2__1_0_24=None,
-
- funty__2_0_0=None,
-
- generic_array__0_14_6=None,
-
- getrandom__0_2_7=None,
-
- ghost__0_1_6=None,
-
- gimli__0_26_2=None,
-
- heck__0_3_3=None,
-
- hermit_abi__0_1_19=None,
-
- hex__0_4_3=None,
-
- humantime__2_1_0=None,
-
- iana_time_zone__0_1_47=None,
-
- indicatif__0_16_2=None,
-
- instant__0_1_12=None,
-
- inventory__0_2_3=None,
-
- itoa__1_0_3=None,
-
- js_sys__0_3_60=None,
-
- lazy_static__1_4_0=None,
-
- libc__0_2_132=None,
-
- libm__0_2_5=None,
-
- libudev__0_3_0=None,
-
- libudev_sys__0_1_4=None,
-
- libusb1_sys__0_5_0=None,
-
- log__0_4_17=None,
-
- mach__0_1_2=None,
-
- mach__0_3_2=None,
-
- memchr__2_5_0=None,
-
- memoffset__0_6_5=None,
-
- miniz_oxide__0_5_4=None,
-
- mio__0_7_14=None,
-
- mio_signals__0_1_5=None,
-
- miow__0_3_7=None,
-
- nix__0_17_0=None,
-
- nix__0_24_2=None,
-
- ntapi__0_3_7=None,
-
- num_bigint_dig__0_7_0=None,
-
- num_integer__0_1_45=None,
-
- num_iter__0_1_43=None,
-
- num_traits__0_2_15=None,
-
- num_enum__0_5_7=None,
-
- num_enum_derive__0_5_7=None,
-
- number_prefix__0_4_0=None,
-
- object__0_25_3=None,
-
- object__0_29_0=None,
-
- once_cell__1_14_0=None,
-
- pem_rfc7468__0_2_4=None,
-
- pkcs1__0_2_4=None,
-
- pkcs8__0_7_6=None,
-
- pkg_config__0_3_25=None,
-
- ppv_lite86__0_2_16=None,
-
- proc_macro_crate__1_2_1=None,
-
- proc_macro_error__1_0_4=None,
-
- proc_macro_error_attr__1_0_4=None,
-
- proc_macro2__0_4_30=None,
-
- proc_macro2__1_0_43=None,
-
- quote__0_6_13=None,
-
- quote__1_0_21=None,
-
- radium__0_7_0=None,
-
- rand__0_8_5=None,
-
- rand_chacha__0_3_1=None,
-
- rand_core__0_6_3=None,
-
- raw_tty__0_1_0=None,
-
- redox_syscall__0_2_16=None,
-
- redox_users__0_4_3=None,
-
- regex__1_6_0=None,
-
- regex_syntax__0_6_27=None,
-
- remove_dir_all__0_5_3=None,
-
- rsa__0_5_0=None,
-
- rusb__0_8_1=None,
-
- rustc_demangle__0_1_21=None,
-
- rustc_version__0_2_3=None,
-
- ryu__1_0_11=None,
-
- semver__0_9_0=None,
-
- semver_parser__0_7_0=None,
-
- serde__1_0_144=None,
-
- serde_derive__1_0_144=None,
-
- serde_json__1_0_85=None,
-
- serialport__4_2_0=None,
-
- sha2__0_10_5=None,
-
- shellwords__1_1_0=None,
-
- smallvec__1_9_0=None,
-
- spin__0_5_2=None,
-
- spki__0_4_1=None,
-
- strsim__0_8_0=None,
-
- structopt__0_3_26=None,
-
- structopt_derive__0_4_18=None,
-
- subtle__2_4_1=None,
-
- syn__0_15_44=None,
-
- syn__1_0_99=None,
-
- synstructure__0_12_6=None,
-
- tap__1_0_1=None,
-
- tempfile__3_3_0=None,
-
- termcolor__1_1_3=None,
-
- terminal_size__0_1_17=None,
-
- textwrap__0_11_0=None,
-
- thiserror__1_0_34=None,
-
- thiserror_impl__1_0_34=None,
-
- time__0_1_44=None,
-
- toml__0_5_9=None,
-
- typenum__1_15_0=None,
-
- typetag__0_1_8=None,
-
- typetag_impl__0_1_8=None,
-
- unicode_ident__1_0_3=None,
-
- unicode_segmentation__1_9_0=None,
-
- unicode_width__0_1_9=None,
-
- unicode_xid__0_1_0=None,
-
- unicode_xid__0_2_3=None,
-
- vcpkg__0_2_15=None,
-
- vec_map__0_8_2=None,
-
- version_check__0_9_4=None,
-
- void__1_0_2=None,
-
- wasi__0_10_0_wasi_snapshot_preview1=None,
-
- wasi__0_11_0_wasi_snapshot_preview1=None,
-
- wasm_bindgen__0_2_83=None,
-
- wasm_bindgen_backend__0_2_83=None,
-
- wasm_bindgen_macro__0_2_83=None,
-
- wasm_bindgen_macro_support__0_2_83=None,
-
- wasm_bindgen_shared__0_2_83=None,
-
- winapi__0_3_9=None,
-
- winapi_i686_pc_windows_gnu__0_4_0=None,
-
- winapi_util__0_1_5=None,
-
- winapi_x86_64_pc_windows_gnu__0_4_0=None,
-
- wyz__0_5_0=None,
-
- zerocopy__0_5_0=None,
-
- zerocopy_derive__0_3_1=None,
-
- zeroize__1_4_3=None,
-
- zeroize_derive__1_3_2=None,
-
- ):
+ CoreFoundation_sys__0_1_4 = None,
+ IOKit_sys__0_1_5 = None,
+ addr2line__0_17_0 = None,
+ adler__1_0_2 = None,
+ aho_corasick__0_7_19 = None,
+ android_system_properties__0_1_5 = None,
+ ansi_term__0_12_1 = None,
+ anyhow__1_0_64 = None,
+ atty__0_2_14 = None,
+ autocfg__0_1_8 = None,
+ autocfg__1_1_0 = None,
+ backtrace__0_3_66 = None,
+ base64ct__1_1_1 = None,
+ bitflags__1_3_2 = None,
+ bitvec__1_0_1 = None,
+ block_buffer__0_10_3 = None,
+ bumpalo__3_11_0 = None,
+ byteorder__1_4_3 = None,
+ cc__1_0_73 = None,
+ cfg_if__0_1_10 = None,
+ cfg_if__1_0_0 = None,
+ chrono__0_4_22 = None,
+ clap__2_34_0 = None,
+ console__0_15_1 = None,
+ const_oid__0_6_2 = None,
+ core_foundation_sys__0_8_3 = None,
+ cpufeatures__0_2_5 = None,
+ crc__3_0_0 = None,
+ crc_catalog__2_1_0 = None,
+ crc32fast__1_3_2 = None,
+ crypto_bigint__0_2_11 = None,
+ crypto_common__0_1_6 = None,
+ ctor__0_1_23 = None,
+ der__0_4_5 = None,
+ derive_more__0_14_1 = None,
+ deser_hjson__1_0_2 = None,
+ digest__0_10_3 = None,
+ digest__0_9_0 = None,
+ directories__4_0_1 = None,
+ dirs_sys__0_3_7 = None,
+ encode_unicode__0_3_6 = None,
+ env_logger__0_8_4 = None,
+ erased_serde__0_3_23 = None,
+ fastrand__1_8_0 = None,
+ flate2__1_0_24 = None,
+ funty__2_0_0 = None,
+ generic_array__0_14_6 = None,
+ getrandom__0_2_7 = None,
+ ghost__0_1_6 = None,
+ gimli__0_26_2 = None,
+ heck__0_3_3 = None,
+ hermit_abi__0_1_19 = None,
+ hex__0_4_3 = None,
+ humantime__2_1_0 = None,
+ iana_time_zone__0_1_47 = None,
+ indicatif__0_16_2 = None,
+ instant__0_1_12 = None,
+ inventory__0_2_3 = None,
+ itoa__1_0_3 = None,
+ js_sys__0_3_60 = None,
+ lazy_static__1_4_0 = None,
+ libc__0_2_132 = None,
+ libm__0_2_5 = None,
+ libudev__0_3_0 = None,
+ libudev_sys__0_1_4 = None,
+ libusb1_sys__0_5_0 = None,
+ log__0_4_17 = None,
+ mach__0_1_2 = None,
+ mach__0_3_2 = None,
+ memchr__2_5_0 = None,
+ memoffset__0_6_5 = None,
+ miniz_oxide__0_5_4 = None,
+ mio__0_7_14 = None,
+ mio_signals__0_1_5 = None,
+ miow__0_3_7 = None,
+ nix__0_17_0 = None,
+ nix__0_24_2 = None,
+ ntapi__0_3_7 = None,
+ num_bigint_dig__0_7_0 = None,
+ num_integer__0_1_45 = None,
+ num_iter__0_1_43 = None,
+ num_traits__0_2_15 = None,
+ num_enum__0_5_7 = None,
+ num_enum_derive__0_5_7 = None,
+ number_prefix__0_4_0 = None,
+ object__0_25_3 = None,
+ object__0_29_0 = None,
+ once_cell__1_14_0 = None,
+ pem_rfc7468__0_2_4 = None,
+ pkcs1__0_2_4 = None,
+ pkcs8__0_7_6 = None,
+ pkg_config__0_3_25 = None,
+ ppv_lite86__0_2_16 = None,
+ proc_macro_crate__1_2_1 = None,
+ proc_macro_error__1_0_4 = None,
+ proc_macro_error_attr__1_0_4 = None,
+ proc_macro2__0_4_30 = None,
+ proc_macro2__1_0_43 = None,
+ quote__0_6_13 = None,
+ quote__1_0_21 = None,
+ radium__0_7_0 = None,
+ rand__0_8_5 = None,
+ rand_chacha__0_3_1 = None,
+ rand_core__0_6_3 = None,
+ raw_tty__0_1_0 = None,
+ redox_syscall__0_2_16 = None,
+ redox_users__0_4_3 = None,
+ regex__1_6_0 = None,
+ regex_syntax__0_6_27 = None,
+ remove_dir_all__0_5_3 = None,
+ rsa__0_5_0 = None,
+ rusb__0_8_1 = None,
+ rustc_demangle__0_1_21 = None,
+ rustc_version__0_2_3 = None,
+ ryu__1_0_11 = None,
+ semver__0_9_0 = None,
+ semver_parser__0_7_0 = None,
+ serde__1_0_144 = None,
+ serde_derive__1_0_144 = None,
+ serde_json__1_0_85 = None,
+ serialport__4_2_0 = None,
+ sha2__0_10_5 = None,
+ shellwords__1_1_0 = None,
+ smallvec__1_9_0 = None,
+ spin__0_5_2 = None,
+ spki__0_4_1 = None,
+ strsim__0_8_0 = None,
+ structopt__0_3_26 = None,
+ structopt_derive__0_4_18 = None,
+ subtle__2_4_1 = None,
+ syn__0_15_44 = None,
+ syn__1_0_99 = None,
+ synstructure__0_12_6 = None,
+ tap__1_0_1 = None,
+ tempfile__3_3_0 = None,
+ termcolor__1_1_3 = None,
+ terminal_size__0_1_17 = None,
+ textwrap__0_11_0 = None,
+ thiserror__1_0_34 = None,
+ thiserror_impl__1_0_34 = None,
+ time__0_1_44 = None,
+ toml__0_5_9 = None,
+ typenum__1_15_0 = None,
+ typetag__0_1_8 = None,
+ typetag_impl__0_1_8 = None,
+ unicode_ident__1_0_3 = None,
+ unicode_segmentation__1_9_0 = None,
+ unicode_width__0_1_9 = None,
+ unicode_xid__0_1_0 = None,
+ unicode_xid__0_2_3 = None,
+ vcpkg__0_2_15 = None,
+ vec_map__0_8_2 = None,
+ version_check__0_9_4 = None,
+ void__1_0_2 = None,
+ wasi__0_10_0_wasi_snapshot_preview1 = None,
+ wasi__0_11_0_wasi_snapshot_preview1 = None,
+ wasm_bindgen__0_2_83 = None,
+ wasm_bindgen_backend__0_2_83 = None,
+ wasm_bindgen_macro__0_2_83 = None,
+ wasm_bindgen_macro_support__0_2_83 = None,
+ wasm_bindgen_shared__0_2_83 = None,
+ winapi__0_3_9 = None,
+ winapi_i686_pc_windows_gnu__0_4_0 = None,
+ winapi_util__0_1_5 = None,
+ winapi_x86_64_pc_windows_gnu__0_4_0 = None,
+ wyz__0_5_0 = None,
+ zerocopy__0_5_0 = None,
+ zerocopy_derive__0_3_1 = None,
+ zeroize__1_4_3 = None,
+ zeroize_derive__1_3_2 = None):
"""This function defines a collection of repos and should be called in a WORKSPACE file"""
if CoreFoundation_sys__0_1_4:
maybe(
@@ -1717,12 +1546,12 @@
type = "tar.gz",
sha256 = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324",
strip_prefix = "libudev-sys-0.1.4",
- patches = [
- "@//third_party/rust/crates/patches:libudev-sys-0.1.4.patch",
- ],
- patch_args = [
- "-p1",
- ],
+ patches = [
+ "@//third_party/rust/crates/patches:libudev-sys-0.1.4.patch",
+ ],
+ patch_args = [
+ "-p1",
+ ],
build_file = Label("//third_party/rust/crates/remote:BUILD.libudev-sys-0.1.4.bazel"),
)
@@ -3612,4 +3441,3 @@
strip_prefix = "zeroize_derive-1.3.2",
build_file = Label("//third_party/rust/crates/remote:BUILD.zeroize_derive-1.3.2.bazel"),
)
-