DragonOS-Community/DragonOS

feat: 引入系统调用表,以更好管理系统调用

Opened this issue · 0 comments

问题

现在的系统调用进入时是直接在 handle 函数手动添加系统调用内容,而非可以直接在各模块中注册,不像linux使用 SYSCALL_DEFINE 宏直接注册。

需求

注册机制应引入以下几方面考量:

  1. 让各系统调用可以在各自模块内部完成注册
  2. 注册系统调用时声明使用的参数数量,以允许发生系统调用时安全的打印调用的参数(比如 linux 中的 SYSCALL_DEFINE2\3\4\5
  3. 允许以模块为单位启用/禁用系统调用打印

设计

  • 引入像Linux那样的"syscall table"机制
  • 使用类似unified init的过程宏实现