static void show_oem_info(struct oem_info *oem) { println("flags = 0x%02x", oem->flags); println("sn = %s", text_header(oem->sn, MAX_SN_LEN)); println("wifi_mac = %s", text_header(oem->wifi_mac, WIFI_MAC_LEN)); println("bt_mac = %s", get_text_region(oem->bt_mac, 8, BT_MAC_LEN)); }
bool Calculator::execute(const char *formula, const char *formula_end, double &result) { double value; #if CAVAN_MATH_DEBUG println("formula = %s", text_header(formula, formula_end - formula)); #endif mStackOperand.clear(); mStackOperator.clear(); mLastFieldType = FIELD_TYPE_NONE; while (formula < formula_end) { Operator *op = matchOperator(formula); if (op) { Operator *top; if (mStackOperator.top(top)) { if (top->getPriority() <= op->getPriority()) { if (!top->execute(mStackOperand)) { setErrMsg(top->getErrMsg()); return false; } mStackOperator.pop(top); } } if (op->getOmitMul() && mLastFieldType == FIELD_TYPE_VALUE && mStackOperand.hasData()) { Operator *mul = matchOperator("*"); if (mul) { mStackOperator.push(mul); } } switch (op->getType()) { case OPERATOR_TYPE2: case OPERATOR_TYPE1_RIGHT: if (!mStackOperator.push(op)) { setErrMsg("Operator stack overfrow"); return false; } formula += op->getLength(); break; case OPERATOR_TYPE1_LEFT: case OPERATOR_TYPE_CONSTANT: if (!op->execute(mStackOperand)) { setErrMsg(op->getErrMsg()); return false; } formula += op->getLength(); break; case OPERATOR_TYPE_LIST: { Stack<double> stack(200); if (!parseDataList(formula + op->getLength(), formula_end, &formula, stack)) { return false; } if (!op->execute(stack, mStackOperand)) { setErrMsg(op->getErrMsg()); return false; } break; } default: setErrMsg("Invalid operator"); return false; } mLastFieldType = FIELD_TYPE_OPERATOR; } else { switch (*formula) { case ' ': case '\r': case '\n': case '\t': case '\f': formula++; break; case '0' ... '9': value = text2double_unsigned(formula, formula_end, &formula, 10); if (mLastFieldType == FIELD_TYPE_OPERATOR && mStackOperator.count() == 1 && mStackOperand.isEmpty()) { Operator *op; if (mStackOperator.top(op) && strcmp(op->getSymbol(), "-") == 0) { value = -value; mStackOperator.pop(op); } } if (!mStackOperand.push(value)) { setErrMsg("Operand stack overfrow"); return false; } mLastFieldType = FIELD_TYPE_VALUE; break; case '(': case '[': case '{': { const char *p = get_bracket_pair(formula, formula_end); if (p == NULL) { setErrMsg("No matching brackets"); return false; } Calculator calculator; if (!calculator.execute(formula + 1, p, value)) { setErrMsg(calculator.getErrMsg()); return false; } if (!mStackOperand.push(value)) { setErrMsg("Operand stack overfrow"); return false; } formula = p + 1; mLastFieldType = FIELD_TYPE_BRACKET; break; } default: setErrMsg("Invalid symbol"); return false; } } } while (1) { Operator *op; if (!mStackOperator.pop(op)) { break; } if (!op->execute(mStackOperand)) { setErrMsg(op->getErrMsg()); return false; } } if (!mStackOperand.pop(result)) { setErrMsg("Missing operand"); return false; } if (mStackOperand.hasData()) { setErrMsg("Too much operand"); return false; } return true; }
void show_ext2_super_block(const struct ext2_super_block *super_block) { print_sep(60); pr_bold_info("ext2 super block %p", super_block); println("inodes_count = %d", super_block->inodes_count); println("blocks_count = %d", super_block->blocks_count); println("reserved_blocks_count = %d", super_block->reserved_blocks_count); println("free_blocks_count = %d", super_block->free_blocks_count); println("free_inodes_count = %d", super_block->free_inodes_count); println("first_data_block = %d", super_block->first_data_block); println("log_block_size = %d", super_block->log_block_size); println("log_frag_size = %d", super_block->log_frag_size); println("blocks_per_group = %d", super_block->blocks_per_group); println("frags_per_group = %d", super_block->frags_per_group); println("inodes_per_group = %d", super_block->inodes_per_group); println("mtime = %d", super_block->mtime); println("wtime = %d", super_block->wtime); println("mnt_count = %d", super_block->mnt_count); println("max_mnt_count = %d", super_block->max_mnt_count); println("magic_number = 0x%04x", super_block->magic_number); println("state = %d", super_block->state); println("errors = %d", super_block->errors); println("minor_rev_level = %d", super_block->minor_rev_level); println("lastcheck = %d", super_block->lastcheck); println("checkinterval = %d", super_block->checkinterval); println("creator_os = %d", super_block->creator_os); println("rev_level = %d", super_block->rev_level); println("def_resuid = %d", super_block->def_resuid); println("def_resgid = %d", super_block->def_resgid); println("first_inode = %d", super_block->first_inode); println("inode_size = %d", super_block->inode_size); println("block_group_nr = %d", super_block->block_group_nr); println("feature_compat = 0x%08x", super_block->feature_compat); println("feature_incompat = 0x%08x", super_block->feature_incompat); println("feature_ro_compat = 0x%08x", super_block->feature_ro_compat); println("uuid[16] = %s", text_header((char *) super_block->uuid, 16)); println("volume_name[16] = %s", text_header(super_block->volume_name, 16)); println("last_mounted[64] = %s", text_header(super_block->last_mounted, 64)); println("algorithm_usage_bitmap = %d", super_block->algorithm_usage_bitmap); println("prealloc_blocks = %d", super_block->prealloc_blocks); println("prealloc_dir_blocks = %d", super_block->prealloc_dir_blocks); println("reserved_gdt_blocks = %d", super_block->reserved_gdt_blocks); // println("journal_uuid[16] = %d", super_block->journal_uuid[16]); println("journal_inum = %d", super_block->journal_inum); println("journal_dev = %d", super_block->journal_dev); println("last_orphan = %d", super_block->last_orphan); // println("hash_seed[4] = %d", super_block->hash_seed[4]); println("def_hash_version = %d", super_block->def_hash_version); println("jnl_backup_type = %d", super_block->jnl_backup_type); println("desc_size = %d", super_block->desc_size); println("default_mount_opts = %d", super_block->default_mount_opts); println("first_meta_bg = %d", super_block->first_meta_bg); println("mkfs_time = %d", super_block->mkfs_time); // println("jnl_blocks[17] = %d", super_block->jnl_blocks[17]); println("blocks_count_hi = %d", super_block->blocks_count_hi); println("r_blocks_count_hi = %d", super_block->r_blocks_count_hi); println("free_blocks_hi = %d", super_block->free_blocks_hi); println("min_extra_isize = %d", super_block->min_extra_isize); println("want_extra_isize = %d", super_block->want_extra_isize); println("flags = %d", super_block->flags); println("raid_stride = %d", super_block->raid_stride); println("mmp_update_interval = %d", super_block->mmp_update_interval); println("mmp_block = %" PRINT_FORMAT_INT64, super_block->mmp_block); println("raid_stripe_width = %d", super_block->raid_stripe_width); println("log_groups_per_flex = %d", super_block->log_groups_per_flex); println("reserved_char_pad = %d", super_block->reserved_char_pad); println("reserved_pad = %d", super_block->reserved_pad); println("kbytes_written = %" PRINT_FORMAT_INT64, super_block->kbytes_written); println("snapshot_inum = %d", super_block->snapshot_inum); println("snapshot_id = %d", super_block->snapshot_id); println("snapshot_r_blocks_count = %" PRINT_FORMAT_INT64, super_block->snapshot_r_blocks_count); println("snapshot_list = %d", super_block->snapshot_list); println("error_count = %d", super_block->error_count); println("first_error_time = %d", super_block->first_error_time); println("first_error_ino = %d", super_block->first_error_ino); println("first_error_block = %" PRINT_FORMAT_INT64, super_block->first_error_block); // println("first_error_func[32] = %d", super_block->first_error_func[32]); println("first_error_line = %d", super_block->first_error_line); println("last_error_time = %d", super_block->last_error_time); println("last_error_ino = %d", super_block->last_error_ino); println("last_error_line = %d", super_block->last_error_line); println("last_error_block = %" PRINT_FORMAT_INT64, super_block->last_error_block); // println("last_error_func[32] = %d", super_block->last_error_func[32]); // println("mount_opts[64] = %d", super_block->mount_opts[64]); println("usr_quota_inum = %d", super_block->usr_quota_inum); println("grp_quota_inum = %d", super_block->grp_quota_inum); println("overhead_blocks = %d", super_block->overhead_blocks); // println("backup_bgs[2] = %d", super_block->backup_bgs[2]); // println("reserved[106] = %d", super_block->reserved[106]); println("checksum = %d", super_block->checksum); }