11f233f32SVijaya Mohan Guvva /**********************************************************************
21f233f32SVijaya Mohan Guvva  * Author: Cavium, Inc.
31f233f32SVijaya Mohan Guvva  *
41f233f32SVijaya Mohan Guvva  * Contact: support@cavium.com
51f233f32SVijaya Mohan Guvva  *          Please include "LiquidIO" in the subject.
61f233f32SVijaya Mohan Guvva  *
71f233f32SVijaya Mohan Guvva  * Copyright (c) 2003-2017 Cavium, Inc.
81f233f32SVijaya Mohan Guvva  *
91f233f32SVijaya Mohan Guvva  * This file is free software; you can redistribute it and/or modify
101f233f32SVijaya Mohan Guvva  * it under the terms of the GNU General Public License, Version 2, as
111f233f32SVijaya Mohan Guvva  * published by the Free Software Foundation.
121f233f32SVijaya Mohan Guvva  *
131f233f32SVijaya Mohan Guvva  * This file is distributed in the hope that it will be useful, but
141f233f32SVijaya Mohan Guvva  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
151f233f32SVijaya Mohan Guvva  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
161f233f32SVijaya Mohan Guvva  * NONINFRINGEMENT.  See the GNU General Public License for more
171f233f32SVijaya Mohan Guvva  * details.
181f233f32SVijaya Mohan Guvva  *
191f233f32SVijaya Mohan Guvva  * This file may also be available under a different license from Cavium.
201f233f32SVijaya Mohan Guvva  * Contact Cavium, Inc. for more information
211f233f32SVijaya Mohan Guvva  **********************************************************************/
221f233f32SVijaya Mohan Guvva 
231f233f32SVijaya Mohan Guvva /*! \file octeon_vf_main.h
241f233f32SVijaya Mohan Guvva  *  \brief Host Driver: This file defines vf_rep related macros and structures
251f233f32SVijaya Mohan Guvva  */
261f233f32SVijaya Mohan Guvva #ifndef __LIO_VF_REP_H__
271f233f32SVijaya Mohan Guvva #define __LIO_VF_REP_H__
281f233f32SVijaya Mohan Guvva #define LIO_VF_REP_REQ_TMO_MS 5000
291f233f32SVijaya Mohan Guvva #define LIO_VF_REP_STATS_POLL_TIME_MS 200
301f233f32SVijaya Mohan Guvva 
311f233f32SVijaya Mohan Guvva struct lio_vf_rep_desc {
321f233f32SVijaya Mohan Guvva 	struct net_device *parent_ndev;
331f233f32SVijaya Mohan Guvva 	struct net_device *ndev;
341f233f32SVijaya Mohan Guvva 	struct octeon_device *oct;
351f233f32SVijaya Mohan Guvva 	struct lio_vf_rep_stats stats;
361f233f32SVijaya Mohan Guvva 	struct cavium_wk stats_wk;
371f233f32SVijaya Mohan Guvva 	atomic_t ifstate;
381f233f32SVijaya Mohan Guvva 	int ifidx;
391f233f32SVijaya Mohan Guvva };
401f233f32SVijaya Mohan Guvva 
411f233f32SVijaya Mohan Guvva struct lio_vf_rep_sc_ctx {
421f233f32SVijaya Mohan Guvva 	struct completion complete;
431f233f32SVijaya Mohan Guvva };
441f233f32SVijaya Mohan Guvva 
451f233f32SVijaya Mohan Guvva int lio_vf_rep_create(struct octeon_device *oct);
461f233f32SVijaya Mohan Guvva void lio_vf_rep_destroy(struct octeon_device *oct);
47e20f4696SVijaya Mohan Guvva int lio_vf_rep_modinit(void);
48e20f4696SVijaya Mohan Guvva void lio_vf_rep_modexit(void);
491f233f32SVijaya Mohan Guvva #endif
50