mirror of
https://github.com/ipxe/ipxe
synced 2025-12-25 00:17:57 +03:00
[image] Simplify image management commands and internal API
Remove the name, cmdline, and action parameters from imgdownload() and imgdownload_string(). These functions now simply download and return an image. Add the function imgacquire(), which will interpret a "name or URI string" parameter and return either an existing image or a newly downloaded image. Use imgacquire() to merge similar image-management commands that currently differ only by whether they take the name of an existing image or the URI of a new image to download. For example, "chain" and "imgexec" can now be merged. Extend imgstat and imgfree commands to take an optional list of images. Remove the arbitrary restriction on the length of image names. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -11,41 +11,9 @@ FILE_LICENCE ( GPL2_OR_LATER );
|
||||
|
||||
#include <ipxe/image.h>
|
||||
|
||||
extern int imgdownload ( struct uri *uri, const char *name, const char *cmdline,
|
||||
int ( * action ) ( struct image *image ) );
|
||||
extern int imgdownload_string ( const char *uri_string, const char *name,
|
||||
const char *cmdline,
|
||||
int ( * action ) ( struct image *image ) );
|
||||
extern int imgdownload ( struct uri *uri, struct image **image );
|
||||
extern int imgdownload_string ( const char *uri_string, struct image **image );
|
||||
extern int imgacquire ( const char *name, struct image **image );
|
||||
extern void imgstat ( struct image *image );
|
||||
extern void imgfree ( struct image *image );
|
||||
|
||||
/**
|
||||
* Select an image for execution
|
||||
*
|
||||
* @v image Image
|
||||
* @ret rc Return status code
|
||||
*/
|
||||
static inline int imgselect ( struct image *image ) {
|
||||
return image_select ( image );
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the previously-selected image
|
||||
*
|
||||
* @ret image Image, or NULL
|
||||
*/
|
||||
static inline struct image * imgautoselect ( void ) {
|
||||
return image_find_selected();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute an image
|
||||
*
|
||||
* @v image Image
|
||||
* @ret rc Return status code
|
||||
*/
|
||||
static inline int imgexec ( struct image *image ) {
|
||||
return image_exec ( image );
|
||||
}
|
||||
|
||||
#endif /* _USR_IMGMGMT_H */
|
||||
|
||||
Reference in New Issue
Block a user