diff options
author | Hongjun Ni <hongjun.ni@intel.com> | 2017-03-16 00:07:36 +0800 |
---|---|---|
committer | Hongjun Ni <hongjun.ni@intel.com> | 2017-03-23 22:45:52 +0800 |
commit | aa609dfe9072323483c8c0a95460b1be4ca05383 (patch) | |
tree | acb406b260e824fcb444be7b82b878820b9d2a38 /nsh-plugin/java/jvpp/jvpp_nsh.c | |
parent | 48473a840103b7f75a0749d371d0493337bd173b (diff) |
Hc2vpp failed to load libjvpp_nsh.so
Modify code to adapt new API registration mechanism
Change-Id: I968199e86278a01ff01267e55468099886689d12
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
Diffstat (limited to 'nsh-plugin/java/jvpp/jvpp_nsh.c')
-rw-r--r-- | nsh-plugin/java/jvpp/jvpp_nsh.c | 50 |
1 files changed, 18 insertions, 32 deletions
diff --git a/nsh-plugin/java/jvpp/jvpp_nsh.c b/nsh-plugin/java/jvpp/jvpp_nsh.c index 9dd5bf7..bea330b 100644 --- a/nsh-plugin/java/jvpp/jvpp_nsh.c +++ b/nsh-plugin/java/jvpp/jvpp_nsh.c @@ -29,11 +29,6 @@ #include <vpp-api/nsh_all_api_h.h> #undef vl_printfun -/* Get the API version number */ -#define vl_api_version(n,v) static u32 api_version=(v); -#include <vpp-api/nsh_all_api_h.h> -#undef vl_api_version - #include <vnet/api_errno.h> #include <vlibapi/api.h> #include <vlibmemory/api.h> @@ -53,38 +48,29 @@ JNIEXPORT void JNICALL Java_io_fd_vpp_jvpp_nsh_JVppNshImpl_init0 (JNIEnv *env, jclass clazz, jobject callback, jlong queue_address, jint my_client_index) { nsh_main_t * plugin_main = &nsh_main; - u8 * name; clib_warning ("Java_io_fd_vpp_jvpp_nsh_JVppNshImpl_init0"); plugin_main->my_client_index = my_client_index; plugin_main->vl_input_queue = (unix_shared_memory_queue_t *)queue_address; - name = format (0, "nsh_%08x%c", api_version, 0); - plugin_main->msg_id_base = vl_client_get_first_plugin_msg_id ((char *) name); - - if (plugin_main->msg_id_base == (u16) ~0) { - jclass exClass = (*env)->FindClass(env, "java/lang/IllegalStateException"); - (*env)->ThrowNew(env, exClass, "nsh plugin is not loaded in VPP"); - } else { - plugin_main->callbackObject = (*env)->NewGlobalRef(env, callback); - plugin_main->callbackClass = (jclass)(*env)->NewGlobalRef(env, (*env)->GetObjectClass(env, callback)); - - // verify API has not changed since jar generation - #define _(N) \ - get_message_id(env, #N); - foreach_supported_api_message; - #undef _ - - #define _(N,n) \ - vl_msg_api_set_handlers(get_message_id(env, #N), #n, \ - vl_api_##n##_t_handler, \ - vl_noop_handler, \ - vl_api_##n##_t_endian, \ - vl_api_##n##_t_print, \ - sizeof(vl_api_##n##_t), 1); - foreach_api_reply_handler; - #undef _ - } + plugin_main->callbackObject = (*env)->NewGlobalRef(env, callback); + plugin_main->callbackClass = (jclass)(*env)->NewGlobalRef(env, (*env)->GetObjectClass(env, callback)); + + // verify API has not changed since jar generation + #define _(N) \ + get_message_id(env, #N); + foreach_supported_api_message; + #undef _ + + #define _(N,n) \ + vl_msg_api_set_handlers(get_message_id(env, #N), #n, \ + vl_api_##n##_t_handler, \ + vl_noop_handler, \ + vl_api_##n##_t_endian, \ + vl_api_##n##_t_print, \ + sizeof(vl_api_##n##_t), 1); + foreach_api_reply_handler; + #undef _ } JNIEXPORT void JNICALL Java_io_fd_vpp_jvpp_nsh_JVppNshImpl_close0 |