#include <stdio.h>
#include <string.h>
#include <stdint.h>
-
+#include <errno.h>
/*
***FIXME***
***HACK***
(*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 );
+}
/*
#
#### */
}
const char *c_pathname = (*env)->GetStringUTFChars(env, pathname, 0);
- LttTrace *newPtr = ltt_trace_open( c_pathname );
+ LttTrace *newPtr = ltt_trace_open(c_pathname);
+
+ (*env)->ReleaseStringUTFChars(env, pathname, c_pathname);
+
+ return CONVERT_PTR_TO_JLONG(newPtr);
+}
+
+/* JNI mapping of < LttTrace *ltt_trace_open_live(const gchar *pathname) > (trace.h) */
+JNIEXPORT jlong JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniTrace_ltt_1openTraceLive(JNIEnv *env, jobject jobj, jstring pathname, jboolean show_debug) {
+
+ if ( !show_debug) {
+ /* Make sure we don't use any debug (speed up the read) */
+ g_log_set_handler(NULL, G_LOG_LEVEL_INFO, ignore_and_drop_message, NULL);
+ g_log_set_handler(NULL, G_LOG_LEVEL_DEBUG, ignore_and_drop_message, NULL);
+ }
+
+ const char *c_pathname = (*env)->GetStringUTFChars(env, pathname, 0);
+ LttTrace *newPtr = ltt_trace_open_live(c_pathname);
(*env)->ReleaseStringUTFChars(env, pathname, c_pathname);
return CONVERT_UINT64_TO_JLONG(newPtr->start_monotonic);
}
+/* JNI mapping of < int ltt_trace_update(LttTrace *t) > (trace.h) */
+JNIEXPORT jint JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniTrace_ltt_1updateTrace(JNIEnv *env, jobject jobj, jlong trace_ptr){
+
+ LttTrace *newPtr = (LttTrace*)CONVERT_JLONG_TO_PTR(trace_ptr);
+
+ return (jint)ltt_trace_update(newPtr);
+}
+
/* Access to start_time */
/* Note that we are calling the setTimeFromC function in Jaf_Time from here */
JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniTrace_ltt_1feedStartTime(JNIEnv *env, jobject jobj, jlong trace_ptr, jobject time_jobj) {
ERANGE = 34 out of range, back to last event (might be system dependent?)
EPERM = 1 error while reading (might be system dependent?) */
+ if (tracefilePtr->trace == NULL) {
+ return (jint) EPERM;
+ }
/* Seek to the start time... this will also read the first event, as we want. */
int returnedValue = ltt_tracefile_seek_time(tracefilePtr, ((struct LttTrace)*(tracefilePtr->trace)).start_time_from_tsc);
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);
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 );
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;
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;