dynamic system call - Linux

Robert avatar
By Robert
at 2009-05-10T23:19

Table of Contents

最近在研究dynamic system call..

如果要實作dynamic system call的話是否要經過以下步驟?

a.在kernel中加入一system call及此system call的pointer.
Ex.
<headers>

long(*my_ptr)(void);
EXPORT_SYMBOL(my_ptr);

asmlinkage long sys_mycall(void)
{........}

b.再寫一個module.使用my_ptr將欲執行的function引入
Ex.
<headers>

extern long(*my_ptr)(void);

long kerker(void)
{.........}

static int kerker_init(void)
{
my_ptr=kerker;
return 0;
}

static void kerker_exit(void)
{my_ptr=NULL;}

module_init(kerker_init);
module_exit(kerker_exit);

c.make完module後用insmod載入

d.接著在test program中使用systemcall kerker.

e.以後要修改kerker就更改module再insmod即可.

請問這作法是對的嗎?

感謝



--
Tags: Linux

All Comments

Lauren avatar
By Lauren
at 2009-05-13T05:26
到 LinuxDev 板應該會比較多人討論 :p

[心得] Samsung ML-1640 選購感想(Linux篇)

Zora avatar
By Zora
at 2009-05-10T21:46
※ [本文轉錄自 Printer_scan 看板] 作者: Cyui (殘念) 看板: Printer_scan 標題: [心得] Samsung ML-1640 選購感想(Linux篇) 時間: Wed Feb 18 18:09:24 2009 買印表機之前在板上拜讀過不少板友的心得文, 所以買了之後也 ...

FC10製作RAID1問題

Ida avatar
By Ida
at 2009-05-10T16:26
自問自答 fedora10在安裝過程可以很方便的製作RAID 但 並沒有把GRUB單獨寫進各顆硬碟的MBR 因此製作完RAID1 直接拔掉一顆硬碟 就開不了機.... (似乎fedora6就有這問題了) (根據查到的資料,若使用LILO開機就不會有問題..不過現在應該都用GRUB) 這時候請執行 #grub ...

vmwave player問題

Frederica avatar
By Frederica
at 2009-05-10T15:05
我想問一下延續我上一個問題 我知道我應該裝i386那個 可是我現在只要一打開vmwave就會出現那些字 我想裝i386那個 我得裝法是 點vm右鍵 選開啟檔案裡的wordpad ide1:0.fileName = and#34;debian-500-i386-netinst.isoand#34; ...

Ubuntu 9.04安裝光碟無反應

Hardy avatar
By Hardy
at 2009-05-10T12:57
我前幾天裝了Ubuntu 9.04,我電腦有兩顆硬碟, 本來打算裝在其中一顆,但是要裝時發現只有開一顆(這時光碟還可以開啟) 但是我重開機把另一顆接上後,再去點安裝光碟,卻沒反應了... 這是怎麼回事? ps:我是在xp下執行的 - ...

在vista系統下灌ubuntu

Linda avatar
By Linda
at 2009-05-10T10:55
我想請問一下 我灌ubuntu(應該是linux 的 os吧?) 可是只是分配一些空間灌在D:\ 這樣我進入UBUNTU之後能算是在使用LINUX的OS了嗎? 我有看精華區用DOS 來類比LINUX 而我在UBUNTU下開終端機使用算是用LINUX的OS嗎? atat 觀念不清楚請各位指導一下 ...