[feat] 引入系统调用注册机制,以更好管理系统调用

问题

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

需求

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

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

待补充

2 个赞

感觉需要引入像Linux那样的"syscall table"机制,而不是一个大match

我赞同该需求。

@val213 你怎么看

我觉得可行,模块化注册系统调用便于维护,可以提高可拓展性,需要设计一下注册系统调用的统一接口和维护一个syscall table。不过全部重构一遍工程量可能不小

感觉使用类似unified init的那种原理就能实现,主要是写过程宏

1 个赞

这个可以发到issue,我感觉无问题,有必要实现这个。