iPXE
comboot_resolv.c File Reference
#include <errno.h>
#include <comboot.h>
#include <ipxe/in.h>
#include <ipxe/list.h>
#include <ipxe/process.h>
#include <ipxe/resolv.h>

Go to the source code of this file.

Data Structures

struct  comboot_resolver

Functions

 FILE_LICENCE (GPL2_OR_LATER)
static void comboot_resolv_close (struct comboot_resolver *comboot_resolver, int rc)
static void comboot_resolv_done (struct comboot_resolver *comboot_resolver, struct sockaddr *sa)
int comboot_resolv (const char *name, struct in_addr *address)

Variables

static struct interface_operation comboot_resolv_op []
static struct interface_descriptor comboot_resolv_desc
static struct comboot_resolver comboot_resolver

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER )

◆ comboot_resolv_close()

void comboot_resolv_close ( struct comboot_resolver * comboot_resolver,
int rc )
static

Definition at line 16 of file comboot_resolv.c.

17 {
20}
struct arbelprm_rc_send_wqe rc
Definition arbel.h:3
void intf_shutdown(struct interface *intf, int rc)
Shut down an object interface.
Definition interface.c:279
struct interface intf

References comboot_resolver::intf, intf_shutdown(), comboot_resolver::rc, and rc.

◆ comboot_resolv_done()

void comboot_resolv_done ( struct comboot_resolver * comboot_resolver,
struct sockaddr * sa )
static

Definition at line 22 of file comboot_resolv.c.

23 {
24 struct sockaddr_in *sin;
25
26 if ( sa->sa_family == AF_INET ) {
27 sin = ( ( struct sockaddr_in * ) sa );
28 comboot_resolver->addr = sin->sin_addr;
29 }
30}
#define AF_INET
IPv4 Internet addresses.
Definition socket.h:64
struct in_addr addr
IPv4 socket address.
Definition in.h:85
struct sockaddr sa
Definition syslog.c:57
struct sockaddr_in sin
Definition syslog.c:59

References comboot_resolver::addr, AF_INET, sa, and sin.

◆ comboot_resolv()

int comboot_resolv ( const char * name,
struct in_addr * address )

Definition at line 44 of file comboot_resolv.c.

44 {
45 int rc;
46
49
50 if ( ( rc = resolv ( &comboot_resolver.intf, name, NULL ) ) != 0 )
51 return rc;
52
53 while ( comboot_resolver.rc == -EINPROGRESS )
54 step();
55
57 return -EAFNOSUPPORT;
58
60 return comboot_resolver.rc;
61}
#define NULL
NULL pointer (VOID *)
Definition Base.h:322
const char * name
Definition ath9k_hw.c:1986
uint64_t address
Base address.
Definition ena.h:13
#define EAFNOSUPPORT
Address family not supported.
Definition errno.h:314
#define EINPROGRESS
Operation in progress.
Definition errno.h:419
void step(void)
Single-step a single process.
Definition process.c:99
int resolv(struct interface *resolv, const char *name, struct sockaddr *sa)
Start name resolution.
Definition resolv.c:258
uint32_t s_addr
Definition in.h:43

References comboot_resolver::addr, address, EAFNOSUPPORT, EINPROGRESS, comboot_resolver::intf, name, NULL, comboot_resolver::rc, rc, resolv(), in_addr::s_addr, and step().

Referenced by int22(), and PROVIDE_REQUIRING_SYMBOL().

Variable Documentation

◆ comboot_resolv_op

struct interface_operation comboot_resolv_op[]
static
Initial value:
= {
}
static void comboot_resolv_close(struct comboot_resolver *comboot_resolver, int rc)
static void comboot_resolv_done(struct comboot_resolver *comboot_resolver, struct sockaddr *sa)
void intf_close(struct interface *intf, int rc)
Close an object interface.
Definition interface.c:250
#define INTF_OP(op_type, object_type, op_func)
Define an object interface operation.
Definition interface.h:33
void resolv_done(struct interface *intf, struct sockaddr *sa)
Name resolved.
Definition resolv.c:56

Definition at line 32 of file comboot_resolv.c.

◆ comboot_resolv_desc

struct interface_descriptor comboot_resolv_desc
static
Initial value:
=
static struct interface_operation comboot_resolv_op[]
#define INTF_DESC(object_type, intf, operations)
Define an object interface descriptor.
Definition interface.h:81

Definition at line 37 of file comboot_resolv.c.

◆ comboot_resolver

struct comboot_resolver comboot_resolver
static
Initial value:
= {
}
static struct interface_descriptor comboot_resolv_desc
#define INTF_INIT(descriptor)
Initialise a static object interface.
Definition interface.h:218

Definition at line 40 of file comboot_resolv.c.

40 {
42};