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 
10 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11 FILE_SECBOOT ( PERMITTED );
12 
13 #include <ipxe/interface.h>
14 #include <ipxe/tables.h>
15 
16 struct sockaddr;
17 
18 /** A name resolver */
19 struct 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 
45 extern 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 
49 extern 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
FILE_SECBOOT(PERMITTED)
An object interface.
Definition: interface.h:125
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
Object interfaces.
struct sockaddr sa
Definition: syslog.c:57
Generalized socket address structure.
Definition: socket.h:97
int(* resolv)(struct interface *resolv, const char *name, struct sockaddr *sa)
Start name resolution.
Definition: resolv.h:29
A name resolver.
Definition: resolv.h:19
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
Linker tables.
const char * name
Name of this resolver (e.g.
Definition: resolv.h:21