/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 2010,2011 Free Software Foundation, Inc.
*
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* GRUB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GRUB_NET_HEADER
enum
{
};
typedef enum grub_link_level_protocol_id
{
typedef struct grub_net_link_level_address
{
union
{
};
typedef enum grub_net_interface_flags
{
typedef enum grub_net_card_flags
{
struct grub_net_card;
struct grub_net_card_driver
{
const char *name;
struct grub_net_buff *buf);
};
typedef struct grub_net_packet
{
typedef struct grub_net_packets
{
#ifdef GRUB_MACHINE_EFI
#endif
struct grub_net_slaac_mac_list
{
int slaac_counter;
char *name;
};
struct grub_net_link_layer_entry;
struct grub_net_card
{
const char *name;
int num_ifaces;
int opened;
unsigned idle_poll_delay_ms;
union
{
#ifdef GRUB_MACHINE_EFI
struct
{
};
#endif
void *data;
int data_num;
};
};
struct grub_net_network_level_interface;
typedef enum grub_network_level_protocol_id
{
typedef struct grub_net_network_level_address
{
union
{
};
typedef struct grub_net_network_level_netaddress
{
int masksize;
static inline grub_err_t
{
struct grub_net_packet *n;
n = grub_malloc (sizeof (*n));
if (!n)
return grub_errno;
{
}
else
return GRUB_ERR_NONE;
}
static inline void
{
else
else
}
struct grub_net_app_protocol
{
const char *name;
const struct grub_dirhook_info *info));
};
typedef struct grub_net
{
char *server;
char *name;
int eof;
} *grub_net_t;
{
char *name;
void *data;
};
struct grub_net_session;
{
};
struct grub_net_session
{
void *data;
};
static inline void
{
}
static inline grub_err_t
{
}
static inline grub_ssize_t
{
}
struct grub_net_network_level_interface *
grub_net_add_addr (const char *name,
struct grub_net_card *card,
extern struct grub_net_network_level_interface *grub_net_network_level_interfaces;
#define FOR_NET_NETWORK_LEVEL_INTERFACES(var) for (var = grub_net_network_level_interfaces; var; var = var->next)
#ifndef GRUB_LST_GENERATOR
static inline void
{
GRUB_AS_LIST (proto));
}
#endif
static inline void
{
GRUB_AS_LIST (proto));
}
extern struct grub_net_card *grub_net_cards;
static inline void
{
GRUB_AS_LIST (card));
}
void
#define FOR_NET_CARDS_SAFE(var, next) for (var = grub_net_cards, next = (var ? var->next : 0); var; var = next, next = (var ? var->next : 0))
struct grub_net_session *
grub_net_resolve_address (const char *name,
grub_net_resolve_net_address (const char *name,
struct grub_net_network_level_interface **interf);
grub_net_add_route (const char *name,
struct grub_net_network_level_interface *inter);
grub_net_add_route_gw (const char *name,
struct grub_net_bootp_packet
{
grub_uint32_t ident; /* random number chosen by client. */
} __attribute__ ((packed));
enum
{
};
struct grub_net_network_level_interface *
grub_net_configure_by_dhcp_ack (const char *name,
struct grub_net_card *card,
const struct grub_net_bootp_packet *bp,
void
struct grub_net_card *card);
int
grub_net_hwaddr_cmp (const grub_net_link_level_address_t *a,
const grub_net_link_level_address_t *b);
int
const grub_net_network_level_address_t *b);
/*
Currently supported adresses:
IPv4: XXX.XXX.XXX.XXX
IPv6: XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX
*/
/*
Currently suppoerted adresses:
ethernet: XX:XX:XX:XX:XX:XX
*/
void
char *buf);
void
extern struct grub_net_network_level_interface *grub_net_network_level_interfaces;
#define FOR_NET_NETWORK_LEVEL_INTERFACES(var) for (var = grub_net_network_level_interfaces; var; var = var->next)
#define FOR_NET_NETWORK_LEVEL_INTERFACES_SAFE(var,next) for (var = grub_net_network_level_interfaces, next = (var ? var->next : 0); var; var = next, next = (var ? var->next : 0))
void
grub_net_poll_cards (unsigned time);
void grub_bootp_init (void);
void grub_bootp_fini (void);
void grub_dns_init (void);
void grub_dns_fini (void);
static inline void
{
}
void
grub_net_tcp_retransmit (void);
void
const grub_net_network_level_address_t *nl,
const grub_net_link_level_address_t *ll,
int override);
int
grub_net_dns_lookup (const char *name,
const struct grub_net_network_level_address *servers,
struct grub_net_network_level_address **addresses,
int cache);
grub_net_add_dns_server (const struct grub_net_network_level_address *s);
void
grub_net_remove_dns_server (const struct grub_net_network_level_address *s);
extern char *grub_net_default_server;
#endif /* ! GRUB_NET_HEADER */