[haiku-commits] haiku: hrev44073 - src/bin

  • From: korli@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 28 Apr 2012 10:02:41 +0200 (CEST)

hrev44073 adds 1 changeset to branch 'master'
old head: 11ff194b97c0772c72d9e4c5c08c8b1390d6e8e6
new head: 1f5facdbe7e25dc9618ec413eda01adf82d763f2

----------------------------------------------------------------------------

1f5facd: sysinfo: switch to c++

                                   [ Jerome Duval <jerome.duval@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev44073
Commit:      1f5facdbe7e25dc9618ec413eda01adf82d763f2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1f5facd
Author:      Jerome Duval <jerome.duval@xxxxxxxxx>
Date:        Sat Apr 28 07:59:52 2012 UTC

----------------------------------------------------------------------------

2 files changed, 30 insertions(+), 49 deletions(-)
src/bin/Jamfile                    |    2 +-
src/bin/{sysinfo.c => sysinfo.cpp} |   77 ++++++++++++--------------------

----------------------------------------------------------------------------

diff --git a/src/bin/Jamfile b/src/bin/Jamfile
index c6b8355..1df5956 100644
--- a/src/bin/Jamfile
+++ b/src/bin/Jamfile
@@ -49,7 +49,7 @@ StdBinCommands
        release.c
        renice.c
        rescan.c
-       sysinfo.c
+       sysinfo.cpp
        unchop.c
        uptime.cpp
        vmstat.cpp
diff --git a/src/bin/sysinfo.c b/src/bin/sysinfo.cpp
similarity index 95%
rename from src/bin/sysinfo.c
rename to src/bin/sysinfo.cpp
index b083c63..52a9f8d 100644
--- a/src/bin/sysinfo.c
+++ b/src/bin/sysinfo.cpp
@@ -143,12 +143,10 @@ struct cache_description {
 static void
 print_intel_cache_descriptors(enum cpu_types type, cpuid_info *info)
 {
-       int i, j, maxDesc;
-
        uint8 cacheDescriptors[15];     // Max
 
-       maxDesc = 0;
-       i = 0;
+       int maxDesc = 0;
+       int i = 0;
 
        // put valid values into array
        if ((info->regs.eax & 0x80000000) == 0) {
@@ -187,11 +185,12 @@ print_intel_cache_descriptors(enum cpu_types type, 
cpuid_info *info)
 
        putchar('\n');
 
-       for (i = 0; i < maxDesc; i++) {
+       for (int i = 0; i < maxDesc; i++) {
                // ignore NULL descriptors
                if (cacheDescriptors[i] == 0)
                        continue;
 
+               int j;
                for (j = 0; sIntelCacheDescriptions[j].code; j++) {
                        if (cacheDescriptors[i] == 
sIntelCacheDescriptions[j].code) {
                                if (cacheDescriptors[i] == 0x40) {
@@ -217,17 +216,16 @@ print_intel_cache_descriptors(enum cpu_types type, 
cpuid_info *info)
 static void
 print_TLB(uint32 reg, const char *pages)
 {
-       int num;
        int entries[2];
        int ways[2];
-       char *name[2] = { "Inst TLB", "Data TLB" };
+       const char *name[2] = { "Inst TLB", "Data TLB" };
 
        entries[0] = (reg & 0xff);
        ways[0] = ((reg >> 8) & 0xff);
        entries[1] = ((reg >> 16) & 0xff);
        ways[1] = ((reg >> 24) & 0xff);
 
-       for (num = 0; num < 2; num++) {
+       for (int num = 0; num < 2; num++) {
                printf("\t%s: %s%s%u entries, ", name[num],
                        pages ? pages : "", pages ? " pages, " : "", 
entries[num]);
 
@@ -301,28 +299,21 @@ static void
 print_intel_cache_desc(int32 cpu)
 {
        cpuid_info info;
-       uint32 type;
-       uint32 level;
-       bool isFullyAssoc;
-       uint32 lineSize;
-       uint32 linesPerTag;
-       uint32 ways;
-       uint32 sets;
-
+       
        // A second parameters needs to be passed to CPUID which determines the 
cache level to query
        get_cpuid(&info, 0x00000004, cpu);
 
        putchar('\n');
 
-       type = info.regs.eax & 0xf;
-       level = (info.regs.eax & 0x70) >> 4;
-       isFullyAssoc = info.regs.eax & 0x100;
+       uint32 type = info.regs.eax & 0xf;
+       uint32 level = (info.regs.eax & 0x70) >> 4;
+       bool isFullyAssoc = info.regs.eax & 0x100;
 
-       lineSize = (info.regs.ebx & 0xfff) + 1;
-       linesPerTag = ((info.regs.ebx & 0x3ff000) >> 12) + 1;
-       ways = ((info.regs.ebx & 0xffc00000) >> 22) + 1;
+       uint32 lineSize = (info.regs.ebx & 0xfff) + 1;
+       uint32 linesPerTag = ((info.regs.ebx & 0x3ff000) >> 12) + 1;
+       uint32 ways = ((info.regs.ebx & 0xffc00000) >> 22) + 1;
 
-       sets = info.regs.ecx;
+       uint32 sets = info.regs.ecx;
 
        printf("\tL%ld ",level);
 
@@ -340,7 +331,7 @@ print_intel_cache_desc(int32 cpu)
        printf("%lu lines/tag, %lu bytes/line\n", linesPerTag, lineSize);
 
        get_cpuid(&info, 0x80000006, cpu);
-       print_level2_cache(info.regs.ecx, "L2 cache");
+       print_level2_cache(sets, "L2 cache");
 }
 
 
@@ -361,11 +352,10 @@ print_amd_power_management_features(uint32 features)
                "TS", "FID", "VID", "TTP", "TM", "STC",
        };
        int32 found = 4;
-       int32 i;
 
        printf("\tPower Management Features:");
 
-       for (i = 0; i < 6; i++) {
+       for (int32 i = 0; i < 6; i++) {
                if ((features & (1UL << i)) && kFeatures[i] != NULL) {
                        printf("%s%s", found == 0 ? "\t\t" : " ", kFeatures[i]);
                        found++;
@@ -391,9 +381,8 @@ print_amd_features(uint32 features)
                NULL, "FFXSTR", NULL, "RDTSCP", NULL, "64", "3DNow+", "3DNow!"
        };
        int32 found = 0;
-       int32 i;
 
-       for (i = 0; i < 32; i++) {
+       for (int32 i = 0; i < 32; i++) {
                if ((features & (1UL << i)) && kFeatures[i] != NULL) {
                        printf("%s%s", found == 0 ? "\t\t" : " ", kFeatures[i]);
                        found++;
@@ -419,9 +408,8 @@ print_extended_features(uint32 features)
                NULL, "AES", "XSAVE", "OSXSAVE", NULL, NULL, NULL, NULL
        };
        int32 found = 0;
-       int32 i;
 
-       for (i = 0; i < 32; i++) {
+       for (int32 i = 0; i < 32; i++) {
                if ((features & (1UL << i)) && kFeatures[i] != NULL) {
                        printf("%s%s", found == 0 ? "\t\t" : " ", kFeatures[i]);
                        found++;
@@ -451,9 +439,8 @@ print_features(uint32 features)
                "HTT", "TM", NULL, "PBE",
        };
        int32 found = 0;
-       int32 i;
 
-       for (i = 0; i < 32; i++) {
+       for (int32 i = 0; i < 32; i++) {
                if ((features & (1UL << i)) && kFeatures[i] != NULL) {
                        printf("%s%s", found == 0 ? "\t\t" : " ", kFeatures[i]);
                        found++;
@@ -476,7 +463,7 @@ print_processor_signature(system_info *sys_info, cpuid_info 
*info, const char *p
 {
 
        if ((sys_info->cpu_type & B_CPU_x86_VENDOR_MASK) == B_CPU_AMD_x86) {
-               printf("\t%s%sype %u, family %u, model %u, stepping %u, 
features 0x%08lx\n",
+               printf("\t%s%sype %lu, family %lu, model %u, stepping %lu, 
features 0x%08lx\n",
                        prefix ? prefix : "", prefix && prefix[0] ? "t" : "T",
                        info->eax_1.type,
                        info->eax_1.family + (info->eax_1.family == 0xf ? 
info->eax_1.extended_family : 0),
@@ -485,7 +472,7 @@ print_processor_signature(system_info *sys_info, cpuid_info 
*info, const char *p
                        info->eax_1.features);
        } else if ((sys_info->cpu_type & B_CPU_x86_VENDOR_MASK) == 
B_CPU_INTEL_x86) {
                // model calculation is different for INTEL
-               printf("\t%s%sype %u, family %u, model %u, stepping %u, 
features 0x%08lx\n",
+               printf("\t%s%sype %lu, family %lu, model %u, stepping %lu, 
features 0x%08lx\n",
                        prefix ? prefix : "", prefix && prefix[0] ? "t" : "T",
                        info->eax_1.type,
                        info->eax_1.family + (info->eax_1.family == 0xf ? 
info->eax_1.extended_family : 0),
@@ -521,34 +508,32 @@ dump_cpu(system_info *info, int32 cpu)
         */
 
        cpuid_info baseInfo;
-       cpuid_info cpuInfo;
-       int32 maxStandardFunction, maxExtendedFunction = 0;
-
        if (get_cpuid(&baseInfo, 0, cpu) != B_OK) {
                // this CPU doesn't support cpuid
                return;
        }
 
-       maxStandardFunction = baseInfo.eax_0.max_eax;
+       int32 maxStandardFunction = baseInfo.eax_0.max_eax;
        if (maxStandardFunction >= 500)
                maxStandardFunction = 0; /* old Pentium sample chips has cpu 
signature here */
 
        /* Extended cpuid */
 
+       cpuid_info cpuInfo;
        get_cpuid(&cpuInfo, 0x80000000, cpu);
 
        // extended cpuid is only supported if max_eax is greater than the 
service id
+       int32 maxExtendedFunction = 0;
        if (cpuInfo.eax_0.max_eax > 0x80000000)
                maxExtendedFunction = cpuInfo.eax_0.max_eax & 0xff;
 
        if (maxExtendedFunction >=4 ) {
                char buffer[49];
                char *name = buffer;
-               int32 i;
 
                memset(buffer, 0, sizeof(buffer));
 
-               for (i = 0; i < 3; i++) {
+               for (int32 i = 0; i < 3; i++) {
                        cpuid_info nameInfo;
                        get_cpuid(&nameInfo, 0x80000002 + i, cpu);
 
@@ -653,7 +638,6 @@ dump_cpus(system_info *info)
        const char *vendor = get_cpu_vendor_string(info->cpu_type);
        const char *model = get_cpu_model_string(info);
        char modelString[32];
-       int32 cpu;
 
        if (model == NULL && vendor == NULL)
                model = "(Unknown)";
@@ -670,7 +654,7 @@ dump_cpus(system_info *info)
                info->id[0], info->id[1]);
 
 #ifdef __INTEL__
-       for (cpu = 0; cpu < info->cpu_count; cpu++)
+       for (int32 cpu = 0; cpu < info->cpu_count; cpu++)
                dump_cpu(info, cpu);
 #endif // __INTEL__
 }
@@ -750,15 +734,12 @@ dump_system_info(system_info *info)
 int
 main(int argc, char *argv[])
 {
-       system_info info;
-       const char *opt;
-       int i;
-
        if (!is_computer_on()) {
                printf("The computer is not on! No info available\n");
                exit(EXIT_FAILURE);
        }
 
+       system_info info;
        if (get_system_info(&info) != B_OK) {
                printf("Error getting system information!\n");
                return 1;
@@ -767,8 +748,8 @@ main(int argc, char *argv[])
        if (argc <= 1) {
                dump_system_info(&info);
        } else {
-               for (i = 1; i < argc; i++) {
-                       opt = argv[i];
+               for (int i = 1; i < argc; i++) {
+                       const char *opt = argv[i];
                        if (strncmp(opt, "-id", strlen(opt)) == 0) {
                                /* note: the original also assumes this option 
on "sysinfo -" */
                                printf("0x%.8lx 0x%.8lx\n", info.id[0], 
info.id[1]);


Other related posts:

  • » [haiku-commits] haiku: hrev44073 - src/bin - korli