36 lines
		
	
	
		
			1008 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1008 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _POWERPC_SYSDEV_MSI_BITMAP_H
 | 
						|
#define _POWERPC_SYSDEV_MSI_BITMAP_H
 | 
						|
 | 
						|
/*
 | 
						|
 * Copyright 2008, Michael Ellerman, IBM Corporation.
 | 
						|
 *
 | 
						|
 * This program is free software; you can redistribute it and/or
 | 
						|
 * modify it under the terms of the GNU General Public License
 | 
						|
 * as published by the Free Software Foundation; version 2 of the
 | 
						|
 * License.
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#include <linux/of.h>
 | 
						|
#include <asm/irq.h>
 | 
						|
 | 
						|
struct msi_bitmap {
 | 
						|
	struct device_node	*of_node;
 | 
						|
	unsigned long		*bitmap;
 | 
						|
	spinlock_t		lock;
 | 
						|
	unsigned int		irq_count;
 | 
						|
};
 | 
						|
 | 
						|
int msi_bitmap_alloc_hwirqs(struct msi_bitmap *bmp, int num);
 | 
						|
void msi_bitmap_free_hwirqs(struct msi_bitmap *bmp, unsigned int offset,
 | 
						|
			    unsigned int num);
 | 
						|
void msi_bitmap_reserve_hwirq(struct msi_bitmap *bmp, unsigned int hwirq);
 | 
						|
 | 
						|
int msi_bitmap_reserve_dt_hwirqs(struct msi_bitmap *bmp);
 | 
						|
 | 
						|
int msi_bitmap_alloc(struct msi_bitmap *bmp, unsigned int irq_count,
 | 
						|
		     struct device_node *of_node);
 | 
						|
void msi_bitmap_free(struct msi_bitmap *bmp);
 | 
						|
 | 
						|
#endif /* _POWERPC_SYSDEV_MSI_BITMAP_H */
 |