forked from xuos/xiuos
68 lines
2.4 KiB
C
68 lines
2.4 KiB
C
/*
|
|
* Copyright (c) 2020 AIIT XUOS Lab
|
|
* XiUOS is licensed under Mulan PSL v2.
|
|
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
* You may obtain a copy of Mulan PSL v2 at:
|
|
* http://license.coscl.org.cn/MulanPSL2
|
|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
* See the Mulan PSL v2 for more details.
|
|
*/
|
|
/**
|
|
* @file softkernel_init.c
|
|
* @brief init softkernel
|
|
* @version 3.0
|
|
* @author AIIT XUOS Lab
|
|
* @date 2023.08.25
|
|
*/
|
|
|
|
/*************************************************
|
|
File name: softkernel_init.c
|
|
Description: init softkernel
|
|
Others:
|
|
History:
|
|
1. Date: 2023-08-28
|
|
Author: AIIT XUOS Lab
|
|
Modification:
|
|
1. first version
|
|
*************************************************/
|
|
#include "kern_init.h"
|
|
|
|
#include "assert.h"
|
|
#include "log.h"
|
|
#include "task.h"
|
|
|
|
bool softkernel_init(struct TraceTag* _hardkernel_tag, struct TraceTag* _softkernel_tag)
|
|
{
|
|
struct TraceTag server_identifier_owner;
|
|
CreateResourceTag(&server_identifier_owner, _softkernel_tag, "server-identifier", TRACER_OWNER, NULL);
|
|
|
|
/* init soft kernel */
|
|
struct PagerRightGroup pager_rights;
|
|
AchieveResourceTag(&pager_rights.mmu_driver_tag, _hardkernel_tag, "mmu-ac-resource");
|
|
module_pager_init(&pager_rights);
|
|
|
|
struct TraceTag mmu_driver_tag, intr_driver_tag;
|
|
AchieveResourceTag(&mmu_driver_tag, _hardkernel_tag, "mmu-ac-resource");
|
|
AchieveResourceTag(&intr_driver_tag, _hardkernel_tag, "intr-ac-resource");
|
|
load_kern_pgdir(&mmu_driver_tag, &intr_driver_tag); // enter kernel virtmem space
|
|
|
|
module_task_manager_init(); // init task
|
|
|
|
struct SharePageRightGroup sp_rights;
|
|
AchieveResourceTag(&sp_rights.dcache_driver_tag, _hardkernel_tag, "dcache-ac-resource");
|
|
AchieveResourceTag(&sp_rights.mmu_driver_tag, _hardkernel_tag, "mmu-ac-resource");
|
|
module_share_page_init(&sp_rights);
|
|
|
|
return true;
|
|
}
|
|
|
|
void show_xizi_bar(void)
|
|
{
|
|
LOG_PRINTF("__ _____ ________ __ __ ___ ____ ____ ___\n");
|
|
LOG_PRINTF("\\ \\/ /_ _|__ /_ _| | \\/ |_ _/ ___| _ \\ / _ \\\n");
|
|
LOG_PRINTF(" \\ / | | / / | | | |\\/| || | | | |_) | | | |\n");
|
|
LOG_PRINTF(" / \\ | | / /_ | | | | | || | |___| _ <| |_| |\n");
|
|
LOG_PRINTF("/_/\\_\\___/____|___| |_| |_|___\\____|_| \\_\\\\___/ \n");
|
|
} |