GCC Code Coverage Report


Directory: kernel/
File: kernel/src/cpu.c
Date: 2024-01-01 16:15:14
Exec Total Coverage
Lines: 12 15 80.0%
Functions: 3 4 75.0%
Branches: 3 4 75.0%

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
9 #define KLOG_TAG "cpu"
10 #define KLOG_LVL KLOG_WARNING
11 #include <puppy/klog.h>
12
13 static struct p_cpu _g_cpu[P_CPU_NR];
14
15 p_weak uint8_t p_cpu_self_id(void)
16 {
17 return 0;
18 }
19
20 20830 inline struct p_cpu *p_cpu_self(void)
21 {
22 20830 return &_g_cpu[p_cpu_self_id()];
23 }
24
25 2683 inline struct p_cpu *p_cpu_index(uint8_t cpuid)
26 {
27
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 2683 times.
2683 if (cpuid >= P_CPU_NR)
28 return NULL;
29 2683 return &_g_cpu[cpuid];
30 }
31
32 arch_spinlock_t cpu;
33 1 void p_cpu_init(void)
34 {
35 1 arch_spin_lock_init(&cpu);
36
2/2
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 1 times.
5 for (int i = 0; i < P_CPU_NR; i++)
37 {
38 4 p_list_init(&_g_cpu[i].ready_queue);
39 4 p_list_init(&_g_cpu[i].dead_queue);
40 4 _g_cpu[i].sched_lock = 1;
41 }
42 1 }
43