summaryrefslogtreecommitdiff
path: root/kernel/sched
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-04-26 19:06:46 +0200
committerAnton Kling <anton@kling.gg>2024-04-26 19:06:46 +0200
commit7ab3153f92f38223157c4c1f4af1c30e33c94a76 (patch)
tree301f950cd6dc8fde244e9b5c1201ec01d964347b /kernel/sched
parent2e2805c88789c148cce0118d3a4ff0212458bb86 (diff)
Kernel/VFS: Change polling from variables to functions
Instead of having to store state in variables functions are called to check the object directly.
Diffstat (limited to 'kernel/sched')
-rw-r--r--kernel/sched/scheduler.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/kernel/sched/scheduler.c b/kernel/sched/scheduler.c
index 9948c72..6454775 100644
--- a/kernel/sched/scheduler.c
+++ b/kernel/sched/scheduler.c
@@ -382,8 +382,10 @@ int isset_fdhalt(process_t *p, int *empty) {
break;
}
*empty = 0;
- if (inode->has_data) {
- return 0;
+ if (inode->_has_data) {
+ if (inode->_has_data(inode)) {
+ return 0;
+ }
}
blocked = 1;
}
@@ -393,8 +395,10 @@ int isset_fdhalt(process_t *p, int *empty) {
break;
}
*empty = 0;
- if (inode->can_write) {
- return 0;
+ if (inode->_can_write) {
+ if (inode->_can_write(inode)) {
+ return 0;
+ }
}
blocked = 1;
}
@@ -647,8 +651,8 @@ void *mmap(void *addr, size_t length, int prot, int flags, int fd,
}
void *rc = create_physical_mapping(vmobject->object, length);
if (!rc) {
- kprintf("ENOMEM\n");
- return (void *)-ENOMEM;
+ kprintf("ENOMEM\n");
+ return (void *)-ENOMEM;
}
free_map->u_address = rc;
free_map->k_address = NULL;