On 14.08.24 19:13, Danilo Krummrich wrote: > On Wed, Aug 14, 2024 at 04:28:04PM +0000, Benno Lossin wrote: >> On 12.08.24 20:22, Danilo Krummrich wrote: >>> +unsafe impl Allocator for Kmalloc { >> >> There is a missing SAFETY comment here (and also for Vmalloc, probably >> also for VKmalloc then). > > Any suggestion on what to write here? > > I'd probably come up with something like: > > -- > Memory returned from `Kmalloc` remains valid until explicitly freed. > > It is valid to pass any pointer to an allocated memory buffer obtained with any > function of `Kmalloc` to any other function of `Kmalloc`. > > If `Kmalloc::realloc` is called with a size of zero, the given memory > allocation, if any, is freed. > > If `Kmalloc::realloc` is called with `None` it behaves like `Kmalloc::alloc`, > i.e. a new memory allocation is created. > -- > > and repeat that for `Vmalloc` and `KVmalloc`. > > I'm not sure how useful that is though. Ideally you would write down how the guarantees are satisfied in addition to the invariants. But I guess this is only guaranteed by the `ReallocFunc::call`, since that handles the ZSTs... Maybe this is a bit excessive. If I come up with something better I will let you know. --- Cheers, Benno