workspace: add Rust EFI infrastructure

This bumps rules_rust, cleans up the toolchains with the new version.
It also adds the Prost codegen to "normal" crate set as well as a new
crate set specific to EFI. This is separate because of Rust no-std's
dependence on create feature tags.

Change-Id: Ie76e66ee83696948391420ca3b011a3a71258690
Reviewed-on: https://review.monogon.dev/c/monogon/+/2202
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/third_party/rust/cargo/remote/BUILD.tokio-1.32.0.bazel b/third_party/rust/cargo/remote/BUILD.tokio-1.32.0.bazel
new file mode 100644
index 0000000..7ac9d0b
--- /dev/null
+++ b/third_party/rust/cargo/remote/BUILD.tokio-1.32.0.bazel
@@ -0,0 +1,357 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_proc_macro",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//third_party/rust/cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "tokio",
+    srcs = glob(["**/*.rs"]),
+    aliases = {
+    },
+    crate_features = [
+        "bytes",
+        "default",
+        "fs",
+        "io-util",
+        "libc",
+        "macros",
+        "mio",
+        "net",
+        "num_cpus",
+        "rt",
+        "rt-multi-thread",
+        "socket2",
+        "sync",
+        "time",
+        "tokio-macros",
+        "windows-sys",
+    ],
+    crate_root = "src/lib.rs",
+    data = [],
+    edition = "2021",
+    proc_macro_deps = [
+        "@raze__tokio_macros__2_1_0//:tokio_macros",
+    ],
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "crate-name=tokio",
+        "manual",
+    ],
+    version = "1.32.0",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__bytes__1_5_0//:bytes",
+        "@raze__mio__0_8_8//:mio",
+        "@raze__num_cpus__1_16_0//:num_cpus",
+        "@raze__pin_project_lite__0_2_13//:pin_project_lite",
+    ] + selects.with_or({
+        (
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            "@raze__socket2__0_5_4//:socket2",
+        ],
+        "//conditions:default": [],
+    }) + selects.with_or({
+        (
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            "@raze__libc__0_2_148//:libc",
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+# Unsupported target "_require_full" with type "test" omitted
+
+# Unsupported target "async_send_sync" with type "test" omitted
+
+# Unsupported target "buffered" with type "test" omitted
+
+# Unsupported target "dump" with type "test" omitted
+
+# Unsupported target "fs" with type "test" omitted
+
+# Unsupported target "fs_canonicalize_dir" with type "test" omitted
+
+# Unsupported target "fs_copy" with type "test" omitted
+
+# Unsupported target "fs_dir" with type "test" omitted
+
+# Unsupported target "fs_file" with type "test" omitted
+
+# Unsupported target "fs_link" with type "test" omitted
+
+# Unsupported target "fs_open_options" with type "test" omitted
+
+# Unsupported target "fs_open_options_windows" with type "test" omitted
+
+# Unsupported target "fs_remove_dir_all" with type "test" omitted
+
+# Unsupported target "fs_remove_file" with type "test" omitted
+
+# Unsupported target "fs_rename" with type "test" omitted
+
+# Unsupported target "fs_symlink_dir_windows" with type "test" omitted
+
+# Unsupported target "fs_symlink_file_windows" with type "test" omitted
+
+# Unsupported target "fs_try_exists" with type "test" omitted
+
+# Unsupported target "io_async_fd" with type "test" omitted
+
+# Unsupported target "io_async_read" with type "test" omitted
+
+# Unsupported target "io_buf_reader" with type "test" omitted
+
+# Unsupported target "io_buf_writer" with type "test" omitted
+
+# Unsupported target "io_chain" with type "test" omitted
+
+# Unsupported target "io_copy" with type "test" omitted
+
+# Unsupported target "io_copy_bidirectional" with type "test" omitted
+
+# Unsupported target "io_driver" with type "test" omitted
+
+# Unsupported target "io_driver_drop" with type "test" omitted
+
+# Unsupported target "io_fill_buf" with type "test" omitted
+
+# Unsupported target "io_lines" with type "test" omitted
+
+# Unsupported target "io_mem_stream" with type "test" omitted
+
+# Unsupported target "io_panic" with type "test" omitted
+
+# Unsupported target "io_poll_aio" with type "test" omitted
+
+# Unsupported target "io_read" with type "test" omitted
+
+# Unsupported target "io_read_buf" with type "test" omitted
+
+# Unsupported target "io_read_exact" with type "test" omitted
+
+# Unsupported target "io_read_line" with type "test" omitted
+
+# Unsupported target "io_read_to_end" with type "test" omitted
+
+# Unsupported target "io_read_to_string" with type "test" omitted
+
+# Unsupported target "io_read_until" with type "test" omitted
+
+# Unsupported target "io_split" with type "test" omitted
+
+# Unsupported target "io_take" with type "test" omitted
+
+# Unsupported target "io_util_empty" with type "test" omitted
+
+# Unsupported target "io_write" with type "test" omitted
+
+# Unsupported target "io_write_all" with type "test" omitted
+
+# Unsupported target "io_write_all_buf" with type "test" omitted
+
+# Unsupported target "io_write_buf" with type "test" omitted
+
+# Unsupported target "io_write_int" with type "test" omitted
+
+# Unsupported target "join_handle_panic" with type "test" omitted
+
+# Unsupported target "macros_join" with type "test" omitted
+
+# Unsupported target "macros_pin" with type "test" omitted
+
+# Unsupported target "macros_rename_test" with type "test" omitted
+
+# Unsupported target "macros_select" with type "test" omitted
+
+# Unsupported target "macros_test" with type "test" omitted
+
+# Unsupported target "macros_try_join" with type "test" omitted
+
+# Unsupported target "net_bind_resource" with type "test" omitted
+
+# Unsupported target "net_lookup_host" with type "test" omitted
+
+# Unsupported target "net_named_pipe" with type "test" omitted
+
+# Unsupported target "net_panic" with type "test" omitted
+
+# Unsupported target "net_unix_pipe" with type "test" omitted
+
+# Unsupported target "no_rt" with type "test" omitted
+
+# Unsupported target "process_arg0" with type "test" omitted
+
+# Unsupported target "process_issue_2174" with type "test" omitted
+
+# Unsupported target "process_issue_42" with type "test" omitted
+
+# Unsupported target "process_kill_on_drop" with type "test" omitted
+
+# Unsupported target "process_raw_handle" with type "test" omitted
+
+# Unsupported target "process_smoke" with type "test" omitted
+
+# Unsupported target "rt_basic" with type "test" omitted
+
+# Unsupported target "rt_common" with type "test" omitted
+
+# Unsupported target "rt_handle" with type "test" omitted
+
+# Unsupported target "rt_handle_block_on" with type "test" omitted
+
+# Unsupported target "rt_metrics" with type "test" omitted
+
+# Unsupported target "rt_panic" with type "test" omitted
+
+# Unsupported target "rt_threaded" with type "test" omitted
+
+# Unsupported target "rt_threaded_alt" with type "test" omitted
+
+# Unsupported target "rt_time_start_paused" with type "test" omitted
+
+# Unsupported target "signal_ctrl_c" with type "test" omitted
+
+# Unsupported target "signal_drop_recv" with type "test" omitted
+
+# Unsupported target "signal_drop_rt" with type "test" omitted
+
+# Unsupported target "signal_drop_signal" with type "test" omitted
+
+# Unsupported target "signal_multi_rt" with type "test" omitted
+
+# Unsupported target "signal_no_rt" with type "test" omitted
+
+# Unsupported target "signal_notify_both" with type "test" omitted
+
+# Unsupported target "signal_panic" with type "test" omitted
+
+# Unsupported target "signal_twice" with type "test" omitted
+
+# Unsupported target "signal_usr1" with type "test" omitted
+
+# Unsupported target "sync_barrier" with type "test" omitted
+
+# Unsupported target "sync_broadcast" with type "test" omitted
+
+# Unsupported target "sync_errors" with type "test" omitted
+
+# Unsupported target "sync_mpsc" with type "test" omitted
+
+# Unsupported target "sync_mpsc_weak" with type "test" omitted
+
+# Unsupported target "sync_mutex" with type "test" omitted
+
+# Unsupported target "sync_mutex_owned" with type "test" omitted
+
+# Unsupported target "sync_notify" with type "test" omitted
+
+# Unsupported target "sync_once_cell" with type "test" omitted
+
+# Unsupported target "sync_oneshot" with type "test" omitted
+
+# Unsupported target "sync_panic" with type "test" omitted
+
+# Unsupported target "sync_rwlock" with type "test" omitted
+
+# Unsupported target "sync_semaphore" with type "test" omitted
+
+# Unsupported target "sync_semaphore_owned" with type "test" omitted
+
+# Unsupported target "sync_watch" with type "test" omitted
+
+# Unsupported target "task_abort" with type "test" omitted
+
+# Unsupported target "task_blocking" with type "test" omitted
+
+# Unsupported target "task_builder" with type "test" omitted
+
+# Unsupported target "task_id" with type "test" omitted
+
+# Unsupported target "task_join_set" with type "test" omitted
+
+# Unsupported target "task_local" with type "test" omitted
+
+# Unsupported target "task_local_set" with type "test" omitted
+
+# Unsupported target "task_panic" with type "test" omitted
+
+# Unsupported target "task_yield_now" with type "test" omitted
+
+# Unsupported target "tcp_accept" with type "test" omitted
+
+# Unsupported target "tcp_connect" with type "test" omitted
+
+# Unsupported target "tcp_echo" with type "test" omitted
+
+# Unsupported target "tcp_into_split" with type "test" omitted
+
+# Unsupported target "tcp_into_std" with type "test" omitted
+
+# Unsupported target "tcp_peek" with type "test" omitted
+
+# Unsupported target "tcp_shutdown" with type "test" omitted
+
+# Unsupported target "tcp_socket" with type "test" omitted
+
+# Unsupported target "tcp_split" with type "test" omitted
+
+# Unsupported target "tcp_stream" with type "test" omitted
+
+# Unsupported target "test_clock" with type "test" omitted
+
+# Unsupported target "time_interval" with type "test" omitted
+
+# Unsupported target "time_panic" with type "test" omitted
+
+# Unsupported target "time_pause" with type "test" omitted
+
+# Unsupported target "time_rt" with type "test" omitted
+
+# Unsupported target "time_sleep" with type "test" omitted
+
+# Unsupported target "time_timeout" with type "test" omitted
+
+# Unsupported target "udp" with type "test" omitted
+
+# Unsupported target "uds_cred" with type "test" omitted
+
+# Unsupported target "uds_datagram" with type "test" omitted
+
+# Unsupported target "uds_split" with type "test" omitted
+
+# Unsupported target "uds_stream" with type "test" omitted
+
+# Unsupported target "unwindsafe" with type "test" omitted