2012-01-16 13 views
3

宿題の割り当てで、Linuxカーネル(Red Hat 2.4.18)にシステムコールを追加するよう求められました。代入によると、新しいシステムコールの戻り値は無効になります。システムコール自体は非常にシンプルで(1つの割り当てのみ)、エラーの可能性はありません。 私が読み、学んだことから、システムコールは通常、失敗を示す負の値、成功を示す0を返します。私の質問は、それが単なる普通の練習であるか、それとも必須であるかです。システムコールがvoidを返すことはできますか?Linuxシステムコールの戻り値

+1

一般的には、失敗の可能性がある機能から何も返さないと考えられています... – mtahmed

+0

Leonidのクラスですか? – cha0site

答えて

4

Linuxでは、すべてのシステムコールはまったく戻ってもlongを返します。あなたが使用してシステムコールを宣言言う:

SYSCALL_DEFINE0(mycall) 
{ 
    /* ... */ 
} 

これは、その結果:あなたが失敗することはできません任意の有用なリターンや電話を持っていない場合

asmlinkage long sys_mycall(void) 

、単に0の成功を知らせるためにあらゆる時間を返します。