|
iPXE
|
Image downloader. More...
#include <stdlib.h>#include <string.h>#include <errno.h>#include <syslog.h>#include <ipxe/iobuf.h>#include <ipxe/xfer.h>#include <ipxe/open.h>#include <ipxe/job.h>#include <ipxe/umalloc.h>#include <ipxe/image.h>#include <ipxe/xferbuf.h>#include <ipxe/downloader.h>Go to the source code of this file.
Data Structures | |
| struct | downloader |
| A downloader. More... | |
Functions | |
| FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
| static void | downloader_free (struct refcnt *refcnt) |
| Free downloader object. More... | |
| static void | downloader_finished (struct downloader *downloader, int rc) |
| Terminate download. More... | |
| static int | downloader_progress (struct downloader *downloader, struct job_progress *progress) |
| Report progress of download job. More... | |
| static int | downloader_deliver (struct downloader *downloader, struct io_buffer *iobuf, struct xfer_metadata *meta) |
| Handle received data. More... | |
| static struct xfer_buffer * | downloader_buffer (struct downloader *downloader) |
| Get underlying data transfer buffer. More... | |
| static int | downloader_vredirect (struct downloader *downloader, int type, va_list args) |
| Redirect data transfer interface. More... | |
| int | create_downloader (struct interface *job, struct image *image) |
| Instantiate a downloader. More... | |
Variables | |
| static struct interface_operation | downloader_xfer_operations [] |
| Downloader data transfer interface operations. More... | |
| static struct interface_descriptor | downloader_xfer_desc |
| Downloader data transfer interface descriptor. More... | |
| static struct interface_operation | downloader_job_op [] |
| Downloader job control interface operations. More... | |
| static struct interface_descriptor | downloader_job_desc |
| Downloader job control interface descriptor. More... | |
Image downloader.
Definition in file downloader.c.
| FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
|
static |
Free downloader object.
| refcnt | Downloader reference counter |
Definition at line 66 of file downloader.c.
References downloader::buffer, container_of, free, downloader::image, image_put(), and xferbuf_free().
Referenced by create_downloader().
|
static |
Terminate download.
| downloader | Downloader |
| rc | Reason for termination |
Definition at line 81 of file downloader.c.
References buffer, downloader::buffer, image::data, downloader::image, intf_shutdown(), downloader::job, image::len, LOG_ERR, LOG_NOTICE, image::name, rc, strerror(), syslog, downloader::xfer, and xferbuf_detach().
Referenced by create_downloader(), downloader_deliver(), and downloader_vredirect().
|
static |
Report progress of download job.
| downloader | Downloader |
| progress | Progress report to fill in |
| ongoing_rc | Ongoing job status code (if known) |
Definition at line 116 of file downloader.c.
References downloader::buffer, job_progress::completed, xfer_buffer::len, xfer_buffer::pos, rc, job_progress::total, and downloader::xfer.
|
static |
Handle received data.
| downloader | Downloader |
| iobuf | Datagram I/O buffer |
| meta | Data transfer metadata |
| rc | Return status code |
Definition at line 150 of file downloader.c.
References downloader::buffer, downloader_finished(), iob_disown, meta, rc, and xferbuf_deliver().
|
static |
Get underlying data transfer buffer.
| downloader | Downloader |
| xferbuf | Data transfer buffer, or NULL on error |
Definition at line 174 of file downloader.c.
References downloader::buffer.
|
static |
Redirect data transfer interface.
| downloader | Downloader |
| type | New location type |
| args | Remaining arguments depend upon location type |
| rc | Return status code |
Definition at line 188 of file downloader.c.
References downloader_finished(), downloader::image, image_set_uri(), LOCATION_URI, rc, tmp, type, va_arg, va_copy, va_end, downloader::xfer, and xfer_vreopen().
Instantiate a downloader.
| job | Job control interface |
| image | Image to fill with downloaded file |
| rc | Return status code |
Instantiates a downloader object to download the content of the specified image from its URI.
Definition at line 262 of file downloader.c.
References downloader::buffer, downloader_finished(), downloader_free(), downloader_job_desc, downloader_xfer_desc, ENOMEM, downloader::image, image_get(), intf_init(), intf_plug_plug(), downloader::job, rc, ref_init, ref_put, downloader::refcnt, image::uri, downloader::xfer, xfer_open_uri(), xferbuf_umalloc_init(), and zalloc().
Referenced by imgdownload().
|
static |
Downloader data transfer interface operations.
Definition at line 219 of file downloader.c.
|
static |
Downloader data transfer interface descriptor.
Definition at line 227 of file downloader.c.
Referenced by create_downloader().
|
static |
Downloader job control interface operations.
Definition at line 237 of file downloader.c.
|
static |
Downloader job control interface descriptor.
Definition at line 243 of file downloader.c.
Referenced by create_downloader().
1.8.15