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");
 | 
						|
} |