Changeset 6ce3fcc997931e7903408724b4cade3ed09b1e99
- Timestamp:
- 09/30/09 04:32:42 (2 years ago)
- Author:
- H. Peter Anvin <hpa@…>
- Children:
- 0d5291acef3054e516603f58e982b0b570217adf
- Parents:
- 1c8d53bf85b1f570d1dc69b1498b880a3ade836a, 633ce833e5be19ee51400e5e5771ffb880c4291a
- git-committer:
- H. Peter Anvin <hpa@zytor.com> / 2009-09-29T21:32:42Z-0700
- Message:
-
Merge branch 'hdt'
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
rd302e6
|
r8ba991
|
|
| 66 | 66 | bool now; /* 3DNow! */ |
| 67 | 67 | bool smp; /* A smp configuration has been found */ |
| | 68 | bool vmx; /* Hardware virtualization */ |
| | 69 | bool svm; /* Secure virtual machine */ |
| 68 | 70 | } s_cpu_flags; |
| 69 | 71 | |
-
|
r5b5b1b
|
r8ba991
|
|
| 296 | 296 | cpu->flags.now = cpu_has(c, X86_FEATURE_3DNOW); |
| 297 | 297 | cpu->flags.smp = find_smp_config(); |
| | 298 | cpu->flags.vmx = cpu_has(c, X86_FEATURE_VMX); |
| | 299 | cpu->flags.svm = cpu_has(c, X86_FEATURE_SVM); |
| 298 | 300 | } |
| 299 | 301 | |
-
|
rd0a0e5
|
r8ba991
|
|
| 175 | 175 | if (hardware->cpu.flags.now) |
| 176 | 176 | strcat(buffer1, "3dnow! "); |
| | 177 | if (hardware->cpu.flags.svm) |
| | 178 | strcat(buffer1, "svm "); |
| | 179 | if (hardware->cpu.flags.vmx) |
| | 180 | strcat(buffer1, "vmx "); |
| 177 | 181 | if (buffer1[0]) { |
| 178 | 182 | snprintf(buffer, sizeof buffer, "Flags : %s\n", buffer1); |
-
|
r5f036a
|
r8ba991
|
|
| 232 | 232 | if (hardware->cpu.flags.now) |
| 233 | 233 | strcat(buffer1, "3dnow! "); |
| | 234 | if (hardware->cpu.flags.vmx) |
| | 235 | strcat(buffer1, "vmx "); |
| | 236 | if (hardware->cpu.flags.svm) |
| | 237 | strcat(buffer1, "svm "); |
| 234 | 238 | snprintf(buffer, sizeof buffer, "Flags : %s", buffer1); |
| 235 | 239 | snprintf(statbuffer, sizeof statbuffer, "Flags: %s", buffer1); |
-
|
rb71004
|
r8ba991
|
|
| 73 | 73 | #define X86_FEATURE_MWAIT (4*32+ 3) /* Monitor/Mwait support */ |
| 74 | 74 | #define X86_FEATURE_DSCPL (4*32+ 4) /* CPL Qualified Debug Store */ |
| | 75 | #define X86_FEATURE_VMX (4*32+ 5) /* Hardware virtualization */ |
| 75 | 76 | #define X86_FEATURE_EST (4*32+ 7) /* Enhanced SpeedStep */ |
| 76 | 77 | #define X86_FEATURE_TM2 (4*32+ 8) /* Thermal Monitor 2 */ |
| … |
… |
|
| 88 | 89 | #define X86_FEATURE_LAHF_LM (6*32+ 0) /* LAHF/SAHF in long mode */ |
| 89 | 90 | #define X86_FEATURE_CMP_LEGACY (6*32+ 1) /* If yes HyperThreading not valid */ |
| | 91 | #define X86_FEATURE_SVM (6*32+ 2) /* Secure virtual machine */ |
| 90 | 92 | |
| 91 | 93 | #endif /* __ASM_I386_CPUFEATURE_H */ |
-
|
rf4b44a
|
r633ce8
|
|
| 447 | 447 | |
| 448 | 448 | if (!mmap) { |
| 449 | | error("Cannot read system memory map"); |
| | 449 | error("Cannot read system memory map\n"); |
| 450 | 450 | return; |
| 451 | 451 | } |
| … |
… |
|
| 548 | 548 | |
| 549 | 549 | too_big: |
| 550 | | error("Loader file too large"); |
| | 550 | error("Loader file too large\n"); |
| 551 | 551 | return; |
| 552 | 552 | |
| 553 | 553 | enomem: |
| 554 | | error("Out of memory"); |
| | 554 | error("Out of memory\n"); |
| 555 | 555 | return; |
| 556 | 556 | } |
| … |
… |
|
| 615 | 615 | uint32_t segval = strtoul(argv[i] + 4, NULL, 0); |
| 616 | 616 | if (segval < 0x50 || segval > 0x9f000) { |
| 617 | | error("Invalid segment"); |
| | 617 | error("Invalid segment\n"); |
| 618 | 618 | goto bail; |
| 619 | 619 | } |
-
|
r7dc104
|
r8ba991
|
|
| 122 | 122 | if (cpu.flags.now) |
| 123 | 123 | printf("3dnow! "); |
| | 124 | if (cpu.flags.vmx) |
| | 125 | printf("vmx "); |
| | 126 | if (cpu.flags.svm) |
| | 127 | printf("svm "); |
| 124 | 128 | printf("\n"); |
| 125 | 129 | printf("SMP = "); |