カーネルモジュールを呼び出すCコードがあり、それに構造体を渡したい。これは実行可能のようですex-- charデバイスは複数の(int)ioctl-argumentsをキャッチします
ただし、JavaJNIを介してcコードを呼び出しています。C構造体のマッピングはJavaオブジェクトへのマッピングであると言われていました。したがって、オブジェクトをCネイティブ関数に渡します。
これが私のJNIc関数です
JNIEXPORT jint JNICALL Java_com_context_test_ModCallLib_reNice
(JNIEnv *env, jclass clazz, jobject obj){
// convert objcet to struct
// call module through IOCTL passing struct as the parameter
}
objから構造体を取得するにはどうすればよいですか?
編集:これが私が渡しているオブジェクトです、
class Nice{
int[] pids;
int niceVal;
Nice(List<Integer> pID, int n){
pids = new int[pID.size()];
for (int i=0; i < pids.length; i++)
{
pids[i] = pID.get(i).intValue();
}
niceVal = n;
}
}
私が欲しい構造体はこれです、
struct mesg {
int pids[size_of_pids];
int niceVal;
};
どのようにアプローチすればよいですか?