簡體   English   中英

sysproc.c和sysfile.c如何鏈接到xv6

[英]how sysproc.c and sysfile.c are linked to xv6

我正在嘗試添加一組系統調用以支持xv6中的信號量。 我添加了一個syssemaphore.c文件(該文件將與將使用argptr,argint等從ustack傳遞用戶參數的函數一起存儲),並注意到找不到用於鏈接要編寫的函數的h文件。 基本上,我想添加sysproc.c和sysfile.c之類的文件。 可能嗎?

在XV6中添加新的系統調用,意味着改變整個系統調用機制的流程,從用戶空間調用系統調用中斷,同時在eax寄存器中設置系統調用ID號,通過運行正確的系統調用處理程序的syscall函數,最后到系統調用實現(包括sys_something函數以檢索用戶參數並對其進行驗證)。

如果我正確理解了您的問題,則您是新文件syssemaphore.c,其中包含希望從syscall.c文件中的syscall調用的sys_something函數。

syscall函數是唯一應調用新的sys_something包裝器的函數。 因此,將這些函數原型(作為extern函數)添加到syscall.c文件中syscalls數組上方就足夠了,然后,您就可以將新函數添加到syscalls數組中。

請參閱如何將值傳遞到系統調用XV6中的其他信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM