sadump-related formats and kdump-compressed format is similar in structure. In particular, both have exactly the same in bitmap. So reuse two helper functions, is_on() and is_dumpable(), in sadump module. Signed-off-by: HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> --- makedumpfile.c | 22 ---------------------- makedumpfile.h | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/makedumpfile.c b/makedumpfile.c index 7057009..96faf60 100644 --- a/makedumpfile.c +++ b/makedumpfile.c @@ -2543,28 +2543,6 @@ clear_bit_on_2nd_bitmap_for_kernel(unsigned long long pfn) } static inline int -is_on(char *bitmap, int i) -{ - return bitmap[i>>3] & (1 << (i & 7)); -} - -static inline int -is_dumpable(struct dump_bitmap *bitmap, unsigned long long pfn) -{ - off_t offset; - if (pfn == 0 || bitmap->no_block != pfn/PFN_BUFBITMAP) { - offset = bitmap->offset + BUFSIZE_BITMAP*(pfn/PFN_BUFBITMAP); - lseek(bitmap->fd, offset, SEEK_SET); - read(bitmap->fd, bitmap->buf, BUFSIZE_BITMAP); - if (pfn == 0) - bitmap->no_block = 0; - else - bitmap->no_block = pfn/PFN_BUFBITMAP; - } - return is_on(bitmap->buf, pfn%PFN_BUFBITMAP); -} - -static inline int is_in_segs(unsigned long long paddr) { if (info->flag_refiltering) { diff --git a/makedumpfile.h b/makedumpfile.h index dee0a68..17ec590 100644 --- a/makedumpfile.h +++ b/makedumpfile.h @@ -56,6 +56,8 @@ enum { FLATMEM }; +int get_mem_type(void); + /* * Page flags * @@ -1244,4 +1246,26 @@ int get_xen_info_ia64(void); #define get_xen_info_arch(X) FALSE #endif /* s390x */ +static inline int +is_on(char *bitmap, int i) +{ + return bitmap[i>>3] & (1 << (i & 7)); +} + +static inline int +is_dumpable(struct dump_bitmap *bitmap, unsigned long long pfn) +{ + off_t offset; + if (pfn == 0 || bitmap->no_block != pfn/PFN_BUFBITMAP) { + offset = bitmap->offset + BUFSIZE_BITMAP*(pfn/PFN_BUFBITMAP); + lseek(bitmap->fd, offset, SEEK_SET); + read(bitmap->fd, bitmap->buf, BUFSIZE_BITMAP); + if (pfn == 0) + bitmap->no_block = 0; + else + bitmap->no_block = pfn/PFN_BUFBITMAP; + } + return is_on(bitmap->buf, pfn%PFN_BUFBITMAP); +} + #endif /* MAKEDUMPFILE_H */