int desc_table(Ndb *myndb, char* name) { NdbDictionary::Dictionary * dict= myndb->getDictionary(); NdbDictionary::Table const* pTab; while ((pTab = dict->getTable(name)) == NULL && --_retries >= 0) NdbSleep_SecSleep(1); if (!pTab) return 0; ndbout << "-- " << pTab->getName() << " --" << endl; dict->print(ndbout, *pTab); if (_partinfo) { print_part_info(myndb, pTab); ndbout << endl; if (_blobinfo) { int noOfAttributes = pTab->getNoOfColumns(); for (int i = 0; i < noOfAttributes; i++) { const NdbDictionary::Column* column = pTab->getColumn(i); if ((column->getType() == NdbDictionary::Column::Blob) || (column->getType() == NdbDictionary::Column::Text)) { print_part_info(myndb, (NDBT_Table*) column->getBlobTable()); ndbout << endl; } } } } return 1; }
void print_part_amiga (block_dev_desc_t *dev_desc) { struct rigid_disk_block *rdb; struct bootcode_block *boot; struct partition_block *p; u32 block; int i = 1; rdb = get_rdisk(dev_desc); if (!rdb) { PRINTF("print_part_amiga: no rdb found\n"); return; } PRINTF("print_part_amiga: Scanning partition list\n"); block = rdb->partition_list; PRINTF("print_part_amiga: partition list at 0x%x\n", block); printf("Summary: DiskBlockSize: %d\n" " Cylinders : %d\n" " Sectors/Track: %d\n" " Heads : %d\n\n", rdb->block_bytes, rdb->cylinders, rdb->sectors, rdb->heads); printf(" First Num. \n" "Nr. Part. Name Block Block Type Boot Priority\n"); while (block != 0xFFFFFFFF) { ulong res; PRINTF("Trying to load block #0x%X\n", block); res = dev_desc->block_read(dev_desc->dev, block, 1, (ulong *)block_buffer); if (res == 1) { p = (struct partition_block *)block_buffer; if (p->id == AMIGA_ID_PART) { PRINTF("PART block suspect at 0x%x, checking checksum\n",block); if (sum_block((struct block_header *)p) == 0) { printf("%-4d ", i); i++; print_part_info(p); block = p->next; } } else block = 0xFFFFFFFF; } else block = 0xFFFFFFFF; } boot = get_bootcode(dev_desc); if (boot) { printf("Disk is bootable\n"); } }
int desc_table(Ndb *myndb, char* name) { NdbDictionary::Dictionary * dict= myndb->getDictionary(); NDBT_Table* pTab; while ((pTab = (NDBT_Table*)dict->getTable(name)) == NULL && --_retries >= 0) NdbSleep_SecSleep(1); if (!pTab) return 0; ndbout << (* pTab) << endl; NdbDictionary::Dictionary::List list; if (dict->listIndexes(list, name) != 0){ ndbout << name << ": " << dict->getNdbError() << endl; return NDBT_ProgramExit(NDBT_FAILED); } ndbout << "-- Indexes -- " << endl; ndbout << "PRIMARY KEY("; unsigned j; for (j= 0; (int)j < pTab->getNoOfPrimaryKeys(); j++) { const NdbDictionary::Column * col= pTab->getColumn(pTab->getPrimaryKey(j)); ndbout << col->getName(); if ((int)j < pTab->getNoOfPrimaryKeys()-1) ndbout << ", "; } ndbout << ") - UniqueHashIndex" << endl; for (j= 0; j < list.count; j++) { NdbDictionary::Dictionary::List::Element& elt = list.elements[j]; const NdbDictionary::Index *pIdx = dict->getIndex(elt.name, name); if (!pIdx){ ndbout << name << ": " << dict->getNdbError() << endl; return NDBT_ProgramExit(NDBT_FAILED); } ndbout << (*pIdx) << endl; } ndbout << endl; if (_partinfo) print_part_info(myndb, pTab); return 1; }