new: kthread机制

This commit is contained in:
fslongjin
2022-09-30 15:30:50 +08:00
parent edef02286e
commit 02a6b3a303
21 changed files with 802 additions and 326 deletions

View File

@ -8,7 +8,7 @@
* @param arg 传递给测试函数的参数
* @return pid_t 测试内核线程的pid
*/
pid_t ktest_start(uint64_t (*func)(uint64_t arg), uint64_t arg)
pid_t ktest_start(int (*func)(void* arg), void* arg)
{
return kernel_thread(func, arg, 0);
}

View File

@ -1,9 +1,9 @@
#pragma once
#include <common/sys/types.h>
uint64_t ktest_test_bitree(uint64_t arg);
uint64_t ktest_test_kfifo(uint64_t arg);
uint64_t ktest_test_mutex(uint64_t arg);
int ktest_test_bitree(void* arg);
int ktest_test_kfifo(void* arg);
int ktest_test_mutex(void* arg);
/**
* @brief 开启一个新的内核线程以进行测试
@ -12,4 +12,4 @@ uint64_t ktest_test_mutex(uint64_t arg);
* @param arg 传递给测试函数的参数
* @return pid_t 测试内核线程的pid
*/
pid_t ktest_start(uint64_t (*func)(uint64_t arg), uint64_t arg);
pid_t ktest_start(int (*func)(void* arg), void* arg);

View File

@ -119,7 +119,7 @@ static ktest_case_table kt_bitree_func_table[] = {
ktest_bitree_case1,
};
uint64_t ktest_test_bitree(uint64_t arg)
int ktest_test_bitree(void* arg)
{
kTEST("Testing bitree...");
for (int i = 0; i < sizeof(kt_bitree_func_table) / sizeof(ktest_case_table); ++i)

View File

@ -152,7 +152,7 @@ static ktest_case_table kt_kfifo_func_table[] = {
ktest_kfifo_case0_1,
};
uint64_t ktest_test_kfifo(uint64_t arg)
int ktest_test_kfifo(void* arg)
{
kTEST("Testing kfifo...");
for (int i = 0; i < sizeof(kt_kfifo_func_table) / sizeof(ktest_case_table); ++i)

View File

@ -31,7 +31,7 @@ static long ktest_mutex_case0(uint64_t arg0, uint64_t arg1)
* @param arg
* @return long
*/
static unsigned long ktest_mutex_case1_pid1(uint64_t arg)
static int ktest_mutex_case1_pid1(void* arg)
{
kTEST("ktest_mutex_case1_subproc start.");
assert(mutex_is_locked(&mtx) == 1);
@ -78,7 +78,7 @@ static ktest_case_table kt_mutex_func_table[] = {
ktest_mutex_case0,
ktest_mutex_case1,
};
uint64_t ktest_test_mutex(uint64_t arg)
int ktest_test_mutex(void* arg)
{
kTEST("Testing mutex...");
mutex_init(&mtx);