iPXE
resolv.h
Go to the documentation of this file.
1#ifndef _IPXE_RESOLV_H
2#define _IPXE_RESOLV_H
3
4/** @file
5 *
6 * Name resolution
7 *
8 */
9
10FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11FILE_SECBOOT ( PERMITTED );
12
13#include <ipxe/interface.h>
14#include <ipxe/tables.h>
15
16struct sockaddr;
17
18/** A name resolver */
19struct resolver {
20 /** Name of this resolver (e.g. "DNS") */
21 const char *name;
22 /** Start name resolution
23 *
24 * @v resolv Name resolution interface
25 * @v name Name to resolve
26 * @v sa Socket address to complete
27 * @ret rc Return status code
28 */
29 int ( * resolv ) ( struct interface *resolv, const char *name,
30 struct sockaddr *sa );
31};
32
33/** Numeric resolver priority */
34#define RESOLV_NUMERIC 01
35
36/** Normal resolver priority */
37#define RESOLV_NORMAL 02
38
39/** Resolvers table */
40#define RESOLVERS __table ( struct resolver, "resolvers" )
41
42/** Register as a name resolver */
43#define __resolver( resolv_order ) __table_entry ( RESOLVERS, resolv_order )
44
45extern void resolv_done ( struct interface *intf, struct sockaddr *sa );
46#define resolv_done_TYPE( object_type ) \
47 typeof ( void ( object_type, struct sockaddr *sa ) )
48
49extern int resolv ( struct interface *resolv, const char *name,
50 struct sockaddr *sa );
51
52#endif /* _IPXE_RESOLV_H */
const char * name
Definition ath9k_hw.c:1986
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
Object interfaces.
int resolv(struct interface *resolv, const char *name, struct sockaddr *sa)
Start name resolution.
Definition resolv.c:258
void resolv_done(struct interface *intf, struct sockaddr *sa)
Name resolved.
Definition resolv.c:56
int resolv(struct interface *resolv, const char *name, struct sockaddr *sa)
Start name resolution.
Definition resolv.c:258
An object interface.
Definition interface.h:125
A name resolver.
Definition resolv.h:19
int(* resolv)(struct interface *resolv, const char *name, struct sockaddr *sa)
Start name resolution.
Definition resolv.h:29
const char * name
Name of this resolver (e.g.
Definition resolv.h:21
Generalized socket address structure.
Definition socket.h:97
struct sockaddr sa
Definition syslog.c:57
Linker tables.