Contributors: 10
Author |
Tokens |
Token Proportion |
Commits |
Commit Proportion |
Sucheta Chakraborty |
507 |
91.52% |
6 |
35.29% |
Amit Kumar Salecha |
10 |
1.81% |
1 |
5.88% |
Tom Rix |
10 |
1.81% |
1 |
5.88% |
Rajesh K Borundia |
7 |
1.26% |
2 |
11.76% |
Daniil Tatianin |
6 |
1.08% |
1 |
5.88% |
Anirban Chakraborty |
6 |
1.08% |
1 |
5.88% |
Sony Chacko |
4 |
0.72% |
2 |
11.76% |
Thomas Gleixner |
2 |
0.36% |
1 |
5.88% |
Julia Lawall |
1 |
0.18% |
1 |
5.88% |
Himanshu Madhani |
1 |
0.18% |
1 |
5.88% |
Total |
554 |
|
17 |
|
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* QLogic qlcnic NIC Driver
* Copyright (c) 2009-2013 QLogic Corporation
*/
#ifndef __QLCNIC_DCBX_H
#define __QLCNIC_DCBX_H
#define QLCNIC_DCB_STATE 0
#define QLCNIC_DCB_AEN_MODE 1
#ifdef CONFIG_QLCNIC_DCB
int qlcnic_register_dcb(struct qlcnic_adapter *);
#else
static inline int qlcnic_register_dcb(struct qlcnic_adapter *adapter)
{ return 0; }
#endif
struct qlcnic_dcb;
struct qlcnic_dcb_ops {
int (*query_hw_capability) (struct qlcnic_dcb *, char *);
int (*get_hw_capability) (struct qlcnic_dcb *);
int (*query_cee_param) (struct qlcnic_dcb *, char *, u8);
void (*init_dcbnl_ops) (struct qlcnic_dcb *);
void (*aen_handler) (struct qlcnic_dcb *, void *);
int (*get_cee_cfg) (struct qlcnic_dcb *);
void (*get_info) (struct qlcnic_dcb *);
int (*attach) (struct qlcnic_dcb *);
void (*free) (struct qlcnic_dcb *);
};
struct qlcnic_dcb {
struct qlcnic_dcb_mbx_params *param;
struct qlcnic_adapter *adapter;
struct delayed_work aen_work;
struct workqueue_struct *wq;
const struct qlcnic_dcb_ops *ops;
struct qlcnic_dcb_cfg *cfg;
unsigned long state;
};
static inline int qlcnic_dcb_get_hw_capability(struct qlcnic_dcb *dcb)
{
if (dcb && dcb->ops->get_hw_capability)
return dcb->ops->get_hw_capability(dcb);
return -EOPNOTSUPP;
}
static inline void qlcnic_dcb_free(struct qlcnic_dcb *dcb)
{
if (dcb && dcb->ops->free)
dcb->ops->free(dcb);
}
static inline int qlcnic_dcb_attach(struct qlcnic_dcb *dcb)
{
if (dcb && dcb->ops->attach)
return dcb->ops->attach(dcb);
return -EOPNOTSUPP;
}
static inline int
qlcnic_dcb_query_hw_capability(struct qlcnic_dcb *dcb, char *buf)
{
if (dcb && dcb->ops->query_hw_capability)
return dcb->ops->query_hw_capability(dcb, buf);
return -EOPNOTSUPP;
}
static inline void qlcnic_dcb_get_info(struct qlcnic_dcb *dcb)
{
if (dcb && dcb->ops->get_info)
dcb->ops->get_info(dcb);
}
static inline int
qlcnic_dcb_query_cee_param(struct qlcnic_dcb *dcb, char *buf, u8 type)
{
if (dcb && dcb->ops->query_cee_param)
return dcb->ops->query_cee_param(dcb, buf, type);
return -EOPNOTSUPP;
}
static inline int qlcnic_dcb_get_cee_cfg(struct qlcnic_dcb *dcb)
{
if (dcb && dcb->ops->get_cee_cfg)
return dcb->ops->get_cee_cfg(dcb);
return -EOPNOTSUPP;
}
static inline void qlcnic_dcb_aen_handler(struct qlcnic_dcb *dcb, void *msg)
{
if (dcb && dcb->ops->aen_handler)
dcb->ops->aen_handler(dcb, msg);
}
static inline void qlcnic_dcb_init_dcbnl_ops(struct qlcnic_dcb *dcb)
{
if (dcb && dcb->ops->init_dcbnl_ops)
dcb->ops->init_dcbnl_ops(dcb);
}
static inline int qlcnic_dcb_enable(struct qlcnic_dcb *dcb)
{
return dcb ? qlcnic_dcb_attach(dcb) : 0;
}
#endif