From c27f813900a3c114562efbb8df1065e94766fc48 Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Tue, 10 Feb 2009 15:43:59 -0800 Subject: auto import from //branches/cupcake/...@130745 --- net.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 net.h (limited to 'net.h') diff --git a/net.h b/net.h new file mode 100644 index 0000000..5212b48 --- /dev/null +++ b/net.h @@ -0,0 +1,58 @@ +#ifndef QEMU_NET_H +#define QEMU_NET_H + +/* VLANs support */ + +typedef struct VLANClientState VLANClientState; + +struct VLANClientState { + IOReadHandler *fd_read; + /* Packets may still be sent if this returns zero. It's used to + rate-limit the slirp code. */ + IOCanRWHandler *fd_can_read; + void *opaque; + struct VLANClientState *next; + struct VLANState *vlan; + char info_str[256]; +}; + +struct VLANState { + int id; + VLANClientState *first_client; + struct VLANState *next; + unsigned int nb_guest_devs, nb_host_devs; +}; + +VLANState *qemu_find_vlan(int id); +VLANClientState *qemu_new_vlan_client(VLANState *vlan, + IOReadHandler *fd_read, + IOCanRWHandler *fd_can_read, + void *opaque); +void qemu_del_vlan_client(VLANClientState *vc); +int qemu_can_send_packet(VLANClientState *vc); +void qemu_send_packet(VLANClientState *vc, const uint8_t *buf, int size); +void qemu_handler_true(void *opaque); + +void do_info_network(void); + +/* NIC info */ + +#define MAX_NICS 8 + +struct NICInfo { + uint8_t macaddr[6]; + const char *model; + VLANState *vlan; +}; + +extern int nb_nics; +extern NICInfo nd_table[MAX_NICS]; + +/* checksumming functions (net-checksum.c) */ +uint32_t net_checksum_add(int len, uint8_t *buf); +uint16_t net_checksum_finish(uint32_t sum); +uint16_t net_checksum_tcpudp(uint16_t length, uint16_t proto, + uint8_t *addrs, uint8_t *buf); +void net_checksum_calculate(uint8_t *data, int length); + +#endif -- cgit v1.1