summaryrefslogtreecommitdiff
path: root/libhurd-mm/capalloc.c
AgeCommit message (Collapse)Author
2008-12-18Add vg_ prefix to the (hopefully) remaining viengoos symbols.Neal H. Walfield
2008-12-18 Neal H. Walfield <neal@gnu.org> * viengoos/activity.h (struct activity_memory_policy): Rename from this... (struct vg_activity_memory_policy): ... to this. Update users. (struct activity_policy): Rename from this... (struct vg_activity_policy): ... to this. Update users. (ACTIVITY_STATS_PERIODS): Rename from this... (VG_ACTIVITY_STATS_PERIODS): ... to this. Update users. (struct activity_stats): Rename from this... (struct vg_activity_stats): ... to this. Update users. (struct activity_info): Rename from this... (struct vg_activity_info): ... to this. Update users. * viengoos/addr.h (struct addr): Rename from this... (struct vg_addr): ... to this. Update users. * viengoos/cap.h (struct object_policy): Rename from this... (struct vg_object_policy): ... to this. Update users. (struct object_name): Rename from this... (struct vg_object_name): ... to this. Update users. (struct object): Rename from this... (struct vg_object): ... to this. Update users. * viengoos/folio.h (struct folio_policy): Rename from this... (struct vg_folio_policy): ... to this. Update users. (struct folio): Rename for this... (struct vg_folio): ... to this. Update users. * viengoos/thread.h (HURD_EXREGS_SET_UTCB): Rename from this... (VG_EXREGS_SET_UTCB): ... to this. Update users. (HURD_EXREGS_SET_EXCEPTION_MESSENGER): Rename from this... (VG_EXREGS_SET_EXCEPTION_MESSENGER): ... to this. Update users. (HURD_EXREGS_SET_ASPACE): Rename from this... (VG_EXREGS_SET_ASPACE): ... to this. Update users. (HURD_EXREGS_SET_ACTIVITY): Rename from this... (VG_EXREGS_SET_ACTIVITY): ... to this. Update users. (HURD_EXREGS_SET_SP): Rename from this... (VG_EXREGS_SET_SP): ... to this. Update users. (HURD_EXREGS_SET_IP): Rename from this... (VG_EXREGS_SET_IP): ... to this. Update users. (HURD_EXREGS_SET_SP_IP): Rename from this... (VG_EXREGS_SET_SP_IP): ... to this. Update users. (HURD_EXREGS_SET_EFLAGS): Rename from this... (VG_EXREGS_SET_EFLAGS): ... to this. Update users. (HURD_EXREGS_SET_USER_HANDLE): Rename from this... (VG_EXREGS_SET_USER_HANDLE): ... to this. Update users. (HURD_EXREGS_SET_REGS): Rename from this... (VG_EXREGS_SET_REGS): ... to this. Update users. (HURD_EXREGS_GET_REGS): Rename from this... (VG_EXREGS_GET_REGS): ... to this. Update users. (HURD_EXREGS_START): Rename from this... (VG_EXREGS_START): ... to this. Update users. (HURD_EXREGS_STOP): Rename from this... (VG_EXREGS_STOP): ... to this. Update users. (HURD_EXREGS_ABORT_SEND): Rename from this... (VG_EXREGS_ABORT_SEND): ... to this. Update users. (HURD_EXREGS_ABORT_RECEIVE): Rename from this... (VG_EXREGS_ABORT_RECEIVE): ... to this. Update users. (HURD_EXREGS_ABORT_IPC): Rename from this... (VG_EXREGS_ABORT_IPC): ... to this. Update users. (struct hurd_thread_exregs_in): Rename form this... (struct vg_thread_exregs_in): ... to this. Update users. (struct hurd_thread_exregs_out): Rename form this... (struct vg_thread_exregs_out): ... to this. Update users. (RPC_STUB_PREFIX): Define to vg_activation. Update users. (RPC_ID_PREFIX): Define to VG_ACTIVATION. Update users. (ACTIVATION_fault): Rename from this... (VG_ACTIVATION_fault): ... to this. Update users.
2008-12-17Add a "vg_" to public viengoos identifiers.Neal H. Walfield
2008-12-17 Neal H. Walfield <neal@gnu.org> * viengoos/activity.h: Add a "vg_" to public viengoos identifiers. Update users. * viengoos/addr-trans.h: Likewise. * viengoos/addr.h: Likewise. * viengoos/cap.h: Likewise. * viengoos/folio.h: Likewise. * viengoos/futex.h: Likewise. * viengoos/rpc.h: Likewise. * viengoos/thread.h: Likewise.
2008-12-17Move viengoos header files to libviengoos.Neal H. Walfield
/ 2008-12-17 Neal H. Walfield <neal@gnu.org> * libviengoos: New directory. * Makefile.am (SUBDIRS): Add libviengoos. * configure.ac: Include libviengoos/headers.m4. Generate libviengoos/Makefile. hurd/ 2008-12-17 Neal H. Walfield <neal@gnu.org> * activity.h: Move to ../libviengoos/viengoos. Update references. * addr-trans.h: Likewise. * addr.h: Likewise. * cap.h: Likewise. * folio.h: Likewise. * futex.h: Likewise. * ipc.h: Likewise. * message.h: Likewise. * messenger.h: Likewise. * rpc.h: Likewise. * thread.h: Move viengoos specific bits... * ../libviengoos/viengoos/thread.h: ... to this new file. * thread.h (struct hurd_utcb): New structure. * exceptions.h (hurd_utcb): Use a struct hurd_utcb *, not a struct vg_utcb *. Update users. (hurd_activation_state_alloc): Likewise. (hurd_activation_state_free): Likewise. (hurd_activation_handler_activated): Likewise. (hurd_activation_handler_normal): Likewise. * t-addr-trans.c: Move to ../libviengoos. * t-addr.c: Likewise. * t-rpc.c: Likewise. * Makefile.am (TESTS, check_PROGRAMS, t_addr_CPPFLAGS) (t_addr_SOURCES, t_addr_trans_CPPFLAGS, t_addr_trans_SOURCES) (t_rpc_CPPFLAGS, t_rpc_SOURCES): Move from this file... * ../libviengoos/Makefile.am. * Makefile.am (includehurd_HEADERS): Don't mention activity.h, addr-trans.h, addr.h, cap.h, folio.h, futex.h, ipc.h, message.h or messenger.h. * headers.m4: Don't create a link to hurd/addr.h, hurd/addr-trans.h, hurd/cap.h, hurd/folio.h, hurd/rpc.h, hurd/activity.h, hurd/futex.h, hurd/message.h, hurd/messenger.h or hurd/ipc.h. libviengoos/ 2008-12-17 Neal H. Walfield <neal@gnu.org> * Makefile.am: New file. * headers.m4: Likewise. * t-addr-trans.c: Move from ../hurd. * t-addr.c: Likewise. * t-rpc.c: Likewise. * viengoos.h: Likewise. * viengoos/activity.h: Likewise. * viengoos/addr-trans.h: Likewise. * viengoos/addr.h: Likewise. * viengoos/cap.h: Likewise. * viengoos/folio.h: Likewise. * viengoos/futex.h: Likewise. * viengoos/ipc.h: Likewise. * viengoos/message.h: Likewise. * viengoos/messenger.h: Likewise. * viengoos/rpc.h: Likewise. * viengoos/misc.h: Moved from ../viengoos/rm.h. * viengoos/thread.h: New file split from ../hurd/thread.h. libpthread/ 2008-12-17 Neal H. Walfield <neal@gnu.org> * Makefile.am: New file. * headers.m4: Likewise. * t-addr-trans.c: Move from ../hurd. * t-addr.c: Likewise. * t-rpc.c: Likewise. * viengoos.h: Likewise. * viengoos/activity.h: Likewise. * viengoos/addr-trans.h: Likewise. * viengoos/addr.h: Likewise. * viengoos/cap.h: Likewise. * viengoos/folio.h: Likewise. * viengoos/futex.h: Likewise. * viengoos/ipc.h: Likewise. * viengoos/message.h: Likewise. * viengoos/messenger.h: Likewise. * viengoos/rpc.h: Likewise. * viengoos/misc.h: Moved from ../viengoos/rm.h. * viengoos/thread.h: New file split from ../hurd/thread.h. viengoos/ 2008-12-17 Neal H. Walfield <neal@gnu.org> * rm.h: Move from here... * ../libviengoos/viengoos/misc.h: ... to here. Update users. * headers.m4: Don't link rm.h to hurd/rm.h. * Makefile.am (viengoos_SOURCES): Remove rm.h.
2008-02-13libhurd-mm/neal
2008-02-13 Neal H. Walfield <neal@gnu.org> * storage.h (storage_alloc): Take additional parameter policy. Update callers. * storage.c (storage_alloc): Take additional parameter policy. Use it when allocating the object and updating the shadow capability slots. libpthread/ 2008-02-13 Neal H. Walfield <neal@gnu.org> * sysdeps/l4/hurd/pt-thread-alloc.c (__pthread_thread_alloc): Update use of storage_alloc to be consistent with new API. newlib/ 2008-02-13 Neal H. Walfield <neal@gnu.org> * addon/newlib/libc/sys/hurd/getreent.c (slab_alloc): Update use of storage_alloc to be consistent with new API. ruth/ 2008-02-13 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Update use of storage_alloc to be consistent with new API.
2008-01-232008-01-23 Neal H. Walfield <neal@gnu.org>neal
* capalloc.c (link): Rename from this... (list_link): ... to this. Update users. (unlink): Rename from this... (list_unlink): ... to this. Update users. * storage.c (link): Rename from this... (list_link): ... to this. Update users. (unlink): Rename from this... (list_unlink): ... to this. Update users.
2007-12-17libhurd-mm/neal
2007-12-17 Neal H. Walfield <neal@gnu.org> * anonymous.c: Update BTREE_CLASS use to reflect API changes. * as.c: Likewise. * capalloc.c: Likewise. * pager.h: Likewise. * storage.c: Likewise. viengoos/ 2007-12-17 Neal H. Walfield <neal@gnu.org> * memory.c: Update BTREE_CLASS use to reflect API changes.
2007-11-272007-11-27 Neal H. Walfield <neal@gnu.org>neal
* as.c: Include <pthread.h>. Remove dead code. (free_spaces_lock): New variable. (free_space_split): Assert that it is held. (as_alloc): Make thread-safe. (as_alloc_at): Likewise. (as_free): Likewise. (as_alloced_dump): Likewise. * storage.c: Include <pthread.h> and <atomic.h>. (free_count): Make a uatomic32_t, rather than an int. Update users to access it using atomic operations. (struct storage_desc): New field, lock. (storage_descs_lock): New global variable. (link): Assert that STORAGE_DESCS_LOCK is held. (unlink): Likewise. Don't assert that E->NEXT is NULL, which is valid. (slab_space_reserve): Make an atomicptr_t, rather than a void *. Update users to access it using atomic operations. (check_slab_space_reserve): Rewrite function to be thread-safe. (storage_desc_free): Assert that STORAGE_DESCS_LOCK is held. (storage_alloc): Rewrite function to be thread-safe. (storage_free): Likewise. (storage_init): Take STORAGE_DESCS_LOCK. Initialize SDESC->LOCK. * capalloc.c: Include <pthread.h>. (struct cappage_desc): New field, lock. (unlink): Don't assert E->NEXT. (cappage_descs_lock): New variable. (capalloc): Make thread safe. (capfree): Likewise. * pager.h: Include <pthread.h>. (pager_fault_t): Note that PAGER->LOCK will be held. (struct pager): New field, lock. (pagers_lock): New declaration. (pager_install): Note locking requirements. (pager_relocate): Likewise. (pager_deinstall): Likewise. * pager.c (pagers_lock): New definition. (pager_install): Add asserts. (pager_relocate): Likewise. (pager_deinstall): Likewise. (pager_fault): Likewise. Make function thread-safe. * anonymous.c (struct storage_desc): Add comment about locking. (fault): Add assert. (anonymous_pager_alloc): Take PAGERS_LOCK before calling pager_install and drop it afterwards. (anonymous_pager_destroy): Take PAGERS_LOCK before calling pager_deinstall and drop it afterwards. Take ANON->PAGER.LOCK.
2007-11-22libhurd-mm/neal
2007-11-22 Neal H. Walfield <neal@gnu.org> * storage.h (struct storage): New struct. (storage_alloc): Return a struct storage, not an addr. Update all callers. * storage.c (struct storage_desc): Remove field shadow. Add field cap. (shadow_setup): Save the cap. (storage_alloc): Return a struct storage, not an addr. (storage_free): Correctly free the shadow if not used. Update STORAGE->CAP to reflect that the folio has been removed. * capalloc.c (struct cappage_desc): Add field cap. (capalloc): Stash CAP. When allocating a cappage, allocate a shadow object. (capfree): Really free CAPPAGE if there is another page available. If freeing CAPPAGE, unlink DESC and update DESC->CAP to reflect that the page has been deallocated, deallocate the shadow, and deallocate CAPPAGE. * exceptions.c (exception_thread): Print IP when a fault cannot be resolved. * mmap.c (mmap): Cast addr to a uintptr_t to elide warning. ruth/ 2007-11-22 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Update uses of stroage_alloc to its new interface.
2007-11-19hurd/neal
2007-11-19 Neal H. Walfield <neal@gnu.org> * addr.h (ADDR_TO_PTR): Assert that the address corresponds to a pointer, not the root of a mapped page. Update callers. (PTR_TO_ADDR): Return an address corresponding to a pointer, not the root of a mapped page. Update callers. libhurd-mm/ 2007-11-19 Neal H. Walfield <neal@gnu.org> * as.c (__hurd_startup_data): Declare. (free_space_desc_slab_alloc): Use ADDR_TO_PTR and PTR_TO_ADDR correctly. (free_space_desc_slab_dealloc): Likewise. (allocate_object): Likewise. (storage_alloc): Likewise. (as_init): Likewise. * capalloc.c (cappage_desc_slab_alloc): Likewise. (cappage_desc_slab_dealloc): Likewise. * storage.c (__hurd_startup_data): Declare. (check_slab_space_reserve): Likewise. (storage_desc_slab_dealloc): Likewise. (shadow_setup): Likewise. (storage_free): Likewise. ruth/ 2007-11-19 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Use ADDR_TO_PTR and PTR_TO_ADDR correctly.
2007-11-162007-11-16 Neal H. Walfield <neal@gnu.org>neal
* Makefile.am (includehurd_HEADERS): Remove vm.h. Add storage.h and as.h. (AM_CPPFLAGS): Rename from this... (COMMON_CPPFLAGS): ... to this. (libhurd_mm_a_SOURCES): Remove vm.h, vm.c, priv.h, store.c, map.c, memory.c, pager.c, core.c, anonymous.c, anonymous.h, physmem-user.h and physmem-user.c. Add capalloc.h, capalloc.c, storage.h, storage.c, as.h and mmap.c. * headers.m4: Don't link $(BUILDDIR)/include/hurd/vm.h to vm.h or $(BUILDDIR)/include/hurd/anonymous.h to anonymous.h. Link $(BUILDDIR)/include/hurd/as.h to as.h, $(BUILDDIR)/include/hurd/storage.h to storage.h, and $(BUILDDIR)/include/hurd/capalloc.h to libhurd-mm/capalloc.h. * mm-init.c: Rewrite. * mm.h: Likewise. * as.c: Likewise. * as.h: New file. * capalloc.h: Likewise. * capalloc.c: Likewise. * mmap.c: Likewise. * storage.h: Likewise. * storage.c: Likewise. * physmem-user.h: Remove file. * physmem-user.c: Remove file.