···15#include <asm/io.h>16#include <asm/page.h>17#include <asm/oplib.h>01819/* The abstraction used here is that there are PCI controllers,20 * each with one (Sabre) or two (PSYCHO/SCHIZO) PCI bus modules···40 * streaming buffers underneath.41 */42 spinlock_t lock;43-44- /* Context allocator. */45- unsigned int iommu_cur_ctx;4647 /* IOMMU page table, a linear array of ioptes. */48 iopte_t *page_table; /* The page table itself. */···84 u16 next;85 u16 flush;86 } alloc_info[PBM_NCLUSTERS];00008788 /* Here a PCI controller driver describes the areas of89 * PCI memory space where DMA to/from physical memory
···15#include <asm/io.h>16#include <asm/page.h>17#include <asm/oplib.h>18+#include <asm/iommu.h>1920/* The abstraction used here is that there are PCI controllers,21 * each with one (Sabre) or two (PSYCHO/SCHIZO) PCI bus modules···39 * streaming buffers underneath.40 */41 spinlock_t lock;0004243 /* IOMMU page table, a linear array of ioptes. */44 iopte_t *page_table; /* The page table itself. */···86 u16 next;87 u16 flush;88 } alloc_info[PBM_NCLUSTERS];89+90+ /* CTX allocation. */91+ unsigned long ctx_lowest_free;92+ unsigned long ctx_bitmap[IOMMU_NUM_CTXS / (sizeof(unsigned long) * 8)];9394 /* Here a PCI controller driver describes the areas of95 * PCI memory space where DMA to/from physical memory