int main(int argc, char** argv) { if (!cpuinfo_initialize()) { fprintf(stderr, "failed to initialize CPU information\n"); exit(EXIT_FAILURE); } #ifdef __ANDROID__ printf("SoC name: %s\n", cpuinfo_get_package(0)->name); #else printf("Packages:\n"); for (uint32_t i = 0; i < cpuinfo_get_packages_count(); i++) { printf("\t%"PRIu32": %s\n", i, cpuinfo_get_package(i)->name); } #endif printf("Cores:\n"); for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) { const struct cpuinfo_core* core = cpuinfo_get_core(i); if (core->processor_count == 1) { printf("\t%"PRIu32": 1 processor (%"PRIu32")", i, core->processor_start); } else { printf("\t%"PRIu32": %"PRIu32" processors (%"PRIu32"-%"PRIu32")", i, core->processor_count, core->processor_start, core->processor_start + core->processor_count - 1); } const char* vendor_string = vendor_to_string(core->vendor); const char* uarch_string = uarch_to_string(core->uarch); if (vendor_string == NULL) { printf(", vendor 0x%08"PRIx32" uarch 0x%08"PRIx32"\n", (uint32_t) core->vendor, (uint32_t) core->uarch); } else if (uarch_string == NULL) { printf(", %s uarch 0x%08"PRIx32"\n", vendor_string, (uint32_t) core->uarch); } else { printf(", %s %s\n", vendor_string, uarch_string); } } printf("Logical processors:\n"); for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) { const struct cpuinfo_processor* processor = cpuinfo_get_processor(i); #if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64 printf("\t%"PRIu32": APIC ID 0x%08"PRIx32"\n", i, processor->apic_id); #else printf("\t%"PRIu32"\n", i); #endif } }
void shell::start() { cout<<"Starting shell : Type help for available commands\n"; char *cmd=new char[128] ; while(1) { //memset(cmd,0,128); cout.SetColour(GREEN,BLACK,0); cout<<"NanOS-#>"; cout.SetColour(WHITE,BLACK,0); cin>>cmd; //cout<<" \nCommand : "<<cmd<<"\n"; if(String::strncmp((const char*)cmd,"about",5)==0) about(); else if(String::strncmp((const char*)cmd,"help",4)==0) help(); else if(String::strncmp((const char*)cmd,"clear",5)==0) cout.clear(); else if(String::strncmp((const char*)cmd,"date",4)==0) get_cmos_date_time(); else if(String::strncmp((const char*)cmd,"hello",5)==0) cout<<"Hi, how do you do???"<<"\n"; else if(String::strncmp((const char*)cmd,"cpuinfo",7)==0) cpuinfo(); else if(String::strncmp((const char*)cmd,"meminfo",7)==0) meminfo(); else if(String::strncmp((const char*)cmd,"pci",3)==0) { pci_bus *sys_pci=pci_bus::Instance(); sys_pci->list_dev(); } else if(String::strncmp((const char*)cmd,"devclass",8)==0) { pci_bus *sys_pci=pci_bus::Instance(); unsigned short x=atoi(cmd+9); pci_dev *device=sys_pci->get_dev_by_class(x); int i=0; while(device) { cout.flags(hex|showbase); cout<<device->bus<<":"<<device->dev<<":"<<device->func<<":"; cout<<vendor_to_string(device->common->vendor_id)<<":"<<vendor_device_to_string(device->common->vendor_id,device->common->device_id)<<":"; cout<<class_to_string(device->common->classcode,device->common->subclass)<<":"; cout<<(int)device->common->classcode<<":"<<(int)device->common->subclass<<":"; cout<<(int)(device->common->Prog_if)<<":"<<(int)device->common->header_type<<"\n"; i++; device=device->next; } cout.flags(dec); cout<<"Total devices="<<i<<"\n"; } else if(String::strncmp((const char*)cmd,"bootdev",7)==0) { extern char *boot_dev; cout<<(char *)boot_dev<<"\n"; } else if(String::strncmp((const char*)cmd,"tasks",5)==0) { all_tasks(); } else if(String::strncmp((const char*)cmd,"ide",3)==0) { display_slot_info(); } else if(String::strncmp((const char*)cmd,"hdinfo",6)==0) { for(int i=0;i<4;i++) //if(disks[i]) { //disks[i]->disk_info(); } } else if(String::strncmp((const char*)cmd,"sysdriveinfo",12)==0) { display_sysdrive_info(); } else if(String::strcmp((const char*)cmd, "")==0); else cout<<"Unknown Command\n For available commands type help\n"; } }