linux/drivers/scsi/fnic/vnic_intr.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright 2008 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"

/*
 * These defines avoid symbol clash between fnic and enic (Cisco 10G Eth
 * Driver) when both are built with CONFIG options =y
 */
#define vnic_intr_unmask
#define vnic_intr_mask
#define vnic_intr_return_credits
#define vnic_intr_credits
#define vnic_intr_return_all_credits
#define vnic_intr_legacy_pba
#define vnic_intr_free
#define vnic_intr_alloc
#define vnic_intr_init
#define vnic_intr_clean

#define VNIC_INTR_TIMER_MAX

#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 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, unsigned int coalescing_timer,
	unsigned int coalescing_type, unsigned int mask_on_assertion);
void vnic_intr_clean(struct vnic_intr *intr);

#endif /* _VNIC_INTR_H_ */