From f466364b8a3858e7b3f19258d142851cb4a7e6d6 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Mon, 11 Aug 2025 19:04:26 -0400 Subject: remove _initData, replace with enum indexes --- syscall/invoke_objdir.c | 36 ++++++++---------------------------- 1 file changed, 8 insertions(+), 28 deletions(-) (limited to 'syscall/invoke_objdir.c') 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 @@ -4,25 +4,6 @@ #include "lock.h" #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, @@ -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*); -- cgit v1.2.1