From: Andreas H. <AHE...@de...> - 2002-05-22 18:10:40
|
Some thoughts about the dump file format. 1) In order to make dump file format arch independend, we should pack all needed structures (dump_header_t, dump_header_asm_t, dump_page_t). 2) Furthermore arch independend types sould be used in those structures. E.g. here is the dump-header as I have defined it in cross system lcrash: typedef struct kl_dump_header_s { uint64_t magic_number; /* dump magic number, unique to verify dump */ uint32_t version; /* version number of this dump */ uint32_t header_size; /* size of this header */ uint32_t dump_level; /* level of this dump */ uint32_t page_size; /* page size (e.g. 4K, 8K, 16K, etc.) */ uint64_t memory_size; /* size of entire physical memory */ uint64_t memory_start; /* start of physical memory */ uint64_t memory_end; /* end of physical memory */ uint32_t num_pages; /* number of pages in this dump */ char panic_string[KL_DUMP_PANIC_LEN]; /* panic string, if available*/ struct {uint64_t tv_sec; uint64_t tv_usec; } time; /* the time of the system crash */ /* the NEW utsname (uname) information -- in character form */ /* we do this so we don't have to include utsname.h */ /* plus it helps us be more architecture independent */ char utsname_sysname[KL_UTS_LEN]; char utsname_nodename[KL_UTS_LEN]; char utsname_release[KL_UTS_LEN]; char utsname_version[KL_UTS_LEN]; char utsname_machine[KL_UTS_LEN]; char utsname_domainname[KL_UTS_LEN]; uint64_t current_task; /* fixme: better use uint64_t here */ uint32_t dump_compress; /* compression type used in this dump */ uint32_t dump_flags; /* any additional flags */ uint32_t dump_device; /* any additional flags */ } __attribute__((packed)) kl_dump_header_t; I even defined my own struct time. Of course before using tv_sec or tv_usec those values might have to be casted or filled into another struct. 3) I discussed with Michael Holzheu, what endianess the common structures of a dump should have. Finally we mean that the endianess of the dump_header_t and dump_page_t should be the same as in the dump. Having different endianess for the dump file format (dump_header_t, dump_page_t) and the file contents (the dumped memory) whould make things worse for cross system lcrash. What do you think about this issues? Regards, Andreas -- Linux for eServer Development Tel : +49-7031-16-4640 Notes mail : Andreas Herrmann/GERMANY/IBM@IBMDE email : ahe...@de... |