diff options
author | Jon Santmyer <jon@jonsantmyer.com> | 2025-08-11 19:04:26 -0400 |
---|---|---|
committer | Jon Santmyer <jon@jonsantmyer.com> | 2025-08-11 19:04:26 -0400 |
commit | f466364b8a3858e7b3f19258d142851cb4a7e6d6 (patch) | |
tree | a22819dc585c44a6dd0cdd5c6856420443a031eb /syscall/invoke_objdir.c | |
parent | c4f8ef91f18d854a4ede7a94e95b2eab898d6963 (diff) | |
download | jove-kernel-main.tar.gz jove-kernel-main.tar.bz2 jove-kernel-main.zip |
remove _initData, replace with enum indexesmain
Diffstat (limited to 'syscall/invoke_objdir.c')
-rw-r--r-- | syscall/invoke_objdir.c | 36 |
1 files changed, 8 insertions, 28 deletions
diff --git a/syscall/invoke_objdir.c b/syscall/invoke_objdir.c index 9cd3f32..97dd126 100644 --- a/syscall/invoke_objdir.c +++ b/syscall/invoke_objdir.c @@ -5,25 +5,6 @@ #include "print.h" static int -s_handle_invoke_objdir_nmemb( - objdir_t *root_dir, - objdir_t *target_dir, - uint8_t *payload, - size_t payload_at - ) -{ - uint8_t *dest; - SYSCALL_PAYLOAD_TAKEP(payload, payload_at, dest, uint8_t); - - *dest = target_dir->self.data; - -#ifdef DBG_SYSCALL - klogf("objdir_nmemb %p[%i]\n", dest, *dest); -#endif - return KE_OK; -} - -static int s_handle_invoke_objdir_getmemb( objdir_t *root_dir, objdir_t *target_dir, @@ -46,7 +27,7 @@ s_handle_invoke_objdir_getmemb( } static int -s_handle_invoke_objdir_lastfree( +s_handle_invoke_objdir_lastmemb( objdir_t *root_dir, objdir_t *target_dir, uint8_t *payload, @@ -56,19 +37,18 @@ s_handle_invoke_objdir_lastfree( path_byte_t *dest; SYSCALL_PAYLOAD_TAKEP(payload, payload_at, dest, path_byte_t); - for(int i = 0; i < 256; i++) { - if(target_dir->entries[i].type == KO_NONE) { - *dest = (path_byte_t)i; - return KE_OK; - } + uint8_t lastfull = 0; + for(int i = 1; i < 256; i++) { + if(target_dir->entries[i].type != KO_NONE) lastfull = i; } - return -KE_FULL; + + *dest = lastfull; + return 0; } static int (*s_invoke_handles[])(objdir_t*, objdir_t*, uint8_t*, size_t) = { - [INVOKE_OBJDIR_NMEMB] = s_handle_invoke_objdir_nmemb, [INVOKE_OBJDIR_GETMEMB] = s_handle_invoke_objdir_getmemb, - [INVOKE_OBJDIR_LASTFREE] = s_handle_invoke_objdir_lastfree + [INVOKE_OBJDIR_LASTMEMB] = s_handle_invoke_objdir_lastmemb }; static size_t s_invoke_handles_count = sizeof(s_invoke_handles) / sizeof(void*); |