Commit | Line | Data |
---|---|---|
7e302869 ME |
1 | #ifndef _POWERPC_SYSDEV_MSI_BITMAP_H |
2 | #define _POWERPC_SYSDEV_MSI_BITMAP_H | |
3 | ||
4 | /* | |
5 | * Copyright 2008, Michael Ellerman, IBM Corporation. | |
6 | * | |
7 | * This program is free software; you can redistribute it and/or | |
8 | * modify it under the terms of the GNU General Public License | |
9 | * as published by the Free Software Foundation; version 2 of the | |
10 | * License. | |
11 | * | |
12 | */ | |
13 | ||
14 | #include <linux/of.h> | |
15 | #include <asm/irq.h> | |
16 | ||
17 | struct msi_bitmap { | |
18 | struct device_node *of_node; | |
19 | unsigned long *bitmap; | |
20 | spinlock_t lock; | |
21 | unsigned int irq_count; | |
cb2d3883 | 22 | bool bitmap_from_slab; |
7e302869 ME |
23 | }; |
24 | ||
25 | int msi_bitmap_alloc_hwirqs(struct msi_bitmap *bmp, int num); | |
26 | void msi_bitmap_free_hwirqs(struct msi_bitmap *bmp, unsigned int offset, | |
27 | unsigned int num); | |
28 | void msi_bitmap_reserve_hwirq(struct msi_bitmap *bmp, unsigned int hwirq); | |
29 | ||
30 | int msi_bitmap_reserve_dt_hwirqs(struct msi_bitmap *bmp); | |
31 | ||
32 | int msi_bitmap_alloc(struct msi_bitmap *bmp, unsigned int irq_count, | |
33 | struct device_node *of_node); | |
34 | void msi_bitmap_free(struct msi_bitmap *bmp); | |
35 | ||
36 | #endif /* _POWERPC_SYSDEV_MSI_BITMAP_H */ |