kernel: finish work of removing interruptible mutexes

This commit is contained in:
Matheus
2024-12-24 21:30:25 -03:00
parent 48643c4868
commit a6c169e5e6
42 changed files with 169 additions and 169 deletions
+4 -4
View File
@@ -132,7 +132,7 @@ void *pmm_getpageaddress(page_t *page) {
void pmm_hold(void *addr) {
page_t *page = &pages[((uintptr_t)addr / PAGE_SIZE)];
MUTEX_ACQUIRE(&freelistmutex, false);
MUTEX_ACQUIRE(&freelistmutex);
internalhold(page);
MUTEX_RELEASE(&freelistmutex);
}
@@ -144,7 +144,7 @@ void pmm_release(void *addr) {
uintmax_t newrefcount = __atomic_sub_fetch(&page->refcount, 1, __ATOMIC_SEQ_CST);
if (newrefcount == 0) {
__assert((page->flags & PAGE_FLAGS_DIRTY) == 0);
MUTEX_ACQUIRE(&freelistmutex, false);
MUTEX_ACQUIRE(&freelistmutex);
insertinfreelist(page);
if (page->backing == NULL)
page->flags |= PAGE_FLAGS_FREE;
@@ -160,7 +160,7 @@ static void doalloc(page_t *page) {
void *pmm_allocpage(int section) {
retry:
MUTEX_ACQUIRE(&freelistmutex, false);
MUTEX_ACQUIRE(&freelistmutex);
page_t *page = NULL;
// try to take a free anonymous page
@@ -274,7 +274,7 @@ void *pmm_alloc(size_t size, int section) {
if (size == 1)
return pmm_allocpage(section);
MUTEX_ACQUIRE(&freelistmutex, false);
MUTEX_ACQUIRE(&freelistmutex);
uintmax_t page = 0;
size_t found = 0;
+3 -3
View File
@@ -143,7 +143,7 @@ static slab_t *returnobject(scache_t *cache, void *obj) {
}
void *slab_allocate(scache_t *cache) {
MUTEX_ACQUIRE(&cache->mutex, false);
MUTEX_ACQUIRE(&cache->mutex);
slab_t *slab = NULL;
if (cache->partial != NULL)
slab = cache->partial;
@@ -192,7 +192,7 @@ void *slab_allocate(scache_t *cache) {
}
void slab_free(scache_t *cache, void *addr) {
MUTEX_ACQUIRE(&cache->mutex, false);
MUTEX_ACQUIRE(&cache->mutex);
slab_t *slab = returnobject(cache, addr);
__assert(slab);
@@ -284,7 +284,7 @@ static size_t purge(scache_t *cache, size_t maxcount){
}
void slab_freecache(scache_t *cache) {
MUTEX_ACQUIRE(&cache->mutex, false);
MUTEX_ACQUIRE(&cache->mutex);
__assert(cache->partial == NULL);
__assert(cache->full == NULL);
+8 -8
View File
@@ -44,7 +44,7 @@ static vmmrange_t *allocrange() {
vmmcache_t *cache = cachelist;
vmmrange_t *range = NULL;
while (cache) {
MUTEX_ACQUIRE(&cache->header.lock, false);
MUTEX_ACQUIRE(&cache->header.lock);
if (cache->header.freecount > 0) {
--cache->header.freecount;
uintmax_t r = getentrynumber(cache);
@@ -66,7 +66,7 @@ static vmmrange_t *allocrange() {
static void freerange(vmmrange_t *range) {
vmmcache_t *cache = (vmmcache_t *)ROUND_DOWN((uintptr_t)range, PAGE_SIZE);
MUTEX_ACQUIRE(&cache->header.lock, false);
MUTEX_ACQUIRE(&cache->header.lock);
int rangeoffset = ((uintptr_t)range - (uintptr_t)cache->ranges) / sizeof(vmmrange_t);
range->size = 0;
@@ -501,7 +501,7 @@ int vmm_changemmuflags(void *base, size_t size, mmuflags_t mmuflags, int flags)
if (space == NULL)
return ENOMEM;
MUTEX_ACQUIRE(&space->lock, false);
MUTEX_ACQUIRE(&space->lock);
int error = changemap(space, base, size, false, flags, mmuflags);
arch_mmu_invalidate_range(base, size);
@@ -536,7 +536,7 @@ bool vmm_pagefault(void *addr, bool user, int actions) {
return false;
}
MUTEX_ACQUIRE(&space->lock, false);
MUTEX_ACQUIRE(&space->lock);
vmmrange_t *range = getrange(space, addr);
bool status = false;
@@ -665,7 +665,7 @@ void *vmm_getphysical(void *addr, bool hold) {
if (space == NULL)
return NULL;
MUTEX_ACQUIRE(&space->lock, false);
MUTEX_ACQUIRE(&space->lock);
void *physical = arch_mmu_getphysical(current_vmm_context()->pagetable, addr);
@@ -695,7 +695,7 @@ void *vmm_map(void *addr, volatile size_t size, int flags, mmuflags_t mmuflags,
if (space == NULL)
return NULL;
MUTEX_ACQUIRE(&space->lock, false);
MUTEX_ACQUIRE(&space->lock);
vmmrange_t *range = NULL;
void *start = getfreerange(space, addr, size);
@@ -803,7 +803,7 @@ void vmm_unmap(void *addr, size_t size, int flags) {
if (space == NULL)
return;
MUTEX_ACQUIRE(&space->lock, false);
MUTEX_ACQUIRE(&space->lock);
// make memory inacessible
changemap(space, addr, size, false, flags, 0);
@@ -858,7 +858,7 @@ vmmcontext_t *vmm_fork(vmmcontext_t *oldcontext) {
if (newcontext == NULL)
return NULL;
MUTEX_ACQUIRE(&oldcontext->space.lock, false);
MUTEX_ACQUIRE(&oldcontext->space.lock);
vmmrange_t *range = oldcontext->space.ranges;
+1 -1
View File
@@ -18,7 +18,7 @@ static eventheader_t pagereadyevent;
size_t vmmcache_cachedpages;
#define HOLD_LOCK() \
MUTEX_ACQUIRE(&mutex, false);
MUTEX_ACQUIRE(&mutex);
#define RELEASE_LOCK() \
MUTEX_RELEASE(&mutex);