Initial revision

makedumpfile version 1.0.2

Fix the range of pfn on 64bit system.
This patch fixes the essential problem that the range of pfn is 32bit on
64bit system(ia64, x86_64). This problem was reported by Tokunaga-san.

Fix the calculation of the progress counter for the system with huge memhole.
This patch change the calculation of the progress counter.
Before:
 The progress counter was calculated by (current pfn) / max_mapnr.
 If the system has a huge memory hole, the progress counter is not increased
 smoothly.
After:
 The progress counter is calculated by (writed pfn) / (pfn to write).
 Even if the system has a huge memory hole, the progress counter is increased
 smoothly.

Fix open()/close() of the kernel-file like to other file-handling functions.

Add the error-handling methods to lseek()/fseek().

Cleanup the indents, the comments and the error message.
Fix the types of the variables.

makedumpfile version 1.0.3

Fix the page-flags.
This patch fixes the values of page-flags to solve the problem
that makedumpfile cannot distinguish the cache page correctly.
To distinguish the cache page, makedumpfile uses the values of PG_lru,
PG_swapcache, and PG_private. And there were the mistakes of these
values in the existing makedumpfile. This problem was reported by
Akiyama-san.
                 | PG_lru | PG_private | PG_swapcache
-----------------+--------+------------+--------------
 old makedumpfile|   5    |     12     |      16
 2.6.15          |   5    |     11     |      15
 2.6.16.27       |   5    |     11     |      15
 2.6.17          |   5    |     11     |      15
 2.6.18          |   5    |     11     |      15

Fix the variable as pfn.
This patch fixes the variable as pfn at write_pages().
The existing makedumpfile aborts with "Floating point exception"
if you select ELF format as a dumpfile format(-E option).
it used dh->max_mapnr as pfn at write_pages(), but makedumpfile
does not set the value into dh->max_mapnr with ELF format, and
the value divides by 0.

makedumpfile version 1.0.4

Fix the length of bitmap
This patch fixes the problem on some machines when -d is specified,
that caused the crash utility not to recognize the excluded pages.
makedumpfile creates 2 bitmaps (1st-bitmap & 2nd-bitmap) on block_size
boundary and crash required both of them to be aligned to block_size
boundary, but the old version only aligned one of them.  This patch
changes the length of the bitmaps and aligns both bitmaps to
block_size boundary.

Support ppc64
This patch adds ppc64 support to makedumpfile, and it can run on ppc64.
This patch was created by Sachin Sant.

makedumpfile version 1.0.5

Fix the physical address for i386PAE
This patch fixes the problem that makedumpfile can not run on i386PAE system
because the variables of physical address are 32bit though i386PAE system has
physical address of 36bit. The first patch changes the variables of physical
address to "unsigned long long". This change affects only i386 because of the
following size.

  Arch   | unsigned long(old) | unsigned long long(new)
---------+--------------------+-------------------------
  i386   |        32          |          64
  x86_64 |        64          |          64
  ia64   |        64          |          64

Fix the ELF dumpfile
This patch fixes the feature of the ELF dumpfile. gdb could not read the
dumpfile created by the existing makedumpfile.

makedumpfile version 1.0.6

This patch fixes the bug of Redhat-Bugzilla #218325.
The existing makedumpfile handles /proc/vmcore as ELF64 though user
can specify ELF32 or ELF64 on i386. If user specifies ELF32 vmcore
when 2nd-kernel is loaded, makedumpfile cannot create the dumpfile
correctly.

This patch clean up the DWARF code for the next patch.

This patch adds get_array_length() for getting the MAX_ORDER value
dynamically. The MAX_ORDER value is the number of the array
"zone.free_area[]" that depends on CONFIG_FORCE_MAX_ZONEORDER,
and it is included in the debug information of the kernel file.
makedumpfile gets it by analyzing the debug information.