169 iobuf =
op (
object,
len );
216 " deliver failed: %s\n",
388 new_pos +=
meta->offset;
391 if ( new_pos != *pos )
struct arbelprm_rc_send_wqe rc
void xfer_window_changed(struct interface *intf)
Report change of flow control window.
void intf_close(struct interface *intf, int rc)
Close an object interface.
#define INTF_INTF_FMT
printf() format string for INTF_INTF_DBG()
#define iob_put(iobuf, len)
#define INTF_DBG(intf)
printf() arguments for representing an object interface
int xfer_deliver_iob(struct interface *intf, struct io_buffer *iobuf)
Deliver datagram as I/O buffer without metadata.
int xfer_deliver_raw_meta(struct interface *intf, const void *data, size_t len, struct xfer_metadata *meta)
Deliver datagram as raw data.
#define XFER_FL_ABS_OFFSET
Offset is absolute.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
void free_iob(struct io_buffer *iobuf)
Free I/O buffer.
#define INTF_INTF_DBG(intf, dest)
printf() arguments for representing an object interface pair
uint32_t type
Operating system type.
#define EPIPE
Broken pipe.
#define INTF_COL(intf)
Find debugging colourisation for an object interface.
int xfer_vredirect(struct interface *intf, int type, va_list args)
Send redirection event.
struct io_buffer * xfer_alloc_iob(struct interface *intf, size_t len)
Allocate I/O buffer.
int xfer_check_order(struct xfer_metadata *meta, size_t *pos, size_t len)
Check that data is delivered strictly in order.
#define va_copy(dest, src)
#define xfer_vredirect_TYPE(object_type)
struct io_buffer * alloc_iob(size_t len)
Allocate I/O buffer.
size_t xfer_window(struct interface *intf)
Check flow control window.
void * intf_object(struct interface *intf)
Get pointer to object containing object interface.
int xfer_deliver_raw(struct interface *intf, const void *data, size_t len)
Deliver datagram as raw data without metadata.
#define xfer_deliver_TYPE(object_type)
Data transfer interfaces.
struct interface * intf
Original interface.
#define ENOMEM
Not enough space.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
int vasprintf(char **strp, const char *fmt, va_list args)
Write a formatted string to newly allocated memory.
#define EPROTO
Protocol error.
void intf_unplug(struct interface *intf)
Unplug an object interface.
int xfer_seek(struct interface *intf, off_t offset)
Seek to position.
char * strerror(int errno)
Retrieve string representation of error number.
static void(* free)(struct refcnt *refcnt))
static size_t iob_len(struct io_buffer *iobuf)
Calculate length of data in an I/O buffer.
int xfer_deliver(struct interface *intf, struct io_buffer *iobuf, struct xfer_metadata *meta)
Deliver datagram.
Data transfer interface opening.
#define xfer_window_TYPE(object_type)
int xfer_vprintf(struct interface *intf, const char *format, va_list args)
Deliver formatted string.
int xfer_vreopen(struct interface *intf, int type, va_list args)
Reopen location.
int xfer_printf(struct interface *intf, const char *format,...)
Deliver formatted string.
static uint16_t struct vmbus_xfer_pages_operations * op
__builtin_va_list va_list
void intf_put(struct interface *intf)
Decrement reference count on an object interface.
#define intf_get_dest_op_no_passthru(intf, type, dest)
Get object interface destination and operation method (without pass-through)
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" return dest
uint8_t data[48]
Additional event data.
#define xfer_alloc_iob_TYPE(object_type)
uint16_t offset
Offset to command line.
#define va_start(ap, last)
void intf_poke(struct interface *intf, void(type)(struct interface *intf))
Poke an object interface.
static struct xfer_metadata dummy_metadata
Dummy transfer metadata.
static void intf_temp_init(struct interface *intf, struct interface *original)
Initialise a temporary outbound-only object interface.
#define intf_get_dest_op(intf, type, dest)
Get object interface destination and operation method.
void intf_plug(struct interface *intf, struct interface *dest)
Plug an object interface into a new destination object interface.
#define INTF_FMT
printf() format string for INTF_DBG()
int xfer_redirect(struct interface *intf, int type,...)
Send redirection event.