[英]Linux Kernel system call implementation with struct parameter
我只知道如何將系統調用添加到Linux內核。 我的系統調用(與許多其他系統調用一樣)采用了指向我創建的結構的指針。 如果要將結構添加到內核源代碼中,應如何以及在何處添加它?
將包含新struct
的標頭放在include/uapi/linux
。 通過使用適當的類型(例如__u16
而不是unsigned short
/ uint16_t
, __kernel_time_t
而不是time_t
... etc)來避免名稱空間污染。 查看struct mii_ioctl_data
的示例。
通過將header-y += new_header.h
條目添加到include/uapi/linux/Kbuild
,然后可以使用make headers_install
導出標題。
默認情況下,它將頭文件安裝在./usr
。 如果希望它作為系統頭安裝它們,請改用make headers_install INSTALL_HDR_PATH=/usr
。 這導致uapi
目錄的內容合並到/usr/include
。 然后,您可以在用戶空間程序中#include <linux/new_header.h>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.