我有调用内核模块的 C 代码,我想将结构传递给它。这似乎是可行的前 字符设备捕获多个(int)ioctl-arguments
但是我正在通过 java JNI 调用 c 代码。据说 C 结构映射是到 Java 对象。所以我将一个对象传递给 C 本机函数。
这是我的 JNI c 函数
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;
};
我应该如何接近?