我很難過,試圖讓etherOutputHookAdd()工作。其對應的etherInputHookAdd()似乎工作正常。相關的操作系統版本是VxWorks 5.4。如何使用VxWorks etherOutputHookAdd
鉤代碼看起來像這樣(我打算實際運行的代碼是更復雜,但這種供應的一個例子。)
int anCounter;
STATUS etherHook(struct ifnet *pif, char *buf, int size)
{
anCounter += 1;
return FALSE;
}
我可以掛鉤etherInputHookAdd從VxWorks的殼像這樣
etherInputHookAdd etherHook,"fei",0
這將返回0(STATUS OK),在此之後,'anCounter'變量的檢查將按照預期指示活動。但是,輸出方向沒有這樣的運氣。我已經嘗試了這兩個命令行
etherOutputHookAdd etherHook,"fei",0
etherOutputHookAdd etherHook
這兩個都返回OK,但鉤子程序似乎沒有被調用。我最好的假設是(1)我缺少一個初始化步驟,或者調用它錯誤,(2)etherOutputHookAdd實現只是一個存根,(3)你不能從shell調用它,或者(4)也許我的驅動程序的實施是錯誤的。
解決中心問題的任何想法 - 如何查看我的板上發送了什麼 - 歡迎光臨。