On 10/11/15 05:22, Sukadev Bhattiprolu wrote: [...] > | > +static int file_read_buf(char *file_name, char *buf, int len) > | > +{ > | > + int rc; > | > + FILE *fp; > | > + > | > + fp = fopen(file_name, "r"); > | > + if (!fp) { > | > + error_report("%s: Error opening %s\n", __func__, file_name); > | > + return -1; > | > + } > | > + > | > + rc = fread(buf, 1, len, fp); > | > + fclose(fp); > | > + > | > + if (rc != len) { > | > + return -1; > | > + } > | > + > | > + return 0; > | > +}
Could you maybe use g_file_get_contents() instead? > | > +/* > | > + * Each core in the system is represented by a directory with the > | > + * prefix 'PowerPC,POWER' in the directory /proc/device-tree/cpus/. > | > + * Process that directory and count the number of cores in the system. > | > | True on IBM POWER systems, but not necessarily everywhere - e.g. PR > | KVM on an embedded PowerPC host. > > What is PR KVM? On PPC, there are multiple kinds of KVM kernel modules, e.g. KVM-HV and KVM-PR (and further implementations for embedded PPCs, too). KVM-HV is using the hypervisor hardware feature of the current POWER7 and POWER8 chips, while KVM-PR is using the PRoblem state to emulate a virtual machine. KVM-PR thus also works on older PPC hardware. So there are multiple PPC environments where QEMU can run on, and you must not assume that you always have nodes like "PowerPC,POWER" in the device tree. (BTW, you can also build kernels without the /proc/device-tree file system as far as I know ... so you never should fully rely on that without a fallback strategy) Thomas