/*
 *  drivers/s390/cio/qdio_perf.h
 *
 *  Copyright IBM Corp. 2008
 *
 *  Author: Jan Glauber (jang@linux.vnet.ibm.com)
 */
#ifndef QDIO_PERF_H
#define QDIO_PERF_H

#include <linux/types.h>
#include <linux/device.h>
#include <asm/atomic.h>

struct qdio_perf_stats {
	/* interrupt handler calls */
	atomic_long_t qdio_int;
	atomic_long_t pci_int;
	atomic_long_t thin_int;

	/* tasklet runs */
	atomic_long_t tasklet_inbound;
	atomic_long_t tasklet_outbound;
	atomic_long_t tasklet_thinint;
	atomic_long_t tasklet_thinint_loop;
	atomic_long_t thinint_inbound;
	atomic_long_t thinint_inbound_loop;
	atomic_long_t thinint_inbound_loop2;

	/* signal adapter calls */
	atomic_long_t siga_out;
	atomic_long_t siga_in;
	atomic_long_t siga_sync;

	/* misc */
	atomic_long_t inbound_handler;
	atomic_long_t outbound_handler;
	atomic_long_t fast_requeue;

	/* for debugging */
	atomic_long_t debug_tl_out_timer;
	atomic_long_t debug_stop_polling;
};

extern struct qdio_perf_stats perf_stats;
extern int qdio_performance_stats;

int qdio_setup_perf_stats(void);
void qdio_remove_perf_stats(void);

extern void qdio_perf_stat_inc(atomic_long_t *count);
extern void qdio_perf_stat_dec(atomic_long_t *count);

#endif
