GCC Code Coverage Report


Directory: kernel/
File: kernel/src/errno.c
Date: 2024-01-01 16:15:14
Exec Total Coverage
Lines: 9 20 45.0%
Functions: 2 3 66.7%
Branches: 2 18 11.1%

Line Branch Exec Source
1 /*
2 * Copyright (c) 2022-2023, The Puppy RTOS Authors
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7 #include <puppy.h>
8 #include <puppy/kobj.h>
9
10 static int _g_errno;
11
12 315 int p_get_errno(void)
13 {
14 315 struct _thread_obj *_thread = p_thread_self();
15
1/2
✓ Branch 0 taken 315 times.
✗ Branch 1 not taken.
315 if (_thread)
16 315 return _thread->errno;
17 else
18 return _g_errno;
19 }
20
21 33 void p_set_errno(int errno)
22 {
23 33 struct _thread_obj *_thread = p_thread_self();
24
1/2
✓ Branch 0 taken 33 times.
✗ Branch 1 not taken.
33 if (_thread)
25 33 _thread->errno = errno;
26 else
27 _g_errno = errno;
28 33 }
29
30 const char *p_errno_str(int errno)
31 {
32 if (errno == P_EOK) return" OK";
33 else if (errno == P_EINVAL) return" INVAL";
34 else if (errno == P_EISR) return" ISR";
35 else if (errno == P_ETIMEOUT) return" TIMEOUT";
36 else if (errno == P_EBUSY) return" BUSY";
37 else if (errno == P_ENOSYS) return" NOSYS";
38 else if (errno == P_ESYSCALL) return" SYSCALL";
39 else return "unknown";
40 }
41