カスタムシステムコールは、です。あなたはあなたがそれを使うことはできないと言ったが、ちょうど握っていることを知っている。
システムコールを追加する方法は2つあります。前にすでに使用したように見える最初のものは、VxWorksソースビルドの一部として静的に追加することです。これらはあなたのRTPに、例えば、あなたがユーザー・ライブラリーの他の部分とまったく同じように機能にアクセスできるようにする:
#include <customSysCallHeader.h>
void foo()
{
customSysCall();
}
あなたはしかし、これはソースビルドに修正が必要です言うように。言いましたが、これは以前よりVxWorks 7の問題ではありません。
ソースビルドに追加したくない場合に便利な2番目のオプションは、動的システムコールを使用することです。これらは実行時にカーネルコードによって動的に登録されます。彼らはすべての動的システムコールはsyscall()
経由で呼び出されなければならないとして、しかし、アプリケーションから使用するように簡単ではありません。
#include <syscall.h> //This may not be correct
void foo()
{
syscall(CUSTOM_SYSCALL_NUM,1,2,3,4,5,6);
}
私はそれが役に立つこれらの動的システムの別のライブラリのコール、およびラップにコールを発信することが分かってきました便利な関数名で
出典
2017-08-24 11:42:40
mjs
ありがとうございました!私はそれを動的なカスタムシステムコールを使って実装しました。それは今すべてうまく動作しています:) – Sukum
@Sukum素晴らしい。この回答が有用であると判明した場合は、アップアップして回答を受け入れるか検討してください – mjs