2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-31 14:25:49 +00:00

vma: Vma allocation helper is now function

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
Pavel Emelyanov
2014-01-31 20:57:11 +04:00
parent 593cb59a63
commit 98fbeb8d0a
3 changed files with 19 additions and 15 deletions

View File

@@ -118,21 +118,6 @@ extern void pr_vma(unsigned int loglevel, const struct vma_area *vma_area);
} while (0)
#define pr_info_vma_list(head) pr_vma_list(LOG_INFO, head)
/*
* Note since VMA_AREA_NONE = 0 we can skip assignment
* here and simply rely on xzalloc
*/
#define alloc_vma_area() \
({ \
struct vma_area *p__ = xzalloc(sizeof(*p__)); \
if (p__) { \
vma_entry__init(&p__->vma); \
p__->vm_file_fd = -1; \
p__->vma.fd = -1; \
} \
p__; \
})
extern int move_img_fd(int *img_fd, int want_fd);
extern int close_safe(int *fd);

View File

@@ -31,6 +31,7 @@ struct vma_area {
struct stat *st;
};
extern struct vma_area *alloc_vma_area(void);
extern int collect_mappings(pid_t pid, struct vm_area_list *vma_area_list);
extern void free_mappings(struct vm_area_list *vma_area_list);
extern bool privately_dump_vma(struct vma_area *vma);

18
util.c
View File

@@ -642,3 +642,21 @@ out:
close(fd);
return ret;
}
/*
* Note since VMA_AREA_NONE = 0 we can skip assignment
* here and simply rely on xzalloc
*/
struct vma_area *alloc_vma_area(void)
{
struct vma_area *p;
p = xzalloc(sizeof(*p));
if (p) {
vma_entry__init(&p->vma);
p->vm_file_fd = -1;
p->vma.fd = -1;
}
return p;
}