97 if ( numeric->
rc == 0 )
110 numeric =
zalloc (
sizeof ( *numeric ) );
174 &mux->
sa ) ) != 0 ) {
175 DBGC ( mux,
"RESOLV %p could not use method %s: %s\n",
209 DBGC ( mux,
"RESOLV %p succeeded using method %s\n",
217 DBGC ( mux,
"RESOLV %p failed to resolve name\n", mux );
265 mux =
zalloc (
sizeof ( *mux ) + name_len );
276 DBGC ( mux,
"RESOLV %p attempting to resolve \"%s\"\n", mux,
name );
371 DBGC ( named,
"NAMED %p could not redirect: %s\n",
375 DBGC ( named,
"NAMED %p redirected successfully\n", named );
410 named =
zalloc (
sizeof ( *named ) );
422 DBGC ( named,
"NAMED %p opening \"%s\"\n",
#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 __unused
Declare a variable or data structure as unused.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define ENOMEM
Not enough space.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
void intf_close(struct interface *intf, int rc)
Close an object interface.
void * intf_object(struct interface *intf)
Get pointer to object containing object interface.
void intf_plug_plug(struct interface *a, struct interface *b)
Plug two object interfaces together.
struct interface_descriptor null_intf_desc
Null interface descriptor.
void intf_put(struct interface *intf)
Decrement reference count on an object interface.
void intf_unplug(struct interface *intf)
Unplug an object interface.
void intf_shutdown(struct interface *intf, int rc)
Shut down an object interface.
void intf_restart(struct interface *intf, int rc)
Shut down and restart an object interface.
void intf_nullify(struct interface *intf)
Ignore all further operations on an object interface.
#define intf_get_dest_op(intf, type, dest)
Get object interface destination and operation method.
#define INTF_DESC_PASSTHRU(object_type, intf, operations, passthru)
Define an object interface descriptor with pass-through interface.
static void intf_init(struct interface *intf, struct interface_descriptor *desc, struct refcnt *refcnt)
Initialise an object interface.
#define INTF_OP(op_type, object_type, op_func)
Define an object interface operation.
#define INTF_INTF_FMT
printf() format string for INTF_INTF_DBG()
#define INTF_COL(intf)
Find debugging colourisation for an object interface.
#define INTF_INTF_DBG(intf, dest)
printf() arguments for representing an object interface pair
void * zalloc(size_t size)
Allocate cleared memory.
struct mschapv2_challenge peer
Peer challenge.
static uint16_t struct vmbus_xfer_pages_operations * op
Data transfer interface opening.
@ LOCATION_SOCKET
Location is a socket.
#define PROC_DESC_ONCE(object_type, process, _step)
Define a process descriptor for a process that runs only once.
static void process_init(struct process *process, struct process_descriptor *desc, struct refcnt *refcnt)
Initialise process and add to process list.
#define ref_put(refcnt)
Drop reference to object.
#define ref_init(refcnt, free)
Initialise a reference counter.
static struct interface_operation named_resolv_op[]
Named socket opener resolver interface operations.
static struct interface_descriptor resmux_parent_desc
Name resolution multiplexer parent interface descriptor.
static void resmux_close(struct resolv_mux *mux, int rc)
Close name resolution multiplexer.
static struct interface_descriptor named_xfer_desc
Named socket opener data transfer interface descriptor.
static void resmux_child_close(struct resolv_mux *mux, int rc)
Child finished resolution.
static void named_close(struct named_socket *named, int rc)
Terminate named socket opener.
static struct interface_operation named_xfer_ops[]
Named socket opener data transfer interface operations.
static int resmux_try(struct resolv_mux *mux)
Try current child name resolver.
static struct interface_operation resmux_child_op[]
Name resolution multiplexer child interface operations.
static struct process_descriptor numeric_process_desc
static struct interface_descriptor resmux_child_desc
Name resolution multiplexer child interface descriptor.
void resolv_done(struct interface *intf, struct sockaddr *sa)
Name resolved.
static struct interface_operation resmux_parent_op[]
Name resolution multiplexer parent interface operations.
static int numeric_resolv(struct interface *resolv, const char *name, struct sockaddr *sa)
static void named_resolv_done(struct named_socket *named, struct sockaddr *sa)
Name resolved.
static size_t named_window(struct named_socket *named __unused)
Check flow control window.
static struct interface_descriptor named_resolv_desc
Named socket opener resolver interface descriptor.
int xfer_open_named_socket(struct interface *xfer, int semantics, struct sockaddr *peer, const char *name, struct sockaddr *local)
Open named socket.
static void numeric_step(struct numeric_resolv *numeric)
int resolv(struct interface *resolv, const char *name, struct sockaddr *sa)
Start name resolution.
#define __resolver(resolv_order)
Register as a name resolver.
#define RESOLV_NUMERIC
Numeric resolver priority.
#define RESOLVERS
Resolvers table.
#define resolv_done_TYPE(object_type)
int sock_aton(const char *string, struct sockaddr *sa)
Parse socket address.
char * strerror(int errno)
Retrieve string representation of error number.
size_t strlen(const char *src)
Get length of string.
An object interface descriptor.
An object interface operation.
struct interface * intf
Original interface.
int have_local
Stored local socket address exists.
struct interface xfer
Data transfer interface.
struct interface resolv
Name resolution interface.
struct sockaddr local
Stored local socket address, if applicable.
int semantics
Communication semantics (e.g.
struct refcnt refcnt
Reference counter.
struct process process
Process.
struct interface resolv
Name resolution interface.
struct refcnt refcnt
Reference counter.
int rc
Overall status code.
struct sockaddr sa
Completed socket address.
A name resolution multiplexer.
struct resolver * resolver
Current child resolver.
struct interface parent
Parent name resolution interface.
struct sockaddr sa
Socket address to complete.
struct refcnt refcnt
Reference counter.
struct interface child
Child name resolution interface.
char name[0]
Name to be resolved.
int(* resolv)(struct interface *resolv, const char *name, struct sockaddr *sa)
Start name resolution.
const char * name
Name of this resolver (e.g.
Generalized socket address structure.
#define table_end(table)
Get end of linker table.
#define table_start(table)
Get start of linker table.
size_t xfer_window(struct interface *intf)
Check flow control window.
int xfer_redirect(struct interface *intf, int type,...)
Send redirection event.
Data transfer interfaces.