aboutsummaryrefslogtreecommitdiff
path: root/core/mem
Commit message (Collapse)AuthorAgeFilesLines
* Use `contextless` where possibledev-2022-03gingerBill2022-03-014-20/+20
|
* Correct `alloc_from_memory_block`gingerBill2022-03-012-15/+47
|
* [mem] Add missing `\n` to tracking allocator example.Jeroen van Rijn2022-03-011-13/+13
|
* mem: Add `doc.odin` with `Tracking_Allocator` example.Jeroen van Rijn2022-02-051-0/+34
|
* core/sys/unix: Add syscalls_linux.odinYawning Angel2021-11-171-42/+34
| | | | | | | Linux is in the unfortunate situation where the system call number is architecture specific. This consolidates the system call number definitions in a single location, adds some wrappers, and hopefully fixes the existing non-portable invocations of the syscall intrinsic.
* core/mem: Add zero_explicitYawning Angel2021-10-311-0/+9
| | | | | | | | | | | | | | | | | | | | | | This call is intended to provide the ability to securely scrub memory without compiler interference, in a similar manner to explicit_bzero, memset_s, SecureZeroMemory. The approach taken is a volatile memset followed by a seqentially consistent memory fence, to prevent the call from being optimized away by DSE, and from being reordered. An identical approach is currently being used by the zeroize Rust crate, and is effective in practice. LLVM IR output: ``` ; Function Attrs: nounwind define internal i8* @mem.zero_explicit(i8* %0, i64 %1) #0 { decls: call void @llvm.memset.p0i8.i64(i8* %0, i8 0, i64 %1, i1 true) fence seq_cst ret i8* %0 } ```
* Improve internal proceduresgingerBill2021-10-251-8/+2
|
* Remove nonsense from `static_arena_init`gingerBill2021-10-051-10/+1
|
* Add error value to `commit`gingerBill2021-10-054-10/+29
|
* Correct `mmap` usagegingerBill2021-10-051-5/+4
|
* Add arena_util.odingingerBill2021-10-052-0/+40
|
* Add `static_arena_bootstrap_new`gingerBill2021-10-051-1/+24
|
* Minor cleanupgingerBill2021-10-052-8/+13
|
* Merge branch 'master' of https://github.com/odin-lang/OdingingerBill2021-10-051-1/+0
|\
| * Remove assert from `mem.ptr_to_bytes`. Fixes #1206Jeroen van Rijn2021-10-051-1/+0
| |
* | Add virtual.Static_ArenagingerBill2021-10-051-0/+134
| |
* | Clean up `Memory_Block` logicgingerBill2021-10-054-90/+135
|/
* Rename to growing_arena.odingingerBill2021-10-041-0/+4
|
* Add `Protect_Flags` for `virtual.protect`gingerBill2021-10-043-9/+38
|
* Add virtual_linux.odingingerBill2021-10-041-0/+101
|
* Separate out the virtual memory allocation proceduresgingerBill2021-10-043-47/+95
| | | | `reserve`, `commit`, `reserve_and_commit`, `decommit`, `release`, `protect`
* Minor clean upgingerBill2021-10-031-5/+2
|
* Remove mutex from `Growing_Arena`; Add `Growing_Arena_Temp`gingerBill2021-10-031-24/+73
|
* Add `@(init)` usage to `core:mem/virtual`gingerBill2021-10-031-4/+1
|
* Rename `virtual.Arena` to `virtual.Growing_Arena`gingerBill2021-09-291-11/+12
|
* Add a mutex to `arena_free_all`gingerBill2021-09-291-0/+6
|
* Add a mutex to virtual.ArenagingerBill2021-09-291-0/+13
|
* Add `core:mem/virtual`gingerBill2021-09-293-0/+289
|
* `mem.Raw_*` alias `runtime.Raw_*`gingerBill2021-09-251-30/+8
|
* Make `runtime.memset` use `int` for the length from `uint`gingerBill2021-09-231-1/+1
|
* fix mem.new_cloneJeroen van Rijn2021-09-191-4/+5
|
* Revert "Merge pull request #1177 from Kelimion/new_clone"Jeroen van Rijn2021-09-191-5/+4
| | | | | This reverts commit efa513262e20d87242731764628440b69341bcbe, reversing changes made to daccfca11df1cb394e99b7f3ad369340147c1fe9.
* fix mem.new_cloneJeroen van Rijn2021-09-191-4/+5
|
* Minor improvements to mem.odingingerBill2021-09-111-5/+8
|
* Fix typogingerBill2021-09-101-1/+1
|
* Add other constants to c and libcgingerBill2021-09-101-1/+1
|
* Unify `memset` usage across platforms and `core:c/libc`gingerBill2021-09-101-8/+1
|
* libc changes: unify c and libc types; Add `[^]T` where appropriategingerBill2021-09-101-2/+9
|
* Strip semicolons in core which were missinggingerBill2021-09-081-1/+4
|
* Correct "contextless" stuff in memgingerBill2021-09-081-13/+12
|
* Fix typogingerBill2021-09-081-1/+1
|
* Make many `mem` procedures `"contextless"`gingerBill2021-09-082-47/+50
|
* Strip even more semicolons if followed by a `}` or `)` on the same linegingerBill2021-08-311-4/+4
|
* Remove unneeded semicolons from the core librarygingerBill2021-08-314-550/+550
|
* Add `map_insert` which returns the pointer to inserted valuegingerBill2021-08-291-0/+11
|
* Correct `mem.clone_slice`gingerBill2021-08-231-2/+2
|
* Unify `new`/`make` the internal logic between runtime and memgingerBill2021-08-232-29/+43
|
* Remove deprecated procedure `slice_ptr_to_bytes`gingerBill2021-08-221-5/+0
|
* Use multi-pointers when appropriategingerBill2021-08-221-4/+3
|
* Enforce `core:builtin` and `core:intrinsics` for importsgingerBill2021-08-211-1/+1
|