X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=ltt%2Fjni_interface.c;h=d1bd993740cbab25be544648a93c73ff31384dae;hb=598951e42e3286e1113c53e55abf7340e08cd0e9;hp=aac5a21045be5a4d98b087082ee988f675a9d706;hpb=7f16dc899ade9895d3820f5c9e3a9593ef5c08f2;p=lttv.git diff --git a/ltt/jni_interface.c b/ltt/jni_interface.c index aac5a210..d1bd9937 100644 --- a/ltt/jni_interface.c +++ b/ltt/jni_interface.c @@ -104,6 +104,26 @@ JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_Jni_1C_1Common_ltt_ (*env)->ReleaseStringUTFChars(env, new_string, c_msg); } + +/* Method to obtain a trace version number from its path */ +JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_factory_JniTraceVersion_ltt_1getTraceVersion(JNIEnv *env, jobject jobj, jstring tracepath) { + + const gchar *c_pathname = (*env)->GetStringUTFChars(env, tracepath, 0); + jint tmpMajorNumber = 0; + jint tmpMinorNumber = 0; + + jclass accessClass = (*env)->GetObjectClass(env, jobj); + jmethodID accessFunction = (*env)->GetMethodID(env, accessClass, "setTraceVersionFromC", "(II)V"); + + struct LttTraceVersion version_number; + + if ( ltt_get_trace_version(c_pathname, &version_number) >= 0) { + tmpMajorNumber = version_number.ltt_major_version; + tmpMinorNumber = version_number.ltt_minor_version; + } + + (*env)->CallVoidMethod(env, jobj, accessFunction, tmpMajorNumber, tmpMinorNumber ); +} /* # #### */ @@ -978,20 +998,6 @@ JNIEXPORT jint JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_ return (jint)newPtr->type; } -/* Get of offset */ -JNIEXPORT jlong JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_1getOffset(JNIEnv *env, jobject jobj, jlong marker_field_ptr) { - struct marker_field *newPtr = (struct marker_field*)CONVERT_JLONG_TO_PTR(marker_field_ptr); - - return CONVERT_UINT64_TO_JLONG(newPtr->offset); -} - -/* Get of size */ -JNIEXPORT jlong JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_1getSize(JNIEnv *env, jobject jobj, jlong marker_field_ptr) { - struct marker_field *newPtr = (struct marker_field*)CONVERT_JLONG_TO_PTR(marker_field_ptr); - - return CONVERT_UINT64_TO_JLONG(newPtr->size); -} - /* Get of alignment */ JNIEXPORT jlong JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_1getAlignment(JNIEnv *env, jobject jobj, jlong marker_field_ptr) { struct marker_field *newPtr = (struct marker_field*)CONVERT_JLONG_TO_PTR(marker_field_ptr); @@ -1026,8 +1032,6 @@ JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_ printf("name : %s\n" ,g_quark_to_string(newPtr->name) ); printf("type : %i\n" ,(int)newPtr->type ); - printf("offset : %lu\n" ,(long unsigned int)newPtr->offset ); - printf("size : %lu\n" ,(long unsigned int)newPtr->size ); printf("alignment : %lu\n" ,(long unsigned int)newPtr->alignment ); printf("attributes : %lu\n" ,(long unsigned int)newPtr->attributes ); printf("static_offset : %i\n" ,(int)newPtr->static_offset ); @@ -1048,6 +1052,7 @@ JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_ JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniParser_ltt_1getParsedData(JNIEnv *env, jclass accessClass, jobject javaObj, jlong event_ptr, jlong marker_field_ptr) { LttEvent newEventPtr = *(LttEvent*)(CONVERT_JLONG_TO_PTR(event_ptr)); struct marker_field *newMarkerFieldPtr = (struct marker_field*)CONVERT_JLONG_TO_PTR(marker_field_ptr); + struct LttField *newLttFieldPtr = ltt_event_field(&newEventPtr, marker_field_get_index(newMarkerFieldPtr)); jmethodID accessFunction = NULL; @@ -1111,7 +1116,7 @@ JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniParser_ltt_1getP accessClass, accessFunction, javaObj, - CONVERT_PTR_TO_JLONG(*(GINT_TYPE_FOR_PTR*)(newEventPtr.data + newMarkerFieldPtr->offset)) + CONVERT_PTR_TO_JLONG(*(GINT_TYPE_FOR_PTR*)(newEventPtr.data + newLttFieldPtr->offset)) ); break;