172 if (
desc->passthru_offset ) {
173 return ( ( (
void * ) intf ) +
desc->passthru_offset );
195 desc = (*dest)->desc;
196 for ( i =
desc->num_op,
op =
desc->op ; i ; i--,
op++ ) {
static struct interface * intf_get_passthru(struct interface *intf)
Get pass-through interface.
struct interface * intf_get(struct interface *intf)
Increment reference count on an object interface.
An object interface operation.
void * intf_get_dest_op_untyped(struct interface *intf, void *type, struct interface **dest)
Get object interface destination and operation method.
struct arbelprm_rc_send_wqe rc
void intf_close(struct interface *intf, int rc)
Close an object interface.
#define INTF_INTF_FMT
printf() format string for INTF_INTF_DBG()
struct interface null_intf
The null interface.
void intf_restart(struct interface *intf, int rc)
Shut down and restart an object interface.
void intf_shutdown(struct interface *intf, int rc)
Shut down an object interface.
#define INTF_DBG(intf)
printf() arguments for representing an object interface
struct interface_descriptor null_intf_desc
Null interface descriptor.
#define INTF_INTF_DBG(intf, dest)
printf() arguments for representing an object interface pair
#define INTF_INIT(descriptor)
Initialise a static object interface.
uint32_t type
Operating system type.
#define INTF_COL(intf)
Find debugging colourisation for an object interface.
uint64_t desc
Microcode descriptor list physical address.
static void null_intf_close(struct interface *intf __unused, int rc __unused)
Close null interface.
size_t offset
Offset of interface within containing object.
void intf_plug_plug(struct interface *a, struct interface *b)
Plug two object interfaces together.
#define INTF_DESC_PURE(operations)
Define an object interface descriptor for a pure-interface object.
#define va_copy(dest, src)
void intfs_shutdown(int rc,...)
Shut down multiple object interfaces.
void intfs_restart(int rc,...)
Shut down and restart multiple object interfaces.
void * intf_object(struct interface *intf)
Get pointer to object containing object interface.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
void * func
Implementing method.
struct interface * intf
Original interface.
struct interface * dest
Destination object interface.
#define __unused
Declare a variable or data structure as unused.
void intf_unplug(struct interface *intf)
Unplug an object interface.
An object interface descriptor.
char * strerror(int errno)
Retrieve string representation of error number.
#define ref_get(refcnt)
Get additional reference to object.
#define INTF_OP(op_type, object_type, op_func)
Define an object interface operation.
#define intf_poke_TYPE(object_type)
static uint16_t struct vmbus_xfer_pages_operations * op
void intf_insert(struct interface *intf, struct interface *upper, struct interface *lower)
Insert a filter interface.
void intf_nullify(struct interface *intf)
Ignore all further operations on an object interface.
__builtin_va_list va_list
static struct interface_operation null_intf_op[]
Null interface operations.
void intfs_vshutdown(va_list intfs, int rc)
Shut down multiple object interfaces.
void intf_put(struct interface *intf)
Decrement reference count on an object interface.
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
void * intf_get_dest_op_no_passthru_untyped(struct interface *intf, void *type, struct interface **dest)
Get object interface destination and operation method (without pass-through)
struct interface_descriptor * desc
Interface descriptor.
struct refcnt * refcnt
Reference counter.
#define va_start(ap, last)
void intfs_vrestart(va_list intfs, int rc)
Shut down and restart multiple object interfaces.
#define NULL
NULL pointer (VOID *)
void intf_poke(struct interface *intf, void(type)(struct interface *intf))
Poke an object interface.
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.
#define intf_close_TYPE(object_type)
#define ref_put(refcnt)
Drop reference to object.
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()
static void intf_reinit(struct interface *intf)
Reinitialise an object interface.