内核对象支持权限

This commit is contained in:
zhangzheng
2023-09-09 14:39:48 +08:00
parent 639dea1145
commit 74ae8c7a49
25 changed files with 226 additions and 104 deletions

View File

@@ -66,15 +66,9 @@ static void task_syscall_func(kobject_t *kobj, syscall_prot_t sys_p, msg_tag_t i
break;
case TASK_OBJ_MAP:
{
kobject_t *source_kobj = obj_space_lookup_kobj(&cur_task->obj_space, f->r[1]);
if (!source_kobj)
{
tag = msg_tag_init4(0, 0, 0, -ENOENT);
break;
}
int ret = obj_map(&tag_task->obj_space, f->r[2], source_kobj, tag_task->lim);
int ret = obj_map_src_dst(&tag_task->obj_space, &cur_task->obj_space,
f->r[2], f->r[1],
tag_task->lim, f->r[3]);
tag = msg_tag_init4(0, 0, 0, ret);
}
@@ -91,7 +85,7 @@ static void task_syscall_func(kobject_t *kobj, syscall_prot_t sys_p, msg_tag_t i
break;
}
kobj_del_list_init(&kobj_list);
obj_unmap(&tag_task->obj_space, f->r[1], &kobj_list);
obj_unmap(&tag_task->obj_space, vpage_create_raw(f->r[1]), &kobj_list);
kobj_del_list_to_do(&kobj_list);
spinlock_set(&tag_task->kobj.lock, status);
}