# Meeting 2025-01-22
<!-- Leave your topic starting with ### in the relevant sections below -->
## Critical
<!-- bugs, soundness issues, urgent patches/reviews etc. -->
## Status Reports
<!-- You want to report on something you are working on/request reviews.
Or you want to know the status of something someone else is doing -->
## Discussion Questions
<!-- Anything that requires lengthy discussion/more general questions also fit here -->
### `Opaque` type and `Aliased` type
https://lore.kernel.org/rust-for-linux/CANiq72=o1ouGc4ScvDkz_uMnEfM+D47YQTMh0jTC=Go4tvQvkg@mail.gmail.com/
https://lore.kernel.org/rust-for-linux/20250122055347.597798-1-dirk.behme@de.bosch.com/
`Aliased` patch: https://lore.kernel.org/rust-for-linux/Z46Gzg_5kv-MwZNL@boqun-archlinux/T/#m3cb76f9810ce1ac341c2def05faa26e907d6db9e
Rust `UnsafePinned` RFC: https://rust-lang.github.io/rfcs/3467-unsafe-pinned.html
### Avoid calling destructor if initialization failed
This would greatly simplify Daniel's code
```rust
pin_init!(&this in Foo {
a <- todo!(),
b: todo!(),
// Use `PhantomPinned` field today is already possible as a workaround.
_: {
// Register this
}
})
```
### Using `pin_init` to allow ordering of deregistration
...
### `as_char_ptr` removal?
We cannot remove `kernel::CStr::as_char_ptr` in favour of `[u8]::as_ptr` because the latter cuts out the NUL byte.
Conclusion: rename `as_char_ptr` to `as_ptr` to shadow the deref'ed. (And add documentation on that this is different from deref'd version).
## Miscellaneous
<!-- stuff that does not fit into other categories -->