2 * This file and its contents are supplied under the terms of the
3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 * You may only use this file in accordance with the terms of version
7 * A full copy of the text of the CDDL should have accompanied this
8 * source. A copy of the CDDL is also available via the Internet at
9 * http://www.illumos.org/license/CDDL.
13 * This file is part of the Chelsio T4 support code.
15 * Copyright (C) 2011-2013 Chelsio Communications. All rights reserved.
17 * This program is distributed in the hope that it will be useful, but WITHOUT
18 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 * FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file included in this
20 * release for licensing terms and conditions.
23 #ifndef __CXGBE_SHARED_H
24 #define __CXGBE_SHARED_H
27 #include <sys/sunddi.h>
29 #define UNIMPLEMENTED() cmn_err(CE_WARN, "%s (%s:%d) unimplemented.", \
30 __func__, __FILE__, __LINE__)
32 #define bitloc(a, i) ((a)[(i)/NBBY])
33 #define setbit(a, i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY))
34 #define clrbit(a, i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
35 #define isset(a, i) ((a)[(i)/NBBY] & (1<<((i)%NBBY)))
36 #define isclr(a, i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
38 /* TODO: really icky, but we don't want to include adapter.h in cxgb/cxgbe */
39 #define PORT_INFO_HDR \
45 uint8_t hw_addr[ETHERADDRL]
52 kmem_cache_t
*cache
; /* the kmem_cache this rxb came from */
53 ddi_dma_handle_t dhdl
;
54 ddi_acc_handle_t ahdl
;
55 caddr_t va
; /* KVA of buffer */
56 uint64_t ba
; /* bus address of buffer */
59 volatile uint_t ref_cnt
;
62 struct rxbuf_cache_params
{
64 ddi_dma_attr_t dma_attr_rx
;
65 ddi_device_acc_attr_t acc_attr_rx
;
69 void cxgb_printf(dev_info_t
*dip
, int level
, char *f
, ...);
70 kmem_cache_t
*rxbuf_cache_create(struct rxbuf_cache_params
*p
);
71 void rxbuf_cache_destroy(kmem_cache_t
*cache
);
72 struct rxbuf
*rxbuf_alloc(kmem_cache_t
*cache
, int kmflags
, uint_t ref_cnt
);
73 void rxbuf_free(struct rxbuf
*rxb
);
75 #endif /* __CXGBE_SHARED_H */