linux/drivers/net/ethernet/huawei/hinic/hinic_dev.h
<<
>>
Prefs
   1/*
   2 * Huawei HiNIC PCI Express Linux driver
   3 * Copyright(c) 2017 Huawei Technologies Co., Ltd
   4 *
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms and conditions of the GNU General Public License,
   7 * version 2, as published by the Free Software Foundation.
   8 *
   9 * This program is distributed in the hope it will be useful, but WITHOUT
  10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12 * for more details.
  13 *
  14 */
  15
  16#ifndef HINIC_DEV_H
  17#define HINIC_DEV_H
  18
  19#include <linux/netdevice.h>
  20#include <linux/types.h>
  21#include <linux/semaphore.h>
  22#include <linux/workqueue.h>
  23#include <linux/bitops.h>
  24
  25#include "hinic_hw_dev.h"
  26#include "hinic_tx.h"
  27#include "hinic_rx.h"
  28
  29#define HINIC_DRV_NAME          "hinic"
  30
  31enum hinic_flags {
  32        HINIC_LINK_UP = BIT(0),
  33        HINIC_INTF_UP = BIT(1),
  34};
  35
  36struct hinic_rx_mode_work {
  37        struct work_struct      work;
  38        u32                     rx_mode;
  39};
  40
  41struct hinic_dev {
  42        struct net_device               *netdev;
  43        struct hinic_hwdev              *hwdev;
  44
  45        u32                             msg_enable;
  46        unsigned int                    tx_weight;
  47        unsigned int                    rx_weight;
  48
  49        unsigned int                    flags;
  50
  51        struct semaphore                mgmt_lock;
  52        unsigned long                   *vlan_bitmap;
  53
  54        struct hinic_rx_mode_work       rx_mode_work;
  55        struct workqueue_struct         *workq;
  56
  57        struct hinic_txq                *txqs;
  58        struct hinic_rxq                *rxqs;
  59
  60        struct hinic_txq_stats          tx_stats;
  61        struct hinic_rxq_stats          rx_stats;
  62};
  63
  64#endif
  65