[xferbuf] Add generic data-transfer buffer

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2012-05-08 16:54:38 +01:00
parent f19565f58f
commit 2e4be01690
3 changed files with 140 additions and 0 deletions

View File

@@ -61,6 +61,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#define ERRFILE_edd ( ERRFILE_CORE | 0x00150000 )
#define ERRFILE_parseopt ( ERRFILE_CORE | 0x00160000 )
#define ERRFILE_test ( ERRFILE_CORE | 0x00170000 )
#define ERRFILE_xferbuf ( ERRFILE_CORE | 0x00180000 )
#define ERRFILE_eisa ( ERRFILE_DRIVER | 0x00000000 )
#define ERRFILE_isa ( ERRFILE_DRIVER | 0x00010000 )

View File

@@ -0,0 +1,31 @@
#ifndef _IPXE_XFERBUF_H
#define _IPXE_XFERBUF_H
/** @file
*
* Data transfer buffer
*
*/
FILE_LICENCE ( GPL2_OR_LATER );
#include <stdint.h>
#include <ipxe/iobuf.h>
#include <ipxe/xfer.h>
/** A data transfer buffer */
struct xfer_buffer {
/** Data */
void *data;
/** Size of data */
size_t len;
/** Current offset within data */
size_t pos;
};
extern void xferbuf_done ( struct xfer_buffer *xferbuf );
extern int xferbuf_deliver ( struct xfer_buffer *xferbuf,
struct io_buffer *iobuf,
struct xfer_metadata *meta );
#endif /* _IPXE_XFERBUF_H */