#include <ipxe/init.h>
#include "vga.h"
-struct console_driver vga_console;
+struct console_driver vga_console __console_driver;
static char *vidmem; /* The video buffer */
static int video_line, video_col;
FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/tables.h>
-
-struct net_device;
-struct net_protocol;
+#include <ipxe/netdevice.h>
/** A network-layer protocol that relies upon ARP */
struct arp_net_protocol {
/** Declare an ARP protocol */
#define __arp_net_protocol __table_entry ( ARP_NET_PROTOCOLS, 01 )
-extern struct net_protocol arp_protocol;
+extern struct net_protocol arp_protocol __net_protocol;
extern int arp_resolve ( struct net_device *netdev,
struct net_protocol *net_protocol,
#define ICMP6_NSOLICIT 135
#define ICMP6_NADVERT 136
-extern struct tcpip_protocol icmp6_protocol;
+extern struct tcpip_protocol icmp6_protocol __tcpip_protocol;
struct icmp6_header {
uint8_t type;
#include <ipxe/in.h>
#include <ipxe/list.h>
#include <ipxe/retry.h>
+#include <ipxe/netdevice.h>
struct io_buffer;
-struct net_device;
-struct net_protocol;
/* IP constants */
extern struct list_head ipv4_miniroutes;
-extern struct net_protocol ipv4_protocol;
+extern struct net_protocol ipv4_protocol __net_protocol;
#endif /* _IPXE_IP_H */
#include <stdint.h>
#include <ipxe/in.h>
+#include <ipxe/netdevice.h>
+#include <ipxe/tcpip.h>
/* IP6 constants */
#define IP6_NO_HEADER 0x59
struct io_buffer;
-struct net_device;
-struct net_protocol;
-extern struct net_protocol ipv6_protocol;
-extern struct tcpip_net_protocol ipv6_tcpip_protocol;
+extern struct net_protocol ipv6_protocol __net_protocol;
+extern struct tcpip_net_protocol ipv6_tcpip_protocol __tcpip_net_protocol;
extern char * inet6_ntoa ( struct in6_addr in6 );
extern int add_ipv6_address ( struct net_device *netdev,
FILE_LICENCE ( GPL2_OR_LATER );
-struct net_protocol;
+#include <ipxe/netdevice.h>
-extern struct net_protocol rarp_protocol;
+extern struct net_protocol rarp_protocol __net_protocol;
#endif /* _IPXE_RARP_H */
return ( ( seq - start ) < len );
}
-extern struct tcpip_protocol tcp_protocol;
+extern struct tcpip_protocol tcp_protocol __tcpip_protocol;
#endif /* _IPXE_TCP_H */
FEATURE ( FEATURE_PROTOCOL, "AoE", DHCP_EB_FEATURE_AOE, 1 );
-struct net_protocol aoe_protocol;
+struct net_protocol aoe_protocol __net_protocol;
/** List of all AoE sessions */
static LIST_HEAD ( aoe_sessions );
static unsigned int next_new_arp_entry = 0;
-struct net_protocol arp_protocol;
+struct net_protocol arp_protocol __net_protocol;
/**
* Find entry in the ARP cache
* partner sends us.
*/
-struct net_protocol eth_slow_protocol;
+struct net_protocol eth_slow_protocol __net_protocol;
/** Slow protocols multicast address */
static const uint8_t eth_slow_address[ETH_ALEN] =
#include <ipxe/tcpip.h>
#include <ipxe/netdevice.h>
-struct tcpip_protocol icmp6_protocol;
-
/**
* Send neighbour solicitation packet
*
/* Unique IP datagram identification number */
static uint16_t next_ident = 0;
-struct net_protocol ipv4_protocol;
-
/** List of IPv4 miniroutes */
struct list_head ipv4_miniroutes = LIST_HEAD_INIT ( ipv4_miniroutes );
#include <ipxe/netdevice.h>
#include <ipxe/if_ether.h>
-struct net_protocol ipv6_protocol;
-
/* Unspecified IP6 address */
static struct in6_addr ip6_none = {
.in6_u.u6_addr32 = { 0,0,0,0 }
/* Forward declatations */
static struct interface_descriptor udp_xfer_desc;
-struct tcpip_protocol udp_protocol;
+struct tcpip_protocol udp_protocol __tcpip_protocol;
/**
* Bind UDP connection to local port