criu/include/parasite.h
Andrey Vagin 3b8b68464a parasite: remove parasite_status_t, a return code is enough
In olden times, when people didn't know how to write,
they sent a courier with a letter.

Now we can write messages from parasite, so SET_PARASITE_RET may be dropped.

Signed-off-by: Andrey Vagin <avagin@openvz.org>

Looks good to me as well. Maybe we will refine messages to be able
to identify where exactly parasite failed (say line). But it better
to do in another patch.

Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2012-06-27 14:52:01 +04:00

91 lines
1.7 KiB
C

#ifndef CR_PARASITE_H_
#define CR_PARASITE_H_
#define PARASITE_STACK_SIZE 2048
#define PARASITE_ARG_SIZE 8196
#define PARASITE_MAX_SIZE (64 << 10)
#ifndef __ASSEMBLY__
#include <sys/un.h>
#include "image.h"
#include "sockets.h"
#include "util-net.h"
#define __head __used __section(.head.text)
enum {
PARASITE_CMD_INIT,
PARASITE_CMD_SET_LOGFD,
PARASITE_CMD_FINI,
PARASITE_CMD_DUMPPAGES_INIT,
PARASITE_CMD_DUMPPAGES,
PARASITE_CMD_DUMPPAGES_FINI,
PARASITE_CMD_DUMP_SIGACTS,
PARASITE_CMD_DUMP_ITIMERS,
PARASITE_CMD_DUMP_MISC,
PARASITE_CMD_DUMP_TID_ADDR,
PARASITE_CMD_DRAIN_FDS,
PARASITE_CMD_MAX,
};
struct parasite_init_args {
int sun_len;
struct sockaddr_un saddr;
};
struct parasite_dump_pages_args {
struct vma_entry vma_entry;
unsigned long nrpages_dumped; /* how many pages are dumped */
unsigned long nrpages_skipped;
unsigned long nrpages_total;
};
/*
* Misc sfuff, that is too small for separate file, but cannot
* be read w/o using parasite
*/
struct parasite_dump_misc {
unsigned int secbits;
unsigned long brk;
k_rtsigset_t blocked;
u32 pid;
u32 sid;
u32 pgid;
};
struct parasite_dump_tid_info {
unsigned int *tid_addr;
int tid;
};
#define PARASITE_MAX_FDS (PAGE_SIZE / sizeof(int))
struct parasite_drain_fd {
struct sockaddr_un saddr;
int sun_len;
int fds[PARASITE_MAX_FDS];
int nr_fds;
};
/*
* Some useful offsets
*/
#define PARASITE_ARGS_ADDR(start) \
((start) + parasite_blob_offset____export_parasite_args)
#define PARASITE_CMD_ADDR(start) \
((start) + parasite_blob_offset____export_parasite_cmd)
#define PARASITE_HEAD_ADDR(start) \
((start) + parasite_blob_offset____export_parasite_head_start)
#endif /* !__ASSEMBLY__ */
#endif /* CR_PARASITE_H_ */