Commit 7d7de521 authored by A. Samy's avatar A. Samy Committed by Rusty Russell

cpuid: cpuid_write_info(): have outfile a file pointer instead

parent 2ecac63d
...@@ -368,32 +368,12 @@ void cpuid(cpuid_t request, uint32_t *buf) ...@@ -368,32 +368,12 @@ void cpuid(cpuid_t request, uint32_t *buf)
} }
} }
bool cpuid_write_info(uint32_t info, uint32_t featureset, const char *outfile) bool cpuid_write_info(uint32_t info, uint32_t featureset, FILE *file)
{ {
FILE *file;
char filename[256];
char cpu_information[64];
if (!cpuid_sprintf_cputype(cpuid_get_cpu_type(), cpu_information))
return false;
char brand[48]; char brand[48];
cpuid(CPUID_PROC_BRAND_STRING, (uint32_t *)brand); cpuid(CPUID_PROC_BRAND_STRING, (uint32_t *)brand);
cpu_information[12] = '_'; fprintf(file, "-- CPU Information for: %s_%s --\n\n", cpuid_get_name(), brand);
memcpy(&cpu_information[13], brand, sizeof brand);
if (!outfile)
strncpy(filename, cpu_information, sizeof cpu_information);
else
strncpy(filename, outfile, sizeof filename);
file = fopen(filename, "w");
if (!file)
return false;
fprintf(file, "-- CPU Information for CPU: %s --\n\n", cpu_information);
if (info & CPUID_HIGHEST_EXTENDED_FUNCTION_SUPPORTED) if (info & CPUID_HIGHEST_EXTENDED_FUNCTION_SUPPORTED)
fprintf(file, "Highest extended function supported: %#010x\n\n", cpuid_highest_ext_func_supported()); fprintf(file, "Highest extended function supported: %#010x\n\n", cpuid_highest_ext_func_supported());
...@@ -675,7 +655,6 @@ bool cpuid_write_info(uint32_t info, uint32_t featureset, const char *outfile) ...@@ -675,7 +655,6 @@ bool cpuid_write_info(uint32_t info, uint32_t featureset, const char *outfile)
} }
#undef YON #undef YON
fclose(file);
return true; return true;
} }
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
/** /**
* enum cpuid - stuff to get information about from the CPU. * enum cpuid - stuff to get information about from the CPU.
...@@ -371,20 +372,17 @@ void cpuid(cpuid_t request, uint32_t *buf); ...@@ -371,20 +372,17 @@ void cpuid(cpuid_t request, uint32_t *buf);
* cpuid_write_info - Write specified CPU information to a file. * cpuid_write_info - Write specified CPU information to a file.
* @info: Bit set of information to write. * @info: Bit set of information to write.
* @featureset: Bit set of features to write. * @featureset: Bit set of features to write.
* @outfile: Output filename (Max 256). * @outfile: Output file pointer
*
* If @outfile is NULL, a name is choosen in the following format:
* CPUVENDOR_PROCESSORBRAND.cpuid
* *
* Returns true on success, false otherwise. * Returns true on success, false otherwise.
* *
* Example usage: * Example usage:
* if (!cpuid_write_info(CPUID_VENDORID | CPUID_PROC_BRAND_STRING, * if (!cpuid_write_info(CPUID_VENDORID | CPUID_PROC_BRAND_STRING,
* CPUID_FEAT_ECX_SSE3 | CPUID_FEAT_EDX_FPU, * CPUID_FEAT_ECX_SSE3 | CPUID_FEAT_EDX_FPU,
* "cpuinfo.cpuid")) * fp))
* ... error ... * ... error ...
*/ */
bool cpuid_write_info(uint32_t info, uint32_t featureset, const char *outfile); bool cpuid_write_info(uint32_t info, uint32_t featureset, FILE *outfile);
/** /**
* cpuid_test_feature - Test if @feature is available * cpuid_test_feature - Test if @feature is available
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment