update copyright date to 2013
[dpdk.git] / lib / librte_pmd_e1000 / e1000_ethdev.h
index 6b72647..9f78b21 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  * 
- *   Copyright(c) 2010-2012 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2010-2013 Intel Corporation. All rights reserved.
  *   All rights reserved.
  * 
  *   Redistribution and use in source and binary forms, with or without 
 #define E1000_ADVTXD_POPTS_IXSM     0x00000100 /* IP Checksum offload request */
 #define E1000_ADVTXD_TUCMD_L4T_RSV  0x00001800 /* L4 Packet TYPE of Reserved */
 #define E1000_RXD_STAT_TMST         0x10000    /* Timestamped Packet indication */
-#define E1000_RXD_ERR_CKSUM_BIT     29 
+#define E1000_RXD_ERR_CKSUM_BIT     29
 #define E1000_RXD_ERR_CKSUM_MSK     3
 #define E1000_ADVTXD_MACLEN_SHIFT   9          /* Bit shift for l2_len */
-
-#define E1000_VFTA_SIZE 128
+#define E1000_CTRL_EXT_EXTEND_VLAN  (1<<26)    /* EXTENDED VLAN */
+#define IGB_VFTA_SIZE 128
 
 /* structure for interrupt relative data */
 struct e1000_interrupt {
@@ -59,7 +59,7 @@ struct e1000_interrupt {
 
 /* local vfta copy */
 struct e1000_vfta {
-       uint32_t vfta[E1000_VFTA_SIZE];
+       uint32_t vfta[IGB_VFTA_SIZE];
 };
 
 /*
@@ -85,10 +85,10 @@ struct e1000_adapter {
        (&((struct e1000_adapter *)adapter)->shadow_vfta)
 
 /*
- * RX/TX function prototypes
+ * RX/TX IGB function prototypes
  */
-int igb_dev_tx_queue_alloc(struct rte_eth_dev *dev, uint16_t nb_queues);
-int igb_dev_rx_queue_alloc(struct rte_eth_dev *dev, uint16_t nb_queues);
+void eth_igb_tx_queue_release(void *txq);
+void eth_igb_rx_queue_release(void *rxq);
 void igb_dev_clear_queues(struct rte_eth_dev *dev);
 
 int eth_igb_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id,
@@ -104,13 +104,48 @@ int eth_igb_rx_init(struct rte_eth_dev *dev);
 
 void eth_igb_tx_init(struct rte_eth_dev *dev);
 
-uint16_t eth_igb_xmit_pkts(struct igb_tx_queue *txq, struct rte_mbuf **tx_pkts,
+uint16_t eth_igb_xmit_pkts(void *txq, struct rte_mbuf **tx_pkts,
                uint16_t nb_pkts);
 
-uint16_t eth_igb_recv_pkts(struct igb_rx_queue *rxq, struct rte_mbuf **rx_pkts,
+uint16_t eth_igb_recv_pkts(void *rxq, struct rte_mbuf **rx_pkts,
                uint16_t nb_pkts);
 
-uint16_t eth_igb_recv_scattered_pkts(struct igb_rx_queue *rxq,
+uint16_t eth_igb_recv_scattered_pkts(void *rxq,
                struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
 
+int eth_igbvf_rx_init(struct rte_eth_dev *dev);
+
+void eth_igbvf_tx_init(struct rte_eth_dev *dev);
+
+/*
+ * RX/TX EM function prototypes
+ */
+void eth_em_tx_queue_release(void *txq);
+void eth_em_rx_queue_release(void *rxq);
+
+void em_dev_clear_queues(struct rte_eth_dev *dev);
+
+int eth_em_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id,
+               uint16_t nb_rx_desc, unsigned int socket_id,
+               const struct rte_eth_rxconf *rx_conf,
+               struct rte_mempool *mb_pool);
+
+int eth_em_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
+               uint16_t nb_tx_desc, unsigned int socket_id,
+               const struct rte_eth_txconf *tx_conf);
+
+int eth_em_rx_init(struct rte_eth_dev *dev);
+
+void eth_em_tx_init(struct rte_eth_dev *dev);
+
+uint16_t eth_em_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+               uint16_t nb_pkts);
+
+uint16_t eth_em_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+               uint16_t nb_pkts);
+
+uint16_t eth_em_recv_scattered_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+               uint16_t nb_pkts);
+
+
 #endif /* _E1000_ETHDEV_H_ */