Staging: hv: remove use of internal list routines in RndisFilter
[safe/jmp/linux-2.6] / drivers / staging / sxg / sxghif.h
index 3675a1b..e190d6a 100644 (file)
@@ -150,13 +150,16 @@ struct sxg_ucode_regs {
 /* Disable interrupt aggregation on xmt */
 #define SXG_AGG_XMT_DISABLE    0x80000000
 
-/* The Microcode supports up to 8 RSS queues */
-#define SXG_MAX_RSS                            8
+/* The Microcode supports up to 16 RSS queues (RevB) */
+#define SXG_MAX_RSS                    16
+#define SXG_MAX_RSS_REVA               8
 
 #define SXG_MAX_RSS_TABLE_SIZE 256             /* 256-byte max */
 
-#define SXG_RSS_TCP6           0x00000001      /* RSS TCP over IPv6 */
-#define SXG_RSS_TCP4           0x00000002      /* RSS TCP over IPv4 */
+#define SXG_RSS_REVA_TCP6      0x00000001      /* RSS TCP over IPv6 */
+#define SXG_RSS_REVA_TCP4      0x00000002      /* RSS TCP over IPv4 */
+#define SXG_RSS_IP             0x00000001      /* RSS TCP over IPv6 */
+#define SXG_RSS_TCP            0x00000002      /* RSS TCP over IPv4 */
 #define SXG_RSS_LEGACY         0x00000004      /* Line-base interrupts */
 #define SXG_RSS_TABLE_SIZE     0x0000FF00      /* Table size mask */
 
@@ -418,6 +421,7 @@ struct sxg_event_ring {
 #define SXG_XMT_RING_SIZE      128             /* Start with 128 */
 #define SXG_RCV_RING_SIZE      128             /* Start with 128 */
 #define SXG_MAX_ENTRIES     4096
+#define SXG_JUMBO_RCV_RING_SIZE       32
 
 /* Structure and macros to manage a ring */
 struct sxg_ring_info {
@@ -713,6 +717,11 @@ enum sxg_buffer_type {
 /* Minimum amount and when to get more */
 #define SXG_MIN_RCV_DATA_BUFFERS       4096
 #define SXG_MAX_RCV_BLOCKS             256     /* = 32k receive buffers */
+/* Amount to give to the card in case of jumbo frames */
+#define SXG_JUMBO_RCV_DATA_BUFFERS             2048
+/* Initial pool of buffers in case of jumbo buffers */
+#define SXG_INITIAL_JUMBO_RCV_DATA_BUFFERS     4096
+#define SXG_MIN_JUMBO_RCV_DATA_BUFFERS         1024
 
 /* Receive buffer header */
 struct sxg_rcv_data_buffer_hdr {
@@ -874,10 +883,8 @@ extern struct sxg_sgl_pool_properties SxgSglPoolProperties[];
  * We currently workaround this issue by allocating SGL buffers
  * in 64k blocks and skipping over buffers that straddle the boundary.
  */
-#define SXG_INVALID_SGL(_SxgSgl)                                       \
-       (((_SxgSgl)->PhysicalAddress.LowPart & 0xFFFF0000) !=           \
-        (((_SxgSgl)->PhysicalAddress.LowPart +                         \
-          SXG_SGL_SIZE((_SxgSgl)->Pool)) & 0xFFFF0000))
+#define SXG_INVALID_SGL(phys_addr,len) \
+       (((phys_addr >> 16) != ( (phys_addr + len) >> 16 )))
 
 /*
  * Allocate SGLs in blocks so we can skip over invalid entries.
@@ -1000,4 +1007,8 @@ struct sxg_ucode_stats {
        u32  XNoBufs;           /* Xmt drop due to no DRAM Xmit buffer or PxyBuf */
 };
 
-
+/*
+ * Macros for handling the Offload engine values
+ */
+/* Number of positions to shift Network Header Length before passing to card */
+#define SXG_NW_HDR_LEN_SHIFT           2