gpt4 book ai didi

c - sysproc.c 和 sysfile.c 如何链接到 xv6

转载 作者:行者123 更新时间:2023-11-30 16:36:57 28 4
gpt4 key购买 nike

我正在尝试添加一组系统调用来支持 xv6 中的信号量。我添加了一个 syssemaphore.c 文件(它将存储一些函数,这些函数将使用 argptr、argint 等从 ustack 路径用户参数。)并注意到我找不到链接我将编写的函数的 h 文件。基本上我想添加 sysproc.c 和 sysfile.c 等文件。这可能吗?

最佳答案

向 XV6 添加新的系统调用意味着改变整个系统调用机制流程,从用户空间调用系统调用中断,同时在 eax 寄存器中设置系统调用 ID 号,通过运行正确的系统调用处理程序的 syscall 函数,最后到系统调用实现(其中包括一个 sys_something 函数来检索用户参数并验证它们)。

如果我正确理解您的问题,您的新文件 syssemaphore.c 包含您希望从 syscall.c 文件中的 syscall 调用的 sys_something 函数。

系统调用函数是唯一应该调用新的 sys_something 包装器的函数。因此,将这些函数原型(prototype)(作为 extern 函数)添加到 syscall.c 文件中的 syscalls 数组上方就足够了,这样您就可以将新函数添加到 syscalls 数组中。

查看更多信息:How to pass a value into system call XV6

关于c - sysproc.c 和 sysfile.c 如何链接到 xv6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48227725/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com