about summary refs log tree commit diff
diff options
context:
space:
mode:
authorjoboet <jonasboettiger@icloud.com>2024-02-15 17:03:59 +0100
committerjoboet <jonasboettiger@icloud.com>2024-02-16 12:10:07 +0100
commit0cd21cc549229c1cd6bb544eb53e7eb98190168f (patch)
tree07e5eaed21452b8679c3e11c9a337448ba2fb47b
parent1be468815cb7c6932fcc7ed3ee81e6a14376c05e (diff)
downloadrust-0cd21cc549229c1cd6bb544eb53e7eb98190168f.tar.gz
rust-0cd21cc549229c1cd6bb544eb53e7eb98190168f.zip
std: move locks to `sys` on µITRON
-rw-r--r--library/std/src/sys/locks/condvar/itron.rs (renamed from library/std/src/sys/pal/itron/condvar.rs)4
-rw-r--r--library/std/src/sys/locks/condvar/mod.rs6
-rw-r--r--library/std/src/sys/locks/mod.rs7
-rw-r--r--library/std/src/sys/locks/mutex/itron.rs (renamed from library/std/src/sys/pal/itron/mutex.rs)19
-rw-r--r--library/std/src/sys/locks/mutex/mod.rs6
-rw-r--r--library/std/src/sys/locks/rwlock/mod.rs6
-rw-r--r--library/std/src/sys/locks/rwlock/solid.rs (renamed from library/std/src/sys/pal/solid/rwlock.rs)2
-rw-r--r--library/std/src/sys/mod.rs1
-rw-r--r--library/std/src/sys/pal/solid/abi/fs.rs5
-rw-r--r--library/std/src/sys/pal/solid/abi/sockets.rs2
-rw-r--r--library/std/src/sys/pal/solid/mod.rs24
11 files changed, 41 insertions, 41 deletions
diff --git a/library/std/src/sys/pal/itron/condvar.rs b/library/std/src/sys/locks/condvar/itron.rs
index 7a47cc6696a..4c6f5e9dad2 100644
--- a/library/std/src/sys/pal/itron/condvar.rs
+++ b/library/std/src/sys/locks/condvar/itron.rs
@@ -1,5 +1,7 @@
 //! POSIX conditional variable implementation based on user-space wait queues.
-use super::{abi, error::expect_success_aborting, spin::SpinMutex, task, time::with_tmos_strong};
+use crate::sys::pal::itron::{
+    abi, error::expect_success_aborting, spin::SpinMutex, task, time::with_tmos_strong,
+};
 use crate::{mem::replace, ptr::NonNull, sys::locks::Mutex, time::Duration};
 
 // The implementation is inspired by the queue-based implementation shown in
diff --git a/library/std/src/sys/locks/condvar/mod.rs b/library/std/src/sys/locks/condvar/mod.rs
new file mode 100644
index 00000000000..0bb93d6482a
--- /dev/null
+++ b/library/std/src/sys/locks/condvar/mod.rs
@@ -0,0 +1,6 @@
+cfg_if::cfg_if! {
+    if #[cfg(target_os = "solid_asp3")] {
+        mod itron;
+        pub use itron::Condvar;
+    }
+}
diff --git a/library/std/src/sys/locks/mod.rs b/library/std/src/sys/locks/mod.rs
new file mode 100644
index 00000000000..0bdc4a1e1db
--- /dev/null
+++ b/library/std/src/sys/locks/mod.rs
@@ -0,0 +1,7 @@
+mod condvar;
+mod mutex;
+mod rwlock;
+
+pub use condvar::Condvar;
+pub use mutex::Mutex;
+pub use rwlock::RwLock;
diff --git a/library/std/src/sys/pal/itron/mutex.rs b/library/std/src/sys/locks/mutex/itron.rs
index 1f6cc419476..a134eb2d1be 100644
--- a/library/std/src/sys/pal/itron/mutex.rs
+++ b/library/std/src/sys/locks/mutex/itron.rs
@@ -1,6 +1,6 @@
 //! Mutex implementation backed by μITRON mutexes. Assumes `acre_mtx` and
 //! `TA_INHERIT` are available.
-use super::{
+use crate::sys::pal::itron::{
     abi,
     error::{expect_success, expect_success_aborting, fail, ItronError},
     spin::SpinIdOnceCell,
@@ -66,20 +66,3 @@ impl Drop for Mutex {
         }
     }
 }
-
-pub(super) struct MutexGuard<'a>(&'a Mutex);
-
-impl<'a> MutexGuard<'a> {
-    #[inline]
-    pub(super) fn lock(x: &'a Mutex) -> Self {
-        x.lock();
-        Self(x)
-    }
-}
-
-impl Drop for MutexGuard<'_> {
-    #[inline]
-    fn drop(&mut self) {
-        unsafe { self.0.unlock() };
-    }
-}
diff --git a/library/std/src/sys/locks/mutex/mod.rs b/library/std/src/sys/locks/mutex/mod.rs
new file mode 100644
index 00000000000..f8a51c7c682
--- /dev/null
+++ b/library/std/src/sys/locks/mutex/mod.rs
@@ -0,0 +1,6 @@
+cfg_if::cfg_if! {
+    if #[cfg(target_os = "solid_asp3")] {
+        mod itron;
+        pub use itron::Mutex;
+    }
+}
diff --git a/library/std/src/sys/locks/rwlock/mod.rs b/library/std/src/sys/locks/rwlock/mod.rs
new file mode 100644
index 00000000000..ad4dfdb80a7
--- /dev/null
+++ b/library/std/src/sys/locks/rwlock/mod.rs
@@ -0,0 +1,6 @@
+cfg_if::cfg_if! {
+    if #[cfg(target_os = "solid_asp3")] {
+        mod solid;
+        pub use solid::RwLock;
+    }
+}
diff --git a/library/std/src/sys/pal/solid/rwlock.rs b/library/std/src/sys/locks/rwlock/solid.rs
index ecb4eb83b9b..9bf6f5dbb73 100644
--- a/library/std/src/sys/pal/solid/rwlock.rs
+++ b/library/std/src/sys/locks/rwlock/solid.rs
@@ -1,5 +1,5 @@
 //! A readers-writer lock implementation backed by the SOLID kernel extension.
-use super::{
+use crate::sys::pal::{
     abi,
     itron::{
         error::{expect_success, expect_success_aborting, fail, ItronError},
diff --git a/library/std/src/sys/mod.rs b/library/std/src/sys/mod.rs
index fae21636897..d77ac7eb027 100644
--- a/library/std/src/sys/mod.rs
+++ b/library/std/src/sys/mod.rs
@@ -6,6 +6,7 @@ mod pal;
 mod personality;
 
 pub mod cmath;
+pub mod locks;
 pub mod os_str;
 pub mod path;
 
diff --git a/library/std/src/sys/pal/solid/abi/fs.rs b/library/std/src/sys/pal/solid/abi/fs.rs
index 32800bd9a9d..49526f4c9cd 100644
--- a/library/std/src/sys/pal/solid/abi/fs.rs
+++ b/library/std/src/sys/pal/solid/abi/fs.rs
@@ -1,9 +1,8 @@
 //! `solid_fs.h`
 use crate::os::raw::{c_char, c_int, c_uchar};
 pub use libc::{
-    blksize_t, dev_t, ino_t, off_t, stat, time_t, O_APPEND, O_CREAT, O_EXCL, O_RDONLY, O_RDWR,
-    O_TRUNC, O_WRONLY, SEEK_CUR, SEEK_END, SEEK_SET, S_IEXEC, S_IFBLK, S_IFCHR, S_IFDIR, S_IFIFO,
-    S_IFMT, S_IFREG, S_IREAD, S_IWRITE,
+    ino_t, off_t, stat, time_t, O_APPEND, O_CREAT, O_EXCL, O_RDONLY, O_RDWR, O_TRUNC, O_WRONLY,
+    SEEK_CUR, SEEK_END, SEEK_SET, S_IFBLK, S_IFCHR, S_IFDIR, S_IFIFO, S_IFMT, S_IFREG, S_IWRITE,
 };
 
 pub const O_ACCMODE: c_int = 0x3;
diff --git a/library/std/src/sys/pal/solid/abi/sockets.rs b/library/std/src/sys/pal/solid/abi/sockets.rs
index eb06a6dd927..11c430360ce 100644
--- a/library/std/src/sys/pal/solid/abi/sockets.rs
+++ b/library/std/src/sys/pal/solid/abi/sockets.rs
@@ -1,5 +1,5 @@
 use crate::os::raw::{c_char, c_uint, c_void};
-pub use libc::{c_int, c_long, size_t, ssize_t, suseconds_t, time_t, timeval};
+pub use libc::{c_int, c_long, size_t, ssize_t, timeval};
 
 pub const SOLID_NET_ERR_BASE: c_int = -2000;
 pub const EINPROGRESS: c_int = SOLID_NET_ERR_BASE - libc::EINPROGRESS;
diff --git a/library/std/src/sys/pal/solid/mod.rs b/library/std/src/sys/pal/solid/mod.rs
index be8e0033902..9ada7d130f0 100644
--- a/library/std/src/sys/pal/solid/mod.rs
+++ b/library/std/src/sys/pal/solid/mod.rs
@@ -2,19 +2,17 @@
 #![allow(missing_docs, nonstandard_style)]
 #![deny(unsafe_op_in_unsafe_fn)]
 
-mod abi;
+pub mod abi;
 
 #[path = "../itron"]
-mod itron {
-    pub(super) mod abi;
-    pub mod condvar;
-    pub(super) mod error;
-    pub mod mutex;
-    pub(super) mod spin;
-    pub(super) mod task;
+pub mod itron {
+    pub mod abi;
+    pub mod error;
+    pub mod spin;
+    pub mod task;
     pub mod thread;
     pub mod thread_parking;
-    pub(super) mod time;
+    pub mod time;
     use super::unsupported;
 }
 
@@ -41,14 +39,6 @@ pub mod thread_local_key;
 pub use self::itron::thread_parking;
 pub mod time;
 
-mod rwlock;
-
-pub mod locks {
-    pub use super::itron::condvar::*;
-    pub use super::itron::mutex::*;
-    pub use super::rwlock::*;
-}
-
 // SAFETY: must be called only once during runtime initialization.
 // NOTE: this is not guaranteed to run, for example when Rust code is called externally.
 pub unsafe fn init(_argc: isize, _argv: *const *const u8, _sigpipe: u8) {}