diff options
author | Michael Brown | 2010-07-25 02:49:00 +0200 |
---|---|---|
committer | Michael Brown | 2010-09-03 22:23:16 +0200 |
commit | 0329673833cf878fc094c13b1d32bfed2d17cacf (patch) | |
tree | 10f21ec225b6da924793f683d8a2de6a604f1787 /src/core/xfer.c | |
parent | [xfer] Generalise metadata "whence" field to "flags" field (diff) | |
download | ipxe-0329673833cf878fc094c13b1d32bfed2d17cacf.tar.gz ipxe-0329673833cf878fc094c13b1d32bfed2d17cacf.tar.xz ipxe-0329673833cf878fc094c13b1d32bfed2d17cacf.zip |
[xfer] Add xfer_deliver_raw_meta()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/core/xfer.c')
-rw-r--r-- | src/core/xfer.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/core/xfer.c b/src/core/xfer.c index 112adfcb..222af52a 100644 --- a/src/core/xfer.c +++ b/src/core/xfer.c @@ -34,8 +34,8 @@ FILE_LICENCE ( GPL2_OR_LATER ); /** * Dummy transfer metadata * - * This gets passed to xfer_interface::deliver_iob() and equivalents - * when no metadata is available. + * This gets passed to xfer_interface::deliver() and equivalents when + * no metadata is available. */ static struct xfer_metadata dummy_metadata; @@ -216,10 +216,13 @@ int xfer_deliver_iob ( struct interface *intf, struct io_buffer *iobuf ) { * Deliver datagram as raw data * * @v intf Data transfer interface - * @v iobuf Datagram I/O buffer + * @v data Data + * @v len Length of data + * @v meta Data transfer metadata * @ret rc Return status code */ -int xfer_deliver_raw ( struct interface *intf, const void *data, size_t len ) { +int xfer_deliver_raw_meta ( struct interface *intf, const void *data, + size_t len, struct xfer_metadata *meta ) { struct io_buffer *iobuf; iobuf = xfer_alloc_iob ( intf, len ); @@ -227,7 +230,19 @@ int xfer_deliver_raw ( struct interface *intf, const void *data, size_t len ) { return -ENOMEM; memcpy ( iob_put ( iobuf, len ), data, len ); - return xfer_deliver_iob ( intf, iobuf ); + return xfer_deliver ( intf, iobuf, meta ); +} + +/** + * Deliver datagram as raw data without metadata + * + * @v intf Data transfer interface + * @v data Data + * @v len Length of data + * @ret rc Return status code + */ +int xfer_deliver_raw ( struct interface *intf, const void *data, size_t len ) { + return xfer_deliver_raw_meta ( intf, data, len, &dummy_metadata ); } /** |