]> xenbits.xensource.com Git - unikraft/unikraft.git/commitdiff
lib/nolibc: Implement exit function
authorMarco Schlumpp <marco.schlumpp@gmail.com>
Fri, 25 Mar 2022 15:40:15 +0000 (16:40 +0100)
committerUnikraft <monkey@unikraft.io>
Thu, 4 May 2023 15:50:58 +0000 (15:50 +0000)
The behaviour is similar to returning a value from main.

Checkpatch-Ignore: EMBEDDED_FUNCTION_NAME
Signed-off-by: Marco Schlumpp <marco.schlumpp@gmail.com>
Reviewed-by: Razvan Deaconescu <razvand@unikraft.io>
Reviewed-by: Marc Rittinghaus <marc.rittinghaus@unikraft.io>
Approved-by: Marc Rittinghaus <marc.rittinghaus@unikraft.io>
Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #627

lib/nolibc/exportsyms.uk
lib/nolibc/include/stdlib.h
lib/nolibc/stdlib.c

index 5a8ce838409898fdd8bd934be74474151e311337..852a431f0e382fa37c54af996bf12d65b7550e8b 100644 (file)
@@ -43,6 +43,7 @@ putchar
 
 # stdlib
 abort
+exit
 strtol
 strtoul
 strtoll
index eb434e66058817fa3d01a90e274b128704e331f2..b06b4bbba3e52701e8c04dafe8de5ec077585783 100644 (file)
@@ -117,6 +117,8 @@ static inline void *memalign(size_t align, size_t size)
 
 void abort(void) __noreturn;
 
+void exit(int status) __noreturn;
+
 void qsort(void *base, size_t nmemb, size_t size,
            int (*compar)(const void *, const void *));
 
index a2779bda15f8cf9f04cbfe3aabafecb0b1058a07..30963f659eb64157b6c069ce214ceee0faf14f10 100644 (file)
@@ -431,3 +431,11 @@ void abort(void)
        uk_pr_crit("Abnormal termination!\n");
        ukplat_crash();
 }
+
+#ifndef CONFIG_LIBPOSIX_PROCESS
+void exit(int status)
+{
+       uk_pr_info("exit called with status %d, halting system\n", status);
+       ukplat_terminate(status);
+}
+#endif /* !CONFIG_LIBPOSIX_PROCESS */