我已經爲ARM體系結構實現了自定義系統調用sys_mycall
。在電話上建立並下載後,日誌顯示sys_mycall
正在運行。如何在Linux中調用C中的自定義系統調用
我的疑問是:
- 我如何調用從C文件這個系統調用。
- 可以以某種方式從java調用此係統調用(使用JNI或其他)。只需要提示一下如何在Android上實現這一點。
我已經爲ARM體系結構實現了自定義系統調用sys_mycall
。在電話上建立並下載後,日誌顯示sys_mycall
正在運行。如何在Linux中調用C中的自定義系統調用
我的疑問是:
1)看看man 2 syscall
對於int syscall(int number, ...)
,你應該可以調用你的系統調用並傳遞你需要的參數。
2)是的,使用JNI。創建一個JNI函數來調用你的C代碼,並從那裏進行系統調用。
這可以使用Android NDK
here做的是從Android應用程序調用C代碼的例子。
你確定你需要你自己的系統調用嗎?通常這是一個壞主意!你不能只是做一個設備驅動程序..? –
其實我想了解整個應用程序流程是如何工作的。從底層(Linux內核)到頂層(應用層)。 – Aakashdeep
閱讀http://tldp.org/HOWTO/Assembly-HOWTO/它是x86特有的,但你可以並且應該將它轉換爲ARM –