Print this page
NEX-1890 update oce from source provided by Emulex

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/fibre-channel/fca/oce/oce_utils.h
          +++ new/usr/src/uts/common/sys/fibre-channel/fca/oce/oce_utils.h
↓ open down ↓ 11 lines elided ↑ open up ↑
  12   12   *
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22      -/* Copyright © 2003-2011 Emulex. All rights reserved.  */
       22 +/*
       23 + * Copyright (c) 2009-2012 Emulex. All rights reserved.
       24 + * Use is subject to license terms.
       25 + */
  23   26  
       27 +
       28 +
  24   29  /*
  25   30   * Driver Utility  function prototypes
  26   31   */
  27   32  
  28   33  #ifndef _OCE_UTILS_H_
  29   34  #define _OCE_UTILS_H_
  30   35  
  31   36  #ifdef __cplusplus
  32   37  extern "C" {
  33   38  #endif
↓ open down ↓ 1 lines elided ↑ open up ↑
  35   40  #include <sys/types.h>
  36   41  #include <sys/list.h>
  37   42  
  38   43  /* logging macro */
  39   44  #define MOD_CONFIG      0x0001
  40   45  #define MOD_TX          0x0002
  41   46  #define MOD_RX          0x0004
  42   47  #define MOD_ISR         0x0008
  43   48  
  44   49  #define OCE_DEFAULT_LOG_SETTINGS        (CE_WARN        |       \
  45      -                                        ((MOD_CONFIG | MOD_TX | MOD_RX) << 16))
       50 +        ((MOD_CONFIG | MOD_TX | MOD_RX) << 16UL))
  46   51  
  47   52  #define OCE_MAX_LOG_SETTINGS            (CE_IGNORE | ((MOD_CONFIG | MOD_TX | \
  48      -                                        MOD_RX | MOD_ISR) << 16))
       53 +        MOD_RX | MOD_ISR) << 16UL))
  49   54  
  50   55  #define oce_log(dev_p, level, module, fmt, arg...) {    \
  51   56          if (dev_p) {                                    \
  52   57                  if ((dev_p->mod_mask & module) &&       \
  53   58                      (dev_p->severity < CE_IGNORE) &&    \
  54   59                      ((uint32_t)level >= dev_p->severity))       \
  55   60                          cmn_err(level, "%s[%d]: " fmt, OCE_MOD_NAME,    \
  56   61                              dev_p->dev_id, ## arg);                     \
  57   62          } else {                                                        \
  58   63                  cmn_err(level, "%s[%d]: " fmt, OCE_MOD_NAME,            \
↓ open down ↓ 12 lines elided ↑ open up ↑
  71   76  #define ADDR_HI(addr) (uint32_t)BMASK_32((addr >> 32)) /* high 32 bits */
  72   77  #define ADDR_64(_HI, _LO) ((uint64_t)(((uint64_t)(_HI) << 32)|(_LO)))
  73   78  #define voidptr(x)      (void *)((x))
  74   79  #define u32ptr(x)       (uint32_t *)voidptr((x))
  75   80  #define ptrtou32(x)     (uint32_t)((uint32_t *)(void *)(x))
  76   81  
  77   82  #define PAGE_4K         (0x1UL << 12)
  78   83  #define OFFSET_IN_4K_PAGE(addr) ((off_t)((uint64_t)addr & (PAGE_4K - 1)))
  79   84  #define OCE_NUM_PAGES(size) howmany(size, PAGE_4K)
  80   85  
  81      -#ifdef OCE_DEBUG
  82      -#define OCE_DUMP(buf, len) { \
  83      -        int i = 0; \
  84      -        uint32_t *p = u32ptr(buf); \
  85      -        for (i = 0; i < len/4; i++) \
  86      -                cmn_err(CE_CONT, "[%d] 0x%x", i, p[i]); \
  87      -}
  88      -#endif
  89   86  
  90   87  /* Utility Functions */
  91   88  
  92   89  #define OCE_DW_SWAP(datap, length)      {                       \
  93   90          int len;                                        \
  94   91          uint32_t *wptr = (uint32_t *)(datap);                 \
  95   92          len = (length) + (((length)  %4) ? (4  - (4 %(length))) : 0); \
  96   93          for (len = len/4; len > 0; len--) {             \
  97   94                  *wptr = LE_32(*wptr);                   \
  98   95                  wptr++;                     \
  99   96          }                                                               \
 100   97  }
 101   98  
 102   99  
 103  100  #ifdef _BIG_ENDIAN
 104  101  #define DW_SWAP(_PTR, _LEN) OCE_DW_SWAP(_PTR, _LEN)
 105  102  #else
 106  103  #define DW_SWAP(_PTR, _LEN)
 107  104  #endif
 108  105  
 109      -typedef struct oce_list_entry {
 110      -        struct oce_list_entry *next;
 111      -        struct oce_list_entry *prev;
 112      -}OCE_LIST_NODE_T;
 113      -
 114      -typedef struct {
 115      -        kmutex_t list_lock;
 116      -        OCE_LIST_NODE_T head;
 117      -        int32_t nitems;
 118      -}OCE_LIST_T;
 119      -
 120  106  /* externs for  list manipulation functions */
 121  107  
 122      -
 123      -void oce_list_link_init(OCE_LIST_NODE_T  *list_node);
 124      -void oce_list_create(OCE_LIST_T  *list_hdr, void *arg);
 125      -void oce_list_destroy(OCE_LIST_T *list_hdr);
 126      -void oce_list_insert_tail(OCE_LIST_T *list_hdr, OCE_LIST_NODE_T *list_node);
 127      -void *oce_list_remove_head(OCE_LIST_T  *list_hdr);
 128      -void oce_list_remove_node(OCE_LIST_T  *list_hdr, OCE_LIST_NODE_T *list_node);
 129      -boolean_t oce_list_is_empty(OCE_LIST_T *list_hdr);
 130      -int32_t oce_list_items_avail(OCE_LIST_T *list_hdr);
 131  108  int oce_atomic_reserve(uint32_t *count_p, uint32_t n);
 132  109  
 133      -#define OCE_LIST_CREATE(_LH, _LCK_PRI)  oce_list_create((_LH), (_LCK_PRI))
 134      -#define OCE_LIST_DESTROY(_LH)           oce_list_destroy((_LH))
 135      -#define OCE_LIST_INSERT_TAIL(_LH, _N)                           \
 136      -                        oce_list_insert_tail((_LH), (void *)(_N))
 137      -#define OCE_LIST_REM_HEAD(_LH)          oce_list_remove_head((_LH))
 138      -#define OCE_LIST_EMPTY(_LH)             oce_list_is_empty((_LH))
 139      -#define OCE_LIST_REMOVE(_LH, _N)                                \
 140      -                        oce_list_remove_node((_LH), (void *)(_N))
 141      -#define OCE_LIST_SIZE(_LH)              oce_list_items_avail((_LH))
 142      -#define OCE_LIST_LINK_INIT(_N)          oce_list_link_init(_N)
 143      -
 144  110  void oce_gen_hkey(char *hkey, int key_size);
      111 +void oce_insert_vtag(mblk_t *mp, uint16_t vlan_tag);
      112 +void oce_remove_vtag(mblk_t *mp);
 145  113  
 146  114  #ifdef __cplusplus
 147  115  }
 148  116  #endif
 149  117  
 150  118  #endif /* _OCE_UTILS_H_ */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX