diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-08-27 01:24:30 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-08-27 01:24:30 +0200 |
commit | e34814b27b4a5b80761c166d5827d1c9177fd1fe (patch) | |
tree | 6acd0dc3247162badbc350dcc59c66d00efa7458 /tmpfs/tmpfs.h | |
parent | 5c2ab2008137612797ccaa6c07599cc3e0f9e722 (diff) |
Keep a reference on objects to preserve their content.
Modify tmpfs to keep a reference (by mapping it into its
own space) to each memory object created by the user, so they don't get
inmediately terminated at the end of the current operation.
* tmpfs/tmpfs.h (struct disknode): Add `memref' field.
* tmpfs/node.c (diskfs_get_filemap): vm_map() the first page of the
newly-allocated object, store in `memref' field.
(diskfs_free_node) vm_deallocate the page pointed by `memref' field.
Diffstat (limited to 'tmpfs/tmpfs.h')
-rw-r--r-- | tmpfs/tmpfs.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tmpfs/tmpfs.h b/tmpfs/tmpfs.h index a0e1f7ad..3d38e2ab 100644 --- a/tmpfs/tmpfs.h +++ b/tmpfs/tmpfs.h @@ -47,6 +47,7 @@ struct disknode struct { mach_port_t memobj; + vm_address_t memref; unsigned int allocpages; /* largest size while memobj was live */ } reg; struct |