Commit 6ff0edad authored by Pavel Emelyanov's avatar Pavel Emelyanov

img: Open images "at" functionality

Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 82ac1ae3
...@@ -264,9 +264,8 @@ struct cr_fdset *cr_glob_fdset_open(int mode) ...@@ -264,9 +264,8 @@ struct cr_fdset *cr_glob_fdset_open(int mode)
return cr_fdset_open(-1 /* ignored */, _CR_FD_GLOB_FROM, _CR_FD_GLOB_TO, mode); return cr_fdset_open(-1 /* ignored */, _CR_FD_GLOB_FROM, _CR_FD_GLOB_TO, mode);
} }
int open_image(int type, unsigned long flags, ...) int open_image_at(int dfd, int type, unsigned long flags, ...)
{ {
int dfd = get_service_fd(IMG_FD_OFF);
char path[PATH_MAX]; char path[PATH_MAX];
va_list args; va_list args;
int ret; int ret;
...@@ -350,7 +349,7 @@ void up_page_ids_base(void) ...@@ -350,7 +349,7 @@ void up_page_ids_base(void)
page_ids += 0x10000; page_ids += 0x10000;
} }
int open_pages_image(unsigned long flags, int pm_fd) int open_pages_image_at(int dfd, unsigned long flags, int pm_fd)
{ {
unsigned id; unsigned id;
...@@ -367,5 +366,10 @@ int open_pages_image(unsigned long flags, int pm_fd) ...@@ -367,5 +366,10 @@ int open_pages_image(unsigned long flags, int pm_fd)
return -1; return -1;
} }
return open_image(CR_FD_PAGES, flags, id); return open_image_at(dfd, CR_FD_PAGES, flags, id);
}
int open_pages_image(unsigned long flags, int pm_fd)
{
return open_pages_image_at(get_service_fd(IMG_FD_OFF), flags, pm_fd);
} }
...@@ -188,8 +188,10 @@ extern struct cr_fd_desc_tmpl fdset_template[CR_FD_MAX]; ...@@ -188,8 +188,10 @@ extern struct cr_fd_desc_tmpl fdset_template[CR_FD_MAX];
extern int open_image_dir(void); extern int open_image_dir(void);
extern void close_image_dir(void); extern void close_image_dir(void);
int open_image(int type, unsigned long flags, ...); 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(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); void up_page_ids_base(void);
#define LAST_PID_PATH "/proc/sys/kernel/ns_last_pid" #define LAST_PID_PATH "/proc/sys/kernel/ns_last_pid"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment