linux/drivers/net/ethernet/cisco/enic/vnic_intr.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright 2008-2010 Cisco Systems, Inc.  All rights reserved.
 * Copyright 2007 Nuova Systems, Inc.  All rights reserved.
 */

#ifndef _VNIC_INTR_H_
#define _VNIC_INTR_H_

#include <linux/pci.h>

#include "vnic_dev.h"

#define VNIC_INTR_TIMER_TYPE_ABS
#define VNIC_INTR_TIMER_TYPE_QUIET

/* Interrupt control */
struct vnic_intr_ctrl {};

struct vnic_intr {};

static inline void vnic_intr_unmask(struct vnic_intr *intr)
{}

static inline void vnic_intr_mask(struct vnic_intr *intr)
{}

static inline int vnic_intr_masked(struct vnic_intr *intr)
{}

static inline void vnic_intr_return_credits(struct vnic_intr *intr,
	unsigned int credits, int unmask, int reset_timer)
{}

static inline unsigned int vnic_intr_credits(struct vnic_intr *intr)
{}

static inline void vnic_intr_return_all_credits(struct vnic_intr *intr)
{}

static inline u32 vnic_intr_legacy_pba(u32 __iomem *legacy_pba)
{}

void vnic_intr_free(struct vnic_intr *intr);
int vnic_intr_alloc(struct vnic_dev *vdev, struct vnic_intr *intr,
	unsigned int index);
void vnic_intr_init(struct vnic_intr *intr, u32 coalescing_timer,
	unsigned int coalescing_type, unsigned int mask_on_assertion);
void vnic_intr_coalescing_timer_set(struct vnic_intr *intr,
	u32 coalescing_timer);
void vnic_intr_clean(struct vnic_intr *intr);

#endif /* _VNIC_INTR_H_ */