dynamic system call - Linux

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即可.

請問這作法是對的嗎?

感謝



--

All Comments

Lauren avatarLauren2009-05-13
到 LinuxDev 板應該會比較多人討論 :p