mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-18 17:14:28 +00:00
Signed-off-by: Andrey Vagin <avagin@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
79 lines
2 KiB
C
79 lines
2 KiB
C
#ifndef __CR_IMAGE_H__
|
|
#define __CR_IMAGE_H__
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include "compiler.h"
|
|
#include "image-desc.h"
|
|
#include "magic.h"
|
|
|
|
#define PAGE_IMAGE_SIZE 4096
|
|
#define PAGE_RSS 1
|
|
#define PAGE_ANON 2
|
|
|
|
/*
|
|
* Top bit set in the tgt id means we've remapped
|
|
* to a ghost file.
|
|
*/
|
|
#define REMAP_GHOST (1 << 31)
|
|
|
|
/*
|
|
* By-default, when dumping a unix socket, we should dump its peer
|
|
* as well. Which in turn means, we should dump the task(s) that have
|
|
* this peer opened.
|
|
*
|
|
* Sometimes, we can break this rule and dump only one end of the
|
|
* unix sockets pair, and on restore time connect() this end back to
|
|
* its peer.
|
|
*
|
|
* So, to resolve this situation we mark the peers we don't dump
|
|
* as "external" and require the --ext-unix-sk option.
|
|
*/
|
|
|
|
#define USK_EXTERN (1 << 0)
|
|
#define USK_SERVICE (1 << 1)
|
|
|
|
#define VMA_AREA_NONE (0 << 0)
|
|
#define VMA_AREA_REGULAR (1 << 0) /* Dumpable area */
|
|
#define VMA_AREA_STACK (1 << 1)
|
|
#define VMA_AREA_VSYSCALL (1 << 2)
|
|
#define VMA_AREA_VDSO (1 << 3)
|
|
#define VMA_FORCE_READ (1 << 4) /* VMA changed to be readable */
|
|
#define VMA_AREA_HEAP (1 << 5)
|
|
|
|
#define VMA_FILE_PRIVATE (1 << 6)
|
|
#define VMA_FILE_SHARED (1 << 7)
|
|
#define VMA_ANON_SHARED (1 << 8)
|
|
#define VMA_ANON_PRIVATE (1 << 9)
|
|
|
|
#define VMA_AREA_SYSVIPC (1 << 10)
|
|
#define VMA_AREA_SOCKET (1 << 11)
|
|
|
|
#define CR_CAP_SIZE 2
|
|
|
|
#define TASK_COMM_LEN 16
|
|
|
|
#define TASK_ALIVE 0x1
|
|
#define TASK_DEAD 0x2
|
|
#define TASK_STOPPED 0x3 /* FIXME - implement */
|
|
#define TASK_HELPER 0x4
|
|
|
|
#define CR_PARENT_LINK "parent"
|
|
|
|
extern bool fdinfo_per_id;
|
|
extern bool ns_per_id;
|
|
|
|
#define O_DUMP (O_RDWR | O_CREAT | O_EXCL)
|
|
#define O_SHOW (O_RDONLY)
|
|
#define O_RSTR (O_RDONLY)
|
|
|
|
extern int open_image_dir(void);
|
|
extern void close_image_dir(void);
|
|
|
|
int open_image_at(int dfd, int type, unsigned long flags, ...);
|
|
#define open_image(typ, flags, ...) open_image_at(get_service_fd(IMG_FD_OFF), typ, flags, ##__VA_ARGS__)
|
|
int open_pages_image(unsigned long flags, int pm_fd);
|
|
int open_pages_image_at(int dfd, unsigned long flags, int pm_fd);
|
|
void up_page_ids_base(void);
|
|
|
|
#endif /* __CR_IMAGE_H__ */
|