最近在研究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即可.
請問這作法是對的嗎?
感謝
--
如果要實作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