Print this page
NEX-1890 update oce from source provided by Emulex
*** 17,28 ****
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
! /* Copyright © 2003-2011 Emulex. All rights reserved. */
/*
* Header file defining the driver buffer management interface
*/
#ifndef _OCE_BUF_H_
--- 17,32 ----
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
! /*
! * Copyright (c) 2009-2012 Emulex. All rights reserved.
! * Use is subject to license terms.
! */
+
/*
* Header file defining the driver buffer management interface
*/
#ifndef _OCE_BUF_H_
*** 67,111 ****
/* size of the memory */
size_t size;
size_t off;
size_t len;
uint32_t num_pages;
}oce_dma_buf_t;
! #define DBUF_PA(obj) (((oce_dma_buf_t *)(obj))->addr)
! #define DBUF_VA(obj) (((oce_dma_buf_t *)(obj))->base)
! #define DBUF_DHDL(obj) (((oce_dma_buf_t *)(obj))->dma_handle)
! #define DBUF_AHDL(obj) (((oce_dma_buf_t *)obj))->acc_handle)
! #define DBUF_SYNC(obj, flags) (void) ddi_dma_sync(DBUF_DHDL(obj), 0,\
! 0, (flags))
typedef struct oce_ring_buffer_s {
uint16_t cidx; /* Get ptr */
uint16_t pidx; /* Put Ptr */
size_t item_size; /* Size */
size_t num_items; /* count */
uint32_t num_used;
! oce_dma_buf_t *dbuf; /* dma buffer */
}oce_ring_buffer_t;
typedef struct oce_rq_bdesc_s {
! oce_dma_buf_t *rqb;
struct oce_rq *rq;
oce_addr64_t frag_addr;
mblk_t *mp;
frtn_t fr_rtn;
uint32_t ref_cnt;
}oce_rq_bdesc_t;
typedef struct oce_wq_bdesc_s {
! OCE_LIST_NODE_T link;
! oce_dma_buf_t *wqb;
oce_addr64_t frag_addr;
} oce_wq_bdesc_t;
typedef struct oce_wq_mdesc_s {
- OCE_LIST_NODE_T link;
ddi_dma_handle_t dma_handle;
} oce_wq_mdesc_t;
enum entry_type {
HEADER_WQE = 0x1, /* arbitrary value */
--- 71,115 ----
/* size of the memory */
size_t size;
size_t off;
size_t len;
uint32_t num_pages;
+ uint32_t ncookies;
+ ddi_dma_cookie_t cookie;
}oce_dma_buf_t;
! #define DBUF_PA(obj) ((obj).addr)
! #define DBUF_VA(obj) ((obj).base)
! #define DBUF_DHDL(obj) ((obj).dma_handle)
! #define DBUF_AHDL(obj) ((obj).acc_handle)
! #define DBUF_SYNC(obj, off, len, flags) \
! (void) ddi_dma_sync(DBUF_DHDL(obj), off, len, (flags))
typedef struct oce_ring_buffer_s {
uint16_t cidx; /* Get ptr */
uint16_t pidx; /* Put Ptr */
size_t item_size; /* Size */
size_t num_items; /* count */
uint32_t num_used;
! oce_dma_buf_t dbuf; /* dma buffer */
}oce_ring_buffer_t;
typedef struct oce_rq_bdesc_s {
! oce_dma_buf_t rqb;
struct oce_rq *rq;
oce_addr64_t frag_addr;
mblk_t *mp;
frtn_t fr_rtn;
uint32_t ref_cnt;
}oce_rq_bdesc_t;
typedef struct oce_wq_bdesc_s {
! oce_dma_buf_t wqb;
oce_addr64_t frag_addr;
} oce_wq_bdesc_t;
typedef struct oce_wq_mdesc_s {
ddi_dma_handle_t dma_handle;
} oce_wq_mdesc_t;
enum entry_type {
HEADER_WQE = 0x1, /* arbitrary value */
*** 118,128 ****
enum entry_type type;
void *hdl; /* opaque handle */
}oce_handle_t;
typedef struct _oce_wqe_desc_s {
! OCE_LIST_NODE_T link;
oce_handle_t hdesc[OCE_MAX_TX_HDL];
struct oce_nic_frag_wqe frag[OCE_TX_MAX_FRAGS];
struct oce_wq *wq;
mblk_t *mp;
uint16_t wqe_cnt;
--- 122,132 ----
enum entry_type type;
void *hdl; /* opaque handle */
}oce_handle_t;
typedef struct _oce_wqe_desc_s {
! list_node_t link;
oce_handle_t hdesc[OCE_MAX_TX_HDL];
struct oce_nic_frag_wqe frag[OCE_TX_MAX_FRAGS];
struct oce_wq *wq;
mblk_t *mp;
uint16_t wqe_cnt;
*** 138,148 ****
uint8_t pad[18];
/* ether_vlan_header_t vhdr; */
} oce_rq_buf_hdr_t;
#pragma pack()
! #define OCE_RQE_BUF_HEADROOM 18
#define MAX_POOL_NAME 32
#define RING_NUM_PENDING(ring) ring->num_used
#define RING_NUM_FREE(ring) \
--- 142,153 ----
uint8_t pad[18];
/* ether_vlan_header_t vhdr; */
} oce_rq_buf_hdr_t;
#pragma pack()
! #define OCE_RQE_BUF_HEADROOM 10 /* always 2 mod 4 */
! #define OCE_IP_ALIGN 2 /* Align the IP header */
#define MAX_POOL_NAME 32
#define RING_NUM_PENDING(ring) ring->num_used
#define RING_NUM_FREE(ring) \