X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=net.h;h=147982659e7af60ef0febc8cb277848e0175e27b;hb=refs%2Fheads%2Flinux-user-for-upstream;hp=484b00085106f3bd731c805508ee336e16481cd4;hpb=8cad55161c98b95deacdb9c1a66980f5b24d3179;p=qemu diff --git a/net.h b/net.h index 484b000..1479826 100644 --- a/net.h +++ b/net.h @@ -1,7 +1,9 @@ #ifndef QEMU_NET_H #define QEMU_NET_H +#include "qemu-queue.h" #include "qemu-common.h" +#include "qdict.h" /* VLANs support */ @@ -32,10 +34,10 @@ struct VLANClientState { typedef struct VLANPacket VLANPacket; -typedef void (NetPacketSent) (VLANClientState *); +typedef void (NetPacketSent) (VLANClientState *, ssize_t); struct VLANPacket { - struct VLANPacket *next; + QTAILQ_ENTRY(VLANPacket) entry; VLANClientState *sender; int size; NetPacketSent *sent_cb; @@ -47,11 +49,11 @@ struct VLANState { VLANClientState *first_client; struct VLANState *next; unsigned int nb_guest_devs, nb_host_devs; - VLANPacket *send_queue; + QTAILQ_HEAD(send_queue, VLANPacket) send_queue; int delivering; }; -VLANState *qemu_find_vlan(int id); +VLANState *qemu_find_vlan(int id, int allocate); VLANClientState *qemu_new_vlan_client(VLANState *vlan, const char *model, const char *name, @@ -79,21 +81,29 @@ void qemu_check_nic_model_list(NICInfo *nd, const char * const *models, void qemu_handler_true(void *opaque); void do_info_network(Monitor *mon); -int do_set_link(Monitor *mon, const char *name, const char *up_or_down); +void do_set_link(Monitor *mon, const QDict *qdict); + +void do_info_usernet(Monitor *mon); /* NIC info */ #define MAX_NICS 8 +enum { + NIC_NVECTORS_UNSPECIFIED = -1 +}; struct NICInfo { uint8_t macaddr[6]; const char *model; const char *name; const char *devaddr; + const char *id; VLANState *vlan; + VLANClientState *vc; void *private; int used; int bootable; + int nvectors; }; extern int nb_nics; @@ -121,17 +131,21 @@ uint16_t net_checksum_tcpudp(uint16_t length, uint16_t proto, void net_checksum_calculate(uint8_t *data, int length); /* from net.c */ +extern const char *legacy_tftp_prefix; +extern const char *legacy_bootp_filename; + int net_client_init(Monitor *mon, const char *device, const char *p); void net_client_uninit(NICInfo *nd); int net_client_parse(const char *str); void net_slirp_smb(const char *exported_dir); -void net_slirp_redir(Monitor *mon, const char *redir_str, const char *redir_opt2); +void net_slirp_hostfwd_add(Monitor *mon, const QDict *qdict); +void net_slirp_hostfwd_remove(Monitor *mon, const QDict *qdict); +void net_slirp_redir(const char *redir_str); void net_cleanup(void); -int slirp_is_inited(void); void net_client_check(void); void net_set_boot_mask(int boot_mask); -void net_host_device_add(Monitor *mon, const char *device, const char *opts); -void net_host_device_remove(Monitor *mon, int vlan_id, const char *device); +void net_host_device_add(Monitor *mon, const QDict *qdict); +void net_host_device_remove(Monitor *mon, const QDict *qdict); #define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup" #define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"