45 { .name =
"xferbuf.deliver" };
49 { .name =
"xferbuf.write" };
53 { .name =
"xferbuf.read" };
88 DBGC ( xferbuf,
"XFERBUF %p could not extend buffer to "
106 const void *
data,
size_t len ) {
190 xferbuf->
pos = ( pos +
len );
206 return xferbuf->
data;
222 xferbuf->
data = new_data;
245 xferbuf->
data = new_udata;
265 if (
len > xferbuf->
len ) {
365 if (
op && (
dest == xfer_deliver_dest ) ) {
366 xferbuf =
op (
object );
#define NULL
NULL pointer (VOID *).
struct arbelprm_rc_send_wqe rc
if(len >=6 *4) __asm__ __volatile__("movsl" if(len >=5 *4) __asm__ __volatile__("movsl" if(len >=4 *4) __asm__ __volatile__("movsl" if(len >=3 *4) __asm__ __volatile__("movsl" if(len >=2 *4) __asm__ __volatile__("movsl" if(len >=1 *4) __asm__ __volatile__("movsl" if((len % 4) >=2) __asm__ __volatile__("movsw" if((len % 2) >=1) __asm__ __volatile__("movsb" retur dest)
#define assert(condition)
Assert a condition at run-time.
struct bofm_section_header done
uint16_t offset
Offset to command line.
uint8_t data[48]
Additional event data.
uint8_t meta
Metadata flags.
#define __unused
Declare a variable or data structure as unused.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define ENOENT
No such file or directory.
#define ENOSPC
No space left on device.
#define EOVERFLOW
Value too large to be stored in data type.
#define ERANGE
Result too large.
#define ENOTTY
Inappropriate I/O control operation.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
int image_set_len(struct image *image, size_t len)
Set image length.
#define __profiler
Declare a profiler.
static void profile_stop(struct profiler *profiler)
Stop profiling.
static void profile_start(struct profiler *profiler)
Start profiling.
void * urealloc(void *ptr, size_t new_size)
Reallocate external memory.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
void * intf_object(struct interface *intf)
Get pointer to object containing object interface.
void intf_put(struct interface *intf)
Decrement reference count on an object interface.
#define intf_get_dest_op(intf, type, dest)
Get object interface destination and operation method.
void free_iob(struct io_buffer *iobuf)
Free I/O buffer.
static size_t iob_len(struct io_buffer *iobuf)
Calculate length of data in an I/O buffer.
void * realloc(void *old_ptr, size_t new_size)
Reallocate memory.
static uint16_t struct vmbus_xfer_pages_operations * op
char * strerror(int errno)
Retrieve string representation of error number.
void * rwdata
Writable data.
struct interface * intf
Original interface.
void * data
Start of data.
A data structure for storing profiling information.
Data transfer buffer operations.
int(* realloc)(struct xfer_buffer *xferbuf, size_t len)
Reallocate data buffer.
void *(* access)(struct xfer_buffer *xferbuf)
Access data buffer.
size_t max
Maximum required size of data.
size_t pos
Current offset within data.
struct xfer_buffer_operations * op
Data transfer buffer operations.
int xfer_deliver(struct interface *intf, struct io_buffer *iobuf, struct xfer_metadata *meta)
Deliver datagram.
Data transfer interfaces.
#define XFER_FL_ABS_OFFSET
Offset is absolute.
struct xfer_buffer_operations xferbuf_malloc_operations
malloc()-based data buffer operations
struct xfer_buffer * xfer_buffer(struct interface *intf)
Get underlying data transfer buffer.
static int xferbuf_void_realloc(struct xfer_buffer *xferbuf, size_t len __unused)
Reallocate void data transfer buffer.
struct xfer_buffer_operations xferbuf_image_operations
Image-based data buffer operations.
int xferbuf_read(struct xfer_buffer *xferbuf, size_t offset, void *data, size_t len)
Read from data transfer buffer.
static int xferbuf_umalloc_realloc(struct xfer_buffer *xferbuf, size_t len)
Reallocate umalloc()-based data transfer buffer.
static int xferbuf_malloc_realloc(struct xfer_buffer *xferbuf, size_t len)
Reallocate malloc()-based data transfer buffer.
static int xferbuf_ensure_size(struct xfer_buffer *xferbuf, size_t len)
Ensure that data transfer buffer is large enough for the specified size.
int xferbuf_write(struct xfer_buffer *xferbuf, size_t offset, const void *data, size_t len)
Write to data transfer buffer.
struct xfer_buffer_operations xferbuf_void_operations
Void data buffer operations.
static void * xferbuf_raw_access(struct xfer_buffer *xferbuf)
Access raw pointer based data buffer.
void xferbuf_free(struct xfer_buffer *xferbuf)
Free data transfer buffer.
static void * xferbuf_image_access(struct xfer_buffer *xferbuf)
Access image-based data transfer buffer.
struct xfer_buffer_operations xferbuf_fixed_operations
Fixed-size data buffer operations.
struct xfer_buffer_operations xferbuf_umalloc_operations
umalloc()-based data buffer operations
int xferbuf_deliver(struct xfer_buffer *xferbuf, struct io_buffer *iobuf, struct xfer_metadata *meta)
Add received data to data transfer buffer.
static int xferbuf_fixed_realloc(struct xfer_buffer *xferbuf, size_t len)
Reallocate fixed-size data transfer buffer.
static int xferbuf_image_realloc(struct xfer_buffer *xferbuf, size_t len)
Reallocate image-based data transfer buffer.
#define xfer_buffer_TYPE(object_type)