问题
现在的系统调用进入时是直接在 handle 函数手动添加系统调用内容,而非可以直接在各模块中注册,不像linux使用 SYSCALL_DEFINE 宏直接注册。
需求
注册机制应引入以下几方面考量:
- 让各系统调用可以在各自模块内部完成注册
- 注册系统调用时声明使用的参数数量,以允许发生系统调用时安全的打印调用的参数(比如 linux 中的
SYSCALL_DEFINE2\3\4\5) - 允许以模块为单位启用/禁用系统调用打印
待补充
现在的系统调用进入时是直接在 handle 函数手动添加系统调用内容,而非可以直接在各模块中注册,不像linux使用 SYSCALL_DEFINE 宏直接注册。
注册机制应引入以下几方面考量:
SYSCALL_DEFINE2\3\4\5)待补充
感觉需要引入像Linux那样的"syscall table"机制,而不是一个大match
我赞同该需求。
@val213 你怎么看
我觉得可行,模块化注册系统调用便于维护,可以提高可拓展性,需要设计一下注册系统调用的统一接口和维护一个syscall table。不过全部重构一遍工程量可能不小
感觉使用类似unified init的那种原理就能实现,主要是写过程宏
这个可以发到issue,我感觉无问题,有必要实现这个。