Cleanup syscalls
All checks were successful
Build documentation / build-and-deploy (push) Successful in 34s
All checks were successful
Build documentation / build-and-deploy (push) Successful in 34s
This commit is contained in:
@@ -183,7 +183,7 @@ void procgroup_detach (struct procgroup* procgroup, struct proc* proc) {
|
||||
spin_unlock (&procgroup->lock, &ctxpg);
|
||||
rw_spin_write_unlock (&procgroup_tree_lock, &ctxpgtr);
|
||||
|
||||
/* unlink resources */
|
||||
/* delete resources */
|
||||
struct rb_node_link* rnode;
|
||||
rbtree_first (&procgroup->resource_tree, rnode);
|
||||
while (rnode) {
|
||||
@@ -195,7 +195,7 @@ void procgroup_detach (struct procgroup* procgroup, struct proc* proc) {
|
||||
|
||||
rnode = next;
|
||||
|
||||
proc_resource_unlink (resource);
|
||||
proc_delete_resource (resource);
|
||||
}
|
||||
|
||||
struct list_node_link *mapping_link, *mapping_link_tmp;
|
||||
@@ -212,7 +212,3 @@ void procgroup_detach (struct procgroup* procgroup, struct proc* proc) {
|
||||
free (procgroup);
|
||||
}
|
||||
}
|
||||
|
||||
int procgroup_get_sys_rid (struct procgroup* procgroup) {
|
||||
return atomic_fetch_add (&procgroup->sys_rids, 1);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ struct procgroup {
|
||||
struct procgroup* procgroup_create (void);
|
||||
void procgroup_attach (struct procgroup* procgroup, struct proc* proc);
|
||||
void procgroup_detach (struct procgroup* procgroup, struct proc* proc);
|
||||
int procgroup_get_sys_rid (struct procgroup* procgroup);
|
||||
uintptr_t procgroup_map (struct procgroup* procgroup, uintptr_t vaddr, size_t pages, uint32_t flags,
|
||||
uintptr_t* out_paddr);
|
||||
bool procgroup_unmap (struct procgroup* procgroup, uintptr_t start_vaddr, size_t pages);
|
||||
|
||||
@@ -42,7 +42,6 @@ struct proc_resource* proc_create_resource_mutex (struct procgroup* procgroup, i
|
||||
resource->u.mutex.resource = resource;
|
||||
resource->rid = rid;
|
||||
resource->type = PR_MUTEX;
|
||||
resource->refs = 1;
|
||||
|
||||
spin_lock (&procgroup->lock, &ctxpg);
|
||||
rbtree_insert (struct proc_resource, &procgroup->resource_tree, &resource->resource_tree_link,
|
||||
@@ -52,9 +51,7 @@ struct proc_resource* proc_create_resource_mutex (struct procgroup* procgroup, i
|
||||
return resource;
|
||||
}
|
||||
|
||||
void proc_resource_unlink (struct proc_resource* resource) {
|
||||
if (atomic_fetch_sub (&resource->refs, 1) == 1) {
|
||||
resource->ops.cleanup (resource);
|
||||
free (resource);
|
||||
}
|
||||
void proc_delete_resource (struct proc_resource* resource) {
|
||||
resource->ops.cleanup (resource);
|
||||
free (resource);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@ struct procgroup;
|
||||
struct proc_resource {
|
||||
int type;
|
||||
int rid;
|
||||
atomic_int refs;
|
||||
spin_lock_t lock;
|
||||
struct rb_node_link resource_tree_link;
|
||||
union {
|
||||
@@ -28,6 +27,6 @@ struct proc_resource {
|
||||
|
||||
struct proc_resource* proc_find_resource (struct procgroup* procgroup, int rid);
|
||||
struct proc_resource* proc_create_resource_mutex (struct procgroup* procgroup, int rid);
|
||||
void proc_resource_unlink (struct proc_resource* resource);
|
||||
void proc_delete_resource (struct proc_resource* resource);
|
||||
|
||||
#endif // _KERNEL_PROC_RESOURCE_H
|
||||
|
||||
Reference in New Issue
Block a user