[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [RFC PATCH v1 1/2] utils: Add helper to read arm MIDR_EL1
From: |
Peter Maydell |
Subject: |
Re: [Qemu-arm] [RFC PATCH v1 1/2] utils: Add helper to read arm MIDR_EL1 register |
Date: |
Tue, 2 Aug 2016 12:10:51 +0100 |
On 2 August 2016 at 11:20, <address@hidden> wrote:
> +long int qemu_read_cpuid_info(void)
Don't use "long" here, it might be 32 or 64 bits.
The kernel ABI for the /sys/ file we're reading says it
is a 64-bit value, so uint64_t is what you want.
> +{
> + FILE *fp;
> + char *buf;
> + long int midr = 0;
> +#define BUF_SIZE 32
> +
> + fp = fopen("/sys/devices/system/cpu/cpu0/regs/identification/midr_el1",
> + "r");
> + if (!fp) {
> + return 0;
> + }
> +
> + buf = g_malloc0(BUF_SIZE);
> + if (!buf) {
> + fclose(fp);
> + return 0;
> + }
> +
> + if (buf != fgets(buf, BUF_SIZE - 1, fp)) {
> + goto out;
> + }
g_file_get_contents() is probably easier than manually
opening the file and reading it into an allocated buffer.
> +
> + if (qemu_strtol(buf, NULL, 0, &midr) < 0) {
qemu_strtoull().
> + goto out;
> + }
> +
> +out:
> + g_free(buf);
> + fclose(fp);
> +
> + return midr;
> +}
> +#endif
> --
> 1.7.9.5
>
thanks
-- PMM