xref: /linux/drivers/net/ethernet/cavium/liquidio/lio_vf_rep.h (revision 96ac6d435100450f0565708d9b885ea2a7400e0a)
1 /**********************************************************************
2  * Author: Cavium, Inc.
3  *
4  * Contact: support@cavium.com
5  *          Please include "LiquidIO" in the subject.
6  *
7  * Copyright (c) 2003-2017 Cavium, Inc.
8  *
9  * This file is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License, Version 2, as
11  * published by the Free Software Foundation.
12  *
13  * This file is distributed in the hope that it will be useful, but
14  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16  * NONINFRINGEMENT.  See the GNU General Public License for more
17  * details.
18  *
19  * This file may also be available under a different license from Cavium.
20  * Contact Cavium, Inc. for more information
21  **********************************************************************/
22 
23 /*! \file octeon_vf_main.h
24  *  \brief Host Driver: This file defines vf_rep related macros and structures
25  */
26 #ifndef __LIO_VF_REP_H__
27 #define __LIO_VF_REP_H__
28 #define LIO_VF_REP_REQ_TMO_MS 5000
29 #define LIO_VF_REP_STATS_POLL_TIME_MS 200
30 
31 struct lio_vf_rep_desc {
32 	struct net_device *parent_ndev;
33 	struct net_device *ndev;
34 	struct octeon_device *oct;
35 	struct lio_vf_rep_stats stats;
36 	struct cavium_wk stats_wk;
37 	atomic_t ifstate;
38 	int ifidx;
39 };
40 
41 struct lio_vf_rep_sc_ctx {
42 	struct completion complete;
43 };
44 
45 int lio_vf_rep_create(struct octeon_device *oct);
46 void lio_vf_rep_destroy(struct octeon_device *oct);
47 int lio_vf_rep_modinit(void);
48 void lio_vf_rep_modexit(void);
49 #endif
50