Make sure that kernel is interrupt disabled.

This commit is contained in:
TXuian
2024-04-29 10:46:07 +08:00
parent 695dd91201
commit 8d2d7e3e09
7 changed files with 106 additions and 63 deletions

View File

@@ -35,13 +35,13 @@ Modification:
#include "syscall.h"
#include "task.h"
int create_session_inner(struct TaskMicroDescriptor* client, struct TaskMicroDescriptor* server, int capacity, struct Session* user_session)
struct session_backend* create_session_inner(struct TaskMicroDescriptor* client, struct TaskMicroDescriptor* server, int capacity, struct Session* user_session)
{
// create share pages
struct session_backend* session_backend = xizi_share_page_manager.create_share_pages(client, server, capacity);
if (UNLIKELY(session_backend == NULL)) {
DEBUG("create_share_pages failed\n");
return -1;
return NULL;
}
// init user_session
@@ -51,7 +51,7 @@ int create_session_inner(struct TaskMicroDescriptor* client, struct TaskMicroDes
user_session->tail = 0;
user_session->id = session_backend->session_id;
return 0;
return session_backend;
}
int sys_connect_session(char* path, int capacity, struct Session* user_session)
@@ -76,5 +76,8 @@ int sys_connect_session(char* path, int capacity, struct Session* user_session)
struct TaskMicroDescriptor* server = AchieveResource(&server_tag);
assert(server != NULL);
return create_session_inner(client, server, capacity, user_session);
if (create_session_inner(client, server, capacity, user_session) == NULL) {
return -1;
}
return 0;
}