JNIEXPORT jint JNICALL JavaEnclave_TeeLibOSNativeDestroyEnclave()

in sdk/host/src/main/native/cpp/platform/libos_occlum_enclave/jni/jni_occlum_enclave.c [207:223]


JNIEXPORT jint JNICALL JavaEnclave_TeeLibOSNativeDestroyEnclave(JNIEnv *env, jobject obj, jlong handler) {
    // lookup symbol occlum_pal_destroy in libocclum-pal.so
    int (*occlum_pal_destroy)(void);
    occlum_pal_destroy = (int (*)(void))dlsym((void *)handler, "occlum_pal_destroy");

    if (!occlum_pal_destroy) {
        THROW_EXCEPTION(env, ENCLAVE_DESTROYING_EXCEPTION, "destroy tee lib os enclave: dlsym symbol occlum_pal_destroy failed.")
    }

    if (occlum_pal_destroy() != 0x0) {
        THROW_EXCEPTION(env, ENCLAVE_DESTROYING_EXCEPTION, "destroy tee lib os enclave: occlum_pal_destroy failed.")
    }

    if (dlclose((void *)handler) != 0x0) {
        THROW_EXCEPTION(env, ENCLAVE_DESTROYING_EXCEPTION, "destroy tee lib os enclave: close occlum_pal_path.so failed.")
    }
}