mirror of https://github.com/xqemu/xqemu.git
target-ppc: Define kvmppc_read_int_dt()
Extract code from the function kvmppc_read_int_cpu_dt() that actually reads the file into a separate function, so it can be called from other places. Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
54c6de864f
commit
7d94a30b54
|
@ -1838,13 +1838,8 @@ static int kvmppc_find_cpu_dt(char *buf, int buf_len)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read a CPU node property from the host device tree that's a single
|
static uint64_t kvmppc_read_int_dt(const char *filename)
|
||||||
* integer (32-bit or 64-bit). Returns 0 if anything goes wrong
|
|
||||||
* (can't find or open the property, or doesn't understand the
|
|
||||||
* format) */
|
|
||||||
static uint64_t kvmppc_read_int_cpu_dt(const char *propname)
|
|
||||||
{
|
{
|
||||||
char buf[PATH_MAX], *tmp;
|
|
||||||
union {
|
union {
|
||||||
uint32_t v32;
|
uint32_t v32;
|
||||||
uint64_t v64;
|
uint64_t v64;
|
||||||
|
@ -1852,14 +1847,7 @@ static uint64_t kvmppc_read_int_cpu_dt(const char *propname)
|
||||||
FILE *f;
|
FILE *f;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
if (kvmppc_find_cpu_dt(buf, sizeof(buf))) {
|
f = fopen(filename, "rb");
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
tmp = g_strdup_printf("%s/%s", buf, propname);
|
|
||||||
|
|
||||||
f = fopen(tmp, "rb");
|
|
||||||
g_free(tmp);
|
|
||||||
if (!f) {
|
if (!f) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1877,6 +1865,26 @@ static uint64_t kvmppc_read_int_cpu_dt(const char *propname)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Read a CPU node property from the host device tree that's a single
|
||||||
|
* integer (32-bit or 64-bit). Returns 0 if anything goes wrong
|
||||||
|
* (can't find or open the property, or doesn't understand the
|
||||||
|
* format) */
|
||||||
|
static uint64_t kvmppc_read_int_cpu_dt(const char *propname)
|
||||||
|
{
|
||||||
|
char buf[PATH_MAX], *tmp;
|
||||||
|
uint64_t val;
|
||||||
|
|
||||||
|
if (kvmppc_find_cpu_dt(buf, sizeof(buf))) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp = g_strdup_printf("%s/%s", buf, propname);
|
||||||
|
val = kvmppc_read_int_dt(tmp);
|
||||||
|
g_free(tmp);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
uint64_t kvmppc_get_clockfreq(void)
|
uint64_t kvmppc_get_clockfreq(void)
|
||||||
{
|
{
|
||||||
return kvmppc_read_int_cpu_dt("clock-frequency");
|
return kvmppc_read_int_cpu_dt("clock-frequency");
|
||||||
|
|
Loading…
Reference in New Issue