Archive images.
Definition in file archive.c.
| int image_extract |
( |
struct image * | image, |
|
|
const char * | name, |
|
|
struct image ** | extracted ) |
Extract archive image.
- Parameters
-
| image | Image |
| name | Extracted image name |
| extracted | Extracted image to fill in |
- Return values
-
Definition at line 45 of file archive.c.
46 {
48
49
52 goto err_unsupported;
53 }
54
55
57 if ( ! *extracted ) {
59 goto err_alloc;
60 }
61
62
65 goto err_set_name;
66 }
67
68
71
72
74 DBGC (
image,
"IMAGE %s could not extract image: %s\n",
76 goto err_extract;
77 }
78
79
81 goto err_register;
82
83
86
87
89
90 return 0;
91
93 err_register:
94 err_extract:
95 err_set_name:
97 err_alloc:
98 err_unsupported:
100}
struct arbelprm_rc_send_wqe rc
#define ENOMEM
Not enough space.
#define ENOTSUP
Operation not supported.
struct image * alloc_image(struct uri *uri)
Allocate executable image.
char * image_strip_suffix(struct image *image)
Strip dot suffix from image name, if present.
void unregister_image(struct image *image)
Unregister executable image.
int register_image(struct image *image)
Register executable image.
int image_set_name(struct image *image, const char *name)
Set image name.
#define IMAGE_TRUSTED
Image is trusted.
static void image_trust(struct image *image)
Set image as trusted.
static void image_put(struct image *image)
Decrement reference count on an image.
char * strerror(int errno)
Retrieve string representation of error number.
int(* extract)(struct image *image, struct image *extracted)
Extract archive image.
struct image_type * type
Image type, if known.
struct uri * uri
URI of image.
References alloc_image(), DBGC, ENOMEM, ENOTSUP, image_type::extract, image::flags, image_put(), image_set_name(), image_strip_suffix(), image_trust(), IMAGE_TRUSTED, image::name, name, rc, register_image(), strerror(), image::type, unregister_image(), and image::uri.
Referenced by archive_okx(), image_extract_exec(), imgextract(), and REQUIRING_SYMBOL().
| int image_extract_exec |
( |
struct image * | image | ) |
|
Extract and execute image.
- Parameters
-
- Return values
-
Definition at line 108 of file archive.c.
108 {
109 struct image *extracted;
111
112
114 goto err_extract;
115
116
118 goto err_set_cmdline;
119
120
122
123
125 goto err_replace;
126
127
128 return 0;
129
130 err_replace:
131 err_set_cmdline:
133 err_extract:
135}
#define NULL
NULL pointer (VOID *).
int image_extract(struct image *image, const char *name, struct image **extracted)
Extract archive image.
int image_set_cmdline(struct image *image, const char *cmdline)
Set image command line.
int image_replace(struct image *replacement)
Set replacement image.
#define IMAGE_AUTO_UNREGISTER
Image will be automatically unregistered after execution.
char * cmdline
Command line to pass to image.
References image::cmdline, image::flags, IMAGE_AUTO_UNREGISTER, image_extract(), image_replace(), image_set_cmdline(), NULL, rc, and unregister_image().
Referenced by __image_type().