//整体除法接口 UINT32 galois_single_divide(UINT32 x,UINT32 y,UINT32 w)//整体除法接口 { UINT32 sindex,res; if(x==0) return 0; if(y==0) return FALSE; sindex=mult_type[w]; switch(sindex) { case TABLE: //检测divable的情况 if(galois_div_tables[w]==NULL)//如果不存在 { res=galois_multtable_create(w); if(res==FALSE)//生成失败 { show_error("galois","divide","tablecreatefail"); return FALSE; } } return galois_multtable_divide(x,y,w); break; case LOGS: if(galois_log_tables[w]==NULL) { res=galois_logtable_create(w); if(res==FALSE) { show_error("galois","logtables","toobig"); return FALSE; } } return galois_log_divide(x,y,w); break; case SHIFT: return galois_shift_divide(x,y,w); break; case SPLITW8: return galois_split_w8_divide(x,y); break; } }
/* * Class: eu_vandertil_jerasure_jni_Galois * Method: galois_multtable_divide * Signature: (III)I */ JNIEXPORT jint JNICALL Java_eu_vandertil_jerasure_jni_Galois_galois_1multtable_1divide (JNIEnv *env, jclass clazz, jint x, jint y, jint w) { return galois_multtable_divide(x, y, w); }