forked from xuos/xiuos
Use new sys tracer.
This commit is contained in:
@@ -29,6 +29,7 @@ Modification:
|
||||
*************************************************/
|
||||
#pragma once
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
struct slab_state {
|
||||
|
||||
@@ -40,8 +40,6 @@ bool softkernel_init(struct TraceTag* _hardkernel_tag, struct TraceTag* _softker
|
||||
CreateResourceTag(&server_identifier_owner, _softkernel_tag, "server-identifier", TRACER_OWNER, NULL);
|
||||
|
||||
/* init soft kernel */
|
||||
module_phymem_init(); // init buddy management system
|
||||
|
||||
struct PagerRightGroup pager_rights;
|
||||
AchieveResourceTag(&pager_rights.mmu_driver_tag, _hardkernel_tag, "mmu-ac-resource");
|
||||
module_pager_init(&pager_rights);
|
||||
|
||||
@@ -33,6 +33,7 @@ Modification:
|
||||
#include "multicores.h"
|
||||
|
||||
#include "assert.h"
|
||||
#include "kalloc.h"
|
||||
#include "task.h"
|
||||
|
||||
struct spinlock whole_kernel_lock;
|
||||
@@ -42,13 +43,16 @@ extern int sys_spawn(char* img_start, char* name, char** argv);
|
||||
|
||||
static struct TraceTag hardkernel_tag, softkernel_tag;
|
||||
static volatile int core_init_done = 0;
|
||||
__attribute__((optimize("O0"))) int main(void)
|
||||
int main(void)
|
||||
{
|
||||
/* init tracer */
|
||||
uint32_t cpu_id = cur_cpuid();
|
||||
|
||||
if (cpu_id == 0) {
|
||||
tracer_init(); // init tracer system
|
||||
/* init memory management first */
|
||||
module_phymem_init(); // init buddy management system
|
||||
/* init tracer system */
|
||||
sys_tracer_init();
|
||||
if (!CreateResourceTag(&hardkernel_tag, RequireRootTag(), "hardkernel", TRACER_OWNER, NULL) || //
|
||||
!CreateResourceTag(&softkernel_tag, RequireRootTag(), "softkernel", TRACER_OWNER, NULL)) {
|
||||
ERROR("Failed to create hardkernel owner and softkernel owner.\n");
|
||||
|
||||
@@ -39,14 +39,14 @@ struct KBuddy user_phy_freemem_buddy;
|
||||
extern uint32_t kernel_data_end[];
|
||||
bool module_phymem_init()
|
||||
{
|
||||
LOG_PRINTF("Organizing free memory...\n");
|
||||
// LOG_PRINTF("Organizing free memory...\n");
|
||||
uint32_t kern_freemem_start = V2P(&kernel_data_end);
|
||||
uint32_t kern_freemem_end = PHY_USER_FREEMEM_BASE;
|
||||
uint32_t user_freemem_start = PHY_USER_FREEMEM_BASE;
|
||||
uint32_t user_freemem_end = PHY_MEM_STOP;
|
||||
KBuddySysInit(&kern_virtmem_buddy, kern_freemem_start, kern_freemem_end);
|
||||
KBuddyInit(&user_phy_freemem_buddy, user_freemem_start, user_freemem_end);
|
||||
LOG_PRINTF("Free memory organized done.\n");
|
||||
// LOG_PRINTF("Free memory organized done.\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ int sys_connect_session(char* path, int capacity, struct Session* user_session)
|
||||
if (!AchieveResourceTag(&server_identifier_owner, RequireRootTag(), "softkernel/server-identifier")) {
|
||||
panic("Server identifier not initialized.\b");
|
||||
}
|
||||
assert(server_identifier_owner.meta != NULL || server_identifier_owner.type == TRACER_OWNER);
|
||||
assert(server_identifier_owner.meta != NULL);
|
||||
|
||||
struct TraceTag server_tag;
|
||||
if (!AchieveResourceTag(&server_tag, &server_identifier_owner, path)) {
|
||||
|
||||
@@ -44,7 +44,7 @@ int sys_register_as_server(char* name)
|
||||
if (!AchieveResourceTag(&server_identifier_set_tag, RequireRootTag(), "softkernel/server-identifier")) {
|
||||
panic("Server identifier not initialized.\b");
|
||||
}
|
||||
assert(server_identifier_set_tag.meta != NULL || server_identifier_set_tag.type == TRACER_OWNER);
|
||||
assert(server_identifier_set_tag.meta != NULL);
|
||||
|
||||
if (!CreateResourceTag(&server->server_identifier, &server_identifier_set_tag, name, TRACER_SERVER_IDENTITY_AC_RESOURCE, server)) {
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user