aboutsummaryrefslogtreecommitdiff
path: root/core/mem/tlsf
Commit message (Collapse)AuthorAgeFilesLines
* Correct license for tlsfbill/change-licensegingerBill2025-10-292-2/+2
|
* Change Odin's LICENSE to zlib from BSD 3-clausegingerBill2025-10-282-2/+2
| | | | This change was made in order to allow things produced with Odin and using Odin's core library, to not require the LICENSE to also be distributed alongside the binary form.
* Further overhaul of package line comments.Jeroen van Rijn2025-10-091-1/+1
|
* More package lines.Jeroen van Rijn2025-10-091-3/+3
|
* Disable usage of AddressSanitizer pending a per-allocator reviewFeoramund2025-06-151-5/+5
| | | | | | | | | | | It has been discovered that AddressSanitizer does not keep a 1:1 mapping of which bytes are poisoned and which are not. This can cause issues for allocations less than 8 bytes and where addresses straddle 8-byte boundaries. See the following link for more information: https://github.com/google/sanitizers/wiki/AddressSanitizerAlgorithm#mapping
* mem/tlsf: fix asan reporting poisoning of already poisoned regionLaytan Laats2025-06-121-9/+10
| | | | | | | | | | free on tlsf poisons the entire block, while alloc might only unpoison a part of it (cause it's size is aligned up). This causes free to potentially poison an already poisoned portion, which is a use-after-poison. Because this is "fine" and intended, I opted to just @no_sanitize_address it.
* Add core/hyperthread count for Windows and Linux (#5216)Jeroen van Rijn2025-05-251-1/+1
| | | | | Add core/hyperthread count to `core:sys/info` for Windows and Linux. TODO: Linux RISCV, Linux ARM, Darwin, and the BSDs.
* Add asan support for various allocatorsLucas Perlind2025-05-062-45/+53
|
* `core:mem/tlsf`: Add early-out in OOM logicJeroen van Rijn2025-04-141-1/+13
| | | | | | | | This implementation doesn't allow for out-of-band allocations to be passed through, as it's not designed to track those. Nor is it able to signal those allocations then need to be freed on the backing allocator, as opposed to regular allocations handled for you when you `destroy` the TLSF instance. So if we're asked for more than we're configured to grow by, we can fail with an OOM error early, without adding a new pool.
* Remove now-implemented TODOJeroen van Rijn2025-04-141-2/+0
|
* Allow `core:mem/tlsf` to automatically add new pools.Jeroen van Rijn2025-04-142-6/+54
| | | | | | | New features: - If TLSF can't service an allocation made on it, and it's initialized with `new_pool_size` > 0, it will ask the backing allocator for additional memory. - `estimate_pool_size` can tell you what size your initial (and `new_pool_size`) ought to be if you want to make `count` allocations of `size` and `alignment`, or in its other form, how much backing memory is needed for `count` allocations of `type` and its corresponding size and alignment.
* Refactor `core:mem/tlsf`, add `free_all` support.Jeroen van Rijn2025-04-142-263/+285
| | | | | TODO: Allow the TLSF allocator to add additional pools when it would ordinarily OOM by calling its backing allocator.
* Prepare for `tlsf.free_all`Jeroen van Rijn2025-04-132-10/+18
|
* Fix tlsf block adjustmentLucas Perlind2025-02-101-1/+1
|
* fix `@(optimization_mode)` usage in builtin collectionsLaytan Laats2024-07-081-3/+3
|
* Fix loads of indentation issues with mixing spaces and tabsgingerBill2024-06-291-1/+1
|
* tlsf: destroy first pool & properly zero memoryLaytan Laats2024-06-272-6/+11
|
* Add `core:mem` tests.Jeroen van Rijn2024-06-061-8/+6
|
* Fix `fls_uint`Jeroen van Rijn2024-06-061-4/+8
|
* Add original LICENSEJeroen van Rijn2024-06-061-0/+36
|
* Change to `init` from `create`gingerBill2024-06-052-30/+30
|
* `core:mem/tlsf` - "Two-Level Segregated Fit" memory allocatorgingerBill2024-06-052-0/+892