summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-05-07 03:14:42 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-05-07 03:14:42 +0000
commitdca50cc150304946afb790f00ead222736146e3e (patch)
treebdab0fb75bde086403c66b8769c0333262cb0635 /arch
parentdcec8a13bf565e47942a1751a9cec21bec5648fe (diff)
Toxic waste.
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/tools/build.c70
-rw-r--r--arch/arm/lib/extractinfo.perl45
-rw-r--r--arch/arm/lib/getconstants.c74
-rw-r--r--arch/arm/lib/getconstants.h17
-rw-r--r--arch/arm/mm/mm-a5k.c7
-rw-r--r--arch/ppc/kernel/pci-bridge.c428
6 files changed, 0 insertions, 641 deletions
diff --git a/arch/arm/boot/tools/build.c b/arch/arm/boot/tools/build.c
deleted file mode 100644
index ac1297564..000000000
--- a/arch/arm/boot/tools/build.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <a.out.h>
-
-typedef unsigned char byte;
-typedef unsigned short word;
-typedef unsigned long u32;
-
-void die(const char * str, ...)
-{
- va_list args;
- va_start(args, str);
- vfprintf(stderr, str, args);
- fputc('\n', stderr);
- exit (1);
-}
-
-int main(int argc, char **argv)
-{
- void *data;
- struct exec ex;
- FILE *f;
- int totlen;
-
- if (argc < 2) {
- fprintf(stderr, "Usage: build kernel-name\n");
- exit(1);
- }
-
- f = fopen(argv[1], "rb");
- if (!f)
- die("Unable to open `%s': %m", argv[1]);
-
- fread(&ex, 1, sizeof(ex), f);
-
- if(N_MAGIC(ex) == ZMAGIC) {
- fseek(f, 4096, SEEK_SET);
- totlen = ex.a_text + ex.a_data;
- } else
- if(N_MAGIC(ex) == QMAGIC) {
- unsigned long my_header;
-
- fseek(f, 4, SEEK_SET);
-
- my_header = 0xea000006;
-
- fwrite(&my_header, 4, 1, stdout);
-
- totlen = ex.a_text + ex.a_data - 4;
- } else {
- fprintf(stderr, "Unacceptable a.out header on kernel\n");
- fclose(f);
- exit(1);
- }
-
- fprintf(stderr, "Kernel is %dk (%dk text, %dk data, %dk bss)\n",
- (ex.a_text + ex.a_data + ex.a_bss)/1024,
- ex.a_text/1024, ex.a_data/1024, ex.a_bss/1024);
-
- data = malloc(totlen);
- fread(data, 1, totlen, f);
- fwrite(data, 1, totlen, stdout);
-
- free(data);
- fclose(f);
- fflush(stdout);
- return 0;
-}
diff --git a/arch/arm/lib/extractinfo.perl b/arch/arm/lib/extractinfo.perl
deleted file mode 100644
index d1f2efa8e..000000000
--- a/arch/arm/lib/extractinfo.perl
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/perl
-
-$OBJDUMP=$ARGV[0];
-
-sub swapdata {
- local ($num) = @_;
-
- return substr($num, 6, 2).substr($num, 4, 2).substr ($num, 2, 2).substr ($num, 0, 2);
-}
-
-open (DATA, $OBJDUMP.' --full-contents --section=.data getconsdata.o | grep \'^ 00\' |') ||
- die ('Cant objdump!');
-while (<DATA>) {
- ($addr, $data0, $data1, $data2, $data3) = split (' ');
- $dat[hex($addr)] = hex(&swapdata($data0));
- $dat[hex($addr)+4] = hex(&swapdata($data1));
- $dat[hex($addr)+8] = hex(&swapdata($data2));
- $dat[hex($addr)+12] = hex(&swapdata($data3));
-}
-close (DATA);
-
-open (DATA, $OBJDUMP.' --syms getconsdata.o |') || die ('Cant objdump!');
-while (<DATA>) {
- /elf32/ && ( $elf = 1 );
- /a.out/ && ( $aout = 1 );
- next if ($aout && ! / 07 /);
- next if ($elf && ! (/^00...... g/ && /.data/));
- next if (!$aout && !$elf);
-
- ($addr, $flags, $sect, $a1, $a2, $a3, $name) = split (' ') if $aout;
- $nam[hex($addr)] = substr($name, 1) if $aout;
- if ($elf) {
- chomp;
- $addr = substr ($_, 0, 8);
- $name = substr ($_, 32);
- $nam[hex($addr)] = $name;
- }
-}
-close (DATA);
-
-print "/*\n * *** THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT! ***\n */\n";
-for ($i = 0; $i < hex($addr)+12; $i ++) {
- print "unsigned long $nam[$i] = $dat[$i];\n" if $dat[$i];
- print "#define __HAS_$nam[$i]\n" if $dat[$i];
-}
diff --git a/arch/arm/lib/getconstants.c b/arch/arm/lib/getconstants.c
deleted file mode 100644
index edb67a5d3..000000000
--- a/arch/arm/lib/getconstants.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * linux/arch/arm/lib/getconstants.c
- *
- * Copyright (C) 1995, 1996 Russell King
- */
-
-#include <linux/mm.h>
-#include <asm/pgtable.h>
-#include <stdio.h>
-#include <linux/unistd.h>
-
-void printdef(char *def, int no)
-{
- printf("#define %s\t%d\n", def, no);
-}
-
-#include "getconstants.h"
-
-int main()
-{
- printf("/*\n * contants.h generated by getconstants\n * DO NOT EDIT!\n */\n");
-
- printf("#define _current\t_%s\n", "current_set");
-
-#ifdef _PAGE_PRESENT
- printdef("PAGE_PRESENT", _PAGE_PRESENT);
-#endif
-#ifdef _PAGE_RW
- printdef("PAGE_RW", _PAGE_RW);
-#endif
-#ifdef _PAGE_USER
- printdef("PAGE_USER", _PAGE_USER);
-#endif
-#ifdef _PAGE_ACCESSED
- printdef("PAGE_ACCESSED", _PAGE_ACCESSED);
-#endif
-#ifdef _PAGE_DIRTY
- printdef("PAGE_DIRTY", _PAGE_DIRTY);
-#endif
-#ifdef _PAGE_READONLY
- printdef("PAGE_READONLY", _PAGE_READONLY);
-#endif
-#ifdef _PAGE_NOT_USER
- printdef("PAGE_NOT_USER", _PAGE_NOT_USER);
-#endif
-#ifdef _PAGE_OLD
- printdef("PAGE_OLD", _PAGE_OLD);
-#endif
-#ifdef _PAGE_CLEAN
- printdef("PAGE_CLEAN", _PAGE_CLEAN);
-#endif
- printdef("TSS_MEMMAP", (int)tss_memmap);
- printdef("TSS_SAVE", (int)tss_save);
-#ifdef __HAS_tss_memcmap
- printdef("TSS_MEMCMAP", (int)tss_memcmap);
-#endif
-#ifdef __HAS_addr_limit
- printdef("ADDR_LIMIT", (int)addr_limit);
-#endif
-#ifdef __HAS_kernel_domain
- printdef("KERNEL_DOMAIN", kernel_domain);
-#endif
-#ifdef __HAS_user_domain
- printdef("USER_DOMAIN", user_domain);
-#endif
- printdef("TSS_FPESAVE", (int)tss_fpesave);
- printdef("MM", (int)mm);
- printdef("PGD", (int)pgd);
-
- printf("#define KSWI_BASE 0x900000\n");
- printf("#define KSWI_SYS_BASE 0x9F0000\n");
- printf("#define SYS_ERROR0 0x9F0000\n");
- return 0;
-}
diff --git a/arch/arm/lib/getconstants.h b/arch/arm/lib/getconstants.h
deleted file mode 100644
index ef9637781..000000000
--- a/arch/arm/lib/getconstants.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * *** THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT! ***
- */
-unsigned long addr_limit = 56;
-#define __HAS_addr_limit
-unsigned long tss_memmap = 640;
-#define __HAS_tss_memmap
-unsigned long mm = 1676;
-#define __HAS_mm
-unsigned long pgd = 8;
-#define __HAS_pgd
-unsigned long tss_save = 636;
-#define __HAS_tss_save
-unsigned long tss_fpesave = 492;
-#define __HAS_tss_fpesave
-unsigned long tss_memcmap = 644;
-#define __HAS_tss_memcmap
diff --git a/arch/arm/mm/mm-a5k.c b/arch/arm/mm/mm-a5k.c
deleted file mode 100644
index 3906a29ec..000000000
--- a/arch/arm/mm/mm-a5k.c
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * arch/arm/mm/mm-a5k.c
- *
- * Extra MM routines for the Archimedes architecture
- *
- * Copyright (C) 1998 Russell King
- */
diff --git a/arch/ppc/kernel/pci-bridge.c b/arch/ppc/kernel/pci-bridge.c
deleted file mode 100644
index 0e4420340..000000000
--- a/arch/ppc/kernel/pci-bridge.c
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
- * Support for PCI bridges found on Power Macintoshes.
- * At present the "bandit" and "chaos" bridges are supported.
- * Fortunately you access configuration space in the same
- * way with either bridge.
- *
- * Copyright (C) 1997 Paul Mackerras (paulus@cs.anu.edu.au)
- *
- * 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; either version
- * 2 of the License, or (at your option) any later version.
- */
-
-#include <linux/kernel.h>
-#include <linux/pci.h>
-#include <linux/bios32.h>
-#include <linux/delay.h>
-#include <linux/string.h>
-#include <linux/init.h>
-#include <asm/io.h>
-#include <asm/prom.h>
-#include <asm/pci-bridge.h>
-
-struct bridge_data {
- volatile unsigned int *cfg_addr;
- volatile unsigned char *cfg_data;
- void *io_base;
- int bus_number;
- int max_bus;
- struct bridge_data *next;
- struct device_node *node;
-};
-
-static struct bridge_data **bridges, *bridge_list;
-static int max_bus;
-
-static void add_bridges(struct device_node *dev, unsigned long *mem_ptr);
-
-/*
- * Magic constants for enabling cache coherency in the bandit/PSX bridge.
- */
-#define APPLE_VENDID 0x106b
-#define BANDIT_DEVID 1
-#define BANDIT_REVID 3
-
-#define BANDIT_DEVNUM 11
-#define BANDIT_MAGIC 0x50
-#define BANDIT_COHERENT 0x40
-
-/*
- * For a bandit bridge, turn on cache coherency if necessary.
- * N.B. we can't use pcibios_*_config_* here because bridges[]
- * is not initialized yet.
- */
-static void init_bandit(struct bridge_data *bp)
-{
- unsigned int vendev, magic;
- int rev;
-
- /* read the word at offset 0 in config space for device 11 */
- out_le32(bp->cfg_addr, (1UL << BANDIT_DEVNUM) + PCI_VENDOR_ID);
- udelay(2);
- vendev = in_le32((volatile unsigned int *)bp->cfg_data);
- if (vendev != (BANDIT_DEVID << 16) + APPLE_VENDID) {
- printk(KERN_WARNING "bandit isn't? (%x)\n", vendev);
- return;
- }
-
- /* read the revision id */
- out_le32(bp->cfg_addr, (1UL << BANDIT_DEVNUM) + PCI_REVISION_ID);
- udelay(2);
- rev = in_8(bp->cfg_data);
- if (rev != BANDIT_REVID)
- printk(KERN_WARNING "Unknown revision %d for bandit at %p\n",
- rev, bp->io_base);
-
- /* read the word at offset 0x50 */
- out_le32(bp->cfg_addr, (1UL << BANDIT_DEVNUM) + BANDIT_MAGIC);
- udelay(2);
- magic = in_le32((volatile unsigned int *)bp->cfg_data);
- if ((magic & BANDIT_COHERENT) != 0)
- return;
- magic |= BANDIT_COHERENT;
- udelay(2);
- out_le32((volatile unsigned int *)bp->cfg_data, magic);
- printk(KERN_INFO "Cache coherency enabled for bandit/PSX at %p\n",
- bp->io_base);
-}
-
-unsigned long pmac_find_bridges(unsigned long mem_start, unsigned long mem_end)
-{
- int bus;
- struct bridge_data *bridge;
-
- bridge_list = 0;
- max_bus = 0;
- add_bridges(find_devices("bandit"), &mem_start);
- add_bridges(find_devices("chaos"), &mem_start);
- bridges = (struct bridge_data **) mem_start;
- mem_start += (max_bus + 1) * sizeof(struct bridge_data *);
- memset(bridges, 0, (max_bus + 1) * sizeof(struct bridge_data *));
- for (bridge = bridge_list; bridge != NULL; bridge = bridge->next)
- for (bus = bridge->bus_number; bus <= bridge->max_bus; ++bus)
- bridges[bus] = bridge;
-
- return mem_start;
-}
-
-static void add_bridges(struct device_node *dev, unsigned long *mem_ptr)
-{
- int *bus_range;
- int len;
- struct bridge_data *bp;
-
- for (; dev != NULL; dev = dev->next) {
- if (dev->n_addrs < 1) {
- printk(KERN_WARNING "Can't use %s: no address\n",
- dev->full_name);
- continue;
- }
- bus_range = (int *) get_property(dev, "bus-range", &len);
- if (bus_range == NULL || len < 2 * sizeof(int)) {
- printk(KERN_WARNING "Can't get bus-range for %s\n",
- dev->full_name);
- continue;
- }
- if (bus_range[1] == bus_range[0])
- printk(KERN_INFO "PCI bus %d", bus_range[0]);
- else
- printk(KERN_INFO "PCI buses %d..%d", bus_range[0],
- bus_range[1]);
- printk(" controlled by %s at %x\n",
- dev->name, dev->addrs[0].address);
- bp = (struct bridge_data *) *mem_ptr;
- *mem_ptr += sizeof(struct bridge_data);
- bp->cfg_addr = (volatile unsigned int *)
- (dev->addrs[0].address + 0x800000);
- bp->cfg_data = (volatile unsigned char *)
- (dev->addrs[0].address + 0xc00000);
- bp->io_base = (void *) dev->addrs[0].address;
- ioremap(dev->addrs[0].address, 0x800000);
- bp->bus_number = bus_range[0];
- bp->max_bus = bus_range[1];
- bp->next = bridge_list;
- bp->node = dev;
- bridge_list = bp;
- if (bp->max_bus > max_bus)
- max_bus = bp->max_bus;
-
- if (strcmp(dev->name, "bandit") == 0)
- init_bandit(bp);
- }
-}
-
-void *pci_io_base(unsigned int bus)
-{
- struct bridge_data *bp;
-
- if (bus > max_bus || (bp = bridges[bus]) == 0)
- return 0;
- return bp->io_base;
-}
-
-int pci_device_loc(struct device_node *dev, unsigned char *bus_ptr,
- unsigned char *devfn_ptr)
-{
- unsigned int *reg;
- int len;
-
- reg = (unsigned int *) get_property(dev, "reg", &len);
- if (reg == 0 || len < 5 * sizeof(unsigned int)) {
- /* doesn't look like a PCI device */
- *bus_ptr = 0xff;
- *devfn_ptr = 0xff;
- return -1;
- }
- *bus_ptr = reg[0] >> 16;
- *devfn_ptr = reg[0] >> 8;
- return 0;
-}
-
-int pmac_pcibios_read_config_byte(unsigned char bus, unsigned char dev_fn,
- unsigned char offset, unsigned char *val)
-{
- struct bridge_data *bp;
-
- *val = 0xff;
- if (bus > max_bus || (bp = bridges[bus]) == 0)
- return PCIBIOS_DEVICE_NOT_FOUND;
- if (bus == bp->bus_number) {
- if (dev_fn < (11 << 3))
- return PCIBIOS_DEVICE_NOT_FOUND;
- out_le32(bp->cfg_addr,
- (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
- + (offset & ~3));
- } else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1);
- }
- udelay(2);
- *val = in_8(bp->cfg_data + (offset & 3));
-
- if (offset == PCI_INTERRUPT_LINE) {
- /*
- * Open Firmware often doesn't initialize this
- * register properly, so we find the node and see
- * if it has an AAPL,interrupts property.
- */
- struct device_node *node;
- unsigned int *reg;
-
- for (node = bp->node->child; node != 0; node = node->sibling) {
- reg = (unsigned int *) get_property(node, "reg", 0);
- if (reg == 0 || ((reg[0] >> 8) & 0xff) != dev_fn)
- continue;
- /* this is the node, see if it has interrupts */
- if (node->n_intrs > 0)
- *val = node->intrs[0];
- break;
- }
- }
-
- return PCIBIOS_SUCCESSFUL;
-}
-
-int pmac_pcibios_read_config_word(unsigned char bus, unsigned char dev_fn,
- unsigned char offset, unsigned short *val)
-{
- struct bridge_data *bp;
-
- *val = 0xffff;
- if (bus > max_bus || (bp = bridges[bus]) == 0 || (offset & 1) != 0)
- return PCIBIOS_DEVICE_NOT_FOUND;
- if (bus == bp->bus_number) {
- if (dev_fn < (11 << 3))
- return PCIBIOS_DEVICE_NOT_FOUND;
- out_le32(bp->cfg_addr,
- (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
- + (offset & ~3));
- } else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1);
- }
- udelay(2);
- *val = in_le16((volatile unsigned short *)(bp->cfg_data + (offset & 3)));
- return PCIBIOS_SUCCESSFUL;
-}
-
-int pmac_pcibios_read_config_dword(unsigned char bus, unsigned char dev_fn,
- unsigned char offset, unsigned int *val)
-{
- struct bridge_data *bp;
-
- *val = 0xffffffff;
- if (bus > max_bus || (bp = bridges[bus]) == 0 || (offset & 3) != 0)
- return PCIBIOS_DEVICE_NOT_FOUND;
- if (bus == bp->bus_number) {
- if (dev_fn < (11 << 3))
- return PCIBIOS_DEVICE_NOT_FOUND;
- out_le32(bp->cfg_addr,
- (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
- + offset);
- } else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + offset + 1);
- }
- udelay(2);
- *val = in_le32((volatile unsigned int *)bp->cfg_data);
- return PCIBIOS_SUCCESSFUL;
-}
-
-int pmac_pcibios_write_config_byte(unsigned char bus, unsigned char dev_fn,
- unsigned char offset, unsigned char val)
-{
- struct bridge_data *bp;
-
- if (bus > max_bus || (bp = bridges[bus]) == 0)
- return PCIBIOS_DEVICE_NOT_FOUND;
- if (bus == bp->bus_number) {
- if (dev_fn < (11 << 3))
- return PCIBIOS_DEVICE_NOT_FOUND;
- out_le32(bp->cfg_addr,
- (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
- + (offset & ~3));
- } else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1);
- }
- udelay(2);
- out_8(bp->cfg_data + (offset & 3), val);
- return PCIBIOS_SUCCESSFUL;
-}
-
-int pmac_pcibios_write_config_word(unsigned char bus, unsigned char dev_fn,
- unsigned char offset, unsigned short val)
-{
- struct bridge_data *bp;
-
- if (bus > max_bus || (bp = bridges[bus]) == 0 || (offset & 1) != 0)
- return PCIBIOS_DEVICE_NOT_FOUND;
- if (bus == bp->bus_number) {
- if (dev_fn < (11 << 3))
- return PCIBIOS_DEVICE_NOT_FOUND;
- out_le32(bp->cfg_addr,
- (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
- + (offset & ~3));
- } else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1);
- }
- udelay(2);
- out_le16((volatile unsigned short *)(bp->cfg_data + (offset & 3)), val);
- return PCIBIOS_SUCCESSFUL;
-}
-
-int pmac_pcibios_write_config_dword(unsigned char bus, unsigned char dev_fn,
- unsigned char offset, unsigned int val)
-{
- struct bridge_data *bp;
-
- if (bus > max_bus || (bp = bridges[bus]) == 0 || (offset & 3) != 0)
- return PCIBIOS_DEVICE_NOT_FOUND;
- if (bus == bp->bus_number) {
- if (dev_fn < (11 << 3))
- return PCIBIOS_DEVICE_NOT_FOUND;
- out_le32(bp->cfg_addr,
- (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
- + offset);
- } else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + offset + 1);
- }
- udelay(2);
- out_le32((volatile unsigned int *)bp->cfg_data, val);
- return PCIBIOS_SUCCESSFUL;
-}
-
-int pmac_pcibios_find_device(unsigned short vendor, unsigned short dev_id,
- unsigned short index, unsigned char *bus_ptr,
- unsigned char *dev_fn_ptr)
-{
- int bus, unit, fn, num, devfn;
- unsigned int x, vendev;
- unsigned char h;
-
- if (vendor == 0xffff)
- return PCIBIOS_BAD_VENDOR_ID;
- vendev = (dev_id << 16) + vendor;
- num = 0;
- for (bus = 0; bus <= max_bus; ++bus) {
- if (bridges[bus] == 0)
- continue;
- unit = fn = 0;
- if (bus == bridges[bus]->bus_number)
- unit = 11;
- while (unit < 32) {
- devfn = PCI_DEVFN(unit, fn);
- if (pcibios_read_config_dword(bus, devfn,
- PCI_VENDOR_ID, &x)
- == PCIBIOS_SUCCESSFUL && x == vendev) {
- if (index == num) {
- *bus_ptr = bus;
- *dev_fn_ptr = devfn;
- return PCIBIOS_SUCCESSFUL;
- }
- ++num;
- }
- if (fn != 0) {
- if (++fn >= 8) {
- ++unit;
- fn = 0;
- }
- continue;
- }
- if (pcibios_read_config_byte(bus, devfn,
- PCI_HEADER_TYPE, &h)
- == PCIBIOS_SUCCESSFUL && (h & 0x80) != 0)
- ++fn;
- else
- ++unit;
- }
- }
- return PCIBIOS_DEVICE_NOT_FOUND;
-}
-
-int pmac_pcibios_find_class(unsigned int class_code, unsigned short index,
- unsigned char *bus_ptr, unsigned char *dev_fn_ptr)
-{
- int bus, unit, fn, num, devfn;
- unsigned int x;
- unsigned char h;
-
- num = 0;
- for (bus = 0; bus <= max_bus; ++bus) {
- if (bridges[bus] == 0)
- continue;
- unit = fn = 0;
- if (bus == bridges[bus]->bus_number)
- unit = 11;
- while (unit < 32) {
- devfn = PCI_DEVFN(unit, fn);
- if (pcibios_read_config_dword(bus, devfn,
- PCI_CLASS_REVISION, &x)
- == PCIBIOS_SUCCESSFUL && (x >> 8) == class_code) {
- if (index == num) {
- *bus_ptr = bus;
- *dev_fn_ptr = devfn;
- return PCIBIOS_SUCCESSFUL;
- }
- ++num;
- }
- if (fn != 0) {
- if (++fn >= 8) {
- ++unit;
- fn = 0;
- }
- continue;
- }
- if (pcibios_read_config_byte(bus, devfn,
- PCI_HEADER_TYPE, &h)
- == PCIBIOS_SUCCESSFUL && (h & 0x80) != 0)
- ++fn;
- else
- ++unit;
- }
- }
- return PCIBIOS_DEVICE_NOT_FOUND;
-}
-
-__initfunc(unsigned long route_pci_interrupts(void))
-{
- return 0;
-}