Don't expose `base::platform` as a public interface

Platform-specific symbols with the same name are now re-exported in
`base` directly, and other symbols are accessed through `base::linux` or
`base::windows`.

Change-Id: Ib76f537fc562cdf42dfcbd25b7f8e49956993708
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4996627
Commit-Queue: Cody Schuffelen <schuffelen@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
diff --git a/base/src/lib.rs b/base/src/lib.rs
index 5efecb8..0b74998 100644
--- a/base/src/lib.rs
+++ b/base/src/lib.rs
@@ -58,7 +58,7 @@
 pub use platform::ioctl::ioctl_with_val;
 pub use platform::ioctl::IoctlNr;
 pub use shm::SharedMemory;
-pub use sys::platform;
+use sys::platform;
 pub use timer::FakeTimer;
 pub use timer::Timer;
 pub use timer::TimerTrait;
@@ -110,6 +110,7 @@
         pub use linux::{gettid, kill_process_group, reap_child};
         pub use linux::UnlinkUnixListener;
         pub use linux::EventExt;
+        pub use linux::Gid;
     }
 }
 
@@ -177,6 +178,7 @@
 pub use platform::logical_core_frequencies_khz;
 pub use platform::open_file_or_duplicate;
 pub use platform::platform_timer_resolution::enable_high_res_timers;
+pub use platform::sched_attr;
 pub use platform::sched_setattr;
 pub use platform::set_cpu_affinity;
 pub use platform::BlockingMode;
diff --git a/devices/src/serial_device.rs b/devices/src/serial_device.rs
index 2bdac04..ee3b107 100644
--- a/devices/src/serial_device.rs
+++ b/devices/src/serial_device.rs
@@ -13,9 +13,9 @@
 
 use base::error;
 use base::open_file_or_duplicate;
-#[cfg(windows)]
-use base::platform::Console as WinConsole;
 use base::syslog;
+#[cfg(windows)]
+use base::windows::Console as WinConsole;
 use base::AsRawDescriptor;
 use base::Event;
 use base::FileSync;
diff --git a/devices/src/virtcpufreq.rs b/devices/src/virtcpufreq.rs
index 51e67d5..124b55e 100644
--- a/devices/src/virtcpufreq.rs
+++ b/devices/src/virtcpufreq.rs
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-use base::platform::sched_attr;
+use base::sched_attr;
 use base::sched_setattr;
 use base::warn;
 use base::Error;
diff --git a/devices/src/virtio/gpu/mod.rs b/devices/src/virtio/gpu/mod.rs
index 281d636..cbf4c25 100644
--- a/devices/src/virtio/gpu/mod.rs
+++ b/devices/src/virtio/gpu/mod.rs
@@ -22,7 +22,7 @@
 use base::debug;
 use base::error;
 #[cfg(any(target_os = "android", target_os = "linux"))]
-use base::platform::move_task_to_cgroup;
+use base::linux::move_task_to_cgroup;
 use base::warn;
 use base::AsRawDescriptor;
 use base::Event;
diff --git a/src/crosvm/plugin/config.rs b/src/crosvm/plugin/config.rs
index de45d6d..37620c9 100644
--- a/src/crosvm/plugin/config.rs
+++ b/src/crosvm/plugin/config.rs
@@ -74,8 +74,8 @@
 /// A mapping of linux group IDs for the plugin process.
 #[derive(Debug, Deserialize, Serialize)]
 pub struct GidMap {
-    pub inner: base::platform::Gid,
-    pub outer: base::platform::Gid,
+    pub inner: base::Gid,
+    pub outer: base::Gid,
     pub count: u32,
 }
 
@@ -91,14 +91,14 @@
             ));
         }
 
-        let inner: base::platform::Gid = components[0].parse().map_err(|_| {
+        let inner: base::Gid = components[0].parse().map_err(|_| {
             invalid_value_err(
                 components[0],
                 "the <inner> component for `plugin-gid-map` is not valid gid",
             )
         })?;
 
-        let outer: base::platform::Gid = match components.get(1) {
+        let outer: base::Gid = match components.get(1) {
             None | Some(&"") => inner,
             Some(s) => s.parse().map_err(|_| {
                 invalid_value_err(