diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-10-30 02:32:02 +0200 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-10-30 02:32:02 +0200 |
| commit | 7a23d95b6e432170d6575f515616e5936d53c85e (patch) | |
| tree | afdc349124ca40c4903b534f750f18e8527bf7c5 /src/vmem.c | |
| parent | e7b5881903ad81efee63966e7d2c42524d465dfc (diff) | |
| download | kmi-7a23d95b6e432170d6575f515616e5936d53c85e.tar.gz kmi-7a23d95b6e432170d6575f515616e5936d53c85e.zip | |
bookkeeping
Diffstat (limited to 'src/vmem.c')
| -rw-r--r-- | src/vmem.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -64,6 +64,14 @@ static stat_t __copy_mapped_region(struct tcb *d, struct tcb *s, return res; } +/** + * Reference shared memory, creating a link between the referrer and owner. + * + * @param d 'Owner' of \p orig. + * @param s Referrer of \p ref. + * @param ref Address of shared memory reference in \p s. + * @param orig Address of shared memory in \p d. + */ static void reference_mem(struct tcb *d, struct tcb *s, vm_t ref, vm_t orig) { struct mem_region *src = find_used_region(&s->uvmem.region, orig); @@ -81,6 +89,13 @@ static void reference_mem(struct tcb *d, struct tcb *s, vm_t ref, vm_t orig) static void __free_mapping(struct tcb *t, struct mem_region *m); +/** + * Unreference memory region at address \p addr. + * Also unreferences owning process. + * + * @param s Reference holder of \p addr. + * @param addr Address to unreference. Or would dereference be better? + */ static void unreference_mem(struct tcb *s, vm_t addr) { struct mem_region *src = find_used_region(&s->uvmem.region, addr); |
