|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [GIT/PATCH v5] xen network backend driver
Le lundi 14 mars 2011 Ã 14:27 +0000, Ian Campbell a Ãcrit :
...
> +struct xenvif {
> + /* Unique identifier for this interface. */
> + domid_t domid;
> + unsigned int handle;
> +
> + /* Reference to netback processing backend. */
> + struct xen_netbk *netbk;
> +
> + u8 fe_dev_addr[6];
> +
> + /* Physical parameters of the comms window. */
> + grant_handle_t tx_shmem_handle;
> + grant_ref_t tx_shmem_ref;
> + grant_handle_t rx_shmem_handle;
> + grant_ref_t rx_shmem_ref;
> + unsigned int irq;
> +
> + /* List of frontends to notify after a batch of frames sent. */
> + struct list_head notify_list;
> +
> + /* The shared rings and indexes. */
> + struct xen_netif_tx_back_ring tx;
> + struct xen_netif_rx_back_ring rx;
> + struct vm_struct *tx_comms_area;
> + struct vm_struct *rx_comms_area;
> +
> + /* Flags that must not be set in dev->features */
> + u32 features_disabled;
> +
> + /* Frontend feature information. */
> + u8 can_sg:1;
> + u8 gso:1;
> + u8 gso_prefix:1;
> + u8 csum:1;
> +
> + /* Internal feature information. */
> + u8 can_queue:1; /* can queue packets for receiver? */
> +
> + /*
> + * Allow xenvif_start_xmit() to peek ahead in the rx request
> + * ring. This is a prediction of what rx_req_cons will be
> + * once all queued skbs are put on the ring.
> + */
> + RING_IDX rx_req_cons_peek;
> +
> + /* Transmit shaping: allow 'credit_bytes' every 'credit_usec'. */
> + unsigned long credit_bytes;
> + unsigned long credit_usec;
> + unsigned long remaining_credit;
> + struct timer_list credit_timeout;
> +
> + /* Statistics */
> + unsigned long rx_gso_checksum_fixup;
this is an "unsigned long" field
> +
> + /* Miscellaneous private stuff. */
> + struct list_head schedule_list;
> + atomic_t refcnt;
> + struct net_device *dev;
> +
> + wait_queue_head_t waiting_to_free;
> +};
> +
> +static void xenvif_get_ethtool_stats(struct net_device *dev,
> + struct ethtool_stats *stats, u64 * data)
> +{
> + void *vif = netdev_priv(dev);
> + int i;
> +
> + for (i = 0; i < ARRAY_SIZE(xenvif_stats); i++)
> + data[i] = *(int *)(vif + xenvif_stats[i].offset);
so use : data[i] = *(unsigned long *)(vif + xenvif_stats[i].offset);
> +}
> +
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |