Преглед изворни кода

[xfer] Add xfer_deliver_raw_meta()

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown пре 14 година
родитељ
комит
0329673833
2 измењених фајлова са 22 додато и 5 уклоњено
  1. 20
    5
      src/core/xfer.c
  2. 2
    0
      src/include/ipxe/xfer.h

+ 20
- 5
src/core/xfer.c Прегледај датотеку

@@ -34,8 +34,8 @@ FILE_LICENCE ( GPL2_OR_LATER );
34 34
 /**
35 35
  * Dummy transfer metadata
36 36
  *
37
- * This gets passed to xfer_interface::deliver_iob() and equivalents
38
- * when no metadata is available.
37
+ * This gets passed to xfer_interface::deliver() and equivalents when
38
+ * no metadata is available.
39 39
  */
40 40
 static struct xfer_metadata dummy_metadata;
41 41
 
@@ -216,10 +216,13 @@ int xfer_deliver_iob ( struct interface *intf, struct io_buffer *iobuf ) {
216 216
  * Deliver datagram as raw data
217 217
  *
218 218
  * @v intf		Data transfer interface
219
- * @v iobuf		Datagram I/O buffer
219
+ * @v data		Data
220
+ * @v len		Length of data
221
+ * @v meta		Data transfer metadata
220 222
  * @ret rc		Return status code
221 223
  */
222
-int xfer_deliver_raw ( struct interface *intf, const void *data, size_t len ) {
224
+int xfer_deliver_raw_meta ( struct interface *intf, const void *data,
225
+			    size_t len, struct xfer_metadata *meta ) {
223 226
 	struct io_buffer *iobuf;
224 227
 
225 228
 	iobuf = xfer_alloc_iob ( intf, len );
@@ -227,7 +230,19 @@ int xfer_deliver_raw ( struct interface *intf, const void *data, size_t len ) {
227 230
 		return -ENOMEM;
228 231
 
229 232
 	memcpy ( iob_put ( iobuf, len ), data, len );
230
-	return xfer_deliver_iob ( intf, iobuf );
233
+	return xfer_deliver ( intf, iobuf, meta );
234
+}
235
+
236
+/**
237
+ * Deliver datagram as raw data without metadata
238
+ *
239
+ * @v intf		Data transfer interface
240
+ * @v data		Data
241
+ * @v len		Length of data
242
+ * @ret rc		Return status code
243
+ */
244
+int xfer_deliver_raw ( struct interface *intf, const void *data, size_t len ) {
245
+	return xfer_deliver_raw_meta ( intf, data, len, &dummy_metadata );
231 246
 }
232 247
 
233 248
 /**

+ 2
- 0
src/include/ipxe/xfer.h Прегледај датотеку

@@ -74,6 +74,8 @@ extern int xfer_deliver ( struct interface *intf,
74 74
 extern int xfer_redirect ( struct interface *xfer, int type, ... );
75 75
 extern int xfer_deliver_iob ( struct interface *intf,
76 76
 			      struct io_buffer *iobuf );
77
+extern int xfer_deliver_raw_meta ( struct interface *intf, const void *data,
78
+				   size_t len, struct xfer_metadata *meta );
77 79
 extern int xfer_deliver_raw ( struct interface *intf,
78 80
 			      const void *data, size_t len );
79 81
 extern int xfer_vprintf ( struct interface *intf,

Loading…
Откажи
Сачувај