linux-imx/rust/alloc
Alice Ryhl bd197c334a ANDROID: revert Rust Binder changes in android15-6.6
This reverts the following commits:
0347be8c14 ANDROID: rust: disable floating point target features
013c5ddc64 ANDROID: rust_binder: fix leak of name in binderfs
2f4e6b1def ANDROID: Disable warning about new bindgen
3396c2131d ANDROID: rust: use target.json for aarch64
1656e8d99d ANDROID: rust: rustfmt scripts/generate_rust_target.rs
42eb612b25 ANDROID: Enable Rust Binder Module
cb0bef6d8e ANDROID: rust_binder: Switch Rust Binder to GKI Module
b511e79bc5 ANDROID: Only warn on long symbols
4a571c32cb ANDROID: Re-enable Rust symbol export
08dde7cab7 ANDROID: rust_binder: properly handle critical refcount increments
39285e9a6e ANDROID: rust_binder: split out logic for zero-to-one refcount increment
76784ba7b8 ANDROID: rust_binder: don't use boolean to schedule nodes
64018a934a ANDROID: rust_binder: don't pr_warn on benign errors
9ff51354fd ANDROID: use 1.73.0b compiler prebuilt
ed1360bdfa ANDROID: rust_binder: fix CFI failure in rust_shrink_free_page
741b6ae073 ANDROID: rust_binder: don't use default implementations
bee37573f9 ANDROID: rust_binder: add missing void arguments to binderfs files
8ae6dec97f ANDROID: rust_binder: fix ioctl_freeze
c9370a3cbb ANDROID: rust_binder: return pending info for frozen async txns
f6d2f5ebcb ANDROID: rust_binder: various minor improvements
d27c2c39fd ANDROID: rust_binder: add elapsed to binder_logs/state
9ef1712688 FROMLIST: rust: time: add Ktime
306e7bafe8 FROMLIST: rust: don't select CONSTRUCTORS
5424a7cb43 FROMLIST: rust: add flags for shadow call stack sanitizer
c42560464f ANDROID: binder: update Kconfig for choosing between implementations
87f0a459c0 ANDROID: rust: uaccess: fix length usage in read_all
c6c6be80a8 ANDROID: rust: use Rust atomics for Arc refcount
282b78baf0 ANDROID: rust_binder: choose driver with kcmdline flag
01ac18bd09 ANDROID: rust_binder: add binder_logs/state
ec1855352b ANDROID: rust_binder: fail if objects are out of order
ac68e23d38 ANDROID: rust_binder: add vma shrinker
2e4f09314c ANDROID: rust_binder: add priority inheritance
691f0f1682 ANDROID: rust_binder: add oneway spam detection
6249f06992 ANDROID: rust_binder: add TF_UPDATE_TXN support
50259804b1 ANDROID: rust_binder: add process freezing
571343fd97 ANDROID: rust_binder: add BINDER_TYPE_FDA support
b427bc70cf ANDROID: rust_binder: add BINDER_TYPE_FD support
451e930fc0 ANDROID: rust_binder: add BINDER_TYPE_PTR support
ae1d247379 ANDROID: rust_binder: send nodes in transactions
892df033dc ANDROID: rust_binder: add death notifications
fe5dea5fc7 ANDROID: rust_binder: serialize oneway transactions
b67f39008f ANDROID: rust_binder: add non-oneway transactions
98cf4f1b76 ANDROID: rust_binder: add epoll support
bb1d504151 ANDROID: rust_binder: add oneway transactions
0ccb57c72d ANDROID: rust_binder: add nodes and context managers
6feafb413a ANDROID: rust_binder: add work lists
046eb3d735 ANDROID: rust_binder: add threading support
0d512d37b0 ANDROID: rust_binder: add binderfs support to Rust binder
adfa541d88 ANDROID: rust_binder: define a Rust binder driver
b1661c9e45 ANDROID: rust: add linked list implementation
ec656ad4c9 ANDROID: rust: sync: add `Arc::into_unique_or_drop`
b57704d237 ANDROID: rust: sync: add `ArcBorrow::from_raw`
a1bb998934 ANDROID: rust: mm: add bindings for memory management
67fe8ee749 FROMLIST: rust: add abstraction for `struct page`
6896fba16f FROMLIST: rust: uaccess: add typed accessors for userspace pointers
881c1e2f85 FROMLIST: uaccess: always export _copy_[from|to]_user with CONFIG_RUST
3629eb70a6 FROMLIST: rust: uaccess: add userspace pointers
84e0b6c8ef FROMLIST: rust: rbtree: add `RBTree::entry`
c226168bb5 FROMLIST: rust: rbtree: add `RBTreeCursor`
a3e1a10677 FROMLIST: rust: rbtree: add `RBTreeIteratorMut`
97cbf6e271 FROMLIST: rust: rbtree: add `RBTreeIterator`
adfa8383a5 FROMLIST: rust: rbtree: add red-black tree implementation backed by the C version
4cb6d81d02 FROMLIST: rust: add `container_of!` macro
879f437248 FROMLIST: rust: file: add abstraction for `poll_table`
4aa358bcc5 FROMLIST: rust: file: add `DeferredFdCloser`
8abb138ec8 FROMLIST: rust: file: add `Kuid` wrapper
f764ce9b2b FROMLIST: rust: file: add `FileDescriptorReservation`
a34dbbde7c FROMLIST: rust: security: add abstraction for secctx
c0b96a7765 FROMLIST: rust: cred: add Rust abstraction for `struct cred`
40eecc8bdf FROMLIST: rust: file: add Rust abstraction for `struct file`
c8ae5646c9 FROMLIST: rust: task: add `Task::current_raw`
6b4006d2d7 FROMLIST: rust: types: add `NotThreadSafe`
6bb35a6e52 FROMGIT: rust: sync: update integer types in CondVar
bd6e290154 FROMGIT: rust: sync: add `CondVar::wait_timeout`
117298b362 FROMGIT: rust: time: add msecs to jiffies conversion
d6ce2b7bd7 FROMGIT: rust: sync: add `CondVar::notify_sync`
495235c0f3 FROMGIT: rust: sync: `CondVar` rename "wait_list" to "wait_queue_head"
4c5e3e9f01 UPSTREAM: binder: use enum for binder ioctls
fbb9dbf62c UPSTREAM: rust: support `srctree`-relative links
0f40dd3c65 UPSTREAM: rust: sync: Makes `CondVar::wait()` an uninterruptible wait
5e2edfbc03 UPSTREAM: rust: macros: improve `#[vtable]` documentation
8bd5093c30 UPSTREAM: rust: macros: update 'paste!' macro to accept string literals
63a42cf758 UPSTREAM: rust: bindings: rename const binding using sed
412965714b UPSTREAM: rust: replace <linux/module.h> with <linux/export.h> in rust/exports.c
1765f2a273 UPSTREAM: rust: kernel: str: Implement Debug for CString
fe69811059 UPSTREAM: rust: task: remove redundant explicit link
f2497a4bb0 UPSTREAM: rust: kernel: remove `#[allow(clippy::new_ret_no_self)]`
a6ab1c4b59 UPSTREAM: rust: workqueue: add examples
3525914f07 UPSTREAM: rust: workqueue: add `try_spawn` helper method
7b431db132 UPSTREAM: rust: workqueue: implement `WorkItemPointer` for pointer types
c5e9e92b74 UPSTREAM: rust: workqueue: add helper for defining work_struct fields
fef46ccba9 UPSTREAM: rust: workqueue: define built-in queues
37fe02321c UPSTREAM: rust: workqueue: add low-level workqueue bindings
a0c639eadc UPSTREAM: rust: sync: add `Arc::{from_raw, into_raw}`
37e90c8aef ANDROID: rust: Enable KCFI support when available
6be7b55440 ANDROID: rust: Use From instances for JSON encoder
2b93c38ece ANDROID: rust: Support arrays in target JSON
4085063afb ANDROID: rust: allow MODVERSIONS by no longer exporting symbols
e019515a16 ANDROID: rust: Select rustc-1.73.0
ae876716fc FROMLIST: x86: rust: Disable entry padding with Rust
b802a765fb FROMLIST: arm64: rust: Enable Rust support for AArch64
433a394399 FROMLIST: rust: Refactor the build target to allow the use of builtin targets
5eb6b43401 UPSTREAM: rust: Suppress searching builtin sysroot
9b8f3fdda6 UPSTREAM: rust: Ignore preserve-most functions
5341e12502 UPSTREAM: x86: Enable IBT in Rust if enabled in C
37481c8f5a UPSTREAM: rust: upgrade to Rust 1.73.0
42092eccd9 UPSTREAM: rust: upgrade to Rust 1.72.1
30043aaafb UPSTREAM: rust: arc: add explicit `drop()` around `Box::from_raw()`
3365cb02fe UPSTREAM: rust: Use grep -Ev rather than relying on GNU grep
5dd966b03a UPSTREAM: rust: Use awk instead of recent xargs
8a38f60333 UPSTREAM: rust: Respect HOSTCC when linking for host

Fixes: adfa541d88 ("ANDROID: rust_binder: define a Rust binder driver")
Change-Id: Id70e8c42c0b2b31753998c9b5d12e5c449aeafd7
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
2024-08-14 09:00:02 +00:00
..
collections rust: upgrade to Rust 1.68.2 2023-05-31 17:35:03 +02:00
vec ANDROID: revert Rust Binder changes in android15-6.6 2024-08-14 09:00:02 +00:00
alloc.rs ANDROID: revert Rust Binder changes in android15-6.6 2024-08-14 09:00:02 +00:00
boxed.rs ANDROID: revert Rust Binder changes in android15-6.6 2024-08-14 09:00:02 +00:00
lib.rs ANDROID: revert Rust Binder changes in android15-6.6 2024-08-14 09:00:02 +00:00
raw_vec.rs ANDROID: revert Rust Binder changes in android15-6.6 2024-08-14 09:00:02 +00:00
README.md rust: alloc: clarify what is the upstream version 2023-05-31 16:12:06 +02:00
slice.rs rust: upgrade to Rust 1.71.1 2023-08-14 17:50:02 +02:00

alloc

These source files come from the Rust standard library, hosted in the https://github.com/rust-lang/rust repository, licensed under "Apache-2.0 OR MIT" and adapted for kernel use. For copyright details, see https://github.com/rust-lang/rust/blob/master/COPYRIGHT.

Please note that these files should be kept as close as possible to upstream. In general, only additions should be performed (e.g. new methods). Eventually, changes should make it into upstream so that, at some point, this fork can be dropped from the kernel tree.

The Rust upstream version on top of which these files are based matches the output of scripts/min-tool-version.sh rustc.

Rationale

On one hand, kernel folks wanted to keep alloc in-tree to have more freedom in both workflow and actual features if actually needed (e.g. receiver types if we ended up using them), which is reasonable.

On the other hand, Rust folks wanted to keep alloc as close as upstream as possible and avoid as much divergence as possible, which is also reasonable.

We agreed on a middle-ground: we would keep a subset of alloc in-tree that would be as small and as close as possible to upstream. Then, upstream can start adding the functions that we add to alloc etc., until we reach a point where the kernel already knows exactly what it needs in alloc and all the new methods are merged into upstream, so that we can drop alloc from the kernel tree and go back to using the upstream one.

By doing this, the kernel can go a bit faster now, and Rust can slowly incorporate and discuss the changes as needed.