void HelperClass_set_GenMode(Boolean status) { if(!java_helper_inlined) return; unsigned int nfields = class_number_fields(GCHelper_clss); unsigned int i; for(i=0; i<nfields; i++){ Field_Handle field = class_get_field(GCHelper_clss, i); if(!strcmp(field_get_name(field), "GEN_MODE")){ jboolean* p_gen_mode = (jboolean*)field_get_address(field); *p_gen_mode = (jboolean)status; break; } } assert(i<nfields); /* hythread_suspend_enable(); //"org.apache.harmony.drlvm.gc_gen.GCHelper" jclass GCHelper = jni_env->FindClass("GCHelper"); jfieldID gen_mode_field = jni_env->GetStaticFieldID(GCHelper, "GEN_MODE", "Z"); assert(gen_mode_field); jni_env->SetStaticBooleanField(GCHelper, gen_mode_field, status?JNI_TRUE:JNI_FALSE); hythread_suspend_disable(); */ return; }
//============================================ // 体の各設定値の表示 //============================================ void test_feature(Field f) { fprintf(stdout, "---\n"); fprintf(stdout, "FieldType: %s\n", field_get_name(f)); gmp_fprintf(stdout, " characteristic: %Zx\n", *field_get_char(f)); gmp_fprintf(stdout, " order of field: %Zx^%d\n", *field_get_char(f), field_get_degree(f)); fprintf(stdout, "---\n"); }
void print_rec(const uint8_t *data) { size_t off = 0; static bool first_rec = true; static size_t col_width[LNF_FLD_TERM_]; if (output_params.print_records != OUTPUT_ITEM_YES) { return; } if (first_rec) { first_item = first_item ? false : (putchar('\n'), false); for (size_t i = 0; i < fields_cnt; ++i) { const char *header_str = field_get_name(fields[i].id); const size_t header_str_len = strlen(header_str); const size_t field_str_len = strlen(field_to_str( fields[i].id, data + off)); col_width[i] = header_str_len > field_str_len ? header_str_len : field_str_len; col_width[i] += COL_WIDTH_RESERVE; off += fields[i].size; print_field(header_str, col_width[i], PRETTY_PRINT_COL_WIDTH - COL_WIDTH_RESERVE, i == (fields_cnt - 1)); } off = 0; first_rec = false; } /* Loop through the fields in one record. */ for (size_t i = 0; i < fields_cnt; ++i) { print_field(field_to_str(fields[i].id, data + off), col_width[i], PRETTY_PRINT_COL_WIDTH - COL_WIDTH_RESERVE, i == (fields_cnt - 1)); off += fields[i].size; } }
void HelperClass_set_NosBoundary(void* boundary) { if(!java_helper_inlined) return; unsigned int nfields = class_number_fields(GCHelper_clss); unsigned int i; for(i=0; i<nfields; i++){ Field_Handle field = class_get_field(GCHelper_clss, i); if(!strcmp(field_get_name(field), "NOS_BOUNDARY")){ //jint* p_nos_boundary = (jint*)field_get_address(field); //*p_nos_boundary = (jint)boundary; jobject* p_nos_boundary = (jobject*)field_get_address(field); *p_nos_boundary = (jobject)boundary; break; } } assert(i<nfields); return; }
error_code_t print_mem(lnf_mem_t *mem, size_t limit) { lnf_rec_t *rec; //record = line size_t rec_cntr = 0; //aka lines counter lnf_mem_cursor_t *cursor; //current record (line) cursor size_t fld_max_size = 0; //maximum data size length in bytes size_t data_max_strlen[LNF_FLD_TERM_] = {0}; //maximum data string len if (output_params.print_records != OUTPUT_ITEM_YES) { return E_OK; } first_item = first_item ? false : (putchar('\n'), false); secondary_errno = lnf_rec_init(&rec); if (secondary_errno != LNF_OK) { print_err(E_LNF, secondary_errno, "lnf_rec_init()"); return E_LNF; } /* * Find out maximum data type size of present fields, length of headers * and last present field ID. */ for (size_t i = 0; i < fields_cnt; ++i) { size_t header_str_len = strlen(field_get_name(fields[i].id)); MAX_ASSIGN(fld_max_size, fields[i].size); MAX_ASSIGN(data_max_strlen[fields[i].id], header_str_len); } /* Find out max data length, converted to string. */ lnf_mem_first_c(mem, &cursor); while (cursor != NULL) { //row loop char buff[fld_max_size]; lnf_mem_read_c(mem, cursor, rec); for (size_t i = 0; i < fields_cnt; ++i) { //column loop size_t data_str_len; //XXX: lnf_rec_fget() may return LNF_ERR_UNKFLD even if //field is present (e.g. if duration is zero). lnf_rec_fget(rec, fields[i].id, buff); data_str_len = strlen(field_to_str(fields[i].id, buff)); MAX_ASSIGN(data_max_strlen[fields[i].id], data_str_len); } if (++rec_cntr == limit) { break; } lnf_mem_next_c(mem, &cursor); } rec_cntr = 0; /* Actual printing: header. */ for (size_t i = 0; i < fields_cnt; ++i) { //column loop print_field(field_get_name(fields[i].id), data_max_strlen[fields[i].id], PRETTY_PRINT_COL_WIDTH, i == (fields_cnt - 1)); } /* Actual printing: field data converted to string. */ lnf_mem_first_c(mem, &cursor); while (cursor != NULL) { //row loop char buff[fld_max_size]; lnf_mem_read_c(mem, cursor, rec); for (size_t i = 0; i < fields_cnt; ++i) { //column loop //XXX: see above lnf_rec_fget() lnf_rec_fget(rec, fields[i].id, buff); print_field(field_to_str(fields[i].id, buff), data_max_strlen[fields[i].id], PRETTY_PRINT_COL_WIDTH, i == (fields_cnt - 1)); } if (++rec_cntr == limit) { break; } lnf_mem_next_c(mem, &cursor); } lnf_rec_free(rec); return E_OK; }