[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC][PATCH 08/16 v6] target-i386: add API to get dump
From: |
Wen Congyang |
Subject: |
Re: [Qemu-devel] [RFC][PATCH 08/16 v6] target-i386: add API to get dump info |
Date: |
Wed, 15 Feb 2012 11:30:13 +0800 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100413 Fedora/3.0.4-2.fc13 Thunderbird/3.0.4 |
At 02/15/2012 01:39 AM, Jan Kiszka Wrote:
> On 2012-02-09 04:26, Wen Congyang wrote:
>> Dump info contains: endian, class and architecture. The next
>> patch will use these information to create vmcore.
>>
>> Signed-off-by: Wen Congyang <address@hidden>
>> ---
>> cpu-all.h | 3 +++
>> dump.h | 10 ++++++++++
>> target-i386/arch-dump.c | 34 ++++++++++++++++++++++++++++++++++
>> 3 files changed, 47 insertions(+), 0 deletions(-)
>> create mode 100644 dump.h
>>
>> diff --git a/cpu-all.h b/cpu-all.h
>> index 290c43a..268d1f6 100644
>> --- a/cpu-all.h
>> +++ b/cpu-all.h
>> @@ -23,6 +23,7 @@
>> #include "qemu-tls.h"
>> #include "cpu-common.h"
>> #include "memory_mapping.h"
>> +#include "dump.h"
>>
>> /* some important defines:
>> *
>> @@ -531,11 +532,13 @@ int cpu_write_elf64_note(int fd, CPUState *env, int
>> cpuid,
>> int cpu_write_elf32_note(int fd, CPUState *env, int cpuid,
>> target_phys_addr_t *offset);
>> int cpu_add_extra_memory_mapping(MemoryMappingList *list);
>> +int cpu_get_dump_info(ArchDumpInfo *info);
>> #else
>> #define cpu_get_memory_mapping(list, env)
>> #define cpu_write_elf64_note(fd, env, cpuid, offset) ({ -1; })
>> #define cpu_write_elf32_note(fd, env, cpuid, offset) ({ -1; })
>> #define cpu_add_extra_memory_mapping(list) ({ 0; })
>> +#define cpu_get_dump_info(info) ({ -1; })
>
> Please use static inlines where possible (applies to earlier patches as
> well).
OK
>
>> #endif
>>
>> #endif /* CPU_ALL_H */
>> diff --git a/dump.h b/dump.h
>> new file mode 100644
>> index 0000000..a36468b
>> --- /dev/null
>> +++ b/dump.h
>> @@ -0,0 +1,10 @@
>
> License header missing.
There is no license in other header files.
>
>> +#ifndef DUMP_H
>> +#define DUMP_H
>> +
>> +typedef struct ArchDumpInfo {
>> + int d_machine; /* Architecture */
>> + int d_endian; /* ELFDATA2LSB or ELFDATA2MSB */
>> + int d_class; /* ELFCLASS32 or ELFCLASS64 */
>> +} ArchDumpInfo;
>> +
>> +#endif
>> diff --git a/target-i386/arch-dump.c b/target-i386/arch-dump.c
>> index d96f6ae..92a53bc 100644
>> --- a/target-i386/arch-dump.c
>> +++ b/target-i386/arch-dump.c
>> @@ -15,6 +15,7 @@
>>
>> #include "cpu.h"
>> #include "cpu-all.h"
>> +#include "dump.h"
>> #include "monitor.h"
>>
>> /* PAE Paging or IA-32e Paging */
>> @@ -538,3 +539,36 @@ int cpu_add_extra_memory_mapping(MemoryMappingList
>> *list)
>> #endif
>> return 0;
>> }
>> +
>> +int cpu_get_dump_info(ArchDumpInfo *info)
>> +{
>> + bool lma = false;
>> + RAMBlock *block;
>> +
>> +#ifdef TARGET_X86_64
>> + lma = !!(first_cpu->hflags & HF_LMA_MASK);
>> +#endif
>> +
>> + if (lma) {
>> + info->d_machine = EM_X86_64;
>> + } else {
>> + info->d_machine = EM_386;
>> + }
>> + info->d_endian = ELFDATA2LSB;
>> +
>> + if (lma) {
>> + info->d_class = ELFCLASS64;
>> + } else {
>> + info->d_class = ELFCLASS32;
>> + }
>> +
>> + QLIST_FOREACH(block, &ram_list.blocks, next) {
>> + if (!lma && (block->offset + block->length > UINT_MAX)) {
>> + /* The memory size is greater than 4G */
>> + info->d_class = ELFCLASS32;
>
> Is that correct, or did you rather mean ELFCLASS64?
Yes, it should be ELFCLASS64.
Thanks
Wen Congyang
>
>> + break;
>> + }
>> + }
>> +
>> + return 0;
>> +}
>
> Jan
>
- Re: [Qemu-devel] [RFC][PATCH 06/16 v6] target-i386: Add API to write elf notes to core file, (continued)
- [Qemu-devel] [RFC][PATCH 07/16 v6] target-i386: Add API to add extra memory mapping, Wen Congyang, 2012/02/08
- Re: [Qemu-devel] [RFC][PATCH 07/16 v6] target-i386: Add API to add extra memory mapping, Jan Kiszka, 2012/02/14
- Re: [Qemu-devel] [RFC][PATCH 07/16 v6] target-i386: Add API to add extra memory mapping, Wen Congyang, 2012/02/15
- Re: [Qemu-devel] [RFC][PATCH 07/16 v6] target-i386: Add API to add extra memory mapping, Jan Kiszka, 2012/02/15
- Re: [Qemu-devel] [RFC][PATCH 07/16 v6] target-i386: Add API to add extra memory mapping, Wen Congyang, 2012/02/15
- Re: [Qemu-devel] [RFC][PATCH 07/16 v6] target-i386: Add API to add extra memory mapping, Jan Kiszka, 2012/02/15
- Re: [Qemu-devel] [RFC][PATCH 07/16 v6] target-i386: Add API to add extra memory mapping, Wen Congyang, 2012/02/17
[Qemu-devel] [RFC][PATCH 08/16 v6] target-i386: add API to get dump info, Wen Congyang, 2012/02/08
Re: [Qemu-devel] [RFC][PATCH 08/16 v6] target-i386: add API to get dump info, Peter Maydell, 2012/02/15
[Qemu-devel] [RFC][PATCH 09/16 v6] introduce a new monitor command 'dump' to dump guest's memory, Wen Congyang, 2012/02/08